From 0d34bbb3adf4d53dde03c35dff464d028e9c0294 Mon Sep 17 00:00:00 2001 From: gardrek Date: Fri, 20 Jan 2023 15:50:55 -0600 Subject: [PATCH 0001/1024] grammar fixes in 2023-01-20-types-announcement.md --- posts/2023-01-20-types-announcement.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/2023-01-20-types-announcement.md b/posts/2023-01-20-types-announcement.md index eba977e29..0f927dbe5 100644 --- a/posts/2023-01-20-types-announcement.md +++ b/posts/2023-01-20-types-announcement.md @@ -42,9 +42,9 @@ As mentioned above, a nearly essential element of the growing Rust language is t As far back as 2015, not long after the release of Rust 1.0, an experimental Rust trait solver called Chalk began to be written. The core idea of Chalk is to translate the surface syntax and ideas of the Rust trait system (e.g. traits, impls, where clauses) into a set of logic rules that can be solved using a Prolog-like solver. Then, once this set of logic and solving reaches parity with the trait solver within the compiler itself, the plan was to simply replace the existing solver. In the meantime (and continuing forward), this new solver could be used by other tools, such as rust-analyzer, where it is used today. -Now, given Chalk's age and the promises it had been hoped to be able to deliver on, you might be tempted to ask the question "Chalk, when?" - and plenty have. However, we've learned over the years that Chalk is likely not the correct long-term solution for Rust, for a few reasons. First, as mentioned a few times in this post, the trait solver is only but a part of a larger type system; and modeling how the entire type system fits together gives a more complete picture of its details than trying to model the parts separately. Second, the needs of the *compiler* are quite different than the needs of a *formalization*: the compiler needs performant code with the ability to track information required for powerful diagnostics; a good formalization is one that is not only complete, but also easy to maintain, read, and understand. Over the years, Chalk has tried to have both and it has so far ended up with neither. +Now, given Chalk's age and the promises it had hoped to be able to deliver on, you might be tempted to ask the question "Chalk, when?" - and plenty have. However, we've learned over the years that Chalk is likely not the correct long-term solution for Rust, for a few reasons. First, as mentioned a few times in this post, the trait solver is only but a part of a larger type system; and modeling how the entire type system fits together gives a more complete picture of its details than trying to model the parts separately. Second, the needs of the *compiler* are quite different than the needs of a *formalization*: the compiler needs performant code with the ability to track information required for powerful diagnostics; a good formalization is one that is not only complete, but also easy to maintain, read, and understand. Over the years, Chalk has tried to have both and it has so far ended up with neither. -So, what are the plans going forward? Well, first the types team has begun working on a formalization of the Rust typesystem, currently coined [a-mir-formality](https://github.com/nikomatsakis/a-mir-formality/). An initial experimental phase was written using [PLT redex](https://redex.racket-lang.org/), but a Rust port is in-progress. There's lot to do still (including modeling more of the trait system, writing an RFC, and moving it into the rust-lang org), but it's already showing great promise. +So, what are the plans going forward? Well, first the types team has begun working on a formalization of the Rust typesystem, currently coined [a-mir-formality](https://github.com/nikomatsakis/a-mir-formality/). An initial experimental phase was written using [PLT redex](https://redex.racket-lang.org/), but a Rust port is in-progress. There's a lot to do still (including modeling more of the trait system, writing an RFC, and moving it into the rust-lang org), but it's already showing great promise. Second, we've begun an [initiative](https://github.com/rust-lang/types-team/issues/58) for writing a new trait solver in-tree. This new trait solver is more limited in scope than a-mir-formality (i.e. not intending to encompass the entire type system). In many ways, it's expected to be quite similar to Chalk, but leverage bits and pieces of the existing compiler and trait solver in order to make the transition as painless as possible. We do expect it to be pulled out-of-tree at some point, so it's being written to be as modular as possible. During our types team meetup earlier this month, we were able to hash out what we expect the structure of the solver to look like, and we've already gotten that [merged into the source tree](https://github.com/rust-lang/rust/pull/105661). From 96b8b118b5b958bcb2e862bd3219161dbd738afd Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Thu, 23 Feb 2023 07:39:28 -0800 Subject: [PATCH 0002/1024] Fix some typos in keyword generics post --- .../2023-02-23-keyword-generics-progress-report-feb-2023.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md b/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md index 3c7c6a673..a25be99c7 100644 --- a/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md +++ b/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md @@ -80,7 +80,7 @@ The way this would work is that `Read` and `read_to_string` would become generic their "asyncness". When compiled for an `async` context, they will behave asynchronously. When compiled in a non-async context, they will behave synchronously. The `.await` in the `read_to_string` function body is necessary -to mark the cancellation pointin case the function is compiled as async; but +to mark the cancellation point in case the function is compiled as async; but when not async would essentially become a no-op [^always-async-maybe]: [^always-async-maybe]: One restriction `?async` contexts have is that they can @@ -398,14 +398,14 @@ the following proposals (in no particular order): We'll be working closely with the Lang Team, Const WG, and Async WG on these proposals, and in some cases (such as `trait async`) we may even take an -advicing role with a WG directly driving the RFC. As usual, these will be going +advising role with a WG directly driving the RFC. As usual, these will be going through the RFC-nightly-stabilization cycle. And only once we're fully confident in them will they become available on stable Rust. We're intentionally not yet including `effect/.do` notation on this roadmap. We expect to only be able to start this work once we have `?async` on nightly, which we don't yet have. So for now we'll continue work on designing it within -the iniatiative, and hold off on making plans to introduce it quiet yet. +the initiative, and hold off on making plans to introduce it quiet yet. ## Conclusion From 25140a26f11e5c3edaa76b239961a46d0b745a75 Mon Sep 17 00:00:00 2001 From: Asger Hautop Drewsen Date: Sun, 26 Feb 2023 15:03:40 +0100 Subject: [PATCH 0003/1024] Use `const fn` consistently before `?const fn` is introduced --- .../2023-02-23-keyword-generics-progress-report-feb-2023.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md b/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md index ddf3e9810..b1a7bb6cf 100644 --- a/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md +++ b/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md @@ -183,7 +183,7 @@ trait ?const ?async Read { } /// Read from a reader into a string. -?const ?async fn read_to_string(reader: &mut impl ?const ?async Read) -> io::Result { +const ?async fn read_to_string(reader: &mut impl ?const ?async Read) -> io::Result { let mut string = String::new(); reader.read_to_string(&mut string).await?; Ok(string) @@ -192,7 +192,7 @@ trait ?const ?async Read { That's sure starting to feel like a lot of keywords, right? We've accurately described exactly what's going on, but there's a lot of repetition. We know that -if we're dealing with a `?const ?async fn`, most arguments probably will also +if we're dealing with a `const ?async fn`, most arguments probably will want to be `?const ?async`. But under the syntax rules we've proposed so far, you'd end up repeating that everywhere. And it probably gets worse once we start adding in more keywords. Not ideal! From a6aa8d8b510702ed535a51cc1784f863851bc5f1 Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Mon, 6 Mar 2023 20:57:36 +0000 Subject: [PATCH 0004/1024] Creating file via promote-release automation --- .../2023-03-06-1.68.0-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-03-06-1.68.0-prerelease.md diff --git a/posts/inside-rust/2023-03-06-1.68.0-prerelease.md b/posts/inside-rust/2023-03-06-1.68.0-prerelease.md new file mode 100644 index 000000000..e9277da9e --- /dev/null +++ b/posts/inside-rust/2023-03-06-1.68.0-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.68.0 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.68.0 pre-release is ready for testing. The release is scheduled for +March 09. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-68-0-pre-release-testing/18481). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1680-2023-03-09 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 03d6ee9ca17fa0cd8d3ae83c580532c6b6adb6c1 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 8 Mar 2023 13:34:04 -0800 Subject: [PATCH 0005/1024] Announcing Rust 1.68.0 --- posts/2023-03-09-Rust-1.68.0.md | 132 ++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 posts/2023-03-09-Rust-1.68.0.md diff --git a/posts/2023-03-09-Rust-1.68.0.md b/posts/2023-03-09-Rust-1.68.0.md new file mode 100644 index 000000000..47c3824d6 --- /dev/null +++ b/posts/2023-03-09-Rust-1.68.0.md @@ -0,0 +1,132 @@ +--- +layout: post +title: "Announcing Rust 1.68.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.68.0. Rust is a +programming language empowering everyone to build reliable and efficient +software. + +If you have a previous version of Rust installed via rustup, you can get 1.68.0 +with: + +```console +rustup update stable +``` + +If you don't have it already, you can [get +`rustup`](https://www.rust-lang.org/install.html) from the appropriate page on +our website, and check out the [detailed release notes for +1.68.0](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1680-2023-03-09) +on GitHub. + +If you'd like to help us out by testing future releases, you might consider +updating locally to use the beta channel (`rustup default beta`) or the nightly +channel (`rustup default nightly`). Please +[report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you +might come across! + +## What's in 1.68.0 stable + +### Cargo's sparse protocol + +Cargo's "sparse" registry protocol has been stabilized for reading the index of +crates, along with infrastructure at `https://index.crates.io/` for those +published in the primary crates.io registry. The prior git protocol (which is +still the default) clones a repository that indexes _all_ crates available in +the registry, but this has started to hit scaling limitations, with noticeable +delays while updating that repository. The new protocol should provide a +significant performance improvement when accessing crates.io, as it will only +download information about the subset of crates that you actually use. + +To use the sparse protocol with crates.io, set the environment variable +`CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse`, or edit your +[`.cargo/config.toml` file](https://doc.rust-lang.org/cargo/reference/config.html) +to add: + +```toml +[registries.crates-io] +protocol = "sparse" +``` + +The sparse protocol is currently planned to become the default for crates.io in +the 1.70.0 release in a few months. For more information, please see the prior +[announcement](https://blog.rust-lang.org/inside-rust/2023/01/30/cargo-sparse-protocol.html) +on the Inside Rust Blog, as well as +[RFC 2789](https://rust-lang.github.io/rfcs/2789-sparse-index.html) +and the current +[documentation](https://doc.rust-lang.org/stable/cargo/reference/registry-index.html#sparse-protocol) +in the Cargo Book. + +### Local `Pin` construction + +The new [`pin!`](https://doc.rust-lang.org/stable/std/pin/macro.pin.html) macro +constructs a `Pin<&mut T>` from a `T` expression, anonymously captured in local +state. This is often called stack-pinning, but that "stack" could also be the +captured state of an `async fn` or block. This macro is similar to some crates, +like [`tokio::pin!`](https://docs.rs/tokio/1/tokio/macro.pin.html), but the +standard library can take advantage of `Pin` internals and [temporary lifetime +extension](https://doc.rust-lang.org/stable/reference/destructors.html#temporary-lifetime-extension) +for a more expression-like macro. + +```rust +/// Runs a future to completion. +fn block_on(future: F) -> F::Output { + let waker_that_unparks_thread = todo!(); + let mut cx = Context::from_waker(&waker_that_unparks_thread); + // Pin the future so it can be polled. + let mut pinned_future = pin!(future); + loop { + match pinned_future.as_mut().poll(&mut cx) { + Poll::Pending => thread::park(), + Poll::Ready(result) => return result, + } + } +} +``` + +In this example, the original `future` will be moved into a temporary local, +referenced by the new `pinned_future` with type `Pin<&mut F>`, and that pin is +subject to the normal borrow checker to make sure it can't outlive that local. + +### Default `alloc` error handler + +When allocation fails in Rust, APIs like `Box::new` and `Vec::push` have no way +to indicate that failure, so some divergent execution path needs to be taken. +When using the `std` crate, the program will print to `stderr` and abort. But +with `#![no_std]` and the `alloc` crate, it was required to provide a +`#[alloc_error_handler]` function, similar to `#[panic_handler]`, but that +attribute is still unstable. + +Now in Rust 1.68.0, a default handler is provided which turns that `alloc` error +into a `panic!`, which may be processed in a `#[panic_handler]` like any other. + +### Stabilized APIs + +- [`{core,std}::pin::pin!`](https://doc.rust-lang.org/stable/std/pin/macro.pin.html) +- [`impl From for {f32,f64}`](https://doc.rust-lang.org/stable/std/primitive.f32.html#impl-From%3Cbool%3E-for-f32) +- [`std::path::MAIN_SEPARATOR_STR`](https://doc.rust-lang.org/stable/std/path/constant.MAIN_SEPARATOR_STR.html) +- [`impl DerefMut for PathBuf`](https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#impl-DerefMut-for-PathBuf) + +These APIs are now stable in const contexts: + +- [`VecDeque::new`](https://doc.rust-lang.org/stable/std/collections/struct.VecDeque.html#method.new) + +### Other changes + +* As [previously announced](https://blog.rust-lang.org/2023/01/09/android-ndk-update-r25.html), + Android platform support in Rust is now targeting NDK r25, which corresponds to + a minimum supported API level of 19 (KitKat). + +Check out everything that changed in +[Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1680-2023-03-09), +[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-168-2023-03-09), +and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-168). + +### Contributors to 1.68.0 + +Many people came together to create Rust 1.68.0. +We couldn't have done it without all of you. +[Thanks!](https://thanks.rust-lang.org/rust/1.68.0/) From 5170dc7cc23f32aa9ebec7ed06ee44ab398dd49d Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 8 Mar 2023 16:15:22 -0800 Subject: [PATCH 0006/1024] Update the description of `alloc` error handling Co-authored-by: Mark Rousskov --- posts/2023-03-09-Rust-1.68.0.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/posts/2023-03-09-Rust-1.68.0.md b/posts/2023-03-09-Rust-1.68.0.md index 47c3824d6..ffa6df0bd 100644 --- a/posts/2023-03-09-Rust-1.68.0.md +++ b/posts/2023-03-09-Rust-1.68.0.md @@ -95,13 +95,12 @@ subject to the normal borrow checker to make sure it can't outlive that local. When allocation fails in Rust, APIs like `Box::new` and `Vec::push` have no way to indicate that failure, so some divergent execution path needs to be taken. -When using the `std` crate, the program will print to `stderr` and abort. But -with `#![no_std]` and the `alloc` crate, it was required to provide a -`#[alloc_error_handler]` function, similar to `#[panic_handler]`, but that -attribute is still unstable. +When using the `std` crate, the program will print to `stderr` and abort. +As of Rust 1.68.0, binaries which include `std` will continue to have +this behavior. Binaries which do not include `std`, only including `alloc`, will now `panic!` +on allocation failure, which may be further adjusted via a `#[panic_handler]` if desired. -Now in Rust 1.68.0, a default handler is provided which turns that `alloc` error -into a `panic!`, which may be processed in a `#[panic_handler]` like any other. +In the future, it's likely that the behavior for `std` will also be changed to match that of `alloc`-only binaries. ### Stabilized APIs From 16ef86d76cdfd30434a82e7f518402cb04c48af3 Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 23:51:32 +0000 Subject: [PATCH 0007/1024] Creating file via promote-release automation --- .../2023-03-20-1.68.1-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-03-20-1.68.1-prerelease.md diff --git a/posts/inside-rust/2023-03-20-1.68.1-prerelease.md b/posts/inside-rust/2023-03-20-1.68.1-prerelease.md new file mode 100644 index 000000000..b9220643c --- /dev/null +++ b/posts/inside-rust/2023-03-20-1.68.1-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.68.1 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.68.1 pre-release is ready for testing. The release is scheduled for +March 23. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-68-1-pre-release-testing/18547). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1681-2023-03-23 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 5f86f2e8143f3c37661b2589f6b8e4d3124f48fc Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Wed, 22 Mar 2023 09:21:36 -0400 Subject: [PATCH 0008/1024] 1.68.1 release --- posts/2023-03-23-Rust-1.68.1.md | 46 +++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 posts/2023-03-23-Rust-1.68.1.md diff --git a/posts/2023-03-23-Rust-1.68.1.md b/posts/2023-03-23-Rust-1.68.1.md new file mode 100644 index 000000000..f1e81a7fa --- /dev/null +++ b/posts/2023-03-23-Rust-1.68.1.md @@ -0,0 +1,46 @@ +--- +layout: post +title: "Announcing Rust 1.68.1" +author: The Rust Release Team +release: true +--- + +The Rust team has published a new point release of Rust, 1.68.1. Rust is a +programming language that is empowering everyone to build reliable and +efficient software. + +If you have a previous version of Rust installed via rustup, you can get 1.68.1 with: + +``` +rustup update stable +``` + +If you don't have it already, you can [get `rustup`][install] +from the appropriate page on our website, and check out the +[detailed release notes for 1.68.1][notes] on GitHub. + +[install]: https://www.rust-lang.org/install.html +[notes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1681-2023-03-23 + +## What's in 1.68.1 stable + +Rust 1.68.1 stable primarily contains a change to how Rust's CI builds the +Windows MSVC compiler, no longer enabling LTO for the Rust code. This led to a +[miscompilation](https://github.com/rust-lang/rust/issues/109067) that the Rust +team is debugging, but in the meantime we're reverting the change to enable +LTO. + +This is currently believed to have no effect on wider usage of ThinLTO. The +Rust compiler used an unstable flag as part of the build process to enable +ThinLTO despite compiling to a dylib. + +There are a few other regression fixes included in the release: + +* [Fix building the compiler with `--enable-local-rust`](https://github.com/rust-lang/rust/pull/109111/) +* [Treat `$prefix-clang` as `clang` in linker detection code](https://github.com/rust-lang/rust/pull/109156) +* [Fix a panic in the compiler](https://github.com/rust-lang/rust/pull/108162) + +### Contributors to 1.68.1 + +Many people came together to create Rust 1.68.1. We couldn't have done it +without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.68.1/) From 85e5a5262b3a8814fcd9d6e4a6fe4f1a5970ca89 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Sun, 26 Mar 2023 22:25:33 +0200 Subject: [PATCH 0009/1024] add blog post on Rust 1.68.2 --- posts/2023-03-28-Rust-1.68.2.md | 54 +++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 posts/2023-03-28-Rust-1.68.2.md diff --git a/posts/2023-03-28-Rust-1.68.2.md b/posts/2023-03-28-Rust-1.68.2.md new file mode 100644 index 000000000..fe6488351 --- /dev/null +++ b/posts/2023-03-28-Rust-1.68.2.md @@ -0,0 +1,54 @@ +--- +layout: post +title: "Announcing Rust 1.68.2" +author: The Rust Release Team +release: true +--- + +The Rust team has published a new point release of Rust, 1.68.2. Rust is a +programming language that is empowering everyone to build reliable and +efficient software. + +If you have a previous version of Rust installed via rustup, you can get 1.68.2 with: + +``` +rustup update stable +``` + +If you don't have it already, you can [get `rustup`][install] +from the appropriate page on our website, and check out the +[detailed release notes for 1.68.2][notes] on GitHub. + +[install]: https://www.rust-lang.org/install.html +[notes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1682-2023-03-28 + +## What's in 1.68.2 stable + +Rust 1.68.2 addresses [GitHub's recent rotation of their RSA SSH host +key](https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/), which +happened on March 24th 2023 after their previous key accidentally leaked: + +* [GitHub's RSA key bundled in Cargo has been + updated](https://github.com/rust-lang/cargo/pull/11883), to ensure systems + that haven't interacted with GitHub yet won't connect trusting the leaked + key. + +* [The leaked key has been hardcoded as revoked in + Cargo](https://github.com/rust-lang/cargo/pull/11889), to ensure the key + won't be used by Cargo even on systems that still trust the key. + +[Support for `@revoked` entries in +`.ssh/known_hosts`](https://github.com/rust-lang/cargo/pull/11635) (along with +a better error message when the unsupported `@cert-authority` entries are used) +is also included in Rust 1.68.2, as that change was a pre-requisite for +backporting the hardcoded revocation. + +If you cannot upgrade to Rust 1.68.2, we recommend [following GitHub's +instructions](https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key/#what-you-can-do) +on updating the trusted keys in your system. Note that the keys bundled in +Cargo are only used if no trusted key for `github.com` is found on the system. + +### Contributors to 1.68.2 + +Many people came together to create Rust 1.68.2. We couldn't have done it +without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.68.2/) From 033cd7c5d3c3ff66e01acda2f601cba3d4d68181 Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Mon, 27 Mar 2023 11:54:55 +0000 Subject: [PATCH 0010/1024] Creating file via promote-release automation --- .../2023-03-27-1.68.2-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-03-27-1.68.2-prerelease.md diff --git a/posts/inside-rust/2023-03-27-1.68.2-prerelease.md b/posts/inside-rust/2023-03-27-1.68.2-prerelease.md new file mode 100644 index 000000000..4b03bfcad --- /dev/null +++ b/posts/inside-rust/2023-03-27-1.68.2-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.68.2 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.68.2 pre-release is ready for testing. The release is scheduled for +March 28. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-68-2-pre-release-testing/18585). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1682-2023-03-28 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 7e1ac71e848d24002d9eab1128965db41c0db028 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Thu, 6 Apr 2023 12:03:24 -0700 Subject: [PATCH 0011/1024] Add post welcoming two new Cargo team members --- posts/inside-rust/2023-04-06-cargo-new-members.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 posts/inside-rust/2023-04-06-cargo-new-members.md diff --git a/posts/inside-rust/2023-04-06-cargo-new-members.md b/posts/inside-rust/2023-04-06-cargo-new-members.md new file mode 100644 index 000000000..63d1332fb --- /dev/null +++ b/posts/inside-rust/2023-04-06-cargo-new-members.md @@ -0,0 +1,14 @@ +--- +layout: post +title: "Welcome Arlo and Scott to the Cargo Team" +author: Eric Huss +team: The Cargo Team +--- + +We are excited to welcome [Arlo Siemsen](https://github.com/arlosi) and [Scott Schafer](https://github.com/Muscraft) as new members to the Cargo Team! + +Arlo has been instrumental in bringing Cargo's new [sparse registry](https://blog.rust-lang.org/inside-rust/2023/01/30/cargo-sparse-protocol.html) support to fruition, which significantly improves registry performance. He has been involved with registry design and authentication discussions, and has been closely working with the team over the past year. + +Scott has been very active in the past year, working on various parts of Cargo, namely implementing [workspace inheritance](https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table). Since then, he has been helping with maintenance and designing new features. + +With their help we now have capacity to start thinking about how feature development should be done moving forward. We are still in early discussions of processes for matching feature development with reviewer capacity, and will share more in the future. Thanks to Arlo and Scott for their help, and we are very much looking forward to having them as a part of the team! From 9ade9002aeeba5665dab73a94b4ff6a0e7d776c2 Mon Sep 17 00:00:00 2001 From: Jane Losare-Lusby Date: Wed, 12 Apr 2023 20:03:38 +0000 Subject: [PATCH 0012/1024] Add blog post related to trademark policy draft --- ...3-04-12-trademark-policy-draft-feedback.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md diff --git a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md new file mode 100644 index 000000000..d4ac16362 --- /dev/null +++ b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md @@ -0,0 +1,63 @@ +--- +layout: post +title: "Seeking Feedback on a Trademark Policy Draft" +author: Ryan Levick, Jane Losare-Lusby, Tyler Mandry, Mark Rousskov, Josh Stone, and Josh Triplett +team: The Foundation Project Directors and informal Trademark Working Group Members +--- + +# Seeking Feedback on a Trademark Policy Draft + +The Rust Foundation Project Directors have been working with the informal Trademark Working Group and the Foundation staff to draft an updated policy and FAQ for the Rust trademark. We'd like to provide some context around this work and address the community response to the [feedback form] for the recently circulated draft. + +### Background + +Back when the Rust Foundation was created, one of the first things to happen was Mozilla transferring its ownership of the Rust trademark to the newly created foundation. An update to the existing policy[^mozilla-policy] was needed, and project leadership planned for this to be done together with the Foundation. + +[^mozilla-policy]: https://prev.rust-lang.org/en-US/legal.html + +Since we wanted to incorporate community input to this policy and make it accessible as possible, the board waited until the Foundation was well-staffed to coordinate the effort. That included things like running a [community-wide survey] and discussing the result with a number of stakeholders, including the board, community members, project leadership, as well as legal counsel. The latest state of this process is the draft that was published late last week. + +### Our approach + +Since the draft was announced, we've noticed a widespread impression that this policy was created solely by the Foundation and is being imposed on the Rust Project and community. That is not true. The policy draft was created with the input and consent of each of the co-authors of this post, with the intent to clarify existing policies, incorporate community feedback, and preserve the Rust brand for years to come. The Foundation also cannot – and has no interest in – unilaterally adopting such a policy without the agreement and involvement of its Project Directors. + +There can be wildly differing opinions on how to achieve a particular intent.[^survey] Fundamentally however, the question at hand is whether we want Rust to be a trademark or not. If we want to be able to defend Rust as the brand it is today, trademark law fundamentally constrains how permissible we can be, especially in public guidelines. + +Our answer to the question of whether Rust should be a trademark has been "yes", just as it has been since before Rust 1.0. Furthermore, our goal is to make a policy that is as permissive as it can be without substantially giving up our right to define what Rust *is* and *is not* in the future. Not all open source projects have retained that right. + +We aren't lawyers and we leave the question of *how* to do that to them – and believe us when we say we have gone through *many* rounds of questions with ours, who have extensive experience in open source projects. + +### Feedback + +The current proposal is a draft that the Foundation staff, Project Directors, and Trademark Working Group are actively seeking feedback on. We will not ship a trademark policy that Project representatives and the Foundation aren't happy with and proud of after reviewing community feedback. + +We genuinely appreciate all the thoughtful input the community has already left, both in public and via the [feedback form].[^form] Please continue to utilize this form as the official way of getting feedback back into this process. We know the draft is not perfect, and we're committed to fixing any mistakes identified and considering the feedback we get. + +Unfortunately, in addition to the large volume of thoughtful and respectful feedback, we're ashamed to say we've seen firsthand examples of significant harassment and abuse directed at the Foundation staff. **We condemn this in the strongest possible terms.** These folks have been doing their best to navigate an extremely diverse set of interests and viewpoints throughout this process. It's unacceptable for anyone in the Rust community to demean, harass or insult anyone, let alone the people we've asked to do this work. + +Please remember that any and all communication with Foundation staff is subject to the Rust project [Code of Conduct] and will be enforced accordingly. We don't expect this to be an issue for most people participating, but when emotions run high it's always a good idea to check your assumptions and remember the person on the other end of the keyboard. + +### Next steps + +We want to thank the community for participating in this process, and for your patience as we learn the best way to navigate it. We recognize that the process and communication around it could have been better. Notably, the wider project was insufficiently included in the process. We were responsible for that and apologize. + +We're committed to learning everything we can from this process and your feedback, and to talking as openly as we can about what we've learned. To that end, we will soon conduct and publish a retrospective around how the process unfolded. + +Thank you again to those who have shared their thoughts on the Rust Trademark Policy draft respectfully. A summary of the feedback received will be shared after the consultation period closes. If you have not yet reviewed the draft, we invite you to fill out the [feedback form] by April 16 at 5 PM PDT. We only ask that you treat everyone in this community, including the Rust Foundation team, respectfully when doing so. + +Sincerely, (project directors and wg members add your names please) + +* Ryan Levick, Project Director and trademark working group member +* Jane Losare-Lusby, Project Director +* Tyler Mandry, Project Director +* Mark Rousskov, Project Director +* Josh Stone, Project Director and trademark working group member +* Josh Triplett, Lang team lead and trademark working group member + +[^form]: We know this feedback-via-form exercise is not familiar, and we're still getting used to it, too. But it's really the best we can do when we're asking a heroic staff to read and respond to the feedback, and when it's a legal matter where what we say can have substantial consequences down the line. + +[^survey]: This was none more apparent than when the community survey got over 1,000 responses, representing a number of popular but fundamentally incompatible views. + +[feedback form]: https://docs.google.com/forms/d/e/1FAIpQLSdaM4pdWFsLJ8GHIUFIhepuq0lfTg_b0mJ-hvwPdHa4UTRaAg/viewform + +[Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct \ No newline at end of file From 33415debc787af7810839053dfd48f9c20807d24 Mon Sep 17 00:00:00 2001 From: Jane Losare-Lusby Date: Wed, 12 Apr 2023 20:06:18 +0000 Subject: [PATCH 0013/1024] fix header levels --- .../2023-04-12-trademark-policy-draft-feedback.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md index d4ac16362..193c1f832 100644 --- a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md +++ b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md @@ -9,7 +9,7 @@ team: The Foundation Project Directors and informal Trademark Working Group Memb The Rust Foundation Project Directors have been working with the informal Trademark Working Group and the Foundation staff to draft an updated policy and FAQ for the Rust trademark. We'd like to provide some context around this work and address the community response to the [feedback form] for the recently circulated draft. -### Background +## Background Back when the Rust Foundation was created, one of the first things to happen was Mozilla transferring its ownership of the Rust trademark to the newly created foundation. An update to the existing policy[^mozilla-policy] was needed, and project leadership planned for this to be done together with the Foundation. @@ -17,7 +17,7 @@ Back when the Rust Foundation was created, one of the first things to happen was Since we wanted to incorporate community input to this policy and make it accessible as possible, the board waited until the Foundation was well-staffed to coordinate the effort. That included things like running a [community-wide survey] and discussing the result with a number of stakeholders, including the board, community members, project leadership, as well as legal counsel. The latest state of this process is the draft that was published late last week. -### Our approach +## Our approach Since the draft was announced, we've noticed a widespread impression that this policy was created solely by the Foundation and is being imposed on the Rust Project and community. That is not true. The policy draft was created with the input and consent of each of the co-authors of this post, with the intent to clarify existing policies, incorporate community feedback, and preserve the Rust brand for years to come. The Foundation also cannot – and has no interest in – unilaterally adopting such a policy without the agreement and involvement of its Project Directors. @@ -27,7 +27,7 @@ Our answer to the question of whether Rust should be a trademark has been "yes", We aren't lawyers and we leave the question of *how* to do that to them – and believe us when we say we have gone through *many* rounds of questions with ours, who have extensive experience in open source projects. -### Feedback +## Feedback The current proposal is a draft that the Foundation staff, Project Directors, and Trademark Working Group are actively seeking feedback on. We will not ship a trademark policy that Project representatives and the Foundation aren't happy with and proud of after reviewing community feedback. @@ -37,7 +37,7 @@ Unfortunately, in addition to the large volume of thoughtful and respectful feed Please remember that any and all communication with Foundation staff is subject to the Rust project [Code of Conduct] and will be enforced accordingly. We don't expect this to be an issue for most people participating, but when emotions run high it's always a good idea to check your assumptions and remember the person on the other end of the keyboard. -### Next steps +## Next steps We want to thank the community for participating in this process, and for your patience as we learn the best way to navigate it. We recognize that the process and communication around it could have been better. Notably, the wider project was insufficiently included in the process. We were responsible for that and apologize. From e72a54b382944a4b45b5043b42efa2e83f205801 Mon Sep 17 00:00:00 2001 From: Jane Losare-Lusby Date: Wed, 12 Apr 2023 13:18:20 -0700 Subject: [PATCH 0014/1024] Update posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md Co-authored-by: Josh Stone --- posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md index 193c1f832..b82dbe032 100644 --- a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md +++ b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md @@ -45,7 +45,7 @@ We're committed to learning everything we can from this process and your feedbac Thank you again to those who have shared their thoughts on the Rust Trademark Policy draft respectfully. A summary of the feedback received will be shared after the consultation period closes. If you have not yet reviewed the draft, we invite you to fill out the [feedback form] by April 16 at 5 PM PDT. We only ask that you treat everyone in this community, including the Rust Foundation team, respectfully when doing so. -Sincerely, (project directors and wg members add your names please) +Sincerely, * Ryan Levick, Project Director and trademark working group member * Jane Losare-Lusby, Project Director From 471d006c323fe599b89ad825df79e74dd421e90b Mon Sep 17 00:00:00 2001 From: Jane Losare-Lusby Date: Wed, 12 Apr 2023 13:18:28 -0700 Subject: [PATCH 0015/1024] Update posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md Co-authored-by: Tyler Mandry --- posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md index b82dbe032..ae4e9735b 100644 --- a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md +++ b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md @@ -5,7 +5,7 @@ author: Ryan Levick, Jane Losare-Lusby, Tyler Mandry, Mark Rousskov, Josh Stone, team: The Foundation Project Directors and informal Trademark Working Group Members --- -# Seeking Feedback on a Trademark Policy Draft +# A note on the Trademark Policy Draft The Rust Foundation Project Directors have been working with the informal Trademark Working Group and the Foundation staff to draft an updated policy and FAQ for the Rust trademark. We'd like to provide some context around this work and address the community response to the [feedback form] for the recently circulated draft. From 0084f313231e2231bd5e108c37555072f2e17e44 Mon Sep 17 00:00:00 2001 From: Jane Losare-Lusby Date: Wed, 12 Apr 2023 13:19:03 -0700 Subject: [PATCH 0016/1024] Update posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md --- posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md index ae4e9735b..0f1c00f44 100644 --- a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md +++ b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md @@ -1,6 +1,6 @@ --- layout: post -title: "Seeking Feedback on a Trademark Policy Draft" +title: "A note on the Trademark Policy Draft" author: Ryan Levick, Jane Losare-Lusby, Tyler Mandry, Mark Rousskov, Josh Stone, and Josh Triplett team: The Foundation Project Directors and informal Trademark Working Group Members --- From b575ba946d508a3c7c0516ccd4447d6332f4f587 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Wed, 12 Apr 2023 22:39:07 +0200 Subject: [PATCH 0017/1024] Apply suggestions from code review Co-authored-by: Tyler Mandry --- .../inside-rust/2023-04-12-trademark-policy-draft-feedback.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md index 0f1c00f44..73bb7749b 100644 --- a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md +++ b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md @@ -2,12 +2,11 @@ layout: post title: "A note on the Trademark Policy Draft" author: Ryan Levick, Jane Losare-Lusby, Tyler Mandry, Mark Rousskov, Josh Stone, and Josh Triplett -team: The Foundation Project Directors and informal Trademark Working Group Members --- # A note on the Trademark Policy Draft -The Rust Foundation Project Directors have been working with the informal Trademark Working Group and the Foundation staff to draft an updated policy and FAQ for the Rust trademark. We'd like to provide some context around this work and address the community response to the [feedback form] for the recently circulated draft. +For the past eight months, the Rust Foundation Project Directors have been working with the informal Trademark Working Group and the Foundation staff to draft an updated policy and FAQ for the Rust trademark. We'd like to provide some context around this work and address the community response to the [feedback form] for the recently circulated draft. ## Background From 9203b8cc1f84a0843c8ae57e43e461d3e6c8476a Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Wed, 12 Apr 2023 23:10:04 +0200 Subject: [PATCH 0018/1024] fix links --- .../2023-04-12-trademark-policy-draft-feedback.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md index 73bb7749b..c5c043b23 100644 --- a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md +++ b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md @@ -10,9 +10,7 @@ For the past eight months, the Rust Foundation Project Directors have been worki ## Background -Back when the Rust Foundation was created, one of the first things to happen was Mozilla transferring its ownership of the Rust trademark to the newly created foundation. An update to the existing policy[^mozilla-policy] was needed, and project leadership planned for this to be done together with the Foundation. - -[^mozilla-policy]: https://prev.rust-lang.org/en-US/legal.html +Back when the Rust Foundation was created, one of the first things to happen was Mozilla transferring its ownership of the Rust trademark to the newly created foundation. An update to the [existing policy] was needed, and project leadership planned for this to be done together with the Foundation. Since we wanted to incorporate community input to this policy and make it accessible as possible, the board waited until the Foundation was well-staffed to coordinate the effort. That included things like running a [community-wide survey] and discussing the result with a number of stakeholders, including the board, community members, project leadership, as well as legal counsel. The latest state of this process is the draft that was published late last week. @@ -57,6 +55,10 @@ Sincerely, [^survey]: This was none more apparent than when the community survey got over 1,000 responses, representing a number of popular but fundamentally incompatible views. +[existing policy]: http://web.archive.org/web/20230407100922/https://foundation.rust-lang.org/policies/logo-policy-and-media-guide/ + [feedback form]: https://docs.google.com/forms/d/e/1FAIpQLSdaM4pdWFsLJ8GHIUFIhepuq0lfTg_b0mJ-hvwPdHa4UTRaAg/viewform -[Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct \ No newline at end of file +[Code of Conduct]: https://www.rust-lang.org/policies/code-of-conduct + +[community-wide survey]: https://foundation.rust-lang.org/news/2022-08-09-trademark-policy-review-and-survey/ From a146ae2f989c322e3ca19d780ce8fa6124f02fcc Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Sat, 15 Apr 2023 12:32:27 +0200 Subject: [PATCH 0019/1024] add post for rust 1.69.0 --- posts/2023-04-20-Rust-1.69.0.md | 70 +++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 posts/2023-04-20-Rust-1.69.0.md diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md new file mode 100644 index 000000000..a6734917c --- /dev/null +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -0,0 +1,70 @@ +--- +layout: post +title: "Announcing Rust 1.69.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a nice version of Rust, 1.69.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via rustup, you can get 1.69.0 with: + +```console +rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.69.0](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1690-2023-04-20) on GitHub. + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.69.0 stable + +Rust 1.69.0 doesn't contain major new features. Instead, it focuses on smaller improvements. + +### Cargo now suggests to automatically fix some warnings + +Rust 1.29.0 added a Cargo subcommand to automatically fixing some compilation warnings. Since then, the amount of warnings that can be fixed automatically steadily increased, and support for automatically fixing a subset of Clippy warnings was introduced. + +Starting from Rust 1.69.0, Cargo will suggest running `cargo fix` or `cargo clippy --fix` when it detects some warnings are automatically fixable. + +### Debug information is not included in build scripts by default anymore + +To improve compilation speed, Cargo now avoids emitting debug information in build scripts by default. There will be no visible effect when build scripts execute successfully, but backtraces in build scripts will contain less information. + +If you need to debug a buggy build script, you can add this snippet to your `Cargo.toml` to emit debug information again: + +```toml +[profile.dev.build-override] +debug = true +[profile.release.build-override] +debug = true +``` + +### Stabilized APIs + +- [`CStr::from_bytes_until_nul`](https://doc.rust-lang.org/stable/core/ffi/struct.CStr.html#method.from_bytes_until_nul) +- [`core::ffi::FromBytesUntilNulError`](https://doc.rust-lang.org/stable/core/ffi/struct.FromBytesUntilNulError.html) + +These APIs are now stable in const contexts: + +- [`SocketAddr::new`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.new) +- [`SocketAddr::ip`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.ip) +- [`SocketAddr::port`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.port) +- [`SocketAddr::is_ipv4`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.is_ipv4) +- [`SocketAddr::is_ipv6`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.is_ipv6) +- [`SocketAddrV4::new`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.new) +- [`SocketAddrV4::ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.ip) +- [`SocketAddrV4::port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.port) +- [`SocketAddrV6::new`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.new) +- [`SocketAddrV6::ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.ip) +- [`SocketAddrV6::port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.port) +- [`SocketAddrV6::flowinfo`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.flowinfo) +- [`SocketAddrV6::scope_id`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.scope_id) + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1690-2023-04-20), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-169-2023-04-20), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-169). + +## Contributors to 1.69.0 + +Many people came together to create Rust 1.69.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.69.0/) From 6647d0ef581c7551395e0bd755d95b7dce3e50ee Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 17 Apr 2023 00:37:53 +0900 Subject: [PATCH 0020/1024] Update posts/2023-04-20-Rust-1.69.0.md Co-authored-by: est31 --- posts/2023-04-20-Rust-1.69.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md index a6734917c..0b16d92c7 100644 --- a/posts/2023-04-20-Rust-1.69.0.md +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -23,7 +23,7 @@ Rust 1.69.0 doesn't contain major new features. Instead, it focuses on smaller i ### Cargo now suggests to automatically fix some warnings -Rust 1.29.0 added a Cargo subcommand to automatically fixing some compilation warnings. Since then, the amount of warnings that can be fixed automatically steadily increased, and support for automatically fixing a subset of Clippy warnings was introduced. +Rust 1.29.0 added a Cargo subcommand to automatically fix some compilation warnings. Since then, the amount of warnings that can be fixed automatically has steadily increased, and support for automatically fixing a subset of Clippy warnings was introduced. Starting from Rust 1.69.0, Cargo will suggest running `cargo fix` or `cargo clippy --fix` when it detects some warnings are automatically fixable. From 0a4b54876f526b8a9179093ecf6672e71edd3714 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Mon, 17 Apr 2023 00:38:08 +0900 Subject: [PATCH 0021/1024] Update posts/2023-04-20-Rust-1.69.0.md Co-authored-by: est31 --- posts/2023-04-20-Rust-1.69.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md index 0b16d92c7..8c31e0ee2 100644 --- a/posts/2023-04-20-Rust-1.69.0.md +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -31,7 +31,7 @@ Starting from Rust 1.69.0, Cargo will suggest running `cargo fix` or `cargo clip To improve compilation speed, Cargo now avoids emitting debug information in build scripts by default. There will be no visible effect when build scripts execute successfully, but backtraces in build scripts will contain less information. -If you need to debug a buggy build script, you can add this snippet to your `Cargo.toml` to emit debug information again: +If you want to debug a build script, you can add this snippet to your `Cargo.toml` to emit debug information again: ```toml [profile.dev.build-override] From ae8754871a60e5ffeb88a7cd90f2ec1919dba198 Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Mon, 17 Apr 2023 09:11:05 +0000 Subject: [PATCH 0022/1024] Creating file via promote-release automation --- .../2023-04-17-1.69.0-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-04-17-1.69.0-prerelease.md diff --git a/posts/inside-rust/2023-04-17-1.69.0-prerelease.md b/posts/inside-rust/2023-04-17-1.69.0-prerelease.md new file mode 100644 index 000000000..84f1ac158 --- /dev/null +++ b/posts/inside-rust/2023-04-17-1.69.0-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.69.0 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.69.0 pre-release is ready for testing. The release is scheduled for +April 20. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-69-0-pre-release-testing/18692). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1690-2023-04-20 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 7afa2ee0b389ac03705b628fcc2da7a9711114ac Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Thu, 20 Apr 2023 15:24:31 +0200 Subject: [PATCH 0023/1024] Update posts/2023-04-20-Rust-1.69.0.md Co-authored-by: bstrie <865233+bstrie@users.noreply.github.com> --- posts/2023-04-20-Rust-1.69.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md index 8c31e0ee2..04f03240d 100644 --- a/posts/2023-04-20-Rust-1.69.0.md +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -19,7 +19,7 @@ If you'd like to help us out by testing future releases, you might consider upda ## What's in 1.69.0 stable -Rust 1.69.0 doesn't contain major new features. Instead, it focuses on smaller improvements. +Rust 1.69.0 introduces no major new features. However, it contains many small improvements, including over 3,000 commits from over 500 contributors. ### Cargo now suggests to automatically fix some warnings From 6ff9b22998428b12ddeabc55382cd3d7519d5992 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Thu, 20 Apr 2023 15:52:47 +0200 Subject: [PATCH 0024/1024] Update posts/2023-04-20-Rust-1.69.0.md Co-authored-by: bstrie <865233+bstrie@users.noreply.github.com> --- posts/2023-04-20-Rust-1.69.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md index 04f03240d..784778cde 100644 --- a/posts/2023-04-20-Rust-1.69.0.md +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -23,7 +23,7 @@ Rust 1.69.0 introduces no major new features. However, it contains many small im ### Cargo now suggests to automatically fix some warnings -Rust 1.29.0 added a Cargo subcommand to automatically fix some compilation warnings. Since then, the amount of warnings that can be fixed automatically has steadily increased, and support for automatically fixing a subset of Clippy warnings was introduced. +Rust 1.29.0 added the `cargo fix` subcommand to automatically fix some simple compiler warnings. Since then, the number of warnings that can be fixed automatically continues to steadily increase. In addition, support for automatically fixing some simple Clippy warnings has also been added. Starting from Rust 1.69.0, Cargo will suggest running `cargo fix` or `cargo clippy --fix` when it detects some warnings are automatically fixable. From 61a931114bef85c7a543a02f6cdf921fbb93d4c7 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Thu, 20 Apr 2023 15:53:12 +0200 Subject: [PATCH 0025/1024] Update posts/2023-04-20-Rust-1.69.0.md Co-authored-by: bstrie <865233+bstrie@users.noreply.github.com> --- posts/2023-04-20-Rust-1.69.0.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md index 784778cde..fbc6bb5ff 100644 --- a/posts/2023-04-20-Rust-1.69.0.md +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -25,7 +25,19 @@ Rust 1.69.0 introduces no major new features. However, it contains many small im Rust 1.29.0 added the `cargo fix` subcommand to automatically fix some simple compiler warnings. Since then, the number of warnings that can be fixed automatically continues to steadily increase. In addition, support for automatically fixing some simple Clippy warnings has also been added. -Starting from Rust 1.69.0, Cargo will suggest running `cargo fix` or `cargo clippy --fix` when it detects some warnings are automatically fixable. +In order to draw more attention to these increased capabilities, Cargo will now suggest running `cargo fix` or `cargo clippy --fix` when it detects warnings that are automatically fixable: + + warning: unused import: `std::hash::Hash` + --> src/main.rs:1:5 + | + 1 | use std::hash::Hash; + | ^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + + warning: `foo` (bin "foo") generated 1 warning (run `cargo fix --bin "foo"` to apply 1 suggestion) + +Note that the full Cargo invocation shown above is only necessary if you want to precisely apply fixes to a single crate. If you want to apply fixes to all the default members of a workspace, then a simple `cargo fix` (with no additional arguments) will suffice. ### Debug information is not included in build scripts by default anymore From bb7bd126d51155ae4a3994471bdb87cb90d14c1e Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Thu, 20 Apr 2023 15:57:06 +0200 Subject: [PATCH 0026/1024] remove syntax highlighting --- posts/2023-04-20-Rust-1.69.0.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md index fbc6bb5ff..78a8d0985 100644 --- a/posts/2023-04-20-Rust-1.69.0.md +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -27,15 +27,17 @@ Rust 1.29.0 added the `cargo fix` subcommand to automatically fix some simple co In order to draw more attention to these increased capabilities, Cargo will now suggest running `cargo fix` or `cargo clippy --fix` when it detects warnings that are automatically fixable: - warning: unused import: `std::hash::Hash` - --> src/main.rs:1:5 - | - 1 | use std::hash::Hash; - | ^^^^^^^^^^^^^^^ - | - = note: `#[warn(unused_imports)]` on by default - - warning: `foo` (bin "foo") generated 1 warning (run `cargo fix --bin "foo"` to apply 1 suggestion) +```text +warning: unused import: `std::hash::Hash` + --> src/main.rs:1:5 + | +1 | use std::hash::Hash; + | ^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +warning: `foo` (bin "foo") generated 1 warning (run `cargo fix --bin "foo"` to apply 1 suggestion) +``` Note that the full Cargo invocation shown above is only necessary if you want to precisely apply fixes to a single crate. If you want to apply fixes to all the default members of a workspace, then a simple `cargo fix` (with no additional arguments) will suffice. From acd01ce998b37ecd760d377f71d36b242dfc613e Mon Sep 17 00:00:00 2001 From: Rustin Date: Tue, 25 Apr 2023 20:30:07 +0800 Subject: [PATCH 0027/1024] (posts): Add Rustup 1.26.0 release announcement post (#1098) --- posts/2023-04-25-Rustup-1.26.0.md | 86 +++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 posts/2023-04-25-Rustup-1.26.0.md diff --git a/posts/2023-04-25-Rustup-1.26.0.md b/posts/2023-04-25-Rustup-1.26.0.md new file mode 100644 index 000000000..50d8ecbd2 --- /dev/null +++ b/posts/2023-04-25-Rustup-1.26.0.md @@ -0,0 +1,86 @@ +--- +layout: post +title: "Announcing Rustup 1.26.0" +author: The Rustup Working Group +--- + +The rustup working group is happy to announce the release of rustup version 1.26.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. + +If you have a previous version of rustup installed, getting rustup 1.26.0 is as easy as stopping any programs which may be using Rustup (e.g. closing your IDE) and running: + +```console +rustup self update +``` + +Rustup will also automatically update itself at the end of a normal toolchain update: + +```console +rustup update +``` + +If you don't have it already, you can [get rustup][install] from the appropriate page on our website. + +[rust]: https://www.rust-lang.org +[install]: https://rustup.rs + +## What's new in rustup 1.26.0 + +This version of Rustup involves a significant number of internal cleanups, both in terms +of the Rustup code and its tests. In addition to a lot of work on the codebase +itself, due to the length of time since the last release this one has a record number +of contributors and we thank you all for your efforts and time. + +The headlines for this release are: + +1. Add rust-analyzer as a proxy of rustup. Now you can call rust-analyzer and it will be proxied to the rust-analyzer component for the current toolchain. + +2. Bump the clap dependency from 2.x to 3.x. It's a major version bump, so there are some help text changes, but the command line interface is unchanged. + +3. Remove experimental GPG signature validation and the rustup show keys command. Due to its experimental status, validating the integrity of downloaded binaries did not rely on it, and there was no option to abort the installation if a signature mismatch happened. Multiple problems with its implementation were discovered in the recent months, which led to the decision to remove the experimental code. The team is working on the design of a new signature validation scheme, which will be implemented in the future. + +Full details are available in the [changelog]! + +Rustup's documentation is also available in [the rustup book][book]. + +[changelog]: https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md +[book]: https://rust-lang.github.io/rustup/ + +## Thanks + +Thanks again to all the contributors who made rustup 1.26.0 possible! + +- Daniel Silverstone (kinnison) +- Sabrina Jewson (SabrinaJewson) +- Robert Collins (rbtcollins) +- chansuke (chansuke) +- Shamil (shamilsan) +- Oli Lalonde (olalonde) +- 二手掉包工程师 (hi-rustin) +- Eric Huss (ehuss) +- J Balint BIRO (jbalintbiro) +- Easton Pillay (jedieaston) +- zhaixiaojuan (zhaixiaojuan) +- Chris Denton (ChrisDenton) +- Martin Geisler (mgeisler) +- Lucio Franco (LucioFranco) +- Nicholas Bishop (nicholasbishop) +- SADIK KUZU (sadikkuzu) +- darkyshiny (darkyshiny) +- René Dudfield (illume) +- Noritada Kobayashi (noritada) +- Mohammad AlSaleh (MoSal) +- Dustin Martin (dmartin) +- Ville Skyttä (scop) +- Tshepang Mbambo (tshepang) +- Illia Bobyr (ilya-bobyr) +- Vincent Rischmann (vrischmann) +- Alexander (Alovchin91) +- Daniel Brotsky (brotskydotcom) +- zohnannor (zohnannor) +- Joshua Nelson (jyn514) +- Prikshit Gautam (gautamprikshit1) +- Dylan Thacker-Smith (dylanahsmith) +- Jan David (jdno) +- Aurora (lilith13666) +- Pietro Albini (pietroalbini) +- Renovate Bot (renovate-bot) From fb449604866917912a4e1d277d83bdaecf34196c Mon Sep 17 00:00:00 2001 From: Saikat Das Date: Tue, 25 Apr 2023 19:47:48 +0530 Subject: [PATCH 0028/1024] chore: fix typo --- posts/2016-05-13-rustup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2016-05-13-rustup.md b/posts/2016-05-13-rustup.md index 5096f4578..b29bb64bb 100644 --- a/posts/2016-05-13-rustup.md +++ b/posts/2016-05-13-rustup.md @@ -38,7 +38,7 @@ OpenWRT][OpenWRT], and many others. But in practice, there are a lot of ducks you have to get in a row to make it work: the appropriate Rust standard library, a cross-compiling C toolchain including linker, headers and binaries for C libraries, -and so on. This typically involves pouring over various blog posts +and so on. This typically involves poring over various blog posts and package installers to get everything "just so". And the exact set of tools can be different for every pair of host and target platforms. From 35bfa9ebcf5078061e3c9c5b5f0aab6627dfec90 Mon Sep 17 00:00:00 2001 From: Weihang Lo Date: Thu, 27 Apr 2023 23:14:44 +0100 Subject: [PATCH 0029/1024] Share the experience of postmortem analysis in Cargo --- .../2023-05-01-cargo-postmortem.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 posts/inside-rust/2023-05-01-cargo-postmortem.md diff --git a/posts/inside-rust/2023-05-01-cargo-postmortem.md b/posts/inside-rust/2023-05-01-cargo-postmortem.md new file mode 100644 index 000000000..d458b1537 --- /dev/null +++ b/posts/inside-rust/2023-05-01-cargo-postmortem.md @@ -0,0 +1,29 @@ +--- +layout: post +title: Postmortem Analysis in Cargo +author: Jon Gjengset and Weihang Lo +team: The Cargo Team +--- + +At 01:52 UTC, 2022-10-28, [rust-lang/cargo#11183] was merged into the Cargo master branch. It introduced a bug that caused Cargo to fail to build packages that use a particular, but very common, dependency setup. The change nearly made its way into the next nightly release. If it had, it would have rendered any of the 30k crates with `serde_derive` as a dependency (one of the most popular crate on crates.io) unbuildable for anyone using the resulting nightly release. + +Following this incident, the Cargo team went through a postmortem analysis, as is appropriate for incidents with (a potential for) broad blast-radius or otherwise significant impact. This time around, we followed a particular structured postmortem template in the hopes that it might make the resulting write-up more thorough, insightful, and actionable, and we ultimately found that it gave us a better understanding of the underlying root causes and failing/missing safe-guards. So, we wanted to share our experience with other Rust teams in case they may find it similarly useful, either in part or as a whole. + +The postmortem template consists of four parts: + +* **What happened:** a summary that provides context for the event, including metrics or graphs that illustrate the impact of the event if available. This should include a summary of any user-facing impacts or experience during the event. +* **How we responded:** a timeline that describes all the events that occurred during the incident including specific date/time to the extent that they are known, as well as answers to the following four questions: + * How was the event detected? + * How could time to detection be improved? + * How did you reach the point where you knew how to mitigate the impact? + * How could time to mitigation be improved? +* **Why the event happened:** this is the juicy part. Here, we use the [Five Whys] approach to dig deeply down until the incident’s root causes are identified. Each answer is meant to spawn one or more why questions, until you’re confident that the left answers are fundamentally root causes. It’s also worth pointing out explicitly that “operator error” is **never** a root cause, and that this is not a process for assigning blame. Instead, any operator error is a symptom of a missing or broken mechanism, and the answers should focus on identifying those inadequate mechanisms. +* **How to fix it:** The outcome of the Five Whys exercise is a list of root causes that should be addressed to reduce the risk of a similar incident in the future. From these root causes, we produce short- and medium-term “action items” along with specific owners wherever possible. Long-term solutions can be discussed too, although the focus of action items should be on more immediate mitigation steps that will be taken relatively soon. Each action item is assigned a priority, and is then generally turned into a GitHub issue where applicable. Any items identified as urgent we start working on immediately, while other action items usually fall into the categories “soon” or “once feasible”. + +*Note: to ensure the focus stays on mechanisms and processes, not individuals, individuals should not be named unless absolutely necessary. Use terms like "a contributor", "the maintainer", "a libs team member", etc.* + +So, without further ado, here is [the postmortem for the aforementioned Cargo incident][postmortem]. + +[rust-lang/cargo#11183]: https://github.com/rust-lang/cargo/pull/11183 +[Five Whys]: https://en.wikipedia.org/wiki/Five_whys +[postmortem]: https://hackmd.io/@rust-cargo-team/2022-10-28-postmortem From cccc28419fd449713629cb5a9803381ebfedf8a4 Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Fri, 28 Apr 2023 18:36:52 -0400 Subject: [PATCH 0030/1024] Post: Stabilizing async fn in traits in 2023 --- ...023-05-01-stabilizing-async-fn-in-trait.md | 197 ++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 posts/inside-rust/2023-05-01-stabilizing-async-fn-in-trait.md diff --git a/posts/inside-rust/2023-05-01-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-01-stabilizing-async-fn-in-trait.md new file mode 100644 index 000000000..fff9e6388 --- /dev/null +++ b/posts/inside-rust/2023-05-01-stabilizing-async-fn-in-trait.md @@ -0,0 +1,197 @@ +--- +layout: post +title: "Stabilizing async fn in traits in 2023" +author: Niko Matsakis and Tyler Mandry +team: The Rust Async Working Group +--- + +The async working group's headline goal for 2023 is to stabilize a "minimum viable product" (MVP) version of async functions in traits. We are currently targeting Rust 1.74 for stabilization. This post lays out the features we plan to ship and the status of each one. + +In November, we [blogged about nightly support for async fn in trait][pp] and identified some key next steps, most importantly [support for send bounds to allow spawning in generic functions](https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html#limitation-spawning-from-generics). Since then we've done a significant amount of design exploration and collected a set of case studies evaluating how well the current code works in practice. + +As of now, all of the functionality described in this blog post is implemented and available in some form on the nightly compiler. This was done to prove out the viability, but not all of it has been formally RFC'd. We'll link to playground examples and RFCs where appropriate so you can try it for yourself or read about the details. + +[pp]: https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html + +## MVP Part 1: Core support for "async functions in traits" + +The easiest way to explain what we are going to stabilize is to use a code example. To start, we will permit the use of `async fn` in traits definitions... + +```rust +trait HealthCheck { + async fn check(&mut self) -> bool; +} +``` + +...and you can then use `async fn` in the corresponding impl: + +```rust +impl HealthCheck for MyHealthChecker { + async fn check(&mut self) -> bool { + do_async_op().await + } +} +``` + +Traits with async functions can then be used as you normally would: + +```rust +async fn do_health_check(hc: impl HealthCheck) { + if !hc.check().await { + log_health_check_failure().await; + } +} +``` + +**Status:** This functionality was described in [RFC 3185], merged on Dec 7, 2021, and was covered in detail in our [previous blog post][pp]. + +[RFC 3185]: https://rust-lang.github.io/rfcs/3185-static-async-fn-in-trait.html + + +## MVP Part 2: Send bounds and associated return types + +There is one complication that arises when using async functions in traits that doesn't arise with sync functions. Many async runtimes -- notably including the default configurations of [Tokio] and [async-std] -- use a workstealing thread scheduler. This means that futures may move between worker threads dynamically to achieve load balancing. As a result, the future must only capture `Send` data. + +[Tokio]: https://tokio.rs/ + +[async-std]: https://async.rs/ + +If you author a generic async function that spawns tasks on one of those runtimes, however, you will start to get compilation errors ([playground](XXX)): + +```rust +async fn do_health_check_par(hc: impl HealthCheck) { + tokio::task::spawn(async move { + if !hc.check().await { + log_health_check_failure().await; + } + }); +} +``` + +The problem is that the future returned by `hc.check()` isn't guaranteed to be `Send`. It might access non-Send data. The solution is to add a `Send` bound, but given that this is an async function, it's not obvious how to do that. How do we talk about the future returned by a call to `hc.check()`? Associated return types provide the answer. We can convert the above function to use an explicit type parameter `HC` (instead of `impl HealthCheck`) and then add a new bound, `HC::check(): Send`. This says "the value returned by `HC::check` must be of `Send` type": + +```rust +async fn do_health_check_par(hc: HC) +where + HC: HealthCheck + Send + 'static, + HC::check(): Send, // <-- associated return type +{ + tokio::task::spawn(async move { + if !hc.check().await { + log_health_check_failure().await; + } + }); +} +``` + +Of course, it's kind of unfortunate that we had to rewrite from taking an `impl HealthCheck` to an explicit `HC` type parameter in order to use this notation. RFC #2289, "associated type bounds", introduced a compact notation to address this problem. That RFC is not part of this MVP, but if it were stabilized, then one could simply write: + +```rust +async fn do_health_check_par(hc: impl HealthCheck + Send + 'static) { + // ------------- + tokio::task::spawn(async move { + if !hc.check().await { + log_health_check_failure().await; + } + }); +} +``` + +In our [previous post][pp], we [hypothesized](https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html#hypothesis-this-is-uncommon) that this problem might not occur often in practice. However, our case studies found that it comes up quite frequently, and so we decided that a solution is needed. We explored a number of solutions and concluded that associated return types are the most practical. + +**Status:** Associated return types have an experimental implementation and we are currently drafting an RFC. There are several open bugs that will need to be fixed. + +## MVP Part 3: "impl trait in traits" (return position) + +All across Rust, an async function is "syntactic sugar" for a function that returns an `impl Future` -- and async functions in traits are no exception. As part of the MVP, we plan to stabilize the use of `-> impl Trait` notation in traits. + +Impl trait in traits has all kinds of uses, but one common one for async programming is to avoid capturing all of the function arguments by doing some amount of sync work and then returning a future for the rest. For example, this `LaunchService` trait declares a `launch` function that does not capture `self` (similar to the existing Tower [`Service`] trait): + +[`Service`]: https://docs.rs/tower/latest/tower/trait.Service.html + +```rust +trait LaunchService { + fn launch( + &mut self, + request: Request, + ) -> impl Future; + // ------------------------- + // Does not capture `self` as it does + // not include a `+ '_`. +} +``` + +Even though the need for "impl trait in traits" comes up a lot in async, they are a general feature that will be useful in many contexts having nothing to do with async (for example, returning iterators from trait methods). + +**Status:** Return-position impl trait in traits have an experimental implementation and are described in the recently opened [RFC 3425]. + +[RFC 3425]: https://github.com/rust-lang/rfcs/pull/3425 + +## Evaluating the MVP + +To evaluate the utility of this MVP, the working group collected [five case studies][] covering the [builder-provider pattern used in the AWS SDK](https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/builder-provider-api.html#dynamic-dispatch-behind-the-api); the potential use of async function in traits in [tower][cst] and the actual use in [embassy][cse], the [Fuchsia networking stack][] and [an internal Microsoft tool][]. These studies validated that the above functionality is sufficient to use async function in traits for all kinds of things, though some situations require workarounds (hence the "MVP" title). + +[Fuchsia networking stack]: https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/socket-handler.html + +[an internal Microsoft tool]: https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/microsoft.html + +[cst]: https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/tower.html + +[cse]: https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/embassy.html + +[five case studies]: https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies.html + +## What the MVP will not support or won't support well + +The case studies revealed two situations that the MVP doesn't support very well, but both of them have workarounds available. These workarounds are mechanical and once the MVP is available on stable it will be possible to automate them via a custom derive or other crates on crates.io. + +### Modeling dynamic dispatch + +In the MVP, traits that use async functions are not "dyn safe", meaning that they don't support dynamic dispatch. So e.g. given the `HealthCheck` trait we saw earlier, one could not write `Box`. At first, this seems like a crucial limitation, since many of the use cases require dynamic dispatch! But it turns out that there is a workaround. One can define an "erased" trait internally to your crate that enables dynamic dispatch. The process was pioneered by crates like [erased serde][] and is explained in detail in the [builder-provider case study][]. + +In the future, async fn should work with `dyn Trait` directly. + +[erased serde]: https://github.com/dtolnay/erased-serde +[builder-provider case study]: https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/builder-provider-api.html#dynamic-dispatch-behind-the-api + +### Send bounds are verbose, especially for traits with lots of methods + +The associated return type proposal works great for traits with a single method, but it can be annoying for traits that have lots of methods. One convenient solution is to use the "trait alias pattern" (if [RFC 1733](https://github.com/rust-lang/rust/issues/41517) were stabilized, this would be easier): + +```rust +trait SendHealthCheck +where + Self: HealthCheck + Send, + Self::check(): Send, +{} + +impl SendHealthCheck for T +where + T: HealthCheck + Send, + T::check(): Send, +{} +``` + +Using a pattern like this means you can write `T: SendHealthCheck`. In the future, something like [trait transformers][] may provide a more concise syntax. + +[trait transformers]: https://smallcultfollowing.com/babysteps/blog/2023/03/03/trait-transformers-send-bounds-part-3/ + +## Timeline and roadmap + +Our goal is to stabilize the MVP for Rust 1.74, which will be released on 2023-11-16. The branch window for this feature opens on July 14 and closes on August 24. To actually stabilize in 1.74, we want to leave room for bug fixes that may arise before the release branch is cut. The key milestones for this goal are as follows: + +* [x] MVP implementation +* [x] Case study evaluations complete +* [ ] Accepted RFC for return-position impl trait (target: 2023-05-31) +* [ ] Accepted RFC for associated return types (target: 2023-06-15) +* [ ] Evaluation period and bug fixing (target: 2023-06-30) +* [ ] Stabilization report authored (target: 2023-07-01) +* [ ] Stabilization complete for 1.74.0 (target: 2023-07-21) + +You can find the [complete timeline in our github project][timeline]. + +[timeline]: https://github.com/orgs/rust-lang/projects/28/views/2 + +## What comes next? + +So, once this MVP is done, what next? Our next immediate goals are to ship **dynamic dispatch** and **async closures** support in 2024. Together this will complete a solid foundation to tackle future async problems, such as support for async drop, easy async iterators, or portability across runtimes. From 0e960bf37f1f4a7fe545b373519fdd7ee564913d Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Fri, 28 Apr 2023 19:22:41 -0400 Subject: [PATCH 0031/1024] Push back to Tuesday --- ...fn-in-trait.md => 2023-05-02-stabilizing-async-fn-in-trait.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2023-05-01-stabilizing-async-fn-in-trait.md => 2023-05-02-stabilizing-async-fn-in-trait.md} (100%) diff --git a/posts/inside-rust/2023-05-01-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md similarity index 100% rename from posts/inside-rust/2023-05-01-stabilizing-async-fn-in-trait.md rename to posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md From 78e9afa2c9856265b728075e8146b39b1d4413c0 Mon Sep 17 00:00:00 2001 From: Weihang Lo Date: Mon, 1 May 2023 00:52:34 +0100 Subject: [PATCH 0032/1024] cargo-postmortem: switch from HackMD to GitHub --- posts/inside-rust/2023-05-01-cargo-postmortem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-05-01-cargo-postmortem.md b/posts/inside-rust/2023-05-01-cargo-postmortem.md index d458b1537..b84e4b235 100644 --- a/posts/inside-rust/2023-05-01-cargo-postmortem.md +++ b/posts/inside-rust/2023-05-01-cargo-postmortem.md @@ -26,4 +26,4 @@ So, without further ado, here is [the postmortem for the aforementioned Cargo in [rust-lang/cargo#11183]: https://github.com/rust-lang/cargo/pull/11183 [Five Whys]: https://en.wikipedia.org/wiki/Five_whys -[postmortem]: https://hackmd.io/@rust-cargo-team/2022-10-28-postmortem +[postmortem]: https://github.com/rust-lang/cargo/issues/12064 From d4eebe0fa3742e3cea710c8b2351316d159595d0 Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Mon, 1 May 2023 17:49:09 -0400 Subject: [PATCH 0033/1024] Apply suggestions from code review Co-authored-by: Caleb Cartwright --- posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md index fff9e6388..8d0db2f7c 100644 --- a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md @@ -15,7 +15,7 @@ As of now, all of the functionality described in this blog post is implemented a ## MVP Part 1: Core support for "async functions in traits" -The easiest way to explain what we are going to stabilize is to use a code example. To start, we will permit the use of `async fn` in traits definitions... +The easiest way to explain what we are going to stabilize is to use a code example. To start, we will permit the use of `async fn` in trait definitions... ```rust trait HealthCheck { @@ -84,7 +84,7 @@ where } ``` -Of course, it's kind of unfortunate that we had to rewrite from taking an `impl HealthCheck` to an explicit `HC` type parameter in order to use this notation. RFC #2289, "associated type bounds", introduced a compact notation to address this problem. That RFC is not part of this MVP, but if it were stabilized, then one could simply write: +Of course, it's kind of unfortunate that we had to rewrite from taking an `impl HealthCheck` to an explicit `HC` type parameter in order to use this notation. [RFC 2289](https://github.com/rust-lang/rfcs/pull/2289), "associated type bounds", introduced a compact notation to address this problem. That RFC is not part of this MVP, but if it were stabilized, then one could simply write: ```rust async fn do_health_check_par(hc: impl HealthCheck + Send + 'static) { From 46a452605354d07ad41e2ce27484a856e726cc42 Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Mon, 1 May 2023 22:41:51 -0400 Subject: [PATCH 0034/1024] Respond to feedback, add playground links --- ...023-05-02-stabilizing-async-fn-in-trait.md | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md index 8d0db2f7c..58e7ea3cc 100644 --- a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md @@ -43,20 +43,22 @@ async fn do_health_check(hc: impl HealthCheck) { } ``` -**Status:** This functionality was described in [RFC 3185], merged on Dec 7, 2021, and was covered in detail in our [previous blog post][pp]. +**Status:** This functionality was described in [RFC 3185], merged on Dec 7, 2021, and is available in nightly. It was covered in detail in our [previous blog post][pp]. + +[Playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=2399715f67d8eb0064efd6c8e47532f7) [RFC 3185]: https://rust-lang.github.io/rfcs/3185-static-async-fn-in-trait.html ## MVP Part 2: Send bounds and associated return types -There is one complication that arises when using async functions in traits that doesn't arise with sync functions. Many async runtimes -- notably including the default configurations of [Tokio] and [async-std] -- use a workstealing thread scheduler. This means that futures may move between worker threads dynamically to achieve load balancing. As a result, the future must only capture `Send` data. +There is one complication that arises when using async functions in traits that doesn't arise with sync functions. Many async runtimes -- notably including the default configurations of [Tokio] and [async-std] -- use a work stealing thread scheduler. This means that futures may move between worker threads dynamically to achieve load balancing. As a result, the future must only capture `Send` data. [Tokio]: https://tokio.rs/ [async-std]: https://async.rs/ -If you author a generic async function that spawns tasks on one of those runtimes, however, you will start to get compilation errors ([playground](XXX)): +If you author a generic async function that spawns tasks on one of those runtimes, however, you will start to get compilation errors ([playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=c033cf6174ff7d44e5673ecd254e6e69)): ```rust async fn do_health_check_par(hc: impl HealthCheck) { @@ -101,9 +103,11 @@ In our [previous post][pp], we [hypothesized](https://blog.rust-lang.org/inside- **Status:** Associated return types have an experimental implementation and we are currently drafting an RFC. There are several open bugs that will need to be fixed. +[Playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=2066934a05cb9eafc0b47af7bdf8c57f) + ## MVP Part 3: "impl trait in traits" (return position) -All across Rust, an async function is "syntactic sugar" for a function that returns an `impl Future` -- and async functions in traits are no exception. As part of the MVP, we plan to stabilize the use of `-> impl Trait` notation in traits. +In Rust an async function is "syntactic sugar" for a function that returns an `impl Future`, and async functions in traits are no exception. As part of the MVP, we plan to stabilize the use of `-> impl Trait` notation in traits and trait impls. Impl trait in traits has all kinds of uses, but one common one for async programming is to avoid capturing all of the function arguments by doing some amount of sync work and then returning a future for the rest. For example, this `LaunchService` trait declares a `launch` function that does not capture `self` (similar to the existing Tower [`Service`] trait): @@ -121,15 +125,29 @@ trait LaunchService { } ``` +Since `async fn` is sugar for a regular function returning `impl Future`, these two syntactic forms will work interchangeably. + +```rust +trait HealthCheck { + async fn check(&mut self) -> bool; +} + +impl HealthCheck for MyType { + fn check(&mut self) -> impl Future + '_ { ... } +} +``` + Even though the need for "impl trait in traits" comes up a lot in async, they are a general feature that will be useful in many contexts having nothing to do with async (for example, returning iterators from trait methods). **Status:** Return-position impl trait in traits have an experimental implementation and are described in the recently opened [RFC 3425]. +[Playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=75cfc199cc50a111576c2d8e342ae823) + [RFC 3425]: https://github.com/rust-lang/rfcs/pull/3425 ## Evaluating the MVP -To evaluate the utility of this MVP, the working group collected [five case studies][] covering the [builder-provider pattern used in the AWS SDK](https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/builder-provider-api.html#dynamic-dispatch-behind-the-api); the potential use of async function in traits in [tower][cst] and the actual use in [embassy][cse], the [Fuchsia networking stack][] and [an internal Microsoft tool][]. These studies validated that the above functionality is sufficient to use async function in traits for all kinds of things, though some situations require workarounds (hence the "MVP" title). +To evaluate the utility of this MVP, the working group collected [five case studies] covering the [builder-provider pattern used in the AWS SDK](https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/builder-provider-api.html#dynamic-dispatch-behind-the-api); the potential use of async function in traits in [tower][cst] and the actual use in [embassy][cse], the [Fuchsia networking stack] and [an internal Microsoft tool]. These studies validated that the above functionality is sufficient to use async function in traits for all kinds of things, though some situations require workarounds (hence the "MVP" title). [Fuchsia networking stack]: https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/socket-handler.html @@ -147,9 +165,11 @@ The case studies revealed two situations that the MVP doesn't support very well, ### Modeling dynamic dispatch -In the MVP, traits that use async functions are not "dyn safe", meaning that they don't support dynamic dispatch. So e.g. given the `HealthCheck` trait we saw earlier, one could not write `Box`. At first, this seems like a crucial limitation, since many of the use cases require dynamic dispatch! But it turns out that there is a workaround. One can define an "erased" trait internally to your crate that enables dynamic dispatch. The process was pioneered by crates like [erased serde][] and is explained in detail in the [builder-provider case study][]. +In the MVP, traits that use async functions are not "dyn safe", meaning that they don't support dynamic dispatch. So e.g. given the `HealthCheck` trait we saw earlier, one could not write `Box`. + +At first, this seems like a crucial limitation, since many of the use cases require dynamic dispatch! But it turns out that there is a workaround. One can define an "erased" trait internally to your crate that enables dynamic dispatch. The process was pioneered by crates like [erased serde] and is explained in detail in the [builder-provider case study]. -In the future, async fn should work with `dyn Trait` directly. +To make this workaround easier in the near term, we hope to provide a proc macro to automate it. In the future, async fn should work with `dyn Trait` directly. [erased serde]: https://github.com/dtolnay/erased-serde [builder-provider case study]: https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/builder-provider-api.html#dynamic-dispatch-behind-the-api @@ -172,7 +192,7 @@ where {} ``` -Using a pattern like this means you can write `T: SendHealthCheck`. In the future, something like [trait transformers][] may provide a more concise syntax. +Using a pattern like this means you can write `T: SendHealthCheck`. We hope to provide a proc macro to write these trait aliases for you. In the future, something like [trait transformers] may provide a more concise syntax. [trait transformers]: https://smallcultfollowing.com/babysteps/blog/2023/03/03/trait-transformers-send-bounds-part-3/ From 467b93fb27e9238171779bca4b2c6f11ae76c633 Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Mon, 1 May 2023 23:06:16 -0400 Subject: [PATCH 0035/1024] Add link for dyn Trait --- posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md index 58e7ea3cc..19e935cea 100644 --- a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md @@ -169,10 +169,11 @@ In the MVP, traits that use async functions are not "dyn safe", meaning that the At first, this seems like a crucial limitation, since many of the use cases require dynamic dispatch! But it turns out that there is a workaround. One can define an "erased" trait internally to your crate that enables dynamic dispatch. The process was pioneered by crates like [erased serde] and is explained in detail in the [builder-provider case study]. -To make this workaround easier in the near term, we hope to provide a proc macro to automate it. In the future, async fn should work with `dyn Trait` directly. +To make this workaround easier in the near term, we hope to provide a proc macro to automate it. In the future, async fn [should work][ugf-dyn] with `dyn Trait` directly. [erased serde]: https://github.com/dtolnay/erased-serde [builder-provider case study]: https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/builder-provider-api.html#dynamic-dispatch-behind-the-api +[ugf-dyn]: https://rust-lang.github.io/async-fundamentals-initiative/explainer/user_guide_future.html#dynamic-dispatch-and-async-functions ### Send bounds are verbose, especially for traits with lots of methods From 931999b9c9887e9d20fb67493a41dbda18bdac6b Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Tue, 2 May 2023 12:59:20 -0400 Subject: [PATCH 0036/1024] Show example of proc macro usage --- .../2023-05-02-stabilizing-async-fn-in-trait.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md index 19e935cea..40e8b8422 100644 --- a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md @@ -101,7 +101,7 @@ async fn do_health_check_par(hc: impl HealthCheck + Send + 'stati In our [previous post][pp], we [hypothesized](https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html#hypothesis-this-is-uncommon) that this problem might not occur often in practice. However, our case studies found that it comes up quite frequently, and so we decided that a solution is needed. We explored a number of solutions and concluded that associated return types are the most practical. -**Status:** Associated return types have an experimental implementation and we are currently drafting an RFC. There are several open bugs that will need to be fixed. +**Status:** Associated return types have an experimental implementation and we are currently drafting an RFC. There are several open bugs that will need to be fixed. We are considering more concise syntax for the future (see below). [Playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=2066934a05cb9eafc0b47af7bdf8c57f) @@ -177,7 +177,9 @@ To make this workaround easier in the near term, we hope to provide a proc macro ### Send bounds are verbose, especially for traits with lots of methods -The associated return type proposal works great for traits with a single method, but it can be annoying for traits that have lots of methods. One convenient solution is to use the "trait alias pattern" (if [RFC 1733](https://github.com/rust-lang/rust/issues/41517) were stabilized, this would be easier): +The associated return type proposal works great for traits with a single method, but it can be annoying for traits that have lots of methods. One convenient solution is to use the "trait alias pattern":[^trait-alias] + +[^trait-alias]: If [RFC 1733](https://github.com/rust-lang/rust/issues/41517) were stabilized, this would be easier. ```rust trait SendHealthCheck @@ -193,7 +195,16 @@ where {} ``` -Using a pattern like this means you can write `T: SendHealthCheck`. We hope to provide a proc macro to write these trait aliases for you. In the future, something like [trait transformers] may provide a more concise syntax. +Using a pattern like this means you can write `T: SendHealthCheck`. We plan to provide a proc macro to write these trait aliases for you, so you can write something more like this instead: + +```rust +#[make_alias(Send = "SendHealthCheck")] +trait HealthCheck { + async fn check(&mut self) -> bool; +} +``` + +In the future, something like [trait transformers] may provide a more concise syntax without a proc macro. But because there are use cases that require the kind of fine-grained control provided by associated return types, we opted to stabilize them first and consider more concise syntaxes later. [trait transformers]: https://smallcultfollowing.com/babysteps/blog/2023/03/03/trait-transformers-send-bounds-part-3/ From 07c46276a5ee53c289eafa3d631f47f12f7f44ac Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Tue, 2 May 2023 15:14:53 -0400 Subject: [PATCH 0037/1024] Clarify that experimental feature gates were used Co-authored-by: Niko Matsakis --- posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md index 40e8b8422..8b9928efc 100644 --- a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md @@ -9,7 +9,7 @@ The async working group's headline goal for 2023 is to stabilize a "minimum viab In November, we [blogged about nightly support for async fn in trait][pp] and identified some key next steps, most importantly [support for send bounds to allow spawning in generic functions](https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html#limitation-spawning-from-generics). Since then we've done a significant amount of design exploration and collected a set of case studies evaluating how well the current code works in practice. -As of now, all of the functionality described in this blog post is implemented and available in some form on the nightly compiler. This was done to prove out the viability, but not all of it has been formally RFC'd. We'll link to playground examples and RFCs where appropriate so you can try it for yourself or read about the details. +As of now, all of the functionality described in this blog post is available on the nightly compiler. Some of this work was implemented using [experimental feature gates](https://lang-team.rust-lang.org/how_to/experiment.html) so that we could conduct case studies and prove out viability; we are in the process of authoring RFCs for those features now (full details below). [pp]: https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html From 54862133bfd3ae665598353e0f5c9132cbf26d18 Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Tue, 2 May 2023 15:23:23 -0400 Subject: [PATCH 0038/1024] Add extra note about ergonomics Co-authored-by: Niko Matsakis --- posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md index 8b9928efc..5b4049654 100644 --- a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md @@ -99,7 +99,7 @@ async fn do_health_check_par(hc: impl HealthCheck + Send + 'stati } ``` -In our [previous post][pp], we [hypothesized](https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html#hypothesis-this-is-uncommon) that this problem might not occur often in practice. However, our case studies found that it comes up quite frequently, and so we decided that a solution is needed. We explored a number of solutions and concluded that associated return types are the most practical. +In our [previous post][pp], we [hypothesized](https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html#hypothesis-this-is-uncommon) that this problem might not occur often in practice. However, our case studies found that it comes up quite frequently, and so we decided that a solution is needed. We explored a number of solutions and concluded that associated return types (ARTs) are a flexible and reasonably ergonomic building block, which makes them a good fit for an MVP. However, we also found that in traits with many methods, ARTs become verbose. As discussed later in the post, we expect to ship a proc-macro that can help workaround this in the short term while we gain experience. **Status:** Associated return types have an experimental implementation and we are currently drafting an RFC. There are several open bugs that will need to be fixed. We are considering more concise syntax for the future (see below). From 656dbd14e5820c9021fa1e5d570b3dd32b06e037 Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Tue, 2 May 2023 15:36:40 -0400 Subject: [PATCH 0039/1024] Combine redundant sentences Co-authored-by: Niko Matsakis --- posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md index 5b4049654..ce1286bc6 100644 --- a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md @@ -99,9 +99,9 @@ async fn do_health_check_par(hc: impl HealthCheck + Send + 'stati } ``` -In our [previous post][pp], we [hypothesized](https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html#hypothesis-this-is-uncommon) that this problem might not occur often in practice. However, our case studies found that it comes up quite frequently, and so we decided that a solution is needed. We explored a number of solutions and concluded that associated return types (ARTs) are a flexible and reasonably ergonomic building block, which makes them a good fit for an MVP. However, we also found that in traits with many methods, ARTs become verbose. As discussed later in the post, we expect to ship a proc-macro that can help workaround this in the short term while we gain experience. +In our [previous post][pp], we [hypothesized](https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html#hypothesis-this-is-uncommon) that this problem might not occur often in practice. However, our case studies found that it comes up quite frequently, and so we decided that a solution is needed. We explored a number of solutions and concluded that associated return types (ARTs) are a flexible and reasonably ergonomic building block, which makes them a good fit for an MVP. -**Status:** Associated return types have an experimental implementation and we are currently drafting an RFC. There are several open bugs that will need to be fixed. We are considering more concise syntax for the future (see below). +**Status:** Associated return types have an experimental implementation and we are currently drafting an RFC. There are several open bugs that will need to be fixed. We also found that in traits with many methods, ARTs become verbose, and in the future may consider more concise syntax (see below). [Playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=2066934a05cb9eafc0b47af7bdf8c57f) From b90ca273f55f2ea61393712de3361fc09c36073d Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Tue, 2 May 2023 15:40:21 -0400 Subject: [PATCH 0040/1024] Final wording tweaks --- posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md index ce1286bc6..8a9a2239f 100644 --- a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md @@ -204,7 +204,7 @@ trait HealthCheck { } ``` -In the future, something like [trait transformers] may provide a more concise syntax without a proc macro. But because there are use cases that require the kind of fine-grained control provided by associated return types, we opted to stabilize them first and consider more concise syntaxes later. +In the future, something like [trait transformers] may provide a more concise syntax without a proc macro. But because there are use cases that require the kind of fine-grained control provided by associated return types, we opted to stabilize them first and consider more concise syntaxes after gaining experience. [trait transformers]: https://smallcultfollowing.com/babysteps/blog/2023/03/03/trait-transformers-send-bounds-part-3/ From b1d7d056bd7027e7c702db1fca3725c85b788ae4 Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Tue, 2 May 2023 15:41:05 -0400 Subject: [PATCH 0041/1024] Great fit :) --- posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md index 8a9a2239f..08755362e 100644 --- a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md @@ -99,7 +99,7 @@ async fn do_health_check_par(hc: impl HealthCheck + Send + 'stati } ``` -In our [previous post][pp], we [hypothesized](https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html#hypothesis-this-is-uncommon) that this problem might not occur often in practice. However, our case studies found that it comes up quite frequently, and so we decided that a solution is needed. We explored a number of solutions and concluded that associated return types (ARTs) are a flexible and reasonably ergonomic building block, which makes them a good fit for an MVP. +In our [previous post][pp], we [hypothesized](https://blog.rust-lang.org/inside-rust/2022/11/17/async-fn-in-trait-nightly.html#hypothesis-this-is-uncommon) that this problem might not occur often in practice. However, our case studies found that it comes up quite frequently, and so we decided that a solution is needed. We explored a number of solutions and concluded that associated return types (ARTs) are a flexible and reasonably ergonomic building block, which makes them a great fit for an MVP. **Status:** Associated return types have an experimental implementation and we are currently drafting an RFC. There are several open bugs that will need to be fixed. We also found that in traits with many methods, ARTs become verbose, and in the future may consider more concise syntax (see below). From 3943e20355dfaa0109e08405feffd7313f0f6868 Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Tue, 2 May 2023 15:41:50 -0400 Subject: [PATCH 0042/1024] Push to Wednesday --- ...fn-in-trait.md => 2023-05-03-stabilizing-async-fn-in-trait.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2023-05-02-stabilizing-async-fn-in-trait.md => 2023-05-03-stabilizing-async-fn-in-trait.md} (100%) diff --git a/posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md similarity index 100% rename from posts/inside-rust/2023-05-02-stabilizing-async-fn-in-trait.md rename to posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md From 3a2aa09f4f05a867241c80cc4a60c9dc89d1ed30 Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Tue, 2 May 2023 17:35:45 -0400 Subject: [PATCH 0043/1024] Don't let our dreams be dreams Co-authored-by: Eric Holk --- posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md index 08755362e..b3afd4190 100644 --- a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md @@ -169,7 +169,7 @@ In the MVP, traits that use async functions are not "dyn safe", meaning that the At first, this seems like a crucial limitation, since many of the use cases require dynamic dispatch! But it turns out that there is a workaround. One can define an "erased" trait internally to your crate that enables dynamic dispatch. The process was pioneered by crates like [erased serde] and is explained in detail in the [builder-provider case study]. -To make this workaround easier in the near term, we hope to provide a proc macro to automate it. In the future, async fn [should work][ugf-dyn] with `dyn Trait` directly. +To make this workaround easier in the near term, we plan to provide a proc macro to automate it. In the future, async fn [should work][ugf-dyn] with `dyn Trait` directly. [erased serde]: https://github.com/dtolnay/erased-serde [builder-provider case study]: https://rust-lang.github.io/async-fundamentals-initiative/evaluation/case-studies/builder-provider-api.html#dynamic-dispatch-behind-the-api From 90a8281526ae0e78f2740f3171422a1814809a0c Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Tue, 2 May 2023 17:57:47 -0400 Subject: [PATCH 0044/1024] Address eholk feedback --- .../inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md index b3afd4190..ec5d9fb95 100644 --- a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md @@ -125,7 +125,9 @@ trait LaunchService { } ``` -Since `async fn` is sugar for a regular function returning `impl Future`, these two syntactic forms will work interchangeably. +Since `async fn` is sugar for a regular function returning `impl Future`, these two syntactic forms will work interchangeably.[^afit-rpitit] + +[^afit-rpitit]: The ability to satisfy an `async fn` in a trait with a regular function returning `impl Future` in an impl, and vice versa, is part of [RFC 3425]. It was not in the [original RFC][RFC 3185] for `async fn` in traits, simply because `-> impl Trait` in traits was not supported then. ```rust trait HealthCheck { @@ -139,7 +141,7 @@ impl HealthCheck for MyType { Even though the need for "impl trait in traits" comes up a lot in async, they are a general feature that will be useful in many contexts having nothing to do with async (for example, returning iterators from trait methods). -**Status:** Return-position impl trait in traits have an experimental implementation and are described in the recently opened [RFC 3425]. +**Status:** Return-position impl trait in traits have an experimental implementation and are described in [RFC 3425], which is currently open. This feature can stand on its own, but is an important part of the picture for `async fn` in traits. [Playground](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=75cfc199cc50a111576c2d8e342ae823) From d0c64a4341ee437fb3e705d688beeb57bae843cc Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Tue, 2 May 2023 17:59:04 -0400 Subject: [PATCH 0045/1024] Raced on footnote --- posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md index ec5d9fb95..0f11837db 100644 --- a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md @@ -125,9 +125,7 @@ trait LaunchService { } ``` -Since `async fn` is sugar for a regular function returning `impl Future`, these two syntactic forms will work interchangeably.[^afit-rpitit] - -[^afit-rpitit]: The ability to satisfy an `async fn` in a trait with a regular function returning `impl Future` in an impl, and vice versa, is part of [RFC 3425]. It was not in the [original RFC][RFC 3185] for `async fn` in traits, simply because `-> impl Trait` in traits was not supported then. +Since `async fn` is sugar for a regular function returning `impl Future`, these two syntactic forms will work interchangeably. ```rust trait HealthCheck { From beee863716bc9d784f69baa3a0753a8bed185701 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Tue, 9 May 2023 15:12:22 +0200 Subject: [PATCH 0046/1024] Inside Rust: Add "API token scopes" blog post --- .../2023-05-09-api-token-scopes.md | 22 ++++++++++++++++++ .../screenshot.png | Bin 0 -> 148054 bytes 2 files changed, 22 insertions(+) create mode 100644 posts/inside-rust/2023-05-09-api-token-scopes.md create mode 100644 static/images/inside-rust/2023-05-09-api-token-scopes/screenshot.png diff --git a/posts/inside-rust/2023-05-09-api-token-scopes.md b/posts/inside-rust/2023-05-09-api-token-scopes.md new file mode 100644 index 000000000..d4739564c --- /dev/null +++ b/posts/inside-rust/2023-05-09-api-token-scopes.md @@ -0,0 +1,22 @@ +--- +layout: post +title: "API token scopes" +author: Tobias Bieniek +team: the crates.io team +--- + +Roughly three years ago [Pietro Albini](https://github.com/pietroalbini) opened an RFC called ["crates.io token scopes"](https://github.com/rust-lang/rfcs/pull/2947). This RFC described an improvement to the existing API tokens, that everyone is using to publish crates to the [crates.io](https://crates.io/) package registry. The proposal was to make it possible to restrict API tokens to 1) certain operations and 2) certain crates. + +Unfortunately, the crates.io team members were quite busy at the time, so it took a while for this proposal to get accepted. To be precise, during the [EuroRust](https://eurorust.eu) conference in October 2022 we talked about the RFC again and after a few modifications the RFC was moved into FCP status and then finally merged. + +The implementation was started soon after, but was paused again due to other priorities at the time. Fortunately, I was lucky enough to get one of the software engineering jobs at the [Rust Foundation](https://rustfoundation.org/), so in early April the development continued, and I am happy to report: + +**API token scopes on crates.io are now in a public beta testing period!** + +For details on what these token scopes are and how they are supposed to work, I recommend reading through the [RFC](https://github.com/rust-lang/rfcs/pull/2947). If you want to try them out, you can go to and create a new API token scoped to the operations and crates you want: + +![Screenshot of the "New API Token" page](../../../../images/inside-rust/2023-05-09-api-token-scopes/screenshot.png) + +Please note that this page is currently not reachable from the regular user interface, you have to access it via URL directly while we test it out. + +Finally, if you notice any issues, or if you have any questions don't hesitate to find us on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/token.20scopes) or open an issue on [GitHub](https://github.com/rust-lang/crates.io/issues/new/choose). diff --git a/static/images/inside-rust/2023-05-09-api-token-scopes/screenshot.png b/static/images/inside-rust/2023-05-09-api-token-scopes/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..61e14bac64b4ca876ce78d2760e7a97ba673337a GIT binary patch literal 148054 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

%$kk43;iz#igj4iZG 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'~)$;eI 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π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%0D=D77r z>nJuBU2;cTwd1dJXsVLgC`-=EB_nTq5X*DUi|*il*v6OBG~{2D3q`#;pq@p#Tc4fx zqYA6-Y{WeiU>I1_vp4q)spEUCx}D3hl9Y(tqu2L({DXKPwf*!SAe-mtjq|NH zL|+d=uX#w0r2*f)zfpDLLfK6TBcy;r@Su3$!_8>+NdHqoO1t#@VC11)BymgH3yIuu0rJBmOP|xg;!D? z>UVWi<<_y8xjnZh=S;GOnR!FyflqGS z8VpF@eY@v$iI`{P(&5yr3v~bm?OL%PILXQnSE_W3s11wzv_jZ|D8eJL-XKW*rs@GH zt+aYAtMDT0h-WK5$EgxG6Df0F4?rDtCB-yHmp|$FPiV;K_$Q-bY>V+v#YK=-$V3b( z_JB%~U+7wQ&)BfiM;Ekb@@hc4{)8mz)~lP(ZVy`U-XC7I2R_}fV%g1a9(>d2-?i4WeQSMC!!Y04{LP=p zbX)6dCFI`eGAY0?O4kaQRJD2mVDET3uSTI6K@mKm8yXoVMI|ZrUQ! zTf8=I6D;0gN$yY0$9|1Y9Wl48R#dCANISh#1O{~h1CKa?=BU7zq^{Nw32#(>~m zNPo%uzrzRezu*HPcrp6nbBkZJ-=nW5nYd?83!hpA4U{I&b$Bc(A$7k!H6_Fn6bD9B zgnqZtFbRRH1-uM{DnCfPoa{HI@=;vl7dMBo^)X+}VRr#aX(a#Gmv)w21-R&$GytcB zQ6YL^IM!#4o^_!=FO~{)Cvv9d$=^{8n~ysMo_ntxZP!kIE)L>W86yIiqsklf16Hbl z$8=EmsaV6F^etX^UIN)o=$*PvRex!}(N5Ao_Mz4KwUQ=~ z8rad5ZOzwWKzH;i42>L{V6F@Mp=PsaD}~=`zLymQwfnG?pknE)^>buHzzxWqq}v+Z|n9oqd(jgrv67I0W# zaYwAT@7sgqj}&BU5TNr3Ga7`o!~3A*`Ig5qzj2IyUj4P{wv5ff0GGYxHPYAE(bFx5 z#+M?d-GeSn#PM77!=o>=V`;*R>?&0g&nU0{#$vqb`B^D%MY{!Sy7cu*)V#Qu-`&mnh#zetISZg^9M z;eMLp+uJ+MjTV#~Z{*FDT43MsxFPrLW~No$^q2Cn|$AR6k`eFy&K44_tIN<5Gi{@MmpactPo;Ann7b+kL#-|^N1 zhx)hpdk!HoMu5umTeWd#NIn+DWtKEcx8F9#FP6QaRxP($%TjDpOHZrMPE&d8UP4U$ zwru(-GJKzM{+zfElTRtW30BxHn1~Q_)lY8U7y=eCaF9jXlxZ51nAe=op1e+0Yp-hOCyyy3^$ogHHs!PJZN)nB^; z@aV~a=<%i~&EAbGAJ%o&%*N}2oR7VDw^wLI&F0e$kJ7vWjb4(?-?yRQ|CW^`Y6|d9 zVH=&Lpk5GMPFe9U8*#MMOW6xBwQjmugEG5mPVuDA;D&Z|=SYw0yIV#(6<DXJ!nL zGu$q{NK4v(T=hyOMCE0NGsRKpkG~nt=V-?xb0+NQ?Bw#_RreoFKC2TDH$SxM$^Txy z`0pp3zbI&*px9}C_uoJKLv7Uuk5Cfobjkl+#(RN`i+cZHSO4e4I5Hw=15tgD9Qj{m z?E6a~i7Ha-&XtRwxFFw z`<C?0k5NqXw{=#5_UD3N Sp??Ve%r9A8ti0g%`2PT=eFl&K literal 0 HcmV?d00001 From 09dfbf04a1115d865e6a3f3e0a9da6a83e89aadb Mon Sep 17 00:00:00 2001 From: Wesley Wiser Date: Fri, 14 Apr 2023 11:27:37 -0400 Subject: [PATCH 0047/1024] Add post for updated musl targets --- posts/2023-05-09-Updating-musl-targets.md | 58 +++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 posts/2023-05-09-Updating-musl-targets.md diff --git a/posts/2023-05-09-Updating-musl-targets.md b/posts/2023-05-09-Updating-musl-targets.md new file mode 100644 index 000000000..84312179f --- /dev/null +++ b/posts/2023-05-09-Updating-musl-targets.md @@ -0,0 +1,58 @@ +--- +layout: post +title: "Updating Rust's Linux musl targets" +author: Wesley Wiser +description: "musl targets will soon ship with musl 1.2" +team: The Compiler Team +--- + +Beginning with Rust 1.71 (slated for stable release on 2023-07-13), the various `*-linux-musl` targets will [ship][PR] with musl 1.2.3. +These targets currently use musl 1.1.24. +While musl 1.2.3 introduces some [new features][musl features], most notably [64-bit time][time64] on all platforms, it is ABI compatible with earlier musl versions. + +As such, this change is unlikely to affect you. + +# Updated targets + +The following targets will be updated: + +| Target | [Support Tier][tiers] | +| - | - | +| `aarch64-unknown-linux-musl` | Tier 2 with Host Tools | +| `x86_64-unknown-linux-musl` | Tier 2 with Host Tools | +| `arm-unknown-linux-musleabi` | Tier 2 | +| `arm-unknown-linux-musleabihf` | Tier 2 | +| `armv5te-unknown-linux-musleabi` | Tier 2 | +| `armv7-unknown-linux-musleabi` | Tier 2 | +| `armv7-unknown-linux-musleabihf` | Tier 2 | +| `i586-unknown-linux-musl` | Tier 2 | +| `i686-unknown-linux-musl` | Tier 2 | +| `mips-unknown-linux-musl` | Tier 2 | +| `mips64-unknown-linux-muslabi64` | Tier 2 | +| `mips64el-unknown-linux-muslabi64` | Tier 2 | +| `mipsel-unknown-linux-musl` | Tier 2 | +| `hexagon-unknown-linux-musl` | Tier 3 | +| `mips64-openwrt-linux-musl` | Tier 3 | +| `powerpc-unknown-linux-musl` | Tier 3 | +| `powerpc64-unknown-linux-musl` | Tier 3 | +| `powerpc64le-unknown-linux-musl` | Tier 3 | +| `riscv32gc-unknown-linux-musl` | Tier 3 | +| `riscv64gc-unknown-linux-musl` | Tier 3 | +| `s390x-unknown-linux-musl` | Tier 3 | +| `thumbv7neon-unknown-linux-musleabihf` | Tier 3 | + +Note: musl 1.2.3 does not raise the minimum required Linux kernel version for any target. + +# Will 64-bit time break the `libc` crate on 32-bit targets? + +No, the musl project made this change carefully preserving ABI compatibility. +The `libc` crate will continue to function correctly without modification. + +A future version of the `libc` crate will [update][libc PR] the definitions of time-related structures and functions to be 64-bit on all musl targets however this is blocked on the musl targets themselves first being updated. +At present, there is no anticipated date when this change will take place and care will be taken to help the Rust ecosystem transition successfully to the updated time-related definitions. + +[libc PR]: https://github.com/rust-lang/libc/pull/3068 +[musl features]: https://musl.libc.org/releases.html +[PR]: https://github.com/rust-lang/rust/pull/107129 +[tiers]: https://doc.rust-lang.org/nightly/rustc/platform-support.html +[time64]: https://musl.libc.org/time64.html From f6c02ae9c577398983bf6a0d40d63d38eefd4185 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 May 2023 18:03:33 +0200 Subject: [PATCH 0048/1024] Bump h2 from 0.3.13 to 0.3.17 (#1095) Bumps [h2](https://github.com/hyperium/h2) from 0.3.13 to 0.3.17. - [Release notes](https://github.com/hyperium/h2/releases) - [Changelog](https://github.com/hyperium/h2/blob/master/CHANGELOG.md) - [Commits](https://github.com/hyperium/h2/compare/v0.3.13...v0.3.17) --- updated-dependencies: - dependency-name: h2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 13f40dc62..2a161f25c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -415,9 +415,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.13" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "66b91535aa35fea1523ad1b86cb6b53c28e0ae566ba4a460f4457e936cad7c6f" dependencies = [ "bytes", "fnv", From 2d2ad7329abc439203cbeaabf8fb51ffa5171742 Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Mon, 29 May 2023 21:30:39 +0000 Subject: [PATCH 0049/1024] Creating file via promote-release automation --- .../2023-05-29-1.70.0-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-05-29-1.70.0-prerelease.md diff --git a/posts/inside-rust/2023-05-29-1.70.0-prerelease.md b/posts/inside-rust/2023-05-29-1.70.0-prerelease.md new file mode 100644 index 000000000..2f5de855f --- /dev/null +++ b/posts/inside-rust/2023-05-29-1.70.0-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.70.0 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.70.0 pre-release is ready for testing. The release is scheduled for +June 1. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-70-0-pre-release-testing/18904). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1700-2023-06-01 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 644302efd5b4ed891f7dbcc595882a1c70e3492c Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Mon, 29 May 2023 19:39:18 -0400 Subject: [PATCH 0050/1024] post about rustconf keynote --- posts/2023-05-29-RustConf.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 posts/2023-05-29-RustConf.md diff --git a/posts/2023-05-29-RustConf.md b/posts/2023-05-29-RustConf.md new file mode 100644 index 000000000..0ffa1a5ee --- /dev/null +++ b/posts/2023-05-29-RustConf.md @@ -0,0 +1,22 @@ +--- +layout: post +title: "On the RustConf keynote" +author: leadership chat membership +team: leadership chat +--- + +On May 26th 2023, [JeanHeyd Meneide](https://thephd.dev/about/) announced they [would not speak at RustConf 2023 anymore](https://thephd.dev/i-am-no-longer-speaking-at-rustconf-2023). They were invited to give a keynote at the conference, only to be told two weeks later the keynote would be demoted to a normal talk, due to a decision made within the Rust project leadership. + +That decision was not right, and first off we want to publicly apologize for the harm we caused. We failed you JeanHeyd. The idea of downgrading a talk after the invitation was insulting, and nobody in leadership should have been willing to entertain it. + +Everyone in leadership chat is still working to fully figure out everything that went wrong and how we can prevent all of this from happening again. That work is not finished yet. Still, we want to share some steps we are taking to reduce the risk of something like this from happening again. + +The primary causes of the failure were the decision-making and communication processes of leadership chat. Leadership chat has been the top-level governance structure created after the previous Moderation Team resigned in late 2021. It’s made of all leads of top-level teams, all members of the Core Team, all project directors on the Rust Foundation board, and all current moderators. This leadership chat was meant as a short-term solution and lacked clear rules and processes for decision making and communication. This left a lot of room for misunderstandings about when a decision had actually been made and when individuals were speaking for the project versus themselves. + +In this post we focus on the organizational and process failure, leaving room for individuals to publicly acknowledge their own role. Nonetheless, formal rules or governance processes should not be required to identify that demoting JeanHeyd’s keynote was the wrong thing to do. The fact is that several individuals exercised poor judgment and poor communication. Recognizing their outsized role in the situation, those individuals have opted to step back from top-level governance roles, including leadership chat and the upcoming leadership council. + +Organizationally, within leadership chat we will enforce a strict consensus rule for all decision making, so that there is no longer ambiguity of whether something is an individual opinion or a group decision. We are going to launch the new governance council as soon as possible. We’ll assist the remaining teams to select their representatives in a timely manner, so that the new governance council can start and the current leadership chat can disband. + +We wish to close the post by reiterating our apology to JeanHeyd, but also the wider Rust community. You deserved better than you got from us. + +-- The members of leadership chat \ No newline at end of file From f3b9d2e316cb814301cc366884fea7dbc99cbb15 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 30 May 2023 05:30:48 -0400 Subject: [PATCH 0051/1024] link to toml file to clarify membership --- posts/2023-05-29-RustConf.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/posts/2023-05-29-RustConf.md b/posts/2023-05-29-RustConf.md index 0ffa1a5ee..a85891be6 100644 --- a/posts/2023-05-29-RustConf.md +++ b/posts/2023-05-29-RustConf.md @@ -2,7 +2,7 @@ layout: post title: "On the RustConf keynote" author: leadership chat membership -team: leadership chat +team: leadership chat --- On May 26th 2023, [JeanHeyd Meneide](https://thephd.dev/about/) announced they [would not speak at RustConf 2023 anymore](https://thephd.dev/i-am-no-longer-speaking-at-rustconf-2023). They were invited to give a keynote at the conference, only to be told two weeks later the keynote would be demoted to a normal talk, due to a decision made within the Rust project leadership. @@ -11,7 +11,7 @@ That decision was not right, and first off we want to publicly apologize for the Everyone in leadership chat is still working to fully figure out everything that went wrong and how we can prevent all of this from happening again. That work is not finished yet. Still, we want to share some steps we are taking to reduce the risk of something like this from happening again. -The primary causes of the failure were the decision-making and communication processes of leadership chat. Leadership chat has been the top-level governance structure created after the previous Moderation Team resigned in late 2021. It’s made of all leads of top-level teams, all members of the Core Team, all project directors on the Rust Foundation board, and all current moderators. This leadership chat was meant as a short-term solution and lacked clear rules and processes for decision making and communication. This left a lot of room for misunderstandings about when a decision had actually been made and when individuals were speaking for the project versus themselves. +The primary causes of the failure were the decision-making and communication processes of leadership chat. Leadership chat has been the [top-level governance structure created after the previous Moderation Team resigned in late 2021](https://blog.rust-lang.org/inside-rust/2022/10/06/governance-update.html). It’s made of all leads of top-level teams, all members of the Core Team, all project directors on the Rust Foundation board, and all current moderators. This leadership chat was meant as a short-term solution and lacked clear rules and processes for decision making and communication. This left a lot of room for misunderstandings about when a decision had actually been made and when individuals were speaking for the project versus themselves. In this post we focus on the organizational and process failure, leaving room for individuals to publicly acknowledge their own role. Nonetheless, formal rules or governance processes should not be required to identify that demoting JeanHeyd’s keynote was the wrong thing to do. The fact is that several individuals exercised poor judgment and poor communication. Recognizing their outsized role in the situation, those individuals have opted to step back from top-level governance roles, including leadership chat and the upcoming leadership council. @@ -19,4 +19,4 @@ Organizationally, within leadership chat we will enforce a strict consensus rule We wish to close the post by reiterating our apology to JeanHeyd, but also the wider Rust community. You deserved better than you got from us. --- The members of leadership chat \ No newline at end of file +-- The [members of leadership chat](https://github.com/rust-lang/team/blob/d4c071b86c33683845919cf27eabf33e15fb6784/teams/interim-leadership-chat.toml#L8-L25) \ No newline at end of file From b12472e9c20aab60b4bbbce8014dd149eea3e70f Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 30 May 2023 05:40:57 -0400 Subject: [PATCH 0052/1024] update hash to new hash hash from https://github.com/rust-lang/team/pull/1002 --- posts/2023-05-29-RustConf.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/2023-05-29-RustConf.md b/posts/2023-05-29-RustConf.md index a85891be6..818884495 100644 --- a/posts/2023-05-29-RustConf.md +++ b/posts/2023-05-29-RustConf.md @@ -2,7 +2,7 @@ layout: post title: "On the RustConf keynote" author: leadership chat membership -team: leadership chat +team: leadership chat --- On May 26th 2023, [JeanHeyd Meneide](https://thephd.dev/about/) announced they [would not speak at RustConf 2023 anymore](https://thephd.dev/i-am-no-longer-speaking-at-rustconf-2023). They were invited to give a keynote at the conference, only to be told two weeks later the keynote would be demoted to a normal talk, due to a decision made within the Rust project leadership. @@ -19,4 +19,4 @@ Organizationally, within leadership chat we will enforce a strict consensus rule We wish to close the post by reiterating our apology to JeanHeyd, but also the wider Rust community. You deserved better than you got from us. --- The [members of leadership chat](https://github.com/rust-lang/team/blob/d4c071b86c33683845919cf27eabf33e15fb6784/teams/interim-leadership-chat.toml#L8-L25) \ No newline at end of file +-- The [members of leadership chat](https://github.com/rust-lang/team/blob/2cea9916903fffafbfae6c78882d0924ce3c3a8a/teams/interim-leadership-chat.toml#L8-L25) \ No newline at end of file From 71c15eda6bc756db9da5116d91abba5cbc924fe9 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 1 Jun 2023 12:09:38 -0700 Subject: [PATCH 0053/1024] Announcing Rust 1.70.0 (#1110) Co-authored-by: Eric Huss Co-authored-by: LegionMammal978 Co-authored-by: Nathan Stocks Co-authored-by: Eric Huss Co-authored-by: LegionMammal978 Co-authored-by: Nathan Stocks --- posts/2023-06-01-Rust-1.70.0.md | 126 ++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 posts/2023-06-01-Rust-1.70.0.md diff --git a/posts/2023-06-01-Rust-1.70.0.md b/posts/2023-06-01-Rust-1.70.0.md new file mode 100644 index 000000000..d09d520f5 --- /dev/null +++ b/posts/2023-06-01-Rust-1.70.0.md @@ -0,0 +1,126 @@ +--- +layout: post +title: "Announcing Rust 1.70.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.70.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via rustup, you can get 1.70.0 with: + +```console +rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.70.0](https://github.com/rust-lang/rust/releases/tag/1.70.0) on GitHub. + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.70.0 stable + +### Sparse by default for crates.io + +Cargo's "sparse" protocol is now enabled by default for reading the index from crates.io. This feature was previously stabilized with [Rust 1.68.0](https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.html#cargos-sparse-protocol), but still required configuration to use that with crates.io. The announced plan was to make that the default in 1.70.0, and here it is! + +You should see substantially improved performance when fetching information from the crates.io index. Users behind a restrictive firewall will need to ensure that access to `https://index.crates.io` is available. If for some reason you need to stay with the previous default of using the git index hosted by GitHub, the [`registries.crates-io.protocol`](https://doc.rust-lang.org/cargo/reference/config.html#registriescrates-ioprotocol) config setting can be used to change the default. + +One side-effect to note about changing the access method is that this also changes the path to the crate cache, so dependencies will be downloaded anew. Once you have fully committed to using the sparse protocol, you may want to clear out the old `$CARGO_HOME/registry/*/github.com-*` paths. + +### `OnceCell` and `OnceLock` + +Two new types have been stabilized for one-time initialization of shared data, `OnceCell` and its thread-safe counterpart `OnceLock`. These can be used anywhere that immediate construction is not wanted, and perhaps not even possible like non-`const` data in global variables. + +```rust +use std::sync::OnceLock; + +static WINNER: OnceLock<&str> = OnceLock::new(); + +fn main() { + let winner = std::thread::scope(|s| { + s.spawn(|| WINNER.set("thread")); + + std::thread::yield_now(); // give them a chance... + + WINNER.get_or_init(|| "main") + }); + + println!("{winner} wins!"); +} +``` + +Crates such as `lazy_static` and `once_cell` have filled this need in the past, but now these building blocks are part of the standard library, ported from `once_cell`'s `unsync` and `sync` modules. There are still more methods that may be stabilized in the future, as well as companion `LazyCell` and `LazyLock` types that store their initializing function, but this first step in stabilization should already cover many use cases. + +### `IsTerminal` + +This newly-stabilized trait has a single method, `is_terminal`, to determine if a given file descriptor or handle represents a terminal or TTY. This is another case of standardizing functionality that existed in external crates, like `atty` and `is-terminal`, using the C library `isatty` function on Unix targets and similar functionality elsewhere. A common use case is for programs to distinguish between running in scripts or interactive modes, like presenting colors or even a full TUI when interactive. + +```rust +use std::io::{stdout, IsTerminal}; + +fn main() { + let use_color = stdout().is_terminal(); + // if so, add color codes to program output... +} +``` + +### Named levels of debug information + +The `-Cdebuginfo` compiler option has previously only supported numbers 0..=2 for increasing amounts of debugging information, where Cargo defaults to 2 in dev and test profiles and 0 in release and bench profiles. These debug levels can now be set by name: "none" (0), "limited" (1), and "full" (2), as well as two new levels, "line-directives-only" and "line-tables-only". + +The Cargo and rustc documentation both called level 1 "line tables only" before, but it was more than that with information about all functions, just not types and variables. That level is now called "limited", and the new "line-tables-only" level is further reduced to the minimum needed for backtraces with filenames and line numbers. This may eventually become the level used for `-Cdebuginfo=1`. The other `line-directives-only` level is intended for NVPTX profiling, and is otherwise not recommended. + +Note that these named options are not yet available to be used via `Cargo.toml`. Support for that will be available in the next release 1.71. + +### Enforced stability in the `test` CLI + +When `#[test]` functions are compiled, the executable gets a command-line interface from the `test` crate. This CLI has a number of options, including some that are not yet stabilized and require specifying `-Zunstable-options` as well, like many other commands in the Rust toolchain. However, while that's only intended to be allowed in nightly builds, that restriction wasn't active in `test` -- until now. Starting with 1.70.0, stable and beta builds of Rust will no longer allow unstable `test` options, making them truly nightly-only as documented. + +There are known cases where unstable options may have been used without direct user knowledge, especially `--format json` used in IntelliJ Rust and other IDE plugins. Those projects are already adjusting to this change, and the status of JSON output can be followed in its [tracking issue](https://github.com/rust-lang/rust/issues/49359). + +### Stabilized APIs + +- [`NonZero*::MIN/MAX`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI8.html#associatedconstant.MIN) +- [`BinaryHeap::retain`](https://doc.rust-lang.org/stable/std/collections/struct.BinaryHeap.html#method.retain) +- [`Default for std::collections::binary_heap::IntoIter`](https://doc.rust-lang.org/stable/std/collections/binary_heap/struct.IntoIter.html) +- [`Default for std::collections::btree_map::{IntoIter, Iter, IterMut}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoIter.html) +- [`Default for std::collections::btree_map::{IntoKeys, Keys}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoKeys.html) +- [`Default for std::collections::btree_map::{IntoValues, Values}`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoKeys.html) +- [`Default for std::collections::btree_map::Range`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.Range.html) +- [`Default for std::collections::btree_set::{IntoIter, Iter}`](https://doc.rust-lang.org/stable/std/collections/btree_set/struct.IntoIter.html) +- [`Default for std::collections::btree_set::Range`](https://doc.rust-lang.org/stable/std/collections/btree_set/struct.Range.html) +- [`Default for std::collections::linked_list::{IntoIter, Iter, IterMut}`](https://doc.rust-lang.org/stable/alloc/collections/linked_list/struct.IntoIter.html) +- [`Default for std::vec::IntoIter`](https://doc.rust-lang.org/stable/alloc/vec/struct.IntoIter.html#impl-Default-for-IntoIter%3CT,+A%3E) +- [`Default for std::iter::Chain`](https://doc.rust-lang.org/stable/std/iter/struct.Chain.html) +- [`Default for std::iter::Cloned`](https://doc.rust-lang.org/stable/std/iter/struct.Cloned.html) +- [`Default for std::iter::Copied`](https://doc.rust-lang.org/stable/std/iter/struct.Copied.html) +- [`Default for std::iter::Enumerate`](https://doc.rust-lang.org/stable/std/iter/struct.Enumerate.html) +- [`Default for std::iter::Flatten`](https://doc.rust-lang.org/stable/std/iter/struct.Flatten.html) +- [`Default for std::iter::Fuse`](https://doc.rust-lang.org/stable/std/iter/struct.Fuse.html) +- [`Default for std::iter::Rev`](https://doc.rust-lang.org/stable/std/iter/struct.Rev.html) +- [`Default for std::slice::Iter`](https://doc.rust-lang.org/stable/std/slice/struct.Iter.html) +- [`Default for std::slice::IterMut`](https://doc.rust-lang.org/stable/std/slice/struct.IterMut.html) +- [`Rc::into_inner`](https://doc.rust-lang.org/stable/alloc/rc/struct.Rc.html#method.into_inner) +- [`Arc::into_inner`](https://doc.rust-lang.org/stable/alloc/sync/struct.Arc.html#method.into_inner) +- [`std::cell::OnceCell`](https://doc.rust-lang.org/stable/std/cell/struct.OnceCell.html) +- [`Option::is_some_and`](https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.is_some_and) +- [`NonNull::slice_from_raw_parts`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.slice_from_raw_parts) +- [`Result::is_ok_and`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.is_ok_and) +- [`Result::is_err_and`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.is_err_and) +- [`std::sync::atomic::Atomic*::as_ptr`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicU8.html#method.as_ptr) +- [`std::io::IsTerminal`](https://doc.rust-lang.org/stable/std/io/trait.IsTerminal.html) +- [`std::os::linux::net::SocketAddrExt`](https://doc.rust-lang.org/stable/std/os/linux/net/trait.SocketAddrExt.html) +- [`std::os::unix::net::UnixDatagram::bind_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.bind_addr) +- [`std::os::unix::net::UnixDatagram::connect_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.connect_addr) +- [`std::os::unix::net::UnixDatagram::send_to_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.send_to_addr) +- [`std::os::unix::net::UnixListener::bind_addr`](https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixListener.html#method.bind_addr) +- [`std::path::Path::as_mut_os_str`](https://doc.rust-lang.org/stable/std/path/struct.Path.html#method.as_mut_os_str) +- [`std::sync::OnceLock`](https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html) + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.70.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-170-2023-06-01), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-170). + +## Contributors to 1.70.0 + +Many people came together to create Rust 1.70.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.70.0/) From 125abbfdd38fd55d5dcb023ed622a766df1da318 Mon Sep 17 00:00:00 2001 From: gardrek Date: Fri, 2 Jun 2023 21:26:50 -0500 Subject: [PATCH 0054/1024] ok --- posts/2023-01-20-types-announcement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-01-20-types-announcement.md b/posts/2023-01-20-types-announcement.md index 0f927dbe5..9594a71e6 100644 --- a/posts/2023-01-20-types-announcement.md +++ b/posts/2023-01-20-types-announcement.md @@ -42,7 +42,7 @@ As mentioned above, a nearly essential element of the growing Rust language is t As far back as 2015, not long after the release of Rust 1.0, an experimental Rust trait solver called Chalk began to be written. The core idea of Chalk is to translate the surface syntax and ideas of the Rust trait system (e.g. traits, impls, where clauses) into a set of logic rules that can be solved using a Prolog-like solver. Then, once this set of logic and solving reaches parity with the trait solver within the compiler itself, the plan was to simply replace the existing solver. In the meantime (and continuing forward), this new solver could be used by other tools, such as rust-analyzer, where it is used today. -Now, given Chalk's age and the promises it had hoped to be able to deliver on, you might be tempted to ask the question "Chalk, when?" - and plenty have. However, we've learned over the years that Chalk is likely not the correct long-term solution for Rust, for a few reasons. First, as mentioned a few times in this post, the trait solver is only but a part of a larger type system; and modeling how the entire type system fits together gives a more complete picture of its details than trying to model the parts separately. Second, the needs of the *compiler* are quite different than the needs of a *formalization*: the compiler needs performant code with the ability to track information required for powerful diagnostics; a good formalization is one that is not only complete, but also easy to maintain, read, and understand. Over the years, Chalk has tried to have both and it has so far ended up with neither. +Now, given Chalk's age and the promises it had been hoped it would be able to deliver on, you might be tempted to ask the question "Chalk, when?" - and plenty have. However, we've learned over the years that Chalk is likely not the correct long-term solution for Rust, for a few reasons. First, as mentioned a few times in this post, the trait solver is only but a part of a larger type system; and modeling how the entire type system fits together gives a more complete picture of its details than trying to model the parts separately. Second, the needs of the *compiler* are quite different than the needs of a *formalization*: the compiler needs performant code with the ability to track information required for powerful diagnostics; a good formalization is one that is not only complete, but also easy to maintain, read, and understand. Over the years, Chalk has tried to have both and it has so far ended up with neither. So, what are the plans going forward? Well, first the types team has begun working on a formalization of the Rust typesystem, currently coined [a-mir-formality](https://github.com/nikomatsakis/a-mir-formality/). An initial experimental phase was written using [PLT redex](https://redex.racket-lang.org/), but a Rust port is in-progress. There's a lot to do still (including modeling more of the trait system, writing an RFC, and moving it into the rust-lang org), but it's already showing great promise. From eab243a4778834b1c9dd50741c2f08993b4c3848 Mon Sep 17 00:00:00 2001 From: Jack Huey <31162821+jackh726@users.noreply.github.com> Date: Fri, 16 Jun 2023 18:58:37 -0400 Subject: [PATCH 0055/1024] Add introduction post for Leadership Council --- ...23-06-20-introducing-leadership-council.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 posts/2023-06-20-introducing-leadership-council.md diff --git a/posts/2023-06-20-introducing-leadership-council.md b/posts/2023-06-20-introducing-leadership-council.md new file mode 100644 index 000000000..64e884668 --- /dev/null +++ b/posts/2023-06-20-introducing-leadership-council.md @@ -0,0 +1,29 @@ +--- +layout: post +title: "Introducing the Rust Leadership Council" +author: Leadership Council +team: Leadership Council +--- + +As of today, [RFC 3392] has been merged, forming the new top level governance body of the Rust Project: the Leadership Council. The creation of this Council marks the end of both the Core Team and the interim Leadership Chat. + +The Council will assume responsibility for top-level governance concerns while most of the responsibilities of the Rust Project (such as maintenance of the compiler and core tooling, evolution of the language and standard libraries, administration of infrastructure, etc.) remain with the nine top level teams. + +Each of these top level teams has chosen a representative who collectively form [the Council](https://www.rust-lang.org/governance/teams/leadership-council): +- Compiler: Eric Holk +- Crates.io: Carol (Nichols || Goulding) +- Dev Tools: Eric Huss +- Infrastructure: Ryan Levick +- Language: Jack Huey +- Launching Pad: Jonathan Pallant +- Library: Mara Bos +- Moderation: Khionu Sybiern +- Release: Mark Rousskov + +First, we want to take a moment to thank the Core Team and interim Leadership Chat for the hard work they've put in over the years. Their efforts have been critical for the Rust Project. However, we do recognize that the governance of the Rust project has had its shortcomings. We hope to build on the successes and improve upon the failures to ultimately lead to greater transparency and accountability. + +We know that there is a lot of work to do and we are eager to get started. In the coming weeks we will be establishing the basic infrastructure for the group, including creating a plan for regular meetings and a process for raising agenda items, setting up a team repository, and ultimately completing the transition from the former Rust leadership structures. + +We will post more once this bootstrapping process has been completed. + +[RFC 3392]: https://github.com/rust-lang/rfcs/pull/3392 From 733b2f9c6e1a79980e96b04748e01992105eb7a0 Mon Sep 17 00:00:00 2001 From: Jack Huey <31162821+jackh726@users.noreply.github.com> Date: Mon, 19 Jun 2023 10:13:59 -0400 Subject: [PATCH 0056/1024] Address reviews by capitilizing Project, adding a link to top-level team definition, and adding a footnote for Launching Pad --- posts/2023-06-20-introducing-leadership-council.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/posts/2023-06-20-introducing-leadership-council.md b/posts/2023-06-20-introducing-leadership-council.md index 64e884668..0c43fc38e 100644 --- a/posts/2023-06-20-introducing-leadership-council.md +++ b/posts/2023-06-20-introducing-leadership-council.md @@ -9,21 +9,23 @@ As of today, [RFC 3392] has been merged, forming the new top level governance bo The Council will assume responsibility for top-level governance concerns while most of the responsibilities of the Rust Project (such as maintenance of the compiler and core tooling, evolution of the language and standard libraries, administration of infrastructure, etc.) remain with the nine top level teams. -Each of these top level teams has chosen a representative who collectively form [the Council](https://www.rust-lang.org/governance/teams/leadership-council): +Each of these top level teams, [as defined in the RFC](https://rust-lang.github.io/rfcs/3392-leadership-council.html#initial-list-of-top-level-teams), has chosen a representative who collectively form [the Council](https://www.rust-lang.org/governance/teams/leadership-council): - Compiler: Eric Holk - Crates.io: Carol (Nichols || Goulding) - Dev Tools: Eric Huss - Infrastructure: Ryan Levick - Language: Jack Huey -- Launching Pad: Jonathan Pallant +- Launching Pad[^1]: Jonathan Pallant - Library: Mara Bos - Moderation: Khionu Sybiern - Release: Mark Rousskov -First, we want to take a moment to thank the Core Team and interim Leadership Chat for the hard work they've put in over the years. Their efforts have been critical for the Rust Project. However, we do recognize that the governance of the Rust project has had its shortcomings. We hope to build on the successes and improve upon the failures to ultimately lead to greater transparency and accountability. +First, we want to take a moment to thank the Core Team and interim Leadership Chat for the hard work they've put in over the years. Their efforts have been critical for the Rust Project. However, we do recognize that the governance of the Rust Project has had its shortcomings. We hope to build on the successes and improve upon the failures to ultimately lead to greater transparency and accountability. We know that there is a lot of work to do and we are eager to get started. In the coming weeks we will be establishing the basic infrastructure for the group, including creating a plan for regular meetings and a process for raising agenda items, setting up a team repository, and ultimately completing the transition from the former Rust leadership structures. We will post more once this bootstrapping process has been completed. +[^1]: The RFC defines the launching pad team as a temporary umbrella team to represent subteams that do not currently have a top-level team. + [RFC 3392]: https://github.com/rust-lang/rfcs/pull/3392 From 9ddea3462a0472d0d209d2c1a0b275bc080a394f Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 22 Jun 2023 10:54:49 +0200 Subject: [PATCH 0057/1024] CI: Use `actions/deploy-pages` to deploy to GitHub Pages --- .github/workflows/main.yml | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2acdccc8d..ec91417be 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,8 +6,7 @@ on: pull_request: jobs: - ci: - name: CI + build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -43,9 +42,25 @@ jobs: - run: cargo run - run: cp CNAME ./site/ - run: touch site/.nojekyll - - uses: JamesIves/github-pages-deploy-action@releases/v3 - if: github.ref == 'refs/heads/master' + + - uses: actions/upload-pages-artifact@v1.0.9 with: - ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages - FOLDER: site + path: site + + deploy: + if: ${{ github.ref == 'refs/heads/master' }} + + needs: build + + permissions: + pages: write + id-token: write + + runs-on: ubuntu-latest + steps: + - id: deployment + uses: actions/deploy-pages@v2.0.2 + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} From 03f1c9db6034ec765f62466eb3d8acc778c42b50 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 22 Jun 2023 10:58:23 +0200 Subject: [PATCH 0058/1024] CI: Use `Swatinem/rust-cache` action to simplify Rust dependency caching --- .github/workflows/main.yml | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2acdccc8d..58279609c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,33 +12,7 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Detect the installed Rust version - id: rustc - run: echo "::set-output name=version::$(rustc -V)" - - - name: Cache Cargo's registry cache - uses: actions/cache@v2 - with: - path: ~/.cargo/registry/cache - key: cargo-registry-cache-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - cargo-registry-cache- - - - name: Cache Cargo's registry index - uses: actions/cache@v2 - with: - path: ~/.cargo/registry/index - key: cargo-registry-index-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - cargo-registry-index- - - - name: Cache Cargo's target directory - uses: actions/cache@v2 - with: - path: target - key: cargo-build-${{ steps.rustc.outputs.version }}-${{ hashFiles('**/Cargo.lock') }} - restore-keys: | - cargo-build-${{ steps.rustc.outputs.version }}- + - uses: Swatinem/rust-cache@v2.5.0 - run: cargo run - run: cp CNAME ./site/ From 81ca04fc594cc93e71342eff10cc182229769559 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 22 Jun 2023 12:39:49 +0200 Subject: [PATCH 0059/1024] Add "Improved API tokens for crates.io" post --- ...06-23-improved-api-tokens-for-crates-io.md | 45 ++++++++++++++++++ .../new-api-token-page.png | Bin 0 -> 177291 bytes 2 files changed, 45 insertions(+) create mode 100644 posts/2023-06-23-improved-api-tokens-for-crates-io.md create mode 100644 static/images/2023-06-23-improved-api-tokens-for-crates-io/new-api-token-page.png diff --git a/posts/2023-06-23-improved-api-tokens-for-crates-io.md b/posts/2023-06-23-improved-api-tokens-for-crates-io.md new file mode 100644 index 000000000..16dda7bbb --- /dev/null +++ b/posts/2023-06-23-improved-api-tokens-for-crates-io.md @@ -0,0 +1,45 @@ +--- +layout: post +title: Improved API tokens for crates.io +author: Tobias Bieniek +team: the crates.io team +--- + +If you created a new API token on crates.io lately, you may have noticed our new +API token creation page and some of the new features it supports. + +Previously, when you clicked the "New Token" button on +you would only get the option to choose a name for the token, but nothing else. +We knew that we wanted to offer our users more choices, but in the previous user +interface that would have been difficult, so our first step was to build a +proper "New API Token" page. + +Our next two features on the to-do list were both described as "token scopes". +One part is allowing you to restrict API tokens to certain operations, e.g. +only allowing a token to publish new versions of existing crates, but not any +new crates. The second part is an optional restriction for the token to only +work with certain crate names. If you want to read more about how these features +were planned and implemented you can take a look at our corresponding +[tracking issue](https://github.com/rust-lang/crates.io/issues/5443). + +The remaining piece to making crates.io API tokens more secure was implementing +expiration dates for them. Since we had already touched most of the +token-related code this was relatively straight-forward, and we are happy to +announce that our "New API Token" page now supports endpoint scopes, crate +scopes and expiration dates: + +![Screenshot of the "New API Token" page](/images/2023-06-23-improved-api-tokens-for-crates-io/new-api-token-page.png) + +Similar to when you create an API token on github.com, you can choose to not +have an expiration date, use one of the presets, or even choose a custom +expiration date. + +If you notice any issues, or if you have any questions don't hesitate to find us +on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/token.20scopes) +or open an issue on [GitHub](https://github.com/rust-lang/crates.io/issues/new/choose). + +Finally, the crates.io team would like to thank the [OpenSSF's Alpha-Omega Initiative](https://openssf.org/community/alpha-omega/) +and [JFrog](https://jfrog.com/blog/jfrog-joins-rust-foundation-as-platinum-member/) +for funding the [Rust Foundation](https://rustfoundation.org) security +initiative, which enabled us to implement these features and perform a lot of +other security-related work on the crates.io codebase in the past couple of months! \ No newline at end of file diff --git a/static/images/2023-06-23-improved-api-tokens-for-crates-io/new-api-token-page.png b/static/images/2023-06-23-improved-api-tokens-for-crates-io/new-api-token-page.png new file mode 100644 index 0000000000000000000000000000000000000000..88b885f0cc6f33d995eb234d43c0bb98d8abacd5 GIT binary patch literal 177291 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≫2-B3^F=4mncvOhFhv1S&QRG3&w_UL@N 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 DEV|8+ literal 0 HcmV?d00001 From 3cb287ba08bd7917157b1585522bbb9a06eb98e0 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 22 Jun 2023 12:40:22 +0200 Subject: [PATCH 0060/1024] Rewrite "Improved API tokens for crates.io" post via ChatGPT --- ...06-23-improved-api-tokens-for-crates-io.md | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/posts/2023-06-23-improved-api-tokens-for-crates-io.md b/posts/2023-06-23-improved-api-tokens-for-crates-io.md index 16dda7bbb..dc4e3ed0c 100644 --- a/posts/2023-06-23-improved-api-tokens-for-crates-io.md +++ b/posts/2023-06-23-improved-api-tokens-for-crates-io.md @@ -5,41 +5,44 @@ author: Tobias Bieniek team: the crates.io team --- -If you created a new API token on crates.io lately, you may have noticed our new -API token creation page and some of the new features it supports. - -Previously, when you clicked the "New Token" button on -you would only get the option to choose a name for the token, but nothing else. -We knew that we wanted to offer our users more choices, but in the previous user -interface that would have been difficult, so our first step was to build a -proper "New API Token" page. - -Our next two features on the to-do list were both described as "token scopes". -One part is allowing you to restrict API tokens to certain operations, e.g. -only allowing a token to publish new versions of existing crates, but not any -new crates. The second part is an optional restriction for the token to only -work with certain crate names. If you want to read more about how these features +If you recently generated a new API token on crates.io, you might have noticed +our new API token creation page and some of the new features it now supports. + +Previously, when clicking the "New Token" button on , +you were only provided with the option to choose a token name, without any +additional choices. We knew that we wanted to offer our users more flexibility, +but in the previous user interface that would have been difficult, so our first +step was to build a proper "New API Token" page. + +Our roadmap included two essential features known as "token scopes". The first +of them allows you to restrict API tokens to specific operations. For instance, +you can configure a token to solely enable the publishing of new versions for +existing crates, while disallowing the creation of new crates. The second one +offers an optional restriction where tokens can be limited to only work for +specific crate names. If you want to read more about how these features were planned and implemented you can take a look at our corresponding [tracking issue](https://github.com/rust-lang/crates.io/issues/5443). -The remaining piece to making crates.io API tokens more secure was implementing -expiration dates for them. Since we had already touched most of the -token-related code this was relatively straight-forward, and we are happy to +To further enhance the security of crates.io API tokens, we prioritized the +implementation of expiration dates. Since we had already touched most of the +token-related code this was relatively straight-forward. We are delighted to announce that our "New API Token" page now supports endpoint scopes, crate scopes and expiration dates: ![Screenshot of the "New API Token" page](/images/2023-06-23-improved-api-tokens-for-crates-io/new-api-token-page.png) -Similar to when you create an API token on github.com, you can choose to not -have an expiration date, use one of the presets, or even choose a custom -expiration date. +Similar to the API token creation process on github.com, you can choose to not +have any expiration date, use one of the presets, or even choose a custom +expiration date to suit your requirements. -If you notice any issues, or if you have any questions don't hesitate to find us -on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/token.20scopes) +If you come across any issues or have questions, feel free to reach out to us on +[Zulip](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/token.20scopes) or open an issue on [GitHub](https://github.com/rust-lang/crates.io/issues/new/choose). -Finally, the crates.io team would like to thank the [OpenSSF's Alpha-Omega Initiative](https://openssf.org/community/alpha-omega/) +Lastly, we, the crates.io team, would like to express our gratitude to the +[OpenSSF's Alpha-Omega Initiative](https://openssf.org/community/alpha-omega/) and [JFrog](https://jfrog.com/blog/jfrog-joins-rust-foundation-as-platinum-member/) -for funding the [Rust Foundation](https://rustfoundation.org) security -initiative, which enabled us to implement these features and perform a lot of -other security-related work on the crates.io codebase in the past couple of months! \ No newline at end of file +for their contributions to the [Rust Foundation](https://rustfoundation.org) +security initiative. Their support has been instrumental in enabling us to +implement these features and undertake extensive security-related work on the +crates.io codebase over the past few months. From 7d5274c64e601dc582b5f890fe5986ebc97cac05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Jun 2023 18:39:51 +0200 Subject: [PATCH 0061/1024] Bump warp from 0.3.2 to 0.3.3 (#1072) Bumps [warp](https://github.com/seanmonstar/warp) from 0.3.2 to 0.3.3. - [Release notes](https://github.com/seanmonstar/warp/releases) - [Changelog](https://github.com/seanmonstar/warp/blob/master/CHANGELOG.md) - [Commits](https://github.com/seanmonstar/warp/compare/v0.3.2...v0.3.3) --- updated-dependencies: - dependency-name: warp dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 99 +++++++++++++++--------------------------------------- 1 file changed, 28 insertions(+), 71 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2a161f25c..f46f45fe0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -76,15 +76,6 @@ dependencies = [ "generic-array 0.12.3", ] -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array 0.14.5", -] - [[package]] name = "block-buffer" version = "0.10.2" @@ -256,15 +247,6 @@ dependencies = [ "generic-array 0.12.3", ] -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.5", -] - [[package]] name = "digest" version = "0.10.3" @@ -428,7 +410,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.2", + "tokio-util", "tracing", ] @@ -829,12 +811,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - [[package]] name = "pem" version = "1.1.0" @@ -1099,17 +1075,25 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" dependencies = [ - "base64", "log", "ring", "sct", "webpki", ] +[[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.3" @@ -1161,9 +1145,9 @@ checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" [[package]] name = "sct" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" dependencies = [ "ring", "untrusted", @@ -1239,20 +1223,7 @@ dependencies = [ "block-buffer 0.7.3", "digest 0.8.1", "fake-simd", - "opaque-debug 0.2.3", -] - -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug", ] [[package]] @@ -1488,9 +1459,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.22.0" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ "rustls", "tokio", @@ -1510,31 +1481,16 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.15.0" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511de3f85caf1c98983545490c3d09685fa8eb634e57eec22bb4db271f46cbd8" +checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", "log", - "pin-project", "tokio", "tungstenite", ] -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.2" @@ -1596,9 +1552,9 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "tungstenite" -version = "0.14.0" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0b2d8558abd2e276b0a8df5c05a2ec762609344191e5fd23e292c910e9165b5" +checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" dependencies = [ "base64", "byteorder", @@ -1607,7 +1563,7 @@ dependencies = [ "httparse", "log", "rand", - "sha-1 0.9.8", + "sha-1 0.10.0", "thiserror", "url", "utf-8", @@ -1763,9 +1719,9 @@ dependencies = [ [[package]] name = "warp" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cef4e1e9114a4b7f1ac799f16ce71c14de5778500c5450ec6b7b920c55b587e" +checksum = "ed7b8be92646fc3d18b06147664ebc5f48d222686cb11a8755e561a735aacc6d" dependencies = [ "bytes", "futures-channel", @@ -1779,6 +1735,7 @@ dependencies = [ "multipart", "percent-encoding", "pin-project", + "rustls-pemfile", "scoped-tls", "serde", "serde_json", @@ -1787,7 +1744,7 @@ dependencies = [ "tokio-rustls", "tokio-stream", "tokio-tungstenite", - "tokio-util 0.6.10", + "tokio-util", "tower-service", "tracing", ] @@ -1881,9 +1838,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.21.4" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" dependencies = [ "ring", "untrusted", From e9d9124173df0ce1854fc65a4bbd58e7661cf1e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Jun 2023 18:40:28 +0200 Subject: [PATCH 0062/1024] Bump xml-rs from 0.8.4 to 0.8.14 (#1111) Bumps [xml-rs](https://github.com/kornelski/xml-rs) from 0.8.4 to 0.8.14. - [Changelog](https://github.com/kornelski/xml-rs/blob/main/Changelog.md) - [Commits](https://github.com/kornelski/xml-rs/compare/0.8.4...0.8.14) --- updated-dependencies: - dependency-name: xml-rs dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f46f45fe0..b1ad16775 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1885,9 +1885,9 @@ checksum = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" [[package]] name = "xml-rs" -version = "0.8.4" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" +checksum = "52839dc911083a8ef63efa4d039d1f58b5e409f923e44c80828f206f66e5541c" [[package]] name = "yaml-rust" From a7af062b382f081d6f1d1969f32d734fe34d33eb Mon Sep 17 00:00:00 2001 From: Caleb Cartwright Date: Mon, 3 Jul 2023 12:56:02 -0500 Subject: [PATCH 0063/1024] docs: rustfmt let-else support (#1117) --- ...01-rustfmt-supports-let-else-statements.md | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 posts/2023-07-01-rustfmt-supports-let-else-statements.md diff --git a/posts/2023-07-01-rustfmt-supports-let-else-statements.md b/posts/2023-07-01-rustfmt-supports-let-else-statements.md new file mode 100644 index 000000000..b157ec447 --- /dev/null +++ b/posts/2023-07-01-rustfmt-supports-let-else-statements.md @@ -0,0 +1,65 @@ +--- +layout: post +title: Rustfmt support for let-else statements +author: Caleb Cartwright +team: the style team and the rustfmt team +--- + +Rustfmt will add support for formatting [let-else statements] starting with the nightly 2023-07-02 toolchain, and then let-else formatting support should come to stable Rust as part of the 1.72 release. + +## Overview + +let-else statements were [stabilized][let-else stabilization] back in 2022 as part of the 1.65.0 release. However, the current and previous versions of Rustfmt did not have formatting support for let-else statements. When Rustfmt encountered a let-else statement it would leave it alone and maintain the manual styling originally authored by the developer. + +After updating to one of the toolchains with let-else formatting support, you may notice that `cargo fmt`/`rustfmt` invocations want to "change" the formatting of your let-else statements. However, this isn't actually a "change" in formatting, but instead is simply Rustfmt applying the [let-else formatting rules] for the very first time. + +Rustfmt support for let-else statements has been a long standing request, and the Project has taken a number of steps to prevent a recurrence of the delay between feature stabilization and formatting support, as well as putting additional procedures in place which should enable more expeditious formatting support for nightly-only syntax. + +## Background and Context + +Rust has an official [Style Guide] that articulates the default formatting style for Rust code. The Style Guide functions as a specification that defines the default formatting behavior for Rustfmt, and Rustfmt's primary mission is to provide automated formatting capabilities based around that Style Guide specification. Rustfmt is a direct consumer of the Style Guide, but Rustfmt does not unilaterally dictate what the default formatting style of language constructs should be. + +The initial Style Guide was developed many years ago (beginning in 2016), and was driven by a Style Team in collaboration with the community through an RFC process. The Style Guide was then made official in 2018 via [RFC 2436]. + +That initial Style Team was more akin to a Project Working Group in today's terms, as they had a fixed scope with a main goal to simply pull together the initial Style Guide. Accordingly that initial Style Team was disbanded once the Guide was made official. + +There was subsequently no designated group within the Rust Project that was +explicitly responsible for the Style Guide, and no group explicitly focused on determining the official Style for new language constructs. + +The absence of a team/group with ownership of the Style Guide didn't really cause problems at first, as the new syntax that came along during the first few years was comparatively non-controversial when it came to default style and formatting. However, over time challenges started to develop when there was increasingly less community consensus and no governing team within the Project to make the final decision about how new language syntax should be styled. + +This was certainly the case with let-else statements, with lots of varying perspectives on how they should be styled. Without any team/group to make the decision and update the Style Guide with the official rules for let-else statements, Rustfmt was blocked and was unable to proceed. + +These circumstances around let-else statements resulted in a greater understanding across the Project of the need to establish a team to own and maintain the Style Guide. However, it was also well understood that spinning up a new team and respective processes would take some time, and the decision was made to not block the stabilization of features that were otherwise fully ready to be stabilized, like let-else statements, in the nascency of such a new team and new processes. + +Accordingly, let-else statements were stabilized and released without formatting support and with an understanding that the new Style Team and then subsequently the Rustfmt Team would later complete the requisite work required to incorporate formatting support. + +## Steps Taken + +A number of steps have been taken to improve matters in this space. This includes steps to address the aforementioned issues and deal with some of the "style debt" that accrued over the years in the absence of a Style Team, and also to establish new processes and mechanisms to bring about other formatting/styling improvements. + +* [Launched a new, permanent Style Team][style-team-rfc] that's responsible for the Style Guide. +* Established a mechanism to evolve the default style while still maintaining stability guarantees ([RFC 3338][style-edition-rfc]). +* Developed a [nightly-syntax-policy] that provides clarity around style rules for unstable/nightly-only syntax, and enables Rustfmt to provide earlier support for such syntax. + +Furthermore, the Style Team is also continuing to diligently work through the backlog of those "style debt" items, and the Rustfmt team is in turn actively working on respective formatting implementation. The Rustfmt team is also focused on growing the team in order to improve contributor and review capacity. + +## Conclusion + +We know that many have wanted let-else formatting support for a while, and we're sorry it's taken this long. We also recognize that Rustfmt now starting to format let-else statements may cause some formatting churn, and that's a highly undesirable scenario we strive to avoid. + +However, we believe the benefits of delivering let-else formatting support outweigh those drawbacks. While it's possible there may be another future case or two where we have to do something similar as we work through the style backlog, we're hopeful that over time this new team and these new processes will reduce (or eliminate) the possibility of a recurrence by addressing the historical problems that played such an outsize role in the let-else delay, and also bring about various other improvements. + + +Both the Style and Rustfmt teams hang out on Zulip so if you'd like to get more involved or have any questions please drop by on [T-Style][style-zulip] and/or [T-Rustfmt][rustfmt-zulip]. + +[let-else statements]: https://doc.rust-lang.org/rust-by-example/flow_control/let_else.html +[let-else stabilization]: https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html#let-else-statements +[let-else formatting rules]: https://doc.rust-lang.org/nightly/style-guide/statements.html#else-blocks-let-else-statements +[style guide]: https://doc.rust-lang.org/nightly/style-guide/ +[RFC 2436]: https://rust-lang.github.io/rfcs/2436-style-guide.html +[style-team-rfc]: https://rust-lang.github.io/rfcs/3309-style-team.html +[style-edition-rfc]: https://rust-lang.github.io/rfcs/3338-style-evolution.html +[nightly-syntax-policy]: https://github.com/rust-lang/style-team/blob/468570a02856a6bbe3994164e1a16a13b56b5cf4/nightly-style-procedure.md +[style-zulip]: https://rust-lang.zulipchat.com/#narrow/stream/346005-t-style +[rustfmt-zulip]: https://rust-lang.zulipchat.com/#narrow/stream/357797-t-rustfmt \ No newline at end of file From 77a0da426d55de1f10a9073e31b4555256a91e37 Mon Sep 17 00:00:00 2001 From: Andrew Gallant Date: Wed, 5 Jul 2023 09:35:05 -0400 Subject: [PATCH 0064/1024] Add short blog post about regex 1.9 release (#1119) --- posts/2023-07-05-regex-1.9.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 posts/2023-07-05-regex-1.9.md diff --git a/posts/2023-07-05-regex-1.9.md b/posts/2023-07-05-regex-1.9.md new file mode 100644 index 000000000..862a00623 --- /dev/null +++ b/posts/2023-07-05-regex-1.9.md @@ -0,0 +1,31 @@ +--- +layout: post +title: "Announcing regex 1.9" +author: Andrew Gallant +team: The regex crate team +--- + +The regex sub-team is announcing the release of `regex 1.9`. The `regex` crate +is maintained by the Rust project and is the recommended way to use regular +expressions in Rust. Its defining characteristic is its guarantee of worst case +linear time searches with respect to the size of the string being searched. + +Releases of the `regex` crate aren't normally announced on this blog, but +since the majority of its internals have been rewritten in version 1.9, this +announcement serves to encourage extra scrutiny. If you run into any problems +or performance regressions, please report them on the [issue tracker] or [ask +questions on the Discussion forum][discussions]. + +Few API additions have been made, but one worth calling out is the +[`Captures::extract`] method that should make getting capture groups in some +cases more convenient. Otherwise, the main change folks should see is hopefully +faster search times. + +You can read more in the [CHANGELOG] and in a more in depth blog post on +[regex crate internals as a library][regex-internals]. + +[issue tracker]: https://github.com/rust-lang/regex/issues +[discussions]: https://github.com/rust-lang/regex/discussions +[`Captures::extract`]: https://docs.rs/regex/1.*/regex/struct.Captures.html#method.extract +[CHANGELOG]: https://github.com/rust-lang/regex/blob/master/CHANGELOG.md#190-2023-07-05 +[regex-internals]: https://blog.burntsushi.net/regex-internals/ From 5749a3aab33d17f054e0cdbab86142c6d23a7326 Mon Sep 17 00:00:00 2001 From: lcnr Date: Sat, 8 Jul 2023 20:54:35 +0200 Subject: [PATCH 0065/1024] trait system refactor initiative update --- ...-07-11-trait-system-refactor-initiative.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md diff --git a/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md b/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md new file mode 100644 index 000000000..92bc57a7c --- /dev/null +++ b/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md @@ -0,0 +1,47 @@ +--- +layout: post +title: "Rustc Trait System Refactor Initiative Update" +author: lcnr +team: The Rustc Trait System Refactor Initiative +--- + +As announced in the [Types Team announcement post](https://blog.rust-lang.org/2023/01/20/types-announcement.html) at the start of this year, the Types Team has started to reimplement the trait solver of rustc. This refactor is similar to [chalk](https://github.com/rust-lang/chalk/), but directly integrated into the existing codebase using the experiences gathered over the last few years. Unlike chalk, the new trait solver has the sole goal of replacing the exisiting implementation. We are separately working on formalizing the type system in [a-mir-formality](https://github.com/rust-lang/a-mir-formality). + +By reimplementing the trait solver of rustc we are able to fix many subtle bugs and inefficiencies of the existing implementation. This should result in faster compilation speed and bugs. The new trait solver implementation should also unblock many future changes, most notably around implied bounds and coinduction. This will allow us to remove many of the [current restrictions on GATs](https://github.com/rust-lang/rust/issues/91693) and to fix many long-standing unsound issues, for example [#25860](https://github.com/rust-lang/rust/issues/25860). Some unsound issues will already be fixed at the point of stabilization while others will require additional work afterwards. The new solver will also enable or greatly simplify other, still experimental type system extensions, e.g. [generic const expressions](https://github.com/rust-lang/rust/issues/76560) and [non-lifetime binders](https://github.com/rust-lang/rust/issues/108185). + +It has now been half a year since that announcement which matches the first step of [our roadmap][roadmap]. + +## The status quo + +The new trait solver implementation can be tested on nightly by using the rustc flag `-Ztrait-solver=next`. To only use the new implementation for coherence, `-Ztrait-solver=next-coherence` can be used. See the current implementation progress of the new trait solver in [its tracking issue](https://github.com/rust-lang/rust/issues/107374). + +We are now at a point where the we exclusively rely on the new implementation when the feature flag is enabled. This is a major step as we've previously still relied on the old solver for ["deep normalization"](https://github.com/rust-lang/rust/pull/113086) and ["selection"](https://github.com/rust-lang/rust/pull/112869). When using the new trait solver many crates and most of our existing regression tests successfully compile. + +While there is a significant tail of less common bugs, we currently have two main failure causes. The new solver has a slightly different approach for `impl Trait`, the implementation of which is still broken for nested RPIT, e.g. `fn foo() -> impl Trait`. Implementing this new approach helped us to discover issues of the existing implementation which allows us to refine its design before the stabilization of TAIT. The inference of implicit unsize coercions, e.g. converting `Box` to `Box`, relies on implementation details of the existing trait solver. We've recently started to emulating the existing behavior here and should fix most of the remaining breakage from that over the next few weeks. + +## Going forward + +After fixing the currently open issues, we intend to move parts of rustc to the new trait solver implementation in steps, starting by using it in coherence. We expect to move coherence to the new implementation at the end of this year. Moving the type checking of functions to the new trait solver implementation will be a lot more challenging than coherence. This will be the last place where we will use the old implementation. We expect to change the default there in 2024, potentially relying on the new edition to help with migration. + +A major challenge will be "incompleteness". The trait system sometimes unnecessarily guides type inference. Consider the following example: +```rust +fn impl_trait() -> impl Into { + 0u16 +} + +fn main() { + // There are two possible types for `x`: + // - `u32` by using the "alias bound" of `impl Into` + // - `impl Into`, i.e. `u16`, by using `impl From for T` + // + // We infer the type of `x` to be `u32` even though this is not + // strictly necessary and can even lead to surprising errors. + let x = impl_trait().into(); + println!("{}", std::mem::size_of_val(&x)); +} +``` +How and when we make such inference jumps is quite closely tied to the old trait solver implementation and not something we want to, or even can, copy directly. We have to figure out how to mostly maintain the existing behavior while fitting the rules to the new implementation. The complexity of this issue will only become apparent once the bigger issues are fixed and we start running crater with the new implementation enabled. + +Type checking has to also emit actionable and useful errors to the user. These diagnostics have been incrementally improved by relying on, and working around, the internals of the old trait solver implementation. This means that we cannot simply reuse them with the new trait solver implementation. Our goal there is to instead optionally emit "proof trees", an in-memory representation of what happened in the solver. We intend provide an API in top of these proof trees which can be used without being a trait solver expert. Diagnostics should then be migrated towards this new API. + +[roadmap]: https://blog.rust-lang.org/2023/01/20/types-announcement.html#roadmap \ No newline at end of file From 929f0170098a08667fb44b8e8f2273198c476054 Mon Sep 17 00:00:00 2001 From: lcnr Date: Sat, 8 Jul 2023 20:58:25 +0200 Subject: [PATCH 0066/1024] words --- .../inside-rust/2023-07-11-trait-system-refactor-initiative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md b/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md index 92bc57a7c..c2b45793e 100644 --- a/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md @@ -5,7 +5,7 @@ author: lcnr team: The Rustc Trait System Refactor Initiative --- -As announced in the [Types Team announcement post](https://blog.rust-lang.org/2023/01/20/types-announcement.html) at the start of this year, the Types Team has started to reimplement the trait solver of rustc. This refactor is similar to [chalk](https://github.com/rust-lang/chalk/), but directly integrated into the existing codebase using the experiences gathered over the last few years. Unlike chalk, the new trait solver has the sole goal of replacing the exisiting implementation. We are separately working on formalizing the type system in [a-mir-formality](https://github.com/rust-lang/a-mir-formality). +As announced in the [Types Team announcement post](https://blog.rust-lang.org/2023/01/20/types-announcement.html) at the start of this year, the Types Team has started to reimplement the trait solver of rustc. This refactor is similar to [chalk](https://github.com/rust-lang/chalk/), but directly integrated into the existing codebase using the experience gathered over the last few years. Unlike chalk, the new trait solver has the sole goal of replacing the exisiting implementation. We are separately working on formalizing the type system in [a-mir-formality](https://github.com/rust-lang/a-mir-formality). By reimplementing the trait solver of rustc we are able to fix many subtle bugs and inefficiencies of the existing implementation. This should result in faster compilation speed and bugs. The new trait solver implementation should also unblock many future changes, most notably around implied bounds and coinduction. This will allow us to remove many of the [current restrictions on GATs](https://github.com/rust-lang/rust/issues/91693) and to fix many long-standing unsound issues, for example [#25860](https://github.com/rust-lang/rust/issues/25860). Some unsound issues will already be fixed at the point of stabilization while others will require additional work afterwards. The new solver will also enable or greatly simplify other, still experimental type system extensions, e.g. [generic const expressions](https://github.com/rust-lang/rust/issues/76560) and [non-lifetime binders](https://github.com/rust-lang/rust/issues/108185). From 434179c2ac5245806dfa78277457277f157536d3 Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Mon, 10 Jul 2023 19:59:32 +0000 Subject: [PATCH 0067/1024] Creating file via promote-release automation --- .../2023-07-10-1.71.0-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-07-10-1.71.0-prerelease.md diff --git a/posts/inside-rust/2023-07-10-1.71.0-prerelease.md b/posts/inside-rust/2023-07-10-1.71.0-prerelease.md new file mode 100644 index 000000000..2ac38b498 --- /dev/null +++ b/posts/inside-rust/2023-07-10-1.71.0-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.71.0 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.71.0 pre-release is ready for testing. The release is scheduled for +July 13. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-71-0-pre-release-testing/19123). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1710-2023-07-13 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From f9f1140070db7c3f7b8efdbd9ef7a6552365fa38 Mon Sep 17 00:00:00 2001 From: lcnr Date: Thu, 13 Jul 2023 11:58:46 +0200 Subject: [PATCH 0068/1024] review --- .../2023-07-11-trait-system-refactor-initiative.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md b/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md index c2b45793e..06e415b74 100644 --- a/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md @@ -7,7 +7,7 @@ team: The Rustc Trait System Refactor Initiative impl Into { 0u16 From c68fd96a07d524703508e3cf40d0cac0e7139fe6 Mon Sep 17 00:00:00 2001 From: lcnr Date: Thu, 13 Jul 2023 12:00:29 +0200 Subject: [PATCH 0069/1024] incompleteness cont --- .../inside-rust/2023-07-11-trait-system-refactor-initiative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md b/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md index 06e415b74..45b86fdd7 100644 --- a/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md @@ -23,7 +23,7 @@ While there is a significant tail of less common bugs, we currently have two mai After fixing the currently open issues, we intend to move parts of rustc to the new trait solver implementation in steps, starting by using it in coherence. We expect to move coherence to the new implementation at the end of this year. Moving the type checking of functions to the new trait solver implementation will be a lot more challenging than coherence. This will be the last place where we will use the old implementation. We expect to change the default there in 2024, potentially relying on the new edition to help with migration. -A major challenge will be "incompleteness". We use incompleteness as a technical term used whenever the type system unnecessarily guides type inference. Incompleteness allows code to compile which would otherwise be ambiguous, but it also makes the trait system order dependent and can result in incorrect and weird errors. Consider the following example: +A major challenge will be "incompleteness". We use incompleteness as a technical term for cases where the type system unnecessarily guides type inference. Incompleteness allows otherwise ambiguous code to compile, but it also makes the trait system order dependent and can result in incorrect and weird errors. Consider the following example: ```rust fn impl_trait() -> impl Into { 0u16 From fcb1594c61bf0de65a0a5725888119ca0ae8743b Mon Sep 17 00:00:00 2001 From: lcnr Date: Thu, 13 Jul 2023 12:02:33 +0200 Subject: [PATCH 0070/1024] rpit and tait --- .../inside-rust/2023-07-11-trait-system-refactor-initiative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md b/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md index 45b86fdd7..70cfc0182 100644 --- a/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md @@ -17,7 +17,7 @@ The new trait solver implementation can be tested on nightly by using the rustc We are now at a point where the we exclusively rely on the new implementation when the feature flag is enabled. This is a major step as we've previously still relied on the old solver for ["deep normalization"](https://github.com/rust-lang/rust/pull/113086) and ["selection"](https://github.com/rust-lang/rust/pull/112869). When using the new trait solver many crates and most of our existing regression tests successfully compile. -While there is a significant tail of less common bugs, we currently have two main failure causes. The new solver has a slightly different approach for `impl Trait`, the implementation of which is still broken for nested RPIT, e.g. `fn foo() -> impl Trait`. Implementing this new approach helped us to discover issues of the existing implementation which allows us to refine its design before the stabilization of TAIT. The inference of implicit unsize coercions, e.g. converting `Box` to `Box`, relies on implementation details of the existing trait solver. We've recently started to emulating the existing behavior here and should fix most of the remaining breakage from that over the next few weeks. +While there is a significant tail of less common bugs, we currently have two main failure causes. The new solver has a slightly different approach for impl trait. The implementation of which is still broken for instances of nested return position impl trait, e.g. `fn foo() -> impl Trait`. Implementing this new approach helped us to discover issues of the existing implementation which allows us to refine its design before the stabilization of type alias impl trait. The inference of implicit unsize coercions, e.g. converting `Box` to `Box`, relies on implementation details of the existing trait solver. We've recently started to emulating the existing behavior here and should fix most of the remaining breakage from that over the next few weeks. ## Going forward From 1fdfb9c3176fbca27c8971a3e2b56e4de45d6dea Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Thu, 13 Jul 2023 10:04:37 -0400 Subject: [PATCH 0071/1024] Add blog post for 1.71 (#1118) Co-authored-by: Josh Triplett Co-authored-by: Eric Huss --- posts/2023-07-13-Rust-1.71.0.md | 131 ++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 posts/2023-07-13-Rust-1.71.0.md diff --git a/posts/2023-07-13-Rust-1.71.0.md b/posts/2023-07-13-Rust-1.71.0.md new file mode 100644 index 000000000..acd0c7f23 --- /dev/null +++ b/posts/2023-07-13-Rust-1.71.0.md @@ -0,0 +1,131 @@ +--- +layout: post +title: "Announcing Rust 1.71.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.71.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via rustup, you can get 1.71.0 with: + +```console +rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.71.0](https://github.com/rust-lang/rust/releases/tag/1.71.0) on GitHub. + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.71.0 stable + +### C-unwind ABI + +1.71.0 stabilizes `C-unwind` (and other `-unwind` suffixed ABI variants[^1]). + +The behavior for unforced unwinding (the typical case) is specified in [this +table from the RFC which proposed this feature][rfc-table]. To summarize: + +Each ABI is mostly equivalent to the same ABI without `-unwind`, except that +with `-unwind` the behavior is defined to be safe when an unwinding operation +(`panic` or C++ style exception) crosses the ABI boundary. For `panic=unwind`, +this is a valid way to let exceptions from one language unwind the stack in +another language without terminating the process (as long as the exception is +caught in the same language from which it originated); for `panic=abort`, this +will typically abort the process immediately. + +For this initial stabilization, *no change* is made to the existing ABIs (e.g. +`"C"`), and unwinding across them remains undefined behavior. A future Rust +release will amend these ABIs to match the behavior specified in the RFC as the +final part in stabilizing this feature (usually aborting at the boundary). +Users are encouraged to start using the new unwind ABI variants in their code +to remain future proof if they need to unwind across the ABI boundary. + +### Debugger visualization attributes + +1.71.0 stabilizes support for a new attribute, `#[debug_visualizer(natvis_file += "...")]` and `#[debug_visualizer(gdb_script_file = "...")]`, which allows +embedding Natviz descriptions and GDB scripts into Rust libraries to +improve debugger output when inspecting data structures created by those +libraries. Rust itself has packaged similar scripts for some time for the +standard library, but this feature makes it possible for library authors to +provide a similar experience to end users. + +See the [reference](https://doc.rust-lang.org/nightly/reference/attributes/debugger.html#the-debugger_visualizer-attribute) +for details on usage. + +### raw-dylib linking + +On Windows platforms, Rust now supports using functions from dynamic libraries without requiring those libraries to be available at build time, using the new `kind="raw-dylib”` option for `#[link]`. + +This avoids requiring users to install those libraries (particularly difficult for cross-compilation), and avoids having to ship stub versions of libraries in crates to link against. This simplifies crates providing bindings to Windows libraries. + +Rust also supports binding to symbols provided by DLLs by ordinal rather than named symbol, using the new `#[link_ordinal]` attribute. + +### Upgrade to musl 1.2 + +As [previously announced](https://blog.rust-lang.org/2023/05/09/Updating-musl-targets.html), +Rust 1.71 updates the musl version to 1.2.3. Most users should not be affected by this change. + +### Const-initialized thread locals + +Rust 1.59.0 stabilized `const` initialized thread local support in the standard +library, which allows for more optimal code generation. However, until now this +feature was missed in release notes and +[documentation](https://doc.rust-lang.org/stable/std/macro.thread_local.html). +Note that this stabilization does not make `const { ... }` a valid expression +or syntax in other contexts; that is a separate and currently unstable +[feature](https://github.com/rust-lang/rust/issues/76001). + +```rust +use std::cell::Cell; + +thread_local! { + pub static FOO: Cell = const { Cell::new(1) }; +} +``` + +### Stabilized APIs + +- [`CStr::is_empty`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.is_empty) +- [`BuildHasher::hash_one`](https://doc.rust-lang.org/stable/std/hash/trait.BuildHasher.html#method.hash_one) +- [`NonZeroI*::is_positive`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.is_positive) +- [`NonZeroI*::is_negative`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.is_negative) +- [`NonZeroI*::checked_neg`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.checked_neg) +- [`NonZeroI*::overflowing_neg`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.overflowing_neg) +- [`NonZeroI*::saturating_neg`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.saturating_neg) +- [`NonZeroI*::wrapping_neg`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.wrapping_neg) +- [`Neg for NonZeroI*`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#impl-Neg-for-NonZeroI32) +- [`Neg for &NonZeroI*`](https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#impl-Neg-for-%26NonZeroI32) +- [`From<[T; N]> for (T...)`](https://doc.rust-lang.org/stable/std/primitive.array.html#impl-From%3C%5BT;+1%5D%3E-for-(T,)) + (array to N-tuple for N in 1..=12) +- [`From<(T...)> for [T; N]`](https://doc.rust-lang.org/stable/std/primitive.array.html#impl-From%3C(T,)%3E-for-%5BT;+1%5D) + (N-tuple to array for N in 1..=12) +- [`windows::io::AsHandle for Box`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Box%3CT%3E) +- [`windows::io::AsHandle for Rc`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Rc%3CT%3E) +- [`windows::io::AsHandle for Arc`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Arc%3CT%3E) +- [`windows::io::AsSocket for Box`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Box%3CT%3E) +- [`windows::io::AsSocket for Rc`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Rc%3CT%3E) +- [`windows::io::AsSocket for Arc`](https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Arc%3CT%3E) + +These APIs are now stable in const contexts: + +- [`<*const T>::read`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read) +- [`<*const T>::read_unaligned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read_unaligned) +- [`<*mut T>::read`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read-1) +- [`<*mut T>::read_unaligned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read_unaligned-1) +- [`ptr::read`](https://doc.rust-lang.org/stable/std/ptr/fn.read.html) +- [`ptr::read_unaligned`](https://doc.rust-lang.org/stable/std/ptr/fn.read_unaligned.html) +- [`<[T]>::split_at`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_at) + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.71.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-171-2023-07-13), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-171). + +## Contributors to 1.71.0 + +Many people came together to create Rust 1.71.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.71.0/) + +[^1]: List of stabilized ABIs can be found in the stabilization report: https://github.com/rust-lang/rust/issues/74990#issuecomment-1363473645 + +[rfc-table]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md#abi-boundaries-and-unforced-unwinding From 2a9bcc91e3bee78be1672d6cd073783c68c66693 Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Thu, 13 Jul 2023 17:31:33 +0200 Subject: [PATCH 0072/1024] make link clickable --- posts/2023-07-13-Rust-1.71.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-07-13-Rust-1.71.0.md b/posts/2023-07-13-Rust-1.71.0.md index acd0c7f23..3b319993b 100644 --- a/posts/2023-07-13-Rust-1.71.0.md +++ b/posts/2023-07-13-Rust-1.71.0.md @@ -126,6 +126,6 @@ Check out everything that changed in [Rust](https://github.com/rust-lang/rust/re Many people came together to create Rust 1.71.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.71.0/) -[^1]: List of stabilized ABIs can be found in the stabilization report: https://github.com/rust-lang/rust/issues/74990#issuecomment-1363473645 +[^1]: List of stabilized ABIs can be found in [the stabilization report](https://github.com/rust-lang/rust/issues/74990#issuecomment-1363473645) [rfc-table]: https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md#abi-boundaries-and-unforced-unwinding From dc746be1362d9fecc3ded5a2cbd251f0a55f8dc9 Mon Sep 17 00:00:00 2001 From: Yerkebulan Tulibergenov Date: Thu, 13 Jul 2023 22:09:34 -0700 Subject: [PATCH 0073/1024] Fix typo in 2023-07-13-Rust-1.71.0.md --- posts/2023-07-13-Rust-1.71.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-07-13-Rust-1.71.0.md b/posts/2023-07-13-Rust-1.71.0.md index 3b319993b..e4781dc17 100644 --- a/posts/2023-07-13-Rust-1.71.0.md +++ b/posts/2023-07-13-Rust-1.71.0.md @@ -45,7 +45,7 @@ to remain future proof if they need to unwind across the ABI boundary. 1.71.0 stabilizes support for a new attribute, `#[debug_visualizer(natvis_file = "...")]` and `#[debug_visualizer(gdb_script_file = "...")]`, which allows -embedding Natviz descriptions and GDB scripts into Rust libraries to +embedding Natvis descriptions and GDB scripts into Rust libraries to improve debugger output when inspecting data structures created by those libraries. Rust itself has packaged similar scripts for some time for the standard library, but this feature makes it possible for library authors to From 45faee2fdce561cd64ceee8863cd2b1e7e8e4aad Mon Sep 17 00:00:00 2001 From: lcnr Date: Sun, 16 Jul 2023 15:19:10 +0200 Subject: [PATCH 0074/1024] update date --- ...itiative.md => 2023-07-17-trait-system-refactor-initiative.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2023-07-11-trait-system-refactor-initiative.md => 2023-07-17-trait-system-refactor-initiative.md} (100%) diff --git a/posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md b/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md similarity index 100% rename from posts/inside-rust/2023-07-11-trait-system-refactor-initiative.md rename to posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md From 533ad9689b47b7000177c32b88aae6d5de0f9ead Mon Sep 17 00:00:00 2001 From: lcnr Date: Mon, 17 Jul 2023 11:00:19 +0200 Subject: [PATCH 0075/1024] text yay --- ...3-07-17-trait-system-refactor-initiative.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md b/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md index 70cfc0182..335867174 100644 --- a/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md @@ -5,23 +5,25 @@ author: lcnr team: The Rustc Trait System Refactor Initiative --- -As announced in the [Types Team announcement post](https://blog.rust-lang.org/2023/01/20/types-announcement.html) at the start of this year, the Types Team has started to reimplement the trait solver of rustc. This refactor is similar to [chalk](https://github.com/rust-lang/chalk/), but directly integrated into the existing codebase using the experience gathered over the last few years. Unlike chalk, the new trait solver has the sole goal of replacing the exisiting implementation. We are separately working on formalizing the type system in [a-mir-formality](https://github.com/rust-lang/a-mir-formality). +As announced in the [Types Team announcement post](https://blog.rust-lang.org/2023/01/20/types-announcement.html) at the start of this year, the Types Team has started to reimplement the trait solver of rustc. This refactor is similar to [Chalk](https://github.com/rust-lang/chalk/), but directly integrated into the existing codebase using the experience gathered over the last few years. Unlike Chalk, the new trait solver has the sole goal of replacing the existing implementation. We are separately working on formalizing the type system in [a-mir-formality](https://github.com/rust-lang/a-mir-formality). It has now been half a year since that announcement which matches the first step of [our roadmap][roadmap]. -By reimplementing the trait solver of rustc we are able to fix many subtle bugs and inefficiencies of the existing implementation. This should result in faster compilation speed and fewer bugs. The new trait solver implementation should also unblock many future changes, most notably around implied bounds and coinduction. This will allow us to remove many of the [current restrictions on GATs](https://github.com/rust-lang/rust/issues/91693) and to fix many long-standing unsound issues, for example [#25860](https://github.com/rust-lang/rust/issues/25860). Some unsound issues will already be fixed at the point of stabilization while others will require additional work afterwards. The new solver will also enable or greatly simplify other, still experimental type system extensions, e.g. [generic const expressions](https://github.com/rust-lang/rust/issues/76560) and [non-lifetime binders](https://github.com/rust-lang/rust/issues/108185). - -It has now been half a year since that announcement which matches the first step of [our roadmap][roadmap]. +By reimplementing the trait solver of rustc we are able to fix many subtle bugs and inefficiencies of the existing implementation. This should result in faster compilation speed and fewer bugs. The new trait solver implementation should also unblock many future changes, most notably around implied bounds and coinduction. For example, it will allow us to remove many of the [current restrictions on GATs](https://github.com/rust-lang/rust/issues/91693) and to fix many long-standing unsound issues, like [#25860](https://github.com/rust-lang/rust/issues/25860). Some unsound issues will already be fixed at the point of stabilization while others will require additional work afterwards. The new solver will also enable or greatly simplify other, still experimental type system extensions, e.g. [generic const expressions](https://github.com/rust-lang/rust/issues/76560) and [non-lifetime binders](https://github.com/rust-lang/rust/issues/108185). ## The status quo -The new trait solver implementation can be tested on nightly by using the rustc flag `-Ztrait-solver=next`. To only use the new implementation for coherence, `-Ztrait-solver=next-coherence` can be used. See the current implementation progress of the new trait solver in [its tracking issue](https://github.com/rust-lang/rust/issues/107374). +The new trait solver implementation can be tested on nightly by using the rustc flag `-Ztrait-solver=next`. To use the new implementation for only coherence checking, `-Ztrait-solver=next-coherence` can be used. See the current implementation progress of the new trait solver in [its tracking issue](https://github.com/rust-lang/rust/issues/107374). We are now at a point where the we exclusively rely on the new implementation when the feature flag is enabled. This is a major step as we've previously still relied on the old solver for ["deep normalization"](https://github.com/rust-lang/rust/pull/113086) and ["selection"](https://github.com/rust-lang/rust/pull/112869). When using the new trait solver many crates and most of our existing regression tests successfully compile. -While there is a significant tail of less common bugs, we currently have two main failure causes. The new solver has a slightly different approach for impl trait. The implementation of which is still broken for instances of nested return position impl trait, e.g. `fn foo() -> impl Trait`. Implementing this new approach helped us to discover issues of the existing implementation which allows us to refine its design before the stabilization of type alias impl trait. The inference of implicit unsize coercions, e.g. converting `Box` to `Box`, relies on implementation details of the existing trait solver. We've recently started to emulating the existing behavior here and should fix most of the remaining breakage from that over the next few weeks. +While there is a significant tail of less common bugs, we currently have two main failure causes: + +First, the new solver has a slightly different approach for `impl Trait`. The implementation of which is still broken for instances of nested return position impl trait, e.g. `fn foo() -> impl Trait`. Working on this new approach helped us discover issues of the existing implementation, which allows us to refine its design before the stabilization of the `type_alias_impl_trait` feature. + +Second, the inference of implicit `Unsize` coercions, e.g. converting `Box` to `Box`, relies on implementation details of the existing trait solver. We've recently started to emulate the existing behavior here and should fix most of the remaining breakage from that over the next few weeks. ## Going forward -After fixing the currently open issues, we intend to move parts of rustc to the new trait solver implementation in steps, starting by using it in coherence. We expect to move coherence to the new implementation at the end of this year. Moving the type checking of functions to the new trait solver implementation will be a lot more challenging than coherence. This will be the last place where we will use the old implementation. We expect to change the default there in 2024, potentially relying on the new edition to help with migration. +After fixing the currently open issues, we intend to move parts of rustc to the new trait solver implementation in steps, starting by using it in coherence. We expect to move coherence checking to the new implementation at the end of this year. Moving the type checking of functions to the new trait solver implementation will be a lot more challenging. This will be the last place where we will use the old implementation. We expect to change the default there in 2024, potentially relying on the new edition to help with migration. A major challenge will be "incompleteness". We use incompleteness as a technical term for cases where the type system unnecessarily guides type inference. Incompleteness allows otherwise ambiguous code to compile, but it also makes the trait system order dependent and can result in incorrect and weird errors. Consider the following example: ```rust @@ -42,6 +44,6 @@ fn main() { ``` How and when we make such inference jumps is quite closely tied to the old trait solver implementation and not something we want to, or even can, copy directly. We have to figure out how to mostly maintain the existing behavior while fitting the rules to the new implementation. The complexity of this issue will only become apparent once the bigger issues are fixed and we start running crater with the new implementation enabled. -Type checking has to also emit actionable and useful errors to the user. These diagnostics have been incrementally improved by relying on, and working around, the internals of the old trait solver implementation. This means that we cannot simply reuse them with the new trait solver implementation. Our goal there is to instead optionally emit "proof trees", an in-memory representation of what happened in the solver. We intend provide an API in top of these proof trees which can be used without being a trait solver expert. Diagnostics should then be migrated towards this new API. +Another major hurdle will be error diagnostics. We currently rely on many internal details of the old trait solver implementation to emit actionable and useful errors to the user. These diagnostics have been incrementally improved by relying and working around these internal details. We cannot simply reuse them with the new trait solver implementation. Our goal there is to instead optionally emit "proof trees", an in-memory representation of how trait solving occurred. We intend provide an simplified API in top of these proof trees which will then be used for diagnostics. [roadmap]: https://blog.rust-lang.org/2023/01/20/types-announcement.html#roadmap \ No newline at end of file From f85241b62bd666be920da504980c7a95571c75bc Mon Sep 17 00:00:00 2001 From: Jack Huey <31162821+jackh726@users.noreply.github.com> Date: Mon, 17 Jul 2023 20:05:05 -0400 Subject: [PATCH 0076/1024] Fix typo --- .../inside-rust/2023-07-17-trait-system-refactor-initiative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md b/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md index 335867174..96410da30 100644 --- a/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md @@ -13,7 +13,7 @@ By reimplementing the trait solver of rustc we are able to fix many subtle bugs The new trait solver implementation can be tested on nightly by using the rustc flag `-Ztrait-solver=next`. To use the new implementation for only coherence checking, `-Ztrait-solver=next-coherence` can be used. See the current implementation progress of the new trait solver in [its tracking issue](https://github.com/rust-lang/rust/issues/107374). -We are now at a point where the we exclusively rely on the new implementation when the feature flag is enabled. This is a major step as we've previously still relied on the old solver for ["deep normalization"](https://github.com/rust-lang/rust/pull/113086) and ["selection"](https://github.com/rust-lang/rust/pull/112869). When using the new trait solver many crates and most of our existing regression tests successfully compile. +We are now at a point where we exclusively rely on the new implementation when the feature flag is enabled. This is a major step as we've previously still relied on the old solver for ["deep normalization"](https://github.com/rust-lang/rust/pull/113086) and ["selection"](https://github.com/rust-lang/rust/pull/112869). When using the new trait solver many crates and most of our existing regression tests successfully compile. While there is a significant tail of less common bugs, we currently have two main failure causes: From a3530a5e82529f2d45753ffc4a8eda08b71e5444 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Tue, 18 Jul 2023 17:21:26 -0700 Subject: [PATCH 0077/1024] Add an update from the Rust Leadership Council --- posts/2023-07-24-leadership-council-update.md | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 posts/2023-07-24-leadership-council-update.md diff --git a/posts/2023-07-24-leadership-council-update.md b/posts/2023-07-24-leadership-council-update.md new file mode 100644 index 000000000..6d88eb3e8 --- /dev/null +++ b/posts/2023-07-24-leadership-council-update.md @@ -0,0 +1,62 @@ +--- +layout: post +title: "July 2023 Leadership Council Update" +author: Leadership Council +team: Leadership Council +--- + +Hello again from the Rust Leadership Council. In our [first blog post][fr1st post], we laid out several immediate goals for the council and promised to report back on their progress. It has been about a month since our first update so we wanted to share how it's going and what we're working on now. + +[fr1st post]: https://blog.rust-lang.org/2023/06/20/introducing-leadership-council.html + +## Accomplishments so far + +In our first post, we wrote: + +> In the coming weeks we will be establishing the basic infrastructure for the group, including creating a plan for regular meetings and a process for raising agenda items, setting up a team repository, and ultimately completing the transition from the former Rust leadership structures. + +We have made progress on each of these things. + +For the last month we have been holding weekly meetings and will continue to do so for at least the next month. In the long term, we would like these meetings to become less frequent and rely more on public, asynchronous discussion and decision processes, but in the short term there has been plenty to discuss each week. We publish minutes from each meeting, and these are linked at the [bottom of this post](#meeting-minutes). + +We have created committees for two of our most urgent needs: one to create a process for electing Project Directors to serve as our representatives on the foundation board, and one of council librarians to work on processes to document our actions and decisions. + +We have created [a GitHub repository](https://github.com/rust-lang/leadership-council) for all our documentation, including procedures we have decided on and meeting minutes. There are issues for some tasks we hope to complete in the near future. + +We discussed and approved [RFC 3355](https://rust-lang.github.io/rfcs/3355-rust-spec.html), which establishes that we would like to have a Rust specification and that we would like the Foundation to hire an editor for the specification (note that this RFC does not actually approve any aspects of that specification yet, only starting the work to create the specification). + +And we've been discussing all of this work in the [public council stream on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/392734-council) if you'd like to follow along or contribute to the discussion. + +## Looking forward with your feedback + +We have a lot of ideas on problems of the Rust Project we _could_ work on, but we know we, as a council, can only realistically make progress on a few topics at the same time. + +We've come up with a proposed list of our first three priorities, and we'd like the project's feedback on whether this matches your expectations. This is a starting place for iterative improvement over time; we're planning on re-evaluating whether these priorties are still the right ones about every two months or so. + +The type of feedback we're most interested in is hearing about topics or issues you think are more important or urgent than one or more of the following three priorities, and why we should tackle that topic instead of what we have listed here. If this list sounds good to you, we'd like to hear that as well! + +Each team representative on the council will be reaching out to their team specifically for feedback on this list, but we also welcome feedback from the Rust community in this Zulip topic (TODO link) or via email to . + +The priorities we're proposing we concentrate on first are: + +1. Documenting and improving processes for interaction with the Rust Foundation including formalising the role of project directors in this process (the trademark policy process may be part of this). +2. Establishing plans for how to strengthen the moderation team (i.e., 2 is not a sustainable number and we currently have no contingent moderators) and strengthen moderation policies. +3. Figuring out the "shape" of the Rust Porject. The Leadership Council needs to reflect the will of the Rust Project so it is important to know who that includes. + +If you're interested in the items under consideration that we think aren't as high priority as these, you can read the full, unsorted list [in this document](https://hackmd.io/@rust-leadership-council/Skdo7VKK3). + +We are also interested in delegating other work that the council won't have bandwidth to take on; if you have proposals for something you'd like to work on which will eventually need the council's support/approval, please reach out! + +Again, we are most interested to hear if there's something you think the Leadership Council should be working on that's more important or urgent than these items. Thank you for your help! + +## Meeting Minutes + +We publish minutes from all Council meetings to the [Leadership Council repo][council-repo]. For convenience, we've also directly linked to the minutes from our first few meetings here. + +* [June 15, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-06-15.md) +* [June 22, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-06-22.md) +* [June 28, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-06-28.md) +* [July 6, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-07-06.md) +* [July 13, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-07-13.md) + +[council-repo]: https://github.com/rust-lang/leadership-council From 17c4a26bcfa6445117e3e107bfd7d91efd32aac9 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Thu, 20 Jul 2023 10:04:55 -0400 Subject: [PATCH 0078/1024] fix typo fr1st -> first --- posts/2023-07-24-leadership-council-update.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/2023-07-24-leadership-council-update.md b/posts/2023-07-24-leadership-council-update.md index 6d88eb3e8..7f1b4541a 100644 --- a/posts/2023-07-24-leadership-council-update.md +++ b/posts/2023-07-24-leadership-council-update.md @@ -5,9 +5,9 @@ author: Leadership Council team: Leadership Council --- -Hello again from the Rust Leadership Council. In our [first blog post][fr1st post], we laid out several immediate goals for the council and promised to report back on their progress. It has been about a month since our first update so we wanted to share how it's going and what we're working on now. +Hello again from the Rust Leadership Council. In our [first blog post][first post], we laid out several immediate goals for the council and promised to report back on their progress. It has been about a month since our first update so we wanted to share how it's going and what we're working on now. -[fr1st post]: https://blog.rust-lang.org/2023/06/20/introducing-leadership-council.html +[first post]: https://blog.rust-lang.org/2023/06/20/introducing-leadership-council.html ## Accomplishments so far From 570dcc55b44ed807c8b05976023c0ed5a4261c69 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Thu, 20 Jul 2023 10:06:18 -0400 Subject: [PATCH 0079/1024] Add description of committees --- posts/2023-07-24-leadership-council-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-07-24-leadership-council-update.md b/posts/2023-07-24-leadership-council-update.md index 7f1b4541a..f0994b503 100644 --- a/posts/2023-07-24-leadership-council-update.md +++ b/posts/2023-07-24-leadership-council-update.md @@ -19,7 +19,7 @@ We have made progress on each of these things. For the last month we have been holding weekly meetings and will continue to do so for at least the next month. In the long term, we would like these meetings to become less frequent and rely more on public, asynchronous discussion and decision processes, but in the short term there has been plenty to discuss each week. We publish minutes from each meeting, and these are linked at the [bottom of this post](#meeting-minutes). -We have created committees for two of our most urgent needs: one to create a process for electing Project Directors to serve as our representatives on the foundation board, and one of council librarians to work on processes to document our actions and decisions. +In order to be able to make progress without needing to involve all Council members, we've decided to establish small groups of people (called "committees") to focus on various specific work items. The committees then bring their work to the full council for discussion and consent. The two committees we've established so far are one to create a process for electing Project Directors to serve as our representatives on the foundation board, and one of council librarians to work on processes to document our actions and decisions. We have created [a GitHub repository](https://github.com/rust-lang/leadership-council) for all our documentation, including procedures we have decided on and meeting minutes. There are issues for some tasks we hope to complete in the near future. From 0bbc826c88e0b5afbed31fba66a7f89b03e0d597 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Thu, 20 Jul 2023 10:10:18 -0400 Subject: [PATCH 0080/1024] Add link to the feedback zulip topic --- posts/2023-07-24-leadership-council-update.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/posts/2023-07-24-leadership-council-update.md b/posts/2023-07-24-leadership-council-update.md index f0994b503..82b41bc40 100644 --- a/posts/2023-07-24-leadership-council-update.md +++ b/posts/2023-07-24-leadership-council-update.md @@ -35,7 +35,9 @@ We've come up with a proposed list of our first three priorities, and we'd like The type of feedback we're most interested in is hearing about topics or issues you think are more important or urgent than one or more of the following three priorities, and why we should tackle that topic instead of what we have listed here. If this list sounds good to you, we'd like to hear that as well! -Each team representative on the council will be reaching out to their team specifically for feedback on this list, but we also welcome feedback from the Rust community in this Zulip topic (TODO link) or via email to . +Each team representative on the council will be reaching out to their team specifically for feedback on this list, but we also welcome feedback from the Rust community in [the "#council/Feedback on priorities" Zulip topic][zulip-feedback] or via email to . + +[zulip-feedback]: https://rust-lang.zulipchat.com/#narrow/stream/392734-council/topic/Feedback.20on.20priorities The priorities we're proposing we concentrate on first are: From 6a3074a1989d07b29277232655912d3fe6a55ad1 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Thu, 20 Jul 2023 10:15:45 -0400 Subject: [PATCH 0081/1024] Fix typo Porject -> Project --- posts/2023-07-24-leadership-council-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-07-24-leadership-council-update.md b/posts/2023-07-24-leadership-council-update.md index 82b41bc40..d40a47c45 100644 --- a/posts/2023-07-24-leadership-council-update.md +++ b/posts/2023-07-24-leadership-council-update.md @@ -43,7 +43,7 @@ The priorities we're proposing we concentrate on first are: 1. Documenting and improving processes for interaction with the Rust Foundation including formalising the role of project directors in this process (the trademark policy process may be part of this). 2. Establishing plans for how to strengthen the moderation team (i.e., 2 is not a sustainable number and we currently have no contingent moderators) and strengthen moderation policies. -3. Figuring out the "shape" of the Rust Porject. The Leadership Council needs to reflect the will of the Rust Project so it is important to know who that includes. +3. Figuring out the "shape" of the Rust Project. The Leadership Council needs to reflect the will of the Rust Project so it is important to know who that includes. If you're interested in the items under consideration that we think aren't as high priority as these, you can read the full, unsorted list [in this document](https://hackmd.io/@rust-leadership-council/Skdo7VKK3). From 098632c73902000f0bfade64d8b4fee85a9d5e7f Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 21 Jul 2023 14:16:20 +0200 Subject: [PATCH 0082/1024] Inside Rust: Write "crates.io Postmortem: Broken Crate Downloads" blog post --- .../2023-07-21-crates-io-postmortem.md | 178 ++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 posts/inside-rust/2023-07-21-crates-io-postmortem.md diff --git a/posts/inside-rust/2023-07-21-crates-io-postmortem.md b/posts/inside-rust/2023-07-21-crates-io-postmortem.md new file mode 100644 index 000000000..0fd6da19d --- /dev/null +++ b/posts/inside-rust/2023-07-21-crates-io-postmortem.md @@ -0,0 +1,178 @@ +--- +layout: post +title: "crates.io Postmortem: Broken Crate Downloads" +author: Tobias Bieniek +team: the crates.io team +--- + +(based on https://www.atlassian.com/incident-management/postmortem/templates) + +## Summary + +On 2023-07-20 between 12:17 and 12:30 UTC all crate downloads from crates.io were broken due to a deployment that contained a bug in the download URL generation. + +During this time we had an average of 4.71K requests per second to crates.io, resulting in about 3.7M failed requests, including the retry attempts from cargo. + +The incident was noticed by the developer triggering the production deployment after seeing elevated request-per-second numbers in our monitoring dashboard after the deployment. At this point the root cause for the elevated numbers was not clear yet, but a community member notified the developer via [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/deployments/near/376960060). + +Immediately after the notification, the broken deployment was rolled back to the previous deployment, fixing the downloads again. + +## Leadup + +At 17:41 UTC on 2023-07-19 a [pull request](https://github.com/rust-lang/crates.io/pull/6834) to crates.io was merged, finishing the migration of the crates.io codebase to use the [object_store](https://crates.io/crates/object_store) crate for AWS S3 access, instead of our previous custom solution. + +This pull request refactored the way the crate and readme download endpoints generated redirect URLs. + +## Fault + +The pull request introduced a few tests for the previously untested functionality, though unfortunately it was using values different from the environment variable content that is used by crates.io in production. This led to the production code path not being tested properly. + +The production code path contained a bug where the URL generated from the "CDN prefix" and "path" components was missing a slash (`/`) separator. + +This led to redirecting to instead of . + +## Impact + +For about 13 minutes, between 12:17 and 12:30 UTC on 2023-07-20, our users experienced this incident. + +This incident affected all users trying to download crate files from crates.io during that time. + +The issue manifest in our users seeing errors like this when running `cargo`: + +```text +warning: spurious network error (3 tries remaining): [6] Couldn't resolve host name (Could not resolve host: static.crates.iocrates) +warning: spurious network error (2 tries remaining): [6] Couldn't resolve host name (Could not resolve host: static.crates.iocrates) +warning: spurious network error (1 tries remaining): [6] Couldn't resolve host name (Could not resolve host: static.crates.iocrates) +error: failed to download from `https://crates.io/api/v1/crates/serde_derive/1.0.173/download` +``` + + was submitted and upvoted 12 times. + +We are not aware of any social media posts related to this incident. + +## Detection + +The developer triggering the production deployment was monitoring the crates.io Grafana dashboard during the deployment and noticed elevated levels of request-per-second numbers for the download endpoint. This was a symptom of cargo retrying the download multiple times before giving up. + +About 11 minutes after the deployment, a community member notified the crates.io team via [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/deployments/near/376960060) about the [GitHub issue](https://github.com/rust-lang/crates.io/issues/6850) that was opened, describing the failing downloads. + +## Response + +After the incident was detected, the deploying developer immediately initiated a rollback to the previous deployment through the Heroku user interface. This process took about one minute due to the login procedure and ensuring that the right buttons in the user interface are used. + +## Recovery + +After rolling back to the previous deployment the system immediately recovered itself and produced correct redirect URLs again. + +A fix for the broken pull request was subsequently developed and merged, including more tests for the broken code path with more real-world values. The fix was then tested on the staging environment before it got deployed to production too. + +## Timeline + +### 2023-07-19 + +- 12:32 UTC – (Migrate remaining `Uploaders` code into `Storage` system) was opened +- 17:41 UTC – (Migrate remaining `Uploaders` code into `Storage` system) was merged, automatically deploying to the staging environment + +### 2023-07-20 + +- 10:00 UTC – (Fix `readme` field parsing of `Cargo.toml` files) was opened +- 10:13 UTC – (Fix `readme` field parsing of `Cargo.toml` files) was merged, automatically deploying to the staging environment +- 12:08 UTC – was published to the staging environment to smoke test the publish process and the `Cargo.toml` parsing fix +- 12:16 UTC – A [message](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/deployments/near/376956537) was sent to the `deployments` topic of the `t-crates-io` Zulip stream, notifying users of the upcoming deployment. +- 12:17 UTC – The staging deployment was promoted to the production environment +- 12:18 UTC – Another [message](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/deployments/near/376957223) was sent to the Zulip stream, notifying users that the deployment was completed. +- 12:24 UTC – (Crates.io crate download API is redirecting to invalid URL) was opened +- 12:25 UTC – The continuing request-per-second anomaly was deemed unusual enough to trigger another [message](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/deployments/near/376959143) to the Zulip stream. +- 12:28 UTC – A community member notified the crates.io team on the [Zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/deployments/near/376960060) about the GitHub issue and the deploying developer acknowledged the incident. +- 12:30 UTC – The deployment was rolled back, temporarily fixing the issue for our users. +- 13:38 UTC – (Fix download URL generation) was opened +- 13:49 UTC – (Fix download URL generation) was merged, automatically deploying to the staging environment +- 14:08 UTC – was published to the staging environment to smoke test the publish process and check that the download URL generation fix was working correctly +- 14:10 UTC – The staging deployment was promoted to the production environment + +## Root cause identification: The Five Whys + +- The redirect URLs for crate and readme downloads were broken in production. + + **Why were the redirect URLs broken?** + + - There was a bug introduced in pull request [#6834](https://github.com/rust-lang/crates.io/pull/6834) which made it all the way into our production environment. + + **Why was there a bug introduced in this pull request?** + + - The pull request introduced tests, but did not test all code paths. + + **Why did the pull request not test all code paths?** + + - The code was structured in a way that made testing with different "CDN prefix" values complicated. + + **Why was the code structured in a way that made testing different values complicated?** + + - The code had not been unit tested before and the refactoring stopped at a point where the code could at least be tested with a hardcoded value. + + **Why did the refactoring stop at that point?** + + - It was deemed "good enough for now" by the developer. + + - The pull request was not reviewed by another developer. + + **Why was the pull request not reviewed by another developer?** + + - The developer creating the pull request misjudged the potential impact of a bug in the pull request. They did not explicitly request a review from the crates.io team and merged it themselves after a few hours. + + **Why was no code review requested from the crates.io team?** + + - The number of active team members in the [crates.io team](https://www.rust-lang.org/governance/teams/crates-io) is quite small. Reviewing dozens of pull requests per months from the one developer who is employed to work fulltime on crates.io would be a recipe for burnout for the other members of the crates.io team. For that employed fulltime developer it would also not work well if they were blocked on waiting for reviews for the majority of their time. The current way of working is that code reviews are only requested for high-impact pull requests. + + **Why was the potential impact misjudged?** + + - The developer forgot to think about the fact that this change affected the crate download endpoint of crates.io, which is the endpoint that handles 99% of the traffic to the server. + + **Why did the developer forget to check if a high-priority endpoint is affected?** + + - There is no checklist or guide describing in which case a pull request should be seen as having a high potential impact and thus needing explicit code review from the crates.io team. + + **Why did the bug make it into production?** + + - The crate download endpoint was not tested on the staging environment before promoting it to production. + + **Why was the crate download not tested?** + + - The test plan for the staging environment only includes publishing a new version and seeing that reflected on the website and in the package index repository. + + **Why does the test plan not include crate downloads?** + + - Since 99% of all requests to crates.io are for crate downloads, the test plan definitely should include this process. There is intentionally no download button on the webpage though, so the URL for the download has to be constructed manually. + + **Why does the download URL need to be constructed manually?** + + - Because the smoke test procedure on our staging environment is currently a completely manual process without any automation. + +## Root causes + +- The failing code was structured in a way that made it hard to test different variants and code paths. +- There is no checklist describing which pull requests should be seen as high-impact. +- The smoke test procedure on the staging environment does not include crate downloads and is a manual process. + +## Backlog check + +There are no specific items in the backlog that could have prevented this incident. + +## Recurrence + +A previous incident caused crate publishing to not work anymore. The learning from this incident was to ensure that the smoke testing procedure includes the publishing process. Unfortunately, this did not include the crate file download though. + +## Lessons learned + +- The detection time from deployment to incident notification could have been faster if the symptome was identified earlier to be caused by the cargo retry behavior. The heightened awareness of the deploying developer due to the change in Grafana numbers however contributed to this issue being fixed faster. +- The response time from incident notification to rollback and fixing the issue was fast. +- All code should be structured in a way that makes testing the different code paths easy. +- We need clearer rules on which pull requests require code reviews. +- The smoke test procedure should include crate downloads. +- The smoke test procedure should be automated as much as possible. + +## Corrective actions + +- **HIGH** Include crate downloads in the smoke test plan for the staging environment +- **MEDIUM** Automate the staging environment smoke tests +- **MEDIUM** Develop rules on which pull requests require explicit code review From 86e7a3fa662c057831aa876d3b0e8dfe87fee499 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 21 Jul 2023 15:19:57 +0200 Subject: [PATCH 0083/1024] Update posts/inside-rust/2023-07-21-crates-io-postmortem.md Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com> --- posts/inside-rust/2023-07-21-crates-io-postmortem.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-07-21-crates-io-postmortem.md b/posts/inside-rust/2023-07-21-crates-io-postmortem.md index 0fd6da19d..7769164ec 100644 --- a/posts/inside-rust/2023-07-21-crates-io-postmortem.md +++ b/posts/inside-rust/2023-07-21-crates-io-postmortem.md @@ -164,7 +164,7 @@ A previous incident caused crate publishing to not work anymore. The learning fr ## Lessons learned -- The detection time from deployment to incident notification could have been faster if the symptome was identified earlier to be caused by the cargo retry behavior. The heightened awareness of the deploying developer due to the change in Grafana numbers however contributed to this issue being fixed faster. +- The detection time from deployment to incident notification could have been faster if the symptom was identified earlier to be caused by the cargo retry behavior. The heightened awareness of the deploying developer due to the change in Grafana numbers however contributed to this issue being fixed faster. - The response time from incident notification to rollback and fixing the issue was fast. - All code should be structured in a way that makes testing the different code paths easy. - We need clearer rules on which pull requests require code reviews. From 6d464df2bcf87114311b9343e1383c144420d0e4 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 21 Jul 2023 16:08:14 +0200 Subject: [PATCH 0084/1024] Update posts/inside-rust/2023-07-21-crates-io-postmortem.md --- posts/inside-rust/2023-07-21-crates-io-postmortem.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/posts/inside-rust/2023-07-21-crates-io-postmortem.md b/posts/inside-rust/2023-07-21-crates-io-postmortem.md index 7769164ec..7a4ca2995 100644 --- a/posts/inside-rust/2023-07-21-crates-io-postmortem.md +++ b/posts/inside-rust/2023-07-21-crates-io-postmortem.md @@ -48,8 +48,6 @@ error: failed to download from `https://crates.io/api/v1/crates/serde_derive/1.0 was submitted and upvoted 12 times. -We are not aware of any social media posts related to this incident. - ## Detection The developer triggering the production deployment was monitoring the crates.io Grafana dashboard during the deployment and noticed elevated levels of request-per-second numbers for the download endpoint. This was a symptom of cargo retrying the download multiple times before giving up. From 5d523b738bd5e611eb5830568234a1d2e2e6dcd6 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Sun, 23 Jul 2023 21:23:48 -0700 Subject: [PATCH 0085/1024] Move post to Inside Rust --- posts/{ => inside-rust}/2023-07-24-leadership-council-update.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{ => inside-rust}/2023-07-24-leadership-council-update.md (100%) diff --git a/posts/2023-07-24-leadership-council-update.md b/posts/inside-rust/2023-07-24-leadership-council-update.md similarity index 100% rename from posts/2023-07-24-leadership-council-update.md rename to posts/inside-rust/2023-07-24-leadership-council-update.md From 29f4c815b1139e87705badae9da376ccc9965767 Mon Sep 17 00:00:00 2001 From: Ryan Levick Date: Tue, 25 Jul 2023 16:04:51 +0200 Subject: [PATCH 0086/1024] Move the post to today's date --- ...council-update.md => 2023-07-25-leadership-council-update.md} | 1 + 1 file changed, 1 insertion(+) rename posts/inside-rust/{2023-07-24-leadership-council-update.md => 2023-07-25-leadership-council-update.md} (98%) diff --git a/posts/inside-rust/2023-07-24-leadership-council-update.md b/posts/inside-rust/2023-07-25-leadership-council-update.md similarity index 98% rename from posts/inside-rust/2023-07-24-leadership-council-update.md rename to posts/inside-rust/2023-07-25-leadership-council-update.md index d40a47c45..4174aabca 100644 --- a/posts/inside-rust/2023-07-24-leadership-council-update.md +++ b/posts/inside-rust/2023-07-25-leadership-council-update.md @@ -60,5 +60,6 @@ We publish minutes from all Council meetings to the [Leadership Council repo][co * [June 28, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-06-28.md) * [July 6, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-07-06.md) * [July 13, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-07-13.md) +* [July 20, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-07-20.md) [council-repo]: https://github.com/rust-lang/leadership-council From fed5cae552eac1ac99d963d2c52572210053dd1a Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Tue, 1 Aug 2023 08:29:57 +0000 Subject: [PATCH 0087/1024] Creating file via promote-release automation --- .../2023-08-01-1.71.1-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-08-01-1.71.1-prerelease.md diff --git a/posts/inside-rust/2023-08-01-1.71.1-prerelease.md b/posts/inside-rust/2023-08-01-1.71.1-prerelease.md new file mode 100644 index 000000000..b8656d56b --- /dev/null +++ b/posts/inside-rust/2023-08-01-1.71.1-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.71.1 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.71.1 pre-release is ready for testing. The release is scheduled for +August 3. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-71-1-pre-release-testing/19267). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1711-2023-08-03 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From c3f396654f399286797741480ed8b288921e7126 Mon Sep 17 00:00:00 2001 From: Wesley Wiser Date: Wed, 2 Aug 2023 10:54:38 -0400 Subject: [PATCH 0088/1024] Add post for rotating compiler team leads --- .../2023-08-02-rotating-compiler-leads.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 posts/inside-rust/2023-08-02-rotating-compiler-leads.md diff --git a/posts/inside-rust/2023-08-02-rotating-compiler-leads.md b/posts/inside-rust/2023-08-02-rotating-compiler-leads.md new file mode 100644 index 000000000..eb1be85ed --- /dev/null +++ b/posts/inside-rust/2023-08-02-rotating-compiler-leads.md @@ -0,0 +1,33 @@ +--- +layout: post +title: "Rotating Rust compiler team leadership" +author: Wesley Wiser +team: the compiler team +--- + +As initiated in [late 2020] and ratified by [RFC 3262], the Rust compiler team uses a rotating system of co-leads. +After two and a half years, we've decided its time to rotate the leadership again! + +## Welcome David Wood + +Felix Klock is stepping down from his role as senior lead and David Wood is joining Wesley Wiser as the new junior lead for the team. + +Felix remains a valued member of the compiler team (and also the [language design team]). +Felix will be focusing on reducing the [sizes of Rust futures], and on improving the state of the art for authoring Unsafe Rust, via projects such as [Krabcake]. + +David has been a contributor to the Rust project since 2017, a compiler-contributor since 2019 and became a compiler team member in 2021. +His contributions include work on the [diagnostic translation effort], [split DWARF support], [polymorphisation], [non-lexical lifetimes initiative] and general maintenance to the compiler. +David has also been a contributor to the governance and organization of the compiler team itself via [policy proposals] and regular participation in our weekly triage and steering meetings. + +Felix and I are excited to welcome David into this leadership role and I am thrilled to be working alongside him. + +[late 2020]: https://blog.rust-lang.org/inside-rust/2020/12/14/changes-to-compiler-team.html +[RFC 3262]: https://rust-lang.github.io/rfcs/3262-compiler-team-rolling-leads.html +[language design team]: https://lang-team.rust-lang.org/ +[sizes of Rust futures]: https://github.com/rust-lang/rust/issues/69826 +[Krabcake]: https://github.com/pnkfelix/krabcake#what-is-this-krabcake +[diagnostic translation effort]: https://blog.rust-lang.org/inside-rust/2022/08/16/diagnostic-effort.html +[split DWARF support]: https://github.com/rust-lang/rust/pull/98051#issuecomment-1153776677 +[polymorphisation]: https://davidtw.co/media/masters_dissertation.pdf +[non-lexical lifetimes initiative]: https://blog.rust-lang.org/2018/12/06/Rust-1.31-and-rust-2018.html#non-lexical-lifetimes +[policy proposals]: https://github.com/rust-lang/rust-forge/pull/639 From cc119c08473c8780d105ce151b9e818a35267eb3 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Thu, 3 Aug 2023 10:10:30 +0200 Subject: [PATCH 0089/1024] add CVE-2023-38497 blog post --- posts/2023-08-03-cve-2023-38497.md | 83 ++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 posts/2023-08-03-cve-2023-38497.md diff --git a/posts/2023-08-03-cve-2023-38497.md b/posts/2023-08-03-cve-2023-38497.md new file mode 100644 index 000000000..643ca5421 --- /dev/null +++ b/posts/2023-08-03-cve-2023-38497.md @@ -0,0 +1,83 @@ +--- +layout: post +title: "Security advisory for Cargo (CVE-2023-38497)" +author: The Rust Security Response WG +--- + +> This is a cross-post of [the official security advisory][advisory]. The +> official advisory contains a signed version with our PGP key, as well. + +[advisory]: TODO + +The Rust Security Response WG was notified that Cargo did not respect the umask +when extracting crate archives on UNIX-like systems. If the user downloaded a +crate containing files writeable by any local user, another local user could +exploit this to change the source code compiled and executed by the current +user. + +This vulnerability has been assigned CVE-2023-38497. + +## Overview + +In UNIX-like systems, each file has three sets of permissions: for the user +owning the file, for the group owning the file, and for all other local users. +The "[umask][1]" is configured on most systems to limit those permissions +during file creation, removing dangerous ones. For example, the default umask +on macOS and most Linux distributions only allow the user owning a file to +write to it, preventing the group owning it or other local users from doing the +same. + +When a dependency is downloaded by Cargo, its source code has to be extracted +on disk to allow the Rust compiler to read as part of the build. To improve +performance, this extraction only happens the first time a dependency is used, +caching the pre-extracted files for future invocations. + +Unfortunately, it was discovered that Cargo did not respect the umask during +extraction, and propagated the permissions stored in the crate archive as-is. +If an archive contained files writeable by any user on the system (and the +system configuration didn't prevent writes through other security measures), +another local user on the system could replace or tweak the source code of a +dependency, potentially achieving code execution the next time the project is +compiled. + +## Affected Versions + +All Rust versions before 1.71.1 on UNIX-like systems (like macOS and Linux) are +affected. Note that additional system-dependent security measures configured on +the local system might prevent the vulnerability from being exploited. + +Users on Windows and other non-UNIX-like systems are not affected. + +## Mitigations + +We recommend all users to update to Rust 1.71.1, which will be released later +today, as it fixes the vulnerability by respecting the umask when extracting +crate archives. If you build your own toolchain, patches for 1.71.0 source +tarballs are [available here][2]. + +To prevent existing cached extractions from being exploitable, the Cargo binary +included in Rust 1.71.1 or later will purge the caches it tries to access if +they were generated by older Cargo versions. + +If you cannot update to Rust 1.71.1, we recommend configuring your system to +prevent other local users from accessing the Cargo directory, usually located +in `~/.cargo`: + +``` +chmod go= ~/.cargo +``` + +## Acknowledgments + +We want to thank Addison Crump for responsibly disclosing this to us according +to the [Rust security policy][3]. + +We also want to thank the members of the Rust project who helped us disclose +the vulnerability: Weihang Lo for developing the fix; Eric Huss for reviewing +the fix; Pietro Albini for writing this advisory; Pietro Albini, Manish +Goregaokar and Josh Stone for coordinating this disclosure; Josh Triplett, Arlo +Siemen, Scott Schafer, and Jacob Finkelman for advising during the disclosure. + +[1]: https://en.wikipedia.org/wiki/Umask +[2]: https://github.com/rust-lang/wg-security-response/tree/main/patches/CVE-2023-38497 +[3]: https://www.rust-lang.org/policies/security From 763b5eb31720671a7d6c08c80c6c02c8664ec9f1 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Thu, 3 Aug 2023 14:03:50 +0200 Subject: [PATCH 0090/1024] second disclosure in a row I forget the advisory link --- posts/2023-08-03-cve-2023-38497.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-08-03-cve-2023-38497.md b/posts/2023-08-03-cve-2023-38497.md index 643ca5421..49612b3ad 100644 --- a/posts/2023-08-03-cve-2023-38497.md +++ b/posts/2023-08-03-cve-2023-38497.md @@ -7,7 +7,7 @@ author: The Rust Security Response WG > This is a cross-post of [the official security advisory][advisory]. The > official advisory contains a signed version with our PGP key, as well. -[advisory]: TODO +[advisory]: https://groups.google.com/g/rustlang-security-announcements/c/PEZQleQ6IUY The Rust Security Response WG was notified that Cargo did not respect the umask when extracting crate archives on UNIX-like systems. If the user downloaded a From 835b8f891f0ff0d679cae2fda51214667c8e0a47 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Thu, 3 Aug 2023 14:20:01 +0200 Subject: [PATCH 0091/1024] add 1.71.1 blog post --- posts/2023-08-03-Rust-1.71.1.md | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 posts/2023-08-03-Rust-1.71.1.md diff --git a/posts/2023-08-03-Rust-1.71.1.md b/posts/2023-08-03-Rust-1.71.1.md new file mode 100644 index 000000000..ac24a8c41 --- /dev/null +++ b/posts/2023-08-03-Rust-1.71.1.md @@ -0,0 +1,48 @@ +--- +layout: post +title: "Announcing Rust 1.71.1" +author: The Rust Release Team +release: true +--- + +The Rust team has published a new point release of Rust, 1.71.1. Rust is a +programming language that is empowering everyone to build reliable and +efficient software. + +If you have a previous version of Rust installed via rustup, getting Rust +1.71.1 is as easy as: + +``` +rustup update stable +``` + +If you don't have it already, you can [get `rustup`][rustup] from the +appropriate page on our website. + +[rustup]: https://www.rust-lang.org/install.html + +## What's in 1.71.1 stable + +Rust 1.71.1 fixes Cargo not respecting the umask when extracting dependencies, +which could allow a local attacker to edit the cache of extracted source code +belonging to another local user, potentially executing code as another user. +This security vulnerability is tracked as [CVE-2023-38497], and you can read +more about it [on the advisory we published earlier today][advisory]. We +recommend all users to update their toolchain as soon as possible. + +Rust 1.71.1 also addresses several regressions introduced in Rust 1.71.0, +including bash completion being broken for users of Rustup, and the +`suspicious_double_ref_op` being emitted when calling `borrow()` even though it +shouldn't. + +You can find more detailed information on the specific regressions, and other +minor fixes, in the [release notes]. + +[CVE-2023-38497]: https://www.cve.org/CVERecord?id=CVE-2023-38497 +[advisory]: https://blog.rust-lang.org/2023/08/03/cve-2023-38497.html +[release notes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1711-2023-08-03 + +### Contributors to 1.71.1 + +Many people came together to create Rust 1.71.1. We couldn't have done it +without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.71.1/) From e10cccec2e3e8840f50b33a07a98f1c451f6b859 Mon Sep 17 00:00:00 2001 From: Gracie Gregory Date: Mon, 7 Aug 2023 05:48:29 -0700 Subject: [PATCH 0092/1024] Create 2023 State of Rust Post The 2022 State of Rust Survey analysis blog via @rylev & @nrc with editorial assistance/administration from the Rust Foundation --- posts/2023-08-07-Rust-Survey-2023-Results.md | 80 ++++++++++++++++++ .../2023-08-rust-survey-2022/dont-use.png | Bin 0 -> 244432 bytes .../2023-08-rust-survey-2022/experiences.png | Bin 0 -> 263189 bytes .../2023-08-rust-survey-2022/future.png | Bin 0 -> 425436 bytes .../no-longer-using.png | Bin 0 -> 272326 bytes .../2023-08-rust-survey-2022/rust-work.png | Bin 0 -> 188573 bytes .../2023-08-rust-survey-2022/why-at-work.png | Bin 0 -> 271051 bytes 7 files changed, 80 insertions(+) create mode 100644 posts/2023-08-07-Rust-Survey-2023-Results.md create mode 100644 static/images/2023-08-rust-survey-2022/dont-use.png create mode 100644 static/images/2023-08-rust-survey-2022/experiences.png create mode 100644 static/images/2023-08-rust-survey-2022/future.png create mode 100644 static/images/2023-08-rust-survey-2022/no-longer-using.png create mode 100644 static/images/2023-08-rust-survey-2022/rust-work.png create mode 100644 static/images/2023-08-rust-survey-2022/why-at-work.png diff --git a/posts/2023-08-07-Rust-Survey-2023-Results.md b/posts/2023-08-07-Rust-Survey-2023-Results.md new file mode 100644 index 000000000..e94bc627c --- /dev/null +++ b/posts/2023-08-07-Rust-Survey-2023-Results.md @@ -0,0 +1,80 @@ +--- +layout: post +title: 2022 Annual Rust Survey Results +author: The Rust Survey Working Group in partnership with the Rust Foundation +release: false +--- + +Hello, Rustaceans! + +For the 6th year in a row, the Rust Project [conducted a survey on the Rust programming language](https://blog.rust-lang.org/2022/12/05/survey-launch.html), with participation from project maintainers, contributors, and those generally interested in the future of Rust. This edition of the annual State of Rust Survey opened for submissions on December 5 and ran until December 22, 2022. + +First, we'd like to thank you for your patience on these long delayed results. We hope to identify a more expedient and sustainable process going forward so that the results come out more quickly and have even more actionable insights for the community. + +The goal of this survey is always to give our wider community a chance to express their opinions about the language we all love and help shape its future. We’re grateful to those of you who took the time to share your voice on the state of Rust last year. + +Before diving into a few highlights, we would like to thank everyone who was involved in creating the State of Rust survey with special acknowledgment to the translators whose work allowed us to offer the survey in English, Simplified Chinese, Traditional Chinese, French, German, Japanese, Korean, Portuguese, Russian, Spanish, and Ukrainian. + +## Participation + +In 2022, we had 9,433 total survey completions and an increased survey completion rate of 82% vs. 76% in 2021. While the goal is always total survey completion for all participants, the survey requires time, energy, and focus – we consider this figure quite high and were pleased by the increase. + +We also saw a significant increase in the number of people viewing but not participating in the survey (from 16,457 views in 2021 to 25,581 – a view increase of over 55%). While this is likely due to a number of different factors, we feel this information speaks to the rising interest in Rust and the growing general audience following its evolution. + +In 2022, the survey had 11,482 responses, which is a slight decrease of 6.4% from 2021, however, the number of respondents that answered all survey questions has increased year over year. We were interested to see this slight decrease in responses, as this year’s survey was much shorter than in previous years – clearly, survey length is not the only factor driving participation. + +## Community + +We were pleased to offer the survey in 11 languages – more than ever before, with the addition of a Ukrainian translation in 2022. 77% of respondents took this year’s survey in English, 5% in Chinese (simplified), 4% in German and French, 2% in Japanese, Spanish, and Russian, and 1% in Chinese (traditional), Korean, Portuguese, and Ukrainian. This is our lowest percentage of respondents taking the survey in English to date, which is an exciting indication of the growing global nature of our community! + +The vast majority of our respondents reported being most comfortable communicating on technical topics in English (93%), followed by Chinese (7%). + +Rust user respondents were asked which country they live in. The top 13 countries represented were as follows: United States (25%), Germany (12%), China (7%), United Kingdom (6%), France (5%), Canada (4%), Russia (4%), Japan (3%), Netherlands (3%), Sweden (2%), Australia (2%), Poland (2%), India (2%). Nearly 72.5% of respondents elected to answer this question. + +While we see global access to Rust education as a critical goal for our community, we are proud to say that Rust was used all over the world in 2022! + +## Rust Usage + +More people are using Rust than ever before! Over 90% of survey respondents identified as Rust users, and of those using Rust, 47% do so on a daily basis – an increase of 4% from the previous year. + +30% of Rust user respondents can write simple programs in Rust, 27% can write production-ready code, and 42% consider themselves productive using Rust. + +Of the former Rust users who completed the survey, 30% cited difficulty as the primary reason for giving up while nearly 47% cited factors outside of their control. + +![Graph: Why did you stop using Rust?](../../../images/2023-08-rust-survey-2022/no-longer-using.png) + +Similarly, 26% of those who did not identify as Rust users cited the perception of difficulty as the primary reason for not having used it, (with 62% reporting that they simply haven’t had the chance to prioritize learning Rust yet). +![Graph: Why don't you use Rust?](../../../images/2023-08-rust-survey-2022/dont-use.png) + +## Rust Usage at Work + +The growing maturation of Rust can be seen through the increased number of different organizations utilizing the language in 2022. In fact, 29.7% of respondents stated that they use Rust for the majority of their coding work at their workplace, which is a 51.8% increase compared to the previous year. + +![Graph: Are you using Rust at work?](../../../images/2023-08-rust-survey-2022/rust-work.png) + +There are numerous reasons why we are seeing increased use of Rust in professional environments. Top reasons cited for the use of Rust include the perceived ability to write "bug-free software" (86%), Rust's performance characteristics (84%), and Rust's security and safety guarantees (69%). We were also pleased to find that 76% of respondents continue to use Rust simply because they found it fun and enjoyable. (Respondents could select more than one option here, so the numbers don't add up to 100%.) + +![Graph: Why do you use Rust at work?](../../../images/2023-08-rust-survey-2022/why-at-work.png) + +Of those respondents that used Rust at work, 72% reported that it helped their team achieve its goals (a 4% increase from the previous year) and 75% have plans to continue using it on their teams in the future. + +But like any language being applied in the workplace, Rust’s learning curve is an important consideration; 39% of respondents using Rust in a professional capacity reported the process as “challenging” and 9% of respondents said that adopting Rust at work has “slowed down their team”. However, 60% of productive users felt Rust was worth the cost of adoption overall. +![Graph: Reasons for using Rust at work](../../../images/2023-08-rust-survey-2022/experiences.png) + +It is exciting to see the continued growth of professional Rust usage and the confidence so many users feel in its performance, control, security and safety, enjoyability, and more! + +## Supporting the Future of Rust + +A key goal of the State of Rust survey is to shed light on challenges, concerns, and priorities Rustaceans are currently sitting with. + +Of those respondents who shared their main worries for the future of Rust, 26% have concerns that the developers and maintainers behind Rust are not properly supported – a decrease of more than 30% from the previous year’s findings. One area of focus in the future may be to see how the Project in conjunction with the Rust Foundation can continue to push that number towards 0%. + +While 38% have concerns about Rust “becoming too complex”, only a small number of respondents were concerned about documentation, corporate oversight, or speed of evolution. 34% of respondents are not worried about the future of Rust at all. + +This year’s survey reflects a 21% decrease in fears about Rust’s usage in the industry since the last survey. Faith in Rust’s staying power and general utility is clearly growing as more people find Rust and become lasting members of the community. As always, we are grateful for your honest feedback and dedication to improving this language for everyone. + +![Graph: Worries about the future of Rust](../../../images/2023-08-rust-survey-2022/future.png) + +## Another Round of Thanks + +To quote an anonymous survey respondent, “Thanks for all your hard work making Rust awesome!” – Rust wouldn’t exist or continue to evolve for the better without the many Project members and the wider Rust community. Thank you to those who took the time to share their thoughts on the State of Rust in 2022! diff --git a/static/images/2023-08-rust-survey-2022/dont-use.png b/static/images/2023-08-rust-survey-2022/dont-use.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3fd8717d6ff0ecbd03c39571cf2a7d5d06308b GIT binary patch literal 244432 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

8^t7LuJTsW#pkPTL|cpRqX$iOSsKF^ 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 literal 0 HcmV?d00001 diff --git a/static/images/2023-08-rust-survey-2022/experiences.png b/static/images/2023-08-rust-survey-2022/experiences.png new file mode 100644 index 0000000000000000000000000000000000000000..58b70ab3b819ffbd0023f1d36bed5c345b2128af GIT binary patch literal 263189 zcmeFZcRZK<|30iz(Uc^Gr0is8kIEK`%(6Gxo6sWJSs9Ux%8HO#M1zc!A{iN(+1a!1 zdM>O`99Cr>p70&cpfi77gXhU?>M}JgoI?bqJoS% z3CYef5|Zto$hP4XbxKN6{EysGLDz+ZWY1gTzfG|x_R!)*aaUO#S7`@3J9B$i5>IDQ zGf|l{ayFhk=Y`b`9Ypy>IBi7v@Q(-|zliWDULhV~5fMQi0Zvy@K7Jk{J^?ZmA-nmX8V8Jjtnm~(mBIpPEG5uT#>tDU*4@lj7ZTYDE#PYKq)-XV&= z6EAbKO71xN_kYBl%`8OKW#s<;R(vJFYUS$cD9X+4;o-sM!O!L3Y{|_lA|k@g!^h3X zcM|V7>EdPYYV3K^-sL#1^zWCFF?TU_wsv&2cCbH6T-w;g!Oc~ImGvL*`r9p;nf~Kr z9NnC4|N0O!Q*Luxb7Em!xOusF|Lrc#OhsL-U2V<(u|=^)!EwQA8TRn!e#u|D{jOBa$#?|jm?PF;Q6=J_}fp3o-uRzmm4RZ z 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%0A`@h0(rZUH#b$O;_5 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

|$?d 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%0A@a4CqM1O?OZNRfu)CZ>hvM=b+twnxCT-*G- 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 bnQUXqFvB}A6zGXdF>2??;)%#W)!Tq&mg9({a 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

Y*PenN1v>HdKr^vFU0fK}4rQi)oe2VKk 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 literal 0 HcmV?d00001 diff --git a/static/images/2023-08-rust-survey-2022/future.png b/static/images/2023-08-rust-survey-2022/future.png new file mode 100644 index 0000000000000000000000000000000000000000..9913ae815056a59351752a246cdcd324c2126c58 GIT binary patch literal 425436 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%0AC4g8r~Uij8JUEQYb#+;QJYgc^g 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ξ#VFfJ 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 R@1j6X@^tlcS?83{1OR7h9t;2g literal 0 HcmV?d00001 diff --git a/static/images/2023-08-rust-survey-2022/no-longer-using.png b/static/images/2023-08-rust-survey-2022/no-longer-using.png new file mode 100644 index 0000000000000000000000000000000000000000..dfce92c67e3059ac2e5684bad74036399f0f22f6 GIT binary patch literal 272326 zcmeFZc|4YF+b)bkNdqDjnF*PdIYNezF*BLUJdY7d1CkE<&*RvSec$$N+x9C;S4V9t6*CnH3CUIs zbrpRQk}YKX(>t3gCbJW(g#E&1bt=1#6=E@Nr;Kn zJzsxDLb7q($0jIeM(K!8wyxR8hUDPd7*X=z~* zF<~*W{dmWIpCET%o520|HpMu^7Zw0vi;{;xcdm%{CUNXSU@4{t+0(fu^J-(wip}d&)5hD!!7#|vL7rFN!N3`a?-x0^ zUra(y_&jHXwSbLEMk}coLFLi@eAy)_`mHhUXxMs^L6y_R#5Y{ zv2$`@Q}cE><>4J9N4)*Ne)S)Z_y0c_kv0A;690LRfi|B1Ee7#snLqL3;ce*Q;i{l) zBy8Y2n)Ep~A!wd7b)BDub-}+ z@TC0LPi(bA+y3>F;J4gL|=c-RnO-u|9rpX;+^V)R$MoBZONkbf6cyIOQpbug^uIMF3EDoqJ1iN+(fik z?rR*Z9u!`aoK6W!lb>*Xuxn~Eq-t>f;y3Z-xibnAK@xvI<+`;0yM7$cK?+$8C@Lxf zy1HfTW@l$7AtAw)vg!3v4-bzYi;FM6RsUwCp^=o7EIz$3Y4Yf#w!PS`gw8ji8#Zj1 zt)<*MX8C)0^lIbWr{=p0mhYIO@8slgf9tz=@uH)vtCom%&_nADB;)))*}^*x$jC51 zvk+SS`EzvY{Ubd~OO}O&g<}8dzP$W=4OvzapI7+?cSn9L4YodCZ{kglacI85eKS&j zv0;~W{p@Jt{Qbd4r&>#^Ch9J1iEI9p_27Z<%a<>0*Vk6`jE#3K4fq@@G%2<<^Lcyz zR>g0sYYbawNOUQzf~Ozfym|B0J^$Ks9vvb#!xk^E~v|>H_)RhbAt3_Ybe1GB-DuEW7lJnM5SuJtb*E?(FPr z;L4|@(VDXxyk-WTg@sgk4%hWQ^Ep+q@Xj0$mU{Rw$#}BCT^)Mg#R{7j6kBI}dZXxg zsmiT#JBL2Ld&jVU|Nhyp52|%mR>t4lw)?&Q%WMA4!Ci6z9VbWD1r+=EJBTc=v5dRB z^X%D5$<|gHn!&K&XIwv4NP9mUpys*LTPR872aCxl-n7Wd;3b{+1FSS&Sc~4L9@cWJ zpYMpLP?NBo`BwGQeX8&A*OE8WG&E|ld!ll4a~WA#(`xNW){=P3l%trLn4->}J$tV4 z&FzE2#~)awDsqtU2@6;L&|jNv-22m=p%V}w86<>XxSx|4?s_N$Eb}nE2++(7R2|vmr z?VX*mIy2+Gb!M$~_{F8sI5pN=i_2O(bVf!-dPYX{TXqS>G+f@Lrmd~r)!nUn=FFJ^ z|9&^G9?O7+qNg93Z)xR5Hj%O&vJPEwh>3|AvmE^Jp{SOHjhuNPbECGFmWrBMV`<~5 zNAD}boHmg>Y9AUpv9>aiPJV@nk+JQE#l`Llw>jncID(<2R+MMXuujC?H0JlWr- zNYl~K+&z|_R+9VV$$}$q6pwqGVag#*weFXFl1gku7gBz zCI8+%fxwn42S46aq>VpWMBt1e{T}PEGfE3blZ3SSHjkZhbmX%N`?WyqM(N|nIV_an zruW+_J8+`uG|6fb9X&76`XI_bPfnIk2FW$Bgg zFI<=s#S!oB?v87+&s_^fNO#7nGkuwvshWD6&}7e%)SSZ-$K?I3a>;5@rnl6|pl=qp zLtE_rq5RzBLHB{1T08jKzJK>b#0vON_0mkVrXQ2t);VOcjgN9^Ff7dQ`0;Ve!GVF4 z6U-z+Y7w#tH{ZT}i`aQS8Km&*hrt87jVE;aD}w{9{OIZFi%+$to$tKHO?QqSxG5Q>h(3y``+k{OQXN0fVW=(|wO!?E0U$ZRR~!XaDGZZ;8Xv zn5$RsvRojOPTKHV2|+3MbLvr0w~%QGmsQ~Kh4XZzBJ^8lbZr$@#;#|z_^kf;^7+e` zeXlJ@bYq{m^)nF9DQH&uxkR$ZD%cH6+i+vQ`AHF`hLc67E=5po&t*AlYU}GOAtNi> z8LPB;`SYEt9kIBjYtb(EpYh1Z$Yf<^4oCYTs=Yq9W#;9z9Z>wTvNqppH}N*rsWF4( z?Wb_>Ii!e2gJbf34aw&2&$!FW%PUxz*|_JCK-S#s?YUxE<;_Z0O5VFlNJ`SXDUk3T zJa*`puj^oy{5BSuot2f9qH=P3{>ttr-y{cq&b(xcFx+=Ho3YR@=&QfUSS&L1%PiH)SyfdE2V8r1 ze0^7RRF=o0y*7fhaY3x}VJykq={J4R^a5Gc)xWL3ZriJ{=jY<|W%4ZyJ2_c( zdBkpM_0eQxTLgUYn{5$q&1Q*UI#JY|bXU+o>(loGBtIXIvB>%hQczNM#^M}YD?kRh za^*^UZ|_b2oj0EtTLp1H@fe&*3t-~Ax#%9JC2XzCEqc;xQH!*15 z;Al^iNzB%-KD6p^ICWkweO~&m&t#Bg&(f+@=d<(%)3nxK0|Hw-Pl=3evbMJ7kj9Ga zITX6*Sh@oJzNEOgvz>R3*)4w`4spF&dxCG%W0#)$llw&&sVO3qT9ACcw;uX!xNv~6 z`~2t6juzFSl?6}P8FC+Jq$^+AX0*USys!4epSRcM(NHr>Y;x;=@@s8y@1al?D=SuS zA0L{%d#~;iwo>HV>7DlbQ*)A3$g+r>y!=Y9kg_IUv}J6jiHI!!pKD0&W*B;V;?-vS z+q88ncl_hWk5!Kxx!6k*kRjoiMqVb)D7nSRsJq}J8QvbElq%y_aC!^1^f;<^;p>t; zSp@|J*QU?YbLZXq;?lt_Ah3m3Cnayv?XR2r>mKzuJ$-!WzFZaBx3Bis&n22Ydtwg# zUZeB!^6GNgBkg^jysTL|+BV6KkD(>j?2(?HUjF3%SCTEiU!M?hCM!(Z62Z>9N7kRZ zp`pR{6SJiA#w}a6^!D}9zS+HV=lQ}yL5-)4Cq#B`l9YV>kDEMu@!}C9kF)HJB8`_q zIx>_Z@VaDl*Vb^{;iukWyI0N4_x}A3Ye_P)vo{(T7~p(wLNNgFAm2zM*Sm2I-^!V|Gk`ggjSJ%h_ z{_#(rY6l1Rva+&>63<@fd7=MT>hp8oM!kNfvbRu+d`@Z!`w)7;vMkNwG$9K5`g@87?F z)zm};jBa)48AnG)Yy?GHPmfxXkmU(y=jeAu=0{5v-Yo4PL6PS+dmvYOO0UT5G1q;I z?_WB3!H@ z?RFw={FHVx;=^;|EsKh(DzWlWQBjDk7nip0%_uCS_VZh4O?P|lKYilF2@;@dI5|0$1oV}>gsAM zG!-v(?xsSLRKZeaJb2LBzbZkz4Vgg&#l)&2@GQ>H*u;b~z&o)TX=$u2EiG*T&s`6! ztLvmEdmdcP&gNqJW+8SiB7*o7j`wS8AqC&)(p!UZoZ=^4viSDxW7kPpK^S%~ga1t|DZG7MDJ9{5Zqh+?=ijfe*JLI26sz zcON-&o+18L?k4}7M@vNl#EOcL+#~d!7T4cCO-b2v{^G^ZCz*He-sL=aa2F1W{zB2<%{{H^9hYrR+-?i62EGQQZok>NYC=TiH^t86z{k*(Q2R%Njpvj49Z0o(k zeP-}-bo90K^kag*0lQ{TZr9P!SP6MoUtd4;;dwxMYjVjculJ^%2u9z}ZKOmVYRgp4 zd7@;7l*+rsaY{~NspG*uK0ZYyCDLxj`-Aey-=xy3{PezQTUhKNau5z>eM5s1-%gH0 zhknod7~$knP*8mCyt`dXOH1l2tz^4Zd>MN!ah;Ct^Vl9G~b0 z`OfAf;facOKfZJp2Yj>Qc(0QxGmLYQ(i1O9Z~5b}vhwigXauf9W6d-9uITdmub*}w zD}smwIM}~-?)>?UXbdTURF0tANVNItLQPFQG&vdVHTp6WeSX*I^wiW2R#qLs-$S(# zn!+DS_s9kAKvLknkuKxMk7l6OsR+4q1fj5rnp(x#nZMfv-QN$a4W6Vnl7_QDLRWDo zieSStpNU9&N@~V%U{Tsu7FO0+B<08iCQ;jsv3n0$4ZGaBb!&OP^^n(44Jq<4&4YWH znP+WYT(m*=jBLQg+IXR^?(o!y=euMBW{9-cev?N#`NZ1t?Dx4jVnGysTlTg3IEB9B zA}TcHcGi0E7Kox3PO%7}Gw;ss*|Uf1z9uab)5?lPC4#J&?kR`h{{6#~lT^ICyjJPI z&~e|C4G@~WRqgs-OwjyEOyD{?JQGt>ul|AG*Ao*jpme3r)C=jERKVfX>{*+mka&QokPpBqs!>afX}q1UE8|4 z&Vvy+62o{Fbz9GPjjjO+r>)5RpzX@#UBX$`)uAap;-aFpsL)aNh=f=qFCVL;X7;B} zaY{)so_d>7i>=FZqyFTCESQp-Iy^p30f_Z+Q9X+nnL113I!|I1;8AS%J!AZZ$=J$3 zuJ-OIvH@$WkF#7V!b+a9TOr=XZKzm8a%G$jvG!+pO zTOD7(&5t(j4cjTZeX!hAPmgA8ZEXl$64HcTLN=&exa&roN`ARU0*O&kD^m4!Q!amsLu{q`z(LA;s33puTNWAS}OHm2^ouMGuGGF4Hb$Wh>D9x z6cz1vb#oKgnz8c&N8cy=v&b_?uCi)#3GCQ(EhR;8&dQ7l4PO_FzVhM2Z6KQ_AA|FV zRK3hV(`06DK8oJ0%f+z1=gD)lF2gvkpv8FIKUQeS9lLYniU_EpmRsVK=;RE8^Y;16 zR;eF7`U1$V*ke$Ei-(8yil~T4%~;cQ(V)38VY1Ym>AO4bx+I-inCz~vCe`DM|D7lx zaJ;Yv@Ga_7GnLRR%~)0NlDk%_OrlAZU1MzE+Op`~$Ef$Sh)YfpksUqvE$=KgOn&}c z)80;lOp#f>J8lS>O4?_9NAoTQ2JdY$SJC6k7+*yi)Vp)U%j~kAxXp1r3gvB}wfN#v z6xo*R*hYqi6eVWxX!X&Y`!8I$@O^gnERyNKz`zbh##ir6C=*V;2SY*!BzNh?4F<%n z*X)RDzO@CyN7S}{Q-SF3^`FARE|)G`&?A3(5bzp_D#vO951KCEH}n3{rR$^5GBQX2 z8(!eGcGT5Ev&U3G#9i|u*+*A0UX_+g#IVXUzkBy?)22-suM^(1wyK>t!3J=-6}vq0 zdP{c5+Ai2rE)-5seyE>`yd?r*Rwzjt4k?@q&)F^R$fXy?QzfDeRa<}%F zk|Z!!IA(kh(4CYb3M8@=coWviA^(ihRSR9+9WP^;Hpt7%uPyXg(~`FyHx{z0Sl0d& zgFe8u|H)RA)tiUH6pVB!bSK&RtHTbVx*^N)KfY0D{J@F;q#}NkhPIBRGJ0doATSaB1H2KpFIXX{)Uu$Y=NKhC9SLV1|W%qLfk#C^fMr5(K zsj_Now@%neq)0j#|5_YL;|SofNZ5MFg^r`Qs(5ZyElL8C-#q9+ zfMGx^{&owa3phtVe*DOL*)|y)^2W}^<>)k*03Tls_}=PI`KK*P)zpQ@K-Ww$`C>&qVY8u%x8!j@s40 zzM{bU*40+SgBK37BOKfA84ITXnjRVho z+L1d2ttxI7L`KMEzFOi7PYo!^E$@|$h={0O=|}B6;o)%=5NHJXs;l;0TwL5u5gRg~ z@2KY|+v^rs zgpJKvY?!*u(?L{6(|iRMU@x??Hn>~chEmIO~r>GH1d?BmChW~Gj2-#Et;{*-eDy4jh-0|8 z%$&UOT1nQG_^iUhHPxE0L>YT@>R8O)Luveo(4zZmKfhJKKJ7FDBw9uIs^?$ z78&1~0;79*wh1_JL(|h+v7af2!q(>p=^KtIX==|_pAHPv<(}Mf;V{6^#iYkhVdB`F zE|=__oLZD`Y;6O6;khtrq;udl!pye$#{SPAD`oM-kpMsXt$*l)aM=iUO2gxcpIy*Q z&#Lk~jfmI~r>|>hxDmwB+n@Jh)UL7;A#xK;yuQAEVEUm$hxXz%A|hpcKePG0cyjkH zZ{iy22@MO&{@L>E#0{?*rMr9@vL}1d`X%)^<_h-mIE6MLWMd zYiD9&G6YhDwl!$Dj{L{e`|C;Jndk}&tty$pphi4@F6%x}#y*=uuV-j@o+!)U*OpVr z!;xL}jK0pz&ySW=dc10BSsSSn+6KAl$LID469r&ql$Fo@PlZp78mU&CUZBE{4~vUy zzxF%`y8TqK{js8a{mkIC-KlL1FHPoI`K;PEjgJ#;lneSKwq z;^qN2=DsIxmqB41-S23@x6`&gOZDNyhXlIMYYan*#Xb<-UH-yeQ`$XysB!&OeJ#Qz{{6ccITUmHPexu4KL`}t?OJk!PzT{grONa)mv;h zhlXlxPtD@^o81M)S%E)3)8Oo%u(MOPxN^NV6@}LZ-B$X&pQ%z_hqJ=>>sdVWCP!K& zL^=mr5<|W4pU532+}&fVf3M#TOgnOgS+B@kU;o@-=+CXt)TF$}HhKJhhpb6dAs!wc zu`Tz<=u|7!NT({Ub9cY_xUx{$(b~Fwe0;n@YI$^IM8vgMgut3T872xd>?n}E6+z;t zCDofu5*)&R0{)$Fa*Ena$MgMkQWXF(Qh~^sRbL$qA&CTT=`&X#NjD7L*0~s!f}W5?ZxywE26)OAK4J&(62?zZGM?9TtgPF>2i!91 zdfn2JaQd1ysHV1@qq_=3QS0!EEeV?47SGBd}NJ&X~2(^-91vx<1 zPlMpVgx_`{i5HO2Bu`Ek7Z(#0-umiSVIgx)4he~!h^f2xZ|Z*7=h7*#lWKTqsOD$T z+UIso6Em~98x{{wzF}@jmORQap&b-*=FITe*m;6Cw0!Q5v(hbhW_720@M3+Md~mjv zQrwSQds$en99myiKDjL|GIA4|Aw474sK`h~K)BiJ-@lICXVD{)II`V0qle9}-n?lj zb?OwcsoQ9Eu9qm6$P4r1a$(UF~^b-Mrwjh;9_|`Xd7$5#FpRQrY*ZtQ6UHO zqz%xae&>~ukrABI2t2mBL#R`h<6l)bTc%I;MO~c&Zx1UPb4Xeh-2G%Zq;2TPYN4eB z-n#lNSY1VBBZ}3buf82?EQu4SXrJFd;(c&|t?DF#3$)M;DJ8W%*1RsifYdy_yfSA@ zl;#EP*3|rdB+XvPO7#F;Ph`_n*?_=X!qU=Apl?Avl*_t0I`u9h~yF!u{kjh zBYnDG4**RK=RkDO@=~Ttd7Yb-&;1gptE)@0ef##nz(BVB`>%XuXee>%5%QhxOZ;+$ z`iQg%N}*mun-o_lls%921CDKMS;a_=+5Rm?M?ym6&;wp;_9aVs* zCZ^3UE-tqi>6s-Q!@;!BHEm;+V?>Lu|FJ!3(}lw^jH2hHz7Ii+7Tcmf^!gn676Rip zXX{Ua{3SrRUVJ@xN}}Vky0WV1q!tdA;FaIkR+Ok$Ew_00->f<=DzVxJVJXPPoL|_{ z#pOkNdz^DjcA}f(w^9j~hR|ON#%PC?c@h_VyuF7;M$Um5RzFje+=7*Rk+fzw#gS#@6Hh@A)`c`BVT=1wmX8X=BA;G`b2_~ZUw(#Q^oWK}n zNh$zXLEU^Z^$jPRp`2Xn&>6d(k->(pxyknpBG-8NAAwFf17W>ubD4##|EIArU1O!{ zz*&xBLF?}RvmL>U=>I`W@X)8O;RMwCuTGwPI(q$<_^A=JZ56H0?VD)#$e-Q`{;Kj#}X-}y*>1R<-wQe8K&XPXanr6wpYYLoiNc&uw z7#P3&l2mSO|0Z;X&S$2FhDhK~DfULs#VFx;P3vAV)rG^=P3b9-gQr z+xP9WxtO^4@bEDE^>9z8M_!{xqC%A|mLVTY?Uvj^MJ3`tWnyn{|Gna#J|ZjI*3%)O z?uTUiwMmz5`eVnA@vk5vLRNo7&7ba=KC5u zb9w}JAb&C*kc3b^fES0Rrdmt~IrC4OLrTDTE*K(F_`bM!!}+mGm0m*d&YHKfrurYI zQwf$KPw!4%`A;vKy7Qa6j4GS2Ey{C=iP0WEe!QzTwv-_7f!_7Q9yAlEIA)KuzH<}p zQ;)%y=)xhVZpX!SmVEp8U&rVZVJW@QQ9c9)=5E(`x|l=s;h!lkCBGj7 zj6z_&!_3)K&CSWV0c|?R4c_TMU44BrP-eIKyY&qWP|Vqu8eT9`o7RvGFvakL*FInN z=_dqxfwkvxaWvp>Bgcn0Yktjqcn(H3A&`|Bw5RFXc%+oyN@ zI8S*(c5be1eI$)oz+wVn&0scH)nw)4=Z`P@z_gi^lr(VpJNv{e+W2huqYac0Cs6%p z1bBCB%8MasO+S>B=NzP{NMe-p6pV3HB07_^moINgI~4Xd$l5|fORN6;W;%Ok&%{&U z#2rfBVu__?&w~Gmo|^v~q3OwQ2OF4Sk;XH&CZ9BR=G+HS7Y(iN-G`X0Z^V6iethex zODA1j1&zYVoz#lK;DXw^)S0$?qOa6RUz;tz2~roqDjSt7B0XoDDXpw7d?mO)G)T2U z+v2Ha&3NqAG+5(R%Im06951LH|`$R7ml%UE^{Vt;#O{*}Qz1=Iv9k z_oG0wLqTfRb5P}?$iCkbD2+;ox}x6~wN?Vo=T=|N*$y2|GSV&F@jJP>xe3L*xwAI_ z`+EuOlTbeyNkKsk^vJTX-wJWAkWAYl``zzfy@-lSXciT3jG2&xxaT^LQzG&zf|s_T ztlpSp#%4mg*SAzo?(+S8@6sj8?)fnQ`#|LAyN}5>Y{(zk59Aq1wT4bA`KfJ5sl9^( zk;-yEWHC|)op;KiK0<$Zen+8T4GW*7W84ljtzLfNC}X-;^Ua?MLH^r@h86XY3>Eit zN6r?nuj8-HGBmdIwV2;GJrAztFgB^UA~lr-f;jhacd)sjMLTTa-Ku!%W&dig`4iVT z$2Fv^$i9ySd3iP9G!_>Z8DSOy^M4+VYbI)S$~$zDd~u>}-Q9_kb=(^C0m;R{?U!Jp zF?j}DrBA6%{O#Mf+h7=}LlO1@*NSzbcXxM(GM}6L6$GM~OJ@TgH?$T5@@mldo>UKu zGzex4*-*^<0X~I5*xih06&3e*9*1)DW9Gx|*w|RlfPhPA+EG&5p<@g6bKiI8xLOhR zn-z*n&VBcuCvN6Q?ORb}8^I_)#C8&r&7rmL8@eCeDJx?XKiQHYR-S_+hz7>+r$d)T z!Skx)EHs-oG9C(*gNhcQZ}uyZixf7#T?V;Yan5XFO$5D}_x3o2G*L>fqliixQw7?Fts;^Hp=Wgh~) z{mDqhc9bCE+B20Y3xeXWU%!|A^=ie71=fbQvhVArQrAlC8n;b;bN738DKI#gXw?ku zz!r)E%DDEGZYC5L6winL(`MAHayQH7&6q%Us6y!NX4D51REs)Sv|G}-e$?HWLbBF6 z*U?jYkmLkxP5QlCmG_`khxa0fxf7JmzUd>O(%966n`nV+J346Lr+9%D2;g-yCnsld z00Rm1z)PSsl8VImv9+-#i|C>CIn)wiAFE9e8v%Ul#pqE%&5r@}1yY3l( zyWImCi-w;50t|F8CXzx=S;_T|uBxhPG0y;hzQwZKm;J3uDDo`Y4E3p@{mRT#?;uSO z-XYyL<`<))HiJ&S0vp)y^KVtkphm2!L$AOLIZ6E;8a{HHT4tYh&qmNe#K|Y5?kmia zhyDEzfbQ~~?AixL&Y%^X=_Pb{nW!--i=E|uE@kEAwzzHUHA_=dCL$tHCI}u76ss|_ z$pX4wLI8Wc$;`xL6PPM&_~nGo_I9P}&|i_lX%Hq%szc=y5)vYp$Or?2;dBW&Y0gFY z)|Qrf9H{(78}O6_aRI*tebxH#3rd2S26M*g&imZ9fhq<@O9V|Ap zZ*MVVkrz&d5dP7Z5hffg987wfV0nE3&dO_k{EcQmf5&kT;TKI!n?W0`=Z>U;_9mKB zw2n0BoiAl(+TDF z?_il1C)(yCa;Jc>9=d;!L4TxZ`fTLu52PUwkJ^O?5263SWnRMVr^5AZbo9lu5o6p@ zI|Q3j$96L0clBe(8qptk{#Ha?Ru1D$Zj5xh(|g4+L2Clt)y{THu0;wF_9V z3lo|U9K1M+;ebINidy1svP`~+-r4Sbi9>M16GZGtS?GM-2VjSIJUPuE%$1Q^Uegt~My zIr*@G!J|59XgbB<_6p6P#`2Ri!QqPXH(n8-*T(bwjP|3GZ|YySq{=4o?|24fg}4uR zs`x`HVbX&AiD2eu#R=^g-PHk^fElfd?Lo>`GkT!2SXw@sCZG6;;z(GO9Q#W5!3Xsn zP#I_FtieQ7S(()NOP5}Bbi@b7a4lVfRCNdF9QphrDCdrj4#GWvs@L>`kk$|XvP{M& zFbG>&d=Z~U-ZCk%-|Q8433~F{T(hu#J_(;w$rh(@$*D_c>Z$o>5MzzDO$>jM#`C|-vqT17)+Gr~(X(HFj^BZiv_W#T}Df+evf{Npd6 z1*1mL_ia)LU4wIA6KmP)~%?qF?);3(?(fuH_lPaSKk;J z9zF|LK-)~%!@KhI3<;~2KKH0E{Jsnz3OMO|CF z0V^u~rHpdho*KZt$i23W7l1T!adz=Rbz%EDrs3+L^qZ zI+;QD(61kKST5r)UvZPLnH>f`6bYKM2i#z1Vj|?p?Z8Y4BlF1J4Y` z9w`yVcm_d5LaIWW0eeeiD&gh_`S~EefOIZKk*%gH-=H{TWlnQz13VEo#ZPVXqhBMM z?7Y0Zj+*`lLEzHvE=HnooV|MWSkCk|)Wq3l;p$fv+K(i9AKGkaU#gUYpVI_Bcz{kg zU4ChP0>|Y!H>R`rV_|OD_z0THQo^Rpu01S+P4oh?Bt zHwcbMu=aFKygWQ3DBm1(qt)YJ0t{dJ;&2s5DS!F$rT2;3?%9-@u+!}*Pwk+{s2pI) zAy{c77(MBoh=K@E;SZg&^=m*bfz!kctAwww@6gOlED--4lqi+a-3Q%c=mm}wE;aC! z_2r7t?;#-6zt3&p1+q{hP9p4}Xm2E(I#jYl@ax1oZw3bTfJ5SFHA8|&M@kEZo>9t^ zEh{Ul{w*3_)I$Fg;8W{^<93aG`2)A~uTQ6@B6)h9j zAVk!YW>|b`a9b>e;hrh963F(&RK8)YxZV zz>;pjy-bp`Scfe?0lGog$f!t{2rS}g8FlzTL1GZH_#*;NU#iU$GQ4Uo5|J6+X82&Y zlxN1P9+&O{^5Ed$tY;`f3cFu8t}M@T8igA>Y&-wju`PoXr;Ub|_8dgO+W!9AikY2T zTmSjZaE^NY7HnBC+i{7J-htR+^2C+t-F?fW@?n92WnBFczzFNhquU3{{kEVxtVg#c zEp31qtL>JSmbO71(YpY&?|AR%Od~I~6BHDzPb)$eHLRsVye>llkBU$MDfP$tvH~_s zQP7-@$QzJ}V9*zud!B>l0x49VQU*4818zsJ{BsjSL*Yn^#?BU`;eeKe?}dN?3u|+P z!+jyZ1TH}1`xdo0ld2TZ|BVVzP%ofoCv*|SN+T*tTbAmUx52F9C#g~9FM-s;uoxLC zYklps15DQhj5XBhgblOZ{qbvQ&mj`8x_!FL=XK1KssIczd9}A#VU3V+>?V+t@>rf@ z9HZ>a&jS_~7W_pcA1Z=;TnEZ%VEnbMeoDP=vuf7RX2^Fh7Fl1vsdF;3!_j9AlR4}H z0+$1I0F=VkS18fZJ?PrEIYEX3XYV4)N|yhm1K3}}kWoKJ?G3nf0V!@6k4sodZwQ(m z-ZNm82EN!1)NTFT;mm9N*J6ZWfEI!5xktu#6I2{Nm?x1+5i8ej-P)X~%Xi?r54wx` zuTIX+Bd_8(>rYL?K64d)-wxSz!XF3!Ep4RiiiZ6{Kv@|qTPAV>{V2JhNHLA~SF zCfO4;Bq=g}(XUswCsaMn_I!2;BX>jCg~a36$TcG(2!jwTP)f?m5ze7zGlSK~=u;$p z#XrGcAk8@2kEdeQNUOPhH}lNT<8|)PDgP$!W-PZ)}08p42Z}MR}~Qv$=K%Z z0q)|8V7BrdAF>~(t{~Yn2%3bW2KeEaNDstV6gv;r# zCKGcNqc}?RMEnK(CYk{J^Yr(>;d|ML3OPazSB#=sPK>*K`)E-*`NoYqn&TOm`>W2# zcC#i+x?F@3Y71=6VfP%_Gy(wF7RShN9+sbB1gxPQW6UJk9|D;qQ&)XWQRrUPzF2ti zXdbja{*_Y}9dE5{r?Se7B91OP|26-1Y&Sv4)z3ke%YDs}qxX=cV1h~se6qx}SdQC6fr#+{4Hq_Gqz#yP;5zW7AO_@nbfFIS zw~ZS&>XIvN*+>RITgr7hMVOrsbDst}imBmSY)L<~7Y|mcGSA4&T=)8Qw26X{kWSV@ z!8!B`G|h0X8GN~@m@n=_G&6IMni&L?f8K_5I08urc3N$&K?p?!OBdLswXE;$(LYmE zZtLQ*1=c8Af{xDe?{QGSbBA#{)fX2qEMMGyXif1~%D|&j+Y>|IvfT~)z0MKApuz6+ z+mh9Eat}X0Kanx5szRdBE7vwOkYhQ2@z`h~J&t`t0i*{s<**6>7IuWWx7!M1N>MCR zI0A-BX>;KfAO2zp3o0Ms&%e*lzX%vSqsBD|Q5brLUJ<)?|JmGJ9(WTY-F}`~{gJs| z=#;scucxbPtV{X?f~o4qKkP6W%T>hd+|ckM+9Ae7@btrvoJtz!*QcS^r^{X z!lQISvV&mCl#Qn8NY>ZpkKMd=i>Arh#bp$XK=;Tax<*_=1SqEU_s=hP(+Lm*3aYN9 zg_?jV(5i_Bl|R^p2`z9gzt(Zf40#tveuc2gShPESPw6NK`*?jxW@e`C!f7w1@6Z#8 zk_A5iyZ#J_4%?orFDg9KLTW@y|71Tu1dYbVOREEH+6Bfc1kV^We{r<}S_btEAxljz z^XL9@$F$0{t~@>*fUJ2uGH7!YhZ_heWWURX zoU^yUx@DTFrI95$MN|@pXH5N`FlkN_OR_)4gMSJaD-k0Xa8S|;sCC8{BC-wl&%PE% zPUm=r?(&_`*WX0fjBU(&2|#$Be+L=cgULDAJ2BmA@TStan}2fhEsPi!F{Ikf7u;1D7|-POMR(kT@p+z!g5>vD%2Wkt0iwn?$) zQ^R^y%#zKxR`Wx0mXKsq(RTsisyCwyX=D}K*r_EjuSc{{|RDxpuVJZ=^8SEzTXU~X8*hG z5UQN1w@M6hqr;VOYzseq1#KH0?0@OHq4yT#bJNAr1*XqiFhnnMV?$HeX; zo%$S-I-&+b88*10rvivW^l_o(-yiOUzS5UqD`!!*Bh5V=b8cyrTkV?4@YR{gYo<>Nj z`7ept4FVZ4D;K2iOa2h+;rNXbV?JHo1yGdm4Wx=X zOb|s*@Mt7#rlQKy)MQc!ky>4xJ}PMa662eiiJp6R>`-*Ivll6#6Rb(C%_DP+G0Cpw zc6N5Ie_ss-EJfga8)Gh}GX6pB3Rtw!>6+D+Aj<0JvQ5t~eH*;%oIgD>!f|{Yytbj6 zEhMgEEK`OTpFTa9D5rh$V8kJ?dU;}v&5Uw^B8e4p*TT=0c-GQKgW-BC^ z8YD`PZ@Iniw;PUJukTeccz-LmJJ|1JN47=^zeNW{ay-S!Hi|=p!f!y2@xrYIPd?5a z#)_4>1!1ID?fi47_D%Nu67zWk%sRx z$o2HDg1Tgb)N5$x_%`I?6uw>HuJ=&Why~HOK(1&w{+#my4_gi9kXH)@F`9i%syMcE zx?GOUV~NlIV^eIh^EcP`CER}JD0G=?l&@!}#KkFPZwD%B3k_(_&_2oj2>>PX$`$S# zN%dAI;gb*)&<;ie&ZLtfl_^3h9IdH6mo$5}BGp6Dsbuq3iw)gjt6z9Wwr!6Q7KIfR zhIP~K{yZ_FqvB4#d2|(Z%!B*6HE-d-5&-q$1%YjdBWE8 zej*2EZt})JO&3Fn#S{}7kln)8Rb!>@MoM?=p?lFVHM+g z&H^KWo40S%H3QwyoH7<$wnNcRc`1qcdURQTfNiG?WN$^S>mM`?8a`lJB3AG*7Z3R{rwu3fvPD0i2ObT@k3`m=lzZZ`MCEy9w}D`v&>O4dZ(YnheIHhRT> zIDSIMX!ge!1IU!L&9`sgCc1F_fw-wmY2!noYkUo<-?wZ3Y(ZrJGZQgymc8l&egXQU z)t9eu78rgtGc~0#rYLa4&=k+zVruW3RXl0QR##Na&2PVc<~35kIqS7pNWjhwpIOY~ zKU1J9&GvTg;3*Wf->&`rf#BN#@sWS~j(Wa=u+BT|v8he`a}RPL3+en9xot zQJ9=RfBic8bTIU~z;j*gi>12kY%(?S7#hcf6GvmxdoQrM(ZFJn3H0=QLBCf0vgUX4 zb&on0?C7lPKGcng3jUyEk^t3`{@JZXVR295LxXk}_Y2NfACDnA;wP>eg2(jvL@@t} zuimKliT9Vw(9mz|=r|1I5c#S4;-Yw=`;)yC5gY$Z9W%n>3Of;P6TY{iwx%XL&>dZ` z?I>(QI}*=XQS?l5qq8Qs3|OxT=S#t)kx>+c;zahFT=O@0YCeEuQg6Cr6#tBQxGYAP zk58Ac(aBGV*3JoImyr%mX5zCN$TpZX{66zR7P9;>Fgxgr#IAR{p$2*}gn~iRb9qAG z+2vm#k66&BHoR_6BbTW4qE|9A{SL;Cw#a}5rn3>lR1&_Tj>87z=eTOg__QN4lxR8Q ziOxTztK}V+9hfza_iG{^!^ZJ)B^~sk7m?2Pb+(`UU=!!v@;=;UneZ%j; zs_JvMjZjcuz2=Li=Y@d z&|ErumelKM$pc~*&ZtAA=*(d~q%-BtVOTMbX0e5+hJ=d!c4_FkZ+SZ}!O1p3?d zbUSydblW6nmwiTOl_w(vz&1k~O7GlB?)1BL>&V67A>8t|Ro=GrQt9ypK0)L;oB z$A10#RqXxgwWf6#A;cXD)v8c%I=YXU+Z2C2LiGq~%5V-0@~5K52bJae`uZHZ3+N|i zC8md0av^5mHx0y~ArLz;7>oH~(Bc<#`Bc!(V=72^-Z>5J+QX+$d3AJQjHUa^$lW9( zL`bzNyEvI6$Vk97csqYFrugzn2!^_O=5F%7Xq`_)Xh51m6b22@>E!U=?$KI!>%BW-Hd`w&o*TA`Egx4c(dvyTLZoZ2R^C5#VMw^HBfj0CHy9EczE5m z>xi`_*q~Nzq*~keuQ3A7>%R;y7Mp@X8u@9BTlMuS1owckdlXT^w~CrW=pn>t^7!}& zz?D&@b}`{OL*rQSM(vIdNly3Z)jiU6L6xwD(lzJiRBFw|` zwl622gWN#y%BN0E6nu;xAWW(F4wK9C%Wxm!JA0TAUKim$z_~aFUg8c^a=Dp!_E_-J zbwCk$k79KB>XA4Ew5Vx&m{z~?*Ad28AT5E!WB7U+oQMmFADzesFx03hc=U39{=SJ~ zNEis$q~wn|o4_wLy?sl3M?i518X9h@^_zrpC;G%LgpnjJgBVTl+5L+8DldKv>tYr7S^ zMmB=+=ika22DeRdgc;k86KEn-N=n}*z-Fu4`i21_Y$a>ec;M`~RhA==#) z1aT%p!I07Q@aP8Z9u}v0q*n~kj=(uv=0DB+b8Dz7hDhPvjrw#wK0dENQvF=snfBvd zNk3$p$Odw@Aj4*F+DL|>4^|j&#N$FBeu8|o%4gNI`@uWScOxM|C6TW|?F8jC(*nNA z#F_5`bv{xJW6VP{N8HQTN5DAs@oj9!G zbK2p-a3f$YZ=d%-&*qz4ESVs_7x5~-#{s6h$i)Ki9^GvALC<&HP@^GI>8SZeuI=kU z4T@;Q=?l!IP{L!0Z$khXL-h(sUf1isue$Ud=XspR@%g;hXVZNXL3)Xrjn$k%8!J9~1!t*nvl<&b zmE)B$|Gq<))na%~UiCgBF#I84 z=UiinI{dR-S1qUS-=~M=I=^aMURGAftOtGL?+^!%N39{;=n0!XyGhtn;@(!8TQ@}RCVyBYa)j;9Y(G)-XTBBBM)W~~Q z1$%?O`=Zg1cXL$GxF~R=||V) zzkK=SvGr>;kI$)w zs0Eanu4XEe{|o^geKbT z4?rz~)u|^Ol7}Ob?n6H*SdBawp=yiuyCMf)#bPnO>MGqG91;?+GU~QD<(@nxL8$#| zo`WJXJ80-5367(}Z_7Q@9^Cx=J{p>hi~++sYmy}P?b6f|*t6%_xa{R9otH5~mb5IO z)x!#|uh1NMgbmvChP>(#pJPswx16lqE|0|r&%Kgr0b~@1Dl6=$(|+s_$s?ny{WeO5 zsK2=L{>u~I-0Q)%T^H9$=Q_3~pO&8xU62CYA0Do$;~U5-G=|br)T3_KDx-)pTe`~) zZ1f)tDyUvYSyL=eDQ0CS?L}%P1CfnBBvq*<3!O#y^dN93!6lmmjNwRkM+$X3-T8?GD6>Y4I>;JZm9BfUc=)99BW|OKbK#S0?PC&3pONt23v?R9`8cm){Gz!myk?t2Hp^$%vlaq zNqEROND5;0^UXNDQul1GMY&!{)FaIdx;yJyRwOY@i_V|&z88CjSYE)Gyn&gNXN%z( zRuC)~9(F>9mJn5kj)D!b4u+2ioi@~6EHU*+DTLu0w@ha81Jx*2uDyd&g*S87^gG5^ zU!4PpMZ$SNsGVwD!LaG&laNO#Q-${#<YjH70JcM|b3P#>uZEwxHQHBI-|}cR}G`8YqCe5~e$Yg?6BK z&3-nHjv3R(`o4ULanN&iUgU@>Lj5H)nhhbw#PsxqzG;Km7sneX4Av=!@+!Pp@6NhGj0t`$}}=Dk=?&hL+hmzX!DxhT>=S7R$Feb zzR`4t;>d9S2^EDF1zkMQczPd*)2Vv~x&)#S1;kbKV+JuK19hq>1-?mbf3ZT-T}(7r4%wX})vUOo!F6d|H~!wsAG5Pw zXqJO6ffxZ9{;P@@g_6i_t~wUqJQr=dQ$Sv2jW%|las&iSf1OKTD`a=%KX0XHKLp^#!M8J_V0cF+lBI$Xs;dX{Uip& zK>DJ5D*iE!x~4{P36J!~Lzg2iQ9esnT(3u*$Jk~VkspO8a?KG($kITdagG$bZ#HDO zLNlRcHjhjzVq~`HPfck~PxcT~)qj@d0hoHA)E5lf`rns=zKZqP$6v}@&t6`fw6%Y( ztOC&mG3r^jpW&REVAwJboq0`VRI?wA&*&Y$gLa%$WpaP+8uDyRynTEcXAY*^vYseH zYY!H4g7|TP_(Y!zxe81aRs}s~wu?#wqa!-EAfa;YH%cN#Q@BWiodobNjpYID>WTZ4 zSbgHnbD9P%f}e%1u*!y3u&YEJ4tpqSJpKLGQLo#2AJX41L8rt^VEH2w6L$xkEne0p zW)eFnqn>Y|&_G}&Pe$~y_}Q27>|(c)ly@FV+`nU9Lwh_J<=Gdo7li`^HH49B6|{}` z04yY}#4O6yE93PdEi@d==826`eih@fL$e z(Aa=g5v<+@(il=Q?lFaXmFA5i}~?F({1*cL%z=mezOJ|_i2j#l&J z*yFjQD8)RHSFsib7%=-#8LrMOn5<%fn4gm>?4Bf=BND9uSm$Ceu021{ytz_0#Wm(L z$a8?N@S-&oX!rm|fvi%BPiwhkEO*2>{hH58&ofj#dgIqd$VztlpH9{wNeN(+8jx)w z4CGbm6JhGXfPKk6$xBuZP-MZ}8}0DH!*QUmM-I`usIc~@!7$G8+}*=g6i&_cg{AVE z?_*q}V`9{kRg0YMaXJJm>U%rNlj1})XHEHPO|aik8A|etW-)KucB*k7KbWOA@S71C zXMRBeIVv=(yl&s-I&$Pu-N7AeS|*6oGmWY%+48fpXz$e2l+&MspK56+==IYKm_xsS z(=|!)evUK}7B;rxq?I{IcVt9Fj+U$Tn#K6I2*-BWEJr2EDjhXdRX05S04Z(sPk9&j zSL5GG(Bm!?SsEKtf>xKDQ)NZt+E#Uh_EkgCbf>}7b*lDUuLn;<9UOE@a$7ix4m2Rb zT2bkS;JQ(bHauFE;>#Iz6o%9b5v+IdWSxgjbRJ}5Sn6dklkoDg8F0{*c zU~|_ycg_a>FyH4m%5VHw4)yHZEuElVQdSn%I1Zq_q@{%w9c`-ZFSK@3UzdXi-?z1e z>S%Qbq@aMv`MtENub(W*?<8^qYD2@o&Rk12Ils+oq6-f+5#MK_pLqMLc|jY&CRTBMFUWRy&FQe(N^!hF;phb#Y0^RC#$2c4YFgSx zC$BN=d_NF3d!Tab;VV6|Za;w#gtztB?n1LBjczRHJ8F;0sj0{^V3%``GRpEA%kdhk z+V8HU1FlekgG#{|UpNc&P>yArO8hw+s8yLEy8;e+Pwo>mRz$|4udh!rA?J{FB&p@| zifA-qJUTJ=BWWiAIeIM|g_ydp=t;-kJaF#3mEAyBAnj(pc*wdmA+P}zP8N)9X`&+u zO86oQljzdlLdPK6&L9?SHVKg>K@v0GhzwspEBVh#gZY@G@l;k!Oni|h0W;Y4%kT&Q zj(?Lwog252V)A-F9zULis{HG7dlkFjQ6t}NP=)_(ksb%0P$3C1RwB^G&Vy>GSfL=0 z4O^J%Sf;U+WqPzL{Y+sKtC#tBFn92E1)M-6)ChLT+L60Vw=O{t4#x_w4ti%O9TX>y z@lDA4y$XH(v%1gkRqVQuk~S4}JX(#7>iSpTL%gsa-gRcg4Ja3T0@wpDM>2YJU27K> zwa;v;~#?*i!AU&+2wJ@@k(hMC{HZrxP7{F=6Wxk?W1f8v_HAO?{7x|+rW zu4;|sZ`@v9HkSBB#@qRps^8`LLzGw~_H8?+u=;1HhsTlN#~B_T@A33rO-WC-!n3j} zDjOZj8AvJMD{_aTX3Dt|5LZBCiV-p9570gV*h^7$fcI3y;S%AB_I7qGjy_klh$v*) z^^Ecv+OO8&loMeWmw?(XJ@&%Ia8$~HeE|8re4@DaNR@9tG9y}et?@pB5! zS#$a3U3k?W^o7i2U^TgVvd&HJOe7z6kYn+D$jGP>8myT>q1lF2h^zsjK@qtq2W(oY6g@kV+Oh)6SLiFIOU*>GKA(v`8nD*!puuhj@XW zTz!*?i~V82!8|=GEW&EghT`!ItbkDJz|J6z=#$c)X|}n%>DZdh{RSdQMx1avn>M0` zQBm79PC$8l1ln$I%r%HyB&MYX;FOlYo4aOfne2`7%t4N%DsyEF&{8G@m>u6)P>WZkJMa?ls%Hv}l z`80gFo;bcLWgLxEzvaB{%gDzKWkM=hp$YNv6X`vvoNE_juYU_FRvuHWJM_BbgbU@b zX?JM#0$+VV1;GLF5tEI4M(JRL6JTlUb218Du5;&zoF0-KgoNw@rc!wo1k`@EE2pDL zDB6JEAy%_Hyk|4++_}>}?l|16I68+rVc^nrX0!_48)aLsTNdk4Ms<`IfXDkZAFtBklHL_?Pw{h^PwC;JG*cQvz%lgv2$IutWCc>T3>FV>w9t zvmCq;l@m`RBHIpDkjc%Cg4}2-R($2xgXdRI2&{VY_W#2B~{oOVQ4#t-Kf<6_wGpVvK=Z zm{Zfq@7}%jHiu}XqSp;Z>eaJdPwa^4g3IH=dnzFpieNu!$Qa~}jADDPt6p0#-BvVR zZoq2>CrdbG3dK@gK;Zk;V23zRr5?+60k;bysne%^KC=%1=ELb87S)2ZchYuagG!3s z5P}TCd!Wj#>4h!-xB;v)j3o<^)p4Uy|O6SRk6tP*G|9sYaMU)NtlHfkZum z#(dRJ=w#*Ftq~$IBi|S0oidEp3K3)!y`Lx;xOLz;bO$fLrLz+EQw9kNH}@e zbT}PNSVSd-K42GciGW6)T+|0uOG4};W~VWGA+Y@kVxw(!8hz!bhm*EWq$|lK%yI&9LwYo)TuBD?NCIdEjH@H z-Kpjr=Z>9N^br4M={2zj<*rcY^7H4aeL*7tdxg)8+N+-PVRX>Bbu3=ZJhqm4mQt$>*Cwu zZeq^9NuQ&<1cB*!FG(<1?ugYM$8u8$>^;0#NxNxGG~!ju5{zAot2;O=QRP=olA|dd}xHzK_X5{2r>p? zQe53zJ(1AE^b4C0~eN+0VB6 zA^$Ou+o&?ryC5 zQ-1*Z4{Rf;yhO~r^&MNQ1sgd~ts+S%h}ntwy3G{e=L3SWBdO9^3s`cb;Wkl7t3X9c zq8BE+?ZI*Bt_j}YxlVlEji(qTtbW=m_esYV2rMC_kLNc@(wPG;*5|tCOy=?3YYnRk z4BkJ?hYn)Lrt>JX-60#Hd$ClFJC1C$`--hiO+mtQpav@4H^Ib8?vZc6N)1=(%dErY za#7PFRhyi?HSW+)tF>Qa*(hQea$I~%x!dIM9Uzfr59{CyD0JH5C>6>5`cK?&O<e06g4T79miwtC<+%Eh~= zbOPGKg^a0pEkLX3|MJR4ky-w|d;Nah=zBn2txy$QQ|IqM%8$Y4NZpMrWO{)`?cuc?!gm_qc??V6|6<)}!!6w+-TK&PfF?Jl7~ z`4tVc;w1KwGFVU)jBgnsepk7LNP@z3MIDBl?{>WSZZH08Lb~zx2pn}}Oo+l@7B9qt z?g07%?>E!Fa(|@9wtjuw!HGqC+~M2M@2ThQ*o5Ser41Nl3wIy#KfFhWbfB`Usct3jpiXgih5-~=2o#? zQGQ0OE_l{?7GP0VFYiDZLzKHY6-aLmqfEqTo_dJ>8h>H$mczseFvN69KhAyY`-Wa2-mi*x1;55ER7D@j$fS zPkczXJG8= zHNSx^O)HHZ$eA?zdRV@oQW2`IgG*yGiv%=YraF*}HFn_So&S1oU)cKJq{g`M>sli_ zEv?=^4F=&4gMG*0BDZ)~p@afbp(32bvRSpH!8&RTcOa1@!O`JLW?uk5TbEdL?AnBz zM*mWzW7n4)zcZPpUC%jXP9&o}dAvC(7qA$~@8aT$Q8IQ#WHPaVv9Yn)n$TJ>(&e5z z4fIBQacDa+NNbK2V-5nsLax}`lh99vsokrk0Uaq0szT-i`9&?y^~LFn&~Xeuv&uw5 z-s$JnczVKLiDqiu(w0Xm+r%fcsDKK9TCre53Ym|S6l*Z8B_BR8U>wg@h;-sL5&~AB zi0Ag#!O#wDjcKhh(7Ae}GT#c>4N+40ZyDYIjf;BeYSpp(({RFJBM{Njazf4`vKoXy z1OWDBL_e5ZA#~iyo{bg&v*8#wvBnxA=u9`2uML@0rk}7KA`M!#w{EhhgpwqI0L-%J zN7Ad5ZZSeRAOd|0If^JvFN9J?fPz-9StCh8k|7@o+&c=)6^kdZ70B~p82El*`D^Vu z4YCO)&S-qQc?=L!m^wiP<)`}OJ7R*h?Njho`G!mxPGRBTtJmdTM&m&|A=VVSfSb+8 z!I7%<6!a#sPvi9bU}otNtDelr!ou@jPs)ykvWjvE0|TVk55N))B!Lt2QIx_VU?RaH zfc?0sIC0qYf(_vsy`#%80(la0G&HYQh(iYkPS+D$%+${_{Hk_-z^sWGUvU;^Hu6mJ z^fkhbOyFvae^WI*ZC8jolhg=|DH3T-?V=f5SyNCSzj_Hp(A$b&bAxJp&mQk;8Vqi5)3<_ zAPi>0maX*2B>+Fknzp}ib3nmZ!hCg~KV<*Tv)>ijr*Iicnwm}o%EhYEkU zdtt~#>sjmb{Z%3HLIm>vDG2^XCXmJrA=l@jRJTZ_PJH?_*1G$3#E}_QMflReA~q0b z>3H`xbk^?xpB?_d3dCNC&p7S)vyc7xCCoiff`Ul!pT@#(Sh+}&yYfhQSlFAEmfWgw z1UgWnAZiU3LG#qYDwvhPgIMyKvmv4ptwtXYD@;=KU za-b8ac2{v~yz@jHSRivgk_&qJ`)?yNIQjQyJ;VaxU3TnfUU3}IltS@#;G?!uHo(@v zU9^aMLS$MBrj|t8dh+STax&bvFIquG<$Bx5d*x6_s}7>r)?z`Fc5H|Tq)@!PBzAgY z7H@Rr`$r*Ithc}z3F_7h3<1z*QnYH|Xlb;8yMs8|1)&V{-SloB$y7Jhv8u=a0iE`9 zG}(lY@!Y0}ADE~YaV`P{t}zY_44l9$!DwLn*KmW+TUy=&GYlsr9eUAH+!e)7zgQt4 z3E&T2(LsL_aR7+4q2C~&OEPcCxEc^(IB!Y;l{0a0>^9HUraFSaENmkt`+YP7O=~t{ zgWU$_WylL1B^4F9GiNs9uu`yH^dX}Igtd-fb8bC+3ZVD(e)Zozsd2@I!M|N?`Z`5}8QA0i1_xz%2n2|MMRBX7CkZBqJ66gs3gaut%A8(MSaT zxxm<87(|O1fliJrsXb)hK%1qw7XD8@OoJd^JS-w&uP3q(Y=0y>7p+}?v(FMZRo)%@ zSM)2kJz|d6-w8|*_B&ZHNnh~(xV_-IxIpZoz{hQ8N;_Bd5hPtN47D|r*!kzNy-j>L z)UC0ojFN)}_Y-jwNro*n{T|plNmeB(s9~-z*k%u>*y-~V0thco z@@07!Fu8(^e1LPw15IGlMqE3xkN53f;YM7s$h(n5nG6Fx9b#a)fQAAvAku1L-FtLu zHH@e}xbo*wGpk||{gaJ##NoR)WKzi|=j&=~D{wi(f&$%b&vK-8YtcHq#8x2~83*M2 z@YMnOWaIEN_=al`3)B$it#^JrogUAudIK$tVEnyu$cPTNyO3~TBM0e#D{=pX%xX8Q zyIG<<1dx3n)hqd`I1Q2zKSttWKytzVOpEXH)o$NIcI?fyVM4~MeyGugFhWl22_Btn z;x)!FjQC+%9a(m6|Kxe8W#}J+!e%p`$iq-=4tjWA9jM`At)r+~@00v`2r@P}^U3HR zvM1o+BHtaW5-l)pqvS5zq-gtp06&uahNr)3PlkH(djShR5^*hx&=BiT`81Uqc*>E& z!b&1g+$N8Iz~&nZ?_ZK;>IOiUB&Zwj@CATg{H*J7r-3|{Y&7>PW_6Zol;0*L1u8}3I`Mfz`um7AYbKgJx~4)S~rX*^JF_SCMbNSshcIJ(L9miPkz zP&v3*s?H#Mbo82TL`LNQ5>b$Nuk&VRH0aKNCec7wFN?wtYgyLnQ`%Y!juX)x;p;bT zQnWDBVMR$+3Zo{-FnM-I4DYJJ$WL^kG6=*W2NhHvaXC3GDQ^XR!ANQ;1YPSHlUNu^|n1(+_%Pf8g~i=Y(72+N?|eLFBY2)8u;++9y- z#mTi;Gn=vf0xKT^a6v>rI!*TlsTwCT_c8+?D*-uG*^5ox7w4pnEsN&iFVlBHXpz*3 zcpcm939Iq$7p6CxXfaT)8%eqPop0Y0f?FAt1WPD^+6CP7iBQB3G z|CVUXhu{{oqDVS4-WE;-d0=mbMn;ogmmsJ=G3&%Plrd(Kw6y=_*TF#=eEG?Om$-Xi z6L>#!vFMwS)C@mAQx$3jggV08OU5h=h`@GNX(mB|A#V?Yqf<_TPU}8QV|D3LJuDdr zDvU+r4abcXOmASeZ^QQ$I8Fz~8@b4)58D#Xjggbbwx2fW61+B0msDIo$t5TxL_kKT zPxeWj4V@hwhcl>xi#?M%pV70D0xTXcgnIl-^W9yD&qr6b{=9Z0!BC0#1CaVPR^$CJ z+=3gY`rL%ZJri?UY#&^+vB`?QSq9%@9LmE!8w~oH2e)6@i#9v+=JE})*&fxBl%zLL z-hz!o89L!e7FATk@?gyGzKFt(8q|j%UD3RQsnMv_VJAI~a2TvUFVGO%VW~x#*mq%Q z%Q0uW1kDxpAF!XQVkC3d)zy_KWCS5SmK==VZ`r!1maVT&{HJnHC!fNK^p-RLz2M&6 za3G(@cR>{MgLse6yEnopIxd=j*n*7e@`Y?=;!!U?f`W=l1*$)cd%2H#eMkPeb>Be2 z8$HnQM9T%K^wSZm!V^nUG&7ji_+EH-GfvEyT%6Q868oVZCCpUU>9MuROjbZLc-`?laRmt%3v)GI~ijb+j z)7(^u$@N9~VY_u1Y(HViptULmQ)UCC4t<;an#+UUF+)T+6|@_!Z={SpNzXfpb4Ig69sx8gtDIj zb_L8Q+rhx_dd&$md_0w>DZd)LtFFGMA=FhL5ZkGuKroBDmshLHVo_o-e{mgWd)4cX z^Au6|D}l3>48&t@jT_)z8}<>j1pw~p3b#{HjmE9Y-_7SuAwqY$W_Xl>%$7olBvg&r zL=&|Fle&7Mriuu?#pin{S2$|aVrTr(Air&m zc!tLfoF61b=$=KNw^c34U}b=Bl!dK;_klk!coboDCJ`Q zF_R12Q`%`t))4IRNZC`&Ss1}w$7+f%5Ga;{7-{?bKwvRGgNlac-jU*9(ygGX9{eHY zz>@j~WSp48cTP>`^(dGgVtf|tIz-lsPGaR)k}Wwbpl`hUdhIs&<8qm6hI)G`!GAZj z1*}A*91yXD^t>2OMq7#TKCcL5D3xMIZa~CK!$4kc?v4ead_$xMqNv2|H{E7?mXB(7 z``FcILo369Fs{)ZowC>9|AV4541|i|gyCM0_d$LmGjpk)UTJNu%I->GOkxOJE0aJ1 z{nnnrF6Ni(EJjiJ>FC0D`2_U<%8pTR1+d)JS}Kjs?X-_K&s)!ov(&n5TH6B~&UP%DqRYAO78#!Z_lQw_(o4P1Bh_@xX$Od#xiONy#9 znk53rjMolB`g;GK(o*aJX`X{BSBq3LuF`pM=s=K)CL-CrAq1VdDc0rt2 z;a*EkwI9z;t)j4c$|h zZz%d0;90C(i&GMjs2gHyenb0yv7Bv>HV{xu4^pE2iXq??SWe;nYy!GG7Fnw)h~5KA zp9|gR-j$TBz~0d-tflSn5?$wkYKyphN~~}i(q1=x1j6+O@g_(8PBkVm_oxt}nG5CT zee<8+p%}+&U}6Y1-$*M zbtf?&GQ6q03B^XU4{WPv z`6~A9H2q8H&_riu5dT*jb8Ohh`< zEOKTD(=+`xi+bRB8Ft>Sj7z%~TDuK}9@UUUe;FV5hk0H>e_aNdaHO+wDZvMlU65qB zejM~qjT9ixhpgNzI4bC{2S2k>_PVeh4fjIe_Lb!u$xypFqn(g-g(t_CD7g zBjZTEm6D(_02_EC7_k2$(B+$~rluB>N!*akQKc)PH81h!tP;gpMRn-VA+^n9zzWGO zMRNG6$UJ^jCyW^9jG+VOCda5|_+EvY_Th{=04^KSX(?JXRV8NDCOx}L8suPZ$1xT6OFE*U?ddkH2UiEnvDi z5^nZL4n_!HWCn0F|8)V?N4Scv-Oq&uo0N~OAl}t>bFb`YRRuQh31|n&emc#$`f_co z;jBYo*BHSCFvdTM4+&v)80%R0I%N(m|KmAlP4c(^C@({j33=|++KlYEpPkKHi!;U} z%@R4eSl~tKvLb?ls=~)&J#ZE(hY3nziITBkC`N=3|C>gY1qAy_YYa9+PtY9a7(E|h z)5TIXSo1J2^~+&0s^yhETsIf)VWE;FKOoEW-0xwBUrV%rHtpB;A*XFKX_tU?%cg2| zzIMI-3zaKMU?#gRxWEkI((7(pueTL{lQP}4G$cm_jmwhUv#7_S8;t)yW7&Wll7m<#5i z>kB92Lpdu|boHV(rI*y{QFin%UK(NF^?CFb$u&aG7}Fl7928ar-NXJu5xny%VvcF| z=cN^_=+J%iq@1a>8yV7cQ($cfOpo$`J!MOG36h3F&!_v|Y8`wPbsS z0Eo1s>E{9AzgOa~RuW?fZSVF=KcSB*DJ^A4979Nqd6@XQxt#t)Ch=)ssd2(CU6_(UrD9 zY$3vS>pGaHbM~yIeI!r=!c8H5n)Bd6tze(rH+lD-;&PCXBs-;pk3oP#n_>Sbj2+Wu zVMC8fS#<=OM7|KEw4Wjyh~Np1Qs>__Oe3!K1`H2>v}5|=gNF}W^ESrreyNupdgCpp zT~qGIoj$Ii*coQWI*CrBaB(=*`KKli_+md1x^WBy#b2 zPR?7LIAk>1Td&i1W%e6x@J7ezjba@6zY2*r$SwzcKlu=+tm=LI{I=RAsxWL5-%Rv; zI9O%Qt-@wcU=N$I4$+1&Ny@pY%hBvfQ<0wKbvKu;VhRVDWuQApTqU?g;sMR@7(er$ zSalc9d!%XOe0-|;gZ3mK@*bczrBE(Y*Ekl(FucuTYpbSC#6ymF-{I++6jeTQCc!f+ z%^S2r@H_Pr_bRB=f%auZTVlRBRpg}upuNy#8CM4GIO5+z&O6*O7tjKyrW5LHig3Q+ zG2hufw|-*OG#V-`V&&G=zP!9wx~|$4{Uf{oHvQ|PBCfaNweg5IS@fC$Ue%g=EO_2S zi;62OKdETxsCD8#oPt<;WTK*dyZ2@ej(ebMkJ(p6z0fTBxjwzvLJnKRUJoJ6An}a6 z24MLvvGyVPZl9Af@UPok&?;aE0+@xCv&DoP=K>6jCN0XF8p!wJix8NeTIt3WS zsP^Qx>6Zb^QayY29 zqLVY|l=#A`+}zxGNQ4paDC0AK7I+~j5-IfE`cD0Et5@u(L6}_v3FSmOd{700OPvBJj|Ok;v05EDt;NSeEkXMUqY|tOe^3L= zxPlRi2tn0Kq`BDhxh@n*rad@Ik}@*h0e!L8?cwRYhiP8t&vSt(7#;KVHf zT=5h=j|vWw!iB4A z=TnXi2q_k1(i5tNA5Bq98i`8v>d7oX>_0*ofU=FGV?bd4EnzqwbR_ZBgA@Y)Z~jZ4 ze)Z}%089X&PS*rcY`tklFS9?K{^nv+6e4MmDalu|JdUP`c*lq^k8jT&89luSg@9QD zPm{uf(99qP;42J09{eT82GEETY#86l<4_KVI;PM?%iNHT;G1=Y^?=AtL7o#ma$2A} z3oR9d3gos0hlUyhoW+z(R<8DCHq20~s#1d6d?T`JS*BexH2AZiULrq*g1qjTo!EoG z4yXe>Aw46$jP<cvUXsDL?UQ~=R54u~p!@WSZ z+4HsmgTPito;JYhl2_NGRh$1*cf;%EuikAylwAk(^3;=?os1`p@vOR1?Z+4#5+9Bv z5ye5@5>z1|I7^{ORs}B$TX~Vz!9#t8dgsr_$hj_}sob-m#)lk>k`Z1!n7TWesxIs= z;V>gMDV3x|cOmPBP2$W2UAL_^gx?34kq43#WJrq zGuj_kZ=u`hEbT4BU4qX~5>800FmAT)?+<>Mc7j5c7=$2k;9e{Q)K(6#O7+}1Um%5a z;w>ao4QCkzxpmGn779FpiS2^RK5sd{0XGnFV3ZNgw0Cfbg$@C83bFj9ky3*Otl2^Y z`C9dzoeXznR^r3Jtj@v<%*x8}5l5 zIur-k68aL%|Byr&D#8*lFNF$l)cby0uwj_oNr!}L6xgl1vQBJk|NNO`#FG?j5s@!= z0L?F6lyr1F)MqOSQkmp8gURRS;koc$^CpM4^L6s1-9pnw9%wQ_16eqn0SaVX2htmW zI+8ha5ZATLpAWlr@zN#2Lm@EI29p)Y>w{_>8XBUQ7^U<_tA)c6*cTwJb(lFpQlVA( zL+V`IVoD%Gr3bYnjoXBDK;p1uCs1~7?rl&u224is;Me}=w)zlG0@;h6~Gra%RNG6USKeug}~M0Kx? zHMR#>)ICW%|Kde#QPGxemnjA~7JgO~VyjP2PbY9Mcm*aFmJ6A~bpXH1;LR{VaYM3t zG5<~4+Ik=ItiB+^6MZeg^x;+&QaJis5@D*SbI7eCubz{09A1LNM52y{9hlIU!Ad*u zkTP!Gd@1;Y?e7*t_6&3o97x-d2PutZg;b(wtyHd{N-zv9bDgu-A`W0vSn;FKd3nhd z@*t8!6E_QR`|Z9PKj;GDoU_{7by+rSn00l0k((Qnmd1dnRaavo!7f9B90}$|@pk`7 zj}!hrDF|VwF~59y?E1FwM~_M?DyZ=YZp2JmMD9#>_!@hbqhKQk6d{CPzT5;K3E|-} zqLeT=q595ipyorn&|u+NsoK`wP7;racJuY?tw@3x>sl)9TMf4gCof$Q0hRfeGxu2&!6jnR&H!3#_7CNenDVb0xq*^GQ6+ze6` zVAal}K&WqTr_I&%MgEJOqhlGGA{=|jEdY7y|C9{jh(l!XwQ2JweK3d4z})OgNSH7 z%HhC`Rt+k(-*1!uD_hZ)w;9y9$W)j8g@m^lBle>{b zJ6m*+LsR+kPP`3%6*btEZlgfFcd0C~#|}HVDYur&dlxbNreM&STc@bd;AE8yY1 zw?Sb4abcOd3MVn{56LYSzrL)yS)YIG)KN}$_OKomnRrh`T@oc{?<}tI#KZ)n&_D0S z&CZWP0FyamZGNH@V2b0ypEs(UI<*dw{K+=gp#~sxh}amh9>@%3)t`z%ymwjFH1xz) z4&tLP!5azqJ(Q`t8IdMsb>KMM&< zNtGn*OV))U^q9!f{(KTk=-H}SE@?)>vNz-Z(5w@V4iWERF(NI=Y*gAIM!zd-s?bwgl=6 zo!HCB#Bh9OW=55d(r{=IuKL?A<4dIvXmEZ0|{Kw;vp&fPbmbY?~JwG?DwM9YBv zMY9+h6?ssvkUA&+5W(Szf~H~diHuCQ8RllA6``i+L3x6Q+X$!|0TSS~%Nfqb7K!~> z9yZD75xhO|B&3Zg3J1H)elo*2h+icKNkAB&l=CZNxjd&FWFC!t|Na($`5GMPDAIQ7 z6YVdlJV79{J$e7b6^$exKR<*r$>L=@VsBK{d|biEG;@f|dc#BtT3q(ShYug$8yc6I zN{6k<+}ylAr4FMxe@%uKH(!na`(S^BB9jdllaOGL7vPA9(MnZ2cMkfq1kETQ27}z2 zutvX~glx`$*#p1_@2Mvw|Dpu5mSAK=%D5*yNhr)ve=G)Wf(iB(j%af9qKN3WS^DKv zG6x5qv8@=>-KV$;=nlO7{b?x3R*v|pk)JM8Gc#!VXz&t!woV4QGdO%)W?Hl{3SI_O z)6#5SaSW<}`XYc6m3mjRYJ0F-ZBn)KdeJV_*N!%^M*O%>_&U%JOYP1J$!{>Km)oK$=;0>P*RE1SnSBo zBi69w;vySyV+UutIQo;d<2EQ&cTiJ2%y(NACH$f8h(W20BkstIw9NFm?zEo0!AQM< z!6{ljnQTsJ#)3GSP>+Keh_~M+Bf}&9XY+mWVuMnGdWP#>o#(5d#d97F@?Jcog^iH; z6VMZU)PHUeHCa|f6Bs}?!23|w(16!IGKWAL4;0seFC)DdS#xz6a&^UoX!pW-LWH>x7N|rR) zGs$CQ3a=4z!w>v@;p>Bujs#jKA1B@sm-DdeqHs-3&HXL3OiY^?$@9K5w3;O1!YaZc z#=^aSB@hy(yM_?$;1~o6lJLLRmf;Wi3Q^(w@9~?~-&M&Mv4fKq^Ql&0TmSqqhLP!8 zr}fRBXK}hMy94g{^EWBKkOK%68fo$Yg8Sl~H?3LUao2nLJ&x}vm&rBYc2*{9SbV=i zUK0D;Y6NGK&Mp%<>E!#$$ixSMT3}&e0q)oO=Y2Fm>X6=_lqG_=EDncpqH#v#ZD%%x zW#;|+_s0P@k@w$j^rwzMzk_`_2HKY5rI`%hEo=Wd0T{T@N)c2BQdb7h4;*5faTVDw zU<8p5n%VQf%8_}&G%AkTnjoe)xZEL?0y=ZoVIOzwJG9V0FoMOHco;efnSu@-QW+T( zkkBg#v=@1MC*AyW0f4o=L#Hw^esh@v^3961cf9W_H-7&7+44Ilj@Tdq>O<1G?-D|r zZi81KECpb9bS;9%?fzMm!eJ*t;lntx@6sTMEM%&{<;8+7^g_P`KK1@Ea47_z{i}UK z!-R8>YR=fy)C(FhBXBunW5hDUjJ|zRZ)Id2T{Jg8{!j4WT@Y%qxH_nob!Tue-G;w* z`<^}Y_`=HdxFV|#Tg%74M7sfcC^ju^^tKhs0miLc{cvDIe%wjXz|?TO1ocC#nQCea znR5(wso|fp6vanLSJzh5>Gn)hIEi!e^5Wv+C=qgphuu?|mngMJqx$8` z3RK%@=Gn#UxMR09H#E2}E;={2wZ&oE9?wogGX~J^fdbEi$_qHli0&1PCK2rOvCtad z!5+X(s-^+b;R5iRoU}#1Dw(F$i+%^0FK$vXZm6Rm{YJOC&iIa!%x@O5p8s#Zk__f0 zDE{yW?UGCs6sz3?>y~1Cx%>q%pKl!h;lIDagz_o>`x^?z^H-3`_@7^#B|U5Z^Y0WC z$3056{O@;et31X2_dAL;)QBs4`2Wls{u5T&QGBA= zm4ap>kDL0TQ@PdG=AQZun2bBUZIzYB+0)LCAJa5Hx=LKI$qdDcX@uYXngSZ5@nYQ{lBk}IUV)CFJBH7<-f0OyNCO~ zFT7RBn}6Sx7l!|zTXt6P-FK?;)`+D6HJ4z@8& zp%|fzYCyz}QbHh(!2ACGgW$;I>siQO>zN<9c<}Lu*c1PJfSg9)fs??yaI*G6kdfRr za&z=MKwwlF0=c>ZfCzqB4z46WY)AR`@Zx3A1}>^3N+j?~0}S^LdUJ%p(*Y`FXJ8 zO?~c0<$N#wJ(mc(FD6K&CiKqoEd1z|Pie7$bG*J$kNg!k6_dX=qWCCIz8UADA@VR(qhC!}@SK7U28~MTL(|_;Dn|*-CWVL%%Yo@jYSNBUjpPQSzigQ5t@dv5NKhMvR z+kfvoj}uUFTvDI(5+?q|4Rbj15X1Z|)8(IcuGhBv=Xo=yLH3iZb~F_}8ZfNK81S<+ zev^ip8lMAIX`t=P2rvy#8_fHl7hIa#P<5muL;&YjKVaZ*rw>jSZ*tRozE$x{NO3%*+ zCcTX=&)Kv+KFG9$KSub9fKWs$_tX4Xwa2>qtG#N>n_7*$PT1^?`O+jTu;X;Ye*b*o znpKav*-!11*}A+>_vd4ut~n>S#__@aFR#+OMS55Vj~wdyUG(Q|@jpGS{Z|fO$oq`S zGXb4`N_x5qNFW|Qx7vTb{{@` z24Em^Vj_qE$=bTDy9@C*4PxVk+wYann5}TSe%%r^2~_xDF^dBOrlAM^?)*Kb<^SEb zqE7)JPR+^DfId0_y<`ezNF)wma<>%x*NtF{OtL?*Y}{z>ET^Lrj)9ui^X9H49#pyz zs(e{M-g7gAw#wu7FJTB7ff`5~KLvQZxwF$MW%>2bv8DrcMX2cZQ( zqB}D$!=j<2ppZX21H1}dMQUcID$EYT!JC+wW8pyqZEz7|FrGRteICv09G^au5Ca0``Fzux6&OeHZk#u zvl9Mz^3993JUDt%^~rQ47MS=zf0ex(4YY$1QUK<2tPfoP3}S6|mB9Dt+m1|~r~msg z^EI#h_e_{LT+o@0(y3@^aReXX>d#-e_GzH&0HtbxYC=V9`{5OyisPs0Ai5zH#IMU(!p6cQK`>`gvEB?D8-o!xx8wZ8dr_ovQN=tL|{DBoVCMF4R zA_pUX{Z3iK&VsO(uC8=cvKHVq5lcOHrWSh?V!N6~XjXK5xSThFg%cPL6vhHv^<}Y4 zgBO>=3B{RLW7~>yJqfL$bS`8Xjc{@tD@0B7=hrVsoBv&$F!%y?iHhm~-E@5@3Jr-) zT5GC4zE1(hn=W2jmrb+`xT(mvm{HWXx6i$F@G%x#fq3O-X#M=QNu&cPO)Vvi;DH{zxN1X9y#vENcPct<*`7DW^|qu z0NLa_cI+IAV%JC4LCizSGE@0w8Q*%Q<7yoiRps_6P&4*OLGiB{JBi`q*waanU)eDT znzweW{`=xfKM()62)OnZ>m<3)(A z7VXz*akQSwd`$-L!akq_eXVH?k4fKn`Sq5I`xi?bH7y{{hUiu+wCp{sDw1r=sjRH{*=Q z?@Qv1ckkZq=H;zWP2)kc*^$YMXB5b%m)Vj4gji&=0%eNsFdh#Pm<1K2jJ3g2VeQ<7 zgpJ^UfEf9$PH*ipviEGbxAn&Sd00D!x~`9FVq3>^KLZFO37a6)RwBoypt_wNa{mbt zZUS!qH=J}&7r~}a*GsQ+GT;683go@4&|2X2o~;l%&~)3<=T(T1kg%Z%Ja zsG*Q@(276X@!S3*cmpfvQ^3LP?d&$De5kH&f|}3dNZcW4hjo8v#Ms7FGlJQ|DusLzkRWZi1YI2gk~J3H9eWopF9B$d#0pg?bIv)79MC48JUFM6KRXfiibcZdX2zdq&MT~&Y4OF=?7%gdF2vs^3n|C7rDKRc>#4ui;Fu; zCc)gt29Ewi#Y80o}pOGew@-NIWx*O55(dq@eV}5X1j)sHivSr7PcQ`>2 zojqtckqtyp=bbeo>W9>jh zkFxnEB*u7YDYM)w&)wd{b9Z5eybU(RLvlCqPb=n>Hz$^UV#__%z-W zaVW78DH*EE9N1>cv_YgdH(wB{%NK8MKlkz;^~s1>R_3A>RjF3`s@Rmp+iHVz`t^JmW*ho|A663Z56=$hK9%?JpKv_R!h-n-)oT^Is*2Eo&K z{p>Gd48(PRIj!f=nVVyI_4B|)zneRsRXogd5X|1bUAsPqCfSTOtT=czR{TOxQK%K~ z=O4n&&w!J){S=Af#b{jhHVd7ewsz~xv9v?*A#PG}GUw$K!?Hi)W6PS%uyBs5Q^T()ESwxahkj@Tn* zh<@q16a2t{>ACxRHqE#F@NOKDh`k&qgkwjKB8lD@ToOt6L&8?lp|SzU-7xz#q$7P= zQ1E4z55G-qi#y1dhhGg150`?&C6AsA51Y7k62<$zRv;iFJnLn2c4`Pm|9Kp#tR^|7 zW^UXjHLD@;xo_{@i}17wffctWA)X!{M14_qoi=O8q6Gc~bJoyIRZ`NWp&KV`RB~(k z`9l+jD!DK?o5zgX5#d!an_GC-n-~25SZ#pKUEpXUwB$ml303r%2wP3BThW`GoH6rV zLrKYBco6Km_obzmzmCBncWbTrhP0}KWgb)87j9!CwlHIKxDlE%Z*pWOjv`4&^b71l zAg$$gXmw^?odTi{Y_EVDqyRiQkXIF@<^&_MwhcMb8fK+AL?x5EckjAtpct@d3ywWn zH)oIY7?|tI3yyiL_I*1$4PYS{71m2-rKPGINM%zoIT(X%lVh(?B&ZMpx`TP|-oHQk z!lpYS^FUs_JNQBE&;`Q1-@OxQp*L&ZC~P=4;0*TjkXov?E~uu&L8igd24+m_`gPw1 zXa|32=nj23#`EkWgw})&ae|J90sl%=`OWd>ttvdgfT^Y#-wNx>g)nPFVvcGNd^j!h z`Sv$2w7>svwll3ljC=O%$Q_@Upw6|scaJL9o5!qBZ}>8u&7?judB5vTqp{;ilN8N^ zXk$LA+BHl{it(y+w%5G}q^$|wp4}j1>@R_67Q7u~=|eVlpFf`Nf&w#A&|JYNRFz z1WPNp0UBCbAB#gmLq&;g{FM)nS!6>uAb>S$s5SJ$%?&Cnfu60{l7NW>f}vS+bfi$2 z#hoj>ucPClhQ>Q0VO$;(CU$Ye@eVFL$c;}LYM=druH`;n-Wn;#EeOUIVn>QLXgLoy z-1N=BxHuVfXB@{_k)dJO2)LpL`%EA<50D@@I(o>?y`kZT6;!Ou5xP8>H|Nhza?ib2VBr$842**p&d$ET%&@#BZ#unxy-OPj5FjoQu3*;pzpD9Lq9e@i0{J|z$jAJm673BW@a*{VRF!+VzSNg5vp=CAbwWGg)j|%$x!#k{Ts;CUVaks?^$4k&+R5%pmbU6x9DMv8g5IOGb>nj6??i~uu8Jn7VdQby&0f4jr@Zo&%K)k^TUN%VEF}G8YW^}OObD@S1PUpR@L|p~hk{}P}i;lalD|)|8!SXd` z8v^H!--wJfoSx{OR`e3*gKVHI#rgTy$4fxGGS4P^4Bf(G^xP20>wq(T^wQ=H8+-x5 zn5#1=A)5D&s3!QW8~YDtswSdj3`gqZdy^-0La)XZ2G9W}V3lvuVSpdjopozpFbr`%u0CafxgrDJHF@&U`{a8DpR&a)ieHPivZWc9$dAxy|aQPd5&Vt~0BdIeD^IK_u z%vJzbknHHdw@rid0Pjbm+!VXEiu~ovuBhDhD{ZsbEiIvI*SwQwrY&+_aTY1Dg&70U ztkKV;CFU(CMD?!TcykaPAd=au3t5gFkwALl+h7m4tT8|49JR?6WWFHy*2NU-dFmsk z@y)*Ei7-5h@NHbZajGKD$vFSxPMC=j@_kwYw{@uI3 zXj?f#pd<0sg&>Rqz==R4Y)hFW)EK1T`6Z>LI4PAl%AE%Z${7@s*IMT0@hvku=BDPT z;WaosoP~d)93;|o91u4@WOlcM{tZ;*l9-rN%QbNI&Wnm(QdJEE$*IQVp>-$#27pe% zfD15Z12qtRd;!`LjujUGiu@clnF=M;+TZ#4odny{(R!?9n`AVSihw&6M&mHl}FiIdT#f60i+2%NCsvu3{h4i(Hva%ilUXEbY5vS{t zx;mS$Kj0=^x^^uL9*k4ZoV}Y7BAZD^u#;0c)ftK!SO4_W`+R4K2TdK zw2nK{@ya5Q6We2f|(KRPHbqjBrj6>w9KbL|XJ5$Jfc9>-A*jP7eXSy*h+pjS$0|#1WCOwKzsO^(YOe zCV`#>(6Y>`uEVGkz8P`e0XF1MC|D#VB}GMOuH0N!wd zz6^H^yEk!Ac|d1=7IcTAJIhwDN%=Lm;~(y|!Fz_+Uj2FP*PR;#FVY08TlJd9-2b57 zil;PtRo^F?)_$ezkN(Sab~@DWm!=qD6}lNZrS}_*6f>>!{Jli$Kjd(lip^fN^VR(F z!OymT|M~Ll-$=Xvo(C-Oi-$YsVLtq{^UnXxU+k~t{oRFIfwGz%Nec0^TZygMljzb) z-Z>cbjotqzpsAYRW5X-@oC$T*??K(6Q&dxX`pvTWUjj ztw}+$m$%xdy6Do0F#h_el)vU7Mzn_Uj_usplW5$do%M55foSUPzvqvN_|f_A|DCTo z%+#zVrPd*4XHfvAG1hzmC@WB_Dgadp%j_u#2S_?XnUxI$Q3lDlFF6fcS?X?pi41WU zO7M#9A=7vU@X4={ku!p6fK7K}`GK|P2mM~KakqhtHIcF~eQfKx6aXNcO0if;8m&qM zaT$T1?O?w-5&ylV1Kqv|$dZHp_6Q8v>0fjZWqt&o3p}%j1n*T{6}(&sa^FTOlCA^& z%;3xm;V%or!FU%#b^p6Ez^%S7Y^df&MZjZwNCI zfwTE2Fh8**A28Mc^g1AZVl|?*$%J@Wv!9(ZORJY$e{MB7$~p|uKAhkE4Q2pr5|ltz z0KyxGVvt*hFpLe?m1$jYA|HMF^a&{BXuZ^kRpP^0qBk`ZfGnb(RCol94WgX`35Cv;`9RoAT2^WP7fanXrj;182gMo-Kp@Q+}vE~nFymWFMA6$2;YuG>76L+(f$Sw zU{qP$Kw@cuwjf>k`3%<#1hbHmlnGEkA{VfA2Il4Fqy;w0_kXaUl$3Gu(FeJ5W-=EF zzL;|57~#qaa51mM8{J&9X3d-KE~F{|wqJ{w`T++tK{rTHaJ8O){`v4Bc5F+wD|8#N0-cAm+u_DNLc&_wf^`sxoE@d_V7w7Rwpdx9@}vU| zPSJ!+6{B_@j%aqgy4u>J+;WItehLCdS!D{)q&`CL|9&42RwW^=s!u%+RHFdh4mUS9 zud%QOfco4Ju@Yjp9-ao|oDP>;Vwi9;BNhykvlc8*|AThuhg7j4?dnDzJ)h-EgD~Lw z0Q-t+`9Z=1BlbdtA<|y|?aB0wI27*ff;adWQ(-1=4D2tcZ!xxXV|zc7cm^E$tZ~d$ zMJRR6BXKZymNQskgfZqlTQWhvqW^;v@7~?JH%aMKC|;Kn+H}!da_Odqohwf)TYKV! z+&N+K{0+=U|K7TmS4*N^@p++?y|9$V8x=8CsnYM_`wC{pQ${-bOygrh_*p)b-Ae8o z97|-U=A(s=7rs>ah&xEr)b8g3Bn++jjvwE;hlz} zrj@V&nE$B4^6&>JgciAZm@GRz3V7q}Tcoe)ftUSF1g23P85P(u234)6C$}dcrZ8c% zN!euzw3SA#16!bLxfVoY`R;j7HFXnqmF4I`Y6=p}T-bcx!fqfj6s|%uCc- zmv8fr9M(@P**4)rG~5}NKY(cIeV`oQs*y8K6w-?FkO42-^AUI8Oi8zo>7LhQcA^cg z&L%&UDn{bWJ&`?|-8Hqe*5FLP3O$y|IS9S)oHW|vnH0FdSVFb7zQ8ZV2d7DBv@Tyw*N6#@wU`bJ*J`o1aZ=m$dbtr}b7 z7swx-I&tDNOW#{$wZz30*!;}Q$cXf2N6A!AnHU}Uf4jv~VmZE%2rgIZ!7=R~Ub?fJ z+epmt0l7~HfQSgGLTTv5P$CYs-$q~tQzjKHHvL;OU`Fp5anV{-TO+y-$;|u6Hy?Bw z)~=3a{b>a%XqOBs)<5logKao0N*>#=D=dw5#}Lqp>WoQ#>DW3Zhk5mRn9%|;F(zEuuQ4tl;6!?p|Rn8fZPdwxz}FKR%nZZMgN zeA2gI%%)GXTub~Ll$bTh@>u;T3QTnxZWFEC80=5?U_Q#XcNlRMgX@Z2A|DKXIF!^A zUYKGJaF_}=Xvz9^m3%IUjM>ZMOqz`@ZT%I?n+q!R7YqOryF`@3P;~`KUNeQ=uCA`{ z*JZopFIZINae~T5SbJ7sc~hE<0j9XJrE%;xTkMY4uf6h6(MxvkA))p?th&A~cU^>; zBJ4wQt=1mWIkeSdxBU5Y;b&K>-#@Ec!hR%RhW0MEl}R=%5Z zT^AMre)VWRnn?V8%MEOE^B;kK7EwRNS1zKMN-gG;zF15m{Xh9?arQzZe7Pro4O;i| zjvt#?ai)TwBdh4{whwjwJX1ZV>85{LR6KGP?mKP}XS}N~=1{Xi$k@2mP;{LIlaIs4 zqIO*M)W$1<~*d*!s`UFkzDGKe6}+hjRbOsh`oWI>;^6yCxn@taD;Su5&$(lOq>0`}FEnKQ)|MgUmWKimsE{`$k%wb2d^uiUoVz`)<{9^kK z_me!~kq4Ix{S21ex!L3+4{bJGGMn*ofzxkA7uKXe3-b$W`z<;089m}c`xUCTOnuc^ zxAV&aFk`z~OFcWim*P|~+fKGibf58Z%e_^`VuBohGqsmOC74=$jH6vS&$B$H@ zNOpJDHr2e$@lcwd4^n!NMW7pXEDqTWjMPxmnto;FsY)OfAT;J4|b)SE|@{Hz7n&(bstx>8yk3<+Xxk~ku;bVUNLi; z(d7WIuR6ch)Kjz$nvI+2?ck;GH6d%+$!_CAh3Y(yyq8#tYu2q^BQU+RcYdF^uO6Kq z(eI9?-5l*^*s@cX{EIYRBmPVz;g`AZj7)|$;I@~^|5`m|@z|Smpre+S!hQ1s_C;AA zZ7!TbZ-=h_BR{gDU^7YMAF}4A)@ACOht^_zgnw?LaONf(g(ZR!&MRWpG+$VFvEsI# zwL8uK3ja%I`!_GL;UrCuuQAih7U(7G%CZgVC+Vt>EWTyf#NGClsjJrbFm()c{A0dc zK%4v<<>T?&d6!&yn&Zeqw3A_>ognIOB)gJCI=UEN722@SV-hKUF;2Uq0X6|ULS+Oo z&Z#?Xx^8weKUq3|aKkUR{`aRpbMQZo#BYT6zvK8n8LR&^qy9UN|7mpo=YRX}IR4Ma z>OWoi-*Nm;qw_!i+wXC#R#4AfOTD6hf1u;T;;-r+RGyJE95)7;W(<5eWHoO*qR@{t zXcXW)Mf2_HJ(1Up54L7KK+IbiHu=6Vql*k}CNaWU13pp_lH={q$m=4|Qb6@l(`XK2e^1WKYxT7!tI)2vBvAC70H<3q#+<>k6AvgdK z%k|6Z`MXe^1Ay)H+68MuM!UxF49I1+e{FV}EjRn=!JZs$MAM1R9c&rc- zv!Q&q32`=t$PfPhN`k|Tg@`DDrbO$iH^GnG1L)}(Tv5Z!`~5lmlX#$Lt`9#wh+g&} z^*NO1ij3Zw0M728lw?)jhD3Qb$e0}KHk^ML6(=5c_)D_Q3>`|I65*`&-d?(bnvQj` zNU}eJNl};#@DiocZy`8#26zf^t^>d-U4A72DJH^edaqW^H9=s9a=-+MH0qLwkQ$1( z(jY!_E_)i#=)EC;jG2Idt#1ya>eaL1SI~jJNwUJrxCreakhez%v;cozgk%`vhmL5> zy3tfr{Rhb$MvOh*b8=>H3_N#F&))s}g)1d5 zUVIu}3j`6VrgxKnC&l8Xwm){kH{a`u>P}dMqUBM@)C8qp2qKhh$<|XI&$yp0tDZq^ zHxwSZKr|J|;=LhY?3oaLd6r9rP0)@#-Enw_&N>TomJPA<)W0F1E(z_&uApepanjIc z8%y3PyoJI|e_?QUvA=E--A?KouJP4?h(nS3C{4mq%*fs`* z8kE?y^XKv@5w}c9!BiwbS7EIj`E4ueTS|+ltwJ`sJ^cA>!?~3wB?{LaJ;bn^RsG(% zb5E(xQvJ=a`O)nYjv71fT?FqvR#JcaIY!3OO`^`~f?GsS1(fObKdDvEo2l#59LjIo z-aA#L`GJl5yNnt&LhT9!843k20+{#ieFWas2{!+sJIL;~D4oI_5kiOr^Ja}Z@jhY0 zhzKxY3y-*qyh}isZ8O_fvlD!x2-C+bU)VjY**0g!FCkIsf@OBRSTRtL$*UMAe7?-?2yVe!FQ+Ry&CARHtmB{iwZ3zo`&7N&pv`e#QxTQAJNC4=m=2p!n;XcRo5gRyah zDY=4l^-{Oowjb`Bkq+{Z&@D%_TCxPulUy+%j2A?CMlb=Sh8T9^>P>72{u!P-;x;R^VPv z?LdDXOIwi;kNLNz1*;r!f5~fMQu+fCujRbb;6)BqV@Hx089-F#{RHAu!Pgw;!;w2< zh)3B4AP(APeeq&}Zx{C8Z1Y}(dx9-sm`|5ZVPA#x(aBEp`C)Bdju$4N!EZhJ5b6M` zIX_?@^M^q3QRN*$gdakgXS<=hco50}?#GB-;L7~-Y^#;9nVb!U)Np)4LX_$>1Zhr` zfyp1`-Gwa*4c#-W2bxjZ4}`Qfu`N83j+i6sETLf_*h!FNSfk8`I!}~=v_uUuiA

    itW#Koq?+8}4pi0BxEf_u`sQPFI*Q} zpu~|1uLa!2_a9;vP%;pN!l+U(pr0V7wP$#aY)ca8WyJ>8BtX=UgbN5K?ttt^=5=&D zRH(B^uwmY}A#tG*u1f^=Zj?DxZsdh46mk9Yon0ecot>LBA-$M^eZ^Wf1xo4Q5^xVp zqHG0ucLTpG)sRU2nuI?|@Ia0p6%DbAMGH1p;&}2}n z`GC6Na4ljnqn(M#Lv#W16Pch!DT3^UB!Xw1L!%h0Oc)A@k@=ljKxejNS5Z3xLYOJ`G<9 z04^RZ6&J+%)~sKjGLeIsiWis>Lz z3JMBNKE7P!+mulwfM;lJ?TsQKVY>56I$sVT=IC++`i}7P&)gh=GXqxrGqCJX8rr&D zC_v(SN5@S}1&Pqh{6}l=Cx2Tn6f}yO&oE5^6zaO|kqlVNz#uSW>2+)>+Sl zl(E^0^^f>ijEx1|zLrNC-PC!QG#UuOY(zuxpASKkA+Rt*=Dg4}DU+OUWczK25A&u0 zzZKZM2t3`n2t1`+44$4`1fGg722WR=Sb%?V+g)TpIElo(bOA5ML+>x5!1`|Zf9aw3 zZ1AlA;<@wh{{K08{a@VYe~#_^rz`(Ej{j+N{^x)DJ&x64>SaXap8bV=waCSrwEH?Y z{Bk)Fp8fX5ofp2BH*EIf7o=TvZso2GYj}!3pSmoiap&aWbZ6SD6(9VTPwe%SuMVf5 zGI$^^eV|$^Dm2HDb41>)UBdbAfw3two;fxVA7Txv=sa-_GF1q;yMbpIzo2C8Npn z2b5O_Zw|g;zqN+OF`K$EEF&Po;HK5luq&HP!_-H+u5Q}zRuXh!DNMl5xtMC~3I8T( zzbNs?O7|rwFZkHUX$}Uv)Y~0QvC`)m`}R&!pwca%*3d~3ADYM|KTQiNvq__rFdm(?GYUPeyl% zX0V~}yGhG|5p^?tF{7>LLF2$@p2;ELXf_#rH=?aQxOlsGw5n>GV$tx|h%T4jKP||d zYk?h4RMXj4-TXdW6dGT0r|JaHNV6IfnO*{?$2QMy#5Ka2&()|h8zu%diz6s^QKocG?~h^hu(+_rnNU( zx4CzXFHOmbnlR*_qe4(LdJZb-n;CI&Q!LM_ef{*-;Xxj5;%MiqJGXq-*jA0ur%Qij zk7B!CpV*<35k}GG7yZ%0i@*!=x6RGaRU_>c65X6eyWYLax^VmU$Jj_Z?hzkH_L`h- zLjKOSa&Ag8m!F?7?k+doQ+hnUV(;PnJ#C&5rs|BppE^8$yXcax^xnH|O0VNydHp4r z_RTAJbiBHzn^;h`vh(*U?*BGLl%l~>sdvm%)M0M@AToPY>kizui;LOlJ&zU2ZF#iaNzF;}=^@_>z{*7ns zbXA$q3{vqNV@Ke|g~{@V(wbh~Yw8)Sr>zdr{ou*VB`$eOJ2!pr9Ef3W#Dglfr!sL& z);M+(mc_Pmj_=0&Z6L}NbS8FgiqWMh7kD0JG@tz4&d|9RL8%y0X3r+QCz8!po5T1f z&+M7q_wxLR6^ttFs_a4=u2btcmpErg^4q2-t72)#YnmfmVJSgjMLeGfeP>Jq}f@Mf}6uxt%+Fs_3)b0pQqTP9j=Hv@4PLkymHAT zW$&Kr{=H8({b4U0Wp9l#UwZwvzF9WWi9hrX+t#ak4|reI9>K3{=T>DxQ$r_PcWNYo zy3hZTSK8;s`b-rW!oUmsF@E{gFa55RfBx;`&w20h+-)JmgBsY02}zpkx@p~nH1A*G zsS}3MPQ>rU$+#c5<6>`rF(E^6(IH~P;#0%_WnUbH5&7@=fq22cKmU>Q@t?f6KmMBN z*%FH#EBe*WTRioUy-X=26UTh@-TCq6u9%Wgz0INV7Yk%w z?i96`VWd*NA-U$wPS;)d${|b!x@{KK|N+mYNP?^hn(6qNLio0!O(k9Q;^myH% zH2Hyc=SIo}C>zeq(q-h4&rK&5N#zQP|EI6s^CJlL)_s7-^&#w`>y6Z`Gl(PP4m&zI zWg_>u5eXOrNKha!JO@-<6HG(A@bMCcD_6p_9Kb*9{kUPhI<5heMCPd`Jh@%?p6 zNRxrUdXTHt2rhixtL-4*qXI@>Eh_x%Afj^+<3}=|dm$Ty_a7ryh66Q5D7RS6*t9%z zCR~y0ffHSy=$qV}Hs61;#4;#lDty;;L1IuoE6H|7$wqftZPK!(4u5J+El;t2{LCyJ z|2}+BbqgHLeoq3y2f%;CwaTysndK;?G|qwgug~p~XN72{J)Va|2M1(B<&OSw2k}V8 z2Y0whjH$@TCr~-y_XygX7_OaWc%Qzu2;L!_c?4e=jMPiHIQq{YL&{8bCcI zBn-; zbgF^wF@XF(k)sBQ8afPU0R%YO$p+kw9qf5;6b=yr1Y2q_@m{8AaL^Jky+a!^oC*pH ze=4N^R3MN*M0^#225#?*MP-XdwzU#9T5X@`50D|Bc=oE0jg2I(8#8 z?V!31yu8(N2JrQy(3}+2DD!qau@Qou%G5zu0IyY?-6kCB1$fkwpzHRda z0bgPhs^%A#)1+C^&orI1!~ZPvZptQV@$gfhx3aYtMtf4mm#5bh)R%Vsa3OTW+c5DBuh_FZwO?bcrpcar#>UpP$dgFp-vNt%K{`Ha z+pc4!d8QKLCqw{6>;$DLFUv7@IR zsN|Hzqib%?b!-sh-~Q+Lineb^xt$33l3ydHiq^~2%*@@x{pHJVJS@VWE{B{ZOWzxf zgE2O*2DGZ7irF-nc%Z_^XZxuKItA)S<3DlZPR>5i!%y5#qRrPh#wJho7pdRon5QH0 z3yBX3cC89u&B{o-FYbHs1r<19HZ$-7e#Iie!(;o7tZAkbu3AwQ4q>Na)Q|2+P9^;Q z-aKpWU-vGDv<#jg)w^jNjUTj-st?P~Hdl9$U9xQY;(@IP;cwOW*XRVPuDXA+)l4Q5 zEQbQ)_N^{1E;kGej`Z!oT?E|ru2G)RTK2GP^cL%nyu3Df3R3%xfI=TLX%ZI_zU~e1 zSJ$um6*xNzDVJSmeq=}5TKjbO_dDtOD#ASc`3OuNz}j}A-oE`@4q)*ggOSQM)~aj% zWz^gC0aPCw#B}~K81~_VBwM;7Yy1KRot8J-X%ti{{sA1j)ojRosy5GoEFozi3X6qT z2L+9fNrsdh$;*Cr&@H=wEVa>kD=cj0rF}0BA9kMHKZDSYdmEO2fGSb~{krB_OPXsg z3SYlC{|~F7xw(f~Et1eT=P~Ws(_39mcZxX6{{A$o;nj|(LSVdc3|q*NJT6Yob36)H zuKa!f~5O`>-&fIZ;XY#<4P3 z`+SFyKI+YH9N`r8=JN^ zXs$I7k-QH!@B)63HKRT`JMGX)--->LlFAyn2obnV0 z7uR_&er|4R1oO6Ak@Z-G=rKXjxN_~TJ4% zR6k;dD&ggom7Sy2P>2hUi>o+B)~KR7ydc83h@Gun1|+SoY4GnCPDe%#8|~eDTj=;k z8d{SMr=@ou_$~7~dG>FU_O0H^UPsG!RcdRovt0Aw>VCfTI8U=P6_3W@(mPUK2 z93*X5Ny1OU@PPCb(EsnX0@%#sh=0|ZVOut71nWz%*Lha+19sgbO)Tm2LM zZ`f?DxT=b_`zYLE=~zRm|9hhUOLVN!kSG2?5zfs`lgD$(%V>G(>+p3HBvj^b`7Q`w z5($f!j24>kJ^1{B4aMzu&z*2*N8#+sg(M67LSiwvD76Sp+)17r1Rr=YO!>d{)%#Zq z=Lc5G`+?K2qVZr^d3CL0QWC#Q?&~`$?~dp9A*M*ew z=SDjKA}w^PK9y4ULuT_2#j6wMdmqP?x#Zr?{FJEA;>zAT)l@SktRR&Aef-wMkfi>n zHmO$~T8|(tck(`objEX`F%w5(!f9OC>{&UZs7x=%Jj=a(YM^PHMPFa*IP#E%z7AL> z4pj;dTo6-BG#?*(o2%lIOF`l|vhWse?Ji51+Qm2CZ69lI^-X=b&N^$s(d9M5uZ$mf7s^D9i{C#P0Vtf1s zYs8v5rPERC?i|w+((~v)pg?t5SjXLA6nnngj zS9`PfC2Z5BpFbd#KN|>kSJ&#YxA&R4p0;}C2rKWl71X)uz4F|C9sSegF=}c6Ol>`s zVfTK2QUe2Z4`m34^6DpBFh>3er#(KHROA8Ub;XG>{L{zj-sw8U zrAu^D0_&YaVek?ZT!mXW^qP%6%EvzATK4J1>w=Trp_-2{2n4iwX%1S&(th}mx%$e( zB;$hx{5ZQify?6B>_2b|u6-%boK7L;<>0d_Dp>NmoZLRwrq61X zju_?XyYtgeAh#wtYKIe_&2ei_8FV==JpS^d%xijBG1PNt8hE>L@fo?J2JfA@C=66g zUQ;^pnC{W3lR^F-N&M2n5E*m}W?r}K?+Qsl=(y_#xCy=;ODuNw6HqAxsRAaRfDfQX?=1VX=SAEb7&@s z)O_}z?8bCg;b1n~wTaWc;y-?DlT^cbav@93nIS0N&R{ z<_CHwQ`UaXg7R87E{gIrPkL+Gx*1EP_L0a__M*5PJ3>Wv)CN;Od@gS z8;;3#F0DUg$$DfI20p?+nPY2hl-M?Y zt2cj|^~hM3s1zrpypd!VlC#csnhi?mw07a9Pjvd|{Fq3jk3tLI zEgrIz_hx57{u!+!Q%L(t6m;772kykoFi!Z@$);QnU(R>W!T`Nd^}BMGfDnrX$!??` zj|8{w+j7fE8Vl@(vsoc|&UgRicjqZrbN+DE*-m=k2^HhJx{0Cr%Uj2nGUEGL&&yICeC)@qzOCk@r*HdTg3b?J zcfF=${QI=f-m}ybN_Rqbz10^#qp@5xRI6a^(%_W7@CE{7Q5s_#bBEIV+N%z^&d)lYq!K@#H)WlCRi3x8e3ho zk*QKP(mPt4e65sAy$C3wqVs(6dYdG|-?T6O@u>*Dmc3u|Da!$&o&OMe$0H~{iL1G`mlzEi861L#)6?Fk;?V(r2#$VBX&YTjU6E!@7q!X$9YDMnXkz3 zH@(hd;ApHrU}SNX*W#%81-e{w*^&k0Ln4LWu%4XUGD4s7NN&VC-7QX6Chzt^=>wPi zZ1i@IuVC^Ei8|I>%|S2k6)KbWZU?y`n67|o1&{eOpUyBCmO*3h+XOac)V4MiM<>VT z*KCae$i(o#Bg*@E;-8~f&77-OV-jtDD87rn-Ot{)_wml%yZ^qcxZ%X-O3}+MTa?*X z$6qORT`lKg9lKHXko2B|p7P9t()`ttJGnRIUV3a$DH3Q7&VdiA=pcEz|&y4D<&F?>JGE!hVwI$wFrh0cgaq{d&0JkaSG@1GpZjha}U zG_g8cwz)R-(&}brDoiy;OXz4C@AE71?TME3kgm-s|a4~>XJdl zYse2uVH$z4RHi)~R7^s9pdR1~uAov`vUhp(2c~^8u3SutVjI+NYdXk!oYe*Q zec$@z^R524PgnNB5hZg~&|VdydDB64_U?^}os{K2%^$2DXwE((skZnskF1avZ>y{r ztvzShj8`=asny-;)`krCQ-}Gz8U4|Gr`!4D^*{%_Ic^r(ZpYe&lbsHX3oZ+SmTsry z{R_;yy9kF*=CWgtW6wnnIT5eOjzw2_;wHCRqw^%x1i}s;deQjW?(4;?S1x!(29sYF ztNgQ!-%n@cDf5TR;5_th$=%x2&^93%l@q;q1Pzwi3kQ@}mHPba z71i86mYda7^WX!A`3;q~yQVbi%)1AG5tRb$Ln4BrS>Rf(GrRR+!Iy(KXYy9_Xlouz zKrX4Yqed*nG1xtHqKTZzBk*MC38e%Rsm%A8N&!0;dhm4;$2tN;5k60Gg3_*_az=yF zi`tk`*|(lT@Wcj(&+2C>>1%FQ9#faqksEonWzvOv;vKntJah zM%lB|bR#3Gs!(CZ==oMZh_xY=>ArIm@=l9<5O5s1Xb-h@Zfq^wW zuaX{lqwZb!Ko18_jw_`9$+F(rcQ^Y#D|5DeDA;U!ke9E_G;`4xdR4QL(eJ8}s6;l` z1&;XS1ir83^N08Sle|#n%r(c02b7O06q{y~-$j{jzk}i~{~h!p#S-Wz2ea=h8@2b`2>T3K%Z3)(1pH zmi$BWS*9lSOKpa1cr49T4$;)oWnmjUEgJ_#`q%aEAX|;3hl|T`F0T0b_o5n~yBAgU z{Qv0}X%5bUnyGc{4u;w$l0Ez>t`{17y8;GC12tC4ZPSY9G*Q<^fNe#eHfbj zdAYC3X-7t!U5%7yjZ~HXHLkVm;(6pQ)kPbZ94j%^9+H=fVec}JO$ixnRqo)Ko#3Q( zqX7Ge)vhi6LWM4KK!I;foXIKbZ>vK=h zme?0X@%B;C(H;SNn3aY0-1NKd=XYnvo7J2CX4}{JH;wl)9v&Kwk>v86?Vda_y z-Fv!fZ5_)s7vFPEPx619^B+oJvJUt>J+)>F5%HM))CUm>D8wh#Sh|ZkdgO|?32j!v zZI`h~b}kX7CA7H(h3}d-kDcdx`hiZG!4{uKvEPtXE|u_o)zedMSOg&<+}3;hQ&&H6*|6P4D3j4KVx?z1!f<*T#XVtz#Ugj=||7f@8f!`;(g1~!{vKu*12)EtK zE(?n3I55|Cl2ZoJ^J|O{xJM|t=XsRy`SYkyR@~c#q6$PU3&^5|#K(`Tja-d0IE{3L zO4Q~+2Ix@){gGuUg3#v057#DN;iRa(-@^Ztp|nn!ck$Jty#g^3@>RZNWj)ebjW>I& zZM^O3nsm8vnEo?pN~{}~lWeyIzk7GYOYbhUY&DSa3Q6sr_+I3?$f6h@GO|BfO_(@R zvHH2J+I3Fl($K!p_X*Q7vNA!MYjXml>RT|9``UY_S0yIQ%1{tW9J}c@- zY+*y?0!W^RA-5XU2m&d(5{W+jL-YNj$%#i=myGuXzh(1U`qBM^nC`Oik)nLtB|Ap+ z!maslexzHy_PEzFlKdC84ej!LHVMze7p1ZN3G!XowWY z{@wB_sl2SL1D_sL*+7Ib5Zb9-&EH*i9M`(CqS(yM+#+f?pk;4E|N2Td*C2ClUDY!q zCHc+bH_k<`5`Oo>+v;3jI&BH>5{jW;X%CJXO1!0`H%u`fZok2`nbaH08yx46V35%5 zxUOigZKk@(M~zy!fvgm%*CqBo#qy>#D&(()n9F!AsEp#}3uZ%(4}Z!jJ2Xl{!VemA zv?##BOLfgS#iK{@$kSW z)GAzSNxctKGHFV)oSv!3xOPycGK4yuGd9kC+g(KrNGDv>1mz^CgRvBF}zo(ttXEVQ?oy3=5C%PT9y(e(RO)&0^5xsy|wr<_3ft13>4h~utu@8i&rti3>%sA#YZ}YscB>qjBl3AsX$%Q=LV?w$!W9Mr4 z)ABGT)t_c4DK&??d0|?ILOSJWW@i(^>U7-vFD+xt23<> z`DQyjXgne;_vh`J8-rBs-!lXG`yD1?;^N{#HT)>k(Blo=hPawR)IW&7YRctx{@l5n zhHgx-xh$bIp>CzUt|~HthPFB(iQ^vD3BM$JcwTCwHv*hzz;%BZVx9)9RCC%A+8ORqDNzJDRy4f zq^&{dC+_2vUtI0SsjF3Hp??O$Dd5TI^Q|mHK1f83G@8OTmj1ZXJk4m9Hc9kQAm+Ex z`%+_Tp_ZH^{|ve3T?V`d4v4@An^-(SB_E`gU+w*#m8BsqXG)l^&C?%GtbAZ75=5d) zk35hxe!_2SSZ(m-pdzf>*pH2OtpYcbCev2<(7T1ct0jNZ*V)a*56sgR^Xu2I2h~(X z9)MU!Zi_c6*nS*Kbavk0)&;H6$O9ocZN_SIhT6w8-Dp*Pgx`oVb7Kot1vM=?S+8cL zzf+jAO;{AYdK5C`Xx`;Q5eQ)S&nMpNS|C88RIdh|R9SGNTa4PN|Qof zmI3+nYw38dpj<{L$WjS?^0Kn~5^8!4@=!detaY%uClp)m&6~k?Yql4*vL*OeYC3w1 zxoOAir4Q9@P3;jrpI3IrG`YCV#v<2f6{*@cBJQ;A`zl>7id0d{abvs7i5w?VXgYPt zr|`l|GMGZaCL~c8Au6vMpNXP7NFJ6(#T{>(X)~0d_}Ed41YMnxk8NvzYFAiv6#nBx zr)T={qXyP%uBZfY!pY5Wk9(=WucptVFUwfC1pc-^`gULB?3JYP*qRodi zT3TC)qLKwk3Gv+z!XQ20`PS`MlW!7j!fopqi!qi7qxR-4MXa{>1~YA>y8OSc4OAl8 zzM=PN{n!j}czr&J*QpW1WgYgZzk+hA*B!FJG5|vIbSd z*;rAQx=hgp)8BT$ty`~MtK$F1w3QQf}1Wobx@ILMyI%E z*l6bi&2tZMC`%nd_UtcI)!n<{?=^Bopp{jrp^WvDzK%Dg-+61=Z=JHY9x0nbJ6DGG zJ+KZf@AtNpPYU!WoxM&QWBx1mL8eG1sXqU;i?o#C&qzFK?h|&nzzF}=({*Tj)QX}6 zL`9y7z7+oEAtbU^(QRhpvXN_ibDU}oSMUE~@4utD?*BMo{3E5MB$Z7`5gCQ-ag~%Z z3aMm;?2)}ko2=3@GLl&&k-ds&*)w~EY*``PkGID4z3%&*-}(K{@1OfV=l+~?T@|0t z=lz<`{d_!VPolK!3An6wrOf4!Yb?xIPg7kVwdNv8J1#C*@@P#8TWC#kD=H`*WL_(? z>e<3G#Veg&c$8e{m^hVL4V48(=dJ%_izgqc`;B6xGD~2Y9VN-SPu(c~+d5Kolynp8 zgW2`kV~+Y%K27I@WBwH z2zomnrp+y*$|r23b`Hik=oW>O>i}6Blza5wo2|6l<3_a|H;ea)s@v(l1W&MrpKJm({CU)}hl-pfT2-PLDNtQ6W zwG+@1Z3f0k>GR53?5e@F;L9h%pg8k+>m|=$AtYu}IkVLtkV6ThKt3{5R;goLz zV-D@PWL{YEE_9yn#bDJ3Zan`-2+vskhYlK@$g31v7OpPtIuqF$Snk#0+ z-iXxHMbss4l?A~M!G8qP3T!~8kV-CK1p^P;&x^O-ks&LP8_InpY zk-w>uW;LJZfm*EC@0V9_>3U+zg2C#MKhtamzHWk#l1EuAQq(rCAw?$zUck55N7^=Z zg&7$RRn3r$5R^b0512oxqN5XOQ4Sa!rdeP61qoXF;paPQ50EIIb{FfLj^*i#QFyI> z)o5F7x0>`cJtd;?FJy)nGoj$TlEEo!2Af3#{IeD#J~SK@$>0xa9?i8ao4cIQF_xKZ zZKEu_?nbdo{@@*))crqPS2e#XUin^XA6dK3G&wxZucn_i<lN!qY_?Nq6>nIf*X%ubOg;U#-tjW|?x=zvBEgkvz zOtJ9F^|j?`=fzk0op$9=zW8U4NiW|Lqo%uiiqpW^{p0<8M_!k zb4MF%O7HzE?S6mnq?5!3ifa#raP*jM^1)(f(*Xu3sl_SP7D`-%3?XI7>H8LnNzcV= zV_Ndbh%ddUI9lqknmqQ=?6EW)YV zXICRFk46ltNI&JHcsFyT5X9asq4AL(%^7RIi$Q)*n}?-`>b zP$)?3UP5LKATN`}F=nh^I?f&q`)m+!5*e?dypOy9x1i~}+uI+yQZb3>I^SNv#rZnn zwBHo~CtMsHWrvLR`^vJ3jh}x?2x1?q1QL+9p1c%Wbi|?AvPQ!H?~>~}5n+Klq{C0{ z0B9r@_O9g5@nV;+56-Hosy;>O-6!|E$7K-^AUx#^^Dla?kh9p35 z?4|~){}}@6MFRk=%x4RKbo*uqrH)SB7&6WM;1l3=q5g4R(s6b@+*=X5r^P8(PBr1Y zo-QIJ#P3&enDL6x%mf|=!5Ih9Bwv%~JSj+USQ{B}3kax!Ixxq!KLAu0_A|rho%6NJ z@^##&&wLsJcOGI0Di#(aFL7~{K@v+4u(P;Noj%G&9WH8HTK#Q8!0>Yw2weWzsMtVAalw%iRK7r2j;BFsR?#kOf9V@RtT=S8n9XivrhdOGEy2 z!-bEPm1jlF-RF(%?Oy|{>Dc`zd3lhkES=MWc9KlNA4C|AGzfWNha& z&VTUMeR9r(X0`m?JH`h~v-X;2wip`OjeVJLo_GCmNT9X5I2!@ts7rwLK=rboo!yj< zWFy#5a&vPJNK1Fj+ytG7h=_P&o_DHx!a33K!LvnEkO_zI^ra5(i$ zO$WbJgoTCqLRK}kw+Dcy@nHq$qfe=*|72ujynE^VNu&L|ymC*gy#bo>FhaSyjIZ2j ze(pK(jVL}Q)(NjF21KIsRsj=2Nm;pPe4HO(8hQ>6hfc(Hcy2<;85%F>QRHat=Eek` zmD4GWE$#JfZOlVMLnxZ324YO1{l*286k!8T!^zFfZ~rH@%E|YW5}=yZM?La) z3C~n5G-af|e!U%&wRUjW0q_iKVDiI|q^8C!f%H)dKoJFH3xYuGubyWG!Z+~?BZx)4g=f8y<^8ZN^{6G7b zKM-hLNmCG0|9`QN|9`>G_*HiDH<5oJBlL@gI&V`{69uD|{jT*nmK!Kq%A>fs=^bjz zqcWPx9qI#puObf3d2pTS-nY8u^}K>fq8ALesQh!1{qfuCFK=vB0-Yb%xF0=rK&oua znIIKl9l!eMKWU}y{}w@Fzr1e$Td{|K{%`Fp{u#ygzv*+*DeC`C2a^)k{cl2)q_+Bh zGq@zKw>MYnIFnfC^!CL~PFf2TZmFG{3$Cavv+^yBuZaHGrfO?s{`|SWh5hT(p37~g zJ#{SVEWSMc6S((UE+ULZuflVhT*o@bD<{5GP5-cV6N@vveZW2~SZw3c1Lo=3(wViH zB~QhNdSq%NoCYV_PTMw?)}6=LiPul^l_4RUJYQn2$uhr>*VA5-qHtl)!%vwi9B-Bn zimG~l2sx~|;K7!|>qZ0OQ*ZY`$*pU{W=pQb<)@k*(;Afh^-ZLu5@Ik>x7&hwWf!vF zWR1V0vewT*AHL=DuiujgSXq3Rx>7}4233YzwQ2DMrM{JdWyMq$ihr^oGAm1|7OS(- zcVd1avMjg1FyQ+~lq?+AbK_!VmPCo`WMlV@c*dUIN##=V3uY=tzXiOS5HSlcu2-kH z$}X^a(2um8)qA3*6i&YVN!}}laLFSRZ{At;45Te|H`yx7j`S%eru`oDvl`|^!u`%# z{K);>y07PX>QEKqgvQxIYw@4{b2T=3^V*)nQd5R@GnCH4zdv()Wz~1~?6tA2cFGb6 z2rt-{X6uX2|L*b%p3;-?ymCEV6~XVzV=I0S?|1Pi{UQE?ESr*<4~RVkUcpesz&Tz9 z4RJkP0}1=zIG!@~E2W?B6KYwtd=`)8u<7iNRk~u&t+W5#(r&E@hgn_J-LAZT*OA^i zaPkv(wN12mK;)dDdSio1e^E|mPR0(tOwX-6969(a~^*f8;^KjxjXUi z8&|5A?~vUSxM3{n%=?`v3x1#Hmb%R%WvaASVb|Yj_5H+35Q)BgtNKd-EfDA2#a>7I zOoc|D$?aQ7Z&dWPFk?M-%bYDcm^DkNDFsa_M~|<*8MK9F%MpfkJ2uE4jq+Ok@#Ga% zzinJ!?;rW}DRIa3r2t==^@pk5=chCqb;i$+j)b)k$8V?Y(?+Wj@r{kLUu(t^RiiAY zsI&u|Ba?iphlGD&H(-Jazc@ic!V2x&?PfQ}RCwjsCJ1iXr~w>_-&@9?xN;Z`%+H${ znKyZ`+f&pfPcz@r$3Ic^`fCg1i&vhg%9z3G^Nzb&)kvo8LSD3F^Xz?8!2WtEY*-Nh z^n;_!-g74#kDabVSx6iAZH>Ilffmm2#2BUD&wIa8+b?sokMBG!W)OpNUx!P*8g4({ z%@Vc6E3a28_13^dtB4SpKZ&a0%f8{al#X36A_{R=US3JR_ShhaQ}2Ut3x<(d{p!_j z``@WLnT8eVbnunKr++$HF0K-H8+1!*aS&NSmcSRtWc>R50rhPYU!F0e`b7NPPkUFt z?MMGUVE?ZN=uMX{TD$1tlb6>PMlc4vzOXs2;@22R?^jR|WGG%NItys1J76lKHT};W ze{}yoh?l8;J*BGQ3(d9S-FQmw)KGR;Q{E(aDSppm_}A)3F4#`MLxFG1^os;U*>L; zW*rNR=GW!W!B@^*$POE!m%JD)XsU0c^?jIGrm8H# z#G1FD;`VdN?0|c7U7hpFOzrhg3=)5_w5qzL_C7+nOvW-GlEp8RHly_MnosD}Fe}u` z+8X(yiJ`J`flJ+@l@=&}zd&I~_FY8mg^(F$=56-OWfLjnPj8m5X1KJKH6h04KnWeS zceI||ePi!y^t;#%s5gZj_A}(Q-h55KQiCJph1hVb9k17g?!Knd7wgQWQZNO*cBmNbiU%U1$|ZNpq=v@}ustj+|rR80QbqIt!640(}k6M~DZK zj6#TmBXdLS3uL}?7Ztb6o)FFl-R+#Mc5+HnZQI=9SA(F*!;}Th=o(XQuxlCGz&Gj)`9bTrnyj*ZYapZ{=U;uXc$R zM!}zYwr0SXRGxrkWZ|KkzCDSyD{nveyLn`1nV9RX?t)Oo1N>@e3Ay*SZ=N>VLF>pb z0ps=gH;&8u#0gcJ17=IjKaL&K8Qd1E#^U63Y`CfMzSv4ge&@a4)|}1Y&`H+7o4a`u z1$1lnJ@{zd__iz>qyMGgWcq&FfW1|f9+|@GmJ%S|*_*udMz8hISZ1~KIie2-uRHr_ z<5sRKsS_B_%jevN;xDKg6~#2xHPbutxb4r_zo4QJ@;wfXINP73@NZ?7yf$H4seAv# z*E&%JJz7ovJ?+jP>Vma}gxWo-FQ^h3_;H5c2BxUZuVa<)hEC0!c_CD<{Z(?Rd3!Pd zh$_Oad0P0!GX@?z>1t&+wJrLoE5DKhZS>RJE$>oQ6DK?E+h-mMmrXr0u{No%%St!Z zP)G^gF_u3Zlr=X$_@iq3qgb?Sk%I01EQY~o_okI~CCe-QZttq!r^xE9?D4~$c$QE5 zmAg&Zh5Isu^6128S$$s=JgJi(m!_v@4t&(?+8sL+;kg`jNYAA{J?rb!vnBnOc?T^E z3YuRN=G)|oU4^~o7>u+Cm@h8J1z6Ut{@8|M*vB}^Mv9Z%lBphzwyF6~_Avyc<2Kp$ z89450FgNiNy1=lTtvk+)FR;>M_+zk8PpDI6F0Ya%oaetCCZegvUq|cK7n#(tS_aG; zg=tx@Jvb(Nc2~jKOm5;kRB2-CL@&3Gm`Jd=G6a^9b32qgJ}+GI*43~?oVS3}eg|&K z3k7*1wgUAL(vn^HVcH?#^3wHH2IqAyvKMIO@;ozYD0!xM%daJ5s2YLxfJ}zSxEDR3Su#!S7B$nNrDuek<$VF%GDDD=+R*8TH4ZobNvRukBgP zTofso^c|@_OD7+`dV6x3BWJ-xRbQ5ALyeO`OBd&Zk1HTwe=kfArQt4dP3yIzQ?+S$wTZzf4^E;{ks{2wo_h3mahF4^}nwQ?dW@WxOa|Q)6qV9o`2EU0_5x z>SJ|ml68+Hx89g74|<(WP~4S2nY`;gl)F9v}mr7sO_mpv0T{I z9XIM;&@aK_`DU_@Jkqyuc2ek9Jr?K7nu&?w)w(wV0yO;`a>K*P#-)us^LHR+FUhMJ zQLc351;3OiV`W~>?oy8MeHhk*-(6SuWYiV$ZRJy~dVYRd4^_!_u!+d?L^Ci>|x5NGJhq7GVZbA4;5Y!)uylY+xps0N7&%_ zld@QU@6;-d7sB~V>(=ydcidUqs&jJUZK;-Zzon%38kZBX8osn0P1_%s@`$6pFG~M+ zneeu%RDnl&)*m=2ZYK#EcW&-Y5DuNF3DbF3|K-N;wgLICiP`5eogM2KS3teI0)DqM zo|1X`b?D3bq9Y99!4*m*m%5u4u_Df+CmblI(wCmtm^Z1f;5ZE&|1G`N2-^0jJFFVN zGs-I*ozV*5Etk)0J0iRb+;@MWmyw+sVf0a+jrjGMKWukv@T|5s=P4R$zJ3dvn3*{O zAT4Qgx8=37SX-~R^K}2Z0shxt<;+LKg9vlK>JKU2 z2IB_K9XW^Jm2nj@hp*dtDsoJk`Cg-?p%E6-?spBm*Q!uL4Yn0w03RPJ zQ$&9;y<|k1tulYDHyN-*poMt_tf)ySO8#j%0ZU$&Y5JTupWTGS$p*+c+Py%LF~=mIPAXC(||;7@2_ z&1Bs@WdjaU;PIzlJ}QxNT8l1=Qh0`buE3kSx_sy)hVr0&eoGxpAW@Okg__~Efmz30 z0&>jD?)M&$NLt3$i97TQD=|@Sem4&;u6hjuyGw@a*ZIMFdF=)aM1jZaK=E?br)k3} zst0L=bE5M5wBXyHES8m}(RiJ??0{^U_KL%TH-LaNZ`G!ELj1#Hu;gW|{=l`71`d{0 zXx@GoiwC{jfWs$O`eJ37W9Art8Gmmq-pXvbd3si7lQ+dW$<;m=vPe4)$i7{_fmZc8 zPr30-{)VMbtp!?t;x{q}o{tz!t=7FceTxx8Z~jZW#%T~5XPMS=tdeAS&J~?@BteBg zvD{O~JsEQ+XLq|$@E3PEjd-wB4xq!5wCisP^9@Z3YjL&9^rb|n+W-E1YLz4B8#K0& zlK+-TZ|h#`nDBr8*?0RK(B17=X-(7kcSy3^HVS23!fiYArvlpRux#onqOp$jKW~d+ z#e<7h1;o2f5&N~}-#3>QE)&1;h)nrEjf`0GnE!Ob?fh@$^uGU;Rj;)D5uaIk$^5q< zTjjrj*#DMtZ~MDQ#7F->KQa$@?f;E}{#s+=|Ns9YfTf2Vte50edZo9l4QkeH zt=j5y?TCn=$kD9UsB4`z%U8lyZ!TAPa&2?XF!komw^dnW_i(YXadfxs5^)j~Y0X#V z%RA+$-e_Ca(k~!Y*fH57E>-;K7@#r!zPvJ`{@fGdXEGN~{jPUjc}Elv=fC9vxaB+k zgAiuC5%5U=zS3_5s6!uldnc%IrRL;-C4n(DH&%#_goK~@Ax2=D_yGT0I(W;U0ei9U!`yf# zz~Mp1%{T9a?D6M-DQs z<5$f+-nLT|Ybv7$2pw=Q3$~)#@}E49MX~R5ZoQLp!ANTX66EGs`RC6iU%y@wi2fb; z!Pcx|PKNLCQxf1ywJ*J-0GE`l$vfJbJvo*Jj2P65@aX~kOUmuXc(G$(K!6^wRX}D^ zdvL`OBF1-z$rD?@brSjDoJo-JoYU0&shqtS2G$S!mB6FQ5e6iP2lwv3vq^r6v%{_j zKouaX42=TNOP1@wd{-XI!n-=YfOjfdjcZXw?(h3GP7<>(L6=`~ILh9HTj?1YpNprc zKTky=$5+k2?@On`LD)$Rq7nOk@I(ZZ1+og~35bZ$0YK_mZd!Ksoa&dqZ#JePR*bE{ zZBE58LMa~X42+w`TEWKz()6})5X~&A{mYuud<|PUUIuFGrk0lHxwgwoi`*SUV`C}e z1YT90>1*zezY7v2NgRGp&D3*#z`$u}%foQ!{yr8)HvgC!hZHVU%uDws% z*lkBOnQ{~>+{tJwoJ}h}i+<@(o0_Yb{i(i|w$Pb?W~y>P8Za>gG~ELQ!NUu)V^0_U zJesx+Vt$)S*~}Yh zdPVZyk+$aCQ;F#_v8@{UcdG?u+A}gUkHo5&WcR!FxKh-ToW(^%-uH%|0)|pB#rqcP zX_0%5Z{w9cFY#}>lbNEkT;3c0GB>wno?m7c!5KDX_u8RsqO|muUmV$Y2M`y`t_$H3 z3M)5kKZ1xx3vdD7B7?1Gc=6({&!0cbPV?~c-b4ny02#l8*84qXw zR&o^a5txHdGhs8fcp|dfU87&mwp6cMy$MKQqSQ|HIIUJBrycS zW1s*qO`+e0hI~i=J!W*kvLabDc63CBCL;Cfjuh-YqrVsX)P7)0d1Wv%F)5TYF*6en z06j?b|7HI-QBmEp?GIWWAsDdiI#7#e+J~}*YWF{5A#J-xh}RKtG`)rF)iboR;>)oD zX46ETChxH}hQDXw*Pz9^foloX33?VqnCy}Jkr zG2jhWkDFJnTq*esUMW@A2r2ha0yFJ)#P2XMtfcOj*g`v5WV^v5qNEq6lE~iPEhR0@ z3K6wcd@lz_aaC1SrQcs(b(socm6>hF+Vkr^qqYXHP)i*hv^#bXM`^GhKVDEx`#ZHe zg(_)Z%=;u)lg1ZfDc&J(h~MA;qNr; zf{CSm3R;i1D86}%gVxtZplVUENW9PcJ6o>`kw>%e`o_Kj+Oezp>9LSmB?X1+xZXzX ze`hMw{}W1;h?71^);mpiqk3^~RMzJ8tH@W$CtST=MHV5&d4=T^9n(2V1~C#>5!>jH zZV6?vq;uLsskyX`KWu(to!nZ7ra!t#Rd!u=`jr1h_fGA%`yPeM4_*I`SFo6BlvGsq zx@81q$e#_<3JZi7{B0yy-i`cyi?kO)r^d4JwI4hRD_!!H&YbbI)6drIbCWU>VJdL` z*Q8MV@oXr^(gjQBncHUh#r)70%S>kpmO}TI5r?#M`(J4!9}HKLPXAXAD-#CjyM!UJ zN1ygI4hhXJNLKa>$g7+=oAZPAKSt@cuCuj&FB68l^FLJw zr`G*(9ad&?^gqV#ssENF{NMeT*R3#zm6LG7+zeT^*@2K}otx+sT*wWdpQF6_kHKxa zzO8EeH!!Sz>L<^$+qmBNK=S^*_d+RdQeX4tJvYk!S=7AErozF~>~X(OG40Ytr`o{3 z-U_iiQU5jf@Bh~q_^+dI>c3vZiT|{9%KX>=;QX(168j&|<^TJK775oI3r2r2j{`(Y z&j=-n)^br)5uXL+*v`aPMZBxlJ)F zD@S7Ge?O(#tQW#0DxU&pG3|>2uqizhadG~ z-N2H(m6J^!9n1WdV;QyHAr6V&O`I^fK~U>p?Jz zds|0C^5Q!LKt2%u;j5&%Z?mBqsvAn4jSbj`1lC(bM8sCUr;&tb77_S&pn3WUfLk&;>} zv!bP?P0h-pgT?2gUTwAHGHpdp@=`(VmM>@(MPPeJV*n`1;;N{uq~Rl1xlH3_iS`Ww z91Z}L6XWAssHwpqW$o(92nbxCMl#P(Sj%}FcxFh5k3%jq$c_jv0@Y!Os0PqUs{K|1 z>)GJ^OyVrclQwVO9IcV;F>x>|$EClX(M|nY=|x+i;e;rD@qiE*)!mI=xM>WwMMV~Bx{P-#K95Lsv>g2@t-F%^$9lht| z!(g{^5Xfqv9@JrYgV$4j8d7>3Dn?Om+K8@`GiT3ofa7s)VPVLJBcclJcV7o)NKMtr zT@FVc_imojMDgSUzzC;+j*b}dU~PP0UVgri;b%JZBFZT#DFs+kd-+=%cbGkZ}5Gy6&4*_X@d>t2jGnYolrv z&8CL|K`khLjAX~`*x{ZD8nhQxRi}Ih;cyGN&X`-YW~E*eC$Bp1wm99mH>Iqkgp-@w z_p<@8-gZgPr>elcg> z{8d$Xd7o+qDk>`6W)t}DZe5giwwPR|OJ9i5{kwNBPUWDW zG{SXMG=F~Z`Cwy8B=c|iz=L6;ZaWUJ#2K#1*iZ00`p?qJ&^Ff9#h@b_;%4X*U!j_o zR`_UE&t_thEg2R&lK*+nJivnfpt#^*I*YcPdPB3#^ao`lJ?0bT{OB&G36Y8H!2b2) zAT*Tt(Af9Br(UyW%|0|>2TFYR2G4OU>++AX%zBu#=Of*|`;dzrRqpE^Kv}4Y4KqXGu&qLP$lY^z@zOj+^#8wPyqi%UE0$0HlpiSa#!V zH6WJ5vpHKBHyuqXL9&?TTgu{*Afhw)S$_pd zWR(D!*OQtWl^fTuC#0rU#|_y8iC0alojq#?iqQF~T4jqIUXE;Xt;XipX4@GV&0ZOz z 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 UMN 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 literal 0 HcmV?d00001 diff --git a/static/images/2023-08-rust-survey-2022/why-at-work.png b/static/images/2023-08-rust-survey-2022/why-at-work.png new file mode 100644 index 0000000000000000000000000000000000000000..e0466ea9adba5f6648f549bc32aef1a236180724 GIT binary patch literal 271051 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 z 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 Date: Mon, 21 Aug 2023 22:50:27 +0000 Subject: [PATCH 0093/1024] Creating file via promote-release automation --- .../2023-08-21-1.72.0-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-08-21-1.72.0-prerelease.md diff --git a/posts/inside-rust/2023-08-21-1.72.0-prerelease.md b/posts/inside-rust/2023-08-21-1.72.0-prerelease.md new file mode 100644 index 000000000..60cadf25d --- /dev/null +++ b/posts/inside-rust/2023-08-21-1.72.0-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.72.0 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.72.0 pre-release is ready for testing. The release is scheduled for +August 24. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-72-0-pre-release-testing/19386). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1720-2023-08-24 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 797aacb2bf17ee514b88b8f7b499ba57c1e8005f Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Wed, 23 Aug 2023 11:30:41 -0700 Subject: [PATCH 0094/1024] Add a blog post describing and launching the project director election process --- ...23-09-01-electing-new-project-directors.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 posts/2023-09-01-electing-new-project-directors.md diff --git a/posts/2023-09-01-electing-new-project-directors.md b/posts/2023-09-01-electing-new-project-directors.md new file mode 100644 index 000000000..e846140c3 --- /dev/null +++ b/posts/2023-09-01-electing-new-project-directors.md @@ -0,0 +1,70 @@ +--- +layout: post +title: "Electing New Project Directors" +author: Leadership Council +team: Leadership Council +--- + +Today we are launching the process to elect new Project Directors to the Rust Foundation Board of Directors. +As we begin the process, we wanted to spend some time explaining the goals and procedures we will follow. +We will summarize everything here, but if you would like to you can read the [official process documentation][pde-process]. + +We ask all project members to begin working with their Leadership Council representative to nominate potential Project Directors. See the [Candidate Gathering](#candidate-gathering) section for more details. Nominations are due by September 15, 2023. + + +[pde-process]: https://github.com/rust-lang/leadership-council/pull/12 + +The Rust Foundation Board of Directors has five seats reserved for Project Directors. +These Project Directors serve as representatives of the Rust project itself on the Board. +Like all Directors, the Project Directors are elected by the entity they represent, which in the case of the Rust Project means they are elected by the Rust Leadership Council. +Project Directors serve for a term of two years and will have staggered terms. +This year we will appoint two new directors and next year we will appoint three new directors. + +We want to make sure the Project Directors can effectively represent the project as a whole, so we are soliciting input from the whole project. +The elections process will go through two phases: Candidate Gathering and Election. +Read on for more detail about how these work. + +## Candidate Gathering + +The first phase is beginning right now. +In this phase, we are inviting the members of the Rust Project to nominate people who will make good project directors. +The goal is to bubble these up to the Council through each of the top-level teams. +You should be hearing from your Council Representative soon with more details, but if not, feel free to reach out to them directly. + +Each team is encouraged to suggest candidates. +Since we are electing two new directors, it would be ideal for teams to nominate two candidates, but teams can nominate more or fewer as they see fit. +Nominees can be anyone in the project and do not have to be a member of the team who nominates them. + +The candidate gathering process will be open until September 15, at which point each team's Council Representative will share their team's nominations and reasoning with the whole Leadership Council. +At this point, the Council will confirm with each of the nominees that they are willing to accept the nomination and fill the role of Project Director. +Then the Council will publish the set of candidates. + +This then starts a ten day period where members of the Rust Project are invited to share feedback on the nominees with the Council. +This feedback can include reasons why a nominee would make a good project director, or concerns the Council should be aware of. + +The Council will announce the set of nominees by September 19 and the ten day feedback period will last until September 29. +Once this time has passed, we will move on to the election phase. + +## Election + +The Council will meet during the week of October 1 to complete the election process. +In this meeting we will discuss each candidate and once we have done this the facilitator will propose a set of two of them to be the new Project Directors. +The facilitator puts this to a vote, and if the Council unanimously agrees with the proposed pair of candidates then the process is completed. +Otherwise, we will give another opportunity for council members to express their objections and we will continue with another proposal. +This process repeats until we find two nominees who the Council can unanimously consent to. +The Council will then confirm these nominees through an official vote. + +Once this is done, we will announce the new Project Directors. +In addition, we will contact each of the nominees, including those who were not elected, to tell them a little bit more about what we saw as their strengths and opportunities for growth to help them serve better in similar roles in the future. + +## Timeline + +This process will continue through all of September and into October. +Below are the key dates: + +* Candidate nominations due: September 15 +* Candidates published: September 19 +* Feedback period: September 19 - 29 +* Election meeting: Week of October 1 + +After the election meeting happens, the Rust Leadership Council will announce the results and the new Project Directors will assume their responsibilities. From 9cf87b8b868a6434c3317b022376fd139b51772e Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Thu, 24 Aug 2023 06:47:45 -0700 Subject: [PATCH 0095/1024] Announcing Rust 1.72.0 (#1129) Co-authored-by: Josh Triplett --- posts/2023-08-24-Rust-1.72.0.md | 109 ++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 posts/2023-08-24-Rust-1.72.0.md diff --git a/posts/2023-08-24-Rust-1.72.0.md b/posts/2023-08-24-Rust-1.72.0.md new file mode 100644 index 000000000..67df6c4b3 --- /dev/null +++ b/posts/2023-08-24-Rust-1.72.0.md @@ -0,0 +1,109 @@ +--- +layout: post +title: "Announcing Rust 1.72.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.72.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via rustup, you can get 1.72.0 with: + +```console +rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.72.0](https://github.com/rust-lang/rust/releases/tag/1.72.0) on GitHub. + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.72.0 stable + +### Rust reports potentially useful `cfg`-disabled items in errors + +You can conditionally enable Rust code using `cfg`, such as to provide certain +functions only with certain crate features, or only on particular platforms. +Previously, items disabled in this way would be effectively invisible to the +compiler. Now, though, the compiler will remember the name and `cfg` conditions +of those items, so it can report (for example) if a function you tried to call +is unavailable because you need to enable a crate feature. + +``` + Compiling my-project v0.1.0 (/tmp/my-project) +error[E0432]: unresolved import `rustix::io_uring` + --> src/main.rs:1:5 + | +1 | use rustix::io_uring; + | ^^^^^^^^^^^^^^^^ no `io_uring` in the root + | +note: found an item that was configured out + --> /home/username/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.8/src/lib.rs:213:9 + | +213 | pub mod io_uring; + | ^^^^^^^^ + = note: the item is gated behind the `io_uring` feature + +For more information about this error, try `rustc --explain E0432`. +error: could not compile `my-project` (bin "my-project") due to previous error +``` + +### Const evaluation time is now unlimited + +To prevent user-provided const evaluation from getting into a compile-time +infinite loop or otherwise taking unbounded time at compile time, Rust +previously limited the maximum number of *statements* run as part of any given +constant evaluation. However, especially creative Rust code could hit these +limits and produce a compiler error. Worse, whether code hit the limit could +vary wildly based on libraries invoked by the user; if a library you invoked +split a statement into two within one of its functions, your code could then +fail to compile. + +Now, you can do an unlimited amount of const evaluation at compile time. To +avoid having long compilations without feedback, the compiler will always emit +a message after your compile-time code has been running for a while, and repeat +that message after a period that doubles each time. By default, the compiler +will also emit a deny-by-default lint (`const_eval_long_running`) after a large +number of steps to catch infinite loops, but you can +`allow(const_eval_long_running)` to permit especially long const evaluation. + +### Uplifted lints from Clippy + +Several lints from Clippy have been pulled into `rustc`: + +* [`clippy::undropped_manually_drops`](https://rust-lang.github.io/rust-clippy/rust-1.71.0/index.html#undropped_manually_drops) to [`undropped_manually_drops`](https://doc.rust-lang.org/1.72.0/rustc/lints/listing/deny-by-default.html#undropped-manually-drops) (deny) + - `ManuallyDrop` does not drop its inner value, so calling `std::mem::drop` on it does nothing. Instead, the lint will suggest `ManuallyDrop::into_inner` first, or you may use the unsafe `ManuallyDrop::drop` to run the destructor in-place. This lint is denied by default. + +* [`clippy::invalid_utf8_in_unchecked`](https://rust-lang.github.io/rust-clippy/rust-1.71.0/index.html#invalid_utf8_in_unchecked) to [`invalid_from_utf8_unchecked`](https://doc.rust-lang.org/1.72.0/rustc/lints/listing/deny-by-default.html#invalid-from-utf8-unchecked) (deny) and [`invalid_from_utf8`](https://doc.rust-lang.org/1.72.0/rustc/lints/listing/warn-by-default.html#invalid-from-utf8) (warn) + - The first checks for calls to `std::str::from_utf8_unchecked` and `std::str::from_utf8_unchecked_mut` with an invalid UTF-8 literal, which violates their safety pre-conditions, resulting in undefined behavior. This lint is denied by default. + - The second checks for calls to `std::str::from_utf8` and `std::str::from_utf8_mut` with an invalid UTF-8 literal, which will always return an error. This lint is a warning by default. + +* [`clippy::cmp_nan`](https://rust-lang.github.io/rust-clippy/rust-1.71.0/index.html#cmp_nan) to [`invalid_nan_comparisons`](https://doc.rust-lang.org/1.72.0/rustc/lints/listing/warn-by-default.html#invalid-nan-comparisons) (warn) + - This checks for comparisons with `f32::NAN` or `f64::NAN` as one of the operands. NaN does not compare meaningfully to anything – not even itself – so those comparisons are always false. This lint is a warning by default, and will suggest calling the `is_nan()` method instead. + +* [`clippy::cast_ref_to_mut`](https://rust-lang.github.io/rust-clippy/rust-1.71.0/index.html#cast_ref_to_mut) to [`invalid_reference_casting`](https://doc.rust-lang.org/1.72.0/rustc/lints/listing/allowed-by-default.html#invalid-reference-casting) (allow) + - This checks for casts of `&T` to `&mut T` without using interior mutability, which is immediate undefined behavior, even if the reference is unused. This lint is currently allowed by default due to potential false positives, but it is planned to be denied by default in 1.73 after implementation improvements. + +### Stabilized APIs + +- [`impl Sync for mpsc::Sender`](https://doc.rust-lang.org/stable/std/sync/mpsc/struct.Sender.html#impl-Sync-for-Sender%3CT%3E) +- [`impl TryFrom<&OsStr> for &str`](https://doc.rust-lang.org/stable/std/primitive.str.html#impl-TryFrom%3C%26'a+OsStr%3E-for-%26'a+str) +- [`String::leak`](https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.leak) + +These APIs are now stable in const contexts: + +- [`CStr::from_bytes_with_nul`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.from_bytes_with_nul) +- [`CStr::to_bytes`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.to_bytes) +- [`CStr::to_bytes_with_nul`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.to_bytes_with_nul) +- [`CStr::to_str`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.to_str) + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.72.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-172-2023-08-24), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-172). + +### Future Windows compatibility + +In a future release we're planning to increase the minimum supported Windows version to 10. The accepted proposal in compiler [MCP 651](https://github.com/rust-lang/compiler-team/issues/651) is that Rust 1.75 will be the last to officially support Windows 7, 8, and 8.1. When Rust 1.76 is released in February 2024, only Windows 10 and later will be supported as tier-1 targets. This change will apply both as a host compiler and as a compilation target. + +## Contributors to 1.72.0 + +Many people came together to create Rust 1.72.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.72.0/) From 9dc676198baaed6aa97048944d2da3aba5401be1 Mon Sep 17 00:00:00 2001 From: Arlo Siemsen Date: Wed, 23 Aug 2023 22:08:39 -0500 Subject: [PATCH 0096/1024] Add article 'Cargo changes how arrays in config are merged' --- .../2023-08-24-cargo-config-merging.md | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 posts/inside-rust/2023-08-24-cargo-config-merging.md diff --git a/posts/inside-rust/2023-08-24-cargo-config-merging.md b/posts/inside-rust/2023-08-24-cargo-config-merging.md new file mode 100644 index 000000000..341145e6d --- /dev/null +++ b/posts/inside-rust/2023-08-24-cargo-config-merging.md @@ -0,0 +1,78 @@ +--- +layout: post +title: "Cargo changes how arrays in config are merged" +author: Arlo Siemsen +team: the Cargo team +--- + +Cargo will be changing the order of merged configuration arrays, and we are looking for people to help test this change and provide feedback. + +When an array in Cargo's configuration is defined in multiple places, the elements are merged together. The order that the elements were merged was inconsistent with how other configuration types were merged together, and was not working as expected. + +The new merging order will match the precedence order of non-array [configuration], with higher-precedence configuration being placed later in the array. + +In the case of `build.rustflags`, this resolves the confusing situation where higher precedence flags (in a project's `config.toml`) are overridden with lower precedence flags (in the global `$CARGO_HOME`, for example). + +This may result in behavior changes if a project depends on the existing merging order. If you have an environment that involves merging configuration arrays, please consider testing your project with nightly to ensure it will continue to work once this change stabilizes. If you encounter a problem, please file an [issue]. + +The change is included in Cargo starting with `nightly-2023-08-24` toolchain. + +## Merging Order + +The previous merging order was unspecified, but in practice it was the following, with earlier entries appearing first in the array: +* `config.toml` in the current directory +* `config.toml` in a parent directory +* `config.toml` in `$CARGO_HOME` +* command-line (`--config`) +* environment variable (`CARGO_*`) + +The new merging order is: +* `config.toml` in `$CARGO_HOME` +* `config.toml` in a parent directory +* `config.toml` in the current directory +* environment variable (`CARGO_*`) +* command-line (`--config`) + +The implementation is in [cargo#12515]. + +## Impacted configuration settings + +The following configuration settings have arrays of strings that will be impacted by this change: + +* [`alias`] entries +* [`build.rustflags`] +* [`build.rustdocflags`] +* [`target..rustflags`] +* [`net.ssh.known-hosts`] + +[`alias`]: https://doc.rust-lang.org/nightly/cargo/reference/config.html#alias +[`build.rustflags`]: https://doc.rust-lang.org/nightly/cargo/reference/config.html#buildrustflags +[`build.rustdocflags`]: https://doc.rust-lang.org/nightly/cargo/reference/config.html#buildrustdocflags +[`target..rustflags`]: https://doc.rust-lang.org/nightly/cargo/reference/config.html#targettriplerustflags +[`net.ssh.known-hosts`]: https://doc.rust-lang.org/nightly/cargo/reference/config.html#netsshknown-hosts + +## Example + +The following example shows how this change may impact you and why we are making this change. + +With the following in your Cargo home directory (usually `~/.cargo/config.toml`): + +```toml +[build] +rustflags = ["-C", "target-cpu=x86-64-v2"] +``` + +and then inside a project directory there is a `.cargo/config.toml` configuration file with: + +```toml +[build] +rustflags = ["-C", "target-cpu=x86-64-v3"] +``` + +when you run `cargo build` within that project, cargo would previously merge these so that it passes `-C target-cpu=x86-64-v3 -C target-cpu=x86-64-v2` to `rustc`. Because `rustc` ignores options earlier on the command-line and only honors the last one, the result would end up using `x86-64-v2`. This would effectively cause the merged config settings in the current directory to be ignored. + +This was not the intended behavior, since config merging should always start with the lowest precedence (things in the Cargo home directory) and have more-specific config locations override those. + +[cargo#12515]: https://github.com/rust-lang/cargo/pull/12515 +[configuration]: https://doc.rust-lang.org/cargo/reference/config.html#hierarchical-structure +[issue]: https://github.com/rust-lang/cargo/issues/new/choose \ No newline at end of file From 96dac69262c0f9072de1bcd375a204ba6441a06c Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Thu, 24 Aug 2023 16:09:50 -0700 Subject: [PATCH 0097/1024] Apply suggestions --- posts/2023-09-01-electing-new-project-directors.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/posts/2023-09-01-electing-new-project-directors.md b/posts/2023-09-01-electing-new-project-directors.md index e846140c3..3442e6de8 100644 --- a/posts/2023-09-01-electing-new-project-directors.md +++ b/posts/2023-09-01-electing-new-project-directors.md @@ -14,6 +14,8 @@ We ask all project members to begin working with their Leadership Council repres [pde-process]: https://github.com/rust-lang/leadership-council/pull/12 +## What are Project Directors? + The Rust Foundation Board of Directors has five seats reserved for Project Directors. These Project Directors serve as representatives of the Rust project itself on the Board. Like all Directors, the Project Directors are elected by the entity they represent, which in the case of the Rust Project means they are elected by the Rust Leadership Council. @@ -32,7 +34,7 @@ The goal is to bubble these up to the Council through each of the top-level team You should be hearing from your Council Representative soon with more details, but if not, feel free to reach out to them directly. Each team is encouraged to suggest candidates. -Since we are electing two new directors, it would be ideal for teams to nominate two candidates, but teams can nominate more or fewer as they see fit. +Since we are electing two new directors, it would be ideal for teams to nominate at least two candidates. Nominees can be anyone in the project and do not have to be a member of the team who nominates them. The candidate gathering process will be open until September 15, at which point each team's Council Representative will share their team's nominations and reasoning with the whole Leadership Council. From 096652f2ea34fa075d7cd0cd93ba10c9af628520 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 25 Aug 2023 11:20:45 -0500 Subject: [PATCH 0098/1024] Announce change in Cargo.lock policy --- posts/2023-09-01-committing-lockfiles.md | 64 ++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 posts/2023-09-01-committing-lockfiles.md diff --git a/posts/2023-09-01-committing-lockfiles.md b/posts/2023-09-01-committing-lockfiles.md new file mode 100644 index 000000000..c516fcd22 --- /dev/null +++ b/posts/2023-09-01-committing-lockfiles.md @@ -0,0 +1,64 @@ +--- +layout: post +title: "Change in Guidance on Committing Lockfiles" +author: Ed Page +team: The Cargo Team +--- + +For years, the Cargo team has encouraged Rust developers to +[commit their `Cargo.lock` file for packages with binaries but not libraries](https://doc.rust-lang.org/1.71.1/cargo/faq.html#why-do-binaries-have-cargolock-in-version-control-but-not-libraries). +We now recommend people +[do what is best for their project](https://doc.rust-lang.org/nightly/cargo/faq.html#why-have-cargolock-in-version-control). +To help people make a decision, we do include some considerations and suggest +committing `Cargo.lock` as a starting point in your decision making. +To align with that starting point, `cargo new` will no longer ignore +`Cargo.lock` for libraries as of nightly-2023-08-24. +Regardless of what decision you make, we encourage regular +[testing against your latest dependencies](https://doc.rust-lang.org/nightly/cargo/guide/continuous-integration.html#verifying-latest-dependencies). + +## Background + +The old guidelines ensured libraries tested their latest dependencies which +helped us keep quality high within Rust's package ecosystem by ensuring issues, +especially backwards compatibility issues, +were quickly found and addressed. +While this extra testing was not exhaustive, +We believe it helped foster a culture of quality in this nascent ecosystem. + +This hasn't been without its downsides though. +This has removed an important piece of history from code bases, +making bisecting to find the root cause of a bug harder for maintainers. +For contributors, +especially newer ones, +this is another potential source of confusion and frustration from an unreliable CI whenever a +dependency is yanked or a new release contains a bug. + +## Why the change + +A lot as changed for Rust since the guideline was written. +Rust has shifted from being a language for early adopters to being more mainstream, +and we need to be mindful of the on-boarding experience of these new-to-Rust developers. +Also with this wider adoption, it isn't always practical to assume everyone is using +the latest Rust release and the community has been working through how to +manage support for minimum-supported Rust versions (MSRV). +Part of this is maintaining an instance of your dependency tree that can build +with your MSRV. +A lockfile is an appropriate way to pin versions for your project so you +can validate your MSRV but we found people were instead putting upperbounds on their +version requirements due to the strength of our prior guideline despite +[likely being a worse solution](https://doc.rust-lang.org/nightly/cargo/reference/specifying-dependencies.html#multiple-requirements). + +The wider software development ecosystem has also changed a lot in the +intervening time. +CI has become easier to setup and maintain. +We also have products like +[Dependabot](https://docs.github.com/en/code-security/dependabot/working-with-dependabot) +and +[Renovate](https://docs.renovatebot.com/). +This has opened up options besides having version control ignore `Cargo.lock` to test newer dependencies. +Developers could have a scheduled job that first runs `cargo update`. +They could also have bots regularly update their `Cargo.lock` in PRs, ensuring +they pass CI before being merged. + +Since there isn't a universal answer to these situations, +we felt it was best to give developers the information they need in making a decision. From 91de75f29ce1149d27889f166f082dbdf49706fb Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 25 Aug 2023 11:25:36 -0500 Subject: [PATCH 0099/1024] Tweaks to language --- posts/2023-09-01-committing-lockfiles.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/posts/2023-09-01-committing-lockfiles.md b/posts/2023-09-01-committing-lockfiles.md index c516fcd22..d9bf4d44b 100644 --- a/posts/2023-09-01-committing-lockfiles.md +++ b/posts/2023-09-01-committing-lockfiles.md @@ -10,11 +10,11 @@ For years, the Cargo team has encouraged Rust developers to We now recommend people [do what is best for their project](https://doc.rust-lang.org/nightly/cargo/faq.html#why-have-cargolock-in-version-control). To help people make a decision, we do include some considerations and suggest -committing `Cargo.lock` as a starting point in your decision making. +committing `Cargo.lock` as a starting point in their decision making. To align with that starting point, `cargo new` will no longer ignore `Cargo.lock` for libraries as of nightly-2023-08-24. -Regardless of what decision you make, we encourage regular -[testing against your latest dependencies](https://doc.rust-lang.org/nightly/cargo/guide/continuous-integration.html#verifying-latest-dependencies). +Regardless of what decision projects make, we encourage regular +[testing against their latest dependencies](https://doc.rust-lang.org/nightly/cargo/guide/continuous-integration.html#verifying-latest-dependencies). ## Background From 098b07c09e28150b94e3e7f07f8345547c2d54c8 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 25 Aug 2023 11:42:08 -0500 Subject: [PATCH 0100/1024] Tweaked closing paragraph --- posts/2023-09-01-committing-lockfiles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-09-01-committing-lockfiles.md b/posts/2023-09-01-committing-lockfiles.md index d9bf4d44b..d709ec250 100644 --- a/posts/2023-09-01-committing-lockfiles.md +++ b/posts/2023-09-01-committing-lockfiles.md @@ -61,4 +61,4 @@ They could also have bots regularly update their `Cargo.lock` in PRs, ensuring they pass CI before being merged. Since there isn't a universal answer to these situations, -we felt it was best to give developers the information they need in making a decision. +we felt it was best to leave the choice to developers and give them information they need in making a decision. From 6f5028967cdeaa94a6681ffa9b8909324a46b1c4 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 25 Aug 2023 12:29:03 -0500 Subject: [PATCH 0101/1024] Add feedback links --- posts/2023-09-01-committing-lockfiles.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/posts/2023-09-01-committing-lockfiles.md b/posts/2023-09-01-committing-lockfiles.md index d709ec250..d157d74fb 100644 --- a/posts/2023-09-01-committing-lockfiles.md +++ b/posts/2023-09-01-committing-lockfiles.md @@ -62,3 +62,7 @@ they pass CI before being merged. Since there isn't a universal answer to these situations, we felt it was best to leave the choice to developers and give them information they need in making a decision. +For feedback on this policy change, +see [rust-lang/cargo#8728](https://github.com/rust-lang/cargo/issues/8728). +You can also reach out the the Cargo team more generally on +[Zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo). From 0bf1df88580478f420ac3c38513ac5e0bdee7476 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Fri, 25 Aug 2023 10:37:52 -0700 Subject: [PATCH 0102/1024] Added an acknowledgments section --- posts/2023-09-01-electing-new-project-directors.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/posts/2023-09-01-electing-new-project-directors.md b/posts/2023-09-01-electing-new-project-directors.md index 3442e6de8..3e3a11105 100644 --- a/posts/2023-09-01-electing-new-project-directors.md +++ b/posts/2023-09-01-electing-new-project-directors.md @@ -70,3 +70,10 @@ Below are the key dates: * Election meeting: Week of October 1 After the election meeting happens, the Rust Leadership Council will announce the results and the new Project Directors will assume their responsibilities. + +## Acknowledgements + +A number of people have been involved in designing and launching this election process and we wish to extend a heartfelt thanks to all of them! +We'd especially like to thank the members of the Project Director Election Proposal Committee: Jane Losare-Lusby, Eric Holk, and Ryan Levick. +Additionally, many members of the Rust Community have provided feedback and thoughtful discussions that led to significant improvements to the process. +We are grateful for all of your contributions. From ee4d923637e80133116032e59d528b606f3c2d99 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Fri, 25 Aug 2023 13:39:46 -0400 Subject: [PATCH 0103/1024] Add post on leadership council initiatives (#1134) --- .../2023-08-25-leadership-initiatives.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 posts/inside-rust/2023-08-25-leadership-initiatives.md diff --git a/posts/inside-rust/2023-08-25-leadership-initiatives.md b/posts/inside-rust/2023-08-25-leadership-initiatives.md new file mode 100644 index 000000000..929283a74 --- /dev/null +++ b/posts/inside-rust/2023-08-25-leadership-initiatives.md @@ -0,0 +1,28 @@ +--- +layout: post +title: "Seeking help for initial Leadership Council initiatives" +author: Mark Rousskov +team: the leadership council +--- + +Having not heard any significant disagreement with the first set of [proposed priorities], +we are moving ahead with forming subgroups that will work towards defining and +completing the work needed to drive these forward. We plan to re-assess +priorities regularly, but for now these are our main work items (in no +particular order). We have some initial volunteers who will be pushing these +initiatives forward, but for all of these we are also looking for support from +any interested people. Please reach out on Zulip in [#council][#council] if +you'd like to help out with any of these in some capacity, or to the initial +volunteers called out here. + +* Establishing plans for how to strengthen the moderation team (i.e., 2 is not a sustainable number) and strengthen moderation policies. + * [Josh Gould](https://github.com/technetos) is leading, with support from [Eric Holk](https://github.com/eholk). Their top priority is finding additional moderators and forming a contingent moderator team. +* Figuring out the "shape" of the Rust Project. The Leadership Council needs to reflect the will of the Rust Project so it is important to know who that includes. + * [Eric Huss](https://github.com/ehuss) is leading, with support from [Jack Huey](https://github.com/jackh726). They're working on defining the initial set of priorities here now. +* Documenting and improving processes for interaction with the Rust Foundation including formalising the role of project directors in this process (the trademark policy process may be part of this). + * We are looking for someone to help lead this initiative, with support from [Mark Rousskov](https://github.com/Mark-Simulacrum/) and [Ryan Levick](https://github.com/rylev), two of the current project directors. One of the proposed first concrete deliverables might be working towards a path forward on the trademark issue, using that as a stepping stone to defining broader policies. We're intentionally looking for someone *not* directly involved previously to help give an outside perspective as the lead. + +Please reach out if you're interested in helping! + +[#council]: https://rust-lang.zulipchat.com/#narrow/stream/392734-council +[proposed priorities]: https://blog.rust-lang.org/inside-rust/2023/07/25/leadership-council-update.html From 9181364eefcf03ec5ded60a63d1bc8ccb9505a92 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 28 Aug 2023 11:19:06 -0500 Subject: [PATCH 0104/1024] Expect the post to be merged tomorrow --- ...committing-lockfiles.md => 2023-08-29-committing-lockfiles.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2023-09-01-committing-lockfiles.md => 2023-08-29-committing-lockfiles.md} (100%) diff --git a/posts/2023-09-01-committing-lockfiles.md b/posts/2023-08-29-committing-lockfiles.md similarity index 100% rename from posts/2023-09-01-committing-lockfiles.md rename to posts/2023-08-29-committing-lockfiles.md From 6435cec075792ed5c828241cfbffd5e744cfc869 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Tue, 29 Aug 2023 16:21:39 -0400 Subject: [PATCH 0105/1024] Publish post on leadership council membership changes --- ...9-leadership-council-membership-changes.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 posts/inside-rust/2023-08-29-leadership-council-membership-changes.md diff --git a/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md b/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md new file mode 100644 index 000000000..fc8f0dd34 --- /dev/null +++ b/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md @@ -0,0 +1,20 @@ +--- +layout: post +title: "Leadership Council Membership Changes" +author: Carol Nichols +team: the leadership council +--- + +As of today, Khionu Sybiern will no longer be the representative of the Moderation team on the +Leadership Council, and she is also stepping down from the Moderation Team entirely, for personal +reasons. She hopes to return to contributing in the future. Josh Gould will be joining the +Leadership Council as the Moderation Team representative. + +We thank Khionu for her extensive time and incredibly important contributions to the Moderation +Team and the Leadership Council. We wish her the best, and that she returns to the Rust community +when she's ready. We thank Josh for being able to fill the Leadership Council role and look forward +to working with them! + +We had already begun working on growing the essential Moderation Team before; because of that and +Khio stepping down, we are also pleased to announce that Oliver Scherer (oli-obk) has joined the +Moderation Team. Please join us in welcoming Oli! From 18b7a37954327969740fb298fee9242ecec62136 Mon Sep 17 00:00:00 2001 From: Veera Date: Tue, 29 Aug 2023 16:52:48 -0400 Subject: [PATCH 0106/1024] Fix typo for "committing-lockfiles" --- posts/2023-08-29-committing-lockfiles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-08-29-committing-lockfiles.md b/posts/2023-08-29-committing-lockfiles.md index d157d74fb..6a13216ca 100644 --- a/posts/2023-08-29-committing-lockfiles.md +++ b/posts/2023-08-29-committing-lockfiles.md @@ -35,7 +35,7 @@ dependency is yanked or a new release contains a bug. ## Why the change -A lot as changed for Rust since the guideline was written. +A lot has changed for Rust since the guideline was written. Rust has shifted from being a language for early adopters to being more mainstream, and we need to be mindful of the on-boarding experience of these new-to-Rust developers. Also with this wider adoption, it isn't always practical to assume everyone is using From 321975d21786d5bbdf3e2847ccc7abcb2935cdd4 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Tue, 29 Aug 2023 15:14:44 -0700 Subject: [PATCH 0107/1024] Edits based on review suggestions --- posts/2023-09-01-electing-new-project-directors.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/posts/2023-09-01-electing-new-project-directors.md b/posts/2023-09-01-electing-new-project-directors.md index 3e3a11105..56ecf9536 100644 --- a/posts/2023-09-01-electing-new-project-directors.md +++ b/posts/2023-09-01-electing-new-project-directors.md @@ -22,6 +22,9 @@ Like all Directors, the Project Directors are elected by the entity they represe Project Directors serve for a term of two years and will have staggered terms. This year we will appoint two new directors and next year we will appoint three new directors. +The current project directors are Jane Losare-Lusby, Josh Stone, Mark Rousskov, Ryan Levick and Tyler Mandry. +This year, Jane Losare-Lusby and Josh Stone will be rotating out of their roles as Project Directors, so the current elections are to fill their seats. + We want to make sure the Project Directors can effectively represent the project as a whole, so we are soliciting input from the whole project. The elections process will go through two phases: Candidate Gathering and Election. Read on for more detail about how these work. @@ -29,7 +32,7 @@ Read on for more detail about how these work. ## Candidate Gathering The first phase is beginning right now. -In this phase, we are inviting the members of the Rust Project to nominate people who will make good project directors. +In this phase, we are inviting the members of all of the top level Rust teams and their subteams to nominate people who will make good project directors. The goal is to bubble these up to the Council through each of the top-level teams. You should be hearing from your Council Representative soon with more details, but if not, feel free to reach out to them directly. From 68f34fca7766a76cf10c85b457ac35681cf8b0aa Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Tue, 29 Aug 2023 15:17:17 -0700 Subject: [PATCH 0108/1024] Update publication date to tomorrow --- ...-directors.md => 2023-08-30-electing-new-project-directors.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2023-09-01-electing-new-project-directors.md => 2023-08-30-electing-new-project-directors.md} (100%) diff --git a/posts/2023-09-01-electing-new-project-directors.md b/posts/2023-08-30-electing-new-project-directors.md similarity index 100% rename from posts/2023-09-01-electing-new-project-directors.md rename to posts/2023-08-30-electing-new-project-directors.md From b69a6ee12cbd693c99a9c6934ec4dc12836f8ec2 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Wed, 30 Aug 2023 09:13:20 -0700 Subject: [PATCH 0109/1024] Add post on the crates.io malware incident --- ...2023-08-30-crates-io-malware-postmortem.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 posts/inside-rust/2023-08-30-crates-io-malware-postmortem.md diff --git a/posts/inside-rust/2023-08-30-crates-io-malware-postmortem.md b/posts/inside-rust/2023-08-30-crates-io-malware-postmortem.md new file mode 100644 index 000000000..082b7fafd --- /dev/null +++ b/posts/inside-rust/2023-08-30-crates-io-malware-postmortem.md @@ -0,0 +1,55 @@ +--- +layout: post +title: "crates.io Postmortem: User Uploaded Malware" +author: Adam Harvey +team: the crates.io team +--- + +## Summary + +On August 16, the crates.io team was notified by Louis Lang at [Phylum][phylum] of a new user who had uploaded nine crates that typosquatted[^typosquatting] popular crates with ill intent. The crates were immediately yanked and the user account locked, and the crates were then fully removed from the crates.io file store on August 18. + +Phylum have also written [their own blog][phylum-blog] on this incident. + +## Contents + +These crates contained malicious `build.rs` files that would attempt to send metadata from the user's computer to a Telegram[^telegram] channel, including their operating system, IP address, and geolocation information based on their IP address.[^geolocation] + +One version of one crate also contained a copy of the PuTTY[^putty] installer, with the `build.rs` spawning PuTTY instead of sending metadata to Telegram. Our assumption is that this was an earlier stage of experimenting with what was possible from a `build.rs` file. + +## Actions taken + +The crates were yanked and the associated user account was locked immediately after the crates.io team received the report. This would not have prevented someone from downloading the crate files directly from static.crates.io, but removed the crates from the crate index and made them uninstallable through normal `cargo` usage. + +After [analysing](#analysis) the crates in question and the logs related to all actions taken by this user — from signing up, searching for crates to typosquat, and finally to publishing the crates — we decided to delete the crates entirely from static.crates.io to prevent any further possibility of attack.[^deletion] The deletion was performed at 17:22 UTC on August 18, 2023. + +## Analysis + +In this case, the crates were solely and very obviously crafted for malicious purposes. + +We have no evidence that any of these crates were downloaded by an actual user — analysis of the user agents associated with the download requests for these crates in our logs suggest that the only downloads were automated scanner and mirroring actions. + +The user associated with these crates took no other actions — malicious or otherwise — in the 30 days[^retention] prior to August 18. + +## Future actions + +The [Rust Foundation][foundation]'s [Security Initiative][init] is planning future work on scanning all crate uploads, both in terms of typosquatting and the actual contents of the crate files. The prototypes of both projects would have detected these crate files, and the crates.io team intends to work with the Foundation to implement these scanners once ready. + +## Thanks + +Our thanks to Louis Lang at [Phylum][phylum] for reporting the crates, Josh Stone for facilitating the report, and Walter Pearce at the [Rust Foundation][foundation] for assisting with the analysis. + +[^deletion]: The crates were preserved for future analysis should there be other attacks, and to inform scanning efforts in the future. +[^geolocation]: One wonders why they couldn't do this after sending the IP address to their Telegram channel, but federated workloads are apparently all the rage in 2023. +[^putty]: [PuTTY][putty] is a popular SSH client for Windows. +[^retention]: One year of logs are retained on crates.io, but only 30 days are immediately available on our log platform. We chose not to go further back in our analysis, since IP address based analysis is limited by the use of dynamic IP addresses in the wild, and the relevant IP address being part of an allocation to a residential ISP. +[^telegram]: [Telegram][telegram] is a popular instant messaging app. +[^typosquatting]: [Typosquatting][typosquatting] is a technique used by bad actors to initiate dependency confusion attacks where a legitimate user might be tricked into using a malicious dependency instead of their intended dependency — for example, a bad actor might try to publish a crate at `proc-macro` to catch users of the legitimate `proc-macro2` crate. + +[foundation]: https://foundation.rust-lang.org/ +[init]: https://foundation.rust-lang.org/news/2022-09-13-rust-foundation-establishes-security-team/ +[phylum]: https://www.phylum.io/ +[phylum-blog]: https://blog.phylum.io/rust-malware-staged-on-crates-io/ +[putty]: https://www.putty.org/ +[telegram]: https://telegram.org/ +[typosquatting]: https://docs.npmjs.com/threats-and-mitigations#by-typosquatting--dependency-confusion From a39f8c79dfb4365c0c4d48b699b66314566af954 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Wed, 30 Aug 2023 12:00:08 -0700 Subject: [PATCH 0110/1024] Update link to point at the merged election process document --- posts/2023-08-30-electing-new-project-directors.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/posts/2023-08-30-electing-new-project-directors.md b/posts/2023-08-30-electing-new-project-directors.md index 56ecf9536..ac8a70dd6 100644 --- a/posts/2023-08-30-electing-new-project-directors.md +++ b/posts/2023-08-30-electing-new-project-directors.md @@ -11,8 +11,7 @@ We will summarize everything here, but if you would like to you can read the [of We ask all project members to begin working with their Leadership Council representative to nominate potential Project Directors. See the [Candidate Gathering](#candidate-gathering) section for more details. Nominations are due by September 15, 2023. - -[pde-process]: https://github.com/rust-lang/leadership-council/pull/12 +[pde-process]: https://github.com/rust-lang/leadership-council/blob/main/policies/project-director-election-process.md ## What are Project Directors? From adc3806e0808b063befd653dc45ac74c06632a7b Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Wed, 30 Aug 2023 12:03:58 -0700 Subject: [PATCH 0111/1024] Add a thanks to our departing directors --- posts/2023-08-30-electing-new-project-directors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/posts/2023-08-30-electing-new-project-directors.md b/posts/2023-08-30-electing-new-project-directors.md index ac8a70dd6..beb7f7124 100644 --- a/posts/2023-08-30-electing-new-project-directors.md +++ b/posts/2023-08-30-electing-new-project-directors.md @@ -23,6 +23,7 @@ This year we will appoint two new directors and next year we will appoint three The current project directors are Jane Losare-Lusby, Josh Stone, Mark Rousskov, Ryan Levick and Tyler Mandry. This year, Jane Losare-Lusby and Josh Stone will be rotating out of their roles as Project Directors, so the current elections are to fill their seats. +We are grateful for the work the Jane and Josh have put in during their terms as Project Directors! We want to make sure the Project Directors can effectively represent the project as a whole, so we are soliciting input from the whole project. The elections process will go through two phases: Candidate Gathering and Election. From 800e182cb7009c53e8288ee6013bb33a61fb8ead Mon Sep 17 00:00:00 2001 From: "Sergey \"Shnatsel\" Davidoff" Date: Thu, 31 Aug 2023 19:03:47 +0200 Subject: [PATCH 0112/1024] Create 2023-08-29-keeping-secure-with-cargo-audit-0.18.md Release announcement for cargo-audit v0.18 --- ...29-keeping-secure-with-cargo-audit-0.18.md | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md diff --git a/posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md b/posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md new file mode 100644 index 000000000..666bdb1e9 --- /dev/null +++ b/posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md @@ -0,0 +1,71 @@ +--- +layout: post +title: "Keeping Rust projects secure with cargo-audit 0.18: performance, compatibility and security improvements" +author: Sergey "Shnatsel" Davidoff +description: "A look at the new features in cargo-audit 0.18 for ensuring dependencies are free of known vulnerabilities" +team: the Secure Code WG +--- + +[`cargo audit`](https://crates.io/crates/cargo-audit) checks your project's dependencies for known security vulnerabilites. + +By default `cargo audit` checks on your `Cargo.lock` file, but it can also [scan compiled binaries](https://github.com/rustsec/rustsec/tree/main/cargo-audit#cargo-audit-bin-subcommand). You can install `cargo-audit` and run it against your project with the following commands: + +``` +$ cargo install cargo-audit +$ cargo audit +``` + +Both `cargo audit` and the [RustSec](https://rustsec.org/) advisory database that powers it are maintaiend by the [Rust Secure Code working group](https://www.rust-lang.org/governance/wgs/wg-secure-code). + +## What's new in this release + +### Performance + +`cargo audit` now uses the [sparse crates.io index](https://blog.rust-lang.org/inside-rust/2023/01/30/cargo-sparse-protocol.html) when checking for yanked crates. This dramatically speeds up the scanning process because `cargo audit` no longer needs to download the entire crates.io index, which could take up to several minutes. + +Sparse index is used by default if you are running Rust 1.70 or later, same as in Cargo itself. `cargo audit` honors [the Cargo settings for the use of sparse index](https://doc.rust-lang.org/cargo/reference/config.html#registriescrates-ioprotocol), should you need to opt out for any reason. + +### Security + +`cargo audit` previously relied on [OpenSSL](https://en.wikipedia.org/wiki/OpenSSL) on all platforms. In this release we have switched to [rustls](https://crates.io/crates/rustls) - a high-quality, memory-safe TLS implementation in Rust. + +In contrast to OpenSSL's [history](https://www.openssl.org/news/vulnerabilities.html) of high-severity vulnerabilities, rustls has a stellar track record and eliminates entire classes vulnerabilities by construction. It has passed an independent audit with flying colors; the auditors even [noted](https://github.com/rustls/rustls/blob/main/audit/TLS-01-report.pdf) that they "had the rare pleasure of being impressed with the exceptional quality of the presented software". + +Since TLS constitutes the vast majority of the attack surface of `cargo audit`, we are very excited to use a more secure TLS implementation! + +### Compatibility + +A number of long-standing issues are resolved thanks to switching from [libgit2](https://github.com/libgit2/libgit2) to [gitoxide](https://github.com/Byron/gitoxide) as our git implementation: + + 1. [`cargo audit` can now run in Alpine Linux containers](https://github.com/rustsec/rustsec/issues/466). + 1. [Several instances of `cargo audit` running in parallel can now fetch Git repositories without issue](https://github.com/rustsec/rustsec/issues/490). + 4. [Accessing Git repositories over SSH is now supported](https://github.com/rustsec/rustsec/issues/292). + 3. [Credential helpers to access private repositories are now supported](https://github.com/rustsec/rustsec/issues/555). + +## Known issues + +### Limited CPU architecture support + +CPU architectures other than x86 and ARM are not supported by this release. This is due to [ring](https://github.com/briansmith/ring), the cryptographic library used by rustls, not supporting other CPU architectures yet. + +rustls is [in the process](https://github.com/rustls/rustls/issues/521) of adding support for other cryptographic libraries. We will consider adding support for another TLS implementation if no portable cryptographic library for rustls materializes in the near future. + +In the meantime we recommend using the previous release on uncommon CPU architectures. You may also consider other tools that read `Cargo.lock` files and the RustSec advisory database, such as [Trivy](https://github.com/aquasecurity/trivy), [osv-scanner](https://github.com/google/osv-scanner) or [Dependabot](https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts). + +### `cargo audit fix` is not converted + +The experimental subcommand `cargo audit fix` to automatically upgrade vulnerable dependencies has existed for a while but has been disabled by default. It has **not** been converted to use gitoxide and rustls in this release, and has not benefited from any of these improvements. + +We will likely [rewrite this feature from the ground up](https://github.com/rustsec/rustsec/issues/938) before enabling it by default in subsequent releases. + +## Reporting issues + +Due to the sweeping changes to the libraries `cargo audit` relies on for git protocol and networking there are bound to be subtle differences in behavior compared to previous versions. + +If you encounter issues with this latest release, please [report it to us on Github](https://github.com/rustsec/rustsec/issues/new). Thank you! + +## Acknowledgements + +Thanks to [Jake Shadle](https://github.com/Jake-Shadle) who did most of the work in this release, as well as for creating the [`tame-index`](https://github.com/EmbarkStudios/tame-index) crate that enabled sparse registry support in `cargo audit`. + +Thanks to [Sebastian Thiel](https://github.com/Byron) for creating [`gitoxide`](https://github.com/Byron/gitoxide) and improving it to accommodate the `cargo audit` requirements, as well as helping review the changes. From 292743edf46d9ee0ef5db0bd461542c49c73ee19 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Fri, 1 Sep 2023 10:43:03 -0700 Subject: [PATCH 0113/1024] Update date. --- ...e-postmortem.md => 2023-09-01-crates-io-malware-postmortem.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2023-08-30-crates-io-malware-postmortem.md => 2023-09-01-crates-io-malware-postmortem.md} (100%) diff --git a/posts/inside-rust/2023-08-30-crates-io-malware-postmortem.md b/posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md similarity index 100% rename from posts/inside-rust/2023-08-30-crates-io-malware-postmortem.md rename to posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md From abf3a7166d6bdbf8b38f795531522b9870ae6991 Mon Sep 17 00:00:00 2001 From: Caleb Zulawski Date: Fri, 1 Sep 2023 16:15:12 -0400 Subject: [PATCH 0114/1024] fix typo --- posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md b/posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md index 666bdb1e9..5187cb4e0 100644 --- a/posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md +++ b/posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md @@ -15,7 +15,7 @@ $ cargo install cargo-audit $ cargo audit ``` -Both `cargo audit` and the [RustSec](https://rustsec.org/) advisory database that powers it are maintaiend by the [Rust Secure Code working group](https://www.rust-lang.org/governance/wgs/wg-secure-code). +Both `cargo audit` and the [RustSec](https://rustsec.org/) advisory database that powers it are maintained by the [Rust Secure Code working group](https://www.rust-lang.org/governance/wgs/wg-secure-code). ## What's new in this release From 3ea5ce22a132341a484eb5585a5ec2ac5f1b7e07 Mon Sep 17 00:00:00 2001 From: "Sergey \"Shnatsel\" Davidoff" Date: Sat, 2 Sep 2023 10:33:29 +0200 Subject: [PATCH 0115/1024] Move cargo-audit announcement to inside-rust blog, it was on the main blog by mistake --- .../2023-08-29-keeping-secure-with-cargo-audit-0.18.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{ => inside-rust}/2023-08-29-keeping-secure-with-cargo-audit-0.18.md (100%) diff --git a/posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md b/posts/inside-rust/2023-08-29-keeping-secure-with-cargo-audit-0.18.md similarity index 100% rename from posts/2023-08-29-keeping-secure-with-cargo-audit-0.18.md rename to posts/inside-rust/2023-08-29-keeping-secure-with-cargo-audit-0.18.md From 79786bbba5aa1f87031305a4d1e495768e7ead9f Mon Sep 17 00:00:00 2001 From: "Sergey \"Shnatsel\" Davidoff" Date: Sat, 2 Sep 2023 10:34:53 +0200 Subject: [PATCH 0116/1024] schedule the cargo-audit release announcement for the 4th of September --- ...0.18.md => 2023-09-04-keeping-secure-with-cargo-audit-0.18.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2023-08-29-keeping-secure-with-cargo-audit-0.18.md => 2023-09-04-keeping-secure-with-cargo-audit-0.18.md} (100%) diff --git a/posts/inside-rust/2023-08-29-keeping-secure-with-cargo-audit-0.18.md b/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md similarity index 100% rename from posts/inside-rust/2023-08-29-keeping-secure-with-cargo-audit-0.18.md rename to posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md From 206c63a3b1e04ce61e74a0aafe3a60486a0521dc Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Thu, 7 Sep 2023 12:47:55 +0200 Subject: [PATCH 0117/1024] add post on infra leadership change --- ...2023-09-07-infra-team-leadership-change.md | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 posts/inside-rust/2023-09-07-infra-team-leadership-change.md diff --git a/posts/inside-rust/2023-09-07-infra-team-leadership-change.md b/posts/inside-rust/2023-09-07-infra-team-leadership-change.md new file mode 100644 index 000000000..51aaf44e1 --- /dev/null +++ b/posts/inside-rust/2023-09-07-infra-team-leadership-change.md @@ -0,0 +1,52 @@ +--- +layout: post +title: "Leadership change in the Rust Infrastructure Team" +author: Pietro Albini +team: the infrastructure team +--- + +After almost four years leading the Rust Infrastructure Team, in late July I +[expressed my intent to step down as lead of the team][resign] to focus back on +technical work. On one side, I need to rest and recharge after doing +organizational and governance work for so long. On the other side, it's healthy +for the team to rotate its leadership role to bring fresh ideas to the table! + +Like the other Rust teams, the lead in the infra team is not who makes the +final decision, and their vote doesn't have more weight. We make all decisions +together, and the lead is mostly responsible for running meetings, making sure +important tasks are not dropped on the floor, and representing the team with +third parties. + +The whole team met this week to discuss our future. We decided that we want to +take inspiration from [the compiler team's rolling leads][compiler]: we will +have two leads at the same time, with the expectation that after a number of +years (still to be defined) the one who served the most time as lead will step +down, making space for a new lead. We will also document our process in the +coming months. + +We also have consensus on the two new leads of the team! I'm happy to announce +that for the next few years, the new team leads for infra will be: + +* Jake Goulding ([@shepmaster]), long time member of the infra team. He + maintains the [Rust Playground][play], and has been instrumental in the + support for Apple Silicon in our CI. + +* Jan David Nose ([@jdno]), who joined the Rust Foundation last year to work + full-time inside the infrastructure team, bringing a lot of experience and + time. + +On behalf of the team I want to thank them for stepping up, and we all wish +them best of luck in their new role! + +As for myself, I'm proud of the work the whole team has been doing over the +past four years and all the challenges we overcame. It's been an honor serving +as the lead and I look forward to going back to technical work in the coming +months. + +Pietro. + +[resign]: https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/team.20leadership/near/380328076 +[compiler]: https://rust-lang.github.io/rfcs/3262-compiler-team-rolling-leads.html +[play]: https://play.rust-lang.org +[@shepmaster]: https://github.com/shepmaster +[@jdno]: https://github.com/jdno From 2672f7c03401556ada208c74f65f5ed871011142 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Fri, 8 Sep 2023 15:22:58 +0200 Subject: [PATCH 0118/1024] change date --- ...rship-change.md => 2023-09-08-infra-team-leadership-change.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2023-09-07-infra-team-leadership-change.md => 2023-09-08-infra-team-leadership-change.md} (100%) diff --git a/posts/inside-rust/2023-09-07-infra-team-leadership-change.md b/posts/inside-rust/2023-09-08-infra-team-leadership-change.md similarity index 100% rename from posts/inside-rust/2023-09-07-infra-team-leadership-change.md rename to posts/inside-rust/2023-09-08-infra-team-leadership-change.md From 69c646dd276a6a5fc16b700ca6f85c24a447bbee Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 02:48:12 +0000 Subject: [PATCH 0119/1024] Creating file via promote-release automation --- .../2023-09-14-1.72.1-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-09-14-1.72.1-prerelease.md diff --git a/posts/inside-rust/2023-09-14-1.72.1-prerelease.md b/posts/inside-rust/2023-09-14-1.72.1-prerelease.md new file mode 100644 index 000000000..b9fbeff3e --- /dev/null +++ b/posts/inside-rust/2023-09-14-1.72.1-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.72.1 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.72.1 pre-release is ready for testing. The release is scheduled for +September 19. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-72-1-pre-release-testing/19566). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1721-2023-09-19 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 02148cc0ba4c8789bdaf7ee27525542c20f6600b Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Tue, 19 Sep 2023 10:11:07 -0400 Subject: [PATCH 0120/1024] Add 1.72.1 announcement (#1142) --- posts/2023-09-19-Rust-1.72.1.md | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 posts/2023-09-19-Rust-1.72.1.md diff --git a/posts/2023-09-19-Rust-1.72.1.md b/posts/2023-09-19-Rust-1.72.1.md new file mode 100644 index 000000000..a4e55ad9a --- /dev/null +++ b/posts/2023-09-19-Rust-1.72.1.md @@ -0,0 +1,38 @@ +--- +layout: post +title: "Announcing Rust 1.72.1" +author: The Rust Release Team +release: true +--- + +The Rust team has published a new point release of Rust, 1.72.1. Rust is a +programming language that is empowering everyone to build reliable and +efficient software. + +If you have a previous version of Rust installed via rustup, getting Rust +1.72.1 is as easy as: + +``` +rustup update stable +``` + +If you don't have it already, you can [get `rustup`][rustup] from the +appropriate page on our website. + +[rustup]: https://www.rust-lang.org/install.html + +## What's in 1.72.1 + +1.72.1 resolves a few regressions introduced in 1.72.0: + +- [Partially revert codegen change, improving codegen](https://github.com/rust-lang/rust/pull/115236) +- [rustdoc: Fix self ty params in objects with lifetimes](https://github.com/rust-lang/rust/pull/115276) +- [Fix regression in compile times](https://github.com/rust-lang/rust/pull/114948) +- Resolve some ICEs in the compiler: + - [#115215](https://github.com/rust-lang/rust/pull/115215) + - [#115559](https://github.com/rust-lang/rust/pull/115559) + +### Contributors to 1.72.1 + +Many people came together to create Rust 1.72.1. We couldn't have done it +without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.72.1/) From 8c53c94f0fa45e576e7cf497730cfadbfdad0234 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Tue, 19 Sep 2023 16:47:29 -0700 Subject: [PATCH 0121/1024] Update Project Director election timeline (#1144) --- posts/2023-08-30-electing-new-project-directors.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/posts/2023-08-30-electing-new-project-directors.md b/posts/2023-08-30-electing-new-project-directors.md index beb7f7124..bd32a80f0 100644 --- a/posts/2023-08-30-electing-new-project-directors.md +++ b/posts/2023-08-30-electing-new-project-directors.md @@ -68,12 +68,14 @@ This process will continue through all of September and into October. Below are the key dates: * Candidate nominations due: September 15 -* Candidates published: September 19 -* Feedback period: September 19 - 29 +* Candidates published: ~~September 19~~ September 22 +* Feedback period: ~~September 19 - 29~~ September 22 - October 2 * Election meeting: Week of October 1 After the election meeting happens, the Rust Leadership Council will announce the results and the new Project Directors will assume their responsibilities. +*Edit: we have adjusted the candidate publication date due to delays in getting all the nominees ready.* + ## Acknowledgements A number of people have been involved in designing and launching this election process and we wish to extend a heartfelt thanks to all of them! From aa278f52cde9801ab5411493908d56d5c9b01508 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Wed, 20 Sep 2023 17:06:19 -0700 Subject: [PATCH 0122/1024] Initial draft pulled from HackMD --- .../2023-09-22-project-director-nominees.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 posts/inside-rust/2023-09-22-project-director-nominees.md diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md new file mode 100644 index 000000000..6b6aeb83d --- /dev/null +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -0,0 +1,24 @@ +# Announcing the Project Director Nominees + +After a couple of weeks of soliciting nominees from the Rust Project for potential new Project Directors, we are happy to present the list of nominees. Please note that none of these have been *elected* to the position yet. These are the people who the Leadership Council will consider as we work to elect three new Project Directors. + +Without further ado, the nominees are: + +- Mara Bos +- lcnr +- TC +- Felix +- Michael Goulet +- Jubilee +- Jakob Degen +- scottmcm +- Santiago Pastorino +- Amanieu + +These were all spoken of highly by their nominating teams. While several other candidates were suggested, not everyone who was nominated felt like they were in a place where they were able or wanted to accept the role if they were elected. + +Now we'd again like to ask the members of the Rust Project for their feedback. Please let us know if there's anything we should consider going into the election process. We hope that most of the feedback will be reasons we may not have considered yet for why they will be successful in the role, but if there are areas of necessary growth or other concerns that mean one or more of these nominees may not be a good fit for the role at this time, we want to know this as well! + +You may reach out to us either on the public #council channel on Zulip, through , or you may DM any council member on Zulip. + +We will be open for feedback through October 2, and elections will take place soon afterwards. We will announce the new Project Directors once the election is complete. From 7840939ec4348dac788b5dd2d53737fb256dde7a Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Wed, 20 Sep 2023 17:19:33 -0700 Subject: [PATCH 0123/1024] Revise the post --- .../2023-09-22-project-director-nominees.md | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index 6b6aeb83d..9c0ce534e 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -1,24 +1,29 @@ # Announcing the Project Director Nominees -After a couple of weeks of soliciting nominees from the Rust Project for potential new Project Directors, we are happy to present the list of nominees. Please note that none of these have been *elected* to the position yet. These are the people who the Leadership Council will consider as we work to elect three new Project Directors. +Over the past couple weeks, the Rust Leadership Council has been soliciting nominees from the whole Rust project for the role of Project Director. +Now that the nomination period is closed, we are happy to announce the list of nominees. +As described in our [last post], we will elect from these people three new Project Directors. -Without further ado, the nominees are: +The nominees are: -- Mara Bos -- lcnr -- TC -- Felix -- Michael Goulet -- Jubilee - Jakob Degen +- Amanieu +- Felix Klock +- lcnr - scottmcm +- Michael Goulet - Santiago Pastorino -- Amanieu +- Jubilee +- Mara Bos -These were all spoken of highly by their nominating teams. While several other candidates were suggested, not everyone who was nominated felt like they were in a place where they were able or wanted to accept the role if they were elected. +These were all spoken of highly by their nominating teams. +While several other candidates were suggested, not everyone who was nominated felt like they were in a place where they were able or wanted to accept the role if they were elected. -Now we'd again like to ask the members of the Rust Project for their feedback. Please let us know if there's anything we should consider going into the election process. We hope that most of the feedback will be reasons we may not have considered yet for why they will be successful in the role, but if there are areas of necessary growth or other concerns that mean one or more of these nominees may not be a good fit for the role at this time, we want to know this as well! +Now we'd again like to ask the members of the Rust Project for their feedback. +Please let us know if there's anything we should consider going into the election process. +We hope that most of the feedback will be reasons we may not have considered yet for why they will be successful in the role, but if there are areas of necessary growth or other concerns that mean one or more of these nominees may not be a good fit for the role at this time, we want to know this as well! -You may reach out to us either on the public #council channel on Zulip, through , or you may DM any council member on Zulip. +You may reach out to us either on the public [#council] channel on Zulip, through , or you may DM any council member on Zulip or email them directly. -We will be open for feedback through October 2, and elections will take place soon afterwards. We will announce the new Project Directors once the election is complete. +We will be open for feedback through October 2, and elections will take place soon afterwards. +We will announce the new Project Directors once the election is complete. From 39c95a9dfd7aa935a032fd6879d322cab28fab11 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Wed, 20 Sep 2023 17:25:41 -0700 Subject: [PATCH 0124/1024] Add missing link definitions --- posts/inside-rust/2023-09-22-project-director-nominees.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index 9c0ce534e..9dfa2e3ac 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -27,3 +27,6 @@ You may reach out to us either on the public [#council] channel on Zulip, throug We will be open for feedback through October 2, and elections will take place soon afterwards. We will announce the new Project Directors once the election is complete. + +[last post]: https://blog.rust-lang.org/2023/08/30/electing-new-project-directors.html +[#council]: https://rust-lang.zulipchat.com/#narrow/stream/392734-council From c65d9328747c9cda7f567d1be07d67d722b7cd73 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Wed, 20 Sep 2023 17:38:01 -0700 Subject: [PATCH 0125/1024] Adding frontmatter I promise I know how to do this! --- posts/inside-rust/2023-09-22-project-director-nominees.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index 9dfa2e3ac..3604bb2d9 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -1,3 +1,10 @@ +--- +layout: post +title: "Announcing the Project Director Nominees" +author: Leadership Council +team: Leadership Council +--- + # Announcing the Project Director Nominees Over the past couple weeks, the Rust Leadership Council has been soliciting nominees from the whole Rust project for the role of Project Director. From d964ddd4a70e6fb71b7b6a2f37d1d79ab964d9c0 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Thu, 21 Sep 2023 14:56:04 -0700 Subject: [PATCH 0126/1024] Add GH profile links for all nominees --- .../2023-09-22-project-director-nominees.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index 3604bb2d9..bce597e47 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -13,15 +13,15 @@ As described in our [last post], we will elect from these people three new Proje The nominees are: -- Jakob Degen -- Amanieu -- Felix Klock -- lcnr -- scottmcm -- Michael Goulet -- Santiago Pastorino -- Jubilee -- Mara Bos +- [Jakob Degen](https://github.com/JakobDegen) +- [Amanieu](https://github.com/Amanieu) +- [Felix Klock](https://github.com/pnkfelix) +- [lcnr](https://github.com/lcnr) +- [scottmcm](https://github.com/scottmcm) +- [Michael Goulet](https://github.com/compiler-errors) +- [Santiago Pastorino](https://github.com/spastorino) +- [Jubilee](https://github.com/workingjubilee) +- [Mara Bos](https://github.com/m-ou-se) These were all spoken of highly by their nominating teams. While several other candidates were suggested, not everyone who was nominated felt like they were in a place where they were able or wanted to accept the role if they were elected. From 5c1db78ed6771bb173f21c19b554843d3e12ea62 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Thu, 21 Sep 2023 15:08:56 -0700 Subject: [PATCH 0127/1024] Improve council contact instructions --- posts/inside-rust/2023-09-22-project-director-nominees.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index bce597e47..256ca9522 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -27,10 +27,10 @@ These were all spoken of highly by their nominating teams. While several other candidates were suggested, not everyone who was nominated felt like they were in a place where they were able or wanted to accept the role if they were elected. Now we'd again like to ask the members of the Rust Project for their feedback. -Please let us know if there's anything we should consider going into the election process. +Please contact the Council in general or your representative(s) to tell us what we should consider going into the election process. We hope that most of the feedback will be reasons we may not have considered yet for why they will be successful in the role, but if there are areas of necessary growth or other concerns that mean one or more of these nominees may not be a good fit for the role at this time, we want to know this as well! -You may reach out to us either on the public [#council] channel on Zulip, through , or you may DM any council member on Zulip or email them directly. +You may reach out to us either on the public [#council] channel on Zulip or by emailing the Leadership Council at . We will be open for feedback through October 2, and elections will take place soon afterwards. We will announce the new Project Directors once the election is complete. From a8d6738ade8289b0543e07cbce4e0ae9afa73338 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Thu, 21 Sep 2023 15:20:41 -0700 Subject: [PATCH 0128/1024] Add a not about Mara's conflict of interest --- posts/inside-rust/2023-09-22-project-director-nominees.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index 256ca9522..cd624fe28 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -32,8 +32,13 @@ We hope that most of the feedback will be reasons we may not have considered yet You may reach out to us either on the public [#council] channel on Zulip or by emailing the Leadership Council at . +We would also like to acknowledge the conflict of interest with Mara Bos since she is both a nominee and a member of the Leadership Council. +In keeping with the Leadership Council's [Conflict of Interest policy], Mara will recuse herself from the election process and instead the Libraries team will send an [alternate representative] to participate in the Project Director election. + We will be open for feedback through October 2, and elections will take place soon afterwards. We will announce the new Project Directors once the election is complete. [last post]: https://blog.rust-lang.org/2023/08/30/electing-new-project-directors.html [#council]: https://rust-lang.zulipchat.com/#narrow/stream/392734-council +[Conflict of Interest policy]: https://rust-lang.github.io/rfcs/3392-leadership-council.html#conflicts-of-interest +[alternate representative]: https://rust-lang.github.io/rfcs/3392-leadership-council.html#alternates-and-forgoing-representation From 25232b0a49ce421aa5b15c79a6835f5308e13f2a Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Thu, 21 Sep 2023 16:11:53 -0700 Subject: [PATCH 0129/1024] Update posts/inside-rust/2023-09-22-project-director-nominees.md Co-authored-by: Amanieu d'Antras --- posts/inside-rust/2023-09-22-project-director-nominees.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index cd624fe28..7f2fa4df3 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -14,7 +14,8 @@ As described in our [last post], we will elect from these people three new Proje The nominees are: - [Jakob Degen](https://github.com/JakobDegen) -- [Amanieu](https://github.com/Amanieu) +- [Amanieu d'Antras](https://github.com/Amanieu) + - [Felix Klock](https://github.com/pnkfelix) - [lcnr](https://github.com/lcnr) - [scottmcm](https://github.com/scottmcm) From 8604ae3d5c85ebc9e4280330f958c18716668643 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 22 Sep 2023 18:09:48 +0200 Subject: [PATCH 0130/1024] Inside Rust: Write "crates.io Policy Update RFC" blog post (#1143) Co-authored-by: Nathan Stocks Co-authored-by: Adam Harvey Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com> --- .../2023-09-22-crates-io-usage-policy-rfc.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 posts/2023-09-22-crates-io-usage-policy-rfc.md diff --git a/posts/2023-09-22-crates-io-usage-policy-rfc.md b/posts/2023-09-22-crates-io-usage-policy-rfc.md new file mode 100644 index 000000000..5e4cd134b --- /dev/null +++ b/posts/2023-09-22-crates-io-usage-policy-rfc.md @@ -0,0 +1,22 @@ +--- +layout: post +title: crates.io Policy Update RFC +author: Tobias Bieniek +team: the crates.io team +--- + +Around the end of July the crates.io team opened an [RFC](https://github.com/rust-lang/rfcs/pull/3463) to update the current crates.io usage policies. This policy update addresses operational concerns of the crates.io community service that have arisen since the last significant policy update in 2017, particularly related to name squatting and spam. The RFC has caused considerable discussion, and most of the suggested improvements have since been integrated into the proposal. + +At the last team meeting the crates.io team decided to move the RFC forward and start the **final comment period** process. + +We have been made aware by a couple of community members though that the RFC might not have been visible enough in the Rust community. We hope that this blog post changes that. + +We invite you all to review the RFC and let us know if there are still any major concerns with these proposed policies. + +Here is a quick **TL;DR**: + +- The current policies are quite vague on a couple of topics. The new policies are more explicit. +- Reserving names is still allowed, but only to a certain degree and if you have a good reason for it. +- The crates.io team will try to contact crate owners before taking any actions. + +Finally, if you have any comments, please open threads on the [RFC diff](https://github.com/rust-lang/rfcs/pull/3463/files) to keep the discussion somewhat structured. Thank you! From 08d9a2d3dced8fd0e63a63b6c121903fb2c46f97 Mon Sep 17 00:00:00 2001 From: Kevin Reid Date: Fri, 22 Sep 2023 09:54:54 -0700 Subject: [PATCH 0131/1024] =?UTF-8?q?crates.io=20Policy=20Update=20RFC:=20?= =?UTF-8?q?Specify=20what=20=E2=80=9Cthreads=20on=20the=20RFC=20diff?= =?UTF-8?q?=E2=80=9D=20is=20in=20opposition=20to=20(#1146)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I believe this is a useful clarification because without the contrast, it may not be clear what is being asked for, to people not already familiar with the details of GitHub code review features. --- posts/2023-09-22-crates-io-usage-policy-rfc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-09-22-crates-io-usage-policy-rfc.md b/posts/2023-09-22-crates-io-usage-policy-rfc.md index 5e4cd134b..c9ba7c704 100644 --- a/posts/2023-09-22-crates-io-usage-policy-rfc.md +++ b/posts/2023-09-22-crates-io-usage-policy-rfc.md @@ -19,4 +19,4 @@ Here is a quick **TL;DR**: - Reserving names is still allowed, but only to a certain degree and if you have a good reason for it. - The crates.io team will try to contact crate owners before taking any actions. -Finally, if you have any comments, please open threads on the [RFC diff](https://github.com/rust-lang/rfcs/pull/3463/files) to keep the discussion somewhat structured. Thank you! +Finally, if you have any comments, please open threads on the [RFC diff](https://github.com/rust-lang/rfcs/pull/3463/files), instead of using the main comment box, to keep the discussion more structured. Thank you! From 4035ea16651c3e1e106316617c023b07f4b60886 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Fri, 22 Sep 2023 14:24:01 -0400 Subject: [PATCH 0132/1024] remove empty line --- posts/inside-rust/2023-09-22-project-director-nominees.md | 1 - 1 file changed, 1 deletion(-) diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index 7f2fa4df3..1acfa6343 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -15,7 +15,6 @@ The nominees are: - [Jakob Degen](https://github.com/JakobDegen) - [Amanieu d'Antras](https://github.com/Amanieu) - - [Felix Klock](https://github.com/pnkfelix) - [lcnr](https://github.com/lcnr) - [scottmcm](https://github.com/scottmcm) From 5aed345a32f56abed2e3fc397e54cf6376cccf9a Mon Sep 17 00:00:00 2001 From: BlackHoleFox Date: Mon, 25 Sep 2023 10:54:13 -0500 Subject: [PATCH 0133/1024] Add increased minimum requirements for Apple targets blog post (#1140) --- ...5-Increasing-Apple-Version-Requirements.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 posts/2023-09-25-Increasing-Apple-Version-Requirements.md diff --git a/posts/2023-09-25-Increasing-Apple-Version-Requirements.md b/posts/2023-09-25-Increasing-Apple-Version-Requirements.md new file mode 100644 index 000000000..035fca3d0 --- /dev/null +++ b/posts/2023-09-25-Increasing-Apple-Version-Requirements.md @@ -0,0 +1,79 @@ + +--- +layout: post +title: "Increasing the minimum supported Apple platform versions" +author: BlackHoleFox +description: "Modernizing and improving Apple platform support for Rust" +--- + +As of Rust 1.74 (to be released on November 16th, 2023), the minimum version of Apple's platforms (iOS, macOS, and tvOS) that the Rust toolchain supports will be [increased](https://github.com/rust-lang/rust/pull/104385) to newer minimums. These changes affect both the Rust compiler itself (`rustc`), other host tooling, and most importantly, the standard library and any binaries produced that use it. With these changes in place, any binaries produced will stop loading on older versions or exhibit other, unspecified, behavior. + +The new minimum versions are now: +- macOS: 10.12 Sierra (First released 2016) +- iOS: 10 (First released 2016) +- tvOS: 10 (First released 2016) + +If your application does not target or support macOS 10.7-10.11 or iOS 7-9 already these changes most likely do not affect you. + +# Affected targets + +The following contains each affected target, and the comprehensive effects on it: +- `x86_64-apple-darwin` (Minimum OS raised) +- `aarch64-apple-ios` (Minimum OS raised) +- `aarch64-apple-ios-sim` (Minimum iOS *and macOS* version raised.) +- `x86_64-apple-ios` (Minimum iOS *and macOS* version raised. This is also a simulator target.) +- `aarch64-apple-tvos` (Minimum OS raised) +- `armv7-apple-ios` (Target removed. The oldest iOS 10-compatible device uses ARMv7s.) +- `armv7s-apple-ios` (Minimum OS raised) +- `i386-apple-ios` (Minimum OS raised) +- `i686-apple-darwin` (Minimum OS raised) +- `x86_64-apple-tvos` (Minimum tvOS *and macOS* version raised. This is also a simulator target.) + +From these changes, only one target has been removed entirely: `armv7-apple-ios`. It was a tier 3 target. + +Note that Mac Catalyst and M1/M2 (`aarch64`) Mac targets are not affected, as their minimum OS version already has a higher baseline. Refer to the [Platform Support Guide](https://doc.rust-lang.org/nightly/rustc/platform-support.html) for more information. + +# Affected systems + +These changes remove support for multiple older mobile devices (iDevices) and many more Mac systems. Thanks to `@madsmtm` for [compiling the list](https://github.com/rust-lang/rust/pull/104385#issuecomment-1317830217). + +As of this update, the following device models are no longer supported by the latest Rust toolchain: + +### iOS + +- iPhone 4S (Released in 2011) +- iPad 2 (Released in 2011) +- iPad, 3rd generation (Released in 2012) +- iPad Mini, 1st generation (Released in 2012) +- iPod Touch, 5th generation (Released in 2012) + +### macOS + +A total of 27 Mac system models, released between 2007 and 2009, are no longer supported. + +The affected systems are not comprehensively listed here, but external resources exist which contain lists of the exact models. They can be found [from Apple](https://support.apple.com/kb/SP742?locale=en_US) and [Yama-Mac](https://yama-mac.com/en/macos_correspondence_table/#toc4), for example. + +### tvOS + +The third generation AppleTV (released 2012-2013) is no longer supported. + +# Why are the requirements being changed? + +Prior to now, Rust claimed support for very old Apple OS versions, but many never even received passive testing or support. This is a rough place to be for a toolchain, as it hinders opportunities for improvement in exchange for a support level many people, or everyone, will never utilize. For Apple's mobile platforms, many of the old versions are now even unable to receive new software due to App Store publishing restrictions. + +Additionally, the past two years have clearly indicated that Apple, which has tight control over toolchains for these targets, is making it difficult-to-impossible to support them anymore. As of XCode 14, last year's toolchain release, building for many old OS versions [became unsupported](https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes). XCode 15 continues this trend. After enough time, continuing to use an older toolchain can even lead to breaking build issues for others. + +We want Rust to be a first-class option for developing software for and on Apple's platforms, but to continue this goal we have to set an easier, and more realistic compatibility baseline. The new requirements were determined after surveying what Apple and third-party statistics are available to us and picking a middle ground that balances compatibility with Rusts's needs and limitations. + +# Do I need to do anything? + +If you or an application you develop are affected by this change, there are different options which may be helpful: +- If possible, raise your minimum supported OS versions. All OS versions discussed in above have no support from the vendor. Not even security updates. +- If you are running the Rust compiler or other host tools that were previously supported, consider cross-compiling from a newer host instead. You may also no longer be able to depend on the Rust standard library. +- If none of these options work, you may need to freeze the version of the Rust toolchain your project builds with. Alternatively, you may be able to maintain a custom toolchain that supports your requirements for any sub-component of it. + +If your project does not directly support a specific version, but instead depends on a default previously used by Rust, there are some steps you can take +to help improve. For example, a number of crates in the ecosystem have hardcoded Rust's default support versions since they haven't changed for a long time: +- If you use the `cc` crate to include build languages into your project, a [future update](https://github.com/rust-lang/cc-rs/pull/848) will handle this transparently. +- If you need a minimum OS version for anything else, crates should query the new `rustc --print deployment-target` option for a default, or user-set, value +on toolchains using Rust 1.71 or newer going forward. Hardcoded defaults should only be used for older toolchains where this is unavailable. \ No newline at end of file From b6d9b0cfa4a0b5fcf9610e2194aa348e9e464a95 Mon Sep 17 00:00:00 2001 From: BlackHoleFox Date: Mon, 25 Sep 2023 18:00:05 -0500 Subject: [PATCH 0134/1024] Fix some text phrasing in Apple minimums blog (#1148) --- ...5-Increasing-Apple-Version-Requirements.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/posts/2023-09-25-Increasing-Apple-Version-Requirements.md b/posts/2023-09-25-Increasing-Apple-Version-Requirements.md index 035fca3d0..fe423028f 100644 --- a/posts/2023-09-25-Increasing-Apple-Version-Requirements.md +++ b/posts/2023-09-25-Increasing-Apple-Version-Requirements.md @@ -6,7 +6,7 @@ author: BlackHoleFox description: "Modernizing and improving Apple platform support for Rust" --- -As of Rust 1.74 (to be released on November 16th, 2023), the minimum version of Apple's platforms (iOS, macOS, and tvOS) that the Rust toolchain supports will be [increased](https://github.com/rust-lang/rust/pull/104385) to newer minimums. These changes affect both the Rust compiler itself (`rustc`), other host tooling, and most importantly, the standard library and any binaries produced that use it. With these changes in place, any binaries produced will stop loading on older versions or exhibit other, unspecified, behavior. +As of Rust 1.74 (to be released on November 16th, 2023), the minimum version of Apple's platforms (iOS, macOS, and tvOS) that the Rust toolchain supports will be [increased](https://github.com/rust-lang/rust/pull/104385) to newer baselines. These changes affect both the Rust compiler itself (`rustc`), other host tooling, and most importantly, the standard library and any binaries produced that use it. With these changes in place, any binaries produced will stop loading on older versions or exhibit other, unspecified, behavior. The new minimum versions are now: - macOS: 10.12 Sierra (First released 2016) @@ -68,12 +68,11 @@ We want Rust to be a first-class option for developing software for and on Apple # Do I need to do anything? If you or an application you develop are affected by this change, there are different options which may be helpful: -- If possible, raise your minimum supported OS versions. All OS versions discussed in above have no support from the vendor. Not even security updates. -- If you are running the Rust compiler or other host tools that were previously supported, consider cross-compiling from a newer host instead. You may also no longer be able to depend on the Rust standard library. -- If none of these options work, you may need to freeze the version of the Rust toolchain your project builds with. Alternatively, you may be able to maintain a custom toolchain that supports your requirements for any sub-component of it. - -If your project does not directly support a specific version, but instead depends on a default previously used by Rust, there are some steps you can take -to help improve. For example, a number of crates in the ecosystem have hardcoded Rust's default support versions since they haven't changed for a long time: -- If you use the `cc` crate to include build languages into your project, a [future update](https://github.com/rust-lang/cc-rs/pull/848) will handle this transparently. -- If you need a minimum OS version for anything else, crates should query the new `rustc --print deployment-target` option for a default, or user-set, value -on toolchains using Rust 1.71 or newer going forward. Hardcoded defaults should only be used for older toolchains where this is unavailable. \ No newline at end of file +- If possible, raise your minimum supported OS version(s). All OS versions discussed in this post have no support from the vendor. Not even security updates. +- If you are running the Rust compiler or other previously-supported host tools, consider cross-compiling from a newer host instead. You may also no longer be able to depend on the Rust standard library. +- If none of these options work, you may need to freeze the version of the Rust toolchain your project builds with. Alternatively, you may be able to maintain a custom toolchain that supports your requirements in any sub-component of it (such as libstd). + +If your project does not directly support a specific OS version, but instead depends on a default version previously used by Rust, there are some steps you can take +to help improve future compatibility. For example, a number of crates in the ecosystem have hardcoded Rust's previously supported OS baseline versions since they haven't changed for a long time: +- If you use the `cc` crate to include other languages in your project, a [future update](https://github.com/rust-lang/cc-rs/pull/848) will handle this transparently. +- If you need a minimum OS version for anything else, crates should query the new `rustc --print deployment-target` option for a default, or user-set when available, value on toolchains using Rust 1.71 or newer going forward. Hardcoded defaults should only be used for older toolchains where this is unavailable. \ No newline at end of file From 1fe77445c08dd5d472f8807dc6d160796c35657e Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sat, 30 Sep 2023 11:01:22 -0400 Subject: [PATCH 0135/1024] 1.73 announcement --- posts/2023-10-05-Rust-1.73.0.md | 114 ++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 posts/2023-10-05-Rust-1.73.0.md diff --git a/posts/2023-10-05-Rust-1.73.0.md b/posts/2023-10-05-Rust-1.73.0.md new file mode 100644 index 000000000..9c42042e6 --- /dev/null +++ b/posts/2023-10-05-Rust-1.73.0.md @@ -0,0 +1,114 @@ +--- +layout: post +title: "Announcing Rust 1.73.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.73.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via rustup, you can get 1.73.0 with: + +```console +rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.73.0](https://github.com/rust-lang/rust/releases/tag/1.73.0) on GitHub. + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.73.0 stable + +## Cleaner panic messages + +The output produced by the default panic handler has been changed +to put the panic message on its own line instead of wrapping it in quotes. +This can make panic messages easier to read, as shown in this example: + +

    fn main() {
    +    let file = "ferris.txt";
    +    panic!("oh no! {file:?} not found!");
    +}
    +Output before Rust 1.73: +
    thread 'main' panicked at 'oh no! "ferris.txt" not found!', src/main.rs:3:5
    +Output starting in Rust 1.73: +
    thread 'main' panicked at src/main.rs:3:5:
    +oh no! "ferris.txt" not found!
    + +This is especially useful when the message is long, contains nested quotes, or spans multiple lines. + +Additionally, the panic messages produced by `assert_eq` and `assert_ne` have +been modified, moving the custom message (the third argument) +and removing some unnecessary punctuation, as shown below: + +
    fn main() {
    +    assert_eq!("🦀", "🐟", "ferris is not a fish");
    +}
    +Output before Rust 1.73: +
    thread 'main' panicked at 'assertion failed: `(left == right)`
    + left: `"🦀"`,
    +right: `"🐟"`: ferris is not a fish', src/main.rs:2:5
    +Output starting in Rust 1.73: +
    thread 'main' panicked at src/main.rs:2:5:
    +assertion `left == right` failed: ferris is not a fish
    + left: "🦀"
    +right: "🐟"
    + +### Thread local initialization + +As proposed in [RFC 3184](https://github.com/rust-lang/rfcs/blob/master/text/3184-thread-local-cell-methods.md), `LocalKey>` and `LocalKey>` can now be directly manipulated with `get()`, `set()`, `take()`, and `replace()` methods without jumping through a `with(|inner| ...)` closure which is necessary for general `LocalKey` work. `LocalKey` is the type of `thread_local!` statics. + +The new methods make common code more concise and avoid running the extra initialization code for the default value specified in `thread_local!` for new threads. + +```rust +thread_local! { + static THINGS: RefCell> = RefCell::new(Vec::new()); +} + +fn f() { + // before: + THINGS.with(|i| i.set(vec![1, 2, 3])); + // now: + THINGS.set(vec![1, 2, 3]); + + // ... + + // before: + let v = THINGS.with(|i| i.take()); + // now: + let v: Vec = THINGS.take(); +} +``` + +### Stabilized APIs + +- [Unsigned `{integer}::div_ceil`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.div_ceil) +- [Unsigned `{integer}::next_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.next_multiple_of) +- [Unsigned `{integer}::checked_next_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.checked_next_multiple_of) +- [`std::ffi::FromBytesUntilNulError`](https://doc.rust-lang.org/stable/std/ffi/struct.FromBytesUntilNulError.html) +- [`std::os::unix::fs::chown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.chown.html) +- [`std::os::unix::fs::fchown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.fchown.html) +- [`std::os::unix::fs::lfchown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.lchown.html) +- [`LocalKey::>::get`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.get) +- [`LocalKey::>::set`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.set) +- [`LocalKey::>::take`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.take) +- [`LocalKey::>::replace`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.replace) +- [`LocalKey::>::with_borrow`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.with_borrow) +- [`LocalKey::>::with_borrow_mut`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.with_borrow_mut) +- [`LocalKey::>::set`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.set-1) +- [`LocalKey::>::take`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.take-1) +- [`LocalKey::>::replace`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.replace-1) + +These APIs are now stable in const contexts: + +- [`rc::Weak::new`](https://doc.rust-lang.org/stable/alloc/rc/struct.Weak.html#method.new) +- [`sync::Weak::new`](https://doc.rust-lang.org/stable/alloc/sync/struct.Weak.html#method.new) +- [`NonNull::as_ref`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.as_ref) + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.73.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-73-2023-10-05), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-173). + +## Contributors to 1.73.0 + +Many people came together to create Rust 1.73.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.73.0/) From 0c7b66a64bd1cefe3dd59e3ad1c86bdebcd286b8 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sat, 30 Sep 2023 14:13:33 -0400 Subject: [PATCH 0136/1024] Update posts/2023-10-05-Rust-1.73.0.md Co-authored-by: Eric Huss --- posts/2023-10-05-Rust-1.73.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-10-05-Rust-1.73.0.md b/posts/2023-10-05-Rust-1.73.0.md index 9c42042e6..e58802fbe 100644 --- a/posts/2023-10-05-Rust-1.73.0.md +++ b/posts/2023-10-05-Rust-1.73.0.md @@ -107,7 +107,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.73.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-73-2023-10-05), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-173). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.73.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-173-2023-10-05), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-173). ## Contributors to 1.73.0 From 2e5366d695d13670b308f11aff645a6e8c0d9c32 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Mon, 2 Oct 2023 19:39:01 -0400 Subject: [PATCH 0137/1024] Update posts/2023-10-05-Rust-1.73.0.md Co-authored-by: Josh Stone --- posts/2023-10-05-Rust-1.73.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-10-05-Rust-1.73.0.md b/posts/2023-10-05-Rust-1.73.0.md index e58802fbe..f15e1813c 100644 --- a/posts/2023-10-05-Rust-1.73.0.md +++ b/posts/2023-10-05-Rust-1.73.0.md @@ -56,7 +56,7 @@ right: "🐟" ### Thread local initialization -As proposed in [RFC 3184](https://github.com/rust-lang/rfcs/blob/master/text/3184-thread-local-cell-methods.md), `LocalKey>` and `LocalKey>` can now be directly manipulated with `get()`, `set()`, `take()`, and `replace()` methods without jumping through a `with(|inner| ...)` closure which is necessary for general `LocalKey` work. `LocalKey` is the type of `thread_local!` statics. +As proposed in [RFC 3184](https://github.com/rust-lang/rfcs/blob/master/text/3184-thread-local-cell-methods.md), `LocalKey>` and `LocalKey>` can now be directly manipulated with `get()`, `set()`, `take()`, and `replace()` methods, rather than jumping through a `with(|inner| ...)` closure as needed for general `LocalKey` work. `LocalKey` is the type of `thread_local!` statics. The new methods make common code more concise and avoid running the extra initialization code for the default value specified in `thread_local!` for new threads. From ba49885772d6cf340acb76a16dcecc20496932c3 Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Tue, 3 Oct 2023 12:31:25 +0000 Subject: [PATCH 0138/1024] Creating file via promote-release automation --- .../2023-10-03-1.73.0-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-10-03-1.73.0-prerelease.md diff --git a/posts/inside-rust/2023-10-03-1.73.0-prerelease.md b/posts/inside-rust/2023-10-03-1.73.0-prerelease.md new file mode 100644 index 000000000..876fc25c4 --- /dev/null +++ b/posts/inside-rust/2023-10-03-1.73.0-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.73.0 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.73.0 pre-release is ready for testing. The release is scheduled for +October 5. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-73-0-pre-release-testing/19641). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1730-2023-10-05 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 1927f319633db14606d74c017eb6e10532f3884a Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Wed, 4 Oct 2023 18:47:46 -0400 Subject: [PATCH 0139/1024] Fix example Co-authored-by: Nathan Stocks --- posts/2023-10-05-Rust-1.73.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-10-05-Rust-1.73.0.md b/posts/2023-10-05-Rust-1.73.0.md index f15e1813c..73eb0e4ec 100644 --- a/posts/2023-10-05-Rust-1.73.0.md +++ b/posts/2023-10-05-Rust-1.73.0.md @@ -62,7 +62,7 @@ The new methods make common code more concise and avoid running the extra initia ```rust thread_local! { - static THINGS: RefCell> = RefCell::new(Vec::new()); + static THINGS: Cell> = Cell::new(Vec::new()); } fn f() { From a82b3f13eb1716d63162925b210b491df293a014 Mon Sep 17 00:00:00 2001 From: Andrew Gunnerson Date: Thu, 5 Oct 2023 18:32:53 -0400 Subject: [PATCH 0140/1024] 1.73 announcement: Fix typo: lfchown -> lchown Signed-off-by: Andrew Gunnerson --- posts/2023-10-05-Rust-1.73.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-10-05-Rust-1.73.0.md b/posts/2023-10-05-Rust-1.73.0.md index 73eb0e4ec..638470aca 100644 --- a/posts/2023-10-05-Rust-1.73.0.md +++ b/posts/2023-10-05-Rust-1.73.0.md @@ -88,7 +88,7 @@ fn f() { - [`std::ffi::FromBytesUntilNulError`](https://doc.rust-lang.org/stable/std/ffi/struct.FromBytesUntilNulError.html) - [`std::os::unix::fs::chown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.chown.html) - [`std::os::unix::fs::fchown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.fchown.html) -- [`std::os::unix::fs::lfchown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.lchown.html) +- [`std::os::unix::fs::lchown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.lchown.html) - [`LocalKey::>::get`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.get) - [`LocalKey::>::set`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.set) - [`LocalKey::>::take`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.take) From 3fc58aaed3b6926dce79ec1e83a3a611b6298bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Fri, 22 Sep 2023 19:57:56 +0000 Subject: [PATCH 0141/1024] add update from the polonius wg --- .../inside-rust/2023-10-06-polonius-update.md | 156 ++++++++++++++++++ .../2023-10-06-polonius-update/roadmap.png | Bin 0 -> 20696 bytes 2 files changed, 156 insertions(+) create mode 100644 posts/inside-rust/2023-10-06-polonius-update.md create mode 100644 static/images/inside-rust/2023-10-06-polonius-update/roadmap.png diff --git a/posts/inside-rust/2023-10-06-polonius-update.md b/posts/inside-rust/2023-10-06-polonius-update.md new file mode 100644 index 000000000..c1c62231e --- /dev/null +++ b/posts/inside-rust/2023-10-06-polonius-update.md @@ -0,0 +1,156 @@ +--- +layout: post +title: "Polonius update" +author: Rémy Rakic and Niko Matsakis +team: The Polonius Working Group +--- + +This post lays out a roadmap to try to get Polonius on stable by Rust 2024. It identifies some high-level milestones and summarizes the key goals, as well as the recent progress. + +## Background on Polonius + +Polonius refers to a few things. It is a [new formulation](http://smallcultfollowing.com/babysteps/blog/2018/04/27/an-alias-based-formulation-of-the-borrow-checker/) of the borrow checker. It is also a [specific project](https://github.com/rust-lang/polonius) that implemented that analysis, based on datalog. Our current plan does not make use of that datalog-based implementation, but uses what we learned implementing it to focus on reimplementing Polonius within rustc. + +The motivating example for Polonius is the so-called ["Problem Case #3: conditional control flow across functions"](https://github.com/rust-lang/rfcs/blob/master/text/2094-nll.md#problem-case-3-conditional-control-flow-across-functions): here, returning a reference out of a function, from a conditional. + +```rust= +fn get_default<'r, K: Hash + Eq + Copy, V: Default>( + map: &'r mut HashMap, + key: K, +) -> &'r mut V { + match map.get_mut(&key) { // -------------+ 'r + Some(value) => value, // | + None => { // | + map.insert(key, V::default()); // | + // ^~~~~~ ERROR // | + map.get_mut(&key).unwrap() // | + } // | + } // | +} // v +``` + +Returning the mutable reference `value` in the `Some` path requires the mutable loan on `map` to live until the end of the function. This prevents mutation in the `None` path even though no mutable loan on `map` would exist there in the first place. + +Fixing this borrowck issue requires more precision about flow-sensitivity. It also hints at limitations in our modeling of lifetimes, which appear more clearly in cases with only slightly more complicated control flow, like [issue #47680](https://github.com/rust-lang/rust/issues/47680): + +```rust= +struct Thing; + +impl Thing { + fn maybe_next(&mut self) -> Option<&mut Self> { None } +} + +fn main() { + let mut temp = &mut Thing; + + loop { + match temp.maybe_next() { + Some(v) => { temp = v; } + None => { } + } + } +} +``` + +The current borrow checker rejects this code. It does this because it sees that there is a loan of `temp` to call `temp.maybe_next()`. It also sees that this loan can flow around the loop — in particular, the loan is referenced by `v`, which is then stored into `temp`. Therefore, it reports an error when we attempt to mutably borrow `temp` at the top of the loop, since there may be a loan still existing from a prior iteration. + +*However*, a more careful read shows that, while the borrow may flow around the loop, it only does so on the `Some` path, and on that path `temp` is overwritten. This means that the `temp` we will be borrowing on the next iteration is in fact a different location than the one we borrowed on the previous iteration. On the `None` path, meanwhile, the loan ends. + +This kind of "case by case" distinguishing — seeing that the flow only occurs on one path, and that on that path there is a reassignment, requires more precision than the current borrow checker can achieve. + +Issues like "NLL problem case #3", issue #47680 and others, were therefore deferred from NLLs, and left as future work, [Polonius](http://smallcultfollowing.com/babysteps/blog/2018/04/27/an-alias-based-formulation-of-the-borrow-checker/). + +The key ideas being: +- switching from a model of _lifetimes_ as sets of points in the CFG (with _outlives_ relationships), to a model of _origins_ as sets of loans (with _subset_ relationships). +- computing and tracking the subset relationships at each point in the Control Flow Graph (whereas the existing borrowck computes a single subtype relation). + + +## Milestones + +This is a rough roadmap, where we have the most visibility on the first steps: +- each step has unknowns that will define what things need to be done in the later steps +- therefore we're talking more about milestones for the longer term roadmap, and proper tasks for the shorter term. + +Here are the roadmap's milestones: + +![Graph of the Polonius roadmap](../../../../images/inside-rust/2023-10-06-polonius-update/roadmap.png) + +### 1. Factoring out higher-ranked concerns from the main path + +Today, the trait solver produces higher-ranked outlives constraints and the borrow checker solves them. In the future, we would like to make the [next trait solver](https://github.com/rust-lang/trait-system-refactor-initiative/) responsible for solving these higher-ranked constraints itself, so that it only produces the simpler `subset` constraint used in Polonius. This would allow us to solve implication predicates like `for { if (T: 'a, 'a: 'b) { T: 'b } }` without having to effectively reproduce the same trait solving logic again. [This blog post](https://smallcultfollowing.com/babysteps/blog/2019/01/21/hereditary-harrop-region-constraints/) describes the problem and possible solution in more detail. + +In the shorter term, we are exploring refactoring the borrow checker to separate out the higher-ranked processing from the ordinary processing. The goal would be to preprocess the outlives constraints in a kind of Polonius ["leak check"](https://rustc-dev-guide.rust-lang.org/traits/hrtb.html#basic-matching-and-placeholder-leaks), where we can compute the higher-ranked errors. This could then be removed once the trait solver can solve these constraints. + +Current status: ⏳ members of the types team are starting to work on this task in the next few days. + + +### 2. Location-insensitive loans in scope + +Out of the two key differences between Polonius and the existing borrow check (regions as "sets of loans", and computing subtyping relations at each point in the CFG), this step is aimed at resolving the *first* difference, but not the second, so we call it the "location *in*sensitive loans in scope" (because subtyping is being done once, not per location): the idea can be described as "NLLs with the Polonius model". + +Note that other aspects of the existing borrow checker are still flow-sensitive. + +In this step, we will compute the set of live loans via outlives constraints only, instead of computing the CFG points where regions are live (which is then used to compute when loans go out of scope). We believe this is equivalent to the existing borrow check in terms of the errors that get reported. + +Importantly, this change paves the way for adding location sensitivity (sets of loans are also a better foundation for far-future improvements to the borrow checker such as safe internal references). + +Current status: ✅ we have completed prototypes, and have [an open PR](https://github.com/rust-lang/rust/pull/113218) to land this under a `-Z` flag, which should happen in the near future. + +### 3. Verify full test suite passes with location-insensitive Polonius + +That PR does pass the full 15000+ tests in our suite, but we haven't yet checked on the crates published on crates.io with a crater run. + +Compared to our internal test suite, the vast majority of published crates are expected to build without errors. In that regard, it should be unlikely that issues would be found there, but it will be done regardless. + +Current status: ⏳ in-progress, the crater run itself will be done before the PR lands. + + +### 4. Replace parts of the borrow checker with location-insensitive Polonius + + +The prototype only does additional work, and does not modify the existing analysis. + +In this step, we will refactor the borrow checker so that its data structures store sets of loans, and do more performance work: for example, remove redundant computation, investigate worst-case scalability and constant factors. + +It's expected that performance will be similar, and we can then imagine enabling the location-insensitive pass without the feature flag, and removing some of the old code. + +To keep the high quality diagnostics from the years of work of many contributors, it's possible that the new analysis could run, and if errors are detected, only then use the existing analysis and diagnostics. + +Current status: we've done some early investigations on the data-structures changes needed, some of redundant parts that could be removed, etc. + +### 5. Location-sensitive pass on nightly + +Then the (harder-to-do-efficiently) work to incorporate location-sensitivity can start. This step will implement the first version of the analysis. + +At this point it can still be inefficient, and use the feature flag, but this is when the borrow checker should accept more expressive code than the current NLLs. + +Current status: we're in the design phase here, to adapt our datalog prototype and algorithms to rustc, imagining alternative ways to compute and propagate the subset constraints along the CFG. + +### 6. Model borrow checking and Polonius in a-mir-formality + +The Types team is building a model of Rust's MIR and trait system called [`a-mir-formality`][]. Once it reaches a sufficiently complete status, the intent is that the model will always be extended to cover new language features prior to stabilization. We are therefore working to add Polonius into the model. This will in fact be the second time doing such modeling, as we already added Polonius to a previous incarnation of a-mir-formality. In fact, that modeling work is what gave us the insights that enabled the location-insensitive Polonius formulation now landing on nightly. + +[`a-mir-formality`]: https://github.com/rust-lang/a-mir-formality + +Interestingly, this work is completely independent of rustc, and could in theory be started soon, and done in parallel with the other efforts. + +### 7. Location-sensitive pass stable + +In this milestone, we expect a lot of work on optimizations, and productization. + +If a similar experience to NLLs in edition 2018 is to be expected again, another substantial amount of work and polish will also be needed to handle diagnostic differences and issues, ensuring errors and notes are clear enough, as well as the documentation. + +At this point, the location-sensitive pass is hopefully efficient enough, tested in practice, somewhat formally verified, and can be enabled in edition 2024. + +Around this time, librarification efforts can also be rebooted, to turn the in-tree Polonius into a library, maybe using [Stable MIR][]. This is so that it could be reused elsewhere, for example in [rust-analyzer][], or [gccrs][], or by researchers working on verification tools (like [kani][], [prusti][] and [creusot][]). + +[Stable MIR]: https://github.com/rust-lang/team/pull/729 +[rust-analyzer]: https://github.com/rust-lang/rust-analyzer +[gccrs]: https://github.com/Rust-GCC/gccrs +[kani]: https://github.com/model-checking/kani/ +[prusti]: https://github.com/viperproject/prusti-dev/ +[creusot]: https://github.com/xldenis/creusot + +## Conclusion + +We are very excited to see the plan for Polonius coming into focus. At the moment, as we are still doing foundational work, we are not looking for volunteers or contributors unless they are well versed in the compiler. We do expect that as the project proceeds, there will be more and more need for new contributions. Stay tuned for updates! \ No newline at end of file diff --git a/static/images/inside-rust/2023-10-06-polonius-update/roadmap.png b/static/images/inside-rust/2023-10-06-polonius-update/roadmap.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443cbfbc950b3aeaed94446acf9c04ca9dea7a GIT binary patch literal 20696 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 literal 0 HcmV?d00001 From 3335b5bee1acb48939579d0baa99c681221ee088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20M=C3=BCller?= Date: Fri, 13 Oct 2023 13:57:34 +0200 Subject: [PATCH 0142/1024] Remove mention of Travis CI from README As of #509, GitHub Actions is used instead. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b80e24f94..ba53a1e27 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # The Rust blog -[![Build Status](https://travis-ci.com/rust-lang/blog.rust-lang.org.svg?branch=master)](https://travis-ci.com/rust-lang/blog.rust-lang.org) +[![CI](https://github.com/rust-lang/blog.rust-lang.org/actions/workflows/main.yml/badge.svg)](https://github.com/rust-lang/blog.rust-lang.org/actions/workflows/main.yml) This is the blog of the Rust Programming Language. It's implemented as a small static site generator, that's deployed to GitHub -Pages via Travis. +Pages via GitHub Actions. ## Building From cc17e0ed5eae8d7bfc5011434a07e0554502a750 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Tue, 17 Oct 2023 11:52:03 -0700 Subject: [PATCH 0143/1024] Add post announcing the new Rust Project Directors --- ...nouncing-the-new-rust-project-directors.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 posts/2023-10-18-announcing-the-new-rust-project-directors.md diff --git a/posts/2023-10-18-announcing-the-new-rust-project-directors.md b/posts/2023-10-18-announcing-the-new-rust-project-directors.md new file mode 100644 index 000000000..2d114af10 --- /dev/null +++ b/posts/2023-10-18-announcing-the-new-rust-project-directors.md @@ -0,0 +1,37 @@ +--- +layout: post +title: "Announcing the New Rust Project Directors" +author: Leadership Council +team: Leadership Council +--- + +We are happy to announce that we have completed the process to elect new Project Directors. + +The new Project Directors are: + +* [Scott McMurray](https://github.com/scottmcm) +* [Jakob Degen](https://github.com/JakobDegen) +* [Santiago Pastorino](https://github.com/spastorino) + +These will join [Ryan Levick] and [Mark Rousskov] to make up the five members of the Rust Foundation Board of Directors who represent the Rust Project. +The board is made up Project Directors, who come from and represent the Rust Project, and Member Directors who represent the corporate members of the Rust Foundation. +These groups of Directors each, as a block, have equal voting power. + +[Ryan Levick]: https://github.com/rylev +[Mark Rousskov]: https://github.com/mark-simulacrum + +We look forward to working with and being represented by this new suite of project directors. +We were fortunate to have a number of excellent candidates and this was a difficult decision. +We wish to express our gratitude to all of the candidates who were considered for this role! +We also extend our thanks to the project as a whole who participated by nominating candidates and providing additional feedback once the nominees were published. +Finally, we want to share our appreciation for the [Project Director Elections Subcommittee][pde-subcommittee] for working to design and facilitate running this election process. + +[pde-subcommittee]: https://github.com/rust-lang/leadership-council/blob/main/committees/project-director-election-process.md + +As with any decision like this, this was a challenging decision for a number of reasons. +This was also our first time doing this process and we learned a lot to use to improve it going forward. +The [Project Director Elections Subcommittee][pde-subcommittee] will be following up with a retrospective outlining how well we achieved our goals with this process and making suggestions for future elections. +We are expecting another election next year to start a rotating cadence of 2-year terms. +Project governance is about iterating and refining over time. + +Once again, we thank all who were involved in this process and we are excited to welcome our new suite of Project Directors. From 170b5361851fd69cdbf3a8759e01fd68d27f14d5 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Tue, 17 Oct 2023 13:02:11 -0700 Subject: [PATCH 0144/1024] Apply suggestions from code review Co-authored-by: Josh Gould --- .../2023-10-18-announcing-the-new-rust-project-directors.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/posts/2023-10-18-announcing-the-new-rust-project-directors.md b/posts/2023-10-18-announcing-the-new-rust-project-directors.md index 2d114af10..26f2af1fa 100644 --- a/posts/2023-10-18-announcing-the-new-rust-project-directors.md +++ b/posts/2023-10-18-announcing-the-new-rust-project-directors.md @@ -13,7 +13,8 @@ The new Project Directors are: * [Jakob Degen](https://github.com/JakobDegen) * [Santiago Pastorino](https://github.com/spastorino) -These will join [Ryan Levick] and [Mark Rousskov] to make up the five members of the Rust Foundation Board of Directors who represent the Rust Project. +They will join [Ryan Levick] and [Mark Rousskov] to make up the five members of the Rust Foundation Board of Directors who represent the Rust Project. + The board is made up Project Directors, who come from and represent the Rust Project, and Member Directors who represent the corporate members of the Rust Foundation. These groups of Directors each, as a block, have equal voting power. @@ -28,7 +29,8 @@ Finally, we want to share our appreciation for the [Project Director Elections S [pde-subcommittee]: https://github.com/rust-lang/leadership-council/blob/main/committees/project-director-election-process.md -As with any decision like this, this was a challenging decision for a number of reasons. +This was a challenging decision for a number of reasons. + This was also our first time doing this process and we learned a lot to use to improve it going forward. The [Project Director Elections Subcommittee][pde-subcommittee] will be following up with a retrospective outlining how well we achieved our goals with this process and making suggestions for future elections. We are expecting another election next year to start a rotating cadence of 2-year terms. From 1b49ec372550a961e81c2900126b8ad4b8f85843 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Wed, 18 Oct 2023 13:05:19 -0700 Subject: [PATCH 0145/1024] Apply suggestions from code review Co-authored-by: Josh Gould --- ...10-18-announcing-the-new-rust-project-directors.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/posts/2023-10-18-announcing-the-new-rust-project-directors.md b/posts/2023-10-18-announcing-the-new-rust-project-directors.md index 26f2af1fa..e085a861d 100644 --- a/posts/2023-10-18-announcing-the-new-rust-project-directors.md +++ b/posts/2023-10-18-announcing-the-new-rust-project-directors.md @@ -15,13 +15,15 @@ The new Project Directors are: They will join [Ryan Levick] and [Mark Rousskov] to make up the five members of the Rust Foundation Board of Directors who represent the Rust Project. -The board is made up Project Directors, who come from and represent the Rust Project, and Member Directors who represent the corporate members of the Rust Foundation. -These groups of Directors each, as a block, have equal voting power. +The board is made up of Project Directors, who come from and represent the Rust Project, and Member Directors, who represent the corporate members of the Rust Foundation. + +Both of these director groups have equal voting power. [Ryan Levick]: https://github.com/rylev [Mark Rousskov]: https://github.com/mark-simulacrum -We look forward to working with and being represented by this new suite of project directors. +We look forward to working with and being represented by this new group of project directors. + We were fortunate to have a number of excellent candidates and this was a difficult decision. We wish to express our gratitude to all of the candidates who were considered for this role! We also extend our thanks to the project as a whole who participated by nominating candidates and providing additional feedback once the nominees were published. @@ -36,4 +38,5 @@ The [Project Director Elections Subcommittee][pde-subcommittee] will be followin We are expecting another election next year to start a rotating cadence of 2-year terms. Project governance is about iterating and refining over time. -Once again, we thank all who were involved in this process and we are excited to welcome our new suite of Project Directors. +Once again, we thank all who were involved in this process and we are excited to welcome our new Project Directors. + From 4ea1f460c90a49fec6a498381b108b7ed36ed494 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Thu, 19 Oct 2023 12:02:21 -0700 Subject: [PATCH 0146/1024] Update publication date --- ...md => 2023-10-19-announcing-the-new-rust-project-directors.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2023-10-18-announcing-the-new-rust-project-directors.md => 2023-10-19-announcing-the-new-rust-project-directors.md} (100%) diff --git a/posts/2023-10-18-announcing-the-new-rust-project-directors.md b/posts/2023-10-19-announcing-the-new-rust-project-directors.md similarity index 100% rename from posts/2023-10-18-announcing-the-new-rust-project-directors.md rename to posts/2023-10-19-announcing-the-new-rust-project-directors.md From 8fdedd903a5a2e8920c50e872817bf46ee0c2dd3 Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Fri, 20 Oct 2023 23:59:17 +0000 Subject: [PATCH 0147/1024] Announce major Generator -> Coroutine rename --- posts/inside-rust/2023-10-23-coroutines.md | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 posts/inside-rust/2023-10-23-coroutines.md diff --git a/posts/inside-rust/2023-10-23-coroutines.md b/posts/inside-rust/2023-10-23-coroutines.md new file mode 100644 index 000000000..340fe9164 --- /dev/null +++ b/posts/inside-rust/2023-10-23-coroutines.md @@ -0,0 +1,25 @@ +--- +layout: post +title: Generators are dead, long live coroutines, generators are back +author: oli-obk +--- + +We have renamed the unstable `Generator` trait to `Coroutine` and adjusted all terminology accordingly. +If you want to see all 3800 modified lines of code, you can find the PR [here](https://github.com/rust-lang/rust/pull/116958). + +Our `Generator` trait was effectively a coroutine already, so this change was long overdue. +All nightly users using the `Generator` trait must now update their code to refer to the new feature gate and trait names. + +## What is the difference? + +A generator is just a convenient way to write `Iterator` implementations. +This means it's a coroutine that has no arguments and no return type. +Instead when it returns, that means iteration is over, and the `Iterator::next` method returns `None`. + +## Coming full circle + +This change is directly motivated for *reintroducing* generators, this time with simpler (`async`/`await` style) +syntax for creating `Iterator`s. Some discussion about this can be found in the [`gen fn` rfc](https://github.com/rust-lang/rfcs/pull/3513). + +Of course such a massive change would be incomplete without the PR to immediately reintroduce a new concept with the name that was just removed, +so [here](https://github.com/rust-lang/rust/pull/116447) you can see the MVP for `gen` blocks that has very weird diagnostics and may panic on you if you poke it too much. From 7505a5b6f5d4608226a23563d46d94fddf8f15cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 11:08:50 +0200 Subject: [PATCH 0148/1024] Bump webpki from 0.22.0 to 0.22.2 (#1150) Bumps [webpki](https://github.com/briansmith/webpki) from 0.22.0 to 0.22.2. - [Commits](https://github.com/briansmith/webpki/commits) --- updated-dependencies: - dependency-name: webpki dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b1ad16775..19ad53230 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1838,9 +1838,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.22.0" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f" dependencies = [ "ring", "untrusted", From 38442dabc4ef6f7fae1c2153e28a9ca589b0bd27 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Tue, 24 Oct 2023 11:11:25 +0200 Subject: [PATCH 0149/1024] Remove a couple of possible panics when opening a post. (#1132) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I'm not actually so bothered about the panics per se, but this way a naïve user like myself who accidentally created a zero length file in `posts` gets a useful error message. --- src/posts.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/posts.rs b/src/posts.rs index f8a3a07fc..66298a49e 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -50,10 +50,15 @@ impl Post { let filename = split.next().unwrap().to_string(); let contents = std::fs::read_to_string(path)?; + if contents.len() < 5 { + return Err( + format!("{path:?} is empty, or too short to have valid front matter").into(), + ); + } // yaml headers.... we know the first four bytes of each file are "---\n" // so we need to find the end. we need the fours to adjust for those first bytes - let end_of_yaml = contents[4..].find("---").unwrap() + 4; + let end_of_yaml = contents[4..].find("---\n").unwrap() + 4; let yaml = &contents[..end_of_yaml]; let YamlHeader { author, From 2b37a2d10002c48ff22bd9ed0178714ffa331de1 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Tue, 24 Oct 2023 11:12:25 +0200 Subject: [PATCH 0150/1024] Add mastodon link. (#1153) --- static/images/mastodon.svg | 1 + templates/footer.hbs | 1 + 2 files changed, 2 insertions(+) create mode 100644 static/images/mastodon.svg diff --git a/static/images/mastodon.svg b/static/images/mastodon.svg new file mode 100644 index 000000000..38cd461dc --- /dev/null +++ b/static/images/mastodon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/footer.hbs b/templates/footer.hbs index d9f61332c..30899b465 100644 --- a/templates/footer.hbs +++ b/templates/footer.hbs @@ -21,6 +21,7 @@

    Social

    + mastodon logo twitter logo youtube logo discord logo From 357ed1b796b5ef6ac7b7d34cffd59a3f084d7f4f Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Tue, 24 Oct 2023 11:56:49 +0200 Subject: [PATCH 0151/1024] Fix frontmatter assumption (#1158) Using `---\n` assumes that all files use `\n` line endings, but one of our latest blog posts is using `\r\n` instead. This commit reverts the assumption about the frontmatter again to fix the rendering of that blog post. --- src/posts.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/posts.rs b/src/posts.rs index 66298a49e..3b330cfac 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -58,7 +58,7 @@ impl Post { // yaml headers.... we know the first four bytes of each file are "---\n" // so we need to find the end. we need the fours to adjust for those first bytes - let end_of_yaml = contents[4..].find("---\n").unwrap() + 4; + let end_of_yaml = contents[4..].find("---").unwrap() + 4; let yaml = &contents[..end_of_yaml]; let YamlHeader { author, From 6aff395a5d016ce9bcbe88a65f639cf5f922ed28 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Tue, 24 Oct 2023 11:34:12 +0200 Subject: [PATCH 0152/1024] Use `eyre` for error handling `Box` is not `Send`, which makes it harder to parallelize the rendering of the blog posts. `eyre::Report` fortunately does not have this problem. --- Cargo.lock | 17 +++++++++++++++++ Cargo.toml | 1 + src/blog.rs | 4 +--- src/blogs.rs | 7 +++---- src/lib.rs | 21 ++++++++++----------- src/posts.rs | 6 +++--- 6 files changed, 35 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 19ad53230..92c8d842f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -100,6 +100,7 @@ version = "0.1.0" dependencies = [ "chrono", "comrak", + "eyre", "handlebars", "lazy_static", "regex", @@ -282,6 +283,16 @@ dependencies = [ "termcolor", ] +[[package]] +name = "eyre" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" +dependencies = [ + "indenter", + "once_cell", +] + [[package]] name = "fake-simd" version = "0.1.2" @@ -559,6 +570,12 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + [[package]] name = "indexmap" version = "1.9.1" diff --git a/Cargo.toml b/Cargo.toml index 6325f08a6..44173fd20 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ name = "blog" path = "src/blog.rs" [dependencies] +eyre = "0.6.8" handlebars = { version = "3", features = ["dir_source"] } lazy_static = "1.4.0" serde = "1.0" diff --git a/src/blog.rs b/src/blog.rs index 17442c65e..2b5ef3d14 100644 --- a/src/blog.rs +++ b/src/blog.rs @@ -1,9 +1,7 @@ -use std::error::Error; - #[path = "lib.rs"] mod lib; -pub fn main() -> Result<(), Box> { +pub fn main() -> eyre::Result<()> { lib::main()?; println!("blog has been generated; you can now serve its content by running\n\ diff --git a/src/blogs.rs b/src/blogs.rs index 2ee8e9dd0..b76f70454 100644 --- a/src/blogs.rs +++ b/src/blogs.rs @@ -1,6 +1,5 @@ use super::posts::Post; use serde_derive::{Deserialize, Serialize}; -use std::error::Error; use std::path::{Path, PathBuf}; static MANIFEST_FILE: &str = "blog.yml"; @@ -46,7 +45,7 @@ pub(crate) struct Blog { } impl Blog { - fn load(prefix: PathBuf, dir: &Path) -> Result> { + fn load(prefix: PathBuf, dir: &Path) -> eyre::Result { let manifest_content = std::fs::read_to_string(dir.join(MANIFEST_FILE))?; let manifest: Manifest = serde_yaml::from_str(&manifest_content)?; @@ -122,7 +121,7 @@ impl Blog { /// Recursively load blogs in a directory. A blog is a directory with a `blog.yml` /// file inside it. -pub(crate) fn load(base: &Path) -> Result, Box> { +pub(crate) fn load(base: &Path) -> eyre::Result> { let mut blogs = Vec::new(); load_recursive(base, base, &mut blogs)?; Ok(blogs) @@ -132,7 +131,7 @@ fn load_recursive( base: &Path, current: &Path, blogs: &mut Vec, -) -> Result<(), Box> { +) -> eyre::Result<()> { for entry in std::fs::read_dir(current)? { let path = entry?.path(); let file_type = path.metadata()?.file_type(); diff --git a/src/lib.rs b/src/lib.rs index e77f632d6..c0a048bc1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,7 +9,6 @@ use sass_rs::{compile_file, Options}; use serde_derive::Serialize; use serde_json::json; use std::convert::AsRef; -use std::error::Error; use std::fs::{self, File}; use std::io::{self, Write}; use std::path::{Path, PathBuf}; @@ -51,7 +50,7 @@ impl<'a> Generator<'a> { fn new( out_directory: impl AsRef, posts_directory: impl AsRef, - ) -> Result> { + ) -> eyre::Result { let mut handlebars = Handlebars::new(); handlebars.set_strict_mode(true); handlebars.register_templates_directory(".hbs", "templates")?; @@ -80,7 +79,7 @@ impl<'a> Generator<'a> { .replace(std::path::MAIN_SEPARATOR, "/") } - fn render(&self) -> Result<(), Box> { + fn render(&self) -> eyre::Result<()> { // make sure our output directory exists fs::create_dir_all(&self.out_directory)?; @@ -116,7 +115,7 @@ impl<'a> Generator<'a> { fs::write("./static/styles/vendor.css", &concatted).expect("couldn't write vendor css"); } - fn render_blog(&self, blog: &Blog) -> Result<(), Box> { + fn render_blog(&self, blog: &Blog) -> eyre::Result<()> { std::fs::create_dir_all(self.out_directory.join(blog.prefix()))?; let path = self.render_index(blog)?; @@ -136,7 +135,7 @@ impl<'a> Generator<'a> { Ok(()) } - fn render_index(&self, blog: &Blog) -> Result> { + fn render_index(&self, blog: &Blog) -> eyre::Result { let other_blogs: Vec<_> = self .blogs .iter() @@ -161,7 +160,7 @@ impl<'a> Generator<'a> { Ok(path) } - fn render_post(&self, blog: &Blog, post: &Post) -> Result> { + fn render_post(&self, blog: &Blog, post: &Post) -> eyre::Result { let path = blog .prefix() .join(format!("{:04}", &post.year)) @@ -186,7 +185,7 @@ impl<'a> Generator<'a> { Ok(path) } - fn render_feed(&self, blog: &Blog) -> Result<(), Box> { + fn render_feed(&self, blog: &Blog) -> eyre::Result<()> { let posts: Vec<_> = blog.posts().iter().take(10).collect(); let data = json!({ "blog": blog, @@ -198,7 +197,7 @@ impl<'a> Generator<'a> { Ok(()) } - fn render_releases_feed(&self, blog: &Blog) -> Result<(), Box> { + fn render_releases_feed(&self, blog: &Blog) -> eyre::Result<()> { let posts = blog.posts().iter().cloned().collect::>(); let is_released: Vec<&Post> = posts.iter().filter(|post| post.release).collect(); let releases: Vec = is_released @@ -223,7 +222,7 @@ impl<'a> Generator<'a> { Ok(()) } - fn copy_static_files(&self) -> Result<(), Box> { + fn copy_static_files(&self) -> eyre::Result<()> { copy_dir("static/fonts", &self.out_directory)?; copy_dir("static/images", &self.out_directory)?; copy_dir("static/styles", &self.out_directory)?; @@ -236,7 +235,7 @@ impl<'a> Generator<'a> { name: impl AsRef, template: &str, data: serde_json::Value, - ) -> Result<(), Box> { + ) -> eyre::Result<()> { let out_file = self.out_directory.join(name.as_ref()); let file = File::create(out_file)?; self.handlebars.render_to_write(template, &data, file)?; @@ -264,7 +263,7 @@ fn copy_dir(source: impl AsRef, dest: impl AsRef) -> Result<(), io:: copy_inner(source, &dest) } -pub fn main() -> Result<(), Box> { +pub fn main() -> eyre::Result<()> { let blog = Generator::new("site", "posts")?; blog.render()?; diff --git a/src/posts.rs b/src/posts.rs index 3b330cfac..1e5f459cb 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -2,8 +2,8 @@ use super::blogs::Manifest; use comrak::{ComrakExtensionOptions, ComrakOptions, ComrakRenderOptions}; use regex::Regex; use serde_derive::{Deserialize, Serialize}; -use std::error::Error; use std::path::{Path, PathBuf}; +use eyre::eyre; #[derive(Debug, PartialEq, Deserialize)] struct YamlHeader { @@ -36,7 +36,7 @@ pub(crate) struct Post { } impl Post { - pub(crate) fn open(path: &Path, manifest: &Manifest) -> Result> { + pub(crate) fn open(path: &Path, manifest: &Manifest) -> eyre::Result { // yeah this might blow up, but it won't let filename = path.file_name().unwrap().to_str().unwrap(); @@ -52,7 +52,7 @@ impl Post { let contents = std::fs::read_to_string(path)?; if contents.len() < 5 { return Err( - format!("{path:?} is empty, or too short to have valid front matter").into(), + eyre!("{path:?} is empty, or too short to have valid front matter") ); } From 10d0287f454901b73854f94af1d0b87b9b94ea82 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Tue, 24 Oct 2023 11:56:29 +0200 Subject: [PATCH 0153/1024] Use `color-eyre` for error reporting --- Cargo.lock | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++-- Cargo.toml | 1 + src/blog.rs | 2 + 3 files changed, 141 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 92c8d842f..dd0284f91 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,15 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + [[package]] name = "adler" version = "1.0.2" @@ -43,6 +52,21 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide 0.7.1", + "object", + "rustc-demangle", +] + [[package]] name = "base64" version = "0.13.0" @@ -99,6 +123,7 @@ name = "blog" version = "0.1.0" dependencies = [ "chrono", + "color-eyre", "comrak", "eyre", "handlebars", @@ -191,6 +216,33 @@ dependencies = [ "vec_map", ] +[[package]] +name = "color-eyre" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204" +dependencies = [ + "backtrace", + "color-spantrace", + "eyre", + "indenter", + "once_cell", + "owo-colors", + "tracing-error", +] + +[[package]] +name = "color-spantrace" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce" +dependencies = [ + "once_cell", + "owo-colors", + "tracing-core", + "tracing-error", +] + [[package]] name = "comrak" version = "0.13.0" @@ -315,7 +367,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.5.3", ] [[package]] @@ -406,6 +458,12 @@ dependencies = [ "wasi", ] +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + [[package]] name = "h2" version = "0.3.17" @@ -630,9 +688,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.126" +version = "0.2.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" +checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" [[package]] name = "line-wrap" @@ -707,6 +765,15 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + [[package]] name = "mio" version = "0.7.14" @@ -794,6 +861,15 @@ dependencies = [ "libc", ] +[[package]] +name = "object" +version = "0.32.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + [[package]] name = "once_cell" version = "1.13.0" @@ -828,6 +904,12 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +[[package]] +name = "owo-colors" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" + [[package]] name = "pem" version = "1.1.0" @@ -1090,6 +1172,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + [[package]] name = "rustls" version = "0.20.8" @@ -1254,6 +1342,15 @@ dependencies = [ "digest 0.10.3", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "shell-words" version = "1.0.0" @@ -1409,6 +1506,16 @@ dependencies = [ "syn", ] +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "time" version = "0.1.43" @@ -1559,6 +1666,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-error" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +dependencies = [ + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" +dependencies = [ + "sharded-slab", + "thread_local", + "tracing-core", ] [[package]] @@ -1701,6 +1830,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vec_map" version = "0.8.1" diff --git a/Cargo.toml b/Cargo.toml index 44173fd20..e3bbcb7ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ name = "blog" path = "src/blog.rs" [dependencies] +color-eyre = "0.6.2" eyre = "0.6.8" handlebars = { version = "3", features = ["dir_source"] } lazy_static = "1.4.0" diff --git a/src/blog.rs b/src/blog.rs index 2b5ef3d14..2ad10b925 100644 --- a/src/blog.rs +++ b/src/blog.rs @@ -2,6 +2,8 @@ mod lib; pub fn main() -> eyre::Result<()> { + color_eyre::install()?; + lib::main()?; println!("blog has been generated; you can now serve its content by running\n\ From 92fe57861477531595040f9d4f8928de9f9175fb Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Tue, 24 Oct 2023 11:35:36 +0200 Subject: [PATCH 0154/1024] Use `rayon` to parallelize the blog post rendering --- Cargo.lock | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 1 + src/lib.rs | 9 +++---- 3 files changed, 80 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 92c8d842f..b778e6a80 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -103,6 +103,7 @@ dependencies = [ "eyre", "handlebars", "lazy_static", + "rayon", "regex", "sass-rs", "serde", @@ -229,6 +230,39 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + [[package]] name = "crypto-common" version = "0.1.6" @@ -264,6 +298,12 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + [[package]] name = "entities" version = "1.0.1" @@ -682,6 +722,15 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + [[package]] name = "mime" version = "0.3.16" @@ -1028,6 +1077,26 @@ dependencies = [ "getrandom", ] +[[package]] +name = "rayon" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + [[package]] name = "rcgen" version = "0.9.3" @@ -1160,6 +1229,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "sct" version = "0.7.0" diff --git a/Cargo.toml b/Cargo.toml index 44173fd20..05aa9664f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,6 +17,7 @@ serde_derive = "1.0" serde_yaml = "0.8" serde_json = "1.0" comrak = "0.13" +rayon = "1.8.0" regex = "1.3" sass-rs = "0.2" chrono = "0.4" diff --git a/src/lib.rs b/src/lib.rs index c0a048bc1..004184896 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,6 +12,7 @@ use std::convert::AsRef; use std::fs::{self, File}; use std::io::{self, Write}; use std::path::{Path, PathBuf}; +use rayon::prelude::*; struct Generator<'a> { handlebars: Handlebars<'a>, @@ -125,11 +126,9 @@ impl<'a> Generator<'a> { self.render_feed(blog)?; self.render_releases_feed(blog)?; - for (i, post) in blog.posts().iter().enumerate() { - let path = self.render_post(blog, post)?; - if i == 0 { - println!("└─ Latest post: {}\n", self.file_url(&path)); - } + let paths = blog.posts().par_iter().map(|post| self.render_post(blog, post)).collect::, _>>()?; + if let Some(path) = paths.first() { + println!("└─ Latest post: {}\n", self.file_url(path)); } Ok(()) From 0c5dfabfc40231672284a8449dd0246bc66557ce Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Tue, 24 Oct 2023 12:33:22 +0200 Subject: [PATCH 0155/1024] Add renovatebot configuration --- .github/renovate.json5 | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .github/renovate.json5 diff --git a/.github/renovate.json5 b/.github/renovate.json5 new file mode 100644 index 000000000..c3a726927 --- /dev/null +++ b/.github/renovate.json5 @@ -0,0 +1,8 @@ +{ + extends: [ + "config:best-practices", + ":pinAllExceptPeerDependencies", + ":maintainLockFilesWeekly", + ":semanticCommitsDisabled", + ], +} From c46b5ad4c250638e5b8824e7bfaf0f8ff7aa8c50 Mon Sep 17 00:00:00 2001 From: Wang Qilin Date: Wed, 25 Oct 2023 11:36:57 +0800 Subject: [PATCH 0156/1024] Update 2020-11-15-Using-rustc_codegen_cranelift.md fix typo --- posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md b/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md index 85c49d272..166db2c16 100644 --- a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md +++ b/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md @@ -37,7 +37,7 @@ $ ./build.sh ``` Now, we can start using it to compile a project. For demonstration purposes, -I'll be be using `cargo`, but you can use any Rust project supported by +I'll be using `cargo`, but you can use any Rust project supported by `cg_clif`. ``` From fe85f303462b563a7349f2ed2e5d85ac63b5620f Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 26 Oct 2023 14:06:13 +0200 Subject: [PATCH 0157/1024] Add "A tale of broken badges and 23,000 features" blog post (#1161) Co-authored-by: Eric Huss Co-authored-by: Matthew Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com> Co-authored-by: Luca Palmieri <20745048+LukeMathWalker@users.noreply.github.com> --- ...23-10-26-broken-badges-and-23k-keywords.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 posts/2023-10-26-broken-badges-and-23k-keywords.md diff --git a/posts/2023-10-26-broken-badges-and-23k-keywords.md b/posts/2023-10-26-broken-badges-and-23k-keywords.md new file mode 100644 index 000000000..0e21d2ac9 --- /dev/null +++ b/posts/2023-10-26-broken-badges-and-23k-keywords.md @@ -0,0 +1,40 @@ +--- +layout: post +title: A tale of broken badges and 23,000 features +author: Tobias Bieniek +team: the crates.io team +--- + +Around mid-October of 2023 the crates.io team was [notified](https://github.com/rust-lang/crates.io/issues/7269) by one of our users that a [shields.io](https://shields.io) badge for their crate stopped working. The issue reporter was kind enough to already debug the problem and figured out that the API request that shields.io sends to crates.io was most likely the problem. Here is a quote from the original issue: + +> This crate makes heavy use of feature flags which bloat the response payload of the API. + +Apparently the API response for this specific crate had broken the 20 MB mark and shields.io wasn't particularly happy with this. Interestingly, this crate only had 9 versions published at this point in time. But how do you get to 20 MB with only 9 published versions? + +As the quote above already mentions, this crate is using features… a lot of features… almost 23,000! 😱 + +What crate needs that many features? Well, this crate provides SVG icons for Rust-based web applications… and it uses one feature per icon so that the payload size of the final WebAssembly bundle stays small. + +At first glance there should be nothing wrong with this. This seems like a reasonable thing to do from a crate author perspective and neither cargo, nor crates.io, were showing any warnings about this. Unfortunately, some of the internals are not too happy about such a high number of features… + +The first problem that was already identified by the crate author: the API responses from crates.io are getting veeeery large. Adding to the problem is the fact that the crates.io API currently does not paginate the list of published versions. Changing this is obviously a breaking change, so our team had been a bit reluctant to change the behavior of the API in that regard, though this situation has shown that we will likely have to tackle this problem in the near future. + +The next problem is that the [index file](https://index.crates.io/ic/on/icondata) for this crate is also getting large. With 9 published versions it already contains 11 MB of data. And just like the crates.io API, there is currently no pagination built into the package index file format. + +Now you may ask, why do the package index and cargo need to know about features? Well, the easy answer is: for dependency resolution. Features can enable optional dependencies, so when a dependency feature is used it might influence the dependency resolution. Our initial thought was that we could at least drop all empty feature declarations from the index file (e.g. `foo = []`), but the cargo team informed us that cargo relies on them being available there too, and so for backwards-compatibility reasons this is not an option. + +On the bright side, most Rust users are on cargo versions these days that use the sparse package index by default, which only downloads index files for packages actually being used. In other words: only users of this icon crate need to pay the price for downloading all the metadata. On the flipside, this means users who are still using the git-based index are all paying for this one crate using 23,000 features. + +So, where do we go from here? 🤔 + +While we believe that supporting such a high number of features is conceptually a valid request, with the current implementation details in crates.io and cargo we cannot support this. After analyzing all of these downstream effects from a single crate having that many features, we realized we need some form of restriction on crates.io to keep the system from falling apart. + +Now comes the important part: **on 2023-10-16 the crates.io team deployed a change limiting the number of features a crate can have to 300 for any new crates/versions being published.** + +… for now, or at least until we have found solutions for the above problems. + +We are aware of a couple of crates that also have legitimate reasons for having more than 300 features, and we have granted them appropriate exceptions to this rule, but we would like to ask everyone to be mindful of these limitations of our current systems. + +We also invite everyone to participate in finding solutions to the above problems. The best place to discuss ideas is the [crates.io Zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/), and once an idea is a bit more fleshed out it will then be transformed into an [RFC](https://github.com/rust-lang/rfcs/). + +Finally, we would like to thank [Charles Edward Gagnon](https://github.com/Carlosted) for making us aware of this problem. We also want to reiterate that the author and their crate are not to blame for this. It is hard to know of these crates.io implementation details when developing crates, so if anything, the blame would be on us, the crates.io team, for not having limits on this earlier. Anyway, we have them now, and now you all know why! 👋 From 234064070186a98e672f10de12c08b4f5750c34c Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 27 Oct 2023 18:55:16 +0200 Subject: [PATCH 0158/1024] Add "crates.io: Dropping support for non-canonical downloads" blog post (#1156) Co-authored-by: Carol (Nichols || Goulding) <193874+carols10cents@users.noreply.github.com> --- ...10-27-crates-io-non-canonical-downloads.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 posts/2023-10-27-crates-io-non-canonical-downloads.md diff --git a/posts/2023-10-27-crates-io-non-canonical-downloads.md b/posts/2023-10-27-crates-io-non-canonical-downloads.md new file mode 100644 index 000000000..7c4e8bf6a --- /dev/null +++ b/posts/2023-10-27-crates-io-non-canonical-downloads.md @@ -0,0 +1,53 @@ +--- +layout: post +title: "crates.io: Dropping support for non-canonical downloads" +author: Tobias Bieniek +team: the crates.io team +--- + +## TL;DR + +- We want to improve the reliability and performance of crate downloads. +- "Non-canonical downloads" (that use URLs containing hyphens or underscores where the crate published uses the opposite) are blocking these plans. +- On 2023-11-20 support for "non-canonical downloads" will be disabled. +- cargo users are unaffected. + +## What are "non-canonical downloads"? + +The "non-canonical downloads" feature allows everyone to download the `serde_derive` crate from , but also from , where the underscore was replaced with a hyphen (crates.io normalizes underscores and hyphens to be the same for uniqueness purposes, so it isn't possible to publish a crate named `serde-derive` because `serde_derive` exists) and parts of the crate name are using uppercase characters. The same also works vice versa, if the canonical crate name uses hyphens and the download URL uses underscores instead. It even works with any other combination for crates that have multiple such characters (please don't mix them…!). + +## Why remove it? + +Supporting such non-canonical download requests means that the crates.io server needs to perform a database lookup for every download request to figure out the canonical crate name. The canonical crate name is then used to construct a download URL and the client is HTTP-redirected to that URL. + +While we have introduced a caching layer some time ago to address some of the performance concerns, having all download requests go through our backend servers has still started to become problematic and at the current rate of growth will not become any easier in the future. + +Having to support "non-canonical downloads" however prevents us from using CDNs directly for the download requests, so if we can remove support for non-canonical download requests, it will unlock significant performance and reliability gains. + +## Who is using "non-canonical downloads"? + +`cargo` always uses the canonical crate name from the package index to construct the corresponding download URLs. If support was removed for this on the crates.io side then cargo would still work exactly the same as before. + +Looking at the crates.io request logs, the following user-agents are currently relying on "non-canonical downloads" support: + +- cargo-binstall/1.1.2 +- Faraday v0.17.6 +- Go-http-client/2.0 +- GNU Guile +- python-requests/2.31.0 + +Three of these are just generic HTTP client libraries. [GNU Guile](https://www.gnu.org/software/guile/) is apparently a programming language, so most likely this is also a generic user-agent from a custom user program. + +[`cargo-binstall`](https://github.com/cargo-bins/cargo-binstall) is a tool enabling installation of binary artifacts of crates. The maintainer is already aware of the upcoming change and confirmed that more recent versions of `cargo-binstall` should not be affected by this change. + +We recommend that any scripts relying on non-canonical downloads be adjusted to use the canonical names from the package index, the database dump, or the crates.io API instead. If you don't know which data source is best suited for you, we welcome you to take a look at [the crates.io data access page](https://crates.io/data-access). + +## What is the plan? + +1. **Today:** Announce the removal of support for non-canonical downloads on the main Rust blog. +2. **2023-11-20:** Disable support for non-canonical downloads and return a migration error message instead, to alert remaining users of this feature of the need to migrate. This still needs to put load on the application to detect a request is using a non-canonical download URL. +3. **2023-12-18:** Return a regular 404 error instead of the migration error message, allowing us to get rid of (parts of) the database query. + +Note that we will still need the database query for download counting purposes for now. We have plans to remove this requirement as well, but those efforts are blocked by us still supporting non-canonical downloads. + +If you want to follow the progress on implementing these changes or if you have comments you can subscribe to the corresponding [tracking issue](https://github.com/rust-lang/crates.io/issues/7341). Related discussions are also happening on the [crates.io Zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/non-canonical.20downloads). From 2993f40cf6d1e77a53bfae0363b0b45cd8da817b Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 6 Nov 2023 09:05:14 -0800 Subject: [PATCH 0159/1024] Add November 2023 Leadership Council Update --- .../2023-11-07-leadership-council-update.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 posts/inside-rust/2023-11-07-leadership-council-update.md diff --git a/posts/inside-rust/2023-11-07-leadership-council-update.md b/posts/inside-rust/2023-11-07-leadership-council-update.md new file mode 100644 index 000000000..62f60485f --- /dev/null +++ b/posts/inside-rust/2023-11-07-leadership-council-update.md @@ -0,0 +1,83 @@ +--- +layout: post +title: "November 2023 Leadership Council Update" +author: Leadership Council +team: Leadership Council +--- + +Hello again from the Rust Leadership Council! +We wanted to share an update on what the Council has been working on since [our last update][update]. + +[update]: https://blog.rust-lang.org/inside-rust/2023/07/25/leadership-council-update.html + +## Accomplishments so far + +We have elected new project directors! +Through the great work of the [Project Director Election Process Committee][pd-committee], +we have defined a [process][pd-process] for selecting Project Directors for the Rust Foundation Board of Directors. +We carried out the process, and [recently announced][pd-announce] the new directors. +We will be following up with a retrospective to identify what went well and what can be improved, +and feed those improvements back into the process for next year. + +[pd-committee]: https://github.com/rust-lang/leadership-council/blob/main/committees/project-director-election-process.md +[pd-process]: https://github.com/rust-lang/leadership-council/blob/main/policies/project-director-election-process.md +[pd-announce]: https://blog.rust-lang.org/2023/10/19/announcing-the-new-rust-project-directors.html + +We have established a new home for Project governance documentation at . +As changes to the governance policies are accepted via the RFC process, +we intend to update this documentation so that there is a single place for the current policy. +Additionally, we plan to grow this documentation to include more Project-wide policies, +and to possibly include information about the teams within the Project. + +Additionally, the [Rust Forge](https://forge.rust-lang.org/) has been updated to grant merge permissions to anyone on the teams hosting content there. +Any team that wants to include their own content on the Forge is welcome to add themselves to the [permissions list](https://github.com/rust-lang/team/blob/master/repos/rust-lang/rust-forge.toml). + +The documentation at has been updated with some more information about how the Council itself works internally. +The Council issue backlog is now being tracked at , +along with [documentation][issue-process] on how Council issue tracking is intended to work. +Anyone is welcome to open an issue if you have a question or have a proposal for some new policy or process. + +[issue-process]: https://github.com/rust-lang/leadership-council/blob/main/procedures/issues.md + +Additionally, we are now tracking a [schedule] of upcoming and recurring events and deadlines for the Council. +Although this is a somewhat primitive system, it can be helpful to keep an eye on tasks. + +[schedule]: https://github.com/rust-lang/leadership-council/blob/main/procedures/schedule.md + +We have added a process for having [observers join the Council meetings][meeting-observers]. +If a Rust Project team member is interested in joining the meeting, just let us know on Zulip or contact a Council member. + +[meeting-observers]: https://github.com/rust-lang/leadership-council/blob/main/procedures/meeting-observers.md + +We have accepted [RFC 3501] to start the process to release the 2024 Edition next year, to set up a [group][edition-group] to make that happen, and to set a regular cadence moving forward. +We are looking forward to getting this process underway. +If you are interested in helping with the 2024 Edition, please join us on the [#edition] Zulip stream. + +[RFC 3501]: https://github.com/rust-lang/rfcs/pull/3501 +[#edition]: https://rust-lang.zulipchat.com/#narrow/stream/268952-edition +[edition-group]: https://github.com/rust-lang/team/blob/3f4b22485abf0179a79b5ca37154ac5e0ab940e6/teams/project-edition-2024.toml + +Thanks to the help of the infrastructure team, +there is now an official Mastodon server currently hosting the [@rust@social.rust-lang.org][mastodon] account. +This account will be posting the same as the [@rustlang] Twitter/X account. + +[mastodon]: https://social.rust-lang.org/@rust +[@rustlang]: https://twitter.com/rustlang + +The beginning steps have started with defining the ["shape of the Rust Project"][shape] initiative. +We hope to have more to share on this in the coming months as we start ramping up. +For anyone that is interested in participating, please join us on Zulip in the [#council][zulip-shape] stream. + +[shape]: https://blog.rust-lang.org/inside-rust/2023/08/25/leadership-initiatives.html +[zulip-shape]: https://rust-lang.zulipchat.com/#narrow/stream/392734-council/topic/.22Shape.22.20discussions + +## Meeting Minutes + +We publish minutes from all Council meetings to the [Leadership Council repo][minutes]. +Links to the minutes since our last update are: + +* [August 3, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-08-03.md) +* [August 14, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-08-14.md) +* [September 7, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-09-07.md) + +[minutes]: https://github.com/rust-lang/leadership-council/tree/main/minutes From bbb7451900f0e5c816583b9e15a775a95dfdfc0f Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Thu, 9 Nov 2023 12:39:10 +0100 Subject: [PATCH 0160/1024] Add specification vision blog post. --- posts/inside-rust/2023-11-09-spec-vision.md | 206 ++++++++++++++++++++ src/styles/app.scss | 9 + 2 files changed, 215 insertions(+) create mode 100644 posts/inside-rust/2023-11-09-spec-vision.md diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md new file mode 100644 index 000000000..b565844b7 --- /dev/null +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -0,0 +1,206 @@ +--- +layout: post +title: "Our Vision for the Rust Specification" +author: Eric, Felix, Joel and Mara +team: the specification team +--- + +A few months ago, by accepting [RFC 3355](https://rust-lang.github.io/rfcs/3355-rust-spec.html), the decision was made to start working on an official specification for the Rust language. Eric (maintainer of the Rust Reference), Felix (Rust language team), Joel (Rust Foundation) and Mara (author of the RFC) have been working together to get this effort started. + +With this blog post, we present the steps we have taken so far and our plans for approaching the rest of this big task. + +## Editor + +One of the first steps was to fill the role of "editor" [as laid out in the RFC](https://rust-lang.github.io/rfcs/3355-rust-spec.html#role-of-the-editor). The responsibility of coordination and editing of the specification is purposely delegated to the Rust Foundation, to ensure continuity of the work. + +As part of the hiring effort by the Foundation, we interviewed a few interested candidates with relevant experience. After a process in which an offer was eventually rejected by a candidate, the Foundation changed its approach and looked internally instead. The Foundation has given its Director of Technology, Joel, the opportunity to make the role of editor a part of his existing job. Because of his vast experience with industry standards and technical editing together with his already close proximity to the Rust project, Eric, Felix and Mara were quickly on board with having Joel as the editor, who has accepted this role. + +## Specification Team + +Since the editor will not be doing the work alone, we are forming a team around the specification work, the Specification Team, as a subteam of the language team. + +Initially, its members are: + +- Felix Klock (team lead) +- Mara Bos (team lead) +- Joel Marcey (team member, editor) +- Eric Huss (team member) + +## Stakeholders + +We will select and maintain a list of *stakeholders*, a selection of both experts and consumers of the specification, who will serve as advisors and reviewers. + +Initially, the stakeholders will consist of: + +- All members of the Rust language team +- One or more representatives from the types team +- One or more representatives from the operational semantics team +- One or more representatives from Ferrocene (High Assurance/Availability, e.g. Automotive Industry.) +- One or more representatives from Formal Methods Research and Development +- Operating System Development (Rust for Linux; Microsoft) + +## Authority and Approval + +While the specification team is in charge of writing and editing the specification, the authority over definition of the Rust language remains with the relevant teams, such as the language team and the library API team. Those teams are expected to engage other teams/subteams to provide their approval when necessary. + +To allow the specification team to produce content and iterate on it without being blocked by approval processes, we will be working on a draft specification in our work repository. +With the help of some tooling, we will publicly keep track of which items still require team approval, and which items have open concerns from stakeholders. + +We will categorize all changes as either a minor or a major change. +Minor changes are items that appear uncontroversial or trivial to the specification team. +For example, changes that were already approved by the language team team via FCP, typographic and grammar fixes, clarifications where the original intent is clear, and similar unexciting changes. +Major changes are those that are potentially questionable, important, or controversial. +Any member of the specification team and the relevant authoritative team(s) and any specification stakeholder can flag a change as major. +Major changes to the specification will have to go through the usual approval process (e.g. language FCP) before they may appear in a published (non-draft) version of the specification. + +The language and specification teams should strive to have at least one shared member (e.g. Felix), acting as a liaison to help ensure that the understanding of what we consider a minor versus a major change remains in sync. + +## Goal + +The goal of the specification team is to create and maintain the Rust specification. + +The purpose of the Rust specification is to provide an authoritative resource for determining what source texts are valid Rust programs, and how such programs behave. + +An ideal specification both (1.) defines *prescriptive bounds* on the semantics of a given Rust program for current and future Rust versions, and (2.) provides *descriptive details* of the semantics that are specific to the Rust version coupled with that instance of the specification. + +The provision of the version-specific details can be provided directly in the specification, or can be indirectly provided via delegation to other documents owned by the relevant Rust teams. + +
    Explanation of the terms +
    + +The words above have been chosen carefully; it is worth elaborating on those words and the overall phrasing: + +**"defines"**: The utility of a specification comes from (1.) forcing authors to define things and (2.) its value of those definitions to the readers of the specification. + +**"semantics"**: Rust has a static and dynamic semantics. +The static semantics of Rust dictates which programs are accepted in the language, while the dynamic semantics determines which of those accepted programs are well-defined, as well as their respective meanings. +The word "semantics" in the purpose statement refers to both the static and dynamic semantics of Rust collectively. + +**"current", "future"**: The Rust language has been evolving since its inception, and we expect it to continue to evolve going forward. +These evolutionary steps represent a traversal over the language design landscape. +For every Rust release, we expect the current implementation to be standing at one point in that landscape, while the Rust community's idealized goal awaits at some higher point up the mountain. + +**"prescriptive", "descriptive"**: A descriptive dictionary is one that attempts to describe how a word *is* used, while a prescriptive dictionary is one that prescribes how a word *should be* used. +We take inspiration from that distinction to tease apart two important audience types. + +Rust provides a stability promise: "You should never have to fear upgrading to a new version of stable Rust." +That raises a natural question: Why does the purpose statement distinguish version-crossing prescriptive definitions from version-specific descriptive definitions? + +Our answer: +That stability promise left a bit of wiggle-room for itself, in terms of what the project considers "fear" vs "reasonable labor associated with a Rust upgrade." +When defining semantics, one must be more explicit about any such wiggle-room. +Some Rust users *need* a description of the expected semantics as it stands for the Rust release that sits in their hands; they are the audience for version-specific details. +But other Rust users, such as some library developers, have a more forward-looking perspective. +The forward-looking developers may require an assurance that one specific code snippet A will always be accepted, and will also always have a particular meaning. +They may require an assurance that a different snippet B will *never* be accepted. +Or they may require an assurance that a third snippet C leveraging Unsafe Rust will always have undefined behavior (e.g. to justify a local transformation by arguing that no *new* undefined behavior is injected by that transformation.) +These are all cases that call for a prescriptive definition of the semantics; it does not matter in these cases what the compiler currently does -- what matters is what it will do in the future, which is inherently prescriptive. + +It would be premature to fix firm definitions in those areas, e.g. categorizing for each input program whether it is accepted or rejected by the type inference system, and then forcing all futures versions of Rust to follow that same categorization. +Another similar example: If we chose a fixed grammar, and then said all future versions of Rust must strictly categorize all source inputs as accepted or rejected according to that one grammar, then that would restrict our ability to add future backward-compatible language extensions to the grammar. +Therefore, these kinds of guarantees (especially with respect to details of the type inference rules, or details of what unsafe code is well-defined) are where the prescriptive *bounds* arise. +Such bounds allow for a middle ground of programs, where we do not commit all future versions of Rust to always make the same decision that the current version makes. +For example, one can then say, prescriptively, that a given grammar provides a lower bound on the set of programs that must be accepted by all future versions of Rust, while still allowing the language to evolve in a backward compatible fashion. +One can also say, descriptively, that the current version of Rust rejects source inputs that do not conform to the grammar. + +The descriptive definitions tell the reader how a construct will behave with respect to that Rust version; the prescriptive bounds tell the reader what they can and cannot expect to hold true in the future of Rust. + +Thus, we conclude that an ideal specification will need to address both the static and dynamic semantics, for both the prescriptive bounds and descriptive details. + +**"delegates"**: There are broad areas where the questions of what semantics we want, and how they should be specified, are open research topics. +Examples of such areas include: macros 2.0, the type inference rules, the trait matching rules, and the operational semantics of unsafe code. +It is not reasonable for the specification team to claim authority on such topics. +Instead, other teams will be invited to contribute their own detailed descriptions, which can be published as their own documents that the specification can reference. +Each such document is, like the specification itself, coupled to a specific Rust version. +Furthermore, each such document is analogous to the detailed descriptions: the scope of each document produced via delegation is intended to be restricted to a specific Rust version. + +If a contributing team has input about broader prescriptive rules that should hold beyond the current Rust version, then that should be be part of the Rust specification document itself. +Such prescriptive rules should always be the responsibility of the specification team to incorporate into the document. +All such prescriptive rules are then subject to the specification approval process. + +
    +
    + +

    + +## Incremental Development + +It is ambitious to provide both prescriptive bounds for current and future Rust versions and descriptive details of the current Rust version. +We will maximize the value of our efforts by working iteratively and incrementally. +The specification can have gaps where the prescribed bounds are broader than necessary. +Subsequent releases of the specification can tighten those prescribed bounds. + +We expect early versions of the spec to focus heavily on delivering the detailed description of the current Rust version. +Such a specification could be derived heavily from an existing work product, such the Ferrocene specification, since that explicitly focuses on providing a detailed description of a specific Rust version. +Feedback on those version-specific descriptions will help us learn how best to craft the prescriptive bounds in the specification. + +The prescriptive bounds can start with useful high-level guarantees (e.g. "safe Rust cannot cause undefined behavior"), and then future versions of the specification can incrementally add more details to the prescriptive bounds (e.g. "unsafe Rust cannot cause undefined behaviour under the following conditions: …"), incrementally gaining more details over time. + +## Scope + +The specification should cover at least the following areas of Rust's syntax and semantics. Some parts may be inherently coupled to specific backends or target implementation techniques (e.g. inline asm). + +* The grammar of Rust, specified via Backus-Naur Form (BMF) or some reasonable extension of BNF. +* Macro expansion + * Macro-by-example (`macro_rules`) transcription; Hygiene + * `cfg` attributes + * Procedural macros; attributes and derive +* Path and identifier resolution + * Modules +* Static semantics + * Type definitions; type expressions; layout + * Type inference and type-checking; subtyping + * Lifetimes and borrow-checking +* Generics; Associated item resolution and Trait solving +* Operational semantics of safe Rust + * binding forms; match expressions; drop glue + * moving and copying of values; borrows + * field projection; method dispatch + * operator overloading +* Operational semantics of unsafe Rust + * memory model + * inline assembly +* Const evaluation +* Crates and crate linkage + +This list can be expanded over time. + +## Presentation + +The Rust Specification will be a publicly accessible document, similar to all other Rust documentation. +The text will be written in English and will only use technical terms that are defined within the specification itself or that have clear definitions in a freely available online dictionary. + +Individual items in the specification can each be referenced and named: not just in hyperlinks, but also in human text (e.g. "[syntax.patterns.arm.5]"). When possible, these names/references to items should persist across versions of the specification. + +Iterations of the specification should include renderings that highlight the differences between versions. (See e.g. Ada Reference Manual.) + +The Rust specification will be maintained in a format that that encourages volunteer contribution, even if the specification team expects to have to reauthor each contribution in order to maintain a consistent voice for the specification. + +While completeness and correctness are the primary priority, we will try our best to make the specification as accessible as possible. Ideally, any Rust programmer should be able to dive in and find the answer to any language question they might have, without the need to ask a "language lawyer" who is already deeply familiar with the document. + +### Release Cadence + +Rust releases continue to proceed independently of the specification approval process. + +If a specification has not been approved for a given release, then the release goes out without an associated specification. +(We might still decide to deliver a specification associated with a given release at a later time, however.) + +This is by design. The specification effort must not add new hurdles for the project to overcome in order to meet its existing obligations, such as the 6-week release cadence. + +Our aspiration is that we will *eventually* reach a point where delivering an updated specification is automatic and can be done according to the project's 6-week release cadence. +But, for the short and medium term, we want to have the freedom to lag behind that 6-week release cadence. +The ability to lag behind the Rust release schedule may be especially useful when the specification team is incrementally adding new content for previously unaddressed areas, or significantly narrowing the prescriptive bounds in the current version of the specification. + +While the specification development process will not block releases, changes to *language features* should be coupled with relevant updates to the specification. +Once we have begun publishing a specification coupled to specific releases, then changes to the language features that are documented in the current specification cannot be stabilized without a corresponding pull request approved by the specification team to the current draft specification. +Changes to language features that are not documented in the specification can be stabilized without an update to the specification, but require a specification team member's acknowledgement that the corresponding feature is undocumented. + +By enforcing this rule that new features must be part of the specification before they are stabilized, we will hopefully eliminate the main source of potential lag between the specification and the Rust release. + +## Next Steps + +Now that we have taken the initial steps of selecting an editor, forming the initial team, and documenting our vision in this blog post, the next steps are: + +- Setting up a regular meeting schedule for the team. +- Establishing the list of stakeholders. +- Making a first "demo product", to be reviewed by the stakeholders. That is, setting up our tooling and picking a small slice of Rust to fully document (including cross references, etc.), to give an accurate first impression of what the full specification will look like. diff --git a/src/styles/app.scss b/src/styles/app.scss index e33b36bf3..b14f60380 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -54,6 +54,15 @@ blockquote { } } +details > summary { + cursor: pointer; + font-style: italic; +} + +details > blockquote { + font-style: normal; +} + code { overflow: auto; } From b9bb75a39ad8e18189219fe157f977addaa2b31d Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Fri, 3 Nov 2023 09:30:45 +1100 Subject: [PATCH 0161/1024] Add parallel-rustc blog post. --- .../inside-rust/2023-11-10-parallel-rustc.md | 252 ++++++++++++++++++ .../cargo-build-timings.png | Bin 0 -> 771440 bytes .../samply-parallel.png | Bin 0 -> 227628 bytes .../samply-serial.png | Bin 0 -> 153838 bytes 4 files changed, 252 insertions(+) create mode 100644 posts/inside-rust/2023-11-10-parallel-rustc.md create mode 100644 static/images/inside-rust/2023-11-10-parallel-rustc/cargo-build-timings.png create mode 100644 static/images/inside-rust/2023-11-10-parallel-rustc/samply-parallel.png create mode 100644 static/images/inside-rust/2023-11-10-parallel-rustc/samply-serial.png diff --git a/posts/inside-rust/2023-11-10-parallel-rustc.md b/posts/inside-rust/2023-11-10-parallel-rustc.md new file mode 100644 index 000000000..258c3faa6 --- /dev/null +++ b/posts/inside-rust/2023-11-10-parallel-rustc.md @@ -0,0 +1,252 @@ +--- +layout: post +title: Faster compilation with the parallel front-end in nightly +author: Nicholas Nethercote +team: The Parallel Rustc Working Group +--- + +The Rust compiler's front-end can now use parallel execution to significantly +reduce compile times. To try it, run the nightly compiler with the `-Z +threads=8` option. This feature is currently experimental, and we aim to ship +it in the stable compiler in 2024. + +Keep reading to learn why a parallel front-end is needed and how it works, or +just skip ahead to the [How to use it](parallel-rustc.html#how-to-use-it) +section. + +## Compile times and parallelism + +Rust compile times are a perennial concern. The [Compiler Performance Working +Group](https://www.rust-lang.org/governance/teams/compiler#Compiler%20performance%20working%20group) +has continually improved compiler performance for several years. For example, +in the first 10 months of 2023, there were mean reductions in compile time of +[13%](https://perf.rust-lang.org/compare.html?start=2023-01-01&end=2023-10-31&stat=wall-time&nonRelevant=true), +in peak memory use of +[15%](https://perf.rust-lang.org/compare.html?start=2023-01-01&end=2023-10-31&stat=max-rss&nonRelevant=true), +and in binary size of +[7%](https://perf.rust-lang.org/compare.html?start=2023-01-01&end=2023-10-31&stat=size%3Alinked_artifact&nonRelevant=true), +as measured by our performance suite. + +However, at this point the compiler has been heavily optimized and new +improvements are hard to find. There is no low-hanging fruit remaining. + +But there is one piece of large but high-hanging fruit: parallelism. Current +Rust compiler users benefit from two kinds of parallelism, and the newly +parallel front-end adds a third kind. + +### Existing interprocess parallelism + +When you compile a Rust program, Cargo launches multiple rustc processes, +compiling multiple crates in parallel. This works well. Try compiling a large +Rust program with the `-j1` flag to disable this parallelization and it will +take a lot longer than normal. + +You can visualise this parallelism if you build with Cargo's +[`--timings`](https://doc.rust-lang.org/cargo/reference/timings.html) flag, +which produces a chart showing how the crates are compiled. The following image +shows the timeline when building [ripgrep](https://crates.io/crates/ripgrep) on +a machine with 28 virtual cores. + +![`cargo build --timings` output when compiling ripgrep](../../../../images/inside-rust/2023-11-10-parallel-rustc/cargo-build-timings.png) + +There are 60 horizontal lines, each one representing a distinct process. Their +durations range from a fraction of a second to multiple seconds. Most of them +are rustc, and the few orange ones are build scripts. The first twenty run all +start at the same time. This is possible because there are no dependencies +between the relevant crates. But further down the graph, parallelism reduces as +crate dependencies increase. Although the compiler can overlap compilation of +dependent crates somewhat thanks to a feature called [pipelined +compilation](https://github.com/rust-lang/rust/issues/60988), there is much +less parallel execution happening towards the end of compilation, and this is +typical for large Rust programs. Interprocess parallelism is not enough to take +full advantage of many cores. For more speed, we need parallelism within each process. + +### Existing intraprocess parallelism: the back-end + +The compiler is split into two halves: the front-end and the back-end. + +The front-end does many things, including parsing, type checking, and borrow +checking. Until this week, it could not use parallel execution. + +The back-end performs code generation. It generates code in chunks called +"codegen units" and then LLVM processes these in parallel. This is a form of +coarse-grained parallelism. + +We can visualize the difference between the serial front-end and the parallel +back-end. The following image shows the output of a profiler called +[Samply](https://github.com/mstange/samply/) measuring rustc as it does a +release build of the final crate in Cargo. The image is superimposed with +markers that indicate front-end and back-end execution. + +![Samply output when compiling Cargo, serial](../../../../images/inside-rust/2023-11-10-parallel-rustc/samply-serial.png) + +Each horizontal line represents a thread. The main thread is labelled "rustc" +and is shown at the bottom. It is busy for most of the execution. The other 16 +threads are LLVM threads, labelled "opt cgu.00" through to "opt cgu.15". There +are 16 threads because 16 is the default number of codegen units for a release +build. + +There are several things worth noting. +- Front-end execution takes 10.2 seconds. +- Back-end execution occurs takes 6.2 seconds, and the LLVM threads are running + for 5.9 seconds of that. +- The parallel code generation is highly effective. Imagine if all those LLVM + executed one after another! +- Even though there are 16 LLVM threads, at no point are all 16 executing at + the same time, despite this being run on a machine with 28 cores. (The peak + is 14 or 15.) This is because the main thread translates its internal code + representation (MIR) to LLVM's code representation (LLVM IR) in serial. This + takes a brief period for each codegen unit, and explains the staircase shape + on the left-hand side of the code generation threads. There is some room for + improvement here. +- The front-end is entirely serial. There is a lot of room for improvement + here. + +### New intraprocess parallelism: the front-end + +The front-end is now capable of parallel execution. It uses +[Rayon](https://crates.io/crates/rayon) to perform compilation tasks using +fine-grained parallelism. Many data structures are synchronized by mutexes and +read-write locks, atomic types are used where appropriate, and many front-end +operations are made parallel. The addition of parallelism was done by modifying +a relatively small number of key points in the code. The vast majority of the +front-end code did not need to be changed. + +When the parallel front-end is enabled and configured to use eight threads, we +get the following Samply profile when compiling the same example as before. + +![Samply output when compiling Cargo, parallel](../../../../images/inside-rust/2023-11-10-parallel-rustc/samply-parallel.png) + +Again, there are several things worth nothing. +- Front-end execution takes 5.9 seconds (down from 10.2 seconds). +- Back-end execution takes 5.3 seconds (down from 6.2 seconds), and the LLVM + threads are running for 4.9 seconds of that (down from 5.9 seconds). +- There are seven additional threads labelled "rustc" operating in the + front-end. The reduced front-end time shows they are reasonably effective, + but the thread utilization is patchy, with the eight threads all having + periods of inactivity. There is room for significant improvement here. +- Eight of the LLVM threads start at the same time. This is because the eight + "rustc" threads create the LLVM IR for eight codegen units in parallel. (For + seven of those threads that is the only work they do in the back-end.) After + that, the staircase effect returns because only one "rustc" thread does LLVM + IR generation while seven or more LLVM threads are active. If the number of + threads used by the front-end was changed to 16 the staircase shape would + disappear entirely, though in this case the final execution time would barely + change. + +### Putting it all together + +Rust compilation has long benefited from interprocess parallelism, via Cargo, +and from intraprocess parallelism in the back-end. It can now also benefit from +intraprocess parallelism in the front-end. + +You might wonder how interprocess parallelism and intraprocess parallelism +interact. If we have 20 parallel rustc invocations and each one can have up to +16 threads running, could we end up with hundreds of threads on a machine with +only tens of cores, resulting in inefficient execution as the OS tries its best +to schedule them? + +Fortunately no. The compiler uses the [jobserver +protocol](https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html) +to limit the number of threads it creates. If a lot of interprocess parallelism +is occuring, intraprocess parallelism will be limited appropriately, and +the number of threads will not exceed the number of cores. + +## How to use it + +The nightly compiler is now [shipping with the parallel front-end +enabled](https://github.com/rust-lang/rust/pull/117435). However, **by default +it runs in single-threaded mode** and won't reduce compile times. + +Keen users can opt into multi-threaded mode with the `-Z threads` option. For +example: +``` +$ RUSTFLAGS="-Z threads=8" cargo build --release +``` +Alternatively, to opt in from a +[config.toml](https://doc.rust-lang.org/cargo/reference/config.html) file (for +one or more projects), add these lines: +``` +[build] +rustflags = ["-Z", "threads=8"] +``` +It may be surprising that single-threaded mode is the default. Why parallelize +the front-end and then run it in single-threaded mode? The answer is simple: +caution. This is a big change! The parallel front-end has a lot of new code. +Single-threaded mode exercises most of the new code, but excludes the +possibility of threading bugs such as deadlocks that can affect multi-threaded +mode. Even in Rust, parallel programs are harder to write correctly than serial +programs. For this reason the parallel front-end also won't be shipped in beta +or stable releases for some time. + +### Performance effects + +When the parallel front-end is run in single-threaded mode, compilation times +are typically 0% to 2% slower than with the serial front-end. This should be +barely noticeable. + +When the parallel front-end is run in multi-threaded mode with `-Z threads=8`, +our [measurements on real-world +code](https://github.com/rust-lang/compiler-team/issues/681) show that compile +times can be reduced by up to 50%, though the effects vary widely and depend on +the characteristics of the code and its build configuration. For example, dev +builds are likely to see bigger improvements than release builds because +release builds usually spend more time doing optimizations in the back-end. A +small number of cases compile more slowly in multi-threaded mode than +single-threaded mode. These are mostly tiny programs that already compile +quickly. + +We recommend eight threads because this is the configuration we have tested the +most and it is known to give good results. Values lower than eight will see +smaller benefits. Values greater than eight will give diminishing returns and +may even give worse performance. + +If a 50% improvement seems low when going from one to eight threads, recall +from the explanation above that the front-end only accounts for part of compile +times, and the back-end is already parallel. You can't beat [Amdahl's +Law](https://en.wikipedia.org/wiki/Amdahl%27s_law). + +Memory usage can increase significantly in multi-threaded mode. We have seen +increases of up to 35%. This is unsurprising given that various parts of +compilation, each of which requires a certain amount of memory, are now +executing in parallel. + +### Correctness + +Reliability in single-threaded mode should be high. + +In multi-threaded mode there are some known bugs, including deadlocks. If +compilation hangs, you have probably hit one of them. + +### Feedback + +If you have any problems with the parallel front-end, please [check the issues +marked with the "WG-compiler-parallel" +label](https://github.com/rust-lang/rust/labels/WG-compiler-parallel). +If your problem does not match any of the existing issues, please file a new +issue. + +For more general feedback, please start a discussion on the [wg-parallel-rustc +Zulip +channel](https://rust-lang.zulipchat.com/#narrow/stream/187679-t-compiler.2Fwg-parallel-rustc). +We are particularly interested to hear the performance effects on the code you +care about. + +# Future work + +We are working to improve the performance of the parallel front-end. As the +graphs above showed, there is room to improve the utilization of the threads in +the front-end. We are also ironing out the remaining bugs in multi-threaded +mode. + +We aim to stabilize the `-Z threads` option and ship the parallel front-end +running by default in multi-threaded mode on stable releases in 2024. + +# Acknowledgments + +The parallel front-end has been under development for a long time. It was +started by [@Zoxc](https://github.com/Zoxc/), who also did most of the work for +several years. After a period of inactivity, the project was revived this year +by [@SparrowLii](https://github.com/sparrowlii/), who led the effort to get it +shipped. Other members of the Parallel Rustc Working Group have also been +involved with reviews and other activities. Many thanks to everyone involved. diff --git a/static/images/inside-rust/2023-11-10-parallel-rustc/cargo-build-timings.png b/static/images/inside-rust/2023-11-10-parallel-rustc/cargo-build-timings.png new file mode 100644 index 0000000000000000000000000000000000000000..0a405c22e85b8fb0c1fabfccb65ee1e023b1bcd2 GIT binary patch literal 771440 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⁡DddG%I*7j7MLfVgV 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�vv4Ev)3 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 z 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

    6@D7)LjM7AUo^;ah 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

    V$zs&6x)gAD$&0ud&~+A#93E`mj)fxj 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%0AM2KC)7H7~+P`*xDpz6sKKCbdPHW+n>cjUWW+eX` z$-7@D_V=`P#E9NYIPEZ^SDGAZYz;P>jaK!jO`cEr*lz5t84;i&czx@`D!-}0?v}DW zi(BEa5Zo|Ji#k6E+y6hdMt?nFNV1%#ZapJ4c)Zu1G~Bq3;+S1MD{r$l+tB%hOv^QR zZw#;YzAIKX|CP%lx2PMtQC2ciApX0P!T6tT%s(ew|ExIEc^%4Dp(3K0nG#Y*Fn_J} zGv^;)5-E2L(OeFj(sx(j$&m^$JG*`h+EkartH)qqkmZ7cBFFXRBq?oOKOM(Df)B8VH43$l|l$TX%5&s_7nEAT`gd5lahdk zX7~N8LzK5!|B{Yk@#GJT?!_@ynDbY`# z^bZb^#IwT~umpPmAs27x{J?J)aP8=RuoVrQ0adXV^II3Fo{N5XULN6vn(5MuC7jPOEg$N=BnNk?EqeII8_!v@;&g%(2%>A2Qzh# zccVkUy#|u?hVarmAtxI%Xikh7aNkB3gFj~fs-DXnpBXTFT8$7iyB`R{Yp{XuMOgmQ z#lV{G1U|qKVSvARuvVcfiNCL=Y~;N6VT#T@0kK=)ih8D_+YYvX*O%^jY^k>MA?oG5 zZc@Dj2Nr*JnZMe@l&0m=BlLCOcuXRyU@bBTw78%J8=$n8io$*lS9Mz3U?e2aY;qkB zX=js?*A~OQ_?pDF)9mMZ_&6#e;q{8D#9B0d6vTlM7JgF%uVd?{Yu|x78qjUT_Zz^ z4ol6cuj$#-(5nf&oZh}mmN^T|+>BN~Jg}q3+3OJcxUwgmx0+gDQd(MCS-$;5=KZWn zm}VHaL2bf}ZxiM3F=mGBSe;Qm^lsuC5rm>pimP*msBayKTC-X&VF=RAPfZ@dOu>SI zjdvRWyCQT+JFdr+WBnMy1$aYF`@1Lv&lO_2O9ebn>d%}Lv`LsTadIl;)XcurIs>$8 zNF2w(Xdd551u_rxDFbH5z@A6}GS691KG&9+G-o(gkkEF)O)y?mT5P$+L|hmCzw!Of1Mtwo?V z6mgbQ%c(TW1Y7Ta#(@cMY7}X&J~{zbVem6bppx`O=EDxS7nnxdH6ctu4TvCt z|JV*ES5ntNI!G@k*=`qmo|3zoXmNgD>^ZD^KMQwZ9^8LNBBdA8-4X! zYPombWF>}m$5!X%!g!^z`Uw_L89j1P&HjjdBaHREj_%>r2K|pcp|2a6S7!#0@&@vn zM)biB9J)8bZTZCgBD<7g9H9jwJZHd@ln>Ug(>q|?(hI8^0wHxB823SX`kui6%~g;{ zf~xn)Ig5f=^0$uV#zA@y<_=E3t7Kp5h1(<@@`kMMz4O^3p!~yt362Jqbe?}HY`f;T zJvMz@bhV!#TAma;=BaDb5wjggcrh*I(hbp#Oh zt>8IMhtztcj*n#PfHZB13Dly8uIEcI$wH4zUty#9kH3UaKk!41kWM)JURCk6YxgFQ zaXYqFrXIs~z{=p2>QRC#R6=F_ATe0l5PXJ#Mcl3nxWRe#WBC#>o+JQb>$tdzZ~yq- zG<)NmrD>?hR=B9`veLQr(Pzr{THFHM<_a#{&@!CCtu;ojca=xep~*V|;_A#m8wqbF z|Gx+JzV$b*#R4q)jAq3fJ zv|ArxuzTAN1vewx7hCU3$H%U6P5OvwL?T?oiW34uPm`C`!e#-Kw98EK@{tUHG;Zlj z3vu{7-5@V|?6GCI97XBJ#G&HW*thQk;iHMGY-6~fDV_2)!40;ScxU~ID7)4>gl?MA z#e5*icMdpBFwmB{jsf+q2zu1PlINO9Cw0AQv-sR6u$XIw43 zgL3VI%dfxP+5}(iqGe!JQXuud(k$7_w=znv&1t~)y!F?UYc|URDd~%H96oB+mgu+r=z1j3w>q7XCq#QUoCyVSv)&V4 z!X&xjlX9%Y*;yT0LJ+$V_k^x*F(dv!lV?)&Jo|#{4X3!>?Y*AfqjNY_kKQbo^1NQd zhP-?+$G#_xn{|<8-*MZ$Bt{}*i*I5@xhhl223M4<0Wn6# zjo<`qb+>s}l$^4}n5DcqHUeA9nhRdy)R>>r6EXc#SoS(*nwVW8;kL_Q zPjc)9F;D7}zZV-Fqc;ztW0cKEl6dWrdI=S@h|^R7waLTexBl1|lWi>Itn#Rwyn_{a^9{jW{D{H^2n>DS!(Wmu8fQ$3lwxWxhu->T3!3|kAeBT; z7(?pXeU>R%kzlP0euv#|GKs=R&U*BI5*Gk+AvfWjBqy4JkJ^@pjfu&SWUbrrH}xrR z1F9PlMJvm!bejk!2&bcjot3tGh&WO^+u-%NWyl;T;wI_OJMB zN${K^7AkKzdF{@7XPAWCZO-+=4O{_X7=Emqx0y5 zekd1CoT9rngew&n5{#aUGGmb)h~Qf{6JDS0?{6}kL3Jer?4L_<9%cYJ(G6*=mr3s* zXw5M`SONxHQZFoMc(t5XxiPp?{vZ$=o80pOuO=LYo;p=Vz*?!B66;?EY7Acn0flI~}1r07vszCg|W;gT$xYMc*c)i%%EFRKt6r^a5x zsxyk(XqmsT&#yX=N7ILx-7;&NqSVwrV1K-S|Nhd9L*+U=+mM_AhfYnSLbFLtedy5h z88k~07yNPh&@jl4qW4Ao(rpr+?eso3N#lLO`x{&b)NM=?6_FjO8pYgFtJ1mQWd*C2 zRY9g!vK=(Q5pi5TrM@L;4U&-8B7y+-v)lx!%hX^n&l_o`bIVDw?1Yb2RSliXZx1R< zElw49^y*GTj_R59X65K&W`xxRlkT)%)9ANJP>2#5D0P7D{l4L{I-x0F)K1;NC+%j^ z;6r@>&UV3{LaR$w(u6Ilq@ac)9_TIK3L=>vM^1+r{haqEmN;*A_0=AI4ae4eOfiM`YkkSLKA)(i8*T&3g=8w96Gn z3U*akt5Y4~$oR?r{CXI(;{NVRi<_!I0;0YQf6d+ocR8Hlu#}li-zVgA6dq$5AIe(788m%*t=q%*&in{RFl3Pz1^0mkOK-`e37DVMWkb} zdkOi*7gDn<47yohaElnKnKeVili$=Xwt}kG$Ah zvB`E@@8qf?eYlEhyemr*)3Zy`*>=}e#y&yDNCzDTMWUiK4JqRp9ekzk%{Pw}QYyhd zxot|Q`gfp?1d-=Qcvkkbgcg{B^g2BfVS^WC8MnkGPYZ5c@9kBW*7h~lKAGA2Tu}_h zPxMO$hh%#OwC6A?wppDO*skc&Gj3-YEM0PX)2A8L%UT(g zE|C>K?90`MPwxv0|5~@_f-d&*_Hd!-W;G*d<%5AK$St`^_#e2u7|bx2Ab=6X6N0tIM) zjm~*CBVu8Ua9)uRL?%7MgS zXAVFQ42>QlM;$N&O;|#Y!p|G+Mahh**;jxE26i_<4cjyCzFu6z8SONF_MCv#gHfZi z{`7*arKhzES*KzW9G`l{>N(1F4DGEXiC2j(gPJ-YD1Y6hNe5aG^&#~<<^E?iFJX5I z@33jILC0l9%r*>EX;LpIIR{R2>&;?WOMw8MSSPyo;C-Vqt9nJcV?~#5pEQGmALq;W2T*5Jk~_^9T^Bsbqgs9or|=->EXsY$q%Gu}eV*a>5JV_X zFE|Pp2M5VBMbW6(7@$8Bz7HA9A+{6XxFBlN#kjZdGTBUBO|89%m4|Qs3i`QvsRO{gd^ll#FlJfQS%((YA z?Ou5xkr+5?R{nOden>jr?5?o~bGN35_EX z9vCz6rHR~5(f>C#EnzjmFw<Nx$WKHb!hC6oHZI2=M`8HrlsS zrg)$aD)XVIY6n>$KX=K3mrEkjlI(ciDMiw|5soSJ3SQR zmadCBwuD_w_VQ&ew#-Wj6w~kUhAhZ4k z4JgJ-gtbf|7w#d(sYbX3%-~8t+wQiEOD|B11#TC238cSC zp8#*nH`w=pP!ASRDzGu_b+A|CVRb-!tGia=aK0Aaf`J^yw{m;yHtqR{|s(x?e>vfZ^ZVV z-Vw4zc)x*PW?&&84dBM>+ppM^8PyDLKTHC9t5ME^__CkDaNC~^6lmV58CIKN4HB5b z*d;f$OBPe+`85%`L-w^FZp2=Ih#s$GZILA&hPyZHEGaP(nbemRKLLEPutWd(>3@-? zDt7zG?3>!s3wUNHMa>)Y^)&&zbeQ9KXV#6FOE`Q=DNxs|Ka9hf5N`T%$)H1%Yd0NCtPR8l_d&)%P`b=Mrx zBZ-YBDFHG$V{AodYq3^NFXKKdfjp7HPs~wk-^J!GfYg!={D;e$U z-+JB6fCS$tqd?u~LcbP)7&&KTY0!EF~Z$+YwA%vN-;FUr1;VaSbvL zqj8~VP({tPsGF>sAXmh#UVzpUi9kPHce|N_xE0YST7ElAN)6e!`ARZg?o4lCQG3IU zr%@tC39vBl>!(%@d9DB!HWgugn8+JEomP8?;7)lx4bn5P331A|zgvW^e14Q5Z_S53 zva~T0z*73WOo>4TF=J{Ct32q<`WAep`i)ql4fDK&Q*<8NPtnZ`%os($?u|S)*R-R~ z?Fs_$f%Bwkk5)3Q9(C);36rZ#H$($)CE=iPbomAW90lp&xeOtAgojRasmJEd!S_o` zOUXn2w8<^j5Qpc_2~p0@hg<`FG^5v2ppLzx95na`=7X0%EF4!DqD;(+C} zq>eQU2hS@Xre+EFjE+>yCm$G_(s#Lj$sqw+_2c9DA>&C4vWXfOu22NguADJj-e(j6LqEt-FX36!yjg2mVz z%u5bU;_f>eao1yp6_t;(Q2fr_vGFJ6(ByNvzYTwCp_Lwd`qd~Sbr@(PC3hRV3XWDp z{-mA$`hrSS{Ioy@^Twf2HU?i7i7JNiU#80-j2GC`H^ZJDNsgylLD9GFLG=36pUYj+ z%s;)7jUeU})gp3^!b>6xN}!M1bEmRLK+inAJh^0E#Rc&4+R5?FH^}m!KK^?SO);Fs zF4+$g98aL`Ukl)BQlCYzN4P8KfxRc)uuPLLLHSI$O7x-#17McVSGo13*sOVpyaAu) zthbKUAWeYOTm|XZk11L2!nb(nPhKj?galr*%h5lRcnGpqa$B8A8ln`az^cl_@B~u* zH>a&qCvb(#^Ag;2A1;y-gBP2}BH3DUiwkilV54D2|Fc^EFSYzH|~f5DlUnIEpm~HWc?2 z6#QKD|Gvwo24C@zX#xN0CIv<0Z&WRx`?Y7&BjV$!{z$$rrYNS*fh((I?QW4xH{ZTD)ER~GrRZ&o4|Zyrg{Sq)r5e7@ z>rZ~YJLo@Vq7x|fn~?>)jEO0)a{T3@JR0FyLP;)&hOrj?P-| z3`y>sDhfrTo$hVD;542<)X~vl;bt6}3}Eth8g77?mw zmh^Io3&a?NcCyL@j5F;1Giws!Y$jlC3tpVLQFv08Nhul5jU>a_E${#Lhw3LWe@LI+d-wgMFtkR?W_g-bukdbSkyZoy%7gg)ZO zS+l6z4fvqyMxu!FKl=*M)_ueZRPog3#as)HpX2|-hO{E`RDQ4z&Mx-C+q>{XuE+Mw z<8Kt?IBuFo6n*|S&aG=G&Z%pX+BsMGKCja;rQ3PAAzVFzPcv)HBiPS;*TD}R%J4ni z3^A=y(0_|5-fXKSln8548`sV;@D<)in`g#y$XmT({b6B6uw|JHH4Gl(0pk z)y2%_CjOl6;W1Gt?8X&`YKQtOd=Y4H9H&1@jNTo8<@x<0hm6TPGWh2b8dHt zOS(}%ze&i}(F>wMLyEVLL{yZ*-HK)GY?Y_?m7kpxS02Q~Hy54h0O=Fr>(13gbW^+BY5a!+DRnM%Nii>9HeOIl z0t4NnUjN8XSEK-;F}Q#aEHlr<-`2->ohM^o&Vp3=u2Tr&N#p?Ao690%ply7AL6Fju zh=%mbk#(OokG#V2jQVcUv~qs(?v>DX?(#9c8O?l!@K5fNp7fib1?&Q^zI1>O9S}jI z^XkrWQ^dG3BnQp{kjV9R;I!q9odEz$e4LvlDF$fflNSs~6Syf~43jos3-s5D*$2*%v-?ou#)&3ud!15Y%1XF(*l5bN!H~A4=L8E(Z7;lBB@-c zfM|`UR1rKz{%D9x>@3Du&UEJ_ArzoaSc#Q%sxoR6qqSce6U*-q5HmtaayaC?e9BqlUBy9&rV8a*xJJ5lQnGayh zG~olQW{s&o2dBvhAFaQgMfRjcUl7s}h%8JZc`&d`#pwH9HdX6;_=EXv;lHTirp@V{ z|9bJug45zWgB1+koVjATitYa;3(8)WI9Muo0qk&G7xuF-j6=#a=yTQ4&GM2bl}}1z zAIPfR8j@DJ`HB4vlRD*l>?dFh-Zu3+b$QxGa3K{7m*FCA_H5FPeYB*D8yKk z6eF+WL9!^&!1(l3U)Gn_#DI!Zq%fv`-a4(g4vFy}S{A7LTB4UF31qfj`04t7cmvxJoRe=2M&3{( z5am9>k=GM_H{`EzSM8TgU8Nk8u9vWC;@v>lnVluw{oH=`TT7-W3C3>1i;mCqgPB|? z7w1;Qq6w!11yUquj%BZ})-w)P>o=TW6#E0J2oLQHfrEsM`YptqI+dKQU>J<-*Zsi; zFRGZO97^7U+QWNgv|Kur{YQ=AVvLVNtYIji<#%ny>rKk`z%eDw!($Rpmtei;@-?D! za(7h#2adoIE>q?DD}%g^L0VR_0j;fnzCGRVCcEE1nxbP}MZ;D$ui%pM>&cW-%kwR8 zHS_VXsnkpj-Rk|}yz@NAk&Iy8SD>utx+txx5b%C-pwuP&6ExNP%CaWsZ&|#xKw7+{ zdjUg@Rpb+f`)dt0i^C*rYH7I!cTSzE%h$U!^ZNa^%~HE{cOK^1=y%)TzQGvZzWX9C zH6r(6|6u@PW6%X?vZ*Azde5p{nX2UZA_5RCMylyQv~rW*v!mEM;!o}Tj@ALf<(I(#*=422b#p1qjK{EUH27f*I}p}yuS^(Mc#(`D zI%7L+`+=;-FCj*&jeg?OyuQ;|u%~mb{<@&kQbL-3xt<*+9PBhZi5*r8vL3vzeaG@0 z@KhrUH(;=Y^&fcm;_=ELdy)3r)1u>Tq5WaNX68=ODa@`;Ogh~ML{mSfDE~L4JbiZz928ku<`e2dh%L~rJTj^^j7=&)aDEnaq-%(nuiSLJvlo?Z6^F3o^wZED^4`5 z4XQ%V^Sx@$&=nSRTzC+-&PN?LxX$-#$O8Ws3~QCO;9Z~G>@NHB-&_FWixbBYn!4>R zWq_~x#Z;w^(xpKRKnkt zw5};PFN(^gVCDy&Oi&xO>>0mezU%{U=pA72DNxpGBFTwh@*VP?Q(IlndFt}=(&vX? z5*}5(5v#w_gaY;nhwVgTFl?O_+;>+ssO&n1UY|am4Bq1`F!HxJzP4tm)!g_a3FkhZFI zTthV2+248XP{~RcX6z%W*ydbEoS)?$#+-NGc*x@q?429Mr?#{p`Pj7c&uEV;dwMbJ zErr*?NG@lY_LtGN5=?H$wLdH3_<7P2XO^Ot5_F7SKneD$!ze3RakVyz(A>$FNn6^( zTL-7XL!?pDM|QG`^X%~-uK;|t^#s{B4H4>788(uY)mj%~pdZb!GcRB5MhZH=%XnUCTM=)UQs=dN^jGQ}W5C+Z8w-UmOw<=jKR@EGL*6J|M$+t> z<^pa9yPOj!^9>bOZwQqBo~VW22h2F`2bB>*E$209{ko-v>2!kT@RG;g&UJ8hp(?UF zjbHFSOdAEu`WeyVC6gBBTVQXyH1;Hv#;8C>Dw^)P)p@>8!i6SptNA{}7w=A*6}kBA z%{E6Geyjpdj%BUmKE}d)^q&sKy{2Mu&OHOk3f&JIHSLV3`mbHK9k0I<6DK@e5b}T+ zqcfiwn}jULa&HDiwhz5O9F#lRC_+aDZL7;IQNH?kVIn~v?hC=~SFlM#{^x&;Lfrd- zCeXzg`rp^idE%Em0R}~u7MbF`_C^d0^7!F|>KMsQB zFK^|`o9-%ZmGuaJF=K;=E2lu@|BNB|{ewvl4RxOtsiJ^IOC>6ENXohX zgYBN#8HH;7?P7E$2Od*n?J25>B+hBC z+&8dQy+|1H$MPvcgT(X^-K}%$u(Dpf4~*IyLG3pWc&<<{TrRNP>(iX-jd?@gQ~HIs zaO`vDSZ5u@Wz)TKj*yzqp^W)@+dDbwr`-5MH+$@>8Fq_0Z0F@W$d0EMEiQ(R#-}tG zRO|?j=aso_zj<*mchZ87?m%~`Oa7)7=5Wi^S7t4`_!UxSPP+3gkxq?Kq8uO*@Uf44 z;eilTCyPp5*25nMd|dBbcut^?A43d{{P|nslM?SmTaYlUxb;un`XWWA);tXRy45ge z#{SFDF3YIL@Lu)-rl^+eqp3W)ofgV>Gm88b#|V>w8qW0K-tc}5TYO#+<9dhg&sMoX z*JVFYgw(g=`yZ}+$d;hKSHU299hwE}@smOj_&r~GYfjW-uS5i3^6Oxsp~^Cqp|I5h zM1jko4v2QrKU6X>Tb6J5{d6Hv4;%PC$py>V>1eg?txb1)r{n2A*vywOp6Zuh!O(xO zhL3(?N>C^hiBw3@%t=H^e-TAotv0t{VfY@b(JvS2U~1TPi*oZaTm|>Ovp; znIq8*(x)GZdm%-H@R(2TyIY-&!drRp({`I{&+fF$tguq;xu76 zKHw-YAp4TsjxwjpYUcTL&Q1Z{b60Z6Q+~Z zXX{#Y&F%2P30144S3JCg5qg*_$bM=GsXvsCe@!r01SWe8C^Q~)dS_51)q)M^D9~?k zl2jFBgvkt9=RXWvhn;8N3E$AgH$G?qamvh^F?;@@;5r|ImoRkN+5Y0H@esQX+?Sx! z$E~KaJ~Y}ajn>|h&D(4{FRJxj(5T%2od3>S#tVxh5}T6D3sDeB-WDwzZdL-?0mWxU z%WutEMw)mpC0P_T>UBG&$hu}QoneA z%U0Uw@L9W;Co$5P(`@h{STt22s1BtBuq^{PAz@_8iSKy6xq4RAy z@G9g131;Q~Wju58N3o2GlWq!9tjFniuii{f@Z`u(b}yTx>uc$Mo4W%{(I*;WoKapf zjnz|*!U584L!msR<3_flKo;Wjyv7NhiOI$i^{Oo%-vt78Ag?RwXc2g1A153Gv6i!c zqxJE@NgapNx<`s!f?tH@O=jGL@#-D?yNLdmD`rM5ktekCObs1kS?*qnw8h~Z`Y?lJQ&5(IQ@DhL$F{ylv7Y!-g{fyky9#ciieEHWHen9J2qW(NIJodIZM@}^5LFAu4SKT;^4AfJ`E?`TUMo*r$@7lt=IS7w6$dKuUyVd?0nUE z-0%xy`G+En(`7epChQpvgxrnG>4iVz+ly2Cm|LelaW@R=J`>&*st-}ABFL@v(Mx0Q z^lPnuz^@jti%QD*5W?e&CyZN|eRzq76|6) z2B}%6!5^kco)?ev6rS#1OoVN4Tru6$HayaopPVVp7~v|27p4`Ix_T$zlDzZdem5D+ z>y{;0Ps+grT;h%^ev=`qJXN|974^o9$qcfII+Y*o@%{-9vc@a`tv`4i>d4UTMGwhf zKDPEpd>n)F8fr6E7sky;%I9n+`JoA}w5YTAaSjtER+xYH?4FsK|M9lPeXqwcc~Xd| z7Quqah_552q$B)@gz3Ut7W_}|e$LR$dCqWN z=X=)U>I6gtE01V<7!Ax?n6G{GST{5Ua=!{fE8=SDcd)}VV7!M;$TDnR&rFU0ClvpA zo{L=-kz9Q9xkQ2kIKo;l_748^h=M(+)0!>H@BA?1n(zEk5)EC)OpAQcvfqn?C2Se^ zDMfZRhP=dw#1l>L`-?H(!C!kU%qZ$wKuhE;aP*n|Ka_oEKvdb%?TCno1EQ!%29YEJ ziUgra3P=V)1<5KPNpfg1A`GZ#lXH?Jk|k#l6CgP@IY>^8izC@zBl*1KQq{9 z_vv%?u3fcityPNw2(j;&!3J!*eA8D*&Qg&ib=epIhbG1`Ex)gA>nryz8@BM=1AS|X zk~5EbnSG}1Y?lHu3dqlHWpet-p~DyCLN5*eX_#i$58Ki(hnD4yBsw@%nQ>E5sflW~ zNepg4!u2b}aY@NgE-Kj`W#M3(?@d}LGQ}#2>}}}XRufkfOxfWW1le1~KF|p-fEC}> zPCN2T1BYaN2?lMkv;&7O8cWwZTFmbwk_h|v3G~C6Pqg>_f{H{s#Ob4<-#8*9m{05x z3_mrH{=<{`vCkZ#Vv-cqS}n4jZu^{lVw`}4+K2`nUt@9&Eh60u!XSL~PE3>*IV~Q= zJQez#C(1Q0?Ywi5Ik)GsQQq3A7*PiN2$hnNhbP%|6G~G9S&Q3U15Q_#>gUQK=mw(fV@>?{7G`sVOU0js(xB{t;-WpiDCpWuA<`oDf;daHwC&k}vu zP^=b`(Ud)aA*QT!q0-}RY|$Rhs@yUua;4;Z9FC|KCMs44ao4Dlr7j|qkznW%J*1~H zXTJk{l6hbE2n?>WK$_0_OL{zO3v1{aQ<}ImLSIea2H}<7Nd9>sWi~3qDoKl zk`k&ND$5%B^JIVP2_swJsQi*4$X>x1piK7+k{=RJxJd$WUwQys<2! zgJgDXu1E4P1HjpQWv)h6!rxe?3!EB(EoY%)k9(PGHF}dxvoOOk6CiC`G)5Us+-x+( za=JQZZN9G_6#GWK1z^8ivaGm1I!t*(rg<2XUVv*!sF9k^;%HjzxaEVBCwn#;tmTPn z8hFB!(Viqj*8V5)>#6eZceK#jZT<@Mn5B#Axk+cZyJ7;h{9>#N#rKI5q+$g;^#G4W zJ3qdgb{x0Q?f`_Y(VXb`LKttr{MkQnR#9S*`ff@Y%^r|)6JQgoX?T;+T;$Nm|6X{! zbAT9oX4jH68L|Tk3b3TRI}TGV0?QqjBeQvJ6Y1Vg`$TOW$~-HqDk1uP z>CTF{RE3XC3f=DI?}!XSa{yNz^G73tIe=)_PlxC2Ce5KDNVViM8@7y|xa_NcXnnHU zYa2kxReC~fN5C*wo~En4!*pXqQzcRBgVk+gkR@cXmC8k)C0;B>CEPm9FkTFKhh)EWegfdkWH=KhD!{YU*DX_2bZN5LqI0O+G4C{|*0rA1<;mtS zjRKPhtT-&0#OF{v>&K=@DImEJcJ4so9TV7odK%Z}0 zpp*2H0*dh7_D0%EkaD|D7=;46C@H0x#KnqXl5Ez2=VKe+axVm^6 z8w1!ioSHQ_OP0svI(DwI=p|2%uFK2?h)=9~EN}!;C6Hl0$wJx(fD-ewZF5f!W$aVojCJxML>qeyFU0wRoDU7ll8)<^n^=T3w4O`6{ zlcMKN5o7#xAz)24p-O!NuUevv+miHa^mWP|lyxAjjNmqS;rI<|ZN~ZD0=X4ivviy7 zPvFAJ*i*$M#M{Yx>x~`Iz?qTpn0I%_>VhUVI47wo!CasmEGoLTA^GIT8r6lchuz7z zcjfLGFamNS8`!O(s09q(A|r7`i|#UD`*}8)P?coaI)L7gW9-|O1@%Cu?4(v(LK&H$ zA9K4qN?;+#A}+&`EEmQn z_0BxfEaRJ2hoQWrCkw4<%LpnV}V9F5eWttHhWDxd~MqaXqd+tP*c3ELV z6n}Gmy!k-sqZ$g~7xIU>DfL_RazXn-wp{6LTF~gh3PqKZF7d1o%iX z@)K?9R;M^=(7SG<8d{z=OM`}jltiZOg0zLh^k=i0jt9qSgTqldcRl&|i5PN3AVGZ{^(}Him@Gbwzo( z0H-x3l&hH8aZCJh?;5y)hwJs{(=;XKA_wT1i+8^FzI^e|d(`7(EopTOoXIk<-y4-r zG$o+8r+iGd`o<|~TTZM6y1j!!l`c|`UkIu!j|hqW&#_3u{wl5#2Hmj4Ff`88dBkX{ zJbvx%BMmlD5R{O-(0yFl*74_65l|%moG!RCLd4pH*!s^>#;8%waomzi0 zdRcd{uu)cE6eE!U76t}tNVc}X(0r@Uf} z%`#+6lS>t*cLvjPJMYy@M6Nqu3caCrM#y&fS8sm7wESwn%`F%c>Z=`NlKwgwk zU6&+@j&5BjYofWXHG~~~26LD1&!+{h^lq)rMmbN^1=X0v@f7!fv_pSkTKN{GQ_H|j z+oKe_P9U&Qtw6H>;gquj6t(JF=o4-4{cyuU`Ng=kppF~p1ej14-XkpSNroT;oLIdo zXbqUz3&M)a-vMqdE#$#=Z;anc`jN@?rX;Pm#yqnPqngC9%M5YpR+j%s#V3y|UslwO z8qTR?v8WKMN^t=pdK(M}D8kO}wCY{8C||r;v@na~ZlVv41he!}kpj*AnD`nQfq5;i zu9k32a^wXL$lyXCONj`p7_gGsp3-83bUX~&a1M{tap&JItBDK99OiclAh3d|h@O_FG?ovbG!;^oIn98d)qa{!E~v2Mqp!`d76^RUjs-%4*CTrS-tD*-0$>IF<8!%SOU)y6yd|l+jbS=OrjF z8r{DkezsH*fsd@L5$BywTCAQwoDiW?wb?vEy(w~bQf1H?uUi_gR}kaVEPVVZW5sXF zI7(a_LnmrJfgyNfOKW^zYVwJ9){RzL*F6N7nFwrRBqq8G2Z;7WKzap^C<%4V_`dvP zX_Fc8X%IWurDmlATm2cqOItN|Vl3Qr?YFjSA3%n4u|vFJ`JYK+TKH|k#iNjL`j~*m zg&TE_TEwN><&R`3!)ZDTk$yXoAjGEBeS!{4Pb%w?kB=@lHhlLKH7JBqnKgQM!*8X{ z8anO1xObyjQ%&Nfv#&y3x7TE#HI+HwzLQfI#h<+?aPDP-6rTW^d1-R5`f-%#{K$Xl z&f$NMq!%YZdWH6SA#I6{nLrW_n=8mlogS#(*2UPDf3*&4$h#Mz{g|*i|x2Jt^T~pjw^#6Hh_xz0#qs>^Ms;Z?SX0h5dM+)CdpH4QlIMuTgIN z4`T1Lz`s>-sIqHi7EFtwf@Avg4Wj~ZZY=QUzP|z>jQ=V_`OH+#JtwbL7!auN5z-kE zV{BH;>5F%2y=+!$6Tl_D+hhfJa!EJ-B1$N$L-a5UO;gJHz(`---U{aY^Jd@NJ2y}6 zbN#11E<-=xyPCcQAAjfc{oSo&H3o!U9#HuIN#MauKMXV%tkN}3ar!@@=znmTkmt}L zQK&)PK3Gw}m%NW%l|%01xl5vvPoB8r*>8MNu&k*n2^dt%)Tz)w6bR2>y;8_wgM%dm zK>ZZ7P5bz!JrMix>cvkIA|HcaD}?7k4?vM8e!bcM^Gkp{a3L;v4EJ<|&YwDBt9Fu@ z>C@-W5jaUnNf~+hml9G^J{e^Pm&2mp&i495n_bSMM#@cacG3q95MZ4$vwOgq;Vt_P zBci0ghH=rgOg>7Af(Q60Y4LR?;RcYIS0#N*3BAJLBFn#ccF_;}!o48pm^n|X1JuUv zlqWPipKyWyn{NJFUoi*x1|Lm@jEM0n3A=wVfk*2F<2ms{#jfF_=PpwNcWZ*x)KbdR z4E8Ws^<4+dhe`6q=>Xt77&Iuhn*4KD8K0D}7<>V#j-m;5@Lhy^X1p8XTK1_fcIr4OcV!f)qQ@G$Pxc>sW%D}jh9yf&LjQ?> zIs{=7eC+|-A0E4YmYLHT2FL@>>(fsY{8xJF@J)n>2OsTXDn|bj38{<2E&tV2L5%(t ze8OYuewoq!5o@>)9tgFcewpyU-7qowm;)ZLOiF5v-bu0dR34JfiuG?2C(Bc3)MCOj z&kK+^xlfy&m<&w#E6>UO5buBGmmR_vg4@MV{BcR_J(tJEh660_@wdEHE9F&2^CNjn zHI-Kfb%*sDqqijz&<<#27sUW6snTg7v=s(y z+BU9>BWd@4aRE>endUElUAdwHyFEZKccq>LmOAPsx9iJ00B}Gx#z%tl690Z)r7FHV zUU%fO``pqi=g#W9+;3vv?FZ@#G%u{Xr#AG4v$AOlq-g0r)5|SaAA;*p%dOv1(0)ou zs4oQZ@C(&djh9cr3AbKLjQ(%QpA(bQotrw@^D1T+Hv&Z>_gBEF_AzAd5H$6wHd2tAxc9;EixWgxm;v)x{o;%PT8h#8EJ#ilWt5L*i=%>}6*z$Fk;-73{%hZ7>xJF4ksINXB|1i`p& zS>R!%kG#n{$qYf4YOy*dTENCh_%38@&?&QBEOon?eU1e6M&DMv_n-Tqzt$Du2D_ML zjbxKK9KkHa*#G9y@N1bSX#-a4%TOJYuf&S`*L(eodj7vx8N)FUa>zluGpImm!tff8 zy5NhD7_{xQw4y(K`4VZDz$7TB@$lip3l}dE@%`6*{r=RmjbTMuy@709(P?n(y9+=v z`{6?i5K$Z~Bo(%gB|*Oy_pm%e6dp`;CH=ON_UYZor$4{J2otHD@`Xu}fD9{)XwLa9 zUf^`hv605zy&zX9AGn?-Z;g!+V3I17U-Np6{oB_WF8URPH!94FTNvK&JfNf>R)0S< z+?3UQJlA2tSio`bRQb<;NBRb@2lM>XW3oD1PI)TnJW?_G0sL=yzWsNu_yk{^*f{>b z@JYU_97M_16X69@Cpn#heQBp}T&L#+s&4AB#mbl?JI8R;qRujJ%$}d&>&{tjh+jDP zun|uG&3x%SUd;Z2#23DPpBHNkz~@?wki6K{$e}jT9B6JfT>ZDNstV~p)k@ztuBLA4jog<36&%zd|l#(?3h<;v+zZ+gelke$!0dCEcb%gYA zL205?i~_j^ME4Rm_p1&ij@=~m(t?;}ZB6@3>^-YDG&oS}ephq-6{z1!P_;`p<`0p?M%6i_PJqdre1J8c<3yq0kEV+wE$kC?SubzgU z`}DEDwuamBv0jeAZP6;O$s72j?;^xnU-XO@atq*fneOddyk{*riN}B#>_TmQQow86(pMRIg`A(OcthET{!s4PE)<29bUHm4Gk? zBA>E3H2{~ zh#f_9-&;54{M)kF09{DU7g!kNA{nRCn91(%U1lTweo4&Ir{{-ENNfxd_?2HtmLkNz z4HApXb|w73ze@m;-$4 zKX8SCH7l6}*y@CIV25m#+int9b&RbrRCHIq?S6;*Kvt;j zfuini(?eBNKy>4iWCx?!Q&d!PmMs44FPxD;>qeL%WO-ASR%o^+MC(^ziigP(WEYKN zJ;n41;dZ>VN+SP#zk1!Eht4I^q6Ov!ud?WEASeqvs{*Epu%(v1P5=We1Q~azr+u&s zBc%@*uutJ$v(&zSV7u*0-ctu8El@oQ5!e#njqnV0N ztc>EE`Le@a)t{}y6tElg0VA02Y&njgq|}Hlb?4Kv^(rybPI3CS+@5xh#G5~-K}WGa zZCe+5RW0{L`b2Z+ys7HOPJ^tUDEpCYu8CzkE%?T%$VwS_MoCC-sSfci@9#iM`59@L z8jti2twz6CuS~T{m?^LoUj-^QGII3pKHS+*0%FQq(9&OWs)9D`SGWfT71{AIN+O#Q z2?+`PPTf#$&R>Y9Mb-{5^I=8+mOmP|H~*w)Jj_CrUtxyZDqc%7LH-&qmywyefJLZF zS87Cwdt%XG(7y2Ejh5K)=2zHDTk0Z@*B`$KQ#I?5r?j1#ZJrO(zFLSi&9$A7Sl)WS zNyVfVTV6Nwau$2tZ69YE7l#E_K}qV3yK&j0cz{*I0jW51vjY<4dRR;0#J@j8XzhuW z;-g_BkHdEfmh?T#WSWvP+=Q%L(8d?dsHNShqxJ~_3b({MLe)Cx)hqaoAdMEy6L5$s zlFb|(*FQJQ$Js#`q)T?Twt&fkD4T#Fm6zQumMsy*&yTj~*wo$}3gRM|mZ==-(l$!j zpcx;ZOTE^!yHF~@|G0ZvJGG78%xoxs2klt(nXJq8FipQPYDSaocIAr&QZ3k?sgUu? zggk?AJ$xQ^?DVg=_CMchkSGbTcBrbjjaum2zaSj$)Y~Z;YfeNs1R7#il;3F7uXqHF zs&9|WO%0V|h1gCAulTR3z%ZR;XyBO(!?}%8cPl(M6oo)>IF zGbU!m_szoSMBH_O!(&m|1U&ZMM;Ja^?rZ=snfZ})A>6i||P(vpeapH%*b!A+<+9ruD_O;xTrISEpIEE~pPFq6Yf_3>)iQ&*u1c<^IH$mhON{4}f@? zHuF=J!jA^0!pEvg{Xf!w3CnW6i-veo_nNsteqgq~pE;&->q<|5*V;;&t_;ci;Dedf zsJyl-Qbdk+?wLFbQGWU}EwQw-&O|teh(huhjVsw24sn z6lszy46=oBYTLT_u})vE=mNuWg{ZflVizFnJRfUKwjjjUp>L_Cfg^Xg<{9cd=|wo| z-X=Mc;CaB|OE4JxpD(?e-6A%&oCLJ4E#LTdPoY^9MfJb&xVxT}9>-k}W;O-NluEJX z2v0L!*+MZHNwqJ}iSzu@{2rF!qL38Cn0q#PR-7fYw=~r6OEK6DJfc$E(b#6yu+FWg z?;atF(`y$QxH48kyTD>H+ZI7KUc==bMI#z5i6&vY9iMi`J-*;{#kiuMt0u2|Xv3zh zbONJi)+HBDq27#&V}dWI2ft|by=zCQB+OOR;qqJ?i6Xucay;JMZkAXGsZ7aD%zTyP z(#S$qk;OnneA|f4(eQ}l{3u)9Q|8_`N<)ty*^AaiGWyu=EICUJk2z)6NU`Iz){Az& zf8JhNe=1Oy)&7S>=gr2X-gYk34aH-q>}&N%Z^q*GmvAm;w;~B59oA94S z(}0<#tDOz{&yeLWr6~ERlgCg!MkSWG=u6SxBX)LHS&LAO!Om|niDqWWwF*TnrhS_> zhU158N-aYt4vU8MJ1&*Xd(QgSSH_*!wKp}>X}i*rW2uI4cO%(pD#JNGo0qY7I-}U} zLE7{n8k!pFvyxTh7qsh36a8`DuiD*HDtdE*-&Mh+s!f^Opy`{P``c$vV&I_Zc3hc8 z;Z?$FTO4@FPWtT5p}p<9NtjE!xt;(TktE8~G5$~8jTCTg!%g6~FDcHiaq({21?boW zGfH8SKud`;8{wmPwTib+;FRV8^WRMULXr0G=u$Xmv2 zW}=XOh|&)pLLovA9GYsbPTuS1h{OAb2?vV3m7sa=B+=|3)iTyB5Trt#6*jnghv)Q& zhOHV2vFkNYdYt*|kt2q+Z$A5Hj}>0z%`n*#eptPsL|yGq%O+B`wVau39#xcSi6Ial zbl!U~8%aR3Ez{}ErLJ2;gE}uf6I%3v)lS2H=^Xds$}pqzevlh+Ix|szak^%fleTf& z!bgef_#9!~0zBRU7Ouc_-%xq`X%ngY6QgTf;aDm=H?_U>F<Ql)4VoubmlmnGG|I{xW;_W@^B1xtKZ+b@!SHc~xV|nldS9pAs_jf`z7#1>8~xpa z9i41GTSQ~0qp%VxYA(pnyYemTbX8(``4uPc)li&lB12fmi?ZRD-a&(JtsO6w51cXF z^c$)>k?0dCCDK}1)IUa;SHdnlGhq5kW~hg~!JK#SthSG!g?9ZDa@w4yJbN%5Q!i65 zOR`3`=8|zMV?IxQm`dvtt=W;$3z|(@gZ9sz2)k9GG&b{z#V`(sK^;`pT}& z`mN-u+CYjhG|JJS_FPHD*YWoaaW>4FWz$m?xVNge%`3Chj^$*8^ViR9jA{fDpaTi` zXpMGW9FsJnH>&9k!Dzb>XoiVy$RAJLcT$=)b+uTlIh>j8tgtVh@2*if*ZXyjK0(q` zd|osP*KW?RwG-b+S7iT3+xtLVR$`6&{6L{hVWv*3kzsUFS@;H3KO`uEHglcXL6!dQ z`x=jXv&+h~9JQ6%?v&?`HordquMohe8C{s@$;$8@xJE9O!f{pS@Tq_0qX6$Y5lGf1*>x8Uu*eZH4NEhncSBX zH-;vkbwk+QM-4G$d;=Pr48{U;vl7eALttJQ<*;$XQ~0W=OLKYpXotav4?J{N#wqca zSc(%F(#-8}h2>jK>Lb^_a4IFx8WCpbCYq?m^l}UapThVncFhS;AIh=AXgfFwOne^n zD(Nmv?{HvvuzraMkI(@mu^;E4V$p@dZX-cb8~?oKlYO@{J)?39@Y5>QZ$Cgwf&V|r z?~l#`p|p0cIPr7Ta1+dMABVBhR}eA^7icUBa3O8^9i}hHxo|l|NI@U4YxZgoR1Y^# zN}F1yJYX5<96th8W^QS@MPF50%Jmy>#XU(als<7jaQKut*XMeGk9|=&8m4^uKX3)s;=*K@ej$O)T zti3WfUXvN-y;s=TyEyvouVwD2=r54GS_? zpIJSc)2dg}yBYZh<}C45yO@=9{l?G%ml&Sn)>B>fViuJQeytss|NNY@eAU2qa$-V9Mq#zUVk z^=oi;;M*ZsD)uk?gdag$lVWFfLSkVyx;3%Z*4)Ig_T;@K^ic|8F5@XgcbDthsH^HP z8<(z^u*{svlnJ!?5aU%Y(eOt??RM|(xXeZ9D_Cm}$@uBDe?5veyE?1on^NH4I*$8lOYyWB1lS|#YE&C>PRH)#ZJJR74~FBgWC&nnQE4m!oJOS9=N z%cMu*1l!kB>qm%*X&dO)bL`4nt`2zLLml7b4qJQNbKicxb*aTB^OSJAV;r&j-bF?Y zVS`F}N(aJ6mNmQ$t&8;nDl1*q=4D;!ZcGC2Yc_UhtE z85Tdf5PrIH>eDkIZM9c8*A(4HKZK{fbnS3{Z>t!U2Oco_?!7 zo>UxpO55M6ZDCtO&4F~6z~WB@VbG^Kll4!7C)Li9+y@JHl<#boa1*u(B_iPhlZwZH zFIF^D0i!#X#)85`32iHmR?|2uxj7+7vX`$ITCms=+3u>m{e<8gHG$IdnK#xodY_vPG0_|aHGZAesS*Gtj4+wVjO{B|&dFEM-8 zN>z|0U+712I{lw^9CN4b}^}@ar?{nr_NV5Le zXdpbO>UUVs<|0g9nd(+b<8!H-lg^v-Nu4MV$=eHL&tjWf+Y+6W54|$b7rqX$I;)0b z+Dfrxc>?XcyC}Y$N#ktGLN?I)sX(jLR@uAgG5!8tLAR6oVHV*Oj(~7>BIdL*yH#$A z{(MZ|WbyG-BWc6w42wn*&Qj;b>X^PuN3l^}7mM@Ivo~u<#Mh&w%KA8J3KX)W96Ozo z6FVO7c{}#;7Ps%^O(S*Ab7Ad?&#MOJK~1{N3KJpMimx`D>^Ba6i>WdPcC{@w#@%gG z*&c;S>n$=1;uQ_#;|Z^(nFN1P5vFbG+0pfdFB&NEY3EmE*Dx-wJL*L?jeX?1#5n3L zi?S7mOCuXsmGq__e~bvq;hqcGQYCCGFe|#_B4%E;|Da^E@@ODU{G=Hj02LPqPd8fW z$O`W1KbPI0DBqP=?U~!KVGtRas!LkfN3*6=YlPh8)G2o1F}QFI<`j|=BC~6Ui>=ju zZ*H7dribC!#NF5YvPyySnG6*Ap)@o{4TdHNH^8;e=L(|DBry-XH?oW0J~s|+uS_!n zsX2!;ipMw*7`WdOX|xs)b#DY1+c~BJS>RC^9q=X5u~kZ3iH8u@^vG@8u%ES3gSDu0h28!CUT)TA*XZv3PDu?PM>QRNryG+E}HMzb>Z z#*c1pyz+7u`I$f>avV%qOt{uzZORF!<#f8h0g+@HblbO3P{dEpeL|z^dp|D^to7K* z=igw3eM;QAxzrx+MRVcy@dgL#YhnC5#JJ+7xRfE<;cG8&o2Ti}GoP$%R(dRgs#fl0 zuLy^Xf38ftpyZKWZY*d=`ivFs)JfiGTLO=FWPrlji{J44y^l_)>G2x$ti0PvCu=%sMO*eA=U6v!yMu3H zA@5qaeOG^>OJQPFDykrCYUh|ofAH53>{%K63u?f9ZEMdddv;XP~Vl|I|0P-TvCUJh&9QQV3Zt&Sn{IZ>;5V#s{JWO(OQAiI)IHf=hJX_~qZFo6u+ zE#Dr4uLVZuQb)sV0_O+EI~!BI#0VfQ4)Qqa_lD8`5G2O>Pp&6C{~w(4$4_3*5fUH7 zUP%Cx^#eGxif`o_Hsb;;zkPbn{kZ$`vKw>_B&zJy2yvDj%HbIw|Lpk_S}E4uMz+uJ z+fc=c11^cOGVI^Ezcmj8vIR}PH&r={)fN_fwOi+<(SHWZSO6gsu-Bp+JU?mt?Ocun zjZ)}r8I6^V%%Ym+u(=ZJZ5LhafR{-{|8-hB>Z{{I9~vCVvSw(&0?2U%WFt4t?)PP?4Ukd~CJwkxYTeBoAgOcSs98RBQg6l>e|t^Q$U2_p&i zAulv6UhUZUNr2zN@{Wy8F7*YKUt9o0+qC*DzXNkyF7tuU`kZw}D+RZi16}$|-{^$Q z2o=}SJ(aSf3yh@4AUiq#;Pmuiybf0I&$C))?o#X=vp4`lLlf}?;C~c4YUoZ&QZ7y|f*y2vXk+i9A#yd~2_|jU1sIeyD|i8%{`EN#k8%6wE5cTQ8idCLkM>qz|Iy#uVzuN5 z&7Z0gq!|&GuksqguZR=CM(Sk64I*k`Cm!WdkV?>1zDhPAOrj@!Iowp9Eo$ra&?zEi&{mh%cy$k3 zXFt$Wg0pa3*z{2VxpLb63HK<$GQJ(g1rg1G@~rp>PBQYZXa35{b0UQiW zRbQW}Dygp<3%iu}Yvn{@ZRGj}-s}{p?q&_`ee1rGVw*6_OS*c!?@L!+5P{z>;jq^7 za2`jpTN&;1thn7pu>(thf?#+GJj$(__3Cz_?qz=oe64SYQCRu|$bSxKjls$s0U8pw5v_4U_EeW653rpSW_5o(*G2#z2h3s_SaE z+5L>qthW~WnDZM?7MHFZfuy%BQ&Uvg}skGgB+K;AXOywcz)7JHOz#Y--uXucnxR8__kVN($vZ-W;Izh)arp z9eh*IXt_pz`D^kU*$C$a^c-u)^{lc*RRrhiDW2nx5V&Y{x%gqlm$uh>qIIE+DJ74v zH>KWAM|j-|3Kh&0tZ!Twre`6c^SASztOq`M?9`%+_N3dYhn-OC{JQAF528o1%dRh- zE&t+R^!lSZ&OI%)f9N|Cn}e&eK&eGhhJCRTZGWRv)kpHYdj~aN&$FZ+HXtC(k=?B>pt3i5a@bSs!x~|Up@v!HKnOAI7XRg@g z=;@pZkdMd<53@bWDoop?zSXF1e1j+T%)k{{zk2J?K(wm=3|D@D>5C9V6FwcyQRrJ|GHfjEFUAl2d% zeILp`Z+UAv&KQJ4r)dLXN}xLi`vve|Uq8+JL?b*$*uukIw%~BlN#B3DHY*9zdx<}dRhx-O97}zE$RoyH%3Nb! z4zsB8w>VmEa2NaJ%U#JAn!0fq6hp;~TE6{E$z;IR(!(KTo#r@zKj*rIligmd?yrA3 zzSI|d<@pSt_NCijzlRbB9+A;vH{JM1K_W}pZ#6Jp>!^?!hLTpOq2tIZYfkErMoY;a zxmrv{$dA?gns3p>n8K5hT=UvYtFTrtjMvNNBL|wfcU-0>wN>+&2ZcKTaq|hOx^)|S z7EZiAI5 z^?CwLh*Qub^v|)QfPn~BxU4m{e4BBFMTuVzn349Q6@(KvG zr&BsJKvPp-WO={$yGWgVyj2&{EthSam}i38ph2$GwDBMZP0;DfQu&y(Ez_3Um6O-_ zR*g!NtB6A2x_R2I&e`WVbK7i>YT}Ycju87ywW^^z9pvBmO|gr#>Kae1 zYnypf^HPDfqtO~|=84%YcBAQ!GJ@vl(E%)Z4!s+ z91F+n^4?j2_*vr>O|CLtY}6D^o>*{&7qxhSL)2B^#v8vmL!HWOT>H}F_4rhgA|#)D zYxbRMUl!AkL;Khc8cEE0cX8gSY(NvwLwmA|sGG?w-0g%>OMIMO6U*F$`1SYZc#<~J zVSyM?^@MK<*rK?)i%~T0oS$?_a!Vsg`*ZsKjISb0QUC@;?@lqLhxDo8DqYDoqc-v~ z#7cng+X{am?CAiW$d%9L2p@BrwqL+?D_`jQ`@>x>Q6M5b&3fzo=ne{vix%KB1&4U^ z*{Q{QV4xBT%K2nLpJTWrSqWr0d4Z?q$aQ)Zd>3NeMz4i-whs;6@T}FXZ5pYusa6%W z)1`{CA?d7eWG>Ix8!CPgd`iZmQ2WL4amXwuy*BeDe^a@^u{E6>DH7Tp=iZQ3$4_$VMqN|B0y(-dccu2Opl*_J}Pgh zY0c=nAvC)t&ZV;xXHc&-JodD zeV?`_K;?7tt>;kZ@!`(!k z`KBhkq&FHP%(-1?5qf;GNl@skv~49jUf0KEj5DomhTmaS(X}tOe){$=U(w!vQ+DG_ zdF8$Lv1Bt;sjF^2JrMuLx;-i|%TwPPT{tY~S09lxPF}H$Hz#ivr>BN$%j+X+3jzLl zHE6TP)P^J&{$6;|1AmLg-G`o!Pjzp1UAL#$DiINcB9>r4feAS;`9eDMl6rY*CLHVd zT;-9>cVMjT&I1#A(rX^~kD^`7rmMC4^vBE9C%AX->!Q1@)Vzya+5`uUT0SV~_^7&= zoml-r;3o72tmXb&YbAVAOQbEz`7dV1uS(=}_q6>wS& z62S@aav%A?fdEp>HOfkN|16}X>vaASSBGiS;8|s-7}{63JsJ7}j?R(M^EQ@XXb$fx z_6a`dd3SuW9--G?@agZ)5m5f_fGy??+`0CmY~EWyQwst3K>wM?aS6s_I`}sNoRLd3 zCMPTc>l2qLjdZOKIf59K9n8{FOCCpqvPvnHA8pC91nP@d49JQ_jm{8vACtww{PDXF1&j2A`qbpVlX7LGIFB` zbT3VYeEt@0FkjW1C!NJmk!k1U_d7cK`jNqx)EL^lz4m_GNW=x1Bna;iz6;#2QQxz6 zzw_qb{p85b39n8I!|fpz!5cZ(uS_$bZ8+l9tUulG{5hTwHmsy^?ww6@qLOq@AC8Dl zTH^-~PK*@cZJi9$WCRaXC@0|@{~OWtIxywHvsL=GZ{NW*GY59kEa-8r#R*x-f5T7* z?qE-cJ{GWc>f`;vlcFcRg1pru)@edK2DoUlQ;%qWvF?7Y2{8#E-GOEJNwNq2qij540<{M(($IpD|g#qQY(b0Dlr0qCM6aE>*{fra!p4g5AF@|CtO-#>r} zsen$9vpC#thkt|qM@r3)@A-w1lrRuT;nMH=&w7voOJDp+!+*YXz>?3gvSgutO3rYv zPw2cf9zxIGdWDh}|7zB*3?Cu*ZQ1DHBl=+7=FGRWTjAdTb{ETq1|fWpKN;ZA{!02$ zg7Ks!aNrFd()(M12!H}TXC&~818>=Ja%g`C9>XX(6*m5U=TI3j9TETk5vdL zNxWBtn?48jFK58EVs5MY@G_oDCEeqe1oS_XQjdBLR>)G5Ro=Gc!h2FHe~ANL*w z_HN;{rIc;aF`UH8_cnopcO^Vodmt$|*+x+cJL@`-ugGj4(moOMJ_$#JL3n&ZJmCfK zo#AHtcOw5!>MSAd`z|7Ckv8-omTIc|R*}+Paz+TqzXuo}Fq%trFF2uY!cusG#!F5g z_ownTSkK}vIQaFy|L1)dd?k>gsBNUdx>3}00DK^NOx-1dfVX`Rl!jr+X6<2C(_Eh*oHD+X?BMY8i_zo%&yjq}ZOvRX=q?{>PwScA(#Fc1kL1I`=Mvg~ zUO()Jk4LC4?XjVyY;F3PTBZD%ULOr~qJRH7!w~)elF^YTOQZMKLYSU-9`BEXHbXIV z9wqL;@;$%*$Ba%7eY`z<^a``UiDzSjG7dg$Ks7htbGJSlFk5dBhO%fp1dz_(-n{_c z{XhfdP@(vC>L%c+`C|0f@T?}e>e4(7$A?pWtyeBpHPKNU;9eZux+l-7s%Z-9K^TKI z54Z%3f9jaewm06d;Vrf*2j+<}m(1d#ttAH=3fB+rKD5+-EQ*7h<3ffA4Zwc3;_UPf zDcgK{`d9vA6N6+FPh0Tp zY7bIK%Ea*-^+*YyLPR2b+kfi+|0RS1^XVvBC6XOHs)K+7t8o|N{{sUnIsB)r_puiJ z*Ds8B5qil3g<-w_vxB<(STyxD*XwI>rK|_i4Y(^n$kwl?W>TA|y>!IJAe4JEPX?C} zk8pKHnVfYb0YX%4~|Lvt;wEOGo zxB7XOj(mXgX!Gj|=^^~{lEV-YxXt7;-c>6my=2`*K8`z7tTCZvJhES%TQ$*`xpMZah zk8aZ&T$KOu#*Z0cm-2}#NWq&OBw%D+AH|V$>u(?Y7)bg)! z58*#%fVVmOQJ&@CZIHunO66aHVa}$)A+)y}vJIOy_5B;{cUs#_dsRx7N)y}$YT|sEiRaEE9LF&GJ*O-!-3dN- zbFwaMw4jyN%|c^VAUFr749;}jOaDapEgZG#E51R z(|$1rZtfh#HgnxqjQfjoF8qZiKkzh$!2+T>%{4HgTEos}{3{b;oDLq{Ol7e&=x?A& zQia0er2-g>{vanzxs~G@^{-ozzX;hR%#Rv*59fA))>J-mt_TL)hg!-OmG&D)=Tuid*F$f z?v{?h^wnTM0!u57AQ?<$11P-@V%D(VL0}ndh+?|RTpKAV8kM%%x9X3F)mdmXpm@`? z=((-`{8|kxe40uhSQ1hI)p}+lTGQ?4$46n ze~W@Y{|Gh+wm=9Wx#mg0L@oXr^$jZIuQN8#TScrU!5U5n0W5J?u+}hcdF>&k1l+3| z0<8{bf5d)!5H*Rz%to92w$I0N-D^|@icQmZwy~$wh32UQfZ-7)#j!_#R;-~7^W2}8 z4!PrbgRa1Ru)`Nr1vWePpj8-=T?CCXXqeUSRLE4FNS5ev79QksZt8~y?BJa^sU!H@ zPvOqLyeymlzl~adkHKR&fdkha$yo56uXh4x!Zw&eFgpw84&YZpU$wtiR-y(_tHJvx zhbA^yl)&MMCPm2ghc=Hs9}lk1*5?DlM;)ms8|!#Js`9-w!Ft?|UwYz_dd18W9e3a_ zJV!a*%etuYVe-3&j=TPX`vmP@FT(gne3Hfim$bIsr>%2eEePb0Qe0m9V&JRqP|wmh z6t}>uh07clD7IPr;Mh~;nx|#!B}8FWcGbBwjqCx+5}({T)*Hk>M`jF%SdXWpgu< z&+H=N*2U5JTH%-Dd_AyR8e&jtrRW9o0c4h_^>|2~=zVLZ^TngvUL!>K(Rf=P=8qp| zeEQ6^vsUgshNy4_1t~8a9AD&zpkJt|#ubG0M`NxBhN99sgTH7K$N+HEFKGJg{?f2{ zuKD6q2~@O^<;dDLT>y|eA}{UOi~z!(`S7Go)ltf-^Cv|5ZdBshbr52Mj&oMcwo1IB z_^hMcqnBYr%zh_{4X?@7q1dHMW>%>gLIb(W?|#7e#Qw1RV#Dm2A%X^1R#zp18XHQP z&B$ZbabjW6k*J^Z8w|R8yfO@MtMIHJkL$Y}&Mz1oAf^oZk$BHh>X(p}GMug^4mEzV1Fq4tG zP4gfXYzQly$6Ih-0|pwzbSyvxde2b@yc2_t^jD3}MR!vfIJ{j#-o}cWby3ZMc0%5@ zDy&2ex+wL>E2JERFHBSPBczxeo<~W>vq2Us0VYcPN*y?8C!fy~p}em{wOHe>YFXdc zL^GIIueCoJEmOzYdc_U+jaR!)<9|TFfZ|vGhq$kds)F6RmF^IblGt=gD9qqE!`m9(v5Vel(e+cEzNzlZ+z$6bKY;<@J=O3r=yj789m-=$mr#>TDS3&i^jC3jfLel zIxE_P^pl?kZl__bnDUs`%aE5X^$ys(JkiSEQ&5jLs~9keTy2(HDKfIgi&I4x9JdEV z-mv-4aIIi2T_?*E7X~uzqtD85RfpBuA>Gc5rct6v{rZJmX;F)*a_!SbZNEyr2}v_^ zTC<4oJlA>rCStt=O_t#ezl-J@hp|S-ovWuQ++{^_)xq{<+#!mIIIk^u(eJ;c)h9}$ ztZh}Hc$`;g<><}?^67eg)0!U7D%6?b=oN0QH`%A#uHUlgpq0P&+I1+%^7$Fy%p4%w@iiJ>vyld%LU% z*Syr!wJ=JWf}J|!>Kf2oGNZgl)vN4j6>wBp@HL^Nw24lk!cY*h)~=7u=OaH*dd#!mx!X7nBQr-*P+( zV4DvMHBatky0#dLRbFBDl%+nCWW5iVx##xI+((jCJ##A#yz^M8d2MA7-S^B-!ToaQ zv!K?qe);Ln!2Zk6NyVE>Z7mL-_hgAqlC?vX4e{;=-g>FE z4Z#yjwt3-_pYg3Ia+?g8lFue`XP-%S@Sv|S13$92LK?q5;Y}fGxLbVu$vBH9P%xB2 zx^R^TL5nr9mKu-C-6-AZu%Zx`+wK;(V z9IzCU$H^?F;l3B59%iEoV>8)ob&R>Xc4=<@T z_?@$t`so*%ymkuFZPazLmJ{vP4)>pM6pk{v-$!$k#ji8GOo7|WnMx7D9L^5jc!h?{ z_}uHbe!VKphAY69^ZIQ})(p#xE+?u>`t`3XhYX{U)KUFDa+CRKn_>Dji-YtazRGiw zie4pp&f*lN70e0@n^!st|xmcjuA7I4%xq1z z`ExJ*f{0`)FWmBLuc2uVF`b>W9J!>EVCM$o&P(k#mV$Qv2^F)Qrki7=5r)(5Ek%>A z6Z;`w(mC;og7_qrffibP!K*W*RmwHOHcR}OAbGgt{m-8SBv%v)Xsz=_l95(v%RBhM zA~eo1O5(HWLuZrB3GEQP##sFHpbKyRJNmEk*RrhoPt9f(24gmk)O8>|D&venBsx;( zdHkQUVlCN|H-3={@rJq+pAphNBAyLWo-t&RX^_2~8V_yp8+Ml7uKP*aC;Blfqja}g zd5AV&)R~DGB@hkFQ@1hQ52SyXrUxiIILOU*ra*9v1DKvYwFDi^#vp=<<0!Zt1Rb8; z8Nj_v7MR4JRYT^Wo<~0g3hhF=Nhd;rFnZ!TgU|>_Ze+8Tj)rTi-li(VK0u*|jm7I| zM|Mg7MCJBQi0P4z*Gp6ZwJ(N)q(<*j=JM(d(3DYo87g+;%FA9>5`UVc34MgfJX`4f z4Ali9ePPxUtG*a%oSZHvLiG5)QLmYqa8|C(2ydS-h@pa`-^_4VqgGpR$6ObUqm|3s zwsBe6a72^SVYEx#0L>aU;YgI1^}TWW zK?|qJaWE~*mCuIq6xSoCmNV>-QsN-U{`$6(6$11!adQ$H12_J=>}*Cd#LdU1TC+9z z&iA)~Rr`Yl5xLOL^n}~dc>jBa#WaDIOKkG|nOzfn!hmQob0l4_z2+uEtMl1cgv5H& z{`+v-L(Pt$wDnk$rq@|_PMKe7B`Jb+T-(a=N-uKrhtp{Y2Y6^v;1eDM^6|#MaUqQN z5kkUaN22n}#tF^u$O=G>3y2ry$JV>)gL|tW0}Dghd4Yi~jVT6uB5^)Jh}$L|2zx3yP;F9HKL7ftD?Mv1o^?Fg6y^h+plXzEuQ$*e zbN69SJ-=J?yghEqueo(_XmY$4(V$kmFCnb$A)L>td-(-*YGbhG_4-k(qHJz&*xB&% zC?TC39p>u}v4taPg_id{i6V{Jv%MLnlhKkZQ7u-_fq6rsuFsW7{XwlB5E@Jz-?->2 z6OmjQyTGg*%CQzI5ya-_F=hOM7|@7p@JRg&>eKu^DNccvV|NS<-{(o*FHF~D6Y??q zRn+L+5GDfoe(f*CMve0iEEq6XZ}4Bv3Pt~z)g*Q%r+j3c%LH8+Haoh_hkf6mlWtA> z)>9tSMx!XzCG|9Moz&-^N$Hl2}zr$IkZ#-PcNp?s(K}skE zZF*GRJP_rd9F3>gL@rT#^Ay|_y#u%sva*F%ioF&tThmX7W?O?H9++j`$uP&FxO`ir zOawzC?W6{0T`7HTUNu(6gC~=X-!G zO@r^*^R5KcDzvZ0E3VouR>QA`fz09Cfp){q_ezb1!8r3VzNWB84BA!41owFO%IZM_ z@5V2}4lc_{I`jx$tc-bSr6?yzY4SSNi4BsiwXloBjv~p&XiH?NvW}BZN<3q|?B4RJ z(MEAW6;zYC<6dHkc$UgO5n5FC)aRx~PO{!p#_1`lON4R$$n)(ng4)|J`(K4j^Jl^p zi&^NYrhUH9HY`%i`MDw$qPW}%IEh|OvFr^elvpn+cokT1wsiK;FMN5=hxJ3IvDWg8 z8-!kbQw5$q_{SEC9{9P6Eg!KH6avn4>t;W;Yj1A}U+kXv%fAKlWcmwh*l5nfmH|ul zRrwQJ%rt}U$K&!JnQymhGz-o~T%5H=l%p z`0(~2xvQMss~+A={jA>*UN+{n%`a6O<6ie95v@0n3KhS2irq_yvFiJ4t6X{35WFmH3`urxoufp-En^Q=Td z>Z;>4$*xm@d}=H=Oai5X#lJ*oNja0Qi@(M_>1Ycq?dZxBjLM)9t82N)Zm^5z^_U|RBW~TBJn+9g`il-PsaaGl?;)^r%dZd|>~h=q7sa@ z7jzBo_$pbrx7lAXa#=7u?#N`&#q?2ZQ>}FLDPB0W&bs@=LA8)FThz9zUN0Say+274 zS9HP2vh}UeE=f2W2847m4-rz7^%hOb6Ves&e+^3c5W76dk{Z|Hay~(6Fpel}Tb6Y8 zu_fp<>n6Ri+7@0=EOUD&d0%~O zRjx+rc|2p9g>P14&lbps9WU|3jIy}%-Wr>5m2VImPzGG(Qz0_ydE$LjF4nQ zULfue>Rw~CU2bN;zJ|P3k3oC?jyzDcr3MnBuRD@ib#;J-1a9f|N>2#r{V}=P ziKms1Tm9s9e@yo^h;ON#?d&IYHTz!?imx23$Jk25}=r2fZ`ul;*W?MV`bf=V+M z4L(AUjbK6V(h8PBSI3K2iHQTV6*}$o0y^~B9aebz*{8`#M;~@hjorgIw%8#rF5MOz zwl@^w+vCdIP)oAlC>D5YJW4$m3M+^!4c4ZQ$HNTWlaiHpe3BEC%}ExHW=xaQ*0#dC zut5!vbJkf0k$zmqVnW_x?(W2>FU}e+$?7Fhsdh^BjdmWHm^EyZYK_yZ=cUOFWUBSD z6Gi24_FZ-JQnUS=r6<>c?xco>nE$V#UWr{lx|Pu=)Ch73G*T7BF}$RWegjo#0WAp1 z)<8{~2AKY|?G4WLniM*kfrxzT1(6_}G16bznV&kK#O#;7=a6l$zeNgQ%YHkGSl!20 z<(BaR-~;ZY-AUW!OVx?;?_#lZ+!V%pCpKzn;;tF`BY1vU6QLEITRriZDOd8+JvfPF zdB;w*zH{Uo{K ztIS)T5gMf8H4Ja`5-<^Bc~5~R*J3qGmj z%kHUG8957q?<*V;{Iusd!BruSMsdX<6@^qcK0s@_*fLZ6wWetv7WP{9sYb4N7)jrq z<2~7B)nx#V+MI^)Y_q-XykX6Y4BBIN-4^Uov%arZmsu=K8MHpu_*nC?!k*fi+1VwiYu5weD=?IcEx|EO2V*$*oP90j#dZG zi5Uop`ZBm_jfG}G+i}dF#GWaS36vi z+|bI=qE8`U{^T%?ZP&Gq0qJ?^xk(_Ondyiq>^)>;@b#{F+95^t?)+g!vkh0CU4N5M zO|0-mOq&ur&1c^#q}+EWbkU_0F^`aD?P2v@Y?hNmFow1bx9Cq3xPClWs@Z%(t!8E1 z582hY{#1nd5=`t5q4lYE&=`HH&~BDdrA3T2?E`(KcH3!IdEhK@NIf?Q?h`COi;}Zq zcax%Ozp(dZU$8R~3brcyge@TuGn~WPjMCiyZxfEx-epoTOU8CF>uuM^s`mI`~%*&1p z%|B1Ir;x|U9wotUE4`e5+SlFql!2m?xYaY6+9BTUD|r^XOe3001Z6r%MiX6%ybZTq zZ`eHIn8~<5TWY0;e9SZ9N$+_g*O9;r$LA3_&fIh?Gd`}y^o8`_F7JQB^+-_E6&gXJ zNoKy>-q!vOYNnba8njwh8OyQ|hRfwl`3E@UhfHU;G4v=bEbJk&v7WNBGEkW%EnSET z9#mVw)De`Dv-y!%o3y+=-AA>Obq9kBTZww z%HWutk~2Fwf6r^PCCQLIOWsO#?XCT&RDQ~YG{3vlRyHeH_JidUMEQgwUC)?B_(}@7 zA?`KA*_wqHF1$z_Q$Fq#SK@C|V=9S-HYNDF(sDFKe`DfU5 zhERFyvY8L=Yh{98grwqbWdu65bcwpQOfqrLO}vOEK4vbNu8wiC%+%Yx^%2-ntaP*7 zVApyEQF~UhA$Q!*+A>)H^2`_lEj|-ohkabNEOyMH*O9i%(ikbc9yUKa%;I%DYV?d) zy_WeR(&&PQUODh)I`(D2$bCfV)gC)vjIghHyQ*}?A={VpHeF-B{_3&Tvc8Rk*+9+9 zjmQSWL~*eQ>kErQ9rw{G&++yJX=5YVw4chg`&FbUfq@|MqUait`KPIq?gS|W0D8P{ zn_CaN(VEwQ-$*hrLvMaFu+Zda4A{w6XTYsXnuC?$Xb}TsedAj}q<_8`WEBNot1%Cz z-F3f?WWM2L*b7LR%(b1#;QOZ`@^4?N=W-eyH)0KpL1A*}J<;TJ5}aR)f?PwuyjioL zq|J>-Qyw)h3-_kZc*TuhSAYIO!rHj$>w7ZHf{we7moD2sD74)2@Sc&A$MVx;#!s40 zq>)jvU{Ij)dYy8=o<L>tuq6M0cGs=PZQ!%KN8Ycv{#cuy8UKDCJSdj7qe9wchfhCPK3(J*m zEPi@tK{xSH9zb|vg!6HI?dVKvc5beDzhc48*lNJ4-d)eueE!J;0Eq`{+` z{auot8ey^R0*bR(Q&lJ>w#<>-ih?+)HOudEM0XMxVEvY-ZzJGeJcOb%@-X^TI91p% zeU(Aa!Ykr@abfycqv281lR+ZV>>)KS1G2&7Zc^w`zjB>r3^M!24aVFNQSrWh!qlHw zgZTKb{)nkpgu&;w`-X5O3~Nt^E#o89pMm2MCkzCeZ-TelKQrO5iTNH`LX-7>d+vW; zp8W)~>)D_2Ikprm-hS^xk{0MZJ@^A#`ot-O_nDoS@UQs#KM`Bsdw8(i^j4zo`$MSy zgmZ=0A2vE{yaRJI0Nh!oR`YUmLCI7TNOP^@AO`Wpx=1z}Kx0B==sO0kReYxVD?86_=1;fARO$gB92NbH&0CNA~j>~hp{AAYi%3YlE`>M?EKyfuoIE9&^Ksb2)=m1&Z zp9&}7c{|9TFL)^b*O}ul{e8Ed?|6?~Er16ug!a$5I)K-4r>y6XV=Vp^Y$fuKACMYb z1xz*+r&o{`i;7411OE+{1BVABWJ?`*jG^Z28KEhUjHerjxZ=;_6a%)>*CqW%u-UX^(X zQ<+Y`2W!bl{_ths0I^(b%iE&HE(Qkzn4So4oGNBNX|J`9yTM=VaoDh{9B%p~8UqT* zo9*PB)0;$&Fsc3+ZHN)PRVpb%=1&TSB!-~WiJ|+uV02G8??LGgRoeQ8kgWir({3SLl3kSS0Qk;&#(c7YF}=|J^^3k5y~oYcN-ym%;q@4=(q zPF~V~cn%6N`xEQ~EtjvS>;TD%KHXoOf9vrKdhGuG3FU{qLw2Ez##eg*T{|msz6V!iz(SKHzqB!$ z`2RQ`{@P=NIN5gnRSeKIiW|%>oBa2d{NsT?^r(dhZ^ZoP-uwF*LELP+a*>4OzqkPX zz7fz<+%pQ|{J-q9|ME|MJUG&a-K2`z!RSPk0Z3TWX}>oP$y(^*|9q@Yzs_Z~{eiII zhK+@@mgD8fmV8`9crw{IX^sL}%9NM1iT*@!at`wcT>p5w{y7DNEBPwdtPckuQuB-q|&#M%|v?3>A?QQH5Y-FWf$sQ&i{ z-^D?R7S)9i@9%#W1P6UTlKR7Gyp3vA@(yDC(vRm3oL~XhJ4k4FJUkT~gTL@5Gkv=& z{l6Si!oLqG+|IS$9BD`$Jd1YYcQ*a2)1P8H4@{|Ga6&m@0KnSuBl6@U-9=QI;+teK z0(Ht^i^sQ`cU*BC#ZPWApR6K_uU@mvPELBi?djc{Sf@96Ud+-pz3!wK(iDNgL(;Vq+S1 za#HrpD_#%A!G{^lB9*b>j`Cn=9-=N2ky7iC!rolZKKGDNl<7wYit+-N`eP-!Mc3%f`8_O zvCr>mjp{HBy_JC^z+e1wq&IhD!9ivQv74To0~Zc54S4h)&;4;K(=X)M(Ip&kr88wi zBR0NlY!GDhf# z0N66fG=9>|WhD%Y5+vM;2EdK>C%~d95n!qeg;3oN zK&*6K_W;!6*&5^UbRK(A;6%mpYkx5wI4(+mw3^KaRKeqKhS4c=SrlTy1A3?~FRBfw z{@%}gAo_8|S$GH*eyV8z^s_u}`|Do*` z`x08~qgBk@jr9TY=^Idg&IE>+?p9JO3ZlGy+JDu61EZkHf}wSN3hWb*qwOT^-q=)k z$FN&I8`P?an2J&F)GL22&zwAwms%D)TMZM)r)WoUF z{z5ENmwbP@gB1Y{KLMz`x{}hx9BhHs)C6$kmGD|lmCyi`@ukojOyWWNwZg4-jgbu0 zBV4T`0^_6YG7F&cy=3)M1TmE2ZBKDEpXACql^4Zd7t8;BtomI*uq(SWfCsNM&>te1 z-jn&QovzX3P{5$T+Ir|eR2UB~k%m2n1@@r0$iL57ba>cH3Dz!JW>`P`eeJtn>8-kL zAN*g{iDH;ve;ElxV1A+MXnXJe^IK~*jyP17!>l_Ls8|m|0c*FD&94=2_@YZYK>46d zvtHJDZ?1qNQuI}VfQK`v^F+TYc_pLcvG-Ialiw{JMRdK!>_zY)8(ao>FkEVKtkZ#-UYYqQUYLA4RJ4fQt{An+bk%h zMA+-X8#ICf7jJgEJ=?!5(SMyjKVW3Sy)yPGoL~xL3Yuz`4S?D!H^0Z(c0q##Zy6Yq zQXGv2D@CfcpM5}5z2tFEYTK_R50xSX(uQ78uMT*e29z*L){)RD=@yuy-@QZKWmx+w zqyv=*&^SWBP`yOE4B+r!Zcm-DOhFnrMD!Rk0e5)ghuH9sShUq6F;)--LmD|fGtGfV zVwpy5pY>x;d`)1IiN~ZmV(N2ri6$DC<#RV{tm{d30St_(b=y4!qa$(pNT0t|f`xSn zMlVSv?D|#+l-z6ddl21DM!6A)Ts=W`(~}1O>bwi*H#arYbrq#P8`NKi0aF#WohSWg z!?O4MUL#nq39(dCh*nEbG6j%cn%r_CtdS8p-5OF7ZIz59J_fGLjTz+aKEP6tjNA(K z{Rv6vzehiRBg9a+1u)n2;JH89i+!72Kyk5ya|NeO39rqoyw)T~2Ihq-kK3~ury~VW zlGy+nBTi^Re?%~Z{~Ez?!$UW}{ZmOn^23VMy|8YYeA(J_BXT|1Wd$M{CaZgqGXD`y zu<|et(JASF%~$D*wQ0xEt&E-R%oG6cz#8vc_eCtva}l?KgO2;9E^g#UF|(ftvR2S! zrE_lLObF?KIiD<79udbr1Pzlc?(h=;9i9Lay6F~QOK>Did8R&qA&C8nMC2S%XuQ~E z>1qb2@xrtE0)HQPSZa-9@_Am^Wsq|2^M8|YiSV2?RkM!0l^hliyh!15spt@UeyUq- z5QGCyR1WC*jAAojC!QrAWh;Zy-fiY%Se`O5rs`mrMHH7qVLZ>S>tqwww$r%vk(8G) zm#7*oTyO*tav&D?zYmz-&mapyhq!AZCr>g`g$tBKHezV{0dJ1G0!UnPE?_$+ZxeCD z0aK2$hEEvZ^JU_jsej|~D+F<;e@|Oy33Py~8IejaNKcmC+$vKA&=kNtAsD;C8PgXB z9IJYq?=LmE? zb2#SAg3AQyqY(lQ3jpcWf83BQp~2xSJE)~8LL=z&CSdo!B9e`xmZ78{MbM2TdPU(n z5JM5rV@E#|^g@`P6G1tS6`x=wigm5O{s|}`(3rOCvIX(+w75c~hfUyChE21)3Wdat z@Y1^s)pEH`n5rAZ`xsj3h(@6#nQjPPfXI5t2_gj$m z|2~)yKWuE|CNOw!fjwdgD+ae+tg0rbT6YGNuqpB(K=1>_!O$VK1+XqTl>@e!K(8)y z!B`85o1ln9*uR6|*s;_@&0!&9eK{cig_QvjgLEnhlQ!^n0{pUHQR$Z_q1tU1S?kOy zD$w%G#8<#geX?~g$PyM$omA$AHYip+k}MQ?c|hLed>JQhIzV0g^&-=0bNbBEVf&k{ z!!m87PxodEQ;XYPN&5B9dusV4ZL-l6H5?j+-HEI3%T2ga2x~@z8M z%^av)cH6#esBZ`xFj*+ApqfYK2z&q3rJJ-2B}J>6PQ8Pb=-tTJUU3F1s2tCSj<*ja zA8)+}o24KxPoNUTN zeLCOa@_QQgjb#b3cHEw)K?33{3ua=xQ2iS~yi?4fKJX#n>sSTz`|ga&jyugI*ENi% z)?NMxiSI|v(apKra8OU z_9R2HM^rV0r}qq;#WH=s%u=CZ*Cr ze6F&1-1hZpp8!KG9;hrl4|NzZTDV-kzble8XyTYm)NOUGZcYF)zh}K^eBp0b6b`$? zsN#jqkO3a&V)nxUAIiUB>OTOjVy`};c@m+9zk8>W!oJ{@L#Q1`B9IP*ovd(aceP)F?KjbOlB0H#g_WeXYBa>FK@k9;RE~&qa_$nQuIj;+cT@W9<-?n3 zSHf@eh{PojGRx^-r@6!cjzRRs@+4XL#*c9=nx4Gq(k2408$T;;p5dG~%_AD?kyw4Q zeqT2~k+i;5=3x1!e&-v+#gnIhoqZi zS>OWsXh*}r?p>`5SQP?dQCf8O_x|ium`k;X2yLY!`CeD2vC)E8(r2R2u;gRDTYH8+ z=dynwdkQXFX4Pac)Y}E_hrHMwk1-A^vE4c$2B|_m?G5HS2?Ltiznp zE;KpqBn_Phj(2IA(C%Vg)R|960!LF?5RR%EUNSCp37+oGPULWAfs6t#( z2VU4`0#jFA+@4YWrVe?&61W+U7*xa)-}LlwVb^s+JpDcllTw9_*G04r=s`QO{dE=V81*r0|)w$4`;A|@H8{wP$xxrLM<1_M8$TUMbTsmvI{u8-Gz~nubZed-OVGH!2bY1qlPHvbnXvSBA}}AkLCq={}!4PhCNzuz6uI{Xv<^sdhL+xpB?* zTa^$>FDn$_iqhRq&wz&&>l}hY;d*1jq9mUPR>o}SxrZ9hF&+gwU}z5XRhmAB_}S3` zlI5}YS?=~(?jsB7`RHA1o5eU^$_uY5sV#P|50=?Zx$ay45{>Q!CsVH6m4qvKBLQZ1) zQG$IDNZU$`9@T`KWu>KW-ENmw<^%4^wy`e9?_ML;(v6>T-g%9EWo*cnGl6V+Fzmie z?0L1FFb75S1;%wC7a9O6Zj*8sWj|!#jdxA)_J!B=@w^(J<6@glm20VW7%hxLDeWd> z=|7L@MbgiPSv%;vXvf}}K&4Y;;%SR@kD4CAQoIK-7ib-Q{Y=v+(#e$GCqJwSN=V>0 z(#|S9iuFQrwDhN`Yx4M2@w~L}c%tH}+t!nI<^^tbmu`Z_glxr1Gwp(XKXP}heot_5 zj@>5zk?YTbWO$E|2odaeB5a#uhYi8bJ#eCw3qHOg5uCv6tKl|+Ai|$(m#^2U;sw)5 z;a*c|8SfHpAiX)rT}o!bDGNUv^_^)1L`1NRPim*Igl@ho=`74^H)7gD#%gIB9cTJ^ zRYxL5pLJ2_Z2%stSYTe9uM;wxcX_SaX##vY6ziq^SF9J%v?y@*Aq92LwZw{9Pt>b~ zIZQ@AsQ7i<91mZiyiK%6A~@orvdJbc2YJnvyySv-fSnX){!L%J{reuUXnQ*8U@U)Q zqm~E6ZFDevP=E(iSU&9|_r7j4B*D^fAoFH!Y5jT$Cn8B=+f7=|3eR7lYeCJ6ivQ9e zZI7uVDLw@2!!Y&)x^}ZzoKS*Fmc@QHOO0EYz%_i$a>55qEfk{)?VA}|%GA9WQY32- zb=SeLOJ?GX4^e%@Q9pbBOO4e>pgF7Tx?ATt%8cb7{TMW$KA0Gw<&*G4ZtLe=9jSoa zyQIpBdmFrcv)kdPW-OO-$?<5Wii6{pNyB%emS^W}o8^i9RvTR-bD+>X_^WoWAl>B2 ztpf3Dr;)h;qz5r)V&#iTUnbP&)Y9OvXdrwTyC74Fzq{SraWFU zJK{^-b|tAzk|%JecgxLAmdO($)VX1}G3Icy#;ru^ene&7w^tmdViL@#etI*g^le<$R@D-Qp?R_H|+cHLXgeW zei|f=48Zzp(n~ZLKeYJp(jBC+jC|oH7cZiBpRyUAGf>^HehM$;jrlYXVJEdS-|FUA zteh8o^(Yt5@RDJd3jPT_Tu?323Q7%J7vz0+Cg^{!d0;;4whH3*HdMBWv2f)N8=mx$ z1*_NxeI6txm~1tOVoFFoJyHV-f!9Qtfqbc<=w4%)0;Nj?s+BrV_?&l@j4SQ-ANJ@0 zCz9wshaT6vPSg%6!7f}PS1x^g1B4?0xDa#7>8C+(s*ab(MS8n)WIAy`xgzNs?Q@y` zQow*N>WBN^`>1TZS4|kv&8uSVkxWz@13osUyn8&>m#|(D#bWbW;XND0w7lNdN4$Nu z!#~P90JZQ0*jZF%FJ)01AmEcc6Or4AovE-}dr zDA^{(HA2H&fs~hC%!;OwYv=3}u^aPpK#d4@<(tG}0WH3SrDN&^hL=TQT)Tq3B7|=@ zqkA|$=<_~B5a(-a*QO(?HF4xY7aGZ=4)33pcz}>u3?Zcxqz_+bUikUkx;Q&9*#ukD zbFRMWrbfSh_-;vI@w?>4#%cBP>)O5kG3i)lbJFJQx)*DGkyDlfWd0%8>E)mh(~Jxc z8-8x#a@3JQ`YCf2OQ5T?zVb?0enswt6!DvtL0YbRiSK$r<1HG`0 zV~lGyev*DLvM4$EF?svXCnM>8O$kF>I=B`=zAMXqg?70h3+uiheRURQbM( zsgkCvJ&BK2o%;#$cG({}AkMBc!7C$@d&i6B0>SkE(d#NWit19eWoF40>I8|IaLq|i zP?g<3{W-xX_XyqIZ&zh3SjAbBmd>t1=hjc@^WrRriT)7qZQq@57~f+T*JuJLQt8e> zs}Y`%8(#}Z8ItEbdRtU2(77#IQCyUWNxZO&=(#t|$AF``I`FzFYVrT|S&Ga}{2;pC zfFzG-IMC~Quc5hWbl%-HrUMXf*np0oed^TB_)VU`QfJc^kWbv zVD_r*3pNB$tcnb?6kO`#?TVm(Fkb0e5|iFczeSx**&J^`V?2W3i%a}dHOcQgHfRPy zQf#5P#z5!pFda*0=zH8{62$l6r=aCDGZL!nI}QN)`lr2V)DKOYk@Q%LPKgs2Vjnd(Ca}~1$-=Gq( z?AqJxQ4W!suRbus<}h)wC+k#OiHhwHeMprLl%Q?AEPzk}!~+SPCZ_I1nI=*mTd!3y z%PD{d`NNnY5B&5*4BdCXRl7diC**wA#7IM&-c zO221P+x1(YI{t8D&cGe~iWHzuZ_Juzy-o%j1hjAbpec{M9YJ=vI^Sbzb3b!%^ZuT; z8P6W@qAHM&{!@8aKuobYz#eSIpYFSvVbOaXb|E##jB43Y%3%cxvTc>|fV)p}CGwdR zkV$z}42lO|i<4vYQ8i-gUcABnAv}_oh|8T+E;enD0AKd9D2lOG@*iQcCw|$eE_N@G zxudz#*bODi9=ih0DE5YMU>*^?a3e(`ogx{MrmJij7(;gpTkYOamMv#ZI#d^JG#7yG z?y=)WH@pyN-PgdD5L{nln0Pdf1pb6vzp#tI>XZ7g24@O75Nz~DUj6X&nnIXa#Z&WH zdR)8Gx=<0)`mI^6%mlpK03oN*C$fetNCa%^!{vkI52r*0mY4jDa*++~jz~_iqjK#^ zhAqR56K+EWgIcS+A(sb>ZB(RLZrVN=#+?g99M@(EZOlg_mV~rM z)PJ?zvsB}K$91NXrp%eI{)wQ?JN4?|bopz8D#H}Z{el~DLewgC$^#$y+#H28gE|cD*#kIuyro@WMl?}7;|Ve{ciM+r z-jXm8vnm?ctZmo(Ef(}HvxaqU5wKW>&JXvVlMQ{AJ=gPE8ltwmjqnBrz^@Vs9Ze<4 zAr5{qUGIM)84&T?tq#TLqohcu&o<%~lxa06SWK4{2X}8NB6owAZDkJ*MexUbuK_YY zV$LhV8JMnVkY<$028$3T^4J^PI@Fqs!ka#N=5cOi{;evf!LUG=o1@M1vW8kNiCI;b zvzv5*^YhRoFP1MeA5TA9=nJJGG<>j$&WWxudc?%~RGh}zMFx;y9$Vd99DN0GX60^- za-#~3$E+xFAOxLbKLiA&%HMqfXQQAwFZ<^yjQTf1NC0YR;ajGjoHJruUd z;{I{zT5Hc{4DN@K3_X!dV#FS6xRs5UW}eTdzky~Cuv*E|g5L{$E^xeSVEi1aqM=mI{00zdG06 z5Z8Go=PSf3j6XAE&e|xcRK{CVXq>R_Yd98ee(zs5ohl%`TnHar1?Z1+B1QLs4N2(l|o zi)!@vOHBkQIEu5nteYG71o8D%Qy4M4E=kB_@4Jv_r6Z3Z3dCp8{tzyceoZKWeKArG zz}d3j5kP!1LS2q7k9}cq;O9!hK~zt{2eC zUttj6g|^4Vp?*goUprf{nbffG8el1>1Sxf+d#o@T;;IX0`<2PhxdjXFfpU`Sdx-W) z0aqM=5NyW5`K08mfIG}%+gknh5!o)Z$JYV}tQ&DRJ@}KP+hPDF9)mJV$w#Q8HB@_A zpkYo!RLqFcdF*Yi=cNNQ2%qGk7pjO1BkbM^c~z|P(=q#$h=Z|-!?2L@23_~5*g2CC zuLDbI!JB^mf!wJY+LwG6{;X+_ulObI zY=>KU^M1J9)=-d7f$0?8nSHEGf5e7&NuANKuJ}_Y?0u_iEgU+TZHLeT+>jv`&c0&H zaw$*RPfQ)VP9?Sd(LS@lo=KgP@Gbot258@o)Oe7Q?C{s zf4^dGz}cMv$_G1HZV;S-6wab~iWQ_9`_98p?M26(bCA9`{;`6N2wV{oSbgjft)z$L z~XTxW;NZU8d|$lBZ7!t@gq`%DX^> z%>-FNnn>jwyli6tx;{TI z&-?9&QW0{$}$2^L5Zh} zH4}H5U>q-4nNU(++b+;=t|J#v^+IfUjCyPR?Y44WDIb49oasiqSS}aUdHs%2uEO)H zX&0iCRpdr3?JiGw4OTNpc|Lx{CFO#MhoP<_k>kRxvMt{J>Gc(z8+DOkn0EQ{sm`9! z%(m@hn982|W6dEosZvUdA?T~9g4TvA~XP(QF!7(grD>%+;40_naS3iKKq`{AB> zRNy}BtKq@6{7!-BV!}Ke5Wx(*drq2d3^mgKtVwF0i{RrL{Ze{iZJZht*^@?r7DId7 zxl9V|5S`pAAegRKKZ~a9#y0xvcq4N06P*0%2O>bTMrJP?Hlp!hoJ3ei#2$$C5<*3j z)J!?AHlyv3)`%q@4~Xtmki;rufdT>{Y7`K537cd)jt+NHy3j@?SZx^p($e!$j{`E%xr6G8B)(KA=Sjvrv(}tK;O@82L+6gFr-QQ(Q1hr6 zTWoCXilF`{xfa%Lj_=#bBC0*7`LdW3JPUSbO(V`{ zY&!-HXZDC*>9vEl+3vK8iDa3IT<7ZGS})$RqMO!ztuu!r8C{uaeuSyf5{>wWHUVP>8UZlS8nJgJuTH~Yqt8P zM<5__^R?05@T`{GKGI$RoD=|$`5_uMl*oiOwBE>RSWFkn#`x;Pcc;Y*ZNx5A^jzFf zGYE;@v%CjAFJ~#Yy!)7+?GK$3B1mB)WS1q?5=jU{E3BTN^sF-z46YMQ?~o7MU!=$* zr+xw3i_e@PdbZG#>C!mGNBWnA5f=B8FBMVFduAh2FdkVF(@|0K7phwCjJbzXR|xM>kuT6bn05eV&&*bSAr< zesKO}g8S&XBzroDfvR&vT>^2SQf&hawTltVgt+|J8WHDPip=j!`(0)pkq+h+ zLsmqFs6;8>StI`;ABXV3`!g=EuW{HQuJqNJG*@{1ZD7bRFy)i$Y3OTo8X?mBaTJRAHXzETU zhTjhY>79+$rim*{u)d~8QkcX0(3Nh{K=bxobjI3uavdRiy~+qP)i?Eiz9v6P+T0)K z*&*fT|Ju3(4ey-Kvvp68kZPb}K~MA821ihC>nzb`f2}c2y*)Ybkvp=AGJM?c`ym&w zQmTW44rxH5Xi|s^Ldd)-#DH98r6z|BgUIMIA<5W&U7uST02^0Xgha4mb9I6edjXnq zoycJmGL~AWwsE3J(xXs+y$TN098VmM@=i!98>*q;?deOXxnpzixCM4ZC(>xlmqPF# zL0cuz0+Q?UcV0>S0*Uj#fC;u@0r5-3RNoXDfQSHGT@oiM6E8?#8~lv^Q(2h9VG~Zl z`==C}oa6j?l~}NpYg;OzVliLDhf7u~?Y2O$^(9CS8&$ufz9xL`DrOIP*61lG(*nEq zSP=ahG+W6-h_kNSg_3#r*~WY~f^|IsN(l z2C6kC89zM`LwZ#(p`?NtED+>7IvYV$h^^>)kn@T4cloGeore#lR|r}@I)D*?_%(ty zgT6$P>sa9%z)9@8C;JSC6Uqdo-N_-l9Olzy+DxF=FW7Ucw1||q0er&g@_PW*DV@R5 zb9fVnsw2+^VTOmcdiv-G9b7`doVGgBeZXY_&yB zy5M;WoRKcblpO*3Bw^w5!W?}olGB$hvzsM5hMDZ3yB5&bMnJ(<^0hAG z>K?54p=P(2#uKYZ1)1*N?V6x($l^+`?AqX+Cjjd$gpBWS-10sOoP;v9fRu;-cz_Bs zIn(FPO=J_l7PJiqR70`}1w9)DcR`*%NpL%m5D>uz(jO%ne=e~;bfdd3=*9&ls`aL_ z{y*SXar1~O*Uq3U4t8-s`GsGFT{C4-6NNE6r%0G|2SCZ`3dIjUWJ#uuK-R0+pKzks z$f(WEdnLM-U-QGVcVn3Xlq8tO5mx+ZSq}T=fY8vnYc?EF+&er5N}s#SBHyAU0hC#T znDT-5A{e4MkC;^d4`0_ENLBy;v&p(PS=S~q%gDNBR!G@1yT~kilTl=3hg75?iONkj zA!Id>y@~8i{NA_m)bo9w=l9>~xSe~?IiJt_^ZvZwukqkvCjmoP@g}cQ#Jb{IZU%;h zU*__#O)fJXcOU6=825}7;l7DD%_VK9O4)31Z^aOtPq5>H$`+Tqb@@gvkCfy zn}?to!v(mm9?h2wV$(h?U&g;=Da^mHe|O{xks>$YhlFng`D=)$nFx{|U2Wp56G{xn z?jc+0YHv%7l1)KfE&h3W(>^K$KRo>b)KJQMNqQ30iSW;8gCYF7lMm}`=bi8|!q62+ z%0IF=hH;8Shwf0-sqZ`+As(c8tLBX#3XYF z4WAXPIz+S=#t{(el!xvCUc;rJ9u4JZH02UTYk;%SLw|u=W!v$zvn_Nio@I3iSa`ls z;lG*xEShH^*x#CTokm3O4HkS9gXVFw! zsIh2HgvR&qq|uml9XAZ45Ft>)B$0rtoqcjr*bMshvSf>}CHtw=b+H2U*O0)^goJ~i zZa*bQ|Erx-j^C)AuhWFXmuXXpqSn`TUniXs-s0QcrH!4T(HvMY8d7|uY>+dyF;Co% z5dbni>Hc8eyjstCzcfu=@$Dm?YspFF%)8B?IM83R*xPzEZg3@y^V@+?!1B(D&iv$c zzc!0}(G7IzL3>tm-#6)&QS)0iCu+@vdOw+OufI&h6=bGrSsB3VUN30l1^&8W&$teYN^(VxaHM6+aNFq)Kl~ z7RF|y142^z505#7kIX{VDOO)k%_+(Qg%Fo24GqEX3rYBD2Xp-y>{>wCq!MWZvLx*a zjjXmPkNPlCs%Q zw@KBfJR{#ACK-G}G&z-Uy2&^?iXaaW56I>sQ`~5~*tkN==UY5A)wjok$!D;L8d3m~ zQ8dvTk2`i71J2kCVM#!lLHm1LZ~$$_(lkn`v#BYIp}S(5tcFFg0*tvSXe9Ww*YO>=Nii)N(qomFKCTSOL@(wx9EkJ=w3Zcvmz<3!E`5<0st6xkm1o( z2h>IdY=wwg7}06)D0Gg$TNr#@py9+;PpWYu^tAzHi|H`hEDDViMwZMIrdt5TqDQs{ zhfM``oq7of%aJ5?(-+(@<&V$gt^!LLjD1&;b#)m^FFA|Vk~m|kU8L3|V54!lZpWSb znRhzlYMrI)SR$i@OEU;zJZbSee`x{NdS8;f8c;;{TdGH^@Y?al8v82=f~Su6Z$g)P z1;#cZu7#vD?^%q@78pLhXkshA51`*>Q2I|^BEpu;qF5uHdL{8%@a4Z3(?iveh{d{W zG^#PqX#mx5`qfPyok!1ie6Ww`u#Tx(!!G$WspjYnJ}u{8dJmjd$PfYiEo)*+zxt&K z`Kr$2soQMD5ehXLbT-tJXY$X+PUKK zb=j!I3CW+ILr7uBq*-8HQI~z2Hc$|__lAtdAi8ux&aI;UK7h^*?KkHhq`mb6TEN5Z z!ay|%IqEuQ0mt=1q7vIZs~6%jh};yD!?V^>8SEi?r%qh_peujRO#jU_8g*_(43&e8 z@txfd>gYdNOK9kvw_EMT`5D0uD$jdyNJjAY?;pXCcx9Lt2(^ZT`8eIoQd(B*##UdJ z=zp7&x##U$wBe*zV#2JRc=W|lhxNI}#mS!ALApI+4jsqL4Iw!u&iQS9aLGd^X0K9m{_Ap$83bEZtoHbsJ-JG zAfhxP)BF#Li50_l+LBF1y~e4ZKma5Y;nMXXx8AEuYqdw~m^=H+odK3U!W@re4HAf= z{F?V}&9ON&3QA~KRkHVtGkcyn_?`cho#6T+({1k46Fq=(tgpiM1XIjsbB|b@W~-gQ zLV4J`g54VDKT2YuxZ2-2S(IB8(<^_(n&Y^NTmuTJ>51>YD&DN%YE`RuAs1EKDe30$ zfB803>ZTotGBTB)Z-aF%`EZ{VHk=akK@V{`Q$I$h8j|l z5Tj;(9wT$Kj`nyA)Ky#QLBX4K*=q7wX7WGTu>TykaHc`%`)`gJrfTj}uOY{#6Et(1 z$p$irysC{M@Y{7UgzzNs>1+J(xiO7)lW#zK_!QJ-dO)}|YbFZQK*e7gV)dgl0#fd# zL@}r25h5eZ@AmUojaNr;0Nu?PLwB>S`+ZEAIMhW$TBg7Tps!yv?_o$GgyLoE^QZEc>A@|*R-sBvL&BnY^( zKfEQaarY($oAq?Qhj2GBc0#wM(OPoV#a{~%ZZI(Zl&BAJu(s=vb;(XATjp)=8@pKvmW zC$928sM@={auh`6 zBLG9DvZxHy33?vm-ELMnzPZPQ^ug6-pUXJKniMd5lfaeo#&;(2|MSzie@x#Pn>y~l zK6L~u)gUIT6ai&y)#=WwrXFJ}m!!PE6%Ca8%X{Qr-PU+tpvIn|$CX$hnxF8%Hl}{S zwEWcX`~K@XzYh>ZxRe!cJh11!zxfRM;N7piUEhE0OZas=$Q8_jCgr~n@5bZ7>z@Dn zfBxfH|M=5Bh9HZIuVW6rLAm>Le4uRMB#-Du#$$M(YFogN%~{$^=l}1g%a6H8u_h2G zN1MA(QTm`pFa=l1?gAYh8TcAnfNgF~(pAz**PX7r4uf*kt~xr=`##5TEYK;@DVi^%9YW=@(qrOg~8LUY3`e*1eCzv6%qugn|Za4rE* zq7cjG=4oWPupBTF07M`G0Fms<=8YVPV`&Z{K*-0)EY=cx%P_yi&?%upvCa*5A`vp{ zYx{lg-aK%r=;R%!4RAkap7djnK`F)#`%ja%RC?}C4CTvD2DPc*ekpe59Ibj5_iN4| zbS`Jm^9Y^5KFOdT9Ou0pRJ%5I6@^;#!TyeF$P@K{suKMANr1BkoGC!}cGPQ1zN?m$ zFse4G*ML52>$nvjHjorO+{B>$W#A?~Bgg$wlg<7|-1#dQErr8Hs28@}1A2epn(h+!IsC!`gy6Er9|972h3xb-D(=u*kEQXh zoacKKNBm`rX&@LoKz{Q!+o``U_0NN)+dnQId`%Mj_q&5Uz$g~}K-*u8L<8s^k?W!M zpAj92b^8Z>yCW*{m!#5=)Twl;s5i}_u(Y~ar{7s;*XyT0v03C z1tELf0&kf?Ub4us0n(qsEGJ8hNL|HTRX93}rDk%uE`u7`Y@=-TrRIt|oS(TFAk^ z>R6HIJ0g$>mAEs{*+UV7Nf*Y=(P9_6Ik&;^XI-r9Cx^OK45*am8IXtWbY$DLXBk7^ zlm}{`YkoKQ29~cyld2&LF-kt(My`jmIk0a2$d#-;Zc?E@-ji~JjvV;K0~LXWv@Vj5 za_xdSO^$kRAH`Bu@DaQNon?=SW{TNQPi|qrKr-1RXP;s(FD^z9QQ1PDw)?IMF;K_6 zvJCvD+nIs&qBF7oZC9_@O5q{wfwLN8oC-jsxdlMj`kN*%E~=Mbp8e3_lRNWzu?pDL zIf|f{7LaKT*4`zT`o%vI1c0Ja;1^cyxIvM_JglR{3p~dxDvU0Ec))h)^K&AJO|u;w zc`)P@f=)@YjPFYNh7@Ai$xjrc=|RW~p$FyeAxufg2S;k|o}zy{2L-obADRUyuqmCq z@@1m9YXNXrZSP-sI`mcgmpu#@f$lkm+ARALUJ$j0ID2R@7e=+^{A)H)PYU>vk~Kxe zz4SQ?STNVzl<^+)T@TMucnh7AHt_ySOeTo+2sd~Ag6 z&~np20IgtdVV)Ug|kVtq7c}Tv|Gi$lm*L}hhCID9C z)kim$aXV;79iZM07oBbPpnjkOJQNNwhxW_;-cUc(0~CN!59lfjGKxDV06qO|LTHmA zXjB?n-*IIX7;OjE`a}#*jxO;d%j&B7KqgDWzULRt(wIUEB^kJAJD+8TK92{{TZ@AV z4NxcYhm_ik%=W*j1ONfD-z93X_u0LcJu1TR^zM0o2jtW^J*O2HwtI{v|C9KtB$Og# zGpCzhx4z)I3_GHTs(Ld^MQ)JoVFW6sjPcc5h3MKD=b{K{ur*79<~Cm_Ss?)9MXehM zW3FBEn7MJT=ZVRSZp-@9Sx_HC%a&0ua84vleg3trkc2=^L}qwH1N#m)!f{l)?S*Og z`91s>v3lF0nwxLulq&OZ<%cnCnrM7$8rvN8TjEbFoxIkAZjd)`QJV9oO{k+ip>4M= zb>-U*fj?;?Sqpz4Ko7~P6dr`M307^z7MAj|U0u=4Jf8&y10zzxk7}P3K3#Dre@<6e~^c)yK?nn=Ipc zWAoNsJ9fprwrr=4b5oBQHV-dHl873J9-AW@TYyGJPwNXj4^n=ELftXmdnuq2Y{wsd zNUszoh&qPFoq1%@5R?OtuMf@kD9`^}K2Ma4s(>z~GPQ*Z_>khSi3>R787PD_e z-GVl_uH7W25}A9PF5petcIK$&J_&=UBuSKqc{6T==vf5Uw)OI{0rzSCtI}2T)&rmM z0kafU3*n(aRA|?4V|?n$h<~MBcM!FeQ+fKlJN_-ody<}$bLo#R! zv+7cxL#QYx-qpiZP|l1KJbmr%Woq2~harU5a-;ER@}qgfkSd5giNqoGt(Bnwv7tfd zjCZN?^HtNnK3ZN21O5w(Lt^d@LsC(H%O36~qMENtqZOjHBqK*7k$S5~rl6E%GJqyJ zR3F#rKHm7soPXfB<5T{)fHqy0?0^|1F(CV%qi^dL_=o-g-B(t8zu> zZR0v7LO$MdBTyui(Y>mRov(rftN~ye&u}TN0_~$nfD{l^?_$7IBnk8Lf` z($Qh|X^FkPMvoUBdhz1nV3F)7;2+ug63@mMvAog*Y`#30y8D+4+D`z6dV}1M*^hET zW@{we-aZ?{-B^IN__+DZ*e#gJ&0EW#@XSZ-WiCS6?Zc z28n5)6=GMm#^e37@5-;Petz}okkcUrO;~g)EH;sC^(U|+uaHj!-3I=yuWKO$ z5RKmH3OYCWc3!Dyy$v6Vb~-U-R8jk~fqkbWK@ax4HzDt`H^N^CR=g^7?aRNt#~(Xh z1O=`luyjqM(0q;q0RhWz==6`R5U}{vM9jkAkT@DwM&Q1RkT^8J;G)QpjXsYi>Vg$H z4T`HV(Xwsoze{TFx0*Y{VR*#&c1&KGBHx9phXT|V=1PsEc7ksEb9P+mo0t_D zemfkc*Glx{)_|D@w|%0?AZ_y`|67mXICjwsqpn}*t8f(3J!iYQFiRulNr;CWr}^?B z2jgSADosID!V}9Rr3Zs!N_Py`SSOO4wTLBioJ}ACWf{1h!iTHKor1xMSS|_sg6u{2 z!?Qf=(kz|h=O4QGEMra27&|NpzkrZ;lwUdJsD8Hq{nQJONewRQnqG{10Mt=VK35{* zYkLYhJaR&k%2=u|>9#`K#3N^oU6G0=AQsWTFY+>x0skvWm!2Q1+&CV^y@A-*Q45Io z^mciW=&*<>-H;&kQ)OCeT5m=~%}hf=VhNHX`Eo~Oe2TXbL#78t{7Or!AQbZUSlK|* zRI*UjmZIHk$f&<`P!DMx&paEwvKDL5)}6BR@5TX8Go9nF{hgpanDCCEE*3xlQUNyz zz9EupL7RXdgX@#>%07AJ+^o=a<&E@EdLn!Z!U$4fU|lwdl*o=&U8UeKVqKbrRTZPd z(v~#_)ttG`$A&^t-HwfUHFQG9!8);ZQihGG{>mGpv-cH}f%ESHQHC+RYVV)41Y z6J{K4-$F)JcpDx`t0HbQu%EQOWDG=q>$_=&^=L%@oy)J-cES;F-w&TjR*R31FMA&4 zMoz@=zzU%wMXXoY2BH3@i(%Nxac`ucvH+8M>nENNzU*>=3NJ~rjAYi z=I0o>XO_j&7QT}y$CZ#4O*fdGEP@N$(k}hAQTlyQv+#Ymld4p#a?6cjC{Da?f2O$HU1Kjval56wV-5jU7?z*IUSNF~f;}Lp$*uE3U?+?nAb2X}r7T5}Uykktqi((2XByT70S#M7m zZ7?1PBN*~YcaeGE^@bdqKxr+c@_I?FaI$6XCJVi2_7U>w<=2AtHN=Rm96Q@!w=z}M zfF*^@sE3h~*we_l!x4uTNXRd+aRRpZ+lJ|?^pF!kSeF733~~TqvGyv17GKJ8ecxp^ zlBr7Yf;vlxV}Vd*z(0d;!4m4*a^ws^171`iOc{nfvzt_ApI}sh;sf8JaoSalkLhFx zUv`hvKaZGlAv|A$%}#IFcjj^z_Fj}OL7nj6Qa6dRsc-<@<{HvcUMHS7TIO)4Y_9jGHUI6L72jUP&8zHe6{(D@@Y5wP4MsRQRqw;%@f9>q;s$&R|tO zhA68krqlIn?<+2-CB&y-9P1XgeI4dQ+{0)aC0cU!)ykmxfgcl^vgwXc^dq-L68vCU zyWCGrpWgUJV|iyhAjP6=f3q(U5t;L;MlyBCiKnOx!G=lfSfUi{i-A}E@fyFg(!bPA zUh;s29+~JAy@dR-IQ5WAUB9)DbPM>Y4Wy@ouufRqt$U59i4E7>mFm#jVdFWXYap?< z`>pj?jRMt7M4zv(+m4-@kdVtlSk6yG;Xxo}RfDNx3MZfMJL7j%ddGI(+cStS^WX@> zj_nnNSpk^*<7R|Dx}WnQTxd9l6ZCJf;MCXqCYN`KsUgpXv1!$;PbHpWIfKm*9g={h z*l{CV4i>!FmTon?-%FJGgfJehj*M>FW{OshC0MaK{Bnq- zu!bbEat(x2UdyTo^;~@x+jgpvXvg~t6bc@kD6=lNs&ypC!rfro;L@-fmpi0U&ftG| zcYv2GnF5T@EWxnQN}Iec6+qIDB$W-2)6NP8fXWd;QpK@ZC{`mH27JcjE-oTfN!^o6 zC5boHFV_;4JVR;Wjk1igtvrRM}{Ob3Ik%%f+CZUHA&LheTZ!n84g&D zQ+mr)$g$96Ruy3Uh7VW9M~WD~miiNuu`j3?X{gJY7e;O~Y-X$lI@kpPR(585%rDf5 zf1{z_wfb1~{?23H-fUs@O`0*$>5`aPATY}@Zp2eampi_bl3OqFZSV2oe^yxb%+#N!TUoqrj5ql!pQ;1fNsF?B;r5h$71*$#vn zQ!E4k=A6v6FJR>@PZG4x(@2)_d0gm^cr8|LK1v=1)OEI7UnCg6{D_(JO3iOClJbgXcC_^;GNzN+oppM2lPsXw|hfOHcsq&DWgDO5J#s2;M z(_cdGpKn&arbQk(ni&x*;P;7G2X<)*QPC=N_zJuc1RKIK$1PraJyD`%47edG$h(d0 zDQGw;FyKzxgPMt^I~p5H-9GK#&xb%TV3Qfzxi1AiQ@Kw2h|!i@q(xxv+n2zQU|8b^ z$(+_lOFan?79*j@f$yxGDrlhil8n%{@R|%;fGF;X=CFyPJuy+P$@c7iGie?28Peb@ zwb;t%BY9hB5P_G>-QSn8Da?eD=oqvaqjA`dD2pKKj{wEF`GGZ|b@7325E1Rg(Howz zD4DQIdwN^~L?6lzg$OK9Ug-OOGOwie`!JFpv3kxi-^6ug$nO ztV9{nGqd~tksE>2jhE#Lg*c&1Bt6vTm#-|1D3o&MdeSoT`=6qFacAvzt+sqm%N{o0 zKrNFytA-F)^tbE7aqI3ps4g-3^9LWmdld_(U zH&LaUSwXRclq(91k9)MuaSPIp9dGOsyD{tT`jPx!VGz<7BRU=_DdQ#l4x#G3yIUiT zvHPmYG^6c6pl0s21~#2}jC*X^*G{2Eg=@A0>D{CfJ4=yC{IJ)*VVWxUQx+E02qLgN zHrt+;DG8~uz{@hYVmEytK{_g&ALiLsd)Ojx`~9>T1=_>Oi=mjJi|D1#$JfOg#2{(W z@LT|tN1L9!gWRxzz;|7fi7DqLyH3gJ8`mhUAT4n z>p7_w3x>%j0dIi-Bi(#|!g-5iE(3&;TKnmSZ?Tbu`nKBMODn(*2hgxTlLLlc2RYJ5 z{Jz*&E#)HZ?r$jkG^ovWuj%Rd z?akEDw!PCgu;GWyjYc$2a#3pFcCF^Q$Ps0_JU|Iv`274KANGf*N;@V-8J5Va($Rd; zU$aQ9d1GEGc;rcG#Px@?M@+AloG= zbh2lOEpBwTTF>&Z?NXJX-ZV97LW=u=?OXW@EDd~TvP&UYBXN=vV_LWOC^%HpMryyx2_v;{f-zoW&J*i#C4nZZ>^o96xWf-hO{8pw z7do=bgu1I3?OwUnfATTye#LxMnk0a-SR&N1(yibB57aczR<(%94z`yv*o` zteE2nW*akMrS3fMTc4r>DNP{j>(hSXPqXZaO(_=8t@JjR?-M(2EDS!@Ku*59Wf((S zk$rtp)<+#1G!Irk8d|=ER>#7~F4Py#ZIIQ=5Gg0TZA9oI-}5!#34``R8sAb~B>(%X zhZah7ByX32^GRvp$87JR3-)*1T?*0|J!r!QU{II9(7JLhXO^e4j=7#ESzPgz<5Hwg zEj=SPr!7fXNZqYbJZcXAxW}>7joami@aJZpoTJ^}AM=+I{aQ0%7ca8YgNHz9hUB~K z?APuUTNr3i|0{Ek?QyT-bAV6)R;7Lm_i7y{R}IapYI zMzB)yiR&IfMPyZY!4t)cb?byvD&Kx_ouz{xD7eL3zpm+-Nds))q%-&1U*XJK&f6Ga zO5*tyR{Mv&*V-%>M74~+#|B>Gf~Rq{*gdvN%3JNyi_PQl@;Q-WxPFKWwa9r9QR!DE zryd_1RJf0;DtL*|w{*_h?Pl#>eb9v=uoJ1Yq(nV+2^7h=j{j5tv&%e85BEF(3aOzJx8cH0} z-82=lyUG}arXb+As6cOv1yzGgszwY+Z5)3+DN_Ys#Lj#p8lz-Jz#7nrsXWndaay@z zclnLJ+#d*hcql6_#=KtoMP6E~5h zgy=}0{hFvk(b%cr<^@<-D9<$3o82S#p3DYBdzB_zE2$RU0*YkZY^rHSQ>g1Wl!Y!p z)vN6M1Z)QBk~Km{Lj`f=i%5oP5}(u}-Xb}Om2I2Ft!)|HgLqj4MsF;zMhNIXIw!)a z`~K6^cZ##T**-BzcHPA~uV%B1G|%AnJ3 zv@5SxRp=Jb{2y(z<{lkS`WP!6N#AblHm;p~H?2@?11%KG_E|)<6O`~2?AaO!aH)$# z#Y0tqhj;E1w~hSVWMrXzv1t02I$CchdlmHfmrU!}J84deg&b4oVHgz7OYpCj!vF2t zxT|vgXtjHws_KRMfv?8`J76l!^ziERNUk}pAKYfsZ3u!@FXH39Q{=wT_0jK_@|==P zez@r);_luFt5yNKT*9-ryhJk>1)_71TPp_p9ftCKIk=)>m{(6Y3}&hrL(5pp1;jsJ zJ-RmXc=zmy3cTpD)+|!jiaVAAk`1?FRjyGd-f}5dujIQ%z3M~tUby081S1-gb*>eW zbZ~?&ArVjL7M5~#gw$%};nD|N%k!O-gfE1-2gE+(KkhkF*#=7is5GvYtlCI-Ky~4bUDizPB7kB zA81Gw#)=@SS<_O<;XVL?vKHtA=u=I1TkiP!Y>@(|myz{(?eH+BeG-GP@_9Q6`k


    whUzf0_0k+RY?UdOv_3u;+gi@@r%xobw(*3Y!Nx%l)G{nT~0 zCM!$$av(-11G(^pwI&(GhZJsp&wLhR4%Pt@b+Fq)b3ptlst>ewIx~Wb3Sy-e*j4Ekd?*n!`GJM@gk545GiGMn*dnKa2mgUB+9=^I zmXOa#KDn)+qBx89FzNb!p-jLh)*Yq7^T|0LlW7*$@EMF_7a!*op@5p4!gD)7?}YC} z;;9M9t-br0jJ3+W7mIGNy(bnm@)4`tqu=19fBo5z*WoP4F@DVU+!nDRG5-)&qHUmI zI&KDzzv?77=XIf9*qwYGk`Yj5d~lRz(z)CfOdGOnaE-%DZQqVjmI{Wc#e=ik+1MA* z4W9*cJqTf+V;0{?uwWt2h#_5$@?>q^!472!h$O_eSLwA@L9c!?bqw>QnvZnXish_8?tbN5*IKRJmfVd`Ew3JJ^!r?PSH0hEUWI>s(f zr|I1hZ@U+6a^Najer%TRXK^D!2+KQPe?V4?d^n?1j568i6>i+D`|Gz&9zj5-X*LB)U@^sUd;bBHNIZ2j1=v+YBFqwR6~ z2JoyNIdchHvNU`lPi3nLooTpvhp7)5Ke?HxJxt&KI|p~DASJ59FO|eKBN@`~g-@Nn z+FLB7wbyEi*^dwwW}T+v^*L%f5s;Jf#vVu<9)OcAm^Gzix)VXwa#8A*Aa>n8^nj|G z)XgcEA&1RoIcs>3k`CiJM zCuY)RAm9m7>hWL5*j4X6&+ck!#FLnJyZ2srptz3I zc+gEuAvl}@T#_qCBg>jIC0vV!hQdcx?>%NrP#p#gnK9eTzoh3e){OPvP}qqI$a|n_ z!CLaD%woD@8UW3hB}3G2A|FB6PE6x%f2P+$M@ky(R!7y1|B-ZH&c zM?=5B+)d&ZBNaV#M~1dd%0F&Dgk_8=c?TmJT(3I&@o^d@V~vbmg8PftYXs{mB;F3Z{@0Q88~|FMLO6zZ_aW44vr1clJ>9zoEZJ{z*bQvF&+Kg} zmnFu@L__H7xCpNn52-Rp*PpkQ#_$`p4xT{Lw@V3i7O^*~C!J(hiA770Vy!^nV{Qq9 zn!9mIXE$knTCASqQU^lah~lLY#e$W9p|yM=*BI@Tzz2v;vlQ2n((Rf;m3ce+YwvYV zE8LWGrK~1D&t_dBzRP4d=5209cqXgt z*)auh^ZF-9i_ix9C1PPDGI^Ps+Gvcl6r}&9tlq?(jrNaCUO}I~dU-6TdsYuk)hKhD0H}%ouGL3+2s;mjiX>Cl%8x78X34+Err;_@0rXIhtLbw12w{e4*1N%VCSx1j zPsI427D~`zU5}quUG&=h?DX_uRDW|aPACOSol=AyebrO;)%f$g{C2iEZYihL!A@&$yt;X9cWnMtL*!M#hW z^c;ibAZlTGB}%9tyJCi5IKOBl;xJ0q?mKfQ>Re>rVVa{Da?P=k3${8Q`jNy!U+IC7 zPu4(g=mx7#_8;n`hy=tNhA<)5{iSzaDSCIeiTaTt^jr!1D8vg%YRPUDeyyQwook=i)9CP~5`wT-p`3 zAAk!(c{cXgCo4vh(HkkRwm1et6Q037Nh5juEz#rOmKuYzLC{ckZOS_>OeLIanRyqlZ5TA}ox ziXvtD(TYcS53(wdT&C3pa>2#+BHM0#_UomBx+rlc#<lq!KM0~CTdzErChZf}afFi4qOsT8WJbQUkrwLSI6QT9{6^O>)Fo3`i*Utx zb*?VHXb&7WlYNX=@|51Q`5b@^L_b*#xBJa|6W4#XunR;9`){^Er~|MfdB z)D7D>A0%E=6e@7e-xOmcbX*c8x4sCtoeL4te)o?MiXno9&9lP4UHewVC~7-u5x%;w z%DCmby<#U;O7Zz_RvJycg)#%b_by=|$&uq~Z*oh~cnr?P1U#oRlkItvCF=Lx+9UF= zmlx9(wJ~!v;1ux-+ZxxQ5&2S#5%SH4CpFq$fY{WVGnNvTEo|pI1VMS2boNm|PRcgJ zKD%kc<3bZ&u}B*$Liz00j|x86Sl0@ARm9mir29bqQ(u*DaLrkhH^VO3=6(Oj&J7!3 zTeww%OiinFAbMT~HKp%ZG6+qS^U{dLI_c(*-Er#HZtlcmj zNE_Dqq;Ju%{A;&vR0CNL5E=D|vO6SDs_r;P%WUX1)5&&a{N2Ym+viR1s$g{`cIh?} zfsMAVHRIpMpA2UFb&Kr^Y~C;|04nQJE+d1=GJ?8}G=S~(?EPCG>eZ7oo>}vH;)*F# zZEXX7B^3%*_bGUdW_4U~h7%OX{8Z!OK1K10+&%|vY5=vaRh7H_;-z0hFLcnC;W2@vZZ zmRO|Uk`7Jhj}oTU;H}kV5s(c-Raz!1hIbx5a5GoQK)LSwVJ1oMYvYQL3G(5Qmh}O0cp43Orsa?6=CXmz8kL%~WF`bEm z99^F%C$`tq>}D*-hz9y5#Sr~2d0$dR%HdYRgNis`Ko)T&h5NS7Pd*W1`Ip}dC3JZ# z*j{5_&BjnbZRI%=L~xf3id=j+vVad{MGgfM|3a!tPAo%QcCMhWutA8q2T+a&`6wdF zy&_Za>v)dotlXR|8qg5-_T-I_UJCy3;7oUQaPSEl+cgo5V|bn}iJ!c4$LR8J969co zyOe8&DU&i>cp%9tfm^47zL%D{3vfMVQK|m(%Wh9p83b%kDcny_@67g=I<= z{fW5j30++K&6)$MV$VJNlIMpdaEW>oL$b#Wr!Ucsl4*3za9syxF30Ix;wcdkxP55% zdz7a~SV`e0AzoA9Y_GCi47$rXOxxFEj+7`y^miAk11ql8l5QM0E|+dhWDiamGg zX-_&Edd*TZ{22xK@uGkShjZ;_b|Oj*j+Cz53QzpoIc29kJ&b#w8crPi1xchlcU3xp zq>qlsmik8rgyDsgqzf7W_xXhc-co1>G+%Q7vEMaL%WF`WPWd%A*6qPDa3F32Loa(rq`VODMhse2o8DXb7lw;4|?_bA~1WTPKp_1OfZs&P9I$h(8bl6Yv<|FDT3_ z@y?Yhk*91X#P-4%6pLCnxwW~mTTO3$lmb?6xPS=kkzOC!xgouPkSRVL|HSN-USk|1 z&viN>FG=P=gU1G^?Q(dHimm+0H+Gq#uVJ+5mY0`Htlu22-d+7v+nmTT32IC!n3$@p zH2cD_B8PxIsNnQ1Zp)zUeDJ|CN^!lXLKli5qe?GU+~bz@oYLY0pQA|Z5G#!B!y_}s zqHwQbz%5%4k?#UZ86aIH^B%~to)s%+uq;IA0!BDw%+>+pq#8S%Fg9iN_jBJzBOocd zQRBaOcUIomU0b<53r?yB>NPZ>x_$44!F2C&M&yhUuB*@ z4^Th+fWb96YVDV??T^bVVn~bMAM2l)^goVWzJEJe_%Bp}S`7iVz>_f?0dcNSVQ}Hq zrWYbJ|97hX528>g?~iA2=J}wM{?7;bozb%|W=qbAAj1`W;-_DfBZZ(gw5B|)5%6wE zVfI$`PrlxtxAMoa@(+eoOd&IfRs1-QN`NW^m2J&@4z8l|$V#JeQovGLZY-^7?zIMe zN9N?Jz6&FSOMWbpsq=p@B>(oLfv1D~_Jc_I?RAtx5(=M6GH4GSP5{OAHmi6^OuIxM zGo9pSUX-^u(>=uWL3c7aSxtD-f^SnK+qIZ|QFwc9ej#`5oi@%XZnl4 z2&+BS22l^nGa5+iF^TOGvu&FjoOqIR+V_*4r88PzP{+hw?`F2Xec>#cLvi$V;0C`e zS7`M1ZfibgC@&`j@;a62WR6G(`B8!GhM=due#fJT9vk& zH@!a(#=kDFx;m7reh9-@77nTpjst&PG=_>igv8o~8~yD46{yHRzn1LYZCqzfq>0eL zOLO6q+So^+Sy_ey%}Nw!qic6nN>adtx4PVNS#!#2)iLe+0+jxz*<#)Wmf9XQG34a_ zRJPieiL0oFq#T!s*pj3svc-^bBFCmjI7jH9s%^RDBl;ibpwvAaO}Aj%n)+^~@yl>^ z_1audhsPf-z5gt4{QH^EHK<^m;sDb~zcPxBpR*uzh7A#yuYcF!iqwBojQ_eG;V~fl z9UlTBh}Ww7FR}4r49{~OeQ_=0ZxjB1N9%WDS=~*DB%jM+@aNo0w)jbh*IJ!6(Y(#?v1OJt;%#C@)W8{IE6qvi%{@7Mfnv`^x|KU= zvfSvcw^G(Qf!q4l)|Vu3PW~G|0Rz!QV1Ji&pbERx$o9A2hMAZZgn5SO(#xRzyH2Z?>{f1^h2GZ{*q?e{}MfsYq+$FG90Hm`k&dKoiWb$ZkXFwI~Gs#F!iZc*15+S zvU&wgzJDWJ{1Nr?evmBlZ2Fg|F)DIR@vPo%oS-~EI!a#&18PYF#N=ow7!y#vFx4Wz zc6UBQQb`6+K5FapI@)|s*?aR@nu^Dh>(2PisL60glNP@&q zA~{RaV1lAIaHm9|-&1gfn^skVrjJN%DMkTm>ZmAtBMgw6@8(Y;LGv*J4sC_;RDyVc$Mqg)i?BjGc9GB;4|o zEpX%6no|TDH3m=IUHB@?-J&0idI%~R zM%bf%5Y&s|-*ZwxdClGFi>PCk$6C4kdtCn&QNACTLSO=_s;P_F$$uF2ekaDW`qfIM z)n$*k***RDVGQQvrvZhS4Q;iz0KgQusivis3~k8Qmx7_Funm|_J4|0;qz3C1paCWT z*#Q!$NKhP25-=_?I^xt@d|ouUj#;y?_b;QzUqo1TjHUT#StbO%;mpo|t0rUaA#{X_ zFviWHK9Ur}1ZXYgGeZ{#Y>h?<_8&mK8$$~N=2dj-IOw9K0ll3UD_#QNZH#RHvi&-Q zWvOAu#bcg0xq82#!Zt|&?^;@F$%zF{Wnv8b_fX8~|BW|){nQ&MwFqg;faR-{?~TAl zFdNca70@EQ`0y4`6`G;&JpBypAyairV0ZDyT!mw0Su9HonJp`A`Xb%gwnrxd&V44y zK!^sZ8w$3jXr_JeF)o=V>_ZpfpY*bd2Ntw>-|I{FvSj>>R_OS-xcGY##%LaEba|9% zXgL?wU%=>)UfNMjeG*`~!PLuM(9U!=P@gyOR7-XL0n5x3po98w8iJeL zY}dUgrCY$HY*iwc<>Y;BX9RYidBBW#bevXM7M$ihB;{O(WH4sM{m!szX3*Z z%Sx%{W5^`c zmXMSg8c{*%?o#QN7`j0^l+GCt0f`xMh@rlFtoM1|`2D}@^70zS@o>(ZbMJfawbx$D z!)cJ1^vHqz!1C12<>5jtne1xwbvh1tP4wZeOTM{n2ZM#>Kxi5*|5zO>TIk3-g8Wc8 ztjxG)kK5MdV%e7-gC$u%ZfJbt>262m^P%NCzqtV1Ukf{W5sa4)6`c&UnvRaYW;&Oi ze!e2$`i=9zWoWF_1le)rEEuJImNF6eKk^`uwY=n*Zk}?$N+?n;0nb{1ynQX(12fOD zKrkt3seZGa3@dFOcWgUZE(=emN* zpS=Yte8T7$8D$&p&;!HRmqgdeR-F>a<;-b_Q>W|iXCuVwqNqegFZ zuEOeJ`AWL@W>Usd0Vlnv4c{Bl#+2glH?fe*LO576HAH~i zJ|~Gy@aJF`upJhlcAF$>Cme*^;tMhia!p@R+?V1^enNZYD7LcmE>ZP*{DM`6ISS`u zLb9F&a9d?P=M~Tyjc7a%}gXS;6jWJC$Pq$7?-jSI6 zID%~2z+3m|z4cVVl0)tg8* z9~?RcHBD$4agGjq*#BGcch?(P3)xA={lM$}ienm!kO5Fh1^E$7%U$T!pDV*^0L%M!&7@&h()*LFOKsln+ES_amAYDZw3WyOazgo0 zlSZg#Lz27p2(~xSQ+hGadj=J!H7satxvZ3F{+k-+)sHLWNKoHrssHNsk}$R!G!3WI zk4t1{5NS!_VP2?kpYbYN-piqaR2igI7w_`9dE-^KigA}lr{M2n{VAZk1r4_xH0EAnKEnUyj-aN;_}2r;Ap^Z1oXfdnGXWX zJ#vGS8^c*ztUc{Xa@BV^cp3VSU6-}XUXQUer|qqBcOdrxW5n<_-!T5h`p*jgHy!zR z_WK(O0XXL68V5^&6?40+sHZ`0O~!E=!G*Im@-(r3%lHk6x-82$ ze;GVdx&5k&7@2v|^9|`eROACiRe3Gq#>~XJ4b+|OyK?&MY5a=EaC;O~^`n{2c6^yb zc4uGAx7>*JZuEh@Oj%JrNngzTo4x!2`@%690-w4Bloq^&-fXsmbtbjcbw?!IXkJeSWZlK>yj1#`HqrFJ|w|0-y#KdiM692|lQO z46iau(JWD*SVr)|$m5N>x@5Q3dNjU`2dF<7@i2u{QzW%e*b4=8{EuV@cnV^>nnIm5 zrrJOtG!t}hRRQy$3wT!_p~sB4y)e(!;$K1Bwijct;=-Zix%|9e;Ey!{OlDQqIpQAuKKBZEYFeY>u8ZsGm%u zgD`7z7!f+XQQSCNAgMPVYbyQUDD@?J8k1a4td z;@6jb!6bz+fp!rCV^0tiPDj$88EfRe9VfBU*ys&=oP|c3_182Tk-78e%h};gsT2?SR}hi9 z3sCoZ_pr6e+AnKm&o`|Hmjk{yNi;;R@I;p-?oF(2b;Zs1@|~^ei`&Yy@kssv5{{C2 zyl)97F@4_Hto!mxd7KPQ8!yWYbLlKVq^^3~Y>g`RDE`rj7ZyNFqhBXd`srd#9u)JX)S|)1IViAE~9#ki~WIjy6IBlP<$Q8Zx8{Dx0Tq2IBuuOs) zt8$-13sQJ#k)ZC9F9Ww*FH=C+ao9vchPI9)3+(yG0F`0{mEQtzIBpTgk*kAF+2=DZ`;7&7l2%S1@2v&tK#=Yv*bcyl)R;U?gbMx&f!+ z;en3~iit9S%OwI4a+noA06b^)Bp?VN4z!t;N=1MsM!}V-Kgjxv7nOMR89!BWLH`k6 zv;<}xr_tKdR+uBg%Et_12wlFDaLlnw=LcBUt)=PQsM7C+*S6-5NbP{iE3BeB(OI#m z&VnqzCFM;`J=h@uvzZ?HV%R?*?6ON`R5Ph?ADPh#6{yv4r6nPDO8 zRN+}2BooJXJ@ffyo?QoMyu6zVP5JM|>llY6z~_trRwom$F<_{y2gEzh;`-f0 z9jSbvNANOOFttG9&6QHCA%>AQHGj$rP}@cyf&Y*;lOe%&k?LZCZ%@?tuEFaJ`;4bo z>aFCAQ^dSfPmatpZS`s&RveYK`&I-jY8w%`~$Y0IS@EK!zpx%4oR z;MJJxG%a9dNik}vE>=Gq)14@P=6BTKQf-Ss=S!S+p1)T*z|C6$#`+iyXnLalJBUGT zg7x#llG3YPH$S{20pcC)Pf$-ebjxL=f^Qj98UiY`T;TF8$GCtF4Kb}E{RoiQ&j{l> zD$Ug7=GLTyw4}V98B6{VtbT2*KY$KbIzpDYeiyfkoge8Nt9R%H1Y`|s%F6ZcL#2da zL&~C%C&dMa77=XZr-28Kh>4zW{z=`r2p-j{SDS~tbs8YCVFJwAn1RM4xl)UMGmKSq zx13VVo$FJhaXLI%2XxaqJAHavCycohL6f{>93TKWccDLjF&KRI`E(0oPaw1~=m z`XT^El7)mkP#Fb>^JEFIC-0JlkHZ9~8z%5`jh1BN=2fd&gMOpfe?Nch>laGYKzq3o z?k*4a;DnucbVbtlrOmK61LZYyKpkFj0QBU(QXSB@jDR3dYH9d^4q7hAvU}{X4bcJN z?O?Y{^kqcXuNwdbuQ$#A(LJMk;@4y^&CzKut!AXKY4HmT;z_z}RP&&yFNL$uO3xc( z$N;f=FADhJ^@CPBZ0POTH#S`dJdBy30vdca=o#1Qwb}plz;;Wu3pvDYKi$cs0s|dZCt!W;Xol zMCmmysliOnx-Bo0a*%Nv@hHQSM-(Y+)YnO^&>P}=DOu!znw$UvRP+AFlCzp}p=)DV z%W9loTn3QOG9-e=^h1HRcE`f(gZ~lw1#un_qmDLOuMXyq`S34;W@|dU#u*C~MoCk7 z4GRwg3imR+z7}%~ki?bolVfJ+rs}0T?|^ijJoqq0&BIzCw$lxqXoi=-m`()2b%rVf zbufTn*XZ1GP3lLP&eIKKs$Tbn57GE`g32Xi8n)1T2P+!CH5SkFToIdoEa$;8d)lgr zl9n6SKN9XKxK>oJO>dOl{oK#q2!Fa_p_vCQ4p!r=izRGY0B{nV*pw)X&0 znqqgfObQ7b^K$9VEmgfMr)7G_@Zui*>ddv2E8Z!M4pQ!+IhGY})l<@{?{|E3+zb?3 z0v(pp>FqnE(;D9^txsBfm^Li5N-P?+KT+~;oZxmbyt*5~fL2?#x=-dO#8I*#!3og) zIK9_@t9n2$j`HsnKj_7s2hrhc8$mVD=I@=+DA4926>%^BHjsue?w}BSF5|w3Vh6qx zJYv#|Dbv-bwOsc>D?dTlt<;TN$3?f&?%7FdaxxoMz3^cB)Pu}%w#gSu{I0A8$?17f zg7G9QQje^+-buw(#Wo7+V>IV(M~P=(aTO`dq=R=eJ@8M)OV!9be4+mAGo2)^n$n5D zN9ouGAx%)^$O#yHTa+7g9#wV5>C^_p>IDER`4-?ipW%>jL2lpKY(VM2bb&iTY{k6n zIG(tc4nQdA!?7~>y`HBU1w-Q4yz*Oh$y@y-#zrugMG68rm~6A*KSD+ai-xeD^{2L4 zO75H!uSo8s{s+8 z!-E$-KGp1hhh@Or79bS;`^et7=5!M1vCq8Zbk7XUfF&!%A_iyQBX9p+k`mQtW{06a4TkRjL=efW1+Gz*xRa*4^vRv}Qe zs@5jPGaf&vKJ{85@F;PXpLCe%PhXUp`ZvjtHXR3t($w`WDFqYPzqM5J*x^YtB%z{6 zGVq_vB|QrdvDDrcT1Y$2O)$UYJQ8Qfa1ps{3#TrI6|FnKk133z{h3dJY|Y7NA;XqFY~*Shl0W@zj>aH@CTkk0ndN9F4J`T=XWwX8ee!P z4%-BC((>cEcw>svAFWx z+9KOg^h)zUI_DMnC;~=-3LQKXlKqc^{H^6Sj_u3b zK#hA}cmDT_r6aV(>OLiX#0PTrmc7^h^OyX5rzPyiAzmYjGJazLgzdP1WKEl`oE8g& zGg&yV6A{sIajBS?n6!-B)cllkpT+tS9MOM22G&<~JSP9kY{9n^OW5)gim1#N_}%ox zzXSg3OZ+$k>~|!73#;2z>~KTPYC04r@M@ga@@>5jQRv^VjK# z6C;+Q^&6!JXLj~qXU6#Z8jN?MUOdBcMyDz+0&(*nCJc~&Wn0xg*rgGc7E@NXPSRB} zASdrp3C;?>8m9u^UbmNuSgN9%1%`vgrY5HOus%tdDE$sT7<#8iS+(p0ROg@9^L!FjS2XExxedI zZ7u$eAQ{-TD*-+&P?gazV5FmyF){hj*4BpW&b0ee(w|TY_exsrowRj9GAT;QR944q z$)YK8x9vg88)>YXEBs2qYqCy|e?QsZ@kkUrJ>Zt6@m=~2;EI=H*TE$8uO%RkMA(OW zbL~DmBPWA2&&ziM#~6epx1@tfdh#b8d8CjtZVD~lFI?^S-tgzgk5_+OPRW2>X7=y+ zbspRTf>)C7E@IyZe}D@~sbgckk{s95m8&!M6h&Y*5Y5I*#3AFk=2Os5_o+KjZ9>?j z$4Pv2nP?a zO4avdZtNm`id#Y1NN01^;GJtnPmxTq1Kx~<(49zA<<|kw(m?fk);Hfc!xJ|D$Kk;* zxdN`_y~7)t2mcZ6X3zTa#6_7Oe+hEh(T^l=yycr~?D=G_C|3-a+9oW2kl8)HlQ58R zRA#eW5ZxwN62RqTaH61EuL}X#;`P5u*IxdwcIzPiBjC}X$2VYAg+7P;$(-XH9F5=p zFKjCSbIQocMW#!K$vHWd3fO`AjvkCQ(x6|x`tP_6HUd_GJ1?zA1A>`X?H^hFKR5LM ze({zZgs!JHz-Z~4t!+P@AU?U6_q6c`z}^fF4RDU7BRm6w!?llZlOGOa=|#vv=dahW z^rACCoy?Eev5|>Ggpu<9{Lt^!7clv5sST-&ZEfxv3G~0feFUhWfQc1>B}o8d(h*gL zKkLN7N|u@h9~3_6CcgJ&i8io~2gv^`C;c5aOp<-r?mRxh8Sm4}1Qx&p;sH(5{^bjr5IGzgn&0#(8iKpvUw&R?#6!Sv zmeG;z|G{1U5Z2Tc)K$7sJk)|K^rdn)nd=uJg}_XZGtya2&Oar(0P+B)a0e=q%tR1S z@_@oW<=--w*RenI14zdos^-5QN#9E}A6=J71-jLRNLx~0{fx1X_W z-1lHLQrsP%UPB&-{>@ni`xOx0`?;5w_k9Ze&lXY3t0vS?ocTnm^W5AeEPoLD#~1%j z_(D}Dua7_Ep~mV`_z}O^734eezq#OGGbQS$KVlE#)1)AZfBT9+WP6S0iwM;ZM}!() zx@!6T-0w3c^j$lYbXvQJe9bbQpcr^F?CSro1B=rU0l*W_!4j@HRsw%`k{%2e|{JGT}B6Zz=lTb-zz(aEB z^}zd|U(g_6{ii%npAY!8P-d|XA=A`CqLPBK6``%zbX>n9Kdo{QfKF9{9#&l z4QTJByw#CYdi^7kQukstAF(9cUen_8sx!oECdY?KlRhz*X~O+2}V= z4tml;pbWJyFQ!d0EJ#!`+0FMrNLRvmY5IFg@3`_Kju%@dNCgb$ia8LhXz6c z-(3pS_xqRs#<{c6uW~Rx0B{~V3{h$x1ehI4utL?$K!y0b&4X@FAN?vVjDf5a=d^M4 zt>=Nbo`7(UzIH1qO8geK8UDrOGcm}r#LIznC;)s{8+0=8WAb&Bw}{!7&lWcE&Xl>m z@)TWg=}K5XZ}nvf*5uNg`tadwt$><2KxI_RHcg#+3@%G>GvI+c`H>3T<+VzSop{^= zqS-y8{EYEXT#&QR^B;}Ari=jOd=N4LAqp#n%x%_5m~TS^>OvqcOAHJ&0#*PX)$!=xV zT5F>0azvt?)J7&%>r9A2?O4-h*|)fNOA4<6au$Cjdw(UC{zc7owSH z{p8}}YQkKi+g7)$(Ch#KC@{RIRdI6kid;cpZ~y(-$ZQ8L=ErsA>T=f>s)!bCm5uLK zm|pKn6nWt9xf}GYYO&@;-;9Rzl2S^vB5OnJOww3S5yB^;)n`3ipZ`YeOJ-*_&62!f z?|lN^rJYG^QQWNzS57$PtA0M0e51NLGP(-pAFXf@SLxswHbW`qDL(4C`yLB&?%Ez0 z!1}yQRhaeaLyw9bd!oHsE>$fXkfd7rfJig$b6Malk%KhYEvotdjs*O?D+*u`8?afj zAUdEIO|MM3$FKT13%Fqp0uiIIS|W26i-A;juz&JTsZ_O!Gx&bLgVhuIu4~>87{XvK z&Ba`x_$f8GU;Y}4$ys4KbI~L$fFRBM=Y;W#rz?_T(6KpNF8QXQ7TUx9) zim|?|c22K`Vy0FejvP`6$eGqzzTv2PI0l!c?I%rYF+D8KSAE1&m;r#@g_J>bdu3K*;8B}+m)}Rd~-g}{4rHzO;QKFY+LCCy>$?(4gk)cd7lD|W)>Rt9b)w2 zxD3REUAz$757?{uQnixoTuwNP=U8R;SuK&UOjJ?Pl&$6n$q4IS+&pR z-Pc8e81p%-RzOa`$vO8fOJ+Ds1Uj9pkxsyj3ttUz_G#ad?9t+zGOYI0fxDKzZzZQ5 z>~fqzvuuZQMCWQ}`#$$HtpTM&{1O?MnQy*0bTiwGGH+$9&LG8e>pKnU;SQ~n*?`gF zT%DhMXGmrb!6RuwpWgb@x&@**`h0V-o1s3E4XNm?3Cf2_ABgRu8u?FFnotv)&fgXj zp#nRHV;Ej;Om4eX|0lfurK|CcEtV<~3$h<+2>w|g|EYS$Ut>wHpjWT)lI&I+KNzuJ zZW#iO7ZZ&>jZ@Cd)3PL*secmi*|TTNj)lB1<@&&uB*pKvSXM#dxogwB1Qe8yKfiJs ztQq1{KcO_GTP#L>$vLACK(Rc-N{jp8^W2P(dTx%35hqbJE>Ew~T>qg&sys72ue1xE zW9Rm|C(GDkSFyLWRNB}SpZclah)-#f@V>24+OD0umvluu$$DMajreREFFWs3at{xq9lcG&NU2pcv3j=ITR+U#}27oINN+n7yuuUAjUobIj zjIY}+7NyIbi=N$7J@(#fNy%W1Ti8Gd(J@Q5J$|Qc)kRLV9u?LfqI`N7w$o5qhp7U5 zj6v(!`;C|(<<#MMf{F64WO2s_v@BQ>sGC6Mw^-w|Hw&UYCFSl1Z|_kxcC9``sihfH z_;b!Y3A8LwxLe;KbWvIAbR*8JE49^F20swPTQ_oK+mh%-l*C+yIj(P>S;+oGm6tYS zE|$n&TFjOfr~9>Dw(^VW<2GBo0-(I~HUnjOgiUEQ`dAu~W?N z!L8|fd_?|Fw=1y40<8D+Xglnl^{`Cy7B6imkMWMnT+6vPVc7}^Cb4r{uv0)s>iYa% zqVELr3;%oTw?OwNL3)Wzq5d_V&`cjrIoFTftvXE4cNIlD3HC!kW)SliHBIJpIIF~R z+CjQuY+rtZGt;ND&1br=(dfM`+h6L=lpn0O0L++~j?`Fp<>!%mMs9``1t&^g=g(Yv zeb=8xs5fleGI2tD!>votCd2HU7282jZ1iRdm4@OB0rUi3u5>e_*M7-AjUwv>w;b&)1X!O0k$()5L zdYjNkF8!UOmwQD94__5$K3=|HrEdV+ID7Eq`^A-Qk10q@y8-$7WdmWTW@;m?M(4NC zfz&>-Z}X0?G?J1J?85mZ7+fVjgi6HkI;FF$SeoJ9uK30ux0IrA?KAqBLy(&S38UL> z{5#xlyPlvHuX5cQ#q&Q#fOa!_d&_Oe9NsCqvScChMn1&?sec7#w!(C9gd7_wiS?3} zL%z{VLO$j|O}lvP)Oir;R!R8p1zRvC0)7)^o%nS0UqslYwAzT z-p9&X`+VQj|C#9r-vJ(%OJN#_ZoL`G?e83vHG8gy*Sm}gq9ufuN=1tVnbqn;%c;0N z(VQJv2qMXlF8q)u&?W-tm0V@6vpf<&QkW(Paht|SiE4dR%nXl<`vnjOb^xmES)DJx zoE7O`PaPfTer15cL~ER<2(>Lcd#Yc4hDfitUOTpxcMfM~8KDjA~u=asPmu03eOWX}4(QpbJ$4;E=lQ<|z zSMY{bg}Pr}ex@ny;#Z)^=~F)4n`OEa7Az}~II7ub0XVto-s8qsj_uMy^9pVO9zf+n zg$G&orkm7he<{Su+KnB5Fg&4sqW!t6%#WtC>sogsJ>clS0S-&`6YRWdmv<4f%46Cl zXN{-Hl;OpbA8rtTZHb|oACY&FPkPf{2xm>07q)D`SRxSI8}Elpjoyx3GqQW`hUlwa zClFiLIy4-3G;ID=pIL8SDX!tT?i+1_z`K0G^UZomG`Z$q!xiyAu-0cJUbE4?uxqy(Y73 zaC$gRNiIE z*d&`##cR%Hk(Uwd5iSTeh_*S_|r_zh)HKXT?6{UIPV;2E!d~pl2MTlx~^1OqLLOiA$;ELStp4y>=SjwV}TN|}GK{}CUfsxOu zqe;s?dgbD=O3Q43guLMcJE!<(Gkm?rsh1q*x<3{pkTVY`9ws$7H@MVt2A^%@G)h!G zpI?X>iDJUa#Y3=Q;H0v}05GeYA#DM2NzK$E&ya zEFL-dfv;$oJObI1aBxZ=h?{j9eqfUKXQH0R3k+PNiLQSm?#q4gbejLvQ+6^#@nMuj z9cpvKIB9yX0XlGK7_)(zxx;LsZ8;h!XrbWesm|qt>Kn^jDbuxa3ydR%jfNdnYs7j9 zJhJcigyy;8Nu9$LR(LTR`bH6d=D}ZQa0$hK{MB^voId4r0ubND8d=cX)@XEfoOj#U zBz`HhNw6u3gHQe9uRnjiXuNozXqpRgrcHPM(K-F|_n0_YT;F%^KVzh0l9WT*z*hY) z$mM(pCAS{VE&gb2TNh+s2;1+%XV|iV~`~aa>Du7ajhhYI$XS zX#IVtoDDyu$S-%&*vimV>$v)!hUNpt1xrCGx%!hYAB!_Rk=f4na5q@ga7O6*Q_kGG zNt2G9bvc&qOSk8*saZWt<-zUK6?k@iyTxW{pmW25cV~0VYDnTX#PzmenG5YU?dM@G zt(7WPJxL_SRPd(#?BKJ=PY%=56;w+-U+3OW(y#2_g=H1S`1#W!D~h!<>dh%xxDiO1 zbDz}-`|6HLFhbAl)KzRG3rR2Fz?sCsK%ZrZDDA&)+N=%^$5m9$3}m=SC<{x~&($hU zy}_!f00e~SuU)%_)!ssWXH)A+7ARu_6gR9xdhyNX6xV>9e;wqN zuzoqsh9FZp!4d8k>&m27<)KI;we6B0&i}jTPe6EdJ>=!5w4?B*bj0G4WsC+<07ky4r>nIl=@5+>!!p% zxCT3`fT+nt-wl9033C%8VyPO+JsP60D4;lNUb7_I8u}<*Z*-)AUHyID^W(`|>W*3W zC-;0#F=?I?C&>HuBkNO&ks>}3;{&goU83J37HQJrW4cG&)pWf?1xC5_v)r}%lfxg_ z*XMZULsC_QK3ApZSejQD$EACyRKlimO{<0{x&0QtuC)65si9|HufUEKR>)3DGMkO5x*kR6~k=VJItpyQ1g<%_(c2-Y^u`Rg|Y#P1;d~ zSr$ZbsS9B(ZKlI|YP&BhpATJ0?t53cN!Q7s>Xa<_q@H@n@Pi?H&&8PaJL zA;R30x4l6Z-iTC@WUe=uxpP|Fl0&}c$yXLqIdff2Wk5@2bj`i0XQyWJSoYk=@F7=_ z;2_HyuPIX}JUwsC{i&@wX1ztHwO{2Gd#JbC`*s42i;t;UR7O##iG^ga`Fae@cXpRq<=NsD4bC)epng$ME8DJ*W3A1B`^m0*; z6_K{RHZA+vMcfqMHReU*$?R^P?1wV^al(y7w8!D@vuc;s*c?+5b%HBbV((cEe)lbCnx=OAX2iIUj!u{3g=Ws&BB+T%9iDpMPNifw}j7@tbXi-g*& zi?!zy@SqH&p?ZQx9TrF;;@fg5{qFllenAS-zPSeClOZXlW2a;6w|5hc>?d#vi>$^X z<4HuTpjwz=miO!LxFOprB7|th;(@^5iMz(T=A4b?g~X(fdt*sCxfSaiQmR(yFd{u{)_p$by{R*7+i$3q3s_;MS8kw&&V(LP z&sO5Vj}BrGO1IBS&z_#sZWO+N?^^t#vB)S64@&Mv2Rus6uZ?1j`{;n!S3d(j>i!)C z16)t}CLUWapj~U{{?ulo%qnD8bNyW7+exoBT`ojGM&Daf z)m^mz2S~%R`S=&fb2938&Gu_VNhfiz1`V$(3 z>`irJvj{XRzpHfO)x;bl57Dn53*zsoi&6GZ)*HEH!|p8$v{^jq{o<%bI)UruFBk2A)kS@v;z_8V>i9dfl}D3@KKTCe5V{QCE2oO>#-v_LElRZ3xQ! z02!;xyG;SL^)r|9)K=>!hi8wRdX5-H(j+H=Ag3s&r81evV+-M9vZ+M36|2b=^GbrKdh9WUDgiqboRxNr>CrozhEn!FQGWK8B zE$OVDlxnxudI+gbB=RdfSb_`tjgv5a&*1r9FajJz)$ND(t}f zh5lzD;Hmv$_6m?T3#Pu+9LfW)o)2z3J%aF6UEda4R*B$WXgc+dp=y7#Y8(h{X$aSX zAIJ!Om8C#u$jzhXwkF?DkYmJfJYEVpW1z#(iJb&oY24E}>rR8q6k` z<-PNmT&jsV`HHD$Oe58dvbP?$TK*`c*OuA*{*_K$6`|W``^QR%W6Pt_`O-Frj4$i? zu}??v*r#X`oEAgYA(Lop5*m$Rl&Ezam1W?;HKTPj1-%AY<;Th3>NF8)w@)J^9+)C; zIHc%_@RnRm6-0;oszk2A6F~)SYO|#oH{U6v;_?lZ!9o>R`bX$EyanaHc1+QUF z8@WqKl?hjKA<9b@-Uth}JJ``-KDIt9Vb@}GXt&%gBdu*QNP=CJFT4HM`fo142+KU)(@#MpmG}92MtO0esa7Y|xBgUkKg+zUxa0&V zHcCns4{yEv+)MfxG1(YC1Ge|+wUEx&74}xe`4rBHXj0}kP`fW-JZ^fi*2O4GSVXbC3#*v9@INgP;S(l zN6F(jr2jZWGoM5AFbC3i;MhWq6meNojo}yjsLQz+#8RH#B9!NO-=VH<{QL5zJlASb zl7OM6mx!uI^+I^p2gs_*C*k|o5Q<2G#Z@ibnL3hf z6DkB)!!nMm+`yi_=m)M$E%bQ1cGv0Qx-d_kB!z&BL**z0q@{8Z-6N)Gy+USKg}O?I zRjw&aolER?;e*4wDz)mL*!YX}qZ?d8Xc)IQ`ZA+Bc4oZuc#maPyatEz;tuSTCA8Kf z!`UXT_r~}WI>d?RIp4`0s9CjZKa9>vRo(jLd}8_0!=q>BR}uc>7Ez0yi8~Liu${P5 z?@n6zSQ9%>6UnGdneQd&v0HHO*`&Hpu}+!AV4+^+K8EvG`u@-IJPli(>+pC57w{dW z2VRI)FBqeXO?CS$aZb;=62-8GnvTTQE$eOD%lxe0{03u%zUHLxS?pl6cWrgkVFwRR zOWc{-Q)m0DeXe$H>=_Lm@@%|0m5rU|)ZSTd+702(Ts_3tfE68e2<`f=i7ww$?|jm! z>?6BUzRX?}CUC{3gJHrwd6>(P<>?1GWLS+{x{}v3QMZ+<_Z$4CRE$|K6=KL5Y{stJ z*zZg7X1(OMKFY(*l(FLC{}M(iH=ZxKGam$B6`K6Gs^lCb%9eEhk#`Eeq(`BCA%7-% zBlqTd{%mZbk;WETD8Bs7XyJaY@hPawy|~E-vNmH5N4k|(V!-TLmVMIOVZA8WT18Ln zyds52R;Z0y2M@Z~NVC|+Chncs*a@}s`R9WxxuytEt)CTQ z>ynvQ(q4I6yg^lIvu)1;D#W|EGq+b(D^8($bb6wu;;X&aTDOmUH{B{m__qzRZbR1C zU38&iD@kGUGg^L51;|}fO18w0$Le(hik>&?!o*GR38!T*xu6362EW*2kR?8k-?vb);F{R0NMFQe)0!go0Zv;JYa@<^)(t~}xgTINhPJ#W z;8`*7u^n5-Tw$`}HjBQtx~F&VaC>+VpcaNg3)tR(1|0n%>rkK@rje;?Cy|Szii=sz;a+nCamE+2q%i-k%<~K)*CY!r& zTBol zQFM1iE2aJh^-1IE-=0>H0)}w0eiunr^g#n*utgZW92I>M@b+yuF{`GGx_Y!>HfZo} zeUYY`kW_H!;9y|+`7 z!yEM^1#!_Q2AU!l*-Nr5OxzxlM3 z4X@-s`moYYGOglVX=X+xB4fOI65??wa!mB8{bmL0E1?xBmV4z-$1QimW!C)~W%?h| z@6=f1Wk&R^wh19tUS4pyEua6s-N4V}=C&I}CH=!GjgGqeWYYnp@ufE5{&GggE-J;h zwH%~1Y8;N<23u)}jbeBkWdW$@+r8;&}=fQ959NlV+*F56C3^l{{2$B=<-16^mo^B@6g{FB_T zwCvCRAa>IMtbDPRP_{#-w+%`Dyn-%l{WesPw=U%&7hdGN`vjmu%}*mr^p_|1B9r~n z{8`l{VYSkgEY;;U>J+g2fI_FeQN;xQoTRmxIu6a4M0UY0*7b@nVKUa}11;6}sHvOi zVJ^`gMsE&KubQK8T1!W|r+MCHZF@36n*pI#sol*nS$)c&CS*;XHo}y_KjnqtW`1(t zq8skCy+XgN*Kx~RRhrbVF9>ODy}Az?;TK@!K81Pi^X1=6$B$mb$O$wAc=U2@4<-V#dg zJPAA!UX{-u%PXlrUVie-_Ka*~Ti*7pUG$EtK-z9ijdDjokjV(w)he@o^vgM!yweHZ zkRb`ZRq2iim*!I~?yIQyb=!1EuZqxo8=LjghXnt}DOUW<+j}GNqLUB*{g*|lWFdur*`nN55KjcNvD`Ib0Ij1a;XXL-%F+Hye#dTk;3HQ}!?$VB7%*#!PsL z5MTQV;s06T8|Tk}5RBxd5n>cTmo~N}*ZLn8CL;Mb{eqoo==92~L#_sO< zSW7FJ_om8UxE-o}K`vtOGPKg`BJl;G!*%a!r^O6?0WbYX-1BlE!+3k4+pJHI8s3mQ zpVCh$@}%nI^&`XDJEWI7_;Odv7FcgA^~*ID>)zSMgAPru3m@nq_xbJFtrex$;LJZN zD!rJQkFoOB^I^p~ACm-iSGTNQr5Mj-aIZbeTr*@+lLeW{H~ax2M!%EHRU1y+Ox5*W|?vN&qIYXPvN6iVLZJUfv9pjpUrK< zYzS(zg6q)9M;d^?$ertmBB=)3CIHEioOvm9!aWpx{clP90Fi@@Lr0lE2Y9T8EMA{b z&&G@QQq(RD2p0;7R=Ja^w0JUAyc-UKKI^;n)&KO4dg{4+ks&B$x}&vAS$Z#+2` zrKOIe4S$PMfOyolG>R|$>aXS$%O>Zo!4#X=Zcxv|@}+^Lyh4Y)z{EKY`M-PvC=xp( z#46p8C6)x@;@9!13B!Kn%yGGo(9w~MM&Taz-7|z664-Nj6V)H?CG`Tm%A?jLe)PD> zXpFO&;-!#x)ih~oG5-GQRXd{uvGzFxINQ@yAF1^j@M1kx%zeEP0O!+Ud&;T85nU-s zU0@R`TMa!txc)7)WAB97RF8jn@^%BHGNUJ&_rYZ5HC)0Cc5o*ec>h1jzA~z+wF_4e z6jTI3K)OXhKu|zh1tkS(X%&#}*mQ`93eq7`N=i$2cu+c|1va5{ch{Xu&-p%%-yP$Q z`{#_sKHI(4df#{UGoKmne+t7E?%cfQ>A7|0lY1p{P~3Str{1|t_=&K*3m$Gx5(JGuPf}L=)Q0BGD$942V5ZzYk|+&u_W6gdDu3O z_U^H0CuW1U-aX?`0;qdeO;~)(cFx2#OXPh=*4n2lHQ{}S)+Ck=H2-_u;&~znZO87Utk5vH?74nk(mX&WR=C32? zwf(R3VpE#8ck$~v45!~8d3;q$B0^%e|=0S?l~&= z>{=(z@n^mXB`e?20PnzaJ%6aPiu**PI7UXyZ_o?HrN5rMSWyO5^k}=jXS;C@(Xj{yx{$km4agTld%AJ#IS?{~?afie)x9 zQ^dOdx_}tx@3mg0^U^OC@1(IC^9=Fpb{EXTO2)AoyI)Ftd{s&me=U`oh;G3fPZ{iN z-D-;tcS*^YGD{L;IJ7}lAgIstlbEp3>@~ag#W%OaXn$Z;iP|Vx2uqi28sYxEbpDuR zo39z|yXqXg=r9zwvI@R2czRM`ZLj4}1eIcAau7Z`D8q?(dcn#Y$tXV)1Y!GBQG$(` zePOwe2A$oJq=JQJgB#@Vp~PtEKt6EOq%?6#)E*t}P~^?s^AvLaIlO1X_xli4+#OZu zX73lU4Z9jEC^ly^JNn4Dx5_unyqBeojP)I$9c{13HXDoO2O=Vi=A5?CV5 zm_54VOa4fsTH(dei2(GOpy&=Sn}aI9;!{>zw52q^cd(sy`RZpX`@y8GyNaTE_5>+ItcV66prT?&2u*+~dCv0GsZ-L>gY@IhF9)MW51XEWfk{Y6 zD@86geS_<}m9nal(Z}aLK2B!wGnbB^HpgmE2l@PrC1VHpHyHk<5kQb#5kVF`z5XA! z<=7W$1mWzzZ6*3lwd80t!*u*dL9h)G!JgmwfcisbfBhN90D^1A0R^)*Zz=hI>!JU7 z(|>NMOS-%>DyKzs)9m{-G6B1fIzFQTIiidH_{Wt6>~bh}+ps%hDg#Z^M0v;RNTred zVtV}s`;2z*MK$q|ArjmQ2EygKRiv6KwkvqGBA_T=n z;}k}A>W^0}J|pzfo!&#Mf?2{+Xt|e;(WF`_mQ>2VZR;D8>DQ-VC z2@2l@GdMVykeZqUh-iCGky27#{qW%fAqmN(i?@OJ@nst20@DDC(^4xb@yFuqD?OSk zEr0G16XRUiEcb3qPG|mWBsSJ*$%D(rOth~^@t_3-0esIKih=-w$~Q|MA0&H#R)FHy7dePahwxkgMxyvj3e*C7Hzily>rE<4RJ{;+-pB z+!nK*+TA!UU-#0J9frxEpeSYuMX?ieeJ)c0aSUM1fmYfDd*A+m5V4$<84+=NmA@*e zd#_H{FhjLPgzL?@zvMxmxeKhE8)U{pm%39yvNf=T{b*>di(M~nrSXgiQ^@Mi>%2c( zBPjwJ(?^728Kq`hy+7qFEoxP7ZoJgMp?!qhQio-hZqx}8-e@A{=bn{t<&yl-*K-PY zdv2Eru~}=X48nJ6wPE zPoRh-gP3T`Ed6_9YQG$voXb(4cQfH}4O1h$cD&#M|8f-FZl-4{qW0TFZLm<{P^LKA zw*nC^k*HBR+MA2(uqDN+_^%fO?#yq$<{xD_Txm1&Z+FJiQw=2E+I<&iaa-Q1ekb)g z+i~mvTP<~gdj%(R-7xI%xD^Exz5NMJ=M-}!B5PCe)Y;-EFiek&%kX)qb$|Qz0QcvLLE|aueSZG2tFp>l! zBa9YT;8rrgG(wo+Zf93;RjcGd)#2{k%|W0K4?0JA^TFywGpV8QGeHM=-2Vv)KWW}N z*wH>nXdSB$+%UyFd6Ef6bL0+K8Cp$^Zr&$!TF7IRdZ*0VYx-o%@n`z>&D~(LLyICH zvVNF1!Nz!(RZTv~VZr!0^0+Q>M6;lT4?vI17bjdkuDBRuko5u*kZ|A?|2|}@`8jrF ztiBnB5E-HbSx1#%Vo&r2gwucAp6n)|b0rS%?tRN1mp^g^#kVQhh`%cribgU1Uu z)mOW&ME6YrmHc2wsrV~Gxe@QP|05xA=FXNdl_Uma?M_7M7UaTkJ&A4w)qsfMN|)xz z*6599$UZSnG)ER2-826zj39-I%%TpRVO(XBLgGDDO9`v`4)yncKmku+u7GU58o5Ge zA|zvFSf8!J?LNt@!6#zDd&i^_%}Q66RJ^ivsH;ET*UCO{RrURAtqPkv*+V7otA~?x zGl9l|V2*a-WY#w}06x9Frym-BBeWBo?G-=l3EnBO(HhW_tRq-5Aqi?hb7t5iW zxcKw#Y;8>#{ghf+WcA~YF}fsoXhG@1pSl5yz$z6<5Fzm?WPXhF&fwy9xX(3q*ub2p~eM@lAx((0wamI!E;xEcbM$8k2(Hq1N>04S&eIB~P z@3H?+=ljVMK~e*KNM(5ahcIE7kdJ<| znxtZi6zNiJ;y{_hq5nQ=B{S(7np0+RpOA7jrgiSgVu|h2Ayui>PRV0b6s?npDF!Z% zWfed11c_+Aiyx=;N?U6ZcevY0efkLfx);lDHsH=ZpSH9 z*v(djN?yABsCgBXL{am>&YpUNzwF`wNv)t z*L}CtyPMU4yXcaT)SOaFLft3pA2-y6TQA+?;zSB3NaivxheA}7i!)`k&9a&^*g#bN z#&ZYy^`Bus&IX(N&BP6Yn5xC;6PWFc zqdB4_@wjjNE-Vv(E9NVUH3ZbFa7ARK^~}>3$8mPo9&-1K)3>8K7fzO1?>tlKUysU{ zT2J(~nXAqSNxY>nQ|_3k!vwud{j6O1 zdu|NLy5{ezH^5NKE}~@v_Knf}-%`Bj>}>EYVs z;NY{=?it?Yb}iR$j%hdPbAI!Yg}Lq0NxAqfErSvdpPTg`VA|^3YuC>5=c+l5AJX&O zrktfnF7D+sYT~7}zv*3~J4&fDtZ+D4dOUsN(Zus3w05?eLhO>pgr^K1% z5#7KT5&<7iZP>f=w;!LwXW;GH11Ja>*|{B;AC+IOH0#eBu;c_sYcPAamlZ}$$aFh2 zq#%tD?AP?Oz^8f_b@sylD-D_GDcENTK9p9e&0T6y_slJUYu6rd8@5rJUIb*bGOc05 zpvuH-sgi~uneBM5LxNM)1M5<|)wgC3ul3O1)I+LR@;sk9y1u;>SWS10Ek0L1C&W1w zNEL>pH4n|JO}3PO#N2N7AT1;cV4eI-)itVIZQ{|b!c7rSR%SC<@e`QK7mHv`^OHkyNzK-3^geDwmeY(7o2;N`r%5{(-%e!~V?u zBg_3t%S!*4fjfJPts2_;yZfK>Yc;)!9m&$x@(c>$86x5=Iu#|tDjNc`T6-X=O=`Ms$<+}I z66e)FJ@VT8@CK=}&^`GdGyW*jGXnxY_ZVhBUy49Bg&%K4{M^GYrgcrb!A3myH}85d zXf8qQ;w@-<+JWo2t$%s%$5GiaYVWHKSgKwh$R3;Pk3?)}#5Um#2TywY3wC@tw|Mc2 z+Fb$vcuqhE^zIQ8J1JduFiW6`S6K>;1Cs5Jn};nT<_3M7b=npp(Ulsj5myW!@7K>R z=|kJV0?*nU0{x2Tb5nQG_Hn3NA7YG(Yc{rCXwpq>cxF&HD&P25j^q(X-B^Zlf39h` zf4s5KuJl4uqC@v9_4E6CqGB~usD%kqo5*19uR3p3m?zJY=EMYLd;9;0H;dA}Hea$P z8r^qQok!9AA)k&*_0Va(i9*&Q)I(mL)#f56ZoS+UGRNY_ocy-t(PkqS2h^+;Yd~@+ z6DQ=fE`kgRTCK$wH5viB8FipBH0luD=18M|hrE1=6D90Y}v%n}g zN$y}>EW6|cVxSo$0>Xf~PF*<~YGDomrCG3@DuKiczp}6YEtziTBinf}8{QGvFk5cq zJ$~ikRg$%Ua6g03LDU0tn^>sBa!0vSH?F-f=(Z5h%^YFA&7xRmvNaj**I8^~e6Z0d z*e-J`gfSO>q{nzlQpL`2?@}OE2E?L0+AcpA z7>WPKEk1z(84zl;@laVIC2*0>DZU}+(FcanT!$J3n&~%W*Y8De>Sm)VAx`Pc)vLeh z3tlnP+GJ}eAjmbkmAq()$60i%Tx0r((AJ|;A6SovdB}b^oGGC%(W}b8-*PL!shC>W zk#;D3yi+HSxy06SiX^Igg=%byWT`m(a=eJ}JJv}nmp<0)rOE4Nt)d|!w!D6$a#f1N z$y2gpi~L;8M76n(<5f66(oAgh=#mz)&c3~BuN9HjZ83Desn1y{ukyk7Cw=j67w|0h zL$pMwK2!=>YCTVqv^a>2f9lq!CQ6v$GH0xqjHVdi$v(44d9zIWl)O>qP@>sNUoy%U zn>YSlPjpH%I{9SbRy5B%`eSWDed2S& zv{&}1%H!y;Ge=i+VJ};|T!S({AR3jFsW|GsllUlIMp?%bl|&(DU#Y z4{8y8VPgsSzoZFkEfdw*X0NV9uxq{^5SAbY488z&v#LV*wrtEzg(q>=DIy;gra}!{ zjD$=@vhP?ii_i^A{1M}f_G5Ri^qP=fER24|%1VpmArO4N`e};+`;%*lAJTa(H~<4_ zz9!JsCImvz5;$T)eVD9lv7O!Okh)>UnEKnf4v@Gu7@$LO>ZjVFP zS}s+26y|HEk+sNx#vzw`TY>M+hnDpW8tIm^me|gsZ{t!~2q|Vf^kO9(K9Gox8_A+( zm+ABG89o}XR8Y(}@pFv#aS}Zr63;8!Gnb{g=U1UPWYb5vk+Lf*`6nW+~P_Ef@7a8~MgB#dxWhf=^9a zHN*S@`jusUTv~ilkeg<&X&=7&PO4C(aO&p9&db_7>rJdE0h>>Et?DnfDA>;y&t4td z-MR+gO^5b~K1_GBdcyiQe0+K&W5{u!*wQk$ zIY59U11K~Vi!Fv8(#3Df;w*k){<8O{gb0=2x`Tz1o8Qx{b5+)zliffKN_KsFtSYz( zeyknRM-eCdIhN;oUDK>_-H?k28IO{5wMm6v+1L9cI#qJIT>6*Vcd5=wNSf#`Lvfe!D$e+E8zZA zQ%uxf!VhmTSL^k74&~Cd|0HHAXTwLr!$sSR08F(Mc~xC8fLb`c=M4a;=KJ$C3p_UG z)%!m^_D1Gs!7LCWQ&Q@}#QZZ$NHp$&^`9CF&*FTt!|k(pc*ORZ)KG9grpc|sJ!QNF z@y|^)jZ}N+&be^c`YNPE_mj7PxhNd6lQk&+agwEL=ch?(EU)=M18DB`EnNs~cINZj zV}`5Vjs|21M#3=kwc(jig;B4LHiE6m=fE0C?e8NME^4nsI|RSIzO*zo~I2gER!X-o9!G z6Qf@_UF_ zyxxMPHWMK*ug%E5N4GAcJ;f{>YE{h;;}ukA#$PuKP`ytTZ@=>MZghQB{h&H4BrN-o z!bKTN;_+hY_H$%~l~QCo+BDRV5mCE+MdL5DK@*FO*UL*fT?FCq8YSnG?wvDI^$V6uGn-SAuc(G>01^5@JQvbXK( zFDhAGp8Q(P9>p>exR_dL2H9*^=J*&N8A<48dAJaGX8z-70PElAMpIo;Xl`;=Zq3lW z{<~9ECX=@%aF-i9kRw*;^4MTiT2EH*Iz!r)lzhfk+_&sp$^)13&Eao7<&2Cn4(3~Q zJt!5CrBdlL6B&;-2FOM>Lt@L-OqcMccPq!6bj0@t!av7;W%F&$i)S|3aw?a@cPf6I z^U!S&<>==sGDEen0WM~^2oJgUlB6t!?19h@rDaX;%)QYKu4+NNR{f6I*<|fKf#eoOK_NXI&>O4F9&J7Wj6#- zAzJSbFo*vfdHIW0##Rz;4ILSMUHFD1oH_u~9M7G7U&L$ymiJI6|7q**{Ol~{Dh#8T zSwaTxz{N&O94O4Fpi=~r%3gDQIhtruMn*=3z1r3bw`$xW1V2#i7O&}oG)x>X!}@8A zJ#0{=+Rzrp5Zjv{4oEmTiuE~mfhJAu(;6q<`dW2UfFMv0S2KGLJ1bad@h%c{S)jF8 z)U%52mYWpE^dAT`Wb69Z3sm-)zpogsNZhn<8I}8RMkRS|+>%ME^HwFEilJgEY63}R zoBq>?R;U?xX5y^_HSdz=&IL`PqImB4YoS`aSGP6XW3D~SP)(P_6I(X8ovDqYms<)J zVR)k_6?r*PmZC}`M-Lpi!`@rQ+hx{5lM_F~iEL(OSr(H0$>Jg@)mQ7&^%i`Trp`-G zFRN`7*R2mGoqo~nw?!k~xSTT_DOT^^H(TIlSx})-73r+#ZHJ(uvlC=&rM3qmdTOPV7&#=7UuL@`dqtu{uY%yh{^kPTfVE0`k|gof+TMlU!z}5R(E#VH^$fhEJF&&% zJI}t3&+c^PSxjQN)yJUk%E){d(%Y6KCZ6U;8XD&md1j?T<$Wb3dns4H5ReG$E!|$I z(u{2D80P%D&BA}R;Zt+OW#hp*0*QOM@swgqzPgQ?13?b{D4Oxio*1T51}ut+P(sq^KIc{hBzF zRV_OSrpAiKlUCEYYtdu>+p^Ut6@$XYI?5k34_SJUhZ? zIjn^^2D3()P*ygM7d`++yMaBZl7x7l#+SDGWL-sm!-$rG*X&!Bsvtik$TWagj|KXS z2Ncw2-)4e;X1bKYFyOH}!|dWa-{}lBP7W%ZHw>e`ur;DFb}#0y!$o|Q^r@f6K0(s1 zU{dAl#~VWpV1U-HcfvD1))pn8)LSTiM^8_$53_p)EQO<_VY))$h(CAu1%`V@_Ax9# z_ZA|4Ifh(A&pn3G3djTHKtO4- z4jBSYKVRR0=MO%=RXU9_T^gi7E7V)HPH*JS_ZM8&84VyJmC9w6M}-26{o}PjC#x$@ z^;mJb&1dmL*mda+*w+|JewOdl&>S+W+lb=zYU$)E-FxG%yEyDZuA0|d=Vw46z17>r z?hyGZ!2QaSeXFrT<%6o%FZ7E2%g>~(Ui}#6`X6 zHYCp}>~LrL66Se;x=__5uwqgp&ElVMKM3O7 zq=m#b3M$U${r`Hn;rivV`r!lt(p%|nUPoDqC)lYRT3qHUQ!S8Oc;Y^^Mkm+%PdLZo zE|AX&j<|00-Syi`9}6#X71gYw=;<@@fa>Fwc>g%_3o#1B&_g|>+mxuS1WA@8H;z!c zhZhAOgcOVO@91~SN<}u>kUp^=0`y>GoV)X5VC~1g(|F{JYg6r{_6vfKbtSXu znb>zD4ucw6L#M_woV3SlIu>$wvm7#vmrY!Zmo)@yExt59sjN1JFe%^8lY0LZ8G6TJ z!$`gCX{LjAteS?*9O{MO4YlG$tw`(Z0}mH8i&{7(r$~sBZw=ez4hY%o%adIz`mkA6 zNQIIm{rKQp!ID4&RED1vD!}}>C_c-$@#aX*UYF{F&FBK7jyu^}rBCdI0B;`#16w3P zuqerM*w|bkQ#|q3m;yuh0+ivKWVz3K0G4uhEc5!)W1sv^YX>;Lr6w=3RIUDzR74(t zYwrBLTTTc(mf%PoXO`Zz)W3wlCfm-I>eo}HelNi}W^8|%-C~@ZL})I1*@ZA7r~zXo z%QCTecbRZTFL^3KM{VcRFXw#gthXGJemG__*g)#q$%?P(lc3z=#?3o)Qt|xJUjulo zd7PP7Ur>%zDnUQYW#j8lgSC8QE(HuVT{IL8x#Uoj7Izqjg?+hWE^E;Kq1-*D3x$3` z1BExALPM&4Fg>fC-Od0Dzy0EStr9ye@Dd{ttCoPBE}2)8T7AhN>m*{xk~2~Zc)3L* zWfW7cQL}^xF@YJ|cll|_Z~Zhr39s$Z%>cG)#GijGD_=i5e_&D-sUa87&tZa!IXc{v zUmb5`Kqe+l#e0af?Km%wdTq))@i^Fsbco%>=C=P*zANG5p6Mhw2+5p3B5(NfC!v*$ zRed+c#)k&LYfnJg)CTCdq<}`y;m~mrU5ZrFLl_(LJsyoU*yWD}FlcoD>2lNlz=p27 z{VJ1JB;5+hb$jLzlC3_Z64-2~;XVxIE9f(YuB-p9tU|h2v<3UE=?Me~vm_sd)$l zypO{ab(ltbM*~tD!51zd`yl#<6MJ|WC>{(|M>bctoX0xUXwFk|a`HO2Kbvc7o#UQN zJcaa7Z|)lAtC`lzI*9=a27UDc+Pdvc2E;UFkk5@f_g`o3Z>*-6@9g5=Saqg4AuIXg zUqGS~*L$P6KX5X@aW!#s3pxKuj^~kXD&8dajq+9*0ga^|fVniy` z4!4b8{dk+nj_hdfv z3-$V{oyqNw();og3^i<2+$GH0XMH!rfN!KeO$j(jjD=m_VO`F5YY8J=o7HAUfH$OZ zdUc+j%t$nm)c>CI*a~h3!Yu)@y;g8t@sHOm#wlSfNfbDOICmaUNoHC%@5@o4vjUm# zraxkN_#wUGL3)C+#}ZLI{=!EuA_QL)f!%ulKaTM~zgCm{3%ymcj*)2n&u4$1*drn< z1FL$iwcsCDvZK{Fq(hRVm>>$M_P&ff^b)o6DgXa2#IGw){NJnL9mpg0=W396L2}7i zMooL5{XOG9r}04KbmFt|b+^HKw+qN4cKU|Y{SV9lkdO$#tYqT$*kzoOJEJf{kEHd* z^XDZ$c?+P2je`J?k0-(}U$6=VxX}G?=u;S^NNJ3zL@&k+Fhj!Y_9C)ujn6P+%D?+% zuXb?Kb0=-@KBFyFn=DDWZMWhGDIFunsj-Z5Ruh1q@;2rv+MPpqMi&<)R9 zPXHtZ&1S2URXB`E@FhAPXqZOu+Cy`#Lj;nN7*PJjLiy)IS5s+f>}Y_kg_h3=%--X; zMird@V1jJlwIH~qbx%NKiz2wF4*l!O@$fvm=rC?tQKU}s3l~MhZu?@^^cOCwZ!&mg zI~CqfbShS1?*&}&O$IA$r~bx8)lC6qhV5L)e{YPlxU3HmYN==H;nDT{=Ln|allvH7 z!YRx+gxlj6a!Fo0bp5QCBliBrX;j5E{8x;Ac8AWoC2(ub7J9u~HMRh=bZpZC_ekh=P3+Op zJnmRBKF)RsJaOdH(A@3le*nDu=2_Qu{y1@@zq(9GtTnSo{2Z(UUGsNt)ZbOqT4~Mg z=SjavZy%i!UZaoUppr@mxlw|6Pc}e84TWy~`@|sV;D^}9gy>hYpYbEKmc_OjCNln< z?22_FEMO2Be%Rzk|2fswHOTrL=QSn5w83j{jxev;{P9o_S>i%uiG_0gdHX5BAHN&N z0P1b3gsxyMnyy03T8nnZEjXx>9wU&dx|cLtQtjGAIoFK$If`T0Y5Z)hwaGc? zC;1YzhAYAnvYMwT_$n+bPQykYZ@ulX%k+;QfIn-1`wKu^Bv^kY^r`8rws%kR zQ|&z97ol+=8#JokbI3jF7(c_YYfMwu%z4Pv`wUI{FAfseJl$ZG=XM0l;_vc_@%- z1a{jL#you1qjXi0feZfs1Bi z!*3$=fWHLSL4un6#Sbn_2!5!q8wotSMUMleliJ<;&tHv4;4lV(g7Ts@KIJ72n(;EG zK(RQj7uGM3DVK{Ubc}p6Ng%^Q{{j~beQ7o)uu22rOs=>Q0Qmif)f^Ma)>vAszi*VR zBsJ!K1p$5fRw#S+&isP~I7fyN3EEG)NoEYEL>Z!CMICYpFeRC~k*l3IF*%44S90xh zY)Ra^f7;7fu~1rNbw-q4SOA}(LF1m6^2T9&29J8-TPYJJE>J?t%YepqbRJ(M%dOvPZ>`EWJ-EF4Xyyc_2ogr*;u_p^2kh=f#>~@C$3FQ-5mswVpX)8g0zFu4 z*-D?dq6XQ8>NcUVO>DS8)Y`HdhP+NSenNZ$4e3&22L=AVy)z{>scuv@z*OPp%w^xjiuT$emOc5-ffS))mi>ZC9MhdP%t+ZZvo`x7l_z~eWCZ-&M zM)-xjZDgu7_)|kL`q%W@qHq^(-XdFm$f#fac#2ZYaY`METQ3BOXHz50qA=qNS+f5u z?I7Y{b?28%GE-A<{D~5$eT>z;@^DUmNa}6feo}b1p}1nKe9h++yr38NJ1;--z5#{{ z$1(MmzJAhkU*G2LG^Iiez`x1-jmV$!oaQ+$=#IaE+Bz%mJEi_3hQDQO-faqoSs{l_7WRCxE3@r!UU5LGB{5e*i^@n0~ zRrn>fe_JCFp$!c27w5>H;GvwpnC~p<6mW8v=*wc9O856*a_w?TXN)BDQDSthEkHar z$6!!{obRrd9dBB~2d4}C4za-Nf5PdPu`mGO4T!z<=NvBgX+rM4P7)1U9%@zPkZg*S zj#|d+LRz6l@4~ZI80AeLFK3D{{^~r!7j8TEFZBURf(XoGi3JJ#r!6AlkCy}A>|apy ze{1s5TDX%IUn%^@P^S6MvjUYuq^+N>B=k}{)z+W-?iSJL$E)?!kY@fx-}A>lfq}Eb zD8@oTK29ITgF0v?Nrm16l%Rg$A#_}i12+hgf#tWG4%**as!o`lY6uoXz^OSEtFNCw zfBxM*=WkT9gSrAPhWy16_k*&##q-*GaW_eJpL7&&8>mwgAXAHCM9JnAs4OmMKOSU9idmom5y=5a7uMIw`w5*&Is?(gc9?_#7+j zvMCAAxe)gm&^Cb8m3h+R0lo=f32wpMHA+KGc8!7{7-1&`W?(E6Fs6$vALucuS$<_1 zY`CW{Vx9-xMTM0pfJu!o(Yp#Z}Z zcrlAzC~SY=j6tO>UIXJ!8zgb@@gu=vnDk-)M>_bs1Dp(cbGq!bUfxOohl|MV4B)ur z;3_s{><$*8HXzb-j^UYw8+)G#vKDkzdw2j5zn}I3NSnl-n5q^ui)e=_-+|5;L@CwF z;ZTXyV1WKO`B3?8O)a=-)Vy?dr=cJZuqQ&a^&>(&72L%yn;JmGSFtthGC%Rh|V*LNprzRcj?v z+s*m@&P?^|{YNHZ{1lg~5y#BN$2vV=c^6J6#cNyV%tVOJ68!{G$$~C*mcuc~sY8J_Q+%Hsu zRDNT;Xf>l$i1=R36X*&e={rY$Lo!1z0~#QIFpLiU@_)+>-wZQ6g440eNIQ!3E-b|g zItM_qZ3*D#h}BJS$E{cHK25-?Pmm9ot@(b&5~9Io=otXiP&mMl8x{tOvqWxiR&6K1 zgb!)pqFnecW{|iE8NMXIHz)jcC;cOpBr@PbZID%~yU1KKYcWvt@QVFhZ{eH(D_zic z5I;hfQzfDZA!6H+$7W`57X?;@E*QT9+XkF{wZGpRxDms2-FNP~l)<|&_?#iOnU+$b zA?Qw5k*U7tM!@B|ZN+6jyj}<1$AmY&$hWyP(^L4=W@|eCchvBsNLcOiw=wDBR?NK7 zqEPFM6<`81)Hksk(jVab4+QW6Yjdwcx58tYNRBrfQBjHb(HgZt?@UrS7LfLx0tR{h zcvi8$+HA9k=3h_*6)>wL%7v{3oP8}TR+h(g!SZ=T4M6pSNg{xo6X%;|7ov?z8`sm8cN`FK3gVUkT6{W;`A^i_m4DGualKfhPj^ zpS;JlrxXNLGi(m`ozhgZ-cg5v7iT}+;B4Cd0}``$3-xr&uu;^)&Wup^4cDs=Xzb0> zEYuyizR;PN4Yl+Z=_&H#j|;KB2cead)fA+|2FM1}K^HZ=<1wY&)Go35@Dcx zAIN8U2e)D5syMcdtN~D7^Ui_9II@-;a~przD~N>9P(h66*Q$1uqZTRQq*Kq6dGI=H zWt07>&tP9pN0dWDrmk$>~-{mCt$2>7@%^0I<4GAA}zP=Sw0CPgTON6$j)-Hj;iA*DXuDhCaE zOWjcJ!ZR{&((7nn3Qs`gBEi8+p`InJ-6ij7D=YMD@Sz3MgdH~hq{f{g4Xf>@#DPdZ6x*e} zFtHikcGn%W4bzjdMPZae@4b$MyJN!KB2{(mFl7<@EJ=69LVte!PnV54U5|t01)Idz z0tts-UJ;#d^>Lz6-b3(rJ?xs$KCrJhf*A2VQ2vBQuR@l-Aw1#rxbwJ4PugsFj~qG z9nH92Xb#N5=jE|U{|nyweHHW`0oL10+K_Bwdy5`R&U z5OUk>Hyp6&m=vu0GGTLc=vFDb;iR&)I8_1=vjmRNY?FnvMowM1>L&9kx=Hy{)F}e2vdIGqg40*(L5?Lys@w{T0cE0q z@d?^@rgB4NMBOMB0*t<7qi3NmJR`t5K!0DWoqd49`^l^3Aunc7y;sGb7)F$Ks-7Q@)ou*ObFV?fp42e+(AlI%I-M(cqgj;80VxlEQwgtPrp3wv%k| zphY!aMZ1d=1_ANj*C;T0TxfE1cwhkdr~#KI!R+=gW4y*B7H#AT-#z%D6PuXjt~3YU39)@r1WQ3;wr-(GIH>N9r%KQhrjT;}c*ucB zeKwI5V@V<=zu0g#upY*C3WRYSj};0vFP(N>B=0ht+k zp7GM4d8C@YV?Bh$Z#R$1I#7Jkw`cD@&}Z7$F5`P>uu&DsepuG+m>Y$adL}qS{(RFr zmHhQ@uLgdMgU9jB<1?#(fCh|VVM$?Vq~No-$~qp*Btx=L!lu%oEjWS1$O19q;3W`jkOd7G*B2!E3jpT#5TV1Y?=Cvi z|It+C<2|5?Ep}HM z5SMXL2~I%Mx|>dlzlwsMLcOIr8|+yn_3X?*VMfvQ5C#KqV+Z8=5E>=Gykuj)fIECY zv-q&wx2)QDYrf=}AdUO>2kK>oa@@3~o^9nIi3K@*6ER`7*~k+x?R%~v=%b%!?cc?R z?1gK|uLVrx7w)8pt`c|zkdHMo6G4BhYxgsr0ix!hG)PoL7j$z=Jh}dJ~?o0 zi47^>^u%76{iA)8c9a~6?f%AaAFV25TkKxlRRJ2mMASUg@_|QJ%q=o{`NP2yy`!e*ZL@X6mmc}Sz_oT8^ivqC%)7&Swstv@ab_bf7&Q{YOlwVphXAPv0 zkV(aum>9qt3lLwcj}IEZ%~F`d+`d2$Jr<}7&iSgOPB{v?Zu9+3*ixIaNA<(8HT_x# z9+XG^Ze-20rkmPDjC5yM*dsy+L#`4_GX)bE;D2~fa3xv%U_kt=0dDvenIbc~Jbb-Y z?zQ;#sH3g9;V8lDTWvN|!+UPA^v{QSb(Bx(;+ql0`bX-obAuCUMEk#JE|`??I6~KneI$NF60_{<4sw!@k0jY~Ca`Cg=xj z8RSsF_qqsa0I3TUr;i_$Tddff!X=3r3)AU>svW*Us9~p6^|psJZPTJnBW_#TYrXy| zV3N$JZJ>8Vuw#*l7~SD5U_YzBDTdOH;6H4{Sxj18{9*N{O%lRE`qu#=-ExLiwc|8F zZ^WH!-)%xPnd?;HCW*SY$nI@v<=2C(jfK-DH}ieBcxd34jR#f~jJIU9w(AO8$Or0& z=`-d&@+DdLxd;X1nrhnhP~vTU0dC`WLYnD(CUK+N<{2I#ea<6>BAn{UFV4kOHq7lA zHKY9WXGhyos!pL!2_FXQH-+^tY>)7|vUx1%=!uvP{xoikV$eEIIlv;1U)|xVnrY?a zWU#CV5q5@K%qi4tZxagw=Z2d8+jbtUwK@vRx1xYwmMU{tFgeW3$hDjPMt3`!r^U8U z+xi2&HkE|fHC1c8MWbu_;2!4owf}SoI77^ebU3#fzVf+oBj~yX`lgbEE=iX|$tl#0 z<-|c1b^MCVvqm??(a6&^du8^wBDqo_Rbz#7&BI$S#)t_s4(n|-niK~s$5V95(iw6)Vq7aH`Lh#kX8yu< zN`H(#Qz3mpnUdCLzJ9KB zv4|J20!Y`Y1)44?yqtPr;>f`@gQo}emp(IV4^$VB=@ox+n}~e z)&pIO>eBM=>|RFR_hVHWujcsOwYLf@R#oxWIx35|!Z)+xY|Ed+@n%nhEikR>IynFHz`TPvPxhlg|6hFtp`t)avJe=w=6oBxdfYWw+`3F`;&U7TRTucyn`){4e z3lLtn{r)N_=tN|B@Bny?_(Y(ux{-WJIj?#r5GG2MR+8Oz6O@dk=shUcKCKjKT(vo1 zDjfH0G=ML!`!=l=cFeAypq0e)2)fZqxQz>&2|a-k+~yX=g#mBREzHB1>Q~sP8)ol0 zN2ensH0;9B*b=smJ-B`BndF5FSE)|Dkzc=Q$`h0HOfcslPoBFx^JXHmUzMxWF50Tl zZMd_?gxUFx7)+2{GaTEs);&__OmagNkIEhX^;N(7FHu6_VIJD`)r9+m)Cvz$HfLxx z-F1Ghyglz-CzV))FV%Y`*hy@!`6n?A<43hBJM%Qne4p;pl+v)$-FM#?;MSIbxxz*vs`sH{{Hs z>(Rm1X4AD^>)lSZSOIGZjZO z(snIE$bMUt&0OADEMFoN7D?7E$^Mks-fEXjFaMdUk2r9#a!Uugd>ry3_o2sJT(_Vr zK@){UE*9;Joq{E6a3%)X_)B?Jm%KnbybJfVs93qz7$^Mr1V?|H0*2R#3(K(Y7@Y?1 zylyps*oi&8GV}5z_S@?7ly+s5+<))-%Eb8&rU30)0XEf4Nt+Bd`Ke)Gs#kC7X9cE# zVxg^=Jx%>y6clR6sAlO295Lk%zEU|d-1Z|_*7n?)D<_knCAfm@F&XZFm**0)$8g~K zSDO{1cE6lV87sDTx-+m&7INho@oOp861^;&G3O9uzT>yv4cEHLy++dUUSDby^y7AY ziduJHNEC11sO!RSif1EI@&z1bU}r`N6(o(gS0s zgl6S5twraxo^|~AU>Y^1;kYm4v*hR~F1;5O%YU7v_7-riIHj9OAP+JMlN+Qeofq54 z9XkwfYOGfS)MUk(Qp;N~PIWC;Zk(kgaWJzQQiwXb&FMzS=GaY40Y0p0%9aUr3z{SE zOG^8lim}6{hV8){n(kfEup>6rP7^5o>AZ+9x_|AnG@q^qRk>of<0^Max4K(^pw2}4I&8T-3owcgi5D{QlF$(*z5nuSb#%vBP!->~*~wk+Ro z#BS0O%)^>KqPab=q>nL~6Dkp3b-LVBY0B~zHVTluW``dvh!1>S4)=G4A`E&BfuG2@;#M(0afOyxC}%2iOs{Jm zdQYAxR{U&Rd}C^Gr?0%_(ex~DS<{=;pJgTiIiF*@g6qdiHFI+1qrda~)Gc;ha8}H- z!2^*Cr?7|+>6*OkyyovR?a-g^6uaZzG<%Sn5u+dRrnx$D?DWx!qik{+pLDKGczd3h)A&<;NTm54PlnKH1H)v#yvU9?wevLHo{M(jy_4{?)&TVye`lH<4DrD` z70rTea7cN%f z1AWL(>xl&D`jP^OyQ?|t#)SqeuUp%De6<&hPGH_5Pl>#WtuXiI76GYhHcx)GFU ziDjGyZe{|$3(g|e((~krKT-&vnSiGQ&H=zv32nB3sjBhaBBO zv{|0^tP(qd_~VM|?q55$oy7|3O2QJ^R!#;x=L3DyYxDWkZuGIJW`~@MA|-8FPJ!e9 zvrp7^GikrdIJbg^qLbfg_Tx_3-hp1y*H-O`z4+nKV$p!XJL$HAk2_~0bS!*H%Q>RE zv%;@;T!v|j4a0X#0WHC8^zHrktdhUbvyhFOg5EfZwJ11N)klY#>8e>K0p{P{d*NC+ zvLg7g%Jf$DV)T<|VrjUG)3%qjrS3JuOq~T$m+K@N^)#PjfeJ*+F5HBjoO`w-(YJnb z#ze5J>MmVt6C6@qu@(**mGc}9zj5|=+3z2Jw}uPzI$!L1dJb1d$EtYcPluruQHxM5r!}UV z4l`)fc<73E>l6#TX1YjOSzv_w^(mRsch;KszjD$9I?462t3MKPU)_*Ta`Z{JU|XD? zN+da?+c`@rV>RE~(`+EUwAVUiZ(+_pR9`U@?xp%}?}>+c^*n`=$LhE65J9y&-mQZk z5v0r`db8+(5ntzt2NZGcSXW#3hHFV@jk{MrPPLCx=pAi5fE>%0AR3CRM7gTcpjUoDWKE& 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 literal 0 HcmV?d00001 diff --git a/static/images/inside-rust/2023-11-10-parallel-rustc/samply-parallel.png b/static/images/inside-rust/2023-11-10-parallel-rustc/samply-parallel.png new file mode 100644 index 0000000000000000000000000000000000000000..eea47eb38502930d1d01864cf0d155063058fde6 GIT binary patch literal 227628 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 SbCI3O00f?{elF{r5}E+rP8g{G literal 0 HcmV?d00001 diff --git a/static/images/inside-rust/2023-11-10-parallel-rustc/samply-serial.png b/static/images/inside-rust/2023-11-10-parallel-rustc/samply-serial.png new file mode 100644 index 0000000000000000000000000000000000000000..d83fe0d32f229cb2bd8d60c8b00ca64ceaa8dbd9 GIT binary patch literal 153838 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%0A365QPs^=xa|Gu-Pb z*yQ^V{a5<1FMmV}4Q(HSiD>%vqFm|{N`3m zU2Z^f;v}GMSB(N}f{QjiZmmyO5HtW~eN(#N1b!+BM}CDf`^`^C2j_YSF-QIyUyT>( zGF&YJ&2MkLtTfy6c9?vl-%EXHIr*SD)#v1-+ibN38Iph{H~N~K#9bA-G$4msD%AmX z`STk1u{AlyI|h`zgw-Gxt=cv*Wfn<;f^i=A{Cq})GW46saQ4Vt5W<&h)M+1#FxBjY zW3|v)pAv8Rw(N;pvY%pm!VW#8y%yy6*Rs8CfMaNEd#c+uD;N9&4LZJhe;`y;pDNYV znaP{h4;WTu?M&+(S*p4AZWPZV2H)of!5eyW2eTALYC&ENUrWYAw90~-=!j zIJ2%sz}cL5so@rlu`z&d(@`AXtKc7^1h!>&id*9c%UzEE+##?oz+D+?EQ9u|Pms%5 z_7j)uTo8;9>)wIgu{9fNXg&=(o86GL=fjD{R!+~-og)+M*JM2-MLoHtO;b(x99lCd z%aL@wDT zTo8M+o^*Q?817#t=pLMM$8y5a7e6Q2?}@0+ToZw|PU~ihe(`7=j~N0IG3^%i-=*aS z!X@8!1=b0i`nx;0&1@K-5vtR!R;t)PhmnppFH2vRR2Oo7=aFD>dj+Y_@$wMsZ=OqL ziE>oSIwJKWS9&!bbXXQniZk5kWrE6{b!~Rv$vc754pn8c00?Qc*(9u{R0K&^lho(c z4DB{ymQC*RhGuq0!H7_sn7bQ}M8YbK7AFY9ArxHUW zgGix$@#~RA#;XQGNpo1t&s~hgB{trGFgSG4^>$vdhn{wlpqe0lsWY;LrK-7Rh67wv z?8O7F3M$KGi>aib2ad%LNG%BWUcI4IJwLZ)anRxp`75o)qNH4Z40!4y(c9mtirlH>~XEZ_ktcwS0~iY4VQXJ<_LA)n_14!-J5yB>8Q=UqKl^7Ke{qlKBd0KM4_hCOsKiCh#oyC zBy{Shed)ih(u~oQF3A^vNyhcYqxe%xLnqoIMRWnnw>p@!B-8n6pEBTj^q|1H#hznT z;T9ZWtK@f%RMXt8f}CCFe7#q*zm>5DNw+up9l^Uy2@|Vf8MQ1%ULp&)9q})Ny(Iz} z6)g1Ny4jQB&e_J{vUt-{i-*H2C|xG#X|C>~+d?f1aHx>zZ0K!Y8fe$s;c?a(e^!j; zDd|h%p~{`ed$Azyi#Kl}_^*ojx|FE-ZH$GFqGdj38v0;Z1{~#b)tbKR9a~zdnQSYs z4~l-3HIAWTHZ7Qjb}gx2q^|d{d>9y9@Jj2$CXd2!m-E_7!}P%!SJdWeT}afKBIj&j zs5ffS*1xvx(6UTqE9`5o4hE@Z1hr^Ooysm2h8s%aq7REcca~ZRSu&x$%fHs#U*Y_h zV?g;5>5}5cm$W)Zh#0G+_oT13;@0YzHwDsIANIDiHSsq@aomP)U~gpNE82>@QfJ)7 zGFP+c+LwLr$uDUErsAo!nc@Q?H0Zs@MOE!flHr!Fuvfy1pweB31p(;X!S35uaMb}L zIM#Mu7uMb|W>%f#u-Q;vbpm~evqU`VoKBQKX)R65EA{jp4YJq=6=~-7 zHrTw|$vL(j^S%e7Hj&z{Yd=iGm~&@;(kQ=v(MB|Kch2e31(DzJ)*p8Fs$+GJ@_(fo zhFxIE!#~VbK)KzNa}Vp7v#d$_I{Ne1mP(rhi5+fS%7MX)cy#sE&H73-Gc2O{_^KDQ z1bLI;dUj8=e%7bLvV@y&J%_%N7(LoE1s`1>ZCONJhu=z&kxXpH+SUsvOFz2B|?}60Km9?_k;>~$R1zfWmszvxwvK8bp zZu#ThfBDnS7kKbXWigt<;o^$E#@Ue;Y4lP*9-NRZ%(rXvh#=d0VBJ=}=g7KBJr1!V zC}fz0RqV~yhjwK2Imz`89HoI>8mD!cx<{NQo5idff?6T|Tw%O>zN>H;{6v8&+)r=2 z*-fnqojb0zp`{wLrKPRk>fu?31Mk6_!l|Ou1YG6PG?`>kjv;sR{L^@9LIulCwwp2e z8o7IBjsdG8JB%1u_o9sPJO#WS_a#{`Z9X#kOIoj$Abb2bg5 z7lp&pn-fFQ!Jj25q)D{8M`b#Hpv>PHP05K#_xik6^c*^o(_P%N%sh2$77ZKpTsb;Q zZ~C^S$#VI2_NNm~-Ln*#w8|I#oHv9%L-XQFrT8mKw*)(WcpvAYnMJ=J6&}`zmbAQZ z3%Y#)UU!_zZ9;9bidmY2mGdp^2AZth<9g$TaLGf3WhTJEB;qzq9_S2SdFRN?>*0n!YGTT-V)~3^( z)*+V*eFxT$gPP*RQJ&U8Cn!_QY@N=r)~3$GjKz^gY#T7@;?{0{gV3hruqY|m#o4B( z!;eMkY>5J1xUW1ZeqC;WIbg9hbk219(J`Kx#n&=OBJOwu@&0P1&O+-frp0#aW%1(C z_LfT{c)Dq}KM}cZXOd0jtj^)urxIQf+$|J;YICxGQp(h0aU*mZ%W$0uLx;_JxcGjn zv8+62GE_=v_Wk3+b%Xg4ER}W9wUXRT8v8hEll2Eeo?jYo)QOMSG@DpWaO%ygSfbL* zvbLqSMQ_z8xrS9v7W>_fK-gn7rdA_E%G7Cq)W(g|fH^XMGE zKZY(N4>nxp1@<-HKY~5+`LI&sFW>y6-F~q$(R7m6Q8OjD-n8`AVEPMTv~FBx!zg%i z!g6X6=@rxP0U>FP%1FS21rf+#@##T_-WGuMPBI}zkUh*DG6ge3c&y?5nFmyuIndbyP{>pnG|x zM;f@{z$UQ> zzkc%N3bXgK^_v2qv^$D$_JudOWfRL9<#8`3nddZ?=S~;(oHH7xS)1KaiJ_?En81=u zeT%k+a>f|9b_@2S|MO<538_VpmKzT^jgw!!1+?vC+?;~QvrWf3d`sslTFJSsl{O5w zp1=GK1Edh^@DI(NJMGlbla2H!Q_{5@@8!W;OZs6&2_um3Zv zTzjL?PKIVVHMN_A+tJK70r2XZ?gfjg_){mmeYM%fp4T+OE2Mqz7CQjm6-et(Jr=J- zudueq>zyr?>7DJN(uc-1rB0h*Up|~TYg3zymY6~+We}j+;_6;G;7pM@K5~M}%m^&a zw9RUpZ0x+*?p^L*>6aq%PkX>I1}Du5Qt?r?(8BooLbBCk0_bE1mYPFSdtlnHFpX zOgjcb{BDzp?R`!B?PDIYc51wP#y?QrRAtt%MjXaIvK)v|7(eV+`L_$i%C|_gI6!O^ltYuY3`d^#}c>`yRAe%qpw z9)US0Me0t%lGV|P=TS`bc10)HtFbxAt!|;!yK?&*79?Ivgq*r ztx?;D8gbV(*(7$lQag9_SNV{;ER|sk-uFgCxLf0{zSpslBv97m3Cyp)4v!HX`78=P z;CSsv62ATz0oFrysSk8H#NB*yx?B^`*(Om3WO_XmH94d`EK3dmh)#g!%_~&AQF-BC z|HP7a+a+LOdqhMnBU_^67ri;+&R4d7T7Z8okJq#jAipbq0*g`a3vMgtZ+yI>F6qrj zUa3(ku)*|l*}#O!ImRc)%@P{r7BpbH>^G5J@TG&$)~Fu~B3k$KHGNR3&vBL92Jhq~ z8B@Jb6>}%32P@K?zFK;$zAa%~#abzlDwu(Cf|1<4LUNP)nVN(>!*iMc9MC!9dhJlw z=<}=vv}@`&t+Ts#BS&eLxvw$*$;}VJ=sgp;N9SR|{B{bgP*Bq+{>`&a|87hZZ2tc9 z3FZ7w(t*6(CMjFUzivDKn~D*Ul90~vO)C4g#l+icnJFRv;6{#nB#{?HcuFtd2mD69 zB+|x34XSkikNBsxX8zsZrqgLJNzT<5$hIT%G9@;;v4L1J6sB-U2QF+6nNq#@ch&yO zd7{h_MiL!8TAD{G^M~=us-)>}KXGYP+$N=$ppDffig9x=rU2Zz|A{mC)};83SJ;g3 ze0#;PuPf(xmqUvrIwB+0IA-EFXX{`87l1HOP7+aY)qxf*N^*W@HWRo{1l-I$wLiZp z=`&*&lPQ6CROG}@e(~Z^6ea!8%D2>E;9~hKWKd|hAcoB?-8TFv%T@Y6-@$(k%z#Wk z&`48wpsV1~U-*xQB)UgR`*;hO(>5m{+mAszb3llys_y*q7U(y3>?=Q(hQ zOnd}Q=trx-AJI-rpI3*f**dlfbskx_-tw0j;5OABrrBpx9 z6Qp>wk}uu&p9DfgBEx0yNS<30@kHQ{9gbDDyGLzOOG?q0O~h@C((6z=8qSg!Wbqlg zCwYjeZ65)$jTQZ&NeTyd8=OZaf$I#r2^zUJp})THTxJjbsj`25@s#Zh$R880s)1$A zF9Ns2hA%REJU-76%T%M5`Fx%OBwS)g{+|^@h9p|GC-BT;V?SLVZo6ssQ>nsP<>DXG zU*C!NRLGcME-GhU;sUIVO}hS73V4Q1@HZ>p@%v7TVTVniuJIzxY#{4*;{T)Uy#ujs zzxeUo5lSMPWQ54f3>hUqJLIqb7f1l;e zW=I+3F>WBPDi(yC&ZiD6H=_BQl2u*(Yb}X+`DW$4HkIw)6H04DJN25K6>j5Wn|Uee zmzlX39HNxht?yM4ZE}@PJB0JwdTn5$0X`HxxDw*pbCBEtRc<8(qKf%h@`VmK8`ES znMj(bx%yL2OmOfT(yk+lB1P+bMg^)v6{GCbLZLdIUHEub@=K)h+6pShINm@hqqaBH zz~;C2HuP-F*m(7QisY%gUD_v2$x#%vN-b51hN>_^h$T+y2j(Z25L{>;eD~n z+C!?H@x`|9*l*1gX%mjV;Jdcs+{D)%aV><2LN;=`W}%M8#uEyBzq|`m(@JB=P)v;S zabBPQF4s}MyE)Bo{fOF$`9le{;B&^k$QJin$s8Wg-gu2QMgO9l-pQWfGAyMwL z5cBATixUa=e>|48(p?|r^fIH)6oQ)P75`J|n~=%85_5H873$LSn>$W;Oh|Omv7Vg( z!U8j^Afh!$#^g*YTkW;T;!zDy@u%#J%32z4DLP{bMVrmRI&H#`6rZVD0!!hOJ^;xj zR^|5e)7649-I}Jc>AZHgST8QtpBYf$o!PO=YxsZgi-=tD=F4$Q&0{fV!Wls-d*Y?S z8*I~9Jf)wK8`8Zl8H*Z&JlFiKC@1HS!HlYR_(WdYGeLP;x>JL$KLd~l?3wF%6ck{^ z^gEPOz9>a<)5-^t8tP-5<*lbYmOo2v*=3$9HggCwfdyads+r({LdF;h0qdC0^_}_m z>{HDfhI8hjB&JoWEGU!GaqFvnOHXm9x_-sECzhmQSc1K!IB zxRgSAj3|`Xbim>L^3(*(9uyz#B_s;GAR8Ha&im?W?>=^`cSG0D9u~ItSIIg_}qS=|PAEMkrfzY8ds&8z|Kvx1XXoz4ytn0r4b+a=&r z3*|dB`+uVr^K@rvp1FPQ=0jQw=Q#G?E*XF8rMMF=F{ymZYg>&Y|GRE;OYKicJEPz# z&E0Pp_8X(&>IvIGS78}@4^m8IIyci#o)WOud3boKY;fmw5Rppz5Az*mvi#Y!8Yrc1 zdP?CxPTSp444WukmdE51`5Pz)FU#JuF8+SRe*P_XG{SFT@+HTRe>YTFF4uVd1E;4U zJ|sxmBgPfkjP653@mz-ZO5-_56}1agC|)lun9Z;^e@zk7zgbK)df}+ zL|7AE6k1?rQbn?s;a~W6$R09t$^FyA>;=h@<4(H}NCc+GcDLp@W7T$n3Lr~FboePx zrU&AaX?m=5`X|$ff~o%m9->xoce8m$mPv`Z7Zj^<151Hvli?$3HOeqoIJ7B>#?o)$ z93-bhs3s!jW)roz&zUZ=gi0JPBKHXBfB7Q)GuB7xc)MTfL`~pGvwpL;yM?%fUxnxp zcg`L>gJ`5)9@3wpPG;bMHxmAtSw?o4^-+eDhI#%NR1v5}-Rq7wsCj_9x*a2EZz(jH zO(q2_08?2`0e)-yZq(%J|F{^^kGy*4N9Q_OC1G+n7fZ zpU`1p;N)LPC^s;XG4GAmXqMbL4o=1AM7x)pvA%{~^=WB}5m5S;P9f@E97L3_)+&@@ z*IZg4#W=`(dwCj)2zZ3Ea*~hf0bz@!=vxP^W2(){g2F{TCRA_0ScG4BUA604Rt1^e zVMF<6##3YJkCC$Fv=d|l3r3Qef4@To$J^5B*V<8(U#d>03uhC)rnF^E$&>ofFv}(V zI;49QJhxo@uVBf0pUY3@nlGONKB@yY1#LVgM6=058spx&FV>nPmrgT6X1sFCO`ojj z=dR1(j>+JTZ0255K4eikn0hHu4nXMXXgK1i5wv0`Wq*D`@Ck8->JPj0H)oambB zr>iDctqCR+QMxkx%s6OW3kA_TKK-Ua~i%{hUAliJ@4|6GB?|bdn*T!z3I3Q3?K`eSyG(I&-|n4#s`(zL z^ZnbG1n@5LBRF^*t{jKe3{aS*;V_2TEbZ(6oUXr31$`1mJT9|;>4slA6Ec7DXk{g6 z-*r;YQi@_DgtYaf-fGhQ+5NdYU%^G7l~}m1T_Hg3Zvng&G@0+;61F~a1mWKJrZCeL zm85gfI>M4_TsQbATtxY1#Om(;G{wn?$lcf0w!55dca-v*PXZyE=I+RUB>AFMaM>d5 zqXmQ|Lgv5d1yZ#WoR)tf#37Btr3oz~F&7J-H(4 zK#P0`-Gy5}nf7hv2|(EY`v&)AZ^CqnG@MU=O7iFQ8PUrX=@vWPoLOs5ITLk!4=>H- zR2h_?mm3JkJ)_0f`|*gNTZM<9ho7SH){lwqx1#M;4(mRScrp*K9F-KbanCH`+=;^< z9hM9~Rqq?($*SE2Xa{K$b^fZ$9?7PNNZZWLwH76h-Zf&Ey&nPLk5bex59AhnXgH^M zzW#YIewfVB%uh;NpW4dHi;c?LIGR-2WI`IfMYHG6-IEjUJ0g<9ug|EicXYtTBBaP- zNjauTIZrZ@o@|D!UB>E(|ETFrV(sh7FA^g<;)?iJ*cV28hyzu71~!c3WJ>zZ*e)$D zH5j(^>}BS1_tch@hR|Cib}Dy_3|aQfTsp63%uXr;pfXFmU97N_Tne`Xn{WO_7fsqr zY4i6wwe$1umJ?UXreszKWq-?jrMG)>+Sx@oY@k5fP~x+9l8ftP=vDqSe2)#8$h##9 ztyohJE0YK;g*Y!Q^ghEkPR-L`nS06_?w?b-!_VpwR8ka%zCQ7xWV%mkeR;CH_nzv= zj((o{LK`DGiCZ%Ceq4EPmY@3f<#B2mtvo%U=ug6})(gu@x~n;v-NO0fe#Xz5X0Z(? zaals^m8kqS{anc8nGbV*A&Pre#NLzn$=KIYmHD*mIOF)}8(y=wg_0B;B}u%hPV(U- zES;AW1BZU-De6RpKku<B}Rqa0(m~FPzg9a z#1qyDz8q(Kf%nJGL(kGG%;{DPl*}@VB<(9AT(GA4v8Q4)QbOzrCR8DA=~ghtB7hmi zQ0-p`BzyZ##s8ET(Pv&-g^gz2Q`Bml*OJ^7x!GRF;WzIeY~nTqIAvlFKCB!$ejOLR zjv28iAj+d8o-mGkCvj#&=Fp*k59b*QqrxV9u*7d`ba<0ubM)NGgOsJlM=}IIYc^bH z69$(SiF-Op%Ld)f5`{XCXDFXMjDfR`%XPU^{=Ub5*rk!Dhho1YOnQj>+-ivWDj=kT zaVuU1^;DtBxWJGX6ACM+tW1kTSpR(|S!TkpX$`V@Z+`QLtIc?S#rd-g$b^^aF`T{T z165`u@k1$4O^9J)6KuPbfQ>tmJZ)VpqT%lQD_ZzdSoNncx-W6O`&wD}w(1i_z@`1U zKcmEO7MnLs@a#9Z=uzQ$`G-V;C>&cW8+YJRfJ1;Y;BYua5a9*<$879>Ot^-UJew+J zn@^as>%8(3-{!Uj?Yc24<--1V(H!&%gIfuS9sP&53{~<8(aa`iTvc_fwYH1g;wZ>wP@Gj~Mhuxj#aMEM@FQzp^ZN@q`tL)i` zHn+dJmY7Y381)ZYDW3>#2O~_PvXj;gvgvdbe+>B$iVkx-c2FGY-9Og=+up>va z70KM-31KI*zl^IW?u7Hepy{+2{=i`!T-|c9Sm8PlL@Lv>Qi+vF(`2>r>yT;nOa=v! z&gP_k^5ehhA!0S_52FR`$0E>Z42vm<55iq_E&@0_lFT>bvv)PpHx+*#ACo5|1Z?z5 zDH5nr1UZ;W&Z!W?@JWC>f2p^(Xuw@y2eOc6bgXrLu$Tnd_~7Om<8(l0n!J8O{OK)%2~pJ4nN#3cvqwyyS+?2PI%!wu zdD75!cj*UgPJ()RbO&|1CL1q5Y?>y*iMcr&4!X2|uQ+`1v1CGa_Qd1cDZ_6^M^C-F zbYHi8iICvwlU@o9v&2HBtJOH_5qsx(Mv+$@IImDMbAwrRg zdE?(F4*E5t!p4BE!&Q}9$K(mSxXqb6%_<*CcA7P$UV|Tyg1hcTl|Q$8E8Giw%3i%i zNF1bXWdlWR3O+-P=^E<2N0%l|s9^c0KApqdp8Fc7Ut=$o?{y`7(1r5r8ktt%(2W%$ zh_F`3RPXhTGBY=SD9dWzSc_%TMjqfo3(@`)1rPiQ>Txhm-{n>!jQ9gJ5V>5vlv*f= zIk>YUr&`5wL3xMw3k+(xk8qoagbbT*|2b#jIdgoEcL;8uL4T7`rFz4}`sV=U3Gc`~ zmMixYHce~nqh3?NQqTY#$QU*2{E5Y`ie)xpUxpV6Ct5;sza0HT-~N*1E15$n(xvX7 z@zHt=)pOT5yM&B=z8D$N_y;0VwCk1qvwSK$XB3V7gq@s9 zhI7nqxedo3gPkq)6Hi=yz2r%;S9ujPu*?rX39^w(!vF>-D==Xp!&IWLJ}iITK=H4N zwqI6tf(xDFyqi;uAAM~V7Eli7!H(yH52LRxMBsw?x&SLD;)$W)j`N-lo^VR5e&4tG z&CD!HCk&K90?P&~3n?g<8A0lru;QE!Wnlsl;#3AB#{62;#J<1(r&Pr0F*h%=Z%*G+ z&@gyj&hwUdOys0iM9q-E<>BEgtH*b|C$-1!4-7t%-J7R=O0hVw`7!(x|9$&8p8I}r z+$P_QLmnJo;Td7W6p|L7d51@3w&`PKxvBo82U0i+>}#L#AbK4Gb~mcs_uZdbhfD-L zOP|1Zy}~Ogflpa>z8b&KThw5yqOl!C z5o4b*e#4_WqUNQF)n!4%tso ztp!8erxX$FA5kRZg2)22Ho|RV)ow=F=?`7|Dc@ID4d(mzWcnkuj4Q{Psolp<3=Hl? zRgUtn#YoXCUKw+9x;W^mo&NL;3Kh$g^B%9#EqiC0s@5quM~%FwUly(=&fT0ze;&_2oyj^Jyygw7xmbO!XV#cDCiScf+b**Jo&S> z@POBQGb(6oC$q4*9HWG9H^b1q*v1*F-4Q{4M64yAbpF27ey-TBA89Y4JmNTZMtO+G z#A4*%5OmWPrpOsU6Jk=HC<0}Vi! zssER>`1|OeA+WAjbWJsDWd89)SfF*xd?s$>bQ8}e0uN?d{m>|4*AI{v?Diw$XVZ@B z!gn7*fcB#G4Z};1vS{59fyFYybl+@$gp>5o$-=+uN>&T$m!@AKhC3HC+ok{k@`hzz z#02T?5T8EqSG25ftH1n^#lwT-QHdZkn@Q>5R~1s9%e3?u$qNBEN6&+awm=+@-t;7c zgI`N?yzO0vI_EHva3GIa8v{^EZr4FZxzrf& z&+u4e=1RRQUk)45-(4i*0XEt#i9&v0E}HgkPiN}Ty=2yOG2ccl8> z-FusnU1?qm0V7W!qv@OIvo33LALEH%@XI-I@KzeeJi4?uNvP2_Ow25bS^BK{+r?~! zu=ZeQLl%~kh)PBw*4ldvVz>NuTyf3=E@++&v27p-HjPcAS+Bw=k@L+!gJuY|Y` zLmtB+SY>MOfhTOHO;N@Hf@9>-D?mYN3M8?-Z|Y9FMNDT`4g9Fu+cg19WDIcZ*W5FY z#I|2hh`8oQ@|XtfGqM78nkJ(J=D`Et#>^iHz8t@jGS-p?Ja>`Phu9H+s%EG=?=~so zPZ8WchSm{M(RZC>wErwg76}kY_v>MnM}q)nnVGc2>0->l>ZkPBw}>=-Ak()*IALl7 zs4Wmm9YA0DBH$m8ii4!fdU8^eO3&^qnymcG!}_)NRK@}6Oh9XptYRS zD+`TYNk39e&Cw*stBkC5$(Aaf<1zMfEPhCgx%MM2B_0q&`-!9krTEvpJ0WHXAms5k zz)Bq9vD%Yzc^k-fDn%**3OqODn2_cP-<3J@9Kp9JgdA>%;Sv6at`mTqb+8F0jNnQ$ zGt`g-yzt^@P$f$NO%dnc{QyN{JUfoy0lbV^yPkkNMgx&uBU{z>V&T`{u;_ri4u_&Z z(aqGIG61TZkQ|Qspfg$J4qLIA2+glQ4LNygqb(E+jRD=VK+&LQS(x%^tq>KjZXJ97 z{gjXiX)&!f+wFzAXoOdH^)5Ka=RP)kPBXjv=md>kum_N}SbYWRcm-d3VLLV%(FUz# zyRLITfXj))#jFf~Xo?=TN7Fz#Y@r6QM4O=CV|cOqn;&_N&xgM37oY#R2gI2%q;eh_ z(VawYx?BmOW3pv0m_zqXnYT32vJZ8DA>43#tb~ev5G(JX*n6w0lK@-kxf3|;077+jufoij;KS$WGlJa%{ z`T3fzcR*WjW?jA@RhDh$9L}bxq$(D5x?7M4_^?%lM_)@B??OgGL3^(n<72|_$-|vE zoxmX7n(Ph+#|G#LFWUo~Db-A4Zu%WSeZFM1SpuW?fGfF&2_Tp}!?pfAlqFGWz;!9> za*9-R{q2d~+XBISH+(K22KGO6bV3%%Qd%~7%YwKEP~Q0ZR5~QBL}cavM4Wf{QqA1@ z^NTN~BqaAa;!A{^0M5o=Hd7ca;tpImIu1Xwy2v{ptNY*X2eRpNZHK@g z-1j)Q+1x%|=l)LXojt5>{*`zO$3fXMnV)kE4d33w;&%mFe;i@igRR)lGjEv}J%zp@ z;(xyej%^VHL+u3Kwg$C;;9!_d!$%O3R`;di1B|Q+P|LJ;+%wtDk-m>ySV=CzN+J^G)o$n z5ke}OQ|zvg%o7QeC~B`LfB^1<$nrD)KH$th*F0$e+>olahJ?u8h;3F+G#v!4t#d&j znx5MgD*ke+i0Vch2eX2?!3vy%=yZKVeQXxm0kEbv&>+;#xVHDD$c zaLNoh5(@`C-J-)s5Odr0dZ04i<*R%wgM&Ccv7a4ybvIQe@!p0PLX z#=t&hfG;>gkf>N-$ASG0HmGsqDp;QWuU>mQN$m}L06-Vi0lwr@FtF4El z(5c~>AfzYAEF!V>Kg0kB0PQ(+jlt;C+luXU0D_J@6Mu1m>LxyW-7Ulb$r2%2oV5M_ z1@cwpf@C31`*vA@9y9mRJ3zbY-&GC{-*x5rO(NL{uD5aV;E2ec-C3ytHnB{e6`%~v zGotiJpL`S>vSJ^p=Oe_u)6}g-MS!kzOSUw_UqURp0giNG_n~)X1rplPIsHvK!-l^+9$f)ehl7_liT9ZA{PNPxK!1tDqQY2&qmweq;wc7i_pD%R7T>}hX?ronWp>m+c8!Yfwu!H=VvZ;K%hbnPO9m~z*t(Yyg9sUH}Qb5rCWb62C^)ibU%xi2s@>wJt=US1n#a+NUl!G zo~}ux@sExw;o0Jwouw(%JfTnj<90{zusYZ|@hTle!yS&HAGWw2JIl#CP+rxqL=PlG za9yH9zjjJB7x~Q7d?AtUfgH|l;&W#dg)hZjJotgZ3|z$%X$+k&5Vsx!(mcmSyrxV9 zbBKwM?=wgwh*9uCBdG(u@E(y+z-|ZT7n>P{ebN>FmqCDBu1bDMFiwJ_4UivX)?%st{~aolxJW4$FC2e55bVr zYVn$ny|;sOVh0hlB&S z!rlT03*LwQp+^9STKn|bpBocV68PK8I9~|U=@zcQ^`l=tA!j~!mXm=I*`Yb1@LCS6 z|8SCS1&bGwDY4&fXhExUU&BYP=*zgoV{Z7WHm~;6A;dW$Hqm>m;0DFPYsM{~fKX6L zRiW?O?~RDvf@CpJ*@q8J?#zl*sF^oFm~fdHxp!+V5K|p!Rw4d;k{O~y#AEW-{DPA( z0uDN^^;z9oHkUG)>k{V?as9uL=q${JM3t=@`ckIb)G=ELn%vW8twt}Kz!FM9poPcJ zbhnv?=a@iXS4`}@`p+}ofKzZIR&G@yOqkmzt1QVB$>rl=0q^tk+^k4KB1_D8&cZB~r zl3%||cG93>kRwyY7ZaV2bDNSz_WPxOv|%s4Lij|;t8-)zywY!zQYmPC{emS)NMrl< z5*FEr;USVM*emCbo)C&xKaK71x^WwwIE=EM_$qBmp!t;`8|6x3?9(`pA;O*D8Bk1D zXlZBch*3KEa8`@E^6nYdyu`e`^o%mrH}pJSFM23!huG#eBpnsQY~pcHm^cKq;@;H; zM^$XT_ldqMX%2H-a~&;GPCOsEC{GY2skvlz%VF4dcj0oStVb=uhYi~|sX<<|Ikr2} z&qwP%b66Bw6*M;b?hLu>d6_@mKJxy9=R%JpuLZCCQ#r?;+apCx{!@ylyohg(+g^ES z(m6z0D~U52ktLdvPCVN5CDD&jMyl=om1PoY-gq}ETj@7yRg!Ejn!BRGQEz!~#!j8J z>4~{{N?PE2Rr&pwfz0*JDPwIv5?w?sUzW$%d}4|A%_h(6Q5}$74(o0lr&vjx`)oxY zz#LD>I;EDa*u%s{|G?zJhMcEtgW#2?8&Al^R{5I^&y5Yazp>qLQQF{BIW0ZdR3a(n z;w~8z<|0|;GH0x=>3LjQ`euIlca=Vq=wcs#BRxqk!uC+jN#)bhfySCW&Yq*mn|}6+ zz4d){8pba6uO*YptrgGS^KC!h)iF8NE%#Jm`4nHYY!ue{kPDwri8UBy7W*`D`fby0 z`Zm9mQ!HTit5|duXc;}*nDyffCGnPVA31AaLW0?9$%6YQI-O{HmrwXIZKW$jSsK2% z!*h)tTul+a)$Il26{)96hTUvM8hoty#)P`nI_WS_nC52{JTqSF8ldRK6XH;#CmdIv z%BlQZ)kE;lKbQCUQHRagD&?N%tJ%~TsCSI5lUvd$dEb@JYojnXRjZG7dREvCG37i) zdCqHIahD(hmH6k!)kjsl1_LC`o4Pw1@=mw7y0SH?`rAKL$P!Z*8OI@*@ItR|4QLsE zH53|MyPqfLwzKH|DA^ZYte}m-s$$`0hAH*W)BbuamnF*hrQvg7lhp@_PhXt9Px0Uo z`USzfhcPq9n`An zv!HTQYhrgr8dUjM=%83St17lztqJ^*_Sn@_{KZZ_0n{-z0x`@mu|w>4x=YXeGC|~l z=HLj4(}&uL4fN^r;i%$Z;&fb1*!EOB&LS#p$+^~Jq*^bEf!bl9ebFngE|Ur0Z{3wp zI1Z&bf6Msi_{ee4tAi!O#TA)kL|FlX+IXEp6^}oX!{gLxD{1o2UT>Tu?0jYJSXKFk zkOF=x1fz3uQoIiS3wjaz1%3)K;jglXhibDBR5`1Atu>!Wp|&wzTe21v@wxceo%QCl zgY^J)##Qg?YTWm054a<>c6Mo9gzkj*KET1N@P07W3aL}HTwZ9YL`4-2ud7jBGJLqm zUjI2z0^pR(ipfUC7$va#q}1ydSGHPC++!Xtk8;ao{1e%h61o61zA))qjhYU)^A3iqFj5 zz5I5e;X4hjf~lZohy&SJ3;1d6P1)}?y$rCq16f9#IoAE9vnPz8EDERNM#401=VAQ2 zu1(2or%;%MS7>)_-y;_>-j(e7!Yc|?e`)q#li@0=hVWqMbGDws)O@&EB-M$`=9=~7 z8QTkJJ$N&E?#)!IvF1ueDUD;}@YUM&PdVwP@#0>`-jDmpgmbVnDSBFKcx2B?CoL8W zP0JZ~F0F#3a=xH+?mZR>Iopj;{qwe09TPt2tZemLWzBI^2#l+rTqpC{WPV>cl zk1D>05$IdyVedqtSZiXL!iX{KTYd=#fR$gq zYLG8IOz!jBDE2KK=;1LHn?2z25p5dEDb zV%n`nXWU2q(koaD42EayruXnVUzCe8$^Kk2yd-baRQyq6 z0khv;@zX4kTct!4VB$C9(e1|=F*m58r|-sC4o(i)$1Xw)^JQWyZRGQZZ|J#mVO|7+CqiyN7|c{6(2{VDkH*w#Rl z^+sQyy6mT4#q*a*J95>)&bX4>@mO%$;VTB`FsIm`Wy$+@hIb1~eFj}i@Beph_>Jy$47 z^LfFT2scAXN5uR{l-Cn6ZTli|kJbZwNyk_KhL6KPub?nD@@ZuTqxKVJ(j8!y`Ooo^`Qm}Y&#z(Dbl-o6-|w^EgD z>wOt4u(&gfxa<%8-Zx&_j9hp{J59B_#i~-2M6|7LXv-hX11HR{fJ(6CfiBYPAA0w@ z0`Cir8H-<3+VR5amr?#Qsn5FygwdXa^J|6ruR|~35@=k7C4bn_LH4J7F;GjS^|jW~ z&blO^u#d!tKkr3j4+*BP6jQ#0g;9rvsR-uBKj??-=(|ql{GK+`U*MlT=$~b^#Cupe zy2R_S8=j=i5rAiqzt52wGjCz*8t8Qjs>f$=G)Q2R*VPaNZ?J^* z+|rYXeN*=vMC7kEhI7h$ZS@VdK}AITz~b|wSJ3Xns>>`(yNCnfI{skMnXWp?$mw!T zXnX!$J5k*H1I@k*aJTsVZSY)v^j%ML{@s)wIaaV`v#1^oU)A(8eKX2yS3gL@1hHU( zRyTFZoUDYPB%v+OxUmho46YWw+3{L`?Oeec3o(awrbQ@&6hmTFlhD5;R_!!4^v;WK z2aqJp6FTSI5MFzAR)j?t>NF-3?&C+P&HgzM?`kHjOu2rBpre>m9M5FGa=y@7^J5SN z%Xp)j-K&rJCYA{Uc?pAGYNfz%(SXJJqn(9{IT9>cH;WH+Zx-s4@H*c-&}qF z1-6?#hF9R$HtHy}QfVTDqryIavv?K&x0nH_Vj|^Phw`g9y_Ixzk}c`eF1NHw?2I=* z2YQBzE(Qg@f~w}FEX`er4$D9&$-)&{V#Oe>SCSZIqVzd9T|fJ^`I4~uUYVAMYRlyY z^~$`?+CO!^`Z>5{>7P9r{GVF7h&kFs`VXqF5y0Y9GhuGOdn|iMP}aLz9Cvy2Xs6iD zr2HfjOLT>j+}Jq4&B$1pAa?bY{=7zo5VTv&_Ur4E3Z936v^+Eeu!E>+McZ3!ni!H6_r&$!_?%?X$OK9iX9-Bj~dwQDk44qVX8@EvNvt! z%NGqr0X0{tZN;^hejMkFo-T;O{0n`Gp=!tX0zGbTCDcR>vNnHcXqUA@B80xGNee&P z!8I-1fL67-Kal!jW5tEjMH~HqkhTx*^bZyUr`gh<%*eIlD_qsaAbYs`n}_;SgSj4g zU-@+Ef*j!l5!$jw?CC^^4C4(@7V(6VkvkYdQ>tW0zXG8jIq$TdG+bTRg?il&)1bIc zP&$#(cJuU71bqy2V@@s3vSJVxTg?qj>da72Dej+v9;qtj&>l2qxlwSgCH>e-T}}*vK6DJcbUw}If}pC%Xi;cT)szEp3qqb^<%Tk zVcG6U7Y3lnTifx>XNnd^-BJg$4C{;UcpHquZf}u38NJ{P@Mckbl; z-C7>s2bND4x~p~z9y10PBRy}mX8`}Jp^v0|(xJge*A;`6BJ){pkwX;aaqNJ*E-E3+DA=}3Q<8+*fE+ky1B+OJh&Gb*8#-M<}( z=(DZm{d0!~mx>nZ$Iz*=-s0?7dAVg46yZ=xLz~lz@(5G#zonna;s4&4fi|37TkY-- zKp7_6WH{MZhYQO>LPB_AhE|J>xdCl)H?nQ)*SH3S?7O`E&Vyb3Q3>VLHkk?@@Hcu- zcOIO*NEZtT`y}<;U1{H)tC_V<Yz#4*~KFs!Qwg0fYEwt@Mn<10f zfl4`5OfM+HB)wKYbz`WoV${mEFXWzW8MJHBD136|8#HxRJT(9XtHui^Rnqs)tCiRK zb{)pQV4$^iHMBO%gR^8Ln3z@RCQ{h!x29gX81}(!C2-X=TCK%u#?yuByT1Pc;?0pkRAX!O`jZfF zB}gVR9+-bE6(|IP0o&U0VYNc&eBR=>xZ3#=cnLhT%A98M`GXj?KgxS5g^G*|wnRE{ z;2TMfxfeo=zouWj^wREHeW@8ZT=FIt04Nu;{!+*GDGvbfIn|mWnFviylti=H`lwBy za>1W?7kaP;D!FWZGmE|Ory6L8ql0+4^St{feL;bB3F>S2zC6@(yas;6ChoH8WjZ*!vdrfeOGfSA!=)F$G?56 z98FZu7wTwLedE6z4RLDB&8f<)pwM!_(3Bal<%MVR9iT3jtfp5>n)W2*N=t*GSUh!w(=O2$PbQ_A^=7?gl`Xo*E8;Nof7Tsb~B0 z=>oE=^Ji~jS!Uw-MG{gEpQNj`z z+8$Q45#PhR)gVf#G=Od zGFUPw%Zu$Ss}1Gf=#qLkF1l7CX(Sljc;3^|t+zc+jX~*Vn9Y0V*^+V6CvEdjUftPJ z6AdY33*?{4h9k4$;tUel`Pa!+9fRt*#h_yK*I%P|Pflczq%&GEkPY*RipC*3kN%04 z?78PF>2pCHPgNseP4yS>TCd(~F8p9GcScZK)WSiu1+O0x!rHr`C*n|HO>QZi+s-rV znV;{Hnls3s>2U#jkOEvO8(Cb?Eb67vo=c0HUIv>JJ*e8q3Xr%L(G5UhvQ`lvhfTLO z{}t|MTbJBV%q>a6F?Nwos|M@ZBNoXu1hd863 ze+Un5$O(-+lW4ntLNsDXtzz`t=fnV^^oqWr3vqLl@Q98smLM%Fq9xzHo!&qE0L&?t zXI}4lpK0@Nd=qbOeD(7Sa4JnqKQI^5iz=>|h5X1UB!i>nu8G;FvvJ3$Sa1C;|6kYV z$TeE3DuJZCJvap97tog5vk-9DCKEe;${UxEmTMk$I937ag4PDxO7)_8K8HHDwd|=D z4w1=MA#H%e>VMsJhIAuV>m4_62Ab~9n&}RaV*mPrzlN4Y2nS|g)L1WE^KYWpv58Km z^Hqw&UELr9>xj?`$`&FKC~_~POrxTHe@=x}v5YQ5{@-dOUUl>qOJm;k`TLH8gO)W@ z9St7}WDF88^R9VSVNczQ!oxuEU`m;WGXH6 zr_(sRN`<@XBII=h5bM5_kh|)&g-z^OOkf0;^tbRsvKW;||1u%S$P48R6yoBAHtNMv zcs=L33~z(~yNAQumGn`XV=n%#B#;R~9G)%GRHXBOu@X$YtX>{Z2^cx^A;YWaW2e~l zo+yhgXB0g|`9WF*-N_$=*w|fuOe^)8Op>m=07+m@F+nW3h?V~Izr==Y`@^(3P0e*l zpJM}LgP314`3Yp|Mi=%^w_!xQV1XDQPG+$Pd(X~S(%P$)??v@CXtKD4VNMgy7)9GN zYpl$k2R!nhIhQgSJT&jV?Rdjr9&<=Pgmkaeaz5Ea>Yp#{Pq5kqM@2oRP#}6*N7H%k zOl2$+lhLU88ULpN$=mGy)*Xeu4&K*$CLM)Fl1Bl zExjxE$R+3Ky%M{fup(HiqG@|h2j8heLG>UObZxUa^P0o9J?@Xd( zmXVm&hiXFSAN+mKZTY78rmuKysL3(V*qG;+_o!6aa@2mjY2D@j&g6&U>CPzDodzN0 zhqieWoSZEl*F%zZ84F+fx#ySfeYT2fZo0!CK%>mo=$o5-nPt=05dL4wdG1I@hh+WQ z_2^Z>(1kjk#+H!e?kBYyI>**gBCEGNklg?WyVy z$(_Xu*+l0@_E^U|$~~1GeHU(uF`f31?%z&r;_LM>)MO73=pAWVl+rwXvy1#%;=;5Oz{VDt#H2i26FBp~Ayn4)$P1UC|DC=iJ)8x6NY|Akf z>SeR2p*8zC-`i^L%+z@HkkxRxZ!Sc=hOX>NuaAGe(djS9{&DZLo?~;>ljJwn4^;)N zwX;f^3sfDif`UqtL~P18y{t6=&}S1sw(psNmq{U2;kTvD@kYgpQcb87dP_|C9ztUP zDpB!LxySoPH|#=kS_B@PFp4^g*27(=OHpsDh0xwVTN`b7^6_9%%3gE7r;eDvc{$H; zJcUic?x#1`LH*Rx>t+2~JH3V{M+bL)Lo1IVXr(O$<^hqjgepu1@y%)1C(j`i?0zDx zkA(092Fe~++hpqieoX*E`uKq=;bV%R1th3&ux|Ftk>o77ojAyp!8&zC7~#(*WJw$nFobVi*im z7b)UqIr%wkYhhqF-E{dSK)+=0K%Xg%g&rffk`}6r%Ya~|WO2skAidk^g>ub6G@Bt)rX&7LTI zvH^UXgJA7x~b7$jA-bGX6Ab3oQ_K3G}Wj zGjTbf7Mv?@B&+T1%EaOKhu^~`B4>ucF}gH{Ng|;P;p0JHhElZsImluT>F3z_= zz!NyUnkV$w!8eVKb+BV^O$?FaCFl8uIhv8&u7rhpyo(_ZG^AS$CUS9D&9H$qOcJw|H9e(U}Di^ZyiFMb> zZfc)NWB*;JCxF^SPB_V`uqXLK31E~de`A!ftS2h%Yfj@mNVyW?wi zz5(FT9dn4MB}pcnRJF0?V#ZwOPO8dj^{rVIH4z(#QobdCF*tHXe7biCO+ZdfjrDKc zT^2XE#UNTtGqe8Pnt-mJRowQ(Y-N{gSQ~u|{q$ zEb&l>nZ9BBV3Z{!|BeC`5ZvCa)P1ew-zUp&!>Q@_t@P9tM@I7t@P1Q*QQH)*2BFwy z7I|K?N~e8b99qt6xW zXo4zv-L#sS0w(_jwx#<+aCt;vCkigJ9cwH7H!TAmQ!Hd0W$~rXMj2miaulKyy_bmwkCqdnH$BZSF3wP7G2SqJ#!Sog47G5Ag{iJG zRH=}|e|CEc9g}zsOd=KH(D=VmJZSh6N!23_9U413dI7h=_?n;NDwz^y866}-0zzMu zKx5g%+5>*yQ;3p@hhs`fDfxz5HDWQ*d<;qJ*<_y+mjM@3ns!gGRin)P&e%<+U(Su+ zg^oywD_Wf2@iM<7|BH<<0i~P$f#d3`>?lm1%L%z->F#m*&l8l77phhTt4VWUAVVy7Fp?HYr*N&3S(wJ zEFu;H;}wPl>9_5KHl_cT3!0sjoT6taS)!k-Z~jpzlRAC@`Xl_hNSuFR{wqlgBd85F zXcRs(l6>`V*|7PDKQ~r>7r=0>lf4+_&!^pb6+920YY7@31~f!&DDy)q1gSV|L<|DQ zf1e`A)2fG#@$zq5FWg5^%>uIe+SzoErzqIVdMKGGl7QQ;ba#OH?$u~xcnXA4ZOry| z*5qwm8nxSi!Hj>pm5Sf;Y89mVw;_S7eAkt!3euw`LHPN#<)I@V|YgU{u6C%$8G*`qM| zwGrU5UM)*2jQ;K2u}IUx*vUNrF6SQs{&G#;RY_>;$D4Mj=8Q!GnMOtnr$3HN@dLJ` z2ZbPHA3FeW;@J6yEymmnq4zl!we;OSuPvK)ha2Tzo4@(U$-_ zD_oqvB)tkn3QmU~hrz?Cm-_bxFy|r9D#f{SDfWW_)cbU|X8?F@THF4+#9oP=&VMu`J<^+ADkWlZZD(UEnIS4bF1R1bzS@GrnegN&SS3)<+ zU)oLNfSGv1*pI^q89u%y1C9h8=kS|xfg zkO&kY=(h(TpRzU{)7pL!dO&VR%Bm||Kutx(Iwkd$(5s_j;-#O`d-7oqU{kg_4iUs| z65}9DtHH{(iaC;TqtVIaLWD1HlGAHL20_lXKX&9br2wpIv^M0&$>Ha__IOEbw{9VCKN$`ax5{!!4w;O~8emgCHZt&&n3Ax{&>m4_SjI~WY18(EtwbdOqBy(T@ zce(#)=hj@67&TxI(Di~o)2`nLAMT&IteTDnVyZ@K#$B~ zS*x$J{BhWn+4jwXXLlgHdIM@4-4w+(Uo&Y!9ZkSXclfWF^<+`42oU17kA~~(b@-hh zihQ+D`t9Daw#CuL_G5bU_ta?SJlD$F5ex{TYm!=B{;G+#R0H5v7EbK~A2&zCP*>TE zHpBD8U7!OV^fa%vWw5v@4DG~CVua_b4=cYvh1<<%(e*0UsrUbI_SSJ#ZC%)?AXtci z3MfdZh%`tyC=yCbgM?DjA|L`1+m?`$mhSFOl~B4nlunVB+;=SWoTI|~-S1xi@P}^p zS~JI(b3EgDMxs)_!uEF>-vVa4&yohq@q29>q%UL*6C^cEB)oa_czXPxjKmvL!C)e+ z7b=t?1w!FlBQJ?7Aa$vm0ad0R89XMW1Pa^#2bdBA|7ab+l;w{G4XJ1@T0Z)4^m5K% z-Jv0Xrd_d2&dmd#l=fuOLNDlx*U^y;2`xwB5q@qrGR5CU2T?xe?j0QFREbR=2AO=+kbCtgrjErfkbM zHH#LiNflD=dQh3DqBot<^KN|@`CT^q06zMd4Kc)}BV_XunG~-(y3-1VU55pF z&q2L=BP#U73%=P55#E({1%;H`bDhf6iX;9tp?UE@Z56dF^vNx4EFN4*yQ}~G#^unr zX{D>Z%YchsKoUJfx8`if_DKVp%oXO$v)Moe_|-+%k0BOs4$E2e5Pj}eT_B-X z$K(FuVibBkirsw9;q#?{7*%f)4XTT}4rBD%Y9%V@R~k^Ljo#wox#T;1W;0#s%&xYe z;w}^KW|#;bMVmo6w)(c<)>pjv07(6)veM?`l!Iu)-(EB#0Fqvq#o34;oruYcqjP!v z_%m4-VP@=~0A|DCy8llACdtu(RYv9dhb9i4*{<0xpp36^1aEtdrvN^2T)tp1`tF9Lkg6RvLK7eTWduS$E-lG)go|P z#9P?|QTb9tc|)C?VcCF`*7eQUCh=*g0hG&no=2mU2Bb;n+7J@5Vj)PZ8Y+StcIJyt zVK_rU!ECEBA6lz^x$j}EVay-^2WE!1Tn*a>A(2SbZu92gS-+(xmn8jT(97XF3YK(X zo4r#+b)mh;{o$`M43wk{nTh!ins=jWRyo>HU}Is*1!T43X$5|BNGeQJiDT|0#K*%s z(=_=~rK4LUgw{XHx@JxAPw=!gR=w};-ZCf1g46<{{3VZ$Y&^jqU)-I_HV5Y89%&h; z$au_wA!HmJIUD2si6LKgWxc1#DUaW@G$8+rhhb@+MgAZ!+M%Sz%1{>(plvO(nTfMm z*`9YUSLJc|f;vp}xpi^WM0>M$_-taVi5mI*SnAV})$)aNs-%Cfh~N5$x_WvSmCfTk z`N%T42W+lk?+PO8q(Oy^C$#nbY?F$IEAV@#bFjuQLw8Q!Xf9|l=SS!C4;RK~A}K9X zh-j^wp`)kXu!+`E@bDJwDt5EnaS#c3hoISU|ALm&B_JS7KmNVJ!ilXEa&=^hZ{NSV zdq}9$TFq*wy{b>F_0mCr5ocRdm`fi#jnwkCcyN6>W$B9i3S<}@9)OGhMv z)f+AplH|{OFowCQ57gR;t|uuatH)DQQ{SR`rt5$>Tru&@>AD0CJR}6W=WO`T|8QQ) z&{H6swifj90aC4v>*yDw_)z~wA@tTTQIWT)JJvla@r$o}%I1K5D{9y77Bh@w&`>Ev zYo#|HrB3}_0qm?!4FdABK4Jdnyq=>~7Y|lX%#xUfh zk#o1owbQjHyOB59&)R*WTnki%r@D1Lr4b75g6mH0nW5FZeCZiM<%;Us{#QKH=bX0| zs#2damoB$nxKa#u-Do8p@_dxa8)@yadGNwlaPmDOqgZ$*{Tv`bcmQ*YK~rh z=QRjYxUw_!KCxHwC)tz>%BGdlZ$kdJG{_K0dvD>+JO6m;9N1Y6=i9#r38e+6&xL~Y znzaWKy1xJm5$a}JNgVCvC}P5+NWxH>#9c8=4rSS}N5ikDK(i?A(nTP_9MzV*)Yx^7N#T4PEl{Th<30?;GR*xM)?P~dH(Dhgh=o3SVMN8(m#>OJI^oGZ{AyT{>dwU=`;Dpi{FCt= zgi%cZ!@5;IpyJcrnqJL`7f6+esiqrxH4l=tjLIu7WT|BO@&i@+wbtj+JM(TDTTUaS zLo~gWH+#RMVamK~33KMm_A&mZVZuvOat-3wIl?nWuShNt)KilO%5vEJv!*l{npNl( z>(s;^T+tdC8JPkuHH}X~N6cNd^bPVG4XV%WfDulZ%y3bSyN{@e$79rVJ*7p}uQ1UJ z;CUI?uU)Qv$7-fK;oO^hCcadYABV#y-g_1ymbW2-E6RRuOhpOZ&QQR!i_R@n;!Sl@ z^Z!?5vqzi%BS%;^7(F1=Z3|h6vXCZyk#L6ndY9+SR z^L3tagr#rMF699N99xsnc&?{AI%( z&&yFOguH(jK$Tr0RelO@%eW$k?e)*%sq zG4r2ZA;{j%F7yybm#bHv2ddySEeui9%muprx@$miFQt%4TYB|7gCXJ1B<8G4AycP| zi~!h>Kv*KOu$_9(Y{J@O!Gc8jD`!ptvlGksBILsJaCD;6I2VopCCnZW>CPGZSNk$O zc(6!JoZhu|&snwKM^cb9sGA>+`n=6rU^Gb~1bC7WVB6+^uF<`tydgIg zUVSy?lG@J}s>PgU#a*#uk+v{I^|Crub4H)PP2^3#8AbcVKF&Qh2QQ%{&bZbQu#c1Z z-R&44>BmH8s^BT7Upa4|MPIA?+ZtGlP%3M3Zjx1NmycMz?8yV_rr9e0R(R{=-ij^eQi+DIPn@;0bN#mD$>G|>b@%dWw0cQ=iL@>i;G-0y8lA6d8x8@g`8-PV zt*Exbz_`aqwod}DPx$Ax_ze%isCD|fzLHrd0F0?h^WP|{d4+4yNz*mm@|4pyEUHc3k$Zy_e* zmxC4yX#-&l<7BIEthy?r7euN0#%ks{GA$% zuZRiWv?Ej36(=UGv6$jWCcZP-K}@!&+%JS9@sqc8}3HsTBfT z*X=FF`T1aGijxENMY+TCa=K|&WJ&Y@;x%E{T3mG$#Qh4a40_b!OFu0SLx?5(zJOU6 zFcsEOiBn=1D78Lj+H90WD)ijH7kCNbl1(lPBr2$p=@OrU&A<#npia_hR7LaAA6M^8 zG8G>EV+jj;Vh`KSFLsPX5<3=5Pn=k~lF+HW`~@2<G6~BBgzWMS)p*?1d&K);Q7k zryu$Sf#UMJZ3f8f-p=5_V|cBwd|V@vLKZlhGgJL13M3 zb<_{?wlEsT@_9wyq>k-WG6lf2rkTMqqD`o-VdfIhINwi@7RLMokp^o-)x1?&d^@Vh zQh)q_w56{?qSLC}w;G3aIzE~vzZ&EKl7Wx8P#O#1XnB)F7}K*f!6VE05OsFe7HT;) znJ66HLQ_reoG>}{1;X0D-CE$;%=oWAj#G`4uG5`Lc`C4OJRJ4TNKLs++|H)F&9bMH z5Ak5)lx6vfLQ5&+`OZVMn~ZhIbG26R)-(L5w9ASrDFu$-+v{IdcON+2LwN4lU*s-Db4~a9p z^$7T!B;l=*SCE_^OS71smc)v1EPv}q#fKx;7p+6g@@RSc?!2698zEmS$bs0%^Qp%! z4zwz-mEu+Xm4=cx<@5R9=(#qrB-^iUic$)uYe1qsf%&?f<_gd|{c1<1w|M=On);Be zHB_8%*Qulk=;S$6OH0f9Aorj@UJ1Osqf)Y_?x#O{PU&;t6i|PCE2jS>M<6AOf7)+T zK7PBPG*lNMQSOk@jHHs+IN9AU6EB^1>S;tq^hiAuIGAD&HYlul&tI`6b<{ghJt!837<~KGPgv_B0VB`--G0DMS1} zx9HrH^K#CpX*`1!PvvKSO+`2sr-5SK=*yvx6Smt)pW9Zqjq$$H2B{Nf3f%*2&hYJ! z?A^4ErH<{ZRxA|IPKF%dbX{|s_N+L7^W(gU3v*iHpE*}3L85!;`Y1s8Wh7a1lkPan zVGqxXY|@Xb`{PcRG`N9p9YAPIacN~oj|U2GGG9K(DbV)U0*8fvio%IF9DRw_H#Szy zjvr0l4ssx{kKaCcF*fA8*!^?R7+HANj12#r`(GgjIcJQcQ5)J92|7h8hWzYrAC?Dh zls2Yv!fMybNk)|Vksp!CL;+VJXX>|UWYGa|)}qGJp~pqq?rNNZ=4%qIF-s#Aa$Ay= zl(wmNteD%B8Hwp%xwTUj20YhuDb_x|t3vWns_?Co2%=jH8G6y=1+xnP(q@ImE&BKO`5YI!vmNkYgxdw9P;e~ACR&nB9DBAh2EE%@L@ZRa*Wq_0hVIIuGHK<~5fE%n7p_N;-n)=6Eh zTP00|nw(Cy#wo>D^mXZP1^<|-*sRxYX|TH3_sv@@fZSV*!r?a8%NDNPC5|Ao+n$<};4?Xf8fpVr()S3l)BbX=mcghxRVAwLv`|Jw)dzH|9y zg@p4n9v6AeMUCy=U`%fbKPk=G^cSDoRjpR;9=`J!Cg*rA>>xR9C*OT?VTB{;@RQlH z7lf4DW>2YFqpEwy)>*%-|71sdJXUa*~`F)T5)96V_l<8t*nY%{w z$Marh1(#%hpl!IRO@J_qpAZDDs)6a%{r$eDdJed%7DR?R(I*4rg*hMA@S7y<9%pgj zMp5Jyyzw`y9(hQF1$Nd#@doEZ6y8ffIOD$tCaA&rA;JJgl%tsP!(a9X+5kl9l=UMW z=PC{=I&3QeJ{JNvkX3ut5dy#(OlP&ZlFMq5{h7f6kH8s8Acm>^d!cDu%D56#q%?4^ zBo-4uce6w?RM=6y8Rt;Xj>(=!hmeM%;#{63rSFGZW4+L#)Ru@SiybJlD82|e|dn}9L;+n3^~yub7@cCAjc;MxVtK==Q`G3F)D_dZiPLczA1!NL_a7GcJi8E&G#YtGxN@S?Yt;-yC+(&~)V9&CjY zT)e3z+h3q?m2^7P25kcgKJ|ASyh?6zF>^aM z$biUi%gP4?oWh=KH~Qf!@RYJ1}ZppL-r{0L-XfaWQi^3H zH+}x`1fLrUAy395m?MG;OA%{Y%kx6T&sJc}1R-3{dXnx2uAz5`U|)$vAF6itLl z3klr;V$W2v_O`M8jK)y#g*b#UQgyRS#;m5g+O_D4vKrUP5CUEIHK4ENygI+L%izqC zc#>x^1hw8=tuhy_75bolSN1ZXDVNBcetex$O1JOGncgMCjJPqEJyN%`YreL#}MIyzcv7oFlF-c6(4@_+z%~d1E#|}OrCJz!J%*73Ldb% z!`DH&>w4*sP--><{Ym@G>80N&oTJ86YU$-W8`ix>@eP5dR0o0linfL%idYFbvElE} zPRZOW4ZuaH$Am{axd;Daaay5YPKi)#$N^irnk`J8N>A4vS?Hn+-jzt|f$9nGy(CUI z!aNl%JN@LrYx97uH5~Sv2e6T>*a;8_wYLE`Mze0!N0(I1J8!3>a~W3mk{dHBFxSPk z*OjG{n7$t<3PA#24@nJ;X}zR3#1G__uspdStfPZ~ZzP|~RMkjc*A-OF1MS=u2T^*C zkz_8->GtgVCL<%$SfFF+(9at51K4eu1!LwZR6u`r4h9&Z?Cc6x{BOifcE=A;M5hr5 zrps?^ODMeRQ%bx6S=BC}OE=9;2BxL^`N@X&+acv6tWM&R?DCdyhufS;Q75@hSJ)OVm;S1Fd z&EzM5Ts)RjWZAr9+IE&OFDjzM<9^DExtvt(@-mu1%NjC`cwKC>{w!|uqgxa^AD!>{ z_3d?z$Rb3Ep3X?JCs@D*5;@B;;OMPDv18gaAU5W=DO0mMqc^AUyqW9z`reMst@O<_ z*xXLrdJGgo0hQe0{uj8U>hww%Bm2s#TzkyTn(RBXUDHMilSA_smCMJD^{I|I0Q^9# zw2O`-#Jst7DMaGv&-Gt{d5qm+Q{y4`t#1gk2vM=v8Z@fe-6fC!49r)AuvgS1SLsp>zEj`R`39_jbO73o2py$eCo!91fG-p;kEFMSGcxsT8 zujZyp1B$6@Ig9sqyAPnA6P)pu)I1|m`pZr)4Zhn4g6F*AO{JUx>Drlw+Q@lXCFa4POg;Pk%Wt!55_xpEt`hC&+Td4qKt->b8= z`tqTaac=3o&XGsoOhH1(R!cqKd?3djsQ~Qemu+b>1R(C|2>|}oZH6DOC{aJvZA3_% zc^hYQQc<)2wEWL0`FS!;2twGiBYC+1s9Np%c7(O*vG{*tZDQ?ZZI+iagsnJ2-ocY} zy9N{2B}A>kRb$M*?+*wxRb#yDPyCZPOrC^ZKzlVSAoh38CaJ{;ev_leM0TEqcY(lC zJzE<>88^zTT+;tY9k#adocVEN2ZK*CLPB>N0c!cj)Wv|3(Mz;GC81hZUUm;FS6J@Y zq&sLPhm!4?(%%;6Q>y0MZ@MqDxlTON0_6%?pQlhxR2@0(xM@s^WnDQL;eF17%3w1O zGIxl^_yB?yMjUn^J`o<}v`n1;SpX7eT8YblR4u=a=Z{s2cbt&a z-ng{^P_J(q==$aW5kEfKQ;;`RH8U#r?rKVQ9#N<>S7ps?_0Kr@4UyRMyJ-dueXM~8%dWA$L{ZSRY>(Z4SkmU~q+#4yt zcx9d#DhE85T(*R)nHa9}^@h~44|<@Bl{zxr2o6i}T=jHM&$QyqZoK5T@j!O1oH)vq zpPX>@2k#4N>YsxbA%@w&pzVR#t4Q;IL)H}ijjT!9_F48HEr9)qnM4RAeRwsD*3nzI7LPvWj6Ci;{G z_N)z54;H5&Io%~Z`A})2t99AqxATB=otUGL)kGmea&h7N)sz)B4p7Ds9 zvqY5tjj}A6O$RCtUBYqL=>h&sn!FRWwT~K&s0`~2J;b)9&A`CfB1dH9er0aud=Sq_ ztKy!U8&*s3=J(K>KqNZC&|4GvNw=+AM5}g|!q!TZ)n>0hVE6fiy-{-J%<+F*@T*D5Z+{;uWF zfEFUk?9FaF)|pkly0%VrtFN!}j8zq)>4v2572aD7oqv3p4APILpes_A$%7C4CP5vh zW6;dCh{8AfaI;+s*NUMr<WUf z{0hMv70SB#RZ?aRPf+xETTL<9qVwW>Ga1}D*X(L)Y~!r}NP-A8P&H2_E%5KE>2mb& z&h7F%XRJjl_aq1>cnUAACz40?HqiTcpiKt1^|)R(bD_TBxDR!0Uvb}kztP+MF{BsL z5t%#VcS5q(PeciqwepgpM<^TX-ys{C9$+|i%@cpo7=8^B4&sTmj_V%B)Fl4Ixs^Dh zdj{#|M`N`3NFaPsYu?l4G-4dd{LHu z%%1jT0ioOw?ZY187PS=N8xp%cgFCjbvm~v_vMK*Tm_m3kuqPLiLfHPYN$_-B?5wwb z>+K|BToUK?b#0HgTG#7$V^@E>(G#eY^l?XDX9t-Oh^7^nfqvoMMneDrGS)cUB)EZ3 z2}6~y(S_MOIZ)6l}=M1r8y2WgL)4ETC(~XW97Y%fJ6mA zN-d;(@j^oaq?B*YojgN{dh9n{DS{4!2+N^+x8h&{qU?__B#NH_MXtR=<|4d?C1%Ud z?!n-Aqju2&tY$xF%1^TAVly9Vhd|ZRK|RZ1>mq8L(}&rNSzA8{0YLFp&j5*qxLTfh zzefE#SjQtEx^_TIQDJWsXwnwt{TOp0>)&0?kmsVY!?a4sB8U<^`Ks@0rI`qlKk$2_ zg}JbXm2(CrZNG1(41UOW%(DumpZT^@YeBfGMilN)Y4d4Fe9`U7ikgI_T3qd7ND@)Q zqPjeXhr0|}O_iH#OU~9-42|)q=z5WV3BSo(!r|-L1E1~bq8oW4GN4R$Gt!T7+JlR6a z8zpT&?0XZ3OIlkNe=OQ9;iQ=8)5k*Tt)_XIDQ9RcTHS3&_}%hi#jOcXwAffi-Sa~e z=!%6rj(F@Q80^p>*3rXg`AqIG<8$Oy z<~!nb2F6y5b?_4mmJZgYUw0yK&_5At z!(KREA`-QpqG4%vxA{ch?Fn8*mFuu3B8l&9G6^k{Lrk*!nef8FE$V6RUrK`ijrpXX zaC{RTuipwC`3MLS3dfh93ayI&9LnV?bE5V-HxjW+?F`Td_E4%Jz-hJqQzczhgm#n$P(12tYxKz9a&Be0Q ze@^}GNw!^#vfR@!Q_0*zJ*0b@>{X>)X}ag+^u;gpHyzWSOF)c^0@}1Wq5k@9MHJ4D zJ0^QFF@S6WtTvBi#gI)W;-M{^L2HInZ6QNiIG9gqw<1jr#2eoHqk~|v!jHZE9Cf4|0VP$!Wn{atI3**t_~gt^hfn1OY`#mU z(?c@+tq>;F+z5!mn_!QX{7Lq?Kjm#lA4Yz#@UDWf|XJYvXeW{lAJk3 zMu+-AVj=t1UwaLamvv5XkwWWJx z?ZSGpN^0$PYX<+D!KBTlc}-BxBYu@WhbYVP2Jok%b58-lwF0Rpsc4Rq=TW^!*hxGt z_%9yL?!}_U|MLLF0-E4h5^RYin`0&i;yOEM6;Fwe3G1t^laF<5%hc#=%wugxQ|R^KhP|lK>;$(iyAub3B_5K;9qwT?7UY(!MU|ClXa2eQSXj}!s^j2fJ?44R?Ng*VfA zCDfD=-PnOeZXY#4bjtKE*^@Tx3;7ukLyF3%XH-Nm%S8UP)z-um`!eE9(3D-hd$Jk= z*<6@#>MuR}iRO=&3hU5di}e}^v@VEL<=s4ye=TCmB@ZZ@wn~3eHW9}tMNESZ(ePLP zO;$Evb^c_M+a-(Jn2t1Z@fKQ+pDyeDH8=6XJ8E}L+=kwZi*q>@bo1Vczl`b4pXzkt z7PUfjO8@)~%0oZH2M4L;w&zV|1JVNxY|8o5>Xt7l&OEqOc{M^7D`{wUgGvuX7=QN` zC_#emKzWZ*&4$utsMB8R87o!(lr;sRL>apm(@g>hLdi&Kc1Inw z65XSi=79wwBMf!5I(^@bV)S8lZPmS)H^bM9z^nFD0epdc3jEpvQlRp zziLP(FqI^dA3dG|_~e;`eDbIM0?FMd@sn?HnUf0X^{X1BYhdbUDlyY8N@R}1Tp_uazE{hc!Uf^cc-{0)$XS{3s}>uLk8gI=1tyz z!rD-dFdzD~L3HcOpWoF9uBg70v`}mdGQm~vpBz(EiF#pcciU-I9)QZ6pFri$=S5e< z?S!12NVZAZY?0hts19?;H+*h9pW<;{hZ1Z0yN3xSrSy~Cmi*f`>(ig;Vo6V>_+2Z; zp=qA7dLyHc!yS|Mv+*c3EZ%Ld0)-xihGKPw$X+F_&{Jm^P(_bNNEno|{|*!pDF8^x z2OwqO71E!W)p6H~+vwELncL|T%#pn&mXP%S=k)y1Q9w<@B73<4ZUQOk-}e3b;VGkB z>A<{Bll2$FfK*vu&)Ys(HbSz%);#1?M6F7J^1dW{)5zM0ZZLrVl85PLJ$upi4y{>s z-7+O99GA9Tw`P`B-&W6?IfZg|u55RiT$z6mCm9wfCT3eNFq~_m*8A9kU$rE_St!Ju zZ^C>t&U-H0yIjc9etU}sCmuI{Y~FTU1`-e#x{Ms_?|BjD3TK`aOZgL3sfd>bQZhMXAK`vcZY&Q}-|;*#C4o}Gr* z(ug)?`>%ET=QvlK14b58fK=$mnncl)pH3x+Ua;|gF<*S=qlqbtZ=<6vBUV2JrY}95 zKgZVZ{y@hI4G%n_5fHJ#X=eX>G3-7WvO%kRO?V0Ee{QIQjF2%`zNm3`BL5?KGc-h) zImKwdCDE(_-$M_qHAT#(2JYfII$l^=;?9B+Z9$yGM>~wp?GqY5!te&U`7~VK@o;yK z*+Sy?U@c0R;pyt{*; zE@;n2$Wq_VVDSNgj&z(~H1U0wakC-(rgl8g>IB`?e;!nH?ts9c5QFJUjw$JDxzxnh z&g@;-fajzObFQXula_qiby5|W!0xnVkds}R7Q2?K)g{8d_e&!5Ua{j=ijoKLk2)i729obvl7bGlm+cT6WQCrOd7h+;-h3a4mT3bk1WzwKb5qsjsc%E-gFqn zGqXH$<7kIdiSgb2k_jR>F*8Xnla}Z2W>_K%nIW!%a`2EgBtw)(x$imM!6*q2;pm<6 zNpy53`1vW36ae^!?>CYp#ZM;L6rLR3JCbLNQR7Pr*&lTDDwh;Cr`+C8w>uT7-$hm| zDh)?!uxsVKy#OG_=~ck({L`3$vCttx8QjXXyCq{o6vIn|_vPk0URJl)$ggdPz^jXe zFbCXe0!+m;l@4G3-x9g0BePBbu*D(i)+2>9j}b-Ihrj|uDkB!ynZXbh_9)1viTXm)&oX(CDrB!%%c>|j z)1OV6)<&-=NartG?4Z?4?Q@TxWu>Cmlm#uqog0Hd1QMI#yaRzg*1MHQ9BRoiu<(Ts z{Ph>g=j46kyjKcKqBlH(-d}JzfO&+n*~dj;J2s~1q@3Aj+Pp5?x!y}8I!KACQ^ax* z7gdpFSpi~>-)G;;b%6ZQSxq$h0T`5FFjVaa+ z4}b{KE3$foa`zQ~{`EFYm@HdCaz2jjF49C45qAAFZhT%KBh%TyNRj})jz*_%-I*e3 zcOWmn0PFijKgA5%V-6)Kkk4ai#_3{+x8FR8}eymkiQ3)yOwU{d(?+A+O6*p@V zBDJn^C8U;q8u5NEHb9HD%X-{MvJXQ4`cI-kpJeGtVqQH!k2)tN8bS$MK17A2k~ zh3VU;!|X&7y~NcX;u6Pxer`rA(YsWo%Ozq{=g-J$Jt@chsV82RLapF_ngUUQpKqHpw%I)yTBn+kPsjl?!hLc6*P!UdwMJfDp5{8yF+IV-TXZ!Lk?hSwx z>$@BISM>zsFAucOL3A|$;84Z1;%~f=SfMcLa`1!~P;vujwou5%{d?wxKSR|Ptt=74 zFF!wHXOz1v)1V@){ierH6I<9?##*6L)-$NOvF1~iBmRCV6i^b8ag6^Z3v z4XDX|Unz2er;?#CneE2V<0a{yl0wHB?!K`{HZP3PJKNHIh+TzZk_}jtE2;;Rix{;^ zx@U9izr25X$?xW8fL|}3x-4@#v`{^v;gDj8df6I~U09|2f>P}79!xT}UHp8x4(@OD zO-KRV>gcPcp?9&r33JhC8R8N1pd-vT7Fm-M>WT&Wqc9@LbD@Na0mrxE?gKa}7 z`IWoRj$YfaC}!$238-2*jLqT6ly7qIMP5C^%KP{dk1L+S=|`lr`I6StOp-_KXH#n^ zoF6OO;l7=2EnAvsA`bOV3SkOK?gK#4aCJw>`t#5=vxjHzgyNFsDJd%lkA52{b_lRJ zlwpqkj)$g1k~c;-X41KY(o0u^iMJ4|H$OJL|@O2K`8#jL%S{Gp| zEaS2_*SQv3Uc-C{ZA@NdGteyKGR?+l@D$qNp2?DKx@j$IYR}@#qHQ(taC`!CUD|JR zTBRl>)rKS{VGMkUV>7_X4ZZ*2Xq>U*H{))DfQ?)>Qx4BVa&1#NldM%c6S31N>YC%K z`9SePb2{woaR7h%gNkF^HX5^cX4f*0C6I$fJyeo-$=)o3r646$(2&D4d+Pnx9lMa5 z*>y+yT=W#y*-L>sXE1eJV6eb4`dd~WFgPh^`kiknD2xbk)Z8)hVC}fvZ5T7XB=+!cW2!32un{ods*gPAYnxb zkYleujVP*56GXS0Z}ck+SdWkSGcwAGcAk9)8n~IXZ07ykiOI=qH5)Z0c1xqR^yzOQ zmqr_@P3h~j)W8*Tg&$NW9)NOr-E2>`K9tKwe4~V_OZ%ahDrvWAwH;UdRPqJal){@x z`q}RTEVWjPsBv}>JC>#NPA+LtI4;Yl2R1T=^4n$c0N~zNYApcT=Q!?DkP1Z$ag~)c zBhu;AzV(Ul`Tf0Zvli-wc7?^=uNkYH!gl|T5Q_5{yOg-8?)$rXT@j;@@Nxa=Q(tOn zAGK_Qpi9;q-3b_SxNnT{*$P&s+G=7<1aaxoG>bd26ga{g%VygXeN{#)4&t3|NMD&^ zEhJIgf}O_s2>2o z{1Z5+de2V7%^#5Ab0OJ26eF3OAx_m@o@{vlDC~N&55YyTPtB1c(g!wcgmyCB&$3n5 z>uiG#h|ZI8-WjEXm8SbG_jUYxN8${Oahy*p2&zZDS;gV*2ru+w-wwUAsS$DL*Py*} z6;@N^ZS8e>2g=1+kJld*f?R+!zQVzT;)ioSh{uKU0x`DpgC0q(2PQr|$7x_K3)VJ_ zGuDAg)>`oYvO*jTm8A>QP-2YnD_r?2VE3^UkW$E5Q?m-1PO1UT9hAHHv(gr@MEyef zY=bEi5Akq#3Vu|48v0(^uwr`U>&KTNk|fVMbf#gyO=8P%s2b-h$naEQ`EwMc%x&gF zR#Y|CEgS#zRSPHzZ*VASn?&^ej}CwGt`S-2XT;g(+D0_ zii!P(3!qX zr-wcR%X!>J_gjDA_>Xo4*_GC1;iu6g*V9r`*z53-^MyudH&d4h&hlJemj+2Unjg|j zv+9`G3`i7rz_o~Ok`aB%U59Bf_9yE6lHB;AeIP?x{89KaZ&@oHWF~LlHpVcd7<=C64 z`_i34Xz;Yd*XP7~-@m-iGV9}PiM5|&Xn|wtp=6GUjmIjQm<6$n3|`aB(Ic&6PJLN( zaB4MUYV+Ut?Do5b{W-L6i-f5IjRUsz3x^WQ$=?O1ixyok4OqteWxy8CHTwt{>%AMe!#TpyU@>5^m8DDt+Cz}k@-xwFV|+a zOc}Ka+^`m2nT+=IPgIC^6;xrT3t^H@shfC1$|VCrI{Nb!SD@6)zQH?ZWz5dkRjakoy{vrA8}~nx{>M*p81Zj<5=&10 zJXPMy6>b<;hO@00W|Dj<+cM4{zx(s$5u;e=;_rM)RQz~FyajGz~CJ&J-B*B z3y*DHuo;?AE%;G&B!LJ`-h6Q1H&0`;UhPnH)iFM;eR9f`OVqf`^={YXsh^|fO`MRd zO13V@*>M#!N&2(bzAb^){lI#cwD#EW+&?EV4Xk&re&(yz8m`x=nK3#(^&jJXvR@|- zV9FCppfhg26PUlA>+ow*QIj|Yk~^J_X!YgIv#lQ+L3HK(--q#k9@dT%Q`aS7zn1*y z*Lhu-5BnX3zeFhCK=x7@@hj`;&c%#lz zW_|TWxW3HL{lqzetN(nk$WU>-ga7F*GRzx9%|jp9%Xxf8ud;IPX%`JG#&%hBVrrpD zUcL86ZLcEhQ0}Sv<0EhRo?nV39(YwiJ6~W(yT(VTP$6xFo@i`HY#OBw4*L9!f;#cM z<_z0a8^(K!_ppQJ4RTIc&g6E5<~V4T$JX{^uEc9;m_JbnAM(!W>w5dvruA{K{ALjC zJ31@8{>MS{E~d}TeL{wmlgv5|*Q&qf&TF-0>em{ss=GOb$C&BW8uYR_cB$vGc8T}d zxEauKX$390-%-D%A3B|G6tuBrE}Qc$htEkNoX8R{CDcq|W~DV}?Hk&|m(y^zA8XF8 zRI^&zmvx)-p!pPeuv8pTeuRHRyIGlJGDY}QzE-PAuz1ZZxlwUgWMSHr{g-qRPct>L zr>k7P4R39h3}$DR&Zw@b&NQ-9>+9=RH)?wteg2}~`v6_fo|0>{`QE!YB;{)HFv%h=0%wWz2`b( zkn|wA<;o+TWp-V8yf4g#8(;G-)2`)Gn{V5zYI|x)nw*{UELGXCzu#6`PC8CLqwU1y zTbjP&s3NkRxf7Jvzi5x{FX`+SU^5HO8_;?rz_r~-9-k;uljhi7Qr7i?EZ~GPdT^#- zr66*#+QumC1@ChAT)LfSbCkOB%%_}K=gx3F{$+c|?L0FDF}JCq#Esdwfbn}uNB>=XVstH3{C7ZYv3--?J8%= z85$JmkSUydWM*_;y7fxIX3DC~@gS`HWBIpi*&H9N@y1D&29;ajrXTjLyPYo+?DIJd zcM8pxez-6G#g+CU$%d4(E3%HM`o}ohBWd%>d(FtS9m8I1CU09QG|Vvj)+i=+7@6l@ zsWFb$z3)4N<6xskTFTr@mdeV8uTX8R;5+ajl-Jfr-xFOaU}Dd>>l>)Cu>WUK2%gGg7qFL=!^;9H>*N>EkryubaldjFXTuS+`Aj|0`t2aVPjGM}gCy1Y*G-FYao zW@jlQPrZm-`33vWO?OjXScq+Ib|_<^uSqfFa^R2_9(|v@QN7$8jZyEv`}U9hjgmNa z{i|EA#D`|upU-fm!q06oFi0SpdM=!Oq*9*J*h0sWJ*Mez-^zXof6F#M>~LE!ous`J z7E6=o#oV7}%gfDWd!8IE)p2{8_WD`Oq~~(6GFT_+A}kD6Js2WI^i=sNDbJfyPh67FGM4TKFd2_w4b`hN2>)~R{cp_g z#R`91y0!hjM45@Ln=Ijz0AgOh9);WdnY0ZU9gf%Onn)n z<3qtMdd%0SGc4}CK6mcvwSO$!uaS!Qgc;;)%XK1&s8HilO9`3}&mqNOQs%tf0J%v9>A7?@BvcHlG|; z>`LuxZqbbrz{02Ts({NUjv`yfFTeGVR{`&8XII#*Z7`T^=sDY8SSQfrn(^fHRg{pR zlNgqRXu!{2f`Jzm6}9H|)s;O)E+??_V~6LV$K4~8_?IxY$6i6(Wy)`KwhzP6*=VA8ZwXHX`& zGGpm3oQ1W#*#UgupsPLeD%%d|OoOZmr{@{$Xqz_#!V&i|vGEd!(q`IW%E=gY(DGd^ zbFJjR2ISv>RxG90O?}T><=hi>OQyaw;XMxe2V>rs^;$O=dUD8q=T`;&ZF~uT7svFB z=*94vOo4odh6$m(vF?j5!ZpY6<>pi^)I}&eF(2Qr*;sA)?+UtmbU}T>VZW}pGV~=; z@vL@~_)b`E|5emz{y}_qr9V6YSn1i-%>O*6d)+Y+nkTCjNQ`!U0D% z(>lt~$*<5w=mPfKGaQ&zgp?8Lx1H6+DU~rF->aE^*rK+_)lTZ5zSv%dm0eDcrLawM z?xI{T=0+L8mOMd-axbqtIco9 z$5l7$9Y*qKQq>_PQij~M#;_U-s^v2nSgx0Jgbtc+u5MR`Ws4s`y&e`^TsRZ!ku0r0|J(&HMmRi};x*z6M-XB@ewB~;n&EG=kfSCX;Alz{ zgWee*`hrU?FSOWny<^j$X-*(#;?78h-G?-9xHxwWhQnP%%89A@41I%HMJj4Dl$oHZ30zX#K3*lj` zBMH>s{8=fnj$N*J`S7c0;@LfY8)k0qx4qn;>4yFUJcc7VDiMWiug24I^EGQ>ZOy?{<~AV3-|Qx3d>`ISh)YL;v+foPJ)0ehL4{M|e{Ut&&q%DOpqF7?eKn1Cx7{#zd1xRHGS<2f$JVg|k( zf3K*8bEHy|Qggxil4cp5R%l#4AVyIKFgl1{fBMgv{rQu1iLiYWdg_N5vU++My>`Cl zKJ2=R4KD?$(xjFmiseIlMji|n${vF}O1+l(`EnSVUS?$?R;r?#;8m*2&VWsl;A=DV z6gTD(b|T7%-tK3o_v{kHVerBfTwi{Pi$MrisY93;Sa%tOg*mFZJku`XUx1&mo>T4n zJy@@Sm@*yOZaw^FFkpPxtqz0t3~^7xE}%IId#iOIg86@plCV8j-S#4#Fy%O=%!=U! z8$MmZV?}UyPu*CdGTwMfG?WV zQh>J%J@~_~BmayT#U^=@n5dXE%5n27#7auuzHI6ykZ=bK&+cyZ2Vr~~8~AqY&M}>> zy{|@^1H0!5i+2&3^&wP0wlO-)K@Gyw!ZEP4#ik!NpWXXLWXsc-p>j62+ROboF`~sO z&tpyr%okj|aaoW3_(4=FOo@8$T6oLfCmdu^T$iXYQe9C|UE#XM6?d?BIPid!=HWaE zg(H-5EEw^<+t^195{c>qTnQ$Hq1j}wq~Vi47t`)P*)Mq=joY}8^ubCoB|=lxSam866av*W*03o|S~*N6UjMVtrNvGSiy&6OYO;=# z@hToVajskMEYp5Xg&o+39oW$MknJWVz7dAgjSH>$FB{J{t3&@V5*HUA1o2qKLG(}r zQQoZR_z{kXXChHhecVx?W_bg_qYi@AS*S2B!EEo2xXV@t~@daqN1cW6Isth|r57UEn zrh(2&2T-Li@P0oRSdP?JSf{@q{eqM|4AhwhjxQrnlDtYl33U-9`hrZMDqhIeg!7JJ z#*zISLFx6>MWI-!GO<3AN)&LAEX=6~SDf=N_Fd%#%brT0^TOEV?MW|j!(gN;r2!Sx ze09GKCCA1eRlXv~vYL>w12N!HCR1y?IcQ<;`F0dc7Vc>A(N*?JtJaXOA*hL^<2 zY~J36us zYhk3O4oZiee|iYl2k3|zo$1>1O-xV(HaSu96qkAby;|dS=@3r+F&w_cgaj{OE!1KW z=gIyvI^kS&o-Je;*h{CVW`2kX*UaVpm7}(4?Q@3f3U=k^E0p&YlMPJwesI9hI|F>Vt=S#rbxuBCB@Pal_CDG zoBr<{EgV6HDKqE)@NFCoY)hqz#IN%Y73XocuSMiyW`;x->DLjR<+V;A9-VEA_hh(T z(7eSDRH!WLsasRMxyfhIt8;w~S$QP0B{ONodH^0q)eRs4`Yow&K~3O|lTCFb2YgPq z*?gK3?zkFsBRw(Es53h+Pr3RH8NC}3BkOt&t|N8gPJNhwhB5#VfVdQ?)ZlXUQ_2di z$MAIZgmb0?II92XKV&$#@ffZ-iE8Iow3x>+Eo1An_v!;k9aga}sLpzQBnqPou)V9R z16)fXtWa`OTUsks+pr)_En5u1YR_`tk2p@wuX^bCnPw<)^*_u47e>5+l{q#o_*HMB zPg_}7L-FDp)Ga(%>iDlZjw{t@E?o}@>QD-NFvdp7QIp5Dd4agcs8%7(mXN`#-&nm01)|RYS<0jzUEIq z*+;QGwrM+%(|acN}wuLYqO$vpovr_LJvZ^idpvseK@p&X}rZ-mN!| zw~rq}DId`zk4hRko9P#JfK5?yK8$U+75_e+5S<5#^(NLy2I$l@>_!vws#gRTrSMyw zwXJ)!iW$;ykM+(J^{3&U>CFLEY3&zy6y`FZ?J5$|KVEuB*QWaaVeKp9qTIf4Wh6xu z1wlXrr4;Fu9s^M6mPYATQeuFSqo{x&AYIZ7-5mxYT|<}BEiE~Bzo6$FmGi&%!~Nn9 z2j+cuuD$kp*0Y|p787tc8p~@ik5vxYhyswww2$%-Fi-Y*Vj$_EX&B?hwxyZU%tn`< z_uyk;L&Lqm!3r10yet%IC3hyETCh>gxL?P%nRjKaQ?3!fX(pK?09n%!Ju>XJ!UUJ* zbq`)nOZHhf)-QYg3${{$s3U-GrS|$M3I)A; ztj6m6`133lN*00KB%|#%kcRedF*3Y$l!f@`GuoH1ACU0mMV^A&Swv*GAqD8E^yij* zBB5d|)=H)TB&YJXV2(+0oaqn;#V!p34aaJIeRJKws_^ZwxG5v!E3&rnz;w8#8i|lV ziAwSn&*Yi*Wa(N5>~TBU8)aEJ_)I43pQiR^t4NQq&#L-#>IiR#77uIl8fAOTb6-Pu zDwgYiU*caeK?|7ZTZVdG(wk5=!?ZjGd%_kn?EP|D^*J?Xi74n~(07tVb$`gyVVc zBekEZ#jH~fiUNY6o?_q>-**AqNoiou>l-$KxMoCHUTMDdR7+HaIk4|2fm4KJ=I)j| z4oO*R{zpZ!kr!|%E7==zV6XlO7LTjbs$!{V7plgHqgq!ZMG?+q&)9CHHO`!(;!AH| zRpA}`^pYeG25Cdam=G(6^r5F>`ekBVP!O7K0J3@bN z1L`C6mtAy#z+mr|MJ7Kg!bB!2G>67J$B+A2jzl$Q$ z9QGgnB4CVY5k*gUS^BTPx|Uhb>;}%Q1`us(PM0IHF{4$DdC*_wj!Aa~XO7kL z2ueS0BDPsMU|7OLP!I&nX+cWa)ukR9!EYT5B2F)HZ$$L-)T7?3@1!dBb!5 zzii~LZ8z}39G*_Bsi#m1qxF(owuKk+JIh&s|HWIk(U-XK6jze>g_gRyY49bGot0da zo}(SyGr2HOlvTu&jd4oZC~bL!rYQOa{pF2KYh=)MSt!W08WJS&K<_Vr!-tR1<*1{p z9G^#6OrwHZu)D%#yA#3b9+fhAGXi1`t>S;MkEns7itznzl z>WF6W(Cq&JOWo%Z%;avl{xPQO>*EkM?WXx2GVXw%;N8ESAzEXs`f2=_~%6;JpDN8F=@|)y?yNz(C2NR4oeh_2G^EnY_~4d z<#ZSy(Q9DPP1LJXAA7R66h!&~M4#9iE9zYXxCShf-uVXymM}9)1SoJTJvF~oWV%K{ z0}G}MxZ4ql?&~E9?}0k>s-bw+A92=$!wT3E(>EGVSu*l2lfyX4Q#8m|vDy&W_ta?H zu~ZPz(?M62E;~7{3uJ76JjA2_xR57a^9PlsUnnV+9`m_?R6P3#lPSa-Q`V{=f(nvo zzJKPB#t2mu_I??O3o#a!thB|JUq-4woES^ai|?b z`gn{@5AQ0-1)xUqq;lb<&qwbCEV1j~qP;TO6?_Yn_k#1{^1o#JJ(72LJBHuH z34M2X-^C{fE)aedoEffy{fyih7bN9TZu2cYoD`+oL~i}>>%1p;&A^(;FPyN|g(_<#@(l|1k(2~KcG6<}Kn z-g;dDqC&kRH*t@+zteiOdJ^{ktOalk_L%e$O3YioXoedE*#PEVQ5nT64|**KbwJX) z^N*15VPk^IJ(PAb?wrFy2e@B4CLa!ayHwh^U%G?^a%_k}2^~~UiHaTRQA3V}9dOxy z|G{I$=O3WR{FR+Szya6y7>oid zc~|bMvbD!?Fh@{OiIM-6)lqX4^weXFi0kdjDSxU_!8~D*L_&H}a zWZ-_Dvvh2M4n&OiGVbnWT>TUL1);iH*gi$_`?O~5JSRWO<)_L$2{lorW`VcY($3fI z(M`Cq>&p%*ZMtu}uZsA(eD2B+=ZV-E@(pZp_0l(c++n4mzGu-ZEmA0&$In_~`ATTB z*79S%wwP^ZW!QG1w8W~HX+y@nEMv>0a-I6M&uijUa?G}!gB29PZbjq4wq-$gI~CA9 zhQ88nO5PDQ)ZSKxQFdC+1`^f{MzwEK8(*v2rrct*Hkx0z(9upJ%rrI1S~sUb*I%H- zTL@51$e`Gierm*PTDn=u#JynH#Qoe#Kq+jJQ+!Y?|EbS2>OeKo&Y+o?yWH!2x&5&N z$HyivnpK3Mq%n$_P6(x1fmIETsMYPLyJ<_-2z7oh&9J$#*P3+?WeeOVOZVS>Uc@P~ zv89oD8ZkULC%>eUlwztmV0k`X$Cka+G)ce~C2M6977?83PHj>ao>DTn+dWL>>BMSk z%;Tk5^?8cw)?{s&_&JuqI-mE0x<#@sG}2-Vd-mL=mZl1PT9uy4kb&RGL3q1QwYpAu-&NSLHVM*>5kVecx%~e^U0?3<@2-UK({B%jjRhe8;1L z`Kx-OG@koHk?!6*@P`idd)|FS@nujzvT}3B7$uS7VuynaAO*3@fTE}ybp8<@ZvF$O zmj}&af%*O|gv7%zs=HW}Dx4sxS&e%mKV;+n=KB~Ezo)|>v?h6?ck_gM#5T1BN7Rzx z-pvbiZObrhWuf6nvNJCV;NLujyFK5n{{F<<_hOfAs&<8h75P(CqLxRvMK)pvPJHN? z=LMVzc|q8=4)MvL{!Ki0d9=Hhpr8*a(gcb`ckjjW11n$c7Ajd9X!rY#2^o4~x~gml z6TxbG;i8ZC%(r_<1N%#I^N)M?@_X*#K1YI^X0S&kUauYsv*$5tN=5=8BMD$}4Xkje zZ_sYTX6*XyI^5bMtLoN>f145HcYN@*g&d*}eYP9zWZ&>^TgX|451E%@uFnq!8-hsp zXVSLKW0=jf{ngPO&vV%``!*Ytz!#c6kNkmYa?-s!2SUlk2bktC?!Sjo8~bYaw)}u8$t$c6K8{-PXlEN%dY?E@fZeMduC-0QX&qRsg3Qbw4gO`tAJL z-QkFBS6kUcB(IeuWx{f4v*Paru}X-R){zsfA6h z4Pp9gcMpd@$OrzdDsX#8mZ~E-Kp>qIZaj2 zOyc1CBX1*)rLDs_^Z>)0D}Fk)MR|=|d6nU=2!7BD_`6}Bdw=;oIHGwOXYqGVF|uT+ zynS6JJ-&1>@0(PKhX?zpv(m9Y5Hw}4~FV*KlG-5EkD zLn6e*z~3OT3A+}ybs;#8_a^WPOSSFDj_Nb`tX?M8YSa7BX@?f;7U`XkvZ~QMt{7gj zayA$Whbielz6p;lhRF``wNs#g_X+jr_6-1&jwnn^r0oEg60K}-`=5Z?FF$>~I=Y)J z98I0vb2wI{AQRNyy?tt|*T>hx%);s%wfHZ8|8q95ux&^HgP<{kHu3PIEB+oztLjLz z7WV?MIIQpa{v6QX+&m}?x8Z&>?A6ayzbgsw(iQe+>7rToVDnyMdV9o<#is>l;@G(A zYeoEg`cdVXld+}2xsRz2Mgw^YK&;)~*LkV?jWT`D{5Kvwu2Ox5N?9gRF;2_^fBY7$ z_PVSn>fMi|-IZ&j%HB%UeunM@DU+MsO8-G;gCNV~?bSQ$UM+{_L=Pu2oPFUz!X~yd z9l~WA*x|p;%)ftX6Gav`?VFBVxeEMtV9zDNQv&bXMR=I8Sdl~>H91#^ur4NOP;Qot zNz5qktI%r?KPKwcWPkIS8G@lh zWQbM^V956rwO^mEI{!u)hC)&)=;*L<8@B{q6mhNxs+?5Cl$cK4y;(Ibz{N>N4%#%b z0%b)r3NC{?s@s4B5@UbS!3Gq8gd~STvZWG^T1fdfs=q9!TDDy_Ps15xPyG@6d65e) zb46DiTi3v%A0=DpFOcG?ezMjs$;1}>FKjZ9NiJAPPDEw0CF&aB9H#q#Am^|<1~D^S zQN{#el6URx3mg~4o&ffX;rpjJasSXef0>~bR{sXaXI*Mf0Z>2kDRn^gDV=fs!Bpg& zO&PklwRl$EcbBz64$pDE_fn6pdqwJem~r$QLiX~u3x4N0Z#pavUWHg+K!K2Y1=I+B zLbN|7wjb|!LHPRSpsh>?pr2kS|0HnqTD%RfPVGC3)M>*xw7lWukIdpRPAc8I#BomR z|ATnC`ThSh@pLv_t~qV5d*56q>M9D+wE_6LvRNVA#Ev+lo zgCTD1pV(t+-=6zkkNam(ta%(1GUVEf?Q7CHYC8c#9Ebnu3*l^BbsGR3!O5F|y+(mj zz%;!YI*Df0EQFS71+8(6D8c}QE+?nJdI|vwrS|~kw3+b1&c;HnMITqY-W1RVV*pW3 zGVMhGVHZpqZ?Da)v z>q?@8><-gjkc>EHYux5ljO^q)Hvzdt@HJhCmd#6oB-v1o8$5d3K+-kbmMC{N{WF9y za-pjyJ+O|C1G+gs);*#NuP=)9H}!T^3;{Bm0Er&j7V#W~tGu49TjjEr;Y9NKH)G~y13nMo~` zh@I!%2(Y}v?5J*^Y942tO}|fc=QNGz;4aTwKf9w`hQbrqb+GoR9o*gwjg8Vuf{dc( zGp`>WY$|Ft;&loX0FlhH$Ey4u{98&7cz#9Js_U815oWgfIJu>;ppicTvdC`@+Ucc=3(zW z@gguB!vI(}02GxtZZ*P!J`WU|(}hB6`z{5>z7_+b#(3_>?m&VtR7z0j?NI@E+A7$h zD~u0&g%L#G-WHXn;2)lGH$iB&&u@msK(nNa`UkXFdmWJL+i4TrI}KeHa*N-`#{R=M zU24t-lESAgZ6Y=)eb5wHg7NDBjA&)fLUbh}rdngz1?g0ZfMpq)Zxvb+&fCPiliDXU z1LVp%i{9*v+}sX&K;;sd&%Nui(P!M8X9xhQhpnZbo3#D~;{VH}A-|qTX!ITs&G>Q9 z+`~#<^irK=qFCHP$Zt4+K#~Ma79*g*TRJ(5}|vT_K6=_4mpd zt=dEb^NLjt&n-Fpa33zrceyNR>@6b!-6)YV%Yj0P_44muz2jP?(0!?;L=;?~ z=Iw)%ak&->5jze}|C3dk2-vUJMjF|xER0$p#mJ5l+o^PO=M{kHGy;CBRR_SDW%H(v zguZX$^SJ6NzvxdT`P&>LegTasNLZh9WKzRWsQ2sk{ z&>gdv3yLj-twmT@_W9h1k#znaq*C-ZVyC}x!;N8=rMG}7&XLBx?W$hTK2-rkKjU>c zi85uQh5I50VpAP+_Tj6*5NI+=htfLCjOtzdaToq|rS~(9?hLsU#VPMF$MgJsu)>G2 zAyn*uL)tXTBoj`b9BK24;NfgQ1!ZX0XbLW;rzSX2q)XW-(r?HSDfW-PYiap6gEWFI zFimREZEwA2cs<(_5W=JY*VRKxhO%Eh6b*#?cJUlZ}N!P zS->702et7NcOlF$5B_mGlUr}0No%3UFhra2pmMx1+U$`)F{^fImyb-0VpxO+ z%=BBJtn@KbgWJXTXL|TQYxmcm?vg`rsdX)IPOd^eAygp%@`p&S3>BD%_)rU}s;1w+ z1d=(d>{@}0t1DFHVVbLwGQTSn_;(m>g3-p3`4N!EF>8mOLAO<4g8}7;v1Vb8&S+9>B+yfTKdv zZ5NTxC)|dz{^}*J2LRIcm8o3P9}WhHJV#M6iHnJQdT%Q!Dd`*enGvIDluuG2ae3{@ zCMTOC62WlB{Y?j5$dll8mx^d{LjWhWIrl@U);A!RY|u{-+-dyI>>HrDLOEQWvO>*` zT#k!cwyv|O$=yeCAGusJjmadcg0F>K&;#d`MOEh=6N4i zdEvYrfu8naQ9;DMq)G3|?xcnyMt@3{G)tbIWNIOYPzGedAn-=@f`^9+EhDBCD;$ES z>)+6MqQh+wm1%5PgB@gKch*DNA4dTd+3b(8sYs z*x))vU$E&>PbAO{xNxS0akom#7eVI1#7m}Ve1y>qDB5r{e8;4&a|l+0rnGX}d;$81n#$mB|kA168(kJ$1KR<wh8xzx;%Z z#ExWkbTDh~5qO(Od}uip&OAc#OD0~^5yMY$CcW^hQTg$1d1)-k3*CFHlSD5N1E=11 z^^V*+MDs>ZK-b|4CPh+k<5bZhusoZxqmy8Uhw6{oG3(oP-VyftVlTtb@sgPYKP zE@fZQtY}Xb+`7e=^rzxBJx(3E*lEmG3UtzPfI8TgQD~RYix*g*vA?I`=T4 z6GZ6e`0h;UEV2`zt*>q(S2pUB&Y8EKL_hr8`Ga2d=OX&q+1olE6sR{<;&#MD939u^5iWOc5%oN0HSbcC}DVdmkSgZwHl(EEJQd4{fD?jV>Xd zwT+<2T+E5?k+VZ*A?-TSwnXpvb%qh{FL~{*_s)e07PvWz`mq{sgq61mn1SX0I_mx@Z6 zf~FRIW^Vi5?F+VIL-ZM3oezrG*AcdP5v9_3&T)99jn{)rV|e=pJGb{s37!vhP3SnR zPQQy_UG>U3HJ1<~y)$`weWf5vKgGSmFt_B~^mnZ)AJ6W{&tnx1gQQFADkD|6coj(u z`4@}utdu6(96Huo*Z6F2%%NyJhj-H}O(`}plckkxyX$7>oONO(<+v=vg4ds>HtK9{ zn`@}(N;YWWb+T&umGK*eOR^XHn!B&@hV^xc`*CHxX?o`}zus(jb=AvZsOw8~=`-Qe zmW^reMN%+A4|Fn3GuoSHg0IabEbtX;>MmqgCapQW-6$~Jes_Km!;L_b4Jx_l@(!^Y z>z*dsvlm+2ui)0_GUV28Ia%GTt=poUp`RV%>s`{z!DcDN&o5_`9`-mQf4j7KkJBkX zb6a$_V4FuI7hzSbqnnj+OUUqbf!jcE#pYs3_gs=OGnzAWICQmXPFg6%NjbifO@#k$ zn5{^Q&yAfi7n;XP10a%uw4&V=X1n5m55#jtXd5G*2$%V>MN(iZGz;5?sq&@cwL8JA;0+ zF4#Iq*BniunUr3^p4BSYX_-DFvl>=-GndDamEI*HaE%pEKS0V!fd@k0+#ZYT_wcv} z{1hyVUC8#zoi~30o+chiaIpUuu9Ju6qMx34BkX)|chbFx&rK)MMvsdBItByii>uNJ z>o>~3Uw#AF{r8qE9c#UW2P0h7s-Ov*7g&^!K)2KVqbPi_l6dy~oj{YG% z1|A9Mn`{t$)8&A^NjwGutoSOkw`t$OHe{IJeboPhTuQ1^jjO;NWfJ=AewS?flXjfl zk-A>}p#hqK8!pWddks2bXcuAIeMX+C`>iE6@#H=Z;-@@M^#^@@2f>^P1N_--(m%Y3 ze}!Y=uVF;MpBOdc&StRj~1cdJaV6dM=!f#|hiZJ}}N#XeBl z!)~_gYM7^?GWF$eUYP6gxBB0mIh^7ZhFFXUX-&o`7JAHYiKgapClgrW@gDm&pRn*Q z=-oRv%P-vD%aHqfxYz#*5~SysnNDf~6S=+a=4 zS5@sU^%?&=9rx$NBl!qTI0_y}g|X8Ie#0^N7ZA3d(tz_4HG|mr-4fM&3BU{Aie2F$jQo9 z(?tz0#~|DTEBx?k+o17X+n%p{_hG2VW%_I6(BS{-q{C_7!1gE90@rX1E?blRq>6)D znWJDZ?8_)vj`SQsT8k`Jvf`{m)0t$mD8Sk*%**X2m$Mh`Y8+H7+b`EhN!-<`;S~B- ztKKb>kX{zLn(IlAPJQ3tQ`J%-H)BcRWmn>&^*|zAIV5yQqSPC%fU}06LoYCOm||ke zP74hsryyS1jA1LsyE;xEb+Lpdo%kxiU#%)yv6X~MH7yDD3mB{={peyAaO!62byw9z z>_LVK0si#Pi`6|0S?U05)Tu~i7+s6y3zn^j2&x}2;_t(83>iR@GO(_w@HCYHuh|2P zBk~m4oe<3DsPf7rPfcGrTQC>4S<_elV_f8KBl8m)L(b(O4yX7^!m*`gnK@8k6e8Un zu|M$bLOsUp?kn;91($`%CYD8747EfyC?3RNfz!J!y42-LvG%Pjutb5lL5v;~smXI#p}n(T6k8Xu{)gI?z;SMJly$CE>i}ynxF0(}Dl> zCkFb_uHB5kBpT(R>FFTjNIM(EcO$-?MBeiDP1unWQ$zgdRr?jo%Wce9$>APmX|eUd z#lfcs(3G0+JH+xolSqylAAg3?u5XFXWcW@iO1ViX?&*+{Kr;r;S@8uZlRY`I~1|@IB()Pp;ZV zXBl*-tE(R`nF!W2Sf5368Pxly+li=`Ib=Xw$`ue!Hqr*6?LC9`IB^?5&ofN41?hH2 z?Hhu#chne6I8Nd~O$1!PNpiEL7hO{%ukp#&~4uLU63>< zgvJ2MM&RSI+A!pdj_2on%hkzdE|WG|5@`^wN@vk2zYm14nE3}EdCr4SFJN7<(YSs? zR^itj)eLZc(E_AAi-3~o*1-kbBoMwHV%ZQq-qa*7vof^qYYEX|LC`iL$T-@mwn-2j z2vyz#jD-mRQwM_h=`B#g@=R72&Hgt$TVbQ7^G<-#P`(DLqcwnlG;7t)(9$@Fe!c;5 zednI*f7rZ(8A6VOwW1loeO}^Vv_L{lvTTU!(nu25-R2986ewNSA&gdo#qB}pl?Xn| zh6Zv6MFoXRaw6+NT7W*5^gBV+9K*XbSYj(fQ&0gU`Z~=Y0=h>M4J9^_6??^6KuHp} zoM!*9^BgO8ryVFHsl$N|b{a+EHGKi4AuR&>(vVhw-}Aa}2b0}+d_Z{L{K%Yu@yq_} z#Aq$%*po0Pa=@X6ZUUsWiCS;hn*yy*Jlk^%!l@A=KxA))M0LB7G4AP$vN$_YB5()5ryws>CrKL zdBz9Z3lQiwXWJNTV_aA60y@Lx0;hHL#L|=2K=QD>9F(N>y(=`Ao>$J}5{oo!7BlO* z645oTbG)Hc`_X$G-<3#!swA~;M|K?&LmhPkry!Oggk{7bHKT_56Q#%lb=1_DAnuny z<$P`0%)#%co>AM*K>+wrS%D^u6K zkzy}rCfi$F(~kv7fJVyG0oCLY5p=(J*xH5e&i3rY(gPZcy* zj_E4}_Xh5d4uF`hQ|U_M3IVtc5P+-t6Ts~b1eLRuAeG#3kL(sj^i<~lK-FG^I^z=n zzA|PbK-p)nZpq6>ngnnr(C#5%xbKM%%$LoX(GWAru7|w0R6G%adCJE_N@}ebB(Nn%~ap1M)&?*OE?uE zeZAPU_73SS+g;TtTm^D=9gECEL|31>4vId5zwig}O!?c4Le>bPl-Yo~2LnJ=&Jfli z7`P7PaXHl$7qf28oMk1xUSj5+{QcXtX=*W$a|0N&jT>9*P z`+Aj=EelPpK+rC=#9~rIMdfW+DvF7+jmT;jSLtM=!rpwgn_pf&&(TI+Gmxd&*dEX)5IPxxgBl@kG(F+`<+w>@C- zzpDuU3-T=}>5Jy&<@H_hO5|-&j?s&GgKB*P+G^1cs;WmA2nDJc=K@08&>BUKpx;lN;IgxtFY#jDk!8HuD z6K~ZT00hkrh-@Kuq3wD!Pn4boZsz&%np$R1R^@hsD(m*38bZ|kQD-$&Wb_&+1+Ay5 zyS9~U7T@ZE07+aG4=J_&RYMptISXi^O66s;z1yAo>4QG)U;W) z!tq$j3us!SM{}LYes_CZDV4Q=R|E=Xi$+EDr7AIH)g$pPUJ2Ko>ol}sFCK+${YNF? zH#!y0pFu(r`#;5mHM!Id*`p<(Vm#zoO-jz?A$Dun-QK8Fw0NLn6F1aXP5hNYPU&Rp zAqkphxn+N^B`mek62>jLMv)5YlX8xUj`?u=cz1I;ubGt0qSAI%K3DBFR@H+Vw``QV z=&7V=aDLX_GsYhn&3f&7RO$*ir~?=Plr(?JL_Qa{=Fl$(Sr}$j0bM$h6Uuy7pEZ2t z^M{UtV0K+LklmF^@X+j-JxH+Pa+tqQvPKxenu^u(jF3Fs(3Q7}tu+ma2Izl{=F^@f z4)=XmTkYe%8nScNR&(v~UIz(E?+rSSC9sL5gQ5P7I4a|>>=_v@8S?;C*ad~ke~?BQ zh(4HctOG9g8Z3E#Dk9pZ;VNTx`g=o&G`b21wIm#$QGz$tm;!Ic5)Yi^=TpZP-_`Ob zvs92Y#T&>#-)NV3&=&UiJktju@sDi6I{!t!s4L!6VO_iZ=)I_N@$V8}6<~?yMzG!OfaheD|ZA zXH%V2t-s%vFSaL~3nifHen33-YQmc?bUO>PUL^}DrQ24Q6h!JD2(-XGei1Ek){H%0 zmQ{ooy9w#MWE;S0Qa1mJ4u7Yiy@k(Kt2Q{WTDh~>DAm&K`AVg7TOXTOpKMZOb1?9s zzySW!mi!uotiFVieO7zDSkFd&vIuJwsPXKi{v~t>lv601bkJz5sgS38LixT0ROF|p zcK!CgnZ-EDUUk@ge>G-A+B*vWwFI$1@Q|DWI23Gx>N3loh$UC{hM8Dy75FniK243(tWrT}NIX zfftyNv0-Y5CG^B`UgeA=b_K><%(@a$3nXvaLSQw$gGKf8jmREcbf@*p9Bd#JyP!hV zGGE3ykT-O)JM3OFlYhSkUw>$Z9HgTH^xZAkHinkm_^F+z-yKNB<|te9O0B)1du@`z zM^m?_txqsoQs{u}at=GM#ht+4$yK-^*G&Hw)SC~49LU;>&Bih zG2NnC$R%?TjO{lJUY(U?$#U6Uu1f||>eo6K)hW+?LOjrap8lsSE;O^(E^{oK+#54j zOEC34kZvVE;WOO%EJ|aTZQUMj4@#j+9SB?RymDwHlOn0Bkn$6l47CGwa>ggzX;wq) z#uMF73(aSnZi*}fyUpQ&CjF|?1m59!i6dvG|NZ$C1?UacyV$SVm3@YzpBIi8yKU`o zsOjP`hCSt>o6QD03^6t#nM2{`n{*lI%+D66N$Vl`!;6APOh3NIC5>`_1m` z)jwYgeZr9ftC=416to+I6oQZx*spSgjIVQ_{|rNUK92GY_+@SXY`869P@`bdoA>)| zu2%E{&{LkkY9{CKtlJ9C5TORi2HrG%3i)nv`nk@@NI2)pK+r4J&ddLfl7 zWFbt`iZx`fqG}=4O^#H4Ve^`W>z_j@a!H<4Ty9N?X-7p**w?x^K^Mn7_Qx(LgJAy`Z2|#~(-wF9} zZzA=4iT#97Zj%VHytdJ!=A&e`;IR?dj2HJtOuv4yc2o*kdj|EeR5ezsee`{m6iGzp zLjOgFIQ=w1g;c>K2Mh=iVn3(ZS>efFZB%Ru%4`iD&V6vJ-!045MW5LDU=*Xy6fbw@ zn{6sZ*q?seXrip!{0Xa<^OpTFw%kic%sN=kKZZH`Iu;hXrsS&l&kz3o&A)!AK8AmP z#qr=-_nDFRR~V9327WHOe+JF@R&3>8*5-c3LTVF;{x2hU$Hvf#)ypOF3T`zvemQE3 zA(*LF@0Ha0p87zsn+;)%ov1hk=PMzRESjP`C?AdZ+46HFnqpok(ZE-VTXylw5|!UC z#;6m87{>{f5ic9f)V$HYIc z*V?eL30GX>EIjYtHE@2>Kto+kwvnR2+IL(_5)oO_u*U7{Tor)@y^Rv3Z+DWy3nn=wsev%85V0top+amjm zQnXJ_kLyGCCuN^sF*QmI^j+?u;+4qZV)YYRsl9G9YoIaaitf2ivg7OAQ2szuM66-0 z*50J6v;O|%Rqs!>oPoIdeLxX(IFskK`I(7^vB@V5Zpri7qPLA1)4YXqs_airtft!e zvToANqGn&N7`8}^JmlY4y=BGqwzWoClswPcz?Wr0ZP7A}GdfRmCs-)IV2Dez6kW)rc)a$ zt=ZBt=@2{d2{Whn?ZE}Q(g^F0*e(EX1y*H}+J+7=Tho;@v z7}U;;U9lbC;}WO}9+xh8gkGvGrb}hHuFm)Blevz%Np9wo(DKQ^EQ*r;VhO{NTDKs- zIjXljD|IhX!_yc)ITr;{{?4LlDcdI2Fe9O!fP%TxRAQI3M`Wn!;jx<7D}?q%b`oNL zE=?m+lT88HvV4kbkDeYZd=_}@kc)I#K8|u9uX?lmLb%jBI&5djSY4fCE|OYuzih+U z5uC4%3*93{ntnS&)!zlL$-9ddxKtJt>a>nHw{Svs<76BB5%zCY{A zo)-45zfnzYruO;-ZcF?-CsRc`PIG5=92GV-}HcQ8{C&=hfzTriYoF4qp^wHWv&{__ZNFQ{`7n z+*Sqi9VscoEoo@In%w+tdZe97JsD>&flWQEDoNqeQ$Quj8=zq6|gk O6F+p1%K%Z9>Y;f1&2%PyIChy z5nLri)ez^sgVqo)om=mP?-j2j5;{;Fa}y}rijCf74@hOB-<)w<%A@)u3|u`TzWDqm z<_g!-#ICKY12y|1!c{))_ZOH))H&d%2UUx?Zauq(&Ub+3FIEbh&uXxjK}5a8%1$`e zc@(*mH8`Cw?NJ>-@QFrJ7*K{<*VjMl2C`82y!vHPcvPRozYVufj&f+=tyvlZYPf>n z)@(#zriz11Jd`RiQAp2nu6*(c(aRIF7VaJ$pnq~}%5 zMW{?8uZGppJ(;#vueKl=-96TA^ZH=*!_(mF(MpLuKm}JY^CF!tqKdgF$Pb2+N=;>h zA=uhx$P+}TxP^b6c8+-XZVUB|u8e{1(}YDyeRORI*cssrcOzvSCAy6MrAnQ-Gtk~! zdkWv%OI)^2%)p4EUZ*|oT2(cb+PV^38WcWz8OR(*xhYT{yLszSgYoZfbYfFhSzG(2 zNB|o&+8Iipo(&gy(qF2(q#^8xqcnGU18TTl4s2mxgw#~UdHwu)&nEf6u=E7BvT?v0 zS&wQSq-^DR8FOjauYSY%>&Q61uNm*r8gbgNYs_uieexnH8cU&iX4)SQ2J^5=>{@(Vz%-d*fjZiTTDb!xTN&e>vZeU)g3se}V( z2U%LJwM6l_GCH}EWNtRUDT1RjE) zzayQZtr23U#t$v)*jAkW3cLa-O=esybYg(=X(Sf$^tgBXv2PTYf9+hTLM*XdRD12q z#WSG`dGGpK>|62I{(=U@SzWJiGrX^bwI&otIpn4S^>1VP!}0my-mE2hxTI`M81i2E zwg2GPNF9<;K`Hx`p3eeMvNgw}g!roQAp^^RaObOn!>QA*i4jA2FWY>;S zb0H}cj_i+C-;ad55wT%Rj4Z~BOwoaI_im*{=NG?HO$lOfSHsuI`}3(#BkYjNUR4Dw z@4Id|^0|Rd+4;gtnBRYjC%2PvoE$iVh2FaN`3OZ%=wy;&;>fAomEWtAQi};cm=7jw z#%|0lW{IWwmzAnfr1BZ`!oQo(!&X%168L0c6#BZq=N2Sig2r^*h}GD<|1vQCHIwFQNe?oh=U2ZXlosBuQY}ACIOE|ldozFh2qoRN zGsrl)0#p#Z=me>z)t#Dp>#_ou?SoT{8r-*N=2JI;Z+lAYlJcP*^{=l6-BrTDR!Vlh zei^)v7J9^7*aO0pji$s7g+JB;wD{J%K_`j~RonvjBYkJ(%sbDv+A z67Q3dc`1t?p1(k448(Zeu#ic#uc`WFa77^8-o`XAQfu%i* z61apJKJ7kYlOw~hUp-9X?jTr;0S_?75H-Aj`l_b@3J7>VRC@7e)2j7OkOnHC-@SWx zmbTIYds`{?d_}w%o{=&%nb~?^*l+@`{@5WuyK*pmaQyL5<`Xakv%C**Z<0g0v!O3M zLOzz-XS*OnaOAiVPn#njj>qgcyW$?KyH)bg-nGUpW1aVrX{y04iXG79R9y;Vy}%PeJH$o_b0X4Lbvto4(RR2`r^qL@Af z(?QdI?`0ckqgZIir{~=Ubx^m!m3qSECg%p6Qe!&;{XMMJHEC!j zT6X8lY4=diR5`bmz|PN1F_CN_ZfV!VSvSsEqmLapr`cqX@icYGWn^b1y*p)$H_J(; z6cBGa=X5qpc?1PD*dNCHJ_H9d$bEuTf3xXH%faNFmqtFEAI_vHra)=CzYI?DgaSR7 zFJil1T7CSL%f1&#eLdAGW>ri<>5Z8sAWPV(yFa0u#EzJeYQ_b?XIDAqrJU>KJ+$tg z3iloe1l3FJOTahgbTQ7a)U)`G9E7H;9L}4O>ITr3K)yeFrM3*?XX$M7e3sgA@J;3S z8urP)Ksl!dr49fVy}kUM9Ql5G1Mri%#J{mW{R+gJ&sH{{JLrf1w9sl~XLxg^B$QXMXJa)6BRm8U$eD9lPsF)H zHQsK`0f40(BKfJ^HFb3r-uo!FdrNeGRSdIgm%3rg~kse+zz(xFqir{;qVKd`6 z$1@!Q*KD`78v9@S`X&O9N)WEx=gB>)P1+pDP*x&9vB`>Fq@wQ${RBjZw zmN&AM@vPP=mU7P7f&_);atMF7=?B7lUyU>hNRSitm|FhIoO|KRoUn$Rz0WbbpYw(B zsO{t(UV6-dw}fBZ>8(r3Cd}%M{`MD>^tIIlCSI#ku0YE<@jD)-t*tFz`0Ss%bdsHe zH)%F6c&qVqA2+PVgc-=Bgf%9{gJHbShJ3hc-H^l>oK_-U(5b|&O!sILFu6qWl>9*Q zz=gFkFjA|Ju_5ZyE4vQ_Owyh&MkhgzrN0%3{gGld;9r0wGMnpA)kT%-85i_?$ACH_ zyEvS;a%0GGgjs5!&JQuKFA%!zV=PREXAtj;ckv1BCd1PJrsyXR^9Cu5Bj0$Yp1I?z z9{;$t8x)70peQ8Qwo~99QCxz=B}*Eh*sUeH)pe5F*7@A+*B++lKS6Be@w)9I$fPuX z{FZ-YG)RvR`LemE*`fa+igf-ya#`7DupJ%0latH5dfUV7e&4 z<#ZBToS|q$7h2^ATb+~k(R(oN9hM-r)7RP|vS~5U--Na)2eBT^-e#+e*z!v`X;Amv z#(A@BBL~1n~ zfZY$$RRmar@4a@(R@H2p-K)kEm8Z7K)6Kgq^ylgZhhkRsbRpu@Ko!Sfbg-ruq3zqI zgoTE(U-Tj-#QJBT?{z|%KEzAkFivbidoXf z*4KY-)HDed%}yru7Om~51nCg6uP9P;_CW3I7C$H~ysE#a$+9(&nxP?a-RNWC0H5`6 zWFSCYrY1po`1B!A9xn}){C!nA@DCWUMYnu$fhsU4cDMUxQ=#o=39^TuK> zg%(?b!K|9$+$waj1En=SeX^FV&fR%7=*J^y2hD;mYu=B1EAs#&*t(dJQ*N`i0NK>l zJsrAlEkE0g zQrF~tKoxL7(XEz zz#KCG8Ik%z#jWnX7Ed!V5v*@y#e1!|K=$BN{nbhEK1VF0ogQg3#47JIJTyezB?O%a z_c@Ud8)dF_Z@5w}rZTwer}p(ebTF7Blj_p}isb?&_Jz~u)U@94fwJj|^`Ac7-UgEy z-Wk0bIVCMXjz>pF*V)m}Fb_66$EByq?OxPpI`)N zNAtGUAk4-@vpF;0t+ZaI`*z{Rm)`viYYd-Qp~lqhU*j-8V>oTh9F>{8H3tD8;(FN7 zz9hfMIeA}0^D&(SfXW#P0uksW;TlMCekykKn$Geo(@iyBACMxk8+2?EWV-Z`-e?O& zQf!K46wVH(I}X{am2M7~gv7ppk3omJ)^4c&YY;>oQ&EA0$Yre&bDEt~qMIf8z>-a^ zopv2P?sO8Wb=w&M{xX>_GnKRUBtvUT%B_`8M=^n7>G5@3guM zuPS15>Q5SAGtynBywTKc`F~jZ>ZmBUsBawy1u;lLLQoWtPLUo&QE4S4BoygVQkt=8 zm6Volq&vJKDBVb_fWRQ2qzv`$2k-S7-1lAITHk-qQs#*h`<%0Xv4O$RIGJ2+Y2>JD*LKbnJeHLZgi2(g zRoYhj$$CPdqU@_z`*BbviBShgb;2pmFA1m;mdnS*g-uq#0VIFgrO`9f=#xy<&_a?> zVo}AkJ1nVTi{WuOqBeqLCQ>SdY&bizr20fIpQzMW$e?N zoU?Y5@`hW3_7GpC!2nsYcB0>;zhl_%WJ^r@XV0C++mr z3S!t*2DWvIjNS<_`Nqp ziynl{p&i(n3*|-HcWXLruC#c#^K&{JgJCw>6d^ReE%LhVp3=1v_Q4qlMPsoxjoyCl zMZ}}(Dm8C~iFd4vKRg()Y8-Hbd7)?c^-tLK-}o16P2kKItEJ~TIo%7w>)|@ zP`9%(br=hDnQIpxdVG7hm>|5Iu9l(^WATJ-}x^@VwCo%x+s=?zR8hI zyL@E5{z@g^baWzbGzg|Mr}=6sPOG~i`R2bT=-(F_k1#op8|TO-4#U|XIyYPC^Ro>c zEAlrP017VY(`Xe;)!XYo2w4@0rCHt~4qo&t?J7}qiXwgU#J#vYKp&- zQxE(tS^DG4F+LcBx5FW4A8w7vSikC;Hwu=QuSi_P*pFpnkNmL`BM*(0B&cP$Xu43j zK^Jjp>uK%8zH4%t<2CI)WqyKtQ>>U`KmIhrf4WJlu0G^KOg+x9Z8bfz<4C&Rz&YKV zVG{0%^PV%0{PAW#U#!C_KQvTzm!A)5#)(H5UVICEs-rd=rSjk*al@_L>d$|VCgdoo zZhhL5at6hILfO}Dm?J(ox0MTdW}}k+_4$JNhGO3mv}!1+w#qgy+DAlj?#V~?!sm2K zl&Y5F$1{u2%%?U*5{n$B=f@iY^qG~MRKp?4r(=_Ro7#j!qj#D^oB8u{dX<(QJu*>Ct+`~9!dvL?O! zf9jB*CILo?m?FL?Ip@54SbIo>vooE@R=S9tTREdj!0(_qbEfm>n1uX69Od-m|E;f> zc=FdJOuNX3LcQbO=ykm*w0QTpaCm9}*UGfj>0w+qM>0*jW|B{JJgkqXue-96`K<7= zXvmt*NvG*;ni6S|tsgSBE~1Q59M(^?OQ8mtNIW#dHfa)EN)uTAY>9^BBr*G&@|zs8 z*yiKnxh^bkxEs*W1~}KZJgeWd36>takCq93a>!-TA!2Mq z9x|`HuK#NVUuz(s673T;x0z{QvvF3_XwHj#Wp3WwymCT!q_lSA##g>fD{{(H zboCW7=j%uKJSbQLrg~y?Bv&4suExSGPJAJ$s_I z^`<6UkzQZz>9~Vqx4L>#O55B=R^Fw=%M;&S%X?>1RUf#@aPiu}TwZ&IkmC5bSqXV> z{bsKHys;pQ;-|O4V^iv*U)9$+8x%eT9FckOjeEoTYEg=4Z4kp8HG(XsWIsvf{gSKd zepx;#SU7nzVZn!fjlYq{ z&~~=+P>KJ$0NX&z`!7cY>laU@dAFDNzoFF55_OojXCszB)nQU~OTw6=gVxmVR?qyo z2)~#qHl?lrwhE3w{;rnL`}Lc)!*NZgIp$SIQfX_8X$Gx|Yv*sK2$+k77|xONJ08o_ z5{%sV(7??>+*p2YBTX{11VGtvN8Y-X^Nzd(!ACLrJOnh{H}48N#Q(AE>`TLxwcP7V z+@BTzwHhIG&+W~3IcOGIs9M1%ZJ&C)OIqI(EwU0Pfbo4G`_D}HJ|)6YU&|cUm#4#C zT#~dh%9oBMM&nwVy2q``X1eB!M7h5QD^=9jXxk7OhT$W1h6)S5^JUUJSh|eU94>>OU|=bZxz!l;6{S{jda<{4 z-@{*{cSZ_k@wvX;b=HrmCp~=VX|Y+PDUwQC04*;3z!V|!)(iI$ER8|FhE1zO^l%l4 za^_S&3r1fN+f9`sO#J58mxH)39b0aS3(Ax*u&*cDgH{JnwpaOcPe8hVfn0jC(|1&i znDo(dP&dYOQ9|WlTK6*5cm8G?@$344>ehp&jxi&^$4{f@`J*cOj9*)J3P zJk98Z*~{RQnAlyY#e=!&xb%D+Z~N5hw10Z;-#3>>ebv1jAl(_DJ#3sNlD6Pnf*ZIj z<^cHVh+h%cIms?5PYe}dhIUaFvGa4{U!!I0CK^c|oU-f-+H;735L6z#nL1^Ko4d`< z?&AF7;eqSjCGLKg1)39ELhx}IGgxf@9hY?+DPHv2fhE}c4=$T1vPgA=`18}xzdgVj zeJrdLHeO?2Yi0-2uVgF2rhGEu>tRByY;3p`=nxEo)jcw1d**BQOiS2q!Ls_P=#Ttg zZg2W!;`fzrXbfkMza?OjY+u#}`J(c@~>`32-^&ZFr|OiEL?%!QF7J1}@~_GxL^?sThNw-%{aaI0#<0qZBA zP@`T?hY6vbYIVe!^G<5N60v|YupMU4r~*=q ziQNdNSnaxEmszPt??Kolq#=Juj3zt7VC5%+;r^EF{Wmr@EUuIuXDos7Koz z?W`5M$WSIOP924G^-oQzbG#M*+@euq(d9Ok4x^5y4VFzqOS~n0AuV4^d?Hd?A$!%b2_cNet(hgH>5s}WqT}g!QhlSY=cy)r!+lud%7N~KZ*Y29OX5? zD7Lt6Qnh&dBtF4^h6K!xMYHbel1v=lX-z0@n`#&I^Oqrw)oPELme4i}?Y5`yISOyx ziSDbgf`C8?Vj1W)ard3}G1WGEZ%b<^T3RB(@Ru9lRrCv6!XVVg(8!$g#AFjTF5w0G zOLPy%xHoe##)^~$YzIw-XzJtUsu~80KmF(}E%bnN0YS~tpW6NJuEYkDq|DH34n=1U zpw+H?q%p~JBw#*LA*LYad=1dZi9x9e;hiXYN@_q^1o>VnO#mWi{$1dOLrEc$a(kG~ij#urxWrkZ?Q7)~L6n4HP9 zQ>jm(6?w|4Yw(*r3T|Ou#H-byNyI`5bJSg}6&I?%ZX8{=VHa z@aWIiMuyou>h&Z23oUwQcQL-WgL-`^`zZUHVOs@2SqDyZT-)YVVb@-a;SKk0654~91-g~+?U*s zo`TgoPQ5I}Z2v1RtSRdCn<{y^KxC;PAoj(N_!30yH$h&t;>!btUuVwWuNqBBO{qNH zYo0uUF1-LJLv9r(rYX-W_ z<9GSpFWaw6w6p7F*(VwKKYj?4T_tqYo}nwN3?tHc4j~rnbkgb^#l-dyc(=JYyAk56 z_My^4p6^$%ORcu=(Fp~Y+2;J&%GIR12SiM2b^ZPQlWd!XS+Tttp7!rRpEtI4Nu-oCDS|WP4S}gVad78V<(^Py`P>MKnKkcc6twb!?I!@}$I$vq% z-8el^?qs`_V%z{ezsSLfsXpEtEE9ie7lA_J|%5|ptX%(l*LCLk7`1gAx!zAXPwd6-m z2D}P0bbfR6p}^f#TR+?g!{+S+NtN#jxG#VL(m@1l9@{}X8ZrY}`~@nHuT-{_j?sU7 zul^C#Im_324eQOjQ9^Xa7% z)}!h$*IVtQ8x_T+#J8s=M~8Q3Y732pug!&4$)BgYbryir${^6dcH4cmZ&U?DB->Shd-nFqd(%dKU7NWsOb}S#EFHu4u<9YcW2gCC+ zGB!gd?015mEQ9@Uy_@fn1YlGG5dgk6*hm8AY%S1{7KK2OD+32X?!ac+U58+C)42^? zlWX%WEz?Z}S7+~2>4r@ar?Z985Fxl-1pn=-&Gp%qzNElyW0l5b?DZQL(^a4>IJ$je z;1;9oUCvfpepL`g4}E%?cWZKKz_z7)pC!jR$ke&A=(v7;4N$8?{gp)!(aD0p??rEY z;{kp<5PD9&RdTl}{Sk+opm2XIjZ*~)aQLCih-%ch! zHOxXdhSx!_cPx2Xt7y^jFoCn#12YbnIRsB_p%$Mh9=VK`hjHHQO1HdN{?VJgoroop z$B!EovWM;_rWD`?ThBS*IVd6d@3bT7s9}6}k&UOIKbSICQ9zyMK9EhPb67G+F69J_ z>ErmLzxvWW_G2_@-0fF+mSnkxT*)Ft6x35TJc6iH#Cua^AkQ8skxmb$p?Ys;V~Z~UjB;<2JiXuN6DWY{0`?VpI#T7e27n;kOm;1r)i08}A^ zp8(Xle*x5xL3##;m`}6~BQr1rgx4=BIbYVb5i)vO>vnDykayD+s;A1Fb+r7d%flX< zR~LZga9w0&G_a#=czuRql~ltIFh`+!I#9xxnwYRo7mxT)f?co@uWf;LVVJ!O*qM*d zh{61b>du_7{r39M&KpqS>ZdOFd50QHMd1B4?70~ePaZ~zKoxw-`^26ivzsiZ5bmld$p*L#jI@7v$PnED@Rgo|aM9ztgtfKuJz;G?72TtFl18dd zqi-3(0G7G@0uhIK+i0`51J1zJFVZfAfs@r6Ts&@G#%a`DtF9MUtRt~a8jYBgTI+(5 z)AyAeYe`8xSm@>0-&a02$c+HH2-2h}5Hf37q_(q()~fhg{Un>4>~$yQ#G+5uO+x** z1_A{N5mYPBuwlH=qPIOVm1gH)cV_t4-tbDYI$qnQ``oVAtVBZ8tOmQYbo$F#EX#88 zKRN!nVDUs?+Qc;7IaIRDy2bLPJuxc!aV5scSy}F+vahC>?Md;~oUG`*DeB8}k)~cl zzz1N`i-$%uuP-p8BJtg)=4`%k^8Wbgln_$?u}9;54)3l#To@Ra5Hdz4QIa9RpHs<+ zYDDqz@m*H)IXYVNqhz1y>{_KtLh4g>4TF~eG|G;)*q%>APs(~qhO4tGCYefxB-IAF^yFORk$Lx-{EH^N(GnYs_!7 zG_Q4A9u(ppr_D14uZ5T09Z0-Wx>eN~7Ddx9r#ts_?HfR$B9yPYtHfNvthk-3^2>eK ztPM*jK;8WCR(4N!W@(+NIsP*J75>{w!2LBFB4m9~Xge}Mv|+4A7cTOZU`iG)_U*2<5R*tc2y5|@esz=WN=4>>0Yq*CkrB|NA z@mJ*1IeKNLYD#Ce-c1~W*5$A(+QsYB!yA?oYX~Wat@nGr^`Bk$KNC-cSy^7=X`Vqb z8?vXzYW@UH9-KhH$(#WTfF|D#5z5Ql6u1NRjR6LG)?x7W{Tl|U`T#&ih5JDZzMceIkf;>#387(qw+&jV1o5E!#|qi^N@aj~(JN^i3+eM;nZGsO#Sei{Z^NS>s5v+O!T zVoLy_u*Xrgdbxk1<&Rxut4wU+W6g*>I7JX*uXpZKYuO^OX&lDFwA$U~qq`7i2es^z zgvvkcpM;H1gVdXc4DP45);Cy}<-qcwPT(!V6*+07S<6>RdeiT42yfux9?5S~wnRhD z&yoFN3}~|5xTqFe3W1W&{GGTH$!Qc*JNHWM@gk?SQ$x^41k&v&wV!H-lJJ4er$>CR zE`?}YnbJo39)3ZZA`XD0Ej{TyP-5D407t9RNV#}#x6A`VzVrIRm1!=qil*gFQWdUK zlY~PX2q#U^|NXopET-j~$WCoiay@yoGkownME~=Es6IweICR9!4f0B&yry7I!CMw9Je7$I=Hbg4gy<{sx4H zwj8s$HZIh0o#jqE=~)nW+v+~J4HOM?E_2t9UMz}lk-C~fp}Tbp%$6Efn;k3pU-w+? zXMyb#U3JBW2efnFV4XEi2&*tdByoSNHq|zS6ih|Q0+kNJ;qAM3qIPk>+>b)ki=G7g z+?cVwOji8CxTg#MCtm5(8=WKY1?(NduBQ%Zh@38D@;`k{ve4aUwXBw`+SbyR;PN=z z@Qf?^kwLHCpQ|3mn4mr&w7!X>tC=mmq6egmz19ug<|A!-kTyb?r&llqqTEg1%W28G z(%7?#9v!Hedj%{BS3GQPo({nlODX+BeutuY*}kv&zT42q;Bdsl2J#m_*E^@eMAfP7{M79pb5C=4;Eh$iB1v!*{|t$Gj|Ct|EjX5?Zn*;30&OBYC&p?6;et*vb}!M>Os*fEMP;dzmL z6&)d-X0un>#sB10PpDwy4k=N}Pj~oOX!rn;dPc)elK^%FFO+v?3lme)`mX(NB2;l$ zq9L~xNTrxew2%V1ioPS$C034?q3w|D_jUtyE1#h49@zdy$A>GM5eD)h4rPmruS4`W zi^EXsoRAqA?&+EM=k)!{*S6-N$eDzeEr#tQcVLGo!>CJA9YwRp=}94zL6|PPOTbod?AH;+XMofI-!u9hJ6Q*$S|CFry_wkKf zjA2NU>n>=JCk)4Is%BzDSbO?U6WIkrJ|;--ZfTl|NZwOOq_L-FTW&j+NW!?3hhE*h zJ`#|eEC>Bw%|`@;cS#i*kK50*I^>Js;SQ^m?UH}|7>gyNW@AaI4fU&z-AfU_oRG6; z^HgHap54LK#Y7|%yRlw=rk|g0vQsh@IY?VCT)R)8o_TXM{I~4pRueK(?js}#qkt6J zaz4(BC8;?3=AzmMi{2MUEvtG;x}KkhhjT<#`xParLEbgPI%RDt377uN#8{u8QJMao zob~%(dgAw0C)9FGdW``#iJ@h->Nq`e`FFN8=Zl1trh4v)nAgRF- ze_j2(l#?D;)n-OpGMUM3#mC%7;xlZFbKkD5bbnE1WBzzmc-JYmCPS9Ipv79<#lsrS zm$F5h6$RL6>lX#)J~_wdn3&DE8dSAq%V_&aST}W;oKBW0NjW9q!9LZb?L>F6>l=;N zlS7sv=L6mR#7eF{d-sl8Da0Vcf^*zDl6(BhInjcR*QZBL2b}2h-`6DO=WHW-Nl%g6 zHYmW4Ilf>nT|Ol=Jxlr&SA<3Wl~0c*bqtqk1^sg`U5U?qV7p*Ye5=xlJ}!~Er@Qi; zY+m%l^~e~z1_LjV_&&bON6z(?R}3E24cvGZxf(nltQl??r?J4KC@^PH(QH`xc3e^L z!E(&5 zJn}SSY^!hhUvnz%(cDn?PjVl$aeH!<&fNaKoNDBBJu1*r02f9#a-&y9YeY+Ee$1xL zs+0do%${3WeDyuq@+o*a`+K%S%nURwdAXUcel$)IEA?W2^J9t&qMK{T8_TGLx-YiY zHt!qGvkxvg(PA;Kl`Hc35;jxPUR-3yATvhaiC~U)WbRa|;Gbhwg4ATW_i|aj#Nn)K z5W$jB)4D}{iHnn8_Sk3`r5qSF6f!~eGr#w{*1s0?TZG6&@e&(P&4N)k3o~9`@vCXm z=P*nRVQ0)pj-I5IP)$j55jztC_yLC1^URFdqRggiN;x=L(8In`N7J-|6DpQk>q%Dp zIRPf5v4_8RNj1*#+;yK`hS`w7=<{Liwjrmik z$>=_wwK+r|s4`X8Kj66++zl{OwpDUvsoF3r!j36dobNGCQ+)eAb{4Xat20k&NU+UB zH4$eQcejCENF&?Ycn65LJx*|zS4eMwHlX8V(mkV7?U{TWQ=W?!2k5yoR zIx6@*!kj128a^)47gqmkfUEW-%-^V_ugf&ub>>>wu4Bp`?kx+h+2e;v4#C10+kpOP zpCYKNRdK58Zrb8H7ww%Hjwe8NC6h{fP|ZlFYE5yMN8R8zrCh^Fk}6xJ^@_5^+rlpK zoTw&JSOE4(ZW?7b1B_vf8TAnL1><>EEV5^w#XG=mFh$aN3Sm&&FeF(_YLcc@#xaUCRa zcA;?ZPRU)_3`Lcv)Woy5_H;R}v303)D;*O|k zt>;uSIHivehJ70-%`%R`%o5d%!`?BwnLb-0J4>>AnMuX|DuZcRKHg~+jYH8NOzEc0 zQ}V=E6W4It{l1^jpCm}~ND=K^dNrJAt?7q$R*Jc9v;wpngqbnm zbduI{H*I`zj8*$4;itL6A~UzR@KYdyqhD^LgJxX@TRvMyMCZP?=S>tM47paov@1k&oRQ zqAn@fbt_=Mv?HvjFECRsW{cr%AB@z7jZv@MP91r*%|5Ml1eLQk+kL{*#g(U2Db@gW z=NNsw8ZWkz@=Ix3QE1`FE`I5Pks2DtRu9yW9ey^PW=p&JV-#g%VAis9Hr>i@F{nv( z1y`_X&8lPZ@}1vGQvK6oo`d9aGhJ-D`63f0wg~+R@8rJ)`B9rr-Lm%6wGP#Wn$Kg0 zdX8X^P<>(U7@<;L{xvSZloRJ_otaN{Fcp`O9|XRD7a)ET`EuHEpHw@NVW;Bed~LrE zh6P>z*6xg2)bEW9;gvFM+BOYTmHG55&?*YpUfn%_07k@jO^uO&_r(E2%O4-J-38!I zGq5WRRRGNCw-|uN%f+S)?#Zo^F%m#K%f!BmtYr{pp`^`LeEn`+ykk0XVxl#TC0U?c zj;8NxwLtkR;`+MrMor6{v08zguW6v32&<36@<)(gcwkBP9T3ES5m+l0vQQD;{Ve{9f}1NapV8@CWJ)mpAct3B&QeIoRO(AWcNfAq!o*#)xTM~3cArJvu*C3oyP#*?$r9^~D& z^Kjia1}ki%5S`Pg?0K4YdA*kL=WrGI_&!MRYi$8d;({rUYk zk>A1r(#sa{n6}6yw(wHFAaC-pB23Q8m6J2%a7d0VBk<t%X_9aSMYI-g3 z7)!z`vuVg!Yx;QbB%HOPdd_A4(-!}}=q*Y?@omcojnyXbR;c1AJ2jL!*ujlL8mNJtHLr}Ixn3EU&e4JYF#S^K;(O1o8O0RmY7GdA_N~^iNVHjegtTPC`ZwsdHu-diN)T;~*-EZ`IGCQG z$-n>#;(X9iBtTV8$)X|{XwBi0inW)kki4{t22$P6w2Lh;eEe+SA8GR!kRRoXW(zAN z6gx-Ap$wDl7WTvq7Q}7_27Xy0JDwMV5~rd^a&;Ym6L;^kLB`L?kOaT%S=VvV$&WtV zilWn<#Y|tphdBrl^-{cSMnt|&A!Crn9ku(RwzrptpZ=6aF@b_=V z2T{|~%AIF$vnz$#rZ$x(Bao?Y)Ju+WcP?FxRb z3$~N#8IzC>)lqc$>Z3OR?Q-k|-H4A%M6ytrhf{K65P#x`0HE>*Jv2Zs;+6XFw@F zjS%MQf+Oi9B-q1tQ|xR&N0b+b=0cu!8+az2~Q+MlN7hy_m4`lzf z4NX_S`{q1%#q|%qru>G0of>X=>tI522n8WuRicSxl#3cK06`(e<_NV%n84#vAK%uX8K9 za*F{>!Y?6m-|4&-iN%D4;yQ6IdXN?gPb10uAX{SLNBS0xc7BI50ds#J6i3SHm+00a zJRa#f+kSclxDcnuoyOSpgil!0)jX~G{VW1|sF&m^GckSCCHlDc;=6pefZ9*&`fq1o zK%i!}XtG3%dubH{9<&ZTLy zs-LIT)FFN&%O8>H&x>hTcl!Hc9?Qnw-RdnD&)QQRWEG%qJuguOl`zNZaM}aL1%v7c zJQ?bkly7$UgNFa@EKA7qUO?u(El?LCHgxqepeB0^vB*Uk_9#D}7w=$u$ zL)STH$qaw&yC%pGprp3FB1gx*OReJ@!XwS9#N#4|M6?&Y*|RQyvq0EoBRKi4FCcvBhIXDABgqdjN^tKKi`l1-&kBZ0`WCW{=Y$dBg!k>13eWp_A6@$dj)KbBAmdI^7BG> zQKcX>X^b530o)WfK{Ncg?hCTCRRGYZh(xL_Ed7T#@!{X%L`R`1|JBOcbxrLe!U6YB z{4p01L?n43Q7~p(7tbFb{OJ&)nnR!9hHxsD232s6ZY|=ZHNGcYn0OAqY$Lp0Xay=Z zW5s|IcbPoUClO41+yc?tb~yA~_HfMIV-Y)gZsT3_N~3X7yuSz=^oU#2{Io;m+8B2- z@Sa$8wow^w{-ZK1-kd@hDRi3<95&c(A;>R;UrZ9JI0>vB zYdPL@hfp1dXWdayI{b9NG!w(h1w61y_@>LZw~YX9Jnvk~5BEn)669lj=MkY{=|a0) z2kp?82X>&XA7dOvJS6;~V5?oPVQ3?k%Jay3h%iT|8 z<%?$!Nwq|k`#SzA7cRz9JI_erK++MIGs4=95`JS3(;26!$_&4Kq&NJlZCuZ- z&iCTR#_RRQ{M`RTyCnyZ&F4U4XHyRR7Qw%P<%QWwxK?S%v0`dHfaaZ+OwgCoF~jni zXO-tcz$yQyDiG@6HfkRG|D+29;s3{=a;OX7XlwdjE#0W999h3rTsdz5vfgp|za(h3 z;0#%>$syijP7g^JKTynVIgFe#K2ECPjDT!%!$VKIspWRm*;LIBURO6PJDkBE9HYco zP+*bIs~rPeh=@?MzYXwA9Ov7s5o>1eL}!D^_wW2qe|)s|4$nC=OCz_VrJ#xOLR5PB z{GYQP_??|Jz9s>Wl=jzfVNZ~=%2-`AeJH7wi&s7CSzS*A+*G2JEV|9=f`N{mUApC3 zIcr~#^`;WGw+Y~AKHc$vBv0}`tya+?%CTV=UVobnd2vRKl<~z=1Zp#!*S@k-=WV4) z*(L#AB(@Z6t`ot+{N(VJd~Gg64h5tzYZ4+1)PdFCX=S)h>=Q3+abFz}wHQJySHDhd zYq^ScmI9w%(Zoyep2h0;3;MdK5mMy>QjH_n$^$92>t_*7E?2-PO4~~_#VC%8M8RR( zy$Z)=*r=I5IY9}BK3W2AxSdrw*Lq*_2Y33gTid`8Tc=Lh*s$9#`oLQkBT48x6a_9% z_-n^&fz}O-=$lXMzFThn9CBl;2)wUPeS7eraHgLLqdy5dLeSRo2?CZx367=xrEv@* zZJY4(bq_zk$A9DmV)vlEja2PfiPDy;2|8XMArE7njd3;(Sk#2XQthUD8y4`6+Za$o`9pz?OQk( zqUKxe3g^^u_7e<$z9rV5h@vT+c3Fwu>_|U|g8D&LxRFurfg9{s_W~ibT_)HT$@Lb^ zNxVG;=O#ED6Pa;rl z)w6bK0a~GnSh8M{eH~(GD#vsej=dsbJ%cIRJ`_Zz$f(OT6k5)``fob^9Oi9nonsValkq#vw)%NJPVV@ z3W=z+VML&?jk83|{MqaV-?2@hBpLO~6mJ{mH$smEu%p{l#YI5$R`Fnz@`v?8v+ z%siC)3(bSJx4Evp*)rzRCHPwR_y+?qZ|mbKuE#ZMA2`*Xr}Rv?-DcdtwfDMBhT&k~ zy|x=Ag0X%6f-y04Z*OecN&x}q{MtSG6YR?Ga!?Z2;C2LAaM9tUsip>~Bjg`FRtt+|t*3D;r8h&q91l9&>ClHf_daf6Y*&VK8w@qBWcYF)#o zEp=DVACX_kdLpD;4-TsZCQL=AoH*lh=QhQn-%!l>tzg?6BENk#<+h@jivqk?AR61y z8D<37gC!O(Y2)m2-1$!?b87=C&rMMf#1%*KD#;mnJig~$g*Fe3(g{FVkShCFE2mFO zP~L0thxl0k0M@L#i>^14ndb$_Jz~s4Prbl^!E!YP)*<^K>~$$@FtO(lMl|CAh&S5R z5lsU!Ha|wx)&=%Hp@4f&vpMaj>rN+XYPB8`r^@J}cCjdLMzSqU)lKt!5*g0&6+nm_ zjPB9tW8VFXFYr#;bNQdL0hnX=!=ytQ+syxR0*IX=KuecykWDf|nh+A@_Mr*JA~znG zwOnPRKk;G?HDsZ_K{N3y-m;JkwvgiXXK(}j(|DD?Qh)>xN6|d{2g`q%D+3JVeketv zC#ywudi*PmwlQFDq9bYQD7TX&)?!@|ih2iHV}EQSe_S}9iQW77tnqiDo!85W34Ne(PZ3o}H))>^+`5_wCOx;~LsV=;`hb*-k3-X4~(-aX)wThL6$uIkS zex1P?VVDtceSMk;Lg5^r=O3a;Q#{nw03}>h+n*qEh28~%$R_&ZcsZ!-JU$U9t@YF!X;dCGyA}W*o#Gmoqte^c>Mmr@ z7KvunBjL%B0PeiuWWQd#C>Tp)7_7^EC2IbHJ~P&TkE(U~*Y0P1A&Q=u03t+W_kAV# zdHjHHH8|EH<_pdK0ZIu7?Z3dhXGvy!@hRru-m9+l3`_di_Rn^Jha{wXrXDU4*{LEj zw_OJZs^WJkgTki)^v-l&!T(1>=o7bNNZnOP0{`>`p3^7;gLus zM{B)&-I8kJHpafcECmvNrRNa;Q*Btse|aqURH7dw`Lak*FMgPyAlri$;Zk02R0HqR z-M@LC@-Sd=f+_XdlK$(sVrO61#r3qvx@JTeQLC1T#$T@XvDMR6zx#{a1ItAMlG29F z`9lGIBdJo|ToXxLB-9rW5KfXR{Z8r=_34AheWid`L5jssDJ;%n*)m14XtLVV4FaMN z$H~ada3b)vq?)KK&)EH|u{S$M>o+$S^Bo0y)3Renp&0X-D9r+$?hoJheyDgM3?il+!^`P;~vvOobSG&2AaD)EZ;SE z049B0Oj%^_OKlfvOA;{#$GxcD+QTTc7Fugls@JCPci9(6_*1KF>*TvK^OO&1CSHeh z|K%+(F0||Gv2+#0VNs5`l}0{OH#sC@CuI{WkJ!le-hUd**z2;QIiuNrJFvl|B(WNY z9l=)e1<%fGHRAcc?g66|tMu48^ls&9;>9hU#Ls7bP>$5h_NkE+d^LGscK)TBBJAni zn9bJY)$6*9uXWvuh?}|g?f^m!m_L-FYiz{U`pxmL?y5qwreS9>74dc|Zs5IqoDMq9 z^BAQYwr4JvR^Zop2O6$fflgO<>}4nAmBExhmV3qdM!2z8TxSzsA#SZQ z*wJCTcu8%Y)3Ou?^ty8*Et)>rZ~O#R-Cp^|D7Qw<$I_T z^Z`%Xvm_t4bG`C@vHW3@k4g2FE$1ZBpEvkkCCD=yeVuI3A)tnB_{1|@`qUX7!cnE_ z)Kx89k>oMO#q%qoCynb%cMx@D1hzB&*G+byj^%h4HN8>gK&ocZr*bKxA9?P5th|5X zK9j|N)J5E}Qt#b@K`e3X^OS@nH1C+$6XjJbw=7NKmxvtp5&_Ce=-|P@@V3n#KTl@wL;ohyLpw zu*b-5;?$`wSx>S-G3T?4>Wh`DVq=z^sj~DjM30phdkK!x{pWAr6W632+EYco0HtVh zx!!lWhAf^k@=G$|5`Oge? zlBEgnPIB7zrNhbJh06Q&a2!qUqdUAx`lY~=d~jmw8{vVS=)Ej(2b-Aq(!`rPZ+1xyXU{laXr>$R9`)Zrw>9Zjb}lfO2Gp=$r+#1ydah-{?A%j8KWrFa*ZO1ex z8RN6QW6W$v->dADNx?7tMREuwLDqUNjl6d>{t;oKFf?-$Q4Yh;wJm?CcZm(z`^BOr zME24_Ab`SW`jl=;O}T2eqL_z16LIKOUIlE5dwq2|^yS?>LcKSkP#K3-{+n`#*&$BI z@Rfr4MA!z1?x&pgiT-lme;%Jsz(d zDbJH0DwPy==ub%1E5wbhKKiBwmrkjwBKV%3+9Gero(iqU! zeJ1cAof~W9Z=q0V&i!}v|9f>qDYnM#URtFFR5`zmQVcRawtF^>loxfM^gR{N-jSj1 zJiappnKnDctiFDHZB(ke-)*4y7IO|Ba^e|pqg}z9G1q2H_Aq3W%fYGavihM-8)3*u z-GK6v%x!qkWiIb+3+qP9oHeZk5=Xyktwt(q1WZTErTKrF&iq zyeTK>w^1;+eG1I(zkI_Y`3${3_Z6@c&5Q&{p6ck5fCkQWUNk!_>0Z7t*->|#48T&o zhBUSGr#Q&hN(xz;egIlkQ;x{sG*GOb;u8B?$9*N%7dmVJ+zJb`TS)Q;_h}2Lq?Ve_ zBrfQlDQej#Kpr1G3m}BrM~eCJ7NJ{WtDp0{_{!!$^%d?0d&>u$_1`Kj`%g{w6{I(Y z3pPY%L+!D{Q&R#}6)wvmP&V|T7iiI9z0~MS(&TWe)k%*f|7+MCqqu3-Lvby8k`E%L z8iX$EspoW|#@K2<<-u~NynPH3Voy>!?+rIT<8PV*`AJBL?YQiCbJYG3e|phITM5D5 z)RujjDJdjwOXE*Z$TgbJjlPXjdB60zx1+PCu;OC3p!r9Sm2=0Qc}O$T_|?D5F))Px zOQILAgKVO)E>bX*L*oTTQFtt$QV z1$TG0`Srp({%M5YWUIX_7SzPhcXyyR4&B6cm+V|xa)c8P8YOt9>(-{BFqAY4l#k-M zcE{u|MDu8*9hgB(#T9fhkXf)aKm3IlejYN=?P{z$m*7+U|yj`?sBEK+Pzss=N zb7vfpn%m;+@UZ&DRe<)2B5vRS9xx!wbv{79KP|_E44@w?IXWSGoNAza*I670AQ0+<%&_9E|)rfX}bU84YQOk@Ek7fBE?;7{E>g%lBbH9J`w*5U^HFj5%@BuKCbOMxS z3_q1krPEWB#%24dk$2X)vGuuhVnV`Mq}t@O)3@R#-l$b^o7u07g+}n$vyB0Q@MiWX zIm5Q0`tJ^VFNwu-ZuodTYTpZQTWZnE*Wm^Bel5q3R*1Kox=iO6!c#G6pNwPKpXBt--&#x-e-l zG|hmI?6ULWRLYFWvQja0pt%<1UtE%?lB|e?|8O%fw6;`T4^)ycRW%|$_T-U{LU}T~ z+~>xRvK)sHxSfU1aptNpRHYpS)A6Udxw#zC*re@-7~L$B>W6K8vuELoa}eKwcR zAx<;2hK>#=STsIAsYK6Ndh^4X)Qk*y5t+byvsIgwCq+NpBY(Oy`N02;#oP8O4-fvR zZ2#!N%8IYA?ix3RpMYMak4kF*vdOg}=qklqVwszCk{pTwjonxUpYu>~hgR&|1cmfnyUF$wEaT5F{Tb_HZxbvTs>sQDU%^H*kzB=U+>~aq zLH-PDgtR82^p&5R0|9K{+dvi;`x#Iqran_dgrlYlu4}j{OuLSP_`9`F4-WZs@T1`Ih{I5Fh-e(xq$vv*>T(S#MM7DM3SV>Zxv;|KJ zTMvmL3#NRyz{O}NPRxHli< zWDn_poD#QKP+<@tuFeJJCY`{6a}2?rIxp%tf#&VT%G}u8rwD7=mT2)Ym=vLu?CQs5 z8izo~d0C65MQ3VWZ@lptQ~ddW5U7zH5n5<$P!77(!0;Z@7b1MB2Hhg~waZZ=w`+Y5 zGr!fmbm@tzUh>#FY$HtTJGV?;`-a2)0Ez55J;m#MB;xc^A@B7XLS%U^KbOI@%^n-s zWxPH?GRSthy{Z^5Z;h0fKSuV*cm>t@0nCRKhTK;z0V9=@CsQF$DRZ0+$uX#_Ut5_^ z1l_rxb375$w=@nnbuFm$m+z{gp#Pafi<0>rjVfty4 z6Dm>ex4*o9nY4z0+#**4AD1~y^IdFDRY?vPNmtK&3gx<)yE^vM?@agVgIeC+kN95Oxx(5huJo=XUNGX>YEf&&9Y?!4&y*CYNm+ z!+3K|JDBJ9DJ$GLRWMIyKl<#s+v-vOst|3K zI}h@(V2B^Wq_z2`9gTQIw8`2*so-x$R+5xdD=$3&y<3xC3(Ohq%Yy)=o=Dow#oplR zWG`TWd!%7)&@{c=ZAib(PAqmB!pM=OrqSjGU3liwe;uG59?teJ(rB@O1*1;SkNrUNoid=X0~rQ3I$QJ`zo+CrjvLb=Xi;urq3AVy=U|Pt?2m=5L*Uo|Xy#dP04^9xeab@^F zHry(>{cpJZ_v%ZPr^;&Lg^a&8v1CV4gx{{jy64gMlWf+Wzd?q(hx6RIYZP>{r&=f% z8w$Epy^`gh9Rq*nK%~g&q=%@(XOpB2dI{ItJ~1x1&CsV?`fA$UQBg~p`+DwOvldGB3 zn(#@KCFRYy0I-?Tk<)zGfom@{3= zp^tWueyPITxO=*db0Z+{5!3PKS~XNLS^qVO3G=0^Qz=vXTm5&RrhpfGM0{G1J@!k^ z4k9%MJ-Rdh6#z-TWMeYs+=PmqH+NsS0q;t^lck>9_}j|$C(4WST}L5J@o!iBeT9vq zcrToG&Z&3OZU;f6b94+%b%V?s!f%(WQ#El7#e{5Jm@~oI=xu(v6YYAG#KWKMt*YMD zeRnXi1SsBHW)kL7;%P`%aFRSyyXfm8OB}mb<^DahYXidU|Iu5X7*B%hF5_i+>ofaq z9wdaxvc~+r)BSVN<44I-p7+@F_HN(HNC3>g%&0zpi9H}z1aAIVvpV(a@dH&UPY$PI zTrQ>@B8=`p)`4w*j#i0vZ=pSAZ+`c%*d-=U&j1443H1*{ddG1i)IR+AxgS5Ds*u_4 z2vseK@?ZU?>h?O6Y*|5%gOKsPDE6JM*R&36^N{2!mjLR_4(v_B(`vJFZeC1=do}|v zJmmT?p-Sj1bw&_P^@QuEar*1KjY`EXU`|duV}s~!SFXyD_&fFHb*rn_ySo{^Qy4;G zc?eO42B)ET@^M^9P|%~w0ZB5$3<_O1suFwbhr%w~_R+sR?#c#3F`4SYi+}%V`>WV5 zDESrbZ{`>@AzB8L%*(5?AI*Fnb?&z(FtVb&_N44Sq5ttLV-O0zaz#Zh$!#gDa=enG zO`}nayreTKlmCA>d+V^MzV8iG5EM*8K~X{}5fr7H5lLkL=|(AO5EwvdMG=vZ?rso} zW`>I&E8_3o=l(at!#T6hK6|gV_IlU*u8xRA1$$)d$I{m_ERT?w ze6El4A$6%+97^!OrKB%Q=j^v-DJhaODRj!1ieahvJ;t8!9)}_1QcbgB{F1gp-_=CV za3;|!gI?UzRFho8R%Me^sVj3^wqCJA92awRciQiqHFm13T`1}x3iOd}GuY7+v75AI zM*2h~O7Cn6q?{ilzvZLyY(9DO-tl)k;jc!fNoFjI&OcM>f-k{bnlUhV9oD*##Dg5L?vCTc=)3rqcUNMwO|Z6K%}V%5bR1Le zcD?c992HFzn*Frtc*|mv>&bTdN&Tf)R2qYyCo|2zzFJ%Vyhr6%+A$~;Ry4U-Tj|MR zJJMTG;%u)1PupB)I8`jyG_q$YEY#g?jy~TN`zGgAH(&T>a<2i(8Fxtq9}2?Tt#Nk9 z?=|_wG5oe!3dE~iZjVOjrFkF2T_l&pmZ~80He*D)j7X`!( zC|eUj((d?{(kCk0x4f>OFMVTi-?mOZgc78&4C_89AH8D1Wg;{%-RnR1mmD7MaOSGx zhs*I1I+m?(fMF`RcXE4`Sm4)Z13O;cb-H)4n~mC2)`-AE-VIYNr>)HQ8eFhYdA5vJ z>G(+eF??AOP8hkj9Py0;x6!OcA7uL{E0@C??F%DO>_q6(v^SW>&ctzoe*M?tW_=ri z8yBOfh?#H+@RX`XUzM%Q&#a|SIT>OuHjeNS_6!envf;*GkStg8%nP(V?1kI~PS*r- z?#Q60Eh(HIBQ04?fq8p~gPGA;!L-!2v2XS^7_bz8eB)Q9IBZzAXnHxuAuwZfV<9nm|^P7&H7R+z# z%Z;pNZ{QMq*MwniafPGH+x!Juc%5rW{pDKft7Y(rmQU5_-px0*oE~-lJq(2n;jbT8 zz`Ewwj7g;xX$8^}8%4TtKYOB)Yp|)+R6ajfwD_qE@_QeN+a0~J`Sut)v~yjNX;XRK zfOFYX6`C2s9uP-A<jZOhK^x}Eo1jr_ z!9e6Pl)T*cir~=V`a&1J_T0usS!fwoI$YVALLi z>@6IM(EOH<$f24CPS+5pMHrmQzS?$7Q4+sj>o?{fI0Mo z85^g&zPv_qcrl645gicaCdEt8Prv%2>3ZkVbs^+SHw@kaHV5vXa>A&oFh;A7FMTMz z?h}-6_E4)DDiPcaGCYTK4FhBh!km>X6oeSR}}WI20i(aF}&!$c^E z_ayE$lI78Qk?vc_mxmS?>>j?n@Ksyk+tLq^7dUuiKn!nAvdkc>&{uvIjTLTC%pm}C z3QU&Yo%X^)SiSHzs!{I`w@r<$?$o(&O-5Pvc!J_N`byF1l7r4W`)2 zy}PZmOiIbJPcr2Nrz&JNHVJ2)IX03V%?BzXN_A-CBOLWw-C#y|@(0A1B78fD4^Q(c z7NUdjAwzkrvxDk*E{`CHB^0U{9xl$9*rB3Zta*U3kSoAVZ%}k}ZQ+zO&X$Gk9A1L| zdGZU1unM7BR&kB(_h97T*QlBZlqyDvU~xUTTV+y(d_3n4$6Yl3xOTQC0uFlvk+GG> zpI;-Sz@Z(d^vW1(vKw;I8CtZ}ERsPw2SEVFlZ!@6qp3UPh_ZQ;0A#c|Bd~-TL7PMb zrLb(v2iIm29giBA7>)lDdx5Qi80;Q76gy;{Ni z{2GcBNLEq0eFpFL8d3eantF=!wOKwb=n?X6`p?CL8|!erqKS`y!v_zqtDnm(ZUk3f zaR@GX{GZ#x$nYKBn2_ByK5XXxa}n;EggiaeQhPCT6Wz|ynF{)aBLR8U*g_S%{)!D- z(++blc}67Xr`A)zoa)5sS8B_5ZrRRREnl>F`jWRd(8FZ8^4uKGuNMBlMFgwI*S+W( zu&vd0A|q7F>rp_GJJJr%8^(nnRWJVRdj2qj>2MPIhZ$FNanZ~06RlUyGamV5G}O4h zjwH@s$zu{t=pDeaqa7Dbs+d6BfxIE?bj@Znaq4tFY}4JtgogFXy`#c=4|tVveQIrB zx_|_ySzqWrO*@sl>R0Nolre)b3_N6DMwVa0vP>#iCydOA=oB@W#hni?-T%zg>J6gI zEe)!++H`0D!-N0?y~v29w`Z(>)C5pGyodS!yn_Gc;-60iDzMZ#TN9O{;>*6!1_JfL zimYpJmRn~%JWL)YrvXp?hl^n`_)$pC=R&lp&_TqSd0e!jd6Ce%9eA~?ah-HWUiOhV zw@ucEx_V7PLr+2r?+ZBT_Ps9mUOx|xOVTvTrK&aQgo?m(oj_X?vmAK`Fc{cf!Wxqh zas~T2aF)368dlC9yp;jUvph`VZj*ohW2k?@+f7JV32lGzq5T{qxbOpj`w($29*S_v zg?c}R4!1|n@H;U84zPw~cgo@s-C)CETm{!i|M{9POyeaZohnXD-|l9FytK!Ar(Wd+ zROHaC$N2nUZ^1%C!Zv`R`_o80l>S~9`ij*rqUXqgf3!ls47M_Yk3pf=*IVPF`?tZV z_A!xU+KFj-V&I?;ZQ8%Tf=M#^;*Jj)?@X9~3MXScMQ@JC_K`?5^oog8aZ;xh>=~9L zs%mA&p;^wy?YPyVyz=lhTP2>z)h%+>3a8R6ol5O(EQa;f$@3O$Zi9pBYDH$@P9PyB z|LD;*pxKod^#YyV336!+eh|p{hoKFDX-FxeZvFuM%rU$uBdaAFIz@$wxSPz(Q(lZQ z{;R9jr9fL#e)El9eoBfsNKu|Eh4O!%faPEa$omqVb`~HZU=8G`8UgqcuxYhHX8(ir)dJ?D)J+Zuvwa_ol-i^U0E!61=WRg9DQV#9cmLBy zZGVB2YN0iMeu4n3Z<@!rG9xM$HPKGg2!Z?4J9h$)YZhBX3xJME)*WKx4a5>xuc>Gu zf~CXR#6WABV8s;x_k}!46mI~m0v4c85VA5^_b^t-S^D}4pyCx~sZSYJ2sX93?%Q;Q zkO8^$-m95)rt+UklQS|N#JFr5gRVlR($XNWmU4M6VyPdA|`wlg;v#+ABpjCU=U=heT7+(VV6sygD{*upS=HZ`-j4 zTd}%<>6>_AV-Y2Z#X@BJ2h0I|QA;`9v^ZO@4Uygw`nv*vsl*aRaHdlJGCev4nijSM@uX ztQ%C zEsKy^hThg9K~!!{Ur|U=z@*%cQ0--MU`-CD-Qo@Xv!*KyfOUZ3rtUEJ^fa{6`& zY&{s6<_Vt|B+f}k^dFU)F!~5{8XY5{iXT+xLI3T0U@(x>*_--MQQ;>fN2^GQeL?~< zmRt?pgrp2_8KgmzD9a+w1_-nW=P;J1wS}uv0ol^&=dlrS!$?Ht`^)SMD;DP+R=$$M zUn&)!JadUALas;UV1Lg%xByc;=7N$+p|WYd%Wy4oroAJM!kgh4)PS?*8Gv9o8x-M5 zE&we{Xfykmoy|pSHs-X}B3iDQwZ1r1{I#LGd(9PsvyD2gLv0DA1C%~OP36Mp+!W^X zjw+>SSI3dq6qG0wmCPvW_1pg2$Ph`o&rZWUDAPPL7`PGo=?u3K@5X=~c{QA=!Ww>8 z?~PiYvHkq~{FQI>>m>lrWS;`0udr}y6^Q_}jTpE2V0W5}>8S*M^C(GP_g)2@>k&$)#wq0A0 zA4zYJ)M^#PYOXEq-A~=!m``Yv2k%p&B~6i1YX>w^l^1`1=}F8Ex-ZP@^wDnb@93hc z668>$U0rO?;4P-O`Hw-%GZ-8qnD+?GzN&LE@#6_ z{{GoN_+lcXVhC~DJ|m|U5s_d&f^;B5$;Jvv-TD8A|9yL)rWU@tQ+a^meIgf56&8y78plR#~Y3&jS3(0qbg*(j;;ImP@yMp+r; zIpMuI*%n(Q#0yKD$u#-uMasxPe+MYyQgzU!$>e9Y2^V?`VHHC`?QZ>aON%gpN}v~5 z44-%nf!~r!MSC2o+9g@6k_WfN}C>NHupSgE$~XbKdw1 zq9K5uAv|LPbQ$KH1IYda5NhNVEvP862cTagKDj21pU`&NRS=GN@uf5S32uf#1yQ!! zLotGmjaxIZtjx+;lJCRHca~73QWDPl^T2-S153{4xM{Z5xoP$uFjCFs*Z6RiC8kZ9 z)n`C)2kGB1;9U&}26SB-E=?em)A|<$JPQvo87pW36e{uCz<11bCVQ8G`DNJ39OWK! zvN4TFx_yML0Yzsk1I=M)vZQG2Xyh*7%B)}c@Z(2R!YpgFDA;EcxZ4<-gVwhcCGoF; z+;xQ1tQLrI7`#9rPASN1x1bs>>{_u7c;g)^;AHX?_{o%&o^3uhCDP2C%KaC*r?fHm zpdy1EPPO#9=Mqm}%nxh;yZcw^2vcWADj$4l{PQdL7TEPqG9$3WwBq&IS}5rNTXc7N zN-HQB(g*fdYQy%vM3qT`-S_$rhOrD!IKx517H$TT)KTJu`)|(N^)i6lp|>>h9Q?4o zeJ*qBjlx?EvZAR!oIyo{eq#_5cv1V*&g&ogi3>(2e`W#>F9)OYstRM*hr?|i>aGG3 zAn@eDyDFacW>Tc{G#-&rup6nlOK-n2XV_GuJ4L+7PWJx+AF?;f2fl{i+Ky6yw<;?s zh2P}6nO~Z0IaaX>D!#&uUn6WyK~k#axx8Q3(|D6r#lYy)m=_sQPOA-GH-W-6`#i*} zPmosO;LS)BF*Px1=BN>Tu`VfX>I4K2=zA7{JJvNB&&z8LRgtJp@qG(7X&z~RS|SAM z;HH!JIxpFFXW1)SqVJj=VXFSx{soU{CVb_5gu}Ca&RSgpi-Jf11c8A;K^yDlCT!rTf5L~{g*vHM4gU!D)%*N}`&fk98M&XvDS@3@6^koV zzSBe}q>URbxADm|Fn(^mnv_u{2xxq2LZoT&jrG!8K9P_=?Q2+E2_85^OrYx~z-Gr56RD^;PfR-1}+KBDt&34ypU+n}ctPNjYpKe*Nq~y2bP&hb8EmZckO>pC( z>syfVI=oQ+G9xtnxH5u-JqwbZP_6;~^AOk1*)`*}4|;3g=-*NPHS&)B>?^}mBwXWO?Bk& zt}+nGX1oguTHft0i?_Ls=R^li_B%HyM4&}+ibf74LRVCLjL~90h)yw*JK?AU+TV{{ zN@{iedSRwbpU^F6dEkC^RoVVinHBxNC`Bd@@SedT$vt;>l==%&Vz<+5+a3a*KZ!-O#gPU{#S4q zkz!HksZ!%8Whk{)McDn&xkqzM3@*}RAL`+D)Vg{nTP20ImXhjZxB~X1x_ekR#-(9V z%h||LvJU*ed+#Y8NAh?3d0w$(BpEJ9ikicTRcMmr)^S(#Z(i<6I1o8TvyLlco7s(V zl25WTnB94B5*mpzArC^na*xuxl|QX?@Pa5#2L(~yrfg((1e-Upi+o^fdK<8ff9V>tdP7I1rleLXRfH`3X<3O+D|-8+*yyMLOG+Op7h_p z9h|x&(o@;@rk-dy+HF52YG0WE!kT^!Qof5+2}uOUmfOTXj3oH30TX^`YSK{9M%86g zb9y?T$6QP}z($u(m$`y_)V6uS>fwmJeI*(4AT$UqeqT_lqiy}c$S0+u=8nnrgC7pe z_GV@YGG%A&Q#HthRlHCsJ68sK1V6obBYkDbr3>hYgg6TGzpuN*>RtR~sK>r5>CKbD zKK}>&B^nGD1jF}p%uyKitCr2{Em=rcj-}LI&Xcu60C)^Ze$UL@5m>UZK3t?F=ozCp z#7WslTs;`VWKQtqDv7YTed)%TWZvG9-jQw3#a9+4lwBuj$CtPYCk!Y;(&sDY-=V@3 z=Bd?}_CuY_N6aw@j-ADOOO6v^Z}J=hQz#d6jC=7&b2434Oy`ts?HOX5ZkeFx>jj6S z9`a*u_j0@VOy1?%KSBFq1_Pb~cUQ^6wo_T=OJ_WmxX=x|bF&SD&M z*|sOXT_HU;wI5#{4*1a*lU?Gth*c=dpqiqJUo0V}tFSA0lwZAfe`mb+4x?4^`ZoGS zHF>(vP}IZoU5_bzH?&a>Zc9&0j9L?e7fK6bEl?>mF1cKZXBX!aHOBWX+en2a1d4tT z7FM8)D9b}lw3ozkN44nEjd?EE})W`AtYRi^@!@7PO1AaOaki=Nj`yT>s9H-@tWu z8jgDB_Tl#7+@L>^(QbZ`FWX%`7zsl4-ZA&bryMFn5hJMRY>AddS^G0k9WAUKe|F#V8@1+^t;gb(V(h z$wN1Ge+eMr;iUsFvA!){fzO{$;ksX3cA*~H_$V`F2I zY2R^BfhQn9nZyWC`|CLTosAj;Az8^)!V*vK0Op3R)_o!-x2EIB!O|IGWeL+_i2pv2AP$NWA<&6YpCD&G%8 zZUmWbdlkimo!u^j)*qkt70RIP(9g_hi8yd}${$Z|TFfIyiZJSJC=0(yN_R8BziA1f zTciP4{O)T-Jo50vJMe-iO$@&eqZ~rZ^~B7~@=MKAGVk12@j0HO%NhIiGeQOsIwxf0 zAWUutkpu9@mKS}CcKot+-v~GWwW?5x!Vc^RJ{*kBIzHK3 zTuTfbu0D?CDhFa@h_&3(UwY$RE|s$T_e$Ey@@_T_i!p?syUlo7gm_=jorR5Dnk`FO!&f!PIWy{GQq_a zj|WOBh{st|4c+<=C)Hrg_!GjWsQU^n30)McS4)&hSFFy9jaLqaU;oA5^oPD;{DT8Y_ejT8D)#=&$ zisk3!3mbZ>?BAaQ?~EB3?ah$vtc!5@i|*~Gl6FQVRmjwj@r9@WO49SGX?+4b4Y$ho zFP-<^QvGT!s>X1Axnt27IWNHXvcBOz$6g}6V||GPPCI_ZU3%g)^Qyj;ifkHQG zJW$x@&3~c&d_2){TpzqB3X%*Txf{zL!S9Y~Q{es|zq<%dB8Z{$(~@}BEJT^R!uGvm z8CPRpPlH}ifD^gE1D(ze#gfq1MIx(Vy^V`H4<0;NxcM`Ljl|bgqAuD}Jts2nufmSlTStk$FW14FVNnTi zIbwncJVfG>lISk%#gT#o1rJWDU9#j}_80uBaAKp^ZlnX9?*KXJmMTH{^P2 zCwW-#aGOF|LpSF89s-2I0F(BVY^TNt$9`Vup7odz%K7_H(*(P~GCp14|13nhM%76{u6;c%bb zI@euKBN1CD)rUZLlOeK^NcG#u+3Pm%sj$5omW8uCH;=*zIT**`DIq1n8(*PEFVF_C zGbtl7dE=xt9tb_G62>kpFGNwePvc*TkI*e}#9EYY^lCsePzK5$FR3@fNb>dv(Q^({~`ZMPo_K zqFts62x=Dsr75{BqIR*a2ln1=dvmF=jS#>AA!5S-%DE-v`|hZj{Q0*n!0zOl!stg4 zy0Z}S5R+u6B_xGkCB$R zYqHKSRLFU|9uP-vLJb8CdNP!xHXt@gWKn_D;$Y#ls-O!<=}K*MnkyA-D?1Ltb7oqyT7}|;0t;>ay>Fs(RSWY%Etg+Lax~5v10Qf1}&6b zuv)&MSIl2D!=dO;s?rQHQAS*@Sk#ylh}RZwL$TvO%lX$&yL45O!opf-b&b=H(PnDg z6f4Ii#ItA|1JV~w%ipR=rCLFl*z_B{a0bu|^#O4;p`jJ@FuQ;A=FMh;Ci;gVZz~vN zV_5j`Eda{|?rc63sjro9=)>eEdi^r1EC)sKzrZ8q*Da8D5ARcu6{J5+#&U=DzBw&~ zI~wWAlf$hBk>uJA@m|FbLvI&lfS1ReV%DGg1aK@9ybKn{3_`UGz1b?}*%c~xS0B!G zBudo2Nax>po<}hW5w>DtGwh(S=eIa(;G)&0pg1S$Y!?N{cY$20frrT>t!01PUN1A- z*uAD3J^q@la(1*op+}wI{{wnVJe}N7mFOp=Ua`Mz8u$|4npOT-lu6M zB1$@dbX=^|SphW078$}{G~cZY^T=Yjhu}!7O^_NMvOwK>Hr$=A00(L6bkIl5eU@D# zGc&V=UQdBB zv*{gHeGS5W0Mcli^bgW#bMeInnx5UT`OZAwqJ^`wb7E#<*W~7WUt170=r(8As6{E2 z(ROj9AlKiX9%;3?OiS$VvHop9eazigLx+WpHvY{EnYPyr05 zOA3|w7hr4x>W|kYC=o%$lIQqlX)galC=C3>*ZDi4P+AULYF%MrLb1 zRZOBC9rP7chJ?886uYh|7#)?o@_0ZaG{S1L{|24Vc^Pt>P_k-6LtQDhk>I-mjT~VQ zFkZv`v+Lz^WRdN=KqxoBZfG@0#J)NtwO96IsIf+@R7Mk|RF@txprWA>c_}@EaHLyI zqIuh(;}J*?IV2L!0R6g;3jmdNA@t$-eU{wiPS3tK+}8aoT^*N(2a3`jX)VPexa0t5 z^+eijIJ^S|2+;YJ09u?L*^h5i19<0Z_x2o`OUW>mxOeVtqy`@XO$SvUq!)oI3Gp6b z&=ykMpooUVtG}nl5t&!hYM1Tw%IigTBN4a2K~XJnEIG}AlOc=!05xk z^!YzW4#2J6!u=HS{j;^X@hd%|`e2w^Hbtu#3Zfg%kvR19^myStMjLeiQp^M3g|1pv z;dtc&HhLMrr44tW=5;|s!Jym%6|qw8da!TEr$Z@-a^A6<17=5l516$E@L?);e=b&( zG~;R1vo{cW1-ksobkrp6nOB2MdHwP80{*sH7X4uxYB}jmjls+c-g!loKH{Y2P-8_e z1m@kQnhr3{ShD>8Gt4fKsWMj6PC@v{UvXa`z%%iH)PSD`gaW1980i=RUa9flNr$4( zCeA0`sT;9r6J)rY*0q3MlU+<`6YMbnRzC0fnxV$L%hS9pwi-DYwx*gpzq8Ys^e1nTs+-(T>y|g>9k&UGkB7-sL}wb$O1TkGJgV& zvjtxO!9R2u>^7-SNxh~P5UG|NzMA4_Ol{kd?uIykI{i&Y=n4NRZ2Q|Rx?h0!XU@Je zphQR?7*{sqPP*r-4U8=pkP&9xcxen0oL=F`^`()aAX7nj$!)c~8ajo-7~hJ8|4$&} zWyJRXZ?d5ZAR9ueqnGFS^lHxph5`P%WQH&xzi$0PH|#vi$;8SktFc#g{5;1L-;1Jj zKI8LAhb#I2b$c|7xH5~O7N~NYPA(tFh%P+*Xm*k~YV;B?r^6Gvewa8%rzrnK6p`UCxi{SAx>6(eBC@(C3-+YF87^{$ z^F8^3rvR6TMXyPmJWplTm{T(GE~#4L{iSPvWE-0MUFGdu=%UMFPypHiwW1T<45o!& zK>R1Is}|VwVn2jsbW%fMEb^^I!?W(Az$>E%RnMNPn3_;e0jCFB1ITIQH1ngMkP$eE zK`^0X+AlC+=!Nd2>9D(c`T*qv!C2^fTILPj)QG5$85wM;-Ps?MOHMQxc%)}=O5;Y8* zy*0J2dws56kfOw&A`%Gsf2+SQ*-!0Gf)7?P5zHMnrj0l?4nnJfFf9qklq;VH6_3x6 zB*1$Lr(XC<-(4IoRjBo&w#=vmcs?7bd>N>4M$Iag^C5C?gZPXMlkPgZrUmXW9WqUl z-a^^-8!6(S(SXEejok^B$6v(a2ys$-qbu?iNcow>!4bn%{MOA*a`8vmhJ3wxQ-oM>>cW1HlI_?$_GpMj$ zOMkWMtlsJg6LcYD06?!7oX8ax(77yzcpoMCdys*LN`6UFZX-U1YorX9!UT~!AX?> zMR^f!y7y>UaAo$Ub8TO{cu2-^h&snJ|9;s&q1T0I04mDaI;T{By9jhys)u-Ako~`> zJlx)r8i-QsoV-S21scfQd5w5`+lU7#BEosK?}PRcaUB7kdKGcqik;iZ^q=+h?q_gi zM3a^UB>_lrHwDw2`?Jqgzebd)d4pu6_Z@8-BqE{P<9b>qSCrxf zIFrU#*4Q3p0%Jhvp{jmLR07f%@8af%5oWc8J zrKcOL31nKvEjo^<{9)c(KQRG0XM zpp{3^RjUx5rDZ$kf#jk*`OSIuYKv80*fQSVFyOO!jvt0Mol>f0!*b;>fdnI2ZFK&T z;j=&8c!O7suz<{9(|?#REFSMty!wsjt=_O>`0K?Z&6daU@7RePE@lLoz8&$fEq)o0 zm~z)V?I01A62sgjq*2^f%KDJyu61F}`^Sib3)okJUX`U7B!y`SW;O*STm10BmC-_r z1eyC+&Tgy=ES0F*+n4$B<_raSwOlZE##-6)gpzufnxmL4N@MubeU0xo+2SP_(^u#) zBk?zFByHXs%j&VChAC3+Vz2JhzMm^y7xkJHKunm|ym}kkWZtx3?`O4RMrJNgF_`Pj zZm_eRF;g7u6JD#7kmzw`@b1P4#Wrt7(Y%GJg0JIauNumL!Q5}C6NVi~20X#1WpHzT zDwEys=*yOgPdtY#hSksK;*>~4B6hMrntD^1Nz>xUm;N_P!}!bw{@H$YU#rF_CSfoxxM+U9evLL5kKgiTSjA z?AxA7-1l-Dn8Ispcuve!Iu9z!Iq(i;+ll0G*l`=qeS5YOC+xVkW)EX!ctYz>kAo46 zqsQV|?y1A1^yeTn7z-;#VwY4KiHtHqHf880#H;@I%ysC~cbJ=p z+&MX8wr*UfHjnMq?F1VzqOS%t1b8p6ff0Q!kr6$lp#@4_oKv)%g3uNHTf9!O_@>a~ zkDe?czcAmEI@Utik2#Bx?3wm`A`F<_H1UJVyuSD22=LcgZ|sCB5ZlGxK3rYnuZP1} zx7Y;;gg_yR!HYu~m5oWyp;>=@iMT$*ZBKi-C^c3oHDqn8Q04808PJVuNntR*2C$EG z*LxT5h0a|+>{NKk-!eYfjAp2SzeL0mfboU8VcAPkmQIfHeNDb^=?#Zf_9~DjZ_bYa zh#{Lil6bGB9ArI*uh^Wx6QO;45O50aISU}IU*}4Q*h-jLMt%LMmCHHV>ralmCy*?= z91I~Gb#jMJO=z*+q~X)xz}@Dw2uvT%u@6WUTcaP3^bL^PXi26a!rNsf^8PCAzsY*% zKtdXb5B&N<@b1He={8;DvL2;coJ?edrhJiD66UWIQr%9I7q~mL(IEu)lbOsyVhV9e~3Qr%hnR|@_=|V|3;J0CxXzb7(rBW zc6P7r&HusE&~)Vhqb(z7j$9oni}DPl@n?3=$jH#-grf)w)F8^>y;moSczMo&Joo{@ zEUSd=d~XY0jpdIYGf1LC(t)7-3p(x2^?wSSlLlp=S3!*>5E-NLZS4T{U^hzKC`)I~ z*8Gd9z4UI|2ACQU5+K6oXzNIRNKT4uv2lP9w+4&(7XV9pK>{Kb0#Cr_Gv?tFVLkjv z%i(S=k7xE{RVRjGUe-`S3|9Bv)BQV|zo-FJR!;NcK0 zj~>{LRB+g0kQRY*O88*JMxWfUC%PtHrTvbaUdA78TPE?|JLVVrnUpRIgurB=7hG32 z!gB2e=2|%V;uAp9|H9(GG^VjRraNefiuEuFt2{M(1y_wMm)nk zRzTZpeOlaAXfmHPBykyBO2pwly=06W)2Pd47vVHgiEtpkk?U6e`~uGz8NYv`xxaq^ zHj8(a(N-(rK2Q@Nb+?V3OJ-h^D)E5)JqRl{sH8*+$3s1i5fS*p&}Zp*K9B-d@vmds zCtGGv*qE_&If2D)T<61k3GlIs0An4Zod?a}UxBzD+sJ7^$Q26$xbLrf?(o;R8$S~x znudIb?CQ_eH*Sd&jS1y--E;PN3vf6J!fp)2t9z?ZEFLx6D~@7r1(DZNAU_CH@e zG^;41DKdZDujiM-f^w1)fEEqyq-MPV6!6R_jzezmf3_m1k^&GD($6{jv_0b-CGZmJ zfYByLryN`;1bhJn{n^7=e<18q_be$pTP7njlb*uo1d3hM4@5-6miM4T4-FCSCv+v= zb(xoBC5CjH~bi*;U7 zK-GBar0^x$r_r3(<(#kgj}w{=>)1uq}p6omfHDU7DzS$S)^i-$DmkZbw;?738*ph-_od-S0DULx9-gZN_(}OCeK1;ecLY4gW;n7oqAdSH$w6#|y=7_Q4jNJB6F>#)iW;{ts=x-U~&^M6*=&u#i$ z?(qn+vZ=thtyJoL@i1}v+{|V31Rl>vTc|mJRy90iEx*wevKYyi1xc4}4$RbV^c{Ft zzQR7U-PqX3d)h{o4iYx+fIu0WaiovcDbd7@=|RVwO5YP%8I7atZ7&&Abf^*V&3b?# z1c>ypg$$pb?W4mcHMh!q&uqTf4+w<7=>p!_q|nmy=pb8xj1gi`LBxIS?5|b?SS=R! zhzN=;K*;*u!hO)K&&H`L*eF{NF|L8M^$L&ajrjz$&0eg}8goDYs{jzHL!>0^Y1h%` zdkcGu2T@vxv}Atgh415W+)Zm^&Pq?0;WhSJUl>q;0H(`4%SLlU#g>gOT*NRM9o(<$ zS9_eotwE`2y|0@>F(3cg4hZM8H)@_zc~hI!E{?z?iD?1hZ4~m z7Ntru0xNWL!=?GQ03~`vd5VZ2(oKd}Q%lQS+?0INRA{ez==E}TW+nn|GQ3l@-w87F zA|6$|#IUMVT$w`t#qxYi_`J~BKu9jd-2)(_5vrDLrwDsCXP^B>P{p~BmYEp{P$SNF zWwNmqOKY&UV89tj>JS1yo9M=%fY_eLj_!CvTWFW$UbR?uMn*{Gu0j052ucM?5&J8i zog^1_76EX(jG5&Xzwc0yFG!Kdw6I~x@0o}`*tAqR1|*2S)_p#_wm@V?Dp6QiNa7=| z4=Ez3h3_Blkfgf~cxoX50rK2losaks@BC!C=oWx9DJV~(^g0(BVh2$z+2OflCaY5* zQEH2Q(RfUY#h z)=06Xu)X365%<23yt?|}_jGH6?ruWPB{cdb#E{I=LMcPA(OMw_h@&-t9P>=AQvyhg zyTd7C)~td3XtAWSPOZ%T;0iF><}Kb=*0_ZorXZD_gVcF?Jyb`#KM4)C4(QAl(gg70 z=JHI_zE?>gd2ZePXz!=w+ir| z6_LnUK`9AsYTNdE>8Qc7k29HRX?L*K7gI-@Aa!I9CIH(#e-O~QRJuW%034al%Wd4 z|M7EB&_Z;^9Xx*{WUwIFSGb67&rRnLxmCb(^46cIp+-rSo?G%fn6h5^8d{I7bS+I! zB76xjheqmyAD%V$w2-zRyl*2__osARCK$vjgJxo583t>M$1DO>Ss3(cH9Ky^XHduG zs24WUnb_h*xe!zWGxrb@jQbleQ{C}EHV${xx2 zk#0+d0fV4Plbk)rw~GvF#(vm}nZ|m@bEs^>HIV)d%kkngRgU!V@_pB9y@%|;t6l!~ zwDHFZ>B6<=&R7P81JDPqG51O8%*HM}y17MR%g{>{ElskvQkPnCH<*J?iGP|?Xz#_= zypFIxka`ra*tLEgnKnGPFMmJ!@?8z>(U!eIR&K8?Abe|bneBTL+1He@uKcH!x7Vik zEGHa|F{7tC9+gt^1x3uYqHH^M+Tz)a+MiADC+cL5AcLQp=>#Go1e_NO$C`GxEF+6H zb_x@8{kFu;M2l+;_2|d%=QUs}xF56%*m!JBeRzMi`0)&&0qGAG%rs-8ijg4DtXOV4 zaMJ1p8kmAbqY|mIt^?%^IuVWm`yyVWf$QWtfJmzw@byJyFNS%K|9hC8@5Y;8)jquC z`J98%F#1y?7t7C&Syfkt=TriOMk<75t6o|m$IBSeo0Q7XbMnj&-^*(Ipo>@=Jdf&| zc|r$r^r7(Xa?Z3i(r%H$Ms~2=F?5#o^ci;g@OV!GqO zs=O?&$5Xh?e;*ly#lw9?5f9(Or9Gj&xS%GV8z7F(#mQ2mx3wc4HtC z-diVC%N>tqINo#qD_~+DG`qkV97r#0$LIU{cAqa=OrTYj<@qKWDD4c;K55-Y!e)J9 zfq4;e%eS}Pix@P)>XVoPa5kIQ35*L^6@k(G8-)rSk8+*1*aC_6I{aMBTA$88ALD$4 zdNwJ(=3ZK?DSWq4A4v9C+C`9R(PrFqHVdsV^7_w3~;n~InSY4}XU z8cl@2J%Pl*;kOG6=i64#!L{f5MgcM0P~F#0u|-xMaNx;qJE^#=MS8;Jm0YE&QL}0C zS|PXh>M6_jK$WKN)h$26p!8xOSu^wHwnkAiTtJ8!xap9~&n&Ue#};qMmScApEnNel zSWiXsS#sp=!BZ?bywmkW3ijgOS5Hu(F=)PHj?FKqZA^B$snpv}F6$dspd@xdc z5!$Zl;(OhqJ1<%|C-uA2*1CoR*D=8xK1)N#Pn@~axBEeYDgcCh+)}cZ^(##C+!1uB zqMW`1M&a;&ec{6WvgbCCk|_taL6v2{iN6S5&b7UfL>q@)7@!3Vue_13juaqZ5rQ*` z0dEb8#-fmg*H1=uWzzsnsxPUobHaeoW!RViH90o0BSFfq0Q9r%+J|$Gu+&jSx)dlNH*L4Sr7Oe+;Gdq3e3UoVTxxubwdc|w7)3e{PH~2tmFB6 z#6);_A}8vY(!cy~rldFB}LUa*3iXX*4W%JkuBZ%#8E4MLR z+KU;(To`0!q$MO(NFALK%Y6u!V^U0=pbr~)R=3DtRX<`P>(NN2;P?`jjwo;za=fpo z6rJ}tbPAPq4WW5sRxmURPVZqNQdi^UIYZ~Oz5Eh2o1mjsO5yi_(E5Xr<7U$mkQ-;a zyBwrY5t84U%@8RayI&G~3+Gc%9)h}JO6##{o`>csQxZ>2a(fOVwmL2QkvWT!Z?e3) zXk`ua#a5n4jiu8%{Xm-!dvguzI~Q^ zK%dldvCE81ae#Hd&}IBB@fC+}ai517$uw+aw+sa7PG>LV<$2+Kl20(HApdR+XEN;! z2~oD>`ZljpDne+#g9ZIWN*j)jL1E!Tf!$i&5SFQC;4`;%tO>d{nNIU|wVSbVO!L z0DFz+$HAO=I@1CG8uEw^DVuj~lze+L4}W~)`-ht`>6!0E)R5UEEPzNnn4oJ?PkUGT zrIL_$vlCXTzAyZiu1Q_m*DX_>5H~^N^bC7>^+@(nUlGCf!eD-zkC~;QFJV9O%Syp^ z6r_%^1cKs*ovogdG)@@)6|; zN%etPy#*lqS_8Xk_xarHNk2m*)Kb<8L>U&JZKDn?hGXuHjB(@xVE2c_>N^G$J2eWWzQ0{t$~(RUWC+X-FNGoQ$fu{UU8Vs3Y!98}qR5zcxK@xA`+h<$}k zQ7LKgvcptxCHs?WiW%g4>Jpn-`4xJPNLcC6w)B!${ijlDMjYCaiMq*!#vZLsUOw6TA_m(Q+cD`(RkkgLC)w-+f4ZV*kIgI?NxrJ=IQsz)k9@K`#J1X@3 z0L?TSi4^IV0HN8|M)2w&NfCwT<`Bkv(?v1R5EL&uqa!zA-uR=F0l`i%M4qhwe_7$tz=4pu=sdYl&c2(dX-m!nlx< z3+R|zR|;uFCoX}G$0Ng}Aod%xgPP{Dw@&f5n+d2zf_}rU>+_{ojm_&rZ`X*;6Y~_W z)M_~rotgUd`d9ON%zc!W=5zw+Z8A&|7h1PfBd=y;Ub(lK?RrqiH{1?tRBMDysix>& zNFMv(Scm9U>uc<=*#(~H8{OO5YKBNNbnL6jsaRu1bw~Z=jJVKQ4YNH^xoC8r zK2$U6Q^m)axu?xx-^7CZ9^?_spQ1%5<9gJ*2Z2tD=nBuVk@ME^Sv&W!H4&!S-?Z|x z*OjYcvDojINYf|hn#y&grInmXPPuM(QKvHE1ZAGhGYeUE0EhdFx8x_D2z<{U^oi}O z7}Ws}&Z%AVf@w!F)OTac-@9)iZeGB&cg^@=&k~suc%Cf&y><3Ix_9N}JUlflwS~3G zHCv`-_}EwHh5S22;cwouNHO-$@J9vZrkGwm9}!3MS>a1!4U&k1@E-QPsD_W$wR$!M zviudA_($_so2&(?I2fX=8`CX1ll07+{gt-fU4&b7r#+g+8L!ycCy`xJYs=?+ZNQ|# zGCL^g*3+LxcyT4pJ|>Vc*2uKN&`)W_mU4jH^7(auIT>Fb=+(fmyS!`#j#kMs_X{Yz zV@|aJ8=T%Q$3r?IH_rN;z;fJr7)9&U5ZZAZ#J6yG(Pgu2C(f077^cWbjbRYS$9#a3 z^3ln7#yS2!g?(i}RO{NdA_|C-A_|hyX%I@Mba#t%OXq-qf`D{)*U&AkNFxn{45c&- zA)N!?GwwJ$&UwH63)!r-p1k9_<2tCB&_A$hnT>szBjW^1n)VRnb6Vx$dMvb+wUj6{ zA&D3!*d<(r-ivHieMJQn{yv_sX?-!p^ja@eUUB?dXv_4zsHpI(C2&VAeYj_wqSJFZ zSex12n2uV6Dg>o!KUIB-*uO65xGZ~i1}t_fgwqF*W!0-ZS=M}*w27c#6)RQzY7=Ry zCH1ojbiQD1UQZB!G$4^baJBQ7@C8Y2BzW_EXp%s#^|%X*@6#Oqlo}dZeLm#r|cs z9H7&5_5?cuSM4dbU=W7zt&yh(h_bGdJ?i z)7+FSA8~Z!TYY|BWWWz=pTcABTu-MnZ#~<}xh1S-L37cqUHmPnYUw4-W0CC#G;Uq~ zVh(a|~8?7gm2hZIJp-<$U7KHKC0D556{F;ur71@}}g_Q;}c&nR_M&A12 z89NtxIBz!{z>@E8<&JaJyNsXl%Oxn9+t^gNz5|Rp1_9-HSag+&A3_SH*^6{$k}KK5 z0>OQr|0L|)*1NKi!lFG6!=pi$IgidY z^Ar{->kRB;Z)GvkRZRnZ=98|U?Q|*BO5NRz9gTD($Og<7u?uv1ux1Hz_v(5}+$9Uy zk%P!97l6CM1QRO#5ZfSh#xP2{JHA=X07u|h#>H+;`)x)L4}mr4;1K>m*!f4B__76i z&iFm1&sqyIeC8sdbQ9f`>PMQGNqpH29C1BMWxDx8B>&l-oxp}76Ow(=)q4Hb2pyRZtjwmN4G&4nHiUPSRL6^5~2$pASPw-}E zLh`+!kEpClt)2_ywoly#s()IIg27Ow@eD|)wwBNjUe5lgRgOw7_dNb#@E9Q(#5Jk@`W2NDC|c>?i=)@*sa%XcSZRBgo;TWE zQraH!D)YeyV@SR$(goIZ4oWHwtY#D+42H<_a|e2e0qyT_yk=o)!^gn%=&=a7PKFF z$2SywPOI=tbb?N`C!V6uG*)K$fQDe_G$G0T@2sEYmkc1P$oyb?=YVElqgns`sCp+w z5=+!zhVY9!>40)-hTVHdMyHH(akQZ?DM6VmgNx`Pc~*N z=Muqb!zi2%D0+)@wdMwr<1I>9>b6Ltjr$YXSCa|_;hp@1-Td~`3A6_K9X(LJHVa+Z z+ZNgOo^MMENnD*-i9eGBiVU4rKS}E$kKUhkIX}j_54?+P1m&>SZpznn$)$T%doEkdRXbYsj$2b?h?PD(e*fxz(xI!Sbgr=!eztRlSEBkMYr3AOD z1Qp)&P*mi>DtFi^qB#F7&6$=z1_{c%S*bW4U+L!^q35;Jad;&!kSZwh6#r*@s~8)9 zj2WOttEo=Xb3R?mpTeyLH*$KO=|?(cL2zoZA4nyov5Gro{Gn;zK+d~SE=tQ0&-I6& z_lL_T#Eut%5Yzfjq+MhO_)IQxUAC|_-Ca*N%<3d{DwnMq-ag9h!HJZaoqkd^x~6He z3K4Fhv|_@#;m}875U403ekgP7b%Nc&Sk@%1=R6+!F3PyQj{qTKz%z!fhE?yOfRAe# z&e9HSeeC(+`)5hkY{FFJyRk%q6o-AECE2`a*-Qc>A98=ybbNBw1oMk!pm!aue2WO9 z)To$ew!e&$x!@K3j&)#DJISC^q$DE${0m@WYBFz<>k+?^Ek2W+i(U`EfYl9D*2YJ* zjB$YSmOaEzfo1+|lLmJ+?;s0Qu@d*KWAz>@?>KEc$@~kM54hWtB3@oaSm-Bo_a#4_ zEk@VYq^iZiI>!w#Jv8VM>RPl`X#N6@9=NqHKhxL7GB15}BiZe!>x<`}TnuwdIW&o7 zK}>k1&5YgE8n9$t+}J%kGI-ipkg_mYWx#dyId569^}+Kf-f6F+u#qB#+%PGFlU^m$ z@v@!ABwqx(&1Ie>mItvB>mT=hI6n4eQC%QZbCTbdsKK$U021&7-C~JQBa}4#|Tw%U`#v!fKnK=;JGCA=8~3 zt(O-Tk2#$*{R+sx(?o!-*xX-ILyJ|o_o|lXg>gNAaxN?JJOvdNF4~H>1wXzBC*L%a z4-M5Yw7FFZ`GQs7uQrraHYv>J!z`s3+h_c)46eH}(kEy1ck~wPZ1KHgJtObky|sL7S+{|^s{RQ~#B-Iw zFtci2zuwsHmgOWQ_FW1((f9Vp=L{8Mjb0*2Bj(e=K7cYA)F zSw3~>Tbv!iXFy_NLoJbcPGZN?*izVuR`M{3%(&)q+Hny64gZ#O9}E9A z?4ZFNEI`rWdzfgJRvSeAu6Oia0&0r(%v^L*=PpAdIuq1 zkO=F{r;E3Dqt?Oo%VQj$?Nc` zm5V#Un?-mPiC;TG5HW#Ur9b*DEPS%tz4ZE2ueW zRb@5Pt5H{12rhh8=i%(AFZ1*)lx1xgqwW-sp+>LU@)Xvqf^%Lch(5Cc(uLs z1V@bdnI||LY6x%vMN@J=8~@=qBOBAXG|w#yzja_YV1v@1iCiDIp5`raV!bs$ zl}-IPWi6+cE~;ALmz#4J{nIDVR8Xoa_F__4C{E}@LXvO5wLbyV-z1;2xDa~_DJgdA zG3+S{!ux8N)l(11;jAb0%F||IZP!L*5e)o+R;g{$w+XhYFBTZ{y-ITEY-`5V4+n%! zXi_XmiH#Re_W@Y*8d$EHQcE3#7Lc(4%!-{S(vuowC%R7SkWd!esj6=}HI^oI^=JLI zyjhl9k@H>rta(szhgN3SCW4yXpg8Gl$A;Fsti9E%hf901QIx3Ob86mej)G)BC*+N?WD|?j~W4N3)G;a-TCiJ!YJr&Rt`wX#cKE7jlQ? zV|NghXg~w#|9keBdJW(jo==no55}Sew)7pl9;C}=p6Mg{<9O&$IK^g|)NZBg`A+nV zF9vyxk`E&W$)Lw8VEmtaHG^;Y57p-75t-Ug>61Dk+my|zD0F^XN7N2`d>RrR1zck@ zc0Ol1MW=sc3KU=_1R5_LS26`~Qq%QEjVvZceYl|;rVHX6> zqzlDHjD%nd&hte)oe*aLbY679nl0)`P&KeB(|2{Oe}Ie-v7&h(h@Da8f{g&3-|W+I zKe)C75&@h~&_^h71VKr6?ed57BWClNiH!p-BKCL|RENuwhp)jI&Yj9~B)g44<`hv9 z>46F)gYL(BYX{d=1KpTWX{2PVar^&rOeN5()4q2{4p&(>O%bRpSxAe#$js;&_7E7X zy%Y6)c($SBT`!{0Er?j#02RXm)XmKyn10z!I#M~HwlI9u-T!P{&t;O6Ov8egV8EZd z$ZcwWK$N^~QQ)aT#Oq=X!+Dn$j-{|ZdT3l@m^Nb>ce`rEsF^+@x;NA*)6?u^*W_?Z z{%+<@2ImvOy+p1|6{FBwR51eN;36m-A-69-u_zz3C>@DoR(=>H8hgTO$XQ#`dT~l6 z<59$!HojF-M;;#*vfXVpa}8Iv&pf>Noc2{1g&&KojFa~I%K!)|wGBYVY5rN@Fx))RMxY!!WZ6@(}V-6Y2q79sG;GSm$%c#~;WFOl2sBPri^n-^Mt*}0%?yTl;QgLRUS9HPA)k?;XL3n7{ zZ7$eVVZO?($C4F2hyfH5@60Qgt`d&KSTWl(rn_Y#_&_MIu8*y8u|#^d<>F+}Z1=r} zdvrYO6CKsm=X(Yw%#Bso-ETjBc&GB~SIMzZ4672(Ph{T5Kel-1o=?$XR8#S+Jmo58;fV|;Nqct-y z(h(3om~oxk*(Ni1V$Z=g0)5l{Wp;GS=VC?Kt_NNlmi%_W8FoKOMZ%>W2}Rjc|W&t69$O=#GD2)%;NMh+zG0Lr?i z8>sH6n{3zeT;nLbkA*uE#_GyCbDSOc&U3NZ7Q#+>y^epT5I7s~?|mJ0K|0ExVwN;Q zcZ5XvGDC$bPegs*WWZm%J6=A;c|%GvjE~`JqQL{~Gdpq#_9Ap2437l@q88 z@*s+WkB`2KbRWc5J=v8NA)0u z&-ClvSvZsHNm@i5eO;w#6sJzTADxHQ?XIs8`&kQu$eaz{R2WS^4gqbxY<&l|!Q3Hv zF8l)UWeU!;UW`8#$t?cN!Kk}UFmL#yO#$hdf+5Ed+GS-hKk_y4(h1-e$%4JggjIyD zU+i^Nk*5=_k*+0kwgt6J!Mcw9oaZ!WgGWgTOp*X(gc9G_?#CB(mS6CXJ05BLv_Uyh z`{Wj;;o69a=`;MWnsEr!lS@Z-ygpnYX&VKl4Rh+6)HAv+Cw<4qJ>?Ssu{`%}cdQQ% zf-J-Gag#sT8;Bh{THWg56N~RbX#DFeu_f9U&{e?hl^I`ZCuV5TXx>b^t958TtBDWt zKrq_KhIv>Ed5kdF?&GB^L_wrR0}1;Em(H1}sFrkLZJ!0lbMZFE!vvZ>vrs8e^KC6p zR{1mbz0V-O>rzV5*?XAm#F_KpwJRW8>r5zFx~_Uw)GNZduQ;D|k(8W_l+DML6Jw>h z8Nf%ti6S-^)Y*e1Q!(LJD@JrfDU44E)EG=&tO1Pw6(V#U12j~tiL-3+(#BSsFKkD_ z^F4x!TM@Pax&+K#TaM{6T^17a1!Bhh);GA@KW}z|$Vl^tYQXthSbsy^xFXTNGN8Zq zeLurjitdg;U2FsU4kDDKN`%SXE`47)>Uit#M+W$L?+GKWG@L9OS*MCLe}XwWVmfG@ zB+u!tr#sIb5hfpTT2b>OfacJ33_4j6oQtTs`vcS~Z?){_ih8uSF;-VKmjFcIk;AYK zj*Man@+0WgaF**=S`{>#X{*(z=h#1fq1BpxHcyQE6K0LLCxb;ypk3Cqdo(M)L`qd} zV*-gE^kaLdl!!y4{eg@Z26Jx){KzA@>mI-sQQ3-;VRMP5BeSxVGZDUrC8NNjx1gc# zPMg}2?@CQ&mEc-cd?fa60&Q!}<-i3}`E1s*sA9HAXD(|yzM-hZ1B3SAwRa$~ab(&b zmxN!NvfyQXm%hg1}zFO7E4}GLrp#JVt2e9dv&sxIuRZL;up{780Y`3 z2{#EMawA~O4+Om_j=CS>=8j4~a$hf`Zx-4Ob2p0WNYHm-*Zdh2M7G0u79%y-2qa{F zJr+)uNJBaKx5$q)+y#@u>?^H1p`%}$w}9cd7AD{kMI6aJD6c+J!Ln?u$8A54?|qVG zK40@BIE1AU1x`(G*3GTc8%V&cwXqcm>z1~-$*XaS-cD2))dfqqPPNPiT37buEvKnP zk1cFHNlw;C7EgdP5~r*$RGJK*#!qf;)!wL8Dc_>iQYM6BcI#DNc<@SoY6R}+dGlox zmc0itgKLw+QIS10ujGT|M~3MiYJp69>8U|KF+#Pvm*XsJqSw+z?)hy+DxJ38BNY%A zlvLaw2`JfZzpmDSAj=Ri!xcDwldd`pO9K`3?vIZJ1hrm<-Itb>jNydpx>^y4@kz#v zH+~wB^&VRB+HUSTvp>KWj2n<7E~@PnFJtklIoC9swGU|97jQV+6kGvzvZA2;+=DC| zS&!w!{1U<4LvHJDr^~Y%50=z5+AR6ZzryWW*^@BI!naEyp;9D)E{&s!>t6JeJgoy*LlB@k<1o8J-Dj|%<8D`%yg?G10?0|3 z**>Sd9kYdx1l?oUHR?L4P&K5Oi#*UTUm{6--~Qmo=A9nr2T6V~}ld!OgQj7&p|p%(`oA zcOGorI;u`8w_i!Eo6;VD${_rt?~FGy{ZO|j5EdOWld~e~3)WvD;&?6;mm5gNHSAg1 z$U{?8BF2m5a>{%MrtkS4%X^_qK~g8}u5>cHepVfj@vu$7%M+&;mo#|2CJij(w5Kk# z=9OacQoANw zpZoOZzOe7H;~sX}gJyMw6X7)hmVrV+iUn0 z=NjXK#k}02H=>AlO_jj9f7*vb5Dwzix~`xw!p*SIsZ4)z$>~rN!IS1R!sz|vByo1# zF*K{=19@{j@4;A^mQNL-r(DT^$jBV8QamjK%yB5^N+>Z%VV`j03-h+4+VVcf%qDg+mxc;((eOZ1nffM0gr92*G zp@&5vhH|LbwSJ3R2CjBqVj~G*uGKvyKrIdJm63Bl`_EVG1as7LM#-)|U~$aZ99n6HCF$2AVKo85h$uQJo;YSa>ndSw^of~ASbe1Q?sQvaz#_rJ$ ztK(zOgK?in@pU_1JCK<(2RTsM5Z&*f>Sv%KP}EyAIAj<|W(upVtiCPmxASn8tX#nA z)mW?t$Ke*BXR!6Z%~fu%XayZec+9UFTV-RtvB2RXWewvTIi8C>b!1|AEHYu%$Jzxy z7*>7_!hpHN!%t`Mix_I;$ZybmKqP@8qKP<7(M@`p+G;J!32(bKDv)YNjIQ21Pak}2 z77@_BAXW&m)hvIhREJbPTg?tfYLk%}e5)DjjK)F3TYZiO+NIPu(|VM?u=M*I9M}-@ zDVT_Py2*Wexp=7#aA(0o%&_n#4VQXj<0RB|cOHQxfZ7)ZjIj4q>AfS`&XxO7yt4Ib zV;=7vlnUeFfMVf*eN)0sBW~f`^Ie7Qs2q3IN~CpPm10`0c9o)uX(J9fk5d7bS7muG zadl}L>`*mXMDdbVQaYy_r&2(Tw?lz_3Gi20mx^cO`*kj_&rz+h8%O&195e6jVcCeCQTE~uWVUqfBtvGPo%dUT_z)`i84WJ%#M z2op~w#S$1V<~aefp4Z7XT)iMX(-30M%rk?5C^@?CBWRmg#>{#Ds13Vnx`X&KKHdB$ zF~C$C8!wM8z0KRyF zN5YZ=i8{C?bKQ>s()!Q-7+uo+GqH&8Cwqb%xc09~oHf;8pM3q#As-W`T&6ay`wfF^ zp$0~JwVY6vJG8efts@dhaZih(O+TNjotze177ry9RY<~;K%QP|s7)ALbde zI)~Poz{T+bh;qt3QcB;uUjImaX5EahfW7j2><_8uBKNL2_p7GEKEaN21_7Z2vY324 zx5c(;hmMPlC<(L5a$K6Us_MEtggBJE*+zFmrNFOQ%^|OW9MP zXGe{qI)T0pp7_{&09*J9scNy?C(A(GHP}`+iaNGxldQqe6Mc8Aes)S2UQSV4f?ej) zLv-m>6mVWQ<@M5pgk9~7GZP6!_aMF-Jjf!LFzLs=vGPL_O!fXE;4a#_eRb9>DDN~WFpP{?1UZTA@V^gasYO=&&rC7fn zqx01Z&5m|o5@t|Yt|nMr7SBp>hh}zt$@{s#zO@X4g{5U>Yb>*dCIn<;S34_X+|uk@ zXERG(Vvu29q4iiLVK*9|9Bx6NJa+enM5{Rq<@J_^+x z)i`rze3xIED&kcHK`voJgVZN>dwh5%&ae7eGQO6&b`?{V&zG`*s}z!B^`N>n^o-=} zi-D(~rCj5A$uYCUwSNlgD`?KLLi5=yk^354$2$z(_U*$8?RbK22a(7rt*FD5isk^1&OgGYbEA;K_eG^AcrqJCE( zjMk&ZR=?YU<9tiFM)afPza7xO45Ppq4J%&vK)b{>>H>Hv&a#xlpQRpRLY=*;hMfOp zg`kG-+e?K9Q!+u0_14o>qoW;2Qx5O5Z{K#bXm&~W1_#$!h_cY0ZBo}k0bf<-g}BIn zeaTf!Ct}|mc1<62)cnA!vUmnjy!$+FCm{3|nYW)9mZ$QMwTjo}=Wf36)L9L-PHp&TA5@~E zii)Y|%U_)#68e$0jj$42pS5l@Ud@8LS427fuaW&ZX>_%%e?bVpFNf+CUoNBafScyG z<^HljnCP!hNF_o24tg*_L^5t->wm#Wf18l+IyIi_kK~!%!-03z$s1>86Y%x$bA+(W zHa{9S$2z6-k5u$VXD9l5>ZiDJ;# zKC`^b)gEg3^PBv+CP%cny-G|I-v`VKgk>OV+-HhB)PfLDc+vKBa^b8|$9`I|*msW^!ci-@P&k-$ z(~61Bd8?im6%;r-b@~)0x1{1htJrj)gdrerv$t9M@;XD%x_Yj|G!k?V4Lq`5LxwTOGMgyRc)Q^@ZsVjZU***DfMq&8pZ9DFWyH;-P|&`oZB z`NWX;k!3WzV2?>-Q^{~mpa5fj2*%Y>Ajp`dluU$=2nqi%a%{eN&!F#4D&|qn0F&6) zngx|2R`_s>T^^k1@qWd+-?};}tJIjQO!hM(!wHSGS4Z!0ShIUWdc$x^%HPYy@I&X; zch;WlYK>n|bVxufdCQE_8GBz%sIG_zie65g=Jt-^%rPOdON-`?OuEj@S-gBkPTJ|v zqAc^bTX)Z(&Ia%mahsn$LF(!1J6N%s+2`r8@#{WL6sIo7V!Z^oN<1ALA6qZICyonK zkWPuu&Cb8Y(T6dh4*7K~b0I3!ZTri)`OlBzqLg#I&0hB7qYt%jq5=kA7;uhe<8e^4cXScZ&CNE z2%W>_Ri<{4M!dIh1}WxG|02>1Wtx9os!y2R(kvpGC261CaaLepmJK0SjAUISb9KSY z)G^=A8GcqK60T7%WkJ3X!o?f9LU1FTydaF}Z}RysSJ3wfKIZ(JVC*xv>1AvoPp~g) zES%_V3HR*Et0Ua_{47&&&Vb%mLfg5TWB!WZzbvyNf$yq2Z*eAxjr$FDEV3Z5C^&fU z!oqi#-|01`gsqvcItq2uqOFIoVVpTE0u&-j?p^UKO!?HIl zD&9eQbzKjpCjqAd1oDS8i6@@VcTFz5T-B_@h620$wlgYA8=CS7F#SQBFgPgwb$k>P z(c@UO=GDveZ9=VVZC(1}Se*fmUi`IlgbB=r4U6yfNvZRs9nWpBICp*X^77=J3#P7* zgWkPPP(x#2(KCg-p_90E@6jiV@=5ctY4}@Qy>~`4x z{4NZe0NrmIcJxcw*!WXXhYWQHGj3vL=&ODf&kDjTphbHKvn|No8Y2EL3-p&0 zW0`Wr&ob2DWdnwlVGD#EE++>n~&eZL(Wf z92^{D{MSI`$?q@om8Jq8V$|?+5y}Y0^!iAn1%pvTAv5py|qgujqh2!4;{YVl$ zcw{d=0Y?OgD@v#fyMc7zzpluib3$#aD;8zJA)AjS5NUWqswF{vlJx&vjX##)x9i_6 znqimr?AMarp&dG1+t#gg*XNmOIvKc4@ze11<5S*#WZY6e%&c3g)P7TRWF@M|z_llq zz0nxK7jJ#S5Nvny43b6$K79-Qw3LEqWGbC?E-Zkv)*ixfgJXYNu`7z%z#(W!MbF_t zhpbnlwjFlZue*@Mdzxpbqg~Ns8n3y-4$L)cj+O(i%MookAYj?ALI%#lUWfYQINwHc zZBPcjm0?L-Cn&mDdysyBQ~B^YO5!rn;dz^#v2pB^-F42f=bxg}@LEr=$~K!eMxb5l z98yg*d=s>$zbm%VxO<)q<<>J(bsT7=6*TJV+uO8TB|ONbB1+$%voV}&d3biKzmWMM zb^XXCj`!!w8)*pLJx{hoP5tAu#}r>aw83%Un+nA#wGS$qMdk)Ob_?H&xEpokyY?yR zLqF^v$jzv%@wA1t#*fI}(I`mmfU7bX6wq6T#1f7yF_(=sZN}mcSm;Q*pTP0iAI^DK zIPj{Nws`DzbgZ+vZB}*R#;O#{wM++ao>vw7+_hV6O{FM4T`Ed_hB|4^5?6$4w%DGN z1qdZ#uKu87{%S`uY@)Rx)YuiZQ_pXNpRMf65j}{$VYRNJ3=OSyEuz$RDw$6KEkfYH;9dn(&o|M|8F2(N(XX9*LuWU5c=cXl^o^qD1YB)A?FryL zp6kp`v3l_R-F)tamO<-**|!`KLBh)FDTSQ`=YRPtXdEEHtwf45+ zv*nmRGA}vN+O^2XHa00rxWRswTbb6L-&F{etLmmE6w4K#CW=*9VWbg4E+Rz4CqVAm0SvZ!INP#?`$*c84%2G(?##9NA(NkfGt3 zhre-E`_}ODrr^%Pih!EY=NNE}kL|y2UmtWt`z43g6ND8Ylru&cp!Mr3bQE8U$}x z#nn$?5qJ^Xs7J;$IQUad5I7`zwj!6l32-VmngAga5a#q4_hh$LU^yuDW_B5oFsaIQ zMrn|BU!kxxxFT+IUN~5+aePUZ$M$M6n|P=Xj1gW%ANOd0?-QXdQ4ckI%!$HNlW7y9 z2E!6X*KWRNuQvO@;UHOeM|ajy3}qIqGNP5p*s(sVcv!K2m7aL{mv{Duo>Jw#>K+jl z&wxr}^z}f=XLgMwZ;^}-=utr?wDAE2zx!&m1QFLY5%Y}q3;V~n=MhilpP_W#5Hou9 zz}N_{W05?|fo-2%Unu>JzsmD*Ny>USyW!qT&e{|%6#lUaD9py?4IdJsucrvTau2)$ zL^>vM5Lj*kOqw`z){*X#yr9B#-S178(*zDt=%}-ML@3G9Lf^&jju5fa+n&kB|EoAx zWJb5H4>5KuaSHTCsR8qNpp+Wjo?%_ZTznWI%e53@%Z;N{qsNy54l0lAr^XAtW6z1* z&vklzfh*rds=l0egEe(xzbg2G_1JD3ZBw);Z(L`HKFQR{E;a_|mxkaJ&+t7^v0C>S zxsN%B4t6>$cJT>8To2h043gtL@C#zdV(!(-Tq~868N^SYn3Wo+SBIJqFh`Q zdi2hc(|{k2<2y_Jec}ef`jc`^)nYg57^2je&;h==xNJ#F$cvD_SV25Ol=Y`GI5~8T zsCTT>f^BV{2#XWVAjYC;Q030DjQ<(=zjQT`FlGIGx;KGgS3E}1`_55J)Q8A`Q3AiJ zNdrthYLIlK(C`6GsiqH;5jBMWrjDECDeFCK%j$e@phmfBi-rlEkxSU6QVcj*QGuG;Mu}}OX%f1jQ>ELkVWlW*<~@)n4)kCs%_tjeg8eEgs`J-lgfa+!EoVL^ zjn3?*s=yP}V+DX)4oa(Ef}VxZQV+9h*IS z8S_7aYRYdGML$8h+SCcER3~f!)Qg^Nx@>{$qacaKqdA{B$O`YAedAU`5vhRJN8Z&8 z|LLW8gDrxfx4F^c(Df$JlzZd2OYowC>=Mw5^fH(M0*_^aV;O_fsMzdH(3XBxy;w6c zGVB`4ClVXiZp_-p_~(xPK7O)?5!UWyM)xJbO%lrJ#oRB+JFKm(ZD<84Zota_yani2 zTtHeXl(V(4u%~u!Ww34!)#X9H4rC^h@q&x zG1uDaxzj=1AEnx6X6DDDMVse+c{bro098Zn6dObB95`y$_A^!OT3Pe7iy! zP|TNw+G_D3o&N)R%diIUq#19#HJgt69dHGOGDa{}b2FIUJN)3aoqjekG&E$9M<7d7 zJ87Ei^qkbX+!rgaQjF}WsqAniZS6qH^HCPv%b$UQ9{~Z+;4Z^9Xlf+k3KFLpJ3@$w zSp(7W3a+EQht|9%TD$hoW2uVfJJ7lVeG41C0X}O>!aUL^LYTDB<=)9OcY2MWKdG-($E<$Ny1&gy{lIKqCb zDjiv@)nF>-0E7blo3lBR)=y5j|2${F0UzmoA-nma{SG){PNcrZduOGFp-MCA0@r^j zE;%$ci%cHl?ug1q(WG;rE7%;&IF@-1q{Xz|rVyCcJ+=&mDT|al%)AO=m6nnx!5q7O zl|>CP|729^H_`H!3;5fQIaoh@l$)+xA!I@I0svx1cDw4A^#emKyY>b(2lvXUxi~*93bri2dF%!3?D#yYyNFHQOiUZ5+0wgr9^cGr{ zWlw=5=I@g2AD{PKrytt2I5_epN69?~p^QBAao=kg+T7`Yk2_@xa7`CIx2MYTxxA2P z^F%QUHM;LD*MsDMA$e47DwUK+qvbeszr_V`xM1*lgKgHMj_iI`XFd7E736g$>HPRW z_&_K_8>^aaU9k^ejrVOx`+rvzcm>*MWRE)w;PNA{!RFgyjm2c}fb-TEp^bY0C@W+P z#z2zsa8IrspXB+pLmz8@hn?;l5Tq!>W_uTSn>22q5~gi6c>$PxV#7uUKr4iPs57Wq z-O37K>wN~o;%1GYn_dV1&rjFx@BA7PO>|=P4e2$EEK9~1Nz{t}A-8}1cpy)?7OxPh zu6RJBDONLUhjEJQ3#EzBMK(AFQ-GORXIK_6JY~m~GHNb0=GEfQ9FsCk1X^9}) z7}xb=DSoN~{oC1g>)fFa=z8}osDVHUMPN^852zhBK#V`d>G_6GMiLfHGVcnUM5!jJ zjK}7m&af}}!w7X%(0&xkACMXhw9GD05>;WAC+5loVAxXVP-#UQbMwpioB=E3DCB5n z;vT39o}mj%1Lg9y0#It&oB&GVR#0eNmRhU;>IVfIFOS17Ux)J_Ch(rFX3rFBRZV9I z`->>MZd7zNfUM6my05)i&Yd6buQ@uLF~_%p%wH$=*7M5x6A0j{FD9$hMTrO=R$jaU zOSGV{`t#5uA|+0Fe~pr z?Q?PJ?t1w!y#aDWvhMA$b!c0r2an5!F13tugVXDR$x#Y5CYmYN{#B=sWrdQgFV-}uHp=ndisk`66gIJ)o(ZlmdyE8e~W{HL@6l97M) zJ^(fm^VJh`t2qUo=BUg$U<&0D0{ySCCYJ+2tsReeM*pQveq}U(feM(>f=o=-*tUH7 z{31pEmr7Cs^4{QZQ%Y4e+58sDB5?p-A}fY??;D|JJaa9@+BAR%-KM?%Pdw;%QIhcl zm^6)x&%F(ihk35Y;PAq+s1lfWcSe<-A4; z5Lqw|?zUX>e;tM2rmqT~gT|-Iu#}9zMy*kQbOL6-yduH^t{IxILkN^sRf^z$JS>#a zhDD>!r}Kj~$Nksdy#Vt!YC>5z#`r?2{b+3<1LD6}Zoo545ppM>X; z1JV~1stT!YUSCxOe$U^p6{k$bXU=Cx1(ab5><$7sh2uPWXw6AAnC=@P(4=_$0gV`V zB$Wzm*nP`I)S3PJm#abf)@D|Ir)D`eaAT-^+a2OHFEoj`Qs_{Mv0LGaFsC3f=$haw zj~W9yN9ErK@W;It%D91=vz~u*mJIlEGXX#(CYTjksfOgx@zffzSUUb`mk1&89=Wz2 zpO>U#%PUYRCZnRK_CdKSR#lEDub_YzY?iZY&)OsOhIFu5M^E#B_3(F@QoxF~yv2Rr z^;Aa(navG83n4Jq^U8Kb@-_?bDwKgiCs7a8<#~vjf#YvWJLI~!Wb3RFjo>{O41raB z%D-3P(q%e&s8eOM7Q*F+{^wl&_zFnK0~!3cCZ2s?X{kAC?5uIw8Jrb#L~_kmNoy-S z{qyt**${pbsi`evZ}t}|BRGDI_0-Dq08J4EcdZ*(Ns$NK`J(tB$4!!5l^WCDi%gGMz>t%9ohm+5Mo zh>#~7nv*X% z;wKHUiVw!BRTWc}>O*1jA?o-7kq7iVn~tYwNN<1P{l+yfCKe_gXC1P_%Itk6mSD-? z!jT*}UhcuAM;zpoNx(9FUAck52rA~o_A1wjiTy#~o^Qj&zZbzYY8H-%Kw zZ|=E6QU-L=vllNsPN<8gm`2n0j%3Y^PT^;}S!Z(Ng%4~>BoV&BH+fw)o$r+iI$LX< zBaLk&P0G`9*VP_d`pDmX ze7brN*ub8C@mg(J(rvAwUX3^cqRLl52s7QpCkJmP-e!W~ zG)?hw%Ny1Ez8dXX^;wQQB^hzwyqO?(;;D@n-VUo+WjpmgjN|HLuyYc8R~5(Otp5&S z?WCuwq*{9L6v_}g)g?i!R-x|g)ZEVh%1EzLbWSlgSxv&pM|`bBJw30)pq6+%_xKJ) zBhH1YlY!XULFx>QSS<&Am`fM8rvI|+gAGz6F}TXdDSh3mn^-(>G)^^NHNMiKXs5@m zj*MCVGn{x+TRTJ*a8RjXZ(PfAx_Fvzl+KaSI9SRm)NxYK}~lw@{u?+)yoKS3Jlejp$9b zHCnH_1Ia&`WhlfgoF4WK8~u$P5s71H%eK6guPxO1UNwJy{CZDm(Z zz8c!JT6{6?wscu@IiB#EpXFV6SVCbl&(LLDcl=Tp>m2==*E{>R&goUhjP1v{YAx@b zW6Da{d^QH(wP?bJ*lQGy0%~M2YK@W$AWYoQxg^^)=hRqM=qL$kAIZm@2K-cAcg4pbA)s$~chE55VWjI+bT2)B*3c0=a@>=8%iw0HKpJqm}7VR>O%n>r_FHIfP z9IK`~i}*;#pALkFsSq)w&xLN?raiD3g3K@M=lh^VE9O@+sGREWFBRQP)wp{ghVR>` zJayufqEPHH_Oe53O7%sI&f4aM9NCMttPAE42t^?;bQD7dQK!TcQhAz%$Yt^pc`S__ zz)3HBX4ME8vnGNrHkh6!occSR6gsqNzFIlZg4HPLKw3-KT5I~Uc9l&uRn%-_9?j6j z?;92AX{1&`kzAHV(zgzZEDdWci+!1N@L%xq6fQD7RMTo;tNA=4ULRXrl3utk5YC^@ z=(r9)))ymUk~TSgQXNe$<7Ah!#W-%#+N=WE!3xbxvUFx_9LevkJJbw>_>FP>ILoGz zqMBb-$SoC(X^&rw4n#nmnD4f%-)+4JbD8lEA9Nf{5$HdlIL#X@xE!Bj2(KtV%%5io zq^)|Q))MBmQ@DK0f9aEy$)uhL!>eH@F>70SaTF7pDIE{xepnWKL>0U@=4C)i;=FzQ zY|f%aErnV@>HgZez-&^!5AqWF6doE@@{)q+@t(!zo^i!RdO`7iWR1e+`+-$g7ptPQ z>+tyvPfnNC0=?5YIN`d6Z(LX1RA)#5@<&<)SKi3#(~Kq;gM2||Cgr7Ie}w{5_zU|& zfwv9kuzBS>kf})fD67-~SWc+69_Cj$eJ_WBum(84iuQ6n(N0l`DqpFkuaIH^B1;)Q`)#6aE5%lkHO&+`PIS7`aW#}bKVnCS}AiH_j$-#M9+KnIS(s*tDHON zIbd-w+|{5=`xOnQ0_}Uyyw%yC^j>f$Jt#Xu;MNlKL#;qTc%dKBc3*ikT&ZSQu+U{S zhCoa=E2i*pT}XIRc{&SH!^lKGmTv2#8e>u^aC|Gc(#z6ky;FIb#A@HZC>bf2eRplo z4htE%!ueXr;0TV4K7alTH-|sOBh9obbKJ)SR>>_iO{jXOa|Y306#1_o6?@Qgw0}YP zzZ)q`kpR`C)hB|Z`;wrd$^OK#Z2z>ig^utsO$}x=uF;~5tzYOOu#qK!-6y6<1ELQN zC_oc&i}C-Hhn5B)V0cwi;cYZ$1@OR@-PQjDg8!QV0u2U3Q`2K3!S;nyf}xQDCbWN; zR=s~3`YzsP~-rjLBMci9QhUd`Ohr> z`8^>sto=>v7rUs}GGG962*m6eB$Q%M#jk&V3Lpxh5R8v4R^bk;Ef|o%4-Sy?$A4KN z;JI+HXqGcf>dBn|?60xNy!U@WrTuuCwbqHKu8Y%vx^U+EXa5<{?DHeYDHxZ%T*ds; zek(9Vo3YL0aoI?)To#=IcI6#kP%_&9xFAaz39eB+8QE`}5ta?r1Y?1&3bo1^56c>e%>bR+GZTQ2sQbTlL-HQeYwtK&Nh0z7cu=|UnjH7QCyJav-=3*a;T!vxKU z$CBg=71Y6aOhi=^&wgwC&y)98KTC@8;(NS%z{CH%{m*Sc^Zn?S)J!pA9+E(k|5@PA z4;07(gFV(=&zuOIDeB5AOL6_XB-j6Z>i1y~Nm8EO=V60(CX*JcF4%AU`ElTT-1WW0 ZB}k0He5rJ}as~V+B`z;kD)Q3r{{dt@CuINt literal 0 HcmV?d00001 From 2241ff2eac8209cfdc146d264c7b594ccb2ec65c Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Thu, 9 Nov 2023 08:21:35 -0500 Subject: [PATCH 0162/1024] Move post date & to main Rust blog This post targets a general audience and is asking for testing; we should invite a broader spectrum of folks to reading it. --- .../2023-11-10-parallel-rustc.md => 2023-11-09-parallel-rustc.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{inside-rust/2023-11-10-parallel-rustc.md => 2023-11-09-parallel-rustc.md} (100%) diff --git a/posts/inside-rust/2023-11-10-parallel-rustc.md b/posts/2023-11-09-parallel-rustc.md similarity index 100% rename from posts/inside-rust/2023-11-10-parallel-rustc.md rename to posts/2023-11-09-parallel-rustc.md From d4ae58d6012b8cac5f772a716cf6777c12030de1 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Thu, 9 Nov 2023 14:55:57 +0100 Subject: [PATCH 0163/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Co-authored-by: Mark Rousskov --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index b565844b7..0a4e7f582 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -131,7 +131,7 @@ The specification can have gaps where the prescribed bounds are broader than nec Subsequent releases of the specification can tighten those prescribed bounds. We expect early versions of the spec to focus heavily on delivering the detailed description of the current Rust version. -Such a specification could be derived heavily from an existing work product, such the Ferrocene specification, since that explicitly focuses on providing a detailed description of a specific Rust version. +Such a specification could be derived heavily from an existing work product, such as the Ferrocene specification, since that explicitly focuses on providing a detailed description of a specific Rust version. Feedback on those version-specific descriptions will help us learn how best to craft the prescriptive bounds in the specification. The prescriptive bounds can start with useful high-level guarantees (e.g. "safe Rust cannot cause undefined behavior"), and then future versions of the specification can incrementally add more details to the prescriptive bounds (e.g. "unsafe Rust cannot cause undefined behaviour under the following conditions: …"), incrementally gaining more details over time. From 504417360bb363d40f41a675f6e9ce840d69e2f1 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Thu, 9 Nov 2023 14:56:34 +0100 Subject: [PATCH 0164/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Co-authored-by: Mark Rousskov --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index 0a4e7f582..08e548f5a 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -37,7 +37,7 @@ Initially, the stakeholders will consist of: - One or more representatives from the operational semantics team - One or more representatives from Ferrocene (High Assurance/Availability, e.g. Automotive Industry.) - One or more representatives from Formal Methods Research and Development -- Operating System Development (Rust for Linux; Microsoft) +- One or more representatives from Operating System Development (Rust for Linux; Microsoft) ## Authority and Approval From 054f9d11a5430d0a29b93b11f4cd249b204ccb8d Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Thu, 9 Nov 2023 16:15:39 +0100 Subject: [PATCH 0165/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Co-authored-by: Niko Matsakis --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index 08e548f5a..1767fc96b 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -167,7 +167,7 @@ This list can be expanded over time. ## Presentation -The Rust Specification will be a publicly accessible document, similar to all other Rust documentation. +The Rust Specification will be a publicly accessible document, similar to all other Rust documentation (and with the same [licensing](https://github.com/rust-lang/rust/blob/master/LICENSE-MIT) [terms](https://github.com/rust-lang/rust/blob/master/LICENSE-APACHE)). The text will be written in English and will only use technical terms that are defined within the specification itself or that have clear definitions in a freely available online dictionary. Individual items in the specification can each be referenced and named: not just in hyperlinks, but also in human text (e.g. "[syntax.patterns.arm.5]"). When possible, these names/references to items should persist across versions of the specification. From 2fd70c79c0aa32ca662f6d485657979d73c35e9e Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Thu, 9 Nov 2023 16:15:51 +0100 Subject: [PATCH 0166/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Co-authored-by: Caleb Cartwright --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index 1767fc96b..e18827fe5 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -140,7 +140,7 @@ The prescriptive bounds can start with useful high-level guarantees (e.g. "safe The specification should cover at least the following areas of Rust's syntax and semantics. Some parts may be inherently coupled to specific backends or target implementation techniques (e.g. inline asm). -* The grammar of Rust, specified via Backus-Naur Form (BMF) or some reasonable extension of BNF. +* The grammar of Rust, specified via Backus-Naur Form (BNF) or some reasonable extension of BNF. * Macro expansion * Macro-by-example (`macro_rules`) transcription; Hygiene * `cfg` attributes From d126a21a53a19d072a3227d1050ebb418fe7f6f4 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Fri, 10 Nov 2023 09:54:41 +1100 Subject: [PATCH 0167/1024] Fix image links on the parallel rustc blog post. Just before publication, the date was brought forward a day, and the post was moved from Inside Rust to the main Rust blog. But the images were left in the old location. This commit moves the images to the correct location for the updated post. --- posts/2023-11-09-parallel-rustc.md | 6 +++--- .../cargo-build-timings.png | Bin .../samply-parallel.png | Bin .../samply-serial.png | Bin 4 files changed, 3 insertions(+), 3 deletions(-) rename static/images/{inside-rust/2023-11-10-parallel-rustc => 2023-11-09-parallel-rustc}/cargo-build-timings.png (100%) rename static/images/{inside-rust/2023-11-10-parallel-rustc => 2023-11-09-parallel-rustc}/samply-parallel.png (100%) rename static/images/{inside-rust/2023-11-10-parallel-rustc => 2023-11-09-parallel-rustc}/samply-serial.png (100%) diff --git a/posts/2023-11-09-parallel-rustc.md b/posts/2023-11-09-parallel-rustc.md index 258c3faa6..d024fbe92 100644 --- a/posts/2023-11-09-parallel-rustc.md +++ b/posts/2023-11-09-parallel-rustc.md @@ -47,7 +47,7 @@ which produces a chart showing how the crates are compiled. The following image shows the timeline when building [ripgrep](https://crates.io/crates/ripgrep) on a machine with 28 virtual cores. -![`cargo build --timings` output when compiling ripgrep](../../../../images/inside-rust/2023-11-10-parallel-rustc/cargo-build-timings.png) +![`cargo build --timings` output when compiling ripgrep](../../../images/2023-11-09-parallel-rustc/cargo-build-timings.png) There are 60 horizontal lines, each one representing a distinct process. Their durations range from a fraction of a second to multiple seconds. Most of them @@ -78,7 +78,7 @@ back-end. The following image shows the output of a profiler called release build of the final crate in Cargo. The image is superimposed with markers that indicate front-end and back-end execution. -![Samply output when compiling Cargo, serial](../../../../images/inside-rust/2023-11-10-parallel-rustc/samply-serial.png) +![Samply output when compiling Cargo, serial](../../../images/2023-11-09-parallel-rustc/samply-serial.png) Each horizontal line represents a thread. The main thread is labelled "rustc" and is shown at the bottom. It is busy for most of the execution. The other 16 @@ -115,7 +115,7 @@ front-end code did not need to be changed. When the parallel front-end is enabled and configured to use eight threads, we get the following Samply profile when compiling the same example as before. -![Samply output when compiling Cargo, parallel](../../../../images/inside-rust/2023-11-10-parallel-rustc/samply-parallel.png) +![Samply output when compiling Cargo, parallel](../../../images/2023-11-09-parallel-rustc/samply-parallel.png) Again, there are several things worth nothing. - Front-end execution takes 5.9 seconds (down from 10.2 seconds). diff --git a/static/images/inside-rust/2023-11-10-parallel-rustc/cargo-build-timings.png b/static/images/2023-11-09-parallel-rustc/cargo-build-timings.png similarity index 100% rename from static/images/inside-rust/2023-11-10-parallel-rustc/cargo-build-timings.png rename to static/images/2023-11-09-parallel-rustc/cargo-build-timings.png diff --git a/static/images/inside-rust/2023-11-10-parallel-rustc/samply-parallel.png b/static/images/2023-11-09-parallel-rustc/samply-parallel.png similarity index 100% rename from static/images/inside-rust/2023-11-10-parallel-rustc/samply-parallel.png rename to static/images/2023-11-09-parallel-rustc/samply-parallel.png diff --git a/static/images/inside-rust/2023-11-10-parallel-rustc/samply-serial.png b/static/images/2023-11-09-parallel-rustc/samply-serial.png similarity index 100% rename from static/images/inside-rust/2023-11-10-parallel-rustc/samply-serial.png rename to static/images/2023-11-09-parallel-rustc/samply-serial.png From aecd476e7d1edf4fc3639208eeebc10142c21a20 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Fri, 10 Nov 2023 10:08:01 +1100 Subject: [PATCH 0168/1024] Add a paragraph about binaries being unchanged. This question came up on Reddit, it's worth answering in the post. --- posts/2023-11-09-parallel-rustc.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/posts/2023-11-09-parallel-rustc.md b/posts/2023-11-09-parallel-rustc.md index d024fbe92..74e7c2d88 100644 --- a/posts/2023-11-09-parallel-rustc.md +++ b/posts/2023-11-09-parallel-rustc.md @@ -218,6 +218,9 @@ Reliability in single-threaded mode should be high. In multi-threaded mode there are some known bugs, including deadlocks. If compilation hangs, you have probably hit one of them. +The binaries produced by the compiler are expected to be the same no matter +which front-end is being used. Any differences will be considered a bug. + ### Feedback If you have any problems with the parallel front-end, please [check the issues From 1f2c9fe1a63dc8fc2e845139a3f218d2f33fa042 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Fri, 10 Nov 2023 10:11:14 +1100 Subject: [PATCH 0169/1024] Add a sentence for machines with fewer than 8 cores. Something that came up in a bug report, where a user had 6. --- posts/2023-11-09-parallel-rustc.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/posts/2023-11-09-parallel-rustc.md b/posts/2023-11-09-parallel-rustc.md index 74e7c2d88..58b1d2e64 100644 --- a/posts/2023-11-09-parallel-rustc.md +++ b/posts/2023-11-09-parallel-rustc.md @@ -198,8 +198,9 @@ quickly. We recommend eight threads because this is the configuration we have tested the most and it is known to give good results. Values lower than eight will see -smaller benefits. Values greater than eight will give diminishing returns and -may even give worse performance. +smaller benefits, but are appropriate if your hardware has fewer than eight +cores. Values greater than eight will give diminishing returns and may even +give worse performance. If a 50% improvement seems low when going from one to eight threads, recall from the explanation above that the front-end only accounts for part of compile From ba1648fa13aea1ec3682a3f6279d6c9c376768f9 Mon Sep 17 00:00:00 2001 From: Randy MacLeod Date: Thu, 9 Nov 2023 14:39:21 -0500 Subject: [PATCH 0170/1024] Update 2023-11-09-parallel-rustc.md: fix a typo and a wrong word --- posts/2023-11-09-parallel-rustc.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/2023-11-09-parallel-rustc.md b/posts/2023-11-09-parallel-rustc.md index 58b1d2e64..f4a0d5d79 100644 --- a/posts/2023-11-09-parallel-rustc.md +++ b/posts/2023-11-09-parallel-rustc.md @@ -51,7 +51,7 @@ a machine with 28 virtual cores. There are 60 horizontal lines, each one representing a distinct process. Their durations range from a fraction of a second to multiple seconds. Most of them -are rustc, and the few orange ones are build scripts. The first twenty run all +are rustc, and the few orange ones are build scripts. The first twenty processes all start at the same time. This is possible because there are no dependencies between the relevant crates. But further down the graph, parallelism reduces as crate dependencies increase. Although the compiler can overlap compilation of @@ -117,7 +117,7 @@ get the following Samply profile when compiling the same example as before. ![Samply output when compiling Cargo, parallel](../../../images/2023-11-09-parallel-rustc/samply-parallel.png) -Again, there are several things worth nothing. +Again, there are several things worth noting. - Front-end execution takes 5.9 seconds (down from 10.2 seconds). - Back-end execution takes 5.3 seconds (down from 6.2 seconds), and the LLVM threads are running for 4.9 seconds of that (down from 5.9 seconds). From deac95d7af314bcd0445b3f26525003e62de345d Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Fri, 10 Nov 2023 11:55:34 +0100 Subject: [PATCH 0171/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Co-authored-by: Eric Huss --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index e18827fe5..0d3926540 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -48,7 +48,7 @@ With the help of some tooling, we will publicly keep track of which items still We will categorize all changes as either a minor or a major change. Minor changes are items that appear uncontroversial or trivial to the specification team. -For example, changes that were already approved by the language team team via FCP, typographic and grammar fixes, clarifications where the original intent is clear, and similar unexciting changes. +For example, changes that were already approved by the language team via FCP, typographic and grammar fixes, clarifications where the original intent is clear, and similar unexciting changes. Major changes are those that are potentially questionable, important, or controversial. Any member of the specification team and the relevant authoritative team(s) and any specification stakeholder can flag a change as major. Major changes to the specification will have to go through the usual approval process (e.g. language FCP) before they may appear in a published (non-draft) version of the specification. From 2142811327f35da2e992c3f475464141bd8938c2 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Fri, 10 Nov 2023 11:55:42 +0100 Subject: [PATCH 0172/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Co-authored-by: Tshepang Mbambo --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index 0d3926540..ad07371d6 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -114,7 +114,7 @@ Instead, other teams will be invited to contribute their own detailed descriptio Each such document is, like the specification itself, coupled to a specific Rust version. Furthermore, each such document is analogous to the detailed descriptions: the scope of each document produced via delegation is intended to be restricted to a specific Rust version. -If a contributing team has input about broader prescriptive rules that should hold beyond the current Rust version, then that should be be part of the Rust specification document itself. +If a contributing team has input about broader prescriptive rules that should hold beyond the current Rust version, then that should be part of the Rust specification document itself. Such prescriptive rules should always be the responsibility of the specification team to incorporate into the document. All such prescriptive rules are then subject to the specification approval process. From ff8d0a5f0580fd8b9b399da6e596fd8e2f8e73fe Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Fri, 10 Nov 2023 11:55:51 +0100 Subject: [PATCH 0173/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Co-authored-by: Tshepang Mbambo --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index ad07371d6..11b5238f6 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -174,7 +174,7 @@ Individual items in the specification can each be referenced and named: not just Iterations of the specification should include renderings that highlight the differences between versions. (See e.g. Ada Reference Manual.) -The Rust specification will be maintained in a format that that encourages volunteer contribution, even if the specification team expects to have to reauthor each contribution in order to maintain a consistent voice for the specification. +The Rust specification will be maintained in a format that encourages volunteer contribution, even if the specification team expects to have to reauthor each contribution in order to maintain a consistent voice for the specification. While completeness and correctness are the primary priority, we will try our best to make the specification as accessible as possible. Ideally, any Rust programmer should be able to dive in and find the answer to any language question they might have, without the need to ask a "language lawyer" who is already deeply familiar with the document. From 1ffb2c77d7843df9f9fedc2419a9b6c0ac186a18 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Fri, 10 Nov 2023 11:56:27 +0100 Subject: [PATCH 0174/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Co-authored-by: Tshepang Mbambo --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index 11b5238f6..9b6104030 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -182,7 +182,7 @@ While completeness and correctness are the primary priority, we will try our bes Rust releases continue to proceed independently of the specification approval process. -If a specification has not been approved for a given release, then the release goes out without an associated specification. +If a specification has not been approved for a given release, then the release will go out without an associated specification. (We might still decide to deliver a specification associated with a given release at a later time, however.) This is by design. The specification effort must not add new hurdles for the project to overcome in order to meet its existing obligations, such as the 6-week release cadence. From fbb6c11d936371f1a00a3b61adce2aea43bf1d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Thu, 9 Nov 2023 17:36:17 +0100 Subject: [PATCH 0175/1024] Fix another typo --- posts/2023-11-09-parallel-rustc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-11-09-parallel-rustc.md b/posts/2023-11-09-parallel-rustc.md index f4a0d5d79..09e6a1d23 100644 --- a/posts/2023-11-09-parallel-rustc.md +++ b/posts/2023-11-09-parallel-rustc.md @@ -88,7 +88,7 @@ build. There are several things worth noting. - Front-end execution takes 10.2 seconds. -- Back-end execution occurs takes 6.2 seconds, and the LLVM threads are running +- Back-end execution takes 6.2 seconds, and the LLVM threads are running for 5.9 seconds of that. - The parallel code generation is highly effective. Imagine if all those LLVM executed one after another! From 8e58f012e8f16043eaa105494442674f5a9a6034 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Fri, 10 Nov 2023 16:39:45 +0100 Subject: [PATCH 0176/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Co-authored-by: Tshepang Mbambo --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index 9b6104030..fe27a457d 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -180,7 +180,7 @@ While completeness and correctness are the primary priority, we will try our bes ### Release Cadence -Rust releases continue to proceed independently of the specification approval process. +Rust releases will proceed independently of the specification approval process. If a specification has not been approved for a given release, then the release will go out without an associated specification. (We might still decide to deliver a specification associated with a given release at a later time, however.) From 4c6eb87d586e23b4f720d2a519b48fcff2a877f7 Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Mon, 13 Nov 2023 13:49:24 +0000 Subject: [PATCH 0177/1024] Creating file via promote-release automation --- .../2023-11-13-1.74.0-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-11-13-1.74.0-prerelease.md diff --git a/posts/inside-rust/2023-11-13-1.74.0-prerelease.md b/posts/inside-rust/2023-11-13-1.74.0-prerelease.md new file mode 100644 index 000000000..c5c8b2442 --- /dev/null +++ b/posts/inside-rust/2023-11-13-1.74.0-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.74.0 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.74.0 pre-release is ready for testing. The release is scheduled for +November 16. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-74-0-pre-release-testing/19865). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1740-2023-11-16 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 4e9fa9970ca5f00bcbecc3e5563bed60d1135875 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 13 Nov 2023 09:50:42 -0800 Subject: [PATCH 0178/1024] Add October meeting minutes. --- posts/inside-rust/2023-11-07-leadership-council-update.md | 1 + 1 file changed, 1 insertion(+) diff --git a/posts/inside-rust/2023-11-07-leadership-council-update.md b/posts/inside-rust/2023-11-07-leadership-council-update.md index 62f60485f..e7bb8b82f 100644 --- a/posts/inside-rust/2023-11-07-leadership-council-update.md +++ b/posts/inside-rust/2023-11-07-leadership-council-update.md @@ -79,5 +79,6 @@ Links to the minutes since our last update are: * [August 3, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-08-03.md) * [August 14, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-08-14.md) * [September 7, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-09-07.md) +* [October 27, 2023](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2023-10-27.md) [minutes]: https://github.com/rust-lang/leadership-council/tree/main/minutes From a43bc2a684ff0d731c7eb1fe773ed2f75e8b07cb Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 13 Nov 2023 09:52:02 -0800 Subject: [PATCH 0179/1024] Update date --- ...-council-update.md => 2023-11-13-leadership-council-update.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2023-11-07-leadership-council-update.md => 2023-11-13-leadership-council-update.md} (100%) diff --git a/posts/inside-rust/2023-11-07-leadership-council-update.md b/posts/inside-rust/2023-11-13-leadership-council-update.md similarity index 100% rename from posts/inside-rust/2023-11-07-leadership-council-update.md rename to posts/inside-rust/2023-11-13-leadership-council-update.md From 1348ab89256d7bf246c5e6b8c6f6d5f3a0b40316 Mon Sep 17 00:00:00 2001 From: Felix S Klock II Date: Tue, 14 Nov 2023 21:06:12 -0500 Subject: [PATCH 0180/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Incorporate rewording suggestion from JoelMarcey. Co-authored-by: Joel Marcey --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index fe27a457d..b2942fae0 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -13,7 +13,7 @@ With this blog post, we present the steps we have taken so far and our plans for One of the first steps was to fill the role of "editor" [as laid out in the RFC](https://rust-lang.github.io/rfcs/3355-rust-spec.html#role-of-the-editor). The responsibility of coordination and editing of the specification is purposely delegated to the Rust Foundation, to ensure continuity of the work. -As part of the hiring effort by the Foundation, we interviewed a few interested candidates with relevant experience. After a process in which an offer was eventually rejected by a candidate, the Foundation changed its approach and looked internally instead. The Foundation has given its Director of Technology, Joel, the opportunity to make the role of editor a part of his existing job. Because of his vast experience with industry standards and technical editing together with his already close proximity to the Rust project, Eric, Felix and Mara were quickly on board with having Joel as the editor, who has accepted this role. +As part of the hiring effort for this role by the Foundation, we interviewed a few interested candidates with relevant experience. Because an offer to a candidate was eventually rejected, the Foundation opted to consider internal options as an alternative. The Foundation's Director of Technology, Joel, came forward as a willing candidate for the position as part of his existing job. Eric, Felix, and Mara were quickly on board with the idea of having Joel as the Specification Editor due to his vast experience with industry standards and technical editing and his proximity to the Rust project. ## Specification Team From 5beefea593ba94e41fe9019ad81abf74028ad166 Mon Sep 17 00:00:00 2001 From: Felix S Klock II Date: Tue, 14 Nov 2023 21:21:57 -0500 Subject: [PATCH 0181/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Incorporate clarifying suggestion from matthewjasper. Co-authored-by: matthewjasper <20113453+matthewjasper@users.noreply.github.com> --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index b2942fae0..fee0e0378 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -105,7 +105,7 @@ One can also say, descriptively, that the current version of Rust rejects source The descriptive definitions tell the reader how a construct will behave with respect to that Rust version; the prescriptive bounds tell the reader what they can and cannot expect to hold true in the future of Rust. -Thus, we conclude that an ideal specification will need to address both the static and dynamic semantics, for both the prescriptive bounds and descriptive details. +Thus, we conclude that an ideal specification will need to use both prescriptive bounds and descriptive details, for both the static and dynamic semantics. **"delegates"**: There are broad areas where the questions of what semantics we want, and how they should be specified, are open research topics. Examples of such areas include: macros 2.0, the type inference rules, the trait matching rules, and the operational semantics of unsafe code. From f72debebb2e697554b4b77e15e6d45aa37cbbc83 Mon Sep 17 00:00:00 2001 From: Felix Klock Date: Tue, 14 Nov 2023 22:58:03 -0500 Subject: [PATCH 0182/1024] Elaborated discussion of versioning, evolution, prescriptive/descriptive, and bounds. This was inspired by matthewjasper's feedback on the blog post PR. --- posts/inside-rust/2023-11-09-spec-vision.md | 49 ++++++++++++++++----- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index fee0e0378..d933c4309 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -76,10 +76,15 @@ The words above have been chosen carefully; it is worth elaborating on those wor The static semantics of Rust dictates which programs are accepted in the language, while the dynamic semantics determines which of those accepted programs are well-defined, as well as their respective meanings. The word "semantics" in the purpose statement refers to both the static and dynamic semantics of Rust collectively. -**"current", "future"**: The Rust language has been evolving since its inception, and we expect it to continue to evolve going forward. +**"current and future versions"**: The Rust language has been evolving since its inception, and we expect it to continue to evolve going forward. These evolutionary steps represent a traversal over the language design landscape. For every Rust release, we expect the current implementation to be standing at one point in that landscape, while the Rust community's idealized goal awaits at some higher point up the mountain. +Rust's evolution follows two axes: release versions (such as Rust 1.73) and editions (such as the 2021 edition). +Each version of Rust supports its most recent edition and all prior editions. +The specification will evolve in parallel, with specification releases corresponding to Rust releases. +Each release of the specification defines the semantics of all editions supported by that Rust release. + **"prescriptive", "descriptive"**: A descriptive dictionary is one that attempts to describe how a word *is* used, while a prescriptive dictionary is one that prescribes how a word *should be* used. We take inspiration from that distinction to tease apart two important audience types. @@ -87,25 +92,47 @@ Rust provides a stability promise: "You should never have to fear upgrading to a That raises a natural question: Why does the purpose statement distinguish version-crossing prescriptive definitions from version-specific descriptive definitions? Our answer: -That stability promise left a bit of wiggle-room for itself, in terms of what the project considers "fear" vs "reasonable labor associated with a Rust upgrade." + +The descriptive definitions tell the reader how a construct will behave with respect to a specific Rust version (e.g. Rust 1.76). +The prescriptive bounds tell the reader what they can and cannot expect to hold true in future Rust versions. + +We treat these as distinct concepts because they serve two distinct audiences. + +The statement of Rust's stability promise left a bit of wiggle-room for itself, in terms of what the project considers "fear" vs "reasonable labor associated with a Rust upgrade." When defining semantics, one must be more explicit about any such wiggle-room. Some Rust users *need* a description of the expected semantics as it stands for the Rust release that sits in their hands; they are the audience for version-specific details. But other Rust users, such as some library developers, have a more forward-looking perspective. The forward-looking developers may require an assurance that one specific code snippet A will always be accepted, and will also always have a particular meaning. They may require an assurance that a different snippet B will *never* be accepted. Or they may require an assurance that a third snippet C leveraging Unsafe Rust will always have undefined behavior (e.g. to justify a local transformation by arguing that no *new* undefined behavior is injected by that transformation.) -These are all cases that call for a prescriptive definition of the semantics; it does not matter in these cases what the compiler currently does -- what matters is what it will do in the future, which is inherently prescriptive. +These are all cases that call for a prescriptive definition of the semantics. +Stating what the Rust compiler currently does is not sufficient for these developers; they need to know what future versions of the compiler may do, which is inherently prescriptive. + +**"bounds"**: From the perspective of a Rust user, an ideal specification would provide definitions that are both precise and prescriptive. +However, it is premature for the project to provide prescriptive definitions that are 100% precise in all areas of Rust's semantics. + +Example 1: Rust's type inference rules are not ready to be set in stone for all future versions. +The rules are still undergoing development; a sound program that is rejected by the type system today may be deemed acceptable tomorrow. + +Example 2: If we chose a fixed grammar, and then said all future versions of Rust must strictly categorize all source inputs as accepted or rejected according to that one grammar, then that would restrict our ability to add future backward-compatible language extensions to the grammar. + +In order to allow prescriptive definitions in the face of such challenges as these, we sacrifice some precision in order to regain flexibility, +by planning for our prescriptive definitions to be framed as *bounds* on the semantics. + +Example 3: The Rust memory model is still an open research area. +We are not yet prepared to establish a binary sound/unsound categorization for arbitrary unsafe code and set it in stone for all future versions of Rust. + +But, there are some unsafe code patterns that are definitely sound; these can be used as the basis for defining a *lower bound* on what unsafe code is well-defined. +There are likewise unsafe code anti-patterns that we are certain to be unsound; these can be used as the basis for defining an *upper bound* on what unsafe code *might* be well-defined in Rust's dynamic semantics (or, as an alternative perspective: these provide a lower bound on what unsafe code will always be considered undefined behavior in Rust). -It would be premature to fix firm definitions in those areas, e.g. categorizing for each input program whether it is accepted or rejected by the type inference system, and then forcing all futures versions of Rust to follow that same categorization. -Another similar example: If we chose a fixed grammar, and then said all future versions of Rust must strictly categorize all source inputs as accepted or rejected according to that one grammar, then that would restrict our ability to add future backward-compatible language extensions to the grammar. -Therefore, these kinds of guarantees (especially with respect to details of the type inference rules, or details of what unsafe code is well-defined) are where the prescriptive *bounds* arise. -Such bounds allow for a middle ground of programs, where we do not commit all future versions of Rust to always make the same decision that the current version makes. -For example, one can then say, prescriptively, that a given grammar provides a lower bound on the set of programs that must be accepted by all future versions of Rust, while still allowing the language to evolve in a backward compatible fashion. -One can also say, descriptively, that the current version of Rust rejects source inputs that do not conform to the grammar. +Prescriptive bounds allow for the specification to include a middle ground of programs, where we do not commit all future versions of Rust to always make the same decision that the current version makes. +For example, one can then say, *prescriptively*, that a given grammar provides a lower bound on the set of programs that must be accepted by all future versions of Rust, while still allowing the language to evolve in a backward compatible fashion. +One can also say, *descriptively*, that the current version of Rust rejects source inputs that do not conform to the grammar. -The descriptive definitions tell the reader how a construct will behave with respect to that Rust version; the prescriptive bounds tell the reader what they can and cannot expect to hold true in the future of Rust. +Over time, the gap between the upper and lower bounds will shrink as the specification evolves and becomes more precise, resolving ambiguities in Rust's semantics. +In the limit, when/if the upper and lower bounds meet, this idealized process yields a completely precise prescriptive definition. -Thus, we conclude that an ideal specification will need to use both prescriptive bounds and descriptive details, for both the static and dynamic semantics. +In the interim, before we reach that limit, the specification will provide both prescriptive bounds and descriptive details, for both the static and dynamic semantics. **"delegates"**: There are broad areas where the questions of what semantics we want, and how they should be specified, are open research topics. Examples of such areas include: macros 2.0, the type inference rules, the trait matching rules, and the operational semantics of unsafe code. From 9fb3a595128ab0bc21e553fd4bcbf33e5bb978be Mon Sep 17 00:00:00 2001 From: Felix Klock Date: Wed, 15 Nov 2023 00:19:02 -0500 Subject: [PATCH 0183/1024] Refined section on incremental development based on feedback from programmerjake about ambiguity of earlier phrasing. --- posts/inside-rust/2023-11-09-spec-vision.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index d933c4309..2b95739c4 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -123,7 +123,7 @@ Example 3: The Rust memory model is still an open research area. We are not yet prepared to establish a binary sound/unsound categorization for arbitrary unsafe code and set it in stone for all future versions of Rust. But, there are some unsafe code patterns that are definitely sound; these can be used as the basis for defining a *lower bound* on what unsafe code is well-defined. -There are likewise unsafe code anti-patterns that we are certain to be unsound; these can be used as the basis for defining an *upper bound* on what unsafe code *might* be well-defined in Rust's dynamic semantics (or, as an alternative perspective: these provide a lower bound on what unsafe code will always be considered undefined behavior in Rust). +There are likewise unsafe code anti-patterns that are certain to be unsound; these can be used as the basis for defining an *upper bound* on what unsafe code *might* be well-defined in Rust's dynamic semantics (or, as an alternative perspective: these provide a lower bound on what unsafe code will always be considered undefined behavior in Rust). Prescriptive bounds allow for the specification to include a middle ground of programs, where we do not commit all future versions of Rust to always make the same decision that the current version makes. For example, one can then say, *prescriptively*, that a given grammar provides a lower bound on the set of programs that must be accepted by all future versions of Rust, while still allowing the language to evolve in a backward compatible fashion. @@ -154,14 +154,15 @@ All such prescriptive rules are then subject to the specification approval proce It is ambitious to provide both prescriptive bounds for current and future Rust versions and descriptive details of the current Rust version. We will maximize the value of our efforts by working iteratively and incrementally. -The specification can have gaps where the prescribed bounds are broader than necessary. -Subsequent releases of the specification can tighten those prescribed bounds. We expect early versions of the spec to focus heavily on delivering the detailed description of the current Rust version. Such a specification could be derived heavily from an existing work product, such as the Ferrocene specification, since that explicitly focuses on providing a detailed description of a specific Rust version. Feedback on those version-specific descriptions will help us learn how best to craft the prescriptive bounds in the specification. -The prescriptive bounds can start with useful high-level guarantees (e.g. "safe Rust cannot cause undefined behavior"), and then future versions of the specification can incrementally add more details to the prescriptive bounds (e.g. "unsafe Rust cannot cause undefined behaviour under the following conditions: …"), incrementally gaining more details over time. +Due to our aforementioned focus on the current Rust version, early versions of the specification may have gaps where the prescriptive bounds are more imprecise than necessary. +For example, prescribing "unsafe Rust code might cause undefined behavior" provides no guidance on how to write well-defined unsafe code. +Even with such imprecision, the prescriptive bounds can still provide useful high-level guarantees (e.g. "safe Rust cannot cause undefined behavior"). +Future versions of the specification then add more prescriptive details (e.g. "unsafe Rust code cannot cause undefined behaviour under the following conditions: …") until we reach our desired level of precision. ## Scope From e0ebbcc2346e0828dabf981004529773fa8a803b Mon Sep 17 00:00:00 2001 From: Felix Klock Date: Wed, 15 Nov 2023 00:23:31 -0500 Subject: [PATCH 0184/1024] Address feedback from matthewjasper about a place where the text deviated from its established format. --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index 2b95739c4..522d13d7a 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -134,7 +134,7 @@ In the limit, when/if the upper and lower bounds meet, this idealized process yi In the interim, before we reach that limit, the specification will provide both prescriptive bounds and descriptive details, for both the static and dynamic semantics. -**"delegates"**: There are broad areas where the questions of what semantics we want, and how they should be specified, are open research topics. +**"delegation"**: There are broad areas where the questions of what semantics we want, and how they should be specified, are open research topics. Examples of such areas include: macros 2.0, the type inference rules, the trait matching rules, and the operational semantics of unsafe code. It is not reasonable for the specification team to claim authority on such topics. Instead, other teams will be invited to contribute their own detailed descriptions, which can be published as their own documents that the specification can reference. From 06d327106c95253b3327e6efb5cacc77e7de2d6d Mon Sep 17 00:00:00 2001 From: Felix S Klock II Date: Wed, 15 Nov 2023 10:28:06 -0500 Subject: [PATCH 0185/1024] Update posts/inside-rust/2023-11-09-spec-vision.md Replaced "engage other teams" with clearer language to convey that this is meant to be business as usual for the project, not something new or more proactive than normal. --- posts/inside-rust/2023-11-09-spec-vision.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-09-spec-vision.md index 522d13d7a..3ec4b5932 100644 --- a/posts/inside-rust/2023-11-09-spec-vision.md +++ b/posts/inside-rust/2023-11-09-spec-vision.md @@ -41,7 +41,7 @@ Initially, the stakeholders will consist of: ## Authority and Approval -While the specification team is in charge of writing and editing the specification, the authority over definition of the Rust language remains with the relevant teams, such as the language team and the library API team. Those teams are expected to engage other teams/subteams to provide their approval when necessary. +While the specification team is in charge of writing and editing the specification, the authority over definition of the Rust language remains with the relevant teams, such as the language team and the library API team. Those teams are expected to involve other teams/subteams when necessary, such as by filing issues, nominating issues for discussion, and requesting FCP approval on critical decisions. To allow the specification team to produce content and iterate on it without being blocked by approval processes, we will be working on a draft specification in our work repository. With the help of some tooling, we will publicly keep track of which items still require team approval, and which items have open concerns from stakeholders. From 7ef332d069f3424f0b165dcc21299b52c7953cfc Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Wed, 15 Nov 2023 19:05:58 +0100 Subject: [PATCH 0186/1024] Update date. --- .../{2023-11-09-spec-vision.md => 2023-11-15-spec-vision.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2023-11-09-spec-vision.md => 2023-11-15-spec-vision.md} (100%) diff --git a/posts/inside-rust/2023-11-09-spec-vision.md b/posts/inside-rust/2023-11-15-spec-vision.md similarity index 100% rename from posts/inside-rust/2023-11-09-spec-vision.md rename to posts/inside-rust/2023-11-15-spec-vision.md From 32b9c3204714510e57520894b1b84e9476cd8576 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 14 Nov 2023 15:35:42 -0800 Subject: [PATCH 0187/1024] Announcing Rust 1.74.0 --- posts/2023-11-16-Rust-1.74.0.md | 137 ++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 posts/2023-11-16-Rust-1.74.0.md diff --git a/posts/2023-11-16-Rust-1.74.0.md b/posts/2023-11-16-Rust-1.74.0.md new file mode 100644 index 000000000..7a86cba7b --- /dev/null +++ b/posts/2023-11-16-Rust-1.74.0.md @@ -0,0 +1,137 @@ +--- +layout: post +title: "Announcing Rust 1.74.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.74.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via rustup, you can get 1.74.0 with: + +```console +rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.74.0](https://github.com/rust-lang/rust/releases/tag/1.74.0) on GitHub. + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.74.0 stable + +### Lint configuration through Cargo + +As proposed in [RFC 3389](https://rust-lang.github.io/rfcs/3389-manifest-lint.html), +the `Cargo.toml` manifest now supports a `[lints]` table to configure the +reporting level (forbid, deny, warn, allow) for lints from the compiler and +other tools. So rather than setting `RUSTFLAGS` with `-F`/`-D`/`-W`/`-A`, which +would affect the entire build, or using crate-level attributes like: + +```rust +#![forbid(unsafe_code)] +#![deny(clippy::enum_glob_use)] +``` + +You can now write those in your package manifest for Cargo to handle: + +```toml +[lints.rust] +unsafe_code = "forbid" + +[lints.clippy] +enum_glob_use = "deny" +``` + +These can also be configured in a `[workspace.lints]` table, then inherited by +`[lints] workspace = true` like many other workspace settings. Cargo will also +track changes to these settings when deciding which crates need to be rebuilt. + +For more information, see the [`lints`] and [`workspace.lints`] sections of the +Cargo reference manual. + +[`lints`]: https://doc.rust-lang.org/stable/cargo/reference/manifest.html#the-lints-section +[`workspace.lints`]: https://doc.rust-lang.org/stable/cargo/reference/workspaces.html#the-lints-table + +### Projections in opaque return types + +If you have ever received the error that a "return type cannot contain a +projection or `Self` that references lifetimes from a parent scope," you may +now rest easy! The compiler does now allow allows mentioning `Self` and +associated types in opaque return types, like `async fn` and `-> impl Trait`. +This is the kind of feature that gets Rust closer to how you might just +_expect_ it to work, even if you have no idea about jargon like "projection." + +This functionality had an unstable feature gate because its implementation +originally didn't properly deal with captured lifetimes, and once that was +fixed it was given time to make sure it was sound. For more technical details, +see the [stabilization pull request][115659], which describes the following +examples that are all now allowed: + +```rust +struct Wrapper<'a, T>(&'a T); + +// Opaque return types that mention `Self`: +impl Wrapper<'_, ()> { + async fn async_fn() -> Self { /* ... */ } + fn impl_trait() -> impl Iterator { /* ... */ } +} + +trait Trait<'a> { + type Assoc; + fn new() -> Self::Assoc; +} +impl Trait<'_> for () { + type Assoc = (); + fn new() {} +} + +// Opaque return types that mention an associated type: +impl<'a, T: Trait<'a>> Wrapper<'a, T> { + async fn mk_assoc() -> T::Assoc { /* ... */ } + fn a_few_assocs() -> impl Iterator { /* ... */ } +} +``` + +[115659]: https://github.com/rust-lang/rust/pull/115659 + +### Stabilized APIs + +- [`core::num::Saturating`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html) +- [`impl From for std::process::Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStdout%3E-for-Stdio) +- [`impl From for std::process::Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio) +- [`impl From for std::process::Child{Stdin, Stdout, Stderr}`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio) +- [`impl From for std::process::Child{Stdin, Stdout, Stderr}`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio) +- [`std::ffi::OsString::from_encoded_bytes_unchecked`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.from_encoded_bytes_unchecked) +- [`std::ffi::OsString::into_encoded_bytes`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.into_encoded_bytes) +- [`std::ffi::OsStr::from_encoded_bytes_unchecked`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.from_encoded_bytes_unchecked) +- [`std::ffi::OsStr::as_encoded_bytes`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.as_encoded_bytes) +- [`std::io::Error::other`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#method.other) +- [`impl TryFrom for u16`](https://doc.rust-lang.org/stable/std/primitive.u16.html#impl-TryFrom%3Cchar%3E-for-u16) +- [`impl From<&[T; N]> for Vec`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#impl-From%3C%26%5BT;+N%5D%3E-for-Vec%3CT,+Global%3E) +- [`impl From<&mut [T; N]> for Vec`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#impl-From%3C%26mut+%5BT;+N%5D%3E-for-Vec%3CT,+Global%3E) +- [`impl From<[T; N]> for Arc<[T]>`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#impl-From%3C%5BT;+N%5D%3E-for-Arc%3C%5BT%5D,+Global%3E) +- [`impl From<[T; N]> for Rc<[T]>`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#impl-From%3C%5BT;+N%5D%3E-for-Rc%3C%5BT%5D,+Global%3E) + +These APIs are now stable in const contexts: + +- [`core::mem::transmute_copy`](https://doc.rust-lang.org/beta/std/mem/fn.transmute_copy.html) +- [`str::is_ascii`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.is_ascii) +- [`[u8]::is_ascii`](https://doc.rust-lang.org/beta/std/primitive.slice.html#method.is_ascii) + +### Compatibility notes + +* As [previously announced][apple-min], Rust 1.74 has increased its + requirements on Apple platforms. The minimum versions are now: + - macOS: 10.12 Sierra (First released 2016) + - iOS: 10 (First released 2016) + - tvOS: 10 (First released 2016) + +[apple-min]: https://blog.rust-lang.org/2023/09/25/Increasing-Apple-Version-Requirements.html + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.74.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-174-2023-11-16), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-174). + +## Contributors to 1.74.0 + +Many people came together to create Rust 1.74.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.74.0/) From 0f3885da74967a9a65aa8703779142d5193acf2b Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 15 Nov 2023 18:28:54 -0800 Subject: [PATCH 0188/1024] Apply suggestions from code review Co-authored-by: Eric Huss Co-authored-by: lcnr Co-authored-by: Mark Rousskov --- posts/2023-11-16-Rust-1.74.0.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/posts/2023-11-16-Rust-1.74.0.md b/posts/2023-11-16-Rust-1.74.0.md index 7a86cba7b..37c39b821 100644 --- a/posts/2023-11-16-Rust-1.74.0.md +++ b/posts/2023-11-16-Rust-1.74.0.md @@ -56,10 +56,10 @@ Cargo reference manual. If you have ever received the error that a "return type cannot contain a projection or `Self` that references lifetimes from a parent scope," you may -now rest easy! The compiler does now allow allows mentioning `Self` and +now rest easy! The compiler now allows mentioning `Self` and associated types in opaque return types, like `async fn` and `-> impl Trait`. This is the kind of feature that gets Rust closer to how you might just -_expect_ it to work, even if you have no idea about jargon like "projection." +_expect_ it to work, even if you have no idea about jargon like "projection". This functionality had an unstable feature gate because its implementation originally didn't properly deal with captured lifetimes, and once that was @@ -114,9 +114,9 @@ impl<'a, T: Trait<'a>> Wrapper<'a, T> { These APIs are now stable in const contexts: -- [`core::mem::transmute_copy`](https://doc.rust-lang.org/beta/std/mem/fn.transmute_copy.html) -- [`str::is_ascii`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.is_ascii) -- [`[u8]::is_ascii`](https://doc.rust-lang.org/beta/std/primitive.slice.html#method.is_ascii) +- [`core::mem::transmute_copy`](https://doc.rust-lang.org/stable/std/mem/fn.transmute_copy.html) +- [`str::is_ascii`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.is_ascii) +- [`[u8]::is_ascii`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.is_ascii) ### Compatibility notes From d6130dda105c5c0180049aa969df9e4af701c49a Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 15 Nov 2023 18:34:46 -0800 Subject: [PATCH 0189/1024] Cargo Registry Authentication Co-authored-by: Arlo Siemsen --- posts/2023-11-16-Rust-1.74.0.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/posts/2023-11-16-Rust-1.74.0.md b/posts/2023-11-16-Rust-1.74.0.md index 37c39b821..b241a2f96 100644 --- a/posts/2023-11-16-Rust-1.74.0.md +++ b/posts/2023-11-16-Rust-1.74.0.md @@ -52,6 +52,25 @@ Cargo reference manual. [`lints`]: https://doc.rust-lang.org/stable/cargo/reference/manifest.html#the-lints-section [`workspace.lints`]: https://doc.rust-lang.org/stable/cargo/reference/workspaces.html#the-lints-table +### Cargo Registry Authentication + +Two more related Cargo features are included in this release: credential +providers and authenticated private registries. + +Credential providers allow configuration of how Cargo gets credentials for a +registry. Built-in providers are included for OS-specific secure secret storage +on Linux, macOS, and Windows. Additionally, custom providers can be written to +support arbitrary methods of storing or generating tokens. Using a secure +credential provider reduces risk of registry tokens leaking. + +Registries can now optionally require authentication for all operations, not +just publishing. This enables private Cargo registries to offer more secure +hosting of crates. Use of private registries requires the configuration of a +credential provider. + +For further information, see the +[Cargo docs](https://doc.rust-lang.org/beta/cargo/reference/registry-authentication.html). + ### Projections in opaque return types If you have ever received the error that a "return type cannot contain a From 0d15659791afa93af580c1a6756367d8baf83784 Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 01:17:19 +0000 Subject: [PATCH 0190/1024] Creating file via promote-release automation --- .../2023-12-05-1.74.1-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-12-05-1.74.1-prerelease.md diff --git a/posts/inside-rust/2023-12-05-1.74.1-prerelease.md b/posts/inside-rust/2023-12-05-1.74.1-prerelease.md new file mode 100644 index 000000000..aeea01377 --- /dev/null +++ b/posts/inside-rust/2023-12-05-1.74.1-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.74.1 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.74.1 pre-release is ready for testing. The release is scheduled for +December 7. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-74-1-pre-release-testing/19979). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1741-2023-12-07 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From e337a9379e325c18fbcc510d41539eea57f58a77 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Thu, 7 Dec 2023 08:02:05 -0500 Subject: [PATCH 0191/1024] Add 1.74.1 post --- posts/2023-12-07-Rust-1.74.1.md | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 posts/2023-12-07-Rust-1.74.1.md diff --git a/posts/2023-12-07-Rust-1.74.1.md b/posts/2023-12-07-Rust-1.74.1.md new file mode 100644 index 000000000..834caaded --- /dev/null +++ b/posts/2023-12-07-Rust-1.74.1.md @@ -0,0 +1,35 @@ +--- +layout: post +title: "Announcing Rust 1.74.1" +author: The Rust Release Team +release: true +--- + +The Rust team has published a new point release of Rust, 1.74.1. Rust is a +programming language that is empowering everyone to build reliable and +efficient software. + +If you have a previous version of Rust installed via rustup, getting Rust +1.74.1 is as easy as: + +``` +rustup update stable +``` + +If you don't have it already, you can [get `rustup`][rustup] from the +appropriate page on our website. + +[rustup]: https://www.rust-lang.org/install.html + +## What's in 1.74.1 + +1.74.1 resolves a few regressions introduced in 1.74.0: + +- [Resolved spurious STATUS_ACCESS_VIOLATIONs in LLVM](https://github.com/rust-lang/rust/pull/118464) +- [Clarify guarantees for std::mem::discriminant](https://github.com/rust-lang/rust/pull/118006) +- [Fix some subtyping-related regressions](https://github.com/rust-lang/rust/pull/116415) + +### Contributors to 1.74.1 + +Many people came together to create Rust 1.74.1. We couldn't have done it +without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.74.1/) From d30702417b5f6cd227eeaa3f2bb102af35f309c2 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Thu, 7 Dec 2023 18:56:10 -0800 Subject: [PATCH 0192/1024] Add cargo cache cleaning post --- .../2023-12-08-cargo-cache-cleaning.md | 171 ++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 posts/inside-rust/2023-12-08-cargo-cache-cleaning.md diff --git a/posts/inside-rust/2023-12-08-cargo-cache-cleaning.md b/posts/inside-rust/2023-12-08-cargo-cache-cleaning.md new file mode 100644 index 000000000..a2e375f9f --- /dev/null +++ b/posts/inside-rust/2023-12-08-cargo-cache-cleaning.md @@ -0,0 +1,171 @@ +--- +layout: post +title: "Cargo cache cleaning" +author: Eric Huss +team: The Cargo Team +--- + +Cargo has recently gained an unstable feature on the nightly channel (starting with nightly-2023-11-17) to perform automatic cleaning of cache content within Cargo's home directory. +This post includes a description of what this means, a call for help, and an outline of what is planned for the future. + +In short, we are asking people who use the nightly channel to enable this feature and report any issues you encounter on the [Cargo issue tracker][cargo-issues]. +To enable it, place the following in your Cargo config file (typically located in `~/.cargo/config.toml` or `%USERPROFILE%\.cargo\config.toml` for Windows): + +```toml +[unstable] +gc = true +``` + +Or set the `CARGO_UNSTABLE_GC=true` environment variable or use the `-Zgc` CLI flag to turn it on for individual commands. + +We'd particularly like people who use unusual filesystems or environments to give it a try, since there are some parts of the implementation which are sensitive and need battle testing before we turn it on for everyone. + +[cargo-issues]: https://github.com/rust-lang/cargo/issues/ + +## What is this feature? + +Cargo keeps a variety of cached data within the Cargo home directory. +This cache can grow unbounded and can get quite large (easily reaching many gigabytes). +Community members have developed tools to manage this cache, such as [`cargo-cache`](https://crates.io/crates/cargo-cache), but cargo itself never exposed any ability to manage it. + +This cache includes: + +- [Registry index data], such as package dependency metadata from [crates.io]. +- Compressed `.crate` files downloaded from a registry. +- The uncompressed contents of those `.crate` files, which `rustc` uses to read the source and compile dependencies. +- Clones of git repositories used by git dependencies. + +The new garbage collection ("GC") feature adds tracking of this cache data so that cargo can automatically or manually remove unused files. +It keeps an SQLite database which tracks the last time the various cache elements have been used. +Every time you run a cargo command that reads or writes any of this cache data, it will update the database with a timestamp of when that data was last used. + +[crates.io]: https://crates.io/ +[registry index data]: https://doc.rust-lang.org/cargo/reference/registry-index.html + +### Automatic cleaning + +When you run cargo, once a day it will inspect the last-use cache tracker, and determine if any cache elements have not been used in a while. +If they have not, then they will be automatically deleted. +This happens with most commands that would normally perform significant work, like `cargo build` or `cargo fetch`. + +The default is to delete data that can be locally recreated if it hasn't been used for 1 month, and to delete data that has to be re-downloaded after 3 months. + +Automatic deletion is disabled if cargo is offline such as with `--offline` or `--frozen` to avoid deleting artifacts that may need to be used if you are offline for a long period of time. + +The initial implementation has exposed a variety of configuration knobs to control how automatic cleaning works. +However, it is unlikely we will expose too many low-level details when it is stabilized, so this may change in the future (see issue [#13061](https://github.com/rust-lang/cargo/issues/13061)). +See the [Automatic garbage collection] section for more details on this configuration. + +[Automatic garbage collection]: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#automatic-garbage-collection + +### Manual cleaning + +If you want to manually delete data from the cache, several options have been added under the `cargo clean gc` subcommand. +This subcommand can be used to perform the normal automatic daily cleaning, or to specify different options on which data to remove. +There are several options for specifying the age of data to delete (such as `--max-download-age=3days`) or specifying the maximum size of the cache (such as `--max-download-size=1GiB`). +See the [Manual garbage collection] section or run `cargo clean gc --help` for more details on which options are supported. + +This CLI design is only preliminary, and we are looking at determining what the final design will look like when it is stabilized, see issue [#13060](https://github.com/rust-lang/cargo/issues/13060). + +[Manual garbage collection]: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#manual-garbage-collection-with-cargo-clean + +## What to watch out for + +After enabling the gc feature, just go about your normal business of using cargo. +You should be able to observe the SQLite database stored in your cargo home directory at `~/.cargo/.global-cache`. + +After the first time you use cargo, it will populate the database tracking all the data that already exists in your cargo home directory. +Then, after 1 month, cargo should start deleting old data, and after 3 months will delete even more data. + +The end result is that after that period of time you should start to notice the home directory using less space overall. + +You can also try out the `cargo clean gc` command and explore some of its options if you want to try to manually delete some data. + +If you run into problems, you can disable the gc feature and cargo should return to its previous behavior. +Please let us know on the [issue tracker][cargo-issues] if this happens. + +## Request for feedback + +We'd like to hear from you about your experience using this feature. +Some of the things we are interested in are: + +- Have you run into any bugs, errors, issues, or confusing problems? + Please file an issue over at . +- The first time that you use cargo with GC enabled, is there an unreasonably long delay? + Cargo may need to scan your existing cache data once to detect what already exists from previous versions. +- Do you notice unreasonable delays when it performs automatic cleaning once a day? +- Do you have use cases where you need to do cleaning based on the size of the cache? + If so, please share them at [#13062](https://github.com/rust-lang/cargo/issues/13062). +- If you think you would make use of manually deleting cache data, what are your use cases for doing that? + Sharing them on [#13060](https://github.com/rust-lang/cargo/issues/13060) about the CLI interface might help guide us on the overall design. +- Does the default of deleting 3 month old data seem like a good balance for your use cases? + +Or if you would prefer to share your experiences on Zulip, head over to the [#t-cargo] stream. + +[#t-cargo]: https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo + +## Design considerations and implementation details + +(These sections are only for the intently curious among you.) + +The implementation of this feature had to consider several constraints to try to ensure that it works in nearly all environments, and doesn't introduce a negative experience for users. + +### Performance + +One big focus was to make sure that the performance of each invocation of `cargo` is not significantly impacted. +Cargo needs to potentially save a large chunk of data every time it runs. +The performance impact will heavily depend on the number of dependencies and your filesystem. +Preliminary testing shows the impact can be anywhere from 0 to about 50ms. + +In order to minimize the performance impact of actually deleting files, the automatic GC runs only once a day. +This is intended to balance keeping the cache clean without impacting the performance of daily use. + +### Locking + +Another big focus is dealing with cache locking. +Previously, cargo had a single lock on the package cache, which cargo would hold while downloading registry data and performing dependency resolution. +When cargo is actually running `rustc`, it previously did not hold a lock under the assumption that existing cache data will not be modified. + +However, now that cargo can modify or delete existing cache data, it needs to be careful to coordinate with anything that might be reading from the cache, such as if multiple cargo commands are run simultaneously. +To handle this, cargo now has two separate locks, which are used together to provide three separate locking states. +There is a shared read lock, which allows multiple builds to run in parallel and read from the cache. +There is a write lock held while downloading registry data, which is independent of the read lock which allows concurrent builds to still run while new packages are downloaded. +The third state is a write lock that prevents either of the two previous locks from being held, and ensures exclusive access while cleaning the cache. + +Versions of cargo before 1.75 don't know about the exclusive write lock. +We are hoping that in practice it will be rare to concurrently run old and new cargo versions, and that it is unlikely that the automatic GC will need to delete data that is concurrently in use by an older version. + +### Error handling and filesystems + +Because we do not want problems with GC from disrupting users, the implementation silently skips the GC if it is unable to acquire an exclusive lock on the package cache. +Similarly, when cargo saves the timestamp data on every command, it will silently ignore errors if it is unable to open the database, such as if it is on a read-only filesystem, or it is unable to acquire a write lock. +This may result in the last-use timestamps becoming stale, but hopefully this should not impact most usage scenarios. +For locking, we are paying special attention to scenarios such as Docker container mounts and network filesystems with questionable locking support. + +### Backwards compatibility + +Since the cache is used by any version of cargo, we have to pay close attention to forwards and backwards compatibility. +We benefit from SQLite's particularly stable on-disk data format which has been stable since 2004. +Cargo has support to do schema migrations within the database that stay backwards compatible. + +## A journey with SQLite + +A major aspect of this endeavor is to gain experience with using SQLite in a wide variety of environments, with a plan to extend its usage in several other parts of cargo. + +One place where we are looking to introduce SQLite is for the registry index cache. +When cargo downloads registry index data, it stores it in a custom-designed binary file format to improve lookup performance. +However, this index cache uses many small files, which may not perform well on some filesystems. +Additionally, the index cache grows without bound. +Currently the automatic cache cleaning will only delete an entire index cache if the index itself hasn't been used, which is rarely the case for [crates.io]. +We may also need to consider finer-grained timestamp tracking or some mechanism to periodically purge this data. + +Another place we are looking to introduce SQLite is for managing the target directory. +In cargo's target directory, cargo keeps track of information about each crate that has been built with what is called a *fingerprint*. +These fingerprints help cargo know if it needs to recompile something. +Each artifact is tracked with a set of 4 files, using a mixture of custom formats. +We are looking to replace this system with SQLite which will hopefully bring about several improvements. +A major focus will be to provide cleaning of stale data in the target directory, which tends to use substantial amount of disk space. +Additionally we are looking to implement other improvements, such as more accurate fingerprint tracking, provide information about why cargo thinks something needed to be recompiled, and to hopefully improve performance. +This will be important for the [script feature], which uses a global cache for build artifacts, and the future implementation of a globally-shared build cache. + +[script feature]: https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#script From defc846a9104f352277cd75e14245006005c2dca Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Fri, 8 Dec 2023 12:23:10 -0800 Subject: [PATCH 0193/1024] Move 2023-12-08-cargo-cache-cleaning to main blog. --- posts/{inside-rust => }/2023-12-08-cargo-cache-cleaning.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{inside-rust => }/2023-12-08-cargo-cache-cleaning.md (100%) diff --git a/posts/inside-rust/2023-12-08-cargo-cache-cleaning.md b/posts/2023-12-08-cargo-cache-cleaning.md similarity index 100% rename from posts/inside-rust/2023-12-08-cargo-cache-cleaning.md rename to posts/2023-12-08-cargo-cache-cleaning.md From 859cbef46415718002b8024a689031066c4d1146 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Fri, 8 Dec 2023 12:38:44 -0800 Subject: [PATCH 0194/1024] Make the post outline a little clearer --- posts/2023-12-08-cargo-cache-cleaning.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/posts/2023-12-08-cargo-cache-cleaning.md b/posts/2023-12-08-cargo-cache-cleaning.md index a2e375f9f..5b7b4cdd3 100644 --- a/posts/2023-12-08-cargo-cache-cleaning.md +++ b/posts/2023-12-08-cargo-cache-cleaning.md @@ -6,7 +6,12 @@ team: The Cargo Team Date: Sat, 9 Dec 2023 15:28:25 -0800 Subject: [PATCH 0195/1024] More direct call-out of target directory cleaning --- posts/2023-12-08-cargo-cache-cleaning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-12-08-cargo-cache-cleaning.md b/posts/2023-12-08-cargo-cache-cleaning.md index 5b7b4cdd3..24d315198 100644 --- a/posts/2023-12-08-cargo-cache-cleaning.md +++ b/posts/2023-12-08-cargo-cache-cleaning.md @@ -11,7 +11,7 @@ This post includes: - A description of what this means ([What is this feature?](#what-is-this-feature)) - A call for help ([What to watch out for](#what-to-watch-out-for) and [Request for feedback](#request-for-feedback)) - Implementation details ([Design considerations and implementation details](#design-considerations-and-implementation-details)) -- An outline of what is planned for the future ([Plan for the future](#plan-for-the-future)) +- An outline of what is planned for the future which includes cleaning of target directories ([Plan for the future](#plan-for-the-future)) In short, we are asking people who use the nightly channel to enable this feature and report any issues you encounter on the [Cargo issue tracker][cargo-issues]. To enable it, place the following in your Cargo config file (typically located in `~/.cargo/config.toml` or `%USERPROFILE%\.cargo\config.toml` for Windows): From 70346edbbaae6923304fe4dfc01a98804e0ed1fd Mon Sep 17 00:00:00 2001 From: bstrie <865233+bstrie@users.noreply.github.com> Date: Sun, 10 Dec 2023 14:56:32 -0500 Subject: [PATCH 0196/1024] Add 2024 Edition Call For Proposals post --- posts/2023-12-10-2024-Edition-CFP.md | 112 +++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 posts/2023-12-10-2024-Edition-CFP.md diff --git a/posts/2023-12-10-2024-Edition-CFP.md b/posts/2023-12-10-2024-Edition-CFP.md new file mode 100644 index 000000000..1582fec84 --- /dev/null +++ b/posts/2023-12-10-2024-Edition-CFP.md @@ -0,0 +1,112 @@ +--- +layout: post +title: "A Call for Proposals for the Rust 2024 Edition" +author: "Ben Striegel on behalf of the Edition 2024 Project Group" +release: false +--- + +The year 2024 is soon to be upon us, and as long-time Rust aficionados know, +that means that a new Edition of Rust is on the horizon! + +## What is an Edition? + +You may be aware that a new *version* of Rust is released every six weeks. +New versions of the language can both add things as well as change things, +but only in backwards-compatible ways, according to Rust's +[1.0 stability guarantee][stability]. + +[stability]: https://blog.rust-lang.org/2014/10/30/Stability.html + +But does that mean that Rust can *never* make backwards-incompatible changes? +Not quite! This is what an Edition is: +Rust's mechanism for introducing backwards-incompatible changes in a backwards-compatible way. +If that sounds like a contradiction, +there are three key properties of Editions that preserve the stability guarantee: + +1. Editions are *opt-in*; +crates only receive breaking changes if its authors explicitly ask for them. + +2. Crates that use older editions *never get left behind*; +a crate written for the original Rust 2015 Edition is still supported by every Rust release, +and can still make use of all the new goodies that accompany each new version, +e.g. new library APIs, compiler optimizations, etc. + +3. An Edition *never splits the library ecosystem*; +crates using new Editions can depend on crates using old Editions (and vice-versa!), +so nobody ever has to worry about Edition-related incompatibility. + +In order to keep churn to a minimum, a new Edition of Rust is only released once every three years. +We've had the [2015 Edition][2015], the [2018 Edition][2018], the [2021 Edition][2021], +and soon, the 2024 Edition. And we could use your help! + +[2015]: https://doc.rust-lang.org/edition-guide/rust-2015/index.html + +[2018]: https://doc.rust-lang.org/edition-guide/rust-2018/index.html + +[2021]: https://doc.rust-lang.org/edition-guide/rust-2021/index.html + +## A call for proposals for the Rust 2024 Edition + +We know how much you love Rust, but let's be honest, no language is perfect, +and Rust is no exception. +So if you've got ideas for how Rust could be better if only that pesky stability guarantee +weren't around, now's the time to share! +Also note that potential Edition-related changes aren't just limited to the language itself: +we'll also consider proposed changes to the standard library, Cargo, and rustfmt. + +Please keep in mind that the following criteria determine the sort of changes we're looking for: + +1. A change must be possible to implement without violating the strict properties +listed in the prior section. +Specifically, the ability of crates to have cross-Edition dependencies imposes restrictions +on changes that would take effect across crate boundaries, e.g. the signatures of public APIs. +However, we will occasionally discover that an Edition-related change +[that was once thought to be impossible actually turns out to be feasible][change], +so hope is not lost if you're not sure if your idea meets this standard; +propose it just to be safe! + +[change]: https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html + +2. We strive to ensure that *nearly all* Edition-related changes can be applied +to existing codebases automatically (via tools like `cargo fix`), +in order to make upgrading to a new Edition as painless as possible. + +3. Even if an Edition *could* make any given change, [that doesn't mean that it should][jeff]. +We're not looking for hugely-invasive changes or things that would fundamentally +alter the character of the language. +Please focus your proposals on things like fixing obvious bugs, changing annoying behavior, +unblocking future feature development, and making the language easier and more consistent. + +[jeff]: https://www.youtube.com/watch?v=9nazm3_OXac + +As an example, in the 2015 Edition a dynamically-dispatched trait object +has a type that looks like `Box`. +In the 2018 Edition, in order to distinguish this from the then-new, +statically-dispatched `impl Trait` syntax, trait objects began to require the `dyn` keyword, +so `Box` became `Box`. +To make this migration automatic, `cargo fix` gained the ability to rewrite the types +of trait objects, +as well as to rewrite identifiers in case any code out there was using `dyn` as a variable name. + +## How to contribute + +Just like other changes to Rust, Edition-related proposals follow the RFC process, +as documented in [the Rust RFCs repository][rfcs]. + +[rfcs]: https://github.com/rust-lang/rfcs/#rust-rfcs---rfc-book---active-rfc-list + +Please file your RFCs as soon as possible! +Our goal is to release the 2024 Edition in the second half of 2024, +which means we would like to get everything *implemented* +(not only the features themselves, but also all the Edition-related migration tooling) +by the end of May, which means that RFCs should be accepted by the end of February. +And since RFCs take time to discuss and consider, +we strongly encourage you to have your RFC filed by the end of December, +or the first week of January at the very latest. + +We hope to have periodic updates on the ongoing development of the 2024 Edition. +In the meantime, if you have any questions or +if you would like to help us make the new Edition a reality, +we invite you to come chat in [the `#edition` channel in the Rust Zulip][zulip]. + +[zulip]: https://rust-lang.zulipchat.com/#narrow/stream/268952-edition From c07fd103cc7e72259f0cd73b3cb9851f18c84d0c Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 11 Dec 2023 09:37:19 -0800 Subject: [PATCH 0197/1024] Rename to 2023-12-11 --- ...cargo-cache-cleaning.md => 2023-12-11-cargo-cache-cleaning.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2023-12-08-cargo-cache-cleaning.md => 2023-12-11-cargo-cache-cleaning.md} (100%) diff --git a/posts/2023-12-08-cargo-cache-cleaning.md b/posts/2023-12-11-cargo-cache-cleaning.md similarity index 100% rename from posts/2023-12-08-cargo-cache-cleaning.md rename to posts/2023-12-11-cargo-cache-cleaning.md From 54d5202fdc9e171ae98adbd4c3192255f0a4ced7 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 11 Dec 2023 09:38:52 -0800 Subject: [PATCH 0198/1024] Move mention of target directory cleaning. --- posts/2023-12-11-cargo-cache-cleaning.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/posts/2023-12-11-cargo-cache-cleaning.md b/posts/2023-12-11-cargo-cache-cleaning.md index 24d315198..921e3ecfb 100644 --- a/posts/2023-12-11-cargo-cache-cleaning.md +++ b/posts/2023-12-11-cargo-cache-cleaning.md @@ -11,7 +11,7 @@ This post includes: - A description of what this means ([What is this feature?](#what-is-this-feature)) - A call for help ([What to watch out for](#what-to-watch-out-for) and [Request for feedback](#request-for-feedback)) - Implementation details ([Design considerations and implementation details](#design-considerations-and-implementation-details)) -- An outline of what is planned for the future which includes cleaning of target directories ([Plan for the future](#plan-for-the-future)) +- An outline of what is planned for the future ([Plan for the future](#plan-for-the-future)) In short, we are asking people who use the nightly channel to enable this feature and report any issues you encounter on the [Cargo issue tracker][cargo-issues]. To enable it, place the following in your Cargo config file (typically located in `~/.cargo/config.toml` or `%USERPROFILE%\.cargo\config.toml` for Windows): @@ -44,6 +44,8 @@ The new garbage collection ("GC") feature adds tracking of this cache data so th It keeps an SQLite database which tracks the last time the various cache elements have been used. Every time you run a cargo command that reads or writes any of this cache data, it will update the database with a timestamp of when that data was last used. +What isn't yet included is cleaning of target directories, see [Plan for the future](#plan-for-the-future). + [crates.io]: https://crates.io/ [registry index data]: https://doc.rust-lang.org/cargo/reference/registry-index.html From bab6d5064bb7b1b487c41bc7bdf672437e1c3e92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BF=B7=E6=B8=A1?= Date: Tue, 12 Dec 2023 09:52:16 +0800 Subject: [PATCH 0199/1024] fix webmanifest image link --- static/images/site.webmanifest | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/images/site.webmanifest b/static/images/site.webmanifest index b20abb7cb..58a557644 100644 --- a/static/images/site.webmanifest +++ b/static/images/site.webmanifest @@ -3,12 +3,12 @@ "short_name": "", "icons": [ { - "src": "/android-chrome-192x192.png", + "src": "/images/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, { - "src": "/android-chrome-512x512.png", + "src": "/images/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" } From 56bd67c313f8934d52e29838f4ac0a1bac7891eb Mon Sep 17 00:00:00 2001 From: bstrie <865233+bstrie@users.noreply.github.com> Date: Wed, 13 Dec 2023 09:15:03 -0500 Subject: [PATCH 0200/1024] Address feedback --- posts/2023-12-10-2024-Edition-CFP.md | 34 ++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/posts/2023-12-10-2024-Edition-CFP.md b/posts/2023-12-10-2024-Edition-CFP.md index 1582fec84..27c5f665f 100644 --- a/posts/2023-12-10-2024-Edition-CFP.md +++ b/posts/2023-12-10-2024-Edition-CFP.md @@ -52,7 +52,7 @@ and Rust is no exception. So if you've got ideas for how Rust could be better if only that pesky stability guarantee weren't around, now's the time to share! Also note that potential Edition-related changes aren't just limited to the language itself: -we'll also consider proposed changes to the standard library, Cargo, and rustfmt. +we'll also consider changes to both Cargo and rustfmt as well. Please keep in mind that the following criteria determine the sort of changes we're looking for: @@ -79,22 +79,38 @@ unblocking future feature development, and making the language easier and more c [jeff]: https://www.youtube.com/watch?v=9nazm3_OXac -As an example, in the 2015 Edition a dynamically-dispatched trait object -has a type that looks like `Box`. -In the 2018 Edition, in order to distinguish this from the then-new, -statically-dispatched `impl Trait` syntax, trait objects began to require the `dyn` keyword, -so `Box` became `Box`. -To make this migration automatic, `cargo fix` gained the ability to rewrite the types -of trait objects, -as well as to rewrite identifiers in case any code out there was using `dyn` as a variable name. +To spark your imagination, here's a real-world example. +In the 2015 and 2018 Editions, iterating over a fixed-length array via `[foo].into_iter()` +will yield *references* to the iterated elements; +this is is surprising because, on other types, calling `.into_iter()` produces an iterator +[that yields owned values rather than references][iters]. +This limitation existed because older versions of Rust lacked the ability to implement +traits for all possible fixed-length arrays in a generic way. +Once Rust finally [became able to express this][notes], +*all* Editions at last gained the ability to iterate over owned values in fixed-length arrays; +however, in the specific case of `[foo].into_iter()`, +altering the existing behavior would have broken lots of code in the wild. +Therefore, we used the 2021 Edition to fix this inconsistency +for the specific case of `[foo].into_iter()`, +allowing us to address [this long-standing issue][25725] while +preserving Rust's stability guarantees. + +[iters]: https://doc.rust-lang.org/std/iter/#the-three-forms-of-iteration + +[notes]: https://blog.rust-lang.org/2021/06/17/Rust-1.53.0.html#intoiterator-for-arrays + +[25725]: https://github.com/rust-lang/rust/issues/25725 ## How to contribute Just like other changes to Rust, Edition-related proposals follow the RFC process, as documented in [the Rust RFCs repository][rfcs]. +Please follow the process documented there, and please consider [publicizing a draft of your RFC][rfcs2] to collect preliminary feedback before officially submitting it, in order to expedite the RFC process once you've filed it for real! (And in addition to the venues mentioned in the prior link, please feel free to announce your pre-RFC to [our Zulip channel][zulip].) [rfcs]: https://github.com/rust-lang/rfcs/#rust-rfcs---rfc-book---active-rfc-list +[rfcs2]: https://github.com/rust-lang/rfcs/#before-creating-an-rfc + Please file your RFCs as soon as possible! Our goal is to release the 2024 Edition in the second half of 2024, which means we would like to get everything *implemented* From 23e57513e112ee642628f15a29a498c979551873 Mon Sep 17 00:00:00 2001 From: bstrie <865233+bstrie@users.noreply.github.com> Date: Fri, 15 Dec 2023 21:32:40 -0500 Subject: [PATCH 0201/1024] Fix date of Edition CFP post --- ...3-12-10-2024-Edition-CFP.md => 2023-12-15-2024-Edition-CFP.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2023-12-10-2024-Edition-CFP.md => 2023-12-15-2024-Edition-CFP.md} (100%) diff --git a/posts/2023-12-10-2024-Edition-CFP.md b/posts/2023-12-15-2024-Edition-CFP.md similarity index 100% rename from posts/2023-12-10-2024-Edition-CFP.md rename to posts/2023-12-15-2024-Edition-CFP.md From 14fb3c2f5a590d7ad45cd80ec5917316b02c4f25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Mon, 18 Dec 2023 13:36:28 +0100 Subject: [PATCH 0202/1024] Add 2023 State of Rust survey post (#1178) * Add 2023 State of Rust survey post * Text changes --- posts/2023-12-18-survey-launch.md | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 posts/2023-12-18-survey-launch.md diff --git a/posts/2023-12-18-survey-launch.md b/posts/2023-12-18-survey-launch.md new file mode 100644 index 000000000..78ab2ebe1 --- /dev/null +++ b/posts/2023-12-18-survey-launch.md @@ -0,0 +1,33 @@ +--- +layout: post +title: "Launching the 2023 State of Rust Survey" +author: The Rust Survey Working Group +description: "Share your experience using Rust in the eighth edition of the State of Rust Survey" +--- + +It’s time for the [2023 State of Rust Survey](https://www.surveyhero.com/c/4vxempzc)! + +Since 2016, the Rust Project has collected valuable information and feedback from the Rust programming language community through our annual [State of Rust Survey](https://www.surveyhero.com/c/4vxempzc). This tool allows us to more deeply understand how the Rust Project is performing, how we can better serve the global Rust community, and who our community is composed of. + +Like last year, the [2023 State of Rust Survey](https://www.surveyhero.com/c/4vxempzc) will likely take you between 10 and 25 minutes, and responses are anonymous. We will accept submissions until Monday, January 15th, 2024. Trends and key insights will be shared on [blog.rust-lang.org](https://blog.rust-lang.org) as soon as possible in 2024. + +We invite you to take this year’s survey whether you have just begun using Rust, you consider yourself an intermediate to advanced user, or you have not yet used Rust but intend to one day. Your responses will help us improve Rust over time by shedding light on gaps to fill in the community and development priorities, and more. + +**Once again, we are offering the State of Rust Survey in the following languages (if you speak multiple languages, please pick one). Language options are available on the [main survey page](https://www.surveyhero.com/c/4vxempzc):** +- English +- Simplified Chinese +- French +- German +- Japanese +- Russian +- Spanish + +Please help us spread the word by sharing the [survey link](https://www.surveyhero.com/c/4vxempzc) via your social media networks, at meetups, with colleagues, and in any other community that makes sense to you. + +This survey would not be possible without the time, resources, and attention of members of the Survey Working Group, the Rust Foundation, and other collaborators. Thank you! + +If you have any questions, please see our [frequently asked questions](https://github.com/rust-lang/surveys/blob/main/documents/Community-Survey-FAQ.md). + +We appreciate your participation! + +_Click [here](https://blog.rust-lang.org/2023/08/07/Rust-Survey-2023-Results.html) to read a summary of last year's survey findings._ From 0f33f8314d8dbf9859b5a1eeb69c87f14930a5b1 Mon Sep 17 00:00:00 2001 From: lcnr Date: Wed, 20 Dec 2023 15:23:44 +0100 Subject: [PATCH 0203/1024] trait solver refactor update --- ...-12-22-trait-system-refactor-initiative.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md diff --git a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md new file mode 100644 index 000000000..7c2740ad9 --- /dev/null +++ b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md @@ -0,0 +1,57 @@ +--- +layout: post +title: "Rustc Trait System Refactor Initiative Update: A call for testing" +author: lcnr +team: The Rustc Trait System Refactor Initiative +--- + +It has been nearly half a year since [our last update][prev]. See that update for a description of our work. We have continued to make big progress on the new solver since then, mostly focussing on getting the solver ready for use in coherence. We changed the unstable compiler flag to enable the new solver: you can now use `-Znext-solver=globally` to enable it everywhere and `-Znext-solver=coherence` to enable the new solver only for coherence checking. + +The reimplementation of the trait solver is now ready for use in coherence checking, which is responsible for preventing overlapping trait implementations. All known behavior changes from the old solver are intended and and the quality of error messages should match the existing implementation. However, over the last months the handling of non-fatal overflow has crystallized as one of the most significant and involved issues. + +## Non-fatal overflow + +Unlike the existing trait solver, the new solver does not immediately abort compilation when hitting the recursion limit: +```rust +struct Wrapper(T); + +trait Overflow {} +impl Overflow for Wrapper> where Wrapper: Overflow {} +impl Overflow for Wrapper {} + +// Checking whether these two implementations overlap +// tries to prove that either `Wrapper<_>: Overflow` or +// `Wrapper<_>: Copy` do not hold. +// +// The existing solver first checks `Wrapper<_>: Overflow`, +// resulting in overflow and aborting compilation. +// +// The new solver does not abort compilation on overflow and +// considers the implementations to be disjoint, given that +// `Wrapper<_>: Copy` does not hold. +trait MayOverlap {} +impl MayOverlap for T {} +impl MayOverlap for Wrapper {} +``` + +This change is necessary as popular crates, e.g. [typenum](https://github.com/rust-lang/trait-system-refactor-initiative/issues/73), now reach the recursion limit with the new solver and would therefore break if overflow remains fatal. This is caused by [the removal of a heuristic present in the old solver](https://github.com/rust-lang/trait-system-refactor-initiative/issues/56). It is also desirable as the compilation result is otherwise order dependent. This order dependence complicates future changes to the type system, e.g. [an attempt to switch to deferred projection equality in the old solver](https://github.com/rust-lang/rust/pull/96912) also ended up causing an overflow error in typenum, preventing it from getting merged. It is also observable by users, e.g. switching the order of where-clauses in the above example to `T: Copy + Overflow` causes this snippet to compile with the old solver. + +The new solver now returns overflow when hitting the recursion limit. However, this change by itself causes the solver to very easily hang due to exponential blowup. We therefore greatly limit the available recursion depth for later goals after encountering overflow and also discard some of the inference constraints from goals resulting in overflow. + +It is important to balance the performance of the trait solver with the expressiveness of the trait system. While we're fairly happy with the approach we've settled on for now, getting this right is more art than science. We believe our current approach to be performant in most cases and to allow for further significant performance optimizations in the future. We also expect it to provide the necessary expressiveness to be backwards compatible with the old solver and to behave as expected by users. + +## Looking forward and asking for testing + +As we believe using the new solver for coherence checking to now be in a stabilization ready state, please test the new implementation by enabling the unstable `-Znext-solver=coherence` compiler flag. In case you encounter are any behavior or performance regressions, diagnostics issues, or even unsoundnesses[^1], please [open an issue on GitHub](https://github.com/rust-lang/rust/issues). + +Using the new solver during coherence checking will improve the behavior in some edge-cases, fixing at least one - pretty much unexploitable - [unsoundness](https://github.com/rust-lang/rust/issues/102048). It will also allow us to remove support for "intercrate mode" in the existing solver. However, most of the positive impact from using the new solver[^2] will only apply once it is used in more areas. + +We therefore intend to slightly delay the stabilization of its use in coherence to make sure our design choices will not cause complications down the road. Going forward we will refocus our work on enabling the new solver everywhere. By fixing more of the remaining issues with `-Znext-solver=globally`, we should get additional confidence in our approach to overflow handling. We expect to actually stabilize the use of the new solver in coherence in March of 2024 and intend to provide additional learning materials and documentation before then. + +In case there are any questions or thoughts about the new solver, please reach out to us on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/364551-t-types.2Ftrait-system-refactor). + +[^1]: i.e. we do not emit an error even though there are overlapping impls + +[^2]: see the [introduction of the previous update][prev] + +[prev]: https://blog.rust-lang.org/inside-rust/2023/07/17/trait-system-refactor-initiative.html \ No newline at end of file From 7525064c4c951cb5b8fa6159d7c31edca121778e Mon Sep 17 00:00:00 2001 From: lcnr Date: Wed, 20 Dec 2023 15:26:52 +0100 Subject: [PATCH 0204/1024] woops --- .../inside-rust/2023-12-22-trait-system-refactor-initiative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md index 7c2740ad9..62d8cc30a 100644 --- a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md @@ -42,7 +42,7 @@ It is important to balance the performance of the trait solver with the expressi ## Looking forward and asking for testing -As we believe using the new solver for coherence checking to now be in a stabilization ready state, please test the new implementation by enabling the unstable `-Znext-solver=coherence` compiler flag. In case you encounter are any behavior or performance regressions, diagnostics issues, or even unsoundnesses[^1], please [open an issue on GitHub](https://github.com/rust-lang/rust/issues). +As we believe using the new solver for coherence checking to now be in a stabilization ready state, please test the new implementation by enabling the unstable `-Znext-solver=coherence` compiler flag. In case you encounter any behavior or performance regressions, diagnostics issues, or even unsoundnesses[^1], please [open an issue on GitHub](https://github.com/rust-lang/rust/issues). Using the new solver during coherence checking will improve the behavior in some edge-cases, fixing at least one - pretty much unexploitable - [unsoundness](https://github.com/rust-lang/rust/issues/102048). It will also allow us to remove support for "intercrate mode" in the existing solver. However, most of the positive impact from using the new solver[^2] will only apply once it is used in more areas. From b26a1b0a2d5f32efa69f2a35183744edbb9b2fb3 Mon Sep 17 00:00:00 2001 From: lcnr Date: Wed, 20 Dec 2023 15:28:37 +0100 Subject: [PATCH 0205/1024] wording --- .../inside-rust/2023-12-22-trait-system-refactor-initiative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md index 62d8cc30a..8a57834c4 100644 --- a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md @@ -42,7 +42,7 @@ It is important to balance the performance of the trait solver with the expressi ## Looking forward and asking for testing -As we believe using the new solver for coherence checking to now be in a stabilization ready state, please test the new implementation by enabling the unstable `-Znext-solver=coherence` compiler flag. In case you encounter any behavior or performance regressions, diagnostics issues, or even unsoundnesses[^1], please [open an issue on GitHub](https://github.com/rust-lang/rust/issues). +As we believe using the new solver for coherence checking to now be in a stabilization ready state, please try out the new implementation by enabling the unstable `-Znext-solver=coherence` compiler flag. In case you encounter any behavior or performance regressions, diagnostics issues, or even unsoundnesses[^1], please [open an issue on GitHub](https://github.com/rust-lang/rust/issues). Using the new solver during coherence checking will improve the behavior in some edge-cases, fixing at least one - pretty much unexploitable - [unsoundness](https://github.com/rust-lang/rust/issues/102048). It will also allow us to remove support for "intercrate mode" in the existing solver. However, most of the positive impact from using the new solver[^2] will only apply once it is used in more areas. From d47ae111d3391772cda01b7b53d12b1cf7da336c Mon Sep 17 00:00:00 2001 From: lcnr Date: Thu, 21 Dec 2023 11:37:06 +0100 Subject: [PATCH 0206/1024] review --- .../2023-12-22-trait-system-refactor-initiative.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md index 8a57834c4..fbcc17722 100644 --- a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md @@ -5,9 +5,9 @@ author: lcnr team: The Rustc Trait System Refactor Initiative --- -It has been nearly half a year since [our last update][prev]. See that update for a description of our work. We have continued to make big progress on the new solver since then, mostly focussing on getting the solver ready for use in coherence. We changed the unstable compiler flag to enable the new solver: you can now use `-Znext-solver=globally` to enable it everywhere and `-Znext-solver=coherence` to enable the new solver only for coherence checking. +It has been nearly half a year since [our last update][prev]. See that update for a description of our work. We have continued to make big progress on the new solver since then, mostly focusing on getting the solver ready for use in coherence. We changed the unstable compiler flag to enable the new solver: you can now use `-Znext-solver=globally` to enable it everywhere and `-Znext-solver=coherence` to enable the new solver only for coherence checking. -The reimplementation of the trait solver is now ready for use in coherence checking, which is responsible for preventing overlapping trait implementations. All known behavior changes from the old solver are intended and and the quality of error messages should match the existing implementation. However, over the last months the handling of non-fatal overflow has crystallized as one of the most significant and involved issues. +The reimplementation of the trait solver is now ready for use in coherence checking, which is responsible for preventing overlapping trait implementations. All known behavior changes from the old solver are intended, and the quality of error messages should match the existing implementation. However, over the last months the handling of non-fatal overflow has emerged as one of the most significant and involved issues. ## Non-fatal overflow From 4deb7b6c5e3e11c4e5abc8a4c79fafaee4cba0eb Mon Sep 17 00:00:00 2001 From: lcnr Date: Thu, 21 Dec 2023 11:38:27 +0100 Subject: [PATCH 0207/1024] use commas --- .../inside-rust/2023-12-22-trait-system-refactor-initiative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md index fbcc17722..73e5a66a0 100644 --- a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md @@ -44,7 +44,7 @@ It is important to balance the performance of the trait solver with the expressi As we believe using the new solver for coherence checking to now be in a stabilization ready state, please try out the new implementation by enabling the unstable `-Znext-solver=coherence` compiler flag. In case you encounter any behavior or performance regressions, diagnostics issues, or even unsoundnesses[^1], please [open an issue on GitHub](https://github.com/rust-lang/rust/issues). -Using the new solver during coherence checking will improve the behavior in some edge-cases, fixing at least one - pretty much unexploitable - [unsoundness](https://github.com/rust-lang/rust/issues/102048). It will also allow us to remove support for "intercrate mode" in the existing solver. However, most of the positive impact from using the new solver[^2] will only apply once it is used in more areas. +Using the new solver during coherence checking will improve the behavior in some edge-cases, fixing at least one, pretty much unexploitable, [unsoundness](https://github.com/rust-lang/rust/issues/102048). It will also allow us to remove support for "intercrate mode" in the existing solver. However, most of the positive impact from using the new solver[^2] will only apply once it is used in more areas. We therefore intend to slightly delay the stabilization of its use in coherence to make sure our design choices will not cause complications down the road. Going forward we will refocus our work on enabling the new solver everywhere. By fixing more of the remaining issues with `-Znext-solver=globally`, we should get additional confidence in our approach to overflow handling. We expect to actually stabilize the use of the new solver in coherence in March of 2024 and intend to provide additional learning materials and documentation before then. From 910f8658e23355ce2cced63dd43b369d07b2305d Mon Sep 17 00:00:00 2001 From: Tyler Mandry Date: Thu, 21 Dec 2023 08:06:54 -0600 Subject: [PATCH 0208/1024] Announce `async fn` and return-position `impl Trait` in traits (#1180) * Announce `async fn` and return-position `impl Trait` in traits * Apply suggestions from code review Co-authored-by: Travis Cross Co-authored-by: Yosh Co-authored-by: Niko Matsakis * Apply feedback from code review And add a note about why we don't warn on non-public traits. * Clarify use of RPIT(IT) and its limitations * Add paragraph about future roadmap goals * Clarify that new features can build on top of `async fn` in traits * Apply suggestions from code review Co-authored-by: Travis Cross * Remove footnote on desugaring After reading through it just felt too disruptive in the first section, and there isn't really a good place to put it. The FAQ still addresses the question. * Only one link to the crate/docs is necessary * Move blog post reference to FAQ And clarify footnote --------- Co-authored-by: Travis Cross Co-authored-by: Yosh Co-authored-by: Niko Matsakis --- posts/2023-12-21-async-fn-rpit-in-traits.md | 237 ++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 posts/2023-12-21-async-fn-rpit-in-traits.md diff --git a/posts/2023-12-21-async-fn-rpit-in-traits.md b/posts/2023-12-21-async-fn-rpit-in-traits.md new file mode 100644 index 000000000..6e5d28656 --- /dev/null +++ b/posts/2023-12-21-async-fn-rpit-in-traits.md @@ -0,0 +1,237 @@ +--- +layout: post +title: "Announcing `async fn` and return-position `impl Trait` in traits" +author: Tyler Mandry +team: The Async Working Group +--- + +The Rust Async Working Group is excited to announce major progress towards our goal of enabling the use of `async fn` in traits. Rust 1.75, which hits stable next week, will include support for both `-> impl Trait` notation and `async fn` in traits. + +This is a big milestone, and we know many users will be itching to try these out in their own code. However, we are still missing some important features that many users need. Read on for recommendations on when and how to use the stabilized features. + +## What's stabilizing + +Ever since the stabilization of [RFC #1522] in Rust 1.26, Rust has allowed users to write `impl Trait` as the return type of functions (often called "RPIT"). This means that the function returns "some type that implements `Trait`". This is commonly used to return closures, iterators, and other types that are complex or impossible to write explicitly. + +[RFC #1522]: https://rust-lang.github.io/rfcs/1522-conservative-impl-trait.html + +```rust +/// Given a list of players, return an iterator +/// over their names. +fn player_names( + players: &[Player] +) -> impl Iterator { + players + .iter() + .map(|p| &p.name) +} +``` + +Starting in Rust 1.75, you can use **return-position `impl Trait` in trait** (RPITIT) definitions and in trait impls. For example, you could use this to write a trait method that returns an iterator: + +```rust +trait Container { + fn items(&self) -> impl Iterator; +} + +impl Container for MyContainer { + fn items(&self) -> impl Iterator { + self.items.iter().cloned() + } +} +``` + +So what does all of this have to do with async functions? Well, async functions are "just sugar" for functions that return `-> impl Future`. Since these are now permitted in traits, **we also permit you to write traits that use `async fn`**. + +```rust +trait HttpService { + async fn fetch(&self, url: Url) -> HtmlBody; +// ^^^^^^^^ desugars to: +// fn fetch(&self, url: Url) -> impl Future; +} +``` + +## Where the gaps lie + +### `-> impl Trait` in public traits + +The use of `-> impl Trait` is still discouraged for general use in **public** traits and APIs for the reason that users can't put additional bounds on the return type. For example, there is no way to write this function in a way that is generic over the `Container` trait: + +```rust +fn print_in_reverse(container: impl Container) { + for item in container.items().rev() { + // ERROR: ^^^ + // the trait `DoubleEndedIterator` + // is not implemented for + // `impl Iterator` + eprintln!("{item}"); + } +} +``` + +Even though some implementations might return an iterator that implements `DoubleEndedIterator`, there is no way for generic code to take advantage of this without defining another trait. In the future we plan to add a solution for this. For now, `-> impl Trait` is best used in internal traits or when you're confident your users won't need additional bounds. Otherwise you should consider using an associated type.[^nameable] + +[^nameable]: Note that associated types can only be used in cases where the type is nameable. This restriction will be lifted once [`impl_trait_in_assoc_type`](https://github.com/rust-lang/rust/issues/63063) is stabilized. + +### `async fn` in public traits + +Since `async fn` desugars to `-> impl Future`, the same limitations apply. In fact, if you use bare `async fn` in a public trait today, you'll see a warning. + +``` +warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified + --> src/lib.rs:7:5 + | +7 | async fn fetch(&self, url: Url) -> HtmlBody; + | ^^^^^ + | +help: you can desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change + | +7 - async fn fetch(&self, url: Url) -> HtmlBody; +7 + fn fetch(&self, url: Url) -> impl std::future::Future + Send; + | +``` + +Of particular interest to users of async are `Send` bounds on the returned future. Since users cannot add bounds later, the error message is saying that you as a trait author need to make a choice: Do you want your trait to work with multithreaded, work-stealing executors? + +Thankfully, we have a solution that allows using `async fn` in public traits today! We recommend using the `trait_variant::make` proc macro to let your users choose. This proc macro is part of the [`trait-variant`](https://crates.io/crates/trait-variant) crate, published by the rust-lang org. Add it to your project with `cargo add trait-variant`, then use it like so: + +```rust +#[trait_variant::make(HttpService: Send)] +pub trait LocalHttpService { + async fn fetch(&self, url: Url) -> HtmlBody; +} +``` + +This creates *two* versions of your trait: `LocalHttpService` for single-threaded executors and `HttpService` for multithreaded work-stealing executors. Since we expect the latter to be used more commonly, it has the shorter name in this example. It has additional Send bounds: + +```rust +pub trait HttpService: Send { + fn fetch( + &self, + url: Url, + ) -> impl Future + Send; +} +``` + +This macro works for async because `impl Future` rarely requires additional bounds other than Send, so we can set our users up for success. See the FAQ below for an example of where this is needed. + +### Dynamic dispatch + +Traits that use `-> impl Trait` and `async fn` are not object-safe, which means they lack support for dynamic dispatch. We plan to provide utilities that enable dynamic dispatch in an upcoming version of the `trait-variant` crate. + +## How we hope to improve in the future + +In the future we would like to allow users to add their own bounds to `impl Trait` return types, which would make them more generally useful. It would also enable more advanced uses of `async fn`. The syntax might look something like this: + +```rust +trait HttpService = LocalHttpService + Send; +``` + +Since these aliases won't require any support on the part of the trait author, it will technically make the Send variants of async traits unnecessary. However, those variants will still be a nice convenience for users, so we expect that most crates will continue to provide them. + +Of course, the goals of the Async Working Group don't stop with `async fn` in traits. We want to continue building features on top of it that enable more reliable and sophisticated use of async Rust, and we intend to publish a more extensive roadmap in the new year. + +## Frequently asked questions + +### Is it okay to use `-> impl Trait` in traits? + +For private traits you can use `-> impl Trait` freely. For public traits, it's best to avoid them for now unless you can anticipate all the bounds your users might want (in which case you can use `#[trait_variant::make]`, as we do for async). We expect to lift this restriction in the future. + +### Should I still use the `#[async_trait]` macro? + +There are a couple of reasons you might need to continue using async-trait: + +* You want to support Rust versions older than 1.75. +* You want dynamic dispatch. + +As stated above, we hope to enable dynamic dispatch in a future version of the `trait-variant` crate. + +### Is it okay to use `async fn` in traits? What are the limitations? + +Assuming you don't need to use `#[async_trait]` for one of the reasons stated above, it's totally fine to use regular `async fn` in traits. Just remember to use `#[trait_variant::make]` if you want to support multithreaded runtimes. + +The biggest limitation is that a type must always decide if it implements the Send or non-Send version of a trait. It cannot implement the Send version *conditionally* on one of its generics. This can come up in the [middleware](https://github.com/tower-rs/tower/blob/master/guides/building-a-middleware-from-scratch.md) pattern, for example, `RequestLimitingService` that is HttpService if `T: HttpService`. + +### Why do I need `#[trait_variant::make]` and `Send` bounds? + +In simple cases you may find that your trait appears to work fine with a multithreaded executor. There are some patterns that just won't work, however. Consider the following: + +```rust +fn spawn_task(service: impl HttpService + 'static) { + tokio::spawn(async move { + let url = Url::from("https://rust-lang.org"); + let _body = service.fetch(url).await; + }); +} +``` + +Without Send bounds on our trait, this would fail to compile with the error: "future cannot be sent between threads safely". By creating a variant of your trait with Send bounds, you avoid sending your users into this trap. + +Note that you won't see a warning if your trait is not public, because if you run into this problem you can always add the Send bounds yourself later. + +For a more thorough explanation of the problem, see [this blog post](https://blog.rust-lang.org/inside-rust/2023/05/03/stabilizing-async-fn-in-trait.html).[^cut-scope] + +[^cut-scope]: Note that in that blog post we originally said we would solve the Send bound problem before shipping `async fn` in traits, but we decided to cut that from the scope and ship the `trait-variant` crate instead. + +### Can I mix async fn and impl trait? + +Yes, you can freely move between the `async fn` and `-> impl Future` spelling in your traits and impls. This is true even when one form has a Send bound.[^leakage] This makes the traits created by `trait_variant` nicer to use. + +```rust +trait HttpService: Send { + fn fetch(&self, url: Url) + -> impl Future + Send; +} + +impl HttpService for MyService { + async fn fetch(&self, url: Url) -> HtmlBody { + // This works, as long as `do_fetch(): Send`! + self.client.do_fetch(url).await.into_body() + } +} +``` + +[^leakage]: This works because of *auto-trait leakage*, which allows knowledge of auto traits to "leak" from an item whose signature does not specify them. + +### Why don't these signatures use `impl Future + '_`? + +For `-> impl Trait` in traits we adopted the [2024 Capture Rules] early. This means that the `+ '_` you often see today is unnecessary in traits, because the return type is already assumed to capture input lifetimes. In the 2024 edition this rule will apply to all function signatures. See the linked RFC for more. + +[2024 Capture Rules]: https://rust-lang.github.io/rfcs/3498-lifetime-capture-rules-2024.html + +### Why am I getting a "refine" warning when I implement a trait with `-> impl Trait`? + +If your impl signature includes more detailed information than the trait itself, you'll [get a warning](https://play.rust-lang.org/?version=beta&mode=debug&edition=2021&gist=6248cfe0419a693d1331ef47c729d1fe): + +```rust +pub trait Foo { + fn foo(self) -> impl Debug; +} + +impl Foo for u32 { + fn foo(self) -> String { +// ^^^^^^ +// warning: impl trait in impl method signature does not match trait method signature + self.to_string() + } +} +``` + +The reason is that you may be leaking more details of your implementation than you meant to. For instance, should the following code compile? + +```rust +fn main() { + // Did the implementer mean to allow + // use of `Display`, or only `Debug` as + // the trait says? + println!("{}", 32.foo()); +} +``` + +Thanks to [refined trait implementations][3245] it does compile, but the compiler asks you to confirm your intent to refine the trait interface with `#[allow(refining_impl_trait)]` on the impl. + +[3245]: https://rust-lang.github.io/rfcs/3245-refined-impls.html + +## Conclusion + +The Async Working Group is excited to end 2023 by announcing the completion of our primary goal for the year! Thank you to everyone who helpfully participated in design, implementation, and stabilization discussions. Thanks also to the users of async Rust who have given great feedback over the years. We're looking forward to seeing what you build, and to delivering continued improvements in the years to come. From f9a850a79b64230c03d2d3a702daad597ab8fc6c Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Thu, 21 Dec 2023 20:26:30 +0000 Subject: [PATCH 0209/1024] Creating file via promote-release automation --- .../2023-12-21-1.75.0-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2023-12-21-1.75.0-prerelease.md diff --git a/posts/inside-rust/2023-12-21-1.75.0-prerelease.md b/posts/inside-rust/2023-12-21-1.75.0-prerelease.md new file mode 100644 index 000000000..9837dcf90 --- /dev/null +++ b/posts/inside-rust/2023-12-21-1.75.0-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.75.0 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.75.0 pre-release is ready for testing. The release is scheduled for +December 28. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-75-0-pre-release-testing/20068). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1750-2023-12-28 +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 6a6a79f1708b306c72c71a46d20adca9bc134e4f Mon Sep 17 00:00:00 2001 From: lcnr Date: Fri, 22 Dec 2023 13:20:43 +0100 Subject: [PATCH 0210/1024] add short section explaining the purpose of the initiative --- .../inside-rust/2023-12-22-trait-system-refactor-initiative.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md index 73e5a66a0..f62b1e76f 100644 --- a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md @@ -5,7 +5,7 @@ author: lcnr team: The Rustc Trait System Refactor Initiative --- -It has been nearly half a year since [our last update][prev]. See that update for a description of our work. We have continued to make big progress on the new solver since then, mostly focusing on getting the solver ready for use in coherence. We changed the unstable compiler flag to enable the new solver: you can now use `-Znext-solver=globally` to enable it everywhere and `-Znext-solver=coherence` to enable the new solver only for coherence checking. +It has been nearly half a year since [our last update][prev]. We are reimplementing the trait solver of rustc with the goal of completely replacing the existing systems. This should allow us to fix some long-standing bugs, enable future type system improvements, and reduce compile times. See the previous update for a more detailed introduction. We have continued to make big progress on the new solver, mostly focusing on getting the solver ready for use in coherence. We changed the unstable compiler flag to enable the new solver: you can now use `-Znext-solver=globally` to enable it everywhere and `-Znext-solver=coherence` to enable the new solver only for coherence checking. The reimplementation of the trait solver is now ready for use in coherence checking, which is responsible for preventing overlapping trait implementations. All known behavior changes from the old solver are intended, and the quality of error messages should match the existing implementation. However, over the last months the handling of non-fatal overflow has emerged as one of the most significant and involved issues. From 8c59641a44a01220136ce63b50051b6c3175c8e5 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Fri, 22 Dec 2023 10:02:16 -0500 Subject: [PATCH 0211/1024] Rust 1.75.0 announcement --- posts/2023-12-28-Rust-1.75.0.md | 96 +++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 posts/2023-12-28-Rust-1.75.0.md diff --git a/posts/2023-12-28-Rust-1.75.0.md b/posts/2023-12-28-Rust-1.75.0.md new file mode 100644 index 000000000..96b3113b0 --- /dev/null +++ b/posts/2023-12-28-Rust-1.75.0.md @@ -0,0 +1,96 @@ +--- +layout: post +title: "Announcing Rust 1.75.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.75.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via rustup, you can get 1.75.0 with: + +```console +rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.75.0](https://doc.rust-lang.org/nightly/releases.html#version-1750-2023-12-28). + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.75.0 stable + +### `async fn` and return-position `impl Trait` in traits + +As [announced](https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.html) +last week, Rust 1.75 supports use of `async fn` and `-> impl Trait` in traits. +However, this initial release comes with some limitations that are described in +the [announcement post](https://blog.rust-lang.org/2023/12/21/async-fn-rpit-in-traits.html#where-the-gaps-lie). + +It's expected that these limitations will be lifted in future releases. + +### Pointer byte offset APIs + +Raw pointers (`*const T` and `*mut T`) used to primarily support operations +operating in units of `T`. For example, `<*const T>::add(1)` would add +`size_of::()` bytes to the pointer's address. In some cases, working with +byte offsets is more convenient, and these new APIs avoid requiring callers to +cast to `*const u8`/`*mut u8` first. + +- [`pointer::byte_add`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_add) +- [`pointer::byte_offset`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_offset) +- [`pointer::byte_offset_from`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_offset_from) +- [`pointer::byte_sub`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_sub) +- [`pointer::wrapping_byte_add`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.wrapping_byte_add) +- [`pointer::wrapping_byte_offset`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.wrapping_byte_offset) +- [`pointer::wrapping_byte_sub`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.wrapping_byte_sub) + +### Code layout optimizations for rustc + +The Rust compiler continues to get faster, with this release including the +application of +[BOLT](https://github.com/llvm/llvm-project/blob/main/bolt/README.md) to our +binary releases, bringing a 2% mean wall time improvements on our +benchmarks. This tool optimizes the layout of the `librustc_driver.so` library +containing most of the rustc code, allowing for better cache utilization. + +We are also now building rustc with `-Ccodegen-units=1`, which provides more +opportunity for optimizations in LLVM. This optimization brought a separate +1.5% wall time mean win to our benchmarks. + +In this release these optimizations are limited to `x86_64-unknown-linux-gnu` +compilers, but we expect to expand that over time to include more platforms. + +### Stabilized APIs + +- [`Atomic*::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.from_ptr) +- [`FileTimes`](https://doc.rust-lang.org/stable/std/fs/struct.FileTimes.html) +- [`FileTimesExt`](https://doc.rust-lang.org/stable/std/os/windows/fs/trait.FileTimesExt.html) +- [`File::set_modified`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.set_modified) +- [`File::set_times`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.set_times) +- [`IpAddr::to_canonical`](https://doc.rust-lang.org/stable/core/net/enum.IpAddr.html#method.to_canonical) +- [`Ipv6Addr::to_canonical`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.to_canonical) +- [`Option::as_slice`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.as_slice) +- [`Option::as_mut_slice`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.as_mut_slice) +- [`pointer::byte_add`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_add) +- [`pointer::byte_offset`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_offset) +- [`pointer::byte_offset_from`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_offset_from) +- [`pointer::byte_sub`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_sub) +- [`pointer::wrapping_byte_add`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.wrapping_byte_add) +- [`pointer::wrapping_byte_offset`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.wrapping_byte_offset) +- [`pointer::wrapping_byte_sub`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.wrapping_byte_sub) + +These APIs are now stable in const contexts: + +- [`Ipv6Addr::to_ipv4_mapped`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.to_ipv4_mapped) +- [`MaybeUninit::assume_init_read`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.assume_init_read) +- [`MaybeUninit::zeroed`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.zeroed) +- [`mem::discriminant`](https://doc.rust-lang.org/stable/core/mem/fn.discriminant.html) +- [`mem::zeroed`](https://doc.rust-lang.org/stable/core/mem/fn.zeroed.html) + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.75.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-175-2023-12-28), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-175). + +## Contributors to 1.75.0 + +Many people came together to create Rust 1.75.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.75.0/) From cc7cdfa31120601da301391d9c8b9e2e34ca3e24 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 2 Jan 2024 13:32:41 -0600 Subject: [PATCH 0212/1024] This Development-cycle in Cargo: 1.76 --- ...02-this-development-cycle-in-cargo-1-76.md | 573 ++++++++++++++++++ 1 file changed, 573 insertions(+) create mode 100644 posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md diff --git a/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md b/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md new file mode 100644 index 000000000..b912a9f98 --- /dev/null +++ b/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md @@ -0,0 +1,573 @@ +--- +layout: post +title: "This Development-cycle in Cargo: 1.76" +author: Ed Page +team: The Cargo Team +--- + +We wanted to share what has been happening for the last 6 weeks to better keep the community informed and involved. +For work that was merged before branching for 1.76 beta, it will be in the Beta channel for the next 6 weeks after which it will be generally available. + +This is distinct from [This Week in Rust](https://this-week-in-rust.org/) in that it tries to focus more on the big picture, rather than individual PRs, and pulls from more sources, like Cargo Team meetings and [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo). + +This is an experiment in finding better ways to be engaged with the community and we'll see how well it works and how well we can keep up on it. + + + +## Merged + +##### Managing growth of Cargo + +The Cargo team has been working to scale our processes to allow the number of packages in the workspace to grow +- For [1.74](https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html#cargo-registry-authentication), we provided an [API](https://crates.io/crates/cargo-credential) for third-party [credential providers](https://doc.rust-lang.org/cargo/reference/credential-provider-protocol.html) +- We are interested in providing more first-party APIs interacting with cargo like for [build scripts](https://github.com/rust-lang/cargo/issues/12432) and [env variables set during the build](https://github.com/rust-lang/cargo/issues/12431) +- Other projects need access to some of cargo's logic without wanting to pull in a large, monolithic library, like for [crates.io verifying `Cargo.toml` files on `cargo publish`](https://github.com/rust-lang/crates.io/pull/6914) +- We are hoping that we can improve the contributor experience with smaller packages (faster to build and test) with clearer boundaries (easier to reason about) + + +We've had a couple breakages affecting people over the last while that we reflected on. Examples include: +- When making future-incompatible updates to the output of `cargo metadata`, not coordinating with the third-party `cargo_metadata` API ([oli-obk/cargo_metadata#240](https://github.com/oli-obk/cargo_metadata/issues/240)) +- Confusion over dependencies on `cargo-credential` causing non-working dependency trees when building these packages from the crates.io ([rust-lang/cargo#13004](https://github.com/rust-lang/cargo/pull/13004)) + +Some potential improvements include +- Once we support [`cargo publish` for workspaces](https://github.com/rust-lang/cargo/issues/1169), we could explore verifying published packages in CI (related: [taiki-e/cargo-hack#216](https://github.com/taiki-e/cargo-hack/issues/216)) +- Explore having more first-party APIs for interacting with cargo so the feedback loop is tighter + +As a first step in stretching our ability to scale, +we split out [`Cargo.toml` serde types](https://docs.rs/cargo-util-schemas) +from cargo itself +([rust-lang/cargo#12801](https://github.com/rust-lang/cargo/issues/12801)). + +Other areas for potentially splitting out of the `cargo` library include: +- More serde and CLI types into `cargo-util-schemas` +- Console output +- Parsing and layer merging for `.cargo/config.toml` +- Reading from different package sources (git, path, git registry, sparse registry) + +##### Long-path support + +A user ran into path-length issues on Windows with `cargo install --git` +([rust-lang/cargo#13020](https://github.com/rust-lang/cargo/issues/13020)) +which led to [ChrisDenton](https://github.com/ChrisDenton) to post a PR for +[embedding a Windows manifest into the cargo binary](https://github.com/rust-lang/cargo/pull/13131), modeled after rustc. +After some exploration on that PR, it was merged with +[rust-lang/cargo#13141](https://github.com/rust-lang/cargo/issues/13141) +being created to track some of the remaining work +(which is in tandem with [rust-lang/cargo#9770](https://github.com/rust-lang/cargo/issues/9770)). + +When interacting with git, there are some notes in +[rust-lang/cargo#13020](https://github.com/rust-lang/cargo/issues/13020) +on some additional config settings to workaround problems. + +##### Stabilizing `cargo metadata`'s `id` field + +Currently, `cargo metadata`'s package `id` field is defined to be [opaque](https://doc.rust-lang.org/cargo/commands/cargo-metadata.html#compatibility). +The problem is you can't take a package from the output and pass it to `cargo --package `. +You could use the `name` field but that can be ambiguous when there are multiple, incompatible versions in your `Cargo.lock`. +`name` is a subset of the [Package ID Specs](https://doc.rust-lang.org/cargo/reference/pkgid-spec.html) format which most `--package` parameters accept. +[rust-lang/cargo#12914](https://github.com/rust-lang/cargo/pull/12914) proposes we switch `id` to be Package ID Spec and declare it as non-opaque in `cargo metadata`'s output, +allowing a caller to take the `id` and pass it cargo via the `--package` parameters. + +We did find one hurdle: Packaeg ID Specs can sometimes be ambiguous. +That was resolved in [rust-lang/cargo#12933](https://github.com/rust-lang/cargo/pull/12933). + +This is waiting on input from the Cargo team. + +##### `-Ztrim-paths` + +[`-Ztrim-paths`](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#profile-trim-paths-option) is an unstable feature that provides different options to sanitize paths embedded in final binaries. +This improves privacy and reproducibility when shipping and sharing artifacts without sacrificing the debugging experience. + +`-Ztrim-paths` is generally usable and [weihanglo](https://github.com/weihanglo/) has been driving the effort to get this stable. +Recently, they fixed an issue when sanitizing the package in the current working directory ([rust-lang/cargo#13114](https://github.com/rust-lang/cargo/pull/13114)) and added end-to-end tests to ensure the debugging experience does not regress ([rust-lang/cargo#13091](https://github.com/rust-lang/cargo/pull/13091) and [rust-lang/cargo#13118](https://github.com/rust-lang/cargo/pull/13118)). + +There are some symbols that are not sanitized yet, for example `N_SO` and `N_OSO` symbols on macOS or `DW_AT_comp_dir` on Linux when split-debuginfo enabled. +This is tracked in [rust-lang/rust#117652](https://github.com/rust-lang/rust/issues/117652). + +When sanitizing paths, we remap the start of the path to an identifier. +The current remap rules make it difficult to configure a debugger to [remap to the source on their system](https://sourceware.org/gdb/current/onlinedocs/gdb.html/Source-Path.html#set-substitute_002dpath). +Alternative remap rules are being discussed in [rust-lang/cargo#13171](https://github.com/rust-lang/cargo/issues/13171). +An important consideration being raised is that the users can successfully remap in their debugger regardless of endianness or bit-width which is important for cross-platform debugging. + +##### `-Zcheck-cfg` + +[`-Zcheck-cfg`](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg) +is an unstable feature that will cause rustc to warn on undefined conditional compilation, like `#[cfg(unknown)]` or `#[cfg(feature = "unknown")]`. + +[Urgau](https://github.com/Urgau) has been working across rustc and cargo to polish up this feature for stabilization. +Recently, they: +- Stopped checking names/values on the `rustc --cfg` CLI flag ([rust-lang/rust#117522](https://github.com/rust-lang/rust/pull/117522)) after a [zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/check-cfg.20and.20RUSTFLAGS.20interaction) and some [discussion in the tracking issue](https://github.com/rust-lang/rust/issues/82450#issuecomment-1813687060) +- Fixed cargo so that it will re-compile packages when features change, avoiding a stale warning status ([rust-lang/cargo#13012](https://github.com/rust-lang/cargo/pull/13012)) +- Fixed `--check-cfg` when no features are present ([rust-lang/cargo#13011](https://github.com/rust-lang/cargo/pull/13011)) +- Added all known`target_feature` values ([rust-lang/rust#118908](https://github.com/rust-lang/rust/pull/118908)) +- Add more suggestions for the user to the `--check-cfg` diagnostic ([rust-lang/rust#118213](https://github.com/rust-lang/rust/pull/118213)) + +[Urgau](https://github.com/Urgau) is hoping to start stabilization discussion during the 1.77 development-cycle. + +##### RFC #3516 (public/private dependencies) + +[RFC #3516 (public/private dependencies)](https://github.com/rust-lang/rfcs/pull/3516) +was merged which will help users identify when they leak their dependencies in their public API, +helping prevent unintentional breaking changes. This is behind [`cargo-features = ["public-dependency"]`](https://doc.rust-lang.org/cargo/reference/unstable.html#public-dependency). +A good amount of the implementation was done as part of the superseded +[RFC #1977](https://github.com/rust-lang/rfcs/pull/1977). + +[linyihai](https://github.com/linyihai) has stepped in to help implement the remaining Cargo work, including: +- Configuring the `public` field on dependencies via `cargo add` ([rust-lang/cargo#13046](https://github.com/rust-lang/cargo/pull/13046)) +- Limiting the lints to libraries ([rust-lang/cargo#13135](https://github.com/rust-lang/cargo/pull/13135)) +- Verifying the behavior with recursive public dependencies ([rust-lang/cargo#13183](https://github.com/rust-lang/cargo/pull/13183)) + +Other Cargo work includes +- Deciding against use of the `public` field in `workspace.dependencies` ([rust-lang/cargo#13125](https://github.com/rust-lang/cargo/pull/13125)) +- Removing code left behind from RFC 1977 ([rust-lang/cargo#13036](https://github.com/rust-lang/cargo/pull/13036)) +- Confirming how we can help people migrate with `cargo fix` ([rust-lang/cargo#13095](https://github.com/rust-lang/cargo/issues/13095)) +- Exploring how we can further improve the lint ([rust-lang/cargo#13096](https://github.com/rust-lang/cargo/issues/13096)) + +The hope is to have this ready for 2024 Edition. +The [tracking issue](https://github.com/rust-lang/rust/issues/44663) enumerates what work is remaining. +The biggest risks are likely: +- Cases where `rustc` should warn but doesn't +([rust-lang/rust#71043](https://github.com/rust-lang/rust/issues/71043) +- `rustc` not correctly tracking the transitive nature of a dependency being `public` ([rust-lang/rust#119428](https://github.com/rust-lang/rust/issues/119428)) + +##### User-controlled cargo diagnostics + +The Cargo Team is very cautious about adding warnings to Cargo because there is nothing like `rustc`s `--allow ...` / `#[allow(...)]` to suppress them when needed. +This changed with the introduction of the [`[lints]` table](https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html#lint-configuration-through-cargo). +We are tracking cargo warning control (and the lints it can unblock) in +[rust-lang/cargo#12235](https://github.com/rust-lang/cargo/issues/12235). + +The first milestone is for TOML parse errors to match rustc's error style, going from +``` +error: failed to parse manifest at `[..]` + +Caused by: + TOML parse error at line 6, column 25 + | + 6 | build = 3 + | ^ + invalid type: integer `3`, expected a boolean or string +``` +to +``` +error: invalid type: integer `3`, expected a boolean or string +--> Cargo.toml:6:25 + | +6 | build = 3 + | ^ +``` +Rather than writing our own error message renderer that imitates rustc, +[Muscraft](https://github.com/Muscraft) resurrected the +[`annotate-snippets` project](https://github.com/rust-lang/annotate-snippets-rs/) +with the intention of making it work for cargo and then migrating rustc to it. +They released annotate-snippets [v0.10](https://github.com/rust-lang/annotate-snippets-rs/blob/master/CHANGELOG.md#0100---december-12-2023) +and created +[rust-lang/cargo#13172](https://github.com/rust-lang/cargo/pull/13172) +for integrating it into cargo when parsing `Cargo.toml` files. + +We will also need to decide what to do about +[the differences in colors between rustc and cargo](https://github.com/rust-lang/cargo/issues/12740). +[Muscraft](https://github.com/Muscraft) has been looking into why `rustc`'s colors were chosen and are preparing a proposal for what both programs should use. + +##### `cargo info` + +We've had a request for a [`cargo info` command](https://github.com/rust-lang/cargo/issues/948) for close to a decade. +[hi-rustin](https://github.com/hi-rustin/), a regular Cargo contributor, +has taken on designing such a command. + +You can try it out by running +``` +$ cargo install cargo-information +$ cargo info clap +``` +Ideas and feedback are welcome! +See the [Issue tracker](https://github.com/hi-rustin/cargo-information/issues). + +## Postponing RFCs + + +The Cargo team is looking to clean up the backlog of open RFCs. + +**[RFC #3379 (`os_version` predicates for `#[cfg]`)](https://github.com/rust-lang/rfcs/pull/3379):** +I'll defer to the summary on the RFC: + +> I'm going to propose to postpone this RFC. I think we all agree that this would be a great thing to have, but I think there are some big questions, particularly around how version support of pre-built std works, how it might tie into supporting [target requirements](https://github.com/rust-lang/cargo/issues/6179), how the version information is determined, etc. Primarily, there isn't anyone on the team who has the capacity at this time to champion this feature. + +**[RFC #3177 (`[patch]` dependencies using unidiff patchfiles)](https://github.com/rust-lang/rfcs/pull/3177):** +We think this would be very useful but there are a lot of details to work out and no one on the team is able to help shepherd this effort. +Taking a lesson from other teams and from the +[cargo script eRFC](https://github.com/rust-lang/rfcs/pull/3424), +we felt the best way for this to move forward is for someone to sketch out a rough proposal and then implement it as an unstable feature as an experiment. +This experiment would be focused on learning the things we need to figure out what should be in the RFC. + +**[RFC #3287 (native code coverage support)](https://github.com/rust-lang/rfcs/pull/3287):** +We are very much interested in improving the developer experience around coverage but unclear if that RFC is the right approach +(e.g. [rust-lang/cargo#13040](https://github.com/rust-lang/cargo/issues/13040) includes an alternative). +Like with RFC #3177, we need to run an experiment to flesh out the design for this. + + +**[RFC #3263 (don't treat pre-releases as compatible with each other)](https://github.com/rust-lang/rfcs/pull/3263):** +We fully recognize that this is a problem. +For example, Clap ran into this with the 3.0 pre-releases and is the reason Clap stopped using pre-releases. +However, there were a lot of questions that have remained unresolved within the RFC for the last year and no one on the Cargo team has the availability to help drive these conversations. +A viable short-term solution would be to use the proposed [cargo linting system](https://github.com/rust-lang/cargo/issues/12235) +to warn users that don't pin their pre-release version requirements with `=` in their `Cargo.toml` file. +As an alternative for short-term testing of pre-releases, users can `[patch]` in the dependency's git repo. +For more extensive use of immature APIs or behavior, Clap has been exposing them through the convention of `unstable-` prefixed features that are documented as having no semver guarantees. +[rust-lang/cargo#10881](https://github.com/rust-lang/cargo/issues/10881) proposes native support for unstable features. +We recognize this does not help when a library is going through a more extensive breaking change and there is still a place for pre-releases. + + +**Action item:** We do need to go back and document the experiment process so we can more easily point people to the expectations for running one. + +## Design discussions + +##### Meta: 2024 Edition + + + +With [the window soon closing for the 2024 Edition](https://blog.rust-lang.org/2023/12/15/2024-Edition-CFP.html), +we explored whether there is anything else we should attempt to slip in. + +Currently, we have planned: +- [RFC #3516 (public/private dependencies)](https://github.com/rust-lang/rfcs/pull/3516) +- [RFC #3491 (remove implicit features)](https://github.com/rust-lang/rfcs/pull/3491) + +with the possibility of [RFC #3537 (MSRV-aware resolver)](https://github.com/rust-lang/rfcs/pull/3537) being tied to an Edition. + +We brainstormed other ideas including: + +**[Disabling of default features](https://github.com/rust-lang/cargo/issues/3126):** +We see this as a part of the bigger picture for making it easier to evolve features, +particularly taking built-in functionality and putting it behind a feature without it being a breaking change. +This likely doesn't need an Edition on its own but we also talked about *if* we want to remove `default-features = false` that that would require an Edition. +However, we aren't sure if that is what we want, +we would not want to rush that design, +and we should have a large deprecation window before the switch. + + +**[Cross-compile Doctests](https://github.com/rust-lang/cargo/issues/7040):** +Currently, we skip doctests when using `--target` and this feature changes it so we start running them. +Switching to this behavior is likely to break people. +Testing out `-Zdoctest-xcompile` on [rust-lang/rust](https://github.com/rust-lang/rust/) saw no errors with `--target=armhf-gnu` and `--target=arm-android` had a few in std. +From a user surprise perspective, we feel like people would be more surprised to find out we are silently skipping doctests rather than being surprised to see compilation errors. +Maybe having doctests run (and fail) on an Edition change would be viewed as a bug fix. +If we move forward with this, the decision is likely not ours alone as we'd need to stabilize flags in other tools as well. +The conversation is ongoing on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/doctest-xcompile/). + + +**[Have `profile.*.debug=0` imply `profile.*.strip = "debuginfo"`](https://github.com/rust-lang/cargo/issues/4122):** +When a user disables debug info with [`debug=0`](https://doc.rust-lang.org/cargo/reference/profiles.html#debug), +they will still have debug symbols from `std` as it is pre-built. +By implicitly setting [`strip = "debuginfo"`](https://doc.rust-lang.org/cargo/reference/profiles.html#strip) when `debug=0`, +we'd be closer to what the user actually requested. +According to the [zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Setting.20.60strip.3Ddebuginfo.60.20by.20default.20when.20.60debug.3D0.60), +this speeds up builds on Linux and shrinks binaries. +The downsides when `debug=0` is set are slightly slower builds on Mac and backtraces will be less informative. +To put the backtraces in perspective, this will make backtraces through `std` consistent with user code and user code is likely to be the majority of an application. +We felt this could move forward as-is without an Edition and asked for a more formal proposal which can be found [on the issue](https://github.com/rust-lang/cargo/issues/4122#issuecomment-1868318860). + + +**[Make `profile.*.split-debuginfo` the default](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/separating.20debuginfo.20on.20linux.20in.20debug.20mode):** +We previously changed the default for Mac +([rust-lang/cargo#9298](https://github.com/rust-lang/cargo/pull/9298)) +to improve compile times and reduce target-dir size. +If we make this change, we realized it can't be tied to an Edition because +[`[profile]`](https://doc.rust-lang.org/cargo/reference/profiles.html#profiles) +is a workspace-level field and Cargo only has the concept of an Edition for packages and not workspace. +For further discussion, see the [zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/separating.20debuginfo.20on.20linux.20in.20debug.20mode). + +##### `[lints]` redux + +[1.74](https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html#lint-configuration-through-cargo) saw the introduction of [`[lints]` in `Cargo.toml`](https://doc.rust-lang.org/cargo/reference/manifest.html#the-lints-section). + +The primary points of concern as more people tried this out were +- [Confusion over the interaction between groups and lints](https://github.com/rust-lang/cargo/issues/12918) +- [Wanting to both inherit lints from the workspace and add more](https://github.com/rust-lang/cargo/issues/13157) +- [Concern over forgetting to inherit workspace lints](https://github.com/rust-lang/cargo/issues/12208) + + +For the last point, we discussed implicit workspace inheritance for all fields. +The main concern we focused on was about the challenges of this being too magical, making it harder for people to reason about what cargo is doing. +One piece of prior art is [`[profile]`](https://doc.rust-lang.org/cargo/reference/profiles.html). +While Cargo implicitly layers `Cargo.toml` over `.cargo/config.toml`, this is involving configuration which is already a little off the beaten path and might not be the best model to follow. +However, it also supports profiles explicitly saying they inherit from another profile. +We could have a manifest-wide opt-in for inheriting fields that were not explicitly set. +Based on feedback, we could then explore changing the default for this on an edition. +One awkward case is dependencies. +We shouldn't automatically add all dependencies. +We also probably shouldn't allow dependencies without a source (i.e. allow skipping `workspace = true`). +But not having dependencies participate would be inconsistent. + +Discussing the prior art of `[profile]` also led to a discussion of having more than one set of values you can inherit from. +We discussed a couple of ideas, including +- Having named sets of that you inherit all-or-nothing (`inherits = "public-members"`) +- Having named fields that you can inherit per-field (`rust-version.workspace = "public-members"`) +- Naming other packages you can to inherit from, either whole or per field + + + + +##### cargo script + +Progress on the [cargo script RFC](https://github.com/rust-lang/rfcs/pull/3502) and implementation has stalled while the [RFC for embedding manifests](https://github.com/rust-lang/rfcs/pull/3503) is figured out. + +The current proposal is: +````rust +#!/usr/bin/env cargo +```cargo +[dependencies] +clap = { version = "4.2", features = ["derive"] } +``` + +use clap::Parser; + +#[derive(Parser, Debug)] +#[clap(version)] +struct Args { + #[clap(short, long, help = "Path to config")] + config: Option, +} + +fn main() { + let args = Args::parse(); + println!("{:?}", args); +} +```` + + +The manifest is embedded in what we are calling a code-fence frontmatter, modeled off of markdown. +The `cargo` identifier is referred to as an infostring. + +There are two directions we can take the infostring in the long run: +- Does the parent tool (in this case, cargo) own the definition of the infostring and is allowed whatever identifiers it wants +- Does rustc own the meaning of the infostring, allowing the Rust Project to add additional types of metadata without concern for breaking tools that rely on custom identifiers + +The embedded manifest syntax RFC was updated with a [new section](https://github.com/epage/rfcs/blob/frontmatter/text/3503-frontmatter.md#optional-or-additional-infostrings), +side-stepping this discussion by suggesting we hard code support for `cargo` right now and leave the decision to the future when we have more context for how this might be used. + +We also recognize that using three backticks would likely trip users up when they try to put these into markdown code fences as users might not be aware of how to escape it or forget to escape it, causing frustration. + +There is on-going discussion on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/Syntax.20for.20embedded.20tooling.20metadata). + +##### SBOM + +Supply-chain security is getting a lot of attention lately. +One element of this is being able to trace what all was pulled into a binary and how it was built. +This is referred to as a Software Bill of Materials, or SBOM. + +Previously, [arlosi](https://github.com/arlosi) created a +[Pre-RFC](https://internals.rust-lang.org/t/pre-rfc-cargo-sbom/19842) on this topic. +The Pre-RFC has continued to garner discussion, including +- Enumerating the limitations of third-party solutions ([link](https://internals.rust-lang.org/t/pre-rfc-cargo-sbom/19842/31?u=epage)) +- On the role of Cargo's SBOM format, whether it should be an intermediate format that gives integrators the information they need to create their final SBOM or whether it should be self-contained enough to just do a format conversion to the format of choice. This affects fields like + - Author (can be pulled from manifests) + - Hashes (which comes with questions of which artifacts using which algorithms) + - Timestamps (which is not reproducible which is a requirement for some SBOM use cases) + +[arlosi](https://github.com/arlosi) is planning to incorporate the feedback into the Pre-RFC, do a last call for feedback, and move onto a full RFC. + +##### RFC #3537: Make Cargo respect minimum supported Rust version (MSRV) when selecting dependencies + +One frustration point with Cargo and the crates.io ecosystem is when a dependency is added and the build fails because it uses newer features than your version of Rust supports. +We've been tracking this in [rust-lang/cargo#9930](https://github.com/rust-lang/cargo/issues/9930). +Historically, we've deferred work on this as we expect the errors when no compatible package is present to cause more confusion and user frustration than the problem being solved. +We were hopeful that a [PubGrub](https://github.com/pubgrub-rs/pubgrub) dependency resolver would fix this but there is a lot of work remaining before we can switch dependency resolvers. + +During the 1.74 development-cycle, we merged +[rust-lang/cargo#12560](https://github.com/rust-lang/cargo/pull/12560) +which added a perma-unstable implementation so people could at least use nightly for one-off dependency resolution. +Just before the 1.76 development-cycle, +we came up with a way to side-step the resolver error messages by only preferring stable versions which we merged in +[rust-lang/cargo#12950](https://github.com/rust-lang/cargo/pull/12950). + +This side-step was written up as +[Pre-RFC: MSRV Aware Resolver](https://internals.rust-lang.org/t/pre-rfc-msrv-aware-resolver/19871/58) +which led into +[RFC #3537: Make Cargo respect minimum supported Rust version (MSRV) when selecting dependencies](https://github.com/rust-lang/rfcs/pull/3537). + + + +One of the main conversations is about whether we should respect MSRV by default or require an opt-in. +After some discussion during cargo team meetings and office hours, +the plan moving forward is to re-focus the document on workflows, +what behavior we want to drive (e.g. avoiding stagnation), +and how different possible solutions affect the workflows and user behavior. + +We are waiting on the RFC author for integrating this new approach into the RFC. + +##### RFC #3371: CARGO_TARGET_BASE_DIR support + + +[RFC #3371](https://github.com/rust-lang/rfcs/pull/3371) +allows users to move all of their target-dirs to be under a common root directory without a lot of bookkeeping on the users end. +It was proposed for merge back in June but it fell off our radar and we were finally able to talk over it. +We clarified that this proposal is independent of +[per-user caching](https://github.com/rust-lang/cargo/issues/5931) +and both efforts are mostly independent and worthwhile. +Per-user caching would reduce how much we put in target-dir but workspaces would still need a target-dir for uncacheable builds and final artifacts. + +While there are other solutions that cover the motivations for `CARGO_TARGET_BASE_DIR`, +we felt `CARGO_TARGET_BASE_DIR` is a principled shortcut that can get us most of those benefits sooner. + +One concern raised in the RFC is how can people find their target-dir (e.g. packaging their built `[[bin]]`s). +This becomes more relevant if we were to consider switching the workspace's target-dir to a central location. +In the RFC, the idea of symlinking `target/` to target-dir was brought up. +It is unclear whether the benefits to those that need it outweigh the annoyance for those that don't. +Users can get the location of target-dir via `cargo metadata`. +Stabilizing [`--out-dir`](https://github.com/rust-lang/cargo/issues/6790) would bypass most uses for accessing target-dir. +Those might be sufficient. +If not, maybe we could explore having a config field to control the creation of a symlink. + +We then explored the design space a little bit, +taking inspiration from +[the index's `dl` field](https://doc.rust-lang.org/cargo/reference/registry-index.html#index-configuration). +For example, having placeholders for `{home}` or `{cargo_home}` would make it easier to copy configs from account to account. +What if we extend `CARGO_TARGET_DIR` with placeholder support instead of adding `CARGO_TARGET_BASE_DIR`, allowing `CARGO_TARGET_DIR={cargo_home}/target/{manifest_path_hash}`? +This seems like this would simplify the design quite a bit. + +This is now back on the RFC author's plate to process this feedback and update the proposal as they see fit. + +##### RFC #3493: `cargo update --precise ` + +To use a [pre-release](https://semver.org/#spec-item-9) today, +users have to opt-in with their version requirements. +[RFC #3493](https://github.com/rust-lang/rfcs/pull/3493) changes cargo's dependency resolver so that users can opt-in to a pre-release in their `Cargo.lock`. +This works well if users want to test for regressions in a pre-release dependency or want access to functionality early but don't require it (e.g. performance improvements). +If a package requires something from a pre-release, like a new API, that should instead be specified in the version requirement which +is more of the focus of [RFC #3263](https://github.com/rust-lang/rfcs/pull/3263). + + +Since we were already discussing postponing #3263, +we discussed whether we should also postpone #3493. +While we want to improve pre-releases, +no one on the team is available to help shepherd this and +the proposal would involve an invasive change to cargo that would likely be brittle. +For how much time we do take to address pre-release, +it was unclear if this was the most important. + +As we discussed it, +we realized there was a solid precedence to base the design off of, +[yanked packages](https://doc.rust-lang.org/cargo/commands/cargo-yank.html). +We could also minimize risk by suggesting that the +[`semver` package](https://crates.io/crates/semver) +keep the existing version matching logic and expose the new behavior under a different function name. +We also realized that this RFC is a prerequisite for RFC #3263 so that cargo could correctly unify pre-release and regular release version requirements. + +For bookkeeping purposes, +there was a concern this would be require `Cargo.lock` changes. +If so, then it would likely be complex enough that we'd need an experimental implementation first. +However, we found `Cargo.lock` changes are unlikely to be needed after some further discussion. + +We updated the RFC and this is now waiting on author to wrap up the discussion. + +##### `cargo update --precise ` + + +Between [RFC #3493](https://github.com/rust-lang/rfcs/pull/3493) letting users force pre-releases through `--precise` and +[rust-lang/cargo#12425](https://github.com/rust-lang/cargo/issues/12425) doing the same for breaking changes, +it seemed fitting to extend this concept to yanked packages, +resolving [rust-lang/cargo#4225](https://github.com/rust-lang/cargo/issues/4225). +We felt we need to trust users in these scenarios. +Users might have valid reasons to access yanked packages, +whether its short-term to test something out +or long term and they accept the risks. +We considered an additional flag for this but pre-release and breaking changes don't need a flag. +For breaking changes, the flag would be for use outside `--precise` for opting in for all packages. +There is the possibility we'd want to extend that concept to pre-release and yanked packages. +For a prepondance of caution, we reached out to a prior cargo team member in case there was context we were missing and they gave the greenlight. + +[rust-lang/cargo#4225](https://github.com/rust-lang/cargo/issues/4225) is marked as [accepted](https://doc.crates.io/contrib/issues.html#issue-status-labels) and we welcome people to contribute a PR for this. + +## Misc + +Other relevant topics of interest: +- [Rust Blog: Cargo Cache Cleaning](https://blog.rust-lang.org/2023/12/11/cargo-cache-cleaning.html) +- [Github: Fix color handling in cargo for legacy Windows consoles](https://github.com/rust-lang/cargo/issues/13104) +- [Github: Transition `build.rs` directives from `cargo:` to `cargo::` to allow evolution without breaking compatibility](https://github.com/rust-lang/cargo/pull/12201) +- [Internals: verify docs build as part of `cargo publish`?](https://internals.rust-lang.org/t/how-about-cargo-publish-expect-doc/20011) +- [Internals: default `--features` via `.cargo/config.toml`](https://internals.rust-lang.org/t/pre-rfc-configure-default-used-features-in-config-toml-make-rust-analyzer-and-cargo-use-it-as-default/20007) +- [Zulip: Feedback on Earthly's design for Rust CI](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Incremental.20Rust.20builds.20in.20CI) +- [Zulip: Status update on using gitoxide in cargo](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/.60gitoxide.60.20integration.20updates) +- [Zulip: Allow `[profile]`s to enable `--features` ](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Profile.20specific.20features) +- [PackagingCon videos are up](https://www.youtube.com/@packagingcon_org/videos) with a [presentation on Namespaces in Rust](https://www.youtube.com/watch?v=1IINSW7IG-k) + +## Focus areas without progress + +These are areas of interest for Cargo team members with no reportable progress for this development-cycle. + +Ready-to-develop: +- [Merge `cargo upgrade` into `cargo update`](https://github.com/rust-lang/cargo/issues/12425) +- [`cargo publish` for workspaces](https://github.com/rust-lang/cargo/issues/1169) +- [Auto-generate completions](https://github.com/rust-lang/cargo/issues/6645) + - Blocked on [clap-rs/clap#3166](https://github.com/clap-rs/clap/issues/3166) +- Generalize cargo's test assertion code + - [Add `CARGO_WORKSPACE_DIR`](https://github.com/rust-lang/cargo/issues/3946) + - [Inline snapshotting in snapbox](https://github.com/assert-rs/trycmd/issues/221) + - [Structured assertions in snapbox](https://github.com/assert-rs/trycmd/issues/92) + - [Find a solution for order-independent assertions between cargo and snapbox](https://github.com/assert-rs/trycmd/issues/151) + +Needs design and/or experimentation: +- [Per-user artifact cache](https://github.com/rust-lang/cargo/issues/5931) +- [Dependency resolution hooks](https://github.com/rust-lang/cargo/issues/7193) +- [A way to report why crates were rebuilt](https://github.com/rust-lang/cargo/issues/2904) + +Planning: +- [RFC #3243: Package as (optional) namespaces](https://github.com/rust-lang/rfcs/pull/3243) +- [RFC #3416: `features` metadata](https://github.com/rust-lang/rfcs/pull/3416) + - [RFC #3485: description field](https://github.com/rust-lang/rfcs/pull/3485) + - [RFC #3487: visibility control](https://github.com/rust-lang/rfcs/pull/3487) + - [RFC #3486: deprecation field](https://github.com/rust-lang/rfcs/pull/3486) + - [Unstable features](https://doc.rust-lang.org/cargo/reference/unstable.html#list-of-unstable-features) +- [RFC #3452: Nested packages](https://github.com/rust-lang/rfcs/pull/3452) +- [OS-native config/cache directories (ie XDG support)](https://github.com/rust-lang/cargo/issues/1734) + - [Phase 1 Pre-RFC](https://internals.rust-lang.org/t/pre-rfc-split-cargo-home/19747) +- [Pre-RFC: Global, mutually exclusive features](https://internals.rust-lang.org/t/pre-rfc-mutually-excusive-global-features/19618) + +## How you can help + +If you have ideas for improving cargo, +we recommend first checking [our backlog](https://github.com/rust-lang/cargo/issues/) +and then exploring the idea on [Internals](https://internals.rust-lang.org/c/tools-and-infrastructure/cargo/15). + +If there is a particular issue that you are wanting resolved that wasn't discussed here, +some steps you can take to help move it along include: +- Summarizing the existing conversation (example: + [Better support for docker layer caching](https://github.com/rust-lang/cargo/issues/2644#issuecomment-1489371226), + [Change in `Cargo.lock` policy](https://github.com/rust-lang/cargo/issues/8728#issuecomment-1610265047), + [MSRV-aware resolver](https://github.com/rust-lang/cargo/issues/9930#issuecomment-1489089277) + ) +- Document prior art from other ecosystems so we can build on the work others have done and make something familiar to users, where it makes sense +- Document related problems and solutions within Cargo so we see if we are solving to the right layer of abstraction +- Building on those posts, propose a solution that takes into account the above information and cargo's compatibility requirements ([example](https://github.com/rust-lang/cargo/issues/9930#issuecomment-1489269471)) + +We are available to help mentor people for +[S-accepted issues](https://doc.crates.io/contrib/issues.html#issue-status-labels) +on +[zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo) +and you can talk to us in real-time during +[Contributor Office Hours](https://github.com/rust-lang/cargo/wiki/Office-Hours). +If you are looking to help with one of the bigger projects mentioned here and are just starting out, +[fixing some issues](https://doc.crates.io/contrib/process/index.html#working-on-issues) +will help familiarize yourself with the process and expectations, +making things go more smoothly. +If you'd like to tackle something +[without a mentor](https://doc.crates.io/contrib/issues.html#issue-status-labels), +the expectations will be higher on what you'll need to do on your own. From db1f214a082dc832c7895298cffbd7bd50c4de55 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 2 Jan 2024 14:26:38 -0600 Subject: [PATCH 0213/1024] fix: Typo Co-authored-by: Jake Goulding --- .../2024-01-02-this-development-cycle-in-cargo-1-76.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md b/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md index b912a9f98..72062220f 100644 --- a/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md +++ b/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md @@ -39,7 +39,7 @@ from cargo itself ([rust-lang/cargo#12801](https://github.com/rust-lang/cargo/issues/12801)). Other areas for potentially splitting out of the `cargo` library include: -- More serde and CLI types into `cargo-util-schemas` +- Move serde and CLI types into `cargo-util-schemas` - Console output - Parsing and layer merging for `.cargo/config.toml` - Reading from different package sources (git, path, git registry, sparse registry) From 960f00148176dd251bfc63cf3590b67d72931e9e Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 2 Jan 2024 14:26:48 -0600 Subject: [PATCH 0214/1024] fix: Typo Co-authored-by: Jake Goulding --- .../2024-01-02-this-development-cycle-in-cargo-1-76.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md b/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md index 72062220f..dabeb3e68 100644 --- a/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md +++ b/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md @@ -68,7 +68,7 @@ You could use the `name` field but that can be ambiguous when there are multiple [rust-lang/cargo#12914](https://github.com/rust-lang/cargo/pull/12914) proposes we switch `id` to be Package ID Spec and declare it as non-opaque in `cargo metadata`'s output, allowing a caller to take the `id` and pass it cargo via the `--package` parameters. -We did find one hurdle: Packaeg ID Specs can sometimes be ambiguous. +We did find one hurdle: Package ID Specs can sometimes be ambiguous. That was resolved in [rust-lang/cargo#12933](https://github.com/rust-lang/cargo/pull/12933). This is waiting on input from the Cargo team. From 200a2dd5a4ebcfb99b5fcb5804e416cc9e89444e Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 2 Jan 2024 14:31:04 -0600 Subject: [PATCH 0215/1024] Be more consistent in escaping rustc --- ...01-02-this-development-cycle-in-cargo-1-76.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md b/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md index dabeb3e68..0b0080b58 100644 --- a/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md +++ b/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md @@ -49,7 +49,7 @@ Other areas for potentially splitting out of the `cargo` library include: A user ran into path-length issues on Windows with `cargo install --git` ([rust-lang/cargo#13020](https://github.com/rust-lang/cargo/issues/13020)) which led to [ChrisDenton](https://github.com/ChrisDenton) to post a PR for -[embedding a Windows manifest into the cargo binary](https://github.com/rust-lang/cargo/pull/13131), modeled after rustc. +[embedding a Windows manifest into the cargo binary](https://github.com/rust-lang/cargo/pull/13131), modeled after `rustc`. After some exploration on that PR, it was merged with [rust-lang/cargo#13141](https://github.com/rust-lang/cargo/issues/13141) being created to track some of the remaining work @@ -92,9 +92,9 @@ An important consideration being raised is that the users can successfully remap ##### `-Zcheck-cfg` [`-Zcheck-cfg`](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg) -is an unstable feature that will cause rustc to warn on undefined conditional compilation, like `#[cfg(unknown)]` or `#[cfg(feature = "unknown")]`. +is an unstable feature that will cause `rustc` to warn on undefined conditional compilation, like `#[cfg(unknown)]` or `#[cfg(feature = "unknown")]`. -[Urgau](https://github.com/Urgau) has been working across rustc and cargo to polish up this feature for stabilization. +[Urgau](https://github.com/Urgau) has been working across `rustc` and `cargo` to polish up this feature for stabilization. Recently, they: - Stopped checking names/values on the `rustc --cfg` CLI flag ([rust-lang/rust#117522](https://github.com/rust-lang/rust/pull/117522)) after a [zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/check-cfg.20and.20RUSTFLAGS.20interaction) and some [discussion in the tracking issue](https://github.com/rust-lang/rust/issues/82450#issuecomment-1813687060) - Fixed cargo so that it will re-compile packages when features change, avoiding a stale warning status ([rust-lang/cargo#13012](https://github.com/rust-lang/cargo/pull/13012)) @@ -137,7 +137,7 @@ This changed with the introduction of the [`[lints]` table](https://blog.rust-la We are tracking cargo warning control (and the lints it can unblock) in [rust-lang/cargo#12235](https://github.com/rust-lang/cargo/issues/12235). -The first milestone is for TOML parse errors to match rustc's error style, going from +The first milestone is for TOML parse errors to match `rustc`'s error style, going from ``` error: failed to parse manifest at `[..]` @@ -156,17 +156,17 @@ error: invalid type: integer `3`, expected a boolean or string 6 | build = 3 | ^ ``` -Rather than writing our own error message renderer that imitates rustc, +Rather than writing our own error message renderer that imitates `rustc`, [Muscraft](https://github.com/Muscraft) resurrected the [`annotate-snippets` project](https://github.com/rust-lang/annotate-snippets-rs/) -with the intention of making it work for cargo and then migrating rustc to it. +with the intention of making it work for `cargo` and then migrating `rustc` to it. They released annotate-snippets [v0.10](https://github.com/rust-lang/annotate-snippets-rs/blob/master/CHANGELOG.md#0100---december-12-2023) and created [rust-lang/cargo#13172](https://github.com/rust-lang/cargo/pull/13172) for integrating it into cargo when parsing `Cargo.toml` files. We will also need to decide what to do about -[the differences in colors between rustc and cargo](https://github.com/rust-lang/cargo/issues/12740). +[the differences in colors between `rustc` and `cargo`](https://github.com/rust-lang/cargo/issues/12740). [Muscraft](https://github.com/Muscraft) has been looking into why `rustc`'s colors were chosen and are preparing a proposal for what both programs should use. ##### `cargo info` @@ -358,7 +358,7 @@ The `cargo` identifier is referred to as an infostring. There are two directions we can take the infostring in the long run: - Does the parent tool (in this case, cargo) own the definition of the infostring and is allowed whatever identifiers it wants -- Does rustc own the meaning of the infostring, allowing the Rust Project to add additional types of metadata without concern for breaking tools that rely on custom identifiers +- Does `rustc` own the meaning of the infostring, allowing the Rust Project to add additional types of metadata without concern for breaking tools that rely on custom identifiers The embedded manifest syntax RFC was updated with a [new section](https://github.com/epage/rfcs/blob/frontmatter/text/3503-frontmatter.md#optional-or-additional-infostrings), side-stepping this discussion by suggesting we hard code support for `cargo` right now and leave the decision to the future when we have more context for how this might be used. From 3bc7aab554522273035c670a224c13757fd69cb9 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 2 Jan 2024 20:03:48 -0600 Subject: [PATCH 0216/1024] fix: Typo Co-authored-by: Eric Huss --- .../2024-01-02-this-development-cycle-in-cargo-1-76.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md b/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md index 0b0080b58..caf0fc247 100644 --- a/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md +++ b/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md @@ -492,7 +492,7 @@ or long term and they accept the risks. We considered an additional flag for this but pre-release and breaking changes don't need a flag. For breaking changes, the flag would be for use outside `--precise` for opting in for all packages. There is the possibility we'd want to extend that concept to pre-release and yanked packages. -For a prepondance of caution, we reached out to a prior cargo team member in case there was context we were missing and they gave the greenlight. +For a preponderance of caution, we reached out to a prior cargo team member in case there was context we were missing and they gave the greenlight. [rust-lang/cargo#4225](https://github.com/rust-lang/cargo/issues/4225) is marked as [accepted](https://doc.crates.io/contrib/issues.html#issue-status-labels) and we welcome people to contribute a PR for this. From a87cc2e3828d5117531a5552d749dae56895a1af Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 2 Jan 2024 20:04:37 -0600 Subject: [PATCH 0217/1024] Shift to the 3rd --- ...1-76.md => 2024-01-03-this-development-cycle-in-cargo-1-76.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2024-01-02-this-development-cycle-in-cargo-1-76.md => 2024-01-03-this-development-cycle-in-cargo-1-76.md} (100%) diff --git a/posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md b/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md similarity index 100% rename from posts/inside-rust/2024-01-02-this-development-cycle-in-cargo-1-76.md rename to posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md From d2dd902b638f6eced7651a0a1535482619e52074 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:15:45 +0100 Subject: [PATCH 0218/1024] Update Rust crate tokio to v1.18.5 [SECURITY] (#1187) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 115 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 86 insertions(+), 29 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 464cc32cd..384e348ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -650,7 +650,7 @@ dependencies = [ "httpdate 0.3.2", "itoa 0.4.5", "pin-project", - "socket2", + "socket2 0.3.19", "tokio", "tower-service", "tracing", @@ -825,24 +825,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.7.14" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "log", - "miow", - "ntapi", - "winapi", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi", + "wasi", + "windows-sys", ] [[package]] @@ -863,15 +853,6 @@ dependencies = [ "twoway 0.1.8", ] -[[package]] -name = "ntapi" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a31937dea023539c72ddae0e3571deadc1414b300483fa7aaec176168cfa9d2" -dependencies = [ - "winapi", -] - [[package]] name = "num-integer" version = "0.1.42" @@ -1461,6 +1442,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "spin" version = "0.5.2" @@ -1629,18 +1620,18 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.16.1" +version = "1.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a" +checksum = "0e050c618355082ae5a89ec63bbf897225d5ffe84c7c4e036874e4d185a5044e" dependencies = [ "bytes", "libc", "memchr", "mio", "num_cpus", - "once_cell", "pin-project-lite", "signal-hook-registry", + "socket2 0.4.10", "tokio-macros", "winapi", ] @@ -2075,9 +2066,9 @@ dependencies = [ [[package]] name = "winapi" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", @@ -2104,6 +2095,72 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "xdg" version = "2.2.0" From f1c040d744804c33b02f4fe2fb6921b72bf58e54 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:19:02 +0100 Subject: [PATCH 0219/1024] Bump hyper from 0.14.4 to 0.14.20 (#1189) Bumps [hyper](https://github.com/hyperium/hyper) from 0.14.4 to 0.14.20. - [Release notes](https://github.com/hyperium/hyper/releases) - [Changelog](https://github.com/hyperium/hyper/blob/v0.14.20/CHANGELOG.md) - [Commits](https://github.com/hyperium/hyper/compare/v0.14.4...v0.14.20) --- updated-dependencies: - dependency-name: hyper dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 384e348ee..5b66b2d2b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -555,7 +555,7 @@ dependencies = [ "bytes", "headers-core", "http", - "httpdate 1.0.2", + "httpdate", "mime", "sha-1 0.10.0", ] @@ -615,12 +615,6 @@ version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" -[[package]] -name = "httpdate" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" - [[package]] name = "httpdate" version = "1.0.2" @@ -635,9 +629,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.4" +version = "0.14.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8e946c2b1349055e0b72ae281b238baf1a3ea7307c7e9f9d64673bdd9c26ac7" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" dependencies = [ "bytes", "futures-channel", @@ -647,10 +641,10 @@ dependencies = [ "http", "http-body", "httparse", - "httpdate 0.3.2", - "itoa 0.4.5", - "pin-project", - "socket2 0.3.19", + "httpdate", + "itoa 1.0.2", + "pin-project-lite", + "socket2", "tokio", "tower-service", "tracing", @@ -1431,17 +1425,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "socket2" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" -dependencies = [ - "cfg-if", - "libc", - "winapi", -] - [[package]] name = "socket2" version = "0.4.10" @@ -1631,7 +1614,7 @@ dependencies = [ "num_cpus", "pin-project-lite", "signal-hook-registry", - "socket2 0.4.10", + "socket2", "tokio-macros", "winapi", ] From f8f8b1023acc14cdc76fee6d6c0717b1d01f10e8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:19:33 +0100 Subject: [PATCH 0220/1024] Update Rust crate regex to 1.10 (#1193) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 34 ++++++++++++++++++++++++++-------- Cargo.toml | 2 +- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5b66b2d2b..786f22b7c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "0.7.18" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -770,9 +770,9 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "memchr" -version = "2.5.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memoffset" @@ -1177,13 +1177,25 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.6" +version = "1.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-automata", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", ] [[package]] @@ -1192,6 +1204,12 @@ version = "0.6.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + [[package]] name = "remove_dir_all" version = "0.5.3" @@ -1496,7 +1514,7 @@ dependencies = [ "lazycell", "onig", "plist", - "regex-syntax", + "regex-syntax 0.6.26", "serde", "serde_derive", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index f75cbec02..9a1f8edf4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ serde_yaml = "0.8" serde_json = "1.0" comrak = "0.13" rayon = "1.8.0" -regex = "1.3" +regex = "1.10" sass-rs = "0.2" chrono = "0.4" From 5eb9205f98143a0236006e9454a11dfd625539a6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:21:38 +0100 Subject: [PATCH 0221/1024] Update actions/checkout action to v4 (#1198) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cc638a833..b1c6bb568 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,7 +9,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - uses: Swatinem/rust-cache@v2.5.0 From 3771a9cb2890c1c9e77b1de14041690ad456df75 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:21:56 +0100 Subject: [PATCH 0222/1024] Update Swatinem/rust-cache action to v2.7.2 (#1196) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b1c6bb568..35dfbae5d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - uses: Swatinem/rust-cache@v2.5.0 + - uses: Swatinem/rust-cache@a22603398250b864f7190077025cf752307154dc # v2.7.2 - run: cargo run - run: cp CNAME ./site/ From 2307b2392a46d2602cba36536b295d9fc306e6a5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:26:53 +0100 Subject: [PATCH 0223/1024] Pin dependencies (#1190) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 4 ++-- Cargo.toml | 24 ++++++++++++------------ serve/Cargo.toml | 4 ++-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 35dfbae5d..50ecea848 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,7 +17,7 @@ jobs: - run: cp CNAME ./site/ - run: touch site/.nojekyll - - uses: actions/upload-pages-artifact@v1.0.9 + - uses: actions/upload-pages-artifact@66b63f4a7de003f4f00cc8e9af4b83b8f2abdb96 # v1.0.9 with: path: site @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest steps: - id: deployment - uses: actions/deploy-pages@v2.0.2 + uses: actions/deploy-pages@ee48c7b82e077d7b8ef30b50a719e6a792a50c9a # v2.0.2 environment: name: github-pages diff --git a/Cargo.toml b/Cargo.toml index 9a1f8edf4..16dbabf11 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,19 +9,19 @@ name = "blog" path = "src/blog.rs" [dependencies] -color-eyre = "0.6.2" -eyre = "0.6.8" -handlebars = { version = "3", features = ["dir_source"] } -lazy_static = "1.4.0" -serde = "1.0" -serde_derive = "1.0" -serde_yaml = "0.8" -serde_json = "1.0" +color-eyre = "=0.6.2" +eyre = "=0.6.8" +handlebars = { version = "=3.5.5", features = ["dir_source"] } +lazy_static = "=1.4.0" +serde = "=1.0.116" +serde_derive = "=1.0.116" +serde_yaml = "=0.8.13" +serde_json = "=1.0.57" comrak = "0.13" -rayon = "1.8.0" -regex = "1.10" -sass-rs = "0.2" -chrono = "0.4" +rayon = "=1.8.0" +regex = "=1.10.2" +sass-rs = "=0.2.2" +chrono = "=0.4.19" [workspace] members = ["serve"] diff --git a/serve/Cargo.toml b/serve/Cargo.toml index 024ec77e0..431834432 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" [dependencies] blog = { path = ".." } -warpy = "0.2.1" -tokio = "1.0" +warpy = "=0.2.1" +tokio = "=1.18.5" From 522685a308464effcf0036d9b8e5278ef4b74be1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:32:40 +0100 Subject: [PATCH 0224/1024] Update Rust crate comrak to 0.17 [SECURITY] (#1186) * Update Rust crate comrak to 0.17 [SECURITY] * Update lockfile --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tobias Bieniek --- Cargo.lock | 403 +++++++++++++++++++++++++++++++++++++++++++---------- Cargo.toml | 2 +- 2 files changed, 331 insertions(+), 74 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 786f22b7c..f2cd96fb9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -35,6 +35,54 @@ dependencies = [ "winapi", ] +[[package]] +name = "anstream" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + [[package]] name = "atty" version = "0.2.14" @@ -82,12 +130,33 @@ dependencies = [ "serde", ] +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + [[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + [[package]] name = "block-buffer" version = "0.7.3" @@ -210,13 +279,54 @@ checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" dependencies = [ "ansi_term", "atty", - "bitflags", - "strsim", + "bitflags 1.2.1", + "strsim 0.8.0", "textwrap", "unicode-width", "vec_map", ] +[[package]] +name = "clap" +version = "4.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33e92c5c1a78c62968ec57dbc2440366a2d6e5a23faf829970ff1585dc6b18e2" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4323769dc8a61e2c39ad7dc26f6f2800524691a44d74fe3d1071a5c24db6370" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim 0.10.0", + "terminal_size", +] + +[[package]] +name = "clap_derive" +version = "4.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "clap_lex" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + [[package]] name = "color-eyre" version = "0.6.2" @@ -244,21 +354,26 @@ dependencies = [ "tracing-error", ] +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "comrak" -version = "0.13.0" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a00ddef7b344800116b794a7cabfb2c60ef4f44db2f44b0f8f3f6dd2ea43866" +checksum = "0c5a805f31fb098b1611170028501077ceb8c9e78f5345530f4fdefae9b61119" dependencies = [ - "clap", + "clap 4.4.14", "entities", - "lazy_static", - "pest", - "pest_derive", + "memchr", + "once_cell", "regex", "shell-words", + "slug", "syntect", - "twoway 0.2.1", "typed-arena", "unicode_categories", "xdg", @@ -325,6 +440,12 @@ dependencies = [ "typenum", ] +[[package]] +name = "deunicode" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a" + [[package]] name = "digest" version = "0.8.1" @@ -375,6 +496,16 @@ dependencies = [ "termcolor", ] +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "eyre" version = "0.6.8" @@ -391,6 +522,16 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +[[package]] +name = "fancy-regex" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" +dependencies = [ + "bit-set", + "regex", +] + [[package]] name = "fastrand" version = "1.7.0" @@ -551,7 +692,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cff78e5788be1e0ab65b04d306b2ed5092c815ec97ec70f4ebd5aee158aa55d" dependencies = [ "base64", - "bitflags", + "bitflags 1.2.1", "bytes", "headers-core", "http", @@ -578,6 +719,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + [[package]] name = "hermit-abi" version = "0.1.9" @@ -714,12 +861,6 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "libc" version = "0.2.149" @@ -741,6 +882,12 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + [[package]] name = "local_ipaddress" version = "0.1.3" @@ -826,7 +973,7 @@ dependencies = [ "libc", "log", "wasi", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -844,7 +991,7 @@ dependencies = [ "rand", "safemem", "tempfile", - "twoway 0.1.8", + "twoway", ] [[package]] @@ -906,7 +1053,7 @@ version = "6.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67ddfe2c93bb389eea6e6d713306880c7f6dcc99a75b659ce145d962c861b225" dependencies = [ - "bitflags", + "bitflags 1.2.1", "lazy_static", "libc", "onig_sys", @@ -978,7 +1125,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn", + "syn 1.0.98", ] [[package]] @@ -1009,7 +1156,7 @@ checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.98", ] [[package]] @@ -1059,7 +1206,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.98", "version_check", ] @@ -1076,9 +1223,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.40" +version = "1.0.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7" +checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" dependencies = [ "unicode-ident", ] @@ -1097,9 +1244,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quote" -version = "1.0.3" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -1172,7 +1319,7 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" dependencies = [ - "bitflags", + "bitflags 1.2.1", ] [[package]] @@ -1200,9 +1347,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.26" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "regex-syntax" @@ -1240,6 +1387,19 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +[[package]] +name = "rustix" +version = "0.38.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.48.0", +] + [[package]] name = "rustls" version = "0.20.8" @@ -1331,6 +1491,9 @@ name = "serde" version = "1.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5" +dependencies = [ + "serde_derive", +] [[package]] name = "serde_derive" @@ -1340,7 +1503,7 @@ checksum = "f630a6370fd8e457873b4bd2ffdae75408bc291ba72be773772a4c2a065d9ae8" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.98", ] [[package]] @@ -1443,6 +1606,16 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slug" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bd94acec9c8da640005f8e135a39fc0372e74535e6b368b7a04b875f784c8c4" +dependencies = [ + "deunicode", + "wasm-bindgen", +] + [[package]] name = "socket2" version = "0.4.10" @@ -1465,13 +1638,19 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "structopt" version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" dependencies = [ - "clap", + "clap 2.33.0", "lazy_static", "structopt-derive", ] @@ -1482,11 +1661,11 @@ version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ - "heck", + "heck 0.3.3", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.98", ] [[package]] @@ -1500,25 +1679,37 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "syntect" -version = "4.6.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b20815bbe80ee0be06e6957450a841185fcf690fe0178f14d77a05ce2caa031" +checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" dependencies = [ "bincode", - "bitflags", + "bitflags 1.2.1", + "fancy-regex", "flate2", "fnv", - "lazy_static", - "lazycell", + "once_cell", "onig", "plist", - "regex-syntax 0.6.26", + "regex-syntax 0.7.5", "serde", - "serde_derive", "serde_json", + "thiserror", "walkdir", + "yaml-rust", ] [[package]] @@ -1544,6 +1735,16 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + [[package]] name = "textwrap" version = "0.11.0" @@ -1570,7 +1771,7 @@ checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.98", ] [[package]] @@ -1645,7 +1846,7 @@ checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.98", ] [[package]] @@ -1723,7 +1924,7 @@ checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.98", ] [[package]] @@ -1791,21 +1992,11 @@ dependencies = [ "memchr", ] -[[package]] -name = "twoway" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b40075910de3a912adbd80b5d8bad6ad10a23eeb1f5bf9d4006839e899ba5bc" -dependencies = [ - "memchr", - "unchecked-index", -] - [[package]] name = "typed-arena" -version = "1.7.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" [[package]] name = "typenum" @@ -1819,12 +2010,6 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" -[[package]] -name = "unchecked-index" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeba86d422ce181a719445e51872fa30f1f7413b62becb52e95ec91aa262d85c" - [[package]] name = "unicase" version = "2.6.0" @@ -1897,6 +2082,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "valuable" version = "0.1.0" @@ -2012,7 +2203,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn", + "syn 1.0.98", "wasm-bindgen-shared", ] @@ -2034,7 +2225,7 @@ checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2102,7 +2293,16 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -2111,13 +2311,28 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -2126,42 +2341,84 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "xdg" version = "2.2.0" @@ -2176,9 +2433,9 @@ checksum = "52839dc911083a8ef63efa4d039d1f58b5e409f923e44c80828f206f66e5541c" [[package]] name = "yaml-rust" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" dependencies = [ "linked-hash-map", ] diff --git a/Cargo.toml b/Cargo.toml index 16dbabf11..e2d65d9c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ serde = "=1.0.116" serde_derive = "=1.0.116" serde_yaml = "=0.8.13" serde_json = "=1.0.57" -comrak = "0.13" +comrak = "=0.17.1" rayon = "=1.8.0" regex = "=1.10.2" sass-rs = "=0.2.2" From 8aa8d4cd0c265a592512a9f067d3dec8996d89b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:37:43 +0100 Subject: [PATCH 0225/1024] Lock file maintenance (#1201) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 924 ++++++++++++++++++++++++----------------------------- 1 file changed, 418 insertions(+), 506 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f2cd96fb9..4d1238a2f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -28,9 +28,9 @@ dependencies = [ [[package]] name = "ansi_term" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ "winapi", ] @@ -89,16 +89,16 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi", ] [[package]] name = "autocfg" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" @@ -110,16 +110,22 @@ dependencies = [ "cc", "cfg-if", "libc", - "miniz_oxide 0.7.1", + "miniz_oxide", "object", "rustc-demangle", ] [[package]] name = "base64" -version = "0.13.0" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "c79fed4cdb43e993fcdadc7e58a09fd0e3e649c4436fa11da71c9f1f3ee7feb9" [[package]] name = "bincode" @@ -147,9 +153,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitflags" -version = "1.2.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" @@ -159,32 +165,11 @@ checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.3", -] - -[[package]] -name = "block-buffer" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" -dependencies = [ - "generic-array 0.14.5", -] - -[[package]] -name = "block-padding" -version = "0.1.5" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "byte-tools", + "generic-array", ] [[package]] @@ -206,51 +191,38 @@ dependencies = [ "serde_yaml", ] -[[package]] -name = "buf_redux" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f" -dependencies = [ - "memchr", - "safemem", -] - [[package]] name = "build_html" -version = "2.1.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5d5156d8363086399959a5c96463cd95ef8846259f356c70d4c57680f6a49e8" +checksum = "3108fe6fe7ac796fb7625bdde8fa2b67b5a7731496251ca57c7b8cadd78a16a1" [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" - -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byteorder" -version = "1.3.4" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.2.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0b3de4a0c5e67e16066a0715723abd91edc2f9001d09c46e1dca929351e130e" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "cc" -version = "1.0.73" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] [[package]] name = "cfg-if" @@ -267,19 +239,19 @@ dependencies = [ "libc", "num-integer", "num-traits", - "time 0.1.43", + "time 0.1.45", "winapi", ] [[package]] name = "clap" -version = "2.33.0" +version = "2.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ "ansi_term", "atty", - "bitflags 1.2.1", + "bitflags 1.3.2", "strsim 0.8.0", "textwrap", "unicode-width", @@ -344,9 +316,9 @@ dependencies = [ [[package]] name = "color-spantrace" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce" +checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" dependencies = [ "once_cell", "owo-colors", @@ -381,9 +353,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -399,36 +371,28 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crypto-common" @@ -436,40 +400,37 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.5", + "generic-array", "typenum", ] [[package]] -name = "deunicode" -version = "1.4.2" +name = "data-encoding" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] -name = "digest" -version = "0.8.1" +name = "deunicode" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.3", -] +checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a" [[package]] name = "digest" -version = "0.10.3" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.2", + "block-buffer", "crypto-common", ] [[package]] name = "dtoa" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" [[package]] name = "either" @@ -477,6 +438,15 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] + [[package]] name = "entities" version = "1.0.1" @@ -496,6 +466,12 @@ dependencies = [ "termcolor", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.8" @@ -516,12 +492,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - [[package]] name = "fancy-regex" version = "0.11.0" @@ -532,23 +502,14 @@ dependencies = [ "regex", ] -[[package]] -name = "fastrand" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" -dependencies = [ - "instant", -] - [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" dependencies = [ "crc32fast", - "miniz_oxide 0.5.3", + "miniz_oxide", ] [[package]] @@ -559,19 +520,18 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ - "matches", "percent-encoding", ] [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -579,27 +539,27 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-core", "futures-sink", @@ -611,18 +571,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.12.3" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" -dependencies = [ - "typenum", -] - -[[package]] -name = "generic-array" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -630,26 +581,26 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.7" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "h2" -version = "0.3.17" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b91535aa35fea1523ad1b86cb6b53c28e0ae566ba4a460f4457e936cad7c6f" +checksum = "b553656127a00601c8ae5590fcfdc118e4083a7924b6cf4ffc1ea4b99dc429d7" dependencies = [ "bytes", "fnv", @@ -657,7 +608,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 2.1.0", "slab", "tokio", "tokio-util", @@ -673,7 +624,7 @@ dependencies = [ "log", "pest", "pest_derive", - "quick-error 2.0.1", + "quick-error", "serde", "serde_json", "walkdir", @@ -681,24 +632,29 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.1" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "headers" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cff78e5788be1e0ab65b04d306b2ed5092c815ec97ec70f4ebd5aee158aa55d" +checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ - "base64", - "bitflags 1.2.1", + "base64 0.21.6", "bytes", "headers-core", "http", "httpdate", "mime", - "sha-1 0.10.0", + "sha1", ] [[package]] @@ -727,29 +683,35 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.1.9" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ebe6e23502442c4c9cd80fcb8bdf867dc5f4a9e9f1d882499fa49c5ed83e559" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + [[package]] name = "http" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", - "itoa 1.0.2", + "itoa 1.0.10", ] [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -758,15 +720,15 @@ dependencies = [ [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -776,9 +738,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.20" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", @@ -789,9 +751,9 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.2", + "itoa 1.0.10", "pin-project-lite", - "socket2", + "socket2 0.5.5", "tokio", "tower-service", "tracing", @@ -800,11 +762,10 @@ dependencies = [ [[package]] name = "idna" -version = "0.2.3" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] @@ -817,40 +778,41 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "1.9.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", ] [[package]] -name = "instant" -version = "0.1.12" +name = "indexmap" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ - "cfg-if", + "equivalent", + "hashbrown 0.14.3", ] [[package]] name = "itoa" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.2" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.58" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -863,9 +825,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.149" +version = "0.2.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" [[package]] name = "line-wrap" @@ -878,9 +840,9 @@ dependencies = [ [[package]] name = "linked-hash-map" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" @@ -896,24 +858,9 @@ checksum = "f6a104730949fbc4c78e4fa98ed769ca0faa02e9818936b61032d2d77526afa9" [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "memchr" @@ -921,20 +868,11 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - [[package]] name = "mime" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" @@ -946,15 +884,6 @@ dependencies = [ "unicase", ] -[[package]] -name = "miniz_oxide" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.7.1" @@ -972,33 +901,33 @@ checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", "log", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.48.0", ] [[package]] -name = "multipart" -version = "0.18.0" +name = "multer" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182" +checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" dependencies = [ - "buf_redux", + "bytes", + "encoding_rs", + "futures-util", + "http", "httparse", "log", + "memchr", "mime", - "mime_guess", - "quick-error 1.2.3", - "rand", - "safemem", - "tempfile", - "twoway", + "spin 0.9.8", + "version_check", ] [[package]] name = "num-integer" -version = "0.1.42" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", "num-traits", @@ -1006,20 +935,20 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.11" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] [[package]] name = "num_cpus" -version = "1.12.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.3", "libc", ] @@ -1034,47 +963,41 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.13.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "onig" -version = "6.3.1" +version = "6.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ddfe2c93bb389eea6e6d713306880c7f6dcc99a75b659ce145d962c861b225" +checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" dependencies = [ - "bitflags 1.2.1", - "lazy_static", + "bitflags 1.3.2", "libc", + "once_cell", "onig_sys", ] [[package]] name = "onig_sys" -version = "69.7.1" +version = "69.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd3eee045c84695b53b20255bb7317063df090b68e18bfac0abb6c39cf7f33e" +checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" dependencies = [ "cc", "pkg-config", ] -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - [[package]] name = "owo-colors" version = "3.5.0" @@ -1083,33 +1006,35 @@ checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" [[package]] name = "pem" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" dependencies = [ - "base64", + "base64 0.13.1", ] [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.1.3" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06" dependencies = [ + "memchr", + "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.1.0" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +checksum = "bcd6ab1236bbdb3a49027e920e693192ebfe8913f6d60e294de57463a493cfde" dependencies = [ "pest", "pest_generator", @@ -1117,53 +1042,53 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.1.3" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 1.0.98", + "syn 2.0.48", ] [[package]] name = "pest_meta" -version = "2.1.3" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +checksum = "a7ff62f5259e53b78d1af898941cdcdccfae7385cf7d793a6e55de5d05bb4b7d" dependencies = [ - "maplit", + "once_cell", "pest", - "sha-1 0.8.2", + "sha2", ] [[package]] name = "pin-project" -version = "1.0.11" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.11" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 1.0.98", + "syn 2.0.48", ] [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -1173,29 +1098,29 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.17" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" +checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" [[package]] name = "plist" -version = "1.3.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd39bc6cdc9355ad1dc5eeedefee696bb35c34caf21768741e81826c0bbd7225" +checksum = "9a4a0cfc5fb21a09dc6af4bf834cf10d4a32fccd9e2ea468c4b1751a097487aa" dependencies = [ - "base64", - "indexmap", + "base64 0.21.6", + "indexmap 1.9.3", "line-wrap", + "quick-xml", "serde", - "time 0.3.11", - "xml-rs", + "time 0.3.15", ] [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-error" @@ -1206,7 +1131,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.98", + "syn 1.0.109", "version_check", ] @@ -1232,15 +1157,18 @@ dependencies = [ [[package]] name = "quick-error" -version = "1.2.3" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] -name = "quick-error" -version = "2.0.1" +name = "quick-xml" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" +checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" +dependencies = [ + "memchr", +] [[package]] name = "quote" @@ -1274,9 +1202,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] @@ -1308,20 +1236,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", - "ring", - "time 0.3.11", + "ring 0.16.20", + "time 0.3.15", "yasna", ] -[[package]] -name = "redox_syscall" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" -dependencies = [ - "bitflags 1.2.1", -] - [[package]] name = "regex" version = "1.10.2" @@ -1358,27 +1277,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "ring" +version = "0.16.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", "winapi", ] [[package]] name = "ring" -version = "0.16.20" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" dependencies = [ "cc", + "getrandom", "libc", - "once_cell", - "spin", - "untrusted", - "web-sys", - "winapi", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.48.0", ] [[package]] @@ -1389,43 +1313,53 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustix" -version = "0.38.21" +version = "0.38.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" dependencies = [ "bitflags 2.4.1", "errno", "libc", "linux-raw-sys", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "rustls" -version = "0.20.8" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring", + "ring 0.17.7", + "rustls-webpki", "sct", - "webpki", ] [[package]] name = "rustls-pemfile" -version = "0.2.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64", + "base64 0.21.6", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.7", + "untrusted 0.9.0", ] [[package]] name = "ryu" -version = "1.0.3" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "safemem" @@ -1454,9 +1388,9 @@ dependencies = [ [[package]] name = "sass-sys" -version = "0.4.18" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36fdf4ec7f28949c660cca573d7bdfda683cf7eef2b59670e6650607bc3108e9" +checksum = "933bca23b402377f0ab71e79732a826deffc748013746ac3314f6abc7f9fc51c" dependencies = [ "cc", "libc", @@ -1466,24 +1400,18 @@ dependencies = [ [[package]] name = "scoped-tls" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" - -[[package]] -name = "scopeguard" -version = "1.2.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "sct" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring", - "untrusted", + "ring 0.17.7", + "untrusted 0.9.0", ] [[package]] @@ -1503,7 +1431,7 @@ checksum = "f630a6370fd8e457873b4bd2ffdae75408bc291ba72be773772a4c2a065d9ae8" dependencies = [ "proc-macro2", "quote", - "syn 1.0.98", + "syn 1.0.109", ] [[package]] @@ -1512,7 +1440,7 @@ version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c" dependencies = [ - "itoa 0.4.5", + "itoa 0.4.8", "ryu", "serde", ] @@ -1524,7 +1452,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.2", + "itoa 1.0.10", "ryu", "serde", ] @@ -1551,26 +1479,25 @@ dependencies = [ ] [[package]] -name = "sha-1" -version = "0.8.2" +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug", + "cfg-if", + "cpufeatures", + "digest", ] [[package]] -name = "sha-1" -version = "0.10.0" +name = "sha2" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.3", + "digest", ] [[package]] @@ -1584,24 +1511,24 @@ dependencies = [ [[package]] name = "shell-words" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fa3938c99da4914afedd13bf3d79bcb6c277d1b2c398d23257a304d9e1b074" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] [[package]] name = "slab" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] @@ -1626,12 +1553,28 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "spin" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + [[package]] name = "strsim" version = "0.8.0" @@ -1650,7 +1593,7 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" dependencies = [ - "clap 2.33.0", + "clap 2.34.0", "lazy_static", "structopt-derive", ] @@ -1665,14 +1608,14 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.98", + "syn 1.0.109", ] [[package]] name = "syn" -version = "1.0.98" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -1697,7 +1640,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" dependencies = [ "bincode", - "bitflags 1.2.1", + "bitflags 1.3.2", "fancy-regex", "flate2", "fnv", @@ -1712,25 +1655,11 @@ dependencies = [ "yaml-rust", ] -[[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" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] @@ -1756,22 +1685,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", - "syn 1.0.98", + "syn 2.0.48", ] [[package]] @@ -1786,21 +1715,22 @@ dependencies = [ [[package]] name = "time" -version = "0.1.43" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" dependencies = [ "libc", + "wasi 0.10.0+wasi-snapshot-preview1", "winapi", ] [[package]] name = "time" -version = "0.3.11" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217" +checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" dependencies = [ - "itoa 1.0.2", + "itoa 1.0.10", "libc", "num_threads", ] @@ -1816,9 +1746,9 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" @@ -1833,38 +1763,37 @@ dependencies = [ "num_cpus", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.4.10", "tokio-macros", "winapi", ] [[package]] name = "tokio-macros" -version = "1.8.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", - "syn 1.0.98", + "syn 1.0.109", ] [[package]] name = "tokio-rustls" -version = "0.23.4" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls", "tokio", - "webpki", ] [[package]] name = "tokio-stream" -version = "0.1.9" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", "pin-project-lite", @@ -1873,9 +1802,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.17.2" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ "futures-util", "log", @@ -1905,11 +1834,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.35" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if", "log", "pin-project-lite", "tracing-attributes", @@ -1918,20 +1846,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.22" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 1.0.98", + "syn 2.0.48", ] [[package]] name = "tracing-core" -version = "0.1.28" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -1949,9 +1877,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.15" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "sharded-slab", "thread_local", @@ -1960,38 +1888,29 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.17.3" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ - "base64", "byteorder", "bytes", + "data-encoding", "http", "httparse", "log", "rand", - "sha-1 0.10.0", + "sha1", "thiserror", "url", "utf-8", ] -[[package]] -name = "twoway" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1" -dependencies = [ - "memchr", -] - [[package]] name = "typed-arena" version = "2.0.2" @@ -2000,57 +1919,57 @@ checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" [[package]] name = "typenum" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "unicase" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" dependencies = [ "version_check", ] [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" [[package]] name = "unicode-ident" -version = "1.0.1" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.9.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" -version = "0.1.7" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode_categories" @@ -2064,15 +1983,20 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" -version = "2.2.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", ] @@ -2096,9 +2020,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "vec_map" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version_check" @@ -2108,30 +2032,28 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", - "winapi", "winapi-util", ] [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] [[package]] name = "warp" -version = "0.3.3" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7b8be92646fc3d18b06147664ebc5f48d222686cb11a8755e561a735aacc6d" +checksum = "c1e92e22e03ff1230c03a1a8ee37d2f89cd489e2e541b7550d6afad96faed169" dependencies = [ "bytes", "futures-channel", @@ -2142,7 +2064,7 @@ dependencies = [ "log", "mime", "mime_guess", - "multipart", + "multer", "percent-encoding", "pin-project", "rustls-pemfile", @@ -2176,6 +2098,12 @@ dependencies = [ "warp", ] +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2184,9 +2112,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.81" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2194,24 +2122,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.81" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", - "lazy_static", "log", + "once_cell", "proc-macro2", "quote", - "syn 1.0.98", + "syn 2.0.48", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.81" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2219,43 +2147,33 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.81" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 1.0.98", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.81" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "web-sys" -version = "0.3.58" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90" +checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" dependencies = [ "js-sys", "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "winapi" version = "0.3.9" @@ -2274,9 +2192,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -2421,15 +2339,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "xdg" -version = "2.2.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" - -[[package]] -name = "xml-rs" -version = "0.8.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52839dc911083a8ef63efa4d039d1f58b5e409f923e44c80828f206f66e5541c" +checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546" [[package]] name = "yaml-rust" @@ -2442,9 +2354,9 @@ dependencies = [ [[package]] name = "yasna" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.11", + "time 0.3.15", ] From 858fc4842ef98ae13e012cc81b45b45a2164d0a1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:42:20 +0100 Subject: [PATCH 0226/1024] Update actions/deploy-pages action to v4 (#1199) * Update actions/deploy-pages action to v4 * Update actions/upload-pages-artifact action to v3 --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Tobias Bieniek --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 50ecea848..6f4bc9271 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,7 +17,7 @@ jobs: - run: cp CNAME ./site/ - run: touch site/.nojekyll - - uses: actions/upload-pages-artifact@66b63f4a7de003f4f00cc8e9af4b83b8f2abdb96 # v1.0.9 + - uses: actions/upload-pages-artifact@0252fc4ba7626f0298f0cf00902a25c6afc77fa8 # v3.0.0 with: path: site @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest steps: - id: deployment - uses: actions/deploy-pages@ee48c7b82e077d7b8ef30b50a719e6a792a50c9a # v2.0.2 + uses: actions/deploy-pages@7a9bd943aa5e5175aeb8502edcc6c1c02d398e10 # v4.0.2 environment: name: github-pages From eb433e3aaf4b36ff2a7ecc60f4e21466a535be7d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:48:31 +0100 Subject: [PATCH 0227/1024] Update Rust crate eyre to v0.6.11 (#1203) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4d1238a2f..c9c4fc053 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -484,9 +484,9 @@ dependencies = [ [[package]] name = "eyre" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" +checksum = "b6267a1fa6f59179ea4afc8e50fd8612a3cc60bc858f786ff877a4a8cb042799" dependencies = [ "indenter", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index e2d65d9c7..8735e0bfb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ path = "src/blog.rs" [dependencies] color-eyre = "=0.6.2" -eyre = "=0.6.8" +eyre = "=0.6.11" handlebars = { version = "=3.5.5", features = ["dir_source"] } lazy_static = "=1.4.0" serde = "=1.0.116" From 022b9e7daeb7f9d3e50cbfd211a8e4b4de3f7439 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:48:55 +0100 Subject: [PATCH 0228/1024] Update Rust crate tokio to v1.35.1 (#1207) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 29 +++++++++-------------------- serve/Cargo.toml | 2 +- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c9c4fc053..b43a93d52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -753,7 +753,7 @@ dependencies = [ "httpdate", "itoa 1.0.10", "pin-project-lite", - "socket2 0.5.5", + "socket2", "tokio", "tower-service", "tracing", @@ -900,7 +900,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", - "log", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.48.0", ] @@ -1543,16 +1542,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "socket2" version = "0.5.5" @@ -1752,31 +1741,31 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.18.5" +version = "1.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e050c618355082ae5a89ec63bbf897225d5ffe84c7c4e036874e4d185a5044e" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" dependencies = [ + "backtrace", "bytes", "libc", - "memchr", "mio", "num_cpus", "pin-project-lite", "signal-hook-registry", - "socket2 0.4.10", + "socket2", "tokio-macros", - "winapi", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "1.8.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.48", ] [[package]] diff --git a/serve/Cargo.toml b/serve/Cargo.toml index 431834432..8f02bb823 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -8,4 +8,4 @@ edition = "2021" [dependencies] blog = { path = ".." } warpy = "=0.2.1" -tokio = "=1.18.5" +tokio = "=1.35.1" From 3132addbc9f28a40b9e542f122fbdfff586402d1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:49:05 +0100 Subject: [PATCH 0229/1024] Update serde monorepo to v1.0.195 (#1205) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 10 +++++----- Cargo.toml | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b43a93d52..7e7dcca65 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1415,22 +1415,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.116" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5" +checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.116" +version = "1.0.195" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f630a6370fd8e457873b4bd2ffdae75408bc291ba72be773772a4c2a065d9ae8" +checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.48", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 8735e0bfb..01cf062e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,8 +13,8 @@ color-eyre = "=0.6.2" eyre = "=0.6.11" handlebars = { version = "=3.5.5", features = ["dir_source"] } lazy_static = "=1.4.0" -serde = "=1.0.116" -serde_derive = "=1.0.116" +serde = "=1.0.195" +serde_derive = "=1.0.195" serde_yaml = "=0.8.13" serde_json = "=1.0.57" comrak = "=0.17.1" From 8a30d5b33a1a2614c5eddc626f33e54aa2fa57cc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 13:51:03 +0000 Subject: [PATCH 0230/1024] Update Rust crate handlebars to v5 --- Cargo.lock | 12 +++--------- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7e7dcca65..823cee261 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -617,16 +617,16 @@ dependencies = [ [[package]] name = "handlebars" -version = "3.5.5" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3" +checksum = "94eae21d01d20dabef65d8eda734d83df6e2dea8166788804be9bd6bc92448fa" dependencies = [ "log", "pest", "pest_derive", - "quick-error", "serde", "serde_json", + "thiserror", "walkdir", ] @@ -1154,12 +1154,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - [[package]] name = "quick-xml" version = "0.30.0" diff --git a/Cargo.toml b/Cargo.toml index 01cf062e7..ef1db5b5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ path = "src/blog.rs" [dependencies] color-eyre = "=0.6.2" eyre = "=0.6.11" -handlebars = { version = "=3.5.5", features = ["dir_source"] } +handlebars = { version = "=5.0.0", features = ["dir_source"] } lazy_static = "=1.4.0" serde = "=1.0.195" serde_derive = "=1.0.195" From 1e9ffa52ddab8e1806bce30f04cc9359f6da2592 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 11 Jan 2024 15:03:21 +0100 Subject: [PATCH 0231/1024] handlebars: Inline `parent` subexpressions These zero-arity subexpressions are causing problems with Handlebars v4. Since we don't seem to use different values for `parent` anywhere we might as well inline them and use the `layout` partial directly. --- src/lib.rs | 2 -- templates/index.hbs | 2 +- templates/post.hbs | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 004184896..c59f366c1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -149,7 +149,6 @@ impl<'a> Generator<'a> { let data = json!({ "title": blog.index_title(), - "parent": "layout", "blog": blog, "other_blogs": other_blogs, "root": blog.path_back_to_root(), @@ -173,7 +172,6 @@ impl<'a> Generator<'a> { let data = json!({ "title": format!("{} | {}", post.title, blog.title()), - "parent": "layout", "blog": blog, "post": post, "root": blog.path_back_to_root().join("../../../"), diff --git a/templates/index.hbs b/templates/index.hbs index 3ebc8c39b..5dfb09b0b 100644 --- a/templates/index.hbs +++ b/templates/index.hbs @@ -36,4 +36,4 @@
    {{/inline}} -{{~> (parent)~}} +{{~> layout~}} diff --git a/templates/post.hbs b/templates/post.hbs index 06468313f..f7b00f24f 100644 --- a/templates/post.hbs +++ b/templates/post.hbs @@ -16,4 +16,4 @@
    {{/inline}} -{{~> (parent)~}} +{{~> layout~}} From ab91cfb944b5b9cff8b5e48cb54099bf08c67c1a Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 11 Jan 2024 15:03:40 +0100 Subject: [PATCH 0232/1024] handlebars: Adjust to `register_templates_directory()` API changes --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index c59f366c1..3736fcd6b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -54,7 +54,7 @@ impl<'a> Generator<'a> { ) -> eyre::Result { let mut handlebars = Handlebars::new(); handlebars.set_strict_mode(true); - handlebars.register_templates_directory(".hbs", "templates")?; + handlebars.register_templates_directory("templates", Default::default())?; handlebars.register_helper("month_name", Box::new(hb_month_name_helper)); Ok(Generator { From 31b8f92404de82c91d0ff7a3e30ca09a908daf71 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 15:04:01 +0100 Subject: [PATCH 0233/1024] Update Rust crate serde_json to v1.0.111 (#1204) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 20 +++++++------------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7e7dcca65..58ac34b4c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -704,7 +704,7 @@ checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" dependencies = [ "bytes", "fnv", - "itoa 1.0.10", + "itoa", ] [[package]] @@ -751,7 +751,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa 1.0.10", + "itoa", "pin-project-lite", "socket2", "tokio", @@ -796,12 +796,6 @@ dependencies = [ "hashbrown 0.14.3", ] -[[package]] -name = "itoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" - [[package]] name = "itoa" version = "1.0.10" @@ -1435,11 +1429,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.57" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c" +checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" dependencies = [ - "itoa 0.4.8", + "itoa", "ryu", "serde", ] @@ -1451,7 +1445,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.10", + "itoa", "ryu", "serde", ] @@ -1719,7 +1713,7 @@ version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" dependencies = [ - "itoa 1.0.10", + "itoa", "libc", "num_threads", ] diff --git a/Cargo.toml b/Cargo.toml index 01cf062e7..fd65b1955 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ lazy_static = "=1.4.0" serde = "=1.0.195" serde_derive = "=1.0.195" serde_yaml = "=0.8.13" -serde_json = "=1.0.57" +serde_json = "=1.0.111" comrak = "=0.17.1" rayon = "=1.8.0" regex = "=1.10.2" From 56bf41c515850970384b1c4007361326baa836c3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 15:04:19 +0100 Subject: [PATCH 0234/1024] Update Rust crate chrono to v0.4.31 (#1202) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 103 +++++++++++++++++++++++++++++++++-------------------- Cargo.toml | 2 +- 2 files changed, 66 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 58ac34b4c..838e1a800 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,6 +26,21 @@ dependencies = [ "memchr", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "ansi_term" version = "0.12.1" @@ -232,15 +247,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ - "libc", - "num-integer", + "android-tzdata", + "iana-time-zone", + "js-sys", "num-traits", - "time 0.1.45", - "winapi", + "wasm-bindgen", + "windows-targets 0.48.5", ] [[package]] @@ -351,6 +367,12 @@ dependencies = [ "xdg", ] +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + [[package]] name = "cpufeatures" version = "0.2.12" @@ -587,7 +609,7 @@ checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", ] [[package]] @@ -760,6 +782,29 @@ dependencies = [ "want", ] +[[package]] +name = "iana-time-zone" +version = "0.1.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + [[package]] name = "idna" version = "0.5.0" @@ -894,7 +939,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys 0.48.0", ] @@ -916,16 +961,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.17" @@ -1106,7 +1141,7 @@ dependencies = [ "line-wrap", "quick-xml", "serde", - "time 0.3.15", + "time", ] [[package]] @@ -1230,7 +1265,7 @@ checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", "ring 0.16.20", - "time 0.3.15", + "time", "yasna", ] @@ -1696,17 +1731,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - [[package]] name = "time" version = "0.3.15" @@ -2081,12 +2105,6 @@ dependencies = [ "warp", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -2188,6 +2206,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -2341,5 +2368,5 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.15", + "time", ] diff --git a/Cargo.toml b/Cargo.toml index fd65b1955..9221719fa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,7 +21,7 @@ comrak = "=0.17.1" rayon = "=1.8.0" regex = "=1.10.2" sass-rs = "=0.2.2" -chrono = "=0.4.19" +chrono = "=0.4.31" [workspace] members = ["serve"] From 750332374075b4565bfc7254dc581d6072ca15f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 15:09:54 +0100 Subject: [PATCH 0235/1024] Update Rust crate serde_yaml to v0.9.30 (#1194) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 23 ++++++++++++----------- Cargo.toml | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0b7085ff1..17dc89725 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -448,12 +448,6 @@ dependencies = [ "crypto-common", ] -[[package]] -name = "dtoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" - [[package]] name = "either" version = "1.9.0" @@ -1481,14 +1475,15 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.8.13" +version = "0.9.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae3e2dd40a7cdc18ca80db804b7f461a39bb721160a85c9a1fa30134bf3c02a5" +checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38" dependencies = [ - "dtoa", - "linked-hash-map", + "indexmap 2.1.0", + "itoa", + "ryu", "serde", - "yaml-rust", + "unsafe-libyaml", ] [[package]] @@ -1978,6 +1973,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" +[[package]] +name = "unsafe-libyaml" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" + [[package]] name = "untrusted" version = "0.7.1" diff --git a/Cargo.toml b/Cargo.toml index 49eb4913a..b61327a57 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ handlebars = { version = "=5.0.0", features = ["dir_source"] } lazy_static = "=1.4.0" serde = "=1.0.195" serde_derive = "=1.0.195" -serde_yaml = "=0.8.13" +serde_yaml = "=0.9.30" serde_json = "=1.0.111" comrak = "=0.17.1" rayon = "=1.8.0" From 065fa848bd254542c9b070a8bf4f4fac0c44bba0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 14:10:27 +0000 Subject: [PATCH 0236/1024] Update Rust crate comrak to v0.20.0 --- Cargo.lock | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- Cargo.toml | 2 +- 2 files changed, 76 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 17dc89725..b52d45f3d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -350,11 +350,12 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "comrak" -version = "0.17.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c5a805f31fb098b1611170028501077ceb8c9e78f5345530f4fdefae9b61119" +checksum = "9f18e72341e6cdc7489cffb76f993812a14a906db54dedb020044ccc211dcaae" dependencies = [ "clap 4.4.14", + "derive_builder", "entities", "memchr", "once_cell", @@ -426,12 +427,78 @@ dependencies = [ "typenum", ] +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core", + "quote", + "syn 1.0.109", +] + [[package]] name = "data-encoding" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + [[package]] name = "deunicode" version = "1.4.2" @@ -799,6 +866,12 @@ dependencies = [ "cc", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "0.5.0" diff --git a/Cargo.toml b/Cargo.toml index b61327a57..044dbcd5d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ serde = "=1.0.195" serde_derive = "=1.0.195" serde_yaml = "=0.9.30" serde_json = "=1.0.111" -comrak = "=0.17.1" +comrak = "=0.20.0" rayon = "=1.8.0" regex = "=1.10.2" sass-rs = "=0.2.2" From 389bd7429e00eb48149f4164a25ae4bc05da7a37 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 11 Jan 2024 15:19:40 +0100 Subject: [PATCH 0237/1024] comrak: Adjust to new options APIs --- src/posts.rs | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/posts.rs b/src/posts.rs index 1e5f459cb..d7c8b5131 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -1,5 +1,4 @@ use super::blogs::Manifest; -use comrak::{ComrakExtensionOptions, ComrakOptions, ComrakRenderOptions}; use regex::Regex; use serde_derive::{Deserialize, Serialize}; use std::path::{Path, PathBuf}; @@ -68,18 +67,14 @@ impl Post { layout, } = serde_yaml::from_str(yaml)?; // next, the contents. we add + to get rid of the final "---\n\n" - let options = ComrakOptions { - render: ComrakRenderOptions { - unsafe_: true, // Allow rendering of raw HTML - ..ComrakRenderOptions::default() - }, - extension: ComrakExtensionOptions { - header_ids: Some(String::new()), - footnotes: true, - table: true, - ..ComrakExtensionOptions::default() - }, - ..ComrakOptions::default() + let options = comrak::Options { + render: comrak::RenderOptionsBuilder::default().unsafe_(true).build()?, + extension: comrak::ExtensionOptionsBuilder::default() + .header_ids(Some(String::new())) + .footnotes(true) + .table(true) + .build()?, + ..comrak::Options::default() }; // Content starts after "---\n" (we don't assume an extra newline) From 37c08a62226512c0a5acdee7b965d2f85aa29216 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 15:20:08 +0100 Subject: [PATCH 0238/1024] Update Rust crate warpy to v0.3.38 (#1195) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 226 +++++++++++++++++++++++++++++++++-------------- serve/Cargo.toml | 2 +- 2 files changed, 162 insertions(+), 66 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 17dc89725..85c9c09fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -130,12 +130,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.6" @@ -245,6 +239,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "checked_int_cast" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" + [[package]] name = "chrono" version = "0.4.31" @@ -416,6 +416,31 @@ version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio", + "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + [[package]] name = "crypto-common" version = "0.1.6" @@ -471,12 +496,12 @@ checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca" [[package]] name = "env_logger" -version = "0.8.4" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" dependencies = [ - "atty", "humantime", + "is-terminal", "log", "regex", "termcolor", @@ -664,7 +689,7 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ - "base64 0.21.6", + "base64", "bytes", "headers-core", "http", @@ -835,6 +860,17 @@ dependencies = [ "hashbrown 0.14.3", ] +[[package]] +name = "is-terminal" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" +dependencies = [ + "hermit-abi 0.3.3", + "rustix", + "windows-sys 0.52.0", +] + [[package]] name = "itoa" version = "1.0.10" @@ -889,6 +925,16 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6a104730949fbc4c78e4fa98ed769ca0faa02e9818936b61032d2d77526afa9" +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + [[package]] name = "log" version = "0.4.20" @@ -933,6 +979,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" dependencies = [ "libc", + "log", "wasi", "windows-sys 0.48.0", ] @@ -951,7 +998,7 @@ dependencies = [ "log", "memchr", "mime", - "spin 0.9.8", + "spin", "version_check", ] @@ -1026,13 +1073,37 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + [[package]] name = "pem" -version = "1.1.1" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" dependencies = [ - "base64 0.13.1", + "base64", + "serde", ] [[package]] @@ -1130,7 +1201,7 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a4a0cfc5fb21a09dc6af4bf834cf10d4a32fccd9e2ea468c4b1751a097487aa" dependencies = [ - "base64 0.21.6", + "base64", "indexmap 1.9.3", "line-wrap", "quick-xml", @@ -1177,6 +1248,25 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "qr2term" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c2a1e77b5cd714b04247ad912b7c8fe9a1fe1d58425048249def91bcf690e4c" +dependencies = [ + "crossterm", + "qrcode", +] + +[[package]] +name = "qrcode" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d2f1455f3630c6e5107b4f2b94e74d76dea80736de0981fd27644216cff57f" +dependencies = [ + "checked_int_cast", +] + [[package]] name = "quick-xml" version = "0.30.0" @@ -1247,16 +1337,25 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.9.3" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +checksum = "5d918c80c5a4c7560db726763020bd16db179e4d5b828078842274a443addb5d" dependencies = [ "pem", - "ring 0.16.20", + "ring", "time", "yasna", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "regex" version = "1.10.2" @@ -1292,21 +1391,6 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" -[[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 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - [[package]] name = "ring" version = "0.17.7" @@ -1316,8 +1400,8 @@ dependencies = [ "cc", "getrandom", "libc", - "spin 0.9.8", - "untrusted 0.9.0", + "spin", + "untrusted", "windows-sys 0.48.0", ] @@ -1347,7 +1431,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring 0.17.7", + "ring", "rustls-webpki", "sct", ] @@ -1358,7 +1442,7 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.6", + "base64", ] [[package]] @@ -1367,8 +1451,8 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.7", - "untrusted 0.9.0", + "ring", + "untrusted", ] [[package]] @@ -1420,14 +1504,20 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "sct" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.7", - "untrusted 0.9.0", + "ring", + "untrusted", ] [[package]] @@ -1532,6 +1622,27 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + [[package]] name = "signal-hook-registry" version = "1.4.1" @@ -1560,6 +1671,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + [[package]] name = "socket2" version = "0.5.5" @@ -1570,12 +1687,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -1979,12 +2090,6 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -2085,15 +2190,16 @@ dependencies = [ [[package]] name = "warpy" -version = "0.2.1" +version = "0.3.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e97f01bec220033f01ca88fc756650e00d774731162dd6f6597e5f23c54bcbf" +checksum = "04f6cc9ff8e0f61390b907ca8c6217a8d2b94d566eb30b675cd1552423217ee6" dependencies = [ "build_html", "chrono", "env_logger", "local_ipaddress", "log", + "qr2term", "rcgen", "structopt", "tokio", @@ -2160,16 +2266,6 @@ version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" -[[package]] -name = "web-sys" -version = "0.3.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c24a44ec86bb68fbecd1b3efed7e85ea5621b39b35ef2766b66cd984f8010f" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "winapi" version = "0.3.9" diff --git a/serve/Cargo.toml b/serve/Cargo.toml index 8f02bb823..0bbe30b86 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" [dependencies] blog = { path = ".." } -warpy = "=0.2.1" +warpy = "=0.3.38" tokio = "=1.35.1" From 4801274e7e4e3492c0e2cbd4a54ad459bda27758 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 11 Jan 2024 16:08:26 +0100 Subject: [PATCH 0239/1024] clippy: Use `&Path` instead of `&PathBuf` --- src/blogs.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/blogs.rs b/src/blogs.rs index b76f70454..23bae990b 100644 --- a/src/blogs.rs +++ b/src/blogs.rs @@ -154,7 +154,7 @@ fn load_recursive( Ok(()) } -fn add_postfix_slash(path: &PathBuf, serializer: S) -> Result +fn add_postfix_slash(path: &Path, serializer: S) -> Result where S: serde::Serializer, { From 7d04cca9f7f6723a2389b9d4cc8cc4d743cfbaa7 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 11 Jan 2024 16:08:46 +0100 Subject: [PATCH 0240/1024] chrono: Address deprecation warnings --- src/posts.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/posts.rs b/src/posts.rs index d7c8b5131..c8951c20c 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -158,9 +158,7 @@ impl Post { } fn build_post_time(year: i32, month: u32, day: u32, seconds: u32) -> String { - chrono::DateTime::::from_utc( - chrono::NaiveDate::from_ymd(year, month, day).and_hms(0, 0, seconds), - chrono::Utc, - ) - .to_rfc3339() + let date = chrono::NaiveDate::from_ymd_opt(year, month, day).unwrap(); + let date_time = date.and_hms_opt(0, 0, seconds).unwrap(); + chrono::DateTime::::from_naive_utc_and_offset(date_time, chrono::Utc).to_rfc3339() } From c3701ea4e59429e2f61de48a00ca1448f129ee81 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 11 Jan 2024 16:15:16 +0100 Subject: [PATCH 0241/1024] Replace `.expect()` calls with `eyre::WrapErr` usage --- src/lib.rs | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 3736fcd6b..9401b0902 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,6 +12,7 @@ use std::convert::AsRef; use std::fs::{self, File}; use std::io::{self, Write}; use std::path::{Path, PathBuf}; +use eyre::{eyre, WrapErr}; use rayon::prelude::*; struct Generator<'a> { @@ -87,33 +88,38 @@ impl<'a> Generator<'a> { for blog in &self.blogs { self.render_blog(blog)?; } - self.compile_sass("app"); - self.compile_sass("fonts"); - self.concat_vendor_css(vec!["skeleton", "tachyons"]); + self.compile_sass("app")?; + self.compile_sass("fonts")?; + self.concat_vendor_css(vec!["skeleton", "tachyons"])?; self.copy_static_files()?; Ok(()) } - fn compile_sass(&self, filename: &str) { + fn compile_sass(&self, filename: &str) -> eyre::Result<()> { let scss_file = format!("./src/styles/{}.scss", filename); let css_file = format!("./static/styles/{}.css", filename); let css = compile_file(&scss_file, Options::default()) - .expect(&format!("couldn't compile sass: {}", &scss_file)); + .map_err(|error| eyre!(error)) + .wrap_err_with(|| format!("couldn't compile sass: {}", &scss_file))?; let mut file = - File::create(&css_file).expect(&format!("couldn't make css file: {}", &css_file)); + File::create(&css_file).wrap_err_with(|| format!("couldn't make css file: {}", &css_file))?; file.write_all(&css.into_bytes()) - .expect(&format!("couldn't write css file: {}", &css_file)); + .wrap_err_with(|| format!("couldn't write css file: {}", &css_file))?; + + Ok(()) } - fn concat_vendor_css(&self, files: Vec<&str>) { + fn concat_vendor_css(&self, files: Vec<&str>)-> eyre::Result<()> { let mut concatted = String::new(); for filestem in files { let vendor_path = format!("./static/styles/{}.css", filestem); - let contents = fs::read_to_string(vendor_path).expect("couldn't read vendor css"); + let contents = fs::read_to_string(vendor_path).wrap_err("couldn't read vendor css")?; concatted.push_str(&contents); } - fs::write("./static/styles/vendor.css", &concatted).expect("couldn't write vendor css"); + fs::write("./static/styles/vendor.css", &concatted).wrap_err("couldn't write vendor css")?; + + Ok(()) } fn render_blog(&self, blog: &Blog) -> eyre::Result<()> { From 0a112c916bec7eabc2523eff4fa92d306341c0e2 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 11 Jan 2024 16:09:34 +0100 Subject: [PATCH 0242/1024] clippy: Use char instead of single-character string for `splitn()` separator --- src/posts.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/posts.rs b/src/posts.rs index d7c8b5131..55b8383d2 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -40,7 +40,7 @@ impl Post { let filename = path.file_name().unwrap().to_str().unwrap(); // we need to get the metadata out of the url - let mut split = filename.splitn(4, "-"); + let mut split = filename.splitn(4, '-'); // we do some unwraps because these need to be valid let year = split.next().unwrap().parse::().unwrap(); From a771e32701089f5f31725d350d9dd0cbf5bc0559 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 11 Jan 2024 16:15:47 +0100 Subject: [PATCH 0243/1024] clippy: Use `to_vec()` fn --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 3736fcd6b..9b9f5489f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -195,7 +195,7 @@ impl<'a> Generator<'a> { } fn render_releases_feed(&self, blog: &Blog) -> eyre::Result<()> { - let posts = blog.posts().iter().cloned().collect::>(); + let posts = blog.posts().to_vec(); let is_released: Vec<&Post> = posts.iter().filter(|post| post.release).collect(); let releases: Vec = is_released .iter() From 5bcf931656c0b1dbb1dacbd51abd098be50e30f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 12 Jan 2024 11:42:28 +0100 Subject: [PATCH 0244/1024] Update actions/deploy-pages action to v4.0.3 (#1211) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6f4bc9271..7522c5250 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest steps: - id: deployment - uses: actions/deploy-pages@7a9bd943aa5e5175aeb8502edcc6c1c02d398e10 # v4.0.2 + uses: actions/deploy-pages@87c3283f01cd6fe19a0ab93a23b2f6fcba5a8e42 # v4.0.3 environment: name: github-pages From e1da2485a39efc4e4694c851b01f5b8105fc9d80 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 10:28:54 +0100 Subject: [PATCH 0245/1024] Lock file maintenance (#1213) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 148 ++++++++++++++++++++++++++--------------------------- 1 file changed, 72 insertions(+), 76 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d4d40b647..6f28571bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.5" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba" dependencies = [ "anstyle", "anstyle-parse", @@ -132,9 +132,9 @@ dependencies = [ [[package]] name = "base64" -version = "0.21.6" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79fed4cdb43e993fcdadc7e58a09fd0e3e649c4436fa11da71c9f1f3ee7feb9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "bincode" @@ -276,9 +276,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.14" +version = "4.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e92c5c1a78c62968ec57dbc2440366a2d6e5a23faf829970ff1585dc6b18e2" +checksum = "58e54881c004cec7895b0068a0a954cd5d62da01aef83fa35b1e594497bf5445" dependencies = [ "clap_builder", "clap_derive", @@ -286,9 +286,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.14" +version = "4.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4323769dc8a61e2c39ad7dc26f6f2800524691a44d74fe3d1071a5c24db6370" +checksum = "59cb82d7f531603d2fd1f507441cdd35184fa81beff7bd489570de7f773460bb" dependencies = [ "anstream", "anstyle", @@ -354,7 +354,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f18e72341e6cdc7489cffb76f993812a14a906db54dedb020044ccc211dcaae" dependencies = [ - "clap 4.4.14", + "clap 4.4.16", "derive_builder", "entities", "memchr", @@ -493,6 +493,15 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + [[package]] name = "derive_builder" version = "0.12.0" @@ -716,7 +725,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.1.0", + "indexmap", "slab", "tokio", "tokio-util", @@ -738,12 +747,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - [[package]] name = "hashbrown" version = "0.14.3" @@ -913,16 +916,6 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - [[package]] name = "indexmap" version = "2.1.0" @@ -930,7 +923,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown", ] [[package]] @@ -952,9 +945,9 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" dependencies = [ "wasm-bindgen", ] @@ -1094,15 +1087,6 @@ dependencies = [ "libc", ] -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - [[package]] name = "object" version = "0.32.2" @@ -1270,18 +1254,24 @@ checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" [[package]] name = "plist" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a4a0cfc5fb21a09dc6af4bf834cf10d4a32fccd9e2ea468c4b1751a097487aa" +checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" dependencies = [ "base64", - "indexmap 1.9.3", + "indexmap", "line-wrap", "quick-xml", "serde", "time", ] +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -1342,9 +1332,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" dependencies = [ "memchr", ] @@ -1486,9 +1476,9 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustix" -version = "0.38.28" +version = "0.38.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" dependencies = [ "bitflags 2.4.1", "errno", @@ -1642,7 +1632,7 @@ version = "0.9.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38" dependencies = [ - "indexmap 2.1.0", + "indexmap", "itoa", "ryu", "serde", @@ -1746,9 +1736,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e" [[package]] name = "socket2" @@ -1906,13 +1896,31 @@ dependencies = [ [[package]] name = "time" -version = "0.3.15" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d634a985c4d4238ec39cacaed2e7ae552fbd3c476b552c1deac3021b7d7eaf0c" +checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" dependencies = [ + "deranged", "itoa", - "libc", - "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +dependencies = [ + "time-core", ] [[package]] @@ -1994,9 +2002,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.2" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ "bytes", "futures-core", @@ -2020,21 +2028,9 @@ checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", "pin-project-lite", - "tracing-attributes", "tracing-core", ] -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - [[package]] name = "tracing-core" version = "0.1.32" @@ -2287,9 +2283,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2297,9 +2293,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" dependencies = [ "bumpalo", "log", @@ -2312,9 +2308,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2322,9 +2318,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ "proc-macro2", "quote", @@ -2335,9 +2331,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" [[package]] name = "winapi" From 12bc6d54e78dbfab1f9f2b8355a012d871d06313 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 10:29:14 +0100 Subject: [PATCH 0246/1024] Update Swatinem/rust-cache action to v2.7.3 (#1212) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7522c5250..0f1ca60bf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 - - uses: Swatinem/rust-cache@a22603398250b864f7190077025cf752307154dc # v2.7.2 + - uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3 - run: cargo run - run: cp CNAME ./site/ From b8d60e32d19099377c5431ab67f6ad2bb1d39184 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 18 Jan 2024 11:32:59 +0100 Subject: [PATCH 0247/1024] Update Rust crate handlebars to v5.1.0 (#1214) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6f28571bc..cbd37464e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -734,9 +734,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "5.0.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94eae21d01d20dabef65d8eda734d83df6e2dea8166788804be9bd6bc92448fa" +checksum = "ab283476b99e66691dee3f1640fea91487a8d81f50fb5ecc75538f8f8879a1e4" dependencies = [ "log", "pest", diff --git a/Cargo.toml b/Cargo.toml index 044dbcd5d..b4bec87b8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ path = "src/blog.rs" [dependencies] color-eyre = "=0.6.2" eyre = "=0.6.11" -handlebars = { version = "=5.0.0", features = ["dir_source"] } +handlebars = { version = "=5.1.0", features = ["dir_source"] } lazy_static = "=1.4.0" serde = "=1.0.195" serde_derive = "=1.0.195" From 7680abae01e688075ceda34f7ad4e26c11b5b951 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 18 Jan 2024 11:33:10 +0100 Subject: [PATCH 0248/1024] Update Rust crate rayon to v1.8.1 (#1215) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cbd37464e..621784b2f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1380,9 +1380,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" dependencies = [ "either", "rayon-core", @@ -1390,9 +1390,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", diff --git a/Cargo.toml b/Cargo.toml index b4bec87b8..1c40970c6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ serde_derive = "=1.0.195" serde_yaml = "=0.9.30" serde_json = "=1.0.111" comrak = "=0.20.0" -rayon = "=1.8.0" +rayon = "=1.8.1" regex = "=1.10.2" sass-rs = "=0.2.2" chrono = "=0.4.31" From ecc7600eef7a34c0a4267618a9f6321d6f8d6bfc Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 11 Jan 2024 16:17:07 +0100 Subject: [PATCH 0249/1024] rustfmt: Fix broken formatting --- serve/src/main.rs | 9 ++++++++- src/blog.rs | 7 +++++-- src/blogs.rs | 6 +----- src/lib.rs | 19 ++++++++++++------- src/posts.rs | 12 +++++++----- 5 files changed, 33 insertions(+), 20 deletions(-) diff --git a/serve/src/main.rs b/serve/src/main.rs index 5188bff46..5547243e6 100644 --- a/serve/src/main.rs +++ b/serve/src/main.rs @@ -6,6 +6,13 @@ async fn main() -> Result<(), Box> { let footer = format!("{} {}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")); - warpy::server::run(format!("{}/../site", env!("CARGO_MANIFEST_DIR")), [0, 0, 0, 0], footer, Some(8000), false).await?; + warpy::server::run( + format!("{}/../site", env!("CARGO_MANIFEST_DIR")), + [0, 0, 0, 0], + footer, + Some(8000), + false, + ) + .await?; Ok(()) } diff --git a/src/blog.rs b/src/blog.rs index 2ad10b925..efc8a6dc2 100644 --- a/src/blog.rs +++ b/src/blog.rs @@ -6,13 +6,16 @@ pub fn main() -> eyre::Result<()> { lib::main()?; - println!("blog has been generated; you can now serve its content by running\n\ + println!( + "blog has been generated; you can now serve its content by running\n\ {INDENT}python3 -m http.server --directory {ROOT}/site\n\ or running:\n\ {INDENT}cargo run -p serve\n\ or you can read it directly by opening a web browser on:\n\ {INDENT}file:///{ROOT}/site/index.html", - ROOT=env!("CARGO_MANIFEST_DIR"), INDENT=" "); + ROOT = env!("CARGO_MANIFEST_DIR"), + INDENT = " " + ); Ok(()) } diff --git a/src/blogs.rs b/src/blogs.rs index 23bae990b..6d78946fb 100644 --- a/src/blogs.rs +++ b/src/blogs.rs @@ -127,11 +127,7 @@ pub(crate) fn load(base: &Path) -> eyre::Result> { Ok(blogs) } -fn load_recursive( - base: &Path, - current: &Path, - blogs: &mut Vec, -) -> eyre::Result<()> { +fn load_recursive(base: &Path, current: &Path, blogs: &mut Vec) -> eyre::Result<()> { for entry in std::fs::read_dir(current)? { let path = entry?.path(); let file_type = path.metadata()?.file_type(); diff --git a/src/lib.rs b/src/lib.rs index cb6b86163..b0179198f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,7 +4,9 @@ mod posts; use self::blogs::Blog; use self::posts::Post; use chrono::Timelike; +use eyre::{eyre, WrapErr}; use handlebars::{handlebars_helper, Handlebars}; +use rayon::prelude::*; use sass_rs::{compile_file, Options}; use serde_derive::Serialize; use serde_json::json; @@ -12,8 +14,6 @@ use std::convert::AsRef; use std::fs::{self, File}; use std::io::{self, Write}; use std::path::{Path, PathBuf}; -use eyre::{eyre, WrapErr}; -use rayon::prelude::*; struct Generator<'a> { handlebars: Handlebars<'a>, @@ -102,22 +102,23 @@ impl<'a> Generator<'a> { let css = compile_file(&scss_file, Options::default()) .map_err(|error| eyre!(error)) .wrap_err_with(|| format!("couldn't compile sass: {}", &scss_file))?; - let mut file = - File::create(&css_file).wrap_err_with(|| format!("couldn't make css file: {}", &css_file))?; + let mut file = File::create(&css_file) + .wrap_err_with(|| format!("couldn't make css file: {}", &css_file))?; file.write_all(&css.into_bytes()) .wrap_err_with(|| format!("couldn't write css file: {}", &css_file))?; Ok(()) } - fn concat_vendor_css(&self, files: Vec<&str>)-> eyre::Result<()> { + fn concat_vendor_css(&self, files: Vec<&str>) -> eyre::Result<()> { let mut concatted = String::new(); for filestem in files { let vendor_path = format!("./static/styles/{}.css", filestem); let contents = fs::read_to_string(vendor_path).wrap_err("couldn't read vendor css")?; concatted.push_str(&contents); } - fs::write("./static/styles/vendor.css", &concatted).wrap_err("couldn't write vendor css")?; + fs::write("./static/styles/vendor.css", &concatted) + .wrap_err("couldn't write vendor css")?; Ok(()) } @@ -132,7 +133,11 @@ impl<'a> Generator<'a> { self.render_feed(blog)?; self.render_releases_feed(blog)?; - let paths = blog.posts().par_iter().map(|post| self.render_post(blog, post)).collect::, _>>()?; + let paths = blog + .posts() + .par_iter() + .map(|post| self.render_post(blog, post)) + .collect::, _>>()?; if let Some(path) = paths.first() { println!("└─ Latest post: {}\n", self.file_url(path)); } diff --git a/src/posts.rs b/src/posts.rs index 81de4836a..b6bb7a6f4 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -1,8 +1,8 @@ use super::blogs::Manifest; +use eyre::eyre; use regex::Regex; use serde_derive::{Deserialize, Serialize}; use std::path::{Path, PathBuf}; -use eyre::eyre; #[derive(Debug, PartialEq, Deserialize)] struct YamlHeader { @@ -50,9 +50,9 @@ impl Post { let contents = std::fs::read_to_string(path)?; if contents.len() < 5 { - return Err( - eyre!("{path:?} is empty, or too short to have valid front matter") - ); + return Err(eyre!( + "{path:?} is empty, or too short to have valid front matter" + )); } // yaml headers.... we know the first four bytes of each file are "---\n" @@ -68,7 +68,9 @@ impl Post { } = serde_yaml::from_str(yaml)?; // next, the contents. we add + to get rid of the final "---\n\n" let options = comrak::Options { - render: comrak::RenderOptionsBuilder::default().unsafe_(true).build()?, + render: comrak::RenderOptionsBuilder::default() + .unsafe_(true) + .build()?, extension: comrak::ExtensionOptionsBuilder::default() .header_ids(Some(String::new())) .footnotes(true) From b97fbf26776e04510e2caecadac317af4f764d3a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 18 Jan 2024 22:01:49 +0100 Subject: [PATCH 0250/1024] Update Rust crate handlebars to v5.1.1 (#1216) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 621784b2f..d15a90a6d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -734,9 +734,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "5.1.0" +version = "5.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab283476b99e66691dee3f1640fea91487a8d81f50fb5ecc75538f8f8879a1e4" +checksum = "c73166c591e67fb4bf9bc04011b4e35f12e89fe8d676193aa263df065955a379" dependencies = [ "log", "pest", diff --git a/Cargo.toml b/Cargo.toml index 1c40970c6..eae881f7c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ path = "src/blog.rs" [dependencies] color-eyre = "=0.6.2" eyre = "=0.6.11" -handlebars = { version = "=5.1.0", features = ["dir_source"] } +handlebars = { version = "=5.1.1", features = ["dir_source"] } lazy_static = "=1.4.0" serde = "=1.0.195" serde_derive = "=1.0.195" From 9c4e0ac6efb911c0b87f0b1cc94689a9b92154d1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 19 Jan 2024 23:31:30 +0100 Subject: [PATCH 0251/1024] Update Rust crate warpy to v0.3.39 (#1218) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- serve/Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d15a90a6d..73c5e75bd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -572,9 +572,9 @@ checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca" [[package]] name = "env_logger" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "humantime", "is-terminal", @@ -2259,9 +2259,9 @@ dependencies = [ [[package]] name = "warpy" -version = "0.3.38" +version = "0.3.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04f6cc9ff8e0f61390b907ca8c6217a8d2b94d566eb30b675cd1552423217ee6" +checksum = "ab573201281dd655ec146c90f9549e8027fb8cae157acd81533423c1e1bc652a" dependencies = [ "build_html", "chrono", diff --git a/serve/Cargo.toml b/serve/Cargo.toml index 0bbe30b86..83b90e745 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" [dependencies] blog = { path = ".." } -warpy = "=0.3.38" +warpy = "=0.3.39" tokio = "=1.35.1" From 059334de26cfba5b9ca30893f0784f09647408f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 20 Jan 2024 10:39:58 +0100 Subject: [PATCH 0252/1024] Bump h2 from 0.3.23 to 0.3.24 (#1220) Bumps [h2](https://github.com/hyperium/h2) from 0.3.23 to 0.3.24. - [Release notes](https://github.com/hyperium/h2/releases) - [Changelog](https://github.com/hyperium/h2/blob/v0.3.24/CHANGELOG.md) - [Commits](https://github.com/hyperium/h2/compare/v0.3.23...v0.3.24) --- updated-dependencies: - dependency-name: h2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 73c5e75bd..62aa65f1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -715,9 +715,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "h2" -version = "0.3.23" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b553656127a00601c8ae5590fcfdc118e4083a7924b6cf4ffc1ea4b99dc429d7" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" dependencies = [ "bytes", "fnv", From 6e27b89f9c09fa7752a2f7e16f96dbba49f0f1dd Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 19 Jan 2024 23:21:46 +0100 Subject: [PATCH 0253/1024] CI: Use pinned Rust version --- .github/workflows/main.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0f1ca60bf..76e1aa9bc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,12 +5,16 @@ on: - master pull_request: +env: + RUST_VERSION: 1.75.0 + jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - run: rustup override set ${{ env.RUST_VERSION }} - uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3 - run: cargo run From 89e9ca657803139898e859a9a277175225959b63 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Fri, 19 Jan 2024 23:27:24 +0100 Subject: [PATCH 0254/1024] renovate: Enable Rust version update PRs in CI workflow definition --- .github/renovate.json5 | 1 + .github/workflows/main.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index c3a726927..287fc9848 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -4,5 +4,6 @@ ":pinAllExceptPeerDependencies", ":maintainLockFilesWeekly", ":semanticCommitsDisabled", + "regexManagers:githubActionsVersions", ], } diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 76e1aa9bc..606290283 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,6 +6,7 @@ on: pull_request: env: + # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust RUST_VERSION: 1.75.0 jobs: From 89ca47415dfc96cd2b856d43f7c7df3c62da25fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 10:32:19 +0100 Subject: [PATCH 0255/1024] Update Rust crate warpy to v0.3.40 (#1221) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 48 +++++++++++++++++++----------------------------- serve/Cargo.toml | 2 +- 2 files changed, 20 insertions(+), 30 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62aa65f1b..1fd665f46 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.7" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd2405b3ac1faab2990b74d728624cd9fd115651fcecc7c2d8daf01376275ba" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" dependencies = [ "anstyle", "anstyle-parse", @@ -570,17 +570,27 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca" +[[package]] +name = "env_filter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +dependencies = [ + "log", + "regex", +] + [[package]] name = "env_logger" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +checksum = "9eeb342678d785662fd2514be38c459bb925f02b68dd2a3e0f21d7ef82d979dd" dependencies = [ + "anstream", + "anstyle", + "env_filter", "humantime", - "is-terminal", "log", - "regex", - "termcolor", ] [[package]] @@ -926,17 +936,6 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "is-terminal" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" -dependencies = [ - "hermit-abi 0.3.3", - "rustix", - "windows-sys 0.52.0", -] - [[package]] name = "itoa" version = "1.0.10" @@ -1836,15 +1835,6 @@ dependencies = [ "yaml-rust", ] -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "terminal_size" version = "0.3.0" @@ -2259,9 +2249,9 @@ dependencies = [ [[package]] name = "warpy" -version = "0.3.39" +version = "0.3.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab573201281dd655ec146c90f9549e8027fb8cae157acd81533423c1e1bc652a" +checksum = "2bb951cab97eb5fce0ad3169f54ac477e1707de0b6061e232fbb1651295d0dd3" dependencies = [ "build_html", "chrono", diff --git a/serve/Cargo.toml b/serve/Cargo.toml index 83b90e745..876919361 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" [dependencies] blog = { path = ".." } -warpy = "=0.3.39" +warpy = "=0.3.40" tokio = "=1.35.1" From 9d604682d743f433e0c50dc4f8d0990b64d5dc2f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 10:32:52 +0100 Subject: [PATCH 0256/1024] Update Rust crate regex to v1.10.3 (#1222) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1fd665f46..a88454098 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1420,9 +1420,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.2" +version = "1.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", @@ -1432,9 +1432,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" dependencies = [ "aho-corasick", "memchr", diff --git a/Cargo.toml b/Cargo.toml index eae881f7c..bb82c55bb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ serde_yaml = "=0.9.30" serde_json = "=1.0.111" comrak = "=0.20.0" rayon = "=1.8.1" -regex = "=1.10.2" +regex = "=1.10.3" sass-rs = "=0.2.2" chrono = "=0.4.31" From 3b581a33d01800c13923eafd4aba6055e8f286db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 10:36:39 +0100 Subject: [PATCH 0257/1024] Lock file maintenance (#1223) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a88454098..42f55af7a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -168,9 +168,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] name = "block-buffer" @@ -276,9 +276,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.16" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58e54881c004cec7895b0068a0a954cd5d62da01aef83fa35b1e594497bf5445" +checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" dependencies = [ "clap_builder", "clap_derive", @@ -286,9 +286,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.16" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cb82d7f531603d2fd1f507441cdd35184fa81beff7bd489570de7f773460bb" +checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" dependencies = [ "anstream", "anstyle", @@ -354,7 +354,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f18e72341e6cdc7489cffb76f993812a14a906db54dedb020044ccc211dcaae" dependencies = [ - "clap 4.4.16", + "clap 4.4.18", "derive_builder", "entities", "memchr", @@ -813,9 +813,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" [[package]] name = "http" @@ -980,9 +980,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "local_ipaddress" @@ -1082,7 +1082,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi 0.3.4", "libc", ] @@ -1247,9 +1247,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" [[package]] name = "plist" @@ -1303,9 +1303,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.76" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] @@ -1479,7 +1479,7 @@ version = "0.38.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "errno", "libc", "linux-raw-sys", @@ -1735,9 +1735,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.12.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2593d31f82ead8df961d8bd23a64c2ccf2eb5dd34b0a34bfb4dd54011c72009e" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "socket2" @@ -2106,9 +2106,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" From 91397ddbfccb26414b8e7eef9590a646fab5f912 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Mon, 22 Jan 2024 10:51:41 +0100 Subject: [PATCH 0258/1024] renovate: Throttle "warpy" PRs warpy is automatically releasing every merged PR as a new version, and it also automatically merges every minor or patch version update of its dependencies. This leads to a questionable and very noisy release schedule. This change configures renovatebot to only send warpy update PRs once per week to avoid the useless noise. --- .github/renovate.json5 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 287fc9848..3051d5da7 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -6,4 +6,12 @@ ":semanticCommitsDisabled", "regexManagers:githubActionsVersions", ], + packageRules: [ + { + matchPackageNames: [ + "warpy", + ], + extends: ["schedule:weekly"], + } + ] } From 0613db109b635a224824443090dbe09e5d163058 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Mon, 22 Jan 2024 11:19:59 +0100 Subject: [PATCH 0259/1024] posts/Rust-1.47: Add missing whitespace in function list --- posts/2020-10-08-Rust-1.47.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2020-10-08-Rust-1.47.md b/posts/2020-10-08-Rust-1.47.md index d0a3276d4..97fd703cd 100644 --- a/posts/2020-10-08-Rust-1.47.md +++ b/posts/2020-10-08-Rust-1.47.md @@ -191,7 +191,7 @@ Additionally, nine new APIs were stabilized this release: The following previously stable APIs have now been made `const`: - [The `new` method for all `NonZero` integers.][73858] -- [The `checked_add`,`checked_sub`,`checked_mul`,`checked_neg`, `checked_shl`, +- [The `checked_add`, `checked_sub`, `checked_mul`, `checked_neg`, `checked_shl`, `checked_shr`, `saturating_add`, `saturating_sub`, and `saturating_mul` methods for all integers.][73858] - [The `checked_abs`, `saturating_abs`, `saturating_neg`, and `signum` for all From 3403a8e401d305d858a4607eac0b7a9708eb1b5f Mon Sep 17 00:00:00 2001 From: Mihir Gadgil Date: Mon, 22 Jan 2024 18:32:57 -0500 Subject: [PATCH 0260/1024] Fix some typos --- .../2024-01-03-this-development-cycle-in-cargo-1-76.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md b/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md index caf0fc247..98db16796 100644 --- a/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md +++ b/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md @@ -25,7 +25,7 @@ The Cargo team has been working to scale our processes to allow the number of pa - We are hoping that we can improve the contributor experience with smaller packages (faster to build and test) with clearer boundaries (easier to reason about) -We've had a couple breakages affecting people over the last while that we reflected on. Examples include: +We've had a couple of breakages affecting people over the last year while we reflected on some recent regressions. Examples include: - When making future-incompatible updates to the output of `cargo metadata`, not coordinating with the third-party `cargo_metadata` API ([oli-obk/cargo_metadata#240](https://github.com/oli-obk/cargo_metadata/issues/240)) - Confusion over dependencies on `cargo-credential` causing non-working dependency trees when building these packages from the crates.io ([rust-lang/cargo#13004](https://github.com/rust-lang/cargo/pull/13004)) @@ -301,9 +301,9 @@ But not having dependencies participate would be inconsistent. Discussing the prior art of `[profile]` also led to a discussion of having more than one set of values you can inherit from. We discussed a couple of ideas, including -- Having named sets of that you inherit all-or-nothing (`inherits = "public-members"`) +- Having named sets of fields that you inherit all-or-nothing (`inherits = "public-members"`) - Having named fields that you can inherit per-field (`rust-version.workspace = "public-members"`) -- Naming other packages you can to inherit from, either whole or per field +- Naming other packages you can inherit from, either whole or per field + +- [Plugin of the cycle](#plugin-of-the-cycle) +- [Implementation](#implementation) + - [Polishing `cargo new`](#polishing-cargo-new) + - [Merging `cargo upgrade` into `cargo update`](#merging-cargo-upgrade-into-cargo-update) + - [`cargo update --precise `](#cargo-update---precise-yanked) + - [`-Zcheck-cfg`](#-zcheck-cfg) + - [User-controlled diagnostics](#user-controlled-cargo-diagnostics) + - [Strip `std`'s debuginfo when debuginfo is not requested](#strip-stds-debuginfo-when-debuginfo-is-not-requested) + - [Stabilizing `cargo metadata`'s `id` field](#stabilizing-cargo-metadatas-id-field) +- [Design discussions](#design-discussions) + - [Being-less-surprising-when-people-benchmark-debug-builds](#being-less-surprising-when-people-benchmark-debug-builds) + - [Cargo script](#cargo-script) + - [When to use packages or workspaces?](#when-to-use-packages-or-workspaces) + - [RFC #3537: Make Cargo respect minimum supported Rust version (MSRV) when selecting dependencies](#rfc-3537-make-cargo-respect-minimum-supported-rust-version-msrv-when-selecting-dependencies) + - [RFC #3516 (public/private dependencies)](#rfc-3516-publicprivate-dependencies) + - [Fallback dependencies](#fallback-dependencies) + - [Build script directives](#build-script-directives) + - [Cargo and rustup](#cargo-and-rustup) +- [Misc](#misc) +- [Focus areas without progress](#focus-areas-without-progress) + - [How you can help](#how-you-can-help) + +## Plugin of the cycle + +Cargo can't be everything to everyone, +if for no other reason than the compatibility guarantees it must uphold. +Plugins play an important part of the Cargo ecosystem and we want to celebrate them. + +Our plugin for this cycle is [cargo-watch](https://crates.io/crates/cargo-watch) which will re-run cargo commands on source changes. +For a discussion on this being merged into cargo, +see [#9339](https://github.com/rust-lang/cargo/issues/9339). + +Thanks to [LukeMathWalker](https://github.com/LukeMathWalker) for the suggestion! + +[Please submit your suggestions for the next post.](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Plugin.20of.20the.20Dev.20Cycle/near/420703211) + +## Implementation + +##### Polishing `cargo new` + +`cargo new` gained the ability to detect workspaces and automatically inherit their fields in Cargo 1.71 and update `workspace.members` in Cargo 1.75. +These were implemented separately and the field inheritance didn't take into account workspace member excludes which was addressed by +[hi-rustin](https://github.com/hi-rustin) +in [#13261](https://github.com/rust-lang/cargo/pull/13261). +[linyihai](https://github.com/linyihai) +then limited the logic for workspace inclusion to whether the discovered package already had a `[workspace]` table in +[#13391](https://github.com/rust-lang/cargo/pull/13391). +[linyihai](https://github.com/linyihai) +also added a `note:` to users if we edited `workspace.members` in +[#13411](https://github.com/rust-lang/cargo/pull/13411). + +Whenever you run `cargo new`, you get a comment giving you next steps for filing out your `Cargo.toml`: +```rust +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +``` +While this helps new Rust programmers, +this adds boilerplate that existing Rust programmers have to remove on every invocation. +In trying to keep both sets of users in mind, +we are trying this out as a `note:` instead ([#13371](https://github.com/rust-lang/cargo/pull/13371). +For myself, I felt it odd to see context for the note (created a package) after the note, +so in [#13367](https://github.com/rust-lang/cargo/pull/13367) +we switched from printing a `Created` status at the end to a `Creating` status at the beginning. + +With the previous `Created`: +```console +$ cargo new foo + Adding `foo` as member of workspace at `/home/epage/src/personal/cargo` +note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + Created binary (application) `foo` package +``` +With the new `Creating`: +```console +$ cargo new foo + Creating binary (application) `foo` package + Adding `foo` as member of workspace at `/home/epage/src/personal/cargo` +note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +``` + +##### Merging `cargo upgrade` into `cargo update` + +With `cargo add` and `cargo remove` merged into cargo, +the last major tool to merge from `cargo-edit` is `cargo upgrade`. +For now, we are focusing only on incompatible upgrades +([#12425](https://github.com/rust-lang/cargo/issues/12425)), +deferring out consideration of modifying version requirements under other circumstances +([#10498](https://github.com/rust-lang/cargo/issues/10498)). + +So far, the focus has been on polishing up `cargo update`, including +- [Replace `--package ` with a positional argument](https://github.com/rust-lang/cargo/pull/12545) +- [Clarify ` --aggressive` as ` --recursive`](https://github.com/rust-lang/cargo/pull/12544) +- [Allowing a version shorthand when `` is ambiguous](https://github.com/rust-lang/cargo/pull/12614) + +In this development-cycle, +we added highlighting of dependencies that are behind in [#13372](https://github.com/rust-lang/cargo/pull/13372), +providing a subset of [cargo-outdated](https://crates.io/crates/cargo-outdated) to all cargo users (see also [#4309](https://github.com/rust-lang/cargo/issues/4309)). + +During review, +the PR was called out for not following our +[console output style guide](https://doc.crates.io/contrib/implementation/console.html#style). +This was a case of "copying the style of existing code". +To reduce the chance of this happening in the future, +[#13410](https://github.com/rust-lang/cargo/pull/13410) +aligns more of our console output with our style guide. + +The remaining tasks are to add a `--breaking` flag and to extend `--precise ` so that version requirements get modified. + +##### `cargo update --precise ` + +[*Update from 1.76*](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#cargo-update---precise-yanked) + +Previously, the cargo team approved selecting yanked packages. +[weihanglo](https://github.com/weihanglo/) provided an implementation in [#13333](https://github.com/rust-lang/cargo/pull/13333) which was merged. +It is going through [a round of testing](https://github.com/rust-lang/cargo/issues/4225#issuecomment-1930204063) +before being stabilized. + +This is of interest for [cargo-semver-checks](https://github.com/obi1kenobi/cargo-semver-checks/issues/275). +The current solution doesn't fully solve their [need](https://github.com/rust-lang/cargo/issues/4225#issuecomment-1930353693). +We'd like need to expand this from `--precise` opting in to yanked packages to Cargo consider yanked packages but with the lowest precedence. +This opens up the door quite wide on yanked packages and +we want to further evaluate the remaining use cases after `--precise` support is merged to see if that is worth it. + +##### `-Zcheck-cfg` + +[*Update from 1.76*](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#-zcheck-cfg) + +[Urgau](https://github.com/Urgau) and I discussed some inconsistent syntax for the `rustc --check-cfg` parameter. +The syntax for defining a set of values for a `--cfg` was overloaded so that the empty set was treated as valueless. +In practice what this meant was that if you had `#[cfg(feature = "foo")]` with an empty `features` table, +you would get a warning about `features` being undefined, rather than about the value `foo` being undefined. +This was fixed in [rust-lang/rust#119473](https://github.com/rust-lang/rust/pull/119473), [rust-lang/rust#119930](https://github.com/rust-lang/rust/pull/119930), and [#13316](https://github.com/rust-lang/cargo/pull/13316). +See [Urgau's comment](https://github.com/rust-lang/rust/issues/82450#issuecomment-1898975197) for more details. + +An unfortunate false positive from this lint was with crates using `#[cfg_attr(docsrs, ...)]` to enable nightly features on [docs.rs](https://docs.rs/). +The warning for this could only be resolved by either adding a `build.rs` to define `docsrs` or to disable this feature completely with an `#![allow]`. +`rustc` maintains a hand-written list of "well known" `--cfg`s but this was done by convention, rather than officially supported. +So we decided to see if it could be +[officially supported](https://rust-lang.zulipchat.com/#narrow/stream/356853-t-docs-rs/topic/.E2.9C.94.20.60--cfg.20docsrs.60/near/417280521) +by having docs.rs pass `--cfg docsrs` to rustdoc on behalf of users. +There seemed interest, so I opened +[rust-lang/docs.rs#2389](https://github.com/rust-lang/docs.rs/issues/2389) +and Urgau closed it with [rust-lang/docs.rs#2390](https://github.com/rust-lang/docs.rs/pull/2390). +`--cfg docsrs` was then added to a +[Cargo "well known" list](https://github.com/rust-lang/cargo/pull/13383). +Cargo seemed a more appropriate home as docs.rs is generally tied into [crates.io](https://crates.io/) which is generally tied to Cargo while rustc can be used with other build systems. + + +The cargo team had a preliminary conversation on stabilizing the feature. +A concern was raised about performance, especially when there are a large number of features, like with [windows](https://docs.rs/crate/windows/latest/features). +We've asked for `-Zcheck-cfg` to be benchmarked against `windows` to verify the impact. +We are also leaning towards limiting this feature to "local" packages. +This means only workspace members and path dependencies would be checked, +leaving git and registry dependencies alone. +Already cargo and rustc have the concept of "cap lints" to hide warnings from non-local dependencies. + +A [calling for testing](https://github.com/rust-lang/rfcs/pull/3013) is up. + +##### User-controlled cargo diagnostics + +[*Update from 1.76*](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#user-controlled-cargo-diagnostics) + +As was mentioned in the 1.76 post, +the Cargo team is working on updating +[annotate-snippets](https://github.com/rust-lang/annotate-snippets-rs) +to look like rustc's messages. +The original intention was for all Rust project diagnostic renderers to use this crate for a unified look and feel. +The effort stalled out on rustc's side which came up during a +[cleanup of rustc](https://github.com/rust-lang/rust/issues/59346#issuecomment-1877780379) +where it was suggested to remove the code. +This revived the discussion again on having a unified renderer. +In the end, the decision was to let Cargo be the test bed for this effort as its use cases are simpler +as there aren't existing expectations for richer error messages. +This would help close the gap for rustc's needs. + +Speaking of being like rustc, +[Muscraft](https://github.com/Muscraft)'s +[PR was merged](https://github.com/rust-lang/annotate-snippets-rs/pull/73) +for using the same color scheme as rustc. + +The first phase of adding rustc-like messages to cargo was merged in +[#13172](https://github.com/rust-lang/cargo/pull/13172). +We got a report of a panic +(fixed in [#13375](https://github.com/rust-lang/cargo/pull/13375)) +which highlighted a poor TOML parse message so that was fixed as well +([#13376](https://github.com/rust-lang/cargo/pull/13376)). + +##### Strip `std`'s debuginfo when debuginfo is not requested + +[*Update from 1.76*](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#meta-2024-edition) + +Previously, we discussed implicitly setting `strip = "debuginfo"` when `debug=0`. +A formal [proposal](https://github.com/rust-lang/cargo/issues/4122#issuecomment-1868318860) from [Kobzol](https://github.com/Kobzol) was accepted and implemented in [#13257](https://github.com/rust-lang/cargo/pull/13257). +With this change, debug symbols for `std` would be stripped in the default `release` profile build. This is closer to what users expect for `debug=0` and also upholds our promise from [the Cargo documentation](https://doc.rust-lang.org/cargo/reference/profiles.html#debug): _no debug info at all_. +It was observed the release binaries are +[smaller by ~3-4 MiB](https://perf.rust-lang.org/compare.html?start=e004adb5561b724ac18f5b24584648ca4e42b6ad&end=9d280f70157edca19af117734c1223f5dd0dcd52&stat=size%3Alinked_artifact&tab=compile), +and on Linux the compilations are [slightly faster](https://perf.rust-lang.org/compare.html?start=e004adb5561b724ac18f5b24584648ca4e42b6ad&end=9d280f70157edca19af117734c1223f5dd0dcd52&stat=instructions%3Au&tab=compile). +However, the compilation on macOS might be a bit slower +([~1% for building cargo](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Setting.20.60strip.3Ddebuginfo.60.20by.20default.20when.20.60debug.3D0.60/near/408984829)) +as it needs to invoke the external `strip` command. +The other known issue ([#11641](https://github.com/rust-lang/cargo/issues/11641)) +is that on macOS it relies on the system's `strip`, which might fail if the `strip` command is shadowed by an incompatible `strip` binary. +We'll continue monitoring if it becomes a burden to either Rust maintainers or users. +See [Kobzol's post](https://kobzol.github.io/rust/cargo/2024/01/23/making-rust-binaries-smaller-by-default.html) for more details. + +##### Stabilizing `cargo metadata`'s `id` field + +[*Update from 1.76*](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#stabilizing-cargo-metadatas-id-field) + +The FCP completed and the [stabilization PR](https://github.com/rust-lang/cargo/pull/12914) was merged. + +Thanks to nightly testing, we found that we had overlooked that people were correlating the output from `cargo metadata` with `cargo build --message-format=json`, so we extended this stabilization to `--message-format=json` as well in [#13311](https://github.com/rust-lang/cargo/pull/13311) and added tests to make sure their output is interoperable in [#13322](https://github.com/rust-lang/cargo/pull/13322). + +## Design discussions + +##### Being less surprising when people benchmark debug builds + +A common pitfall for users new to Rust is that they benchmark their code and find its surprisingly slow when the answer is as simple as passing `--release`. +[jackh726](https://github.com/jackh726) started a +[discussion](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/cargo.20build.20default.20profile), +exploring ways to help the user avoid this pitfall (see also [#9446](https://github.com/rust-lang/cargo/issues/9446). + +The default profile, `dev`, is optimized for fast feedback that makes debugging easier (by including debug-info and activating `debug_assertions`). +The assumption being that debugging will be part of the inner development loop with only occasional releases. +The need for speed is slightly reduced with the introduction of `cargo check`. + +Users that aren't expecting this must notice and decipher `dev [unoptimized + debuginfo]` among all of their compiler output. + +Brainstorming is on going but ideas include +- Requiring `--profile` +- Tweaking the status line's text +- Adding emoji or styling to the status line +- Support per-command default profiles in config and warn when unset +- Changing the default profile for commands +- Reducing other output (somewhat discussed in [#8889](https://github.com/rust-lang/cargo/issues/8889)) + +In solving this, we'll need to carefully weigh the needs of all users, including our commitment to backwards compatibility. +Discussion is on-going. + +##### Cargo script + +[*Update from 1.76*](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#cargo-script) + +As of 1.76, there were two issues on the [syntax side](https://github.com/rust-lang/rfcs/pull/3503): +- Whether the meaning of the infostring was owned by rustc or by the tools using it +- The use of backticks made nesting cargo scripts in markdown, like in Issues, confusing + +The discussion on infostrings goes back to the purpose of this. +Rustc already has `#[attributes]` to work and doesn't need this new syntax. +If anything, the focus should be on improving attributes. +This new syntax is designed around the needs for external tools which can't easily work with attributes. +With this context in mind, it was proposed to let external tools define it. + +If we agree on that, then our stopgap of requiring an infostring is gone, +reducing the minimum syntax and making it easier to shift away from markdown code fences and avoiding the nesting problem. +In brainstorming with T-lang, +[several syntaxes were considered](https://github.com/rust-lang/cargo/issues/12207#issuecomment-1877652079). +At this time, each of those is supported in cargo for people to give them a try +([#13241](https://github.com/rust-lang/cargo/pull/13241), +[#13247](https://github.com/rust-lang/cargo/pull/13247)). + +After discussing them and evaluating user reports, including [timClicks](https://github.com/timClicks)'s [reaction video](https://www.youtube.com/watch?v=S8MLYZv_54w), +the following syntax was proposed: +```rust +#!/usr/bin/env cargo + +--- +[dependencies] +clap = { version = "4.2", features = ["derive"] } +--- + +use clap::Parser; + +#[derive(Parser, Debug)] +#[clap(version)] +struct Args { + #[clap(short, long, help = "Path to config")] + config: Option, +} + +fn main() { + let args = Args::parse(); + println!("{:?}", args); +} +``` + +The syntax RFC has been [proposed for merging](https://github.com/rust-lang/rfcs/pull/3503#issuecomment-1930765966). + +On Cargo's side, there is still the question of how to deal with profiles. + +##### When to use packages or workspaces? + + +Cargo makes it easy enough to mix binaries and a library together in a package: you just create the files. +The problem is that people quickly hit limitations with the design of `Cargo.toml`. +For example, by doing `cargo add pulldown-cmark`, you pull in a CLI parser that slows down your builds and you should add `--no-default-features`. + +Issues people have opened around this include: +- [#1982](https://github.com/rust-lang/cargo/issues/1982) +- [#1430](https://github.com/rust-lang/cargo/issues/1430) +- [#4273](https://github.com/rust-lang/cargo/issues/4273) +- [#5881](https://github.com/rust-lang/cargo/issues/5881) +- [#12848](https://github.com/rust-lang/cargo/issues/12848) +- [#12980](https://github.com/rust-lang/cargo/issues/12980) + +When working to improve one of those areas with +[RFC #3374](https://github.com/rust-lang/rfcs/pull/3374), +we found that it would cause +[more confusion on how feature unification works which is already a topic that causes confusion](https://github.com/rust-lang/rfcs/pull/3374#discussion_r1235768792). + +Are we pushing a square peg through a round hole? +As a team member put it: "There is a deadzone between 'just add a bin' and 'add a new package'". +Maybe we can look at improving the workspace side of this as well. +To that end, a thought experiment was proposed: what if we only supported one built output per package? Where would be the pain points? + +One gap is with newer users understanding how to adopt workspaces (see also [#5656](https://github.com/rust-lang/cargo/issues/5656)). +One idea proposed was a tool to convert a package to a workspace+package. +This is similar to an idea proposed to convert a cargo script to a multi-file package. +Maybe that similarity can help guide us in what this tool should look like. +This would likely best be experimented with as a third-party plugin. + +There is overhead in managing metadata in all of the package but workspace inheritance with the recent `cargo new` work has helped reduce that. + +There is still overhead in each package using multiple files and directories by default. +Supporting cargo scripts as workspace members could help with this. + +A big gap in all of this is that you can only publish a package at a time +([#1169](https://github.com/rust-lang/cargo/issues/1169)). +We call this out below as one of our "Focus areas" and have proposed it for GSoC. +Releases are more than just publishing and people likely will need to adopt tools like [cargo release](https://github.com/crate-ci/cargo-release). +We have tried to raise awareness of these tools by calling the, out in our +[publish documentation](https://doc.rust-lang.org/nightly/cargo/reference/publishing.html?highlight=smart#publishing-a-new-version-of-an-existing-crate). +[Nested packages](https://github.com/rust-lang/rfcs/pull/3452) would also reduce some of the release overhead. + +There is also the issue that sharing a package name between a binary and a library is more convenient. +For example, compare +```console +cargo add pulldown-cmark +cargo add typos +``` +with +```console +cargo install pulldown-cmark +cargo install typos-cli +``` +[RFC #3383](https://github.com/rust-lang/rfcs/pull/3383) is an attempt at improving this. + +While we didn't come to any particular conclusions, +we at least have a better understanding of the different challenges involved. + +##### RFC #3537: Make Cargo respect minimum supported Rust version (MSRV) when selecting dependencies + +[*Update from 1.76*](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#rfc-3537-make-cargo-respect-minimum-supported-rust-version-msrv-when-selecting-dependencies) + +In processing the feedback on this RFC, +the author came back with a [major update](https://github.com/rust-lang/rfcs/pull/3537). +Part of the goal is to reframe the conversations around different use cases, +and working out how we prioritize these different use cases. +While doing this re-framing, +more rough edges in the workflow were observed and addressed. + + + +This RFC calls for a change in behavior to the resolver. +We had considered a new field to control this but that makes behavior more static than is intended. +For example, we'd likely want different behavior between a local `cargo check`, certain CI jobs, and `cargo install`. +If we had this, we could tie this to the Edition. +Because we had started down this route, +`package.resolver` was overlooked. +The RFC has been updated to allow controlling the default with `package.resolver` with the default for that field changing with the next Edition. + + +In stabilizing [`Cargo.lock` v4](https://github.com/rust-lang/cargo/pull/12852), +the question came up about respecting MSRV when generating lockfiles. +When reviewing that in [#12861](https://github.com/rust-lang/cargo/pull/12861), +the question came up of whether we should *not* do this if `--ignore-rust-version` is passed in. +Today it means "ignore the MSRV incompatible error". +With the RFC, it also means "don't resolve based on MSRV". +Lockfiles would add a third meaning. +Is this too much? +When evaluating it, most people likely won't be passing `--ignore-rust-version` to build commands because they predict a dependency tree change and would instead use that more with lockfile commands like `cargo update`. +Similarly, we expect the need for `cargo build --ignore-rust-version` to diminish because the RFC calls for the error to be turned into a deny-by-default lint. +We likely could deprecate the flag on build commands, reducing this overloading. +We decided there wasn't a reason to hold up the RFC for this and that we can address this for lockfiles when the RFC is merged. + + +On the Pre-RFC, A [user pointed out](https://internals.rust-lang.org/t/pre-rfc-msrv-aware-resolver/19871/65?u=epage) +that their `cargo publish` fails when run from their MSRV toolchain. This is because Cargo only reuses your lockfile if you have a bin, causing the latest dependencies to be selected. We created [#13306](https://github.com/rust-lang/cargo/issues/13306) from this, deferring any decisions. + +##### RFC #3516 (public/private dependencies) + +[*Update from 1.76*](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#rfc-3516-publicprivate-dependencies) + + +A concern was raised on the tracking issue about +[public dependencies requiring an MSRV bump when stabilized](https://github.com/rust-lang/rust/issues/44663#issuecomment-1878029660) +which would slow down the adoption of the feature. +So far our process has been focused on requiring MSRV bumps to adopt new features as this the a safe default to ensure the users intentions are preserved. +For example, with [`different-binary-name`](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#different-binary-name), +ignoring the `filename` field, rather than erroring, would product unexpected results. +The first time I'm aware of Cargo treating an unstable `Cargo.toml` field as an unused key on stable was `package.rust-version` as it was only used for diagnostic purposes. +This was then repeated for the [`[lints]` table](https://github.com/rust-lang/rfcs/pull/3389). +We've [clarified our unstable feature docs](https://github.com/rust-lang/cargo/pull/13307) to make it easier to evaluate alternatives to requiring an MSRV bump. +For public dependencies, +we decided to go ahead and warn on stable rather than error +([#13340](https://github.com/rust-lang/cargo/pull/13340)). +While we can't change the past, some compiler issues +([rust-lang/rust#71043](https://github.com/rust-lang/rust/issues/71043), +[rust-lang/rust#119428](https://github.com/rust-lang/rust/issues/119428)) +make it unclear when this feature will be stabilized and so we might have a sufficient gap to justify this work. +We decided to support enabling the feature through both `Cargo.toml`'s `cargo-features` for those who always need it and `-Z` for those that want to build on stable. + +In reviewing [RFC #3560](https://github.com/rust-lang/rfcs/pull/3560), +there was a note about +[preferring warnings to be the same across all Editions](https://github.com/rust-lang/rfcs/pull/3560#issuecomment-1919437187). +In [RFC #3516](https://rust-lang.github.io/rfcs/3516-public-private-dependencies.html#rustc), +we erred on side of changing the level with the Edition to keep noise down. +In [discussing this on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/RFC.20.233516.20-.20RFC.3A.20Superseding.20public.2Fprivate.20dependencies/near/419166799), +we'll need to re-evaluate this decision before stabilization. + +##### Fallback dependencies + + +Optional dependencies allow a caller to opt-in to more specialized implementations, +like [winnow](https://crates.io/crates/winnow) having a feature for replacing hand implemented string searches with [memchr](https://crates.io/crates/memchr). +Sometimes you want to reuse an existing fallback implementation from a crate (see also [#1839](https://github.com/rust-lang/cargo/issues/1839)). +The example used in our discussion was `flate2` and the compression library it uses under the hood. +If two backends are enabled, `flate2` prioritizes one and the other is ignored but slowing down user builds. + +This would be solved by [mutually-exclusive global features](https://internals.rust-lang.org/t/pre-rfc-mutually-excusive-global-features/19618) but is there a smaller solution we can work with until then? + +For example, could we support `target."cfg(not(feature = "miniz_oxide"))".dependencies` (see also [#8170](https://github.com/rust-lang/cargo/issues/8170))? +We can't handle these as we are resolving features because we are building up the set of features incrementally without a place to say "this is complete, let's evaluate `not(features)`". +We could resolve features normally and then check for `not(features)` and add those in. +This falls apart because these new dependencies would not have feature resolution performed. +We would instead need to loop over running the feature resolving, +checking `not(features)`, and adding them to the set we evaluate next time. +This is complex to implement, algorithmically complex, and may run into cycles with dev-dependencies. + +Could we have a `build.rs` ask for features to be enabled? +Like above, this runs into problems with implementation and algorithmic complexity. +This also runs into issues with divergent resolutions where a later package enables a feature that changes the resolution of an earlier package that was already built. + +For when the fallback is for compatibility with old versions of Rust, what might work is to instead allow dependencies like +`target."cfg(accessible(std::io::IsTerminal))".dependencies` +([rust-lang/rust#64797](https://github.com/rust-lang/rust/issues/64797)) +or +`target."cfg(version(1.70.0))".dependencies` ([rust-lang/rust#64796](https://github.com/rust-lang/rust/issues/64796)). + +##### Build Script directives + +[*Update from 1.76*](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#misc) + +Build scripts communicate to cargo via [special commands that get printed](https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#outputs-of-the-build-script). +We found that it was difficult to add new directives because we shared a namespace with users in defining their link metadata. +We resolved this by migrating the directive prefix from `cargo:` to `cargo::` which separates our namespace from the users namespace (`cargo::metadata`) + + + +In doing this, we overlooked that [`target..`](https://doc.rust-lang.org/nightly/cargo/reference/config.html?highlight=rustc-env#targettriplelinks) +had a similar problem (see also [#12201](https://github.com/rust-lang/cargo/pull/12201#issuecomment-1868539358)). +As the new syntax was stabilized for 1.76 which was in beta, the pressing question is if we needed to revert that and do these together. +After discussion, we did not see a hard requirement for them to be in lock step though consistency is nice. +We are now tracking the config side of this in [#13211](https://github.com/rust-lang/cargo/issues/13211). + +##### Cargo and rustup + + +When [GuillaumeGomez](https://github.com/GuillaumeGomez) +was preparing their [blog post on custom linters](https://blog.guillaume-gomez.fr/articles/2024-01-18+Writing+your+own+Rust+linter), +they ran into a problem because they expected `cargo install --path ` to use the `rust-toolchain.toml` file discovered at ``, +rather than from their current directory ([#11036](https://github.com/rust-lang/cargo/issues/11036)). +Like `.cargo/config.toml`, `rust-toolchain.toml` is an "environment configuration" and doesn't respect flags like `--manifest-path`. +However, cargo makes an exception for `.cargo/config.toml` for `cargo install` (and soon cargo script). +Could we do similar for `rust-toolchain.toml`? + +Rustup is an optional toolchain manager that by its nature is versioned and distributed independently of Cargo. +We do have some special casing in Cargo for it but its more focused on error messages and performance. +We'd be breaking an abstraction if we had Cargo take on some of Rustup's role in identifying toolchain versions to use. +We'd also have to tread carefully because of there are needs for isolated toolchains, +like with Linux distributions. +Worse is that we could run into behavior mismatches when mixing old Cargo with new Rustup or new Rustup with old Cargo where Cargo does the wrong thing. + +Likely a first step is providing a warning to users that the toolchain is being ignored. + +## Misc + +- [RFC #3553](https://github.com/rust-lang/rfcs/pull/3553) was posted for SBOMs +- Like the [feature limit](https://blog.rust-lang.org/2023/10/26/broken-badges-and-23k-keywords.html), crates.io now has a [dependency limit](https://github.com/rust-lang/crates.io/pull/7916) +- [`cargo fix`](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/.E2.9C.94.20Performance.20of.20.60cargo.20fix.60) can be dramatically slower than `cargo check`. [#13243](https://github.com/rust-lang/cargo/pull/13243) speeds it up some. +- In a follow up to [RFC #3529](https://github.com/rust-lang/rfcs/pull/3529), [Internals: Integration with mono-repos via intermediate directories](https://internals.rust-lang.org/t/integration-with-mono-repos-via-intermediate-directories/20160?u=epage) was posted. + +## Focus areas without progress + +These are areas of interest for Cargo team members with no reportable progress for this development-cycle. + +Ready-to-develop: +- [Merge `cargo upgrade` into `cargo update`](https://github.com/rust-lang/cargo/issues/12425) +- [`cargo publish` for workspaces](https://github.com/rust-lang/cargo/issues/1169) +- [Auto-generate completions](https://github.com/rust-lang/cargo/issues/6645) + - See [clap-rs/clap#3166](https://github.com/clap-rs/clap/issues/3166) +- Generalize cargo's test assertion code + - [Add `CARGO_WORKSPACE_DIR`](https://github.com/rust-lang/cargo/issues/3946) + - [Inline snapshotting in snapbox](https://github.com/assert-rs/trycmd/issues/221) + - [Structured assertions in snapbox](https://github.com/assert-rs/trycmd/issues/92) + - [Find a solution for order-independent assertions between cargo and snapbox](https://github.com/assert-rs/trycmd/issues/151) +- [`cargo update --precise` with pre-release deps](https://github.com/rust-lang/cargo/issues/13290) + +Needs design and/or experimentation: +- GC +- [cargo info](https://github.com/rust-lang/cargo/issues/948) +- [Per-user artifact cache](https://github.com/rust-lang/cargo/issues/5931) +- [Dependency resolution hooks](https://github.com/rust-lang/cargo/issues/7193) +- [A way to report why crates were rebuilt](https://github.com/rust-lang/cargo/issues/2904) + +Planning: +- [Disabling of default features](https://github.com/rust-lang/cargo/issues/3126) +- [RFC #3416: `features` metadata](https://github.com/rust-lang/rfcs/pull/3416) + - [RFC #3485: descriptions](https://github.com/rust-lang/rfcs/pull/3485) (descriptions) + - [RFC #3487: visibility](https://github.com/rust-lang/rfcs/pull/3487) (visibility) + - [RFC #3486: deprecation](https://github.com/rust-lang/rfcs/pull/3486) + - [Unstable features](https://doc.rust-lang.org/cargo/reference/unstable.html#list-of-unstable-features) +- [RFC #3452: Nested packages](https://github.com/rust-lang/rfcs/pull/3452) +- [OS-native config/cache directories (ie XDG support)](https://github.com/rust-lang/cargo/issues/1734) + - [Phase 1 Pre-RFC](https://internals.rust-lang.org/t/pre-rfc-split-cargo-home/19747) + +- [RFC #3371: CARGO_TARGET_BASE_DIR](https://github.com/rust-lang/rfcs/pull/3371) +- [RFC #3243: Packages as optional namespaces](https://github.com/rust-lang/rfcs/pull/3243) +- [Pre-RFC: Global, mutually exclusive features](https://internals.rust-lang.org/t/pre-rfc-mutually-excusive-global-features/19618) + +##### How you can help + +If you have ideas for improving cargo, +we recommend first checking [our backlog](https://github.com/rust-lang/cargo/issues/) +and then exploring the idea on [Internals](https://internals.rust-lang.org/c/tools-and-infrastructure/cargo/15). + +If there is a particular issue that you are wanting resolved that wasn't discussed here, +some steps you can take to help move it along include: +- Summarizing the existing conversation (example: + [Better support for docker layer caching](https://github.com/rust-lang/cargo/issues/2644#issuecomment-1489371226), + [Change in `Cargo.lock` policy](https://github.com/rust-lang/cargo/issues/8728#issuecomment-1610265047), + [MSRV-aware resolver](https://github.com/rust-lang/cargo/issues/9930#issuecomment-1489089277) + ) +- Document prior art from other ecosystems so we can build on the work others have done and make something familiar to users, where it makes sense +- Document related problems and solutions within Cargo so we see if we are solving to the right layer of abstraction +- Building on those posts, propose a solution that takes into account the above information and cargo's compatibility requirements ([example](https://github.com/rust-lang/cargo/issues/9930#issuecomment-1489269471)) + +We are available to help mentor people for +[S-accepted issues](https://doc.crates.io/contrib/issues.html#issue-status-labels) +on +[zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo) +and you can talk to us in real-time during +[Contributor Office Hours](https://github.com/rust-lang/cargo/wiki/Office-Hours). +If you are looking to help with one of the bigger projects mentioned here and are just starting out, +[fixing some issues](https://doc.crates.io/contrib/process/index.html#working-on-issues) +will help familiarize yourself with the process and expectations, +making things go more smoothly. +If you'd like to tackle something +[without a mentor](https://doc.crates.io/contrib/issues.html#issue-status-labels), +the expectations will be higher on what you'll need to do on your own. From 4d53cd86b1d0ca7e95feede1214324d386aab4df Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 12 Feb 2024 13:52:05 -0600 Subject: [PATCH 0284/1024] fix: Clarify role of calling out cargo-watch Co-authored-by: Kevin Reid --- .../2024-02-13-this-development-cycle-in-cargo-1-77.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md b/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md index 81d47afd6..22093c178 100644 --- a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md +++ b/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md @@ -39,7 +39,7 @@ Cargo can't be everything to everyone, if for no other reason than the compatibility guarantees it must uphold. Plugins play an important part of the Cargo ecosystem and we want to celebrate them. -Our plugin for this cycle is [cargo-watch](https://crates.io/crates/cargo-watch) which will re-run cargo commands on source changes. +Our featured plugin for this cycle is [cargo-watch](https://crates.io/crates/cargo-watch), which will re-run cargo commands on source changes. For a discussion on this being merged into cargo, see [#9339](https://github.com/rust-lang/cargo/issues/9339). From 16d1300aaca69e9a084bd49df49e32f82815c8a4 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Tue, 13 Feb 2024 08:17:24 -0800 Subject: [PATCH 0285/1024] Rename to today's date --- ...-council-update.md => 2024-02-13-leadership-council-update.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2024-02-12-leadership-council-update.md => 2024-02-13-leadership-council-update.md} (100%) diff --git a/posts/inside-rust/2024-02-12-leadership-council-update.md b/posts/inside-rust/2024-02-13-leadership-council-update.md similarity index 100% rename from posts/inside-rust/2024-02-12-leadership-council-update.md rename to posts/inside-rust/2024-02-13-leadership-council-update.md From b7f8f743ecc0f5bf9e525e0b0dfb1d89a0c373b8 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 13 Feb 2024 15:13:25 -0500 Subject: [PATCH 0286/1024] Rename 2024-02-09-lang-team-colead.md to 2024-02-13-lang-team-colead.md --- ...02-09-lang-team-colead.md => 2024-02-13-lang-team-colead.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename posts/inside-rust/{2024-02-09-lang-team-colead.md => 2024-02-13-lang-team-colead.md} (95%) diff --git a/posts/inside-rust/2024-02-09-lang-team-colead.md b/posts/inside-rust/2024-02-13-lang-team-colead.md similarity index 95% rename from posts/inside-rust/2024-02-09-lang-team-colead.md rename to posts/inside-rust/2024-02-13-lang-team-colead.md index 568918086..ca9f0c0ee 100644 --- a/posts/inside-rust/2024-02-09-lang-team-colead.md +++ b/posts/inside-rust/2024-02-13-lang-team-colead.md @@ -11,4 +11,4 @@ It gives me great pleasure to announce (rather belatedly[^b]) that Tyler Mandry [1077]: https://github.com/rust-lang/team/pull/1077#issuecomment-1730655519 -[kn]: https://youtu.be/37yASSgrdGE?si=El-UCqxAQ7_kchi_&t=1360 \ No newline at end of file +[kn]: https://youtu.be/37yASSgrdGE?si=El-UCqxAQ7_kchi_&t=1360 From 180834f943bfea6d135b0d246744d4b6734ad06e Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 13 Feb 2024 16:01:08 -0500 Subject: [PATCH 0287/1024] Update posts/inside-rust/2024-02-13-lang-team-colead.md Co-authored-by: Tyler Mandry --- posts/inside-rust/2024-02-13-lang-team-colead.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-02-13-lang-team-colead.md b/posts/inside-rust/2024-02-13-lang-team-colead.md index ca9f0c0ee..65abad6ad 100644 --- a/posts/inside-rust/2024-02-13-lang-team-colead.md +++ b/posts/inside-rust/2024-02-13-lang-team-colead.md @@ -1,6 +1,6 @@ --- layout: post -title: "Tyler Mandry as Lang Team co-lead" +title: "Announcing Tyler Mandry as Lang Team co-lead" author: Niko Matsakis team: the lang design team --- From 339fbe83b1abb82169e409d58e570ba57a36a130 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 13 Feb 2024 16:01:23 -0500 Subject: [PATCH 0288/1024] Update posts/inside-rust/2024-02-13-lang-team-colead.md Co-authored-by: Tyler Mandry --- posts/inside-rust/2024-02-13-lang-team-colead.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-02-13-lang-team-colead.md b/posts/inside-rust/2024-02-13-lang-team-colead.md index 65abad6ad..41267b5f0 100644 --- a/posts/inside-rust/2024-02-13-lang-team-colead.md +++ b/posts/inside-rust/2024-02-13-lang-team-colead.md @@ -5,7 +5,9 @@ author: Niko Matsakis team: the lang design team --- -It gives me great pleasure to announce (rather belatedly[^b]) that Tyler Mandry has been chosen as the new lang-team co-lead. Tyler is a great choice for lead, as he always brings a balanced, thoughtful perspective to discussions, but is also willing to take strong positions when he believes he knows the right path forward. And he usually does. You may have seen Tyler speak at RustConf last year, where he delivered [one of the opening keynotes][kn]; Tyler also serves as the co-lead for the Async Rust Working Group, and in that capacity he has [authored a number of influential and thoughtful blog posts](https://tmandry.gitlab.io/blog/), most recently making the case for [what reliability means to async](https://tmandry.gitlab.io/blog/posts/making-async-reliable/). I know I speak for everyone on the team when I say that we are looking forward to seeing what Tyler will help bring about for Rust! +It gives me great pleasure to announce (rather belatedly[^b]) that Tyler Mandry has been chosen as the new lang-team co-lead. Tyler is a great choice for lead, as he always brings a balanced, thoughtful perspective to discussions, but is also willing to take strong positions when he believes he knows the right path forward. And he usually does. + +You may have seen Tyler speak at RustConf last year, where he delivered [one of the opening keynotes][kn]; Tyler also serves as the co-lead for the Async Rust Working Group, and in that capacity he has [authored a number of influential and thoughtful blog posts](https://tmandry.gitlab.io/blog/), most recently making the case for [what reliability means to async](https://tmandry.gitlab.io/blog/posts/making-async-reliable/). I know I speak for everyone on the team when I say that we are looking forward to seeing what Tyler will help bring about for Rust! [^b]: This announcement is way overdue, as Tyler [was chosen on Sep 21 of 2023!][1077] Sorry Tyler! Better late than never, as they say. From fa63aae000cde7ec6c373455c7208994472e1fb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Tue, 13 Feb 2024 18:53:13 +0100 Subject: [PATCH 0289/1024] Add blog post about GSoC 2024 --- ...24-02-21-Rust-participates-in-GSoC-2024.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 posts/2024-02-21-Rust-participates-in-GSoC-2024.md diff --git a/posts/2024-02-21-Rust-participates-in-GSoC-2024.md b/posts/2024-02-21-Rust-participates-in-GSoC-2024.md new file mode 100644 index 000000000..3464bdecc --- /dev/null +++ b/posts/2024-02-21-Rust-participates-in-GSoC-2024.md @@ -0,0 +1,22 @@ +--- +layout: post +title: "Rust participates in Google Summer of Code 2024" +author: Jakub Beránek, Jack Huey and Paul Lenz +--- + +We're writing this blog post to announce that the Rust Project will be participating in [Google Summer of Code (GSoC) 2024][gsoc]. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful information and links. + +Google Summer of Code (GSoC) is an annual global program organized by Google that aims to bring new contributors to the world of open-source. The program pairs organizations (such as the Rust Project) with contributors (usually students), with the goal of helping the participants make meaningful open-source contributions under the guidance of experienced mentors. + +As of today, the organizations that have been accepted into the program have been announced by Google. The GSoC applicants now have several weeks to send project proposals to organizations that appeal to them. If their project proposal is accepted, they will embark on a 12-week journey during which they will try to complete their proposed project under the guidance of an assigned mentor. + +We have prepared a [list of project ideas][gsoc repo] that can serve as inspiration for potential GSoC contributors that would like to send a project proposal to the Rust organization. However, applicants can also come up with their own project ideas. You can discuss project ideas or try to find mentors in the [#gsoc][gsoc stream] Zulip stream. We have also prepared a [proposal guide][proposal guide] that should help you with preparing your project proposals. + +If you are interested in contributing to the Rust Project, we encourage you to check out our project idea list and send us a GSoC project proposal! Of course, you are also free to discuss these projects and/or try to move them forward even if you do not intend to (or cannot) participate in GSoC. We welcome all contributors to Rust, as there is always enough work to do. + +This is the first time that the Rust Project is participating in GSoC, so we are quite excited about it. We hope that participants in the program can improve their skills, but also would love for this to bring new contributors to the Project and increase the awareness of Rust in general. We will publish another blog post later this year with more information about our participation in the program. + +[gsoc]: https://summerofcode.withgoogle.com +[gsoc repo]: https://github.com/rust-lang/google-summer-of-code +[gsoc stream]: https://rust-lang.zulipchat.com/#narrow/stream/421156-gsoc +[proposal guide]: https://github.com/rust-lang/google-summer-of-code/blob/main/proposal-guide.md From f297c729498e83428173766b212277ffa980054e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 14 Feb 2024 15:38:13 +0100 Subject: [PATCH 0290/1024] Add a note about proposal deadline --- posts/2024-02-21-Rust-participates-in-GSoC-2024.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/posts/2024-02-21-Rust-participates-in-GSoC-2024.md b/posts/2024-02-21-Rust-participates-in-GSoC-2024.md index 3464bdecc..c8270a64c 100644 --- a/posts/2024-02-21-Rust-participates-in-GSoC-2024.md +++ b/posts/2024-02-21-Rust-participates-in-GSoC-2024.md @@ -12,6 +12,8 @@ As of today, the organizations that have been accepted into the program have bee We have prepared a [list of project ideas][gsoc repo] that can serve as inspiration for potential GSoC contributors that would like to send a project proposal to the Rust organization. However, applicants can also come up with their own project ideas. You can discuss project ideas or try to find mentors in the [#gsoc][gsoc stream] Zulip stream. We have also prepared a [proposal guide][proposal guide] that should help you with preparing your project proposals. +You can start discussing the project ideas with Rust Project maintainers immediately. The project proposal application period starts on 18. 3. 2024, and ends on 2. 4. 2024 at 18:00 UTC. Take note of that deadline, as there will be no extensions! + If you are interested in contributing to the Rust Project, we encourage you to check out our project idea list and send us a GSoC project proposal! Of course, you are also free to discuss these projects and/or try to move them forward even if you do not intend to (or cannot) participate in GSoC. We welcome all contributors to Rust, as there is always enough work to do. This is the first time that the Rust Project is participating in GSoC, so we are quite excited about it. We hope that participants in the program can improve their skills, but also would love for this to bring new contributors to the Project and increase the awareness of Rust in general. We will publish another blog post later this year with more information about our participation in the program. From 39335983589819426a65afa934a9de6afd17dc9d Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Sat, 17 Feb 2024 14:12:49 -0800 Subject: [PATCH 0291/1024] Add post kicking off March Council selections --- ...02-19-leadership-council-repr-selection.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 posts/inside-rust/2024-02-19-leadership-council-repr-selection.md diff --git a/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md b/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md new file mode 100644 index 000000000..38abdc0e8 --- /dev/null +++ b/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md @@ -0,0 +1,70 @@ +--- +layout: post +title: "Leadership Council March Representative Selections" +author: Leadership Council +team: Leadership Council +--- + +The selection process for representatives on the [Leadership Council] is starting today. + +Every six months, half of the council terms end. +Since this is the first rotation since the formation of the Council in June 2023, we have chosen the following teams (and their current representatives) to establish who will start this process: + +* [Compiler] — [Eric Holk] +* [Crates.io] — [Carol Nichols] +* [Devtools] — [Eric Huss] +* [Launching Pad] — [Jonathan Pallant] + +We are aiming to have the teams confirm their choices by March 22, 2024, and for any possible new members to be ready to join the Council meetings starting March 29th. + +[Leadership Council]: https://www.rust-lang.org/governance/teams/leadership-council +[compiler]: https://www.rust-lang.org/governance/teams/compiler +[crates.io]: https://www.rust-lang.org/governance/teams/crates-io +[devtools]: https://www.rust-lang.org/governance/teams/dev-tools +[launching pad]: https://forge.rust-lang.org/governance/council.html#the-launching-pad-top-level-team +[Eric Holk]: https://github.com/eholk +[Carol Nichols]: https://github.com/carols10cents +[Eric Huss]: https://github.com/ehuss +[Jonathan Pallant]: https://github.com/jonathanpallant + +## Criteria for representatives + +Any member of the top-level team or a member of any of their subteams is eligible to be the representative. +See [candidate criteria] for a description of what makes a good representative. + +[candidate criteria]: https://forge.rust-lang.org/governance/council.html#candidate-criteria + +There is a limit of at most two people affiliated with the same company or other legal entity being on the Council [^affiliates]. +During the selection process, the Council will consider the affiliation of candidates to decide if all choices will be compatible with that constraint. +Note that the Council is currently investigating clarifications and changes to affiliation limits, but we do not expect these changes to be ready before this selection process is over. + +Representatives may serve multiple terms if the team decides to choose the same representative again. +There is a soft limit of three terms.[^limit] +It is recommended that teams rotate their representatives if possible to help avoid burnout and to spread the experience to a broader group of people. + +[^affiliates]: See [Limits on representatives from a single company/entity](https://forge.rust-lang.org/governance/council.html#limits-on-representatives-from-a-single-companyentity) + +[^limit]: See [Term limits](https://forge.rust-lang.org/governance/council.html#term-limits). + +## What do Representatives do? + +A representative provides a voice on the Council to represent the interests of their teams and contribute to the long-term success of the Rust Project. +Some examples of the activities that representatives take are: + +* Participating in Council meetings every other week. +* Responding to proposals needing a decision. +* Work on the policies and proposals concerning the Council itself. +* Communicate activities and decisions to the team and subteams, and the Project as a whole. +* Coordinate with the Foundation and the Foundation Project Directors to represent the needs of the Project to the Foundation. + +The amount of time the position takes varies depending on which initiatives the representative participates in, and how frequently decisions are brought to the Council. +In general you may expect to spend at least a few hours a week on Council tasks. + +## How should teams make their selection? + +We currently don't have a recommended process that teams should use to make their selection. +In the meantime, teams may want to consider the [consensus selection process] which some teams used during the initial selections of the Council. +Team members should consult with their team leads if they are interested in being nominated. +We hope that in the future we can formalize a recommended process. + +[consensus selection process]: https://github.com/rust-lang/rfcs/pull/3392#issuecomment-1505697944 From 217000f35c335ea0f7e91eb30bb5c8ea1fcb44a5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 18 Feb 2024 04:29:47 +0100 Subject: [PATCH 0292/1024] Update actions/upload-pages-artifact action to v3.0.1 (#1242) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 127749b8f..c41a5500c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -35,7 +35,7 @@ jobs: - run: cp CNAME ./site/ - run: touch site/.nojekyll - - uses: actions/upload-pages-artifact@0252fc4ba7626f0298f0cf00902a25c6afc77fa8 # v3.0.0 + - uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1 with: path: site From cd2a13cc7519e0c7fb998318140d71b4adaba97e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 18 Feb 2024 04:30:02 +0100 Subject: [PATCH 0293/1024] Update actions/deploy-pages action to v4.0.4 (#1241) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c41a5500c..3029b06b3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -51,7 +51,7 @@ jobs: runs-on: ubuntu-latest steps: - id: deployment - uses: actions/deploy-pages@87c3283f01cd6fe19a0ab93a23b2f6fcba5a8e42 # v4.0.3 + uses: actions/deploy-pages@decdde0ac072f6dcbe43649d82d9c635fff5b4e4 # v4.0.4 environment: name: github-pages From a5a922259e29b20ab7d9b75dddf5aebbeff7a8dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Mon, 19 Feb 2024 11:12:45 +0100 Subject: [PATCH 0294/1024] Add Blog post on 2023 Annual Rust Survey results (#1249) * Add Blog post on 2023 Annual Rust Survey results --- ...19-2023-Rust-Annual-Survey-2023-results.md | 331 ++++++++++++++++++ .../do-you-personally-use-rust-at-work.png | Bin 0 -> 22683 bytes .../do-you-personally-use-rust-at-work.svg | 1 + .../do-you-use-rust.png | Bin 0 -> 21285 bytes .../do-you-use-rust.svg | 1 + .../how-often-do-you-use-rust.png | Bin 0 -> 22318 bytes .../how-often-do-you-use-rust.svg | 1 + .../how-should-work-be-prioritized.png | Bin 0 -> 64948 bytes .../how-should-work-be-prioritized.svg | 1 + ...how-would-you-rate-your-rust-expertise.png | Bin 0 -> 28953 bytes ...how-would-you-rate-your-rust-expertise.svg | 1 + .../technology-domain-wordcloud.png | Bin 0 -> 52267 bytes .../technology-domain.png | Bin 0 -> 61145 bytes .../technology-domain.svg | 1 + ...r-biggest-worries-about-rust-wordcloud.png | Bin 0 -> 55516 bytes ...at-are-your-biggest-worries-about-rust.png | Bin 0 -> 62482 bytes ...at-are-your-biggest-worries-about-rust.svg | 1 + ...-languages-for-technical-communication.png | Bin 0 -> 25892 bytes ...-languages-for-technical-communication.svg | 1 + .../what-ide-do-you-use-wordcloud.png | Bin 0 -> 40362 bytes .../what-ide-do-you-use.png | Bin 0 -> 39465 bytes .../what-ide-do-you-use.svg | 1 + .../where-do-you-live.png | Bin 0 -> 88331 bytes .../where-do-you-live.svg | 1 + ...tures-do-you-want-stabilized-wordcloud.png | Bin 0 -> 50570 bytes .../which-features-do-you-want-stabilized.png | Bin 0 -> 56560 bytes .../which-features-do-you-want-stabilized.svg | 1 + .../which-marginalized-group.png | Bin 0 -> 47441 bytes .../which-marginalized-group.svg | 1 + .../which-os-do-you-target-wordcloud.png | Bin 0 -> 53981 bytes .../which-os-do-you-target.png | Bin 0 -> 43334 bytes .../which-os-do-you-target.svg | 1 + .../which-os-do-you-use-wordcloud.png | Bin 0 -> 52811 bytes .../which-os-do-you-use.png | Bin 0 -> 25972 bytes .../which-os-do-you-use.svg | 1 + ...do-you-remember-encountering-wordcloud.png | Bin 0 -> 49398 bytes ...-problems-do-you-remember-encountering.png | Bin 0 -> 37799 bytes ...-problems-do-you-remember-encountering.svg | 1 + ...which-statements-apply-to-rust-at-work.png | Bin 0 -> 38567 bytes ...which-statements-apply-to-rust-at-work.svg | 1 + .../why-did-you-stop-using-rust-wordcloud.png | Bin 0 -> 55547 bytes .../why-did-you-stop-using-rust.png | Bin 0 -> 42089 bytes .../why-did-you-stop-using-rust.svg | 1 + .../why-dont-you-use-rust-wordcloud.png | Bin 0 -> 54206 bytes .../why-dont-you-use-rust.png | Bin 0 -> 43640 bytes .../why-dont-you-use-rust.svg | 1 + .../why-you-use-rust-at-work.png | Bin 0 -> 48582 bytes .../why-you-use-rust-at-work.svg | 1 + .../2024-02-rust-survey-2023/charts.js | 75 ++++ static/scripts/plotly-basic-2.29.0.min.js | 8 + 50 files changed, 433 insertions(+) create mode 100644 posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md create mode 100644 static/images/2024-02-rust-survey-2023/do-you-personally-use-rust-at-work.png create mode 100644 static/images/2024-02-rust-survey-2023/do-you-personally-use-rust-at-work.svg create mode 100644 static/images/2024-02-rust-survey-2023/do-you-use-rust.png create mode 100644 static/images/2024-02-rust-survey-2023/do-you-use-rust.svg create mode 100644 static/images/2024-02-rust-survey-2023/how-often-do-you-use-rust.png create mode 100644 static/images/2024-02-rust-survey-2023/how-often-do-you-use-rust.svg create mode 100644 static/images/2024-02-rust-survey-2023/how-should-work-be-prioritized.png create mode 100644 static/images/2024-02-rust-survey-2023/how-should-work-be-prioritized.svg create mode 100644 static/images/2024-02-rust-survey-2023/how-would-you-rate-your-rust-expertise.png create mode 100644 static/images/2024-02-rust-survey-2023/how-would-you-rate-your-rust-expertise.svg create mode 100644 static/images/2024-02-rust-survey-2023/technology-domain-wordcloud.png create mode 100644 static/images/2024-02-rust-survey-2023/technology-domain.png create mode 100644 static/images/2024-02-rust-survey-2023/technology-domain.svg create mode 100644 static/images/2024-02-rust-survey-2023/what-are-your-biggest-worries-about-rust-wordcloud.png create mode 100644 static/images/2024-02-rust-survey-2023/what-are-your-biggest-worries-about-rust.png create mode 100644 static/images/2024-02-rust-survey-2023/what-are-your-biggest-worries-about-rust.svg create mode 100644 static/images/2024-02-rust-survey-2023/what-are-your-preferred-languages-for-technical-communication.png create mode 100644 static/images/2024-02-rust-survey-2023/what-are-your-preferred-languages-for-technical-communication.svg create mode 100644 static/images/2024-02-rust-survey-2023/what-ide-do-you-use-wordcloud.png create mode 100644 static/images/2024-02-rust-survey-2023/what-ide-do-you-use.png create mode 100644 static/images/2024-02-rust-survey-2023/what-ide-do-you-use.svg create mode 100644 static/images/2024-02-rust-survey-2023/where-do-you-live.png create mode 100644 static/images/2024-02-rust-survey-2023/where-do-you-live.svg create mode 100644 static/images/2024-02-rust-survey-2023/which-features-do-you-want-stabilized-wordcloud.png create mode 100644 static/images/2024-02-rust-survey-2023/which-features-do-you-want-stabilized.png create mode 100644 static/images/2024-02-rust-survey-2023/which-features-do-you-want-stabilized.svg create mode 100644 static/images/2024-02-rust-survey-2023/which-marginalized-group.png create mode 100644 static/images/2024-02-rust-survey-2023/which-marginalized-group.svg create mode 100644 static/images/2024-02-rust-survey-2023/which-os-do-you-target-wordcloud.png create mode 100644 static/images/2024-02-rust-survey-2023/which-os-do-you-target.png create mode 100644 static/images/2024-02-rust-survey-2023/which-os-do-you-target.svg create mode 100644 static/images/2024-02-rust-survey-2023/which-os-do-you-use-wordcloud.png create mode 100644 static/images/2024-02-rust-survey-2023/which-os-do-you-use.png create mode 100644 static/images/2024-02-rust-survey-2023/which-os-do-you-use.svg create mode 100644 static/images/2024-02-rust-survey-2023/which-problems-do-you-remember-encountering-wordcloud.png create mode 100644 static/images/2024-02-rust-survey-2023/which-problems-do-you-remember-encountering.png create mode 100644 static/images/2024-02-rust-survey-2023/which-problems-do-you-remember-encountering.svg create mode 100644 static/images/2024-02-rust-survey-2023/which-statements-apply-to-rust-at-work.png create mode 100644 static/images/2024-02-rust-survey-2023/which-statements-apply-to-rust-at-work.svg create mode 100644 static/images/2024-02-rust-survey-2023/why-did-you-stop-using-rust-wordcloud.png create mode 100644 static/images/2024-02-rust-survey-2023/why-did-you-stop-using-rust.png create mode 100644 static/images/2024-02-rust-survey-2023/why-did-you-stop-using-rust.svg create mode 100644 static/images/2024-02-rust-survey-2023/why-dont-you-use-rust-wordcloud.png create mode 100644 static/images/2024-02-rust-survey-2023/why-dont-you-use-rust.png create mode 100644 static/images/2024-02-rust-survey-2023/why-dont-you-use-rust.svg create mode 100644 static/images/2024-02-rust-survey-2023/why-you-use-rust-at-work.png create mode 100644 static/images/2024-02-rust-survey-2023/why-you-use-rust-at-work.svg create mode 100644 static/scripts/2024-02-rust-survey-2023/charts.js create mode 100644 static/scripts/plotly-basic-2.29.0.min.js diff --git a/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md b/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md new file mode 100644 index 000000000..1001947b9 --- /dev/null +++ b/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md @@ -0,0 +1,331 @@ +--- +layout: post +title: "2023 Annual Rust Survey Results" +author: The Rust Survey Team +--- + +Hello, Rustaceans! + +The Rust Survey Team is excited to share the results of our [2023 survey on the Rust Programming language](https://blog.rust-lang.org/2023/12/18/survey-launch.html), conducted between December 18, 2023 and January 15, 2024. +As in previous years, the 2023 State of Rust Survey was focused on gathering insights and feedback from Rust users, and all those who are interested in the future of Rust more generally. + +This eighth edition of the survey surfaced new insights and learning opportunities straight from the global Rust language community, which we will summarize below. In addition to this blog post, this year we have also prepared a [report][report] containing charts with aggregated results of all questions in the survey. Based on feedback from recent years, we have also tried to provide more comprehensive and interactive charts in this summary blog post. Let us know what you think! + +**Our sincerest thanks to every community member who took the time to express their opinions and experiences with Rust over the past year. Your participation will help us make Rust better for everyone.** + +There's a lot of data to go through, so strap in and enjoy! + +## Participation + +| **Survey** | **Started** | **Completed** | **Completion rate** | **Views** | +|:----------:|------------:|--------------:|--------------------:|----------:| +| 2022 | 11 482 | 9 433 | 81.3% | 25 581 | +| 2023 | 11 950 | 9 710 | 82.2% | 16 028 | + +As shown above, in 2023, we have received 37% fewer survey views in vs 2022, but saw a slight uptick in starts and completions. There are many reasons why this could have been the case, but it’s possible that because we released the [2022 analysis blog](https://blog.rust-lang.org/2023/08/07/Rust-Survey-2023-Results.html) so late last year, the survey was fresh in many Rustaceans’ minds. This might have prompted fewer people to feel the need to open the most recent survey. Therefore, we find it doubly impressive that there were more starts and completions in 2023, despite the lower overall view count. + +## Community + +This year, we have relied on automated translations of the survey, and we have asked volunteers to review them. We thank the hardworking volunteers who reviewed these automated survey translations, ultimately allowing us to offer the survey in seven languages: English, Simplified Chinese, French, German, Japanese, Russian, and Spanish. We decided not to publish the survey in languages without a translation review volunteer, meaning we could not issue the survey in Portuguese, Ukrainian, Traditional Chinese, or Korean. + +The Rust Survey team understands that there were some issues with several of these translated versions, and we apologize for any difficulty this has caused. We are always looking for ways to improve going forward and are in the process of discussing improvements to this part of the survey creation process for next year. + +We saw a 3pp increase in respondents taking this year’s survey in English – 80% in 2023 and 77% in 2022. Across all other languages, we saw only minor variations – all of which are likely due to us offering fewer languages overall this year due to having fewer volunteers. + +Rust user respondents were asked which country they live in. The top 10 countries represented were, in order: United States (22%), Germany (12%), China (6%), United Kingdom (6%), France (6%), Canada (3%), Russia (3%), Netherlands (3%), Japan (3%), and Poland (3%) . We were interested to see a small reduction in participants taking the survey in the United States in 2023 (down 3pp from the 2022 edition) which is a positive indication of the growing global nature of our community! You can try to find your country in the chart below: + + + + + +Once again, the majority of our respondents reported being most comfortable communicating on technical topics in English at 92.7% — a slight difference from 93% in 2022. Again, Chinese was the second-highest choice for preferred language for technical communication at 6.1% (7% in 2022). + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +We also asked whether respondents consider themselves members of a marginalized community. Out of those who answered, 76% selected no, 14% selected yes, and 10% preferred not to say. + +We have asked the group that selected “yes” which specific groups they identified as being a member of. The majority of those who consider themselves a member of an underrepresented or marginalized group in technology identify as lesbian, gay, bisexual, or otherwise non-heterosexual. The second most selected option was neurodivergent at 41% followed by trans at 31.4%. Going forward, it will be important for us to track these figures over time to learn how our community changes and to identify the gaps we need to fill. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +As Rust continues to grow, we must acknowledge the diversity, equity, and inclusivity (DEI)-related gaps that exist in the Rust community. Sadly, Rust is not unique in this regard. For instance, only 20% of 2023 respondents to this representation question consider themselves a member of a racial or ethnic minority and only 26% identify as a woman. We would like to see more equitable figures in these and other categories. In 2023, the Rust Foundation formed a diversity, equity, and inclusion subcommittee on its Board of Directors whose members are aware of these results and are actively discussing ways that the Foundation might be able to better support underrepresented groups in Rust and help make our ecosystem more globally inclusive. One of the central goals of the Rust Foundation board's subcommittee is to analyze information about our community to find out what gaps exist, so this information is a helpful place to start. This topic deserves much more depth than is possible here, but readers can expect more on the subject in the future. + +## Rust usage + +In 2023, we saw a slight jump in the number of respondents that self-identify as a Rust user, from 91% in 2022 to 93% in 2023. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Of those who used Rust in 2023, 49% did so on a daily (or nearly daily) basis — a small increase of 2pp from the previous year. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +31% of those who did not identify as Rust users cited the perception of difficulty as the primary reason for not having used it, with 67% reporting that they simply haven’t had the chance to prioritize learning Rust yet, which was once again the most common reason. + + +
    +
    + +
    + + +Of the former Rust users who participated in the 2023 survey, 46% cited factors outside their control (a decrease of 1pp from 2022), 31% stopped using Rust due to preferring another language (an increase of 9pp from 2022), and 24% cited difficulty as the primary reason for giving up (a decrease of 6pp from 2022). + + +
    +
    + +
    + + +Rust expertise has generally increased amongst our respondents over the past year! 23% can write (only) simple programs in Rust (a decrease of 6pp from 2022), 28% can write production-ready code (an increase of 1pp), and 47% consider themselves productive using Rust — up from 42% in 2022. While the survey is just one tool to measure the changes in Rust expertise overall, these numbers are heartening as they represent knowledge growth for many Rustaceans returning to the survey year over year. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +In terms of operating systems used by Rustaceans, the situation is very similar to the results from 2022, with Linux being the most popular choice of Rust users, followed by macOS and Windows, which have a very similar share of usage. + + +
    +
    + +
    + + +Rust programmers target a diverse set of platforms with their Rust programs, even though the most popular target by far is still a Linux machine. We can see a slight uptick in users targeting WebAssembly, embedded and mobile platforms, which speaks to the versatility of Rust. + + +
    +
    + +
    + + +We cannot of course forget the favourite topic of many programmers: which IDE (developer environment) do they use. Visual Studio Code still seems to be the most popular option, with RustRover (which was released last year) also gaining some traction. + + +
    +
    + +
    + + +> You can also take a look at the linked [wordcloud](../../../images/2024-02-rust-survey-2023/what-ide-do-you-use-wordcloud.png) that summarizes open answers to this question (the "Other" category), to see what other editors are also popular. + +## Rust at Work + +We were excited to see a continued upward year-over-year trend of Rust usage at work. 34% of 2023 survey respondents use Rust in the majority of their coding at work — an increase of 5pp from 2022. Of this group, 39% work for organizations that make non-trivial use of Rust. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + + + +Once again, the top reason employers of our survey respondents invested in Rust was the ability to build relatively correct and bug-free software at 86% — a 4pp increase from 2022 responses. The second most popular reason was Rust’s performance characteristics at 83%. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +We were also pleased to see an increase in the number of people who reported that Rust helped their company achieve its goals at 79% — an increase of 7pp from 2022. 77% of respondents reported that their organization is likely to use Rust again in the future — an increase of 3pp from the previous year. Interestingly, we saw a decrease in the number of people who reported that using Rust has been challenging for their organization to use: 34% in 2023 and 39% in 2022. We also saw an increase of respondents reporting that Rust has been worth the cost of adoption: 64% in 2023 and 60% in 2022. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +There are many factors playing into this, but the growing awareness around Rust has likely resulted in the proliferation of resources, allowing new teams using Rust to be better supported. + +In terms of technology domains, it seems that Rust is especially popular for creating server backends, web and networking services and cloud technologies. + + +
    +
    + +
    + + +> You can scroll the chart to the right to see more domains. Note that the Database implementation and Computer Games domains were not offered as closed answers in the 2022 survey (they were merely submitted as open answers), which explains the large jump. + +It is exciting to see the continued growth of professional Rust usage and the confidence so many users feel in its performance, control, security and safety, enjoyability, and more! + +## Challenges + +As always, one of the main goals of the State of Rust survey is to shed light on challenges, concerns, and priorities on Rustaceans’ minds over the past year. + +Of those respondents who shared their main worries for the future of Rust (9,374), the majority were concerned about Rust becoming too complex at 43% — a 5pp increase from 2022. 42% of respondents were concerned about a low level of Rust usage in the tech industry. 32% of respondents in 2023 were most concerned about Rust developers and maintainers not being properly supported — a 6pp increase from 2022. + +We saw a notable decrease in respondents who were not at all concerned about the future of Rust, 18% in 2023 and 30% in 2022. + +Thank you to all participants for your candid feedback which will go a long way toward improving Rust for everyone. + + +
    +
    + +
    + + +> Closed answers marked with N/A were not present in the previous (2022) version of the survey. + +In terms of features that Rust users want to be implemented, stabilized or improved, the most desired improvements are in the areas of traits (trait aliases, associated type defaults, etc.), const execution (generic const expressions, const trait methods, etc.) and async (async closures, coroutines). + + +
    +
    + +
    + + +It is interesting that 20% of respondents answered that they wish Rust to slow down the development of new features, which likely goes hand in hand with the previously mentioned worry that Rust becomes too complex. + +The areas of Rust that Rustaceans seem to struggle with the most seem to be asynchronous Rust, the traits and generics system and also the borrow checker. + + +
    +
    + +
    + + +Respondents of the survey want the Rust maintainers to mainly prioritize fixing compiler bugs (68%), improving the runtime performance of Rust programs (57%) and also improving compile times (45%). + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Same as in recent years, respondents noted that compilation time is one of the most important areas that should be improved. However, it is interesting to note that respondents also seem to consider runtime performance to be more important than compile times. + +## Looking ahead + +Each year, the results of the State of Rust survey help reveal the areas that need improvement in many areas across the Rust Project and ecosystem, as well as the aspects that are working well for our community. + +We are aware that the survey has contained some confusing questions, and we will try to improve upon that in the next year's survey. +If you have any suggestions for the Rust Annual survey, please [let us know](https://github.com/rust-lang/surveys/issues)! + +We are immensely grateful to those who participated in the 2023 State of Rust Survey and facilitated its creation. While there are always challenges associated with developing and maintaining a programming language, this year we were pleased to see a high level of survey participation and candid feedback that will truly help us make Rust work better for everyone. + +If you’d like to dig into more details, we recommend you to browse through the full [survey report][report]. + +[report]: https://raw.githubusercontent.com/rust-lang/surveys/main/surveys/2023-annual-survey/report/annual-survey-2023-report.pdf + + + + + + diff --git a/static/images/2024-02-rust-survey-2023/do-you-personally-use-rust-at-work.png b/static/images/2024-02-rust-survey-2023/do-you-personally-use-rust-at-work.png new file mode 100644 index 0000000000000000000000000000000000000000..b582ea580b8ae16fc996d0821c727ee7700c7983 GIT binary patch literal 22683 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 literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/do-you-personally-use-rust-at-work.svg b/static/images/2024-02-rust-survey-2023/do-you-personally-use-rust-at-work.svg new file mode 100644 index 000000000..8c515e082 --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/do-you-personally-use-rust-at-work.svg @@ -0,0 +1 @@ +33.9%28.1%38.0%29.8%27.1%43.2%NoYes, for the majority of mycodingYes, but I only use itoccasionally0%20%40%60%80%100%Year20232022Are you personally using Rust at work?(total responses = 7234, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/do-you-use-rust.png b/static/images/2024-02-rust-survey-2023/do-you-use-rust.png new file mode 100644 index 0000000000000000000000000000000000000000..179d6c1404c4515cf5afa370314883408fade9ed GIT binary patch literal 21285 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 cg#Z1|9P6xpXLb93.4%3.3%3.3%90.8%4.1%5.2%Yes, I use RustNo, I have never used RustNo, I don't currently useRust, but I have in the past0%20%40%60%80%100%Year20232022Do you use Rust?(total responses = 11906, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/how-often-do-you-use-rust.png b/static/images/2024-02-rust-survey-2023/how-often-do-you-use-rust.png new file mode 100644 index 0000000000000000000000000000000000000000..b1319f275b2f2a9375bf360937a407fe7a8962b5 GIT binary patch literal 22318 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 pmOXT2ZCV&6{ literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/how-often-do-you-use-rust.svg b/static/images/2024-02-rust-survey-2023/how-often-do-you-use-rust.svg new file mode 100644 index 000000000..226f4fb0d --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/how-often-do-you-use-rust.svg @@ -0,0 +1 @@ +49.3%33.4%12.6%4.7%47.3%34.2%13.5%5.1%Daily or nearly soWeekly or nearly soMonthly or nearly soRarely0%20%40%60%80%100%Year20232022On average, how often do you use Rust?(total responses = 10502, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/how-should-work-be-prioritized.png b/static/images/2024-02-rust-survey-2023/how-should-work-be-prioritized.png new file mode 100644 index 0000000000000000000000000000000000000000..66c4bdc15b0fffecbea533b313f83368b9a2f357 GIT binary patch literal 64948 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%0DNi?!B4H6w4s;fo39q@gKc?a_0^>OR_SJzO5 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 literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/how-should-work-be-prioritized.svg b/static/images/2024-02-rust-survey-2023/how-should-work-be-prioritized.svg new file mode 100644 index 000000000..73cd8e925 --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/how-should-work-be-prioritized.svg @@ -0,0 +1 @@ +57.45%44.68%19.35%14.37%13.41%67.90%42.79%39.26%42.41%38.00%32.59%27.27%28.92%40.87%29.86%39.43%43.19%31.47%34.84%23.03%41.35%39.29%40.17%41.91%46.17%47.34%43.31%41.60%10.80%13.79%31.76%42.14%39.83%7.84%13.84%16.94%14.92%17.48%18.86%22.21%23.57%15.40%1.88%2.09%5.71%12.02%11.93%1.22%2.02%4.50%2.50%2.61%2.38%3.18%4.19%2.13%0%20%40%60%80%100%Memory usage Disk space usage Binary Size New languagefeatures Package management Build system (cargo) IDE experience Documentation tools Language, stdlibdocs Debugging experience Compiler errormessages Compile Times Runtime Performance Compiler bugs PriorityHigh PriorityMedium PriorityLow PriorityShould not be prioritisedIn your opinion, how should work on the following aspects of Rust beprioritised?(total responses = 9527)Percent out of the category (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/how-would-you-rate-your-rust-expertise.png b/static/images/2024-02-rust-survey-2023/how-would-you-rate-your-rust-expertise.png new file mode 100644 index 0000000000000000000000000000000000000000..bdc142a65bfba1fab5337e4899a0199d0b38b451 GIT binary patch literal 28953 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.7%23.2%28.2%47.0%1.5%29.0%27.2%42.3%I am productive writing RustI can write useful, production-readycode but it is a struggleI can write simple programs in RustI can't write Rust code0%20%40%60%80%100%Year20232022How would you rate your Rust expertise?(total responses = 10496, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/technology-domain-wordcloud.png b/static/images/2024-02-rust-survey-2023/technology-domain-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..b51da0040e03b4a2b057b2803bb475e86f3f8f22 GIT binary patch literal 52267 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 literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/technology-domain.png b/static/images/2024-02-rust-survey-2023/technology-domain.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd2f169abb7501de9b74c99f68c8b3d8070b586 GIT binary patch literal 61145 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.9%8.9%27.2%21.8%8.0%14.8%12.0%9.9%27.0%17.5%12.6%5.2%9.5%9.1%2.2%18.1%9.4%3.9%14.1%10.4%52.7%6.4%9.9%20.1%3.8%7.8%6.2%3.9%8.9%26.0%22.7%7.0%14.4%9.7%10.4%24.2%16.9%11.4%5.0%10.6%9.0%3.8%16.4%10.6%4.8%15.5%9.8%52.4%5.4%11.8%17.6%7.8%0.2%0.1%0.4%Server-side or "backend" applicationCloud computing applicationsDistributed systemsCloud computing infrastructure or utilitiesWebAssemblyComputer networkingEmbedded devices (with operating systems)Data scienceComputer securityEmbedded devices (bare metal)Desktop computer application frontendScientific and/or numeric computingWeb application frontendDesktop or mobile libraries or servicesIoT (Internet of Things)Programming languages and related toolsMachine learningBlockchainComputer graphicsDatabase implementationSimulationOtherHPC (High-performance [Super]Computing)RoboticsAudio programmingComputer GamesMobile phone application frontend0%20%40%60%80%100%Year20232022In what technology domain(s) is Rust used at your organisation?(total responses = 4139, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/what-are-your-biggest-worries-about-rust-wordcloud.png b/static/images/2024-02-rust-survey-2023/what-are-your-biggest-worries-about-rust-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..4f6d45841db54c4e8e2b7ac2544c9ee41db7af96 GIT binary patch literal 55516 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�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 RXz2g|002ovPDHLkV1n7i3OWD) literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/what-are-your-biggest-worries-about-rust.png b/static/images/2024-02-rust-survey-2023/what-are-your-biggest-worries-about-rust.png new file mode 100644 index 0000000000000000000000000000000000000000..29e287af21cb46053667e4a067de71f65dae1ad2 GIT binary patch literal 62482 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 literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/what-are-your-biggest-worries-about-rust.svg b/static/images/2024-02-rust-survey-2023/what-are-your-biggest-worries-about-rust.svg new file mode 100644 index 000000000..bd7014979 --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/what-are-your-biggest-worries-about-rust.svg @@ -0,0 +1 @@ +42.5%10.7%16.0%9.5%11.1%9.6%12.7%43.0%5.3%28.4%28.2%32.1%17.8%8.6%36.7%9.6%14.0%7.5%9.5%7.6%10.1%37.5%4.7%15.4%25.9%29.8%7.8%N/ABecomes too complexNot enough usage in the tech industryDevelopers/maintainers of the language arenot properly supportedRust Foundation not supporting the Rustproject properlyProject governance does not scale to matchthe size/requirements of the communityI'm not worriedNot enough open source contributions to theecosystemSuperseded by an alternativeRust doesn't evolve quickly enoughToo much interest from big companiesInstability of the languageDoesn't add a specific feature I wantOtherTools and documentation are not accessibleenough0%20%40%60%80%100%Year20232022What are your biggest worries for the future of Rust?(total responses = 9374, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/what-are-your-preferred-languages-for-technical-communication.png b/static/images/2024-02-rust-survey-2023/what-are-your-preferred-languages-for-technical-communication.png new file mode 100644 index 0000000000000000000000000000000000000000..483c523cdb3644539b7643135fb4e11f532a53ad GIT binary patch literal 25892 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.1%1.9%92.7%0.7%1.3%4.0%2.4%0.3%4.2%5.2%4.5%EnglishChineseGermanOtherFrenchRussianJapaneseSpanishPortugueseHindiKorean0%20%40%60%80%100%What is/are your preferred language(s) for technical communication?(total responses = 9608, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/what-ide-do-you-use-wordcloud.png b/static/images/2024-02-rust-survey-2023/what-ide-do-you-use-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..64636e99313d6e0d39d5c779debec10bb48eedaf GIT binary patch literal 40362 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 QN;`#JvamBJnR!M34^^$#vj6}9 literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/what-ide-do-you-use.svg b/static/images/2024-02-rust-survey-2023/what-ide-do-you-use.svg new file mode 100644 index 000000000..4fdcc456a --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/what-ide-do-you-use.svg @@ -0,0 +1 @@ +61.7%31.0%10.6%16.4%5.5%2.3%0.7%0.2%0.2%8.9%4.2%61.3%30.7%20.0%6.0%2.8%3.6%0.2%0.4%3.8%4.2%N/AVS Codevi/vim/neovimRust Rover (dedicated IntelliJRust IDE)IntelliJ/CLion/other JetBrainsIDE + Rust pluginHelixEmacs (or derivatives likeDoom Emacs, Spacemacs, etc.)OtherSublime TextVisual StudioXcodeAtom0%20%40%60%80%100%Year20232022Which editor or IDE setup do you use with Rust code on a regular basis?(total responses = 10480, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/where-do-you-live.png b/static/images/2024-02-rust-survey-2023/where-do-you-live.png new file mode 100644 index 0000000000000000000000000000000000000000..f9dd8ee811a9e3b48c2e875c939d6947f656da03 GIT binary patch literal 88331 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 SOQit+Y2MYnQ=;}b=>GzeFczNx literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/where-do-you-live.svg b/static/images/2024-02-rust-survey-2023/where-do-you-live.svg new file mode 100644 index 000000000..c1ecc5d64 --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/where-do-you-live.svg @@ -0,0 +1 @@ +22.1%12%6.09%5.8%5.78%3.46%2.93%2.83%2.74%2.56%2.34%2.34%2.3%1.67%1.66%1.6%1.55%1.18%1.18%1.12%1%0.982%0.888%0.878%0.867%0.721%0.679%0.491%0.46%0.439%0.418%0.376%0.366%0.366%0.355%0.345%0.324%0.303%0.272%0.272%0.251%0.251%0.23%0.219%0.219%0.209%0.209%0.198%0.198%0.178%0.167%0.167%0.157%0.157%0.157%0.146%0.136%0.136%0.125%0.125%0.125%0.115%0.115%0.115%0.115%0.104%0.104%0.094%0.0836%0.0836%0.0731%0.0731%0.0627%0.0627%0.0627%0.0522%0.0522%0.0522%0.0522%0.0418%0.0418%0.0418%0.0313%0.0313%0.0313%0.0313%0.0313%0.0313%0.0313%0.0209%0.0209%0.0209%0.0209%0.0209%0.0209%0.0209%0.0209%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%0.0104%United States of AmericaGermanyChinaUnited Kingdom of GreatBritain and Northern IrelandFranceCanadaRussian FederationNetherlandsJapanPolandAustraliaSwedenIndiaBrazilSwitzerlandSpainItalyAustriaCzech RepublicNorwayFinlandDenmarkUkraineBelgiumIsraelHungaryNew ZealandPortugalRomaniaTurkeyArgentinaIrelandIslamic Republic of IranSerbiaRepublic of KoreaTaiwanSouth AfricaSingaporeIndonesiaSlovakiaGreeceHong Kong SARBelarusBulgariaLithuaniaColombiaViet NamMalaysiaNigeriaMexicoCroatiaEstoniaLatviaSloveniaThailandGeorgiaNepalUnited Arab EmiratesPakistanPhilippinesRepublic of MoldovaArmeniaChileCyprusKenyaBangladeshEgyptLuxembourgBolivarian Republic ofVenezuelaKazakhstanAfghanistanUruguayCosta RicaIcelandMoroccoLebanonSaudi ArabiaSri LankaTunisiaAlgeriaEcuadorKyrgyzstanCubaDominican RepublicEthiopiaGhanaMaltaPeruUzbekistanAndorraCambodiaMadagascarMontenegroNorth MacedoniaPlurinational State of BoliviaUgandaZimbabweAzerbaijanBeninCameroonDemocratic People's Republicof KoreaDominicaEl SalvadorGuatemalaHondurasJordanKuwaitMaldivesMauritiusMongoliaMyanmarParaguaySomaliaVatican CityAlbaniaAngolaAntigua and BarbudaBahamasBahrainBarbadosBelizeBhutanBosnia and HerzegovinaBotswanaBrunei DarussalamBurkina FasoBurundiCabo VerdeCentral African RepublicChadComorosCongoCôte d'IvoireDemocratic Republic of theCongoDjiboutiEquatorial GuineaEritreaEswatiniFederated States of MicronesiaFijiGabonGambiaGrenadaGuineaGuinea-BissauGuyanaHaitiIraqJamaicaKiribatiLao People's DemocraticRepublicLesothoLiberiaLibyaLiechtensteinMalawiMaliMarshall IslandsMauritaniaMonacoMozambiqueNamibiaNauruNicaraguaNigerOmanOtherPalauPalestinePanamaPapua New GuineaQatarRwandaSaint Kitts and NevisSaint LuciaSaint Vincent and theGrenadinesSamoaSan MarinoSenegalSeychellesSierra LeoneSolomon IslandsSouth SudanSudanSurinameSyrian Arab RepublicSão Tomé and PríncipeTajikistanTimor-LesteTogoTongaTrinidad and TobagoTurkmenistanTuvaluUnited Republic of TanzaniaVanuatuYemenZambiaWhere do you live?(total responses = 9572) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/which-features-do-you-want-stabilized-wordcloud.png b/static/images/2024-02-rust-survey-2023/which-features-do-you-want-stabilized-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7277591e9624f4be8c087c72a6474b1be0cbf7 GIT binary patch literal 50570 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 literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/which-features-do-you-want-stabilized.svg b/static/images/2024-02-rust-survey-2023/which-features-do-you-want-stabilized.svg new file mode 100644 index 000000000..a9125569d --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/which-features-do-you-want-stabilized.svg @@ -0,0 +1 @@ +34.23%43.26%50.55%36.72%19.92%16.85%54.42%49.84%34.43%30.89%27.66%27.73%39.59%36.25%31.36%34.94%27.36%31.53%35.04%34.19%35.87%39.74%36.12%28.76%21.25%16.77%15.21%23.47%30.73%41.03%9.05%14.24%23.54%23.29%30.80%27.67%4.93%3.72%2.88%4.87%21.99%10.59%1.49%1.73%6.16%6.07%5.41%15.84%0%20%40%60%80%100%Try blocks Never type Stable ABI Allocator trait,better OOM handling Enum variant types Compile timereflection Specialization If/while let chains Generators/coroutines Async closures Improved const Improved traits PriorityHigh PriorityMedium PriorityLow PriorityShould not be prioritisedWhich unimplemented  (or nightly only) features are you looking for to bestabilized?(total responses = 6737)Percent out of the category (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/which-marginalized-group.png b/static/images/2024-02-rust-survey-2023/which-marginalized-group.png new file mode 100644 index 0000000000000000000000000000000000000000..7428fdc16e0d8b1f4c97d17f5ccc0cdf8347e16d GIT binary patch literal 47441 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

    d@p+;Vj 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͘i?5dEaXhv1XTQF;y9|F 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.2%27.7%26.7%30.9%11.3%55.9%52.9%40.4%31.6%4.1%AsyncTraits and genericsBorrow checkerMacrosNot being able to do enough inconst fnSplitting things across cratesHaving to do iteratorimplementations manuallyImplementing things on tuplesNeeding to drop down to C ABIfor Rust pluginsOther0%20%40%60%80%100%Which of these problems do you recall encountering within the last year?(total responses = 8635, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/which-statements-apply-to-rust-at-work.png b/static/images/2024-02-rust-survey-2023/which-statements-apply-to-rust-at-work.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9c0228ce7dbf1f40ef1a907bc7d509184cf334 GIT binary patch literal 38567 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

    R_30U>*yxQ8}r$%=xrDC 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 NJnem|!S(!|{{W#xiyZ&} literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/which-statements-apply-to-rust-at-work.svg b/static/images/2024-02-rust-survey-2023/which-statements-apply-to-rust-at-work.svg new file mode 100644 index 000000000..e8a6bc974 --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/which-statements-apply-to-rust-at-work.svg @@ -0,0 +1 @@ +79.4%33.9%8.2%64.6%77.3%71.7%38.5%9.2%60.2%74.7%Using Rust has helped usachieve our goalsWe're likely to use Rust againin the futureUsing Rust has been worth thecost of adoptionAdopting Rust has beenchallengingOverall, adopting Rust hasslowed down our team0%20%40%60%80%100%Year20232022Which of the following statements apply to your experience using Rust atwork?(total responses = 4030, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/why-did-you-stop-using-rust-wordcloud.png b/static/images/2024-02-rust-survey-2023/why-did-you-stop-using-rust-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..73ea5735470a1690657b7f39b9fd923a1a157808 GIT binary patch literal 55547 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.3%10.9%4.9%23.6%5.7%30.7%45.7%21.0%8.3%13.6%6.6%30.2%5.6%22.4%46.7%17.3%I no longer have the opportunity to use Rust dueto factors outside of my controlI prefer to use another languageToo difficult to learnOtherMissing librariesMissing language featuresCommunity was rude, unwelcoming, or otherwise off-puttingMissing tools0%20%40%60%80%100%Year20232022As you have indicated that you're no longer using Rust, why did you stopusing Rust?(total responses = 348, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/why-dont-you-use-rust-wordcloud.png b/static/images/2024-02-rust-survey-2023/why-dont-you-use-rust-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd58ebf50c8299c0608defa2488cc7ee6dbb7f5 GIT binary patch literal 54206 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 H*o6NNc3snC literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/why-dont-you-use-rust.svg b/static/images/2024-02-rust-survey-2023/why-dont-you-use-rust.svg new file mode 100644 index 000000000..743bfb016 --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/why-dont-you-use-rust.svg @@ -0,0 +1 @@ +8.6%5.2%5.8%4.6%30.9%6.4%21.4%14.7%67.3%10.1%10.9%4.1%6.0%3.9%26.3%3.0%14.6%15.2%61.9%10.1%I haven't got around to itToo difficult to learn or learning willtake too much timeI prefer to use another languageI can't use Rust due to factors outsideof my controlOtherRust does not help me achieve my goalsCommunity was rude, unwelcoming, orotherwise off-puttingMissing librariesMissing language featuresMissing tools0%20%40%60%80%100%Year20232022Why don't you use Rust?(total responses = 327, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/why-you-use-rust-at-work.png b/static/images/2024-02-rust-survey-2023/why-you-use-rust-at-work.png new file mode 100644 index 0000000000000000000000000000000000000000..c01836847b7c43a4ee6fa2b413105aed428ba96c GIT binary patch literal 48582 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%0D>`pQzCd%$T5YVSIa*kL%G)?GL@CeWsuy_$? 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 Ww~r{QsVe@rhq|(kQkBAoFaHnmjXjS5 literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/why-you-use-rust-at-work.svg b/static/images/2024-02-rust-survey-2023/why-you-use-rust-at-work.svg new file mode 100644 index 000000000..f445ccae4 --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/why-you-use-rust-at-work.svg @@ -0,0 +1 @@ +83.3%42.5%70.5%85.8%70.0%16.7%14.0%9.5%82.9%37.4%67.6%82.1%72.6%13.5%12.8%8.5%It allows us to buildrelatively correct and bugfree softwareFor its performance (i.e.,speed, memory footprint, etc.)characteristicsIts security and safetyproperties are important to usWe find it enjoyable or fun toprogram in RustWe need precise control overexactly how our software runsWe already know Rust so it'sour default choiceWe find it easy to prototypewithWe must interact with existingRust code0%20%40%60%80%100%Year20232022Which of the following statements are reasons why you use Rust at work?(total responses = 4157, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/scripts/2024-02-rust-survey-2023/charts.js b/static/scripts/2024-02-rust-survey-2023/charts.js new file mode 100644 index 000000000..8933b38db --- /dev/null +++ b/static/scripts/2024-02-rust-survey-2023/charts.js @@ -0,0 +1,75 @@ + + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("where-do-you-live")) { Plotly.newPlot( "where-do-you-live", [{"customdata":[[0.07312996239030506],[0.0],[0.041788549937317176],[0.020894274968658588],[0.0],[0.0],[0.41788549937317176],[0.11491851232762224],[2.340158796489762],[1.1805265357292103],[0.010447137484329294],[0.0],[0.0],[0.10447137484329294],[0.0],[0.22983702465524447],[0.8775595486836606],[0.0],[0.010447137484329294],[0.0],[0.08357709987463435],[0.0],[0.0],[1.671541997492687],[0.0],[0.21938988717091515],[0.0],[0.0],[0.0],[0.020894274968658588],[0.010447137484329294],[3.458002507312996],[0.0],[0.0],[0.11491851232762224],[6.090681153363978],[0.20894274968658588],[0.0],[0.0],[0.06268282490597576],[0.1671541997492687],[0.03134141245298788],[0.11491851232762224],[1.1805265357292103],[0.0],[0.010447137484329294],[0.0],[0.9820309235269535],[0.0],[0.010447137484329294],[0.03134141245298788],[0.041788549937317176],[0.10447137484329294],[0.010447137484329294],[0.0],[0.0],[0.1671541997492687],[0.0],[0.03134141245298788],[0.0],[0.0],[1.0029251984956122],[5.7772670288341],[0.0],[0.0],[0.14625992478061012],[12.035102381947347],[0.03134141245298788],[0.25073129962390306],[0.0],[0.010447137484329294],[0.0],[0.0],[0.0],[0.0],[0.010447137484329294],[0.25073129962390306],[0.7208524864187213],[0.06268282490597576],[2.2983702465524445],[0.27162557459256165],[0.0],[0.3760969494358546],[0.3656498119515253],[0.8671124111993315],[1.5461763476807355],[0.0],[2.737150020894275],[0.010447137484329294],[0.08357709987463435],[0.11491851232762224],[0.0],[0.010447137484329294],[0.041788549937317176],[0.0],[0.1567070622649394],[0.05223568742164647],[0.0],[0.0],[0.0],[0.0],[0.21938988717091515],[0.09402423735896365],[0.020894274968658588],[0.0],[0.19849561220225656],[0.010447137484329294],[0.0],[0.03134141245298788],[0.0],[0.0],[0.010447137484329294],[0.177601337233598],[0.0],[0.010447137484329294],[0.020894274968658588],[0.06268282490597576],[0.0],[0.010447137484329294],[0.0],[0.0],[0.13581278729628082],[2.8311742582532387],[0.6790639364814042],[0.0],[0.0],[0.19849561220225656],[0.020894274968658588],[1.1178437108232344],[0.0],[0.0],[0.12536564981195153],[0.0],[0.0],[0.0],[0.0],[0.010447137484329294],[0.03134141245298788],[0.12536564981195153],[0.020894274968658588],[2.559548683660677],[0.49101546176347677],[0.0],[0.355202674467196],[0.12536564981195153],[0.45967404931048894],[2.9251984956122024],[0.0],[0.0],[0.0],[0.0],[0.0],[0.0],[0.05223568742164647],[0.0],[0.3656498119515253],[0.0],[0.0],[0.30296698704554953],[0.27162557459256165],[0.1567070622649394],[0.0],[0.010447137484329294],[0.3238612620142081],[0.0],[1.5984120351023818],[0.05223568742164647],[0.0],[0.0],[2.340158796489762],[1.6610948600083577],[0.0],[0.0],[0.3447555369828667],[0.0],[0.1567070622649394],[0.0],[0.0],[0.0],[0.0],[0.05223568742164647],[0.4387797743418303],[0.0],[0.0],[0.020894274968658588],[0.8880066861679901],[0.13581278729628082],[5.798161303802758],[0.0],[22.127037191809446],[0.07312996239030506],[0.03134141245298788],[0.0],[0.010447137484329294],[0.20894274968658588],[0.0],[0.0],[0.020894274968658588]],"domain":{"x":[0.0,1.0],"y":[0.0,1.0]},"hovertemplate":"Answer: %{label}\u003cbr \u002f\u003eCount: %{value} \u003cbr \u002f\u003ePercent: %{customdata:.2f}%","labels":["Afghanistan","Albania","Algeria","Andorra","Angola","Antigua and Barbuda","Argentina","Armenia","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bhutan","Bolivarian Republic of\u003cbr \u002f\u003eVenezuela","Bosnia and Herzegovina","Botswana","Brazil","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cabo Verde","Cambodia","Cameroon","Canada","Central African Republic","Chad","Chile","China","Colombia","Comoros","Congo","Costa Rica","Croatia","Cuba","Cyprus","Czech Republic","C\u00f4te d'Ivoire","Democratic People's Republic\u003cbr \u002f\u003eof Korea","Democratic Republic of the\u003cbr \u002f\u003eCongo","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Eswatini","Ethiopia","Federated States of Micronesia","Fiji","Finland","France","Gabon","Gambia","Georgia","Germany","Ghana","Greece","Grenada","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Honduras","Hong Kong SAR","Hungary","Iceland","India","Indonesia","Iraq","Ireland","Islamic Republic of Iran","Israel","Italy","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Kiribati","Kuwait","Kyrgyzstan","Lao People's Democratic\u003cbr \u002f\u003eRepublic","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Mauritania","Mauritius","Mexico","Monaco","Mongolia","Montenegro","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","New Zealand","Nicaragua","Niger","Nigeria","North Macedonia","Norway","Oman","Other","Pakistan","Palau","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Plurinational State of Bolivia","Poland","Portugal","Qatar","Republic of Korea","Republic of Moldova","Romania","Russian Federation","Rwanda","Saint Kitts and Nevis","Saint Lucia","Saint Vincent and the\u003cbr \u002f\u003eGrenadines","Samoa","San Marino","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Sudan","Spain","Sri Lanka","Sudan","Suriname","Sweden","Switzerland","Syrian Arab Republic","S\u00e3o Tom\u00e9 and Pr\u00edncipe","Taiwan","Tajikistan","Thailand","Timor-Leste","Togo","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom of Great\u003cbr \u002f\u003eBritain and Northern Ireland","United Republic of Tanzania","United States of America","Uruguay","Uzbekistan","Vanuatu","Vatican City","Viet Nam","Yemen","Zambia","Zimbabwe"],"legendgroup":"","name":"","showlegend":true,"values":[7,0,4,2,0,0,40,11,224,113,1,0,0,10,0,22,84,0,1,0,8,0,0,160,0,21,0,0,0,2,1,331,0,0,11,583,20,0,0,6,16,3,11,113,0,1,0,94,0,1,3,4,10,1,0,0,16,0,3,0,0,96,553,0,0,14,1152,3,24,0,1,0,0,0,0,1,24,69,6,220,26,0,36,35,83,148,0,262,1,8,11,0,1,4,0,15,5,0,0,0,0,21,9,2,0,19,1,0,3,0,0,1,17,0,1,2,6,0,1,0,0,13,271,65,0,0,19,2,107,0,0,12,0,0,0,0,1,3,12,2,245,47,0,34,12,44,280,0,0,0,0,0,0,5,0,35,0,0,29,26,15,0,1,31,0,153,5,0,0,224,159,0,0,33,0,15,0,0,0,0,5,42,0,0,2,85,13,555,0,2118,7,3,0,1,20,0,0,2],"type":"pie","textinfo":"percent","textposition":"inside"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"legend":{"tracegroupgap":0},"title":{"text":"\u003cb\u003eWhere do you live?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 9572)\u003c\u002fspan\u003e"},"height":600,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"margin":{"l":0,"b":0,"pad":0},"meta":"pie-chart","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("what-are-your-preferred-languages-for-technical-communication")) { Plotly.newPlot( "what-are-your-preferred-languages-for-technical-communication", [{"alignmentgroup":"True","customdata":[["2023",589],["2023",187],["2023",8902],["2023",69],["2023",125],["2023",384],["2023",231],["2023",31],["2023",400],["2023",500],["2023",437]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["6.1%","1.9%","92.7%","0.7%","1.3%","4.0%","2.4%","0.3%","4.2%","5.2%","4.5%"],"textposition":"outside","x":["Chinese","Spanish","English","Hindi","Portuguese","Russian","Japanese","Korean","French","German","Other"],"xaxis":"x","y":[6.130308151245117,1.9462946653366089,92.6519546508789,0.7181515693664551,1.3009991645812988,3.9966695308685303,2.4042465686798096,0.3226477801799774,4.1631975173950195,5.203996658325195,4.548293113708496],"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["English","Chinese","German","Other","French","Russian","Japanese","Spanish","Portuguese","Hindi","Korean"],"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":50},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":400,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eWhat is\u002fare your preferred language(s) for technical communication?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 9608, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":false,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("which-marginalized-group")) { Plotly.newPlot( "which-marginalized-group", [{"alignmentgroup":"True","customdata":[["2023",138],["2023",201],["2023",548],["2023",216],["2023",171],["2023",655],["2023",240],["2023",228],["2023",217],["2023",265],["2023",116],["2023",415],["2023",341],["2023",64]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["10.4%","15.2%","41.5%","16.3%","12.9%","49.5%","18.2%","17.2%","16.4%","20.0%","8.8%","31.4%","25.8%","4.8%"],"textposition":"outside","x":["Cultural beliefs","Disabled (physically,\u003cbr \u002f\u003ementally, or otherwise)","Neurodivergent","Educational background","Language","Lesbian, gay, bisexual, queer\u003cbr \u002f\u003eor otherwise non-heterosexual","Non-binary gender","Older or younger than the\u003cbr \u002f\u003eaverage developers I know","Political beliefs","Racial or ethnic minority","Religious beliefs","Trans","Woman or perceived as a woman","Other"],"xaxis":"x","y":[10.438729286193848,15.204236030578613,41.45234680175781,16.33888053894043,12.93494701385498,49.546142578125,18.154312133789062,17.246597290039062,16.41452407836914,20.045385360717773,8.77458381652832,31.391828536987305,25.79425048828125,4.841149806976318],"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Lesbian, gay, bisexual, queer\u003cbr \u002f\u003eor otherwise non-heterosexual","Neurodivergent","Trans","Woman or perceived as a woman","Racial or ethnic minority","Non-binary gender","Older or younger than the\u003cbr \u002f\u003eaverage developers I know","Political beliefs","Educational background","Disabled (physically,\u003cbr \u002f\u003ementally, or otherwise)","Language","Cultural beliefs","Religious beliefs","Other"],"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eWhich of the following underrepresented or marginalized groups in\u003cbr \u002f\u003etechnology do you consider yourself a part of?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 1322, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":false,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("do-you-use-rust")) { Plotly.newPlot( "do-you-use-rust", [{"alignmentgroup":"True","customdata":[["2023",11117],["2023",392],["2023",397]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["93.4%","3.3%","3.3%"],"textposition":"outside","x":["Yes, I use Rust","No, I don't currently use\u003cbr \u002f\u003eRust, but I have in the past","No, I have never used Rust"],"xaxis":"x","y":[93.37309265136719,3.2924578189849854,3.3344533443450928],"yaxis":"y","type":"bar","textangle":0},{"alignmentgroup":"True","customdata":[["2022",10365],["2022",463],["2022",590]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["90.8%","4.1%","5.2%"],"textposition":"outside","x":["Yes, I use Rust","No, I don't currently use\u003cbr \u002f\u003eRust, but I have in the past","No, I have never used Rust"],"xaxis":"x","y":[90.77771759033203,4.0550007820129395,5.1672797203063965],"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Yes, I use Rust","No, I have never used Rust","No, I don't currently use\u003cbr \u002f\u003eRust, but I have in the past"],"tickangle":0},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":50},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":300,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eDo you use Rust?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 11906, single answer)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("how-often-do-you-use-rust")) { Plotly.newPlot( "how-often-do-you-use-rust", [{"alignmentgroup":"True","customdata":[["2023",5174],["2023",3504],["2023",1327],["2023",497]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["49.3%","33.4%","12.6%","4.7%"],"textposition":"outside","x":["Daily or nearly so","Weekly or nearly so","Monthly or nearly so","Rarely"],"xaxis":"x","y":[49.266807556152344,33.365074157714844,12.635688781738281,4.732431888580322],"yaxis":"y","type":"bar","textangle":0},{"alignmentgroup":"True","customdata":[["2022",4655],["2022",3366],["2022",1330],["2022",498]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["47.3%","34.2%","13.5%","5.1%"],"textposition":"outside","x":["Daily or nearly so","Weekly or nearly so","Monthly or nearly so","Rarely"],"xaxis":"x","y":[47.2636833190918,34.176055908203125,13.50390911102295,5.056351184844971],"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Daily or nearly so","Weekly or nearly so","Monthly or nearly so","Rarely"],"tickangle":0},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":50},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":300,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eOn average, how often do you use Rust?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 10502, single answer)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("why-dont-you-use-rust")) { Plotly.newPlot( "why-dont-you-use-rust", [{"alignmentgroup":"True","customdata":[["2023",28],["2023",17],["2023",19],["2023",15],["2023",101],["2023",21],["2023",70],["2023",48],["2023",220],["2023",33]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["8.6%","5.2%","5.8%","4.6%","30.9%","6.4%","21.4%","14.7%","67.3%","10.1%"],"textposition":"outside","x":["Rust does not help me achieve my goals","Missing language features","Missing libraries","Missing tools","Too difficult to learn or learning will\u003cbr \u002f\u003etake too much time","Community was rude, unwelcoming, or\u003cbr \u002f\u003eotherwise off-putting","I prefer to use another language","I can't use Rust due to factors outside\u003cbr \u002f\u003eof my control","I haven't got around to it","Other"],"xaxis":"x","y":[8.562690734863281,5.198776721954346,5.810397624969482,4.587155818939209,30.886850357055664,6.422018051147461,21.406728744506836,14.678898811340332,67.27828979492188,10.091742515563965],"yaxis":"y","type":"bar","textangle":-90},{"alignmentgroup":"True","customdata":[["2022",51],["2022",19],["2022",28],["2022",18],["2022",123],["2022",14],["2022",68],["2022",71],["2022",289],["2022",47]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["10.9%","4.1%","6.0%","3.9%","26.3%","3.0%","14.6%","15.2%","61.9%","10.1%"],"textposition":"outside","x":["Rust does not help me achieve my goals","Missing language features","Missing libraries","Missing tools","Too difficult to learn or learning will\u003cbr \u002f\u003etake too much time","Community was rude, unwelcoming, or\u003cbr \u002f\u003eotherwise off-putting","I prefer to use another language","I can't use Rust due to factors outside\u003cbr \u002f\u003eof my control","I haven't got around to it","Other"],"xaxis":"x","y":[10.920771598815918,4.0685224533081055,5.9957170486450195,3.8543899059295654,26.338329315185547,2.9978585243225098,14.561027526855469,15.203426361083984,61.884368896484375,10.064239501953125],"yaxis":"y","type":"bar","textangle":-90}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["I haven't got around to it","Too difficult to learn or learning will\u003cbr \u002f\u003etake too much time","I prefer to use another language","I can't use Rust due to factors outside\u003cbr \u002f\u003eof my control","Other","Rust does not help me achieve my goals","Community was rude, unwelcoming, or\u003cbr \u002f\u003eotherwise off-putting","Missing libraries","Missing language features","Missing tools"],"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eWhy don't you use Rust?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 327, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("why-did-you-stop-using-rust")) { Plotly.newPlot( "why-did-you-stop-using-rust", [{"alignmentgroup":"True","customdata":[["2023",29],["2023",38],["2023",17],["2023",82],["2023",20],["2023",107],["2023",159],["2023",73]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["8.3%","10.9%","4.9%","23.6%","5.7%","30.7%","45.7%","21.0%"],"textposition":"outside","x":["Missing language features","Missing libraries","Missing tools","Too difficult to learn","Community was rude, unwelcoming, or otherwise off-\u003cbr \u002f\u003eputting","I prefer to use another language","I no longer have the opportunity to use Rust due\u003cbr \u002f\u003eto factors outside of my control","Other"],"xaxis":"x","y":[8.333333969116211,10.919540405273438,4.88505744934082,23.563217163085938,5.747126579284668,30.747127532958984,45.68965530395508,20.97701072692871],"yaxis":"y","type":"bar","textangle":-90},{"alignmentgroup":"True","customdata":[["2022",34],["2022",56],["2022",27],["2022",124],["2022",23],["2022",92],["2022",192],["2022",71]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["8.3%","13.6%","6.6%","30.2%","5.6%","22.4%","46.7%","17.3%"],"textposition":"outside","x":["Missing language features","Missing libraries","Missing tools","Too difficult to learn","Community was rude, unwelcoming, or otherwise off-\u003cbr \u002f\u003eputting","I prefer to use another language","I no longer have the opportunity to use Rust due\u003cbr \u002f\u003eto factors outside of my control","Other"],"xaxis":"x","y":[8.272506713867188,13.625304222106934,6.569343090057373,30.17031478881836,5.596107006072998,22.384428024291992,46.715328216552734,17.274938583374023],"yaxis":"y","type":"bar","textangle":-90}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["I no longer have the opportunity to use Rust due\u003cbr \u002f\u003eto factors outside of my control","I prefer to use another language","Too difficult to learn","Other","Missing libraries","Missing language features","Community was rude, unwelcoming, or otherwise off-\u003cbr \u002f\u003eputting","Missing tools"],"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eAs you have indicated that you're no longer using Rust, why did you stop\u003cbr \u002f\u003eusing Rust?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 348, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("how-would-you-rate-your-rust-expertise")) { Plotly.newPlot( "how-would-you-rate-your-rust-expertise", [{"alignmentgroup":"True","customdata":[["2023",175],["2023",2430],["2023",2958],["2023",4933]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["1.7%","23.2%","28.2%","47.0%"],"textposition":"outside","x":["I can't write Rust code","I can write simple programs in Rust","I can write useful, production-ready\u003cbr \u002f\u003ecode but it is a struggle","I am productive writing Rust"],"xaxis":"x","y":[1.667301893234253,23.151676177978516,28.18216323852539,46.99885559082031],"yaxis":"y","type":"bar","textangle":0},{"alignmentgroup":"True","customdata":[["2022",150],["2022",2856],["2022",2678],["2022",4167]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["1.5%","29.0%","27.2%","42.3%"],"textposition":"outside","x":["I can't write Rust code","I can write simple programs in Rust","I can write useful, production-ready\u003cbr \u002f\u003ecode but it is a struggle","I am productive writing Rust"],"xaxis":"x","y":[1.5226880311965942,28.991979598999023,27.18505859375,42.30027389526367],"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["I am productive writing Rust","I can write useful, production-ready\u003cbr \u002f\u003ecode but it is a struggle","I can write simple programs in Rust","I can't write Rust code"],"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eHow would you rate your Rust expertise?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 10496, single answer)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("which-os-do-you-use")) { Plotly.newPlot( "which-os-do-you-use", [{"alignmentgroup":"True","customdata":[["2023",7320],["2023",1445],["2023",3516],["2023",130],["2023",3353]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["69.7%","13.8%","33.5%","1.2%","31.9%"],"textposition":"outside","x":["Linux","Windows Subsystem\u003cbr \u002f\u003efor Linux","macOS","Other","Windows"],"xaxis":"x","y":[69.71428680419922,13.7619047164917,33.485713958740234,1.2380951642990112,31.933334350585938],"yaxis":"y","type":"bar","textangle":0},{"alignmentgroup":"True","customdata":[["2022",6698],["2022",2953],["2022",1478],["2022",3234],["2022",111]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["68.0%","30.0%","15.0%","32.8%","1.1%"],"textposition":"outside","x":["Linux","Windows","Windows Subsystem\u003cbr \u002f\u003efor Linux","macOS","Other"],"xaxis":"x","y":[68.02762603759766,29.99187469482422,15.0111722946167,32.8458251953125,1.1273612976074219],"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Linux","macOS","Windows","Windows Subsystem\u003cbr \u002f\u003efor Linux","Other"],"tickangle":0},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":50},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":400,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eWhich operating systems do you use regularly for Rust development?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 10500, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("which-os-do-you-target")) { Plotly.newPlot( "which-os-do-you-target", [{"alignmentgroup":"True","customdata":[["2023",8910],["2023",2945],["2023",387],["2023",635],["2023",1186],["2023",1517],["2023",2826],["2023",1824],["2023",164],["2023",4571]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["85.4%","28.2%","3.7%","6.1%","11.4%","14.5%","27.1%","17.5%","1.6%","43.8%"],"textposition":"outside","x":["Linux (desktop or server)","macOS","iOS","Android","Embedded platforms (with an operating system)","Embedded platforms (bare metal)","WebAssembly","Explicitly platform-independent (e.g., a library\u003cbr \u002f\u003ewhich does not interact with the operating system)","Other","Windows"],"xaxis":"x","y":[85.40209197998047,28.227737426757812,3.709383726119995,6.086456298828125,11.367775917053223,14.540401458740234,27.087127685546875,17.482986450195312,1.5719351768493652,43.81290054321289],"yaxis":"y","type":"bar","textangle":-90},{"alignmentgroup":"True","customdata":[["2022",7818],["2022",3696],["2022",2470],["2022",283],["2022",496],["2022",1014],["2022",1269],["2022",2523],["2022",2324],["2022",168]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["79.9%","37.8%","25.2%","2.9%","5.1%","10.4%","13.0%","25.8%","23.7%","1.7%"],"textposition":"outside","x":["Linux (desktop or server)","Windows","macOS","iOS","Android","Embedded platforms (with an operating system)","Embedded platforms (bare metal)","WebAssembly","Explicitly platform-independent (e.g., a library\u003cbr \u002f\u003ewhich does not interact with the operating system)","Other"],"xaxis":"x","y":[79.88964080810547,37.76824188232422,25.24013900756836,2.8918864727020264,5.068465232849121,10.361741065979004,12.967504501342773,25.78173065185547,23.748210906982422,1.716738224029541],"yaxis":"y","type":"bar","textangle":-90}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Linux (desktop or server)","Windows","macOS","WebAssembly","Explicitly platform-independent (e.g., a library\u003cbr \u002f\u003ewhich does not interact with the operating system)","Embedded platforms (bare metal)","Embedded platforms (with an operating system)","Android","iOS","Other"],"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eWhich operating systems or runtimes do you develop Rust software for?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 10433, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("what-ide-do-you-use")) { Plotly.newPlot( "what-ide-do-you-use", [{"alignmentgroup":"True","customdata":[["2023",6466],["2023",3252],["2023",1112],["2023",1718],["2023",581],["2023",241],["2023",76],["2023",24],["2023",22],["2023",932],["2023",445]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["61.7%","31.0%","10.6%","16.4%","5.5%","2.3%","0.7%","0.2%","0.2%","8.9%","4.2%"],"textposition":"outside","x":["VS Code","vi\u002fvim\u002fneovim","IntelliJ\u002fCLion\u002fother JetBrains\u003cbr \u002f\u003eIDE + Rust plugin","Rust Rover (dedicated IntelliJ\u003cbr \u002f\u003eRust IDE)","Emacs (or derivatives like\u003cbr \u002f\u003eDoom Emacs, Spacemacs, etc.)","Sublime Text","Visual Studio","Xcode","Atom","Helix","Other"],"xaxis":"x","y":[61.69847106933594,31.030536651611328,10.610687255859375,16.393129348754883,5.543893337249756,2.2996182441711426,0.7251908779144287,0.22900763154029846,0.2099236696958542,8.8931303024292,4.246182918548584],"yaxis":"y","type":"bar","textangle":-90},{"alignmentgroup":"True","customdata":[["2022",6027],["2022",3024],["2022",1967],["2022",590],["2022",278],["2022",350],["2022",23],["2022",42],["2022",375],["2022",413],["2022",0]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["61.3%","30.7%","20.0%","6.0%","2.8%","3.6%","0.2%","0.4%","3.8%","4.2%","N\u002fA"],"textposition":"outside","x":["VS Code","vi\u002fvim\u002fneovim","IntelliJ\u002fCLion\u002fother JetBrains\u003cbr \u002f\u003eIDE + Rust plugin","Emacs (or derivatives like\u003cbr \u002f\u003eDoom Emacs, Spacemacs, etc.)","Sublime Text","Visual Studio","Xcode","Atom","Other","Helix","Rust Rover (dedicated IntelliJ\u003cbr \u002f\u003eRust IDE)"],"xaxis":"x","y":[61.2811393737793,30.747329711914062,20.0,5.998983383178711,2.8266396522521973,3.558718681335449,0.23385865986347198,0.4270462691783905,3.812913179397583,4.199288368225098,0.0],"yaxis":"y","type":"bar","textangle":-90}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["VS Code","vi\u002fvim\u002fneovim","Rust Rover (dedicated IntelliJ\u003cbr \u002f\u003eRust IDE)","IntelliJ\u002fCLion\u002fother JetBrains\u003cbr \u002f\u003eIDE + Rust plugin","Helix","Emacs (or derivatives like\u003cbr \u002f\u003eDoom Emacs, Spacemacs, etc.)","Other","Sublime Text","Visual Studio","Xcode","Atom"],"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eWhich editor or IDE setup do you use with Rust code on a regular basis?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 10480, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("do-you-personally-use-rust-at-work")) { Plotly.newPlot( "do-you-personally-use-rust-at-work", [{"alignmentgroup":"True","customdata":[["2023",2454],["2023",2030],["2023",2750]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["33.9%","28.1%","38.0%"],"textposition":"outside","x":["Yes, for the majority of my\u003cbr \u002f\u003ecoding","Yes, but I only use it\u003cbr \u002f\u003eoccasionally","No"],"xaxis":"x","y":[33.92314147949219,28.06192970275879,38.014930725097656],"yaxis":"y","type":"bar","textangle":0},{"alignmentgroup":"True","customdata":[["2022",2127],["2022",1933],["2022",3084]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["29.8%","27.1%","43.2%"],"textposition":"outside","x":["Yes, for the majority of my\u003cbr \u002f\u003ecoding","Yes, but I only use it\u003cbr \u002f\u003eoccasionally","No"],"xaxis":"x","y":[29.773235321044922,27.05767059326172,43.16909408569336],"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["No","Yes, for the majority of my\u003cbr \u002f\u003ecoding","Yes, but I only use it\u003cbr \u002f\u003eoccasionally"],"tickangle":0},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eAre you personally using Rust at work?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 7234, single answer)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("why-you-use-rust-at-work")) { Plotly.newPlot( "why-you-use-rust-at-work", [{"alignmentgroup":"True","customdata":[["2023",3462],["2023",1767],["2023",2932],["2023",3568],["2023",2911],["2023",696],["2023",581],["2023",396]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["83.3%","42.5%","70.5%","85.8%","70.0%","16.7%","14.0%","9.5%"],"textposition":"outside","x":["For its performance (i.e.,\u003cbr \u002f\u003espeed, memory footprint, etc.)\u003cbr \u002f\u003echaracteristics","We need precise control over\u003cbr \u002f\u003eexactly how our software runs","Its security and safety\u003cbr \u002f\u003eproperties are important to us","It allows us to build\u003cbr \u002f\u003erelatively correct and bug\u003cbr \u002f\u003efree software","We find it enjoyable or fun to\u003cbr \u002f\u003eprogram in Rust","We already know Rust so it's\u003cbr \u002f\u003eour default choice","We find it easy to prototype\u003cbr \u002f\u003ewith","We must interact with existing\u003cbr \u002f\u003eRust code"],"xaxis":"x","y":[83.28121185302734,42.506614685058594,70.53163146972656,85.83113098144531,70.0264663696289,16.742843627929688,13.976425170898438,9.526101112365723],"yaxis":"y","type":"bar","textangle":-90},{"alignmentgroup":"True","customdata":[["2022",3755],["2022",1695],["2022",3060],["2022",3719],["2022",3290],["2022",611],["2022",578],["2022",385]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["82.9%","37.4%","67.6%","82.1%","72.6%","13.5%","12.8%","8.5%"],"textposition":"outside","x":["For its performance (i.e.,\u003cbr \u002f\u003espeed, memory footprint, etc.)\u003cbr \u002f\u003echaracteristics","We need precise control over\u003cbr \u002f\u003eexactly how our software runs","Its security and safety\u003cbr \u002f\u003eproperties are important to us","It allows us to build\u003cbr \u002f\u003erelatively correct and bug\u003cbr \u002f\u003efree software","We find it enjoyable or fun to\u003cbr \u002f\u003eprogram in Rust","We already know Rust so it's\u003cbr \u002f\u003eour default choice","We find it easy to prototype\u003cbr \u002f\u003ewith","We must interact with existing\u003cbr \u002f\u003eRust code"],"xaxis":"x","y":[82.9101333618164,37.425479888916016,67.56458282470703,82.1152572631836,72.6429672241211,13.490836143493652,12.762199401855469,8.500772476196289],"yaxis":"y","type":"bar","textangle":-90}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["It allows us to build\u003cbr \u002f\u003erelatively correct and bug\u003cbr \u002f\u003efree software","For its performance (i.e.,\u003cbr \u002f\u003espeed, memory footprint, etc.)\u003cbr \u002f\u003echaracteristics","Its security and safety\u003cbr \u002f\u003eproperties are important to us","We find it enjoyable or fun to\u003cbr \u002f\u003eprogram in Rust","We need precise control over\u003cbr \u002f\u003eexactly how our software runs","We already know Rust so it's\u003cbr \u002f\u003eour default choice","We find it easy to prototype\u003cbr \u002f\u003ewith","We must interact with existing\u003cbr \u002f\u003eRust code"],"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eWhich of the following statements are reasons why you use Rust at work?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 4157, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("which-statements-apply-to-rust-at-work")) { Plotly.newPlot( "which-statements-apply-to-rust-at-work", [{"alignmentgroup":"True","customdata":[["2023",3201],["2023",1368],["2023",331],["2023",2605],["2023",3116]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["79.4%","33.9%","8.2%","64.6%","77.3%"],"textposition":"outside","x":["Using Rust has helped us\u003cbr \u002f\u003eachieve our goals","Adopting Rust has been\u003cbr \u002f\u003echallenging","Overall, adopting Rust has\u003cbr \u002f\u003eslowed down our team","Using Rust has been worth the\u003cbr \u002f\u003ecost of adoption","We're likely to use Rust again\u003cbr \u002f\u003ein the future"],"xaxis":"x","y":[79.42928314208984,33.94540786743164,8.213398933410645,64.64019775390625,77.32009887695312],"yaxis":"y","type":"bar","textangle":0},{"alignmentgroup":"True","customdata":[["2022",3111],["2022",1672],["2022",398],["2022",2612],["2022",3241]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["71.7%","38.5%","9.2%","60.2%","74.7%"],"textposition":"outside","x":["Using Rust has helped us\u003cbr \u002f\u003eachieve our goals","Adopting Rust has been\u003cbr \u002f\u003echallenging","Overall, adopting Rust has\u003cbr \u002f\u003eslowed down our team","Using Rust has been worth the\u003cbr \u002f\u003ecost of adoption","We're likely to use Rust again\u003cbr \u002f\u003ein the future"],"xaxis":"x","y":[71.69854736328125,38.53422546386719,9.17262077331543,60.19820022583008,74.69462585449219],"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Using Rust has helped us\u003cbr \u002f\u003eachieve our goals","We're likely to use Rust again\u003cbr \u002f\u003ein the future","Using Rust has been worth the\u003cbr \u002f\u003ecost of adoption","Adopting Rust has been\u003cbr \u002f\u003echallenging","Overall, adopting Rust has\u003cbr \u002f\u003eslowed down our team"],"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eWhich of the following statements apply to your experience using Rust at\u003cbr \u002f\u003ework?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 4030, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("technology-domain")) { Plotly.newPlot( "technology-domain", [{"alignmentgroup":"True","customdata":[["2023",162],["2023",367],["2023",1124],["2023",904],["2023",333],["2023",611],["2023",497],["2023",408],["2023",1119],["2023",724],["2023",523],["2023",216],["2023",394],["2023",375],["2023",93],["2023",751],["2023",391],["2023",163],["2023",585],["2023",431],["2023",2180],["2023",265],["2023",410],["2023",832],["2023",159],["2023",321],["2023",255]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["3.9%","8.9%","27.2%","21.8%","8.0%","14.8%","12.0%","9.9%","27.0%","17.5%","12.6%","5.2%","9.5%","9.1%","2.2%","18.1%","9.4%","3.9%","14.1%","10.4%","52.7%","6.4%","9.9%","20.1%","3.8%","7.8%","6.2%"],"textposition":"outside","x":["Audio programming","Blockchain","Cloud computing applications","Cloud computing infrastructure or utilities","Computer graphics","Data science","Desktop computer application frontend","Desktop or mobile libraries or services","Distributed systems","Embedded devices (with operating systems)","Embedded devices (bare metal)","HPC (High-performance [Super]Computing)","IoT (Internet of Things)","Machine learning","Mobile phone application frontend","Computer networking","Programming languages and related tools","Robotics","Computer security","Scientific and\u002for numeric computing","Server-side or \"backend\" application","Simulation","Web application frontend","WebAssembly","Computer Games","Database implementation","Other"],"xaxis":"x","y":[3.9139888286590576,8.866876602172852,27.15631675720215,21.84102439880371,8.045421600341797,14.762020111083984,12.007731437683105,9.857453346252441,27.0355167388916,17.49214744567871,12.635903358459473,5.21865177154541,9.519207000732422,9.060159683227539,2.2469193935394287,18.144479751586914,9.446725845336914,3.9381492137908936,14.133848190307617,10.413143157958984,52.66972732543945,6.402512550354004,9.905774116516113,20.10147476196289,3.8415074348449707,7.755496501922607,6.1609086990356445],"yaxis":"y","type":"bar","textangle":-90},{"alignmentgroup":"True","customdata":[["2022",184],["2022",417],["2022",1219],["2022",1065],["2022",329],["2022",675],["2022",454],["2022",486],["2022",1138],["2022",793],["2022",536],["2022",234],["2022",497],["2022",422],["2022",178],["2022",770],["2022",496],["2022",225],["2022",729],["2022",459],["2022",2461],["2022",252],["2022",555],["2022",828],["2022",364],["2022",11],["2022",6],["2022",17]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["3.9%","8.9%","26.0%","22.7%","7.0%","14.4%","9.7%","10.4%","24.2%","16.9%","11.4%","5.0%","10.6%","9.0%","3.8%","16.4%","10.6%","4.8%","15.5%","9.8%","52.4%","5.4%","11.8%","17.6%","7.8%","0.2%","0.1%","0.4%"],"textposition":"outside","x":["Audio programming","Blockchain","Cloud computing applications","Cloud computing infrastructure or utilities","Computer graphics","Data science","Desktop computer application frontend","Desktop or mobile libraries or services","Distributed systems","Embedded devices (with operating systems)","Embedded devices (bare metal)","HPC (High-performance [Super]Computing)","IoT (Internet of Things)","Machine learning","Mobile phone application frontend","Computer networking","Programming languages and related tools","Robotics","Computer security","Scientific and\u002for numeric computing","Server-side or \"backend\" application","Simulation","Web application frontend","WebAssembly","Other","Computer Games","Computer Games","Database implementation"],"xaxis":"x","y":[3.919062852859497,8.881789207458496,25.96379280090332,22.683706283569336,7.007454872131348,14.376996040344238,9.66986083984375,10.35143756866455,24.23855209350586,16.890308380126953,11.416399955749512,4.984025478363037,10.585729598999023,8.988285064697266,3.7912673950195312,16.400426864624023,10.564430236816406,4.792332172393799,15.527155876159668,9.776357650756836,52.41746139526367,5.367412090301514,11.821085929870605,17.63578224182129,7.752928733825684,0.23429179191589355,0.1277955174446106,0.36208730936050415],"yaxis":"y","type":"bar","textangle":-90}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Server-side or \"backend\" application","Cloud computing applications","Distributed systems","Cloud computing infrastructure or utilities","WebAssembly","Computer networking","Embedded devices (with operating systems)","Data science","Computer security","Embedded devices (bare metal)","Desktop computer application frontend","Scientific and\u002for numeric computing","Web application frontend","Desktop or mobile libraries or services","IoT (Internet of Things)","Programming languages and related tools","Machine learning","Blockchain","Computer graphics","Database implementation","Simulation","Other","HPC (High-performance [Super]Computing)","Robotics","Audio programming","Computer Games","Mobile phone application frontend"],"tickangle":45,"range":[-1,15]},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":600,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eIn what technology domain(s) is Rust used at your organisation?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 4139, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("what-are-your-biggest-worries-about-rust")) { Plotly.newPlot( "what-are-your-biggest-worries-about-rust", [{"alignmentgroup":"True","customdata":[["2023",3983],["2023",1005],["2023",1501],["2023",892],["2023",1040],["2023",903],["2023",1189],["2023",4035],["2023",498],["2023",2663],["2023",2641],["2023",3012],["2023",1665],["2023",804]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["42.5%","10.7%","16.0%","9.5%","11.1%","9.6%","12.7%","43.0%","5.3%","28.4%","28.2%","32.1%","17.8%","8.6%"],"textposition":"outside","x":["Not enough usage in the tech industry","Too much interest from big companies","Not enough open source contributions to the\u003cbr \u002f\u003eecosystem","Doesn't add a specific feature I want","Rust doesn't evolve quickly enough","Instability of the language","Superseded by an alternative","Becomes too complex","Tools and documentation are not accessible\u003cbr \u002f\u003eenough","Rust Foundation not supporting the Rust\u003cbr \u002f\u003eproject properly","Project governance does not scale to match\u003cbr \u002f\u003ethe size\u002frequirements of the community","Developers\u002fmaintainers of the language are\u003cbr \u002f\u003enot properly supported","I'm not worried","Other"],"xaxis":"x","y":[42.489864349365234,10.72114372253418,16.012374877929688,9.515682220458984,11.09451675415039,9.633028030395508,12.684019088745117,43.04458999633789,5.312566757202148,28.408363342285156,28.173673629760742,32.13142776489258,17.76189422607422,8.57691478729248],"yaxis":"y","type":"bar","textangle":-90},{"alignmentgroup":"True","customdata":[["2022",2443],["2022",639],["2022",931],["2022",499],["2022",634],["2022",504],["2022",673],["2022",2500],["2022",312],["2022",1028],["2022",1724],["2022",1982],["2022",520],["2022",0]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2022","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"2022","offsetgroup":"2022","orientation":"v","showlegend":true,"text":["36.7%","9.6%","14.0%","7.5%","9.5%","7.6%","10.1%","37.5%","4.7%","15.4%","25.9%","29.8%","7.8%","N\u002fA"],"textposition":"outside","x":["Not enough usage in the tech industry","Too much interest from big companies","Not enough open source contributions to the\u003cbr \u002f\u003eecosystem","Doesn't add a specific feature I want","Rust doesn't evolve quickly enough","Instability of the language","Superseded by an alternative","Becomes too complex","Tools and documentation are not accessible\u003cbr \u002f\u003eenough","Project governance does not scale to match\u003cbr \u002f\u003ethe size\u002frequirements of the community","Developers\u002fmaintainers of the language are\u003cbr \u002f\u003enot properly supported","I'm not worried","Other","Rust Foundation not supporting the Rust\u003cbr \u002f\u003eproject properly"],"xaxis":"x","y":[36.67617416381836,9.593154907226562,13.97688102722168,7.491367340087891,9.51809024810791,7.566431045532227,10.103588104248047,37.53190231323242,4.683981418609619,15.433117866516113,25.881999969482422,29.755290985107422,7.806635856628418,0.0],"yaxis":"y","type":"bar","textangle":-90}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Becomes too complex","Not enough usage in the tech industry","Developers\u002fmaintainers of the language are\u003cbr \u002f\u003enot properly supported","Rust Foundation not supporting the Rust\u003cbr \u002f\u003eproject properly","Project governance does not scale to match\u003cbr \u002f\u003ethe size\u002frequirements of the community","I'm not worried","Not enough open source contributions to the\u003cbr \u002f\u003eecosystem","Superseded by an alternative","Rust doesn't evolve quickly enough","Too much interest from big companies","Instability of the language","Doesn't add a specific feature I want","Other","Tools and documentation are not accessible\u003cbr \u002f\u003eenough"],"tickangle":55},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":25},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":500,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eWhat are your biggest worries for the future of Rust?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 9374, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":true,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("which-features-do-you-want-stabilized")) { Plotly.newPlot( "which-features-do-you-want-stabilized", [{"alignmentgroup":"True","customdata":[["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003ePriority: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"High Priority","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"High Priority","offsetgroup":"High Priority","orientation":"h","showlegend":true,"text":["34.23%","43.26%","50.55%","36.72%","19.92%","16.85%","54.42%","49.84%","34.43%","30.89%","27.66%","27.73%"],"textposition":"outside","x":[34.23223988730127,43.258529465426015,50.54519873373198,36.718188353702374,19.921875,16.84910086004691,54.421052631578945,49.84121383203952,34.42531926707385,30.894464661942155,27.66333137139494,27.72888972102602],"xaxis":"x","y":["Specialization","Generators\u002fcoroutines","Async closures","If\u002fwhile let chains","Try blocks","Never type","Improved traits","Improved const","Compile time\u003cbr \u002f\u003ereflection","Enum variant types","Allocator trait,\u003cbr \u002f\u003ebetter OOM handling","Stable ABI"],"yaxis":"y","type":"bar"},{"alignmentgroup":"True","customdata":[["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003ePriority: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Medium Priority","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"Medium Priority","offsetgroup":"Medium Priority","orientation":"h","showlegend":true,"text":["39.59%","36.25%","31.36%","34.94%","27.36%","31.53%","35.04%","34.19%","35.87%","39.74%","36.12%","28.76%"],"textposition":"outside","x":[39.58542966391628,36.25250866630177,31.357720717551878,34.93889288281812,27.362351190476193,31.528537920250194,35.03508771929825,34.19195483415667,35.86896168795114,39.74334418693737,36.11928585442417,28.758659427073578],"xaxis":"x","y":["Specialization","Generators\u002fcoroutines","Async closures","If\u002fwhile let chains","Try blocks","Never type","Improved traits","Improved const","Compile time\u003cbr \u002f\u003ereflection","Enum variant types","Allocator trait,\u003cbr \u002f\u003ebetter OOM handling","Stable ABI"],"yaxis":"y","type":"bar"},{"alignmentgroup":"True","customdata":[["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003ePriority: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Low Priority","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"Low Priority","offsetgroup":"Low Priority","orientation":"h","showlegend":true,"text":["21.25%","16.77%","15.21%","23.47%","30.73%","41.03%","9.05%","14.24%","23.54%","23.29%","30.80%","27.67%"],"textposition":"outside","x":[21.251760917689676,16.767013318737455,15.212803376714737,23.47232207045291,30.729166666666668,41.02814698983581,9.05263157894737,14.237826393789696,23.54247640199889,23.290557364489562,30.802432803609967,27.672720464332524],"xaxis":"x","y":["Specialization","Generators\u002fcoroutines","Async closures","If\u002fwhile let chains","Try blocks","Never type","Improved traits","Improved const","Compile time\u003cbr \u002f\u003ereflection","Enum variant types","Allocator trait,\u003cbr \u002f\u003ebetter OOM handling","Stable ABI"],"yaxis":"y","type":"bar"},{"alignmentgroup":"True","customdata":[["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003ePriority: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Should not be prioritised","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"Should not be prioritised","offsetgroup":"Should not be prioritised","orientation":"h","showlegend":true,"text":["4.93%","3.72%","2.88%","4.87%","21.99%","10.59%","1.49%","1.73%","6.16%","6.07%","5.41%","15.84%"],"textposition":"outside","x":[4.930569531092775,3.7219485495347566,2.884277172001407,4.8705966930266,21.986607142857142,10.594214229867084,1.4912280701754386,1.7290049400141143,6.163242642976124,6.071633786630914,5.414949970570924,15.83973038756787],"xaxis":"x","y":["Specialization","Generators\u002fcoroutines","Async closures","If\u002fwhile let chains","Try blocks","Never type","Improved traits","Improved const","Compile time\u003cbr \u002f\u003ereflection","Enum variant types","Allocator trait,\u003cbr \u002f\u003ebetter OOM handling","Stable ABI"],"yaxis":"y","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":"Percent out of the category (%)"},"ticksuffix":"%","fixedrange":true,"range":[0,110],"showgrid":false},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Try blocks","Never type","Stable ABI","Allocator trait,\u003cbr \u002f\u003ebetter OOM handling","Enum variant types","Compile time\u003cbr \u002f\u003ereflection","Specialization","If\u002fwhile let chains","Generators\u002fcoroutines","Async closures","Improved const","Improved traits"],"tickangle":0,"ticksuffix":" ","fixedrange":true},"legend":{"title":{"text":"Priority"},"tracegroupgap":0,"orientation":"h"},"title":{"text":"\u003cb\u003eWhich unimplemented \u00a0(or nightly only) features are you looking for to be\u003cbr \u002f\u003estabilized?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 6737)\u003c\u002fspan\u003e"},"barmode":"relative","height":600,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"meta":"matrix-chart","dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("which-problems-do-you-remember-encountering")) { Plotly.newPlot( "which-problems-do-you-remember-encountering", [{"alignmentgroup":"True","customdata":[["2023",1401],["2023",2396],["2023",2306],["2023",2668],["2023",974],["2023",4825],["2023",4571],["2023",3490],["2023",2728],["2023",352]],"hovertemplate":"Year: %{customdata[0]}\u003cbr \u002f\u003eCount: %{customdata[1]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"2023","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"2023","offsetgroup":"2023","orientation":"v","showlegend":true,"text":["16.2%","27.7%","26.7%","30.9%","11.3%","55.9%","52.9%","40.4%","31.6%","4.1%"],"textposition":"outside","x":["Implementing things on tuples","Splitting things across crates","Having to do iterator\u003cbr \u002f\u003eimplementations manually","Not being able to do enough in\u003cbr \u002f\u003econst fn","Needing to drop down to C ABI\u003cbr \u002f\u003efor Rust plugins","Async","Traits and generics","Borrow checker","Macros","Other"],"xaxis":"x","y":[16.224666595458984,27.747539520263672,26.70526885986328,30.897510528564453,11.27967643737793,55.87724304199219,52.935726165771484,40.416908264160156,31.592357635498047,4.076433181762695],"yaxis":"y","type":"bar","textangle":0}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Async","Traits and generics","Borrow checker","Macros","Not being able to do enough in\u003cbr \u002f\u003econst fn","Splitting things across crates","Having to do iterator\u003cbr \u002f\u003eimplementations manually","Implementing things on tuples","Needing to drop down to C ABI\u003cbr \u002f\u003efor Rust plugins","Other"],"tickangle":45},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{"text":"Percent out of all responses (%)","standoff":50},"range":[0,119],"ticksuffix":"%","fixedrange":true,"nticks":10,"rangemode":"tozero","gridcolor":"rgb(229, 236, 246)"},"legend":{"title":{"text":"Year"},"tracegroupgap":0},"margin":{"t":60,"pad":10,"b":10},"barmode":"group","height":400,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"title":{"text":"\u003cb\u003eWhich of these problems do you recall encountering within the last year?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 8635, multiple answers)\u003c\u002fspan\u003e"},"uniformtext":{"minsize":12,"mode":"show"},"meta":"bar-chart","hovermode":"x unified","plot_bgcolor":"rgb(255, 255, 255)","showlegend":false,"dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; + +window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById("how-should-work-be-prioritized")) { Plotly.newPlot( "how-should-work-be-prioritized", [{"alignmentgroup":"True","customdata":[["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"],["High Priority"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003ePriority: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"High Priority","marker":{"color":"#636efa","pattern":{"shape":""}},"name":"High Priority","offsetgroup":"High Priority","orientation":"h","showlegend":true,"text":["57.45%","44.68%","19.35%","14.37%","13.41%","67.90%","42.79%","39.26%","42.41%","38.00%","32.59%","27.27%","28.92%","40.87%"],"textposition":"outside","x":[57.454709125689206,44.684095860566444,19.347133757961785,14.371464850513679,13.408010862186014,67.90293040293041,42.79274202637214,39.25992779783393,42.414614773629864,38.00137520055008,32.58648711400046,27.26846973422316,28.924240738680613,40.87125099783327],"xaxis":"x","y":["Runtime Performance","Compile Times","Binary Size","Memory usage","Disk space usage","Compiler bugs","Compiler error\u003cbr \u002f\u003emessages","IDE experience","Debugging experience","Documentation tools","Build system (cargo)","Package management","New language\u003cbr \u002f\u003efeatures","Language, stdlib\u003cbr \u002f\u003edocs"],"yaxis":"y","type":"bar"},{"alignmentgroup":"True","customdata":[["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"],["Medium Priority"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003ePriority: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Medium Priority","marker":{"color":"#EF553B","pattern":{"shape":""}},"name":"Medium Priority","offsetgroup":"Medium Priority","orientation":"h","showlegend":true,"text":["29.86%","39.43%","43.19%","31.47%","34.84%","23.03%","41.35%","39.29%","40.17%","41.91%","46.17%","47.34%","43.31%","41.60%"],"textposition":"outside","x":[29.863846067289302,39.433551198257085,43.186988171064606,31.46715918273116,34.83819868748586,23.03113553113553,41.350163417108085,39.293772563176894,40.16793373425621,41.90923676369471,46.1690271650801,47.336377473363775,43.308488152186,41.60109476565172],"xaxis":"x","y":["Runtime Performance","Compile Times","Binary Size","Memory usage","Disk space usage","Compiler bugs","Compiler error\u003cbr \u002f\u003emessages","IDE experience","Debugging experience","Documentation tools","Build system (cargo)","Package management","New language\u003cbr \u002f\u003efeatures","Language, stdlib\u003cbr \u002f\u003edocs"],"yaxis":"y","type":"bar"},{"alignmentgroup":"True","customdata":[["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"],["Low Priority"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003ePriority: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Low Priority","marker":{"color":"#00cc96","pattern":{"shape":""}},"name":"Low Priority","offsetgroup":"Low Priority","orientation":"h","showlegend":true,"text":["10.80%","13.79%","31.76%","42.14%","39.83%","7.84%","13.84%","16.94%","14.92%","17.48%","18.86%","22.21%","23.57%","15.40%"],"textposition":"outside","x":[10.802295487791156,13.790849673202615,31.756141947224748,42.14475354957867,39.82801538809685,7.841117216117216,13.839738532627072,16.94494584837545,14.921139226143199,17.476506990602797,18.86463895983283,22.210513991335908,23.573256202024698,15.39514197742046],"xaxis":"x","y":["Runtime Performance","Compile Times","Binary Size","Memory usage","Disk space usage","Compiler bugs","Compiler error\u003cbr \u002f\u003emessages","IDE experience","Debugging experience","Documentation tools","Build system (cargo)","Package management","New language\u003cbr \u002f\u003efeatures","Language, stdlib\u003cbr \u002f\u003edocs"],"yaxis":"y","type":"bar"},{"alignmentgroup":"True","customdata":[["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"],["Should not be prioritised"]],"hovertemplate":"Category: %{y}\u003cbr \u002f\u003ePriority: %{customdata[0]}\u003cbr \u002f\u003ePercent: %{text}\u003cextra\u003e\u003c\u002fextra\u003e","legendgroup":"Should not be prioritised","marker":{"color":"#ab63fa","pattern":{"shape":""}},"name":"Should not be prioritised","offsetgroup":"Should not be prioritised","orientation":"h","showlegend":true,"text":["1.88%","2.09%","5.71%","12.02%","11.93%","1.22%","2.02%","4.50%","2.50%","2.61%","2.38%","3.18%","4.19%","2.13%"],"textposition":"outside","x":[1.8791493192303363,2.091503267973856,5.709736123748862,12.016622417176498,11.925775062231274,1.22481684981685,2.017356023892708,4.501353790613718,2.496312265970725,2.612881045152418,2.379846761086603,3.1846388010771576,4.194014907108688,2.1325122590945376],"xaxis":"x","y":["Runtime Performance","Compile Times","Binary Size","Memory usage","Disk space usage","Compiler bugs","Compiler error\u003cbr \u002f\u003emessages","IDE experience","Debugging experience","Documentation tools","Build system (cargo)","Package management","New language\u003cbr \u002f\u003efeatures","Language, stdlib\u003cbr \u002f\u003edocs"],"yaxis":"y","type":"bar"}], {"template":{"data":{"histogram2dcontour":[{"type":"histogram2dcontour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"choropleth":[{"type":"choropleth","colorbar":{"outlinewidth":0,"ticks":""}}],"histogram2d":[{"type":"histogram2d","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmap":[{"type":"heatmap","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"heatmapgl":[{"type":"heatmapgl","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"contourcarpet":[{"type":"contourcarpet","colorbar":{"outlinewidth":0,"ticks":""}}],"contour":[{"type":"contour","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"surface":[{"type":"surface","colorbar":{"outlinewidth":0,"ticks":""},"colorscale":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]}],"mesh3d":[{"type":"mesh3d","colorbar":{"outlinewidth":0,"ticks":""}}],"scatter":[{"fillpattern":{"fillmode":"overlay","size":10,"solidity":0.2},"type":"scatter"}],"parcoords":[{"type":"parcoords","line":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolargl":[{"type":"scatterpolargl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"bar":[{"error_x":{"color":"#2a3f5f"},"error_y":{"color":"#2a3f5f"},"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"bar"}],"scattergeo":[{"type":"scattergeo","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterpolar":[{"type":"scatterpolar","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"histogram":[{"marker":{"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"histogram"}],"scattergl":[{"type":"scattergl","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatter3d":[{"type":"scatter3d","line":{"colorbar":{"outlinewidth":0,"ticks":""}},"marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattermapbox":[{"type":"scattermapbox","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scatterternary":[{"type":"scatterternary","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"scattercarpet":[{"type":"scattercarpet","marker":{"colorbar":{"outlinewidth":0,"ticks":""}}}],"carpet":[{"aaxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"baxis":{"endlinecolor":"#2a3f5f","gridcolor":"white","linecolor":"white","minorgridcolor":"white","startlinecolor":"#2a3f5f"},"type":"carpet"}],"table":[{"cells":{"fill":{"color":"#EBF0F8"},"line":{"color":"white"}},"header":{"fill":{"color":"#C8D4E3"},"line":{"color":"white"}},"type":"table"}],"barpolar":[{"marker":{"line":{"color":"#E5ECF6","width":0.5},"pattern":{"fillmode":"overlay","size":10,"solidity":0.2}},"type":"barpolar"}],"pie":[{"automargin":true,"type":"pie"}]},"layout":{"autotypenumbers":"strict","colorway":["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"],"font":{"color":"#2a3f5f"},"hovermode":"closest","hoverlabel":{"align":"left"},"paper_bgcolor":"white","plot_bgcolor":"#E5ECF6","polar":{"bgcolor":"#E5ECF6","angularaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"radialaxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"ternary":{"bgcolor":"#E5ECF6","aaxis":{"gridcolor":"white","linecolor":"white","ticks":""},"baxis":{"gridcolor":"white","linecolor":"white","ticks":""},"caxis":{"gridcolor":"white","linecolor":"white","ticks":""}},"coloraxis":{"colorbar":{"outlinewidth":0,"ticks":""}},"colorscale":{"sequential":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"sequentialminus":[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]],"diverging":[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]},"xaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"yaxis":{"gridcolor":"white","linecolor":"white","ticks":"","title":{"standoff":15},"zerolinecolor":"white","automargin":true,"zerolinewidth":2},"scene":{"xaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"yaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2},"zaxis":{"backgroundcolor":"#E5ECF6","gridcolor":"white","linecolor":"white","showbackground":true,"ticks":"","zerolinecolor":"white","gridwidth":2}},"shapedefaults":{"line":{"color":"#2a3f5f"}},"annotationdefaults":{"arrowcolor":"#2a3f5f","arrowhead":0,"arrowwidth":1},"geo":{"bgcolor":"white","landcolor":"#E5ECF6","subunitcolor":"white","showland":true,"showlakes":true,"lakecolor":"white"},"title":{"x":0.05},"mapbox":{"style":"light"}}},"xaxis":{"anchor":"y","domain":[0.0,1.0],"title":{"text":"Percent out of the category (%)"},"ticksuffix":"%","fixedrange":true,"range":[0,110],"showgrid":false},"yaxis":{"anchor":"x","domain":[0.0,1.0],"title":{},"categoryorder":"array","categoryarray":["Memory usage","Disk space usage","Binary Size","New language\u003cbr \u002f\u003efeatures","Package management","Build system (cargo)","IDE experience","Documentation tools","Language, stdlib\u003cbr \u002f\u003edocs","Debugging experience","Compiler error\u003cbr \u002f\u003emessages","Compile Times","Runtime Performance","Compiler bugs"],"tickangle":0,"ticksuffix":" ","fixedrange":true},"legend":{"title":{"text":"Priority"},"tracegroupgap":0,"y":-0.1,"orientation":"h"},"title":{"text":"\u003cb\u003eIn your opinion, how should work on the following aspects of Rust be\u003cbr \u002f\u003eprioritised?\u003c\u002fb\u003e\u003cbr \u002f\u003e\u003cspan style=\"font-size: 0.8em;\"\u003e(total responses = 9527)\u003c\u002fspan\u003e"},"barmode":"relative","height":800,"hoverlabel":{"font":{"size":16,"family":"Rockwell"},"bgcolor":"white"},"meta":"matrix-chart","dragmode":"pan"}, {"modeBarButtonsToRemove": ["zoom", "pan", "lasso2d", "select", "autoScale", "toImage"], "displaylogo": false, "responsive": true} ) }; +function deepCopy(obj) { + return JSON.parse(JSON.stringify(obj)); +} + +// Angle axis ticks and make bar chart labels vertical on small displays +function relayoutCharts() { + if (window.innerWidth > 800) return; + + console.log("Relayouting charts"); + var bar_charts = document.getElementsByClassName("bar-chart"); + for (var i = 0; i < bar_charts.length; i++) { + var chart = bar_charts[i]; + + // We need to extract and copy the original layout, otherwise it would be lost + // when relayouting. + var layout = deepCopy(chart.layout); + layout.xaxis.tickangle = 90; + layout.autosize = false; + layout.width = "100%"; + Plotly.relayout(chart, layout); + Plotly.restyle(chart, {textangle: -90}); + } + var matrix_charts = document.getElementsByClassName("matrix-chart"); + for (var i = 0; i < matrix_charts.length; i++) { + var chart = matrix_charts[i]; + var layout = deepCopy(chart.layout); + layout.autosize = false; + layout.width = "100%"; + layout.legend.y = -0.3; + layout.legend.yanchor = "bottom"; + Plotly.relayout(chart, layout); + } +} + +window.addEventListener("resize", relayoutCharts); +document.addEventListener("DOMContentLoaded", relayoutCharts); diff --git a/static/scripts/plotly-basic-2.29.0.min.js b/static/scripts/plotly-basic-2.29.0.min.js new file mode 100644 index 000000000..7c44eb1e2 --- /dev/null +++ b/static/scripts/plotly-basic-2.29.0.min.js @@ -0,0 +1,8 @@ +/** +* plotly.js (basic - minified) v2.29.0 +* Copyright 2012-2024, Plotly, Inc. +* All rights reserved. +* Licensed under the MIT license +*/ +/*! For license information please see plotly-basic.min.js.LICENSE.txt */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Plotly=t():e.Plotly=t()}(self,(function(){return function(){var e={9288:function(e,t,r){"use strict";var n=r(3400),a={"X,X div":'direction:ltr;font-family:"Open Sans",verdana,arial,sans-serif;margin:0;padding:0;',"X input,X button":'font-family:"Open Sans",verdana,arial,sans-serif;',"X input:focus,X button:focus":"outline:none;","X a":"text-decoration:none;","X a:hover":"text-decoration:none;","X .crisp":"shape-rendering:crispEdges;","X .user-select-none":"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;","X svg":"overflow:hidden;","X svg a":"fill:#447adb;","X svg a:hover":"fill:#3c6dc5;","X .main-svg":"position:absolute;top:0;left:0;pointer-events:none;","X .main-svg .draglayer":"pointer-events:all;","X .cursor-default":"cursor:default;","X .cursor-pointer":"cursor:pointer;","X .cursor-crosshair":"cursor:crosshair;","X .cursor-move":"cursor:move;","X .cursor-col-resize":"cursor:col-resize;","X .cursor-row-resize":"cursor:row-resize;","X .cursor-ns-resize":"cursor:ns-resize;","X .cursor-ew-resize":"cursor:ew-resize;","X .cursor-sw-resize":"cursor:sw-resize;","X .cursor-s-resize":"cursor:s-resize;","X .cursor-se-resize":"cursor:se-resize;","X .cursor-w-resize":"cursor:w-resize;","X .cursor-e-resize":"cursor:e-resize;","X .cursor-nw-resize":"cursor:nw-resize;","X .cursor-n-resize":"cursor:n-resize;","X .cursor-ne-resize":"cursor:ne-resize;","X .cursor-grab":"cursor:-webkit-grab;cursor:grab;","X .modebar":"position:absolute;top:2px;right:2px;","X .ease-bg":"-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;","X .modebar--hover>:not(.watermark)":"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":'content:"";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',"X [data-title]:after":"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;",Y:'font-family:"Open Sans",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',"Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(var i in a){var o=i.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier");n.addStyleRule(o,a[i])}},6712:function(e,t,r){"use strict";e.exports=r(1843)},7240:function(e,t,r){"use strict";e.exports=r(1132)},6144:function(e,t,r){"use strict";e.exports=r(7776)},2016:function(e,t,r){"use strict";e.exports=r(4884)},5556:function(e,t,r){"use strict";e.exports=r(6744)},6489:function(e,t,r){"use strict";e.exports=r(2028)},3472:function(e,t,r){"use strict";var n=r(2016);n.register([r(7240),r(260),r(6712),r(5556),r(6489),r(7312),r(6144)]),e.exports=n},260:function(e,t,r){"use strict";e.exports=r(5792)},7312:function(e,t,r){"use strict";e.exports=r(6272)},2196:function(e){"use strict";e.exports=[{path:"",backoff:0},{path:"M-2.4,-3V3L0.6,0Z",backoff:.6},{path:"M-3.7,-2.5V2.5L1.3,0Z",backoff:1.3},{path:"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",backoff:1.55},{path:"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",backoff:1.6},{path:"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",backoff:2},{path:"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",backoff:0,noRotate:!0},{path:"M2,2V-2H-2V2Z",backoff:0,noRotate:!0}]},3916:function(e,t,r){"use strict";var n=r(2196),a=r(5376),i=r(3816),o=r(1780).templatedArray;r(6208),e.exports=o("annotation",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},text:{valType:"string",editType:"calc+arraydraw"},textangle:{valType:"angle",dflt:0,editType:"calc+arraydraw"},font:a({editType:"calc+arraydraw",colorEditType:"arraydraw"}),width:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},height:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},align:{valType:"enumerated",values:["left","center","right"],dflt:"center",editType:"arraydraw"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"arraydraw"},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},bordercolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},borderpad:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},borderwidth:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},showarrow:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},arrowcolor:{valType:"color",editType:"arraydraw"},arrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},startarrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},arrowside:{valType:"flaglist",flags:["end","start"],extras:["none"],dflt:"end",editType:"arraydraw"},arrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},startarrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},arrowwidth:{valType:"number",min:.1,editType:"calc+arraydraw"},standoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},startstandoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},ax:{valType:"any",editType:"calc+arraydraw"},ay:{valType:"any",editType:"calc+arraydraw"},axref:{valType:"enumerated",dflt:"pixel",values:["pixel",i.idRegex.x.toString()],editType:"calc"},ayref:{valType:"enumerated",dflt:"pixel",values:["pixel",i.idRegex.y.toString()],editType:"calc"},xref:{valType:"enumerated",values:["paper",i.idRegex.x.toString()],editType:"calc"},x:{valType:"any",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},xshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},yref:{valType:"enumerated",values:["paper",i.idRegex.y.toString()],editType:"calc"},y:{valType:"any",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"auto",editType:"calc+arraydraw"},yshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},clicktoshow:{valType:"enumerated",values:[!1,"onoff","onout"],dflt:!1,editType:"arraydraw"},xclick:{valType:"any",editType:"arraydraw"},yclick:{valType:"any",editType:"arraydraw"},hovertext:{valType:"string",editType:"arraydraw"},hoverlabel:{bgcolor:{valType:"color",editType:"arraydraw"},bordercolor:{valType:"color",editType:"arraydraw"},font:a({editType:"arraydraw"}),editType:"arraydraw"},captureevents:{valType:"boolean",editType:"arraydraw"},editType:"calc",_deprecated:{ref:{valType:"string",editType:"calc"}}})},272:function(e,t,r){"use strict";var n=r(3400),a=r(4460),i=r(6196).draw;function o(e){var t=e._fullLayout;n.filterVisible(t.annotations).forEach((function(t){var r=a.getFromId(e,t.xref),n=a.getFromId(e,t.yref),i=a.getRefType(t.xref),o=a.getRefType(t.yref);t._extremes={},"range"===i&&l(t,r),"range"===o&&l(t,n)}))}function l(e,t){var r,n=t._id,i=n.charAt(0),o=e[i],l=e["a"+i],s=e[i+"ref"],c=e["a"+i+"ref"],u=e["_"+i+"padplus"],f=e["_"+i+"padminus"],d={x:1,y:-1}[i]*e[i+"shift"],h=3*e.arrowsize*e.arrowwidth||0,p=h+d,v=h-d,g=3*e.startarrowsize*e.arrowwidth||0,y=g+d,m=g-d;if(c===s){var x=a.findExtremes(t,[t.r2c(o)],{ppadplus:p,ppadminus:v}),b=a.findExtremes(t,[t.r2c(l)],{ppadplus:Math.max(u,y),ppadminus:Math.max(f,m)});r={min:[x.min[0],b.min[0]],max:[x.max[0],b.max[0]]}}else y=l?y+l:y,m=l?m-l:m,r=a.findExtremes(t,[t.r2c(o)],{ppadplus:Math.max(u,p,y),ppadminus:Math.max(f,v,m)});e._extremes[n]=r}e.exports=function(e){var t=e._fullLayout;if(n.filterVisible(t.annotations).length&&e._fullData.length)return n.syncOrAsync([i,o],e)}},2300:function(e,t,r){"use strict";var n=r(3400),a=r(4040),i=r(1780).arrayEditor;function o(e,t){var r,n,a,i,o,s,c,u=e._fullLayout.annotations,f=[],d=[],h=[],p=(t||[]).length;for(r=0;r0||r.explicitOff.length>0},onClick:function(e,t){var r,l,s=o(e,t),c=s.on,u=s.off.concat(s.explicitOff),f={},d=e._fullLayout.annotations;if(c.length||u.length){for(r=0;r2/3?"right":"center"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[t]}for(var Z=!1,W=["x","y"],X=0;X1)&&(ne===re?((he=ae.r2fraction(t["a"+te]))<0||he>1)&&(Z=!0):Z=!0),J=ae._offset+ae.r2p(t[te]),$=.5}else{var pe="domain"===de;"x"===te?(Q=t[te],J=pe?ae._offset+ae._length*Q:J=T.l+T.w*Q):(Q=1-t[te],J=pe?ae._offset+ae._length*Q:J=T.t+T.h*Q),$=t.showarrow?.5:Q}if(t.showarrow){fe.head=J;var ve=t["a"+te];if(ee=oe*U(.5,t.xanchor)-le*U(.5,t.yanchor),ne===re){var ge=s.getRefType(ne);"domain"===ge?("y"===te&&(ve=1-ve),fe.tail=ae._offset+ae._length*ve):"paper"===ge?"y"===te?(ve=1-ve,fe.tail=T.t+T.h*ve):fe.tail=T.l+T.w*ve:fe.tail=ae._offset+ae.r2p(ve),K=ee}else fe.tail=J+ve,K=ee+ve;fe.text=fe.tail+ee;var ye=w["x"===te?"width":"height"];if("paper"===re&&(fe.head=o.constrain(fe.head,1,ye-1)),"pixel"===ne){var me=-Math.max(fe.tail-3,fe.text),xe=Math.min(fe.tail+3,fe.text)-ye;me>0?(fe.tail+=me,fe.text+=me):xe>0&&(fe.tail-=xe,fe.text-=xe)}fe.tail+=ue,fe.head+=ue}else K=ee=se*U($,ce),fe.text=J+ee;fe.text+=ue,ee+=ue,K+=ue,t["_"+te+"padplus"]=se/2+K,t["_"+te+"padminus"]=se/2-K,t["_"+te+"size"]=se,t["_"+te+"shift"]=ee}if(Z)N.remove();else{var be=0,_e=0;if("left"!==t.align&&(be=(k-b)*("center"===t.align?.5:1)),"top"!==t.valign&&(_e=(z-_)*("middle"===t.valign?.5:1)),f)n.select("svg").attr({x:H+be-1,y:H+_e}).call(u.setClipUrl,j?D:null,e);else{var we=H+_e-v.top,Te=H+be-v.left;q.call(d.positionText,Te,we).call(u.setClipUrl,j?D:null,e)}Y.select("rect").call(u.setRect,H,H,k,z),B.call(u.setRect,F/2,F/2,E-F,V-F),N.call(u.setTranslate,Math.round(O.x.text-E/2),Math.round(O.y.text-V/2)),I.attr({transform:"rotate("+C+","+O.x.text+","+O.y.text+")"});var Me,ke=function(r,n){P.selectAll(".annotation-arrow-g").remove();var s=O.x.head,f=O.y.head,d=O.x.tail+r,h=O.y.tail+n,v=O.x.text+r,b=O.y.text+n,_=o.rotationXYMatrix(C,v,b),w=o.apply2DTransform(_),k=o.apply2DTransform2(_),D=+B.attr("width"),R=+B.attr("height"),z=v-.5*D,F=z+D,E=b-.5*R,H=E+R,j=[[z,E,z,H],[z,H,F,H],[F,H,F,E],[F,E,z,E]].map(k);if(!j.reduce((function(e,t){return e^!!o.segmentsIntersect(s,f,s+1e6,f+1e6,t[0],t[1],t[2],t[3])}),!1)){j.forEach((function(e){var t=o.segmentsIntersect(d,h,s,f,e[0],e[1],e[2],e[3]);t&&(d=t.x,h=t.y)}));var Y=t.arrowwidth,V=t.arrowcolor,U=t.arrowside,q=P.append("g").style({opacity:c.opacity(V)}).classed("annotation-arrow-g",!0),G=q.append("path").attr("d","M"+d+","+h+"L"+s+","+f).style("stroke-width",Y+"px").call(c.stroke,c.rgb(V));if(g(G,U,t),M.annotationPosition&&G.node().parentNode&&!i){var Z=s,W=f;if(t.standoff){var X=Math.sqrt(Math.pow(s-d,2)+Math.pow(f-h,2));Z+=t.standoff*(d-s)/X,W+=t.standoff*(h-f)/X}var J,K,Q=q.append("path").classed("annotation-arrow",!0).classed("anndrag",!0).classed("cursor-move",!0).attr({d:"M3,3H-3V-3H3ZM0,0L"+(d-Z)+","+(h-W),transform:l(Z,W)}).style("stroke-width",Y+6+"px").call(c.stroke,"rgba(0,0,0,0)").call(c.fill,"rgba(0,0,0,0)");p.init({element:Q.node(),gd:e,prepFn:function(){var e=u.getTranslate(N);J=e.x,K=e.y,y&&y.autorange&&A(y._name+".autorange",!0),x&&x.autorange&&A(x._name+".autorange",!0)},moveFn:function(e,r){var n=w(J,K),a=n[0]+e,i=n[1]+r;N.call(u.setTranslate,a,i),L("x",m(y,e,"x",T,t)),L("y",m(x,r,"y",T,t)),t.axref===t.xref&&L("ax",m(y,e,"ax",T,t)),t.ayref===t.yref&&L("ay",m(x,r,"ay",T,t)),q.attr("transform",l(e,r)),I.attr({transform:"rotate("+C+","+a+","+i+")"})},doneFn:function(){a.call("_guiRelayout",e,S());var t=document.querySelector(".js-notes-box-panel");t&&t.redraw(t.selectedObj)}})}}};t.showarrow&&ke(0,0),R&&p.init({element:N.node(),gd:e,prepFn:function(){Me=I.attr("transform")},moveFn:function(e,r){var n="pointer";if(t.showarrow)t.axref===t.xref?L("ax",m(y,e,"ax",T,t)):L("ax",t.ax+e),t.ayref===t.yref?L("ay",m(x,r,"ay",T.w,t)):L("ay",t.ay+r),ke(e,r);else{if(i)return;var a,o;if(y)a=m(y,e,"x",T,t);else{var s=t._xsize/T.w,c=t.x+(t._xshift-t.xshift)/T.w-s/2;a=p.align(c+e/T.w,s,0,1,t.xanchor)}if(x)o=m(x,r,"y",T,t);else{var u=t._ysize/T.h,f=t.y-(t._yshift+t.yshift)/T.h-u/2;o=p.align(f-r/T.h,u,0,1,t.yanchor)}L("x",a),L("y",o),y&&x||(n=p.getCursor(y?.5:a,x?.5:o,t.xanchor,t.yanchor))}I.attr({transform:l(e,r)+Me}),h(N,n)},clickFn:function(r,n){t.captureevents&&e.emit("plotly_clickannotation",G(n))},doneFn:function(){h(N),a.call("_guiRelayout",e,S());var t=document.querySelector(".js-notes-box-panel");t&&t.redraw(t.selectedObj)}})}}}e.exports={draw:function(e){var t=e._fullLayout;t._infolayer.selectAll(".annotation").remove();for(var r=0;r=0,x=t.indexOf("end")>=0,b=p.backoff*g+r.standoff,_=v.backoff*y+r.startstandoff;if("line"===h.nodeName){o={x:+e.attr("x1"),y:+e.attr("y1")},u={x:+e.attr("x2"),y:+e.attr("y2")};var w=o.x-u.x,T=o.y-u.y;if(d=(f=Math.atan2(T,w))+Math.PI,b&&_&&b+_>Math.sqrt(w*w+T*T))return void R();if(b){if(b*b>w*w+T*T)return void R();var M=b*Math.cos(f),k=b*Math.sin(f);u.x+=M,u.y+=k,e.attr({x2:u.x,y2:u.y})}if(_){if(_*_>w*w+T*T)return void R();var A=_*Math.cos(f),L=_*Math.sin(f);o.x-=A,o.y-=L,e.attr({x1:o.x,y1:o.y})}}else if("path"===h.nodeName){var S=h.getTotalLength(),D="";if(S1){c=!0;break}}c?e.fullLayout._infolayer.select(".annotation-"+e.id+'[data-index="'+l+'"]').remove():(s._pdata=a(e.glplot.cameraParams,[t.xaxis.r2l(s.x)*r[0],t.yaxis.r2l(s.y)*r[1],t.zaxis.r2l(s.z)*r[2]]),n(e.graphDiv,s,l,e.id,s._xa,s._ya))}}},6864:function(e,t,r){"use strict";var n=r(4040),a=r(3400);e.exports={moduleType:"component",name:"annotations3d",schema:{subplots:{scene:{annotations:r(5899)}}},layoutAttributes:r(5899),handleDefaults:r(2808),includeBasePlot:function(e,t){var r=n.subplotsRegistry.gl3d;if(r)for(var i=r.attrRegex,o=Object.keys(e),l=0;l=0))return e;if(3===o)n[o]>1&&(n[o]=1);else if(n[o]>=1)return e}var l=Math.round(255*n[0])+", "+Math.round(255*n[1])+", "+Math.round(255*n[2]);return i?"rgba("+l+", "+n[3]+")":"rgb("+l+")"}o.tinyRGB=function(e){var t=e.toRgb();return"rgb("+Math.round(t.r)+", "+Math.round(t.g)+", "+Math.round(t.b)+")"},o.rgb=function(e){return o.tinyRGB(n(e))},o.opacity=function(e){return e?n(e).getAlpha():0},o.addOpacity=function(e,t){var r=n(e).toRgb();return"rgba("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+", "+t+")"},o.combine=function(e,t){var r=n(e).toRgb();if(1===r.a)return n(e).toRgbString();var a=n(t||c).toRgb(),i=1===a.a?a:{r:255*(1-a.a)+a.r*a.a,g:255*(1-a.a)+a.g*a.a,b:255*(1-a.a)+a.b*a.a},o={r:i.r*(1-r.a)+r.r*r.a,g:i.g*(1-r.a)+r.g*r.a,b:i.b*(1-r.a)+r.b*r.a};return n(o).toRgbString()},o.contrast=function(e,t,r){var a=n(e);return 1!==a.getAlpha()&&(a=n(o.combine(e,c))),(a.isDark()?t?a.lighten(t):c:r?a.darken(r):s).toString()},o.stroke=function(e,t){var r=n(t);e.style({stroke:o.tinyRGB(r),"stroke-opacity":r.getAlpha()})},o.fill=function(e,t){var r=n(t);e.style({fill:o.tinyRGB(r),"fill-opacity":r.getAlpha()})},o.clean=function(e){if(e&&"object"==typeof e){var t,r,n,a,l=Object.keys(e);for(t=0;t0?n>=s:n<=s));a++)n>u&&n0?n>=s:n<=s));a++)n>r[0]&&n1){var he=Math.pow(10,Math.floor(Math.log(de)/Math.LN10));ue*=he*c.roundUp(de/he,[2,5,10]),(Math.abs(G.start)/G.size+1e-6)%1<2e-6&&(se.tick0=0)}se.dtick=ue}se.domain=o?[oe+P/E.h,oe+$-P/E.h]:[oe+C/E.w,oe+$-C/E.w],se.setScale(),e.attr("transform",u(Math.round(E.l),Math.round(E.t)));var pe,ve=e.select("."+k.cbtitleunshift).attr("transform",u(-Math.round(E.l),-Math.round(E.t))),ge=se.ticklabelposition,ye=se.title.font.size,me=e.select("."+k.cbaxis),xe=0,be=0;function _e(n,a){var i={propContainer:se,propName:t._propPrefix+"title",traceIndex:t._traceIndex,_meta:t._meta,placeholder:F._dfltTitle.colorbar,containerGroup:e.select("."+k.cbtitle)},o="h"===n.charAt(0)?n.substr(1):"h"+n;e.selectAll("."+o+",."+o+"-math-group").remove(),v.draw(r,n,f(i,a||{}))}return c.syncOrAsync([i.previousPromises,function(){var e,t;(o&&ce||!o&&!ce)&&("top"===Y&&(e=C+E.l+ee*I,t=P+E.t+te*(1-oe-$)+3+.75*ye),"bottom"===Y&&(e=C+E.l+ee*I,t=P+E.t+te*(1-oe)-3-.25*ye),"right"===Y&&(t=P+E.t+te*R+3+.75*ye,e=C+E.l+ee*oe),_e(se._id+"title",{attributes:{x:e,y:t,"text-anchor":o?"start":"middle"}}))},function(){if(!o&&!ce||o&&ce){var i,s=e.select("."+k.cbtitle),f=s.select("text"),d=[-A/2,A/2],p=s.select(".h"+se._id+"title-math-group").node(),v=15.6;if(f.node()&&(v=parseInt(f.node().style.fontSize,10)*w),p?(i=h.bBox(p),be=i.width,(xe=i.height)>v&&(d[1]-=(xe-v)/2)):f.node()&&!f.classed(k.jsPlaceholder)&&(i=h.bBox(f.node()),be=i.width,xe=i.height),o){if(xe){if(xe+=5,"top"===Y)se.domain[1]-=xe/E.h,d[1]*=-1;else{se.domain[0]+=xe/E.h;var y=g.lineCount(f);d[1]+=(1-y)*v}s.attr("transform",u(d[0],d[1])),se.setScale()}}else be&&("right"===Y&&(se.domain[0]+=(be+ye/2)/E.w),s.attr("transform",u(d[0],d[1])),se.setScale())}e.selectAll("."+k.cbfills+",."+k.cblines).attr("transform",o?u(0,Math.round(E.h*(1-se.domain[1]))):u(Math.round(E.w*se.domain[0]),0)),me.attr("transform",o?u(0,Math.round(-E.t)):u(Math.round(-E.l),0));var m=e.select("."+k.cbfills).selectAll("rect."+k.cbfill).attr("style","").data(W);m.enter().append("rect").classed(k.cbfill,!0).attr("style",""),m.exit().remove();var x=V.map(se.c2p).map(Math.round).sort((function(e,t){return e-t}));m.each((function(e,i){var l=[0===i?V[0]:(W[i]+W[i-1])/2,i===W.length-1?V[1]:(W[i]+W[i+1])/2].map(se.c2p).map(Math.round);o&&(l[1]=c.constrain(l[1]+(l[1]>l[0])?1:-1,x[0],x[1]));var s=n.select(this).attr(o?"x":"y",re).attr(o?"y":"x",n.min(l)).attr(o?"width":"height",Math.max(J,2)).attr(o?"height":"width",Math.max(n.max(l)-n.min(l),2));if(t._fillgradient)h.gradient(s,r,t._id,o?"vertical":"horizontalreversed",t._fillgradient,"fill");else{var u=q(e).replace("e-","");s.attr("fill",a(u).toHexString())}}));var b=e.select("."+k.cblines).selectAll("path."+k.cbline).data(B.color&&B.width?X:[]);b.enter().append("path").classed(k.cbline,!0),b.exit().remove(),b.each((function(e){var t=re,r=Math.round(se.c2p(e))+B.width/2%1;n.select(this).attr("d","M"+(o?t+","+r:r+","+t)+(o?"h":"v")+J).call(h.lineGroupStyle,B.width,U(e),B.dash)})),me.selectAll("g."+se._id+"tick,path").remove();var _=re+J+(A||0)/2-("outside"===t.ticks?1:0),T=l.calcTicks(se),M=l.getTickSigns(se)[2];return l.drawTicks(r,se,{vals:"inside"===se.ticks?l.clipEnds(se,T):T,layer:me,path:l.makeTickPath(se,_,M),transFn:l.makeTransTickFn(se)}),l.drawLabels(r,se,{vals:T,layer:me,transFn:l.makeTransTickLabelFn(se),labelFns:l.makeLabelFns(se,_)})},function(){if(o&&!ce||!o&&ce){var e,a,i=se.position||0,l=se._offset+se._length/2;if("right"===Y)a=l,e=E.l+ee*i+10+ye*(se.showticklabels?1:.5);else if(e=l,"bottom"===Y&&(a=E.t+te*i+10+(-1===ge.indexOf("inside")?se.tickfont.size:0)+("intside"!==se.ticks&&t.ticklen||0)),"top"===Y){var s=j.text.split("
    ").length;a=E.t+te*i+10-J-w*ye*s}_e((o?"h":"v")+se._id+"title",{avoid:{selection:n.select(r).selectAll("g."+se._id+"tick"),side:Y,offsetTop:o?0:E.t,offsetLeft:o?E.l:0,maxShift:o?F.width:F.height},attributes:{x:e,y:a,"text-anchor":"middle"},transform:{rotate:o?-90:0,offset:0}})}},i.previousPromises,function(){var n,l=J+A/2;-1===ge.indexOf("inside")&&(n=h.bBox(me.node()),l+=o?n.width:n.height),pe=ve.select("text");var c=0,f=o&&"top"===Y,v=!o&&"right"===Y,g=0;if(pe.node()&&!pe.classed(k.jsPlaceholder)){var m,x=ve.select(".h"+se._id+"title-math-group").node();x&&(o&&ce||!o&&!ce)?(c=(n=h.bBox(x)).width,m=n.height):(c=(n=h.bBox(ve.node())).right-E.l-(o?re:le),m=n.bottom-E.t-(o?le:re),o||"top"!==Y||(l+=n.height,g=n.height)),v&&(pe.attr("transform",u(c/2+ye/2,0)),c*=2),l=Math.max(l,o?c:m)}var b=2*(o?C:P)+l+L+A/2,w=0;!o&&j.text&&"bottom"===O&&R<=0&&(b+=w=b/2,g+=w),F._hColorbarMoveTitle=w,F._hColorbarMoveCBTitle=g;var H=L+A,B=(o?re:le)-H/2-(o?C:0),V=(o?le:re)-(o?Q:P+g-w);e.select("."+k.cbbg).attr("x",B).attr("y",V).attr(o?"width":"height",Math.max(b-w,2)).attr(o?"height":"width",Math.max(Q+H,2)).call(p.fill,S).call(p.stroke,t.bordercolor).style("stroke-width",L);var U=v?Math.max(c-10,0):0;e.selectAll("."+k.cboutline).attr("x",(o?re:le+C)+U).attr("y",(o?le+P-Q:re)+(f?xe:0)).attr(o?"width":"height",Math.max(J,2)).attr(o?"height":"width",Math.max(Q-(o?2*P+xe:2*C+U),2)).call(p.stroke,t.outlinecolor).style({fill:"none","stroke-width":A});var q=o?ne*b:0,G=o?0:(1-ae)*b-g;if(q=N?E.l-q:-q,G=z?E.t-G:-G,e.attr("transform",u(q,G)),!o&&(L||a(S).getAlpha()&&!a.equals(F.paper_bgcolor,S))){var Z=me.selectAll("text"),W=Z[0].length,X=e.select("."+k.cbbg).node(),K=h.bBox(X),$=h.getTranslate(e);Z.each((function(e,t){var r=W-1;if(0===t||t===r){var n,a=h.bBox(this),i=h.getTranslate(this);if(t===r){var o=a.right+i.x;(n=K.right+$.x+le-L-2+I-o)>0&&(n=0)}else if(0===t){var l=a.left+i.x;(n=K.left+$.x+le+L+2-l)<0&&(n=0)}n&&(W<3?this.setAttribute("transform","translate("+n+",0) "+this.getAttribute("transform")):this.setAttribute("visibility","hidden"))}}))}var ee={},te=T[D],ie=M[D],oe=T[O],ue=M[O],fe=b-J;o?("pixels"===d?(ee.y=R,ee.t=Q*oe,ee.b=Q*ue):(ee.t=ee.b=0,ee.yt=R+s*oe,ee.yb=R-s*ue),"pixels"===_?(ee.x=I,ee.l=b*te,ee.r=b*ie):(ee.l=fe*te,ee.r=fe*ie,ee.xl=I-y*te,ee.xr=I+y*ie)):("pixels"===d?(ee.x=I,ee.l=Q*te,ee.r=Q*ie):(ee.l=ee.r=0,ee.xl=I+s*te,ee.xr=I-s*ie),"pixels"===_?(ee.y=1-R,ee.t=b*oe,ee.b=b*ue):(ee.t=fe*oe,ee.b=fe*ue,ee.yt=R-y*oe,ee.yb=R+y*ue));var de=t.y<.5?"b":"t",he=t.x<.5?"l":"r";r._fullLayout._reservedMargin[t._id]={};var be={r:F.width-B-q,l:B+ee.r,b:F.height-V-G,t:V+ee.b};N&&z?i.autoMargin(r,t._id,ee):N?r._fullLayout._reservedMargin[t._id][de]=be[de]:z||o?r._fullLayout._reservedMargin[t._id][he]=be[he]:r._fullLayout._reservedMargin[t._id][de]=be[de]}],r)}(r,t,e);y&&y.then&&(e._promises||[]).push(y),e._context.edits.colorbarPosition&&function(e,t,r){var n,a,i,l="v"===t.orientation,c=r._fullLayout._size;s.init({element:e.node(),gd:r,prepFn:function(){n=e.attr("transform"),d(e)},moveFn:function(r,o){e.attr("transform",n+u(r,o)),a=s.align((l?t._uFrac:t._vFrac)+r/c.w,l?t._thickFrac:t._lenFrac,0,1,t.xanchor),i=s.align((l?t._vFrac:1-t._uFrac)-o/c.h,l?t._lenFrac:t._thickFrac,0,1,t.yanchor);var f=s.getCursor(a,i,t.xanchor,t.yanchor);d(e,f)},doneFn:function(){if(d(e),void 0!==a&&void 0!==i){var n={};n[t._propPrefix+"x"]=a,n[t._propPrefix+"y"]=i,void 0!==t._traceIndex?o.call("_guiRestyle",r,n,t._traceIndex):o.call("_guiRelayout",r,n)}}})}(r,t,e)})),t.exit().each((function(t){i.autoMargin(e,t._id)})).remove(),t.order()}}},553:function(e,t,r){"use strict";var n=r(3400);e.exports=function(e){return n.isPlainObject(e.colorbar)}},5080:function(e,t,r){"use strict";e.exports={moduleType:"component",name:"colorbar",attributes:r(616),supplyDefaults:r(4013),draw:r(7848).draw,hasColorbar:r(553)}},9084:function(e,t,r){"use strict";var n=r(616),a=r(3756).counter,i=r(2996),o=r(8304).scales;function l(e){return"`"+e+"`"}i(o),e.exports=function(e,t){e=e||"";var r,i=(t=t||{}).cLetter||"c",s=("onlyIfNumerical"in t?t.onlyIfNumerical:Boolean(e),"noScale"in t?t.noScale:"marker.line"===e),c="showScaleDflt"in t?t.showScaleDflt:"z"===i,u="string"==typeof t.colorscaleDflt?o[t.colorscaleDflt]:null,f=t.editTypeOverride||"",d=e?e+".":"";"colorAttr"in t?(r=t.colorAttr,t.colorAttr):l(d+(r={z:"z",c:"color"}[i]));var h=i+"auto",p=i+"min",v=i+"max",g=i+"mid",y=(l(d+h),l(d+p),l(d+v),{});y[p]=y[v]=void 0;var m={};m[h]=!1;var x={};return"color"===r&&(x.color={valType:"color",arrayOk:!0,editType:f||"style"},t.anim&&(x.color.anim=!0)),x[h]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:y},x[p]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:m},x[v]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:m},x[g]={valType:"number",dflt:null,editType:"calc",impliedEdits:y},x.colorscale={valType:"colorscale",editType:"calc",dflt:u,impliedEdits:{autocolorscale:!1}},x.autocolorscale={valType:"boolean",dflt:!1!==t.autoColorDflt,editType:"calc",impliedEdits:{colorscale:void 0}},x.reversescale={valType:"boolean",dflt:!1,editType:"plot"},s||(x.showscale={valType:"boolean",dflt:c,editType:"calc"},x.colorbar=n),t.noColorAxis||(x.coloraxis={valType:"subplotid",regex:a("coloraxis"),dflt:null,editType:"calc"}),x}},7128:function(e,t,r){"use strict";var n=r(8248),a=r(3400),i=r(4288).extractOpts;e.exports=function(e,t,r){var o,l=e._fullLayout,s=r.vals,c=r.containerStr,u=c?a.nestedProperty(t,c).get():t,f=i(u),d=!1!==f.auto,h=f.min,p=f.max,v=f.mid,g=function(){return a.aggNums(Math.min,null,s)},y=function(){return a.aggNums(Math.max,null,s)};void 0===h?h=g():d&&(h=u._colorAx&&n(h)?Math.min(h,g()):g()),void 0===p?p=y():d&&(p=u._colorAx&&n(p)?Math.max(p,y()):y()),d&&void 0!==v&&(p-v>v-h?h=v-(p-v):p-v=0?l.colorscale.sequential:l.colorscale.sequentialminus,f._sync("colorscale",o))}},5504:function(e,t,r){"use strict";var n=r(3400),a=r(4288).hasColorscale,i=r(4288).extractOpts;e.exports=function(e,t){function r(e,t){var r=e["_"+t];void 0!==r&&(e[t]=r)}function o(e,a){var o=a.container?n.nestedProperty(e,a.container).get():e;if(o)if(o.coloraxis)o._colorAx=t[o.coloraxis];else{var l=i(o),s=l.auto;(s||void 0===l.min)&&r(o,a.min),(s||void 0===l.max)&&r(o,a.max),l.autocolorscale&&r(o,"colorscale")}}for(var l=0;l=0;n--,a++){var i=e[n];r[a]=[1-i[0],i[1]]}return r}function p(e,t){t=t||{};for(var r=e.domain,o=e.range,s=o.length,c=new Array(s),u=0;u4/3-l?o:l}},7416:function(e,t,r){"use strict";var n=r(3400),a=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];e.exports=function(e,t,r,i){return e="left"===r?0:"center"===r?1:"right"===r?2:n.constrain(Math.floor(3*e),0,2),t="bottom"===i?0:"middle"===i?1:"top"===i?2:n.constrain(Math.floor(3*t),0,2),a[t][e]}},2760:function(e,t){"use strict";t.selectMode=function(e){return"lasso"===e||"select"===e},t.drawMode=function(e){return"drawclosedpath"===e||"drawopenpath"===e||"drawline"===e||"drawrect"===e||"drawcircle"===e},t.openMode=function(e){return"drawline"===e||"drawopenpath"===e},t.rectMode=function(e){return"select"===e||"drawline"===e||"drawrect"===e||"drawcircle"===e},t.freeMode=function(e){return"lasso"===e||"drawclosedpath"===e||"drawopenpath"===e},t.selectingOrDrawing=function(e){return t.freeMode(e)||t.rectMode(e)}},6476:function(e,t,r){"use strict";var n=r(9128),a=r(2264),i=r(9184),o=r(3400).removeElement,l=r(3816),s=e.exports={};s.align=r(8316),s.getCursor=r(7416);var c=r(2616);function u(){var e=document.createElement("div");e.className="dragcover";var t=e.style;return t.position="fixed",t.left=0,t.right=0,t.top=0,t.bottom=0,t.zIndex=999999999,t.background="none",document.body.appendChild(e),e}function f(e){return n(e.changedTouches?e.changedTouches[0]:e,document.body)}s.unhover=c.wrapped,s.unhoverRaw=c.raw,s.init=function(e){var t,r,n,c,d,h,p,v,g=e.gd,y=1,m=g._context.doubleClickDelay,x=e.element;g._mouseDownTime||(g._mouseDownTime=0),x.style.pointerEvents="all",x.onmousedown=_,i?(x._ontouchstart&&x.removeEventListener("touchstart",x._ontouchstart),x._ontouchstart=_,x.addEventListener("touchstart",_,{passive:!1})):x.ontouchstart=_;var b=e.clampFn||function(e,t,r){return Math.abs(e)m&&(y=Math.max(y-1,1)),g._dragged)e.doneFn&&e.doneFn();else if(e.clickFn&&e.clickFn(y,h),!v){var r;try{r=new MouseEvent("click",t)}catch(e){var n=f(t);(r=document.createEvent("MouseEvents")).initMouseEvent("click",t.bubbles,t.cancelable,t.view,t.detail,t.screenX,t.screenY,n[0],n[1],t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget)}p.dispatchEvent(r)}g._dragging=!1,g._dragged=!1}else g._dragged=!1}},s.coverSlip=u},2616:function(e,t,r){"use strict";var n=r(5924),a=r(1200),i=r(2200).getGraphDiv,o=r(2456),l=e.exports={};l.wrapped=function(e,t,r){(e=i(e))._fullLayout&&a.clear(e._fullLayout._uid+o.HOVERID),l.raw(e,t,r)},l.raw=function(e,t){var r=e._fullLayout,a=e._hoverdata;t||(t={}),t.target&&!e._dragged&&!1===n.triggerHandler(e,"plotly_beforehover",t)||(r._hoverlayer.selectAll("g").remove(),r._hoverlayer.selectAll("line").remove(),r._hoverlayer.selectAll("circle").remove(),e._hoverdata=void 0,t.target&&a&&e.emit("plotly_unhover",{event:t,points:a}))}},8192:function(e,t){"use strict";t.u={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"},t.c={shape:{valType:"enumerated",values:["","/","\\","x","-","|","+","."],dflt:"",arrayOk:!0,editType:"style"},fillmode:{valType:"enumerated",values:["replace","overlay"],dflt:"replace",editType:"style"},bgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgopacity:{valType:"number",editType:"style",min:0,max:1},size:{valType:"number",min:0,dflt:8,arrayOk:!0,editType:"style"},solidity:{valType:"number",min:0,max:1,dflt:.3,arrayOk:!0,editType:"style"},editType:"style"}},3616:function(e,t,r){"use strict";var n=r(3428),a=r(3400),i=a.numberFormat,o=r(8248),l=r(9760),s=r(4040),c=r(6308),u=r(8932),f=a.strTranslate,d=r(2736),h=r(9616),p=r(4284).LINE_SPACING,v=r(3448).DESELECTDIM,g=r(3028),y=r(7152),m=r(624).appendArrayPointValue,x=e.exports={};function b(e,t,r){var n=t.fillpattern,a=n&&x.getPatternAttr(n.shape,0,"");if(a){var i=x.getPatternAttr(n.bgcolor,0,null),o=x.getPatternAttr(n.fgcolor,0,null),l=n.fgopacity,s=x.getPatternAttr(n.size,0,8),u=x.getPatternAttr(n.solidity,0,.3),f=t.uid;x.pattern(e,"point",r,f,a,s,u,void 0,n.fillmode,i,o,l)}else t.fillcolor&&e.call(c.fill,t.fillcolor)}x.font=function(e,t,r,n){a.isPlainObject(t)&&(n=t.color,r=t.size,t=t.family),t&&e.style("font-family",t),r+1&&e.style("font-size",r+"px"),n&&e.call(c.fill,n)},x.setPosition=function(e,t,r){e.attr("x",t).attr("y",r)},x.setSize=function(e,t,r){e.attr("width",t).attr("height",r)},x.setRect=function(e,t,r,n,a){e.call(x.setPosition,t,r).call(x.setSize,n,a)},x.translatePoint=function(e,t,r,n){var a=r.c2p(e.x),i=n.c2p(e.y);return!!(o(a)&&o(i)&&t.node())&&("text"===t.node().nodeName?t.attr("x",a).attr("y",i):t.attr("transform",f(a,i)),!0)},x.translatePoints=function(e,t,r){e.each((function(e){var a=n.select(this);x.translatePoint(e,a,t,r)}))},x.hideOutsideRangePoint=function(e,t,r,n,a,i){t.attr("display",r.isPtWithinRange(e,a)&&n.isPtWithinRange(e,i)?null:"none")},x.hideOutsideRangePoints=function(e,t){if(t._hasClipOnAxisFalse){var r=t.xaxis,a=t.yaxis;e.each((function(t){var i=t[0].trace,o=i.xcalendar,l=i.ycalendar,c=s.traceIs(i,"bar-like")?".bartext":".point,.textpoint";e.selectAll(c).each((function(e){x.hideOutsideRangePoint(e,n.select(this),r,a,o,l)}))}))}},x.crispRound=function(e,t,r){return t&&o(t)?e._context.staticPlot?t:t<1?1:Math.round(t):r||0},x.singleLineStyle=function(e,t,r,n,a){t.style("fill","none");var i=(((e||[])[0]||{}).trace||{}).line||{},o=r||i.width||0,l=a||i.dash||"";c.stroke(t,n||i.color),x.dashLine(t,l,o)},x.lineGroupStyle=function(e,t,r,a){e.style("fill","none").each((function(e){var i=(((e||[])[0]||{}).trace||{}).line||{},o=t||i.width||0,l=a||i.dash||"";n.select(this).call(c.stroke,r||i.color).call(x.dashLine,l,o)}))},x.dashLine=function(e,t,r){r=+r||0,t=x.dashStyle(t,r),e.style({"stroke-dasharray":t,"stroke-width":r+"px"})},x.dashStyle=function(e,t){t=+t||1;var r=Math.max(t,3);return"solid"===e?e="":"dot"===e?e=r+"px,"+r+"px":"dash"===e?e=3*r+"px,"+3*r+"px":"longdash"===e?e=5*r+"px,"+5*r+"px":"dashdot"===e?e=3*r+"px,"+r+"px,"+r+"px,"+r+"px":"longdashdot"===e&&(e=5*r+"px,"+2*r+"px,"+r+"px,"+2*r+"px"),e},x.singleFillStyle=function(e,t){var r=n.select(e.node());b(e,((r.data()[0]||[])[0]||{}).trace||{},t)},x.fillGroupStyle=function(e,t){e.style("stroke-width",0).each((function(e){var r=n.select(this);e[0].trace&&b(r,e[0].trace,t)}))};var _=r(1984);x.symbolNames=[],x.symbolFuncs=[],x.symbolBackOffs=[],x.symbolNeedLines={},x.symbolNoDot={},x.symbolNoFill={},x.symbolList=[],Object.keys(_).forEach((function(e){var t=_[e],r=t.n;x.symbolList.push(r,String(r),e,r+100,String(r+100),e+"-open"),x.symbolNames[r]=e,x.symbolFuncs[r]=t.f,x.symbolBackOffs[r]=t.backoff||0,t.needLine&&(x.symbolNeedLines[r]=!0),t.noDot?x.symbolNoDot[r]=!0:x.symbolList.push(r+200,String(r+200),e+"-dot",r+300,String(r+300),e+"-open-dot"),t.noFill&&(x.symbolNoFill[r]=!0)}));var w=x.symbolNames.length;function T(e,t,r,n){var a=e%100;return x.symbolFuncs[a](t,r,n)+(e>=200?"M0,0.5L0.5,0L0,-0.5L-0.5,0Z":"")}x.symbolNumber=function(e){if(o(e))e=+e;else if("string"==typeof e){var t=0;e.indexOf("-open")>0&&(t=100,e=e.replace("-open","")),e.indexOf("-dot")>0&&(t+=200,e=e.replace("-dot","")),(e=x.symbolNames.indexOf(e))>=0&&(e+=t)}return e%100>=w||e>=400?0:Math.floor(Math.max(e,0))};var M={x1:1,x2:0,y1:0,y2:0},k={x1:0,x2:0,y1:1,y2:0},A=i("~f"),L={radial:{node:"radialGradient"},radialreversed:{node:"radialGradient",reversed:!0},horizontal:{node:"linearGradient",attrs:M},horizontalreversed:{node:"linearGradient",attrs:M,reversed:!0},vertical:{node:"linearGradient",attrs:k},verticalreversed:{node:"linearGradient",attrs:k,reversed:!0}};x.gradient=function(e,t,r,i,o,s){for(var u=o.length,f=L[i],d=new Array(u),h=0;h=0&&void 0===e.i&&(e.i=o.i),t.style("opacity",n.selectedOpacityFn?n.selectedOpacityFn(e):void 0===e.mo?l.opacity:e.mo),n.ms2mrc){var u;u="various"===e.ms||"various"===l.size?3:n.ms2mrc(e.ms),e.mrc=u,n.selectedSizeFn&&(u=e.mrc=n.selectedSizeFn(e));var f=x.symbolNumber(e.mx||l.symbol)||0;e.om=f%200>=100;var d=re(e,r),h=q(e,r);t.attr("d",T(f,u,d,h))}var p,v,g,y=!1;if(e.so)g=s.outlierwidth,v=s.outliercolor,p=l.outliercolor;else{var m=(s||{}).width;g=(e.mlw+1||m+1||(e.trace?(e.trace.marker.line||{}).width:0)+1)-1||0,v="mlc"in e?e.mlcc=n.lineScale(e.mlc):a.isArrayOrTypedArray(s.color)?c.defaultLine:s.color,a.isArrayOrTypedArray(l.color)&&(p=c.defaultLine,y=!0),p="mc"in e?e.mcc=n.markerScale(e.mc):l.color||l.colors||"rgba(0,0,0,0)",n.selectedColorFn&&(p=n.selectedColorFn(e))}if(e.om)t.call(c.stroke,p).style({"stroke-width":(g||1)+"px",fill:"none"});else{t.style("stroke-width",(e.isBlank?0:g)+"px");var b=l.gradient,_=e.mgt;_?y=!0:_=b&&b.type,a.isArrayOrTypedArray(_)&&(_=_[0],L[_]||(_=0));var w=l.pattern,M=w&&x.getPatternAttr(w.shape,e.i,"");if(_&&"none"!==_){var k=e.mgc;k?y=!0:k=b.color;var A=r.uid;y&&(A+="-"+e.i),x.gradient(t,i,A,_,[[0,k],[1,p]],"fill")}else if(M){var S=!1,D=w.fgcolor;!D&&o&&o.color&&(D=o.color,S=!0);var O=x.getPatternAttr(D,e.i,o&&o.color||null),C=x.getPatternAttr(w.bgcolor,e.i,null),P=w.fgopacity,I=x.getPatternAttr(w.size,e.i,8),R=x.getPatternAttr(w.solidity,e.i,.3);S=S||e.mcc||a.isArrayOrTypedArray(w.shape)||a.isArrayOrTypedArray(w.bgcolor)||a.isArrayOrTypedArray(w.fgcolor)||a.isArrayOrTypedArray(w.size)||a.isArrayOrTypedArray(w.solidity);var z=r.uid;S&&(z+="-"+e.i),x.pattern(t,"point",i,z,M,I,R,e.mcc,w.fillmode,C,O,P)}else a.isArrayOrTypedArray(p)?c.fill(t,p[e.i]):c.fill(t,p);g&&c.stroke(t,v)}},x.makePointStyleFns=function(e){var t={},r=e.marker;return t.markerScale=x.tryColorscale(r,""),t.lineScale=x.tryColorscale(r,"line"),s.traceIs(e,"symbols")&&(t.ms2mrc=g.isBubble(e)?y(e):function(){return(r.size||6)/2}),e.selectedpoints&&a.extendFlat(t,x.makeSelectedPointStyleFns(e)),t},x.makeSelectedPointStyleFns=function(e){var t={},r=e.selected||{},n=e.unselected||{},i=e.marker||{},o=r.marker||{},l=n.marker||{},c=i.opacity,u=o.opacity,f=l.opacity,d=void 0!==u,h=void 0!==f;(a.isArrayOrTypedArray(c)||d||h)&&(t.selectedOpacityFn=function(e){var t=void 0===e.mo?i.opacity:e.mo;return e.selected?d?u:t:h?f:v*t});var p=i.color,g=o.color,y=l.color;(g||y)&&(t.selectedColorFn=function(e){var t=e.mcc||p;return e.selected?g||t:y||t});var m=i.size,x=o.size,b=l.size,_=void 0!==x,w=void 0!==b;return s.traceIs(e,"symbols")&&(_||w)&&(t.selectedSizeFn=function(e){var t=e.mrc||m/2;return e.selected?_?x/2:t:w?b/2:t}),t},x.makeSelectedTextStyleFns=function(e){var t={},r=e.selected||{},n=e.unselected||{},a=e.textfont||{},i=r.textfont||{},o=n.textfont||{},l=a.color,s=i.color,u=o.color;return t.selectedTextColorFn=function(e){var t=e.tc||l;return e.selected?s||t:u||(s?t:c.addOpacity(t,v))},t},x.selectedPointStyle=function(e,t){if(e.size()&&t.selectedpoints){var r=x.makeSelectedPointStyleFns(t),a=t.marker||{},i=[];r.selectedOpacityFn&&i.push((function(e,t){e.style("opacity",r.selectedOpacityFn(t))})),r.selectedColorFn&&i.push((function(e,t){c.fill(e,r.selectedColorFn(t))})),r.selectedSizeFn&&i.push((function(e,n){var i=n.mx||a.symbol||0,o=r.selectedSizeFn(n);e.attr("d",T(x.symbolNumber(i),o,re(n,t),q(n,t))),n.mrc2=o})),i.length&&e.each((function(e){for(var t=n.select(this),r=0;r0?r:0}function I(e,t,r){return r&&(e=H(e)),t?z(e[1]):R(e[0])}function R(e){var t=n.round(e,2);return S=t,t}function z(e){var t=n.round(e,2);return D=t,t}function N(e,t,r,n){var a=e[0]-t[0],i=e[1]-t[1],o=r[0]-t[0],l=r[1]-t[1],s=Math.pow(a*a+i*i,.25),c=Math.pow(o*o+l*l,.25),u=(c*c*a-s*s*o)*n,f=(c*c*i-s*s*l)*n,d=3*c*(s+c),h=3*s*(s+c);return[[R(t[0]+(d&&u/d)),z(t[1]+(d&&f/d))],[R(t[0]-(h&&u/h)),z(t[1]-(h&&f/h))]]}x.textPointStyle=function(e,t,r){if(e.size()){var i;if(t.selectedpoints){var o=x.makeSelectedTextStyleFns(t);i=o.selectedTextColorFn}var l=t.texttemplate,s=r._fullLayout;e.each((function(e){var o=n.select(this),c=l?a.extractOption(e,t,"txt","texttemplate"):a.extractOption(e,t,"tx","text");if(c||0===c){if(l){var u=t._module.formatLabels,f=u?u(e,t,s):{},h={};m(h,t,e.i);var p=t._meta||{};c=a.texttemplateString(c,f,s._d3locale,h,e,p)}var v=e.tp||t.textposition,g=P(e,t),y=i?i(e):e.tc||t.textfont.color;o.call(x.font,e.tf||t.textfont.family,g,y).text(c).call(d.convertToTspans,r).call(C,v,g,e.mrc)}else o.remove()}))}},x.selectedTextStyle=function(e,t){if(e.size()&&t.selectedpoints){var r=x.makeSelectedTextStyleFns(t);e.each((function(e){var a=n.select(this),i=r.selectedTextColorFn(e),o=e.tp||t.textposition,l=P(e,t);c.fill(a,i);var u=s.traceIs(t,"bar-like");C(a,o,l,e.mrc2||e.mrc,u)}))}},x.smoothopen=function(e,t){if(e.length<3)return"M"+e.join("L");var r,n="M"+e[0],a=[];for(r=1;r=c||w>=f&&w<=c)&&(T<=d&&T>=u||T>=d&&T<=u)&&(e=[w,T])}return e}x.steps=function(e){var t=F[e]||E;return function(e){for(var r="M"+R(e[0][0])+","+z(e[0][1]),n=e.length,a=1;a=1e4&&(x.savedBBoxes={},B=0),r&&(x.savedBBoxes[r]=g),B++,a.extendFlat({},g)},x.setClipUrl=function(e,t,r){e.attr("clip-path",Y(t,r))},x.getTranslate=function(e){var t=(e[e.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,(function(e,t,r){return[t,r].join(" ")})).split(" ");return{x:+t[0]||0,y:+t[1]||0}},x.setTranslate=function(e,t,r){var n=e.attr?"attr":"getAttribute",a=e.attr?"attr":"setAttribute",i=e[n]("transform")||"";return t=t||0,r=r||0,i=i.replace(/(\btranslate\(.*?\);?)/,"").trim(),i=(i+=f(t,r)).trim(),e[a]("transform",i),i},x.getScale=function(e){var t=(e[e.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,(function(e,t,r){return[t,r].join(" ")})).split(" ");return{x:+t[0]||1,y:+t[1]||1}},x.setScale=function(e,t,r){var n=e.attr?"attr":"getAttribute",a=e.attr?"attr":"setAttribute",i=e[n]("transform")||"";return t=t||1,r=r||1,i=i.replace(/(\bscale\(.*?\);?)/,"").trim(),i=(i+="scale("+t+","+r+")").trim(),e[a]("transform",i),i};var V=/\s*sc.*/;x.setPointGroupScale=function(e,t,r){if(t=t||1,r=r||1,e){var n=1===t&&1===r?"":"scale("+t+","+r+")";e.each((function(){var e=(this.getAttribute("transform")||"").replace(V,"");e=(e+=n).trim(),this.setAttribute("transform",e)}))}};var U=/translate\([^)]*\)\s*$/;function q(e,t){var r;return e&&(r=e.mf),void 0===r&&(r=t.marker&&t.marker.standoff||0),t._geo||t._xA?r:-r}x.setTextPointsScale=function(e,t,r){e&&e.each((function(){var e,a=n.select(this),i=a.select("text");if(i.node()){var o=parseFloat(i.attr("x")||0),l=parseFloat(i.attr("y")||0),s=(a.attr("transform")||"").match(U);e=1===t&&1===r?[]:[f(o,l),"scale("+t+","+r+")",f(-o,-l)],s&&e.push(s),a.attr("transform",e.join(""))}}))},x.getMarkerStandoff=q;var G,Z,W,X,J,K,Q=Math.atan2,$=Math.cos,ee=Math.sin;function te(e,t){var r=t[0],n=t[1];return[r*$(e)-n*ee(e),r*ee(e)+n*$(e)]}function re(e,t){var r,n,i=e.ma;void 0===i&&((i=t.marker.angle)&&!a.isArrayOrTypedArray(i)||(i=0));var l=t.marker.angleref;if("previous"===l||"north"===l){if(t._geo){var s=t._geo.project(e.lonlat);r=s[0],n=s[1]}else{var c=t._xA,u=t._yA;if(!c||!u)return 90;r=c.c2p(e.x),n=u.c2p(e.y)}if(t._geo){var f,d=e.lonlat[0],h=e.lonlat[1],p=t._geo.project([d,h+1e-5]),v=t._geo.project([d+1e-5,h]),g=Q(v[1]-n,v[0]-r),y=Q(p[1]-n,p[0]-r);if("north"===l)f=i/180*Math.PI;else if("previous"===l){var m=d/180*Math.PI,x=h/180*Math.PI,b=G/180*Math.PI,_=Z/180*Math.PI,w=b-m,T=$(_)*ee(w),M=ee(_)*$(x)-$(_)*ee(x)*$(w);f=-Q(T,M)-Math.PI,G=d,Z=h}var k=te(g,[$(f),0]),A=te(y,[ee(f),0]);i=Q(k[1]+A[1],k[0]+A[0])/Math.PI*180,"previous"!==l||K===t.uid&&e.i===J+1||(i=null)}if("previous"===l&&!t._geo)if(K===t.uid&&e.i===J+1&&o(r)&&o(n)){var L=r-W,S=n-X,D=t.line&&t.line.shape||"",O=D.slice(D.length-1);"h"===O&&(S=0),"v"===O&&(L=0),i+=Q(S,L)/Math.PI*180+90}else i=null}return W=r,X=n,J=e.i,K=t.uid,i}x.getMarkerAngle=re},1984:function(e,t,r){"use strict";var n,a,i,o,l=r(9604),s=r(3428).round,c="M0,0Z",u=Math.sqrt(2),f=Math.sqrt(3),d=Math.PI,h=Math.cos,p=Math.sin;function v(e){return null===e}function g(e,t,r){if(!(e&&e%360!=0||t))return r;if(i===e&&o===t&&n===r)return a;function s(e,r){var n=h(e),a=p(e),i=r[0],o=r[1]+(t||0);return[i*n-o*a,i*a+o*n]}i=e,o=t,n=r;for(var c=e/180*d,u=0,f=0,v=l(r),g="",y=0;y0,f=e._context.staticPlot;t.each((function(t){var d,h=t[0].trace,p=h.error_x||{},v=h.error_y||{};h.ids&&(d=function(e){return e.id});var g=o.hasMarkers(h)&&h.marker.maxdisplayed>0;v.visible||p.visible||(t=[]);var y=n.select(this).selectAll("g.errorbar").data(t,d);if(y.exit().remove(),t.length){p.visible||y.selectAll("path.xerror").remove(),v.visible||y.selectAll("path.yerror").remove(),y.style("opacity",1);var m=y.enter().append("g").classed("errorbar",!0);u&&m.style("opacity",0).transition().duration(l.duration).style("opacity",1),i.setClipUrl(y,r.layerClipId,e),y.each((function(e){var t=n.select(this),r=function(e,t,r){var n={x:t.c2p(e.x),y:r.c2p(e.y)};return void 0!==e.yh&&(n.yh=r.c2p(e.yh),n.ys=r.c2p(e.ys),a(n.ys)||(n.noYS=!0,n.ys=r.c2p(e.ys,!0))),void 0!==e.xh&&(n.xh=t.c2p(e.xh),n.xs=t.c2p(e.xs),a(n.xs)||(n.noXS=!0,n.xs=t.c2p(e.xs,!0))),n}(e,s,c);if(!g||e.vis){var i,o=t.select("path.yerror");if(v.visible&&a(r.x)&&a(r.yh)&&a(r.ys)){var d=v.width;i="M"+(r.x-d)+","+r.yh+"h"+2*d+"m-"+d+",0V"+r.ys,r.noYS||(i+="m-"+d+",0h"+2*d),o.size()?u&&(o=o.transition().duration(l.duration).ease(l.easing)):o=t.append("path").style("vector-effect",f?"none":"non-scaling-stroke").classed("yerror",!0),o.attr("d",i)}else o.remove();var h=t.select("path.xerror");if(p.visible&&a(r.y)&&a(r.xh)&&a(r.xs)){var y=(p.copy_ystyle?v:p).width;i="M"+r.xh+","+(r.y-y)+"v"+2*y+"m0,-"+y+"H"+r.xs,r.noXS||(i+="m0,-"+y+"v"+2*y),h.size()?u&&(h=h.transition().duration(l.duration).ease(l.easing)):h=t.append("path").style("vector-effect",f?"none":"non-scaling-stroke").classed("xerror",!0),h.attr("d",i)}else h.remove()}}))}}))}},2036:function(e,t,r){"use strict";var n=r(3428),a=r(6308);e.exports=function(e){e.each((function(e){var t=e[0].trace,r=t.error_y||{},i=t.error_x||{},o=n.select(this);o.selectAll("path.yerror").style("stroke-width",r.thickness+"px").call(a.stroke,r.color),i.copy_ystyle&&(i=r),o.selectAll("path.xerror").style("stroke-width",i.thickness+"px").call(a.stroke,i.color)}))}},5756:function(e,t,r){"use strict";var n=r(5376),a=r(5460).hoverlabel,i=r(2880).extendFlat;e.exports={hoverlabel:{bgcolor:i({},a.bgcolor,{arrayOk:!0}),bordercolor:i({},a.bordercolor,{arrayOk:!0}),font:n({arrayOk:!0,editType:"none"}),align:i({},a.align,{arrayOk:!0}),namelength:i({},a.namelength,{arrayOk:!0}),editType:"none"}}},5056:function(e,t,r){"use strict";var n=r(3400),a=r(4040);function i(e,t,r,a){a=a||n.identity,Array.isArray(e)&&(t[0][r]=a(e))}e.exports=function(e){var t=e.calcdata,r=e._fullLayout;function o(e){return function(t){return n.coerceHoverinfo({hoverinfo:t},{_module:e._module},r)}}for(var l=0;l=0&&r.index_[0]._length||se<0||se>w[0]._length)return p.unhoverRaw(e,t)}else le="xpx"in t?t.xpx:_[0]._length/2,se="ypx"in t?t.ypx:w[0]._length/2;if(t.pointerX=le+_[0]._offset,t.pointerY=se+w[0]._offset,U="xval"in t?y.flat(s,t.xval):y.p2c(_,le),q="yval"in t?y.flat(s,t.yval):y.p2c(w,se),!a(U[0])||!a(q[0]))return o.warn("Fx.hover failed",t,e),p.unhoverRaw(e,t)}var fe=1/0;function de(e,r){for(Z=0;Zre&&(ne.splice(0,re),fe=ne[0].distance),m&&0!==V&&0===ne.length){te.distance=V,te.index=!1;var f=X._module.hoverPoints(te,$,ee,"closest",{hoverLayer:u._hoverlayer});if(f&&(f=f.filter((function(e){return e.spikeDistance<=V}))),f&&f.length){var d,p=f.filter((function(e){return e.xa.showspikes&&"hovered data"!==e.xa.spikesnap}));if(p.length){var v=p[0];a(v.x0)&&a(v.y0)&&(d=pe(v),(!ie.vLinePoint||ie.vLinePoint.spikeDistance>d.spikeDistance)&&(ie.vLinePoint=d))}var g=f.filter((function(e){return e.ya.showspikes&&"hovered data"!==e.ya.spikesnap}));if(g.length){var x=g[0];a(x.x0)&&a(x.y0)&&(d=pe(x),(!ie.hLinePoint||ie.hLinePoint.spikeDistance>d.spikeDistance)&&(ie.hLinePoint=d))}}}}}function he(e,t,r){for(var n,a=null,i=1/0,o=0;o0&&Math.abs(e.distance)ke-1;Ae--)Oe(ne[Ae]);ne=Le,me()}var Ce=e._hoverdata,Pe=[],Ie=j(e),Re=Y(e);for(G=0;G1||ne.length>1)||"closest"===I&&oe&&ne.length>1,Ze=h.combine(u.plot_bgcolor||h.background,u.paper_bgcolor),We=P(ne,{gd:e,hovermode:I,rotateLabels:Ge,bgColor:Ze,container:u._hoverlayer,outerContainer:u._paper.node(),commonLabelOpts:u.hoverlabel,hoverdistance:u.hoverdistance}),Xe=We.hoverLabels;if(y.isUnifiedHover(I)||(function(e,t,r,n){var a,i,o,l,s,c,u,f=t?"xa":"ya",d=t?"ya":"xa",h=0,p=1,v=e.size(),g=new Array(v),y=0,m=n.minX,x=n.maxX,b=n.minY,_=n.maxY,w=function(e){return e*r._invScaleX},M=function(e){return e*r._invScaleY};function k(e){var t=e[0],r=e[e.length-1];if(i=t.pmin-t.pos-t.dp+t.size,o=r.pos+r.dp+r.size-t.pmax,i>.01){for(s=e.length-1;s>=0;s--)e[s].dp+=i;a=!1}if(!(o<.01)){if(i<-.01){for(s=e.length-1;s>=0;s--)e[s].dp-=o;a=!1}if(a){var n=0;for(l=0;lt.pmax&&n++;for(l=e.length-1;l>=0&&!(n<=0);l--)(c=e[l]).pos>t.pmax-1&&(c.del=!0,n--);for(l=0;l=0;s--)e[s].dp-=o;for(l=e.length-1;l>=0&&!(n<=0);l--)(c=e[l]).pos+c.dp+c.size>t.pmax&&(c.del=!0,n--)}}}for(e.each((function(e){var n=e[f],a=e[d],i="x"===n._id.charAt(0),o=n.range;0===y&&o&&o[0]>o[1]!==i&&(p=-1);var l=0,s=i?r.width:r.height;if("x"===r.hovermode||"y"===r.hovermode){var c,u,h=R(e,t),v=e.anchor,k="end"===v?-1:1;if("middle"===v)u=(c=e.crossPos+(i?M(h.y-e.by/2):w(e.bx/2+e.tx2width/2)))+(i?M(e.by):w(e.bx));else if(i)u=(c=e.crossPos+M(A+h.y)-M(e.by/2-A))+M(e.by);else{var L=w(k*A+h.x),S=L+w(k*e.bx);c=e.crossPos+Math.min(L,S),u=e.crossPos+Math.max(L,S)}i?void 0!==b&&void 0!==_&&Math.min(u,_)-Math.max(c,b)>1&&("left"===a.side?(l=a._mainLinePosition,s=r.width):s=a._mainLinePosition):void 0!==m&&void 0!==x&&Math.min(u,x)-Math.max(c,m)>1&&("top"===a.side?(l=a._mainLinePosition,s=r.height):s=a._mainLinePosition)}g[y++]=[{datum:e,traceIndex:e.trace.index,dp:0,pos:e.pos,posref:e.posref,size:e.by*(i?T:1)/2,pmin:l,pmax:s}]})),g.sort((function(e,t){return e[0].posref-t[0].posref||p*(t[0].traceIndex-e[0].traceIndex)}));!a&&h<=v;){for(h++,a=!0,l=0;l.01&&D.pmin===O.pmin&&D.pmax===O.pmax){for(s=S.length-1;s>=0;s--)S[s].dp+=i;for(L.push.apply(L,S),g.splice(l+1,1),u=0,s=L.length-1;s>=0;s--)u+=L[s].dp;for(o=u/L.length,s=L.length-1;s>=0;s--)L[s].dp-=o;a=!1}else l++}g.forEach(k)}for(l=g.length-1;l>=0;l--){var C=g[l];for(s=C.length-1;s>=0;s--){var P=C[s],I=P.datum;I.offset=P.dp,I.del=P.del}}}(Xe,Ge,u,We.commonLabelBoundingBox),z(Xe,Ge,u._invScaleX,u._invScaleY)),l&&l.tagName){var Je=g.getComponentMethod("annotations","hasClickToShow")(e,Pe);f(n.select(l),Je?"pointer":"")}l&&!i&&function(e,t,r){if(!r||r.length!==e._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var a=r[n],i=e._hoverdata[n];if(a.curveNumber!==i.curveNumber||String(a.pointNumber)!==String(i.pointNumber)||String(a.pointNumbers)!==String(i.pointNumbers))return!0}return!1}(e,0,Ce)&&(Ce&&e.emit("plotly_unhover",{event:t,points:Ce}),e.emit("plotly_hover",{event:t,points:e._hoverdata,xaxes:_,yaxes:w,xvals:U,yvals:q}))}(e,t,r,i,l)}))},t.loneHover=function(e,t){var r=!0;Array.isArray(e)||(r=!1,e=[e]);var a=t.gd,i=j(a),o=Y(a),l=P(e.map((function(e){var r=e._x0||e.x0||e.x||0,n=e._x1||e.x1||e.x||0,l=e._y0||e.y0||e.y||0,s=e._y1||e.y1||e.y||0,c=e.eventData;if(c){var u=Math.min(r,n),f=Math.max(r,n),d=Math.min(l,s),p=Math.max(l,s),v=e.trace;if(g.traceIs(v,"gl3d")){var y=a._fullLayout[v.scene]._scene.container,m=y.offsetLeft,x=y.offsetTop;u+=m,f+=m,d+=x,p+=x}c.bbox={x0:u+o,x1:f+o,y0:d+i,y1:p+i},t.inOut_bbox&&t.inOut_bbox.push(c.bbox)}else c=!1;return{color:e.color||h.defaultLine,x0:e.x0||e.x||0,x1:e.x1||e.x||0,y0:e.y0||e.y||0,y1:e.y1||e.y||0,xLabel:e.xLabel,yLabel:e.yLabel,zLabel:e.zLabel,text:e.text,name:e.name,idealAlign:e.idealAlign,borderColor:e.borderColor,fontFamily:e.fontFamily,fontSize:e.fontSize,fontColor:e.fontColor,nameLength:e.nameLength,textAlign:e.textAlign,trace:e.trace||{index:0,hoverinfo:""},xa:{_offset:0},ya:{_offset:0},index:0,hovertemplate:e.hovertemplate||!1,hovertemplateLabels:e.hovertemplateLabels||!1,eventData:c}})),{gd:a,hovermode:"closest",rotateLabels:!1,bgColor:t.bgColor||h.background,container:n.select(t.container),outerContainer:t.outerContainer||t.container}).hoverLabels,s=0,c=0;return l.sort((function(e,t){return e.y0-t.y0})).each((function(e,r){var n=e.y0-e.by/2;e.offset=n-5([\s\S]*)<\/extra>/;function P(e,t){var r=t.gd,a=r._fullLayout,i=t.hovermode,c=t.rotateLabels,f=t.bgColor,p=t.container,v=t.outerContainer,w=t.commonLabelOpts||{};if(0===e.length)return[[]];var T=t.fontFamily||m.HOVERFONT,M=t.fontSize||m.HOVERFONTSIZE,k=e[0],S=k.xa,D=k.ya,C=i.charAt(0),P=C+"Label",R=k[P];if(void 0===R&&"multicategory"===S.type)for(var z=0;za.width-b?(g=a.width-b,t.attr("d","M"+(b-A)+",0L"+b+","+x+A+"v"+x+(2*L+m.height)+"H-"+b+"V"+x+A+"H"+(b-2*A)+"Z")):t.attr("d","M0,0L"+A+","+x+A+"H"+b+"v"+x+(2*L+m.height)+"H-"+b+"V"+x+A+"H-"+A+"Z"),Z.minX=g-b,Z.maxX=g+b,"top"===S.side?(Z.minY=y-(2*L+m.height),Z.maxY=y-L):(Z.minY=y+L,Z.maxY=y+(2*L+m.height))}else{var _,O,C;"right"===D.side?(_="start",O=1,C="",g=S._offset+S._length):(_="end",O=-1,C="-",g=S._offset),y=D._offset+(k.y0+k.y1)/2,s.attr("text-anchor",_),t.attr("d","M0,0L"+C+A+","+A+"V"+(L+m.height/2)+"h"+C+(2*L+m.width)+"V-"+(L+m.height/2)+"H"+C+A+"V-"+A+"Z"),Z.minY=y-(L+m.height/2),Z.maxY=y+(L+m.height/2),"right"===D.side?(Z.minX=g+A,Z.maxX=g+A+(2*L+m.width)):(Z.minX=g-A-(2*L+m.width),Z.maxX=g-A);var P,I=m.height/2,z=F-m.top-I,N="clip"+a._uid+"commonlabel"+D._id;if(g=0?se:ce+de=0?ce:be+de=0?oe:le+he=0?le:_e+he=0,"top"!==e.idealAlign&&q||!G?q?(P+=N/2,e.anchor="start"):e.anchor="middle":(P-=N/2,e.anchor="end"),e.crossPos=P;else{if(e.pos=P,q=C+z/2+Z<=E,G=C-z/2-Z>=0,"left"!==e.idealAlign&&q||!G)if(q)C+=z/2,e.anchor="start";else{e.anchor="middle";var W=Z/2,X=C+W-E,J=C-W;X>0&&(C-=X),J<0&&(C+=-J)}else C-=z/2,e.anchor="end";e.crossPos=C}w.attr("text-anchor",e.anchor),S&&k.attr("text-anchor",e.anchor),t.attr("transform",l(C,P)+(c?s(_):""))})),{hoverLabels:we,commonLabelBoundingBox:Z}}function I(e,t,r,n,a,i){var l="",s="";void 0!==e.nameOverride&&(e.name=e.nameOverride),e.name&&(e.trace._meta&&(e.name=o.templateString(e.name,e.trace._meta)),l=H(e.name,e.nameLength));var c=r.charAt(0),u="x"===c?"y":"x";void 0!==e.zLabel?(void 0!==e.xLabel&&(s+="x: "+e.xLabel+"
    "),void 0!==e.yLabel&&(s+="y: "+e.yLabel+"
    "),"choropleth"!==e.trace.type&&"choroplethmapbox"!==e.trace.type&&(s+=(s?"z: ":"")+e.zLabel)):t&&e[c+"Label"]===a?s=e[u+"Label"]||"":void 0===e.xLabel?void 0!==e.yLabel&&"scattercarpet"!==e.trace.type&&(s=e.yLabel):s=void 0===e.yLabel?e.xLabel:"("+e.xLabel+", "+e.yLabel+")",!e.text&&0!==e.text||Array.isArray(e.text)||(s+=(s?"
    ":"")+e.text),void 0!==e.extraText&&(s+=(s?"
    ":"")+e.extraText),i&&""===s&&!e.hovertemplate&&(""===l&&i.remove(),s=l);var f=e.hovertemplate||!1;if(f){var d=e.hovertemplateLabels||e;e[c+"Label"]!==a&&(d[c+"other"]=d[c+"Val"],d[c+"otherLabel"]=d[c+"Label"]),s=(s=o.hovertemplateString(f,d,n._d3locale,e.eventData[0]||{},e.trace._meta)).replace(C,(function(t,r){return l=H(r,e.nameLength),""}))}return[s,l]}function R(e,t){var r=0,n=e.offset;return t&&(n*=-k,r=e.offset*M),{x:r,y:n}}function z(e,t,r,a){var i=function(e){return e*r},o=function(e){return e*a};e.each((function(e){var r=n.select(this);if(e.del)return r.remove();var a,l,s,c,f=r.select("text.nums"),h=e.anchor,p="end"===h?-1:1,v=(c=(s=(l={start:1,end:-1,middle:0}[(a=e).anchor])*(A+L))+l*(a.txwidth+L),"middle"===a.anchor&&(s-=a.tx2width/2,c+=a.txwidth/2+L),{alignShift:l,textShiftX:s,text2ShiftX:c}),g=R(e,t),y=g.x,m=g.y,x="middle"===h;r.select("path").attr("d",x?"M-"+i(e.bx/2+e.tx2width/2)+","+o(m-e.by/2)+"h"+i(e.bx)+"v"+o(e.by)+"h-"+i(e.bx)+"Z":"M0,0L"+i(p*A+y)+","+o(A+m)+"v"+o(e.by/2-A)+"h"+i(p*e.bx)+"v-"+o(e.by)+"H"+i(p*A+y)+"V"+o(m-A)+"Z");var b=y+v.textShiftX,_=m+e.ty0-e.by/2+L,w=e.textAlign||"auto";"auto"!==w&&("left"===w&&"start"!==h?(f.attr("text-anchor","start"),b=x?-e.bx/2-e.tx2width/2+L:-e.bx-L):"right"===w&&"end"!==h&&(f.attr("text-anchor","end"),b=x?e.bx/2-e.tx2width/2-L:e.bx+L)),f.call(u.positionText,i(b),o(_)),e.tx2width&&(r.select("text.name").call(u.positionText,i(v.text2ShiftX+v.alignShift*L+y),o(m+e.ty0-e.by/2+L)),r.select("rect").call(d.setRect,i(v.text2ShiftX+(v.alignShift-1)*e.tx2width/2+y),o(m-e.by/2-1),i(e.tx2width),o(e.by+2)))}))}function N(e,t){var r=e.index,n=e.trace||{},i=e.cd[0],l=e.cd[r]||{};function s(e){return e||a(e)&&0===e}var c=Array.isArray(r)?function(e,t){var a=o.castOption(i,r,e);return s(a)?a:o.extractOption({},n,"",t)}:function(e,t){return o.extractOption(l,n,e,t)};function u(t,r,n){var a=c(r,n);s(a)&&(e[t]=a)}if(u("hoverinfo","hi","hoverinfo"),u("bgcolor","hbg","hoverlabel.bgcolor"),u("borderColor","hbc","hoverlabel.bordercolor"),u("fontFamily","htf","hoverlabel.font.family"),u("fontSize","hts","hoverlabel.font.size"),u("fontColor","htc","hoverlabel.font.color"),u("nameLength","hnl","hoverlabel.namelength"),u("textAlign","hta","hoverlabel.align"),e.posref="y"===t||"closest"===t&&"h"===n.orientation?e.xa._offset+(e.x0+e.x1)/2:e.ya._offset+(e.y0+e.y1)/2,e.x0=o.constrain(e.x0,0,e.xa._length),e.x1=o.constrain(e.x1,0,e.xa._length),e.y0=o.constrain(e.y0,0,e.ya._length),e.y1=o.constrain(e.y1,0,e.ya._length),void 0!==e.xLabelVal&&(e.xLabel="xLabel"in e?e.xLabel:v.hoverLabelText(e.xa,e.xLabelVal,n.xhoverformat),e.xVal=e.xa.c2d(e.xLabelVal)),void 0!==e.yLabelVal&&(e.yLabel="yLabel"in e?e.yLabel:v.hoverLabelText(e.ya,e.yLabelVal,n.yhoverformat),e.yVal=e.ya.c2d(e.yLabelVal)),void 0!==e.zLabelVal&&void 0===e.zLabel&&(e.zLabel=String(e.zLabelVal)),!(isNaN(e.xerr)||"log"===e.xa.type&&e.xerr<=0)){var f=v.tickText(e.xa,e.xa.c2l(e.xerr),"hover").text;void 0!==e.xerrneg?e.xLabel+=" +"+f+" / -"+v.tickText(e.xa,e.xa.c2l(e.xerrneg),"hover").text:e.xLabel+=" ± "+f,"x"===t&&(e.distance+=1)}if(!(isNaN(e.yerr)||"log"===e.ya.type&&e.yerr<=0)){var d=v.tickText(e.ya,e.ya.c2l(e.yerr),"hover").text;void 0!==e.yerrneg?e.yLabel+=" +"+d+" / -"+v.tickText(e.ya,e.ya.c2l(e.yerrneg),"hover").text:e.yLabel+=" ± "+d,"y"===t&&(e.distance+=1)}var h=e.hoverinfo||e.trace.hoverinfo;return h&&"all"!==h&&(-1===(h=Array.isArray(h)?h:h.split("+")).indexOf("x")&&(e.xLabel=void 0),-1===h.indexOf("y")&&(e.yLabel=void 0),-1===h.indexOf("z")&&(e.zLabel=void 0),-1===h.indexOf("text")&&(e.text=void 0),-1===h.indexOf("name")&&(e.name=void 0)),e}function F(e,t,r){var n,a,o=r.container,l=r.fullLayout,s=l._size,c=r.event,u=!!t.hLinePoint,f=!!t.vLinePoint;if(o.selectAll(".spikeline").remove(),f||u){var p=h.combine(l.plot_bgcolor,l.paper_bgcolor);if(u){var g,y,m=t.hLinePoint;n=m&&m.xa,"cursor"===(a=m&&m.ya).spikesnap?(g=c.pointerX,y=c.pointerY):(g=n._offset+m.x,y=a._offset+m.y);var x,b,_=i.readability(m.color,p)<1.5?h.contrast(p):m.color,w=a.spikemode,T=a.spikethickness,M=a.spikecolor||_,k=v.getPxPosition(e,a);if(-1!==w.indexOf("toaxis")||-1!==w.indexOf("across")){if(-1!==w.indexOf("toaxis")&&(x=k,b=g),-1!==w.indexOf("across")){var A=a._counterDomainMin,L=a._counterDomainMax;"free"===a.anchor&&(A=Math.min(A,a.position),L=Math.max(L,a.position)),x=s.l+A*s.w,b=s.l+L*s.w}o.insert("line",":first-child").attr({x1:x,x2:b,y1:y,y2:y,"stroke-width":T,stroke:M,"stroke-dasharray":d.dashStyle(a.spikedash,T)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:x,x2:b,y1:y,y2:y,"stroke-width":T+2,stroke:p}).classed("spikeline",!0).classed("crisp",!0)}-1!==w.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:k+("right"!==a.side?T:-T),cy:y,r:T,fill:M}).classed("spikeline",!0)}if(f){var S,D,O=t.vLinePoint;n=O&&O.xa,a=O&&O.ya,"cursor"===n.spikesnap?(S=c.pointerX,D=c.pointerY):(S=n._offset+O.x,D=a._offset+O.y);var C,P,I=i.readability(O.color,p)<1.5?h.contrast(p):O.color,R=n.spikemode,z=n.spikethickness,N=n.spikecolor||I,F=v.getPxPosition(e,n);if(-1!==R.indexOf("toaxis")||-1!==R.indexOf("across")){if(-1!==R.indexOf("toaxis")&&(C=F,P=D),-1!==R.indexOf("across")){var E=n._counterDomainMin,H=n._counterDomainMax;"free"===n.anchor&&(E=Math.min(E,n.position),H=Math.max(H,n.position)),C=s.t+(1-H)*s.h,P=s.t+(1-E)*s.h}o.insert("line",":first-child").attr({x1:S,x2:S,y1:C,y2:P,"stroke-width":z,stroke:N,"stroke-dasharray":d.dashStyle(n.spikedash,z)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:S,x2:S,y1:C,y2:P,"stroke-width":z+2,stroke:p}).classed("spikeline",!0).classed("crisp",!0)}-1!==R.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:S,cy:F-("top"!==n.side?z:-z),r:z,fill:N}).classed("spikeline",!0)}}}function E(e,t){return!t||t.vLinePoint!==e._spikepoints.vLinePoint||t.hLinePoint!==e._spikepoints.hLinePoint}function H(e,t){return u.plainText(e||"",{len:t,allowedTags:["br","sub","sup","b","i","em"]})}function B(e,t,r){var n=t[e+"a"],a=t[e+"Val"],i=t.cd[0];if("category"===n.type||"multicategory"===n.type)a=n._categoriesMap[a];else if("date"===n.type){var o=t.trace[e+"periodalignment"];if(o){var l=t.cd[t.index],s=l[e+"Start"];void 0===s&&(s=l[e]);var c=l[e+"End"];void 0===c&&(c=l[e]);var u=c-s;"end"===o?a+=u:"middle"===o&&(a+=u/2)}a=n.d2c(a)}return i&&i.t&&i.t.posLetter===n._id&&("group"!==r.boxmode&&"group"!==r.violinmode||(a+=i.t.dPos)),a}function j(e){return e.offsetTop+e.clientTop}function Y(e){return e.offsetLeft+e.clientLeft}function V(e,t){var r=e._fullLayout,n=t.getBoundingClientRect(),a=n.left,i=n.top,l=a+n.width,s=i+n.height,c=o.apply3DTransform(r._invTransform)(a,i),u=o.apply3DTransform(r._invTransform)(l,s),f=c[0],d=c[1],h=u[0],p=u[1];return{x:f,y:d,width:h-f,height:p-d,top:Math.min(d,p),left:Math.min(f,h),right:Math.max(f,h),bottom:Math.max(d,p)}}},6132:function(e,t,r){"use strict";var n=r(3400),a=r(6308),i=r(624).isUnifiedHover;e.exports=function(e,t,r,o){o=o||{};var l=t.legend;function s(e){o.font[e]||(o.font[e]=l?t.legend.font[e]:t.font[e])}t&&i(t.hovermode)&&(o.font||(o.font={}),s("size"),s("family"),s("color"),l?(o.bgcolor||(o.bgcolor=a.combine(t.legend.bgcolor,t.paper_bgcolor)),o.bordercolor||(o.bordercolor=t.legend.bordercolor)):o.bgcolor||(o.bgcolor=t.paper_bgcolor)),r("hoverlabel.bgcolor",o.bgcolor),r("hoverlabel.bordercolor",o.bordercolor),r("hoverlabel.namelength",o.namelength),n.coerceFont(r,"hoverlabel.font",o.font),r("hoverlabel.align",o.align)}},1008:function(e,t,r){"use strict";var n=r(3400),a=r(5460);e.exports=function(e,t){function r(r,i){return void 0!==t[r]?t[r]:n.coerce(e,t,a,r,i)}return r("clickmode"),r("hovermode")}},3024:function(e,t,r){"use strict";var n=r(3428),a=r(3400),i=r(6476),o=r(624),l=r(5460),s=r(3292);e.exports={moduleType:"component",name:"fx",constants:r(2456),schema:{layout:l},attributes:r(5756),layoutAttributes:l,supplyLayoutGlobalDefaults:r(1976),supplyDefaults:r(5448),supplyLayoutDefaults:r(8336),calc:r(5056),getDistanceFunction:o.getDistanceFunction,getClosest:o.getClosest,inbox:o.inbox,quadrature:o.quadrature,appendArrayPointValue:o.appendArrayPointValue,castHoverOption:function(e,t,r){return a.castOption(e,t,"hoverlabel."+r)},castHoverinfo:function(e,t,r){return a.castOption(e,r,"hoverinfo",(function(r){return a.coerceHoverinfo({hoverinfo:r},{_module:e._module},t)}))},hover:s.hover,unhover:i.unhover,loneHover:s.loneHover,loneUnhover:function(e){var t=a.isD3Selection(e)?e:n.select(e);t.selectAll("g.hovertext").remove(),t.selectAll(".spikeline").remove()},click:r(2376)}},5460:function(e,t,r){"use strict";var n=r(2456),a=r(5376),i=a({editType:"none"});i.family.dflt=n.HOVERFONT,i.size.dflt=n.HOVERFONTSIZE,e.exports={clickmode:{valType:"flaglist",flags:["event","select"],dflt:"event",editType:"plot",extras:["none"]},dragmode:{valType:"enumerated",values:["zoom","pan","select","lasso","drawclosedpath","drawopenpath","drawline","drawrect","drawcircle","orbit","turntable",!1],dflt:"zoom",editType:"modebar"},hovermode:{valType:"enumerated",values:["x","y","closest",!1,"x unified","y unified"],dflt:"closest",editType:"modebar"},hoverdistance:{valType:"integer",min:-1,dflt:20,editType:"none"},spikedistance:{valType:"integer",min:-1,dflt:-1,editType:"none"},hoverlabel:{bgcolor:{valType:"color",editType:"none"},bordercolor:{valType:"color",editType:"none"},font:i,grouptitlefont:a({editType:"none"}),align:{valType:"enumerated",values:["left","right","auto"],dflt:"auto",editType:"none"},namelength:{valType:"integer",min:-1,dflt:15,editType:"none"},editType:"none"},selectdirection:{valType:"enumerated",values:["h","v","d","any"],dflt:"any",editType:"none"}}},8336:function(e,t,r){"use strict";var n=r(3400),a=r(5460),i=r(1008),o=r(6132);e.exports=function(e,t){function r(r,i){return n.coerce(e,t,a,r,i)}i(e,t)&&(r("hoverdistance"),r("spikedistance")),"select"===r("dragmode")&&r("selectdirection");var l=t._has("mapbox"),s=t._has("geo"),c=t._basePlotModules.length;"zoom"===t.dragmode&&((l||s)&&1===c||l&&s&&2===c)&&(t.dragmode="pan"),o(e,t,r),n.coerceFont(r,"hoverlabel.grouptitlefont",t.hoverlabel.font)}},1976:function(e,t,r){"use strict";var n=r(3400),a=r(6132),i=r(5460);e.exports=function(e,t){a(e,t,(function(r,a){return n.coerce(e,t,i,r,a)}))}},2704:function(e,t,r){"use strict";var n=r(3400),a=r(3756).counter,i=r(6968).u,o=r(3816).idRegex,l=r(1780),s={rows:{valType:"integer",min:1,editType:"plot"},roworder:{valType:"enumerated",values:["top to bottom","bottom to top"],dflt:"top to bottom",editType:"plot"},columns:{valType:"integer",min:1,editType:"plot"},subplots:{valType:"info_array",freeLength:!0,dimensions:2,items:{valType:"enumerated",values:[a("xy").toString(),""],editType:"plot"},editType:"plot"},xaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[o.x.toString(),""],editType:"plot"},editType:"plot"},yaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[o.y.toString(),""],editType:"plot"},editType:"plot"},pattern:{valType:"enumerated",values:["independent","coupled"],dflt:"coupled",editType:"plot"},xgap:{valType:"number",min:0,max:1,editType:"plot"},ygap:{valType:"number",min:0,max:1,editType:"plot"},domain:i({name:"grid",editType:"plot",noGridCell:!0},{}),xside:{valType:"enumerated",values:["bottom","bottom plot","top plot","top"],dflt:"bottom plot",editType:"plot"},yside:{valType:"enumerated",values:["left","left plot","right plot","right"],dflt:"left plot",editType:"plot"},editType:"plot"};function c(e,t,r){var n=t[r+"axes"],a=Object.keys((e._splomAxes||{})[r]||{});return Array.isArray(n)?n:a.length?a:void 0}function u(e,t,r,n,a,i){var o=t(e+"gap",r),l=t("domain."+e);t(e+"side",n);for(var s=new Array(a),c=l[0],u=(l[1]-c)/(a-o),f=u*(1-o),d=0;d1){d||h||p||"independent"===M("pattern")&&(d=!0),g._hasSubplotGrid=d;var x,b,_="top to bottom"===M("roworder"),w=d?.2:.1,T=d?.3:.1;v&&t._splomGridDflt&&(x=t._splomGridDflt.xside,b=t._splomGridDflt.yside),g._domains={x:u("x",M,w,x,m),y:u("y",M,T,b,y,_)}}else delete t.grid}function M(e,t){return n.coerce(r,g,s,e,t)}},contentDefaults:function(e,t){var r=t.grid;if(r&&r._domains){var n,a,i,o,l,s,u,d=e.grid||{},h=t._subplots,p=r._hasSubplotGrid,v=r.rows,g=r.columns,y="independent"===r.pattern,m=r._axisMap={};if(p){var x=d.subplots||[];s=r.subplots=new Array(v);var b=1;for(n=0;n("legend"===e?1:0));if(!1===A&&(r[e]=void 0),(!1!==A||f.uirevision)&&(h("uirevision",r.uirevision),!1!==A)){h("borderwidth");var L,S,D,O="h"===h("orientation"),C="paper"===h("yref"),P="paper"===h("xref"),I="left";if(O?(L=0,n.getComponentMethod("rangeslider","isVisible")(t.xaxis)?C?(S=1.1,D="bottom"):(S=1,D="top"):C?(S=-.1,D="top"):(S=0,D="bottom")):(S=1,D="auto",P?L=1.02:(L=1,I="right")),a.coerce(f,d,{x:{valType:"number",editType:"legend",min:P?-2:0,max:P?3:1,dflt:L}},"x"),a.coerce(f,d,{y:{valType:"number",editType:"legend",min:C?-2:0,max:C?3:1,dflt:S}},"y"),h("traceorder",_),c.isGrouped(r[e])&&h("tracegroupgap"),h("entrywidth"),h("entrywidthmode"),h("itemsizing"),h("itemwidth"),h("itemclick"),h("itemdoubleclick"),h("groupclick"),h("xanchor",I),h("yanchor",D),h("valign"),a.noneOrAll(f,d,["x","y"]),h("title.text")){h("title.side",O?"left":"top");var R=a.extendFlat({},p,{size:a.bigFont(p.size)});a.coerceFont(h,"title.font",R)}}}}e.exports=function(e,t,r){var n,i=r.slice(),o=t.shapes;if(o)for(n=0;n1)}var E=p.hiddenlabels||[];if(!(T||p.showlegend&&L.length))return l.selectAll("."+w).remove(),p._topdefs.select("#"+r).remove(),i.autoMargin(e,w);var H=a.ensureSingle(l,"g",w,(function(e){T||e.attr("pointer-events","all")})),B=a.ensureSingleById(p._topdefs,"clipPath",r,(function(e){e.append("rect")})),j=a.ensureSingle(H,"rect","bg",(function(e){e.attr("shape-rendering","crispEdges")}));j.call(u.stroke,d.bordercolor).call(u.fill,d.bgcolor).style("stroke-width",d.borderwidth+"px");var Y,V=a.ensureSingle(H,"g","scrollbox"),U=d.title;d._titleWidth=0,d._titleHeight=0,U.text?((Y=a.ensureSingle(V,"text",w+"titletext")).attr("text-anchor","start").call(c.font,U.font).text(U.text),D(Y,V,e,d,_)):V.selectAll("."+w+"titletext").remove();var q=a.ensureSingle(H,"rect","scrollbar",(function(e){e.attr(h.scrollBarEnterAttrs).call(u.fill,h.scrollBarColor)})),G=V.selectAll("g.groups").data(L);G.enter().append("g").attr("class","groups"),G.exit().remove();var Z=G.selectAll("g.traces").data(a.identity);Z.enter().append("g").attr("class","traces"),Z.exit().remove(),Z.style("opacity",(function(e){var t=e[0].trace;return o.traceIs(t,"pie-like")?-1!==E.indexOf(e[0].label)?.5:1:"legendonly"===t.visible?.5:1})).each((function(){n.select(this).call(A,e,d)})).call(x,e,d).each((function(){T||n.select(this).call(S,e,w)})),a.syncOrAsync([i.previousPromises,function(){return function(e,t,r,a){var i=e._fullLayout,o=P(a);a||(a=i[o]);var l=i._size,s=b.isVertical(a),u=b.isGrouped(a),f="fraction"===a.entrywidthmode,d=a.borderwidth,p=2*d,v=h.itemGap,g=a.itemwidth+2*v,y=2*(d+v),m=C(a),x=a.y<0||0===a.y&&"top"===m,_=a.y>1||1===a.y&&"bottom"===m,w=a.tracegroupgap,T={};a._maxHeight=Math.max(x||_?i.height/2:l.h,30);var k=0;a._width=0,a._height=0;var A=function(e){var t=0,r=0,n=e.title.side;return n&&(-1!==n.indexOf("left")&&(t=e._titleWidth),-1!==n.indexOf("top")&&(r=e._titleHeight)),[t,r]}(a);if(s)r.each((function(e){var t=e[0].height;c.setTranslate(this,d+A[0],d+A[1]+a._height+t/2+v),a._height+=t,a._width=Math.max(a._width,e[0].width)})),k=g+a._width,a._width+=v+g+p,a._height+=y,u&&(t.each((function(e,t){c.setTranslate(this,0,t*a.tracegroupgap)})),a._height+=(a._lgroupsLength-1)*a.tracegroupgap);else{var L=O(a),S=a.x<0||0===a.x&&"right"===L,D=a.x>1||1===a.x&&"left"===L,I=_||x,R=i.width/2;a._maxWidth=Math.max(S?I&&"left"===L?l.l+l.w:R:D?I&&"right"===L?l.r+l.w:R:l.w,2*g);var z=0,N=0;r.each((function(e){var t=M(e,a,g);z=Math.max(z,t),N+=t})),k=null;var F=0;if(u){var E=0,H=0,B=0;t.each((function(){var e=0,t=0;n.select(this).selectAll("g.traces").each((function(r){var n=M(r,a,g),i=r[0].height;c.setTranslate(this,A[0],A[1]+d+v+i/2+t),t+=i,e=Math.max(e,n),T[r[0].trace.legendgroup]=e}));var r=e+v;H>0&&r+d+H>a._maxWidth?(F=Math.max(F,H),H=0,B+=E+w,E=t):E=Math.max(E,t),c.setTranslate(this,H,B),H+=r})),a._width=Math.max(F,H)+d,a._height=B+E+y}else{var j=r.size(),Y=N+p+(j-1)*v=a._maxWidth&&(F=Math.max(F,G),U=0,q+=V,a._height+=V,V=0),c.setTranslate(this,A[0]+d+U,A[1]+d+q+t/2+v),G=U+r+v,U+=n,V=Math.max(V,t)})),Y?(a._width=U+p,a._height=V+y):(a._width=Math.max(F,G)+p,a._height+=V+y)}}a._width=Math.ceil(Math.max(a._width+A[0],a._titleWidth+2*(d+h.titlePad))),a._height=Math.ceil(Math.max(a._height+A[1],a._titleHeight+2*(d+h.itemGap))),a._effHeight=Math.min(a._height,a._maxHeight);var Z=e._context.edits,W=Z.legendText||Z.legendPosition;r.each((function(e){var t=n.select(this).select("."+o+"toggle"),r=e[0].height,i=e[0].trace.legendgroup,l=M(e,a,g);u&&""!==i&&(l=T[i]);var d=W?g:k||l;s||f||(d+=v/2),c.setRect(t,0,-r/2,d,r)}))}(e,G,Z,d)},function(){var t,u,m,x,b=p._size,_=d.borderwidth,M="paper"===d.xref,A="paper"===d.yref;if(U.text&&function(e,t,r){if("top center"===t.title.side||"top right"===t.title.side){var n=t.title.font.size*v,a=0,i=e.node(),o=c.bBox(i).width;"top center"===t.title.side?a=.5*(t._width-2*r-2*h.titlePad-o):"top right"===t.title.side&&(a=t._width-2*r-2*h.titlePad-o),f.positionText(e,r+h.titlePad+a,r+n)}}(Y,d,_),!T){var L,S;L=M?b.l+b.w*d.x-g[O(d)]*d._width:p.width*d.x-g[O(d)]*d._width,S=A?b.t+b.h*(1-d.y)-g[C(d)]*d._effHeight:p.height*(1-d.y)-g[C(d)]*d._effHeight;var D=function(e,t,r,n){var a=e._fullLayout,o=a[t],l=O(o),s=C(o),c="paper"===o.xref,u="paper"===o.yref;e._fullLayout._reservedMargin[t]={};var f=o.y<.5?"b":"t",d=o.x<.5?"l":"r",h={r:a.width-r,l:r+o._width,b:a.height-n,t:n+o._effHeight};if(c&&u)return i.autoMargin(e,t,{x:o.x,y:o.y,l:o._width*g[l],r:o._width*y[l],b:o._effHeight*y[s],t:o._effHeight*g[s]});c?e._fullLayout._reservedMargin[t][f]=h[f]:u||"v"===o.orientation?e._fullLayout._reservedMargin[t][d]=h[d]:e._fullLayout._reservedMargin[t][f]=h[f]}(e,w,L,S);if(D)return;if(p.margin.autoexpand){var P=L,I=S;L=M?a.constrain(L,0,p.width-d._width):P,S=A?a.constrain(S,0,p.height-d._effHeight):I,L!==P&&a.log("Constrain "+w+".x to make legend fit inside graph"),S!==I&&a.log("Constrain "+w+".y to make legend fit inside graph")}c.setTranslate(H,L,S)}if(q.on(".drag",null),H.on("wheel",null),T||d._height<=d._maxHeight||e._context.staticPlot){var R=d._effHeight;T&&(R=d._height),j.attr({width:d._width-_,height:R-_,x:_/2,y:_/2}),c.setTranslate(V,0,0),B.select("rect").attr({width:d._width-2*_,height:R-2*_,x:_,y:_}),c.setClipUrl(V,r,e),c.setRect(q,0,0,0,0),delete d._scrollY}else{var z,N,F,E=Math.max(h.scrollBarMinHeight,d._effHeight*d._effHeight/d._height),G=d._effHeight-E-2*h.scrollBarMargin,Z=d._height-d._effHeight,W=G/Z,X=Math.min(d._scrollY||0,Z);j.attr({width:d._width-2*_+h.scrollBarWidth+h.scrollBarMargin,height:d._effHeight-_,x:_/2,y:_/2}),B.select("rect").attr({width:d._width-2*_+h.scrollBarWidth+h.scrollBarMargin,height:d._effHeight-2*_,x:_,y:_+X}),c.setClipUrl(V,r,e),Q(X,E,W),H.on("wheel",(function(){Q(X=a.constrain(d._scrollY+n.event.deltaY/G*Z,0,Z),E,W),0!==X&&X!==Z&&n.event.preventDefault()}));var J=n.behavior.drag().on("dragstart",(function(){var e=n.event.sourceEvent;z="touchstart"===e.type?e.changedTouches[0].clientY:e.clientY,F=X})).on("drag",(function(){var e=n.event.sourceEvent;2===e.buttons||e.ctrlKey||(N="touchmove"===e.type?e.changedTouches[0].clientY:e.clientY,X=function(e,t,r){var n=(r-t)/W+e;return a.constrain(n,0,Z)}(F,z,N),Q(X,E,W))}));q.call(J);var K=n.behavior.drag().on("dragstart",(function(){var e=n.event.sourceEvent;"touchstart"===e.type&&(z=e.changedTouches[0].clientY,F=X)})).on("drag",(function(){var e=n.event.sourceEvent;"touchmove"===e.type&&(N=e.changedTouches[0].clientY,X=function(e,t,r){var n=(t-r)/W+e;return a.constrain(n,0,Z)}(F,z,N),Q(X,E,W))}));V.call(K)}function Q(t,r,n){d._scrollY=e._fullLayout[w]._scrollY=t,c.setTranslate(V,0,-t),c.setRect(q,d._width,h.scrollBarMargin+t*n,h.scrollBarWidth,r),B.select("rect").attr("y",_+t)}e._context.edits.legendPosition&&(H.classed("cursor-move",!0),s.init({element:H.node(),gd:e,prepFn:function(){var e=c.getTranslate(H);m=e.x,x=e.y},moveFn:function(e,r){var n=m+e,a=x+r;c.setTranslate(H,n,a),t=s.align(n,d._width,b.l,b.l+b.w,d.xanchor),u=s.align(a+d._height,-d._height,b.t+b.h,b.t,d.yanchor)},doneFn:function(){if(void 0!==t&&void 0!==u){var r={};r[w+".x"]=t,r[w+".y"]=u,o.call("_guiRelayout",e,r)}},clickFn:function(t,r){var n=l.selectAll("g.traces").filter((function(){var e=this.getBoundingClientRect();return r.clientX>=e.left&&r.clientX<=e.right&&r.clientY>=e.top&&r.clientY<=e.bottom}));n.size()>0&&k(e,H,n,t,r)}}))}],e)}}function M(e,t,r){var n=e[0],a=n.width,i=t.entrywidthmode,o=n.trace.legendwidth||t.entrywidth;return"fraction"===i?t._maxWidth*o:r+(o||a)}function k(e,t,r,n,a){var i=r.data()[0][0].trace,s={event:a,node:r.node(),curveNumber:i.index,expandedIndex:i._expandedIndex,data:e.data,layout:e.layout,frames:e._transitionData._frames,config:e._context,fullData:e._fullData,fullLayout:e._fullLayout};i._group&&(s.group=i._group),o.traceIs(i,"pie-like")&&(s.label=r.datum()[0].label);var c=l.triggerHandler(e,"plotly_legendclick",s);if(1===n){if(!1===c)return;t._clickTimeout=setTimeout((function(){e._fullLayout&&d(r,e,n)}),e._context.doubleClickDelay)}else 2===n&&(t._clickTimeout&&clearTimeout(t._clickTimeout),e._legendMouseDownTime=0,!1!==l.triggerHandler(e,"plotly_legenddoubleclick",s)&&!1!==c&&d(r,e,n))}function A(e,t,r){var n,i,l=P(r),s=e.data()[0][0],u=s.trace,d=o.traceIs(u,"pie-like"),p=!r._inHover&&t._context.edits.legendText&&!d,v=r._maxNameLength;s.groupTitle?(n=s.groupTitle.text,i=s.groupTitle.font):(i=r.font,r.entries?n=s.text:(n=d?s.label:u.name,u._meta&&(n=a.templateString(n,u._meta))));var g=a.ensureSingle(e,"text",l+"text");g.attr("text-anchor","start").call(c.font,i).text(p?L(n,v):n);var y=r.itemwidth+2*h.itemGap;f.positionText(g,y,0),p?g.call(f.makeEditable,{gd:t,text:n}).call(D,e,t,r).on("edit",(function(n){this.text(L(n,v)).call(D,e,t,r);var i=s.trace._fullInput||{},l={};if(o.hasTransform(i,"groupby")){var c=o.getTransformIndices(i,"groupby"),f=c[c.length-1],d=a.keyedContainer(i,"transforms["+f+"].styles","target","value.name");d.set(s.trace._group,n),l=d.constructUpdate()}else l.name=n;return i._isShape?o.call("_guiRelayout",t,"shapes["+u.index+"].name",l.name):o.call("_guiRestyle",t,l,u.index)})):D(g,e,t,r)}function L(e,t){var r=Math.max(4,t);if(e&&e.trim().length>=r/2)return e;for(var n=r-(e=e||"").length;n>0;n--)e+=" ";return e}function S(e,t,r){var i,o=t._context.doubleClickDelay,l=1,s=a.ensureSingle(e,"rect",r+"toggle",(function(e){t._context.staticPlot||e.style("cursor","pointer").attr("pointer-events","all"),e.call(u.fill,"rgba(0,0,0,0)")}));t._context.staticPlot||(s.on("mousedown",(function(){(i=(new Date).getTime())-t._legendMouseDownTimeo&&(l=Math.max(l-1,1)),k(t,a,e,l,n.event)}})))}function D(e,t,r,n,a){n._inHover&&e.attr("data-notex",!0),f.convertToTspans(e,r,(function(){!function(e,t,r,n){var a=e.data()[0][0];if(r._inHover||!a||a.trace.showlegend){var i=e.select("g[class*=math-group]"),o=i.node(),l=P(r);r||(r=t._fullLayout[l]);var s,u,d=r.borderwidth,p=(n===_?r.title.font:a.groupTitle?a.groupTitle.font:r.font).size*v;if(o){var g=c.bBox(o);s=g.height,u=g.width,n===_?c.setTranslate(i,d,d+.75*s):c.setTranslate(i,0,.25*s)}else{var y="."+l+(n===_?"title":"")+"text",m=e.select(y),x=f.lineCount(m),b=m.node();if(s=p*x,u=b?c.bBox(b).width:0,n===_)"left"===r.title.side&&(u+=2*h.itemGap),f.positionText(m,d+h.titlePad,d+p);else{var w=2*h.itemGap+r.itemwidth;a.groupTitle&&(w=h.itemGap,u-=r.itemwidth),f.positionText(m,w,-p*((x-1)/2-.3))}}n===_?(r._titleWidth=u,r._titleHeight=s):(a.lineHeight=p,a.height=Math.max(s,16)+3,a.width=u)}else e.remove()}(t,r,n,a)}))}function O(e){return a.isRightAnchor(e)?"right":a.isCenterAnchor(e)?"center":"left"}function C(e){return a.isBottomAnchor(e)?"bottom":a.isMiddleAnchor(e)?"middle":"top"}function P(e){return e._id||"legend"}e.exports=function(e,t){if(t)T(e,t);else{var r=e._fullLayout,a=r._legends;r._infolayer.selectAll('[class^="legend"]').each((function(){var e=n.select(this),t=e.attr("class").split(" ")[0];t.match(w)&&-1===a.indexOf(t)&&e.remove()}));for(var i=0;iL&&(A=L)}M[i][0]._groupMinRank=A,M[i][0]._preGroupSort=i}var S=function(e,t){return e.trace.legendrank-t.trace.legendrank||e._preSort-t._preSort};for(M.forEach((function(e,t){e[0]._preGroupSort=t})),M.sort((function(e,t){return e[0]._groupMinRank-t[0]._groupMinRank||e[0]._preGroupSort-t[0]._preGroupSort})),i=0;ir?r:e}e.exports=function(e,t,r){var y=t._fullLayout;r||(r=y.legend);var m="constant"===r.itemsizing,x=r.itemwidth,b=(x+2*h.itemGap)/2,_=o(b,0),w=function(e,t,r,n){var a;if(e+1)a=e;else{if(!(t&&t.width>0))return 0;a=t.width}return m?n:Math.min(a,r)};function T(e,i,o){var u=e[0].trace,f=u.marker||{},d=f.line||{},h=f.cornerradius?"M6,3a3,3,0,0,1-3,3H-3a3,3,0,0,1-3-3V-3a3,3,0,0,1,3-3H3a3,3,0,0,1,3,3Z":"M6,6H-6V-6H6Z",p=o?u.visible&&u.type===o:a.traceIs(u,"bar"),v=n.select(i).select("g.legendpoints").selectAll("path.legend"+o).data(p?[e]:[]);v.enter().append("path").classed("legend"+o,!0).attr("d",h).attr("transform",_),v.exit().remove(),v.each((function(e){var a=n.select(this),i=e[0],o=w(i.mlw,f.line,5,2);a.style("stroke-width",o+"px");var h=i.mcc;if(!r._inHover&&"mc"in i){var p=c(f),v=p.mid;void 0===v&&(v=(p.max+p.min)/2),h=l.tryColorscale(f,"")(v)}var y=h||i.mc||f.color,m=f.pattern,x=m&&l.getPatternAttr(m.shape,0,"");if(x){var b=l.getPatternAttr(m.bgcolor,0,null),_=l.getPatternAttr(m.fgcolor,0,null),T=m.fgopacity,M=g(m.size,8,10),k=g(m.solidity,.5,1),A="legend-"+u.uid;a.call(l.pattern,"legend",t,A,x,M,k,h,m.fillmode,b,_,T)}else a.call(s.fill,y);o&&s.stroke(a,i.mlc||d.color)}))}function M(e,r,o){var l=e[0],s=l.trace,c=o?s.visible&&s.type===o:a.traceIs(s,o),u=n.select(r).select("g.legendpoints").selectAll("path.legend"+o).data(c?[e]:[]);if(u.enter().append("path").classed("legend"+o,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),u.exit().remove(),u.size()){var h=s.marker||{},p=w(d(h.line.width,l.pts),h.line,5,2),v="pieLike",g=i.minExtend(s,{marker:{line:{width:p}}},v),y=i.minExtend(l,{trace:g},v);f(u,y,g,t)}}e.each((function(e){var t=n.select(this),a=i.ensureSingle(t,"g","layers");a.style("opacity",e[0].trace.opacity);var l=r.valign,s=e[0].lineHeight,c=e[0].height;if("middle"!==l&&s&&c){var u={top:1,bottom:-1}[l]*(.5*(s-c+3));a.attr("transform",o(0,u))}else a.attr("transform",null);a.selectAll("g.legendfill").data([e]).enter().append("g").classed("legendfill",!0),a.selectAll("g.legendlines").data([e]).enter().append("g").classed("legendlines",!0);var f=a.selectAll("g.legendsymbols").data([e]);f.enter().append("g").classed("legendsymbols",!0),f.selectAll("g.legendpoints").data([e]).enter().append("g").classed("legendpoints",!0)})).each((function(e){var r,a=e[0].trace,o=[];if(a.visible)switch(a.type){case"histogram2d":case"heatmap":o=[["M-15,-2V4H15V-2Z"]],r=!0;break;case"choropleth":case"choroplethmapbox":o=[["M-6,-6V6H6V-6Z"]],r=!0;break;case"densitymapbox":o=[["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]],r="radial";break;case"cone":o=[["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"],["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"],["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]],r=!1;break;case"streamtube":o=[["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"],["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"],["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]],r=!1;break;case"surface":o=[["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"],["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]],r=!0;break;case"mesh3d":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!1;break;case"volume":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!0;break;case"isosurface":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]],r=!1}var u=n.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(o);u.enter().append("path").classed("legend3dandfriends",!0).attr("transform",_).style("stroke-miterlimit",1),u.exit().remove(),u.each((function(e,o){var u,f=n.select(this),d=c(a),h=d.colorscale,v=d.reversescale;if(h){if(!r){var g=h.length;u=0===o?h[v?g-1:0][1]:1===o?h[v?0:g-1][1]:h[Math.floor((g-1)/2)][1]}}else{var y=a.vertexcolor||a.facecolor||a.color;u=i.isArrayOrTypedArray(y)?y[o]||y[0]:y}f.attr("d",e[0]),u?f.call(s.fill,u):f.call((function(e){if(e.size()){var n="legendfill-"+a.uid;l.gradient(e,t,n,p(v,"radial"===r),h,"fill")}}))}))})).each((function(e){var t=e[0].trace,r="waterfall"===t.type;if(e[0]._distinct&&r){var a=e[0].trace[e[0].dir].marker;return e[0].mc=a.color,e[0].mlw=a.line.width,e[0].mlc=a.line.color,T(e,this,"waterfall")}var i=[];t.visible&&r&&(i=e[0].hasTotals?[["increasing","M-6,-6V6H0Z"],["totals","M6,6H0L-6,-6H-0Z"],["decreasing","M6,6V-6H0Z"]]:[["increasing","M-6,-6V6H6Z"],["decreasing","M6,6V-6H-6Z"]]);var o=n.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(i);o.enter().append("path").classed("legendwaterfall",!0).attr("transform",_).style("stroke-miterlimit",1),o.exit().remove(),o.each((function(e){var r=n.select(this),a=t[e[0]].marker,i=w(void 0,a.line,5,2);r.attr("d",e[1]).style("stroke-width",i+"px").call(s.fill,a.color),i&&r.call(s.stroke,a.line.color)}))})).each((function(e){T(e,this,"funnel")})).each((function(e){T(e,this)})).each((function(e){var r=e[0].trace,o=n.select(this).select("g.legendpoints").selectAll("path.legendbox").data(r.visible&&a.traceIs(r,"box-violin")?[e]:[]);o.enter().append("path").classed("legendbox",!0).attr("d","M6,6H-6V-6H6Z").attr("transform",_),o.exit().remove(),o.each((function(){var e=n.select(this);if("all"!==r.boxpoints&&"all"!==r.points||0!==s.opacity(r.fillcolor)||0!==s.opacity((r.line||{}).color)){var a=w(void 0,r.line,5,2);e.style("stroke-width",a+"px").call(s.fill,r.fillcolor),a&&s.stroke(e,r.line.color)}else{var c=i.minExtend(r,{marker:{size:m?12:i.constrain(r.marker.size,2,16),sizeref:1,sizemin:1,sizemode:"diameter"}});o.call(l.pointStyle,c,t)}}))})).each((function(e){M(e,this,"funnelarea")})).each((function(e){M(e,this,"pie")})).each((function(e){var r,a,o=v(e),s=o.showFill,f=o.showLine,d=o.showGradientLine,h=o.showGradientFill,g=o.anyFill,y=o.anyLine,m=e[0],b=m.trace,_=c(b),T=_.colorscale,M=_.reversescale,k=u.hasMarkers(b)||!g?"M5,0":y?"M5,-2":"M5,-3",A=n.select(this),L=A.select(".legendfill").selectAll("path").data(s||h?[e]:[]);if(L.enter().append("path").classed("js-fill",!0),L.exit().remove(),L.attr("d",k+"h"+x+"v6h-"+x+"z").call((function(e){if(e.size())if(s)l.fillGroupStyle(e,t);else{var r="legendfill-"+b.uid;l.gradient(e,t,r,p(M),T,"fill")}})),f||d){var S=w(void 0,b.line,10,5);a=i.minExtend(b,{line:{width:S}}),r=[i.minExtend(m,{trace:a})]}var D=A.select(".legendlines").selectAll("path").data(f||d?[r]:[]);D.enter().append("path").classed("js-line",!0),D.exit().remove(),D.attr("d",k+(d?"l"+x+",0.0001":"h"+x)).call(f?l.lineGroupStyle:function(e){if(e.size()){var r="legendline-"+b.uid;l.lineGroupStyle(e),l.gradient(e,t,r,p(M),T,"stroke")}})})).each((function(e){var r,a,o=v(e),s=o.anyFill,c=o.anyLine,f=o.showLine,d=o.showMarker,h=e[0],p=h.trace,g=!d&&!c&&!s&&u.hasText(p);function y(e,t,r,n){var a=i.nestedProperty(p,e).get(),o=i.isArrayOrTypedArray(a)&&t?t(a):a;if(m&&o&&void 0!==n&&(o=n),r){if(or[1])return r[1]}return o}function x(e){return h._distinct&&h.index&&e[h.index]?e[h.index]:e[0]}if(d||g||f){var b={},w={};if(d){b.mc=y("marker.color",x),b.mx=y("marker.symbol",x),b.mo=y("marker.opacity",i.mean,[.2,1]),b.mlc=y("marker.line.color",x),b.mlw=y("marker.line.width",i.mean,[0,5],2),w.marker={sizeref:1,sizemin:1,sizemode:"diameter"};var T=y("marker.size",i.mean,[2,16],12);b.ms=T,w.marker.size=T}f&&(w.line={width:y("line.width",x,[0,10],5)}),g&&(b.tx="Aa",b.tp=y("textposition",x),b.ts=10,b.tc=y("textfont.color",x),b.tf=y("textfont.family",x)),r=[i.minExtend(h,b)],(a=i.minExtend(p,w)).selectedpoints=null,a.texttemplate=null}var M=n.select(this).select("g.legendpoints"),k=M.selectAll("path.scatterpts").data(d?r:[]);k.enter().insert("path",":first-child").classed("scatterpts",!0).attr("transform",_),k.exit().remove(),k.call(l.pointStyle,a,t),d&&(r[0].mrc=3);var A=M.selectAll("g.pointtext").data(g?r:[]);A.enter().append("g").classed("pointtext",!0).append("text").attr("transform",_),A.exit().remove(),A.selectAll("text").call(l.textPointStyle,a,t)})).each((function(e){var t=e[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(t.visible&&"candlestick"===t.type?[e,e]:[]);r.enter().append("path").classed("legendcandle",!0).attr("d",(function(e,t){return t?"M-15,0H-8M-8,6V-6H8Z":"M15,0H8M8,-6V6H-8Z"})).attr("transform",_).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(e,r){var a=n.select(this),i=t[r?"increasing":"decreasing"],o=w(void 0,i.line,5,2);a.style("stroke-width",o+"px").call(s.fill,i.fillcolor),o&&s.stroke(a,i.line.color)}))})).each((function(e){var t=e[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(t.visible&&"ohlc"===t.type?[e,e]:[]);r.enter().append("path").classed("legendohlc",!0).attr("d",(function(e,t){return t?"M-15,0H0M-8,-6V0":"M15,0H0M8,6V0"})).attr("transform",_).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(e,r){var a=n.select(this),i=t[r?"increasing":"decreasing"],o=w(void 0,i.line,5,2);a.style("fill","none").call(l.dashLine,i.line.dash,o),o&&s.stroke(a,i.line.color)}))}))}},6540:function(e,t,r){"use strict";r(6052),e.exports={editType:"modebar",orientation:{valType:"enumerated",values:["v","h"],dflt:"h",editType:"modebar"},bgcolor:{valType:"color",editType:"modebar"},color:{valType:"color",editType:"modebar"},activecolor:{valType:"color",editType:"modebar"},uirevision:{valType:"any",editType:"none"},add:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"},remove:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"}}},1868:function(e,t,r){"use strict";var n=r(4040),a=r(7316),i=r(9811),o=r(9224),l=r(4016).eraseActiveShape,s=r(3400),c=s._,u=e.exports={};function f(e,t){var r,a,o=t.currentTarget,l=o.getAttribute("data-attr"),s=o.getAttribute("data-val")||!0,c=e._fullLayout,u={},f=i.list(e,null,!0),d=c._cartesianSpikesEnabled;if("zoom"===l){var h,p="in"===s?.5:2,v=(1+p)/2,g=(1-p)/2;for(a=0;a1?(P=["toggleHover"],I=["resetViews"]):y?(C=["zoomInGeo","zoomOutGeo"],P=["hoverClosestGeo"],I=["resetGeo"]):g?(P=["hoverClosest3d"],I=["resetCameraDefault3d","resetCameraLastSave3d"]):w?(C=["zoomInMapbox","zoomOutMapbox"],P=["toggleHover"],I=["resetViewMapbox"]):b?P=["hoverClosestGl2d"]:m?P=["hoverClosestPie"]:k?(P=["hoverClosestCartesian","hoverCompareCartesian"],I=["resetViewSankey"]):P=["toggleHover"],v&&(P=["toggleSpikelines","hoverClosestCartesian","hoverCompareCartesian"]),(function(e){for(var t=0;t0)){var v=function(e,t,r){for(var n=r.filter((function(r){return t[r].anchor===e._id})),a=0,i=0;i0?e.touches[0].clientX:0}function y(e,t,r,n){var a=o.ensureSingle(e,"rect",v.bgClassName,(function(e){e.attr({x:0,y:0,"shape-rendering":"crispEdges"})})),i=n.borderwidth%2==0?n.borderwidth:n.borderwidth-1,u=-n._offsetShift,f=s.crispRound(t,n.borderwidth);a.attr({width:n._width+i,height:n._height+i,transform:l(u,u),"stroke-width":f}).call(c.stroke,n.bordercolor).call(c.fill,n.bgcolor)}function m(e,t,r,n){var a=t._fullLayout;o.ensureSingleById(a._topdefs,"clipPath",n._clipId,(function(e){e.append("rect").attr({x:0,y:0})})).select("rect").attr({width:n._width,height:n._height})}function x(e,t,r,a){var l,c=t.calcdata,u=e.selectAll("g."+v.rangePlotClassName).data(r._subplotsWith,o.identity);u.enter().append("g").attr("class",(function(e){return v.rangePlotClassName+" "+e})).call(s.setClipUrl,a._clipId,t),u.order(),u.exit().remove(),u.each((function(e,o){var s=n.select(this),u=0===o,h=d.getFromId(t,e,"y"),p=h._name,v=a[p],g={data:[],layout:{xaxis:{type:r.type,domain:[0,1],range:a.range.slice(),calendar:r.calendar},width:a._width,height:a._height,margin:{t:0,b:0,l:0,r:0}},_context:t._context};r.rangebreaks&&(g.layout.xaxis.rangebreaks=r.rangebreaks),g.layout[p]={type:h.type,domain:[0,1],range:"match"!==v.rangemode?v.range.slice():h.range.slice(),calendar:h.calendar},h.rangebreaks&&(g.layout[p].rangebreaks=h.rangebreaks),i.supplyDefaults(g);var y=g._fullLayout.xaxis,m=g._fullLayout[p];y.clearCalc(),y.setScale(),m.clearCalc(),m.setScale();var x={id:e,plotgroup:s,xaxis:y,yaxis:m,isRangePlot:!0};u?l=x:(x.mainplot="xy",x.mainplotinfo=l),f.rangePlot(t,x,function(e,t){for(var r=[],n=0;n=n.max)t=E[r+1];else if(e=n.pmax)t=E[r+1];else if(er._length||m+_<0)return;u=y+_,h=m+_;break;case s:if(b="col-resize",y+_>r._length)return;u=y+_,h=m;break;case c:if(b="col-resize",m+_<0)return;u=y,h=m+_;break;default:b="ew-resize",u=v,h=v+_}if(h=0;M--){var k=r.append("path").attr(g).style("opacity",M?.1:y).call(o.stroke,x).call(o.fill,m).call(l.dashLine,M?"solid":_,M?4+b:b);if(p(k,e,i),w){var A=s(e.layout,"selections",i);k.style({cursor:"move"});var L={element:k.node(),plotinfo:h,gd:e,editHelpers:A,isActiveSelection:!0},S=n(c,e);a(S,k,L)}else k.style("pointer-events",M?"all":"none");T[M]=k}var D=T[0];T[1].node().addEventListener("click",(function(){return function(e,t){if(d(e)){var r=+t.node().getAttribute("data-index");if(r>=0){if(r===e._fullLayout._activeSelectionIndex)return void v(e);e._fullLayout._activeSelectionIndex=r,e._fullLayout._deactivateSelection=v,f(e)}}}(e,D)}))}(e._fullLayout._selectionLayer)}function p(e,t,r){var n=r.xref+r.yref;l.setClipUrl(e,"clip"+t._fullLayout._uid+n,t)}function v(e){d(e)&&e._fullLayout._activeSelectionIndex>=0&&(i(e),delete e._fullLayout._activeSelectionIndex,f(e))}e.exports={draw:f,drawOne:h,activateLastSelection:function(e){if(d(e)){var t=e._fullLayout.selections.length-1;e._fullLayout._activeSelectionIndex=t,e._fullLayout._deactivateSelection=v,f(e)}}}},4200:function(e,t,r){"use strict";var n=r(8192).u,a=r(2880).extendFlat;e.exports={newselection:{mode:{valType:"enumerated",values:["immediate","gradual"],dflt:"immediate",editType:"none"},line:{color:{valType:"color",editType:"none"},width:{valType:"number",min:1,dflt:1,editType:"none"},dash:a({},n,{dflt:"dot",editType:"none"}),editType:"none"},editType:"none"},activeselection:{fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"none"},opacity:{valType:"number",min:0,max:1,dflt:.5,editType:"none"},editType:"none"}}},1004:function(e){"use strict";e.exports=function(e,t,r){r("newselection.mode"),r("newselection.line.width")&&(r("newselection.line.color"),r("newselection.line.dash")),r("activeselection.fillcolor"),r("activeselection.opacity")}},5968:function(e,t,r){"use strict";var n=r(2760).selectMode,a=r(1936).clearOutline,i=r(9856),o=i.readPaths,l=i.writePaths,s=i.fixDatesForPaths;e.exports=function(e,t){if(e.length){var r=e[0][0];if(r){var i=r.getAttribute("d"),c=t.gd,u=c._fullLayout.newselection,f=t.plotinfo,d=f.xaxis,h=f.yaxis,p=t.isActiveSelection,v=t.dragmode,g=(c.layout||{}).selections||[];if(!n(v)&&void 0!==p){var y=c._fullLayout._activeSelectionIndex;if(y-1,b=[];if(function(e){return e&&Array.isArray(e)&&!0!==e[0].hoverOnBox}(y)){G(e,t,i);var _=function(e,t){var r,n,a=e[0],i=-1,o=[];for(n=0;n0?function(e,t){var r,n,a,i=[];for(a=0;a0&&i.push(r);if(1===i.length&&i[0]===t.searchInfo&&(n=t.searchInfo.cd[0].trace).selectedpoints.length===t.pointNumbers.length){for(a=0;a1)return!1;if((n+=t.selectedpoints.length)>1)return!1}return 1===n}(l)&&(d=K(_))){for(o&&o.remove(),g=0;g=0})(a)&&a._fullLayout._deactivateShape(a),function(e){return e._fullLayout._activeSelectionIndex>=0}(a)&&a._fullLayout._deactivateSelection(a);var o=a._fullLayout._zoomlayer,l=h(r),s=v(r);if(l||s){var c,u,f=o.selectAll(".select-outline-"+n.id);f&&a._fullLayout._outlining&&(l&&(c=T(f,e)),c&&i.call("_guiRelayout",a,{shapes:c}),s&&!j(e)&&(u=M(f,e)),u&&(a._fullLayout._noEmitSelectedAtStart=!0,i.call("_guiRelayout",a,{selections:u}).then((function(){t&&k(a)}))),a._fullLayout._outlining=!1)}n.selection={},n.selection.selectionDefs=e.selectionDefs=[],n.selection.mergedPolygons=e.mergedPolygons=[]}function W(e){return e._id}function X(e,t,r,n){if(!e.calcdata)return[];var a,i,o,l=[],s=t.map(W),c=r.map(W);for(o=0;o0?n[0]:r;return!!t.selectedpoints&&t.selectedpoints.indexOf(a)>-1}function Q(e,t,r){var n,a;for(n=0;n-1&&t;if(!i&&t){var te=oe(e,!0);if(te.length){var ne=te[0].xref,he=te[0].yref;if(ne&&he){var pe=ce(te);ue([O(e,ne,"x"),O(e,he,"y")])($,pe)}}e._fullLayout._noEmitSelectedAtStart?e._fullLayout._noEmitSelectedAtStart=!1:ee&&fe(e,$),d._reselect=!1}if(!i&&d._deselect){var ve=d._deselect;(function(e,t,r){for(var n=0;n=0)M._fullLayout._deactivateShape(M);else if(!x){var r=k.clickmode;D.done(Ae).then((function(){if(D.clear(Ae),2===e){for(be.remove(),K=0;K-1&&Y(t,M,n.xaxes,n.yaxes,n.subplot,n,be),"event"===r&&fe(M,void 0);s.click(M,t,C.id)})).catch(A.error)}},n.doneFn=function(){Me.remove(),D.done(Ae).then((function(){D.clear(Ae),!L&&J&&n.selectionDefs&&(J.subtract=xe,n.selectionDefs.push(J),n.mergedPolygons.length=0,[].push.apply(n.mergedPolygons,W)),(L||x)&&Z(n,L),n.doneFnCompleted&&n.doneFnCompleted(Le),b&&fe(M,ie)})).catch(A.error)}},clearOutline:x,clearSelectionsCache:Z,selectOnClick:Y}},6056:function(e,t,r){"use strict";var n=r(3916),a=r(5376),i=r(2904).line,o=r(8192).u,l=r(2880).extendFlat,s=r(1780).templatedArray,c=(r(6208),r(5464)),u=r(1776).ye,f=r(7728);e.exports=s("shape",{visible:l({},c.visible,{editType:"calc+arraydraw"}),showlegend:{valType:"boolean",dflt:!1,editType:"calc+arraydraw"},legend:l({},c.legend,{editType:"calc+arraydraw"}),legendgroup:l({},c.legendgroup,{editType:"calc+arraydraw"}),legendgrouptitle:{text:l({},c.legendgrouptitle.text,{editType:"calc+arraydraw"}),font:a({editType:"calc+arraydraw"}),editType:"calc+arraydraw"},legendrank:l({},c.legendrank,{editType:"calc+arraydraw"}),legendwidth:l({},c.legendwidth,{editType:"calc+arraydraw"}),type:{valType:"enumerated",values:["circle","rect","path","line"],editType:"calc+arraydraw"},layer:{valType:"enumerated",values:["below","above"],dflt:"above",editType:"arraydraw"},xref:l({},n.xref,{}),xsizemode:{valType:"enumerated",values:["scaled","pixel"],dflt:"scaled",editType:"calc+arraydraw"},xanchor:{valType:"any",editType:"calc+arraydraw"},x0:{valType:"any",editType:"calc+arraydraw"},x1:{valType:"any",editType:"calc+arraydraw"},yref:l({},n.yref,{}),ysizemode:{valType:"enumerated",values:["scaled","pixel"],dflt:"scaled",editType:"calc+arraydraw"},yanchor:{valType:"any",editType:"calc+arraydraw"},y0:{valType:"any",editType:"calc+arraydraw"},y1:{valType:"any",editType:"calc+arraydraw"},path:{valType:"string",editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},line:{color:l({},i.color,{editType:"arraydraw"}),width:l({},i.width,{editType:"calc+arraydraw"}),dash:l({},o,{editType:"arraydraw"}),editType:"calc+arraydraw"},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd",editType:"arraydraw"},editable:{valType:"boolean",dflt:!1,editType:"calc+arraydraw"},label:{text:{valType:"string",dflt:"",editType:"arraydraw"},texttemplate:u({},{keys:Object.keys(f)}),font:a({editType:"calc+arraydraw",colorEditType:"arraydraw"}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right","start","middle","end"],editType:"arraydraw"},textangle:{valType:"angle",dflt:"auto",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["top","middle","bottom"],editType:"calc+arraydraw"},padding:{valType:"number",dflt:3,min:0,editType:"arraydraw"},editType:"arraydraw"},editType:"arraydraw"})},6084:function(e,t,r){"use strict";var n=r(3400),a=r(4460),i=r(3068),o=r(5152);function l(e){return c(e.line.width,e.xsizemode,e.x0,e.x1,e.path,!1)}function s(e){return c(e.line.width,e.ysizemode,e.y0,e.y1,e.path,!0)}function c(e,t,r,a,l,s){var c=e/2,u=s;if("pixel"===t){var f=l?o.extractPathCoords(l,s?i.paramIsY:i.paramIsX):[r,a],d=n.aggNums(Math.max,null,f),h=n.aggNums(Math.min,null,f),p=h<0?Math.abs(h)+c:c,v=d>0?d+c:c;return{ppad:c,ppadplus:u?p:v,ppadminus:u?v:p}}return{ppad:c}}function u(e,t,r,n,a){var l="category"===e.type||"multicategory"===e.type?e.r2c:e.d2c;if(void 0!==t)return[l(t),l(r)];if(n){var s,c,u,f,d=1/0,h=-1/0,p=n.match(i.segmentRE);for("date"===e.type&&(l=o.decodeDate(l)),s=0;sh&&(h=f)));return h>=d?[d,h]:void 0}}e.exports=function(e){var t=e._fullLayout,r=n.filterVisible(t.shapes);if(r.length&&e._fullData.length)for(var o=0;o=e?t-n:n-t,-180/Math.PI*Math.atan2(a,i)}(x,_,b,w):0),k.call((function(t){return t.call(o.font,M).attr({}),i.convertToTspans(t,e),t}));var j=function(e,t,r,n,a,i,o){var l,s,c,u,d=a.label.textposition,h=a.label.textangle,p=a.label.padding,v=a.type,g=Math.PI/180*i,y=Math.sin(g),m=Math.cos(g),x=a.label.xanchor,b=a.label.yanchor;if("line"===v){"start"===d?(l=e,s=t):"end"===d?(l=r,s=n):(l=(e+r)/2,s=(t+n)/2),"auto"===x&&(x="start"===d?"auto"===h?r>e?"left":re?"right":re?"right":re?"left":r1&&(2!==e.length||"Z"!==e[1][0])&&(0===O&&(e[0][0]="M"),t[D]=e,k(),A())}}()}}function Y(e,r){!function(e,r){if(t.length)for(var n=0;n_?(A=h,O="y0",L=_,C="y1"):(A=_,O="y1",L=h,C="y0"),ee(n),ne(s,r),function(e,t,r){var n=t.xref,a=t.yref,i=o.getFromId(r,n),l=o.getFromId(r,a),s="";"paper"===n||i.autorange||(s+=n),"paper"===a||l.autorange||(s+=a),d.setClipUrl(e,s?"clip"+r._fullLayout._uid+s:null,r)}(t,r,e),$.moveFn="move"===z?te:re,$.altKey=n.altKey)},doneFn:function(){b(e)||(v(t),ae(s),T(t,e,r),a.call("_guiRelayout",e,u.getUpdateObj()))},clickFn:function(){b(e)||ae(s)}};function ee(r){if(b(e))z=null;else if(B)z="path"===r.target.tagName?"move":"start-point"===r.target.attributes["data-line-point"].value?"resize-over-start-point":"resize-over-end-point";else{var n=$.element.getBoundingClientRect(),a=n.right-n.left,i=n.bottom-n.top,o=r.clientX-n.left,l=r.clientY-n.top,s=!j&&a>N&&i>F&&!r.shiftKey?p.getCursor(o/a,1-l/i):"move";v(t,s),z=s.split("-")[0]}}function te(n,a){if("path"===r.type){var i=function(e){return e},o=i,u=i;E?Y("xanchor",r.xanchor=J(w+n)):(o=function(e){return J(W(e)+n)},U&&"date"===U.type&&(o=y.encodeDate(o))),H?Y("yanchor",r.yanchor=K(k+a)):(u=function(e){return K(X(e)+a)},G&&"date"===G.type&&(u=y.encodeDate(u))),Y("path",r.path=M(R,o,u))}else E?Y("xanchor",r.xanchor=J(w+n)):(Y("x0",r.x0=J(f+n)),Y("x1",r.x1=J(x+n))),H?Y("yanchor",r.yanchor=K(k+a)):(Y("y0",r.y0=K(h+a)),Y("y1",r.y1=K(_+a)));t.attr("d",m(e,r)),ne(s,r),c(e,l,r,V)}function re(n,a){if(j){var i=function(e){return e},o=i,u=i;E?Y("xanchor",r.xanchor=J(w+n)):(o=function(e){return J(W(e)+n)},U&&"date"===U.type&&(o=y.encodeDate(o))),H?Y("yanchor",r.yanchor=K(k+a)):(u=function(e){return K(X(e)+a)},G&&"date"===G.type&&(u=y.encodeDate(u))),Y("path",r.path=M(R,o,u))}else if(B){if("resize-over-start-point"===z){var d=f+n,p=H?h-a:h+a;Y("x0",r.x0=E?d:J(d)),Y("y0",r.y0=H?p:K(p))}else if("resize-over-end-point"===z){var v=x+n,g=H?_-a:_+a;Y("x1",r.x1=E?v:J(v)),Y("y1",r.y1=H?g:K(g))}}else{var b=function(e){return-1!==z.indexOf(e)},T=b("n"),q=b("s"),Z=b("w"),Q=b("e"),$=T?A+a:A,ee=q?L+a:L,te=Z?S+n:S,re=Q?D+n:D;H&&(T&&($=A-a),q&&(ee=L-a)),(!H&&ee-$>F||H&&$-ee>F)&&(Y(O,r[O]=H?$:K($)),Y(C,r[C]=H?ee:K(ee))),re-te>N&&(Y(P,r[P]=E?te:J(te)),Y(I,r[I]=E?re:J(re)))}t.attr("d",m(e,r)),ne(s,r),c(e,l,r,V)}function ne(e,t){(E||H)&&function(){var r="path"!==t.type,n=e.selectAll(".visual-cue").data([0]);n.enter().append("path").attr({fill:"#fff","fill-rule":"evenodd",stroke:"#000","stroke-width":1}).classed("visual-cue",!0);var a=W(E?t.xanchor:i.midRange(r?[t.x0,t.x1]:y.extractPathCoords(t.path,g.paramIsX))),o=X(H?t.yanchor:i.midRange(r?[t.y0,t.y1]:y.extractPathCoords(t.path,g.paramIsY)));if(a=y.roundPositionForSharpStrokeRendering(a,1),o=y.roundPositionForSharpStrokeRendering(o,1),E&&H){var l="M"+(a-1-1)+","+(o-1-1)+"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";n.attr("d",l)}else if(E){var s="M"+(a-1-1)+","+(o-9-1)+"v18 h2 v-18 Z";n.attr("d",s)}else{var c="M"+(a-9-1)+","+(o-1-1)+"h18 v2 h-18 Z";n.attr("d",c)}}()}function ae(e){e.selectAll(".visual-cue").remove()}p.init($),Q.node().onmousemove=ee}(e,F,u,t,r,z):!0===u.editable&&F.style("pointer-events",I||f.opacity(D)*S<=.5?"stroke":"all");F.node().addEventListener("click",(function(){return function(e,t){if(_(e)){var r=+t.node().getAttribute("data-index");if(r>=0){if(r===e._fullLayout._activeShapeIndex)return void k(e);e._fullLayout._activeShapeIndex=r,e._fullLayout._deactivateShape=k,x(e)}}}(e,F)}))}u._input&&!0===u.visible&&("below"!==u.layer?A(e._fullLayout._shapeUpperLayer):"paper"===u.xref||"paper"===u.yref?A(e._fullLayout._shapeLowerLayer):w._hadPlotinfo?A((w.mainplotinfo||w).shapelayer):A(e._fullLayout._shapeLowerLayer))}function T(e,t,r){var n=(r.xref+r.yref).replace(/paper/g,"").replace(/[xyz][1-9]* *domain/g,"");d.setClipUrl(e,n?"clip"+t._fullLayout._uid+n:null,t)}function M(e,t,r){return e.replace(g.segmentRE,(function(e){var n=0,a=e.charAt(0),i=g.paramIsX[a],o=g.paramIsY[a],l=g.numParams[a];return a+e.substr(1).replace(g.paramRE,(function(e){return n>=l||(i[n]?e=t(e):o[n]&&(e=r(e)),n++),e}))}))}function k(e){_(e)&&e._fullLayout._activeShapeIndex>=0&&(u(e),delete e._fullLayout._activeShapeIndex,x(e))}e.exports={draw:x,drawOne:w,eraseActiveShape:function(e){if(_(e)){u(e);var t=e._fullLayout._activeShapeIndex,r=(e.layout||{}).shapes||[];if(t0&&sh&&(e="X"),e}));return i>h&&(p=p.replace(/[\s,]*X.*/,""),a.log("Ignoring extra params in segment "+e)),u+p}))}(r,l,c);if("pixel"===r.xsizemode){var b=l(r.xanchor);u=b+r.x0,f=b+r.x1}else u=l(r.x0),f=l(r.x1);if("pixel"===r.ysizemode){var _=c(r.yanchor);d=_-r.y0,h=_-r.y1}else d=c(r.y0),h=c(r.y1);if("line"===p)return"M"+u+","+d+"L"+f+","+h;if("rect"===p)return"M"+u+","+d+"H"+f+"V"+h+"H"+u+"Z";var w=(u+f)/2,T=(d+h)/2,M=Math.abs(w-u),k=Math.abs(T-d),A="A"+M+","+k,L=w+M+","+T;return"M"+L+A+" 0 1,1 "+w+","+(T-k)+A+" 0 0,1 "+L+"Z"}},1592:function(e,t,r){"use strict";var n=r(4016);e.exports={moduleType:"component",name:"shapes",layoutAttributes:r(6056),supplyLayoutDefaults:r(3712),supplyDrawNewShapeDefaults:r(5144),includeBasePlot:r(6632)("shapes"),calcAutorange:r(6084),draw:n.draw,drawOne:n.drawOne}},7728:function(e){"use strict";function t(e,t){return t?t.d2l(e):e}function r(e,t){return t?t.l2d(e):e}function n(e,r){return t(e.x1,r)-t(e.x0,r)}function a(e,r,n){return t(e.y1,n)-t(e.y0,n)}e.exports={x0:function(e){return e.x0},x1:function(e){return e.x1},y0:function(e){return e.y0},y1:function(e){return e.y1},slope:function(e,t,r){return"line"!==e.type?void 0:a(e,0,r)/n(e,t)},dx:n,dy:a,width:function(e,t){return Math.abs(n(e,t))},height:function(e,t,r){return Math.abs(a(e,0,r))},length:function(e,t,r){return"line"!==e.type?void 0:Math.sqrt(Math.pow(n(e,t),2)+Math.pow(a(e,0,r),2))},xcenter:function(e,n){return r((t(e.x1,n)+t(e.x0,n))/2,n)},ycenter:function(e,n,a){return r((t(e.y1,a)+t(e.y0,a))/2,a)}}},9861:function(e,t,r){"use strict";var n=r(5376),a=r(6741),i=r(2880).extendDeepAll,o=r(7824).overrideAll,l=r(5656),s=r(1780).templatedArray,c=r(876),u=s("step",{visible:{valType:"boolean",dflt:!0},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string"},value:{valType:"string"},execute:{valType:"boolean",dflt:!0}});e.exports=o(s("slider",{visible:{valType:"boolean",dflt:!0},active:{valType:"number",min:0,dflt:0},steps:u,lenmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"fraction"},len:{valType:"number",min:0,dflt:1},x:{valType:"number",min:-2,max:3,dflt:0},pad:i(a({editType:"arraydraw"}),{},{t:{dflt:20}}),xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left"},y:{valType:"number",min:-2,max:3,dflt:0},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},transition:{duration:{valType:"number",min:0,dflt:150},easing:{valType:"enumerated",values:l.transition.easing.values,dflt:"cubic-in-out"}},currentvalue:{visible:{valType:"boolean",dflt:!0},xanchor:{valType:"enumerated",values:["left","center","right"],dflt:"left"},offset:{valType:"number",dflt:10},prefix:{valType:"string"},suffix:{valType:"string"},font:n({})},font:n({}),activebgcolor:{valType:"color",dflt:c.gripBgActiveColor},bgcolor:{valType:"color",dflt:c.railBgColor},bordercolor:{valType:"color",dflt:c.railBorderColor},borderwidth:{valType:"number",min:0,dflt:c.railBorderWidth},ticklen:{valType:"number",min:0,dflt:c.tickLength},tickcolor:{valType:"color",dflt:c.tickColor},tickwidth:{valType:"number",min:0,dflt:1},minorticklen:{valType:"number",min:0,dflt:c.minorTickLength}}),"arraydraw","from-root")},876:function(e){"use strict";e.exports={name:"sliders",containerClassName:"slider-container",groupClassName:"slider-group",inputAreaClass:"slider-input-area",railRectClass:"slider-rail-rect",railTouchRectClass:"slider-rail-touch-rect",gripRectClass:"slider-grip-rect",tickRectClass:"slider-tick-rect",inputProxyClass:"slider-input-proxy",labelsClass:"slider-labels",labelGroupClass:"slider-label-group",labelClass:"slider-label",currentValueClass:"slider-current-value",railHeight:5,menuIndexAttrName:"slider-active-index",autoMarginIdRoot:"slider-",minWidth:30,minHeight:30,textPadX:40,arrowOffsetX:4,railRadius:2,railWidth:5,railBorder:4,railBorderWidth:1,railBorderColor:"#bec8d9",railBgColor:"#f8fafc",railInset:8,stepInset:10,gripRadius:10,gripWidth:20,gripHeight:20,gripBorder:20,gripBorderWidth:1,gripBorderColor:"#bec8d9",gripBgColor:"#f6f8fa",gripBgActiveColor:"#dbdde0",labelPadding:8,labelOffset:0,tickWidth:1,tickColor:"#333",tickOffset:25,tickLength:7,minorTickOffset:25,minorTickColor:"#333",minorTickLength:4,currentValuePadding:8,currentValueInset:0}},8132:function(e,t,r){"use strict";var n=r(3400),a=r(1272),i=r(9861),o=r(876).name,l=i.steps;function s(e,t,r){function o(r,a){return n.coerce(e,t,i,r,a)}for(var l=a(e,t,{name:"steps",handleItemDefaults:c}),s=0,u=0;u0&&(l=l.transition().duration(t.transition.duration).ease(t.transition.easing)),l.attr("transform",s(o-.5*f.gripWidth,t._dims.currentValueTotalHeight))}}function S(e,t){var r=e._dims;return r.inputAreaStart+f.stepInset+(r.inputAreaLength-2*f.stepInset)*Math.min(1,Math.max(0,t))}function D(e,t){var r=e._dims;return Math.min(1,Math.max(0,(t-f.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*f.stepInset-2*r.inputAreaStart)))}function O(e,t,r){var n=r._dims,a=l.ensureSingle(e,"rect",f.railTouchRectClass,(function(n){n.call(k,t,e,r).style("pointer-events","all")}));a.attr({width:n.inputAreaLength,height:Math.max(n.inputAreaWidth,f.tickOffset+r.ticklen+n.labelHeight)}).call(i.fill,r.bgcolor).attr("opacity",0),o.setTranslate(a,0,n.currentValueTotalHeight)}function C(e,t){var r=t._dims,n=r.inputAreaLength-2*f.railInset,a=l.ensureSingle(e,"rect",f.railRectClass);a.attr({width:n,height:f.railWidth,rx:f.railRadius,ry:f.railRadius,"shape-rendering":"crispEdges"}).call(i.stroke,t.bordercolor).call(i.fill,t.bgcolor).style("stroke-width",t.borderwidth+"px"),o.setTranslate(a,f.railInset,.5*(r.inputAreaWidth-f.railWidth)+r.currentValueTotalHeight)}e.exports=function(e){var t=e._context.staticPlot,r=e._fullLayout,i=function(e,t){for(var r=e[f.name],n=[],a=0;a0?[0]:[]);function s(t){t._commandObserver&&(t._commandObserver.remove(),delete t._commandObserver),a.autoMargin(e,g(t))}if(l.enter().append("g").classed(f.containerClassName,!0).style("cursor",t?null:"ew-resize"),l.exit().each((function(){n.select(this).selectAll("g."+f.groupClassName).each(s)})).remove(),0!==i.length){var c=l.selectAll("g."+f.groupClassName).data(i,y);c.enter().append("g").classed(f.groupClassName,!0),c.exit().each(s).remove();for(var u=0;u0||_<0){var A={left:[-w,0],right:[w,0],top:[0,-w],bottom:[0,w]}[b.side];r.attr("transform",s(A[0],A[1]))}}}return N.call(F),I&&(S?N.on(".opacity",null):(k=0,A=!0,N.text(m).on("mouseover.opacity",(function(){n.select(this).transition().duration(d.SHOW_PLACEHOLDER).style("opacity",1)})).on("mouseout.opacity",(function(){n.select(this).transition().duration(d.HIDE_PLACEHOLDER).style("opacity",0)}))),N.call(f.makeEditable,{gd:e}).on("edit",(function(t){void 0!==x?o.call("_guiRestyle",e,y,t,x):o.call("_guiRelayout",e,y,t)})).on("cancel",(function(){this.text(this.attr("data-unformatted")).call(F)})).on("input",(function(e){this.text(e||" ").call(f.positionText,_.x,_.y)}))),N.classed("js-placeholder",A),T}}},8444:function(e,t,r){"use strict";var n=r(5376),a=r(2548),i=r(2880).extendFlat,o=r(7824).overrideAll,l=r(6741),s=r(1780).templatedArray,c=s("button",{visible:{valType:"boolean"},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},args2:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string",dflt:""},execute:{valType:"boolean",dflt:!0}});e.exports=o(s("updatemenu",{_arrayAttrRegexps:[/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],visible:{valType:"boolean"},type:{valType:"enumerated",values:["dropdown","buttons"],dflt:"dropdown"},direction:{valType:"enumerated",values:["left","right","up","down"],dflt:"down"},active:{valType:"integer",min:-1,dflt:0},showactive:{valType:"boolean",dflt:!0},buttons:c,x:{valType:"number",min:-2,max:3,dflt:-.05},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"right"},y:{valType:"number",min:-2,max:3,dflt:1},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},pad:i(l({editType:"arraydraw"}),{}),font:n({}),bgcolor:{valType:"color"},bordercolor:{valType:"color",dflt:a.borderLine},borderwidth:{valType:"number",min:0,dflt:1,editType:"arraydraw"}}),"arraydraw","from-root")},1331:function(e){"use strict";e.exports={name:"updatemenus",containerClassName:"updatemenu-container",headerGroupClassName:"updatemenu-header-group",headerClassName:"updatemenu-header",headerArrowClassName:"updatemenu-header-arrow",dropdownButtonGroupClassName:"updatemenu-dropdown-button-group",dropdownButtonClassName:"updatemenu-dropdown-button",buttonClassName:"updatemenu-button",itemRectClassName:"updatemenu-item-rect",itemTextClassName:"updatemenu-item-text",menuIndexAttrName:"updatemenu-active-index",autoMarginIdRoot:"updatemenu-",blankHeaderOpts:{label:" "},minWidth:30,minHeight:30,textPadX:24,arrowPadX:16,rx:2,ry:2,textOffsetX:12,textOffsetY:3,arrowOffsetX:4,gapButtonHeader:5,gapButton:2,activeColor:"#F4FAFF",hoverColor:"#F4FAFF",arrowSymbol:{left:"◄",right:"►",up:"▲",down:"▼"}}},1384:function(e,t,r){"use strict";var n=r(3400),a=r(1272),i=r(8444),o=r(1331).name,l=i.buttons;function s(e,t,r){function o(r,a){return n.coerce(e,t,i,r,a)}o("visible",a(e,t,{name:"buttons",handleItemDefaults:c}).length>0)&&(o("active"),o("direction"),o("type"),o("showactive"),o("x"),o("y"),n.noneOrAll(e,t,["x","y"]),o("xanchor"),o("yanchor"),o("pad.t"),o("pad.r"),o("pad.b"),o("pad.l"),n.coerceFont(o,"font",r.font),o("bgcolor",r.paper_bgcolor),o("bordercolor"),o("borderwidth"))}function c(e,t){function r(r,a){return n.coerce(e,t,l,r,a)}r("visible","skip"===e.method||Array.isArray(e.args))&&(r("method"),r("args"),r("args2"),r("label"),r("execute"))}e.exports=function(e,t){a(e,t,{name:o,handleItemDefaults:s})}},4420:function(e,t,r){"use strict";var n=r(3428),a=r(7316),i=r(6308),o=r(3616),l=r(3400),s=r(2736),c=r(1780).arrayEditor,u=r(4284).LINE_SPACING,f=r(1331),d=r(7400);function h(e){return e._index}function p(e,t){return+e.attr(f.menuIndexAttrName)===t._index}function v(e,t,r,n,a,i,o,l){t.active=o,c(e.layout,f.name,t).applyUpdate("active",o),"buttons"===t.type?y(e,n,null,null,t):"dropdown"===t.type&&(a.attr(f.menuIndexAttrName,"-1"),g(e,n,a,i,t),l||y(e,n,a,i,t))}function g(e,t,r,n,a){var i=l.ensureSingle(t,"g",f.headerClassName,(function(e){e.style("pointer-events","all")})),s=a._dims,c=a.active,u=a.buttons[c]||f.blankHeaderOpts,d={y:a.pad.t,yPad:0,x:a.pad.l,xPad:0,index:0},h={width:s.headerWidth,height:s.headerHeight};i.call(m,a,u,e).call(A,a,d,h),l.ensureSingle(t,"text",f.headerArrowClassName,(function(e){e.attr("text-anchor","end").call(o.font,a.font).text(f.arrowSymbol[a.direction])})).attr({x:s.headerWidth-f.arrowOffsetX+a.pad.l,y:s.headerHeight/2+f.textOffsetY+a.pad.t}),i.on("click",(function(){r.call(L,String(p(r,a)?-1:a._index)),y(e,t,r,n,a)})),i.on("mouseover",(function(){i.call(w)})),i.on("mouseout",(function(){i.call(T,a)})),o.setTranslate(t,s.lx,s.ly)}function y(e,t,r,i,o){r||(r=t).attr("pointer-events","all");var s=function(e){return-1==+e.attr(f.menuIndexAttrName)}(r)&&"buttons"!==o.type?[]:o.buttons,c="dropdown"===o.type?f.dropdownButtonClassName:f.buttonClassName,u=r.selectAll("g."+c).data(l.filterVisible(s)),d=u.enter().append("g").classed(c,!0),h=u.exit();"dropdown"===o.type?(d.attr("opacity","0").transition().attr("opacity","1"),h.transition().attr("opacity","0").remove()):h.remove();var p=0,g=0,y=o._dims,x=-1!==["up","down"].indexOf(o.direction);"dropdown"===o.type&&(x?g=y.headerHeight+f.gapButtonHeader:p=y.headerWidth+f.gapButtonHeader),"dropdown"===o.type&&"up"===o.direction&&(g=-f.gapButtonHeader+f.gapButton-y.openHeight),"dropdown"===o.type&&"left"===o.direction&&(p=-f.gapButtonHeader+f.gapButton-y.openWidth);var b={x:y.lx+p+o.pad.l,y:y.ly+g+o.pad.t,yPad:f.gapButton,xPad:f.gapButton,index:0},M={l:b.x+o.borderwidth,t:b.y+o.borderwidth};u.each((function(l,s){var c=n.select(this);c.call(m,o,l,e).call(A,o,b),c.on("click",(function(){n.event.defaultPrevented||(l.execute&&(l.args2&&o.active===s?(v(e,o,0,t,r,i,-1),a.executeAPICommand(e,l.method,l.args2)):(v(e,o,0,t,r,i,s),a.executeAPICommand(e,l.method,l.args))),e.emit("plotly_buttonclicked",{menu:o,button:l,active:o.active}))})),c.on("mouseover",(function(){c.call(w)})),c.on("mouseout",(function(){c.call(T,o),u.call(_,o)}))})),u.call(_,o),x?(M.w=Math.max(y.openWidth,y.headerWidth),M.h=b.y-M.t):(M.w=b.x-M.l,M.h=Math.max(y.openHeight,y.headerHeight)),M.direction=o.direction,i&&(u.size()?function(e,t,r,n,a,i){var o,l,s,c=a.direction,u="up"===c||"down"===c,d=a._dims,h=a.active;if(u)for(l=0,s=0;s0?[0]:[]);if(o.enter().append("g").classed(f.containerClassName,!0).style("cursor","pointer"),o.exit().each((function(){n.select(this).selectAll("g."+f.headerGroupClassName).each(i)})).remove(),0!==r.length){var s=o.selectAll("g."+f.headerGroupClassName).data(r,h);s.enter().append("g").classed(f.headerGroupClassName,!0);for(var c=l.ensureSingle(o,"g",f.dropdownButtonGroupClassName,(function(e){e.style("pointer-events","all")})),u=0;uw,k=l.barLength+2*l.barPad,A=l.barWidth+2*l.barPad,L=p,S=g+y;S+A>c&&(S=c-A);var D=this.container.selectAll("rect.scrollbar-horizontal").data(M?[0]:[]);D.exit().on(".drag",null).remove(),D.enter().append("rect").classed("scrollbar-horizontal",!0).call(a.fill,l.barColor),M?(this.hbar=D.attr({rx:l.barRadius,ry:l.barRadius,x:L,y:S,width:k,height:A}),this._hbarXMin=L+k/2,this._hbarTranslateMax=w-k):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var O=y>T,C=l.barWidth+2*l.barPad,P=l.barLength+2*l.barPad,I=p+v,R=g;I+C>s&&(I=s-C);var z=this.container.selectAll("rect.scrollbar-vertical").data(O?[0]:[]);z.exit().on(".drag",null).remove(),z.enter().append("rect").classed("scrollbar-vertical",!0).call(a.fill,l.barColor),O?(this.vbar=z.attr({rx:l.barRadius,ry:l.barRadius,x:I,y:R,width:C,height:P}),this._vbarYMin=R+P/2,this._vbarTranslateMax=T-P):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var N=this.id,F=u-.5,E=O?f+C+.5:f+.5,H=d-.5,B=M?h+A+.5:h+.5,j=o._topdefs.selectAll("#"+N).data(M||O?[0]:[]);if(j.exit().remove(),j.enter().append("clipPath").attr("id",N).append("rect"),M||O?(this._clipRect=j.select("rect").attr({x:Math.floor(F),y:Math.floor(H),width:Math.ceil(E)-Math.floor(F),height:Math.ceil(B)-Math.floor(H)}),this.container.call(i.setClipUrl,N,this.gd),this.bg.attr({x:p,y:g,width:v,height:y})):(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(i.setClipUrl,null),delete this._clipRect),M||O){var Y=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault()})).on("drag",this._onBoxDrag.bind(this));this.container.on("wheel",null).on("wheel",this._onBoxWheel.bind(this)).on(".drag",null).call(Y);var V=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault(),n.event.sourceEvent.stopPropagation()})).on("drag",this._onBarDrag.bind(this));M&&this.hbar.on(".drag",null).call(V),O&&this.vbar.on(".drag",null).call(V)}this.setTranslate(t,r)},l.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(i.setClipUrl,null),delete this._clipRect),this.hbar&&(this.hbar.on(".drag",null),this.hbar.remove(),delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax),this.vbar&&(this.vbar.on(".drag",null),this.vbar.remove(),delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax)},l.prototype._onBoxDrag=function(){var e=this.translateX,t=this.translateY;this.hbar&&(e-=n.event.dx),this.vbar&&(t-=n.event.dy),this.setTranslate(e,t)},l.prototype._onBoxWheel=function(){var e=this.translateX,t=this.translateY;this.hbar&&(e+=n.event.deltaY),this.vbar&&(t+=n.event.deltaY),this.setTranslate(e,t)},l.prototype._onBarDrag=function(){var e=this.translateX,t=this.translateY;if(this.hbar){var r=e+this._hbarXMin,a=r+this._hbarTranslateMax;e=(o.constrain(n.event.x,r,a)-r)/(a-r)*(this.position.w-this._box.w)}if(this.vbar){var i=t+this._vbarYMin,l=i+this._vbarTranslateMax;t=(o.constrain(n.event.y,i,l)-i)/(l-i)*(this.position.h-this._box.h)}this.setTranslate(e,t)},l.prototype.setTranslate=function(e,t){var r=this.position.w-this._box.w,n=this.position.h-this._box.h;if(e=o.constrain(e||0,0,r),t=o.constrain(t||0,0,n),this.translateX=e,this.translateY=t,this.container.call(i.setTranslate,this._box.l-this.position.l-e,this._box.t-this.position.t-t),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+e-.5),y:Math.floor(this.position.t+t-.5)}),this.hbar){var a=e/r;this.hbar.call(i.setTranslate,e+a*this._hbarTranslateMax,t)}if(this.vbar){var l=t/n;this.vbar.call(i.setTranslate,e,t+l*this._vbarTranslateMax)}}},4284:function(e){"use strict";e.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}},6208:function(e){"use strict";e.exports={axisRefDescription:function(e,t,r){return["If set to a",e,"axis id (e.g. *"+e+"* or","*"+e+"2*), the `"+e+"` position refers to a",e,"coordinate. If set to *paper*, the `"+e+"`","position refers to the distance from the",t,"of the plotting","area in normalized coordinates where *0* (*1*) corresponds to the",t,"("+r+"). If set to a",e,"axis ID followed by","*domain* (separated by a space), the position behaves like for","*paper*, but refers to the distance in fractions of the domain","length from the",t,"of the domain of that axis: e.g.,","*"+e+"2 domain* refers to the domain of the second",e," axis and a",e,"position of 0.5 refers to the","point between the",t,"and the",r,"of the domain of the","second",e,"axis."].join(" ")}}},6880:function(e){"use strict";e.exports={FORMAT_LINK:"https://github.com/d3/d3-format/tree/v1.4.5#d3-format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format"}},9104:function(e){"use strict";e.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}},3448:function(e){"use strict";e.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}},9032:function(e){"use strict";e.exports={BADNUM:void 0,FP_SAFE:1e-4*Number.MAX_VALUE,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:.999999,LOG_CLIP:10,MINUS_SIGN:"−"}},9616:function(e,t){"use strict";t.xmlns="http://www.w3.org/2000/xmlns/",t.svg="http://www.w3.org/2000/svg",t.xlink="http://www.w3.org/1999/xlink",t.svgAttrs={xmlns:t.svg,"xmlns:xlink":t.xlink}},4884:function(e,t,r){"use strict";t.version=r(5788).version,r(8324),r(9288);for(var n=r(4040),a=t.register=n.register,i=r(2448),o=Object.keys(i),l=0;l",""," ",""," plotly-logomark"," "," "," "," "," "," "," "," "," "," "," "," "," ",""].join("")}}},8308:function(e,t){"use strict";t.isLeftAnchor=function(e){return"left"===e.xanchor||"auto"===e.xanchor&&e.x<=1/3},t.isCenterAnchor=function(e){return"center"===e.xanchor||"auto"===e.xanchor&&e.x>1/3&&e.x<2/3},t.isRightAnchor=function(e){return"right"===e.xanchor||"auto"===e.xanchor&&e.x>=2/3},t.isTopAnchor=function(e){return"top"===e.yanchor||"auto"===e.yanchor&&e.y>=2/3},t.isMiddleAnchor=function(e){return"middle"===e.yanchor||"auto"===e.yanchor&&e.y>1/3&&e.y<2/3},t.isBottomAnchor=function(e){return"bottom"===e.yanchor||"auto"===e.yanchor&&e.y<=1/3}},1864:function(e,t,r){"use strict";var n=r(435),a=n.mod,i=n.modHalf,o=Math.PI,l=2*o;function s(e){return Math.abs(e[1]-e[0])>l-1e-14}function c(e,t){return i(t-e,l)}function u(e,t){if(s(t))return!0;var r,n;t[0](n=a(n,l))&&(n+=l);var i=a(e,l),o=i+l;return i>=r&&i<=n||o>=r&&o<=n}function f(e,t,r,n,a,i,c){a=a||0,i=i||0;var u,f,d,h,p,v=s([r,n]);function g(e,t){return[e*Math.cos(t)+a,i-e*Math.sin(t)]}v?(u=0,f=o,d=l):r=a&&e<=i);var a,i},pathArc:function(e,t,r,n,a){return f(null,e,t,r,n,a,0)},pathSector:function(e,t,r,n,a){return f(null,e,t,r,n,a,1)},pathAnnulus:function(e,t,r,n,a,i){return f(e,t,r,n,a,i,1)}}},8116:function(e,t,r){"use strict";var n=r(3160).decode,a=r(3620),i=Array.isArray,o=ArrayBuffer,l=DataView;function s(e){return o.isView(e)&&!(e instanceof l)}function c(e){return i(e)||s(e)}t.isTypedArray=s,t.isArrayOrTypedArray=c,t.isArray1D=function(e){return!c(e[0])},t.ensureArray=function(e,t){return i(e)||(e=[]),e.length=t,e};var u={u1c:"undefined"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,i1:"undefined"==typeof Int8Array?void 0:Int8Array,u1:"undefined"==typeof Uint8Array?void 0:Uint8Array,i2:"undefined"==typeof Int16Array?void 0:Int16Array,u2:"undefined"==typeof Uint16Array?void 0:Uint16Array,i4:"undefined"==typeof Int32Array?void 0:Int32Array,u4:"undefined"==typeof Uint32Array?void 0:Uint32Array,f4:"undefined"==typeof Float32Array?void 0:Float32Array,f8:"undefined"==typeof Float64Array?void 0:Float64Array};function f(e){return e.constructor===ArrayBuffer}function d(e,t,r){if(c(e)){if(c(e[0])){for(var n=r,a=0;aa.max?t.set(r):t.set(+e)}},integer:{coerceFunction:function(e,t,r,a){e%1||!n(e)||void 0!==a.min&&ea.max?t.set(r):t.set(+e)}},string:{coerceFunction:function(e,t,r,n){if("string"!=typeof e){var a="number"==typeof e;!0!==n.strict&&a?t.set(String(e)):t.set(r)}else n.noBlank&&!e?t.set(r):t.set(e)}},color:{coerceFunction:function(e,t,r){a(e).isValid()?t.set(e):t.set(r)}},colorlist:{coerceFunction:function(e,t,r){Array.isArray(e)&&e.length&&e.every((function(e){return a(e).isValid()}))?t.set(e):t.set(r)}},colorscale:{coerceFunction:function(e,t,r){t.set(o.get(e,r))}},angle:{coerceFunction:function(e,t,r){"auto"===e?t.set("auto"):n(e)?t.set(f(+e,360)):t.set(r)}},subplotid:{coerceFunction:function(e,t,r,n){var a=n.regex||u(r);"string"==typeof e&&a.test(e)?t.set(e):t.set(r)},validateFunction:function(e,t){var r=t.dflt;return e===r||"string"==typeof e&&!!u(r).test(e)}},flaglist:{coerceFunction:function(e,t,r,n){if(-1===(n.extras||[]).indexOf(e))if("string"==typeof e){for(var a=e.split("+"),i=0;i=n&&e<=a?e:u}if("string"!=typeof e&&"number"!=typeof e)return u;e=String(e);var c=_(r),y=e.charAt(0);!c||"G"!==y&&"g"!==y||(e=e.substr(1),r="");var w=c&&"chinese"===r.substr(0,7),T=e.match(w?x:m);if(!T)return u;var M=T[1],k=T[3]||"1",A=Number(T[5]||1),L=Number(T[7]||0),S=Number(T[9]||0),D=Number(T[11]||0);if(c){if(2===M.length)return u;var O;M=Number(M);try{var C=g.getComponentMethod("calendars","getCal")(r);if(w){var P="i"===k.charAt(k.length-1);k=parseInt(k,10),O=C.newDate(M,C.toMonthIndex(M,k,P),A)}else O=C.newDate(M,Number(k),A)}catch(e){return u}return O?(O.toJD()-v)*f+L*d+S*h+D*p:u}M=2===M.length?(Number(M)+2e3-b)%100+b:Number(M),k-=1;var I=new Date(Date.UTC(2e3,k,A,L,S));return I.setUTCFullYear(M),I.getUTCMonth()!==k||I.getUTCDate()!==A?u:I.getTime()+D*p},n=t.MIN_MS=t.dateTime2ms("-9999"),a=t.MAX_MS=t.dateTime2ms("9999-12-31 23:59:59.9999"),t.isDateTime=function(e,r){return t.dateTime2ms(e,r)!==u};var T=90*f,M=3*d,k=5*h;function A(e,t,r,n,a){if((t||r||n||a)&&(e+=" "+w(t,2)+":"+w(r,2),(n||a)&&(e+=":"+w(n,2),a))){for(var i=4;a%10==0;)i-=1,a/=10;e+="."+w(a,i)}return e}t.ms2DateTime=function(e,t,r){if("number"!=typeof e||!(e>=n&&e<=a))return u;t||(t=0);var i,o,l,c,m,x,b=Math.floor(10*s(e+.05,1)),w=Math.round(e-b/10);if(_(r)){var L=Math.floor(w/f)+v,S=Math.floor(s(e,f));try{i=g.getComponentMethod("calendars","getCal")(r).fromJD(L).formatDate("yyyy-mm-dd")}catch(e){i=y("G%Y-%m-%d")(new Date(w))}if("-"===i.charAt(0))for(;i.length<11;)i="-0"+i.substr(1);else for(;i.length<10;)i="0"+i;o=t=n+f&&e<=a-f))return u;var t=Math.floor(10*s(e+.05,1)),r=new Date(Math.round(e-t/10));return A(i("%Y-%m-%d")(r),r.getHours(),r.getMinutes(),r.getSeconds(),10*r.getUTCMilliseconds()+t)},t.cleanDate=function(e,r,n){if(e===u)return r;if(t.isJSDate(e)||"number"==typeof e&&isFinite(e)){if(_(n))return l.error("JS Dates and milliseconds are incompatible with world calendars",e),r;if(!(e=t.ms2DateTimeLocal(+e))&&void 0!==r)return r}else if(!t.isDateTime(e,n))return l.error("unrecognized date",e),r;return e};var L=/%\d?f/g,S=/%h/g,D={1:"1",2:"1",3:"2",4:"2"};function O(e,t,r,n){e=e.replace(L,(function(e){var r=Math.min(+e.charAt(1)||6,6);return(t/1e3%1+2).toFixed(r).substr(2).replace(/0+$/,"")||"0"}));var a=new Date(Math.floor(t+.05));if(e=e.replace(S,(function(){return D[r("%q")(a)]})),_(n))try{e=g.getComponentMethod("calendars","worldCalFmt")(e,t,n)}catch(e){return"Invalid"}return r(e)(a)}var C=[59,59.9,59.99,59.999,59.9999];t.formatDate=function(e,t,r,n,a,i){if(a=_(a)&&a,!t)if("y"===r)t=i.year;else if("m"===r)t=i.month;else{if("d"!==r)return function(e,t){var r=s(e+.05,f),n=w(Math.floor(r/d),2)+":"+w(s(Math.floor(r/h),60),2);if("M"!==t){o(t)||(t=0);var a=(100+Math.min(s(e/p,60),C[t])).toFixed(t).substr(1);t>0&&(a=a.replace(/0+$/,"").replace(/[\.]$/,"")),n+=":"+a}return n}(e,r)+"\n"+O(i.dayMonthYear,e,n,a);t=i.dayMonth+"\n"+i.year}return O(t,e,n,a)};var P=3*f;t.incrementMonth=function(e,t,r){r=_(r)&&r;var n=s(e,f);if(e=Math.round(e-n),r)try{var a=Math.round(e/f)+v,i=g.getComponentMethod("calendars","getCal")(r),o=i.fromJD(a);return t%12?i.add(o,t,"m"):i.add(o,t/12,"y"),(o.toJD()-v)*f+n}catch(t){l.error("invalid ms "+e+" in calendar "+r)}var c=new Date(e+P);return c.setUTCMonth(c.getUTCMonth()+t)+n-P},t.findExactDates=function(e,t){for(var r,n,a=0,i=0,l=0,s=0,c=_(t)&&g.getComponentMethod("calendars","getCal")(t),u=0;u1||v<0||v>1?null:{x:e+s*v,y:t+f*v}}function s(e,t,r,n,a){var i=n*e+a*t;if(i<0)return n*n+a*a;if(i>r){var o=n-e,l=a-t;return o*o+l*l}var s=n*t-a*e;return s*s/r}t.segmentsIntersect=l,t.segmentDistance=function(e,t,r,n,a,i,o,c){if(l(e,t,r,n,a,i,o,c))return 0;var u=r-e,f=n-t,d=o-a,h=c-i,p=u*u+f*f,v=d*d+h*h,g=Math.min(s(u,f,p,a-e,i-t),s(u,f,p,o-e,c-t),s(d,h,v,e-a,t-i),s(d,h,v,r-a,n-i));return Math.sqrt(g)},t.getTextLocation=function(e,t,r,l){if(e===a&&l===i||(n={},a=e,i=l),n[r])return n[r];var s=e.getPointAtLength(o(r-l/2,t)),c=e.getPointAtLength(o(r+l/2,t)),u=Math.atan((c.y-s.y)/(c.x-s.x)),f=e.getPointAtLength(o(r,t)),d={x:(4*f.x+s.x+c.x)/6,y:(4*f.y+s.y+c.y)/6,theta:u};return n[r]=d,d},t.clearLocationCache=function(){a=null},t.getVisibleSegment=function(e,t,r){var n,a,i=t.left,o=t.right,l=t.top,s=t.bottom,c=0,u=e.getTotalLength(),f=u;function d(t){var r=e.getPointAtLength(t);0===t?n=r:t===u&&(a=r);var c=r.xo?r.x-o:0,f=r.ys?r.y-s:0;return Math.sqrt(c*c+f*f)}for(var h=d(c);h;){if((c+=h+r)>f)return;h=d(c)}for(h=d(f);h;){if(c>(f-=h+r))return;h=d(f)}return{min:c,max:f,len:f-c,total:u,isClosed:0===c&&f===u&&Math.abs(n.x-a.x)<.1&&Math.abs(n.y-a.y)<.1}},t.findPointOnPath=function(e,t,r,n){for(var a,i,o,l=(n=n||{}).pathLength||e.getTotalLength(),s=n.tolerance||.001,c=n.iterationLimit||30,u=e.getPointAtLength(0)[r]>e.getPointAtLength(l)[r]?-1:1,f=0,d=0,h=l;f0?h=a:d=a,f++}return i}},5536:function(e){"use strict";e.exports=function(e){return e}},1396:function(e){"use strict";e.exports=function(e,t){if(!t)return e;var r=1/Math.abs(t),n=r>1?(r*e+r*t)/r:e+t,a=String(n).length;if(a>16){var i=String(t).length;if(a>=String(e).length+i){var o=parseFloat(n).toPrecision(12);-1===o.indexOf("e+")&&(n=+o)}}return n}},3400:function(e,t,r){"use strict";var n=r(3428),a=r(4336).E9,i=r(7624).E9,o=r(8248),l=r(9032),s=l.FP_SAFE,c=-s,u=l.BADNUM,f=e.exports={};f.adjustFormat=function(e){return!e||/^\d[.]\df/.test(e)||/[.]\d%/.test(e)?e:"0.f"===e?"~f":/^\d%/.test(e)?"~%":/^\ds/.test(e)?"~s":!/^[~,.0$]/.test(e)&&/[&fps]/.test(e)?"~"+e:e};var d={};f.warnBadFormat=function(e){var t=String(e);d[t]||(d[t]=1,f.warn('encountered bad format: "'+t+'"'))},f.noFormat=function(e){return String(e)},f.numberFormat=function(e){var t;try{t=i(f.adjustFormat(e))}catch(t){return f.warnBadFormat(e),f.noFormat}return t},f.nestedProperty=r(2296),f.keyedContainer=r(7804),f.relativeAttr=r(3193),f.isPlainObject=r(3620),f.toLogRange=r(6896),f.relinkPrivateKeys=r(1528);var h=r(8116);f.isArrayBuffer=h.isArrayBuffer,f.isTypedArray=h.isTypedArray,f.isArrayOrTypedArray=h.isArrayOrTypedArray,f.isArray1D=h.isArray1D,f.ensureArray=h.ensureArray,f.concat=h.concat,f.maxRowLength=h.maxRowLength,f.minRowLength=h.minRowLength;var p=r(435);f.mod=p.mod,f.modHalf=p.modHalf;var v=r(3064);f.valObjectMeta=v.valObjectMeta,f.coerce=v.coerce,f.coerce2=v.coerce2,f.coerceFont=v.coerceFont,f.coercePattern=v.coercePattern,f.coerceHoverinfo=v.coerceHoverinfo,f.coerceSelectionMarkerOpacity=v.coerceSelectionMarkerOpacity,f.validate=v.validate;var g=r(7555);f.dateTime2ms=g.dateTime2ms,f.isDateTime=g.isDateTime,f.ms2DateTime=g.ms2DateTime,f.ms2DateTimeLocal=g.ms2DateTimeLocal,f.cleanDate=g.cleanDate,f.isJSDate=g.isJSDate,f.formatDate=g.formatDate,f.incrementMonth=g.incrementMonth,f.dateTick0=g.dateTick0,f.dfltRange=g.dfltRange,f.findExactDates=g.findExactDates,f.MIN_MS=g.MIN_MS,f.MAX_MS=g.MAX_MS;var y=r(4952);f.findBin=y.findBin,f.sorterAsc=y.sorterAsc,f.sorterDes=y.sorterDes,f.distinctVals=y.distinctVals,f.roundUp=y.roundUp,f.sort=y.sort,f.findIndexOfMin=y.findIndexOfMin,f.sortObjectKeys=r(2996);var m=r(3084);f.aggNums=m.aggNums,f.len=m.len,f.mean=m.mean,f.median=m.median,f.midRange=m.midRange,f.variance=m.variance,f.stdev=m.stdev,f.interp=m.interp;var x=r(2248);f.init2dArray=x.init2dArray,f.transposeRagged=x.transposeRagged,f.dot=x.dot,f.translationMatrix=x.translationMatrix,f.rotationMatrix=x.rotationMatrix,f.rotationXYMatrix=x.rotationXYMatrix,f.apply3DTransform=x.apply3DTransform,f.apply2DTransform=x.apply2DTransform,f.apply2DTransform2=x.apply2DTransform2,f.convertCssMatrix=x.convertCssMatrix,f.inverseTransformMatrix=x.inverseTransformMatrix;var b=r(1864);f.deg2rad=b.deg2rad,f.rad2deg=b.rad2deg,f.angleDelta=b.angleDelta,f.angleDist=b.angleDist,f.isFullCircle=b.isFullCircle,f.isAngleInsideSector=b.isAngleInsideSector,f.isPtInsideSector=b.isPtInsideSector,f.pathArc=b.pathArc,f.pathSector=b.pathSector,f.pathAnnulus=b.pathAnnulus;var _=r(8308);f.isLeftAnchor=_.isLeftAnchor,f.isCenterAnchor=_.isCenterAnchor,f.isRightAnchor=_.isRightAnchor,f.isTopAnchor=_.isTopAnchor,f.isMiddleAnchor=_.isMiddleAnchor,f.isBottomAnchor=_.isBottomAnchor;var w=r(2348);f.segmentsIntersect=w.segmentsIntersect,f.segmentDistance=w.segmentDistance,f.getTextLocation=w.getTextLocation,f.clearLocationCache=w.clearLocationCache,f.getVisibleSegment=w.getVisibleSegment,f.findPointOnPath=w.findPointOnPath;var T=r(2880);f.extendFlat=T.extendFlat,f.extendDeep=T.extendDeep,f.extendDeepAll=T.extendDeepAll,f.extendDeepNoArrays=T.extendDeepNoArrays;var M=r(4248);f.log=M.log,f.warn=M.warn,f.error=M.error;var k=r(3756);f.counterRegex=k.counter;var A=r(1200);f.throttle=A.throttle,f.throttleDone=A.done,f.clearThrottle=A.clear;var L=r(2200);function S(e){var t={};for(var r in e)for(var n=e[r],a=0;as||e=t)&&o(e)&&e>=0&&e%1==0},f.noop=r(6628),f.identity=r(5536),f.repeat=function(e,t){for(var r=new Array(t),n=0;nr?Math.max(r,Math.min(t,e)):Math.max(t,Math.min(r,e))},f.bBoxIntersect=function(e,t,r){return r=r||0,e.left<=t.right+r&&t.left<=e.right+r&&e.top<=t.bottom+r&&t.top<=e.bottom+r},f.simpleMap=function(e,t,r,n,a){for(var i=e.length,o=new Array(i),l=0;l=Math.pow(2,r)?a>10?(f.warn("randstr failed uniqueness"),s):e(t,r,n,(a||0)+1):s},f.OptionControl=function(e,t){e||(e={}),t||(t="opt");var r={optionList:[],_newoption:function(n){n[t]=e,r[n.name]=n,r.optionList.push(n)}};return r["_"+t]=e,r},f.smooth=function(e,t){if((t=Math.round(t)||0)<2)return e;var r,n,a,i,o=e.length,l=2*o,s=2*t-1,c=new Array(s),u=new Array(o);for(r=0;r=l&&(a-=l*Math.floor(a/l)),a<0?a=-1-a:a>=o&&(a=l-1-a),i+=e[a]*c[n];u[r]=i}return u},f.syncOrAsync=function(e,t,r){var n;function a(){return f.syncOrAsync(e,t,r)}for(;e.length;)if((n=(0,e.splice(0,1)[0])(t))&&n.then)return n.then(a);return r&&r(t)},f.stripTrailingSlash=function(e){return"/"===e.substr(-1)?e.substr(0,e.length-1):e},f.noneOrAll=function(e,t,r){if(e){var n,a=!1,i=!0;for(n=0;n0?t:0}))},f.fillArray=function(e,t,r,n){if(n=n||f.identity,f.isArrayOrTypedArray(e))for(var a=0;a1?a+o[1]:"";if(i&&(o.length>1||l.length>4||r))for(;n.test(l);)l=l.replace(n,"$1"+i+"$2");return l+s},f.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var z=/^\w*$/;f.templateString=function(e,t){var r={};return e.replace(f.TEMPLATE_STRING_REGEX,(function(e,n){var a;return z.test(n)?a=t[n]:(r[n]=r[n]||f.nestedProperty(t,n).get,a=r[n]()),f.isValidTextValue(a)?a:""}))};var N={max:10,count:0,name:"hovertemplate"};f.hovertemplateString=function(){return j.apply(N,arguments)};var F={max:10,count:0,name:"texttemplate"};f.texttemplateString=function(){return j.apply(F,arguments)};var E=/^(\S+)([\*\/])(-?\d+(\.\d+)?)$/,H={max:10,count:0,name:"texttemplate",parseMultDiv:!0};f.texttemplateStringForShapes=function(){return j.apply(H,arguments)};var B=/^[:|\|]/;function j(e,t,r){var n=this,i=arguments;t||(t={});var o={};return e.replace(f.TEMPLATE_STRING_REGEX,(function(e,l,s){var c="_xother"===l||"_yother"===l,u="_xother_"===l||"_yother_"===l,d="xother_"===l||"yother_"===l,h="xother"===l||"yother"===l||c||d||u,p=l;(c||u)&&(p=p.substring(1)),(d||u)&&(p=p.substring(0,p.length-1));var v,g,y,m=null,x=null;if(n.parseMultDiv){var b=function(e){var t=e.match(E);return t?{key:t[1],op:t[2],number:Number(t[3])}:{key:e,op:null,number:null}}(p);p=b.key,m=b.op,x=b.number}if(h){if(void 0===(v=t[p]))return""}else for(y=3;y=48&&o<=57,c=l>=48&&l<=57;if(s&&(n=10*n+o-48),c&&(a=10*a+l-48),!s||!c){if(n!==a)return n-a;if(o!==l)return o-l}}return a-n};var Y=2e9;f.seedPseudoRandom=function(){Y=2e9},f.pseudoRandom=function(){var e=Y;return Y=(69069*Y+1)%4294967296,Math.abs(Y-e)<429496729?f.pseudoRandom():Y/4294967296},f.fillText=function(e,t,r){var n=Array.isArray(r)?function(e){r.push(e)}:function(e){r.text=e},a=f.extractOption(e,t,"htx","hovertext");if(f.isValidTextValue(a))return n(a);var i=f.extractOption(e,t,"tx","text");return f.isValidTextValue(i)?n(i):void 0},f.isValidTextValue=function(e){return e||0===e},f.formatPercent=function(e,t){t=t||0;for(var r=(Math.round(100*e*Math.pow(10,t))*Math.pow(.1,t)).toFixed(t)+"%",n=0;n1&&(c=1):c=0,f.strTranslate(a-c*(r+o),i-c*(n+l))+f.strScale(c)+(s?"rotate("+s+(t?"":" "+r+" "+n)+")":"")},f.setTransormAndDisplay=function(e,t){e.attr("transform",f.getTextTransform(t)),e.style("display",t.scale?null:"none")},f.ensureUniformFontSize=function(e,t){var r=f.extendFlat({},t);return r.size=Math.max(t.size,e._fullLayout.uniformtext.minsize||0),r},f.join2=function(e,t,r){var n=e.length;return n>1?e.slice(0,-1).join(t)+r+e[n-1]:e.join(t)},f.bigFont=function(e){return Math.round(1.2*e)};var V=f.getFirefoxVersion(),U=null!==V&&V<86;f.getPositionFromD3Event=function(){return U?[n.event.layerX,n.event.layerY]:[n.event.offsetX,n.event.offsetY]}},3620:function(e){"use strict";e.exports=function(e){return window&&window.process&&window.process.versions?"[object Object]"===Object.prototype.toString.call(e):"[object Object]"===Object.prototype.toString.call(e)&&Object.getPrototypeOf(e).hasOwnProperty("hasOwnProperty")}},7804:function(e,t,r){"use strict";var n=r(2296),a=/^\w*$/;e.exports=function(e,t,r,i){var o,l,s;r=r||"name",i=i||"value";var c={};t&&t.length?(s=n(e,t),l=s.get()):l=e,t=t||"";var u={};if(l)for(o=0;o2)return c[t]=2|c[t],d.set(e,null);if(f){for(o=t;o1){var t=["LOG:"];for(e=0;e1){var r=[];for(e=0;e"),"long")}},i.warn=function(){var e;if(n.logging>0){var t=["WARN:"];for(e=0;e0){var r=[];for(e=0;e"),"stick")}},i.error=function(){var e;if(n.logging>0){var t=["ERROR:"];for(e=0;e0){var r=[];for(e=0;e"),"stick")}}},988:function(e,t,r){"use strict";var n=r(3428);e.exports=function(e,t,r){var a=e.selectAll("g."+r.replace(/\s/g,".")).data(t,(function(e){return e[0].trace.uid}));a.exit().remove(),a.enter().append("g").attr("class",r),a.order();var i=e.classed("rangeplot")?"nodeRangePlot3":"node3";return a.each((function(e){e[0][i]=n.select(this)})),a}},2248:function(e,t,r){"use strict";var n=r(6524);t.init2dArray=function(e,t){for(var r=new Array(e),n=0;nt/2?e-Math.round(e/t)*t:e}}},2296:function(e,t,r){"use strict";var n=r(8248),a=r(8116).isArrayOrTypedArray;function i(e,t){return function(){var r,n,o,l,s,c=e;for(l=0;l/g),s=0;si||c===a||cl||t&&s(e))}:function(e,t){var s=e[0],c=e[1];if(s===a||si||c===a||cl)return!1;var u,f,d,h,p,v=r.length,g=r[0][0],y=r[0][1],m=0;for(u=1;uMath.max(f,g)||c>Math.max(d,y)))if(cu||Math.abs(n(o,d))>a)return!0;return!1},i.filter=function(e,t){var r=[e[0]],n=0,a=0;function o(o){e.push(o);var l=r.length,s=n;r.splice(a+1);for(var c=s+1;c1&&o(e.pop()),{addPt:o,raw:e,filtered:r}}},4296:function(e,t,r){"use strict";var n=r(8248),a=r(5928);e.exports=function(e){var t;if("string"!=typeof(t=e&&e.hasOwnProperty("userAgent")?e.userAgent:function(){var e;return"undefined"!=typeof navigator&&(e=navigator.userAgent),e&&e.headers&&"string"==typeof e.headers["user-agent"]&&(e=e.headers["user-agent"]),e}()))return!0;var r=a({ua:{headers:{"user-agent":t}},tablet:!0,featureDetect:!1});if(!r)for(var i=t.split(" "),o=1;o-1;l--){var s=i[l];if("Version/"===s.substr(0,8)){var c=s.substr(8).split(".")[0];if(n(c)&&(c=+c),c>=13)return!0}}return r}},2416:function(e){"use strict";e.exports=function(e,t){if(t instanceof RegExp){for(var r=t.toString(),n=0;na.queueLength&&(e.undoQueue.queue.shift(),e.undoQueue.index--))},startSequence:function(e){e.undoQueue=e.undoQueue||{index:0,queue:[],sequence:!1},e.undoQueue.sequence=!0,e.undoQueue.beginSequence=!0},stopSequence:function(e){e.undoQueue=e.undoQueue||{index:0,queue:[],sequence:!1},e.undoQueue.sequence=!1,e.undoQueue.beginSequence=!1},undo:function(e){var t,r;if(!(void 0===e.undoQueue||isNaN(e.undoQueue.index)||e.undoQueue.index<=0)){for(e.undoQueue.index--,t=e.undoQueue.queue[e.undoQueue.index],e.undoQueue.inSequence=!0,r=0;r=e.undoQueue.queue.length)){for(t=e.undoQueue.queue[e.undoQueue.index],e.undoQueue.inSequence=!0,r=0;rt}function f(e,t){return e>=t}t.findBin=function(e,t,r){if(n(t.start))return r?Math.ceil((e-t.start)/t.size-l)-1:Math.floor((e-t.start)/t.size+l);var i,o,d=0,h=t.length,p=0,v=h>1?(t[h-1]-t[0])/(h-1):1;for(o=v>=0?r?s:c:r?f:u,e+=v*l*(r?-1:1)*(v>=0?1:-1);d90&&a.log("Long binary search..."),d-1},t.sorterAsc=function(e,t){return e-t},t.sorterDes=function(e,t){return t-e},t.distinctVals=function(e){var r,n=e.slice();for(n.sort(t.sorterAsc),r=n.length-1;r>-1&&n[r]===o;r--);for(var a,i=n[r]-n[0]||1,l=i/(r||1)/1e4,s=[],c=0;c<=r;c++){var u=n[c],f=u-a;void 0===a?(s.push(u),a=u):f>l&&(i=Math.min(i,f),s.push(u),a=u)}return{vals:s,minDiff:i}},t.roundUp=function(e,t,r){for(var n,a=0,i=t.length-1,o=0,l=r?0:1,s=r?1:0,c=r?Math.ceil:Math.floor;a0&&(n=1),r&&n)return e.sort(t)}return n?e:e.reverse()},t.findIndexOfMin=function(e,t){t=t||i;for(var r,n=1/0,a=0;ai.length)&&(o=i.length),n(r)||(r=!1),a(i[0])){for(s=new Array(o),l=0;le.length-1)return e[e.length-1];var r=t%1;return r*e[Math.ceil(t)]+(1-r)*e[Math.floor(t)]}},2736:function(e,t,r){"use strict";var n=r(3428),a=r(3400),i=a.strTranslate,o=r(9616),l=r(4284).LINE_SPACING,s=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;t.convertToTspans=function(e,r,g){var L=e.text(),S=!e.attr("data-notex")&&r&&r._context.typesetMath&&"undefined"!=typeof MathJax&&L.match(s),C=n.select(e.node().parentNode);if(!C.empty()){var P=e.attr("class")?e.attr("class").split(" ")[0]:"text";return P+="-math",C.selectAll("svg."+P).remove(),C.selectAll("g."+P+"-group").remove(),e.style("display",null).attr({"data-unformatted":L,"data-math":"N"}),S?(r&&r._promises||[]).push(new Promise((function(t){e.style("display","none");var r=parseInt(e.node().style.fontSize,10),o={fontSize:r};!function(e,t,r){var i,o,l,s,d=parseInt((MathJax.version||"").split(".")[0]);if(2===d||3===d){var h=function(){var r="math-output-"+a.randstr({},64),i=(s=n.select("body").append("div").attr({id:r}).style({visibility:"hidden",position:"absolute","font-size":t.fontSize+"px"}).text(e.replace(c,"\\lt ").replace(u,"\\gt "))).node();return 2===d?MathJax.Hub.Typeset(i):MathJax.typeset([i])},p=function(){var t=s.select(2===d?".MathJax_SVG":".MathJax"),i=!t.empty()&&s.select("svg").node();if(i){var o,l=i.getBoundingClientRect();o=2===d?n.select("body").select("#MathJax_SVG_glyphs"):t.select("defs"),r(t,o,l)}else a.log("There was an error in the tex syntax.",e),r();s.remove()};2===d?MathJax.Hub.Queue((function(){return o=a.extendDeepAll({},MathJax.Hub.config),l=MathJax.Hub.processSectionDelay,void 0!==MathJax.Hub.processSectionDelay&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:f},displayAlign:"left"})}),(function(){if("SVG"!==(i=MathJax.Hub.config.menuSettings.renderer))return MathJax.Hub.setRenderer("SVG")}),h,p,(function(){if("SVG"!==i)return MathJax.Hub.setRenderer(i)}),(function(){return void 0!==l&&(MathJax.Hub.processSectionDelay=l),MathJax.Hub.Config(o)})):3===d&&(o=a.extendDeepAll({},MathJax.config),MathJax.config.tex||(MathJax.config.tex={}),MathJax.config.tex.inlineMath=f,"svg"!==(i=MathJax.config.startup.output)&&(MathJax.config.startup.output="svg"),MathJax.startup.defaultReady(),MathJax.startup.promise.then((function(){h(),p(),"svg"!==i&&(MathJax.config.startup.output=i),MathJax.config=o})))}else a.warn("No MathJax version:",MathJax.version)}(S[2],o,(function(n,a,o){C.selectAll("svg."+P).remove(),C.selectAll("g."+P+"-group").remove();var l=n&&n.select("svg");if(!l||!l.node())return I(),void t();var s=C.append("g").classed(P+"-group",!0).attr({"pointer-events":"none","data-unformatted":L,"data-math":"Y"});s.node().appendChild(l.node()),a&&a.node()&&l.node().insertBefore(a.node().cloneNode(!0),l.node().firstChild);var c=o.width,u=o.height;l.attr({class:P,height:u,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var f=e.node().style.fill||"black",d=l.select("g");d.attr({fill:f,stroke:f});var h=d.node().getBoundingClientRect(),p=h.width,v=h.height;(p>c||v>u)&&(l.style("overflow","hidden"),p=(h=l.node().getBoundingClientRect()).width,v=h.height);var y=+e.attr("x"),m=+e.attr("y"),x=-(r||e.node().getBoundingClientRect().height)/4;if("y"===P[0])s.attr({transform:"rotate("+[-90,y,m]+")"+i(-p/2,x-v/2)});else if("l"===P[0])m=x-v/2;else if("a"===P[0]&&0!==P.indexOf("atitle"))y=0,m=x;else{var b=e.attr("text-anchor");y-=p*("middle"===b?.5:"end"===b?1:0),m=m+x-v/2}l.attr({x:y,y:m}),g&&g.call(e,s),t(s)}))}))):I(),e}function I(){C.empty()||(P=e.attr("class")+"-math",C.select("svg."+P).remove()),e.text("").style("white-space","pre");var r=function(e,t){t=t.replace(y," ");var r,i=!1,s=[],c=-1;function u(){c++;var t=document.createElementNS(o.svg,"tspan");n.select(t).attr({class:"line",dy:c*l+"em"}),e.appendChild(t),r=t;var a=s;if(s=[{node:t}],a.length>1)for(var i=1;i doesnt match end tag <"+e+">. Pretending it did match.",t),r=s[s.length-1].node}else a.log("Ignoring unexpected end tag .",t)}b.test(t)?u():(r=e,s=[{node:e}]);for(var S=t.split(m),C=0;C|>|>)/g,f=[["$","$"],["\\(","\\)"]],d={sup:"font-size:70%",sub:"font-size:70%",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},h={sub:"0.3em",sup:"-0.6em"},p={sub:"-0.21em",sup:"0.42em"},v="​",g=["http:","https:","mailto:","",void 0,":"],y=t.NEWLINES=/(\r\n?|\n)/g,m=/(<[^<>]*>)/,x=/<(\/?)([^ >]*)(\s+(.*))?>/i,b=//i;t.BR_TAG_ALL=//gi;var _=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,w=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,T=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,M=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function k(e,t){if(!e)return null;var r=e.match(t),n=r&&(r[3]||r[4]);return n&&D(n)}var A=/(^|;)\s*color:/;t.plainText=function(e,t){for(var r=void 0!==(t=t||{}).len&&-1!==t.len?t.len:1/0,n=void 0!==t.allowedTags?t.allowedTags:["br"],a=e.split(m),i=[],o="",l=0,s=0;s3?i.push(c.substr(0,h-3)+"..."):i.push(c.substr(0,h));break}o=""}}return i.join("")};var L={mu:"μ",amp:"&",lt:"<",gt:">",nbsp:" ",times:"×",plusmn:"±",deg:"°"},S=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function D(e){return e.replace(S,(function(e,t){return("#"===t.charAt(0)?function(e){if(!(e>1114111)){var t=String.fromCodePoint;if(t)return t(e);var r=String.fromCharCode;return e<=65535?r(e):r(55232+(e>>10),e%1024+56320)}}("x"===t.charAt(1)?parseInt(t.substr(2),16):parseInt(t.substr(1),10)):L[t])||e}))}function O(e){var t=encodeURI(decodeURI(e)),r=document.createElement("a"),n=document.createElement("a");r.href=e,n.href=t;var a=r.protocol,i=n.protocol;return-1!==g.indexOf(a)&&-1!==g.indexOf(i)?t:""}function C(e,t,r){var n,i,o,l=r.horizontalAlign,s=r.verticalAlign||"top",c=e.node().getBoundingClientRect(),u=t.node().getBoundingClientRect();return i="bottom"===s?function(){return c.bottom-n.height}:"middle"===s?function(){return c.top+(c.height-n.height)/2}:function(){return c.top},o="right"===l?function(){return c.right-n.width}:"center"===l?function(){return c.left+(c.width-n.width)/2}:function(){return c.left},function(){n=this.node().getBoundingClientRect();var e=o()-u.left,t=i()-u.top,l=r.gd||{};if(r.gd){l._fullLayout._calcInverseTransform(l);var s=a.apply3DTransform(l._fullLayout._invTransform)(e,t);e=s[0],t=s[1]}return this.style({top:t+"px",left:e+"px","z-index":1e3}),this}}t.convertEntities=D,t.sanitizeHTML=function(e){e=e.replace(y," ");for(var t=document.createElement("p"),r=t,a=[],i=e.split(m),o=0;oi.ts+t?s():i.timer=setTimeout((function(){s(),i.timer=null}),t)},t.done=function(e){var t=r[e];return t&&t.timer?new Promise((function(e){var r=t.onDone;t.onDone=function(){r&&r(),e(),t.onDone=null}})):Promise.resolve()},t.clear=function(e){if(e)n(r[e]),delete r[e];else for(var a in r)t.clear(a)}},6896:function(e,t,r){"use strict";var n=r(8248);e.exports=function(e,t){if(e>0)return Math.log(e)/Math.LN10;var r=Math.log(Math.min(t[0],t[1]))/Math.LN10;return n(r)||(r=Math.log(Math.max(t[0],t[1]))/Math.LN10-6),r}},1680:function(e){"use strict";e.exports={moduleType:"locale",name:"en-US",dictionary:{"Click to enter Colorscale title":"Click to enter Colorscale title"},format:{date:"%m/%d/%Y"}}},6580:function(e){"use strict";e.exports={moduleType:"locale",name:"en",dictionary:{"Click to enter Colorscale title":"Click to enter Colourscale title"},format:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],periods:["AM","PM"],dateTime:"%a %b %e %X %Y",date:"%d/%m/%Y",time:"%H:%M:%S",decimal:".",thousands:",",grouping:[3],currency:["$",""],year:"%Y",month:"%b %Y",dayMonth:"%b %-d",dayMonthYear:"%b %-d, %Y"}}},9820:function(e,t,r){"use strict";var n=r(4040);e.exports=function(e){for(var t,r,a=n.layoutArrayContainers,i=n.layoutArrayRegexes,o=e.split("[")[0],l=0;l0&&o.log("Clearing previous rejected promises from queue."),e._promises=[]},t.cleanLayout=function(e){var r,n;e||(e={}),e.xaxis1&&(e.xaxis||(e.xaxis=e.xaxis1),delete e.xaxis1),e.yaxis1&&(e.yaxis||(e.yaxis=e.yaxis1),delete e.yaxis1),e.scene1&&(e.scene||(e.scene=e.scene1),delete e.scene1);var i=(l.subplotsRegistry.cartesian||{}).attrRegex,s=(l.subplotsRegistry.polar||{}).attrRegex,f=(l.subplotsRegistry.ternary||{}).attrRegex,d=(l.subplotsRegistry.gl3d||{}).attrRegex,v=Object.keys(e);for(r=0;r3?(I.x=1.02,I.xanchor="left"):I.x<-2&&(I.x=-.02,I.xanchor="right"),I.y>3?(I.y=1.02,I.yanchor="bottom"):I.y<-2&&(I.y=-.02,I.yanchor="top")),p(e),"rotate"===e.dragmode&&(e.dragmode="orbit"),c.clean(e),e.template&&e.template.layout&&t.cleanLayout(e.template.layout),e},t.cleanData=function(e){for(var r=0;r0)return e.substr(0,t)}t.hasParent=function(e,t){for(var r=b(t);r;){if(r in e)return!0;r=b(r)}return!1};var _=["x","y","z"];t.clearAxisTypes=function(e,t,r){for(var n=0;n1&&i.warn("Full array edits are incompatible with other edits",f);var m=r[""][""];if(c(m))t.set(null);else{if(!Array.isArray(m))return i.warn("Unrecognized full array edit value",f,m),!0;t.set(m)}return!v&&(d(g,y),h(e),!0)}var x,b,_,w,T,M,k,A,L=Object.keys(r).map(Number).sort(o),S=t.get(),D=S||[],O=u(y,f).get(),C=[],P=-1,I=D.length;for(x=0;xD.length-(k?0:1))i.warn("index out of range",f,_);else if(void 0!==M)T.length>1&&i.warn("Insertion & removal are incompatible with edits to the same index.",f,_),c(M)?C.push(_):k?("add"===M&&(M={}),D.splice(_,0,M),O&&O.splice(_,0,{})):i.warn("Unrecognized full object edit value",f,_,M),-1===P&&(P=_);else for(b=0;b=0;x--)D.splice(C[x],1),O&&O.splice(C[x],1);if(D.length?S||t.set(D):t.set(null),v)return!1;if(d(g,y),p!==a){var R;if(-1===P)R=L;else{for(I=Math.max(D.length,I),R=[],x=0;x=P);x++)R.push(_);for(x=P;x=e.data.length||a<-e.data.length)throw new Error(r+" must be valid indices for gd.data.");if(t.indexOf(a,n+1)>-1||a>=0&&t.indexOf(-e.data.length+a)>-1||a<0&&t.indexOf(e.data.length+a)>-1)throw new Error("each index in "+r+" must be unique.")}}function R(e,t,r){if(!Array.isArray(e.data))throw new Error("gd.data must be an array.");if(void 0===t)throw new Error("currentIndices is a required argument.");if(Array.isArray(t)||(t=[t]),I(e,t,"currentIndices"),void 0===r||Array.isArray(r)||(r=[r]),void 0!==r&&I(e,r,"newIndices"),void 0!==r&&t.length!==r.length)throw new Error("current and new indices must be of equal length.")}function z(e,t,r,n,i){!function(e,t,r,n){var a=o.isPlainObject(n);if(!Array.isArray(e.data))throw new Error("gd.data must be an array");if(!o.isPlainObject(t))throw new Error("update must be a key:value object");if(void 0===r)throw new Error("indices must be an integer or array of integers");for(var i in I(e,r,"indices"),t){if(!Array.isArray(t[i])||t[i].length!==r.length)throw new Error("attribute "+i+" must be an array of length equal to indices array length");if(a&&(!(i in n)||!Array.isArray(n[i])||n[i].length!==t[i].length))throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object")}}(e,t,r,n);for(var s=function(e,t,r,n){var i,s,c,u,f,d=o.isPlainObject(n),h=[];for(var p in Array.isArray(r)||(r=[r]),r=P(r,e.data.length-1),t)for(var v=0;v-1&&-1===r.indexOf("grouptitlefont")?s(r,r.replace("titlefont","title.font")):r.indexOf("titleposition")>-1?s(r,r.replace("titleposition","title.position")):r.indexOf("titleside")>-1?s(r,r.replace("titleside","title.side")):r.indexOf("titleoffset")>-1&&s(r,r.replace("titleoffset","title.offset")):s(r,r.replace("title","title.text"));function s(t,r){e[r]=e[t],delete e[t]}}function V(e,t,r){e=o.getGraphDiv(e),T.clearPromiseQueue(e);var n={};if("string"==typeof t)n[t]=r;else{if(!o.isPlainObject(t))return o.warn("Relayout fail.",t,r),Promise.reject();n=o.extendFlat({},t)}Object.keys(n).length&&(e.changed=!0);var a=X(e,n),i=a.flags;i.calc&&(e.calcdata=void 0);var l=[d.previousPromises];i.layoutReplot?l.push(M.layoutReplot):Object.keys(n).length&&(U(e,i,a)||d.supplyDefaults(e),i.legend&&l.push(M.doLegend),i.layoutstyle&&l.push(M.layoutStyles),i.axrange&&q(l,a.rangesAltered),i.ticks&&l.push(M.doTicksRelayout),i.modebar&&l.push(M.doModeBar),i.camera&&l.push(M.doCamera),i.colorbars&&l.push(M.doColorBars),l.push(S)),l.push(d.rehover,d.redrag,d.reselect),c.add(e,V,[e,a.undoit],V,[e,a.redoit]);var s=o.syncOrAsync(l,e);return s&&s.then||(s=Promise.resolve(e)),s.then((function(){return e.emit("plotly_relayout",a.eventData),e}))}function U(e,t,r){var n,a,i=e._fullLayout;if(!t.axrange)return!1;for(var l in t)if("axrange"!==l&&t[l])return!1;var s=function(e,t){return o.coerce(n,a,v,e,t)},c={};for(var u in r.rangesAltered){var f=h.id2name(u);if(n=e.layout[f],a=i[f],p(n,a,s,c),a._matchGroup)for(var d in a._matchGroup)if(d!==u){var g=i[h.id2name(d)];g.autorange=a.autorange,g.range=a.range.slice(),g._input.range=a.range.slice()}}return!0}function q(e,t){var r=t?function(e){var r=[];for(var n in t){var a=h.getFromId(e,n);if(r.push(n),-1!==(a.ticklabelposition||"").indexOf("inside")&&a._anchorAxis&&r.push(a._anchorAxis._id),a._matchGroup)for(var i in a._matchGroup)t[i]||r.push(i)}return h.draw(e,r,{skipTitle:!0})}:function(e){return h.draw(e,"redraw")};e.push(b,M.doAutoRangeAndConstraints,r,M.drawData,M.finalDraw)}var G=/^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/,Z=/^[xyz]axis[0-9]*\.autorange$/,W=/^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;function X(e,t){var r,n,a,i=e.layout,s=e._fullLayout,c=s._guiEditing,d=H(s._preGUI,c),p=Object.keys(t),v=h.list(e),g=o.extendDeepAll({},t),y={};for(Y(t),p=Object.keys(t),n=0;n0&&"string"!=typeof I.parts[z];)z--;var N=I.parts[z],F=I.parts[z-1]+"."+N,B=I.parts.slice(0,z).join("."),j=l(e.layout,B).get(),V=l(s,B).get(),U=I.get();if(void 0!==R){M[P]=R,L[P]="reverse"===N?R:E(U);var q=f.getLayoutValObject(s,I.parts);if(q&&q.impliedEdits&&null!==R)for(var X in q.impliedEdits)S(o.relativeAttr(P,X),q.impliedEdits[X]);if(-1!==["width","height"].indexOf(P))if(R){S("autosize",null);var K="height"===P?"width":"height";S(K,s[K])}else s[P]=e._initialAutoSize[P];else if("autosize"===P)S("width",R?null:s.width),S("height",R?null:s.height);else if(F.match(G))C(F),l(s,B+"._inputRange").set(null);else if(F.match(Z)){C(F),l(s,B+"._inputRange").set(null);var Q=l(s,B).get();Q._inputDomain&&(Q._input.domain=Q._inputDomain.slice())}else F.match(W)&&l(s,B+"._inputDomain").set(null);if("type"===N){D=j;var $="linear"===V.type&&"log"===R,ee="log"===V.type&&"linear"===R;if($||ee){if(D&&D.range)if(V.autorange)$&&(D.range=D.range[1]>D.range[0]?[1,2]:[2,1]);else{var te=D.range[0],re=D.range[1];$?(te<=0&&re<=0&&S(B+".autorange",!0),te<=0?te=re/1e6:re<=0&&(re=te/1e6),S(B+".range[0]",Math.log(te)/Math.LN10),S(B+".range[1]",Math.log(re)/Math.LN10)):(S(B+".range[0]",Math.pow(10,te)),S(B+".range[1]",Math.pow(10,re)))}else S(B+".autorange",!0);Array.isArray(s._subplots.polar)&&s._subplots.polar.length&&s[I.parts[0]]&&"radialaxis"===I.parts[1]&&delete s[I.parts[0]]._subplot.viewInitial["radialaxis.range"],u.getComponentMethod("annotations","convertCoords")(e,V,R,S),u.getComponentMethod("images","convertCoords")(e,V,R,S)}else S(B+".autorange",!0),S(B+".range",null);l(s,B+"._inputRange").set(null)}else if(N.match(A)){var ne=l(s,P).get(),ae=(R||{}).type;ae&&"-"!==ae||(ae="linear"),u.getComponentMethod("annotations","convertCoords")(e,ne,ae,S),u.getComponentMethod("images","convertCoords")(e,ne,ae,S)}var ie=w.containerArrayMatch(P);if(ie){r=ie.array,n=ie.index;var oe=ie.property,le=q||{editType:"calc"};""!==n&&""===oe&&(w.isAddVal(R)?L[P]=null:w.isRemoveVal(R)?L[P]=(l(i,r).get()||[])[n]:o.warn("unrecognized full object value",t)),k.update(_,le),y[r]||(y[r]={});var se=y[r][n];se||(se=y[r][n]={}),se[oe]=R,delete t[P]}else"reverse"===N?(j.range?j.range.reverse():(S(B+".autorange",!0),j.range=[1,0]),V.autorange?_.calc=!0:_.plot=!0):("dragmode"===P&&(!1===R&&!1!==U||!1!==R&&!1===U)||s._has("scatter-like")&&s._has("regl")&&"dragmode"===P&&("lasso"===R||"select"===R)&&"lasso"!==U&&"select"!==U||s._has("gl2d")?_.plot=!0:q?k.update(_,q):_.calc=!0,I.set(R))}}for(r in y)w.applyContainerArrayChanges(e,d(i,r),y[r],_,d)||(_.plot=!0);for(var ce in O){var ue=(D=h.getFromId(e,ce))&&D._constraintGroup;if(ue)for(var fe in _.calc=!0,ue)O[fe]||(h.getFromId(e,fe)._constraintShrinkable=!0)}(J(e)||t.height||t.width)&&(_.plot=!0);var de=s.shapes;for(n=0;n1;)if(n.pop(),void 0!==(r=l(t,n.join(".")+".uirevision").get()))return r;return t.uirevision}function ne(e,t){for(var r=0;r=a.length?a[0]:a[e]:a}function s(e){return Array.isArray(i)?e>=i.length?i[0]:i[e]:i}function c(e,t){var r=0;return function(){if(e&&++r===t)return e()}}return void 0===n._frameWaitingCnt&&(n._frameWaitingCnt=0),new Promise((function(i,u){function f(){e.emit("plotly_animating"),n._lastFrameAt=-1/0,n._timeToNext=0,n._runningTransitions=0,n._currentFrame=null;var t=function(){n._animationRaf=window.requestAnimationFrame(t),Date.now()-n._lastFrameAt>n._timeToNext&&function(){n._currentFrame&&n._currentFrame.onComplete&&n._currentFrame.onComplete();var t=n._currentFrame=n._frameQueue.shift();if(t){var r=t.name?t.name.toString():null;e._fullLayout._currentFrame=r,n._lastFrameAt=Date.now(),n._timeToNext=t.frameOpts.duration,d.transition(e,t.frame.data,t.frame.layout,T.coerceTraceIndices(e,t.frame.traces),t.frameOpts,t.transitionOpts).then((function(){t.onComplete&&t.onComplete()})),e.emit("plotly_animatingframe",{name:r,frame:t.frame,animation:{frame:t.frameOpts,transition:t.transitionOpts}})}else e.emit("plotly_animated"),window.cancelAnimationFrame(n._animationRaf),n._animationRaf=null}()};t()}var h,p,v=0;function g(e){return Array.isArray(a)?v>=a.length?e.transitionOpts=a[v]:e.transitionOpts=a[0]:e.transitionOpts=a,v++,e}var y=[],m=null==t,x=Array.isArray(t);if(m||x||!o.isPlainObject(t)){if(m||-1!==["string","number"].indexOf(typeof t))for(h=0;h0&&ww)&&M.push(p);y=M}}y.length>0?function(t){if(0!==t.length){for(var a=0;a=0;n--)if(o.isPlainObject(t[n])){var v=t[n].name,g=(u[v]||p[v]||{}).name,y=t[n].name,m=u[g]||p[g];g&&y&&"number"==typeof y&&m&&L<5&&(L++,o.warn('addFrames: overwriting frame "'+(u[g]||p[g]).name+'" with a frame whose name of type "number" also equates to "'+g+'". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===L&&o.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")),p[v]={name:v},h.push({frame:d.supplyFrameDefaults(t[n]),index:r&&void 0!==r[n]&&null!==r[n]?r[n]:f+n})}h.sort((function(e,t){return e.index>t.index?-1:e.index=0;n--){if("number"==typeof(a=h[n].frame).name&&o.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!a.name)for(;u[a.name="frame "+e._transitionData._counter++];);if(u[a.name]){for(i=0;i=0;r--)n=t[r],i.push({type:"delete",index:n}),l.unshift({type:"insert",index:n,value:a[n]});var s=d.modifyFrames,u=d.modifyFrames,f=[e,l],h=[e,i];return c&&c.add(e,s,f,u,h),d.modifyFrames(e,i)},t.addTraces=function e(r,n,a){r=o.getGraphDiv(r);var i,l,s=[],u=t.deleteTraces,f=e,d=[r,s],h=[r,n];for(function(e,t,r){var n,a;if(!Array.isArray(e.data))throw new Error("gd.data must be an array.");if(void 0===t)throw new Error("traces must be defined.");for(Array.isArray(t)||(t=[t]),n=0;n=0&&r=0&&r=i.length)return!1;if(2===e.dimensions){if(r++,t.length===r)return e;var o=t[r];if(!_(o))return!1;e=i[a][o]}else e=i[a]}else e=i}}return e}function _(e){return e===Math.round(e)&&e>=0}function w(){var e,t,r={};for(e in f(r,o),n.subplotsRegistry)if((t=n.subplotsRegistry[e]).layoutAttributes)if(Array.isArray(t.attr))for(var a=0;a=s.length)return!1;a=(r=(n.transformsRegistry[s[c].type]||{}).attributes)&&r[t[2]],l=3}else{var u=e._module;if(u||(u=(n.modules[e.type||i.type.dflt]||{})._module),!u)return!1;if(!(a=(r=u.attributes)&&r[o])){var f=u.basePlotModule;f&&f.attributes&&(a=f.attributes[o])}a||(a=i[o])}return b(a,t,l)},t.getLayoutValObject=function(e,t){var r=function(e,t){var r,a,i,l,s=e._basePlotModules;if(s){var c;for(r=0;r=a&&(r._input||{})._templateitemname;l&&(o=a);var s,c=t+"["+o+"]";function u(){s={},l&&(s[c]={},s[c][i]=l)}function f(e,t){l?n.nestedProperty(s[c],e).set(t):s[c+"."+e]=t}function d(){var e=s;return u(),e}return u(),{modifyBase:function(e,t){s[e]=t},modifyItem:f,getUpdateObj:d,applyUpdate:function(t,r){t&&f(t,r);var a=d();for(var i in a)n.nestedProperty(e,i).set(a[i])}}}},9172:function(e,t,r){"use strict";var n=r(3428),a=r(4040),i=r(7316),o=r(3400),l=r(2736),s=r(3696),c=r(6308),u=r(3616),f=r(1668),d=r(3080),h=r(4460),p=r(4284),v=r(1888),g=v.enforce,y=v.clean,m=r(9280).doAutoRange,x="start";function b(e,t,r){for(var n=0;n=e[1]||a[1]<=e[0])&&i[0]t[0])return!0}return!1}function _(e){var r,a,l,s,f,v,g=e._fullLayout,y=g._size,m=y.p,x=h.list(e,"",!0);if(g._paperdiv.style({width:e._context.responsive&&g.autosize&&!e._context._hasZeroWidth&&!e.layout.width?"100%":g.width+"px",height:e._context.responsive&&g.autosize&&!e._context._hasZeroHeight&&!e.layout.height?"100%":g.height+"px"}).selectAll(".main-svg").call(u.setSize,g.width,g.height),e._context.setBackground(e,g.paper_bgcolor),t.drawMainTitle(e),d.manage(e),!g._has("cartesian"))return i.previousPromises(e);function _(e,t,r){var n=e._lw/2;return"x"===e._id.charAt(0)?t?"top"===r?t._offset-m-n:t._offset+t._length+m+n:y.t+y.h*(1-(e.position||0))+n%1:t?"right"===r?t._offset+t._length+m+n:t._offset-m-n:y.l+y.w*(e.position||0)+n%1}for(r=0;r.5?"t":"b",o=e._fullLayout.margin[i],l=0;return"paper"===t.yref?l=r+t.pad.t+t.pad.b:"container"===t.yref&&(l=function(e,t,r,n,a){var i=0;return"middle"===r&&(i+=a/2),"t"===e?("top"===r&&(i+=a),i+=n-t*n):("bottom"===r&&(i+=a),i+=t*n),i}(i,n,a,e._fullLayout.height,r)+t.pad.t+t.pad.b),l>o?l:0}(e,r,g);if(y>0){!function(e,t,r,n){var a="title.automargin",l=e._fullLayout.title,s=l.y>.5?"t":"b",c={x:l.x,y:l.y,t:0,b:0},u={};"paper"===l.yref&&function(e,t,r,n,a){var i="paper"===t.yref?e._fullLayout._size.h:e._fullLayout.height,l=o.isTopAnchor(t)?n:n-a,s="b"===r?i-l:l;return!(o.isTopAnchor(t)&&"t"===r||o.isBottomAnchor(t)&&"b"===r)&&sT?u.push({code:"unused",traceType:m,templateCount:w,dataCount:T}):T>w&&u.push({code:"reused",traceType:m,templateCount:w,dataCount:T})}}else u.push({code:"data"});if(function e(t,r){for(var n in t)if("_"!==n.charAt(0)){var i=t[n],o=v(t,n,r);a(i)?(Array.isArray(t)&&!1===i._template&&i.templateitemname&&u.push({code:"missing",path:o,templateitemname:i.templateitemname}),e(i,o)):Array.isArray(i)&&g(i)&&e(i,o)}}({data:h,layout:d},""),u.length)return u.map(y)}},7024:function(e,t,r){"use strict";var n=r(8248),a=r(6424),i=r(7316),o=r(3400),l=r(7030),s=r(7164),c=r(3268),u=r(5788).version,f={format:{valType:"enumerated",values:["png","jpeg","webp","svg","full-json"],dflt:"png"},width:{valType:"number",min:1},height:{valType:"number",min:1},scale:{valType:"number",min:0,dflt:1},setBackground:{valType:"any",dflt:!1},imageDataOnly:{valType:"boolean",dflt:!1}};e.exports=function(e,t){var r,d,h,p;function v(e){return!(e in t)||o.validate(t[e],f[e])}if(t=t||{},o.isPlainObject(e)?(r=e.data||[],d=e.layout||{},h=e.config||{},p={}):(e=o.getGraphDiv(e),r=o.extendDeep([],e.data),d=o.extendDeep({},e.layout),h=e._context,p=e._fullLayout||{}),!v("width")&&null!==t.width||!v("height")&&null!==t.height)throw new Error("Height and width should be pixel values.");if(!v("format"))throw new Error("Export format is not "+o.join2(f.format.values,", "," or ")+".");var g={};function y(e,r){return o.coerce(t,g,f,e,r)}var m=y("format"),x=y("width"),b=y("height"),_=y("scale"),w=y("setBackground"),T=y("imageDataOnly"),M=document.createElement("div");M.style.position="absolute",M.style.left="-5000px",document.body.appendChild(M);var k=o.extendFlat({},d);x?k.width=x:null===t.width&&n(p.width)&&(k.width=p.width),b?k.height=b:null===t.height&&n(p.height)&&(k.height=p.height);var A=o.extendFlat({},h,{_exportedPlot:!0,staticPlot:!0,setBackground:w}),L=l.getRedrawFunc(M);function S(){return new Promise((function(e){setTimeout(e,l.getDelay(M._fullLayout))}))}function D(){return new Promise((function(e,t){var r=s(M,m,_),n=M._fullLayout.width,f=M._fullLayout.height;function d(){a.purge(M),document.body.removeChild(M)}if("full-json"===m){var h=i.graphJson(M,!1,"keepdata","object",!0,!0);return h.version=u,h=JSON.stringify(h),d(),e(T?h:l.encodeJSON(h))}if(d(),"svg"===m)return e(T?r:l.encodeSVG(r));var p=document.createElement("canvas");p.id=o.randstr(),c({format:m,width:n,height:f,scale:_,canvas:p,svg:r,promise:!0}).then(e).catch(t)}))}return new Promise((function(e,t){a.newPlot(M,r,k,A).then(L).then(S).then(D).then((function(t){e(function(e){return T?e.replace(l.IMAGE_URL_PREFIX,""):e}(t))})).catch((function(e){t(e)}))}))}},1480:function(e,t,r){"use strict";var n=r(3400),a=r(7316),i=r(3060),o=r(556).dfltConfig,l=n.isPlainObject,s=Array.isArray,c=n.isArrayOrTypedArray;function u(e,t,r,a,i,o){o=o||[];for(var f=Object.keys(e),d=0;dx.length&&a.push(h("unused",i,y.concat(x.length)));var k,A,L,S,D,O=x.length,C=Array.isArray(M);if(C&&(O=Math.min(O,M.length)),2===b.dimensions)for(A=0;Ax[A].length&&a.push(h("unused",i,y.concat(A,x[A].length)));var P=x[A].length;for(k=0;k<(C?Math.min(P,M[A].length):P);k++)L=C?M[A][k]:M,S=m[A][k],D=x[A][k],n.validate(S,L)?D!==S&&D!==+S&&a.push(h("dynamic",i,y.concat(A,k),S,D)):a.push(h("value",i,y.concat(A,k),S))}else a.push(h("array",i,y.concat(A),m[A]));else for(A=0;A1&&d.push(h("object","layout"))),a.supplyDefaults(p);for(var v=p._fullData,g=r.length,y=0;y0&&Math.round(f)===f))return{vals:a};c=f}for(var d=t.calendar,h="start"===s,p="end"===s,v=e[r+"period0"],g=i(v,d)||0,y=[],m=[],x=[],b=a.length,_=0;_k;)M=o(M,-c,d);for(;M<=k;)M=o(M,c,d);T=o(M,-c,d)}else{for(M=g+(w=Math.round((k-g)/u))*u;M>k;)M-=u;for(;M<=k;)M+=u;T=M-u}y[_]=h?T:p?M:(T+M)/2,m[_]=T,x[_]=M}return{vals:y,starts:m,ends:x}}},6720:function(e){"use strict";e.exports={xaxis:{valType:"subplotid",dflt:"x",editType:"calc+clearAxisTypes"},yaxis:{valType:"subplotid",dflt:"y",editType:"calc+clearAxisTypes"}}},9280:function(e,t,r){"use strict";var n=r(3428),a=r(8248),i=r(3400),o=r(9032).FP_SAFE,l=r(4040),s=r(3616),c=r(9811),u=c.getFromId,f=c.isLinked;function d(e,t){var r,n,a=[],o=e._fullLayout,l=p(o,t,0),s=p(o,t,1),c=g(e,t),u=c.min,f=c.max;if(0===u.length||0===f.length)return i.simpleMap(t.range,t.r2l);var d=u[0].val,v=f[0].val;for(r=1;r0&&((k=O-l(b)-s(_))>C?A/k>P&&(w=b,T=_,P=A/k):A/O>P&&(w={val:b.val,nopad:1},T={val:_.val,nopad:1},P=A/O));if(d===v){var I=d-1,R=d+1;if(S)if(0===d)a=[0,1];else{var z=(d>0?f:u).reduce((function(e,t){return Math.max(e,s(t))}),0),N=d/(1-Math.min(.5,z/O));a=d>0?[0,N]:[N,0]}else a=D?[Math.max(0,I),Math.max(1,R)]:[I,R]}else S?(w.val>=0&&(w={val:0,nopad:1}),T.val<=0&&(T={val:0,nopad:1})):D&&(w.val-P*l(w)<0&&(w={val:0,nopad:1}),T.val<=0&&(T={val:1,nopad:1})),P=(T.val-w.val-h(t,b.val,_.val))/(O-l(w)-s(T)),a=[w.val-P*l(w),T.val+P*s(T)];return a=M(a,t),t.limitRange&&t.limitRange(),m&&a.reverse(),i.simpleMap(a,t.l2r||Number)}function h(e,t,r){var n=0;if(e.rangebreaks)for(var a=e.locateBreaks(t,r),i=0;i0?r.ppadplus:r.ppadminus)||r.ppad||0),L=k((e._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),S=k(r.vpadplus||r.vpad),D=k(r.vpadminus||r.vpad);if(!T){if(d=1/0,h=-1/0,w)for(n=0;n0&&(d=i),i>h&&i-o&&(d=i),i>h&&i=P;n--)C(n);return{min:p,max:v,opts:r}},concatExtremes:g};var v=3;function g(e,t,r){var n,a,i,o=t._id,l=e._fullData,s=e._fullLayout,c=[],f=[];function d(e,t){for(n=0;n=r&&(c.extrapad||!o)){l=!1;break}a(t,c.val)&&c.pad<=r&&(o||!c.extrapad)&&(e.splice(s,1),s--)}if(l){var u=i&&0===t;e.push({val:t,pad:u?0:r,extrapad:!u&&o})}}function b(e){return a(e)&&Math.abs(e)=t}function T(e,t,r){return void 0===t||void 0===r||(t=e.d2l(t))=c&&(o=c,r=c),l<=c&&(l=c,n=c)}}return r=function(e,t){var r=t.autorangeoptions;return r&&void 0!==r.minallowed&&T(t,r.minallowed,r.maxallowed)?r.minallowed:r&&void 0!==r.clipmin&&T(t,r.clipmin,r.clipmax)?Math.max(e,t.d2l(r.clipmin)):e}(r,t),n=function(e,t){var r=t.autorangeoptions;return r&&void 0!==r.maxallowed&&T(t,r.minallowed,r.maxallowed)?r.maxallowed:r&&void 0!==r.clipmax&&T(t,r.clipmin,r.clipmax)?Math.min(e,t.d2l(r.clipmax)):e}(n,t),[r,n]}},6808:function(e){"use strict";e.exports=function(e,t,r){var n,a;if(r){var i="reversed"===t||"min reversed"===t||"max reversed"===t;n=r[i?1:0],a=r[i?0:1]}var o=e("autorangeoptions.minallowed",null===a?n:void 0),l=e("autorangeoptions.maxallowed",null===n?a:void 0);void 0===o&&e("autorangeoptions.clipmin"),void 0===l&&e("autorangeoptions.clipmax"),e("autorangeoptions.include")}},4460:function(e,t,r){"use strict";var n=r(3428),a=r(8248),i=r(7316),o=r(4040),l=r(3400),s=l.strTranslate,c=r(2736),u=r(1668),f=r(6308),d=r(3616),h=r(4724),p=r(8728),v=r(9032),g=v.ONEMAXYEAR,y=v.ONEAVGYEAR,m=v.ONEMINYEAR,x=v.ONEMAXQUARTER,b=v.ONEAVGQUARTER,_=v.ONEMINQUARTER,w=v.ONEMAXMONTH,T=v.ONEAVGMONTH,M=v.ONEMINMONTH,k=v.ONEWEEK,A=v.ONEDAY,L=A/2,S=v.ONEHOUR,D=v.ONEMIN,O=v.ONESEC,C=v.MINUS_SIGN,P=v.BADNUM,I={K:"zeroline"},R={K:"gridline",L:"path"},z={K:"minor-gridline",L:"path"},N={K:"tick",L:"path"},F={K:"tick",L:"text"},E={width:["x","r","l","xl","xr"],height:["y","t","b","yt","yb"],right:["r","xr"],left:["l","xl"],top:["t","yt"],bottom:["b","yb"]},H=r(4284),B=H.MID_SHIFT,j=H.CAP_SHIFT,Y=H.LINE_SPACING,V=H.OPPOSITE_SIDE,U=e.exports={};U.setConvert=r(8344);var q=r(2976),G=r(9811),Z=G.idSort,W=G.isLinked;U.id2name=G.id2name,U.name2id=G.name2id,U.cleanId=G.cleanId,U.list=G.list,U.listIds=G.listIds,U.getFromId=G.getFromId,U.getFromTrace=G.getFromTrace;var X=r(9280);U.getAutoRange=X.getAutoRange,U.findExtremes=X.findExtremes;var J=1e-4;function K(e){var t=(e[1]-e[0])*J;return[e[0]-t,e[1]+t]}U.coerceRef=function(e,t,r,n,a,i){var o=n.charAt(n.length-1),s=r._fullLayout._subplots[o+"axis"],c=n+"ref",u={};return a||(a=s[0]||("string"==typeof i?i:i[0])),i||(i=a),s=s.concat(s.map((function(e){return e+" domain"}))),u[c]={valType:"enumerated",values:s.concat(i?"string"==typeof i?[i]:i:[]),dflt:a},l.coerce(e,t,u,c)},U.getRefType=function(e){return void 0===e?e:"paper"===e?"paper":"pixel"===e?"pixel":/( domain)$/.test(e)?"domain":"range"},U.coercePosition=function(e,t,r,n,a,i){var o,s;if("range"!==U.getRefType(n))o=l.ensureNumber,s=r(a,i);else{var c=U.getFromId(t,n);s=r(a,i=c.fraction2r(i)),o=c.cleanPos}e[a]=o(s)},U.cleanPosition=function(e,t,r){return("paper"===r||"pixel"===r?l.ensureNumber:U.getFromId(t,r).cleanPos)(e)},U.redrawComponents=function(e,t){t=t||U.listIds(e);var r=e._fullLayout;function n(n,a,i,l){for(var s=o.getComponentMethod(n,a),c={},u=0;un&&d2e-6||((r-e._forceTick0)/e._minDtick%1+1.000001)%1>2e-6)&&(e._minDtick=0)):e._minDtick=0},U.saveRangeInitial=function(e,t){for(var r=U.list(e,"",!0),n=!1,a=0;a.3*d||u(n)||u(i))){var h=r.dtick/2;e+=e+h.8){var o=Number(r.substr(1));i.exactYears>.8&&o%12==0?e=U.tickIncrement(e,"M6","reverse")+1.5*A:i.exactMonths>.8?e=U.tickIncrement(e,"M1","reverse")+15.5*A:e-=L;var s=U.tickIncrement(e,r);if(s<=n)return s}return e}(m,e,y,c,i)),g=m;g<=u;)g=U.tickIncrement(g,y,!1,i);return{start:t.c2r(m,0,i),end:t.c2r(g,0,i),size:y,_dataSpan:u-c}},U.prepMinorTicks=function(e,t,r){if(!t.minor.dtick){delete e.dtick;var n,i=t.dtick&&a(t._tmin);if(i){var o=U.tickIncrement(t._tmin,t.dtick,!0);n=[t._tmin,.99*o+.01*t._tmin]}else{var s=l.simpleMap(t.range,t.r2l);n=[s[0],.8*s[0]+.2*s[1]]}if(e.range=l.simpleMap(n,t.l2r),e._isMinor=!0,U.prepTicks(e,r),i){var c=a(t.dtick),u=a(e.dtick),f=c?t.dtick:+t.dtick.substring(1),d=u?e.dtick:+e.dtick.substring(1);c&&u?te(f,d)?f===2*k&&d===2*A&&(e.dtick=k):f===2*k&&d===3*A?e.dtick=k:f!==k||(t._input.minor||{}).nticks?re(f/d,2.5)?e.dtick=f/2:e.dtick=f:e.dtick=A:"M"===String(t.dtick).charAt(0)?u?e.dtick="M1":te(f,d)?f>=12&&2===d&&(e.dtick="M3"):e.dtick=t.dtick:"L"===String(e.dtick).charAt(0)?"L"===String(t.dtick).charAt(0)?te(f,d)||(e.dtick=re(f/d,2.5)?t.dtick/2:t.dtick):e.dtick="D1":"D2"===e.dtick&&+t.dtick>1&&(e.dtick=1)}e.range=t.range}void 0===t.minor._tick0Init&&(e.tick0=t.tick0)},U.prepTicks=function(e,t){var r=l.simpleMap(e.range,e.r2l,void 0,void 0,t);if("auto"===e.tickmode||!e.dtick){var n,i=e.nticks;i||("category"===e.type||"multicategory"===e.type?(n=e.tickfont?l.bigFont(e.tickfont.size||12):15,i=e._length/n):(n="y"===e._id.charAt(0)?40:80,i=l.constrain(e._length/n,4,9)+1),"radialaxis"===e._name&&(i*=2)),e.minor&&"array"!==e.minor.tickmode||"array"===e.tickmode&&(i*=100),e._roughDTick=Math.abs(r[1]-r[0])/i,U.autoTicks(e,e._roughDTick),e._minDtick>0&&e.dtick<2*e._minDtick&&(e.dtick=e._minDtick,e.tick0=e.l2r(e._forceTick0))}"period"===e.ticklabelmode&&function(e){var t;function r(){return!(a(e.dtick)||"M"!==e.dtick.charAt(0))}var n=r(),i=U.getTickFormat(e);if(i){var o=e._dtickInit!==e.dtick;/%[fLQsSMX]/.test(i)||(/%[HI]/.test(i)?(t=S,o&&!n&&e.dtick=(I?0:1);R--){var z=!R;R?(e._dtickInit=e.dtick,e._tick0Init=e.tick0):(e.minor._dtickInit=e.minor.dtick,e.minor._tick0Init=e.minor.tick0);var N=R?e:l.extendFlat({},e,e.minor);if(z?U.prepMinorTicks(N,e,t):U.prepTicks(N,t),"array"!==N.tickmode)if("sync"!==N.tickmode){var F=K(u),E=F[0],H=F[1],B=a(N.dtick),j="log"===i&&!(B||"L"===N.dtick.charAt(0)),Y=U.tickFirst(N,t);if(R){if(e._tmin=Y,Y=H:Z<=H;Z=U.tickIncrement(Z,W,f,o)){if(R&&V++,N.rangebreaks&&!f){if(Z=h)break}if(O.length>p||Z===G)break;G=Z;var X={value:Z};R?(j&&Z!==(0|Z)&&(X.simpleLabel=!0),s>1&&V%s&&(X.skipLabel=!0),O.push(X)):(X.minor=!0,C.push(X))}}else O=[],v=ie(e);else R?(O=[],v=oe(e,!z)):(C=[],D=oe(e,!z))}if(I&&!("inside"===e.minor.ticks&&"outside"===e.ticks||"outside"===e.minor.ticks&&"inside"===e.ticks)){for(var J=O.map((function(e){return e.value})),Q=[],$=0;$0?(i=n-1,o=n):(i=n,o=n);var l,s=e[i].value,c=e[o].value,u=Math.abs(c-s),f=r||u,d=0;f>=m?d=u>=m&&u<=g?u:y:r===b&&f>=_?d=u>=_&&u<=x?u:b:f>=M?d=u>=M&&u<=w?u:T:r===k&&f>=k?d=k:f>=A?d=A:r===L&&f>=L?d=L:r===S&&f>=S&&(d=S),d>=u&&(d=u,l=!0);var h=a+d;if(t.rangebreaks&&d>0){for(var p=0,v=0;v<84;v++){var D=(v+.5)/84;t.maskBreaks(a*(1-D)+D*h)!==P&&p++}(d*=p/84)||(e[n].drop=!0),l&&u>k&&(d=u)}(d>0||0===n)&&(e[n].periodX=a+d/2)}}(O,e,e._definedDelta),e.rangebreaks){var ae="y"===e._id.charAt(0),le=1;"auto"===e.tickmode&&(le=e.tickfont?e.tickfont.size:12);var se=NaN;for(r=O.length-1;r>-1;r--)if(O[r].drop)O.splice(r,1);else{O[r].value=ze(O[r].value,e);var ce=e.c2p(O[r].value);(ae?se>ce-le:seh||feh&&(ue.periodX=h),fe10||"01-01"!==n.substr(5)?e._tickround="d":e._tickround=+t.substr(1)%12==0?"y":"m";else if(t>=A&&i<=10||t>=15*A)e._tickround="d";else if(t>=D&&i<=16||t>=S)e._tickround="M";else if(t>=O&&i<=19||t>=D)e._tickround="S";else{var o=e.l2r(r+t).replace(/^-/,"").length;e._tickround=Math.max(i,o)-20,e._tickround<0&&(e._tickround=4)}}else if(a(t)||"L"===t.charAt(0)){var l=e.range.map(e.r2d||Number);a(t)||(t=Number(t.substr(1))),e._tickround=2-Math.floor(Math.log(t)/Math.LN10+.01);var s=Math.max(Math.abs(l[0]),Math.abs(l[1])),c=Math.floor(Math.log(s)/Math.LN10+.01),u=void 0===e.minexponent?3:e.minexponent;Math.abs(c)>u&&(me(e.exponentformat)&&!xe(c)?e._tickexponent=3*Math.round((c-1)/3):e._tickexponent=c)}else e._tickround=null}function ge(e,t,r){var n=e.tickfont||{};return{x:t,dx:0,dy:0,text:r||"",fontSize:n.size,font:n.family,fontColor:n.color}}U.autoTicks=function(e,t,r){var n;function i(e){return Math.pow(e,Math.floor(Math.log(t)/Math.LN10))}if("date"===e.type){e.tick0=l.dateTick0(e.calendar,0);var o=2*t;if(o>y)t/=y,n=i(10),e.dtick="M"+12*pe(t,n,le);else if(o>T)t/=T,e.dtick="M"+pe(t,1,se);else if(o>A){if(e.dtick=pe(t,A,e._hasDayOfWeekBreaks?[1,2,7,14]:ue),!r){var s=U.getTickFormat(e),c="period"===e.ticklabelmode;c&&(e._rawTick0=e.tick0),/%[uVW]/.test(s)?e.tick0=l.dateTick0(e.calendar,2):e.tick0=l.dateTick0(e.calendar,1),c&&(e._dowTick0=e.tick0)}}else o>S?e.dtick=pe(t,S,se):o>D?e.dtick=pe(t,D,ce):o>O?e.dtick=pe(t,O,ce):(n=i(10),e.dtick=pe(t,n,le))}else if("log"===e.type){e.tick0=0;var u=l.simpleMap(e.range,e.r2l);if(e._isMinor&&(t*=1.5),t>.7)e.dtick=Math.ceil(t);else if(Math.abs(u[1]-u[0])<1){var f=1.5*Math.abs((u[1]-u[0])/t);t=Math.abs(Math.pow(10,u[1])-Math.pow(10,u[0]))/f,n=i(10),e.dtick="L"+pe(t,n,le)}else e.dtick=t>.3?"D2":"D1"}else"category"===e.type||"multicategory"===e.type?(e.tick0=0,e.dtick=Math.ceil(Math.max(t,1))):Re(e)?(e.tick0=0,n=1,e.dtick=pe(t,n,he)):(e.tick0=0,n=i(10),e.dtick=pe(t,n,le));if(0===e.dtick&&(e.dtick=1),!a(e.dtick)&&"string"!=typeof e.dtick){var d=e.dtick;throw e.dtick=1,"ax.dtick error: "+String(d)}},U.tickIncrement=function(e,t,r,i){var o=r?-1:1;if(a(t))return l.increment(e,o*t);var s=t.charAt(0),c=o*Number(t.substr(1));if("M"===s)return l.incrementMonth(e,c,i);if("L"===s)return Math.log(Math.pow(10,e)+c)/Math.LN10;if("D"===s){var u="D2"===t?de:fe,f=e+.01*o,d=l.roundUp(l.mod(f,1),u,r);return Math.floor(f)+Math.log(n.round(Math.pow(10,d),1))/Math.LN10}throw"unrecognized dtick "+String(t)},U.tickFirst=function(e,t){var r=e.r2l||Number,i=l.simpleMap(e.range,r,void 0,void 0,t),o=i[1] ")}else e._prevDateHead=s,c+="
    "+s;t.text=c}(e,o,r,c):"log"===u?function(e,t,r,n,i){var o=e.dtick,s=t.x,c=e.tickformat,u="string"==typeof o&&o.charAt(0);if("never"===i&&(i=""),n&&"L"!==u&&(o="L3",u="L"),c||"L"===u)t.text=be(Math.pow(10,s),e,i,n);else if(a(o)||"D"===u&&l.mod(s+.01,1)<.1){var f=Math.round(s),d=Math.abs(f),h=e.exponentformat;"power"===h||me(h)&&xe(f)?(t.text=0===f?1:1===f?"10":"10"+(f>1?"":C)+d+"",t.fontSize*=1.25):("e"===h||"E"===h)&&d>2?t.text="1"+h+(f>0?"+":C)+d:(t.text=be(Math.pow(10,s),e,"","fakehover"),"D1"===o&&"y"===e._id.charAt(0)&&(t.dy-=t.fontSize/6))}else{if("D"!==u)throw"unrecognized dtick "+String(o);t.text=String(Math.round(Math.pow(10,l.mod(s,1)))),t.fontSize*=.75}if("D1"===e.dtick){var p=String(t.text).charAt(0);"0"!==p&&"1"!==p||("y"===e._id.charAt(0)?t.dx-=t.fontSize/4:(t.dy+=t.fontSize/2,t.dx+=(e.range[1]>e.range[0]?1:-1)*t.fontSize*(s<0?.5:.25)))}}(e,o,0,c,v):"category"===u?function(e,t){var r=e._categories[Math.round(t.x)];void 0===r&&(r=""),t.text=String(r)}(e,o):"multicategory"===u?function(e,t,r){var n=Math.round(t.x),a=e._categories[n]||[],i=void 0===a[1]?"":String(a[1]),o=void 0===a[0]?"":String(a[0]);r?t.text=o+" - "+i:(t.text=i,t.text2=o)}(e,o,r):Re(e)?function(e,t,r,n,a){if("radians"!==e.thetaunit||r)t.text=be(t.x,e,a,n);else{var i=t.x/180;if(0===i)t.text="0";else{var o=function(e){function t(e,t){return Math.abs(e-t)<=1e-6}var r=function(e){for(var r=1;!t(Math.round(e*r)/r,e);)r*=10;return r}(e),n=e*r,a=Math.abs(function e(r,n){return t(n,0)?r:e(n,r%n)}(n,r));return[Math.round(n/a),Math.round(r/a)]}(i);if(o[1]>=100)t.text=be(l.deg2rad(t.x),e,a,n);else{var s=t.x<0;1===o[1]?1===o[0]?t.text="π":t.text=o[0]+"π":t.text=["",o[0],"","⁄","",o[1],"","π"].join(""),s&&(t.text=C+t.text)}}}}(e,o,r,c,v):function(e,t,r,n,a){"never"===a?a="":"all"===e.showexponent&&Math.abs(t.x/e.dtick)<1e-6&&(a="hide"),t.text=be(t.x,e,a,n)}(e,o,0,c,v),n||(e.tickprefix&&!p(e.showtickprefix)&&(o.text=e.tickprefix+o.text),e.ticksuffix&&!p(e.showticksuffix)&&(o.text+=e.ticksuffix)),e.labelalias&&e.labelalias.hasOwnProperty(o.text)){var g=e.labelalias[o.text];"string"==typeof g&&(o.text=g)}if("boundaries"===e.tickson||e.showdividers){var y=function(t){var r=e.l2p(t);return r>=0&&r<=e._length?t:null};o.xbnd=[y(o.x-.5),y(o.x+e.dtick-.5)]}return o},U.hoverLabelText=function(e,t,r){r&&(e=l.extendFlat({},e,{hoverformat:r}));var n=l.isArrayOrTypedArray(t)?t[0]:t,a=l.isArrayOrTypedArray(t)?t[1]:void 0;if(void 0!==a&&a!==n)return U.hoverLabelText(e,n,r)+" - "+U.hoverLabelText(e,a,r);var i="log"===e.type&&n<=0,o=U.tickText(e,e.c2l(i?-n:n),"hover").text;return i?0===n?"0":C+o:o};var ye=["f","p","n","μ","m","","k","M","G","T"];function me(e){return"SI"===e||"B"===e}function xe(e){return e>14||e<-15}function be(e,t,r,n){var i=e<0,o=t._tickround,s=r||t.exponentformat||"B",c=t._tickexponent,u=U.getTickFormat(t),f=t.separatethousands;if(n){var d={exponentformat:s,minexponent:t.minexponent,dtick:"none"===t.showexponent?t.dtick:a(e)&&Math.abs(e)||1,range:"none"===t.showexponent?t.range.map(t.r2d):[0,e||1]};ve(d),o=(Number(d._tickround)||0)+4,c=d._tickexponent,t.hoverformat&&(u=t.hoverformat)}if(u)return t._numFormat(u)(e).replace(/-/g,C);var h,p=Math.pow(10,-o)/2;if("none"===s&&(c=0),(e=Math.abs(e))"+h+"":"B"===s&&9===c?e+="B":me(s)&&(e+=ye[c/3+5])),i?C+e:e}function _e(e,t){if(e){var r=Object.keys(E).reduce((function(e,r){return-1!==t.indexOf(r)&&E[r].forEach((function(t){e[t]=1})),e}),{});Object.keys(e).forEach((function(t){r[t]||(1===t.length?e[t]=0:delete e[t])}))}}function we(e,t){for(var r=[],n={},a=0;a1&&r=a.min&&e=0,i=u(e,t[1])<=0;return(r||a)&&(n||i)}if(e.tickformatstops&&e.tickformatstops.length>0)switch(e.type){case"date":case"linear":for(t=0;t=o(a)))){r=n;break}break;case"log":for(t=0;t=0&&a.unshift(a.splice(n,1).shift())}}));var o={false:{left:0,right:0}};return l.syncOrAsync(a.map((function(t){return function(){if(t){var n=U.getFromId(e,t);r||(r={}),r.axShifts=o,r.overlayingShiftedAx=i;var a=U.drawOne(e,n,r);return n._shiftPusher&&Ee(n,n._fullDepth||0,o,!0),n._r=n.range.slice(),n._rl=l.simpleMap(n._r,n.r2l),a}}})))},U.drawOne=function(e,t,r){var n,a,s,c=(r=r||{}).axShifts||{},h=r.overlayingShiftedAx||[];t.setScale();var p=e._fullLayout,v=t._id,g=v.charAt(0),y=U.counterLetter(v),m=p._plots[t._mainSubplot];if(m){if(t._shiftPusher=t.autoshift||-1!==h.indexOf(t._id)||-1!==h.indexOf(t.overlaying),t._shiftPusher&"free"===t.anchor){var x=t.linewidth/2||0;"inside"===t.ticks&&(x+=t.ticklen),Ee(t,x,c,!0),Ee(t,t.shift||0,c,!1)}!0===r.skipTitle&&void 0!==t._shift||(t._shift=function(e,t){return e.autoshift?t[e.overlaying][e.side]:e.shift||0}(t,c));var b=m[g+"axislayer"],_=t._mainLinePosition,w=_+=t._shift,T=t._mainMirrorPosition,M=t._vals=U.calcTicks(t),k=[t.mirror,w,T].join("_");for(n=0;n0?r.bottom-u:0,f))));var d=0,h=0;if(t._shiftPusher&&(d=Math.max(f,r.height>0?"l"===s?u-r.left:r.right-u:0),t.title.text!==p._dfltTitle[g]&&(h=(t._titleStandoff||0)+(t._titleScoot||0),"l"===s&&(h+=ke(t))),t._fullDepth=Math.max(d,h)),t.automargin){n={x:0,y:0,r:0,l:0,t:0,b:0};var v=[0,1],m="number"==typeof t._shift?t._shift:0;if("x"===g){if("b"===s?n[s]=t._depth:(n[s]=t._depth=Math.max(r.width>0?u-r.top:0,f),v.reverse()),r.width>0){var x=r.right-(t._offset+t._length);x>0&&(n.xr=1,n.r=x);var b=t._offset-r.left;b>0&&(n.xl=0,n.l=b)}}else if("l"===s?(t._depth=Math.max(r.height>0?u-r.left:0,f),n[s]=t._depth-m):(t._depth=Math.max(r.height>0?r.right-u:0,f),n[s]=t._depth+m,v.reverse()),r.height>0){var _=r.bottom-(t._offset+t._length);_>0&&(n.yb=0,n.b=_);var w=t._offset-r.top;w>0&&(n.yt=1,n.t=w)}n[y]="free"===t.anchor?t.position:t._anchorAxis.domain[v[0]],t.title.text!==p._dfltTitle[g]&&(n[s]+=ke(t)+(t.title.standoff||0)),t.mirror&&"free"!==t.anchor&&((a={x:0,y:0,r:0,l:0,t:0,b:0})[c]=t.linewidth,t.mirror&&!0!==t.mirror&&(a[c]+=f),!0===t.mirror||"ticks"===t.mirror?a[y]=t._anchorAxis.domain[v[1]]:"all"!==t.mirror&&"allticks"!==t.mirror||(a[y]=[t._counterDomainMin,t._counterDomainMax][v[1]]))}se&&(l=o.getComponentMethod("rangeslider","autoMarginOpts")(e,t)),"string"==typeof t.automargin&&(_e(n,t.automargin),_e(a,t.automargin)),i.autoMargin(e,Se(t),n),i.autoMargin(e,De(t),a),i.autoMargin(e,Oe(t),l)})),l.syncOrAsync(oe)}}function ce(e){var r=v+(e||"tick");return A[r]||(A[r]=function(e,t){var r,n,a,i;return e._selections[t].size()?(r=1/0,n=-1/0,a=1/0,i=-1/0,e._selections[t].each((function(){var e=Le(this),t=d.bBox(e.node().parentNode);r=Math.min(r,t.top),n=Math.max(n,t.bottom),a=Math.min(a,t.left),i=Math.max(i,t.right)}))):(r=0,n=0,a=0,i=0),{top:r,bottom:n,left:a,right:i,height:n-r,width:i-a}}(t,r)),A[r]}},U.getTickSigns=function(e,t){var r=e._id.charAt(0),n={x:"top",y:"right"}[r],a=e.side===n?1:-1,i=[-1,1,a,-a];return"inside"!==(t?(e.minor||{}).ticks:e.ticks)==("x"===r)&&(i=i.map((function(e){return-e}))),e.side&&i.push({l:-1,t:-1,r:1,b:1}[e.side.charAt(0)]),i},U.makeTransTickFn=function(e){return"x"===e._id.charAt(0)?function(t){return s(e._offset+e.l2p(t.x),0)}:function(t){return s(0,e._offset+e.l2p(t.x))}},U.makeTransTickLabelFn=function(e){var t=function(e){var t=e.ticklabelposition||"",r=function(e){return-1!==t.indexOf(e)},n=r("top"),a=r("left"),i=r("right"),o=r("bottom"),l=r("inside"),s=o||a||n||i;if(!s&&!l)return[0,0];var c=e.side,u=s?(e.tickwidth||0)/2:0,f=3,d=e.tickfont?e.tickfont.size:12;return(o||n)&&(u+=d*j,f+=(e.linewidth||0)/2),(a||i)&&(u+=(e.linewidth||0)/2,f+=3),l&&"top"===c&&(f-=d*(1-j)),(a||n)&&(u=-u),"bottom"!==c&&"right"!==c||(f=-f),[s?u:0,l?f:0]}(e),r=t[0],n=t[1];return"x"===e._id.charAt(0)?function(t){return s(r+e._offset+e.l2p(Te(t)),n)}:function(t){return s(n,r+e._offset+e.l2p(Te(t)))}},U.makeTickPath=function(e,t,r,n){n||(n={});var a=n.minor;if(a&&!e.minor)return"";var i=void 0!==n.len?n.len:a?e.minor.ticklen:e.ticklen,o=e._id.charAt(0),l=(e.linewidth||1)/2;return"x"===o?"M0,"+(t+l*r)+"v"+i*r:"M"+(t+l*r)+",0h"+i*r},U.makeLabelFns=function(e,t,r){var n=e.ticklabelposition||"",i=function(e){return-1!==n.indexOf(e)},o=i("top"),s=i("left"),c=i("right"),u=i("bottom")||s||o||c,f=i("inside"),d="inside"===n&&"inside"===e.ticks||!f&&"outside"===e.ticks&&"boundaries"!==e.tickson,h=0,p=0,v=d?e.ticklen:0;if(f?v*=-1:u&&(v=0),d&&(h+=v,r)){var g=l.deg2rad(r);h=v*Math.cos(g)+1,p=v*Math.sin(g)}e.showticklabels&&(d||e.showline)&&(h+=.2*e.tickfont.size);var y,m,x,b,_,w={labelStandoff:h+=(e.linewidth||1)/2*(f?-1:1),labelShift:p},T=0,M=e.side,k=e._id.charAt(0),A=e.tickangle;if("x"===k)b=(_=!f&&"bottom"===M||f&&"top"===M)?1:-1,f&&(b*=-1),y=p*b,m=t+h*b,x=_?1:-.2,90===Math.abs(A)&&(f?x+=B:x=-90===A&&"bottom"===M?j:90===A&&"top"===M?B:.5,T=B/2*(A/90)),w.xFn=function(e){return e.dx+y+T*e.fontSize},w.yFn=function(e){return e.dy+m+e.fontSize*x},w.anchorFn=function(e,t){if(u){if(s)return"end";if(c)return"start"}return a(t)&&0!==t&&180!==t?t*b<0!==f?"end":"start":"middle"},w.heightFn=function(t,r,n){return r<-60||r>60?-.5*n:"top"===e.side!==f?-n:0};else if("y"===k){if(b=(_=!f&&"left"===M||f&&"right"===M)?1:-1,f&&(b*=-1),y=h,m=p*b,x=0,f||90!==Math.abs(A)||(x=-90===A&&"left"===M||90===A&&"right"===M?j:.5),f){var L=a(A)?+A:0;if(0!==L){var S=l.deg2rad(L);T=Math.abs(Math.sin(S))*j*b,x=0}}w.xFn=function(e){return e.dx+t-(y+e.fontSize*x)*b+T*e.fontSize},w.yFn=function(e){return e.dy+m+e.fontSize*B},w.anchorFn=function(e,t){return a(t)&&90===Math.abs(t)?"middle":_?"end":"start"},w.heightFn=function(t,r,n){return"right"===e.side&&(r*=-1),r<-30?-n:r<30?-.5*n:0}}return w},U.drawTicks=function(e,t,r){r=r||{};var a=t._id+"tick",i=[].concat(t.minor&&t.minor.ticks?r.vals.filter((function(e){return e.minor&&!e.noTick})):[]).concat(t.ticks?r.vals.filter((function(e){return!e.minor&&!e.noTick})):[]),o=r.layer.selectAll("path."+a).data(i,Me);o.exit().remove(),o.enter().append("path").classed(a,1).classed("ticks",1).classed("crisp",!1!==r.crisp).each((function(e){return f.stroke(n.select(this),e.minor?t.minor.tickcolor:t.tickcolor)})).style("stroke-width",(function(r){return d.crispRound(e,r.minor?t.minor.tickwidth:t.tickwidth,1)+"px"})).attr("d",r.path).style("display",null),Fe(t,[N]),o.attr("transform",r.transFn)},U.drawGrid=function(e,t,r){if(r=r||{},"sync"!==t.tickmode){var a=t._id+"grid",i=t.minor&&t.minor.showgrid,o=i?r.vals.filter((function(e){return e.minor})):[],l=t.showgrid?r.vals.filter((function(e){return!e.minor})):[],s=r.counterAxis;if(s&&U.shouldShowZeroLine(e,t,s))for(var c="array"===t.tickmode,u=0;u=0;y--){var m=y?v:g;if(m){var x=m.selectAll("path."+a).data(y?l:o,Me);x.exit().remove(),x.enter().append("path").classed(a,1).classed("crisp",!1!==r.crisp),x.attr("transform",r.transFn).attr("d",r.path).each((function(e){return f.stroke(n.select(this),e.minor?t.minor.gridcolor:t.gridcolor||"#ddd")})).style("stroke-dasharray",(function(e){return d.dashStyle(e.minor?t.minor.griddash:t.griddash,e.minor?t.minor.gridwidth:t.gridwidth)})).style("stroke-width",(function(e){return(e.minor?p:t._gw)+"px"})).style("display",null),"function"==typeof r.path&&x.attr("d",r.path)}}Fe(t,[R,z])}},U.drawZeroLine=function(e,t,r){r=r||r;var n=t._id+"zl",a=U.shouldShowZeroLine(e,t,r.counterAxis),i=r.layer.selectAll("path."+n).data(a?[{x:0,id:t._id}]:[]);i.exit().remove(),i.enter().append("path").classed(n,1).classed("zl",1).classed("crisp",!1!==r.crisp).each((function(){r.layer.selectAll("path").sort((function(e,t){return Z(e.id,t.id)}))})),i.attr("transform",r.transFn).attr("d",r.path).call(f.stroke,t.zerolinecolor||f.defaultLine).style("stroke-width",d.crispRound(e,t.zerolinewidth,t._gw||1)+"px").style("display",null),Fe(t,[I])},U.drawLabels=function(e,t,r){r=r||{};var i=e._fullLayout,o=t._id,u=r.cls||o+"tick",f=r.vals.filter((function(e){return e.text})),h=r.labelFns,p=r.secondary?0:t.tickangle,v=(t._prevTickAngles||{})[u],g=r.layer.selectAll("g."+u).data(t.showticklabels?f:[],Me),y=[];function m(e,i){e.each((function(e){var o=n.select(this),l=o.select(".text-math-group"),u=h.anchorFn(e,i),f=r.transFn.call(o.node(),e)+(a(i)&&0!=+i?" rotate("+i+","+h.xFn(e)+","+(h.yFn(e)-e.fontSize/2)+")":""),p=c.lineCount(o),v=Y*e.fontSize,g=h.heightFn(e,a(i)?+i:0,(p-1)*v);if(g&&(f+=s(0,g)),l.empty()){var y=o.select("text");y.attr({transform:f,"text-anchor":u}),y.style("opacity",1),t._adjustTickLabelsOverflow&&t._adjustTickLabelsOverflow()}else{var m=d.bBox(l.node()).width*{end:-.5,start:.5}[u];l.attr("transform",f+s(m,0))}}))}g.enter().append("g").classed(u,1).append("text").attr("text-anchor","middle").each((function(t){var r=n.select(this),a=e._promises.length;r.call(c.positionText,h.xFn(t),h.yFn(t)).call(d.font,t.font,t.fontSize,t.fontColor).text(t.text).call(c.convertToTspans,e),e._promises[a]?y.push(e._promises.pop().then((function(){m(r,p)}))):m(r,p)})),Fe(t,[F]),g.exit().remove(),r.repositionOnUpdate&&g.each((function(e){n.select(this).select("text").call(c.positionText,h.xFn(e),h.yFn(e))})),t._adjustTickLabelsOverflow=function(){var r=t.ticklabeloverflow;if(r&&"allow"!==r){var a=-1!==r.indexOf("hide"),o="x"===t._id.charAt(0),s=0,c=o?e._fullLayout.width:e._fullLayout.height;if(-1!==r.indexOf("domain")){var u=l.simpleMap(t.range,t.r2l);s=t.l2p(u[0])+t._offset,c=t.l2p(u[1])+t._offset}var f=Math.min(s,c),h=Math.max(s,c),p=t.side,v=1/0,y=-1/0;for(var m in g.each((function(e){var r=n.select(this);if(r.select(".text-math-group").empty()){var i=d.bBox(r.node()),l=0;o?(i.right>h||i.lefth||i.top+(t.tickangle?0:e.fontSize/4)t["_visibleLabelMin_"+r._id]?s.style("display","none"):"tick"!==e.K||a||s.style("display",null)}))}))}))}))},m(g,v+1?v:p);var x=null;t._selections&&(t._selections[u]=g);var b=[function(){return y.length&&Promise.all(y)}];t.automargin&&i._redrawFromAutoMarginCount&&90===v?(x=v,b.push((function(){m(g,v)}))):b.push((function(){if(m(g,p),f.length&&t.autotickangles&&("log"!==t.type||"D"!==String(t.dtick).charAt(0))){x=t.autotickangles[0];var e,n=0,a=[],i=1;if(g.each((function(e){n=Math.max(n,e.fontSize);var r=t.l2p(e.x),o=Le(this),l=d.bBox(o.node());i=Math.max(i,c.lineCount(o)),a.push({top:0,bottom:10,height:10,left:r-l.width/2,right:r+l.width/2+2,width:l.width+2})})),"boundaries"!==t.tickson&&!t.showdividers||r.secondary){var o=f.length,s=Math.abs((f[o-1].x-f[0].x)*t._m)/(o-1),u=t.ticklabelposition||"",h=function(e){return-1!==u.indexOf(e)},v=h("top"),y=h("left"),b=h("right"),_=h("bottom")||y||v||b?(t.tickwidth||0)+6:0,w=s,T=1.25*n*i,M=w/Math.sqrt(Math.pow(w,2)+Math.pow(T,2)),k=t.autotickangles.map((function(e){return e*Math.PI/180})),A=k.find((function(e){return Math.abs(Math.cos(e))<=M}));void 0===A&&(A=k.reduce((function(e,t){return Math.abs(Math.cos(e))0?M*=1+M/(C-=M):M=0,"y"!==t._id.charAt(0)&&(M=-M),S[A]=w.p2d(w.d2p(w.range[A])+k*M),"min"===w.autorange||"max reversed"===w.autorange?(S[0]=null,w._rangeInitial0=void 0,w._rangeInitial1=void 0):"max"!==w.autorange&&"min reversed"!==w.autorange||(S[1]=null,w._rangeInitial0=void 0,w._rangeInitial1=void 0),i._insideTickLabelsUpdaterange[w._name+".range"]=S}var P=l.syncOrAsync(b);return P&&P.then&&e._promises.push(P),P},U.getPxPosition=function(e,t){var r,n=e._fullLayout._size,a=t._id.charAt(0),i=t.side;return"free"!==t.anchor?r=t._anchorAxis:"x"===a?r={_offset:n.t+(1-(t.position||0))*n.h,_length:0}:"y"===a&&(r={_offset:n.l+(t.position||0)*n.w+t._shift,_length:0}),"top"===i||"left"===i?r._offset:"bottom"===i||"right"===i?r._offset+r._length:void 0},U.shouldShowZeroLine=function(e,t,r){var n=l.simpleMap(t.range,t.r2l);return n[0]*n[1]<=0&&t.zeroline&&("linear"===t.type||"-"===t.type)&&!(t.rangebreaks&&t.maskBreaks(0)===P)&&(Ae(t,0)||!function(e,t,r,n){var a=r._mainAxis;if(a){var i=e._fullLayout,o=t._id.charAt(0),l=U.counterLetter(t._id),s=t._offset+(Math.abs(n[0])1)for(n=1;n2*o}(a,t))return"date";var g="strict"!==r.autotypenumbers;return function(e,t){for(var r=e.length,n=f(r),a=0,o=0,l={},u=0;u2*a}(a,g)?"category":function(e,t){for(var r=e.length,n=0;n=2){var l,c,u="";if(2===o.length)for(l=0;l<2;l++)if(c=_(o[l])){u=y;break}var f=a("pattern",u);if(f===y)for(l=0;l<2;l++)(c=_(o[l]))&&(t.bounds[l]=o[l]=c-1);if(f)for(l=0;l<2;l++)switch(c=o[l],f){case y:if(!n(c))return void(t.enabled=!1);if((c=+c)!==Math.floor(c)||c<0||c>=7)return void(t.enabled=!1);t.bounds[l]=o[l]=c;break;case m:if(!n(c))return void(t.enabled=!1);if((c=+c)<0||c>24)return void(t.enabled=!1);t.bounds[l]=o[l]=c}if(!1===r.autorange){var d=r.range;if(d[0]d[1])return void(t.enabled=!1)}else if(o[0]>d[0]&&o[1]n?1:-1:+(e.substr(1)||1)-+(t.substr(1)||1)},t.ref2id=function(e){return!!/^[xyz]/.test(e)&&e.split(" ")[0]},t.isLinked=function(e,t){return i(t,e._axisMatchGroups)||i(t,e._axisConstraintGroups)}},4796:function(e,t,r){"use strict";var n=r(8116).isTypedArraySpec;e.exports=function(e,t,r,a){if("category"===t.type){var i,o=e.categoryarray,l=Array.isArray(o)&&o.length>0||n(o);l&&(i="array");var s,c=r("categoryorder",i);"array"===c&&(s=r("categoryarray")),l||"array"!==c||(c=t.categoryorder="trace"),"trace"===c?t._initialCategories=[]:"array"===c?t._initialCategories=s.slice():(s=function(e,t){var r,n,a,i=t.dataAttr||e._id.charAt(0),o={};if(t.axData)r=t.axData;else for(r=[],n=0;nn?a.substr(n):i.substr(r))+o:a+i+e*t:o}function g(e,t){for(var r=t._size,n=r.h/r.w,a={},i=Object.keys(e),o=0;oc*x)||T)for(r=0;rI&&FC&&(C=F);d/=(C-O)/(2*P),O=s.l2r(O),C=s.l2r(C),s.range=s._input.range=L=0?Math.min(e,.9):1/(1/Math.max(e,-.3)+3.222))}function H(e,t,r,n,a){return e.append("path").attr("class","zoombox").style({fill:t>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("transform",c(r,n)).attr("d",a+"Z")}function B(e,t,r){return e.append("path").attr("class","zoombox-corners").style({fill:f.background,stroke:f.defaultLine,"stroke-width":1,opacity:0}).attr("transform",c(t,r)).attr("d","M0,0Z")}function j(e,t,r,n,a,i){e.attr("d",n+"M"+r.l+","+r.t+"v"+r.h+"h"+r.w+"v-"+r.h+"h-"+r.w+"Z"),Y(e,t,a,i)}function Y(e,t,r,n){r||(e.transition().style("fill",n>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),t.transition().style("opacity",1).duration(200))}function V(e){n.select(e).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}function U(e){P&&e.data&&e._context.showTips&&(a.notifier(a._(e,"Double-click to zoom back out"),"long"),P=!1)}function q(e){var t=Math.floor(Math.min(e.b-e.t,e.r-e.l,C)/2);return"M"+(e.l-3.5)+","+(e.t-.5+t)+"h3v"+-t+"h"+t+"v-3h-"+(t+3)+"ZM"+(e.r+3.5)+","+(e.t-.5+t)+"h-3v"+-t+"h"+-t+"v-3h"+(t+3)+"ZM"+(e.r+3.5)+","+(e.b+.5-t)+"h-3v"+t+"h"+-t+"v3h"+(t+3)+"ZM"+(e.l-3.5)+","+(e.b+.5-t)+"h3v"+t+"h"+t+"v3h-"+(t+3)+"Z"}function G(e,t,r,n,i){for(var o,l,s,c,u=!1,f={},d={},h=(i||{}).xaHash,p=(i||{}).yaHash,v=0;v=0)a._fullLayout._deactivateShape(a);else{var o=a._fullLayout.clickmode;if(V(a),2!==e||ye||Ue(),ge)o.indexOf("select")>-1&&L(r,a,J,K,t.id,Ce),o.indexOf("event")>-1&&h.click(a,r,t.id);else if(1===e&&ye){var l=v?I:P,c="s"===v||"w"===y?0:1,f=l._name+".range["+c+"]",d=function(e,t){var r,n=e.range[t],a=Math.abs(n-e.range[1-t]);return"date"===e.type?n:"log"===e.type?(r=Math.ceil(Math.max(0,-Math.log(a)/Math.LN10))+3,i("."+r+"g")(Math.pow(10,n))):(r=Math.floor(Math.log(Math.abs(n))/Math.LN10)-Math.floor(Math.log(a)/Math.LN10)+4,i("."+String(r)+"g")(n))}(l,c),p="left",g="middle";if(l.fixedrange)return;v?(g="n"===v?"top":"bottom","right"===l.side&&(p="right")):"e"===y&&(p="right"),a._context.showAxisRangeEntryBoxes&&n.select(be).call(u.makeEditable,{gd:a,immediate:!0,background:a._fullLayout.paper_bgcolor,text:String(d),fill:l.tickfont?l.tickfont.color:"#444",horizontalAlign:p,verticalAlign:g}).on("edit",(function(e){var t=l.d2r(e);void 0!==t&&s.call("_guiRelayout",a,f,t)}))}}}function Re(t,r){if(e._transitioningWithDuration)return!1;var n=Math.max(0,Math.min(ee,he*t+_e)),a=Math.max(0,Math.min(te,pe*r+we)),i=Math.abs(n-_e),o=Math.abs(a-we);function l(){Le="",Te.r=Te.l,Te.t=Te.b,De.attr("d","M0,0Z")}if(Te.l=Math.min(_e,n),Te.r=Math.max(_e,n),Te.t=Math.min(we,a),Te.b=Math.max(we,a),re.isSubplotConstrained)i>C||o>C?(Le="xy",i/ee>o/te?(o=i*te/ee,we>a?Te.t=we-o:Te.b=we+o):(i=o*ee/te,_e>n?Te.l=_e-i:Te.r=_e+i),De.attr("d",q(Te))):l();else if(ne.isSubplotConstrained)if(i>C||o>C){Le="xy";var s=Math.min(Te.l/ee,(te-Te.b)/te),c=Math.max(Te.r/ee,(te-Te.t)/te);Te.l=s*ee,Te.r=c*ee,Te.b=(1-s)*te,Te.t=(1-c)*te,De.attr("d",q(Te))}else l();else!ie||o0){var u;if(ne.isSubplotConstrained||!ae&&1===ie.length){for(u=0;u1&&(void 0!==i.maxallowed&&le===(i.range[0]1&&(void 0!==o.maxallowed&&se===(o.range[0]b[1]-1/4096&&(t.domain=l),a.noneOrAll(e.domain,t.domain,l),"sync"===t.tickmode&&(t.tickmode="auto")}return r("layer"),t}},2568:function(e,t,r){"use strict";var n=r(5024);e.exports=function(e,t,r,a,i){i||(i={});var o=i.tickSuffixDflt,l=n(e);r("tickprefix")&&r("showtickprefix",l),r("ticksuffix",o)&&r("showticksuffix",l)}},6312:function(e,t,r){"use strict";var n=r(6808);e.exports=function(e,t,r,a){var i=t._template||{},o=t.type||i.type||"-";r("minallowed"),r("maxallowed");var l,s=r("range");s||a.noInsiderange||"log"===o||(!(l=r("insiderange"))||null!==l[0]&&null!==l[1]||(t.insiderange=!1,l=void 0),l&&(s=r("range",l)));var c,u=t.getAutorangeDflt(s,a),f=r("autorange",u);!s||(null!==s[0]||null!==s[1])&&(null!==s[0]&&null!==s[1]||"reversed"!==f&&!0!==f)&&(null===s[0]||"min"!==f&&"max reversed"!==f)&&(null===s[1]||"max"!==f&&"min reversed"!==f)||(s=void 0,delete t.range,t.autorange=!0,c=!0),c||(f=r("autorange",u=t.getAutorangeDflt(s,a))),f&&(n(r,f,s),"linear"!==o&&"-"!==o||r("rangemode")),t.cleanRange()}},1160:function(e,t,r){"use strict";var n=r(4284).FROM_BL;e.exports=function(e,t,r){void 0===r&&(r=n[e.constraintoward||"center"]);var a=[e.r2l(e.range[0]),e.r2l(e.range[1])],i=a[0]+(a[1]-a[0])*r;e.range=e._input.range=[e.l2r(i+(a[0]-i)*t),e.l2r(i+(a[1]-i)*t)],e.setScale()}},8344:function(e,t,r){"use strict";var n=r(3428),a=r(4336).E9,i=r(3400),o=i.numberFormat,l=r(8248),s=i.cleanNumber,c=i.ms2DateTime,u=i.dateTime2ms,f=i.ensureNumber,d=i.isArrayOrTypedArray,h=r(9032),p=h.FP_SAFE,v=h.BADNUM,g=h.LOG_CLIP,y=h.ONEWEEK,m=h.ONEDAY,x=h.ONEHOUR,b=h.ONEMIN,_=h.ONESEC,w=r(9811),T=r(3816),M=T.HOUR_PATTERN,k=T.WEEKDAY_PATTERN;function A(e){return Math.pow(10,e)}function L(e){return null!=e}e.exports=function(e,t){t=t||{};var r=e._id||"x",h=r.charAt(0);function S(t,r){if(t>0)return Math.log(t)/Math.LN10;if(t<=0&&r&&e.range&&2===e.range.length){var n=e.range[0],a=e.range[1];return.5*(n+a-2*g*Math.abs(n-a))}return v}function D(t,r,n,a){if((a||{}).msUTC&&l(t))return+t;var o=u(t,n||e.calendar);if(o===v){if(!l(t))return v;t=+t;var s=Math.floor(10*i.mod(t+.05,1)),c=Math.round(t-s/10);o=u(new Date(c))+s/10}return o}function O(t,r,n){return c(t,r,n||e.calendar)}function C(t){return e._categories[Math.round(t)]}function P(t){if(L(t)){if(void 0===e._categoriesMap&&(e._categoriesMap={}),void 0!==e._categoriesMap[t])return e._categoriesMap[t];e._categories.push("number"==typeof t?String(t):t);var r=e._categories.length-1;return e._categoriesMap[t]=r,r}return v}function I(t){if(e._categoriesMap)return e._categoriesMap[t]}function R(e){var t=I(e);return void 0!==t?t:l(e)?+e:void 0}function z(e){return l(e)?+e:I(e)}function N(e,t,r){return n.round(r+t*e,2)}function F(e,t,r){return(e-r)/t}var E=function(t){return l(t)?N(t,e._m,e._b):v},H=function(t){return F(t,e._m,e._b)};if(e.rangebreaks){var B="y"===h;E=function(t){if(!l(t))return v;var r=e._rangebreaks.length;if(!r)return N(t,e._m,e._b);var n=B;e.range[0]>e.range[1]&&(n=!n);for(var a=n?-1:1,i=a*t,o=0,s=0;su)){o=i<(c+u)/2?s:s+1;break}o=s+1}var f=e._B[o]||0;return isFinite(f)?N(t,e._m2,f):0},H=function(t){var r=e._rangebreaks.length;if(!r)return F(t,e._m,e._b);for(var n=0,a=0;ae._rangebreaks[a].pmax&&(n=a+1);return F(t,e._m2,e._B[n])}}e.c2l="log"===e.type?S:f,e.l2c="log"===e.type?A:f,e.l2p=E,e.p2l=H,e.c2p="log"===e.type?function(e,t){return E(S(e,t))}:E,e.p2c="log"===e.type?function(e){return A(H(e))}:H,-1!==["linear","-"].indexOf(e.type)?(e.d2r=e.r2d=e.d2c=e.r2c=e.d2l=e.r2l=s,e.c2d=e.c2r=e.l2d=e.l2r=f,e.d2p=e.r2p=function(t){return e.l2p(s(t))},e.p2d=e.p2r=H,e.cleanPos=f):"log"===e.type?(e.d2r=e.d2l=function(e,t){return S(s(e),t)},e.r2d=e.r2c=function(e){return A(s(e))},e.d2c=e.r2l=s,e.c2d=e.l2r=f,e.c2r=S,e.l2d=A,e.d2p=function(t,r){return e.l2p(e.d2r(t,r))},e.p2d=function(e){return A(H(e))},e.r2p=function(t){return e.l2p(s(t))},e.p2r=H,e.cleanPos=f):"date"===e.type?(e.d2r=e.r2d=i.identity,e.d2c=e.r2c=e.d2l=e.r2l=D,e.c2d=e.c2r=e.l2d=e.l2r=O,e.d2p=e.r2p=function(t,r,n){return e.l2p(D(t,0,n))},e.p2d=e.p2r=function(e,t,r){return O(H(e),t,r)},e.cleanPos=function(t){return i.cleanDate(t,v,e.calendar)}):"category"===e.type?(e.d2c=e.d2l=P,e.r2d=e.c2d=e.l2d=C,e.d2r=e.d2l_noadd=R,e.r2c=function(t){var r=z(t);return void 0!==r?r:e.fraction2r(.5)},e.l2r=e.c2r=f,e.r2l=z,e.d2p=function(t){return e.l2p(e.r2c(t))},e.p2d=function(e){return C(H(e))},e.r2p=e.d2p,e.p2r=H,e.cleanPos=function(e){return"string"==typeof e&&""!==e?e:f(e)}):"multicategory"===e.type&&(e.r2d=e.c2d=e.l2d=C,e.d2r=e.d2l_noadd=R,e.r2c=function(t){var r=R(t);return void 0!==r?r:e.fraction2r(.5)},e.r2c_just_indices=I,e.l2r=e.c2r=f,e.r2l=R,e.d2p=function(t){return e.l2p(e.r2c(t))},e.p2d=function(e){return C(H(e))},e.r2p=e.d2p,e.p2r=H,e.cleanPos=function(e){return Array.isArray(e)||"string"==typeof e&&""!==e?e:f(e)},e.setupMultiCategory=function(n){var a,o,l=e._traceIndices,s=e._matchGroup;if(s&&0===e._categories.length)for(var c in s)if(c!==r){var u=t[w.id2name(c)];l=l.concat(u._traceIndices)}var f=[[0,{}],[0,{}]],p=[];for(a=0;as[1]&&(a[l?0:1]=n),a[0]===a[1]){var c=e.l2r(r),u=e.l2r(n);if(void 0!==r){var f=c+1;void 0!==n&&(f=Math.min(f,u)),a[l?1:0]=f}if(void 0!==n){var d=u+1;void 0!==r&&(d=Math.max(d,c)),a[l?0:1]=d}}}},e.cleanRange=function(t,r){e._cleanRange(t,r),e.limitRange(t)},e._cleanRange=function(t,r){r||(r={}),t||(t="range");var n,a,o=i.nestedProperty(e,t).get();if(a=(a="date"===e.type?i.dfltRange(e.calendar):"y"===h?T.DFLTRANGEY:"realaxis"===e._name?[0,1]:r.dfltRange||T.DFLTRANGEX).slice(),"tozero"!==e.rangemode&&"nonnegative"!==e.rangemode||(a[0]=0),o&&2===o.length){var s=null===o[0],c=null===o[1];for("date"!==e.type||e.autorange||(o[0]=i.cleanDate(o[0],v,e.calendar),o[1]=i.cleanDate(o[1],v,e.calendar)),n=0;n<2;n++)if("date"===e.type){if(!i.isDateTime(o[n],e.calendar)){e[t]=a;break}if(e.r2l(o[0])===e.r2l(o[1])){var u=i.constrain(e.r2l(o[0]),i.MIN_MS+1e3,i.MAX_MS-1e3);o[0]=e.l2r(u-1e3),o[1]=e.l2r(u+1e3);break}}else{if(!l(o[n])){if(s||c||!l(o[1-n])){e[t]=a;break}o[n]=o[1-n]*(n?10:.1)}if(o[n]<-p?o[n]=-p:o[n]>p&&(o[n]=p),o[0]===o[1]){var f=Math.max(1,Math.abs(1e-6*o[0]));o[0]-=f,o[1]+=f}}}else i.nestedProperty(e,t).set(a)},e.setScale=function(r){var n=t._size;if(e.overlaying){var a=w.getFromId({_fullLayout:t},e.overlaying);e.domain=a.domain}var i=r&&e._r?"_r":"range",o=e.calendar;e.cleanRange(i);var l,s,c=e.r2l(e[i][0],o),u=e.r2l(e[i][1],o),f="y"===h;if(f?(e._offset=n.t+(1-e.domain[1])*n.h,e._length=n.h*(e.domain[1]-e.domain[0]),e._m=e._length/(c-u),e._b=-e._m*u):(e._offset=n.l+e.domain[0]*n.w,e._length=n.w*(e.domain[1]-e.domain[0]),e._m=e._length/(u-c),e._b=-e._m*c),e._rangebreaks=[],e._lBreaks=0,e._m2=0,e._B=[],e.rangebreaks&&(e._rangebreaks=e.locateBreaks(Math.min(c,u),Math.max(c,u)),e._rangebreaks.length)){for(l=0;lu&&(d=!d),d&&e._rangebreaks.reverse();var p=d?-1:1;for(e._m2=p*e._length/(Math.abs(u-c)-e._lBreaks),e._B.push(-e._m2*(f?u:c)),l=0;la&&(a+=7,oa&&(a+=24,o=n&&o=n&&t=l.min&&(el.max&&(l.max=n),a=!1)}a&&c.push({min:e,max:n})}};for(n=0;nr.duration?(function(){for(var r={},n=0;n rect").call(o.setTranslate,0,0).call(o.setScale,1,1),e.plot.call(o.setTranslate,t._offset,r._offset).call(o.setScale,1,1);var n=e.plot.selectAll(".scatterlayer .trace");n.selectAll(".point").call(o.setPointGroupScale,1,1),n.selectAll(".textpoint").call(o.setTextPointsScale,1,1),n.call(o.hideOutsideRangePoints,e)}function g(t,r){var n=t.plotinfo,a=n.xaxis,s=n.yaxis,c=a._length,u=s._length,f=!!t.xr1,d=!!t.yr1,h=[];if(f){var p=i.simpleMap(t.xr0,a.r2l),v=i.simpleMap(t.xr1,a.r2l),g=p[1]-p[0],y=v[1]-v[0];h[0]=(p[0]*(1-r)+r*v[0]-p[0])/(p[1]-p[0])*c,h[2]=c*(1-r+r*y/g),a.range[0]=a.l2r(p[0]*(1-r)+r*v[0]),a.range[1]=a.l2r(p[1]*(1-r)+r*v[1])}else h[0]=0,h[2]=c;if(d){var m=i.simpleMap(t.yr0,s.r2l),x=i.simpleMap(t.yr1,s.r2l),b=m[1]-m[0],_=x[1]-x[0];h[1]=(m[1]*(1-r)+r*x[1]-m[1])/(m[0]-m[1])*u,h[3]=u*(1-r+r*_/b),s.range[0]=a.l2r(m[0]*(1-r)+r*x[0]),s.range[1]=s.l2r(m[1]*(1-r)+r*x[1])}else h[1]=0,h[3]=u;l.drawOne(e,a,{skipTitle:!0}),l.drawOne(e,s,{skipTitle:!0}),l.redrawComponents(e,[a._id,s._id]);var w=f?c/h[2]:1,T=d?u/h[3]:1,M=f?h[0]:0,k=d?h[1]:0,A=f?h[0]/h[2]*c:0,L=d?h[1]/h[3]*u:0,S=a._offset-A,D=s._offset-L;n.clipRect.call(o.setTranslate,M,k).call(o.setScale,1/w,1/T),n.plot.call(o.setTranslate,S,D).call(o.setScale,w,T),o.setPointGroupScale(n.zoomScalePts,1/w,1/T),o.setTextPointsScale(n.zoomScaleTxt,1/w,1/T)}l.redrawComponents(e)}},4944:function(e,t,r){"use strict";var n=r(4040).traceIs,a=r(2976);function i(e){return{v:"x",h:"y"}[e.orientation||"v"]}function o(e,t){var r=i(e),a=n(e,"box-violin"),o=n(e._fullInput||{},"candlestick");return a&&!o&&t===r&&void 0===e[r]&&void 0===e[r+"0"]}e.exports=function(e,t,r,l){r("autotypenumbers",l.autotypenumbersDflt),"-"===r("type",(l.splomStash||{}).type)&&(function(e,t){if("-"===e.type){var r,l=e._id,s=l.charAt(0);-1!==l.indexOf("scene")&&(l=s);var c=function(e,t,r){for(var n=0;n0&&(a["_"+r+"axes"]||{})[t])return a;if((a[r+"axis"]||r)===t){if(o(a,r))return a;if((a[r]||[]).length||a[r+"0"])return a}}}(t,l,s);if(c)if("histogram"!==c.type||s!=={v:"y",h:"x"}[c.orientation||"v"]){var u=s+"calendar",f=c[u],d={noMultiCategory:!n(c,"cartesian")||n(c,"noMultiCategory")};if("box"===c.type&&c._hasPreCompStats&&s==={h:"x",v:"y"}[c.orientation||"v"]&&(d.noMultiCategory=!0),d.autotypenumbers=e.autotypenumbers,o(c,s)){var h=i(c),p=[];for(r=0;r0?".":"")+i;a.isPlainObject(o)?s(o,t,l,n+1):t(l,i,o)}}))}t.manageCommandObserver=function(e,r,n,o){var l={},s=!0;r&&r._commandObserver&&(l=r._commandObserver),l.cache||(l.cache={}),l.lookupTable={};var c=t.hasSimpleAPICommandBindings(e,n,l.lookupTable);if(r&&r._commandObserver){if(c)return l;if(r._commandObserver.remove)return r._commandObserver.remove(),r._commandObserver=null,l}if(c){i(e,c,l.cache),l.check=function(){if(s){var t=i(e,c,l.cache);return t.changed&&o&&void 0!==l.lookupTable[t.value]&&(l.disable(),Promise.resolve(o({value:t.value,type:c.type,prop:c.prop,traces:c.traces,index:l.lookupTable[t.value]})).then(l.enable,l.enable)),t.changed}};for(var u=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],f=0;f=t.width-20?(i["text-anchor"]="start",i.x=5):(i["text-anchor"]="end",i.x=t._paper.attr("width")-7),r.attr(i);var o=r.select(".js-link-to-tool"),l=r.select(".js-link-spacer"),s=r.select(".js-sourcelinks");e._context.showSources&&e._context.showSources(e),e._context.showLink&&function(e,t){t.text("");var r=t.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(e._context.linkText+" "+String.fromCharCode(187));if(e._context.sendData)r.on("click",(function(){w.sendDataToCloud(e)}));else{var n=window.location.pathname.split("/"),a=window.location.search;r.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+n[2].split(".")[0]+"/"+n[1]+a})}}(e,o),l.text(o.text()&&s.text()?" - ":"")}},w.sendDataToCloud=function(e){var t=(window.PLOTLYENV||{}).BASE_URL||e._context.plotlyServerURL;if(t){e.emit("plotly_beforeexport");var r=n.select(e).append("div").attr("id","hiddenform").style("display","none"),a=r.append("form").attr({action:t+"/external",method:"post",target:"_blank"});return a.append("input").attr({type:"text",name:"data"}).node().value=w.graphJson(e,!1,"keepdata"),a.node().submit(),r.remove(),e.emit("plotly_afterexport"),!1}};var k=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],A=["year","month","dayMonth","dayMonthYear"];function L(e,t){var r=e._context.locale;r||(r="en-US");var n=!1,a={};function i(e){for(var r=!0,i=0;i1&&R.length>1){for(s.getComponentMethod("grid","sizeDefaults")(c,l),o=0;o15&&R.length>15&&0===l.shapes.length&&0===l.images.length,w.linkSubplots(d,l,u,n),w.cleanPlot(d,l,u,n);var H=!(!n._has||!n._has("gl2d")),B=!(!l._has||!l._has("gl2d")),j=!(!n._has||!n._has("cartesian"))||H,Y=!(!l._has||!l._has("cartesian"))||B;j&&!Y?n._bgLayer.remove():Y&&!j&&(l._shouldCreateBgLayer=!0),n._zoomlayer&&!e._dragging&&v({_fullLayout:n}),function(e,t){var r,n=[];t.meta&&(r=t._meta={meta:t.meta,layout:{meta:t.meta}});for(var a=0;a0){var u=1-2*l;n=Math.round(u*n),a=Math.round(u*a)}}var d=w.layoutAttributes.width.min,h=w.layoutAttributes.height.min;n1,v=!t.height&&Math.abs(r.height-a)>1;(v||p)&&(p&&(r.width=n),v&&(r.height=a)),e._initialAutoSize||(e._initialAutoSize={width:n,height:a}),w.sanitizeMargins(r)},w.supplyLayoutModuleDefaults=function(e,t,r,n){var a,i,o,l=s.componentsRegistry,c=t._basePlotModules,u=s.subplotsRegistry.cartesian;for(a in l)(o=l[a]).includeBasePlot&&o.includeBasePlot(e,t);for(var d in c.length||c.push(u),t._has("cartesian")&&(s.getComponentMethod("grid","contentDefaults")(e,t),u.finalizeSubplots(e,t)),t._subplots)t._subplots[d].sort(f.subplotSort);for(i=0;i1&&(r.l/=y,r.r/=y)}if(h){var m=(r.t+r.b)/h;m>1&&(r.t/=m,r.b/=m)}var x=void 0!==r.xl?r.xl:r.x,b=void 0!==r.xr?r.xr:r.x,_=void 0!==r.yt?r.yt:r.y,T=void 0!==r.yb?r.yb:r.y;p[t]={l:{val:x,size:r.l+g},r:{val:b,size:r.r+g},b:{val:T,size:r.b+g},t:{val:_,size:r.t+g}},v[t]=1}else delete p[t],delete v[t];if(!n._replotting)return w.doAutoMargin(e)}},w.doAutoMargin=function(e){var t=e._fullLayout,r=t.width,n=t.height;t._size||(t._size={}),P(t);var a=t._size,i=t.margin,l={t:0,b:0,l:0,r:0},c=f.extendFlat({},a),u=i.l,d=i.r,h=i.t,v=i.b,g=t._pushmargin,y=t._pushmarginIds,m=t.minreducedwidth,x=t.minreducedheight;if(!1!==i.autoexpand){for(var b in g)y[b]||delete g[b];var _=e._fullLayout._reservedMargin;for(var T in _)for(var M in _[T]){var k=_[T][M];l[M]=Math.max(l[M],k)}for(var A in g.base={l:{val:0,size:u},r:{val:1,size:d},t:{val:1,size:h},b:{val:0,size:v}},l){var L=0;for(var S in g)"base"!==S&&o(g[S][A].size)&&(L=g[S][A].size>L?g[S][A].size:L);var D=Math.max(0,i[A]-L);l[A]=Math.max(0,l[A]-D)}for(var O in g){var C=g[O].l||{},I=g[O].b||{},R=C.val,z=C.size,N=I.val,F=I.size,E=r-l.r-l.l,H=n-l.t-l.b;for(var B in g){if(o(z)&&g[B].r){var j=g[B].r.val,Y=g[B].r.size;if(j>R){var V=(z*j+(Y-E)*R)/(j-R),U=(Y*(1-R)+(z-E)*(1-j))/(j-R);V+U>u+d&&(u=V,d=U)}}if(o(F)&&g[B].t){var q=g[B].t.val,G=g[B].t.size;if(q>N){var Z=(F*q+(G-H)*N)/(q-N),W=(G*(1-N)+(F-H)*(1-q))/(q-N);Z+W>v+h&&(v=Z,h=W)}}}}}var X=f.constrain(r-i.l-i.r,2,m),J=f.constrain(n-i.t-i.b,2,x),K=Math.max(0,r-X),Q=Math.max(0,n-J);if(K){var $=(u+d)/K;$>1&&(u/=$,d/=$)}if(Q){var ee=(v+h)/Q;ee>1&&(v/=ee,h/=ee)}if(a.l=Math.round(u)+l.l,a.r=Math.round(d)+l.r,a.t=Math.round(h)+l.t,a.b=Math.round(v)+l.b,a.p=Math.round(i.pad),a.w=Math.round(r)-a.l-a.r,a.h=Math.round(n)-a.t-a.b,!t._replotting&&(w.didMarginChange(c,a)||function(e){if("_redrawFromAutoMarginCount"in e._fullLayout)return!1;var t=p.list(e,"",!0);for(var r in t)if(t[r].autoshift||t[r].shift)return!0;return!1}(e))){"_redrawFromAutoMarginCount"in t?t._redrawFromAutoMarginCount++:t._redrawFromAutoMarginCount=1;var te=3*(1+Object.keys(y).length);if(t._redrawFromAutoMarginCount0&&(e._transitioningWithDuration=!0),e._transitionData._interruptCallbacks.push((function(){n=!0})),r.redraw&&e._transitionData._interruptCallbacks.push((function(){return s.call("redraw",e)})),e._transitionData._interruptCallbacks.push((function(){e.emit("plotly_transitioninterrupted",[])}));var i=0,o=0;function l(){return i++,function(){var t;o++,n||o!==i||(t=a,e._transitionData&&(function(e){if(e)for(;e.length;)e.shift()}(e._transitionData._interruptCallbacks),Promise.resolve().then((function(){if(r.redraw)return s.call("redraw",e)})).then((function(){e._transitioning=!1,e._transitioningWithDuration=!1,e.emit("plotly_transitioned",[])})).then(t)))}}r.runFn(l),setTimeout(l())}))}],i=f.syncOrAsync(a,e);return i&&i.then||(i=Promise.resolve()),i.then((function(){return e}))}w.didMarginChange=function(e,t){for(var r=0;r1)return!0}return!1},w.graphJson=function(e,t,r,n,a,i){(a&&t&&!e._fullData||a&&!t&&!e._fullLayout)&&w.supplyDefaults(e);var o=a?e._fullData:e.data,s=a?e._fullLayout:e.layout,c=(e._transitionData||{})._frames;function u(e,t){if("function"==typeof e)return t?"_function_":null;if(f.isPlainObject(e)){var n,a={};return Object.keys(e).sort().forEach((function(i){if(-1===["_","["].indexOf(i.charAt(0)))if("function"!=typeof e[i]){if("keepdata"===r){if("src"===i.substr(i.length-3))return}else if("keepstream"===r){if("string"==typeof(n=e[i+"src"])&&n.indexOf(":")>0&&!f.isPlainObject(e.stream))return}else if("keepall"!==r&&"string"==typeof(n=e[i+"src"])&&n.indexOf(":")>0)return;a[i]=u(e[i],t)}else t&&(a[i]="_function")})),a}var i=Array.isArray(e),o=f.isTypedArray(e);if((i||o)&&e.dtype&&e.shape){var s=e.bdata;return u({dtype:e.dtype,shape:e.shape,bdata:f.isArrayBuffer(s)?l.encode(s):s},t)}return i?e.map((function(e){return u(e,t)})):o?f.simpleMap(e,f.identity):f.isJSDate(e)?f.ms2DateTimeLocal(+e):e}var d={data:(o||[]).map((function(e){var r=u(e);return t&&delete r.fit,r}))};if(!t&&(d.layout=u(s),a)){var h=s._size;d.layout.computed={margin:{b:h.b,l:h.l,r:h.r,t:h.t}}}return c&&(d.frames=u(c)),i&&(d.config=u(e._context,!0)),"object"===n?d:JSON.stringify(d)},w.modifyFrames=function(e,t){var r,n,a,i=e._transitionData._frames,o=e._transitionData._frameHash;for(r=0;r=0;i--)if(s[i].enabled){r._indexToPoints=s[i]._indexToPoints;break}n&&n.calc&&(o=n.calc(e,r))}Array.isArray(o)&&o[0]||(o=[{x:h,y:h}]),o[0].t||(o[0].t={}),o[0].trace=r,d[t]=o}}for(N(o,l,u),a=0;a0){for(var n=[],a=0;a-1&&(f[h[r]].title={text:""});for(r=0;r")?"":t.html(e).text()}));return t.remove(),r}(w)).replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g,"&")).replace(u,"'"),a.isIE()&&(w=(w=(w=w.replace(/"/gi,"'")).replace(/(\('#)([^']*)('\))/gi,'("#$2")')).replace(/(\\')/gi,'"')),w}},4664:function(e,t,r){"use strict";var n=r(3400);e.exports=function(e,t){for(var r=0;rf+c||!n(u))}for(var h=0;h=0)return e}else if("string"==typeof e&&"%"===(e=e.trim()).slice(-1)&&n(e.slice(0,-1))&&(e=+e.slice(0,-1))>=0)return e+"%"}function p(e,t,r,n,i,o){var l=!(!1===(o=o||{}).moduleHasSelected),s=!(!1===o.moduleHasUnselected),c=!(!1===o.moduleHasConstrain),u=!(!1===o.moduleHasCliponaxis),f=!(!1===o.moduleHasTextangle),h=!(!1===o.moduleHasInsideanchor),p=!!o.hasPathbar,v=Array.isArray(i)||"auto"===i,g=v||"inside"===i,y=v||"outside"===i;if(g||y){var m=d(n,"textfont",r.font),x=a.extendFlat({},m),b=!(e.textfont&&e.textfont.color);if(b&&delete x.color,d(n,"insidetextfont",x),p){var _=a.extendFlat({},m);b&&delete _.color,d(n,"pathbar.textfont",_)}y&&d(n,"outsidetextfont",m),l&&n("selected.textfont.color"),s&&n("unselected.textfont.color"),c&&n("constraintext"),u&&n("cliponaxis"),f&&n("textangle"),n("texttemplate")}g&&h&&n("insidetextanchor")}e.exports={supplyDefaults:function(e,t,r,n){function u(r,n){return a.coerce(e,t,f,r,n)}if(l(e,t,n,u)){s(e,t,n,u),u("xhoverformat"),u("yhoverformat"),u("orientation",t.x&&!t.y?"h":"v"),u("base"),u("offset"),u("width"),u("text"),u("hovertext"),u("hovertemplate");var d=u("textposition");p(e,0,n,u,d,{moduleHasSelected:!0,moduleHasUnselected:!0,moduleHasConstrain:!0,moduleHasCliponaxis:!0,moduleHasTextangle:!0,moduleHasInsideanchor:!0}),c(e,t,u,r,n);var h=(t.marker.line||{}).color,v=o.getComponentMethod("errorbars","supplyDefaults");v(e,t,h||i.defaultLine,{axis:"y"}),v(e,t,h||i.defaultLine,{axis:"x",inherit:"y"}),a.coerceSelectionMarkerOpacity(t,u)}else t.visible=!1},crossTraceDefaults:function(e,t){var r,n;function i(e,t){return a.coerce(n._input,n,f,e,t)}for(var o=0;oi))return t}return void 0!==r?r:e.dflt},t.coerceColor=function(e,t,r){return a(t).isValid()?t:void 0!==r?r:e.dflt},t.coerceEnumerated=function(e,t,r){return e.coerceNumber&&(t=+t),-1!==e.values.indexOf(t)?t:void 0!==r?r:e.dflt},t.getValue=function(e,t){var r;return i(e)?t0?t+=r:u<0&&(t-=r)}return t}function R(e){var t=u,r=e.b,a=I(e);return n.inbox(r-t,a-t,_+(a-t)/(a-r)-1)}var z=e[f+"a"],N=e[d+"a"];v=Math.abs(z.r2c(z.range[1])-z.r2c(z.range[0]));var F=n.getDistanceFunction(a,h,p,(function(e){return(h(e)+p(e))/2}));if(n.getClosest(g,F,e),!1!==e.index&&g[e.index].p!==c){M||(D=function(e){return Math.min(k(e),e.p-m.bargroupwidth/2)},O=function(e){return Math.max(A(e),e.p+m.bargroupwidth/2)});var E=g[e.index],H=y.base?E.b+E.s:E.s;e[d+"0"]=e[d+"1"]=N.c2p(E[d],!0),e[d+"LabelVal"]=H;var B=m.extents[m.extents.round(E.p)];e[f+"0"]=z.c2p(x?D(E):B[0],!0),e[f+"1"]=z.c2p(x?O(E):B[1],!0);var j=void 0!==E.orig_p;return e[f+"LabelVal"]=j?E.orig_p:E.p,e.labelLabel=s(z,e[f+"LabelVal"],y[f+"hoverformat"]),e.valueLabel=s(N,e[d+"LabelVal"],y[d+"hoverformat"]),e.baseLabel=s(N,E.b,y[d+"hoverformat"]),e.spikeDistance=(function(e){var t=u,r=e.b,a=I(e);return n.inbox(r-t,a-t,w+(a-t)/(a-r)-1)}(E)+function(e){return C(k(e),A(e),w)}(E))/2,e[f+"Spike"]=z.c2p(E.p,!0),o(E,y,e),e.hovertemplate=y.hovertemplate,e}}function f(e,t){var r=t.mcc||e.marker.color,n=t.mlcc||e.marker.line.color,a=l(e,t);return i.opacity(r)?r:i.opacity(n)&&a?n:void 0}e.exports={hoverPoints:function(e,t,r,n,i){var o=u(e,t,r,n,i);if(o){var l=o.cd,s=l[0].trace,c=l[o.index];return o.color=f(s,c),a.getComponentMethod("errorbars","hoverInfo")(c,s,o),[o]}},hoverOnBars:u,getTraceColor:f}},1132:function(e,t,r){"use strict";e.exports={attributes:r(832),layoutAttributes:r(9324),supplyDefaults:r(1508).supplyDefaults,crossTraceDefaults:r(1508).crossTraceDefaults,supplyLayoutDefaults:r(7156),calc:r(9439),crossTraceCalc:r(6376).crossTraceCalc,colorbar:r(5528),arraysToCalcdata:r(4664),plot:r(8184).plot,style:r(100).style,styleOnSelect:r(100).styleOnSelect,hoverPoints:r(1020).hoverPoints,eventData:r(2160),selectPoints:r(5784),moduleType:"trace",name:"bar",basePlotModule:r(7952),categories:["bar-like","cartesian","svg","bar","oriented","errorBarsOK","showLegend","zoomScale"],animatable:!0,meta:{}}},9324:function(e){"use strict";e.exports={barmode:{valType:"enumerated",values:["stack","group","overlay","relative"],dflt:"group",editType:"calc"},barnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},bargap:{valType:"number",min:0,max:1,editType:"calc"},bargroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},barcornerradius:{valType:"any",editType:"calc"}}},7156:function(e,t,r){"use strict";var n=r(4040),a=r(4460),i=r(3400),o=r(9324),l=r(1508).validateCornerradius;e.exports=function(e,t,r){function s(r,n){return i.coerce(e,t,o,r,n)}for(var c=!1,u=!1,f=!1,d={},h=s("barmode"),p=0;p0)-(e<0)}function k(e,t){return e0}function S(e,t,r,n,a){return!(e<0||t<0)&&(r<=e&&n<=t||r<=t&&n<=e||(a?e>=r*(t/n):t>=n*(e/r)))}function D(e){return"auto"===e?0:e}function O(e,t){var r=Math.PI/180*t,n=Math.abs(Math.sin(r)),a=Math.abs(Math.cos(r));return{x:e.width*a+e.height*n,y:e.width*n+e.height*a}}function C(e,t,r,n,a,i){var o=!!i.isHorizontal,l=!!i.constrained,s=i.angle||0,c=i.anchor,u="end"===c,f="start"===c,d=((i.leftToRight||0)+1)/2,h=1-d,p=i.hasB,v=i.r,g=i.overhead,y=a.width,m=a.height,x=Math.abs(t-e),b=Math.abs(n-r),w=x>2*_&&b>2*_?_:0;x-=2*w,b-=2*w;var T=D(s);"auto"!==s||y<=x&&m<=b||!(y>x||m>b)||(y>b||m>x)&&y_){var S=function(e,t,r,n,a,i,o,l,s){var c,u,f,d,h=Math.max(0,Math.abs(t-e)-2*_),p=Math.max(0,Math.abs(n-r)-2*_),v=i-_,g=o?v-Math.sqrt(v*v-(v-o)*(v-o)):v,y=s?2*v:l?v-o:2*g,m=s?2*v:l?2*g:v-o;return a.y/a.x>=p/(h-y)?d=p/a.y:a.y/a.x<=(p-m)/h?d=h/a.x:!s&&l?(c=a.x*a.x+a.y*a.y/4,f=(h-v)*(h-v)+(p/2-v)*(p/2-v)-v*v,d=(-(u=-2*a.x*(h-v)-a.y*(p/2-v))+Math.sqrt(u*u-4*c*f))/(2*c)):s?(c=(a.x*a.x+a.y*a.y)/4,f=(h/2-v)*(h/2-v)+(p/2-v)*(p/2-v)-v*v,d=(-(u=-a.x*(h/2-v)-a.y*(p/2-v))+Math.sqrt(u*u-4*c*f))/(2*c)):(c=a.x*a.x/4+a.y*a.y,f=(h/2-v)*(h/2-v)+(p-v)*(p-v)-v*v,d=(-(u=-a.x*(h/2-v)-2*a.y*(p-v))+Math.sqrt(u*u-4*c*f))/(2*c)),{scale:d=Math.min(1,d),pad:l?Math.max(0,v-Math.sqrt(Math.max(0,v*v-(v-(p-a.y*d)/2)*(v-(p-a.y*d)/2)))-o):Math.max(0,v-Math.sqrt(Math.max(0,v*v-(v-(h-a.x*d)/2)*(v-(h-a.x*d)/2)))-o)}}(e,t,r,n,L,v,g,o,p);M=S.scale,A=S.pad}else M=1,l&&(M=Math.min(1,x/L.x,b/L.y)),A=0;var C=a.left*h+a.right*d,P=(a.top+a.bottom)/2,I=(e+_)*h+(t-_)*d,R=(r+n)/2,z=0,N=0;if(f||u){var F=(o?L.x:L.y)/2;v&&(u||p)&&(w+=A);var E=o?k(e,t):k(r,n);o?f?(I=e+E*w,z=-E*F):(I=t-E*w,z=E*F):f?(R=r+E*w,N=-E*F):(R=n-E*w,N=E*F)}return{textX:C,textY:P,targetX:I,targetY:R,anchorX:z,anchorY:N,scale:M,rotate:T}}e.exports={plot:function(e,t,r,f,g,y){var w=t.xaxis,P=t.yaxis,I=e._fullLayout,R=e._context.staticPlot;g||(g={mode:I.barmode,norm:I.barmode,gap:I.bargap,groupgap:I.bargroupgap},h("bar",I));var z=i.makeTraceGroups(f,r,"trace bars").each((function(r){var c=n.select(this),f=r[0].trace,h=r[0].t,z="waterfall"===f.type,N="funnel"===f.type,F="histogram"===f.type,E="bar"===f.type,H=E||N,B=0;z&&f.connector.visible&&"between"===f.connector.mode&&(B=f.connector.line.width/2);var j="h"===f.orientation,Y=L(g),V=i.ensureSingle(c,"g","points"),U=T(f),q=V.selectAll("g.point").data(i.identity,U);q.enter().append("g").classed("point",!0),q.exit().remove(),q.each((function(c,T){var L,z,N=n.select(this),V=function(e,t,r,n){var a=[],i=[],o=n?t:r,l=n?r:t;return a[0]=o.c2p(e.s0,!0),i[0]=l.c2p(e.p0,!0),a[1]=o.c2p(e.s1,!0),i[1]=l.c2p(e.p1,!0),n?[a,i]:[i,a]}(c,w,P,j),U=V[0][0],q=V[0][1],G=V[1][0],Z=V[1][1],W=0==(j?q-U:Z-G);if(W&&H&&v.getLineWidth(f,c)&&(W=!1),W||(W=!(a(U)&&a(q)&&a(G)&&a(Z))),c.isBlank=W,W&&(j?q=U:Z=G),B&&!W&&(j?(U-=k(U,q)*B,q+=k(U,q)*B):(G-=k(G,Z)*B,Z+=k(G,Z)*B)),"waterfall"===f.type){if(!W){var X=f[c.dir].marker;L=X.line.width,z=X.color}}else L=v.getLineWidth(f,c),z=c.mc||f.marker.color;function J(e){var t=n.round(L/2%1,2);return 0===g.gap&&0===g.groupgap?n.round(Math.round(e)-t,2):e}var K=l.opacity(z)<1||L>.01?J:function(e,t,r){return r&&e===t?e:Math.abs(e-t)>=2?J(e):e>t?Math.ceil(e):Math.floor(e)};e._context.staticPlot||(U=K(U,q,j),q=K(q,U,j),G=K(G,Z,!j),Z=K(Z,G,!j));var Q,$=j?w.c2p:P.c2p;Q=c.s0>0?c._sMax:c.s0<0?c._sMin:c.s1>0?c._sMax:c._sMin;var ee,te,re=E||F?function(e,t){if(!e)return 0;var r,n=j?Math.abs(Z-G):Math.abs(q-U),a=j?Math.abs(q-U):Math.abs(Z-G),i=K(Math.abs($(Q,!0)-$(0,!0))),o=c.hasB?Math.min(n/2,a/2):Math.min(n/2,i);return r="%"===t?n*(Math.min(50,e)/100):e,K(Math.max(Math.min(r,o),0))}(h.cornerradiusvalue,h.cornerradiusform):0,ne="M"+U+","+G+"V"+Z+"H"+q+"V"+G+"Z",ae=0;if(re&&c.s){var ie=0===M(c.s0)||M(c.s)===M(c.s0)?c.s1:c.s0;if((ae=K(c.hasB?0:Math.abs($(Q,!0)-$(ie,!0))))0?Math.sqrt(ae*(2*re-ae)):0,fe=oe>0?Math.max:Math.min;ee="M"+U+","+G+"V"+(Z-ce*le)+"H"+fe(q-(re-ae)*oe,U)+"A "+re+","+re+" 0 0 "+se+" "+q+","+(Z-re*le-ue)+"V"+(G+re*le+ue)+"A "+re+","+re+" 0 0 "+se+" "+fe(q-(re-ae)*oe,U)+","+(G+ce*le)+"Z"}else if(c.hasB)ee="M"+(U+re*oe)+","+G+"A "+re+","+re+" 0 0 "+se+" "+U+","+(G+re*le)+"V"+(Z-re*le)+"A "+re+","+re+" 0 0 "+se+" "+(U+re*oe)+","+Z+"H"+(q-re*oe)+"A "+re+","+re+" 0 0 "+se+" "+q+","+(Z-re*le)+"V"+(G+re*le)+"A "+re+","+re+" 0 0 "+se+" "+(q-re*oe)+","+G+"Z";else{var de=(te=Math.abs(Z-G)+ae)0?Math.sqrt(ae*(2*re-ae)):0,pe=le>0?Math.max:Math.min;ee="M"+(U+de*oe)+","+G+"V"+pe(Z-(re-ae)*le,G)+"A "+re+","+re+" 0 0 "+se+" "+(U+re*oe-he)+","+Z+"H"+(q-re*oe+he)+"A "+re+","+re+" 0 0 "+se+" "+(q-de*oe)+","+pe(Z-(re-ae)*le,G)+"V"+G+"Z"}}else ee=ne}else ee=ne;var ve=A(i.ensureSingle(N,"path"),I,g,y);if(ve.style("vector-effect",R?"none":"non-scaling-stroke").attr("d",isNaN((q-U)*(Z-G))||W&&e._context.staticPlot?"M0,0Z":ee).call(s.setClipUrl,t.layerClipId,e),!I.uniformtext.mode&&Y){var ge=s.makePointStyleFns(f);s.singlePointStyle(c,ve,f,ge,e)}!function(e,t,r,n,a,l,c,f,h,g,y,w,T){var M,L=t.xaxis,P=t.yaxis,I=e._fullLayout;function R(t,r,n){return i.ensureSingle(t,"text").text(r).attr({class:"bartext bartext-"+M,"text-anchor":"middle","data-notex":1}).call(s.font,n).call(o.convertToTspans,e)}var z=n[0].trace,N="h"===z.orientation,F=function(e,t,r,n,a){var o,l=t[0].trace;return o=l.texttemplate?function(e,t,r,n,a){var o=t[0].trace,l=i.castOption(o,r,"texttemplate");if(!l)return"";var s,c,f,d,h="histogram"===o.type,p="waterfall"===o.type,v="funnel"===o.type,g="h"===o.orientation;function y(e){return u(d,d.c2l(e),!0).text}g?(s="y",c=a,f="x",d=n):(s="x",c=n,f="y",d=a);var m,x=t[r],_={};_.label=x.p,_.labelLabel=_[s+"Label"]=(m=x.p,u(c,c.c2l(m),!0).text);var w=i.castOption(o,x.i,"text");(0===w||w)&&(_.text=w),_.value=x.s,_.valueLabel=_[f+"Label"]=y(x.s);var T={};b(T,o,x.i),(h||void 0===T.x)&&(T.x=g?_.value:_.label),(h||void 0===T.y)&&(T.y=g?_.label:_.value),(h||void 0===T.xLabel)&&(T.xLabel=g?_.valueLabel:_.labelLabel),(h||void 0===T.yLabel)&&(T.yLabel=g?_.labelLabel:_.valueLabel),p&&(_.delta=+x.rawS||x.s,_.deltaLabel=y(_.delta),_.final=x.v,_.finalLabel=y(_.final),_.initial=_.final-_.delta,_.initialLabel=y(_.initial)),v&&(_.value=x.s,_.valueLabel=y(_.value),_.percentInitial=x.begR,_.percentInitialLabel=i.formatPercent(x.begR),_.percentPrevious=x.difR,_.percentPreviousLabel=i.formatPercent(x.difR),_.percentTotal=x.sumR,_.percenTotalLabel=i.formatPercent(x.sumR));var M=i.castOption(o,x.i,"customdata");return M&&(_.customdata=M),i.texttemplateString(l,_,e._d3locale,T,_,o._meta||{})}(e,t,r,n,a):l.textinfo?function(e,t,r,n){var a=e[0].trace,o="h"===a.orientation,l="waterfall"===a.type,s="funnel"===a.type;function c(e){return u(o?r:n,+e,!0).text}var f,d,h=a.textinfo,p=e[t],v=h.split("+"),g=[],y=function(e){return-1!==v.indexOf(e)};if(y("label")&&g.push((d=e[t].p,u(o?n:r,d,!0).text)),y("text")&&(0===(f=i.castOption(a,p.i,"text"))||f)&&g.push(f),l){var m=+p.rawS||p.s,x=p.v,b=x-m;y("initial")&&g.push(c(b)),y("delta")&&g.push(c(m)),y("final")&&g.push(c(x))}if(s){y("value")&&g.push(c(p.s));var _=0;y("percent initial")&&_++,y("percent previous")&&_++,y("percent total")&&_++;var w=_>1;y("percent initial")&&(f=i.formatPercent(p.begR),w&&(f+=" of initial"),g.push(f)),y("percent previous")&&(f=i.formatPercent(p.difR),w&&(f+=" of previous"),g.push(f)),y("percent total")&&(f=i.formatPercent(p.sumR),w&&(f+=" of total"),g.push(f))}return g.join("
    ")}(t,r,n,a):v.getValue(l.text,r),v.coerceString(m,o)}(I,n,a,L,P);M=function(e,t){var r=v.getValue(e.textposition,t);return v.coerceEnumerated(x,r)}(z,a);var E="stack"===w.mode||"relative"===w.mode,H=n[a],B=!E||H._outmost,j=H.hasB,Y=g&&g-y>_;if(F&&"none"!==M&&(!H.isBlank&&l!==c&&f!==h||"auto"!==M&&"inside"!==M)){var V=I.font,U=p.getBarColor(n[a],z),q=p.getInsideTextFont(z,a,V,U),G=p.getOutsideTextFont(z,a,V),Z=z.insidetextanchor||"end",W=r.datum();N?"log"===L.type&&W.s0<=0&&(l=L.range[0]0&&Q>0;ae=Y?j?S(re-2*g,ne,K,Q,N)||S(re,ne-2*g,K,Q,N):N?S(re-(g-y),ne,K,Q,N)||S(re,ne-2*(g-y),K,Q,N):S(re,ne-(g-y),K,Q,N)||S(re-2*(g-y),ne,K,Q,N):S(re,ne,K,Q,N),ie&&ae?M="inside":(M="outside",X.remove(),X=null)}else M="inside";if(!X){var oe=(X=R(r,F,$=i.ensureUniformFontSize(e,"outside"===M?G:q))).attr("transform");if(X.attr("transform",""),K=(J=s.bBox(X.node())).width,Q=J.height,X.attr("transform",oe),K<=0||Q<=0)return void X.remove()}var le,se=z.textangle;le="outside"===M?function(e,t,r,n,a,i){var o,l=!!i.isHorizontal,s=!!i.constrained,c=i.angle||0,u=a.width,f=a.height,d=Math.abs(t-e),h=Math.abs(n-r);o=l?h>2*_?_:0:d>2*_?_:0;var p=1;s&&(p=l?Math.min(1,h/f):Math.min(1,d/u));var v=D(c),g=O(a,v),y=(l?g.x:g.y)/2,m=(a.left+a.right)/2,x=(a.top+a.bottom)/2,b=(e+t)/2,w=(r+n)/2,T=0,M=0,A=l?k(t,e):k(r,n);return l?(b=t-A*o,T=A*y):(w=n+A*o,M=-A*y),{textX:m,textY:x,targetX:b,targetY:w,anchorX:T,anchorY:M,scale:p,rotate:v}}(l,c,f,h,J,{isHorizontal:N,constrained:"both"===z.constraintext||"outside"===z.constraintext,angle:se}):C(l,c,f,h,J,{isHorizontal:N,constrained:"both"===z.constraintext||"inside"===z.constraintext,angle:se,anchor:Z,hasB:j,r:g,overhead:y}),le.fontSize=$.size,d("histogram"===z.type?"bar":z.type,le,I),H.transform=le;var ce=A(X,I,w,T);i.setTransormAndDisplay(ce,le)}else r.select("text").remove()}(e,t,N,r,T,U,q,G,Z,re,ae,g,y),t.layerClipId&&s.hideOutsideRangePoint(c,N.select("text"),w,P,f.xcalendar,f.ycalendar)}));var G=!1===f.cliponaxis;s.setClipUrl(c,G?null:t.layerClipId,e)}));c.getComponentMethod("errorbars","plot")(e,z,t,g)},toMoveInsideBar:C}},5784:function(e){"use strict";function t(e,t,r,n,a){var i=t.c2p(n?e.s0:e.p0,!0),o=t.c2p(n?e.s1:e.p1,!0),l=r.c2p(n?e.p0:e.s0,!0),s=r.c2p(n?e.p1:e.s1,!0);return a?[(i+o)/2,(l+s)/2]:n?[o,(l+s)/2]:[(i+o)/2,s]}e.exports=function(e,r){var n,a=e.cd,i=e.xaxis,o=e.yaxis,l=a[0].trace,s="funnel"===l.type,c="h"===l.orientation,u=[];if(!1===r)for(n=0;n1||0===a.bargap&&0===a.bargroupgap&&!e[0].trace.marker.line.width)&&n.select(this).attr("shape-rendering","crispEdges")})),t.selectAll("g.points").each((function(t){p(n.select(this),t[0].trace,e)})),l.getComponentMethod("errorbars","style")(t)},styleTextPoints:v,styleOnSelect:function(e,t,r){var a=t[0].trace;a.selectedpoints?function(e,t,r){i.selectedPointStyle(e.selectAll("path"),t),function(e,t,r){e.each((function(e){var a,l=n.select(this);if(e.selected){a=o.ensureUniformFontSize(r,g(l,e,t,r));var s=t.selected.textfont&&t.selected.textfont.color;s&&(a.color=s),i.font(l,a)}else i.selectedTextStyle(l,t)}))}(e.selectAll("text"),t,r)}(r,a,e):(p(r,a,e),l.getComponentMethod("errorbars","style")(r))},getInsideTextFont:m,getOutsideTextFont:x,getBarColor:_,resizeText:s}},5592:function(e,t,r){"use strict";var n=r(6308),a=r(4288).hasColorscale,i=r(7260),o=r(3400).coercePattern;e.exports=function(e,t,r,l,s){var c=r("marker.color",l),u=a(e,"marker");u&&i(e,t,s,r,{prefix:"marker.",cLetter:"c"}),r("marker.line.color",n.defaultLine),a(e,"marker.line")&&i(e,t,s,r,{prefix:"marker.line.",cLetter:"c"}),r("marker.line.width"),r("marker.opacity"),o(r,"marker.pattern",c,u),r("selected.marker.color"),r("unselected.marker.color")}},2744:function(e,t,r){"use strict";var n=r(3428),a=r(3400);function i(e){return"_"+e+"Text_minsize"}e.exports={recordMinTextSize:function(e,t,r){if(r.uniformtext.mode){var n=i(e),a=r.uniformtext.minsize,o=t.scale*t.fontSize;t.hide=o=0})),("funnelarea"===t.type?y:t.sort)&&i.sort((function(e,t){return t.v-e.v})),i[0]&&(i[0].vTotal=g),i},crossTraceCalc:function(e,t){var r=(t||{}).type;r||(r="pie");var n=e._fullLayout,a=e.calcdata,i=n[r+"colorway"],l=n["_"+r+"colormap"];n["extend"+r+"colors"]&&(i=s(i,o));for(var c=0,u=0;u0){l=!0;break}}l||(o=0)}return{hasLabels:r,hasValues:i,len:o}}function u(e,t,r,n,a){n("marker.line.width")&&n("marker.line.color",a?void 0:r.paper_bgcolor);var i=n("marker.colors");s(n,"marker.pattern",i),e.marker&&!t.marker.pattern.fgcolor&&(t.marker.pattern.fgcolor=e.marker.colors),t.marker.pattern.bgcolor||(t.marker.pattern.bgcolor=r.paper_bgcolor)}e.exports={handleLabelsAndValues:c,handleMarkerDefaults:u,supplyDefaults:function(e,t,r,n){function s(r,n){return a.coerce(e,t,i,r,n)}var f=c(s("labels"),s("values")),d=f.len;if(t._hasLabels=f.hasLabels,t._hasValues=f.hasValues,!t._hasLabels&&t._hasValues&&(s("label0"),s("dlabel")),d){t._length=d,u(e,t,n,s,!0),s("scalegroup");var h,p=s("text"),v=s("texttemplate");if(v||(h=s("textinfo",a.isArrayOrTypedArray(p)?"text+percent":"percent")),s("hovertext"),s("hovertemplate"),v||h&&"none"!==h){var g=s("textposition");l(e,t,n,s,g,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),(Array.isArray(g)||"auto"===g||"outside"===g)&&s("automargin"),("inside"===g||"auto"===g||Array.isArray(g))&&s("insidetextorientation")}o(t,n,s);var y=s("hole");if(s("title.text")){var m=s("title.position",y?"middle center":"top center");y||"middle center"!==m||(t.title.position="top center"),a.coerceFont(s,"title.font",n.font)}s("sort"),s("direction"),s("rotation"),s("pull")}else t.visible=!1}}},3644:function(e,t,r){"use strict";var n=r(624).appendArrayMultiPointValues;e.exports=function(e,t){var r={curveNumber:t.index,pointNumbers:e.pts,data:t._input,fullData:t,label:e.label,color:e.color,value:e.v,percent:e.percent,text:e.text,bbox:e.bbox,v:e.v};return 1===e.pts.length&&(r.pointNumber=r.i=e.pts[0]),n(r,t,e.pts),"funnelarea"===t.type&&(delete r.v,delete r.i),r}},1552:function(e,t,r){"use strict";var n=r(3616),a=r(6308);e.exports=function(e,t,r,i){var o=r.marker.pattern;o&&o.shape?n.pointStyle(e,r,i,t):a.fill(e,t.color)}},9656:function(e,t,r){"use strict";var n=r(3400);function a(e){return-1!==e.indexOf("e")?e.replace(/[.]?0+e/,"e"):-1!==e.indexOf(".")?e.replace(/[.]?0+$/,""):e}t.formatPiePercent=function(e,t){var r=a((100*e).toPrecision(3));return n.numSeparate(r,t)+"%"},t.formatPieValue=function(e,t){var r=a(e.toPrecision(10));return n.numSeparate(r,t)},t.getFirstFilled=function(e,t){if(n.isArrayOrTypedArray(e))for(var r=0;r"),name:f.hovertemplate||-1!==d.indexOf("name")?f.name:void 0,idealAlign:e.pxmid[0]<0?"left":"right",color:g.castOption(_.bgcolor,e.pts)||e.color,borderColor:g.castOption(_.bordercolor,e.pts),fontFamily:g.castOption(w.family,e.pts),fontSize:g.castOption(w.size,e.pts),fontColor:g.castOption(w.color,e.pts),nameLength:g.castOption(_.namelength,e.pts),textAlign:g.castOption(_.align,e.pts),hovertemplate:g.castOption(f.hovertemplate,e.pts),hovertemplateLabels:e,eventData:[y(e,f)]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t,inOut_bbox:T}),e.bbox=T[0],c._hasHoverLabel=!0}c._hasHoverEvent=!0,t.emit("plotly_hover",{points:[y(e,f)],event:n.event})}})),e.on("mouseout",(function(e){var r=t._fullLayout,a=t._fullData[c.index],o=n.select(this).datum();c._hasHoverEvent&&(e.originalEvent=n.event,t.emit("plotly_unhover",{points:[y(o,a)],event:n.event}),c._hasHoverEvent=!1),c._hasHoverLabel&&(i.loneUnhover(r._hoverlayer.node()),c._hasHoverLabel=!1)})),e.on("click",(function(e){var r=t._fullLayout,a=t._fullData[c.index];t._dragging||!1===r.hovermode||(t._hoverdata=[y(e,a)],i.click(t,n.event))}))}function b(e,t,r){var n=g.castOption(e.insidetextfont.color,t.pts);!n&&e._input.textfont&&(n=g.castOption(e._input.textfont.color,t.pts));var a=g.castOption(e.insidetextfont.family,t.pts)||g.castOption(e.textfont.family,t.pts)||r.family,i=g.castOption(e.insidetextfont.size,t.pts)||g.castOption(e.textfont.size,t.pts)||r.size;return{color:n||o.contrast(t.color),family:a,size:i}}function _(e,t){for(var r,n,a=0;at&&t>n||r=-4;g-=2)y(Math.PI*g,"tan");for(g=4;g>=-4;g-=2)y(Math.PI*(g+1),"tan")}if(f||h){for(g=4;g>=-4;g-=2)y(Math.PI*(g+1.5),"rad");for(g=4;g>=-4;g-=2)y(Math.PI*(g+.5),"rad")}}if(l||p||f){var m=Math.sqrt(e.width*e.width+e.height*e.height);if((i={scale:a*n*2/m,rCenter:1-a,rotate:0}).textPosAngle=(t.startangle+t.stopangle)/2,i.scale>=1)return i;v.push(i)}(p||h)&&((i=T(e,n,o,s,c)).textPosAngle=(t.startangle+t.stopangle)/2,v.push(i)),(p||d)&&((i=M(e,n,o,s,c)).textPosAngle=(t.startangle+t.stopangle)/2,v.push(i));for(var x=0,b=0,_=0;_=1)break}return v[x]}function T(e,t,r,n,a){t=Math.max(0,t-2*v);var i=e.width/e.height,o=L(i,n,t,r);return{scale:2*o/e.height,rCenter:k(i,o/t),rotate:A(a)}}function M(e,t,r,n,a){t=Math.max(0,t-2*v);var i=e.height/e.width,o=L(i,n,t,r);return{scale:2*o/e.width,rCenter:k(i,o/t),rotate:A(a+Math.PI/2)}}function k(e,t){return Math.cos(t)-e*t}function A(e){return(180/Math.PI*e+720)%180-90}function L(e,t,r,n){var a=e+1/(2*Math.tan(t));return r*Math.min(1/(Math.sqrt(a*a+.5)+a),n/(Math.sqrt(e*e+n/2)+e))}function S(e,t){return e.v!==t.vTotal||t.trace.hole?Math.min(1/(1+1/Math.sin(e.halfangle)),e.ring/2):1}function D(e,t){var r=t.pxmid[0],n=t.pxmid[1],a=e.width/2,i=e.height/2;return r<0&&(a*=-1),n<0&&(i*=-1),{scale:1,rCenter:1,rotate:0,x:a+Math.abs(i)*(a>0?1:-1)/2,y:i/(1+r*r/(n*n)),outside:!0}}function O(e,t){var r,n,a,i=e.trace,o={x:e.cx,y:e.cy},l={tx:0,ty:0};l.ty+=i.title.font.size,a=P(i),-1!==i.title.position.indexOf("top")?(o.y-=(1+a)*e.r,l.ty-=e.titleBox.height):-1!==i.title.position.indexOf("bottom")&&(o.y+=(1+a)*e.r);var s,c=e.r/(void 0===(s=e.trace.aspectratio)?1:s),u=t.w*(i.domain.x[1]-i.domain.x[0])/2;return-1!==i.title.position.indexOf("left")?(u+=c,o.x-=(1+a)*c,l.tx+=e.titleBox.width/2):-1!==i.title.position.indexOf("center")?u*=2:-1!==i.title.position.indexOf("right")&&(u+=c,o.x+=(1+a)*c,l.tx-=e.titleBox.width/2),r=u/e.titleBox.width,n=C(e,t)/e.titleBox.height,{x:o.x,y:o.y,scale:Math.min(r,n),tx:l.tx,ty:l.ty}}function C(e,t){var r=e.trace,n=t.h*(r.domain.y[1]-r.domain.y[0]);return Math.min(e.titleBox.height,n/2)}function P(e){var t,r=e.pull;if(!r)return 0;if(s.isArrayOrTypedArray(r))for(r=0,t=0;tr&&(r=e.pull[t]);return r}function I(e,t){for(var r=[],n=0;n1?u=(c=r.r)/a.aspectratio:c=(u=r.r)*a.aspectratio,s=(c*=(1+a.baseratio)/2)*u}o=Math.min(o,s/r.vTotal)}for(n=0;n")}if(i){var x=s.castOption(a,t.i,"texttemplate");if(x){var b=function(e){return{label:e.label,value:e.v,valueLabel:g.formatPieValue(e.v,n.separators),percent:e.v/r.vTotal,percentLabel:g.formatPiePercent(e.v/r.vTotal,n.separators),color:e.color,text:e.text,customdata:s.castOption(a,e.i,"customdata")}}(t),_=g.getFirstFilled(a.text,t.pts);(m(_)||""===_)&&(b.text=_),t.text=s.texttemplateString(x,b,e._fullLayout._d3locale,b,a._meta||{})}else t.text=""}}function N(e,t){var r=e.rotate*Math.PI/180,n=Math.cos(r),a=Math.sin(r),i=(t.left+t.right)/2,o=(t.top+t.bottom)/2;e.textX=i*n-o*a,e.textY=i*a+o*n,e.noCenter=!0}e.exports={plot:function(e,t){var r=e._context.staticPlot,i=e._fullLayout,d=i._size;p("pie",i),_(t,e),I(t,d);var v=s.makeTraceGroups(i._pielayer,t,"trace").each((function(t){var p=n.select(this),v=t[0],y=v.trace;!function(e){var t,r,n,a=e[0],i=a.r,o=a.trace,l=g.getRotationAngle(o.rotation),s=2*Math.PI/a.vTotal,c="px0",u="px1";if("counterclockwise"===o.direction){for(t=0;ta.vTotal/2?1:0,r.halfangle=Math.PI*Math.min(r.v/a.vTotal,.5),r.ring=1-o.hole,r.rInscribed=S(r,a))}(t),p.attr("stroke-linejoin","round"),p.each((function(){var m=n.select(this).selectAll("g.slice").data(t);m.enter().append("g").classed("slice",!0),m.exit().remove();var _=[[[],[]],[[],[]]],T=!1;m.each((function(a,o){if(a.hidden)n.select(this).selectAll("path,g").remove();else{a.pointNumber=a.i,a.curveNumber=y.index,_[a.pxmid[1]<0?0:1][a.pxmid[0]<0?0:1].push(a);var c=v.cx,u=v.cy,d=n.select(this),p=d.selectAll("path.surface").data([a]);if(p.enter().append("path").classed("surface",!0).style({"pointer-events":r?"none":"all"}),d.call(x,e,t),y.pull){var m=+g.castOption(y.pull,a.pts)||0;m>0&&(c+=m*a.pxmid[0],u+=m*a.pxmid[1])}a.cxFinal=c,a.cyFinal=u;var M=y.hole;if(a.v===v.vTotal){var k="M"+(c+a.px0[0])+","+(u+a.px0[1])+C(a.px0,a.pxmid,!0,1)+C(a.pxmid,a.px0,!0,1)+"Z";M?p.attr("d","M"+(c+M*a.px0[0])+","+(u+M*a.px0[1])+C(a.px0,a.pxmid,!1,M)+C(a.pxmid,a.px0,!1,M)+"Z"+k):p.attr("d",k)}else{var A=C(a.px0,a.px1,!0,1);if(M){var L=1-M;p.attr("d","M"+(c+M*a.px1[0])+","+(u+M*a.px1[1])+C(a.px1,a.px0,!1,M)+"l"+L*a.px0[0]+","+L*a.px0[1]+A+"Z")}else p.attr("d","M"+c+","+u+"l"+a.px0[0]+","+a.px0[1]+A+"Z")}z(e,a,v);var S=g.castOption(y.textposition,a.pts),O=d.selectAll("g.slicetext").data(a.text&&"none"!==S?[0]:[]);O.enter().append("g").classed("slicetext",!0),O.exit().remove(),O.each((function(){var r=s.ensureSingle(n.select(this),"text","",(function(e){e.attr("data-notex",1)})),d=s.ensureUniformFontSize(e,"outside"===S?function(e,t,r){return{color:g.castOption(e.outsidetextfont.color,t.pts)||g.castOption(e.textfont.color,t.pts)||r.color,family:g.castOption(e.outsidetextfont.family,t.pts)||g.castOption(e.textfont.family,t.pts)||r.family,size:g.castOption(e.outsidetextfont.size,t.pts)||g.castOption(e.textfont.size,t.pts)||r.size}}(y,a,i.font):b(y,a,i.font));r.text(a.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(l.font,d).call(f.convertToTspans,e);var p,m=l.bBox(r.node());if("outside"===S)p=D(m,a);else if(p=w(m,a,v),"auto"===S&&p.scale<1){var x=s.ensureUniformFontSize(e,y.outsidetextfont);r.call(l.font,x),p=D(m=l.bBox(r.node()),a)}var _=p.textPosAngle,M=void 0===_?a.pxmid:R(v.r,_);if(p.targetX=c+M[0]*p.rCenter+(p.x||0),p.targetY=u+M[1]*p.rCenter+(p.y||0),N(p,m),p.outside){var k=p.targetY;a.yLabelMin=k-m.height/2,a.yLabelMid=k,a.yLabelMax=k+m.height/2,a.labelExtraX=0,a.labelExtraY=0,T=!0}p.fontSize=d.size,h(y.type,p,i),t[o].transform=p,s.setTransormAndDisplay(r,p)}))}function C(e,t,r,n){var i=n*(t[0]-e[0]),o=n*(t[1]-e[1]);return"a"+n*v.r+","+n*v.r+" 0 "+a.largeArc+(r?" 1 ":" 0 ")+i+","+o}}));var M=n.select(this).selectAll("g.titletext").data(y.title.text?[0]:[]);if(M.enter().append("g").classed("titletext",!0),M.exit().remove(),M.each((function(){var t,r=s.ensureSingle(n.select(this),"text","",(function(e){e.attr("data-notex",1)})),a=y.title.text;y._meta&&(a=s.templateString(a,y._meta)),r.text(a).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(l.font,y.title.font).call(f.convertToTspans,e),t="middle center"===y.title.position?function(e){var t=Math.sqrt(e.titleBox.width*e.titleBox.width+e.titleBox.height*e.titleBox.height);return{x:e.cx,y:e.cy,scale:e.trace.hole*e.r*2/t,tx:0,ty:-e.titleBox.height/2+e.trace.title.font.size}}(v):O(v,d),r.attr("transform",u(t.x,t.y)+c(Math.min(1,t.scale))+u(t.tx,t.ty))})),T&&function(e,t){var r,n,a,i,o,l,c,u,f,d,h,p,v;function y(e,t){return e.pxmid[1]-t.pxmid[1]}function m(e,t){return t.pxmid[1]-e.pxmid[1]}function x(e,r){r||(r={});var a,u,f,h,p=r.labelExtraY+(n?r.yLabelMax:r.yLabelMin),v=n?e.yLabelMin:e.yLabelMax,y=n?e.yLabelMax:e.yLabelMin,m=e.cyFinal+o(e.px0[1],e.px1[1]),x=p-v;if(x*c>0&&(e.labelExtraY=x),s.isArrayOrTypedArray(t.pull))for(u=0;u=(g.castOption(t.pull,f.pts)||0)||((e.pxmid[1]-f.pxmid[1])*c>0?(x=f.cyFinal+o(f.px0[1],f.px1[1])-v-e.labelExtraY)*c>0&&(e.labelExtraY+=x):(y+e.labelExtraY-m)*c>0&&(a=3*l*Math.abs(u-d.indexOf(e)),(h=f.cxFinal+i(f.px0[0],f.px1[0])+a-(e.cxFinal+e.pxmid[0])-e.labelExtraX)*l>0&&(e.labelExtraX+=h)))}for(n=0;n<2;n++)for(a=n?y:m,o=n?Math.max:Math.min,c=n?1:-1,r=0;r<2;r++){for(i=r?Math.max:Math.min,l=r?1:-1,(u=e[n][r]).sort(a),f=e[1-n][r],d=f.concat(u),p=[],h=0;hMath.abs(f)?l+="l"+f*e.pxmid[0]/e.pxmid[1]+","+f+"H"+(i+e.labelExtraX+c):l+="l"+e.labelExtraX+","+u+"v"+(f-u)+"h"+c}else l+="V"+(e.yLabelMid+e.labelExtraY)+"h"+c;s.ensureSingle(r,"path","textline").call(o.stroke,t.outsidetextfont.color).attr({"stroke-width":Math.min(2,t.outsidetextfont.size/8),d:l,fill:"none"})}else r.select("path.textline").remove()}))}(m,y),T&&y.automargin){var k=l.bBox(p.node()),A=y.domain,L=d.w*(A.x[1]-A.x[0]),S=d.h*(A.y[1]-A.y[0]),C=(.5*L-v.r)/d.w,P=(.5*S-v.r)/d.h;a.autoMargin(e,"pie."+y.uid+".automargin",{xl:A.x[0]-C,xr:A.x[1]+C,yb:A.y[0]-P,yt:A.y[1]+P,l:Math.max(v.cx-v.r-k.left,0),r:Math.max(k.right-(v.cx+v.r),0),b:Math.max(k.bottom-(v.cy+v.r),0),t:Math.max(v.cy-v.r-k.top,0),pad:5})}}))}));setTimeout((function(){v.selectAll("tspan").each((function(){var e=n.select(this);e.attr("dy")&&e.attr("dy",e.attr("dy"))}))}),0)},formatSliceLabel:z,transformInsideText:w,determineInsideTextFont:b,positionTitleOutside:O,prerenderTitles:_,layoutAreas:I,attachFxHandlers:x,computeTransform:N}},2152:function(e,t,r){"use strict";var n=r(3428),a=r(528),i=r(2744).resizeText;e.exports=function(e){var t=e._fullLayout._pielayer.selectAll(".trace");i(e,t,"pie"),t.each((function(t){var r=t[0].trace,i=n.select(this);i.style({opacity:r.opacity}),i.selectAll("path.surface").each((function(t){n.select(this).call(a,t,r,e)}))}))}},528:function(e,t,r){"use strict";var n=r(6308),a=r(9656).castOption,i=r(1552);e.exports=function(e,t,r,o){var l=r.marker.line,s=a(l.color,t.pts)||n.defaultLine,c=a(l.width,t.pts)||0;e.call(i,t,r,o).style("stroke-width",c).call(n.stroke,s)}},148:function(e,t,r){"use strict";var n=r(3400);e.exports=function(e,t){for(var r=0;rs&&O[y].gap;)y--;for(x=O[y].s,v=O.length-1;v>y;v--)O[v].s=x;for(;sL[f]&&f=0;f--){var d=e[f];if("scatter"===d.type&&d.xaxis===c.xaxis&&d.yaxis===c.yaxis){d.opacity=void 0;break}}}}}},8800:function(e,t,r){"use strict";var n=r(3400),a=r(4040),i=r(2904),o=r(8200),l=r(3028),s=r(3980),c=r(1147),u=r(3912),f=r(4428),d=r(6828),h=r(1731),p=r(124),v=r(840),g=r(3400).coercePattern;e.exports=function(e,t,r,y){function m(r,a){return n.coerce(e,t,i,r,a)}var x=s(e,t,y,m);if(x||(t.visible=!1),t.visible){c(e,t,y,m),m("xhoverformat"),m("yhoverformat");var b=u(e,t,y,m);"group"===y.scattermode&&void 0===t.orientation&&m("orientation","v");var _=!b&&x=Math.min(t,r)&&p<=Math.max(t,r)?0:1/0}var n=Math.max(3,e.mrc||0),a=1-1/n,i=Math.abs(d.c2p(e.x)-p);return i=Math.min(t,r)&&v<=Math.max(t,r)?0:1/0}var n=Math.max(3,e.mrc||0),a=1-1/n,i=Math.abs(h.c2p(e.y)-v);return ir!=(c=a[n][1])>=r&&(o=a[n-1][0],l=a[n][0],c-s&&(i=o+(l-o)*(r-s)/(c-s),f=Math.min(f,i),p=Math.max(p,i)));return{x0:f=Math.max(f,0),x1:p=Math.min(p,d._length),y0:r,y1:r}}(f._polygons);null===P&&(P={x0:g[0],x1:g[0],y0:g[1],y1:g[1]});var I=l.defaultLine;return l.opacity(f.fillcolor)?I=f.fillcolor:l.opacity((f.line||{}).color)&&(I=f.line.color),n.extendFlat(e,{distance:e.maxHoverDistance,x0:P.x0,x1:P.x1,y0:P.y0,y1:P.y1,color:I,hovertemplate:!1}),delete e.index,f.text&&!n.isArrayOrTypedArray(f.text)?e.text=String(f.text):e.text=f.name,[e]}}},5875:function(e,t,r){"use strict";var n=r(3028);e.exports={hasLines:n.hasLines,hasMarkers:n.hasMarkers,hasText:n.hasText,isBubble:n.isBubble,attributes:r(2904),layoutAttributes:r(5308),supplyDefaults:r(8800),crossTraceDefaults:r(5036),supplyLayoutDefaults:r(9748),calc:r(6356).calc,crossTraceCalc:r(6664),arraysToCalcdata:r(148),plot:r(6504),colorbar:r(5528),formatLabels:r(6688),style:r(6844).style,styleOnSelect:r(6844).styleOnSelect,hoverPoints:r(8723),selectPoints:r(1560),animatable:!0,moduleType:"trace",name:"scatter",basePlotModule:r(7952),categories:["cartesian","svg","symbols","errorBarsOK","showLegend","scatter-like","zoomScale"],meta:{}}},5308:function(e){"use strict";e.exports={scattermode:{valType:"enumerated",values:["group","overlay"],dflt:"overlay",editType:"calc"},scattergap:{valType:"number",min:0,max:1,editType:"calc"}}},9748:function(e,t,r){"use strict";var n=r(3400),a=r(5308);e.exports=function(e,t){var r,i="group"===t.barmode;"group"===t.scattermode&&("scattergap",r=i?t.bargap:.2,n.coerce(e,t,a,"scattergap",r))}},6828:function(e,t,r){"use strict";var n=r(3400).isArrayOrTypedArray,a=r(4288).hasColorscale,i=r(7260);e.exports=function(e,t,r,o,l,s){s||(s={});var c=(e.marker||{}).color;c&&c._inputArray&&(c=c._inputArray),l("line.color",r),a(e,"line")?i(e,t,o,l,{prefix:"line.",cLetter:"c"}):l("line.color",!n(c)&&c||r),l("line.width"),s.noDash||l("line.dash"),s.backoff&&l("line.backoff")}},2340:function(e,t,r){"use strict";var n=r(3616),a=r(9032),i=a.BADNUM,o=a.LOG_CLIP,l=o+.5,s=o-.5,c=r(3400),u=c.segmentsIntersect,f=c.constrain,d=r(8200);e.exports=function(e,t){var r,a,o,h,p,v,g,y,m,x,b,_,w,T,M,k,A,L,S=t.trace||{},D=t.xaxis,O=t.yaxis,C="log"===D.type,P="log"===O.type,I=D._length,R=O._length,z=t.backoff,N=S.marker,F=t.connectGaps,E=t.baseTolerance,H=t.shape,B="linear"===H,j=S.fill&&"none"!==S.fill,Y=[],V=d.minTolerance,U=e.length,q=new Array(U),G=0;function Z(r){var n=e[r];if(!n)return!1;var a=t.linearized?D.l2p(n.x):D.c2p(n.x),o=t.linearized?O.l2p(n.y):O.c2p(n.y);if(a===i){if(C&&(a=D.c2p(n.x,!0)),a===i)return!1;P&&o===i&&(a*=Math.abs(D._m*R*(D._m>0?l:s)/(O._m*I*(O._m>0?l:s)))),a*=1e3}if(o===i){if(P&&(o=O.c2p(n.y,!0)),o===i)return!1;o*=1e3}return[a,o]}function W(e,t,r,n){var a=r-e,i=n-t,o=.5-e,l=.5-t,s=a*a+i*i,c=a*o+i*l;if(c>0&&coe||e[1]se)return[f(e[0],ie,oe),f(e[1],le,se)]}function fe(e,t){return e[0]===t[0]&&(e[0]===ie||e[0]===oe)||e[1]===t[1]&&(e[1]===le||e[1]===se)||void 0}function de(e,t,r){return function(n,a){var i=ue(n),o=ue(a),l=[];if(i&&o&&fe(i,o))return l;i&&l.push(i),o&&l.push(o);var s=2*c.constrain((n[e]+a[e])/2,t,r)-((i||n)[e]+(o||a)[e]);return s&&((i&&o?s>0==i[e]>o[e]?i:o:i||o)[e]+=s),l}}function he(e){var t=e[0],r=e[1],n=t===q[G-1][0],a=r===q[G-1][1];if(!n||!a)if(G>1){var i=t===q[G-2][0],o=r===q[G-2][1];n&&(t===ie||t===oe)&&i?o?G--:q[G-1]=e:a&&(r===le||r===se)&&o?i?G--:q[G-1]=e:q[G++]=e}else q[G++]=e}function pe(e){q[G-1][0]!==e[0]&&q[G-1][1]!==e[1]&&he([$,ee]),he(e),te=null,$=ee=0}"linear"===H||"spline"===H?ne=function(e,t){for(var r=[],n=0,a=0;a<4;a++){var i=ce[a],o=u(e[0],e[1],t[0],t[1],i[0],i[1],i[2],i[3]);o&&(!n||Math.abs(o.x-r[0][0])>1||Math.abs(o.y-r[0][1])>1)&&(o=[o.x,o.y],n&&J(o,e)oe?oe:0,Q=t[1]se?se:0,K||Q){if(G)if(te){var n=ne(te,t);n.length>1&&(pe(n[0]),q[G++]=n[1])}else re=ne(q[G-1],t)[0],q[G++]=re;else q[G++]=[K||t[0],Q||t[1]];var a=q[G-1];K&&Q&&(a[0]!==K||a[1]!==Q)?(te&&($!==K&&ee!==Q?he($&&ee?(i=te,l=(o=t)[0]-i[0],s=(o[1]-i[1])/l,(i[1]*o[0]-o[1]*i[0])/l>0?[s>0?ie:oe,se]:[s>0?oe:ie,le]):[$||K,ee||Q]):$&&ee&&he([$,ee])),he([K,Q])):$-K&&ee-Q&&he([K||$,Q||ee]),te=t,$=K,ee=Q}else te&&pe(ne(te,t)[0]),q[G++]=t;var i,o,l,s}for(r=0;rX(v,ye))break;o=v,(w=m[0]*y[0]+m[1]*y[1])>b?(b=w,h=v,g=!1):w<_&&(_=w,p=v,g=!0)}if(g?(ge(h),o!==p&&ge(p)):(p!==a&&ge(p),o!==h&&ge(h)),ge(o),r>=e.length||!v)break;ge(v),a=v}}else ge(h)}te&&he([$||te[0],ee||te[1]]),Y.push(q.slice(0,G))}var me=H.slice(H.length-1);if(z&&"h"!==me&&"v"!==me){for(var xe=!1,be=-1,_e=[],we=0;we=0?s=h:(s=h=d,d++),s0?Math.max(r,i):0}}},5528:function(e){"use strict";e.exports={container:"marker",min:"cmin",max:"cmax"}},4428:function(e,t,r){"use strict";var n=r(6308),a=r(4288).hasColorscale,i=r(7260),o=r(3028);e.exports=function(e,t,r,l,s,c){var u=o.isBubble(e),f=(e.line||{}).color;c=c||{},f&&(r=f),s("marker.symbol"),s("marker.opacity",u?.7:1),s("marker.size"),c.noAngle||(s("marker.angle"),c.noAngleRef||s("marker.angleref"),c.noStandOff||s("marker.standoff")),s("marker.color",r),a(e,"marker")&&i(e,t,l,s,{prefix:"marker.",cLetter:"c"}),c.noSelect||(s("selected.marker.color"),s("unselected.marker.color"),s("selected.marker.size"),s("unselected.marker.size")),c.noLine||(s("marker.line.color",f&&!Array.isArray(f)&&t.marker.color!==f?f:u?n.background:n.defaultLine),a(e,"marker.line")&&i(e,t,l,s,{prefix:"marker.line.",cLetter:"c"}),s("marker.line.width",u?1:0)),u&&(s("marker.sizeref"),s("marker.sizemin"),s("marker.sizemode")),c.gradient&&"none"!==s("marker.gradient.type")&&s("marker.gradient.color")}},1147:function(e,t,r){"use strict";var n=r(3400).dateTick0,a=r(9032).ONEWEEK;function i(e,t){return n(t,e%a==0?1:0)}e.exports=function(e,t,r,n,a){if(a||(a={x:!0,y:!0}),a.x){var o=n("xperiod");o&&(n("xperiod0",i(o,t.xcalendar)),n("xperiodalignment"))}if(a.y){var l=n("yperiod");l&&(n("yperiod0",i(l,t.ycalendar)),n("yperiodalignment"))}}},6504:function(e,t,r){"use strict";var n=r(3428),a=r(4040),i=r(3400),o=i.ensureSingle,l=i.identity,s=r(3616),c=r(3028),u=r(2340),f=r(4328),d=r(2065).tester;function h(e,t,r,f,h,p,v){var g,y=e._context.staticPlot;!function(e,t,r,a,o){var l=r.xaxis,s=r.yaxis,u=n.extent(i.simpleMap(l.range,l.r2c)),f=n.extent(i.simpleMap(s.range,s.r2c)),d=a[0].trace;if(c.hasMarkers(d)){var h=d.marker.maxdisplayed;if(0!==h){var p=a.filter((function(e){return e.x>=u[0]&&e.x<=u[1]&&e.y>=f[0]&&e.y<=f[1]})),v=Math.ceil(p.length/h),g=0;o.forEach((function(e,r){var n=e[0].trace;c.hasMarkers(n)&&n.marker.maxdisplayed>0&&r0;function x(e){return m?e.transition():e}var b=r.xaxis,_=r.yaxis,w=f[0].trace,T=w.line,M=n.select(p),k=o(M,"g","errorbars"),A=o(M,"g","lines"),L=o(M,"g","points"),S=o(M,"g","text");if(a.getComponentMethod("errorbars","plot")(e,k,r,v),!0===w.visible){var D,O;x(M).style("opacity",w.opacity);var C,P,I=w.fill.charAt(w.fill.length-1);"x"!==I&&"y"!==I&&(I=""),"y"===I?(C=1,P=_.c2p(0,!0)):"x"===I&&(C=0,P=b.c2p(0,!0)),f[0][r.isRangePlot?"nodeRangePlot3":"node3"]=M;var R,z,N="",F=[],E=w._prevtrace,H=null,B=null;E&&(N=E._prevRevpath||"",O=E._nextFill,F=E._ownPolygons,H=E._fillsegments,B=E._fillElement);var j,Y,V,U,q,G,Z="",W="",X=[];w._polygons=[];var J=[],K=[],Q=i.noop;if(D=w._ownFill,c.hasLines(w)||"none"!==w.fill){O&&O.datum(f),-1!==["hv","vh","hvh","vhv"].indexOf(T.shape)?(j=s.steps(T.shape),Y=s.steps(T.shape.split("").reverse().join(""))):j=Y="spline"===T.shape?function(e){var t=e[e.length-1];return e.length>1&&e[0][0]===t[0]&&e[0][1]===t[1]?s.smoothclosed(e.slice(1),T.smoothing):s.smoothopen(e,T.smoothing)}:function(e){return"M"+e.join("L")},V=function(e){return Y(e.reverse())},K=u(f,{xaxis:b,yaxis:_,trace:w,connectGaps:w.connectgaps,baseTolerance:Math.max(T.width||1,3)/4,shape:T.shape,backoff:T.backoff,simplify:T.simplify,fill:w.fill}),J=new Array(K.length);var $=0;for(g=0;g0,g=f(e,t,r);(u=a.selectAll("g.trace").data(g,(function(e){return e[0].trace.uid}))).enter().append("g").attr("class",(function(e){return"trace scatter trace"+e[0].trace.uid})).style("stroke-miterlimit",2),u.order(),function(e,t,r){t.each((function(t){var a=o(n.select(this),"g","fills");s.setClipUrl(a,r.layerClipId,e);var i=t[0].trace,c=[];i._ownfill&&c.push("_ownFill"),i._nexttrace&&c.push("_nextFill");var u=a.selectAll("g").data(c,l);u.enter().append("g"),u.exit().each((function(e){i[e]=null})).remove(),u.order().each((function(e){i[e]=o(n.select(this),"path","js-fill")}))}))}(e,u,t),v?(c&&(d=c()),n.transition().duration(i.duration).ease(i.easing).each("end",(function(){d&&d()})).each("interrupt",(function(){d&&d()})).each((function(){a.selectAll("g.trace").each((function(r,n){h(e,n,t,r,g,this,i)}))}))):u.each((function(r,n){h(e,n,t,r,g,this,i)})),p&&u.exit().remove(),a.selectAll("path:not([d])").remove()}},1560:function(e,t,r){"use strict";var n=r(3028);e.exports=function(e,t){var r,a,i,o,l=e.cd,s=e.xaxis,c=e.yaxis,u=[],f=l[0].trace;if(!n.hasMarkers(f)&&!n.hasText(f))return[];if(!1===t)for(r=0;ra&&(a=u,o=c)}}return a?i(o):l};case"rms":return function(e,t){for(var r=0,a=0,o=0;o":return function(e){return h(e)>f};case">=":return function(e){return h(e)>=f};case"[]":return function(e){var t=h(e);return t>=f[0]&&t<=f[1]};case"()":return function(e){var t=h(e);return t>f[0]&&t=f[0]&&tf[0]&&t<=f[1]};case"][":return function(e){var t=h(e);return t<=f[0]||t>=f[1]};case")(":return function(e){var t=h(e);return tf[1]};case"](":return function(e){var t=h(e);return t<=f[0]||t>f[1]};case")[":return function(e){var t=h(e);return t=f[1]};case"{}":return function(e){return-1!==f.indexOf(h(e))};case"}{":return function(e){return-1===f.indexOf(h(e))}}}(r,i.getDataToCoordFunc(e,t,l,a),d),x={},b={},_=0;p?(g=function(e){x[e.astr]=n.extendDeep([],e.get()),e.set(new Array(f))},y=function(e,t){var r=x[e.astr][t];e.get()[t]=r}):(g=function(e){x[e.astr]=n.extendDeep([],e.get()),e.set([])},y=function(e,t){var r=x[e.astr][t];e.get().push(r)}),M(g);for(var w=o(t.transforms,r),T=0;T1?"%{group} (%{trace})":"%{group}");var s=e.styles,c=o.styles=[];if(s)for(i=0;i1&&-1!==a.indexOf("Macintosh")&&-1!==a.indexOf("Safari")&&(i=!0),i}},3428:function(e,t,r){var n,a;(function(){var i={version:"3.8.0"},o=[].slice,l=function(e){return o.call(e)},s=self.document;function c(e){return e&&(e.ownerDocument||e.document||e).documentElement}function u(e){return e&&(e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView)}if(s)try{l(s.documentElement.childNodes)[0].nodeType}catch(e){l=function(e){for(var t=e.length,r=new Array(t);t--;)r[t]=e[t];return r}}if(Date.now||(Date.now=function(){return+new Date}),s)try{s.createElement("DIV").style.setProperty("opacity",0,"")}catch(e){var f=this.Element.prototype,d=f.setAttribute,h=f.setAttributeNS,p=this.CSSStyleDeclaration.prototype,v=p.setProperty;f.setAttribute=function(e,t){d.call(this,e,t+"")},f.setAttributeNS=function(e,t,r){h.call(this,e,t,r+"")},p.setProperty=function(e,t,r){v.call(this,e,t+"",r)}}function g(e,t){return et?1:e>=t?0:NaN}function y(e){return null===e?NaN:+e}function m(e){return!isNaN(e)}function x(e){return{left:function(t,r,n,a){for(arguments.length<3&&(n=0),arguments.length<4&&(a=t.length);n>>1;e(t[i],r)<0?n=i+1:a=i}return n},right:function(t,r,n,a){for(arguments.length<3&&(n=0),arguments.length<4&&(a=t.length);n>>1;e(t[i],r)>0?a=i:n=i+1}return n}}}i.ascending=g,i.descending=function(e,t){return te?1:t>=e?0:NaN},i.min=function(e,t){var r,n,a=-1,i=e.length;if(1===arguments.length){for(;++a=n){r=n;break}for(;++an&&(r=n)}else{for(;++a=n){r=n;break}for(;++an&&(r=n)}return r},i.max=function(e,t){var r,n,a=-1,i=e.length;if(1===arguments.length){for(;++a=n){r=n;break}for(;++ar&&(r=n)}else{for(;++a=n){r=n;break}for(;++ar&&(r=n)}return r},i.extent=function(e,t){var r,n,a,i=-1,o=e.length;if(1===arguments.length){for(;++i=n){r=a=n;break}for(;++in&&(r=n),a=n){r=a=n;break}for(;++in&&(r=n),a1)return o/(s-1)},i.deviation=function(){var e=i.variance.apply(this,arguments);return e?Math.sqrt(e):e};var b=x(g);function _(e){return e.length}i.bisectLeft=b.left,i.bisect=i.bisectRight=b.right,i.bisector=function(e){return x(1===e.length?function(t,r){return g(e(t),r)}:e)},i.shuffle=function(e,t,r){(i=arguments.length)<3&&(r=e.length,i<2&&(t=0));for(var n,a,i=r-t;i;)a=Math.random()*i--|0,n=e[i+t],e[i+t]=e[a+t],e[a+t]=n;return e},i.permute=function(e,t){for(var r=t.length,n=new Array(r);r--;)n[r]=e[t[r]];return n},i.pairs=function(e){for(var t=0,r=e.length-1,n=e[0],a=new Array(r<0?0:r);t=0;)for(t=(n=e[a]).length;--t>=0;)r[--o]=n[t];return r};var w=Math.abs;function T(e,t){for(var r in t)Object.defineProperty(e.prototype,r,{value:t[r],enumerable:!1})}function M(){this._=Object.create(null)}i.range=function(e,t,r){if(arguments.length<3&&(r=1,arguments.length<2&&(t=e,e=0)),(t-e)/r==1/0)throw new Error("infinite range");var n,a=[],i=function(e){for(var t=1;e*t%1;)t*=10;return t}(w(r)),o=-1;if(e*=i,t*=i,(r*=i)<0)for(;(n=e+r*++o)>t;)a.push(n/i);else for(;(n=e+r*++o)=n.length)return t?t.call(r,i):e?i.sort(e):i;for(var s,c,u,f,d=-1,h=i.length,p=n[l++],v=new M;++d=n.length)return e;var r=[],i=a[t++];return e.forEach((function(e,n){r.push({key:e,values:l(n,t)})})),i?r.sort((function(e,t){return i(e.key,t.key)})):r}return r.map=function(e,t){return o(t,e,0)},r.entries=function(e){return l(o(i.map,e,0),0)},r.key=function(e){return n.push(e),r},r.sortKeys=function(e){return a[n.length-1]=e,r},r.sortValues=function(t){return e=t,r},r.rollup=function(e){return t=e,r},r},i.set=function(e){var t=new R;if(e)for(var r=0,n=e.length;r=0&&(n=e.slice(r+1),e=e.slice(0,r)),e)return arguments.length<2?this[e].on(n):this[e].on(n,t);if(2===arguments.length){if(null==t)for(e in this)this.hasOwnProperty(e)&&this[e].on(n,null);return this}},i.event=null,i.requote=function(e){return e.replace(q,"\\$&")};var q=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,G={}.__proto__?function(e,t){e.__proto__=t}:function(e,t){for(var r in t)e[r]=t[r]};function Z(e){return G(e,K),e}var W=function(e,t){return t.querySelector(e)},X=function(e,t){return t.querySelectorAll(e)},J=function(e,t){var r=e.matches||e[F(e,"matchesSelector")];return J=function(e,t){return r.call(e,t)},J(e,t)};"function"==typeof Sizzle&&(W=function(e,t){return Sizzle(e,t)[0]||null},X=Sizzle,J=Sizzle.matchesSelector),i.selection=function(){return i.select(s.documentElement)};var K=i.selection.prototype=[];function Q(e){return"function"==typeof e?e:function(){return W(e,this)}}function $(e){return"function"==typeof e?e:function(){return X(e,this)}}K.select=function(e){var t,r,n,a,i=[];e=Q(e);for(var o=-1,l=this.length;++o=0&&"xmlns"!==(r=e.slice(0,t))&&(e=e.slice(t+1)),te.hasOwnProperty(r)?{space:te[r],local:e}:e}},K.attr=function(e,t){if(arguments.length<2){if("string"==typeof e){var r=this.node();return(e=i.ns.qualify(e)).local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}for(t in e)this.each(re(t,e[t]));return this}return this.each(re(e,t))},K.classed=function(e,t){if(arguments.length<2){if("string"==typeof e){var r=this.node(),n=(e=ie(e)).length,a=-1;if(t=r.classList){for(;++a=0;)(r=n[a])&&(i&&i!==r.nextSibling&&i.parentNode.insertBefore(r,i),i=r);return this},K.sort=function(e){e=pe.apply(this,arguments);for(var t=-1,r=this.length;++t0&&(e=e.slice(0,a));var s=xe.get(e);function c(){var t=this[n];t&&(this.removeEventListener(e,t,t.$),delete this[n])}return s&&(e=s,o=_e),a?t?function(){var a=o(t,l(arguments));c.call(this),this.addEventListener(e,this[n]=a,a.$=r),a._=t}:c:t?H:function(){var t,r=new RegExp("^__on([^.]+)"+i.requote(e)+"$");for(var n in this)if(t=n.match(r)){var a=this[n];this.removeEventListener(t[1],a,a.$),delete this[n]}}}i.selection.enter=ge,i.selection.enter.prototype=ye,ye.append=K.append,ye.empty=K.empty,ye.node=K.node,ye.call=K.call,ye.size=K.size,ye.select=function(e){for(var t,r,n,a,i,o=[],l=-1,s=this.length;++l=n&&(n=t+1);!(o=l[n])&&++n1?Ie:e<-1?-Ie:Math.asin(e)}function Fe(e){return((e=Math.exp(e))+1/e)/2}var Ee=Math.SQRT2;i.interpolateZoom=function(e,t){var r,n,a=e[0],i=e[1],o=e[2],l=t[0],s=t[1],c=t[2],u=l-a,f=s-i,d=u*u+f*f;if(d0&&(e=e.transition().duration(v)),e.call(w.event)}function L(){l&&l.domain(o.range().map((function(e){return(e-d.x)/d.k})).map(o.invert)),f&&f.domain(c.range().map((function(e){return(e-d.y)/d.k})).map(c.invert))}function S(e){g++||e({type:"zoomstart"})}function D(e){L(),e({type:"zoom",scale:d.k,translate:[d.x,d.y]})}function O(e){--g||(e({type:"zoomend"}),t=null)}function C(){var e=this,t=_.of(e,arguments),r=0,n=i.select(u(e)).on(m,(function(){r=1,k(i.mouse(e),a),D(t)})).on(x,(function(){n.on(m,null).on(x,null),o(r),O(t)})),a=T(i.mouse(e)),o=Me(e);Ja.call(e),S(t)}function P(){var e,t=this,r=_.of(t,arguments),n={},o=0,l=".zoom-"+i.event.changedTouches[0].identifier,s="touchmove"+l,c="touchend"+l,u=[],f=i.select(t),h=Me(t);function p(){var r=i.touches(t);return e=d.k,r.forEach((function(e){e.identifier in n&&(n[e.identifier]=T(e))})),r}function v(){var e=i.event.target;i.select(e).on(s,g).on(c,m),u.push(e);for(var r=i.event.changedTouches,l=0,f=r.length;l1){y=h[0];var x=h[1],b=y[0]-x[0],_=y[1]-x[1];o=b*b+_*_}}function g(){var l,s,c,u,f=i.touches(t);Ja.call(t);for(var d=0,h=f.length;d360?e-=360:e<0&&(e+=360),e<60?n+(a-n)*e/60:e<180?a:e<240?n+(a-n)*(240-e)/60:n}(e))}return e=isNaN(e)?0:(e%=360)<0?e+360:e,t=isNaN(t)||t<0?0:t>1?1:t,n=2*(r=r<0?0:r>1?1:r)-(a=r<=.5?r*(1+t):r+t-r*t),new it(i(e+120),i(e),i(e-120))}function Ge(e,t,r){return this instanceof Ge?(this.h=+e,this.c=+t,void(this.l=+r)):arguments.length<2?e instanceof Ge?new Ge(e.h,e.c,e.l):function(e,t,r){return e>0?new Ge(Math.atan2(r,t)*ze,Math.sqrt(t*t+r*r),e):new Ge(NaN,NaN,e)}(e instanceof Xe?e.l:(e=dt((e=i.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new Ge(e,t,r)}Ue.brighter=function(e){return e=Math.pow(.7,arguments.length?e:1),new Ve(this.h,this.s,this.l/e)},Ue.darker=function(e){return e=Math.pow(.7,arguments.length?e:1),new Ve(this.h,this.s,e*this.l)},Ue.rgb=function(){return qe(this.h,this.s,this.l)},i.hcl=Ge;var Ze=Ge.prototype=new Ye;function We(e,t,r){return isNaN(e)&&(e=0),isNaN(t)&&(t=0),new Xe(r,Math.cos(e*=Re)*t,Math.sin(e)*t)}function Xe(e,t,r){return this instanceof Xe?(this.l=+e,this.a=+t,void(this.b=+r)):arguments.length<2?e instanceof Xe?new Xe(e.l,e.a,e.b):e instanceof Ge?We(e.h,e.c,e.l):dt((e=it(e)).r,e.g,e.b):new Xe(e,t,r)}Ze.brighter=function(e){return new Ge(this.h,this.c,Math.min(100,this.l+Je*(arguments.length?e:1)))},Ze.darker=function(e){return new Ge(this.h,this.c,Math.max(0,this.l-Je*(arguments.length?e:1)))},Ze.rgb=function(){return We(this.h,this.c,this.l).rgb()},i.lab=Xe;var Je=18,Ke=.95047,Qe=1,$e=1.08883,et=Xe.prototype=new Ye;function tt(e,t,r){var n=(e+16)/116,a=n+t/500,i=n-r/200;return new it(at(3.2404542*(a=rt(a)*Ke)-1.5371385*(n=rt(n)*Qe)-.4985314*(i=rt(i)*$e)),at(-.969266*a+1.8760108*n+.041556*i),at(.0556434*a-.2040259*n+1.0572252*i))}function rt(e){return e>.206893034?e*e*e:(e-4/29)/7.787037}function nt(e){return e>.008856?Math.pow(e,1/3):7.787037*e+4/29}function at(e){return Math.round(255*(e<=.00304?12.92*e:1.055*Math.pow(e,1/2.4)-.055))}function it(e,t,r){return this instanceof it?(this.r=~~e,this.g=~~t,void(this.b=~~r)):arguments.length<2?e instanceof it?new it(e.r,e.g,e.b):ut(""+e,it,qe):new it(e,t,r)}function ot(e){return new it(e>>16,e>>8&255,255&e)}function lt(e){return ot(e)+""}et.brighter=function(e){return new Xe(Math.min(100,this.l+Je*(arguments.length?e:1)),this.a,this.b)},et.darker=function(e){return new Xe(Math.max(0,this.l-Je*(arguments.length?e:1)),this.a,this.b)},et.rgb=function(){return tt(this.l,this.a,this.b)},i.rgb=it;var st=it.prototype=new Ye;function ct(e){return e<16?"0"+Math.max(0,e).toString(16):Math.min(255,e).toString(16)}function ut(e,t,r){var n,a,i,o=0,l=0,s=0;if(n=/([a-z]+)\((.*)\)/.exec(e=e.toLowerCase()))switch(a=n[2].split(","),n[1]){case"hsl":return r(parseFloat(a[0]),parseFloat(a[1])/100,parseFloat(a[2])/100);case"rgb":return t(pt(a[0]),pt(a[1]),pt(a[2]))}return(i=vt.get(e))?t(i.r,i.g,i.b):(null==e||"#"!==e.charAt(0)||isNaN(i=parseInt(e.slice(1),16))||(4===e.length?(o=(3840&i)>>4,o|=o>>4,l=240&i,l|=l>>4,s=15&i,s|=s<<4):7===e.length&&(o=(16711680&i)>>16,l=(65280&i)>>8,s=255&i)),t(o,l,s))}function ft(e,t,r){var n,a,i=Math.min(e/=255,t/=255,r/=255),o=Math.max(e,t,r),l=o-i,s=(o+i)/2;return l?(a=s<.5?l/(o+i):l/(2-o-i),n=e==o?(t-r)/l+(t0&&s<1?0:n),new Ve(n,a,s)}function dt(e,t,r){var n=nt((.4124564*(e=ht(e))+.3575761*(t=ht(t))+.1804375*(r=ht(r)))/Ke),a=nt((.2126729*e+.7151522*t+.072175*r)/Qe);return Xe(116*a-16,500*(n-a),200*(a-nt((.0193339*e+.119192*t+.9503041*r)/$e)))}function ht(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function pt(e){var t=parseFloat(e);return"%"===e.charAt(e.length-1)?Math.round(2.55*t):t}st.brighter=function(e){e=Math.pow(.7,arguments.length?e:1);var t=this.r,r=this.g,n=this.b,a=30;return t||r||n?(t&&t=200&&t<300||304===t){try{e=r.call(a,c)}catch(e){return void o.error.call(a,e)}o.load.call(a,e)}else o.error.call(a,c)}return self.XDomainRequest&&!("withCredentials"in c)&&/^(http(s)?:)?\/\//.test(e)&&(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=f:c.onreadystatechange=function(){c.readyState>3&&f()},c.onprogress=function(e){var t=i.event;i.event=e;try{o.progress.call(a,c)}finally{i.event=t}},a.header=function(e,t){return e=(e+"").toLowerCase(),arguments.length<2?s[e]:(null==t?delete s[e]:s[e]=t+"",a)},a.mimeType=function(e){return arguments.length?(t=null==e?null:e+"",a):t},a.responseType=function(e){return arguments.length?(u=e,a):u},a.response=function(e){return r=e,a},["get","post"].forEach((function(e){a[e]=function(){return a.send.apply(a,[e].concat(l(arguments)))}})),a.send=function(r,n,i){if(2===arguments.length&&"function"==typeof n&&(i=n,n=null),c.open(r,e,!0),null==t||"accept"in s||(s.accept=t+",*/*"),c.setRequestHeader)for(var l in s)c.setRequestHeader(l,s[l]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=u&&(c.responseType=u),null!=i&&a.on("error",i).on("load",(function(e){i(null,e)})),o.beforesend.call(a,c),c.send(null==n?null:n),a},a.abort=function(){return c.abort(),a},i.rebind(a,o,"on"),null==n?a:a.get(function(e){return 1===e.length?function(t,r){e(null==t?r:null)}:e}(n))}vt.forEach((function(e,t){vt.set(e,ot(t))})),i.functor=gt,i.xhr=yt(z),i.dsv=function(e,t){var r=new RegExp('["'+e+"\n]"),n=e.charCodeAt(0);function a(e,r,n){arguments.length<3&&(n=r,r=null);var a=mt(e,t,null==r?i:o(r),n);return a.row=function(e){return arguments.length?a.response(null==(r=e)?i:o(e)):r},a}function i(e){return a.parse(e.responseText)}function o(e){return function(t){return a.parse(t.responseText,e)}}function l(t){return t.map(s).join(e)}function s(e){return r.test(e)?'"'+e.replace(/\"/g,'""')+'"':e}return a.parse=function(e,t){var r;return a.parseRows(e,(function(e,n){if(r)return r(e,n-1);var a=function(t){for(var r={},n=e.length,a=0;a=s)return o;if(a)return a=!1,i;var t=c;if(34===e.charCodeAt(t)){for(var r=t;r++24?(isFinite(t)&&(clearTimeout(wt),wt=setTimeout(kt,t)),_t=0):(_t=1,Tt(kt))}function At(){for(var e=Date.now(),t=xt;t;)e>=t.t&&t.c(e-t.t)&&(t.c=null),t=t.n;return e}function Lt(){for(var e,t=xt,r=1/0;t;)t.c?(t.t1&&(t=e[i[o-2]],r=e[i[o-1]],n=e[l],(r[0]-t[0])*(n[1]-t[1])-(r[1]-t[1])*(n[0]-t[0])<=0);)--o;i[o++]=l}return i.slice(0,o)}function Ct(e,t){return e[0]-t[0]||e[1]-t[1]}i.timer=function(){Mt.apply(this,arguments)},i.timer.flush=function(){At(),Lt()},i.round=function(e,t){return t?Math.round(e*(t=Math.pow(10,t)))/t:Math.round(e)},i.geom={},i.geom.hull=function(e){var t=St,r=Dt;if(arguments.length)return n(e);function n(e){if(e.length<3)return[];var n,a=gt(t),i=gt(r),o=e.length,l=[],s=[];for(n=0;n=0;--n)h.push(e[l[c[n]][2]]);for(n=+f;nSe)l=l.L;else{if(!((a=i-Xt(l,o))>Se)){n>-Se?(t=l.P,r=l):a>-Se?(t=l,r=l.N):t=r=l;break}if(!l.R){t=l;break}l=l.R}var s=Ut(e);if(Et.insert(t,s),t||r){if(t===r)return er(t),r=Ut(t.site),Et.insert(s,r),s.edge=r.edge=nr(t.site,s.site),$t(t),void $t(r);if(r){er(t),er(r);var c=t.site,u=c.x,f=c.y,d=e.x-u,h=e.y-f,p=r.site,v=p.x-u,g=p.y-f,y=2*(d*g-h*v),m=d*d+h*h,x=v*v+g*g,b={x:(g*m-h*x)/y+u,y:(d*x-v*m)/y+f};ar(r.edge,c,p,b),s.edge=nr(c,e,null,b),r.edge=nr(e,p,null,b),$t(t),$t(r)}else s.edge=nr(t.site,s.site)}}function Wt(e,t){var r=e.site,n=r.x,a=r.y,i=a-t;if(!i)return n;var o=e.P;if(!o)return-1/0;var l=(r=o.site).x,s=r.y,c=s-t;if(!c)return l;var u=l-n,f=1/i-1/c,d=u/c;return f?(-d+Math.sqrt(d*d-2*f*(u*u/(-2*c)-s+c/2+a-i/2)))/f+n:(n+l)/2}function Xt(e,t){var r=e.N;if(r)return Wt(r,t);var n=e.site;return n.y===t?n.x:1/0}function Jt(e){this.site=e,this.edges=[]}function Kt(e,t){return t.angle-e.angle}function Qt(){lr(this),this.x=this.y=this.arc=this.site=this.cy=null}function $t(e){var t=e.P,r=e.N;if(t&&r){var n=t.site,a=e.site,i=r.site;if(n!==i){var o=a.x,l=a.y,s=n.x-o,c=n.y-l,u=i.x-o,f=2*(s*(g=i.y-l)-c*u);if(!(f>=-De)){var d=s*s+c*c,h=u*u+g*g,p=(g*d-c*h)/f,v=(s*h-u*d)/f,g=v+l,y=Yt.pop()||new Qt;y.arc=e,y.site=a,y.x=p+o,y.y=g+Math.sqrt(p*p+v*v),y.cy=g,e.circle=y;for(var m=null,x=Bt._;x;)if(y.y=l)return;if(d>p){if(i){if(i.y>=c)return}else i={x:g,y:s};r={x:g,y:c}}else{if(i){if(i.y1)if(d>p){if(i){if(i.y>=c)return}else i={x:(s-a)/n,y:s};r={x:(c-a)/n,y:c}}else{if(i){if(i.y=l)return}else i={x:o,y:n*o+a};r={x:l,y:n*l+a}}else{if(i){if(i.x0)){if(t/=d,d<0){if(t0){if(t>f)return;t>u&&(u=t)}if(t=a-s,d||!(t<0)){if(t/=d,d<0){if(t>f)return;t>u&&(u=t)}else if(d>0){if(t0)){if(t/=h,h<0){if(t0){if(t>f)return;t>u&&(u=t)}if(t=i-c,h||!(t<0)){if(t/=h,h<0){if(t>f)return;t>u&&(u=t)}else if(h>0){if(t0&&(e.a={x:s+u*d,y:c+u*h}),f<1&&(e.b={x:s+f*d,y:c+f*h}),e}}}}}),s=o.length;s--;)(!tr(t=o[s],e)||!l(t)||w(t.a.x-t.b.x)Se||w(a-r)>Se)&&(l.splice(o,0,new ir((y=i.site,m=u,x=w(n-f)Se?{x:f,y:w(t-f)Se?{x:w(r-p)Se?{x:d,y:w(t-d)Se?{x:w(r-h)=r&&c.x<=a&&c.y>=n&&c.y<=o?[[r,o],[a,o],[a,n],[r,n]]:[]).point=e[l]})),t}function l(e){return e.map((function(e,t){return{x:Math.round(n(e,t)/Se)*Se,y:Math.round(a(e,t)/Se)*Se,i:t}}))}return o.links=function(e){return fr(l(e)).edges.filter((function(e){return e.l&&e.r})).map((function(t){return{source:e[t.l.i],target:e[t.r.i]}}))},o.triangles=function(e){var t=[];return fr(l(e)).cells.forEach((function(r,n){for(var a,i,o,l,s=r.site,c=r.edges.sort(Kt),u=-1,f=c.length,d=c[f-1].edge,h=d.l===s?d.r:d.l;++ui&&(a=t.slice(i,a),l[o]?l[o]+=a:l[++o]=a),(r=r[0])===(n=n[0])?l[o]?l[o]+=n:l[++o]=n:(l[++o]=null,s.push({i:o,x:xr(r,n)})),i=wr.lastIndex;return iv&&(v=s.x),s.y>g&&(g=s.y),c.push(s.x),u.push(s.y);else for(f=0;fv&&(v=x),b>g&&(g=b),c.push(x),u.push(b)}var _=v-h,T=g-p;function M(e,t,r,n,a,i,o,l){if(!isNaN(r)&&!isNaN(n))if(e.leaf){var s=e.x,c=e.y;if(null!=s)if(w(s-r)+w(c-n)<.01)k(e,t,r,n,a,i,o,l);else{var u=e.point;e.x=e.y=e.point=null,k(e,u,s,c,a,i,o,l),k(e,t,r,n,a,i,o,l)}else e.x=r,e.y=n,e.point=t}else k(e,t,r,n,a,i,o,l)}function k(e,t,r,n,a,i,o,l){var s=.5*(a+o),c=.5*(i+l),u=r>=s,f=n>=c,d=f<<1|u;e.leaf=!1,u?a=s:o=s,f?i=c:l=c,M(e=e.nodes[d]||(e.nodes[d]={leaf:!0,nodes:[],point:null,x:null,y:null}),t,r,n,a,i,o,l)}_>T?g=p+_:v=h+T;var A={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(e){M(A,e,+y(e,++f),+m(e,f),h,p,v,g)}};if(A.visit=function(e){gr(e,A,h,p,v,g)},A.find=function(e){return function(e,t,r,n,a,i,o){var l,s=1/0;return function e(c,u,f,d,h){if(!(u>i||f>o||d=_)<<1|t>=b,T=w+4;w=0&&!(r=i.interpolators[n](e,t)););return r}function Mr(e,t){var r,n=[],a=[],i=e.length,o=t.length,l=Math.min(e.length,t.length);for(r=0;r=1)return 1;var t=e*e,r=t*e;return 4*(e<.5?r:3*(e-t)+r-.75)}function Ir(e){return 1-Math.cos(e*Ie)}function Rr(e){return Math.pow(2,10*(e-1))}function zr(e){return 1-Math.sqrt(1-e*e)}function Nr(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}function Fr(e,t){return t-=e,function(r){return Math.round(e+t*r)}}function Er(e){var t,r,n,a=[e.a,e.b],i=[e.c,e.d],o=Br(a),l=Hr(a,i),s=Br(((t=i)[0]+=(n=-l)*(r=a)[0],t[1]+=n*r[1],t))||0;a[0]*i[1]=0?e.slice(0,r):e,a=r>=0?e.slice(r+1):"in";return n=Ar.get(n)||kr,a=Lr.get(a)||z,t=a(n.apply(null,o.call(arguments,1))),function(e){return e<=0?0:e>=1?1:t(e)}},i.interpolateHcl=function(e,t){e=i.hcl(e),t=i.hcl(t);var r=e.h,n=e.c,a=e.l,o=t.h-r,l=t.c-n,s=t.l-a;return isNaN(l)&&(l=0,n=isNaN(n)?t.c:n),isNaN(o)?(o=0,r=isNaN(r)?t.h:r):o>180?o-=360:o<-180&&(o+=360),function(e){return We(r+o*e,n+l*e,a+s*e)+""}},i.interpolateHsl=function(e,t){e=i.hsl(e),t=i.hsl(t);var r=e.h,n=e.s,a=e.l,o=t.h-r,l=t.s-n,s=t.l-a;return isNaN(l)&&(l=0,n=isNaN(n)?t.s:n),isNaN(o)?(o=0,r=isNaN(r)?t.h:r):o>180?o-=360:o<-180&&(o+=360),function(e){return qe(r+o*e,n+l*e,a+s*e)+""}},i.interpolateLab=function(e,t){e=i.lab(e),t=i.lab(t);var r=e.l,n=e.a,a=e.b,o=t.l-r,l=t.a-n,s=t.b-a;return function(e){return tt(r+o*e,n+l*e,a+s*e)+""}},i.interpolateRound=Fr,i.transform=function(e){var t=s.createElementNS(i.ns.prefix.svg,"g");return(i.transform=function(e){if(null!=e){t.setAttribute("transform",e);var r=t.transform.baseVal.consolidate()}return new Er(r?r.matrix:jr)})(e)},Er.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var jr={a:1,b:0,c:0,d:1,e:0,f:0};function Yr(e){return e.length?e.pop()+",":""}function Vr(e,t){var r=[],n=[];return e=i.transform(e),t=i.transform(t),function(e,t,r,n){if(e[0]!==t[0]||e[1]!==t[1]){var a=r.push("translate(",null,",",null,")");n.push({i:a-4,x:xr(e[0],t[0])},{i:a-2,x:xr(e[1],t[1])})}else(t[0]||t[1])&&r.push("translate("+t+")")}(e.translate,t.translate,r,n),function(e,t,r,n){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),n.push({i:r.push(Yr(r)+"rotate(",null,")")-2,x:xr(e,t)})):t&&r.push(Yr(r)+"rotate("+t+")")}(e.rotate,t.rotate,r,n),function(e,t,r,n){e!==t?n.push({i:r.push(Yr(r)+"skewX(",null,")")-2,x:xr(e,t)}):t&&r.push(Yr(r)+"skewX("+t+")")}(e.skew,t.skew,r,n),function(e,t,r,n){if(e[0]!==t[0]||e[1]!==t[1]){var a=r.push(Yr(r)+"scale(",null,",",null,")");n.push({i:a-4,x:xr(e[0],t[0])},{i:a-2,x:xr(e[1],t[1])})}else 1===t[0]&&1===t[1]||r.push(Yr(r)+"scale("+t+")")}(e.scale,t.scale,r,n),e=t=null,function(e){for(var t,a=-1,i=n.length;++a0?r=t:(e.c=null,e.t=NaN,e=null,s.end({type:"end",alpha:r=0})):t>0&&(s.start({type:"start",alpha:r=t}),e=Mt(l.tick)),l):r},l.start=function(){var e,t,r,i=y.length,s=m.length,u=c[0],p=c[1];for(e=0;e=0;)r.push(a[n])}function an(e,t){for(var r=[e],n=[];null!=(e=r.pop());)if(n.push(e),(i=e.children)&&(a=i.length))for(var a,i,o=-1;++o=0;)o.push(u=c[s]),u.parent=i,u.depth=i.depth+1;r&&(i.value=0),i.children=c}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return an(a,(function(t){var n,a;e&&(n=t.children)&&n.sort(e),r&&(a=t.parent)&&(a.value+=t.value)})),l}return n.sort=function(t){return arguments.length?(e=t,n):e},n.children=function(e){return arguments.length?(t=e,n):t},n.value=function(e){return arguments.length?(r=e,n):r},n.revalue=function(e){return r&&(nn(e,(function(e){e.children&&(e.value=0)})),an(e,(function(e){var t;e.children||(e.value=+r.call(n,e,e.depth)||0),(t=e.parent)&&(t.value+=e.value)}))),e},n},i.layout.partition=function(){var e=i.layout.hierarchy(),t=[1,1];function r(e,t,n,a){var i=e.children;if(e.x=t,e.y=e.depth*a,e.dx=n,e.dy=a,i&&(o=i.length)){var o,l,s,c=-1;for(n=e.value?n/e.value:0;++cl&&(l=n),o.push(n)}for(r=0;ra&&(n=r,a=t);return n}function xn(e){return e.reduce(bn,0)}function bn(e,t){return e+t[1]}function _n(e,t){return wn(e,Math.ceil(Math.log(t.length)/Math.LN2+1))}function wn(e,t){for(var r=-1,n=+e[0],a=(e[1]-n)/t,i=[];++r<=t;)i[r]=a*r+n;return i}function Tn(e){return[i.min(e),i.max(e)]}function Mn(e,t){return e.value-t.value}function kn(e,t){var r=e._pack_next;e._pack_next=t,t._pack_prev=e,t._pack_next=r,r._pack_prev=t}function An(e,t){e._pack_next=t,t._pack_prev=e}function Ln(e,t){var r=t.x-e.x,n=t.y-e.y,a=e.r+t.r;return.999*a*a>r*r+n*n}function Sn(e){if((t=e.children)&&(s=t.length)){var t,r,n,a,i,o,l,s,c=1/0,u=-1/0,f=1/0,d=-1/0;if(t.forEach(Dn),(r=t[0]).x=-r.r,r.y=0,x(r),s>1&&((n=t[1]).x=n.r,n.y=0,x(n),s>2))for(Pn(r,n,a=t[2]),x(a),kn(r,a),r._pack_prev=a,kn(a,n),n=r._pack_next,i=3;i0)for(o=-1;++o=f[0]&&s<=f[1]&&((l=c[i.bisect(d,s,1,p)-1]).y+=v,l.push(a[o]));return c}return a.value=function(e){return arguments.length?(t=e,a):t},a.range=function(e){return arguments.length?(r=gt(e),a):r},a.bins=function(e){return arguments.length?(n="number"==typeof e?function(t){return wn(t,e)}:gt(e),a):n},a.frequency=function(t){return arguments.length?(e=!!t,a):e},a},i.layout.pack=function(){var e,t=i.layout.hierarchy().sort(Mn),r=0,n=[1,1];function a(a,i){var o=t.call(this,a,i),l=o[0],s=n[0],c=n[1],u=null==e?Math.sqrt:"function"==typeof e?e:function(){return e};if(l.x=l.y=0,an(l,(function(e){e.r=+u(e.value)})),an(l,Sn),r){var f=r*(e?1:Math.max(2*l.r/s,2*l.r/c))/2;an(l,(function(e){e.r+=f})),an(l,Sn),an(l,(function(e){e.r-=f}))}return Cn(l,s/2,c/2,e?1:1/Math.max(2*l.r/s,2*l.r/c)),o}return a.size=function(e){return arguments.length?(n=e,a):n},a.radius=function(t){return arguments.length?(e=null==t||"function"==typeof t?t:+t,a):e},a.padding=function(e){return arguments.length?(r=+e,a):r},rn(a,t)},i.layout.tree=function(){var e=i.layout.hierarchy().sort(null).value(null),t=In,r=[1,1],n=null;function a(a,i){var c=e.call(this,a,i),u=c[0],f=function(e){for(var t,r={A:null,children:[e]},n=[r];null!=(t=n.pop());)for(var a,i=t.children,o=0,l=i.length;oh.x&&(h=e),e.depth>p.depth&&(p=e)}));var v=t(d,h)/2-d.x,g=r[0]/(h.x+t(h,d)/2+v),y=r[1]/(p.depth||1);nn(u,(function(e){e.x=(e.x+v)*g,e.y=e.depth*y}))}return c}function o(e){var r=e.children,n=e.parent.children,a=e.i?n[e.i-1]:null;if(r.length){!function(e){for(var t,r=0,n=0,a=e.children,i=a.length;--i>=0;)(t=a[i]).z+=r,t.m+=r,r+=t.s+(n+=t.c)}(e);var i=(r[0].z+r[r.length-1].z)/2;a?(e.z=a.z+t(e._,a._),e.m=e.z-i):e.z=i}else a&&(e.z=a.z+t(e._,a._));e.parent.A=function(e,r,n){if(r){for(var a,i=e,o=e,l=r,s=i.parent.children[0],c=i.m,u=o.m,f=l.m,d=s.m;l=zn(l),i=Rn(i),l&&i;)s=Rn(s),(o=zn(o)).a=e,(a=l.z+f-i.z-c+t(l._,i._))>0&&(Nn(Fn(l,e,n),e,a),c+=a,u+=a),f+=l.m,c+=i.m,d+=s.m,u+=o.m;l&&!zn(o)&&(o.t=l,o.m+=f-u),i&&!Rn(s)&&(s.t=i,s.m+=c-d,n=e)}return n}(e,a,e.parent.A||n[0])}function l(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function s(e){e.x*=r[0],e.y=e.depth*r[1]}return a.separation=function(e){return arguments.length?(t=e,a):t},a.size=function(e){return arguments.length?(n=null==(r=e)?s:null,a):n?null:r},a.nodeSize=function(e){return arguments.length?(n=null==(r=e)?null:s,a):n?r:null},rn(a,e)},i.layout.cluster=function(){var e=i.layout.hierarchy().sort(null).value(null),t=In,r=[1,1],n=!1;function a(a,o){var l,s=e.call(this,a,o),c=s[0],u=0;an(c,(function(e){var r=e.children;r&&r.length?(e.x=function(e){return e.reduce((function(e,t){return e+t.x}),0)/e.length}(r),e.y=function(e){return 1+i.max(e,(function(e){return e.y}))}(r)):(e.x=l?u+=t(e,l):0,e.y=0,l=e)}));var f=En(c),d=Hn(c),h=f.x-t(f,d)/2,p=d.x+t(d,f)/2;return an(c,n?function(e){e.x=(e.x-c.x)*r[0],e.y=(c.y-e.y)*r[1]}:function(e){e.x=(e.x-h)/(p-h)*r[0],e.y=(1-(c.y?e.y/c.y:1))*r[1]}),s}return a.separation=function(e){return arguments.length?(t=e,a):t},a.size=function(e){return arguments.length?(n=null==(r=e),a):n?null:r},a.nodeSize=function(e){return arguments.length?(n=null!=(r=e),a):n?r:null},rn(a,e)},i.layout.treemap=function(){var e,t=i.layout.hierarchy(),r=Math.round,n=[1,1],a=null,o=Bn,l=!1,s="squarify",c=.5*(1+Math.sqrt(5));function u(e,t){for(var r,n,a=-1,i=e.length;++a0;)l.push(r=c[a-1]),l.area+=r.area,"squarify"!==s||(n=h(l,v))<=d?(c.pop(),d=n):(l.area-=l.pop().area,p(l,v,i,!1),v=Math.min(i.dx,i.dy),l.length=l.area=0,d=1/0);l.length&&(p(l,v,i,!0),l.length=l.area=0),t.forEach(f)}}function d(e){var t=e.children;if(t&&t.length){var r,n=o(e),a=t.slice(),i=[];for(u(a,n.dx*n.dy/e.value),i.area=0;r=a.pop();)i.push(r),i.area+=r.area,null!=r.z&&(p(i,r.z?n.dx:n.dy,n,!a.length),i.length=i.area=0);t.forEach(d)}}function h(e,t){for(var r,n=e.area,a=0,i=1/0,o=-1,l=e.length;++oa&&(a=r));return t*=t,(n*=n)?Math.max(t*a*c/n,n/(t*i*c)):1/0}function p(e,t,n,a){var i,o=-1,l=e.length,s=n.x,c=n.y,u=t?r(e.area/t):0;if(t==n.dx){for((a||u>n.dy)&&(u=n.dy);++on.dx)&&(u=n.dx);++o1);return e+t*r*Math.sqrt(-2*Math.log(a)/a)}},logNormal:function(){var e=i.random.normal.apply(i,arguments);return function(){return Math.exp(e())}},bates:function(e){var t=i.random.irwinHall(e);return function(){return t()/e}},irwinHall:function(e){return function(){for(var t=0,r=0;r2?Wn:Un,s=n?qr:Ur;return a=o(e,t,s,r),i=o(t,e,s,Tr),l}function l(e){return a(e)}return l.invert=function(e){return i(e)},l.domain=function(t){return arguments.length?(e=t.map(Number),o()):e},l.range=function(e){return arguments.length?(t=e,o()):t},l.rangeRound=function(e){return l.range(e).interpolate(Fr)},l.clamp=function(e){return arguments.length?(n=e,o()):n},l.interpolate=function(e){return arguments.length?(r=e,o()):r},l.ticks=function(t){return $n(e,t)},l.tickFormat=function(t,r){return d3_scale_linearTickFormat(e,t,r)},l.nice=function(t){return Kn(e,t),o()},l.copy=function(){return Xn(e,t,r,n)},o()}function Jn(e,t){return i.rebind(e,t,"range","rangeRound","interpolate","clamp")}function Kn(e,t){return qn(e,Gn(Qn(e,t)[2])),qn(e,Gn(Qn(e,t)[2])),e}function Qn(e,t){null==t&&(t=10);var r=Yn(e),n=r[1]-r[0],a=Math.pow(10,Math.floor(Math.log(n/t)/Math.LN10)),i=t/n*a;return i<=.15?a*=10:i<=.35?a*=5:i<=.75&&(a*=2),r[0]=Math.ceil(r[0]/a)*a,r[1]=Math.floor(r[1]/a)*a+.5*a,r[2]=a,r}function $n(e,t){return i.range.apply(i,Qn(e,t))}function ea(e,t,r,n){function a(e){return(r?Math.log(e<0?0:e):-Math.log(e>0?0:-e))/Math.log(t)}function i(e){return r?Math.pow(t,e):-Math.pow(t,-e)}function o(t){return e(a(t))}return o.invert=function(t){return i(e.invert(t))},o.domain=function(t){return arguments.length?(r=t[0]>=0,e.domain((n=t.map(Number)).map(a)),o):n},o.base=function(r){return arguments.length?(t=+r,e.domain(n.map(a)),o):t},o.nice=function(){var t=qn(n.map(a),r?Math:ta);return e.domain(t),n=t.map(i),o},o.ticks=function(){var e=Yn(n),o=[],l=e[0],s=e[1],c=Math.floor(a(l)),u=Math.ceil(a(s)),f=t%1?2:t;if(isFinite(u-c)){if(r){for(;c0;d--)o.push(i(c)*d);for(c=0;o[c]s;u--);o=o.slice(c,u)}return o},o.copy=function(){return ea(e.copy(),t,r,n)},Jn(o,e)}i.scale.linear=function(){return Xn([0,1],[0,1],Tr,!1)},i.scale.log=function(){return ea(i.scale.linear().domain([0,1]),10,!0,[1,10])};var ta={floor:function(e){return-Math.ceil(-e)},ceil:function(e){return-Math.floor(-e)}};function ra(e,t,r){var n=na(t),a=na(1/t);function i(t){return e(n(t))}return i.invert=function(t){return a(e.invert(t))},i.domain=function(t){return arguments.length?(e.domain((r=t.map(Number)).map(n)),i):r},i.ticks=function(e){return $n(r,e)},i.tickFormat=function(e,t){return d3_scale_linearTickFormat(r,e,t)},i.nice=function(e){return i.domain(Kn(r,e))},i.exponent=function(o){return arguments.length?(n=na(t=o),a=na(1/t),e.domain(r.map(n)),i):t},i.copy=function(){return ra(e.copy(),t,r)},Jn(i,e)}function na(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function aa(e,t){var r,n,a;function o(a){return n[((r.get(a)||("range"===t.t?r.set(a,e.push(a)):NaN))-1)%n.length]}function l(t,r){return i.range(e.length).map((function(e){return t+r*e}))}return o.domain=function(n){if(!arguments.length)return e;e=[],r=new M;for(var a,i=-1,l=n.length;++i0?r[n-1]:e[0],nf?0:1;if(c=Pe)return s(c,h)+(l?s(l,1-h):"")+"Z";var p,v,g,y,m,x,b,_,w,T,M,k,A=0,L=0,S=[];if((y=(+o.apply(this,arguments)||0)/2)&&(g=n===pa?Math.sqrt(l*l+c*c):+n.apply(this,arguments),h||(L*=-1),c&&(L=Ne(g/c*Math.sin(y))),l&&(A=Ne(g/l*Math.sin(y)))),c){m=c*Math.cos(u+L),x=c*Math.sin(u+L),b=c*Math.cos(f-L),_=c*Math.sin(f-L);var D=Math.abs(f-u-2*L)<=Oe?0:1;if(L&&ba(m,x,b,_)===h^D){var O=(u+f)/2;m=c*Math.cos(O),x=c*Math.sin(O),b=_=null}}else m=x=0;if(l){w=l*Math.cos(f-A),T=l*Math.sin(f-A),M=l*Math.cos(u+A),k=l*Math.sin(u+A);var C=Math.abs(u-f+2*A)<=Oe?0:1;if(A&&ba(w,T,M,k)===1-h^C){var P=(u+f)/2;w=l*Math.cos(P),T=l*Math.sin(P),M=k=null}}else w=T=0;if(d>Se&&(p=Math.min(Math.abs(c-l)/2,+r.apply(this,arguments)))>.001){v=l0?0:1}function _a(e,t,r,n,a){var i=e[0]-t[0],o=e[1]-t[1],l=(a?n:-n)/Math.sqrt(i*i+o*o),s=l*o,c=-l*i,u=e[0]+s,f=e[1]+c,d=t[0]+s,h=t[1]+c,p=(u+d)/2,v=(f+h)/2,g=d-u,y=h-f,m=g*g+y*y,x=r-n,b=u*h-d*f,_=(y<0?-1:1)*Math.sqrt(Math.max(0,x*x*m-b*b)),w=(b*y-g*_)/m,T=(-b*g-y*_)/m,M=(b*y+g*_)/m,k=(-b*g+y*_)/m,A=w-p,L=T-v,S=M-p,D=k-v;return A*A+L*L>S*S+D*D&&(w=M,T=k),[[w-s,T-c],[w*r/x,T*r/x]]}function wa(){return!0}function Ta(e){var t=St,r=Dt,n=wa,a=ka,i=a.key,o=.7;function l(i){var l,s=[],c=[],u=-1,f=i.length,d=gt(t),h=gt(r);function p(){s.push("M",a(e(c),o))}for(;++u1&&a.push("H",n[0]),a.join("")},"step-before":La,"step-after":Sa,basis:Ca,"basis-open":function(e){if(e.length<4)return ka(e);for(var t,r=[],n=-1,a=e.length,i=[0],o=[0];++n<3;)t=e[n],i.push(t[0]),o.push(t[1]);for(r.push(Pa(za,i)+","+Pa(za,o)),--n;++n9&&(a=3*t/Math.sqrt(a),o[l]=a*r,o[l+1]=a*n);for(l=-1;++l<=s;)a=(e[Math.min(s,l+1)][0]-e[Math.max(0,l-1)][0])/(6*(1+o[l]*o[l])),i.push([a||0,o[l]*a||0]);return i}(e))}});function ka(e){return e.length>1?e.join("L"):e+"Z"}function Aa(e){return e.join("L")+"Z"}function La(e){for(var t=0,r=e.length,n=e[0],a=[n[0],",",n[1]];++t1){l=t[1],i=e[s],s++,n+="C"+(a[0]+o[0])+","+(a[1]+o[1])+","+(i[0]-l[0])+","+(i[1]-l[1])+","+i[0]+","+i[1];for(var c=2;cOe)+",1 "+t}function s(e,t,r,n){return"Q 0,0 "+n}return i.radius=function(e){return arguments.length?(r=gt(e),i):r},i.source=function(t){return arguments.length?(e=gt(t),i):e},i.target=function(e){return arguments.length?(t=gt(e),i):t},i.startAngle=function(e){return arguments.length?(n=gt(e),i):n},i.endAngle=function(e){return arguments.length?(a=gt(e),i):a},i},i.svg.diagonal=function(){var e=Ba,t=ja,r=Va;function n(n,a){var i=e.call(this,n,a),o=t.call(this,n,a),l=(i.y+o.y)/2,s=[i,{x:i.x,y:l},{x:o.x,y:l},o];return"M"+(s=s.map(r))[0]+"C"+s[1]+" "+s[2]+" "+s[3]}return n.source=function(t){return arguments.length?(e=gt(t),n):e},n.target=function(e){return arguments.length?(t=gt(e),n):t},n.projection=function(e){return arguments.length?(r=e,n):r},n},i.svg.diagonal.radial=function(){var e=i.svg.diagonal(),t=Va,r=e.projection;return e.projection=function(e){return arguments.length?r(function(e){return function(){var t=e.apply(this,arguments),r=t[0],n=t[1]-Ie;return[r*Math.cos(n),r*Math.sin(n)]}}(t=e)):t},e},i.svg.symbol=function(){var e=qa,t=Ua;function r(r,n){return(Za.get(e.call(this,r,n))||Ga)(t.call(this,r,n))}return r.type=function(t){return arguments.length?(e=gt(t),r):e},r.size=function(e){return arguments.length?(t=gt(e),r):t},r};var Za=i.map({circle:Ga,cross:function(e){var t=Math.sqrt(e/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(e){var t=Math.sqrt(e/(2*Xa)),r=t*Xa;return"M0,"+-t+"L"+r+",0 0,"+t+" "+-r+",0Z"},square:function(e){var t=Math.sqrt(e)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(e){var t=Math.sqrt(e/Wa),r=t*Wa/2;return"M0,"+r+"L"+t+","+-r+" "+-t+","+-r+"Z"},"triangle-up":function(e){var t=Math.sqrt(e/Wa),r=t*Wa/2;return"M0,"+-r+"L"+t+","+r+" "+-t+","+r+"Z"}});i.svg.symbolTypes=Za.keys();var Wa=Math.sqrt(3),Xa=Math.tan(30*Re);K.transition=function(e){for(var t,r,n=$a||++ri,a=ii(e),i=[],o=ei||{time:Date.now(),ease:Pr,delay:0,duration:250},l=-1,s=this.length;++l0;)c[--d].call(e,o);if(i>=1)return f.event&&f.event.end.call(e,e.__data__,t),--u.count?delete u[n]:delete e[r],1}f||(i=a.time,o=Mt((function(e){var t=f.delay;if(o.t=t+i,t<=e)return d(e-t);o.c=d}),0,i),f=u[n]={tween:new M,time:i,timer:o,delay:a.delay,duration:a.duration,ease:a.ease,index:t},a=null,++u.count)}ti.call=K.call,ti.empty=K.empty,ti.node=K.node,ti.size=K.size,i.transition=function(e,t){return e&&e.transition?$a?e.transition(t):e:i.selection().transition(e)},i.transition.prototype=ti,ti.select=function(e){var t,r,n,a=this.id,i=this.namespace,o=[];e=Q(e);for(var l=-1,s=this.length;++lrect,.s>rect").attr("width",o[1]-o[0])}function v(e){e.select(".extent").attr("y",l[0]),e.selectAll(".extent,.e>rect,.w>rect").attr("height",l[1]-l[0])}function g(){var f,g,y=this,m=i.select(i.event.target),x=r.of(y,arguments),b=i.select(y),_=m.datum(),w=!/^(n|s)$/.test(_)&&n,T=!/^(e|w)$/.test(_)&&a,M=m.classed("extent"),k=Me(y),A=i.mouse(y),L=i.select(u(y)).on("keydown.brush",(function(){32==i.event.keyCode&&(M||(f=null,A[0]-=o[1],A[1]-=l[1],M=2),Y())})).on("keyup.brush",(function(){32==i.event.keyCode&&2==M&&(A[0]+=o[1],A[1]+=l[1],M=0,Y())}));if(i.event.changedTouches?L.on("touchmove.brush",O).on("touchend.brush",P):L.on("mousemove.brush",O).on("mouseup.brush",P),b.interrupt().selectAll("*").interrupt(),M)A[0]=o[0]-A[0],A[1]=l[0]-A[1];else if(_){var S=+/w$/.test(_),D=+/^n/.test(_);g=[o[1-S]-A[0],l[1-D]-A[1]],A[0]=o[S],A[1]=l[D]}else i.event.altKey&&(f=A.slice());function O(){var e=i.mouse(y),t=!1;g&&(e[0]+=g[0],e[1]+=g[1]),M||(i.event.altKey?(f||(f=[(o[0]+o[1])/2,(l[0]+l[1])/2]),A[0]=o[+(e[0]>2],i+=n[(3&r[t])<<4|r[t+1]>>4],i+=n[(15&r[t+1])<<2|r[t+2]>>6],i+=n[63&r[t+2]];return a%3==2?i=i.substring(0,i.length-1)+"=":a%3==1&&(i=i.substring(0,i.length-2)+"=="),i},l=function(e){var t,r,n,i,o,l=.75*e.length,s=e.length,c=0;"="===e[e.length-1]&&(l--,"="===e[e.length-2]&&l--);var u=new ArrayBuffer(l),f=new Uint8Array(u);for(t=0;t>4,f[c++]=(15&n)<<4|i>>2,f[c++]=(3&i)<<6|63&o;return u}},7624:function(e,t,r){"use strict";function n(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}r.d(t,{E9:function(){return d},SO:function(){return v}});var a,i=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function o(e){if(!(t=i.exec(e)))throw new Error("invalid format: "+e);var t;return new l({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function l(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function s(e,t){var r=n(e,t);if(!r)return e+"";var a=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+a:a.length>i+1?a.slice(0,i+1)+"."+a.slice(i+1):a+new Array(i-a.length+2).join("0")}o.prototype=l.prototype,l.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var c={"%":function(e,t){return(100*e).toFixed(t)},b:function(e){return Math.round(e).toString(2)},c:function(e){return e+""},d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},g:function(e,t){return e.toPrecision(t)},o:function(e){return Math.round(e).toString(8)},p:function(e,t){return s(100*e,t)},r:s,s:function(e,t){var r=n(e,t);if(!r)return e+"";var i=r[0],o=r[1],l=o-(a=3*Math.max(-8,Math.min(8,Math.floor(o/3))))+1,s=i.length;return l===s?i:l>s?i+new Array(l-s+1).join("0"):l>0?i.slice(0,l)+"."+i.slice(l):"0."+new Array(1-l).join("0")+n(e,Math.max(0,t+l-1))[0]},X:function(e){return Math.round(e).toString(16).toUpperCase()},x:function(e){return Math.round(e).toString(16)}};function u(e){return e}var f,d,h=Array.prototype.map,p=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function v(e){var t,r,i=void 0===e.grouping||void 0===e.thousands?u:(t=h.call(e.grouping,Number),r=e.thousands+"",function(e,n){for(var a=e.length,i=[],o=0,l=t[0],s=0;a>0&&l>0&&(s+l+1>n&&(l=Math.max(1,n-s)),i.push(e.substring(a-=l,a+l)),!((s+=l+1)>n));)l=t[o=(o+1)%t.length];return i.reverse().join(r)}),l=void 0===e.currency?"":e.currency[0]+"",s=void 0===e.currency?"":e.currency[1]+"",f=void 0===e.decimal?".":e.decimal+"",d=void 0===e.numerals?u:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(h.call(e.numerals,String)),v=void 0===e.percent?"%":e.percent+"",g=void 0===e.minus?"-":e.minus+"",y=void 0===e.nan?"NaN":e.nan+"";function m(e){var t=(e=o(e)).fill,r=e.align,n=e.sign,u=e.symbol,h=e.zero,m=e.width,x=e.comma,b=e.precision,_=e.trim,w=e.type;"n"===w?(x=!0,w="g"):c[w]||(void 0===b&&(b=12),_=!0,w="g"),(h||"0"===t&&"="===r)&&(h=!0,t="0",r="=");var T="$"===u?l:"#"===u&&/[boxX]/.test(w)?"0"+w.toLowerCase():"",M="$"===u?s:/[%p]/.test(w)?v:"",k=c[w],A=/[defgprs%]/.test(w);function L(e){var o,l,s,c=T,u=M;if("c"===w)u=k(e)+u,e="";else{var v=(e=+e)<0||1/e<0;if(e=isNaN(e)?y:k(Math.abs(e),b),_&&(e=function(e){e:for(var t,r=e.length,n=1,a=-1;n0&&(a=0)}return a>0?e.slice(0,a)+e.slice(t+1):e}(e)),v&&0==+e&&"+"!==n&&(v=!1),c=(v?"("===n?n:g:"-"===n||"("===n?"":n)+c,u=("s"===w?p[8+a/3]:"")+u+(v&&"("===n?")":""),A)for(o=-1,l=e.length;++o(s=e.charCodeAt(o))||s>57){u=(46===s?f+e.slice(o+1):e.slice(o))+u,e=e.slice(0,o);break}}x&&!h&&(e=i(e,1/0));var L=c.length+e.length+u.length,S=L>1)+c+e+u+S.slice(L);break;default:e=S+c+e+u}return d(e)}return b=void 0===b?6:/[gprs]/.test(w)?Math.max(1,Math.min(21,b)):Math.max(0,Math.min(20,b)),L.toString=function(){return e+""},L}return{format:m,formatPrefix:function(e,t){var r,a=m(((e=o(e)).type="f",e)),i=3*Math.max(-8,Math.min(8,Math.floor((r=t,((r=n(Math.abs(r)))?r[1]:NaN)/3)))),l=Math.pow(10,-i),s=p[8+i/3];return function(e){return a(l*e)+s}}}}f=v({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"}),d=f.format,f.formatPrefix},4336:function(e,t,r){"use strict";r.d(t,{Yn:function(){return p},m_:function(){return d},E9:function(){return v}});var n=r(8208),a=r(8931),i=r(6192),o=r(8936),l=r(2171),s=r(3528);function c(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function u(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function f(e,t,r){return{y:e,m:t,d:r,H:0,M:0,S:0,L:0}}function d(e){var t=e.dateTime,r=e.date,l=e.time,s=e.periods,d=e.days,h=e.shortDays,p=e.months,v=e.shortMonths,y=w(s),m=T(s),x=w(d),b=T(d),_=w(h),Le=T(h),Se=w(p),De=T(p),Oe=w(v),Ce=T(v),Pe={a:function(e){return h[e.getDay()]},A:function(e){return d[e.getDay()]},b:function(e){return v[e.getMonth()]},B:function(e){return p[e.getMonth()]},c:null,d:U,e:U,f:X,H:q,I:G,j:Z,L:W,m:J,M:K,p:function(e){return s[+(e.getHours()>=12)]},q:function(e){return 1+~~(e.getMonth()/3)},Q:ke,s:Ae,S:Q,u:$,U:ee,V:te,w:re,W:ne,x:null,X:null,y:ae,Y:ie,Z:oe,"%":Me},Ie={a:function(e){return h[e.getUTCDay()]},A:function(e){return d[e.getUTCDay()]},b:function(e){return v[e.getUTCMonth()]},B:function(e){return p[e.getUTCMonth()]},c:null,d:le,e:le,f:de,H:se,I:ce,j:ue,L:fe,m:he,M:pe,p:function(e){return s[+(e.getUTCHours()>=12)]},q:function(e){return 1+~~(e.getUTCMonth()/3)},Q:ke,s:Ae,S:ve,u:ge,U:ye,V:me,w:xe,W:be,x:null,X:null,y:_e,Y:we,Z:Te,"%":Me},Re={a:function(e,t,r){var n=_.exec(t.slice(r));return n?(e.w=Le[n[0].toLowerCase()],r+n[0].length):-1},A:function(e,t,r){var n=x.exec(t.slice(r));return n?(e.w=b[n[0].toLowerCase()],r+n[0].length):-1},b:function(e,t,r){var n=Oe.exec(t.slice(r));return n?(e.m=Ce[n[0].toLowerCase()],r+n[0].length):-1},B:function(e,t,r){var n=Se.exec(t.slice(r));return n?(e.m=De[n[0].toLowerCase()],r+n[0].length):-1},c:function(e,r,n){return Fe(e,t,r,n)},d:R,e:R,f:B,H:N,I:N,j:z,L:H,m:I,M:F,p:function(e,t,r){var n=y.exec(t.slice(r));return n?(e.p=m[n[0].toLowerCase()],r+n[0].length):-1},q:P,Q:Y,s:V,S:E,u:k,U:A,V:L,w:M,W:S,x:function(e,t,n){return Fe(e,r,t,n)},X:function(e,t,r){return Fe(e,l,t,r)},y:O,Y:D,Z:C,"%":j};function ze(e,t){return function(r){var n,a,i,o=[],l=-1,s=0,c=e.length;for(r instanceof Date||(r=new Date(+r));++l53)return null;"w"in d||(d.w=1),"Z"in d?(s=(l=u(f(d.y,0,1))).getUTCDay(),l=s>4||0===s?n.ot.ceil(l):(0,n.ot)(l),l=a.c.offset(l,7*(d.V-1)),d.y=l.getUTCFullYear(),d.m=l.getUTCMonth(),d.d=l.getUTCDate()+(d.w+6)%7):(s=(l=c(f(d.y,0,1))).getDay(),l=s>4||0===s?i.qT.ceil(l):(0,i.qT)(l),l=o.c.offset(l,7*(d.V-1)),d.y=l.getFullYear(),d.m=l.getMonth(),d.d=l.getDate()+(d.w+6)%7)}else("W"in d||"U"in d)&&("w"in d||(d.w="u"in d?d.u%7:"W"in d?1:0),s="Z"in d?u(f(d.y,0,1)).getUTCDay():c(f(d.y,0,1)).getDay(),d.m=0,d.d="W"in d?(d.w+6)%7+7*d.W-(s+5)%7:d.w+7*d.U-(s+6)%7);return"Z"in d?(d.H+=d.Z/100|0,d.M+=d.Z%100,u(d)):c(d)}}function Fe(e,t,r,n){for(var a,i,o=0,l=t.length,s=r.length;o=s)return-1;if(37===(a=t.charCodeAt(o++))){if(a=t.charAt(o++),!(i=Re[a in g?t.charAt(o++):a])||(n=i(e,r,n))<0)return-1}else if(a!=r.charCodeAt(n++))return-1}return n}return Pe.x=ze(r,Pe),Pe.X=ze(l,Pe),Pe.c=ze(t,Pe),Ie.x=ze(r,Ie),Ie.X=ze(l,Ie),Ie.c=ze(t,Ie),{format:function(e){var t=ze(e+="",Pe);return t.toString=function(){return e},t},parse:function(e){var t=Ne(e+="",!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=ze(e+="",Ie);return t.toString=function(){return e},t},utcParse:function(e){var t=Ne(e+="",!0);return t.toString=function(){return e},t}}}var h,p,v,g={"-":"",_:" ",0:"0"},y=/^\s*\d+/,m=/^%/,x=/[\\^$*+?|[\]().{}]/g;function b(e,t,r){var n=e<0?"-":"",a=(n?-e:e)+"",i=a.length;return n+(i68?1900:2e3),r+n[0].length):-1}function C(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function P(e,t,r){var n=y.exec(t.slice(r,r+1));return n?(e.q=3*n[0]-3,r+n[0].length):-1}function I(e,t,r){var n=y.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function R(e,t,r){var n=y.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function z(e,t,r){var n=y.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function N(e,t,r){var n=y.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function F(e,t,r){var n=y.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function E(e,t,r){var n=y.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function H(e,t,r){var n=y.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function B(e,t,r){var n=y.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function j(e,t,r){var n=m.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function Y(e,t,r){var n=y.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function V(e,t,r){var n=y.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function U(e,t){return b(e.getDate(),t,2)}function q(e,t){return b(e.getHours(),t,2)}function G(e,t){return b(e.getHours()%12||12,t,2)}function Z(e,t){return b(1+o.c.count((0,l.c)(e),e),t,3)}function W(e,t){return b(e.getMilliseconds(),t,3)}function X(e,t){return W(e,t)+"000"}function J(e,t){return b(e.getMonth()+1,t,2)}function K(e,t){return b(e.getMinutes(),t,2)}function Q(e,t){return b(e.getSeconds(),t,2)}function $(e){var t=e.getDay();return 0===t?7:t}function ee(e,t){return b(i.uU.count((0,l.c)(e)-1,e),t,2)}function te(e,t){var r=e.getDay();return e=r>=4||0===r?(0,i.kD)(e):i.kD.ceil(e),b(i.kD.count((0,l.c)(e),e)+(4===(0,l.c)(e).getDay()),t,2)}function re(e){return e.getDay()}function ne(e,t){return b(i.qT.count((0,l.c)(e)-1,e),t,2)}function ae(e,t){return b(e.getFullYear()%100,t,2)}function ie(e,t){return b(e.getFullYear()%1e4,t,4)}function oe(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+b(t/60|0,"0",2)+b(t%60,"0",2)}function le(e,t){return b(e.getUTCDate(),t,2)}function se(e,t){return b(e.getUTCHours(),t,2)}function ce(e,t){return b(e.getUTCHours()%12||12,t,2)}function ue(e,t){return b(1+a.c.count((0,s.c)(e),e),t,3)}function fe(e,t){return b(e.getUTCMilliseconds(),t,3)}function de(e,t){return fe(e,t)+"000"}function he(e,t){return b(e.getUTCMonth()+1,t,2)}function pe(e,t){return b(e.getUTCMinutes(),t,2)}function ve(e,t){return b(e.getUTCSeconds(),t,2)}function ge(e){var t=e.getUTCDay();return 0===t?7:t}function ye(e,t){return b(n.EV.count((0,s.c)(e)-1,e),t,2)}function me(e,t){var r=e.getUTCDay();return e=r>=4||0===r?(0,n.yA)(e):n.yA.ceil(e),b(n.yA.count((0,s.c)(e),e)+(4===(0,s.c)(e).getUTCDay()),t,2)}function xe(e){return e.getUTCDay()}function be(e,t){return b(n.ot.count((0,s.c)(e)-1,e),t,2)}function _e(e,t){return b(e.getUTCFullYear()%100,t,2)}function we(e,t){return b(e.getUTCFullYear()%1e4,t,4)}function Te(){return"+0000"}function Me(){return"%"}function ke(e){return+e}function Ae(e){return Math.floor(+e/1e3)}h=d({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}),p=h.format,h.parse,v=h.utcFormat,h.utcParse},8936:function(e,t,r){"use strict";r.d(t,{m:function(){return o}});var n=r(1628),a=r(9792),i=(0,n.c)((function(e){e.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*a.iy)/a.SK}),(function(e){return e.getDate()-1}));t.c=i;var o=i.range},9792:function(e,t,r){"use strict";r.d(t,{KK:function(){return l},SK:function(){return o},cg:function(){return i},iy:function(){return a},yc:function(){return n}});var n=1e3,a=6e4,i=36e5,o=864e5,l=6048e5},3220:function(e,t,r){"use strict";r.r(t),r.d(t,{timeDay:function(){return y.c},timeDays:function(){return y.m},timeFriday:function(){return m.iB},timeFridays:function(){return m.sJ},timeHour:function(){return v},timeHours:function(){return g},timeInterval:function(){return n.c},timeMillisecond:function(){return i},timeMilliseconds:function(){return o},timeMinute:function(){return d},timeMinutes:function(){return h},timeMonday:function(){return m.qT},timeMondays:function(){return m.QP},timeMonth:function(){return b},timeMonths:function(){return _},timeSaturday:function(){return m.Wc},timeSaturdays:function(){return m.aI},timeSecond:function(){return c},timeSeconds:function(){return u},timeSunday:function(){return m.uU},timeSundays:function(){return m.Ab},timeThursday:function(){return m.kD},timeThursdays:function(){return m.eC},timeTuesday:function(){return m.Mf},timeTuesdays:function(){return m.Oc},timeWednesday:function(){return m.eg},timeWednesdays:function(){return m.sn},timeWeek:function(){return m.uU},timeWeeks:function(){return m.Ab},timeYear:function(){return w.c},timeYears:function(){return w.Q},utcDay:function(){return D.c},utcDays:function(){return D.o},utcFriday:function(){return O.od},utcFridays:function(){return O.iG},utcHour:function(){return L},utcHours:function(){return S},utcMillisecond:function(){return i},utcMilliseconds:function(){return o},utcMinute:function(){return M},utcMinutes:function(){return k},utcMonday:function(){return O.ot},utcMondays:function(){return O.iO},utcMonth:function(){return P},utcMonths:function(){return I},utcSaturday:function(){return O.Ad},utcSaturdays:function(){return O.K8},utcSecond:function(){return c},utcSeconds:function(){return u},utcSunday:function(){return O.EV},utcSundays:function(){return O.Wq},utcThursday:function(){return O.yA},utcThursdays:function(){return O.ob},utcTuesday:function(){return O.sG},utcTuesdays:function(){return O.kl},utcWednesday:function(){return O._6},utcWednesdays:function(){return O.W_},utcWeek:function(){return O.EV},utcWeeks:function(){return O.Wq},utcYear:function(){return R.c},utcYears:function(){return R.i}});var n=r(1628),a=(0,n.c)((function(){}),(function(e,t){e.setTime(+e+t)}),(function(e,t){return t-e}));a.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?(0,n.c)((function(t){t.setTime(Math.floor(t/e)*e)}),(function(t,r){t.setTime(+t+r*e)}),(function(t,r){return(r-t)/e})):a:null};var i=a,o=a.range,l=r(9792),s=(0,n.c)((function(e){e.setTime(e-e.getMilliseconds())}),(function(e,t){e.setTime(+e+t*l.yc)}),(function(e,t){return(t-e)/l.yc}),(function(e){return e.getUTCSeconds()})),c=s,u=s.range,f=(0,n.c)((function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*l.yc)}),(function(e,t){e.setTime(+e+t*l.iy)}),(function(e,t){return(t-e)/l.iy}),(function(e){return e.getMinutes()})),d=f,h=f.range,p=(0,n.c)((function(e){e.setTime(e-e.getMilliseconds()-e.getSeconds()*l.yc-e.getMinutes()*l.iy)}),(function(e,t){e.setTime(+e+t*l.cg)}),(function(e,t){return(t-e)/l.cg}),(function(e){return e.getHours()})),v=p,g=p.range,y=r(8936),m=r(6192),x=(0,n.c)((function(e){e.setDate(1),e.setHours(0,0,0,0)}),(function(e,t){e.setMonth(e.getMonth()+t)}),(function(e,t){return t.getMonth()-e.getMonth()+12*(t.getFullYear()-e.getFullYear())}),(function(e){return e.getMonth()})),b=x,_=x.range,w=r(2171),T=(0,n.c)((function(e){e.setUTCSeconds(0,0)}),(function(e,t){e.setTime(+e+t*l.iy)}),(function(e,t){return(t-e)/l.iy}),(function(e){return e.getUTCMinutes()})),M=T,k=T.range,A=(0,n.c)((function(e){e.setUTCMinutes(0,0,0)}),(function(e,t){e.setTime(+e+t*l.cg)}),(function(e,t){return(t-e)/l.cg}),(function(e){return e.getUTCHours()})),L=A,S=A.range,D=r(8931),O=r(8208),C=(0,n.c)((function(e){e.setUTCDate(1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCMonth(e.getUTCMonth()+t)}),(function(e,t){return t.getUTCMonth()-e.getUTCMonth()+12*(t.getUTCFullYear()-e.getUTCFullYear())}),(function(e){return e.getUTCMonth()})),P=C,I=C.range,R=r(3528)},1628:function(e,t,r){"use strict";r.d(t,{c:function(){return i}});var n=new Date,a=new Date;function i(e,t,r,o){function l(t){return e(t=0===arguments.length?new Date:new Date(+t)),t}return l.floor=function(t){return e(t=new Date(+t)),t},l.ceil=function(r){return e(r=new Date(r-1)),t(r,1),e(r),r},l.round=function(e){var t=l(e),r=l.ceil(e);return e-t0))return o;do{o.push(i=new Date(+r)),t(r,a),e(r)}while(i=t)for(;e(t),!r(t);)t.setTime(t-1)}),(function(e,n){if(e>=e)if(n<0)for(;++n<=0;)for(;t(e,-1),!r(e););else for(;--n>=0;)for(;t(e,1),!r(e););}))},r&&(l.count=function(t,i){return n.setTime(+t),a.setTime(+i),e(n),e(a),Math.floor(r(n,a))},l.every=function(e){return e=Math.floor(e),isFinite(e)&&e>0?e>1?l.filter(o?function(t){return o(t)%e==0}:function(t){return l.count(0,t)%e==0}):l:null}),l}},8931:function(e,t,r){"use strict";r.d(t,{o:function(){return o}});var n=r(1628),a=r(9792),i=(0,n.c)((function(e){e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+t)}),(function(e,t){return(t-e)/a.SK}),(function(e){return e.getUTCDate()-1}));t.c=i;var o=i.range},8208:function(e,t,r){"use strict";r.d(t,{Ad:function(){return d},EV:function(){return o},K8:function(){return x},W_:function(){return g},Wq:function(){return h},_6:function(){return c},iG:function(){return m},iO:function(){return p},kl:function(){return v},ob:function(){return y},od:function(){return f},ot:function(){return l},sG:function(){return s},yA:function(){return u}});var n=r(1628),a=r(9792);function i(e){return(0,n.c)((function(t){t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCDate(e.getUTCDate()+7*t)}),(function(e,t){return(t-e)/a.KK}))}var o=i(0),l=i(1),s=i(2),c=i(3),u=i(4),f=i(5),d=i(6),h=o.range,p=l.range,v=s.range,g=c.range,y=u.range,m=f.range,x=d.range},3528:function(e,t,r){"use strict";r.d(t,{i:function(){return i}});var n=r(1628),a=(0,n.c)((function(e){e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,t){e.setUTCFullYear(e.getUTCFullYear()+t)}),(function(e,t){return t.getUTCFullYear()-e.getUTCFullYear()}),(function(e){return e.getUTCFullYear()}));a.every=function(e){return isFinite(e=Math.floor(e))&&e>0?(0,n.c)((function(t){t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,r){t.setUTCFullYear(t.getUTCFullYear()+r*e)})):null},t.c=a;var i=a.range},6192:function(e,t,r){"use strict";r.d(t,{Ab:function(){return h},Mf:function(){return s},Oc:function(){return v},QP:function(){return p},Wc:function(){return d},aI:function(){return x},eC:function(){return y},eg:function(){return c},iB:function(){return f},kD:function(){return u},qT:function(){return l},sJ:function(){return m},sn:function(){return g},uU:function(){return o}});var n=r(1628),a=r(9792);function i(e){return(0,n.c)((function(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)}),(function(e,t){e.setDate(e.getDate()+7*t)}),(function(e,t){return(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*a.iy)/a.KK}))}var o=i(0),l=i(1),s=i(2),c=i(3),u=i(4),f=i(5),d=i(6),h=o.range,p=l.range,v=s.range,g=c.range,y=u.range,m=f.range,x=d.range},2171:function(e,t,r){"use strict";r.d(t,{Q:function(){return i}});var n=r(1628),a=(0,n.c)((function(e){e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,t){e.setFullYear(e.getFullYear()+t)}),(function(e,t){return t.getFullYear()-e.getFullYear()}),(function(e){return e.getFullYear()}));a.every=function(e){return isFinite(e=Math.floor(e))&&e>0?(0,n.c)((function(t){t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,r){t.setFullYear(t.getFullYear()+r*e)})):null},t.c=a;var i=a.range},1252:function(e){"use strict";var t,r="object"==typeof Reflect?Reflect:null,n=r&&"function"==typeof r.apply?r.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};t=r&&"function"==typeof r.ownKeys?r.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function i(){i.init.call(this)}e.exports=i,e.exports.once=function(e,t){return new Promise((function(r,n){function a(r){e.removeListener(t,i),n(r)}function i(){"function"==typeof e.removeListener&&e.removeListener("error",a),r([].slice.call(arguments))}v(e,t,i,{once:!0}),"error"!==t&&function(e,t,r){"function"==typeof e.on&&v(e,"error",t,{once:!0})}(e,a)}))},i.EventEmitter=i,i.prototype._events=void 0,i.prototype._eventsCount=0,i.prototype._maxListeners=void 0;var o=10;function l(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function s(e){return void 0===e._maxListeners?i.defaultMaxListeners:e._maxListeners}function c(e,t,r,n){var a,i,o,c;if(l(r),void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),i=e._events),o=i[t]),void 0===o)o=i[t]=r,++e._eventsCount;else if("function"==typeof o?o=i[t]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),(a=s(e))>0&&o.length>a&&!o.warned){o.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=o.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},a=u.bind(n);return a.listener=r,n.wrapFn=a,a}function d(e,t,r){var n=e._events;if(void 0===n)return[];var a=n[t];return void 0===a?[]:"function"==typeof a?r?[a.listener||a]:[a]:r?function(e){for(var t=new Array(e.length),r=0;r0&&(o=t[0]),o instanceof Error)throw o;var l=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw l.context=o,l}var s=i[e];if(void 0===s)return!1;if("function"==typeof s)n(s,this,t);else{var c=s.length,u=p(s,c);for(r=0;r=0;i--)if(r[i]===t||r[i].listener===t){o=r[i].listener,a=i;break}if(a<0)return this;0===a?r.shift():function(e,t){for(;t+1=0;n--)this.removeListener(e,t[n]);return this},i.prototype.listeners=function(e){return d(this,e,!0)},i.prototype.rawListeners=function(e){return d(this,e,!1)},i.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},i.prototype.listenerCount=h,i.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},8248:function(e,t,r){"use strict";var n=r(4576);e.exports=function(e){var t=typeof e;if("string"===t){var r=e;if(0==(e=+e)&&n(r))return!1}else if("number"!==t)return!1;return e-e<1}},2408:function(e){e.exports=function(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=t[4],l=t[5],s=t[6],c=t[7],u=t[8],f=t[9],d=t[10],h=t[11],p=t[12],v=t[13],g=t[14],y=t[15];return e[0]=l*(d*y-h*g)-f*(s*y-c*g)+v*(s*h-c*d),e[1]=-(n*(d*y-h*g)-f*(a*y-i*g)+v*(a*h-i*d)),e[2]=n*(s*y-c*g)-l*(a*y-i*g)+v*(a*c-i*s),e[3]=-(n*(s*h-c*d)-l*(a*h-i*d)+f*(a*c-i*s)),e[4]=-(o*(d*y-h*g)-u*(s*y-c*g)+p*(s*h-c*d)),e[5]=r*(d*y-h*g)-u*(a*y-i*g)+p*(a*h-i*d),e[6]=-(r*(s*y-c*g)-o*(a*y-i*g)+p*(a*c-i*s)),e[7]=r*(s*h-c*d)-o*(a*h-i*d)+u*(a*c-i*s),e[8]=o*(f*y-h*v)-u*(l*y-c*v)+p*(l*h-c*f),e[9]=-(r*(f*y-h*v)-u*(n*y-i*v)+p*(n*h-i*f)),e[10]=r*(l*y-c*v)-o*(n*y-i*v)+p*(n*c-i*l),e[11]=-(r*(l*h-c*f)-o*(n*h-i*f)+u*(n*c-i*l)),e[12]=-(o*(f*g-d*v)-u*(l*g-s*v)+p*(l*d-s*f)),e[13]=r*(f*g-d*v)-u*(n*g-a*v)+p*(n*d-a*f),e[14]=-(r*(l*g-s*v)-o*(n*g-a*v)+p*(n*s-a*l)),e[15]=r*(l*d-s*f)-o*(n*d-a*f)+u*(n*s-a*l),e}},6860:function(e){e.exports=function(e){var t=new Float32Array(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},4492:function(e){e.exports=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},4212:function(e){e.exports=function(){var e=new Float32Array(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},800:function(e){e.exports=function(e){var t=e[0],r=e[1],n=e[2],a=e[3],i=e[4],o=e[5],l=e[6],s=e[7],c=e[8],u=e[9],f=e[10],d=e[11],h=e[12],p=e[13],v=e[14],g=e[15];return(t*o-r*i)*(f*g-d*v)-(t*l-n*i)*(u*g-d*p)+(t*s-a*i)*(u*v-f*p)+(r*l-n*o)*(c*g-d*h)-(r*s-a*o)*(c*v-f*h)+(n*s-a*l)*(c*p-u*h)}},1784:function(e){e.exports=function(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=r+r,l=n+n,s=a+a,c=r*o,u=n*o,f=n*l,d=a*o,h=a*l,p=a*s,v=i*o,g=i*l,y=i*s;return e[0]=1-f-p,e[1]=u+y,e[2]=d-g,e[3]=0,e[4]=u-y,e[5]=1-c-p,e[6]=h+v,e[7]=0,e[8]=d+g,e[9]=h-v,e[10]=1-c-f,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},1616:function(e){e.exports=function(e,t,r){var n,a,i,o=r[0],l=r[1],s=r[2],c=Math.sqrt(o*o+l*l+s*s);return Math.abs(c)<1e-6?null:(o*=c=1/c,l*=c,s*=c,n=Math.sin(t),i=1-(a=Math.cos(t)),e[0]=o*o*i+a,e[1]=l*o*i+s*n,e[2]=s*o*i-l*n,e[3]=0,e[4]=o*l*i-s*n,e[5]=l*l*i+a,e[6]=s*l*i+o*n,e[7]=0,e[8]=o*s*i+l*n,e[9]=l*s*i-o*n,e[10]=s*s*i+a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}},1944:function(e){e.exports=function(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],l=n+n,s=a+a,c=i+i,u=n*l,f=n*s,d=n*c,h=a*s,p=a*c,v=i*c,g=o*l,y=o*s,m=o*c;return e[0]=1-(h+v),e[1]=f+m,e[2]=d-y,e[3]=0,e[4]=f-m,e[5]=1-(u+v),e[6]=p+g,e[7]=0,e[8]=d+y,e[9]=p-g,e[10]=1-(u+h),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}},9444:function(e){e.exports=function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},8268:function(e){e.exports=function(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}},1856:function(e){e.exports=function(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},9216:function(e){e.exports=function(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},7736:function(e){e.exports=function(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},8848:function(e){e.exports=function(e,t,r,n,a,i,o){var l=1/(r-t),s=1/(a-n),c=1/(i-o);return e[0]=2*i*l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*i*s,e[6]=0,e[7]=0,e[8]=(r+t)*l,e[9]=(a+n)*s,e[10]=(o+i)*c,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*i*2*c,e[15]=0,e}},6635:function(e){e.exports=function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}},6524:function(e,t,r){e.exports={create:r(4212),clone:r(6860),copy:r(4492),identity:r(6635),transpose:r(6520),invert:r(4308),adjoint:r(2408),determinant:r(800),multiply:r(944),translate:r(5176),scale:r(8152),rotate:r(16),rotateX:r(5456),rotateY:r(4840),rotateZ:r(4192),fromRotation:r(1616),fromRotationTranslation:r(1944),fromScaling:r(9444),fromTranslation:r(8268),fromXRotation:r(1856),fromYRotation:r(9216),fromZRotation:r(7736),fromQuat:r(1784),frustum:r(8848),perspective:r(1296),perspectiveFromFieldOfView:r(3688),ortho:r(7688),lookAt:r(6508),str:r(9412)}},4308:function(e){e.exports=function(e,t){var r=t[0],n=t[1],a=t[2],i=t[3],o=t[4],l=t[5],s=t[6],c=t[7],u=t[8],f=t[9],d=t[10],h=t[11],p=t[12],v=t[13],g=t[14],y=t[15],m=r*l-n*o,x=r*s-a*o,b=r*c-i*o,_=n*s-a*l,w=n*c-i*l,T=a*c-i*s,M=u*v-f*p,k=u*g-d*p,A=u*y-h*p,L=f*g-d*v,S=f*y-h*v,D=d*y-h*g,O=m*D-x*S+b*L+_*A-w*k+T*M;return O?(O=1/O,e[0]=(l*D-s*S+c*L)*O,e[1]=(a*S-n*D-i*L)*O,e[2]=(v*T-g*w+y*_)*O,e[3]=(d*w-f*T-h*_)*O,e[4]=(s*A-o*D-c*k)*O,e[5]=(r*D-a*A+i*k)*O,e[6]=(g*b-p*T-y*x)*O,e[7]=(u*T-d*b+h*x)*O,e[8]=(o*S-l*A+c*M)*O,e[9]=(n*A-r*S-i*M)*O,e[10]=(p*w-v*b+y*m)*O,e[11]=(f*b-u*w-h*m)*O,e[12]=(l*k-o*L-s*M)*O,e[13]=(r*L-n*k+a*M)*O,e[14]=(v*x-p*_-g*m)*O,e[15]=(u*_-f*x+d*m)*O,e):null}},6508:function(e,t,r){var n=r(6635);e.exports=function(e,t,r,a){var i,o,l,s,c,u,f,d,h,p,v=t[0],g=t[1],y=t[2],m=a[0],x=a[1],b=a[2],_=r[0],w=r[1],T=r[2];return Math.abs(v-_)<1e-6&&Math.abs(g-w)<1e-6&&Math.abs(y-T)<1e-6?n(e):(f=v-_,d=g-w,h=y-T,i=x*(h*=p=1/Math.sqrt(f*f+d*d+h*h))-b*(d*=p),o=b*(f*=p)-m*h,l=m*d-x*f,(p=Math.sqrt(i*i+o*o+l*l))?(i*=p=1/p,o*=p,l*=p):(i=0,o=0,l=0),s=d*l-h*o,c=h*i-f*l,u=f*o-d*i,(p=Math.sqrt(s*s+c*c+u*u))?(s*=p=1/p,c*=p,u*=p):(s=0,c=0,u=0),e[0]=i,e[1]=s,e[2]=f,e[3]=0,e[4]=o,e[5]=c,e[6]=d,e[7]=0,e[8]=l,e[9]=u,e[10]=h,e[11]=0,e[12]=-(i*v+o*g+l*y),e[13]=-(s*v+c*g+u*y),e[14]=-(f*v+d*g+h*y),e[15]=1,e)}},944:function(e){e.exports=function(e,t,r){var n=t[0],a=t[1],i=t[2],o=t[3],l=t[4],s=t[5],c=t[6],u=t[7],f=t[8],d=t[9],h=t[10],p=t[11],v=t[12],g=t[13],y=t[14],m=t[15],x=r[0],b=r[1],_=r[2],w=r[3];return e[0]=x*n+b*l+_*f+w*v,e[1]=x*a+b*s+_*d+w*g,e[2]=x*i+b*c+_*h+w*y,e[3]=x*o+b*u+_*p+w*m,x=r[4],b=r[5],_=r[6],w=r[7],e[4]=x*n+b*l+_*f+w*v,e[5]=x*a+b*s+_*d+w*g,e[6]=x*i+b*c+_*h+w*y,e[7]=x*o+b*u+_*p+w*m,x=r[8],b=r[9],_=r[10],w=r[11],e[8]=x*n+b*l+_*f+w*v,e[9]=x*a+b*s+_*d+w*g,e[10]=x*i+b*c+_*h+w*y,e[11]=x*o+b*u+_*p+w*m,x=r[12],b=r[13],_=r[14],w=r[15],e[12]=x*n+b*l+_*f+w*v,e[13]=x*a+b*s+_*d+w*g,e[14]=x*i+b*c+_*h+w*y,e[15]=x*o+b*u+_*p+w*m,e}},7688:function(e){e.exports=function(e,t,r,n,a,i,o){var l=1/(t-r),s=1/(n-a),c=1/(i-o);return e[0]=-2*l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+r)*l,e[13]=(a+n)*s,e[14]=(o+i)*c,e[15]=1,e}},1296:function(e){e.exports=function(e,t,r,n,a){var i=1/Math.tan(t/2),o=1/(n-a);return e[0]=i/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=(a+n)*o,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*a*n*o,e[15]=0,e}},3688:function(e){e.exports=function(e,t,r,n){var a=Math.tan(t.upDegrees*Math.PI/180),i=Math.tan(t.downDegrees*Math.PI/180),o=Math.tan(t.leftDegrees*Math.PI/180),l=Math.tan(t.rightDegrees*Math.PI/180),s=2/(o+l),c=2/(a+i);return e[0]=s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=-(o-l)*s*.5,e[9]=(a-i)*c*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e}},16:function(e){e.exports=function(e,t,r,n){var a,i,o,l,s,c,u,f,d,h,p,v,g,y,m,x,b,_,w,T,M,k,A,L,S=n[0],D=n[1],O=n[2],C=Math.sqrt(S*S+D*D+O*O);return Math.abs(C)<1e-6?null:(S*=C=1/C,D*=C,O*=C,a=Math.sin(r),o=1-(i=Math.cos(r)),l=t[0],s=t[1],c=t[2],u=t[3],f=t[4],d=t[5],h=t[6],p=t[7],v=t[8],g=t[9],y=t[10],m=t[11],x=S*S*o+i,b=D*S*o+O*a,_=O*S*o-D*a,w=S*D*o-O*a,T=D*D*o+i,M=O*D*o+S*a,k=S*O*o+D*a,A=D*O*o-S*a,L=O*O*o+i,e[0]=l*x+f*b+v*_,e[1]=s*x+d*b+g*_,e[2]=c*x+h*b+y*_,e[3]=u*x+p*b+m*_,e[4]=l*w+f*T+v*M,e[5]=s*w+d*T+g*M,e[6]=c*w+h*T+y*M,e[7]=u*w+p*T+m*M,e[8]=l*k+f*A+v*L,e[9]=s*k+d*A+g*L,e[10]=c*k+h*A+y*L,e[11]=u*k+p*A+m*L,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}},5456:function(e){e.exports=function(e,t,r){var n=Math.sin(r),a=Math.cos(r),i=t[4],o=t[5],l=t[6],s=t[7],c=t[8],u=t[9],f=t[10],d=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=i*a+c*n,e[5]=o*a+u*n,e[6]=l*a+f*n,e[7]=s*a+d*n,e[8]=c*a-i*n,e[9]=u*a-o*n,e[10]=f*a-l*n,e[11]=d*a-s*n,e}},4840:function(e){e.exports=function(e,t,r){var n=Math.sin(r),a=Math.cos(r),i=t[0],o=t[1],l=t[2],s=t[3],c=t[8],u=t[9],f=t[10],d=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*a-c*n,e[1]=o*a-u*n,e[2]=l*a-f*n,e[3]=s*a-d*n,e[8]=i*n+c*a,e[9]=o*n+u*a,e[10]=l*n+f*a,e[11]=s*n+d*a,e}},4192:function(e){e.exports=function(e,t,r){var n=Math.sin(r),a=Math.cos(r),i=t[0],o=t[1],l=t[2],s=t[3],c=t[4],u=t[5],f=t[6],d=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=i*a+c*n,e[1]=o*a+u*n,e[2]=l*a+f*n,e[3]=s*a+d*n,e[4]=c*a-i*n,e[5]=u*a-o*n,e[6]=f*a-l*n,e[7]=d*a-s*n,e}},8152:function(e){e.exports=function(e,t,r){var n=r[0],a=r[1],i=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*a,e[5]=t[5]*a,e[6]=t[6]*a,e[7]=t[7]*a,e[8]=t[8]*i,e[9]=t[9]*i,e[10]=t[10]*i,e[11]=t[11]*i,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},9412:function(e){e.exports=function(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}},5176:function(e){e.exports=function(e,t,r){var n,a,i,o,l,s,c,u,f,d,h,p,v=r[0],g=r[1],y=r[2];return t===e?(e[12]=t[0]*v+t[4]*g+t[8]*y+t[12],e[13]=t[1]*v+t[5]*g+t[9]*y+t[13],e[14]=t[2]*v+t[6]*g+t[10]*y+t[14],e[15]=t[3]*v+t[7]*g+t[11]*y+t[15]):(n=t[0],a=t[1],i=t[2],o=t[3],l=t[4],s=t[5],c=t[6],u=t[7],f=t[8],d=t[9],h=t[10],p=t[11],e[0]=n,e[1]=a,e[2]=i,e[3]=o,e[4]=l,e[5]=s,e[6]=c,e[7]=u,e[8]=f,e[9]=d,e[10]=h,e[11]=p,e[12]=n*v+l*g+f*y+t[12],e[13]=a*v+s*g+d*y+t[13],e[14]=i*v+c*g+h*y+t[14],e[15]=o*v+u*g+p*y+t[15]),e}},6520:function(e){e.exports=function(e,t){if(e===t){var r=t[1],n=t[2],a=t[3],i=t[6],o=t[7],l=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=i,e[11]=t[14],e[12]=a,e[13]=o,e[14]=l}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}},2264:function(e,t,r){"use strict";var n,a=r(1820);n="function"==typeof r.g.matchMedia?!r.g.matchMedia("(hover: none)").matches:a,e.exports=n},9184:function(e,t,r){"use strict";var n=r(1820);e.exports=n&&function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(t){e=!1}return e}()},1820:function(e){e.exports=!0},4576:function(e){"use strict";e.exports=function(e){for(var t,r=e.length,n=0;n13)&&32!==t&&133!==t&&160!==t&&5760!==t&&6158!==t&&(t<8192||t>8205)&&8232!==t&&8233!==t&&8239!==t&&8287!==t&&8288!==t&&12288!==t&&65279!==t)return!1;return!0}},9128:function(e){var t={left:0,top:0};e.exports=function(e,r,n){r=r||e.currentTarget||e.srcElement,Array.isArray(n)||(n=[0,0]);var a,i=e.clientX||0,o=e.clientY||0,l=(a=r)===window||a===document||a===document.body?t:a.getBoundingClientRect();return n[0]=i-l.left,n[1]=o-l.top,n}},8324:function(e,t,r){var n,a,i,o;a="Promise",o=function(){"use strict";var e,t,r,n=Object.prototype.toString,a="undefined"!=typeof setImmediate?function(e){return setImmediate(e)}:setTimeout;try{Object.defineProperty({},"x",{}),e=function(e,t,r,n){return Object.defineProperty(e,t,{value:r,writable:!0,configurable:!1!==n})}}catch(t){e=function(e,t,r){return e[t]=r,e}}function i(e,n){r.add(e,n),t||(t=a(r.drain))}function o(e){var t,r=typeof e;return null==e||"object"!=r&&"function"!=r||(t=e.then),"function"==typeof t&&t}function l(){for(var e=0;e0&&i(l,r))}catch(e){u.call(new d(r),e)}}}function u(e){var t=this;t.triggered||(t.triggered=!0,t.def&&(t=t.def),t.msg=e,t.state=2,t.chain.length>0&&i(l,t))}function f(e,t,r,n){for(var a=0;a2&&(a.push([r].concat(i.splice(0,2))),o="l",r="m"==r?"l":"L");;){if(i.length==t[o])return i.unshift(r),a.push(i);if(i.lengthi!=h>i&&a<(d-u)*(i-f)/(h-f)+u&&(o=!o)}return o}},4756:function(e,t,r){var n,a=r(2928),i=r(8648),o=r(9819),l=r(1403),s=r(2368),c=r(7792),u=!1,f=i();function d(e,t,r){var a=n.segments(e),i=n.segments(t),o=r(n.combine(a,i));return n.polygon(o)}n={buildLog:function(e){return!0===e?u=a():!1===e&&(u=!1),!1!==u&&u.list},epsilon:function(e){return f.epsilon(e)},segments:function(e){var t=o(!0,f,u);return e.regions.forEach(t.addRegion),{segments:t.calculate(e.inverted),inverted:e.inverted}},combine:function(e,t){return{combined:o(!1,f,u).calculate(e.segments,e.inverted,t.segments,t.inverted),inverted1:e.inverted,inverted2:t.inverted}},selectUnion:function(e){return{segments:s.union(e.combined,u),inverted:e.inverted1||e.inverted2}},selectIntersect:function(e){return{segments:s.intersect(e.combined,u),inverted:e.inverted1&&e.inverted2}},selectDifference:function(e){return{segments:s.difference(e.combined,u),inverted:e.inverted1&&!e.inverted2}},selectDifferenceRev:function(e){return{segments:s.differenceRev(e.combined,u),inverted:!e.inverted1&&e.inverted2}},selectXor:function(e){return{segments:s.xor(e.combined,u),inverted:e.inverted1!==e.inverted2}},polygon:function(e){return{regions:l(e.segments,f,u),inverted:e.inverted}},polygonFromGeoJSON:function(e){return c.toPolygon(n,e)},polygonToGeoJSON:function(e){return c.fromPolygon(n,f,e)},union:function(e,t){return d(e,t,n.selectUnion)},intersect:function(e,t){return d(e,t,n.selectIntersect)},difference:function(e,t){return d(e,t,n.selectDifference)},differenceRev:function(e,t){return d(e,t,n.selectDifferenceRev)},xor:function(e,t){return d(e,t,n.selectXor)}},"object"==typeof window&&(window.PolyBool=n),e.exports=n},2928:function(e){e.exports=function(){var e,t=0,r=!1;function n(t,r){return e.list.push({type:t,data:r?JSON.parse(JSON.stringify(r)):void 0}),e}return e={list:[],segmentId:function(){return t++},checkIntersection:function(e,t){return n("check",{seg1:e,seg2:t})},segmentChop:function(e,t){return n("div_seg",{seg:e,pt:t}),n("chop",{seg:e,pt:t})},statusRemove:function(e){return n("pop_seg",{seg:e})},segmentUpdate:function(e){return n("seg_update",{seg:e})},segmentNew:function(e,t){return n("new_seg",{seg:e,primary:t})},segmentRemove:function(e){return n("rem_seg",{seg:e})},tempStatus:function(e,t,r){return n("temp_status",{seg:e,above:t,below:r})},rewind:function(e){return n("rewind",{seg:e})},status:function(e,t,r){return n("status",{seg:e,above:t,below:r})},vert:function(t){return t===r?e:(r=t,n("vert",{x:t}))},log:function(e){return"string"!=typeof e&&(e=JSON.stringify(e,!1," ")),n("log",{txt:e})},reset:function(){return n("reset")},selected:function(e){return n("selected",{segs:e})},chainStart:function(e){return n("chain_start",{seg:e})},chainRemoveHead:function(e,t){return n("chain_rem_head",{index:e,pt:t})},chainRemoveTail:function(e,t){return n("chain_rem_tail",{index:e,pt:t})},chainNew:function(e,t){return n("chain_new",{pt1:e,pt2:t})},chainMatch:function(e){return n("chain_match",{index:e})},chainClose:function(e){return n("chain_close",{index:e})},chainAddHead:function(e,t){return n("chain_add_head",{index:e,pt:t})},chainAddTail:function(e,t){return n("chain_add_tail",{index:e,pt:t})},chainConnect:function(e,t){return n("chain_con",{index1:e,index2:t})},chainReverse:function(e){return n("chain_rev",{index:e})},chainJoin:function(e,t){return n("chain_join",{index1:e,index2:t})},done:function(){return n("done")}}}},8648:function(e){e.exports=function(e){"number"!=typeof e&&(e=1e-10);var t={epsilon:function(t){return"number"==typeof t&&(e=t),e},pointAboveOrOnLine:function(t,r,n){var a=r[0],i=r[1],o=n[0],l=n[1],s=t[0];return(o-a)*(t[1]-i)-(l-i)*(s-a)>=-e},pointBetween:function(t,r,n){var a=t[1]-r[1],i=n[0]-r[0],o=t[0]-r[0],l=n[1]-r[1],s=o*i+a*l;return!(s-e)},pointsSameX:function(t,r){return Math.abs(t[0]-r[0])e!=o-a>e&&(i-c)*(a-u)/(o-u)+c-n>e&&(l=!l),i=c,o=u}return l}};return t}},7792:function(e){var t={toPolygon:function(e,t){function r(t){if(t.length<=0)return e.segments({inverted:!1,regions:[]});function r(t){var r=t.slice(0,t.length-1);return e.segments({inverted:!1,regions:[r]})}for(var n=r(t[0]),a=1;a0}))}function u(e,n){var a=e.seg,i=n.seg,o=a.start,l=a.end,c=i.start,u=i.end;r&&r.checkIntersection(a,i);var f=t.linesIntersect(o,l,c,u);if(!1===f){if(!t.pointsCollinear(o,l,c))return!1;if(t.pointsSame(o,u)||t.pointsSame(l,c))return!1;var d=t.pointsSame(o,c),h=t.pointsSame(l,u);if(d&&h)return n;var p=!d&&t.pointBetween(o,c,u),v=!h&&t.pointBetween(l,c,u);if(d)return v?s(n,l):s(e,u),n;p&&(h||(v?s(n,l):s(e,u)),s(n,o))}else 0===f.alongA&&(-1===f.alongB?s(e,c):0===f.alongB?s(e,f.pt):1===f.alongB&&s(e,u)),0===f.alongB&&(-1===f.alongA?s(n,o):0===f.alongA?s(n,f.pt):1===f.alongA&&s(n,l));return!1}for(var f=[];!i.isEmpty();){var d=i.getHead();if(r&&r.vert(d.pt[0]),d.isStart){r&&r.segmentNew(d.seg,d.primary);var h=c(d),p=h.before?h.before.ev:null,v=h.after?h.after.ev:null;function g(){if(p){var e=u(d,p);if(e)return e}return!!v&&u(d,v)}r&&r.tempStatus(d.seg,!!p&&p.seg,!!v&&v.seg);var y,m,x=g();if(x)e?(m=null===d.seg.myFill.below||d.seg.myFill.above!==d.seg.myFill.below)&&(x.seg.myFill.above=!x.seg.myFill.above):x.seg.otherFill=d.seg.myFill,r&&r.segmentUpdate(x.seg),d.other.remove(),d.remove();if(i.getHead()!==d){r&&r.rewind(d.seg);continue}e?(m=null===d.seg.myFill.below||d.seg.myFill.above!==d.seg.myFill.below,d.seg.myFill.below=v?v.seg.myFill.above:a,d.seg.myFill.above=m?!d.seg.myFill.below:d.seg.myFill.below):null===d.seg.otherFill&&(y=v?d.primary===v.primary?v.seg.otherFill.above:v.seg.myFill.above:d.primary?o:a,d.seg.otherFill={above:y,below:y}),r&&r.status(d.seg,!!p&&p.seg,!!v&&v.seg),d.other.status=h.insert(n.node({ev:d}))}else{var b=d.status;if(null===b)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(l.exists(b.prev)&&l.exists(b.next)&&u(b.prev.ev,b.next.ev),r&&r.statusRemove(b.ev.seg),b.remove(),!d.primary){var _=d.seg.myFill;d.seg.myFill=d.seg.otherFill,d.seg.otherFill=_}f.push(d.seg)}i.getHead().remove()}return r&&r.done(),f}return e?{addRegion:function(e){for(var n,a,i,o=e[e.length-1],s=0;s1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e}if(e=I(e,360),t=I(t,100),r=I(r,100),0===t)n=a=i=r;else{var l=r<.5?r*(1+t):r+t-r*t,s=2*r-l;n=o(s,l,e+1/3),a=o(s,l,e),i=o(s,l,e-1/3)}return{r:255*n,g:255*a,b:255*i}}(e.h,f,h),p=!0,v="hsl"),e.hasOwnProperty("a")&&(s=e.a)),s=P(s),{ok:p,format:e.format||v,r:c(255,u(l.r,0)),g:c(255,u(l.g,0)),b:c(255,u(l.b,0)),a:s}}(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=s(100*this._a)/100,this._format=t.format||r.format,this._gradientType=t.gradientType,this._r<1&&(this._r=s(this._r)),this._g<1&&(this._g=s(this._g)),this._b<1&&(this._b=s(this._b)),this._ok=r.ok,this._tc_id=l++}function h(e,t,r){e=I(e,255),t=I(t,255),r=I(r,255);var n,a,i=u(e,t,r),o=c(e,t,r),l=(i+o)/2;if(i==o)n=a=0;else{var s=i-o;switch(a=l>.5?s/(2-i-o):s/(i+o),i){case e:n=(t-r)/s+(t>1)+720)%360;--t;)n.h=(n.h+a)%360,i.push(d(n));return i}function D(e,t){t=t||6;for(var r=d(e).toHsv(),n=r.h,a=r.s,i=r.v,o=[],l=1/t;t--;)o.push(d({h:n,s:a,v:i})),i=(i+l)%1;return o}d.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,r,n=this.toRgb();return e=n.r/255,t=n.g/255,r=n.b/255,.2126*(e<=.03928?e/12.92:a.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:a.pow((t+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:a.pow((r+.055)/1.055,2.4))},setAlpha:function(e){return this._a=P(e),this._roundA=s(100*this._a)/100,this},toHsv:function(){var e=p(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=p(this._r,this._g,this._b),t=s(360*e.h),r=s(100*e.s),n=s(100*e.v);return 1==this._a?"hsv("+t+", "+r+"%, "+n+"%)":"hsva("+t+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var e=h(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=h(this._r,this._g,this._b),t=s(360*e.h),r=s(100*e.s),n=s(100*e.l);return 1==this._a?"hsl("+t+", "+r+"%, "+n+"%)":"hsla("+t+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(e){return v(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,r,n,a){var i=[N(s(e).toString(16)),N(s(t).toString(16)),N(s(r).toString(16)),N(E(n))];return a&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0):i.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:s(this._r),g:s(this._g),b:s(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+s(this._r)+", "+s(this._g)+", "+s(this._b)+")":"rgba("+s(this._r)+", "+s(this._g)+", "+s(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:s(100*I(this._r,255))+"%",g:s(100*I(this._g,255))+"%",b:s(100*I(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+s(100*I(this._r,255))+"%, "+s(100*I(this._g,255))+"%, "+s(100*I(this._b,255))+"%)":"rgba("+s(100*I(this._r,255))+"%, "+s(100*I(this._g,255))+"%, "+s(100*I(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(C[v(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+g(this._r,this._g,this._b,this._a),r=t,n=this._gradientType?"GradientType = 1, ":"";if(e){var a=d(e);r="#"+g(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+t+",endColorstr="+r+")"},toString:function(e){var t=!!e;e=e||this._format;var r=!1,n=this._a<1&&this._a>=0;return t||!n||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(r=this.toRgbString()),"prgb"===e&&(r=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(r=this.toHexString()),"hex3"===e&&(r=this.toHexString(!0)),"hex4"===e&&(r=this.toHex8String(!0)),"hex8"===e&&(r=this.toHex8String()),"name"===e&&(r=this.toName()),"hsl"===e&&(r=this.toHslString()),"hsv"===e&&(r=this.toHsvString()),r||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return d(this.toString())},_applyModification:function(e,t){var r=e.apply(null,[this].concat([].slice.call(t)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(b,arguments)},brighten:function(){return this._applyModification(_,arguments)},darken:function(){return this._applyModification(w,arguments)},desaturate:function(){return this._applyModification(y,arguments)},saturate:function(){return this._applyModification(m,arguments)},greyscale:function(){return this._applyModification(x,arguments)},spin:function(){return this._applyModification(T,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(S,arguments)},complement:function(){return this._applyCombination(M,arguments)},monochromatic:function(){return this._applyCombination(D,arguments)},splitcomplement:function(){return this._applyCombination(L,arguments)},triad:function(){return this._applyCombination(k,arguments)},tetrad:function(){return this._applyCombination(A,arguments)}},d.fromRatio=function(e,t){if("object"==typeof e){var r={};for(var n in e)e.hasOwnProperty(n)&&(r[n]="a"===n?e[n]:F(e[n]));e=r}return d(e,t)},d.equals=function(e,t){return!(!e||!t)&&d(e).toRgbString()==d(t).toRgbString()},d.random=function(){return d.fromRatio({r:f(),g:f(),b:f()})},d.mix=function(e,t,r){r=0===r?0:r||50;var n=d(e).toRgb(),a=d(t).toRgb(),i=r/100;return d({r:(a.r-n.r)*i+n.r,g:(a.g-n.g)*i+n.g,b:(a.b-n.b)*i+n.b,a:(a.a-n.a)*i+n.a})},d.readability=function(e,t){var r=d(e),n=d(t);return(a.max(r.getLuminance(),n.getLuminance())+.05)/(a.min(r.getLuminance(),n.getLuminance())+.05)},d.isReadable=function(e,t,r){var n,a,i,o,l,s=d.readability(e,t);switch(a=!1,(i=r,"AA"!==(o=((i=i||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==o&&(o="AA"),"small"!==(l=(i.size||"small").toLowerCase())&&"large"!==l&&(l="small"),n={level:o,size:l}).level+n.size){case"AAsmall":case"AAAlarge":a=s>=4.5;break;case"AAlarge":a=s>=3;break;case"AAAsmall":a=s>=7}return a},d.mostReadable=function(e,t,r){var n,a,i,o,l=null,s=0;a=(r=r||{}).includeFallbackColors,i=r.level,o=r.size;for(var c=0;cs&&(s=n,l=d(t[c]));return d.isReadable(e,l,{level:i,size:o})||!a?l:(r.includeFallbackColors=!1,d.mostReadable(e,["#fff","#000"],r))};var O=d.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},C=d.hexNames=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[e[r]]=r);return t}(O);function P(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function I(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var r=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=c(t,u(0,parseFloat(e))),r&&(e=parseInt(e*t,10)/100),a.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function R(e){return c(1,u(0,e))}function z(e){return parseInt(e,16)}function N(e){return 1==e.length?"0"+e:""+e}function F(e){return e<=1&&(e=100*e+"%"),e}function E(e){return a.round(255*parseFloat(e)).toString(16)}function H(e){return z(e)/255}var B,j,Y,V=(j="[\\s|\\(]+("+(B="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+B+")[,|\\s]+("+B+")\\s*\\)?",Y="[\\s|\\(]+("+B+")[,|\\s]+("+B+")[,|\\s]+("+B+")[,|\\s]+("+B+")\\s*\\)?",{CSS_UNIT:new RegExp(B),rgb:new RegExp("rgb"+j),rgba:new RegExp("rgba"+Y),hsl:new RegExp("hsl"+j),hsla:new RegExp("hsla"+Y),hsv:new RegExp("hsv"+j),hsva:new RegExp("hsva"+Y),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function U(e){return!!V.CSS_UNIT.exec(e)}e.exports?e.exports=d:void 0===(n=function(){return d}.call(t,r,t,e))||(e.exports=n)}(Math)},7020:function(e,t,r){var n=r(8700),a=r(896),i=n.instance();function o(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,a(o.prototype,{name:"Chinese",jdEpoch:1721425.5,hasYearZero:!1,minMonth:0,firstMonth:0,minDay:1,regionalOptions:{"":{name:"Chinese",epochs:["BEC","EC"],monthNumbers:function(e,t){if("string"==typeof e){var r=e.match(s);return r?r[0]:""}var n=this._validateYear(e),a=e.month(),i=""+this.toChineseMonth(n,a);return t&&i.length<2&&(i="0"+i),this.isIntercalaryMonth(n,a)&&(i+="i"),i},monthNames:function(e){if("string"==typeof e){var t=e.match(c);return t?t[0]:""}var r=this._validateYear(e),n=e.month(),a=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(a="闰"+a),a},monthNamesShort:function(e){if("string"==typeof e){var t=e.match(u);return t?t[0]:""}var r=this._validateYear(e),n=e.month(),a=["一","二","三","四","五","六","七","八","九","十","十一","十二"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(a="闰"+a),a},parseMonth:function(e,t){e=this._validateYear(e);var r,n=parseInt(t);if(isNaN(n))"闰"===t[0]&&(r=!0,t=t.substring(1)),"月"===t[t.length-1]&&(t=t.substring(0,t.length-1)),n=1+["一","二","三","四","五","六","七","八","九","十","十一","十二"].indexOf(t);else{var a=t[t.length-1];r="i"===a||"I"===a}return this.toMonthIndex(e,n,r)},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},_validateYear:function(e,t){if(e.year&&(e=e.year()),"number"!=typeof e||e<1888||e>2111)throw t.replace(/\{0\}/,this.local.name);return e},toMonthIndex:function(e,t,r){var a=this.intercalaryMonth(e);if(r&&t!==a||t<1||t>12)throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return a?!r&&t<=a?t-1:t:t-1},toChineseMonth:function(e,t){e.year&&(t=(e=e.year()).month());var r=this.intercalaryMonth(e);if(t<0||t>(r?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r?t>13},isIntercalaryMonth:function(e,t){e.year&&(t=(e=e.year()).month());var r=this.intercalaryMonth(e);return!!r&&r===t},leapYear:function(e){return 0!==this.intercalaryMonth(e)},weekOfYear:function(e,t,r){var a,o=this._validateYear(e,n.local.invalidyear),l=d[o-d[0]],s=l>>9&4095,c=l>>5&15,u=31&l;(a=i.newDate(s,c,u)).add(4-(a.dayOfWeek()||7),"d");var f=this.toJD(e,t,r)-a.toJD();return 1+Math.floor(f/7)},monthsInYear:function(e){return this.leapYear(e)?13:12},daysInMonth:function(e,t){e.year&&(t=e.month(),e=e.year()),e=this._validateYear(e);var r=f[e-f[0]];if(t>(r>>13?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r&1<<12-t?30:29},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(e,t,r){var a=this._validate(e,l,r,n.local.invalidDate);e=this._validateYear(a.year()),t=a.month(),r=a.day();var o=this.isIntercalaryMonth(e,t),l=this.toChineseMonth(e,t),s=function(e,t,r,n,a){var i,o,l;if("object"==typeof e)o=e,i=t||{};else{var s;if(!("number"==typeof e&&e>=1888&&e<=2111))throw new Error("Lunar year outside range 1888-2111");if(!("number"==typeof t&&t>=1&&t<=12))throw new Error("Lunar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=30))throw new Error("Lunar day outside range 1 - 30");"object"==typeof n?(s=!1,i=n):(s=!!n,i={}),o={year:e,month:t,day:r,isIntercalary:s}}l=o.day-1;var c,u=f[o.year-f[0]],h=u>>13;c=h&&(o.month>h||o.isIntercalary)?o.month:o.month-1;for(var p=0;p>9&4095,(v>>5&15)-1,(31&v)+l);return i.year=g.getFullYear(),i.month=1+g.getMonth(),i.day=g.getDate(),i}(e,l,r,o);return i.toJD(s.year,s.month,s.day)},fromJD:function(e){var t=i.fromJD(e),r=function(e,t,r,n){var a,i;if("object"==typeof e)a=e,i=t||{};else{if(!("number"==typeof e&&e>=1888&&e<=2111))throw new Error("Solar year outside range 1888-2111");if(!("number"==typeof t&&t>=1&&t<=12))throw new Error("Solar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=31))throw new Error("Solar day outside range 1 - 31");a={year:e,month:t,day:r},i={}}var o=d[a.year-d[0]],l=a.year<<9|a.month<<5|a.day;i.year=l>=o?a.year:a.year-1,o=d[i.year-d[0]];var s,c=new Date(o>>9&4095,(o>>5&15)-1,31&o),u=new Date(a.year,a.month-1,a.day);s=Math.round((u-c)/864e5);var h,p=f[i.year-f[0]];for(h=0;h<13;h++){var v=p&1<<12-h?30:29;if(s>13;return!g||h=2&&n<=6},extraInfo:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);return{century:o[Math.floor((a.year()-1)/100)+1]||""}},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);return e=a.year()+(a.year()<0?1:0),t=a.month(),(r=a.day())+(t>1?16:0)+(t>2?32*(t-2):0)+400*(e-1)+this.jdEpoch-1},fromJD:function(e){e=Math.floor(e+.5)-Math.floor(this.jdEpoch)-1;var t=Math.floor(e/400)+1;e-=400*(t-1),e+=e>15?16:0;var r=Math.floor(e/32)+1,n=e-32*(r-1)+1;return this.newDate(t<=0?t-1:t,r,n)}});var o={20:"Fruitbat",21:"Anchovy"};n.calendars.discworld=i},2787:function(e,t,r){var n=r(8700),a=r(896);function i(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}i.prototype=new n.baseCalendar,a(i.prototype,{name:"Ethiopian",jdEpoch:1724220.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Ethiopian",epochs:["BEE","EE"],monthNames:["Meskerem","Tikemet","Hidar","Tahesas","Tir","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehase","Pagume"],monthNamesShort:["Mes","Tik","Hid","Tah","Tir","Yek","Meg","Mia","Gen","Sen","Ham","Neh","Pag"],dayNames:["Ehud","Segno","Maksegno","Irob","Hamus","Arb","Kidame"],dayNamesShort:["Ehu","Seg","Mak","Iro","Ham","Arb","Kid"],dayNamesMin:["Eh","Se","Ma","Ir","Ha","Ar","Ki"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear);return(e=t.year()+(t.year()<0?1:0))%4==3||e%4==-1},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear),13},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);return(e=a.year())<0&&e++,a.day()+30*(a.month()-1)+365*(e-1)+Math.floor(e/4)+this.jdEpoch-1},fromJD:function(e){var t=Math.floor(e)+.5-this.jdEpoch,r=Math.floor((t-Math.floor((t+366)/1461))/365)+1;r<=0&&r--,t=Math.floor(e)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(t/30)+1,a=t-30*(n-1)+1;return this.newDate(r,n,a)}}),n.calendars.ethiopian=i},2084:function(e,t,r){var n=r(8700),a=r(896);function i(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}function o(e,t){return e-t*Math.floor(e/t)}i.prototype=new n.baseCalendar,a(i.prototype,{name:"Hebrew",jdEpoch:347995.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29,29],hasYearZero:!1,minMonth:1,firstMonth:7,minDay:1,regionalOptions:{"":{name:"Hebrew",epochs:["BAM","AM"],monthNames:["Nisan","Iyar","Sivan","Tammuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Shevat","Adar","Adar II"],monthNamesShort:["Nis","Iya","Siv","Tam","Av","Elu","Tis","Che","Kis","Tev","She","Ada","Ad2"],dayNames:["Yom Rishon","Yom Sheni","Yom Shlishi","Yom Revi'i","Yom Chamishi","Yom Shishi","Yom Shabbat"],dayNamesShort:["Ris","She","Shl","Rev","Cha","Shi","Sha"],dayNamesMin:["Ri","She","Shl","Re","Ch","Shi","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear);return this._leapYear(t.year())},_leapYear:function(e){return o(7*(e=e<0?e+1:e)+1,19)<7},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,n.local.invalidYear),this._leapYear(e.year?e.year():e)?13:12},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(e){return e=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear).year(),this.toJD(-1===e?1:e+1,7,1)-this.toJD(e,7,1)},daysInMonth:function(e,t){return e.year&&(t=e.month(),e=e.year()),this._validate(e,t,this.minDay,n.local.invalidMonth),12===t&&this.leapYear(e)||8===t&&5===o(this.daysInYear(e),10)?30:9===t&&3===o(this.daysInYear(e),10)?29:this.daysPerMonth[t-1]},weekDay:function(e,t,r){return 6!==this.dayOfWeek(e,t,r)},extraInfo:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);return{yearType:(this.leapYear(a)?"embolismic":"common")+" "+["deficient","regular","complete"][this.daysInYear(a)%10-3]}},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);e=a.year(),t=a.month(),r=a.day();var i=e<=0?e+1:e,o=this.jdEpoch+this._delay1(i)+this._delay2(i)+r+1;if(t<7){for(var l=7;l<=this.monthsInYear(e);l++)o+=this.daysInMonth(e,l);for(l=1;l=this.toJD(-1===t?1:t+1,7,1);)t++;for(var r=ethis.toJD(t,r,this.daysInMonth(t,r));)r++;var n=e-this.toJD(t,r,1)+1;return this.newDate(t,r,n)}}),n.calendars.hebrew=i},6368:function(e,t,r){var n=r(8700),a=r(896);function i(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}i.prototype=new n.baseCalendar,a(i.prototype,{name:"Islamic",jdEpoch:1948439.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Islamic",epochs:["BH","AH"],monthNames:["Muharram","Safar","Rabi' al-awwal","Rabi' al-thani","Jumada al-awwal","Jumada al-thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-ahad","Yawm al-ithnayn","Yawm ath-thulaathaa'","Yawm al-arbi'aa'","Yawm al-khamīs","Yawm al-jum'a","Yawm as-sabt"],dayNamesShort:["Aha","Ith","Thu","Arb","Kha","Jum","Sab"],dayNamesMin:["Ah","It","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(e){return(11*this._validate(e,this.minMonth,this.minDay,n.local.invalidYear).year()+14)%30<11},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(e){return this.leapYear(e)?355:354},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return 5!==this.dayOfWeek(e,t,r)},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);return e=a.year(),t=a.month(),e=e<=0?e+1:e,(r=a.day())+Math.ceil(29.5*(t-1))+354*(e-1)+Math.floor((3+11*e)/30)+this.jdEpoch-1},fromJD:function(e){e=Math.floor(e)+.5;var t=Math.floor((30*(e-this.jdEpoch)+10646)/10631);t=t<=0?t-1:t;var r=Math.min(12,Math.ceil((e-29-this.toJD(t,1,1))/29.5)+1),n=e-this.toJD(t,r,1)+1;return this.newDate(t,r,n)}}),n.calendars.islamic=i},4747:function(e,t,r){var n=r(8700),a=r(896);function i(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}i.prototype=new n.baseCalendar,a(i.prototype,{name:"Julian",jdEpoch:1721423.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Julian",epochs:["BC","AD"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear);return(e=t.year()<0?t.year()+1:t.year())%4==0},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(4-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);return e=a.year(),t=a.month(),r=a.day(),e<0&&e++,t<=2&&(e--,t+=12),Math.floor(365.25*(e+4716))+Math.floor(30.6001*(t+1))+r-1524.5},fromJD:function(e){var t=Math.floor(e+.5)+1524,r=Math.floor((t-122.1)/365.25),n=Math.floor(365.25*r),a=Math.floor((t-n)/30.6001),i=a-Math.floor(a<14?1:13),o=r-Math.floor(i>2?4716:4715),l=t-n-Math.floor(30.6001*a);return o<=0&&o--,this.newDate(o,i,l)}}),n.calendars.julian=i},5616:function(e,t,r){var n=r(8700),a=r(896);function i(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}function o(e,t){return e-t*Math.floor(e/t)}function l(e,t){return o(e-1,t)+1}i.prototype=new n.baseCalendar,a(i.prototype,{name:"Mayan",jdEpoch:584282.5,hasYearZero:!0,minMonth:0,firstMonth:0,minDay:0,regionalOptions:{"":{name:"Mayan",epochs:["",""],monthNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],monthNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],dayNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesMin:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],digits:null,dateFormat:"YYYY.m.d",firstDay:0,isRTL:!1,haabMonths:["Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen","Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb"],tzolkinMonths:["Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc","Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau"]}},leapYear:function(e){return this._validate(e,this.minMonth,this.minDay,n.local.invalidYear),!1},formatYear:function(e){e=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear).year();var t=Math.floor(e/400);return e%=400,e+=e<0?400:0,t+"."+Math.floor(e/20)+"."+e%20},forYear:function(e){if((e=e.split(".")).length<3)throw"Invalid Mayan year";for(var t=0,r=0;r19||r>0&&n<0)throw"Invalid Mayan year";t=20*t+n}return t},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,n.local.invalidYear),18},weekOfYear:function(e,t,r){return this._validate(e,t,r,n.local.invalidDate),0},daysInYear:function(e){return this._validate(e,this.minMonth,this.minDay,n.local.invalidYear),360},daysInMonth:function(e,t){return this._validate(e,t,this.minDay,n.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(e,t,r){return this._validate(e,t,r,n.local.invalidDate).day()},weekDay:function(e,t,r){return this._validate(e,t,r,n.local.invalidDate),!0},extraInfo:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate).toJD(),i=this._toHaab(a),o=this._toTzolkin(a);return{haabMonthName:this.local.haabMonths[i[0]-1],haabMonth:i[0],haabDay:i[1],tzolkinDayName:this.local.tzolkinMonths[o[0]-1],tzolkinDay:o[0],tzolkinTrecena:o[1]}},_toHaab:function(e){var t=o(8+(e-=this.jdEpoch)+340,365);return[Math.floor(t/20)+1,o(t,20)]},_toTzolkin:function(e){return[l(20+(e-=this.jdEpoch),20),l(e+4,13)]},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);return a.day()+20*a.month()+360*a.year()+this.jdEpoch},fromJD:function(e){e=Math.floor(e)+.5-this.jdEpoch;var t=Math.floor(e/360);e%=360,e+=e<0?360:0;var r=Math.floor(e/20),n=e%20;return this.newDate(t,r,n)}}),n.calendars.mayan=i},632:function(e,t,r){var n=r(8700),a=r(896);function i(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}i.prototype=new n.baseCalendar;var o=n.instance("gregorian");a(i.prototype,{name:"Nanakshahi",jdEpoch:2257673.5,daysPerMonth:[31,31,31,31,31,30,30,30,30,30,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Nanakshahi",epochs:["BN","AN"],monthNames:["Chet","Vaisakh","Jeth","Harh","Sawan","Bhadon","Assu","Katak","Maghar","Poh","Magh","Phagun"],monthNamesShort:["Che","Vai","Jet","Har","Saw","Bha","Ass","Kat","Mgr","Poh","Mgh","Pha"],dayNames:["Somvaar","Mangalvar","Budhvaar","Veervaar","Shukarvaar","Sanicharvaar","Etvaar"],dayNamesShort:["Som","Mangal","Budh","Veer","Shukar","Sanichar","Et"],dayNamesMin:["So","Ma","Bu","Ve","Sh","Sa","Et"],digits:null,dateFormat:"dd-mm-yyyy",firstDay:0,isRTL:!1}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear);return o.leapYear(t.year()+(t.year()<1?1:0)+1469)},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(1-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidMonth);(e=a.year())<0&&e++;for(var i=a.day(),l=1;l=this.toJD(t+1,1,1);)t++;for(var r=e-Math.floor(this.toJD(t,1,1)+.5)+1,n=1;r>this.daysInMonth(t,n);)r-=this.daysInMonth(t,n),n++;return this.newDate(t,n,r)}}),n.calendars.nanakshahi=i},3040:function(e,t,r){var n=r(8700),a=r(896);function i(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}i.prototype=new n.baseCalendar,a(i.prototype,{name:"Nepali",jdEpoch:1700709.5,daysPerMonth:[31,31,32,32,31,30,30,29,30,29,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,daysPerYear:365,regionalOptions:{"":{name:"Nepali",epochs:["BBS","ABS"],monthNames:["Baisakh","Jestha","Ashadh","Shrawan","Bhadra","Ashwin","Kartik","Mangsir","Paush","Mangh","Falgun","Chaitra"],monthNamesShort:["Bai","Je","As","Shra","Bha","Ash","Kar","Mang","Pau","Ma","Fal","Chai"],dayNames:["Aaitabaar","Sombaar","Manglbaar","Budhabaar","Bihibaar","Shukrabaar","Shanibaar"],dayNamesShort:["Aaita","Som","Mangl","Budha","Bihi","Shukra","Shani"],dayNamesMin:["Aai","So","Man","Bu","Bi","Shu","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:1,isRTL:!1}},leapYear:function(e){return this.daysInYear(e)!==this.daysPerYear},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(e){if(e=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear).year(),void 0===this.NEPALI_CALENDAR_DATA[e])return this.daysPerYear;for(var t=0,r=this.minMonth;r<=12;r++)t+=this.NEPALI_CALENDAR_DATA[e][r];return t},daysInMonth:function(e,t){return e.year&&(t=e.month(),e=e.year()),this._validate(e,t,this.minDay,n.local.invalidMonth),void 0===this.NEPALI_CALENDAR_DATA[e]?this.daysPerMonth[t-1]:this.NEPALI_CALENDAR_DATA[e][t]},weekDay:function(e,t,r){return 6!==this.dayOfWeek(e,t,r)},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);e=a.year(),t=a.month(),r=a.day();var i=n.instance(),o=0,l=t,s=e;this._createMissingCalendarData(e);var c=e-(l>9||9===l&&r>=this.NEPALI_CALENDAR_DATA[s][0]?56:57);for(9!==t&&(o=r,l--);9!==l;)l<=0&&(l=12,s--),o+=this.NEPALI_CALENDAR_DATA[s][l],l--;return 9===t?(o+=r-this.NEPALI_CALENDAR_DATA[s][0])<0&&(o+=i.daysInYear(c)):o+=this.NEPALI_CALENDAR_DATA[s][9]-this.NEPALI_CALENDAR_DATA[s][0],i.newDate(c,1,1).add(o,"d").toJD()},fromJD:function(e){var t=n.instance().fromJD(e),r=t.year(),a=t.dayOfYear(),i=r+56;this._createMissingCalendarData(i);for(var o=9,l=this.NEPALI_CALENDAR_DATA[i][0],s=this.NEPALI_CALENDAR_DATA[i][o]-l+1;a>s;)++o>12&&(o=1,i++),s+=this.NEPALI_CALENDAR_DATA[i][o];var c=this.NEPALI_CALENDAR_DATA[i][o]-(s-a);return this.newDate(i,o,c)},_createMissingCalendarData:function(e){var t=this.daysPerMonth.slice(0);t.unshift(17);for(var r=e-1;r0?474:473))%2820+474+38)%2816<682},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-(n.dayOfWeek()+1)%7,"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return 5!==this.dayOfWeek(e,t,r)},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);e=a.year(),t=a.month(),r=a.day();var i=e-(e>=0?474:473),l=474+o(i,2820);return r+(t<=7?31*(t-1):30*(t-1)+6)+Math.floor((682*l-110)/2816)+365*(l-1)+1029983*Math.floor(i/2820)+this.jdEpoch-1},fromJD:function(e){var t=(e=Math.floor(e)+.5)-this.toJD(475,1,1),r=Math.floor(t/1029983),n=o(t,1029983),a=2820;if(1029982!==n){var i=Math.floor(n/366),l=o(n,366);a=Math.floor((2134*i+2816*l+2815)/1028522)+i+1}var s=a+2820*r+474;s=s<=0?s-1:s;var c=e-this.toJD(s,1,1)+1,u=c<=186?Math.ceil(c/31):Math.ceil((c-6)/30),f=e-this.toJD(s,u,1)+1;return this.newDate(s,u,f)}}),n.calendars.persian=i,n.calendars.jalali=i},9075:function(e,t,r){var n=r(8700),a=r(896),i=n.instance();function o(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,a(o.prototype,{name:"Taiwan",jdEpoch:2419402.5,yearsOffset:1911,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Taiwan",epochs:["BROC","ROC"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear);return e=this._t2gYear(t.year()),i.leapYear(e)},weekOfYear:function(e,t,r){var a=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear);return e=this._t2gYear(a.year()),i.weekOfYear(e,a.month(),a.day())},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);return e=this._t2gYear(a.year()),i.toJD(e,a.month(),a.day())},fromJD:function(e){var t=i.fromJD(e),r=this._g2tYear(t.year());return this.newDate(r,t.month(),t.day())},_t2gYear:function(e){return e+this.yearsOffset+(e>=-this.yearsOffset&&e<=-1?1:0)},_g2tYear:function(e){return e-this.yearsOffset-(e>=1&&e<=this.yearsOffset?1:0)}}),n.calendars.taiwan=o},4592:function(e,t,r){var n=r(8700),a=r(896),i=n.instance();function o(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,a(o.prototype,{name:"Thai",jdEpoch:1523098.5,yearsOffset:543,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Thai",epochs:["BBE","BE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear);return e=this._t2gYear(t.year()),i.leapYear(e)},weekOfYear:function(e,t,r){var a=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear);return e=this._t2gYear(a.year()),i.weekOfYear(e,a.month(),a.day())},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate);return e=this._t2gYear(a.year()),i.toJD(e,a.month(),a.day())},fromJD:function(e){var t=i.fromJD(e),r=this._g2tYear(t.year());return this.newDate(r,t.month(),t.day())},_t2gYear:function(e){return e-this.yearsOffset-(e>=1&&e<=this.yearsOffset?1:0)},_g2tYear:function(e){return e+this.yearsOffset+(e>=-this.yearsOffset&&e<=-1?1:0)}}),n.calendars.thai=o},5348:function(e,t,r){var n=r(8700),a=r(896);function i(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}i.prototype=new n.baseCalendar,a(i.prototype,{name:"UmmAlQura",hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Umm al-Qura",epochs:["BH","AH"],monthNames:["Al-Muharram","Safar","Rabi' al-awwal","Rabi' Al-Thani","Jumada Al-Awwal","Jumada Al-Thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-Ahad","Yawm al-Ithnain","Yawm al-Thalāthā’","Yawm al-Arba‘ā’","Yawm al-Khamīs","Yawm al-Jum‘a","Yawm al-Sabt"],dayNamesMin:["Ah","Ith","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!0}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,n.local.invalidYear);return 355===this.daysInYear(t.year())},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(e){for(var t=0,r=1;r<=12;r++)t+=this.daysInMonth(e,r);return t},daysInMonth:function(e,t){for(var r=this._validate(e,t,this.minDay,n.local.invalidMonth).toJD()-24e5+.5,a=0,i=0;ir)return o[a]-o[a-1];a++}return 30},weekDay:function(e,t,r){return 5!==this.dayOfWeek(e,t,r)},toJD:function(e,t,r){var a=this._validate(e,t,r,n.local.invalidDate),i=12*(a.year()-1)+a.month()-15292;return a.day()+o[i-1]-1+24e5-.5},fromJD:function(e){for(var t=e-24e5+.5,r=0,n=0;nt);n++)r++;var a=r+15292,i=Math.floor((a-1)/12),l=i+1,s=a-12*i,c=t-o[r-1]+1;return this.newDate(l,s,c)},isValid:function(e,t,r){var a=n.baseCalendar.prototype.isValid.apply(this,arguments);return a&&(a=(e=null!=e.year?e.year:e)>=1276&&e<=1500),a},_validate:function(e,t,r,a){var i=n.baseCalendar.prototype._validate.apply(this,arguments);if(i.year<1276||i.year>1500)throw a.replace(/\{0\}/,this.local.name);return i}}),n.calendars.ummalqura=i;var o=[20,50,79,109,138,168,197,227,256,286,315,345,374,404,433,463,492,522,551,581,611,641,670,700,729,759,788,818,847,877,906,936,965,995,1024,1054,1083,1113,1142,1172,1201,1231,1260,1290,1320,1350,1379,1409,1438,1468,1497,1527,1556,1586,1615,1645,1674,1704,1733,1763,1792,1822,1851,1881,1910,1940,1969,1999,2028,2058,2087,2117,2146,2176,2205,2235,2264,2294,2323,2353,2383,2413,2442,2472,2501,2531,2560,2590,2619,2649,2678,2708,2737,2767,2796,2826,2855,2885,2914,2944,2973,3003,3032,3062,3091,3121,3150,3180,3209,3239,3268,3298,3327,3357,3386,3416,3446,3476,3505,3535,3564,3594,3623,3653,3682,3712,3741,3771,3800,3830,3859,3889,3918,3948,3977,4007,4036,4066,4095,4125,4155,4185,4214,4244,4273,4303,4332,4362,4391,4421,4450,4480,4509,4539,4568,4598,4627,4657,4686,4716,4745,4775,4804,4834,4863,4893,4922,4952,4981,5011,5040,5070,5099,5129,5158,5188,5218,5248,5277,5307,5336,5366,5395,5425,5454,5484,5513,5543,5572,5602,5631,5661,5690,5720,5749,5779,5808,5838,5867,5897,5926,5956,5985,6015,6044,6074,6103,6133,6162,6192,6221,6251,6281,6311,6340,6370,6399,6429,6458,6488,6517,6547,6576,6606,6635,6665,6694,6724,6753,6783,6812,6842,6871,6901,6930,6960,6989,7019,7048,7078,7107,7137,7166,7196,7225,7255,7284,7314,7344,7374,7403,7433,7462,7492,7521,7551,7580,7610,7639,7669,7698,7728,7757,7787,7816,7846,7875,7905,7934,7964,7993,8023,8053,8083,8112,8142,8171,8201,8230,8260,8289,8319,8348,8378,8407,8437,8466,8496,8525,8555,8584,8614,8643,8673,8702,8732,8761,8791,8821,8850,8880,8909,8938,8968,8997,9027,9056,9086,9115,9145,9175,9205,9234,9264,9293,9322,9352,9381,9410,9440,9470,9499,9529,9559,9589,9618,9648,9677,9706,9736,9765,9794,9824,9853,9883,9913,9943,9972,10002,10032,10061,10090,10120,10149,10178,10208,10237,10267,10297,10326,10356,10386,10415,10445,10474,10504,10533,10562,10592,10621,10651,10680,10710,10740,10770,10799,10829,10858,10888,10917,10947,10976,11005,11035,11064,11094,11124,11153,11183,11213,11242,11272,11301,11331,11360,11389,11419,11448,11478,11507,11537,11567,11596,11626,11655,11685,11715,11744,11774,11803,11832,11862,11891,11921,11950,11980,12010,12039,12069,12099,12128,12158,12187,12216,12246,12275,12304,12334,12364,12393,12423,12453,12483,12512,12542,12571,12600,12630,12659,12688,12718,12747,12777,12807,12837,12866,12896,12926,12955,12984,13014,13043,13072,13102,13131,13161,13191,13220,13250,13280,13310,13339,13368,13398,13427,13456,13486,13515,13545,13574,13604,13634,13664,13693,13723,13752,13782,13811,13840,13870,13899,13929,13958,13988,14018,14047,14077,14107,14136,14166,14195,14224,14254,14283,14313,14342,14372,14401,14431,14461,14490,14520,14550,14579,14609,14638,14667,14697,14726,14756,14785,14815,14844,14874,14904,14933,14963,14993,15021,15051,15081,15110,15140,15169,15199,15228,15258,15287,15317,15347,15377,15406,15436,15465,15494,15524,15553,15582,15612,15641,15671,15701,15731,15760,15790,15820,15849,15878,15908,15937,15966,15996,16025,16055,16085,16114,16144,16174,16204,16233,16262,16292,16321,16350,16380,16409,16439,16468,16498,16528,16558,16587,16617,16646,16676,16705,16734,16764,16793,16823,16852,16882,16912,16941,16971,17001,17030,17060,17089,17118,17148,17177,17207,17236,17266,17295,17325,17355,17384,17414,17444,17473,17502,17532,17561,17591,17620,17650,17679,17709,17738,17768,17798,17827,17857,17886,17916,17945,17975,18004,18034,18063,18093,18122,18152,18181,18211,18241,18270,18300,18330,18359,18388,18418,18447,18476,18506,18535,18565,18595,18625,18654,18684,18714,18743,18772,18802,18831,18860,18890,18919,18949,18979,19008,19038,19068,19098,19127,19156,19186,19215,19244,19274,19303,19333,19362,19392,19422,19452,19481,19511,19540,19570,19599,19628,19658,19687,19717,19746,19776,19806,19836,19865,19895,19924,19954,19983,20012,20042,20071,20101,20130,20160,20190,20219,20249,20279,20308,20338,20367,20396,20426,20455,20485,20514,20544,20573,20603,20633,20662,20692,20721,20751,20780,20810,20839,20869,20898,20928,20957,20987,21016,21046,21076,21105,21135,21164,21194,21223,21253,21282,21312,21341,21371,21400,21430,21459,21489,21519,21548,21578,21607,21637,21666,21696,21725,21754,21784,21813,21843,21873,21902,21932,21962,21991,22021,22050,22080,22109,22138,22168,22197,22227,22256,22286,22316,22346,22375,22405,22434,22464,22493,22522,22552,22581,22611,22640,22670,22700,22730,22759,22789,22818,22848,22877,22906,22936,22965,22994,23024,23054,23083,23113,23143,23173,23202,23232,23261,23290,23320,23349,23379,23408,23438,23467,23497,23527,23556,23586,23616,23645,23674,23704,23733,23763,23792,23822,23851,23881,23910,23940,23970,23999,24029,24058,24088,24117,24147,24176,24206,24235,24265,24294,24324,24353,24383,24413,24442,24472,24501,24531,24560,24590,24619,24648,24678,24707,24737,24767,24796,24826,24856,24885,24915,24944,24974,25003,25032,25062,25091,25121,25150,25180,25210,25240,25269,25299,25328,25358,25387,25416,25446,25475,25505,25534,25564,25594,25624,25653,25683,25712,25742,25771,25800,25830,25859,25888,25918,25948,25977,26007,26037,26067,26096,26126,26155,26184,26214,26243,26272,26302,26332,26361,26391,26421,26451,26480,26510,26539,26568,26598,26627,26656,26686,26715,26745,26775,26805,26834,26864,26893,26923,26952,26982,27011,27041,27070,27099,27129,27159,27188,27218,27248,27277,27307,27336,27366,27395,27425,27454,27484,27513,27542,27572,27602,27631,27661,27691,27720,27750,27779,27809,27838,27868,27897,27926,27956,27985,28015,28045,28074,28104,28134,28163,28193,28222,28252,28281,28310,28340,28369,28399,28428,28458,28488,28517,28547,28577,28607,28636,28665,28695,28724,28754,28783,28813,28843,28872,28901,28931,28960,28990,29019,29049,29078,29108,29137,29167,29196,29226,29255,29285,29315,29345,29375,29404,29434,29463,29492,29522,29551,29580,29610,29640,29669,29699,29729,29759,29788,29818,29847,29876,29906,29935,29964,29994,30023,30053,30082,30112,30141,30171,30200,30230,30259,30289,30318,30348,30378,30408,30437,30467,30496,30526,30555,30585,30614,30644,30673,30703,30732,30762,30791,30821,30850,30880,30909,30939,30968,30998,31027,31057,31086,31116,31145,31175,31204,31234,31263,31293,31322,31352,31381,31411,31441,31471,31500,31530,31559,31589,31618,31648,31676,31706,31736,31766,31795,31825,31854,31884,31913,31943,31972,32002,32031,32061,32090,32120,32150,32180,32209,32239,32268,32298,32327,32357,32386,32416,32445,32475,32504,32534,32563,32593,32622,32652,32681,32711,32740,32770,32799,32829,32858,32888,32917,32947,32976,33006,33035,33065,33094,33124,33153,33183,33213,33243,33272,33302,33331,33361,33390,33420,33450,33479,33509,33539,33568,33598,33627,33657,33686,33716,33745,33775,33804,33834,33863,33893,33922,33952,33981,34011,34040,34069,34099,34128,34158,34187,34217,34247,34277,34306,34336,34365,34395,34424,34454,34483,34512,34542,34571,34601,34631,34660,34690,34719,34749,34778,34808,34837,34867,34896,34926,34955,34985,35015,35044,35074,35103,35133,35162,35192,35222,35251,35280,35310,35340,35370,35399,35429,35458,35488,35517,35547,35576,35605,35635,35665,35694,35723,35753,35782,35811,35841,35871,35901,35930,35960,35989,36019,36048,36078,36107,36136,36166,36195,36225,36254,36284,36314,36343,36373,36403,36433,36462,36492,36521,36551,36580,36610,36639,36669,36698,36728,36757,36786,36816,36845,36875,36904,36934,36963,36993,37022,37052,37081,37111,37141,37170,37200,37229,37259,37288,37318,37347,37377,37406,37436,37465,37495,37524,37554,37584,37613,37643,37672,37701,37731,37760,37790,37819,37849,37878,37908,37938,37967,37997,38027,38056,38085,38115,38144,38174,38203,38233,38262,38292,38322,38351,38381,38410,38440,38469,38499,38528,38558,38587,38617,38646,38676,38705,38735,38764,38794,38823,38853,38882,38912,38941,38971,39001,39030,39059,39089,39118,39148,39178,39208,39237,39267,39297,39326,39355,39385,39414,39444,39473,39503,39532,39562,39592,39621,39650,39680,39709,39739,39768,39798,39827,39857,39886,39916,39946,39975,40005,40035,40064,40094,40123,40153,40182,40212,40241,40271,40300,40330,40359,40389,40418,40448,40477,40507,40536,40566,40595,40625,40655,40685,40714,40744,40773,40803,40832,40862,40892,40921,40951,40980,41009,41039,41068,41098,41127,41157,41186,41216,41245,41275,41304,41334,41364,41393,41422,41452,41481,41511,41540,41570,41599,41629,41658,41688,41718,41748,41777,41807,41836,41865,41894,41924,41953,41983,42012,42042,42072,42102,42131,42161,42190,42220,42249,42279,42308,42337,42367,42397,42426,42456,42485,42515,42545,42574,42604,42633,42662,42692,42721,42751,42780,42810,42839,42869,42899,42929,42958,42988,43017,43046,43076,43105,43135,43164,43194,43223,43253,43283,43312,43342,43371,43401,43430,43460,43489,43519,43548,43578,43607,43637,43666,43696,43726,43755,43785,43814,43844,43873,43903,43932,43962,43991,44021,44050,44080,44109,44139,44169,44198,44228,44258,44287,44317,44346,44375,44405,44434,44464,44493,44523,44553,44582,44612,44641,44671,44700,44730,44759,44788,44818,44847,44877,44906,44936,44966,44996,45025,45055,45084,45114,45143,45172,45202,45231,45261,45290,45320,45350,45380,45409,45439,45468,45498,45527,45556,45586,45615,45644,45674,45704,45733,45763,45793,45823,45852,45882,45911,45940,45970,45999,46028,46058,46088,46117,46147,46177,46206,46236,46265,46295,46324,46354,46383,46413,46442,46472,46501,46531,46560,46590,46620,46649,46679,46708,46738,46767,46797,46826,46856,46885,46915,46944,46974,47003,47033,47063,47092,47122,47151,47181,47210,47240,47269,47298,47328,47357,47387,47417,47446,47476,47506,47535,47565,47594,47624,47653,47682,47712,47741,47771,47800,47830,47860,47890,47919,47949,47978,48008,48037,48066,48096,48125,48155,48184,48214,48244,48273,48303,48333,48362,48392,48421,48450,48480,48509,48538,48568,48598,48627,48657,48687,48717,48746,48776,48805,48834,48864,48893,48922,48952,48982,49011,49041,49071,49100,49130,49160,49189,49218,49248,49277,49306,49336,49365,49395,49425,49455,49484,49514,49543,49573,49602,49632,49661,49690,49720,49749,49779,49809,49838,49868,49898,49927,49957,49986,50016,50045,50075,50104,50133,50163,50192,50222,50252,50281,50311,50340,50370,50400,50429,50459,50488,50518,50547,50576,50606,50635,50665,50694,50724,50754,50784,50813,50843,50872,50902,50931,50960,50990,51019,51049,51078,51108,51138,51167,51197,51227,51256,51286,51315,51345,51374,51403,51433,51462,51492,51522,51552,51582,51611,51641,51670,51699,51729,51758,51787,51816,51846,51876,51906,51936,51965,51995,52025,52054,52083,52113,52142,52171,52200,52230,52260,52290,52319,52349,52379,52408,52438,52467,52497,52526,52555,52585,52614,52644,52673,52703,52733,52762,52792,52822,52851,52881,52910,52939,52969,52998,53028,53057,53087,53116,53146,53176,53205,53235,53264,53294,53324,53353,53383,53412,53441,53471,53500,53530,53559,53589,53619,53648,53678,53708,53737,53767,53796,53825,53855,53884,53913,53943,53973,54003,54032,54062,54092,54121,54151,54180,54209,54239,54268,54297,54327,54357,54387,54416,54446,54476,54505,54535,54564,54593,54623,54652,54681,54711,54741,54770,54800,54830,54859,54889,54919,54948,54977,55007,55036,55066,55095,55125,55154,55184,55213,55243,55273,55302,55332,55361,55391,55420,55450,55479,55508,55538,55567,55597,55627,55657,55686,55716,55745,55775,55804,55834,55863,55892,55922,55951,55981,56011,56040,56070,56100,56129,56159,56188,56218,56247,56276,56306,56335,56365,56394,56424,56454,56483,56513,56543,56572,56601,56631,56660,56690,56719,56749,56778,56808,56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,65401,65431,65460,65490,65520,65549,65579,65608,65638,65667,65697,65726,65755,65785,65815,65844,65874,65903,65933,65963,65992,66022,66051,66081,66110,66140,66169,66199,66228,66258,66287,66317,66346,66376,66405,66435,66465,66494,66524,66553,66583,66612,66641,66671,66700,66730,66760,66789,66819,66849,66878,66908,66937,66967,66996,67025,67055,67084,67114,67143,67173,67203,67233,67262,67292,67321,67351,67380,67409,67439,67468,67497,67527,67557,67587,67617,67646,67676,67705,67735,67764,67793,67823,67852,67882,67911,67941,67971,68e3,68030,68060,68089,68119,68148,68177,68207,68236,68266,68295,68325,68354,68384,68414,68443,68473,68502,68532,68561,68591,68620,68650,68679,68708,68738,68768,68797,68827,68857,68886,68916,68946,68975,69004,69034,69063,69092,69122,69152,69181,69211,69240,69270,69300,69330,69359,69388,69418,69447,69476,69506,69535,69565,69595,69624,69654,69684,69713,69743,69772,69802,69831,69861,69890,69919,69949,69978,70008,70038,70067,70097,70126,70156,70186,70215,70245,70274,70303,70333,70362,70392,70421,70451,70481,70510,70540,70570,70599,70629,70658,70687,70717,70746,70776,70805,70835,70864,70894,70924,70954,70983,71013,71042,71071,71101,71130,71159,71189,71218,71248,71278,71308,71337,71367,71397,71426,71455,71485,71514,71543,71573,71602,71632,71662,71691,71721,71751,71781,71810,71839,71869,71898,71927,71957,71986,72016,72046,72075,72105,72135,72164,72194,72223,72253,72282,72311,72341,72370,72400,72429,72459,72489,72518,72548,72577,72607,72637,72666,72695,72725,72754,72784,72813,72843,72872,72902,72931,72961,72991,73020,73050,73080,73109,73139,73168,73197,73227,73256,73286,73315,73345,73375,73404,73434,73464,73493,73523,73552,73581,73611,73640,73669,73699,73729,73758,73788,73818,73848,73877,73907,73936,73965,73995,74024,74053,74083,74113,74142,74172,74202,74231,74261,74291,74320,74349,74379,74408,74437,74467,74497,74526,74556,74586,74615,74645,74675,74704,74733,74763,74792,74822,74851,74881,74910,74940,74969,74999,75029,75058,75088,75117,75147,75176,75206,75235,75264,75294,75323,75353,75383,75412,75442,75472,75501,75531,75560,75590,75619,75648,75678,75707,75737,75766,75796,75826,75856,75885,75915,75944,75974,76003,76032,76062,76091,76121,76150,76180,76210,76239,76269,76299,76328,76358,76387,76416,76446,76475,76505,76534,76564,76593,76623,76653,76682,76712,76741,76771,76801,76830,76859,76889,76918,76948,76977,77007,77036,77066,77096,77125,77155,77185,77214,77243,77273,77302,77332,77361,77390,77420,77450,77479,77509,77539,77569,77598,77627,77657,77686,77715,77745,77774,77804,77833,77863,77893,77923,77952,77982,78011,78041,78070,78099,78129,78158,78188,78217,78247,78277,78307,78336,78366,78395,78425,78454,78483,78513,78542,78572,78601,78631,78661,78690,78720,78750,78779,78808,78838,78867,78897,78926,78956,78985,79015,79044,79074,79104,79133,79163,79192,79222,79251,79281,79310,79340,79369,79399,79428,79458,79487,79517,79546,79576,79606,79635,79665,79695,79724,79753,79783,79812,79841,79871,79900,79930,79960,79990]},8700:function(e,t,r){var n=r(896);function a(){this.regionalOptions=[],this.regionalOptions[""]={invalidCalendar:"Calendar {0} not found",invalidDate:"Invalid {0} date",invalidMonth:"Invalid {0} month",invalidYear:"Invalid {0} year",differentCalendars:"Cannot mix {0} and {1} dates"},this.local=this.regionalOptions[""],this.calendars={},this._localCals={}}function i(e,t,r,n){if(this._calendar=e,this._year=t,this._month=r,this._day=n,0===this._calendar._validateLevel&&!this._calendar.isValid(this._year,this._month,this._day))throw(c.local.invalidDate||c.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name)}function o(e,t){return"000000".substring(0,t-(e=""+e).length)+e}function l(){this.shortYearCutoff="+10"}function s(e){this.local=this.regionalOptions[e]||this.regionalOptions[""]}n(a.prototype,{instance:function(e,t){e=(e||"gregorian").toLowerCase(),t=t||"";var r=this._localCals[e+"-"+t];if(!r&&this.calendars[e]&&(r=new this.calendars[e](t),this._localCals[e+"-"+t]=r),!r)throw(this.local.invalidCalendar||this.regionalOptions[""].invalidCalendar).replace(/\{0\}/,e);return r},newDate:function(e,t,r,n,a){return(n=(null!=e&&e.year?e.calendar():"string"==typeof n?this.instance(n,a):n)||this.instance()).newDate(e,t,r)},substituteDigits:function(e){return function(t){return(t+"").replace(/[0-9]/g,(function(t){return e[t]}))}},substituteChineseDigits:function(e,t){return function(r){for(var n="",a=0;r>0;){var i=r%10;n=(0===i?"":e[i]+t[a])+n,a++,r=Math.floor(r/10)}return 0===n.indexOf(e[1]+t[1])&&(n=n.substr(1)),n||e[0]}}}),n(i.prototype,{newDate:function(e,t,r){return this._calendar.newDate(null==e?this:e,t,r)},year:function(e){return 0===arguments.length?this._year:this.set(e,"y")},month:function(e){return 0===arguments.length?this._month:this.set(e,"m")},day:function(e){return 0===arguments.length?this._day:this.set(e,"d")},date:function(e,t,r){if(!this._calendar.isValid(e,t,r))throw(c.local.invalidDate||c.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name);return this._year=e,this._month=t,this._day=r,this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(e,t){return this._calendar.add(this,e,t)},set:function(e,t){return this._calendar.set(this,e,t)},compareTo:function(e){if(this._calendar.name!==e._calendar.name)throw(c.local.differentCalendars||c.regionalOptions[""].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,e._calendar.local.name);var t=this._year!==e._year?this._year-e._year:this._month!==e._month?this.monthOfYear()-e.monthOfYear():this._day-e._day;return 0===t?0:t<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(e){return this._calendar.fromJD(e)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(e){return this._calendar.fromJSDate(e)},toString:function(){return(this.year()<0?"-":"")+o(Math.abs(this.year()),4)+"-"+o(this.month(),2)+"-"+o(this.day(),2)}}),n(l.prototype,{_validateLevel:0,newDate:function(e,t,r){return null==e?this.today():(e.year&&(this._validate(e,t,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),r=e.day(),t=e.month(),e=e.year()),new i(this,e,t,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(e){return this._validate(e,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear);return(t.year()<0?"-":"")+o(Math.abs(t.year()),4)},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear),12},monthOfYear:function(e,t){var r=this._validate(e,t,this.minDay,c.local.invalidMonth||c.regionalOptions[""].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(e,t){var r=(t+this.firstMonth-2*this.minMonth)%this.monthsInYear(e)+this.minMonth;return this._validate(e,r,this.minDay,c.local.invalidMonth||c.regionalOptions[""].invalidMonth),r},daysInYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear);return this.leapYear(t)?366:365},dayOfYear:function(e,t,r){var n=this._validate(e,t,r,c.local.invalidDate||c.regionalOptions[""].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(e,t,r){var n=this._validate(e,t,r,c.local.invalidDate||c.regionalOptions[""].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(e,t,r){return this._validate(e,t,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),{}},add:function(e,t,r){return this._validate(e,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[""].invalidDate),this._correctAdd(e,this._add(e,t,r),t,r)},_add:function(e,t,r){if(this._validateLevel++,"d"===r||"w"===r){var n=e.toJD()+t*("w"===r?this.daysInWeek():1),a=e.calendar().fromJD(n);return this._validateLevel--,[a.year(),a.month(),a.day()]}try{var i=e.year()+("y"===r?t:0),o=e.monthOfYear()+("m"===r?t:0);a=e.day(),"y"===r?(e.month()!==this.fromMonthOfYear(i,o)&&(o=this.newDate(i,e.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(i)),a=Math.min(a,this.daysInMonth(i,this.fromMonthOfYear(i,o)))):"m"===r&&(function(e){for(;ot-1+e.minMonth;)i++,o-=t,t=e.monthsInYear(i)}(this),a=Math.min(a,this.daysInMonth(i,this.fromMonthOfYear(i,o))));var l=[i,this.fromMonthOfYear(i,o),a];return this._validateLevel--,l}catch(e){throw this._validateLevel--,e}},_correctAdd:function(e,t,r,n){if(!(this.hasYearZero||"y"!==n&&"m"!==n||0!==t[0]&&e.year()>0==t[0]>0)){var a={y:[1,1,"y"],m:[1,this.monthsInYear(-1),"m"],w:[this.daysInWeek(),this.daysInYear(-1),"d"],d:[1,this.daysInYear(-1),"d"]}[n],i=r<0?-1:1;t=this._add(e,r*a[0]+i*a[1],a[2])}return e.date(t[0],t[1],t[2])},set:function(e,t,r){this._validate(e,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[""].invalidDate);var n="y"===r?t:e.year(),a="m"===r?t:e.month(),i="d"===r?t:e.day();return"y"!==r&&"m"!==r||(i=Math.min(i,this.daysInMonth(n,a))),e.date(n,a,i)},isValid:function(e,t,r){this._validateLevel++;var n=this.hasYearZero||0!==e;if(n){var a=this.newDate(e,t,this.minDay);n=t>=this.minMonth&&t-this.minMonth=this.minDay&&r-this.minDay13.5?13:1),c=a-(s>2.5?4716:4715);return c<=0&&c--,this.newDate(c,s,l)},toJSDate:function(e,t,r){var n=this._validate(e,t,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),a=new Date(n.year(),n.month()-1,n.day());return a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0),a.setHours(a.getHours()>12?a.getHours()+2:0),a},fromJSDate:function(e){return this.newDate(e.getFullYear(),e.getMonth()+1,e.getDate())}});var c=e.exports=new a;c.cdate=i,c.baseCalendar=l,c.calendars.gregorian=s},5168:function(e,t,r){var n=r(896),a=r(8700);n(a.regionalOptions[""],{invalidArguments:"Invalid arguments",invalidFormat:"Cannot format a date from another calendar",missingNumberAt:"Missing number at position {0}",unknownNameAt:"Unknown name at position {0}",unexpectedLiteralAt:"Unexpected literal at position {0}",unexpectedText:"Additional text found at end"}),a.local=a.regionalOptions[""],n(a.cdate.prototype,{formatDate:function(e,t){return"string"!=typeof e&&(t=e,e=""),this._calendar.formatDate(e||"",this,t)}}),n(a.baseCalendar.prototype,{UNIX_EPOCH:a.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:a.instance().jdEpoch,TICKS_PER_DAY:864e9,ATOM:"yyyy-mm-dd",COOKIE:"D, dd M yyyy",FULL:"DD, MM d, yyyy",ISO_8601:"yyyy-mm-dd",JULIAN:"J",RFC_822:"D, d M yy",RFC_850:"DD, dd-M-yy",RFC_1036:"D, d M yy",RFC_1123:"D, d M yyyy",RFC_2822:"D, d M yyyy",RSS:"D, d M yy",TICKS:"!",TIMESTAMP:"@",W3C:"yyyy-mm-dd",formatDate:function(e,t,r){if("string"!=typeof e&&(r=t,t=e,e=""),!t)return"";if(t.calendar()!==this)throw a.local.invalidFormat||a.regionalOptions[""].invalidFormat;e=e||this.local.dateFormat;for(var n,i,o,l=(r=r||{}).dayNamesShort||this.local.dayNamesShort,s=r.dayNames||this.local.dayNames,c=r.monthNumbers||this.local.monthNumbers,u=r.monthNamesShort||this.local.monthNamesShort,f=r.monthNames||this.local.monthNames,d=(r.calculateWeek||this.local.calculateWeek,function(t,r){for(var n=1;_+n1}),h=function(e,t,r,n){var a=""+t;if(d(e,n))for(;a.length1},x=function(e,r){var n=m(e,r),i=[2,3,n?4:2,n?4:2,10,11,20]["oyYJ@!".indexOf(e)+1],o=new RegExp("^-?\\d{1,"+i+"}"),l=t.substring(k).match(o);if(!l)throw(a.local.missingNumberAt||a.regionalOptions[""].missingNumberAt).replace(/\{0\}/,k);return k+=l[0].length,parseInt(l[0],10)},b=this,_=function(){if("function"==typeof s){m("m");var e=s.call(b,t.substring(k));return k+=e.length,e}return x("m")},w=function(e,r,n,i){for(var o=m(e,i)?n:r,l=0;l-1){h=1,p=v;for(var S=this.daysInMonth(d,h);p>S;S=this.daysInMonth(d,h))h++,p-=S}return f>-1?this.fromJD(f):this.newDate(d,h,p)},determineDate:function(e,t,r,n,a){r&&"object"!=typeof r&&(a=n,n=r,r=null),"string"!=typeof n&&(a=n,n="");var i=this;return t=t?t.newDate():null,null==e?t:"string"==typeof e?function(e){try{return i.parseDate(n,e,a)}catch(e){}for(var t=((e=e.toLowerCase()).match(/^c/)&&r?r.newDate():null)||i.today(),o=/([+-]?[0-9]+)\s*(d|w|m|y)?/g,l=o.exec(e);l;)t.add(parseInt(l[1],10),l[2]||"d"),l=o.exec(e);return t}(e):"number"==typeof e?isNaN(e)||e===1/0||e===-1/0?t:i.today().add(e,"d"):i.newDate(e)}})}},t={};function r(n){var a=t[n];if(void 0!==a)return a.exports;var i=t[n]={exports:{}};return e[n].call(i.exports,i,i.exports,r),i.exports}return r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r(3472)}()})); \ No newline at end of file From f8a53c8ab32d95538c744a1cf29cfdf256002ce1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 21:20:25 +0100 Subject: [PATCH 0295/1024] Update Rust crate serde_yaml to v0.9.32 (#1256) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index def09dfb3..62a891083 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1627,9 +1627,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.31" +version = "0.9.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adf8a49373e98a4c5f0ceb5d05aa7c648d75f63774981ed95b7c7443bbd50c6e" +checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f" dependencies = [ "indexmap", "itoa", diff --git a/Cargo.toml b/Cargo.toml index 1237b8a12..a07d45130 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ handlebars = { version = "=5.1.1", features = ["dir_source"] } lazy_static = "=1.4.0" serde = "=1.0.196" serde_derive = "=1.0.196" -serde_yaml = "=0.9.31" +serde_yaml = "=0.9.32" serde_json = "=1.0.113" comrak = "=0.21.0" rayon = "=1.8.1" From b5147baee03716e69a28cef7c53ffd27c46517c0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Feb 2024 21:20:43 +0100 Subject: [PATCH 0296/1024] Update Rust crate warpy to v0.3.47 (#1255) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 12 ++++++------ serve/Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 62a891083..dc760f000 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -66,9 +66,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" @@ -582,9 +582,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e7cf40684ae96ade6232ed84582f40ce0a66efcd43a5117aef610534f8e0b8" +checksum = "6c012a26a7f605efc424dd53697843a72be7dc86ad2d01f7814337794a12231d" dependencies = [ "anstream", "anstyle", @@ -2249,9 +2249,9 @@ dependencies = [ [[package]] name = "warpy" -version = "0.3.45" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5383ff66287bc7057cf5572bec90ab592acbbce958c97f21df2cf032bfe8e670" +checksum = "63b6334ac9d958211f6766a4662921132f73013fc97357a90dd71efc2c00d013" dependencies = [ "build_html", "chrono", diff --git a/serve/Cargo.toml b/serve/Cargo.toml index 7ddff8356..ca96fba3e 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" [dependencies] blog = { path = ".." } -warpy = "=0.3.45" +warpy = "=0.3.47" tokio = "=1.36.0" From 8b39b94d41972a23f96c879fde7552e522f73186 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 09:10:38 +0100 Subject: [PATCH 0297/1024] Update serde monorepo to v1.0.197 (#1258) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dc760f000..bed135a82 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1584,18 +1584,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index a07d45130..06aa37d6c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,8 +13,8 @@ color-eyre = "=0.6.2" eyre = "=0.6.12" handlebars = { version = "=5.1.1", features = ["dir_source"] } lazy_static = "=1.4.0" -serde = "=1.0.196" -serde_derive = "=1.0.196" +serde = "=1.0.197" +serde_derive = "=1.0.197" serde_yaml = "=0.9.32" serde_json = "=1.0.113" comrak = "=0.21.0" From 4b53d24b71c12230ce6693e76aaaabdc4667fd1a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 09:10:51 +0100 Subject: [PATCH 0298/1024] Update Rust crate serde_json to v1.0.114 (#1257) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bed135a82..01b67d1e6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1604,9 +1604,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 06aa37d6c..504754793 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ lazy_static = "=1.4.0" serde = "=1.0.197" serde_derive = "=1.0.197" serde_yaml = "=0.9.32" -serde_json = "=1.0.113" +serde_json = "=1.0.114" comrak = "=0.21.0" rayon = "=1.8.1" regex = "=1.10.3" From 7c8dc9bac9a53cd76ce52cb4464bb0d7b5bd0dd1 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Tue, 20 Feb 2024 10:18:29 +0100 Subject: [PATCH 0299/1024] Remove unnecessary `lib` module declaration --- src/blog.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/blog.rs b/src/blog.rs index efc8a6dc2..d3cbfa99e 100644 --- a/src/blog.rs +++ b/src/blog.rs @@ -1,10 +1,7 @@ -#[path = "lib.rs"] -mod lib; - pub fn main() -> eyre::Result<()> { color_eyre::install()?; - lib::main()?; + blog::main()?; println!( "blog has been generated; you can now serve its content by running\n\ From 4d1485f41b8b902981ec7a44e71a3edfa53cfff5 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Tue, 20 Feb 2024 10:23:32 +0100 Subject: [PATCH 0300/1024] Remove unnecessary `[[bin]]` declaration If we move the module to the `src/bin/` folder it is automatically detected as an application. --- Cargo.toml | 4 ---- src/{ => bin}/blog.rs | 0 2 files changed, 4 deletions(-) rename src/{ => bin}/blog.rs (100%) diff --git a/Cargo.toml b/Cargo.toml index 504754793..6cd08853b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,10 +4,6 @@ version = "0.1.0" authors = ["The Rust Project Developers"] edition = "2021" -[[bin]] -name = "blog" -path = "src/blog.rs" - [dependencies] color-eyre = "=0.6.2" eyre = "=0.6.12" diff --git a/src/blog.rs b/src/bin/blog.rs similarity index 100% rename from src/blog.rs rename to src/bin/blog.rs From fd103b1079cf93c3f72e5668fac8fcabffc9ae44 Mon Sep 17 00:00:00 2001 From: Jack Huey <31162821+jackh726@users.noreply.github.com> Date: Wed, 21 Feb 2024 13:32:10 -0500 Subject: [PATCH 0301/1024] Update posts/2024-02-21-Rust-participates-in-GSoC-2024.md --- posts/2024-02-21-Rust-participates-in-GSoC-2024.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-02-21-Rust-participates-in-GSoC-2024.md b/posts/2024-02-21-Rust-participates-in-GSoC-2024.md index c8270a64c..49609ceab 100644 --- a/posts/2024-02-21-Rust-participates-in-GSoC-2024.md +++ b/posts/2024-02-21-Rust-participates-in-GSoC-2024.md @@ -12,7 +12,7 @@ As of today, the organizations that have been accepted into the program have bee We have prepared a [list of project ideas][gsoc repo] that can serve as inspiration for potential GSoC contributors that would like to send a project proposal to the Rust organization. However, applicants can also come up with their own project ideas. You can discuss project ideas or try to find mentors in the [#gsoc][gsoc stream] Zulip stream. We have also prepared a [proposal guide][proposal guide] that should help you with preparing your project proposals. -You can start discussing the project ideas with Rust Project maintainers immediately. The project proposal application period starts on 18. 3. 2024, and ends on 2. 4. 2024 at 18:00 UTC. Take note of that deadline, as there will be no extensions! +You can start discussing the project ideas with Rust Project maintainers immediately. The project proposal application period starts on March 18, 2024, and ends on April 2, 2024 at 18:00 UTC. Take note of that deadline, as there will be no extensions! If you are interested in contributing to the Rust Project, we encourage you to check out our project idea list and send us a GSoC project proposal! Of course, you are also free to discuss these projects and/or try to move them forward even if you do not intend to (or cannot) participate in GSoC. We welcome all contributors to Rust, as there is always enough work to do. From b7378b1db7555651e538a84710b9390ed23e0463 Mon Sep 17 00:00:00 2001 From: Noritada Kobayashi Date: Thu, 22 Feb 2024 21:14:11 +0900 Subject: [PATCH 0302/1024] Remove duplicate commandline prompt in `console` displays (#1260) --- .../2024-02-13-this-development-cycle-in-cargo-1-77.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md b/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md index 22093c178..2db3bda0d 100644 --- a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md +++ b/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md @@ -76,14 +76,14 @@ we switched from printing a `Created` status at the end to a `Creating` status a With the previous `Created`: ```console -$ cargo new foo +cargo new foo Adding `foo` as member of workspace at `/home/epage/src/personal/cargo` note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html Created binary (application) `foo` package ``` With the new `Creating`: ```console -$ cargo new foo +cargo new foo Creating binary (application) `foo` package Adding `foo` as member of workspace at `/home/epage/src/personal/cargo` note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html From 1d487137466120815e9b2effa71bacc54a96e757 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Thu, 22 Feb 2024 13:34:58 +0100 Subject: [PATCH 0303/1024] Remove automatic `$` prefix for `bash` and `console` code blocks This prefix is very surprising to blog authors because e.g. GitHub does not render it that way. It also does not work well if a code block contains multiple commands where all but the first one need a manual prefix. The original commit that introduced this unfortunately does not give any reasons for why it was introduced. --- README.md | 10 +++++----- posts/2015-10-29-Rust-1.4.md | 2 +- posts/2016-05-05-cargo-pillars.md | 16 ++++++++-------- posts/2016-05-13-rustup.md | 2 +- posts/2016-08-10-Shape-of-errors-to-come.md | 2 +- posts/2016-09-08-incremental.md | 2 +- posts/2016-09-29-Rust-1.12.md | 2 +- posts/2016-12-22-Rust-1.14.md | 2 +- posts/2017-02-02-Rust-1.15.md | 2 +- posts/2017-02-09-Rust-1.15.1.md | 2 +- posts/2017-03-16-Rust-1.16.md | 8 ++++---- posts/2017-04-27-Rust-1.17.md | 2 +- posts/2017-06-08-Rust-1.18.md | 2 +- posts/2017-07-20-Rust-1.19.md | 2 +- posts/2017-08-31-Rust-1.20.md | 2 +- posts/2017-10-12-Rust-1.21.md | 2 +- posts/2017-11-22-Rust-1.22.md | 2 +- posts/2018-01-04-Rust-1.23.md | 2 +- posts/2018-02-15-Rust-1.24.md | 4 ++-- posts/2018-03-01-Rust-1.24.1.md | 2 +- posts/2018-03-29-Rust-1.25.md | 2 +- posts/2018-05-10-Rust-1.26.md | 2 +- posts/2018-05-29-Rust-1.26.1.md | 4 ++-- posts/2018-06-05-Rust-1.26.2.md | 2 +- posts/2018-06-21-Rust-1.27.md | 2 +- posts/2018-07-10-Rust-1.27.1.md | 2 +- posts/2018-07-20-Rust-1.27.2.md | 2 +- posts/2018-08-02-Rust-1.28.md | 2 +- posts/2018-09-13-Rust-1.29.md | 10 +++++----- posts/2018-09-25-Rust-1.29.1.md | 2 +- posts/2018-10-12-Rust-1.29.2.md | 2 +- posts/2018-10-25-Rust-1.30.0.md | 2 +- posts/2018-10-30-help-test-rust-2018.md | 8 ++++---- posts/2018-11-08-Rust-1.30.1.md | 2 +- posts/2018-12-06-Rust-1.31-and-rust-2018.md | 4 ++-- posts/2018-12-20-Rust-1.31.1.md | 2 +- posts/2019-01-17-Rust-1.32.0.md | 2 +- posts/2019-02-28-Rust-1.33.0.md | 2 +- posts/2019-04-11-Rust-1.34.0.md | 2 +- posts/2019-04-25-Rust-1.34.1.md | 2 +- posts/2019-05-14-Rust-1.34.2.md | 2 +- posts/2019-05-23-Rust-1.35.0.md | 2 +- posts/2019-07-04-Rust-1.36.0.md | 2 +- posts/2019-08-15-Rust-1.37.0.md | 2 +- posts/2019-09-26-Rust-1.38.0.md | 2 +- posts/2019-11-01-nll-hard-errors.md | 2 +- posts/2019-11-07-Rust-1.39.0.md | 2 +- posts/2019-12-19-Rust-1.40.0.md | 2 +- posts/2020-01-30-Rust-1.41.0.md | 2 +- posts/2020-02-27-Rust-1.41.1.md | 2 +- posts/2020-03-12-Rust-1.42.md | 2 +- posts/2020-04-23-Rust-1.43.0.md | 2 +- posts/2020-05-07-Rust.1.43.1.md | 2 +- posts/2020-06-18-Rust.1.44.1.md | 2 +- posts/2020-07-16-Rust-1.45.0.md | 2 +- posts/2020-07-30-Rust-1.45.1.md | 2 +- posts/2020-08-03-Rust-1.45.2.md | 2 +- posts/2020-08-27-Rust-1.46.0.md | 2 +- posts/2020-10-08-Rust-1.47.md | 2 +- posts/2020-11-19-Rust-1.48.md | 2 +- posts/2020-12-31-Rust-1.49.0.md | 2 +- posts/2021-02-11-Rust-1.50.0.md | 2 +- posts/2021-03-25-Rust-1.51.0.md | 2 +- posts/2021-05-06-Rust-1.52.0.md | 2 +- posts/2021-05-10-Rust-1.52.1.md | 2 +- posts/2021-06-17-Rust-1.53.0.md | 2 +- posts/2021-07-29-Rust-1.54.0.md | 2 +- posts/2021-09-09-Rust-1.55.0.md | 2 +- posts/2021-10-21-Rust-1.56.0.md | 2 +- posts/2021-12-02-Rust-1.57.0.md | 2 +- posts/2022-01-13-Rust-1.58.0.md | 2 +- posts/2022-02-24-Rust-1.59.0.md | 2 +- posts/2022-04-07-Rust-1.60.0.md | 2 +- posts/2022-05-19-Rust-1.61.0.md | 2 +- posts/2022-06-30-Rust-1.62.0.md | 6 +++--- posts/2022-08-11-Rust-1.63.0.md | 2 +- posts/2022-09-22-Rust-1.64.0.md | 2 +- posts/2022-11-03-Rust-1.65.0.md | 2 +- posts/2022-12-15-Rust-1.66.0.md | 2 +- posts/2023-01-26-Rust-1.67.0.md | 2 +- posts/2023-03-09-Rust-1.68.0.md | 2 +- posts/2023-04-20-Rust-1.69.0.md | 2 +- posts/2023-04-25-Rustup-1.26.0.md | 4 ++-- posts/2023-06-01-Rust-1.70.0.md | 2 +- posts/2023-07-13-Rust-1.71.0.md | 2 +- posts/2023-08-24-Rust-1.72.0.md | 2 +- posts/2023-10-05-Rust-1.73.0.md | 2 +- posts/2023-11-16-Rust-1.74.0.md | 2 +- posts/2023-12-28-Rust-1.75.0.md | 2 +- posts/2024-02-08-Rust-1.76.0.md | 2 +- .../2019-12-18-bisecting-rust-compiler.md | 2 +- .../2020-11-15-Using-rustc_codegen_cranelift.md | 4 ++-- ...02-13-this-development-cycle-in-cargo-1-77.md | 8 ++++---- src/styles/app.scss | 5 ----- 94 files changed, 124 insertions(+), 129 deletions(-) diff --git a/README.md b/README.md index ba53a1e27..e3c493b88 100644 --- a/README.md +++ b/README.md @@ -12,9 +12,9 @@ Pages via GitHub Actions. To build the site locally: ```console -> git clone https://github.com/rust-lang/blog.rust-lang.org -> cd blog.rust-lang.org -> cargo run +$ git clone https://github.com/rust-lang/blog.rust-lang.org +$ cd blog.rust-lang.org +$ cargo run ``` You could do it in release mode if you'd like, but it's pretty fast in debug. @@ -23,13 +23,13 @@ From there, the generated HTML will be in a `site` directory. Open `site/index.html` in your web browser to view the site. ```console -> firefox site/index.html +$ firefox site/index.html ``` You can also run a server, if you need to preview your changes on a different machine: ```console -> cargo run -p serve +$ cargo run -p serve Serving on: http://192.168.123.45:8000 ``` diff --git a/posts/2015-10-29-Rust-1.4.md b/posts/2015-10-29-Rust-1.4.md index be2f8927b..961dd7112 100644 --- a/posts/2015-10-29-Rust-1.4.md +++ b/posts/2015-10-29-Rust-1.4.md @@ -79,7 +79,7 @@ information about what it is changing.](https://github.com/rust-lang/cargo/pull/1931) For example: ```console -cargo update +$ cargo update Updating registry `https://github.com/rust-lang/crates.io-index` Updating libc v0.1.8 -> v0.1.10 Updating memchr v0.1.3 -> v0.1.5 diff --git a/posts/2016-05-05-cargo-pillars.md b/posts/2016-05-05-cargo-pillars.md index d85e4ff9d..6b0d77d75 100644 --- a/posts/2016-05-05-cargo-pillars.md +++ b/posts/2016-05-05-cargo-pillars.md @@ -158,7 +158,7 @@ Now that we've added the `time` crate, let's see what happens if we ask Cargo to build our package: ```console -cargo build +$ cargo build Compiling winapi v0.2.6 Compiling libc v0.2.10 Compiling winapi-build v0.1.1 @@ -174,14 +174,14 @@ up into smaller crates that do one thing and do it well**. Now that we successfully built our crate, what happens if we try to build it again? ```console -cargo build +$ cargo build ``` Nothing happened at all. Why's that? We can always ask Cargo to give us more information through the `--verbose` flag, so let's do that: ```console -cargo build --verbose +$ cargo build --verbose Fresh libc v0.2.10 Fresh winapi v0.2.6 Fresh winapi-build v0.1.1 @@ -240,7 +240,7 @@ To do this, we check in our `Cargo.lock` and clone the repository on our new machine. Then, we run `cargo build` again. ```console -cargo build +$ cargo build Compiling libc v0.2.10 Compiling winapi v0.2.6 Compiling winapi-build v0.1.1 @@ -271,7 +271,7 @@ fn main() { To run the example, we ask Cargo to build and run it: ```console -cargo run --example date +$ cargo run --example date Compiling datetime v0.1.0 (file:///Users/ykatz/Code/datetime) Running `target/debug/examples/date` 26 Apr 2016 :: 05:03:38 @@ -322,7 +322,7 @@ to our package: After using the crate in our library, let's run `cargo build` again: ```console -cargo build +$ cargo build Updating registry `https://github.com/rust-lang/crates.io-index` Downloading tz v0.2.1 Downloading byteorder v0.5.1 @@ -386,7 +386,7 @@ fn bench_date(b: &mut Bencher) { If we then run `cargo bench`: ```console -cargo bench +$ cargo bench Compiling winapi v0.2.6 Compiling libc v0.2.10 Compiling byteorder v0.5.1 @@ -450,7 +450,7 @@ library for Unix-specific functionality. As before, when I run `cargo build`, Cargo *conservatively* adds `nix` and its dependencies: ```console -cargo build +$ cargo build Updating registry `https://github.com/rust-lang/crates.io-index` Downloading nix v0.5.0 Downloading bitflags v0.4.0 diff --git a/posts/2016-05-13-rustup.md b/posts/2016-05-13-rustup.md index b29bb64bb..9187e1aa9 100644 --- a/posts/2016-05-13-rustup.md +++ b/posts/2016-05-13-rustup.md @@ -145,7 +145,7 @@ stable toolchain that targets the 64-bit, MSVC ABI. [abi]: https://www.rust-lang.org/downloads.html#win-foot ```console -rustup default stable-x86_64-pc-windows-msvc +$ rustup default stable-x86_64-pc-windows-msvc info: syncing channel updates for 'stable-x86_64-pc-windows-msvc' info: downloading component 'rustc' info: downloading component 'rust-std' diff --git a/posts/2016-08-10-Shape-of-errors-to-come.md b/posts/2016-08-10-Shape-of-errors-to-come.md index b758dfc80..5811c82ca 100644 --- a/posts/2016-08-10-Shape-of-errors-to-come.md +++ b/posts/2016-08-10-Shape-of-errors-to-come.md @@ -95,7 +95,7 @@ Today, when you can call `--explain`, you pass an error code. The compiler then an extended message that goes into more detail about how errors of that form occur: ```console -rustc --explain E0200 +$ rustc --explain E0200 Unsafe traits must have unsafe implementations. This error occurs when an implementation for an unsafe trait isn't marked as unsafe. This may be resolved diff --git a/posts/2016-09-08-incremental.md b/posts/2016-09-08-incremental.md index a8002ef9d..fe4d6eefe 100644 --- a/posts/2016-09-08-incremental.md +++ b/posts/2016-09-08-incremental.md @@ -29,7 +29,7 @@ time since implementation started towards the end of last year, all of the been done. You can give it a try in the nightly version of the compiler: ```console -rustc -Zincremental= ./main.rs +$ rustc -Zincremental= ./main.rs ``` This will start the compiler in **incremental mode**, using whatever `` diff --git a/posts/2016-09-29-Rust-1.12.md b/posts/2016-09-29-Rust-1.12.md index 99490aa1c..f90d18293 100644 --- a/posts/2016-09-29-Rust-1.12.md +++ b/posts/2016-09-29-Rust-1.12.md @@ -74,7 +74,7 @@ we showed above, at the start of the post? Here's an example of attempting to compile that code while passing the `--error-format=json` flag: ```bash -rustc borrowck-assign-comp.rs --error-format=json +$ rustc borrowck-assign-comp.rs --error-format=json {"message":"cannot assign to `p.x` because it is borrowed","level":"error","spans":[{"file_name":"borrowck-assign-comp.rs","byte_start":562,"byte_end":563,"line_start":15,"line_end":15,"column_start":14,"column_end":15,"is_primary":false,"text":[{"text":" let q = &p;","highlight_start":14,"highlight_end":15}],"label":"borrow of `p.x` occurs here","suggested_replacement":null,"expansion":null}],"label":"assignment to borrowed `p.x` occurs here","suggested_replacement":null,"expansion":null}],"children":[],"rendered":null} {"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":null} ``` diff --git a/posts/2016-12-22-Rust-1.14.md b/posts/2016-12-22-Rust-1.14.md index 5cdd3b792..0b7411f35 100644 --- a/posts/2016-12-22-Rust-1.14.md +++ b/posts/2016-12-22-Rust-1.14.md @@ -43,7 +43,7 @@ small taste of how it works, once you have [emscripten] installed, compiling some Rust code to WebAssembly is as easy as: ```bash -rustup target add wasm32-unknown-emscripten +$ rustup target add wasm32-unknown-emscripten $ echo 'fn main() { println!("Hello, Emscripten!"); }' > hello.rs $ rustc --target=wasm32-unknown-emscripten hello.rs $ node hello.js diff --git a/posts/2017-02-02-Rust-1.15.md b/posts/2017-02-02-Rust-1.15.md index 039067664..44753ce97 100644 --- a/posts/2017-02-02-Rust-1.15.md +++ b/posts/2017-02-02-Rust-1.15.md @@ -11,7 +11,7 @@ systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed, getting Rust 1.15 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2017-02-09-Rust-1.15.1.md b/posts/2017-02-09-Rust-1.15.1.md index 7439fe824..33104e250 100644 --- a/posts/2017-02-09-Rust-1.15.1.md +++ b/posts/2017-02-09-Rust-1.15.1.md @@ -11,7 +11,7 @@ systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed, getting Rust 1.15.1 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [download Rust][install] from the diff --git a/posts/2017-03-16-Rust-1.16.md b/posts/2017-03-16-Rust-1.16.md index a5cb6b7e2..0612f8d2f 100644 --- a/posts/2017-03-16-Rust-1.16.md +++ b/posts/2017-03-16-Rust-1.16.md @@ -11,7 +11,7 @@ systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed, getting Rust 1.16 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the @@ -115,7 +115,7 @@ will live as long as `Name`, which is required for `Name` to be valid. Let's try code with Rust 1.15.1: ```bash -rustc +1.15.1 foo.rs --crate-type=lib +$ rustc +1.15.1 foo.rs --crate-type=lib error[E0495]: cannot infer an appropriate lifetime for lifetime parameter in generic type due to conflicting requirements --> .\foo.rs:10:5 | @@ -139,7 +139,7 @@ The compiler explains the issue, and gives a helpful suggestion. So let's try it the `'a`, and compile again: ```bash -rustc +1.15.1 .\foo.rs --crate-type=lib +$ rustc +1.15.1 .\foo.rs --crate-type=lib error[E0308]: method not compatible with trait --> .\foo.rs:10:5 | @@ -164,7 +164,7 @@ It still doesn't work. That help message was not actually helpful. It does sugge lifetime, this time on `Name`. If we do that... ```bash -rustc +1.15.1 .\foo.rs --crate-type=lib +$ rustc +1.15.1 .\foo.rs --crate-type=lib help: consider using an explicit lifetime parameter as shown: fn from_str(s: &'a str) -> Result, ()> --> .\foo.rs:10:5 diff --git a/posts/2017-04-27-Rust-1.17.md b/posts/2017-04-27-Rust-1.17.md index 965d45fdc..88c81b3f5 100644 --- a/posts/2017-04-27-Rust-1.17.md +++ b/posts/2017-04-27-Rust-1.17.md @@ -11,7 +11,7 @@ systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed, getting Rust 1.17 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2017-06-08-Rust-1.18.md b/posts/2017-06-08-Rust-1.18.md index 423d4af5a..b257944ab 100644 --- a/posts/2017-06-08-Rust-1.18.md +++ b/posts/2017-06-08-Rust-1.18.md @@ -11,7 +11,7 @@ systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed, getting Rust 1.18 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2017-07-20-Rust-1.19.md b/posts/2017-07-20-Rust-1.19.md index 378808cb5..87faa21d8 100644 --- a/posts/2017-07-20-Rust-1.19.md +++ b/posts/2017-07-20-Rust-1.19.md @@ -11,7 +11,7 @@ systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed, getting Rust 1.19 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2017-08-31-Rust-1.20.md b/posts/2017-08-31-Rust-1.20.md index c2b886fcf..5c47b265f 100644 --- a/posts/2017-08-31-Rust-1.20.md +++ b/posts/2017-08-31-Rust-1.20.md @@ -11,7 +11,7 @@ is a systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed, getting Rust 1.20 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2017-10-12-Rust-1.21.md b/posts/2017-10-12-Rust-1.21.md index c4650ac69..8d83ad47e 100644 --- a/posts/2017-10-12-Rust-1.21.md +++ b/posts/2017-10-12-Rust-1.21.md @@ -11,7 +11,7 @@ is a systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed, getting Rust 1.21 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2017-11-22-Rust-1.22.md b/posts/2017-11-22-Rust-1.22.md index 59119824b..db40fe999 100644 --- a/posts/2017-11-22-Rust-1.22.md +++ b/posts/2017-11-22-Rust-1.22.md @@ -20,7 +20,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.22.1 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-01-04-Rust-1.23.md b/posts/2018-01-04-Rust-1.23.md index a40293f53..dcdb24a86 100644 --- a/posts/2018-01-04-Rust-1.23.md +++ b/posts/2018-01-04-Rust-1.23.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.23.0 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-02-15-Rust-1.24.md b/posts/2018-02-15-Rust-1.24.md index a15b69ee8..c6e9e8483 100644 --- a/posts/2018-02-15-Rust-1.24.md +++ b/posts/2018-02-15-Rust-1.24.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.24.0 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the @@ -33,7 +33,7 @@ of "standard style." With this release, we're happy to announce that a *preview* can be used with 1.24 stable. To give it a try, do this: ```bash -rustup component add rustfmt-preview +$ rustup component add rustfmt-preview ``` There are two important aspects here: first, you're using `rustup component diff --git a/posts/2018-03-01-Rust-1.24.1.md b/posts/2018-03-01-Rust-1.24.1.md index 59fb9ce78..72f5ecddc 100644 --- a/posts/2018-03-01-Rust-1.24.1.md +++ b/posts/2018-03-01-Rust-1.24.1.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.24.1 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-03-29-Rust-1.25.md b/posts/2018-03-29-Rust-1.25.md index 5a1c3757e..e2cd21c21 100644 --- a/posts/2018-03-29-Rust-1.25.md +++ b/posts/2018-03-29-Rust-1.25.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.25.0 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-05-10-Rust-1.26.md b/posts/2018-05-10-Rust-1.26.md index df574b80f..07562528c 100644 --- a/posts/2018-05-10-Rust-1.26.md +++ b/posts/2018-05-10-Rust-1.26.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.26.0 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-05-29-Rust-1.26.1.md b/posts/2018-05-29-Rust-1.26.1.md index c09f6b339..06febb446 100644 --- a/posts/2018-05-29-Rust-1.26.1.md +++ b/posts/2018-05-29-Rust-1.26.1.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.26.1 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the @@ -124,7 +124,7 @@ This was unfortunately fixed too late to make it into 1.26 stable, so we added the patch for 1.26.1 to permit users to install Rust on these platforms. ```console -rustup update +$ rustup update info: syncing channel updates for 'stable-x86_64-unknown-freebsd' info: latest update on 2018-05-10, rust version 1.26.0 (a77568041 2018-05-07) error: component 'rust-docs' for 'x86_64-unknown-freebsd' is unavailable for download diff --git a/posts/2018-06-05-Rust-1.26.2.md b/posts/2018-06-05-Rust-1.26.2.md index a9f069038..7baccbae1 100644 --- a/posts/2018-06-05-Rust-1.26.2.md +++ b/posts/2018-06-05-Rust-1.26.2.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.26.2 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-06-21-Rust-1.27.md b/posts/2018-06-21-Rust-1.27.md index 6582411c1..a4970a18c 100644 --- a/posts/2018-06-21-Rust-1.27.md +++ b/posts/2018-06-21-Rust-1.27.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.27.0 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-07-10-Rust-1.27.1.md b/posts/2018-07-10-Rust-1.27.1.md index 5fc8d5741..9f321b635 100644 --- a/posts/2018-07-10-Rust-1.27.1.md +++ b/posts/2018-07-10-Rust-1.27.1.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.27.1 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-07-20-Rust-1.27.2.md b/posts/2018-07-20-Rust-1.27.2.md index aa6ff87c6..0722dd9a2 100644 --- a/posts/2018-07-20-Rust-1.27.2.md +++ b/posts/2018-07-20-Rust-1.27.2.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.27.2 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-08-02-Rust-1.28.md b/posts/2018-08-02-Rust-1.28.md index 3a607f08f..9d41caa07 100644 --- a/posts/2018-08-02-Rust-1.28.md +++ b/posts/2018-08-02-Rust-1.28.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.28.0 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-09-13-Rust-1.29.md b/posts/2018-09-13-Rust-1.29.md index e968a04f9..7ac89a92a 100644 --- a/posts/2018-09-13-Rust-1.29.md +++ b/posts/2018-09-13-Rust-1.29.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.29.0 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the @@ -52,7 +52,7 @@ Here, we're calling `do_something` a hundred times. But we never use the variabl And so Rust warns: ```console -cargo build +$ cargo build Compiling myprogram v0.1.0 (file:///path/to/myprogram) warning: unused variable: `i` --> src\main.rs:4:9 @@ -69,7 +69,7 @@ See how it suggests that we use `_i` as a name instead? We can automatically apply that suggestion with `cargo fix`: ```console -cargo fix +$ cargo fix Checking myprogram v0.1.0 (file:///C:/Users/steve/tmp/fix) Fixing src\main.rs (1 fix) Finished dev [unoptimized + debuginfo] target(s) in 0.59s @@ -120,13 +120,13 @@ a reference is a no-op, and so this is almost certainly a bug. We can get the preview of Clippy from Rustup: ```console -rustup component add clippy-preview +$ rustup component add clippy-preview ``` and then run it: ```console -cargo clippy +$ cargo clippy error: calls to `std::mem::drop` with a reference instead of an owned value. Dropping a reference does nothing. --> src\main.rs:5:5 | diff --git a/posts/2018-09-25-Rust-1.29.1.md b/posts/2018-09-25-Rust-1.29.1.md index 4480d4580..85049116f 100644 --- a/posts/2018-09-25-Rust-1.29.1.md +++ b/posts/2018-09-25-Rust-1.29.1.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.29.1 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-10-12-Rust-1.29.2.md b/posts/2018-10-12-Rust-1.29.2.md index c7f1c560c..53b56216e 100644 --- a/posts/2018-10-12-Rust-1.29.2.md +++ b/posts/2018-10-12-Rust-1.29.2.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.29.2 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-10-25-Rust-1.30.0.md b/posts/2018-10-25-Rust-1.30.0.md index f62083c82..208ce33dd 100644 --- a/posts/2018-10-25-Rust-1.30.0.md +++ b/posts/2018-10-25-Rust-1.30.0.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.30.0 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-10-30-help-test-rust-2018.md b/posts/2018-10-30-help-test-rust-2018.md index 5b51c3e19..8957bb6c6 100644 --- a/posts/2018-10-30-help-test-rust-2018.md +++ b/posts/2018-10-30-help-test-rust-2018.md @@ -35,14 +35,14 @@ First things first, you'll need to install the beta release channel of Rust. With [Rustup], it's as easy as: ```console -rustup install beta +$ rustup install beta ``` To use this channel of Rust instead of your default, you can append a `+beta` to any `rustc` or cargo commands: ```console -rustc +beta --version +$ rustc +beta --version $ cargo +beta build ``` @@ -56,7 +56,7 @@ experiments. To start a new project with Rust 2018: ```console -cargo +beta new my-sample-project +$ cargo +beta new my-sample-project ``` Nothing changes! Well, something changed. Check out `Cargo.toml`: @@ -84,7 +84,7 @@ interoperate seamlessly! The first step is to run `cargo fix`: ```console -cargo fix --edition +$ cargo fix --edition ``` This will check your code, and automatically fix any issues that it can. diff --git a/posts/2018-11-08-Rust-1.30.1.md b/posts/2018-11-08-Rust-1.30.1.md index ded7e3bfa..b06bdbff8 100644 --- a/posts/2018-11-08-Rust-1.30.1.md +++ b/posts/2018-11-08-Rust-1.30.1.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.30.1 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2018-12-06-Rust-1.31-and-rust-2018.md b/posts/2018-12-06-Rust-1.31-and-rust-2018.md index ac65bd5be..752613479 100644 --- a/posts/2018-12-06-Rust-1.31-and-rust-2018.md +++ b/posts/2018-12-06-Rust-1.31-and-rust-2018.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.31.0 is as easy as: ```bash -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the @@ -69,7 +69,7 @@ We'll be covering all of this and more in this post. Let's create a new project with Cargo: ```console -cargo new foo +$ cargo new foo ``` Here's the contents of `Cargo.toml`: diff --git a/posts/2018-12-20-Rust-1.31.1.md b/posts/2018-12-20-Rust-1.31.1.md index 638b5fa47..7211cc3b0 100644 --- a/posts/2018-12-20-Rust-1.31.1.md +++ b/posts/2018-12-20-Rust-1.31.1.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.31.1 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2019-01-17-Rust-1.32.0.md b/posts/2019-01-17-Rust-1.32.0.md index c7a4c349d..6872c944a 100644 --- a/posts/2019-01-17-Rust-1.32.0.md +++ b/posts/2019-01-17-Rust-1.32.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.32.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2019-02-28-Rust-1.33.0.md b/posts/2019-02-28-Rust-1.33.0.md index 1884b7956..2ef03ec91 100644 --- a/posts/2019-02-28-Rust-1.33.0.md +++ b/posts/2019-02-28-Rust-1.33.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.33.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2019-04-11-Rust-1.34.0.md b/posts/2019-04-11-Rust-1.34.0.md index 19bee7816..5846c174b 100644 --- a/posts/2019-04-11-Rust-1.34.0.md +++ b/posts/2019-04-11-Rust-1.34.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.34.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the appropriate diff --git a/posts/2019-04-25-Rust-1.34.1.md b/posts/2019-04-25-Rust-1.34.1.md index f55d8641c..cbc9a84b6 100644 --- a/posts/2019-04-25-Rust-1.34.1.md +++ b/posts/2019-04-25-Rust-1.34.1.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.34.1 and rustup 1.18.1 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the appropriate page on our website. diff --git a/posts/2019-05-14-Rust-1.34.2.md b/posts/2019-05-14-Rust-1.34.2.md index 7655f547c..eb3d2b926 100644 --- a/posts/2019-05-14-Rust-1.34.2.md +++ b/posts/2019-05-14-Rust-1.34.2.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.34.2 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2019-05-23-Rust-1.35.0.md b/posts/2019-05-23-Rust-1.35.0.md index de7ebea5f..3b37b2c97 100644 --- a/posts/2019-05-23-Rust-1.35.0.md +++ b/posts/2019-05-23-Rust-1.35.0.md @@ -11,7 +11,7 @@ programming language that is empowering everyone to build reliable and efficient If you have a previous version of Rust installed via rustup, getting Rust 1.35.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the appropriate page on our website, diff --git a/posts/2019-07-04-Rust-1.36.0.md b/posts/2019-07-04-Rust-1.36.0.md index 4dda0862e..35ed5b8e4 100644 --- a/posts/2019-07-04-Rust-1.36.0.md +++ b/posts/2019-07-04-Rust-1.36.0.md @@ -11,7 +11,7 @@ Rust is a programming language that is empowering everyone to build reliable and If you have a previous version of Rust installed via rustup, getting Rust 1.36.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the appropriate page on our website, diff --git a/posts/2019-08-15-Rust-1.37.0.md b/posts/2019-08-15-Rust-1.37.0.md index d7913cc81..cff1d9211 100644 --- a/posts/2019-08-15-Rust-1.37.0.md +++ b/posts/2019-08-15-Rust-1.37.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.37.0. Rust is a prog If you have a previous version of Rust installed via rustup, getting Rust 1.37.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the appropriate page on our website, and check out the [detailed release notes for 1.37.0][notes] on GitHub. diff --git a/posts/2019-09-26-Rust-1.38.0.md b/posts/2019-09-26-Rust-1.38.0.md index 842933149..9c7b2c8d9 100644 --- a/posts/2019-09-26-Rust-1.38.0.md +++ b/posts/2019-09-26-Rust-1.38.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.38.0. Rust is a prog If you have a previous version of Rust installed via rustup, getting Rust 1.38.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the appropriate page on our website. diff --git a/posts/2019-11-01-nll-hard-errors.md b/posts/2019-11-01-nll-hard-errors.md index 12ae7f1bb..11f2db4e0 100644 --- a/posts/2019-11-01-nll-hard-errors.md +++ b/posts/2019-11-01-nll-hard-errors.md @@ -94,7 +94,7 @@ You can find out which crates you rely upon using the [cargo-tree] command. If y that you *do* rely (say) on `url` 1.7.0, you can upgrade to 1.7.2 by executing: ```bash -cargo update --package url --precise 1.7.2 +$ cargo update --package url --precise 1.7.2 ``` [cargo-tree]: https://crates.io/crates/cargo-tree diff --git a/posts/2019-11-07-Rust-1.39.0.md b/posts/2019-11-07-Rust-1.39.0.md index 7d1518370..544fe5bbc 100644 --- a/posts/2019-11-07-Rust-1.39.0.md +++ b/posts/2019-11-07-Rust-1.39.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.39.0. Rust is a prog If you have a previous version of Rust installed via rustup, getting Rust 1.39.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the appropriate page on our website, and check out the [detailed release notes for 1.39.0][notes] on GitHub. diff --git a/posts/2019-12-19-Rust-1.40.0.md b/posts/2019-12-19-Rust-1.40.0.md index 1b37e785b..4588b60d7 100644 --- a/posts/2019-12-19-Rust-1.40.0.md +++ b/posts/2019-12-19-Rust-1.40.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.40.0. Rust is a prog If you have a previous version of Rust installed via rustup, getting Rust 1.40.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the appropriate page on our website, and check out the [detailed release notes for 1.40.0][notes] on GitHub. diff --git a/posts/2020-01-30-Rust-1.41.0.md b/posts/2020-01-30-Rust-1.41.0.md index efd4a15c9..b671cf633 100644 --- a/posts/2020-01-30-Rust-1.41.0.md +++ b/posts/2020-01-30-Rust-1.41.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.41.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2020-02-27-Rust-1.41.1.md b/posts/2020-02-27-Rust-1.41.1.md index b0573ceb2..06ca73863 100644 --- a/posts/2020-02-27-Rust-1.41.1.md +++ b/posts/2020-02-27-Rust-1.41.1.md @@ -11,7 +11,7 @@ Rust is a programming language that is empowering everyone to build reliable and If you have a previous version of Rust installed via rustup, getting Rust 1.41.1 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the appropriate page on our website. diff --git a/posts/2020-03-12-Rust-1.42.md b/posts/2020-03-12-Rust-1.42.md index 6835071fe..8d3354b14 100644 --- a/posts/2020-03-12-Rust-1.42.md +++ b/posts/2020-03-12-Rust-1.42.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.42.0. Rust is a prog If you have a previous version of Rust installed via rustup, getting Rust 1.42.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the appropriate page on our website, and check out the [detailed release notes for 1.42.0][notes] on GitHub. diff --git a/posts/2020-04-23-Rust-1.43.0.md b/posts/2020-04-23-Rust-1.43.0.md index adfc45aa9..4238ac2d6 100644 --- a/posts/2020-04-23-Rust-1.43.0.md +++ b/posts/2020-04-23-Rust-1.43.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.43.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2020-05-07-Rust.1.43.1.md b/posts/2020-05-07-Rust.1.43.1.md index deb3a470d..781c9d6da 100644 --- a/posts/2020-05-07-Rust.1.43.1.md +++ b/posts/2020-05-07-Rust.1.43.1.md @@ -11,7 +11,7 @@ Rust is a programming language that is empowering everyone to build reliable and If you have a previous version of Rust installed via rustup, getting Rust 1.43.1 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2020-06-18-Rust.1.44.1.md b/posts/2020-06-18-Rust.1.44.1.md index 9ba089bb7..767b022b3 100644 --- a/posts/2020-06-18-Rust.1.44.1.md +++ b/posts/2020-06-18-Rust.1.44.1.md @@ -11,7 +11,7 @@ Rust is a programming language that is empowering everyone to build reliable and If you have a previous version of Rust installed via rustup, getting Rust 1.44.1 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2020-07-16-Rust-1.45.0.md b/posts/2020-07-16-Rust-1.45.0.md index dbdd4250e..6345bc055 100644 --- a/posts/2020-07-16-Rust-1.45.0.md +++ b/posts/2020-07-16-Rust-1.45.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.45.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2020-07-30-Rust-1.45.1.md b/posts/2020-07-30-Rust-1.45.1.md index cd5255fc8..5e43222c4 100644 --- a/posts/2020-07-30-Rust-1.45.1.md +++ b/posts/2020-07-30-Rust-1.45.1.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.45.1 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2020-08-03-Rust-1.45.2.md b/posts/2020-08-03-Rust-1.45.2.md index 51dee9076..b83d9c16d 100644 --- a/posts/2020-08-03-Rust-1.45.2.md +++ b/posts/2020-08-03-Rust-1.45.2.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.45.2 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2020-08-27-Rust-1.46.0.md b/posts/2020-08-27-Rust-1.46.0.md index 21d918752..59e10a8be 100644 --- a/posts/2020-08-27-Rust-1.46.0.md +++ b/posts/2020-08-27-Rust-1.46.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.46.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2020-10-08-Rust-1.47.md b/posts/2020-10-08-Rust-1.47.md index 97fd703cd..88283e5e7 100644 --- a/posts/2020-10-08-Rust-1.47.md +++ b/posts/2020-10-08-Rust-1.47.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.47.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2020-11-19-Rust-1.48.md b/posts/2020-11-19-Rust-1.48.md index 832441dd6..d15224077 100644 --- a/posts/2020-11-19-Rust-1.48.md +++ b/posts/2020-11-19-Rust-1.48.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.48.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2020-12-31-Rust-1.49.0.md b/posts/2020-12-31-Rust-1.49.0.md index df48b5e4b..4e392623f 100644 --- a/posts/2020-12-31-Rust-1.49.0.md +++ b/posts/2020-12-31-Rust-1.49.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.49.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] from the diff --git a/posts/2021-02-11-Rust-1.50.0.md b/posts/2021-02-11-Rust-1.50.0.md index c360359d8..386838edd 100644 --- a/posts/2021-02-11-Rust-1.50.0.md +++ b/posts/2021-02-11-Rust-1.50.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.50.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2021-03-25-Rust-1.51.0.md b/posts/2021-03-25-Rust-1.51.0.md index 183fda053..559f62c22 100644 --- a/posts/2021-03-25-Rust-1.51.0.md +++ b/posts/2021-03-25-Rust-1.51.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.51.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2021-05-06-Rust-1.52.0.md b/posts/2021-05-06-Rust-1.52.0.md index 236cf03b2..bedb3220e 100644 --- a/posts/2021-05-06-Rust-1.52.0.md +++ b/posts/2021-05-06-Rust-1.52.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.52.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2021-05-10-Rust-1.52.1.md b/posts/2021-05-10-Rust-1.52.1.md index 5298d6c22..d7e736e6f 100644 --- a/posts/2021-05-10-Rust-1.52.1.md +++ b/posts/2021-05-10-Rust-1.52.1.md @@ -16,7 +16,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.52.1 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2021-06-17-Rust-1.53.0.md b/posts/2021-06-17-Rust-1.53.0.md index b198a9a1c..cd3c05be4 100644 --- a/posts/2021-06-17-Rust-1.53.0.md +++ b/posts/2021-06-17-Rust-1.53.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.53.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2021-07-29-Rust-1.54.0.md b/posts/2021-07-29-Rust-1.54.0.md index 7bfa75966..2ae969c00 100644 --- a/posts/2021-07-29-Rust-1.54.0.md +++ b/posts/2021-07-29-Rust-1.54.0.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.54.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2021-09-09-Rust-1.55.0.md b/posts/2021-09-09-Rust-1.55.0.md index cb1eb4479..a0083304b 100644 --- a/posts/2021-09-09-Rust-1.55.0.md +++ b/posts/2021-09-09-Rust-1.55.0.md @@ -12,7 +12,7 @@ If you have a previous version of Rust installed via rustup, getting Rust 1.55.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2021-10-21-Rust-1.56.0.md b/posts/2021-10-21-Rust-1.56.0.md index 847796142..976937021 100644 --- a/posts/2021-10-21-Rust-1.56.0.md +++ b/posts/2021-10-21-Rust-1.56.0.md @@ -11,7 +11,7 @@ Rust is a programming language empowering everyone to build reliable and efficie If you have a previous version of Rust installed via rustup, getting Rust 1.56.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2021-12-02-Rust-1.57.0.md b/posts/2021-12-02-Rust-1.57.0.md index 5246d8d91..6f3cbe0a6 100644 --- a/posts/2021-12-02-Rust-1.57.0.md +++ b/posts/2021-12-02-Rust-1.57.0.md @@ -11,7 +11,7 @@ Rust is a programming language empowering everyone to build reliable and efficie If you have a previous version of Rust installed via rustup, getting Rust 1.57.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2022-01-13-Rust-1.58.0.md b/posts/2022-01-13-Rust-1.58.0.md index f2b1360a7..2809adf52 100644 --- a/posts/2022-01-13-Rust-1.58.0.md +++ b/posts/2022-01-13-Rust-1.58.0.md @@ -11,7 +11,7 @@ Rust is a programming language empowering everyone to build reliable and efficie If you have a previous version of Rust installed via rustup, getting Rust 1.58.0 is as easy as: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2022-02-24-Rust-1.59.0.md b/posts/2022-02-24-Rust-1.59.0.md index f74c35933..1d1b5406e 100644 --- a/posts/2022-02-24-Rust-1.59.0.md +++ b/posts/2022-02-24-Rust-1.59.0.md @@ -22,7 +22,7 @@ If you have a previous version of Rust installed via rustup, you can get 1.59.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2022-04-07-Rust-1.60.0.md b/posts/2022-04-07-Rust-1.60.0.md index a92574fde..59f5e3522 100644 --- a/posts/2022-04-07-Rust-1.60.0.md +++ b/posts/2022-04-07-Rust-1.60.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.60.0. Rust is a prog If you have a previous version of Rust installed via rustup, you can get 1.60.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2022-05-19-Rust-1.61.0.md b/posts/2022-05-19-Rust-1.61.0.md index f709eeb0d..14710ccd3 100644 --- a/posts/2022-05-19-Rust-1.61.0.md +++ b/posts/2022-05-19-Rust-1.61.0.md @@ -11,7 +11,7 @@ empowering everyone to build reliable and efficient software. If you have a previous version of Rust installed via rustup, you can get 1.61.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2022-06-30-Rust-1.62.0.md b/posts/2022-06-30-Rust-1.62.0.md index 6371342f9..b84666dc2 100644 --- a/posts/2022-06-30-Rust-1.62.0.md +++ b/posts/2022-06-30-Rust-1.62.0.md @@ -11,7 +11,7 @@ empowering everyone to build reliable and efficient software. If you have a previous version of Rust installed via rustup, you can get 1.62.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] @@ -74,8 +74,8 @@ This is part of a long effort to improve the efficiency of Rust's lock types, wh It's now easier to build OS-less binaries for `x86_64`, for example when writing a kernel. The [`x86_64-unknown-none` target](https://doc.rust-lang.org/beta/rustc/platform-support/x86_64-unknown-none.html) has been promoted to [Tier 2](https://doc.rust-lang.org/rustc/platform-support.html#tier-2) and can be installed with rustup. ```console -rustup target add x86_64-unknown-none -rustc --target x86_64-unknown-none my_no_std_program.rs +$ rustup target add x86_64-unknown-none +$ rustc --target x86_64-unknown-none my_no_std_program.rs ``` You can read more about development using `no_std` in the [Embedded Rust book](https://docs.rust-embedded.org/book/intro/no-std.html). diff --git a/posts/2022-08-11-Rust-1.63.0.md b/posts/2022-08-11-Rust-1.63.0.md index cfae2438f..092dff562 100644 --- a/posts/2022-08-11-Rust-1.63.0.md +++ b/posts/2022-08-11-Rust-1.63.0.md @@ -11,7 +11,7 @@ empowering everyone to build reliable and efficient software. If you have a previous version of Rust installed via rustup, you can get 1.63.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`][install] diff --git a/posts/2022-09-22-Rust-1.64.0.md b/posts/2022-09-22-Rust-1.64.0.md index a17d9ebc6..7412505ee 100644 --- a/posts/2022-09-22-Rust-1.64.0.md +++ b/posts/2022-09-22-Rust-1.64.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, you can get 1.64.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get diff --git a/posts/2022-11-03-Rust-1.65.0.md b/posts/2022-11-03-Rust-1.65.0.md index cbd7e6ac0..78dc1f9b5 100644 --- a/posts/2022-11-03-Rust-1.65.0.md +++ b/posts/2022-11-03-Rust-1.65.0.md @@ -24,7 +24,7 @@ If you have a previous version of Rust installed via rustup, you can get 1.65.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get diff --git a/posts/2022-12-15-Rust-1.66.0.md b/posts/2022-12-15-Rust-1.66.0.md index affc5da1d..b8a2964a4 100644 --- a/posts/2022-12-15-Rust-1.66.0.md +++ b/posts/2022-12-15-Rust-1.66.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, you can get 1.66.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get diff --git a/posts/2023-01-26-Rust-1.67.0.md b/posts/2023-01-26-Rust-1.67.0.md index 11fde0041..035d20567 100644 --- a/posts/2023-01-26-Rust-1.67.0.md +++ b/posts/2023-01-26-Rust-1.67.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, you can get 1.67.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get diff --git a/posts/2023-03-09-Rust-1.68.0.md b/posts/2023-03-09-Rust-1.68.0.md index ffa6df0bd..ff5415772 100644 --- a/posts/2023-03-09-Rust-1.68.0.md +++ b/posts/2023-03-09-Rust-1.68.0.md @@ -13,7 +13,7 @@ If you have a previous version of Rust installed via rustup, you can get 1.68.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md index 78a8d0985..469abca1e 100644 --- a/posts/2023-04-20-Rust-1.69.0.md +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a nice version of Rust, 1.69.0. Rust is a pro If you have a previous version of Rust installed via rustup, you can get 1.69.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.69.0](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1690-2023-04-20) on GitHub. diff --git a/posts/2023-04-25-Rustup-1.26.0.md b/posts/2023-04-25-Rustup-1.26.0.md index 50d8ecbd2..f973e8666 100644 --- a/posts/2023-04-25-Rustup-1.26.0.md +++ b/posts/2023-04-25-Rustup-1.26.0.md @@ -9,13 +9,13 @@ The rustup working group is happy to announce the release of rustup version 1.26 If you have a previous version of rustup installed, getting rustup 1.26.0 is as easy as stopping any programs which may be using Rustup (e.g. closing your IDE) and running: ```console -rustup self update +$ rustup self update ``` Rustup will also automatically update itself at the end of a normal toolchain update: ```console -rustup update +$ rustup update ``` If you don't have it already, you can [get rustup][install] from the appropriate page on our website. diff --git a/posts/2023-06-01-Rust-1.70.0.md b/posts/2023-06-01-Rust-1.70.0.md index d09d520f5..481c44fdd 100644 --- a/posts/2023-06-01-Rust-1.70.0.md +++ b/posts/2023-06-01-Rust-1.70.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.70.0. Rust is a prog If you have a previous version of Rust installed via rustup, you can get 1.70.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.70.0](https://github.com/rust-lang/rust/releases/tag/1.70.0) on GitHub. diff --git a/posts/2023-07-13-Rust-1.71.0.md b/posts/2023-07-13-Rust-1.71.0.md index e4781dc17..76a13067f 100644 --- a/posts/2023-07-13-Rust-1.71.0.md +++ b/posts/2023-07-13-Rust-1.71.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.71.0. Rust is a prog If you have a previous version of Rust installed via rustup, you can get 1.71.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.71.0](https://github.com/rust-lang/rust/releases/tag/1.71.0) on GitHub. diff --git a/posts/2023-08-24-Rust-1.72.0.md b/posts/2023-08-24-Rust-1.72.0.md index 67df6c4b3..87df3ba43 100644 --- a/posts/2023-08-24-Rust-1.72.0.md +++ b/posts/2023-08-24-Rust-1.72.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.72.0. Rust is a prog If you have a previous version of Rust installed via rustup, you can get 1.72.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.72.0](https://github.com/rust-lang/rust/releases/tag/1.72.0) on GitHub. diff --git a/posts/2023-10-05-Rust-1.73.0.md b/posts/2023-10-05-Rust-1.73.0.md index 638470aca..3a5cb816b 100644 --- a/posts/2023-10-05-Rust-1.73.0.md +++ b/posts/2023-10-05-Rust-1.73.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.73.0. Rust is a prog If you have a previous version of Rust installed via rustup, you can get 1.73.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.73.0](https://github.com/rust-lang/rust/releases/tag/1.73.0) on GitHub. diff --git a/posts/2023-11-16-Rust-1.74.0.md b/posts/2023-11-16-Rust-1.74.0.md index b241a2f96..af9025b4a 100644 --- a/posts/2023-11-16-Rust-1.74.0.md +++ b/posts/2023-11-16-Rust-1.74.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.74.0. Rust is a prog If you have a previous version of Rust installed via rustup, you can get 1.74.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.74.0](https://github.com/rust-lang/rust/releases/tag/1.74.0) on GitHub. diff --git a/posts/2023-12-28-Rust-1.75.0.md b/posts/2023-12-28-Rust-1.75.0.md index 96b3113b0..06892854f 100644 --- a/posts/2023-12-28-Rust-1.75.0.md +++ b/posts/2023-12-28-Rust-1.75.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.75.0. Rust is a prog If you have a previous version of Rust installed via rustup, you can get 1.75.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.75.0](https://doc.rust-lang.org/nightly/releases.html#version-1750-2023-12-28). diff --git a/posts/2024-02-08-Rust-1.76.0.md b/posts/2024-02-08-Rust-1.76.0.md index 1745d8f68..051575968 100644 --- a/posts/2024-02-08-Rust-1.76.0.md +++ b/posts/2024-02-08-Rust-1.76.0.md @@ -10,7 +10,7 @@ The Rust team is happy to announce a new version of Rust, 1.76.0. Rust is a prog If you have a previous version of Rust installed via rustup, you can get 1.76.0 with: ```console -rustup update stable +$ rustup update stable ``` If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.76.0](https://doc.rust-lang.org/nightly/releases.html#version-1760-2024-02-08). diff --git a/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md b/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md index 73955ad54..227c0ca51 100644 --- a/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md +++ b/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md @@ -125,7 +125,7 @@ Please give the steps for how to build your repository (platform, system depende

    ```bash -Paste the error the compiler is giving +$ Paste the error the compiler is giving ```

    diff --git a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md b/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md index 166db2c16..261262c60 100644 --- a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md +++ b/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md @@ -95,7 +95,7 @@ if you're just interested! The reason this isn't the recommended way to build First, download the Rust repository. ```console -git clone https://github.com/rust-lang/rust +$ git clone https://github.com/rust-lang/rust ``` Now, let's set up the build system to use `cg_clif`. @@ -110,7 +110,7 @@ EOF Finally, let's run the build. This can take a long time, over a half-hour in some cases. ```console -./x.py build +$ ./x.py build ``` ## How can I help? diff --git a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md b/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md index 2db3bda0d..b2aaf9eed 100644 --- a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md +++ b/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md @@ -76,14 +76,14 @@ we switched from printing a `Created` status at the end to a `Creating` status a With the previous `Created`: ```console -cargo new foo +$ cargo new foo Adding `foo` as member of workspace at `/home/epage/src/personal/cargo` note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html Created binary (application) `foo` package ``` With the new `Creating`: ```console -cargo new foo +$ cargo new foo Creating binary (application) `foo` package Adding `foo` as member of workspace at `/home/epage/src/personal/cargo` note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -346,12 +346,12 @@ We have tried to raise awareness of these tools by calling the, out in our There is also the issue that sharing a package name between a binary and a library is more convenient. For example, compare ```console -cargo add pulldown-cmark +$ cargo add pulldown-cmark cargo add typos ``` with ```console -cargo install pulldown-cmark +$ cargo install pulldown-cmark cargo install typos-cli ``` [RFC #3383](https://github.com/rust-lang/rfcs/pull/3383) is an attempt at improving this. diff --git a/src/styles/app.scss b/src/styles/app.scss index b14f60380..ebe939d23 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -67,11 +67,6 @@ code { overflow: auto; } -code.language-console::before, -code.language-bash::before { - content: '$ '; -} - section { padding: 30px 0 60px 0; From 116d148792a3fe53b2975394d47204b14f501aad Mon Sep 17 00:00:00 2001 From: Noah Lev Date: Fri, 23 Feb 2024 07:22:37 -0500 Subject: [PATCH 0304/1024] Use the `disc` list style type (#683) Previously, it was the `circle` list style type, but it was determined that the `disc` list style type is in many ways a better match for Rust. --- src/styles/app.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/styles/app.scss b/src/styles/app.scss index ebe939d23..bd59032be 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -189,6 +189,10 @@ ul, ol { padding-left: 1.2em; } +ul { + list-style-type: disc; +} + .posts { background-color: $gray; color: white; From 13b2c5780d5002baca206490cd79e84356d41b4e Mon Sep 17 00:00:00 2001 From: Wesley Wiser Date: Mon, 26 Feb 2024 14:36:39 -0600 Subject: [PATCH 0305/1024] Update post date --- posts/{2024-02-15-Windows-7.md => 2024-02-26-Windows-7.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2024-02-15-Windows-7.md => 2024-02-26-Windows-7.md} (100%) diff --git a/posts/2024-02-15-Windows-7.md b/posts/2024-02-26-Windows-7.md similarity index 100% rename from posts/2024-02-15-Windows-7.md rename to posts/2024-02-26-Windows-7.md From 95dcff6ce8f80dfe09ae52c19802ca91bedefd8e Mon Sep 17 00:00:00 2001 From: Chris Denton Date: Mon, 26 Feb 2024 19:13:26 -0300 Subject: [PATCH 0306/1024] Update 2023-08-24-Rust-1.72.0.md --- posts/2023-08-24-Rust-1.72.0.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/posts/2023-08-24-Rust-1.72.0.md b/posts/2023-08-24-Rust-1.72.0.md index 87df3ba43..ec8d9af3f 100644 --- a/posts/2023-08-24-Rust-1.72.0.md +++ b/posts/2023-08-24-Rust-1.72.0.md @@ -104,6 +104,8 @@ Check out everything that changed in [Rust](https://github.com/rust-lang/rust/re In a future release we're planning to increase the minimum supported Windows version to 10. The accepted proposal in compiler [MCP 651](https://github.com/rust-lang/compiler-team/issues/651) is that Rust 1.75 will be the last to officially support Windows 7, 8, and 8.1. When Rust 1.76 is released in February 2024, only Windows 10 and later will be supported as tier-1 targets. This change will apply both as a host compiler and as a compilation target. +**Update**: The planned increase to Windows' minimum support level has been delayed until Rust 1.78, due to be released in May 2024. + ## Contributors to 1.72.0 Many people came together to create Rust 1.72.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.72.0/) From 65078d5b3fa3d9d7bfc6d4868d646248d5ed834b Mon Sep 17 00:00:00 2001 From: Philipp Krones Date: Fri, 16 Feb 2024 12:11:33 +0100 Subject: [PATCH 0307/1024] Add blog post about deprecating feature = cargo-clippy --- ...Clippy-deprecating-feature-cargo-clippy.md | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md diff --git a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md new file mode 100644 index 000000000..77448a781 --- /dev/null +++ b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md @@ -0,0 +1,90 @@ +--- +layout: post +title: "Clippy: Deprecating `feature = \"cargo-clippy\"`" +author: The Clippy Team +release: true +--- + +Since Clippy [`v0.0.97`] and before it was shipped with `rustup`, Clippy +implicitly added a `feature = "cargo-clippy"` config[^1] when linting your code +with `cargo clippy`. + +[^1]: It's likely that you didn't even know that Clippy implicitly sets this + config (which was not a Cargo feature). This is intentional, as we stopped + advertising and documenting this a long time ago. + +Back in the day (2016) this was necessary to allow, warn or deny Clippy lints +using attributes: + +```rust +#[cfg_attr(feature = "cargo-clippy", allow(clippy_lint_name))] +``` + +Doing this hasn't been necessary for a long time. Today, Clippy users will set +lint levels with tool lint attributes using the `clippy::` prefix: + +```rust +#[allow(clippy::lint_name)] +``` + +The implicit `feature = "cargo-clippy"` has only been kept for backwards +compatibility, but will now be deprecated. + +## Alternative + +As there is a rare [use case] for conditional compilation depending on Clippy, +we will provide an alternative. So in the future you will be able to use: + +```rust +#[cfg(clippy)] +``` + +## Transitioning + +Should you have instances of `feature = "cargo-clippy"` in your code base, you +will see a warning from the new Clippy lint +[`clippy::deprecated_clippy_cfg_attr`][pr-12292]. This lint can automatically fix +your code. So if you should see this lint triggering, just run: + +``` +cargo clippy --fix -- -Aclippy::all -Wclippy::deprecated_clippy_cfg_attr +``` + +This will fix all instances in your code. + +In addition, check your `.cargo/config` file for: + +```toml +[target.'cfg(feature = "cargo-clippy")'] +rustflags = ["-Aclippy::..."] +``` + +If you have this config, you will have to update it yourself, by either changing +it to `cfg(clippy)` or taking this opportunity to transition to [setting lint +levels in `Cargo.toml`][cargo-lints] directly. + +## Motivation for Deprecation + +Currently, there's a [call for testing], in order to stabilize [checking +conditional compilation at compile time][rfc-3013], aka `cargo check +-Zcheck-cfg`. If we were to keep the `feature = "cargo-clippy"` config, users +would start seeing a lot of warnings on their `feature = "cargo-clippy"` +conditions. To work around this, they would either need to allow the lint or +have to add a dummy feature to their `Cargo.toml` in order to silence those +warnings: + +```toml +[features] +cargo-clippy = [] +``` + +We didn't think this would be user friendly, and decided that instead we want to +deprecate the implicit `feature = "cargo-clippy"` config and replace it with the +`clippy` config. + +[`v0.0.97`]: https://github.com/rust-lang/rust-clippy/blob/61daf674eaf17f3b504c51f01b4ee63fac47dfcf/CHANGELOG.md?plain=0#0097--2016-11-03 +[rfc-3013]: https://github.com/rust-lang/rfcs/pull/3013 +[use case]: https://doc.rust-lang.org/clippy/configuration.html#disabling-evaluation-of-certain-code +[pr-12292]: https://github.com/rust-lang/rust-clippy/pull/12292 +[cargo-lints]: https://doc.rust-lang.org/cargo/reference/manifest.html#the-lints-section +[call for testing]: https://github.com/rust-lang/rfcs/pull/3013#issuecomment-1936648479 From d2436f0be013b9baf9cc8ef6839aeb8ef79a0fff Mon Sep 17 00:00:00 2001 From: Philipp Krones Date: Thu, 29 Feb 2024 11:11:53 +0100 Subject: [PATCH 0308/1024] Clippy post: clarify that only nightly is affected for now --- ...28-Clippy-deprecating-feature-cargo-clippy.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md index 77448a781..b3de61b1a 100644 --- a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md +++ b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md @@ -28,12 +28,14 @@ lint levels with tool lint attributes using the `clippy::` prefix: ``` The implicit `feature = "cargo-clippy"` has only been kept for backwards -compatibility, but will now be deprecated. +compatibility, but will be deprecated in upcoming nightlies and later in +`1.78.0`. ## Alternative As there is a rare [use case] for conditional compilation depending on Clippy, -we will provide an alternative. So in the future you will be able to use: +we will provide an alternative. So in the future (`1.78.0`) you will be able to +use: ```rust #[cfg(clippy)] @@ -41,10 +43,14 @@ we will provide an alternative. So in the future you will be able to use: ## Transitioning +> Should you only use stable toolchains, you can wait with the transition until +> Rust `1.78.0` (2024-05-02) is released. + Should you have instances of `feature = "cargo-clippy"` in your code base, you will see a warning from the new Clippy lint -[`clippy::deprecated_clippy_cfg_attr`][pr-12292]. This lint can automatically fix -your code. So if you should see this lint triggering, just run: +[`clippy::deprecated_clippy_cfg_attr`] available in the latest nightly Clippy. +This lint can automatically fix your code. So if you should see this lint +triggering, just run: ``` cargo clippy --fix -- -Aclippy::all -Wclippy::deprecated_clippy_cfg_attr @@ -85,6 +91,6 @@ deprecate the implicit `feature = "cargo-clippy"` config and replace it with the [`v0.0.97`]: https://github.com/rust-lang/rust-clippy/blob/61daf674eaf17f3b504c51f01b4ee63fac47dfcf/CHANGELOG.md?plain=0#0097--2016-11-03 [rfc-3013]: https://github.com/rust-lang/rfcs/pull/3013 [use case]: https://doc.rust-lang.org/clippy/configuration.html#disabling-evaluation-of-certain-code -[pr-12292]: https://github.com/rust-lang/rust-clippy/pull/12292 +[`clippy::deprecated_clippy_cfg_attr`]: https://rust-lang.github.io/rust-clippy/master/index.html#/deprecated_clippy_cfg_attr [cargo-lints]: https://doc.rust-lang.org/cargo/reference/manifest.html#the-lints-section [call for testing]: https://github.com/rust-lang/rfcs/pull/3013#issuecomment-1936648479 From 8e5704a06c0b46e1bd060384c2722146cbe481d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 11:16:11 +0100 Subject: [PATCH 0309/1024] Update Rust crate rayon to v1.9.0 (#1263) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 01b67d1e6..22b346adf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1379,9 +1379,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", diff --git a/Cargo.toml b/Cargo.toml index 6cd08853b..ab025b38e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ serde_derive = "=1.0.197" serde_yaml = "=0.9.32" serde_json = "=1.0.114" comrak = "=0.21.0" -rayon = "=1.8.1" +rayon = "=1.9.0" regex = "=1.10.3" sass-rs = "=0.2.2" chrono = "=0.4.34" From bda231aaa703ca5989a2f8d25f0cab620da89a71 Mon Sep 17 00:00:00 2001 From: ev3nvy <12035264+ev3nvy@users.noreply.github.com> Date: Mon, 4 Mar 2024 22:08:56 +0100 Subject: [PATCH 0310/1024] fix: unpublish cargo-clippy deprecation blog post --- posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md | 1 - 1 file changed, 1 deletion(-) diff --git a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md index b3de61b1a..d141b7a82 100644 --- a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md +++ b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md @@ -2,7 +2,6 @@ layout: post title: "Clippy: Deprecating `feature = \"cargo-clippy\"`" author: The Clippy Team -release: true --- Since Clippy [`v0.0.97`] and before it was shipped with `rustup`, Clippy From dd1d21b46fe560e9f9eb935202c52a9da642d1bd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 11:37:39 +0100 Subject: [PATCH 0311/1024] Update Rust crate chrono to v0.4.35 (#1268) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 22b346adf..288bc39df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -247,9 +247,9 @@ checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" dependencies = [ "android-tzdata", "iana-time-zone", diff --git a/Cargo.toml b/Cargo.toml index ab025b38e..cfbf96410 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ comrak = "=0.21.0" rayon = "=1.9.0" regex = "=1.10.3" sass-rs = "=0.2.2" -chrono = "=0.4.34" +chrono = "=0.4.35" [workspace] members = ["serve"] From d7620979a56780405558b2e18d6b26405cb6cf48 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 11:52:14 +0100 Subject: [PATCH 0312/1024] Update Rust crate warpy to v0.3.50 (#1265) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 12 ++++++------ serve/Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 288bc39df..bbd77a5d3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -582,9 +582,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c012a26a7f605efc424dd53697843a72be7dc86ad2d01f7814337794a12231d" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" dependencies = [ "anstream", "anstyle", @@ -1002,9 +1002,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "memchr" @@ -2249,9 +2249,9 @@ dependencies = [ [[package]] name = "warpy" -version = "0.3.47" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63b6334ac9d958211f6766a4662921132f73013fc97357a90dd71efc2c00d013" +checksum = "3a20ef8af950cb7486ed69f077db19f6e1cab9c3ebc04356097a622f51fa8fef" dependencies = [ "build_html", "chrono", diff --git a/serve/Cargo.toml b/serve/Cargo.toml index ca96fba3e..e5985a130 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" [dependencies] blog = { path = ".." } -warpy = "=0.3.47" +warpy = "=0.3.50" tokio = "=1.36.0" From a6fe9e1147b5d6c81119c75ff86829d560542a36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 11:52:57 +0100 Subject: [PATCH 0313/1024] Bump mio from 0.8.10 to 0.8.11 (#1267) Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11. - [Release notes](https://github.com/tokio-rs/mio/releases) - [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/mio/compare/v0.8.10...v0.8.11) --- updated-dependencies: - dependency-name: mio dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bbd77a5d3..9bbb058ae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1039,9 +1039,9 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "log", From 3f273a0ba1f4d6e94adae1c17f05f0d7a61ed7e0 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Mon, 11 Mar 2024 09:52:33 +0100 Subject: [PATCH 0314/1024] Add "crates.io: Download changes" blog post (#1269) --- .../2024-03-11-crates-io-download-changes.md | 41 ++++++++++++++++++ .../download-graph.png | Bin 0 -> 330868 bytes 2 files changed, 41 insertions(+) create mode 100644 posts/2024-03-11-crates-io-download-changes.md create mode 100644 static/images/2024-03-11-crates-io-download-changes/download-graph.png diff --git a/posts/2024-03-11-crates-io-download-changes.md b/posts/2024-03-11-crates-io-download-changes.md new file mode 100644 index 000000000..255ed747a --- /dev/null +++ b/posts/2024-03-11-crates-io-download-changes.md @@ -0,0 +1,41 @@ +--- +layout: post +title: "crates.io: Download changes" +author: Tobias Bieniek +team: the crates.io team +--- + +Like the rest of the Rust community, [crates.io](https://crates.io) has been growing rapidly, with download and package counts increasing 2-3x year-on-year. This growth doesn't come without problems, and we have made some changes to download handling on crates.io to ensure we can keep providing crates for a long time to come. + +## The Problem + +This growth has brought with it some challenges. The most significant of these is that all download requests currently go through the crates.io API, occasionally causing scaling issues. If the API is down or slow, it affects all download requests too. In fact, the number one cause of waking up our crates.io on-call team is "slow downloads" due to the API having performance issues. + +Additionally, this setup is also problematic for users outside of North America, where download requests are slow due to the distance to the crates.io API servers. + +## The Solution + +To address these issues, over the last year we have decided to make some changes: + +**Starting from 2024-03-12, `cargo` will begin to download crates directly from our static.crates.io [CDN](https://en.wikipedia.org/wiki/Content_delivery_network) servers.** + +This change will be facilitated by modifying the [`config.json`](https://github.com/rust-lang/crates.io-index/blob/master/config.json) file on the package index. In other words: no changes to `cargo` or your own system are needed for the changes to take effect. The `config.json` file is used by `cargo` to determine the download URLs for crates, and we will update it to point directly to the CDN servers, instead of the crates.io API. + +Over the past few months, we have made several changes to the crates.io backend to enable this: + +- We [announced the deprecation of "non-canonical" downloads](https://blog.rust-lang.org/2023/10/27/crates-io-non-canonical-downloads.html), which would be harder to support when downloading directly from the CDN. + +- We changed how downloads are counted. Previously, downloads were counted directly on the crates.io API servers. Now, we analyze the log files from the CDN servers to count the download requests. + +![crates.io download graph of an arbitrary crate showing that on 2024-02-16, download numbers increased](../../../images/2024-03-11-crates-io-download-changes/download-graph.png) + +The latter change has caused the download numbers of most crates to increase, as some download requests were not counted before. Specifically, crates.io mirrors were often downloading directly from the CDN servers already, and those downloads had previously not been counted. For crates with a lot of downloads these changes will be barely noticeable, but for smaller crates, the download numbers have increased quite a bit over the past few weeks since we enabled this change. + + +## Expected Outcomes + +We expect these changes to significantly improve the reliability and speed of downloads, as the performance of the crates.io API servers will no longer affect the download requests. Over the next few weeks, we will monitor the performance of the system to ensure that the changes have the expected effects. + +We have noticed that some non-cargo build systems are not using the `config.json` file of the index to build the download URLs. We will reach out to the maintainers of those build systems to ensure that they are aware of the change and to help them update their systems to use the new download URLs. The old download URLs will continue to work, but these systems will be missing out on the potential performance improvement. + +We are excited about these changes and believe they will greatly improve the reliability of crates.io. We look forward to hearing your feedback! diff --git a/static/images/2024-03-11-crates-io-download-changes/download-graph.png b/static/images/2024-03-11-crates-io-download-changes/download-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..7b35471c2cbb4496bc7d397b8bee03361d4b74bb GIT binary patch literal 330868 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

    (#V#xUEcQUg8o) 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

    FC3D%c z$zs|=o5tBUv*Q~B%wXuujM@kLMh`0II_|ZgQ@`F%8|S@}3t09w&ges0(bF_Blz-X% zP6`UR`p?-9Y+YZpBp~- zF^s~Bbd=wB+K&F(z}Ao>p7GhU;P;8D)z;?ilHY!W^~IUmFdN^t>x$WW7D;?lmfG9jpC8O3+&k zOWnj>H-afZ5F~@;#6A}ttW1pQvg1uy+?4j1b$-P2S-Jq>hNLF|b$tGGttW;aFB=XR zT0uIu)izL3~3$8&nN00p{#6p|aI@CUQPJwa(FmNU|EYsHA z7{b8tv-K8tFEh9&%oqIa$BzUz+zo_*wV}BXQ>g%Yo1#4GIAOD}i@aMqxL^~B`B_$o zlzxl4l-i>yKXyAlUj()(X6q9L1vGq)pWc>VTQ08v>?W$#aG;ukCjhUQPKcHMP`6M( zVP(9AU9QL7n|_ZdyRe&;Vj5V$*}2lee|JL;2|?BxT$g_*1SD+9Xktw<=*_$B*RnZN zBkWF1@vex)U7gCTlq%<~=MTK*t6-4rPw?`a1sJB+AgObO2}a`7KAZbpel}*NMpB!r zhAd9ueht0tQeJ=DIt4RAqy-duM0;@!%4R$m(o)XSQdXvg=$j$c z_0me*U6%G3+ZU4`x|%)4yFl?tLcUPuH&~iA@zL1b{iDh`QNZ8g3BV^l!EVSt^y`Cx zQo@pJMLY{Sq(Z)VX+heh>5#LjxlL17|H;7sF~AW=G{s-8ouUPadZt4FUStHiO)8tH z$;1(5QsnVwOpjFBghFq_g9q;ON%cCl?=A!j87$ZRMBW7>rR=fRY1KeLcb&^jsp=tZ zGLRKo0Vc%EG?US|&^RmYQhh)%<(fi?kEd5Iu4{D1u?3D_G7?+Vt{L~_ybwRe(Q7dwEA2CrX}>*0L{ojPlB%NrU0s=~RBdh~ zlqV}={UO3DV9vgN=Q+I^w)fXT_`IE$X0VsEkpx->1_>Ft!4+Dlrr%Env@n5p7hi0U>=xC& zb8a}G}WQZ>n6ZkR%;NTwf`&U&*d{`h|eRodvS6|Tv@F z01-0li-jbZ?Pypv>N-0Zqak8uW$WaAqvm4qb~^x+WM$APmCLGrtF7+w=`?w5lr2-vGXOI>|2 z!j2N)WpJ8x49Uz+sSQCy&h4|TT@Aks2ncT(zmH#V{EyB5fBd`vt6TKXvaK>+{}NSd z2n`lnyym^`)8({Pmi4Q<=T!y-CQzM=O?Qb$3Op_IGG+9fhi{io_$f5&HWnBneev_! zqNW~OWg=)~@iR0n4(A>^+}##{GNBXKA(GCtMO$9ST?)5b%^2Tc@C1xl)ieiwx1`+`&`D=Ayhm;f-Y%?D zKwNYx8S|`o2ihXU`rMB+b5kPp(g{SarBT@asUYB1w4cr7R%bieT(e;e@)+dXIgVmP}CQ z8h3Lak^+4h8ZO{7>BjmqQAXNi7Bf@#czp#!D)u)AcYkCUe+FBDo@)d8l;!@X~ z;DMvDGAp@L&a(M;;oPJY-YBn4oB2@i|8ZV7Aht&O+;o3A9LX)JLWiud2cptj6`LO} z*lm~HEUA0~H__X8>N20;n>ph6?TyMWIY>{W8S{g(z8iaz!#~b>C%Viy@LRj$$u)Cq z_+TG)2+2b%wn?6})M~aZhn&8-EX0I-vR+P7=}-D1#e`I&sF`q-2N?ol zxyyDbnBUs0##b*IH(uQJBhhF~=T0*K`Ft8cS%C7osMN{#K!wZVXTFNb?^i{o{lgya z{C5j44RLZCeG7(rf1P76GbCddRjTzx-bPoiqOZ=kaLm-6$4`z@eZ1jRIhJTdvbUdI z_>+E*AVBgQ>}PN117eny8kQsKYoRpKaMP@Pi)!F^yTI=;<2A|U8biL4s#orsnxK{* z4dCFKw*$9#-k@euH23c10$XIlg z8DuJ2K7~QXV)iFG`Z@4)dpmg`v2VY!Z(S%YR`B_WO#dHruFrt*lVF6ys1h%M+YP#=M$P}u+yztZkxM?rsrU*lYSVcG2cYg z-S+aLiUg#N(uV-E8j+|x|H7;wO3z(>kZxDMzDcJ6r2sPm=Y_EFB6#ed21+`l-7(su zh{6ix&hYLbA%69mev-m-`&sN_3`Do3$WzvE^YI=#P;ryi3lt0J>K9aI8DBR~ytpU4 zh_j|y6oXw9e*oOg{(C=ECu*yQU7d+=PcXuGA3wV^6oIxZ6?y=Z3kqSKn(F{1W)Vt= zKK8SfQ14J*AfS9r{Y(Kb8h17S_Kym|L+*%r1yP;JmMK zZLi{TD)lpsSwGd*j%{)mZTHhcGW&oWiSOFb^It$)u6D_w{_UD_P3)k%VH_?yUZs+K zFp#4w@zHxI1U8&3kIx1OGkGO^jm#Q*m3tV*T+loaX!!TUb(hQV8VP zsman#+Qh!xwxE5r;^Z<6GsZ-u=aN&+$g>h_)g8zcpaL#@)WdlUUX_~aJ#)>@ikuqTu_*0h zxn(`xGx)gUk1VJJ$ltaLHqqx#zO}o&^f$A2&A32eRF3|HRDJE8-@{eaNUS`wYsEKv zv_jF?a5&5CHmvsZWYyG4f7gY^63Fejv#T4JDznBp@0sgFTqQAHwPflYtx{GHa*FR> z;LOxRoH%kOCvxPQG_q*`uI9gr5hH(HMwwOI2wuEX@9R6;oa4O~Z|Jhd3`|z?nfzE_ zSxD<3La-Vqe-pF%83Pr9%f_J9T*Es+H;|VuX8_v8L=v^G>26X3BlC%VT*Jf5tsq_1 z52kj)7fN<)Y)73~*WH{-c^=yC)gN+J@=dQ5u%fPH3Plnoei3`NcJG$oFFlX<0BQIW zzRAAtBUDPu=L@$fbmFF3nGAov0a$pOz`iDYsl7N|sQP$hRg0X=GVUVaGb&#vT`=W6 zld@ZqNZP}ub>xa*=W7}(Ce8Y)Ur*iyB95vIFhN*A{rhvQ7-AKRY??n?)CDkx~~+hP7(3SD2a(%dgw_5MIoT1oNV{e28*h_QUo?rq#al ztF+{ZW%!h|k^M?2V%uRnx~9I)$SdUX<3}e1VmO z;|O?w{37BFAy68LQ!C7w?hr_=g#BE_iDt)}sRN42U9KYFgBeW-xf!-W1?g=uvvxi#lm}u@Z|ot=mu|@70n>Q_ zg96P8BfZJ{@*>j0Ob@3&CxoQYky@E5FqM{049}Q6YIz1{42M3KAJ8wnRW~M^oJ_WY^b~qw;dka)5J4qpC_fi#0wr!wAoyFKoOH%U zTP)P~W*u;oRgx-BZL`=)+m0qjg+ULj!N!9x+c$F%Kn_iK`zxS*q$NDs&NXQ5QmFTO z7|A4H>LFF|u`RErBosGSJYyb>Y#uO&-(p{N&<;?`PGfSaU6A%{tBZQUMF=N3JBRUr zc|Rt3KS_GM+okLAr!t!I_J}(ZV;jHNxuwIrk7{%+jb-r-JZglkN{4wl?lHQ56-xa z5qyY%Jr;XAXHdFpEDqHE8Mnw= z-lGDdU^2}L23of-#l9R)L<}A-o9_#eA@zsV$(~DFDf=I996TYNQ`kMkns$Yj?uD%Y zee_Vro9_=xsy#Qhccc%q_f|yLToexb6eh9Iy8H6omre$TV7_RUkM!ZpOEGq#zZ^8V z&>=&Y1LNh4SZON7_)j~sAC4iqpCw*ZMAoUh?i;qEsFBTI=N5@D0_(XG0r%pF(>tQD+F(|s9Ie;ud zj9{%G_-}&!Y!13um|W`Drz(gFJ8$Zv@j2tm)#W~#^N?}Bw!?$*eRJaY?x;WeUDV@{ zztn+vQa;cI>d+5m8NZj*ny4Z4lsg>x$947bS=PZ34GSHoGz}jw>pFQq-T9T}lWgTl zbwS;TbL%S>h(68lKWd-tBzO$m1e*>=u;EoqUM9S~l-k_?-hBTz=&tt{r!mPC$k9J?w^`R(W& zzq~IlQn@@h?(+VqYuv^BV48)HSa)DZt{vaMOFnR2+mb-{Emrw&_Z$b0o0}F?zu$-Z z_sea~Olxb3`Y(2vyVn1TI?f+IZZbb$BAXw~A1`(iEg1h&e8EUnNIgGK=g_NuvoUQ= zI>1N*QeGio>C{(knfake4zeYscld<8`Y0vFzibBZ{>wJjr;-m>0pq#%^Fl=dB2s*u zr-JVxX{bT~Mwq%JhqN}BV#lw0Ni4;nCw=mtnP}bS#C)|cC8Fwo?@ADG7c}d_KXX)b z37at`tZolAS?9tpK~$QvpY`$t%M?}hYSyp4YfjPZw9T*NGF0B0-;;nIcQ5}*^z&=I z>1kDYTj^8!6=ROhO>cG#iGFN9tC$9+?z|PSlKVp3RrX!sX5x=|`D5N=kzl%-V^1=V z|6DBWTmM9qEVAoxrRON?y;@7{?%dXTT@`9@VBm15e&@!)zP1XKXmAP`6)HdBx1#1h zbo|MCF&mscPxAGT^#6;it#~C{pV?&cy!?jN2Vw`nROV>+g@Q-~!4zrH@*5(ew zvJdG@P4S>w%dNFz0h^Jo3)O*$GE940R@N#@>GW5zGcGeDBK$XN2X;pEvB%ienEmeB z9O_CT@<6(=w$wMDxk*vdioS|XxNE^L_RYB|_F83=T>hppW#A%j2{Mw7eJm$mho9$&Ct|EJu9uM-0bC%X{^kzd=BU%D>QJnxfHt z)8|(&;Cz_0e04@*Jc_jY48BEJ)&W(dzAk9IJpM~QYXffI8C&1!aZ9-aos@x*E?sb+nyeeTe_uiyM2Lab#K8(OKbX*T#RA~hZ^pu$wn zn}}P+?lgmMsxhRJKl4t}3)lTt>u%f8=nLm~lMok)t1_tCOr!Mj9=ZLD^<78>X~#UlDRve|M6$IH2$%}@MqemQOn>8YSH#dv?u^kTFubflE%-O*tFUx6k-)1C{zbXZXzAXS7+63Y*`~kntoZls`Jw zq*}EQ97@uWMK$^U`mr%4wZClxDGBl10cQR^Uyttz3qfbUpEd&iYGu- zzUuK89lv9$RqfnqnBT4#S+o9t-=B1_TS~&uXL0S=L0IvwJ?|A*E?L92$h%5l;cBqC zH_^$_(WZO->|a=!GJumkm|W8h3NTU&f@Y2sL@x&$luj5_MvNJ=Th*3~^oa}63VzCz zmAPZfA(st&2~>i2zli8d)8I^{hkA_x3DaipUqI@#&+ z5jm7q?JNRQLB!97R(q9`gs}$J?Dp-auPNMd&vo~$+J05(ash%evou&=n(nDy%Ipb+ z8&la13k+s#D|9*gKcFI3q_JK+Sf5%2Lw9S!!$NA4V3#R|6JK-84sH4(4|)HTH6=Zu zyudRvH;h&yuN@s6Pa%j2&iUcxphOY;@t*UMEmmLMpJHhep;i~cQ@`kdbGRzLUNFCj zf>n&BO1Au^oalmjgTNyWz<>KBd+v__@1_nG;=_tm_-CajH0>&E)jXs$1fBNLET#w2AOpf-1q;U8=(?40ibzmaF`;O|22c^8cbe%b~ z@yAjAn>vJngn_b()HuiD46^tW8mLlUSZ?k2 ztMFf2J0kzqbXzF%`E9GPe~#2wzbixf$9?M&ISSp^Ihw9d`celebv|T?MyQxW6wh|oCu>F1VQ)C(+^NUe#?o1U{B=PtN( z(ABiU>eoobT0X;P8rZ?i-i81Q;np*NGfAwkpA+a0ErNaK?665b$N3#mL99BEFv1wQ zR`r|>kfk`(pUo+|WdgVdHcyTgzMKuaYlS0DI_UQBNq^d^(`>th$jHQHz8*iuU?U!tUPmnCGd<585B*|H|4_;<^1(N={@ zV6y@y_sZ-2>#GnHu}Q!2hC=H*)7nYN8%#*2&R*pxf`+O^hPcj0efQIsZ!X?H9G~&E zw{{IUpSwTob+7w;o#E4`U)T7){k&^$?{Fq*?&H)8Ez8_5eO47DY#8Y~OD>i|PVD-* z8*vRz`Sj?1OF9V0!Gn48pyeX7YH3sl)J_dMrgiwbXV=x17^F-Z zkM`#$A9f8W=q`)s9tLh{ryjkhILvm?ytj5gVfrr=@T!6SsT~(-BTi*5y>#i$7U}0_ z5%DFp zs(JcVPjl8Hw%&o>vW_6^qX;jQRY=d(W!r%l;&(t)%->>U+??xn%lAhH>lf>Vwi^BS z&fVGp5X|bvVf6lL&q2mP@Aaxdn15sK{30K5xYU-gwY*k|LJ-m_Rp}OnD#m}fzJ-{v z``0^KI@ZEad#*`Z^Oam1%k`(QFkibCdTH&J6){B1sWfA1%B8P{64)as9_h(7(8*1w z+TdSmu;;T-p($ea?%4QQV8a#4bZxb|27~oTLKuti<7;0&s_=b(CsLI^t>WMPUZG+^ z()joaC9TV(aGU=P5h0=7Ze!V{+pkFGe=2ofjjEu(pzk=!b@Hoc?!Kd%n#G-(iRSIA zKgtVm1v0K0MEyM!<6-LCBMg-qX{_hbR=GjsW6Rm}(2%#DET0k}k&M>YOS%0^AHSZ{f*SoTPCrVGJh&3N~hJVm8zVoZHy|qw!ZFOrxNc6G_{s(1j#(DfyYy45w zw#GQi5T9ezS%G!Kjz^>J`K=i6#U6zzGkn{~s4zpJd65y7 zW9iF?Vi&$X9n|w(`|-63=!ymwX1hI@DA$+NW2B}GlfmC;QutHO29#E|nY1moZhSY- zOH_&O*YfA`CApfXBq{mp`0fT5?N0A$u6|a#vAy3TM-KPzU-mnulYfs#K-#%|=Ee^) z6pW&)_IhM_>aPOtT~DNLMQY{Gt#CVTx6eXn0}`ln%jFzL&|=tH{VM_Db?j@|axT-! zB`iKIxn>|f`WDgZwXJXK*UL1;QQjg^#A~K@LXTZsiGzi_#7QqM9u<(t%cyv5vh1mbG z#zBKOxt5o97cDiokayb4hhGM8`@y-+>tW%5et+7|Dan|TKazR2#raD>)5e66`ZzwNV_bG$}Yn3v!8 z_FpLaG4%g2_8ve@c2TtGFCtB8Dk8mu5CN4AQbg$j(pvx#=@3XTpi~i2q=XJimEJ=Q zA#~}4CcPyfy$7kG2)@tz=DxY}=IXsOjFTChA>aAV*=O&y*IJt~_ZQW_Sm}3y?sR{% zt)QrGUv>(?Wl^QBy!km`!SkL>)^0u5MJ2ql*5NSF#^o@JlLfK8igEySlLJ3)SAA#f zDvHqqV!qgF^>GMHJJI$58zqJrm4mSMY}^@?6AqOb-{*EUG;nF4 z%EQ?%$#@)@ZeSE|Y*_P~aUapUr}k=3i2m(%6aY5-fb>>Yb!FCAz*ogHF~#+Z{EXij zD)DS}fxiNOd;a!R!E(*j3G+MdQ2L~QsMNYY50uKT&;&w6R z*>(wm8~Fj;4a-3K^H*jAKgE+w=Y^Z(D`9V`kf+|q6 zH5$Z?gtr5n<)2i+WV!)32KOdjdEOmNI}Od{K9}DWJ6_WkQWX8mtZS)U6B6$Qa}%hQ zytwY!lJ)@t%DYvz>Z_R_Me2X=1|GZPyA+S+p$D7*@UX&hB9`$g@XY<(1OkWK`B_B; zPMoE~0~gDFr~1A!gvg{`TfL}n-j~Wr5;=!nX0-Y{b^GN_>5dA(y|?0o>-&Mf$)Zn# zh;#LjVR__gTe>L5wUdwMl60y&$8=2b3n!t{qG%U%&Rh)okyk?gc#`n|qGA!={H#Y7 zc9lmBnQmZGF&1?8z&!%VQ<<_8|D@;BnH$yZXSuem4jN;NF+$ z;L@7xvb!<@HYkbciaY!Kx0ie39~I~GrO;lm9!Bt(;E`ThFa+3SwE4uLYjQWhnsoG? zv^V)_gp0yn+<`g7)Ea)mUVR>vJ|~m2Gv~tp{i60HN~iKoFW-z_s&G1HDRGV{FCu7S z8MugaX*wo{Od35huf|8t42w!3`iTO@!R72O0vqiKnR_EQO$Zo1ICsjE{~`Z;*V0-P zZBBEt&~f!*mD4-RytGb@1LGB~b^GszAkQyR-ZoPAHtKtk;!AQ_kO8-@<+MC>ZVY|) ztNhC>`pv4_+gSFfLG6neCwP@zXdB$O@raj$L0AH?*Fn9@m4&%sUNATkhoR?w+*zke z%%)QGFjNCO1Ok$1(p3HyuwY!;4g zwNF@E+pw`#>+yw6A4(M`y^QV`xS@O&qh4mGQ7x%l_hV#Lw&(ry7LIJ#FdJbBrO*1p zYK^4sUC+OE=M%ACfG$Kga6Ufp=DTP)+5Ck<0*E}g{vaH-W-=wj|F8RN0xzNr%M zFwh+7(jdQ;G}!$@bq~>CKieDq5`@U;bGY-OA~6u*0@Rb*G=IqURgZxVv=`yZm%n36 zpRGy0VWgWuFYT1SPHj72Ia~^V1mS!^SfADHo929iz9opM^1_zF+~~F#Lm++-e{Xc? z_i#nBWqtB^xTUdmC;RlGc5%upD#K9d0cR)7xLe}m`Sjw=8;|~E)lC~J#&S>hX6poy z^K0G0cheZSB(ZWK%T=+Oei^QKCb`!JLk|J&A;o=m8{L(oNNT_nCtay|4eY1m7whjVSz| z*vpqMfz*0@?vy^Hm4XjSh}X}2VaK27=!Kv|3z!Mabj)AqK*lw1Z2S!6P@cf4Hyf@UDtK-J6v zAXc)2#3umF7$WZ3ifR|!ylJXwE~|R)GlLx6XNf;z2QRg5^1m_uyzB!0C?sBun%1kGB)_4~seAs`@`z%nz@Z z!%|Cjo=?v_Bryw>SPmJ7>1kc*a(JZD(eTyzTRafZ*!747461VHX>7>dqAjZppy>j# z*hcX-I^3}Rr2T}hKeTG<-WTr>n9*z(JU2H1opzKXY_@E!8p7WA<-fhot9>h;F-Kkf z2%+1Lj0bNfR@%k4ttq?l@%-d3J%qlovxA`hPMjHFV-aiWhMfW5ts_IP;y9{lK} zBS}kMtn91Zk&Q&}ewC5Rohx!$-)IQEeW>#$WBXD{R7N5{g3%BrZ#%Z@`;6%5KAK-+ zI$C?*OG6Vh<9?ercdsb~_ap?oACV8J1som{b|8*KuvQZo*iuw1Gl&j?ts<1p_bFNb%$tdIe?|UL^7qjNy*z1|MxVC z^IjlnEM)~{uHyw^Zz*iLF*Eetu2r%9Z9eVQ5KEBI3QxQz0&IP2lGG7SOJJv#hh4=u zR5sw_a4(RvF)2Ng8J2z-H+!@4i-M)(6R(}VXdG**2Dou&OUbE?JW@JhG{Z5mgI>ia z4@P%epZMVGY*-BnTuzqOD|O7xWzsD&o_W^gK=f~X#m^{|`x>%g>YPGs;=(}A zK)Rb0R`uob3a;96PGAB|2gVfgNLj@k^+fKprF&Dc1fh)wj@Go>jZ$uNNfl~~7MJWA zE}=*;RxD4R!(~#$?Iw`Z7-2w-9lHP|rk@3YeJlo-Q~x_8+tNVS9i~$Ae!HP08vgXU zqnDv0-VE>uL!D6AiT>(z5D+Eh=!}_RI~?op5(2(ooQwYTk8V0keX9;YEeooL^mgqp zXGZd&6{DM)4048%q9?3oz+PUQj$1jeC^lXd7O^|~F%1Sr?5J^z1)l5ek$VR%BBe6=}b>CZFI4#v*()GI^(~o!b zPvAJl=9je2D$1Kx>+7 zPi@WnON;ov^o!rfO>mheml|;RP?uvEbAgeNQ4HhUZ96<^YP;N%Z%$7v`|{KhQ&0KR zOXTQJi#@94K=)U@l%m+*zx3M{@b!B_F(smB5D~_{toLu>OGVEdt2GB5bk&eYo+#Sz ztr@h?(u&GZW6K#k=0QOL#JbAK$xhFzON~lJ*e#V!OhLx3E6G^0$A`;gA-C13LCJS% z1&uuDLa7zo(Fb~ZGMckk-KLqiwE=3iU;P!E3~0JmZ*0ebS}Tv3YBD7_w!2u=WRs41 zsKx&HfBoNxcG7{HS|cfh$2%QD7;td{P^4*BKxuzPw98}Km;EOX2B-x;x#_)c_;cOqB(@A>9LM#CPyH*i z07ORLT>prSNP-ZxcDdV|uZy)#tSp$Pu2wUlU=PKs41_{o*~E8M3L4=E)HHXc$%d*6 z1`Mkh$bc)u^^-JA>_&>`h!=p>yvSYGi^3H#W-T&oyzLLqN&BYMjK9Zj*qb1$19X~5 zRlusbkQvvD#c(yb!f2Lnxys0R)5Lv1jQbTxZJ6c(Dgik|_x}DqI}p))Na_POq5>4S z|L$h;wuPIn`>K~}wfXyH(FNud8MJGo`GLq}3pWF-tv=0qe>tgF<#08R#I9cI)l^oy zToPEYEPW9eoOz|oe_tHwn4Bbnt3qXka5DHr_P=j<_9o&6A2heh| zNXSbN;UMng+TnVTv#bN*C8QshrR^Z&}3 z^W{rHvwXeMmDgk84b^}&)gT?can{ti+Co)X57lI=g}y)PrWVRiG*(cjd@lMG!QPlf z)t+4rbezuAoz0d#9_Tb~&c2VH(Fy@Kc3;Ktr;C=kX63d*emxy+EN2$IQ$425GPv5y zpYm)G|4tfKYHsnJ9h1G+$6)6u>CfTd2`To!hvdIm4}9PI*SiB?QBZDWfFJRfi1)UI zguYxTMnuk8|0=0XMPhQIF~Vga{0qZ2TS}nF!p~hRK`A8oCUH&O%hg-ptREqoS~;?* zCg3`xo6di4zI&_^%jD##S&riZ{6ESx{D5<;;bGJZO4${{eHeU8aA(=9q{5{~GL^~0 z@b@HHMaC0z5BAw(bslM&nQSoKmulBgIryyC^h*o@zMNr6(MJ~~uW%?9FZfTQsUSC< zO18LDJkH?NK23r%kXAk*DIt4$R=tuD-c#7H=J@h^(Loe7NqHUAVmRE}5myvPzYs$x zP(-p<$U63D1meDyU@Rh zA4UJAMBu7r?G+JVwxp$Akav3msAP2675#z$SnSA$j!bpF_>*2J{2_65C3gR9ssAIr zmGqV&FTPbF1l@7P>(pd+>)b`S?#(`KNq^fsGXtc$>plNyG`37%R zw)rcgLscf?{x7s<8lS$+xdS-M=6tEDZxA$DdJwnOodEdyta#`?nfghuezw?o<*rdx zb8MHjVQi{B%zh zPSDN%v0+nyj4Ui#t{PMsedDS@{`RPr82SDpprso#HR`6$a$IQ@bobflW@8h*%~%8! z;|Q>TJdAd~9iUOyYyZv-sjCasZm$-ABzK=1Pf#oC!yGlv7Lx%_Wq$jh4lzc%^Va7a z7SjS!nu;2746yy>qW#Po!}n62D}(>nz=ma&&R+EX=X(jx`wX!5h}MN#ya)4u`MH-6y7rY* z=h|6-+Nkw|0_LzXv`UqU;4HH|>Jb(id_z$DKj%~{}<28c+38NU|$-u~07Gw_clqgX6!>X&dLgJ2Ml!Rzu_&q@U< zG!XedM~<3ZcPR5uoo-Tt+-^K8PBb3Z#($Gk1w2kY3mIWzYJEMHURQISjsH8!O~_S) z6t20RECfCL?O#Y(>Ev-~PUJIXy;6OP+d-R(z5QCruVA&#Nm0B~`XMt?9}I z2>A#nx#FQAkuwm}qS|>ZpA@+9ZkWr^a_@huTHN=cU^1Jte<+RK4#8=Db8CNvuhk_S^J{;3`xpp%^?&pWmL2^s|Nbnu-oG`9 zeAOcjTfOK6k_v;E%DV`|Gm6)01+3~dgt`U5aH6BWtp4Tq!Fx=%sF1(c$WwhcZp=Pn z(Q!`AIzW$^_(zPM)X#Ml$}wAf$3*HE%ftB0KP#JmXGi`qdNv|=4UK;_Vda)03)OY`o|htq_X`V4ejrwu#HjWD$|G#bX|qGyE#@$ z;qqzI@%RLIxnERzPR)xd_DOs19*Z@!1I0qX?d>CtYS+kkE>(f=Vj1KE699Hv-nd}Q z0vBLTfW9)9A;k_172G|y(E_ddE&+m4@kux0Ua7Ws*%W?626xMT1HpioOZd_;ocfCS z%SGc!6Z-z^jVYN1?O}8W= z7>6Cd9wRb+qIY$!Kg=MgVhm7Ty?)*nx?X0v9wQfDFuI(vsz3=uFpp=&HYC#RLz6Z(;GVmnDG1LczDhED>Th_U+MOhKLiDM zg>PM$g*~$-Q43+?g*QMKBgP(dc>zX<6`Yk%EyGTxp}yM!GF%hzWWq{kPN;8<71Y6* z!8@Q(Hm0|p!rt9WE zGuCdIa{CZc+!*2h8uk`6Q$7cebPpJy9(RvAYg3r@Yr_{PE)YhMn(H=ztRu>> z7br}=`MqENz4oc4x ziZ>qr%s}6^ZG5=1n2hEvJJ&<$O#)JAM4Zx*fp4l9{l8rLZhd$wJhj1C>dZWYyY9Gh zI&Rz>QnCLEg`N*nO)XJ4N)4^mjZ^`L#KsFjme1!_HCK_L%*?sr3A1&eYvf2^*j!93 z5Jre+((qG2bM($6A=}XmN3dhXAn!DxU!N)w1q)wlF`3lJEl%zXeyU}DjWYM*@HxxLnBx+nUNOSO;f(#si4eQv!-!PwYE?JhD&%V}!1GF}xK&Vr_U52nA~ zYr;-!-F~7ZlW&(ew#+Qa5M#W@A7Cqf9R7ta#&Fa8EyV0GQhK z^n1Y}7XnjJ?KmFWu4$O@GS@lT(zmU~-f|G^D&e}*b0=B?}u~PW~)4=Dft26wM_tD5>0xnd+1c=8R zeI2{ry{JEUU0NdyCK+*?8n>zi=?SSAQgSL@5j*bW9YI$_5s&xefGjNhk5`>- z%DfyQPsFO~)(FppRXlC|)W)aV?rML$lv2fmg8fec@#G4y&Hfhsf((>fC^YhUZHFH| zyku=YRq$42+X*z!oNFZYlY9Nn(a{lm+?vtu)Kv5)S_OI_4^!)+9py1uF>uod3bpd- zHp%-`E(?GwrVLTtW8szlK$5Ys8sVPUYP$;T>&tdK`DR}KkZ^r6vyhc?HegE5KD~`k zb&hh`BJL|FH`O*{o^GxQQeEkf*p~T&NW}fItbTy|^7me3i{A~3qn>i?x%r*8*H*d= zL5cCpfbD(!4IOy9RmFyRM;)W>`MV{VH9TM$a)$3Y?7>_#vOuKQA_v_P2fI-nPZcL> z;-Qk}tFO1J(?(-JSw(dawab2HcAF0m?Go}W8=GxE0oT-^uMsQ8naRo>j`yib5tL!$ zhIsi9W{r<R|6tPl9CQtXaRB1dh*& z3vh1ES(E!$TltUK*^_U8Z`}=dZxU^K+222N&j>S8%!ETZH*bgHMPzzuoq)&~UW`__ zK1$Jlyj~ITXe_U?4)pCs`8rYBjfwj^Z4dE$eX(^idk)RO4W!Inmvf#nDpL?{gpCB$ z3T;U?oybU;HVaePzRH1I;X>c(Qr$INb?pI9$DyB-jyf?B$sSvOz{0e__KMfznT=Q;C4z<}vUm`~82+dlD8j;i<)8wbpN3`r+giOVx>4NMcIs zot1<-DD7&O7O#M)NYug`E^ni8$HXbUWl8jT>yD-OPJPYR#rCRb-PK;ZV%=3$_MMpt zLN$(~xrSiXh=-NoolZq5ANpjjq{llP^XR6-cN#0>Wz(aisIwmbXr~0+CXay6nHiofdhT?2?&m@!yO7BM* zk#pV-n+&3NT-Y~8jp(N#x|Zh9grk(oi`OHu=KiTwZ1oxE%DL%18bH!%+;wQ0nWDA{Bo}pzaCJ3yCtSAj!B~58G%v37vCsiO>z817widNpF4xN{+`LV_7rWXST}q=>vlGpE@P?~zMPfT#uHm#~Q}LWq$}oS8edcKI z%0wVR7o+TE_fTK!j?0^+pN1z2n6uY8hSl*4*g_ufo2BA?vM|d>Avn4>50{&~{X{LY z9~AQtGslYhFlf?jZbFrbaay9W*LFXUUl?!^J>KvEUIS7LpL#dmN`m&Y>fdC{o%cx* z-jEZmTAeTI+8TZzmd!$~16^En>808)1|sv$0#&{nO-Qhit|YVs`}e=JDl8ZIJ3>bH z`W_%wb>_&L3D&NyHKA2eI!Bc~4Xcc@0()h=9<=i|!?HJf)z3E_4%F2Lpyz$ElY2$2 z=3p6bc9Ca8v{qgq6nWfLeJ-g+av{y>8EcU|$nPLr;5!bSrrtcDgxie$yP&*12^UiFVUH#MQu~HF_RJ`S^+`>|5j^Qp} z*2ipIY`~zrZ^g<0brN0+EoE6HcDsxVTs97D~~nS=`IyvlP&X`vjW^T zYAl4~N=8DKtz|5{=MI0G5r3hotmw|OlXhy8ASDj%qk$(K7KD0svzWc_PKt}=AF}<% z(rcSfyQW~+L+7DJVx}0OP1ovxco8B+z_>Ry5^ARRo<>0C@|Suk1{E8)T}(3_2zs-0 zFZ!e=ZV+80%ihdd``oE9hptc*6OBzh`PBIbk9eQKX-qo)&C#+F5H)cL1Y^0?hAXCq< zhXB*VXf4e#MSv;5wWb`@!JH8}60fj(z~}8`=F69__B)MMaii(rH1-VdKI?(ki<)NH zWP@TQaa|b-pm#-l4m|Rc7gvYT824n^;?T1=4qyFK>4`4P`HwSXUEt>KRYH>D?>gxo zIotchkO?VVl}QpkjAQGT$6*8jLcVYi*BJi07U;h}lUB?hNE{a2Pp=H=3#i*Efp@l+ z*!x0qHxv%qJ1Rn5OnyG1Z{6VL{-9lEG_es3(WVzft1&T58&flJoglEnfBV2RTD-HEbp5 zZs>^k?*^R@Gl%N>$d|USav6WBJ0inh``V#aW<8xcEN_r+VQ$^+;zvGdW}$C zvj0A@1yAMs=H(L!)0;+({-t|FT;JKA{kX5u7|Q#QsAJgZ_vOuwJTdNMwr^Cbc{O51 zTgXLj3$Ls#D|ZPkurq&1aJEccrCXwuhK^}KuGq^h9V?lO4AOjjG9x!lq_eH^+)p4y z1pgO;Tl_j8^RFT9KdNusdtPNd1aC_GM!Hx z|2_wOe6&^DucKYO73N_^k(BPS0k71VHtq17p3c0E;fjkjwYCXI)pH%+0!FLnNNj`W?}dAx8$FV{cjCSJNOtwVwY=RjQA;#Q=oxh96h zwfzm?!=1%0s$WrJU7o?*(9kCJ3Rcf2_0k&{=d`IDfK>9bfuD63Nw)i1U|Xld$#)_| zAJi7JiEzQSKw1V;>+un}VszSSu--o z`l3P(>q?ALEXlKFjRqsLnt5W6HqiK{Fe*$C**YZ}anCswMJH%05t;yTUT#?JHo7z_ z{fzCtiSuUclXM%0&);j!dA!xQ&}_9{k7;a1yHQS2aLfClJ!ftfDkGezJxC|Q$sbJq z;$iV2G@By}A8|AFh6&e1Oo>EeB{K?dGZur_>ha&#d4x;uWfXvAzUusTm%IvY^N@x4 zH@vTm+q3NG)Q#1Xb!l3PoxZ^La8cp<>)XJTQUBXz%(ndhcwa#`bUB5Thlt*$Nn3r6 z{JcxZ1eU#xQih@UuA!sTG^4`I^isEJse}kCknbz+GTA6Vo2qQ+)zQk^8Px_ALWHsy zbUA@t4t+d}K@;%mPA*q~Eg0p(OZfA^U87k3^Gd0ARQ{5AOZ>yv>No7JLnnh}huD+z zjJ?j=?w7vVly>!IeqbCNy_w3PTO3`lNGV`0V8U!ffnm1uXhhYx9>kplTNFQNHr@_9 zXFfZrXk&m47DuzZ=bK;*t2A_VrQb9GX}@uAx?S{%g(1lMMgJo2&wKO~Ldl9x^~8+- zKHw8rlb|?lPN4{uv8*_@^T!PMv#UnZ9&Ln<9cycP_*}rR9>Fin1Ks_(mEbfGwlRS! zHSrsUqv;;+W&e$J!YyTSRAt_MFAFN2nb%j8MMw>2B0M&wJ#Kh>t=VnzrFuU%`n(;W zPnIaQAXzaUDI0E#CcDF4?Y?EI$jB#$!!Olw*AQC)y;`NLPp`X-et$!hYJ@Jyt{2*p zFL%RlvAdrZCIsKh9d-?;LhBA*`y$&r7Z7NM>@REEWo}oHi;ba8=b#wt!^?lcr=84) zx9vH&-_^?A#`8$jHZ&hJrtFROl{XwrzK7a2d-)n6TivXXXz*i{-|=v{Mq6Y3m)Ex_ zAA(8mEGd8|!iQr2*I|$Uzt1g?m0R?}*<(XFI`7TZTEr>_`kHATw%EB$KpC@2FAiLE z2bPw_26eihdj;x0Qene1NtV=Q0xNUySd_1F{4Gj=i_?H{0-EZqZHhK%&{LH+p}^?; z1jZSxj(RP29~ywvLI6#NN9VDRGK90-#d-OBqMKUG zNKFLG_%X4l5Y>D!kmYw+ifQ7yXjRMSI@;M`Uze*5{87=9`U|I)$2BXW&Zgt+CbZHN zB#u2DDLXG^%wPU874*z}C14e%Nck{=^k}s=@U}_c=YNIox1@--N`_2VSp(GWo$!ct zWHh59lF=3_IQ)Oom-Fqg{SNghI`RWhHjLotG@g4QD{8z84m=PWrlL9w5%iM2IH{2t zGvKGeHWO$)XA}vRhCyeTY%nubA9(;{r`1}qWu(;N`n3<`LpD{PMzQtqrJ9ZFBOIFm z9`5;50-~I*{C3eqwp5 z0nljYD?4@2%BdoBNz}ACkBuL0e39Y!=V;HCbv}>dy1{ijbZ^4>Sp5|Y3Vb#9oB#aq z=LlLmPAkI0Zr`g3$TR3_)mg^;Soa|!U*86xwyejEWrioCGnvafgILsWZYVJbj8)RZ zj40sk!1&SA&7yCp_3`Cx2Fn{xK9SKZK{1n#1hB=+D^5OMqk(?Y4q z$5%Fuf)k9z4-}%OlZq?e-KpHTqUmxaer?=BZn+ZC}l6`_V~#*VR^Qi}y-S%>fIo_7x||em;IHXePVN!IkGf8M$7(KX)3xpkTpz-3 z$c!oxyq3u*Q)NkR!gTR`%kTcRc0WkzLWPu!{bep?rhTAmqM`Q=XuNcP1Tb@II{(=L z?a59oq_P&ZWR_AKLS1ys?C-6l89AN8)yw)4mV;NxhjWD(s+13`4V?|lC?Rw2j_XqXdBy#upJGV@j(#%h+T|?bh{;xFt8-4rrv3DR_sgIHa*JDBH_NoRuOxZsOQyUo zwkgoMEtonoxl==%%93yfGFpH2FwUrXyv7CL>7oP#VbzTx$VC-pkY2Bkn6f8cig5WqB!IU_ z5bUe{J73lie2F8H>qPfkc8${yxO0)h;mmoWtwF^D9cj}cPzKm#r{|DTuKi=DGm);e zQ=%+#z!cOlWr#g`=+7agjEpmuN!t`O?0f)FhATQaW%ItyIB8nWG>rDo);r&T!`QwJ zrrTOul!G?i9P~kFw!Bw@X~Rn&jQ`$SBeyKb^6^2Q$bMhlS|k-O{YKGc@=je1{Qs&P&SCkuvY>!EBghg7k3T z1>ivS)BlFo5*Z2X<(>VSb@G+GMQvA36wI)D8{5#RI(6RU=Y^lIr!+qBpmk=k-k@ zusu-PKQgb>m+r`$AR!eoE$h7Hp6MYY7zi@#UyrQ*;~piz-^f_JO&#zNgXQ5kV_58@ z9=@z7BX`$oV+#Kf7I2plwq#{pq{)DsZWISn8?~G~H!sn~aqGy(-SD)+^k+;Ar}N2? zquoYB_j4iUY~P!Mu9r_t?~YM6q)j@yEb*r@V}?etKmzT;>&tb?O_saGnc3DG->4cn z_KahK0aJC^^rvym%uy+>Q8)qPtKX(uTq`owB_qHga;V%g?3Bm9&;jvkg~ zgx1TDBEQ7m^aI&m3WrI!pk%Y6D%brB6pzlhKmA8mSqQ1#P-s@LzUhmewJts*&e4RkBp=|apX_P#XCR=!Z+U#Y zFfS-znNSUXh1C(VOY`&NTC1q=D>(kYPuzfx0e(F=Pupp+t0Nue|I zqzngEbHlYn%1NXiZr};uB;QDGU@c3y8!HcG2g4N3j>2f}e7X5ycb`HJof`@YW~3 zAFLs56EuvQ&ymK|j}Mwp7B{-#|8)ZJ1MA>MN*T8P_sZ|+)=fo!TlXWsIkEHwX|~1c@*F*9d=daQQG143WIJ-XM9WxPx5YUuR1ej@ zW*?m(NAU{zRRTsUSJcMz`}g^5!!P&WbJWt%Hg2R`%J_d5hl=%r&FB3Xh%B5ajn-8J zHeUX3X3u}Fo5wX$l8WWq{E7(%P0;+iW2#@1oz0h7Q{#P|9Mtw>m6Ko0Acc*egbb0p z<*6b?j|+d~ai@S9a;FO}U41m-{H22Tz09xoI+bzG$%{|weD9J4iB%0zZFDU>gdb1u zHr{MFH+oolR;<>Bz_s)jjdaEa{Vduc&b(lPFOz}o@(-{U`k>Xv=aDyvAnQc0!uO~H z>*7cYwmRbP1>IZ&lS@pGAF+BbR*2ZZC5sIvYWyU(a>mKY5RbYNj0`xWOjnnsN~0?%h7;U^;#NnXMO0Vn--Co5-H7QZU4yV&}XYqgw6%1j2y zF#kK_=K;iUZnwTc3zWSG20wjl3;C~he5m$6%N(a^yv8LJKAi`wP#5QtbMlMk{!$4$ zH(HUtN&}!^u_0Eb5VZ}h;La@&dRe#sE?lbfT=EQpBN!=sHPYG?O&fO)|DmtB>Z2iYM7b$G;zv@2Yie8u3hMYs(W+&6C^<{QJQVE-G}t zWCUsHYCgOItx)mL zj4SsNl3IP16LzrOaf3?vAF>(XFgfOrqL-3oG0@S4Z32A{Fi&`~8+C(qe$%Ja#CiE` z{)a4y^rZ34;oU2H9WM;h)0y6S66YPQ>+6I-1>V~mXBmF>stUVHInbz0A*+Ua{BzA1 zZfk$vrp;C(dSdZTN%x@tOVxu%G&O3$Ep0GsMP`%WV%~p1P=AmZcG6jliL&|f*MY5$ zo=o|A==RSlk8{j=0?IhQ&XgnP%P6)f_(3w#r0Zy7k<7O9K|%0l9y{XcEdVoO2{q)G zs3JX&?48&#P|>#TYG7j0Xdmw$8^zWDq9dd4FM#tcU-#Q&P;X0Jv@?dKog?{MC{AbE zDRdGty*@qs&eiLk3sML7W$@Qi_4ct{eV)Y!r@z!9#3m5d)~3KeF=$|s)FmW!qjd|ZfxJ%lltWWCS$1iqq$?m{+ zy^S|AUk4r+7BH?G$k?U=~@E!U__PAAK2PEdraw0V~9)SP_1`b+qNbp_g-Fm&FFSW zGz(xf%!-sX)-bS_vt4h>c67;8h1?tAB!NeNzAUsFHZi_6H>Hb0epj6nIs%ia&^RC_0 z1xPT%Bk!5fn3-J_L8jcriM9>jng4uz-cfWnr5bD1;1p^RrA<&Qt+Z?`jN8mH z0r0|s`qH>!?xIb<{+w2V#$vZy2pdL7sE#`|vaKn3v{#4PQoFxo9)q0XZ3p|hIN_h8 zXA9W6!h7Rj_|a;?(QbIi{G?=I!e;nY{j_?4lhw3ncdgToy%9>8yrW}iGCtSWjN5TCoeGbnozjLj4 zXgF|I);~2Ohs&(XKYs#~`$6AOWH8p4c)|_=Q`=I|7@xD62AN!WuHECuTKJXtZh3*U z-Ly;J&#mdEIa+Q7^@aj7K+HR$w$viNgk)%voS#qU!!Y2R|2kXIExYvP>^+O&KWtJ? zWPuuP)V2OAw+QJ-uyYlUmCthW>vs$N%SGa;Cp9VghHA|AYA=Ut7mRIGx~_Fbpi+W7 zsL<;O1bFnVQ6_d)5J=_qu1~sL=rDxBlbT9VhTS0)>lrVsBX}6kBv{!78@R`h`Cn8D ztY6d~Z4qJ;Cahw{Cahzo8|CO!7!Rf%?wb_G7U&NP~e&+B;bhBVJ9rg1Y5 ziR=GH`Sb=t-(_jq^HnYBd)#Nh2Fzg)$S8<~h84!YE=%n$^acv?3^w!faQIPn>1XNS z#yI@6sLK3->Gp1>ml-*dUJu8;&60pg;88$>A~DjZl_mDufb-)kdhR#j%R00?5>>5o z?~IF_EN7o*H55j%GPkGhR2hHI*_FZ0_~_&3i@OvQi;bO^0J2FA|>ykU3PV2(%0Y9UQJU+?>h zXs8`%c{|hT1iKJq9$)TqD!XsnQ=MdGdPU}y5tlSu@Nt-%oWACmtf!}&@@vCg-Kh5r z4>xa0IwhPx{zP3G<)Ze8wo7IPY#oOwyTFt*9{Q-$jomgQd~~i>HRWz5x?Xx z7=o+xNp~|BKrebk%RaHx&fLn;NMwG3qgmK((+irpfeD7^sHxf=i75&an|`Sc7k-G55K{BQ8;u4A7%%Aa8wgw5Wun19^gEtK4J z6tMz#3U0830sWH^A>F8#cK70_WCUrskH3V1h#lArt|y{7bvS1#|q_4(CxL-{1vR|He9|F~_HxQ%!CmTqwp$aGwQ zl}zhG$n70e@pn}EH;=gZymIX|9Xh}cmne0sL_GQ&t5sZnd+W{#0++TTSForOXD)M$ zxD7P3SiXu4QM?CBMG|2$VCxB)!zU2u^SQvI5P_d>XeJT}j9ZgRnq&vK00EERg?ufe z*!-hmn9aYooJRwx;Z3T1f9fa6i;-LNpUU_D00e?Z2( zY%$#CwqE(hs^+$v-4gE#!`?Ox=a7K2jIL6aL$x`!C_?(~TF#-VVxa5f{%i7-0At^WB!sr!*VAP26er*}lAiM_Ca~$55u)pPx0F z!PehNKtRgn^`x$y{%c`SD2_U8C;QdsHp!-3%Jo z_&il;_T{`MBVnl}I!(DUt_ntWwsNsW%<P9;$S1&ca+ zuGMv;`f=J03*yu-;Du7aughX9>1jb{7m9voc{no>?<*T1B1kTPU-$doZR{m_il%KE zMC%2q-Bn9fJXb z(IMTV1f)czV?$!ZNa;puqdSDjXhw6N&-eGc|GO{0fA4~8*Eu`q{fg)F@sy;jqe!%6 zLcWBHSPTZT!oU^t@<213@tKMsj1#BpmHW;7ZgRmw43X3NVY7BIg>Lu91TI)sobtlKpBsL7klDvsl3z>;zjB0a zurexZiDByok-2oXag0UW}Xr$A_ zA+JluA^DDp6q8Rsv537sN8UK51(MomSMJI+m>&QH7%Rf)o zW3JA&3zFoTRYcrWKo_Z^YU@Xn?opC#R3-s4K7_gp1Jl;~&S(}>B8>6aIqIfUi?Ek4 zf+JhS=+Bt`nM|$$TPpgNhB>GD8N;` z^#1LJstf}>RR=dudK4o8A%p>`TYSn)-I3u#u$LVprfl_JeIM}|CX1E}L$bYoxKV5% z3!Hy?8jSHY^x3)mc@3U3xFZSC?SO{O#H<*C#7Qpuj5oi#F%gfrfyx2N11^Q}{9otM zjXRE-t-7p-Z z5+_UJa##)5;wj~+);#;@$y8x=(s)~o$MPGF>s6d_qC*wa8%>brzQZaTvXc5Ux(B-R zON_C;H|SRab&W|W%WA8lWA_;5PsQpdQl}>CRIi5=MjIc>Q1jMQrDdU^n_dBVJ7N>Q zMe$gY!Kw7B0&qD)8rZfF8puMVzr(&=#r{%xOcykbja_j>3;bZlKoq9765E~6Cf*6O zxxUb+5Dv)hr)Au&6>6&F@k4yRNqnA~thosDE%L<%Jk_|@9);ySxe(JTmejz?=kuwl zux=lV2lZR15WoF~7abtbY+L&G)=Q<8W<@1emVm}(0*P9%@Z2 zT`qO%r|e9PR=3B$-xpH4toWhDkwO;bkp4k=nJMpO4W}J^`pM}1hBqnMy!-Up-NkOE zY|A~uu4lpegvBYoVRn{kVmGURtESDv&Me?CI23yO_Yu$-XxzH#9$#~OhPTdLn)p7^ zK2>aA#x=F_)~;P#43e$WTk+<*5w)nPAr1_(UFm@iL5a%-hr_gFZ3~AFA3y}hs=i-N zoO>!tBJfQ`gLD|N> zEk|1}!N-H;q8(~?afB%$=UyK$)KMdDn?#b%y!y-;!bI=gK(au0x^@}c*8Gom-v9T} zIomg3)&KV6F$)F>6K_f-(SJS~5(yeoS2uw48KC1)eBXv}^7X8sBHNkQuV&=9@7_!N z)I$q2sz9#nqg;KXaze1NG(y;K&Zn9V4#EyRR4biv@l1MMtpxr-xaTeysSsw&Bd0em zJgv}s8CEO%Ww38w|XC@yp4&$IPLF) zGYS65MMoOj2zhKA?Z#8rOUe5=4QzWzU!YE(Mnw^bL3~N-w;dGeOL;!{EDj944z-mm ztc*p8-uh6AM%1w_8&z*%i^N$|;5hJO2229Z|$QJmsNr zQA+qJ*DwD$kI?BQKZz$ASlfbb_(!VjB8+dCl1jovyb>X{3dCn=RNl?2RnlJ6h7S z6)i4F#@Ro?(J_OnmIwkC)2mu{(wX}D-uaZikdn+uV^Fg`Jb2xe>2fV>XqgmI^w3F> zq(cN=`MAHJ`k|AH-owp=71)VG=xcoF;y9nte0|U#hKK|Px2`uO$>TYt^V33D9jf2y zkHJgi>|0NT{C~!`K;vG@YzZh?(Y?hd+s10svu2sM9KQ>~0EIb_)5^~^>4Nsq z@&@1mTJr8^MjMB>W_ZQzQ?ylBuO|QgG&bSK`+1oQWu{iOi_`UmGnMfevf}~2ZMsqW zCDBh5nsXS|Qy)c8kJOuMbF+HJ&gEAlK{-- z#nt;Hud9<8Rz{SLk)?#E@e7&M@W82Z_-Fck;_}&4W`7^0$2p9zNmu9DU=l7HYEUkb z@$|_|DEVfBGa%T3u&`H!7^q5!EC{k^n2K|VRP3Gu6*kLsDO`8yk^A3x!~QXv%rOQ^ zGn0`A!TCIn$MjVVn!1K2Kdw&td%z<3(ZWv4UkYZ0Z}P#gFG~l>Bg-;fkPgJ<#mOHU zw!HO@Cg|(ubcV$WZrZY?rA;xPm(5~bv@T)9L z)?*39IJdB8!fmQ&(0GSVoo+aPN6FZg!Ne&rlKJJI`1QBY?@Q}!GR8JIQg`amWSpiB zLd-A2ac7&l`$)CGx~dpwGZ2=8LWl~ZtWDR>PyQyv0;mpzhZV$5&^^b|q~i+z`C`0J zJJ+Dz53IBA;-&23&S_98s>oF89r+C>UV1_%UTcNFNUjrzIIBxOX_R*L_#gzYY@iS| zg{}o$q}zM%%%cX%_14ZTChAu2RhiaE%GSo`$nC21?{&A4{Ofjox~(BdK$9?uy4~z+ zX%et=elQbVcf6W^glfDv&U(OVaRdTdO-!PEeNH6y*ywm{0wwG+%n}EB2m|O)Gzlfg zGP7+>Sxq3Z^<(u6_wHY0T;oV60NXTyU>F#(FwQ(*8A4khsXP+5SDh_E{mDC+LYHbF zfOW4L+;MF#&o0imu(&mfiCt5cM?2>v?@6Wj#>eZy@!v(UGUu=AjD=11(0U<}Gg%F+ z+<$Q6BJbmCJ+OR{saNG6OO_RSlVx~$^X=XXTc z-{Z^_9ric)e{DC%eRNvsT@*aMuv~c=9P!*8Ui(h=+}xnhFGXlD)uEjfInc6l`vyS}=&$=b`3UowN{Q9tc!Q2T-F zv@;5QQOe(GM>8uhPQ?^7DICiTHAFd4ZKjpF{FyHOp*$SBw$w+y?jNW+#xo-rJpYwl z)XVwJh(tT5n*5_2Y=X~TTs&GGjNwcR0i;3?wveDl-5j!%i>iGUDC)CkvY z8V%h!QxxZ5z9cIiK14@jq3&-i20BN+efw+Dv~WFzN1P5u!V)u`YqP)R#=f2vlgml`bt#(hWOm=gY57^Z8*vc`uuy(=@H~uzXKb_;gW5 z#)p~nyOa>ut8bx%9Y}76)iVKcpVH0TmSwnM5dw}5hK5byqWncHiiL*sUrogbbFXp; z!x0O$(|;XRi%Z`M4T9yz-ko!Dh)S{oI?EdjoF^K{VC>S1ED6i4Asdc@e8`H4J%Zh- zVz|y7i?ZtKs;Pr8c(QS&uuiY%oPNpcvS|QMX?Ux1>o-5mEXo8SaYV+A#Zgsru$Z>ISwyrgG%dqSQB>%{ZyXrZCATz~FUDu>GZ=$P>c| z1EafG-|eB2GE8v9O#~liZS(^v+X@=h_si~lW^`b=-Q|X4T02Sqa1PV<{DwrkQC%Qy zbP&7lc~-Z=y;|Bgl|gqAh}q5W?w-=;FbgX9p@=PURs(7wi7c z@Z+V}kyj>I7UO;Loq3t8U9qh@?37Y^Zf!R$#r|D|-4iF!PZ`NSba^4O$}{VBl2JJs zoiEXIPgq6rku_~)%8=F&AE3&N#NiTT^d)jMzM$YU7=F& z7+-_z<|12AW^^^!WTYzBTp1@kzB*1{J)-w10i?~-fcqe=xxks>vMTYz?k!WjM#<_Q zuMxa!Bn;7$F-0N?QRlWb`&>5Oj@2hHR+M()j@^`~k;kl`Ea!x_BLwmH!;>cYt!NHav!V&wYB)U=I3yro68i0Yv6xKVnP? zx_9v+R2SOgqmJDKkN2C{Omv35yY57TAk8X?Sg5o0U=#LI;n~*4s`Lnd724ER`DC^B*^_p1q zlRWO#=<0`m-=rDJZztbe`Y0dk_fyIak!BwSG4Cb^j)GL-+IOKf&A#1HRpGVjS>ES%>$6x{r$USrQm zSnhaX;<6-o;(a4v40&a%Dg6^uxAFx2s?g=0FfS{3zw^wi=IBxU|Ux|T|XnCKxGTl9XU=g>3s`@xFKnuNv9#A$S~ ztb?-Qt2cH$^4Mnc@g;RJd1LxMg+|?oU3#*u{G+&eN{!ApSr`mP?U<2cWH_MFrUS61}4n~+qXVza)+WTj$UkyXs(*z!mkV< zJBN)$`c0Xc*>hDq4bbmBmY&pyY8Ecu_e2hSf6FqYWXm9ra?xL9`i;M$fJ^%)DQd*2 zQ~NbIiBXF+&0V6l3zRT;6k7cdZ(NUx*siAb$_txqn?^NWU#S}yn!e({UbO$Q&F_OW zOlA;u?w@PG=Z`poJ-OrmHGXJi*I?oO@cJ-DId$-_iry&fokKSK@>5akTD0+s%kI-` zoqhwFUyOAqCRS#8i3~Q(p{IoLmq#R>cm!#^hR+&Jq&3ixP?WW07|jTBsz)h+E7cW^ z%RNd3qogM{gt;#YBvjykBVol)(0}d$S@ArxTP{#Q!=UM`2zd^#q)v8SA=(3`G|h{} zmQU2Br{yRo{HM|d=jdzBnjzOUj@2QDeR~%_TQsDjK{kwyzZmD|7d;15x66E2PFc;2 zyXaHfVaCvD6mIV0=iOBC;d0M1W%{DzhD|KoRcu@ zf86~flYD;^Ykmo+XI#|+&ONVkd3kxK_)nT+ddJdoKAT;w<)m$Ltrpt;YaUE+pM>Og zMq=%-?(^WP$Mx`Ej`Cf^+AnKy;vky-89bULQo~8Lyo_xquCr2=*721(3$iTDaB^nM z4pf4c!;R3Rx^!pQoA&)Gh**0$9xIWWi)kmnOPf`L2Jk*VeXI3Gm}cxXy41dsg%Q!#3&HGZ|?K(h-rrVf`98iTg*Mihg@FK6w67 zp4z8DYxZh#Jy6V)K}1wp9oydC6d#*oVI#-3@E>xRSJtE5&_%uCXWNiFpxuWwngve; z3y{w3dtO!Hfwo(5t4T1mG|JHHXTT^HGO2xU zRd>UnT*z8Q+vhx)m({V1otRGslOv)};*~uBKWbx!6PMah0iW<_))} z8;E~agkl#1oF2Z?8GlO&ZZ^nO4nE54o>U@D+NUEK0o^FcfZsq4^#Y^M7 zXgteJn>emlF;^hJ2wyw*>zSQKp6h+HOPku^#l;)Vg)>^tLaSR1nAM!?@)rK<{_6`( zu62()t|9*t6MUA_33E-UR?hrARl(aa!mahdcZ#hAe^qIlYb5HnSNv!L%>-gkFHIWa?cu8FiiCA_irLlO~VP|apm zQ%B`p>JY6@9}5KR&XX}|s|-6dR*#pf3SN3>^Vp85M*96i4mpmqt`hY*=*Srd;+eP> z8u=#x4RB@)rz=U*)TTjijyNav^MD6z+^^N3d-4~^(l<2|U#u5iebQ5|k}V{yNAyn? zMC*wn$a(6&4^4dw?u#SjR}** zv|`Clfd2ll-&-xqpf9Ct;I+P5E9%Wcr?HIIy}v9L(SXC0fBKV|Pnl=7$qdF{H?{b? z`KAsJ$uEZ7=IUqme+4&7oJ>B3(ndr!R_c8o*_67iqxl4#(OW*p)q{#Yp(syuWW=kw z#LbE08%(;6cr2QKHI_$Owsu-DEnj3bx;#XNW-}aa*F#4lsAjPyCEt}Q1MP*8l|1`6 z(V7sPS?7j*e%=pg4UggTN#qZW8lLrL??97>KlShuMRssJ`cjyras7;ONLc(2)UC0J z+6!2)UM@DDO=l`~Oay-S+gFz5Z`nOCOCW>9V;qD}n`BS4PrF2$*+re_f-LdnYn-yz z_6kS>wey{e^XKW?elncbyDgXJ`zMyPdr$hpFBT_6*F>+koin$Aut@wG^L4J-+Gb3ksX0_SGD%nA{R?HG};O670qY#&2qlbf97$y zW5nu-_)U4aInk(7VK_D}nK5q{I?CcJ4>p#FLk$F8@>K3$?tE-OGnL#L`;2<0w$sAH zQ|_m1BXdOka&PqBEBlU55*)$tAO~w``Ih|8=XX3yWV5MK;R%HyXroMm*47}iQF7mTnfX1@<7Z8scBR3$Ezo``PDYDxmNNaNKx*de{Oa%*Ax+|h{k&edMt@;a zfgdP6_P#z-H&Ec46KfW~Ixstx{K1A0@xLC88SbYISU*_bgn=;Np1wD~7+0SE>nFuR zK>3q9EbKcQVVdI~ zQg}K6&V!xng=?kM<|BPpD$H?3xs#acj{j-=DlX@Wbx51mi87li(w{(!sUA&e9Oi=Y zU@Q}k^ghG;UrIJxCr#STa1E5|x1eVxBI{g}PhW|F{$~rPF&uh(erwjh4iZwKO>O%` z*uR&g2JD$^Q?HW%E6|2T*7X*oF<_ z)Qkc*eVE=|8(HteJFU|(D1G%E!Jr=xGMQ0V{tL`}E|;TVg*$>P$zrl~#Pma68D~?3 zX~Gz8uScy+&g9@79+j#_j~=LPKe?vYb9Sd)qguTt;zz+V-Q--=(nJKFH(;|%S*TyP zp4Q%|ILt%o>X)4T4p9L%y9gM@$T5o$S(-tnq1uGW0QI;E9cLH7N*Dh zgwwl5@YHcE`N8d>j*c&LbN;#`HO6T7o6n}Dqk~rijEs#%%x-8(1@s;w&zmq`Vq?i- z&;xKiP-S)XeVGBze>JST&!}BGXhMEb;U8P`;-&*H(gnOB5}Yl2`%d-9o61(NwY3#S z?$UOz0;Bi-k6q`O3zCC)&0C5Q1P-D*5vP=0osD?XvgY|xgb&uSan@N^Sejc z25is~Fp0Uc>VT%LtaHb>!|rb#mv|NSCV*T>N?TJP9Rp7o>sejtaQZw~!b=b5-CGO8 zmE`5^L|GiI3fq7cko;sKXsC0Ndx#^VFfZVMe5xpg%E|?P$OwbsBQ8E&GZfe13GyE4JlBbvp{lCTGg+L;De3>f?) z0PdSun|}T3UOF++g@zgkDlR*cFz$k|-L~;`Y`PZS|5cWDJQd)s=c?(GL%vbqF8O%H zgP=HtZ(BGo8aDgTpB>Z|BrEed(YkKe>H55s+}p?Zy7<7YO?&UFi!T>@rJjw41I=IZK#`)X6cVJmn`rVWJEEITxB)`(gJfCG-e0Ve zVFOnkv{p>#X)ULfX6?Fpy2UC^P?P(D)b}G2(&rq_4;LT5MEXNb|7t1Y!rwzIm-F?) zi?DSb$%)Msp#{~)!RYE?#4Qnl7vuUpgKvK&W|HO6Ko3OJut_iZ=UWL&?+V(dCOUZM znkH%x7Q6F2TlqrR{_Fktbmz3MSRtr?sk)DwyIas@zDem1 zB3D%{6h9zwvoz^hi7jTW*R%83DVD%x8mVm0ZF-gQs4QWPhq4O-7gyGLPUz|!O$I+; zr8K{#y4}R%kxx5-P(AC8;^6HB2}riV-H5*|9tA#&gTXsJ6EKAjX$+neSeb}nzOR}u zHpdoP+wZH(T6-~IvqERCnjQ)9TwBbB{PF*SSqq}=rihSdIjIrHrLb2QY-~Ht7ojM0HkK#Yeq_nH6 zRPVZT(L>e6LAsy(?#SbWwgQ!AUe4C>nSC6ysU}wv-#G&nV?<6Ai){6C5Gm!A+GajUQ55>S6K4o*t+<^5K{K7-*LTzDKBL>=e^Hf zgpg(%3Qms&HtN!Fn-0$T6GBz8?+Ql_Urn~3T-2c^#2h}FF#^N06{*zWFK4Y^cOGT4 z<+Pj%i}?)NMYx$z+#!hYm;0ZNGG=hg;Z*>3!Jq2L$@$B@0ZqU4aQt24)bCnN@^`Yr5`uau`Wse}4sM(WqN+dfow%Usj)=IW#A)qfN;9iLD>eOHdL zW=dDDoZ{^>S`1vAQelz*7JV(l&zh?)lcSKH_H?! zTE&jd3e~fT0XaVt<(}WfcK#R#K@S$5oGozt&wu?8vU2CzY^?Qq!|E*Z#fXewi_y)@ zm$B~O5X!FhuJ1+O+{^j%El?Q^WW;K6=W7gwIEm^RX@v-)YXs`<LS2#@cD+BtR>y$*O+IcBSX(DR&KvXyxj*C}qV-*kNiGGL|U1WZ3B zbYyHIuPw0_U(NXXF6${mv2_okbq_@S0dfejCO90l+7+9Ch1cpDhb+>O3~xP{M{qb1 zZKjlZI!nmo8Xf(9#`!kYCSVcHh1*?~1-cX#y|LkAPjW@&eyCO@2ktwQ${=Zgwy%zM-E|nXAmeek;+t*sA@#rE8c)4K(H^!-Iuu$b zskAg{!cB~rsra>fiYL`Ab6fh2=-*46J|D0h8o)Ij+}S?uA+2XPVY@)rwmdgG8)a5& z8hK%MQ}$piCpqVeA!pmWxQ1E@9%mLNAo9(6w>Ln@0inHCkq(NJEWx>}c#$v6OQYa}7|mDf{hnDcZ85N71YAy3x=< zz}_gwcsM~%y$S>ux@H5G@M-Ppp6F#M-abhMz@!geIs zGA>$mA~Wb+IrIZuE+d>Ix@=a-y-eiRUd4jn`IH&RT+eK79MwG{@=YGmqTM+}llQRJ zq6n>k_SgF}F&14%8!Y)!0`O;=Ie$QzlC_^?H8{PX)}Vqf+ya9nH2mgTOlNjwYwsPi zL`ZVfYRUvDYxS6fkNx!w*ieHU&4JcQABs94~hVvP}Lq_%>U#qxp zcQ=8Ij7(}vtnNzYHl)7nPhe&&4EFcbSY~e(#gR=Ygyr5j^&$cjUR!6BP}V6;q0~EwvSB>kFpT^O;1bwG9 zB;e;>wdv|&c`W~}&9kEK1Cy8&_AZ_^we4tYJOjD%u)O(cwo<|rmv91>G@XkE!W0GI zwAbSgCNZ#lD+h-+T?rg@e2Oj(=@}(@H{P};&gfphNOxUbMw%#G8eUws@H{CPHJ!FC zrJQNa!VGj&mvqcYBRdJLUK~46czWVob72p9z)hx5GoG6W;jSD^u^tX`Z2;B>ha|4tklE{^f~nT9+OUvXPS;q#5qH$x}}MI z_Z>J27SKEkC6jN}Sdl4Z5BVWta`5+qDGsiKs@=D-c|9~h@yMhntHZ1i*4m4TiNCRv z-GE;+yV$wr9NqNdpM8EYu(4JpyJzXI_~9~lw8_`)B{3^ff9$y@5`h)Hd;Rlw3?=?w zyM<3rUGDosL~2%iO`eIwGK?yHD^Afy_=Md8QM%5Y_*Oe@$!9SRcwnceFB|+Pe6qG2 z|FUdX)Fi2vH*#@5RhN6D{R+e33m7O;0Up{a2eCX9f+;E5zMHm7>ELh3Dq1y?P)A)T zAy+k4Wuf(?wuuU}5TFa_AfgLic+8xoh{pCbY)1aD*Y8p6TSo+k!7>7-NzJeUamF+S z3|qW}+}Z~iS}Se9^8fWqlrS4%3u#u(Q(~fqwu(7ge|7RW6+mtSL-#6XVB>5|gq}it zNHk1oRPmFBDM|Xi7|m?BWxjHkeDGgz1e(6ya2QjALUSFDS$AuTZ_2fbyg_{ZwwXdr zi4KuY3S!69854|_nwN4u))=F2)KeLz7Z@|u6>DVmLS>x2X4wvX($p`LJqZV`zWyxu@M5k%&TTv9!-hTq^1^ zVTKcU{ZbRt1CV;XRLF3?+5yGCch@BC5s;%Q1UIQRNyWd)>PW1 zzVue7=Fqqn7I3WUU;heZ-5AOSz*YgO>MM=4yS**0DSE=8n%~@2?X~1KrzW_S_wHI4B6Ayb{<+-|^RN95iyLyD1UJt=GBsJVg zV4=OAtv9+j+ z`leT)gQrJ81c1KGQLm=E?Lun{dGr3hSvvl#8b}b)bdUe{4nu|I&7yfC;}2Knd0+PB zGmCFSFK^hIKisr7sjwmMe4{&n7eK(tqxQHq&ReY6p6a*!-6-_rBBS)%;`$!G((DX1GX`OO;MA!Ar{D_iworgp-*_jG+sF9k=MbqGPjI(;~3OrmyyOJi1j94=U6b zb-ugI=ZLYaFD6z!wVR4<71-S^uhr~9Mh zYKDh_t6daiQtF;N-)mtxIE`_6LwvL0_)CQLJoVJ}#1=q?+qqo9q^^3l#6*Y(#~VI- zA{-OAc^4V78f!qpJZNo)72Th66`Dl2Co zQV)BYD=bjGS+6Ox_oevz5Adw)MXqczX2EM_T>dw`RN!UYP7mgK%V=E+UM@)x^d;_} z)5F&Lko?K^NtpD*!TCgK;8NM zAu;Pb{TjAEF|^$*1!VHPai;CNyr$X1i&<6-^5CAtyXMpsm~_nm!C z_j>;bGJk#@&`SO2(q28=*zCKuZGq}Fmf5KMhXi70V8X=4DZs8P5&O)SgYc!$Cp~-V zC#yIPWF;&+JONwq9>FY^J&OW*b*$soiUiUNI!|oRMN%)&ZBizWfH7-s$iH2QE732X zpaVchM>OM=D-aJ2@dS1D9*;G3sh;07R!vKT!mt6M1l6$P56TE;z>)wn_I)0qA=4#_ z6@I=}8}7nykQ$Hh*Cd*`R5WIApt$$KuX3``?-pqA5C)p?8`Vu(?tD7bx>s{^kBpyKybHGx~em&T#Gh zI0D)^!Il+4uKZ`h{g}>eW9)=v<#x7k{Noq7eV1A0xotO*{Lrl3MOQuD zpSmPFz`tzBPV2zt&;;u{iIIH*RB3r8e994bnlNYewlW9a0zbGJo2D10dEyf83V^7o z3X;rO^%ZBI7}x2wjv>U0>2^pX= zz{a?&2Ip*?K|dXC&D!P^=so02J^WBNOT7*$Q;WV`&yJrj#n7xE>j(-@Rv5U$&bqo~-5BT`psBAd zdonD2UVVYTK4hlf!{bc+ye?M%~wS0{B1tlPueYXfRd`@ z$dy%YTCc1&Z>4TbXxp_*mCJE>rXNIMF-NH-4stN$2}sT4>&;(I+SQeYu773f??s0F z7@%>e{Arpj(lH!09`{n&S_m?mL z9^`o=3TGD$nXbQKDctr5u)ee#DLT(oF4|2wNE_0qP5gGmPaPbe8wTB-6?oH5$EcBC zhPSIGU;awY7Df?AU!RdQ8wY=+n%GeRZ6Z8d*jJ;vN{qS9lJUg0R_a&+%N&`NiVqHbrxlKNm&z?|^MVc%Yc`U8 zOaW(|2m2SNBY^mBd>TLpVJi(uw=M%tiN|uT}8-*i^}y`CpH#*xGGlYsEC5;Lwz0 z`Q|is(al0hG^!4avW)Y#xKW(O`th-j_EOzDdwNa;tk~YY+b#2i!RtjtboUvx6LkEz zso4-$5Uz)}lGo;u1a`Ab$mSO&nGu4+RFFcMBX2stzg&?GPW6`!*J(l+{lN!uYl;9R zK=V=ajLz$xxlg;Gtk^I8RE@}7)C)Iz8i@2#59F<5iPzsqRVBM4GzMtosGYf6Bw6)0 z`dd>F5&+Q42q-Bwm~#Jbo5@ z)+USae7u=D=XICz2>y+EGl17Qt-r43iqA{HJ*e zFX+MHlaJT07Y-KLYqhgsJd|FC6C#*I2Iz`|)9)qYN^C09|M)-xmeH7jm=Xb^V?Q-! zqUD=(c{DapPd}(Fb4Q=eP1s{65*5$Zmr;*K#>)v9BIHWtiyp_@Rwgmh-??M3H9z;M zl>wl@4(iod6S_@`dI@W2UH_DTVBT@+V?kT|0A?AuGW>i@8!}Cf*eB!}XIf z*}u|xE7M0L>NymvJipa^I_!(|ehzOAKC9C(TpNEj$}L%(iGOKB3R`-lWn>gou3fHL zWgIGokO%+l^2!bNCFMdg(Fjw>aHkp`uAvI_=hYs};EUyBkwa5tv$Y;F+iMeYxVeQq zeUAq+aTB^1q`-}PHt!pnJJ+B^v89=#_JbcG*i@kHvE#atkmDd;r^h}BeXm?O^Du_9 zN&_dMmHnK-wwe|`ug&aD#_uNT6=+m`E@&G*r}nH?Pv^EwXeOfjg40{y*1?lGr;JNi|gme@x-F}%(mj#YKVZga72J9e9k1fA7yX-V~neDcY? zmF@yJfD$wu9A|10{$cSE!!Evsj&(-Eonr{fUVysa#J~C-6bUl&k-BJx`BW%90Je`X z_sp;cwA-qWbh1Xqrf#GX_v2y;ILyNL{OQvSLxYVY?8;eNB`j4(6n87KPzi96l`Hhj z{rUU8XW~dg9!xKf$b2|uv>kGdp6lrX_g{%Y>YJ?~cuEMs1? za#Y~Rr$5VjLX>!O#w1n{0-?kV*K@RQCt0od5QHQ@j8Rc7yP@%+Ay>YP`os7uW^#=9 z1S1L=E41x6RLgAs4{XkVAGHSEcNr%V#NE+hpm1-xCo%~srh%+bY-rDY?h?-9L%Y|A zsQ-lh&DWLr0G!@TAv_p(zY$oj=cp3BwbTrcOE%tn${Cj+M-#y?E+GplkO8wm3c5L# zYRI>8GJJl*o;hfdm$HkpiP^9`Y`_@~3vbQYhP^RDFLsP)v?1*Bgdq(g=8m00M*^s7 zz>mVdTEc)qA8a?+ZOGY-x;>aNiEFELcUYqTbv&t2jxrTZ9e)IP%4R$ZuP$NEz*r*q zaDss;N_mv$?$#jDDum(o1rhfydWfreW&^<@zkAO5!*_GLQL*T07dn}Wa z?#c?-RizFSs2#J?z{m%Wg8*G^o|TSc8)MQvf+?5K8IStkc-AxxZ}KKy)YRO6x4GB*likyucQxF}PFi0~M_5{L{2T7eraC})$pXp(ZbQQe9g}+Q0M6K| zDQw!T4gi}8k8-`)ooB-JYMg9YSlFJqb+4=gNTaT$0w z%TUPp(ZAl~39Zc}lP!xguNcioaXz2T(qa=pie+`N6b07E`6O&uG;eC6#}pM^H}PVI z;?_*NT{~qfM1$Ul##pFnU!&Mv-N9NprPqCnwbqdl`2pUJq+rFsnKOYxHoGD~EiM$) zCZebRHp4=n46Uu5tz<_*Q+@{{`3<}H`i0%ev2NqGcSkE>bd z=#~c=n!eOX8T|A4Hc7EHC*i&a$osdY63g*(bpS=i^F+Bj4&}^1d5QEWYg+edM(5Nl z+gD$|Z!z1`=IM3~)U8wj!dQ|<3{gB2p3O~b&BdmduwzWsFCVXAQ;wvDxK2 zjl8*7`M+?~qvcps7$;&my&q$HvLE;N0wx>|6Nm5UzjXT_Ie0%DOW89^3O7OSK;O+Y z+vRPhD6{N#nOO6_3>Z($bOac0ByR)&t_H{8(aqWNAiI*yq^8d;K{qn!>6K6mu~Z*) z{l*@2PIG4Gh)}$igqGy`1)uliy~D8{hidWUA`oMQLuPe!-zn3-Fjhz<`u-g6qt~w0 z;4k>CXZAYVI4_h!Z+&|K=jrcluI4{mCy{vXTmCzC3=JfcQ1iw7@_({O!;*<~!R@?e z#A1NUn4e_fHfT%?a!FM)-ZOD}J{!mtIc7huTm$p)SF(CE1Q|}m&M_0_>3InK_V27; z7~)Ymg$t~+iY(CiX${q`TbEQkbDfJqn`S33*Iub;QQHn?7;SY-d|sS4cN=yVxxCTqAZ_chG)ywXW4G z+?9DLd(@WqTJfXXBGrYWGLGGAq~7YECF}j0@2R?InP679h>!Qx2`?u9MoM|Q8t*5b zeI3~ac>f6uJShkl8tLW*fUP|Rz0h0inL`xhlUnH=PSgt%IsmdR*nS>hmx$ED&ml#W zl3|m1qBXvanDG~*T@w7`N(4v7BMa(jnJ-|oa=aArl#K_B^7VxL)c{6%`25`w(3{U%Tt_JuuE`q%Q>8@-TQ>!>W!L)QalyJO<$aiIy zta@IuB0Bv`Jis_}tlj=Jg;~5|%@X-jkNUE{`KNA&v}kH#3qDG4M&>od7%L9*4$<6k z9r$-F4B(g)Akfzvu~zyVrQNunomyjP-*i2EgMNXnqCyA zTvBtZH_a1YpTdQL&!55B3J>1D>)!U@JKGI$rIfrp67+bKld^5G1sy=S9(|y==lEya z@J)OlPp<5fZ7&D?h3LVk7_Gjy?y|&veNEeG?>O<4{F>!!QoGH=ejnw>(;G64d>o$f zwVZ9<6~ojg+>=__-1>Q0xabZ~DgA$t$b+tPnncNAypqF*%>#|1_zsE(C7F6QqTZ}{aE0`0%q^{pd4`^}Q>GcJ(1<4ac8PYG9e|verzwz~87Fe+X_SXP; zIT8{AR+ihLpD4W|Z&zoQ`}Y3A%FQ8isznc`h~mgQBRgNteIR3u4zs7YxieMFx-4eR zN4YP+yFRZciXY)9#>3%4GD2T>J_ zrHn$ijii-)BP~Bk2i3w*6;5?VxAf|GKJHa`G=v9ccUo0}s59=x_&m?f%p1 zB@WO=>SDcC}v0}{AKW{AXG5*!LeQY1i&yA&&s;1IO9y95m`B}jqd_T?F$opHu^pZom0{$6|UwdR^@ zuDNXWQ+KFRAdrmw)=)jc_F>Ge{+~0+d-;aX37qG`DWxnfhZq-s$8W8d$3p?#i`4*2 z4~GeJgZg?z=h@uJHEUh!pnuqBGO|bi%b)(=KUQ8pb)2TIbCw!=DBF{XpiPJVbLOqg zAC;BHl2@tR!1&UaBIMw-R+gV5q~^CYKtfwdLKi+Rs=N}X4}K!53E6~iTo`La;7+N? zecKRrPMqA8?4#;m%O%0pZo>{#8C8ODX4xuT?Ff*ox!Tz$`lM}oh^x?*tF1x`$uE!; z;~rq=fu}Sb4Iz@NNat^N)MSEXeg49MbCNyffi=wlAJzcZs@!2?4G511sq&UGAj9Lz zuN#+n36Yy&GD}kWGfC{P6#&I+zHPeGce_3F`s^sOaIfip5I*E=K-5%g>p9=4DQYBjOr9IrUB(?gk%fUUmIpk$^|)p&R%7Z%gg0&1er4 zKb@ERylb6!27z(06kApvQarwl17p_RY%41adLhLmwlzo33G!5{12z&GC7Njl4FZFq z)?9@$hHodwl)nsYNO@BVM@2fT?_(#mF5kokE>8!)w|tQKw=th9JkP`J)juvv^JDdK zTOxYfEk2xhuKQd_!Z!c=XQRqJ0{?jx|NB|}|L=wDQ7nBh`kvwNt9|U;Yt}1Q1~N5u z20%o4n6L20!;KR6;w6Hj;)PuwKp!#oF&UFq3ND6!+%tacfm8c)EcIXr<#Y8^o)FzmRx}ufbv2_N_K#$AI3$|$Nn>kOW zdn&0Ytn9?4(|UPe@wQcW_Mwxi7|O^HAUE?d6h!B@JpQp9#~EGH9A(vZS&O5++`Np| z_6suDYOo1lmExI=v#5_65=YQ{;Y2x#(KzL2sU@CUYjM>ZycQkxp*x%emZDnXBK0B5 zq$r6dOo~KU_zUh=?n!wf+kGrDs<~8zf6%w7c8VAKXUZw129(}%v0^_2*Us)6TFRVf z0u+3K+vg&-Tmfx9QK<}KVAcX3oM^<4dTsR6|0hKK&xbK97+gL+5R06sSblnV><^c4 zNC9h)ioMl!opsA_Y=d~vkq@c1j8SmJk}76cMjRTx`q`7;8;>}RHP9DxJALCF z4#Tj~&0R_6`ecFG08rz;q4NIrw|&1#yv4rpk)+iD{*JG6nxZ!6`AE5t#@a%YIA*w( zL`hnB+=9oNg%9^n5@%KkfkVP@a$aVofcF`_G3zOqFeZpAQ#sd2H(8=%WRH6BTFYPT zc+Zd{(_v-|41C*q3SPqej8gceU?FLylGyNUI(>D0edBHY5@7qeQG-||9jO+PsXz1?{?a=pa@ zp?DSaf9Ki%`4ZFdJv?a}$=@z_Tlgq={^KtVDc-8@sp?>e-S=)|m+yzBxw~H7FFMYC zVb*sEVV&cBr~i0@av%<^+gIvd%~y1=09egWsy%Pmug}A4?>{r07jbP=?a(jg-jycO z9U}pZNOe0C=$P1y4t7{7+;X~uE+*E&5E!H<5tW}9^EiZE(rxhhbDLeO+2@Wuq?rAt z06jQRDFv2z6D9~z;9kKx#{nf&4%{>)Dx0^*7b%E+PZg+1b4Wzj~ z)RuBP^&elt+7@mJXZ@9NlQQ$UHt)QRUH=Euek~R_p(?OW{om5=e{OVd#^)sdzd|wh zkq8Oq4%Dzt=CL)jI()Vvj$e1!74E>tWSd_4r!wnp+Gn;<(XAyhsC$CR3x^M`H@BB3 z%;~S2tE_=+q}xAWA#ib13lyE7tfO|t*E?c%gXu;URzA9_YJCY1KD?7T^qoxN@zc~( ztj!Q#9E0;*1$p_f=$Z~g8G6#h!${P(gzu+e+UPIcYjF&vm*MYG!+7SH{ zz8Z?mthW?Vy3L;Dh6R@%sRN#xWS`>s>BBftPz8N1hI<^g#qfg`K>HpA?(W`|JI*4+ zKgBp-WJ>zPe)gK8hyJdf5-M#vptnK+=~{oZyMcaBt4FLMqG6QX{YbAEc=pukA$584 zbUdg?3(pIW9W}4R<%Q+_7S|Y%SrxadIwZ27zl(cNiUiIqN9LL6jrjeL@Nj6a7uv01j zLpUA$pQ%^$lFF-4CqL)kT7j7(=C>kgM8xC!UG&DW%$ziCwK>K*+I@>(&{f&wxm$1} z&SZp@NBVq&>MBO!Wda~Wh^fnAWo6n`G3bq7u;k!w}MAk3e!PUTXpABu2Z|^o3hLbkIpf!WxNAbDT6_K zHR}p`j3_dNi%9qNrwk$9Ru|L(kDsCg()XI$LO)~hJGVwYN&#+Y2L!ZErnpMvJZYQ_ z7G#xMw(oSc2`#y0gfjhRM)}J$KLsQ7f;*>OiSZn znO8>4s-?E8vc|Y!U0A5d08uukiGUXmGnL*a4e44fNrzBSIf60t_8yIza$4ED>J}!tBuN$tTn=lLeXZmva* zjef+f{?U(E4Xm6U3L5_VsCJ~~J(v;GP50Tjyypodgv4#ArvP#~1ICeAW{2eNCWXW; zlS9dhO^m%w7?dHTOJCZ+Hnfu=@Gg=G|Qc z!-WOaQUknlZf4fV(OGii@cQ1D$&LF}z`tfDoQF!<^vYhW@$!a?7O0)2T8?S5%*BO_ zG$d2+ZnDTMQe1`tz&v?(Z?E97PhI8GHg3=*h9KwLetFYQ`m(`|nupuL`OKcOI1$vt zdoJ~(sbu1FoXIJG8gEs=siR;a#IS(5h>051{ar>{V;{TDL<#s|e8AOA+A`0*pKSLi zZLKVFwOglDVt(o~r9_vf*-}9-)_xuw07TF6PzQ8W>vDP>ViNOz?6a`fg+do0*$s|z zS?G(+zODq91FXS(^O-8IM3ijM{nc*ENXZ2ARV@Px(dz^;3F@##zcG1v88NR_e%!MP z<_~$-T$6}#M{A2x=z=>lubk#;eH-9N|DR4_6e(2mC@gs_yy`-4?GUx=wXG1*X8e57Zi%@;_^#c0@h2onfB3= zk~8(o#%D0e1}{cj$&jUk;j5PNQr3=cSOim}U*?yxE;6GVA*E5E$*HupGn%vXTc=kH z^Y4+Pfq2YF0Dpv!@7Hxai4wWLL+8I7UrM?Sza(io8n~jv>Ub2G4-5`zH(lN1<_Q0# z7Wwt-DV+nsxf224aof!INp=9QgfVQb!}5SzIp&3ynD2)aG8}bC=`gIv{uO5+LAf2{?`4 zeKef7z1nrk;(#Bcq5bJhcCPa~opD@R7*P*|xpF|wRHC-l?TbyJ>P}if#=LXrDZYa& z!imFpkvWI~K1)f-heP^lmUQYX<^E!O_0xxuzdVQ5Hv7u!|Cj>9KJEwDQuJz$?+^-V z``eJL6KUasIIjn@b$^c#zweZSH>4Hr*hNxMrhka)o|@l=TDlv9!WfuYqb`*v@EHC) zWG<7W3n;R@leDIBL;Xqr@=r-!@Kgxl4LTzOd}ra?bRxKA!NKnSuUNC4;^VYpTI_4$ z@wTvcgr26E!_nM0c=m&2o*b^8X0p=CR%8+l`UkhhIVs_kw3a`4LnWpzlVvEWe1Eh( zszV)LCVPgjyrc&mSI1u$&r2NUHl}e)FE$+%dt2*375%IIY0*)jiN`M8)^@+ZUZ0ab z4{UIjPR6{5C>L(9QTGj+c_8K7X7y^cK0>vmgrk5No_WEoyl87mj*@yMD}@Kx;ieXB zQDlZ!4|Pc1rPit?DAgcFyFrlFh;ydg!NH*?*YVOEUt+|l-o@ywm1uT8-{XJJE2c_Q zmneVnQmopr{(ynm{uBG%D1`O-%B&eBC(71(IPl)}Yav$Es@$X3_Nw6mqzvDA<)6==!tNGqCm60YtZkZF7 zOkowlP2hwNV|Tw-6ZhU^Us}*^3&&jF-=*IAQ!Ovw)1Kr@f>OW#S8@moa%FKI$=#Eq zsm)kA!dMs7evsGxTxyW*qrxGAtTAk9HJCeXb}hv~2Lo^-=?UmYG-%otzglQ^ZGKs# z$&^xJ(knHo$k64epb_(t0qi(fKow$3eUWnK-@I~S+HX_Xx_Cgm%ylJqtFW?d@!W1- z5;c$=UC+Svpnb0Lgcq>ov+&PGB$|!`sy~CmK4?DKYPzliYeEvur7{wnXMlB`^hd?< zgOvj>TnPnMZX3Z!cfxg&*y!sXvk-igpc%5NIeI^fQNsUo<$x)T5@)Lqgb%-WqjI7b z*Xkt!am>1^?={TGTKTg~NU^+g8{#>Q+mQkdXGFSGbXSx13|;8E^{cJgvda9{+RS37 ztI%;emRCagU!`We;vUsVC0)0S=FISpMl!EsOI%{|v{B6r*{DnJvSE43qLJ&fX+mlS zd)mf;qsqz(E?{-swdCE<7LOqYy|7W$L5wGtP***S+sly(|Uh?Nl z^Ibjjo}m6^mu1bJOZu*6aiZxYPSwlm<%b|`yC%9#`4bYFnXkrKe^#LlS&zrO2r`gU zx+2NUEuZk)3#17l=$5q4hJ)bl+j$&i^s{NU4kV2g6O|Th@qw5)`6vhGvTmr4-agSxLFR(ZD zCunEXx{EhGq#SK#+>D7bg=w%HA$?B4U;K$=UFCC-TBGED=pUjN{qosa8??Rb)?FuKPVRhLcp^BaRY9yqI^cA9bn8 z^>PE(jgdr~M*$+O<|QJu^_igEA>3uJTr<9LExA~*pBINsLjdYzFHL^Te!t{I9h(X* zz@M7u!vDzF-7R-N>GHBC3BGGY!W9g8cDM6Z0vdzKwxul$%Mo~mHd9Yw_hXysijoC)#@a-Q>qb*Em4XV z>$N>I=$+lyr{>7;azUbbWPps9>gN6xiHj|qC??Hn{CHBVnRgN0CFgf3RU^_j$gfMJ zGf8&VkPQywIkLM30hg7Bq3-T?Er(JsP|*egOHB)?_`ydmy=0^LlOnArzSqoMwlID1 zZKFXO|MOli;<8-$G1Tj_E@sxjW^c)M`N;1ghY7g@V@B4J0oQucTqGQJD(`Ehn@8yY z=_mx)84>UGSYUd8=8z@41*1E`XV$0-tx}s!*ZrFwkCk58oTNo6^ai(2i#SGme8jsSsXhx=x;q@zy(1G#Eq?p*K#R3 zqGJvgRDI*;{hR#+rHkLpe`ODsT0zoLl7)waS0Ll~uh(*h&3w!&^p8<}VR0rAQFTin zX|qHOAT8k>WEDj1!+X8{F3)dai@py@x>x{k`tqS|9(GiVew2!7y%M%@VCcnTjQpTj zQ?=PNZQiUOeLFbeLMg(I z5*L4jn2m8q-BQdC zT-N^t=LceDG`B!rI+U%~z4Z%J1gweNJJ@Br`j%A7_HuGEU-9sw58s?6D=b6c4%sHW zY1<52?lSz55=J+h{2Db?2Yzz*7f*AHrnqO?9?P2D1&rs32W^RWiMh2bXl4M}hS^tc z)9}gvt!N^9^o8Tsy*8SR_sR7BceJLyl$$B;lkZ>KGkfyNX{3Esrdm&&KJ?$MAXd9f zb3U^l?^wy4GU&Oqs8v=A>IkKcrI(oU>o{GCzXaqr)n=~Xo3?$3dp)cU!NKg-&ADYB zSikddll^CJX4>hcL2j*oVqrS9`H-*-3FtCIGec*s?5BI_DEe;tpd@~9e4tCXDSVc} z8RZXG-U)$;$9SSdLrqFM#|KoafdIHZdF3E@!}sJBEO4d%%~0l2?Z7EU+8GsiMqs@h z6!DW0Lq*S6q+cGX0LhT%f7J~h%8G;6pZg7)wW+6H3@)b?IlNH%nrbELe}xm1rJ(XP zUsoowT^!XXMmGbFH7oaTA$+cA7b;zA4V)yOH7VvaF=^C@Pd$+@a&x+TAvU2V&))i-smPG*oO(X{K!l{o zuROSNjRH416?ezGt5mmXa`s8Brj*;#$ZXipKnmd;Z;tmWcPn>930p2YTTA9+vxM0_ zPJd?JoK2W~XeNHMU|9ODuiHyxx=(wYMV0p9TG}rd!F;Z#9;vsM2;F;yy}s#nD-uA@ zT1}{NTdhqxpR7;^DcqIVf~ILuY}=sdYckU=VeIqUT6a8=Jg!pOd&J3iF$jJ6zd{2z zj^U3TYB%EGeK7Oco7hqbW2r9T9x_i+1{ybYiPf1SkG>E}i4@c0sD{0qO${KpIMpOo2epyuQ$tRYwH`}W4Tm#-rDku)K%g2SsZ*-MGdCDn&#mjHLggyJMHPCs`gg5?J3Ls^StcN3(ekyew!~2h> ze2vxN@tD908UGA)XPOv}0;H2+EoHsW+S*BoUtR>TdAYz%y7+;43t@f$0d}0BX%WxZ*zmC@s_{*!ia;{sEmKG)lB29)NL-hefpeAa-ckPU$z z&58a2(|4W(ropX{^Hep~jD)-oTo;s-|@dv(bN zEL!Rot>zMCvi>wJizR>Y6$7299=YPw(`D2s^}Z->Y>4*U>1Hc3zn9?wHofN@ZGEsR zt(?xAAEhkqG5c=D@_6wUuI-+Y?B&5fUxupV;nQsfk0BX%sOJ8ZL07esbedOiDFh2(`BVnxKA_E8%5}WXV`>lAtvmk}*5;Q9 zzZ=gc1H5NsC_EHujgYwed!5kYpJ{f1xYs2hZMR-1nu8j^ZH>mfXe_FMxm#OLYEM$- z0qa81n3h=|hbJi(5%0vx3?JJre}`0#N86Ef#xI2O-VBUQ{#88VuaZH}AAAhZcWG^M zij5J;F4Pdk1=!M;hJ|St5raP=%@Ss7g5RFF&q~oPpVoCA?YnYh%1{yDLc1MUG|P-S zM4qxU$cU(6SkWDiaecc&ud6gbh?_(N=}G78ZzD_LCtJBu@0I^)7uKLq|>BX4Ys%P)xG06(ivTOrw&-6)a$ zHYhhFcK!ARH|@U`jJ;u>xr}86IDJ#rcRbf$Xw!aM%HMOC<|o*+#7_nSaB^ z{YM$>7;%tC zw~$XB$J2GCu{mrwOFydg`<8f&YS~96BV#i2ZRAik)Ryqy8jkwx$KHz!dwre?66{yI zP*WP*$30*mr-76X@hS?uL82k>66lvbPd4tg;KtglUhV|5=?@H}YgQ^0#~?

    037$aMm1Lkb`MKLJJrAJgPruOzY>dqqwqpI;0@Js#hz)xi zXc{#=_EL&XTpL~wENZTOmp#wZS-%T4w&Z}6ggHVcZD z8vM(>OMkq5@d99faZz(pJ+Fxp+g4-sfd^_;UOeeWV@W9f$q*kRZ>x3VdGeF0HWOd^7iC}QgsU7uBT zrhJ#Py;ZB*Xz%2CRh(*; z>S09zcMp><>jBrrfu-XwuYPaP{&wDFBAS8J2kCJdJf6wiTdmzt<>e(uN!}mqRDWPi z&xakg2tlsVPbwjgpL01#*;L2 z>K4Z|4|?`i&f2JnHsd>>S(I+gmlEPi6=c^?o3dSoQ-TMNetBQWAGr*ae0`Rg&X9*6 zcrw&udElcgB zd>crZ10kwn2^_FHgk#01YwZbYy*bAm zJqdGcUQS`x_FOCTGOiWK2R0d$_Qo%8({N{4zUgz1>tW-dO_*9&7LtJjx8=?m6>n;c zSS5a8C%Hnaf0f{Jz+6d;$rRNK?3>=~TlyW`))$+eEH?11jRdaO_rD|Y9A&xhLQHg= zx2Ys<`ax$ryAFoc+J3}uE4(TEnA{SWKC_J6DE%tqd-urnMzi%PjhTm=k7p+Q=8jd{ z!lKpW`W(G{!>rzN!KY#vD#k#FESy9xJ=LZI6(pL56C6a2lFg$TZ*is-M||-a6+e}r z8KBj*I$j)Uo*NY`mMI`rtCqAR9kc3(@WXVv+@39-+DiE8-A72UvC{W}_|oeYlv(g! z3v7#*CS~btG0&9{vq=rA`m!`Lm zDcfthZmFBkicCiXxPHo~<=6r)tjV1tvn7yqvxyhvI>GpTqbqpZR`n|=7<2C>8H}eY zz;9z;yCV0aLwKnB+xeyT$f~xvN$4UV0B_^!zo@wW(@ySG%!xfYtazWf-A^LIfAD8p zvWrMWHB|)`h%Mv2mJ8XKkPi+1uDjrKLWXAy*st2hia$q(W)D4_pq`WIL66oF zISey!2#sJW~dX4S82@hzJEk@2g< z`tAiSaILx3A8~&7*dxr&XAC-KcF7zCV~(Dq+pLl!sZz?f`%vEv`Ea0C1_Xo;4xwG zRb;IRe{d?VG+y<2vFD9Xq!F1fnAP*vUOpDnBfdz?=-SD+Y3FkuTqg=I3OeApFvIxP zK9w*|6*S{baE)#2Ll0^dSYpk47;)@s-#vvvQ`Fm<4ug;=aWm zR$3Ll*lYg5qy7n3#Uvu>-K9fpq4hu(Z#F;(Z+wOdd|I6Kr6IkkQe(Ps`xAoUH||wK z=f(Uz?VZrKIH`Z_2CU#$gnxuOYxHK>2{#bRNy$}mCY$Cr8aX>@-69QUH}``%x>~wP zUmBk0#qO6#RrSW^iWVW+1F`t;gr#ASv;n>PI(>`PJ<;Dk2ikO!NNUW^J33100Iv0e_Ted?|w z*q25BPL_w^+jbc=p&W7wUG05{*NpkdM!>9MOxKYqsY1K8Xr zyZ-B4QRP;af<N>1bU zr?U0B%=k|sH5a`pw-vkST0LvL+IsWzd~@b4^d0)-6udVeHaGLi-q7k6W)In@S}>A; zj2xp2^?L2gTDsN@VqZ_N%8%ht*6YHTPfDDnogA9%|_k7 z$&PC>t0ZjXr+Ja3(DD&IElTgEcDWz>)8Rol=Oz;B&ujd)Qx2{pL^pbmU!e)S`69T! zQ2h6kzz^n1{+vXgwMb9ou)+81QzRCMhDJguykzCsrjHjL?@^muXNgnk=n@80vL#uR_}bBf0(8NQY{}zi9T0O@ z4;Cp7U8L!DjHPCk_!fFHn@&-_Nru?t*OTA)H7^aUyfRakI-}!9^FUJTDl`}i-g%WD z-*L~xO0DdO0?&JJctDKu>uN0v$3TFoVJL8f#JE|9ydq)IZer;%tz|c=mv`=#W@w~O(L0cbj>;_C&bP` ziJp*6ASJW@R5s&_>S9%*^2Q+x6SDBvd?=^EQ>3cgg3w~84Ur%rvhf8E>7oq)&Ta#y z@~rNSXZ!$LY=8SazVa#eMwYjp8bW)u$68OKp7ztxndeV<4y@b+lXwm=>=TnL*s^g& zwA>LyoqPZq9(VI&0=I+yC^<|w+wEO!JhMz#ofi*%9Z)70J>QRY4j6S_k%l^o!(tdX z*t3g3b2O!{z9cIkp#2U5^5bCuF}LxTxP@}xXp4?uP-LoX(ij<5vBu2JPK(h};bnB! zsx^!mEhUpU+$Pw(!y6a>GxkJn8d#sKqR*mQW7Om8;cH8da$JoEFFrnO>btgt>O)#F zBsr=jpZ$n}XXS*grxx^jIn9hTlh+gRz}bsx`@h42me=a;n>^j~XPMjP?4Jq`rBk=X znS^5f_7Ar#T<&@)No0us4^A%bbMBZcBG%Z5Ze@t2ru2Q~L20bakRqI2Ref6jrSCPt zT!AM6&CIwQ4w)qQv8rRG+}Fms0jbLzgTo+yZmDK*n#DHb9z_qg z@0bQ(nn7bqF{zl5eGM$@O^9?AW>~AnWk*p($4s(b@b`*VU+8bVwKm8xz5h*GLR_@B z(<_flTf;fEi2&xEqVAH6^)!c~^5lOe9s{0`W@mBoGHF|FAxKb7EoX=}6@bFIQQB?C zAXTI#tHUb#c93;qLNoA@ycyrwPMA9t!8z?sCz;zdHqZ)9dvNkeLli8eUdLI*$Klq$ zf#zzIn@;r+OKF%B%K$smUIlU~lDReQ{_u+v6NS&D%5x={bbFP)5&k0<1nzKcNO$5V z1z?Svkn0c7F5CdVE<f0`|z)pjvs z@BGgFDvpO1fb{B_W;hf$*Hxbnw2%&}?r|B9H65_-fV^ z|7}lcf)7UQxlL(WJ)L_m**}*Jm9a`G)`6-~F|iYKLC2nr$9T(mPXLPfde!uex3`Cr zEvz>WLd@~B2Td}Q<8v(<|12!C$vm`Z(Ij-QsWS2ti?XvGH0Q+nd^w7QNS8TmNQVH) zEf4Uir1$Uk+`nEs|IC5$-ZNCZF4JoyVe%oCCNu(NjEVzkiZ=^y^K#rvSk4ftP)k7NPv^g&`OiN{P>+`+y-%gV)Z$Aii1pM7x0>R^=>tkyQ%EXu8Ge>^g<+L>J zmx9nkW&xxh^H2N7A{96P1FvFYY|DPtUIJ6!u9i__wId#1_m_u&s@9l>L>8 zt_MMqeqS~C3jwB87pSk4uf(Jcn(OkRgS}n@DnFN+2)v56*EaUAoz5@FIBE88r%7Q2H7=DmCEwaafG% z6IUhs-r1Rz(lb;C{UKovO9f^5&_LXzqA-k=CF27{YD!)ut-@n%8traXtB3VVj;||} zepKibHfQe5#Eg!-**lYYdkI}{JEMP#BLO#?hh zGO7O1<%C0N_V~bBQ60JkEu2xRB_}OoY_dOJAK1iWa8QRB$t*vXtENN6i5=L!?&cAp z3+1@{bGH7?1k!K`Z;-a@q5kx-r!@yVc~dKVBkpok!1~^ zrBuy&E*|q!X5i}+ivv-d#nqk{xWo}V8eg2thIKhxaNgKfRF+`zAjbU(IpRIB$Pe#y zZ9Swa+(1(TA7G!arDa(l-#M>T=5`Lmc6aeV(pZ#y5!)0fC3CnmhH9cU5CmS5Y4f@V zA7X%zx~eFY6H|nvnUc%$D5lR{aAIS-_0dDd_zB;N0BIr|eun$0?LX&6T>|dFgP9rb zgyO8hWrIDD(ILUb{EimuGD?@Mt-wGR(pc{E8noGPgQr`}kt(~a1E3myGSEv4f~D(c zU*{n945#a#m*pj9vRD=mMzQTXd$n^bJQ%x|c$Uy{5fktb#@Tz$ZBxxVEyG3qg>q`Y za^9}A*zCmO^FjBM3!D50?dZ&pRBJz3G>2A@SM3~$?uh~s*QTu@7n^%GFQ&zB^X&4z zM!W>tFqN0JF)?wL(=Q_qzbs}WL|^I_PYAk{>C)%H!G70fNxe7d@|c6!M9%X-uG9VB z`PJHai3-x^IyM~tovQct$FK0U#OHVT82hE_4;0_}T@3s>8aLT$8dqB1Tn-?6~DS^X|3X|Z}o_hhI=#e*c2z4 z{(#Ua&XZ`5v}3JLl|pT7U96}%qP1BKx_R*GrPaMe^m&5~O=0>FlYD4{WrKQ2Ke!b3 z*1q1sHM!1SlqH{X{pq{UPK}27dQd>TsEnJOMVt^!f7qSygaWr|G1ACsYk2Q2{*f3yawd)uu@|VB4_&YcWWE_BZ*NTe z;3#BnqV~gg^uSE*UEjVIH_qLjD5UA1obWQAHpPLL=(bU<4#ACZwhi%i36fQ+D?0=H z47$h(X%|1IM{b&-sQghhOXVE!&ti z$1dDQ$M=#IVyzv<*EG!vPV1L*pDgQoJ*^gz5U2QJ#8L}h*H|*7ar5Evf6H|0eOfd7 z)TFG=PV~2m%z9h|nt<*xslb=w?Sl7TN8Wexw{~*--V1W#v8Qa;O-jjloX5{TS0oMq zJ^g>Z01g0a;sekAMT?^O=%GQpH$}MgiZFJ3r{)!^SI*cx7>b$hA|}?bdKnX?cD7if=r+ThSb#R{@n*SlRu>t^EG zl&9+Sy2&K>S4EtO;Nsa+WZlo$CJA;4Dy5n#a=#%@+sEzTV(Bas$w%P5DenxJ=4%`; zmF3iU$s=>u65@w_Chq0ZO>E{IWM2OR**NaLV1UNkfSWf7xJ{ zJccFZ6J7~>XvFHkW-hHBb}eK*p5Le#W5!KbZ^m#=#+{y?8hE|Un2FfOOqXnPV)vk$R(R9P4*Xf zn^=d1EBumFP`)hW9pQag3>tp6)mQ5a+UN)y5cs6K$XIU-?Vr|(7oK|21R*A$uPUC? zWku;!4#XnfSKXnl8^Ce^OD6CT80r@+FYDCc)|(YL&$Z>;e9dl|+HyiHO~u0eWo3J~ zB?&7QHnZyS5})DSFowk@a{8&WPwaU~9P)bhMP2Y$@Eu0#l)a~*1PM^Dw zu{t275@*{;D}8J!m(gWoGW4M&;8&Z{JXSI|Zn4Olr3icqA9*`q?;jK+JoL+F;V|oX zT*SOfew`g=Oh0l*AQPA=HX1*?moejD&$kwU!Ywmi<3W1uaBbm87MSP z!!FT-8KdU_@M4g1HE$GbXpa#qy^gN0nEtH^=l$)ew?+e(56v}mlM!q3HG$Hv`8V0~ zhnr{qfpn)nkN3Pi(`$WAySXr5>}?L)hSu(T(ARywhimK-zW?? zDZIc(TSAGyI%;B|PpRmxQ2TRrdE~?)X|VO}0$b?f1C(9Bdy}gPYQ1ZHQkRPxDT45p z>->5Qs?t_ar>`OC_c=Qbs`fT?X>iSu2f z&cJ{);Y)t~sHYOQC_*-QAffNp?5UsHbpPom_(yU@=TWaxgBsJFM|b_i@nF!{N3J9_j~$o7+NmP#6WHTGY^{NFp{Qo>KB7B zraMP>u-1Q|dV~Py&&8LT)S?R=CcW8|4keWlXaWW0?@1*D5C8ig{?$%7#u4sSaN9>~ zCa5{zG8JMnE2wC&#aKB;$sxb74HtrooYMUINm%mgB^FB6O5Lf5-%` z-{^N9j)6WjsP5?Ja$zN&N}(IRKZjodCVYFb)G0SoPQ=e&-bT<|@BJxMHCr0M-kDnd zpJRxkW$W@&Wa;IlJ>b7&nz%9yB#ynnY|N~B&uD1YW@l!FZ`gqV0-=Vn9ITfg%Zb1+ zml%rhC0%5A*-Hkz4sAZAR*CQ{lzVDUr2g4ib==^=-rLwoFNbI0SFPy&^NB=fW+NBO zM>M#s$_%0n^MN$Q9Nhqu$dw5&`^|nwTnJ~sSel^dfSxbp@!p2hefwrO+r2SYO-B`6 zEC}kAMX`fynS_X|yv2nE%PBfqQZ|@xYvc2ZQOA-Lu8rd}f8_mPp3ey2@^<~2@Kn1{ zz@75Hrw}HBM}@%Pr=YNPt)Zp#Pjyp23K`3pROI^DJ{067Du!WoAjJrDm|>HiP&s0$ zK%ad-N|>Z))oq^=fiVTg9lm`SMBT*p3d^<4=sjwOZpzvO?hy^;C$MW$0;TZk99>3mlkR@E-9A znG7V6nJ#hipJ6@y;#05dEpI^^b-SK==4WT-H&ExmdxZUdCMjE1BFpa8Qga|9D)jMO zW+@h_jg?SBHO`{U(!PsibH`+afly@b66ghav$^m%kaU&=!vAfp`l3?6uuW!}cwVaM zB02u|ve!ut*HQXg49L9%Yj%TsMdi8MQo+!E98UCO+%2Zz^L8PedHmgXAOk^;mdD*h z-3cpYelOCPU_TEtGf*1du0IO0jF) z2wRlQ0~`G?jM11>cFN>4Sh3#}FaEna+Rvi!4oI1t7&Skk?%>ErCe|WdgdHL&i~k27 ziFcBH-l^;U!Muf7JC(V7EZxDnO7IpJcfg0hah-09p^fQ_iMcs;a-6(=Q8!;S$SWQm zfbmNRynk$dYhcFu20B@7ej}TCKOB_Zq4ZDfC+z!#>AvVq?A30s+bqw2Tl&sR+uftq zVzU1T=Q$aF`jf*gw=@mK*(gauO%>I8EcwwC=Hvc$y6+SxU$sOL)p{GS8Rs~2b5!ep zGllSv&br!CDD2XnDp{(kyM(sa{@uj18g5SY>$YCiFPPeItoaN8?;dPRH&^XMU^a|} z@v~G*oyxR5e`g&AZX!$zWnrrgzjISLMSXYac4zd9EuXh5JUD1ng;O#+dYr#@8H6ra zm(On1uC8tGSm^e7S|+ymRWIR&99cMUx|w+PS#3)rEo7rV>zc|j)EeF{C!W(1bOkMX zOcsI(X}(=&O6InaDuUk48?s-2+JYM%i2lJ8=JG}cGu z0M+JqvaNVY#$PZlZAvkgtumzYlET3a;P)_;gJk>oZMrPGs&MxxoF!+ZmsEB@8@t@ZG4-Egs1UFa2isIYpqAUfHJ> z{u?-vC3+O`x2^d+XP8FHcn%z0B@z=BHGKhQD7UqP`zLqo`6`2w-9D_h`E=2{Omc|0 z0^Rn<;K1tPV86wo+E1OjT*Z*XpPXBH*&o@ftz4M#hlht=O^YzfTa0O3Vb;-??V3A1 z+5WM+&mm;aPEPoU6NMXcC$pwE+kqHH(aRg%AE7`_W28~J4%bLk-ejIrmx7mZ0zYah z``}cvOZXMA@is5?b$ zvI;k#_+%1Hg_Hc4<=rC{Wu|(k4Om)SX<$HDq37aKdcE@-B0lZ^i?Oo|XtMvqJ)t1d z(hc$`3IYPs-4-Pcqa`E;8;nkoZWTc~q+yh>jYgW$HDYu#LSl5B{ZG9+|L45AU+l%| zzJK4mKG&BpP`Na4=4{~?j%b`K_PF_~jsm@k@Z-}Pqm+ zp|^|3rFH`KAzLA@b!>K7>mF1z{E8~HF_j0^=8NKQAMGEYm`k?Y;nZ(L9f>l>`+$&_ z84-sjZBnC4$Ztn}mfc1HU7< zp!r3Mtm4axg$9+$bsxH`(gfHCJrk*CQV#zcjKZ82%u=)IGE2zw%+yV4X!== z^4hAl8%P7{=#Sft{_5|~2nFcgTXPX3wKq}yvx(=36f4{9#ZKiEup$)u7tL}gZx7^u ztvuT4V_p$F8=sTdKR@EQ7OLO|A_lR(lsO>&#p?=bIWDg?^tPEK*oJ16N;u*C@wagf zKAUpGv~$?)8?666Ptrc!%PP|v^cISqN*Ox zE_RUOYovJaig@x^?mJ`mAodqjL5SRoM@n?aHl;q-<@999zp2`!FzBM6U}KVIbpC8> zPh7y&fD0^rmG72$^iuD};*6FaEZN}u5tzE73?TNtY8jBN9;IfM6^cIiTwABpEei@e zP)SIiiRCv()-vu?_|y)E23m9;WVL`@e}h@~fwk2*ZpvZt84HgR^o`oWzwHhLQ!&zp zm?y7LlROMf8#2G_`>|v&*-s&5$z_NNDi5>P^F2kC2tf=a*}EXTu=ywZJiRM^s|-tj_8Kf0J0&Z?Gn-@N zT~xZHIyaYIxAXKNKQROGvNta@TK+x;1>Pr_;L@7Hli$kD}n!QO~2} zuP`(F6UTpzBU{um(F1gyuej^$b$WF!A(3$0&zTg(O`9pD7DY2Vh$)H5U3nVUdPDeR zBV75xLr*Wz&3N;}FY8j$;7n$OFFS5i|8`9R40%xvgJ2qS9)X(=iMZCD#?ChSs}Vp- zAhf5ntQG2N)*hFy9}Y8mZyth>>7tjXf(FG4CzVeYVCmhIF3ve>(A%G@sWw1XtqO55 zK25+&*X+R4Vj9_f4x)qEv2d+r=}kGjKhnvZyXn zm~8)Jv*-EF3vhZ|7~nXN&%W9ZPhEv$V5=-L8!pP0HDnBr)nBORQEBL$86Y(4%tQ8Gd=J;Y6G>%NoH%6NL4aRDH)Z^Txn%z4 z#?|>uu!UKc(mg-1jC-%Md)+hNYg&Ztukg~*I-}5g(z7=ctnDae!XIxC&V9CVb{p-O zZd@xZg{`X`9bmvI3*EnLtChUxxLr8V-JjA}iL?d2llNnLd_V&Cm$j;B#~rv7Kwl>( zvGC$`y;N`ZhcwMxr>S4aU9TW@lUhQ|4bo87SDOVEVM^sW}IL`>{?V>nW-H{UV@vk8Pdwg z%BHvcU=`)~QlKdF?~5U)iP9epWZsUt**6c#{{77KQGci0;D*P_y0 zKisYzPoznWPwpqreLeJrg*49TuQpUP{l1O|1jV7}rN9@tp`7dl+D#*$a^~|K__gTS zIY)fU!<69E@TgWdP+FF>Ty(%tj^xUPbme01B%q*C?C!MVRkMfPM=fgPyL8sFUCyNg zDHNXF;TUZRi`&{x%p~c)-x(|YqW%l9AreaRRs07sjLV*>*%o=7_XA)4*=~ihBG~th zYF|I$3-e=9$OLHp17SrhfGCg6lJb*<@~9;K%8taTVyjGDja}zfdLgQA3)#4>m)nIj zrAoPjmreV(=|PMRy{!K>$Fp?1XVmpFor^3jUB3T7q&Q)2t0bXplO+`1X$^b{BeEKE z-{~3(`n(H@*A9GjN7AZ4q^vMjDy#y4yV=+WcJZtnu}*WnryAHnx+PAPPL%oy4C2x9 zNQ;s!KY!g7_9XkI&o$Db&?ftC5{eTo&O}Mb-dWr*;5uoyK_B*sSbsrNO&4%Pl&h=+ zrymcO{=@?WBfZeT(O#WMC_SJPSPOPL+M)Ee*4*|)z>{^^*Hi#x!V1}hse%sxTJk3Ens#vTyvzvFylcxEr&Ok~sH{TFZF;p|%B zQ|O~pol-6W6VkJ6Iq^5cx!vXTAcV#3?adIHtz z_P)SWTEbdF6LDMFKz$C=!M1GbKR{fj$z)X*35<0Goodt#nbb)&pDtd*jGQ$2(MLo$ zW;ILuSrqY%j?<3>lFmcU2lbr@P3WA*Z()u;Q7{|P227E|r>Zjkm^tHT80f-5t6VtY z@qV`_h8icG`@n5zlVteclY;+%SwjD@yhdFqdS2bbCiDA^_P?mwGP2G3dtvrD{?No#=FV`b-*sw2NQ(QZ*$M|izQk|=xQ!Z zl#8@v61h|68A}4ubwXNQB60 zNKGdBPRL-k3b)xhq-{aje(Jhy%YcXw2$1Ap;p2+5raOCaQjZ**e>@@;(qH-WFELz7D(J zs$JUIm1VnpfTFSR@dJUFtZjbrxgFLU&;YH}YgZCzi`(NIBI_MZGcg;!#G*P3Q?%^H zy|y9n-!(fl8sBPrE@RTSUP+Q#4HnBHA^ygxEFX2TAaam|oX?lX9RqjmYZf$pQr|%^#KC+j!mk%EzbeEf*0)G4J*MZB9$1wWQNa5}Mr= zdXgG)KIVoqe$1l+lSi&1GLFIVXwsq?2F8ww3X%I(v= z-TSA9H{zM7A8mD;xytY8_X{AVbK97;0iBwN%t*TcGm$?(VJ_5QmdF~>FJ_)J;ySG; zkG+~imgwp4sd6js&{9SRx|H(Djb?fVD$(63!i|c;Lf?ur|P@;O`!QZ z00#pxxWZvRj~}-{ryai=_#s=a<8DU++h~FyB7qWgp%16(&9BS2;|d2x5MQe;I*Hh&2{M5)>zh*!;tb=DWL_pc>bz@~ z_~myM^g-T_Z|O~DNUZ6<{YmV)1ce!G%4l;5-}gLKl~&d8Z()gLY>2}whxKPFLS^vw z`+!E26;}!wKD2R_tA(UXn`6ptNo=`$mvJRe^1B-Sm5GLgt{*ER(m+j7e_L~pK74t&N8d;;4Z1seUXXSx- z<>INTY|&ErJW^C`C@0J1RpFPH?C+YjgBiPrUT;eGopGHl`^lvMy#|)_ngYnrCQVb4 zNAn#up7HQgylC6r9^K9ISrjh?@@kUR@{QB+bHCj>(fm(VvU$}^sz&2&6pVQ)txn{Y z@Rdz)C>8c&87u}2g1uYt40xi&-w`4$PG6A7RqRQ*usoO<2R;iSmwQ3yuF`8+6n5Dv z3h!9%t?k(ONjMFi?KrbFJx zfvW@UPq!5MKT@=d#MGBZLD3wtYEd&ZuPz7N->%I;Td8`UDEICqa<7SwBlSWsVxG6F zv^dm3kv_2b9d=S$yBIfmI{y?|;u(#(mLi~tslJf*qO#h3@cS(ATv@`{=GAdm$|Rpx z@1OmM*0ZbcjgWB$NJg5pnrD?#vR{^9g|T8Ln#+!)>)|c|)mK6)S7{+0Yw=(s+wmk8 zvWOD>q04T2RUt}vyso=Qyv;OS!Z=5Z7RPOjl-YGrt8x-`&L)tp0EE;K(KI{3|m8;FT z)gy4c06W`LB&5rbng4PKsvngOTNnDYCn84{oc43todN#p?8c6z62L0 zE2pRVzP3#Y4v19xBjn77#foM`m61+v6x@P51}LX5sTVx-7cnlSG=1lQ)k(D8i{wGb3jpg2Quj(z&CK z*?FlQANq60&D0ND`P^$=w(BvimbUF7)UU~lJI#HwSO^3lS={}#-u)*HO5E5%RlmEE zR)MaC)**>i^vR76e19Sh9rh|<_3*HmV_4MPltoZ-eAD&)wA<^H>cE#gzqPFyogQHe z=jj!iz>j6#=y$%sAX=oe3%r0ulUN!msRJNwbyG9usKmn8H$zjaE1<3%l6`%-vBw%f z`ezFVKJZwbcm=3z0I}^-Es9)UAEHk}nd7-plF^veBltdjnFn`I9fb7K1M9naWV<2{ zEQ-kYkfKxd!Y{?`J|)KNkx$rfq&2buVuC)|3_j8?|Hqg78CS~idiUp@VOQtURtxm( zuf@P^#>}7Au+#Qixs<;*AJvlF63aD11?(2{X_6bw*k$T13vzB9_QWzDSmZe$8Jolp zN?N}PXjCq>zB2gK^Po*fL+NV3TWXUm~Rwpj)bZxuN2dB?KGUegS*#xclQt*_pUqG z##+F%W3N2uw-7)z-p#m8vp3uIPW-sUsBQ@)R zuJTeo9Hl!|m+5J(-I2o5xU4 zq%TX91l0DHN_o#@zF;*6GCf7DdV8uC1;r^RSLf##f?C3C7Cvtc{E_7GOGitZ8^a_} zeUNnBe8Zq4bJy}8+d*Rok3v9FAtM+bLzScvUtm*5ID_SmXCNyyx-WRkSh0{MR zaxEX(2v1hYsf$Z~n1a{YmDkAmA0c9RyA6XD4(X5^*RFTU(eYfoO#HN3mw=K%YaN8M zMv-H17{IWY{MDs2xKT;)jLDr9fxa7wGL|~TSa5mH$h|hbK6DCjx{-U$u~Ch{eH!Jr zz4Lxmj^aONZkP>3m~e8du`S%1@#o0H7K@mimcz~q8s1q$(p9Uuq+|*6X*dN=`3L+bYQB-H!R5dTAYYQp&MY6Q+ zWo39^rcN>MT(8n8$4=z$mM8+?xP2KN@iXDPs35mb&6p}w&zYYs{)dE44;DTy)J+yZ z*=)fh*$KsLkr9}Qn5%J9SPb`rnQY89EJ)&Jj^dB;)u9VLqy6)WC);Optwy=5G5N$3 zZy}qCU#ZxCc-MPJW%xBU#$@s@7xEERS6NGeBTQ6-0stzV;7qOB{Y~hM0+~rDOA2?yAicDhdcL54+T%zr zfyGAUu5`oVnlH>5{g9~M$wrvNYK6r}(y)L0i_V=>F&2nUMJ}jx$RhW$--UMlWW@$s zP5-4`?f#jh2WdJdZ>}+b166F%KR3n!$p2v)@k9P#y6XLos)PeI%e!YWpK48~A{l_R zRLZ0&70+K1mrjRE<)R7HD)esAxjCgYWvaEDtQ}nOYohmd#2gnFv~=GM4(WWdEn(4b zx?OlO+XRYu8nn(dQH@21`VSJjV3nw`Acg>JNQCA=vz&lMwi9j92GzF!ro(=q%IVY2 z6@*|AMcr4evF_m@rS&f9w))BD%(SeWYIk>UD5pvVMWbBi0Tg-+aA^aP;Ag{51CbZA zbE50LUB+U^E4Jgn#JJ*3-m@6wN|C_*mdBV0(oz;Pek; zW@_Z9*MgDaSD1yRoMbZ2FCjf|**g`=zj>IFU+}(qr2;ddLkZR zee5Ph6R2~^K>j9*VLQy??$K1C>cQ<&kH^iX>jx6ict!>#N9P`#;$kvnrIA4+@U^k*k8 zTj(>Vg$QlO*zzc*hgyRlScYz;0xg(-K56cp@X^{77%dy+?xa4UJ4vpLOe|~bmH+RO z+W+jR5UI6M_3LGy>Gl(OF8Ac;zpsvWuvNddO3A{Rt~jPsRm*@L-&5xzb@ltS+g(wv za8H@F3YgDvMH|c?lMyTZ(%Lzo^EOk0LQzul;BNm;*;qx< zX^K?-@;MHxQ{Xsr3hbUY~X+ua}9FHdjA+MiNH zh_o?jOR=_bQ{yRq!6Om=b?@G5HErv}yv_%_|2+Gg_?lXw?Ff%G_iW=BR!O88<<>)F|!{*#yG8MM#ec8a% zZw<1JH=t^CCJV`uK@by{3g^Sfc_zUV5{i>TL72?@oa*;;Hk<`;$)j^ZN~FHXM1a7pT^Eh!aOlp!pZR z6q}zNpunV%tI17F?latSlf?`B&6C{QUvDY3@FY0?Q1&!s|1@>Y>~XgrKk?#VDg5Vg zkym5&aoX^iw?nc;z60a{!<2WPnP46JqjruZ_A5s=vev#Byj(Hm^Asbwb03dlRZ6IL z5Pwbh9!g-}Ai~eG`-3B8MsY^oGtP&R1bM;#<VXd`%ux+)g$Kb%f7C6pmKm!W-# zw>ArY8T%l4s@EwPAea}c$XDsGg&^H5?i01!qkoOn-hp13P#FqtemWZRt42pr;Slf^ zHS8s`ixCbE65C20#Ls1XzYxra@-C!unL^mK2i+hY(Z zj1x*;uU7LcXx;P(nRD-pi%XIhVe~9S~)V((>jX5;)=vpU4g&6h?d|KO^%an1=a?>+56k@}G6n?Cv=!0_MGP%F?Zg zUESv`3c7r-;1J*NSj>)UCYlk|*CpS8C0vm6g=g=x9271?BYmIt_~xC&B(Ud5t2IXE z2hYu+8(3COpDLZS5C-r^IsxyN+U4G={2dFK*O-uN^}T;N<3cCuJLq?|M0loq&{^Ej zdLkyX$Ih15LCMBbdH7=8ZIAcdd^FB!ZO2ra!l7J!7+HGy?jPT|VYGZwNmS)9| z3GB<1y>1zGK9Lr-$6ZU$$Z`Jml9&h^V>w_eu%DlE0^ZB_zG` z?+i_c^l7Q?tKjP>{68-tn3CW_bsxDG(xs<3rsFqOd8EPYLR?Fo2P}gn4cu0Oq+~*$Fp@X7aRFv|J`~xRRQ3+c>)2OqykIyIj zm#E#|)XKcm()j)Lu8?~f4MhIduusi;D=Z3iR0^)v{uB3k=j1o-?aeq*3EsA~Pl3&3 zJb4kTJ{9Q$ghpkLlV?5wD*r@%;voAAYoB9I9AN+{FJq5&1>j8kL{*yY`p&^NPHXqh z{l&X_y3O2NZf8+V`E93kA*%5 z-)&q>Nf1qY13EPL9;d>{mkRCycfY>+sE-uD#^7^Ek0(pBr3g&C2%X1Yqd&iOqe%Tj zO3WHEUjkukrrcaBFI&o(elq~|43PgDnDvMGiLx6N%c63Z$>wZ}RolMSyttZt!0-d? zQ)OttY>(U7y}S@bX{{b=+QZg$QhIlGMf7o1am>!I7_FZ3ZQvGjt!+&0b zZ#cGX+pTD(t9WXg3AY#-|!y_Ll<}1|NkJM1+Kv!HY*VZh{@Uc$O?# zVk55fnuhz?>7~m~!TQi|7?N;&pA5g))nxrnVZ1aTjya_5ph|QM_B`8}w!F<~-kKoa z7_Qb4|F~gm$Kt!D2nU0l8~IzVc@?n9q3E|y)x(S@7DV?WXi+`$_Y*Oc5zoaw9}Bf# z{)~xC_k=QJt5N-B7B7)|;y|R}FrwzwBn*I(p_aZ*xYg9HKCz3Qe0m{7A22ClGE<)I z8#NCz+f)5r<0D_ionjMO(Ey)z?i#N#?J?P<^%bsOJXi}mA1%^la8%NF? zznMZ;WX2mu_B1BLj`bGwI)1cA|Mye>KM?`__aS4VM%*NxviS9MB{=v~XEs>lEsz>c z5D-q^r}o3&lk8=sJ>EJ=o0Wre2Xbz13^_bLBY#C`60oQ0$f(o5H)lJX@r9I*qKBfQ zso{0qi@e0;&h_pgwA)=Ul5Nfk#?PQXWne~y%6^?&nd5XdU>tu8QJ_b;V8d9|3l=2A z#0VG)SKkkqr~dJoHz&QtKhZMZHl{z8wMIru)yq9gbQ0A1lj|D4 zJ$P`F$Q;fx$2!Qe7{CmxB~<<9Ry?(LS?k;AI0{-zSB4x7Yg$Y3VLrKjfFWFe@djsuTBYO~WhuVVpk@g(|V?UW%@3-T@|L9`Re};sZ1}KW}uCE^oNvOw3%%dmX^O?^u zK-BqAM{bJ*W4;pRGr+7}VV|kOB@fS>Vg?Wt`*%Xwx>phfB0{7q*2+<6 zUBL@o+e(rf|6cPMl7UgwvM!(XiRPb~ZVUSYUx7v|z*}Riog3N$z(G*>2 z{3>J7mG1}!IuYOj@~;ucZ&{NIC;6X+(F8L?)jfU)%_>P|`}xU%!@3Q33vBxnm)}PN z+Zw3vhK6>-+O=&-i$mQrmJHV06@GCTA=mrEnX{Gc>KxJfw`({`ipt zvUtVGf3xMMmnyaRxpZ6HTxoCa{!YuC)kEy5F6i>{`f&5R0!hzoshn^5#%A=*NWId5 zcw9hbw0udHQ#g0Y1efQFXA%E=OmgOSQbTBot*_RR0Fwusq?)?rB`^1i&cj$M27q&g z%e~l2&26ZOuB*gboHK_;iU6v2vaJTUUZ5;V?85)KGgwkg*!xYQ)cF!9?QT@WP2B{C zNt|Iakp-oNbF^eP;hm+7f47+#af9uw?g;&JcHrKQ-934=WWl5}6`Z9;`uI^}L&JN{ zB*#zWoZ{cD?W-al<005}} zM52v9g4z`2{nTdin_Y_kJ?#cT`aC^}rO#y*A(nPQ78$;etV{rcyi|jjEI+TPjWJc< zlU}@nJVhzl>~^gm1d4*#e{OBTaR3CU8T-j zRz2=`k8CRpAs>KK9s*DJ&<-UzV5`2-A~BL5urbzRJ8 zJOss|&U2-U&q8|2XRD__hq%~6NVFd<^#I9SF6(05%g3R<) z`J{h8N%T;j9q@s%h|3LC_ovUp(FlTKqI&|+7la>-HMN7%xp6}dC#PeoKKzwTA|tbm zUprEkwbWV|_1`ruoCqeOO-+uZmJl|{@7w{+6YiUtzfX4f_+f|F?v>h$vg*%0m^fig zKXR{GyDcYrG}zGx1hbh#81Rp<4{s(o_w$+6-_H%L4a~fW#w$*Tc!&D$x#jOn9553q zUH#M-1-txZy!XnM3Tf%-?tL)D&6hLu+>5#@m(R7tX)XMb&RaIdLhP|-g=ILxSmnj> zutCLD)+#N_qN^mhI!T`=#R})=gGzbE!O{&9Z`7R0L{@zZy3FHZep4e2IZirv+6~2( z!YLL%^U|md{Xx&Qu5Ie`SLe?iAde~-=z48YHKn#OIulDonk!dJRF(%b?-A<`cBy_V z+Z?4Fwes$_mb~xHikUF&@^#je1c+$`NpNxvd-QXLmwMe)MwrE*BM)^RC&LM?>>%&n z^;cpEkhH++>P>!p5QM z%gY+gyl^ruR%vy<^mz2HY9~Dl7PNZRO;v_w>OSvq<2*ZUKFedTfmW0Rb7eXY&c}pq1nl^PtS=7$nqY z+Xa>e%~JVQPA$#G!IZBM%hs_sJY*od>x_tw5d(~1HU%1>EN3eb>C7s>C%L3$>yGt9 z0AWNr!&5`NLn$*!jmP#4!I<83jDxM<4n48>xp5W6Or2}0HBE3$w}ffvjAOVH2aB?$ zmvpC-%Y5$(-MS6H;#73~Pr8Yp&4~hV*0PPKG;Zs1ZaId{sa686*$G_H#vF14iO7l& zZ;-4SP9J-%BJ;l44YhwFg>z}+2la(S(+ z?Doh)x{^mZkeyih?pujp@mk#0a$3ihM34|99lW|jv&>)xUq27TzW;?j3)x zrTOpm=>M!h79Rel`GO3VL-`dq`ZTdxYLJZPWlXUsdXzAgWjKE9b4B$Ga=x7^&D@rg z>gffS*N_Nc>65sETRy&((nm}v=^O=Uyi-^Vu-`05tc4Qdrjr0EqbGbV+LLVG^Fo2ALzW}s_b%gP zT%CyGV@x;XgDBq0UioYj#qFVzVeM`C&SLP^=rR||H=tZ|JS!j8t{N-hKqxaLdv#neD{AR+G=i@pav*0JlfMrwaVo;$DE_goj!U6rx3xZejKoyEG;gc-& z8kB63YnO7CiDmhDPGr%0^v-&{2@I+pF_toR(lU$%LANsbchJLGns)i?&OB z2Ff-lHt^NC4)48{3in0mRWg+Ow^b~^bC3Kc85?Zw&cJlDxWX8BtfgPHwAHyJ=-)A0(LdU=nR#IcDlGx}w;yS!(eY+u||6PcD(QSB+Eu(ALwCD)Tpd@U)|Tt zn`<9s?eku@@ulshY9ieQ&%rP3g%7y z4W|~_yPpB;-pl1&$-Q_IhVB#B*Q>7o1fAlxp=11Y_^j9pz1WP{l z+AEggl;>Hms4r;b;(gRp)I;9KCd#8101{Ei4Q;pVj!d2J7Zn&~fkTtHrmJSrCw5UV z!zgj1mfvy}+g=neOvrW5Y3c<`XahsnGXt<;{FK0F;nY?)oH(P@DA$^OUEd-7NK4z! zwgh`q1v)0uawnlF{1OgnBf-_!d>WgkzxpZKrS!p(Akkp` zmEO#WyRC>m%HVv{>m?UjrNJqL>y4=X3_tR&&CE!3Z+dI#8D}Kn#)+H^mVgMtW%o0v z-q8w=7FyPLIwsdRylo((m-?e!DkYqmB)?+uE!Sv}yN)%U1j9tDEM7e9h;M7b`E52c!mD&uP-m zOU^oscRB^Ub|NsuhEpQ&!m0D?T&kT;O}M3Z(GBz?6Q=)CsLKA_ti!uj*PZt56O-T+ z43%G~+h>Lt|DqBnWEDEXZRQ-}Lan9>nk;_R$U14(XtfzzcO02@1_*bThATOLv zv9r2?>u;l##2d_rF6@Q5c9og~KU4GSvw%z3ozugda1UQ#((SnXO^P1jy^Z?c@Ym|T zAo-cqN__V8I5R|UaM*QT@wfC`xs$zI2S!d-mLpK~Ym%1<_WP}K$M;$JC^l<=fx&x5 z{FU8#DNi_VeqXjc)5`qSKk@uUy;{nP%0wRFG4Oin@t-$qZ};7&ZqPg9V%Gs>+0cya zf4vLy+OWEoG=0s15rLEm-wilXpC3`T8Dy^Pgwco_nHWOMoKz+B$;Abf4WWc{3ljTc zGGq=;@KlsA;^*l z>$%0IpAqg#I^YBq$akdtJ)#NEWnQ8i%zb08KZkA$2n@Xc+Q6{4*#~=WE~!lHX9H#6 z^{~+CJoNWa5-%ucW47S4)XfgZ(AmEM5G=^StQk zzZXe=&7X}>bV5ayyak6q$3m!w`V!Yv7o;d_oQ16CZ*ch!ZVpRe1zx0+w5N|Nbgy)$ zn;EEBi_+#;35;u~nZ)WdD2T$E(HGDw_J6|D8}toQK5buc*u|wn_5YZv6lpnCXEGCK3i!;zwA4=ws|m02m+@SaQix3XEgBmZ zl0p)6U0fTZIT0S_qoT}G-Jf)e&oBYRxF8ck-PSLc3MXA|(2^$d0f99COk%Je*gai= zk$K2f(mSai*cLLp$5jzQq?9iC_T_*rw1hUn%VoWk9kQF}I$9@h?;Z}=g1Um?@| zHU8sSTOXe@4gQ&pX96O<^S>tx7+&H{@qcD?yxB8UR}ozdB{NUIM$ct3#2(-vet(y~ zU;xAvyRIQ-<`zd`OCQ!H%RrfcdBf(lCMqf%R;NW%C>UVFVA5yR$R{ZoFv9kpY1*B% zYRfZbwQ<;4uIYO&OKYrE{cBL%c>%+`l4l$s@Y51Ar5VRjc$yUNf_BH(_WzF@2)+Bz zd$#@8C;7%1EnxbgdmJF%fPzrLArhJHC3;NDiT5VHv~F2I&@iX}7k|@;gSq@lBsqV; zaxv*SW4igN^F8XpKIsERvX_pIvo6?4hUY+K$C-h{z)j;1@weD4eh=;d~GwkCAHd z%>-j-XBjq@PeoTMxOd>D>N`7fvqfaZjTCI2ic8x?OU?pdTF|Bez`Owc$`Qldb0FtC z7k{#iUM)y@s?CGCw>Lxj&Fx;}s$=ML1=0K;&!xepoUr9!fc_or*++^xZ7&m^6sNwU zwjm(@O_9k(WzbDB6hglC+BPN zyS)zygP8V? zD-iS0>l(L-v^f;x+H8e65iKko;*1I9*te%ChORM%GZRlr@2!02&bXkmi$i;}q1q(E z#s5$rO+6CKm(U>D7K$y+JXb zI`E%0ugSIdVlUL89HK90ewK1+)SBd?jXQV2nUfU!ewQwe-{BjDlb`2h`7KLR%m#mN zE)YMT?if-hwl?RrM*M!I#o~tCp;sxd*{&bd_!H+;o^X#P+3GdLa$X#d*K^k=Rw*J7z6(gv$)!~eiM)g}?sR@cj!mkcY3D;=&I_xPK1 z)}G7)tS|{&)!=I|lKgBMV=97lZBo_{5O#ufPD_L}NB~b~t+B3-KxDjRwU=DD6q5ddhFbILfwURm$o}+=i3; z`cr+{+PV-zaHjp_H1JJxu-R+zO@UzV#_7b_v`U(J0lJ3U{B;1eb5KRC#9#&6M}&Pw7qq?*2UWy@&~5I?;3Obij{H8 zf@*j|b5=5fUE47g_S}B^ufnd}$c4l_*Ts%76;2i=KZ_LZ0;AP+VESI4x1%l~yv#|x zP0@-_L|nCxQ#~G!h_sfZrZFMl7{d?!{YSPxsi$5Bx0OtQ*IHsSy!GJ3Lm9)h-V6C* zTVq_>rAu3*=+`_j%y72C#n&>!Y+h{66+|N_IW4Hn%Bnf$U-e+iynyc4{nQ?p%n^a1 zDgpo4907{>3r0txbmDr2Mt5yNlxQK-wNd`Nsu*g?;m;9q`b< zmc;;u`?H|lI<*I=^KmjS0qe1Ej6P zzNtmwNE_!)P&|HC_cN~zwo+)WTsc07yW{GaRCFZz-9(yxrg?WIW1iz`FltPirZPX)Cx1Ur@p@-VP=Y&ncJ%p~}@1dFf zoQANM>U=CGwM`95Rf9W|zsxD7|0E$9u=_jXu|}}AKb=IH=+xl% zt_%<1$#2Mkv2By3GbOdG$3F*TN~tFIebcir3#NNS1$)^00Ix74U7V2!&wjHc;;6XM zDNFYk$}HvV?a5y29eZ@bUZXQ3D+hbnx8Do`YfcHykBHF_u*fFJ1qYujPl(Q*dWi~8 zD!0NDf7X%I2rNG* z3HAx_@MwJ}61bdWyq>y8epEl%r=ibuEAGGsoro#(k*fWEzq2lw`>eopERt&qdE!BS zm1W*nCU+uRfciQ9Kp8+!QURP`#1&#hm3#5%g=#Lt*qZ%Huf^iAcR@oeI`g9FMLXS* zd2=e&@73&~2n}KOLf7npv6|9kC+JM`#p7UESk9hv{KOG-NY;wYb)n&M?UP>=m-*^5 zyCRT<|4uIja2@=tJCt4EGqYr}Uo#>qq zqKn>3bVg@J??e}6lo`DbqZ{3s|2pTqJL`OZFReApn`b}Ieeb zEi-FW>G*5fb=k;b-Hwq+6OGeqVIJ23mj~vYO>EttNE>7;sJhRBTtK@ff3yUSlwo< zx?<3v?Mv73O(N;rgkRdiX~uS)5s`Mrs~1|!CP%lkkI&Nr!^5#E3Wcj_WEeg$@65aW zoYxG}sUa5ngh%rB!%z5cPF5u^oOq!&!5jJ}6@i7FLD&g)S*C0Dynimhi$>%wwUqvF zzgQMeDB#HPy7(t_!2K=vGRm^MLd0QJo-am1Yd8Ift4*8JN&q#k*qjGB&boPSOjwT2 z^3wMiU6N}ewBfRZ(6Ckm&Efe{mhNV;$ zmc^5VW^>l3gNsvYocE>1KF=-tY_BvZ(U;LX#^0=z$l=bj?NrS5n&=Zfn9O2{{+tfQ z|E;pBPpy&V{TUt>4bG<(|1U zwazNPZ7_+x_$hmC9o%FRiY|^DZTL-sMEsN_B;4*ax)vn6LK&8U%Ep|AM7EC(jGRrH zf5ND#;*Y+XhMGHGmMoDBYe z(%0S*B)~0g(5)S>pfq;LIjt!Lk1usN=cuBzYFqMpug93ZTI@HRO4FI*KI0eG^-bEr zkWva#Lrjh#TeCSxt({q;#@qXuFFXc9W^~&uma73-{J&|us?LTdP!pg{1I<3PO3xhF zzryX|OLppDiSDL-LanW4{BIBS>$Vkl6o#>|*fg(r;>C5?Vy5 zpY4Y*puO88i(Kk#&d(iU$fGVj+)_;b+w|Q)#xF5~DIgzf8S~?8n$SiiJd%8Vito!1 zcwOuY)11F*)UA4fK@x%$2gVlMdPpC}T9$Q+&6&$wGK&cT=FT^5@Hx*F7Lg^3or;%r zcyQtWPGwDNLB96W;Pjz!r@WUS=g`P!|CDhMfiVIg775|71bX?Qug%9qa-%s={qy*R zeNT?A0C291TK<{Y;1%!Lmg^c3<2+gNCY7%+C54r$$xSCfFFKP_g9)-#8kO701y@G4 zh`BYmz?}Y&5Tiu3^JrNf+7q^SeZe*FVI7CEExgQ_ur%%}jR_arJbjKCSRX(cg81z9 zJw`WaUR+v&J8X<7Lq zi>UTe-H!QB1_UHWZu8{c7RBR~@Dg#xtLv`Y$lu3Q!=OHTDJ#a7Y#&-N=p?7WsYmkK z$S^&e?jMF-JMcJ>xTiS!+6eQHfrN3_su0Ld#DRBEIrgihu~%0Omh0sQEib5QN--9e zbCwYPt*+*-pjXJ`U-Zv)qh;}xcUHA_;{0MjumL9X`}>CHG?f`KzsiX`_&7XT2LCp2 z5AVef8MUUSt_=$nrWCcU4UbPw^kE%}@=Adoy&jfi@?Au_%R+Kz&sMK>d@oI(jNV$$ zjG!#t{!UJ4mT`hNaqW}Zo2Pi45GV|ZzRlF6l98wT z^07wK$0y3%VzcZuOr8Q$Yw%O$_c9T@%tOzthOE>AM0xnT6w+14W|m;?r*y7J!@(gX zC`lS*=w$2|Q!;jfjv3;))oPwX$S!&e5fTLzd)DQ0|LP7msl@mo--V4J1J-1H$)63g zvBch|jGlu;v1UpY6L`Vw?p6K$+kfVYwJ8v;pvU&y7?#Tg@Bt*6zIg@KvFa(?xW`XN zNbD@q4GQf|QEwSeMhSI#qw>5@Ib6FIzNQ}wz2jvnC6a;}M!zz=nQzT?6aLRO11gF~ zO`=FRf{iOOf#&7)3blYsU3A2mB0;AUXA;Whb3EH3I^QFcsTr?D+heu zt&Kxmv^oL#4M+2Wxwc72)83tnnZQ$_GKkQD#r-#&sSs%w5>)C@EI`L^F3@xQ!xnR4 z84a4%dQ$rr1s;hvK6Dh-F*&`eBB1K+Y;jrBW7=y~3R;bB|Zpl+4ZIz&iIOrzia+?O~z&o%qXO-Cyfuv(m= zgCz!5swKYk6Iw7Aaqs9RnWCvdG-r;3QjOvOd!5~U<7(BaaWYpXVYi?r`h)EyWEkUb zv1%*y%ve|V0GP@P&4w_}Y~pp_AATs;);K*trALvPQ+~CQQ%C56#hq^jE%*w@6SDDM zquFMF%~^!rm^ICer9~r*0X%_}!wAgLlQ1oBFxdHqWcgMqrv=xd-3%yE)s*~gMf zuy!%eW~WX)?|^5>?z%*7U$lw2kY~X_wnSfRza?Iv!SdS+SU#@ub9q*Qq*kJ|3hCt+ zi04w1cV4jsjfh><2QxWjWLqG&gqsJ-qruY}RZ&fy!$83K2L%ey(l{>M4R-&>ucH+; zyA;~m%{3=*i)~I}O@l{darFqf9hKPgqZITeAmtK2#;w%T=9#wA$$w|{zuP)sO+1AQ z*WuCHf&v1{6x_+&s{c)Le#OV453V1;ZkgRk0bntE$%El6azUe(L$bZ!x7@1SDC$Nm z`(KCLj5@%`UZ2)jVnUvgtq=7Se zE01oar*()nlmp1HC4fsM^2Me1I!lM3hYYx^$6*N+{Cy+xjbJx2=!f|Bx~Z_x_%-I zGUxatTpY1nXTPb+4A%W#H2G^IBCVW#CoYrTmlCzH$hBHGMl(u4)x8LcIeu9$Ismj= z1n`s~KB(L@5R^I?ZiTLA?=y{7*WT&p{dJjopAj339V5&D7E&;R5AtA@d0YC0l!D?4 z8jY!tT*^|KasBgBhZBv#_6%Q#<0<R`>(0Bqw8zI?iMQR$IbFOTP4A<- z3KX|a;Df{yj><&SyE0D(w6cMng8%(8qsxa}b^P-&-?QzXANPuS@*i#$JWwx>a;VuGZ=zBp3ZR?BT2!fiYngC|6FNW>?~EUKq~-MK!t?;D)0S+oAS-YaYKbhT&oi(qKAFxK42 z1hMa|3APLkGq(gsu6}!!pJ8DS*)CS3?R%J9n06aBG!#M;@!*`Ty7qVg+kb`7FS zHgv-SLYkjU*2&jL$PPeQgIH+U=qu)+e2f zZ9Unu#_8TGNDPioTG<8?P4d&8k6A`=KG| zHXgO5CQqXI&vMcaxsqu%(%96UvwCf+69?5Nk5i)i{A~R#{vuG&V+Ae21jK-k22Qn~ z(qiQoM14G*pE>phpsAn-7yQz(XsECMfG=~+=CO)o9=KvayCBe@8J%DC4#%UK009P4 z-espKT{y(7ze0Loam}JYm8&_MJDQYJfS)~RwCl8q0LFUi0a(&CJ_vTobtVc`V zm>uTl2>Z&K=%z<{zGc7I-25Vu;v9Q(uh;b}67~YsGO}*P>(?#1Pj-IT?YgIE0>q0+ zOQOQHVAXsF+Yq}`EW` zV0!{L(rOf(<@Dqr5Pa@l#ecQy9Iino1aRaX5%L}nHVryE^N5T&EIJr@0jw0-lQdD- zYkg1?bt8RA$Wf)d%VqiI;#MTNO11kT)|+W==(sqx^MN{jaLj3r46WHjvgHs(+d}so zgJG_-BMe8s$_y7g-nG?cv#&1U&FC~S^f?DW4N=r2h39w$6+@MfTsuAKu@Zyj-QD}6 zg{#UI!Y#_f&I>D{?nUNKcYS^QUlxS$vFVY6LelXns(qNEg3og1d1nBh%*LM^yF(LB zOf3;t0)_$x-MSG&tilxSUEAAmk@ET&d&|mAV&zkoQCvdFThW_7KC0o^IsD}38#g}$ zWYE&HoH3`{M9%11N~N&eZm^AwRJ4f{8`N{f<<+GxE#7V({WxMwz^ghAI!!ax)#Ig& zopQdvt(ih6$8g>-yZZ}wo?&`8rJB1>Ls^pCjz8@%t$_3lmHu;yjZ!A&GpJFMtossg z`_ik6p`L|&ZeJK`MvCitnmro}XC0s{x|2 zCN{md>Ri4H(QKlKHglsoV884Fwcnkq_Yctw-EoP^33W}Cq^j& zc&?72xwx73DI;E!nW$yM!)D)W65~}+j@|1Pqa`YXx9QDOMO;*?w};j`AvTTZ38O<>#s|SQl3aat&dskNZ#(sC121qgi^44!UvnLJ5unCv&z`Ah@g)IuHe&UD&(qHOlqq1r`6jl zDI@!rsqVj9 zEEC%3;s6LvKIu<)(pNKrH{;Ie8U`fMX#(ArXpr*Qz`f@OsJ?WtmWIW1>CrBguRmZ{ z=Fv-Q8(+e$dROFMqwKpO*qLMQ8-q*dWu%DA?)uW@@>(LwC}-2K zp3R1!WNjGM%V3YNo@ijzlK}eo&>)~27Y26Rd6-a-E|;%}(p^je=fu+N;#*i=w^aM0 zob<2A?eFEEqG@LFgk`^V9AysL-}~!}*F|US!bQDc)ZLk@q0d1*9t<`es-?EbDdz2& z%4+-W(=ooizpJ&V#4Pav92EQOVJ=FK^UQH=ASsqeX>}q{`>rv3JM2G4-F`;s zBEv#v8~%t3Q~naEl8Pur<^C@;E4(;m6WfO=zpPQ{=?FC|I+zPc!sI zeNeXld7zmD8@Kb?P*95ME~48P0G*ck4mWt;SD>6=kwTblz$qSZu77Qa-hFZyhgz2WIa%XCb(W@8T{rxW zX!p)`Q#qSGe7Jh&HJ_8HWT~97K&f!zp@=q{LXmmjkMcYsrBO=F+rq#iN%lOeq76|i z6|~C1a&5b{f2d0C^7{eb63-+jZ1EwC0}!Ucl`d+jNGCP13$VqkQa$W^b3$9M>%^{& z(|4&1uf63W?)P~9z5BNWwuMk%n6*DL-@Nx*r0ASG&GvT~T5UxY@P)hqvE6~&rj6yy z$HNx*0VNe_rGuzopOh4&|GC8dUf8V17D@NM7l$8$K1J+t(bE~5FLhxU_vmSs{S6;_ zq_eE8(6#*q{2tP&dXup~FM7=zMlAg-;r=7uqK6?>w~AHZ33)Km-@dIWLr@W&SH!_^ z)D=tsxi&#!E?A-wI}R?pZqZ&~ua#}7&{VX9007!YSKCAwBZ=?`KL!aWqhX}2t>=qP z)W=2wwApc*S}DQ%J(z{eD@j=~-LI@w@MDSr$P?d_%Ru@HOjW)l5w`^HxNh_z_<2V* zONKu^YiJ^dk~(zE!r!bLI9GIlB(1|XlTX!0`Jx$BBC$ofuzurhi3c|yB^xreMc};K z1&*gjN80QJdjIgi9`G#HQLupftcd-h`iS@ViqhwcVYfwh8!RWq3N$ovg0ok{VwN;RcV47bSB^(Ft zg(>oAV4>g>6o%IuG7eEf234ve$%i|VqFZw7+z#7LU(c7HE(?ZXK73!_cxBlDR?8aZ z|Idr^RT+x)b?|yj52}1#pIxm<82s{u8?#fbW(hC!r->>U?eJ6NWi`ba*N4Hl#uH{p zV#ld0uv6(TtJjMsmr7oTkWs#8k(CAIE8HT4vc@8Eh+!Qulvjkbnh&8GfG(XvgIz?7 zui~qzrB6Yzg%9DBletVxE9Dgj4_7O+C*;{iy4i25gf{f_5+gtV29r*@nGdGK3=b(h zWx$FxoSQ|TUo4+QW-Y*BUYpcuGs;(oK51+OuEar)yBs7QcIQM=XVRYv`?ug-cgJWG zJ<2D;p{iQ1jg;u!DY~We4|07E{W8}LNvAu-L|^|Vl|g&jA>AGg_FIr1?xuyK0K2w# zVu1^85CR3WdM@1a0%G73|FgWr~Q*_6K|+fB~%ug=PfGRGk3m~)o`^2vWZUSxA9o3 zcH5%ODZ##5lSVLS))7vkXfB&xS(GvXLfyQKol6!+jAXV<^^4t9OtSQ22t!s7Ce2_) zjJ2(P64m2YJ!oNlPFo3pK*ZD_Fyg81JDG#l&NraP8_U%4u3Oe+F5+x_5|eRCj)?OU zkyF?Ke($!uF>%~J(Q5Z<+QcGa0$R-XgrMIoIV%43Gq&hi?|OCg*tz)QM1^k7Q&_95 zx;{4de^OjdZ@vcO%oSs2w#_{e&Q5AIzt`!{;UB(S+#RnQ=_JGfxdcEr=)bZn1DCk` z!&+T0ua`;-5GHs?;?`hlXYG$D0SY#xoZ)6Eyyp!75aWh%1jIaNX5BsBZ?=%9z1 zeo7Z>*fMgU+D^h_4(I+18$GO$ubUNrOE`89s&R~%8=4z}3lg%eZ%O*ng`<0o8v;>w zsg$GFxt!dX8ni;jLo$z~vNPj}6VnCgpBP1PnRoY$%!a_fWCw+M@bNMy%DpY2$28qS zaYsk9ZuAe)I)Ke&crMD4pr6>t=-}F{V>PA!Ej)nr{=I@|VO-BB?N{NH?CmSUco?G9 z^g{an^R1T4DsA0BE`8t7#BL#SW`;x7Q>5DoEnzmx$o^=k$i62RGH|8fU8?ui0xA#~~Tp^iU@Pw}5K>ZEq=+KmlEv zOIMXrHI0S?+1%k1j+-yD@L1m~2|7JbJIdYd^qj&6c|Ahcn_&V&)vreH#roL*;co*W zXkZG_r%cZyqc{U$_!@T7;b2q#t7B(iboa|;#JiP6npJ?&w$+YdewOk?Q?$ff|D1J7 z`hxPlHoKg>qo~QZ1S51wg{o?X>apdBwWM#?!eTh3f(4Aw(q`HdQMUu3x;dsH5y@# z!)c3>SSYs$!_3_Q*$g9wfce>IBFcq}n}_7DwOwK7M;L&XZt=W6Y@HJVK^LwI6;`4C z*LQuQ%2iegbnEh8rA>C9;@o84cG)Do`C`jw{71~63dcW3s7Fn2mQoL&OT@|l1|wpP zKFfZ?x7nwT^+%fFFM;3Gz$Wz+Ic}?>OAJd)sR}j$Vmmvhj8LJAIkO*qeew*cE70iv z#I`=TbzoxSaj&T?lse|)|DbHErC7K~^W2TUZAn5^8MftUSyYq^MZ;z+>u2z5JA*V- zyyJ6?s1VkJu>(rR;OG-d?Cmw7)oq3cwYIfg)xK~$FnXgA zj4$#lNG7h3Qu}QR)K0*lbBJQNr;aRalb3(rA=D~F}jm$m#D zj>wwg8wg@w@5(q?{Uk2tR;o+Nbb!U%v#5l|)K0rqC|yib4KSE&J!ru8yZy_gj;0F` zLv1QJJ%s`+dDJj9BzWJ5j|49fx&i+LVOKAyj^3rEYVuHZ3y+MRioC-It((Y8L1-Ug zeCY=zBX1AZXrE_3zJmNw4A@8!!eYH~euQF_4bb*?S(^}wHu|=n1~r^7FvS*0yUU4v zg{SaywV&|E25e!L`L*4&IX`CXmYKD?kiKy4Rt$J>{$;3 zdfbxC-MIhI*L_G7-Y7Hj15bW?qmuiHG;umr8gJ`N@=;G2$~&1FcY`(GXzt{Ql%eD^;wGDyBBq`&{DL1?vp)Aw5Tk%d z&?~h*d4is~A*08%V5kbf{ITfYJG_KR%s-xX_gDfVlW@tipW$j4fB)<5xzL8^aI4aW zCFVpSC;G`p*to=6t@Mpis0z7SBS~QTX2d!RKDxe-V{P9wu-Fpxkx-P9QI>E~w)V9$ z1v9^&YsCDdY7&zRS6xtYE0HR*@8V)f(S5~b($wec{J^Ec;MbKE)hc-FfY^|PpQg5jgh{s6X&!sIGR5x zAP^IB+f-Ral7=c&tcoFzlQFAEn1?jfT~ge%0k|<}B;>XTwv%C%WQ*&WCus_CGs(c$ zKJZyv8vXlVallB_PkrLy6r%76MztMo@ZG-0z;hehY7(^|Q0Wv6GgmI%*w-sFcz<8Z z7h#nohalp3$&%h7mfTkL^+|lKT+`2>?+cbb%92DBXOlO1D~&X!?z=Rr^_wBitj)I- zev7^ap$y(jy3u6WSx<4 zFv!vAC6u+t`x%dlndFrd+`03;X8&ItKUZ$0tfv*d^0+iULlNqoP*=G4(24N~k~XO8 zO#i%Ws68z+80rWVmN3FOVb19$3_v%fRBcaOe`JBm2FQ}T4AJ?uw=+36e)u2GoGFx; z8slNtzvFQyI~9$y^Kyq@>Sh8jKNJ&NJJ@(BcJ$I!RRk!K`Df#A3wmG7Ehr2P9Nf5A zE+&3nTr)G0RV- z4{5rb}l9JR;Nx50N@hn8nSNKsA8oS#lXAm)$5lxNm5(t zFT*^QkgXq!D=i@v%V` zp)2KpXvRn87^t^IQd=Mr{mKNOjcqmS(!$G$_XZnz^*jpB1M$<9-(XDkAS+f_Rl1f^hj^JJzWF*H!8|X z`#86NJrET;-mSc<{!(GcB)%C<z$FYi!4$lk)vl((rjD^@=PAomd*Giu%=o%?q;q@jafRi2jB?TZYleG% zpKSd}?a<9n#z55V0d2M2824^p-x4cgPN<1FkB7XtSVV0a+;t;NA;#Etbo1|lyYrSd z_<}}~SVq}GU9w`s?@~P1t^MrQsOIZLXqja&fMS*4rxR;KVc^)&_|0JVON?R>DzS5y zHS7sV<&`FyZX5Pri;LZvm3$`=z^eF)czewG7ui!+RZG06%rJ?Fj*fV>yf$o2R!Hq+ z>NPd=<&SFg{DVQHHzp9Ep8T?U1|)nMmZ2BLFckDVM}ynW`Uo*bfd;hD9DO|&^(--$ z{586J!wmksP`8=z8i0F3ts+lNc{`2Mm*}|ft^I{2*%nJ{TkQ}%*a#Y%^Jm#_^g2ZJ zyGvI^L9Y|ECTO$mV#nyX%n%n4w!64%QphB89_s5t#2T1Sc8Cw7VxO2U(C@$$N2Zco|ICS?P3Nf1?3!jv zl1uyfq1f11r{`HUTlynn_6kp_sk%1%Lo)gQHnKzCrycyZcP?4=%{ZG0?r~&JGwvh! z)OF<-^jT$U;aNw{E!S54#rW!zw)oxB^I7Q*K?TI@&^Gto{Bcm?1jdB>*m?0%!|JuL z6mqVs81JCZ%MM58{Nq6zQaX(cJmc9O6SCCJKt}!vO@CRT)+Dru{)D$zmU2>{3)Jmo zv^@+9b+lSHB(7zp%Hf61xYX(Hbka8(ID7B+Gd+q?q^33h0Qpv>0OD32`(%pe$c~q$ zzSQ)%i}E`S`5Gx#Y>LiFN(|;$h#9r*zGu&4Io^T;)4z2nuFcK_gJzcB16Fixza96h z83fFFDmzs$@$DY1CfGkGr_o&}UbDK23pY=!o%v5gsPXiE-hD%mVo-R?ACT*h-pQwX z>$&#(7ykpI`za*rF8+Ac$38>%+$nwM+-I*_HZ(5IQ`3}X76beo1-<~>EN2CTU`4qu zp=@23e}2gb&;7b0)}lWhl4@C%d*lVAVBc|61IuuC&X!ui(U~&Hlw*!G^WW87o)#^p z2Wu}s#i{2{1_T?WYOB@c-CwP0-Cp>_j4mqIv}M~O?ol>=D3=-llgOU*{PqQ;(-D-G z6Riv2tTB?gAxfbl&9U!)C2$!Phxj?_liZ8RTEPZfRKK00D(4M<@oP|;G+E`FGD15D zrIwLE5`9zhuvJKl#spKhF|_cn*n zw{z^v;Wcj1YR`FWOzDc3!lFY{^+%+;;{S>(u-s_I445HH!@qPqJ@v)K+HA)Ne%~QF zanvq0vvP45kK2MmmMXS|ZDKK9+xg*tjC>fJuCIFbQygd37I*(X?X(R4&NaI$GlWYZ zF?<@ze%fD!Y+n0C45#f4s;k2p&0MO&%TNoQ4)u(l%DN!)wKIC~>55ao6)RCrxI$%5 zqLBb#6u_=`K2FP0`A{Bc?_m5;9WWbreQEP8g=PQm{KCaqWez2p0hi6BN3W~#;b6y6Q=~CU$qsE8J z7M=U^6nfTBUyzA{CR{hvLSRm279%}Gfr>C_W0wOevVfs`gKurS|8upVmCz>3Wl~pc zX$jku;06?Tte)$eJHZ;&-~`ADP(J>nevf=gFjrFDIDYymQ=~m96)#>F{N2Vql0Wb? zOZ^{?4Duu1P@%6)o49dyc0pR_d2*$RbA3ym^tr?n*Chh8syVNwfu~bx_37#H#|S`z zsv4c-N^tE0l|un})2#UYig)CLXIQ{D(&(J5?2@s?hU7f6sp{in!e7j{Uaax2v^K@& zxtGdF6X~&sw^czq2QE}5R=mxVsRv~_ZRlt}9eJA*LjC5$3W7^%`7}Mb@!1iE@Y|CO zr}i-yNX-NPO>Fv}*V=-y&qEXC$vBEf!1sQ+F=Z{Yg3@c4#_4ebB*Px7c1sM;HMfRc z3+y_YqgUp$p%f};Y@)Vt&u+jtPGWKr7p3wM9% zcI=%)<_<;(Qq+o8I02(qMe%n7z8?!icZ|9R{5bw4y9JW2Lz`L#@yv{#qr#s2SBIZmh z7&T&cgp9`;1=4^#;wPB;U0LhXY*A8*lsUJZOMm&{r^A}CO^X=|y)BJV~~2UD+R*Y+Oe)B5;~ zO9uH$=#%1!#4MMPtRW~G-g#?ty76v~umvs$a*?^E>r$BJR_(7ck-3Ej%&m$e~2gm=`JlO-i|yXQe)A7jALX*R>e#H^dVZa_{I7 zd3-4X^-IrKYN7+lv`{+zSWEq;pM&>09>kIRKZP zq@&VkQ%l)}qKjE>kIa8_d)kS)off3Fe63;3VTv=uZVML)`cY@#BGIZ@Z1qy5^VO=l z@90rn=R+$?HUt_PIZgBuZ}G5B%cT!;-6LVMb{gLZR3!4Kq8l-YZSB2ws-Qe&A-Me) zpl~oBFdhd@xwJ=)m6L&b0)3ooPoXD$&(|Fb>!!_U8EMHQ{rXI~X!8GKkKLYzXEXHG zo`9{~maARNO83lTTX?33;W(BvxL8JSEq#uHbJL?ckq}4t3)1~Y^;UGXCBb)W zM)A1Tgvb*|d-`~207R2hcito|E2}s>&9vZV*HlAhU!c^Ow+X(diDm|RAh7;}@Z3v8 zYRW2N8L7N2yD^mea;`KQRo((!{Qdw{Oq&svMo++B182pWvG$n-h!b{KV#~7zcP;dr z^^1C85B*(^Pb7Ad0gfBkM?VlEG5)-)b9c3)?4F4l%>_MCWA*0TEeG8@;ZYA6W@0~E zk%KL9&Y7bpEItF{#I36I2-lXQcp2?@ZH`{ezm&Hl)unIRQhP?RoPx_*js;`mkL|@o zeWXl{m}I#lE$rPg&S96%)`~A(p5??+ni=H&7)*K^I1&jt>M0- z7r!cDt3{H^p!+DZ9we^%kEY79B(u16I{eu4cy+kSVabVobFWc#I!=-ZZRw|rb9!|q zW~9&{86!Qvp7u9tWbR9ATdt!e6Gcu7;)s6wRe!Q4(vo zFR46@)f@2Lb92fFL_9Wab|Of*s?v_XWh!#%Hb^^}n`2yZc~NbhiS{0j2yLW@DWzH@ ziEz6DE1J30nuzjk?5GiN?O<0A#$6{-y*p%l;%eD*dpq7>59wvB@li-BWx3Y7BBL;k z3<<#Y{R@_OI&AO82@kl%sfW<=3+5)D)eN}!IA?+=IODDGf3!%H*H9vCe(zwFl$~q&Ay18ZP zb4QCAChf2?xC6=L3lqC3SSA`c)5HUI?E6HxX|ikCM1W}u3tKrDDM97eKRg|F;3U%z zWw2ehlyjRNbvUCD3KF1`y!wD4$fBs3%Fk-sC_r19BjkQ}H4gLhI`>3&v~?`Ed9|Ed zIU|oIRwkCg9XWH<9|c%#Uuk`3k;4}cKC#I+qdf}H@zC+`nSmi6GH6l~=jKrVcG^ZE zA$DveCNk#w-xpo~(*PN^;^e{r|6IjYaI;`l%65_Hfn2)EgG+NGYno5a>z#YRyS(p; zK&R<(I*S(uxs#0_^~RhtRF~xDxWa?q%f8Gf(ZJ<+Mvj4p{{Q_a$Otzb^V}DItKhzE zuH=#_%_49fJR%Ftw8X3<-+m=T&*_#i#To8co>rYgc&DYSP(m`}@jSJXMaOX!_(pNS zTK75dBR2o~%S6UPXobqhaQ%10zy02Whwd6qpA9$C={fxpm)DCBRIw)YYKHE=Qa2Jv zS^OMrl!(+#``lh1s{2Yc0Jq(8pm>3ur-`~8bf^$mH>qi=EL>(}pOy7)tID)NMVO+M zMTTd0;Xt3I*N&FA`7&>%WTh z{lZ%AN+d_FC#pIi)WR=JlydYI@@-vOPacyT&dE*;TJ|H@u39SSSuz@xL4eJ8CoZpWER?ZD7a{!nPXRur27PA#2h~;Xr8Cae{1wwXza`W2^&zhL z(e)7Y*ley>uAr5Scy${-4y^UQW#Hol7VULqUTCuMTD(YhD3#fMwy=fiZEH(D!+>Ly zGw7cVzj(n{a&K2k-35N(Q_Tc-ng&9*({Rp*$hHgxy@Dh`@^B7bF@dr zF^$w*eER^LPAq`&rN(#w;ZgOMK%5Wu(}N}4jjCENiF3rG^}BriO%j#g-L2ls#>d-3 zElm19Ud?^c+85uby%k?DTzuuWDIfrf+xRk}3)PaMUrw#zDz&Pv;&k)L4N=<~`TqJa zgA|^;tbzS6>Buvqe>-^wNGDKJ^w0h!N7(Ky;hFly6aahTitbfy=lC-AC2-a$ab|kz zS#K@B`V~*ldkHtoZY|v{uI6vyz@h*NF>y~r+;xYqFY0}Dp;<>%+nW&Xo#!^4NX67- zCBtaI578lJH;8~(ABW-Gw;%GwsrnEEJtaG!eW*I z+dq}ev&>Pq7(gO_ZQ>+m&z&8eE`8#p&PVY6mjso5z8j3w^w>}I(Y`T&T$1iL5ui=; zyhO_x?q75<&P#}jxc{MaP~VZ5ZuUM>+Vq&|56mCQ&Oe@sInHXr^MSrpQqxANa|k0% zJ<1o)kccV2oSzh6C{qXVW4K^|B>A5SUlBP6WiffFy>V{Y*wF(4Da#FJ)>m!=M7@Po zh3~b25jDo6LxHY1&*^-Dj16_U6gAzk?=YZTFn+(R?ft1ZfvKhFnB zt>5_XYvmrQzLd6m3cA%kxV!68?F14f09s2pU9K<)yH4;&`gLCnk{#0*Z^h(!J|Jom zODRq{Unkk3zn#n2wC3>lh%79!$gG%#K|lYMDmdb5~l89DkLjjn9ZE_E3|b84#Ghe4_0Fy8W{^nrruBttY1Zjc}%WVb?Z=)@y5- z{O%0xo4be>KQkZWnBnaJ!~|C|A&xB#Wq)=_eEX;0HJu-}K|}Ph<6Cx4#Y;HETH#bb zO1_WVXT%1LNP>t2Q`(%;IJ1@#I&8dhr|YBLYLlg;l}ZfdfC3ie zPE|@k`cyYWL9NZ)>?5HbT63T^1WnE0vkS_EiLrm^d%|4Lt>WY>r~6)<>#CO6bMAL3 z+Ah-{jcU0k@SVFBlY?16*?B@`W9asln$~PiNv!}cEVerGzNI*O9wD(*b{m1|KP8!v zk#_}%*9*=?&QKlQrxl)$q+sM|hVH|c|KHQ{|NeZwzz|p$eApPH&!Laf;J2vfd9;bR zKHeI}VCbSO*+q&>tq?J7d|mm`WAT!Yh16C{8xb`ZP)$S|{cfhbPE_YEyRiu?{Y$c@ zVZGi?oVSo7@FV}9UVLUVRr53p`P8MiWpI_e*H0ONBn1LDkMW&XZ*SCdLvyNQ-%2tX zqW#TKk&ohB*X=r%t60JACI43Y0kNZGCw@V#+J3|KLDU#L_zjT}^u#2)brswn`j-0W z^Vm4`e0|{`51MB*_kWolm6sl2&RU!3IUI}++il-3*?EHRV-5I!{)~8+cO&n?Lk5nc zSRRNVU%I-AHz_1@ZdZN7rXQQER?I<5G_!VdzJMf>x~$&aFPN11NEFpghG(c5F&D=o z$^9E_A#>x-ks~p!uD=^9s*bbUZLklr)~Z^ecwK<||xJ&Wk4maQTyZ4+s_8w=P{Rd>c8OigmXRbNtnrl&oZ=3wEQ=&rPo|EgBSDBJ? zQC4J|a8f#x6Kbj6cy4G;z0*zGtCSs_=ey2A$h&}KgvkjjFEh7gw-{G@De8dmag##h zaGYwgizfXlQT4Y247fM*W>&NjNk&UOd|e-8`8W3Fb zt+!TfWjF}hl@A0{Z?nmJX$F3#{B;m&4)2Q7{BtlXqCno_A1U@o@`5>gc|0S3gPXkj z{pR(JWMgvb!KNb(bg_lm|Cvtg02ZPSu_dNa?~?nxaX^oeE265RCN2l|yD?(Gj1U@L z*0FM4klK%A6-Wcxx<&Dwm@$WSfy#<|r2MILM?H%($;+%Nx2k^9T}hRT0aXr%Dl0x zF$nP_5_Y!8_^O!7*y^IwK*Jw>sBP9gyI57g!jVXUHI|%7HepJVA)R^2% zHksEZC~GSITVmp*lD2kBH$0hMwqYKD{}#e|RKZv_prS-?t)5F{i|a244-Pxio~CAE zm*yaZmQb6AJ~5i(j7q2T(mzIEK^5J!VVW>KF&vs=piJyIr++GOm>iRb9d(chgD=e| znC>cyNq5|7;LmJpCPADgxI0pqIi-!&f+MBA*f-Tv?vuYUJcUoGnCwe0 z_I)dZEexG&m^?2=q*H5Bt`2*H^#>8diJ}0wljlD8avl;1tYseBxGzGgv4D_52=JJc z3wQ2D>EmhJL&-p8-v6n0`CsSntJJ!fEH(1g@!{TUp4K`(==)C|+fwneubIm)=Y+RS z<+ZDu+LohQJ9EFHjUHF)r}TPmZ*G4LaHwE#eO*DIB-!^_QIZvSU`}v|fTJyybQ+-i z7FV7>Q)G<&=T4R>t(@akrHpUKHGSm@GH15oEAs=wo+iF5J@DY*!_UaIf8dne;2cIp*dC^tnM zQRHl+Az(vORJIgSAF>k$D-%={rH(Cj1BLlAiH!MXwk!?l*~a{;nhnYcQhnz`rMQw} z_2?P3^7n+G(?6~|_*HV+F0V(=_XJl;jH9NY%gq+JU;C!xxjN-V(_IwB*KrBxLQ7LZ`OAS}y21?bDf-*&%n> zm_h|*lhTjcuN(F9onW;@8XPW1OxCpKnC5KPL`EoT{y#`t(p)CUrnW+qLF^CZZIuN~ z=*$f^cfKF)Q$lAylo3@v9RQDgiLK{as~zeVKQg-6_%&9G@#l(X;zQ(jEJ0pE$BUup z%=BcF9E(PDhb?^d;0A^51|a!M5xYVBQbYaEoXBOGNFwNF_W6m2K;l56xNzE~Uk&03 zZVR}<1Hm;+C3BRSG3#e&rP2T3m`J=gqjA}`hzH#fByV+rWDlxue#g!!0;{~V-bi1qm=`bRY`%x1p~EP6aRid3wwO_`%It8UVy-qo+Oy`yWu^h zRm~D;LpS(Jpjz+vf}tWYGIS;}0w5<^<$BC>wSiv#Vsk;~%q%Y>=O|jT7wUs)jDTgd z$R~QvGu{KXg+pfQfZNlKD&uU|c+=HB<4@8K?g7>KmtF-6Oj}7F)quZZcMuPa zr)Si2Pxp7WtM~C7f&PfaY*j>8+OS1QQPi8s*Z~}1fY{X(9@*nIowX!d^yP_~Noj7o za0MizMqg=A0|zmcJqN3BY_%n(Qn-p)$R&(e5M+-)Yb`grycnuB1x||#QO5^&Z<0tm zF>h{0ZRe$zemDEuLg%hEL5%VB2Ql%e1G1=>YdnO?|5d%4GkxmM&yk)!=V%eG=yClZ zr_8)u*)~%K$r9`W{Qx<}ch6ww-?!gKJh10x5eK%M+Z1s8cQp=wMD$4QFkG~KT zb*ePMtMc6utD{L{6zwf7J%=SNupAn$DfyfrJo_i5ZtQD_^;h6!K8?LGHiCV6Ww&2YlwYRx>2t9a%*iFM z=W(OcYjUIMvuZJ#{mj(H2mqB+Hc5bB2ErG z55?+;@_$s)7&sW|4)(H>4!V*ecT;21l7iAViYsrPIDlp%0C+evT4apm8NC`9bEOR} zaglVfal-CLbZq)6JHV&s@bbOGIuB%Ye7LUmXOJ{yku^er*V(r9J7GJXi=nuC`Yopz z?NU-L#_8;lgIZE6;#C!A*gmu)uqFrbv=r8^1OHa9WlJ-)E^J6N{9p`%}@w=qi>g2s5>vT#8CP_3r3BFOA_vu6Q{PvP?x`> zBxyfCea6JfL2z}Lzxuea2(>3?%Xj8X@WThLQOg?@nC%9NU&I9_k+m!`p>6tHFEYuz zeh+W=WS4}7FiZH7o{b;8r=?%4Gs($^@{;0A{6oovjRtqF(3)X@^KY+mk*H(e<$cfj zKsZ+2Y&{%LRHxKs{kA?kN4%qK@gO}&(xbZ z<;HSzI~aG7zwm`T4qeWg*YR$gpBdT6iNR{6naaPJY8X#ABXacbI`vU+`1uos-_yIw zrFP>bs&`h_HFw$WU{8$^l8yqE;`MQE*X74$7}Ii46e3kejM%>Jl%0Mw=hx+$#roDi z0o~Tej!WRqJ^@f1Y4tSTK+C9>!kIyDf#@%!Q<|Ay{toT5%G>avp6s?OU6~q)>${g* zvzqE@h;Ko1^`OeuNjzmE1$Wc3oh~KojXD3!vBUS6vG?VrSBSffW25aIyt+fW`KwVS z$-4Y$;|x9)VGGno^qcIp8a3^ZSYpZTDEtL|DOxuunvsvYarNKWqC9{013VvCxeLLO zrt}GeKx8H6|KK)Rm&Hy0Zm3Fm$r);VKp>oXP6q-EBrTDD7WyHOAFOX8z#n>UL=K=v zP{vp0XtXfajIn#@{qq?0gFNVyh>>DqL`J2tSMM8$f&B55zPjFifpGQsNWX>8$7&?v zuGoH?%+8N*&h3DLwagOM-28t4*XNB`W_N^VupQJJ{kz_eFSN4bEg#4{33xRetwcNG8{1q9!;k8@X&zdbpRQv(U68+}rW2lw*QLn^fxhrcYH*yhod zIn!4(KVZ5CS6hk(Zf#dK7r zO}c#h3FZuLSQe=_O~)ri*P_CM*xhv>j-|;NIgAU76JE|Mrg?lkzd=rx(EWgo9;=s-0XNKk5JA;9 z$)W&^4g(pzBT|$0?{ECoGq()z1o+L~FS9n?XkJ~{Xm_N|*0XBu?d6q3zg%_xnj^=s zF7EmsO(a zO`k<$QMuY^uMM%BQMG3%dh|moZV{Ya>=DPYcsWG&h_4P~qt85P7>$UkH%cHQ4`12~ zA;I`tv_2Hm^>k43D}bsa&DVlK-esCg(X5BH!>j@4ljo|{{{d|m{D2aiAs?n`z`bf? zUlR?mk8e0uKO8PTj*C;9&I|gW@I;`YxHszSL?Mx+4?X)xPRkgbZrxopv_}om8ZYZ( zOX>ZjZBhP;ds0AvlYmwjj&HCtg?+HOXjKY}Z2YL8S>)^(lm0p0=HH3BcCc}6@n5EI z2R~6~uE-d{`Lj>z5-sNsiRzOLi<-sINd?8mk_O2Ws6ILrYYs%zcdYY}>z{mt-Pi%; zitnPf6x@#jBt(<#1Zf1P{KO6DA>EY zYx`zxKd{<wV2}PY)N&gRgop+P`+ZiFiPX12DHx2FpSi+g<^GvTRMys=O{P z)vl!fuL{vW=)j2p(XMy+@eeTld5pE^QjQa6@~i+YIg-Huy7}SzFl*?jQGzpp15+@W zUVQU%4$o$&+o)Q?5td4Fs1Q4xiA`lF&<+36K%~A^=@EdWj{vZ-#n+t}`SwK!>EVE$ zV6WTILQDM^Se)B2U|<^)Cmi^e4piJ<6GHE9o#eCu&`-Nvz9Fp6l^l-t*x1@i);HU^ zKhE!o7;pFf@sR=*Cf^<>A~jnRQQL-r$9z7dq`NchNYNo65nASY{I<9`yUAr`deuUs z$ZdJijRd5zf2+LxQL?;>F3r5pq|jjX9GZdtDJ9wf2Z71$j(h2+J!BX~tgu>uV~K+C z5#bT}g2j-*xT=Z!tt0+0O=p`!z^3aqR|@3WeGeYf-m%O3KCLt7P~8^hiK%M0eNQ}ceUNx8tn%_uH;7X|R?RNX#!n=RPBib1}az$yd! zmT9Q-KcFiyf>naQk{=jBw219KrspGVl7UkD_Xv^!)-UT0AVIYbK6t)ry85e1mj2KcR@(y?VVg|=RvoU*rXro3@jH20trYT46lMkpZ0C{I6w)9H z)|9PRBZ{+JxKM``Hci^`a2284c@EAd(Uv^_tGXs$?W(u>54k&DYbZJ#tnuOFTpPg6 z#;3nMb*Xcf`Xk5s_U)L%8=!U^{p23Tz`I;ftVtF1b^ZB5So2^A_ufk=()9&QGh%1hTPY0eFB_a8x<%?oUt%Rzy2|AY?c^&w!E*kGEcVKPJfD?fqq@3i2-{{MQr#6C{crMDg zTi+BH-%@2{zs+IBK^$BYcG1H#8+nuK>gi?`9O&wsD%Pt!HWV)yeFWlDedpgp9UqK5 zosuEY?(<&0HV5-}$-Y3}NzsBf`L1+%*niQI0VKi5`ZLDaKkQCx9-oB-$W4=Oo1MP1 zg#If%H)EnHf7iT>=63IerzdmW`Cd-3seDf&3?}-c%%<{7I&7ZiVnvCY2c8EIoWay! z;bX(5`0|`qba~xJjRN!BOtjn&6d^6(CM9nuhKDV&FYs-mHaSL83yqfHqD3)P1Jg)s zDm)tUhHW@B6m+Rx6bA^Xt2BKy%YJrCUbmoNgbb!AOk{R+=&(m$ptfMLa*Q1;&?$Y= zJcn>GGIO8z;HI~bBN~-1}x46Z8OmqacQUoF1*a4^0+%P zQBkFN^LYJ?S7A8>B5AyFQ!k$HK+VhEax+SoY8 zZ4y0uE?A0lu)g6lK0R)2XkxpYq91YkXohOPlw)gh5r(dr1<6t!H}s1ykD~bfm&}k! zwgn&ZgQUo12YmRDHH$v$1Cxj6yaoO7;eJE*-t6Mgl2NY6kD=GQy!_$KebFVm+X&+X zVh`wpizzUL<`=?}r#fjqH2v{IAYuY*MVyaOeX=y$O4mLC&(mtw_RBUcCSDGA_1-jf z97)NzP`<tYBCyWlr#Fx@MSXHXkH<X+U!_h){yjVV|+5N zpO*%7=?5z7@Y=EU*f^YzT76K*IULr9gmhez1S#+e-URVdR|j+$JGHpIztm=vZLe9UR_{cdvG^Ahe$xhN-`D^PCkc2Gjgb33FkT&iL; z2Q2q%5^G*6l=TFEjhH2b-d_z%AJarAxMpO?&B8X7w-sIWtP_RMQ_e>Jq{|9Kx{Xn* zSR>cXn=~&6-o6)lV%Z#L@ci)@G2(lC^y=8>aYJY8ka$kxRuI#Fyc5UB8a;Hi2ekr` zE5Mlne7r1s-0C&;dtdAB@TB+fRCD6ButasOKB)<4V2_igqWt4`Z*-7K?up6y^+~ae8HLatS6^7I zeyn}C;wo%9+OqcfN9NtSai-r3`^>MKjs+ZO%v*-4`hpLs&1I$cVe%GGki}t&`u47H z_!|Y0qPs65C=;%(2Ij1TzwdszZi?rcX*7akmOb$lL;uVXLIwEEv0nv7Gb4Pj9_t!4 z*Js`Pupncftl{l6DNFS<5)^uYbmfWQAR<`wz-pR*ymrUpn!T)S#%G#(oRTvuRznQ= z19JJ}>Qyu()8MBkuGTbPf~5t(gOcxR|5MCQ0+8mz_WGvXFAogn2MHA(9Zb40FAtSEH|Jlllj32KwkULZIsn_GR-b=^HM0{I}O$ccSjH z%?rd}>AQs%j%a(hQ!6 zn$E(96ygRv+0bcB*XWv$0|Qq#Mvf`0evrf}JigAv7LTG!*z}y@@kC&%tcg!bgR8ON zh}8)Nn&h()JD4Ic8|ZbC-w=hNl8YzwWGo6t_OF(4CwD7q zN^@U7*sU|6Ie(J$dv4#F@iUuHA%O0!%2cl~RXfKV4u7AoU!oM2fMn6Z(`5X_ZjfS3 zo6{NHYI8;9ib!gK$83!?s(3#6g>b*f*}j1rBvd_&B@`XNV4N|?_9t3a5bs0fPM0fH=m)G*&yYDV~_nO@7y`M!~a}P^OKgCJ$ieY#* zi`91rong%S?|fjFHLG#N?X7^?ZFY9md+XJJHtNfC!5*rk%9Aq*ddz%?G@3Lyn5;(I zk!;Fei#iqhm4??V5YQ{k=^Wc4bxf0V60+iFK30E$P|TDE;lWyh%+i4taFd7STHoE& z=`=2@n{y$STLS60xnKvkz(U&XijP6lZ$2P)OqgAuKYef&QJ1(<*Wn^2=cf&EiJG{R zpFi^=?E*r@-scnE*5B*lV7fR5#6>)VY@v4*2Uqz8=PYnz6n~5a{v5jVC8{pH>rPZ- zdS4)Ms&G&!6)ww)DcY_1$|dZ!9zqt$TEs;)GBu$#{yTCbqRpU&^}l+m#E6h$alXUo zTz6z$e#m=eZ`8eK`SIoi^oLtGYj6u-NxibY_JbvD|2UYsef6{q&EfDAJaa5R6&-lpq|m!Lsw_iov;R0n2CytGs^);tG5kHMcn2lghFRI2{fWWp|u;UY^!Q zp!xYBC-CBvVn6IgbU$q6B(*(&b*5Z-dw6azQsR{rH_~gAJ7y~3VaP~gO+(Qt*+WzO z;ELP&E1hO1z?beyK-S7=(9Y=F^SDODdF|BUW9aJrU6C&D2}F*{aPsAFR-?JoasnH; zGHEXu$G9foyP^-x)y0KQ(S^?U5~lnjCOvX`#-(6P^AUnsys={6+*uqMT&}XUoMpU7 zl}gB(9!{U2$!fyD7<0ws8ipnMA3Y+#^zD4NUkRFHoJI^` z&S~D4MV(0k1)dQXTpI*zT8L?3BJ_Px0B`c7N+RWLM4(DS^!?An*YqR|BodqBB&{-f zGvr~0-nVH~hLO+B6;p6?KpBRzM2o4^CDE!DtArN$zp8lG74Et|OHq38GmXW@aAYS^ zW@Yxw50Zyiq33R%oAaZIUr>R~z3~k4*~L;>YBY=Mk`MurW%Iy{!w_CAT2PANyxj%OvsWhvt}s$FRI3(%z}eKM%Q$7wPYeAJ+g;Gi-Fkk{#IB zOtA~~A=GWV=Ie@ZS1mIP^|kilnTk{8vrfAXE3$m7xD7K_F&36n8VZ>Qbyc>NMmk`< z(+>Gk{GASjRXO~3kjg%O0U%XL4Q-Ps2@EuJ~}ho64rbc<0>xhfPK` zteD@0GpomSIuN3H?OL4y;KQXpbhmlw6|$i8;eJ-(^(a{Df#Yu5n~@=e*iI&c^@cgYgFCoYbade%k-tS!~q#M+>6AHDE*G<*=8% ze$X=38rG}?+#kH|MAL<1$MDB(N}7(*##Ho1g8Yil7hHPwdbTq@q}wf-28DT`<4)xD zg@iXfSUZCg-@B3XVBQ-AA-2ffM+n8f#pU_cqh)>7s*>pP+=Q7+_i(mH2- z@1|I={7W1F?ROIn-`+?i(SJ20cjZX0Z_D=BY@g^SZUvZhMWfj^q&%>1mL*OgP@@Hit z;AKkQZYO#3UTnWE2B5`8V@vny+UX0vUN*1puCCKD4cyKZg&n8vfG_asHOWj(t`{zs zpSRX5B$vo*xbU%pUp(KcTYGD+$@}+s8CBW$g;!%C&6ja;8pzr;U`Izn9BmemcOFcRNR7K6%8E83c~mTMZ@Sw^T(tTy0IO z#KUR+X{Ol++<`5wwg>U^dU;RYmMHl+s8Qa1&6EHLi&m*IxbX7#oRiXJ7kn7+4ru~d zm^T`}(PnbRvbT2Xxj+>ve<$tqHkUP)G3xiiTU^$HXg2x%Ia1$FtM4Nko!L8 z-C={y9QL;$Lu_%yExFagk_c5|+k8Z-pc_(0pJ(@8D;qapw&wHO;al5^nGI?`W7>#u zS;cWxEjNpq!k;-0f0&Tf-VK1~q-JrB7+=nC*y>YRS?tTN?o8nVsUk&gVQAXt>zXu4 z-7MWcX0tMJ$t#Ckq258>x*?LbNTQC8BkDzW1Bix6*cNa0tG|06wP$j3aI}`v#Pb+? z7c_kjcBr-liwO$+2Y0n<6Wve6i$COUO)*0w=f3*)dA}MM1hapPthz~`h5dRD5Pt-* z1^<3H?35jg6MZ9P#F*ANDUkEr6r_yK%;7}J_h{mR>6Mq`mce#3?Vec)$ivNNb=z7e zISIECt3L@}trYtQpm-x8o8OUs}CTKO9v+T?_Piq3W7+hP){V&0<(~TLyQ+BLHPdU8FlG)2ipVB?Q_gZ77 z;A-N5EB~t&++2euZGQ3ghcy%JLfpygVAiB&|1QONLba36Q^|Ir)b4_=qstOJMOaqQ zzpe80|Gu;?{CMfVPXFfp(lmG$J#k<7Q@`pvY}PBrJT`dBPVEX^aq0yxF8~zw7<=k! zXL1^dHDVdhgUhQz1|L`3Ac0Ugr~TV+5d&KKl&E6^@D1=cgAMRc_m*%%MkUrX)pRc=SBr(Tt+A`{tDM_s1JH2sQ zkyP3z90NR>Kew=G59_Wn*jtO`;tYFq=t;M2(23_smVSJG8-L>F#>1mElGdpL56+g% zjptAssPJW$dX{M_EuXDU*pWKaCy@pPFxzDZKy=5|G1l;Q7Z?ui7GZ3398}#Xn)e$) zcN2e-Ubft?hib;pMDp|)u3Mp3sa_1?q| z3@n3liFM|<`rRW60`+KA0q!;2m-Tf`u6fcqO_UMU!j$p#$E)V}aS+Mi zjLPVOYm5iX@7(mjP3V~IO%hwWAj3)Aj(eDf1uOzd4p@n_xZ|xfyeKUJP!1sq!>(@8hw)dyN&I#6Z{( z5-{z|I}CPoA_fe`bsKFIB~>yraCRf{V=vz3p!Zyp6h|RswO3}c__dhf`9H`DH6oMS zACE3keTvB%ze#Rc*|2nHbRO&I}%4^Cdtt+Vio7WA|4SbYowZel*$0s1Cc1MJmH(_sS8L`3no zNOnwkAoy^>Q@597!f4dP&ti!&YR;q|u`;;OeylDQm3=&^A^DGL(&uM6o>vi#N9}gA zKuiXV!OBDF4-y2YA^GeU?d&&A*9AQ@w+nlcEa%O|UlfM~M?G=m%>`8(p{S?ft=E#0 zz{Dx|Q!X-mTB}p;(mT2Zpi|I|!_E(?a1Zi0V%AQJw1lv;xk%j31>L4U>&~8E zA5GlVr}sY&sR@)2Fx&LVSN70fJ5Gpbcx=8ptrCBQdGyGSgd}zwh{tR{pCarolx7y% zAcoQU^6;LS<|a^Jq%sa8SUBQUl7rTJcfR*Q1FjCs;Kax8T{}bxt;B{|mQ)jSIoL+% zeiv6I@>H0hB7u%%PF2}xEA6cR2JV|kf^i9;_;{^o^l^2n9A0z`R3ET2)!r*h{b&%9 z_*(9#F)_!@pUS=G?yBX`C|-jl&SSJ+zzoYB3wb%E3*;!k z>gVU(JuaFpc)8R;#f7=n}r&Gx*m&+|F% zPBCfRZ2Qt60|=&Tu-;P% z$QaC_XpyBQ;jmAwqnQ9IF)WRD-f%?#+>d@7XF6gNgw77b*Q~8+g%9eQtBMIAgMln4 zg~pV1DJ-)QfPFHx(GZH{K`HnGfDQAmn>Nf!Ku4z*S`I@l;*m@DLpFXwmJ0WVlNfy> zLj3X6nV=I8eL%T=$f~xwxKxf391n$8$Ig&HoVub_UacJuaTO=Or|ZOQ@uDv45;62Q zw-uNAD(iG@sx0qBr();ly+~NkqG52}^iLwuwh!+cjCvY9x?_MsbJVdzG{=@{)?fQP zAI+G$NfIAeR(MJ2$ix znAv-zd<--hckwmi4d;f0&xW|h40SHcMzvHhKUpRx$+uK?9BT*SEU-j(RD1hSUUx^5 zGVGFDCAKzXLd1N#s2g-^YdlFD%IImlk* zieJOIDpu|0df&DcDW|K$UaLD1Y3mkT0|411XhBkGrPvqWd?7*!zgt8 zwgAzJouN;}Qy=(56{e~38s-^lb*WfCRoze)pRC=A0{yR9w^twp2S&QGSpmeiL{+q6 zmY1j#f+wAq&9u%cDjK}NdS53iBkNBA&&w`>x-U^%^n1JKH@Sc`kQM(!Vuj=6;5x2U zbi@V2UgxAIL=dvk;qe)6qlQx79aF9l8_d*O&HF}Au%`BVGDDVDcCEs)Ww#I7Eot-` z;X~BW!hyn>U8B|4Yw=k)9<#LHyKJPsnm$$mthJB%Of$dC&E7@2Ogc66o&3(OsNR0{ zCu)!#W43g0Fm-Y4)|^3;3^rItb!O3vV)r(DrN4`Cz$>25BIS7B1kM_W`};(g2=G?* zZP)Lr=l%DB7c0R|098$j*paM>yc4i_G(tVNlgBHc>aXWyFyM+q)!I%QOfqs#sFeJd zM6SjO=I2DQ^ZKRD1(jG8Yb&9&>cnGmarI@Vok@(|k0#4oa%6oHJWJ}F(ovm_STY)&GoY}gWlwuYsXv*qh8JyK zPCzfSr^%oai4M8tJ&PM-|H{U5oNj!DrJfY>AsMYRW@cb%Ar&*iJ1cP$(b?x#(yiGT zCMx{^I#zGW+>+l44Nd+A)Mj{T#*ax)IZ7eP@7jT*N*TF=!IbehJsP(Rvz)woLq3={ z*nqILFqho;I$)QpvMwtmt!i(4a=ygA&e`M+`#sF(d{9GCN%|$WN1gpshCid`+oR79 zxkAc2UXdpzRjdDN58B zFl}nRKO_wRI%Os%6$vozatBmUe%TUy7Xm)7DMmUfhD(Bh?5_UH4N)JJonASc{p}Yq zFyE{xx>LYBKl_sRvTX;D+$0b2pqU?}gWupqucbj)dwgDb&Fkr-(Ld4+_5QUrz}xzv zc?cQm<~EHg8h(-o70&oZJLH>xL{ay44VLqT0h@TsM>)L5SGaJ4xZ~_@bjCa=H477g z!Oe(nht~)gXR&+2y2tR@*|z37G`_QN_H>{wJg&(#SW z?WclX{q0&rb|AlE?OD>ol;=)0S_X@$`Bgn@Q`!w?x-59&oAgYLvtGLHj+}i#-Zw+3OZ;n@J ztHF0BJKpBu*W;(XPX`j@#t}ny*mJ7{W>vB*NKOa{3@TxN+cq9jP9q7~*t6EZ^(Ey` zbZH8v@S^VDc+P4TO%%Y_^Po;_vnH{+Wu|A-kuVg_aB!&mPyib+_)D_EJgHvliT+>y z)VKz1WHh%nqI3=v@dPU@VWw}N`@YbLwt<61Tm;Jd&oWCw*%gaj+-F4#`*{~T(f)02 z&Ya@2@(R|M50hCvwS)xJGF&32E`t4?9o6$u<~#H>lXS17Vp^kW&ZRy`C&3q8y19HS z{X1Y~LonEv>S#QJoKm@B=P5iw^%|6VmQ|L@M#)HJ zh9uVB)JN-85HGRPy@B_941IV4OKMMbb>qJl7fp;+3aUbxoJ|gMRUwvh7l&uADw~xp z^#)oPm^=Gp62n}MMiA$sjYivxC$YPJjd++U#sspfiJaa2BHAp3M`I*a6?lAHxG>3# zp{&xAtMAN6P}++3Y38KGeb4vC7H2X8wo0uFbBm%5J6e034C;SSVTM-u&n!=?vKzIQ z`|*Qx)_0uj3VxRa`}_YPWc%`-3vC5akjmZLnPr9zjg@>k>DdMn|`^DW5!Dd3-Ap_ zt+E{$^*4V;zeQqjJBHv#ZKV68>I*OKJ`VT~JB~kBnEWHEz&}=0}$Ow zxB#oOiRrJTM6YA{l`Z~*ZH3!3pw7zov)^muoFDO2XK7Hji6g9`U&m)90eG;bnFPH1 zqj8}(94V7Zwolsw5=q%&ZDeyO>-UBt|M&{*Fy&YL1YO%8u<^V772BjYTQ14Nq0^|K?h{7SZYq_s1|L?_EAfix^aY;0pHqVniewdJ}_^S7FFBS|;W! zhJ@{*(=Ev$`9#14lwiupWuWpo3nWrBSmVz+TvlIAp5}e*h%^hykyi$_eOXl7p$@te zy)}`?R43}>{-AaWz`!Rc{T`X(75*1=XZ?6>k8pNwR~CoT)8&y`DmAx;GXUCGOhR33 zzZ?tC`l&#g=e0C*2LEyS5Fh=0@d&axmHRO)Ml!KK7pfTjeLUznbtci)$eza#L_`Kr z&^FO}#Xw{@X~Rl*lkt9*{iF&?8rN;nhK48ZIQdhBv>R{~_&lagD2OYMaNSvB_J;t? ziiWJX)S`wZ&UkTTQjKY*nz5W7`K)3upAu)jBkL}Ho#XJ1oU|A| zB&r{=Jj}jAZ8PTm^NmBcty&(lVM!}AhNUgS2S^cQ^Q9Y~swq`xO7n5KFlD)`-*`eq zH7O0$WupJW(e80hc$SwfTMH=AI{jmGRL7obxpgAoAHkC4v8lr0E(|kH5nH^P+49)E zqJ{4y6U4#!TFyIlha)~U=j(M`$mxHoH#9qiwmdpSu`i#UT4mnkusyNq(`D7lPhK=- z-KG^G*;q6wTjgsdo6nkg%_0Xx%`lQ z(hIz$&Gg+X@Bg(JkV4q<@vDCK=PZxMSlhgQx^^^c5*ot*f1Zv&mJe@x>w7Kxtqp$w z`hCIr{Qw(oI+<;!u*UNHeB9;{G?!|^+=8c?P<9W&_!6PD1M!19rQ(wQ?;_a48}!$A zPgvg2tAoFA;S5Yk9`GbVK%b^q0hx*Hi46{|Q!6Ck%%BBc6`7*|5ezlubV(YxE|N^Su-|MN1RBz~}K0#hcfN zD_5$%{%{x1Js=bRJ0l4w71-|O<_(*oONMF%H0) zTd8i1wKlEURCeo|Zfd`o(dQI)-pF&$^yiH~!M%xpcDUU=jtsxyt5bkd$74RB3*;4Z z9y{g_NC@~P3wiUF&s_Ua1UI3EWGd;@qmz6$wj}xaWXxNqJr@Zwh;KG8w?>XUMBHx( zD99t5=GNv|$RwVd&de^ZbcnDayU}t~p%SFP9*gope0}lEgk~JsTiws?YTW=|Y`XT? znsr#-+VaCUYbBzh`JUU$+Sog21a;qLk=HlaVe1nNY=>1}12^(s{rs6gt~jl!4;kJs z5r2B0<4bA}#b4H5oP8gwObdHVgJJ<4YI}lgO&7ATP%U?!FZUwW#U0Lm zZ-C1*NY_A5h{KxHlXH94fE7HQXvP+Q6TmSq{%VI6az@X9C((BRQ07XoO4M&u$K0b^ z+G)Xt=yZ67v_1S1EyAZF?`P>j8`nlfa7v$<_EoJ|I1sD$h#YD1EzRg*x2ylT2E z-ALtk3)8-bkm1edHiw7hX+i;SKDF)PhwZENK7{+f@C3EbOHG}UE2jQJwacj&Got5& z)zbq^Sl0HrxH3yymauJy(@o7sC)+ZFEa9i1=h=7#`<+2`ybltKY>NMG+k>c&Yygmi6dFlHc!{RKe&t&RB5*a;g*L~{#cWN z(YPX$iQIzQOQKrH+O^*s;9Pu@iq#pqULof_`-a>>HAmyR18FQd8?oK{jOGQ(lf5U6 zx=W(PyHbxRNELut@qn6efG(b2e7}RgWtY?t~ms@J1XwwOi&bJ4BQXRAIFI) z@;a($`-U^}`(N^NP7OjYd>;0A&8Cxc+|Htyoh_{Yu3`_O)}RMQ$l&lg9o&dk^`4sCvify25r{c*VBO#-m#zvlhJzOwC zTd%mZHBlj^~C!(n>MQ0o=NPh z*2ludCz)WZA%FT%(-HX4PaP4yDppgyj)_F}Q6mc9fZlS!rA>e9TnIMLSP|%*g|gW3 zTMW1k%~qKlrkGm*Fi~Y@%-nP)?ADC+9Nl;D#6Rtpvos7uNF66rgK@WuR67+{V6{^Tsb^aRREcR(L%xkbt9QXKqElrQG6wb9sXW3^D%jr5vbrDyLK z{(HyBDG8~aK#zhvXo;Gn`)@Slw#V7UQ7W_BE2DJ7mpSm#DaQ_UW_$V1eL6-O%ONvt z!G#Yow9c7~HQ4JJCQu6IqwEv;@pkkPR!SeDN$`^>Q`rCacWUAO`+=oW?>J@?LdEEj zX!#D#k;R)?i9fpZn;Wdsh7?t;*LhYFD(yAy?%vSFE&(tQL2B#klIl5Li@ST*&zS>U z)RQaXbW&$_unL~*kweU5WTUi2ge&=72IEG4n*6msm7`}0sO^7a4C$}$$@zj8Xyst7 z1FKMM50JYid6FQ$s8g8j0}F( z2r_8iR-irUCX+%atyTYodG`k#V!T~%)iGa-521a&st+jZAG?NSA#Y|M5W9j{JT?wTPubuXFDc^Rp~D2+=Z z&H^RxR)-D}#tq{SE-=1y6+|JE|NAV-r(pTLTvBBvgIA2=cn(SH*4iSP#W0xnxJ_gN z-aieKW@(M60nAQxO5An<8H0J(_6scF*L(nJA-xK1Sd10as(bP`xjI7FjLEG0h%NEq z`;9mWr|8#aad}Q{YiD8v z@{Y(Kta3I_S0{w}nTUsQb062Zg3||`4dNF^KP~ndR(mNg8q$|n5E8X1g-|XLzdDcW zy!%7vutcau0VIIMs9`LcihT=_tvf5olU2-NE!X5%Fdj|8<|bkcg1gPIw|CB<^mVE0 zcdTAVTZK1%P@H>idI1{K@}S1xM4d9?uPkwbq}CduI3-|OAU%O%+k?4`9AdyN ztIRIB=n4NuJ5=BcYii?RuH23WP=tkB{pU0-jJDmktA5wyvDja1^E(Z_G7k@^+0FPeCPs67t+z*^+8%asL}oLd{q)!O%EkQTB8&NM z4`8s-mvmL7@}4(pRS!3W%9ZbLU#^yf6)yum9gqLDU#bq0O08HtudaaIs68{VnqHc1 zIyO3J>`ESp{>IzOhS)pt=x^4KtFGtK*j;48=MN-P+*2^XD?PJB>08BSGQ(j$X&#k4 z_*30E|H!}jjepoN0lguh?JX@(ex@!#z?%Onrq4{)vVen=nsuIoLZ~LVg~peD%(b@D zURjGh^0oT&9L1vhv#xXE7;HCD1NFK>xq~)A#^tngu#kLF^g*mL znWN5Lq#%|TH1i204M~}tiOu?IF(zsesS9r?S-mrbK&W0`^Df`#-=Of#GjnzoEw$PfvNnk^M;Y-06j8ugH7C?0ra{5*<4~LW)gBu?4UA?$7d$CRUj1N-bv+#u6tHt0mEiF84)uRdWt<*17q=7qB;;G-*8t z!OD@BXOC+Gdc0kYo_LklK*me{l^@7;R)&G^iy9%{7;zw1+iaC{cd=+7y6Ea zUF}Ueb`W865aW>A>KZJi$SQS%K#*B1hkMYx-LHvy4$0DL_LY^Oa~G4L41fKmRL^M< z4%ymA7#3sYJY3Sl?yS>ZE$9%#1I~%d1(e5m?XOrJl5Wk%ZU1(S6I+0}_sv$0%vmYM zfFmsH)(}KgoV{&6WBNP|wGef9U5F5j;{-(q(a*r${% z4Vm9ilJn=0a5$;8@cxT#N!K%h__Rj{F7Ru`*!pi?Daz@>4iLo&7oyqx?8mwn4An}I zUtdpMZu_{VEvMt&aQr~H%xf%nZV|ZKl22$|dz7THG-sfyjj{5NRh-aLORefZf4^v9 zq-09-4BoQwzHz2YvWrb}ZQ$^ChrD*4xD<|!(?#YyJO2^PnvEk5RkdmO4VBIBIq*&J zW-;?0gpdN9!>`)6-pd5g&|_LaNFCpjFqd_mUl);m;wkJuE-jh_@7LTfciO(IRBk_( zcit;?H`0KoYwp$FIjdYc8xNO^SOL9SRfnRg%ua?%N{kj2-<8mLM(_xV3xj^O9QIxE zbDP9PDmLL1;nI#kOXAL)YWjr9M#zMs0P;W7D8pT?@k`F4+i$$rgKmozhJW7wt}{TBAo65g?b$}VzY^nrc&ZC>@V8FPU7Uxv7L`cJKXvL3b^Xk@jOp8q=-o$B7h7?G&V)@J z?XWB;?W8%DvFwYGz9lA+mX4fWg#C+a*-x`3uhh@sM1jc0TR$j2lt-iHO(M_J_xm4Sg1> z5=#vq;pWY!VAmip1ffkpS%;pcj!0g|mqQJUEqkt`h0@=^fr}eZn>)l0guPU*8n3oP z*bz)m=^-^E%8*K0X0fxx3i2~tU*lh!RMoS-P2w5i+UtQ3E zLU4AiPgtHDTetuFJkWKZgTvVi7hO#)vEy6P#UZ^vcJQu#P+6b?({)KnF0#i=+oB9a zfs_JzS0zHO)lteGh*PC`Qf;}!I5Gb<6)`OST1xl5Vy^WQ^lUA|7w#%<+Ib*ZEy|$CgkA71Pj^<6{xU)SXuTxBGUqW^%$LQUeBBE zxn(73zwOQ?voeGu#09np#T9O1ge={_>o^QGOD#E8GOTVQN;m)~Iv)Os3Qvfc6A9Q{E3I&)6P%fx_&9Rsq-!sR0RlH6{fm!wopL9M=Up= z^NVb$*OH<P! zvM!{%zo!QnioP{&QgiTBx-AG%g2xe_l6y)^%`yvcbNiWE5{c`>xb(>#b<2!A+B^!* z%yex3H*sL8_I%JqjZ+s32&X4pxTz;5`NJ*dWLEiC7dsnE!dM28(zXlyz{FFRv^qtf z11Q?aFEz6Vl0ntkDpa6a_Xi*0*}c;r^vn~ zw5Ri@2%MMdZi3LI+{rq40&J#ycZ);rUF5!n^o9-5a`@8y z#>VTJ;OcEhZw+(U3zenAo$`yLa8x`c%~odb_>YgoG%==1ez2$q5sLSYw*x!DH+M45a=2r!+KjZM)fsE{E)8V4v0ImO|V*vo387Sh&>D)n_oE(iah zqx;i(!4`Zi%QWTgJW3{)o4wNzQO9IoezLBTJY2o9V7YQ3>_l0y9n^_Gb21dy%E>Pb6BQaBR

    8bmb77RBiry?T~bE{|CoBz<-u3H6QqcFe}mLfH1Y*?ml(!8sj z|99Nie<8f$`J?6(9~hC{{QH-RbvbFS2pv<|@&@|{^#^kPytO);0u|ZB2%2e!lK# z83FVKXYbbCwMezNM=hWO-Yx;JK~C-W=xYxOZ*}6YUq48MB4FsoQ6OP3-yy2jr8}0q z%a=&+uiotYM0Zj9i2!Vfy22Qf7BDqqGqiA$KtGkLNX_}0u|6jtLB^6PsoiblJ6%I& zE;TU1tY$=aygG!PRptl0UxIBBBSf7pQ z`OER)H#uUjec1-%K9aLvL6w@X4vKVJ2<8Szm)l0 zOmSl!wFa6K2A+3ZR5v8{!`T<+1l;lDV(cs3B2YsL!QsUN3+-#Ng-UIPDDzSOQAeGJ z4r!gTCspk8c(#$_n6|I(!FP%y|IFk_-YVQtiLYG%wdhbaN3_{`h76}%L>%?=Fs5ne z2uoz^QMq_$Yq~lCGbE!!HXz3MT^H6Mh&1K@BZYK80hgmeni^naUVGaO;23VWyn>t{ z>+$x&SFJL_3SoRR((hqVNq8D_RrUemfEHX_$$~D`{v@l_3Gk zEBl`gzNMYNcEqwRgEEBw;;RlX4LEFJ?t{ zf$sm>m;BmbS`46Fr0^PvY?&JR2z=OpkV(Ad!T5c%(fBy$P&$Od zk`4xj_~TzZsR(LVAx&Z-Z`4>ytYVq|xl2=-;JRn7BVDT;sE zLHaNDMB%5sFjS|a(X9G)&+%PkafC$x%!sq2>6$=Zu(Wmoi+7ZRD5lZQJ5}CfDTh?4 zr>go8OO?=>Xlq*{M7CrClUQ4p_?JWhRKI*fha$)6jJd2Y>yeeZT#v~-pqU~1^)2qo zX+leI%^`-#$BIQH+QjRwm1Uq31ffn=^}J$Tl+Bi;Ihsv`RlQQHEDefFBSXw4Y{2H_ zY>7iYrQmK9heR8q&ZMQ`(X|r$J%%Lv2HJklN-k}kfd{QY*&><8;G?Ey;};2(`)Hda zHDE%g^SW+nX>-*~7>a###h7^{hoEJsNrIu6=U?vK)+!SM>`TPsC%$GDHRwIbKGB!! zymu_3fEO$o>6Px3*Bi%DXJUSCkw_X3G_UlO6@6--W_Di|f~ED5M0M?I`%l z5DljX_LZ{_29wTSSy&<$)3Dm7A}~xdTZ3iPG(x=kg?cF<;=p5ffLCT7t-bTs$C6P( zTXR#9`oS(&P-#Xm9a(S%T-((mD7iX6bN@ahJg&&#(n#Bb<6QogYPTQzzDe!2~a z*cfnleV79HIr<>R?%H}d`nm|~G!L2SM7C1(K)h{EPQQc;6`%F5fh3dC)C!&}$p$Bq zudTx#pDP}{F+X$N?Dl2&hYR0C8Rp#TyMnD&{RyD ziXH+ev7lmN5ryb6T`zn2?ncO^kEZUq{chj0=mGiiOSD>V^;*y^LR&}8X1@`3gnci|m;9N|QtwwE89nuh`5c}GMQ8FzVop;zfLmn+#z+d|-b_9Vb9{xs*`Sk4~2h&OI}A*lJd#5ccTp++UfdKY)?P5i%G zxx-+PBSE8S!KkuA^39O}Y$yr|PdpW z)YNuU21;4bM%}E8HsD*(W4iC6tHP*i^|~wJgGN?@KOY@VuBO*@PnAp`L+Z9qlu^<` zFr2(fn3017z?P@VEXd81cja)1eqqG+>XWSvWme)YZ;5OCkg5)0%5P?A;Ja?xs_S`v zE|<}a5u*ReR5vjdlmO=;3vP&v+6VYC5ekh&ZI#b0`#8LVynHLFW{C*H8VP< zONMQ;e{Q1Cun5XNejF6-)y&ZRkeWiCE}%9noVmrJC5}l3l;Q{Ju7g^p{S99^Zx)yG zQ=*XR1+|{1;HIfa0*@IpaS6Y4`b$R$mY!UVjY@~jLVT`U5wj$9)Jq2LUVoNeu|Rs0 zjpnM{+JI5oSY$$WbVQ}F)8@i}hFSOWU$z;@AA5)MZ!`QA?=}1*XKtvLJF%Tl`10Kk z_&0JKq%_v`%A(+n^N7n$4VQ#~!c3nwT5tII6+cChjhAgj%)f4z6psm5{-(UIqX9m< zufh_NcGm@i^&ZOVAcm0Ujjy?Vu+SyFXKP{s;I(CppDHHd~?-S8_2_8a(8BVpCl1jjT?n0_J z=#XfF`WN52nvZx^I5>%oY}okifc}tYmIL zWMLl#0J}-23}~8p9@>PI07jlM5iEEt zsZfJV6Kmi?Rj@O z%+#SVsQ9AiAtcpmfPPvZc;|rc?X;)&)GfB_wHprJ*Lc6bxgk|yAUVC4N8@S@^@JE6 za;a(>=W?^ouQirWie*DwbA(J#ad{F^g%|uoev&n__2hko^X$pbx%%GAXu?q=SkXjrZ z@@dU>nit#4p^;Z)jECr#pj=jL|87VYxw4uEc{$LD@~@&rdJz4kDBY$;L$HobLMLRFshyC5g?NO2@sMIiH`A#ugfY)I7)w*kUvXB^ z?4tg-oAVIAS?Y1*&|R72o1SjVAUIM6abWV6NmW(AA z!~~KMzc*k_fvKMsE;Zd3!1KtF3V~s}z69cau|`Ey!r1;j%PpK8mw2f!NH_>Bl&rt9 zpdZdE^}X)-a(S=p!e>FbYtereG{<>mY;B}lNw8U~<8%H!zJnO1X_0pfoJqWU{3&3> z1V+MEGl$?3<6hSiUr?rW%M4CVo*|5uL!iQJ7Ot#)InVmXGc#Tkol#9~QAYNefs$~$v0>8ICYVyYC z^$ouG_(#!rYuZ9iW9|M*RgYS%8E{9>*Yt^Mm81^PC2RpG1t8Cty-~~h>%!cht%QmM zEr3#5y5|K#eB}l8F%h7)PL;s2LV*DHO!F~ zZJB5pdx)0;er*GYdvbo#Go6VqhBLCf1ZkS)bBScXHfuae)ius@QQ4;RJ}0M+*Fcxa zJx()vV3CA#rbQg@oyzzE&ap!86U-_YmZF+)9LMiX;WWR0A3p81t}=7{Gh+J8V8Gt@ z%2qaX#!I%J@;{_*ytmDxHbfB_ifU%wdM5I}82E#?RhTzUm2SRzYqEX$r(i=Aga+bdb0!~9}V>%Ao zACvLO88ntV%M->pE1^0$E;9}o45bD1b7pH(8a^hntakR(AY&{45X0_s)o6A$aZZau_H(WZ-KG6+z!z!L@#K z4H~)7<`;2+>SR0FTRh*8xNmnLPg1i?e=VH1k$AB97BP0ZD(uY+74p=D&2H|kEvCtz z=&K3MdfoO&AEQsy_}Gv~mersKgSd5|RGS9o1a=i^dKR!1aI##t|7T$cYiK*7oFA~I zdrsfITjCo_dqH`;UKir)-K#lVth%A|=1|mMaq|*~<1~H62X`R5Elj zw2956g9o)8zV07wXudJfO^1pwjwl1Ttbzpju+L(RXzZq@)ig5cQWzYz((u!8havpZmG)P^C=066h+X=vZwJ+<0Q&&mL*+%ypINZSxGpB7?-Cg;!S7ZE?l_f3JRMle;e^p zvLWk@KQ=5ELQQH}ICTH7z34v!MNdq5un3zXni<$|6NEO3g`eh1>{bOs2a)9^)s_6B z`MYfpgt~HTj0aw6g*#AdR4kjzPX6lgPY=|T>}+CYL28L~{m&@vAE?RQ#?zfSS+Udo zCg79xH@*=eR|3O9`#oaXsccZw%;Cv)YTnNa>3PxnG$F59_CK_L=eHQ^CRxAGeTzD@ zq}2^zN&!_3Tza*M^ej{;m7v%?j=6suxE=>o@mz=4Tj_tza@yBTB?n=Ev`jG2jp#JU1Ru0Mqzk7TmYAHR>jcZhNd-a@n8 zj1G5z>tlj_A2u7y#5tXbk)^;Y9nSr8hq-s+$pk(phvmLxH0IqtDDbJ<;$MDRILSB^ z{L8+kVd+2eprR<_wuR7q=Gs6gBKod!Pcz`)KV<+2?>GhGp02%FpNq_F)ak1zU;ITBv*?OUO}B z)WfFFnRXPD3+e3WGf%wM<5q2}#+Il!NfeyvCD(SLecZac*Zjz@!Eee&FNM zeYK;4z^D>>P#$TU5DeS?;{>OCx9fFS4=Oo1t~aAqx9bIqZk~IGq3Q6~l;}uem0$T@ z&gS9U1%Dz`t)cFO zGx@P@*C*fu)E#rHWL>|04$v#HVsorJ0($&Yuw!$yt_9Ms?J}M|k{{$XAicc^lt|Lt zT~hit;pse%g;ay|?(*&jdXb|xia(sWB_HyNu9nGp6B2BH)#gH=JX3yWDW0eIdCt-Q zS(}2VXBWz0o@9qm$yltMDF&Pz_=1Y-i7+?Pe5hJ$yDkj0b6|0&gVqEtSfO{$p^|%h zc}t9LJC{BTJ~H$Pba!O`ME`$?NglKpDNB7iWf`qh+*8>I!bx^w4{TkN1EsHT-p!1` zS7G1y8ElEA5|2=Y!y(tf5&H%0ivd2SR({O6EmNEdeN)Ml-Xs1n#q2buVe#vl>ngD4 zh~3*Z<+WdB>5upsmI|v(Y+l*gTX8+n(gbT*DJrMm&v62W(g%Dc8h(3@zo+CFA>~s&8Nj#R&$sG{(HGlml2XQQ zo;=A3=4wwu`$g^3@8=xU8BXBYUxkP|g~zakX~yG!)9YgJ4*5fSEwTddMVl7?2$lWM z64D0kfQU3M*?_6Hvs#v^x)OPosnMO3X)L>ZjU>PA%Lg&a`l0(B2##Hvl@qgX?Zqk~ zc(18|;bm&|`XVq!nyslncH20kW56`1vI*T|LZ6{$1FgnXFH%w0kPJgqA3u49IN);6 zfz+my3Qm|h*BUpe7~Gc3t`VgYzS_tg>~6uHuD149f5q6thwaB9RUf7p733J;rv(b) zuSoV`;M(85660Y%QiX2$_^s>3oU@Mf#J9QjrT@3`pN3QieaqhNSq*{DsojuIQyPSJbKtJxO zX;A|_5NurX)<2PRy!-A%x_qtEct+cOe zbw8?-KnUKAItqsXeLv$I=cY{+m5BS(m! zk_jQ`(gAh~;NlKU>F7JfyMcXb-tkqBM3qKLx}-KC$`p2c zGSq1d5unK$Z{H<(OVE1XCdOcBtTwmFpNL-Kvh6>IYg!rDzhzY5}c#nR7Af}P!d zQioS6+*@5)Bs@8-#rgy}1(I)*7n(wgZyQYnH}ggjbIHhiscuah7EeNOLn>jREPNe%N2}7(YqG#l@^pkzYEw64&y1I93#lb4vjvxlHLV%# zz6|gfrw#{+b5=5e2>XZS5hR$Y<73o%C-vP)J2tvlEohhBiVhXShz2_$U)iMP`^?OG zR&xGDOw^W12?Br?LLFI15dwz`A+Kiu6*wbB7bagU1f&H_KJp&C{P7pD^FM2qNMnT6 zg#=t9`sN~6p2lfXuO4(1!(RePrB?+=8Hq$*$cPHA(3-LP%3vNVN+-pv~W+EzH$Tw~2wDjX;B^mpBOL9+bU%32AvSKpbQ$R^42S_1(VLIiML$+g%< z?A8b>drQiL0XqmwSYd*Y86C8JieroIxg8XZ{=WLgH2?BzogT_$zQBPg4hCApnGT$X z7nd!}ZbLwzobahUx+eHOA1vVD35fcy7jax?Um~m=mH5-4mkk?Paulb+Prt!(BykoO z`o`(XvQQ7C{#v?lu_DFU{*VZ_;`x0|(CdC1iuJx z#bB6&{vLTMr_+_+d72A?H#F){sT9Y)h-ZNp5p$9tS>?yjP|-X<$GvuU)kRk^RMkk4 zCBfb0*Ka(=ziSKga#;!P$2K$I{TbvQV~+kAlYw7fNv!}LuO2eC8E_7;@@KVRHo#fD zwa*Jo&*b(<5$Vts_7%P+QC(w-RirnnAaQG^f?QO?a1d)XHvO`2`!Q5d z0G}U$*GM;t~1xO%9GO&#o`|G}2^o@;TY z?4xBI4NOJ@VtEuxCFV~FH67D?-}bX|GFex}f+i}M&ySquP!fSi|?+k|F_M30`6K9u2+e3LGdCs3{26pDv z+i$@!xcGaH&xl!&}Cx!E3{nTgf7 z1wHr*$yk_;K7MY6f9sU6_z74{+OvsJMigOc=>KKhaAR%jo0_TRP6gpR@dp6BI;O(| zo|NJ(ch$F|!RGTY?uV)$bat-Wz(l<$hCS;SuS~*s)^Cb6cgTRo>tt05y;87iFC{dY z(_UW|qc?p2i(Hd{&?E5#QwRlE4V?{FRckLI@|TV@wK(XkfI}}yrlrZ{uFmo`7-yUy z!9fi(GR|8rra(W55l1j7vlHrk>lK;&ZMTLVp{o-dSF->%O@h`gv0bGHA%#?g+`y2H zN7@fwRE(X`w(tunUWdo?mlk04Ws3#_J;e2>=@!iA_^eRNZ9?uDlO5n<4ui*Ey&BJ| zMthcjlaHLPhad+Qyu0sHxu*D8{l8{B4kVWQR76DQ_;g<^m|TKMXPiX@V*y$)Cxs2e zs=2aLF^KFKgjy~jB7Ve}wt4F60UN4jHe;MULqHH7_QXaNyLma*L8h2X+Y&`zQwrFR zHN_Z!#Cy%jip9k8Uu^<K^IEPK2rfaVN_3DS>s0OBluwRvIvDuB-Fk{1;(1DFiSe8M)r1Ls#C$ zOaI#YC;~;r-Xv4bNQOQVA^}-41-IO^)6<0q=@%)ik{(*Kv6*#b>EO zz0aCCDU%~NOgU-7=M_=r$6dmqI6?6O^`^!|wSJxu&k`!h1V$Tbzp8MonOfsd}^Tw{F`fT$Qcy9Za^kZ=bX+ z>wX|&7tiFS@)&uFE3yzu#t5QjI?KJ$B`NJ|rcbBrgzBEIO>@9Lz%hD>8!6uqyDN|h zX84{A!SKVQ*g0>XZMCyE7>vOK037eZWrh}|Ls;4t-uIm26A*n*{tsK+%7?$zMp~4g zvdbouC74+^S-=-nFv*Gf2X;w`#k=uHNDW(5l8MGxRJmyEWgfuK2N413z(p-fJ^UDv zUrf)4$8D1DmGo_u&U~7R?9@ks3f?KO5`* zxL&iwe&$!B;f*?kEMA0q#mzkNj}L>Hk`z^I3Qmxg&R-W>|Hvu8!27*pl>x=b!0u_BFp^S0$ayhaFe|+Nv1ib+xHIeXNq%5OMWOi_v8Wji+wnps0?at*IZd5YzsOTL-*N4BJ;w#8KaNFaiuCSE(Lu&8QD6%${B*o9 zBFdwU^3*EkfFeNn;h?wS`O2o(E2DZvqV_d`V>^`p^w}M7_Y))NBO%;Pi~Wn!9j-EB+SeN|yBI2QqRWjeq0R zuvO3=oGKycrKulPF+SHVwRmTu#{=564=(ZACUO;OshhvR|M!?$H6Nrx;%O|+`c#!) zFb&z~LtC$+%XDz{hs$QhRjxLPbo#DGG$FarrhoC}?qvyp(pCBoFAA&iv<7jf_%(l3 zdlZ@61SVZQ`s~-|4_4IvfNZGv1Vq8Q>@q^{)Rf;64lQ6D`C}Y32T$#tW#kzW;pa=lO?}}xE$nWZ-<(7SaOw*QiOkhoDR+ZKUQ=p6WU_yR}Nya z$Vw>?!(|wGxY|UD=9Kaf28LY$GLeH|CL3dEmG|Tw$cFSwU|8tbksHDlS`HS!lP0vl>GTDpcB`v= z&$=PjW~9j7WF7PiYcqX!nzS|5v%vjZP+DCbYn{M}x(qoj`k`OJh*8h7e}6qA8ikCc zM0`)GjhJu91OXZIHaWjhG%A_)L~YxsEGtOE21feVNyFiet{zRVkX~I=K13tqbeHYD z6AI9#3_m+Ehyn1Zgjq8)fzxXchzXM9qFuq)&6y!(Y@hwE_lDiC)b8!mpTBK$ zK82{5A5ad>w8YVrFL-o>zL~nP+J=_;7+}`&y@X-%evNEil*wYJo!c!rINjRJ34WR_ zdUcF;Uf&><%{J+l{hQ3S02^|>G_=b?>a)-tU~SiTDYOUr*@q!?tYTQg(5np-TED{z zvOB}%d8GSUDD(jPuNFkezW>Hl2h7U9tbpBy`M9?6_U2C&!_=L<=D zugy1WqaIpCBq?~n;Eb<_A59hx7^TW)H8BkE*4aD(BDjk1s7yQjasvqY6M1D)o!td* zSUq@)!!J=r(y5M>UJGCskUXF(?~E0Gxj2I<^B5Ux9&HCEBgwQeLD(R2T$&UX^fZL+xsWJz?H@tKRg+eyl8AC${MZd zoa>yUr@xp7jXRtZu}340zc9^a6;Y31s;;P^jgw9neZU!1I>O-xNzCaE7{#kNn@3NC zE&(;F(2Fw6l+yC_l@>=Z){tcN*PHWr3)NSEg@sw5{#AVlhbgm4?(|#=`b*&m4Kb*f zfFAqWl{`{l;oyGAns+L2q651f{NYC_5#kD0_apD*>#hG=SP)F01A({~%Sfe!p+;~N zj{1#w(2x^Oqe`|?_iEs=aq{B^JIkWmlXT*82UN1*B)|=pRV+OqXfBmNW}E@CUPrXb^mr-JVx!- zEO3M|+!u>W;D~o?6qW8;ejAJh7S1Ju8BxgW4;!88+((0)L0hQFB6dPtONZ6adi&GV z0kIN-wj06;lLo4I{%h1<)If(Jl2h0TLmbjKmU!E(8{EH{a_saPN8k$PrkcHRP|2}#P;=%K6$ac~ziM~!HFcnL#Q;>Y{P&=4 z@QpwG`&$@vW{sXJ@MVG!0Rx`W*sqKkdS+5#R4(pPE}VHc#l5zaC`C1{!oJQuch#e_?Yf;+0JdExtQIP1=m zi@MDe*S*IsVH0V^!coe8SLE|?K^+@u3$anLcghX^|6%GJ+%gT@ZvXUT+cmk#w%ts& zHQBZ?)nwbQ$?nNbwr$(??)~=n?qmN6_jTO&eVo@?zqL-o9DI+~u=-yVp8LajB#>NY z-E$GvcHAh$;8=*)GW8Q^3Fs!cEyJ2$-`%4s4IGO4Kh1S|no5?-#kplg*U66Ca%`%M zzqTb^w|!2zG>rOgFWn?B<$m{m(;tKSbO94<7g~St{j1{5m8`#Jl;+YJDU_aW>FN{{ zir1Fn77Rcg)_d7PNLOQ~7B>^PP{&gh=Bm@x&#QmIb^9C1csKqB+0`T|%kI^4Be3LV z%msmnxFC-u{Sz<9eQT6HQh#*;0W(K^%8+vB#l=~Q-IhdPeLyV1(Fw?A0*Ey?atY~; zb*{rWJ1;6#ox(cxTJ|3&3%UyI18}wF%MhPOiL)#*waEud9w{d)}RoUAP}Mq}k9^cI|r-Q3Pd*@Y(^`HlP@yebUJ5vSBXt5#z{ zNZPg-K3#FOKbIaqvm}@^r(mrvNvSkR5x^dYJ{?N{Y5D`|CqCA8M%HMo#|tU05!lGR zPh#YSX+JY%W>qGAJxaKOsA1sA4eH!nKVZ%{FS0%x3+`LE@qUGaDP|8pg3+iU>ono2 zwz;=}TzwCPR1b5X!NsP4Z{S1ZMagq>jIx1eay%2BmF4@~(xPYv(Hq42$G+sEnBe8Y z58$-1DBxGZsOgO(B@8*ZW&YL}#=KU_P;0}F5DZJy9?cfx>Y}npbQSFt);^3m60t5# z1b}k^uH~I&P?j5SQ>WhlMT-6-Mt%8f_NJ4@Ou@t@2q4`Dw5&Qba>!OrJ7TG9HtRnK zELPSG;o4Rf%%OJHdPb1jTeXpB=1FSSiw{~h>z=cVQJw;4EpUf6iIDhXEPS$1uD;u! zMR}|kIjJI*-Fy^gB}`Ctu>~N^Mq^fEv8D_JQ@q|;mC{Y2(GLzw`&HCGDe6aTto;BW z_Q}{p4{CoT3l;#}nw6D82SI2LRK`@S)ufO$_;;?N18QK+&$i(|@}ah4ABp@%RjV za`x>Cr$3J3$eE`U$>qdT@LI8T|29Whw$D^ocCiLZE?UxpCbcjG50KSw#uWJCf16OS z$0RY_1mTAOJWR>*g-d@khHziR!4C@3cJkCt=NVRl{?3z)U(BCezwsoT;r&2e*Lbgp zCOk78=TJBQG`!dm;27YLPyXt4WuW@w>CHk)CQ|V|TU&TAjdov_zLyb$yEEs;6uC%* zgoT*3MHv5Ya<`~0L$u9}I7&;=LQ&-SGrzkfsoZ^TL05VY9cD@W$s~0mczu4fr7nZe z2M;s_u0Nzk4;mq1o}2HL(@4)DJMt7qhMcmf7wu66YlHg^L{vz=34&pV*TYm(+e4fW zCeMK?uLCZvB_^>t{^R#uMbCR8U$Mvci^btZ4Sh=zzBZwfuVw2>(ppU%i?i<-c8hZg zD;Hlt_-tMdzwjE;sLH1}&&M6@UEHKkI)UE!q~k*pIGa1fayr_QeykE<21#$-(N?)9Jl$zs)sz+(w4H?IuCxv%-i z;%x_Ie2Yg0F*+V!v(*NlcmA}-$?5oY@BCu#+m3vPermBM%wp@oX|?HIpcXF2izn8( zh4!RbSx&}(Gx_y?vydx zLTnfOv>FcA1g{qJlzIN!TVT8gRnz~9LcGw>BP=XUy8wM`rwEl4om>@i;k-C%nMQM2 zfnD=Y5ASS5W7nn9;^wS1L?&Q_p-@XUHIIAo<@wy+sl)?y{*!?>8>8%0@sqfM zghd)kdq&!eMM004uQvY|jI1=*6yG!yA~Kn=(muC*1T}A%c_5cfvWol}pRG?-ozmtn zv-nYq>vvgI$bn9E7^>@{-t!EE6@KfI~{=RYHFK%Qtjd zO5hL*@A^*Bdl?FaGZ+t5(@_(FEs)NLa3~3*c=Er~Qa55rfX5QK({uwcIT)4j0(!r) zEjD+ekJzO)zX%-BZ1vn+3tt+5QQqNWHA%4cJG4k@Su+2 zCv%Q_-=GM?PGQAL63+OWijPM&%^g%Z41kI#7?5UPw=sS!le1CA>51sIQ?6S4G1`e` zdBZ~m%#dL!u@`}gDKgCLSBx93EnAmIYD+7Q<+cr+wNwwqW_PKU>jo$X%aNoq$Fat) z{vyetmOKypb@I2gWcYAsqF`J|SvML9@5VascRzS8h9)*OxQ(sI_+~j^Z(=KrFf+gi z2P|E$Bv>nXpp4NofKLjM^Fme86uK0-Ucd`o_sX^;wK3$NX9!*Ly(6mx(m?H*ji&&)(JM$9*c&q!M4O@1d6`fVnDGOp1|? z08YTmh($g7MGYmDwM~e-th@X<)i{=#0PbaYyqnwrBFl~eFn?+-jlDy5oC47HD`z3Q zV~OVS_fY7v>P<0o?FKf0$(;B6gS)p)o}5u*5@350#|z&s*}?W$(4l8B7I!nIS}TM9 zN$Mtov0LM8^`pF@<(2iCSc73le^Z`F>~ZAAk7m`meELVWXH$y#S7Y|;pY`2ky**)~ z%LNc1X(@5H7kqoSEBK=9KS-o{#~)KMR~F#w(y^z$JX4%Mxi-30CNufw0LTV1NpqYLs#TDLvwU-xoD-4snDjrF=dN589`T$g7c=UsYdPwegJ z`OyE6CY?>*#3Zna&&*K!(C`=neJy+WtMGe&u0I*5uM(DQ}D{}zGmuWxm4 z%zO9?a;Ge>pa*su*g>|>v#eGs4&!>l8r*9Jrls9+_Jt&Ie;*OT^t=8i;)>6u0MEw_ znCC@~uSgmB8Mj57GBgqm;c|=7cmAvY5S-o%EIzF((xjgQ-~O(*CSgrx0?jLnF`yYU z3wr(DzR$f}$57`QB0OpsJO2p;TVkAH_SUh}pb4g2(K#){y^r8;yvIln*6(zGLl=Cb zVCPt%F?iUyPDq4kp>>HmX~UNyu4l!j2rUXA%~d;)B6?cWNoHzffu>k-vc`9e6-RZi zgm7Hda`4eFI_!MiHAJ)-Z}zbK1l!l};anF({+LK9`jq*wu3`Q8N^&?cTtc>sIAc4FN7rK&pMyQa4HS1 zsQ{cLL7#(oF)Uw|2bW$qZnqC7HPR^%-cgK`%OLA)Q5)C^R^%FuS7~-3qc34ANn^(R zzS`}3(=1Us2``n^vpW}8Q3F@>;I6QmnJy|J{5!-)+kBuI_fEM*leRC?db9O=r+k1} zj-;v8vyjFHTX5+rXO2e}l$}qi!2RoHE^p@xx5s_@xRWf|gs0gHT?(0`?jJxWzZVj? zWc2SUhBN;Q$f4EP>=NY(8@9MZI&(3u-c(%8A2T)`A1Ayg(*GYL!U`Udm^bB7eI+~zysMlokFhhFt=j-r@^)1? zjNrCuR)y-vah_A6uurY@R|zKRDh>S9)avw)>|{@rUX39Pv4gPjFl#paW!=WPXgZ$a z_kDy`Y1kl~4tl+tJSd~kMX}XY9g`v=TT~5STmdqhVl*4tC=o#BvnE9TC3IrUC z^P3w)fO5w&)j8+mv`C+X!_qT?uRh|oLD=>(7dsbRgPTQsE6c1gy}6L^K68e_t=ClZ zZFH2g>9j2CH1H_7-egN^U*PopG2-*sZ)$YYCo-@_GFY_vCez~?CD8iwQ2mp_XV>o2 zZpCwRkd|}W&u<8ii~XDOg-MYd?@}R$+2C>V8VZYmYVL(@8}ufkG7atB;F7!TCq4%L znWO}kl>Rm@Y$SwmN*jcNm{X~G6Ru>kfY~(r`B`3**Jb|P91P2uP!635=fJ>su(dJT ztq~R!0DDIHl2Wh{KQc#!$5YG+r<-DlRRC7<>Q~Q;Du*rP?W(tVSja(&LW+Pmq5}Yi&&y0RvK2l8xNhy*70+HVC zQg#l*kF!IGh$oP+G-GKwS^^;v)L0cVVL~yxl=$%SKyk1)^Yc0^;O?#%kKdPIAd(u^ z&-2ogC4x<^;9Bc1+|D6my{-mh6hr17$KU42S*Qj}AB%1Fgqw_k2wtQ8c20QKWDI;= znYp#;bi4csVveDiZ@c0LUAY#no(7NpJZ&s6q!5+|oSmP$^XWxxT^}Y=6v;zw_RUYR_EKP^J{NTDcsHD+lna0H-hfA z1dBiO9o(#LcWF0=R$4qo7~+cc7@qEtbm`AtU&$|AxHo4sfJcO-#><4C@3C)`&Hh5?c%8f{ zq2&F${LEDsk9^KYVC7$KF@C z5p~I&#sB<~T4w;@GP|WQry_+d=yMIlBGGvHxn@Aje?>w%4)NAwhqI;P9DHFl6{$cN z+6F|PSXz|^+v3c)Ho*51bRqtjw)i+MQYUq2hkbN2&&WQ*#N>Fax(4Ub@*#gM-so$i zIqs`5iZ46sJG3RGwQST>)(83dd4+POg<9Eyw6|+qh`#&Jyv~Hja*j!)wdFERp6hb# z@=Cn~6M~-uF0mRq!4$33{PsUl)Cm%gKih|tmeTPG)zpPyjZ2=LJYjP>GVHOg2>*Kh^s2TGmy+=5EOCXLu;h<6l*A~?4qHyRuCcn-l{l6 zW3g^?v{{%VNHrFEccuPvCw-6_qM0EoSZ*UxZe;{_#ndv_8!%CBiNaUpLVr9@LDom>OS(rB@!2E#{OBqPP@j*)@yHVR+_v;T z?Pp0HngJx2ZxlTOb_|K?yTW9?85;#avD@F^1W))UV`)0mWrnr=_H0c7IwT=p%VS** zPPwO!by8Y-9l@(~UFxxbBP38j>&pv+F&QuNUq#>Kzyaccm{#TxV0ZyPR|vR8qcc~& zBSF~pyiSIwFcl|uYW0vhb}_O~-aF76SeA}LUw<3%r{R%;huOe|u6frRSR&MJR>baR zoH*-9-zlpuS{3-LiBD3O$mtjnUVY)1?c98$1I7K)lx?+J{>dqL1q;bn+0^N{ob2;z z{$*XnBGP%QOQ&<*0~%BV`~(J;o=HZwHrf)$?0s~ouX6JWcK^;@b*K} zD+kVreKHdKvOGobXlvV=omb+RUujN4Zd;PhVp*c?LOEl1$<=#E7Wyn;><~wVn1Su? z@V-3ha@}y^w0VCzzl+mokEBB7(KN&n<7xXZT9S@AnhE2Odb2%pq)s zM-d|4&)pu888_{IbVB^Y9n=u^y_|32NI43mP1m{2X(R*~Qe?0y(w!@M5YsMcoOq&W z09*IZl$5}v)&Y(^WB^w@R>)nPL!B4L=pH!BeS%J04*}QODB(n3FHRJ7 zwxPxCWxp3xdO4CG$ZQ)x^MiZpcCTQ2i7LWD4xy?Z)Oi3`up*8hmcEmC*}mirE3 z;!RAtP<@Hg%DYR7Tnt!Jl6zD{WTd5MmFLD*)`|i%arNJ+b5u_4m{P6e21<|jA`+J# zF@r~}NQN5+gc7t1C8^kpCw0C;YpwbbPgiY(YAl1IbM6m~EJkC1ph-AOlF5O}L{XdM zxiRu0?1Nutr9_)_`741X^6}-nsC6!vg?C&8zdT$3R#bb6L~7-S`Bbpo70cT4$uAr< z#!884L?!z>{DY^U>`#EfLU|i>WZV2q>qF@g|k@d|(VQOmnC%&tV zxL+(NXlOjn=sR@?9uXaP=4vq6_v4bTSIN8Jt`B9CWv!3;-{~dkMA8o=$&? z(Sb(O{%1%D)zLBxg7gI;_Q{i&AxQ8+pvUNNLxe;0V>=%jo ze^Tv#$`6a_4sTK)5QCMtWvPhwX({d(Hz?A zY}@9=5G*JlZwNDl1wBY9O$QmDm!7W=a`zxvm=)owo7*Su3?18oJB!BU-idL%X*`l`tzH4B=0?{qFzxc}GQ|r>+g(Kk(Q^26` z+#B3K=A>X&*&z)oX%{(&$@~dg`zUtI2^C!-18``HGbaXx7+kQX_`zxa3PaXx=z?C^ z;3BGh(uf9xS1osnwv?a-!o z>#S0Sy{f}HX8uL|C;g%XtgJ5+-%o9E0z}&L(EKzB(aCVmAmTI zK;(XDF$%#ONBC`?W!P#gO;-BTrqqluwU{qko!R!F^2S{P4hQ=?xNy4Q6O>78(g0dU zlp=6<8#vG;lKQXC_0_eGiGso3pXnm+34_Hhq5%~4?1ATTfO+z|)4R7>n{jq8+u*(@ zD>WhGZ|Q6@^&57w%>0vG=HhhifpLw2OA;*k5axSmd|z>YWD{{@`k+E zH&6^g?vKty`((S(WIdjzfEm!?TUF(0=xiU{2ze$3Ma&y`kCO2~#l z$QJM(pWhb@H(usY>+L~}_uJykIF=7(dneddEUvG#?uITn|Ii2_KUj|KHNX9JR)X`T zoq$wl)OwMOmMul_jUMUj0-W~ndK;vi5t-K?YUUaFV*qeZsEdxJ--Cz~;8HA(bu-~q zz3o)Rugwvv4D#Fe>1+B3p~pH#f8;Ea;ugn`6h6WJI6l1F|Ga%1Qlq%a-=A0=+6?u&!j@Os zT02G?uj7JRbv#4HWVF1Pf-% zAsrPtAi}h*vFkrOwJ7cOEtvkC1lEqYxF$vFco(n$Z2OyO0It1?OoBs;(|;a)r7tNh z*W2T)ZNF!^KTsHd?7pfrNIvuM-MR_phjzU&Aq{q@3wldM?HfX?Ou6H_k_Mu0OX^PM zf5mW~PfiYtt+r^){VkG80{>L?%pt!(lIcx#La@+%RTWAa*-uQbNyt9({lG#1{+>H) z2{zUDNJrc4Jt4(;UI01N1-Xtz@PJq&EQ^1C5t~uEo5~*-b>JanEgWs*d#U)8hxrl# z)^*EY^`54GyLK;T!fv|lEWCdoY8oLNjqjrlX%f3W`ydgesAhY|DfvJ)p8e zA)uV=t`4u%2-A^TIbj!V`;W>XQ;#Ar6(d{|;~s{VP1UKEZB9kJ@D@XH5@yZ-QE~dt zJC990uU5NsvHCf9Yhtor7(dZNg5eGre&sTS9MzPQ{5-M+f=lF3i#7v?=wXBA*~j;e zmcs&CPl)$iysL(L&`)v+yV6WStX)6&tFY2Tn3IIa*I-z@U5J|tfBH!L*8;F5Mr1k~ zS@t;-JgyliTg4!8s$IY??}1Pl+5jbueM`ESTKUrI+!SF+M}t+m7ZI@1UH#SZE55;X zs~On4lOz|>({sj>E- zjOq_!-~yof*Cew<9Fjz~cDNj1+~Wo9X)XY)kW6db&V{h_jgDg>GbKHDfIy00lh|Oh zy3tg+V=t;T7@E~quzNSGqiLOO*1s${%jwwHaG@Ls@$J+C8KjnRaoouz^LCfxlr~+p zMDC(teRf@^IG>>HsJP$W2aneBlug(jGFm;4F8m%SERRpAk4dp$ray@IBt%OOHGyJs zSp`(x?7CHmh?!8av~>=4*J5RelR-ael>5$9ACM9&fJwaYeqD7D35ow$6{$?u9lPy3 zT{91&v+@zT;YgUL*bapp==u)srTQ0Y1_$t^4Y(m;rqGfWzU~M@jU6$F+LrW zk7pfW8*dx()Z;EGdAnCTz^Lrw68h%#NW5Yfzy)Ax+rvQ60Ii{!o&S998dM!WocCOD z@^DcQHs~u!NJ<1?Z2GLZ^M@K9qs593CmWXz01csS3qo>)&4fiWZDr4_kgDUuOdzr-I6a~0g z12`6Rs!gq>nd2q0xACg>syCF#SIZ;X-{JDgq+tzPfzeBfxdh%UGcDQKS<-?#B<=r! zX(WT`uD8I4j3HE!%RGH3{6&5vki25LCTS~$lqHrN36+b-R9d&toD$H|UO#<8Y$eUO zj~<8CJv_lS`vl7pQk?jZqA=^RW5$>i3Bf^pqP2RQfODmS1i`&61SN029C=j#0li`c7FMPFkFKMW0A5d9YIhlPunU#!O&W^n{ zk6UhH+UWE@_7IA{_nuV0OC_rk%KtY2_CMSpDtmY0$nDUDQF1I4trT1CULXn?u-{rX zivmTR&MY}b#OV9}GPkPnQ;ks<6n@>Ska!c$&uIkfMGOL1*E#n2{g(y6tP#uj6^pg7 z8Ks0N6R3NOHajukt<9D~{_+6xyJr0>S)%xP&r$HK2K0AIAau&O+*@9;hFr&FW*DTU z*0)fJu1qDJR|WzulI{bWqiyn-b-$?EfJsN(9I+`6o&zf(+ES1Aiw7ztAb~Sc{xx9 zSmpB!u3Bp{acui2c(Z@yHjR7T)%{!Y>)$F4t}0B;LZyv*w~mz?ey5k|{QDDZwac7*)+^H)F>U2$H1(zK#Z}#WVc%EKB2@&P3`xdiOVEje zRa&*h;sv4MwTV3LRr3#wwf5br*9#y_*P0Uyj; z)n8{C_DjXz5!A%;yJwls2$hORL|6{rO;XbfPWxh<>mJ>`Ey6rI-yrdxUi}~na$XSs zkQqpCFyQy{!Vy7yBTKWVKOY)WElpyq_oMbMu2@RhyaO5Pt~EgHNyK65ylfd{tRwrz zpKvxLe@RuTp&wh?cgS6@q3(KMA=rWn^<)Wq*48~fA%M~R;gP$M2`%VOlcAOY7GD1~ z=Z~2&;115>X@fDce)adRqHaOxN5Gc{%W|`YKYiq64?L<9VC$Y>ay`)in`&cTa+YA*N)q;w7v~7# zvO+gkUbByP5CXvS_Bz5Mq>}!61Cm6n2Suix|5=(fj6(o$(hvQpq=dVIJ*+?}Hsc8%<_@41~b`6zdno`J8}2r&m;OmsKf(fai@_qOINKQW~6ZEb!MOX<=O+h7uM`@X`3S~7-J4mu7f5%0Cnf`w_ zV|ycWVxWIm*7lpvJ;2|DIQf(lmihTau_{;ijV>eo9Wi%$zK-e~63P*N&#A`&@vtd9 zshm4=#C5?>M;*`L?=}}eFch<4B#kN!3=Xa~fFb^~rPKK9hH9LyHMBDws0a^5i%TFt z;iY1|nVnf^`j*E0Q6?!=v8cx%R0y_9*C`)NSA;u6?^)URk3ID(Lcw*&;}pV2wNKL5 z*T|N&0{XMh$G*$W4C-l7ahA~Pnb_kjqDF&uH{t94Zx=ujo7dHX0+xd4WV~$bDAhgU z;6bN@zgZEE(CrxRJrrOz>L;zNifKPS(fZI7 zPnNaZJkj1j1XgajWi_957fkdAYHp=Pb6-QYQO>e1SFIce->|F*)_Ek!;AgFwS_P}W zV_I-fiV^zkPe{_~iN#&>w?s@w;$F34E_x1e(>b1d8xg2N=Zd~N0^nWaLu!== z=ttYgtHU#SecMah??rrtNd*8k!artyQ!pdH7U@g=En$%We zT@UorBv+jS_wm4@D_B;-_knn1Y)t?qnN^mu%(D#n%+rF`+3p9VQdzydAdhi>x65n91#J+ z;9~ElN;c$}$-+37AF6WirB0(>ttaI%1W-NV`@V!wo^qbr1nfNKVuip@u+m2Cc$foW zg~A&K{bGcX5c>@2x9CuLr9YTyE4+fw(=(hxbl9^Qft6eDh&FI>QO2ybB>|ipeu>8j?MC|wn7#FUkg?)REG!p0r?gdaBPMvTj`tm zH-mqbG-YxWhb%*qz(PRunBv0_;F*-B6!5i$}3BC=5P8TCo_d zjN#cjI^Lm@gHe*LB!A`d#H*vZ=%)q|`p{Ltx|l4caHM;nnq6enEU62;T_3o9Ur9jg z8XONdyu*0-uesrQ@&De+oDtW4;3=3Vf$c4UO+5p0L1V!zl3YPfA*!V3^DcPqgGkP% z?N?iEBbuN!4(O_5$1l>jOj@}{-v%e4B{t4#)SN>Z?0z0joM+q8Ov_(c&lq(5!q<&f zP#wpmEeErhV)5-6aVL@l|z+I*Gr$f zN}g&{;C)`lhPW?ZwS)zqc{fgK&~Z6zOpFJi@@B|jEF?`pRnrPo-CWOb3;>2iGqQRA zF;#=1STiyJ9%m7Ln0S?6f9!0>1kNiM!X4v^FZns7@G*S`N^oUm7x5FY!qBOG_RMAz zmQ7*CAk_$CYjMSWbfzLQ{HFf!4){!i`I4&9+4lky5g`Cd##F(NVKU{`kNG<2-5ZvM z(7egkM&!cP-eqRBTKF$@CwN-`Z)s*Q|7INi&^oPh04Vb~jmA{`wn?^>$eRK{((F+1 zb22+??~eFK<}CmqRZ{n;}k4Xv|p>DkAl^RLaFdZ(Lt z@Wdo*dU@FnkyRfGz!BPr?$9R3{c?gHA0{?4xTo!NKL&JtaJygsLHS3fD5587>OXvD zAEtVI@7RA}S}dbmY)fEkS-K{pO0efydH_*TSJ?ZA>7U<^lDKP_{UcZA8&!Qdo{Y;3 zESVL8^$*i9&RDYlB`2*?ciT~aGT6bck_BmCA;~$}nGcf6hB{`gS+hh%>dbjb7Q~0q zaMm&$l>418_Lm)h&-)L2sb!Vx-%K)VM-R+I7qXQ$jjphzKS>j`*YOjN?n`{_!9Y3= zUY;SH=yTy6BZdRt`dxa5vLc_$QOdB`1(mAhfhtFeotY^yMY){$XNVSVabXzZpnvj) z`ho|zLJhVC$M0tZi$UmGenDqE|Py6K1e6&-hJLlTolZvC55LjzSP4-RZS zwC1$L-{9SJYLK(%e!S-$?te|E7GbvThLOy;L5?u|Qn{6*Tnuyk;5~FjZ^3eC2M3Rk zz&jgR!>)$mD*qOOiUDhuwa))M5YC!0lo9?JCH|QxE5YNXI-P*vvSn;P{D^XbJh)TG zGL8#nNSNX65K5)ML70DZbkNIh91QivqBUK^(b1d z8`UzwPqa~N`WX@53=$@@>BV6#FlLL`S7+I8A|1k#OV3P9dMR$A*4{~yq}ERn--J6_ z1=c-t z0oYS*Svg3S6X9OZ@Tb7$+Q9@)7kc~o#?VO%lSL!q4^z$0-kB6M(0hkxy4y7^@E-F~ z6@%0&Gv|vMeeMsq;sU_CPvCR^O896N7r2t`tk4Cp7=52qLfcYh$L048nK8gYR|;y4 zO;V{g%o6ai!#i54O(U>%gG~*W>}6XPR7&<3rDw5mgX@k(sAvQXH6G!DE@iiuT3?fO zO_nRLHw6ONIOqFE($e|k-^G0MYcYo;Gc`?mUVe6kl zkVdxVWRjcT>Kg2dyf?HKn&~b!%WmJ<9N(-hu$k*I!lt`>3Z%vnYR5G7rTHH(&;_gA zN8%P|OJhbm`MXx-AS1HS>SsU26;Rcfq zN}FH2ja@+sW=#PVrS)_{==5cpj`T=|uO~g=%nCCU6axifcmXw;2Q?x89<6Z_cgI#l za%m=T*qK5D*1Y*5@xCMu43+?kr3{@5u_W?r3iLo)dVn35hGFGV5_Ul@C}cgo*@KF4 z+7wGEmlbgWMP767G*)zdL&sPTmPXAh^qz~eV7}_^{41e!-$WeST@*zUSW3$&$P&$y zMLW21xXBmTnze$n-m@G^7-jMbpLH^eEC(K_mX?;3E?jQi+eRH-tBcjsDsmGizIMx^ zL9;*%kAG^Iz?!H5cp6%+62Crgfz;IO2v=S+{wi9CkAQEmzauvZKT~Osai4^o(90d# zLRngBc>K4sT<`o+-6fhAfNH{9-j$qcsrLi#ya=_O{)9Pv-;jpYo_VPTBRpYR6`o1M zi-^4#+g$mKU_PUMPU)~P0iD^H%FljNd%zR;g(N^G1X5=e8goeR(5}JjrU$STvP6YEFSlD zmJzxJuY7Nb$x?(BtIpzD5DXH7&}9u09dex!l{xB-3*8!Fw`x;t(0)Qg``(nZ@P|3U z?zFM9bCuqS(pep^``clmnHRp-*TmfR=l;MPlBGF=t#uje&JT8g9Y6ZtCW(rCFepDt zu(}srHI}?@N@STRbTYc5Dl9TR-Tz#aByzl?L$W>5on@#I2o7pDBwf4kgWd>0ma%zZ z$bn#=4#o-V76s`t{-$Rxx$Ug8bWj%^^P`Vc=ck`KuXqMu#YWHH6(dGMYcmB2g~;9!R`i>&905h8iQ?FF_Rbof>bqIBrfJ|<@42S|D+2z zLZ|5njL^%`W?(SoMrI4jI$aW|k`A%t)fghIoO~6koZ&+Y$yn7MRHA~5emNsloOEoj zFWML&`;hh_wR_^f9BPqsF?3_o<$jMoBfj^ybIo=!j*;$6GIoLw1Xk7yb%=^kcvn#^_)}G&09{mWC4r?_+O~DgGarDZ!uWAX`p)ZTLePw9 zQdG!kYO6Jk|NUqE<2QeYti_}&NT!a-TsMD6@}-|~q|{0s>e6*ZeU3X^{c;Oo^=+Ep zGxjFCmbtn(H~JjT5*y>W9L~5NM(Rv7(dOZ)6%8*TdIC2}9t8j&PF-o7w@|?l)C%Oe zZWLGJ?H>0T9+y6w{EwNtJpu$&aw>+~O#o?HRPPJ8E?UZj~yVRcQyUpmCH9;H$YOhBZI zqF_q%iJ#QNLh7lEEdgL|k)OK~LK*~@uA+{%ACA}_EA;IlNzn?VRzubYC9o%mu;-Xl z->M^v4sb;KSxF^DB}|l6bnh+ss7Tr#s{(RY~)Q z4O@bM4)D37V(==IkFB=VV2Tvgj02x4&p`-@6|mW8Z5RtLpbL$xh}LQKb0{;}lFdMH z6&9T(u|PhPmI(>`Dtvp=|1s#|kAb<&%-|uO%~ER^UE2l)qYxhw)Od9J6^(c|m5$%% zxpC!R6vt7*Ho@+`mlUhvar{H-BKBRO16jb6Z;)I8Cky=IuC{{=> zYr|6TF~Hq@(0TDcy%}^D{|vHHHDcNF;DqI1kft%KCe+hcpA~9i$KTe?P;H*kQatm| zjO-KQZ9g^fw0rb5j8BI4ARtSwH^OyUl4Pf{pC)}IL-upyBzzs1ZFmclEOlImWAb)+ zW)^(Ka^=5OmZBIn5XXQ-IWNk}q0tFK`$5+f>J{@i1h$4fZfsjY;#34_py;X}RZBu; zaYWU0Y7_YwGpq0Qj?u@x?GPPkP0vkZ?RTj}f2G^xA}lsX&8>&W}t z>7a{tl$H7nBwvoEs{byV9<)Oad<#Fu&1)%vK;BqiRIR)v!-;yswnwr5v69zU#r7{% zd`()~A$}M^)dnjlP|L*oV3`kMP!;jvp2m}~yCc!FzF*L$fC_e&+)PSu0zL;4Zd!X| zkqNA$CV(rhou}5UYbn{8j@H#SIQ06BFBES@J=V(r(3fXTA~l%p)^BV3(k~x74do(0 zKK7*Pe%8+kkirJ|>6t&u>x)gS2xVLbsWZMz`e`s%cBfi)heB^#d5 zvuG>V$MSoZ>m?iBG0{6-TW>W_zqa(%+^w|&M8Np`WEv5vpm1UZ(7ts+(a&jL$uLEN z56!cXH7m4`yEgp!Nc(`-5&K?}89oD)f*-Sk|MAhH<}YnBRbTxxGMw-#NVp%|bS;v# z^z7lzlX_=2!nrUi>{F(Gg?Wd=b z>YOrgzO&b^UF4ei!9C>DmRL@e2hm?A8Fg4<=&(5D^TNXO{!?fGmk=sh!B7pvH+M9& z4BF+4iGy@R2h@Y@k&@u3AD1pRWd7YXGGGcF-ejfow|iz7?D#2_EBlX2u5$UugBnxx zx#{+HNpSlQIBQsXs9d_RZ(@TLL_)Q|y%B8%kIDxB|C}HdeT{~;zh-;9e;v!=2lFM@HC!Z{USfa-@TZ3g5?c4m_Yp?KCGL{BNsXaOJGJ`D z98zm&ZB!K^Px{g|9U$P?+4U8qdpchrvCvDDt zML}KkkiOiU$)r$GKXT%$OiL71Pg=ZZrr3Oc)V=r2;UQ;!Yw7OCRM9Bg-hx^JJtlGE zktrI3R>Q7T9HfSC_Q( zGDm{pr*41{HMV%>RVjoJc|X_7-zd+rr?? z0 zlv5OBF&+s4AnHu{K6DcN3u+eyHXNahB1Q5Z<`tg+i7pqgV19(?a;gyESy^^3z15=P zYvt-qZofC-;h+bvG)Hy8`=ka{^n>Y)5FD}UB`!Y15i7;-W`-LXI~&F623ndkYTey6Ol zH&EN;q2}2eUVrr7FJc^Gen)m#uiMLYh_6Hz)XME)6g?94&%r*Ndu@6(m3H;L-t*LZ zc>A6QCP`+9%Ok-K^|u>C0QifGWqwQ9-(m@XYTC>z=XN=ChsJMSZVavxhpBilRK!x_ zBBBbf_~Hi7W7ef7E(ImCnPdMsp1Yh>Hivy`6y;)wOR@SOYh?vk&+EVdtOf?4!U043 zMteWRgn)rsK?Zw3u>~+0qyl$;!JK#V{=e`yIo2Mtfqc&Uxk*?GT3ZFSU>CVaqFNw= z3PGe> zeabSXjrG8-y1LEblXz!*i_DLMb7dTfCzyvj@l z47Phd>M5B)#&PbqV<~L{KT}-MCY)C&FYItD0L7 z%+p#gbT)2X_C&5Bp#UOM991kLtpuGeS>PB1cp1rwiFT}nl3gD9*atc>*^MU{651T?Fbl z+XbSnX8Oon>(tDvgul(b5%v#SNh|LswaI5uZkA>=P+jeqJ?e-8SLB2siRo#lELVNW zUJQcsV?efc3;S1Dmrr*ES7O-{|FE(_${H=KHivy1kH?Gxk8REfgFMj$+ozka)cmjG ze&m8GsC&d0k*A#xSZDAOjG#4{Q@!E#TOxuyqR->SZZv@m=qj@nIly~i5S7vy9zyPB zN(bz%4=rMntgqQ`K@eD9IcRCHCX;#e^OO<|Qi8!>=ecrSLtnIUOm5(jnfL47 z!SC$Hyy&54Ib~%sHTsGih@r8b!Ljao5M6=$UO1NGhvNUd{4VfJ_$fZTjiuoWB1i@Q zho^I3jI)ip^~6rv*l29qNn_iMlQy=^#OXoSeQ`q`M`pZl*ln z!5SStYxqHQ`G?v-!SMnZT)pFSSc3iC2>NHmHjKZcO)?`YT4byGc+;92zk0{a9eg>` zdXs93IyJ$^{J(#8qq-(Qr9Mkl2$H|B3|_aCt6PNB8#S5MM<& z-GK&u-;W`@XAc@?%3Um$J>@<&35(hyE&bh)-RztzIY!l0C*+Mr(ujo{dg&@0rJE`} za6$qec|UVbwB8H+(+~*xcv+8pZ#B#jQJveqpeBm+&d8ZU5YXIzuH7`7D73T)huCI; zs(pdh<_qrPAV!>gULaQ_$rx&v&O?lFHj7Fya!NG$LRsUk19Y{!JYHJwmxYBWM*tW#BUPv%b!d8Y*5*3Mg02LvDEVb9b&dC17m1Uykg zA=9Rg9hm$Hp|*aii-%EK8~=(=@lLhByebg75y3Myp_`*Olz#A<0hQwPygcrQlH7%( zFa^XGQ;nuNAnAZOL?UYW8Is!zX-tmcFrw2k=2H+(gx?uvEaLB`T5x{ z@8h>_at`QE+voSH_f%Ve!C@NfMymy-;2UVGgiia1{t3Rm^Q&#+9*z*F!oLiEQ{m@> z`MV9_XTGjS=Y1^m?OXXn>d7dn{<}>yKRS4-xz0*Xh2A~4OaC{Qi)AR({X6Y|T^ho~ zZ+K#cUzQ_iG0?GXH{lofnPz>_-^Wz%TMqC#GI3KO? zU9?$dIv`fZTZR5piWy<5{UMWrAPTl|Q*B+{a;H65I>VO8!XhSok8_j}8y8Sqa?_JR zPLX=gFWwZLzMIJ>>C#H9#jCe`8tzF`7)`&Lv8cF0nAUHpJp-~0u%t|h%qzdpWolW~ z=f;97J?Ob?io@3I!mc4Yhf#?sNh+Q_lt=qC?yHNaN9&w;7dJk6+8(=Q>I#IeR~P)# zn<|_CjjT6kPROm19b*=39~WWn{Y9&oDutD!3zrW%={> zF7Ie3TT>EJj|HBT`!ueS3~Qyed7Cr^ z)g|zk9-vB2MdoLj{kQqKl;Uuy@BM<3AA8bE(O48O+PV}R`;bV>@-cNkZjLGvvd!8o zp7u>?V zfxbi~t{x?*YFB46vhAe&8KZ0r85xyJrz5bJ9r#a}Vb{YSK02PD;uWnJSFff|$Y0fQ z_r|gxtz52=$mQ^u=4>1;7SN%kSKpHZbq-!6E7m(B&gj61)7}a&vCMrPB)BWf=pVN zA(_@!hQaWcTbP6iMfUrgAYWOiW4crmZ#oE}(48brjp*|cZtu}$;#zthvY#R06i}y2 z4N@|fXUrxD?3FW(ojK7*XbrkbjU#nYRue95e`Qd?$nthfJPmu~NZbJYVPS#Tz<-{d!aZ;JN zWu!chX?4qRg{P#RtvKc6o$vAqSh(dJp+RWp6fb$1ZW6RWKBqlg;mw6~UX{2+UYEHX znClW%&tupBvAEPjlJJ^RdGdi<0QeLFGSl{!5tiZKoX_|9W)W(1o_xh2J-^6Y0fzFO z@*5o&t*izfH*2kUBWs}+oS&d`UXA?y^e4{Bx~98i(cTX%e|lHqs8Bq*$??Q4KSU>l{aY4tplW%OOVMm0(s z&0Y`=t9mC-c<*S8P{0<#s$;}kT2WBp6{aPv=7l}W?J9)-5>U@RALVgF5q4ybp0$Uu zcX_^UTkQV?lLmcK&KcP>dXhDc^x~e3JlH?fS2^_s?5$_oOBG za(zms4wzKiweO}I8%6_A9OBvQU1@f;q8f@r%~b)(9-tBwGo62kv`;EGg#0qqBrYU ziU@D`j;jXTQr4CYyf>B*iZJ1}W#Sh!gT0lFi@UTq_?dE~lhYrqD=k;UDSymFV(*{$ zJz{I6>RoJ}{;X75k4`&Hw|VMf5@>L7&YtkQ&FO7D`%Q6sCKlGt@YJ3%{`(j)C=4+2 zK{sW$5f1itf+cN49Q6Msy+uHcv9HkY?wJqlz2iR{73v;5IkTC7v-yfXUl-|w+$?q5geErUMQ>Tz(U`)5a` zVds_Gd$-s|%m_PPj+a+6L{DC{cZ1 z1wkSI-|B4@M#RM@3Gp!x?n%y%^n*rBe%@!p7%mdqtk9ko8ScTeR>1R~Cj{Mg^WY<+ zFae>FP`H`$;Jk)aiv9I=RN`rPve6b7Jr?6`k(hJD&Wq`Bb$_F6M88sKD(IqiuiuA|5 zQmL~1w$_7ku-ntzJ!F7;B#)kyBa7)U#0--$vZF&3R;)T@d7g2?u;?IhvdYwzzFG6j;DKnwuzSJ;uQ7~)~GT_5#~Le!vpLKj0|H^F|&tiOS-D@ewYSwvNH()deSO1w5#+-fUO)Ly7=EPQw{ z2&CsGLRFWzl{jPql~oh-Mvc06Nou|=F`{zt7*BOpq$(8^uZ3C|ugpUBw^Zu^&0Ck9 z|6k-Dy#xg7!~(oU(sRr)opqVd8lzd6_1LtjQ46xnO7C@W@)VIC-4}`|`v7#T7_kHk zXwOMyryynf_OiXno;NPnpqQ+LoFk{`mh_!sQ+wg>e@Or$htx>}l9C-79*?fw?(wJs zuaGcT-XPq-PpgomHd&uy#$FqJO|i;mf_RbX5}R|QkY+fg1iWQyc==yUzte(5*DJCv z`|jHa9}{g7s!iv)>KP0vhk98b&?lbThb3WUY->tBv^FKL5vo1S`UG*o-tf79=Htgp z)9;WP9E%YKE7q0ezs?a=#SiWl^t@>T>v*M>%hja2y??HjEYj>dC{IuS81ph!G?rMh z>xsxD=?r&qBS@hNhuDu?92C}x=gc~GhuSV*uZ@(Sq?fU+Ecp^}w9^%@minBy%%CId z?tks9j_RNo$=`D&rygE-iRO1l80svvsZaQR!2J<%=KnmbzNy=)Bz-#JIwoRw4sAzx z)gv!%ApcZM4#yR+yl$5b7jJSa{y0AbcS#|51H({|3Ckai)Vuia*&IvuRjp(d8&{He zh@D6M?yY?%@RiKi*Kjl3V?(gz%V*d1`Q?1udo9DrbNfSKy79&aH@(OO)<=4({nqza zKtDR-5>LPK-PN&N89E{n@aS!2O>-{N@IylNFu=*T&EPI?C2hm^E&XXqwF-XQrJzI2 zgQcd^bB%-Q42yVoq7p)2{W)X!FNybCyBFM`t96aJT#G&lV~fT8oQ2oT^k=}s$F`-* zS<|uvlS4_2o%fpxChEFeHqzm?Hv~A2`QE=c*Hr2@;Ma1uc;ofQS`B{u_@VPfZ{XX< zleX^CpHlChyUJ%%b~5fB%(Esi2botwxxx+KzB4i4WrG^0YUfKKRq`gJlK}g06ZHDrv(ku zKQ<7t?nddcofC;;tFEX3_^pQ-1EU8nQp5GEEiblgOcAC^>f?f+xT35FCNaB)M<#-D zpw9m;jcxH3fVU(H+zj4gnyPth%yYv>#tH??_r@r8bmo+z8`&+e?J`t3bEqSk6 ze4tS+Ek{tFu-$>=NI0J3Jg7Jb<5ktfxEavU!Yfl8h?&`JmR*%WT2Vjul*?TglnylI2-eKP^DrO=9vFH?c0c3pK)p+#-5d2MEtZk&0bhgbZzUf?&quX4W( z8-;he3@OYjt9*Q<2`fs)&5k1h^V?GEp2p%jgNXi*TzYF;PK`22I}B2$X^e3Z*)aa^ zsv%HcPk8vc=#*Z3s?}hfq^{Rmf;h)F`$5uNYrFA|AzQ(i`sTJj>U6!b@@{P@2H zxwxa2?3>JCRh?FRcQq~AuI%mjo!8tlcOrPb+ax3b+~UC~2c}d|&_*Sm65#FmtmTUMYaJa!LyZ_qp#C7<$ zd43JY6E}Xp+XSzUIn&Hy_>L<*RG9kJH768wqKN);cQm71)PeKd1iEWs4W4LSh^|c* zUKV8OlWc7?;0r#x4vt`{SqWsXYUvBhYts*%rI%FM5V>9wX29c8>sg9xlz2 zYtceJH$3$Exn`U>7x>W`hgxOmF@}QF80#BSro1SGe0+B23F)ea9tt>WxAP_#Y|LQq zj_w=Alh89DI*9=iAsm4_WX}#A%S$L4KVq0BoDzKHHz7pgwQF1@L<3v$UzJx~AQAmv zLO9$6%F%yeP*u%>gid^qQ4rBkqxOA~w;Ux?)ejvnVoQmqgInjk1U9Z0OlfSwS_+Vl z9MA?#koMG_O$Gma^w%i!uDDl$eX~;+`Tug(V1CmdD3A@O20T+rOzf2m_}{xXz6yV` zc6|zeL@K^-o8RQ;X9DwpKYLs|o+f24fxliE^~&vF1iZ~vtNf(t$B~+g&6zDvhTelN z?eTDYLi&cxm(ob4KSlTX_P5@Zy)wxFt-Efv>aNm<40NBZCt}aG(^dx#0CxvF`5rBAf6|MdC4irq zyTKs9ujlu{Z;*o+wqfs%4XVSmn9^h9 zP$jn0cq4Sqy{1eG4z)o3ZA6@94jz7swcm3XNbgVMm3&l_v->NFd^Sol`_uKgO;lR1yEBvfEMaXbeV<{IuT-?XlIs{^dXL5M;JoCPAqXr$LiCydUc(b^gHQa z3%PWs#lDTBF*Ti3yRRJ3>4e`rDOodLoapV&pGqWVm5(nFAm>Fa8BNq;+{ zLR}{cGqF4EZL*+?hl=r8pdZmA1$->9b3lyDh!$!_qIac?MK4t`+u2$Ch50p~tr0e+ z3&Cq%+2}E=Zd-||IzA^)|JIG1{ND9|j4}1E zq)^rn)PNMPNb1tJbsgfIC<5S&gbz?>MSWMK#56!8OOTwoqMZb>Jb&E&QZ_a zD4_Wyv9v1C=B@ru*2uTli(x?GcVqIRzf$v%g4MX!c>|E;X8J{EhFyGsFE~P>s$~wlRjSby}f<*e^v~zX{oG+Xf_Xt-F zQ~gWXVd5rHaL47oLX-Pff27Ru-5diJD&?=d%?5*#*W~()X*hbFy()^?Pq(TiwyQPh*#Au5xw5 z7ytO}GrrP*OsnCLm5caUa4$X`@<99k#Wp^nTmo!pTTZokV?a5_@Pb;~7qZ zae~o7iX!@0RxUN<$RMHS{A`hZmU@7`Cp%ru|7dV~OaIN9 zVr{_tcPD~b`!M%UhFHu}4#}U4v4dS0gh|g3|uEzc^ z3h+P0z_J<=OZs01Id<<9F-gr@$3C0P>Dr<^wLr@zY$1gShiH-J6i{}Gwl-sL4@Rm6 z7x^!HT=2fjZ&Yv8)J{&tT25U0K9+WRO&14>tj>Fx;^^sn|-n092bkl^A-VvRLytK zEXHz0$~+htFhrzt5F;sMS|k<&%RBAjINMl+G(VTQNHeA)%q%)4D0R7OLVFBF1?ge8 zt)|^`3wG2j59{0OC&Fz4_n^oEaIN$&b=j1LNK1Xt>ChqQ5-59AKn`F7CGwCba&{_h z`7dSYiN}gK28YY%vY@U>Vfl}p3F&03IVQTmDkr1fs9k1QM-0rr=>`|noyR-gqo~*! z*_;n5IYsp(K$vP*Bo1-Z4NaYRiUVu$S{u;O83Wwtc%4`nMbo&AUo${?kJv*n98bd6 z>FU-?XlY!q854I=^5yh>z+a7^?)3vrxknfC#-I2At7!Cmu#Cuv04h=vr_ zgjQgEqp&D(BZ?Sml`?A?#}&Q!eVT()46;2XZ5l@F=m9Nyj^@p`nnF9$5!%Text=Yl zjZcWK*StwI?Q&Z_cCQ`&g*E~LBoAIBV_5v?^HHQ)YwzhB%U0`TTMp0|41*aEjj=lZ z!OdqW`~M4GF!utl*NY{q20g)VF{TUHuIH|XhEEZ-&=#`d+2EDVSz%qr3>LmLe^ zb&{kSbe{V+yr+HNYMJcG$H!cY>u}O_9WiSphdPrTf?%Mj&g2tNTd#Ej197zQMr;}) zO@u9~9`ZjAqV$DYM>kt_{PnT$7Jxx9){ya)bH5y_VOXfSI7DQ&CJr;jggIbH#v#sOj0yA-yc6EEgy&}iKAp#wYaJqJNryZ4(=;Q;18NGgNGGWaDSA^ z>Th7p#o zr+9K6^g<67Se2w4}^4<7_vzo)Y%)a;jnF&hbt*&NXzai$_9Uk5u9qQ#ND*%E4B%qf4y3I1! zALsl+R+}=C0Q1{yV5h6d&d{Ke_^$l*W_LKlihI&>C055+e>6B*AH=rm+AeWHNK~_+)tAWv~ZvD$lfBd7E2JN-H1Hn zHRXn_!zFJpzw8(WE6!RF_RY8Xro^_`QX+t!!bW_Kwk!?7Sj$F~H%sN+BzBin91g38!bI9AV>TptS}@XmYrHa` zO=8Bzu5Uf$GRBL=X&%gksgTlA6g$Udea{G!G-mx4_|S>y%`hI<h8z5U#4#jexac2z}hW4qHscejM|(MDtWKbO2#IZS%p$Vcn= zIK+NX!gx0rVd%R|CTTQ}Umojak2V#^$S-Kw0{(*oFCMEFazcxa$5LfqykEo&r}EQ> z6}#RxM1mdQ@ySSx*Wyw?8Rhv($yi(?358%qr^Pp@b!^>bl{G0#Z&_9Vi;zx(+ZJCT zV=Pj(i1X$|wQY)iat;jKxSankK^Y_Zg94?e{RI@?F>5{A_GvVG4K!sv@!w-ad_^A;@Ympf|N;` z(EWh%sJeH8h4kE*Y^wF298Yfp@ld_zN8wGe2xZg+@w2I@RX#G2O@Kh|`8nO3tK^M1 z^5IcTqByyKz)1evb(ORBsJ@m$1Q|u_bsJ`q5#}iU9MMWOIp|wnIbm+Dj`tU)pOt`M z)rinpNHEU!U|!lP4WJ~?hNgpcqAnoic)57xKz-1~pX(;a-D7dC_R~Q!H(K7|-%v?L zp4ZrZG=iZqw#Mnn6Tw6dQh#{F4*gqiXB5DJ)kLHJU3l?4s0Js!RFmL%Z2VWhup~wV zc+0FFi)Kl9)9*k+3&zj{((_=YYNY(C0rjK3Ngz-P+&A`SLMTY#*Kfz$n#cd{Q*47a zp~5e`3T4M#D-hxSQgoEAmmTH$iyfH#E&&tT$rRkH&rk;Ey;Md|&D>i^Z?O+4kRkG^ z0Y#dI#DY5#GbVB%Q(Fv0jcVcpVL$Cc3zLv;c}jdbM>X~oP8)lwA)D@$RmNJ)0+G)x znz>Ziq$Ygh<%fxUD;NaK!cjwZ|B+u?lh3Ez;sdkT!c0AB9we^-aOyxMETR$dMz!aW zBqAX!`qxB1s%ubZlsO@MQiw6#CAL8WtJurlN@yiZkn0no+hW(s6wo3r?3XareMbdD zYG?~v#NKuxIaj?Ruc?1(TQJ{0B^&x0j|p6|iuCw~i5E0%a`B@-k5UqrmWxALr8G|r zH>$o0SXUh>k4qx?+Wu1@_H>pA*b84AW^TGQ=1Nd@9h>9wv=8&`Fnt9jZf)yx$Ju2W z#}5ynmD6a=x&hAROt7rgZe}OEn!nxp&~n-#wENh9H!G_SqBeyvQv~$lZgj+n0iZjT zYh>ZPjvgNREkH89P(usnJs&zNgz9r^!f(7e-oD($0_>ro*A=%Lz6$}@?w;c3$MQa+pAi4M zdGek2aZ>7T4o4>iNbdxg2gyG8BplGsk6Q;m=(Wu4;23@d5ZB;AC72?^I9hhUlBhpk zLGAZZcalk5*Rt0P~`ti@cA9>{li{?zd4OXIN}hhJLD~_ ziS5&s$!h;{7&=csxI`5bGE#!Fn7c>w0p@XoXA8HN{r5QzD4qGD_on6`6WA&wMQ&_eK;Lgj*6=KW>5qP9d_{DsvJ7!^_S{ zSH5hB&*{jCI4O?O92l zR=OL9fYA?=B^B}p4@V^ph}y-~I~uP%06q72su3q1WnaO<@_g2(Oj?nPMyk$g%i3f_ zcDXiuIXFBH@oxan8hGMj%HrY2DoBqJs1b_vwVW&V)%!{RDdA`!20hex2l|=8M-FZu zO^OMmQBP@6aO@ih_s`SBo>`TB;ng$htf)~QXa^&l=3!58Zuj{Yo`|e<6V~gp%0k+C ztJ3|@V!vsN=erdf`LP?XF*JXn>pUOdhweiQad@)S=gfr7YLso7sJ=y4T42nN>YV%v z_|BoBhEbs(N)_r^B4T{&mnEBB!s47aaZy|uUAYVUKN}O;U{%TCEqd8IbbwYAQ0Q~n z$VP7B=KmDF7RC4kHpXlH&*I zqTP7z$SaBgxTgFs3aEs{LZ8})&;Eh|qWsz?u%Kx6S|M|%R%FU#;`#;kArKMuxy)WT z_YdzcCQmuXzJfn}VL}yOr}xkW^b#`@H8Nbj&UGoRSNA7$23R zyb3v7&KN0ne+)G=d30D&j8-+#IF)gc(`w7=Mtxllisg{bX0;wDWGsb{j)vbQ+h}Z+l7P z;S85^-qu~GW86Y;WHoV`^{&h#=`yj0jpL})4F;0DMNbh6D9}>O0JqK9>ER9RuDqJY z)8g%2p!Z@J=5Owl3=8jDHd;vo)@N_K?r!q@auhrLLw0FIriaVHoS1WsTFRpI<9i>@ zaTql*Gyx~Ll4rjC+Uar8^P%)FN1XRWZ8bK7w4ZV^p4{% zeU6L?5^ytoN%~Z{6naI3+1AS?5zjs?g}NjmzhCZFI9($kozDmM{tRHs&kv2t18#Ts zqQn9IYWO$;soE^&y`H$VIJlGvCvGF;AGrPYL0UhnI&gabz3&4&R@~1x44$^(5o?*Y z`9>aKo&)r_?Xwr1pEGl2AlK{qtO~IBn`e((+z)U2yN-(PI^E+{JJ2wzYu4L-0qPx> zMVNY9O#k^WA2a#Q+xWDe6 zkT+4-PYCs5_}g_{opNU55y`bj#Omc{s>jY%F}Y@I&h zygzT*NR~C7s{hLxIx+SJ5H>u}In|H7eL;*fr}w2+P8eZpBC|||NEfB}&1s1c#gZ zg1LV=wn}vYXC#V^z=WSJj~=wK))Sj%;Z^mzES~Rz12mbv%`sl;Wpy^U@F)aheQp8E z`1{Y8q*_byW8*NhkmT`h-eA+^cj~Q8q@_3p8EXC)%nRW|#XRc6v>sVI7T3#X{{ugT zF|MLc_5Z46m=(wg&FI}{`yl+^C;=%%zUZ;Y3&LXJiWE%^zFLYL4u)JoVl@b!k}_^n zXC3<&ZhNcv7y;F=5wSezYsmO1%?o6!5G51=`VZTjr+)zd*u;LcbtyJ~1%X`GAob%`FjO1K}VHQu(Z;jx%6r&BanJy+e(6l(yB<~nltC(@dh1`jjB-r%9&Gf zgJpk)q!*VUUu~PuWp1TZD8@fpL6jH|IPWZO(BNWXrTGC*=Eob!w*m|TcmrBMf7R-V~&ad#z9GBWQ!A< z`S<~Y=0?Ka9r{P}!HeAExIr~L019Q^46V&GQlbSnT!)=nb4VJt7>E&0u@^iB!+=Rp zR9S4@<%}aDUqcV0&{oBPrqx;-j6?;hpZDr)V|Na$Vh))-D!8NZ#mthJd#LC3!_xA& zt?5>{^tt4{@nA*GQFS0YU&4x>ivzDto1e8bEL3_2k*EkpdJ0GKJoy{uw|rh~{me&` zRd0ya8#tQpzCZYSa(M>yCf<;jw51&s{P^}olW(b&gg3=czr#pqbRi8GH^>oYa`^P? zf%orcJ%iU|Y*v1Vrs$>MBYuo1k%;V*96eg@G3iGZLqcF4k!HhAYNb^Gp zzq_*Rmek?8IJk67x{OmDi3>ceTb%VI+-oTO3&aBRW&-@R67!jy{|WL@#l4n#4+9fD&kcFSeX$LgH-Scp9ml!C9`R51%`=5H z9fYC6luvPajJmL{v%a!o3Vnr0i71!h2FAaf=eY)85>nY{DgvbY$vl^CPNBQ)xux}P zQdZ{_zg1qbr6H!)7}mu=oS5=G!%VZ~pf9{-iT}GuB+6Ota#Qi)7=wT8Q)l z+MP?(nK2A?x&ouCd5pb6O;7-*O4lTHEF$b&MTY5K?rB^!;`p~+qc83N?y0E2);T;U z>U2?#i$>>AZx04N7~WV>&oL4}d{iKp&$u?aQbgz?B=SOodys}6WKXLI_6Ueh>u#~N zemstX#{aSbZ2o94KQ8QZ06Z3gp}p~i z?)KDUEv;>Jz5~oB;8Ppii_dB1PitThKUx_okqw#EZ%Q#%P3AmkPzRHbBt-R}@f_>( zqOhObMvS1oM8oVPi@n~PRh8}+Y{gfD^ zOy|#Yr?+&xzcGN$g@UqrwmmFW&rauVs&BOu;3QjD0mN5SiW3VcM-UvrwdHGO9~s(y zK|=(;1@M#&AlFA{mbVW7Z_g1()Y77TK#y=6h?g@-Bg5bw{yP-4JQbfT$H~lu{qO+ch`!w$sa_aeD8B-m3)FP za|8=;z~WV~@I2KK=6iQAjT*GW$wB@*OHn?)Wm?M7qE>16`+gRB-mSKFnlk*vGG?VPbStij`{8#0!?$orVX1g5^6|W|tZ%^@ zLO6H9-gWo(m`lbiCoqoMTwf4z@xFUlUTq7bZR1RjsN=U6b9Z&=8i>Pq=WhAdCo4JU&u(z4kCN4>T4o`Pr%wLN_&bptZ?PA|Kl5|5qL z%4f0|8qXubYY@mkGdbrpHXUJ#SJs-byg^g0Y2(c{1!D)5^t=MgrWvPB3a9^m4RpC< zZJ07OSNE9|W%(Z`1?fB1fe!ZAb4I24g>Og4A*0j81yz#heWJ(>={Lf}#hF$t{>sFB zus-IP#U&PsqYTYVLwbzOeRO`ICzKiY%8w@NI!LifWx(QHC`6gqQ2_h;AebzpZauCq zE{NB&kkCXB1g8F~nFVIb!9UtP`yJLs!PNZ*las$|WO${)!ifQrL+K)do1uo2I&zR_ z{&b&Tkq|O54-YH0-DM{U z=@%1}fEZNSuBM4`69B4>n8hiB&`8FkVH87pJ$kR>Azv&vNzc(URG9d$uKE^NjZV~- zEYhlVUA^doaFTPf-~wTfAPR$c-E^a+TG#o@SdP#_F2pw`UgL-n4%E zX{c#t+B->$J#47KIZNjZeC;2e&JZJ$`6yxSaOJn9%oFCWDjNhLZ$d*5@8w`_<0&BM<8fZQl;<0&d$N2BwNPJ_^)h;NhI>ZI6(?d;YnH7J$yp!=g9SHID zJkCJ!%7Iw^M|70c>x~QSK%3U!6yTz#4!Rne#O508?MFEb(Asocz`>Z7efDeRTUQ6$ z!oLpvdnxRuXC9V_W~~}##lpqD88bS_1k_8+OdB2RQC5Fq8zI=aY>a54lPl06b6M&K zWKQt7ipIKlz*1HJsmQcSWhw&mdZRy^aB?Vu+a|VS3NAtX?y-_&hv|UetYFGukPJ<( zma4AgOQsiD4;U-j-rL1gfOG<;6cL%pS@>o$D(lsW_n9N-Q{${rnK|WkcC7{>naz*< z%+SEA5OECt8epCIn%PRV0>`);@>qg1;bIr9@31u&a@reNNBGFQsFt|@l^GGWzzf6m z8Rp40Or71kJcE-Ga>P9B90ZLMeDLnrcVS+`nVNEc&o|0_lr!{~vo~>g4m`FKc;p;1 z@nQ^aGtO3XScwWTaf=??c4(tRSv?$w%V0hf5IQlRcI*TAWCCk77M17QQ~r*LYT+|9 ztsxH;jA|O)#Xj7rawrQBx6Pd!#@s6o*bQ*&3ve+&JuTPP69ERe*n;tdQy^SkVm4^x zr(?UShgfCSd=8@g<#R5HN*t@zM_@>hs2i;vnRmJ?CAIYT9U)8)ji3INn9Bm_qV;S~ zTa?=uL^I@#&xW)1FDII-6a;!2uhvrIP=LNCv%+?M+r;1W$6tT=B)t){G&}YAT28IW z3!)x7=cevGdu(0$1ab*`q5Xllec0Lh{MJ;p1$d>XZE^Y<6+#PnALzIa1>AN9y_&;B zmPUQ!_KPW$_7~a(oyaR0&H@UA1p{$!ylBBw%N|~!Q@I1CRH%H|PZ#}jMUe92$Z-8Fae@xpWtv@}z zgX8```6%oO@}aeA4>Q}-C<(adk_?|O#kjI-@F)*zV9s1M<}d0xUAyfn^mO}za@$A; z!0r~+b#iRoGmjG$%*;2*htE&XZI z57qL#Z)_VdZ`FFDOz_lFW5)9wzZQk;%a)o;<}pNk6hL2%we;19lUnJ>p+k;<#J(3~ zCwi}YI!rSPJpb0^uFkoB=5WnY+v4sg*+6A>t;&9fhucdwhPBxl_O}@@9;&OQn=pw! z#=98wNFC#)1@m;hSWST7KVR41aG@(AW8h(-wDcR)|G?e+nJ58CL!F&VaF*%Yh4HVt z`+PJs`kYGEA&*~pz=j5hYxU4RdlWjeG~bhi zx3i=4q^ZwWcFeQWueWn={NJg`A(jH+T_B^~2pBheD+Y$!u2(%lyoVYYErMslSMDDJ-mU$Ti!#)!i}%T49M}zf zR?Om=_G7d(_9@s;Bf3WW6EI$v83r6fHv(gu7}x(g$9iNSj_feO!(c>E6OFYaBE*ZNzWG5w9T)M8fB(Z}25eX5ghHjKfE$lkN; zBAP`_3EV&&p*983V8ruVSPIUv0unUK(ssXwluWj4u-^!hC4|RAF(I__s3wW3!E38&x!qJMZZc`b2f-u0r!Awt-`{R zwzc|On7&e%!UOd|;1M$P z#cR;}BJ1Y<%aMCh`9CtVuZ+?UDW?@j0%3qNB{yC&h_+Z6*bs7~_J%QecoC-brg~Or z_FMeR_N){8wLr)zh5!QRw({52ykH1lSmeJ9(ijgRGQ!(b*5bfg9AnaD6X`_6(}ocC zajVm7LB@St-g$|QLpYi-hID;+E;|KB(X6{wkbD+djn6~Z`*WQ)ZciMT%tkk>Bq(dQ z9R=B(R4|YGm6kpdGMIEMH8KI${P$>C6_ZenNcNMJx<9zmt5*FeO6CZz1(ne1Y9yrBKmpKA#T9b_xM7moyI1!B_u%w~;L@o?q%&h?ifG;%wb=z}u!9lC!BmFM`jlhr1}edQ?;K(dXKE0l=&_SseFsKkNA(=;Pxjc`+E~eObU5w;AQw zt}!v&yX^MLEF{)MpN8I&RM`=?9v^bx?c^yKSp)de5MEf+%{Tq+(ADmBk$Uupo&=o# z1G<@e0}SVlFDt-z?NCUZew(O#sQ{g*kGFF9yXpewHFqCIb|3;_kv{nulXI;O1B|VvHxNc zVUWfB6CfexS0NJkgYqK7l|D^{|E=?|f`%pUaN_Zd`r~Ze1)Rt8v#K&&KmPtP7@nOr z$Q`dm zIyB<9XYTk=yA0OTLCZP!N%|%`9d`*4rkW0$H58YlP=np{r!Hy(F;`qGnc<}GTRbTC zZsdp%g6nXgfq0>PENoF4k&ACn=qYMo#@q^g=R0))vN^bf@o#(22+!77)pZI@ z^de=}@%H`(Z=Y=&hDRRdIMm!Z^*UQz9^5^4Nn95v2UxkPH=z6wb>&>RKfA>|xlG}LbC?rx z<=&G26Stn1H_RN(x!AbdkXM5A`AEGl?63HA)#?lb|Hg|ZpC+a&i{E@>Y7rCz4f61 zA6TH8%C+i;=y}gI?+G|TE)XHd)K8gKA=x3+g{xq2B1+_w=9jW#DRY#XsaN#diROvp z;8BTrs3@nH=RNLTP4E8`dAGXl9J~ElOGv|oxlU8-_ji8k-s$r#=2WG? zJ_4wt!jS*D-7l~m5OqKZR%)T6#NqFdkwxjQxQ`ZrtU|95*XT5Tn34}enYvbwZ$UnVB{?KwOO^Q#8^>m zEQD}-QGYCVg-B4qG9lZk-VTu_K;320RlV+BlZ}Hz4y;n2p2V!zkqh_gD^@s~0RW3( zFEqB5#X@&G=?SL+e{b^9s*Ew2^btp53Yae-97dzJD;)CxGN#?6orSZ8QjVsuzNWkw zS_AKUN`i_SS=^X{dbVAwU^sH=O2iLU5}OX;_7Y@) zlhYhcLF9E^l0c6?&z_==pbTJer_cqgqFnWK-fQ`b?vvca1mmprm8hE%dYz?k-}L^# zjrNpLH0VC_>2k|E2{BMC03?X6zxD-GgcDW?XjeG%``~PS_9=m`TjkmlNynyN!5U z@b341Onw)vhH`}-yp3CtCy;}82QRQ1a{RfiL}L5s1sJ!{Fk>zyI6x+*iK=AJuG5 zISv-Tf7D4jvvEN(bNRS$eC)pK_RHV!!0k9T{$pj$G`;xsf297?C-dLcsdo=iOWSgC zA3lUZPBw2C^P#WgFlPIR$fsCLu)EOKkrTy(H8#z(XF>qd$_^;KFp!(ddDZg%Jm@19 zdT&s5fXYib7aYx2#ltIIB>36HK&}+7P?!=%D{`CJ`*IR0I-LK}p-&$|A9OK>@&sCp z->Py>N(;?!IrWuby z3pQZurULtsS-fE+Nw~_IrRpY;^hjYaRn9)S@NgOdkgLSPXaP>txKN>GQcsd8;iD8+ z_yaV_AVC&HwSH74)uzL5q-n#NX&nGQQzK-+R_xd!q~`cNOA7}*KKS=U#6Z%5irZyR zK1M2iVQ{C?8_2e@jTfI5YIsE0&@mauZ!LsGR#3*QFhGX+!?1CsoiPC2vT+TWWb%3* zuom|G%|A(t%sP#sQfxSoqH6sFfZQ>WKxALs46}yOk78Ns@tlM#_jj~5J5}9KxQ3(+ z^8j0GwU8Bq`FxZj(X5e6%^{%$c{%pFU>~?T$Sdn7AX$fw7t5h2p|rsD-U7)er#>v;$*xF*Va(S`TY9I3#A2=7Fb*@z<`yP0V@=NRj1u# z13NGV0GB~rmO_?-iIXzbM>15`kO75aGldZaS$at6N-@s;8I_L8bOvb_RBHn8%=MEt z9fJ?Oi^@ym3hab9fZPzIc~dg*kmZya zc;SBP)L<~TepOqM%yI(bs8kLxaGyL$WBU$K3JE7En2oE3{OL@ggEX$nl4YXt=i}&4 zbAPx#J_OaGti-aztRq<7Qa6h6m-;F|CQxMq72SfBuazE%s@kTjpCb-0cVvg<2?LUQ)Zy;>1M5n?)7$Z6EKuOL(T%-24vnVBmq z@=5L#j%&E%3=O=!n+D!|Tl@uk!0eZ?-mJ@(k$Q&ffzQVV2BJzPJ06FW^8OcIqkv3O znXQf1-Fq8ZDjn0BfLUZS-3O*Eh#Bk~+ji59MN-BMtJ@**Etf+s25tqAD@*9#^4TY8 z^=;c`1aW8D=UnIUIDPA<9xfWIvz#)s%{Y4Iw)oXvqhag6{RSSX)%TZvnIbs?wXeY+`U-HtF$;j62Yi_0)vzY*uOkY!h6RE zaLG{;rIA44A#ky6DxY2Z7GNNkE9tFJs#vtN`*t>*f7LEk;ZJn0}{FaQD9)0h7O;YZE0~Mj7R;s71O0IcL}D+6R~%dAyJa+4Y){I#zWnWeX505{n_MhXT}+4pO< zVCFaf4x~s;mVl9404-Q)B?hol3N?TvE<~Iu)R4H7f5wH8yniDA(w1m95^BCYE4L3m zxnr>CxL7cdn*js89zZTjjYr)+fVj-i%bs6G0J(A?i_>?7bDz3xkpPr|FT8#t7!}*( zekMy8J5;I5^2uenKK93DuVVJuElsBc%Qw#B30b={Ly!x9XNw86lYFenzza*LXYERo z*<({@vOc*u?u8tCzVXl0yYFbeAEd$WX&I!jZ8cT%c3QP7mQWRv?##NBV&6ahJB^&^ zkltSNX~Z9-AiS-4yeWmft~zhsBh8bh4t&PrKq+`U7QommjqB`cLOBP7dM&@bC7EbbeG)utB?-f&b!}neJ@%u+mXpNkN z5=sjwEik6r+#x;o=$zL4Yi)33nd9H@# z&*k@gvEXI?vwZvJqHQpcEA?2VeXAqr=i;0eV<b5dGh9$G*!m*8DnR}v(h zcZ4GFPznx%)qr_YFo-+3WCb1Gdsvz!ZlL3rcmT^Qa7yu@FsUK`iopq2{qT)9g@M>a zG%8q~%w|wxVYEOB4@x(rHY$)DF(iXX=!B7U0)Pvqbs3U9MzsupwfC~l=n&tC@pYpTY!Pn1d<4?r2#U9z*K{zvRu-#%wR=- zHcWw@;i3agp@@(R31^BVKmz_;9?m1D$$fT|N)3g+ND7JpTqLFPd#GW;3k3{F#Vt}< zFL_%mw{@u1$~qWahXX)|#ux9Dgzn1&Tj zd{#yws~@qfvN{oDey=DxkQXR|*x_w`Ca5 zB~UoQ-ekfjSDj_OhUW;DvP3ikx#g4awMC&J7ld+uRcu>U#3&eoISD;!|MF=mx07s) zp@PCw{@73m#w>jcVQc{KE{4RT>@?(?SrD(s#@rOaeMgGswQGbQsPulmrcKPsg+#6t zBV#TKp%6fxoRvPi7E=?7Z46NTDwP!%uuLa|iZg`|fLuye5X?Twwn{s|YPO@9|1cSK zq?Y}L(Q)PfXAK?$PixzYEFZ)7!E%-}MQqH80_bc~oo$YWpn{f=F_)KZ-i-0^T7cdK zV0)(R%ypg}#nWmOSW7WYhFDhIA}u37SN5~jT&3@U!Tl_Fk=--DmftI+xx#unKNu4oUTDs`a* zOF#KSkQ5vb2x+xsC=Mn}TqMKT{>CWt$4cNg(trH)^g$|4HVT=rbMGI<@1OwUd&WlT zM_>B~I7$>^|XV1^rROv{RoSo-#k{j7Yc;Hsu+H%<*J2UPeHC1b<`PhA%hVA)~`;YST`VNaJUzZ!R% zk^w)tjufsT=|jFBCxamhb`|e0jkX>+c$9kHItq4lVUVB3wHSoNvSA`d<$K^2Nr+-v5tJTeHjw+RgKlu zuzF@0_UU_@-#JMn*`g?LQR3RRKoa-Zm|&t^+v8C7KEEvx$Ftt=50eivs+y=9tXQvL z$FdKo6v=R!1`nL4{yhgFgIsvF^5-%5-^OMs2#dn+KJIc#n-S9_K)B)kM``Hbd9XLZ z>dRqTac=-1nU}0l7gbIMVO@|xkz1jNtY{<3n`_7Xv22MjLPJbqkeeFV*6}Cmh?C& z4L`Y=A^{)AjLg4MrGu2W4BTjp4N_HNgdB!4;g!3;CrF(mGfUkLpzntq7d4QV%#g+t zGQ;SvOA!xaJU{3~A#Gv($lw6QT<)2lt!K{RS{coMR)+q)N(&E7v{eHAUM^^`rr?uX zilRZt7sputc@E(M^Mez9l_UYV0EO|~RO}Vd`Ha?00Ep}BgvAYSH-j(gmH+uS)VJ@*eD0=bTgPsT`z(osEjCSH$#WrS&5nRVH+4W_DFRWUY(4J|X4>QkFSpkr^P$)5sacKn4ikafV zfnyYQd+|&uoXZ8=GrW!ls=n)PTKecG$g#4W%4A?^u&WEjABEq%e7k{jU6jdP4?`%J zkI59W*iV^#U+0UB%loz0Lo!}=Y=a%0DAt$teWw7@!j3U_u6kG=867t9Tb7^0e7&~A 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 literal 0 HcmV?d00001 From 9fd61dcf539f7596275011ec264f4ace8757fbd2 Mon Sep 17 00:00:00 2001 From: rami3l Date: Sat, 9 Mar 2024 11:16:14 +0800 Subject: [PATCH 0315/1024] posts: add Rustup 1.27.0 release announcement post --- posts/2024-03-11-Rustup-1.27.0.md | 100 ++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 posts/2024-03-11-Rustup-1.27.0.md diff --git a/posts/2024-03-11-Rustup-1.27.0.md b/posts/2024-03-11-Rustup-1.27.0.md new file mode 100644 index 000000000..de866475c --- /dev/null +++ b/posts/2024-03-11-Rustup-1.27.0.md @@ -0,0 +1,100 @@ +--- +layout: post +title: "Announcing Rustup 1.27.0" +author: The Rustup Team +--- + +The rustup team is happy to announce the release of rustup version 1.27.0. +[Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. + +If you have a previous version of rustup installed, getting rustup 1.27.0 is as easy as stopping any programs which may be using Rustup (e.g. closing your IDE) and running: + +```console +$ rustup self update +``` + +Rustup will also automatically update itself at the end of a normal toolchain update: + +```console +$ rustup update +``` + +If you don't have it already, you can [get rustup][install] from the appropriate page on our website. + +[rust]: https://www.rust-lang.org +[install]: https://rustup.rs + +## What's new in rustup 1.27.0 + +This long-awaited Rustup release has gathered all the new features and fixes since April 2023. These changes include improvements in Rustup's maintainability, user experience, compatibility and documentation quality. + +Also, it's worth mentioning that Dirkjan Ochtman (djc) and rami3l (rami3l) have joined the team and are coordinating this new release. + +At the same time, we have granted Daniel Silverstone (kinnison) and 二手掉包工程师 (hi-rustin) their well-deserved alumni status in this release cycle. +Kudos for your contributions over the years and your continuous guidance on maintaining the project! + +The headlines for this release are: + +1. Basic support for the fish shell has been added. + If you're using `fish`, PATH configs for your Rustup installation will be added automatically from now on. + + _Please note that this will only take effect on installation, so if you have already installed Rustup on your machine, you will need to reinstall it. + For example, if you have installed Rustup via [rustup.rs][install], simply follow [rustup.rs][install]'s instructions again; + if you have installed Rustup using [some other method][other installation methods], you might want to reinstall it using that same method._ + +2. Rustup support for `loongarch64-unknown-linux-gnu` as a _host platform_ has been added. + This means you should be able to install Rustup via [rustup.rs][install] and no longer have to rely on [loongnix.cn] or self-compiled installations. + + _Please note that as of March 2024, `loongarch64-unknown-linux-gnu` is a ["tier 2 platform with host tools"], so Rustup is guaranteed to build for this platform. + According to Rust's [target tier policy], this does not imply that these builds are also guaranteed to work, but they often work to quite a good degree and patches are always welcome!_ + + +Full details are available in the [changelog]! + +Rustup's documentation is also available in [the rustup book][book]. + +[other installation methods]: https://rust-lang.github.io/rustup/installation/other.html +[loongnix.cn]: https://rust-lang.loongnix.cn +["tier 2 platform with host tools"]: https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-2-with-host-tools +[target tier policy]: https://doc.rust-lang.org/nightly/rustc/target-tier-policy.html +[changelog]: https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md +[book]: https://rust-lang.github.io/rustup/ + +## Thanks + +Thanks again to all the contributors who made rustup 1.27.0 possible! + +- Anthony Perkins (acperkins) +- Tianqi (airstone42) +- Alex Gaynor (alex) +- Alex Hudspith (alexhudspith) +- Alan Somers (asomers) +- Brett (brettearle) +- Burak Emir (burakemir) +- Chris Denton (ChrisDenton) +- cui fliter (cuishuang) +- Dirkjan Ochtman (djc) +- Dezhi Wu (dzvon) +- Eric Swanson (ericswanson-dfinity) +- Prikshit Gautam (gautamprikshit1) +- hev (heiher) +- 二手掉包工程师 (hi-rustin) +- Kamila Borowska (KamilaBorowska) +- klensy (klensy) +- Jakub Beránek (Kobzol) +- Kornel (kornelski) +- Matt Harding (majaha) +- Mathias Brossard (mbrossard) +- Christian Thackston (nan60) +- Ruohui Wang (noirgif) +- Olivier Lemasle (olivierlemasle) +- Chih Wang (ongchi) +- Pavel Roskin (proski) +- rami3l (rami3l) +- Robert Collins (rbtcollins) +- Sandesh Pyakurel (Sandesh-Pyakurel) +- Waffle Maybe (WaffleLapkin) +- Jubilee (workingjubilee) +- WÁNG Xuěruì (xen0n) +- Yerkebulan Tulibergenov (yerke) +- Renovate Bot (renovate) From 411ed041d4e2ad03492a28b9a4774ccebedbd1d8 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Tue, 12 Mar 2024 12:19:43 +0000 Subject: [PATCH 0316/1024] Add language tags for hi-rustin's name so it renders correctly --- posts/2024-03-11-Rustup-1.27.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/2024-03-11-Rustup-1.27.0.md b/posts/2024-03-11-Rustup-1.27.0.md index de866475c..0466ea95d 100644 --- a/posts/2024-03-11-Rustup-1.27.0.md +++ b/posts/2024-03-11-Rustup-1.27.0.md @@ -30,7 +30,7 @@ This long-awaited Rustup release has gathered all the new features and fixes sin Also, it's worth mentioning that Dirkjan Ochtman (djc) and rami3l (rami3l) have joined the team and are coordinating this new release. -At the same time, we have granted Daniel Silverstone (kinnison) and 二手掉包工程师 (hi-rustin) their well-deserved alumni status in this release cycle. +At the same time, we have granted Daniel Silverstone (kinnison) and 二手掉包工程师 (hi-rustin) their well-deserved alumni status in this release cycle. Kudos for your contributions over the years and your continuous guidance on maintaining the project! The headlines for this release are: @@ -78,7 +78,7 @@ Thanks again to all the contributors who made rustup 1.27.0 possible! - Eric Swanson (ericswanson-dfinity) - Prikshit Gautam (gautamprikshit1) - hev (heiher) -- 二手掉包工程师 (hi-rustin) +- 二手掉包工程师 (hi-rustin) - Kamila Borowska (KamilaBorowska) - klensy (klensy) - Jakub Beránek (Kobzol) From df1969f6795a4405e958f73e2214ca0bdce6895a Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Sun, 17 Mar 2024 22:38:14 +0000 Subject: [PATCH 0317/1024] Creating file via promote-release automation --- .../2024-03-17-1.77.0-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2024-03-17-1.77.0-prerelease.md diff --git a/posts/inside-rust/2024-03-17-1.77.0-prerelease.md b/posts/inside-rust/2024-03-17-1.77.0-prerelease.md new file mode 100644 index 000000000..5d91e00b1 --- /dev/null +++ b/posts/inside-rust/2024-03-17-1.77.0-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.77.0 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.77.0 pre-release is ready for testing. The release is scheduled for +March 21. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-77-0-pre-release-testing/20494). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://dev-doc.rust-lang.org/1.77.0/releases.html +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 405e6a1027f1dbb09064ea1504536d4adc469e6b Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Thu, 21 Mar 2024 09:04:39 -0400 Subject: [PATCH 0318/1024] Add post for 1.77 (#1271) * Add post for 1.77 * Update posts/2024-03-21-Rust-1.77.0.md Co-authored-by: Kevin Reid * Update posts/2024-03-21-Rust-1.77.0.md Co-authored-by: Eric Huss * Update posts/2024-03-21-Rust-1.77.0.md Co-authored-by: Kevin Reid * Spell debuginfo consistently * Avoid explaining subtle details * Add two new sections * Update posts/2024-03-21-Rust-1.77.0.md Co-authored-by: Kevin Reid * Update posts/2024-03-21-Rust-1.77.0.md Co-authored-by: Josh Stone * Update posts/2024-03-21-Rust-1.77.0.md Co-authored-by: lcnr --------- Co-authored-by: Kevin Reid Co-authored-by: Eric Huss Co-authored-by: Josh Stone Co-authored-by: lcnr --- posts/2024-03-21-Rust-1.77.0.md | 124 ++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 posts/2024-03-21-Rust-1.77.0.md diff --git a/posts/2024-03-21-Rust-1.77.0.md b/posts/2024-03-21-Rust-1.77.0.md new file mode 100644 index 000000000..f31eb71e1 --- /dev/null +++ b/posts/2024-03-21-Rust-1.77.0.md @@ -0,0 +1,124 @@ +--- +layout: post +title: "Announcing Rust 1.77.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.77.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via `rustup`, you can get 1.77.0 with: + +```console +$ rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.77.0](https://doc.rust-lang.org/nightly/releases.html#version-77-2024-03-21). + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.77.0 stable + +This release is relatively minor, but as always, even incremental improvements lead to a greater whole. A few of those changes are highlighted in this post, and others may yet fill more niche needs. + +### C-string literals + +Rust now supports C-string literals (`c"abc"`) which expand to a nul-byte +terminated string in memory of type `&'static CStr`. This makes it easier to write code +interoperating with foreign language interfaces which require nul-terminated +strings, with all of the relevant error checking (e.g., lack of interior nul +byte) performed at compile time. + +### Support for recursion in `async fn` + +Async functions previously could not call themselves due to a compiler +limitation. In 1.77, that limitation has been lifted, so recursive calls are +permitted so long as they use some form of indirection to avoid an infinite +size for the state of the function. + +This means that code like this now works: + +```rust +async fn fib(n: u32) -> u32 { + match n { + 0 | 1 => 1, + _ => Box::pin(fib(n-1)).await + Box::pin(fib(n-2)).await + } +} +``` + +### `offset_of!` + +1.77.0 stabilizes [`offset_of!`] for struct fields, which provides access to the +byte offset of the relevant public field of a struct. This macro is most useful +when the offset of a field is required without an existing instance of a type. +Implementing such a macro is already possible on stable, but without an +instance of the type the implementation would require tricky unsafe code which +makes it easy to accidentally introduce undefined behavior. + +Users can now access the offset of a public field with `offset_of!(StructName, +field)`. This expands to a `usize` expression with the offset in bytes from the +start of the struct. + +[`offset_of!`]: https://doc.rust-lang.org/stable/std/mem/macro.offset_of.html + +### Enable strip in release profiles by default + +Cargo [profiles](https://doc.rust-lang.org/stable/cargo/reference/profiles.html) +which do not enable [debuginfo](https://doc.rust-lang.org/stable/cargo/reference/profiles.html#debug) in +outputs (e.g., `debug = 0`) will enable `strip = "debuginfo"` by default. + +This is primarily needed because the (precompiled) standard library ships with +debuginfo, which means that statically linked results would include the +debuginfo from the standard library even if the local compilations didn't +explicitly request debuginfo. + +Users which do want debuginfo can explicitly enable it with the +[debug](https://doc.rust-lang.org/stable/cargo/reference/profiles.html#debug) +flag in the relevant Cargo profile. + +### Clippy adds a new `incompatible_msrv` lint + +The Rust project only supports the latest stable release of Rust. Some +libraries aim to have an older minimum supported Rust version (MSRV), typically +verifying this support by compiling in CI with an older release. However, when +developing new code, it's convenient to use latest documentation and the latest +toolchain with fixed bugs, performance improvements, and other improvements. +This can make it easy to accidentally start using an API that's only available +on newer versions of Rust. + +Clippy has added a new lint, [`incompatible_msrv`](https://rust-lang.github.io/rust-clippy/master/index.html#/incompatible_msrv), +which will inform users if functionality being referenced is only available on +newer versions than their +[declared MSRV](https://github.com/rust-lang/rust-clippy/?tab=readme-ov-file#specifying-the-minimum-supported-rust-version). + +### Stabilized APIs + +- [`array::each_ref`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_ref) +- [`array::each_mut`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_mut) +- [`core::net`](https://doc.rust-lang.org/stable/core/net/index.html) +- [`f32::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.round_ties_even) +- [`f64::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.round_ties_even) +- [`mem::offset_of!`](https://doc.rust-lang.org/stable/std/mem/macro.offset_of.html) +- [`slice::first_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.first_chunk) +- [`slice::first_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.first_chunk_mut) +- [`slice::split_first_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_first_chunk) +- [`slice::split_first_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_first_chunk_mut) +- [`slice::last_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last_chunk) +- [`slice::last_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last_chunk_mut) +- [`slice::split_last_chunk`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_last_chunk) +- [`slice::split_last_chunk_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_last_chunk_mut) +- [`slice::chunk_by`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.chunk_by) +- [`slice::chunk_by_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.chunk_by_mut) +- [`Bound::map`](https://doc.rust-lang.org/stable/std/ops/enum.Bound.html#method.map) +- [`File::create_new`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.create_new) +- [`Mutex::clear_poison`](https://doc.rust-lang.org/stable/std/sync/struct.Mutex.html#method.clear_poison) +- [`RwLock::clear_poison`](https://doc.rust-lang.org/stable/std/sync/struct.RwLock.html#method.clear_poison) + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.77.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-177-2024-03-21), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-177). + +## Contributors to 1.77.0 + +Many people came together to create Rust 1.77.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.77.0/) From ba4cbf1ded18e566379432cd7db0ffb5033a4a91 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Thu, 21 Mar 2024 14:16:44 -0700 Subject: [PATCH 0319/1024] Remove incompatible_msrv from 1.77 release. (#1278) --- posts/2024-03-21-Rust-1.77.0.md | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/posts/2024-03-21-Rust-1.77.0.md b/posts/2024-03-21-Rust-1.77.0.md index f31eb71e1..d6c24b7b9 100644 --- a/posts/2024-03-21-Rust-1.77.0.md +++ b/posts/2024-03-21-Rust-1.77.0.md @@ -77,21 +77,6 @@ Users which do want debuginfo can explicitly enable it with the [debug](https://doc.rust-lang.org/stable/cargo/reference/profiles.html#debug) flag in the relevant Cargo profile. -### Clippy adds a new `incompatible_msrv` lint - -The Rust project only supports the latest stable release of Rust. Some -libraries aim to have an older minimum supported Rust version (MSRV), typically -verifying this support by compiling in CI with an older release. However, when -developing new code, it's convenient to use latest documentation and the latest -toolchain with fixed bugs, performance improvements, and other improvements. -This can make it easy to accidentally start using an API that's only available -on newer versions of Rust. - -Clippy has added a new lint, [`incompatible_msrv`](https://rust-lang.github.io/rust-clippy/master/index.html#/incompatible_msrv), -which will inform users if functionality being referenced is only available on -newer versions than their -[declared MSRV](https://github.com/rust-lang/rust-clippy/?tab=readme-ov-file#specifying-the-minimum-supported-rust-version). - ### Stabilized APIs - [`array::each_ref`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_ref) From 2d51fe422448d8306072a2d8c6e69458851b8a0b Mon Sep 17 00:00:00 2001 From: jyn Date: Thu, 21 Mar 2024 18:38:18 -0400 Subject: [PATCH 0320/1024] update my name --- .mailmap | 1 + posts/2020-03-15-docs-rs-opt-into-fewer-targets.md | 2 +- posts/2020-11-27-Rustup-1.23.0.md | 2 +- posts/2021-04-27-Rustup-1.24.0.md | 2 +- posts/2021-04-29-Rustup-1.24.1.md | 2 +- posts/2021-05-17-Rustup-1.24.2.md | 2 +- posts/2022-07-11-Rustup-1.25.0.md | 2 +- posts/2022-07-12-Rustup-1.25.1.md | 2 +- posts/2023-04-25-Rustup-1.26.0.md | 2 +- posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md | 2 +- posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md | 6 +++--- .../inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md | 4 ++-- .../2021-01-15-rustdoc-performance-improvements.md | 2 +- posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md | 4 ++-- 14 files changed, 18 insertions(+), 17 deletions(-) create mode 100644 .mailmap diff --git a/.mailmap b/.mailmap new file mode 100644 index 000000000..9ca5b6785 --- /dev/null +++ b/.mailmap @@ -0,0 +1 @@ +Jynn Nelson diff --git a/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md b/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md index 600cfc923..06aba2976 100644 --- a/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md +++ b/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md @@ -1,7 +1,7 @@ --- layout: post title: "docs.rs now allows you to choose your build targets" -author: Joshua Nelson +author: Jynn Nelson team: the docs.rs team --- diff --git a/posts/2020-11-27-Rustup-1.23.0.md b/posts/2020-11-27-Rustup-1.23.0.md index ebc8a7d74..29d921d9b 100644 --- a/posts/2020-11-27-Rustup-1.23.0.md +++ b/posts/2020-11-27-Rustup-1.23.0.md @@ -101,7 +101,7 @@ Thanks to all the contributors who made rustup 1.23.0 possible! - Jake Goulding - Jens Reidel - Joshua M. Clulow -- Joshua Nelson +- Jynn Nelson - Jubilee Young - Leigh McCulloch - Lzu Tao diff --git a/posts/2021-04-27-Rustup-1.24.0.md b/posts/2021-04-27-Rustup-1.24.0.md index 7dd1d849b..12e3faa02 100644 --- a/posts/2021-04-27-Rustup-1.24.0.md +++ b/posts/2021-04-27-Rustup-1.24.0.md @@ -81,7 +81,7 @@ Thanks to all the contributors who made rustup 1.24.0 possible! - Gareth Hubball - Gurkenglas - Jakub Stasiak -- Joshua Nelson +- Jynn Nelson - Jubilee (workingjubilee) - kellda - Michael Cooper diff --git a/posts/2021-04-29-Rustup-1.24.1.md b/posts/2021-04-29-Rustup-1.24.1.md index c5e44ff0d..9167acd39 100644 --- a/posts/2021-04-29-Rustup-1.24.1.md +++ b/posts/2021-04-29-Rustup-1.24.1.md @@ -64,7 +64,7 @@ Thanks again to all the contributors who made rustup 1.24.0 and 1.24.1 possible! - Gareth Hubball - Gurkenglas - Jakub Stasiak -- Joshua Nelson +- Jynn Nelson - Jubilee (workingjubilee) - kellda - Michael Cooper diff --git a/posts/2021-05-17-Rustup-1.24.2.md b/posts/2021-05-17-Rustup-1.24.2.md index 52e708964..8bd166034 100644 --- a/posts/2021-05-17-Rustup-1.24.2.md +++ b/posts/2021-05-17-Rustup-1.24.2.md @@ -53,7 +53,7 @@ Thanks again to all the contributors who made rustup 1.24.2 possible! - Daniel Silverstone - João Marcos Bezerra - Josh Rotenberg -- Joshua Nelson +- Jynn Nelson - Martijn Gribnau - pierwill - Robert Collins diff --git a/posts/2022-07-11-Rustup-1.25.0.md b/posts/2022-07-11-Rustup-1.25.0.md index 6e8ec0882..840443698 100644 --- a/posts/2022-07-11-Rustup-1.25.0.md +++ b/posts/2022-07-11-Rustup-1.25.0.md @@ -64,7 +64,7 @@ Thanks again to all the contributors who made rustup 1.25.0 possible! - Robert Collins (rbtcollins) - Alan Somers (asomers) - Brennan Vincent (umanwizard) -- Joshua Nelson (jyn514) +- Jynn Nelson (jyn514) - Eric Huss (ehuss) - Will Bush (willbush) - Thad Guidry (thadguidry) diff --git a/posts/2022-07-12-Rustup-1.25.1.md b/posts/2022-07-12-Rustup-1.25.1.md index eced545a8..049033884 100644 --- a/posts/2022-07-12-Rustup-1.25.1.md +++ b/posts/2022-07-12-Rustup-1.25.1.md @@ -82,5 +82,5 @@ Thanks again to all the contributors who made rustup 1.25.1 possible! - Daniel Silverstone (kinnison) - Robert Collins (rbtcollins) -- Joshua Nelson (jyn514) +- Jynn Nelson (jyn514) - Pietro Albini (pietroalbini) diff --git a/posts/2023-04-25-Rustup-1.26.0.md b/posts/2023-04-25-Rustup-1.26.0.md index f973e8666..8d56f7f58 100644 --- a/posts/2023-04-25-Rustup-1.26.0.md +++ b/posts/2023-04-25-Rustup-1.26.0.md @@ -77,7 +77,7 @@ Thanks again to all the contributors who made rustup 1.26.0 possible! - Alexander (Alovchin91) - Daniel Brotsky (brotskydotcom) - zohnannor (zohnannor) -- Joshua Nelson (jyn514) +- Jynn Nelson (jyn514) - Prikshit Gautam (gautamprikshit1) - Dylan Thacker-Smith (dylanahsmith) - Jan David (jdno) diff --git a/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md b/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md index a870bc4f4..72a245c45 100644 --- a/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md +++ b/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md @@ -1,7 +1,7 @@ --- layout: post title: "Changes to x.py defaults" -author: Joshua Nelson +author: Jynn Nelson team: the compiler team --- diff --git a/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md b/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md index b257f943e..bd62d29f4 100644 --- a/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md +++ b/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md @@ -1,6 +1,6 @@ layout: post title: "Intra-doc links close to stabilization" -author: Manish Goregaokar and Joshua Nelson +author: Manish Goregaokar and Jynn Nelson team: the rustdoc team --- @@ -48,7 +48,7 @@ At the time, persisting local scope information so that `rustdoc` invocations on ## What changed? -Early in June, I (Joshua) got tired of not being able to use intra-doc links. I started investigating the issue to see if there was a fix. It was marked as [`E-hard`], so I wasn't expecting miracles, but I thought I might at least make a start on it. +Early in June, I (Jynn) got tired of not being able to use intra-doc links. I started investigating the issue to see if there was a fix. It was marked as [`E-hard`], so I wasn't expecting miracles, but I thought I might at least make a start on it. It turns out there was a simple problem with the implementation - it assumed all items were in the current crate! Clearly, that's not always the case. [The fix][resolve-cross-crate] turned out to be easy enough that I could implement it as my first contribution to rustdoc. @@ -66,7 +66,7 @@ fn main() { } ``` ``` -thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', /home/joshua/src/rust/src/librustc_hir/definitions.rs:358:9 +thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', /home/jyn/src/rust/src/librustc_hir/definitions.rs:358:9 ``` ## HirIds and DefIds and trees, oh my! diff --git a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md b/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md index 261262c60..7b8a668c4 100644 --- a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md +++ b/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md @@ -1,7 +1,7 @@ --- layout: post title: "Using rustc_codegen_cranelift for debug builds" -author: Joshua Nelson +author: Jynn Nelson team: The Compiler Team --- @@ -80,7 +80,7 @@ EOF $ ../rustc_codegen_cranelift/build/cargo.sh build Finished dev [unoptimized + debuginfo] target(s) in 7.98s $ cargo +nightly-2020-10-31 build - Compiling cargo v0.50.0 (/home/joshua/cargo) + Compiling cargo v0.50.0 (/home/jyn/cargo) Finished dev [unoptimized + debuginfo] target(s) in 5.48s ``` diff --git a/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md b/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md index 481193ce7..7e05d1c57 100644 --- a/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md +++ b/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md @@ -1,7 +1,7 @@ --- layout: post title: "Rustdoc performance improvements" -author: Joshua Nelson and Guillaume Gomez +author: Jynn Nelson and Guillaume Gomez team: The Rustdoc Team --- diff --git a/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md b/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md index 9baa24169..e4b13fbf1 100644 --- a/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md +++ b/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md @@ -10,9 +10,9 @@ Recently, there have been a lot of improvements in rustdoc. It was possible than ## Adding a new team leader -[Joshua](https://github.com/jyn514) has been helping me **a lot** on the leading parts by tagging issues and mentoring newcomers. But at the same time, he initiated great changes in the rustdoc codebase that led to huge performance improvements, he finished the "intra doc link" features which is now stable after years of instability (more information [here](https://doc.rust-lang.org/rustdoc/write-documentation/linking-to-items-by-name.html)). He also did multiple additional things but let's stop the listing here. :) +[Jynn](https://github.com/jyn514) has been helping me **a lot** on the leading parts by tagging issues and mentoring newcomers. But at the same time, they initiated great changes in the rustdoc codebase that led to huge performance improvements, they finished the "intra doc link" features which is now stable after years of instability (more information [here](https://doc.rust-lang.org/rustdoc/write-documentation/linking-to-items-by-name.html)). They also did multiple additional things but let's stop the listing here. :) -Overall, he's been an enormous help and making him co-lead is just making official everything's he's been doing since he joined the rustdoc team (and even before!). I'm glad to have him on the team and as co-lead. +Overall, they've been an enormous help and making them co-lead is just making official everything's they've been doing since they joined the rustdoc team (and even before!). I'm glad to have them on the team and as co-lead. ## Membership Changes From 3dbf4bde02a84339a664ee4f56778c19467c030e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 07:28:55 +0100 Subject: [PATCH 0321/1024] Update dependency rust to v1.77.0 (#1276) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3029b06b3..60c776921 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.76.0 + RUST_VERSION: 1.77.0 jobs: lint: From 1808c9d95c252ea6b526cd3bb8c873008ffd0dfa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 07:29:45 +0100 Subject: [PATCH 0322/1024] Update actions/deploy-pages action to v4.0.5 (#1275) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 60c776921..e3e2ac64e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -51,7 +51,7 @@ jobs: runs-on: ubuntu-latest steps: - id: deployment - uses: actions/deploy-pages@decdde0ac072f6dcbe43649d82d9c635fff5b4e4 # v4.0.4 + uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5 environment: name: github-pages From 7737dd584102bc8ea9c31841b092c226d6153762 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 07:31:12 +0100 Subject: [PATCH 0323/1024] Update Rust crate serde_yaml to v0.9.33 (#1274) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9bbb058ae..715c4036e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1627,9 +1627,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.32" +version = "0.9.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f" +checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9" dependencies = [ "indexmap", "itoa", @@ -2145,9 +2145,9 @@ checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" [[package]] name = "unsafe-libyaml" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab4c90930b95a82d00dc9e9ac071b4991924390d46cbd0dfe566148667605e4b" +checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" [[package]] name = "untrusted" diff --git a/Cargo.toml b/Cargo.toml index cfbf96410..a247b8d8c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ handlebars = { version = "=5.1.1", features = ["dir_source"] } lazy_static = "=1.4.0" serde = "=1.0.197" serde_derive = "=1.0.197" -serde_yaml = "=0.9.32" +serde_yaml = "=0.9.33" serde_json = "=1.0.114" comrak = "=0.21.0" rayon = "=1.9.0" From 7c706d65e479c8c917bd69af6dc19174a9e9727e Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Fri, 22 Mar 2024 09:06:56 -0700 Subject: [PATCH 0324/1024] Post May update for Edition 2024 --- .../2024-03-22-2024-edition-update.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 posts/inside-rust/2024-03-22-2024-edition-update.md diff --git a/posts/inside-rust/2024-03-22-2024-edition-update.md b/posts/inside-rust/2024-03-22-2024-edition-update.md new file mode 100644 index 000000000..b329c6c3b --- /dev/null +++ b/posts/inside-rust/2024-03-22-2024-edition-update.md @@ -0,0 +1,37 @@ +--- +layout: post +title: "2024 Edition Update" +author: Eric Huss +team: Edition 2024 Project Group +--- + +This is a reminder to the teams working on the 2024 Edition that implementation work should be **finished by the end of May**. If you have any questions, please let us know on the [`#edition`][zulip] Zulip stream. + +[zulip]: https://rust-lang.zulipchat.com/#narrow/stream/268952-edition + +## What we are tracking for the Edition + +The following is a list of changes we are tracking for inclusion in the Edition. This list is not final, and may change in the future. + +- Change the [`unsafe_op_in_unsafe_fn`] lint to be warn-by-default. This is implemented, see [docs][docs-unsafe]. +- Remove `RustcEncodable` & `RustcDecodable` from the 2024 prelude. This is waiting for the implementation to be approved, and for automatic migration. See [#116016](https://github.com/rust-lang/rust/pull/116016). +- Include `Future` and `IntoFuture` in the 2024 prelude. This is implemented, and waiting for automatic migration support. See [docs][docs-future] and [#121042](https://github.com/rust-lang/rust/issues/121042#issuecomment-1942181209). +- Reserve the `gen` keyword. This is waiting for final approval, and the implementation review. See [RFC #3513](https://github.com/rust-lang/rfcs/pull/3513). +- RPIT lifetime capture. This is partially implemented, but is waiting on final design for precise capturing. See [RFC #3498](https://rust-lang.github.io/rfcs/3498-lifetime-capture-rules-2024.html) and [#117587](https://github.com/rust-lang/rust/issues/117587). +- Macro matcher fragment specifier policy. This is a policy change and does not have an implementation. See [RFC #3531](https://rust-lang.github.io/rfcs/3531-macro-fragment-policy.html). +- Disallow references to `static mut`. This is implemented, though there is uncertainty about how migration should work, how to communicate to users how to update their code, and whether or not this should cover hidden references. See [docs][docs-static-mut] and [#114447](https://github.com/rust-lang/rust/issues/114447). +- New range types. This is waiting on the design considerations for migration. See [RFC #3550](https://github.com/rust-lang/rfcs/pull/3550). +- Cargo: Remove implicit features. Development of this is underway. See [RFC #3491](https://rust-lang.github.io/rfcs/3491-remove-implicit-features.html). +- Public/private dependencies. This is partially implemented, though there are some changes needed on the rules for determining visibility. See [RFC #3516](https://rust-lang.github.io/rfcs/3516-public-private-dependencies.html). +- Rustfmt: Enable `overflow_delimited_expr` by default. This is not yet implemented. See [#114764](https://github.com/rust-lang/rust/pull/114764). + +[docs-static-mut]: https://doc.rust-lang.org/nightly/edition-guide/rust-2024/static-mut-reference.html +[docs-future]: https://doc.rust-lang.org/nightly/edition-guide/rust-2024/prelude.html +[docs-unsafe]: https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html +[`unsafe_op_in_unsafe_fn`]: https://doc.rust-lang.org/nightly/rustc/lints/listing/allowed-by-default.html#unsafe-op-in-unsafe-fn + +## What is an Edition? + +Editions are a mechanism to introduce changes that would otherwise be backwards incompatible while still retaining compatibility with older releases. Editions are opt-in and designed to allow projects on different Editions to remain compatible with one another. More information may be found in the [Edition Guide]. + +[Edition Guide]: https://doc.rust-lang.org/nightly/edition-guide/editions/index.html From e20af0d48b586073da22c040df7f50d7372c76a6 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Wed, 24 Jan 2024 21:54:42 -0500 Subject: [PATCH 0325/1024] Create a blog on changes to 128-bit integers --- posts/2024-00-00-i128-layout-update.md | 298 +++++++++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100644 posts/2024-00-00-i128-layout-update.md diff --git a/posts/2024-00-00-i128-layout-update.md b/posts/2024-00-00-i128-layout-update.md new file mode 100644 index 000000000..2f4a2c90e --- /dev/null +++ b/posts/2024-00-00-i128-layout-update.md @@ -0,0 +1,298 @@ +--- +layout: post +title: "Changes to `u128`/`i128` layout in 1.77 and 1.78" +author: Trevor Gross +team: Lang +--- + +Rust has long had an inconsistency with C regarding the alignment of 128-bit integers. +This problem has recently been resolved, but the fix comes with some effects that are +worth being aware of. + +As a user, you most likely do not need to worry about these changes unless you are: + +1. Assuming the alignment of `i128`/`u128` rather than using `align_of` +1. Ignoring the `improper_ctypes*` lints and using these types in FFI + +There are also no changes to architectures other than x86-32 and x86-64. If your +code makes heavy use of 128-bit integers, you may notice runtime performance increases +at a possible cost of additional memory use. + +This post is intended to clarify what changed, why it changed, and what to expect. If +you are only looking for a compatibility matrix, jump to the +[Compatibility](#compatibility) section. + +# Background + +Data types have two intrinsic values that relate to how they can be arranged in memory; +size and alignment. A type's size is the amount of space it takes up in memory, and its +alignment specifies which addresses it is allowed to be placed at. + +The size of simple types like primitives is usually unambiguous, being the exact size of +the data they represent with no padding (unused space). For example, an `i64` always has +a size of 64 bits or 8 bytes. + +Alignment, however, can seem less consistent. An 8-byte integer _could_ reasonably be +stored at any memory address (1-byte aligned), but most 64-bit computers will get the +best performance if it is instead stored at a multiple of 8 (8-byte aligned). So, like +in other languages, primitives in Rust have this most efficient alignment by default. +The effects of this can be seen when creating composite types: [^composite-playground] + +```rust= +use core::mem::{align_of, offset_of}; + +#[repr(C)] +struct Foo { + a: u8, // 1-byte aligned + b: u16, // 2-byte aligned +} + +#[repr(C)] +struct Bar { + a: u8, // 1=byte aligned + b: u64, // 8-byte aligned +} + +println!("Offset of b (u16) in Foo: {}", offset_of!(Foo, b)); +println!("Alignment of Foo: {}", align_of::()); +println!("Offset of b (u64) in Bar: {}", offset_of!(Bar, b)); +println!("Alignment of Bar: {}", align_of::()); +``` + +Output: + +```text +Offset of b (u16) in Foo: 2 +Alignment of Foo: 2 +Offset of b (u64) in Bar: 8 +Alignment of Bar: 8 +``` + +We see that within a struct, a type will always be placed such that its offset is a +multiple of its alignment. + +These numbers are not arbitrary; the application binary interface (ABI) says what they +should be. In the x86-64 [psABI] (processor-specific ABI) for System V (Unix & Linux), +_Figure 3.1: Scalar Types_ tells us exactly how primitives should be represented: + +| C type | Rust equivalent | `sizeof` | Alignment (bytes) | +| ---------------- | --------------- | -------- | ----------------- | +| `char` | `i8` | 1 | 1 | +| `unsigned char` | `u8` | 1 | 1 | +| `short` | `i16` | 2 | 2 | +| `unsigned short` | `u16` | 2 | 2 | +| `long` | `i64` | 8 | 8 | +| `unsigned long` | `u64` | 8 | 8 | + +The ABI only specifies C types, but Rust follows the same definitions both for +compatibility and for the performance benefits. + +# The Incorrect Alignment Problem + +It is easy to imagine that if two implementations disagree on the alignment of a data +type, they would not be able to reliably share data containing that type. Well... + +```rust= +println!("alignment of i128: {}", align_of::()); +``` + +```text= +// rustc 1.76.0 +alignment of i128: 8 +``` + +```c= +printf("alignment of __int128: %zu\n", _Alignof(__int128)); +``` + +```text= +// gcc 13.2 +alignment of __int128: 16 + +// clang 17.0.1 +alignment of __int128: 16 +``` + +Looks like Rust disagrees![^align-godbolt] Looking back at the [psABI], we can see that +Rust indeed is in the wrong here: + +| C type | Rust equivalent | `sizeof` | Alignment (bytes) | +| ------------------- | --------------- | -------- | ----------------- | +| `__int128` | `i128` | 16 | 16 | +| `unsigned __int128` | `u128` | 16 | 16 | + +It turns out this isn't because of something that Rust is actively doing incorrectly: +layout of primitives comes from the LLVM codegen backend used by both Rust and Clang, +among other languages, and it has the alignment for `i128` hardcoded to 8 bytes. + +Clang does not have this issue only because of a workaround, where the alignment is +manually set to 16 bytes before handing the type to LLVM. This fixes the layout issue +but has been the source of some other minor problems.[^f128-segfault][^va-segfault] +Rust does no such manual adjustement, hence the issue reported at +. + +# The Calling Convention Problem + +It happens that there an additional problem: LLVM does not always do the correct thing +when passing 128-bit integers as function arguments. This was a [known issue in LLVM], +before its [relevance to Rust was discovered]. + +When calling a function, the arguments get passed in registers until there are no more +slots, then they get "spilled" to the stack. The ABI tells us what to do here as well, +in the section _3.2.3 Parameter Passing_: + +> Arguments of type `__int128` offer the same operations as INTEGERs, yet they do not +> fit into one general purpose register but require two registers. For classification +> purposes `__int128` is treated as if it were implemented as: +> +> ```c +> typedef struct { +> long low, high; +> } __int128; +> ``` +> +> with the exception that arguments of type `__int128` that are stored in memory must be +> aligned on a 16-byte boundary. + +We can try this out by implementing the calling convention manually. In the below C +example, inline assembly is used to call `foo(0xaf, val, val, val)` with `val` as +`0x0x11223344556677889900aabbccddeeff`. + +x86-64 uses the registers `rdi`, `rsi`, `rdx`, `rcx`, `r8`, and `r9` to pass function +arguments, in that order (you guessed it, this is also in the ABI). Each argument +fits a word (64 bits), and anything that doesn't fit gets `push`ed to the +stack. + +```c= +/* full example at https://godbolt.org/z/zGaK1T96c */ + +/* to see the issue, we need a padding value to "mess up" argument alignment */ +void foo(char pad, __int128 a, __int128 b, __int128 c) { + printf("%#x\n", pad & 0xff); + print_i128(a); + print_i128(b); + print_i128(c); +} + +int main() { + asm( + "movl $0xaf, %edi \n\t" /* 1st slot (edi): padding char */ + "movq $0x9900aabbccddeeff, %rsi \n\t" /* 2rd slot (rsi): lower half of `a` */ + "movq $0x1122334455667788, %rdx \n\t" /* 3nd slot (rdx): upper half of `a` */ + "movq $0x9900aabbccddeeff, %rcx \n\t" /* 4th slot (rcx): lower half of `b` */ + "movq $0x1122334455667788, %r8 \n\t" /* 5th slot (r8): upper half of `b` */ + "movq $0xdeadbeef4c0ffee0, %r9 \n\t" /* 6th slot (r9): should be unused, but + * let's trick clang! */ + + /* reuse our stored registers to load the stack */ + "pushq %rdx \n\t" /* upper half of `c` gets passed on the stack */ + "pushq %rsi \n\t" /* lower half of `c` gets passed on the stack */ + "call foo \n\t" /* call the function */ + "addq $16, %rsp \n\t" /* reset the stack */ + ); +} +``` + +Running the above with GCC prints the following expected output: + +``` +0xaf +0x11223344556677889900aabbccddeeff +0x11223344556677889900aabbccddeeff +0x11223344556677889900aabbccddeeff +``` + +But running with Clang 17 prints: + +``` +0xaf +0x11223344556677889900aabbccddeeff +0x11223344556677889900aabbccddeeff +0x9900aabbccddeeffdeadbeef4c0ffee0 +``` + +Surprise! + +This illustrates the second problem: LLVM expects an `i128` to be passed half in a +register and half on the stack, but this is not allowed by the ABI. + +Since this comes from LLVM and has no reasonable workaround, this is a problem in +both Clang and Rust. + +# Solutions + +Getting these problems resolved was a lengthy effort by many people, starting with a +patch by compiler team member Simonas Kazlauskas in 2017: [D28990]. Unfortunately, +this wound up reverted. It was later attempted again in [D86310] by LLVM contributor +Harald van Dijk, which is the version that finally landed in October 2023. + +Around the same time, Nikita Popov fixed the calling convention issue with [D158169]. +Both of these changes made it into LLVM 18, meaning all relevant ABI issues will be +resolved in both Clang and Rust that use this version (Clang 18 and Rust 1.78 when using +the bundled LLVM). + +However, `rustc` can also use the version of LLVM installed in the system rather than a +bundled version, which may be older. To mitigate the change of problems from differing +alignment with the same `rustc` version, [a proposal] was introduced to manually +correct the alignment, like Clang has been doing. This was implemented by Matthew Maurer +in [#11672]. + +As mentioned above, part of the reason for an ABI to specify the alignment of a datatype +is because it is more efficient on that architecture. We actually got to see that +firsthand: the [initial performance run] with the manual alignment change showed +nontrivial improvements to compiler performance (which relies heavily on 128-bit +integers to store integer literals). The downside of increasing alignment is that +composite types do not always fit together as nicely in memory, leading to an increase +in usage. Unfortunately this meant some of the performance wins needed to be sacrificed +to avoid an increased memory footprint. + +[a proposal]: https://github.com/rust-lang/compiler-team/issues/683 +[#11672]: https://github.com/rust-lang/rust/pull/116672/ +[D158169]: https://reviews.llvm.org/D158169 +[D28990]: https://reviews.llvm.org/D28990 +[D86310]: https://reviews.llvm.org/D86310 + +# Compatibilty + +The most imporant question is how compatibility changed as a result of these fixes. In +short, `i128` and `u128` with Rust using LLVM 18 (the default version starting with +1.78) will be completely compatible with any version of GCC, as well as Clang 18 and +above (released March 2024). All other combinations have some incompatible cases, which +are summarized in the table below: + +| Compiler 1 | Compiler 2 | status | +| ---------------------------------- | ------------------- | ----------------------------------- | +| Rust ≥ 1.78 with bundled LLVM (18) | GCC (any version) | Fully compatible | +| Rust ≥ 1.78 with bundled LLVM (18) | Clang ≥ 18 | Fully compatible | +| Rust ≥ 1.77 with LLVM ≥ 18 | GCC (any version) | Fully compatible | +| Rust ≥ 1.77 with LLVM ≥ 18 | Clang ≥ 18 | Fully compatible | +| Rust ≥ 1.77 with LLVM ≥ 18 | Clang \< 18 | Storage compatible, has calling bug | +| Rust ≥ 1.77 with LLVM \< 18 | GCC (any version) | Storage compatible, has calling bug | +| Rust ≥ 1.77 with LLVM \< 18 | Clang (any version) | Storage compatible, has calling bug | +| Rust \< 1.77[^l] | GCC (any version) | Incompatible | +| Rust \< 1.77[^l] | Clang (any version) | Incompatible | +| GCC (any version) | Clang ≥ 18 | Fully compatible | +| GCC (any version) | Clang \< 18 | Storage compatible with calling bug | + +[^l]: Rust < 1.77 with LLVM 18 will have some degree of compatibility, this is just + an uncommon combination. + +# Effects & Future Steps + +As mentioned in the introduction, most users will see no effects of this change +unless you are already doing something questionable with these types. + +Starting with Rust 1.77, it will be reasonably safe to start experimenting with +128-bit integers in FFI, with some more certainty coming with the LLVM update +in 1.78. There is [ongoing discussion] about lifting the lint in an upcoming +version, but it remains to be seen when that will actually happen. + +[relevance to Rust was discovered]: https://github.com/rust-lang/rust/issues/54341#issuecomment-1064729606 +[initial performance run]: https://github.com/rust-lang/rust/pull/116672/#issuecomment-1858600381 +[known issue in llvm]: https://github.com/llvm/llvm-project/issues/41784 +[psabi]: https://www.uclibc.org/docs/psABI-x86_64.pdf +[ongoing discussion]: https://github.com/rust-lang/lang-team/issues/255 +[^align-godbolt]: https://godbolt.org/z/h94Ge1vMW +[^composite-playground]: https://play.rust-lang.org/?version=beta&mode=debug&edition=2021&gist=c263ae121912284d3ba553290caa6778 +[^va-segfault]: https://github.com/llvm/llvm-project/issues/20283 +[^f128-segfault]: https://bugs.llvm.org/show_bug.cgi?id=50198 From a6a0a6b3c16359c75b924ae753a0820233275e64 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Sat, 23 Mar 2024 11:03:49 -0700 Subject: [PATCH 0326/1024] Remove unused import --- src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index b0179198f..b0ab098af 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -10,7 +10,6 @@ use rayon::prelude::*; use sass_rs::{compile_file, Options}; use serde_derive::Serialize; use serde_json::json; -use std::convert::AsRef; use std::fs::{self, File}; use std::io::{self, Write}; use std::path::{Path, PathBuf}; From c8be06346dce2d4cb8f21b71f76471c8c5e95d60 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 25 Mar 2024 10:05:57 -0500 Subject: [PATCH 0327/1024] This Development-cycle in Cargo: 1.78 --- ...26-this-development-cycle-in-cargo-1.78.md | 582 ++++++++++++++++++ .../stderr.term.svg | 42 ++ 2 files changed, 624 insertions(+) create mode 100644 posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md create mode 100644 static/images/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78/stderr.term.svg diff --git a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md new file mode 100644 index 000000000..e0e1ca005 --- /dev/null +++ b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md @@ -0,0 +1,582 @@ +--- +layout: post +title: "This Development-cycle in Cargo: 1.78" +author: Ed Page +team: The Cargo Team +--- + +# This Development-cycle in Cargo: 1.78 + +We wanted to share what has been happening for the last 6 weeks to better keep the community informed and involved. +For work that was merged before the beta branch was made at the end of the cycle, it will be in the Beta channel for the next 6 weeks after which it will be generally available. + +This is distinct from [This Week in Rust](https://this-week-in-rust.org/) in that it tries to focus more on the big picture, rather than individual PRs, and pulls from more sources, like Cargo Team meetings and [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo). + +This is an experiment in finding better ways to be engaged with the community and we'll see how well it works and how well we can keep up on it. + + + +- [Plugin of the cycle](#plugin-of-the-cycle) +- [Implementation](#implementation) + - [Terminal styling](#terminal-styling) + - [User-controlled diagnostics](#user-controlled-cargo-diagnostics) + - [Performance](#performance) + - [MSRV-aware Cargo](#msrv-aware-cargo) + - [Registry authentication](#registry-authentication) + - [Git extensions](#git-extensions) + - [Garbage collection](#garbage-collection) + - [Default Edition](#default-edition) + - [Open namespaces](#open-namespaces) +- [Design discussions](#design-discussions) + - [Deprecated `Cargo.toml` fields](#deprecated-cargotoml-fields) + - [RFC #3452: Nested packages](#rfc-3452-nested-packages) + - [Why is this yanked?](#why-is-this-yanked) + - [Weak feature syntax](#weak-feature-syntax) +- [Misc](#misc) +- [Focus areas without progress](#focus-areas-without-progress) + +## Plugin of the cycle + +Cargo can't be everything to everyone, +if for no other reason than the compatibility guarantees it must uphold. +Plugins play an important part of the Cargo ecosystem and we want to celebrate them. + +Our plugin for this cycle is [cargo-sweep](https://crates.io/crates/cargo-sweep) which removes unused build files. +See also [cargo-cache](https://crates.io/crates/cargo-cache). +For a related work inside of Cargo, +see [#12633](https://github.com/rust-lang/cargo/issues/12633). + +Thanks to [LukeMathWalker](https://github.com/LukeMathWalker) for the suggestion! + +[Please submit your suggestions for the next post.](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Plugin.20of.20the.20Dev.20Cycle/near/420703211) + +## Implementation + +##### Terminal styling + + + +While Cargo has UI tests, they have not verified the terminal styling, like colors. +Rustc manages this by writing the ANSI escape codes to text files which are hard to visualize outside of `cat stdout.log`. +In [#13461](https://github.com/rust-lang/cargo/pull/13461), +[epage](https://github.com/epage) ported Cargo's UI snapshots from text to SVG, allowing terminal styling to be captured. +To accomplish this, they created [`anstyle-svg`](https://docs.rs/anstyle-svg/latest/anstyle_svg/) +to render ANSI escape codes as styles in an SVG +(credit goes to [`term-transcript` for the original idea](https://crates.io/crates/term-transcript)) +and integrated that into snapbox +([trycmd#256](https://github.com/assert-rs/trycmd/pull/256)) +which we use for snapshoting our UI tests. + +![rendering of cargo-add's output using SVG](../../../../images/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78/stderr.term.svg) + +While this verified most of Cargo's terminal styling, we couldn't force styling on within `--help` to snapshot it. +While we added styling to `--help` in +[#12578](https://github.com/rust-lang/cargo/pull/12578), +we overlooked this being controlled by +[term.color](https://doc.rust-lang.org/cargo/reference/config.html#termcolor) +as this all happens before the config is initialized. +In [#13463](https://github.com/rust-lang/cargo/pull/13463), +we refactored Cargo's initialization so at least some config is available before parsing command-line arguments, +allowing `--help` to be controlled by config. +This still leaves `cargo --color=never --help` as unsupported ([#9012](https://github.com/rust-lang/cargo/issues/9012)). + +In reviewing the SVG snapshots, we identified some CLI help output that was overlooked in [#12578](https://github.com/rust-lang/cargo/pull/12578) +and addressed it in [#13479](https://github.com/rust-lang/cargo/pull/13479) + +Since then, +rustc (thanks to [estebank](https://github.com/estebank) in [rust#121877](https://github.com/rust-lang/rust/pull/121877)) +and annotate-snippets (thanks to [Muscraft](https://github.com/Muscraft) in [annotate-snippets-rs#86](https://github.com/rust-lang/annotate-snippets-rs/pull/86)) +have adopted SVG snapshot testing of terminal styling + +##### User-controlled cargo diagnostics + +*[Update from 1.77](https://blog.rust-lang.org/inside-rust/2024/02/13/this-development-cycle-in-cargo-1-77.html#user-controlled-cargo-diagnostics). In summary, this aims to add [user-controlled lints](https://github.com/rust-lang/cargo/issues/12235) that look like rustc and are controlled through the [`[lints]` table](https://doc.rust-lang.org/cargo/reference/manifest.html#the-lints-section)* + +One problem we had with the SVG snapshot tests was with annotate-snippets, +the rustc-like diagnostic renderer that Cargo is using. +Rustc, and by extension annotate-snippets, specializes the colors for each platform for maximum compatibility with the [default colors used by each platform's most common terminals](https://en.wikipedia.org/wiki/ANSI_escape_code#3-bit_and_4-bit). +To workaround this, we had to put in snapshot wildcards in place of the style names, +making the SVGs render different than what you'd get on the terminal. +Muscraft added the `testing-colors` feature to `annotate-snippets` to force consistent colors across platforms for testing +([annotate-snippets-rs#82](https://github.com/rust-lang/annotate-snippets-rs/pull/82)), +allowing us to have the SVGs better match the terminal while working on all platforms. + +In preparation to shift our focus from `annotate-snippets` to Cargo's diagnostic system, +we reviewed Cargo's code for generating messages for TOML parsing errors for any cleanup we should first apply to Cargo and/or `annotate-snippets`. +`annotate-snippets` requires callers to deal with columns but that is a UX concern that is dependent on the medium you are rendering to so Muscraft shifted the API to focus on byte indices +([annotate-snippets-rs#90](https://github.com/rust-lang/annotate-snippets-rs/pull/90)). +There is still a lot of complexity left to extract the lines for the message and translating the document-relative spans to be line-relative. +We had wondered if we could use `annotate-snippets`'s "`fold` unannotated lines" mechanism to pass in the entire file and let `annotate-snippets` do it for us. +There was some inconsistency in how it folded the start and end of the file so in [annotate-snippets-rs#109](https://github.com/rust-lang/annotate-snippets-rs/pull/109), +we erred on the side that made it easy for callers like Cargo. +In removing the line extraction from Cargo, we found that there was a hack in Cargo for how `annotate-snippets` highlights EOF and so we merged [annotate-snippets-rs#107](https://github.com/rust-lang/annotate-snippets-rs/pull/107). + +Muscraft was going to focus on Cargo's adoption of `annotate-snippets` before looking to rustc's. +However, some people are discussing working on rustc for GSoC +([zulip](https://rust-lang.zulipchat.com/#narrow/stream/421156-gsoc/topic/Idea.3A.20extend.20annotate-snippets)). +In the hope to keep breaking changes down, +epage re-examined the API with an eye towards rustc and how to allow it to evolve for anything we missed (mainly by using the builder pattern). +See [annotate-snippets-rs#94](https://github.com/rust-lang/annotate-snippets-rs/pull/94). +We also found some implementation details being exposed in the API that we had overlooked when we previously abstracted them away +([annotate-snippets-rs#67](https://github.com/rust-lang/annotate-snippets-rs/pull/67)) +which Muscraft fixed in [annotate-snippets-rs#105](https://github.com/rust-lang/annotate-snippets-rs/pull/105). + +To see how these changes simplify the caller, see +- [#13609](https://github.com/rust-lang/cargo/pull/13609) +- [#13619](https://github.com/rust-lang/cargo/pull/13619) + +`annotate-snippets` was first introduced into Cargo for rendering TOML errors. +This was straight forward to implement because `toml` exposes [byte spans on `Error`](https://docs.rs/toml/latest/toml/de/struct.Error.html#method.span). +For lints, we were going to need to look up spans for arbitrary keys and values on the document. +`toml` exposes spans during deserialization but this has some impedance mismatches with serde and requires us to explicit track and forward throughout cargo any spans we care about. +As an alternative, we were planning to rely on a truly terribly great [serde hack](https://play.rust-lang.org/?version=stable&edition=2021&gist=0d457da235449046bd30932a91e45d96) +that [dtolnay](https://github.com/dtolnay) +[pointed out](https://github.com/toml-rs/toml/issues/571#issuecomment-1782050097) +despite the performance overhead of re-parsing the TOML to look up each span. +When considering how to improve the performance, +epage came up with an API design for `toml_edit` to allow looking up the span for a node in a document which was implemented in +[toml-rs#698](https://github.com/toml-rs/toml/pull/698). +To ensure this information is available for where lints will be added, +we flattened the code for parsing manifests +([#13589](https://github.com/rust-lang/cargo/pull/13589)) +so we could attach the source and spans to the data structures used throughout cargo +([#13593](https://github.com/rust-lang/cargo/pull/13593)). + +With these building blocks in place, we are ready to start on Cargo's diagnostic system. + +As an aside, in the hopes that we can one day use fancier unicode characters in diagnostics (and progress updates), we've generalized `cargo tree --charset` into the config [`term.unicode`](https://doc.rust-lang.org/nightly/cargo/reference/config.html#termunicode) in [#13337](https://github.com/rust-lang/cargo/pull/13337). + +##### Performance + +At the tail end of the 1.78 development cycle, +[davidlattimore](https://github.com/davidlattimore/) +posted on +[Speeding up the Rust edit-build-run cycle](https://davidlattimore.github.io/posts/2024/02/04/speeding-up-the-rust-edit-build-run-cycle.html). +This got epage curious about where Cargo's time is going and wanting to make it easier to give users insight into that. +Cargo has [`--timings`](https://doc.rust-lang.org/cargo/reference/timings.html?highlight=timings#reporting-build-timings) +but that doesn't include Cargo's overhead. +There was also a `CARGO_PROFILE` environment variable to cause Cargo to capture and dump a couple of specific stages. +Inspired by [git-branchless](https://github.com/arxanas/git-branchless), +epage decided to experiment with support for +[tracing-chrome](https://crates.io/crates/tracing-chrome) +in Cargo which was merged in +[#13399](https://github.com/rust-lang/cargo/pull/13399) +behind the +[`CARGO_LOG_PROFILE` environment variable](https://doc.crates.io/contrib/tests/profiling.html). + +epage tried this out on +[cargo-nextest](https://crates.io/crates/cargo-nextest) +and took notes on +[zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Chrome.20tracing.20for.20cargo/near/424965726). +Its important to note that Cargo's overhead is either in small fixed costs per run or even smaller per-package costs. +These will likely be dwarfed by Rustc (if there are situations you know of otherwise, let us know on that +[zulip thread](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Chrome.20tracing.20for.20cargo/near/424965726)!). +Because of this, epage is mostly focusing on the [cargo script](https://github.com/rust-lang/rfcs/pull/3502) use case, +especially since the third-party predecessors went through the trouble of +[implementing their own caching scheme on top of Cargo](https://github.com/fornwall/rust-script/blob/fb4e6276ae15c338e075d56fe97fd1090fe9c368/src/main.rs#L386-L423) +to avoid Cargo's overhead. + +The single longest operation is related to +[git2](https://crates.io/crates/git2). +Since there is active work on replacing it with +[gitoxide](https://crates.io/crates/gix) +([progress report](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/.60gitoxide.60.20integration.20updates/near/420960494)), +we lean towards punting on this rather than adding complexity and risk by deferring that initialization work. + +Another major source of overhead is in parsing dependencies, particularly: +1. Parsing `Cargo.toml` files +2. Enumerating inferred build targets (particularly tests) +3. Linting inferred build targets (particularly tests) + +Building on the refactor from +[User-controlled diagnostics](#user-controlled-cargo-diagnostics) +for accessing spans, epage is working on explicitly enumerating inferred build targets in the published `Cargo.toml` for a package. +In addition to removing the overhead from inferring targets, +this will improve errors for maintainers +([#13456](https://github.com/rust-lang/cargo/issues/13456)) +and make it easier for crates.io to add more features to their frontend +(e.g. [crates.io#5882](https://github.com/rust-lang/crates.io/issues/5882) +and [crates.io#814](https://github.com/rust-lang/crates.io/issues/814)). + +We hope to be able to build on that work to defer lints out of manifest parsing, allowing us to skip the lint analysis when its for a transitive dependency +(thanks to [cap-lints](https://doc.rust-lang.org/rustc/lints/levels.html#capping-lints)). + +##### MSRV-aware Cargo + +*[Update from 1.77](https://blog.rust-lang.org/inside-rust/2024/02/13/this-development-cycle-in-cargo-1-77.html#rfc-3537-make-cargo-respect-minimum-supported-rust-version-msrv-when-selecting-dependencies)* + + +[RFC #3537](https://github.com/rust-lang/rfcs/pull/3537) went through +[FCP](https://github.com/rust-lang/rfcs/pull/3537#issuecomment-1946381890) +at the start of this development cycle. +This was a much debated RFC with many, widely different opinions on where the RFC should go. +To help work through this debate, we held extended +[Office Hours](https://github.com/rust-lang/cargo/wiki/Office-Hours) +to allow higher-throughput communication on this topic. +In the end, the Cargo team felt we should move forward with the RFC as-is. +The Cargo team [posted](https://github.com/rust-lang/rfcs/pull/3537#issuecomment-1968172897): + +> Thank you everyone for your feedback! +> +> Your participation has helped us gain a better understanding of the different ways people use Cargo and what people's needs are. We recognize that there are a lot of competing opinions on how to meet user needs. +> +> Whichever way we go, there comes a point where we need to move forward. However, it is important to remember that RFCs are not a final specification. This RFC in particular will be stabilized a piece at a time (with `cargo new` changes likely made last). In preparing to stabilize a feature, we will take into account changes in the ecosystem and feedback from testing unstable features. Based on that evaluation, we may make changes from what this RFC says. Whether we make changes or not, stabilization will then require approval of the cargo team to merge (explicit acknowledgement from all but 2 members with no concerns from any member) followed by a 10 days Final Comment Period (FCP) for the remaining 2 team members and the wider community. Cargo FCPs are now tracked in This Week in Rust to ensure the community is aware when this happens and can participate. Even then, a change like what is proposed for `cargo new` can be reverted without an RFC, likely only needing to follow the FCP process. + +Soon after, epage followed up by fleshing out `cargo add`'s auto-selection of version requirements so it could be stabilized in [#13608](https://github.com/rust-lang/cargo/pull/13608) +- [#13516](https://github.com/rust-lang/cargo/pull/13516) added a fallback to `rustc -V` when `package.rust-version` is not set +- [#13537](https://github.com/rust-lang/cargo/pull/13537) fixed inconsistencies with how we compare Rust versions, reducing the risk for bugs + + +A first step with the resolver work is helping users know that a dependency has been held back. +This isn't just an MSRV-aware resolver problem but a SemVer-aware resolver problem. +Being cautious about overwhelming users with information, +epage broke this out into a separate issue +([#13539](https://github.com/rust-lang/cargo/issues/13539)) +for a more focused conversation and started a discussion on +[zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/How.20to.20report.20.22held.20back.22.20dependencies.20from.20MSRV.20resolver). +In talking about this in a Cargo team meeting, +we decided to move forward and this was merged in [#13561](https://github.com/rust-lang/cargo/pull/13561). + +The next area of potential bike shedding is how to organize and name the config fields for controlling the resolver. +This is being tracked in [#13540](https://github.com/rust-lang/cargo/issues/13540). + +##### Registry Authentication + +When [support for alternative forms of registry authentication](https://doc.rust-lang.org/cargo/reference/registry-authentication.html) +was added, the default of plain-text credential storage was not carried over to alternative registries. +This discrepancy was confusing to at least one user +([#13343](https://github.com/rust-lang/cargo/issues/13343)). +In reflecting on this, it seems appropriate to deprecate implicit use of `cargo:token` built-in credential provider. +Users could suppress the deprecation warning by opting in explicitly. + + +In preparing to deprecate this, epage decided to dog food the documentation for credential providers. +The first thing is the documentation recommends credential providers based on the users platform. +Having a machine-agnostic config is a lot easier for users to maintain, +so epage tried merging all of the entries, relying on each provider declaring itself as unsupported when unavailable (like `cargo:wincred` on non-Windows platforms). +However, `cargo:libsecret` will error, rather than be skipped, if `libsecret` is not installed. +After some discussion on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/reg.20auth.20and.20libsecret) +and in a team meeting, [#13558](https://github.com/rust-lang/cargo/pull/13558) was created. + +##### Git extensions + + +[arlosi](https://github.com/arlosi) brought up in a meeting that they can't build with Cargo if its in a git repo that uses features unsupported by libgit2. +In this specific case, the problem is [Split Index](https://github.com/rust-lang/cargo/issues/10150). +In particular, this is causing problems with vendoring packages with build scripts because the +[default behavior for build scripts is to re-run if any source has changed unless `cargo::rerun-if-changed` is emitted](https://doc.rust-lang.org/cargo/reference/build-scripts.html#rerun-if-changed). +They are currently working around this by modifying vendored build scripts to emit a `cargo::rerun-if-changed`. + +In discussing this, another scenario that can come up is any `cargo doc` invocation because `rustdoc`, unlike `rustc`, doesn't tell `cargo doc` what files were looked at, so `cargo doc` has to guess. + +One option is to walk the directory manually using the [`ignore`](https://crates.io/crates/ignore) package. +However, this isn't just about respecting `.gitignore` but this also checks the stage. + +That left us with: +- Switch the directory scanning to [gitoxide](https://crates.io/crates/gix) as that supports Split Index +- Wrap the `git` CLI and either fallback implicitly or create a config much like [`net.git-fetch-with-cli`](https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli) which would not just support Split Index but any git extension not currently supported by a re-implementation like libgit2 or gitoxide. +- Attempt to phase out the implicit "scan all" in build scripts, limiting the fix to just this specific use case. This would be done with a new Edition. We've been hesitant to change build scripts with Editions because a lot of times they rely on a library to emit the instructions which can be on a different Edition. + +[Byron](https://github.com/Byron) stepped in and provided a gitoxide implementation in [#13592](https://github.com/rust-lang/cargo/pull/13592). +Discussions are on-going for stabilizing this work on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/.60gitoxide.60.20integration.20updates/near/428383923). + +##### Garbage collection + +We're working on automatic cleanup of on-disk caches. +Initially, we are starting with global state. +This effort is being tracked in [#12633](https://github.com/rust-lang/cargo/issues/12633). + + +As a small step forward for, +[ehuss](https://github.com/ehuss) proposed we stabilize global cache tracking in +[#13492](https://github.com/rust-lang/cargo/pull/13492). +This will ensure your machine has the historical data it needs to determine what caches to garbage collect once we stabilize that part of this. + +##### Default Edition + +[kpreid](https://github.com/kpreid) proposed we deprecate relying on default Editions on [Internals](https://internals.rust-lang.org/t/idea-rustc-cargo-should-warn-on-unspecified-edition/20309). +Today, if you create a `Cargo.toml` without setting [package.edition](https://doc.rust-lang.org/cargo/reference/manifest.html#the-edition-field), +Cargo will default to the 2015 Edition. +The same is true if you directly run `rustc` without passing `--edition` which people do for "quick experiments". +Similarly, some people don't realize that `rustfmt` is more like `rustc`, needing the `--edition` flag, when they likely need `cargo fmt` to respect their `Cargo.toml` edition. + +If we deprecated relying on the default Edition, it would likely reduce user confusion. +This also would help with [RFC #3502: cargo script](https://github.com/rust-lang/rfcs/pull/3502) because that defines the default for embedded manifest differently: use the current edition but warn. +Having both warn and users being used to explicitly setting the Edition will help gloss over the difference in their defaults. + + +The Cargo team discussed this and was in favor of moving forward and merged this in [#13505](https://github.com/rust-lang/cargo/pull/13505). + +While it might be reasonable for the Compiler team to come to a different conclusion, +we didn't want Cargo omitting `--edition` when it calls `rustc` to block them, so we made sure we always pass it in [#13499](https://github.com/rust-lang/cargo/pull/13499). + +Sometimes it can be easy to overlook why an existing project is slower to evolve compared to new projects. +One challenge is the weight of the existing features. +In this case, it was the tests for those features. +To get an idea of what that weight is, +consider the manual test updates done in +[#13504](https://github.com/rust-lang/cargo/pull/13504) to unblock this work. + +##### Open namespaces + +Recently, [RFC #3243](https://github.com/rust-lang/rfcs/pull/3243) was approved which is a major shift in Rust. +Previously, library namespaces were closed to extension. +With this RFC, we are moving closer to Python which allows restricted extension of a library's namespace. +You will be able to name a package `foo::bar`, +making your package be part of the `foo` namespace. +A major restriction on this is that crates.io will put the owners of `foo` in control of who can publish `foo::*` packages. +This will be useful for projects like Clap, Bevy, or Gitoxide that have a large collection of libraries with independent versioning that act as a cohesive whole. +Technically, this could be used as registry namespacing (naming all packages `my-org::*`) but they will likely run into impedance mismatches as this feature was not design for that use case. + +As a first step, +epage implemented rudimentary support this in Cargo in [#13591](https://github.com/rust-lang/cargo/pull/13591). +You can run `cargo metadata` but `cargo check` will fail. +Discussions on the cargo/compiler interactions are happening in the +[rustc tracking issue](https://github.com/rust-lang/rust/issues/122349). +The unstable feature was named [open-namespaces](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#open-namespaces) with the hope to be more semantically specific to reduce people inadverently thinking this was registry namespacing. + +## Design discussions + +##### Deprecated `Cargo.toml` fields + + + +In reviewing a PR, epage observed that the contributor accessed + +[`manifest.dev_dependencies`](https://docs.rs/cargo-util-schemas/latest/cargo_util_schemas/manifest/struct.TomlManifest.html#structfield.dev_dependencies) +(for `[dev-dependencies]`), +overlooking [`manifest.dev_dependencies2`](https://docs.rs/cargo-util-schemas/latest/cargo_util_schemas/manifest/struct.TomlManifest.html#structfield.dev_dependencies2) +(for `[dev_dependencies]`). +Considering the obvious name of the `manifest.dev_dependencies` field and lack of awareness of `[dev_dependencies]` (not even the other `Cargo.toml` parsers surveyed support it), +this was understandable. + +The reminder that these fields exist led to a discussion within the Cargo team of what we should do about them. + +A quick overview: + +| Expected | Alt | If alt used | If both used | +|----------------------|----------------------|-------------|--------------| +| `package` | `project` | deprecated, planned removal | warn | +| `build-dependencies` | `build_dependencies` | nothing | warn and say alt is deprecated | +| `dev-dependencies` | `dev_dependencies` | nothing | warn and say alt is deprecated | +| `proc-macro` | `proc_macro` | nothing | warn and say alt is deprecated | +| `crate-type` | `crate_type` | nothing | warn and say alt is deprecated | + +Our plan is to research the use of all of our deprecated functionality, including +- When it was introduced? +- When it was superseded? +- How common is the use on crates.io? +- How common the use is within the ecosystem (Cargo may normalize some of this on publish)? + +Our options include: +- Warn that it is deprecated but keep it +- Warn that it is deprecated on existing Editions and disallow it on future Editions + - As most alternatives date far enough back, we are assuming we don't need to restrict the warning based on a package's declared minimum-supported Rust version (MSRV) +- Warn and once a sufficient amount of time has passed, remove the functionality (restricted for only what we consider to be outside our compatibility guarantees like when we removed support for parsing invalid manifests in [#9932](https://github.com/rust-lang/cargo/pull/9932)) + +This is being tracked in +[#13629](https://github.com/rust-lang/cargo/issues/13629) +and discussed on +[zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Next.20step.20for.20deprecations.20in.20Cargo/near/428407231). + +##### RFC #3452: Nested packages + +[RFC #3452](https://github.com/rust-lang/rfcs/pull/3452) +would allow `cargo publish` to bundle select +[path dependencies](https://doc.rust-lang.org/nightly/cargo/reference/specifying-dependencies.html#specifying-path-dependencies) +within a package's published `.crate` file. +This could remove the need for publishing two packages for proc-macros or allow splitting up a larger package into smaller compilation units for faster incremental rebuilds. +A similar idea was posted as [RFC #2224](https://github.com/rust-lang/rfcs/pull/2224) in 2017 but it was postponed. +In 2022, [yoshuawuyts](https://github.com/yoshuawuyts) approached this problem from the language side in their post [Inline Crates](https://blog.yoshuawuyts.com/inline-crates/). + +kpreid worked through the remaining feedback on their RFC. +Threads were opened with +[T-cargo](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/RFC.20.233452.3A.20Nested.20Cargo.20packages/near/427540788) +and [T-crates-io](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/RFC.20.233452.3A.20Nested.20Cargo.20packages/near/427541267) +in the hopes to uncover additional fundamental areas that need addressing in the lead up for an FCP. + + + +The Cargo team had a high level discussion on RFC #3452 to gauge general interest for moving forward with this. + +One concern raised was the complexity in documenting this, +especially when giving users guidance on when to use a build targets, packages, nested packages, or workspaces +(see also [When to use packages or workspaces?](https://blog.rust-lang.org/inside-rust/2024/02/13/this-development-cycle-in-cargo-1-77.html#when-to-use-packages-or-workspaces)). + +There is also the potential for unintended side effects. +If we don't restrict what dependencies can be nested, +it could make supply chain traceability more difficult, like with [SBOMS](https://github.com/rust-lang/rfcs/pull/3553), +and could make working around problems with dependencies the happy path, rather than encouraging people to keep the quality of the ecosystem high. + +##### Why is this yanked? + +There has long been a request for allowing a message to be included when running `cargo yank` +([#2608](https://github.com/rust-lang/cargo/issues/2608)). +This could become more important as we allow yanked packages to be used in more places +(see [`cargo update --precise `](https://blog.rust-lang.org/inside-rust/2024/02/13/this-development-cycle-in-cargo-1-77.html#cargo-update---precise-yanked) from 1.77). + + +[hi-rustin](https://github.com/hi-rustin/cargo-information) +brought this up in a crates.io team meeting. +It turns out that they are considering something similar for their admin management feature. +So how should Cargo get and report this information? + +The first tool to reach for when getting information from crates.io is the +[Index](https://doc.rust-lang.org/cargo/reference/registry-index.html) +which we use for dependency resolution. +We also have a well-paved path for extending Cargo's registry support in this way without negatively impacting third-party registries. +However, we normally restrict the Index to content needed for dependency resolution. +This is mostly done for performance / disk space reasons. +With the Git Index, you have to download the entire thing. +This is improved with the Sparse Index, where you download only the packages being considered but its still all versions. +We then have to parse these entries to find the relevant versions. + +Creating an additional database for this side-band, more mutable metadata, +would require more upfront work but this might offer us other benefits. +Some other ways we could use this database include: +- Unmaintained status (overlaps with rustsec) +- Deprecation status ([crates.io#7146](https://github.com/rust-lang/crates.io/issues/7146)), especially if you can point to a replacement (like rustsec's "unmaintained"), e.g. helping `structopt` users discover that their upgrade path is switching to `clap`, similar for `rlua` to `mlua` +- Prepare for broken builds due to bug-compatibility hacks being removed ([rust#106060](https://github.com/rust-lang/rust/pull/106060)) +- Maybe even allow third-party registries to distribute rules for [dependency resolution hooks](https://github.com/rust-lang/cargo/issues/7193) + +For now, we were leaning towards `cargo yank` being able to provide this information to a registry and crates.io storing this and reporting it to users. +Later on, we can explore how we'd want Cargo to consume this information. +At that time, we can backfill whatever database Cargo uses with crates.io's database. + +##### Linter for Cargo + +Last year on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Cargo.20Lints/near/421280492), +we discussed where Cargo lints should live, +whether all in cargo and run as part of every command or if some should live in a dedicated linter command. +One idea that came up was for some of these lints to live in `cargo clippy`, +specifically the cargo subcommand and not `clippy-driver` which is where all clippy lints live today +(including some [cargo ones](https://rust-lang.github.io/rust-clippy/stable/index.html#?groups=cargo)). + + +This came up again at the start of 1.78's development when a contributor was looking to implement another Cargo lint in clippy ([clippy#10306](https://github.com/rust-lang/rust-clippy/issues/10306)). +As discussed on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Adding.20more.20information.20to.20.60cargo.20metadata.60/near/419342414), +one of the challenges was in getting access to the information the lint needed. +`cargo metadata` isn't really meant for exposing these lower level details so this would require re-implementing parts of Cargo in `clippy-driver`. +The existence of [`cargo-util-schema`](https://docs.rs/cargo-util-schemas) helps but doesn't alleviate all of the problem. +If the lint could be implemented inside of `cargo clippy` and either `cargo clippy` depended on `cargo` as a library or was baked into Cargo then it would have access to all of the existing machinery, making it easier to keep up-to-date as Cargo evolves. + +For lists of potential lints, without consideration for whether they'd live in cargo or an explicit lint command, see +- [clippy's cargo group](https://rust-lang.github.io/rust-clippy/master/index.html#?groups=cargo) +- [cargo-deny](https://github.com/EmbarkStudios/cargo-deny) +- [lints blocked on the diagnostic work](https://github.com/rust-lang/cargo/issues/12235) + +Baking `cargo-clippy` directly into `cargo` came up when clippy went out of "preview" and was rejected by the Cargo team at that time +(from what people remember). +Besides having to define the semantics for when `clippy-driver` isn't installed, +the cargo team would be taking ownership of another team's command +and has us doing less dog-fooding of first-class, complex external subcommands. + +There is also the question of why a lint should run every time vs be in an explicit lint action. +As discussed in [Performance](#performance), +there can be a noticeable overhead to lint analysis. +This also offers a nursery for lints and the opportunity to be more opinionated by default. + +Digging into the +[rustc dev guide](https://rustc-dev-guide.rust-lang.org/diagnostics.html) +and the [clippy book](https://doc.rust-lang.org/nightly/clippy/index.html), +provided a lot of useful information for this discussion and as we add lints to cargo, even if the "why" isn't always explicitly laid out. +In particular, there is the guidance on +[rustc lints, clippy lints, and transition clippy lints to rustc lints](https://github.com/rust-lang/rfcs/blob/master/text/2476-clippy-uno.md#compiler-uplift). + +We still need to get more background from the clippy team before we can continue our discussions on where things belong. + +##### Weak feature syntax + +[RFC #3491](https://github.com/rust-lang/rfcs/pull/3491) plans to transition out implicit features in the next Edition. +Another feature change that has been proposed in [#10556](https://github.com/rust-lang/cargo/issues/10556) was to transition out the weak dependency syntax (`dep?/feature`) by making `dep/feature` always be weak. +This was recently discussed on [zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Weak.20features.20syntax). + +When you want a feature to activate a dependency's feature, you use `dep/feature` syntax. +If the dependency is also optional, +this will activate the dependency as well. +The weak feature syntax (`dep?/feature`) allows you to only activate the feature *if* the dependency is activated another way. +A common use case for this is if you have a `serde` feature and you want to enable `serde` features in your optional dependencies. +To put this another way, `"foo/serde"` is the same as `"dep:foo", "foo?/serde"`. + +We suspect this might be confusing and it would be more elegant to reduce the amount of syntax but its unclear how much of a problem this is for users in practice which is important to weigh out against the transition costs. + +We could also phase this out by first deprecating `foo/serde` syntax. +This would better telegraph the change and extend the window for soliciting feedback. +We could tie this deprecation to a package's MSRV so they will only see if i they have the option to change. + +In discussion confusing syntax, one point of confusion that came up was that `dep:foo/serde` is unsupported. + +## Misc + +- [baby230211](https://github.com/baby230211) fixed `cargo publish` so that when it strips dev-dependencies, it will strip activations of those dependencies in [#13518](https://github.com/rust-lang/cargo/pull/13518). +- Muscraft put in heoric work renaming `Config` to `GlobalContext` in [#13409](https://github.com/rust-lang/cargo/pull/13409). +- epage improved clap's error output to help users know how to pass arguments to wrapped commands, like tests, in [#13448](https://github.com/rust-lang/cargo/pull/13448) + +## Focus areas without progress + +These are areas of interest for Cargo team members with no reportable progress for this development-cycle. + +Ready-to-develop: +- [Merge `cargo upgrade` into `cargo update`](https://github.com/rust-lang/cargo/issues/12425) +- [`cargo publish` for workspaces](https://github.com/rust-lang/cargo/issues/1169) +- [Auto-generate completions](https://github.com/rust-lang/cargo/issues/6645) + - See [clap-rs/clap#3166](https://github.com/clap-rs/clap/issues/3166) +- Generalize cargo's test assertion code + - [Add `CARGO_WORKSPACE_DIR`](https://github.com/rust-lang/cargo/issues/3946) + - [Structured assertions in snapbox](https://github.com/assert-rs/trycmd/issues/92) + - [Find a solution for order-independent assertions between cargo and snapbox](https://github.com/assert-rs/trycmd/issues/151) +- [`cargo update --precise` with pre-release deps](https://github.com/rust-lang/cargo/issues/13290) + +Needs design and/or experimentation: + +- [cargo info](https://github.com/rust-lang/cargo/issues/948) +- [Per-user artifact cache](https://github.com/rust-lang/cargo/issues/5931) +- [Dependency resolution hooks](https://github.com/rust-lang/cargo/issues/7193) +- [A way to report why crates were rebuilt](https://github.com/rust-lang/cargo/issues/2904) + +Planning: +- Cargo script ([RFC #3502](https://github.com/rust-lang/rfcs/pull/3502), [RFC #3503](https://github.com/rust-lang/rfcs/pull/3503)) +- [Disabling of default features](https://github.com/rust-lang/cargo/issues/3126) +- [RFC #3416: `features` metadata](https://github.com/rust-lang/rfcs/pull/3416) + - [RFC #3485: descriptions](https://github.com/rust-lang/rfcs/pull/3485) (descriptions) + - [RFC #3487: visibility](https://github.com/rust-lang/rfcs/pull/3487) (visibility) + - [RFC #3486: deprecation](https://github.com/rust-lang/rfcs/pull/3486) + - [Unstable features](https://doc.rust-lang.org/cargo/reference/unstable.html#list-of-unstable-features) + +- [OS-native config/cache directories (ie XDG support)](https://github.com/rust-lang/cargo/issues/1734) + - [Phase 1 Pre-RFC](https://internals.rust-lang.org/t/pre-rfc-split-cargo-home/19747) +- [RFC #3553: Cargo SBOM Fragment](https://github.com/rust-lang/rfcs/pull/3553) +- [RFC #3371: CARGO_TARGET_BASE_DIR](https://github.com/rust-lang/rfcs/pull/3371) + +- [Pre-RFC: Global, mutually exclusive features](https://internals.rust-lang.org/t/pre-rfc-mutually-excusive-global-features/19618) + +## How you can help + +If you have ideas for improving cargo, +we recommend first checking [our backlog](https://github.com/rust-lang/cargo/issues/) +and then exploring the idea on [Internals](https://internals.rust-lang.org/c/tools-and-infrastructure/cargo/15). + +If there is a particular issue that you are wanting resolved that wasn't discussed here, +some steps you can take to help move it along include: +- Summarizing the existing conversation (example: + [Better support for docker layer caching](https://github.com/rust-lang/cargo/issues/2644#issuecomment-1489371226), + [Change in `Cargo.lock` policy](https://github.com/rust-lang/cargo/issues/8728#issuecomment-1610265047), + [MSRV-aware resolver](https://github.com/rust-lang/cargo/issues/9930#issuecomment-1489089277) + ) +- Document prior art from other ecosystems so we can build on the work others have done and make something familiar to users, where it makes sense +- Document related problems and solutions within Cargo so we see if we are solving to the right layer of abstraction +- Building on those posts, propose a solution that takes into account the above information and cargo's compatibility requirements ([example](https://github.com/rust-lang/cargo/issues/9930#issuecomment-1489269471)) + +We are available to help mentor people for +[S-accepted issues](https://doc.crates.io/contrib/issues.html#issue-status-labels) +on +[zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo) +and you can talk to us in real-time during +[Contributor Office Hours](https://github.com/rust-lang/cargo/wiki/Office-Hours). +If you are looking to help with one of the bigger projects mentioned here and are just starting out, +[fixing some issues](https://doc.crates.io/contrib/process/index.html#working-on-issues) +will help familiarize yourself with the process and expectations, +making things go more smoothly. +If you'd like to tackle something +[without a mentor](https://doc.crates.io/contrib/issues.html#issue-status-labels), +the expectations will be higher on what you'll need to do on your own. diff --git a/static/images/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78/stderr.term.svg b/static/images/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78/stderr.term.svg new file mode 100644 index 000000000..0b81800c0 --- /dev/null +++ b/static/images/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78/stderr.term.svg @@ -0,0 +1,42 @@ + + + + + + + Updating `dummy-registry` index + + Adding your-face v99999.0.0 to dependencies + + Features: + + - ears + + - eyes + + - mouth + + - nose + + Locking 2 packages + + + + + + From 648476eb4ed5f6e076991a94d938a4caeeb18c8b Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 25 Mar 2024 12:39:06 -0500 Subject: [PATCH 0328/1024] Fix git extension description --- .../2024-03-26-this-development-cycle-in-cargo-1.78.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md index e0e1ca005..c672dfe93 100644 --- a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md +++ b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md @@ -265,8 +265,9 @@ and in a team meeting, [#13558](https://github.com/rust-lang/cargo/pull/13558) w In this specific case, the problem is [Split Index](https://github.com/rust-lang/cargo/issues/10150). In particular, this is causing problems with vendoring packages with build scripts because the [default behavior for build scripts is to re-run if any source has changed unless `cargo::rerun-if-changed` is emitted](https://doc.rust-lang.org/cargo/reference/build-scripts.html#rerun-if-changed). -They are currently working around this by modifying vendored build scripts to emit a `cargo::rerun-if-changed`. +They are currently working around this by modifying vendored packages to have a `package.include` field which disables Cargo's git walking. +This will also affect `cargo package`. In discussing this, another scenario that can come up is any `cargo doc` invocation because `rustdoc`, unlike `rustc`, doesn't tell `cargo doc` what files were looked at, so `cargo doc` has to guess. One option is to walk the directory manually using the [`ignore`](https://crates.io/crates/ignore) package. From 6fd40f40a79d79862d21f5d7b18ffee7a5ca08d3 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Mon, 25 Mar 2024 12:49:19 -0500 Subject: [PATCH 0329/1024] Correct the scoping of a change --- .../2024-03-26-this-development-cycle-in-cargo-1.78.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md index c672dfe93..3455c1ed9 100644 --- a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md +++ b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md @@ -198,7 +198,7 @@ and make it easier for crates.io to add more features to their frontend (e.g. [crates.io#5882](https://github.com/rust-lang/crates.io/issues/5882) and [crates.io#814](https://github.com/rust-lang/crates.io/issues/814)). -We hope to be able to build on that work to defer lints out of manifest parsing, allowing us to skip the lint analysis when its for a transitive dependency +We hope to be able to build on that work to defer lints out of manifest parsing, allowing us to skip the lint analysis when its for a dependency (thanks to [cap-lints](https://doc.rust-lang.org/rustc/lints/levels.html#capping-lints)). ##### MSRV-aware Cargo From e4358aa9df9f8a435974aea04e5e6e02e2a09b7c Mon Sep 17 00:00:00 2001 From: Max Bruckner Date: Tue, 26 Mar 2024 08:34:53 +0100 Subject: [PATCH 0330/1024] Fix dead links an deadname in "Shape of errors to come" Replace Sophia's old name and replace broken links to her old blog that now point to some kind of spam website. --- posts/2016-08-10-Shape-of-errors-to-come.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/posts/2016-08-10-Shape-of-errors-to-come.md b/posts/2016-08-10-Shape-of-errors-to-come.md index 5811c82ca..8a778ca57 100644 --- a/posts/2016-08-10-Shape-of-errors-to-come.md +++ b/posts/2016-08-10-Shape-of-errors-to-come.md @@ -1,14 +1,14 @@ --- layout: post title: "Shape of errors to come" -author: Jonathan Turner +author: Sophia June Turner --- There are changes afoot in the Rust world. If you've tried out the latest nightly, you'll notice something is *a little different*. For the past few months we've been working on new way of reporting errors that's easier to read and understand. This is part of an on-going campaign to improve Rust's usability across the board. We mentioned ways to help us -[make the transition](https://www.jonathanturner.org/2016/08/helping-out-with-rust-errors.html) +[make the transition](https://www.sophiajt.com/helping-out-with-rust-errors/) to the new errors, and already many people have jumped in (and thank you to those volunteers!) Let's dive in and see what's changed. We'll start with a simple example: @@ -166,7 +166,7 @@ extended errors looks like, come jump into the #rust-cli channel on irc.mozilla. Great! We love the enthusiasm. There's [a lot to do](https://github.com/rust-lang/rust/issues/35233), and a -[lot of skills](https://www.jonathanturner.org/2016/08/helping-out-with-rust-errors.html) that could +[lot of skills](https://www.sophiajt.com/helping-out-with-rust-errors/) that could help us in different ways. Whether you're good at unit tests, writing docs, writing code, or working on designs, there are places to jump in. From 4971b6f65d92ec06ad4c8e3f2488a424654e6a93 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 14:23:27 +0100 Subject: [PATCH 0331/1024] Update Rust crate handlebars to v5.1.2 (#1285) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 715c4036e..f44de91cb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -744,9 +744,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "5.1.1" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c73166c591e67fb4bf9bc04011b4e35f12e89fe8d676193aa263df065955a379" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" dependencies = [ "log", "pest", diff --git a/Cargo.toml b/Cargo.toml index a247b8d8c..78a1058c5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" [dependencies] color-eyre = "=0.6.2" eyre = "=0.6.12" -handlebars = { version = "=5.1.1", features = ["dir_source"] } +handlebars = { version = "=5.1.2", features = ["dir_source"] } lazy_static = "=1.4.0" serde = "=1.0.197" serde_derive = "=1.0.197" From aa22c2ccfa04dcdbd22a1015d5144de075c06203 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 14:23:42 +0100 Subject: [PATCH 0332/1024] Update Rust crate serde_json to v1.0.115 (#1289) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f44de91cb..9136bf520 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1604,9 +1604,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 78a1058c5..12aea1e38 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ lazy_static = "=1.4.0" serde = "=1.0.197" serde_derive = "=1.0.197" serde_yaml = "=0.9.33" -serde_json = "=1.0.114" +serde_json = "=1.0.115" comrak = "=0.21.0" rayon = "=1.9.0" regex = "=1.10.3" From 0adaeca3dc19e687bfdde3da4c87ebc69f4f9057 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 14:24:46 +0100 Subject: [PATCH 0333/1024] Update Rust crate rayon to v1.10.0 (#1284) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9136bf520..1c1ba874e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1379,9 +1379,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", diff --git a/Cargo.toml b/Cargo.toml index 12aea1e38..d86b9a0a1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ serde_derive = "=1.0.197" serde_yaml = "=0.9.33" serde_json = "=1.0.115" comrak = "=0.21.0" -rayon = "=1.9.0" +rayon = "=1.10.0" regex = "=1.10.3" sass-rs = "=0.2.2" chrono = "=0.4.35" From 55c77fd4925e1fca9affceee55efa2073d397de7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 15:20:16 +0100 Subject: [PATCH 0334/1024] Update Rust crate color-eyre to v0.6.3 (#1273) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1c1ba874e..3ee3807fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -317,9 +317,9 @@ checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" [[package]] name = "color-eyre" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204" +checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" dependencies = [ "backtrace", "color-spantrace", diff --git a/Cargo.toml b/Cargo.toml index d86b9a0a1..b89e9f3ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ authors = ["The Rust Project Developers"] edition = "2021" [dependencies] -color-eyre = "=0.6.2" +color-eyre = "=0.6.3" eyre = "=0.6.12" handlebars = { version = "=5.1.2", features = ["dir_source"] } lazy_static = "=1.4.0" From e8f7f2b9a91467ba50babf8f579c3c415d4b5fe5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Mar 2024 15:20:25 +0100 Subject: [PATCH 0335/1024] Update Rust crate regex to v1.10.4 (#1282) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3ee3807fe..499a9f221 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1420,9 +1420,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", diff --git a/Cargo.toml b/Cargo.toml index b89e9f3ea..dea92d306 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ serde_yaml = "=0.9.33" serde_json = "=1.0.115" comrak = "=0.21.0" rayon = "=1.10.0" -regex = "=1.10.3" +regex = "=1.10.4" sass-rs = "=0.2.2" chrono = "=0.4.35" From 45f6a0678a4dd1c30c09ca02a120a202ced44e84 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 26 Mar 2024 11:37:09 -0500 Subject: [PATCH 0336/1024] Add context to the image --- .../2024-03-26-this-development-cycle-in-cargo-1.78.md | 1 + 1 file changed, 1 insertion(+) diff --git a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md index 3455c1ed9..6424350ef 100644 --- a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md +++ b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md @@ -68,6 +68,7 @@ and integrated that into snapbox which we use for snapshoting our UI tests. ![rendering of cargo-add's output using SVG](../../../../images/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78/stderr.term.svg) +*(not a screenshot but generated from cargo's output)* While this verified most of Cargo's terminal styling, we couldn't force styling on within `--help` to snapshot it. While we added styling to `--help` in From 05e241704d69757aebb59182731cd0dacc4a2950 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 26 Mar 2024 11:42:38 -0500 Subject: [PATCH 0337/1024] Add a profile screenshot --- ...3-26-this-development-cycle-in-cargo-1.78.md | 3 +++ .../cargo-profile.png | Bin 0 -> 43934 bytes 2 files changed, 3 insertions(+) create mode 100644 static/images/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78/cargo-profile.png diff --git a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md index 6424350ef..328b781ac 100644 --- a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md +++ b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md @@ -165,6 +165,9 @@ in Cargo which was merged in behind the [`CARGO_LOG_PROFILE` environment variable](https://doc.crates.io/contrib/tests/profiling.html). +![rendering of traces for building cargo](../../../../images/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78/cargo-profile.png) +*(rendering of traces for building `cargo`)* + epage tried this out on [cargo-nextest](https://crates.io/crates/cargo-nextest) and took notes on diff --git a/static/images/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78/cargo-profile.png b/static/images/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78/cargo-profile.png new file mode 100644 index 0000000000000000000000000000000000000000..eea0087afddafe545661641e0992a0ca33ce496b GIT binary patch literal 43934 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 literal 0 HcmV?d00001 From 3f6bafcc81beb61b5baeb4d66a92ce4a9b4db4af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 27 Mar 2024 08:27:44 +0100 Subject: [PATCH 0338/1024] Add blog post about the Rust 1.77.1 release --- posts/2024-03-28-Rust-1.77.1.md | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 posts/2024-03-28-Rust-1.77.1.md diff --git a/posts/2024-03-28-Rust-1.77.1.md b/posts/2024-03-28-Rust-1.77.1.md new file mode 100644 index 000000000..39238bfcb --- /dev/null +++ b/posts/2024-03-28-Rust-1.77.1.md @@ -0,0 +1,35 @@ +--- +layout: post +title: "Announcing Rust 1.77.1" +author: The Rust Release Team +release: true +--- + +The Rust team has published a new point release of Rust, 1.77.1. Rust is a +programming language that is empowering everyone to build reliable and +efficient software. + +If you have a previous version of Rust installed via rustup, getting Rust +1.77.1 is as easy as: + +``` +rustup update stable +``` + +If you don't have it already, you can [get `rustup`][rustup] from the +appropriate page on our website. + +[rustup]: https://www.rust-lang.org/install.html + +## What's in 1.77.1 + +Cargo enabled [stripping of debuginfo in release builds by default](https://github.com/rust-lang/cargo/pull/13257) +in Rust 1.77.0. However, due to a pre-existing issue, debuginfo stripping does not [behave](https://github.com/rust-lang/rust/issues/122857) in the expected way on Windows with the MSVC toolchain. + +Rust 1.77.1 therefore [disables](https://github.com/rust-lang/cargo/pull/13630) the new Cargo behavior on Windows for +targets that use MSVC. + +### Contributors to 1.77.1 + +Many people came together to create Rust 1.77.1. We couldn't have done it +without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.77.1/) From e29f0e5789ae18ec9bfa32338e7b5f112a964f01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 27 Mar 2024 08:36:19 +0100 Subject: [PATCH 0339/1024] Add clarification --- posts/2024-03-28-Rust-1.77.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-03-28-Rust-1.77.1.md b/posts/2024-03-28-Rust-1.77.1.md index 39238bfcb..410d7e0ac 100644 --- a/posts/2024-03-28-Rust-1.77.1.md +++ b/posts/2024-03-28-Rust-1.77.1.md @@ -27,7 +27,7 @@ Cargo enabled [stripping of debuginfo in release builds by default](https://gith in Rust 1.77.0. However, due to a pre-existing issue, debuginfo stripping does not [behave](https://github.com/rust-lang/rust/issues/122857) in the expected way on Windows with the MSVC toolchain. Rust 1.77.1 therefore [disables](https://github.com/rust-lang/cargo/pull/13630) the new Cargo behavior on Windows for -targets that use MSVC. +targets that use MSVC. There are no changes for other targets. ### Contributors to 1.77.1 From ca0574b3236808852e636f8d6a2322b13326bdd8 Mon Sep 17 00:00:00 2001 From: "promote-release[bot]" <108686806+promote-release[bot]@users.noreply.github.com> Date: Wed, 27 Mar 2024 12:22:33 +0000 Subject: [PATCH 0340/1024] Creating file via promote-release automation --- .../2024-03-27-1.77.1-prerelease.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/inside-rust/2024-03-27-1.77.1-prerelease.md diff --git a/posts/inside-rust/2024-03-27-1.77.1-prerelease.md b/posts/inside-rust/2024-03-27-1.77.1-prerelease.md new file mode 100644 index 000000000..cfbbb0d51 --- /dev/null +++ b/posts/inside-rust/2024-03-27-1.77.1-prerelease.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "1.77.1 pre-release testing" +author: Release automation +team: The Release Team +--- + +The 1.77.1 pre-release is ready for testing. The release is scheduled for +March 28. [Release notes can be found here.][relnotes] + +You can try it out locally by running: + +```plain +RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable +``` + +The index is . + +You can leave feedback on the [internals thread](https://internals.rust-lang.org/t/rust-1-77-1-pre-release-testing/20546). + +The release team is also thinking about changes to our pre-release process: +we'd love your feedback [on this GitHub issue][feedback]. + +[relnotes]: https://dev-doc.rust-lang.org/1.77.1/releases.html +[feedback]: https://github.com/rust-lang/release-team/issues/16 + \ No newline at end of file From 0bfdb1ef2c333a50e93699c2b70387a89dcc197a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 27 Mar 2024 14:33:05 +0100 Subject: [PATCH 0341/1024] Add a remark about re-enabling the default in the future. --- posts/2024-03-28-Rust-1.77.1.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/posts/2024-03-28-Rust-1.77.1.md b/posts/2024-03-28-Rust-1.77.1.md index 410d7e0ac..c27a3400a 100644 --- a/posts/2024-03-28-Rust-1.77.1.md +++ b/posts/2024-03-28-Rust-1.77.1.md @@ -27,7 +27,8 @@ Cargo enabled [stripping of debuginfo in release builds by default](https://gith in Rust 1.77.0. However, due to a pre-existing issue, debuginfo stripping does not [behave](https://github.com/rust-lang/rust/issues/122857) in the expected way on Windows with the MSVC toolchain. Rust 1.77.1 therefore [disables](https://github.com/rust-lang/cargo/pull/13630) the new Cargo behavior on Windows for -targets that use MSVC. There are no changes for other targets. +targets that use MSVC. There are no changes for other targets. We plan to eventually re-enable debuginfo stripping in +release mode in a later Rust release. ### Contributors to 1.77.1 From 199456d832dabbf346b7935aa96f6d979c915895 Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Mon, 25 Mar 2024 00:40:08 -0500 Subject: [PATCH 0342/1024] Add suggestions from Josh Triplett and some other small tweaks Fix the metadata block Co-authored-by: Josh Triplett Add annotations to Clang's output of the example --- ...te.md => 2024-03-30-i128-layout-update.md} | 130 ++++++++++-------- 1 file changed, 74 insertions(+), 56 deletions(-) rename posts/{2024-00-00-i128-layout-update.md => 2024-03-30-i128-layout-update.md} (71%) diff --git a/posts/2024-00-00-i128-layout-update.md b/posts/2024-03-30-i128-layout-update.md similarity index 71% rename from posts/2024-00-00-i128-layout-update.md rename to posts/2024-03-30-i128-layout-update.md index 2f4a2c90e..8f7462e1c 100644 --- a/posts/2024-00-00-i128-layout-update.md +++ b/posts/2024-03-30-i128-layout-update.md @@ -2,12 +2,12 @@ layout: post title: "Changes to `u128`/`i128` layout in 1.77 and 1.78" author: Trevor Gross -team: Lang +team: The Rust Lang Team --- -Rust has long had an inconsistency with C regarding the alignment of 128-bit integers. -This problem has recently been resolved, but the fix comes with some effects that are -worth being aware of. +Rust has long had an inconsistency with C regarding the alignment of 128-bit integers +on the x86-32 and x86-64 architectures. This problem has recently been resolved, but +the fix comes with some effects that are worth being aware of. As a user, you most likely do not need to worry about these changes unless you are: @@ -18,9 +18,9 @@ There are also no changes to architectures other than x86-32 and x86-64. If your code makes heavy use of 128-bit integers, you may notice runtime performance increases at a possible cost of additional memory use. -This post is intended to clarify what changed, why it changed, and what to expect. If -you are only looking for a compatibility matrix, jump to the -[Compatibility](#compatibility) section. +This post documents what the problem was, what changed to fix it, and what to expect +with the changes. If you are already familiar with the problem and only looking for a +compatibility matrix, jump to the [Compatibility](#compatibility) section. # Background @@ -32,13 +32,13 @@ The size of simple types like primitives is usually unambiguous, being the exact the data they represent with no padding (unused space). For example, an `i64` always has a size of 64 bits or 8 bytes. -Alignment, however, can seem less consistent. An 8-byte integer _could_ reasonably be -stored at any memory address (1-byte aligned), but most 64-bit computers will get the -best performance if it is instead stored at a multiple of 8 (8-byte aligned). So, like -in other languages, primitives in Rust have this most efficient alignment by default. -The effects of this can be seen when creating composite types: [^composite-playground] +Alignment, however, can vary. An 8-byte integer _could_ be stored at any memory address +(1-byte aligned), but most 64-bit computers will get the best performance if it is +instead stored at a multiple of 8 (8-byte aligned). So, like in other languages, +primitives in Rust have this most efficient alignment by default. The effects of this +can be seen when creating composite types ([playground link][composite-playground]): -```rust= +```rust use core::mem::{align_of, offset_of}; #[repr(C)] @@ -49,7 +49,7 @@ struct Foo { #[repr(C)] struct Bar { - a: u8, // 1=byte aligned + a: u8, // 1-byte aligned b: u64, // 8-byte aligned } @@ -69,43 +69,44 @@ Alignment of Bar: 8 ``` We see that within a struct, a type will always be placed such that its offset is a -multiple of its alignment. +multiple of its alignment - even if this means unused space (Rust minimizes this by +default when `repr(C)` is not used). These numbers are not arbitrary; the application binary interface (ABI) says what they should be. In the x86-64 [psABI] (processor-specific ABI) for System V (Unix & Linux), _Figure 3.1: Scalar Types_ tells us exactly how primitives should be represented: -| C type | Rust equivalent | `sizeof` | Alignment (bytes) | -| ---------------- | --------------- | -------- | ----------------- | -| `char` | `i8` | 1 | 1 | -| `unsigned char` | `u8` | 1 | 1 | -| `short` | `i16` | 2 | 2 | -| `unsigned short` | `u16` | 2 | 2 | -| `long` | `i64` | 8 | 8 | -| `unsigned long` | `u64` | 8 | 8 | +| C type | Rust equivalent | `sizeof` | Alignment (bytes) | +| -------------------- | --------------- | -------- | ----------------- | +| `char` | `i8` | 1 | 1 | +| `unsigned char` | `u8` | 1 | 1 | +| `short` | `i16` | 2 | 2 | +| **`unsigned short`** | **`u16`** | **2** | **2** | +| `long` | `i64` | 8 | 8 | +| **`unsigned long`** | **`u64`** | **8** | **8** | The ABI only specifies C types, but Rust follows the same definitions both for compatibility and for the performance benefits. # The Incorrect Alignment Problem -It is easy to imagine that if two implementations disagree on the alignment of a data -type, they would not be able to reliably share data containing that type. Well... +If two implementations disagree on the alignment of a data type, they cannot reliably +share data containing that type. Rust had inconsistent alignment for 128-bit types: -```rust= +```rust println!("alignment of i128: {}", align_of::()); ``` -```text= +```text // rustc 1.76.0 alignment of i128: 8 ``` -```c= +```c printf("alignment of __int128: %zu\n", _Alignof(__int128)); ``` -```text= +```text // gcc 13.2 alignment of __int128: 16 @@ -113,8 +114,8 @@ alignment of __int128: 16 alignment of __int128: 16 ``` -Looks like Rust disagrees![^align-godbolt] Looking back at the [psABI], we can see that -Rust indeed is in the wrong here: +([Godbolt link][align-godbolt]) Looking back at the [psABI], we can see that Rust has +the wrong alignment here: | C type | Rust equivalent | `sizeof` | Alignment (bytes) | | ------------------- | --------------- | -------- | ----------------- | @@ -125,7 +126,7 @@ It turns out this isn't because of something that Rust is actively doing incorre layout of primitives comes from the LLVM codegen backend used by both Rust and Clang, among other languages, and it has the alignment for `i128` hardcoded to 8 bytes. -Clang does not have this issue only because of a workaround, where the alignment is +Clang uses the correct alignment only because of a workaround, where the alignment is manually set to 16 bytes before handing the type to LLVM. This fixes the layout issue but has been the source of some other minor problems.[^f128-segfault][^va-segfault] Rust does no such manual adjustement, hence the issue reported at @@ -133,13 +134,14 @@ Rust does no such manual adjustement, hence the issue reported at # The Calling Convention Problem -It happens that there an additional problem: LLVM does not always do the correct thing -when passing 128-bit integers as function arguments. This was a [known issue in LLVM], -before its [relevance to Rust was discovered]. +There is an additional problem: LLVM does not always do the correct thing when passing +128-bit integers as function arguments. This was a [known issue in LLVM], before its +[relevance to Rust was discovered]. -When calling a function, the arguments get passed in registers until there are no more -slots, then they get "spilled" to the stack. The ABI tells us what to do here as well, -in the section _3.2.3 Parameter Passing_: +When calling a function, the arguments get passed in registers (special storage +locations within the CPU) until there are no more slots, then they get "spilled" to +the stack (the program's memory). The ABI tells us what to do here as well, in the +section _3.2.3 Parameter Passing_: > Arguments of type `__int128` offer the same operations as INTEGERs, yet they do not > fit into one general purpose register but require two registers. For classification @@ -159,12 +161,11 @@ example, inline assembly is used to call `foo(0xaf, val, val, val)` with `val` a `0x0x11223344556677889900aabbccddeeff`. x86-64 uses the registers `rdi`, `rsi`, `rdx`, `rcx`, `r8`, and `r9` to pass function -arguments, in that order (you guessed it, this is also in the ABI). Each argument -fits a word (64 bits), and anything that doesn't fit gets `push`ed to the -stack. +arguments, in that order (you guessed it, this is also in the ABI). Each register +fits a word (64 bits), and anything that doesn't fit gets `push`ed to the stack. -```c= -/* full example at https://godbolt.org/z/zGaK1T96c */ +```c +/* full example at */ /* to see the issue, we need a padding value to "mess up" argument alignment */ void foo(char pad, __int128 a, __int128 b, __int128 c) { @@ -176,7 +177,9 @@ void foo(char pad, __int128 a, __int128 b, __int128 c) { int main() { asm( - "movl $0xaf, %edi \n\t" /* 1st slot (edi): padding char */ + /* load arguments that fit in registers */ + "movl $0xaf, %edi \n\t" /* 1st slot (edi): padding char (`edi` is the + * same as `rdi`, just a smaller access size) */ "movq $0x9900aabbccddeeff, %rsi \n\t" /* 2rd slot (rsi): lower half of `a` */ "movq $0x1122334455667788, %rdx \n\t" /* 3nd slot (rdx): upper half of `a` */ "movq $0x9900aabbccddeeff, %rcx \n\t" /* 4th slot (rcx): lower half of `b` */ @@ -187,6 +190,7 @@ int main() { /* reuse our stored registers to load the stack */ "pushq %rdx \n\t" /* upper half of `c` gets passed on the stack */ "pushq %rsi \n\t" /* lower half of `c` gets passed on the stack */ + "call foo \n\t" /* call the function */ "addq $16, %rsp \n\t" /* reset the stack */ ); @@ -209,15 +213,17 @@ But running with Clang 17 prints: 0x11223344556677889900aabbccddeeff 0x11223344556677889900aabbccddeeff 0x9900aabbccddeeffdeadbeef4c0ffee0 +//^^^^^^^^^^^^^^^^ this should be the lower half +// ^^^^^^^^^^^^^^^^ look familiar? ``` Surprise! This illustrates the second problem: LLVM expects an `i128` to be passed half in a -register and half on the stack, but this is not allowed by the ABI. +register and half on the stack when possible, but this is not allowed by the ABI. -Since this comes from LLVM and has no reasonable workaround, this is a problem in -both Clang and Rust. +Since the behavior comes from LLVM and has no reasonable workaround, this is a +problem in both Clang and Rust. # Solutions @@ -231,17 +237,28 @@ Both of these changes made it into LLVM 18, meaning all relevant ABI issues will resolved in both Clang and Rust that use this version (Clang 18 and Rust 1.78 when using the bundled LLVM). -However, `rustc` can also use the version of LLVM installed in the system rather than a -bundled version, which may be older. To mitigate the change of problems from differing +However, `rustc` can also use the version of LLVM installed on the system rather than a +bundled version, which may be older. To mitigate the chance of problems from differing alignment with the same `rustc` version, [a proposal] was introduced to manually -correct the alignment, like Clang has been doing. This was implemented by Matthew Maurer +correct the alignment like Clang has been doing. This was implemented by Matthew Maurer in [#11672]. +Since these changes, Rust now produces the correct alignment: + +```rust +println!("alignment of i128: {}", align_of::()); +``` + +```text +// rustc 1.77.0 +alignment of i128: 16 +``` + As mentioned above, part of the reason for an ABI to specify the alignment of a datatype is because it is more efficient on that architecture. We actually got to see that firsthand: the [initial performance run] with the manual alignment change showed nontrivial improvements to compiler performance (which relies heavily on 128-bit -integers to store integer literals). The downside of increasing alignment is that +integers to work with integer literals). The downside of increasing alignment is that composite types do not always fit together as nicely in memory, leading to an increase in usage. Unfortunately this meant some of the performance wins needed to be sacrificed to avoid an increased memory footprint. @@ -252,7 +269,7 @@ to avoid an increased memory footprint. [D28990]: https://reviews.llvm.org/D28990 [D86310]: https://reviews.llvm.org/D86310 -# Compatibilty +# Compatibility The most imporant question is how compatibility changed as a result of these fixes. In short, `i128` and `u128` with Rust using LLVM 18 (the default version starting with @@ -279,20 +296,21 @@ are summarized in the table below: # Effects & Future Steps -As mentioned in the introduction, most users will see no effects of this change +As mentioned in the introduction, most users will notice no effects of this change unless you are already doing something questionable with these types. Starting with Rust 1.77, it will be reasonably safe to start experimenting with 128-bit integers in FFI, with some more certainty coming with the LLVM update in 1.78. There is [ongoing discussion] about lifting the lint in an upcoming -version, but it remains to be seen when that will actually happen. +version, but we want to be cautious and avoid introducing silent breakage for users +whose Rust compiler may be built with an older LLVM. [relevance to Rust was discovered]: https://github.com/rust-lang/rust/issues/54341#issuecomment-1064729606 [initial performance run]: https://github.com/rust-lang/rust/pull/116672/#issuecomment-1858600381 [known issue in llvm]: https://github.com/llvm/llvm-project/issues/41784 [psabi]: https://www.uclibc.org/docs/psABI-x86_64.pdf [ongoing discussion]: https://github.com/rust-lang/lang-team/issues/255 -[^align-godbolt]: https://godbolt.org/z/h94Ge1vMW -[^composite-playground]: https://play.rust-lang.org/?version=beta&mode=debug&edition=2021&gist=c263ae121912284d3ba553290caa6778 +[align-godbolt]: https://godbolt.org/z/h94Ge1vMW +[composite-playground]: https://play.rust-lang.org/?version=beta&mode=debug&edition=2021&gist=52f349bdea92bf724bc453f37dbd32ea [^va-segfault]: https://github.com/llvm/llvm-project/issues/20283 [^f128-segfault]: https://bugs.llvm.org/show_bug.cgi?id=50198 From 1bed91226a0801fb57053d42d641a0791bf65aae Mon Sep 17 00:00:00 2001 From: Yuxuan Jiang Date: Sun, 31 Mar 2024 09:44:09 +0800 Subject: [PATCH 0343/1024] Fix pr number typo in 2024-03-30-i128-layout-update.md --- posts/2024-03-30-i128-layout-update.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/2024-03-30-i128-layout-update.md b/posts/2024-03-30-i128-layout-update.md index 8f7462e1c..f9574379f 100644 --- a/posts/2024-03-30-i128-layout-update.md +++ b/posts/2024-03-30-i128-layout-update.md @@ -241,7 +241,7 @@ However, `rustc` can also use the version of LLVM installed on the system rather bundled version, which may be older. To mitigate the chance of problems from differing alignment with the same `rustc` version, [a proposal] was introduced to manually correct the alignment like Clang has been doing. This was implemented by Matthew Maurer -in [#11672]. +in [#116672]. Since these changes, Rust now produces the correct alignment: @@ -264,7 +264,7 @@ in usage. Unfortunately this meant some of the performance wins needed to be sac to avoid an increased memory footprint. [a proposal]: https://github.com/rust-lang/compiler-team/issues/683 -[#11672]: https://github.com/rust-lang/rust/pull/116672/ +[#116672]: https://github.com/rust-lang/rust/pull/116672/ [D158169]: https://reviews.llvm.org/D158169 [D28990]: https://reviews.llvm.org/D28990 [D86310]: https://reviews.llvm.org/D86310 From 2891cda1789bc45565ed8f391a86eabbe567694d Mon Sep 17 00:00:00 2001 From: Trevor Gross Date: Sun, 31 Mar 2024 18:59:12 -0500 Subject: [PATCH 0344/1024] Fix a small typo in the i128 blog --- posts/2024-03-30-i128-layout-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-03-30-i128-layout-update.md b/posts/2024-03-30-i128-layout-update.md index f9574379f..f39b9c65d 100644 --- a/posts/2024-03-30-i128-layout-update.md +++ b/posts/2024-03-30-i128-layout-update.md @@ -158,7 +158,7 @@ section _3.2.3 Parameter Passing_: We can try this out by implementing the calling convention manually. In the below C example, inline assembly is used to call `foo(0xaf, val, val, val)` with `val` as -`0x0x11223344556677889900aabbccddeeff`. +`0x11223344556677889900aabbccddeeff`. x86-64 uses the registers `rdi`, `rsi`, `rdx`, `rcx`, `r8`, and `r9` to pass function arguments, in that order (you guessed it, this is also in the ABI). Each register From 3ba157a86fa8074297c99520fad5bc541dc17ab8 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Sun, 31 Mar 2024 19:31:23 -0700 Subject: [PATCH 0345/1024] Post March 2024 council representative selections --- ...04-01-leadership-council-repr-selection.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 posts/inside-rust/2024-04-01-leadership-council-repr-selection.md diff --git a/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md b/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md new file mode 100644 index 000000000..02bf23065 --- /dev/null +++ b/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md @@ -0,0 +1,25 @@ +--- +layout: post +title: "Leadership Council March Representative Selections" +author: Eric Huss +team: Leadership Council +--- + +The March 2024 selections for [Leadership Council] representatives have been finalized. All teams chose their existing representatives to continue for a second term. The representatives are: + +* [Compiler] — [Eric Holk] +* [Crates.io] — [Carol Nichols] +* [Devtools] — [Eric Huss] +* [Launching Pad] — [Jonathan Pallant] + +[Leadership Council]: https://www.rust-lang.org/governance/teams/leadership-council +[compiler]: https://www.rust-lang.org/governance/teams/compiler +[crates.io]: https://www.rust-lang.org/governance/teams/crates-io +[devtools]: https://www.rust-lang.org/governance/teams/dev-tools +[launching pad]: https://forge.rust-lang.org/governance/council.html#the-launching-pad-top-level-team +[Eric Holk]: https://github.com/eholk +[Carol Nichols]: https://github.com/carols10cents +[Eric Huss]: https://github.com/ehuss +[Jonathan Pallant]: https://github.com/jonathanpallant + +Thanks to everyone who participated in the process! The next representative selections will be in September for the other half of the Council. From 9f1ff1ca4853f925ce1136c8ba493a6cbf5542b7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:56:39 +0200 Subject: [PATCH 0346/1024] Lock file maintenance (#1298) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 366 ++++++++++++++++++++++++++--------------------------- 1 file changed, 182 insertions(+), 184 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 499a9f221..c16b90265 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -52,9 +52,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -111,15 +111,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -168,9 +168,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "block-buffer" @@ -208,9 +208,9 @@ checksum = "3108fe6fe7ac796fb7625bdde8fa2b67b5a7731496251ca57c7b8cadd78a16a1" [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "byteorder" @@ -220,18 +220,15 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "libc", -] +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" [[package]] name = "cfg-if" @@ -256,7 +253,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -276,9 +273,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.18" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -286,34 +283,34 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.18" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.10.0", + "strsim 0.11.0", "terminal_size", ] [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.57", ] [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "color-eyre" @@ -354,7 +351,7 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6751998a48e2327773c95f6f8e03c6e77c0156ce539d74c17d2199ff3d05e197" dependencies = [ - "clap 4.4.18", + "clap 4.5.4", "derive_builder", "entities", "memchr", @@ -385,9 +382,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", ] @@ -535,9 +532,9 @@ dependencies = [ [[package]] name = "deunicode" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a" +checksum = "b6e854126756c496b8c81dec88f9a706b15b875c5849d4097a3854476b9fdf94" [[package]] name = "digest" @@ -551,9 +548,9 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "encoding_rs" @@ -725,9 +722,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "h2" -version = "0.3.24" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" dependencies = [ "bytes", "fnv", @@ -798,9 +795,9 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" @@ -813,15 +810,15 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.4" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -883,9 +880,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.59" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -928,9 +925,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.2.1" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433de089bd45971eecf4668ee0ee8f4cec17db4f8bd8f7bc3197a6ce37aa7d9b" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown", @@ -938,15 +935,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "js-sys" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -959,18 +956,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.152" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "line-wrap" -version = "0.1.1" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" -dependencies = [ - "safemem", -] +checksum = "dd1bc4d24ad230d21fb898d1116b1801d7adfc449d42026475862ab48b11e70e" [[package]] name = "linked-hash-map" @@ -1008,9 +1002,9 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "mime" @@ -1030,9 +1024,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] @@ -1067,11 +1061,17 @@ dependencies = [ "version_check", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -1082,7 +1082,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.4", + "hermit-abi 0.3.9", "libc", ] @@ -1170,9 +1170,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.6" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f200d8d83c44a45b21764d1916299752ca035d15ecd46faca3e9a2a2bf6ad06" +checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" dependencies = [ "memchr", "thiserror", @@ -1181,9 +1181,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.6" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd6ab1236bbdb3a49027e920e693192ebfe8913f6d60e294de57463a493cfde" +checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026" dependencies = [ "pest", "pest_generator", @@ -1191,22 +1191,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.6" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a31940305ffc96863a735bef7c7994a00b325a7138fdbc5bda0f1a0476d3275" +checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.57", ] [[package]] name = "pest_meta" -version = "2.7.6" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7ff62f5259e53b78d1af898941cdcdccfae7385cf7d793a6e55de5d05bb4b7d" +checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293" dependencies = [ "once_cell", "pest", @@ -1215,29 +1215,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.57", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -1247,15 +1247,15 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "plist" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" +checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9" dependencies = [ "base64", "indexmap", @@ -1303,9 +1303,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -1427,44 +1427,39 @@ dependencies = [ "aho-corasick", "memchr", "regex-automata", - "regex-syntax 0.8.2", + "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b7fa1134405e2ec9353fd416b17f8dacd46c473d7d3fd1cf202706a14eb792a" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.7.5" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin", "untrusted", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1475,11 +1470,11 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustix" -version = "0.38.30" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", @@ -1519,15 +1514,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" - -[[package]] -name = "safemem" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "same-file" @@ -1599,7 +1588,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.57", ] [[package]] @@ -1735,18 +1724,18 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1767,6 +1756,12 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + [[package]] name = "structopt" version = "0.3.26" @@ -1804,9 +1799,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" dependencies = [ "proc-macro2", "quote", @@ -1815,9 +1810,9 @@ dependencies = [ [[package]] name = "syntect" -version = "5.1.0" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" +checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1" dependencies = [ "bincode", "bitflags 1.3.2", @@ -1827,8 +1822,9 @@ dependencies = [ "once_cell", "onig", "plist", - "regex-syntax 0.7.5", + "regex-syntax", "serde", + "serde_derive", "serde_json", "thiserror", "walkdir", @@ -1856,29 +1852,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.57", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -1886,12 +1882,13 @@ dependencies = [ [[package]] name = "time" -version = "0.3.31" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" +checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" dependencies = [ "deranged", "itoa", + "num-conv", "powerfmt", "serde", "time-core", @@ -1906,10 +1903,11 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" +checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" dependencies = [ + "num-conv", "time-core", ] @@ -1954,7 +1952,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.57", ] [[package]] @@ -1969,9 +1967,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -2118,18 +2116,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" [[package]] name = "unicode-width" @@ -2198,9 +2196,9 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -2273,9 +2271,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2283,24 +2281,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.57", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2308,22 +2306,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.57", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "winapi" @@ -2362,7 +2360,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -2380,7 +2378,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -2400,17 +2398,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -2421,9 +2419,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -2433,9 +2431,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -2445,9 +2443,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -2457,9 +2455,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -2469,9 +2467,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -2481,9 +2479,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -2493,9 +2491,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "xdg" From 50969e9c734d347312e42dc77581db9f35c7fdd1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:56:55 +0200 Subject: [PATCH 0347/1024] Update Rust crate tokio to v1.37.0 (#1293) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- serve/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c16b90265..8f96c1917 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1928,9 +1928,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", diff --git a/serve/Cargo.toml b/serve/Cargo.toml index e5985a130..3bb3c607e 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -8,4 +8,4 @@ edition = "2021" [dependencies] blog = { path = ".." } warpy = "=0.3.50" -tokio = "=1.36.0" +tokio = "=1.37.0" From f5584a9ab83ce17953216b51c6d05a1f85fa518a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:57:14 +0200 Subject: [PATCH 0348/1024] Update dependency rust to v1.77.1 (#1292) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e3e2ac64e..c4404a6b2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.77.0 + RUST_VERSION: 1.77.1 jobs: lint: From 939b85b813213eef4bbab2be5d86c4b421470628 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:57:37 +0200 Subject: [PATCH 0349/1024] Update Rust crate chrono to v0.4.37 (#1290) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8f96c1917..c6007de1c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -244,9 +244,9 @@ checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" [[package]] name = "chrono" -version = "0.4.35" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", diff --git a/Cargo.toml b/Cargo.toml index dea92d306..a12ef6135 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ comrak = "=0.21.0" rayon = "=1.10.0" regex = "=1.10.4" sass-rs = "=0.2.2" -chrono = "=0.4.35" +chrono = "=0.4.37" [workspace] members = ["serve"] From 7349f8514f5703b2b30543f7a12e9dae89e902ad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 12:58:28 +0200 Subject: [PATCH 0350/1024] Update Rust crate comrak to v0.22.0 (#1294) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c6007de1c..b11d83ffc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -347,9 +347,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "comrak" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6751998a48e2327773c95f6f8e03c6e77c0156ce539d74c17d2199ff3d05e197" +checksum = "d0436149c9f6a1935b13306206c739b1ba84fa81f551b5eb87fc2ca7a13700af" dependencies = [ "clap 4.5.4", "derive_builder", diff --git a/Cargo.toml b/Cargo.toml index a12ef6135..9d412dbe7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ serde = "=1.0.197" serde_derive = "=1.0.197" serde_yaml = "=0.9.33" serde_json = "=1.0.115" -comrak = "=0.21.0" +comrak = "=0.22.0" rayon = "=1.10.0" regex = "=1.10.4" sass-rs = "=0.2.2" From 0a527eb722cdb20d4d8ffb34bb45f09d72ac2233 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 13:00:23 +0200 Subject: [PATCH 0351/1024] Bump h2 from 0.3.24 to 0.3.26 (#1300) Bumps [h2](https://github.com/hyperium/h2) from 0.3.24 to 0.3.26. - [Release notes](https://github.com/hyperium/h2/releases) - [Changelog](https://github.com/hyperium/h2/blob/v0.3.26/CHANGELOG.md) - [Commits](https://github.com/hyperium/h2/compare/v0.3.24...v0.3.26) --- updated-dependencies: - dependency-name: h2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b11d83ffc..679e3f1ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -722,9 +722,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "h2" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbd2820c5e49886948654ab546d0688ff24530286bdcf8fca3cefb16d4618eb" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", From ef9c480d14d781a61adc2815fd2cd77bd665d5fd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 13:00:59 +0200 Subject: [PATCH 0352/1024] Update Rust crate warpy to v0.3.53 (#1297) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 120 +++++++++++++++++++++++++++-------------------- serve/Cargo.toml | 2 +- 2 files changed, 70 insertions(+), 52 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 679e3f1ec..7ff821edb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -136,6 +136,12 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" + [[package]] name = "bincode" version = "1.3.3" @@ -731,7 +737,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.12", "indexmap", "slab", "tokio", @@ -766,10 +772,10 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" dependencies = [ - "base64", + "base64 0.21.7", "bytes", "headers-core", - "http", + "http 0.2.12", "httpdate", "mime", "sha1", @@ -781,7 +787,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" dependencies = [ - "http", + "http 0.2.12", ] [[package]] @@ -825,6 +831,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.6" @@ -832,7 +849,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http", + "http 0.2.12", "pin-project-lite", ] @@ -865,7 +882,7 @@ dependencies = [ "futures-core", "futures-util", "h2", - "http", + "http 0.2.12", "http-body", "httparse", "httpdate", @@ -1052,7 +1069,7 @@ dependencies = [ "bytes", "encoding_rs", "futures-util", - "http", + "http 0.2.12", "httparse", "log", "memchr", @@ -1158,7 +1175,7 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" dependencies = [ - "base64", + "base64 0.21.7", "serde", ] @@ -1257,7 +1274,7 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d34169e64b3c7a80c8621a48adaf44e0cf62c78a9b25dd9dd35f1881a17cf9" dependencies = [ - "base64", + "base64 0.21.7", "indexmap", "line-wrap", "quick-xml", @@ -1483,32 +1500,42 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.10" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c" dependencies = [ "log", "ring", + "rustls-pki-types", "rustls-webpki", - "sct", + "subtle", + "zeroize", ] [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64", + "base64 0.22.0", + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" + [[package]] name = "rustls-webpki" -version = "0.101.7" +version = "0.102.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" dependencies = [ "ring", + "rustls-pki-types", "untrusted", ] @@ -1561,16 +1588,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "serde" version = "1.0.197" @@ -1786,6 +1803,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + [[package]] name = "syn" version = "1.0.109" @@ -1957,30 +1980,20 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" dependencies = [ "rustls", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" -dependencies = [ - "futures-core", - "pin-project-lite", + "rustls-pki-types", "tokio", ] [[package]] name = "tokio-tungstenite" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" dependencies = [ "futures-util", "log", @@ -2058,14 +2071,14 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.20.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" dependencies = [ "byteorder", "bytes", "data-encoding", - "http", + "http 1.1.0", "httparse", "log", "rand", @@ -2215,15 +2228,15 @@ dependencies = [ [[package]] name = "warp" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e92e22e03ff1230c03a1a8ee37d2f89cd489e2e541b7550d6afad96faed169" +checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" dependencies = [ "bytes", "futures-channel", "futures-util", "headers", - "http", + "http 0.2.12", "hyper", "log", "mime", @@ -2238,7 +2251,6 @@ dependencies = [ "serde_urlencoded", "tokio", "tokio-rustls", - "tokio-stream", "tokio-tungstenite", "tokio-util", "tower-service", @@ -2247,9 +2259,9 @@ dependencies = [ [[package]] name = "warpy" -version = "0.3.50" +version = "0.3.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a20ef8af950cb7486ed69f077db19f6e1cab9c3ebc04356097a622f51fa8fef" +checksum = "cd593f880d23e5db7754791e5dddd39089aaf25b35b6869ff9d667270e17431c" dependencies = [ "build_html", "chrono", @@ -2518,3 +2530,9 @@ checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ "time", ] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/serve/Cargo.toml b/serve/Cargo.toml index 3bb3c607e..b803188b1 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" [dependencies] blog = { path = ".." } -warpy = "=0.3.50" +warpy = "=0.3.53" tokio = "=1.37.0" From e22aec2a1de57407095a1ed3696913309fca6545 Mon Sep 17 00:00:00 2001 From: Yosh Date: Mon, 8 Apr 2024 13:50:08 +0200 Subject: [PATCH 0353/1024] Create 2024-04-10-updates-to-rusts-wasi-targets.md --- ...024-04-10-updates-to-rusts-wasi-targets.md | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 posts/2024-04-10-updates-to-rusts-wasi-targets.md diff --git a/posts/2024-04-10-updates-to-rusts-wasi-targets.md b/posts/2024-04-10-updates-to-rusts-wasi-targets.md new file mode 100644 index 000000000..3826ef906 --- /dev/null +++ b/posts/2024-04-10-updates-to-rusts-wasi-targets.md @@ -0,0 +1,109 @@ +--- +layout: post +title: Changes to Rust's WASI targets +author: Yosh Wuyts +--- + +[WASI 0.2 was recently +stabilized](https://bytecodealliance.org/articles/WASI-0.2), and Rust has begun +implementing first-class support for it in the form of a dedicated new target. +In this post we'll discuss the introduction of the new target, what that means +for the older targets, and the schedule by which we plan to roll out these +changes. + +## Introducing `wasm32-wasip2` + +After nearly five years of work the [WASI 0.2 specification](https://wasi.dev) +was recently stabilized. This work builds on [WebAssembly +Components](https://component-model.bytecodealliance.org) (think: strongly-typed +ABI for Wasm), providing standard interfaces for things like asynchronous IO, +networking, and HTTP. This will finally make it possible to write asynchronous +networked services on top of WASI, something which wasn't possible using WASI +0.1. + +People interested in compiling Rust code to WASI 0.2 today are able to do so +using the [cargo-component](https://github.com/bytecodealliance/cargo-component) +tool. This tool is able to take WASI 0.1 binaries, and transform them to WASI 0.2 +Components using a shim. It also provides native support for common cargo +commands such as `cargo build`, `cargo test`, and `cargo run`. While it +introduces some inefficiencies because of the additional translation layer, in +practice this already works really well and people should be enough able to get +started with WASI 0.2 development. + +We're however keen to begin making that translation layer obsolete. And for +that reason we're happy to share that Rust has made its first steps towards +that with the introduction of the [tier +3](https://doc.rust-lang.org/rustc/platform-support.html#tier-3) `wasm32-wasip2` +target landing in Rust 1.78. **This will initially miss a lot of expected** +**features such as stdlib support, and we don't recommend people use this target** +**quite yet.** But as we fill in those missing features over the coming months, we +aim to eventually hit meet the criteria to become a tier 2 target, at which +point the `wasm32-wasip2` target would be considered ready for general use. This +work will happen through 2024, and we expect for this to land before the end of +the calendar year. + +## Renaming `wasm32-wasi` to `wasm32-wasip1` + +The original name for what we now call WASI 0.1 was "WebAssembly System +Interface, snapshot 1". Rust shipped support for this in 2019, and we did so +knowing the target would likely undergo significant changes in the future. With +the knowledge we have today though, we would not have chosen to introduce the +"WASI, snapshot 1" target as `wasm32-wasi`. We should have instead chosen to add +some suffix to the initial target triple so that the eventual stable WASI 1.0 +target can just be called `wasm32-wasi`. + +In anticipation of both an eventual WASI 1.0 target, and to preserve consistency +between target names, we'll begin rolling out a name change to the existing WASI +0.1 target. Starting in Rust 1.78 (May 2nd, 2024) a new `wasm32-wasip1` target +will become available. Starting Rust 1.81 we will begin warning existing users +of `wasm32-wasi` to migrate to `wasm32-wasip1`. And finally in Rust 1.84 +(January 9th, 2025) the `wasm32-wasi` target will no shipped on the stable +release channel. This will provide an 8 month transition period for projects to +switch to the new target name when they update their Rust toolchains. + +The name `wasip1` can be read as either "WASI (zero) point one" or "WASI preview +one". The official specification uses the "preview" moniker, however in most +communication the form "WASI 0.1" is now preferred. This target triple was +chosen because it not only maps to both terms, but also more closely resembles +the target terminology used in [other programming +languages](https://go.dev/blog/wasi). This is something the WASI Preview 2 +specification [also makes note +of](https://github.com/WebAssembly/WASI/tree/f45e72e5294e990c23d548eea32fd35c80525fd6/preview2#introduction). + +## Timeline + +This table provides the dates and cut-offs for the target rename from +`wasm32-wasi` to `wasm32-wasip1`. The dates in this table do not apply to the +newly-introduced `wasm32-wasi-preview1-threads` target; this will be renamed to +`wasm32-wasip1-threads` in Rust 1.78 without going through a transition period. +The tier 3 `wasm32-wasip2` target will also be made available in Rust 1.78. + +| date | Rust Stable | Rust Beta | Rust Nightly | Notes | +| ---------- | ----------- | --------- | ------------ | ---------------------------------------- | +| 2024-02-08 | 1.76 | 1.77 | 1.78 | `wasm32-wasip1` available on nightly | +| 2024-03-21 | 1.77 | 1.78 | 1.79 | `wasm32-wasip1` available on beta | +| 2024-05-02 | 1.78 | 1.79 | 1.80 | `wasm32-wasip1` available on stable | +| 2024-06-13 | 1.79 | 1.80 | 1.81 | warn if `wasm32-wasi` is used on nightly | +| 2024-07-25 | 1.80 | 1.81 | 1.82 | warn if `wasm32-wasi` is used on beta | +| 2024-09-05 | 1.81 | 1.82 | 1.83 | warn if `wasm32-wasi` is used on stable | +| 2024-10-17 | 1.82 | 1.83 | 1.84 | `wasm32-wasi` unavailable on nightly | +| 2024-11-28 | 1.83 | 1.84 | 1.85 | `wasm32-wasi` unavailable on beta | +| 2025-01-09 | 1.84 | 1.85 | 1.86 | `wasm32-wasi` unavailable on stable | + +## Conclusion + +In this post we've discussed the upcoming updates to Rust's WASI targets. Come +Rust 1.78 the `wasm32-wasip1` (tier 2) and `wasm32-wasip2` (tier 3) targets will +be added. In Rust 1.81 we will begin warning if `wasm32-wasi` is being used. And in Rust 1.84, the existing `wasm32-wasi` target will be removed. +Users will have 8 months to switch to the new target name when they update their +Rust toolchains. + +The `wasm32-wasip2` target marks the start of native support for WASI 0.2. In +order to target it today from Rust, people are encouraged to use +[cargo-component](https://github.com/bytecodealliance/cargo-component) tool +instead. The plan is to eventually graduate `wasm32-wasip2` to a tier-2 target, +at which point `cargo-component` will be upgraded to support it natively instead. + +With WASI 0.2 finally stable, it's an exciting time for WebAssembly development. +We're happy for Rust to begin implementing native support for WASI 0.2, and +we're excited for what this will enable people to build. From f2038658247edafbb69c73f264512eef756742c7 Mon Sep 17 00:00:00 2001 From: Yosh Date: Mon, 8 Apr 2024 14:01:16 +0200 Subject: [PATCH 0354/1024] Update posts/2024-04-10-updates-to-rusts-wasi-targets.md Co-authored-by: Christopher Serr --- posts/2024-04-10-updates-to-rusts-wasi-targets.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-04-10-updates-to-rusts-wasi-targets.md b/posts/2024-04-10-updates-to-rusts-wasi-targets.md index 3826ef906..fa85b0a4e 100644 --- a/posts/2024-04-10-updates-to-rusts-wasi-targets.md +++ b/posts/2024-04-10-updates-to-rusts-wasi-targets.md @@ -57,7 +57,7 @@ between target names, we'll begin rolling out a name change to the existing WASI 0.1 target. Starting in Rust 1.78 (May 2nd, 2024) a new `wasm32-wasip1` target will become available. Starting Rust 1.81 we will begin warning existing users of `wasm32-wasi` to migrate to `wasm32-wasip1`. And finally in Rust 1.84 -(January 9th, 2025) the `wasm32-wasi` target will no shipped on the stable +(January 9th, 2025) the `wasm32-wasi` target will no longer be shipped on the stable release channel. This will provide an 8 month transition period for projects to switch to the new target name when they update their Rust toolchains. From 5f13d05eb9cac95099f5ca4d231e1e3d1de28089 Mon Sep 17 00:00:00 2001 From: Yosh Date: Mon, 8 Apr 2024 20:13:37 +0200 Subject: [PATCH 0355/1024] Address feedback from review Co-Authored-By: Wesley Wiser --- ...2024-04-10-updates-to-rusts-wasi-targets.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/posts/2024-04-10-updates-to-rusts-wasi-targets.md b/posts/2024-04-10-updates-to-rusts-wasi-targets.md index fa85b0a4e..de1743cb4 100644 --- a/posts/2024-04-10-updates-to-rusts-wasi-targets.md +++ b/posts/2024-04-10-updates-to-rusts-wasi-targets.md @@ -55,11 +55,12 @@ target can just be called `wasm32-wasi`. In anticipation of both an eventual WASI 1.0 target, and to preserve consistency between target names, we'll begin rolling out a name change to the existing WASI 0.1 target. Starting in Rust 1.78 (May 2nd, 2024) a new `wasm32-wasip1` target -will become available. Starting Rust 1.81 we will begin warning existing users -of `wasm32-wasi` to migrate to `wasm32-wasip1`. And finally in Rust 1.84 -(January 9th, 2025) the `wasm32-wasi` target will no longer be shipped on the stable -release channel. This will provide an 8 month transition period for projects to -switch to the new target name when they update their Rust toolchains. +will become available. Starting Rust 1.81 (September 5th, 2024) we will begin +warning existing users of `wasm32-wasi` to migrate to `wasm32-wasip1`. And +finally in Rust 1.84 (January 9th, 2025) the `wasm32-wasi` target will no longer +be shipped on the stable release channel. This will provide an 8 month +transition period for projects to switch to the new target name when they update +their Rust toolchains. The name `wasip1` can be read as either "WASI (zero) point one" or "WASI preview one". The official specification uses the "preview" moniker, however in most @@ -94,9 +95,10 @@ The tier 3 `wasm32-wasip2` target will also be made available in Rust 1.78. In this post we've discussed the upcoming updates to Rust's WASI targets. Come Rust 1.78 the `wasm32-wasip1` (tier 2) and `wasm32-wasip2` (tier 3) targets will -be added. In Rust 1.81 we will begin warning if `wasm32-wasi` is being used. And in Rust 1.84, the existing `wasm32-wasi` target will be removed. -Users will have 8 months to switch to the new target name when they update their -Rust toolchains. +be added. In Rust 1.81 we will begin warning if `wasm32-wasi` is being used. And +in Rust 1.84, the existing `wasm32-wasi` target will be removed. This will free +up `wasm32-wasi` to eventually be used for a WASI 1.0 target. Users will have 8 +months to switch to the new target name when they update their Rust toolchains. The `wasm32-wasip2` target marks the start of native support for WASI 0.2. In order to target it today from Rust, people are encouraged to use From f2baed3cb99b5bc5858a64c204de346fd52da415 Mon Sep 17 00:00:00 2001 From: Yosh Date: Mon, 8 Apr 2024 20:45:52 +0200 Subject: [PATCH 0356/1024] unbury the lead Co-Authored-By: Ryan Levick --- posts/2024-04-10-updates-to-rusts-wasi-targets.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/posts/2024-04-10-updates-to-rusts-wasi-targets.md b/posts/2024-04-10-updates-to-rusts-wasi-targets.md index de1743cb4..079077930 100644 --- a/posts/2024-04-10-updates-to-rusts-wasi-targets.md +++ b/posts/2024-04-10-updates-to-rusts-wasi-targets.md @@ -7,9 +7,18 @@ author: Yosh Wuyts [WASI 0.2 was recently stabilized](https://bytecodealliance.org/articles/WASI-0.2), and Rust has begun implementing first-class support for it in the form of a dedicated new target. -In this post we'll discuss the introduction of the new target, what that means -for the older targets, and the schedule by which we plan to roll out these -changes. +Rust 1.78 will introduce new `wasm32-wasip1` (tier 2) and `wasm32-wasip2` (tier +3) targets. `wasm32-wasip1` is an effective rename of the existing `wasm32-wasi` +target, freeing the target name up for an eventual WASI 1.0 release. **Starting +Rust 1.78 (May 2nd, 2024), users of WASI 0.1 are encouraged to begin migrating +to the new `wasm32-wasip1` target before the existing `wasm32-wasi` target is +removed in Rust 1.84 (January 5th, 2025).** + +In this post we'll discuss the introduction of the new targets, the motivation +behind it, what that means for the existing WASI targets, and a detailed +schedule for these changes. This post is about the WASI targets only; the +existing `wasm32-unknown-unknown` and `wasm32-unknown-emscripten` targets are +unaffected by any changes in this post. ## Introducing `wasm32-wasip2` From a0752f126db394e987981037441819e1ae0a6fc8 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Tue, 9 Apr 2024 01:04:25 +0200 Subject: [PATCH 0357/1024] add cve-2024-24576 blog post --- posts/2024-04-09-cve-2024-24576.md | 76 ++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 posts/2024-04-09-cve-2024-24576.md diff --git a/posts/2024-04-09-cve-2024-24576.md b/posts/2024-04-09-cve-2024-24576.md new file mode 100644 index 000000000..2168b0e64 --- /dev/null +++ b/posts/2024-04-09-cve-2024-24576.md @@ -0,0 +1,76 @@ +--- +layout: post +title: "Security advisory for the standard library (CVE-2024-24576)" +author: The Rust Security Response WG +--- + +The Rust Security Response WG was notified that the Rust standard library did +not properly escape arguments when invoking batch files (with the `bat` and +`cmd` extensions) on Windows using the [`Command`][1] API. An attacker able to +control the arguments passed to the spawned process could execute arbitrary +shell commands by bypassing the escaping. + +The severity of this vulnerability is **critical** if you are invoking batch +files on Windows with untrusted arguments. No other platform or use is +affected. + +This vulnerability is identified by CVE-2024-24576. + +## Overview + +The [`Command::arg`][2] and [`Command::args`][3] APIs state in their +documentation that the arguments will be passed to the spawned process as-is, +regardless of the content of the arguments, and will not be evaluated by a +shell. This means it should be safe to pass untrusted input as an argument. + +On Windows, the implementation of this is more complex than other platforms, +because the Windows API only provides a single string containing all the +arguments to the spawned process, and it's up to the spawned process to split +them. Most programs use the standard C run-time argv, which in practice results +in a mostly consistent way arguments are splitted. + +One exception though is `cmd.exe` (used among other things to execute batch +files), which has its own argument splitting logic. That forces the standard +library to implement custom escaping for arguments passed to batch files. +Unfortunately it was reported that our escaping logic was not thorough enough, +and it was possible to pass malicious arguments that would result in arbitrary +shell execution. + +## Mitigations + +Due to the complexity of `cmd.exe`, we didn't identify a solution that would +correctly escape arguments in all cases. To maintain our API guarantees, we +improved the robustness of the escaping code, and changed the `Command` API to +return an [`InvalidInput`][4] error when it cannot safely escape an argument. +This error will be emitted when spawning the process. + +The fix will be included in Rust 1.77.2, to be released later today. + +If you implement the escaping yourself or only handle trusted inputs, on +Windows you can also use the [`CommandExt::raw_arg`][5] method to bypass the +standard library's escaping logic. + +## Affected Versions + +All Rust versions before 1.77.2 on Windows are affected, if your code or one of +your dependencies executes batch files with untrusted arguments. Other +platforms or other uses on Windows are not affected. + +## Acknowledgments + +We want to thank RyotaK for responsibly disclosing this to us according to the +[Rust security policy][6], and Simon Sawicki (Grub4K) for identifying some of +the escaping rules we adopted in our fix. + +We also want to thank the members of the Rust project who helped us disclose +the vulnerability: Chris Denton for developing the fix; Mara Bos for reviewing +the fix; Pietro Albini for writing this advisory; Pietro Albini, Manish +Goregaokar and Josh Stone for coordinating this disclosure; Amanieu d'Antras +for advising during the disclosure. + +[1]: https://doc.rust-lang.org/std/process/struct.Command.html +[2]: https://doc.rust-lang.org/std/process/struct.Command.html#method.arg +[3]: https://doc.rust-lang.org/std/process/struct.Command.html#method.args +[4]: https://doc.rust-lang.org/std/io/enum.ErrorKind.html#variant.InvalidInput +[5]: https://doc.rust-lang.org/std/os/windows/process/trait.CommandExt.html#tymethod.raw_arg +[6]: https://www.rust-lang.org/policies/security From 69932fd6cb601b47641107d9aefa235a6f102058 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Tue, 9 Apr 2024 01:30:43 +0200 Subject: [PATCH 0358/1024] add post for 1.77.2 --- posts/2024-04-09-Rust-1.77.2.md | 47 +++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 posts/2024-04-09-Rust-1.77.2.md diff --git a/posts/2024-04-09-Rust-1.77.2.md b/posts/2024-04-09-Rust-1.77.2.md new file mode 100644 index 000000000..293e0666d --- /dev/null +++ b/posts/2024-04-09-Rust-1.77.2.md @@ -0,0 +1,47 @@ +--- +layout: post +title: "Announcing Rust 1.77.2" +author: The Rust Security Response WG +release: true +--- + +The Rust team has published a new point release of Rust, 1.77.2. Rust is a +programming language that is empowering everyone to build reliable and +efficient software. + +If you have a previous version of Rust installed via rustup, getting Rust +1.77.2 is as easy as: + +``` +rustup update stable +``` + +If you don't have it already, you can [get `rustup`][rustup] from the +appropriate page on our website. + +[rustup]: https://www.rust-lang.org/install.html + +## What's in 1.77.2 + +This release includes a fix for [CVE-2024-24576]. + +Before this release, the Rust standard library did not properly escape +arguments when invoking batch files (with the `bat` and `cmd` extensions) on +Windows using the [`Command`] API. An attacker able to control the arguments +passed to the spawned process could execute arbitrary shell commands by +bypassing the escaping. + +This vulnerability is **CRITICAL** if you are invoking batch files on Windows +with untrusted arguments. No other platform or use is affected. + +[You can learn more about the vulnerability in the dedicated +advisory.][advisory] + +[CVE-2024-24576]: https://www.cve.org/CVERecord?id=CVE-2024-24576 +[advisory]: https://blog.rust-lang.org/2024/04/09/cve-2024-24576.html +[`Command`]: https://doc.rust-lang.org/std/process/struct.Command.html + +### Contributors to 1.77.2 + +Many people came together to create Rust 1.77.2. We couldn't have done it +without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.77.1/) From 861355e4a089ed75631342ac4cb42a06d4b20d74 Mon Sep 17 00:00:00 2001 From: Yosh Date: Tue, 9 Apr 2024 14:55:36 +0200 Subject: [PATCH 0359/1024] Change WASI post date to 2024-04-09 --- ...asi-targets.md => 2024-04-09-updates-to-rusts-wasi-targets.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2024-04-10-updates-to-rusts-wasi-targets.md => 2024-04-09-updates-to-rusts-wasi-targets.md} (100%) diff --git a/posts/2024-04-10-updates-to-rusts-wasi-targets.md b/posts/2024-04-09-updates-to-rusts-wasi-targets.md similarity index 100% rename from posts/2024-04-10-updates-to-rusts-wasi-targets.md rename to posts/2024-04-09-updates-to-rusts-wasi-targets.md From e34dfc956cea2af714f6bb80c856e7c7f86563f0 Mon Sep 17 00:00:00 2001 From: Pietro Albini Date: Tue, 9 Apr 2024 22:13:40 +0200 Subject: [PATCH 0360/1024] Update posts/2024-04-09-Rust-1.77.2.md Co-authored-by: Josh Stone --- posts/2024-04-09-Rust-1.77.2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-04-09-Rust-1.77.2.md b/posts/2024-04-09-Rust-1.77.2.md index 293e0666d..d499439c3 100644 --- a/posts/2024-04-09-Rust-1.77.2.md +++ b/posts/2024-04-09-Rust-1.77.2.md @@ -44,4 +44,4 @@ advisory.][advisory] ### Contributors to 1.77.2 Many people came together to create Rust 1.77.2. We couldn't have done it -without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.77.1/) +without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.77.2/) From a79fcaa8143ff58ee6fb42a353a82c5cc7805512 Mon Sep 17 00:00:00 2001 From: Timothy McCallum Date: Wed, 10 Apr 2024 10:13:33 +1000 Subject: [PATCH 0361/1024] Tiny tweaks Signed-off-by: tpmccallum Fantastic write up! I noticed just a couple of tiny tweaks while reading. --- posts/2024-04-09-updates-to-rusts-wasi-targets.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/posts/2024-04-09-updates-to-rusts-wasi-targets.md b/posts/2024-04-09-updates-to-rusts-wasi-targets.md index 079077930..26d7a5ab3 100644 --- a/posts/2024-04-09-updates-to-rusts-wasi-targets.md +++ b/posts/2024-04-09-updates-to-rusts-wasi-targets.md @@ -36,7 +36,7 @@ tool. This tool is able to take WASI 0.1 binaries, and transform them to WASI 0. Components using a shim. It also provides native support for common cargo commands such as `cargo build`, `cargo test`, and `cargo run`. While it introduces some inefficiencies because of the additional translation layer, in -practice this already works really well and people should be enough able to get +practice this already works really well and people should be able to get started with WASI 0.2 development. We're however keen to begin making that translation layer obsolete. And for @@ -46,7 +46,7 @@ that with the introduction of the [tier target landing in Rust 1.78. **This will initially miss a lot of expected** **features such as stdlib support, and we don't recommend people use this target** **quite yet.** But as we fill in those missing features over the coming months, we -aim to eventually hit meet the criteria to become a tier 2 target, at which +aim to eventually meet the criteria to become a tier 2 target, at which point the `wasm32-wasip2` target would be considered ready for general use. This work will happen through 2024, and we expect for this to land before the end of the calendar year. @@ -117,4 +117,4 @@ at which point `cargo-component` will be upgraded to support it natively instead With WASI 0.2 finally stable, it's an exciting time for WebAssembly development. We're happy for Rust to begin implementing native support for WASI 0.2, and -we're excited for what this will enable people to build. +we're excited about what this will enable people to build. From a16110d147fb32e71160c7f950de8c211f9bd482 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 12 Apr 2024 09:25:44 -0400 Subject: [PATCH 0362/1024] announce lcnr as types team co-leadership --- .../2024-04-12-types-team-leadership.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 posts/inside-rust/2024-04-12-types-team-leadership.md diff --git a/posts/inside-rust/2024-04-12-types-team-leadership.md b/posts/inside-rust/2024-04-12-types-team-leadership.md new file mode 100644 index 000000000..b76a7326d --- /dev/null +++ b/posts/inside-rust/2024-04-12-types-team-leadership.md @@ -0,0 +1,17 @@ +--- +layout: post +title: "Announcing lcnr as Types Team co-lead" +author: Niko Matsakis +team: the types team +--- + +It is my great privilege to announce that [lcnr][] will be serving as the new types team co-lead. The types team has adopted the ["rolling leadership" model](https://rust-lang.github.io/rfcs/3262-compiler-team-rolling-leads.html) pioneered by the compiler team, and so [lcnr][] is joining as the new "junior lead". The senior lead will be [Jack Huey][]. I ([Niko Matsakis][]) am going to be stepping back and I will continue to be active as a types team member. + +Over the years [lcnr][] has made numerous contributions to the type system, beginning with a focus on const generics but soon stepping over to the trait solver and type system. His most recent contribution has been leading the push for a new trait solver. This work recently came to its first major milestone, [stabilizing the new solver for use in coherence][#121848]. This was a major goal for the types team and [lcnr][] deserves a lot of credit for it, as well as [compiler-errors][] and [boxyuwu][]. + +[#121848]: https://github.com/rust-lang/rust/pull/121848 +[compiler-errors]: https://github.com/compiler-errors +[boxyuwu]: https://github.com/boxyuwu +[lcnr]: https://github.com/lcnr +[Jack Huey]: https://github.com/jackh726 +[Niko Matsakis]: https://github.com/nikomatsakis From 3cb5f78a873ab040bcd0014e23500dd57a3b8c4e Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 12 Apr 2024 09:58:57 -0400 Subject: [PATCH 0363/1024] small tweaks --- posts/inside-rust/2024-04-12-types-team-leadership.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-04-12-types-team-leadership.md b/posts/inside-rust/2024-04-12-types-team-leadership.md index b76a7326d..91b8495d8 100644 --- a/posts/inside-rust/2024-04-12-types-team-leadership.md +++ b/posts/inside-rust/2024-04-12-types-team-leadership.md @@ -7,7 +7,7 @@ team: the types team Date: Fri, 12 Apr 2024 10:07:37 -0400 Subject: [PATCH 0364/1024] s/boxyuwu/boxy/ --- posts/inside-rust/2024-04-12-types-team-leadership.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/inside-rust/2024-04-12-types-team-leadership.md b/posts/inside-rust/2024-04-12-types-team-leadership.md index 91b8495d8..3ed117101 100644 --- a/posts/inside-rust/2024-04-12-types-team-leadership.md +++ b/posts/inside-rust/2024-04-12-types-team-leadership.md @@ -7,11 +7,11 @@ team: the types team Date: Mon, 15 Apr 2024 10:56:45 +0200 Subject: [PATCH 0365/1024] Lock file maintenance (#1309) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 147 ++++++++++++++++++++++++++++------------------------- 1 file changed, 77 insertions(+), 70 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7ff821edb..5371dc4c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -214,9 +214,9 @@ checksum = "3108fe6fe7ac796fb7625bdde8fa2b67b5a7731496251ca57c7b8cadd78a16a1" [[package]] name = "bumpalo" -version = "3.15.4" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byteorder" @@ -232,9 +232,9 @@ checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.90" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" +checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7" [[package]] name = "cfg-if" @@ -259,7 +259,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -296,7 +296,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.0", + "strsim 0.11.1", "terminal_size", ] @@ -309,7 +309,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] @@ -538,9 +538,9 @@ dependencies = [ [[package]] name = "deunicode" -version = "1.4.3" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6e854126756c496b8c81dec88f9a706b15b875c5849d4097a3854476b9fdf94" +checksum = "322ef0094744e63628e6f0eb2295517f79276a5b342a4c2ff3042566ca181d4e" [[package]] name = "digest" @@ -554,15 +554,15 @@ dependencies = [ [[package]] name = "either" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" [[package]] name = "encoding_rs" -version = "0.8.33" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] @@ -711,9 +711,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "libc", @@ -1171,11 +1171,11 @@ dependencies = [ [[package]] name = "pem" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" +checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae" dependencies = [ - "base64 0.21.7", + "base64 0.22.0", "serde", ] @@ -1187,9 +1187,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" +checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95" dependencies = [ "memchr", "thiserror", @@ -1198,9 +1198,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026" +checksum = "f73541b156d32197eecda1a4014d7f868fd2bcb3c550d5386087cfba442bf69c" dependencies = [ "pest", "pest_generator", @@ -1208,22 +1208,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80" +checksum = "c35eeed0a3fab112f75165fdc026b3913f4183133f19b49be773ac9ea966e8bd" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] name = "pest_meta" -version = "2.7.8" +version = "2.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293" +checksum = "2adbf29bb9776f28caece835398781ab24435585fe0d4dc1374a61db5accedca" dependencies = [ "once_cell", "pest", @@ -1247,7 +1247,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] @@ -1320,9 +1320,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "a56dea16b0a29e94408b9aa5e2940a4eedbd128a1ba20e8f7ae60fd3d465af0e" dependencies = [ "unicode-ident", ] @@ -1357,9 +1357,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -1605,7 +1605,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] @@ -1775,9 +1775,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "strsim" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "structopt" @@ -1822,9 +1822,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.57" +version = "2.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" +checksum = "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a" dependencies = [ "proc-macro2", "quote", @@ -1890,7 +1890,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] @@ -1905,9 +1905,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.34" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", @@ -1926,9 +1926,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ "num-conv", "time-core", @@ -1975,7 +1975,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", ] [[package]] @@ -2302,7 +2302,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", "wasm-bindgen-shared", ] @@ -2324,7 +2324,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.57", + "syn 2.0.59", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2372,7 +2372,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -2390,7 +2390,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -2410,17 +2410,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -2431,9 +2432,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -2443,9 +2444,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -2455,9 +2456,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -2467,9 +2474,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -2479,9 +2486,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -2491,9 +2498,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -2503,9 +2510,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "xdg" From 1de7b204f2ef1f93eacd7bf1f6d414197c7d4f27 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 08:58:49 +0000 Subject: [PATCH 0366/1024] Update dependency rust to v1.77.2 (#1306) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c4404a6b2..a64cfeabb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.77.1 + RUST_VERSION: 1.77.2 jobs: lint: From 655b6865ba2eea45ff991120a9e11f81f16f1d72 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Apr 2024 17:46:48 +0200 Subject: [PATCH 0367/1024] Update Rust crate chrono to v0.4.38 (#1310) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5371dc4c7..7ef4af123 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -250,9 +250,9 @@ checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" [[package]] name = "chrono" -version = "0.4.37" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", diff --git a/Cargo.toml b/Cargo.toml index 9d412dbe7..5ac7f1d71 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ comrak = "=0.22.0" rayon = "=1.10.0" regex = "=1.10.4" sass-rs = "=0.2.2" -chrono = "=0.4.37" +chrono = "=0.4.38" [workspace] members = ["serve"] From 4587ed717253a7c779bf666324912e06bb152bba Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Apr 2024 17:47:04 +0200 Subject: [PATCH 0368/1024] Update Rust crate serde_json to v1.0.116 (#1311) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7ef4af123..bea777802 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1610,9 +1610,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.115" +version = "1.0.116" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 5ac7f1d71..e0c2430c4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ lazy_static = "=1.4.0" serde = "=1.0.197" serde_derive = "=1.0.197" serde_yaml = "=0.9.33" -serde_json = "=1.0.115" +serde_json = "=1.0.116" comrak = "=0.22.0" rayon = "=1.10.0" regex = "=1.10.4" From c56052902562be75d8090869207f60dd6a66e311 Mon Sep 17 00:00:00 2001 From: Urgau Date: Wed, 17 Apr 2024 07:58:15 +0200 Subject: [PATCH 0369/1024] Announce automatic checking of cfgs at compile-time --- posts/2024-04-29-check-cfg.md | 115 ++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 posts/2024-04-29-check-cfg.md diff --git a/posts/2024-04-29-check-cfg.md b/posts/2024-04-29-check-cfg.md new file mode 100644 index 000000000..585df7458 --- /dev/null +++ b/posts/2024-04-29-check-cfg.md @@ -0,0 +1,115 @@ +--- +layout: post +title: "Automatic checking of cfgs at compile-time" +author: Urgau +team: The Cargo Team +--- + +# Automatic checking of cfgs at compile-time + +The Cargo and Compiler team are delighted to announce that starting with Rust 1.80 (or nightly-2024-04-XX) every _reachable_ `#[cfg]`s will be automatically checked for expected config names and values. + +This can help with verifying that the crate is correctly handling conditional compilation for different target platforms or features. It ensures that the cfg settings are consistent between what is intended and what is used, helping to catch potential bugs or errors early in the development process. + +Addressing a common pitfall for new and advanced users. + +This is another step to our commitment to provide user-focused tooling and we are eager and excited to finally see it fixed, more than two years since the original [RFC 3013](https://github.com/rust-lang/rfcs/pull/3013)[^1]. + +[^1]: The stabilized implementation and RFC 3013 diverge significantly, in particular there is only one form for `--check-cfg`: `cfg()` (instead of `values()` and `names()` being incomplete and subtlety incompatible with each other). + +## A look at the feature + +Every time a Cargo feature is declared that feature is transformed into a config that is passed to `rustc` (the Rust compiler) so it can verify with its [well known cfgs](TODO) if any of the `#[cfg]`, `#![cfg_attr]` and `cfg!` have unexpected configs and report a warning with the `unexpected_cfgs` lint. + +*`Cargo.toml`*: + +```toml +[package] +name = "foo" + +[features] +lasers = [] +zapping = [] +``` + +*`src/lib.rs`:* +```rust +#[cfg(feature = "lasers")] // This condition is expected + // as "lasers" is an expected value of `feature` +fn shoot_lasers() {} + +#[cfg(feature = "monkeys")] // This condition is UNEXPECTED + // as "monkeys" is NOT an expected value of `feature` +fn write_shakespeare() {} + +#[cfg(windosw)] // This condition is UNEXPECTED + // it's supposed to be `windows` +fn win() {} +``` + +*`cargo check`*: +![cargo-check](https://github.com/rust-lang/rust/assets/3616612/c6ecdb34-b92c-42b8-9f80-7066b76541ff) + +## Custom cfgs and build scripts + +> In Cargo point-of-view: a custom cfg is one that is neither defined by `rustc` nor by a Cargo feature. Think of `tokio_unstable`, `has_foo`, ... but not `feature = "lasers"`, `unix`, ... + +Some crates use custom cfgs that they either expected from the environment (`RUSTFLAGS`or other means) or is enabled by some logic in the crate `build.rs`. For those crates Cargo provides a new instruction: [`cargo::rustc-check-cfg`](TODO)[^2] (or `cargo:rustc-check-cfg` for older Cargo version). + +[^2]: `cargo::rustc-check-cfg` take action since Rust 1.80, between Rust 1.77 and Rust 1.79 *(included)* it silently did nothing and before that (so Rust 1.76 and below) it warned when used without the unstable Cargo `-Zcheck-cfg`. + +The syntax to use is described in the [rustc book](https://doc.rust-lang.org/rustc/index.html) section [checking configuration](TODO), but in a nut shell the basic syntax of `--check-cfg` is: + +> `cfg(name, values("value1", "value2", ..., "valueN"))` + +Note that every custom cfgs must always be expected, regardless if the cfg is active or not! + +### `build.rs` example + +`build.rs`: +```rust +fn main() { + println!("cargo::rustc-check-cfg=cfg(has_foo)"); // <-- new with Cargo 1.80 + if has_foo() { + println!("cargo::rustc-cfg=has_foo"); + } +} +``` + +> Note: Each `cargo::rustc-cfg` must always have a accompanying _unconditional_ `cargo::rustc-check-cfg` directive otherwise you risk having warnings like this:`unexpected cfg condition name: has_foo`. + +### Equivalence table + +| `cargo::rustc-cfg` | `cargo::rustc-check-cfg` | +|-------------------------|------------------------------------------------| +| `foo` | `cfg(foo)` or `cfg(foo, values(none()))` | +| `foo=""` | `cfg(foo, values(""))` | +| `foo="bar"` | `cfg(foo, values("bar"))` | +| `foo="1"` and `foo="2"` | `cfg(foo, values("1", "2"))` | +| `foo="1"` and `bar="2"` | `cfg(foo, values("1"))` and `cfg(bar, values("2"))` | +| `foo` and `foo="bar"` | `cfg(foo, values(none(), "bar"))` | + +More details can be found on the [`rustc` book](TODO). + +## Frequently asked questions + +### Can it be disabled? + +No, it's **always on** for Cargo and _cannot_ be disabled. + +### How does it interact with the `RUSTFLAGS` env ? + +You should be able to use the `RUSTFLAGS` environment variable like it was before. +*Currently `--cfg` arguments are not checked, only usage in code are.* + +This means that doing `RUSTFLAGS="--cfg tokio_unstable" cargo check` will not report any warnings, unless `tokio_unstable` is used within your local crates, in which case crate author will need to make sure that that custom cfg is expected with `cargo::rustc-check-cfg` in the `build.rs` of that crate. + +### How to expect custom cfgs without a `build.rs` ? + +There is not **currently no way** to expect a custom cfg other than with `cargo::rustc-check-cfg` in a `build.rs`. + +Crate author that don't want to use a `build.rs` are encouraged to use Cargo features instead. + +### Does it affect dependencies ? + +No, the lint only affects local packages; only those will report the lint. From 3fdb57104bcad76aa87114185f7167ec33ba7552 Mon Sep 17 00:00:00 2001 From: Urgau <3616612+Urgau@users.noreply.github.com> Date: Wed, 17 Apr 2024 10:34:19 +0200 Subject: [PATCH 0370/1024] Apply some suggestions from programmerjake Co-authored-by: Jacob Lifshay --- posts/2024-04-29-check-cfg.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/posts/2024-04-29-check-cfg.md b/posts/2024-04-29-check-cfg.md index 585df7458..7b9141252 100644 --- a/posts/2024-04-29-check-cfg.md +++ b/posts/2024-04-29-check-cfg.md @@ -11,9 +11,9 @@ The Cargo and Compiler team are delighted to announce that starting with Rust 1. This can help with verifying that the crate is correctly handling conditional compilation for different target platforms or features. It ensures that the cfg settings are consistent between what is intended and what is used, helping to catch potential bugs or errors early in the development process. -Addressing a common pitfall for new and advanced users. +This addresses a common pitfall for new and advanced users. -This is another step to our commitment to provide user-focused tooling and we are eager and excited to finally see it fixed, more than two years since the original [RFC 3013](https://github.com/rust-lang/rfcs/pull/3013)[^1]. +This is another step to our commitment to provide user-focused tooling and we are eager and excited to finally see it fixed, after more than two years since the original [RFC 3013](https://github.com/rust-lang/rfcs/pull/3013)[^1]. [^1]: The stabilized implementation and RFC 3013 diverge significantly, in particular there is only one form for `--check-cfg`: `cfg()` (instead of `values()` and `names()` being incomplete and subtlety incompatible with each other). @@ -58,7 +58,7 @@ Some crates use custom cfgs that they either expected from the environment (`RUS [^2]: `cargo::rustc-check-cfg` take action since Rust 1.80, between Rust 1.77 and Rust 1.79 *(included)* it silently did nothing and before that (so Rust 1.76 and below) it warned when used without the unstable Cargo `-Zcheck-cfg`. -The syntax to use is described in the [rustc book](https://doc.rust-lang.org/rustc/index.html) section [checking configuration](TODO), but in a nut shell the basic syntax of `--check-cfg` is: +The syntax to use is described in the [rustc book](https://doc.rust-lang.org/rustc/index.html) section [checking configuration](TODO), but in a nutshell the basic syntax of `--check-cfg` is: > `cfg(name, values("value1", "value2", ..., "valueN"))` From b02d576c9103f20f51217347368be3f708cff943 Mon Sep 17 00:00:00 2001 From: Urgau <3616612+Urgau@users.noreply.github.com> Date: Wed, 17 Apr 2024 16:57:49 +0200 Subject: [PATCH 0371/1024] Apply second round of suggestions from code review Co-authored-by: Jacob Lifshay --- posts/2024-04-29-check-cfg.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/posts/2024-04-29-check-cfg.md b/posts/2024-04-29-check-cfg.md index 7b9141252..05589a07a 100644 --- a/posts/2024-04-29-check-cfg.md +++ b/posts/2024-04-29-check-cfg.md @@ -7,7 +7,7 @@ team: The Cargo Team Date: Thu, 18 Apr 2024 13:29:21 +0200 Subject: [PATCH 0372/1024] Apply suggestions and update links to rustc book Co-authored-by: Nathan Stocks --- posts/2024-04-29-check-cfg.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/posts/2024-04-29-check-cfg.md b/posts/2024-04-29-check-cfg.md index 05589a07a..01f039483 100644 --- a/posts/2024-04-29-check-cfg.md +++ b/posts/2024-04-29-check-cfg.md @@ -19,7 +19,7 @@ This is another step to our commitment to provide user-focused tooling and we ar ## A look at the feature -Every time a Cargo feature is declared that feature is transformed into a config that is passed to `rustc` (the Rust compiler) so it can verify with its [well known cfgs](TODO) if any of the `#[cfg]`, `#![cfg_attr]` and `cfg!` have unexpected configs and report a warning with the `unexpected_cfgs` lint. +Every time a Cargo feature is declared that feature is transformed into a config that is passed to `rustc` (the Rust compiler) so it can verify with its [well known cfgs](https://doc.rust-lang.org/nightly/rustc/check-cfg.html#well-known-names-and-values) if any of the `#[cfg]`, `#![cfg_attr]` and `cfg!` have unexpected configs and report a warning with the `unexpected_cfgs` lint. *`Cargo.toml`*: @@ -56,9 +56,9 @@ fn win() {} Some crates use custom cfgs that they either expected from the environment (`RUSTFLAGS`or other means) or is enabled by some logic in the crate `build.rs`. For those crates Cargo provides a new instruction: [`cargo::rustc-check-cfg`](TODO)[^2] (or `cargo:rustc-check-cfg` for older Cargo version). -[^2]: `cargo::rustc-check-cfg` will start working in Rust 1.80 (or nightly-2024-04-XX), between Rust 1.77 and Rust 1.79 *(included)* it silently did nothing and before that (so Rust 1.76 and below) it warned when used without the unstable Cargo `-Zcheck-cfg`. +[^2]: `cargo::rustc-check-cfg` will start working in Rust 1.80 (or nightly-2024-04-XX). From Rust 1.77 to Rust 1.79 *(inclusive)* it is silently ignored. In Rust 1.76 and below a warning is emitted when used without the unstable Cargo flag `-Zcheck-cfg`. -The syntax to use is described in the [rustc book](https://doc.rust-lang.org/rustc/index.html) section [checking configuration](TODO), but in a nutshell the basic syntax of `--check-cfg` is: +The syntax to use is described in the [rustc book](https://doc.rust-lang.org/nightly/rustc/) section [checking configuration](https://doc.rust-lang.org/nightly/rustc/check-cfg.html), but in a nutshell the basic syntax of `--check-cfg` is: > `cfg(name, values("value1", "value2", ..., "valueN"))` @@ -89,7 +89,7 @@ fn main() { | `foo="1"` and `bar="2"` | `cfg(foo, values("1"))` and `cfg(bar, values("2"))` | | `foo` and `foo="bar"` | `cfg(foo, values(none(), "bar"))` | -More details can be found on the [`rustc` book](TODO). +More details can be found on the [`rustc` book](https://doc.rust-lang.org/nightly/rustc/check-cfg.html). ## Frequently asked questions @@ -108,8 +108,8 @@ This means that doing `RUSTFLAGS="--cfg tokio_unstable" cargo check` will not re There is not **currently no way** to expect a custom cfg other than with `cargo::rustc-check-cfg` in a `build.rs`. -Crate author that don't want to use a `build.rs` are encouraged to use Cargo features instead. +Crate authors that don't want to use a `build.rs` are encouraged to use Cargo features instead. -### Does it affect dependencies ? +### Does the lint affect dependencies? No, the lint only affects local packages; only those will report the lint. From 8375ca81e53f6c342d0d2858afe299c6453c74ba Mon Sep 17 00:00:00 2001 From: Urgau Date: Thu, 18 Apr 2024 19:49:21 +0200 Subject: [PATCH 0373/1024] Add section for non-Cargo based build systems + fix typos --- posts/2024-04-29-check-cfg.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/posts/2024-04-29-check-cfg.md b/posts/2024-04-29-check-cfg.md index 01f039483..3b536ec55 100644 --- a/posts/2024-04-29-check-cfg.md +++ b/posts/2024-04-29-check-cfg.md @@ -97,19 +97,23 @@ More details can be found on the [`rustc` book](https://doc.rust-lang.org/nightl The feature is **always on** and _cannot_ be disabled from Cargo, but like any other lints it can be controlled: `#![allow(unexpected_cfgs)]`. -### How does it interact with the `RUSTFLAGS` env ? +### Does the lint affect dependencies? + +No, the lint only affects local packages; only those will report the lint. + +### How does it interact with the `RUSTFLAGS` env? You should be able to use the `RUSTFLAGS` environment variable like it was before. *Currently `--cfg` arguments are not checked, only usage in code are.* This means that doing `RUSTFLAGS="--cfg tokio_unstable" cargo check` will not report any warnings, unless `tokio_unstable` is used within your local crates, in which case crate author will need to make sure that that custom cfg is expected with `cargo::rustc-check-cfg` in the `build.rs` of that crate. -### How to expect custom cfgs without a `build.rs` ? +### How to expect custom cfgs without a `build.rs`? -There is not **currently no way** to expect a custom cfg other than with `cargo::rustc-check-cfg` in a `build.rs`. +There is **currently no way** to expect a custom cfg other than with `cargo::rustc-check-cfg` in a `build.rs`. Crate authors that don't want to use a `build.rs` are encouraged to use Cargo features instead. - -### Does the lint affect dependencies? -No, the lint only affects local packages; only those will report the lint. +### How does it interact with other build systems? + +Non-Cargo based build systems are not affected by the lint by default. Build system authors that wish to have the same functionality should look at the `rustc` documentation for the [`--check-cfg`](https://doc.rust-lang.org/nightly/rustc/check-cfg.html) flag for a detailed explanation of how to achieve the same functionality. From 6b2803f8d6ca50d3053805372dc1ab837a0e8346 Mon Sep 17 00:00:00 2001 From: Urgau Date: Fri, 19 Apr 2024 19:37:38 +0200 Subject: [PATCH 0374/1024] Host the SVG on the blog directly instead of a third-party website --- posts/2024-04-29-check-cfg.md | 2 +- .../2024-04-29-check-cfg/cargo-check.svg | 79 +++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 static/images/2024-04-29-check-cfg/cargo-check.svg diff --git a/posts/2024-04-29-check-cfg.md b/posts/2024-04-29-check-cfg.md index 3b536ec55..10d47820b 100644 --- a/posts/2024-04-29-check-cfg.md +++ b/posts/2024-04-29-check-cfg.md @@ -48,7 +48,7 @@ fn win() {} ``` *`cargo check`*: -![cargo-check](https://github.com/rust-lang/rust/assets/3616612/c6ecdb34-b92c-42b8-9f80-7066b76541ff) +![cargo-check](../../../../images/2024-04-29-check-cfg/cargo-check.svg) ## Custom cfgs and build scripts diff --git a/static/images/2024-04-29-check-cfg/cargo-check.svg b/static/images/2024-04-29-check-cfg/cargo-check.svg new file mode 100644 index 000000000..e62e98b9e --- /dev/null +++ b/static/images/2024-04-29-check-cfg/cargo-check.svg @@ -0,0 +1,79 @@ + + + + + + + Checking foo v0.0.0 (/tmp/foo) + + warning: unexpected `cfg` condition value: `monkeys` + + --> src/lib.rs:5:7 + + | + + 5 | #[cfg(feature = "monkeys")] + + | ^^^^^^^^^^^^^^^^^^^ + + | + + = note: expected values for `feature` are: `lasers`, `zapping` + + = help: consider adding `monkeys` as a feature in `Cargo.toml` + + = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> + + for more information about checking conditional configuration + + = note: `#[warn(unexpected_cfgs)]` on by default + + + + warning: unexpected `cfg` condition name: `windosw` + + --> src/lib.rs:9:7 + + | + + 9 | #[cfg(windosw)] + + | ^^^^^^^ help: there is a config with a similar name: `windows` + + | + + = help: consider using a Cargo feature instead or adding + + `println!("cargo:rustc-check-cfg=cfg(windosw)");` to the top of a `build.rs` + + = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> + + for more information about checking conditional configuration + + + + warning: `foo` (lib) generated 2 warnings + + Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s + + + + + + From 08053c43ce47abbf9e43ca628716b81a01cb0a49 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 30 Apr 2024 17:35:15 -0700 Subject: [PATCH 0375/1024] Rust 1.78.0 announcement --- posts/2024-05-02-Rust-1.78.0.md | 137 ++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 posts/2024-05-02-Rust-1.78.0.md diff --git a/posts/2024-05-02-Rust-1.78.0.md b/posts/2024-05-02-Rust-1.78.0.md new file mode 100644 index 000000000..4dbb533bf --- /dev/null +++ b/posts/2024-05-02-Rust-1.78.0.md @@ -0,0 +1,137 @@ +--- +layout: post +title: "Announcing Rust 1.78.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.78.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via `rustup`, you can get 1.78.0 with: + +```console +$ rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.78.0](https://doc.rust-lang.org/nightly/releases.html#version-1780-2024-05-02). + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.78.0 stable + +### Diagnostic attributes + +Rust now supports a `#[diagnostic]` attribute namespace to influence compiler error messages. These are treated as hints which the compiler is not _required_ to use, and it is also not an error to provide a diagnostic that the compiler doesn't recognize. This flexibility allows source code to provide diagnostics even when they're not supported by all compilers, whether those are different versions or entirely different implementations. + +With this namespace comes the first supported attribute, `#[diagnostic::on_unimplemented]`, which can be placed on a trait to customize the message when that trait is required but hasn't been implemented on a type. Consider the example given in the [stabilization pull request](https://github.com/rust-lang/rust/pull/119888/): + +```rust +#[diagnostic::on_unimplemented( + message = "My Message for `ImportantTrait<{A}>` is not implemented for `{Self}`", + label = "My Label", + note = "Note 1", + note = "Note 2" +)] +trait ImportantTrait {} + +fn use_my_trait(_: impl ImportantTrait) {} + +fn main() { + use_my_trait(String::new()); +} +``` + +Previously, the compiler would give a builtin error like this: + +``` +error[E0277]: the trait bound `String: ImportantTrait` is not satisfied + --> src/main.rs:12:18 + | +12 | use_my_trait(String::new()); + | ------------ ^^^^^^^^^^^^^ the trait `ImportantTrait` is not implemented for `String` + | | + | required by a bound introduced by this call + | +``` + +With `#[diagnostic::on_unimplemented]`, its custom message fills the primary error line, and its custom label is placed on the source output. The original label is still written as help output, and any custom notes are written as well. (These exact details are subject to change.) + +``` +error[E0277]: My Message for `ImportantTrait` is not implemented for `String` + --> src/main.rs:12:18 + | +12 | use_my_trait(String::new()); + | ------------ ^^^^^^^^^^^^^ My Label + | | + | required by a bound introduced by this call + | + = help: the trait `ImportantTrait` is not implemented for `String` + = note: Note 1 + = note: Note 2 +``` + +For more information, see the reference section on [the `diagnostic` tool attribute namespace](https://doc.rust-lang.org/stable/reference/attributes/diagnostics.html#the-diagnostic-tool-attribute-namespace). + +### Asserting `unsafe` preconditions + +The Rust standard library has a number of assertions for the preconditions of `unsafe` functions, but historically they have only been enabled in `#[cfg(debug_assertions)]` builds to avoid affecting release performance. However, since the standard library is usually compiled and distributed in release mode, most Rust developers weren't ever executing these checks at all. + +Now, the condition for these assertions is delayed until code generation, so they will be checked depending on the user's own setting for debug assertions -- enabled by default in debug and test builds. This change helps users catch undefined behavior in their code, though the details of how much is checked are generally not stable. + +For example, [`slice::from_raw_parts`](https://doc.rust-lang.org/std/slice/fn.from_raw_parts.html) requires an aligned non-null pointer. The following use of a purposely-misaligned pointer has undefined behavior, _which may or may not cause noticeable ill effect otherwise_, but the debug assertion can now catch it: + +```rust +fn main() { + let slice: &[u8] = &[1, 2, 3, 4, 5]; + let slice16: &[u16] = unsafe { + let ptr = slice.as_ptr(); + let i = usize::from(ptr as usize & 1 == 0); + std::slice::from_raw_parts(ptr.add(i) as *const u16, 2) + }; + dbg!(slice16); +} +``` + +``` +thread 'main' panicked at library/core/src/panicking.rs:220:5: +unsafe precondition(s) violated: slice::from_raw_parts requires the pointer to be aligned and non-null, and the total size of the slice not to exceed `isize::MAX` +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace +thread caused non-unwinding panic. aborting. +``` + +### Deterministic realignment + +The standard library has a few functions that change the alignment of pointers and slices, but they previously had caveats that made them difficult to rely on in practice, if you followed their documentation precisely. Those caveats primarily existed as a hedge against `const` evaluation, but they're only stable for non-`const` use anyway. They are now promised to have consistent runtime behavior according to their actual inputs. + +- [`pointer::align_offset`](https://doc.rust-lang.org/std/primitive.pointer.html#method.align_offset) computes the offset needed to change a pointer to the given alignment. It returns `usize::MAX` if that is not possible, but it was previously permitted to _always_ return `usize::MAX`, and now that behavior is removed. + +- [`slice::align_to`](https://doc.rust-lang.org/std/primitive.slice.html#method.align_to) and [`slice::align_to_mut`](https://doc.rust-lang.org/std/primitive.slice.html#method.align_to_mut) both transmute slices to an aligned middle slice and the remaining unaligned head and tail slices. These methods now promise to return the largest possible middle part, rather than allowing the implementation to return something less optimal like returning everything as the head slice. + +### Stabilized APIs + +- [`impl Read for &Stdin`](https://doc.rust-lang.org/stable/std/io/struct.Stdin.html#impl-Read-for-%26Stdin) +- [Accept non `'static` lifetimes for several `std::error::Error` related implementations](https://github.com/rust-lang/rust/pull/113833/) +- [Make `impl` impl take `?Sized`](https://github.com/rust-lang/rust/pull/114655/) +- [`impl From for io::Error`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#impl-From%3CTryReserveError%3E-for-Error) + +These APIs are now stable in const contexts: + +- [`Barrier::new()`](https://doc.rust-lang.org/stable/std/sync/struct.Barrier.html#method.new) + +### Compatibility notes + +* As [previously announced](https://blog.rust-lang.org/2024/02/26/Windows-7.html), Rust 1.78 has increased its minimum requirement to Windows 10 for the following targets: + - `x86_64-pc-windows-msvc` + - `i686-pc-windows-msvc` + - `x86_64-pc-windows-gnu` + - `i686-pc-windows-gnu` + - `x86_64-pc-windows-gnullvm` + - `i686-pc-windows-gnullvm` + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.78.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-178-2024-05-02), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-178). + +## Contributors to 1.78.0 + +Many people came together to create Rust 1.78.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.78.0/) From dd9e6cc77ac3e672888b41ef8381be43875d9376 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 30 Apr 2024 18:10:53 -0700 Subject: [PATCH 0376/1024] Add a real example of `#[diagnostic::on_unimplemented]` --- posts/2024-05-02-Rust-1.78.0.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/posts/2024-05-02-Rust-1.78.0.md b/posts/2024-05-02-Rust-1.78.0.md index 4dbb533bf..69288b912 100644 --- a/posts/2024-05-02-Rust-1.78.0.md +++ b/posts/2024-05-02-Rust-1.78.0.md @@ -70,6 +70,16 @@ error[E0277]: My Message for `ImportantTrait` is not implemented for `Strin = note: Note 2 ``` +For trait authors, this kind of diagnostic is more useful if you can provide a better hint than just talking about the missing implementation itself. For example, this is an abridged sample from the standard library: + +```rust +#[diagnostic::on_unimplemented( + message = "the size for values of type `{Self}` cannot be known at compilation time", + label = "doesn't have a size known at compile-time" +)] +pub trait Sized {} +``` + For more information, see the reference section on [the `diagnostic` tool attribute namespace](https://doc.rust-lang.org/stable/reference/attributes/diagnostics.html#the-diagnostic-tool-attribute-namespace). ### Asserting `unsafe` preconditions From a8731745c373ee94b57dac889e0d649414971dff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 1 May 2024 08:18:06 +0200 Subject: [PATCH 0377/1024] Add blog post about the GSoC 2024 accepted projects --- .../2024-05-01-gsoc-2024-selected-projects.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 posts/2024-05-01-gsoc-2024-selected-projects.md diff --git a/posts/2024-05-01-gsoc-2024-selected-projects.md b/posts/2024-05-01-gsoc-2024-selected-projects.md new file mode 100644 index 000000000..4a0fe2b26 --- /dev/null +++ b/posts/2024-05-01-gsoc-2024-selected-projects.md @@ -0,0 +1,35 @@ +--- +layout: post +title: "Announcing Google Summer of Code 2024 selected projects" +author: Jakub Beránek, Jack Huey and Paul Lenz +--- + +The Rust Project is [participating][gsoc blog post] in [Google Summer of Code (GSoC) 2024][gsoc], a global program organized by Google which is designed to bring new contributors to the world of open-source. + +In February, we published a list of [GSoC project ideas][project idea list], and started discussing these projects with potential GSoC applicants on our [Zulip][zulip gsoc]. We were pleasantly surprised by the amount of people that wanted to participate in these projects and that led many fruitful discussions with members of various Rust teams. Some of them have even immediately begun contributing to various repositories of the Rust Project, even before GSoC officially started! + +After the initial discussions, GSoC applicants prepared and submitted their project proposals. We have received 65 (!) proposals in total. We are happy to see that there was so much interest, given that this is the first time the Rust Project participates in GSoC. + +A team of mentors primarily composed of Rust Project contributors then thoroughly examined the submitted proposals. GSoC required us to produce a ranked list of the best proposals, which was a challenging task in itself, since Rust is a big project with many priorities! We went through many rounds of discussions, and had to consider many factors, such as prior conversations with the given applicant, the quality and scope of their proposal, the importance of the proposed project for the Rust Project and its wider community, but also the availability of mentors, who are often volunteers and thus have limited time available for mentoring. + +In many cases, we had multiple proposals that aimed to accomplish the same goal, therefore, we had to pick only one despite receiving several high-quality proposals from people we'd love to work with. We also often had to choose between great proposals targeting different work within the same Rust component, to avoid overloading a single mentor with multiple projects. + +In the end, we narrowed the list down to twelve best proposals, which we felt was the maximum amount that we could realistically support with our available mentor pool. We submitted this list and eagerly awaited how many of these twelve proposals would be accepted into GSoC. + +## Selected projects +On the 1st of May, Google has announced the accepted projects. We are happy to announce that `TODO` of our proposals have been accepted by Google, and will thus participate in Google Summer of Code 2024! Below you can find the list of accepted proposals, along with the names of their authors and the assigned mentor(s): + +TODO + +**Congratulations to all applicants whose project was selected!** The mentors are looking forward to working with you on these exciting projects to improve the Rust ecosystem. You can expect to hear from us soon, so that we can start coordinating the work on your GSoC projects. + +We would also like to thank all the applicants whose proposal was sadly not accepted, for their interactions with the Rust community and contributions to various Rust projects. There were some great proposals that did not make the cut, because the capacity is quite limited. However, even if your proposal was not accepted, we would be happy if you would consider contributing to the projects that got you interested, even outside GSoC! Our [project idea list][project idea list] is still actual, and could serve as a general entrypoint for contributors that would like to work on projects that would help the Rust Project maintainers and the Rust ecosystem. + +We cannot promise anything yet, but assuming our involvement in GSoC 2024 is successful, and we're able to participate next year as well, we hope to receive your proposals again in the future! It is also possible that we will announce our involvement in other similar programs in the near future, so make sure to subscribe to this blog so that you don't miss anything. + +The accepted GSoC projects will run for several months. After GSoC 2024 finishes (in autumn of 2024), we plan to publish a blog post in which we will summarize the outcome of the accepted projects. + +[gsoc]: https://summerofcode.withgoogle.com +[gsoc blog post]: https://blog.rust-lang.org/2024/02/21/Rust-participates-in-GSoC-2024.html +[zulip gsoc]: https://rust-lang.zulipchat.com/#narrow/stream/421156-gsoc +[project idea list]: https://github.com/rust-lang/google-summer-of-code From 5b313cbe6356e7763213aa31e1a3a06b3532a602 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 1 May 2024 16:57:48 +0200 Subject: [PATCH 0378/1024] Add blog post about the GSoC 2024 accepted projects --- posts/2024-05-01-gsoc-2024-selected-projects.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/posts/2024-05-01-gsoc-2024-selected-projects.md b/posts/2024-05-01-gsoc-2024-selected-projects.md index 4a0fe2b26..12e531ca0 100644 --- a/posts/2024-05-01-gsoc-2024-selected-projects.md +++ b/posts/2024-05-01-gsoc-2024-selected-projects.md @@ -6,13 +6,13 @@ author: Jakub Beránek, Jack Huey and Paul Lenz The Rust Project is [participating][gsoc blog post] in [Google Summer of Code (GSoC) 2024][gsoc], a global program organized by Google which is designed to bring new contributors to the world of open-source. -In February, we published a list of [GSoC project ideas][project idea list], and started discussing these projects with potential GSoC applicants on our [Zulip][zulip gsoc]. We were pleasantly surprised by the amount of people that wanted to participate in these projects and that led many fruitful discussions with members of various Rust teams. Some of them have even immediately begun contributing to various repositories of the Rust Project, even before GSoC officially started! +In February, we published a list of [GSoC project ideas][project idea list], and started discussing these projects with potential GSoC applicants on our [Zulip][zulip gsoc]. We were pleasantly surprised by the amount of people that wanted to participate in these projects and that led to many fruitful discussions with members of various Rust teams. Some of them even immediately began contributing to various repositories of the Rust Project, even before GSoC officially started! -After the initial discussions, GSoC applicants prepared and submitted their project proposals. We have received 65 (!) proposals in total. We are happy to see that there was so much interest, given that this is the first time the Rust Project participates in GSoC. +After the initial discussions, GSoC applicants prepared and submitted their project proposals. We received 65 (!) proposals in total. We are happy to see that there was so much interest, given that this is the first time the Rust Project is participating in GSoC. -A team of mentors primarily composed of Rust Project contributors then thoroughly examined the submitted proposals. GSoC required us to produce a ranked list of the best proposals, which was a challenging task in itself, since Rust is a big project with many priorities! We went through many rounds of discussions, and had to consider many factors, such as prior conversations with the given applicant, the quality and scope of their proposal, the importance of the proposed project for the Rust Project and its wider community, but also the availability of mentors, who are often volunteers and thus have limited time available for mentoring. +A team of mentors primarily composed of Rust Project contributors then thoroughly examined the submitted proposals. GSoC required us to produce a ranked list of the best proposals, which was a challenging task in itself since Rust is a big project with many priorities! We went through many rounds of discussions and had to consider many factors, such as prior conversations with the given applicant, the quality and scope of their proposal, the importance of the proposed project for the Rust Project and its wider community, but also the availability of mentors, who are often volunteers and thus have limited time available for mentoring. -In many cases, we had multiple proposals that aimed to accomplish the same goal, therefore, we had to pick only one despite receiving several high-quality proposals from people we'd love to work with. We also often had to choose between great proposals targeting different work within the same Rust component, to avoid overloading a single mentor with multiple projects. +In many cases, we had multiple proposals that aimed to accomplish the same goal. Therefore, we had to pick only one per project topic despite receiving several high-quality proposals from people we'd love to work with. We also often had to choose between great proposals targeting different work within the same Rust component to avoid overloading a single mentor with multiple projects. In the end, we narrowed the list down to twelve best proposals, which we felt was the maximum amount that we could realistically support with our available mentor pool. We submitted this list and eagerly awaited how many of these twelve proposals would be accepted into GSoC. @@ -23,9 +23,9 @@ TODO **Congratulations to all applicants whose project was selected!** The mentors are looking forward to working with you on these exciting projects to improve the Rust ecosystem. You can expect to hear from us soon, so that we can start coordinating the work on your GSoC projects. -We would also like to thank all the applicants whose proposal was sadly not accepted, for their interactions with the Rust community and contributions to various Rust projects. There were some great proposals that did not make the cut, because the capacity is quite limited. However, even if your proposal was not accepted, we would be happy if you would consider contributing to the projects that got you interested, even outside GSoC! Our [project idea list][project idea list] is still actual, and could serve as a general entrypoint for contributors that would like to work on projects that would help the Rust Project maintainers and the Rust ecosystem. +We would also like to thank all the applicants whose proposal was sadly not accepted, for their interactions with the Rust community and contributions to various Rust projects. There were some great proposals that did not make the cut, in large part because of limited review capacity. However, even if your proposal was not accepted, we would be happy if you would consider contributing to the projects that got you interested, even outside GSoC! Our [project idea list][project idea list] is still actual, and could serve as a general entry point for contributors that would like to work on projects that would help the Rust Project maintainers and the Rust ecosystem. -We cannot promise anything yet, but assuming our involvement in GSoC 2024 is successful, and we're able to participate next year as well, we hope to receive your proposals again in the future! It is also possible that we will announce our involvement in other similar programs in the near future, so make sure to subscribe to this blog so that you don't miss anything. +Assuming our involvement in GSoC 2024 is successful, there's a good chance we'll participate next year as well (though we can't promise anything yet) and we hope to receive your proposals again in the future! We also are planning to participate in similar programs in the very near future. Those announcements will come in separate blog posts, so make sure to subscribe to this blog so that you don't miss anything. The accepted GSoC projects will run for several months. After GSoC 2024 finishes (in autumn of 2024), we plan to publish a blog post in which we will summarize the outcome of the accepted projects. From 61f2fe2008539b39f7ffd281853cea6a090d2216 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 1 May 2024 09:35:54 -0700 Subject: [PATCH 0379/1024] Mention the `u128`/`i128` ABI change --- posts/2024-05-02-Rust-1.78.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/posts/2024-05-02-Rust-1.78.0.md b/posts/2024-05-02-Rust-1.78.0.md index 69288b912..e5b56ce70 100644 --- a/posts/2024-05-02-Rust-1.78.0.md +++ b/posts/2024-05-02-Rust-1.78.0.md @@ -137,6 +137,7 @@ These APIs are now stable in const contexts: - `i686-pc-windows-gnu` - `x86_64-pc-windows-gnullvm` - `i686-pc-windows-gnullvm` +* Rust 1.78 has upgraded its bundled LLVM to version 18, completing the announced [`u128`/`i128` ABI change](https://blog.rust-lang.org/2024/03/30/i128-layout-update.html) for x86-32 and x86-64 targets. Distributors that use their own LLVM older than 18 may still face the calling convention bugs mentioned in that post. ### Other changes From e2ccdbb968f661b208ba9ac1cf65da0c1fc85234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 1 May 2024 18:38:33 +0200 Subject: [PATCH 0380/1024] Add the selected projects --- posts/2024-05-01-gsoc-2024-selected-projects.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/posts/2024-05-01-gsoc-2024-selected-projects.md b/posts/2024-05-01-gsoc-2024-selected-projects.md index 12e531ca0..b89c7b2bd 100644 --- a/posts/2024-05-01-gsoc-2024-selected-projects.md +++ b/posts/2024-05-01-gsoc-2024-selected-projects.md @@ -17,9 +17,17 @@ In many cases, we had multiple proposals that aimed to accomplish the same goal. In the end, we narrowed the list down to twelve best proposals, which we felt was the maximum amount that we could realistically support with our available mentor pool. We submitted this list and eagerly awaited how many of these twelve proposals would be accepted into GSoC. ## Selected projects -On the 1st of May, Google has announced the accepted projects. We are happy to announce that `TODO` of our proposals have been accepted by Google, and will thus participate in Google Summer of Code 2024! Below you can find the list of accepted proposals, along with the names of their authors and the assigned mentor(s): - -TODO +On the 1st of May, Google has announced the accepted projects. We are happy to announce that `9` proposals out of the twelve that we have submitted were accepted by Google, and will thus participate in Google Summer of Code 2024! Below you can find the list of accepted proposals (in alphabetical order), along with the names of their authors and the assigned mentor(s): + +- **Adding lint-level configuration to cargo-semver-checks** by Max Carr, mentored by Predrag Gruevski +- **Implementation of a Faster Register Allocator For Cranelift** by d-sonuga, mentored by Chris Fallin and Amanieu d'Antras +- **Improve Rust benchmark suite** by s7tya, mentored by Jakub Beránek +- **Move cargo shell completions to Rust** by shanmu, mentored by Ed Page +- **Rewriting Esoteric, Error-Prone Makefile Tests Using Robust Rust Features** by Julien Robert, mentored by Jieyou Xu +- **Rewriting the Rewrite trait** by SeoYoung Lee, mentored by Yacin Tmimi +- **Rust to .NET compiler - add support for compiling & running cargo tests** by Fractal Fir, mentored by Jack Huey +- **Sandboxed and Deterministic Proc Macro using Wasm** by Apurva Mishra, mentored by David Lattimore +- **Tokio async support in Miri** by Tiffany Pek Yuan, mentored by Oli Scherer **Congratulations to all applicants whose project was selected!** The mentors are looking forward to working with you on these exciting projects to improve the Rust ecosystem. You can expect to hear from us soon, so that we can start coordinating the work on your GSoC projects. From 51a2efbaafa492f8fff353b46aee5a9348ad41af Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 1 May 2024 09:49:04 -0700 Subject: [PATCH 0381/1024] Apply suggestions from code review Co-authored-by: Mark Rousskov Co-authored-by: Trevor Gross --- posts/2024-05-02-Rust-1.78.0.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/posts/2024-05-02-Rust-1.78.0.md b/posts/2024-05-02-Rust-1.78.0.md index e5b56ce70..1dd0aef4a 100644 --- a/posts/2024-05-02-Rust-1.78.0.md +++ b/posts/2024-05-02-Rust-1.78.0.md @@ -84,20 +84,21 @@ For more information, see the reference section on [the `diagnostic` tool attrib ### Asserting `unsafe` preconditions -The Rust standard library has a number of assertions for the preconditions of `unsafe` functions, but historically they have only been enabled in `#[cfg(debug_assertions)]` builds to avoid affecting release performance. However, since the standard library is usually compiled and distributed in release mode, most Rust developers weren't ever executing these checks at all. +The Rust standard library has a number of assertions for the preconditions of `unsafe` functions, but historically they have only been enabled in `#[cfg(debug_assertions)]` builds of the standard library to avoid affecting release performance. However, since the standard library is usually compiled and distributed in release mode, most Rust developers weren't ever executing these checks at all. Now, the condition for these assertions is delayed until code generation, so they will be checked depending on the user's own setting for debug assertions -- enabled by default in debug and test builds. This change helps users catch undefined behavior in their code, though the details of how much is checked are generally not stable. -For example, [`slice::from_raw_parts`](https://doc.rust-lang.org/std/slice/fn.from_raw_parts.html) requires an aligned non-null pointer. The following use of a purposely-misaligned pointer has undefined behavior, _which may or may not cause noticeable ill effect otherwise_, but the debug assertion can now catch it: +For example, [`slice::from_raw_parts`](https://doc.rust-lang.org/std/slice/fn.from_raw_parts.html) requires an aligned non-null pointer. The following use of a purposely-misaligned pointer has undefined behavior, and while that may not have obvious effects, the debug assertion can now catch it: ```rust fn main() { let slice: &[u8] = &[1, 2, 3, 4, 5]; - let slice16: &[u16] = unsafe { - let ptr = slice.as_ptr(); - let i = usize::from(ptr as usize & 1 == 0); - std::slice::from_raw_parts(ptr.add(i) as *const u16, 2) - }; + let ptr = slice.as_ptr(); + + // Create an offset from `ptr` that will always be one off from `u16`'s correct alignment + let i = usize::from(ptr as usize & 1 == 0); + + let slice16: &[u16] = unsafe { std::slice::from_raw_parts(ptr.add(i).cast::(), 2) }; dbg!(slice16); } ``` From 94f9def07fc192d4020916ff58dcf23452667fff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Thu, 2 May 2024 09:04:25 +0200 Subject: [PATCH 0382/1024] Add links to GSoC 2024 projects to the announcement blog post --- .../2024-05-01-gsoc-2024-selected-projects.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/posts/2024-05-01-gsoc-2024-selected-projects.md b/posts/2024-05-01-gsoc-2024-selected-projects.md index b89c7b2bd..5b62b60b4 100644 --- a/posts/2024-05-01-gsoc-2024-selected-projects.md +++ b/posts/2024-05-01-gsoc-2024-selected-projects.md @@ -19,15 +19,15 @@ In the end, we narrowed the list down to twelve best proposals, which we felt wa ## Selected projects On the 1st of May, Google has announced the accepted projects. We are happy to announce that `9` proposals out of the twelve that we have submitted were accepted by Google, and will thus participate in Google Summer of Code 2024! Below you can find the list of accepted proposals (in alphabetical order), along with the names of their authors and the assigned mentor(s): -- **Adding lint-level configuration to cargo-semver-checks** by Max Carr, mentored by Predrag Gruevski -- **Implementation of a Faster Register Allocator For Cranelift** by d-sonuga, mentored by Chris Fallin and Amanieu d'Antras -- **Improve Rust benchmark suite** by s7tya, mentored by Jakub Beránek -- **Move cargo shell completions to Rust** by shanmu, mentored by Ed Page -- **Rewriting Esoteric, Error-Prone Makefile Tests Using Robust Rust Features** by Julien Robert, mentored by Jieyou Xu -- **Rewriting the Rewrite trait** by SeoYoung Lee, mentored by Yacin Tmimi -- **Rust to .NET compiler - add support for compiling & running cargo tests** by Fractal Fir, mentored by Jack Huey -- **Sandboxed and Deterministic Proc Macro using Wasm** by Apurva Mishra, mentored by David Lattimore -- **Tokio async support in Miri** by Tiffany Pek Yuan, mentored by Oli Scherer +- **[Adding lint-level configuration to cargo-semver-checks](https://summerofcode.withgoogle.com/programs/2024/projects/hADSyIDV)** by Max Carr, mentored by Predrag Gruevski +- **[Implementation of a Faster Register Allocator For Cranelift](https://summerofcode.withgoogle.com/programs/2024/projects/zxxeGZMt)** by d-sonuga, mentored by Chris Fallin and Amanieu d'Antras +- **[Improve Rust benchmark suite](https://summerofcode.withgoogle.com/programs/2024/projects/MeyNanKI)** by s7tya, mentored by Jakub Beránek +- **[Move cargo shell completions to Rust](https://summerofcode.withgoogle.com/programs/2024/projects/jjnidpgn)** by shanmu, mentored by Ed Page +- **[Rewriting Esoteric, Error-Prone Makefile Tests Using Robust Rust Features](https://summerofcode.withgoogle.com/programs/2024/projects/P5BC91Hr)** by Julien Robert, mentored by Jieyou Xu +- **[Rewriting the Rewrite trait](https://summerofcode.withgoogle.com/programs/2024/projects/gHEu3vxc)** by SeoYoung Lee, mentored by Yacin Tmimi +- **[Rust to .NET compiler - add support for compiling & running cargo tests](https://summerofcode.withgoogle.com/programs/2024/projects/IIHP5ozV)** by Fractal Fir, mentored by Jack Huey +- **[Sandboxed and Deterministic Proc Macro using Wasm](https://summerofcode.withgoogle.com/programs/2024/projects/kXG0mZoj)** by Apurva Mishra, mentored by David Lattimore +- **[Tokio async support in Miri](https://summerofcode.withgoogle.com/programs/2024/projects/rk1Ey4hN)** by Tiffany Pek Yuan, mentored by Oli Scherer **Congratulations to all applicants whose project was selected!** The mentors are looking forward to working with you on these exciting projects to improve the Rust ecosystem. You can expect to hear from us soon, so that we can start coordinating the work on your GSoC projects. From 728932d6e222ce12fbdc7603b1053218827565ea Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Thu, 2 May 2024 07:04:15 -0400 Subject: [PATCH 0383/1024] Update posts/2024-05-02-Rust-1.78.0.md Co-authored-by: scottmcm --- posts/2024-05-02-Rust-1.78.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-05-02-Rust-1.78.0.md b/posts/2024-05-02-Rust-1.78.0.md index 1dd0aef4a..f1ddebf89 100644 --- a/posts/2024-05-02-Rust-1.78.0.md +++ b/posts/2024-05-02-Rust-1.78.0.md @@ -88,7 +88,7 @@ The Rust standard library has a number of assertions for the preconditions of `u Now, the condition for these assertions is delayed until code generation, so they will be checked depending on the user's own setting for debug assertions -- enabled by default in debug and test builds. This change helps users catch undefined behavior in their code, though the details of how much is checked are generally not stable. -For example, [`slice::from_raw_parts`](https://doc.rust-lang.org/std/slice/fn.from_raw_parts.html) requires an aligned non-null pointer. The following use of a purposely-misaligned pointer has undefined behavior, and while that may not have obvious effects, the debug assertion can now catch it: +For example, [`slice::from_raw_parts`](https://doc.rust-lang.org/std/slice/fn.from_raw_parts.html) requires an aligned non-null pointer. The following use of a purposely-misaligned pointer has undefined behavior, and while if you were unlucky it may have *appeared* to "work" in the past, the debug assertion can now catch it: ```rust fn main() { From 738ee3b38eb1a5553bca7a5b187b670e130b57b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 12:41:59 +0000 Subject: [PATCH 0384/1024] Update dependency rust to v1.78.0 --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a64cfeabb..341073146 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.77.2 + RUST_VERSION: 1.78.0 jobs: lint: From a829786bc19f3869996e1ebaaa9de3bb1b7f3f5f Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Thu, 2 May 2024 16:19:41 +0200 Subject: [PATCH 0385/1024] style: wrap text code to prevent content overflow-x --- src/styles/app.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/styles/app.scss b/src/styles/app.scss index bd59032be..e23ef10d7 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -163,6 +163,11 @@ div.brand { color: black; background-color: rgba($gray, 0.05); border: 1px solid rgba($gray, 0.25); + white-space: pre-wrap; + } + + pre code { + white-space: inherit; } a.anchor::before { From 80c2bb930f24b143a2b2877069660d4bea3da963 Mon Sep 17 00:00:00 2001 From: Urgau Date: Fri, 3 May 2024 21:34:08 +0200 Subject: [PATCH 0386/1024] Schedule for the 8th of may and populate last remaining links --- ...2024-04-29-check-cfg.md => 2024-05-08-check-cfg.md} | 10 +++++----- .../cargo-check.svg | 0 2 files changed, 5 insertions(+), 5 deletions(-) rename posts/{2024-04-29-check-cfg.md => 2024-05-08-check-cfg.md} (92%) rename static/images/{2024-04-29-check-cfg => 2024-05-08-check-cfg}/cargo-check.svg (100%) diff --git a/posts/2024-04-29-check-cfg.md b/posts/2024-05-08-check-cfg.md similarity index 92% rename from posts/2024-04-29-check-cfg.md rename to posts/2024-05-08-check-cfg.md index 10d47820b..2d13498c0 100644 --- a/posts/2024-04-29-check-cfg.md +++ b/posts/2024-05-08-check-cfg.md @@ -7,7 +7,7 @@ team: The Cargo Team In Cargo point-of-view: a custom cfg is one that is neither defined by `rustc` nor by a Cargo feature. Think of `tokio_unstable`, `has_foo`, ... but not `feature = "lasers"`, `unix`, ... -Some crates use custom cfgs that they either expected from the environment (`RUSTFLAGS`or other means) or is enabled by some logic in the crate `build.rs`. For those crates Cargo provides a new instruction: [`cargo::rustc-check-cfg`](TODO)[^2] (or `cargo:rustc-check-cfg` for older Cargo version). +Some crates use custom cfgs that they either expected from the environment (`RUSTFLAGS`or other means) or is enabled by some logic in the crate `build.rs`. For those crates Cargo provides a new instruction: [`cargo::rustc-check-cfg`](https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg)[^2] (or `cargo:rustc-check-cfg` for older Cargo version). -[^2]: `cargo::rustc-check-cfg` will start working in Rust 1.80 (or nightly-2024-04-XX). From Rust 1.77 to Rust 1.79 *(inclusive)* it is silently ignored. In Rust 1.76 and below a warning is emitted when used without the unstable Cargo flag `-Zcheck-cfg`. +[^2]: `cargo::rustc-check-cfg` will start working in Rust 1.80 (or nightly-2024-05-08). From Rust 1.77 to Rust 1.79 *(inclusive)* it is silently ignored. In Rust 1.76 and below a warning is emitted when used without the unstable Cargo flag `-Zcheck-cfg`. The syntax to use is described in the [rustc book](https://doc.rust-lang.org/nightly/rustc/) section [checking configuration](https://doc.rust-lang.org/nightly/rustc/check-cfg.html), but in a nutshell the basic syntax of `--check-cfg` is: @@ -89,7 +89,7 @@ fn main() { | `foo="1"` and `bar="2"` | `cfg(foo, values("1"))` and `cfg(bar, values("2"))` | | `foo` and `foo="bar"` | `cfg(foo, values(none(), "bar"))` | -More details can be found on the [`rustc` book](https://doc.rust-lang.org/nightly/rustc/check-cfg.html). +More details can be found in the [`rustc` book](https://doc.rust-lang.org/nightly/rustc/check-cfg.html). ## Frequently asked questions diff --git a/static/images/2024-04-29-check-cfg/cargo-check.svg b/static/images/2024-05-08-check-cfg/cargo-check.svg similarity index 100% rename from static/images/2024-04-29-check-cfg/cargo-check.svg rename to static/images/2024-05-08-check-cfg/cargo-check.svg From 2682b15f41a6d3fed7f22cd03e97be8d0419b712 Mon Sep 17 00:00:00 2001 From: Urgau Date: Sat, 4 May 2024 16:02:46 +0200 Subject: [PATCH 0387/1024] Change the schedule to tomorrow (2024-05-05) --- posts/{2024-05-08-check-cfg.md => 2024-05-05-check-cfg.md} | 6 +++--- .../cargo-check.svg | 0 2 files changed, 3 insertions(+), 3 deletions(-) rename posts/{2024-05-08-check-cfg.md => 2024-05-05-check-cfg.md} (96%) rename static/images/{2024-05-08-check-cfg => 2024-05-05-check-cfg}/cargo-check.svg (100%) diff --git a/posts/2024-05-08-check-cfg.md b/posts/2024-05-05-check-cfg.md similarity index 96% rename from posts/2024-05-08-check-cfg.md rename to posts/2024-05-05-check-cfg.md index 2d13498c0..3944e6368 100644 --- a/posts/2024-05-08-check-cfg.md +++ b/posts/2024-05-05-check-cfg.md @@ -7,7 +7,7 @@ team: The Cargo Team Date: Sat, 4 May 2024 16:31:19 +0200 Subject: [PATCH 0388/1024] Stylist nitpicks --- posts/2024-05-05-check-cfg.md | 25 +++++++++++-------- .../2024-05-05-check-cfg/cargo-check.svg | 10 ++++---- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/posts/2024-05-05-check-cfg.md b/posts/2024-05-05-check-cfg.md index 3944e6368..cb5ef2789 100644 --- a/posts/2024-05-05-check-cfg.md +++ b/posts/2024-05-05-check-cfg.md @@ -5,9 +5,7 @@ author: Urgau team: The Cargo Team --- -# Automatic checking of cfgs at compile-time - -The Cargo and Compiler team are delighted to announce that starting with Rust 1.80 (or nightly-2024-05-05) every _reachable_ `#[cfg]` will be automatically checked that they match the expected config names and values. +The Cargo and Compiler team are delighted to announce that starting with Rust 1.80 (or nightly-2024-05-05) every _reachable_ `#[cfg]` will be **automatically checked** that they match the **expected config names and values**. This can help with verifying that the crate is correctly handling conditional compilation for different target platforms or features. It ensures that the cfg settings are consistent between what is intended and what is used, helping to catch potential bugs or errors early in the development process. @@ -33,26 +31,30 @@ zapping = [] ``` *`src/lib.rs`:* + ```rust #[cfg(feature = "lasers")] // This condition is expected - // as "lasers" is an expected value of `feature` + // as "lasers" is an expected value + // of the `feature` cfg fn shoot_lasers() {} #[cfg(feature = "monkeys")] // This condition is UNEXPECTED - // as "monkeys" is NOT an expected value of `feature` + // as "monkeys" is NOT an expected + // value of the `feature` cfg fn write_shakespeare() {} #[cfg(windosw)] // This condition is UNEXPECTED - // it's supposed to be `windows` + // it's supposed to be `windows` fn win() {} ``` *`cargo check`*: + ![cargo-check](../../../../images/2024-05-05-check-cfg/cargo-check.svg) ## Custom cfgs and build scripts -> In Cargo point-of-view: a custom cfg is one that is neither defined by `rustc` nor by a Cargo feature. Think of `tokio_unstable`, `has_foo`, ... but not `feature = "lasers"`, `unix`, ... +> In Cargo point-of-view: a custom cfg is one that is neither defined by `rustc` nor by a Cargo feature. Think of `tokio_unstable`, `has_foo`, ... but not `feature = "lasers"`, `unix` or `debug_assertions` Some crates use custom cfgs that they either expected from the environment (`RUSTFLAGS`or other means) or is enabled by some logic in the crate `build.rs`. For those crates Cargo provides a new instruction: [`cargo::rustc-check-cfg`](https://doc.rust-lang.org/nightly/cargo/reference/build-scripts.html#rustc-check-cfg)[^2] (or `cargo:rustc-check-cfg` for older Cargo version). @@ -60,7 +62,9 @@ Some crates use custom cfgs that they either expected from the environment (`RUS The syntax to use is described in the [rustc book](https://doc.rust-lang.org/nightly/rustc/) section [checking configuration](https://doc.rust-lang.org/nightly/rustc/check-cfg.html), but in a nutshell the basic syntax of `--check-cfg` is: -> `cfg(name, values("value1", "value2", ..., "valueN"))` +``` +cfg(name, values("value1", "value2", ..., "valueN")) +``` Note that every custom cfgs must always be expected, regardless if the cfg is active or not! @@ -69,7 +73,8 @@ Note that every custom cfgs must always be expected, regardless if the cfg is ac `build.rs`: ```rust fn main() { - println!("cargo::rustc-check-cfg=cfg(has_foo)"); // <-- new with Cargo 1.80 + println!("cargo::rustc-check-cfg=cfg(has_foo)"); + // ^^^^^^^^^^^^^^^^^^^^^^ new with Cargo 1.80 if has_foo() { println!("cargo::rustc-cfg=has_foo"); } @@ -95,7 +100,7 @@ More details can be found in the [`rustc` book](https://doc.rust-lang.org/nightl ### Can it be disabled? -The feature is **always on** and _cannot_ be disabled from Cargo, but like any other lints it can be controlled: `#![allow(unexpected_cfgs)]`. +The feature is **always on** and _cannot_ be disabled from Cargo, but like any other lints it can be controlled: `#![warn(unexpected_cfgs)]`. ### Does the lint affect dependencies? diff --git a/static/images/2024-05-05-check-cfg/cargo-check.svg b/static/images/2024-05-05-check-cfg/cargo-check.svg index e62e98b9e..ec63dcdd5 100644 --- a/static/images/2024-05-05-check-cfg/cargo-check.svg +++ b/static/images/2024-05-05-check-cfg/cargo-check.svg @@ -20,15 +20,15 @@ - Checking foo v0.0.0 (/tmp/foo) + Checking foo v0.0.0 (foo/) warning: unexpected `cfg` condition value: `monkeys` - --> src/lib.rs:5:7 + --> src/lib.rs:6:7 | - 5 | #[cfg(feature = "monkeys")] + 6 | #[cfg(feature = "monkeys")] | ^^^^^^^^^^^^^^^^^^^ @@ -48,11 +48,11 @@ warning: unexpected `cfg` condition name: `windosw` - --> src/lib.rs:9:7 + --> src/lib.rs:11:7 | - 9 | #[cfg(windosw)] + 11| #[cfg(windosw)] | ^^^^^^^ help: there is a config with a similar name: `windows` From 97e7058fd2f1fdf71778173d1ca38f2cccf2caeb Mon Sep 17 00:00:00 2001 From: Urgau Date: Sat, 4 May 2024 17:16:08 +0200 Subject: [PATCH 0389/1024] Double-column and put unconditional in bold --- posts/2024-05-05-check-cfg.md | 2 +- static/images/2024-05-05-check-cfg/cargo-check.svg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/2024-05-05-check-cfg.md b/posts/2024-05-05-check-cfg.md index cb5ef2789..898834723 100644 --- a/posts/2024-05-05-check-cfg.md +++ b/posts/2024-05-05-check-cfg.md @@ -81,7 +81,7 @@ fn main() { } ``` -> Note: Each `cargo::rustc-cfg` must always have a accompanying _unconditional_ `cargo::rustc-check-cfg` directive otherwise you risk having warnings like this:`unexpected cfg condition name: has_foo`. +> Each `cargo::rustc-cfg` must always have a accompanying **unconditional** `cargo::rustc-check-cfg` directive otherwise you risk having warnings like this: `unexpected cfg condition name: has_foo`. ### Equivalence table diff --git a/static/images/2024-05-05-check-cfg/cargo-check.svg b/static/images/2024-05-05-check-cfg/cargo-check.svg index ec63dcdd5..c6531e13a 100644 --- a/static/images/2024-05-05-check-cfg/cargo-check.svg +++ b/static/images/2024-05-05-check-cfg/cargo-check.svg @@ -60,7 +60,7 @@ = help: consider using a Cargo feature instead or adding - `println!("cargo:rustc-check-cfg=cfg(windosw)");` to the top of a `build.rs` + `println!("cargo::rustc-check-cfg=cfg(windosw)");` to the top of a `build.rs` = note: see <https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#check-cfg> From ff802a041f142615a69e9ccefa23499b207505e2 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Sat, 4 May 2024 18:40:32 +0200 Subject: [PATCH 0390/1024] This Development-cycle in Cargo 1.79 --- ...07-this-development-cycle-in-cargo-1.79.md | 457 ++++++++++++++++++ 1 file changed, 457 insertions(+) create mode 100644 posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md diff --git a/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md b/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md new file mode 100644 index 000000000..93fc2bdbe --- /dev/null +++ b/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md @@ -0,0 +1,457 @@ +--- +layout: post +title: "This Development-cycle in Cargo: 1.79" +author: Ed Page +team: The Cargo Team +--- + +# This Development-cycle in Cargo: 1.79 + +This is a summary of what has been happening around Cargo development for the last 6 weeks which is approximately the merge window for Rust 1.79. + + + +- [Plugin of the cycle](#plugin-of-the-cycle) +- [Implementation](#implementation) + - [Deprecations](#deprecations) + - [User-controlled diagnostics](#user-controlled-cargo-diagnostics) + - [MSRV-aware Cargo](#msrv-aware-cargo) + - [Edition 2024](#edition-2024) + - [Normalizing Published Package Files](#normalizing-published-package-files) + - [`cargo info`](#cargo-info) +- [Design discussions](#design-discussions) + - [Applying patch files to dependencies](#applying-patch-files-to-dependencies) + - [Cargo script](#cargo-script) + - [SBOM](#sbom) + - [Nested packages](#nested-packages) + - [Workspace inheritance of deps](#workspace-inheritance-of-deps) +- [Misc](#misc) +- [Focus areas without progress](#focus-areas-without-progress) + +## Plugin of the cycle + +Cargo can't be everything to everyone, +if for no other reason than the compatibility guarantees it must uphold. +Plugins play an important part of the Cargo ecosystem and we want to celebrate them. + +Our plugin for this cycle is [cargo-outdated](https://crates.io/crates/cargo-outdated) which gives an overview of out-of-date dependencies. +As of Cargo 1.78, we include some of this information in the `cargo-update` output +([#13372](https://github.com/rust-lang/cargo/pull/13372)). +Try giving `cargo update --dry-run --verbose` a try! +As for how we could further improve our reporting of outdated dependencies, +see [#4309](https://github.com/rust-lang/cargo/issues/4309). + +Thanks to [LukeMathWalker](https://github.com/LukeMathWalker) for the suggestion! + +[Please submit your suggestions for the next post.](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Plugin.20of.20the.20Dev.20Cycle/near/420703211) + +## Implementation + +##### Deprecations + +*[Update from 1.78](https://blog.rust-lang.org/inside-rust/2024/03/26/this-development-cycle-in-cargo-1.78.html#deprecated-cargotoml-fields) + +[weihanglo](https://github.com/weihanglo/) dug into the cargo code base to enumerate official and unofficial deprecations and recorded them in +[#13629](https://github.com/rust-lang/cargo/issues/13629). + + +The deprecations ended up being divided into the following categories: + +**Deprecate, remove on next Edition:** including [#13747](https://github.com/rust-lang/cargo/pull/13747), [#13804](https://github.com/rust-lang/cargo/pull/13804), and [#13839](https://github.com/rust-lang/cargo/pull/13839). + +**Deprecate but never remove:** This is targeted on areas like the CLI or `.cargo/config.toml` which don't have an Edition mechanism to evolve them. + +**Remove, breaking compatibility:** This is focused on bugs with little impact to users. + +An easy example is `badges.workspace = true` allowing inheritance from `package.badges`. +This was not in the RFC, undocumented, and didn't follow the standard pattern for inheritance making it harder to discover. +We remove support for this in [#13788](https://github.com/rust-lang/cargo/pull/13788). + + +Cargo also allowed dependencies without a source (e.g. `dep = {}`). +This was originally removed 3 years ago in [#9686](https://github.com/rust-lang/cargo/pull/9686). +This was reverted after it was reported to have broken an old version of the `bit-set` crate which was used by `libusb` which has gone unmaintained ([see #9885](https://github.com/rust-lang/cargo/issues/9885)). +We revisited this and decided to remove support for it again +(see [#13775](https://github.com/rust-lang/cargo/pull/13775)) +and soon after a user of libusb noticed again +([#13824](https://github.com/rust-lang/cargo/issues/13824)). +After looking at this more carefully, we decided to stick with our original decision. +Users of libusb have had 3 years and there are two maintained replacement packages +([rusb](https://crates.io/crates/rusb) and [nusb](https://crates.io/crates/nusb)). + +**Re-evaluate in the future:** In particular, for [#4797](https://github.com/rust-lang/cargo/pull/4797), we want to wait until there is a stable mechanism to replace it. + +##### User-controlled cargo diagnostics + +*[Update from 1.78](https://blog.rust-lang.org/inside-rust/2024/03/26/this-development-cycle-in-cargo-1.78.html#user-controlled-cargo-diagnostics). In summary, this aims to add [user-controlled cargo lints](https://github.com/rust-lang/cargo/issues/12235) that look like rustc and are controlled through the [`[lints]` table](https://doc.rust-lang.org/cargo/reference/manifest.html#the-lints-section)* + +[Muscraft](https://github.com/Muscraft) started off this development cycle with a rough sketch of lint system ([#13621](https://github.com/rust-lang/cargo/pull/13621)) and fleshed it out and polished it up including +- Reporting why a lint is being shown ([#13801](https://github.com/rust-lang/cargo/pull/13801)) +- Handling `forbid`'s special behavior ([#13797](https://github.com/rust-lang/cargo/pull/13797/commits)) +- Support for unstable lints ([#13805](https://github.com/rust-lang/cargo/pull/13805)) + + +Original lint names were written using kebab-case. +In [#13635](https://github.com/rust-lang/cargo/pull/13635), +they were switched to also support snake_case to match rustc. +After we had to deal with deprecating snake_case fields in `Cargo.toml`, +[Muscraft](https://github.com/Muscraft) brought up whether we should initially only support one case. +A couple of the participants stylistically preferred kebab-case, especially to match the rest of the manifest. +However, rustc considers snake_case to be the canonical form and we decided that would be a good starting point +([#13837](https://github.com/rust-lang/cargo/pull/13837)). +We can always add a second style later, if we so wished. + + +Our test case for this functionality is deprecatoing implicit features in Edition 2024. +We modeled this as a deprecation warning when implicit features exist in all current Editions +while Edition 2024 would report the optional dependency as unused ([#13778](https://github.com/rust-lang/cargo/pull/13778)). +We discussed how we wanted to model unused optional dependemncies. +At a high level, the most direct way is we just change how we generate features based on the edition. +However, this doesn't play well with registry packages. +We resolve them off of the Index which doesn't have the full `Cargo.toml`, particularly the Edition, +and prior versions of Cargo would read these Index entries and generate implicit features, breaking on upgrade without extra care. +Maybe we should work to support the Edition in the Index but we don't need to do that now. +We ended up stripping unused optional dependencies from the published `Cargo.toml` and the Index. +The way this was done also means they won't show up in `Cargo.lock` like unused `workspace.dependencies`. +As a side effect, some lints may not run against these dependencies. + +##### MSRV-aware Cargo + +*[Update from 1.78](https://blog.rust-lang.org/inside-rust/2024/03/26/this-development-cycle-in-cargo-1.78.html#msrv-aware-cargo)* + +The subset needed for Edition 2024 is effectively code complete! +Feel free to [try it out](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#msrv-aware-resolver) +and [leave feedback](https://github.com/rust-lang/cargo/issues/9930). + +We continued to iterate on how we report lockfile changes, including +- Reporting that dependencies changed on any command, not just `update` ([#13561](https://github.com/rust-lang/cargo/pull/13561), [#13759](https://github.com/rust-lang/cargo/pull/13759)) + +We've continued to iterate on the MSRV resolver's behavior, including +- Defaulting to `rustc -V` when your `package.rust-version` is unset ([#13743](https://github.com/rust-lang/cargo/pull/13743)) +- Tweaked the behavior when a dependency's `package.rust-version` is unset ([#13791](https://github.com/rust-lang/cargo/pull/13791)) +- Avoiding it for `cargo install` ([#13790](https://github.com/rust-lang/cargo/pull/13790)) + +As for controlling the resolver policy, we've implemented: +- `--ignore-rust-version` disables it ([#13738](https://github.com/rust-lang/cargo/pull/13738)) +- We added `--ignore-rust-version` to `cargo update` and `cargo generate-lockfile` ([#13742](https://github.com/rust-lang/cargo/pull/13742)) +- We added a placeholder config field so it can be forced on or off ([#13769](https://github.com/rust-lang/cargo/pull/13769)) +- We added `package.resolver = "3"` ([#13776](https://github.com/rust-lang/cargo/pull/13776)) +- We made this the default resolver for Edition 2024 ([#13785](https://github.com/rust-lang/cargo/pull/13785)) + +##### Edition 2024 + +*[Update from 1.76](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#meta-2024-edition)* + +In addition to the above, work on Editions draws more attention to `cargo fix`. +This includes [#13728](https://github.com/rust-lang/cargo/pull/13728) and [#13792](https://github.com/rust-lang/cargo/pull/13792) +by [weihanglo](https://github.com/weihanglo/). + +We also discussed [on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/.60cargo.20fix.20--edition.60.20and.20.60Cargo.2Etoml.60.20changes) if there are `Cargo.toml` changes that should be made by `cargo fix --edition`, like updating the `package.edition` or the `package.rust-version`. + +The challenge with updating `package.edition` is `cargo fix` only runs for one set of build targets, platforms, and feature combinations and so we don't know when an entire project is fully converted over to the new edition. +The user might need to make multiple calls to migrate and updating `package.edition` too early can get in the way of that. + +##### Normalizing Published Package Files + +*[Update from 1.78](https://blog.rust-lang.org/inside-rust/2024/03/26/this-development-cycle-in-cargo-1.78.html#performance)* + +After much work ( +[#13666](https://github.com/rust-lang/cargo/pull/13666) +[#13693](https://github.com/rust-lang/cargo/pull/13693) +[#13701](https://github.com/rust-lang/cargo/pull/13701) +[#13713](https://github.com/rust-lang/cargo/pull/13713) +[#13729](https://github.com/rust-lang/cargo/pull/13729) +), published and vendored `Cargo.toml` files will now include all build targets explicitly enumerated. + +Benefits +- You cannot bypass the checksum in adding a build target to a vendored dependency by dropping a file +- When all build targets have an explicit path, you now get a warning if one is excluded when packing, helping to catch mistakes +- You can now intentionally exclude a build target from publishing without having to set the path +- It is easier to audit changes to the build targets across versions +- We hope this opens the door to more performance improvements when parsing large dependency trees + +As a side effect, the output from `cargo vendor` will vary by Cargo version. +We try to minimize this kind of churn but felt it was justified in this case. + +##### `cargo info` + +*[Update from 1.76](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#cargo-info)* + +There was some recent discussion on an issue for how `cargo add` should render features +([#10681](https://github.com/rust-lang/cargo/issues/10681)). +epage figured `cargo info` could be a good place to try out their proposal +([cargo-information#140](https://github.com/hi-rustin/cargo-information/pull/140)). +A controversial aspect of this was to apply the same rendering to dependencies to distinguish between required, activated-optional, and deactivated-optional dependencies. + +epage also made the auto-selection of what version to show a little smarter. +Instead of showing the latest when a version is unspecified, +`cargo info` tries to be smart and show you a version that is relevant. +Before, that was a version from your lockfile or a MSRV-compatible version. +With [cargo-information#137](https://github.com/hi-rustin/cargo-information/pull/137), +we don't just check the lockfile but first check the direct dependencies of the package you are in and then the direct dependencies of all workspace members, making it more likely what will be shown is what you will be using. + +At this point, [`cargo-information`](https://crates.io/crates/cargo-information) feels like it could be ready to merge into cargo. +Please give it a try and [let us know what you think](https://github.com/hi-rustin/cargo-information/issues)! + +## Design discussions + +#### Applying patch files to dependencies + +*[Update from 1.76](https://blog.rust-lang.org/inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html#postponing-rfcs)* + +Previously, we discussed closing this RFC, asking for an experimental implementation to help flesh out the design. +[weihanglo](https://github.com/weihanglo/) stepped in with a proof of concept in [#13779](https://github.com/rust-lang/cargo/pull/13779). +High level design discussions are on-going on that PR. + +#### Cargo script + +*[Update from 1.77](https://blog.rust-lang.org/inside-rust/2024/02/13/this-development-cycle-in-cargo-1-77.html#cargo-script)* + +T-lang has approved [RFC #3503](https://github.com/rust-lang/rfcs/pull/3503) for the syntax of embedding manifests. +This still leaves [RFC #3502](https://github.com/rust-lang/rfcs/pull/3502). + + +While cargo script is primarily focused on exploration, +there will be times people want to do heavy analysis and want release builds (see [RFC comment](https://github.com/rust-lang/rfcs/pull/3502#discussion_r1337996703)). + +We could add `cargo --release + diff --git a/templates/headers.hbs b/templates/headers.hbs index 3e19aa182..f94e6eea0 100644 --- a/templates/headers.hbs +++ b/templates/headers.hbs @@ -1,9 +1,9 @@ - - - - - - + + + + + + @@ -19,6 +19,11 @@ + + + @@ -29,5 +34,5 @@ - - + + diff --git a/templates/nav.hbs b/templates/nav.hbs index d63976122..67fb224a5 100644 --- a/templates/nav.hbs +++ b/templates/nav.hbs @@ -13,5 +13,11 @@
  1. Tools
  2. Governance
  3. Community
  4. + From 9154e8e86e498f4b3e5ffc5c68d4e97c2f0dcd2d Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Tue, 20 Aug 2024 17:25:40 -0700 Subject: [PATCH 0518/1024] Rename date for today --- ...lection.md => 2024-08-20-leadership-council-repr-selection.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2024-08-19-leadership-council-repr-selection.md => 2024-08-20-leadership-council-repr-selection.md} (100%) diff --git a/posts/inside-rust/2024-08-19-leadership-council-repr-selection.md b/posts/inside-rust/2024-08-20-leadership-council-repr-selection.md similarity index 100% rename from posts/inside-rust/2024-08-19-leadership-council-repr-selection.md rename to posts/inside-rust/2024-08-20-leadership-council-repr-selection.md From b726e3b10f736d587dc0e81b505280c21e4fb1f3 Mon Sep 17 00:00:00 2001 From: James Munns Date: Thu, 22 Aug 2024 15:25:47 +0200 Subject: [PATCH 0519/1024] Add EWG Survey announcement post --- .../2024-08-22-embedded-wg-micro-survey.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md diff --git a/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md b/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md new file mode 100644 index 000000000..cd0adad89 --- /dev/null +++ b/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md @@ -0,0 +1,33 @@ +--- +layout: post +title: "Embedded Working Group Community Micro Survey" +author: James Munns +team: Embedded Devices Working Group +--- + +The [Embedded devices working group] has launched the [2024 Community Micro Survey] starting +today, and running until **September 19th, 2024**. + +**You can take the survey now by [clicking here][2024 Community Micro Survey].** + +[Embedded devices working group]: https://www.rust-lang.org/governance/wgs/embedded +[2024 Community Micro Survey]: https://www.surveyhero.com/c/uenp3ydt + +This survey is aimed at gathering information about the community of users who use the Rust Programming Language +for Embedded Systems, including on microcontrollers. It is being run as a [Micro Survey], run by the same +Rust Survey Team responsible for the [Annual Rust Survey]. The survey is only offered in the English language. + +[Micro Survey]: https://github.com/rust-lang/surveys/blob/main/micro-surveys.md +[Annual Rust Survey]: https://blog.rust-lang.org/2024/02/19/2023-Rust-Annual-Survey-2023-results.html + +We invite you to take this survey even if you have only just begun with Rust on Embedded Systems, +or have only experimented with it informally. Your responses will help us gather data over time towards +the adoption of Rust for these systems. + +Please help us spread the word by sharing the [survey link][2024 Community Micro Survey] via your social networks, +at meetups, with colleagues, and in any other community that makes sense to you. + +This survey would not be possible without the time, resources, and attention of members of the Survey Working Group, +the Embedded Working Group, the Rust Foundation, and other collaborators. Thank you! + +We appreciate your participation! From 3d827daf1091179159c1630228464401dcbd3c1b Mon Sep 17 00:00:00 2001 From: James Munns Date: Thu, 22 Aug 2024 17:20:28 +0200 Subject: [PATCH 0520/1024] Fix Survey Team --- posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md b/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md index cd0adad89..1488f65d2 100644 --- a/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md +++ b/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md @@ -27,7 +27,7 @@ the adoption of Rust for these systems. Please help us spread the word by sharing the [survey link][2024 Community Micro Survey] via your social networks, at meetups, with colleagues, and in any other community that makes sense to you. -This survey would not be possible without the time, resources, and attention of members of the Survey Working Group, +This survey would not be possible without the time, resources, and attention of members of the Survey Team, the Embedded Working Group, the Rust Foundation, and other collaborators. Thank you! We appreciate your participation! From 8cc517d3f1427a7e9f9c42e624ed1a9be9c035f6 Mon Sep 17 00:00:00 2001 From: James Munns Date: Thu, 22 Aug 2024 17:27:30 +0200 Subject: [PATCH 0521/1024] Make it more clear this is embedded --- posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md b/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md index 1488f65d2..72e4f3dd9 100644 --- a/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md +++ b/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md @@ -5,13 +5,13 @@ author: James Munns team: Embedded Devices Working Group --- -The [Embedded devices working group] has launched the [2024 Community Micro Survey] starting +The [Embedded devices working group] has launched the [2024 Embedded Community Micro Survey] starting today, and running until **September 19th, 2024**. -**You can take the survey now by [clicking here][2024 Community Micro Survey].** +**You can take the survey now by [clicking here][2024 Embedded Community Micro Survey].** [Embedded devices working group]: https://www.rust-lang.org/governance/wgs/embedded -[2024 Community Micro Survey]: https://www.surveyhero.com/c/uenp3ydt +[2024 Embedded Community Micro Survey]: https://www.surveyhero.com/c/uenp3ydt This survey is aimed at gathering information about the community of users who use the Rust Programming Language for Embedded Systems, including on microcontrollers. It is being run as a [Micro Survey], run by the same @@ -24,7 +24,7 @@ We invite you to take this survey even if you have only just begun with Rust on or have only experimented with it informally. Your responses will help us gather data over time towards the adoption of Rust for these systems. -Please help us spread the word by sharing the [survey link][2024 Community Micro Survey] via your social networks, +Please help us spread the word by sharing the [survey link][2024 Embedded Community Micro Survey] via your social networks, at meetups, with colleagues, and in any other community that makes sense to you. This survey would not be possible without the time, resources, and attention of members of the Survey Team, From 9ddd7987286f3b9893f174f799415bd309de9cee Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Fri, 23 Aug 2024 09:15:58 -0700 Subject: [PATCH 0522/1024] Add a post about changes to WebAssembly targets This post is intended to be a summary of the changes and impact to users after discussion in https://github.com/rust-lang/rust/pull/127513, https://github.com/rust-lang/rust/pull/128511, and some surrounding issues. --- ...-targets-and-new-on-by-default-features.md | 191 ++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 posts/2024-08-26-webassembly-targets-and-new-on-by-default-features.md diff --git a/posts/2024-08-26-webassembly-targets-and-new-on-by-default-features.md b/posts/2024-08-26-webassembly-targets-and-new-on-by-default-features.md new file mode 100644 index 000000000..38dcf955c --- /dev/null +++ b/posts/2024-08-26-webassembly-targets-and-new-on-by-default-features.md @@ -0,0 +1,191 @@ +--- +layout: post +title: "WebAssembly targets and new on-by-default features" +author: Alex Crichton +--- + +The Rust compiler has [recently upgraded to using LLVM 19][llvm19] and this +change accompanies some updates to WebAssembly targets of the Rust compiler. +Nightly Rust, what will be come Rust 1.82 on 2024-10-17, reflects all of these +changes and can be used for testing. + +WebAssembly is an evolving standard where new features are being added over time +through a [proposals process][proposals]. As WebAssembly proposals reach +maturity, get merged into the specification itself, get implemented in engines, +and remains this way for quite some time then producer toolchains (e.g. LLVM) +are going to update to include these new proposals by default. In LLVM 19 this +has happened with the [multi-value and reference-types proposals][llvmenable]. +These are now enabled by default in LLVM and transitively means that it's +enabled by default for Rust as well. + +WebAssembly targets for Rust now [have improved +documentation](https://github.com/rust-lang/rust/pull/128511) about WebAssembly +features and disabling them, and this post is going to review these changes and +go into depth about what's changing in LLVM. + +## Enabling Reference Types by Default + +The [reference-types proposal to +WebAssembly](https://github.com/webAssembly/reference-types) introduced a few +new concepts to WebAssembly, notably the `externref` type which is a +host-defined GC resource that WebAssembly cannot access but can pass around. +Rust does not have support for the WebAssembly `externref` type and LLVM 19 does +not change that. WebAssembly modules produced from Rust will continue to not use +the `externref` type nor have a means of being able to do so. + +Also included in the reference-types proposal, however, was the ability to have +multiple WebAssembly tables in a single module. In the original version of the +WebAssembly specification only a single table was allowed and this restriction +was relaxed with the reference-types proposal. WebAssembly tables are used by +LLVM and Rust to implement indirect function calls. For example function +pointers in WebAssembly are actually table indices and indirect function calls +are a WebAssembly `call_indirect` instruction with this table index. + +With the reference-types proposal the binary encoding of `call_indirect` +instructions was updated. Prior to the reference-types proposal `call_indirect` +was encoded with a fixed zero byte in its instruction (required to be exactly +0x00). This fixed zero byte was relaxed to a 32-bit [LEB] to indicate which +table the `call_indirect` instruction was using. For those unfamiliar [LEB] is a +way of encoding multi-byte integers in a smaller number of bytes for smaller +integers. For example the integer 0 can be encoded as `0x00` with a [LEB]. +[LEB]s are flexible to additionally allow "overlong" encodings so the integer 0 +can additionally be encoded as `0x80 0x00`. + +LLVM's support of separate compilation of source code to a WebAssembly binary +means that when an object file is emitted it does not know the final index of +the table that is going to be used in the final binary. Before reference-types +there was only one option, table 0, so `0x00` was always used when encoding +`call_indirect` instructions. After reference-types, however, LLVM will emit an +over-long [LEB] of the form `0x80 0x80 0x80 0x80 0x00` which is the maximal +length of a 32-bit [LEB]. This [LEB] is then filled in by the linker with a +relocation to the actual table index that is used by the final module. + +When putting all of this together it means that LLVM 19, which has +reference-types enabled by default, then any WebAssembly module with an indirect +function call (which is almost always the case for Rust code) will produce a +WebAssembly binary that cannot be decoded by engines and tooling that do not +support the reference-types proposal. It is expected that this change will have +a low impact due to the age of the reference-types proposal and breadth of +implementation in engines. Given the multitude of WebAssembly engines, however, +it's recommended that any WebAssembly users test out Nightly Rust and see if +the produced module still runs on the engine of choice. + +### LLVM, Rust, and Multiple Tables + +One interesting point worth mentioning is that despite reference-types enabling +multiple tables in WebAssembly modules this is not actually taken advantage of +at this time by either LLVM or Rust. WebAssembly modules emitted will still have +at most one table of functions. This means that the over-long 5-byte encoding of +index 0 as `0x80 0x80 0x80 0x80 0x00` is not actually necessary at this time. +LLD, LLVM's linker for WebAssembly, wants to process all [LEB] relocations in a +similar manner which currently forces this 5-byte encoding of zero. For example +when a function calls another function the `call` instruction encodes the target +function index as a 5-byte [LEB] which is filled in by the linker. There is +quite often more than one function so the 5-byte encoding enables all possible +function indices to be encoded. + +In the future LLVM might start using multiple tables as well. For example LLVM +may have a mode in the future where there's a table-per-function type instead of +a single heterogenous table. This can enable engines to implement +`call_indirect` more efficiently. This is not implemented at this time, however. + +For users who want a minimally-sized WebAssembly module (e.g. if you're in a web +context and sending bytes over the wire) it's recommended to use an optimization +tool such as [`wasm-opt`] to shrink the size of the output of LLVM. Even before +this change with reference-types it's recommended to do this as [`wasm-opt`] can +typically optimize LLVM's default output even further. When optimizing a module +through [`wasm-opt`] these 5-byte encodings of index 0 are all shrunk to a +single byte. + +## Enabling Multi-Value by Default + +The second feature enabled by default in LLVM 19 is multi-value. The +[multi-value proposal to WebAssembly][multi-value] enables functions to have +more than one return value for example. WebAssembly instructions are +additionally allowed to have more than one return value as well. This proposal +is one of the first to get merged into the WebAssembly specification after the +original MVP and has been implemented in many engines for quite some time. + +The consequences of enabling this feature by default in LLVM are more minor for +Rust, however, than enabling reference-types by default. LLVM's default ABI for +WebAssembly code is not changing even when multi-value is enabled. Additionally +Rust's ABI is not changing either and continues to match LLVM's. Despite this +though the change has the possibility of still affecting Nightly users of Rust. + +Rust for some time has supported an `extern "wasm"` ABI on Nightly which was an +experimental means of exposing the ability of defining a function in Rust which +returned multiple values (e.g. used the multi-value proposal). Due to +infrastructural changes and refactorings in LLVM itself this feature of Rust has +[been removed](https://github.com/rust-lang/rust/pull/127605) and is no longer +supported on Nightly at all. As a result there is no longer any possible method +of writing a function in Rust that returns multiple values at the WebAssembly +function type level. + +In summary this change is expected to not affect any Rust code in the wild +unless you were using the Nightly feature of `extern "wasm"` in which case +you'll be forced to drop support for that and use `extern "C"` instead. +Supporting WebAssembly multi-return functions in Rust is a broader topic than +this post can cover, but at this time it's an area that's ripe for contribution +from suitably motivated contributors. + +## Enabling Future Proposals to WebAssembly + +This is not the first time that a WebAssembly proposal has gone from +off-by-default to on-by-default in LLVM, nor will it be the last. For example +LLVM already enables the [sign-extension proposal][sign-ext] by default which +MVP WebAssembly did not have. It's expected that in the not-too-distant future +the +[nontrapping-fp-to-int](https://github.com/WebAssembly/nontrapping-float-to-int-conversions) +proposal will likely be enabled by default. These changes are currently not made +with strict criteria in mind (e.g. N engines must have this implemented for M +years), and there may be breakage that happens. + +If you're using a WebAssembly engine that does not support the modules emitted +by Nightly Rust and LLVM 19 then your options are: + +* Try seeing if the engine you're using has any updates available to it. You + might be using an older version which didn't support a feature but a newer + version supports the feature. +* Open an issue to raise awareness that a change is causing breakage. This could + either be done on your engine's repository, the Rust repository, or the + WebAssembly + [tool-conventions](https://github.com/WebAssembly/tool-conventions) + repository. +* Recompile your code with features disabled, more on this in the next section. + +The general assumption behind enabling new features by default is that it's a +relatively hassle-free operation for end users while bringing performance +benefits for everyone (e.g. nontrapping-fp-to-int will make float-to-int +conversions more optimal). If updates end up causing hassle it's best to flag +that early on so rollout plans can be adjusted if needed. + +## Disabling on-by-default WebAssembly proposals + +For a variety of reasons you might be motivated to disable on-by-default +WebAssembly features: for example maybe your engine is difficult to update or +doesn't support a new feature. Disabling on-by-default features is unfortunately +not the easiest task. It is notably not sufficient to use +`-Ctarget-features=-foo` to disable features for just your own project's +compilation because the Rust standard library, shipped in precompiled form, is +compiled with this features enabled. + +To disable on-by-default WebAssembly proposal it's required that you use Cargo's +[`-Zbuild-std`](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-std) +feature. For example: + +```shell +$ export RUSTFLAGS=-Ctarget-cpu=mvp +$ cargo +nightly build -Zbuild-std=panic_abort,std --target wasm32-unknown-unknown +``` + +This will recompiled the Rust standard library in addition to your own code with +the "MVP CPU" which is LLVM's placeholder for all WebAssembly proposals +disabled. This will disable sign-ext, reference-types, multi-value, etc. + +[llvm19]: https://github.com/rust-lang/rust/pull/127513 +[proposals]: https://github.com/WebAssembly/proposals +[llvmenable]: https://github.com/llvm/llvm-project/pull/80923 +[LEB]: https://en.wikipedia.org/wiki/LEB128 +[`wasm-opt`]: https://github.com/WebAssembly/binaryen +[multi-value]: https://github.com/webAssembly/multi-value +[sign-ext]: https://github.com/webAssembly/sign-extension-ops From 82e29bfa0acd1e36bef35cbffad48bceb7e30401 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Fri, 23 Aug 2024 12:26:29 -0700 Subject: [PATCH 0523/1024] Review feedback --- ...gets-change-in-default-target-features.md} | 147 +++++++++++++----- 1 file changed, 104 insertions(+), 43 deletions(-) rename posts/{2024-08-26-webassembly-targets-and-new-on-by-default-features.md => 2024-08-26-webassembly-targets-change-in-default-target-features.md} (55%) diff --git a/posts/2024-08-26-webassembly-targets-and-new-on-by-default-features.md b/posts/2024-08-26-webassembly-targets-change-in-default-target-features.md similarity index 55% rename from posts/2024-08-26-webassembly-targets-and-new-on-by-default-features.md rename to posts/2024-08-26-webassembly-targets-change-in-default-target-features.md index 38dcf955c..06367e809 100644 --- a/posts/2024-08-26-webassembly-targets-and-new-on-by-default-features.md +++ b/posts/2024-08-26-webassembly-targets-change-in-default-target-features.md @@ -1,27 +1,59 @@ --- layout: post -title: "WebAssembly targets and new on-by-default features" +title: "WebAssembly targets: change in default target-features" author: Alex Crichton +team: The Compiler Team --- The Rust compiler has [recently upgraded to using LLVM 19][llvm19] and this -change accompanies some updates to WebAssembly targets of the Rust compiler. -Nightly Rust, what will be come Rust 1.82 on 2024-10-17, reflects all of these -changes and can be used for testing. +change accompanies some updates to the default set of target features enabled +for WebAssembly targets of the Rust compiler. Nightly Rust today, which will +become Rust 1.82 on 2024-10-17, reflects all of these changes and can be +used for testing. -WebAssembly is an evolving standard where new features are being added over time -through a [proposals process][proposals]. As WebAssembly proposals reach +WebAssembly is an evolving standard where extensions are being added over +time through a [proposals process][proposals]. WebAssembly proposals reach maturity, get merged into the specification itself, get implemented in engines, -and remains this way for quite some time then producer toolchains (e.g. LLVM) -are going to update to include these new proposals by default. In LLVM 19 this -has happened with the [multi-value and reference-types proposals][llvmenable]. -These are now enabled by default in LLVM and transitively means that it's -enabled by default for Rust as well. +and remain this way for quite some time before producer toolchains (e.g. LLVM) +update to **enable these sufficiently-mature proposals by default**. In LLVM 19 +this has happened with the [multi-value and reference-types +proposals][llvmenable] for the LLVM/Rust target features `multivalue` and +`reference-types`. These are now enabled by default in LLVM and transitively +means that it's enabled by default for Rust as well. WebAssembly targets for Rust now [have improved documentation](https://github.com/rust-lang/rust/pull/128511) about WebAssembly -features and disabling them, and this post is going to review these changes and -go into depth about what's changing in LLVM. +proposals and their corresponding target features. This post is going to review +these changes and go into depth about what's changing in LLVM. + +## WebAssembly Proposals and Compiler Target Features + +WebAssembly proposals are the formal means by which the WebAssembly standard +itself is evolved over time. Most proposals need toolchain integration in one +form or another, for example new flags in LLVM or the Rust compiler. The +`-Ctarget-feature=...` mechanism is used to implement this today. This is a +signal to LLVM and the Rust compiler which WebAssembly proposals are enabled or +disabled. + +There is a loose coupling between the name of a proposal (often the name of the +github repository of the proposal) and the feature name LLVM/Rust use. For +example there is the [`multi-value` +proposal](https://github.com/webAssembly/multi-value) but a `multivalue` +feature. + +The lifecycle of the implementation of a feature in Rust/LLVM typically looks +like: + +1. A new WebAssembly proposal is created in a new repository, for example + WebAssembly/foo. +2. Eventually Rust/LLVM implement the proposal under `-Ctarget-feature=+foo` +3. Eventually the upstream proposal is merged into the specification, and + WebAssembly/foo becomes an archived repository +4. Rust/LLVM enable the `-Ctarget-feature=+foo` feature by default but typically + retain the ability to disable it as well. + +The `reference-types` and `multivalue` target features in Rust are at step (4) +here now and this post is explaining the consequences of doing so. ## Enabling Reference Types by Default @@ -31,7 +63,9 @@ new concepts to WebAssembly, notably the `externref` type which is a host-defined GC resource that WebAssembly cannot access but can pass around. Rust does not have support for the WebAssembly `externref` type and LLVM 19 does not change that. WebAssembly modules produced from Rust will continue to not use -the `externref` type nor have a means of being able to do so. +the `externref` type nor have a means of being able to do so. This may be +enabled in the future, but it will mostly likely only be done on an opt-in basis +and will not affect preexisting code by default. Also included in the reference-types proposal, however, was the ability to have multiple WebAssembly tables in a single module. In the original version of the @@ -47,9 +81,9 @@ was encoded with a fixed zero byte in its instruction (required to be exactly 0x00). This fixed zero byte was relaxed to a 32-bit [LEB] to indicate which table the `call_indirect` instruction was using. For those unfamiliar [LEB] is a way of encoding multi-byte integers in a smaller number of bytes for smaller -integers. For example the integer 0 can be encoded as `0x00` with a [LEB]. -[LEB]s are flexible to additionally allow "overlong" encodings so the integer 0 -can additionally be encoded as `0x80 0x00`. +integers. For example the 32-gbit integer 0 can be encoded as `0x00` with a +[LEB]. [LEB]s are flexible to additionally allow "overlong" encodings so the +integer 0 can additionally be encoded as `0x80 0x00`. LLVM's support of separate compilation of source code to a WebAssembly binary means that when an object file is emitted it does not know the final index of @@ -60,29 +94,30 @@ over-long [LEB] of the form `0x80 0x80 0x80 0x80 0x00` which is the maximal length of a 32-bit [LEB]. This [LEB] is then filled in by the linker with a relocation to the actual table index that is used by the final module. -When putting all of this together it means that LLVM 19, which has -reference-types enabled by default, then any WebAssembly module with an indirect -function call (which is almost always the case for Rust code) will produce a -WebAssembly binary that cannot be decoded by engines and tooling that do not -support the reference-types proposal. It is expected that this change will have -a low impact due to the age of the reference-types proposal and breadth of -implementation in engines. Given the multitude of WebAssembly engines, however, -it's recommended that any WebAssembly users test out Nightly Rust and see if -the produced module still runs on the engine of choice. +When putting all of this together, it means that with LLVM 19, which has +the `reference-types` feature enabled by default, any WebAssembly module with an +indirect function call (which is almost always the case for Rust code) will +produce a WebAssembly binary that cannot be decoded by engines and tooling that +do not support the reference-types proposal. It is expected that this change +will have a low impact due to the age of the reference-types proposal and +breadth of implementation in engines. Given the multitude of WebAssembly +engines, however, it's recommended that any WebAssembly users test out +Nightly Rust and see if the produced module still runs on the engine of +choice. ### LLVM, Rust, and Multiple Tables -One interesting point worth mentioning is that despite reference-types enabling -multiple tables in WebAssembly modules this is not actually taken advantage of -at this time by either LLVM or Rust. WebAssembly modules emitted will still have -at most one table of functions. This means that the over-long 5-byte encoding of -index 0 as `0x80 0x80 0x80 0x80 0x00` is not actually necessary at this time. -LLD, LLVM's linker for WebAssembly, wants to process all [LEB] relocations in a -similar manner which currently forces this 5-byte encoding of zero. For example -when a function calls another function the `call` instruction encodes the target -function index as a 5-byte [LEB] which is filled in by the linker. There is -quite often more than one function so the 5-byte encoding enables all possible -function indices to be encoded. +One interesting point worth mentioning is that despite the reference-types +proposal enabling multiple tables in WebAssembly modules this is not actually +taken advantage of at this time by either LLVM or Rust. WebAssembly modules +emitted will still have at most one table of functions. This means that the +over-long 5-byte encoding of index 0 as `0x80 0x80 0x80 0x80 0x00` is not +actually necessary at this time. LLD, LLVM's linker for WebAssembly, wants to +process all [LEB] relocations in a similar manner which currently forces this +5-byte encoding of zero. For example when a function calls another function the +`call` instruction encodes the target function index as a 5-byte [LEB] which is +filled in by the linker. There is quite often more than one function so the +5-byte encoding enables all possible function indices to be encoded. In the future LLVM might start using multiple tables as well. For example LLVM may have a mode in the future where there's a table-per-function type instead of @@ -99,7 +134,7 @@ single byte. ## Enabling Multi-Value by Default -The second feature enabled by default in LLVM 19 is multi-value. The +The second feature enabled by default in LLVM 19 is `multivalue`. The [multi-value proposal to WebAssembly][multi-value] enables functions to have more than one return value for example. WebAssembly instructions are additionally allowed to have more than one return value as well. This proposal @@ -107,10 +142,11 @@ is one of the first to get merged into the WebAssembly specification after the original MVP and has been implemented in many engines for quite some time. The consequences of enabling this feature by default in LLVM are more minor for -Rust, however, than enabling reference-types by default. LLVM's default ABI for -WebAssembly code is not changing even when multi-value is enabled. Additionally -Rust's ABI is not changing either and continues to match LLVM's. Despite this -though the change has the possibility of still affecting Nightly users of Rust. +Rust, however, than enabling the `reference-types` feature by default. LLVM's +default C ABI for WebAssembly code is not changing even when `multivalue` is +enabled. Additionally Rust's `extern "C"` ABI is not changing either and +continues to match LLVM's. Despite this though the change has the possibility +of still affecting Nightly users of Rust. Rust for some time has supported an `extern "wasm"` ABI on Nightly which was an experimental means of exposing the ability of defining a function in Rust which @@ -128,6 +164,30 @@ Supporting WebAssembly multi-return functions in Rust is a broader topic than this post can cover, but at this time it's an area that's ripe for contribution from suitably motivated contributors. +### Aside: ABI Stability and WebAssembly + +While on the topics of ABIs and the `multi-value` feature it's perhaps worth +also going over a bit what ABIs mean for WebAssembly. Currently there's +effectively only one ABI implemented by LLVM and the Rust compiler meaning that +at the WebAssembly module level `extern "C"` and `extern "Rust"` are +more-or-less the same. Despite this though there's no need for this to be true. + +The `extern "C"` ABI, what C code uses by default as well, is difficult to +change because stability is often required across different compiler versions. +For example WebAssembly code compiled with LLVM 18 might be expected to work +with code compiled by LLVM 20. This means that changing the ABI is a daunting +task that requires version fields, explicit markers, etc, to help prevent +mismatches. + +The `extern "Rust"` ABI, however, is entirely within the control of the Rust +compiler and can change from version to version. Just because it happens to work +like `extern "C"` today doesn't mean it will continue to do so in the future. A +great example of this is that when the `multi-value` feature is enabled the +`extern "Rust"` ABI could be redefined to use the multiple-return-values that +WebAssembly would then support. This would enable much more efficient returns of +values larger than 64-bits. Implementing this would require support in LLVM +though which is not currently present. + ## Enabling Future Proposals to WebAssembly This is not the first time that a WebAssembly proposal has gone from @@ -150,7 +210,8 @@ by Nightly Rust and LLVM 19 then your options are: either be done on your engine's repository, the Rust repository, or the WebAssembly [tool-conventions](https://github.com/WebAssembly/tool-conventions) - repository. + repository. It's recommended to first search to confirm there isn't already an + open issue though. * Recompile your code with features disabled, more on this in the next section. The general assumption behind enabling new features by default is that it's a From 0b19ea941b943671f8cdbce55f3a1556f536d3db Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 25 Aug 2024 10:49:31 -0400 Subject: [PATCH 0524/1024] 1.81.0 release announcement --- posts/2024-09-05-Rust-1.81.0.md | 160 ++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 posts/2024-09-05-Rust-1.81.0.md diff --git a/posts/2024-09-05-Rust-1.81.0.md b/posts/2024-09-05-Rust-1.81.0.md new file mode 100644 index 000000000..2a8544182 --- /dev/null +++ b/posts/2024-09-05-Rust-1.81.0.md @@ -0,0 +1,160 @@ +--- +layout: post +title: "Announcing Rust 1.81.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.81.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via `rustup`, you can get 1.81.0 with: + +```console +$ rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.81.0](https://doc.rust-lang.org/nightly/releases.html#version-1810-2024-09-05). + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.81.0 stable + +### `core::error::Error` + +1.81 stabilizes the `Error` trait in `core`, allowing usage of the trait in `#![no_std]` libraries. + +TODO: What can we actually say about this? It seems like this mostly enables +things in the ecosystem, but from the langauge/standard library not much has +actually changed in *this* release? + +### New sort implementations + +Both the stable and unstable sort implementations in the standard library have +been updated to new algorithms, improving their runtime performance and +compilation time. Both of the new sort algorithms try to detect +incorrect implementations of `Ord` and will panic on such cases if detected. + +Users encountering these panics should audit any custom Ord implementations to +ensure they satisfy the requirements documented in [PartialOrd] and [Ord]. + +TODO: Ideally we'd have text somewhere specific to the new detection that helps +explain how to do this audit or otherwise helps users. This otherwise feels +pretty opaque to me. We might also want to consider whether some kind of +transition rather than panic! is best (not sure how else users would find out +about the problem though). See https://github.com/rust-lang/rust/issues/129561. + +[PartialOrd]: https://doc.rust-lang.org/nightly/std/cmp/trait.PartialOrd.html +[Ord]: https://doc.rust-lang.org/nightly/std/cmp/trait.Ord.html + +### `#[expect(lint)]` + +1.81 stabilizes a new lint level, `expect`, which allows explicitly noting that +a particular lint *should* occur, and warning if it doesn't. The intended use +case for this is temporarily silencing a lint, whether due to lint +implementation bugs or ongoing refactoring, while wanting to know when the lint +is no longer required. + +For example, if you're moving a code base to comply with a new restriction +enforced via a Clippy lint like +[`undocumented_unsafe_blocks`](https://rust-lang.github.io/rust-clippy/stable/index.html#/undocumented_unsafe_blocks), +you can use `#[expect(clippy::undocumented_unsafe_blocks)]` as you transition, +ensuring that once all unsafe blocks are documented you can opt into denying +the lint to enforce it. + +### Lint reasons + +Changing the lint level is often done for some particular reason. For example, +if code runs in an environment without floating point support, you could use +Clippy to lint on such usage with `#![deny(clippy::float_arithmetic)]`. +However, if a new developer to the project sees this lint fire, they need to +look for (hopefully) a comment on the deny explaining why it was added. With +Rust 1.71, they can be informed directly in the compiler message: + +```text +error: floating-point arithmetic detected + --> src/lib.rs:4:5 + | +4 | a + b + | ^^^^^ + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_arithmetic + = note: no hardware float support +note: the lint level is defined here + --> src/lib.rs:1:9 + | +1 | #![deny(clippy::float_arithmetic, reason = "no hardware float support")] + | ^^^^^^^^^^^^^^^^^^^^^^^^ +``` + +### Stabilized APIs + +- [`core::error`](https://doc.rust-lang.org/stable/core/error/index.html) +- [`hint::assert_unchecked`](https://doc.rust-lang.org/stable/core/hint/fn.assert_unchecked.html) +- [`fs::exists`](https://doc.rust-lang.org/stable/std/fs/fn.exists.html) +- [`AtomicBool::fetch_not`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.fetch_not) +- [`Duration::abs_diff`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.abs_diff) +- [`IoSlice::advance`](https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance) +- [`IoSlice::advance_slices`](https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance_slices) +- [`IoSliceMut::advance`](https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance) +- [`IoSliceMut::advance_slices`](https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance_slices) +- [`PanicHookInfo`](https://doc.rust-lang.org/stable/std/panic/struct.PanicHookInfo.html) +- [`PanicInfo::message`](https://doc.rust-lang.org/stable/core/panic/struct.PanicInfo.html#method.message) +- [`PanicMessage`](https://doc.rust-lang.org/stable/core/panic/struct.PanicMessage.html) + +These APIs are now stable in const contexts: + +- [`char::from_u32_unchecked`](https://doc.rust-lang.org/stable/core/char/fn.from_u32_unchecked.html) (function) +- [`char::from_u32_unchecked`](https://doc.rust-lang.org/stable/core/primitive.char.html#method.from_u32_unchecked) (method) +- [`CStr::count_bytes`](https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.count_bytes) +- [`CStr::from_ptr`](https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.from_ptr) + +### Compatibility notes + +#### Split panic hook and panic handler arguments + +We have renamed [`std::panic::PanicInfo`] to [`std::panic::PanicHookInfo`]. The old +name will continue to work as an alias, but will result in a deprecation +warning starting in Rust 1.82.0. + +`core::panic::PanicInfo` will remain unchanged, however, as this is now a +*different type*. cuviper marked this conversation as resolved. + + The reason is that these types have different roles: +`std::panic::PanicHookInfo` is the argument to the [panic hook](https://doc.rust-lang.org/stable/std/panic/fn.set_hook.html) in std +context (where panics can have an arbitrary payload), while +`core::panic::PanicInfo` is the argument to the +[`#[panic_handler]`](https://doc.rust-lang.org/nomicon/panic-handler.html) in +`#![no_std]` context (where panics always carry a formatted *message*). Separating +these types allows us to add more useful methods to these types, such as +[`std::panic::PanicHookInfo::payload_as_str()`]() and +[`core::panic::PanicInfo::message()`](https://doc.rust-lang.org/stable/core/panic/struct.PanicInfo.html#method.message). + +[`std::panic::PanicInfo`]: https://doc.rust-lang.org/stable/std/panic/type.PanicInfo.html +[`std::panic::PanicHookInfo`]: https://doc.rust-lang.org/stable/std/panic/type.PanicHookInfo.html + +#### Abort on uncaught panics in `extern "C"` functions + +This completes the transition started in [1.71](https://blog.rust-lang.org/2023/07/13/Rust-1.71.0.html#c-unwind-abi), +which added dedicated `"C-unwind"` (amongst other `-unwind` variants) ABIs for +when unwinding across the ABI boundary is expected. As of 1.81, the non-unwind +ABIs (e.g., `"C"`) will now abort on uncaught unwinds, closing the longstanding soundess problem. + +Programs relying on unwinding should transition to using `-unwind` suffixed ABI +variants. + +TODO: Check on status of https://github.com/rust-lang/rust/issues/123231 + +#### WASI target naming changed + +Usage of the `wasm32-wasi` target will now issue a compiler warning and request +users switch to the `wasm32-wasip1` target instead. Both targets are the same, +`wasm32-wasi` is only being renamed, and this [change to the WASI target](https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html) +is being done to enable removing `wasm32-wasi` in January 2025. + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.81.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-181-2024-09-05), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-181). + +## Contributors to 1.81.0 + +Many people came together to create Rust 1.81.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.81.0/) From 50ce531ef78573dbe22e5938912c97b65594ff0e Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 26 Aug 2024 07:30:10 -0700 Subject: [PATCH 0525/1024] Review comments --- ...rgets-change-in-default-target-features.md | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/posts/2024-08-26-webassembly-targets-change-in-default-target-features.md b/posts/2024-08-26-webassembly-targets-change-in-default-target-features.md index 06367e809..df2e08846 100644 --- a/posts/2024-08-26-webassembly-targets-change-in-default-target-features.md +++ b/posts/2024-08-26-webassembly-targets-change-in-default-target-features.md @@ -37,7 +37,7 @@ disabled. There is a loose coupling between the name of a proposal (often the name of the github repository of the proposal) and the feature name LLVM/Rust use. For -example there is the [`multi-value` +example there is the [multi-value proposal](https://github.com/webAssembly/multi-value) but a `multivalue` feature. @@ -64,7 +64,8 @@ host-defined GC resource that WebAssembly cannot access but can pass around. Rust does not have support for the WebAssembly `externref` type and LLVM 19 does not change that. WebAssembly modules produced from Rust will continue to not use the `externref` type nor have a means of being able to do so. This may be -enabled in the future, but it will mostly likely only be done on an opt-in basis +enabled in the future (e.g. a hypothetical `core::arch::wasm32::Externref` type +or similar), but it will mostly likely only be done on an opt-in basis and will not affect preexisting code by default. Also included in the reference-types proposal, however, was the ability to have @@ -81,7 +82,7 @@ was encoded with a fixed zero byte in its instruction (required to be exactly 0x00). This fixed zero byte was relaxed to a 32-bit [LEB] to indicate which table the `call_indirect` instruction was using. For those unfamiliar [LEB] is a way of encoding multi-byte integers in a smaller number of bytes for smaller -integers. For example the 32-gbit integer 0 can be encoded as `0x00` with a +integers. For example the 32-bit integer 0 can be encoded as `0x00` with a [LEB]. [LEB]s are flexible to additionally allow "overlong" encodings so the integer 0 can additionally be encoded as `0x80 0x00`. @@ -102,7 +103,7 @@ do not support the reference-types proposal. It is expected that this change will have a low impact due to the age of the reference-types proposal and breadth of implementation in engines. Given the multitude of WebAssembly engines, however, it's recommended that any WebAssembly users test out -Nightly Rust and see if the produced module still runs on the engine of +Nightly Rust and see if the produced module still runs on their engine of choice. ### LLVM, Rust, and Multiple Tables @@ -144,9 +145,11 @@ original MVP and has been implemented in many engines for quite some time. The consequences of enabling this feature by default in LLVM are more minor for Rust, however, than enabling the `reference-types` feature by default. LLVM's default C ABI for WebAssembly code is not changing even when `multivalue` is -enabled. Additionally Rust's `extern "C"` ABI is not changing either and -continues to match LLVM's. Despite this though the change has the possibility -of still affecting Nightly users of Rust. +enabled. Additionally Rust's `extern "C"` ABI for WebAssembly is not changing +either and continues to match LLVM's (or strives to, [differences to +LLVM](https://github.com/rust-lang/rust/issues/115666) are considered bugs to +fix). Despite this though the change has the possibility of still affecting +Nightly users of Rust. Rust for some time has supported an `extern "wasm"` ABI on Nightly which was an experimental means of exposing the ability of defining a function in Rust which @@ -166,11 +169,11 @@ from suitably motivated contributors. ### Aside: ABI Stability and WebAssembly -While on the topics of ABIs and the `multi-value` feature it's perhaps worth +While on the topic of ABIs and the `multivalue` feature it's perhaps worth also going over a bit what ABIs mean for WebAssembly. Currently there's effectively only one ABI implemented by LLVM and the Rust compiler meaning that at the WebAssembly module level `extern "C"` and `extern "Rust"` are -more-or-less the same. Despite this though there's no need for this to be true. +more-or-less the same. It is **not** guaranteed for the ABIs to match, however. The `extern "C"` ABI, what C code uses by default as well, is difficult to change because stability is often required across different compiler versions. @@ -180,12 +183,14 @@ task that requires version fields, explicit markers, etc, to help prevent mismatches. The `extern "Rust"` ABI, however, is entirely within the control of the Rust -compiler and can change from version to version. Just because it happens to work -like `extern "C"` today doesn't mean it will continue to do so in the future. A -great example of this is that when the `multi-value` feature is enabled the +compiler and can change from version to version (there are no stability +guarantees across compiler versions and this is applicable to all platforms, not +just WebAssembly). Just because `extern "Rust"` happens to work like `extern +"C"` in WebAssembly today doesn't mean it will continue to do so in the future. +A great example of this is that when the `multivalue` feature is enabled the `extern "Rust"` ABI could be redefined to use the multiple-return-values that -WebAssembly would then support. This would enable much more efficient returns of -values larger than 64-bits. Implementing this would require support in LLVM +WebAssembly would then support. This would enable much more efficient returns +of values larger than 64-bits. Implementing this would require support in LLVM though which is not currently present. ## Enabling Future Proposals to WebAssembly @@ -226,9 +231,9 @@ For a variety of reasons you might be motivated to disable on-by-default WebAssembly features: for example maybe your engine is difficult to update or doesn't support a new feature. Disabling on-by-default features is unfortunately not the easiest task. It is notably not sufficient to use -`-Ctarget-features=-foo` to disable features for just your own project's +`-Ctarget-features=-sign-ext` to disable a feature for just your own project's compilation because the Rust standard library, shipped in precompiled form, is -compiled with this features enabled. +still compiled with the feature enabled. To disable on-by-default WebAssembly proposal it's required that you use Cargo's [`-Zbuild-std`](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-std) From 4a72d620768932213baf39b03c6f1e61c00cd038 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 26 Aug 2024 08:02:15 -0700 Subject: [PATCH 0526/1024] Reword/clarify section on ABIs --- ...rgets-change-in-default-target-features.md | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/posts/2024-08-26-webassembly-targets-change-in-default-target-features.md b/posts/2024-08-26-webassembly-targets-change-in-default-target-features.md index df2e08846..1d91c7011 100644 --- a/posts/2024-08-26-webassembly-targets-change-in-default-target-features.md +++ b/posts/2024-08-26-webassembly-targets-change-in-default-target-features.md @@ -170,10 +170,14 @@ from suitably motivated contributors. ### Aside: ABI Stability and WebAssembly While on the topic of ABIs and the `multivalue` feature it's perhaps worth -also going over a bit what ABIs mean for WebAssembly. Currently there's -effectively only one ABI implemented by LLVM and the Rust compiler meaning that -at the WebAssembly module level `extern "C"` and `extern "Rust"` are -more-or-less the same. It is **not** guaranteed for the ABIs to match, however. +also going over a bit what ABIs mean for WebAssembly. The current definition of +the `extern "C"` ABI for WebAssembly is documented in the [tool-conventions +repository](https://github.com/WebAssembly/tool-conventions/blob/main/BasicCABI.md) +and this is what Clang implements for C code as well. LLVM implements enough +support for lowering to WebAssembly as well to support all of this. The `extern +"Rust` ABI is not stable on WebAssembly, as is the case for all Rust targets, +and is subject to change over time. There is no reference documentation at this +time for what `extern "Rust"` is on WebAssembly. The `extern "C"` ABI, what C code uses by default as well, is difficult to change because stability is often required across different compiler versions. @@ -182,17 +186,21 @@ with code compiled by LLVM 20. This means that changing the ABI is a daunting task that requires version fields, explicit markers, etc, to help prevent mismatches. -The `extern "Rust"` ABI, however, is entirely within the control of the Rust -compiler and can change from version to version (there are no stability -guarantees across compiler versions and this is applicable to all platforms, not -just WebAssembly). Just because `extern "Rust"` happens to work like `extern -"C"` in WebAssembly today doesn't mean it will continue to do so in the future. -A great example of this is that when the `multivalue` feature is enabled the +The `extern "Rust"` ABI, however, is subject to change over time. A great +example of this could be that when the `multivalue` feature is enabled the `extern "Rust"` ABI could be redefined to use the multiple-return-values that WebAssembly would then support. This would enable much more efficient returns of values larger than 64-bits. Implementing this would require support in LLVM though which is not currently present. +This all means that actually using multiple-returns in functions, or the +WebAssembly feature that the `multivalue` enables, is still out on the horizon +and not implemented. First LLVM will need to implement complete lowering support +to generate WebAssembly functions with multiple returns, and then `extern +"Rust"` can be change to use this when fully supported. In the yet-further-still +future C code might be able to change, but that will take quite some time due to +its cross-version-compatibility story. + ## Enabling Future Proposals to WebAssembly This is not the first time that a WebAssembly proposal has gone from From 614b18bf92e8fe7f281df20d4da00c553d5fa10c Mon Sep 17 00:00:00 2001 From: apiraino Date: Mon, 26 Aug 2024 17:34:38 +0200 Subject: [PATCH 0527/1024] Style Rust logo --- src/styles/app.scss | 12 +++++++++--- src/styles/noscript.scss | 2 ++ templates/headers.hbs | 16 ++++++++-------- templates/nav.hbs | 2 +- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/styles/app.scss b/src/styles/app.scss index 227e7821b..2d53046af 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -30,6 +30,7 @@ $header-font: 'Alfa Slab One', serif; --theme-popup-bg: white; --theme-hover: #cacaca; --theme-choice-color: black; + --rust-logo-filter: initial; } // Dark theme @@ -57,6 +58,7 @@ $header-font: 'Alfa Slab One', serif; --theme-popup-bg: #141617; --theme-hover: #474c51; --theme-choice-color: #d5cbc6; + --rust-logo-filter: drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff); } html { @@ -79,7 +81,7 @@ body { display: flex; flex-direction: column; & > #main-content { - flex: 1; + flex: 1; } } @@ -192,7 +194,7 @@ div.brand { } .white { - color: var(--white-elem-color); + color: var(--white-elem-color); .highlight { background-color: var(--yellow); } @@ -334,7 +336,7 @@ h3, .post h2, header h2 { h2 { font-size: 2em; } - + h3 { display: block; } @@ -418,3 +420,7 @@ header h1 { li.theme-item:hover { background-color: var(--theme-hover); } + +.rust-logo { + filter: var(--rust-logo-filter); +} diff --git a/src/styles/noscript.scss b/src/styles/noscript.scss index ced45fe5e..94a877e0c 100644 --- a/src/styles/noscript.scss +++ b/src/styles/noscript.scss @@ -21,6 +21,7 @@ --nav-links-a: #2a3439; --publish-date-author: #2a3439; --section-header-h2-color: black; + --rust-logo-filter: initial; } // Dark theme (probed from user prefs) @@ -44,6 +45,7 @@ --nav-links-a: #d5cbc6; --publish-date-author: #d5cbc6; --section-header-h2-color: white; + --rust-logo-filter: drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff); } } diff --git a/templates/headers.hbs b/templates/headers.hbs index f94e6eea0..fb4b824ae 100644 --- a/templates/headers.hbs +++ b/templates/headers.hbs @@ -1,9 +1,9 @@ - - - - - - + + + + + + @@ -34,5 +34,5 @@ - - + + diff --git a/templates/nav.hbs b/templates/nav.hbs index 67fb224a5..36d1da5ed 100644 --- a/templates/nav.hbs +++ b/templates/nav.hbs @@ -1,7 +1,7 @@ From 54a2e6b06aff1d24a223e061de74362aa177fffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Tue, 3 Dec 2024 06:14:54 +0800 Subject: [PATCH 0692/1024] Add Nov 2024 issue of This Month In Our Test Infra --- .../2024-12-09-test-infra-nov-2024.md | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 posts/inside-rust/2024-12-09-test-infra-nov-2024.md diff --git a/posts/inside-rust/2024-12-09-test-infra-nov-2024.md b/posts/inside-rust/2024-12-09-test-infra-nov-2024.md new file mode 100644 index 000000000..9876a251d --- /dev/null +++ b/posts/inside-rust/2024-12-09-test-infra-nov-2024.md @@ -0,0 +1,134 @@ +--- +layout: post +title: "This Month in Our Test Infra: November 2024" +author: Jieyou Xu +team: the Bootstrap Team +--- + +# This Month in Our Test Infra: November 2024 + + + +This is a quick summary of the changes in the test infrastructure for the +[rust-lang/rust][r-l/r] repository[^scope] for **November 2024**. It also +includes brief descriptions of on-going work. + +[^scope]: The test infra here refers to the test harness [compiletest] and +supporting components in our build system [bootstrap]. This test infra is used +mainly by rustc and rustdoc. Other tools like cargo, miri or rustfmt maintain +their own test infra. + +As usual, if you encounter bugs or UX issues when using our test infrastructure, +please [file an issue][new-issue]. Bugs and papercuts can't be fixed if we don't +know about them! + +**Thanks to everyone who contributed to our test infra!** + +## Highlights + +### compiletest: Add `proc-macro` auxiliary build directive + +[@ehuss](https://github.com/ehuss) added a `//@ proc-macro` directive that +behaves like `//@ aux-build`, but it packages the usual `//@ force-host` and +`//@ no-prefer-dynamic` boilerplate that previously was needed by proc-macro +auxiliaries. If the main test file also uses a sufficiently new edition (i.e. +Edition 2018 onwards), the proc-macro auxiliary is also made available via +extern prelude. + +**Before**: test writer need to write `//@ force-host` and `//@ +no-prefer-dynamic` for each and every proc-macro auxiliary. + +```rs +// tests/ui/foo/my-main-test.rs +//@ aux-build: my-proc-macro.rs +``` + +```rs +// tests/ui/foo/auxiliary/my-proc-macro.rs +//@ no-prefer-dynamic +//@ force-host +``` + +**After**: only `//@ proc-macro` directive is needed in main test file. + +```rs +// tests/ui/foo/my-main-test.rs +//@ proc-macro: my-proc-macro.rs +``` + +```rs +// tests/ui/foo/auxiliary/my-proc-macro.rs +``` + +Thanks Eric! + +### rustc: make `rustc` consider itself a stable compiler when `RUSTC_BOOTSTRAP=-1` is set + +In [#132993](https://github.com/rust-lang/rust/pull/132993), I modified +`rustc`'s stability checking logic to also now recognize `RUSTC_BOOTSTRAP=-1` to +force any `rustc` to consider itself a stable compiler, regardless of which +channel it is from (e.g. beta or dev or nightly or stable)[^disclaimer]. This is +useful for e.g. diagnostics that differ between nightly and stable, and also +provides a way to make the `rustc` under test behave *as if* it was a stable +compiler. + +[^disclaimer]: This is *only* for internal testing usages. Anything else that + relies on this that breaks will be considered PEBKAC. + +In tests, the `//@ rustc-env` directive may be used with +`RUSTC_BOOTSTRAP=-1`[^known-bug]. + +[^known-bug]: The `//@ rustc-env` directive handling has a bug where it's + white-space sensitive between the colon and the value, so avoid whitespace + for now. + +```rs +//@ rustc-env:RUSTC_BOOTSTRAP=-1 +//@ compile-flags: -Z unstable-options +//@ regex-error-pattern: error: the option `Z` is only accepted on the nightly compiler +// This will fail because the `rustc` under test rejects the `-Z unstable-options` unstable flag. +``` + +## PR listing + +### Improvements + +- [compiletest]: + - [Add `{ignore,needs}-{rustc,std}-debug-assertions` directive support #131913](https://github.com/rust-lang/rust/pull/131913). + - [Add `max-llvm-major-version` directive #132310](https://github.com/rust-lang/rust/pull/132310) + - [Add AIX run-make support #132657](https://github.com/rust-lang/rust/pull/132657) + - [Add `exact-llvm-major-version` directive #132995](https://github.com/rust-lang/rust/pull/132995) + - [Add `proc-macro` directive #133540](https://github.com/rust-lang/rust/pull/133540) +- rustc: + - [Make rustc consider itself a stable compiler when `RUSTC_BOOTSTRAP=-1` #132993](https://github.com/rust-lang/rust/pull/132993) + +### Cleanups + +- [compiletest]: + - [Delete `//@ pretty-expanded` directive #133470](https://github.com/rust-lang/rust/pull/133470) + +### Documentation updates + +- [rustc-dev-guide]: + - [Update `//@ proc-macro` aux build directive docs #2149](https://github.com/rust-lang/rustc-dev-guide/pull/2149) + - [Remove `pretty-expanded` as it no longer exists #2147](https://github.com/rust-lang/rustc-dev-guide/pull/2147) + - [Add instructions to test error code docs #2145](https://github.com/rust-lang/rustc-dev-guide/pull/2145) + - [Document how to acquire cdb.exe #2137](https://github.com/rust-lang/rustc-dev-guide/pull/2137) + - [Mention `RUSTC_BOOTSTRAP` for misc testing #2136](https://github.com/rust-lang/rustc-dev-guide/pull/2136) + - [Document `exact-llvm-major-version` directive #2135](https://github.com/rust-lang/rustc-dev-guide/pull/2135) + - [Document `max-llvm-major-version` directive #2129](https://github.com/rust-lang/rustc-dev-guide/pull/2129) + - [Rename `{ignore,only}-debug` -> `{ignore,needs}-{rustc,std}-debug-assertions` #2101](https://github.com/rust-lang/rustc-dev-guide/pull/2101) + +## On-going efforts + +Note: there are certainly many more spontaneous efforts, this is more what I +know is "planned". + +- [Proposed a 2025H1 project goal: compiletest directive handling rework #148](https://github.com/rust-lang/rust-project-goals/pull/148) + + +[r-l/r]: https://github.com/rust-lang/rust +[rustc-dev-guide]: https://github.com/rust-lang/rustc-dev-guide +[compiletest]: https://github.com/rust-lang/rust/tree/master/src/tools/compiletest +[bootstrap]: https://github.com/rust-lang/rust/tree/master/src/bootstrap +[new-issue]: https://github.com/rust-lang/rust/issues/new From 31ea82d8b4780c669b1cc2a624c489ac9bf94206 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 11 Dec 2024 16:21:45 -0600 Subject: [PATCH 0693/1024] This Development Cycle in Cargo 1.84 --- ...13-this-development-cycle-in-cargo-1.84.md | 400 ++++++++++++++++++ 1 file changed, 400 insertions(+) create mode 100644 posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md diff --git a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md new file mode 100644 index 000000000..b38f477c2 --- /dev/null +++ b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md @@ -0,0 +1,400 @@ +--- +layout: post +title: "This Development-cycle in Cargo: 1.84" +author: Ed Page +team: The Cargo Team +--- + +# This Development-cycle in Cargo: 1.84 + +This is a summary of what has been happening around Cargo development for the last 6 weeks which is approximately the merge window for Rust 1.84. + + + +- [Plugin of the cycle](#plugin-of-the-cycle) +- [Implementation](#implementation) + - [Simple english in documentation](#simple-english-in-documentation) + - [Build Script API](#build-script-api) + - [Replacing mtimes with checksums](#replacing-mtimes-with-checksums) + - [Rustflags and caching](#rustflags-and-caching) + - [Snapshot testing](#snapshot-testing) + - [JSON schema files](#json-schema-files) +- [Design discussions](#design-discussions) + - [Improving the built-in profiles](#improving-the-built-in-profiles) + - [Avoid building production code when changing tests](#avoid-building-production-code-when-changing-tests) +- [Misc](#misc) +- [Focus areas without progress](#focus-areas-without-progress) + +## Plugin of the cycle + +Cargo can't be everything to everyone, +if for no other reason than the compatibility guarantees it must uphold. +Plugins play an important part of the Cargo ecosystem and we want to celebrate them. + +Our plugin for this cycle is [cargo-hack](https://crates.io/crates/cargo-hack) makes it easy to verify different feature combinations work together and that you can build for all supported Rust versions. + +Thanks to [epage](https://github.com/epage) for the suggestion! + +[Please submit your suggestions for the next post.](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Plugin.20of.20the.20Dev.20Cycle/near/420703211) + +## Implementation + +### Simple english in documentation + +trot approached the Cargo team on +[zulip](https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/Difficult.20ESL.20words.20Cargo.20Book/near/482282496) +about making the +[Cargo book](https://doc.rust-lang.org/cargo/) +more approachable for people for whom English is a second language. +After some discussion, we decided to start with simplifying the language used in the Cargo book. + +[KGrewal1](https://github.com/KGrewal1) took the lead on this and posted [#14825](https://github.com/rust-lang/cargo/pull/14825). +They also made the language more consistent in [#14829](https://github.com/rust-lang/cargo/pull/14829). + +### Build Script API + +*Update from [1.83](https://blog.rust-lang.org/inside-rust/2024/10/31/this-development-cycle-in-cargo-1.83.html#build-script-api)* + +With the Cargo team approving owning `build-rs`, +[epage](https://github.com/epage) +worked with +[CAD97](https://github.com/CAD97/) +and +[pietroalbini](https://github.com/pietroalbini) +to transfer publish rights for [build-rs](https://crates.io/crates/build-rs) to the Rust Project. + +CAD97 then did a first-pass review and update to `build-rs` and epage merging it into cargo ([#14786](https://github.com/rust-lang/cargo/pull/14786)). +epage then did a pass to update `build-rs` in [#14817](https://github.com/rust-lang/cargo/pull/14817). + +On [zulip](https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/Where.20.60build-rs.60.20shoud.20live/near/480798285), +[Turbo87](https://github.com/Turbo87) raised concernd about `build-rs` (and Cargo-maintained crates more generally) being in the Cargo repo and tied to the Cargo release process. +This means that there is a 6-12 week delay between a bug fix being merged and bein released, projects that need access to unstable functionality must use a git dependency, the MSRV is infectious which puts pressure on the Cargo team to bump it regularly, and the issues are mixed together. +On the other hand, Cargo support, documentation, and APIs are able to developed hand-in-hand. +It would be great if we could improve the release process within the Cargo repo (e.g. [#14538](https://github.com/rust-lang/cargo/issues/14538)) +but keeping that in sync with 3 parallel release channels (stable, beta, nightly), including leaving space to patch an arbitrary number of crate releases for each release channel, +makes this difficult. + +### Replacing mtimes with checksums + +*Update from [1.83](https://blog.rust-lang.org/inside-rust/2024/10/31/this-development-cycle-in-cargo-1.83.html#misc)* + + +With unstable support for using [checksums, rather than mtime, to determine when a build is dirty](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#checksum-freshness), +the Cargo team discussed the path for stabilization. + +One hole in the current design is that Cargo doesn't checksum inputs to build scripts. +If Cargo did the checksum on the user's behalf, +then it might see a different version of the file than the build script. +However, requiring build scripts to checksum the files and report that to Cargo adds a significant complexity to build scripts, including coordinating with Cargo on what hash algorithm is used. +This would also require build scripts to pull in a hasher dependency, increasing their build times. +However, it is unclear if checksumming for build scripts is a requirement. +Also, if we could develop a plan to reduce the need for build scripts, we reduce the scope of the problem. + +Another concern is with performance. +The overhead of checksumming will be most noticeable on builds without any changes as otherwise compile times will dominate. +We are further tracking this in [#14722](https://github.com/rust-lang/cargo/issues/14722). + +There is the question of what this will look like. +Do we exclusively switch to checksums or give people the choice? +At minimum, we'd need to give people a temporary escape hatch as we transition Cargo to checksums in case they are somehow relying on the mtime behavior. +Whether Cargo would need a permanent config field is unclear. + +We reached out to some build system owners on +[zulip](https://rust-lang.zulipchat.com/#narrow/channel/334885-t-cargo.2Fbuild-integration/topic/Call.20for.20testing.3A.20use.20of.20checksums.20over.20mtime/near/478311654) +to do a call-for-testing. +So far, we've only heard from the Rust Project itself where this made build time testing more difficult because touching files to force rebuilds is a much easier option than trying to carefully make repeated edits to files. + +### Rustflags and caching + +Cargo's [build fingerprinting](https://doc.rust-lang.org/nightly/nightly-rustc/cargo/core/compiler/fingerprint/index.html) has to satisfy several needs, including +- Detecting when the existing build cache has to be thrown away and re-built, called the fingerprint +- Segregating the build cache so it gets preserved across unrelated commands (e.g. alternating `cargo check` and `cargo test` without rebuilding dependencies), called [`-Cextra-filename`](https://doc.rust-lang.org/rustc/codegen-options/index.html#extra-filename) +- Making symbol names unique so you can't unintentionally use a type in an ABI-incompatible context, called [`-Cmetadata`](https://doc.rust-lang.org/rustc/codegen-options/index.html#metadata) + +`RUSTFLAGS` is a way to bypass Cargo's abstractions and directly control the behavior of `rustc`. +Cargo includes `RUSTFLAGS` in the fingerprint hash but no in the `-Cextra-filename` hash, +causing a full rebuild when they change. +This can be especially problematic when `RUSTFLAGS` differs between the user and their editor running `cargo`. +For example, some users report they set `--cfg test` in their editor so all `#[cfg(test)]`s are enabled in rust-analyzer. + +A previous attempt was made to segregate the cache for `RUSTFLAGS` in +[#6503](https://github.com/rust-lang/cargo/pull/6503). +However, Cargo uses the same hash for `-Cextra-filename` and `-Cmetadata` +so by segregating the cache, the symbol names also become unique. +In theory, this is a good thing as `RUSTFLAGS` can affect the ABI. +However, not all `RUSTFLAGS` affect the ABI. + +Take [`--remap-path-prefix`](https://doc.rust-lang.org/rustc/command-line-arguments.html#--remap-path-prefix-remap-source-names-in-output) which is suppose to make builds of binaries more reproducible by stripping information specific to a specific build. +By including this in `-Cmetadata`, +the binary changes ([#6914](https://github.com/rust-lang/cargo/issues/6914)). +A special case for this was added [#6966](https://github.com/rust-lang/cargo/pull/6966). + +Another case we ran into was [PGO](https://doc.rust-lang.org/rustc/profile-guided-optimization.html). +With PGO, you create a build with +[`-Cprofile-generate`](https://doc.rust-lang.org/rustc/codegen-options/index.html#profile-generate) +and then run it against a benchmark. +You then feed this back into the build with +[`-Cprofile-use`](https://doc.rust-lang.org/rustc/codegen-options/index.html#profile-use) +to improve the optimizations the compiler performs. +At this point, we reverted +[#6503](https://github.com/rust-lang/cargo/pull/6503) +in +[#7417](https://github.com/rust-lang/cargo/pull/7417). + +In [#8716](https://github.com/rust-lang/cargo/issues/8716), +[ehuss](https://github.com/ehuss) proposed Cargo track `-Cextra-filename` and `-Cmetadata` separately and only include `RUSTFLAGS` in `-Cextra-filename`. + +After some refactoring +([#14826](https://github.com/rust-lang/cargo/pull/14826)) +and test improvements +( +[#14848](https://github.com/rust-lang/cargo/pull/14848), +[#14846](https://github.com/rust-lang/cargo/pull/14846), +[#14859](https://github.com/rust-lang/cargo/pull/14859) +) +by [epage](https://github.com/epage) and [weihanglo](https://github.com/weihanglo/), +epage posted [#14830](https://github.com/rust-lang/cargo/pull/14830). +However, weihanglo found there are still problems with `--remap-path-prefix`: even when using `profile.dev.split-debuginfo="packed"`, the binaries are different because the binary includes `DW_AT_GNU_dwo_name` which points to the debug file which exists per-rlib with `-Cextra-filename` included. + +Merging of [#14830](https://github.com/rust-lang/cargo/pull/14830) is blocked until the problem with `--remap-path-prefix` is resolved. + +### Snapshot testing + +*Update from [1.82](https://blog.rust-lang.org/inside-rust/2024/10/01/this-development-cycle-in-cargo-1.82.html#snapshot-testing)* + +[epage](https://github.com/epage) finalized the work for moving off of Cargo's custom assertions. + +In removing the core of the custom assertions, +we were relying on `dead_code` warnings as we removed assertions +that were no longer used. +However, we missed removing an assertion and epage removed it in [#14759](https://github.com/rust-lang/cargo/pull/14759). + +[#14781](https://github.com/rust-lang/cargo/pull/14781) and +[#14785](https://github.com/rust-lang/cargo/pull/14785) saw us migrate the last of our "unordered lines" assertion tests. +[#14785](https://github.com/rust-lang/cargo/pull/14785) took some investigation to figure out the best way to migrate. +Cargo's custom assertions redacted fewwer values and allowed a test author to ignore a value redaction by using the raw value in the expected result. +`snapbox` applies redactions earlier in the process, requiring them to always be used. +This made it so Cargo would lose test coverage in switching to snapbox as we wouldn't be verifying as much of `cargo`s output. +However, in consulting with the test author, coverage of those redacted values was not intended by them, bypassing this problem for now. + +This still left "contains", "does not contain", and "contains x but not y" assertions. +Rather than trying to design out how these should fit into snapbox, +epage left them after switching to `snapbox`'s redactions in [#14790](https://github.com/rust-lang/cargo/pull/14790). + +As this point, epage documented lessons learned through this effort in [#14793](https://github.com/rust-lang/cargo/pull/14793) and we now consider this migration complete, closing out [#14039](https://github.com/rust-lang/cargo/issues/14039). + +### JSON schema files + +In [#12883](https://github.com/rust-lang/cargo/issues/12883), +we got a request for JSON schema support for `.cargo/config.toml` files. +We already have to duplicate the schema between the source and the documentation, we didn't want to duplicate it with a hand-maintained JSON schema representation. +Thankfully there is [schemars](https://crates.io/crates/schemars) to generate JSON schema from serde types. + +To experiment with JSON schema generation, +[dacianpascu06](https://github.com/dacianpascu06) added support for JSON schema generation for `Cargo.toml` in +[#14683](https://github.com/rust-lang/cargo/pull/14683), +see [manifest.schema.json](https://github.com/rust-lang/cargo/blob/master/crates/cargo-util-schemas/manifest.schema.json). + +Generating a JSON schema for `.cargo/config.toml` will take a bit more investigation. +`Cargo.toml` has a single top-level definition with specific extension points within the schema. +`.cargo/config.toml` does not have a single top-level definition but instead the schema is defined per table or field. +This is because config layering operates on the specific path that is looked up. +The types for the schema are scattered throughout the Cargo code base and will take work to collect them all together to create a top-level definition solely for JSON schema generation. + +## Design discussions + +### Improving the built-in profiles + + +Hand-in-hand with benchmarking is profiling yet the `bench` profile does not include the relevant debug information for profiling, +requiring users to tweak their profiles in every repo (or in their home directory). +[CraftSpider](https://github.com/CraftSpider) proposed in +[#14032](https://github.com/rust-lang/cargo/issues/14032) +that we update the `bench` profile to make this easier. +However, benchmarks also need fidelity with `release` builds to ensure your numbers match what users will see. +We decided we should keep the `bench` profile matching `release` though we recognize there is room to explore improving user workflows for profiling. + +[foxtran](https://github.com/foxtran) restarted the conversation on changing the defaults for `release` to improve runtime performance in +[#11298](https://github.com/rust-lang/cargo/issues/11298). + +Potential changes include +- Enabling LTO, whether thin or fat +- Reducing the codegen-units +- Increasing the opt-level + +While `release` builds aren't focused on fast compile-times, +there is still a point of diminishing returns in trading off compile-time for runtime performance. +While `release` is generally geared towards production builds, +there are cases where `dev` is too slow for development. +[weihanglo](https://github.com/weihanglo) ran the numbers of LTO and codegen-units for Cargo in +[#14719](https://github.com/rust-lang/cargo/issues/14719). +From those numbers, it seems like thin LTO is an easy win. + +One option is for a `release-fast` or `release-heavy` to be made. +Adding new profiles may be a breaking change though and we'd have to carefully approach doing so. +We also already have discoverability problems with `release` and it has a dedicated flag (`--release`). +Without some kind of built-in integration, it seems like these policies would be best left for users. + +Whatever profile is used, one problem with LTO is that there are miscompilations which might prevent it from being a safe default (e.g. [#115344](https://github.com/rust-lang/rust/issues/115344)). + + +On the other end of the spectrum is the `dev` profile. +This profile serves two roles +- Fast iteration time +- Running code through a debugger + +It turns out that these can be at odds with each other. +When running through a debugger, you often want the binary to behave like the source code and optimizations can get in the way. +However, optimizations can reduce the amount of IR being processed, speeding up codegen. +They can then also speed up proc macros, build scripts, and test runs. +Maybe we can even design a optimization level focused on improving compile times at the cost of the debugger experience. +Similarly, how much debug information you carry around in your binary can affect your build times. + +Looking at the [Rust 2023 survey results](https://blog.rust-lang.org/2024/02/19/2023-Rust-Annual-Survey-2023-results.html#challenges), +improving compilation times and the debugging experience is neck and neck. +The question is which debugging experience are they referring to? +Those on the call mostly used "printf"-style debugging and would get benefit out of improving compilation time. +Even if we surveyed people and found this representative of the Rust community (which [davidlattimore](https://github.com/davidlattimore/) did for a subset of the community on [Mastadon](https://mas.to/@davidlattimore/113484821980790635)), +how much of this is survivorship bias from the quality of the debugger experience? +How much would even existing community members behavior change with an improved debugger experience? + +However, this may not be all-or-nothing. +We could split the `dev` profile into separate iteration-time and debugger profiles so there is a low friction way of access the non-default workflow. +There would still be friction. +If iteration-time were the default and enough people use debuggers through their IDEs and those IDEs are pre-configured, +then working with IDE vendors to change their defaults would reduce a lot of the friction. +This would likely require a long transition period. + +We could split one of the two workflows out into a whole new profile which runs into the same problems as `release-fast` and `release-heavy`. + +One idea for address the potential breakage is that we move the built-in profiles into a `cargo::` namespace and make them immutable. +We would switch the reserved profiles to just inheriting a namespaced profile by default. +There are open questions on whether this would be a breaking change and more analysis would be needed. + +Instead of reserving a new profile name, what if Cargo used the reserved `debug` name? +`debug` is already a reserved profile name and in several user-facing locations the `dev` profile is referred to as `debug` (`--debug`, `target/debug`). +We could make `dev` (`--dev`) focused on iteration time and `debug` (`--debug`) on debuggers. +There is the question of `target/debug` as changing users to `target/dev` might be too disruptive. + +It will take work to finish a plan and figuring out if its too disruptive. +If can move forward with it, it will likely require a long transition time and support across multiple projects. + +Is this change worth it? +[joshtriplett](https://github.com/joshtriplett) ran a survey on +[Internals](https://internals.rust-lang.org/t/feedback-request-performance-improvements-from-reducing-debug-info/21825) +on the affect of just +[`CARGO_PROFILE_DEV_DEBUG=line-tables-only`](https://doc.rust-lang.org/cargo/reference/profiles.html#debug) +on compilation time +with some follow up conversation on [zulip](https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/Debug.20information.20and.20build.20time/near/481165988). + +Another angle for improving iteration time for `dev` is to make it easier to speed up dependencies in the hot path. +Cargo allows you to set different optimization levels for different dependencies and some projects encourage this, like [sqlx](https://github.com/launchbadge/sqlx/tree/42ce24dab87aad98f041cafb35cf9a7d5b2b09a7?tab=readme-ov-file#compile-time-verification): +```toml +[profile.dev.package.sqlx-macros] +opt-level = 3 +``` +What if packages could provide a +[package override](https://doc.rust-lang.org/cargo/reference/profiles.html#overrides) +for when they are used as a dependency? + +Another potential use case for dependency-specified profile overrides is for mir-only rlibs. +Cargo performs codegen for each rlib in your dependency tree and relies on the linker to remove anything unused. +Mir-only rlibs would defer all codegen to the very end, allowing less codegen to be performed, potentially speeding up builds. +This has the potential to replace the need for `[features]` for a large number of use cases. +One problem is if there is a lot of shared mir between test binaries as that will lead to redundant codegen, slowing down builds. +One way to experiment with this is to allow enabling mir-only rlibs on a per-package basis through profiles. +With dependency-specified profile overrides, large packages like +[windows-sys](https://crates.io/crates/windows-sys) +could opt-in to being a mir-only rlib. + +Dependency-specified profile overrides would be a hidden interaction that would need careful consideration. + +### Avoid building production code when changing tests + +[milianw](https://github.com/milianw) posted on +[zulip](https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/upstream.20test-only.20code.20change.20triggers.20downstream.20rebuilds/near/478396625) +about their library and all dependents rebuild when changing a unit test. + +When a `#[test]` inside of a library changes, +the timestamp for the file changes and Cargo rebuilds the file. +One way to avoid that is by +[moving tests to dedicated files](https://matklad.github.io/2021/02/27/delete-cargo-integration-tests.html#Assorted-Tricks). +The rust repo does this with [a tool](https://github.com/rust-lang/rust/blob/HEAD/src/tools/tidy/src/unit_tests.rs) to enforce the practice. +[epage](github.com/epage) proposed a clippy lint for this in [rust-clippy#13589](https://github.com/rust-lang/rust-clippy/issues/13589). + +When a library changes, Cargo always rebuilds dependents. +Previously, [Osiewicz](https://github.com/Osiewicz) proposed on +[zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/Dynamically.20pruning.20jobs.20from.20the.20work.20queue) +that rustc hash the API of a crate, allowing Cargo to only rebuild dependents when the API hash changes. +This is being tracked in +[#14604](https://github.com/rust-lang/cargo/issues/14604). + +## Misc + +- [Daily reports](https://rust-lang.zulipchat.com/#narrow/stream/260232-t-cargo.2FPubGrub/topic/Progress.20report) by [Eh2406](https://github.com/Eh2406) on the progress of the Rust implementation of the PugGrub version solving algorithm +- Building on [epage](github.com/epage)'s work in [#14750](https://github.com/rust-lang/cargo/pull/14750), [linyihai](https://github.com/linyihai) diagnostics with extraneous details in [#14497](https://github.com/rust-lang/cargo/pull/14497). +- [Rustin170506](https://github.com/Rustin170506) updated how config files are loaded for cargo script in [#14749](https://github.com/rust-lang/cargo/pull/14749) +- [epage](github.com/epage) updated frontmatter parsing for cargo script in [#14792](https://github.com/rust-lang/cargo/pull/14792) and got manifest-editing commands updated to support cargo script in [#14857](https://github.com/rust-lang/cargo/pull/14857) and [#14864](https://github.com/rust-lang/cargo/pull/14864) +- [arlosi](https://github.com/arlosi) wrapped up work on `CARGO_BUILD_WARNINGS=deny` in [#14388](https://github.com/rust-lang/cargo/pull/14388) (update from [1.81](https://blog.rust-lang.org/inside-rust/2024/08/15/this-development-cycle-in-cargo-1.81.html#turn-all-warnings-into-errors)) + +## Focus areas without progress + +These are areas of interest for Cargo team members with no reportable progress for this development-cycle. + +Ready-to-develop: +- [Config control over feature unification](https://github.com/rust-lang/cargo/issues/14774) +- [Open namespaces](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#open-namespaces) +- [Split CARGO_TARGET_DIR](https://github.com/rust-lang/cargo/issues/14125) +- [Auto-generate completions](https://github.com/rust-lang/cargo/issues/6645) + - See [clap-rs/clap#3166](https://github.com/clap-rs/clap/issues/3166) + + +Needs design and/or experimentation: +- [Per-user artifact cache](https://github.com/rust-lang/cargo/issues/5931) +- [Dependency resolution hooks](https://github.com/rust-lang/cargo/issues/7193) +- [A way to report why crates were rebuilt](https://github.com/rust-lang/cargo/issues/2904) +- [GC](https://github.com/rust-lang/cargo/issues/12633) + +Planning: +- [Disabling of default features](https://github.com/rust-lang/cargo/issues/3126) +- [RFC #3416: `features` metadata](https://github.com/rust-lang/rfcs/pull/3416) + - [RFC #3487: visibility](https://github.com/rust-lang/rfcs/pull/3487) (visibility) + - [RFC #3486: deprecation](https://github.com/rust-lang/rfcs/pull/3486) + - [Unstable features](https://doc.rust-lang.org/cargo/reference/unstable.html#list-of-unstable-features) +- [OS-native config/cache directories (ie XDG support)](https://github.com/rust-lang/cargo/issues/1734) + - [Phase 1 Pre-RFC](https://internals.rust-lang.org/t/pre-rfc-split-cargo-home/19747) +- [Pre-RFC: Global, mutually exclusive features](https://internals.rust-lang.org/t/pre-rfc-mutually-excusive-global-features/19618) +- [RFC #3553: Cargo SBOM Fragment](https://github.com/rust-lang/rfcs/pull/3553) + +## How you can help + +If you have ideas for improving cargo, +we recommend first checking [our backlog](https://github.com/rust-lang/cargo/issues/) +and then exploring the idea on [Internals](https://internals.rust-lang.org/c/tools-and-infrastructure/cargo/15). + +If there is a particular issue that you are wanting resolved that wasn't discussed here, +some steps you can take to help move it along include: +- Summarizing the existing conversation (example: + [Better support for docker layer caching](https://github.com/rust-lang/cargo/issues/2644#issuecomment-1489371226), + [Change in `Cargo.lock` policy](https://github.com/rust-lang/cargo/issues/8728#issuecomment-1610265047), + [MSRV-aware resolver](https://github.com/rust-lang/cargo/issues/9930#issuecomment-1489089277) + ) +- Document prior art from other ecosystems so we can build on the work others have done and make something familiar to users, where it makes sense +- Document related problems and solutions within Cargo so we see if we are solving to the right layer of abstraction +- Building on those posts, propose a solution that takes into account the above information and cargo's compatibility requirements ([example](https://github.com/rust-lang/cargo/issues/9930#issuecomment-1489269471)) + +We are available to help mentor people for +[S-accepted issues](https://doc.crates.io/contrib/issues.html#issue-status-labels) +on +[zulip](https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo) +and you can talk to us in real-time during +[Contributor Office Hours](https://github.com/rust-lang/cargo/wiki/Office-Hours). +If you are looking to help with one of the bigger projects mentioned here and are just starting out, +[fixing some issues](https://doc.crates.io/contrib/process/index.html#working-on-issues) +will help familiarize yourself with the process and expectations, +making things go more smoothly. +If you'd like to tackle something +[without a mentor](https://doc.crates.io/contrib/issues.html#issue-status-labels), +the expectations will be higher on what you'll need to do on your own. From ebb0c350bf09c66b55f5086f535b9f86598eb2ab Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 12 Dec 2024 08:54:32 -0600 Subject: [PATCH 0694/1024] fix: Refer to Fediverse instead of Mastodon Co-authored-by: Josh Triplett --- .../2024-12-13-this-development-cycle-in-cargo-1.84.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md index b38f477c2..523603ffd 100644 --- a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md +++ b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md @@ -254,7 +254,7 @@ Looking at the [Rust 2023 survey results](https://blog.rust-lang.org/2024/02/19/ improving compilation times and the debugging experience is neck and neck. The question is which debugging experience are they referring to? Those on the call mostly used "printf"-style debugging and would get benefit out of improving compilation time. -Even if we surveyed people and found this representative of the Rust community (which [davidlattimore](https://github.com/davidlattimore/) did for a subset of the community on [Mastadon](https://mas.to/@davidlattimore/113484821980790635)), +Even if we surveyed people and found this representative of the Rust community (which [davidlattimore](https://github.com/davidlattimore/) did for a subset of the community on [Fediverse](https://mas.to/@davidlattimore/113484821980790635)), how much of this is survivorship bias from the quality of the debugger experience? How much would even existing community members behavior change with an improved debugger experience? From a83a9b2a2a5bb5c0e41165c7707dcc5452aa8c27 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 12 Dec 2024 08:56:00 -0600 Subject: [PATCH 0695/1024] fix: Typo --- .../2024-12-13-this-development-cycle-in-cargo-1.84.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md index 523603ffd..0f3bc5224 100644 --- a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md +++ b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md @@ -172,7 +172,7 @@ However, we missed removing an assertion and epage removed it in [#14759](https: [#14781](https://github.com/rust-lang/cargo/pull/14781) and [#14785](https://github.com/rust-lang/cargo/pull/14785) saw us migrate the last of our "unordered lines" assertion tests. [#14785](https://github.com/rust-lang/cargo/pull/14785) took some investigation to figure out the best way to migrate. -Cargo's custom assertions redacted fewwer values and allowed a test author to ignore a value redaction by using the raw value in the expected result. +Cargo's custom assertions redacted fewer values and allowed a test author to ignore a value redaction by using the raw value in the expected result. `snapbox` applies redactions earlier in the process, requiring them to always be used. This made it so Cargo would lose test coverage in switching to snapbox as we wouldn't be verifying as much of `cargo`s output. However, in consulting with the test author, coverage of those redacted values was not intended by them, bypassing this problem for now. From 606bf25cfff7d4b280516d24026f7dc68cb24590 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 12 Dec 2024 08:56:27 -0600 Subject: [PATCH 0696/1024] fix: Typo Co-authored-by: Eric Huss --- .../2024-12-13-this-development-cycle-in-cargo-1.84.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md index 0f3bc5224..dbff28411 100644 --- a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md +++ b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md @@ -112,7 +112,7 @@ Cargo's [build fingerprinting](https://doc.rust-lang.org/nightly/nightly-rustc/c - Making symbol names unique so you can't unintentionally use a type in an ABI-incompatible context, called [`-Cmetadata`](https://doc.rust-lang.org/rustc/codegen-options/index.html#metadata) `RUSTFLAGS` is a way to bypass Cargo's abstractions and directly control the behavior of `rustc`. -Cargo includes `RUSTFLAGS` in the fingerprint hash but no in the `-Cextra-filename` hash, +Cargo includes `RUSTFLAGS` in the fingerprint hash but not in the `-Cextra-filename` hash, causing a full rebuild when they change. This can be especially problematic when `RUSTFLAGS` differs between the user and their editor running `cargo`. For example, some users report they set `--cfg test` in their editor so all `#[cfg(test)]`s are enabled in rust-analyzer. From 7b320bad93586f17009a506ea73ccbdacadb71c2 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Mon, 16 Dec 2024 12:23:17 -0500 Subject: [PATCH 0697/1024] Update posts/2025-12-04-project-goals-nov-update.md --- posts/2025-12-04-project-goals-nov-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-12-04-project-goals-nov-update.md b/posts/2025-12-04-project-goals-nov-update.md index 2799ad3e5..ad9004458 100644 --- a/posts/2025-12-04-project-goals-nov-update.md +++ b/posts/2025-12-04-project-goals-nov-update.md @@ -194,7 +194,7 @@ Rust 2024 has now entered the nightly beta and is expected to stabilize as part * Still in the process of determining the cause of the deadlock through local testing and compiler code analysis. -* **Help wanted:** Help test the deadlock code in the [issue list](https://github.com/rust-lang/rust/labels/WG-compiler-parallel) and try to reproduce the issue. +* **Help wanted:** Try to reproduce deadlocks described in the [issue list](https://github.com/rust-lang/rust/labels/WG-compiler-parallel).
    From 66451ac83f7005ed0daa49cc5e0a96149365f272 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Mon, 16 Dec 2024 12:23:42 -0500 Subject: [PATCH 0698/1024] Rename 2025-12-04-project-goals-nov-update.md to 2025-12-16-project-goals-nov-update.md --- ...goals-nov-update.md => 2025-12-16-project-goals-nov-update.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2025-12-04-project-goals-nov-update.md => 2025-12-16-project-goals-nov-update.md} (100%) diff --git a/posts/2025-12-04-project-goals-nov-update.md b/posts/2025-12-16-project-goals-nov-update.md similarity index 100% rename from posts/2025-12-04-project-goals-nov-update.md rename to posts/2025-12-16-project-goals-nov-update.md From 956572df8605a271aaa43a45612c701bcb1f5ca1 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Mon, 16 Dec 2024 14:35:55 -0500 Subject: [PATCH 0699/1024] Add Dec 2024 Project Directors post --- .../2024-12-17-project-director-update.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 posts/inside-rust/2024-12-17-project-director-update.md diff --git a/posts/inside-rust/2024-12-17-project-director-update.md b/posts/inside-rust/2024-12-17-project-director-update.md new file mode 100644 index 000000000..eeee820ca --- /dev/null +++ b/posts/inside-rust/2024-12-17-project-director-update.md @@ -0,0 +1,67 @@ +--- +layout: post +title: "December 2024 Project Director Update" +author: Carol Nichols +team: Rust Foundation Project Directors +--- + +Hello and welcome to the inaugural Rust Foundation Project Director update! I’m Carol Nichols, I’m +one of the authors on The Rust Programming Language book and a member of the crates.io team, and [I +was recently selected by the Leadership Council to represent the Rust Project on the board of the +Rust Foundation][carol-nichols-board-announcement]. + +[carol-nichols-board-announcement]: https://foundation.rust-lang.org/news/announcing-the-rust-foundation-s-newest-project-director-carol-nichols/ + +One of my personal goals for my term as a Project Director is to communicate more and in different +ways with the Rust Project and the wider Rust community about what it’s like being a Project +Director and what the Rust Foundation is working on. This update post is one experiment along those +lines. + +In this post, you’ll find the highlights, from my perspective, of last month’s board meeting now +that the minutes have been posted publicly. I might cover other topics in the future, and I hope to +encourage other Project Directors to write as well, but recapping Foundation Board meetings is +where I’ve decided to start. + +The full board meeting minutes are [posted on the Foundation’s website][foundation-resources] after +the following month’s board meeting where the minutes are approved. The [meeting on November 12, +2024][foundation-board-minutes-2024-11], was the first board meeting I attended, and here’s what I +thought were the most interesting parts. + +[foundation-resources]: https://foundation.rust-lang.org/resources/ +[foundation-board-minutes-2024-11]: https://foundation.rust-lang.org/static/minutes/2024-11-12-minutes.pdf + +The Foundation staff gave the board updates on their recent work: + +- Bec Rumbul, in the Executive Director update, covered that the reworked Trademark Policy draft + was in public comment. The Foundation is pursuing funding from the Sovereign Tech Fund and + [Alpha-Omega]. The Foundation is monitoring the situation with a few Linux maintainers’ + permissions being removed due to US sanctions: there’s no similar situation involving Rust at + this time but Bec is preparing for the possibility. +- Joel Marcey gave the Infrastructure/Technology update: Foundation employees are working on + reducing Rust’s CI costs, and there was progress on a number of other technical initiatives. +- Paul Lenz’s Finance and Grants update included a draft 2025 budget, and a proposal for spending + $10,000 on a trial of an internship program which the board voted to approve. +- Gracie Gregory gave a Communications update that included the securing of a venue for RustConf + 2025 that will be publicly announced soon, and that the Foundation’s new website was almost ready + to launch. + +[Alpha-Omega]: https://alpha-omega.dev/ + +Ryan Levick gave the Project Director update, which included discussion of the Project Goals +Initiative working to define the Project’s priorities for the near future. + +The main item of business in the meeting was discussion of [DARPA’s Translating All C To Rust (aka +TRACTOR) program][darpa-tractor] and the Rust Foundation’s possible involvement in the evaluation +portion of the contest. Us Project Directors have some questions and thoughts surrounding this +contest, and we’re continuing these discussions with the rest of the board and the DARPA +representative. No final decisions have been made; more details will be presented for the board’s +approval in early 2025. + +[darpa-tractor]: https://www.darpa.mil/research/programs/translating-all-c-to-rust + +That’s it for this month’s update! If you have any comments, questions, or suggestions, please +email all of the project directors via project-directors at rust-lang.org or join us in [the +#foundation channel on the Rust Zulip][foundation-zulip]. Have a great holiday season; I’ll post +again in 2025! + +[foundation-zulip]: https://rust-lang.zulipchat.com/#narrow/channel/335408-foundation From 79c258f33c3ecb68fb9996365e003d0085d67cb7 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Mon, 16 Dec 2024 14:47:26 -0500 Subject: [PATCH 0700/1024] It's not Nov 2025 yet --- ...goals-nov-update.md => 2024-12-16-project-goals-nov-update.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2025-12-16-project-goals-nov-update.md => 2024-12-16-project-goals-nov-update.md} (100%) diff --git a/posts/2025-12-16-project-goals-nov-update.md b/posts/2024-12-16-project-goals-nov-update.md similarity index 100% rename from posts/2025-12-16-project-goals-nov-update.md rename to posts/2024-12-16-project-goals-nov-update.md From e9d73d4ded8a9e8d625fc198c632537149a64201 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 26 Dec 2024 12:25:08 +0100 Subject: [PATCH 0701/1024] Add system theme setting The system setting is followed if there is no item `blog-rust-lang-org-theme` in local storage. In order to switch back to the system theme, that item is deleted. Previously, if a system preference for dark theme was detected, that was additionally stored explicitly as `blog-rust-lang-org-theme`. That was removed, because it prevents the system setting from being followed if the user switches their system back to light theme. --- static/scripts/theme-switch.js | 29 ++++++++++++++++++++++------- templates/nav.hbs | 1 + 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/static/scripts/theme-switch.js b/static/scripts/theme-switch.js index 804e72b58..b8ffcd7a7 100644 --- a/static/scripts/theme-switch.js +++ b/static/scripts/theme-switch.js @@ -1,10 +1,18 @@ "use strict"; function changeThemeTo(val) { - document.documentElement.setAttribute("data-theme", val); - // save theme prefs in the browser - if (storageAvailable("localStorage")) { - localStorage.setItem("blog-rust-lang-org-theme", val); + if (val === "system") { + setThemeToSystemPref(); + // delete explicit theme pref from browser storage + if (storageAvailable("localStorage")) { + localStorage.removeItem("blog-rust-lang-org-theme"); + } + } else { + document.documentElement.setAttribute("data-theme", val); + // save theme prefs in the browser + if (storageAvailable("localStorage")) { + localStorage.setItem("blog-rust-lang-org-theme", val); + } } // the theme dropdown will close itself when returning to the dropdown() caller } @@ -44,6 +52,14 @@ function handleBlur(event) { } } +function setThemeToSystemPref() { + if (window.matchMedia("(prefers-color-scheme: dark)").matches) { + document.documentElement.setAttribute("data-theme", "dark"); + } else { + document.documentElement.setAttribute("data-theme", "light"); + } +} + // close the theme dropdown if clicking somewhere else document.querySelector('.theme-icon').onblur = handleBlur; @@ -54,9 +70,8 @@ if (storageAvailable("localStorage")) { } if (savedTheme) { document.documentElement.setAttribute("data-theme", savedTheme); -} else if (window.matchMedia("(prefers-color-scheme: dark)").matches) { - document.documentElement.setAttribute("data-theme", "dark"); - localStorage.setItem("blog-rust-lang-org-theme", "dark"); +} else { + setThemeToSystemPref(); } // show the theme selector only if JavaScript is enabled/available diff --git a/templates/nav.hbs b/templates/nav.hbs index 36d1da5ed..8d16fb77b 100644 --- a/templates/nav.hbs +++ b/templates/nav.hbs @@ -17,6 +17,7 @@
    • Light
    • Dark
    • +
    • System
    From 5647a06d64bf2429522ada3b5bd841ea3b42073e Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 26 Dec 2024 15:00:33 +0100 Subject: [PATCH 0702/1024] Eliminate theme flicker on reload --- static/scripts/theme-switch-post.js | 11 +++++++++++ static/scripts/theme-switch.js | 6 ------ templates/headers.hbs | 3 +++ templates/nav.hbs | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 static/scripts/theme-switch-post.js diff --git a/static/scripts/theme-switch-post.js b/static/scripts/theme-switch-post.js new file mode 100644 index 000000000..1516fd44f --- /dev/null +++ b/static/scripts/theme-switch-post.js @@ -0,0 +1,11 @@ +"use strict"; + +// The regular theme-switch.js script runs in the header and blocks the initial +// page render to prevent flickering. The following code cannot run as part of +// that, because the page must have been rendered first. + +// close the theme dropdown if clicking somewhere else +document.querySelector('.theme-icon').onblur = handleBlur; + +// show the theme selector only if JavaScript is enabled/available +document.querySelector('.theme-icon').style.display = 'block'; diff --git a/static/scripts/theme-switch.js b/static/scripts/theme-switch.js index b8ffcd7a7..65c6a539e 100644 --- a/static/scripts/theme-switch.js +++ b/static/scripts/theme-switch.js @@ -60,9 +60,6 @@ function setThemeToSystemPref() { } } -// close the theme dropdown if clicking somewhere else -document.querySelector('.theme-icon').onblur = handleBlur; - // Check for saved user preference on load, else check and save user agent prefs let savedTheme = null; if (storageAvailable("localStorage")) { @@ -73,6 +70,3 @@ if (savedTheme) { } else { setThemeToSystemPref(); } - -// show the theme selector only if JavaScript is enabled/available -document.querySelector('.theme-icon').style.display = 'block'; diff --git a/templates/headers.hbs b/templates/headers.hbs index fb4b824ae..11ce5c927 100644 --- a/templates/headers.hbs +++ b/templates/headers.hbs @@ -36,3 +36,6 @@ + + + diff --git a/templates/nav.hbs b/templates/nav.hbs index 2ce3c2101..317c1fa41 100644 --- a/templates/nav.hbs +++ b/templates/nav.hbs @@ -20,6 +20,6 @@
  5. System
  6. - + From bc1645b9d5458def114d2b8778c7f7b17c5d6815 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 29 Dec 2024 10:54:49 -0500 Subject: [PATCH 0703/1024] 1.84.0 post --- posts/2025-01-09-Rust-1.84.0.md | 110 ++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 posts/2025-01-09-Rust-1.84.0.md diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md new file mode 100644 index 000000000..e46409b15 --- /dev/null +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -0,0 +1,110 @@ +--- +layout: post +title: "Announcing Rust 1.84.0" +author: The Rust Release Team +release: true +--- + +The Rust team is happy to announce a new version of Rust, 1.84.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via `rustup`, you can get 1.84.0 with: + +```console +$ rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.84.0](https://doc.rust-lang.org/stable/releases.html#version-1840-2025-01-09). + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.84.0 stable + +### Cargo can use toolchain version for library version selection + +1.84.0 stabilizes the minimum supported Rust version (MSRV) aware resolver, +which uses the declared [minimum supported Rust version](https://doc.rust-lang.org/cargo/reference/rust-version.html) from +dependencies, if available, to improve package version selection. Rust version +aware selection allows library authors to easily adopt newer Rust versions +while providing library consumers a way to opt-in to using new package versions +if they need compatibility with older toolchains. + +Library authors should start declaring their MSRV. Previously, bumping the +version at each release to latest stable would force downstream consumers +requiring an older Rust version to avoid running `cargo update` and/or require +pinning the version of the library in use, but now those consumers will be able +to automatically avoid pulling in new library versions if they want +compatibility with an older toolchain. We expect this to provide more options +for library authors for picking their preferred support strategy for Rust +versions. + +The new resolver will be enabled by default with the 2024 edition (expected to +stabilize in 1.85), but can be enabled as of 1.84 by setting +`resolver.incompatible-rust-versions = "fallback"`. + +TODO: Should we talk about resolver v3 and/or recommend that as the path to enabling instead? + +Read [the documentation](https://doc.rust-lang.org/cargo/reference/resolver.html#rust-version) for more details. + +### Migration to a new trait solver begins + +The Rust compiler is in the process of moving to a new implementation for the +trait solver. The next-generation trait solver is a reimplementation of a core +component of Rust's type system. It is not only responsible for checking +whether trait-bounds - e.g. `Vec: Clone` - hold, but is also used by many +other parts of the type system, such as normalization - figuring out the +underlying type of ` as IntoIterator>::Item` - and equating types +(checking whether T and U are the same). + +In 1.84, the new solver is used for checking coherence of trait impls. At a +high level, coherence is responsible for ensuring that there is at most one +implementation of a trait for a given type, including *globally* in not yet +written or visible code in downstream crates from the current compilation. + +This stabilization does include some breaking changes, primarily by fixing some +correctness issues with the old solver. Typically these will show up as new +"conflicting implementations of trait ..." errors that were not previously +reported. We expect instances of this to be rare based on evaluation of +available code through [Crater], as the soundness holes in the previous solving +engine used relatively esoteric code. It also improves our ability to detect +where impls do *not* overlap, allowing more code to be written in some cases. + +For more details, see a [previous blog post](https://blog.rust-lang.org/inside-rust/2024/12/04/trait-system-refactor-initiative.html) +and the [stabilization report](https://github.com/rust-lang/rust/pull/130654) + +[Crater]: https://github.com/rust-lang/crater/ + +### Strict provenance APIs stabilized + +Pointers (this includes values of reference type) in Rust have two components. + +* The pointer's "address" says where in memory the pointer is currently pointing. +* The pointer's "provenance" says where and when the pointer is allowed to access memory. + +In 1.84, a number of standard library functions are stabilized to permit +explicitly manipulating the address and provenance parts of pointers, avoiding +integer-to-pointer casts to side-step the inherent ambiguity of that operation. +This benefits compiler optimizations, and it is pretty much a requirement for +using tools like [Miri](https://github.com/rust-lang/miri) and architectures +like [CHERI](https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/) that aim +to detect and diagnose pointer misuse. + +We recommend that code generally be written against the strict provenance APIs +when it needs to manipulate pointers. Rust code that doesn't cast integers to +pointers is already staying within the bounds of strict provenance, though the +usage of these APIs can make the programmer's intent clearer to tooling. + +See the [documentation](https://doc.rust-lang.org/nightly/std/ptr/index.html#strict-provenance) +for more details on these APIs. For more background, [RFC 3559](https://rust-lang.github.io/rfcs/3559-rust-has-provenance.html) +lays out the rationale for having provenance. + +### Stabilized APIs + +TODO, relnotes still in-progress for this section + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.84.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-184-2025-01-09), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-184). + +## Contributors to 1.84.0 + +Many people came together to create Rust 1.84.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.84.0/) From 9a6cc07832b8acc9b9897d3e3b0743d2bee94f22 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 29 Dec 2024 13:39:28 -0500 Subject: [PATCH 0704/1024] Update posts/2025-01-09-Rust-1.84.0.md Co-authored-by: Weihang Lo --- posts/2025-01-09-Rust-1.84.0.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index e46409b15..01aa28ae3 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -39,7 +39,8 @@ versions. The new resolver will be enabled by default with the 2024 edition (expected to stabilize in 1.85), but can be enabled as of 1.84 by setting -`resolver.incompatible-rust-versions = "fallback"`. +[`package.resolver = "3"`](https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions) in the Cargo.toml manifest file, or +[`resolver.incompatible-rust-versions = "fallback"`](https://doc.rust-lang.org/cargo/reference/config.html#resolverincompatible-rust-versions) in the Cargo configuration file. TODO: Should we talk about resolver v3 and/or recommend that as the path to enabling instead? From 1326b7f9ac4537752a7676042eeb184ec01cc1c7 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 29 Dec 2024 13:39:47 -0500 Subject: [PATCH 0705/1024] Update posts/2025-01-09-Rust-1.84.0.md Co-authored-by: Josh Triplett --- posts/2025-01-09-Rust-1.84.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 01aa28ae3..926887750 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -25,7 +25,7 @@ If you'd like to help us out by testing future releases, you might consider upda which uses the declared [minimum supported Rust version](https://doc.rust-lang.org/cargo/reference/rust-version.html) from dependencies, if available, to improve package version selection. Rust version aware selection allows library authors to easily adopt newer Rust versions -while providing library consumers a way to opt-in to using new package versions +while allowing consumers of the library to automatically use old versions if they need compatibility with older toolchains. Library authors should start declaring their MSRV. Previously, bumping the From 021bd3d8caae2e21146621da55cfa48f6197fca3 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 29 Dec 2024 13:59:04 -0500 Subject: [PATCH 0706/1024] Update posts/2025-01-09-Rust-1.84.0.md Co-authored-by: Josh Triplett --- posts/2025-01-09-Rust-1.84.0.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 926887750..5353a7327 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -42,8 +42,6 @@ stabilize in 1.85), but can be enabled as of 1.84 by setting [`package.resolver = "3"`](https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions) in the Cargo.toml manifest file, or [`resolver.incompatible-rust-versions = "fallback"`](https://doc.rust-lang.org/cargo/reference/config.html#resolverincompatible-rust-versions) in the Cargo configuration file. -TODO: Should we talk about resolver v3 and/or recommend that as the path to enabling instead? - Read [the documentation](https://doc.rust-lang.org/cargo/reference/resolver.html#rust-version) for more details. ### Migration to a new trait solver begins From e43da1e65ec5dbcc4eb5939f2abdcb221dbad05e Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 29 Dec 2024 13:59:31 -0500 Subject: [PATCH 0707/1024] Update posts/2025-01-09-Rust-1.84.0.md Co-authored-by: Josh Triplett --- posts/2025-01-09-Rust-1.84.0.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 5353a7327..50c2b722d 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -28,14 +28,7 @@ aware selection allows library authors to easily adopt newer Rust versions while allowing consumers of the library to automatically use old versions if they need compatibility with older toolchains. -Library authors should start declaring their MSRV. Previously, bumping the -version at each release to latest stable would force downstream consumers -requiring an older Rust version to avoid running `cargo update` and/or require -pinning the version of the library in use, but now those consumers will be able -to automatically avoid pulling in new library versions if they want -compatibility with an older toolchain. We expect this to provide more options -for library authors for picking their preferred support strategy for Rust -versions. +Library authors should take the MSRV-aware resolver into account when deciding their policy on adopting new Rust toolchain features. Previously, a library adopting features from a new Rust toolchain would force downstream users of that library who have an older Rust version to either upgrade their toolchain or manually select an old version of the library compatible with their toolchain (and avoid running `cargo update`). Now, those users will be able to automatically use older library versions compatible with their older toolchain. In the future, we expect this to provide more flexibility for library authors to select their preferred support strategy for Rust versions, without worrying about users on older toolchains. The new resolver will be enabled by default with the 2024 edition (expected to stabilize in 1.85), but can be enabled as of 1.84 by setting From 90aa1bb3294e1a7704cd5ec24dfa8e9195cea76c Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 29 Dec 2024 14:00:09 -0500 Subject: [PATCH 0708/1024] Re-wrap text and avoid implying no worry is accurate --- posts/2025-01-09-Rust-1.84.0.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 50c2b722d..bccead7eb 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -28,7 +28,16 @@ aware selection allows library authors to easily adopt newer Rust versions while allowing consumers of the library to automatically use old versions if they need compatibility with older toolchains. -Library authors should take the MSRV-aware resolver into account when deciding their policy on adopting new Rust toolchain features. Previously, a library adopting features from a new Rust toolchain would force downstream users of that library who have an older Rust version to either upgrade their toolchain or manually select an old version of the library compatible with their toolchain (and avoid running `cargo update`). Now, those users will be able to automatically use older library versions compatible with their older toolchain. In the future, we expect this to provide more flexibility for library authors to select their preferred support strategy for Rust versions, without worrying about users on older toolchains. +Library authors should take the MSRV-aware resolver into account when deciding +their policy on adopting new Rust toolchain features. Previously, a library +adopting features from a new Rust toolchain would force downstream users of +that library who have an older Rust version to either upgrade their toolchain +or manually select an old version of the library compatible with their +toolchain (and avoid running `cargo update`). Now, those users will be able to +automatically use older library versions compatible with their older toolchain. +In the future, we expect this to provide more flexibility for library authors +to select their preferred support strategy for Rust versions, with the toolchain +helping users on older toolchains avoid breakage. The new resolver will be enabled by default with the 2024 edition (expected to stabilize in 1.85), but can be enabled as of 1.84 by setting From 332e5663035b2b2ee31490afd71ce0ff6ef5b3b1 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 29 Dec 2024 14:02:36 -0500 Subject: [PATCH 0709/1024] Pull in previously proposed strict provenance text --- posts/2025-01-09-Rust-1.84.0.md | 52 ++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index bccead7eb..e8da20e1e 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -74,29 +74,35 @@ and the [stabilization report](https://github.com/rust-lang/rust/pull/130654) [Crater]: https://github.com/rust-lang/crater/ -### Strict provenance APIs stabilized - -Pointers (this includes values of reference type) in Rust have two components. - -* The pointer's "address" says where in memory the pointer is currently pointing. -* The pointer's "provenance" says where and when the pointer is allowed to access memory. - -In 1.84, a number of standard library functions are stabilized to permit -explicitly manipulating the address and provenance parts of pointers, avoiding -integer-to-pointer casts to side-step the inherent ambiguity of that operation. -This benefits compiler optimizations, and it is pretty much a requirement for -using tools like [Miri](https://github.com/rust-lang/miri) and architectures -like [CHERI](https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/) that aim -to detect and diagnose pointer misuse. - -We recommend that code generally be written against the strict provenance APIs -when it needs to manipulate pointers. Rust code that doesn't cast integers to -pointers is already staying within the bounds of strict provenance, though the -usage of these APIs can make the programmer's intent clearer to tooling. - -See the [documentation](https://doc.rust-lang.org/nightly/std/ptr/index.html#strict-provenance) -for more details on these APIs. For more background, [RFC 3559](https://rust-lang.github.io/rfcs/3559-rust-has-provenance.html) -lays out the rationale for having provenance. +### Strict provenance APIs + +In Rust, [pointers are not simply an “integer” or +“address”](https://rust-lang.github.io/rfcs/3559-rust-has-provenance.html). For +instance, it’s uncontroversial to say that a Use After Free is clearly +Undefined Behavior, even if you “get lucky” and the freed memory gets +reallocated before your read/write. It is also uncontroversial that writing +through a pointer derived from an `&i32` reference is Undefined Behavior, even +if writing to the same address via a different pointer is legal. The underlying +pattern here is that *the way a pointer is computed matters*, not just the +address that results from this computation. For this reason, we say that +pointers have **provenance**: to fully characterize pointer-related Undefined +Behavior in Rust, we have to know not only the address the pointer points to, +but also track which other pointer(s) it is "derived from". + +Most of the time, programmers do not need to worry much about provenance, and +it is very clear how a pointer got derived. However, when casting pointers to +integers and back, the provenance of the resulting pointer is underspecified. +With this release, Rust is adding a set of APIs that can in many cases replace +the use of integer-pointer-casts, and therefore avoid the ambiguities inherent +to such casts. In particular, the pattern of using the lowest bits of an +aligned pointer to store extra information can now be implemented without ever +casting a pointer to an integer or back. This makes the code easier to reason +about, easier to analyze for the compiler, and also benefits tools like +[Miri](https://github.com/rust-lang/miri) and architectures like +[CHERI](https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/) that aim to +detect and diagnose pointer misuse. + +For more details, see the standard library [documentation on provenance](https://doc.rust-lang.org/std/ptr/index.html#provenance). ### Stabilized APIs From a65cd8170533d2efb92eda899d92758984dde86b Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Tue, 31 Dec 2024 16:25:43 -0500 Subject: [PATCH 0710/1024] Update posts/2025-01-09-Rust-1.84.0.md Co-authored-by: Jake Goulding --- posts/2025-01-09-Rust-1.84.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index e8da20e1e..6149b391f 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -54,7 +54,7 @@ component of Rust's type system. It is not only responsible for checking whether trait-bounds - e.g. `Vec: Clone` - hold, but is also used by many other parts of the type system, such as normalization - figuring out the underlying type of ` as IntoIterator>::Item` - and equating types -(checking whether T and U are the same). +(checking whether `T` and `U` are the same). In 1.84, the new solver is used for checking coherence of trait impls. At a high level, coherence is responsible for ensuring that there is at most one From 8297755d6416a133cc834e1b57ff1be4f4c598c7 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Tue, 31 Dec 2024 16:26:15 -0500 Subject: [PATCH 0711/1024] Update posts/2025-01-09-Rust-1.84.0.md Co-authored-by: Travis Cross --- posts/2025-01-09-Rust-1.84.0.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 6149b391f..425d42619 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -76,17 +76,16 @@ and the [stabilization report](https://github.com/rust-lang/rust/pull/130654) ### Strict provenance APIs -In Rust, [pointers are not simply an “integer” or -“address”](https://rust-lang.github.io/rfcs/3559-rust-has-provenance.html). For -instance, it’s uncontroversial to say that a Use After Free is clearly -Undefined Behavior, even if you “get lucky” and the freed memory gets -reallocated before your read/write. It is also uncontroversial that writing -through a pointer derived from an `&i32` reference is Undefined Behavior, even +In Rust, [pointers are not simply an "integer" or +"address"](https://rust-lang.github.io/rfcs/3559-rust-has-provenance.html). For +instance, a "use after free" is undefined behavior even if you "get lucky" and the freed memory gets +reallocated before your read/write. As another example, writing +through a pointer derived from an `&i32` reference is undefined behavior, even if writing to the same address via a different pointer is legal. The underlying pattern here is that *the way a pointer is computed matters*, not just the address that results from this computation. For this reason, we say that -pointers have **provenance**: to fully characterize pointer-related Undefined -Behavior in Rust, we have to know not only the address the pointer points to, +pointers have **provenance**: to fully characterize pointer-related undefined +behavior in Rust, we have to know not only the address the pointer points to, but also track which other pointer(s) it is "derived from". Most of the time, programmers do not need to worry much about provenance, and From fcb9e618dfd3417f98b3e72b100029bf11797958 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Tue, 31 Dec 2024 16:27:26 -0500 Subject: [PATCH 0712/1024] Update posts/2025-01-09-Rust-1.84.0.md Co-authored-by: Ed Page --- posts/2025-01-09-Rust-1.84.0.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 425d42619..74aa6a58a 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -28,6 +28,30 @@ aware selection allows library authors to easily adopt newer Rust versions while allowing consumers of the library to automatically use old versions if they need compatibility with older toolchains. +You can opt-in to the MSRV-aware resolver via [`.cargo/config.toml`](https://doc.rust-lang.org/cargo/reference/config.html#resolverincompatible-rust-versions): +```toml +[resolver] +incompatible-rust-versions = "fallback" +``` +Then when adding a dependency: +```console +$ cargo add clap + Updating crates.io index +warning: ignoring clap@4.5.23 (which requires rustc 1.74) to maintain demo's rust-version of 1.60 + Adding clap v4.0.32 to dependencies + Updating crates.io index + Locking 33 packages to latest Rust 1.60 compatible versions + Adding clap v4.0.32 (available: v4.5.23, requires Rust 1.74) +``` + +When [verifying the latest dependencies in CI](https://doc.rust-lang.org/cargo/guide/continuous-integration.html#verifying-latest-dependencies), you can override this: +```console +$ CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=allow cargo update + Updating crates.io index + Locking 12 packages to latest compatible versions + Updating clap v4.0.32 -> v4.5.23 +``` + Library authors should take the MSRV-aware resolver into account when deciding their policy on adopting new Rust toolchain features. Previously, a library adopting features from a new Rust toolchain would force downstream users of From bff69e38dd48bf85d2202708d3bee278e0576939 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Tue, 31 Dec 2024 16:30:03 -0500 Subject: [PATCH 0713/1024] Update posts/2025-01-09-Rust-1.84.0.md --- posts/2025-01-09-Rust-1.84.0.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 74aa6a58a..930d60c1f 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -25,8 +25,7 @@ If you'd like to help us out by testing future releases, you might consider upda which uses the declared [minimum supported Rust version](https://doc.rust-lang.org/cargo/reference/rust-version.html) from dependencies, if available, to improve package version selection. Rust version aware selection allows library authors to easily adopt newer Rust versions -while allowing consumers of the library to automatically use old versions -if they need compatibility with older toolchains. +while avoiding breaking consumers needing compatibility with older toolchains. You can opt-in to the MSRV-aware resolver via [`.cargo/config.toml`](https://doc.rust-lang.org/cargo/reference/config.html#resolverincompatible-rust-versions): ```toml From aed6b43716c28375d2ee0654e955b5c815b2384c Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Fri, 3 Jan 2025 14:02:33 -0500 Subject: [PATCH 0714/1024] Add stabilized APIs --- posts/2025-01-09-Rust-1.84.0.md | 43 ++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 930d60c1f..7dadd5f09 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -128,7 +128,48 @@ For more details, see the standard library [documentation on provenance](https:/ ### Stabilized APIs -TODO, relnotes still in-progress for this section +- [`Ipv6Addr::is_unique_local`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unique_local) +- [`Ipv6Addr::is_unicast_link_local`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unicast_link_local) +- [`core::ptr::with_exposed_provenance`](https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance.html) +- [`core::ptr::with_exposed_provenance_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance_mut.html) +- [`::addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.addr) +- [`::expose_provenance`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.expose_provenance) +- [`::with_addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.with_addr) +- [`::map_addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.map_addr) +- [`::isqrt`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.isqrt) +- [`::checked_isqrt`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.checked_isqrt) +- [`::isqrt`](https://doc.rust-lang.org/stable/core/primitive.u32.html#method.isqrt) +- [`NonZero::isqrt`](https://doc.rust-lang.org/stable/core/num/struct.NonZero.html#impl-NonZero%3Cu128%3E/method.isqrt) +- [`core::ptr::without_provenance`](https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance.html) +- [`core::ptr::without_provenance_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance_mut.html) +- [`core::ptr::dangling`](https://doc.rust-lang.org/stable/core/ptr/fn.dangling.html) +- [`core::ptr::dangling_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.dangling_mut.html) + +These APIs are now stable in const contexts + +- [`AtomicBool::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.from_ptr) +- [`AtomicPtr::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicPtr.html#method.from_ptr) +- [`AtomicU8::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU8.html#method.from_ptr) +- [`AtomicU16::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU16.html#method.from_ptr) +- [`AtomicU32::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU32.html#method.from_ptr) +- [`AtomicU64::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU64.html#method.from_ptr) +- [`AtomicUsize::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.from_ptr) +- [`AtomicI8::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI8.html#method.from_ptr) +- [`AtomicI16::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI16.html#method.from_ptr) +- [`AtomicI32::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI32.html#method.from_ptr) +- [`AtomicI64::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI64.html#method.from_ptr) +- [`AtomicIsize::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicIsize.html#method.from_ptr) +- [`::is_null`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_null-1) +- [`::as_ref`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_ref-1) +- [`::as_mut`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_mut) +- [`Pin::new`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new) +- [`Pin::new_unchecked`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new_unchecked) +- [`Pin::get_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_ref) +- [`Pin::into_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.into_ref) +- [`Pin::get_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_mut) +- [`Pin::get_unchecked_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_unchecked_mut) +- [`Pin::static_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_ref) +- [`Pin::static_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_mut) ### Other changes From d9326346a9765471df7fcbd22d65e70181b86783 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Fri, 3 Jan 2025 14:11:54 -0500 Subject: [PATCH 0715/1024] Some more wording tweaks --- posts/2025-01-09-Rust-1.84.0.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 7dadd5f09..472716d45 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -19,20 +19,23 @@ If you'd like to help us out by testing future releases, you might consider upda ## What's in 1.84.0 stable -### Cargo can use toolchain version for library version selection +### Cargo considers Rust versions for dependency version selection 1.84.0 stabilizes the minimum supported Rust version (MSRV) aware resolver, which uses the declared [minimum supported Rust version](https://doc.rust-lang.org/cargo/reference/rust-version.html) from dependencies, if available, to improve package version selection. Rust version aware selection allows library authors to easily adopt newer Rust versions -while avoiding breaking consumers needing compatibility with older toolchains. +while avoiding breaking consumers who want to use older Rust compilers. You can opt-in to the MSRV-aware resolver via [`.cargo/config.toml`](https://doc.rust-lang.org/cargo/reference/config.html#resolverincompatible-rust-versions): + ```toml [resolver] incompatible-rust-versions = "fallback" ``` + Then when adding a dependency: + ```console $ cargo add clap Updating crates.io index @@ -44,6 +47,7 @@ warning: ignoring clap@4.5.23 (which requires rustc 1.74) to maintain demo's rus ``` When [verifying the latest dependencies in CI](https://doc.rust-lang.org/cargo/guide/continuous-integration.html#verifying-latest-dependencies), you can override this: + ```console $ CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=allow cargo update Updating crates.io index @@ -60,10 +64,10 @@ toolchain (and avoid running `cargo update`). Now, those users will be able to automatically use older library versions compatible with their older toolchain. In the future, we expect this to provide more flexibility for library authors to select their preferred support strategy for Rust versions, with the toolchain -helping users on older toolchains avoid breakage. +helping users on older toolchains avoid breakage. See also the [detailed guidance](https://doc.rust-lang.org/beta/cargo/reference/rust-version.html#setting-and-updating-rust-version) +on what to consider when making a choice of supported version. -The new resolver will be enabled by default with the 2024 edition (expected to -stabilize in 1.85), but can be enabled as of 1.84 by setting +The new resolver will be enabled by default when optin into the 2024 edition (will stabilize in 1.85), but can be enabled as of 1.84 by setting [`package.resolver = "3"`](https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions) in the Cargo.toml manifest file, or [`resolver.incompatible-rust-versions = "fallback"`](https://doc.rust-lang.org/cargo/reference/config.html#resolverincompatible-rust-versions) in the Cargo configuration file. @@ -93,7 +97,7 @@ engine used relatively esoteric code. It also improves our ability to detect where impls do *not* overlap, allowing more code to be written in some cases. For more details, see a [previous blog post](https://blog.rust-lang.org/inside-rust/2024/12/04/trait-system-refactor-initiative.html) -and the [stabilization report](https://github.com/rust-lang/rust/pull/130654) +and the [stabilization report](https://github.com/rust-lang/rust/pull/130654). [Crater]: https://github.com/rust-lang/crater/ From dea677eb3fb2ab578ca3fe17480e8acc3c60db5d Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Fri, 3 Jan 2025 14:12:58 -0500 Subject: [PATCH 0716/1024] Update posts/2025-01-09-Rust-1.84.0.md Co-authored-by: alexey semenyuk --- posts/2025-01-09-Rust-1.84.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 472716d45..6ac3bf523 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -23,7 +23,7 @@ If you'd like to help us out by testing future releases, you might consider upda 1.84.0 stabilizes the minimum supported Rust version (MSRV) aware resolver, which uses the declared [minimum supported Rust version](https://doc.rust-lang.org/cargo/reference/rust-version.html) from -dependencies, if available, to improve package version selection. Rust version +dependencies, if available, to improve package version selection. MSRV-aware aware selection allows library authors to easily adopt newer Rust versions while avoiding breaking consumers who want to use older Rust compilers. From 51c87317940512d44b2dc424ea1d775551690863 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Fri, 3 Jan 2025 14:18:05 -0500 Subject: [PATCH 0717/1024] Import some suggestions --- posts/2025-01-09-Rust-1.84.0.md | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 6ac3bf523..d7063680b 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -22,10 +22,11 @@ If you'd like to help us out by testing future releases, you might consider upda ### Cargo considers Rust versions for dependency version selection 1.84.0 stabilizes the minimum supported Rust version (MSRV) aware resolver, -which uses the declared [minimum supported Rust version](https://doc.rust-lang.org/cargo/reference/rust-version.html) from -dependencies, if available, to improve package version selection. MSRV-aware -aware selection allows library authors to easily adopt newer Rust versions -while avoiding breaking consumers who want to use older Rust compilers. +which prefers dependency versions compatible with the project's declared +[MSRV](https://doc.rust-lang.org/cargo/reference/rust-version.html). +With MSRV-aware version selection, the toil is reduced for maintainers to +support older toolchains by not needing to manually select older versions for +each dependency. You can opt-in to the MSRV-aware resolver via [`.cargo/config.toml`](https://doc.rust-lang.org/cargo/reference/config.html#resolverincompatible-rust-versions): @@ -55,24 +56,21 @@ $ CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=allow cargo update Updating clap v4.0.32 -> v4.5.23 ``` -Library authors should take the MSRV-aware resolver into account when deciding +This gives library authors more flexibility when deciding their policy on adopting new Rust toolchain features. Previously, a library adopting features from a new Rust toolchain would force downstream users of that library who have an older Rust version to either upgrade their toolchain or manually select an old version of the library compatible with their toolchain (and avoid running `cargo update`). Now, those users will be able to automatically use older library versions compatible with their older toolchain. -In the future, we expect this to provide more flexibility for library authors -to select their preferred support strategy for Rust versions, with the toolchain -helping users on older toolchains avoid breakage. See also the [detailed guidance](https://doc.rust-lang.org/beta/cargo/reference/rust-version.html#setting-and-updating-rust-version) -on what to consider when making a choice of supported version. -The new resolver will be enabled by default when optin into the 2024 edition (will stabilize in 1.85), but can be enabled as of 1.84 by setting +See the [documentation](https://doc.rust-lang.org/cargo/reference/rust-version.html#setting-and-updating-rust-version) for more considerations when deciding on an MSRV policy. + +The new resolver will be enabled by default for projects using the 2024 edition +(which will stabilize in 1.85), but can be enabled in this release via [`package.resolver = "3"`](https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions) in the Cargo.toml manifest file, or [`resolver.incompatible-rust-versions = "fallback"`](https://doc.rust-lang.org/cargo/reference/config.html#resolverincompatible-rust-versions) in the Cargo configuration file. -Read [the documentation](https://doc.rust-lang.org/cargo/reference/resolver.html#rust-version) for more details. - ### Migration to a new trait solver begins The Rust compiler is in the process of moving to a new implementation for the From 81c26402bef3d4efa1fc7240854ce20473fe7806 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Fri, 3 Jan 2025 15:30:39 -0500 Subject: [PATCH 0718/1024] Update posts/2025-01-09-Rust-1.84.0.md Co-authored-by: Ed Page --- posts/2025-01-09-Rust-1.84.0.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index d7063680b..faf102400 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -56,6 +56,9 @@ $ CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=allow cargo update Updating clap v4.0.32 -> v4.5.23 ``` +You can also opt-in by setting [`package.resolver = "3"`](https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions) in the Cargo.toml manifest file though that will require raising your MSRV to 1.84. The new resolver will be enabled by default for projects using the 2024 edition +(which will stabilize in 1.85). + This gives library authors more flexibility when deciding their policy on adopting new Rust toolchain features. Previously, a library adopting features from a new Rust toolchain would force downstream users of @@ -66,11 +69,6 @@ automatically use older library versions compatible with their older toolchain. See the [documentation](https://doc.rust-lang.org/cargo/reference/rust-version.html#setting-and-updating-rust-version) for more considerations when deciding on an MSRV policy. -The new resolver will be enabled by default for projects using the 2024 edition -(which will stabilize in 1.85), but can be enabled in this release via -[`package.resolver = "3"`](https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions) in the Cargo.toml manifest file, or -[`resolver.incompatible-rust-versions = "fallback"`](https://doc.rust-lang.org/cargo/reference/config.html#resolverincompatible-rust-versions) in the Cargo configuration file. - ### Migration to a new trait solver begins The Rust compiler is in the process of moving to a new implementation for the From a70e57794937cecda902168eb2c2b733f24b5f85 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Mon, 6 Jan 2025 08:26:04 -0500 Subject: [PATCH 0719/1024] Adjust some nits in trait solver text Co-authored-by: lcnr --- posts/2025-01-09-Rust-1.84.0.md | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index faf102400..690e32be8 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -69,7 +69,7 @@ automatically use older library versions compatible with their older toolchain. See the [documentation](https://doc.rust-lang.org/cargo/reference/rust-version.html#setting-and-updating-rust-version) for more considerations when deciding on an MSRV policy. -### Migration to a new trait solver begins +### Migration to the new trait solver begins The Rust compiler is in the process of moving to a new implementation for the trait solver. The next-generation trait solver is a reimplementation of a core @@ -81,16 +81,15 @@ underlying type of ` as IntoIterator>::Item` - and equating types In 1.84, the new solver is used for checking coherence of trait impls. At a high level, coherence is responsible for ensuring that there is at most one -implementation of a trait for a given type, including *globally* in not yet -written or visible code in downstream crates from the current compilation. - -This stabilization does include some breaking changes, primarily by fixing some -correctness issues with the old solver. Typically these will show up as new -"conflicting implementations of trait ..." errors that were not previously -reported. We expect instances of this to be rare based on evaluation of -available code through [Crater], as the soundness holes in the previous solving -engine used relatively esoteric code. It also improves our ability to detect -where impls do *not* overlap, allowing more code to be written in some cases. +implementation of a trait for a given type while considering not yet written +or visible code from other crates. + +This stabilization fixes a few mostly theoretical correctness issues of the +old implementation, resulting in potential "conflicting implementations of trait ..." +errors that were not previously reported. We expect the affected patterns to be +very rare based on evaluation of available code through [Crater]. The stabilization +also improves our ability to prove that impls do *not* overlap, allowing more code +to be written in some cases. For more details, see a [previous blog post](https://blog.rust-lang.org/inside-rust/2024/12/04/trait-system-refactor-initiative.html) and the [stabilization report](https://github.com/rust-lang/rust/pull/130654). From c9832a04caec83919bc87a96bade4f2adc14ba56 Mon Sep 17 00:00:00 2001 From: Urgau <3616612+Urgau@users.noreply.github.com> Date: Tue, 7 Jan 2025 07:42:05 +0100 Subject: [PATCH 0720/1024] Use rustbot config to configure rendered links --- triagebot.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/triagebot.toml b/triagebot.toml index fa0824ac5..b859d702b 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -1 +1,4 @@ [assign] + +[rendered-link] +trigger-files = ["posts/"] From 0f4dc87cb17c9a336a85de5eff03f55f2195157a Mon Sep 17 00:00:00 2001 From: Boxy Date: Thu, 9 Jan 2025 14:08:54 +0000 Subject: [PATCH 0721/1024] Add `Pin::as_deref_mut` to stabilized APIs Co-authored-by: Travis Cross --- posts/2025-01-09-Rust-1.84.0.md | 1 + 1 file changed, 1 insertion(+) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 690e32be8..562dcbffb 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -143,6 +143,7 @@ For more details, see the standard library [documentation on provenance](https:/ - [`core::ptr::without_provenance_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance_mut.html) - [`core::ptr::dangling`](https://doc.rust-lang.org/stable/core/ptr/fn.dangling.html) - [`core::ptr::dangling_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.dangling_mut.html) +- [`Pin::as_deref_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.as_deref_mut) These APIs are now stable in const contexts From 3c4664a1a958f9e2379cb57830b4d223843af3b3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Jan 2025 15:44:57 +0000 Subject: [PATCH 0722/1024] Update dependency rust to v1.84.0 --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6dfb3e9e3..a25a5c5fe 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.80.0 + RUST_VERSION: 1.84.0 jobs: lint: From b38f3af6d2e3be3edbaec0175767455d19c7af4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Fri, 10 Jan 2025 19:54:13 +0800 Subject: [PATCH 0723/1024] triagebot: register `relnotes-interest-group` ping group for release blog post --- triagebot.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/triagebot.toml b/triagebot.toml index b859d702b..6964dd8d2 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -2,3 +2,9 @@ [rendered-link] trigger-files = ["posts/"] + +[ping.relnotes-interest-group] +message = """\ +Hi relnotes-interest-group, this PR adds a release blog post. Could you review +the blog post if you have time? Thanks <3 +""" From ce633561c8e1d9234852db72c2e552f7dd8c142b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Fri, 10 Jan 2025 21:29:05 +0800 Subject: [PATCH 0724/1024] Add Dec 2024 issue of This Month In Our Test Infra --- .../2025-01-10-test-infra-dec-2024.md | 220 ++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 posts/inside-rust/2025-01-10-test-infra-dec-2024.md diff --git a/posts/inside-rust/2025-01-10-test-infra-dec-2024.md b/posts/inside-rust/2025-01-10-test-infra-dec-2024.md new file mode 100644 index 000000000..de5d8364c --- /dev/null +++ b/posts/inside-rust/2025-01-10-test-infra-dec-2024.md @@ -0,0 +1,220 @@ +--- +layout: post +title: "This Month in Our Test Infra: December 2024" +author: Jieyou Xu +team: the Bootstrap Team +--- + +# This Month in Our Test Infra: December 2024 + + + +Happy new year, dear reader! This is the last *This Month in Our Test Infra* issue for 2024. + +This is a quick summary of the changes in the test infrastructure for the [rust-lang/rust] repository[^scope] for **December 2024**. + +[^scope]: The test infra here refers to the test harness [compiletest] and supporting components in our build system [bootstrap]. This test infra is used mainly by rustc and rustdoc. Other tools like cargo, miri or rustfmt maintain their own test infra. + +As usual, if you encounter bugs or UX issues when using our test infrastructure, please [file an issue][new-issue]. Bugs and papercuts can't be fixed if we don't know about them! + +**Thanks to everyone who contributed to our test infra!** + +## Highlights + +### `rustc-dev-guide` is now a `josh` subtree! + +Previously, [rustc-dev-guide] was a submodule inside [rust-lang/rust], and updates to [rustc-dev-guide] had to be done in a separate PR against the [rustc-dev-guide] repository. + +Now, thanks to [@Kobzol](https://github.com/Kobzol)'s efforts (which included overcoming many unforeseen obstacles), [`rustc-dev-guide` is now a `josh` subtree][pr-134907]. This is a significant improvement for contribution workflows because it means that documentation updates to [rustc-dev-guide] can accompany the implementation change in [rust-lang/rust] in the same PR. The reduction in contribution friction also encourages [rustc-dev-guide] updates because you no longer have to author and maintain two separate PRs. + +[pr-134907]: https://github.com/rust-lang/rust/pull/134907 + +### compiletest will now show the difference between normalized output and actual output for differing lines + +Previously, it can be very difficult to tell when a ui test fails what the actual output is pre-normalization, as you would have to resort to `--nocapture` or similar. + +Now, [compiletest will also show the pre-normalization mismatched output lines on failure to make this easier to tell][pr-133733]. Example output: + +```text +failures: + +---- [ui] tests/ui/layout/enum.rs stdout ---- +diff of stderr: + +- error: align: AbiAndPrefAlign { abi: Align(2 bytes), pref: $PREF_ALIGN } ++ error: align: AbiAndPrefAlign { abi: Align(2 bytes), pref: $PREF_ALIN } +2 --> $DIR/enum.rs:9:1 +3 | +4 LL | enum UninhabitedVariantAlign { + +Note: some mismatched output was normalized before being compared +- error: align: AbiAndPrefAlign { abi: Align(2 bytes), pref: Align(8 bytes) } +- --> /home/jyn/src/rust2/tests/ui/layout/enum.rs:9:1 ++ error: align: AbiAndPrefAlign { abi: Align(2 bytes), pref: $PREF_ALIN } +``` + +[pr-133733]: https://github.com/rust-lang/rust/pull/133733 + +### compiletest now allows using a specific debugger when running debuginfo tests + +For a long time, the `tests/debuginfo` test suite could only be successfully run if you had all the tested debuggers (being `lldb`, `gdb`, `cdb`). This is very annoying locally if: + +- One or more of these debuggers are not available or don't work locally[^lldb]. +- You just wanted to look at the test failures for a given debugger. + +Now, you are able to run the `tests/debuginfo` test suite with a *specific* debugger, to only run the tests against that specified debugger. Example usage: + +```bash +$ ./x test tests/debuginfo -- --debugger gdb +``` + +### `ui` tests now support `//@ forbid-output` + +`ui` tests can now use the `//@ forbid-output: REGEX` directive to check for a pattern which must not appear in the stderr. If the `REGEX` pattern is matched, then the `ui` test will fail. + +Please consult [rustc-dev-guide] for more details. + +### `./x test` now accepts a `--no-capture` flag which will be forwarded to compiletest (and thus libtest) + +Previously, if you wanted to pass the `--nocapture` flag through [bootstrap], through [compiletest], to the underlying [libtest] runner, on Linux you have to write: + +```bash +$ ./x test tests/ui -- --nocapture +``` + +On native Windows msvc it's even worse, I recall having to write + +```powershell +PS> ./x test tests/ui -- -- --nocapture +``` + +Which is hard to discover and a contributor papercut[^nocapture]. + +Now, you can just write + +```bash +$ ./x test tests/ui --no-capture +``` + +and bootstrap will forward this flag as `--nocapture` to the underlying [libtest]. + + +## Notable changes + +This section is intended to be like a "compatibility notes" but for human test writers. + +### `FileCheck`-based test suites no longer predefine `MSVC` and `NONMSVC` `FileCheck` prefixes + +In the *current* setup, compiletest will register a [`FileCheck`][filecheck] custom prefix for each compiletest `//@ revision`. However, for historical reasons compiletest also predefined `MSVC` and `NONMSVC` `FileCheck` prefixes depending on the *host*. But this is very surprising for two reasons: + +1. It's "spooky action in a distance" because the user never declared these custom prefixes, and these prefixes are conditionally set based on the host. It's hard to debug too. +2. If the user also wants to add their own `//@ revision: MSVC NONMSVC` revisions, because compiletest would pass `--check-prefix` for those names twice, this will cause `FileCheck` to report an error about duplicate prefixes. + +Therefore, in [compiletest: don't register predefined `MSVC`/`NONMSVC` `FileCheck` prefixes #134463](https://github.com/rust-lang/rust/pull/134463) we no longer predefine these two `FileCheck` prefixes. + +If you want the previous `MSVC` vs `NONMSVC` behavior, you will need to explicitly write out + +```rs +//@ revisions: MSVC NONMSVC +//@[MSVC] only-windows-msvc +//@[NONMSVC] ignore-windows-msvc +``` + +### `normalize-{stderr,stdout}-test` directives are renamed to `normalize-{stderr,stdout}` + +Mostly a cleanup, the `-test` suffixes provide no additionally useful information, and only make these two `normalize-*` directives hard to discover. + +`normalize-{stderr,stdout}-test` directives are now [renamed to `normalize-{stderr,stdout}`][pr-134759]. `normalize-{stderr,stdout}-{32,64}bit` directives remain unaffected. + +[pr-134759]: https://github.com/rust-lang/rust/pull/134759 + +### compiletest will now deny usages of builtin `FileCheck` suffixes as revision names (for `FileCheck`-based test suites) + +For [`FileCheck`][filecheck]-based test suites (`assembly`, `codegen`, `mir-opt`), compiletest will register a custom `FileCheck` prefix for each compiletest `//@ revision`. However, `FileCheck` also has some [builtin suffixes][filecheck-suffixes] such as: + +```rust +// COM: +// CHECK: +// CHECK-NEXT: +// CHECK-SAME: +// CHECK-EMPTY: +// CHECK-NOT: +// CHECK-COUNT: +// CHECK-DAG: +// CHECK-LABEL: +``` + +When combined, this previously meant that the compiletest revision + builtin `FileCheck` suffix constructions such as + +```rust +// next: +// same-SAME: +// not-NOT: +// next-NEXT: +// not-SAME: +``` + +are permitted by compiletest, which are incredibly confusing. + +As such, compiletest will now reject `CHECK`, `COM`, `NEXT`, `SAME`, `EMPTY`, `NOT`, `COUNT`, `DAG`, `LABEL` as revision names in `FileCheck`-based test suites. + +[filecheck-suffixes]: https://llvm.org/docs/CommandGuide/FileCheck.html#the-check-next-directive + + +## PR listing + +### Improvements + +- [rustc-dev-guide]: [Turn `rustc-dev-guide` into a `josh` subtree #134907](https://github.com/rust-lang/rust/pull/134907) +- [compiletest]: [Show the difference between the normalized output and the actual output for lines which didn't match #133733](https://github.com/rust-lang/rust/pull/133733) +- [compiletest]: [Explain that UI tests are expected not to compile by default #133813](https://github.com/rust-lang/rust/pull/133813) +- [compiletest]: [Allow using a specific debugger when running `debuginfo` tests #134629](https://github.com/rust-lang/rust/pull/134629) +- [compiletest], [run-make-support]: [Improve `compiletest` and `run-make-support` symlink handling](https://github.com/rust-lang/rust/pull/134659) +- [compiletest]: [Support `forbid-output` in UI tests #134738](https://github.com/rust-lang/rust/pull/134738) +- [bootstrap]: [Add `--no-capture`/`--nocapture` as bootstrap arguments #134809](https://github.com/rust-lang/rust/pull/134809) +- [bootstrap]: [Allow `./x check compiletest` #134848](https://github.com/rust-lang/rust/pull/134848) +- [compiletest]: [Deny usage of special `FileCheck` suffixes as revision names #134925](https://github.com/rust-lang/rust/pull/134925) +- [tidy]: [Run Python formatting check in `tidy` on CI #134964](https://github.com/rust-lang/rust/pull/134964) +- [tidy]: [Print how to rebless Python formatting in `tidy` #134968](https://github.com/rust-lang/rust/pull/134968) + +### Fixes + +- [compiletest]: [Fix `--nocapture` for `run-make` tests #134111](https://github.com/rust-lang/rust/pull/134111) +- [compiletest]: [Remove empty 'expected' files when blessing #134808](https://github.com/rust-lang/rust/pull/134808) +- [run-make]: [Fix `assert_stderr_not_contains_regex` #134113](https://github.com/rust-lang/rust/pull/134113)[^oops] + +### Cleanups + +- [compiletest]: [Don't register predefined `MSVC`/`NONMSVC` `FileCheck` prefixes](https://github.com/rust-lang/rust/pull/134463) +- [compiletest]: [Remove the `-test` suffix from `normalize-*` directives #134759](https://github.com/rust-lang/rust/pull/134759) +- [compiletest]: [Only pass the post-colon value to `parse_normalize_rule` #134840](https://github.com/rust-lang/rust/pull/134840) +- [compiletest]: [Slightly simplify the handling of debugger directive prefixes #134849](https://github.com/rust-lang/rust/pull/134849) +- [bootstrap]: [Consolidate the macros for declaring compiletest test suites #134876](https://github.com/rust-lang/rust/pull/134876) +- [tidy]: [Replace `black` with `ruff` in `tidy` #133821](https://github.com/rust-lang/rust/pull/133821) + +### Documentation updates + +- [Document how to run the split Docker pipelines #134894](https://github.com/rust-lang/rust/pull/134894) +- [Document the `--dev` flag for `src/ci/docker/run.sh` #134669](https://github.com/rust-lang/rust/pull/134669) +- [rustc-dev-guide]: [`compiletest`: Document the `--debugger` flag #2170](https://github.com/rust-lang/rustc-dev-guide/pull/2170) +- [rustc-dev-guide]: [Document `forbid-output` for UI tests #2171](https://github.com/rust-lang/rustc-dev-guide/pull/2171) +- [rustc-dev-guide]: [Remove the `-test` suffix from normalize directives #2172](https://github.com/rust-lang/rustc-dev-guide/pull/2172) +- [rustc-dev-guide]: [Document `x test --no-capture` #2174](https://github.com/rust-lang/rustc-dev-guide/pull/2174) +- [rustc-dev-guide]: [Describe how to use rust-analyzer with `rmake.rs` #2191](https://github.com/rust-lang/rustc-dev-guide/pull/2191) + + +[rust-lang/rust]: https://github.com/rust-lang/rust +[rustc-dev-guide]: https://github.com/rust-lang/rustc-dev-guide +[compiletest]: https://github.com/rust-lang/rust/tree/master/src/tools/compiletest +[run-make-support]: https://github.com/rust-lang/rust/tree/master/src/tools/run-make-support +[bootstrap]: https://github.com/rust-lang/rust/tree/master/src/bootstrap +[libtest]: https://github.com/rust-lang/rust/tree/master/library/test +[new-issue]: https://github.com/rust-lang/rust/issues/new +[filecheck]: https://llvm.org/docs/CommandGuide/FileCheck.html +[run-make]: https://github.com/rust-lang/rust/tree/master/tests/run-make +[tidy]: https://github.com/rust-lang/rust/tree/master/src/tools/tidy + + +[^lldb]: For example, I keep having to debug the debugger like `lldb` when the older `lldb` versions keep complaining about `ModuleNotFoundError: No module named '_lldb'`. +[^nocapture]: I don't know about you, but I can never for the life of me remember what the flag is called. I keep thinking it's `--no-capture` when currently libtest only accepts `--nocapture`. Thankfully T-testing-devex FCP'd to add the more conventional version `--no-capture`, looking forward to that. I can also never figure out how many `--` dashes I need, I keep finding myself having to add more `--` until it starts working. +[^oops]: Nyehehehe From 0fabf08a09fb4c004c63b96afdc381799f158409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Mon, 13 Jan 2025 15:09:43 +0100 Subject: [PATCH 0725/1024] Add 2024 Annual Rust survey announcement blog post --- ...-2024-State-Of-Rust-Survey-2024-results.md | 351 ++++++++++++++++++ .../do-you-personally-use-rust-at-work.png | Bin 0 -> 25481 bytes .../do-you-personally-use-rust-at-work.svg | 1 + .../do-you-use-rust.png | Bin 0 -> 20868 bytes .../do-you-use-rust.svg | 1 + .../have-you-taken-a-rust-course.png | Bin 0 -> 28812 bytes .../have-you-taken-a-rust-course.svg | 1 + .../how-is-rust-used-at-your-organization.png | Bin 0 -> 48664 bytes .../how-is-rust-used-at-your-organization.svg | 1 + .../how-often-do-you-use-rust.png | Bin 0 -> 24435 bytes .../how-often-do-you-use-rust.svg | 1 + ...how-would-you-rate-your-rust-expertise.png | Bin 0 -> 31181 bytes ...how-would-you-rate-your-rust-expertise.svg | 1 + .../technology-domain-wordcloud.png | Bin 0 -> 47018 bytes .../technology-domain.png | Bin 0 -> 62291 bytes .../technology-domain.svg | 1 + ...r-biggest-worries-about-rust-wordcloud.png | Bin 0 -> 53046 bytes ...at-are-your-biggest-worries-about-rust.png | Bin 0 -> 63172 bytes ...at-are-your-biggest-worries-about-rust.svg | 1 + ...what-do-you-think-about-rust-evolution.png | Bin 0 -> 34882 bytes ...what-do-you-think-about-rust-evolution.svg | 1 + .../what-ide-do-you-use-wordcloud.png | Bin 0 -> 47132 bytes .../what-ide-do-you-use.png | Bin 0 -> 37818 bytes .../what-ide-do-you-use.svg | 1 + ...-materials-have-you-consumed-wordcloud.png | Bin 0 -> 54997 bytes ...f-learning-materials-have-you-consumed.png | Bin 0 -> 41719 bytes ...f-learning-materials-have-you-consumed.svg | 1 + .../where-do-you-live.png | Bin 0 -> 88982 bytes .../where-do-you-live.svg | 1 + ...tures-do-you-want-stabilized-wordcloud.png | Bin 0 -> 51491 bytes .../which-features-do-you-want-stabilized.png | Bin 0 -> 78420 bytes .../which-features-do-you-want-stabilized.svg | 1 + .../which-os-do-you-target-wordcloud.png | Bin 0 -> 50470 bytes .../which-os-do-you-target.png | Bin 0 -> 48585 bytes .../which-os-do-you-target.svg | 1 + .../which-os-do-you-use-wordcloud.png | Bin 0 -> 50210 bytes .../which-os-do-you-use.png | Bin 0 -> 28010 bytes .../which-os-do-you-use.svg | 1 + ...lems-limit-your-productivity-wordcloud.png | Bin 0 -> 50657 bytes ...which-problems-limit-your-productivity.png | Bin 0 -> 89098 bytes ...which-problems-limit-your-productivity.svg | 1 + ...which-statements-apply-to-rust-at-work.png | Bin 0 -> 41239 bytes ...which-statements-apply-to-rust-at-work.svg | 1 + .../why-did-you-stop-using-rust-wordcloud.png | Bin 0 -> 50547 bytes .../why-did-you-stop-using-rust.png | Bin 0 -> 46544 bytes .../why-did-you-stop-using-rust.svg | 1 + .../why-dont-you-use-rust-wordcloud.png | Bin 0 -> 53331 bytes .../why-dont-you-use-rust.png | Bin 0 -> 43639 bytes .../why-dont-you-use-rust.svg | 1 + .../why-you-use-rust-at-work.png | Bin 0 -> 51805 bytes .../why-you-use-rust-at-work.svg | 1 + .../2025-01-rust-survey-2024/charts.js | 77 ++++ 52 files changed, 448 insertions(+) create mode 100644 posts/2025-01-27-2024-State-Of-Rust-Survey-2024-results.md create mode 100644 static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.png create mode 100644 static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.svg create mode 100644 static/images/2025-01-rust-survey-2024/do-you-use-rust.png create mode 100644 static/images/2025-01-rust-survey-2024/do-you-use-rust.svg create mode 100644 static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.png create mode 100644 static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.svg create mode 100644 static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.png create mode 100644 static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.svg create mode 100644 static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.png create mode 100644 static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.svg create mode 100644 static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.png create mode 100644 static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.svg create mode 100644 static/images/2025-01-rust-survey-2024/technology-domain-wordcloud.png create mode 100644 static/images/2025-01-rust-survey-2024/technology-domain.png create mode 100644 static/images/2025-01-rust-survey-2024/technology-domain.svg create mode 100644 static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust-wordcloud.png create mode 100644 static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.png create mode 100644 static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.svg create mode 100644 static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.png create mode 100644 static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.svg create mode 100644 static/images/2025-01-rust-survey-2024/what-ide-do-you-use-wordcloud.png create mode 100644 static/images/2025-01-rust-survey-2024/what-ide-do-you-use.png create mode 100644 static/images/2025-01-rust-survey-2024/what-ide-do-you-use.svg create mode 100644 static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed-wordcloud.png create mode 100644 static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed.png create mode 100644 static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed.svg create mode 100644 static/images/2025-01-rust-survey-2024/where-do-you-live.png create mode 100644 static/images/2025-01-rust-survey-2024/where-do-you-live.svg create mode 100644 static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized-wordcloud.png create mode 100644 static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.png create mode 100644 static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.svg create mode 100644 static/images/2025-01-rust-survey-2024/which-os-do-you-target-wordcloud.png create mode 100644 static/images/2025-01-rust-survey-2024/which-os-do-you-target.png create mode 100644 static/images/2025-01-rust-survey-2024/which-os-do-you-target.svg create mode 100644 static/images/2025-01-rust-survey-2024/which-os-do-you-use-wordcloud.png create mode 100644 static/images/2025-01-rust-survey-2024/which-os-do-you-use.png create mode 100644 static/images/2025-01-rust-survey-2024/which-os-do-you-use.svg create mode 100644 static/images/2025-01-rust-survey-2024/which-problems-limit-your-productivity-wordcloud.png create mode 100644 static/images/2025-01-rust-survey-2024/which-problems-limit-your-productivity.png create mode 100644 static/images/2025-01-rust-survey-2024/which-problems-limit-your-productivity.svg create mode 100644 static/images/2025-01-rust-survey-2024/which-statements-apply-to-rust-at-work.png create mode 100644 static/images/2025-01-rust-survey-2024/which-statements-apply-to-rust-at-work.svg create mode 100644 static/images/2025-01-rust-survey-2024/why-did-you-stop-using-rust-wordcloud.png create mode 100644 static/images/2025-01-rust-survey-2024/why-did-you-stop-using-rust.png create mode 100644 static/images/2025-01-rust-survey-2024/why-did-you-stop-using-rust.svg create mode 100644 static/images/2025-01-rust-survey-2024/why-dont-you-use-rust-wordcloud.png create mode 100644 static/images/2025-01-rust-survey-2024/why-dont-you-use-rust.png create mode 100644 static/images/2025-01-rust-survey-2024/why-dont-you-use-rust.svg create mode 100644 static/images/2025-01-rust-survey-2024/why-you-use-rust-at-work.png create mode 100644 static/images/2025-01-rust-survey-2024/why-you-use-rust-at-work.svg create mode 100644 static/scripts/2025-01-rust-survey-2024/charts.js diff --git a/posts/2025-01-27-2024-State-Of-Rust-Survey-2024-results.md b/posts/2025-01-27-2024-State-Of-Rust-Survey-2024-results.md new file mode 100644 index 000000000..f59639982 --- /dev/null +++ b/posts/2025-01-27-2024-State-Of-Rust-Survey-2024-results.md @@ -0,0 +1,351 @@ +--- +layout: post +title: "2024 State of Rust Survey Results" +author: The Rust Survey Team +--- + +Hello, Rustaceans! + +The Rust Survey Team is excited to share the results of our [2024 survey on the Rust Programming language](https://blog.rust-lang.org/2024/12/05/annual-survey-2024-launch.html), conducted between December 5, 2024 and December 23, 2024. +As in previous years, the 2024 State of Rust Survey was focused on gathering insights and feedback from Rust users, and all those who are interested in the future of Rust more generally. + +This ninth edition of the survey surfaced new insights and learning opportunities straight from the global Rust language community, which we will summarize below. In addition to this blog post, we have also prepared a [report][report] containing charts with aggregated results of all questions in the survey. + +**Our sincerest thanks to every community member who took the time to express their opinions and experiences with Rust over the past year. Your participation will help us make Rust better for everyone.** + +There's a lot of data to go through, so strap in and enjoy! + +## Participation + +| **Survey** | **Started** | **Completed** | **Completion rate** | **Views** | +|:----------:|------------:|--------------:|--------------------:|----------:| +| 2023 | 11 950 | 9 710 | 82.2% | 16 028 | +| 2024 | TODO | TODO | TODO% | TODO | + +TODO - outdated, don't have the data yet + +[//]: # (As shown above, in 2023, we have received 37% fewer survey views in vs 2022, but saw a slight uptick in starts and completions. There are many reasons why this could have been the case, but it’s possible that because we released the [2022 analysis blog](https://blog.rust-lang.org/2023/08/07/Rust-Survey-2023-Results.html) so late last year, the survey was fresh in many Rustaceans’ minds. This might have prompted fewer people to feel the need to open the most recent survey. Therefore, we find it doubly impressive that there were more starts and completions in 2023, despite the lower overall view count.) + +## Community + +TODO - outdated, don't have the data yet + +[//]: # (We saw a 3pp increase in respondents taking this year’s survey in English – 80% in 2023 and 77% in 2022. Across all other languages, we saw only minor variations – all of which are likely due to us offering fewer languages overall this year due to having fewer volunteers.) + +Same as every year, we asked our respondents in which country they live in. The top 10 countries represented were, in order: United States (22%), Germany (12%), China (6%), United Kingdom (6%), France (6%), Canada (3%), Russia (3%), Netherlands (3%), Japan (3%), and Poland (3%) . We were interested to see a small reduction in participants taking the survey in the United States in 2023 (down 3pp from the 2022 edition) which is a positive indication of the growing global nature of our community! You can try to find your country in the chart below: + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +[//]: # (Once again, the majority of our respondents reported being most comfortable communicating on technical topics in English at 92.7% — a slight difference from 93% in 2022. Again, Chinese was the second-highest choice for preferred language for technical communication at 6.1% (7% in 2022).) + +[//]: # () +[//]: # () + +[//]: # () +[//]: # (We also asked whether respondents consider themselves members of a marginalized community. Out of those who answered, 76% selected no, 14% selected yes, and 10% preferred not to say.) + +[//]: # () +[//]: # (We have asked the group that selected “yes” which specific groups they identified as being a member of. The majority of those who consider themselves a member of an underrepresented or marginalized group in technology identify as lesbian, gay, bisexual, or otherwise non-heterosexual. The second most selected option was neurodivergent at 41% followed by trans at 31.4%. Going forward, it will be important for us to track these figures over time to learn how our community changes and to identify the gaps we need to fill.) + +[//]: # () +[//]: # () + +[//]: # () +[//]: # (As Rust continues to grow, we must acknowledge the diversity, equity, and inclusivity (DEI)-related gaps that exist in the Rust community. Sadly, Rust is not unique in this regard. For instance, only 20% of 2023 respondents to this representation question consider themselves a member of a racial or ethnic minority and only 26% identify as a woman. We would like to see more equitable figures in these and other categories. In 2023, the Rust Foundation formed a diversity, equity, and inclusion subcommittee on its Board of Directors whose members are aware of these results and are actively discussing ways that the Foundation might be able to better support underrepresented groups in Rust and help make our ecosystem more globally inclusive. One of the central goals of the Rust Foundation board's subcommittee is to analyze information about our community to find out what gaps exist, so this information is a helpful place to start. This topic deserves much more depth than is possible here, but readers can expect more on the subject in the future.) + +## Rust usage + +The number of respondents that self-identify as a Rust user was quite similar to last year, around 92%. This high number is not surprising, since we primarily target existing Rust developers with this survey. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Similarly as last year, around 31% of those who did not identify as Rust users cited the perception of difficulty as the primary reason for not using Rust. The most common reason for not using Rust was that the respondents simply haven’t had the chance to try it yet. + + +
    +
    + +
    + + +Of the former Rust users who participated in the 2024 survey, 36% cited factors outside their control as a reason why they no longer use Rust, which is a 10pp decrease from last year. This year, we also asked respondents if they would consider using Rust again if an opportunity comes up, which turns out to be true for a large fraction of the respondents (63%). That is good to hear! + + +
    +
    + +
    + + +> Closed answers marked with N/A were not present in the previous version(s) of the survey. + +Of those who used Rust in 2024, 53% did so on a daily (or nearly daily) basis — an increase of 4pp from the previous year. We can observe an upward trend in the frequency of Rust usage over the past few years. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Rust expertise is also continually increasing amongst our respondents! 20% of respondents can write (only) simple programs in Rust (a decrease of 3pp from 2023), while 53% consider themselves productive using Rust — up from 47% in 2023. While the survey is just one tool to measure the changes in Rust expertise overall, these numbers are heartening as they represent knowledge growth for many Rustaceans returning to the survey year over year. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +## Learning Rust +To use Rust, programmers first have to learn it, so we are always interested in finding out how do they approach that. Based on the survey results, it seems that most users learn from Rust documentation and also from [The Rust Programming Language](https://doc.rust-lang.org/book/) book, which has been a favourite learning resource of new Rustaceans for a long time. Many people also seem to learn by reading the source code of Rust crates. The fact that both the documentation and source code of tens of thousands of Rust crates is available on [docs.rs](https://docs.rs) and GitHub makes this easier. + + +
    +
    + +
    + + +On the other hand, only a very small number of respondents (around 3%) have taken a university Rust course or use university learning materials. It seems that Rust has not yet penetrated university curriculums, as this is typically a very slow moving area. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +## Programming environment + +In terms of operating systems used by Rustaceans, the situation stayed very similar over the past couple years, with Linux being the most popular choice, followed by macOS and Windows, which have a very similar share of usage. As you can see in the linked [wordcloud](../../../images/2025-01-rust-survey-2024/which-os-do-you-use-wordcloud.png), there are also a few users that prefer Arch, btw. + + +
    +
    + +
    + + +Rust programmers target a diverse set of platforms with their Rust programs. We saw a slight uptick in users targeting embedded and mobile platforms, but otherwise the distribution of platforms stayed mostly the same as last year. Since the WebAssembly target is quite diverse, we have split it into two separate categories this time. Based on the results it is clear that when using WebAssembly, it is mostly in the context of browsers (23%) rather than other use-cases (7%). + + +
    +
    + +
    + + +We cannot of course forget the favourite topic of many programmers: which IDE (developer environment) do they use. Although Visual Studio Code still remains the most popular option, its share has dropped by 5pp this year. On the other hand, the Zed editor seems to have gained considerable traction recently. + + +
    +
    + +
    + + +> You can also take a look at the linked [wordcloud](../../../images/2025-01-rust-survey-2024/what-ide-do-you-use-wordcloud.png) that summarizes open answers to this question (the "Other" category), to see what other editors are also popular. + +## Rust at Work + +We were excited to see that more and more people use Rust at work for the majority of their coding, 38% vs 34% from last year. There is a clear upward trend in this metric over the past few years. + +The usage of Rust within companies also seems to be rising, 45% of respondents answered that their organisation makes non-trivial use of Rust, which is a 7pp increase from 2023. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Once again, the top reason employers of our survey respondents invested in Rust was the ability to build relatively correct and bug-free software. The second most popular reason was Rust’s performance characteristics. 21% of respondents that use Rust at work do so because they already know it, and it's thus their default choice, an uptick of 5pp from 2023. This seems to suggest that Rust is becoming one of the baseline languages of choice for more companies. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Similarly to the previous year, a large percentage of respondents (82%) report that Rust helped their company achieve its goals. In general, it seems that programmers and companies are quite happy with their usage of Rust, which is great! + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +In terms of technology domains, the situation is quite similar to the previous year. Rust to be especially popular for creating server backends, web and networking services and cloud technologies. It also seems to be gaining more traction for embedded use-cases. + + +
    +
    + +
    + + +> You can scroll the chart to the right to see more domains. Note that the Automotive domain was not offered as a closed answer in the 2023 survey (it was merely entered through open answers), which might explain the large jump. + +It is exciting to see the continued growth of professional Rust usage and the confidence so many users feel in its performance, control, security and safety, enjoyability, and more! + +## Challenges + +As always, one of the main goals of the State of Rust survey is to shed light on challenges, concerns, and priorities on Rustaceans’ minds over the past year. + +We have asked our users about aspects of Rust that limit their productivity. Perhaps unsurprisingly, slow compilation was at the top of the list, followed by subpar support for debugging Rust and high disk usage of Rust compiler artifacts. On the other hand, most Rust users seem to be very happy with its runtime performance, the correctness and stability of the compiler and also Rust's documentation. + + +
    +
    + +
    + + +In terms of specific unstable (or missing) features that Rust users want to be stabilized (or implemented), the most desired ones were async closures and if/let while chains. Well, we have good news! Async closures will be stabilized in the next version of Rust (1.85), and if/let while chains will hopefully follow [soon after](https://github.com/rust-lang/rust/pull/132833), once Edition 2024 is released (which will also happen in Rust 1.85). + +Other coveted features are generators (both sync and async) and more powerful generic const expressions. You can follow the [Rust Project Goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html) to track the progress of these (and other) features. + + +
    +
    + +
    + + +This year, we have also included a new question about the speed of Rust's evolution. While most people seem to be content with the status quo, more than a quarter of people who responded to this question would like Rust to stabilize and/or add features more quickly, and only 7% of respondents would prefer Rust to slow down or completely stop adding new features. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Interestingly, when we asked respondents about their main worries for the future of Rust, one of the top answers remained the worry that Rust will become too complex. This seems to be in contrast with the answers to the previous question. Perhaps Rust users still seem to consider the complexity of Rust to be manageable, but they worry that one day it might become too much. + +We are happy to see that the amount of respondents concerned about Rust Project governance and lacking support of the Rust Foundation has dropped by about 6pp from 2023. + + +
    +
    + +
    + + +## Looking ahead + +Each year, the results of the State of Rust survey help reveal the areas that need improvement in many areas across the Rust Project and ecosystem, as well as the aspects that are working well for our community. + +If you have any suggestions for the Rust Annual survey, please [let us know](https://github.com/rust-lang/surveys/issues)! + +We are immensely grateful to those who participated in the 2024 State of Rust Survey and facilitated its creation. While there are always challenges associated with developing and maintaining a programming language, this year we were pleased to see a high level of survey participation and candid feedback that will truly help us make Rust work better for everyone. + +If you’d like to dig into more details, we recommend you to browse through the full [survey report][report]. + +[report]: https://raw.githubusercontent.com/rust-lang/surveys/main/surveys/2024-annual-survey/report/annual-survey-2024-report.pdf + + + + + + diff --git a/static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.png b/static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.png new file mode 100644 index 0000000000000000000000000000000000000000..ff2fac378a91681d50fc6e5a38f8ce6c22ea3c05 GIT binary patch literal 25481 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 literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.svg b/static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.svg new file mode 100644 index 000000000..2b6e891f6 --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.svg @@ -0,0 +1 @@ +29.8%27.1%43.2%N/A33.9%28.1%38.0%N/A38.2%13.4%18.1%30.3%Yes, for the majority ofmy codingNoYes, but I only use itoccasionallyYes, a few times perweek on average0%20%40%60%80%100%Year202220232024Are you using Rust at work?(total responses = 7144, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/do-you-use-rust.png b/static/images/2025-01-rust-survey-2024/do-you-use-rust.png new file mode 100644 index 0000000000000000000000000000000000000000..56cae1c97ad57a3a17906e2ca3f4b6072c0923b6 GIT binary patch literal 20868 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.4%3.3%3.3%92.5%4.1%3.3%Yes, I use RustNo, I don't currently useRust, but I have in the pastNo, I have never used Rust0%20%40%60%80%100%Year20232024Do you use Rust?(total responses = 11906, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.png b/static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.png new file mode 100644 index 0000000000000000000000000000000000000000..2cb55953e5d894372a152fa7200e65b1a10dc19c GIT binary patch literal 28812 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 B^e6xT literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.svg b/static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.svg new file mode 100644 index 000000000..61745bc2f --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.svg @@ -0,0 +1 @@ +5.1%3.6%91.3%3.2%2.3%94.5%NoYes, through a university,school, or other educationalinstitutionYes, through my employer,contractor, or consultancy0%20%40%60%80%100%Year20232024Are you currently taking a course that uses or teaches Rust OR have youtaken a course of this type in the last year?(total responses = 9232, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.png b/static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.png new file mode 100644 index 0000000000000000000000000000000000000000..08d2fb903de2af0f1feed9c734426c3297a80350 GIT binary patch literal 48664 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 literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.svg b/static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.svg new file mode 100644 index 000000000..1f8b5ae10 --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.svg @@ -0,0 +1 @@ +35.4%19.2%27.2%11.1%7.1%38.7%17.9%29.8%9.6%4.0%45.5%16.6%25.9%8.5%3.5%My organisation makes non-trivial use of Rust (e.g.,used in production or insignificant tooling)My organisation has notseriously considered Rust forany useMy organisation hasexperimented with Rust or isconsidering using itI am unsure whether myorganisation has consideredusing or currently uses RustI don't work for aorganisation or myorganisation does not developsoftware of any kind0%20%40%60%80%100%Year202220232024To what extent is Rust currently being used by your company?(total responses = 7805, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.png b/static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.png new file mode 100644 index 0000000000000000000000000000000000000000..6b3f33e34d20035709278fffa1d0cd9632bd24ef GIT binary patch literal 24435 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 V3w$Y;FDEh@jINqqDZP9*>OZ9e=57E0 literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.svg b/static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.svg new file mode 100644 index 000000000..af418fde4 --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.svg @@ -0,0 +1 @@ +47.3%34.2%13.5%5.1%49.3%33.4%12.6%4.7%53.4%31.1%11.6%3.8%Daily or nearly soWeekly or nearly soMonthly or nearly soRarely0%20%40%60%80%100%Year202220232024On average, how often do you use Rust?(total responses = 9849, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.png b/static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e3fd556c6c7559dfa0f5acaa35fa7bcdb1350f GIT binary patch literal 31181 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%0AR{v?iEqlw*RwIk+5{&(AmSwJuBhl$4svEnHkR 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 literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.svg b/static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.svg new file mode 100644 index 000000000..63ecfcd27 --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.svg @@ -0,0 +1 @@ +1.5%29.0%27.2%42.3%1.7%23.2%28.2%47.0%1.7%19.8%24.9%53.5%I am productive writing RustI can write useful, production-readycode, but it is a struggleI can write simple programs in RustI can't write Rust code0%20%40%60%80%100%Year202220232024How would you rate your Rust expertise?(total responses = 9851, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/technology-domain-wordcloud.png b/static/images/2025-01-rust-survey-2024/technology-domain-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..979be5925a0a3abe7182507e2b59a493ddb96eb0 GIT binary patch literal 47018 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 literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/technology-domain.png b/static/images/2025-01-rust-survey-2024/technology-domain.png new file mode 100644 index 0000000000000000000000000000000000000000..6274f7da2335d87c0685939c0837bbafe15ee436 GIT binary patch literal 62291 zcmeFYbx>Tv_a{1pU_k>3?gT;z?gR_&nh>1e?mAcq4nc!^5(w^YgAeWy90nLX=-|$~ zL3sb7zBD+ zfsPD(<4!VR2?8O5R24r;-QVB85iu~azdqCu-1v*&ls2;hM@wtDMkW_}1f}X&2Tsp# zR5n7p2PU(N8`X?`#{Mj%{jOeI-Gg)u3#-}%ME@$NXsL!=Y}eQ1lwAHzi?emV+WD2b z7v$y{bd~=5@@wRe?V;g4Z>y-}%b@71eLHRVwmX;|3~FR2yXd6 zpu;C}l42jh^Ls5A&D9WRdTX~Fe-f;7xrv?hi&uP&0-3)Lj~@IMrSJpWshK6Pk~erxxwv9RhetUrI- zcW`?5yR<8WTQ$dp0t?L8O?pH}oIZWW!-PLEL2N?IHmmGnvmB-Z!OS@*W`Q}ceU|iQ zhEbFEAcdyGF~gHbRgh5N`fWBfn`=`)3Jku;eXvPgXCi-oSR&BU^aAn&d^Ji7+ZTbU zp}mUR+9A-#-n=t_w^U!fp%#OnwT#^yhi<6g#vzf3Cc^rG*2&UKopYp>t1CP6neIrZQD!|F%8KZ>r=;Za`%5eJ8$4sZ%otmJZB z2GW)W4s<7ZOE=>AaYV0|BF?UD2>n^>D zZ?&pR%vE?3pW8O35_RCakaWPjzbZZ9szQ-U)oVQud-aE^Bsv6#!krM4O1+8F;ACvG z{=(4m(3ItJ%_r;qP7VQOaQ`v&_~LNqYJSIBr|z8QEBTuiQm=9?trTg@?V9o7as@%W zMe`jsCWlHlHxWEGr#~A93sjkW!jQ5n+?#w~aHz?F@D*k=c0EkFQvio<;47oqm5%e&}zn~_C zEmiY@@`D%Xv=&4rp&#ZSSPqvFN7Y7`ebhg=uVOrPL?`}iI30x>hJX)m5#h#=!LlKl zNIlYzF`JpKQ1Z`x8-iq^yJM#->c?{46g}__W`xL>zCZNuw+aj3#H$aj^Eeo3>V>{nZ=BTVAF7@r2c{(3o5y1QPE|xP+vq+Trco&g z2`P5QC2Ev>JMSd%8kQ>EoY}iy^c+i(W6PR4rfE8q^U}zcZKS2l3?5Zh$CHC%XJ3-4 zk{aS$Oxg3F>2yVS-#YG6tl%Fm_UfmIk0`Hla6X?EgRn|_=V$wc@>$ShHzU!#_Ipc? z8MSq_LV8PAnlH}VmubbA+bI2@^>=sAa#Os|XrRZ(n2MSEYIHrnwz`r$#ac4cVZTzY?>yQ1JoFZAY;=Iqdc)q&6NFm^bn z+$g2(oa0=7gQ&dwZBirSZq~rQp#0uV9UHF!J*-!HVI*Gs$p39#LgG*czp8X5MVm44 ziVwn#g@7%Y%Vug(tNNz;%a@_Z(m9U67po3J$8s@z^ zy+3zO8{Vbu{9OIdY|Ly0^o%Nz11fzVj-0mg$5!wN4MzgQ>s|HAOx|W^s$I9q8I!Q@ zrm8A$_DWQQyZDIHz@T%(3Hxkup~9o$@ellaV+3L=vvKas-8r5V?^Gaeq7=6^Mxt|G zUBy1c{*@<@H9uIZJ>0!ZT>gRs6Df(bJx+ zRh!<#LUIt?D4f^I4kB}ZrD4eDQ)`hv5qC*^}O5L~0l6B8CaWAEcC}?Q?P6Qr4%{X z+x~k~4051Uh788j*O$wu`Pp!Fgi0;Y>xRZwArf*49QY+5F>^bZO71e>NJ#=a> z;H8Y|)$dIq}lH15$<`Shsrsv;`iO^d_gR?jgAD%9rKV#1Ex(nhT zh6o(|@J74ZB_Om7mth`SoZf4mmrYsr*zMU-*qNxg_KW>C)M@XBWlS9E&!5o{t z^U$1s2rA;ii7n0*Zc$4MUR8RHo&MlK zM8@2Eh;azGn*q-9Iw#L31Ord0O*7vK zbK;e!L=dFn9iB>rmKjOUHOGnF^rZZh`4NQJV@- zGQsr7bp(s5jJ^>WsY>=brNPW?=p9%2M=sH6hPP*nvuWO2yMaDoiFN)qK{zSkDXK?v zr(ITkMGjA9BPb_f)HeDYW}aC@8p*3!{OdLBryCjSf-hwHBmoPZFg$rOj8C@`e6=?~ zHKMBQ{ft7`YqLrNo~Z?)gx6XmsF7a!K)%3Rp7M!cG#o#7n0z;m@gB80(A39y)A{>g zaB>x00NHmi=7n%HnVrf-ra$}6m<)W0_wPJK8!5S{&lG&a2Aa;I3-K|w6-DJ!UKTKl z{T#R0h?|SN8SY_>7{PO3BK^vvLT})*^JB=s{!&wEA}k;3?Xh{pC1Su+{TAy7J?#6k z(zP!ny1Xu9-eHMGg`MCqt>JcP%Lmdw+q+9+@LDQb8B*U1P4=p>TsMGEX?OWBXcUsY z>gen04Slg-h~Gbf@9%p-2`^>CRX&i*IZ16P-JM~g3iDVfu!*tHO!#^=!}DN76z1`z zMEEifNPK&O`FQ09TsKGV@@PXh;P}dzdcCZO_HbzNXFFFi!U0vRa_1y)rr`~^!Balk zy3b+{{R$uyS=^u5iq)_;B~F|Md<8?MhB91O>I3knR%l?B6&;+Mh$51?f-&FZtghNJ zm7FVL`;$Ktz9`D4119LJnK8x@L}AH-O6%28S#N8o^9qCe0~I2L{_gd%4@QCYmS3x3 z<5Ic%gSUF;kr5(~$xE3IrjXuHVoCA-n>7gW1r_nPQZ*t8H=VsZB*PWEbZEk@wLtWY1Vq_g zT9N^#O+*f)VT{*grIgM_vHY2{dEvMbo3n?U?6lr}^Td5`NW6kadEb$Ei=a~F-OVN5 zge9~8wUuz`4LOIDh2l29hn$$$$wOiuv&@I^8TY}cX{0Wt;thV709>h)Y-C!Q0miza zR_oA({(zNi|LkD{=i#H` z*Zu(yg_J5Gd4aFonMKEaXKS#f*fCzHnb$gpB+d5~T;eZBgr*<2YR*Ufk;pLHo1l!gJu=5yD3(e+bzvm}*>%w?t*M`8XK=wbTRc@^_XoS{n%4|IK5QYn zM~fJVuEju%Ji1P+JcQS*@h&}O8mR;NB5TSzg~p)&OLGZAFzliyMBjwnah(?Nj^KCe za3PI8l}gS{dfu%Qe^7H6pQD@AU$8u6jgg$^q`Cv=g{@eC@1ir4&b<8F-;ng5>c+A?*GRM@<*s8Z*e7p_0GM)C2rrv>7r$z(3M9lZnB z9m)AgpT?8)#uFyQ`Lpm&p=fEyhy(@BuAA+KM6pG<=F>r_F8>YE++YJL7j!Uw$C`Vj zl;V~7nrR65Mq2Y&jJ~*_nYrn!sQjuushjWR)S@i8!OUK$J_Afj*g*5ynUn2s%Lz7g zfr*&louTVwYD_bC@cGL`v@ALUP2{}9XU*X78QGKif%DGB`HzvYxWPEaIUZDJFQJ%; zGkHlJ>_!W;7>!J<3*jCG&tju9oB}0I>=h_XV|oa@6>EN!rzHH1!}r?KiZnkt9odC0 z_)kf7QB92?MDHUaCWm{NmnemKxZ4gx zPNu{R3S{TAUurs|Db61sIVIaAm(ueh8FCHb%s$Jlb51U!Qu|^YzY#zWTX>6K?)L4P zq6rpZf(iN}(1U8cqZmDAvI8OV*nH!Dg{O$BXP|v_T3Cq!O8GwG>Uew_>2WM!^P_Kr z{+DUNz+Kq;Rys**CtD;?*i0qfusgf0Z2en@yI*Bx)=oI184`Eb!b(2175g6(oU!G>Z2h(PLNAwNZz zR_Jg{NAn4^Si~3@#n7TR@F`dU!n4^wN&~z2Sf#c|Ab<^OTUb#2#v4?FDL&Pa`dl3O z3+i>>;wUj7?| z^sKk9F z0Wb0WZ{+JIe79I|CAAw0kaA~f?vqAY4u!TWaX8DRA>va8Hg`b^gm00U8>**+W1RN( zZDWk5ptzEjk)P_9s_un7kg72`NExaAW^k9bi}`*NGhFkyh|WN%vj1rOoe0+c;Yr4E3a1_ObPbjZeROF!stra37f^ZAaLF2&_6KQ;TUum{@;tG6$cr5zb!8}3io zF6oo})0ALs*2vbnNauUw@0QW4y~aLH6hxu96FS{!-KO7q#)O~r*$d8+cC$pKUCaJr zo1DMSmvadjYP7`7F%84m!i%mfzRNbVS12&j?G@zuBRYeLjQG@fx6RUXcRwcKKahTy zeOz?GCRP6>VJSKfyv^$yD(<+ZMSNz6%EkuD_?p7=VoZ^rhJ*-vXwPOe5zKR?w0K*Q zbQeAu1Wtvua8+|T9JHUg83_*Wdu+Ia zCKjJ|+g1WN9W!EZDn(aM<-y$kt%(JxJa$}?bHlHQp17pym`S4THdg0_8nQv2*Ls8N zRnEHy1lYu6#p1eaZ=qz4U3%R|`CJA8Hj|RiQ&iFWPda%;v=|KTPO?4Rht9-3GOMTx zu15Q+g$^#PaODX9ekSr#8EYx&fozO;Q+TA?ql``};0c{lA7Yt-Kn9@|Ia&S&W?NeX z!y~txTWe8!FF(Nd?*f-7n2U?QFIQAn6pcgZ7-CCb+kS{W4&(jx9Si`Q@3P&|jJv(F`5d zXzdsC5za0TPW3y2l1sfG;=3`Nut7)8k}Ts`r#fdn2F-^)uMEsA04r^Pk3C$u?{6yF zn7QL0R-KFv%@abnXlGDQU|!vYo!Bz01m%_ArRIGlO8T}G*EhH$+Bez=V8@k7(7^w+^YJu ztgR`r^`UIeSF*qrPH`dbt>4!7)Ry&I={{io;4+2Tdq(4(sm0lM#rX@V6^Ex*xJjdV z98W+M!QerR+~6+r$uuV%1mX2%1_!SSM1pY-oWI);r4kWo6Zgra7v$jd28Q z5$5HvA8hTgdx0Pv?wY4c{TZn1m|7_uO8j)rO>DvX9U|KMS4){Yz|gIe77lTRe-nl4 z?!~(Nl$&`4(xvm9x9g(F69)glfP+9Qj__dy=v&nCAN1Y+;Pk7v61g9_RUjHFXhMf$ zS(SW|ol`;J@{n{&N})UEiyaB^q+L)Cdyvp!PRgf{2ktBM zvry7Ii;Gw{g77fm6SsuCO_8UA9S7AEbxMR~DmXue(IO-3DZHiZ`Jvqid_U%tfilFY zZS+j_=LJe)i_G|~kkt&S_p()e@ERRYKAOVQ<0tLA&)u-t57$_hmQP>#o)8?~A}I~L zW?dwqa%hxmK2S0b!gCi9gAHABhe4>#u+GhoV`GVa{^n2m zhVtul2Ki_jWaUVpcFgBEntV_k1nFNjKs3X``3*Pbtsq>t73Xn|$nIF6I91 z`niz@W9M73k=C~)(TEuE7WR8N`xg$=U2BGOCi)leT zR1WXnO@F(}z;056+=YHOf$ukRWdyoZoOFP|fe)18Ln#EJ}8H(@^Qt-~g-9F_P0&(vwE z&1A2V6+Lr#5=rFvX7d>(Jn_>rT1L<2x483%^O&@J?#8L$^iO|rH6?u%Ap!k{#)xPy zqdq+oznXiAB70V)=oDvQDViN!4Z?N8=v_IK=?FDCf+oI_J?tm9WJZx=`NvixZ;HPAmxstk9!^HZO+!A zXbQwWmTd3Q0fw;l!s%eG^*cC*75VB{3m$DA5~wxd;}=>4WvSs&YD;YA3d+}$yoJ;z zMu4O2j5F2#n8Q5A9F#@|9htBgoIU}8ev&`_1u>$v{I3wB|Czq+<9N)6Z8-eRIWj;u zgUEo&-#70}k2PYhc11_v2tRl&@0^vqgi`s9 ze@o4V=)q`;9^GtknvDS_`6nY{1ZhGjX~t-ghjUA>=x4L)yXBT>aD?L@o~E3p%_uTc zRr@`95aCSr`|FFff)hU3+KpHZWfskDvV#P{M z;hOX5{m^A~P1a$TgIUP-XSuta9#(O+NDI$Y$+L>QFY~cf9h@M4oWhgH{x~*HbJhS{N$$w!=(JMU&1K zLco*zDzj3MBV2CarKUFCS-K0LSCG_8UHkF%&?(ya?>5C&D@qWM!lE0@;H@_6$ zY`4$t%Gh12i3WEQ;64sG%b(8S9MQpq`z?0E^mQLAoMl*k?4;D$htoHZ)^`9Ejsj}8 zI5zNtZ+PN%QAhTxzIoXa0se5a0=tjS0Go`{FYE;Wg8k&Ki~u(xLNE3mTSoK)O9Zfh zeqW^_#>V!?**qsO35b6U_ICKp++1-hhd6pa82qjKZAmbhTaw4zRc|P2?&2*GuwI~G zu)?R9(&mx)LYO3^%C0@KJ3T5VJTR709})b2Ke4p%9Dc$4Z0*xb_Hjj=D<{nHo`SgTm}68%@e;6L#kx@^kkh+V6`@95&p1Y~(+7NFKa zn-B6HG@ybF#+2El*QhTeWl$kk4gsscj7brM85{HVSaB7cg1&{=Ly?1gcn;KPR_D4@ zy>FZC?vNFVk_pPU13Z@a4VqtJVaqS|;RXMvqk%ewpgFuZ?z~yYnE`$h&KK)bK{P4i zqNKgXn|7iAnVniWvZqqbm`@twK`%oEfh?g5j$ui3@ttu7G&Q{1Cp@C*U>Qg;MMLQ) z3HIDZ=AA{*`g-(Mm}caj=9CrBM+HozFe1>`i`6&qDB@%m?rPLpjn@i$=B+mxrY12` z#0YFAe3j?rq*-1zWCc_G_d?w0kD-u^UrtV*%V100V0E>S%`-0O$P!G((^lABOu%U0 z^`Ug`^QJo&yB*%6Y&LqB=98CW&*aw*V+GU%a|DFANIAYq2&4V=%oQCF zzpEx0+0_9^b7aDw%d7(0fL{L+Gehw+I2VLCjNNt=k8+>q{F5U!EsmYxq4r z9cqqBC1ZLipELebWzJsZSptf{uKr6gMo)?!1k`g-P~a;FySt9XCkEOomAN7nH>5a?F=NaVA4O;Eb96y#ff z#cKmA+qr~vL6k+j3S%8?+G$TG8eA-@HD+AU*JU|~+J#1|47p4tBcmWgX^N$v*7*Z( z9qU`xe2xZigpV zEA+NInZVpxQGBhFc|;q34+qoWzOdkwegF(e{vP717v#R1*Yc*+PjB1iMTAKiXC8id zJ21>wiEzz|KQsm==nC4ug=T18TsxL(McM)@0z$u(ufyWI1J`$Zzp?Hy&8XTl#yR2t z;|GlFX6Vzisp!SF{{bp^jOd}GatN$pZzRy9n0NfnZ;T9DnW3@88gn)+LCf_i!|GQ2 z7-+tt_A#(KQ)9UP0yDr95Rq8GZz80rQPO{`Qz+~A@KIS?1yU~(t?6=r*XzAoRzlVk z3^-vsTS%RwzEE)(jKE>uqO33?y)o&Wh;W`fBnF7F&ylb88j~aPU%v2y+ws>;S&!A( zmrsqojKyVMkZz3HMgh!N%2@QO@SE^25@f_8iEzE_qBIAh2-Ir-`Wf4?H&aKs!*mRLvLPuZft zt#XB@#+-Rc;Bb4ni@igA)-J>LZrO4J{z$KH|WL7=6Qt z0l~{AK(!U_r<#n9Ea|^4M^HfBqRMk8))fcfE3hypnFQhX3D2uCpkoH8Ly=vg@0d1` zSt1m83Lyn7n~bItL-hSoFSgK^{clRUkp7wiH?Q#=?Dk=uw`h+U@5q_BOliS{2k%jj zT^cRtM#=rcG#r}BY#PvzpNJ=790T}Z@kBlr`1eRhzW#_p z_kRTAEqL_1$0f5!hm>*yNDXqtS08cKFlQN~0&dDt$&mj!iFF^x7!B~n|NUAKdoJIj zMM1a?yjc46gX6AAe3a>Zjb2%~mX_DLariNIj@C`BWxZe0x5UWRVHX4fu=31>`mCJj{{{S7i#yVh3 z#E9<+`HR5_1?tFE-P2%hk{NS{68(Yj^Ao0#SJo{^pd*Fvg59j;%*%dVk<}S9n@7xM zois4<9|dm+d-co|>G1$5EA`@)M$2r`VP#76YbC8Q;mI~CRS8l9ClM=~{~hKTz_IxW zG*2{`iA4kYPEOKKvV>D`QY>B!%izMytk8+m2P> z^|dKQy_Ci9;=&UKCnzeY-9d_GA#!#5>slG>*P(Yr(rVa*9)LxxRi6Gsz~Mi-A-|Y# z!#TItXoI4sDBxg+B@{PT|9`oc8f<}>zK)=ADRnVsj2G-!T?24{|C!P5TJ6JrEol>b zZF`kn!a^9}K_Ej>=N#ov^#P_Y`Tm*$CmUK(84BHKKV@-6ukrh36PL+tO#Dph*3U< z0-Z+yW*nWQ^P|^^MkfUWP7SKVD}VYJt`Ks%vJHNHAkhG5@uL|BRvLf2 ze@z|DybKdC;VB>jeC14)SC_>s(k0~Sqo>c%ahmz1KLjyX)90c{0CEH07y^6z>V1R(FIlBV41&#c(*Jnz+K1}tCyVpKl{PZLAH(>G4N{}-mymDKfSH^@%OfNE4A3eW2Ho9Ba z=UWUPVd`CW#TOKqm8{m>%0IfwN5_4QrO!VXnsDD(>tx3<^96-QWC5)6YCtM$hc^U#HP2eB<3%W(c+;DF#Om4BQ^ z<&(L5?r;@-%u?LnN~Oqv2ORCA%hTAr85j+Z*=L4jf$1?P8}Lg9ksdAU$c;+nu&cvZ zqG7P$Xb?PP4j3@-mzME8+5CewX8jA#-(vtty?uIgi_GPSTqeOndS9EwrU&%AWn@1O zpFj&|?U=h=CKM%P{DK8)R}sJa4)uN`DbcL<8kamM=WE21a%|972kBkuJKF*^IwRoS z`J*Lt@ZA+>#JDVE>mJ(%Si!FrA3hJpyuFN9)Ood#U}U5+cYXWlJPwj>Z5#|zp`(_6 z_&v1~C?@NmWF5e|w(|u>AvmI(Q~0)o_QGZwq@D(i0XS!VOR^>rrYUV3W+JPdEY7Tr z^e;JMBMfMB2o{g+bV=w|YB_ub^d2d4FTo)_Rf?wL+a!WxZxeJh8i|9)EQ%S%7u!-V z=GgD7@mKss<9NAbrV*eCu&m~=>8g!mCZ5&J4tl%{84fQX99LdKy)m2_zC|dP*`PP5 z7m4=*k|9Z8w@c!9flwR3-&eTdEw7%NV3j>iGdYLtZjyR>ll5Pq=t-7HzXsZ8SR?u6 z=?MaZk4hC$Kg9s7_?{P-^E`HE3}9y23IQMK$xS^>D}PM@wCW{BR=LtXZPur{J^A#g zaU<%xEqv+6Y{`sI9TSHb9jqXhyy`K}#-Ka*@`}Qid_UEh7hk)IlIR#Zbl7~0HbCSp$%LYF&tz|`>v5Dt2$J!PXkXI&w z**r#`YXLf3z1WUn}&~&XMgphDhFczOVf9ah`+1K&xkEYcCq7q&dT>;)nA5Z%mE?`PpMZZng8a{Zd-8z?R6YIHhl9}K?2RMum4}SFx+wk{UNAz=Z%eblN@S4{K zcQMhy=y2jgEC5Vo%II33jQoy`^bLb$)6Ye$Get!()mVHH>${{l!~}?*$z__-ZSMFck{w8os>%}+op`9D=@Z(l82NmO}yg~u}&D_%-?jUH&I$}y}wl0xuv zy|~(Z>nJ%&(~MBOz{gzs+$&DwRz(BqROCATa~kQ9LXt;Px01$9ZTSjMn(MH>##4O@ zG~_4MFr{-p#O@z36^H0&0D%m0BtB3q;vD=qk|1D40K8a=_kx~in;h^h&7aACc?t=_ zO|z%0&<-DSJ1RtBUADyL7v!m2;lR^XU=$y|kC&B71hvEQjIUh#0K=)>c;@Zt85^&aOj$>B=iOMAZfqK@+Uv8iaf`+}Ewq@QvKYZ$P7 z{1NHh)gb=sAe-wh^0VK#k>eix2(k7Xf z{RvouAC3MWVHq)RRPTF7G>0}$@;EB!(LkU_$)JBaJ<9$cfBA3j7qrD04uA4rVLy&` z*g+f{3C7n-;~t;(Jljd2PUfV zvRh($*MBx5LWzLm;E4moiyv9s=QqoLX538n?D6S;Q|(a#d5C3XIW6o}?xKP;s|t}O z#03O`MaoehYCdN($vxrA*1HaxFfzzm%LG!gc>>EvMiLb`8=XP2r;Es;zhQ>pP_b4( zG7hM{mwNRF-0CNOd8F3#gVMksA;bXG%z*U>I4HOzH{EMK1*bwJ_h1j-hls*1;wn}( z)uM>7LG5V%elx2&5{1b=h6WwUVfEVT$BD&&g0R5rW>XrTT-2%yUU1lj`uS^HfydR3 zsRFmffO$^pT9<;aNj8~=AqLQj&!|TdS#$KO(7~ zNUjECb02)D(X`=Gx97_MmpPr^Vkc+AUs9`%+2K?B=A2u$G=}xfMX?O(S0NVwM@j$X zh5jW4uW9>^9ojvu`Bil%DqDRmtH|SO??j@&OVpA4TF+*OS9AfNtY+`yM%N&B8BB?Q;+I=v zFNeKMi%$1rGWj@ITTz=Y>1>JAjA0A-%oj>$${Og~)Z9KrvSxX|58Er{aiwav)ldcW z*<1{vuUUX`87#N{E>-Dn8AQ2V8B0K%Bp@AL(+4il;#7AY!(_&z_t_SJxC-1sH3?;zi}NT`${(z?z(aY&fKktOpE$^TGPjj1$~-{QYz)u=`*ELqBfT5#j$ zAG8Qf-2%Sn=QRCAp0-($WzS3e#UXqLp<~2f znHLNmaBE_vZ~5W%y4zJfb&10H1G(2E;jMcI6I^mDM*4n0@T>?BxP=u)&B7+VJAQ{_ zBwe?~7lbG%^lO}ynu~pAXS;G#+A8TUvAKuesgKW|&l9y zT`?-Oq%#g=aIkl9P?IOrh_IZaiYLFQT?I01MpK{ch78wS&6nS7w=>glpM#Hf3Mi;4D);EqD_25^5S zcp@5s15h~Ywna&@%UP5@rIdhB^<8?-9?wJ;V`fbe&xob|V{eG0mYlt~Lpj+{oo2Y3mC-uPRiu9j^$nU5YF+ zpG3|uC^z0DWT@K_0RADaSz-|vP^}`s?8Ri(ko>hGyDh7lx5u;+7FLsjcn@7PGN7QZ zH+XEj(y_i_qz;v$<;N7wRU3WoAjx2$ed3mrENl--fiw&ihZBvrfgLS*7 z@n!O7J@`xJAC+J-7wxi?%j=?WBio!I(oLQh-iOX5cjK*?4gQZ1C<0fS;(x(!)eyt? zP@hy1Yal=MXNw4hS96IaJtj=kg%>w5Z{eW7)ig49Ax5u{6RHbr=`q7Dkb*5O`E)!| zT?@xwZq3bW%q((5dgrx}91e-suqA@^H(wTSJQkruzJuR1@ETrCQHM#WY&*-0TBD1Q z$#;J)$}b|y|1JR^@VrdySO+$SHer0qlYi>_lj+#(I`XuDMNjkS0AlKMLwwFeEO@)Z zE;<$n;MM>zGQI9~0+ZI_gu<3)1}06)eSX&-)f6^yIreY80j@7_AH}o3IP+faDMVuJ z0Jx$cK0%D83TQ?PRzFh?YqCwRHuy{UgqsYq2Bd#@hlZKadgr5fT4^~CeJOk*{g@G3 zzk*Fh2BXyj)u}v&wObS!SWm3o^LB8`^?M8*I&$Io7EmN& z)cb`JPsMJiX zEX3r;fpdqUzE0T*udG3duyC%%d->V2lS&b87FB^{YcB`?N(@k2Ab2C6{AespGkRG3 zO`utTP0GwA{j)j)1?_6e?(_Qo{?V+M@bm{53F>RmEl$KmbJ)eGY@&4Kczr6VZW4wC zZQ<$j#p}?IiqU5t*D&Xf1zIA^Et4e~nzr!%mggHl@h1Q*asDPtiWGsGA?0C{)^ibt zQ2Qv>SGLCDYb5cd>)ZQaV;XVs=<&F+OnY{!2q%GO3RCSiOwE0Ob~A2hVK0sT z*tve6T?PzIC(lrg)4w$Y-;#d_qJ!&)aiDjO7iw%}YK2|tAY>P1-K}ok$HP|>$iKOc z=hlQpaAOE~GyMF$!dQ+0S`NFV>q>He*&JEoef}N1#@%x6#-#K2l>bQp_Xl~ism(LX zb9Ck2_v^G{DaJ#OTT6SDvZ_S5hUE>1q z5bO$ZRppb@?_M=%IpeXD6mh=QU?j?1cKU=T66xk|x+JHSpQWtukV2dBBoH|41rA7A z4xR8`3=rPQ*^syt+WYvde|8OF*rJ0+ZDJ1x37~|Kng6Kwv{A1peUa23$kBCdS;ejw zP@;HrfVAQft4C56Hu;4Kp<}Jse56nCYV20DvR5mUMeB7=F)AEeD8wAvYsRe`2ZiOg%aDum9S7{3if ze#Rk#M2W0SUVS@K2`#5JFdHmUD4S>~5U;~qOq69P)5kEL28fT13I2tJPR|G1F9|`k zy3{bvHerO-Z#l*AJ(f`X7c?fdszo2=|3ns!T}rE$(dzqinHJpRfJ6xc7@pmKhc4{( zYiH`geOS&EQ;zt8n5YFRB+) z#@D4+hbAME^YlKhaRkRx3~a|yNGo;)bFby?<8f!6t;vSP+rF^3dEzc(8M#(fFY2Np zjonQ;ze`>^FqUb25gT4JF!!p@U1U4@lZ#TY82_b<^vDABu)KzO2y%09&c^K#?;eM_1(%UV&imu`3>W&Aep)Lw5VsYJ=JTq_^IQ@H_L2grC zce}id?#O-l#`?4w5%E?I5CnT%CQoEMoG+}LPNoxJs_Bvb->gSYbW2p`p0u@))UayZ z^@iiq;u}j&G-7Cd$ZQ|>8RlVlCQhVM&BpAIuZXTsN0%-)KUQaR4&B|wB%@m<28keF z#FV(cXF0Urm|7Peiw=@&x9=AmjNTFt%W$Ds86;Y)fZ_)!l3{R!07Ya#-2wYwUz zFGgncY)D^f6tD9Sx5|>V5h)=D{@iRdy?tlX+{7d}cwxX~8wnWT5-&d4Zw0{{1wO>S zNz~3e?s>{mgLlnuSYIo3vM5J_**Q{=pFsN!HJ8&!4-07&+nW&6V5zPl#(l;*UE{-+ z-f*pA)kuyl7<_JyJ4ZCoz>_8#LATj+8Eva+=Ui+U1tub%PIic-Mg#Fbe>0PRo5{Vd z`Mi7&UCHX1!YeYAJ@=Qh;OWCZ!#KqPEbb=uY11V!J3Y%6o zL~Jv93fvy%El5IJE8wA4S&3gInSurCBC};q1*3Pyq6mB7x3saypp3B5MQ{9KtYkX* zmV}(IOR%cQJk&xCyWn39u9tROEmNt@OPTqni=jRnc3X388O4pC!bW%#_uOZ1##OLt z{2JZps5Y}@{z)2kYZVCtOWEyDbXwJWkC>}Dv3BY*Hk5A0*Yeufa3u+oz3o5YHK1u^ z9dofknA=^Jw{6aAEacT2QVEPKl;xT-%O{6jyeUTtAP3G+0;M6Ex*XAbHx8i(L2Cv) zVG?%L17q`HiliK&2Z~NKc<%mLF5dF=yExS|J68FN* zG!Y9E0y1})Y$+e1s|t$A@VBZio3FrvfU>Azh5mBrvn_fDwMjfS$WGo9(Q>EE+IH~^ zw&+i~J$1vwj}8L9GtEuw5&Dkw)Olh5S;6%b|LCi-CjpwH0y$cI_yqF=Qr^M;W6ml255(uX zB^E+V5<`?k{uC4Wy+!CYf6;BVV%$~{)+p*8>(8(rfoFyC=%)}%aCElsYx{^0&?E^w zm&%T1wv5#rg38R~dDrL4JfZ$`G$i^vVVLnR$JgT1pr3T)Jq|O#Z`$D|HJ(3cVRL{s zqdq_x>4?#$PI(krZ=>I;<`8P9Hk~8hO@SyQw<{duvAB^6qP!V{42g@d=3Y}+WK2%d zXNCC^KOIkq;B-aPk|(!av0gzFPg(f@oCV*!D69g0GmBr*YzaS6CibAUsq@d08HkS= zZ~ag&mHi>?kN~bPFz+mcU$!qF+)unuwIjrvDGrf@3>wG%Q`wS)H>{_}u71Jc9L@TL zm!8mP9g(O!lGxwmvSJe!v^qVYBMs=T7DV%0|4mo2AF=+~r~*{5$yyPjA9cBNP-ijE zA*_<{y6fTRE0a^If%QuL;Qh#97bfsZIQxe4@#qa z_HyS!eab*PpIA!&j1-TL{KPh9_{GCo5qiK+#>S&P`(Eh6bDSHW;`DewWZS<#FE_=&Jh~KJd$2E<7EUm1#)ss;?{tk}XPaAGVTW5S< zqD9R={?%#x*9mj&xzO_SN%0d>)eWW}N4nI~#FxDB$)VWeFFZO#Wau{%p=6JR!dFNC z7iV7?)@Bp5TizBZrFfCz?ozZk#ogVDyIZhQpcHp^mmLa!_=^$@{hz@6QA_>N5cy=ejqOvzyp@#Z(Vh&{aq zo@DpA>F+4yf#uLjwEJLJ)Dr|+HWZ>dZ>pJru10sWltbh< zsKStNe6!4wH$?1gB6DOLky!8|C2HtXD8POG1%L>PNv6Xu@V8rzKNzQgxGYGD`v!X8 z2`2SeH&eVuYil|T^8JGRkLBwNRsb3{`+2;ERy_rj0mr6}Uh#3SU&k;tO9a?1aWGn% z(f}W~KHRH7uod%og#<{m@H#V->_!*gL_XrWI`~?GGmcB$wOi;bWzA^*?_IyjKU}H0 zpGZ+4m2UWE*%#43nWXJNd*GN{06;Dt~)!SoKle(=JyIgtI*?{M()Qcx4CY z&5T|>k8|^6+n&P8x+VI460L~hc7t;n;>~wOe})xtVGf*0j)bbTo z{Fs}Fe4cZtWcSYeoX7Mm#LT-Td|)ehW*Ow0=j#^2 zrQAt!%Svk$uGnF?zV8EhdFW+_9}h9>TsyjJQHX1abKB+b>k%; zw^3=~(cePWW{ z8NTFHKD#&+dZkjBIFj?FMo}lS$xRR{3W>SPkFjv@i4~C;n$3LdD10-s6zr|_QCWGX z_;At5-goLBZ)vw;gj65VwS!{;cHXhUc`AN^fZWhbk7=UPfj0}=8+H8==aU60l&N=p zJ?M(mF2!iJ1GY*t*M?`NedBU7SI$#sE*npqqvM!c5%-GI_B6JtDsD3h+p33MCY6l7oPa#zzG|*(V-0sKM!9J;K8iU9d4PN z+J|&X+)rG1WjbZ_U0a+441x+BNPMHGu*NM5y^#%G<+BR!ZLtHP04SH`f@Rb7ZVj4ep?*oscM_|*#;Cd} zm$GxCnzU@~x#h@b&C~1UI4vhK|DV;g(9hff!#>~k-w(@KtNRH=aJ(14k`)zj;xk}U z@DJx5u48P0Z{Nf0%K>NcHbjvVjL{>O_=ZY?hoiXLius|4|I*D#Wd7x~)|8~z$jov( z6l*ZHl3SV6==~Cv(ec4SKs8k7%Ur@H&!P9hk+u3kB}sK#=5h@QcSrM6oJDi_66r?( z09HfAO6u)lE0o)yY;j($Z99zU`YI4!O#d?;$wL|*3JJLL#Xr`Zg~vLS>Al+L<6b}9 zF^)8Q)A*?AZlez)OWGIkJlMgr#iIb&d$XSxdo&23_tazvaf}%ErYPE;7 zhu%IQd{4VCCJWJdZaq<*$L*Aavz%lw=Z>j=aF$ILi&e}wS%P}Og?Sy?Miv!T!8oAOPI89xQy4@bk*QJ5eI?`TB|OB0J@&U#TWLr12&=3 zwn1~-3=ej{F-nj3WxCPBHu=a(YJk1Zhbg`Mxjo~U2E$3f_#GL=B_1y>!CH|+#H*|& zAW_q_s<3g8*r$Z+SVcxhWH~Vf5L3ogp|9^^N#cr^J9mPxsNFdJk;uSWgrnpPNmg{Y zcGc3KaZ{=gVWdVQM3?l&96RB6VBdZv4lWJ}2JQG~1B!%)PK+p$Hd^gQ;Ql;wudG0* z4r`m)RagaUGFNJ@H4N$gedoBl4kcu|3(cdGQXzhctyz!@>fk z-%(^m$Ze2{|3~o$@RvHQ8t=gvD$aEK04)=snTvPPy8@ebK&fT1EDlu{ZVK2d5pu+GWyqVJ@b+G=Qrc}Vwpn1KMsg{{5aH=<|C-~$pCZn)O(;X9}e{QbqY*-$cz>yVJexog9 z7Elu5y5Oe&PG_o#!YPH04DB;$%E^V`Y_)W_l7MG6z0 z;Gh23t$`x#W6z?iFJW5GW$m`MLiH|F5LCvG*QG^|&=c$Lr-9~durdAVdfK zh?qlMA2?i>qYU!$=SZ+%bh1nrwpdXFJ)6M+HLe5#OW-1IAMQP3O;bz3t6YP^mS`9% zLiYu#TCcO7Wc7FOL-i@`BZ5n&G7^@j4@L(i^%OokxGVw13_irJU5|}YdZcp5YRqQh zkSeulPd_&3zMif8NUE4BRmB+`%WrQg)EsS$0u~4Yv}>qip5AOoLX~;Yy3DS|mfqiI zioJl$`v1ARL)Ydlw~9z80T^jJ4gTS)-yuFw3Z0bYLy4{NQ%vL)7dKt4(VQ zKyKp_8zy6z;}LXd$=94Nz#5lSr$3|~KMfYeP)R2S1RgkT%cyOxFC;U#e6Rhc?NmHd zs_GNi_80_*dB#Y}v8ejrij2ZVQ~os9csGPF86Cb)ZyuxLi`}sMYk!M4)JIiAmRnCw zec&|Y`X5B@$!+JkWJ9YTW3R%M6zwypFGh+hH}^9sNva|@pI|3 z9Tzadvxr=%RhUkrnoNBwrXhg#xIfHM1@z4Ar=|b?jYe2dPoLhZk2|(W_FNj-g=Azf zJ8vefreT|KZX6Pd07U*Hf)vqz@W%H*lG?a)|ZZ%0xsw?cJqE%xl({3QW>tk$c7fIU% zVI|e)+$X(7gS1KOZKmgneg8r!GG>num2t-{A8toHK0*2pZo{1B;L6$;NnNR<7o?x z`OKG|DN<(l?2~n-%B=J7Vv&)`{gkoy&P(nbgm!3{(z_pg{SQe4K5u)7XgQ~h!ocYs zue%BB{x0H+mpKow{6uoQ((&Hj$MW7T9DkSIzZJG_RiE0|E6}_#bGJ6(sCT7<=G`xR zZ3nsVC{S3aZUWb}Dp&Q{)LEp4?uB~$mTvB}IJ~^56Sm|lz%YEmxFjJC&^qPAp0>dB z(V0D>Q@M_Q0oLyecrLOvo1SDbMxxth4?wk z6_1b5-V{G8U<;@G6Q$UkAysP9l7vy;2R2hE;>V8>AHD8H${LkyDo(E>+8( zwk|#pb14*N=#^Tpg$2>JpGDNZnCIk>#pQFX(osZ$$@33h;X55D0V&*Ajspq?+1K_r zpCtQ;##exEUfbo@z|1;f8XEo)Q$KQksWFiJIh@%4DLAs=h-WCHp51P=9i9`ECG)Jn z+z;F#?5`qDGTYh4(AtG@FXD0J&{cMjhwv@qT+Z42YD%rJ_aX|+;TJVK-YrzJX3OLU z-Z2Y(9<_f6M8!$wY%Hk{`S_<3$}B%a&~#DZ+(@_L`IF|syE(>Czj)qu=z)x&DcY52 z8Wrks<`h6AtI(8h6WMggpYo1K`8=9TVxA77f2eWn>L|@q-UKFetjQ0Sk}nB6(i3pr zmQgmzPXjmXARY_G!oa`u{7wZkiR^$52;&WgEw+^N41f;BH)mm=B3xC?v!=&t@EzuXc9_10g+%q*<$LwPfBPbID`TSqtZzDF|pT zIQcNdmRgIGFBCfGXuHeXFd9S@wwOV$aA?^lxr~IyRw=r{EOY~j4&v5F9~LM%uG;q& z+rzNzQQME6f+Atqfgv&3YDudR$XSdggRc(JCTH5PLw`G*gq46-H5#K_aI}P z)*bV6A`BV@BX{-CuPxzhtpl9=o!YB51{%>b(J#p=eoUtx%8qmM)xDCi8&y(H%9uXj zIBjX_(;IL6W!RjDG8r=)=M#58OcIKhI3uC$tJychBfL0~_3(&bET}xWst0HPIaslB zKXQ>~rt$0D)hrUqCJo?vdfVx3onhf}X&G?`{ItklG6x4$wOH{u&+E4Pq`w46aLQsv z=HrE|ctGb}$|`(|m;Y=}8+h3QxAp9*L72Ck3eC)Vc@l)smgFS$#+}8T`N$Q7!;k(PjIY^XEn&(JPo5MVm+7@OiMu z@iKo0JU+dx8mxX42)HtFp6D?Gb*!AK@_~l z`Fu`-Ne23SufTO3W>yNI?m|vW%eXP)t1pwW3|3>&>jq>7+!kr?Mycm+_O zXZB=z768o$Yt_YMGdaICBN*zPi(EoW*@M2;fB$H%aCc&G)J&Qv# zdS%lN{L?&dp#KS}G~>(+6a5jDHF&$M%Hx+(how}(a=JV0OFcf;s2#d6#M8sOrbMW7 z&s|~iVEW?)uS^Os1GrIm%3)z-`P43m%`?}8MrVcQpKq*x|d3MK9K4@nKL20H*pw=zh zR5A5<6rAb0>(kgOryw;x`BU+{xsOQ~1^V;}I(|`m?4!RI z;bJS1i_2>n7ZP#KIg%W6vp}EE)+a2;Jl6;sjFIa%cpl6ez4?`a-;r(ZdDgzwz`+_G6y< zya_e#94X!flHpkRsxMb?Oav(Zl>Xh=Q7F(lBr-7j3VIygtSxBcu;>~NkTwdog*#oY zHGr0e|3QbvXf4L{Q0DF@dn+}ztpLFmKQddRrO;%`2;%CE7W=mPUSOU1k-TA5D^KmA z9=iY34|tZIjrcZJkkyaD)($&^)~4R!xlYzw5!QvDkg{@inldRN)Kr4M(A>j{-*{|; z8{^N(QY>$`odIli-fBhzNbP`q<|P*jvUSMUmULJ2`$@kj?4R(G44 zn0;OYh-y4_`^sYhYA{&aKJ-IU*)w0*ch5=YK?K&~oG!Z(ZwD=AH~Z;Poe3DP=4a~Fe;cNSSn3sA-WIA~$;_0#JQLtOag0PNj@&Lc; z#?CEs=^a@l>l%5^9?Zbu;;5*yDM``zUpY0<`qg8HMW&-=*KhK;b|$|r7RHK|L{+51 z)%ixRlv}YiukNarr+m(b|8iMQnpPv95?M6auTuvt*!voC}L$^t`+K#hGwO}rYX8;-Is#whjE=!SfiLbj zHN=hE2Y3pC3-ZFNeM$8#2XQH?IZrM0=YA@%Ex}kzMK+llZuy=pPRplqI7HIXF3@7E zxXnfg-w@g6OTfZ9m&h(En0QUj1tIJP8MAuOZoNCG?A{$!6tI@n-WS z_M(}aMDbG6N7G+Gr*uZKi@(>VFA5H*9^4?2>~0x&d%VH5d6Qf(W=H4QU{Tf(@B^}o z;8pgu#cb=OiJB1we6-??E_*^c z!mZJ!+(EjzS-aE!Fr?5d8CZ=4?VSaU?o8u3Nl7?9$`;G9$@i@=>v>r%r!DT>icuSy z%)nP{yHEa-(4JuiypoG*6!q0FLrZc&umc(Rm#5%ZgU%;XK#W-C!^Oi=9M>Igo4wDk z0H$4%0i5M`!@KAQmIiajQ3QxJitc|FA3p?NfiN4l_wbm#D}9}Q%{#zhvo$LMsJ6l0 zM)9;3<3_^bHf;{0mycgx54iRD4kPd2!k5Z;&tkojbyfrR!~r6Qe8xGQvvba7vwvI+ z@Pvu@tCu#5_-+>=v;FkV@La4z&|OFyEPrZ!+LV0`C202(h{-LT+7VWorw}rdv?C%yEm%6y|SBXQFzP5c# zf|oRxVxP_ltSjg71_4U1OBW-jvr80}Zdfe_lM5eX`BI&vJy=7^7f@(}U^c5}%a?qi zFzO96o)@!&f*m&mdx=@k1)rSgLT7i>64JvzLZZa(D=YO6&J$GZ1bc=NZl9D=5~()Z zr|>^hcNBD`MHjU6l#$^k{niC*Hdv#|H;7Is(8~;^H1Ktz*ClQ+HH``d1C*(Z^t6d( zK9SNVnUq;iK z>i1_bTs~lc#c^Uidu39eO}c0DAhX^{^>#0Vuu83K@KsN0loN0eVa(5eL}+@`&$5kewhV?sb% za9gjUXhY(zSP}NxSo*>yS3HwG?!)t`y5gUbpM+L?xy2zv8Alj>c87LKa>ydsPL-4A zcn71C*-Y=1ETQp#@Nw7L9V??}AQXv+wBhZo*FzM46gN(Q{|ZCzDHl*Lod8hb!LftT1WtM!Xvo;G8hu01K^ z2Q-&5rI>X}`I^qy5Kd?A3b+vgGwe6+K)nFd2>2mS!Enx0_`3tGw3!i#wW(0`hmf2L z9f9_skE_=<>@m8p{htBl_H2v<)pkz-XbcxdBwirG1_}}yb^e%wBR}lf`-~7zH*Z&w$>_OIuU@Y#wqa#eL}`tX}4u@IK`hAWk|qo~mPV`#~El6_-aL+5QZtnXsBhvL*cKVM+NQ&ebj!TOQZCSKw~w=EB!%yjufuOB z#&2GTO){-0Zo8yz4^udsKdLmH;VegZACHDdf{A|fya9|cAqc$z+(PN^ry87(Y9Sg? zX2QK&fjOZ`!5ZNr@{C{k87lGQlI8Z>ybfG7Rn4E8CHa?=c@YL!>~^EJhu3W}ugmk? z^rPUWu{k5cP|qd2td3Y^XXlU|kuZU%ox#L8Aty=;0hxgfR1MImb=f9zxcZT&S=&}%a4H9F&@}b@J zQQE;+-HF7+bBlS$p_iI5q%qPr`%YFxQ-TT-7Dy)w5($UzICSvh41hbX>gV+>bpbJWyD9QlHiU{HJ3~kj?|HdDB~5 zHTphDx`zCNHN=alWcY!TV1B$TMcb?(xcS3xa4BWm`~rQN^lp`-%%R_tC3EFOu%CSu zn{ztwza+%1GfMxR%cw;T;oe1K0^Y>M4iz;id;Hgn`Nj7mK&v9vNNY}-4@_hSqeQzv z&6)T{zPtCgeZzlFuu3#TB;kF&a1bAOK~)Ga4eIo=1!ZfxQ^tjt-^qSQHiOTE>d^Za z;ZW4|cHy88VWpsP)aLY;QW?dvJE|5$u)hjE?ffEWL7|*$o^NX3^ikVp;_gj5oq~q! zED8>tn>;A7yl1>rQ55ud?}69BG%@8c?zLhhzKV@dH%(2g2o(GYM?0*vx`?(?qaj6e z51RXtArzFE+MBJ4PrA66#a*KKXp)OtljcuFRKVSXJpv@HSK6`BG*KM!{s+$avm-RS zFWe9wj+}(^91{A~nud zb`YpjL5`3t*E#nv2r8>`@s{m9>s&YgR>_#PN4z2shTr#45q|RX|iX@|@=6`wi$t$@e(&5nP~JJXK?l30=W1qP_iZAT2{c z_`Y;V{>{t<6>LHSm*>|A{|G@JDtyi-#}NUf#k$Py{qCq;Q@Ag78q*i2P}TdvE)d(% zH{y()D;*4=u_-&cWMak{X*VBhBn?WFJQ+5-J^{GcoQ}Fje3A;IPol~6S9y(+=FSEj zKpFaE(kIY}B~p5_3qb9vV0u2TrUK=}KIPk}$9fFbHkcBRUJ43L>I(-EwKJzsFWtw5 z-SteZqP5M8rKjc$l7{`V4=F8oX2>jl^LH@az6Yl@L+86z;O*#JwlWS*G(~+zh@j`w zeWc4JvNEYpPS&mvX*cc+cOj~{uRQ5C1+|#)K@;D^HV<`>_r5o_1AB7SnHH{+E4)Jy z_RI`@I&`8oN?5e8X;G`(m9@^uz~Ikp`=;%hZWZpOYHRxZ7RZFd?piD?QzH~1HMZ9z z^iu+`=S_daPUcXnrr9FXo%mP(s%aszq2oqeaBeV9(_6k3-WlwypFU6bzbGbT=PF-p>XZ$bwOD>Jytzf*SQd4nd_=GQYG-2D&Cn|h?39b>r@r=mK_|aA@FM#P+#R)-GQS2Q>{^{PCst~x zYLe+e;28=_?7UA7>N}(_a7BbmttZGBZ(TH)ZVkW*Q<}JFn?X;cYMCenj|3@3%o*;8 zQ~HJ65#!gDIv&iuuBC1eR6V5Fv4?}YV4kWP!Y~Tw!n(fcYR4hJ!1E7U(Cn;T773Y# z6vr`FfA2H0Kia}=sNrY$JBJ2CkhWj)=+Ivm#p;I}O#ks62?S&Sa?{9PzEoIz4tS%j zYsT@ntjjE&Rj#I$0xPFyN=c?qZgmdQ^@&M;dcfo|-{xfl?JwtFiQN08F;9EFAxBsS zy@P@?{jALFyQtXqn{i>qJyVY&~#>@!8=ZyM71%)ytHAKgfQ&< z%{ODLA~@4C@$+0v-bT$1YRSMG#@KytXkgq$9WH0SjhkpUT(tJVKyn#dXY1PXLEcbC|*%HDpideC&c! zg?r^Qp}$e&GF5Z-M!-R?W%Klwsv5*UNBs`y=Glv|if~ck+AtOa;qd)IR?41~BQ^W` z#aU}qr=#<@)gzSu6;TfGHuPm5DxypU`9*xPS(Jqq4#;zo(`*Yp+Am(R(5@OJ`tbh0 zF){WdSk!^3z0txUhy(dHcK$rm$7yo?1g|r7@lSko0SO~_-_Gj-$6+R2e8AvI+;qepU9|uo>%a&^Fm4x z{*^LRK728`S11YKHLMjUHVe0>B_u;wRiD7n2CI92!1L-`c|&&A7KO2#=ZARve&a9S z|9cFMT%m)0V^&{^@ZS?=1%v~xE&IFX%Kxn%G}JSMV042uBry=~veQiW-nsXy8nTC{ zD#Go?NP*oQu?^a9s2cjTpTSnX@znQlo`m*F{XKl5yuX-ATwCA;gWV$0ra>==V{li! zlE>89%tQAq$0sbtC>2F5;=~1G8E${D#zFcaw#88&Y@C;LzG0g!D%Kw?ecVJos zR}diJJ4xGC84X2r^3z)uXYCo>XSl?6|FW~-; z_zT%qC723_Y;(o&4kLxPYx5Goh6XFrTmFM-`=sFn?^S<=-b-KJ4V@_8S$PP-9Q)gO zZa?rBe(jsaXLr=dzfJI(1RRSq&vcR(Y@z=`=y31BaU7nJfBxGh3Lo~Bbm6~n4JOq8 z1J^*)_P6;J@zY}gIpYIrASilJA@tdJg4<_eDFp@_U1J!Yy2d_7yn> zdZCZL{?NSVtq1*-M8 zG7$f6N?Z;j=1L$A^C~bsQ4l|WsMQHX<^_K`m6~f)86p_6hwevt%mLO!?xGU=OCV$9 z8$%>iKz*yLfajI#$;v-UM#}ieMtM`NL{k1>E54F4sl-* z={D01qo%m>sRhTJ#23bNQ|VLu*U($mr5yD3KX5dQfvEb-E+!obK>TW%jGu+2Ta#(| zj1=Ork+dh1Gc`;qJ07z|+>`&l&m1eeOLq*w|DJ5XH~=?N>LohmD1M+ucEQg;S~wnT zw)y|i`w4i>`u^eMacuIcbCX#W{6}4YpV{+?Mtj24NxR|2@J?lQ?=1f#$4%JRa$wXu za7WCM);a*Hs9!<8>ubHm1OEPOvOQW|F#XjGS0=uyc06ABkCa%J1Sk|lrKin|RsCGc zVL7|eCx7^qBPLPrf;S8ltx9{ish>#H#&QzB%ve7^dIh~&I~;OEME_B_lA0OQVRk{= zHIX8q6*m3lps`a0#`6-`oJ6!F#ITM2M6$_AFuu@73$55($DXi3o@-2oFa=4 z3lZu*cl5#8!9G2Mf^=AHB0m9F&%#zk{wjT5fBvKJ)h7|#tGzbFP?yDD{JOh&;R!e3 z4o+c?Z2FDzUCM=cuFO#_%*pQV-b>;jBE*+Qfu|um{UfoXjVSzla?iq`cWO7wwWxpS z{*ssT>3GJ6hZeF&53Oo&*$*eBr=*o09df(juhS2F9nYb=SC;8}h=mOaxq^}mt0&U! zvUNo$fihSwl_FqeQN}M4rm-FmqMYlIArO&ElK3{$eWP;rl<_xRQYcT=L1n1mh+(N~ zvC~r8pNs>j||dhIs!$E+y9M?}TLY=qSHMA!&vZYD6maW57*aF}2B;|Hcy(xjxM(47t) zpGm*MAkXRx_`E)VgUW!Sag4&5thU3cv~#NIV)tAdf+F~!%>`YZc^Ft)sh*hkBQ#MQ)%di=uV2|IVmiU{qOKx^?yyY0 zdWg3AZfeTbdZ^J~3Two&XSn9RXaE&IQhQq}J&zw2j(nq|OLi5rXUOhW{k{HE=byAD z46}1%KHyJ&k%Rt2x7&XI>su1s$O0K35*tFh=hd5pFq>&I45#LQq{VU%-wsnwOpM`x zv<{Jo5rOgDLfWu6+NWj+D;Oty$bi`x@4&sj##{bj4XcC6axmgLm3qKbNv&o^)DZy=qy9dY=%J%Y1ozFJtRw*|+nUlzT5xDToV6@LF+N*!3Yys(00 z8s;^vFEAUVqvp3d86AW^;)(K!={)Lawy(@wb;v=^4!X`ijBb?@>6LkCr%kaa5PCz)(zk2ea&BLx<{5uQD{T5v=ZOw9P&XYZU5PmB$^U?=@* zE)e;;Sk+-W#08rkXAk=TR3?RnNPZ-lWnIIG{$O8u zyabSpaB8?p3&BBMuLYn`AYTI0oI0%iLAtyTZ}m`54z>$}2)tcC!`>SjW*KUca%V+x zeXvGlIW}U;u>b7>MDkG3>AlA)udgr)Km6lP%ydKAKeHkUFl|qabLR~8txVyo?k!Bd zR~YIpS)h|rfR=bO`nMsQXj%V&z&R`}GXJHez;Stmu?8 z$>WHPUOhF`vL}Kc2pXQtLuF`t?4?mDo2)du5|5W&@qER#S^davq-~zsUZ2n_&M$`BA%1+|Cg30xbLCS*{~uj? za9f;@gTUZSp7&w6Axs0_9TBz^15wu7c%v9fZ5%PUawIq)4PtOgWCn;G1zJGIWjf9E z);W)j`i7<6e|;TOvNqFI+`MfxMsQhG-v>aP(QNQ-48$vr0Oe??rO5bf;i%7={cJmb z{lvfp9z9$&6m@vI#$(20tGaPJK9Xrj6CIIRNT)mRtNkeizYE4Og5wR%Zbdj<_U&SU z3&TOw8PFzhvdDM3Et$|3Ei1~C+y$brJkktGh*7~EXN7nYXF8LGC)P>KHSrp);WUb> z8F70cj@W%ve`IL*+6h-PMMF`0prGkM3&E&qd2zxKILJ`H0~ zpx@>BgYu^}Ik-vyb*zQFL>&>h`EzF;7UVjJb}vqbaImw!1O4U+?GLS3M~bW6^Jei6 z11INvRojyBej^cwE%lE8KI28l+0FK({}_!`jEVH$$^}M z&AW_g?T>I2OUN*sdxWklBT~Ym903Q3)(4}|pUn^A=rKnTj2Rfrgtv-!831)<8BP}XNIjVGL1m#rQDuC;Y|XD^5Vq`r{go}yH4vtDC1wbe!2g19w*9nQaSC}jYaO5M?cl8xB@snXvc$^N}TFZ75< zP-Wdds*kb)_R(@*>JVh&W|9A~0N*7B)tQ%$mDxjC^1Yy?J)~W!lpuJN@M>XFGJRSP z4hN|3+eJ&`ct@p-l&iX7$A(c)jmjtR<&gZD$~7`Wa=8a}h;N^_F1F)p{(wq}=SO14 z?DS@>MYRc}M7bEUFUKc#3?ga+8MR&*8CF%O+?nfI|FyK~9GMUQ$-XR)PwA{7>5ln8S0P4ltKlKo)jU?j6hb3f}wmIhxZz;?E0@ z^;6V6g!=wBczP)us@e8-Z*@>^j_JfEX(yc+LjUokYL)DRIK^U~;EJr@RahTWLLzzk zt)D;8y|H(o1i#U)ZNAG{KyD*|f@U)og8T~$*vL;WS{$PVQJw;u-;`stxa|?M=BP-% z*0nr$hf4l98SEaTZSrf868vBdIc};`?8Fjp!)L*Bb6aJ$WslkRo&NEvX(_ikxe}qH z9|PbITj_7uVQYdX$e7MKmZsqpC{NAa3rcr43?)(|$J`}t%4$?gb*+8`>@2P2d@JIk zwqBJ(hkMc=>56riB)5s^h^#1^@q0>7DDJ1~U-MTh-g(@YPrQ7M|FqjYX)I~CIN-}7 zLLDUr{kCjtWCOioq8-WPLj3U$UT4W2xSw1TRE^j!CAlv#&+0p19Z#pUB;~R!dxhoZ zYf((QpHY7Q8yX;p7E6(SP|Z#CEv2`X>1XQe+~9w)OS;fUANRNGM~9;mG|Q%U@1>HF(^ z63-3W&p1LUS?-Qt21a({b1ayVI3QsC?lruEz;pU!{wL%ehV(D;WVsst#&21FJ~Pck zMt5BKGFNN*sf4mLf4K|6fqIr_o-ryJD=Iny$wI`?mUy`6mIv>yn?iEL^keF zmts}v+aTEg4*W_TR7mp9U~hZun10M_Z4~C{4gFxFJq?xwX%C&(CHd5p)}u?9IhBmh zMPzuV_1o+XzkPoalCQvUO+*P_;09sqZ&JFYbgRG4m1Y!*eWgRvj$Rv~6V5A#c`pl{moMO33r8oJ@EgcUxR6`-nO%eT$EMImo$UMR7R$rXZZeJ|#`V^|XVz``3M4 zoB|wSuBh3&>l=$$s*LNE0K?w?D zWuy|-r`U&E{5 zNo>`N>Tn3xwq6;u=O67r9&Y%;u6LoW=VX9hgy$?g9q6>+-C20ENs-m0=c%6*P2*x5 zONSqY>YqjJ4|~T|PR6A0tJsX!2koI997j{cR1m-W9K^uqv{D^z0*A(q$B6C@Ok2suq0V`uk$s*sg+5CdgKov6GZva5zXdm}FHB74G=9U3I>(v$&>c zBTny83f32d>pq-l5@Jvq^PQC%O4{PXj21p;u$J6qM40gW;fCI{ybaf-WXei9=k{h$ zyI9ogsz7Y_$$bMJkS8FE9hT>lf66Q?XSLruBePAB;q)A7jNdr@d+a!)Onq&kcZX+^ zAx(KYHTG;HL+jA%frwI-)OEWi}+L3y-l<$`vT$(w*ku4lOoQ_zf{b|4;0}7Eb{^J#6Y~a_NN0LMczy5cwMO?Ery;%`rh?1Z?5(Tq zkBBI2l`VV(HCln|g(c#O`MK*{0>^{Ftd_3Ip2xIutV}BE?;SN)l2_jelXRoUHRn=@K(MA5yN%pnkNci9u< zPIgkd?q}UTDRGF7dv#q66!!?WZhjxobL8!+GJza^E-mO^U4`VU#+KQk4{r31TyF%+ z#JayXGJgM(fMZsT$dw>JDOlW^W8a+u@!AhByY6h-X41-(6JS?JR7)Plsx#7-p6=dN zhG`=~W~v(AqO51xN9i8{%SI%S)S@`er%M9b}ds%&&^4{vbf7@=oDQUHh+nSX;v%Kae5M_1dYGq9Q{Hjbw;mofG2eizl^3U6J^ux zn|%yc%MC%d>}2Ad2|Rf7Mn6yEB5X1@sjbD}1oa}9)<5}@weol2lT6Yy<;No-7*EUR z`Xb0I>pf2Mms^W}WSjEVSKsirOAa|sJ^l|*U%?g! z(*&8|?pcC+a0mo$yNRe7LBlxPHEpT;@UX9+94p~vZE{YiLuNcSwzmcVcqK!OS!8ESoDL_)fq;Dk33U!f2S(9&f-51GmVTGK0R2{zfruVWv4|17KB<_^6 zIf(h9Bgm3{HnR4rOExM>BkaiTQT)wf<8}S!TRprceKmM_?M0vludkm z?^^Y~$Dgqd#b1hZE+f|nD!qw#T0$Ns%JqF8VJr$rHFSJ-{h=~1O zk8A>DlrxNZ-I$OEK(dqhRWIC)%(7-uI7w07bUoEbQWdjhA+S|Vk3jRDunx5Qt z=Z}`Rlk=Bc5o54;xQ(_I&q=8wx^|GRbk2!|T+Gin6VtmeHYnnvY6U+P?& zR817CZLVp)Q}{H0JKONrYO3_gd551MlpDBV-Fvt)nn9s3DCmAZqtZKAxPQByGmrA){?JA2N!7~;hGbu)?g zp#iMp0MK}ZFk#lT#^2R*+98dSMNm^t09 zjY*$!52 zP|5LI>%L9X>iXc?G>*X@%NOXrr2bytr+tto>!+2^K`oCADyHd9fAg^}c5^%x>%z)j zZZ2Y4Rqnwq&A8Gd#8oI0(P+8*k$yJv0KgfV+$=kxuhuNvYQ)UG<2k3+7ymsT++$E&FNO0(_B{0`S`4EAWoxn26AAPhGTE|lNAg0eKGM)xWyJ)OZ0H_kWBTD z&7~CqHDhMuen~eD9$P*oZY*wzdIYzME@9cg|@h9VKSjL_6hn%)qZIp`+olikKd) z!g7%7>OWT`QeEP>zbkwaBMe>EyUSI03^#KVJm@qbbL&G687STxncjr%Okc4osd@*V zltoAqJj8q}Y%>_-aE8Gb;XzbaZC=2yq0u0yjL0ufCu;nehOtfigxEtYTDv;!s;BYCt9u zyvY`!#NuzYIx&pEVQJ57MC$gsY%J}W6JU*%+~NCV|6OEgc+YIocjpk)w+XOLy6wMH zrm+`2#wCukTwk7deaXN@CUOfFxaOkT3icLix?qij?diFSD$yVPhTR6U99WSg=0i7Y zAKq#&uL;&C&tq4_c{AS!2Atv89oWXch$eU}cBtT+#Y(zuM#)qpJ7I*;UC&|VmaCf+ zC9$+u^7kME#RDl6%gU_SsxD?ytF(E#^R zuodwMZ@5xj>g@8`TJ4m^gyZ9C5f#_duf@uF&dwK}f=@0hr5xIhvIDjW)ca!`Y>wXv zfLC*L8*|BfoW}kGax+97fF26X)#+T=wArc8>ZwHBHN^u{Z=5ym8bE_vfdcWIy}3V12-p@R z!R1f}J5;k~Q;vNh>>lT9LfDt&SoSN5Bcxlh4q$IfMtp3S)>?*cAX?z6aWJ)jqmIg8 zwA}Xn51WYT4fTY4j?#32^XL(8Qh#L1ByG$_HWO-0FyP=B)eKZNVxhf(TV_{9oixI| zd7WJz{QfLkQ26GXkLVtO8=_9%;LWO~HHYD>k zeLKVbnGTv`a}*>p75egeoUaZmE!}HY+z3FBh2psts+PxKn2yI-f;tm^BojabMkW}d zRcIw12%8tU6Eh(8H1WcV3;enCxK?R`>ZpccHII?9C(Wfc>|5Y1sACjyRV0;xn9jVuHOprKanYg!!LJUXl4@S|1GbfB>5n)%_3SDr>u zC=liY0h}#;VX`opMR}yF`_3m7zQ^CFvH)ybbu~cHJ728+R|rF!`#IAA7t>TQTV|@S zkjQuXvLw4Z%N`8b6_5qsOK!WESUEXc4=4ah15NwO;(uRSD1X@pxCm@M>(>$es(low zkw9e`{uRDLCpF1Lx*)d|UpyxFGfYr@(ty!re*jpgCcX)(26B6nn9wly;X#&~@=*^q zd=np|#X^Vub2qd$*20!H`)iTfif6vS z7<{AX&$fYoG==f6e(fF>RhaQ&oc)Uba^>7b7pKU3U3wvM7PAOZ8E<$dgltJ&S+xW= zP_CtLmA*VEEs`y6pQoB5(g_vaxyFYT2s&1zEVkyp*2pQ5!p5d>k#3!cR5a8153?UA@fH@KZhSu{KdEydbc50*1rl`E1rnrbot^lzc$V39zTKiOq7?zRfngsIXnh zYF=p`*HWuIknJl%A;o5D5Y?J>pAG+Yth*w|OkDjhir$OtoO!8bO6~C2;>y@~k-qR@ z(hGgIvw`?_v;Kh*T}dmX>Dd+wb@RC7Z>4J-uNcP|$^=FX{e2zQEdN>u3w$M z#o(YQz^vpRc3>7IeFA<{pu$(BO+()Q^aysd4|`iEx;teBYE)TWa@Wrj)r}wsvf;jp zpfMb;fM#OUpr~j5zmHXp-pE5 z4chE1z`X~gBfD|?>Tp2)EAs3V&UGlnlu+h_&A{qX;6R@(G(RUqbxnMi64(i-IX#E7 z+*QZ0B`Dd$ri^;VWX&vACA}@ruV$ir5VyMHSC6lzu+UP%O3@RQ0E)!TSKSlND}!3{ zEpnjD_oNmuAto21gnlA~!QOe%ZB^5sBT65HUA7nJypde?%kwLk zv94NxuoZtw!kH;0_*FPAo<~Df(gX?EjN{?(MYX2N{frK7Ze~}-_y22J0zG;%cj*ep zBbTE4P(c`Dk7_=JB&@t|La1mJDUns*v27HP-p(-cLcsrT(x5ct(q{6`Ur7O{nI)uMB8%Tsa@VuDc8+b>u zJ^bWOM%0iyadwHoFmxNjIZQZ;hq3wbUE| zl5QfBYEu9n3IVa}^A-hxjw@brgK;-n9mnUsH^cuHkz+Rz#Y#YVk2hme!l3w zGGvf}a;q!D+dXk3dJ)?VD{k$b>w>^(WO#@2&)M6F#%jnJ=HfMB{4G+;f;jZMR zwv7hQVvJu$kR{3Gbc)Sw*#t>E4?~65{46-UEjMmE-!cu=M*UdJWUw7gDHAc`-6k8W z)R>Gk@+m8(U%kJWJv3kbo$&&AP`v3)AHKP^QK=+(*w$SPyHpME zZbO)X7O;~D37$l6^m$5T!9jh5EwkT(q%uC?6nA&#Iw5;9cjA}F%6Dk?XSmhbB4ADJ zI=O@kZw>Noypz2zm=ixT*(2%e*$QvdHaVJH^|n}CzE*0U;G}M(5ZC5tS&Z`gtxRlW zLXr-F`5C_}>1drxRa8g3KFAY|o1O?ld+L7xF9jg@ma;kT+5@;$c)#ffK=2H0w|_CS5q$(TJu}^+B|0C&qr3a;_#QS?O!-FU_hRjA){e>S3uKmTZLp^u_(gvG6h)rD+}zR_ zV**eov^V8Vb(x{zN?x)o%I42@rY!qx?Ns&FGwBL-mvROK$)(3C? z*Xl!WjM45QBkPp-y~sl^=`O2;S3QL2s%P7rs}l{QyMQV93xt%z(WiCU`pI9vr8Z-d z0hR}rON-PzGc{9wzgtd!K*!RtJ@T0Wrx!{=rGXIiA|`U89uMW84JU_Yw2ze-rfjBE`toY8cd+ zfO!b))A(Y0(%svVyistoFB$JqNP%DI>xB=g>O6jaQduZH*^!U;kLvc9;2%aIhfJcA z<#iO28#Jbqc$d%?@9UXd4@ao5sP6v_ouUk7K%hn(=RG4lTL6?1@+}}?+2Fy~IS0vA zfn0HoM`lqof4uR+=^@k$3+WwS-K@%-q#?G)zwLfpPCIhW24wt0&>`xmBMm$8%CWx% zMWxuPSBCT=BFyji!s(Akq8ZALOJ58X5iO2zDA+7uz4gi(uuO#b7{`Fhu~JODU=TCc z08{R}*ZOqruI}(_%B7|jPc6d_A)hFmGQ63Fm6zixhAms*?B&7NoMOs5`YrG1-iHWy zA1Ue8syU>XFM7+}x0VC;0Gj3LKwmJZB6&k^p_a=xpmuBU){}Y|9oSH_83GvM~8yE;0 znN28}?1FZz$sZW@a1s=?BfXI?w3$NBP4x(I6NII=qbo%8>-=?72R~sc;bQX$Q}8Hh zICq(XG#sKrrY+_2WQhD80i%6O!5dwwA)fS^zY|u+$X`vDBM)XTTPcX0ph)2RY3i?eM9qKWqU-=H zXwbAuXKeZT@Rck-RGv_$Y!@{@Wg57Ka*B(a{)OMfu(XKM&Fw6z+4r+zT2i)I7!SwR z_w}6FZ{vQQ`7M@_x4-yVfB3&Q*pz%1)h5|0#<(*0~6uj=%~X_+?F_VeOvfsyOihGwMEr>b_TH%RFK4yAK`r8 z=s=-1=54tKsV_@=`EctV0(zRk`U4%TMX*lxBCk5{G;mJ}hy zaF@5$2>)Qz;+6PL-S&CUk}gJ-{PC+E@&zs4^LGNwc#J4n4#Zdto%bc>#rkQ86Nmbtjy zT`^HDj@a4}+phfX7VREY-yOUdYqvFBQ@70c`KX`ew}p&C&n}A2m232nH>afGTSVG7 z*&g4x4);#LFk4e4Z?WKV9cz_;F;;K2ac+kvKF@2jtnG$HYXa}pq*zM%TO$N_w!$4N6B-Y zi4n!>(fnr??#{=9Ar#DTAFSa61$_(+L!@ zCYXKs0;v_*)57qho}ln)XJ!D$cL=ZisgR}_*LPKH7-`DYU7Sp}@Y~;oWb*3n5(G=w z?pKvy%nBUCZQht>VnSoq9)&)S2G}OUzn{~j@wEe&hV$=D`mjnO6eTaSrLr%fD$I&V z+FZ^O8nXIc%D-xAHg(*a8c#?5n7$NOwQ%w?#Lvk!9l=Cz0AQS&lQtf>EoZ^@ z4ct~)0yk(u%7n)o@xSxA#s!6FULD&aHUqYU5zZ(W6I#4ya8`2+UigA2Uqq}L#)b2L zeQS0%QI`sQP$E|7cF&J=6vS3xwF{tVzeJ=e zk*@!I2`c`rf$%!hw*yfc&zPq4j9xwGbZtmaCm}m0GHJVZ6YOLAM%OGmJb0VC(dBps ziD<#pJm9P(2K_6;_C|QG^|mU9vCxt+`+6DZRYUQkT$g%(V5u0iB0K69BTM#cL ziZ9t|ilp;dDmc%1?%P{H4TAx?Ia7+?J5{#4{x-PX1RTVaj}uC_7H)WsMrk@-iJN8w zj7Kt_ISjG#hkbkLJ8J0qAHR0oe&zg$z5m6<-tuWx_xx7m7R@7>Fha38q|Kgwr>8kk zzqXubl=voBu5QS!1DnND!^~)E#p3|)3mfQ}2oB}IXB+m1yL{__e#-TDgJf;r<&q@b zE9PxsgV=3L4TAizM*3`d=r$jk7$nJJUT#a5XZ;OarOycY<^FYIuwoceH)Z;iLy_OuX?L!gjR#!8` zk}F{6)|~f2Oi2TZgABQ7`p`2UFbH!0Xz)L&vf~4|HQbMOk(L?USql zec`jMgkeh0s;~c`zDX*&?L(-2Ptj>hSWKK|>hcp0qK&>iKf42Y2$FzK;@==}l*gnA zoM~PpPQ8*R+n+@v5R5#?LlQYw@*@P~%EO&vZMQ>T_lepS z2W=Qz&m3b4?+|KWqn5RXReV&|vHxrEvOq%+=G@%h1Ep~bZ0(Ky`OcXVg;vzj5d6_Mf) zR;Xc1tXsh;8;0A9t~XCp2F{BIDaa7-Dy>A?0=@bWWjlc|B!+BSIKWH&s%59JF2vZ3@;I8eLt_g7YpyC>x-tnVoKB;h%J~JmS^OxUzLJJ9BCwSrX4lo$6ei5EA<*{i}AC~Mq+(K>lZF3-)Jx@K- z!3V6xl_D9KmJ2b1?j-8dj$@wxC~S zTAs#FGTb!uQ?c`R=RB@<+oKq{(+sBlcz^ByLk~hvO}MV^ERPTWP3k+3#w$2X>gCfS zY>tL|zdy)SqDajMQO)spJ{*T4IJ-%gv6w+E@CUKox`t-N(!}(l8iF*{F#i*ffJFzz zZ3fg9sjmF6VLWdl0;BOB7?NR^Z+^R9GR5pHhp=1(YXXlzrMtKWCE4De^w{1KZ8|o$ z#qVsHEW;4csVK8~CS;He`t?y;#md|TwxWq-|YUwv}U7$7qT znZ3YSYu{lYR_c}pNB0fMOsLZ$!x*Ie(u6nx0>yuX6mL|5f8wE}1m|plq#kW*B*$;^TMPJ_W#~>5te7miV?nI>j))hE(3=f{}%J#@cK@DZcxZ9gQ1g`MfX5m zY>Z(GVmVo>FUuw;p$OCcJQaa;psrXs&A!uxE80L2k=v{GtqAd&&JWwG|&2pTzJ<5m7BOmH4`FsZAj9 zDuJ_{!>FhETiJ(TIx1AWJZrsigEM_r>L!XVc{Pin040`%eMV9 zHrkR>EDCO$);f2ZD35o%=Na<0?G7lC5J4oHr3Ns;(*mBGyH;9f*%LF#X>{_D&MuBj z2+xY9iW7ajZnFN;PqwbrXp?m{e>9LLl^el1fpYhFu+$<4LoUX5h=ohWxnkH-;tVb! z1!Jy$tf8>UlsWaeuH@HDtnxnTXX6k=S=$yu*C`S4zcg=ioet<0s^aRLf~OH90RSio zWR`ryuYyZ~BegzY&Z(4JN=@h(70xsvSOKdy6O?rNx~6N4oqyJ)M71$1PT&csEaWbK z-IQ!C;p2Mh*&1sRN+?>GXo)UG4K<*xFlG|*b!9B>u?cMAJ;wTE1DO%rzM#Iq#Ot>tciC@6T6Ch6u$^qoTQ47B)*cth- zBz`{DM_y`%*LXx$`E&u!t5k^!yn)dkGzt1iVxT1G$l4}QS==pHyAR!^1xwbI_+-7r zlM_8gEPvPy7DB_`i1Uz){RLuTYuiqAvBr|#6`(QBGXihGiJgDr;$6@YDN-}|JS!sQ z3Ho#;?7&#*IoN3Phtja7MpQ-yw&W3bc;NakW?$na*EEo3%5PVzc!rLh>4KBtFQ!d% zK8lKs=I=b#4GmyEMdRE{v(S;W%iQ^EK+|uroTai_gyPJ}9;o6F&ovDaG(Hd3+8*eG zE^p=`Wz!{S>}7|(XEsx+Q|QNkhAxlTZCqZ95ov_U!oQ}&@+MU1Ic*O$b@EfyNjBt$ z>Nc^nroQIBVEQD>&mse&=l z=23^RF@7rywIN-&Vvd^6uf*0dCqPp=J5(*p^WAY1LL^^PN|p*f?t=`_7$)A#4yv$u zFaRd4WK7`8o{Tpdgd}+1gF(*Y*!V(|q5-wgSmSsj7Vi5j_l)Jtvxvox?CV@VJz~x9 z1ZS#zb-?v$QilVw93PZ|G@7GL>gI4jHL%Ssf8bn4zW?KK1ya^^^eSAH0YGf@p-A>C zo&hG38Y!*RSqmo$SVFy0n9>GB!Lb4^X-$jF!aaM)Wn|Un0DDWJyr=C ztB}`V)v`l7Aa|5IPyL+ruAr+#YqFC~e+Sf#!bP57>3 zWCKtN;Fx!|-atjV`X=oF zGirdi%3+O(H?#^rimYlAoOSgZA8zG}0&l?QdV#;O8Jw=-b(#BKY?`FFv&MySf?Wlf zV9nt-&LG7#X!D7zrjIS0?=&;$X##Oweu5YOrQhNSM0pI(MYz`+7MsT)W$20Y3h=#_ z1#oNh9Jj0iHV#idnM`}RQ)t9ukpgrojl%U$Z zTq)jp5BZC0clD^~MfsK8psZdKEw?kVhtOZFDRs|6LR}Fgesm|k~bEzBj+9p)j3+kiQ{zw`2VnK*5B z291bv6B)we@yMT6;L2s^yVW=6@JClsXwFM1(n%yPu<$zRKt?zO^$GtgD;Mjd@V>dA zi{mh zU2U?fg(*?1Mx#gt0Qppy-`DpNwdl+15A@NV4vvYme5AFc> z1dPq3c%rqK_U+sJia1EgQ@n^8?~0Zg9!rWNhgk6;e6WVS1`6q<9+7~@01*;enu|Rw zvMO;fBmlDRKUCbL=ZWx$^Vv->(sANiP= z!Kqj!$v@*F9Djw%zIo-smUdh~)0`@GVy7ut#D$42t6=*}MQ*=+b2NshVo?-X z9gTevlUxi`0n%#NCKNwv4XO5+LZIDL?}*LcNNyvpvq)nkFaH@mUBbA6Lyho4zo~5% z)iH9P4H;>M$i@c{bUb5fQyd!QpI%v>X&M+u ze5&FED$w(=eTW`~H_D%X^WW%%kI#K+(audYdx_>}jDj#kR(HNSeVpYSk+5e&I&Y)r z)bzwbywXSQ-=v~sIM>ZooZMM+JyPGj8xdyF1M}YnT_L9p&Q`sbcSf$bVQhe64l$>_0fw18~Bs)xChK1Fg z#L9wwUFAEKZ^xhhPe4Wx&H5VD$FDC}5>3-)==wBSnwAok$(l(;Zy7)61oh&Us55Q& zb_yIPg(#1bFdDlUCJ-Gv$3aPWOTxSza~^5@jXU~mIY*4vO6V`I)SYm3<~Kz{bX3Fd zwdg{kQ+Do&Vy$+qX)e%q1+aF%3161~y)FxTMQ08%S=xaGHPnQ%)talPq@>@y;|nuZ zN~N(D<^>Se|IiZ&5qSU<2IiU7j_o`e`3aa_A!vjrfPqeD0v|$>)Bh({xC~&_kgjjH zT^`!IOM>Q_o6Yu?#rn2by)ym%oor6MJA(0GV+k04 z8PU!7tQDym;2|CA*d&EVK&~{jYQkqC1I5@elzl*43-S%CZZ&kNZ}Z~}K?cxCUZ63hL(1VTK2Yzb_QtBk*f$qQ5hss{7uHN89f zNdnZg<_oAaBZxYeH9U)ICc3Twra($>iX3Mq0x()K$Nib}u<_AN8;6B!wm3 zW%H;O4Io85^BdVeXazpl#ip!T&wZhXLQy0-7iYZ-H$y$5$Owaf;4*M4pQN6KT!ZDZ zI)?L+pHP(`OBdolK5mS-2o~mLYT17_(C5VZW~-_) z+T(d?ZeHRy!@3@^*i^LeiR6mbL8RP*&&fjlVk2=0vUnEw8?A@nOYXTlV?B49jC69z znH?<#8M_Q~m|Z29n)9OwVw2XJrXzFfkscSE{}I62<~(O(32droFY;SUhbR~IWLi2?~*rKo-fF*I|8m7+NuGN>|qZ;#K+rk$aN;T7WFQzf-Fo7N_= zjekNT8A^w>_CHptA7rLtPtf)dQe|4m?C&Nn7T9;z9`mU#=CayHyQ(W88eL(>;jXRn zVe+{Mq2t5(1UyV{LpwnSZi0=~n6U7_!`-GA~B^S1Z)~=_)rEw1^l_Kjfn) za?fzQsA#Sx;={hgwhU1Q<1DAlG2cZhZa>_7PNpViZf)s62s|>GOTAgoq-vZFRLzmF zADDw04paIrm@m607eW_=^lJIYbY%MT4@%)x|yiDtn4(KRRB%SdMw;N=Zi> zivB+^ZltYp6sd(UAk6*cU8Yh3?WsKVVhTMPhMmi`dV|~#OF}`qC?Qkpg|CJbV%$Zwr_ZQCeWFq8`uQ-NGBtYI$Ab&E-@Aiis^We{o0kb8l9R@8&# z^FE)JVd68iji4sC`)0=Km%j#xj_>B*d3E@zvB)tNGh4t-;C{q4S#A5Whzb4f4OFtyZ_nsjzR zI(Pflpio2st857Zl!VlXEo*VjC>RQC+x}}8 zP`_gC@13PeB`bH+_lp2UzUyT<7ABY_a;zH}yvbqKQqAbK#LroiGSMG!Wtj3959MJG z3$iNKCxi_N;o~|U;||rHYrer!gm(iv0bXQZqZdJ)?;(W<3mZQsY zi)+k_FbPRU?Fqs;k0~W&FRdsb24~=e=Lf^x%k>-m8y`fDG1B>vDR+W{N3+;e{6Fh_ z5$UaF7|2qOPX^*MuC_;tl-L!Nekbn9^osNQ&uZ%Hf(-Ymt1@x>#&RD;rJ|m^WT$m+ zpJlT!#)H)E#p%PvV)JNLK{l24Z%k>o+^hid?EKE5YkW^#t(Wb_dyhMgDpE!mGE4Lb zinM%Wsq6iP9M@ay8ol*WzlF_tW@{I!^((a1&eIfvYPF-Bqh1Em2&Qna-yX-|OSP^2 zm#0*NI)HOD6+URSonUM6^isT}#XHY0xf@K3A!=yba)dk9qMS@0m!O{@i)2}^CtBAJ5 z4VAxhoUv@e^FfOSOi65wQ!}$UDwkCHnOqFl9W>Ti0>XS71t+nz09`~Y?=6UOG6HRz zQd?b@@bGxmx6NP0a$ia6ya?p!n@1+}#nW!*KqZjRmcPrteKJW;4P#N?^B3!|i*G)V z76``4K1nhbz&mN^Qho7smysn?4=#+V80%GH-q3F2374I!(5d zB9k{~WVV!U<7yZgI}DJi2)!Dd9g{yN-K;n7lTvB__+9NoQZno>W~ba_Au6C6-|?b| zp723M82;&J+s&$WF|sGFccaEKoM?Qihzy0}aA6YaLxGV(`OX*=!|EQBrlqDkkM}w~8&`@)m+R zs~ua0hw|ElW4gAkEsp*yB3%7O4WZQt=6Nvh;2y5`Nc}|A3jI%FsGYuYr(Y@4Jp4#S zYH4o7^%X4b*kxEpo_HR2(djM~ZZ|JDPI4>t<<+;mPyn<0KXz@{Gh+|zmeywYw|W>t z1cILxKYCvLI4jQZv%UQlOXF*c<8+woxK7ksUr@+tYaPkI#!dO@q?n_wR*Tg6oDKJ= z+V%U}uhiNz*o$FnLB$43JN*&!2u`5%5?=iIX!A6Rqtd|#2m~qrMpcZaJrk{Qt5v(l z+VBiJ99_6ui@EF&H^ubQeS@ONa%JVs6uvw)KAD=Re8)k7s(Y(lxQK{{a-&EUZp zTFH`57}q`5t>8#LCiW@w6yN2^o1v0OwBJ$LbIWxC%{|$%M?v?S-l|IaP48wRmG;!X zufe4LQWUMAcCL{hSea>K3`uTWGi6XQ$k=Ny5p(CP3i?u8R6cDjgUUz=$)H>{KIc1d zm{lsm4DY4E z%s`>WbtYwd8DBrG@)9R@gc1qXlrXjhXhA*h!gj=t(|@GmsNCAMb>j7h9<%j_dV8$( zn)(Sx*d-$IGm1P-tJ--t`H06uee%Orm~dTB6zMc=vyNMyL{vxGCp&OzOFdqsT3I58 zrJ=ir{P&>qA8>%JQ-mB$&^}RQC!V!ag}9vAwJ9Bm`GqksXN6MpbQwx=t+ZloL^NLx zvdenwg$PI!G8uH8LLA+_im0OF3Kx>ZsT8134t?&3wI<)uQIQg4FU`u@XpEggc#dW1 ztPpFPRe%{K_gjs4Nhn(im!(UM;1bt^gZwrN^a1-ilocYu3UA9zEwhnugNZ>E?$FG`OeO^yV^l!{W zuk2+zp})=iRv6O?=tZ7?+mJ$3fvn`hEhI`dq1VqyhuX45bJA8e;&R$$D2DN%#74CM zy@NA&$?vzQVh8rF5UQVXdCS!p6K|(tU-z$8y8^{N3AW}em21t za$9{qq?2)DFamB2@n9I(sIgYBSO_P`;E@b^azJbDXJha6Y$lTLNKpux{$<+iiuV|Q zLr0xuiW;m+p}-gW2h0x*n37RfK898rF0;|H2*gDvYEc_b+i*`L$n{;UcoyT|0GdCB zm{|Ke{muCK=`W-O_Pq|LDlX9iI7gDEPz%B-HVi=iO^4pLlyBcW{0LE46a(N^Qt=l^ z8aKxu=;`i@h8%}p*S*JbZVl3Mgcn$#J`E;Mn6=Gz#6k)bc3G#D=+c(g2Y6@>!5o|< zY;ow2jd71JTnb?Tqd%vdz0=*7xyFp{Jlp8+g& z@#;$K+=#49q$IXMw%H{Re71EW>6#k0H7o#s_O%;&iB5VK*#Rp%oxDSbfZ`lp4|15j zych*itzBeSyv>J4&KklybW1kR>BZ*p9N6WMiC6mRCG4;h6~#%W45~UY-GrhoTy$q( zOXy$4oEJtQ+RYyDbX~devWlPWO^B=l3SxbE)AvPef1a~`{Karx!g?Ad}&lH|t&|6ZAL9XTD`M+q*i=+uLDOa+6Fa_5D{{5^9 z^a?XFHO1*yUpknp-R(ewBPuWKP*QE>tK9GxYw!)tEoX&KP>kz`bZXey9DFq+kok|T zdT+FcC67ejnvdijJl$~_>B7LWOh{mpLyrX*F4;F$+rea!O#0*7_JL>jV^8xmG>Pt5 zn(tWtr2i6I;mKFu+J0i5VP>ftl&%Ho(-Dc6tmEnqg_#zzz;9AFXzoJ!rxO|9y9HF5 zBGY=U@n;|_Ce5Q)XW^D0fp1$Bzg7F=usSiFz{OTW7`xab;ZFl|4X5un?BRsH_Z;&* zYaR&_RzecK6cz6_nFf9!N8{(4riv9uBh&^(p<1)5C9 zYGsj^%oZU#T+To`*hSlCDmy0w#N`Qqd<3X3O^hw#RPmJBjUw_G0(XeNGd`4HVx*O# zYLZ7)$Qoknbxxk5QMEs%{i#U*^UWI}cugMdtXUJBmcxU=`;Y}0V2w#>iz=~`9zd3i z-c*)yQ`P6kf%4R00|1Ea_v41;1nt>Gmd?WbM=STRXS77+=7%jNf|6#0$UM8FEeQvp z5@DV2Q^8se?^b%S#xU}5c&0+tRJV#Rzc%L0QhbB=g;EGugw&t8)nWIbw2+9q*S{n~ z)KaR}yvl5qA#;&Cr*T~O6Gici?hdyhOm50WHdadU_joS_;oaaO1LLNaDID~R>ifCT zTUO`wjnm$oD|OV8zL#>P2wfk+hCG;ECnzfWKjo)!EL$TMV`6 z+jhPn%Kkb5djoMTon?w6pvbVca?|uNRYboNUmLkb9Jkn4ce!4RN#3X}DYL!1T^3nu zEdr>|C@`y=3}0`*kp7zBipxcTYu!ALO|h}0?#lIkKx%YVk9w~)L-zID0_CZXSB`G(7?S^;#T$BJEZu^Dli#p@ew=x90(OphT zblyx$Qn7=XwG6E56N`}1CuKIo$U86tN8}wD4!(opH}4|L1>XU!u+~&~oF`tNDSa=U zy*kAltpXM9AJYR;eq!6vmxWG0COCT*C0kJ1OO?B+ju3sjdCo;tlieCI5IHS7Ke0qx zpYc^TFN4$uqyW&*rFc?A zMlqM{373J0uq51j{O2aA)9EdUjo)x!0dzGWr-l!SyiJ7!ZLwnAltVHqn(YY=7*Lp8 zW?GK8*#5Sp#T^dwWP!~?5Fb=B)J27)O4d%~m)DI0DE+FjBxqc$gQ8LDFR!~TQ>OOa zysM0A_?*HN^VW7^+8BObq?nQDuZfE!mTOGsF%{pWb>ttF*HZ>z9B|J@3g0(h3&az> zZ52unhEEbYmfH1LD!IxfDoRDgRQB)X349ib3j#-mMT3Dnao!?^PS!8Vb>=7wp2=*S zO66EBe_t$&;%!NxjRm$hxYLY~xq`L`6!H%%Ms#Z%e*X_B|2x)7zpS@=MjWTPYO%9G zKu@=}ole~*Sh0T=(}TRdMO*~4WC>`k|C7Iz6@G{}bB9*vUkKr%w!KSE#9E{gA^n@f z_7{g;_t{%rSRo50{*2j1{LA$TzN8!FyHJ7|*C8D!sm=iyL70i6< z;>}bF|8@PbLzb>d#zRhervONZ?!v>WGFXrV_Z|?VnJHKj{T%qXkEk za*v7N-Z?mj`Du-vzhYL3jMP#&(1}|A=PNZ_C^R*!!HDR}$IwYH%9+~?gPG{Af`nON z;MGsFU0g@EErHMJ{*RE3*H-RQbD1xksgLxm7il#%oM1b@+dM z=}ede`Ng5V@KM2K2Q5 zu8JY6bcoeI$Kf)vvstuZ#e7NRy%^bIfmZ|Jfz$JNzrB6;ruSn|YbCr8gxw-EuWf!j zV1!X4qDUN`&hEHOY&PjfHfl;(F~uRyDlS5IXes5tU6kb2fL@oGrB?@IY4Ao%w`BM8 zNbCh?|1?f%*)=0htv3)Q>lan%q}CtCnY|zVP68Lvrfk*c*-0YWz+AAR9!350A3?}^ z@J=JS5xbM=n3r{IAlZer#L-S_Gy1tJcyc90uWlp2tzpE=w~ZVaRwWVXP2nhX{m!oW zydUOs-}K86?jgyJ9<^}N`nX+31V<)z<5O{>;#PKYlCpo~HP)2pWfdX70f>%TN0xUW z*MJua$D8WSV{=~)s6F#|?0fllQ6`~{<4w0+4>3Y0)lu=17fQmJsQ_qdnW^uin%rX@ z*E(6Vi|FUGaUnYs?=|bi^v4~|H!zSkn~<8C1Z&*aGX+R;{Zh0kc<%D9b%aH2ViZOu zU%_+Ogl$uxXkK=}ju4K|j(Ae2J<_2@*mL=fWWr_P!T?1^5jz?Al7BahPfnS4FZTDJ zG<{BPtrrLu?ZlrEoWKW6Fwnl6%DHqYkxI)E9Iml;DaX<`&c!DO(q9M+{=Y(T<;N(T z)Xsd_;8ru^Lq3j{MM_p0!+<%Cj@exNse8DyROv-93_}L1=lN0ixAB@mRf!1#pUsI| zPHc2w;uHTSTP&x5r-Gowyj@R#??vet=BY3T<=?b z;r-UM$49o^iI1WXRrO?j_L51D_!LC+7cP7$(|V1oS!lM~Ycag#zYM}ki(%=xYU9fd zgg;;jrQJVSSSjk?Msp~t<$V2uz&p@=FOPGNpZ5t}1MFM_mxINj4HOUhDqo4Otl*g} zJ@Y|)ExsIc#jjx@{YJ>A5Au|IA9unsv7sFR3SkZ+dSxh#dP$@myi1_ie1`@(P2Ve$ zsTv41wDBFR+E>M|s_r^HQ<4&3;ycS0To$A3n=v_$UbNTE$Z&|1%n0>% zbD|XKMp>qfCr@bC3Rjp#2p*)sSU4yPG&=gLww6ceAB9X$rK$-ZEh^Xag(fOQ5XUJc zH1&TLv|fZgDrxD}AeZ|PG0)o1!pM6NqOw#ly5WA&^GKWoQo+rI^%fka9;5%DborD{ zu329Foo=cVnmV(}Yf}Kp-9~zZSK02U2xP5&c*=>C71?T}<QUO@B7NUnGUa>7l^ zYzIQrcMEXiS{~Wa&zldYwh<0uR(~lx%pP)QC1#w@m;y7m-2c;Ya^sbd1B{>sR*Ui) zoO|M4$h{aJFvk6?Y;xenu^ygU{M!0J4^1DS(!-Ak^;Tmmx#Aw+j6oLDz1)4?@Af}= z78VRo7yL+5xdePX(2VwLj7}rqu-kvUVU4MIFEYo<*&T2xxSH?}R-dmfnUM;z(eRnY zD=*SrvysN4{VL%z{XlwV41qPsZD?wmtL7GEV`PmKoVM1fF0?xMD7HG-yA|-_K=L-M zl-n^ruiig@?(a+YdBLsu;kzYGr)PasjNYKR70But!v_AzfsEjgsmK`RQZ6ZJ+`usW zjHSa0f-N?`_~Mtr>vFIYC!v40qhohYB%kYdz4YMW3@_ckPUxf;&&H1VaZuoAkfck& zPwD5+4Zke-V(R^|N|4jb_}yVl$~?Ovkc62k`W*ox?ioO_ZOy$A zW0xIDS%Pq0zK1|t5?whM$M=?fK2mfCMBlGoam4jZx_#jHI`sjj zJ^{^SDn7nc42VnzZ)OAYQqw4BDyZN9=dvR*9BwX%4li6>$U_^APxidDl!U&az474;MwXH;5!mb$SV3-G6fXk#BynVt9vU65Y#xLmiZ@SFv6 zU#g88$E55UgNLfVoJJU%ni`j)pKOCW-$R++d60kfoH`goIcfBU?(e=li(MGBv27rW>sV}&e3VVjTm zT=7%fekoo1q_&h>KJewXi=BvAspi|2`L})q!3`z+97ar#S~mK zBB5$j9$jRE3!6eyDzCgKV#K(g8+j$!7CRT5CJXQIKnK>}-5;9jOzxsPf0Zn2Chd4H z4!IJDdK`JhtB%?;n3yC~t87KFVZOBP==ipcF_&aHM-;BS+UGSd?0(+w8w(=R;dwwK zH^4sf>j;F6*CGy%j3-7%9RIZGNkly#-_$(3dF=fVtRg}8lNw>VXQTUk186dXXu~hm zbIhw_BP;eFdOhIc8fiNYQ&sexa*+|sm!EXqvbQt0BN=*rhyb%M3hdL{f0m*S)gtrg zNKPm_!z5tBfM<7nh2#Os^{zpn!8C~4^nolo-S3+4)v_`(+w6og)%`6%`;U}_0|yy2 z{&@;ht+hpuzA`!T&tK>Ovb=|;s^J0PItbJ{NUpnN(Ka{kpvpSEU7~9 z1~l&gQ3x$R-{^%JVcPE$7oDt~n30k)Av=%{o#|)0P0e&3K>`5=T4{qf(oI-;_(`MA z*UrGgQ%m$Ol${qj0kjvnz}}nY!YPTl?Z%jMVMZj_jCB{}vk7)!lgsid)edQrU&oPH zuGvMg0mIYYjjD+ob7=%nUouUt!$Rrc7X>;_O5KL5MI+1w-~_UpLlyd}RM?`;z47fQPb zpXu{8G>*B3sCS|&F7eqQTv3P7g;V>I3vk+wTHJevYOT@F+f1EXd-+C!q`q6N$WYuD7Kg%<}DjPDu zsVIuEyr?IR23wUny;Kyu_MVos&};kjtZDTE_+IM5oqln2ZuG`G^yl(S(Y- zy}Bcm%KWo>niMVEtye42PS31>uS-+r;EniefVcv2fO&Ng+pZq_sq`PePysJA`+*>w zkiD`dcYaLWHIhQ_gEKPEzjt*#rzj(afod69B(4JUW8KcxWXHc5*d9Uql!s(%hPYQq zo_H)?{t_4awcgV%d_OtVHqP)xgIhUBp6VO2_y%*lLlmB0!8t(FR#wz3`iO%gbP3<} z;S{~4%IuJdFK?xGs20HBJci1Ky_OEvs7%<_*N?T+a$NG#fqCPq4dM_s8SQ>se~{(q zY%@v#{5WA9c3Z6^KA)CR>T%%p@zI$dB9wm!Q~{EFerxt}9Irl7#BZ$l6DPvIFZA}7 zwu-wn#9CKb-kr}r zRW4zCt1LMET4Bx@95!<&Dqy!g{yhPNRic}YV)HO*-`yD#AnLFhc146sUwrehPC3cz z2|i0|zqD#JXz4R=VH0qO?mBTHS0+!hQrCn0XT5k)-zE zV|U~+7@^ZUR>#V3+6_f3C`NbL^1}{`b?MAqU1%HYIh0N2tz2G^1Zwix`BT^)*S{vx zH0}hyUUZF&RCEN+D`HBL?3aA&IMtCX@NaZ!XTiZ_8N(~qc$yVR>b!q;vrK32HW@Q= z(2An2Zlt9IdepV5Z@RZKtQyXFH7~GzEdoVfhGRWkJ7btjrd~tTb zT=qg`z5eA~&@WZicxPcBpd`xG*PsRLH!u#ccezT3@}I{uJMEpW11TaK6}xfph-keXMbmbBpGysO-w8utxXh-VOBZb_-bn}_gJhGr}Pf0$j=+W6Tj7)aQ7bwYw%XyFBa_{0(C0A_~<&Ni7MFY z3$$s5KtYx1;6p>ly=`cl62BD=v2)b# z1@VaQpK-Jvdd+eCydc6n&UN`APE&&=%KC9@@Q$u$tf!b<6Cdb!mx>SeqAk^`&C`Ca ze4hG}#;03Sh8m?$2<`4Y$QnPl;5g@gKfUXy=+eneyEp^$WhY8>8l?giov? zhMN=W#nCjp<5bB&)zyGp_@qO(mBo9LV&ZWF14bk;C;BOu<6pU~Q@SV3H4n6ov3at1 zOTT#NHl+>D<@flnmorvNSJyTCI_9UEDTYz)Ic(i={!Php5Ub1eWxp5QG_kJKw1rzz zZ}807r_)D;9v;a^4oA*Us(Nv~Gf=BIGL>HqVVW)mNJL9fgtS2F7l8cdT?wlm_K} zKAbY+ztRYnhrIj>^LUNYtRh!PZu1dc*ep9AInKNI$5A!hz2(hxANWh7DpVXv%7t*O zJGz`oTqae%pXE43#Rg6||NWr_Z&g2dNA|#e-nHZu$}B9p%W1sQnCwseWsOo|Fbb-Z z%t7s7vY=Zq&?>d5)76iH zd(S)?a}^ux$t^aV>SP;pii6m7b_5oKy}%1gj>>!xi+{jtI7Aj<`%e=-4(4MjblfN8 za7~j;(k_HGg9`8j6br-eW?0!>GwbKjUjJd=<*JOXXFP&?txDy--HcViEHFp#nrObu z3FDzs^6HM05SF3v>hzvQ%-Hd@3(Q#u-E1xBRDnZ_b-fL#0YWxPl*&#Y;8YBYoa_Fp2h#x(od*u+DzI!uZdBwlkg z(yhpR5<*-2^d3%h__{M$dCMn$?P#KR+!yx0?dadF`dIXps1DN|Gd-W>5n zQRhtyX}>IT%^O3qQ}lxgGbmZt>YoJVzdfCfZh?7(#OBV$xP|NwcS4aMT%(sp$4sRY zS4t(~hV^gvjis=)D%KnEH6;v&^%qa(N`xMP+N@|}b6V(5{K_=-Kui0njJPUU!{czK zrhYRN#*Cr4`f+#pVdk(YjP)DFdFSbD35^~>s?dF`*Eu0R7c!*1S&kvlu<%R|t3wC) zVFsnZ~ha@ z%D=!PEQi>xxrfeViv85*zM=YSBf>>lvO_jhfPGXu%28|thR4Do6T99uBV?Yz^g+AD z8eT$R0lbbB^fvh0=I}R*#BkMWO&VUJee%eqX~XmSI$N@qA|PlZx;?{rH9_9x;er`4 zifeCjf`0i_g{HcY)1D14z04rxk;fQ6GGqVDeIehQ1X&z{W&m(Mjv zQ~DwbF<0w{H0KHG!vb`l%^#|rIlB@tGgI}%eEwlxF~UwE{P*a=lquv*HC_*WwceY0 zyXVQ&hw7M=y219Z{wma-Ee?t*-hLaIW_^FDMt9W!VHXho{^deyVrKvL`0zpI)A6-^ zBXf&sL|^=nh!nSQqafH+ZtxkcD2Vk6ZJmorq{Nh+$O6gQWY1)JFNn9yjZwB``0s8C zA*uQ4DGzI`ITTYvVhoETdoPP?snCukMr0tsLtbA#znBfPblaJUjG5r3-(hy6eT3+eX8TKxX?u&SF4I)+G-eG9+s#%au62!NvL_UgVign(>7V>D}HbMl5K^a zUztL28PWF_=8DHza~IThIYs|bp9rGL$6iapc(1+qvqJobKObUd+c402rbvo5@@*84 zh@ZZ*KD0qS?A4tWL-v@+Z1YgSqg6Y+WpTU43Td*AUbr<%@Svdb@zI|b>kfIulf?cQww^F{#TtvR_<$iylN=kd2Yg4Q-lfD#cVy3ZNtHKJRvKve z8ygHadQgnFocfDnR3on+Vs5NRrVpqeEQ4Cg#4qN7hik({x3y~Q1G;4=&bP^5GQl^g z+*Nb6s;uRuFD}=4_*p!yUiV0nbY4yprhP_VnW{1ZpKUZX`%_{2AbVG$M2V&#-hNfzu8>E@sE zUbRR3zBJ$5n@m?FG{O#y(97`Jf4qCq&UDFMS{`0q50aJXO4=dg>?mqh6Z9>zRm9+bYlAlb@g6b7(_8*%* zRMcqDhxlI(i7FcfT&d){(tE1oqpnvGSQYcAdZU7}tl$wdzp z@k>1oHR4m@!pFR8=4oNjtPZjN*sb+VP(T0ZZ}|zSc}0rlU=e2{>WUYr7$Bk)8wN6B zWnq0}lIYIVJ>et=AsKkGNi*VtSN#qQ(XhuMrx!&fW4Tq%dP#!li@0Q#i(RCvqvA#P zb)erb1JN5w3=ApvQ~v>eaBDt`5?&U3+=GWw%Z;bG@_*twIXvSlFHdp7e=oA!F)5_o z>7QhK-$Q13b>tNP-U%&7f72g^Qd^@ey$m)uBikSGLi+O?jk(BF}J!c)x zI93JYcEQtQ<;P6|jwUm+VQFZt{`QkYAxlskE-z`)cO@#?#^`#NYeAm&SP5<0I|?*C zab``o-yhvDKa11`P%l`KKYW$Z*9-)ENesSOm87WZ@${aNQz=?d#=R@5ovoBQGq)4} zK#=a3759<;Q>u(O=>fbP0bXhgEb|bDf z69S1^vcpA%Xfvkws%xyFO7dLvN!e8vx)`3)XS>s%GtO&GykmbXj@_!qRp7TR|6Nxafvmry zuEF3lP%4MpF2SqNwv5sL8R(2>p45;w70@>?9g|bu$(VweE92y*(OBXMol(LbI>6nA zRHIQ}6X)bo;sdexR6X#lc3Bz|A$hDkyNVhG*-Y^+XDVaSrhA&MwA9~_uex|_7KT@y z2Xz?~60RT)!`#%Bich+iQZyr2?FTC@ju;Ndl_^ET5BeJftzgKxnETgoKu<8;p^G?@ z=^lIyr#)>l0-#oV(_xs}E93_2B#+2Datia9iuR)FPTL1#aGG3U`tumgqQTmB#~^cxk}D?+PoR&3#B5k7U5V3m<5T9Hal8i!`WeSLgH_NX(yJ4o zy*HAB43C}8Y;hxCw;5JVY$YIaA2@$kkw1mr&X6+YFi5ed9n5BV+EeNHLqLt`+*9-4 zBSbED-cUYQc1hs#YT1k;xzN%4{~h?lMTW}JYmG?;e=&0EKy|d7-oyYi63~CaJ)T{K zV-7BK{&W`C6V9wvtU2SrRSOZ7pASETE2F4c^pd=%>retqKFyuKN}j&~ML@bzXK)a( z#B8{mkl#FkGyUhLeN}ANshghxE%dCCW2@XohCa+FCpqY4>s}Kj|ixJ7pHaT+TD;0 zLIwoM62FIo)n)(xJZ`5(`3+g$GXVgEG~^0pAm&fp*cYsB zI6x2O?An!a+$uew2OdTscKHneP@TgAP7)2u^GoLdfLef@d-H~%F#C8Wk6D9!T$$7I2|JZ literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/technology-domain.svg b/static/images/2025-01-rust-survey-2024/technology-domain.svg new file mode 100644 index 000000000..744da892f --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/technology-domain.svg @@ -0,0 +1 @@ +3.9%8.9%27.2%21.8%8.0%14.8%12.0%9.9%27.0%17.5%12.6%5.2%9.5%9.1%2.2%18.1%9.4%3.9%14.1%10.4%52.7%6.4%9.9%20.1%3.8%7.8%5.9%0.3%4.5%5.3%6.5%24.3%22.2%8.5%4.0%24.0%17.3%13.3%10.2%11.1%9.9%25.3%19.7%14.6%5.4%9.3%8.5%2.7%12.0%4.7%11.6%53.4%6.8%11.0%18.7%6.8%Server-side or "backend" applicationDistributed systemsCloud computing applicationsComputer networkingCloud computing infrastructure or utilitiesEmbedded devices (with operating systems)WebAssemblyComputer securityEmbedded devices (bare metal)Data scienceProgramming languages and related toolsScientific and/or numerical computingDesktop computer application frontendWeb application frontendDatabase implementationDesktop computer or mobile phone libraries orservicesIoT (Internet of Things)Computer graphicsMachine learningSimulationOtherBlockchainHPC (High-performance [Super]Computing)AutomotiveRoboticsAudio programmingComputer gamesMobile phone application frontend0%20%40%60%80%100%Year20232024In what technology domain(s) is Rust used at your organisation?(total responses = 4139, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust-wordcloud.png b/static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..d9f9db71e38173a6518c87c2608ce21390d5c224 GIT binary patch literal 53046 zcmW(+bzD@>*WRLQX(X3!kZxFd=|+&QMY<8BRzez1SFIWL8RkLgLH?0bP4$K z{{Fc4kNM0!&)hlZ%$zyrnOI$IRRUaUTmS$-poUP=2LQk@003ly4Ss5={^YIj)Bw=c zG*rI1N1opz4=#{-j_E!oL07fy4N={p7lJ&l<94&7ptA zwsQs9xn$q5jBH&(4$Z#&K4Z~5XViG}Gv1qLykgQnd)FT!d6ALaJt(%jY{NaUV>}g2$R0p;cd%+|N+9V`xf&)#wJ#_+-Ivz7fg}b=_Rfwh(v~dT8Z#W}6)Nuj zTF5#`+S*st!Tq_ZyNIPDkFhyl=axe zUkZxrbF;maV9^s&RENRU7^M(QQc4U`a9RNb8?!36Fr1zh&O&0LNNBD^Y%Ggus!XgW zNuVcpr2uo6POVIKNQF8K;(MmAU z3(>Lgkkjxy!;|D95Mjj-=fW0d!xCb{d(K42Lyy7FjL8Lqu@W;d5>l~{LRl!O83?Ip z@QLZ5P$~i}Hd-(n9R}kwOgeH19R(&e3FH|m@EIuyIWCj}51$;Lhy;faiiJmv1EGLI z$Oyrtgg|m)2oxU##m6PU#KFbDz{kSC#l*zH01@DV@UVe6SeRH~3`{T>3j%?FKp0>k z76uR#0>pp-Az%;~2m}EEU=RQV0s;Ymr|0Pn0N@NSYytqor)o;_h5^5hI&jR%Ud*0U zvw8I4ACw1LY}gku4jEO0Pf!t%l z<(Z4HKgGm>xH#m6mAsyTxZ;?&a;IPXee?Oi*w1LHIwVvmrKZ!!BINJ=?|h%*mfc20 z9$Vu081**F+hM6LfxIw|-vs7yyg4?+crXCm``u!v6R?+w060{%-0*R3sWvTe)|Shv5@@!|sp6c6SG zn-OOSxx3z93E{ErL0!1l0*XG?_cJZn{q1s+iq=1_5_8on4=Os!efY3nCy5gzA-Mze zOA<=`DS-tUFlG2Fw)*v&kuWi&xc1dW?wADPc3#ZwMdSMQgRM%*flsmCGM!nZ=}T4I zMQW(rA6q?A?pa$~C!83ak%Cj`QEoOF%!8@UVx$6dE5iBONuQ=|aS0L|i~>z{&jG9gh+MuvYLnwnhF8*~2>AG?TmFTx^%lAvfR zvM+8D3j&QE_Y$OCkw^2i7w>)kmAD4sO8bBz-z=AirvNOo3BZbjWT)nk>K4FR->W5i zEd|a(K%fuLU-@T$`)EQVlkawD>?(W?#CNd)oMGn#4EM=#j~?@4wy1W~C|L1nH}h4Z znAr#k+H$$=Z#FjU7>Pg7DCRXNN&~Nt=~C%BMe^bx{yF=nt$WO;+7PdbJ(@$LRRJ*! z5ARlKJhrS+;-q0OUXOEcVy9-x+Gy+sGyVISAy0?3YVthHwFme@O2?!INcbrMA1a5iZ z$-ycp{3<_duDx*Wzfb8G_cWsl@WTqk42?%`D$275Ry9ZTn2>8YW|9~0L&$(unN(!& zB?8+M9>1R_L4CCl4=AICQwR4;EnXduA;NY#nB;aJJMQL#9P54+YlSR4`d*uyc`|%; zX-sZ9T5kI{Z*pvp;r}(c!$UxS6tiTYAn(0-U}C7H+a=v{fgg93PCa|F`1v1(;N%T4 zJ2HkXc^a@cvy5-1ZadSY`augy*N1wc_XGv3`v8{y?H3jdgXaIhD%l_)h944OZY{(j z#L}XYAE@_m~c?Cayb6u2_$d!pz^7os!V`T>~ zx1lD(5nV)}Bn!;!L$*$dT~pnCPzr|91--KSPE?F-hRP^OhQS&!3r$m02{14X5*bDa zK*uV7HGG9Vu<6G^1%c&%WUpl&l?#zy6ZDZ=Pzfjzh?CacsK7+G>NQ)(Dcvh$G}Nq9 z&kmOnT_tNJNyF5xZVZ`g>K?N7fG>_#MCaG{9))4Y%lolvh6D2fY*)7?L5>^7DgufD zlj>G~PDO*^y?=;q-IygDKiuzfC9S0fD&1U%t%9T;Kz~DqlDOR7QMZd+qou- z%9>U0CoaEINWy{uYSgQ?olM5jaDW%RxH%MB9kv;~sRQ8aT5sN_4I*JNFtI7)htJJSqnRG*=tU(3#A3UK9v8Zrfr2yG@+g zRz$_~Vf-PoYx%x2KuWXf$tbF1emt8#sxem%CibJ`27CJ!7FJVwDTM_={44-!Oa7rn zrMWK_VZn5eV@y^^3=ZNp--+u)8H9SHFWJt$h}g>Sv`2!`g&1Af;7xZ4{fC zEVQFF9x#bocDKhSr{7BZ&CPPSi$-}P#8>YTFHh`NN+$&6)@o8(P^X6`HFLv z0v&O~Ao8gqDw$*&t$?0@NQOV2V?4{|m?1&)yu9?HJJwp{+(2Cv@z8Ezzj+`0?!xBx zS26Jsm*MP^NGzoT`nO`ta35iQj_<~VR`-aOKwv7{Xnzrs9`>+G)mi<#|KF(CN;@_t zBs-!!XUn>R?dO^g1Z7?GkSn`bpK7}^uRRS#{}qZA07_^P;$|Uq5v!Ymd)ONiKholY zU2w3G*M`se^|b1JM)Ru`deDuGYn@?y+uKU&%#u&5hixdu=Pl3uKa zCOxU*7uF!)ZmbnA_2ZFDX;< zhUqUf;OON&XgDEm>8G*Hh@NM^i2IMqN&X|Y-@zX`b)F?b*X7|5-+R4e2ggXQJuf>N z`RYxGg>INQEJo0)?qgW!RH&`%Hy~;YX+1eat)SpI^1cOh z`Ar7LK#viYQzoGgi1j>|@vne+F$nSB*AS*!eCd$zO8lmc$9UPSMQ-_VI zDTcqN5w{?6?EUS}k^c%@UX?4w#u|Ou#M^e zm^ZG17K;$VGSKjpy!=OQZ)r=V@Xi;KR%otReRg^?olMsKm!a2V@Hk* zbd2NNhj!;s@L({soc>H8zfrO&Ezd+*C)*jn>*Khy8Lf-9-3D-On2W`NAb%sqHl6lL zNuU!!kwBIPsTU7Gq5VcCOGzU1IvRD;pc46bQBeFD1C?N@);YJDDS^S%eY+r?f+ODm z*_z}5!mgzUtGLFOvz%1()Ol{z4iUKd&ieJMQwGC^Y0Tjgn6H1)d+*-VrJ}5*6E}Jt zyx^jB7HO^@(?TJ*|HF)|t&J-IbQgbbJkx$-XB4QXZ9LgHpAp(=rwoi`6$#l89Vz}a ze9HVS%(WO67bV5Sji1Be&BcbB`?fS4SkiY7j3onj zV_tqI%2#0(bJ)SxIlFOSYIzX!DOyAP#^G6hC|BQN=LIed4f}W_WdhYgT&PwpD4?#5 zL5ASs9tcd;gfe+ODzMJT$Zj1#+@?wecMW8~13>=0=@0=$#;7m&Aa~RZDs{23|AGj5 zKV4*bx2!%d$QDo?vCJRY1bch1k@hG*9BK4*Fxa&BeMsY6EPucK>iSHzI`S9G?s10$ zu$$qBi73DR-bx4MH~JEw$n=|^wnYD!Uh|x1R#!ATY)0Ht`2CzK0sar%lR@Ss36zP| z>M0Pz{>i^V&zg4{3xcco)Z4@wnRpBtr%Nh>No*fc|1thXX2yr6#X631IJv-&le&Kt z_Qoa3j)codvp2O7bbhyMtLA}i-xRmL4$ET=;u@jR(ELxr&g1UJ3pi+>8K;XIOd#?n zWU1~F7Sh)m^!KixOnrqJAJ)<8qb2b{6>3X%vQ1aLH%_B~fY&#V#-yms(hiXiI*Vzj zkpjY#sIT|FsB3~6Ibnzh{tlA4YzGYCfGMH>%<3Fl@nMKMp$1P+X_>TRozjV`vwqu` zw4<@52Ckg&`Wp$x$J8f1BmNvOZQ5$LipnA+KHiYuZ-z>{V?RxP1G5px0H5QTFpPMI z2*L3R!pJUM8&mD*k_!(1!dl-w8|3Isv>UK^z5kQ}uu2MI@kYUT7yGXMEcdT`p(3)= zt6+;-x$2mRxBi^N6@Y>%ckW?b?Eg8m;K0JZp|=6lrHIwRezZSFK^b{Ix)|NCrJ3~r z1hEdk_qM}P(<3AR{XY_RJ36Ie-24S9A->)})0KTmrO8KBanZK-{{?6PvN_7uua@e% zDVE$>-{6tVz z6$F5^G=+WG9my7Yp|m|~MrPvCJ@q<>JRUp=Kg3EY#(;f`Bn2W?wv0)Uz&p8+K?yUr&c(qhfw5LgOI&FIFtl1FO-f-aj>k=)nK1fZ(Y7& zi&eSP;NYBT_cUvtjZ(P#`d}*c>xoAcgABi5F^P73%~q*$Pw=y~CMV=dX1;2Bk8m*8 z)CTU~yYkm~t?XQsJGsx6>iV*(l@2Aa@DZXZhl_0rr0{yB5bPBx2&@MgMx0}rQ87r& zXxTs(!vpIo9|Px8A?ZrzpTW7bZZ@U+$x>%=l)u!{cph?JJuuUxB z_@x9)Vkj6Y|Dlbd2diR|2tDiD(ojm-60NwR*t!5r?I9w@Wi{$gax*yn&BxgxNSp}Z z3^k~FiSs;;_0y!T7GScF2Bwq7NdHe?R*Cvh%lVxZ^1X2s;QLod2`BDOa0Np>=4{(z%gZ~?N5IVfFN1M*JSshf0ed!%=I3c^cphGcQoxg88|b{Mtog>LfqD7(59V3!xX z$j3t`PX5*mJmHy^rlF#Lrv|mcG&pF}%K?HNJf#wH^KONP(d#F>OF7wPdgEV3Vp?tu zIkiuO$*Dy>tGUHhC8n{e*bd?XEU=O6vbMiQHUZ2Yak&&!eEOde>*YG@f6wn2TI1Ao zk(I)3FuUi96gYLWKmHTmbX;1W!H92rcAMIo?P~#Onb1^*g%h1JX~el(05qx&oeYg!85rZFN%vb(M3XB+T! zB{t=dNBIC$NIHt1M`I1-n#ofQ)^Hf&U=If&FrDqr-7|Sl3@;>!2TMJR4RZp4Bx>TY z^``WL53NZd!LL5-&gFlUTOW?k^_ie#bW##{KE9msyECcXiuBfR&tV$jv$&i?bN9`0 z+Tl5jRWIKPi*!3heW|nWpIf5uqLw7=6D`v(ixs-N3>rqA)24xzO7?vBQZ5N2FoM`q zZ;iHd8>8w}(Uz>32*%?hr>^v@;N9>$r#c3MUppU4?d5AZfeKfnq@~V9HFh46%`F(w zSZyIu&)hG6FD)r3$}ER_K3w5jP;TsJ){hCz^FqKZ!aqkzL(YGbKw(aM4z*%Br2GnX zUjhes-y_^4E`8LWV<6NFrzM-d6hH4)888>C_y6rAHj_bMXe4sV*iJBJf1}=AHeqO# z7F*S#P+6%KC5uuLBodhDE#%hZ;6gZrFWdF4oV;-jMJaLp`&B7<_$}ZOuW&PsB_b*P%;g!+NR5_!&m>zsdT2DCt&>t_939^-L_WT!kH2P_d;4ZkT zI?8-u59CwaZJhAu>85PP9py9vEXu8=G~{S!CQFBLo_DPpvp;PYEqpDiVuc9}EqE4+ z*bV@kQI(=u&dqfr)Cxl*glP2N7$7(%JZaR^Zo>EX=P&N5abeh45Tj*i!dtQ?5`3t1 z@YVFx(N_T4vD=+>i#WLL&@A7bRqG=Un-Wm|OCsfq%G-m_>cyb&t^25|l4f#lY7)KqsA+N`maO$Xzu^75n8;1a%#(BILn zF%u_5$jkydvI=zBbm8tP)E}4tTlF-i(@cr&y-rPQWK9E(P*h<#$oA}I6M8>Tk$$U03t=$G98$$rS8ll*mbMS5x2Z+&tfhd1zITAY** zz%n=LL&v#=Kg=p7rY-%F7Hu$J7?H%RlR${AFP-z{y0iTmkr`9oV$UkW7IqOSj2Qhg zNO_`1=@~oA%m^S>|J2RMzp9+ZrTsQmEc^uE#q2IaCmw#HpsS;>+<8~|6kbnPw7kth za>kqjT{jr74& z{ug=Glg?Iqam&JRvjdDkZtWy zkkH>}&|G2UtJv^MFH4_#{J>)27~&Pr%U6@jxH5<Cpp-QyM;KY{9qiKW-> z_(hT%-;t+ydsDknA5!F;O^vgrH$;SLBA_z&EiLj|;Z?zpK%7hqJPozV9s-2|X83fl z)g@h!oXpbs??O+ee+LVkJe0rLnPi8tdK+$`+?3qugoh+ToLL6pU03)EA+0z*TngC9 zTaFva9Ic$U8rGC|lJ7;o=R~Zt$=@3S>dC!l7li>WL~?;ym}yCu!Js1BUSWm)NgGQ# z7Kl4ZuPO$N`=hb@dtBJi+-bKosaHjdAv%bISA;e2wV_hLD}?8N?WQ}pF}MX9{YfGq zSQd<3e#rbcY54wo&F} z)nnGFsJzMh*Ht4idF(+zA+SgI zrQQ)hh1gd4b1^v6kBH?Z@AY4j!{8pRx@sn&DZ5b&wBpOhr0PJ%m*hC2L2$xsUf9#N z5Z!|$oF4`YdNu2~YD*-kStK!JCy2LCm;==2PF}YY14G{KJ{=ApfC9jMA|Q4~mixH< z!4<#K2nJgCD73#luz?4)H&MsN6H*AY8Mdk?ZU8E^VbSfW%M-U5Oc8GHkf*0xwwM|e zAQe#NjR`Oir#{c}3_!3QTYv#>Qs(_q@@x9Q;!-zfi$k(+`t3y5IPS@!~v3&{(lcw8bG}a zj%8yP0QFp*rs~el)B%e^=B>W^G9VDs?0{F(1O9c-#PDU`mA6I3>bFz@*wZg5 z$X=pq~M`g!(xqqly*KOTz47pg8lRSFa@ui=t-aOBHS+-9YLqWHQiAvD( zeJ4Z<%fR98yuTlwY3~Se|3h?hcD}#bTd?~f`0v_*M_Jg_tr!r;@qNKgu(W?H>cd6V z@9c5ew%9z=(_1ktGvdQl{!NcztCs|@eN6IKJ6Lr?g;n0z@M*pmxX}$)Jr`KLCrOvT zRj{vLHMWKPIqq;%xus7LZ!R@!s+$f{TW%HD?D;&fbAqmV3A#Bb~TL$xr>aSWXp6ZS$nwdJcMoT~$$Z!r`X z7k#I!4zRfui4*m=1p)P=#)pvmL^11hc%YIuu3|5Pe-gz3NfvWmk!b{&y{Z#*Nzp)i zxx0V-FM?x#KYyroN&JT|cTez0WN>%m55NIETAkf!6_I--&Lon-aI8Wf31*M`vI;^X zI{b9+CS$r684!QJ>9S?^k`r>OzwRnOyUoSKFs>&C2(;V%9`X@vIsrUetv0*XTj^XW z*3}xPkbBBa3BM5u^00cH>%RQP0Sr8S;TwJY991ZpNY2*!wjxye0o_mkFu(aAd(~_u z|A0AOt73KBeu3@O8tmx@@H&~mC3_EXy=ZCAp*Plr%l<1PX^Ble9d%?!8((|?3~GGF zESX;Gh|#dlyU01e>e$QqNTz?+E$PmZIWGN47 zvb?dKd->WIzXB6TQoMH@TnI27)qniF#gD2y#_7u~q<ifW}! z0p95Mo9%)GfYpr>fBjn}2}*Fa+^UQxjcb@*?Qj+W-0~SZZypRFKfO4oCnw7z@3l(& zWO~6`kgRG|uR>q-(^>tR!FEMTO^5mR<>4eIz&q+vIx)3cW0}SEG$HU8mdrbB8hK!9 zl{Y=3Ql~A4$F~A^6xGrbuHXV;Q?EP>7PZ`ZSz(vJ8}wt-lG_FV{N%FfyThq7uM{a1 zl7HP>9t~vU1<}~Kld5)=eEOmDn0oW#|8aWs-ed32;5AK#0}iM;DbGE$3|hA`>8RtK zjZPd)>I72?g~Hsjp0HNxKyWTy{vRFTbC{k`Y;4@00SDHE2aVIz_y`_+7!Iu&4v~n3 zEv=`awl0!%Wli*-?I{axq&b^vf)I;q)5KgN3rvia&kY-Z?m7XAptX{n~oa*F^%gyJ{nupRttE-Js9RMCCn@? zC!@hfoU$2i0c_qy7N?VXp9pnAWibz&!kC*)06|a%YB_ealp?({@RpVl*uv=LqzI6A z=h>*rl!1I=F)=_>vpJvCGUYUcWBd^-z}2_>`c|g+Ewu)&W)4fy!H>(%9u3j^<_u@Sy9%{m(g}8!aeJM=+DW zQv^U>y>t6OQ|aX+Ig|aexlb{R7%!K}FJ|j#tuC$INY`VB|19MLYDwVY-*6PYC8nZA zMI6e7+=u$6pOk}~sOsq1~oA$9m2mXmF&WgS9y`L^*oEA%cm6!sP###+=!d`mlM}lgp~S30jKi>nxgCKDr#J{k?*}uK=wrdr zlQ6~5ezt|mxNb3%XEmNQpUOUgm8|Emx1mAQI#zJ}Lla`SZd0+D7|m&fS({(+6k!M_ z{9Znd;|@$Ro@5*Hn2x)f56H`cYavevwXsy{P^cJ-U)FH+Dl`5KT}saL{e~W{g)}lx zl(2Fo81icF6Z{B$8b z5Q?OSVE_M2V?mt8P_lQ39JHCIT#`Ok%vTGc!1q%+6 zs1#xt&k7NI6jabU4HqExokp3O$w+raX{yh!QtRq_(Tv92%)@`aT_|FLq4Ug{-e9zw#lUQhfKdGbByc8+@S-MLOm46i43L4&# z2`DBG^gq|^5o3Qr8PSbO!5n#@IOd3KVV!5=4sYutK9je;Z>cjs_ z(gGh!Zjk4{Ip{nbJ@NClH0&0#L62~tKJA$te~se(sUX%JN4O^c@1F+kZC8AXtY)Qg zBk%IptP~aWxK8bCg!IUB2`O~>F~KMH$ItkT4L!xW?us38HqXfS+Bn}7nqe#7WJGi;@}b{tE-K7osk{1 zJ7#$sFe^@wc3F_oCasJZlq4$a^@jtT=6BpZrhfmsI+hd7^lEyGl|uV^(X!(%dAyIW zcS}&TH|dEP(9!g8Gmjf}9m>n@`q*R+ zC?b_@6quQ?o-CEumN=w@Z)&cE=(AzoD97p{rpc54++U56Per**(&((YjCbK9#Q!CP zw0nnr7c1CwnKbRZDuo=90CB`j>v;9xO8job@vr!!jza*KWPbxFEg31Pt_wXrM9->604f+W`A*Us?PsezTZC+WeGkqQtO)rDLYN`a)j;~w z@wmUwid+3mWyzR3;_!v*UTQ=!Ble^%A3l+E+gH{mwvMN!o-N2&I!1_$f3w#f!W_zHvO~so;&kc@>h06mtiZleR4%VJ;-L> zQJ{XGl?1a5_g+L13p^0vb&FX!7Z&Z?Q?+SD2E<et>57 z5#~;BYF}J4>81JJj~22y%&|~se9%lZxslO5{=CO}$Sm+pq6KwGc~4q!#H?fT>6Pk% z?AhO_=6F{Z1c1ayoiB7=>q<-LTiNlV;sz=bGi+GzF|dak87{h){9%Z@bev2$Cb$w8 z{bHUku+13;n>hN#D}YNs8clIBZ6}{&Qr(=B&Hy;Lh*-NdBkA)XGX2Eon4p z=$X{cqA0=gsUajnfTNTB$>DH{CYPo`s^FznfG!%lR!hGY`;+#4{aN)sN+lj14>gAi`GSw?Xl^K70^ibAua2%>;i0apMtf_Nj|5#6`dT z3CJdo4Eyx}_3jA4xfBi~5g7iR8acVLnXPk)V)b7VZQ*!RLaardueFuz=RzNZCmjGk z(7l#QOL^A_*|Mb4RqTPQ1ip)rJT>g{n8#Z|BO(f{N%y~fs|#P zu!$MW|H)d}oiF~o7MA&VhFY_1P2_-;@a?1peN!5{%iKE8oU2-X;;B&cywrqr5b+za z&1xLI0VtT6!=K!x$uLYdUrATz2NEUkjsft^O~VV+9rgRjF4bTTrRIk@FNfO^pDuC9KmRBr)o-^EDpvOeDDICQ6@ zt6TKH6lI;*?aKu-r0N-Gsw^qtN~ZH6cw16+z7mC7!ME_8Y$f7B3Q3hZ?I)~jI-L$z zMe*-NzNjg}YY>N;X+xHV)d1*k|D&O8z@WQh!U*Z4Qc@wod&j^nMV(qzL!iUg=zo9M5|f(z2Nzv4{lLfBB2@I&q3rm#3|oyI)usS^S4Jf=jw-diY53uPq=ce(1B)KUep&(l8;B5M zX-ye3Jl#v9dCiWM>EjhsHX9l2+KH5#>fw*WgJzWhh?F}{MFoUbJvETcuRUnwV5HmU z;P1##4|Lr4t}!jXiD;U@dGcw|<$KEjX^UQ=b-W4px3D5LS({OiL zzx4_QztX4bAAQBD(v+4L&tal8vB8505a?N>j|qtohixTJ2d%FJPDwB4U1)@3o+G2s zVajpf`U6Ex>6g8oHb?qxNk@yXzg{8TL=4}Sf4`w;TsFDdj;m5gS)74aiZ(@$4ar)35x167GxDmgEu|{+HKVV!HWg5(k zkYa4zMMu)AYMKc4=2`V{TYj&Pc89B+d4%xOa?Iznt<_lzZbXyJThojy3}P(H-iz1( z-yX5%#YDAx?b5U7Lrb>iID2sF63Ooheuj$PurLNJzIviT*vDv*ZKMS_SdJ($Zid4F z;gInS)s8?n!qFUZ?W@(zH$9cP(Q@qhDzU0{Nhv6n_ku8*-jNjZZipYB^$<0SQouRZ z_jl8gxkJw|^7)t)>+4^?!APGZ=@zklTK6fS^Om@qNyIl!czd-Lakg;unO<*B@L6gCp^4`t^v`V zY!Jlq&YtzDZYaIbKHr0?=@_??Mc5BLi4h7 zbPooar7s@7W@}R7lEWt3>prA**XP#u#%&ab0X2!u!iXFxZ}V2vJU&;Hs2{E@2;o2e3}u^D zSPQ%sn&(axU7~zFH7xGsSV0rs%!Uv9ucL$)cJLE~ofj|wO2uj*3l|a`klM%lY48!H zEjj!RDRai0AJ@9Sg?~)ieyWfyUUMkI2zYzUiU&ioHp!)9lt8@w^Yre)?;-=QL;2Ib zyeJ^%`6hmeD@BtK!#hann%cq!c|x&QN0}%YCk=tU&x3Sv3)45)hZ`4RowUpfk0e^` zgHdnfmPk4P0_Pb#=E|QBa?YNVmWlywNHsb`3G+wl5U`U8nlxJE1XK<(y_es!j0|}B zz=;(7_Xz6lZEbZK0za7=8_~e+je`MO@Xcwu!)d=w`R*~T#W&ZXeg^IL^{z8xc-8ue zY{B=ZkmPMC{#W-7HOJ=L0_%2%WiO6e2`3)cPb0VKZ$>q<>uEc7RVMIsp7?^nEQ-|| zj9C!_6g8aCVS;jyjknH5zfDo*{HF2+ZmB_>aR|bkl!+3rF-sGQ{@hG*$f6n7!XPN< zP>%Svdw#R1Iym(rYCI-NdcM=S-~|T_tzCZ=t{u|AW%i9~D~<486EKTX97{GJ;R7UvSYGCz9|58U|_w zJ}t?E_CV99N57C~I>cq>XaEcFU(jxU>MzCM9`CntS`szHu-$U(m;7xUr$3XmfWPkp zjdMQ?mj`ojHbuGrxqjZ}B*K43KlUk>>|9uMK-2s`Okyts9i?So!~FvQVSE+-bjknv|IKu0j#TzJVga|JA%l8YfFYM5%)y~rZ^lX5x&xysRUd1*Omt0hJ zgJ8f(0Z=K)ecmp{UFU(mh7XIF+ydqqGsxO>hT$Arm5EWkF+0Y4rnsgNsBV5<5sb#I z&(fqoC)0eh z+36h`&lXi^H-;>G=Jv%3y1lvCGHm>DOh9pf8E)=3Q@K4XU8b200At7N+}Fsw|L9EV zxwUDT(XvY<*Xa&`jrYLPo~RqM*EZgfc@Sggu?I`(QA%OMw;{GYTFK4?`o@Z?XE|rG z;`aRemy4w&lF`NzE03kJ|>xd)7te#6| z55Q)Y?SJ)@eE7IwpKe=|iZ5c(_2%(LPYurT*IB*C=q%4Jo$~TD5Uv>q>|uVq@jDD! zmhJMHA?wDXl~c!=z%fWVi=1P1u-CSt4$En&fMs9nb|`DBW8oQFo3GObQUE^*sZ%83 zZ3d4#oS1*yH9Lt&zg7CQKz=G1HS{H$&1ww0Cd(JZ;u7p(DQo+sZjpu@7|zY~dm>;) z(N}^2I1t_3qlK_GQ=cOZsQ!|sF7ei_(!z@GGH(|WT?&xUwsbgWM*U#kYK=|u=iQw2 zVGJD-NEt5x5brqjG_7J4*k4p$_6=^q*1)&p z7+!lVW4}X(AY(HJv{IAS&;SOCIpITNVLTh}SO!{8DuEw)*e{+@r{rXM?S1duI*DSU zz-XBH8BXwO@#5<=LAM+rfvz&cr5)?> ztN1FXw5N^0U`pc`SpOAw-AS>|Qy2`zf@vI(!$HI*@Vo> z0A1Sc^G(wrXo<)s76Oi*Rg{AR!^r^tqGq1BFS8API-2F{n%yWd4n5s;K)#cPJ?|)a zVwQ!lWT{;KA|x0{S0U!5fRv4eVOO}?PekD~DbpPW%%Et=3HI1f+RiyJIZh7%?2`=x z@NS!Vs4y3IQ>_Vd)DtB{po5Ys4PnS55@29%^w*dX(cwd5K#H=yVwS}GRAtybJ$@=g z9dCXx#R_ux0jgK`1t6e6d-dXxW!4xP{W&11ZybQ}_{a{G`1*qI5nM_ta zyc-&yxY4`}mh&9Gm?12ORWi>DP9}!0uQd&1|M}=;3+ z7B#5B`dSMwLi#+q`Xnto-J~&MM@10uq_~{hVI_bXx=luK?~Ue0$2k`;@S<*@T_#*O z9JAAiA+B-miH9LPxZ1?%O5FI(NBm$_y@s%o9}$mh_H`{fO5TR%ik^#nSWD5}o@Mg| zzRno*OU}ttd0j-1Ct#guew#^OXF0uN3VXp+YI{xzy{c0dX(uIJyy~<%SkLw&XwdqU z?eydedAreXRVG1t5-3VezEeaV0&S@>*N>G8Wf5p)`2^W&?%k(Hoy?Mv)5qAtM^u?i zDj1`ev>ST?^(ly^=bH{=OmFdyj3h_KE zAZ+@S?JeA5R0&oXo%bgrz(9qcRai%oCe~*iqKCWRYs*cq;Gy1sV}ochSeUnduaV`o zX>jhX|ECx*ez7q?w3QGgk@n)?u_$Z(sbLFF^jDQVM%9I(WU?n;@cuA>hl!wn?RCr8v=%har*5^p0n$HcJjQWOs{VT*Sat$o*GiAQ6zazM z8}M#%&SV%Nme5Y^I;!5m{_PD*DrV%2%Ij_!e7Qlk&>KFrE$*60|Yo|@Ys5#=+2G})o(^cwyswkT`%?2 zO+;ptQGMl$crz%Qzn&={Kszs|}+;xpQ*(C6rBmgTBF_c^? z#!yjdh?)gM^|_dDTyh6EW?7q-&EX22Y^~HZEVxT1m$l*2UEX-CXWH}qgB%n!_t%Qc zMcz7Dk$6A}HzoKT!X1>TA$);dujxgmK>^+GZ?w^?!YP{ihuvO%^HhlUt}Hnm%9uSAsZ>lFPwBB>J0BHtf~=JZ_POFxXn zZo6x_BduC zvE}!HekjD)*fa68PEAvH^6U|*IS_VA^O*L%_!dQEXE0BUt;M7BvK>#{wm(h?u`*y{ zS_w4yb&TNp%=Ag(Khnq7t!9g$@N%xJ%FI`KQEi+n&r!kH2-@;9TaVA+t)g^e>i6;F zUq+BjUXWd_PEVAQCs#Y2w;5%6s>(=&G%v3>-Th2Ocq;WhK`=dpy^w9*ZCOX|&sDo7 zD0~U8?;n!Rk^A5F7wIV?&r9~SDe_)#a{*KE z?E9@xEQQ^jCP4x%L7$q!ziYEVsV|3dDogbu7s>HZj?&7924Ij0|o0!1hnX%M& zIL^QnPlZo2&01VfcOt|D7=_~HI?uyFXSTR4^u3+X8+XFGrP|jLv@iy|S#@0pExt;O ztqI6Pf3Wm4sYR&P9T_5#U6nTK?F#3{DPH{h2sC-vn?O89jwvITa()6g^oUw+Ze*dX%foo@~Y5b6~ z#7ew8~9$TTnK=n}d4!E|)D)q%V zs+D_FxvHUQ%)~iY!FH<%9u4n@Rke~ePB+j-ouw!&!pOD0qwRd|)I8_Vac+yGYv>yy zg`~v!GkZ(jy38eFOnYerjpTSE1_Lm`uUp{R^UJ8eCmf0Og-5nW?bXZdiK#31>=+lC ziFhtFLmg6?Toantr;c5>kKsz6S-@4cTza2yIxPuv^wOi1proB#*RK_4qRUIGP}Gzo5q>=6fH7A1@8}RBx~s7rGBs zg8rog<3l%v3R5*xD-A|kE?(Rcy_!IbeT4Xw6EnO%BXscS{m6BN)t@mlq+{xr_CYj_ zT;Sjy*7q$h8#gV^!_YmUEhK4`hg|ObI%}9_qD7Jt2$&$C%5`OE|3y8I=a?A&`)^?C z1$yW7U%zIus63PfdCp}_#g>jv1{Vw#=By+8XBbH&#)|-W$|r-s!dE=Q>#Se4yXUL_ zlx{?b(Uk@&&Xd1^>gutW3RNbzciGol6XJjw@VCq(H#bataeY<`K~C)!t&1loHP=ZO z%Yau9`J`ZfX0WWq#`i4(!e2n(;Tp@gMtQX1Aqr6{=z-*8F;*C#sbPL^rof<&(WVZL}L8!jia z8lZmPp9qC2{eADLympYpdA6g54f&BFBF9y75H?)ahQ?#$DjF=wuA~>Jw zr2n7oFS_mHxIaRXizW=jsm58u zEH~A=^0lzD(0oKdgP7iJ?sHRg1ey0n#AJ4QQTO^vplDiBz3a#h(6s~=Z@tA8r|Uq~ zH_|0(f_`cb5%_yM@CB}6(GGbTBP90mm;Bd1<&>)(-)_V+p{g2UfoTU@)pWgCg|GQ~ z&3zu!Z+*_nMRk3?EDJ9L&XNf6V{mMO@ zN8k(4kMR#ipSyyvI;Ya++(^D$8zs1sA`Hl*J&plYQZ!sg zxb^7|!$3N&GydTaDQ%Z3w9ZeGv}0E3vZhEnvKU=>LFGNz}9$A;+sCLze|R)Fn-vg(wf6Ns@{UjiW#(gl;5M{s$rb2p(t1e>2jDlMLn)et z;0sFmp>Vqw!`d^-LGV#$ha`}!#Z3Xzt9zj42p8}9c46#rL^Hs(EA03WKR}8xWV`lO z;tnn_`_%{$JiDdz^JN1O0+$(-XQY^=#yNpDfHdoQ0GvKZE9{5zxoI!`Q}@`aFlK=7 z__VxSh=+NoxPBCgEg_%>M#j%!4kxtuFv^c{^_>K^WYO#&Z^yjL{|0dN=_AI6F=_di zYnKVC_~ipwiW+u;i&Bz{{;k)?NK!vMT>{r%f=FSX>fEo(Q?cQ=uifY0)#kZzvG!ZE zego76^%2Vi`P=?U5cd0pI85-uKKZ2>b6p#utp7M1n}-9;RnT!lI8~ zI4bf9aQ9#x#(&=cY&-eLXNTm}e*8B)#6xE1WiN!w&;&>~@14D5lnjNCa<$f>EEFkx!be~06)F3RWhk|Jy`uc?M$8N-D-IJrsDPJ{ z7k5>p5XFI$tP&Z}2b|NhMv1O-G03?wC+H282V5rZW2UNfwnH~Z=He;z!bD8E0rRTq zYO%R|`#c`~Ub(H;pGsc94m4GU^@1&B1qrPq*{A0|=>d2E&?|R-Qq@ZqE%!@%qL04# zHF}`{sICX1sT07+H2#7#AUoip;1i-LCZ$maeSpHS@p>a2_J>a$PHzppuaW)3+y%%F zkE6tb&y{4SOF1a432VMUV#%Q}FAiznnb~+4$40G3WOdWVf8~VZn_6YP0r+&9sPl-t zRmiCpUe86uZ;CY$f5v$U98lYNbGojv98vM729Mwc4)EoVU=?0+QXk-Qtozxx*AS%U1wg3}vy0F&5uA>=cmZaejrk)iwxZ1IK?`U&L&I#k*u@!voSCzPW~4M%TUe5x8U5lzRLip*ljU9=;gT+XQ!B5kJ2a~a$1Sh)5abK9 zu^X(}Z9cw&8nQGVrbpPU0zvO9P!tmz+t@gUa>e75ohQq|Ja1p+)~8@B&JI=5EXQq?)unthf_Y$PGX8 zOXOL6;g86W3iAnKjELlep&qdwAUMIT@cxqT1yn09ICRW8a;uE~qi?nn=TG8c2mnn! zbuahVYgoM;Djoi-Q!pIl>h^E=ucX|cCFLDH9`zKTzjl4Abri){xunUC==2^$teNkiW@ljuiNIhU7Z)VrOO-rsY2de* zgLiGz&hJ`dK7*(r@;@*Tt5-?Y46u!@#^CS-MLp?(C>>SlyeO@t7h=GM(tgth4a}1tkN3=9nFp9{%?ew%Z0N{r_gIkBx+T%V(LzL) z^ocP6(LujaHOWgH-k7xpDygX~y@!AaAOe~dMve(NZl|Hw9v0RTDiDC9?hx$844_CyArQ@MKqjuh&*_n3G{S&*m zXaNq4%_IUTjRpVlaqF|dkECT66`lB;g7XWoB)x(7W zIv*8(k1Ubyzh2Ize4kz1{j;5);Me0|j(&Mk)613G#Jdg9S|1xGn1vef-6m8#nJ|g5 zL1yz0oeWT6qEoToT&u0F2QYYq_q||j3fN^KX1hx|5jJ;iitb6p6g{Vx3FyYdxHuhL zXW;((=YodQ>J^s5uiEU0wNUb_)wEYzCN~3e=~IAi<|nlbYaXvl4SLzHmH7xQJZ}Hq zDIK#~EqrpM1O0rX*QaHKRv_QwmnsDJWou)|pG4MolTTX3!Z7Uv%mBKeG0=VtTg3G@ z6a=Z`3xj5Y_&FzR`|dRaXJ8Np-?^CrWYoXWjr-0kSG8V%f#AL>_N6NC&4t6hNkHIGdxhF(O9ya_tQ%+zB-HFGq1 z5xR|U_YA(65CB-zTflUIF#7+v`W1&iiIKy$L$j$qki%v_D6=z`y2qXRWmBS#!MeDj zGOjd;eP~g9SFMEV3!MjhNi&8)jMnPMu9rr?FEUGcVDlkhvJ}K;U4FGhUM;J-&ux-l zS>cIaXiQtMZE*|l6U%$?Fd4E^ROd?#;vf7JPR8Zfwe|jkH9k*cARaRK)MX>w@A(n# zR1C^KLBA=Ejeg`t1W0$sAz$9-fY)$tOmTt2_aSUZm9|=S%GG$`{GVP zH#%k?^E+p%=-f{uvR9(Qg@mwA>}ak9J!A=|d1V29Xs0`eY{nP5=rC&{Q2PTJ2Ufji z$dFx&es{-u0^f>%`?{EKU-W24{zgaIMn}feZCbf%Ju607`FrxTo~RTizrBD~ zg;M?++#zwEGkzN0=#`93Eo~)-(U9^nvcEqdI4G|2>j~y zedy5xSd@T;^@0i<*|WVZAIr;Ak?h_PbI{LNEF$x702IQOrfP_<*j8nYUgzP&tW^1i z^u!XDGW$2F1_L<*UG(2{7`1wHGO>*~t)BqZYyr5cD8Kq*qxHY!q2rW-3Cwwd z3#k!j;O%Vm+s)nA&v&yI@2Ee&>-NIxEH@O#{m}RcEi9|2HdZ7XonPzD275r?ikFTD z0*yK?k!OWId=OF{Vma8pA-x$(SQa)kP)J@|tZUM`jCh@}2Dr1qCR?Q8l8{D(V18V`yV2hi3p_p0%|I3kA7Kk>Y2t zM-0=HAHebdYGdH@J8N3d=8}!WN|F=8g}s-RRW|qTg1E&hKztNA>nv5qWI^utGx}> z!6-UhCLw^r9*NWK@1I9HjW{uDHcVoPp()qK8i3xEy>!sSe6V7GBSkuZqZF`|ddD}Q zZajpP$jkXvv6I79eY608OZd1mik(7uiGaB{#q4~-S!>8k0x(#8p{66|>JG}=uPAS( z?*oA!!>dMxVQjddA}FqW10i6Spl}U}zZ`N%5J<@8Fd^NW2}%(xtk3O%M$RkM0vbDwH`;j zXrO?3aG#U+0l-pr-$6`qv?9)(i!wQe|G-u(?DY$J$uBne#x0vBk-=yfxYX(WVsNk`-=?T88ov!~ zl;$RAPEBeS5ES%$Z)KVihhQiLZ1!|Kk$i|l7#6N%*Z{-K&0+=l1owCYa_(!0Yv0~l zz1{%~NPUUmz!})!(swcD0~K}ihB){3pE!;$NMrxKN6dtHliA`A6bC)-pJ)9Bb{Pi* zB5TNwv*(;p^r9HM9ivKr>o&c!D+$1)KZK91{h~9khUWzsN3%MZlInI zg`y6wP|)tb!?)`2lcE(a-TwY+<9snPR9-V$R-k^%gPiNW7s$|e;@aGowzI6khHWl@ zvB}%OU?GWztEdtQ3ORT-T;q>C1+cuB9g{E z!0E+j&ecD5K@$OV&+8ywQbue614EhbcroV^x`?s=-eP3iXHj`yj0QcOmlp8-e^&pw z`XGGu-}$=D=+G$lg;a@kN`p%#E15(xYUtNM>GycB-@quw?09+?;?LaQ3rzIjjM7Er zWbK^!`6ImV;cY^QF$^74D^|cucJ^=j&w4+5=g3H*3vD-(MyK$I7qF*ls>G9JD+Dh0 z7nq11=;aSq9%1;&AA&pi!&RNxh{o789E?aw*%!Z!v7s|3iI*TWSI4+IY$-;NJl&}e z{<{;OLxdp5IN$65Q8ExN(*J9rNBJSVdayH0| zzfQl}y+DM$tNGo(QIdFe@}cwM+jEhH$Rwq|ZH?heoHF7& z|R}N5Ip?MYRPkgm0E3Z=YfCo!F|tLOp|lh6X4-&CtXer8zyN&WCM*2l>D0) zi(*7}CAc_Y(*b%59P$n$2PiE9HlRQApK&9mu3m+r>+xhi7@*)zBQiF)P0t$!uu$m; z)UpUZrL97bqvaj5HPeVOgNM5XMa@h%9r=3uhdjEajNkGxzt$8NbM_@FozWE^)6G-5 zP7kLs`pbYf;B$aoPE4d@J`0)i`Nuka2iut_Nc@lJmt_$;${1~82-l0!sqT=-d=D;j z77LwZMVt*$5-*1)d`m zR{&<~29L(PaO<`{jSjycM%z3Z3oML^J5R`%U{=D-4kekOd)CRP zzol?8OG{0q&xS7Q<^R$?h;SO5p%Rn&N{+&*m|>@L z``)k6LJX-m^QXPF$~u0A|C`GagUQ?rtH-0JfTr9xmB2jDi#&hfx3;G$`J|Z6x!19I zL?2sFi+_q6PQIhaf#R(` z08)e!IWGK}TqBzSh{NKt`I#S8b@UZE)zI1+^$&Tw0MyxPuis zF~bozVPVs>Ar6&`n=s)+19@*9l0AUBGJfS`@g3afIl zy>+EWi@gg(4gnz_iWS%STTv+5R$TMZk?CrpP=hi0)A{Kr-+&v(xQ-%jTUbzujZF8? z%^#|43h;-!%U1zvk|?mHMi!SJZT5S%f?ljnW*y=Z9{UOEUtH~2M-z;|Nbe-Z;efnA zIr`z4fKk%V@!v*;=`sNm9!Yy{F{KU{E8&R5KO)cq`b4&DSd@1BokM{N!yTnc*hq`cD^HWj?&ANJ{Xtra7W_Z>$( zS_0PfR%yn&SkTn1yNHWkW-EW(ZXe8-E6MeIx>=E<_H(Z@J_AUxR{UT;a_|!DZ^3N0 zd5Nl41=Y1_U*WfoqoxmHOJP3kG3?M^C4~82#Dg}p-BdRQv~IHz`4sfIVH*D; zwv1yu4i{EfabP8Cu;%2@u-7_8CvL7-t8i-+EKQ5 z{@P&n>zd-9!7b`{Ov2n$3BmN@MWR-~ceE)WhE>?i6PBo+i5mK5l&AnSjt+~A`&T_zA0~E|Tmb#XHwv7V?bu@_1+d(|d_F)Gs z=w9y_Seu#Lq+{BTuV_|~^g|VaaTz1C*B5AHvo3&LhIx=($YsjW^MDl+mH;{bS^N5-@JIHIv z%_(E!zRZgax#+a}41n4XgM$!8`@ty!o&)1$15@oT8{^ZolQp~1U{*BMcQIV6_7mbn zLNh%X)3lmAqGeb^4osAiJ=r(svdPzLx6=n=@{{0A=Bf?aQ@K%-fVto2Qco{mhkUSJ z&tLsb20+f=bj;{%%|U9D{naDs&HvQ9*3+NK_3Is$b~c^#t-iEb2S`s*AJ1dacvqa% zQ59AUyBu4RgjDj|T7F{~-djM${8%Nt0x=GX%q0e-6yQ%8Cp#cd^!SKyfa@?jpsOEa z%I3Ee(nTlPqL4HhZSr>fQ|d!zIIw428*$UL-$pfT?l+V13pYuPqqYduu{dY z#7{mAW@s4WedjOZ0Cr_N%-E5MG51E9^(ulwa(pnTZ01za)!`Db!VVP0w8|-0Y%LUP zNKa<)vg0{`;%>B8J8A6ozmH#?YPXjDH4{tRtZobr#WxHzVg%5;NK^Z!BqZs$9G~2j z4blZ6j6d8~?eijpT8K5mEJA_vV4ML)wyYgx{62j8=Q}#38A_wqPMR^*5smsVzk9tMWuY4oQ;Z{x0TZw|*-Xq!} zq21HX!wr&=p**!G2(H&I72%6yUAi(BaRnwm#AcCP_PsEg{>MrSsn^h8J=-+3(qO()d3#ZGF6$}iM zZ^Q_sw=-GgU{cBqdzN`L)+UZrRJ{Z6_Yb;F&}4Y|8u09kq)n*!lCZ;sb4VM5dz)%w z0bNQJ;5fOn(Q-z~keZL)OiaV~P&a8Y+Ck7nSgh!?7{PX^KMcHi9Apyr?c$Bny)F;y zb5~VIP|e(e~z0cASZ zwChWkBL;XnS-FZxF82Alt+uwDGxNcT3qe+Y>5f#mkM*k>1bag?>Nc)-gBGx%FQQbv zBp7r1tU*unq@0oTaPDa<*OXD!t*Wfv*=TSL&4~^aHb6tL=ATalABZ|iwH%(LQ`Eg( zMO#DP=~^3SSgJ_;hzH)J_x(U7(DQ{U(TF$7GV>+DCxnoJu$fyZ$z1t&@ydg~c(P#EZTa9wA12u} z#ZNBZ-0%;`OkywuTha&|X8+D%mZe?SjGXjJyo~-xXLJYzgPWt{1-!ICXTU8V!#68S z!=+-CeQ2u zwm$Bto*uUL2{K$(1xI8%N6h>2`&9c=i`>w3b)(RmpF5-S-WD;10ABXdj@TKY zBZkpS*}k4785FlOUY$5e!3@qNYERJwvC^C0-0UWeQ`vIg#lKNTu>V-F>rpjY@kBs9 zs!9TR9ev>s8U2o~Xdw7{iSia>(u4V)yB&k@9f9XyI3K}tSL}iDR&jnLP}-2mm67P;?>M9v+PbsYqn6=cF+CuuGuoc)*D>f#=X)&a zh$WvD1ArQ@eR}T48lp8X6ZAIh{KKvC;ck3nH#-sE3<2$1P|-#lY?kh$8*BxWs_r*8 zZMiWirz83^=MV=WV2jz6Tj})l_!H*iqCb7HWqMxSNiT*fD@Q1gWzIPeooFFqOBCDz zdy-#$EBdUL*U{ZVm95vsYcNpXsmDK~QDqQJKYgDVY`}akPu9pdYY^@S)}!oB9Y;Y} zKMWW}43G|d`la17WZ6gkwxH5?#Q5NFZt!<{*K!*Q&t;6lNhg~N(xj=~M%;)Egjtra z6L~r6U_m^WE#k(kjSW?lU@9UXe+DkBk4=|puJDL{zFn+n0GR0@I^$t;e1Y@AUn>^~ zHxu+07o%%rG1Jr&$_rV6^MfuEpIkrQuKZ#6rB|6< z4=^)ER1ig(VQB@DiFYESt1ysmb$dY%Xr4Q_w@Kop@L?Qitq(N#xB1Mt(O$1>3WDDs z*7}y_F`Iy4x&3))t&M87`VGe|9g1eq;c~q8P*<`ivU~j#ZRb;O;{GO9bMuX-{m<}dYM20KXWD|M)epp! zexv=$uND-@VdEt2`(nfX+(xnI;o$uHtD!jY3ek?Kk?|H(z*zh<`oKzBaGlR5)*!N> znEo83o7;1hFSx5ME&jEM4cwrLE;K06{GOoPe!5}g4Nyi0Y_zjTtvMR(hd6wxR~&rRF*tGgEm8r zf~;pkmr}HR{1crf>MU&*3F6|D(ZCN;khZ#LLxDFS=_>w=Fs|iHHe9fzDEl+`>9iIX z<|i+sOx=Ljc|LRn-?_~7O;DA5pu+>QBo!U@`=5g?Y(+&=vlg0Zc(^S8e*A&jQp>Zn zc)IYf2H3@+@y+zM(?4Y`RV!&Vhg$^5f)iw{4pF#fUH|$rskrvS?^nPha4=2uwv*2dyeZ%68N-%N z#?^rQn$qyUYm$(&?jU)q{xTKoG&-@=` z^x3lCkW#;b$x{1Y#W+!jW#mUWMFLd+AD+~1LNMg{%?PCfgI%3xhg8KsjDKy@$OYd# zh{;b&RPe#nbQc!w!VxezYSAx%)wh$0o?QA#>&)Kswc_~lai|g~vGrlNxZl;$d{eM^ zU3N0&rdL(sV^iQO&y-8ow+oshfFFUQYY!&B13B*hGl5>B_l=*ub`29)M{IFZ)7g(N zGCy9V;*4yg=^vTap0|d9v-Fo-e?^KUoEeBv*(5cF|vZ@A;iOcj&Nv^ zrDyBNj^zB|!gsIY&HtSn*}t^CVZ0Wm=SCs8%aotZ54*jd)gUJG&(2Lbyg!vxmE}~6 z=W7D;Pfqll;vDT`%Hx&OT|qu>lFhW*A7?Sa2If5v4NhuET2&~niy0AyQP{a;f$z$C zcc0e=Eh{PQxw6v_-qzl(n-C;R0bCOw?CG5AeGFLFXsX3eOdtd&``Y=Wdr4`=fztrizwme>lkXwC%bK zxu3-p`|x4Hl~@11+p7K#CUNQ^efyuf>o{$W`w!CeAw8&nkI+9*{Q?Yn_Gl>her78& zH^^D+nEK_Sne)F}IAEN*S^T#RM20*MhzpaTX?)pMUY@{$_QfrZ;qoL#eJvJX_ajJ4 z=x5?aWQ)E|6!OKDta}iD7nvMxdEEP_*O(^u*OO>I{?uDyx*mCH(3vFBoA{4K#j=$+ zSa&AOIl5DN{Xh%40xTG2eaE1+J&7!G3fMiTy56qy7=M<(tX&$;L@W8jXA|=k1)NB( zy@TCFcd0I+huCk{FG=UHd*SExvK0u4l@xb$x7wya$1WKj;__muFB=fdU0X_bwH*7x z=6@GqGtI!W&$9tV0@Dc7+OU7RYa^1S^i}UIn3UBi8CS91kV$yQ12-SB!v4xS>dPA# zkf}35;L9@c4sS7W>IdaPkU%OoP?-CKDqH?;-BoM@zA42Aio@}4m83*5^zZIvfO#AN z*_7XzzNM+h1}*wp_CAd;n3TpW_^U!S#MZJKDa!*A@rypOBS6t(Rh zxE`Y@W8)HOcV!H{d3B(WfTe5iFlPS`JEm z#K~SCZC==$l4Uw!Qw9R08!qfY5VZ;cL*IUXZReKJaL1nJUB(Baf|UUD36dEp;80T7 zlF(H1^@?B6w99ac2`6^smsoV9Akd<6;)S-6ust6@Nwr1qH=m z3P^UW4~1v~xSG70w22?#j9f-6h3K7!CYLx z{B0HknPi0}4?KX}#29K(Q~%onp$5!N)~WsDnE$^ai&~qfG%nJlzNzxx$`G~+twfE} zajrPk>k5+&&%^lVaWZ7mvpVMoC)(*Vg&Wzm>4XA=l6U-^`@#6qwJeaZz7{Y+ipZWC z@R}>shwdxvu8HsCmEU~@A<qvDgqS38o1EEKs3n2?Eg#jVvuXkecvpNacp zRXtB?pNsY#F-QmA`?5Hu|N8PL3ML^$zo-3&Ntrw(LjSTy4vn8f28?41R4D9q)*u*@>5hg^D%?`=r_^|oF3497b|{9-XHC(_@(EGWm|l8jKV zXmiArC+=@wxWQqj+Dol1(2F2UN{RV-8j1$_XfAAv4p}Q+DKe2WRp$^(Y=|SnRpDWQ z$5q`toCEx;uR``V;5>X3EZiwp|fvLa~76 z3rT9XJq#Y5Fz2t>ZoS$Ku>j#`{Z4bR5BbTwB`$KbMilSnKrCb_mlT0VTP`VD*z_te z;r;RlFkBC90At*j;CY%1>7RiYs3a8$n0e>ws>V$a(s5Wq2$P*+jrR44j@&-_hfC2! zapjnV1+1ei1WJwglg0zJ(1j1_-3m}qAyK! zdN`lX79dE<(iX$wJJ1<<0lgs=&e11=N+NV{P*A-NqR2H-Svr!e*ugIIRO%m-CTKHj z^d!hY@;;ne#0I|ZweBkIBj+&2_!$+6Mpp~fYadbkIJ^J8K^`qbCQI!De0_&Il@zgA z#{@i1_yC=JCEx&2$(Vt-MhJw|0EMetUZo2iFMR!h8Xl7+=*B3JZIr#O9-dN(JwSyX zeB5ztK$)WOZXQng4S&y zd^N=n>?+jiT}N1$Vq(~#Lrmetb@gY^t(c-({1HE^cL>AoLcMsjni~=-hNeg( z9m{cK|MNIQr!4^H_d%<}c-!L5W>ju*qd-C<51_0Eb;3?3dvr)YdjB(LJ}#GQ8F!+n zqYXBSOBCgU1c%{3M85jd=0WLB=9NRW7Lh`!jEI9!7bzGZAB{k=tR)tY5m&zQGXbv_ zA3V@3Q8{7X)Rh<6mzR{+G7@x#J4u!(I12yXuAduKhVd*EMD@JdhOtWOXK z{(Was4MsND{qua+P%GdeSQ|);$)GmLOuB2f8gIzx{f6B5M$5EV%V%$!i3~?7bH+~H za{&Oqk^*E_+lUYNYVQYSe4mjJd;@>Wx7z}TpU5T)X98Wff@~rlpnQ+Dah`vp{tItJ zDYSFM^O8>s7zns*?NPNhc;Kxz#qRAh&mn3foMEb0*zz2?yR90iiRMqCwpcWlP4Rfe zYK)Xv0;){udv#R#EFb|pJBN*4F~3*$hHHoD@83PAyT9X-Al#wHhCB)KblYf7ThRQG zh88BG*Ef7B$&qb`AW-6OC5M0rOu)6}*`d1ozsB3WC9Er}ulGeb$YoJOb9eYiTW@Wx zH)5%G_M51H9p-@QlpVp+;t9iga}V!@AEcR_;qVinDC7I`1)>y)qU;?j&;U$DS7F4* zr?kcP6US_S#|*j8u%=T7f>{FpvfyPjd9-=jD|XCCHU{wuh=nMWdxX%U=qnc54Rc#v)o%v0DzJ zATGR};bOY3NU8mU2i)`$%=u|eq{+H3hmNS}7&Yj6+8?#+AyG4c@Fq*V*}S6FirX!~xx6H@8h|Xx&N6P@-sH0ENKJW63_3e$7pIzi z=grvh#LQe8;`J*xcHajr1LYZ-PdomERGg3l|63{sHfPburwmdWp$vXt^4+j_mF-Jo zdi&=hx0x8RYeeVF*J(^7Wv;_2ThN4qv=1U&WiEGE>mh>YDYGyT?u9B%P0 z>Rr!|r`DM;;L8aGSqliw>I4KjAh>3=P1&AOgG!=b;TyFskW3(& zyj-pG{KiR!`?L2WXAsa4x$}=7o3QD0HI7b)knI2jOn%qb!>`W<0MUSzrPvQOb#V&8 zkxYKms6g)u(|fwP8Y4C811Q6H%@P`j*){^Uoa3OxSO7z-Xo?6w| zUjLiMDd_SeIcdL^Th(pGBxHHA|mkQ~Hu;vijRmSUco(0|@Ljs(CxT=A6X#WoY<4yFdHba3Dpc$vS%o&OB7V601b zS-iRSIhayz8S{fQx*Vyps3)wwlrnLXhIQz?os>uXJUj{W8(sIOzcQWk@%uXrJ*}#oQfOWXb&uQ7e$w-n3|t zd?c-ze<96jn1E_>+hKr{m9BA4?0oHUuK=+ZdJG+p=@hOsGhw{0Ss zDK?LO@5Or=n1T}?zHf1m*Madn$oNzvqCKb8AbuXDPJ2RtEb*T8N2b%ie3!o3&8XYg z=g>UA3kh9y%LmvFT>RLdZ+0_j?UfViA1$!~GHzy>{0#z!lPeaI2;8fB5`8 z=Fr!(ZqM|!pXPK7`oMe6&K3H&;UgNnGpVZlUy+KqitBOHcK6DvRl!{QxC8^69Zw!a z?eimp*QzE%_y2s zCvikDgym)UdC?C>5Znq80@ll3!8)7_JHlU>k<4@X%~a{PrWs#$`k}TyL-W09THRo* zJt)HovJ}36%k%+f6I49$J?CD{vu5JRTUkFG=Hlaf_LvA>{OTtZMWL(qxqGS6+^VQy z9z90-`l3R5#0=hUfZByPn!}i7{?jU&d(5;aLtN;yK{i2omAELy?3SIM@LMQvglL5^ zwel(ta%7YQm6BtE`CT38cUW=Ut%wVuW6o6Qx0)Vi3Rnd5Ei3-VNV;dKR0XPUgLhEA z-1xMbsun#@>}X0!i8(_05b*?jNAyX?~44NG@Rhf8;NDkT!~&?&HV!_wU) zh%`udx0HZ%NH+)w;&1(Y-}nD}X3m_Md*aM>uFKwTgULpUwBy#wZdJURuaE)qQSy~L~ z18QDDGJy+O#JOUQLsm%u8=(tv&fq_0R@5=F)YttO%4i>qz&iSrfwGK%Z>D6>K=a0y zv{zq*Fy0`@bVa4IGB40dd(0uUc!tqG`Z?h=oJ_C#f#89mi1m-pw4WesLcBM6NhjS( z1sv$3_Lu(v5c8C>Lq1Ypk}_)Qrd=c7Y&~AW=L=dh2(nE{;XB7 zNbgOjA=&U@qRL2x`q1vlJ}(WQSx#irYGcwD(-%^E)1l2Avl8+V&gAy_M}n_a~^FCRJyc z(P|u&BgfpJ%9|2<((;uK!t%X(MQPk(TNMpTbIG8K>!toq9le-&NwLnm*}SmH+6cB) z1F%a!=NxJ8bE4!}ec;(q3mMJhK#rmg!h^!Qv10pAw$Pj+pUu1ttZNuQ_LCeRJ!gJd zE*Si(0|Uc}z`5IpLRFWFR|04s%%ursWT5QziiDuizQt-`FMc_u!CIV5Zt&h=MKz}H z?BcRX^wV={=QKGu1TM$k5k}lShlU_#SDrws#1Ct%B)wn)LkeflTuH^e!o|*mLf22J z-ppnU1o`R0wu0QvmK}rMqPo?(<}VqYOfTl1DCKe>E7@%e& zA%=A?M{}6O{rk)d#o5y|Q8j_Tm3yaeaFdo01&T&+`C)1!tR11R@<#MN9)IXlcLj|>eA3diiyqfVhRCy8kUg(MD zg>CUCpYr7Q%+2LCrBEIPFT=NUjfGkm`tqtlY7*iN@zjn9CKLG_I7*AOVY={E6JcJM zi$a&fl3euZftBGg)?p0h!%fb$gh?gKjkemwsO1*UyC1m~O|Jkq8s*9D3D^vYO5r1u z+&jX37PH|Z33D-l+qyeWRgxc!zWl_ZgFHk|A>b&W8yTG8iYhjf?_#eHfcpoE8jB~Qa@JDNdKNH$D{6~lh*M4i;xVtK3 zG#bb-b?;tCNYV57y}4)+X><4ix2!{sKF%oB#}lR zo`1&{F+;7ARME)eo+=qu2iE^-&k033d=H4F!iVA%(<;&Wyvn0!y%a~+D(?GXB(E4G zy9bOWfAzlD70|bK{jr*8DJa^U%9ke?_V)Nf#!q|XMFr#*=~{g(RoqxphyPB%(JASH z!Wx`7&&3I)+DpYwr1cfZ=XbPPmqsL|cgAsxrTQCS!8PLW_X`Q|)CPcFW5_iz)`_Pl zj1baK2SP8?dTvgAMENLH;bpxa|Eq`w?qN|X;@U$cM5wCYZ7BTr;n_c4Bks5DkcCi3EnHe{pI_$!IustezDd$^P#5!|XCe=j>K zdNG8W9QUz}9)TCfg^072#MpbLg7<_f)5E$otN~YB?3dJ+`m}SfkE??;!==Esfvzbq z3eRbJIkO%+i;Wcn5@<9^Iy3>HL$YU>8r*zxPxK1?jdN*eckTxyhbt^EQi)ng7k+HC z;c>+jX3c(3R}=OxJY0uA9|og(#-<3{G0j%hC1^`O+X(N?jxmWC$(!A_kKZ$(!5z?O z8BMmDd}IS_&>-k$1ahxBlc}_LKRD3=jn#o}5qb}R`p*V5@wfs=4x+eX*`NtZ=+Br}8$6JWun0x687-97_d~M!Wad%y^A8dw2oWCr6W?qWleVizeyIx22#6P@$bY0t^&%52+`Pp8$I~bMtbJ+E&CMM_U+vbZ$Y=>~#lr zjer#-wE}_%lswu(1~a?-b&zWfDDzVJ%)_)*w(UkT&4X_S+i zlLgEB^0;k)Km?zP6=eT>X$a|zYg*Wgs)O)+0J3d1Eog{C6Fl%jX>&RcjYr(!M`7%o zj0^g!*HrQn(<5j5~WIYB$zWpViQPVlEyEEsQ!aVPi9{};;}*xKMNIIXm(9X zRpa0#86m0CP~W|sDviDP{`gCa1wm}%&Wy1M1iAI~(qqq@r`e;Uy*qu6I!d4oO~0g9 zXbfNJoNMm;x+`R0ZWwHda5Wi3?lwy>jL4+Ep&JcKfyxHiJ$&@)>3C7Yh|34(GDE|0s~2`z>^q&Zf@NHt;-)8{$@9{RN3_<_Yjp;obzM9!NH^cN}@tvC7bx zkvpHV5vNhx)mqi947j2k}#w$Tzcu|7#_3=3{GGu~k7Sw)g*JWrtF`s66 zpd&EI0|Zw)Wd1O*5~-MQ+Nca&`N=TH1u8s7*U`d6B*I3cVq%D?h2M~?St1P>5}x;_ zfzoch2(@a=TFi;A;BsY6xE1E)TUNsG8>L%U%L8>JgR0Jem=%Jvgmd_p+J7g*GA}`} zf%0Is2t=~FQt#t>fD@|?9QHas{UmsV^Wg6HnbrQATHoQNaQs zQnqMqx?@!3ZuK;NS|}N>AO*?Olb-KH+9tl-tyxdA{p)=6CfN*Q2ti zgpLUlQGFq+MifAu?~i3p)edCf}~W=qP|ywkZm6?Y~Akyrf-u~?M5&L0BMF|SH^<@fmA_1A|1vWZXa zCH}m%b>t8iHza^-zRscuDnf6Y8v8l4+)t{n&x|kBQB#^gKVi`hYg* zFG4X0{FB=K8Ctnm32fQ2^c3n)FR)Uf=zSQ>wh)?uSlL1r{N~%2y;1ql`?znu)s1C; zaR`Y1jl)UjNxjD#UBH1z!V62&w;iE*c7Zk|skL((R1D!3zBWXHr!V%RA1h2-HYlYr zLeOa@{o-LGPL0PYM>J%wXbks(ZHy$WrB(o6jOVYd-|F29D$dxw|fCD2@!Ra7y-n>EUv8lmb!9K_j3!Cyu)9FFfLfT7ouco=nnpw*+ zu2&G8M)bagZd3;$uA@34{7yQYsIO#@$s@$evs$_Aq;6&?88Kc$^!~af`oS0Vs5@1k z!GfoV)@Z?mg-17T$mu*6B4owKf|xxoH~4GHo8N+|FGPRz)ju=s0PeBjDK9F-r)H5>+p0hM2=F}y}~*Pr|~z} zBW8(ce^fs0_vYass}VIKH-Kf{G^&kaWP97{8L4xY56RuKqxT z-pBYw2UYAM!M7wgM(GcJ&~B9VfuWy|A>q<|vijlB@Kz-=71XHW1}H6L?ESGU@?WGa z0!b&Wd2VLpKiehGc;GjUPrMhg90SPcl3a{@T%tBa|HGN zX<3nqS}*MR7mkV?Xk>%J?Hd?qFIxn>I{WaA$31-~Q&dAXwFWhMyH;6|tA-2{@)l~* z$eKmI%V$@ZjjUS}ibCv)LxfGSx4Hydcr&i58jXc%(bVhM*I&4GIl9-RTPA37r+1Rp z2^vF0VKKXY7JW}pnPTn2MIHtDQznrJGDYf?^oNH2EHcE3Rua`)vKh}VHoZ9hj*S36 zs>ol6j7~UeyBOK1_yu48kQCBekCCa6)@V?S!x)`fOXcNxJM{&=x3-Dh{hZR7`gXf) zV18U~HPPGa+-f&2T6U8gB7A5s?GUx)caw~ntxkZm?q}HJ?2}wT-+Arb$A+v)bamA- z&h%9lrR_4I6^mld0QM@_FN@0ppZreCP{sB<>JQ<%3MN5^2ie28>G1uTjLMq}lfEB@ zI-%XVoJ<5?W5?NAr(@n0=)POnSo};0(8+F4I(-fw%P9QsvL*$K8o`GX9S>pfQB=V4 zt565{8YCmlPhjdg5&^H*iGOP7c9qspr2=1}Q&_~-41w!jpQhQ=UUUoKLSLPkceP7H znDFN^qF94FhsYwrwiy(*at;b*64?peKZy{3x@8sa+4~LY%S6B+0yS|X&X&WE)Kvgu zB?Yu-19Y zB2LAsa3Sx! zY=@sGi0cuf53?ONXe+qGVo37(Wu#sxbHfTSK}Z>4(ooMP1@0MUK%K zLFd9EV1_P6t%qrkJJINKvq?(xWeLmH^XN*?Gpm`mt~1Yu#4k1AhEQ6+~eot{Vd() z<%mDDqnH_zGLPvz+rht-S_)Jv4HtyN$_cNtTh(lR;P$%>aPF6ZHNHMHz<<3sMWz(^V^Q6mf0rYyr#N{QIF@ z>=X8|)wV9Y!h;5o-K5YOV+L?zOT)=Pb|AxX0M|v70rFwuv-$yV{hX5|AV-w8N zgG4K3GY$C%Q-Su_Pu#burv{ftYX!W<dV3m4Z= zvBY)muK&N!Ww8FU_$wm% z$^P1TrJ#cu3oV&W_=pQbDdIM~z)hB=$FXQq-6=elKLA?zzcna`V?}8-0B7z-t_$w| zpKI5xXeZrZA_^jku+#s;Vtl_H9i%fuzO1_ijD}Aaxv$AXge-S|Nw8kY>uaI(n_TWwM-J&o)zh9xJH7qTWTh(v+M z)8<57I;^^s)fvHs zmu%OAOn_NI5Da6qEZfPfKj@dc^-M+wCC@1DhM_PT7xe>w*m?D>`5vyYS^U64@R_3)aX$RI^ z9Px7X$?lg-8Fq|pE52Smy7&T6Y|skd58&ydgq4uqBc2dptu9OlN6Nn=|I#Y9U(&j{ z&0`j6p){Zak^W7D0jB+E)3q^5o^NeA9SG(>nc6UXmboc_o*;huA6I@`s0g(VIy%}U z`-wq9h6Zz^SAD(RU^(XIVOKG9Gh_;gpshmKlWJ=8d{`0^7-dOnQfep-tjZP{qqo+9 zmCCRM9(!*}OEt?)VqTA%w_K`oPN)6HIvWRZ2QU)P9){M?2lm*_mI zrEQKP-I+=`9|MqXK*6Oztk&FYY5j0pd(8{!d zL(MV!dZhWQ>FIjg08ZHb*UYsZZ4-Eg{~^@G0fE)ilaqU|}qMS9R!IHg6if0?b{I~Fg*wCsBL;s)ViuFdsNSG^GGAx*=mOS-=8W| zZ1s|GJy3E@<#3ubi|@Y7k0S+;T+Y9SRhj^DJNc9|L&(2d+oMz{fjXzNFH9rUVC+(= z?U$+KoTKek55=lEHBMv-QlukQDfEbGLw+1c_FawCI=q4dLi(Jm_o1&`9D=4J(&6qO ziGmfwr0QC^^`fqc5%_86ez)7A+%t!aTfVRm>T3 z_a;{u(MlTXsxy*lZ?sIjO0HjYH>!0hf&Dzsf7iX~Dt!$vmDlV9%gD8Fd@d9uKFC5n z4iTdtY;EN$|B3LDJ-Nukn05%33Dr+g?ftSdkSqWbSIz`O?urUc5lXR5Xs^cb=sSKX zPMt*ztk=+Veby9q$@Sn-XZX^JsZ)vpZ>e?AVTh}pRGlVNC+9_n`sn{DW0DK>GDH-R zS+C*#Ujc%!9{*w{h{hVWM=D_Mr@p!g^7dn$S!JBSJU}kkAxzfh^{2LV-pn7175|1y zLOrEQB;>-)UxOI(!D4ZbsFs0rU&W3y2MsbBFgmM+Fg@{ANDrR{yuQB9CMBZE&&@XdWn?V;sde294SIWQp4T4i-XU$0 z2q8qRnjCVNuVT)n9mM=eiq20AH8NH5E0YvD{jTfUQHcjTT^;NcR~D2P5MiZgW6NS z;C!P6mdZM*IUx`&cyx-|ogtJrTF<3plk=T33@G4jBSoqM_UO%PdTUsM}69IHEmX`vAcRrZv z^uWCGsw&$hM8ojaBXXNEotprit%VlsaH*r+6BLAo{$gG-VPG9LSP7K7yNzUqxfuQd zOX?!1bBLijuO5MIOIq+-B50Qj`I{_lf5WfNcy+W0mDv7>OuGNN_OtcM&>^z%sA%_< zOw<^n`?l;bm$*ADuD~7^%&mf7nhZUm;C~bR3niX(St=ePU6g~r66rh3&Qnpx^c7|t z5Q7X3Re1hr7J)y*s3d;`e%%J2J4QiU2@fv5W-?Iuh{4=Z{hHTNG z{n5qGESYATsUWzJ8ltpQC>^Z;4x{x?1gkv=k%n=wzp8ug(LylZf&p2-*1? zJBJ))rcC%_xOVbW*Jo?t!fPzv-0-qAjHUTao+)+g`w-P{-|*n8bTJqsk~P~##hA_u ztfsFReB7p0w_ld0%Ir^>F~^J5=#2U9#N`_x^1pzqMD!9I>|f*fjcDGCsqQyLv4*yq z=lL0qIQKG;^yaB`_NUDAYwYhIcyoZ*|3H|kwW6&tW@{a-PbDi(t+ni zO$(`?qAuZ(S%yIlRz?YWc2U7IEoTeqqcqcdM%BLupqN3%3Tu}1v^~301((=ypM7_g z))sPzCh>(r3TFnUKA=S_1ff6QKLEb-B-L->4r?_J@H3oo?u}2rywFoZD-MPNcIb6P z&b8iO($`+-jfE7}U5>cu%JL^qsGmA^AnV@6=v(KT{q~AU{=Dyg@%5jN9EG$AXN`_p>J8<8Y_g{KE5ZNPl3rHof!7Vup|^ zU{UN@n?d0Ot(z`DQCp8*B0yU*NpUe@ajE-n_5q^HzWRvqxYZ6ZZ;-NAlrkWBG)aWk zsj;7v0o2d-h4JN2<;T|KmI77@;+h6hn`7jSP`;zewtav2*UteL$LrXoV_7Xwa<6s( zlG0FiC>bSQslo=EYLR;{t$#BY<4D^j-C$-5h?LQNTFNoh+;el%Yy^azcWHbfq8)~wlUa%6k3?lkgr^OrO z2@&Qg;HbFKuq_Q`ZhX5mZ=r0?T4h*~4|C`L*Lj5_l=0)qC^(G*2~$DHSaiV`0ywHu z<-E(19vkE^(>xi&XBJuBb|FfmlAIQ9#&f>l66_&Y&d-x|j~2%6l373i&Q#XmAXH~$ zLwKK}lJY$vpD?)ul3zH}fkkk2Krsm(VG5Z}QcxuCqG^yA>@fB?dB48SDBAZf$@W{7+>fdT>8OiA# z7d>+%6SA-1Q~#c8|D&^j;`sW99#HhpMbKaWaI+HC zA^}4){@|SbYH!R4bH0GpSYh)I=T(?$&G^aa!jdCN`|cYy&ROHPzb!=9>ebhVVpb!a^>o%| zPwb41UFNu8)Q5$~)Gr@PTS8-r+>~dJL5Rq9)A% z0qSLodI#(O;OwCt2a1^3l_*w!q074^k-TVQb6ZFEgqd0J3EV2=fchjnAhu?te<}2WFbMTe-sS;rH=HY_N0EtAUP~~SXa7V=2{FJq$>G4=|(N_P?9OO z?%cMw`S-<`8d6S&-|2xk(=oKXGvjxMPL@$tW&C=tiCobOgDiOwAHH5nu&Y-hA%maD zq6FN+N$`w{fTY}c`(@4iY`IYtFSZf zq(0osC~Pby6s3(Ih`OYFKH#=}UF!xVtZPqmn=bhe`bB554pzYpnlE4pEZ97r zE=0%(bhB15d`E7sr5*aij6!wSSpYSx3*(jkN@Xqvqg6C{Gfz*P)HHkg>fM92-N}lg z$VD1YUt+?K;8EH@ytCQeM9I_irDIUk#(Hn^t`x(DuU(j9ZdGI`g6*L8_Ohn8qf(Ns z_HAv#+e+q*MW4?!XJ5Axo)GW%2=P*qM{drStQbyLNJTjA-p4k=iPT&%FH>)E#*EsHFnQE4#Kj zYsPm^=^o_?tHccak?z%F)=P@%$H0H4T_>Uv5?Bvb6awIVp=O`((lKp4uor*p8a|t{ zIzeTU{F81e1vGm>ZYXV}Om6gUJCrYq4roeMzjX(g0KUGcRo6jHEiVk^TdDrhO>qMj zzv|8(gX)5&RcNJR@qb0;FCB)9@hnl|Nwx>4N8pEUMvEJINL@pSJcPFVd9KIqGX+YA>jF9*8( zUgCn>Wpc)wm)DK;bj1$ne#^gu7q&^nZ`m8a2~c`%F+_JWr_-!MC))Z#LHO2~y~?y^ zs;!5zqg{jwQK^6Upei$O31S?M&IMA}-hx89n(6ls3cLvmU1ay}gn8s+00c~aJLsqT z?E-@F_bR-b2b&!il+Ro``gR1a4Y${&0N*wi?n=(+>X7=S!VVPwv}W#a*ql06ZCb`8*G`iRkD>me+qNQ@zsYk)jTx z)$^+baIAi1Y)`N)U#ZKBv%9J+`>m&d!@R!wcRydV@xK>7}AZxODoX6#Wk^rxsu>Q(M_z#It7?}l8M2ht`GWBo|ZC@=pJ8)Fw z_o9=7nn(x@cQLMYxncQ(<>?{GuU2{-CEb^esJc3|loOQxYuZUPpwgMm^}b@$jD=v< zJQ$$#g(Dzsa{=l42U;$!p@Ug|iN_O&3$QYEbBNoIMDMlZoG=lnkaK5{TOdN!5c3Dy zxjC$mSs9v+28<5O;xQe>wJzM7{Z7ULR0>@FsMe3h;yMrkDxbq1+`8ZD15Kh@vNIL( zPL8pQ(L79V;eQ`}kzu32&rC}r6QS1z!+ZNe0~)6DCNMmL*XsfB^FYZ<1{PAW$oo~e zwCv|NoKf;DME-bG9@$Wl8Uqx^bpmHWHuw5fKyaZ{6A|Q_48jhjWyU~}?1tV?j#0p5 zsURs#`0wx=(lvo3XMp%ow4Tz*ns}(P?MPFB-VYLds2Pf8xtO6O#H@0BOf-^=8m|Sl zD~A}Ajx2XNNHi^92RA6)ezQe$Z-|pL#q5_nQ9F$PqDBE%mw|THi@r`c#e3aJBsngz zId~v_?J5?+28HiE-rT5_Que}Hv1qgv-Gd#2&cs7s?{H4R!QgKgc+~P#@T@2msGO!m zUlwT`QecB6zQ!a#GaX~+RT|ofDHmLa86nVHv=dw>_)z!S4tzxd+H=K=QRuTq1cI$! zp1YXmu%XZz0eAWX6x?CE(*$gqPVyw+Ag<)uxjP`L!UR!uXChOJ)~*lwad%LWyz^Rs zbaPcy97o}}=)EegJQw)C-Xb!*Ne6b478Kgyk8l}Z!V^Xnly?;0V5yS@w3hVi05D^0 zDU!RU)&$0r_sv${$UdM=$m(*-`#B*;62h^7L?5^l__2kiq}c7RTJOp+Bd*>G5B;5% zg|z)j8i#Ee6LJOrTrxw5T+D$os=Pd4Y!6)i9!NX=lgbkh1aAIx$xDDe`sMK^6yYcs zjIrS*FtRR3OZTLh3Nq^Xn$zTzz|amD=4~aAv?e&8GMW_UH1|`SOwWS9Ssxp+>@-XU z%|-QT{e{cZbE?tx{)i4mY5DmvQ53dT@H(g{+5;iL+7SkOMx=GWqrd|{a=CybMny3p zorF1oRs_CwFKeH^dB2a*sU@@LkD)_CBdPvlolqzGz$^4#;w?7+TPR8LE;9D$?&A$9 zLL~wK6dleq!rfD^hLS+g=Asr&$g~|1#_jy^WF;5)E9ox3*XO?)5MAM*Z=K}S_Kpua zZB-c+*P(4j=jlV3f@0>#f-zeB*k=X}EO`BTS*{(3rnI=#x1jdRbxzc-jVVlxM(soV z&jBDfEwe9_kPGIbS#5lE5u~{2_?IictWqbA_3hzo_`> zri)xv&~?bYzNRZwCe@vL!tN4{03I94^53+W_c@v0+-6OV6vSxnE{8<{X|IVHz0*pE zp?f6$Eoy?E(NqcmY`^?!y8Y(wqctw-g<6X-P{J(si^GK_Y5ecwJcOzefkaTC10lB3 z3q8|3M9e!B4T3FYv$TyS2JxIq%b8K)`sOLA0g@RLADM*2c%oyn%1iR$K+23RkGG~+ z`~tE@e3S5=4#LaQUon)k8dWJ9{pR`P7+As>Ao<(MGHVPGk?33ClUNTB;GkMeme=z{ zW6ToOU>p>dfFK|--j6@TL-Wk6YZ%@E&6;;l%|V~`A@E}?{=X43d8Gp-4c445E8D-Ym+)&R#wJ;S6_y|bCSB>!IRa+ zw%>So9E3B8Afsi(7{C?WPrvYxkw^c87JY1b#juy%G3D5$NG&~SdR`W(&318gj~|OTIYBd$Tu(Gao?w64ipWJm&iXUc8O+maI@FXuUTrrWUeL7?h<;oaADuIdBMgc zVFpFjgH5eFLWqTYW2hg#D#(tObBD!!MQDfP-K45`3_e6S3dz}%{_`Qzst*axu+BbZeogkZsRG^^a3us1OMW(lX76HS z@#8X8)IVWcYsSzx9+3LAzJ39?_%bem&!L?|@+^H8)hkX%uZR%?0 z2(062J=T}i+yOao!O$XOS%bd`>Xz7h^2gZf;;d}Yd~k9k_{0B3Cl$1_-0Ryf4iU}e z>#x#!j~!fU$A<=|QSxHZa^#pMlQHoShY7cZ`nb0Yp>Ct+FI)>WMqLh{2Z62)^)Q8S z=e|>?C&oC>a6u%k`3UWwAG%A=^M|miYf9D>ld`ACt-lIDMdGr~q^64mVmSej+Mll~e&i*C|6MN{Hgdr(k>C9Hq(0s^kI=|iE|5{vjF9?}x1O^)8 zO@>?d{oeD~hjp&rEz)Fh&U_>igG~-gBsPXQ-|y#!Bnk!CT@<>_Qnt*6stBRs_4`rC zhS$Wr(;b*6faT!$nJp5anV1$EA+?dRXTFK6{;$N}RhSxjp5*qIFIhY&@Ur`vqi6GT z+m)){@-yHP`g13QhH{nf`+M z<{%iC6Lz^bHnYZ9Gb`}Hi$ka!gvP*fFta(*YBR%6WQVvH|K6@o9Z=7H%_SLLBfZXC z)To9dX>QsJyXD+z+R#X#JDt4@r73o92W>CDX#^l8|0e8^?a6w)$l9zn%1Aa{@w(Su zKse$t;M=p!bnwDsY@i_s?G9GE?@w*LMYCZ;bi9a|0o4!kY*C-PkEf)5a{VmNFja14 zK_J)Ui`DVrw~se%C$F6+3u=c^kMu@jwZA#E%Y7Py0;lw5VQ5H4S%8Y}s4b`wl6|F1 zDp=9Ax`{l5$@BOwKnwA&f8H@qfAbwur8idUgk0&?K zRX3qvLdrR@yAX{*q>~EXGNlpQL&$Dy`FNa~iRU`o6zb~8z@w~uU;ATrU7UbVJK-=6 zL{h7$=-d#ZrBPaG6H@l7Y9#~@5>(Zv1(%OsWc)R>I?Uad2x2N{PCGp-Go4`yiWmOe zh=8?boW0&yDZh7I_q%I$CA*;Ha9_VR@~*yf?D{bB@JudY}e@_2Lb-`f`N&hTr#*Kd#^IX*BSNAxHV zCnSoYw}Q4pL{l3JPUZiJHc5y=0hse^9S6mRLuaHdkW+!|U~;HRlNXFPnYZ?h@=lHH@DjkTrRZJ^oiiwvoL^+WwZIe9s&sdWIrUL8F`wsItV@hfmdbmpgF3~3gd0K z-<`u95KY6m_eXJ({*x;2JA~Pcn^;t}dPKJWZSM6f2gG%8Lc~w)>BLV3 z{ktDRKf2W8(^KBcW2H89Ni$MQv&Bq=Q~~#*9%Aqykc~^2p2tqSs7>~mjx5kp@;KL; z!-((A8&o~q&&b;xCegzMw&A@_!7~eLtCC~eBCCgj77P*Zj>+>Yufd@Jx|tvS%evx+ z7j)*edlY&^u`$B~qTjz;q>yzUe!g84!TRH`9B2_Z#wA$6j>?$b@m%Ss=_rmm!ngYh z7^XINtT#lhle*7_1Yj#aLop4mH#qIln(lDahhtIHCsFX`{?_f}Fqr^%W?bjH7WddNfUbo! zD=wt$e)0EV2yN=5;Z;^T$WX|PbwXV60V86*Kp?QyqEs$x>yOaqp)VcB7FM{-i1Wy+ zU<=}p;Rq$4O8WHg1T&=kQ#O27WRP$jY04|3j~Pyt!m*FAy3`f(!hpRb6i*g1G_*rY z^~KIAAu$MXZL|jRaKDd2RcYl6NB7V04E&#_Tn_ z0WQs9_zFR3cjNCtP2O?%xJl7D7z6|cccb^OBFH_)6Ofvy$~3vQIG&aW-NPzv+d)=b z=>`6B9MFV1x7y*){G93@9U6wZS0QgHXQ1zf4({re%#W9%oxGZ|6k zg(`9Z*@R!9M-jizVlG0ztyjw#c`&uv0tSbm{j@ui*9rK?0uz@Qu5C}wA}}Y!If&L) z!~($`rDy7YIj)mrjQlhys3!uc7jBFvs~!1kvQ74XEPSA&_}hY`x8bO6?#x0GiDJ5!51ZU|7t*la0z?PC zt6}3M9pSvGM@<33Qm?ZYWzL6nlkLq0gl^1 z?N)GP!?gTO&x3_uIdriFlV%+P-O}VmgMT+s!+|>$X4o;Li#h-xmCx+2k8Tbsj?qWS z3a3f$KkCauN3k}}RKdP6j)$(+wMZ=M3R#I7fBbT6@`Jj3VNRrnPx$u#S66q`7*M9| zXag2V`YwS2>EGRZt#$F@c&SttB*Q&(IB3k**>&L8aCvR{<95d|vEKFfE;BBF=CP$}T-$>BAVYD&LY*BFnhsUe;Zu)Sq{c*Vm+ zwxGYp&x3-s#&=UZmoN`qlu-lG=0Y7mS|flqrjkBSFr@-hj|~z~dF`2-E~QfL!kS^T z%x2EBYCjx(Fe$0S03XH)SQs)XWP#WiLnehUH=3*!tN)73ak$=p$HDvcOLC3&AftJZ zadZ_4OaT`Qe`5S_Mvul846JMcAl`W#T3tvyfUMXw$TsI47d$^YeOI1X>GsGF{FdIY zGdtLw7tK;5+iV6-SYI(@jC@cq)no=pyZQ{bEj5NC*)$;(3p-65)FzA(#Ifb~7uyGH zLVw&IdV>dgUeR5`Ua^90#81(55H}w|h$5J7y?zI?QVY6~=Ymg5r-ei?R+8f_$rzD* zzY%ax<@#P!Fq=wNxgQvf=upfoFa4a1;|IUk4Uo;y#t0aG6KCe20^dFt+dGvESA8P``utOv`Wp?zmj#em4d zeQWodFJS;vJfO&{UMH<$6t(m#gb?p|n>pKEa`?8`X#X9m(yQ8+8RlqObYvT(N4pax zzt%#gBn&qu{^2Ek0(cJQ&zaY~WX3adKWE-NbWFn_Tscl6j?Q)&0zmF~fc@c9)o%%T zDM-t>!FH;5l9?cv817s;j3}ELvM`r;wx$tJ474HV_?R>5?@x+6>SiF~gCu%bI*kYj z1#AR7FLz0Be!d4-fyc~tX1_-2SJW)woSQn_J;0cH{bC|g#HL zrbx*jykJ@p?8ciFxoCpFY7n&(-`&4M3F+uCn96%)x%YIT9jO%*K)UG6jXp|9KQHMM zFz83`$X7+~OJjpxm%n53@P&F6{eUYbHEYC*Ft&N!rx77jr&Rq2bPLn{JM!kZXfU63 zO|5UPH7oii`9ICT`*rK;qzD(&^AB4#H|GJ@|1WV1j`UpcL7G^6zk1C+HGo8Skr=+k zpKW3zPPRxkZ(9Q5Ykq)G&mn*IizD!Wpai_PEb;h-t9KG50YRRfWQr@U&qtmQ*$%F! zxKT63td?CuD08Lq6+QJg6M~V_KlAQc#K^>0^JOGvf z!n}9hYjZ%}A2uvdFF=SDA)TxE$A8INyLQh$LKFZ(P5t$)Qf6aiN}2mPMg~MG$=KZl z0P&YzhY64z`Z-iCU9lRQC_F}+Qei$q4K~WMO{z(Y#U5bJP<63bvns{`gqkb|Or@2-W&(i33d$kDy6I=BFS}g=kdgSf z!K9k3qRg&~ljtZGlWKB&Irjr$yGs%kQP#bD);?YF(5HmkWCo8`90Tson zN6baw0onAbx;=Bm0jaa;qR0)YCfmQ3BxYbaBSr_rU93DLs|Ify0#Zv3WA-i3zfpB> zavz`G(q+ry-hJ;bo$h{{Jec?%ap1kp$Vl2>KS$1uj6AlB0HkJNatS+kt3E7j{Zlgs zWGi7{buQNq5T>4bmr+6!pelA0KmJa6Ew6FsPU!0HoMN6v0)+O&-8qERE$(6xfY9Yr zm%#r>-sC0_GBxbtFu#LbFvZ|^4n6R}q~+%@FP)wyxwCl^wqWWia*hDxQVd*DE1BtQ`Q(?_xH ziP^KHtpTAolv`X2`y-JlWWM@Utlm3+{$9=j#cR?{1duJ(j^k!~&mLnoRreYfWnojnrk&FnBW9%&0ewzDMDwJvbV=Z`z>}KKZ+vKcGMVmZ(sjSTa%6ymRHM#Hqar#duvWn zQDOFu*rncM?6=E~I=%F(SiOG!{5-B3%UTc8^8PR)BzAllrJQqzy-WBwS2s@{Ic((Q z&DWVzHxCHYUVT1Kt?1s>crjF4U2n|Y8p_oH{;pA^WM9yzw`qjyJ6PJDz+ zmIP!IFN3}>(7>u$O9!#mDgy+m9VNAop0IROwX=BZF?DSM2(_k2C^l8T+5pm^bk9NH z5WVwAy_zu{{P)clUFqzWSi7LcAx z#JoH_n|JL=^gnwxDhC9qS}d|5vOO5c9Ka7grU+>}K#&LCLTJb1wn<+T00e39?WPcr zLYndhT>uFN)Wu@T{#+o&hl{9c5@Sgm{?FZ!v<72GK5C#@81~V1-Uk2=f&f{@j2q}R zN7hk}IeD;Qk~AP^7mu>(+109ZPdljKfFc-ASfdK4uYT1)?2)2Z{`?| zLiTdc5uYM61|VohxpN?YZ7g|?vnc?AD!e=Y8Dx_w`8!e1AYXk#L+klb-2!&uIMhp@ ziw_thAH9nsu?%-g&;f*A_}<7^N}Gjlx5z;NAgJ*+>>_1YzDu%zk~xeTbrOdu$i)(q zjT^AR11r$GcdaTwFf(PV?-={OytzL~X%2}tdB z-%+-`Uwf^Wjk9~~HN@1UYP+wqE!w}m(C!_-bi3SaR;DLI9(wZ9g_VlxT}s=tp2KbzxTGn&1b^yK+~%taso z31oTZw7JDOd87t_{JyUSL7F#WVcs$eAkT$3E6(6jBu!!S=La*oasz!C^qBKpKZo4G zG&vDNa)-j8u%HF_9~;@FNKr365Y_RI@W0|vI|vW< zijN@b0YO=q6v&b|!3bgj#3I6gLvM*qur#taQaM#kk{|Q5crL2D%kW41GW7qG5lJ6J zJs`_L?N({+gIEB0&SaC)h3snNmk9ByCV}Ya@zJn2T+^|?0?DVnNEAywAgJ{=SP4b1_Q`Kz_kDxh3Sq1H}3z z$Jy5H@lr3d+xHkZu1EVN{NrXOTgY|n)opeMsEY0y_AZtvg3^&l>Tn%*CY_x1HVhDK zSepBY--ek<$C_&}QMl%06J*op5RjL!NprjQnFx~E-Wt`ZYU>V1xW~;*sD+!pZFdW; z?+;r>+CCo*n>&mwp0bO|#cGUWO_Uo3$W@fO$%OA;dn|A{J%ACpSa+8X(*lq+dtO{0 zWJ!BR?4PCWQG3L(J-)lomiFVg$IVQr%^s`T@E#@)dzUOevJCxeGNblblI=1qn>P?q z3P{z3bH{dJ*}TgWcO5@>k=VurIsQI&(aCcse>9Bo&8ckO_lHfIs|6tYUSvSVpr_hzKm#ZJWb2Cy$R?2yWRn>I;cq8Tx$e22dX19$z-+&;Su$lBth?xV@&9B9xsTM#i0tV!@@r9NSu>fKb zw!|(TV{6mT?yvx25sO#=v4};?PX2%W5-O}$|FXdV00001ot5XcMS|q!T<^G1P>0u-3A+iTkv25gZm5; zT=wC8f4gTtXD`m~x%gjgUoh}YKh@RMCEu!QzP(qGCBUP`1A#yU@^Ww0K_Dy$2!vUI zb02u(PBmr)0^J9_SJHfUb8}dpK{&f!iesVck@-Rt7c5#n!ao^q8EP#$~FbfuS%sYQl7S1dOVx`MpoQn z_+P~8|GZ4V2H_U#Z8t;CMemVRb2yKU7i=JvO1D75RIzN*_#*=(KeRrMn35V+JqzIiNYyAIneg}wMe$UoD`owa{I|$6GG$4 zbcjDRE|S@PE=h&UV`6=r=O{z-<;0Vg$pi;EX z4&XHPfro04u&-Rbs-mBdygx!k%UyI~Tg(Fy12KI?iPax9nD_dmwn zG6vUw!N~~i@RdALV?f$h?Q7gZN-6cuYL`FPRv(w*3x)K&L%-ZM9$#d~-)Va$z&-JD z*J@MeVF^2XwYwXl@KTQ(()MhW&Olpd$5! z&(d2M^}A>n^Be_2DRrugq}29xrHeRzvCr=yp}}u5X1clvh30hPM3d4^-KuXA^X=Qb z@h>Z!x314iJSfkXP)tsT+cb=>)N6vAdqMRkByF1d1ltXYGOd;H6P+{Ebq8^UFZwJxRk) z9I*b|zv%8>@@$2zv(-U7)G=lm4$6vxLfQ?svmderH^+lcr(n#4qW59PY@7&`MT7V8 z)3NZ@k1dbc_?3m(U!PkS)yG%{ogR4X33Rd2{d$3)Zspdbc@&ksZU0P+Bwv>tF)AAY z^*EdNdJc2jjUF#BT{l>fG&v89{`Tyh`{D7on*$P> zZL7Fo^-_8uUAKm@u zs`Hadr5*URf2W0n-DFoumHft1B>!S7&^9MM z_oA5CgCh0C(+f&+)a2AGqs&Fb;Q@3EN?0C9hI}ez!wzH5E2>p=Fh%Y~+%!%1Bsk)ZmN7x6a74Pyti5d?3hq%ndhn8?1?{UJv5;P4YXJnKjw#dj3HN|2@zSggv7 z!{kmty!*MCk7lpO_MnSq|KdSQST}e*`dglPi;g(g6N*>i*k%#rakF~(+q{_`_OVJ6 z_o&Mfu26u-LzB?X<7-8H#fvsC#X(INOSJ)-?%NSP3JT8~*bVHNUvR4xiKWi4BYF{Y zQ#bK$17>ef_Xa}eFG4llNm7-VlhKGRin4EKk4|X11+*dE`rgY|F)GL_Dv$o(2=uJV(@A?1Cu8Qu~`uJc1(Ju`d!b>(9nN`7-ANtjN}UR zpN^{_^PC?pf_rC%%}V-g7OH;~9hZPkv)BxxIwKW%)+rt>;itnI&)Wv|Tq0Ul96RH< z=xC#Tp1jo~Lo_Zb!`T}{M5o_Ee8=XV<=ZdesPyc>fRM?31RsD~7V91y{0wre6}Ts2 zhJ`lMf~0>^jc7F-^2cvmvu*HZ!j)|A5W5l34n=-H*_$pw4`&*xFcUSBAxi@(EcO;y z=(j(?=TOVrA(8qn4^P_b&?k+NfM53AijjM8MWRE^A=^ZwJ~J0vhT|wzlx;|Ym|0Yo z>BHY@LVIgSSj`y|L{ZCPxS0xnT5HgsePfI z=ty;!PF_Pw<`hl0@k$*F*MAR^d+Oc@K$-}_uL5!OhMtNOA^a$Gq%~jQIJT-niX(jg zz>cS7=|s-7S<0Qb!NuzHy}bTDRcoTx-;xc3l<82rsL09Rhz9xgG#){^^5bbPaHT4w zuc}KzzqEJ&ULWqME4A<0*NL?si%t>Hk3acv%$98DoEuG zP6Yd(WVa-AqBm5;h!`PSQn-|oL95P`c03qNO}QOI{DCc;cPQ$gk_N+A@ZE~C4GwZ1wX{v^tKrhgIzy- zt6*8&M7^J(yMUk==uouCg?i&uDTLYXN(3pwtA*rOEc&Mw(w^?M>57rz_3sT|Sdn8> za@l_8z9M1k6H{%$>!)Ro2m|!$5T2t{skJT<;(Rf^5Se}dfZytKZ!kfrnNaUbc@G>% zeovP#D_l*g=4P6Mw`Zlb-^l9y2%7%{%G?I8o>=M!MUcFCw81!N(;)eeAhaPmRn*Ue zlFCHH{2wDY|0F{Gv>n*ILGuSzRG;)gBT!dPdgDEdO9?@Xb%_$ICk2cRpa*U&eZX#Q12io>`1!MH1yp7iL7E zyevqwEijQQ_Y+TL{x8*?7^>k0JR1kxcsxdAU>!M_o9~-O{1XX!66BfyN~u2)>T&%h z@CCw7ht_eH=fT9Rl%4T~=1&?k>_5?3{yoh59DaI4i0rm4!&T0w4)4_rLk<3P*`0W> z*jV9<3e1hL5lx!2wZ;S!PQEwndQeVFw3YYXtQ@_qo6G@L=z8E0Y3Y z5RK4}ziQ=#ohTiose4cC_baRX&}#A{-0*Pz`=&HTA8gItyJ}wl9QLk4`};!3o?_qMM*2L>t(Tj1)9q9*XBFfKMaDW zQ6Y^x&Cg+qL$uv2PP4DfZWby|vf{ko8M)(@Uk9DI=*Rka^W3`4hk{P5ZZ^a;c4zi@VUhgCBpR|#XZFxT$$C*nxkxV`KyGF zDpGjDiJg-=-rECl!ByChDluCnhAy+HOj-Tq7G6fw;2)(FkAh6-Dkpc~P{0Fhv z*N~%uYIyTM0cC%cd*nDq0xGgwf5od{!|Ac+L@^(D$5@Nq;d8x%;1VCJ-^?l3jl1Ls zx9EvR-#@L#xL@p_8FqQTD(n&7_<{x#cg%nN%-=9)n}yB%)nd8V=W0Pr$Zq$0s8YV7 z`}rB6gL^By&^9XBryW(aFr$o|lyuL#!9Pc5C!f4P{c>J6*ar>$#?U^OCptGG9H-30 zk=*>^EM&mHzUXDAZzem?XZ+u-)KX=?pSKqMlLybyBRhy@$f>0S7nS#ZJ;&CYC-j^| z?k|j3g5Gq9pyeuyLWComfTh$CzuZWx@%PFgU@%@Y{GVs`mqa|X{j1-NJmc$McMKgLRNlyXiE0$okQFFRvO?9{=pEZeXEdX?xK zNWxm7&ns@B&xqa$8w zCW(HB&Cn$6^xUd_|3;0M*GxyIfg3?dRn^ext;@WWOq^RPcxoJZ)P0aNd_f+ABCMbD z<^ggD2gR6#z~uu?fz_0tt9Lhs^_UKp*ctZ|odK;AAqW*Q~}zZ=^yBu3HyWx)lZ)fG0731M)KTRh~` zhk8=1#kJ5i_$Yb!s4KKyBuZxa9$>=G@*#7Nn;8WnAOp^IueB@sDTme||i9B7CvAI)QW3A&zk5wcfu=ii*vxGW)&Qp49@u4R_N1SccO zw|jZYj(=SGmR?eF>~Wp_q*8y8d((o2TobEq{@&y-nw&}j9)0?LDjhEV7;&Jt88rR$ zv8@b+wGX1el6CUd=G(dRntN_DX|hMIL?>2Umez^;U%kD!TP(O-Qq`5|56l1K;(T$4H%a@-GE;<+N2^28wj1AxmkM+b=ge zHC4^-ED2Lk+hjvw;k_s;VLm%vyPh%ap=W^;1%B zqX6keh^sdUt1tdKuiwre;DemsU%%V(u_poO3Pg1-K!kYZJ>PVs2FddkFMtp95Vj@d z94r>!Ovihk(MhTNb&#?3wa6l!lS-hhl3JHs?z--ud4vIiFtxO>VULT@lsD5& zmewqKItdwCL~L*{WJ3fi|FV1RuLK)EmT_q|jytZh9N(Fk9nkyazf@0O8YMK}9<7ql zu%J(jfYTk@GZtP3dH9geqyF+xDXfR~&U#4?#Gj_H2_B;MQ3EnVAz4BBw_LC_6HKdM~_dzn^5 zZlnRSBXswg4dzlBS+d_fd;o&UKvKVejT@)KgTN}RgKn`uZJ%oJS3^SXH|IfL`5EAj7gb9U~gbeKEMqRyg41* zgh^*)8CsnyrH_`aX^5VdDzAUf5GM0-m$l^mjJ}6{q|;f|WpEMB)5rvi!bs6?fDC`I z&rpbd| zGUn+7WSJF8IU8)OvjrWRIdpGqmoAc zq^e#(E|t-h=#$wZ=AwpuK-Zgxr+Ab`F00V$M>ikGQp$0O61<6&ROZsq>>gyJB^Uuo zaTi_AvlOQVgNd2yRS#t{M{+f2G@}^c;;9<;#xVw zTPI*Yf!7WCn@+Hrj0LvE+G48*@ioOwtd2qF=WBg=cxM#B!CSxFO>np-w(jh4IaM#$ zK?g>_6Fe0DFE?+6sequnq%CMvw;SisWQ1jozt1vZ4hPpkryV}eM1IuVp3!uS)NH~r{#9L$5Rc?LS*1oksRVp7>x-DAW6KK&TMOZM(alpO#dRz*U>=A`z8SRLKD zgtfFmTc5cbcE}MVBHgUGXPJR@Q=Ff44|L-aMqvpcpS}(~0P@H^8ou|xi+ui%=P~1` z|Gmu*pLdc0ftI>*p^P_+p-yR!f%qa8I7<$l5Tyfw&@QYD5!Xr2s8p~45C`&r58iG- zb46)@Zv>djCvJ_2kZlZNrdnJ6^g3jwN}?ja=+uo1msLuEExdh(o0FvY`p=}Fk-+QO zegCU%&gK0~`%}6t=xL(6^ut(sfaMoqe4b)zC&en-<}AP7tz|nj)_w|#vE+iC)+w{* zi8_KnkCn%*ZMNLBnxDjbyb?6^Y}G?DJ;??@BR2A_sBF3X?x&`o-FlDUH!>_Rv0+LO z=m{fzE@5JVFSz^(_V0KKuqGhMc4zjnW-?OTiYiXgaiky*?A``IVVKtwyE9Qsa$y>a zg;PUa;SmxG6hMKC($y8~D;d#w3Bdp@F~JRDg|FlndS>}?ct9Z7TgbTcn$wKzA4(_% z2n2o(OR~|7PlSZ&Ja2da0`U+d;$sx1e~!ML%nyJ4exddAv;RC+EOYHqy3zf}Wt49q z6fg1*Ejb8J62ED9nDCedHXT}_qzRQfGVj1awSH{8 z$(}IAk@-`5`F!ny;;#;tiVz^($B20OOaEV1TrB3Ni)nnZAS>A=;fxI4H8v7!5N-P)csUn&)T** zj;Z^K=|(o0+)x`gp;ER0(4v3nS8_!rB6x7-7v_sBU~XnTzkp~YZGBZ|tbZXg^qrzRJ) zznHJYlLciI-2w%mCg)|GESeN+vSHm@4l;`6xt|u9s&{X9x}Pr```e7u$61OVfC3zu z$ikstU%YP0)Be+nm5;(VraGFY9wXpud-HecQbuG%$$1+CWNfo%(G;Q2oXV(r^p={a z?0G4e1=h*PxMz!w_=>-f{|Co$6qm>R-UclQojxy~MV2!|=~>XinIC4(1IwAov|c0! zd-T~I3;u>(zUwM9gHkly0|k@^MoSaY3wfdP1QZ~$tRI?Udf!DIe_ z+C5y1mLwuGM!fXLw@Hy?jD*nXLa`0&;h$k2m>UwgErj2L+RK;aTh63!0Mlvb*uo-5 zG1=oH->Ia8Q9bM@1(X$s2YT9oj`V?b_4X9|_7)YTH>4!XKcN=}wG!i$i|`*Y_5l^8 z7iL0MShVIsx(>PftrHk87?19Okk=oP$^xlfscV%6n?a|DjRTvZr-u;KjmVsegUJCf z!B-zbGRi;2@-dSoG(A2B>|0PZdEqy9gVlf7o$cX>SaF#r>+bXkFB)IE(g;f8Z5{|rH>eE>I(>~w<3nmd zm8B8Q(o{tTOok3=xPvYaK=8{Nw0_@HkDx8Ga8Vkbt=x5uAf3y1$HR-?2-a?Ep zK>;JAh+n-E4ID}+W2dbWO@p|-o(l*QgWk{L!6!H#7$7MFNYKGSB>MyI>)6?Ih`>|x zOG9MKZxz>OA%FIFiMZb^A^;-fi1`b08KJ5`<~c)woeMi@v10lmoWMW~5Sjy;%j?Q=BLF!a3LcUK9i;xGj6c?0q(j>8kN3!jpplk7A;nqL*)fP*cc~L}_k+Uoa zB&7vmW4ZQ8bJn3;v2;>M3(;Vd=JQK%w!MDreIo307JmP9M z(fOYC_%>&k0>`l}iVTzDpABJ;*qd@LWpOC+Uw!p$MYBKO9#$$4@)86VG=$vJ^4})5 zbK-#7qYhMWeG|*6uHzQpX=TaY2Q9IPS?lus>vERvtEu_|VZYr3CzZ`i1?bTO&sFLn zxX88MOl8GLK2ktRuWe*-ip`9y{jL~Y+KYPbK`j45>E{(6fRh2D+^O3FxrFuk z;bH)tpcO|rAGPXwlY z6+6J>swQN612|j=lbA{N^U_O?U=rXjo{h4C(zW%>&<|5g0QP|naVY9kYAeK-0R;aY zOT3;M2q&Prwbav43;5PsMfAM_z~_P^C-exkAxtsNTq~CCTF9VYZsQ`iait;#A1z7VxLlk4X z`#Kj8!&XdSQ#PqOiDe&4<5`XV=Xe&dh{ct#*|7!eG)aS>H~>iYLFLTT z<5LrKgeo|I9#MbJ256n>>8mdRYSpgl;>FTy$lG0&dda@mx;%E1>VDhWZ2UUn2?zxD zCRc9`$8zPGBzeu=fh$7hOcghFa^0dy$&U#-16R3{P~pLAcD}eQ94isl^+r(QALR@m zYI%*lE9k);egRstZA_Q2ETtbyZt7=s*qV@>%$&F`5N1G#-tz)tjj*SYZI!EB8hYxj zx2srI;1k7<-AzJXzu$)*Jp!G5bdh1#6OPO=$Qkr<#2R(k-{_(cw;cL6tg%Ml2l)t? z4I=mC)$=IW!;z^cVsNN+b^Y(Hhu=<)6l6rl{(wNncyz8lfy$Pzs;4kV4*d*a{ch0wk= zEi^oOM?E&7!g~f_rN!{)j2t^K?rMQ}9WlD{>)TeHH*0=M|2_N!I5M&f;(r+GJ=jL} zyRq0By{U4DYm%Tk>LRX_9nNF^X&2K2ETA9gu^B#>hP1Qd@77%tvAH-v_@)?di;LX_ zl+_yyP%9~|Hm-nf7NAxxG7-PUI{z^ZGVp_c>|6t@le^sa1kj{_B>KMhJ6Fnx&>ID5uz)%w98jC51dGD;iPr*wu&kT14u%!Pn0*vLJ zQ_@3mYpj7lMfX|Tm*My!K_?(q?4?%>Zh|cLK>^bmkIYGg-t_STI-9}%y*=)SJmCCb zv^7D%D;{_})LHjI?K@P~Tr#(S8t=q(m?7s!vhNH-oVEDE-zE4h0N5dtSf*7fVS+K? zYc&;1HFwUgkTMx#1K|UjVVaT@{yy zp}RTE?;o>nNSue_9KFN;N1(1Ohp!FPQ+aqT?ntP1xX~sP{PgSuTtPdBJSBa?&?4Dt z@SWvKzszXz&n-0k9~Rzjg2x6OyM1}z4Pc!pKI5;(mOt)27GMJ~+E;R^dPw`P@bfz_ z7xy^PkXsvqf9VhG3@mREI+eCe9RCoI*+8YTOWJ>&WdOSFUm-v~9OR?#nBGy#mkv~A z>D&a8R*2YE^yClTUEr|&?#bimK$Aj=)R%#k+X>(Ee>5Rb0o45pr-l@^mJQ7Wxc$$N zH6eQeBp>LU$M^1bOP3dPmobfG%YBIhW=P|jb1D5J__0LOB|?D0v%h;PI25%1WXwWl z5C8E}Dbl7+um3y2|F2IA>-BbPz?VbtnM4i_A3Q9E|D9AKgJ&$*NzpHT6bTA$p zGawrY+%AbBkDO*dR>zK7a%y{ z``#;;V^Ne*6Iia(i5|rL2bX_;4(zV^ z`Gfd$w5y?xAB%U27O+L=_8_kL*=2pgUqJWfUUQ8Pc1wP#pUTIRkx zJuzv4bfswcEkmZ+zgQh+q$0mwo2r$|9%=t3`e7Io0EyIiU+d15)=Ny9FFO?~P%F1s zSvnG}A0V!IYSM?(Z4TTS!xtj$SKKE|fOEUt8tihoF4x(y?vA_^*HBNsEeJP)_t(NG zEYd;U!$$|Rsw8ip%yrj3#}fh2m1TvB-VQU_?%5XuU5tT2@=Gv5!X;a+O{$h~&M8j) zBe-KQqZ*^I#86m0;}iJ~KqEVJ^Hm_@9So0E-+g~PsP{uiV4?5(X~!(BSW-%1mE`vx zZ|z!Fl;1E%FgO92P6W>JFH_}~$T2Y0<4ZhukjM|;Q}LFCD$+GLGe6RwHpfP;z5FFS z`v|Uoe}jyf4mgtT$q$@hip?tHE85 zzv*2kF*6EdcH9W}x~x8g1OD2X-TtAvOvBP@c{)@E(o8BAC%1$Jg7u*%u}D`LE?2pa z{RVy09mg3xD~XDB2K6-y05~6^iT5|TZt*orcCG34DtBtQJq{|*WH*cKoyJN(VE5sv zFQb#^1rVp7-{)z5iQz)FkoxGSYd1ZA)K59`i*9Dg4w%$+>gQ8vvA=;mGrweK0Qr=( zbTA(_nB3R6r}g;-V6~g?T=P#?p22MD(O{eI*TsoiC$~kB>|^_Hoaz8wuljR28n&K~ z2203&68il*i0IcV7;0{r0EorRFv1o(Y>|%OVw1e0P7Q4V5XdJLt>P`6IDG!hZlKS6 zl=Nwnv+4+%f$m51{s9TVj84VWWeiCIMXl4M`=t+zBz}j)aQ0;H4ycF4wEZ|b)kpPA zFh8%Eekxo23|5r<+P^P(Pa79-Ixxz)(A|?!Cd{1{Iz=_}%Wlne{5LcEQ1k5P*FPT4 zlL3M3V=BteA{qV2_LH<*o@Rq!^?LuFF%Vh=ph>Kg<+J{BBS7c6sbR2w{a6Tg@!f zIyl73-|P9ku^ne-Blhn-uHB9Un=`f14;8$C-pc1uCy{?uJ(39b#ti#y{a#x__PKx% zF_`E$$__Wb1W+T|n^7q+-24Yjhd9n_mkTkd- z!*U*8P2!Z?v-_Z{7sokqMQ#yJKVZ+hU$)FOEv4X;wx2I%b_2F08+7{IYi;Nrk_)<1 zlIrl#Q1Kh>d0aj0gCT;dqlOODjvZZC(m%1M5p=pd7dzUDjr!0F#?$cbt~P(8y>0xA zvC`ZoEA@NSx^aFl8h}ahyZqAJheyFiP3~r)6|vwk_9xOP-&(f5x7{=P%!cZG+SYIC zS=V~2U)#k!k!9ThH2$?i`Z69{-e%3tO0eXGRCI)|7__T%uzpMOw_*}6Icqs1uEU+J zyrgP8g?CEXS1yPwHAyjc=GdJSMb(9_uH zj*jTs1|W1vg9z~)*^q6PJ=k=pe^f3|3Ssdc{MiK$2+Zw&#wh3_PkY%fZwKJbV-p=P zt9~iC_A3BzNpr*Yde~Ge&q(@}$b;Rq+WwuOf0ll@KII-91!RINWe-lQ%Ywr>n~g|h zC{6RlUpM1^bYE!HZsPiu%S}}UL=fpOco*aSQ9D}AvzL5i>AM!P3K=b`5^Kx`dy#X1 zLXqTN|EhH8yLR3(YxF5162~NQWxM%+`53em5)G~SX{Rvh_W`3z@4|OP$;3IYJA#_} z3`mb0v#yq6kw(Ja3~Qyj=U6GpIi~BPo}W1$fgsXA6fS*x#Nj}cbDZz^r$WlHBX$0E=cPXc69%-1Pb+GN^U_j3#%#)vm40>7-; zrZN}@T%t0FZs$wUNcO--m(N|SNM+(bZJ>a~q2FJ2v*-iOx(Pax2g7Q#2jm;#gqyYA z$I=(prWm!ChO^Bdp&nS<8TFHvQG=Fvh!8#GW|}d=jid>GUlo$Y2@1YG`rTt&o7&{4 z27dbIorq-Xa)S*(m2h<`Ugooumjhl#meXWy$f#ACP4Qf7D{GQn)qcEDL(}q7i7SX)ok#pTN3O z^+K?K%nUuiW;8$0h;N}EEfiig6~;VNV9*LH9$lsj_k5LVI8UM^R zL|fT*bJ~s>stXN`ny-7I?A;$FFehbhB|3)A%lClV4kQzOXiQ4AoGqeL+Z^Eds996{ z*&8C@j#Wk{{!{bfm6KKWY9(spccI%rF(eMI=s!MKi>OT1?OQlJvQQF|SGO>!_CP+I zFbw%69!Qo0U`U=2bp`(I(SvK%h4CIlRCevUc@t06v%e9Pqz0rY8ubn!&6J5{`)j$s zX^86KU>L|rqAd4a06u<>R;7bXUa_;8^GQsQK(##5GukH7% z@nL*4eu{AWct(ymMz*fcCaxlj=}KRv)kVsG`C@_o=zq2h+PKeEztBQAEhkE(BOU)8 zjplWnieERNBG43yYF;~@`lNlD&VlQ|4r+g}oO55H*;~3ygWtWNhA-JvLtgpF?J|Nv zw$w{DXSF5lT)`}b#rzJ8+cnWhi6i|zP(4p+*a>%KySouVFN1Z&bpXg(?!&XYd)?6Y z_q}JTBjuKUbdcY2?QjC%!Z>E8FP*Vvn~+K=`@uQv`lpUIL(YI({@_g{xlZEYtb^(i zD%P_o-M`S?WHm^G5Gs2NErztv`8sh`&Jf%MFy^?oh>`g|$ridK<#iRepe@%7V5a7> z?hZn3eq9F&PyOR1(r+&fzM~p9Mo-4VdH#!WA{h~N+|;|Ws6+O*uIPkHHsPH_Ufy7$ zVR#CzIdnjVU&rwwu&Ebs;8G*wymObp<-6OuU(y!yn97c++qdM}&$jRcnCm0b*xVT+ z9-T!DT9{1X4dWZ;NK%28ipV6-1t-6wuFulYhjw;#UI$<^hkK7%5;&_>jFkPbXlz~e z6~48afdWLOhF8=7nKu=V`$^|ZgxA{GZEHh>7_udWxIPqYRiFOQ8~|G5R??-C(>|!4 z4d|&l>oCrWO}yesF53Nq%RE8?6Xeu7?3;of1|Wwz#L`nALh%_WdWeFU_CoeXftR9) z5xXlYfJ+demvX}F1k@^%0!-_EuQeCx$ou+tG+>{kRk9UP_E0IZAvy|#vxvMlmUKT8 zaW4oo!uQi4uFW)a@fj=}tDgh6h8*M+kfj_Ly~Q)L0W^(NU$2>yBq?Pq%iIH9Ex_JD zcyOtnJk*mg621y|eeo*!0cdGF$fK0|Ob^*27r{4=O<}~{jf9QTKd3i~Tob0##C6Mk# zE|>3mz~983l66>BxM~a+;8$80^jG911)*6@;cJ3lqkeW|-=2>s8ZI)zywoe@wqup6 zscX<+hZT#*QRI#T4?KQF2oi1N&P9aJU+{PaHB$sE%J+*Kl=QO;3-=*-V7HgqR^%vR zgrZGPhpMFmHL}H!BYWy?^@q=gGJhGyn$-yUIVc^BL4GWQA_jvThw_AnvUufXNss+$ z5vsq63K<9Z>KsV24rRXOBMADvO{w7c?L2vmfm;bNgrRZ%@o3>4GLmbt!Qw8qLw&*V zSDraRIvnLkdyx-JfIN|qjLNR&OWI^q{a@k?yzYi^+=c!ruCXKgZ?~*SBZ-NBF!JQ` zA902hv7`Mbv<75>*a0JCVob)<{-SnKk}=pqw_(L*)TEBUt?sSm7t zLf-qvqw98@dsv{SE{!_}>6|}@RKDY>wa;TMO+UZ4A|O_<_Oh#x1iY_5DLnfp;UY{k zWL2@MbN-SQxwZpuE)ZCargSc%aTB?}R9qDD&auCj>Km-ddU*)1oPvg=Rse3Wd9Z00 z)e4An?4rU~&(OIV1LPH#RK&cOX3Pll z29xIX@=wCfY)12;wGZ2kvtStlZb{VAm1GE*hmjRhxmM#%Z1#sLdj6UIf>2VhmmwtQ zqjm(X*?d*)c3XCQ->c5Xi5rvaes;|P%rCZ}D{xJzA`VFb=|lXL#_xDM<1?jc1!Bc+ zTLF*C^1_k{${bB|(UD(Cz!xvD2Gp-_aYqvUx~^FchAbZj~77{F8+x z%CcckCOJuK$gH~`{~ZPvsQqVHf3z}>=E=;C6E_#KaW zvlFf=m@UPDrpP<%4j^WcD|1XA`lXloX6@FWLyn>~RgR={x7uHZEq7&ak>iH`X*a{t z0n*Y}5Fimnyv^12tLnEnzM)1kY2-^3<21K`1%o{8*WP}gk6Dkuk_LLo%&?@Ckq10)CG@J5aY3Y3I^Jr3dp*gKmoGI+G_|(iZbCs z_a;K%m46J{VG~)}I9an^tg)j)q%3b3nEsrB<~2}cP(8ARPRmT<5Y?C{jZTMJltF7Q zLvlZX{CINqzx>4}%eo;)ChV%FlfUEsgjen6J4~Mf3Luk7f5zge{uuG}SYdASD-9Xu zDJf`)3b{rXPkA8`bn5agnX{w%H>OIG2gu$TbcW9b#zBq4i@#6oIghy%51>P>A`L`1 z%O&{7mLsv2cu2tSq*xhl8G@z-U2J=N=Y0%@2o{V;l;OHRU@m-}jh9Z45R9`m!8BKR zLrBbC)(!yfev%mFi61;=V^CJmb8w%%n+-sJ3i}PiYHs={SJ!awM$*@(v!z&;B~3lYdX%!<@6K6aNl>Dg z2_}QRIhm^Xk@y}at9hVuHwUe!6C&DEp=5IuO8JN!KT~)3n07k3XC@xVm7}^T4q7@Q zEz``#hBwDfMt@f$se}(yf8cyCmC`7@s=A?mrB`n>M4Crq+UI8kRHdky46M-v$fp7h zUo@^viNqOTN#PHN#$*o~*S{SbO0@3lE4$oIxjhA;O;(}2SvQbpFnoCGfP>L9lAn}2 ze@k`efB9#UArysJ%fAlE9l5??qU!qd?|htC-$LxwoGR*{``5pkYB6}+;!7h*!Qv0; zX>m~kF_kx7Yh)ZF)1QEJ?RPBU9^|hc7U^(a%1+U)n8!I-6~9~?ym9}7$-x|=S9k7} zuI&;GPx6gz6Hwph{Zk;7m8ta-Sh z;Byypi4RqEpy(6}3)uFmYnn=(G=JR^wf;D;Zb*#p_Ae-a6=KcIV;S=(arNWT;MfuY zr|OS~)eA9|TFCS}_ClN)==24y^z;Zs3})M9S$5cv=AS>1AFBzS%5;;bq?K*~LSIn= zpCotXXD0S2j=xCXT+@IzcjLxX3jHHwF@^+AUt8dRO-XY6Rmc#Q&rNGc_429bVW2DZ z?)2YkjVE46Wg0feuJFtc9%h^-UJi1nbZ%_-mptG-FCoU9urk8ohJhj17`}e!OjlZ4 z#R=00+75*Fy#l&whX${#*=1cPPh`4*=7IO)Zd~vs=Jgat0Qv@?nr6{{yoL<{x}}tI3>MWTU!DePob*E z^f)_?JTkGL+tLHXY-DqdZ>N`ZgMr5c9z|C;(9>W)E)QP8!jzD8ff z*j$$xNivOd{^tn==!QQx5rYGE7{`7k{SI>L=}dBaXy?Q=B$r?unrpp%FoN3sCa2A^ zwCnttm?dT9@ob=cRKfiKibg7&W@8?0$hhkE&?N;PYE9ksxrH`ac(mo)G7=}LzimI+ zyp5Y#J3&huM9dKTprlwr8?6%^ymI&As-8xB^V+$U)WsA7WeQ9mLWXKxkK|thK>cw% z1$zV!CHwd56-`hQxz0*%gvvy$!^?~x)%RMlho$Q*9t4zsu6>NiBtnQ+H{yt}YZDU- zyPe*-MTdT#?m!U?P@DW+Ls8*9{}n&7g{aJ%s4rBG!aS@&7i>-QRALA7$te%0jo5_$ z!dE-+BJJtr95g8mVYhb^hpx1`F&WhF5VQ_Whwl_4hhJEz=sp)bqb9vE^C!fyd?OM>B`Z#myrGDo27~v4LM@ zBtV?0Fr`o1sR+z-#=z5Z67cA3y}mffu#H@SOO1h#AXKsO@P>q&2C3!|w%%}Vz!Yg2}l8;Xpsh1W!tK?ffQaX7H|g_3zEGUsu| zQ5n=o((@=KuZxStQQ4jl4jOJf{Cu~(I(`e>Ec>Rg<>GRzkC=%+Yu%?%#oG0wcT!jQ z4KfDK5vUbOQ^l5EZ7Mdd6dZ5Uxc>lHQdgsKrzaugCJ&3W`fQk>tUe<2_j~;wqYkHj zw>BC(QxWa$xKS(Y0OM=!GiGEhx#Nn3>Q|k74T@BFsyJ%D3eBwHZVj}&;g_%A271lW z^`+V$`oYNrA2yl*ctyjMi^Hd&-(~hGbHNI`3=gfN{@|TvEK_E+DS)W+wuU)+x#+W1 z*bn>nd&8qkGAO_%hJ#{6ucJoor0DzB;!UVQK2NBqehJ^^!h#)%5%?^nA1-zWG^!M} zhkgZzNKU*#4&gTEF`35Kl`KPzq?fq=NGjbASi~fxCRUGs2xv(Wt&8=;LBpcXll{cx zLRp)`bu~!o?vA-?mj4Qa_PKY6H3(h&0T~#=EC$eb&=J|D+ic@HY|9WK(HO-o$<;va znHkG@pE>S+p%qdxwfAQIasM#_xCVK9wZU}bdb)L%8FqP)$!D>w#RuPadk&-PnE6Ho zOv;ocBlXF55(4hlZMAVatQfP%8m*oSDL^tsNQ!oIbq?h86!QupOsn|t%9u{UDMKFM zCA#2;{gId!Wi2|8gsndka~2+oketD{Pc8BNop0ZVWeulAgjlZnp;DRq!U%E0vjQIZ zP{*Is^9Mc4Bz<-B8aedcCN_6)9pP^Pr?F<9dhQfp(Y!OruD%dz+t&|Ug@#}kf0guY zoL)Pfm%Ljp(gCYC=<)1XqwjA&-%NDARJCK7*)AKMBV)6rL*j5;%%;!cSOiby*#kl> zHK0&^{T<&EwsE&RmEnb!K52HH>r`mHa!Jf4KTW>~u4C)8sloZv66k?8mj9H8cD2Q2 zRM$SW@L}8sb;&cIu_}XrCMsnZs{hj!~XzO>sj{ z8GK+&rXC73OyvAEDkKPd+5MBM7e{3ec18(&$8KcL`E=f#o_L-N$LDseJoLkdl4drV z8dDg?g_nN!EWkxIG1LnRZ0hAr%}G9%h~9IU6tXkbYl?p;@m2^7@f_&i^A`DGz|Q+( zc&WZ!N(gc3t4E+iBv}5946Gl@sS#6W+#eB;e5++kUhs^Qf#MFuB}j3HQi{75FYfN%;!cs^ z?(Uud1&X@{3lw*PyS(AP&w2jm`Tp`T%OkZFKIIr zS3)aQAtGK!r-@y^i&L{}DB$Nexq%XX8=$oA~ji^A9rWuXE<#{I|GlV;DjHvd#Avi+*pS+eo0 zprdl(-Nc{ALbPD6(!#O-kY7ee);PBOK*%c z1@<+bOLGEX_ChGemZUJh z%}cnnfIjewe)SO8H~}zZP$!Oxs~ZFxSi}uSamYg@) z;>&sAD+_Hly~BzJwK3IdJMwRRQ8Tt&uPS_8>3Ts=)LmZ1V~#_12n8iNqy0=0b~_XH zmS#^2{&n)cl$Qa*)L<=-D5=Xv48(;sfs3MlSaiPe%l(BQ#> z!)yrTp*3A;=ZCHom%+3A(B4t`oefc5chWq}#TxyIK;L02ogYzoL#hu}{Z z?bXb6=+QcchK?mMO-v}TukxbXr4O;^YS{Cc{0xnqKlQVDS0s}^dz*do>y$vT^ZMCy zC$##o?WeWW`y`SDKQH0o+R-R$veQOuGVwn?W^9i#5|_Ni2&wo}g0XnK#*(hXAisOB zBmHCK7jqEpOqQtcRXo3?KiWka`JcerO{JdzRocK$nmtGa90C0N3hvg1k zcL+&KNeYKP{EC3aQ|cRO(wP#!u4y<g1HF6omCJw##QFUd0$>zf5ICB7v-G_A^(U!p%-28tsEot%Bt(Y-Y* zmL8kaiLc2XNo4-+I3zE)@88lVu;OY74>2~@b=@{5*IGF(mLCk46KbuumS@6zBld|b zO(+2u&25M&`x#h6CBLnJxI?d_6N7FE$%~U_h+~FEe4Pyx`q73=#j+y`!JR+vHKgoH z5*QR>p{+9+sx4K~3av#|cY|^-%_h0Q%d8l1*Q@sLLM~;~XgU9xID}>d7Jo&tuzV0C zdor{)mkE@P0KSwsOP~o=Kf;-wfT`uNlwCRyK{Ka4J!*C;zhUf53nu$BqPo7#t_fe9 zlki_4Se;zD4!T5OaN4KlcZ8CIS%xi>-8PnyVAgZu>QG?q+C45!-b$kWBmjsDcpXi% zmeI0e1}yF+-Q*M@p+BXgr6g;iI?&E@U6H|s;s9Pj-(Ar|dt&e7!(}?RV+kyPqj|q} zH`nBzinuWB+bL~OyFeQ5RZrJN)ZswxjXcVv7;Ki+v?vp-PUi$0z3d2q4sj^|L+bL@ z8wt6XZv^%nN&+TKZ{q9iN4`XSms6BLLF&yHo-8vicmFUwiSDQ83V%7J{y}MBOgFlm zix&G9>=JKf0t7>JuQqbfvs;m z)M#6!!{)VgO%~Y(i@o}`bKyRwdzpvr?}_v^P9aKW)gAamJN%p_vKg>6dkTGZ?q2;$ zyPyKRvbn1EGhLvIzw$`pb|?41y|dTh%98S-y>n5@(T9k;U)(#imZf8L-BGOSx^9GX zxhd>chNO9}1HA4pB1>qb1{nv1_GhPR=@Dv_lN!7b?mA`D$?Q3dHm|5hDNS@RrUz1f zRiYgmc!qFzrkvwUd(V8y!Z8O4BzRfAv{0ehZU%P(q;xX*gje=Bb;%}$_*FpOL=Svp z{QHuu4D+Tz=z&+9U7)r8Hpi~!fme&oTwGo8UU%i*r|W*ePr z8SsJm5*jeKO++%Z2e;Y1JUJ=Z=&Y73Fe20+b3ZRuOV)|HkDLux@i_$5DPh|-4H4Z3 zCgpf_4GJW&NGdns@xi#ugCGKtao7m)sIdcyYB==Zb9kvaDH$Ogl!1<+*ZO_UuWES_pTjvS)p0EB0@Hc&TFgh)b)CCN<^jon!4kfcebE%>At52Nat%=3VA> zGuR8IXKaeiU094smjcveUMF1*a>2`|FuiyyPtNpl?OqDC`{A=jmvO*s4~~Ep8Vd08 z!vL#MINy|Ofo}C-lB*;(l*;ZBU*ExA%eMO6cYGz=QJdVR$DT^NVd-KcXXxEqmB>KN zaMm^fJ}x)xzOVA&GojlN2`%ns0kGYJs5DFa#;9Gc;uIsPB8XPMX8jyK+V;bcQYfsm zYOR~r%r324AKKKXEC)}UF-a zrJ@Z4K!CSgp0uy z9{u+%(Z%!;5B>h@-+AS4$rejMEDcV6lqq;!ccsp?U&CaJ*KIoD5*g2(=TscQ16s8U z)#w?V{b{_bJ~VR^#o_Fk1LsmA7rhsnu0yq-@wiI@~{$JJ@CZ?OBmw^m|xa-k!!AK1z_xmF#r|h$HCIyF25!rAtPA zL5XbH)IiXlZ>3)tRN~iV8$U>h1Oo-R!BbZ@TYPeD`s%8e}1uy|$Gv)ep{QWpT#;i@UNSck@D zVk+YVD{oiF9^NB#8Hu0oT$_+WM)dq*=0vPT*<{a|23q@uCA*r@)+X! z)*M87EWMvEpY=FFT6c-jQP+cqvIiPLYr z{E0T(SP*&#WHJ|8?Hi>?u{1r1zUOq?2&oPX@L&CfnK_NJK{=Gr|DtkQ!18Z_NQ4dH zw7TJknbtvZSX>OR5BY-yxhe@zGTFf;GQHU#-*XOj(SyEg%u+zCMP>ri`~~HU)u87T zv96T5*EfQ+bao3)E&`?$H@G53WVaM{m1lAmZ%Z+-QGy$=V4DU>%UR{u)N~vR*AwZx z0z^UD1cn{Xe5A{w|HYVu^(X-o4QU@VeouqaoUgQ}me$H{>VCq1SjTk9a0QubVPyhV zalf;gmy~M{5Iu0~2)U&7_y^WyyejB*KjhtX2G_=vyRR6oi>FvD3Z;I`{+AqXc@EUE ztxEb$Winfq+83GAB_`n0yj>J4)^|;8e|&4nmb~KC){%6FY?mrn^R6M@KIuKosUN z{(OK;(+uH~# zO@KkStnZSNS(I1GqnPf(Kr;c>`7s?)(=MC;aQlGMbqALtFZAI#TupNYf%y3a%E!4W z%w_!fppjRJf1;0>KzKp2Sr1C?(i*w;OV@~O!e@@uIkIyaDRq$ejDK|vp7SrZ-Bu|$ zQJyp3j|fki`@ZPEKr`#E5Q7h+t;P)k-I8CP*K+<5Vk#KUdc=6%gnmIW+@*^*;m5Z} z+uO+V@**x4UBfgev~`qBjS@3tW}NSuc>a*SK!Uj;KulXRgn{@u$+94_{7w3GFH#C~ zuQxNL476)|89jkxhr7!gQ8+&{t$cZfeq7Kkb$#%HW9?QFXFeUe%0IzZ;W|dlkBXdj z=Sb&`jkcl}Eu)d!0)3jTDX$v~Ol}z-DgAeb(k<=no88c&ViUnv@&OR&Mu?T? zRaO4U%^?>@ru)qM&;cUAtG0>zQ~LP^xlfX~?3(ejp#vh%ZQ6bq!rRbyfvyHy z8!k-W*f_1R0yWE2*xwyuXOix9eB$CZ4gU>E<&;XOQ$z zXfvxHx>Z7Piz?OsM|5=|!gxV-WLd4IXn-!6zC_1X*uUCE@=r^qE)cfJBCe_#n45CF z?L)+1i$yu}yL0ceAy$AA&(%r#09ew>gouAMGfatMu|Es^@7{cjD-VXNIy`%QgS0>@ zGIL(IX+2f7Ek477a;^h!Yo*jI-@Le?th$w6*AttTWbKU9q-dq#`{sF)`tg1IQ-|J7 z$CG}VRO0StkehvfK1Ft#XIRH(Vzr7FH*Y7g1=R`Qc1S)=yN%*omt*uw?p%6i{Po=56ga!F+EZjPuDt|y1Tnxd*gD? zr=D-gapjwF-}Ax8p{Ke(7i3TMeF0<$f867egC}r*TQJs+&^Y;`cm-wUfZ( zwZS9Y<>vuV|CbG&`3!jB@zhmIPTGsEh(4^Y2mlc!I4`q(4DJ7s2>wHo^8ZLc{LPK< zMt@v8{?q7S)KOt&YT@Bu9$6|GU;N7xyvA^~XB`aTo0OSKjfwde-0k z&yfBaA2TG#DR(y=r=Cirpgtq)*Z*n7Qv)fO=&hXA&(Cksk!I?Amfkbt;1_E;EeHeY z$G92C$~3=b;GDs^@`vPee1Iu`luc{IVxSI`l=v(9JjoJ2Nwq09^fd620 zZ~pLv+jNrkv<-J@jJ)Zd8k?i`h0(I2{qiExu8U6cF2*7jueYH^uQe`N+G_t|F)hn1 zV0J~MbKsF!fj$MX!=ZAtDv{n`tuPf8eutS7R6J(;U^oQNT3iz~kq92q+9ml6z_DvD zGL4?migpbdOI>SlJeLNmDjYfQ=6v`j0A3CMLQiz1EN8F7V4CYW41`0^>Pq0zTCewM z#9^#c2^{AhJq1UvvHU)V_hH)n22;Z^7U826=79_-`0*g#_4dqt7Ci@#jTzW2eh z_)28&8=ddu7@s>{D~2|M?-Y-q$cL4TK6k(wz&ZSonz++3N#W}h)y8P{=*Xz`qKSSN zHA#4~JznQBf)o!$_4q?EpxtHZdGNh;N(pCx+-rt(uye*-<_+z|1i%)Mka2+B@tg!`NPvL+i43Dn%JDn=jj|e%H;EYprAM1CBCECPg*-r?av=>EI%kN zor&L@>53{`<@}xN6n)u|31%-3HxMKco7&YSUouMRt;kAn!61%BhCAWQQzGknRM6e; zDZ)4*=s}KgVg$>#is!qsXpG`9WbZCC^1RQ0E{M~&@ycSEXjf~YxFG9|?X44*9wWGH zg(vyj)*!jJn@l6p3F3fESBy8Le*}7y$E}(;Opc}^=vIN^RLymwd-w&&XhF4Hqv8i> zJ(g;?WLo^bbYHH^Rv#y@VJ)?IX7*k$H89Xnc)_T3-#TS`C#q={)OlU${z6n#^GBd^ z8)TvTXA}laN{dZRk)gf{>{W)=fNcpzXjXWr+_h?6y5<#0jK}Y8(XjfXKsTzlb}?() z=mkwXXgr}~&9!Ymu8LG9`T_fTmJ>or69{sY`V@We4S?z!{7AYXggaABYbP@w5%5th zvozWIp+s7|yqZ4%J~bFBdJ6gGY$r@*W9P!bH5ZM?;yJ8q`MQC9u{B7^ltQaqybFThOyD~1}i!;)(PN& z`JC-mK(wV8dkL+%Tc1-BWW;CpH#SH@*7lk4!&q>6)&~nirhebfq+C=elLF;_#fH61 z?|>=(*8k~~RMvcc+Wzfl&o(4bBv}4&$Sw2zpnMtKp85yG+H-45mu~;^A6bIfCPMRM zuSZU~bv1pZHC{iwa=LWwG#or0R6-65Z>=XrCH!nJLBD=xx31UQC8QlfQ7?Kfk*PY4 zWn=XgId!1MQy1Dsv24rrNOpK1Hujs(lMWi90cFiU`d*9PTnnKJtLufl&_=GiRrqf+RQ%P@=BXYJc8g_q3VFJfBV}fn@L}- z2-&O;S267GjG$0lrHx#QD+t5HieWvMXRe9!{)}&Q173@+z0`NhslbbUw)dUZ#i?Z% zK;#ty%xAif`1>QH82V;nI}cRSS|m2DCrF8hNq^>-oacIIwJH==&g!P-yaaTF{7i3@ zFh!kS;#k&eD+mH_lxo&B!B%6_p|I%odUJ`IHw?*khm9!{^y^970U_qaBAkQ2K6-fxgTfR=hKv!v-jFoT11m z8=AG%EXx{pZm6^S(%*H)U&{%J0yJFTZ%TwvOA@43DqZ5Z%;bmMr_vG+Zt~rl6R@mh z{QTwuDYsqEt3^4Q}&gdV<>xp-~KPIbmv zA*GIZ#?e}&Zd2ZCt(LJZ_qlbkUFN2C{!jNq2kGDqJs+S-EAbkoVt+q))vLeC<6iOf z^Je%pq_#4%8sr$YKcD{I?re?=*{8#o=&d=r&V28Zc~DigLRM=nhx;Ei?hwR|G=oMN z-w1NT` zv*dKR8KV-Qz9!PKg&e{r`Isa0TJ(j!I45*0#BrU`Hw<>vmT)W(#=_#jbkoXi7+y2g zha0=E;kpy*pOU06KaMOI2CBf~rU)+BJtfI#>ir4Ysi|)u-fB;fA=P@g)^}>mz-~>? zsf02_#=D9P1^YrDuyF6Z*)(*NnajOerg_DjH7n5IO2dP_>0B$EN@v?0vh6UMw5%9C zHc=?&Ubn^AsIf4oAixfBULSn-^ne)vX;1&19q!G%bQ{CgexMF^6aQSbg7Urj36$27UymN`JK{V?5P?<2 zVwWcFzFg(2oOMwWw*a6kG&?>H9r5mfxwzj$!^WNI992`u!$buH&Rjb37QmhSv8G{{=Gx1CA*FsFapH;lOGDX-jDXMW zU}8Q{xrjT@@o=AM*;kHe|8@}iP`r^Fk*yya7DP0811KJ)-FKBNKo>^8*ltbFg$rBH z4Ri9m1IQ?e3gX^VEJGlXEqy&AX}W||l7^bZ;vyr^S>@52qhraLUq0A8b5gPL#I~UF zeb4CtC&t!UQEO&<3#hH;(BG53eCX0(1xa`7)LUIYZjZ zK7x5v&Y{$gz47zI2T?MD<`KtoGhR{MkUCg5W&H*=eM6Yp3f4jp9+onLg?)33p-Gl3 zJMnqrT%qe4B+`@eZAdNzg_V_WVOtz8qlW+@xg>FUBrz;N+k{9+(hLmvh&a3@Bw3=r zCQHSt(U_!t$JGg5wd**D52kz5V5mEAOlw zb-`#-oYn%M!f&TbN_sJxeDp{@SEH_KIlAoJ+vYlc+*7(%qt9+;LXp|TeJ46_k@J-| z&V8y%3&~7Lj0<^!`*&2<-&uj_o!^D2cgf=P<_uZ3>@ddnSYND2du0z>YafHHkuj7V zv8#Om83lli3@?rEL?(($!_ac4x7Tf;lv*76><9{+Yf940(8M706~{A|Z&h)Danq%2$B^FY_Zb$yCne))_2kEK~m z>}`&v-EALYIQb;yeh=|OR&BN_UYUT()VOd)^B!vI_Ogh{sqiWMnC@SnXVH z?_sh|3@(DN9HlNstyqYP_Rek493hh69EZytaeUG*hS8DMbXOLW$==L~yePC*hY8&SV;um|b4jj>fSfRCPp)YC!AI|IyhGFd7zV zxmy5hk?fg_=T6FDJ{$IBZW^%m0A1+t0P2!fko;Q^V_to~VqDz0-|Uv;v!ibvplZna zMg-y>?JIpn!mFy5`&tJ0w?@o9gos4a#z4}}`p?KqLh9Jf_*W?dK;5GOeYD0}3dx-Z z*YYTJF&b_v1Nz`}AK#hwZ5dmlSQ(NEGq!0H79w7Yq1FNKKNhTl(sXxjHzs8de<=7K zo06SV5hSkhBh&r#d(?b%35C9eS|qq{x4L1F=v5-xR>@zU*6a!NoQNZqB(!*4)TTDF zHkuB;T3;pSX9L$-3El)yC`o;aUIU%jm{!J`NavI=?xk!)+@M+txh=7lMu;OFc%!2LHVi-_R5T&d zi6*a$tozw{)29VDVu$2g%UJq!`#O>F&Rsv+m^v9h*wk*|kSaBJ+S5CI1q2TX>|SLI3| zV$PW0HRKNypG#2Cv?Cx|R2Um4Hyl-$%1Gcq@$b6}53q7^7idYrkqnqvkipBLCZT5}kEs&Ikk9-p-nCRRQPpUbKffW8Y3KQEHR`tKukIdYB@5_Jc zPQmSBT72|!`JMd2ejYEsB!=!c?T}p1F+b>*I59$I@MD{QI0F0n?5)`s?(IRei(?tN zHx<&P%dA$N{jpjk6cygr%(sdMJQftg@K}cbeY0CdB|=!k;TLXYu*WBc{Bnvc+@{1- z0<2~h+}KnVOS=xry7W$#klM@Y0hv0`1#R*|(+2tWSqoKapnm6*5nc?)qUfWgKrgx?#mnzQNYW%BPp8^Y;LO)1>Juxh`&B%_RWL1I)Q8BPZ!O`YzrZ||i~xy9G6l^y9m@-XYyBvJY#zVj956?u&4jQ}xDbr%E{r_PI_3v| z^s(yIo;K#~*qWq~^Do*PI8_Q#-w#h|#a)Wrz>Xe1R(VRs%zcV(g?y#Y%@x@umKG}> zdt;4`Ts30PgIx=r`}7%C&1Vbomou*WY}VLf{M+l^{jDHqi)_+N_}*<{m%vh;kwDY-!q_b5pHynY z0lqSCev*bQzZ||FwpkO&R|YP~{Yy+^QiIwd#G|I6f9CEHXP7_#_ zQF+P6phx>guV`yRZ{%oQnk!E2QL(Ojh+Q_QkC^mE$B2*eG|Mt>%4zg8XU9f&W#bL( zA|Fgk(JF`DeJ{h5wd`5yA0Tl$H0%9QxAyzU!eh5Oy?`MXs(sNtFBLd%GE z?+n7f@{1o{)V9r@zMk;bE%o+%E-<**)v*WI9TS5R1oW?2%)H>k9IANf(Z(8NoKs3fjboZ_ohpZ>ghECrj**N3Icp zsZki)UOsc7<=ZK2^-;G(M}$;yy}L?)Ywysb;YmK8ZS-i2fjb(*}#-bWW)Wqo$ z>Z)Ku5C0%u|5`Y7KgXLdDh&}Y8hN^~)9B_TI)z{sx+aSp{L*@52ss+8%CKm!<+hpu z2wglH-rfV7^MTNuO|ou0FG{pqX3l1ZmvruO=c;SnYcl-r&8Mza!icJ1sELT+51zn=osv?&Z#&+r&3}M`JBVis=#LUagAGi46)d_6 zYeEDwZi?**(ChYp`y67zy6tpjTog=4Viy&46Dq$p#pTfB`f)8%x@4J6@(xP9OuKT* zFN?QOfqC&R(aYK8T2Ass3`Q608hF^=QlAz3a!zudRo{H?+j~2luTHbZ^oB%0(s`w^ znEUr%3NB_NR^5?<~+wD%}p96g3s4haWcw zvShawwk>^R^8NhsmG--qn`LOQFk4c7EctwHWKQC~6LRLnn`l5x@r#-Ngg0V%epQK6 z*N+pnU;g!u+Lu;Cg3xIfk~54&s-4JXJ zgqW5{7X}rIoREdol*2s9mxe_%_R}--GY9{eSGG|B5G~7(S{3Y*FvdKDWZl!s`CNjT z9SW#y9Xk)=rhy`$hcHz6fyWD#9m&?pjBt%qN|O#DvdGixx7I!Z3ZuFA;04j~^F*_J zcf`U@4!%}9(_q#GC!{e5yW@tKYxz+3IScQ=jr3I_V-S-m8d&Q7K7FxUYkaIhpP*Mr zKr6thDRd&#lZPb!Ng+t`hrVRg zyp9Hwr&$k7GfT9UnWeue;E#3(1vVv#t&)sJ%*GUy;ET;FY)@(gNgT?M&|$|5&=gV) zoRk+S34Jq0e^jz{UQ%uwKrGV0!kfg8^6~@Mh_kbszXjo1=aG1{s1M*vEFaUhO3dBT zWl;;)+Og(^;2K*!3?*soY;EBMsO52iDb6C+>izoHf|3x$w@sAX(}rdxzvH1wudDBf zZ2DKqhdE%6GpMEtFayZF?GkG0SknIbDEFk`2OK*-@iAs0M2Vt_>;Kq|D=l$2!}~r$P2MnJ-S*jumIo(paDH{ z6oVasC)&(GpnR-F5kN_lu$!`c4P16k$QQq6*{=NLmf`ZzGikJBOi7sC=t+k&j2E^d zv(t}-i0K)`1c$dS9Quitw=}bLQ0^*s{G7qLHU1NQ^qMPfWz}PDB7n!Y-*zu=I|cb< z_f>qgg_^BGjEgS|UT1Itm4lVh>goL^J!&%ul3{%COWwH(vkAZ7Xa)9AzKoClix=5r zF~(A1US@cbcB@pEK-6y8&SazCDwo|eWYK28n#*@1(HOGXmEHtJi>P^=l35%8i} zS5CVWJchZv7~tMAv=Tf}rvF)$&FW4@IqF@?A$fCP2$iM|0isz=s1tVmt^c%|F=(^o zA>E>&G#WWhrfx^?LJ7u6f**C{@Cz$5KkRtK-sz%tdpC^k0%&x(*~I3!fjmjv0o`&@ zS}67Ro{u4}r%4WzKKz!0M``fuk${~V`2p?dPz1cNX*YFg<`aJzD7&UL>*IYT(VQJ_ z&>~{YkaTI@$A`2W=^a|-unx;^ z|2fZblV*oQgfdPlg_9Z<{T25{Eg5g9bVx#g+Llsq=^wH_K zHYdg{6Gvdz<{t#!peCoj)kDBl%be*iaXpM0WAtsMzwI3$)MSpxVV|kUH@C3+Jen=A zGJ?hWgj&{;$qEhzLJir>VEWlkzCQ-uLCsIr1p!!30v1ZX>AxH65Kp3+{XnBZGeoR< z@{@^3M{BZ{Lx1V7e# z@LB5c$+~y>=vbw;$=-b!Gu<9wH}x-S&#a0*#aWb1y6r~^HKi;`r|}eM;zqQa`rM2| zzP3?hE}8HRFjHb3QmgHjWKslsbuIUv^+|yD`|IJ|Ko3>;H>;BPQ@Lr5({K97N8omY zL)-P`(ww7?hZ*`BiSFa&4z$psQHh)z-^}8?+3kT`6c82aU0udYa1++vZ;{*Q1iLV@ zcoE*(mqmSm@n>7H*!qB(n$Klf|tZF_956;Q4rT-GM}ti53NmeB`&-??JQ8tZLl zkuFX*&h3I{e5FrUJLw-#>%Gl>#+{sc5}vuSgw~JmuEKZ)-kBk3LV=w&HoN&yi=Ca6idu`TjJr7 z?kPRR>Mvh;fRV@U_;K6E*&^>^d00FxBK;LL%~=n!Iptyf|7SrM-Ka| zcUE}4<=Z?r>tu{m4t-Fghf}takj`Ye7W%bT8`0JyT+Lr~4Qakh0q$Wwx{tH-@@;!0 zs1}-4g86}vOKkBr^nh5WtNx7{tvT_XbpX-s&lH*SIVs$7Wk=uaXy)`{PuG{)75a>q z0!eD1gzi|n*`jtxba|UL|VjS=zF+(Y+#PK0XTKNM7t1W@LRgl`W1e8!y3x zFQEl4OD=MWA*6qX3M}B8*JdtkV3sABxgm_}mwH;Wr$K+N-Yb(T^&8ej+ucDSH+54i zLDvq^$q>-Tt{v_i^G+kIJ*dz{3%9w@z`+AgLXsMN3HcD0U z@TNfi7FzLN>ubGN0n*~!L$Mi!%jNV<^&3qnvzr(?(5b(oZRkCnc~m4VA7AwBi5_}> z;BGys(n*)Va=nR&`k8Okt>!^Koc@q(q0$t0(~Dez2n}5*nPmX&f`u z934DJl2;uZm?q|@(}{6XMgX8bQz4-a6^=MEfbLnvVs|>&eEWo*kxF zh9e_?5urvAgWM-LQ&f*rwvV+HFmjC-1*9I>dR15?;EnKoXuVwIRNB>{ji)eI{Ef4+2Ca*_$MnG<68?r+XW5K;nuUTsSPmKvb1yciPky3O00F@Ii zD>i(++4gLONNKUitu@U~3Zfmqz$0RJL>ScuZaK07z3Q7e*KV$7KVfFLW5-hvMy7l%CGaCG~*nh!66AJbdysnkl6 zFIni+3!!_3<%c)wQ;_KQLy`<}Uw*bHq^HP-wk^{43eji$0*yyY z2IP`7$5NRmDct<=nyWGh2rT;?VenVoseLvpX8H6TP8sI{{>^WPND*YTm(l{})wvIE zG+ejCzW23pO_RwO+09ez`JZPN9?cAn4%64cJon4l=@TYLOK0b|_q*B1KkLg_-UX)K ziEcahfCHcuLNhTv(!)D!5FGzmTZ7Rvl(v%_kJr1)wX}j(!<#RSv62u-!ukwhKRBGn zCKwxKepF`_LgQ6dTckj*cTISKf4E#W!mfIja@{EN)Ncm+U!|-Limw>ZLQ9tTm)CpW z+`i(nx=A#9+o;phA~z{-qIvCQ%?bPVA-Ls_K2uvefsC`iC+l#mRs=zXYfyFftI)J4 z5wggDk?lYRJ!%4($w-h-D)?(H{IP@sk`IKvO*`Qg@(`AK4yXMh&}#Y80+>v>=KNrS zivEkfY(9l^u6D9cV>7t^@8B#nR<&upDJ}n`s6MHjLTl0o)woywKy_VRBX90Rd@YsB zF&p&T^=CMz_2lfzR{(2XRON>f^OlULN!8(^skfyq7wPtsu9LrY%8&$?c-B?48&`Uz zVLyB?6vUiyt-ok#?lOc03%RD&G<T+n8=UP;ZPEX^g501ZdYBY5a^ejXe90h`m&R+ z$IQUyx-pU6>dPfK$h9$8-@6g18P+T}V!Et>#&m^dFX)2iGMuPY@Rd#9%8F?`!p#E7 zV?eFW5RYUhEP2idgHg`tZ1Mm&Lz|bA^vLP>kx;*`Io3$U&0Uo~kPuTH)6tMTXoz{t z`=ZF!aXQg?q`#$QDk2e8KZ=h}yP!#Sn-p_owDJR#($<$X%bM~eas7*D!jR!7REHfw zEGNgAInFzA*o%0T^l(vsof`e=7D+hCTxeeL-ptYMb)@z^KqJUEI|%A+r-JdcYtBulEydR>)d{@;X1AS0g`!;n!P?Iz%YS1 z?9x(>9Wd}OU_dzAi_u4Qcl1-CiIYQ|G!wj>u%XH2cdV6$IO+jnXa+J}X~)xgyu4OJ zR8HJkj?{57s8LUIKHR$wn!Wv~ug)t%kJq@BFbe+Vfe$pi`AIhGJ$t1iuVCpZ)<`gA zN?LhMncMG=!B8yU?|Pp%^+=nfCOh_I_Rn*jCSEaitNiLa2=POwC$fuqZ;fymO)uqg zI0JtvLH?_QS|v<$So`l_FxCemd&XOZXqIW6lV9`2jzY$SECrJ(J{_&u?_BKq0E{c} zCop{H|>W0E;pqvK+KiixQst@BulB|yWU<2TYh7~1U+qO z(;R_}BPnq41EUfHriYjNRGMxC7hAd7LMft+QmJ^Ol2RXoS5O{#!piZN0zef$FF3Mp zc*)XS{W9pP#ohx)^@S zl^>auGGO~ntMdwFi#n#{`%eR64^3N_WBI&vv9K^mAmf52W4d6UhxZLDDwDM5cVaPl zJxHdwUUxy4kBJR86?eG6?9$7Q^z>bPhwkWlQR1FRQ`>q6jZlP$Kg-c_P08u35nPjb zvMq%;13kpy4>#rARL4}(49>K;aZFW*@rQ22oTj?E8F7w=(KKPTWlPz;lyJ~l#HDBT zYo%Xb)vI@YthT?D?c+>lG#j1xeV4B{x)d>6?x!8oAUG~v*FP|4T5Qh&Wq3q8vU=ui$MazXDbFQjCDm zd*gR}4pxX*T#|Jh<7BO3QqtFoEWD!lQ*FnOQ&qePES@&Hn3`@<9=L8!bQ&m<7Z`PU zdB9UMuX17DAG;qGJK4Bts(Fg;*sps=-|lMMX_1fa%^< z@v)v+BIEkTu_k16a_d(?Ywem7_{)SB zvCYV%a?7+u`Mja{Fo5Y*Hq5TvpzA#&NFoFFhHjFqb*AFM6_8fWnbqwu&}_{|H;e?V zCi!4}dQ@VK7g5e_Wt>AHvW3qeqPbL=uiV8*;-@_69q>EA$*--+?vT}_v29fQ!KNMo0E)oc%O>zErHjM=VLvsUZz4opI2O}S-bRWolH5)@LX zrPi#ueZq6!_aR2>e8oaB+ny&QR!dlSn$y`uwV6|+|Et4rCIn8cAzVe7iZ`d{BJLis zD`ZZq*a*PTmx9LD>(FM#2STE6{A;P?M;Op(ivFF#TiH9fGWVii$44#e%Gn$(SAyHC zsM?oL)Y-S$ipVUNVmOM&u1~rbVCxEc%T(I7;uhZyGGgE068|$-UMPvIQod}wue<_N& zXDbu{8RZUCgH?M?l54-MBv{v9vwgukQ{dGs8feMpJj&{!>4U91l`L4gu3AKF==-3o z8|5j{Ds8uGCph;>N`Z6P*7oE)WO^m`Y$c;zjO!pL!}N?M%3}3H#nj?F(>*uG&A$as z61yX<>QmO8l{}Y`zL)c?T{K1iRthICj0JW?Tvbi~ROcqb<)yo?1dz2ZliwH3wv8f} zys)}E1Y>LU&BM?$-}fQ60#y5ZT#)r4U}Es?iY#UdTCL|^3g2dCB3U`Hk34mXIz5!O zayyZS2OZ<{pj8?kR8;z`&%Hj9V3!fmNPg0&DSMMf=VYaRwo?7xE;VS1{>A)Zu9369 z=(-EIh)Onhx6dC!+Pf5!MkIC!jBEa#CtLDsBL36th`|pcQymDDD~<*$X*%iGDXq&v z<3>P})>+<*7Ekad5+ZUsEbVP=CXu=Ao~mZ4 zlbVwVRw=GzEl%TGAr&XdHjt+hcl|gOVN^c4=14e{VLus={>Ww znswyeZ82{C&}di?k(BNvU0rM5?oy?PcEtX5!Jl^)=YDA{i@}jYpR!w(m3`ZcqayLv zoxVwrlzs)B>vHnORyAmf{^iQ6BfQL2a~@7@2tz_kTY=yQUR^&26s{;VGX)R;rLKkK##Zqky)*{eg#p`5WdK6Yq|4(zi( z?gAdQ6bx!*XPYu)r15s!(ktG?(B&R~*LIA~mJrWx|}0h&onu9z7A zf$3Q-oo^W~LCZLwWW$0TiCyA{6GM3!S;0Gm=`P*DM{K0ONwx31ZK6ssyrrJ7{&W_} z&&RdU6dl-`?}RSk`JfEh+%nD>I3{L)U0hpbq{_xFz*;_fS=VE9y-n0fM6MpQeuGry zMcY16!2k&v70ns#9nHqxl`zvQS?=#GN3s()BV;_RIH%A0XD^p=YceKSRGvo~7`VJF zBl5-lO{zP@XQGYrnn=?=JP?KANI~M{_UQ$6NI#GoQ1XgtapBwVYBJ z1{!jy>kuAxXCp@E>_cLWYdHyQjZ&4DClj`TxQK{i-HC9m4B9nW3!6{hX1(5SQ%gp) zWej{n`i&H2dI#ctCH#QkD3{Y+vT|Bw~^Z*J9JJvso>?jy{cEu znN)0Jz(d{=e#(k8B~byx-Y2PhUc_ld5CX^!O!Ev})>YKpN}bWhTvCi5fvk>=*oy&8 z(ZR$XjK3K=(@^RZ+Ifv|-2!s5Svp)a%PC_u=Bd<#DYU$3tT{h8o zEcpAT=(XaTQ>Q&CxF4!4$_ts*+A^P5VpsBbIuMnKGwt^}W;$cSnp)7g$*1nub}q zj{<+M_{!)2ZU)8G*0{PHk&3H1{D<__AZuZ5z{7d%Xmy60imJEGh%8ch==Qi-$*Pwwh^1K6n5KTec-j-NA|qqf^mqQ5`;MLT#<9UUf#*0Lw1ilARRzb{TGQ zqa@4(kYl%pBw15d$BcJbgzJDKyW@rlUD>-7&tB7Et-7U2 zHF=GTz8T+IkFjE6myAVcUyM%J#0;sUI18dhbuCt>tZF&8&6t^Hm{A*9*l+uyg$EY2 znF#y!7K_3w&kB6|ReBm(1D74PyK~(?s&Yhr9q=^?|zH`3vA zX|=f2q}e%vpDHpN!PCqnkv%&VD4Oqs7qEB&2m#-n=tl zM~|_<`7v$ZwJ%2JGKsIYAxrX@G!V2YVe_g=oy4b%#do6}?c!ozp1eJnH?iksc(nER zqfk9P6(cz_f^HuHisJ6b=LXtVU*zR)Zo|dwPuBmhQOO_Fa=0 z-O@WFZ0DtB?A~@**)2``wcXhJeppp}TEn4Vhn^pEatk>@+i z6rWPIkOW!g5MJO^FVYzp+(D0;_RwQYKScSG9?iAy3S)F>Q!cDG)4rPDEGwr^eAvck zF=e4)rgYdv!0seEht(YHQe&;Bmc5V3B6}|iKU*{2*Hfz=K3b8}5A0`!x4-fwTn*qd zPMCbs92xGQ$Cg?TJ;qk`Xuf?{ziPJgE*30bDtiN4&o`fl1RadebY+=e4?%eSg7_1E zKGl*{`%KcpY_iB+SHrnA0*ahb?j>VxvAq9iT}>g#2@zp^bEI#0%C7xwm@|gSm!RMW zLNPmHEd}iS!Cbqknt0J4Q47vb9jRZX=CKh=U!W<)d}eUDHDplC9A-9%egTaykMLK z6=4jey=fY$M|;|LdCAIGdczL=Y|}{`sC3@7l&|^L5-O5-398{U_#1_9ixYv6|s7>-M&lp z4MyZrH?>jt=QjBzuAkbp6IAPHNY?Bf-yp#D7|WkLIfGT3tEy6C%X`1mcq>`t=hnx5 zDn=DO6@%V0Wru-A_jgZ*ck0mtG82E_w9wCW*>a!Vj8xulCOI(0)!$52#WQY`<9QEMK{J`cmpEvD>A!`JuaDO_=AWTS$OWRa)rESYf; zJ4>$Vduq{11EMF+2yvZ``jyAiw(@y4q8WO{-t{h{vf{$H^%`AXqM*HBiwK{ECMLnO z5V~dRx;***Fb&(1=h^mMawxGZNU^Zyos=w3jH@!^nT_sr7VU}$R88El;@M|3_s_R3 zwWA`kICM2x zwf(XNe4+4OgU2k=`lZ{?@7-EWtLxRp_FX~u1lgI9+dJ7Q_>#CvWBM*7ain2dUDC!T zlyz2~D^rTIS67oop4w3NgloG>MoFHo!Y+m{^0-53?O!LOxxY_px4&Gpxy$$}v_8yW zU#Cf|5r2Z&Z94mxzdAh*9AStdy)0LANFoz!E5?=fUBgax+uD&BaMKMDXANT=q`9Z` zwiMP5hkvU01#Z>7Xl$d(BrZm`nk@2^WL36S?;a(awB&)=8TT4;flkG)MH@L~-4C)h z^IA!CL-9!sn;<{m6W!i~ea{AoZaH6z&pcAEx((}Kq%q$k&zFY^0O|{Un>}s(%>r3u zb7ixo57MLy#!k`OWJfCe?c^KN8LW9Y$#TCxw%z-)YTn4Hn-Rv@kvyA!fxap zMpNi&;MJeaDsP|Gc84W!p^H2iDdoU+cihSYWuFz zJhH{Ex>XZCF$XsFHfTlmAF^Zt`V@V6q{81??4}k(#aX<&lSMY(s@kv@=CsGH@)LiW z8sp(fBh2Qjy$;tSBgax()ktic<2>>u65c%VHA9DS&KLWFtq@=PTIJf zEZ4cNFPhiecS*)Y)mQ4%EMKt|2LpTjeCmk|*`awi4i6?wteGoGawCx@%{W=4 zsG7J(Ji9nAaT1wdVO3MVvh*HQJnB%GY!o}3Jj;o6sTCsXq{`tPI8;i$f%Hut4)AHD ztuI|ui$|9?XlkQ^biFnKggW{4SO6{AyAG}Kw{o!^kA)^jv7-G?#Pr_CD zrpN6H;RVhVbuyC>US>yb3!#fk^JcaOXK45|i?8GER%=(ld2n0?@FH z+8DdJc9KS|%UmeSBrTR@^|tyk9vTEig+^sx>uiwyy`5{(h<5h&b*}u;BvJORPs?mI z#t9^Y8dvr$nl|Rt9ec#f_y+E0M37ugVNN(X(xWU`FY$M!6o{}39{M(X zx7BMj!ra@@?O_5xV!s&l8*7=K1+PVSMe#=MyHx+2Cqoihw!4v9C*gsal@@MqM0zQ7 zUGk=bFZHFvaasR2r`I*NrNfc!-|}Gr5Y?EgGrg1kfDR={=%kdlM&NzTvLpwRUq|aD zN!~RPNZ70L#x}>`Gf?K`Ul?N`GUanLfjh4UTT>>bYBxpK%5#{d+gn&eJ;m;sHd?~v zy#1)zVKfhG`?y-!!cE{LRiYgzPU)Wv=*VE^(Je}E($-faa&l-4TldauPP*CdRn%|~ z>F&$S+*@&p9;0D$Z!BN%txgeU`*K`8sP!^LhI{AJWNd#LmdQP@c3a#aTvvsg-=G)1 z>u9EpT-L*6F?lJ;n2Tr6bPo#%?A$tDar&vj&dVvDYVoC$+J?_g;ufVe^}BM+&)W2V zpB!8q>!XTF<_g1MC5yW%fs=x^4M`%G|O`@54NKBx}aXX!ylfpawE z#$j|wdG$r4RZLe9TJ^qB-P88qtoEG0x8bHD9K{pBR#-*m>5R7F9`q!#6oWD%X__(H z=wPBX!;Ii^CDk?y{CJel+Toks!_@E!x<|VL1FcNhlVdJ*08n<;Ha$lPW3?-@;bU6OFUZ zu8aw(OLh;fMLElFk?KjaQ$*LA&B^dOy5D2Z>5!OE$Ay81^->~ub$?Sca-RfrurCPs zJ9tbfhV;y4h#t!F{W_VeYOh_im4|uw*)8|;- zf;{0kq_>^5&!W$<{&5? zXg+UxQ*cFuoChssGJOn7?d={$>0otcQEHLeM1T|WMQNp{YNQE2IGpsRSJ&_AL~EK% z_KS?eQd7%&8SN-&x)qJNRUchZKSofxrjAaX1;3cpl!BcEiCA-?YumQV_%YH&Ly-Gu z!%_v>W<- zS3ZJ&RBCJs(%57VGe4R$+XmxZp{>^68|KyCAj0;otfmy~ws?#F-hTA)CN@pWIzKsI zdOqb~5zMXwgRTy0X_Q2HS?qW{?jDwQhr5gpewg7oakeHq$Au`m*NpAfP#$OzQxZ~j ze_gl7SJ!z|xG!hklVzmlNJg;GtB|zLB9+$+HAzj>R+4wM<}H)q)vgpnCEM3BlTz^X z>YDT!wllV-lXmL~DCoL1wb*%gh*qV1DF~>D8Cv1Y;>o!8pnF(%*RREEhRmb5r2qUB zGlpt2u`p}m_(D3})!hE=_4s_IFT@R~>BT^&$QbxoX2+H}Jn{bHnd+@LJO9gMk zm-`yRl!AyyB5~q4=R310276|O51pjwq^XVQqg8UHu7D55KqyZTi`6>EAogcY`=Fpb*{*WNc{g?e)d zTli|PAVFWsB&8tg!Q@29JNGFE`DF5$(ab?T76stm??l2TS|eLOdrf;R*;217<;~i; zaqrIBZjAqyFLgbWVc)*;ech~Fq*Ji;K-ft&YR2~!Fhbx$MjB|>=Oq-!!SM$f#Yendse7i5GE&e_G+ zfOa@EXs+aRcNWII_ji5ca^UFncS38bdRzZi-}$Z6sRO0M_aQ;Bjuu{NTm)wQ zkj7=nnd?EvhUfFH7i}9F7j5Ls;fs5L-QJu{FnYCfa)knYEk327XrqJ1G)b%#QFIG= zIZ@3_XRQlwJuRgsWW%T*{riuPKZ)CW`DP5R5BXGORhf^t?kJYL6QXCiCl3R7w4U~rZRMKUERA~~H=?GO^)Z^= z3xL1T9LZgspKD_!qNZZ>5>@t3xO#H_yfrm#D+?84Yj!97PY~(kkr@TfMUgQcJrqh`C1cE|?HC+fY^^jjJCZX2?VrFA*K z^-kU#g1LwDJ=(aP@eb9yUtX^lq0G{@{`D-#^FxR22M)qp#@cwU3PU$>i@rbSqG~mJ z(*#U2)KumPM^4#ytMAq2Z|q?M+(i@&;2-sXfbWtv?cNQ`d!w)@?yAQdN! zNq=8o+|gvC2x=$m=x8DM-A;z?dAyope%)Y3TQEXTCF7_w7L10M zt1GnSW;>U`8BODd{QMB3-W5m6oO~jkj9J!F-&-i&+pJ%5=7Oe`>2z}_aA|_3M|+GN z>6v`|eLAeRaz<`Yp)bTHd!{A;o{LN!uIkar0z!(3MLG;C-{CFvdZR6)B%Ll=r5l~T z;=xVUo~k~HY;Sth+d8MxQKz*7uLraWZx$v+S@#=LwK3yag(Mlmm;x8Q<(oA z2uck};qSJ4*k|kq_-PuuWRquIfA79ZCeNp<(%%!$=)-i9RMWyOT}@mX_iw#yDGd3! z`9re##>sD%fdVUk^OvH?LQtTbs75DRR+!3m47Re30hkp{ICmOeNDaV7YO7 zKknVkaG10rYx=N8yDNPozA5_YUWdp>bjZ;-(jMjvZ*##|VtaQ)`b~s!{1->_0D?u= zTjf{BJCRHFt+*asy)PiwooH5K{`;PBZBYIhKe@`tpi|2myD#31!Kk0O z&S{D4QYOrG@Ru%QRfHR8RAiH|chxWSPs0&Q2mEGd17{6Qo%>JMj~gA13K|EIu=H^v zu<(B5T4zs)+m@-RpARv4E}XH|?dC>jSK3>;^Q{Q^4oAb$rs$_FO4yOMotLLf{G}^< zhPT=FX4XB%)MPod`(ABXlL~(zlEft9+9I1&mTpSlyRK|@+|mKRTY0NK!$*=f_u-F2 z$u{Low3haB{s=FV)yOvWRaVoU=zpAN*A25t^BppyW;FKhWx4)S(Z!|UM>Iv(W_NRZ zGeIoz*dreAZFY$$lJID!$5juJv$Z(d>m1$fQuS`HQN`}kY4Y=NcA>0sQhxozKta@kx7EQmbFk@IteZGTsptyG_WN>lW6A~4hy ze$hl7n{R%=+nhK%w>pw1a#N+(f1XCp0n#b!GI7;!ag~~9EoRQLbii-MYOd1O-R*$z z4v`p|%q*LIyT#?=qm^9IbeNc?<$du1o|j~mdHGHgJBeK_4`BR|rs(A<7MU3anoF~| z;qfn#W8UV>p2cf+IHE;e%3$OSW^NWRHmQw~H$HJESvugCTfWw=(_OeZDdL}TZ$#E? zlI5;DNA^t{78iMRl;@u{6N@?PCj=4Oy?5R+p0{-LN2ZFH_5-51?taYqZ@;oxW8O4e zB?mkW2ffWSNDoP*Dx){mXJhAaerp@%yQog~?&OVY{F5vl@XN`q6s9bTuTM$`o2Xlr zj%}-3w`?AqrOV#6&|IYp&2IFBpq%DQrl_31j|I`wbd2a0&phV*V}j0k)G9q8heh`c zZ*%IsvWXdY!Xl0N+tFyFAO2Z!LD(CY_~%$U;Me2)U6RE2n@*W~CUogRx1HN)c_{O6 z9!;|NT!cTF8*e)lpe;>t>zi4PyO~MOxG0~x$KT!*eXLw@JqGTf=tf@K6THn-`nP7) z{&R)|bmqTg$HwH=x<6x71Ge(4_`euxnBy9}9~P;c z@x&BTy4BRX)b|8S2mB3WCneVmc@4t(7O3mf=!?-hVNYHme&sp-^Sf6k}y-XxY;5f)L?=CDBts{3F zV+5R<^JK%0@zqwGWWqSVixaFy8Q0M+G;{OXz7C!{pki$E>$19B4^nyVR1EE$bW@Kv znY@9eqsL!j@+AlijOSt*H6uI|f%Z+clJ%*iE4GHSP*Wz;q55~~>(v1~zOruK)y-_z z)4^-|3VK(W)74tu_N*upDHDw@9I?5t)$zIk5jQ*`ebD^+**?L===jYDWW6AHD&fP; zKGm7Ys*&&OgXAq8-4m)krAQI{4J7nY?^gMv7qgWd7W@9`9D3sxL;o>S{V5il1a=d8 zE{5tge7q;Rp+l+*jF+C8UER#~D2%ss-{uT-y=Y707^kr-ZF3T=iCOnt?67khFhA&qJ-uEt&Q2!H&CLzu>Nc2V`yq>))-qO zDfxoEYHF><V~@c5wD42OceG# zAfxW7WVAlY58tD<_e1h@4MLEaT)eee!Z3IEw`;UsBeE7}0+v-9A}aPo3S-j=jdR6}o*0tvlfG=_SwYr+|)tf92d`YArsQQFAgKlQg@1J6@)!vuOD|LqnlU}ED+w8FPryp_dwDW-B z?A~%_4o@3b=$ejR$GSsqp{ke(OIPo1Qc?bjKx!igfu3_^1N|=ug!j7{)?rbdNT}j% z=5k<1Z}f|uK*6hE>ALiY`d+lXqtF)`DxbEp!RA;C&Us zbJnW$WFB#=dh3#BH0wRZ>UkG>@1v(onDKbeyK%I;>71BY!^lSzFI+jIYhO(;+_1B> zj^wM48j5?N5g^|mXMGn)gQL}l|T za`<%kl9=wDMyeqv>)C~R;G=JJzZ^=lC$}-a@+v=ekA8&iCXApV`ZtsJPla*D(nGfr z&nM5mwi|~`U%r0N2YC&16_uSe{PI!VI?G+&xp$1VWO_(H`9|!s>zXL7kjDp#H@5h# z6RW#_H9sE<82(yYn>I_1J?D5XgUgT}S&Y=|jTdz0O_EnBEfHh;N`u!|$7*LRWAU}J z>cKfHt>ag^T!wCKRc&}Y`n-l2)A(mvhnZSD!hO;6J1aZY5M+GYxUh!l(aZjY7Z(eV z{&i`l?b_0{@<}hR3|=P(R_OgbTHM}RIX2i36(LA&_)_Kd4hN#HS}fxhK(kS68x^vX zwW;ivs|(LonAh;It$zERfxxp@I>%^|6#c4Nyl(T;;6J}2N-wE> zwdZk(1^PDa%ma}gyGQlgmA&uE4mQMRb;JWd&M?DAMlEZ5Yqc>As^oM6Das zv`TxkX=P-z^?x^~{v_O90fkp{mR}JdLAyx@wT+7o(2?kD9JE?i62OR zotSoMj7w|qH5XBHE2(>z*LGExy~}?i+$puWmjdJ7zm_U|C`43xIrX||Zli~h6Rzig z(?hXpXRcIKnt499W^_$NuH92E3vIpIPohuX+DX5veqUK<-`plYTx+Y}hm~LlqEi0V z9GU1b8sV12y+&#_1Xtye%mg>)H+}Q$v&O#4D8{{iucIN1RJZXXp%iKFZno5%HKE&@ z%j<=zMdjV7sH_RQx=Q=C_JZB#xXCql^N1zv*(bdwACP02IGrrn(Vfvwg4y@s?gh`_8D?DS~h^_4uDoFS#hyVU?sWE8P=6IeCGvV ztD@2fM`@&et#yFtpHQl0T#=_Oz3d}$J-g$m^OE}qG&ZzrS-YwVNMOb=UIt9qaD69fqpORKAmic0H# z7M;A)6(?^vGoF`Gabr$C!tbU`F}5`@uT`wUR}Yq*WRV+a2Fv$YqQ^-|fwWGZw-dXa zXRZEtsWTe#ZXxkL2Y!jsYakFlcBI_N_EAa5U3WTo{Bb+1>~^F_%~e!d;njm<*E+U` z{$D1d=7Y;OW|58FgHlOr7d7#*t-!%>V^KYKWYOOq#}YkG%AUIFP~p=ak5cb^VtQ~0 zl2tlTm%L4QM~gmM!T9}V9y{DTD_6O_r*75E;yz4|+U_wpTT$scWF>^Ht#|7|lyzoW zOaz6p_M_~Ppmywef;1J?R_{#oDB1BcW_xciRjOx4N!V!~H)C<@Jg&Ef)<(sMIYTn< z7tbLR)FC&JrHN4n))TjT6p&+SoRe|^;OGv)8fY)JLJS##2sk2(y#%HTcTJtTGabna9#pA~>~Yp{GD zfT49gNsg$7XRX`JQhXvKvPk8zjQ^3`lRhutExLPfA!^@;G$OlWbWV>ZdL(!6Z)jzm zWUd7bd5-TR`iz(wO=16u9+AM@37wIbKl{MnLQC}_@qp`1pv_&zzX_zboKJZ9U@p3P~BrD5m(N4&`%-jU8?uSIv3^2}_c-w^t zKKW1F^I7UN0GHj7w{cA-U809=-xl4KJRi*WHY&G`hB+%w77nMTU6U_HZ%$hh#lBK) zC?wYpLU2) zMoijdjd#$DDTuh;nx;vYWL*fZhuAJYplN4nD)Wd> z?#aA@s{o` zr%)f&ftcgCa_n9Hd(QI9(D+TrORgZmUyNJH`&oz2t;nnou!k?mx^)Qf#pS&+%lldf z?3#Huf)n0y&Ah7nU(2JOakb<$`AKTl%Cb9W&LjDxr5H@R$&TjNC0g{X^IpcyNI#*a zdr8{vz23dL%~2IqlvHKG4MD}b%4KLqs?Pp!tB2&h?b*S*>GO`vT=l1eF@+{&RbJP1 zk|fs!SvPB~rDoKLYjV~tCiz3RwBX*P?TVt_1}9z~mkedAW8YptOr=inxc5SOeNJLj z|F5ILB=aWhjNM#sEK00y@fCRC4b%_4FC%9Li{Y-)` z@rFh@n=M&4BCTa}=B{_S@hQtzlYaBnpWX+Bs^cEd)HtepcSiBH-SSRAdFp@y^ zkJ^pUE7K`f6LmUlhBfJSBXSi$`FY6%x@m*>6Su+2Raw4!=$ZGF=z(_EoZTTn-wF@Z zB{~?hk^_*^@se+T{aZS-IJ5S^+_?9C=B;2dn+vkv`oLQmJp@QW@lVyrLX}sYYhC?`xXqMXjH#HNp)G5QTztst-rrm<7Lmi_ z@O=!N|tZB4)zv)>)*M;4X;jcXkXOJVc)ceJ+-0mcPuwg1~KbPd)>Gt9EsG{u6 zejz)g;}zL+7ucuHX0?6w9d{c@R+_q+r`yv8Q!%0%9Z+Rl#s2u;np-y9T%}uQL5IGM z+CP*wh7mVOd*8%N9oATy%R>kE?OcnVR(c z5b7WuPdz(tB&-$e)tYyA$o|&|W0S!zW&g}*NmL6KZ6^)-?NJ>yRdwLw-FZGoTJrV+ zRp~P8Ua{!qDxZ`a+7H6efh~Dhtn^m6U6nkwtvW0@P;n#DMR-CJ#;)(Ww4=<7ri282 zDK3f3N)3%$$8E3N`mlx&TfZjLG?|7_+*fWtm-v7KMV?S; zm8%g` za&Yi|FF{3rPF@mez3q$J4RgWyTuOmoaHbnI!CEGCs(KcAHpJw;^mb_6(^<5B;HW7; zKC&z#qA9srQ^!A9mBb&2dwaaEGvm-M=updK@Y|uIB(j%S0_m<6C1IIt zJ=0^X+F9eSpUwO-xIRaqWOOJ^vH5T zuZUD#i%1uI*{!D%*RSkYbCLt}K3(DsSVj(yp*R>^Zhuy1{^b6K~SZO?obyOIpZ^czqAJ9fh z=W|dK=8Anv>9LlG^%*DO6qN~ctK$}C+={JYY4;*{ZxYv=$6Ng911{a?m4kMP}-D&D=%()T`S?)Ij2l0taC9K9rc&0E+OuGDsFl~%g6*mPs(6Czb~>2RW-2i`ZTd0z-5I0ZB=Jm#8Z=(Z0mYe{=3r9f{bJK{3X zt(jHXEwf{kcd!g;6?si^#uHOI{N|{Z^QtB0bSQ@QkY7x&l6#SbCrRd-H`1*e-_}`7 zD&o@8n}PBY%rSp3mMdqr9#~CwC&TSw&Y!PuJ=4>0^s{ZV4Be);z8q;|VJ@KQXn#N^ zbiRpQ`W#AMP2zLou8On1HDi8zuc=wu1>oh{BAfSX8J46KJ7GyWtBCsc5=ISId<{0g z-DvAWt|hgeLi^WCWv73fXSY4z#rxw!L8fgEds}LQBBvBs75#fe#%JPczofLP8L3x# z_N8&Y$2RWtZzJ;Oz?;bDiWjR-&=ybs$ zCymDDdh70#?vLYh%kqN--Q0y`X=gUy%C>#ya;Ep%aJ1(AR<3?YY996c1$7jzd1Osg zy3*>_HFK~-W0GWc6KcKEKOIIIXM|_Zc7_R-f?jJH&w=$I&ATZ;hsnB@K<9TfJXD^D@Ids`@p8n z_UbxYSk2~)m1=)WC-bON77+v2!N$Sreq+y6YIWDG5=4~qeViV0tdecMQT@*MdTO=q z%<6^PlRfLHR7pyB>0ZZ@yzSEV1G7r>DEn@l+UjY$@)fsZ(T8y_wP388&j+I|5q$C4 z&UH4>wgpS=#_f7iJZ)c@2u@9cSH@d2EgQm$yLoG+k#m5C*Qjq+6K#UG(WwBw7o$9H zx(9u>adFBBW3BddWIC?aFecyTMzSj^9RNnthVRDS30IaiuXzWjt<}sz4=`UGB|+C` zW7T^!(7i+KLzO?|zQ(OYMBuGHww5{c_v4bqIVT-e{eMJi*fiJ*he)5}_4z;?*GI{Npc4s#_tnzR_vSkWeKnTeTt z4qNu_>1%x*cgYB*QG6?YNh)62l`HSF8f-$YWG}emtU^WVR9ZNTM5LEO*K66~;O}}! zo%yc2HSpMM6aR1@vNFRt)FP^bP#J!H&JJbKrgm=TbIX~GyH{)R5l>v6*qcfZMbgFy z_)c7tX!=qEukHPmHAxRP=}wcHE?GnJa@19=ObVA1tMYBrVtf5h zQIEI`uhap1Rp&?B8W(n;H)Hog#+TqkVPLhD@{!1#I66e|=(05b2>L zy=|p7#kt#b{ftPezr&6a{>}|_Zmp@0@k-ia$E(hs!is|)jlz`JL zwEWXpd$oI=ao5;AK0jJtkJ1?nPi?~$iS@ni;s<=3d4286UBKJ$tx(av+MRhHG6ZU} zmD-e6*5+KY;3_GrCF4b&IMT{`F7+V@zJ#@1x788x_bj|Rtig}gFgrSWol>`M;mvDH>D z(x%hSGOxv)@>1^lx-R<@PP>bB5nE1k{;s^Agd3~pmNw5hI<$33x&3?H!_L~8Z?kzvqm|Gt2e^fqtp{R}$z8m<7A4*sR4;X2YGs zpG?y(8RN{CFSmDlYrU;a&1kezN(3|q81vx#?C#1X32de&U5A1T-abCRd{C2JyC@@{ ztM5`GT)*pnKC}j{trJZ z82&s%HB-J>nY@^CM`GC=9 zl6**(8+a>bBwuxY$5NfSPIe@bRV=tA(+ATlFw3`dId8g9E}}$9r@jt*TKsb1?HeJ- zPf&IpY&*TPeHEizH+qnTzX1|LB0B7r?!6nx|MT7$+l@n?l;~NaC!!N8F#`y=*4M== zI+kABJ<%dQtReZss&=q}>2{xTU4_g=_H>s4o3u38*6K5YAE{I_Dqq8UWnHJ?7$dK< zSGzw;Ts!idl}SX5O|N%+0fr<|gU(y+C&{yZa7wplPalqJ)1b($djA@~`Gl#~;O+FS zuge$A9NU-mJ~X$HkCtZNE`|=d$3-%K=js~e#K^>R$KvMD^?B{Lk7y&cmSVT{r>%dT zm_y<*uaPt}sld)pq0<7MH=PUSuU^4*O-IxV!0d)~Q(vp7H)7p4Dkc0=9yjpar0kVb zr|GUu_gS9OL}3d3s5kef7w^RR5VR=EjHcOw9I5`>$#aH{@VywRx6N+vzcQV*+R8e~ zqLjC|1Y=F_u`S{UKSdcAAiMf|OPk);oW*3(QpMY>JZ3C%7w2W!n_s9k!;p7iR&t+^ z*ispLCa$j(+Fp#aq}X~pEf#^Q_MVd zY%2+asR=#^7x2(lB@-EYUypnmJYi0Cs$_Ptxn1a99PR<6YzOx@j;0;VTzcr5qz7l# zr~R1qt9zwAyE|b6+B!11ZSW%{O2KLbe}Ty>>{{RbKfAtnf6OqRi<*t(xX8qHtE*ng z4k~7MI+(m(sCu9Bp4OYPI#wA&r>%X((_J5eOoCXmb!ZTr#U^@uCK;wtd@G4IXE@1h zMP>13=fAJB;?1lTYM;3Ez;>TRbwsROR7t(9r%J}oI-y>riu~B$>wBe*$tmc4)bVpI za_?9Yq^fDd{ubq>9Kp74rqLm`))*#L`^Npybyl~{#pcF~J-~tv^wOMaeex(teMj0YL2 z!2b4`T48z2QSMjjdpYb@eg=`sor?mD35ge25&erL;{|neT)%^oL??Oua34k6eJYXJ zhOp4Tt%&Ujc3Yel<#jUbt zezlFiwx120+pyVTEijCe3vY%e;7wslLhv~RDbkpmL zlcxI??CAG%52Yin3~1`67ro!rZVOv_;vKLsRIJjDRL3V19=v#_)g3nOG0~7i zVcrH(Xs%uR+&8H50+=R8@R{b4J0cB^xxP`^e>1#!IM177bN4GLK>}2zER<57S5VuR z7otfGbX?Gozi4kf;t1!YRH(hK=<|NE2p2pEZnMJ-a_0WgWhMqunv^18T*ZBRzF&jjoOwSbXy90>@zLNb{g6>^PK#qhv`ErgNHkp#h=sFj`T9@ zF<2`1E5;#p6H#Mb@DVlmwI&u17+UC&(SNl^FU({FaB(dmmlx~zEn@!N zy#RLRwc#b+K5%}9**~*(q;&85-%vaa{j;yP>n6q>?4RX)*8t=mh=1>FC$IBY9Qh(- z520_Yjn>`2Z+Dkal+ zoV%TiyYEvZN7l;)P25KoNc{yN@)JJ-(ki2qCWs}H7vev{Hc;yecWogOQ>NKq1Y-kk z)&Hmz`L^m*Yd6N$c}rXspXoJJd%eHOJqYe7R#oyZbmMNbTE#dkpEoUp`Jn_dbglkF z-5sP$?F6AU5-!wiNJ=Ok9hNRd|MMJjGA~oXPr1p7Z()xxY9_g=qRZAUZg0`vdH)Sp zy*66Bzbjt3bXPKSs|gH|d3n$(=I-#m&c+Xkf0a1oPC}!lMuCJ>7ovnr=yu+AP-Mmh zu~b_=$Dz1tU~*W)tn$Y7{XAS^WciyAbL-1p`dB#sD=9c-$~{6O9?)z**CK}w{J~#H zE!Higsz1LC{9{{HRCRA1|9YP~&nCh0=JgBEGuOx8RIFfei(`2il2uQ4B-Q&fq|qjm z%W)58qjIu7b%C2?^1G%Y<9pnlv~_YpEdwr}SOGvk?Wa{J5$IsP7nMitl#SO?zC!dpL`U}Xm|$c3^#e!fqJeDgtjfO8S~yS3d=cf+ z;st^gf_wEwwAZ!jDK@c2Ha5vgau%>&%NuttDU zeqLQjs$_FnasQ8~?t+p$_6Yu4+eh`PR?Zqme#18(j|9H3ipwg5_m<0Q1U2nn8g2^C zAHZK%L?{N@g}K)ftrk89eTz-LSyzA6I!yc5Uzbg0+;^K0%7t(Pc1BA9iZ%3^Yv@SC{V>@jvlr0b`U*m3WcT z;ee;T-W3#ei&JZ782H?yF>%j=YNJVJDsPYCzTUQ8w36{SeW%#lyd42i%bo@lh-%zc zH-e=|L|5q65%5R*Vnd%y{212p83Nx@#B~xfRetw5CFs)!I4}PfIB3SaBYNO>OGo#$~jk;+QB9Ct`c|LBU?GE;N@ku z*20~1kz(>Jh|yQw{m5R=%1KfuN1%%;Or&Z5a5tXx4l9=XQYGPJ>VFig`U<(8KeyOO z`|rp$&ic$(yXGC7_*S(p;CMJygNB@yfsyqie_{cniAw6JTo2uD(FTb9((b)PzS!gW z;81RSICM$w$v0)1^DcgQ+y%OJQFLd_Cya|s2;T(wS6&Wv0`14Oq`@zqU?kAFU0Cu~H654r#%Xi60iGLY+O?C>$IEC-s_$*k*}Ye;@M6ojh5bib z9_vpW99e#E&Am19!C|ghN#yKW`LgSSr8c_JKXVi))xa`}7Uamvc*UweX#hsL!kTlN zHw%}N(sl>C3QFX5&6ZgeJRu$D49+DewFT7igIkEH!81;91EuqJ!-x163M*}h2d}Um zE*(_1JxLs@`iKhJKP_q3WPY*Ma^$~lhYG2 zHF{5vZ37vQ4&!=LqFYeUw@SONj98qnRi{Iq*pw=OL27w?e^!ry0udoMCN`iD86lUyM$+#gcE%h$)6YO)%+odg#0ORu6-Y04Lz z7@`wMEl1O<9XS2v&6!@(sz}W4sZ1>K=1afzTYTG()D+5uzwpJD7*bROVbsk@r5%ue z<bLRA~9M`Zft*|z4J1kg~&^8Ki z;P$+;a6{-FtqB&W^7us%RSKr)HReH3b|}#irDi1VB25CXre2)PoLYMDI#)dgcVtG} zN@lG2<*J)0>HIozxE10Z)v@AP(sVw#noBgPy&kr#g>zo$SO~(;=?G}HJI@Y-Bk9|5 z%}*l#M6H;n&?8<4PO97(JYM#rlZt|q%*|^N?N{2kjE1iP_=C3H8w=hS*fR}U!Bx|c zV#48R4c+n341_lONZK|&B0reC!_A5B%EHdvb-{d1R=s2&ok0PX9Dw8RXX(3|`^Y_d zYt3yFE&#@15%4{a6;loJ(YO?`98Cd${TkmeDBy5tjd7e3kLv^m%5F9s5? z-{C{^{P;Ce8tIqS$L15ZD*`IsZWEu7g*ok9SFhIhpk^9CPgRL0^KhD=EOS+F;fT^m z;xDeLj&YR0er#d{0S{~_pMEmkW>+%(E^fq91q=WXqS2@c;I)R*-x0s0L^4X#01 zt?t1Mqn2Miy_q9}B7lwGzaZ5`VWKD*i2R+Ya1^%kGXbw-dXKC=5hn>kzg4H?ro2hJ zc*9LRQ}W6Q&j+0j0Z6rFYK(e2R1~iwf-W&5%!7Br$ut-#n)|Fz-h1maZZ6OfGIhbC zo}?e1PNoUb4_+VU&WqXrG8F-GvtrufQXTBW5t`=U$+DAvbm?4x<8w^>++ z#0%KEFk|ooocMw%-AOK9WdGeMe8J{NO1!j>Yqrod50$kbx>QD5i)^E6-Svel(Xqbw zAZ(5YAJ&G)$z{h-c^)4$IdGqGG=-zixUN7J%a^hIKyySkZ@L^2E5DW`%8ozXeFKw5 zt7ziJg*4iiY3IbHA)i=Je+-8=$bxU~Nao(Ax`^8j#+(Qr7KY=ci}K+;GGc^OFpRc7 zr+xRjrHQ+G&Efgs{JlYqWL6VFrB7ULmG`EJ%^wm{CA%*h@7D$y?Ti8VSPszDt-5|_ zUo5te4n0uP(BTiqbYtJ|Zy$POK`y)xt1?t{cW zv0U1zXNrzvnP;EIvL8EHUOLI&FHM97wr3DU@R!YqF*5jF$F^q*@wL~n$y^p~%E+wQ z3rUZ&0^~V|j;NseICSiU?wm)r0o-Td%tA+Vsf~t{a9m_JSUN{Ug8;J(@E1T0Q_<{7 z*@g2{=jv*EA%^W;`I%&At!?WSO<&IA9?$i+4P&CciFr8wpJ8fW4>D>xCk`00ZTIU5 zs~4%5ygN?kb_K->28$7q#=DXPrLk`VaW==BG4+EiOnegeTpUi`na5yr%#ue9>=xKY z-Knl=Bm@kgj|ck6&%+1=4!yZSnYxTr$rGmaLxUN`qi1W{NjJvH|JgihTj9ZTY3J$! zcryqLf-KrsV!Naf5M-%}tlQ!YUqFfV&O&wT;piMv8sb()L>V@=b@)$oN~ZV|+hs$I zO_cGRiV5vCC)r?P`+S-hcHvD_62yyjfsu2kw+Ei{6pGcMD9AGf$$D&ES%k;zgwA~t zg{TV9?j$Gz(z4788R04trcoqTe}}}bhFnqHKH}>B4J<|=+}C%yv31k?!Y}LU7Sw<1 z&Es9?LIcJVPOOy#GkS+H(meW-POJ0+X4?Q!M7%UvUwqhlf_Q>g?=FcA zb||tSb+N@Vxk=mn3T?n;p;)}oUz>^6)UM1ZXmSzI) zE{1mKRB10fLjnPJ{Nh2-HcCt{+GZ42jsz$xUjle2R%fn0#Y5i(NnYdBwKfM&+j%Sm z!LJc`9n?iGde^j(9>tNsyvT2tzUr)WE9rLMD+~NOt z*<5)JtTy)?4U@*bp620vHhkv)SVWz38`(PIg+HqCxieDcNBsjGzjqKQq}Gk2OD@x?SdHoLftpuj}N=@0lblnu7I8!8;V!{v32JX zlx5xAnjqN-{%qNYM!sj&I0ZE|eq{|=MGTacSmm|ZF;IV521Zk&&b|LrjA>BD+&Qo# z7+nv0$n_$54i+(8b~;#6;BaeRD|C_9?s>bxDwt_qw2Qd&c>EXgi+=Yq+gtE|o94=8`~w7YD*RKEuZ{mZ6uK?YfEf)bPhE z?*t`=qSSN2@|U~zt69@^h^+}ACzV2zSoi3(Sty=N0G8!Oe3~k^;aBZO5g874aDoc| z%&xZl(cdMyS4&N<GjXV1_^#RKIXK7TZ=){o{*?6{|8V1{kF z6OD9B?WwT@$abK?jt>e15y^5CI`HOu7XPh@s&^CHvs zOJ&O^_Hm|Wr4tb`iwvZLhWF<+SD(Eq&KtPy@qPM5mG#{}GN*Wc!7;2rH%rbb#8-S0 zx z!|?$Yb<-D&ov;ZY8E5Z;kPPR9o5%lU)<#Bt0W3}Mq$`EVC+ycK+v$P?rsvlh?;16J z_dVlsJ@~>9_&_W(nM{7|b&LUre87r#m+ae^I#1<4a%h3|Zgkx1Q`Es@y8iZrqmEIM z<$7sL9rAYGbJLYF& zUd)%`yFM?246jscITfbT?d8>*JqR&R%1o6Msn2!B81vF0s!l4R_i^VTKwhGgw%HP~D3 zPEKB*y(_KXjUe7o$@7?+!Joo(5<^&y(|iUR)fe`5s;Pk24b>?;<@=EA-o3^+Axjx^ zDOtLTpOL4ydO10rN^`JFG{=crrgw_XevIk=5|4a~m^J=db!f4Al@$T*q=W$2zmDbw7a*`|2rs#- zx;qg0Tm(J6gQZ$qOUCS{bQ429iQ848l(6 z9!6WA8Z_TiPZnBaunrxZ$K55_yS4J(b+Lgg`i-?`w)27F;yanS=bUj zUkt+QStzQsiG;2ctDQPuM%6l)i0)%QqG8b%>O{Vo-U-YL#4s_~3C-r@{1N=7wjx3d zBmmSFN>=}?QLikTeBo`%_*(FyK5p6hp_DXgk4sFs=pZopl$p(NHGHx<%rjtWZTX~$ zVpb=9fZ?E-yi9en=HHRbXAU>MlBeC4^A;1k#R#|Jm7&57ivS^}z97;kMR-`L0u8PS z64S_y#tXAv>#(md^NpIL`w7bu-a!O-OLcdy}O*OV$hi$t3MkfNrD63Dq*Ik&> zIJv28ycxx0eW=-b!tIttYPP+MCBMU?dhWLr9FR2rtqVn355~8yTutlg#!J^k?#<$v z$=*6!67!hhpTk0fCLsaox*4ayS@8DMIRBNZb()aqsvOM8n`4cNnF-Ud3U_8rSP5{m zdDXt+fv(wVae7I` zxwDoP9B=Yz+!c#hZRQ%l!GKD&vIBZF2nl#Fj%GcCQT3hrgs@Ula;LzVqRT#M7-{`+4~(SO(Ot%m#2fP&Uz&Pt#5&lyIQp|h-jx|rSIx*kpW)L zBc*U7`bu3tGG(3+_YkalG%emVAb>8T7>j*VI5X|%08?fk26 zWd1=5?ZZ4t4Q&>A$-P!1b(3R#gmO@K+W6YtPeI|qqWkzFS{G*AiUp-HJNm}6lXtA5 z3Rka)Kim%M#^~A5;(Q-#&E#YfSU%}2pY;5}x`z^zPq|yxNVyUY*%8zdQS#vO43BRk zG_SP|9x>`^ho$3pq}5)Rn98C#uCJRxd!8T8u${TEvtZ!)#peoin)<`{3Qu42`H^F68E6nZk^K7C z)>Id^*F}2?i$#t=0eDZmD^TB>Q5}2j^u^%frLKY#-MdMn)>+`Ec6zIM_kMR;tt1>U z=RUjG_aXQp0$ycPQ}A*QbWk}jV7YP9aJTAp5eT2ta$>Fr(}!2@_+AkajllXqOVkot zItZd%QI3rMyN)O39PoFL!NN<87PjGLct&%NE?*#zPtPIbKbSA5L@j|?Ip9CX$AbSZ zSA{sT+^tyByum3EE2n#R(%EPd&!XPOlh|1og8yt~-G{s~^t4@s)A}`3>eumB!`WBL zQ$mVfk_gfnYgxjQq{O5*#bJh=H)`HAO1d^!AU+wl_?={}@DXuZnZj{Esh!hEDE<}^WnOyN&#Ei6 z)UC3ScEmnKvI;P`Ydn8J`PrTq2?I{-+RREDWSI%?^=DiX0R{C4NXHLBG2zkG}HqpE|2Hq<5o$Hj#kb; zd9#!D+Dm44r?f{bOVgITDq5M7txm%s)?|MVstw3k%%;)Extz1~HX>S6DI#I(a{pgM zY5We@Oq=4DF~+Kmh5OanFd2EXtpo}ztz4g%kiTA^xw@v1Rv||IUpEesEyE}Ut`~-_ zVMWOgDl?)INjVu`v0cBL($#_AK{=(gw zVgS?-f(B75^5T9EuSqTOcKGlHpBNBkA$%*0;Ve2rDo7F>_Au->one{KmUO8g1n^+XLnk5v;&z1D&Vj+SvfJxV_$C%v9f>pX9Lng2!@ z{#_dXv%%OQ$=asir6|mj>nKOYU0J0!ldp>ScZS2ABh?$zU`16c+jyasZMbwRv{`xb zAGLCF*6s)C2b|G&Ry9EmCXboKFxfV6+9!W;W}7M(9#8vdg4!aarQhEe6;Pw2fWRb> z1&SK};xv==EM;<-L49ixneEvX&n{VHI3WBBL`tUzVbNhonY@X*Pie@XJcFN4B!L&K znr6H;v_iATvq_UKSVw8nEd$V-B~-+>cWHB&E>RZD`Vws-_?Ru{NNw4;eh^(S1YHwF zdVa|eSAdj%h52r|tb~jG=>%0vk1KI!C=Y;CLPg?{tpCvq2JI?b@?zpMIMfA1X|A^8 zA`*CYMf5JQ74Jq#Hp3L|vp#NFdF^eQ=LO9BT)MN0`)i*UtaovU zFIuvtgnjc{=XF$Dwk9^9!ur;{Ms<6w)G*@@cyqdkp+>EP~FiiVcNz zAT?A%I}rZ?Sco963wZHiO%E9F*BuWGAG`ZOMdshF>S40RCfd@o2A4+Q(|!|%WNk5@ zWr&vb)^#3?JW{-U>zrTZbx(`LzjyN`=g`5TS=d&l5AA;nX0tZ2sXrG!*Y@0J z4BnEMPlm_IG?s1@aG$IN08- zPvWl7ngxV;@Nz(hQfRHCGb=8mfISM#SG++roA8V<80O=#NNLft846s!n1PG`(h%!d zrH6tH6LbSSb>o%{RoeZS^-#3rAmV#FnAcE)XaPVJ;7_EwDBZA{Sfk$}ENxnFQa2+L zkBz0aiW$j;qx{SSxyzGhr7s!F?_^O!nwKyH5KED=8c6ByFM=Zy>`971T%1+<9P1r9 zygvL55j|Y{jezy{WP+qFKj@Nx+|mzWG|5y44tcq-=M|_&=bK+sYSBULxnj3H_(qkX zI2$-`vizPzTsQf%U@{B*$tqFSL8E{7dbluGPUEQ#NPr&D&v&m%B3!vBHhJ3t!VNO+ zmlI8Md%~nH>yBik2OJXVz>DnkxW)C2%zXcSqZ;V_wvhB-N~uu-yvYmr!V%tfz`Oj} zdvQ4|Gmh;BRVNM&S?N2HxxW70Lr_k+dF48iY_3u(Pgbt_pcTu~56B z@wrYg4vSw8(s~ZxGydgMazK;x20nEbxONTVh=R!ZBac+fJKL?~L+>#vt$8F&7myd^ zYNXKff9ly-!VH4ocZXJVLD(5AOeh!Zp8vQb&|;8yW&=I&=Rq>lV!s{f|OxYL(RmMUYZF*&3_ugFJnvZg2fTtPp4*kpPAe%w>bhX!&F?%uKt zITRT2gK>WT5s#5=_0xKh?5s33mOGIU4Gx@l7|s^tF5*krjUo#z#z{fG=GhZ`E-FR* zO}_>XW4vQ{{5l}8wWF$A>cJh`5Jss5su@-bqEfi3p1XTPKaawAXsCi`-O^FpeWJ5e z5d@$b`Ar5dU|50$r85{U*Yu0G({?0~<-&*sTw(@gxCZ$~CHT0(@e>sa>JdiUNq}K( z&HzIk9vbQ&IJ#-ri>vJ1J1Knk)PQa&;iq*0n)c=pe a8~Fp;&KZlzQ;Yxq4hWP`5U&z74EP_VvB#|d literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.svg b/static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.svg new file mode 100644 index 000000000..59afb71c5 --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.svg @@ -0,0 +1 @@ +42.5%10.7%16.0%9.5%11.1%9.6%12.7%43.0%5.3%28.4%28.2%32.1%17.8%8.6%45.5%9.8%15.9%10.5%14.6%9.6%13.8%45.2%5.3%21.1%22.8%35.4%18.6%8.9%Not enough usage in the tech industryBecomes too complexDevelopers/maintainers of the language arenot properly supportedProject governance does not scale to matchthe size/requirements of the communityRust Foundation not supporting the Rustproject properlyI'm not worriedNot enough open source contributions to theecosystemRust doesn't evolve quickly enoughSuperseded by an alternativeDoesn't add a specific feature I wantToo much interest from big companiesInstability of the languageOtherTools and documentation are not accessibleenough0%20%40%60%80%100%Year20232024What are your biggest worries for the future of Rust?(total responses = 9374, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.png b/static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.png new file mode 100644 index 0000000000000000000000000000000000000000..a07e85c3d6ffb959c18489fd010863cfae29a1bf GIT binary patch literal 34882 zcmeFZXH-;M*Ctx%Q51=iBnwDR3X%~NNuor7lB|+rk*mmh$XT*TQi9~11d1RzBRP~+ zKoKPsMMgs1U3lL2eqZW%jJ+7G&k8sfhb= z{!x&rqI4u~FQy0gQo9gF?iZADgBqIn_G`@Fqlof`K`gV`(es8ozn3I_r`wY!a%?Z8 zgekpwCfpM>zLi=20GvDFD^_3I?KyGKW0ky8e^4X&!Su8%+~ z8HSzZ-*;mw@^aF(!hnk!F2tr&xQ$G_LhXAIvM89r$at&&4npJz!IJ3Q@e*~YaKlj^BXO+kndng-ZpK=sIpYQ)EUL0e zTN{j!JR2hG!ga-S`^|?$JWI;m%<57&d0)(b@)Y}<&)7oMgD2`uLh7Myjj&AADrCqN ztxLxHJ`Vex3rcHr1ch|)Z436jhb>|w{l=NvIyMKg=R9|lyUfG=Kc($t@I42R3F&#{n zvm~!PeEy0#I&%A*=X#!M&Fb<+N@lbYbc#*m8v!cRW~?EIp@i4yy?b6Xu8qW)S=aW} zT57WF12H4mU1s%^ee_nE?O0NF_r4r<$`N&u%Ku4jGoaH)3BJ8xA@)hirQ(Zf7Pr=U zUa&ut1+`+(=HIE(*gmQ7=&6f|1M~q~Zz1MeCYx&HxU-&%5P-247JkS^E^we5j=UDXB5}Q zHMAIuo-1vT&Jpx0p@{_iq8pD|MW$ZNr({MdWm2eWUWLb-N≷GG&s<>0X>M)w>`n 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 Yc3m-CG4<4vOP5rXHD8q}z5num0I--b*8l(j literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.svg b/static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.svg new file mode 100644 index 000000000..74594d571 --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.svg @@ -0,0 +1 @@ +4.0%3.3%57.9%25.6%6.6%2.6%I am satisfied with thecurrent pace of developmentRust changes too slowly, Iwish it would add or stabilizefeatures fasterI don't know or don't careRust is already too complex,it should not add or stabilizemore significant featuresRust changes too quickly, Iwish it would slow down thepace of developmentOther0%20%40%60%80%100%What is your opinion on how fast Rust evolves?(total responses = 7088, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/what-ide-do-you-use-wordcloud.png b/static/images/2025-01-rust-survey-2024/what-ide-do-you-use-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..d08a7f44e49abee2a7f686d9b74f7460d42b21af GIT binary patch literal 47132 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 z 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

    cMC+9UU`Tv%8 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 Ag#Z8m literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/what-ide-do-you-use.png b/static/images/2025-01-rust-survey-2024/what-ide-do-you-use.png new file mode 100644 index 0000000000000000000000000000000000000000..7a52270489e5ed8ba62a3835e485b420cdd3856c GIT binary patch literal 37818 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 literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/what-ide-do-you-use.svg b/static/images/2025-01-rust-survey-2024/what-ide-do-you-use.svg new file mode 100644 index 000000000..e8390b448 --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/what-ide-do-you-use.svg @@ -0,0 +1 @@ +61.7%31.0%10.6%16.4%5.5%2.3%0.7%0.2%0.2%8.9%3.6%0.7%56.7%30.2%5.0%16.1%5.7%1.9%0.7%0.2%0.2%10.3%3.7%8.9%VS Codevi/vim/neovimRust RoverHelixZedEmacs (or derivatives likeDoom Emacs, Spacemacs, etc.)IntelliJ/CLion/other JetBrainsIDE + Rust pluginOtherSublime TextVisual StudioXcodeAtom0%20%40%60%80%100%Year20232024Which editor or IDE setup do you use with Rust code on a regular basis?(total responses = 10480, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed-wordcloud.png b/static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..c20012579461e2f0f9125abe589766f1ef3a16f0 GIT binary patch literal 54997 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

    O{l<~|keZc2@}~9xFwu{@ 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 YKcjGS?vB*Sk^lez07*qoM6N<$f(10{E&u=k literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed.png b/static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed.png new file mode 100644 index 0000000000000000000000000000000000000000..490be7ae30b65e177505fe4c412e5b68969eb465 GIT binary patch literal 41719 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.7%38.7%39.1%57.4%86.4%62.1%6.5%3.2%1.9%4.5%DocumentationBooks ("The Rust Programming Language","Rust for Rustaceans", etc.)Source code of Rust cratesBlog postsVideos or live-streamsOnline exercises (Rustlings, 100Exercises To Learn Rust, etc.)Online courses, webinarsOtherIn-person trainingUniversity learning materials0%20%40%60%80%100%If you consumed learning material about Rust, which kind of material didyou consume?(total responses = 7385, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/where-do-you-live.png b/static/images/2025-01-rust-survey-2024/where-do-you-live.png new file mode 100644 index 0000000000000000000000000000000000000000..d7d24ba4c7ebc0db43b085b6fdf1de8a151a36c6 GIT binary patch literal 88982 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

    m^@Khmf=%6w~<9mrxFGP7(gAW2)$N5&^7= zI>{hk8*tJ!e5+k}*05PZwDzwGYUdR(EgDwS-sr)Eg}i20zCP5OYOjZ=X?Gyk_B%GL zsZtkNy|+U|6FAigz@3`a`2o=C*Ilz%rJt12{?Zm{GV2gtGtte(=F6+bV;EQ%;z$;@u%7RuT;mw0-vY75HHveDELN; zn4uP`o^ebI6bpU(Xq&sja8j$SG44fIYH5_)3{OYxwG~_xBo^u-Ve?hXb8KA4O5~4N z(~ZtrA;$X5J15H=C-q2u*7D*g(15W_k^DrD?t84A*#IhuDN0H!D5~GeuduroPezG&1CXUjrR!7y~Aw-{qXT6)YTzfNYL5`7}62Q;^b!*e`0GjxWPXGoo zcn#%ail*Lg0@;;;^*f!!Kw>Ja*KE4SfgBUn*d`TX!sS-u5tP+-t+f4U$K@ww>Nd%p z(ALJR1AK;7`W~Dr2OAj(7-|OD3Y1HZ`I--}b$}m%c>E)`6z(!t0LQH$-GckDf&{=i zmS!i{!X?5pYDG=NbOEW0D;_T$ehS}4Bzkw?SsPYhA?}LoKI!NK9bC_(MxbqAn+~Bz zempCH)HkV80-}kkkvxOOLU<@Ov0^|M)4!%?Tk`;D;M;GORil+!mfG;N4G#pvdK0-} zXRE_>qPZW6SL93p)|G;VnDh-X?)XfW&oB1rn#h3f#6l}m2h{FMDHPsA#wU5~S%oJu zt!v?y^{M3vHKROO(`J4HdFGKqyOF|z4)z^2u4S)oOnH2KBu-|x!-%@sDeuGOvnI04 zl9+zl9rkafVO*DO;ikTnJaV@K3@j{IRHcVrNBNadUmsiEhnPUg&wp6$4D{2yY<-=v PfIp=d>hk5XW`X|~7@rkI literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/where-do-you-live.svg b/static/images/2025-01-rust-survey-2024/where-do-you-live.svg new file mode 100644 index 000000000..58cb6f346 --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/where-do-you-live.svg @@ -0,0 +1 @@ +22.3%14.1%6.11%5.54%5.26%3.2%2.85%2.56%2.49%2.34%2.14%2.09%1.99%1.77%1.57%1.55%1.52%1.48%1.41%1.28%1.17%1.02%0.877%0.752%0.64%0.627%0.613%0.501%0.418%0.404%0.404%0.39%0.376%0.362%0.32%0.32%0.306%0.306%0.292%0.251%0.237%0.237%0.237%0.223%0.223%0.209%0.195%0.195%0.181%0.181%0.181%0.167%0.153%0.153%0.139%0.139%0.125%0.125%0.125%0.125%0.125%0.125%0.125%0.111%0.111%0.111%0.0975%0.0975%0.0835%0.0696%0.0696%0.0696%0.0696%0.0557%0.0557%0.0557%0.0557%0.0557%0.0557%0.0418%0.0418%0.0418%0.0418%0.0418%0.0418%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%United States of AmericaGermanyUnited Kingdom of GreatBritain and Northern IrelandFranceChinaCanadaNetherlandsRussian FederationAustraliaSwedenJapanPolandIndiaSwitzerlandItalyBrazilFinlandAustriaSpainNorwayCzech RepublicBelgiumDenmarkIsraelNew ZealandUkraineHungaryIrelandPortugalRomaniaTaiwanRepublic of KoreaTurkeyArgentinaHong Kong SARSouth AfricaIndonesiaMexicoSingaporeBelarusGeorgiaGreeceThailandKenyaSlovakiaEstoniaCroatiaSloveniaChileIslamic Republic of IranSerbiaNigeriaLatviaLithuaniaMalaysiaPhilippinesArmeniaColombiaEgyptIcelandKazakhstanSaudi ArabiaViet NamCyprusPakistanPeruBulgariaCameroonNepalAfghanistanBangladeshEcuadorSri LankaAndorraCosta RicaLuxembourgNorth MacedoniaTunisiaUnited Arab EmiratesBolivarian Republic ofVenezuelaCambodiaDominican RepublicGhanaMoroccoUruguayAlbaniaAlgeriaBhutanBosnia and HerzegovinaEthiopiaHondurasLebanonMaldivesNicaraguaPanamaRepublic of MoldovaSudanUgandaAntigua and BarbudaAzerbaijanBahamasBotswanaCabo VerdeCôte d'IvoireGabonGuatemalaIraqJamaicaJordanMauritiusMontenegroNamibiaOmanOtherPlurinational State of BoliviaQatarTogoZimbabweAngolaBahrainBarbadosBelizeBeninBrunei DarussalamBurkina FasoBurundiCentral African RepublicChadComorosCongoCubaDemocratic People's Republicof KoreaDemocratic Republic of theCongoDjiboutiDominicaEl SalvadorEquatorial GuineaEritreaEswatiniFederated States of MicronesiaFijiGambiaGrenadaGuineaGuinea-BissauGuyanaHaitiKiribatiKuwaitKyrgyzstanLao People's DemocraticRepublicLesothoLiberiaLibyaLiechtensteinMadagascarMalawiMaliMaltaMarshall IslandsMauritaniaMonacoMongoliaMozambiqueMyanmarNauruNigerPalauPalestinePapua New GuineaParaguayRwandaSaint Kitts and NevisSaint LuciaSaint Vincent and theGrenadinesSamoaSan MarinoSenegalSeychellesSierra LeoneSolomon IslandsSomaliaSouth SudanSurinameSyrian Arab RepublicSão Tomé and PríncipeTajikistanTimor-LesteTongaTrinidad and TobagoTurkmenistanTuvaluUnited Republic of TanzaniaUzbekistanVanuatuVatican CityYemenZambiaWhere do you live?(total responses = 7182) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized-wordcloud.png b/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..771151eab6782fb4db87982e1ca3b34d31a0f7f4 GIT binary patch literal 51491 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 literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.png b/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.png new file mode 100644 index 0000000000000000000000000000000000000000..6460ab948419bd56ad47a3906f0d1e0dc043a084 GIT binary patch literal 78420 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 z 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 literal 0 HcmV?d00001 diff --git a/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.svg b/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.svg new file mode 100644 index 000000000..1a50215ca --- /dev/null +++ b/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.svg @@ -0,0 +1 @@ +15.00%11.10%13.09%10.40%7.90%4.35%5.15%5.29%9.21%6.06%15.76%10.85%13.44%8.84%4.54%8.90%9.81%13.16%10.61%31.75%49.26%50.25%43.34%61.28%36.22%35.48%39.14%33.36%40.28%40.56%39.73%36.51%28.25%23.05%47.12%26.75%22.68%29.76%17.94%22.41%23.65%27.66%16.41%42.70%33.94%27.14%18.63%23.15%21.57%23.75%26.89%26.24%28.50%17.98%36.49%46.97%35.66%35.31%17.23%13.01%18.60%14.42%16.73%25.44%28.42%38.80%30.52%22.11%25.67%23.16%36.68%43.92%26.00%26.95%17.20%23.98%0%20%40%60%80%100%Arbitrary self typesVariadic genericsType Alias Impl Trait (TAIT)Allocator trait and better OOMhandlingNever typeTrait aliasesAssociated type defaultsSpecializationPortable SIMDTry blocksStable ABIConst trait methodsEnum variant typesCompile time reflectionAsync generators/coroutinesGeneric const expressionsGenerators/coroutinesIf/while let chainsAsync closuresResponseWould unblock my use-caseWould improve my codeDon't need itDon't know what it isWhich unimplemented (or nightly only) features are you looking for to bestabilized?(total responses = 6792) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/which-os-do-you-target-wordcloud.png b/static/images/2025-01-rust-survey-2024/which-os-do-you-target-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..6322c0934c41cc704c934e55e53009d67451f33e GIT binary patch literal 50470 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

    Xp7ObRd9?;jW`XFh>Kddp9Od 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�wPm4S} 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

    From f443da85e3406bb630b564d654fcd1977a3ea1b2 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 17 Jan 2025 17:49:29 -0600 Subject: [PATCH 0729/1024] fix: Typo Co-authored-by: Kriskras99 --- .../2025-01-17-this-development-cycle-in-cargo-1.85.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md b/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md index 10f60c0b0..28c7be8d7 100644 --- a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md +++ b/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md @@ -78,7 +78,7 @@ while support for reporting this has extended to applications like With an FCP started, the team briefly discussed whether this needs to be added to `.cargo/config.toml`. We previously added configuration control for other terminal features, like unicode and hyperlinks. -We don't exclusively turn on these features because not all terminals gracefully degrade in their precessence. +We don't exclusively turn on these features because not all terminals gracefully degrade in their presence. In particular for the Taskbar escape code, Kitty had made their own feature using OSC 9, causing a poor experience with OSC 9;4 From 2ee455e6c803178473e7266f59e27fee08226081 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 17 Jan 2025 17:50:38 -0600 Subject: [PATCH 0730/1024] fix: Wrong word --- .../2025-01-17-this-development-cycle-in-cargo-1.85.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md b/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md index 28c7be8d7..a736b4402 100644 --- a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md +++ b/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md @@ -71,7 +71,7 @@ picked up work on [ConEmu's](https://conemu.github.io/en/AnsiEscapeCodes.html#Co ([#14615](https://github.com/rust-lang/cargo/pull/14615)). Support for reporting this has extended to applications like systemd ([systemd#34929](https://github.com/systemd/systemd/pull/34929)) -while support for reporting this has extended to applications like +while support for reporting this has extended to terminals like [Ptyxis](https://blogs.gnome.org/chergert/2024/12/03/ptyxis-progress-support/). From a3c9875847cdd17fc67a36f2f901cde7e3becefe Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 20 Jan 2025 16:17:18 +0000 Subject: [PATCH 0731/1024] update polonius description MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rémy Rakic --- posts/2025-01-18-Project-Goals-Dec-Update.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/2025-01-18-Project-Goals-Dec-Update.md b/posts/2025-01-18-Project-Goals-Dec-Update.md index 6941e5f69..e7ee60495 100644 --- a/posts/2025-01-18-Project-Goals-Dec-Update.md +++ b/posts/2025-01-18-Project-Goals-Dec-Update.md @@ -176,8 +176,8 @@ In addition, we fleshed out a design sketch for the changes in rustdoc's JSON su -* Amanda has made progress on removing placeholders, focusing on lazy constraints and early error reporting, as well as investigating issues with rewriting type tests; a few tests are still failing, and it seems error reporting and diagnostics will be hard to keep exactly as today. -* The prototype is working well enough that it's worthwhile to land, with most of the progress done on the prototype now available; there is still a lot of work left to do, but it's a good milestone. +* [Amanda](https://github.com/amandasystems) has made progress on removing placeholders, focusing on lazy constraints and early error reporting, as well as investigating issues with rewriting type tests; a few tests are still failing, and it seems error reporting and diagnostics will be hard to keep exactly as today. +* [@lqd](https://github.com/lqd) has opened PRs to land the prototype of the location-sensitive analysis. It's working well enough that it's worthwhile to land; there is still a lot of work left to do, but it's a major milestone, which we hoped to achieve with this project goal.
    From 89b90027e6b89a9022f17c40deea15af22d7b3f0 Mon Sep 17 00:00:00 2001 From: David Wood Date: Mon, 20 Jan 2025 16:17:49 +0000 Subject: [PATCH 0732/1024] update cargo dependency res description Co-authored-by: Nathan Stocks --- posts/2025-01-18-Project-Goals-Dec-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-01-18-Project-Goals-Dec-Update.md b/posts/2025-01-18-Project-Goals-Dec-Update.md index e7ee60495..e4c715def 100644 --- a/posts/2025-01-18-Project-Goals-Dec-Update.md +++ b/posts/2025-01-18-Project-Goals-Dec-Update.md @@ -130,7 +130,7 @@ In addition, we fleshed out a design sketch for the changes in rustdoc's JSON su
    * Significant speedups have been achieved, reducing the slowest crate resolution time from over 120 seconds to 11 seconds, and decreasing the time to check all crates from 178 minutes to 71.42 minutes. -* Performance improvements have been made to both the existing resolver and the new implementation, with the lock file verification time reduced from 44.90 minutes to 32.77 minutes for most crates. +* Performance improvements have been made to both the existing resolver and the new implementation, with the lock file verification time for all crates reduced from 44.90 minutes to 32.77 minutes (excluding some of the hardest cases).
    From 17856f346d73b015f622ee2e7b755e4a8c56871b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:31:33 +0100 Subject: [PATCH 0733/1024] Update Rust crate warpy to v0.3.68 (#1366) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- serve/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b2fc12c5a..7147966ae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2275,9 +2275,9 @@ dependencies = [ [[package]] name = "warpy" -version = "0.3.58" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a207e0c9dbcd9068ea8fead348cb883cdd8e552903edae0a033b28bec8158cc6" +checksum = "41913caf12a0f0ca0ecb689fca9430c2abce1220b88787ab00d90e7efb6bf10c" dependencies = [ "build_html", "chrono", diff --git a/serve/Cargo.toml b/serve/Cargo.toml index cc29ddb9b..0828c1d05 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" [dependencies] blog = { path = ".." } -warpy = "=0.3.58" +warpy = "=0.3.68" tokio = "=1.39.2" From 0c6c0e000722f023c8c4d4fe02dbeca6bf2e9174 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:32:10 +0100 Subject: [PATCH 0734/1024] Update Rust crate serde_json to v1.0.137 (#1370) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7147966ae..4575a9981 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -1633,9 +1633,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.121" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" dependencies = [ "itoa", "memchr", diff --git a/Cargo.toml b/Cargo.toml index 6ffa58300..2fddf4866 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ lazy_static = "=1.5.0" serde = "=1.0.204" serde_derive = "=1.0.204" serde_yaml = "=0.9.33" -serde_json = "=1.0.121" +serde_json = "=1.0.137" comrak = "=0.26.0" rayon = "=1.10.0" regex = "=1.10.5" From ec827cafc8c4b740d890ec00049bf4be8d862d86 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:32:40 +0100 Subject: [PATCH 0735/1024] Update Rust crate regex to v1.11.1 (#1371) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4575a9981..664a562b7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1460,9 +1460,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.5" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -1472,9 +1472,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", @@ -1483,9 +1483,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "ring" diff --git a/Cargo.toml b/Cargo.toml index 2fddf4866..893aa8609 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ serde_yaml = "=0.9.33" serde_json = "=1.0.137" comrak = "=0.26.0" rayon = "=1.10.0" -regex = "=1.10.5" +regex = "=1.11.1" sass-rs = "=0.2.2" chrono = "=0.4.38" From 60ee5da4658f4ca29ff5126be32efde95165e20e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:33:15 +0100 Subject: [PATCH 0736/1024] Update serde monorepo to v1.0.217 (#1375) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 40 ++++++++++++++++++++-------------------- Cargo.toml | 4 ++-- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 664a562b7..8340bb8b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -320,7 +320,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.92", ] [[package]] @@ -488,7 +488,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.72", + "syn 2.0.92", ] [[package]] @@ -499,7 +499,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.72", + "syn 2.0.92", ] [[package]] @@ -535,7 +535,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.92", ] [[package]] @@ -545,7 +545,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b" dependencies = [ "derive_builder_core", - "syn 2.0.72", + "syn 2.0.92", ] [[package]] @@ -1240,7 +1240,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.92", ] [[package]] @@ -1271,7 +1271,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.92", ] [[package]] @@ -1343,9 +1343,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.86" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -1613,22 +1613,22 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.204" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.217" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.92", ] [[package]] @@ -1840,9 +1840,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.72" +version = "2.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "70ae51629bf965c5c098cc9e87908a3df5301051a9e087d6f9bef5c9771ed126" dependencies = [ "proc-macro2", "quote", @@ -1908,7 +1908,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.92", ] [[package]] @@ -1992,7 +1992,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.92", ] [[package]] @@ -2318,7 +2318,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.92", "wasm-bindgen-shared", ] @@ -2340,7 +2340,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn 2.0.92", "wasm-bindgen-backend", "wasm-bindgen-shared", ] diff --git a/Cargo.toml b/Cargo.toml index 893aa8609..8db757e06 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,8 +9,8 @@ color-eyre = "=0.6.3" eyre = "=0.6.12" handlebars = { version = "=6.0.0", features = ["dir_source"] } lazy_static = "=1.5.0" -serde = "=1.0.204" -serde_derive = "=1.0.204" +serde = "=1.0.217" +serde_derive = "=1.0.217" serde_yaml = "=0.9.33" serde_json = "=1.0.137" comrak = "=0.26.0" From c2702bfe470feb1507b67b93747065fc49e58444 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:45:20 +0100 Subject: [PATCH 0737/1024] Update Rust crate tokio to v1.43.0 (#1381) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 12 ++++++------ serve/Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8340bb8b2..76b6c5da0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -991,9 +991,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "linked-hash-map" @@ -1969,9 +1969,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.2" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", "bytes", @@ -1986,9 +1986,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", diff --git a/serve/Cargo.toml b/serve/Cargo.toml index 0828c1d05..f5e55f270 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -8,4 +8,4 @@ edition = "2021" [dependencies] blog = { path = ".." } warpy = "=0.3.68" -tokio = "=1.39.2" +tokio = "=1.43.0" From 5a2012ce65349ef2a749d8340969e0a8058f4e05 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 22 Jan 2025 21:47:12 +0100 Subject: [PATCH 0738/1024] Elide lifetime --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 38e0cfe05..ea1640b4a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -47,7 +47,7 @@ handlebars_helper!(hb_month_name_helper: |month_num: u64| match month_num { _ => "Error!", }); -impl<'a> Generator<'a> { +impl Generator<'_> { fn new( out_directory: impl AsRef, posts_directory: impl AsRef, From fe4b32cdf14dce191069dc7eb9f89b808d177d37 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:48:39 +0100 Subject: [PATCH 0739/1024] Update Rust crate handlebars to v6.3.0 (#1403) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 63 +++++++++++++++++++++++++++++++++++++++++++----------- Cargo.toml | 2 +- 2 files changed, 51 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 76b6c5da0..71c2e5843 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -519,18 +519,18 @@ dependencies = [ [[package]] name = "derive_builder" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0350b5cb0331628a5916d6c5c0b72e97393b8b6b03b47a9284f4e7f5a405ffd7" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" dependencies = [ "derive_builder_macro", ] [[package]] name = "derive_builder_core" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d48cda787f839151732d396ac69e3473923d54312c070ee21e9effcaa8ca0b1d" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" dependencies = [ "darling", "proc-macro2", @@ -540,9 +540,9 @@ dependencies = [ [[package]] name = "derive_builder_macro" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "206868b8242f27cecce124c19fd88157fbd0dd334df2587f36417bafbc85097b" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", "syn 2.0.92", @@ -759,16 +759,18 @@ dependencies = [ [[package]] name = "handlebars" -version = "6.0.0" +version = "6.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5226a0e122dc74917f3a701484482bed3ee86d016c7356836abbaa033133a157" +checksum = "3d6b224b95c1e668ac0270325ad563b2eef1469fbbb8959bc7c692c844b813d9" dependencies = [ + "derive_builder", "log", + "num-order", "pest", "pest_derive", "serde", "serde_json", - "thiserror", + "thiserror 2.0.11", "walkdir", ] @@ -1108,6 +1110,21 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +[[package]] +name = "num-modular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" + +[[package]] +name = "num-order" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" +dependencies = [ + "num-modular", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -1216,7 +1233,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.63", "ucd-trie", ] @@ -1867,7 +1884,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "thiserror", + "thiserror 1.0.63", "walkdir", "yaml-rust", ] @@ -1897,7 +1914,16 @@ version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.63", +] + +[[package]] +name = "thiserror" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +dependencies = [ + "thiserror-impl 2.0.11", ] [[package]] @@ -1911,6 +1937,17 @@ dependencies = [ "syn 2.0.92", ] +[[package]] +name = "thiserror-impl" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.92", +] + [[package]] name = "thread_local" version = "1.1.8" @@ -2099,7 +2136,7 @@ dependencies = [ "log", "rand", "sha1", - "thiserror", + "thiserror 1.0.63", "url", "utf-8", ] diff --git a/Cargo.toml b/Cargo.toml index 8db757e06..f48122df9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" [dependencies] color-eyre = "=0.6.3" eyre = "=0.6.12" -handlebars = { version = "=6.0.0", features = ["dir_source"] } +handlebars = { version = "=6.3.0", features = ["dir_source"] } lazy_static = "=1.5.0" serde = "=1.0.217" serde_derive = "=1.0.217" From 1ae0bfd65021c1857b58a920bd66a4e78449d4b3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:49:20 +0100 Subject: [PATCH 0740/1024] Update actions/checkout digest to 11bd719 (#1458) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6dfb3e9e3..954cfcd5a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,7 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - run: rustup override set ${{ env.RUST_VERSION }} - run: rustup component add clippy @@ -26,7 +26,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - run: rustup override set ${{ env.RUST_VERSION }} - uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3 From 7e2dc1c7821d7d33b03f8270a44a323e8cac1e87 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 21:49:41 +0100 Subject: [PATCH 0741/1024] Update Rust crate chrono to v0.4.39 (#1459) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 71c2e5843..0d8a132ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -261,9 +261,9 @@ checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" [[package]] name = "chrono" -version = "0.4.38" +version = "0.4.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" dependencies = [ "android-tzdata", "iana-time-zone", diff --git a/Cargo.toml b/Cargo.toml index f48122df9..1bd39c09b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ comrak = "=0.26.0" rayon = "=1.10.0" regex = "=1.11.1" sass-rs = "=0.2.2" -chrono = "=0.4.38" +chrono = "=0.4.39" [workspace] members = ["serve"] From e8c87ba5468e19186c7f88104440a2ce2263a93a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 20:49:46 +0000 Subject: [PATCH 0742/1024] Update Rust crate comrak to v0.34.0 --- Cargo.lock | 49 ++++++++++++++++++++++++++++++++++++++++++++----- Cargo.toml | 2 +- 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 71c2e5843..c3cf53cc3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -207,6 +207,31 @@ dependencies = [ "serde_yaml", ] +[[package]] +name = "bon" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe7acc34ff59877422326db7d6f2d845a582b16396b6b08194942bf34c6528ab" +dependencies = [ + "bon-macros", + "rustversion", +] + +[[package]] +name = "bon-macros" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4159dd617a7fbc9be6a692fe69dc2954f8e6bb6bb5e4d7578467441390d77fd0" +dependencies = [ + "darling", + "ident_case", + "prettyplease", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.92", +] + [[package]] name = "build_html" version = "2.5.0" @@ -364,17 +389,15 @@ checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "comrak" -version = "0.26.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ab67843c57df5a4ee29d610740828dbc928cc64ecf0f2a1d5cd0e98e107a9" +checksum = "1664eb8abab93a9c09d1e85df10b4de6af0b4c738f267750b211a77a771447fe" dependencies = [ + "bon", "caseless", "clap 4.5.11", - "derive_builder", "entities", "memchr", - "once_cell", - "regex", "shell-words", "slug", "syntect", @@ -1334,6 +1357,16 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettyplease" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +dependencies = [ + "proc-macro2", + "syn 2.0.92", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -1579,6 +1612,12 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustversion" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" + [[package]] name = "ryu" version = "1.0.18" diff --git a/Cargo.toml b/Cargo.toml index f48122df9..f186bdfa6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ serde = "=1.0.217" serde_derive = "=1.0.217" serde_yaml = "=0.9.33" serde_json = "=1.0.137" -comrak = "=0.26.0" +comrak = "=0.34.0" rayon = "=1.10.0" regex = "=1.11.1" sass-rs = "=0.2.2" From 6fa05dc2958e4fc0e21a993746c9afb9296586e4 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 22 Jan 2025 21:53:10 +0100 Subject: [PATCH 0743/1024] Fix breaking changes in comrak --- Cargo.toml | 2 +- src/posts.rs | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f186bdfa6..12dab731e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ serde = "=1.0.217" serde_derive = "=1.0.217" serde_yaml = "=0.9.33" serde_json = "=1.0.137" -comrak = "=0.34.0" +comrak = { version = "=0.34.0", features = ["bon"] } rayon = "=1.10.0" regex = "=1.11.1" sass-rs = "=0.2.2" diff --git a/src/posts.rs b/src/posts.rs index a1672e9db..77c49c824 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -68,15 +68,13 @@ impl Post { } = serde_yaml::from_str(yaml)?; // next, the contents. we add + to get rid of the final "---\n\n" let options = comrak::Options { - render: comrak::RenderOptionsBuilder::default() - .unsafe_(true) - .build()?, - extension: comrak::ExtensionOptionsBuilder::default() - .header_ids(Some(String::new())) + render: comrak::RenderOptions::builder().unsafe_(true).build(), + extension: comrak::ExtensionOptions::builder() + .header_ids(String::new()) .strikethrough(true) .footnotes(true) .table(true) - .build()?, + .build(), ..comrak::Options::default() }; From f9aadc6030d8571d3f71ed583307fe624c5141fc Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Wed, 22 Jan 2025 21:24:03 +0000 Subject: [PATCH 0744/1024] Announce Rust 2024 in the beta channel We want to give people a heads-up that Rust 2024 is in the beta channel and will be released soon. In doing that, we'll remind people how to test the new edition, and we'll point them to other resources. --- posts/2025-01-22-rust-2024-beta.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 posts/2025-01-22-rust-2024-beta.md diff --git a/posts/2025-01-22-rust-2024-beta.md b/posts/2025-01-22-rust-2024-beta.md new file mode 100644 index 000000000..e4d9743a3 --- /dev/null +++ b/posts/2025-01-22-rust-2024-beta.md @@ -0,0 +1,24 @@ +--- +layout: post +title: "Rust 2024 in beta channel" +author: "TC & Eric Huss" +team: the Edition 2024 Project Group +--- + +# Rust 2024 in beta channel + +The next edition, Rust 2024, has entered the beta channel. It will live there until 2025-02-20, when Rust 1.85 and Rust 2024 will be released as stable. + +We're really happy with how Rust 2024 has turned out, and we're looking forward to putting it in your hands. + +You can get a head start in preparing your code for the new edition, and simultaneously help us with final testing of Rust 2024, by following these steps within a project: + +1. Run `rustup update beta`. +2. Run `cargo update`. +3. Run `cargo +beta fix --edition`. +4. Set `edition = "2024"` and, if needed, `rust-version = "1.85"`, in `Cargo.toml`. +5. Run `cargo +beta check`, address any remaining warnings, and then run other tests. + +More details on how to migrate can be found [here](https://doc.rust-lang.org/nightly/edition-guide/editions/transitioning-an-existing-project-to-a-new-edition.html) and within each of the [chapters](https://doc.rust-lang.org/nightly/edition-guide/rust-2024/) describing the changes in Rust 2024. For more on the changes themselves, see the [Edition Guide](https://doc.rust-lang.org/nightly/edition-guide/). + +If you encounter any problems or see areas where we could make the experience better, tell us about it by [filing an issue](https://github.com/rust-lang/rust/issues/new/choose). From fd6e22a55711df8b12c9ccf19cbcc6b5b22e4eca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 22:37:04 +0100 Subject: [PATCH 0745/1024] Lock file maintenance (#1372) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 888 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 546 insertions(+), 342 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b08809112..070d3ba9a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,6 +17,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + [[package]] name = "aho-corasick" version = "1.1.3" @@ -52,9 +58,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -67,36 +73,37 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "once_cell", + "windows-sys 0.59.0", ] [[package]] @@ -112,9 +119,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" @@ -126,7 +133,7 @@ dependencies = [ "cc", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.7.4", "object", "rustc-demangle", ] @@ -175,9 +182,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" [[package]] name = "block-buffer" @@ -229,7 +236,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] @@ -252,25 +259,27 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" [[package]] name = "caseless" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808dab3318747be122cb31d36de18d4d1c81277a76f8332a02b81a3d73463d7f" +checksum = "8b6fd507454086c8edfd769ca6ada439193cdb209c7681712ef6275cccbfe5d8" dependencies = [ - "regex", "unicode-normalization", ] [[package]] name = "cc" -version = "1.1.6" +version = "1.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" +checksum = "13208fcbb66eaeffe09b99fffbe1af420f00a7b35aa99ad683dfc1aa76145229" +dependencies = [ + "shlex", +] [[package]] name = "cfg-if" @@ -278,12 +287,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "checked_int_cast" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cc5e6b5ab06331c33589842070416baa137e8b0eb912b008cfd4a78ada7919" - [[package]] name = "chrono" version = "0.4.39" @@ -295,7 +298,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -315,9 +318,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.11" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" dependencies = [ "clap_builder", "clap_derive", @@ -325,9 +328,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.11" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -338,21 +341,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.11" +version = "4.5.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" +checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "color-eyre" @@ -383,9 +386,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "comrak" @@ -395,7 +398,7 @@ checksum = "1664eb8abab93a9c09d1e85df10b4de6af0b4c738f267750b211a77a771447fe" dependencies = [ "bon", "caseless", - "clap 4.5.11", + "clap 4.5.27", "entities", "memchr", "shell-words", @@ -408,15 +411,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" dependencies = [ "libc", ] @@ -432,9 +435,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -451,23 +454,20 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crossterm" -version = "0.25.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.8.0", "crossterm_winapi", - "libc", - "mio 0.8.11", "parking_lot", - "signal-hook", - "signal-hook-mio", + "rustix", "winapi", ] @@ -511,7 +511,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] @@ -522,14 +522,14 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "0e60eed09d8c01d3cee5b7d30acb059b76614c918fa0f992e0dd6eeb10daad6f" [[package]] name = "deranged" @@ -558,7 +558,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] @@ -568,7 +568,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] @@ -587,6 +587,17 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "either" version = "1.13.0" @@ -595,9 +606,9 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -610,9 +621,9 @@ checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca" [[package]] name = "env_filter" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ "log", "regex", @@ -620,9 +631,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" dependencies = [ "anstream", "anstyle", @@ -639,12 +650,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -669,12 +680,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.3", ] [[package]] @@ -694,9 +705,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -704,27 +715,27 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-sink", @@ -799,9 +810,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] name = "headers" @@ -870,9 +881,9 @@ dependencies = [ [[package]] name = "http" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ "bytes", "fnv", @@ -892,9 +903,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" [[package]] name = "httpdate" @@ -910,9 +921,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.30" +version = "0.14.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" dependencies = [ "bytes", "futures-channel", @@ -934,9 +945,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -955,6 +966,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -963,12 +1092,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", ] [[package]] @@ -979,9 +1119,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.2.6" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown", @@ -995,16 +1135,17 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1028,9 +1169,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "litemap" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "local_ipaddress" @@ -1050,9 +1197,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" [[package]] name = "memchr" @@ -1086,24 +1233,20 @@ dependencies = [ ] [[package]] -name = "mio" -version = "0.8.11" +name = "miniz_oxide" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924" dependencies = [ - "libc", - "log", - "wasi", - "windows-sys 0.48.0", + "adler2", ] [[package]] name = "mio" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi 0.3.9", "libc", "wasi", "windows-sys 0.52.0", @@ -1178,9 +1321,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "onig" @@ -1230,7 +1373,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -1251,20 +1394,20 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 1.0.63", + "thiserror 2.0.11", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.11" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" +checksum = "816518421cfc6887a0d62bf441b6ffb4536fcc926395a69e1a85852d4363f57e" dependencies = [ "pest", "pest_generator", @@ -1272,22 +1415,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.11" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" +checksum = "7d1396fd3a870fc7838768d171b4616d5c91f6cc25e377b673d714567d99377b" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] name = "pest_meta" -version = "2.7.11" +version = "2.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" +checksum = "e1e58089ea25d717bfd31fb534e4f3afcc2cc569c70de3e239778991ea3b7dea" dependencies = [ "once_cell", "pest", @@ -1296,29 +1439,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -1328,9 +1471,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "plist" @@ -1353,18 +1496,21 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "prettyplease" -version = "0.2.25" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" dependencies = [ "proc-macro2", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] @@ -1393,18 +1539,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] [[package]] name = "qr2term" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2a1e77b5cd714b04247ad912b7c8fe9a1fe1d58425048249def91bcf690e4c" +checksum = "6867c60b38e9747a079a19614dbb5981a53f21b9a56c265f3bfdf6011a50a957" dependencies = [ "crossterm", "qrcode", @@ -1412,12 +1558,9 @@ dependencies = [ [[package]] name = "qrcode" -version = "0.12.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d2f1455f3630c6e5107b4f2b94e74d76dea80736de0981fd27644216cff57f" -dependencies = [ - "checked_int_cast", -] +checksum = "d68782463e408eb1e668cf6152704bd856c78c5b6417adaee3203d8f4c1fc9ec" [[package]] name = "quick-xml" @@ -1430,9 +1573,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.36" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" dependencies = [ "proc-macro2", ] @@ -1501,11 +1644,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", ] [[package]] @@ -1522,9 +1665,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -1560,15 +1703,15 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1587,25 +1730,24 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.7.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring", "rustls-pki-types", @@ -1684,7 +1826,7 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] @@ -1771,25 +1913,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" [[package]] -name = "signal-hook" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.4" +name = "shlex" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" -dependencies = [ - "libc", - "mio 0.8.11", - "signal-hook", -] +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" @@ -1811,9 +1938,9 @@ dependencies = [ [[package]] name = "slug" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd94acec9c8da640005f8e135a39fc0372e74535e6b368b7a04b875f784c8c4" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" dependencies = [ "deunicode", "wasm-bindgen", @@ -1827,9 +1954,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" dependencies = [ "libc", "windows-sys 0.52.0", @@ -1841,6 +1968,12 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "strsim" version = "0.8.0" @@ -1896,15 +2029,26 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.92" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ae51629bf965c5c098cc9e87908a3df5301051a9e087d6f9bef5c9771ed126" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + [[package]] name = "syntect" version = "5.2.0" @@ -1923,19 +2067,19 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "thiserror 1.0.63", + "thiserror 1.0.69", "walkdir", "yaml-rust", ] [[package]] name = "terminal_size" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" dependencies = [ "rustix", - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] @@ -1949,11 +2093,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl 1.0.63", + "thiserror-impl 1.0.69", ] [[package]] @@ -1967,13 +2111,13 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] @@ -1984,7 +2128,7 @@ checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] @@ -1999,9 +2143,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" dependencies = [ "deranged", "itoa", @@ -2020,19 +2164,29 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" dependencies = [ "num-conv", "time-core", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -2052,7 +2206,7 @@ dependencies = [ "backtrace", "bytes", "libc", - "mio 1.0.1", + "mio", "pin-project-lite", "signal-hook-registry", "socket2", @@ -2068,7 +2222,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.96", ] [[package]] @@ -2096,9 +2250,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ "bytes", "futures-core", @@ -2109,15 +2263,15 @@ dependencies = [ [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "log", "pin-project-lite", @@ -2126,9 +2280,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -2136,9 +2290,9 @@ dependencies = [ [[package]] name = "tracing-error" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" dependencies = [ "tracing", "tracing-subscriber", @@ -2146,9 +2300,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "sharded-slab", "thread_local", @@ -2170,12 +2324,12 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.1.0", + "http 1.2.0", "httparse", "log", "rand", "sha1", - "thiserror 1.0.63", + "thiserror 1.0.69", "url", "utf-8", ] @@ -2194,51 +2348,42 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.15" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode_categories" @@ -2260,9 +2405,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -2275,6 +2420,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -2283,9 +2440,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vec_map" @@ -2375,34 +2532,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.96", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2410,22 +2568,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.96", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "winapi" @@ -2445,11 +2606,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2464,16 +2625,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", + "windows-targets", ] [[package]] @@ -2482,22 +2634,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] -name = "windows-targets" -version = "0.48.5" +name = "windows-sys" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", + "windows-targets", ] [[package]] @@ -2506,46 +2652,28 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -2558,24 +2686,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -2584,27 +2700,27 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] -name = "windows_x86_64_gnullvm" +name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" +name = "write16" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" [[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" +name = "writeable" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "xdg" @@ -2630,8 +2746,96 @@ dependencies = [ "time", ] +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] + +[[package]] +name = "zerofrom" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", + "synstructure", +] + [[package]] name = "zeroize" version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.96", +] From 2a1d089305b56386627005802737c7fe3e683547 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Jan 2025 22:39:30 +0100 Subject: [PATCH 0746/1024] Update Swatinem/rust-cache action to v2.7.7 (#1460) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fd5f7ab69..c319c4950 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,7 +18,7 @@ jobs: - run: rustup override set ${{ env.RUST_VERSION }} - run: rustup component add clippy - run: rustup component add rustfmt - - uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3 + - uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2.7.7 - run: cargo clippy --workspace -- -D warnings - run: cargo fmt --check --all @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - run: rustup override set ${{ env.RUST_VERSION }} - - uses: Swatinem/rust-cache@23bce251a8cd2ffc3c1075eaa2367cf899916d84 # v2.7.3 + - uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2.7.7 - run: cargo run - run: cp CNAME ./site/ From 2c061a5f65644c4150a2bea36784940e0fe8ab13 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 23 Jan 2025 10:18:58 +0100 Subject: [PATCH 0747/1024] Update Rust crate comrak to v0.35.0 (#1463) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 070d3ba9a..3f1bddff8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -392,9 +392,9 @@ checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "comrak" -version = "0.34.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1664eb8abab93a9c09d1e85df10b4de6af0b4c738f267750b211a77a771447fe" +checksum = "52602e10393cfaaf8accaf707f2da743dc22cbe700a343ff8dbc9e5e04bc6b74" dependencies = [ "bon", "caseless", diff --git a/Cargo.toml b/Cargo.toml index aa1393d75..d5f27fa84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ serde = "=1.0.217" serde_derive = "=1.0.217" serde_yaml = "=0.9.33" serde_json = "=1.0.137" -comrak = { version = "=0.34.0", features = ["bon"] } +comrak = { version = "=0.35.0", features = ["bon"] } rayon = "=1.10.0" regex = "=1.11.1" sass-rs = "=0.2.2" From d8863d7c0806033371ac390da4513c5975a488d1 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 23 Jan 2025 17:01:44 -0500 Subject: [PATCH 0748/1024] Update posts/2025-01-18-Project-Goals-Dec-Update.md Co-authored-by: Remo Senekowitsch --- posts/2025-01-18-Project-Goals-Dec-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-01-18-Project-Goals-Dec-Update.md b/posts/2025-01-18-Project-Goals-Dec-Update.md index e4c715def..ad7bd7440 100644 --- a/posts/2025-01-18-Project-Goals-Dec-Update.md +++ b/posts/2025-01-18-Project-Goals-Dec-Update.md @@ -111,7 +111,7 @@ In addition, we fleshed out a design sketch for the changes in rustdoc's JSON su
    -* Over the last six months, we created a lang-team experiment devoted to this issue and [spastorino](https://github.com/spastorino) began work on an experimental implementation. [joshtriplett](https://github.com/joshtriplett) authored [RFC 3680](https://github.com/rust-lang/rfcs/3680), which has received substantial feedback. The current work is focused on identifying "cheaply cloneable" types and making it easy to create closures that clone them instead of moving them. +* Over the last six months, we created a lang-team experiment devoted to this issue and [spastorino](https://github.com/spastorino) began work on an experimental implementation. [joshtriplett](https://github.com/joshtriplett) authored [RFC 3680](https://github.com/rust-lang/rfcs/pull/3680), which has received substantial feedback. The current work is focused on identifying "cheaply cloneable" types and making it easy to create closures that clone them instead of moving them.
    From e386a440d00bee16b020329c1426166b784cdd18 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 23 Jan 2025 17:01:55 -0500 Subject: [PATCH 0749/1024] Update posts/2025-01-18-Project-Goals-Dec-Update.md Co-authored-by: lcnr --- posts/2025-01-18-Project-Goals-Dec-Update.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/2025-01-18-Project-Goals-Dec-Update.md b/posts/2025-01-18-Project-Goals-Dec-Update.md index ad7bd7440..f64bb53db 100644 --- a/posts/2025-01-18-Project-Goals-Dec-Update.md +++ b/posts/2025-01-18-Project-Goals-Dec-Update.md @@ -148,8 +148,8 @@ In addition, we fleshed out a design sketch for the changes in rustdoc's JSON su
    -* The `-Znext-solver=coherence` stabilization encountered no issues and is now on beta, with a new update blogpost published. -* Significant progress was made on bootstrap with `-Znext-solver=globally`, including finishing the core of the "typing mode" refactor and unblocking bootstrap. +* The `-Znext-solver=coherence` stabilization is now stable in version 1.84, with a new update blogpost published. +* Significant progress was made on bootstrap with `-Znext-solver=globally`. We're now able to compile rustc and cargo, enabling try-builds and perf runs.
    From 77d03cd8fd9df9396d535e332c909231fed5a830 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 23 Jan 2025 17:05:02 -0500 Subject: [PATCH 0750/1024] Update posts/2025-01-18-Project-Goals-Dec-Update.md --- posts/2025-01-18-Project-Goals-Dec-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-01-18-Project-Goals-Dec-Update.md b/posts/2025-01-18-Project-Goals-Dec-Update.md index f64bb53db..e1d74168a 100644 --- a/posts/2025-01-18-Project-Goals-Dec-Update.md +++ b/posts/2025-01-18-Project-Goals-Dec-Update.md @@ -29,7 +29,7 @@ For our other goals, we made progress, but there remains work to be done: * **Return Type Notation (RTN)** is implemented and we had a [call for experimentation](https://blog.rust-lang.org/inside-rust/2024/09/26/rtn-call-for-testing.html) but it has not yet reached stable. This will be done as part of our 2025H1 goal. * Async Functions in Traits (and Return Position Impl Trait in Trait) are currently not consided `dyn` compatible. We would eventually like to have first-class `dyn` support, but as an intermediate step we created a procedural macro crate [`dynosaur`](https://crates.io/crates/dynosaur)[^names] that can create wrappers that enable **dynamic dispatch**. We are planning a comprehensive blog post in 2025H1 that shows how to use this crate and lays out the overall plan for async functions in traits. * Work was done to prototype an **implementation for async drop** but we didn't account for reviewing bandwidth. [nikomatsakis](https://github.com/nikomatsakis) has done initial reads and is working with PR author to get this done in 2025H1. To be clear though the scope of this is an experiment with the goal of uncovering implementation hurdles. There remains significant language design work before this feature would be considered for stabilization (we don't even have an RFC, and there are lots of unknowns remaining). -* We have had fruitful discussions about the trait for **async iteration** but do not have widespread consensus, that's on the docker for 2025H1. +* We have had fruitful discussions about the trait for **async iteration** but do not have widespread consensus, that's on the docket for 2025H1. [^names]: As everyone knows, the hardest part of computer-science is naming. I think we rocked this one. From 5d79d0a36f53a680125403d28d89cd46bd8cf27d Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 23 Jan 2025 17:06:28 -0500 Subject: [PATCH 0751/1024] Rename 2025-01-18-Project-Goals-Dec-Update.md to 2025-01-23-Project-Goals-Dec-Update.md --- ...Goals-Dec-Update.md => 2025-01-23-Project-Goals-Dec-Update.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2025-01-18-Project-Goals-Dec-Update.md => 2025-01-23-Project-Goals-Dec-Update.md} (100%) diff --git a/posts/2025-01-18-Project-Goals-Dec-Update.md b/posts/2025-01-23-Project-Goals-Dec-Update.md similarity index 100% rename from posts/2025-01-18-Project-Goals-Dec-Update.md rename to posts/2025-01-23-Project-Goals-Dec-Update.md From df291d3add624bb7dd5db0bc71e2e60024090c48 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 28 Jan 2025 10:27:24 -0800 Subject: [PATCH 0752/1024] Announcing Rust 1.84.1 --- posts/2025-01-30-Rust-1.84.1.md | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 posts/2025-01-30-Rust-1.84.1.md diff --git a/posts/2025-01-30-Rust-1.84.1.md b/posts/2025-01-30-Rust-1.84.1.md new file mode 100644 index 000000000..bd4097fc4 --- /dev/null +++ b/posts/2025-01-30-Rust-1.84.1.md @@ -0,0 +1,43 @@ +--- +layout: post +title: "Announcing Rust 1.84.1" +author: The Rust Release Team +release: true +--- + +The Rust team has published a new point release of Rust, 1.84.1. Rust is a +programming language that is empowering everyone to build reliable and +efficient software. + +If you have a previous version of Rust installed via rustup, getting Rust +1.84.1 is as easy as: + +``` +rustup update stable +``` + +If you don't have it already, you can [get `rustup`][rustup] from the +appropriate page on our website. + +[rustup]: https://www.rust-lang.org/install.html + +## What's in 1.84.1 + +1.84.1 resolves a few regressions introduced in 1.84.0: + +- [Fix ICE 132920 in duplicate-crate diagnostics.](https://github.com/rust-lang/rust/pull/133304/) +- [Fix errors for overlapping impls in incremental rebuilds.](https://github.com/rust-lang/rust/pull/133828/) +- [Fix slow compilation related to the next-generation trait solver.](https://github.com/rust-lang/rust/pull/135618/) +- [Fix debuginfo when LLVM's location discriminator value limit is exceeded.](https://github.com/rust-lang/rust/pull/135643/) + +It also includes several fixes for those building Rust from source: + +- [Only try to distribute `llvm-objcopy` if llvm tools are enabled.](https://github.com/rust-lang/rust/pull/134240/) +- [Add Profile Override for Non-Git Sources.](https://github.com/rust-lang/rust/pull/135433/) +- [Resolve symlinks of LLVM tool binaries before copying them.](https://github.com/rust-lang/rust/pull/135585/) +- [Make it possible to use ci-rustc on tarball sources.](https://github.com/rust-lang/rust/pull/135722/) + +### Contributors to 1.84.1 + +Many people came together to create Rust 1.84.1. We couldn't have done it +without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.84.1/) From a0004e674714907ff63a9843813e9b07cfac3e17 Mon Sep 17 00:00:00 2001 From: Ada Alakbarova <58857108+ada4a@users.noreply.github.com> Date: Wed, 29 Jan 2025 13:42:29 +0100 Subject: [PATCH 0753/1024] fix(2025-01-17-this-development-cycle-in-cargo-1.85): typo (#1468) --- .../2025-01-17-this-development-cycle-in-cargo-1.85.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md b/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md index a736b4402..709dbc7ec 100644 --- a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md +++ b/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md @@ -110,7 +110,7 @@ This was skipped if `--allow-dirty` was used which changed in Cargo 1.81 to help with efforts in auditing published packages ([#13960](https://github.com/rust-lang/cargo/pull/13960)). -[landonxjames](https://github.com/landonxjames) reported that this change caused a significant perfornce regression when publishing the +[landonxjames](https://github.com/landonxjames) reported that this change caused a significant performance regression when publishing the [aws-sdk-rust repo](https://github.com/awslabs/aws-sdk-rust). Cargo went from skipping its dirty file check with `--allow-dirty` to always running it. The check has not been optimized for publishing over 400 packages at once. From 14ca4c036c7970e4887212ceb28f5a83fe89eb68 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2025 13:43:08 +0100 Subject: [PATCH 0754/1024] Update Rust crate serde_json to v1.0.138 (#1466) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3f1bddff8..76936abd6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1831,9 +1831,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.137" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" +checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" dependencies = [ "itoa", "memchr", diff --git a/Cargo.toml b/Cargo.toml index d5f27fa84..aecd6af5e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ lazy_static = "=1.5.0" serde = "=1.0.217" serde_derive = "=1.0.217" serde_yaml = "=0.9.33" -serde_json = "=1.0.137" +serde_json = "=1.0.138" comrak = { version = "=0.35.0", features = ["bon"] } rayon = "=1.10.0" regex = "=1.11.1" From a564fa48a7d40a627419f8aad28ee2a09754c63c Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Wed, 29 Jan 2025 16:44:00 -0800 Subject: [PATCH 0755/1024] Capitalize LLVM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com> --- posts/2025-01-30-Rust-1.84.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-01-30-Rust-1.84.1.md b/posts/2025-01-30-Rust-1.84.1.md index bd4097fc4..ae4ea53a3 100644 --- a/posts/2025-01-30-Rust-1.84.1.md +++ b/posts/2025-01-30-Rust-1.84.1.md @@ -32,7 +32,7 @@ appropriate page on our website. It also includes several fixes for those building Rust from source: -- [Only try to distribute `llvm-objcopy` if llvm tools are enabled.](https://github.com/rust-lang/rust/pull/134240/) +- [Only try to distribute `llvm-objcopy` if LLVM tools are enabled.](https://github.com/rust-lang/rust/pull/134240/) - [Add Profile Override for Non-Git Sources.](https://github.com/rust-lang/rust/pull/135433/) - [Resolve symlinks of LLVM tool binaries before copying them.](https://github.com/rust-lang/rust/pull/135585/) - [Make it possible to use ci-rustc on tarball sources.](https://github.com/rust-lang/rust/pull/135722/) From 24b4ac0740c904c781295a3abc21dfd8d634bacf Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Thu, 30 Jan 2025 13:30:22 -0500 Subject: [PATCH 0756/1024] Project director Jan 2025 update of Dec board meeting --- .../2025-01-30-project-director-update.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 posts/inside-rust/2025-01-30-project-director-update.md diff --git a/posts/inside-rust/2025-01-30-project-director-update.md b/posts/inside-rust/2025-01-30-project-director-update.md new file mode 100644 index 000000000..3e6b78b7f --- /dev/null +++ b/posts/inside-rust/2025-01-30-project-director-update.md @@ -0,0 +1,23 @@ +--- +layout: post +title: "January 2025 Project Director Update" +author: Carol Nichols +team: Rust Foundation Project Directors +--- + +Happy New Year everyone! Welcome to the second blog post in [the series started last month](https://blog.rust-lang.org/inside-rust/2024/12/17/project-director-update.html) where us Rust Foundation Project Directors will be sharing the highlights from last month’s Rust Foundation Board meeting. You’ll find the [full December 2024 meeting minutes](https://rustfoundation.org/resource/december-board-minutes/) on the Rust Foundation’s [beautiful new site](https://rustfoundation.org/policies-resources/#minutes)! + +Highlights from the December meeting include: + +* The Foundation is contracting with a Rust training consultant to help shape a future beginner-level online course aimed primarily at organizations interested in building out their base of Rust talent. While this work is still in the early and exploratory stages, the current idea is that the content would be freely-available with an optional paid exam and certification at the conclusion of the course. No further work has been carried out on this future offering since the Foundation’s listening sessions last year, however, the staff team is working on a roadmap to present to the board at the February board meeting to outline the program. Their intention is to then share the roadmap with Rust Foundation members and to host a listening session to discuss this proposed outline for all work under a training program, including a Rust Foundation accreditation system for existing training providers. More information will be shared following the February board meeting. +* The Rust Foundation was awarded a third year of funding from Alpha-Omega, and there may be additional funding from Alpha-Omega for specific initiatives. The Foundation's application for funding from the Sovereign Tech Agency is on hold until further notice.. +* The Foundation is planning on supporting some of the [Rust Project’s H1 2025 goals](https://github.com/rust-lang/rfcs/pull/3764) with grants. +* After receiving and incorporating a deluge of feedback from the wider Rust community, then making revisions and getting additional feedback from the Rust Project on those revisions, the Foundation proposed a new version of the Trademark policy and the Board voted to approve it. ([The revised Trademark Policy is now public\!](https://rustfoundation.org/media/rust-language-trademark-policy-updates-explained/)) +* Lars Bergstrom, Board Chair and representative from Google, announced his intention to step down from the board entirely when his 2 year term as Chair was completed in January 2025. Google will be sending a new representative in his place, and the Board will be electing a new chair in January. Thank you for serving as Chair and being on the board, Lars! + +As always, if you have any comments, questions, or suggestions, please +email all of the project directors via project-directors at rust-lang.org or join us in [the +#foundation channel on the Rust Zulip][foundation-zulip]. Have a great holiday season; I’ll post +again in 2025! + +[foundation-zulip]: https://rust-lang.zulipchat.com/#narrow/channel/335408-foundation From fdfcfafb9361e40cefeafe19b738ac31fd8cde19 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2025 22:21:49 +0100 Subject: [PATCH 0757/1024] Update dependency rust to v1.84.1 (#1470) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c319c4950..089cd9480 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.84.0 + RUST_VERSION: 1.84.1 jobs: lint: From 90a990a3d66c6a8779acc2bf01b9bc4a10bf862b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2025 10:05:29 +0100 Subject: [PATCH 0758/1024] Lock file maintenance (#1465) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 76936abd6..b3a3ccf6b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -241,9 +241,9 @@ dependencies = [ [[package]] name = "build_html" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225eb82ce9e70dcc0cfa6e404d0f353326b6e163bf500ec4711cec317d11935c" +checksum = "01b01f54cbdd56298a506b086691594ded3b68dcbc9437adc87c616a35e7fc89" [[package]] name = "bumpalo" @@ -417,9 +417,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -2360,9 +2360,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" [[package]] name = "unicode-normalization" From 27750d4c6cac6bfbe2ad6cb0bcc924c731a8b5ef Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Mon, 3 Feb 2025 19:58:32 +0100 Subject: [PATCH 0759/1024] Update serde_yaml to 0.9.34-deprecated (#1462) --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b3a3ccf6b..272ce0992 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1855,9 +1855,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.33" +version = "0.9.34-deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9" +checksum = "d4f17ab28832fcb8e88a0e938aaa915b4f4618142bd011d4e6a3060028974c47" dependencies = [ "indexmap", "itoa", diff --git a/Cargo.toml b/Cargo.toml index aecd6af5e..1832277fd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,8 +11,8 @@ handlebars = { version = "=6.3.0", features = ["dir_source"] } lazy_static = "=1.5.0" serde = "=1.0.217" serde_derive = "=1.0.217" -serde_yaml = "=0.9.33" serde_json = "=1.0.138" +serde_yaml = "=0.9.34-deprecated" comrak = { version = "=0.35.0", features = ["bon"] } rayon = "=1.10.0" regex = "=1.11.1" From e52d39f9b0664ca5817c55488f77c353f6cb5a0d Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Tue, 4 Feb 2025 06:21:54 -0800 Subject: [PATCH 0760/1024] Update cargo's changelog location Cargo has moved its changelog to the static site in order to deal with GitHub markdown rendering issues. This updates all the links to use the new location. --- posts/2019-05-23-Rust-1.35.0.md | 2 +- posts/2019-07-04-Rust-1.36.0.md | 2 +- posts/2019-08-15-Rust-1.37.0.md | 2 +- posts/2019-09-26-Rust-1.38.0.md | 2 +- posts/2019-11-07-Rust-1.39.0.md | 2 +- posts/2019-12-19-Rust-1.40.0.md | 2 +- posts/2020-01-30-Rust-1.41.0.md | 2 +- posts/2020-03-12-Rust-1.42.md | 2 +- posts/2020-04-23-Rust-1.43.0.md | 2 +- posts/2020-07-16-Rust-1.45.0.md | 2 +- posts/2020-08-27-Rust-1.46.0.md | 2 +- posts/2020-10-08-Rust-1.47.md | 2 +- posts/2020-11-19-Rust-1.48.md | 2 +- posts/2020-12-31-Rust-1.49.0.md | 2 +- posts/2021-02-11-Rust-1.50.0.md | 2 +- posts/2021-03-25-Rust-1.51.0.md | 2 +- posts/2021-05-06-Rust-1.52.0.md | 2 +- posts/2021-06-17-Rust-1.53.0.md | 2 +- posts/2021-07-29-Rust-1.54.0.md | 2 +- posts/2021-09-09-Rust-1.55.0.md | 2 +- posts/2021-10-21-Rust-1.56.0.md | 2 +- posts/2021-12-02-Rust-1.57.0.md | 2 +- posts/2022-01-13-Rust-1.58.0.md | 2 +- posts/2022-02-24-Rust-1.59.0.md | 2 +- posts/2022-04-07-Rust-1.60.0.md | 2 +- posts/2022-05-19-Rust-1.61.0.md | 2 +- posts/2022-06-30-Rust-1.62.0.md | 2 +- posts/2022-08-11-Rust-1.63.0.md | 2 +- posts/2022-09-22-Rust-1.64.0.md | 2 +- posts/2022-11-03-Rust-1.65.0.md | 2 +- posts/2022-12-15-Rust-1.66.0.md | 2 +- posts/2023-01-26-Rust-1.67.0.md | 2 +- posts/2023-03-09-Rust-1.68.0.md | 2 +- posts/2023-04-20-Rust-1.69.0.md | 2 +- posts/2023-06-01-Rust-1.70.0.md | 2 +- posts/2023-07-13-Rust-1.71.0.md | 2 +- posts/2023-08-24-Rust-1.72.0.md | 2 +- posts/2023-10-05-Rust-1.73.0.md | 2 +- posts/2023-11-16-Rust-1.74.0.md | 2 +- posts/2023-12-28-Rust-1.75.0.md | 2 +- posts/2024-02-08-Rust-1.76.0.md | 2 +- posts/2024-03-21-Rust-1.77.0.md | 2 +- posts/2024-05-02-Rust-1.78.0.md | 2 +- posts/2024-06-13-Rust-1.79.0.md | 2 +- posts/2024-07-25-Rust-1.80.0.md | 2 +- posts/2024-09-05-Rust-1.81.0.md | 2 +- posts/2024-10-17-Rust-1.82.0.md | 2 +- posts/2024-11-28-Rust-1.83.0.md | 4 ++-- posts/2025-01-09-Rust-1.84.0.md | 2 +- 49 files changed, 50 insertions(+), 50 deletions(-) diff --git a/posts/2019-05-23-Rust-1.35.0.md b/posts/2019-05-23-Rust-1.35.0.md index 3b37b2c97..676124c95 100644 --- a/posts/2019-05-23-Rust-1.35.0.md +++ b/posts/2019-05-23-Rust-1.35.0.md @@ -279,7 +279,7 @@ See the [detailed release notes for Clippy][relnotes-clippy] for more details. ### Changes in Cargo [relnotes-cargo]: -https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-135-2019-05-23 +https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-135-2019-05-23 See the [detailed release notes for Cargo][relnotes-cargo] for more details. diff --git a/posts/2019-07-04-Rust-1.36.0.md b/posts/2019-07-04-Rust-1.36.0.md index 35ed5b8e4..d5eb7b296 100644 --- a/posts/2019-07-04-Rust-1.36.0.md +++ b/posts/2019-07-04-Rust-1.36.0.md @@ -148,7 +148,7 @@ the implementation in `std` still defaults to the SipHash 1-3 hashing algorithm. [`--offline`]: https://doc.rust-lang.org/cargo/commands/cargo-build.html#cargo_build_manifest_options [`cargo fetch`]: https://doc.rust-lang.org/cargo/commands/cargo-fetch.html [nrc-blog]: https://www.ncameron.org/blog/cargo-offline/ -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-136-2019-07-04 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-136-2019-07-04 During most builds, Cargo doesn't interact with the network. Sometimes, however, Cargo has to. diff --git a/posts/2019-08-15-Rust-1.37.0.md b/posts/2019-08-15-Rust-1.37.0.md index cff1d9211..76e64ba91 100644 --- a/posts/2019-08-15-Rust-1.37.0.md +++ b/posts/2019-08-15-Rust-1.37.0.md @@ -158,7 +158,7 @@ In Rust 1.37.0 there have been a number of standard library stabilizations: ### Other changes -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-137-2019-08-15 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-137-2019-08-15 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-137 There are other changes in the Rust 1.37 release: check out what changed in [Rust][notes], [Cargo][relnotes-cargo], and [Clippy][relnotes-clippy]. diff --git a/posts/2019-09-26-Rust-1.38.0.md b/posts/2019-09-26-Rust-1.38.0.md index 9c7b2c8d9..7d303e460 100644 --- a/posts/2019-09-26-Rust-1.38.0.md +++ b/posts/2019-09-26-Rust-1.38.0.md @@ -125,7 +125,7 @@ Additionally, these functions have been stabilized: ### Other changes [relnotes-rust]: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1380-2019-09-26 -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-138-2019-09-26 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-138-2019-09-26 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-138 There are other changes in the Rust 1.38 release: check out what changed in [Rust][relnotes-rust], [Cargo][relnotes-cargo], and [Clippy][relnotes-clippy]. diff --git a/posts/2019-11-07-Rust-1.39.0.md b/posts/2019-11-07-Rust-1.39.0.md index 544fe5bbc..cb7b42eae 100644 --- a/posts/2019-11-07-Rust-1.39.0.md +++ b/posts/2019-11-07-Rust-1.39.0.md @@ -157,7 +157,7 @@ In Rust 1.39.0 the following functions were stabilized: ### Other changes -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-139-2019-11-07 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-139-2019-11-07 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-139 [compat-notes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#compatibility-notes diff --git a/posts/2019-12-19-Rust-1.40.0.md b/posts/2019-12-19-Rust-1.40.0.md index 4588b60d7..4d89ed17a 100644 --- a/posts/2019-12-19-Rust-1.40.0.md +++ b/posts/2019-12-19-Rust-1.40.0.md @@ -238,7 +238,7 @@ In Rust 1.40.0 the following functions and macros were stabilized: ### Other changes -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-140-2019-12-19 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-140-2019-12-19 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-140 [compat-notes]: https://github.com/rust-lang/rust/blob/master/RELEASES.md#compatibility-notes diff --git a/posts/2020-01-30-Rust-1.41.0.md b/posts/2020-01-30-Rust-1.41.0.md index b671cf633..aa2c2037a 100644 --- a/posts/2020-01-30-Rust-1.41.0.md +++ b/posts/2020-01-30-Rust-1.41.0.md @@ -197,7 +197,7 @@ Rust 1.42.0, these targets will be demoted to the lowest support tier. ### Other changes -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-141-2020-01-30 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-141-2020-01-30 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-141 [mir-opt]: https://blog.rust-lang.org/inside-rust/2019/12/02/const-prop-on-by-default.html diff --git a/posts/2020-03-12-Rust-1.42.md b/posts/2020-03-12-Rust-1.42.md index 8d3354b14..ecf72aec0 100644 --- a/posts/2020-03-12-Rust-1.42.md +++ b/posts/2020-03-12-Rust-1.42.md @@ -168,7 +168,7 @@ In this release, if you are using Cargo, [you no longer need this line when work ### Other changes -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-142-2020-03-12 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-142-2020-03-12 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-142 There are other changes in the Rust 1.42.0 release: check out what changed in [Rust][notes], [Cargo][relnotes-cargo], and [Clippy][relnotes-clippy]. diff --git a/posts/2020-04-23-Rust-1.43.0.md b/posts/2020-04-23-Rust-1.43.0.md index 4238ac2d6..e7e8a469c 100644 --- a/posts/2020-04-23-Rust-1.43.0.md +++ b/posts/2020-04-23-Rust-1.43.0.md @@ -116,7 +116,7 @@ Additionally, we stabilized six new APIs: ### Other changes -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-143-2020-04-23 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-143-2020-04-23 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-143 There are other changes in the Rust 1.43.0 release: check out what changed in diff --git a/posts/2020-07-16-Rust-1.45.0.md b/posts/2020-07-16-Rust-1.45.0.md index 6345bc055..9e76bec7a 100644 --- a/posts/2020-07-16-Rust-1.45.0.md +++ b/posts/2020-07-16-Rust-1.45.0.md @@ -275,7 +275,7 @@ There are other changes in the Rust 1.45.0 release: check out what changed in Many people came together to create Rust 1.45.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.45.0/) -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-145-2020-07-16 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-145-2020-07-16 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-145 [`Arc::as_ptr`]: https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.as_ptr diff --git a/posts/2020-08-27-Rust-1.46.0.md b/posts/2020-08-27-Rust-1.46.0.md index 59e10a8be..1d2de46b2 100644 --- a/posts/2020-08-27-Rust-1.46.0.md +++ b/posts/2020-08-27-Rust-1.46.0.md @@ -119,7 +119,7 @@ See the [detailed release notes][notes] for more. ### Other changes -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-146-2020-08-27 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-146-2020-08-27 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-146 There are other changes in the Rust 1.46.0 release: check out what changed in diff --git a/posts/2020-10-08-Rust-1.47.md b/posts/2020-10-08-Rust-1.47.md index 88283e5e7..d4c1340b5 100644 --- a/posts/2020-10-08-Rust-1.47.md +++ b/posts/2020-10-08-Rust-1.47.md @@ -219,7 +219,7 @@ See the [detailed release notes][notes] for more. [Rustdoc has gained support for the Ayu theme](https://github.com/rust-lang/rust/pull/71237/). -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-147-2020-10-08 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-147-2020-10-08 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-147 There are other changes in the Rust 1.47.0 release: check out what changed in diff --git a/posts/2020-11-19-Rust-1.48.md b/posts/2020-11-19-Rust-1.48.md index d15224077..0dc0d9f58 100644 --- a/posts/2020-11-19-Rust-1.48.md +++ b/posts/2020-11-19-Rust-1.48.md @@ -220,7 +220,7 @@ See the [detailed release notes][notes] for more. ### Other changes -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-148-2020-11-19 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-148-2020-11-19 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-148 There are other changes in the Rust 1.48.0 release: check out what changed in diff --git a/posts/2020-12-31-Rust-1.49.0.md b/posts/2020-12-31-Rust-1.49.0.md index 4e392623f..8646b6d51 100644 --- a/posts/2020-12-31-Rust-1.49.0.md +++ b/posts/2020-12-31-Rust-1.49.0.md @@ -184,7 +184,7 @@ See the [detailed release notes][notes] to learn about other changes. ### Other changes -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-149-2020-12-31 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-149-2020-12-31 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-149 There are other changes in the Rust 1.49.0 release: check out what changed in diff --git a/posts/2021-02-11-Rust-1.50.0.md b/posts/2021-02-11-Rust-1.50.0.md index 386838edd..f9788ad29 100644 --- a/posts/2021-02-11-Rust-1.50.0.md +++ b/posts/2021-02-11-Rust-1.50.0.md @@ -157,7 +157,7 @@ See the [detailed release notes][notes] to learn about other changes. ### Other changes -[relnotes-cargo]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-150-2021-02-11 +[relnotes-cargo]: https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-150-2021-02-11 [relnotes-clippy]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-150 There are other changes in the Rust 1.50.0 release: check out what changed in diff --git a/posts/2021-03-25-Rust-1.51.0.md b/posts/2021-03-25-Rust-1.51.0.md index 559f62c22..8ecda02e3 100644 --- a/posts/2021-03-25-Rust-1.51.0.md +++ b/posts/2021-03-25-Rust-1.51.0.md @@ -200,7 +200,7 @@ The following methods were stabilised. ### Other changes -There are other changes in the Rust 1.51.0 release: check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1510-2021-03-25), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-151-2021-03-25), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-151). +There are other changes in the Rust 1.51.0 release: check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1510-2021-03-25), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-151-2021-03-25), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-151). ### Contributors to 1.51.0 Many people came together to create Rust 1.51.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.51.0/) diff --git a/posts/2021-05-06-Rust-1.52.0.md b/posts/2021-05-06-Rust-1.52.0.md index bedb3220e..9c93a7de3 100644 --- a/posts/2021-05-06-Rust-1.52.0.md +++ b/posts/2021-05-06-Rust-1.52.0.md @@ -82,7 +82,7 @@ The following previously stable APIs are now `const`. ### Other changes -There are other changes in the Rust 1.52.0 release: check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1520-2021-05-06), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-152-2021-05-06), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-152). +There are other changes in the Rust 1.52.0 release: check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1520-2021-05-06), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-152-2021-05-06), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-152). ### Contributors to 1.52.0 diff --git a/posts/2021-06-17-Rust-1.53.0.md b/posts/2021-06-17-Rust-1.53.0.md index cd3c05be4..0fb3c3343 100644 --- a/posts/2021-06-17-Rust-1.53.0.md +++ b/posts/2021-06-17-Rust-1.53.0.md @@ -175,7 +175,7 @@ The following methods and trait implementations were stabilized. There are other changes in the Rust 1.53.0 release: check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1530-2021-06-17), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-153-2021-06-17), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-153-2021-06-17), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-153). ### Contributors to 1.53.0 diff --git a/posts/2021-07-29-Rust-1.54.0.md b/posts/2021-07-29-Rust-1.54.0.md index 2ae969c00..40aeb52c2 100644 --- a/posts/2021-07-29-Rust-1.54.0.md +++ b/posts/2021-07-29-Rust-1.54.0.md @@ -117,7 +117,7 @@ The following methods and trait implementations were stabilized. ### Other changes There are other changes in the Rust 1.54.0 release: -check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1540-2021-07-29), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-154-2021-07-29), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-154). +check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1540-2021-07-29), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-154-2021-07-29), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-154). rustfmt has also been fixed in the 1.54.0 release to properly format nested out-of-line modules. This may cause changes in formatting to files that were diff --git a/posts/2021-09-09-Rust-1.55.0.md b/posts/2021-09-09-Rust-1.55.0.md index a0083304b..7e37f3187 100644 --- a/posts/2021-09-09-Rust-1.55.0.md +++ b/posts/2021-09-09-Rust-1.55.0.md @@ -154,7 +154,7 @@ The following previously stable functions are now `const`. ### Other changes There are other changes in the Rust 1.55.0 release: -check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-55-2021-09-09), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-155-2021-09-09), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-155). +check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-55-2021-09-09), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-155-2021-09-09), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-155). ### Contributors to 1.55.0 diff --git a/posts/2021-10-21-Rust-1.56.0.md b/posts/2021-10-21-Rust-1.56.0.md index 976937021..0cd06ed2d 100644 --- a/posts/2021-10-21-Rust-1.56.0.md +++ b/posts/2021-10-21-Rust-1.56.0.md @@ -173,7 +173,7 @@ The following previously stable functions are now `const`. There are other changes in the Rust 1.56.0 release: check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1560-2021-10-21), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-156-2021-10-21), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-156-2021-10-21), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-156). ### Contributors to 1.56.0 diff --git a/posts/2021-12-02-Rust-1.57.0.md b/posts/2021-12-02-Rust-1.57.0.md index 6f3cbe0a6..bdedf5a54 100644 --- a/posts/2021-12-02-Rust-1.57.0.md +++ b/posts/2021-12-02-Rust-1.57.0.md @@ -93,7 +93,7 @@ The following previously stable functions are now `const`. There are other changes in the Rust 1.57.0 release: check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1570-2021-12-02), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-157-2021-12-02), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-157-2021-12-02), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-157). ### Contributors to 1.57.0 diff --git a/posts/2022-01-13-Rust-1.58.0.md b/posts/2022-01-13-Rust-1.58.0.md index 2809adf52..61845af01 100644 --- a/posts/2022-01-13-Rust-1.58.0.md +++ b/posts/2022-01-13-Rust-1.58.0.md @@ -166,7 +166,7 @@ The following previously stable functions are now `const`. There are other changes in the Rust 1.58.0 release: check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1580-2022-01-13), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-158-2022-01-13), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-158-2022-01-13), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-158). ### Contributors to 1.58.0 diff --git a/posts/2022-02-24-Rust-1.59.0.md b/posts/2022-02-24-Rust-1.59.0.md index 1d1b5406e..04610f8f0 100644 --- a/posts/2022-02-24-Rust-1.59.0.md +++ b/posts/2022-02-24-Rust-1.59.0.md @@ -244,7 +244,7 @@ The following previously stable functions are now `const`: There are other changes in the Rust 1.59.0 release. Check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1590-2022-02-24), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-159-2022-02-24), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-159-2022-02-24), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-159). ### Contributors to 1.59.0 diff --git a/posts/2022-04-07-Rust-1.60.0.md b/posts/2022-04-07-Rust-1.60.0.md index 59f5e3522..12a00bf5b 100644 --- a/posts/2022-04-07-Rust-1.60.0.md +++ b/posts/2022-04-07-Rust-1.60.0.md @@ -184,7 +184,7 @@ The following methods and trait implementations are now stabilized: There are other changes in the Rust 1.60.0 release. Check out what changed in [Rust](https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1600-2022-04-07), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-160-2022-04-07), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-160-2022-04-07), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-160). ### Contributors to 1.60.0 diff --git a/posts/2022-05-19-Rust-1.61.0.md b/posts/2022-05-19-Rust-1.61.0.md index 14710ccd3..5f8eb2bca 100644 --- a/posts/2022-05-19-Rust-1.61.0.md +++ b/posts/2022-05-19-Rust-1.61.0.md @@ -149,7 +149,7 @@ The following previously stable functions are now `const`: There are other changes in the Rust 1.61.0 release. Check out what changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1610-2022-05-19), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-161-2022-05-19), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-161-2022-05-19), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-161). In a future release we're planning to increase the baseline requirements for diff --git a/posts/2022-06-30-Rust-1.62.0.md b/posts/2022-06-30-Rust-1.62.0.md index b84666dc2..15718ba75 100644 --- a/posts/2022-06-30-Rust-1.62.0.md +++ b/posts/2022-06-30-Rust-1.62.0.md @@ -99,7 +99,7 @@ The following methods and trait implementations are now stabilized: There are other changes in the Rust 1.62.0 release. Check out what changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1620-2022-06-30), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-162-2022-06-30), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-162-2022-06-30), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-162). ### Contributors to 1.62.0 diff --git a/posts/2022-08-11-Rust-1.63.0.md b/posts/2022-08-11-Rust-1.63.0.md index 092dff562..2dbdbb9d5 100644 --- a/posts/2022-08-11-Rust-1.63.0.md +++ b/posts/2022-08-11-Rust-1.63.0.md @@ -247,7 +247,7 @@ These APIs are now usable in const contexts: There are other changes in the Rust 1.63.0 release. Check out what changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1630-2022-08-11), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-163-2022-08-11), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-163-2022-08-11), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-163). ### Contributors to 1.63.0 diff --git a/posts/2022-09-22-Rust-1.64.0.md b/posts/2022-09-22-Rust-1.64.0.md index 7412505ee..7b46213b0 100644 --- a/posts/2022-09-22-Rust-1.64.0.md +++ b/posts/2022-09-22-Rust-1.64.0.md @@ -295,7 +295,7 @@ There are other changes in the Rust 1.64 release, including: Check out everything that changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1640-2022-09-22), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-164-2022-09-22), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-164-2022-09-22), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-164). ### Contributors to 1.64.0 diff --git a/posts/2022-11-03-Rust-1.65.0.md b/posts/2022-11-03-Rust-1.65.0.md index 78dc1f9b5..ec50443fc 100644 --- a/posts/2022-11-03-Rust-1.65.0.md +++ b/posts/2022-11-03-Rust-1.65.0.md @@ -224,7 +224,7 @@ There are other changes in the Rust 1.65 release, including: Check out everything that changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1650-2022-11-03), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-165-2022-11-03), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-165-2022-11-03), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-165). ### Contributors to 1.65.0 diff --git a/posts/2022-12-15-Rust-1.66.0.md b/posts/2022-12-15-Rust-1.66.0.md index b8a2964a4..283df8258 100644 --- a/posts/2022-12-15-Rust-1.66.0.md +++ b/posts/2022-12-15-Rust-1.66.0.md @@ -154,7 +154,7 @@ There are other changes in the Rust 1.66 release, including: Check out everything that changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1660-2022-12-15), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-166-2022-12-15), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-166-2022-12-15), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-166). ### Contributors to 1.66.0 diff --git a/posts/2023-01-26-Rust-1.67.0.md b/posts/2023-01-26-Rust-1.67.0.md index 035d20567..0f4fd3241 100644 --- a/posts/2023-01-26-Rust-1.67.0.md +++ b/posts/2023-01-26-Rust-1.67.0.md @@ -91,7 +91,7 @@ These APIs are now stable in const contexts: Check out everything that changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1670-2023-01-26), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-167-2023-01-26), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-167-2023-01-26), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-167). ### Contributors to 1.67.0 diff --git a/posts/2023-03-09-Rust-1.68.0.md b/posts/2023-03-09-Rust-1.68.0.md index ff5415772..154952523 100644 --- a/posts/2023-03-09-Rust-1.68.0.md +++ b/posts/2023-03-09-Rust-1.68.0.md @@ -121,7 +121,7 @@ These APIs are now stable in const contexts: Check out everything that changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1680-2023-03-09), -[Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-168-2023-03-09), +[Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-168-2023-03-09), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-168). ### Contributors to 1.68.0 diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md index 469abca1e..135d06bab 100644 --- a/posts/2023-04-20-Rust-1.69.0.md +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -77,7 +77,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1690-2023-04-20), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-169-2023-04-20), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-169). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1690-2023-04-20), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-169-2023-04-20), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-169). ## Contributors to 1.69.0 diff --git a/posts/2023-06-01-Rust-1.70.0.md b/posts/2023-06-01-Rust-1.70.0.md index 481c44fdd..e6b499416 100644 --- a/posts/2023-06-01-Rust-1.70.0.md +++ b/posts/2023-06-01-Rust-1.70.0.md @@ -119,7 +119,7 @@ There are known cases where unstable options may have been used without direct u ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.70.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-170-2023-06-01), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-170). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.70.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-170-2023-06-01), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-170). ## Contributors to 1.70.0 diff --git a/posts/2023-07-13-Rust-1.71.0.md b/posts/2023-07-13-Rust-1.71.0.md index 76a13067f..367b78f7d 100644 --- a/posts/2023-07-13-Rust-1.71.0.md +++ b/posts/2023-07-13-Rust-1.71.0.md @@ -120,7 +120,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.71.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-171-2023-07-13), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-171). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.71.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-171-2023-07-13), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-171). ## Contributors to 1.71.0 diff --git a/posts/2023-08-24-Rust-1.72.0.md b/posts/2023-08-24-Rust-1.72.0.md index ec8d9af3f..aac477930 100644 --- a/posts/2023-08-24-Rust-1.72.0.md +++ b/posts/2023-08-24-Rust-1.72.0.md @@ -98,7 +98,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.72.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-172-2023-08-24), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-172). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.72.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-172-2023-08-24), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-172). ### Future Windows compatibility diff --git a/posts/2023-10-05-Rust-1.73.0.md b/posts/2023-10-05-Rust-1.73.0.md index 3a5cb816b..8f8d115d8 100644 --- a/posts/2023-10-05-Rust-1.73.0.md +++ b/posts/2023-10-05-Rust-1.73.0.md @@ -107,7 +107,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.73.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-173-2023-10-05), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-173). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.73.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-173-2023-10-05), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-173). ## Contributors to 1.73.0 diff --git a/posts/2023-11-16-Rust-1.74.0.md b/posts/2023-11-16-Rust-1.74.0.md index af9025b4a..3b5d26e37 100644 --- a/posts/2023-11-16-Rust-1.74.0.md +++ b/posts/2023-11-16-Rust-1.74.0.md @@ -149,7 +149,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.74.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-174-2023-11-16), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-174). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.74.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-174-2023-11-16), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-174). ## Contributors to 1.74.0 diff --git a/posts/2023-12-28-Rust-1.75.0.md b/posts/2023-12-28-Rust-1.75.0.md index 06892854f..24b503df8 100644 --- a/posts/2023-12-28-Rust-1.75.0.md +++ b/posts/2023-12-28-Rust-1.75.0.md @@ -89,7 +89,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.75.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-175-2023-12-28), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-175). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.75.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-175-2023-12-28), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-175). ## Contributors to 1.75.0 diff --git a/posts/2024-02-08-Rust-1.76.0.md b/posts/2024-02-08-Rust-1.76.0.md index 051575968..d69386f21 100644 --- a/posts/2024-02-08-Rust-1.76.0.md +++ b/posts/2024-02-08-Rust-1.76.0.md @@ -65,7 +65,7 @@ The sum of the `core::array::iter::IntoIter` is 6. ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.76.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-176-2024-02-08), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-176). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.76.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-176-2024-02-08), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-176). ## Contributors to 1.76.0 diff --git a/posts/2024-03-21-Rust-1.77.0.md b/posts/2024-03-21-Rust-1.77.0.md index d6c24b7b9..375d7b33a 100644 --- a/posts/2024-03-21-Rust-1.77.0.md +++ b/posts/2024-03-21-Rust-1.77.0.md @@ -102,7 +102,7 @@ flag in the relevant Cargo profile. ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.77.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-177-2024-03-21), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-177). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.77.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-177-2024-03-21), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-177). ## Contributors to 1.77.0 diff --git a/posts/2024-05-02-Rust-1.78.0.md b/posts/2024-05-02-Rust-1.78.0.md index 7427d56a1..93f668d7f 100644 --- a/posts/2024-05-02-Rust-1.78.0.md +++ b/posts/2024-05-02-Rust-1.78.0.md @@ -142,7 +142,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.78.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-178-2024-05-02), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-178). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.78.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-178-2024-05-02), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-178). ## Contributors to 1.78.0 diff --git a/posts/2024-06-13-Rust-1.79.0.md b/posts/2024-06-13-Rust-1.79.0.md index 229f9f87f..35e346382 100644 --- a/posts/2024-06-13-Rust-1.79.0.md +++ b/posts/2024-06-13-Rust-1.79.0.md @@ -159,7 +159,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.79.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-179-2024-06-13), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-179). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.79.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-179-2024-06-13), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-179). ## Contributors to 1.79.0 diff --git a/posts/2024-07-25-Rust-1.80.0.md b/posts/2024-07-25-Rust-1.80.0.md index 27e332c23..69f595ab7 100644 --- a/posts/2024-07-25-Rust-1.80.0.md +++ b/posts/2024-07-25-Rust-1.80.0.md @@ -178,7 +178,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.80.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-180-2024-07-25), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-180). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.80.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-180-2024-07-25), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-180). ## Contributors to 1.80.0 diff --git a/posts/2024-09-05-Rust-1.81.0.md b/posts/2024-09-05-Rust-1.81.0.md index 7308f94fd..94f7c4e5b 100644 --- a/posts/2024-09-05-Rust-1.81.0.md +++ b/posts/2024-09-05-Rust-1.81.0.md @@ -163,7 +163,7 @@ See more details in the previous [announcement of this change](https://blog.rust ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.81.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-181-2024-09-05), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-181). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.81.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-181-2024-09-05), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-181). ## Contributors to 1.81.0 diff --git a/posts/2024-10-17-Rust-1.82.0.md b/posts/2024-10-17-Rust-1.82.0.md index 7acb5a32d..ae84a27dd 100644 --- a/posts/2024-10-17-Rust-1.82.0.md +++ b/posts/2024-10-17-Rust-1.82.0.md @@ -413,7 +413,7 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.82.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-182-2024-10-17), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-182). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.82.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-182-2024-10-17), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-182). ## Contributors to 1.82.0 diff --git a/posts/2024-11-28-Rust-1.83.0.md b/posts/2024-11-28-Rust-1.83.0.md index ee713f059..7b7671f03 100644 --- a/posts/2024-11-28-Rust-1.83.0.md +++ b/posts/2024-11-28-Rust-1.83.0.md @@ -202,8 +202,8 @@ These APIs are now stable in const contexts: ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.83.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-183-2024-11-28), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-183). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.83.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-183-2024-11-28), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-183). ## Contributors to 1.83.0 -Many people came together to create Rust 1.83.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.83.0/) \ No newline at end of file +Many people came together to create Rust 1.83.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.83.0/) diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 562dcbffb..cc98a3f69 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -173,7 +173,7 @@ These APIs are now stable in const contexts ### Other changes -Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.84.0), [Cargo](https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-184-2025-01-09), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-184). +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.84.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-184-2025-01-09), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-184). ## Contributors to 1.84.0 From a0537db7af0c1bde3675454d555bce416f28ead9 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 5 Feb 2025 09:26:49 +0100 Subject: [PATCH 0761/1024] style: revert wrap text code (#1473) --- src/styles/app.scss | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/styles/app.scss b/src/styles/app.scss index 138e9113f..7dfb10fd1 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -221,14 +221,6 @@ div.brand { white-space: pre-wrap; } - pre code { - white-space: inherit; - } - - ul code { - display: block; - } - a.anchor::before { content: "§"; display: none; From 30878471813dfa49e95d577705ee89c405934702 Mon Sep 17 00:00:00 2001 From: David Dal Busco Date: Wed, 5 Feb 2025 09:58:18 +0100 Subject: [PATCH 0762/1024] Revert "style: white-space for wrap text code" (#1475) --- src/styles/app.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/src/styles/app.scss b/src/styles/app.scss index 7dfb10fd1..2d53046af 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -218,7 +218,6 @@ div.brand { color: var(--code-color); background-color: var(--code-bg-color); border: 1px solid var(--code-border-color); - white-space: pre-wrap; } a.anchor::before { From 8ac987da11808322186f153b3dfc9b2e36ae6d79 Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Wed, 5 Feb 2025 17:27:15 +0100 Subject: [PATCH 0763/1024] Add "crates.io: development update" blogpost (#1471) --- ...2025-02-05-crates-io-development-update.md | 69 ++++++++++++++++++ .../delete-page.png | Bin 0 -> 352673 bytes .../publish-notification.png | Bin 0 -> 117664 bytes .../swagger-ui.png | Bin 0 -> 257238 bytes 4 files changed, 69 insertions(+) create mode 100644 posts/2025-02-05-crates-io-development-update.md create mode 100644 static/images/2025-02-05-crates-io-development-update/delete-page.png create mode 100644 static/images/2025-02-05-crates-io-development-update/publish-notification.png create mode 100644 static/images/2025-02-05-crates-io-development-update/swagger-ui.png diff --git a/posts/2025-02-05-crates-io-development-update.md b/posts/2025-02-05-crates-io-development-update.md new file mode 100644 index 000000000..1f7fc10c4 --- /dev/null +++ b/posts/2025-02-05-crates-io-development-update.md @@ -0,0 +1,69 @@ +--- +layout: post +title: "crates.io: development update" +author: Tobias Bieniek +team: the crates.io team +--- + +Back in July 2024, we published a [blog post](https://blog.rust-lang.org/2024/07/29/crates-io-development-update.html) about the ongoing development of crates.io. Since then, we have made a lot of progress and shipped a few new features. In this blog post, we want to give you an update on the latest changes that we have made to crates.io. + +## Crate deletions + +In [RFC #3660](https://rust-lang.github.io/rfcs/3660-crates-io-crate-deletions.html) we proposed a new feature that allows crate owners to delete their crates from crates.io under certain conditions. This can be useful if you have published a crate by mistake or if you want to remove a crate that is no longer maintained. After the RFC was accepted by all team members at the end of August, we began implementing the feature. + +We created a new API endpoint `DELETE /api/v1/crates/:name` that allows crate owners to delete their crates and then created the corresponding user interface. If you are the owner of a crate, you can now go to the crate page, open the "Settings" tab, and find the "Delete this crate" button at the bottom. Clicking this button will lead you to a confirmation page telling you about the potential impact of the deletion and requirements that need to be met in order to delete the crate: + +![Delete Page Screenshot](../../../images/2025-02-05-crates-io-development-update/delete-page.png) + +As you can see from the screenshot above, a crate can only be deleted if either: the crate has been published for less than 72 hours or the crate only has a single owner, and the crate has been downloaded less than 500 times for each month it has been published, and the crate is not depended upon by any other crate on crates.io. + +These requirements were put in place to prevent abuse of the deletion feature and to ensure that crates that are widely used by the community are not deleted accidentally. If you have any feedback on this feature, please let us know! + + +## OpenAPI description + +Around the holiday season we started experimenting with generating an [OpenAPI](https://www.openapis.org/) description for the crates.io API. This was a long-standing request from the community, and we are happy to announce that we now have an experimental OpenAPI description available at ! + +Please note that this is still considered work-in-progress and e.g. the stability guarantees for the endpoints are not written down and the response schemas are also not fully documented yet. + +You can view the OpenAPI description in e.g. a Swagger UI at by putting `https://crates.io/api/openapi.json` in the top input field. We decided to not ship a viewer ourselves for now due to security concerns with running it on the same domain as crates.io itself. We may reconsider whether to offer it on a dedicated subdomain in the future if there is enough interest. + +![Swagger UI Screenshot](../../../images/2025-02-05-crates-io-development-update/swagger-ui.png) + +The OpenAPI description is generated by the [utoipa](https://github.com/juhaku/utoipa) crate, which is a tool that can be integrated with the [axum](https://github.com/tokio-rs/axum) web framework to automatically generate OpenAPI descriptions for all of your endpoints. We would like to thank [Juha Kukkonen](https://github.com/juhaku) for his great work on this tool! + + +## Support form and "Report Crate" button + +Since the crates.io team is small and mostly consists of volunteers, we do not have the capacity to manually monitor all publishes. Instead, we rely on you, the Rust community, to help us catch malicious crates and users. To make it easier for you to report suspicious crates, we added a "Report Crate" button to all the crate pages. If you come across a crate that you think is malicious or violates the [code of conduct](https://www.rust-lang.org/policies/code-of-conduct) or our [usage policy](https://crates.io/policies), you can now click the "Report Crate" button and fill out the form that appears. This will send an email to the crates.io team, who will then review the crate and take appropriate action if necessary. Thank you to crates.io team member [@eth3lbert](https://github.com/eth3lbert) who worked on the majority of this. + +If you have any issues with the support form or the "Report Crate" button, please let us know. You can also always email us directly at [help@crates.io](mailto:help@crates.io) if you prefer not to use the form. + + +## Publish notifications + +We have added a new feature that allows you to receive email notifications when a new version of your crate is published. This can be useful in detecting unauthorized publishes of your crate or simply to keep track of publishes from other members of your team. + +![Publish Notification Screenshot](../../../images/2025-02-05-crates-io-development-update/publish-notification.png) + +This feature was another [long-standing feature request](https://github.com/rust-lang/crates.io/issues/815) from our community, and we were happy to finally implement it. After some initial pushback from a few vocal community members we also implemented a way to opt out of these notifications. If you'd prefer not to receive publish notifications, then you can go to your account settings on crates.io and disable these notifications. + + +## Miscellaneous + +These were some of the more visible changes to crates.io over the past couple of months, but a lot has happened "under the hood" as well. + +- [RFC #3691](https://rust-lang.github.io/rfcs/3691-trusted-publishing-cratesio.html) was opened and accepted to implement "Trusted Publishing" support on crates.io, similar to other ecosystems that adopted it. This will allow you to specify on crates.io which repository/system is allowed to publish new releases of your crate, allowing you to publish crates from CI systems without having to deal with API tokens anymore. + +- Slightly related to the above: API tokens created on crates.io now expire after 90 days by default. It is still possible to disable the expiry or choose other expiry durations though. + +- The crates.io team was one of the first projects to use the [diesel](https://diesel.rs/) database access library, but since that only supported synchronous execution it was sometimes a little awkward to use in our codebase, which was increasingly moving into an async direction after our migration to [axum](https://github.com/tokio-rs/axum) a while ago. The maintainer of diesel, [Georg Semmler](https://github.com/weiznich), did a lot of work to make it possible to use diesel in an async way, resulting in the [diesel-async](https://github.com/weiznich/diesel_async) library. Over the past couple of months we incrementally ported crates.io over to `diesel-async` queries, which now allows us to take advantage of the internal query pipelining in `diesel-async` that resulted in some of our API endpoints getting a 10-15% performance boost. Thank you, Georg, for your work on these crates! + +- Whenever you publish a new version or yank/unyank existing versions a couple of things need to be updated. Our internal database is immediately updated, and then we synchronize the sparse and git index in background worker jobs. Previously, yanking and unyanking a high number of versions would each queue up another synchronization background job. We have now implemented automatic deduplication of redundant background jobs, making our background worker a bit more efficient. + +- The final big, internal change that was just merged last week is related to the testing of our frontend code. In the past we used a tool called [Mirage](https://miragejs.com/) to implement a mock version of our API, which allowed us to run our frontend test suite without having to spin up a full backend server. Unfortunately, the maintenance situation around Mirage had lately forced us to look into alternatives, and we are happy to report that we have now fully migrated to the "Industry standard API mocking" package [msw](https://mswjs.io/). If you want to know more, you can find the details in the "small" [migration pull request](https://github.com/rust-lang/crates.io/pull/10393). + + +## Feedback + +We hope you enjoyed this update on the development of crates.io. If you have any feedback or questions, please let us know on [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io) or [GitHub](https://github.com/rust-lang/crates.io/discussions). We are always happy to hear from you and are looking forward to your feedback! diff --git a/static/images/2025-02-05-crates-io-development-update/delete-page.png b/static/images/2025-02-05-crates-io-development-update/delete-page.png new file mode 100644 index 0000000000000000000000000000000000000000..3e143a5bd64061e654c6412d917b195378ed827c GIT binary patch literal 352673 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 z z5W_&qvQ>YZYq+DjF@*b6)LGroLA#d-d$nQ`%>Cs0&4_*|%iL5?Q-e-KAF=!hYB*Lzr1<;mb8^)`;av z0@n<@bXfVn{q|ddKmZ2M9Pse5V#Nwsx^$`h_19lgT3RX{J9aeUi$Q}1Nm^RN+Er%s(@$dDm5ynckYx4!joAxXGL5*#z!;LW8r!}Y({UVBB{ zZLzU-h9AR9Ys|8&tW19V@kd#Q%^nBaIUj5-PzRhTfTgGsA`CyEH5vi#LAVX){k?- zH3P$S7j9pE`K1X@WTox1&puVW$XMxEu3Wj&@WyplSXgMTX|&g32ccGT7(OF77CwtO z7Cu`Dp_G}KDFX%!FrS;cj)U*wg$oy&_ZIJQh0bI{8}Z7{&X#W7y46)&fA2l!nnF8p zUFGNJ%NCs#mzbC+9XfO{pSO`CM~cf83|$zhvTeDxF!S%%Uw@Uwix2M$Gh(328l?l zf`QU?;{M|Xi5|H1p^dfAkv>Lz>)*FFci6Ihl1sW}M#;)e`s56Tdw<;HV{E`Ik+}04 zX7M(QfzLJ=9$rC60>guz)+!{a?G!)$a+Z8~@E5XwrH2>viMs2()r!^2suY3X1o!7K zE7Zq;K7-_}lh4)ru#Wn`wnAQiZ>oHx4<4(VOCPwMcHCqctPicyQ`2=;vPXVf{EN)f z+37$2`a{I=n9(Elmz2s-x|raCFbCDGU+?~s-E(VS{HyQ2kOG}3RNao$+4u-&fpMP? zKAmC4>caD6>$Nm$uYF~hdSppWPM6IZ9u~*@?&t61*WZ5%&l+(Z=Xb`5XPF0U9hAlT zjqBv6h4XbL_!qKl<<`)W5eqjW5f6tgo1^Et*Y3l0hI*z+I{J`fTaAz;AwE$~7PRAq8IO%NZ-7VY9)W>x@U$5^k zzxhmZ^EcNxX7z;3jP@oB$zDT;8&O)Z-sk`M_hMPF=vVnnCy!x_xheRJcCt30P3d!42Dutz9`E0=&nX@ck_Fhvc`|jRbhK(F78Vz2C?3OLjt~iN_O;90- zj-Bdv7AAhiCnhK(9Wzt03C7#);+I%+E9I92^UPlbBf3AJ6F)0755m{D-6c{{=G9Ow z9`U&`wy)dzUFM96lW3cczpq*;>o*rlyG}h?1^T4KBol_iYD`XUP8AV}m5y*O@cv;< zwo2CPc)W@q-udt?D@%X_3%PmVxNU~N1B9BP6Zo^tR_o_1@?P_!yJb=u4^|M;bdAuIuJp`d! znqmoY2_`hTRTkm#z`MF#d&dqLaL?m+%F%}&TkEr!LKRuPrO!ENB+!-#P)O32-(8;Db|-*N zCM+c(Mn-05$o}emWMHRw6>r#8t?X8{uEtH)2U-re$#bY;SsyF}{9aWvJB^6M4_70V zpF)JM!N?6X9Vk=%79e;mW}>d+12nJx1dd@sB8A7WhGO;B|yZUilR=-K-tdfl-0Z_Bc$0{MC2&oWb83x4|bY!iDk{8$*|xaf>2a`wdY!jmJe_wL>&l>YO= zALWL-uMKT?(=b5io_axOyS9~os>h1zVwz16Zm#dV_U?${jPQEVk%of$kFfZV@9NF^ zq!Z4NE6>~7w(v66`p7-@)|mtep;;({2kdU`s&o0$TQA6ckJs$DLtTB-<+n>eWp3Fm z|GBZ%xO|;>>}iq|b|Yl9G13yV44$6)q`6iwI|54Sn=ZT6e3wMZZ>8b8=DLe+kSlMS zVkNb)W$-(5V85U`e`h#3JY@gqBb~8YX?SScqel;Gv&Iq+=iz+=hKK0;?YCbj&)m6l zW#h)+Ko}l=|NQgMMxYSNpexw_%P+sk#~*(z=bUqnbnV(Te0PoYIdkU7j2Sbkq~ihi z>ea#7mDqpUX{VWo-BmI*a3fsU5$-Ldx+e@Av#FMlkPz|;6Ml@w)(37=r%tU=3`{NW zDZB5!yG)oc!3Z8|WYh#a?6=-;h;Sf^c;t~sjA+2h4c zufB@a8U}Ah2;YRyGCpgQCQXtqUAolBhlHkHTR6`bUU;F(HHi9f9YTQi_19lZ_wL>0 z=%bIW)1wmF`SjCIhdyhl1GZ|_D*5ia@8r1Sj+5cThX)h+mjpe1d&-_QS`hH$ zig*3Y8tL^V1j;swH)n=8Gpj!Mbfk=I6+#lUe?V585t86u0OJdxyZX>deP`La_v7JC zvl$R=gM|x6I_QLkozWJnXu=Ybp#A-`2hncvJ|_bITRCM+`;XUd0`ET=VZx)}Qn`m^@`-XxmyrNT`GM zJ*3Kc_g6s+LW%?ex5d7@hGP-t?xJ4^eJhMT5Uc5@ZhIrK@w@qezzC=FzcDdd!$4OR) zbV*L@F2nce7!;7`*q8}9A5eh;hPQQmJE*sTU?k}2+l+_nZ(l(3cy+uIrcrLhscANc z?$vR8pOi|uyG&euw?t`LQmoww{Ci~$(K0^uWD<~RH8pZA{#G1!pBHvSD z--GIb$`X=bd#@oQ>lBh8OiWH*4zkuTe7A-(N4p}uM8a~H*d3a zXcwHUfY158`WtZFomVz0WJ;*AW?0ED$lIo4!?Q`aP1VpakqitVWU!uRWcS?q93WEu zS)b30C|+B+c14x!;a*j$?5JmB*lt_<)OdCP@lGV0@yUB3Aqm0()n|AXGX2T7t9*yU ziw(l&Y;VJ4T6o|&^1!1a9_q=LAB&jIL=tFA1oW{njRZ)bDFiV1Kcr`-TzX`GdGz$% z<*Fll$TQBr^@8ip(QqEuYdpj+jA-CH9q4%AzxT@M@goJI19;5%O$Rxid+oo~i*M65 zL=<2MTfb?2jk?a%0g_S2442WzjF3xiJl_nmM7q((&CkOsazO}|`pj~(hkRQK3(V{w z%n-s0vs4;l|5MS8RmNI^S#{f81v&NE^V6QGA|kQ!zx4X^W&p_Ajs^a)3t(4b@9|KEGeECcIW z!42_SGpEayw_h5%-s-C8za&JkTktaU@fsqM@Os{S^G)MvB|MGmBtQZr zu%ie#A_z%*n`fK*_@=bUms9gM!XB>!`_B3Y%A0b$#+J$M5EFJQj~jb)b01nXw!YSu zKP@G_)ih~i&er~F$I1s>t)_7eY)GH5i5DpHi_Rjh%ix8ix`+h%F>5{Cp1AutIrZ4n z>+I*o$HmKQ>b4&fPr_~ClHWp`?K3)r*27miwa*IQl;J~1RN2PH{wf}@3}ZExhY@&N z{q&8mB8o_?{8+*x?n@6%m3_m!fmr)5oP3E1UyPaawHX9DpG^N!z05_`mZd@IlU1-{ z89WF4te!E#A0lHcW!%BXSXp-Ha@;{jS2=z|!x>a56k(&j>#noDr;$V?;Z=bXuE~iL zCWR+Acs)}1ikBaqE(ec3wATA{2>LEN`$`jPB+`Lqy!25-5lMJngn;?ylw0JMEAI$T z-l^A*9k;La>Xs?x#Ral{%?e3smnv~O_Wk?fmFg+Pr$aq<9UF)E!>e90O4XB0zARa` zK^}YNBbhPl`^vHI;Iv8jAHm2FCP~_Lklqe2B@X?}=_F6smck8ESX?R_)LYPooC5iK z<$C#Z=?YoDZoMr0ZK3@1%L4VPStJGdDhzO!OJah0B#Clp8+_u_asTL6GEKXG_CRw! z)}L?c7&Bh7bWxS@LQFJlsx43tQsI`>De^>z@H};`*BL6 zt5OW(Vd3_&j^~FPyn%f;^A}Uc3I8~`O1PQud`(@)wFl4F)(fHu2>2{(r$RG)FU@)9 zJHa_M)^;0Eb&MSoVQaJe!u-&#Z~mW7eGb(e78e^Is%B-F&?l5wxw3TmU!f#? z4_aZ1LW$K@p1k`R0aME!f8k;E!2YSVx!sp{J#w3QUR3=+5WFJ95RC-dI)PU5Q`gop z^ZeQxfsy^Y$)wR;rF%+1qEx0_qM>UF3d_(d)&D9U(N{p#(NJjEoY6X7lrD}K9n5eg zXs0z=+!ZB8Bm#GO<{#YZX@?jZ19zjY=O(u`1BZ1J5W zF1d%;T=7!8;xm&6hqG%2gx2xs=~g9(5{o-@TfPMYF4BQ;>OsU?@yO~hK;JT2*TjBgkb;%F7)a$ zbh4j(`O#XlJf$l3+v>UTh06W0=N~e46zR7Lc2-b3Z6Tiq9?KN~S0+z|hD>Yw!ve>2oo?C|SG_@H#8NkMj8DqlFAjAe9M8Ey^+a~mc zRSq6bjz9i*YcsTjKxF33t+R3wmIB@%+O=zEe$Vib9}l&y_RN|!OU^#~>`?iJu7rD{ z2p5&$cWSrYb_+e^$N508GJgDc88&Q~x-M<_;Hwq31)epUVhAl>ErWOjo;eV@1mR2?V~ssOgbhL)E$iOByR{l| z+1UC~34}mbUwyTy4}9RU!?M#)KRp!M2JdtA_wvIJKQ!Jjto-lB_~5Q?QS2JwgGbp+*52SP<5L=g<(We~;)A`l2e4n6cxlOFyDZ4GBRZrnIQ z2pXId#2okxSpp1P9|)gQJ_Q^}5+H#cO~B^LtkDGDmf8h#H8NLAK!}@wCtvTSQ>*Mj2%SLj$|`9)Vxwzj zbm*|b;elYk8S8DqtdJ+oaxUA*B-|rO_ydq;Xo><%1 zhwvd^efy>K?A}xM9=5Lu&x^L@7Uas;8Y&{(5Dw?O(=H4pVY1R|>K$O-_g_obF5QgK z#(J=b@H1DOe~tY6k=sN08@m$z9xePMD6(0sArQbHp<7@WGlMtS9c^7Zbqh5C*Hd`N z=g^KOtkieiz4q=aGFZok@P7TYV7@H;^EX+uZnb2lXX-5Tf0)op)?u$uZ!uHfddb?< z31=_LfXavTM;tgV#I!;^3(rtb!j@GJZGdaQx{i?t=lkrmr)0^}C7QmwOgjEdfd~XP zX5;}fbnu==1Y{EQ&z|a;C;Xu>-p?=9i_NEBeQdn-?z#J3a_Iht8;>`*#xSPVRxD?8 zp8WRv-?BNkSlXp)m>aKK)Deg-;pH2XBz629ZnZJ4t>4qQm#HW()v(}tPxHU;WL<8V zj6Zmwq^BjD@o%RS;|1_Sf-*X`jnQx$%K23oqGKA$FCnh0Y$+%-f|ZQa&XS*(z+^|u>jcKBn`#*A1q*9(XH$Rc zdUfk9x2yLZcrpMOrDMg<7&x;W~XVrDc>cWbz-~FMk?4f-K<-Vf~p1kn8 zXcLh4jiwl$?SJS(~G6w0osPTC6x#dF|0oE^37M1i$Sl ztF@VS;IHxXXOEWHjQ(Qt6o^ON$)lXzhI0!@VTDcH5-+~!6zy;>)%wta9cze-hz@6c zhR*G4@4Q-HHpSaK=Y;p{{A#A%wbz{+Azt>x|F|*j~t*nj=CmnN2 z9eabjR0`iyDvw0b9LtY9a+u9jM_ z?(Vg=^3CGpET77vEf07PIdVjcMKXgd}=u=KC`s9d|M}(s+Pv2}$ta7@<-k zc_|3@RsvB(Z6PkK3*e}ujxrC%t!+H0Mi`ohAAUF#0tXLvk38~7vBUyaUWDVY3=h%I zKVJt|RrCVG_e{Tj{p7s!&NFo(?ax2|6nHJ@-n~0E8*B*8gNN5J>*2Xo7!T!f&XyZ_a70#_6HYk6 z2zjh+ymt^iKo|lMR&{|7+G>TFLKz4x!b43V|4ApEB<1Dhq0cu2N9Uea8?sD;R>F2i@$S!bOU z`kp}k0}eRAe1`Ge07Lj48VQg93A6?RHfM6pW_W_%vo&`#EG1B}x~7mMDnoDMS2nDI z?U<`Wsygex>O(5Hk*ORHds<(Qm8b-*|t{0gC}_5 zfW>NGzi+Pra^ykdWc2VcRr+q%-E~!iPvNOo9uG|d2`>bJ$CNX#2qobGJB(@9_El}`RQ0qnsPABtbi%lk7bQIT}xuaR^O@nePgL1pjGdfU{A zKMNN9DkCbzG6OUu(T+Ae#1Fs6DJb1@3XUYvP~q$Q{R4B9=iSUkT?lm zWO{Ya4u!f74;eFBz0X+U9E6m(Rl_4kGF)rnp`?pTi_LXZqDvUWM-ZsYp8C0pLV`2+ zZ@cnea@6TtuiZ(J&l?*WhfCb=hyFNu?58l}W`$$&L9^%qa8W@kqxVlF_+N*K{;&Q}E&&*hfPl}gl6~B4h zrIMPSB0il|qkDA%sMB~GHz9JAVbCK+aIC&HAdQWQtI`Zyb9EU!TUtVrhJ+TWt1bv? z?9SjgOkA~g)K$*fhq2x_{`+1H0U*R$5F=LT1QPsCS;8x;T=nJu=_JB`95P-mQST+y z1uYOG?5VS^%AS%JJ!v&S~9XnA)8BMYJ zJTEn+&W4sjxUZ&KVjZE~@jIHoB~L7mbI3d8>?`D*{dDUfW*eD zcqCf4?K(Ik4pHre_&gOV$jBF8S+0n;SnLROqd$U1Gy)k1I=}kB(>(jqbxX%kd7oP4 z6j9FHz-m6@RmALtrx87l{wdcEwMTowt2UNMk4_0H0mWyuZapMDIrt#5HH9N-Na&FI;ub>Sf$Q7q zkVRq@eshDFE8(j5NcpWal$)%xJ@7&d<&VFbEf_3lE>VwloaR~%>@&DQRn-+o7ZtoU z<8`_IqMPbuihO$v8iqyNGJMD3n@zu4(^Knzc;A{%9-@qJL)ei>LXz;XHhb>5XPxi! z@ZlOZON9*84G(wW&EVa4-wo}82xQ2RA)##yFj#^JB;oT9-gJ%b$D*5?vcVOgkxTG(M2+C+B73lvC^@Gmj}Ecs2MeCl<`thn@5UB zZU2Avt^+WNYVCg6WYc>gbV3IO6oIGyHmuki*b%$f6}$4D?Wxc5@L8Yj*?9Ky>>U9c zQWXIK>5z~f(zD5y=6u(p)n-@dk^x#d6$n$2B7(nalXD`-X_2I*GsgH!(3$`0+J^{AFwp zq!PmW!pO_-3Pbn!61R*x{4F{7LZuRev|=WI_{(o>Ywg}Lf5%ydSo^bJ+R9^@NhIca zsD`wqkw`*yA8i@|jetfVBoJtnw>P(?0q^V`u?A;Fv*KYGqzVN~jfX3cedWeUD~eJ= zzW~ixx>McqZ_$pTkZHGhAgjPM030$6Y-|YC5cmmX<&|af;FEus`3t@al*McN&zMYO zD2aOQK!PDw%xWQ2SMWEffdq{yC!8rsjVh~DV@<-$ZiejTU_1v&hqv1Vi^4_hRs_r&sdd2(|}f>K{+b3Oa}qR*QhRPRzFz+B^D2f z#FY8A2X2zjXS>Pz#N+H!&lM7A+Gpj67{w9uJihb6BHiUVBpAx8^$N z1AFn!=i~+qh|&f?m6nQ1W##TL6@7a4F=v;AxOguj33u|G?tXNpSH9gL5owK}BoE2&+eaa;%d0%2By<&Rk)LF)9>YdhT>jwPWFTZ3~fP2h@|yrqrhJ zjBm|WtogmQEM2zWSLucK)uyd(|6pqe-IBd2U>1JEFS&7=eDKnz7<;p*d>5a6nd+1L zzIu7Ua-F?{-=_uW-yAgI5LGop+HhP#n?_(yKtK~o_Jpgf&#_YxAln%|Rk7FBNg1T| z<6?G5cx0@ELlq;Y|3ryM94gM50%@q*Aae_SJsx6i920KU{h{p)_wA1BgN*kRX zc6|AxXb?k45Wps+VXBkRNbW#~m?V-ggwx@6mg3J9UlwDc!ew)Am5S4t1p-O0v>1fC zu}Ur!NfKkNk`x~)PAZ_VVj9Y@Y9`h3)xpTdhAbb>(F!${ni`vw7FD1Vo+?q$5KOnA zV@ZkLI)~IWM7byXyKCE}fBW_6AJp-GTlH&D`8p#LI}$S=x~*MRMMg%+)rbdq5<1Ch z)(mDtc&=N!YV7(##te#nU>R=4u$IEwFb~xP0vX8=W+I89bYSE+27Qe*2eAX$ zph1H?L=tm|k3jj`x;+)nBdVd0F!25N-wVV0n2l;BRC(ZsAybHBXPQ~PgY}ZY6Uazz zAOXl2=nqDHfn=YZNz`E5&B`{sexYQ>cYtjomPVKve{E!lBZEl7{rryjs@nJ~XKZ7* zCbLoLX7c38Dm;sMd!TiL9K!wljs&`nzURP@Il+)K%*Qp8q^NKbjJ0%cu?~g^GK{J~ zf!c56X=%xGG`G>5x2@-DF00oy0vZ90KvyBq;4H%g5pPNOu!sa{us0`z1lxwNh}33T z8yuC*w(W`y3DF!Ha~r)7@Ce|8W#gi8SGQeoFs-!-3OnoM%tR8(;CELmD&czvZ;;^Z zc90|j*=fg3_S*H>3y*rG&4~}8uEBSA8hs*TM((Q=L74t?<60SqP$0AsL%h{ChCoe% z#`j@PA~BRr4mml#pJquA5-&RA*bzH6=ib(_|CW$BUT{hQ#mGl;}VN1yD;#pe-KX#5!m zA`K!5_wO}qlqVeby3K#$zGx!)Kl9)VGVS_vn~_QU)!W^-r6tEoI!GivGE*coBOSi( zNLgH0CB^wg5>bWkHi#WmeNnz`5Is1NGbJushW5{ZuihztZp&80k35${UjMpUM)XgI zPox0&_7*F?(?wgh$(#)i=`;TSq$`T3iVg@vgG98@zEC*uQPQ z7LsTf-rcZ&ApF_NT}To!+R@UI3NrlNHHby*kDYt<87&nFdf!G6QvUV)qbd{}3-KC0 z_wdUyaq@vstf>pSo{nau3e-1m%?G*7Ay2>ZL`SRB2H#Afb;Our4 zqQ>4Jg=Kc>k2r}=TcucRWfGb2r!>@JfIB8rD$7eG+?Fj72rCm|<%p(L4Qjg2gCq`g zP{CT}l6_v~zCnjH9ARXbs>eEKG^_o1U*~?V^Fsm(e=yaD6=FS!q>3FjJ$>DPsnwpq$ExtXM&Q_2H&Q3umkw&{FJ<2B~sHNJ(y?Sn7%-QYw@JNtm-1 zodJZmLA_Rl?y-b5IiHL=cGc1xGqj~PY|qPSX?LgY+qh+enkmzkN+~6K`_*^Kq5Dtl z&}{U!9J90X2AZW~uAeiBMvq7~Z)(?iW=5umKymHN=`#1dpW2NVUncHH3{FacQWB3U zC81zxDc&z){@N65N0|eJtr1ClB{2ORuUl>7<4iqNxoGgnb#|w7VE71Q5PjRWZ3xL! z=@m-j&p-e4oK7%dZ9JL%toW)cR8)8mn)nhz_}j$6Z+~W%DmD{c{N-)$HXeV>m@(=@ z)d-RYsLtR^fO+k;*Hnm@2@@u?_fXBsm6erwZEG!5Om zE;ww^RTdXFIhXyZ@|Y{~y%xN0`}YryXv%s>#xh?ohKzao>8FLEiuirxwIM$2d-*ei zFvNXSTHHMGjz0Gzo59^~M4$b#o_bux$-O|0~TVKzfJ^fXo zw`l}40vdtc7J&wPNi!meB{oZ3HEo|&Yk*{l8EC9}mJJT?*`=NxJ9#BCqUpB`UIlgZ z2L8Ueod!F(HC=N!4qo)^;U)rf=m^S>(*7Do4R4zCKxNEOwQ7U|Dk#oZ&10yC1dtn& z;*&gsK_q58JoBG&!5J5+FfB%y7k}rIhfuy$4GCnN*kKq4oVMp>8_8zNCBH555J|Xm zuVH(8h$KHR`N2aZ$w)8YSKetP<>*5vDLMO9>sDf>`$zK8mmhc$Har=zvJc2EW?Q;qi8<-DURF`+A(9M$ zZ=$Wn2@_^Kzy0BBuPPXVgM+CYP^OI?wV&7iot^LvJJnj4ing?`wfoMfi}%M_r=ElG z*h3X|R4)z3`(-oh;Pa4b2!^$!_CQ4uv(hdVB^E6CQ5Ajh^=IYy!%y_QfACt*dHZ{z z%Fb8wzL2*+ep8X2jN|N1%Zlnc>5-8F6{2|MC$~XSB&m10L}G$wMnbF<*3?4%+W}HY zB>dB1GIl_^>@%ph#3J-*RVCh;>Yb8ZTq3=bVq|FVG#NUehxAB}L7aE1tX`iZ&e%+e z*?V6p#YE3RnaPrius4Yyom5s^MJjV-&KIA{!G})3v8{LqgFhTTaEHSwkx|$Wzj{4= z^LSr_dpu<9Pak!SyxXtmX(1OND1QREXiiCC2HNSvu}L4_oc zxDdLg#%YmiS1dyE#3HOfgT&d_Kt%=TgEo+H4b47v9t4tg@DI-;6s%W}4x;SbZ9A>G zU(f%dO~<{i4|_RzjD2lcl4x=J)qj=a zk2qPT-+ECq$wK8v0Y%j&K0CXk`40M$ zIAT`6Fi0jmH!3j%8r%-%+)2#fz_&55?Moyv6Af73Q%^k=Otot8JE)8u$ixA7evUcj z7@=ASl}OAAD(}7bo>H;!RhwwL^r<0}IAI$u=bThOJG?Y|QXF)FTcY zcd#6SP&kH>Fi(;QKQphpOO~x%rZDp*!kEM5uTG|5bfl@t&~ViMvcGA2?!`*EerTed|aqZ8!1zfF)FTZ6<} z!=*o7(O2bG%ka7cDa*|hy9!ssdjN{vnD80K4^&U+_oos;n3`N^!4`zXX(apaY7iGJ z`^k%xbmGyc$o)^;%&cefsfddR719!uek5))MT;s6JZbvuNt% z3*?zspHPY)t(D!C`>7UoAVSg6h{JW4+$c}J^jN1g>2mn&=e@tc(=Q=G@&YKAkz}&7 z?6&)Fl*+1#opm^U9F0IoAQ0G-9TLscjnD{$76Qh51X;&)1fajF;xuvqfdd{55+M<> zJtfSVD0Z-=Yszw^rg)<`Dsr(O-C1l8i%tQP*$VOoNG9kkDOo%$$zlu#c_d}feqxD= zN9WX`_A?LrR8&Dx`5~c4;s`gYe`=@O`7^jrg7nXfm!1e~GrV7-jDiwLG&QZkk1)kUhk`MN zXfU=jVe8?|5y|m`P&}S7RoQ z*laehFchOlkM8gR%>)7met*nn9w0Yw52bZF)CLb8ESFz?x$L{I_bk9AO9IaVZ0kAr zVq?b5UtNZzr?JmalrYl1OEWpacVAbeH*DD8skWt%MV?GMamDu;*Bar?7i)e`+G-?< zTzB1da^{(5ia+uZNhR;U|GvEV;)|G(*7QAT?Yg$q4)!6<_SIKksZdj95($-1NF+P_ z@WbWkqmP!XtSobppw?Tuw|u|jtzjM10d*#gfJQ(g(2WqNFK^yguq5mwmZZJgeioSR zZ0&bxvvRJg70tHosttDd0o3a~7E~lr-UPnfqu(4d@oPH>&JQ6lsLIeNM#vSaQurHy z>)>g2dGU|Fd>;xVlhxp)aj;V+oo1~1UD{23B!3yqeYV=VmWd=KKA}&{Arx|<@M3&Q<#B;OPiC%uD;_knfdVTP--b?b{c$t zo-k&DeE#2WD61CYx8D6OTH@lcvA$!ZRCNwjyAt?{$_n}7yU#pLh{e71pINh;P5is73Oi#sm9;8^G=^8U%oLHp_$S>b=zuf!q6;j zF+y_;XeW*wImav;jCKeD(l%vUL*e+aFRaXUdbavv3{5S!ED%^%l z>@ZO&BN!VxXn2R!G=e!!SLP`z_aEY-tB&bUCilCazL8_jo(M_1SG-<`+S7)N)E>(5 z^2jp}wx@Wfl(A!$gE8wXP=zr;I+}c6GW^xIJ9dE8GqUjyUu4ZMjQ%hP#cd3yVW=9A zNW#HtI;1vk+~{d;N5k5%B0jUsgVxE(-VQzA^s&btD={%Xvur&rYFcTHWYLtf^Vay{ zK4r=jS-yO^r_%g;-RpZt0?wCTekmuPe6lL) z`+XoG<=}%4Hdh;P-HbcK|QFL!mesi7aaGeML(#)!UeSKu{eSHrM+hVAcOxX7T`Oh2A%NSFb z1S3SkhRy3GZLIs4M?fX!!!ONugEsc(Ng zWAGktt8wC;FjCS%42h13lR;xg%ko8kNL5*l?3Lej7Nm4UG#^V^U~TiqvjgBvxpcSl}#=uSQ6m-dXZ1 z2rE6DcInZpx0K*rZ~)4OTO#n2iOHQVD2>y}-rz(!QsUy{@LL*=`ae_rkd^{OmVXjy?pE)cj4- zhCpeiqC`oo8dWG${|F~|)4diRGyQI;p1_j6=@Wl&sQwsw%< z!AWrI#@*cs&=B0+-66OW+-cn1U4y$rfCLHduE8C?&O3AG&aLk!RZv}LvwH1y9$RSL z^r2b4J&Y7Qaqq+^DnVGW%KKlw5NGosj{(_&x(8K4$3!!{a!CvqO!xK3n7SS^<853( zmp`>hIvG3W*@?Gz{W=*#<$0u{y_&QFCjWjv8u1|LnI)S^TMu!x{{?ZtCnTyw5$;Ir zM5JefJQ)x)+>TX6WJ6IiJ(>yfSN6KmKvbAla*0eVrcr8TaO9a;<@J#eE(|t~l5(q9 zpA}s^%m6kzzYRk8c4b9;X$x^giy^w`$opQhpN2)Oh<)3+PQ>azi1WW7+|FQ#gOSsI zqU;MpBM!}~;FZU!@X;%2lf<@R0U3YM{+u+Tj#Vj3(GqtRA97F)$H}swGI>UlIWC;s z1P5tU0JjQIV+r}0h^L-^1v0cxaC?#B9 zj$}qV>|m2qlE8oQd-438gJ#_3MCxh2ipJ+n$Ob280t=aYfgJ|d$;V7tPYH9!Mf>E-x9_{9TvXkXCi)lHt4{*`Ap}^g7V^Bs3n6KtaOhRGzs3Ts5JAu zMY*>sd_nJ)->8^U5;24{73wv&HtY7?FTBsI6;)L?v%@(0^+EQY5c>63x1V1PYhEJh zA|)H!3|4kw2mgI<&iv#zm?txUB9P(7X(FdR*ZdE|Krk50>s=M)$!84u6{s1WUo=gX z<=AmM+k4z%yUeLN8&%ZZ<_+RIr2wZM@7)M)_`}RX;>EsC36>vY?7RRY%@u1%J% z-&~XjYRo#s*)OYKi#~pfSbw>$QX)N=rfI}N4=LF=G4JonylbsnVn|uUjbjS~@&{mi zlWfkAQc_XcAp4e0%%y3EK;6;1h%X0R+tYY(apZWMJW4!f7_dB+~UlfQSt* z&kadP&*=N2_&%1*QLEmTw37dM_T^}%X6jwq%Z_%ob1un_CyJ3CB$lT<;>R-Qh{!hD zrOI7w$yq{@HLrfW#aOs`^YLmRmaGK1_|NLgXa@b448pKKyzGySlUe+-YtIJF@HN#M zJSK1b{5c^uqyLiyF!w9gYl(u&rM0F6*NQhpJ~RP+s{Ii~o?xk6^m9tex~GUwK1TLK ztE3+IMI!o2#qDA-<(yL-GsFNb79k~S0!YJDlSG>#cIkwS-pqq%xRXbzXqj*ygJBLi6x=O8jeoJY*&>4E)=PYXK{O(j@ToA8qq7D8-V7yd`#Ek80|fDk_I9mTJe*j z(5_YU5~jRfPcy&X>N+kDUb3rLp=`mbf}b%)4u(6=_1)focG}uu3!&L`OD3DVzi4t3 z@{oZ5l-1{Zxxd)Xx+L^`Pr9=^P~crA42L~`>5y&ia0Owr^`%e*x;sIsq@IbEHhswW zjfhhn<-8}(3P$;mpQrv=%A0dP!S(xGY2?)FJmpzD0v7#{MCTsGXu{v*HgY2kK&92E zn*P+zTMqN9N@wq&C$}4u-fltf4Dtx(lPE(7EsW#q9X+N1Ol_Wfy_j9!C4J7m8@6YS z-rUT-e`0ewouFINN}8;Jv^UrQe@ZYc6nHWpf2fw%u#Guq9 zFq@O@y!K><96=o;8v|5{5GG;p!1c84Hj}|YB)6N)^%ON)^`1kZ9AZaqE=)~fgI?GE z%^I7`Q84+w}S(h zS=Yp-%3H90DxDj@d*lk)_mOyb5#sz5C&Rw$LPa|;bydK# z#r$hs6}lyaE|b04#&5iB5(e>)#^ zbzduHyhnP_=bLNZx!Te%;Y&|=j(gp7lhCCfxzj5QwUnsBnx<3|Pfu0nrMR2ea0Wa7n~GUzvEWd%~@<`~tI5O|T7~sIr_}=pVM+V$tmW_!s-Wrr)d;)&Wp?%VolV zCB%G#7MRap8PlGw2<4aDC_a9xhmRIoXz*A{L{6F-XfULz?s!||BPK^g8&5mXl?Aed zrjCp*&+h^;v(-6Aq$Nt?Ti{tJrKguS z%gsswhh(aVh^M5eMhjA4h=D>Jgv$@CnkU1UXRcdZfd!XRSM2lD(p|8UcwJn6b{fEg zAD3y+Q{J45s)KeWF6UW&T38?8s*K`^^>`_$5sWjXOCEdqE&znf>s^=%kDcneP3(BS zjT|cenDW}!S5JhZemSB~g7rA|L!xhdh=IW5sL7nxuSc@R8w$KBoV5D`?X4mi7~&lq zp5oWODadnikdV>zvoyA=cUa$DWtXG5$@GxG_qR^+7=Zu#Sh+L}^_Vge!IkgpWG2N1 z@30y4VkSvfvaxWk$6?(fEBcu9Yc*B4_1#1|jSzh%Nh$u6E0~^d9C~ihYb)@0Djs>V zMWZ?x6LFNGYiPZSN5~g|65PM9Df1B_C(@2vzRTCT%bY*3oPGQ5L1y|6qGp?Yf^b<- z_OM#SH&>Gt%J=~S#88;*Qn|T=-U6va5eHC82uULMVrM}|@N>c{2cJp<97g#+kfsiN zEWAIhzL456-;V zo3n0$x4CgRP&IRuX%0bQTxr-Jwq#ncPijY-1Fb+Haf|E`2N!yyUe};N+wnDg6}G=H zF_`xQ?UmdJyKfGnFQ0!`sNgZu01(v>6LDEvPxUMd>VX%| zSs|=nf#Bl-z-6K!h8L;6@@x_JwVY~ms3+{H%<8A61ie(H;Rx0egfpf8E0*>x&X^K4 z;>K=>uf&ixqtrtoI?C>CWm_`mzKb?iWT8YiG#UuQxIC`u#@ECtJ7V&Ch@`TuoJOoO z5J^B`7aRXGqh=jm+6S5B)K1XwCGz7Oe|WrIKqN|q4119u`XBBw^EAF=Tt>KLoZmDP zj&m{9aW2V|qkvcfsw3?+v*!QR{E(q9ZH+*4Y}kPOHE1a z;KCBOYdN9hAhnz9zhUk;$7h>L+pFAtFXOvYKJ5Fpt$ts0kkCNAK6YKE?s3bY-8#@P z>1GBX*}WbjS!`IrXD-K)&yl&Wgw-U-5ZO<6{K1VQHV1uXQFvUhssz!%08-=<&N1RI5Ex~9&)_iz!Vs+jBC8WYTt-}QV- z8nLzREvT`ug_GO{k9JS3IQg5ioj~EK9s9$R0+7AtRTqdq{NPi2PcmdecqK@m953!z zFM9d~+TR@a>3OUl%d)@L(lM-tRu6w2QVSEfuxdh(puv2za#G!d0HnGl$aU-j-Q7W8$y9(;AKI|;vD!lFap zf$K1q{BU%1JNRwYPhLK6z$|_h-sXym~M5(L+3^XsT3?sL53t(BykH zRkU$Y0>v)+*nWUv!o_QCl2YB?S<^&{_~e|#9hJ{!gfZwI86u_H_sdLGYu|b|lp71A zZZl?eh=#el^sFEQKvt-*bB){nT$S}NgcDZ;Tpuy8*op}zx^$^@Ali(HloRte5-J41 z%A`wsR)De8t3wHhTG3^55KQJsh#J}g5sYlpf?JkcwwCHd%iT<5d~DF-WcpNfRcP|m zC6kmViOK{08v}WBZ{aPw;Ywpk31y2uBbk;4-Em8KlIvM%RmzedAq@oo;o)poZvHsC zffMnzLQD>^2&>Nb-`b5iNM^6oKOK)b*m}PT70FCmo=rJ_v&`4=JiGpQrR#LI%W%f! z`r5GrZ|w42^AZ$1obE(@Syb1a&eQP$K1%5A*?Fq0k)ra)uOb;$%~!ir+q0F{dRJR4 zLBhg2qL$+FKF8tK?TmW*akK2yP#sI}dXM-_UKWQRqNVFV+DjU{Ra-)NJM&2*+%_HxlY2X8UR(6-b9 zgLbG3QI!gXfZZalZfRF${V7rdPlE7=p{i6ND^`Hu%e6AgzBx~_2P6^%k}7P+cRk(A z=UzJP^jp_$6w;BY=jP@rhsNEz-|h?UHi9+t%%1Nrj(7=z?{#0cV}+s$%}3k1@3)XW zZWqlnR=EVcZm)N?BOdTsesodxAMfn$vXn&?Qr-gitRzW%8r5;0iFW~vt&37N9(Sv5 zy9x4wEcWxq|LA-TzKi7MHEWz4pAS{W?)eaI0~s9q2Qh_)t}MgF`&dz8`=95#KFPS( zY)4zU9y*CZ!43b=6}?XLX$xy_^vUx0<7fP?yS_aCMK#?KDgWcxk9Cf1LHS9l*Q-?6 z0?tDkbWu7QP#LT7W7XxPGl{2);6lgTamJnf(l48kV-B=E7WU!mtD4*Lz;hCNp*x`( z&0Q4LovBOYjK|MdZxCB^^7*F;$g5N^nTrK5D++f@P26y4J?i2g0N<}p$FBR<-aV(0 zIU^;DYZn?VJcw_?mYS9^F6T?oC$Q|A``(M0FAP{D>^x9DhKqu7pf5sps3D2p zOL%Kb5liVNBn|>qYF>IN%WY+So^}RIAX{N`)PH`%c-(8QF!Qt} zU^OUJUy{Q9*nSQuo>6AyXWLApJRGaNL*FaF9-9eaVaGnF(%(3(Toy$#JRr7bKd{{7YNvw7sY$~r7S`| zxZb2K(Xigs>P!nS9`oBeQs}dyUCN6DTKr`g?&13P8f>a4@YtAE%g!;7725DD3jqqv zPYSzlu-(C1&LKQH`h(@dZ##|X=~bo?thclx(Kc8ya?8UYP8&U@sX)>PNa|dC&PC;w zk8h(&bCVB{4T8_odc1u5y~9EsO0V&lu>SZ!@Cytr{n<1aN%v}YJoekjU68_D|8x6{ z7N4k#(8U8$P}?WHx9>^;n$OF9Y9L^q17nfG#}ccF%6;PGH=hUJ3Lsd)qQUMPM2WBw z?XL#B7!oUChZZ5*pp0jy1^-$70E_AB^x^jVFC?hCZ!AQkU(CLyGnXegM4)xMESU9% z-ZzC1)srO3SNYYqOdZb|_L|cGOciu8>(}s4=I_Vyn`i2-o(q^NVh&zn*H>)} zCciW5bE0T!ulwvZVrb7SNI;K5KJ>!L%#lQY-rjG+EcP-yz8f(9SCsndI}TH&_7i_E z0o5A+8BGPRd&=JL+AMc<^($YtviqM)jNqC6NQ-0f5(NRpkPPMuu+4JwkD1x#kfsMn z?zpN(reS{wO{k=+YcpiS*Pt?qIx5c&dQD?IE|*;fH3}N48*-hHxYeZtykX}azT7W!HoOVW(11z zygAw>6N3=TXjWNlR#NCj2kF}OovNFI9gtk6j*iPQx^kM1PuX5)JU3YzorAvE;R<`l zkR9yJ;80wpAyU%#T5+62GO>_S*ZL2@v{W&uI+l*_VOfTRe@I8e#L@coyiPgtmLf4; zOLKF3=-45AwhskWwtIfO?(Pk+_OchA1ficQK4^fGwG!v}4+o}=9PeQv>Z&oyPv;&e z_>sO~WYrs$2#=GxVQkcu;isi9Hk%&7m^@>ju>L(kpMK8G zZrpAYhjK%V-FVxIz_gJnuC(DN+|g-kXWcrtESzZRouYnzTbdidbbrD<;}P)I9_iS8 z1X=de_HCsiy~Rkkpn;>k3`Z+zt} zV$3Pc_jqtm_Ef9;_-ESXR>9dT5nan;-|JjDKCa*5PS=qhjd znfREi6bzxV3vTgtkk)<^8n6+-E3<8$=ixoHyl&?|=(wMFQWq)^=eVAgDVttim{a@B zB%k~Mr~O1O&lRH>GVgiwKq*bP-4pvh_Kfz?Jw^<(H}|AL3lM$AwNn^U5Tp(MWMCbhB7ozn)0WUw*Q@>wH395hw;M;)76I1!^ga^SWeEe z+9{cC9jG^|L=u0Pe(eEqE&(ynh{suc%5u?BZ-Bb9MUK4wi*&MR9VGV|y)ZwX6=-eI z@RWu1Glp*qNX_hhWC>88x49Q9BXr1Gj}Ojyp(NBG;WmhCV>%mXdOKN;ZPh;W+amrP zsEGKy`SP_do+>|vBLYD%SKiNXfqL85do!nIq|tgxZILQUK={>jb@d1rCH%(|4g97P zr@6goj*!yr&{aqfX@gH>@8#-X{vWw8b%E4n`0P#&^*!G^WYP4((J_~0$8`}$f`Pb+ z>`n@60}>q1V*NKkBl(Dgi%zeesXC%_#$zDdR6>LUmBRqam;0TkXhJ4amrW(zTCrQ= z^Z-ywlTzcEeE1k0*bs(0ZH5B*`<_hK4+^n-fT_i~JE+=O+SV?5A=e)h2PYhngLBuo zs=8WrYK%Il_IEJ^_xy{4L8PyEP^bacGmxK_BHroEa=UM;5$3fa%!EjXYbOOsQ^<`R z(hOqmxR6(k`RnvOpP~7140+CAYQ~d1oy6@WC>^G3^%+Q@g?~9_YMM8xBP%ZW01JMO za2Txs#qrAI1BZe@R}m_`R*x4IOZn0@~2dWq-`V#V-lW)I5n zj^cE=ZsU9({cb;{F8A%zpTIGZyz0i4=S;PV{c%=AoGwm6mSBDFYt{81zBB!@4Ym__ z)Wb)7k!v068r^&O$I+@yCfqoanJffEpE5Vs(l6fMuZ%Kaf$Gt(F0%H8z$q-pTi^z! zlnS4ibFZkBw;O#PgOdQKM@QwI{n(T-&~WBn#vol5lxd;?Jr&b(!fD(K6|GUIJ-ve2 z28ZWKHdXLtV3uiO9tx$JGocZYvulKq*X?Esy3G7?-3HS-@5nP8_~a&~TieF^t3Mqr z;yjn_a%rJM`{(5scBdSlTg&F8JTs|Tiwea~f0#iPwS_G)@-$A{^pwYMt#-U$nY!+c zYK)bljeq8U7HvYGw~Uk0h=D~*K1A6zc!31k4XCpOxHvoHkjZlYv8TjxAi>d=6Sz^S zb}hfSJI{|~RDwB?806<`u$-@4_T2)17gycsefbiV8mah4$k;0U%IMR8}%f1oSv~~8+p)F&6x7zbd=T4=eo2p5~{|>|<`()8w z^D2Ahb7C)&h!RZ?jEN)dL3<&6eGJL$aGp;}7&NOmbSMDH-T(G`EqgYUFa>`5vart- zabggM(-MotRjlW%CJY{2$=SnIbx-CSbIY~kKssHNpz+Z!Fbb-X4=Q|zsgAP!BseFH z7ZYlT=?wyAn#vjlEpjg&?s?fOY`RCC0uN5uob-9Natl;^_Rt%>@3=~$Sp$*_LZWX^ z#wJ(s(Fx=!E4>Bx0ZbjS;(RFDk55Klysi5xs1Vqm&N_2+ye?1xky@`I=tv>)&&*IJ z$XiBgTr9WWn=>8nAPFiZvamJ)KXPoqFJ-n4Dd38_k{Y?2kY{LomF#%NdFPt-yx_Ux zW1L)IJ#r1hx!Yrdp2r=9eCM;Aj@#&m?8dswg{xTh_G(}}-reBo@8`J@+I8}%nF@qs z;qDqkpx>W`P|^;CH$hEeOvI}=Y9rk9yudAQK-s0^B_T-ejq5De42bzybCx#u)keP8 zt_}J(&$Eha2g#D-DIqI!MQoDSdZaP`=mf#?nw4=IgA{7f8 z)ZfcQ{(R?EG&D9K2m&X;-e6f*iIefm)pWg30C+SjtC_<^Qi)P#s(l3jm77KtWoO0I z$7a@l+u=WkOm0}-;eL{py047UJ$B#TsY>WnOI%8AgTby=1a|?6n}zs@&G80(jTq3O zOjK|lLCY=cQZtew*>HIHc1B3pk_xf?b_r7IW!F(v$**Y!V&>P0S|IR9sm5qjO+w-y zBBQ#Ld_d%)?17CoIhF`H2uE9!Q*;kIoC2B_h~z^ZnVTTvTv8Vp(Og&$=`z^Sdnb|fR}`@?xwZ>I__mY&_yecX>mGxO@aZ=Oy4Hber$?_iKhda#tlzR?zd1O@5W3s#5PR)cg+M=QGi8W*@ws zMRoS{y<7Km?e>~Z9#%DZCll@Usw~sxsC5jo$StS=8)KM%ySOMq?`_>rdudhR4$l{# z{*Z9L`~CPc-<8`fqSE6m^Hp2jkM&=KYeNe{t|tqeACgI&Cs?3BI4ajId+F9e(gX~e zT3YEkE_14^j$7hP6mZUXgd88D2%Qi!jH&dj6mLB+ELdKy@LZ5n}{Hm zAgHge=SLzQ;xuxfk>wig34n=~)sxYK0V@~F=P)`tI_f zQtysokl+Q!>qmvT{kG%kD{|emtBcGBqPD9^zLzzEj*?P?Z8UWn!Nc?{aKfsmDzn5aT*j$7<4N4Rdu3VP^ zE&I2675Z>8RiW$P*D|ITRh=Rk7~=V*H(JCgZs5ji^-7(EPw)`|!LUD9A0&DSCX1LV zpw8`1)Ax0?^t?MVxleHy?b2;FwTGmZtumx=hdBMl)z>@~C)>8zX&4!9 zziU5?egyEJ*6kBf9J4%-#r@D{{=Qg!lacY*HZKe?QAG9DE|j zj`R4XTuX}$oUmE$`rH)lCpFJ}v?=~E#P5&o{&awtz(cFky0P0srydpIp={wT?X2il z!0>s}xLvChcPmBQg`f#_5TKZl-a2mwV??X%JnWR_6H!fdaQCGtj;YgaQptF?FeVwx zNY5sL5E2Pc>Eh{>$pmMVTZr*>?HE0lEU`bBtytQ_H0`%5px0P2Z)X6R(qmPoW8dSA z|Nh#?H`X-KoUb&@d8-lBJ_k!SVHu=kT8N~GWf&cox?lm4j!H2UgCA{y8KS+hf84v0 zq0JS}0CdyqG8}X6jojut)rA-v6%CRXNSKI_ae#(m2QS;vfOViHw&GXg8nu7n|r%Q}pYapns36Uro7@>zn#)|gk?gS{hEqP_3N3R|k{G+LQ6q7rBDwtP(x}86xQ)m3XeW5%(hMTVeB)@QQ#a4G3I6M;VnjC@|!=wP}6mVLL$@rOdNHoj6G6 zX`q3-XZXI7U%g&!L6;X0tSSm6=$0qLSrM|6P4Ano&07OPok#YW_|4r!_!)Xg@)OudfL4nKsyUd6$5LG zocs(_U-1PsR34TcI=${h?ySsA-JwgR9^RnoB}l%$7&JV4ij5=GG6~sD=qHkg&+H}& zaaAW#kjBSt)K)M+-HrJc+$KQs^Ly_KiEW>h)yTeD`5M|y%NC%;AQi)JydsD4p8ZOa zG3A*R2>f7*bsfN)S|?xQ>ol7u3CSv~pU{5C(aAxVJ~!gbb2M#iGW+LeJ%@RPH*((> zioTy;XTiC}yq-IPtWF0~;lWD-;PsSJuiOTfEuNTlb3eRH4vl$(%jswRJx=At@Br2+ zO{yFK34l<6X4du@Pc??hKxrzqb4cogcYCYHvMP5`GJ;6F!uJPc(Rs*PC^>05Y14}u zc#Ev-2Zpk$&H#!*K*9Dl{;TieU|%%$PK07ts$M z|2_OcOjfK24ndk35Rh|P0(QlU>}zvNk{EM&uGvMLuxKaR%;NH06v0 z(TdEno)R4&?FlUo+HP#u;Yp#Es^A$F#Aug)KnXaJh2fo%tJ`{CUD)xF)sJ!XD65or z&L)x+7?a-+)SmU?O_OIF_KoDMV3UcHxk_;4hZ9P7LU+N(i8JQf7F%#SHiH-1m*kT` ztIwR_BJHJZfmq59tNVlV!67fl!IG*`s$&AK$*X?LLMCL1DA1k!uGid&`(K9Xi>o=; z7s`e%1V5k56EJp;N;O-Kri_f2=+Quy*H_Z2*B2-d`&lMWv|R6T&S8BqBR(GV>!SUn z;}$dK3#WJVjUv9*pJj$J)tF^!O2$tKh*?cF5Rf`|?_=0Tv249Str>9No@M%bqC-^A z>-octz-c9Kv?sUr-meTMR&e_|IF?6nd3K#S?e5C$o;XEX8k6vCb$V~oHr-P4Jt8XY z_hBi$9Rp4wA`a9rcs}a2pT-Y#Q&6^B(|YvJbBk-Xz&cnZN=y4JT~#}X)H}O;ac{Ea z6F*L~V{kbEisVc(vn=ra?a89D&yssfZo`$AC@Z=U5zFiC_0gP+&yp6}D4;i!Dx9k- z-hRo`1|T#l00WQ84)!ej2lu#jhs7`FEHH27u^`lWuOKX(lYs<$ok({Pp!A;=?k&7p zBY7qoUQkoph7K-)vCmE_RgtzM#W$7f`gAIK*`W?lsU%nI%go&cNP0&@$ za9SuI;~O}6jnlY$-@8||H33P1TQPFYMiy)SGn1xR&6yX*-r& zHJ%*#LD2EbxXMm^+b`B#zY-xqvL#v;(oE8|c3@sisY8%sjdS=1q%{}D(AmE4>d2Q; zRh`oK%w<&TuXkl#(<}g6@ zP#pVNEqf}FHIjV43zz}FWgyfe%J%GeAvC5ULkjvc7Ppl&hJ*wL7iMMsoj+_GXW!1$ zX%cDpY}t!M7$Is{y&ea%v=YKmc!;Q!kq&T#grDFuNj&q&eQ*HL)Qc6}C74>YByQ}d zMzU8O2m~!5sZ|KQX?-bUl`DZshb2)Acs0g0>TfGVCHm8~P<&(z<e#EzcP=9s!xUaFb$H7Vheba1I$sE zjpG<-ZFDyDed|#cC?0IKm+y5Q5mc$NG~CjwWxRDnr^RDB`a0xne_yJO@9etioy_t^ zj}d!q#&iD2XB~5?pwPQ~NbFBg=6Gu0A#tnNYpC;n^@GrlMyQ`5?<50uZp3Z9dEbOJ zH4`dX#U?ENLU;deUb)BU4mguo!_9v1-2R`*;inR7g94y#-Ol!ye0L{2uOrJAN?y0o z<`=d1Z0t;M=T491Lbj?=rAE+GJAnQ}rlve}p~VwqD`S0~f{M%J<-i<8 ze_F+Q1_GQ|E>cI*Qb|d=ZX)O(x4Mn!mKXu>H{hK_+%)$Q_wb>C=Drp3`$e88vjARc z?B@eDM?+dm9~eZYGf-wZ&toj4d;e9gTfn-C!LrAjaCMYECi0R%J*r3%TfWQ7&m*?` zc&+vU9G0=OsrFndS<;mKpdjosO}6VRkH4%dMeqg1t^`TybCd2?KD~6jiM1eb))-*o zzV1HCSQ%fAUt4)0TSdk5{s9jL48(5nj{6u69}eV%t8bHHoB^lh!iEd&^0J znwB}b<@dj{=w#IBFP7$i!k(Y2uX`l&Fr+8Ws$GBe{l_5qkB5K= z>NDlyqe@R;a!Z!j$+HQ_vVpTj{}eLNo4cc-0j zy|Ya2f*D&XCc_gOoA-^u#igm8O6sxlpL!PtKywB)z8L=WzA=<4sAdmgiw=Rdbn-4t zOi~}&V^}s>-m^KJ^G8e}4dUMTVEF2U5;-gXY1OVk=61$8y&|)J?Q+yBO!RV0=X9z?&VGf+;Sx#Yu zUOVnVHB};|ibpxZ!Gu^`1qF&EF*#sdrdHDOfq`H%spaYp!8W^pAHqTd`gES{ZRK&* zR5K9*H4cWW!bPkvP7IZp1{z5uxm%n@@1!-1$p>Sw@?ZcSjU0+ZsMzGng5>@e0kfeB z_GN!wYWOk)vIV)hSnSgH+1a+j#xX`!&ab{0_ACGzB`0(vGm9MV9o0b<7<_V#l=ggw z+Ap}Gl5?Luu;!GKs(zx0m&E;a-6giN32hg!!IDFBBw=8!RqwEwtVxb;O;WhAh@<|R zcsC}U%ub!aoEgIle3cN!M}PV1mP$YvpJho5P_cm+r=4cgLdUG-yC?tzIP^=)%^t{I z2^nXd)t!UiXx*-SevgMT`B1_!U1~60O8YcA_eqb5MUf@j=TvtwI|ndREu3c0NqxXvBBC!ZXNywHHp6ZQ)uAL9}@e3lq|9e-r$zcYiWnSV$k(?kF)Hq=}n&Z&Ev-zp+yFSafRokwarH;>hLNm+yoY#$vr%tHEF z;Aj6$@7H^0)!IeA#G1Udm}!>H`jfjkaE^MIxnsFFcR}GVH3p7oL6#6})Nf+#9rc*6 z9`RDt()K?_Q-0MuHOY0mOto-_2YG^QfKsG?{QBn@t_#r4Q{dKJgRqyfz?e`uoTBiy zi!syoe}3jToxmP``*R`mTCb<)aYZmHQ-Ac_3?w5F^ES*)TiSA>gRj~^9x_Zr*Pb&oc>=S+ z){t-FN-%FT=^YMfH#d|tW#v}Drc!#cyHJ>+6!}giI5b?$ugg*>k3^fA#6e2KOCPK| z##kE1+Nb<>ntpJJYz?)53cR_#rwiJTy?2^1{l1lL@j?+a?EYu8dmKKed%Mi-Ab0cf zMC>h|xTSkSqJFf96s^$=K1N96)n!Uqp~cX9YTj1nmeONqF;pwca2Zfg!teeBU^UF? zZcJ0ChZ=|v&GBF^Nwqg#c6N5N%q>Oe&@K8S8|qeF8mSEq=Pc2>$b^>`f*$g zWHM<6*`ScJPW~y&rR?0S<~j$m?*=a=XRC=pft-<3@0E9(nCI*d)-yN+I;lW(>MeKZ z;`zip=yKdExh#}PZt;b1+4_Lm<7p916d&R|!t}V`4DDQUKgbImD+DDlV+~c|?l!Rr z8_id0Dk*HJjT$ZjV)1u~=tiK2libiu#pD;a@y5K2r016XSS)}o+fDVXfgs_ss=@6u0j0vP=6uac2Pj0I> zVoqE&G?zMZnBhQ=k-z}iC~50Pi}X4K)%La#AyJeTpelL&jNg2kbZFbc6U#$V5(*uF?ffg`87RBnj{wI1)zm<}!I zKqxBU((1Ah8>8xumy6@ehfI0L)#q(Nr-e1ATbli`FfuQh*lS{^DIs&(!&QSN`@v3^ zwZr}KgZL-vOIb5d`4Rphe~aJ@dVim7P)GdG7E7RLPRl9xOL7ZGs`Oq zy8kmj{%g|ULqCWS2fJpPg+_YUmWmTUa8Jp8WJx8z#)^~5_lDERk6lU4>mQ!M`Ohf+ zfBwGb?61Y>g!s2&&gW0$2IwI7Fy^3`!(eoL<6p{!ZPj{4M%zF}TEaT)aSECa1&L^q z3bRN)T|=eBPCXq}Q&OKGx_mf9{I9cdx$*wJFK}L1@rC(IGz3>xiD;qaBrhWPi%JFw zzIZGMJXn()1o&=w`tDF7^cgk6Zja2<{M1G3ZFdvq1v z=Kgu%APe{3#D)(pybwtRgK0^+uY-XiF)DvylmGfg3g3xC!XmZ0?UI^3dA93>FhoDK zy@fdY4<;t$vIyH2yyf03eMSAxkobR2Zy^D__5?&#F{KKaCWFOa#M>nGETkF)DOIXw zHYF+PXi)~MUes5a#XUDqk`K-yDiDqa^1eeLj=OSb#hvWY7^ z=o&+O-z7tYoaI;h;=}RG&;NbF`>(?dxCNm9e9dnwlrTUO%l+BA^_4q`6$Fbw626J> z5WtMtTtvK`Ea25oXIMSp-lt6up@SjF>zzUO=ma zIHR*KWV0byY%%e^7dsp_Ac)MBa~BXKt5`U@u#Mg)p%NA)tKD4A%m@F4M==S&GGqi5 zKlnpX@#aA2UtDV;`i61L6wghjlMu|RU;oZ_%^TJB(3dz!^v6df+4<=I@8Q3~LFc?` z(dIDGNvf7BuN%YX4Yt|I*t3Q#(rmJ&*hu{Lh=WL*Ow(e?8`xcLxM?Jec2e zdPsGg8#w>#SO3pZreaKsW3u6U>H;>hDzbgm#=Xz$w#!%-?~_0=hc_I^e; zLGOx=$Ax2XYTSUp|4z35Q(cfOk@7aU*5g&10Qd5e^9n+w1B4m->38}8OCqA-b!$~q z8eDq+-4p-!KhXvqQ2SF7McJ5ESFyEP88R%BZUnNzXVI%XY~+MUU`lpYh>+J-n42_4 zon%p7)G5|O@5IX%?HWnqVRF%rEDO;VA%IE2F9&d3_?H zo)UP*L~xfLE91)yw=4KhbwWxGVq5!%xVgZ+hklphuXA-tso5N$Y+$e=OeJPak{SV| zT}R zF&;ZPRL1VqKvREBvNE}!%#)Y5}i+j!Y&`Ke{r@VjuTiiYfSRpIqO@F3JF;n zjBHOR5Zk*}h@A8NBLLM=#Xe=^k7v*-V#3Nl_p9jN`!y4+v8brV5N~m}0o6$XpujM+ zv7+e1-?Vhr(keH(K4GBvf9$<=RFvKNKP*V9AP9l_dR=G`|9hnuZ^aBX$EtQZ{*Slz{u$O z#BTb`zv1Q=(hQ?vw(3`mqz)oiUn6*Evg(x7oj%LYql5YwXC)T>27>%mJ(f|Dy4zTbLD=03uqBG9}(HHa#Ebw<(~M4Hs`PAywZvT1r> zHb1WlN4$rVqk)MVrKh4H+pnIkHjgdkEahE)*PJ%3$ zUXNmepP}raLMn?*vyJqbp}TCj#hh-qnb@NM^(>5K^CVf{pjl%^3BSN^c#>JbdFEDr z4vE)%d@`gNdar96WRp#h94JecU5t1~!?dez zaO$@@^N(9CpY{QPgF~ajINGo034f2orePS<@+(n1_l;`o&z*gnmF`elmk$nTnv9^rlP4PviGE(z;#|t}dm;JeD=G(t)g2PHP+Psuk%-`- zphpy{UBev7CvkGG-JHpT2XJ3^NEyBsqDGEqaZ-H|^hd~w1R6Q#SBOekwmq2nU>y0* zJp9D3IJ%As-I3G{z2HGM!s+Kdudk%JpTI|>d2k;HiPTyje<#8aqKPoLO+b^^R79>0 zC#R-oj7i#ekyllvbA3ug9=}a3ucWm~;**t=EpDL~V4wmqSnsr;E-o}DFRznR!4k*& zKKU3}SXv_4l1EH~1n9uHR$kTCb=nYUl5D$BZQP^9F-QBe3twVtp;hyr)g4@L>p@WK zW?$c0`cvDE<*%Nttlv96yWy7A5R0dgK3&k4-Bcmj+t-^_ks)7TW)bkJEsT?H{(+v9 ztZd0z?9wz^c!k-#a(>lRK9+nN87D=kkU-?G3|FQ>oJKf$V4MhQAQ|usDC$Bc3@VUu z;sfQ;y{UQ;wWZMFQ)Y`+1RF$7zE-m~A|I48Q*^rQ4mUmOo|Ty*l&U)Oau z9 z(C4&gU-G7RD^F1r6OXNaRgw8FD!>-o_llL&+XSY)*9M2*3a(UZjc>VF~>_c z_ZZp5dm6siu)=gqH2;0hmneos!AWQl1%B=Ro6J>< z*Z@OYZ*FNEDu>+(cEdd;;pwO_`dO#Gq}Mad`X9K|!0833cr&E9MktBVh01+CMb#Cq zQ|S5cn~T(R5V58!q|7Gs7}yF_A_a^GVxdO#Vb(Zw;fT9aedt&x&+@Dnj1H0D5HQ4z z;Wl3-Vu0t4wQMC2^!hSYT62Ky5fwj8nl452-Y;!Hwpdv)Gv?z{2;Co^mo6m zT6g(6E!r>As;*nRO=wWN&2Au9<1%p$(egVZ&RAr=O|5sygwZA}gUc0my*p_rISHZbS*X|QN8vG=PL?;Ca3!C8Qms(p#+9$tn6nqf z%uGopWmMV|Vd*LzN-cZZk9Aou#5jm>=lcL21)CDi?rv;QGAVHnl&Q67-V5Gtc1m<# z3rgSY9&tz7klwsUA^r>u{P`h5Q?@^a6<~k+4SYj$@IPNnWKEYz3KK$LAZ;KdO_Uhh@I#@ zaj=<2mPDp{h4Z)VZG%Mg+DJnwl(>tieJ8OXL{}F||&5(|D1Zuwyh8?Y)6z zSbX7R_vHLc{cf)*{cFFD8J3%;a0mgJg2bOXl6ctGJ40@0G2?VMYRx7kLwL;cp76Sr zjpr$^F7h@B|GxcHie4)i;uU<2Rc@zKMlP0ZdTM31jaaWTVv7ddAKvOLaZfZ&wCtT` zE+BWu6LzcSHGYdG`Hhml(j&|Nffu=H1=&o{_>1AR2n#H#2r$bmDqRmMUQa&E3QIGC z1LTPOMdsunbOCYe0Ga4X2ZUO3Rdxs6Ei&!alZCELRb_Xt=-fHLYT$Sz8AUi^OLs`5Ha*> z;RjxCu|8R~@zgHB23rOjlD9XKQxff9Ya0>m4d>AdTIi7s$PTer4m&vNN@|$DZ|Z09 z1|;ANmzHb}<3LPp%dHs20Ay{?EEugvf(s{`YbtZYec`0ljim>bJe@MaQ^ffv&;8C% zD8%nEyhah#{0sq=m@FtURw>?7ku4o2Mr~Y|xR=~$7>g9WHy6#56m&+c2O?uyrQ!5? z-8f)LLZJV>DQ?6x$yIp0FFMBOxmmXnOVU8ow?KnM#{t9ANtrD5Xc}4ceegRdiD4pf z#PNDHazsLfmSkVmg!wv@Ezr={q*XF)feVg&V^Urhz7&{~;L(dugQ1{>0Wf`O>M3s% z<)$?5MV_$%i-d9SS8AP}4rq(xAecU(Dh%E7Jer+;RtnZRkSzrEkuL<%=WEsnMA0j- zpKIzg`Okp~EQG z?BfJS?LopVL3B)BueqCKP+7=>O`GO2$>!r+1!r=)BIai(P&%X+%iVoV!{}b0nkz+u zA*?JyNHcE+052xn>9HN2HRM38;noqvXdWltNgs-^n$t6 ztIZa6_~oxW^ZBy|9K6I_Ksb>X`J*+2=qPrf*V%TiG(9gU^EytHEBX*(0K>Af$LvK8 zi!l`UPKeHad&!&=7!i?U9saCBe^YkG5MEj`f#c3l4q?}X; z6-RuhTrSgC{d2>ZUKg1aiuc$6%Z6#g4-Q-<$&6C+*?o~@O?$Vvi4gNONy6KDI`PNd z{-wks4~rcha#A;TWfnt!@a+k=(KOy~OKuGoT+$oWBr>b3(8k|D^yVZ=M!nZ&K`J3) z6DL39cXA&z%)XP$<-sZ8ZjUdp7XPz^{L~oOs-FcT;K#~|;d`F@y-=($?_#*LGxRB1 zs8hn5%A>0;RDL7;S}{yMTeA0Tf7Y<)Sc%!GhbBHc{Pn$okwi^>eO7QRp6)SJU$&>1 zHv6X%GNoObOS(Tt2V*_Xz%SfXq(nRzPkicC>*adtMMvUvF(8dKylKGn4H5ndK5*?t z@8jR4R*(tf69dla@f-5#_ITYI?NSUF1J%7de%+^j_W@K#_Nmyx&7@Z2+a0qDhZ#(h8s|pLHK800dQn_OGVFn=q&cG?987O&QOBbS zoo~ZB(}pHcPS_)!Qaa(%Q@l6OPI1FJ-uT6n`BnIdwGfU=CtgZD8yriNsski^A&-0s8^Dk`?Ap4n6B499ujSNGD*qR)X(pWaOI=e3_ zLTdvyS`3^+4CU-WWoCkAuGwWcBgy0oEz88h58Ze9J5j~ zu1&*%Ocy(=J7ilQMG^x761$5(ELvCy{KggICO7k@630lr$M|mdeEn4D;I~Y><^0$P zuBjA|+BTg@&RT!3ivzO>#k1d8>R;mBgVk;6BdhHd_4PM-&q@_MAh>EBxSo4}xk=H? zFTc}2h)Q}{E72-Fs6l6}iocn8$LIvQ;wl&UgU2utZA;2o|v`VfwH4g$=@cC7y4Dcn*TE=THY_ zJYWkqDs4?u`1dZ*Hkd0l zdAB>sO02&+t3GFZSBx?fMzIMRRbzNh^V9hJw&GvDIg<$z`*V~;1^ny3+caU&4RAb0 z-LiEJSFQ{(hXS$nlIiH2$ur7faxM31hCjIb1|Fo9cSJ1vNRu2%hiBvTLqwt&nY46s zlkPK?%f%o6PMLB54w>_+Wd6Tq@xBP*%fSxv0{8h{GS9sb$L&Lwz~|`rfxpi%4L+O! z(XOGe4;2qJKJ}W!059n83&0Km{F-m8{p$Z>$Fw?BPL5l$xyz~PXMb$F;1PDWlZy$( zTB0(q>9pDJi};0iy~Z(#!^j=Z5ZV6aaC@x~3knO_O!rxk{he|C`1$7NRNJ!&3O0Xz z*KeltZxsxvee0PG2}Jez5!R#uMiQ_g^BN^}y-~9>3;tbP|EgO4rfG=76um|}!pSH8>rGyK6lG+9 zzj(ky6Y}5v1i4b0Ju0b0#3RX%f1c|9J+03=h+E+urLG|$vj2O~pMP881y#Ab`9=zP ztc1;f_Y)7``LU_C+qo4C|2s)|0QVFDh5YD2H0giG+He9tMWG8Un*3jm|KIEXgF^iu zasEe~Uk&2_#OgnA!vBc#KjQq00{_#P|A7_$N1Xo==YQtp-^XNsiaY;jPX2?K{Es;Q zUlJ$kOg}rH<*y;JAn1{SfkE$=Z-F8@PS6GV)7`1a7Xyisz=a{BcHT2I|2EK*mj?3c z*s~;x$bVvd1PrPWc#Rs1=-AF?3hNe_P{)A4Z57sf5Q}Wg@p`XF($Kqq`!Wpi5JCTa z4VH8ATq?=GSBYD}tsw+FYZ-y15iT&CPR%;^Yxd)Dto!iMY!?br3T&2t8z_nkrWwHZ zRZsy-4U>llZkmcdhP95%+y$FfGn{!ynjZ-OZZ;F_#FOsQne?? zwALMHq$8Foe6GNWu7i2|S+|gg_CfoM)i!Er2zYi&S5mPZ{+j z1WEV2xd%=}=-(Ok7EAyKC6A+B;K(8Smx!CG&x@&Y$S{<2feQ>O%qH-9detf8K=l^W7FAVc9 zTlTv;+e6%XI=v8(1e6xP!qcjhL@3A!w4j)`76f{K=104ooP~DHkJD?^^iCGfqLBO3 ziXi>mOfQ4SCQx&)DuZq25zlb>DTd^=W>@P#R@(I(Q^B&ttd{n|U}12B!yKKc_P^i! zGHhKFd?~65lFx#ej}JRcF`*BXLx0OsIFpr`otjM{nujr=!XeB(-ecl>U}_!uM@j7W zwGhWV;EU)O{Ydy%?*5z$&y5{AtC$ILs0|Dw^3r>q21jOhAI}I}C>BYlSvQSaVzXW_ zF*vNs%^P*LH&!O(Zp>Mfz-BJq6+-aNmDy}OPpI5hPyZiWMqB};5W}_N0zPlT8z;M$ zZ%4QW@181_D$5io7m_L!Duzo&(@3=YoMu}lPL4J>NST^gT}5YYqEF?}{gIt{Zx0`g z*I->|HCOj>L@ADqEUXPa@CAMNP|Jm6^Nm>s7VES80=#z_rk4THg97gN`%VgL{*+=; zk)6Q?hf8p_d*u(aq)n}G^U(nE{3YAywL;aZ<+V~bHM0?gG2LVs2*Zw>?cI_Q059Xv z6WDft2k=L}5<`SqS#FodBNa^ZzVNfP&@kKe-m9{WZ#wIiv$ax}w(E~Pe-vSQvEpv24< zJa~cIlfo?lnTN<{k@`pk^!t#Skc3p+e3G=_%J_J-oWAWRYLVflDTMt|6NM^$KSgc5 zSE<7JNS^X=D_|L?FKiVlM>IPy?**t*fJML9z`#h-hr77vQ&Cmn!Fr!EH{b16@Cnlp zKg~X*nmR+hLLK3TvTPQ?uSln5;ZobspoDF)FbNvt(RIRGrT2qovu7iPud!FlX>P9t zEvpmIE~D`6KFPF;_lHvBgxK)WQ|X*OTAv)3^v6|7a56@*3vqv}b6!}Do*y5!%SlW& zI7rO4;Jvr~5zW!P9*Y*4-bEByWlN3nx6Ok?xFG=&<^pF})$h^(D5&Snx2+bThoKRV z2L+@GlnT|;Y*o88;4I7dJhpI^Y1PX0z9}`^53nB1QZw(=xE8U?J+wt3FV7&wf)8np zH%7;@WDSUop$kc+)W+@qnSyUaq){rO8sdlf@m@`jF`JG)U9LDE2RWjrW}~&%j6;(`-~W*?3bWs#?t)&(s zPX--NSTT%sX5=k9XZZ<=uG_Z#x-J>DtWy=kbC<2vuTC zpy#xHullely_klAqo=yS3MPp+8yc&I9lEP67tQFgLar z>UkkiH6_Vm+8LxKU#hLe5g3N^4=!^9$}IkJPOl~ywBc1WJ;JM)IPO?2XDUP{jfx|y z%_|Ki_qcvC2V$G^&h}>3RQi1K=Lq=ct#ALf`68t6Gv1+ct*@;bmVzNYmbLS=YP*vn zMPm1v=&_Nq+}i4_)_BaGtDQ2(7m=Ckp7+-j2B4y+QnAH;Y>6&^dl?{9qCYulWY9oi zR7JPt_B>jdK2dB=5Ddq8G~08W>YL)nDFAurer0jvO4KuBoQy{wIB^2BYwzBfFqh`& zGB?QH-f{jBptNyIV?1LvQ6L$N$Cd?H#fqVY{p=5!NXmveZ*!6x9pf$4wk@U#qKz7r zOQM2;q^VU(ie^%hEDIDGWA+-M3xj9bZ0<;HB`7}8{KCe^VO>ZW}0`5 z1eBdZgwRZA)FM8NWT;us*2s9=?#rn)Ylg-?>5{ZQ=CEFnPGGYnl}TWakbF)ns?pRs zHn!}nRcBJ(pV}fmS*&4wS8R8u#Hu_qGqb^2L<8bC9jyyDr8A{n?~7$DQz}BdJ?0yR z-4S`p+BH{xb4mJ90Rt@n?vTMzgyF_ZH7bo-tH@*?CrNMMLfYJn)4E|h7U~*7(G7LG z{vzg<8Qj5P1mMCscB}Qb&HBX})nS0kBegx+bBQHXig{9Nf0`h@sV+1HHX6Xof1ln| zxd6~g$^kY%x$6xcaCrLxD#jNpo5(F3L#Ji56Tdue6B|F7WutFugr}RxX1RAm*csy} zpi-I~gP*(Jr_xMMrn^QbsAGxs3p&j`ger4BvqbadtJ7WX zmLbUO$D%6JF(a%esjtmhDwFhi$C4sXIOzIr4q}-$lK^v@U?(h++jO=M5wA3oN!kxq zGAbCNEozB8TP*eFy}!Y-y(T#CsWSCkFIOy56|y2?d&}*_Pi3ush(B*UrDa#&pTO0{ z1w|YRJoEVR2woy%<_*E$M8?Y=OMFmk#a`i~E5>2?=Ym(eL|;8o72lwfMsFL5&0&{&*}QUqiP|7uqxT)Bw|VpWx#WPk~rK z$r#R0*j=AlN<$g=3=WxY2V@QI-?Wu3ic!>OvDBejz4xM(WDaF@& zk9ILs??MG~dho4-V^ck@*xpcY6fT4vjARx*!TS_tzgH*M-{e0yE_%zc;LMQ~_bo8y zt6RwFa(-?K3&)u8yMFmbM@w98`?9DYJzSggmsmLQpkUWkf|2so)$B1@zVE0@G#czj zKF~H!?Nv)TQke0;okla8*QZ4fo*xtS=8NdAQngmT;`evHQfOFPQ6@Bd(C=&10-}8E z4`=1`2N z-Jh@wi6zpDo$_d^`ydKfv7m(j{cg?14dGd?&i3i|rHO@!P08kBb!4K%2;FIRxLnp` zrZ#3{T93oELy2sI3au^$E)KDBy#(adzK^lCZjUSYfL?52H!;kf;~_AuU#G4Sz-F1; zJEdoT^q&`2*4Jz?YBku?47CTk1-`XMgs=hgWmBCfv9YncNx>7O3Wc!?4V0OHa)orA4R zPrb$S$b9a&ft%Zno1042bFn|{uyyIw_7$2@%wTZ!IrEw;_=*I}oB!r`m*}{Uu?11a z|3>+tf*il8`1ohV+1uQ%&isv9R*bmq+}&^8%;^foH*9@eQ@c*x?Ay>4OkX03+mIdF zb(znqRVRRRE@fn7R5der0>GFgQrkg3Yw=umHCR>rLkKVtNzehl<1!aXWsUVB2}{4r zW~`1U;EZ|NJ20SNkJpcRjaEw;<8qei%;^h6hj?dP@JI|vg!0;l2Dw-jZFx-YW_A%Z z>LesQs8f{~qE6-}&;@&*IK}^tHu>Ew{SZ#;I4h2yL!~0TPAHaU@=B*nS?Aq1Qz*vK zai%c~CI8-M9*WzQ`pM`ps}4HEw;ALX99{lm6h9LZ#$`3f^Py2Lq}ok)!JqQgE-U;r zJN#~BLv9jCTlXlgG&j{TL-W&}8WZg6(0KZn1!tJnh+yy+3bcy4rJG8bRgIQ7G~HX| zC&3V6^ zzvqxC#<=Ju(-4@P$m2vUYrv12e$vMAobMhJjpB$@#O(cCnN8*sZVJ{n6r&A{^%riH z0-<(B+stIv%`8@A*LImiv5$SwLKQVTOgR=lMVoNkvrDA561~}aw`+GstDhP?vt(5{ zXs|XysKNSXrMPxMYO7W~G~I59Zyxv2P>!~m(H1yXTKDU$K3mfsw}Tl^%c}4B{(6Df z7vO$)HPN6ZzNR|2R3i4^Vq}84)U7-BAOw68yrIbQGbOja_S_{*_-Mq>jY0xy~&Vx(&`=BLz#LvL{W(K2A7c4 zpqe=TFG18#?ceGIA0)Tbs3rOh(~lu-UP=elgE+$SE>0hYV5-aHE_t4lXce2A;=z#a zLrpLDkbRJg@@`fS$zk%J-}KqS z=$$CW->1)>wTHHJbL9xF0M~)h2gt~nB;&QNG@|VZH zJnho&Xm}=BTZl>_&iO(gdr(L}R# z^SOK%!h+vr;*x+(oJaY7Qj*2qn*!}?-TGu>F&;#t%3|Xr4U>v&VYf)Fa@DXWu~e9| zV>g{NOwD(CB>iOo_x9oYE1r|REgY=7;z|9j$q(n<$xeJ!c*EGVrn)O!o7(DW08eQW zC~pvAtu0MJ^Up}Lg~_#?+JBjN2}pX*X7d)2JJfXOEe?8P+s-t))5z^d{CCfq=~5q4 zgaz$>b2gt`Ea^&dRu-N2ux^_&0$J=h-A723hX2^$$Rak~9$j|{1na^Zt|Eq;7!fqf zjaj$IMf=J;mB+)5>d%79BkNxz2Jw%k#604ed4+72O5;hnZ|x&e4J32Yt1Z06$HB76 z+}{RM>e+#xjjB3?B@qbAWs(Xtj{ZU8v-Jv5^YNvgs~+rj78M9zxZEbW-D zS>|n~9_Dbw9`(?T!Yb6OOkxhX8R}2WE^k9SLgtOdTGk2(Jp{A`uAs(~a;=SDnBuFK z_X23GgBs&fn~}M{4je9Xkh^)3 zufZuemd*MO+9KEIN(3DU!mV5ZwsJ97uC(b~&Q^9<~zHk?b58EwjPJCx6|rU&cD z*&o|rH$*z#lDXKmez{)YMO|hgq*EH5NxIr>DoCwqu^G9PlJl$TgZ2TN7pfHD zQ$A?BIL=2vQla}~o27V23AhN=e$qjF)4OOYe{<6W4s-dNbg~(d{U})DgaoIp?{uXS zDZ#W%jQJs%_pVx@G8*86yB(5mg3lghf$f~5?LD<@x2rSwipgnBL&bYgYCi1N()$W0 zvKW_)wM$mic-cM@BgUP2JYv@Hv0b$OBBC%7FN>gwfnY<_*PljQy}=;5V+=W&mSYe&T6?L&fvZ)_%K@{@;eitHIAR-& zz|&{SVJteFdn2k(I+E;v@u)&AqbeG&Fofk5UR^{oMl1|CU-TX{ZwgfOv%+7Kunp{g z;d{PwwV`q3YIk&fQ~>vCh<|tANeI8fM~9tmgMof<@nPaB9YxBz^!(FmvmfYN{z_3u zXifZs%~M%G8i41=_OR9dY^}}0>!EjIN!rhNb>jP;Hyy4NW^4jpkE@gO$&sdld7oi|tkwIBE->s87J* zdy+%RJOWnXfHG=fkwZ7vjgB?FSjYMCM3?H|7pmi4=eoc;e1j{{7KX3b&Cjf%Z~0v9 zYZtz%Rc78FAU+yF(w_ zx06FZkE>w%@gluFn(?T?_Nu}jUbeIkI!^VxoHx5>x0=RgO66a^>CSYVS2u?fJKd#i z2Rw*q8YSD_G0`0VMcML$*kY^4P zSq%DJ%?#E}xGj{Z1Es5dM2aY@{v4*G;wrI>e7F6NCxg==hNqU9qT-pN_v|kRndA<3 z6#|d&dhLIV8TZ@!WKTOSf?*S6(G;v!<8QVnxQ@H|M{8uvdwP4B`Dmt*Me+;JIu(Gc zp8OmneODcNp9+Y~)tF$(z2sKqCU8qr1Zn}3r8{v=gVBK(*R=uAhYfXn;N()V!+y;3? ztRs!$?39{LrgYBG?&lkwf>n}?Vbx5h`#=Ew{*s$qeWt=NNq5i$@kC(f)AnqwO7qOB z%zNJy*gQE}C+}hFE&1%pQn~Fq%_VGTd$OynWb+%2PPo^@kf`Hz*wgaW9K!J9gO>Yd zTR>lmxMp1TKS^HB$@P0qt1JNqIgmZy)nws4>e%vw>B)@4AaK`CQOt(DaY!)S<7*-X zEwvvsi7sdG+M0|&-d3mzr}hguL4l}md;*`V)%cH7SN9o19MR;|J=}rBZ%7zBi*R7q za}0vFG`!o3lmi3McdMPj17$qb23=S76bec`7{5OYVhkHx{_a6s|kY6p8;B>|z zcE;gua~{qvO5pW70`b0xtFvt)hybD$LcrU)uebJ3Y;)>k0L=&^5I@EAqez>-nay$7 zofPZ8+RoKc7g%PKGvg?-<;@783OqQzN#Krc?ER_r zAR8_&5Y&|WuA!_E+Rh2qAAYfeClc1KW_rUrkjx|3d?rLv@x>NO_kdNdF2;8%>sv570_nEBbKC< z{`MG;#Gxgm;j}X>1+z-y+-|6mb)|t!Mzh|mn$_}|OaEmCzc$&#)PB`B3gM+Xi()yjzIIz&gr7Ong;gl4sM$4}V$Y!ss@Xm*LuQLQ= z>Po+N%{WY<#}<}0&>7(J8O4^W;xf~ZA{X~nZX{t)M>A;Aj2aB(uswS8Xe@W7I(&j+ z%d)^UZfaRnvU5wsU}t<=`E)WR@oc{=R!N(YdHe9CRm2%5o9$Y4Md&sc-SBP{xHjDR*2!0y^oviOqUc>n8BM%zS*|#CDt8%}{B(nFhO$7(dP!TqT zB<+4hwe3&4`yPqq;R&5@efz-aw_X65SsJyTo{T=PIK&z1KGiwA>8V(!efRJKX*RWj zhwc2Q>$TOVJ~tsL_A53S%4F8{W2nvkRVgdH1B_FTz1*{egJ;ehu~j!3%zb#eOn{PX zk_6~Z-E?qD;O?T3_q?r-WPKjEitVyw9e&;U2$E%bC%Dn<4&w46hX{Yfu_GvkGl1yp z5mWKV^9}M{+f%l7vSR>Qquc~N**@BWve1VDx5-)HHZ8mP0g^5WLd_%&JVD!fRB4)C z?b;Q^@R>hM(!ahfg+CCUbw-dXN5QTZjHZb$E)1)8wCreFbc0!TY%gO~lk5QHUi8$Y z^ZIsvSATv$aV*das`Rn1BOO~TREStK?oJ|=E+Op+;(AR1)ekZVv2kRT4MW(8gc+Iv z%1xo_caMv>(HxbiR@>!LygIBDibN#3S^MR0#$uMvc}j&jNgh`c$|BoXc@PK33<-Sa z_S$ky)i9|dhbUSV_QhkbV?Fv!qZIZq-m|S+5+U-2CZyP{vBVnFi2^pv%AB?%ymCDT z$~#N=1PcXc42cWdtCJ(FP`;(Q-E-IuE#m;kn&<_y#~tBTjftF4sDPs<5WmSzebhqV zomW^?&t6)Uc5Ov3QxT`; zS^X-eC=@j=$o?)^%{jt|L90P?&aLHS?qn{mOFC2lc@2nVl&Wl0Hcd2ZT;Y-*w%lf7km4Scb8p!EQp~45m_t@rG&Bl#{ zenSY~$^dDmermIc$@Zh;@FE`>1p>lXmdYL5a(tJmVZ;%F6xE=^J04B<&4+zC*M&qS zIPlkk4+Z(J_X=CP>PkUDJC~kItsc)%NJqZeCpy&SlL#aA)J>(tW?mC5M`gE%ZaLMz zQOFXUCY*2V#z}3V9O69Gi(xYq6!@fm{M(MPr z0ggqbG~x(+>pIDjhT~@=Edu{Irbqn#2BD7Z{mmJdhNd(EQ1H+LXG79n+!@p$!B0D? zc^*r2iJ=LiD6Z7$BdZ4^mTL7F8y2&G-KP;v5PECfZ%?NLEGl~?DAE1nRq)Z}n1zpc zd9HrMUE1e_q-$euoA)h^A@PaLT;i^UZ4)ym$8J z$sAHuY4ikQceBtORm;u6WFE2&TC1)?(*7hiN}W*h@J~N8$y)-6YnxCncG3mA^J1g8 z)B;S7YKL8A=8r2`ey}!5QJ%pzST@9XpMJZjQq}=a?DV?EVV6C36Wj9DV>uw_SVOpB zc$QQ@T4lPH@>#i9TYsX`zobPBxZ;){i2nvZp)H?Et-)|9;uv{#MSMf;A_+lT2X$~^ zKNI-Cor!|XEX>J-+N9C<107IOnGjAHPo6KX*C<0-aL-~j-I|}YtoR(NVG5X+a!E-; zsqw_4O&SJHD6+v;B9inPKIl`J)N;BBXT#5^w@-Q$Jc3whSE{h&IF(s1*wsfLlxbMk zFI@2u6~D^CNp98g9I%}b9-!yYVZ3$-y4A>?>gUk(%udn=oeVGQHHkxJBhgQ%o3+e0 zo6^89i`DBPTykb*HqJC^6$W!HXl=10Luh#8m4qo{Ip_J}yW*X!fWA4&?@MnO7xNWs zXg{$Ss|fRsh$y$Fdib|YI~+m;B~Z9KrlUp$fEIp}bp*u`8ZvSO+&M19w-;ljUbQwl zmhebbn@F>)=4Xo^e96n{$<&*Htfn73tw96(0wkz$p(p6n3QIf#j`?S#i)W8faZK*6 z+GLRLPjcavQMAQV*W9Jw>|cAKm$IEh8KRno95YpD2-uhL_7Uy(Kqi#2eV`5?aW zESu!7fF@Y@4dE@7lZfwn^4i(w`OUtL>5CHwo-vHp*$8jy=&A$fZCQ(~wW5&BzadYnF(wI$ z{$eUP>m?qB@Q-dMOO{?s{KGoDZ$hlYQfoRF&`9lsxAJ-L!H3`@AE|VT9?qxqKC>wZ zd%jC$4*SeI{PQMpQ01kkj%*oC15n=udisbtKVpG=xjJ$Em_y`Q^%Thrk`=Brfj3@i z91R5wmfAYZE(Zwix{8`-p}Ni=x9yv1nE75!Q&`%&9}0x_F?q{5eyQ4sg9e|)DGsll zLxrjqp1~9P6B>Kj${#7YN;d3`KGtG;wlmD_tAW6pptpUK z&-J|scu1c{V+Lnw&e)PvzF<&&b<73v^+DUw;K*RJP}F(B5TJ7)Ii^&DLv20}+SSvj zD%%}h7{Ka-AUc1{G3<-cC@t|fB$goPOS}#oD0`UIfiSx5?0_Zy?ERR}4#&bP=*?Je z#nas}1(5wN>6JlMVs7XqA;P=cbI?(l-DAb=1HcHV=*R^%?loOLHmp4BR4UhNZfdzb zGj28wr#Ly7ARAqK8((8_`Dpia%gIClD=so9D!zQO;pKj@h_8OR1ae#x01*Saz+rvj zo~6EK4j3LQ&{V_9ai9SJOQF`67Wq3Z1=F?= zft25syC53I;X7R*&sWk*ufxw8)^WDYHo&oS=2|?-=5*jz=mzwHDC^y1R{&at?1}(E zfr45KfBornooVFhRb)7mU9r3VA{Jmy)Yon8Ru?HuF+QJ>rni%YJ)#Jc?J`eoM~}wQ zaT@?l2Yg~8I9LIn-|gOvEwhIJC97A4KF#?b$nMG*+@7|v-5%AO$I7l4iB~NZb6+go zdJA;A37kV+WIxG&$|)*xnB;S}-@$IF4PL57zmo%{nws$d zrVi{y@0W4ZyoD<8eC~?H@*-7~L5ufscutRv2NNP0!wh^3t#R=7s(vY-yfph z$!2>8HT+%&`$g*pKp7H(9dzn{{nJYEN62lR^=a#xx7CU@I2Sp+1e2$5QvA65lP zUoVstG@^uj;&JPYDc0~VjE;cLKY6&;N%NW`M)Jq=Zu^nMP;>&d@%%oL?+ zB{R>AaKl$@tD|&9YHL{;HNsPSy>bcJm^KgFhCFNg$C;36LOe`Z_UaJ`*1fw1ly61n z7QV=ii$)}hE|35>#cOtuUJ$-Bkl6OOoUMw0FoELB^W8ROk!K9-K=dOi^k2qOJt2q@ z_S?3f4)wm>dB}+7oN~{fJb707o?{9nnpP=DMRVaslHqvgtp+{5I86CHg7w@9o(vJIS4{i#7*Qp>`|gp{WGn)vxCVDRE?+lt_H)B`a2ZSCX;tLV4M_J(0${upPeLvuP*x7q{ zxqViz*dxDPBk`?)Z`-*khFVMAN6R_HesB7_i~P))gc|-u?c${%`n0FO_GEFT%-P$% z_VZRg2cU32$B13?E>jdO3$UjZpGH>7xYCJEUurhHWt({XOzTIqYz{siz+P793b_^! z#!CmgAR3zk*b)O{V`MqWE%(An`mCtSJ8V`%W6Dx7x?93o3JyMn{ki(F8dXZ28CyfG zb;f}H_1+k)S(s*z{Eg9zAN-ON4hM7V2iIYH`*{kvHCt~!T8(ZDB(5izi}eCVV4iNH zu?dige9wC_;Gz%$n_ybys;5_h8ZUAGp?!%h5%!=6xdRlHBq&)etzQrWH7yPLUJM8y ztCVO~$^8I1uvAK73hZkDi4hFrQh}{75s?{u;mhOoriG3w27%Hh z-K5{G6wFPrabwV51R#DKnAFsEi(s97s>SLP&T7XSr7Xgl(>bR(ln*)bB{6jhr^l6w zEj)dl4yYilaEbdQa(eJqAl#n*en|^MREB*DUAnS@r~EhLG#HFwIy$tt}=qT9lfYk4oyz(dT)C_M-k3&n$ri;`f z!*0F@myxhM+6J6W8V)6z9jnC0JYiWz0~u)K)EexksV|)DZm=B}>;<%|IeY>5hL9}R zrSs+fdH(ScWoloCe%5iZwCg5o@OAxNoEd4ML>2y{EKnFW-aCNF!oz=Aeh+EOue)XC`lt(UczkOA5E zJpcfe4yz^Ef{*;&;X>SziV5+9MQ`2YmD6T0E~!|mV<<-zP{HwB|9*4SHQsbSvQT9< zqlw3whhyoOF5@)TDCA=rC97PZIpb0Hn1e6E;?oG3#4X4nvYIO;Mq%d1>G;k>&#YLA z74|nA)wG;I!Dm`MIWmcwPZ<@KdSBNqWl0FAo;Q!x$k4j%ja+BDae1C;#scJc?Tk{! z`42Ojl`h!BI!D2d>ZM1YCM-gy*3b`GDqG-7_NiGytkT#9Ts~yEfGcg+2dd3(BIB3& zteGD(ktQcD*Ebi7VL4`MfvXI*8)a##&%*gzt@}-9?BFBD{@DdShQU|CS>5 zj31LXNQ~R#X%Q1|Z=JrcXS0S@BcWdQ;rSxW;B2p6*`?8G*CKjoS6T*-!?rqru_bAV z#3a;dw z=f1mDBm76id_xbwIa|(&s>O)qbOB5Y^Ik^bisN!>?Pr%vtvj(sOh|e=|93V0W>2RZ z@n*Du2lPJkyhe*#mRVIN z#i=#Q(idjmj@y0NcQTpWYcW(G#^4wsuBt5oB07;ot-LV@PG%0iv!>HY*9x9asJ`=h zrn_7OT0&|IK zd9Rr%pKk-|fuG7&38$y0v%{;4eP|Zr-FfiOB>3p&p}xWJQe^i1=XBfK;LMI3oD%2j z&zJx7dzydxJBByw`k_2B3`8E_euohg%}S$SH{nk|3dBCOe*jos z&(f6?hR0!M08iM2Tliw{y+A<#2xCkZ~rb! zi=+}lwiKx>Sw^y#iWnp%JITK9J0T=%WF1CXv&+sbl4Lg+jBRG@V;_udjOF+ByzhNK z&+lH|vLV#XF1RFlffl7y9^RGFozAV8=rKik$@JBxlt3hzA2gToI{f16wS>qv( z&+}~ndJzRP;C@&+2R`X&hO}`!Pef8om7&M9C0c~vw)dgw33ZwEx;XeZAWEGU?m_lJ zdcMVje)HQKNp{%~AV`s`70Ep?uBZ`_3q?SMeq4s8tTj8pI5=UIU-qTML@R^9i&#wX zu;8n5Wrr(wJ9M=(-^w2SnA}LQ=8oLT@imcc;HvIx1}%_p-^(4_;r1GfCnJNrwZ=gR z@okBbdRI#$4_QJ0c~FT}b}kogU9ge&BzCvaJb~|EA{{n8SPy%o`4lc1FV*N-wp#iD zjnC76f)(6@U4)9?TVrChasf_tY5FKS7QvVX`BU_ZTu840)TmQ2{r~_{JnAAX+B&xH z?ktBqi@gWe`01kM{CcqP#mslA?aI>8;bi03UHwuTD`9;dW7mYQmZDm+EJ3N6X-n1E zi($3iD_fpjcg?u&L85%dl0Ft<=td*sAf^SIX-7Xyb=sy{$W%(3K5Av|>e2@fyeSzB zSJR}4e&6p;3=j458Fwai+gC_=%N_1UzW0{U)C)<&Qr{BNZMgGVHz>l0<5a=6rz1)Ki3(k=*T-uFA1c~OCTi+VM1qAy2hF|9~A!K;at zKjYp{H=VtQ&j?Md!mdWre;ARns6 zqi5lr3XERahAx<|&#*GN2*YEjwH@Xh`ev!(-N}VHePTSu*k8R$GSsW!qj$p|N5E&fI(gb@Y6G(3c-#SJeNjw0WwOOj(Q_6r6Yy#YfcQ+d13pp@0GsQGU0ni zcSef*^$T>$N*C_tMxm=49EdXL+(QDN$&LMAh#|vd*`==MKc1?swu;W3v9Z5g&JjlF z?<`FO8WAf?pi^qw#D7pnS@xv!YRIjdxZEZvS{L}h8?f3dK|rD3vBUE!a_6vhgUn*w z8Nq+<Cef3k+1t3+kj>i3bXQ>s z!m5A9Zzt%}(XM5AAz+loDUPZ}`)5#sE86#QamT<{Bg0V$>GiGL(Q4ZW2Ry2A-@#B2 z>$#`VczYDqT533wb)smJ;4Y|1C3AkkFYaGe+1Vvx$RTd*eB@`uMMM7;WdH^K+lXyh z&0M;{;F)>IYqonwwmx^9f#4BUComQX_XjgvZalg>*f3974ODuWVjJ7@3jriUE1a7j zr<$;Nw?_N&6QwN-UqwZ2brWIs{kA;xNwS1=^rP@;{VJ~rxWi(0P-Q`y7TL%2``dsl zj7yD5Bg8UYqO1OJ#4>YR>)QjG)JBspR~ZV7rvnT#`^2& z?e(>64HY2VoBbN#pZks#sg4HHLFQ5QAdG7$WHarIlC8hKYJv8**FRg}GUv5`z(tw8 z?1WU%Z`sPEkbLaXM0Wq+KK-+vWtP7)_6vXz8F$m|lP$_710|AAfmrk>_O<=>em@6? zMVsvSnEDkE*145xqd!tZN|Ehj(qNb={ZzUCB^@eyKDG3j%el==ZY%u)Wy1jV%bZOC z*Ma$(k<9ahePxALE0*hG#T>Z*@fr-Q)6akl4F7b86-MeS<}-Z|LJOpu8t&VVM_u;&OrK-+SUw4(kn*nZhPIL*^e-+|)j1{@+q|myi3-x!Hbh*M$pW?G0VVSY_>9)Sm zqQnFES=$TPa#Nj-he!3DX98kA;ftoZ6A#rtRAI%`oMHfzyn7&Pg{i4txi<3`CAgs1 z+!tWxl~;Z%k2rl&cXqn4zLkHIhY$ZJ9T+zF}{X#r9}-TUyvmJ zeX#q&?ShwqkiDG6t>A4C$YsVI1ks$3sl_`t+6~uz``!sN)bwq4g@}789zCKHuLdy0 zY?wE19(S+KI>$W?DJX?3CKz^IVFW4<11oSM+%c;kMZynnSVn*o3OfC97K z?BgGBtXu7P@UbudY-{Y%&Bcb%Dxp^*KR*e`&)%-IM3sup)CH0AeD5lT_oYfuh$)Yj z)=q|R_23g8bcJSh`OQ{KKAig`@cgj@yTr9OX*yh0cNJi*+oJSxb5?yke3!s`*UP&T z5D}&PteyFz>ozbjz}P6<>Sd`h|J9LiNY*LT7I>ZHM&VQ%Z=>da`Bl?Mh|R+&ICtib z9DtOM&&bI5R1yD7Ir+0u!C5URt$_QuWPpYdjes<3=ec`(%0SA?RrJG$S7F-|ISUx7OieCUR`2wv1A~wmFfzn>9W?`;b7t#8DzBbaxYOtc-0Dxyh*O#`2A2P@< z=#nRCBpt?k&z%?%_H+5-H$+T2U&|!u?R_<;AFo2L!J9Ma1(}9zBsNq3)eo#W_5;TZ zQDH3nC+JhW%$F-^R;L;~iJUG?WJ{K_x)Nx8uB30+ zpJ&_q&{|Af1MUXAwx#p6#8ESYe4=^h%Xc$_{6k!aC@c>ezV}&C)rgOy@gQEcN2B9b zl}@}N%;QGxoiaL=>ghoX-&j!eST}^Jn4br-5kj&;ogRI4`F1XPhkM9_Pt@^y-;;aI zbT_oZgo-rY2Oe~LMldH-&FYIg-ik>77b@v#vQS3V-gOwa{cl&Dn+LNH9$tx@{>!W* zs=Oy+z_7F9V*}A>8PLj)Q4WnO^P(1NYh7(E6uE?i{XaM>*6M ziydc|3>>RX>r=H3d`#!pTa{KGb#{9^?ksAmkU!ejuNqOw3}}BuxUu5Z-!ZbC=lOFI z@hJRzR1#e7yw)r+XKe*z^lSY3LB{pJ;PHMt*#yiqwe1>bkT_#+*x)f67dYDL6i!@e zx(cv9g2$IlCC5j3TZ@EalXzp78R4UGJ8W^zxO&SlwaSAv3h_C~e2~4+bD8K1K#ja*O%((4pj02O#@RxBCuU@rc^?!O-4U z9$t8(EDaK0n)vs5$eDyof_a)r8po@UU2W>TIsfF5uj-m;hX0VYOY@e_hx3CMgpU^j zSHt`UNvmq$x9&}&D~=a6Q~Uh#7Cl!kAv!qkp|6MVd{$^p`uUKp-Vo3BV@^x^{bNo? zfq_(DtUMSZp45kud5xW4%5(8K?;X&^=rVDFQm=dG28q-Ar>V=TR6f5!Es)^p6w{FX zgF+c^^mpDChOl*(I8T?&I2~IlzbVd5|A?Y8m0_tI-jo{dM~^ z$mNYo%_Azr6G)>efKlV_FMN=8bfd_oF&idi(7RGRL^L@hduL-_r_I6oM{4GMde_`E1 zysRPe6zGtq-PH=^Ai6lj&Ujv7d8j(!(@kX>8NEE!N zrI!W9d`wi;OMKR=Hu`yU86DdOBulReNBe^hq0(gvj~1T)%Fpl#zUuKxL*RK{lsl`r z8t;f%-o;sf3D=HB$v7g$0eWRiSCQ{zHhU1@#m#xOr&OWrs-s& z;`FSty<%6x+YmdlcSv)>Ri$B^EcuxM@tedzudZo@aL-=$&3v{apmO?xPlMd&!_ma* z?*B0Se3BXM7K{HSWcl-BC>*DG)sv5>jz}qXBNc-UXW7oV1KFp057}E5&tn_DKj=xh z)mjAU9)c=t;*awvE4BFKGmQN8x-!?xXuC4}HZ&K;2)!xTk?=d0w|M}wFoh&m#rk*E zlYbLa>&T9k=e;iz49PihY80jgU{HbjhBxj!rOJ~{5}SUzN{g-c^ND8xPe(r&1j#V+ zsU-mkj#cq%=^bwnJ}z8W^yTOy4-5hwl}39-?rD z-*ulM=&uGUuq~{vUcR2AxE#=;Znyl>?kJdJ`1mVSIpk)>wHsJ$InkRIwcNFgfbHOb z?^PV0?3c8VDu!2C^`5)BFubnGx<4^}QC=11wlF`SU;&Bhw{)qhWq}}c*8F|kNlJ_876)DpG6;Rb< zQd+%d?x}<0#wxxJ2}31%ZDT~gl*t3Qer@wL9A^9;!=;0x9Jg*Ne-%kS*{esy{x8OlsRF)1?PUHxBt|VX7>R&;uQsjYftGc4z4&dih4H0Mu71 z$UjdFD)YjkD}DO18Vy~3l}O?`ZS3op@%}u?L)%BgjA^5p&ZwGoDyIJzT{VhAu`&>l!h&vNRXpe z=f1Tob>F~`nbModzTzn}%dSH0PRP)XUw{)S%yvB`8NDn;db2t2T+we}2{eRf_Am9O z;#-k5%1qUB)s%svZDg=A`h2N7RQ|t;^=o+^PJ}?^^=^McGFs8wAk-8ruQxGxlV1(P zZ7Vf=1nIft`o~Y@w|_`1@*}e9nI(ZF`tmh22n`+d$<<3kkcsSPa~xJ5UAuilLbr^H ztDCP{*laJLVd2`P27Rkfp^I~gJE4hle!U7Kfk%dm2DSI?@V0mApuB8OgUAD(9tnLs zJo(Xc>10C~l9|5CkDIAj4r-Xkuv?F&KgPFtObKb+9tn24`uwkx;AIE++U#(uh~d+kY0L8#oA zT5o6o0>Vyn|I7LGv_gA_%L9dkQYsc=Ykz|G*;5+<9xNLCvV~{M3hae22J~3YFugTnY=3zJcA5-XA|uxMh?ivln^< zaYV-PqCVY`gf@#=iD0%lq;r(kr+T)Mnjx+_jb^RtgahvW33bn=%kv|MF&WS9N=Zq4 zhNxLJ@#>8&M2EOQvhi~xZ{u>5yM1tuRUdrhT*PWKAYPELffbcRg(&UItCSg2ViMVp zV%y4g=(g$pRF??Sz64B4Vho7#2hk;`?ri{1V9Q(fYg%=r7|3iJug?>4VX?n)4Sz>c z7*lT$^UcY#r@wLiJNNExsQ&@wdWi>JK%A4YZSSdaa~lMMgIzw3)_eEANP9cRM10)Z=#-eaL< z_wSKyL@NLyO4*~yz}D>m{5U?#^nj<@op=AFV)jRd6_{G`i_e+?*t`E>h(NY=aj--X zo!8yv(yIFDCeVgMUPJx<`V|4K9OWdE7}b9~@W0LLUq2OG15l`iSFN`he;+ci+<-om zMME-B_KuVD_i3{}P*2jzJ>TPI#CPqFmHo3H9rpnUa&o4gSpv!5|C+uazgwCB>kkjD z2I|YBRn`K6dg2KHu}c}C()giS|8bRoKQt-?8A=c3lAqlD50g;9T^;GrN z2%ESL8p37RL?jpG(vzi{B^p_eJ{q*$aBZ z2pmNtF{jCYmYMtW!2kPwE?oy!KX_u~&i`^acEBQEAG^pS|DS{W=O7;I|)cs!$XXJRbYIq+6{ApSK;n)8&{{L~;{GajvkGtmojQ>CH^uO%i|2z5r$1CIi zPX7PzX85!D{Nu?VuWQnsRxN7TgRclYI(*Z^=lz$u7O-pIS1NqDR~9??N5CQ=_&L)pXG+R|vX#7XU`&7lT6mY+sfo-gmcEZ8|8=Yc?Ves9seH1>>0JS<;L(t~9)7idlq1FxHA_|MiM)()H}Yu@ zJK16JX|G4 zrXp5a?eAPPg+r##kK^}!?M5nPu8TNNWmXLN@z_6K8I{O2kF@ZJ6Z+#uP&juo5DdKq zp#D9QinVepsvI%D7LLft7qdb)(g6SZ+Ll_h98m3Aqth0xw(+J?d73CRo5|C`Lv+W$ zy%`Ji^J@SK6Zmlq+fr$Per=Cd!>2%L3cCLdxq?a5a}_V@+hd@+K@=4*E-ew%*<6#R5y%v=AHi}b{MAd0Dt}!ixVx-1-N;Q9 z_^#^Kukdy-Pd8J-7Snz#Xk6aIaVaDB6F#6Kga26HGm8Bv+|}T|`~3m>>#X9tcXwVH z2IwC7aVYoj+J(mTbzWZ#h$kiB0hyZ9KF}HLfKxS)1Q7KPSApO6HW%`zcjU7Y;?%%)|xJI7yUNjZR=+=Aw!#-sFuWJkh@0Zo8 zIV=J%DuaUhve88@+jI6^!x1>ey?^hitjoQlu6AcJWuaq${hb!RP-bD)kt8tfkn=OJ zI{dP*Q5Q$P?6!}AtxZ~k-}fyfcYLJqeGRDp-ZS!UcI^xl=D<{9-o{7&lS@i;^QdT9 z#_iwl{clh4+Oe^@+@4e7UOlPDwCUIw?Sb)~{}Ntz(0Bxu!*QtmdwVJTJXteDW%ym6 zq%5FOLWA?ZW^`BV+FONzlR!g4m*j6Jc$=0`v?<4$hMa+Rag49BBu*o?JH%WLy)B46f{CLnokB0=o`yuK${{S$kZJlV$BYwKsa6D*YecTC-*5+hWAc>Zu{-rzypcF_UTeXSk6h_hj9vM%ZU#j$uqi(fLwUp&q)o8XsCDhpcxnU+DgJEggumD-S=cWdu#KN9qmLq>h@Ev5cl*8oH;9mC+{sel`IT z);!0EF#pP&R6ilT{jxi|mS0@UUco#7#&lAu24OIm+0e7D$`Zwy>Xv$qQKy{kE{>G%9lY@~Z~A6sT8;u=LJ3$AD`K znWFAtU1Egk#lfOnpK6=_I+cgk<6na=ix9w7*4ydcb4Xc~^$;NJ!~i0=$rd=4%F8xR zr)D8~s#B}Mb9zHn)}$cc$n7$G`7?18$XZS{`Kd5>)pRxc3JB2|wzwll*+g0-Kw&tU z#M}CO%l;UlY(oU|R(htCZH#N|InN&7`oWeZ1Zp)<+)!3MFeMMXsaxed{g~9F zHST?W5f+5Rm?v%S9oTM&>)Ju{0fwRoM(Ls}v1AFZqg`YqG2=dKn29O0PI%mNU>sWs z6-&rh^Tg3?alpJud8T+<_)_J;h&S^1`aCrBnW!(u*xsW;Ah&!lGqSCAoK;J*40IfB zalU2mxAyx95b&uZ%(8Z0)}xi1`AhzUWs~4#JnLQsx>)_|QKl7G02~DydYq+#zxY=^ zFmS1^Uu=72!=AZS!3?-f3MO4C>#GI`9}m~FJQBOFL&z5m(7VooZR@REvptNlA5?AwNjN( zxxYT%Q-&2MWs{kx9GsqH`1Ly<7wQ|Dn>Yo}!L}R5#{0_P`&DHkhJkefb0f*K$;MCW zNYuU#4eK^i>+j5hv$2z9Vg9#?$enLumD5!Q4+gZAd=%= z;lAn%?~bHrch3b~Pb2CWb1l~B6T3gtN*xdnr5^=$#qwEew!OXW=*CiigbV5~(vkGM zH%w|t#%< za3-4{%q~~%)uZiVIaP`E`{R|dDn&_?80+LpEW2YvvpalcXlZuXET%kRd^K7UzW`iz z7n_m$3P8Hh{#3>)SD;!FY?XCp)0TT6pNqkLulns%j({WoC}Q0nGl+_<*QrwwBZZw1 z=P-hKAYhq$5=6i;5+(+&6~Om9AYUw!rHOUAF)~@T(%mq)^hP6e>=cf`zBSE|X?b&I zv)hEW0*3S&7Yp`2D_Pw1l0kk$yUq2RL&m5JAwx1;U%c6i{?KQtoiNV*W8$1mz%;#1 z>*X#c1D!jVdfdYm*%lb`BJbnK!;xcLP5Yw*RCS1hWRiUYUHHPf90gu!_2ui%=wR>| zOJ?8?Y1Obp;l{loZ%&I8lgHF3vLa2w_vsVr~xeCos3|S?oC~5Gyf8zM-27SgfQJD~b`K zsQ;>@8JET&{I*>YHM`pnFuu~Z4Y7w!uzX1|{@q@bErhh`!pEw5i#bQ^_l~*Wg_x$`W zzo#zVvme-=2h5P9xff>@zR!@9=W`^wpRMEBo zaTn8-8_9<36%#n2oD;8fjC~{hHrH7^wDYhBl;+G#98GoHwf-E56hN1*Bf}qH8#pws z^rcbTHI;G@N-|nwAYz`-l|)d9e#3!Y=X++S(YIor4?aJ^cw@I}>m>%L`6#qHDYmPF zn6NNlx>C0evzlc3_yoOfG4GDv8+G?0FjOPc>ny!$7gjLeV~fh_Z!Fh;mAGnX(=(_X zKjh>znx9XdDkKkg_`pS0h z{?U)yN@Y#T{W^RXI@#6O3?Ab(!u&bzmn##Z38Wi!E5%{ezZ%k&n@F9$^ggzn0{VGT zmEIZh{W;ZHGV24b$Z34Ti#>`~&XTFz-{g^ldQXNvh_wI;2s2f0K~&QR>kWn!P!FH9 z=jwzXQ!y1ISOUwIGf@&CYk)*j4lO<70|xVHP;93GXqCPv{N;1`wH^xA^x)fenyrv$ z+J}+yfNZ~=X4D2+qd8+C8*DGIS6yEt&uP7AZS$h<2Mbv5yQt%;Utd|y!yClpW&dta z)o(@#v|8ub_Up#p#KtUPi(u_fgbB9&EqNld&9QQ>bg%#pxqiFsi1dKb_WQOE;`O|# zPKck*^4$^QyO)P77OR$IpG%LOj?_83UepJJWd z8C}Z!+Ui7Q9;=vzjb_gHe-wKrwk9y3{|-Nyy%~9@zy7WRBS&sl$Qi4 z%rYjIiZ#(12U0?!*d%&J-qD^wNNmd1ua2H*0`G;n%jx^Z8ae7cj1NG__EYcptxa04 z!htHfF;ICOV;y4C2KJ?bpwg(!5W6FCsV858qWx8K^}Ap0fka827>&c|)vw{SfH&AVxn>2`eEV;y*v}TViu+Y3av_^X6b8Xf+Vqdt*Jz zY`gi}l6bdhLzzMck5ZCZjNFfb4fKx@93hjzwd{FG%Ul&&-I>&fBNg|392v=j^^3>~ zs)2d8$I*PFaK&&BxR74iYS3>HB1O(+jD&Paf`7}0Suj{Wdv;m_>Bh1SC9Nu>6VRyV zFhPW+?Fua}M)gy&@C=bA zre6ldW-J+IKIiD(tNwMy{^i({ZknyLze z+`Y-&?Afo`=OwF!J~^c|`^+^?fDt=3n#;YlMs8`V<(;QsKC&Y@)gOSw*`w`L$~z=w zgzf33E*WsTVAZ`XJ{r|y->_Xh5HI-7$coa~ph=zyy`J9f_#ve#%N}AmBp-2sYE5LIb-BD zoUDi75sWuCgS;8~r?XY4hO0mb&Fc7{OXMlLo8d>tH{_7=6#cDl)Ao`@%eGFlz;!)O zJv8cF{kZ&j*OubnRn6bW0tLEt=Qo0|jR#)E<_3^gH!-{kW+rwY0i@}nhbnDnl2 zS@)m(3|ob_2xy-dGAk+@THnhi+m^|ho$a}GuW})_3`p(i-TEXQ5SaBy-U&lP}lS)YGggcusgaelZk zT2eXgF@{+6b3|^HUiDnQhkp6KH%iJm&7(B2<(Te|0Nk4KhRDJFo}ovH+s zJ67B#X$WnAj$!JTMSptn{>2G<8*D?U40+c?z@V;N>?xIzI8ic{&2IT_U!JRjM0c)I znor6D4}fh!XaU$Jxmcc4!Flkd-p>M#{jTkK7~{ZJ*?hP0W(F+34|FVt26X?(9fOA& zX_}pNeej~sA-TQX0pMhf4=!O2M&UuVk7INz33X_Dlp1;vAT&{te<^l#@CeZVxN{Pu5eM-jk-n+>og08n- z^{+c~U4U!BB7=Oqt8rpgYkj^3Zbw@_y?U?37Ywo~Fzj!4EFZiN3=jj~vJ$)m zvVN}ZvutPM5aUhdDsu|w+$grVl7X zTIF$L=Sqd|6@!C@=M<{uP61N_t`F^e?!@7-`=L|V<)p~6Qz!GOQe$?tDOtjb%xL!l zp#Ymi8$4oJ7z3M~vz^_Yj;Tn<@U5av+6Vc4+LX;omX@o8o;rn3_~I>=VH`pqek6Kl zM$9+_kc<=-MnUrQ#I2psdt2;XbyO$J+P$FnSS60cZE>&MG9?z=&Cz{Nwi1($B=qxw zOhDFR4{CaiTd|hVg@z-LHN8#v&cY=1X)8vDZ8_`wGJrbkzq)YG-bXX!vRyy-9eQ}f z=Od<`Z!c8oKWu?GEC}=-ncjOBjp<)-bWx^76HfUW9?HrihQ7Wc7Btz9PHGasGC0ce zUiN}bc`U8iNDgIhhLPc^*mK4-Frbq5iLo1oiCU=4=``h7vFalfdFs*^1{~J6VtqgK ze5K@87h?TUCYDkNS_x&%So4=Ecn$H1ex$T*ZxXHfh;MzVZQ>c^z}$Pd02IYS^l>ee zA0jQ)nZ?F~?DeEZHfW;_Y}4jO;pVDJ#Es|q-52b&+I$@cC>W|8{H!m&qrl%1@i+Og z!qdG~;A1q1*aCF`sGDhcpxV}Q>~_lsCdPyHu{^7^+CDCKB7Ax-PVu_l0ZFI1zX&Zy zih7Raz629of%?DPi=AOxzH7dCjyR)6srF_sY5&eAc#}SnPi+^?Q6fJfxpjFNpl=4T zf!%1anRLSU#^^iB>8yLZXOnkoLwXq6n~{f296c+X_9$GQAf$HK$XLfVQHnS&<_AXX zTC{yRVNXIHg<8UBu()n3)709C>_{OQ4E?olBql*UB_Wa4?|H}3>6xhVW?gqk+NcJ+ zd(2AF?W?#?*FDcF+Ohfi92JOQ|4BDUgQt8Ki_+^>+g{bifQ9OQD?yskebsC6wW)mA z!;_3}Cc)cj{XdlS&0?89Sh?ze4s4NLJA4@!h`3YJ(9|@CBPI6!l+)PK)oJCzV)=!i zW?fr&lwr?yl@*lpN_J=w(C4KlAwCNN**Qmr3nFG(BG$srfg;6?3e~1}OT%Vmd0CP%x)rn@65( z-6SbdF(DMMgYax$J-Y7tKOEYAL-=M$Z#6%fo50c4TOEoAlquG*4VXV)8!>IQtYu$?N3{AH-|5&D-Ro@M+U5tPT6BsC ziO0oj16MD(1btU_T@H3#Av=0mo#30pDUB6yh$Bh_G@d& z6>@m!i(Kj6asY5!SbLl9bH;w;5_EB#v}lm*fv^n!^3ah;6En!VH-`B`=+l*x(>kZl zjyw=FYqjP{-nqSmS94Xty*-nmVY^&jZ8=~5GSLw&{yZc?GQ-K>*8^$k11nb{?*z_B zrR#zN_FH(J)rNycLT(^WY0zEJ_eZuu-xS&QUaV})E>v$0mvy>(BRJ_oti;zTZR)N{+X*JArPn62M2+ z>YmHM)oKW@yi?OFw?Jz>cUAoV?NF}ec^olA9te+Wq4|0t2|J@(w47cfc5ox8?~-jr zb?or0WcZo%Ds<%{-;%dhz6aQN$k^Ba>$_XKJKZy^SEL<+rE?U|O{VcLj|(6yN&=bh zxFw$%%x)5yOk=xan>SKrN#q=3$2eFJz#ce?cmkLIe(3Xu?}sj3S|tMa<<3g%kQV{m z%Hf&gDS|$9o@NkNd1JXaR-3=l-MfW!ov%(A^!~i_X{sgC{FO$k0;A&>X!g1f^3AZ9 z9Q%6zZO7f!NVb_AaN5XkGk!I&<@0}3>Ha9e$7!BOt5LZr&#v(z=&o5m9c$G>g2~np z$Nd^o-~L_e4{nm(^=}g45~p_{wteAAtek!1!VO-PG!?yw`Q@zSp-|BJ)wGF z*Kbo)ZRiVucaIjIqrNF_703D6lu&C(uW2=27sMWy@Z5NEbj5r~wr^l&;vgQ-sy7lJ z91WbJ*1S5TYkS!$esXD`Ylx-Hn(gXT$uIdj91R^yeKw#JNZ3B*y9opqKPz4w*d{Jl zQ_WN1lO63!9BSeFTR#<6(cQM6| z&M4WEWJ^BB{{Hp503HVjRT>b2r(bWquX;p6o%9q0hzDC4EUtuZ&&Cf>Nur}Ca;OB| z2=aV#h^YklU416(?uPa;oxh?X=>prY>Pak4l&n<&O%ZmwCy45K=C*F%Fra#6$PTfv zdkt9Qq&r8oP5!AC8jNnemXBs{zj@!O_?aR1)o#ygH4E4P4@%{Ig6op^9`VxAy2JR* zZC7=0l@zn1nEqsX6>WAw9;hO*=%w^d5}*aqi9=9CyNnbnJROyXNIB}*(X8smVNWLd zr!v#Uk?EsTK5oQYqv=s{jz4nABs7r(2o{`?glKjI+0&)0fMR6! zE{{R1J%N5&sp<^sKvU0hK!4D%>da*@?~|Azx|io$=7=0d&Fi7uGcF zTB#3qbZhl9t?cHqf4X$KE-Gw`T@;dTn#Npbs~DSR)jwws54t}6D__zxJM`pedJMRU zR0hz!R<3x+jg=S_#9M*yrNOHYhZpJx?H39@zS-NqOk#E*+RgUuRjh;J+$YrRbBjq!Gd~k)G#1}5!*hd6z2GVnhFBq zIKBI=66Z9{Q6q_7ElfP*lN8M$H%8REXZVuh-`o4tW}*-3w`8_xg%;!zZ)X~jl9y{`^wZ-~F*iwO}!@gA)!k{uC$3JNzc4E!BPOsr1$8Ihq4i8SZ?eV-idQc<&%$Gg^RzdR4k_&w~2V zVU;*5nexih9pTG)I;Wf$=+Ncho8e%AdD~-x5?jI7H5tDun|8S^VVlOe|K)_>SXaQO zJI{U$XvO2SH8Sp3`;B~S;?+x$wteZttpaqt^CMYbXiwC^e)=+UlfI|mwGHE~XYhAc z-Ap)2lp_tWc46@EdyXJsR>Hgv-CEmv07;e7Kf-WSce()KGTwEG@ZHQ3<#B?oG}nhqslR z;yYV2{XX)PTcj5}dUzzhyS}Yo=4qSU@9STz0+Cbw^=Z&M+dF0pp^?mC73?uos=~0^ z>)fQ>u-Sxswr6Dhyx_aIw48w_rDoI2ZLR5Wr)@%%EoTMD)03&rBG46RF5oor*!Z~I zxjMQKNDH!$N9d)+`v-KY{BGO>bE;Z0N!EDheeE} zy+KbLuYdl*JGj`7vHNYUNrfGAbux8wG{FhLhbz&Uln~`fEXU>jH;bQGdn`8D`uIY` zNBAy_dnr-!DMvxk2_shNt^tA~&u5k^)fusQU_eMjFxk)=@8w8w`q_%`U(!UzG|I8st)R)W6 zGVAXk(%cq+MZC^4Q>1>)c*WGl?EQ^sHd&B<(DlJ0N|CDk>?cMgNN;#{woD}I^!3zq{*sbLir)jRg)F@pU=U2V;Jg=&plK z^bM8S?Pcsq?o5-%1`2xJrxXXAK{)^w{x|(O?do!8nS^Gk%q5WUu>jFxyF?Gj%s`$n#jygOU3tSn1Qh zDT)c|i@R3#j}P1fI$^k3dNl<<56QvyzDKW6=kooAhsbOLa9P}( zJ~Qyl%CT3gYOU$>M^0=*+hq7ol!wH{?o0@#zFYHJjdg7XI~LgbLtl-$Yo(XKm9JB= zM}A^Yq&|aVMsjuvDMVQFnbXzNE?E$ro`m4MGZlckoKzr7dSG7Eu7A|HFFr)59jG8B z0}0%RRdeU*FKo&!Rps5Z-xF%ge}$*Kb}!J)ZlD}iye0?jd{D-`sI+kR94bztM~2f< z$&E9aSMozq$#xbu3Rp0FvkvtOqd7gisec2&+elE@jMgILBLF$pHuDpL)D<+p8Ww>1 zsu!b`2={Vkz@#-AC4a;RY^KVPXP#ShYL01=o=8uT)dPfYuH>^UV-Z_09qw}wZ_NCx z?a*T}%^EeI=(G1_%ol@xxUVqq8R9eZh8Q5hiUJ<+6&w4Tll=frnmIAZib)Tg4@2GMlStHLg@&s+exj--6<9=qzS^Rs;{R6 z2b~nN=sMpsb>5ds#O=-W9UJsWqx|O9r;Mep?x+Rp5z&L&n+rA^psZEU%SrZ+bKC!G5Y(b7o|dc}VkY zH_I+g96-MjO$;cmr2Dn38b3iRHLlqZeH6MdNYBPXEi=&!CTXwdQ>m}Vu2QZNn?CGh zB&*@GwY)emG$o5d?XEM;~b-3vcY*3ac z2h@O=ihc-*@j7KX4u3Wp_O2A;0Txh`tUT5zKVUTi2_ZJ}NVX~e#mfWw#>?CQLQ?2` zgEycux~NQ%_FB4Q@p?wJtP?lB9PVZKQ~Y zhI!TlS)9F^{7`M)$2pi^S>O!n1X^}CVnB-Y-WV}JwEKyjdpJVY?3bF8tz_Ri7M3e) zNw{q!gRrN#+hWH0kgJ~fqdTs1IV@`wzQ=dtbk~9czATpnnS@(ITOclCnYa}j@D<$V zAtlr6)HIGL`*>One4P%=D5Up19Nc7K@8$<+4Jp}{eOrhWZkD9lTB$u{^ZgsiV|Bb~ zy8(L%ny2`HrY9#iw_OYcpXtfWfHFhbJgY|1QY-tZ7}CTY=1Uu#v-cd10Dah>?03+` zx;}9c(h2#NE2HkvFPld8!A%ekVo$w^05*m>*gJu?+noPV1JVmGR?$(3!`Sun!G4gJ z4g@N5D45ka(CVE`zr95Cc!Kn`7}<4rPqhUt1TOJl#JPqYWk2d3w#0nL>vP1-45Y)s z-c|q75t*4Gl6YMPgZy5X1QngHgYLVmoN+MYT<;5pRmn zCLk3RZtxO+N{(WeA`OP5p>0L;wct?Uv_=!gR}hf7-66q|bhu@dj-$9t?^mqut!^ir zDK!QlQ5=u{CNNOo4yW!{rFOBRDhAjl{WL)IIM31u0HD+|uVe`i7q_I`{l@b6*f-Kf z1SG){ffzcT#n{Jio7!e^*fHQ9#%8Rnes#$1K)L7zoU5-k8HT9EAN1M}UDvJzdHjl` zWLo-WtWKQbO6HK>4`LbJZ;i`0b|au|cBMV#1~_T}6lV8Hs|5ZUT_$P&;4{nKGkrWB zB6F*NCn%J^Eo~fdu;tko9Bz^(vTaHbzk(}Yw-hltMIQ7k_pJBpAEJ0uiu`ql!uj8F_7R7;TeK;oaoIHQ<2bkLU#yc0k)liL#A z+JwE)&3X^Bfjr~Pwze8u+D~EH0o2~j$F^6V*$bp?wUD46U+_`3R2f#$-kDyDQu#GE zh%UTfL201;7w4(ncBm>Wg_jJ7tH;=jfF)@XXd4!)C5O#wtIVIohR20fT$2C|MDm=n}r{){$+?;5juwfZBSCs%I+neAOsXvmX#P% z`?-f>>D<;!HQ^vqI-hU_^56rHA{}4&1oreKt2vwg4iU%#cd`A5>y zE_>7-%EoJ!(4}Z*SI&M=N8fRqzQU6wbF>H{g?zS$#Oz%Rc=B0@ygXW#(RTwn=Xgz< z&OvrMZs=BfAMd6cjD8 zR!ynp;zSd>l`3NSWr#!jDm}T}=K1J-gijEGKe#gQ z4Z?WGo=^#{#c}$T*VM9t72y=%nxz3WJ7u_?d6axU0_4L0R;yXIP8Gzg+za5L z`#9gNUualXy!8Q>_p*iHdxSdb9MoxiADv%ZB@Q822S!mc!=OceJ8zcF>{K2^GOOK| zb-`nSNL#*lk^_^8QF=lkNG(7&h7ZhQNbq*VJWC25UrCa`orvWc_?_>v46M?)$#Lh*Q?er|!^VV+Fuxi$IK*Kj%D~ z>lpwz<*W_R0kcW^O%cC0gb+7Tu1$%`b^iXeXs;XDZQirHYw#1mem4J=+hu0A>mL;1 z)!5KzHLb+uVg;!pS?8TzRjjW+QCoj7Skw89e*sYLh8Y}Xn#|UJU_%^E({P0<#6j9l zJ{fdOf}^-j<_Ulgn71Rv-L+hQ{mslyjJR*>jdGSKXjX>f*^JvW+6k~qOz+OJwDj{O zyg~MnV!_tV7|Y}_PKT^U3{LDU++AHv_IocqO~G&y_^!%#*(3d30Ob!^Al&d)y^b7) z31f=htCMO5DgeNkx5GZ&2mA(55<=ZYk!0pXmuRv`$(|7JDO!fb+z%f)P_;}+W_N;p zl5i{u#WNOYGpii}f@FE6HqA{AmMyDdy-nIRUR8=CLID``+1Q9xwBZ{fwl|$F+py7_eSs^5TG9D6AWEf@4+UmNn=RP~nYzx8)a4Ec zcwW|NE+60c^^K8xW`)NeuXruPrbS|cYY)|R?h>b7=%qv4lIL(LuaoDcuYAG`S!61= z!ccljN`{QKV75BYx^A)h-BDBH0t~WTILn_AwZ=?5ymHd4L(dL!X!d+(9!1o(@0M;Tp+l=ZPYoL(3vn@bLG%L${yhEe2GFH>?_hDW-iqB)*LeVUJ zZUe~TeKg~c5^4fApI0!sckubXA-2!mqk z2VAS~i&iE#BDASp0PJOF{Q=);As<4T<8z&~%K4idq>*sOb7stt;0IN7S0sbSeOqO2 zojke1lH+Rc9n!L!KHB*`^BKtGB(hKqqWqIvgJ}&1tJ^&BN(;!LNDo_=d=V zkyqLrb6ovV5sMeXH;T{}oox4XTiyiIH)O~%z7}F0Cw80X7{j-#9NqrXG8j|}9Pt&5 z{}I6OPcOnZfk-G=L#^lm6ahjBKmHdf`qXM5kf%B!wlQhdsuhkpdt4>1|W>YDex>sgO1-}+u09QPqPxV9oJ9tk+WJTy>GQ5CCOkh zC#COZ5whvNf-7dATxGg1JhJ@ByNXrG88?|P93D6tZQJ2v{d8|R$;nE4Oa927JNOk5 zhyQ+KyyotGqgIK%$Fq5FHG63kX0l0ggLukb4zqGvhL@So7cyEYK(=ctjJVoQM*G&| zvG$G7WRBiUUkA+_En;?%S7l<1;yB)T1}nVH&&t|f?mU26zb;tJzv^Q~bhcvKNm?nL ztHMwk1t-gUyV2>8UK;#zyB*_TI!x_WX_ji3%Q`C*e}8=fMrR61Z}z2GK+JfWf>O3tAx>p^@%Fg6 zjEWv)^QJ*!wwq5%xt(x^Slu^zwCowWOx^(<-omeS{reR@*6H)&OP}LTz>V%CODJi* zslU$NB;P~Hh0VrQ{gcO}*TF!s)CsqC);Fr}=AKgjbmrA{$+B41l@Tn_Hd)>E7};QnwM;w5 z#6?$s!LV>av)c3}ihsBRxb#KHP)u2g$;jzgZaN>|$=ihNJkF6aUF0cf=o^ckVA1>;Z$sxwCmRVfGrHM`g+jdoM>6?Akk@0l4WWc2=)ZxW6R`O8e za>BLeX1!iFz(OG}YLTvo{V>otzP(VnVgv++=MEn|Yr@a~N6h=aJVTG7bD=)r^0{GZHHO`KdFRt;`p+t}=?dt+ORXud zeQ!}jo{y|nu?G%IofB8->Ne@o(jTV5>V1$@r+$F;#v;91t&XMW?6#PyDc(! zl0M^r(#86~B<$J6ZPtxI;8i%7Cd<@0iFy~uFq^seh);`;1gH82;J(u_L*7_sU1&gP zarHK(J+Dub%oR<=5NAmxTb5bkuXxT*MMHdG_Fc>F9MJTu&mTy9CF@OySpyc*e5tz9j5Aa ziDfv>^3by{CU#jK+RuBoE@+^d$3~BTB^5YLZ!wIWKGgJ|abd%diY|KT#r3WIvju`2Ob zCy-cZ+Pdp&_x>XN31X_nufM`MVw+*zAfqdTF{^(UGDxTggpB=^m=b>F*Mca;IR2aG z{1=LA=W?cuiv_uzs*r3p#_eqaJs^Nt3v-;{3?Pi>@njkPN1}@ZsE(UL&8d+8SRnr6 zn}811??uI|#hc(ql5YZiunl+qK&rc;l4(QX0642MoysyTA9Y`DG4>#s28}CmUzxZZ zUwpdmm`~fMcbncGVmW{>U*F>&0e6J9@W0nnnxnB=|L%w-K&SxNg^80400D2P*v7&N zBuPAh{9%_CVEFKG+~QNI*A>|EK;P-=O|Ex3T-Fww{F1kx*#)S4-`V1km?Hn3bwLPu z3*5ss8iVui?|}<=(8EL`+yVHvq#uCayxTqam6!EzalO?#cpx`8g|E4Gd0!N&tkgjh z*$WU-cVMQSdTxPoOMRin7@mf{Ezs_ zzrOj!0@wem_`k!g09Mw2RnC7;N%&Xg{C%hScYMIVdd|Ok&c7iv{`V*3AO+i$B|{ig z5+H^boMzJ^me9_WH6ipj3($Yk3x!G%N+XDCyndn~GKYLK;#G3L9Wyt^AB!zN#xee1Tgv}_u>4ipkg^|?`HG{nrxlW4 z#~-Yk4wuFb#$UhweH;Dxm2d?LcIMi|6R+Zx-y@J5PTYsL?ilO8Dir_udjF^}0Wm+Q zFNES^*doMw0Jm$C<-fnhe|~toKUWL=FI*ijXbk@s3jlbt|F!%4tL(q+$^WYF|2o+I z|Em+f64>j?2Wgi{yq(7r%^T0T(RyI6BW>>K8=w(-5sQOAUTFsc{nSY<7p)_$Uhg`< z*lqtcSpD4I0z4i;lSysT2S5`&c&H|dkMgU_yI3mYEC#@WaKGP4{!E_m>L$X73-^wl zKGXE>=GQ+@KIsB^N-O$*u !HNHommYQ86+vB}0MaBILlneES$xk_e<0PRg?99xJ z(P%Ord8~eb)l%Enw1A8(|z)o3eVZYMYRu4NtllckR-ejV5buaOAV=XmFHf z=33|G2y+2wxKmMovA!`TuFZP6L3$ze!ee|{+QDpvT%kqmr>ZKgfLgsvXN5++{Na2l zH3m)MxXQX3wx7@+oYQ3HphuN$Vmw)dc>g^sT3l3U^WCJs@q~A^Lt&jlsewC{PKVf! zQ4wZC9mg;ekb}WGZ~M(i8*)Zg&(D#hk+A1D6fu?8$oJU1K5eZbiHyF+gHKj zmtO4T`om^lxhE$UBc^>JEQP&fubbb!d4>F? zT)i`Xj=>iI>j)64!!SML=6vQP0g%42PEh9N4@QtO2=k65WCT)R_Y|y<`-)%7s7D_L zs+I8fb~PH2b!m9Iz~C+x*xcuCuzseTGhe-wK`fZ51Tt zTG52~iV}*G>$oV8+Hf~P;tgfnhv|sv`P?HKY?gWekG?ACykIP?c?hQ?|7F-=U0rlV z-08y*Gn8$|LsZ98ub*qhyOZ?c*pO<;!;Y9w+`>AZ50(@$)*5VySlJz%qURZlS`IKo z;Yry(o7%f?hM*e_kvqj&N!(daB{(VLT<=m1tW!&mrT-VNOl-?fH~4os7*i}tz}y}iRS#Od67hm-)7SYJLVszn(4Ru?J1Qw zGAT65)Y}hMEJudxJ6M#uO%3!3#-pE(KbpMqvx8ct?;AGa^LZp-_8xD+WM~vUfWTmk zq$E=(jY#lS!Rj0OeW7L3(fI*?oVBG|M_yo z>PPxypu;!kZ#;_snO(=Z$TRAae~)9@zBIX^?5gpIol{xj@QlC0P?AdJvr|2C)=G0M zTFe3YJ(*ELa3i>ER7RS$D)kzxIrWzsWemI(sB4y`)hX9wS>a7e?5_0DZY{4^{?~x2yP~OeN|&l<^D7%{1vaB+_m7c;ZWa*NYKJ*(6ixS+)x-x}=1dBcl80 z4^mo^f^i+ZUL)|l!U5-lGMRMR+|9{~vSY39HQbW-P8`WnAH+_vdX2F$?~cnq0J!fo z;gfXbvBqDcrO33aFImi*d`rc`j`SNmlGopHK#vEuq067bp1Z5{fq?m@PrB;`+L|mk zfdy;uOu;}?3;jWZ1P z8j}P9DYLR`J)Y0O5`(<4q|ge9BxQSY$XvzQbCNQgwZ#b;YRjcD4(#y`*RT;Oqp+$- z4j0$+Z(;(0O!D;AHtm~Qt#|45cL<{xqit`RE22_KAc#mlUL~_asi$F>4j;tgR|l1# zp{&0ZV+NCcB@}0w{Jyg=&ff|smq=gse>PEs;LivJcX_1%%LV^&JNBZ2Rnu^r(mXX7 zTq~$*>@l{T?V5GcEkh-NsGr6B}E)%hZMO*{s4&mQ2v;r1oY9N-rmAqL$rt= z*k4Wva16xumUL~x&_Ani|4y(1Q7m^#Qoo7X^RkY`LQfDpJ#+(O}is5;OXtsqnt5~g$ht3 z0B#CpI!4_?m|0*|_VOdu5O%F6clNJm1XL=2or?bYwv#R}eux1M<-=pLvi(^BD^rQ5 z!5mgJJi9xLHt9_Wps)mk-Era`fQ-*>Mt9+jOeT*kcXKStb7k({tq)DltvMf>{>lmL zE(3Vbd0dBv7@%5dYHYV*#8(>EyQja9722&yj<>KZ)$c3Eb*`)(a8=Ve$}LTtwsb7i zJCD9gyIr)>Z7NqSCzSrU7{_YKK16w8JkXH#GE~7CQDBp0F;i$Lc`#jAnMkj@tZwpj zKh9**=fphem3DK}tx#e|w8wA0+yP+EjJ=MK8!Ii8M>Bf-+Ug9zT#97Rx=haZUh0n! ziBk2>Iz`&91*7RQVQ7%Y7vy6GU2G%*PI2;QPDzyt4SE0ymf&D4na0L#DgM+pFSMvw zF9Mc}kSOt*XW++XF;~)bfh?2cy!%L$Kt7qA#qG-d;B5qnu3J>1;DzLn5iPPm-gK{? zCD9}$CGYZAvK{!EVWqQGQAlSSF0<*913Mz8Ywx`YZGaPLUup?Or@?AV$lKPGbU07F zJm9q!XIPYe0&yI~px04)cl7JarDR0ycJZi_V@FZ?cCFz9U2*zw{}?0p=C2o12+u|Z zc{T@M4_;@=cl=IqQ4fgpYYY_h_L&cI=yFN|^5K+h8}I$U?%Vg$_p%j5{zJX=?tWSA z?-6pE(;C+1N=bgOD+%Dw_`Iw*rrNBE**zt(yS^JqrX{K(imwas)a*RfoVSM?;8R)~Rz>iP`B*t6ff13q83F zaz^o>@W=q&L_Y;4V<~z-ZS3xFc?fyb|pl=r`?F zdsrow=cSad_If0TK4o#K=iA!7H1|Qxt&YtAC_leB$9Z$VBi~2NI3s$ke!c7Bo67SR zr}0>9^m0R)qAWrHG&zyL7Q4f-tpZ|exa037b{b*%-n6q87ycS+05E{=q^ZV zRHgxK&$|XYz=0{Uog>x4uxUnYTGpuvyXFD1pj0PuUO6wz9jRLoCRi%bD~iULT2VplV)Mp4OM&7~xvrs8IsmR^PyY&AfgJVH|(k zrdP@zK&c}i%uDu0>(Dn%C$iYRm`i4vO=V)f;=@9wS}#%>+&+{l$Pc4VNAG>Ya(+&$ z$7V`XZ@8SGtw0@9x3(qfijSSWrr7_ZR z>#ZxU8T%=k&GZHV9>kJSUKX7uQ`Yw5h*RgCa<{kc5lQ)_?RqH5oS|8Y4vKR$KS;49 zJBR(M(Ie*YCit3o*@Utg>#0%3Gu!N=0obW?8RK%c$MB)*Y1z|TBT>^dkc^|j^&C82 zm=v|kg-<~~a3j=BWK1&Eq*yYtjhx{UHh=i$An=y&Jfewb1ht`e3|#C$!)IMKDN0KM z{giAI>I&}3Gt}@7bVYV1JB&3uQ`MS#Z9XG%pD63NBXA^J5Mmnb!m)f$`M?}%`^x$Z z>dw*JT9V?YUnUI%)|>JYUjAAe&0DA?Q!oSbq%aa^cGyhkDZjhP@`i|uZ28H|Rbs(d z=*iY5q-+v1>^nsNhUf8)Zmw%%aOXGIK`feAYDP8U z4gBv2!lqLVGIJwuM@dI$ePJQjzMk(6iZfRB@BLOj?!SD`p(`}1H5+BC=yndeM;`6S zt!{O=QmLeMWu}XEFq!;}E*k$14$FqFvr@bQDnXI9Mjmma% z{LA^>_s4Sn z%BVvfurvp?AsI*BD(#nE=Iu*`o6;@S)@)aIcM6zp7uluu4&X83p9-iy*(W0GW27|) z)bh>R-MNEFAb8#-Pj6z(x1shW^K@PABtGZyeDRg$!}>A!YbX~Bzj!X+cRvE=`|0_$ zhZ~47+x_=%`%2ni`!4^jkAp4nm?mk$#)sDG`BwqLoOPnVxtw=17m9`3N{$f2Z95cN zw-T9@B`yjZYIPE&O*l!>OXv6kwcW!m9%-4!7cUzimJhfGcca3)!j;9)c+CnqmNi`% zJ80nEwkYoXp5ASz>qlV;+MlNp;ny(h)m{c2gR9p)oX^Sd9E$|KZbU!7GgQ5%3VU`N z?!zDa)Hu}qg1G2eq?6E`_6kkR2PRXqV;JId7oGYF?YCb~WeW{D*0w_}k*suDDN>Wt5%~)V_n~*rKZQ-l|9TN ziNe&KzsSpbe)>Xj0%UZAkHw{v-)e(7LfgM0slD7kAf(^+zG7^R)y;^C9c5sn0sCVVEzS z+3UXTF}sp@2^C*O-WF1R?0xn2xxnl3G(xFRfvVCG78Z@=P%&(ROl4P1T43m+?MK z;;zSkaJ%`nUE>volz)T;{ zqx>@jHoa?&pa~Bt=0n0YQx10Mv)9a#|03kFd(tOX9NPzkeT&p+rO}VFYyJkD+5xvU z@o1IG7Mh~`_=`?w-h+KY|3|SkIVPzs`=1;rK>g|j5_>^E~+qoc|K`Gx4Zo03KjOYb|13JGD z$Ua7!cz4T*O#5iERu@7tAo}C{D{CW7VT!)!Xzs0MGa=B8uR}Wx3^ocE`KCeoyo|MH z3ma8)1^O7QVxVUoO7!Q;BPPb$*xYZ01afQ)ch3gZqE@p4N{-o#OSfgE&k5pu)LqJR z&@v|ZXExDyx0WkR1;Po3EV+}0O$i(pIJc*oosCSLFB>t9ZDPA$pYyGMFH6eeB*M;J z81p>R>9pxQBfI}*vl5@J-Dc>!yMp>mD|{}Y{)`3SEH>3CkoYes_(ol$ZJf|+bB9FZ0R|GzqZ1$<1V}J>d~vT zdbUuq5>#~G*-5eN)Ed-h01_m?T~4B`&J%+Y&V%2|`uU@ZD=weH#S_|C2vUXD059(T znW~F|$@UgmWrgY&m=PVa?*8H^J*+%V-!yH5jara2b$B7zc`pYLbKW`jn~rV8vnS|tvQ^`@zs?1&X=k$vDO&T^c8f9S7LCtRn@bi>6aNn z%20Z-`C>9n5V6=+NDB>jc_Q_`sfym!+Bc8zA$z|$zuSteB?imWndP$(1HWc@lLa9t zNTaF5{k)0p<#cd>#e7*d*;xAC$^77iy$v4x%w#cRv!aI1l|V`43$C9UY71H7 z_lK}Lh2$XVk1F%`Axz#E5NgJ_hr^negWjAdPi0Lb5@@JOnmOCsFd5o|VNp$sZMwr2 zSWGlAVN}Yd+^F+4*$89IRiBJ7+xnH+_bs$S^3{dOST^vXuRbH-a&LYdWkNc$f9AGz zYJU7_@nnEqhSwR5hPk;|M1*OWcY zRV&=KrXW5R?On)E@B2zH^AG#a>t2$P86sdNI=zc#DS`AZgk6;5pWk%|ezP=M>~?%( z*Mg)~-wd1q%SQ_{d`r2~dfH8Is|l18Aq>ox!82ia_i46+gfXl$0^*6YeY8u}Lz=7A zTez$oPoDzoH_&M2a!dyct_{|ooc4hi7$t$GjOh3sZmBnT7+AaAowo#{keW!3kb_WQx$!`25J$yU7p%b zU}|s)5R~<7D6sVcly zKymnbRCsdKvE(YFFLDfZim_ig85CAYR6tI?`jIEE5GDqNa+CCwi~c;epnD+8Ld5+3 zI*`coMfmB{A%9}yt;jKq&vJYB?sJYD z&u>+%J!!5iRau0zTTL?bb=P{snNv|yW(3qO&Xwh=eo@5{(k5oic4zM~F6sHck-;bC$tv z<0i_OC5tx=Q8!K-Q}D?Wq#TR0*b|@fl!68{UBJ;D&-F3QMR8v}Es_m$Q|Y>C+*c3S zv7J*C?++O-4MDiP^Oe%YKYQ7qGxukEJ>rtws3mJs-y!adorpMU?AP#az{FqZo zUMQ8Y0%19AK${Qy*xo_%j%zGi>S!gaI#~Ak(bWG6Y95`8Jf$OTRen}5dp9%*9OGnG z2G?%=9Xg1=z9*4k_0Elk;fMy-hE8v(KO;=Z{T)|g4dzAzF`hlIbN&Z_=V+``nfO&p z*&+NjOX_6m>wpAEQ~63HPFfJRkq$#4up2F1vE z2zO9KUYMeG`2$1RQkgpKcqH3|GPv9p%PiT{2wUaM$zoBhAR}iYyHl)u!FnFf)V{LH zpb>X$`MuA9I4#$hBZ)N?Z??N!Ge<0$qdzOT``8Kyr*8z|^QKtu2&NjoKh<*rSjdO2 zhoY!5+=&&7I*Gu5_P~f7iIFl@%97G@$-;K*uV2KS-e3|EZoF!$VSyR_nu;Fh&vC?l zI-~V=nBk85sazKsybOIakCv=&fzXU-&T{cA_oe@$ALL0qPS1~bs8+O@F|ZMlID#Qz zLHFrg2plVD)2%R#fJvnhX4#*4|2gm5?QBPPV@pj@5dT}1;AYEN0h*Z2XM@WSIxuy? zca8XI8I%{+GFSTEEu;#w-ZfRf$5txOrm;S!bBu93glKV`i)mFB$HNSV#cS27b^ogn zmA?3Qt0g_OC^PW^UNt5DZIfDW^ib^g#kRj0LaI(mEedCxws)n+y_budRYUZ*e3w%$ z%r+2XmUdy^6l}dCmtGDxeY>c~aif_xM*_0$cq6wEe`<1yW~>04rw5;QF^k%{{zIZ7 zIv*(>YEf_j)5#YBYAEj4)0ob{e5eV~lX3AqRZ52FRx<4A=;;sInlm zbDXNZJxg!vL6nhch2P`Jm^X;3Z|tPu{YH5cRYPL3(NEuxTG~)-#?vdL)&}=|f-@|1 z__X{pBE<#;t@6fV?~jpU^w-IY|GbOBEK&iF2-kQ1M+M)>8c>amapkA+c+P;PGJNm% z6l9+>(MoPFX!CgFF`Uk<`5*NRzjS7>Nn6lPcGGH=Hpj^k+)?{2w61INKQ}4Ym>vaSIL2_8w9D7=mqW1?DM12Yw`&& zp^ZJ?x_?#^j>;^KaG| zH7Rn~rHj2M_#SqC{3^{5l7+g9mdvQNI_w-R|*?vvad(Kz(0KIeW56$D3;i7L7f`0@0}*vw($dNAmr>NZYaRIg4YNm3f0(bgwAt~y#N*CY z7I=g1&Ueu1e#}@J53hor7qE)*c+&2{)pIX*G91zgd~4hYi-M|+*3Nwd&cug|RPGl$ z@fpjuHKS5rw?hDkjf{ zgZ9Gq5c@KfqiOU)Wm<5#RICKu25h;0YtYf$cwgJCC|dXYMYR2ghVF_)mAz)n60u`ab!F5SJ z&WPlhm|=d*jd3*F_-N1No${o;0Co>osm+(4B=N%X8PVPAU zkc60~nX%V7D0DRI1UFHe*e)AvMQQs&`hDxFe$~2CHCiohX-$vqgAQ_tc>Gk#uwRv@ zeg}ygrs560`YMj`#w8$|?{ zxAB0MaK{u=2IVL9o;>Mj;dAwg!K+VM$}~raq2DlS#RbVbUg~Ac62Mnb0PaJU-n%TQs|J75b#rez6j8atO-9etK2;;D_YRAjA!^AX26=QFVD*^OW_K)Lp_)J2Dv>y@& z{fg;HBS}*f;=i>sV7r#b>%LNIl!TLdzW>B3M5Qpr@xhWK6~=XgtJE|luS-jYE-1%$-6_>lV|wxOu72L9xVt9}2s z#suj3xq3S%xg29zeaEHfEyDe;Ix>YsI7XUf*S!S^R)v=}1A&-LgzN6Lke!2IT`39r zEcRaMJm@&;h~D8(UrKijH<#b|d-Bktzw0bDWZ37oP?P1=whN)RQgieB)^D$$H^6gt zUW_f2G=dlUh8?T1tR3!b1R>~kP0E2lUeQJWIM2dhYHT)>O-;5drI0cf$Sy+^Zi^{> zLpvp$)Q*U7?QI1LnuJ5$_x#kiamJB6lPS8CL_-ZzO$_gcMjMi=U8pMbQP2|hx`u@0 zRm+&3J5w$_`+4&tMO%%)??ia%l|X(T$gOxo^`f3qO~VXslo;ZAUqA=$(r5w03R4TI zZ2C2)D_xK<8B~3M6@rrC#&X;kTxEjyQ8%CIEj{UrC`G#~^z54B_ zF-kjxN^5cwbguz6UjJ#aVv65BIkOfDoWJ+{5W7-Dv+?p%VltYZi)rFXf$4wTmtk4P z!oy(&bdDWxc}RNeosV~Q7$Lhq33Gzq@bb`o9hSG6yokI|%@3M+H%%dbG_+amJb%cN zMv)jGS2ge?NcFX;b;sV;2fC79dB8{ulECrM@fgTh7r>22w|EiCz>`40(>2S#iSx>6%~NbyYjL4(2s zZB?uDTCeqdr*)5h80jMOuC7E0bRqg4I$RD6uG!oW#$cn}inXu^@DZBnDx;lr`&9ds z)cb{b)z_WgU8IOpcWv=d=5OJcPGtW6G@a}xNp^XVRnf4iMN#^BnXIIHhgq%5BBGFZ z7&DKDZkw=E#2F3!xCU>e4GKItB{-?@Q|jl9$Vr4j2aJt>fdS&7ZcD727^SE$eZ{If z(?g7B4eH#|A#XQ#2m5?!90TUJ+uKt{o3oCs8MpY<)JHod{_-6p{jMe&dk2mYvajR; zHPB!R;3QQRPU;8vn4CJ7-W81R%BpWjXCH6nu4$Kkfq!C1Y-dO&e0Zf|$e~N6qQQ8| zDAdxFR8?NPk7SszN3Vs6=-@NAZrNgVDblMu`Qs!?;E2xAL*+q^p$`g%it;-j?vp<@ zH1+3zhOVK2%A+vxt4^i8YwRqaDTDs1&w_K&?^%nYPcmAlzW1c#-N!+PNKIksRA|3c z6FHY!MGDjti+{hba!}x$mcJ3oo>RUp{>DVJo|X?n=& zo&lT%c4P^S&%1@Yz5>&|7a5AHKH6G1@9B}b%~>4Wj0By(V5TeRxKR3<_iEoexj9I@ z>t@|YC*oo?p^|nxlh1LTNelT$?$8^Odkg5K{aiiNRSC@SVNt51fkScU4aH#o8zD>U zZ|?&LPL|n7kpk7=rPMrWQd7SzuvN(GCH=8OTOh!)mM7OsL5;wjPj-~u_|*EJ-VpGk z_{`+YlgltL1o*Kb?e|j@CVk>@=%fBci!`}4JW<)OH=Qpo-Msy_#p|G~$zN@Ek{VUz zd}Lei?Qr^l#zB!%SYT4MMuE`1?XBh7WtdbNEK*IcLnykhik}WjGTfYC<7kR@KsS^2 zV?N1sg&Sn&N0P@_hIR1;!#6*ORCvLO!jxV*0I||Mt9u$)Jjk zGR3F^PE%$zm~$86R}w_))NulWMgj!i2cklUl!AN3ktU+BXVw^MB03DtzlMKmNqji0 zo@KTsR+%XA7nGCr@0Cq_*mbH+SI3|HvEiAko$cOC;Q=9v{FS&+fLg>(w4@gK(WgV$1auiySE?L>yknw8wA zfus_`El$}Dec}A|?09@p?nd8Q{K+IQ7H|r)v4%Gx8?#WUbwZ-RTsZvL-IUPlUh_|$ z{?5qC6{P&1Nk;eh3z%RCO+f<;?2%TmsKPF7a!4TQ>nvJpEW`BSM_7Rhoe$??`0Pc zo$SL&!@(%`4wsX*mBu(e^qE*$WhhRpgAy?9;m}^-R&wT#l*Qp#qRNGZq=$X(u}*7b z>EJb#t9e`BmP6}HZ)Gx6ocE`s_5^YHPg^k@_Sbvub|d{RoBpCFy1W$2R|;W5*(v1K z1#(X9x~CSHg1J9RM$&yF6O#57#sB;jG&|}|Fkg{0%%JN#O|GNgO z&zGu{DV*Ah^j;+c3$hR^IN3rKw~<~$O$KXYQvoxgC>zH3twih8xn9|e70D*3;EFGB z5lh8T2`Curh-)m z0%(f4wV~7`qMfHJw`(HrFEUw1@q?XDC-a3_`WvNYagWOuq!)JCZTuF*x}jV zZYD$BX@`^U(P=rfKgNUU%Bj?ptEvv|BR&Ox>kfo{OO^Vo{=p<7H!WSKy# zc-xr(hZNU}xVEwI0nvMjFb0~a`AU_14b@g6E!!XsJwI4*NTP9g`DYxsqpxLkIn_4S z@9^2EKlGEuXBEh%{5*}t#4m&NcumXkdR{osJ&lvoNSlxm;9#MF4@v1NN`n;T;0h#D zmQUidyC^bIs`jvs?{PRdl`QOCfkCfU7SI7L1ViM;ocW}mn*K6_^%I5$jDF1SLxtU z%=wj&x2h}Azd)p8_2pL>tM=rk=q|JuI>rsT4rSi_@hcO?)4{1 z$!?B(T1}+}#ad-Q?U&yvrs?Uz;GHGgIVqnk+6=^0@q33;}1m@gY{7^)B0%}N1o901J8PNr` zI;Aym(9mE9(aoNlfXQYq8W7Zr_D1PfM=S13+nY4l$#*|zq4?IU`VZSW$4;lPFsF@C zh=wM)_a;Xhpc0HwYYr4BEH{|5@QtTLY3$RUbx;s_`*`Y z$r@BFN=rLJ#_$sX4@qF~Z6SjCu9eEFZxRMwSbT)o0FFDqoRuQz;pMs|@jM(smBS@p zreagwP;TC;RD`$L@AnHnQmtaF{A`orsp9sKb;Z~+p%xwPhZ8UI;Y~|#pFbA|+yII0 z+VU~C-I$%E-NSBm;2}4|9tC6e(`(_{cXw2=^dp(H-UK#e1%aNg6m%9Jj}AP)JlgSg z>n$v%+FdnOO^^L}aTQBcHxFvHtM)u^u;2WuQ|L{-?e=hFy9SoNFSFEY@k40n0+!6V$DX!nky-(SlfHy} zZMSPLf2P{c#l~8;_tQ*O^R^`;QWuT>^Ih-WqzDXF&Uw1ttDwkge+sI#u5YAgtt2Kd z)Q;?2p=FStL>zSK;^9P2=~XK|y#C`PBtq-x2Tb~P6g}aj!_OZskeOaX;8)x1gSRFt z&b+>KFbSgj&Ki0ZxYJlFOMEy;?>KWq6}2OY<@|0h%tov?1x0>cgM08p+;9(NP~Qh6 zQD^M@eo%;ERh0v|qrpreKo5>R^?XnF$ozbd{{T9wSBm?Sx&F6DnUAFJ14q%aG*A-} zlIdJ4*#>@)KmYXR60OgiefEQM^1a}ShQur4Cs(dY&32_1%cgP-uxcjysf%)^hFmzn zn%97+-pdS*kuxZRUzcCh88iE24F1UV4wI@%a#h(2q^^)CjK62@dDWp6)B?V?@IuPW z@AruLJ%2y?2-aY8Ip+F5?7dZ3U0V_@9NZze1qtpNAUFgF65KVoI|R4j?iSpFYjE92 z2<{S`jk^R34tH_7Pxt9_yHDpn{15;4H7~H)Ypp4(X3eUaqegwEjne~mhN7=omJaA= z77t2cEo^7EaQXBqCj+6KDUP@_KJLkNM2?Ggjrwf5ljbCbuh4w^-kDAjk&U^ zP)TR$+9CQWhzpLyoA(FMI|{aExw1l9()GRb^(F5z<~i&ggK_(sOh@qt1>^?KxT{;R zY=&?ohvFUQWDa$8U3tEtY`fS?NpDE_rZw^md-Un_>avHkn`&Fr@$N%LA>7zKH{QA* zwwz3^@tGOXJfGq5r@c=sZP+Uoj@49&VNG7`v^dMXUwx&aR_8!F>@*QD3Ys|!a^8v1 zII9y(;6|&n5keE3owbjX7o4lr_a>g>PtdQ*rn}`^ZU%GcOsv}g9(Huf57svk#kSc@ zrwFDCjEhcRqCfdz5Fsj`;gn5H-2CkQ2K^3ki?u~}tCB^#RKE6jV9octP7w0!LD8n! z(X#}dnAXB-X!|PCjkIIj3AGwry_q~ci1c=h61K^7k~60}bKT(haPG&P#o(?$tmt(I zjflgUb?;{XxEZ7^TUGrF#Y813H%sq_&XTn0{S!`LV{@Sff|*UcS-fBl%qj}IvkksM zJ4d~{Z$7)KQO%+aYw!!p@Dou(kBwXk+)*gLuQ)Mz6k|8S449Ouax@iU^{?vQAr-J@ zsIq(|F=T;xs22CRQelbTsC^^-3)&-!&F8 zVch7Y1aS+dkIJA@pHJDR)>s4YN25lr_L&Oa7T@sa$KHx@U)D_~7QspQ)d9z^Y%^aZ za4U7K1Wh(ryk_ml7^JEhS*CK4p~+m5gsd;g&&Doo*a@S6LnGoUBdAcy^BZj_(Bwuk zI^{|L`(77dtk3CU9TDBd(yM732MTTn@2CI12$aNm(5&?g8hXPGk?|C^aj@cP-2%cZ zCF~!XQFuSlLj;9*9|WB7Bh(&l^d8P-8XQG`S|Xgy{1kw?(VvkaKzLbVHprB(Vc^$a z#?WLijMJt2E=N!BD!ocC&#--_i;I+sIA{RqJ2Ac zkVVdVJ_0|&T2tCa0!HlY61^xKhwB*`=_2@>TYOxON@iJC1wc}d&7|Wzja|)e?DW2> zi{N{Uni@rC7lwLtC{v7{`M#XLR$6M%yVOCuufk}&vexfg>=8NodwDnt2Mn~=_K$Hw z1a{poVpN0V?oV-VR+HOz4rf}f57wqUb$4!gLihZ7%L3LuWLEaR(P6qyC6POcPFcJ* zR>TnttT{AcvgF&;BIZhVVdJBHsJBpk2QUXU_Y(U(D@q;m&Dc&zoSoKJ5 z)4m0)H>KljK4_=j5rbiNyk!@Mi+(rtW|r;m9HkN6OC4zi&dbpXuZ- zU%4cvb-?S4U0H2072ICk)#^;S`Y=G)Z=+8;kamVaK2q6U$wCvWr{WAgLTf4aRK=DQ z{esTMO3(kQ#D_UW2BfLOmtp?AhfY=z$#T50Ss)t$iGsg{@3XNzP)+5cY|X7>s;)A( z!V}eqjUpW^Y{2JnwrA9MceZuUq;W7}cYd5*|$_*6!B0@>}2Mb941hmq^`HO zO8OL&tm-q>_+S;h&yVnSp+D=khL^h39A-N({4G6>^EPFj9StWR*&?^IXVI7M1v+)k zgpAtNvJHG6@4E7(-|N3`9aOSz9r0$_ms5YUGuZ~^ky;6YT#l)S`tVkm%hHLhwP&R9Ffv_<)$SINuXV}=a zaiMjmP)K1Ty($5UvctHP6CZ~#n}~fS@&q_#X31JK6y0P4ZGZVPL#xv~RX?hzLdw=4 zX(e}hCR8*)DOj`aI-iqQ(eGxbz=)T^9az0YT+uv>{x$^7;LA)m8m#zrC|bJmOR9#qQp!gd{>@aXSJv z1wd2y-JGPQ(9RvmwT%m|c|i4*Ux$H0Ov0f-ClIz^X2*NWdMUyLaiQBt`g~DRL?CS8v=}D(|Wf9Z`kHJ$in%UVHf=O2`D%4 z<;ZY5per=8KfKf#$HMRrm{9x}0atThMXGo7s-N2hs$~RTf>T`0w)Pe$IgzOc z`Cl3CXuCqYl@+nCigsv z0bNU0j3l4V=a@nLU4f?)0L=BG6#yWMfqxp4H&hLf!dz4|yK4t|oDq&3ld@)d39zmf zNWp!X*EKE#_Pd6!7k5K52*zG*-e*ky`LW5jd{UPUMMM+5m=%{4c-Dn_eti~-&*3jb zbfb+_!-?;!1achZeqHLlnbKw9uMsOse7?EZO2q}0iG^w?+cLjmCRY+CXq(Xdt}rl7 zsPP?g5=D=Tf{^q^nNGV-OJHA!vUkH{Oq8;O!V({JcqBJb1ZIa<{)cakMsu)xG>c@# znB(d>xqAmxn*}uv~n&E_dr}en>u4HuN=_$5iV1c6+ouIZs?B=}p<%EupidI&J`45f%+Q zKe(-J5vAX@5%61_Jk52fVUuGz>Lsz(lN9;dbWKOJ6BO#eWg2XRKQSG*YpV+Kq*nc! zE_BY$L-xbhSqX<`e=PiPdC}F1dEGGN zaao1P-foUsOMDTxQNNFK7gP)(MgH8U35c88n6=~AOK`7QIvNa<2icyD)V!m|Q-wO< z$yddZk0N$di|}Q8H{NxCAO!7v78GD9YDEINe0V6^Jtakp`7KA+r;l5wT1PkqPNy2f!dw75uhN#HGeOQVS%BOa5-SRWbhgN{;!*O_P!K7`cnOd*S z`qm@O@|`a|b!E#TC#>)lvBL&SMVL}-2ig!JH&H2WF^vr%lce@S zSFP1U3OjB*?%Q#abqmTRdg3IJLZU>+%w5J^i=&T2cf}H> zbef@YY(k=C0|tYq^>fTk#l7!kG+bUc!x{9!FCQxSgOP7R2Lb!M5)r0oxFRJ$)`rlM z49>!;yZ4^c8x7sG1yhdFM5Jp+#2F8avU;Vek3znxDg?95Ubamq*cjcL}+LbDIIS*f2{)pY;wC}RhS(3;Lok|_o z5E8nrCuQJ?dwsS!WecJDW;FA{+fz(X!D>SR%XuXZ>AU6|#*#Yp*1W#kr-S~%dD`s~ z6~-9d?W&v_6kqB z<9V<2yoRvyEW!BV7S$Nc?DJlYJM7C4d6+SwoZI3x#RMBmEB@WuOaX_dfI#4CB9=|!{@!%t5gDmyMr zJ+Zi!>)o?9b_n5>@54w~F7APH3}mOZ`3dF@mOkiBTDKpVDgrI5Ut@kc{if|T29F~~ zC3D+<8lX8KW@!v%d^_G|Vl5+0JV6UC5(zyoUwm1H!vr;w)n1k|a&I~JRtNo=KZSpg zY<6Y4j*t@QDuvj~=96&&h@;1Oj$=4MrOzL(K^@Ny>Pop5pBorw z&fAA^Tx0hlU=K87mBowzc_K>__J|!6A#^`52}6|2H`u6Aksu$fX3bNyBdRj1KQvjW zWYeXb8Mqn1L#ZUmQ)sl)zC3mv*$eP1VSvo%GAAY+VCmG>C+O1Rps;R$#M+#_6nxC@ z4XneTR%S;{U|vt%2;QB_AJl<5xe0Z->Z!A=u*EzsPqdodP_*hek(Uiv;Vo7yPRNX$ z6J*GZXZ?OXK^~}2ZY-t7Usy4OdOpF3Wl8T7$|h3r@on?;QCsg1>l=sixNk^6If5(4 za(&&S4%@qG6|IemP1{D0zn*|cosJ({hb#iRf6X4n^b~&kY)@Ulx=3~tDtxWL>CXvZ z;aCu@%Xu9h-hV1_8aDR7)=oGs4LmKzD*Xu)MOk-Ap>9p>2JXBnFKYbYe=E}BzGj;f zLBw>jsnyl8La~K?1gdrNSMhNlFckh$q7^n*o!7qI($M`kgTn8R4hN{gPU*?-h99LHC+349^Jy0B5 zbG!VA=W7)ow3}sJ$irAv#zlKNZ5#IxFH&cn-GjdnXdRCB-V}xSyI|hq(pt3W2K9rp zd@zx!v5IxbKS+hiUPdsyPJFl1Qi%(cX6(w%F8q+NaN>q(ZfGA_^5J7397icWV;pqN z;TCQDRy9=&XIg`?Zy_Jd?P~`3lJ6XQ(-kxcBjIMM?iMP{^x7(7*T#XO!=_bxOdK+$ zhiv(gn>#>0Qe7C%IZNYdb=>rRJ-%NhxQci|@fN1az=#@HX#PNuDFQ5ju$+3RJ9 z4@V?bHij4|D&8_gG;pp@b`A>G&AsIXN&5p#r#|7Kyq_@dEPg`bi#=ulu-6-BhlP%n zv6TiYg&Bc7lqA}zTV-Ajc(r?{l9RIfaO@FV`1cL{b#dr$29?@*zP1ruG`K`nRgjYv z)*@diNS50Vc`pekdPH{~3+}S-@liuEiqd;7)pa62`lb#hW8NjDjn*vKPF6=ru$Owf z4vFiIuafsnm*Rzx08SJ?DkqSEYB(zwk>L=w>Hp+m>6{m3C~cG)vCbg2R<=9Jz(O1B zN@PHHZ~#d;ek5E9)E5Tb8@4P)r`wJQplp@S+sB8-l%UJwP;t%XCR9u2MeQPg$z$(x zN@0Xv2Kf)J$LlGtHqWw#gX8YJLk*Y$p{7`?LUIrn%aLEO38UnSh|A*r^lzIy+=WAy z1aY_%Xvj3@F$gUudB_K_P;6~S@x=Nj&XpMWx#c_1iS2H5OM1|&_em{jRy311<;=e| zo5(K7YN8yLN#T)vZF*#&X{zWc!hLtTzaCImb00N>@ZDtvC0URER=cTs_c8!MzVR&1 zkBtDzB?cLP!lHs4;d&yANc+A&rImjLyBWwymlfI3j+z0 zh@ySHoHvQ>0dd!a$DSpyfgctYY!NQr22;aL0vTxg^hWTw`3Ymla;(=HZq`Y&&Re0xPr)AdD!u z(!;G{61<_`bWiJ}-Tiy6=}Ox$2e*QqXhR4roL4KhGd{tP?nj+PEv>5%;e!_3JdPtI zHeL?rh1q=}CvSYf#*NRFHb>hZ6kO`8J=gIt<(7p2#XcY59N~(%tVH+ zOhDd@R(gDUUmu4#BgCh1!wgL%Bbw*Z;g(H- zJ=^%Tds|7iyrx5R$IYlFB>XXl;sQH-oEL>+RgOKRxasbe!EvW4~iJ;#V0> z)Rqgv@^a7K6@#N9t6EdAg60=@_SLpTKjE=G1E_6z$v^iYe+_RNPtTTfO?$I7G?dihKhN$&v`J$tCvWZ zfCaV4BvulUGGQJ@a{4|ds@BhMTA;2pxscWNGHLGoDvd{m!pUPxc-WMSZ2i`?UYV_0dDh-6@lAkei=jA)nK5$V$GaHOU?EP1eeSXq{=!DjqMMH;reyv*97IW+&gb+d`VdHd)j5;w zBDHLvv(-a!$p;D!-&{jLEzR4r_HjAxRmGs(tP_Y~saanIW$p;1>q#OfdHrCLx!%A& z5x{+`T+T4Y+3f>|mPM-GD)sU~pAG5=R#`YD{6>yWx#S3DkM0P0%CU9nXfY?HlTEQ* zm_+`zJ~CjTsnrh*VI5d~6SXjSK$&?do$~E!N~M( z@$*k^NPO$I-d*lJp30h*!hVdN_M{R4kR*59Ivxod z((hIK_@LgZdi!;QB>{u&vz&O^;#!-LIp=tI`Pn4UK-Xlj#&S=ptQ z=GI52>dpS3=v&b-->=sWfvM0x_7zYv0@#}H$Iqt55g|v$Ib0xMB|`g ziN_Gm0Ee>(-s0iL8Y9NIMl2RLv zm>+}YRmJ&Kgkf)&`+zeWOQg3(U}P}Ce6%Zw%)^=G&dW9!&+~R1M4u< zpMAZJ5P;ZV*T=5vbwqQIFMEmFgFoerI1ow99F=2&Qfkhm1(ft?n$l^44uiux8_MLb zdD({1Ri4P;Auh_6jMwVLa~rG-N%V$AKH8flehkk$AHS_~7Y zOqNA;_kwdd_8SO6BoQtGcDi2pOFszr*dPu+QoebKJU|wUUTjv37oK?UV+0-6jJAB7 z$yK^dGSEEtEYJl=zn7>70&x^`0-7LJs+AO>Maewp(rtDOgT?0BXd7)rD;WHWjA}hK zTju@~X=n>&MiHQ*yXH4aG(+qmYQvjJU_CJMp0j1%+yW`l2G4rT*5vq)205u(++D0I zH4g1~jwg2o$GIlKxu7N9vEF!)W0(~7AodJTv&lY5on?Xx-zeCBSd1ESD{(qedaHKK zeyQ0jnp=H=`6UlQzsf)ef}C{bAcQWmavEIeW}66v-g#OZ4O`u%3`&`hTago#S3Wgt z|Cfn(I){Ph!ELAM^*o}eM_#Y&>xE;X?Z`LQRka~c`4T+`EO5z-AIZH#TTRA|4ecBOv_{2t5J>P>BBt-X-e0OR6r-K5EG4M= zrgE0a{zxPa$CWMG|Tg`LYuoDipZw@Qy|hoAs2PYv2oFjr>A>GZy1gurt%OQCAZ4Qm)%kbdly;NeUlM z1Q_d03V)14e_2EXpV(V>uwX+A96e4560uIEl?=cScm5jnc|?60*L{ax-JB;a(m`V& zo#!n5=!8d>r*&1Ci4&tIxC-O0r^B=;A1~{NDr9*}Ya8lXzk_m}rb*$88dV0=J*qPA zPfIgyj%^TLyh^==;ITZ-i(A$s%{(c5uOSRXV?3lcKEjFAJauEYXz*Ogw>4rUSGx&A~PJ0ridRbp5 zLa;?UW42rBxIWdYOnP2*_PjEXK=YeZp%*rF? z$>7pG%;m5u$LNB_Qq{bzu1e!bY~_3kx?gJ${vY4kE$XQl?EQY@iom>Yj64Pwyq448i)Iu=@Qc4(r#Q z8E~*nhZ{hSe_i5(Nh!AT$+R7^?B%|GTP~6+GnF@skP-nt8CBkw351D8&>&yFG*TE! z)tJ958P#4nG`&mA`%$JNDZ=42<%VH6ZNXU-oB~N}BdW^q&PefZQjd}(s8g^)K$I}t z(_jq-$B#?~2Y$+R&pGwgcSQJ3Jko@jVhSwLAp=hQsP!!b-GE{y+bUaX=S6qKK!UR~ zUJ5GA6-_BbDv3RHb^Y09a($Jg2mogWEB_-?3qh4!HjU*|7_L)F7+3Gt+ZmMv7?Mc$ z&K1Y^k-^nfKF8u_J)d9Z^4Xh~^?a*es^RR7zjc=0v@g`XxEF3R!J!Gcw>@|^h|Llb zF5J+c)tX!G+)WCS&Z{VLNvDY6BVQ`hU`K?h&s-&ifC*~4 zak-Z82T}X2s_nad4H^-Z$!6EAArp{2e@%7B5Y$~(8jO^}N^ zn%I3FU2NZ3+~4gp!8=$@;=GJkyZ*jOhvv0l`A7b5FIx2CgM})#s6yRB=c+iJ_^!G+f0 zz&MaJCqBS~ICm7R|B3$2cY0SYLdbd4CxRwgLo1kM_6^WXypoh37 zpX_B~)nqxs$5cjL{Fz-%`7&WabXBt9QK8J}exug*Wlc$^lEQ=eMAt`1+T?7Byk^Gk zZnNPMrg!P5@A>ZMBl&a6Lyn1#U(Mgq2#!aco3Ki<%-byggz_IZIjduckZT}hmgF>_sj!I*HLFLDP%{d(`;dO^M?G46-!wuUi6*?SD!r! zxX$TuVD&1WG)T)&RxNmIsrP^7wNZJ@mVUHaq}L~jt{$Wh20#IJF3%JVPaWj_YeX`wnB zczM_}sm840&UvoZzR}lOj=r?NU;ps_6Ur#Ls`e%>(V|DU6txo>EJBy<4(e((q`f{< z{pUX2Vhk8sC91q)vro=T^@dqnCS>ZW%IP-n0w6Sa@8Ib4F=>S@?Cai@@By2%@BFoH z3pV2&a^$LuDjyuVHWD5(ybmV6sq;__%@Ol@r|Jo?+8!MwP}2pMtF|&T_GsxP`ilIf#Xo4!sD}#1L}<;UcMHmRsEc%@L8!!h`8arY^0a}NbrL+FIvWT zfH4f_8#e6nCct|Y?$Ldpk9(}_Jit8h)087p1r)D@r>?)LKU947hL*gc;1fh3v&s*q z0~|2@a`KC=DF)TY1r*nk?cxPACvUNajevf1WK?h?I`zOuLujAAPgq|sk1d-U-&!3w zS*vh@5{tAoIFuT;PGyD%GioD+`~16&r;G!&?o`aTlJe%&_y?wXP9==4s2ptDqPQ5{(w%m%ChYp!0~<`h)q*? z2@Prqj!MrpwS7qc5_NJBB4E`a12I6G;A6(yu>ooal7v@~a5tF8Onvswxle{OpWD2! zMM%aeVs}vLiP*KWB{~6!3F(&`3{y8_-*hpm1184>g7yNY*X!pcfXm4MeR|j02D^5x zrR(8=a)m2MR~GdG%bHh$RzKl${<0uo2d&jJ;P_ z@|*jDxS`DMEW$FIh8)xgnKBfl{drxl(<6sL|~PWo|GylW8O^G9L9Yp%K?GOMzKIj*zRm^ z@D|tXy%#qaT%T5X-yyVM^^gDqvV&JytlM{iPo^i?>;KC3MKFB8Pr+q3<%a>(y+j0N zu1rvK=RjQqZvX7t&f90WMe1dKH^@hPNFmPcP3d9_`U@josTh7b24=@Eo~t&qJmBNv z7DoEKVg0(BhNPCVYkAA_N&CQ+GVsS$qpLo`VFIT~MIC>@W~o^Y-p0Eut^{MqOsJkl zmhXwIhVJ9kkrR8Qx^sd1{AV1xlB^HIeLJ5&F^*tjN_+rvJK}btKeF33JeLRyqiC>6 z&mjzMCu{Z=D2sk6mRg3TuwpNTzA9iw_&tKcH=LU`E`dpd24N$nrUM%A;u?A3)oJ4v ziCjip+^8`+vS%=tg7oglM*aOCe;WeuEh#!e zN7>B)$HGo<*5kw?e}5VB&cdAiih9qw?msU2dz*1^z5p*IfY}2Wzf>LjXUp_Cq>=?9 zz5V5dz@*v{-aKARI-zYP!D^O;c@xAe2YA6}G;&}d`8p;4U z8`}+^Y4(Dc9y;T0Ec%@_=$9)NfF);-21~Z%eY!u3})Zc8YQWvz#oQPW9LllHW0(Bt{=* zVg_9jy)4jb9>9^R7)fVLBQxJek)k$&_2(CtLoMI#ES7pZ+)`_Cs5)QoMMA_)ERxLJ zJF!VWLt~kQoWL%wIzahwgzmMJnu``oM`pak{!Q)oX$K?{+ZSubKn^UW>e9{i6*`W_ z_o{q}$T6vTYCo#?TJMzNxeI%yLFM~AfM$|%lyIZP;9q6$Uj*?VAA~R{?bz9PLboDn zzCF!yX$}>W4~Pfoy$d%)8LS>`GpTc7-RtaU2;d?PW5*g{Vj^|B}sr+uown6WXi7W5e_7Q}2B@#PxQ= zB42HWXVnpws#m<0!Mk-hZIJ|#|2}d5ZH&)hfyIFV+vkb!w>u=XAqz*fvlA`rcT$Sf zN->Q4gV|8Q)$xJv2;yfHZaMb7sG!V?2m9jdaeQ^<^CqSzPzDAqI7v{ z5=H?EUp8c$aYyKX^-1uQfc{3H)R6_Unt#*h(7t^Vd1R8%S`?BPqk-(dII@^?_#bfx zpD(3fivxWQ_|(zln7p%dqBO6P>tLLp&Rwl|SFTkH5Ub9E90ivm!t>JSYUG3A2%9!3 zj!gKZ68dooLIgWHyZ_!f4J+$ABYiP6vOS4 zfjQmIH2@HLVOX^1jn0IRN3)e*U|h8GKJ{6Sce#lXC^#232Cg@iYqun#5(@}7tl266 zhIFy?E?ELEU7D7*qYz!ZSX_v5nYg)0_w9drt^ZVFe_JchfVB|-h5{t&hzAnjT*?E& zl9NZbf9DLG7_5xWlhJb7XFx<0L#QF^f8uI90Ekn_{D~FjTtQkMds86Vd}SNkx+D?^}~nD*i4qS%d^I^UQ0>Bl?E*UAm5 zVqYJ+N4-CzQ4LiqlL?E`B%hPqv3lJfk_4TVIRjRAIc@%@M2YN(ICgQI!vyqWpVcB! zKM7vv!@~E>ZQ|_@psqtUz)|{q#N29GD(Z&`oFxQhdU->COXt~l1|ff3ivVcm)}*i3 zOj92&`0$rbxw@=k19TSD9oB^YT6z3)7tqtr9p?K@NL=tCR3IRwuo4H7vm38omnat3 z%C1fAp1m^Lf%YOv5_`WhC)rrrFK0UPKHKe0sKG<-^!!P?noX`?@`K1Qf!gHH{qIHD zS;3KjhE!}~6GPE=*sk0p+@R{55C^q#U)*n&HjDu|EEo5u#^K|W8OM{_`!8@*1q-}5 zJXSb~ zS%Id;F$qc+hthSGemm{MWiuzEJ9H-l?q%Owsv}CIRSA$q+{FBG2Snv>>|0Q3#Nw1` zmFC1Y?S6GS?bLolr`?>K4Fgs!DZ*66`^+Fz_artGDQf?7u(|F-iLFSi{(L~^Q=&d& znM6+Oo88Y?fPxZJht$XplzH%EdSd=n6#G0iVX5B0#;B2$O#w+6Um@2pJsD4^R{6dV z;PD;Mv6!w60-+#LuTyyy9;-2^r3(;TK#CQ}(sUt(^C_2lqFs1gh|E`8N8=oa+ip#k z-e--CewqIW6MyICINoA=LH0QZ5z9dN+DO`G07%3qh89cu&bS8;ld6(H4Y0c>(6)Ia z6Z$Y+i>q06K6uz(=4eh28YsnAUt;B~i6M;v6peNFSzGrq86-AuVNS)DqGErr1DJ-O z`;+4~QOb9smikxaTBVRLnI}|YUshMIo5WJYVM}81wf6t&4)+1_VE(OmC*jjtEQij1 z!DckZo+L%VRRMmb-ukiHUztq7jeq$|Ajo4w9oc%e^&Qyudr>n8WuFj8n3=iU>=8_J z9*{X~$TV0rY_TKpKl{vgX+)?KDjJk8Nhk^6H`*8Tb+?$QX$oEAX5jb^3q<`Kqlg3z zUti2~T-IjOIQoRor;iOggP2A`_q6c}978i>!2t9PvB7|Lg zgHv~;C@fl&-t0aR=1h||9EM2bEgKmH*n?>e zjI|y04iYT^OPQ0uQ6tadrrs^jCi2vMEQg%Q7$2IL&q}$`e7d%Pc&0U0K!?CFMxR8A zx#Y8y@uFJvZ`obHv=cR^A^eb@U%ETLUIu){G5D!sjn1TQU;kd@Uc?Rd=JyI{UEjhJ z45?)YWdPU(N1fH0gG!B&n_n6s{!0O-Oq{#j>Ynl3FN1yvYX@^aqHptoyx{$XEfkt} zMuVx6XaYyVv7d!A2HdsJV6jZHYsriO9d)j^t!B0{i(hNCY2sHMlJSC@*zh%$4rw&N z>KPg~P;pGmW58z%h9JM~f;pTV$NVxUkwO-@DnZdw&-!D9=vNm$DMFRCkEEZ^6L~B> zf{;e8#LK)36zpz*w|`2*>5cb1_x`76I?)A+W!EpaqkTfbPXFidI@quGOy#fIZ?zk`Mvf00J)aH}|xJm&=LtOy8crD0+WQ>>n7dVySav z4Uj!G)%h-@0%jV)1dpwv3G0gwvrX>P%NFpm;XhWE^8v!%-BMbS-PoTpjFoJc4aVo{ zGhF5)a^Wbw%(_3L=jtrEkavrYe3jqP2T2GV6yd0nk!wUxzsoid#8Yz1#_OAn~RHC5;VxA$`js@8tr z=V{3dlZ9Fc8y{S0D6{Y|3!gw6sNR?`wG0b7#E5K1QVG$ByZOyfl^dy z%~k3cAs&P@-Btg^=lO%Hwj%veXW{kPYTlDV--JHh>enZ&GMs_<3S#C>986|uY|v=Y zhbz}!cd&;Ni?o_!YobgM%ouSI6=u$KC_zd{6F-^98- zRreXN6MyC`-`m@MXmcQEd|xjNwgn)NpmLi8S{2cy{NI4X!4}j<1!rD3Ls?qwwR?M1 z`9JQJ01o~8*#i=s@%~RWH=qVW%5Yp3QJo*#nqNVSzAdT7rS*L}3*fVD=E=Lj(%rss zyoJ}E|8ZmZvvyrPd~$Yee4wr#0EJ^m5%W?+)4lo3%RPPR7Im_*A3PaJXzz~4xn{eR z`|aI~Qsu+(_z9*da_>~e+Y7q=761bLnQ`Ig&h3ST%0$C-WY}i7(y)c`MK)lBe->m& zpffP6oSdn_1@?K&odQ~)oBsDUR(}Ia%1wgq5-Z-f9XYEG71zA-8K>iKbw$sc5N{|X z8H?6mFCU-W8A?G4VmYwF{Vo*)-oyzb1q=j*dmbh#$1SD;paKBF#7B?pWL*+*z|`dm zNOQ3hyyU;bK=E-QaPquCNd-tp9kHIEeZM#zLeE3=5dU`ZigY#rs50M57u-2$f=*_W z-%xL}A)GE%iLFLbdj)WT=K63RWj|HCK=>V81*Ds63?$J?DR9?dXipU>wz#_uq;t0s z7|kA?9Ekk3AtKLQIdvkIP%Li#9dBg*ZI98NxNzty#hvdqn;4uN`BhxjVgSF2jSYx5 zn2#({Dwn!*(<#zq$;&rM?sFaI)&by|IIEd@U;Xy<#?c@r`pLKj95v1mM;?Cm08Nfk zF&HFKg^0#S0Hd~^6^Rh`l92N-H$^E}K{j41eS|1=d}5REqV^W$=Hq;WwWt`Z|p%>mcA)t+ORLc_NMK z$DsD_k#D2!{XP@o(>Q*@=6NpY)m)nZlnQby8ErS8EEs3VzH2%sIn<^Z>u?XtsI^dy z*K8yGi;N8-0CP;<-!VOt(J7N34Ms%D3CBL~ z3hvqu5yr;$?4e%vNl}8j*%5Z zIhn{vluLowF=Taf9bfSl=ZBCYj&`vUuCq*{rs?}cY56_k z)y;6``5{{PZn&*?P3;TC5?A3py2X{Lk|T#DL)k*5+XBEta38^3l?0yY~EMGkEQ zDT(|uKMbk8SIb!>9-9P*i(c}L-}`0eYD|CbHor*uh0PwQ@M81!Ep>a^8m|GQFewm= z6#m#J$pZ181Nr|!oxr0#1+LIcK?51$q?;MZ#v`mxi{U?9{hz)Oq5-0Nk~BpQssFEc z0tO=#LKRs*(bd@N!ThV93s;X}et3*Wh8uIBxYd zicjf3I5;|}X1^QtV(EYSVNMwmxNLPq{X^Znl$SuMMUx^$>OcJN&sFvQP!;^SKTvkC zdqpO%|1U23Lv?H+6L_G)AAZSH=nD^WQx2U)y7Ssw|1T{3`X|6c7B@EB`h=qadI^DLGOZzc^fEpr9d!KUXBxFO)`q zYVUv3|Cg`qf7Ac_!uWT>N&5e#^v8Jn8piS7!#Pqw+A{%*CLOHDg!X?I_5O3|`VM+K z1~^}e_vrP{CD4Hi!QcEi{$5P<&sRSC=fixJgjUp}APYNG975qg%K>#a&ztOl%BKHz z(0>pZA!NiC@!AdyrVn^l+%j)TEurBl`Uy-&{Qh#*etSR+3Ut&K9bKG%#i^AYz1bU1 z?3Kw_8C&GxH-G5YKYREue}zxHlu*a)1s|=`P}qLC(fa4I{e#G@c%k)KbTh` z8)iosoxFX*&mf|OY({Yi|LZt`;dIA#u=Z2(WT248c8|+!Dzd2nvn0Kl@9+z=TZZ$R zs%cXl^w1W?EJ4tB!xzxVm+iKLpqyo$by0}7%4N`HLuZ~=Miu_YZA|CP%j zpn>j_O8&3=|KVl)Z}$IE>i#D@|3PkkTYLW#p8pBYKa}wQ@Aba#BI~kuYBaD5r@!)D zYPsxF(~V9H49C&3F4C=x(zd^*R4kJ3jQ>t0``^6^BT>>`-;K|P_{AR$pUSu^Dd-(9 zw>hlKxJVhSsg7fR23R8mO}Li>rnKWuN5WB&z3AdKZ#mj z0(G{nh2zbe{fdFwpL-HC?~)ke8Mm}0B^QR+#(9pvcT>1|%0#A^()p=5>qm;FA( z5!koa?qD6=;7Mb+AqSJnf0VoKR&RoCbH5lKEy7F`9)C1b79;wvX3R(Nk3tw|aD?zi zppH}QQlse-4t==A| zc`~cZz{2xBQt)Lu4etf+4=ne=#>qMq{1xqQ!*H3CC}%()b{+7q#|x|7CUG&{nm|s3Mz>K!BNuJgH{laS3SOoQZ4T}&-yIC2kJwJX z$}P^Rz8A+l$7J4}{o>jbH`^9&Zeku$qsx>HdqGa6;D+LUH15+EnogtML)UO92o!RezPP%$@9uAbCtXcDlQo zWS*$Ew%ql6>j7pv_)Eq8_XSDH2w0|{#loxMjjB6fwp~u7)y}~0x%xl)`Wua;U%wpX zGacar3&rt!{2Zuke_&!a9gdAm6L1<$ zzQ4U36jUk*TC7ZYluco3awtHyQm(hcFV?Jc=sVS_w@N(r!DAjwVoY}0=j==B7A;oH zkDJc4n8x_*ec$}uz0Y4}>j4VRXym|6xP@M&f(Cmax#o0xM2qxnixB`@ZTEM?C_#hkFQVdU|D*n7{YCbw{FRFNVoNDXy6SwPTxG9!xwF!j zOk)a%BQ`0v&$#v+>&MlKpajHIhPCca)Zb5Se=r7{vcAmiu zsT3H7b;A-2J0VV(oNK$+|3Yt8MWEoa^miuh?q$=uH&?K^TE zjy&AK)7_hwWy11DmhX?PXTcU_pz#vIeg_;hn^%%U{`_8(0Dj(Y9U=f3x_#vIRfoVl z;gXacvKpSdbav`f8-3PnaX?v<;sjW=P&ANJ72n(_8-0>1#ld8TaF}PsaT}jTL-5jAWHb1QPwE&hTo7iPA z;gxQ(RhXEIOX4Co+=Bo9#tqSAA>(TUNA6q5hc46!`?qgXvARuF_9vD7Ig9wMdXsDydx^g%O0Mzf7x+?X_avD56DLsltsLk6{gbd=|oz%83$weuWy zQhq()=R{mY$k{jN=1M|xp5g3tiNzzPjp6nR|FbBasGEZYFP13tx)h+JgyBZa*c}ZU z^LF=e>j86Gj&X`cm_?tl)Ra@*XDxk6SC+BG}tBWc}n8 zEYQh9slGcW95V@Ncexc$CDzk;by6+!6C_;bA8$^TJ=?+51VbLnfK>XY!+4EM%&Db)5O7t+QPD97a#onIy0eKIc?VBT2S9>&uO z-EHVg61G%7$N^vcm0HSc~Fp2Tv$Tp4WkOuLUP1LnsGND$vyazRL67*Oj$GQ=@t0 z2OS6=dL~orurV5E*u0Lbf7vVMGM$@kJ#V2v7+}oyz^fN(GcB)XR;BXi1PsAFD%?6# z!J>|#>=I^62ogcEILqn0fmsaLauhIVs;;-q!C3IomG(D70BQpc4pHDn7lSScR?~+~ z-EPY9_?JXu`KrVNyhA`wK*Yn)3M7m3&Y;W?rH{EdN<6XD)A-|!F@dfR56$9%XmFfD zEm_znv*vpw%;CwxhIvB<)je_ZRvP-P$F`%a@!_(rM-bUPi8#K50`7;?$~+b}m&CV6 zo^Z)1fRaY&EnLUTZ`KOTHF#W2&sh))#Dt~-p{TJ8T48Zi3MmP@VQTf_eWEGSnI7H4 zF%%wZ+J5@wJN6y4~>7P4~q+52X35I9%7dS!G*EoK^_&PW;a+PJg z$}QQpK0vQ$$yYVw+-oZ@9KlWh{+cR(@)Hs1)D0m zW5N}_v>e9Q^BO(ZUL3=o#C%{laW_v4T<)QF8-K5t+1N8#p_S0&SGHa(>MHKF`?=gj zl@DI1)J2w^fm@~~G9@a8D)jo>yK)m=%_}(W5KDxKWD%}Yl|KX5rGSe+ZD-wgV`I$n zy7=BZk#nF-dkJ_QZ)`}1irlf#z-8W$l0@ckexXsCDO+Jb*Qq3}P!hK+Lu^cd_eS9@ z?JlxKLK2h5&)ff;DQmdtT2e)!v-&#p4|ypzGcP0nCvhsB%L!NXHI5cY{MXW}(hGG` zuQ6-ZN?i%#3E3HO0iPDhQcn!myK!CRq4sl!_RrNps?NI|?D4I9J-g47+mmfg9{OkZ zl^Iz$8PZkLdH=PqNteF($QMw%(7oE@|)p>EOAWYf0|wjUG*Gx|GIT z0>6H??|9Fhe_puD4j+NAX1+9FPS+Es6pmdf@L8kvJ~U3%s;s~EIgjVKRX z8tzir)q}{JR%Q(a1ekaita0W%i(!}9tmB8)`tdNl)&%bouP~|R347}!aNkm&<=s@x z^K(;TqW;H?d?C#22CynO_gFk)EW?1DFdl6ZXX%|r+HmG_>`#t2aAJu*$2?H0g2sZq zd1^Xu`nKnrh3=wl7z~rbfgt0Q{AzUbm$#jQSRPyzD7-L{02)DbDb#N zZ4`3CcE^$iVLS;}Mc26&M0Nz3giNZ{2Vb6rcVWN8Ds~Ule|w~Io&)9v?A2na9N8W| zf2+Ec(KcPt2XfPy_-jb2{G$YPn5p9 z#&h2O$%$9ns+YxC>F0{EsdDTTR2|4X#O1go2O1ym6 zuD+qvJlv!`=bK<u0jIgutikLZ>yG1?6N&S! zCToW$@m-u6@V^+u6pdCteK|9{L6M^PJxP!~K`WHFGz0Y-FZB=l%F5=*V>C+dJIbKy zy}VD4$Y7Z$li3OrQapR8a9?N}s-8VEQ8v|=Y8&jPH-{r|gubVYkN=nQ>M}n78$Dz@ zxUE24QDRv*qyW5wso)nR$kRe*n9oo1oT)z3Dp|`s5GBD=g=F zVO8r$_PsXHXZT9F8x_9k1&JSq!Bub1*3b2#x07E}TrnH#dn=2c_s7BAJp!9t46c)uv zU=&Ber z2v~2{e(^mLwXMWm--@BqJ>5GtU2cYCC*79uCTGiGW=<9~xh%tkZp56~Q81jt z6?`OdW09>%$tNFZ$oS z#&5$d?&@dDO){BQT8-fQYy+RAS@|3~CWw030Dv84WozVFaR1pE0U+HWQV!=`kE2?$ z`7y`j*>VTZ6u}`?7OqIOW56@2!P9RjUM!?@?zu!V5m8Rk>UgS8pO; z>uiH}JINUNilWJWF9vcK<};6|B7QZk?b>*c3BxFEHZ~x1;df5ZqC_J8#@JI58~~HP zg{b9a*pBJG$Q!#5uDzSfO7prI+vf>Z(kRA;`2+bE$dGv}5}J2_YUr8VA3NLQgG7AA zFDAj;*Y8sMm4ht{NI=oluW&4u*T1!KWn8n^Vg{cETx`vEBARfp0kPGo zu#jBYu9G$Y=GDAHd3@N22}Z<^{@@|rN>lhtM%$vnT@XOfV9>%t<_Q6h(*(*2I?Z1Q z6@`DsjST1ZuW{1xlS#T6)u|6??ybn3^bid`Jvxqyzy!F(#vO;H%jQLb5uZu|4#}H0 z`*bcvskRXT1gIY{`{WYIiGOXHNzc!v$E^{<;PRx*s!>N&+t9z`GYxAYIaAVIb1vuQ zw9cg>eLNV>&_ps?YzKBP&nH)=2qlEqruT085LDen;&~5PwgsK2FX!r2f zD6FM9E93)sn%|})#lK`cB>;9OQ=3-jd`Gd{Oz3dpi6a#qUqRLpUgOY*^1G+Fq2Io3 zgqso|^^Yf?XDY_ZtS%xpejW+RlYEh~In(z8t9*2P~8MQ_QToMu*)C|T2 z4FObS!_N{O+2;mQAUHHJf6Oy~d<qe4ZsKZ(-?_P=!weldESL?wfIG7pkjo1n&)x74;kaqjEOsH7zp}Um5 z$?es4_IkX^wA=8WZF^hx&bSnI?fTAkYE>9H9s|>ub`=87eyseg<%hHjsYv8n%dV*f zx8aSuahS%CLx0@ITZKW#wJFM5CWG>hmgyzn`3+r0y59g$-CQTP#VX~QP(e@Gw(i5| zqTTOzt7k716`w6S>g`(A#rE^HvL~uA;$VwVEqQ2Qhf@1+BL$BMR2kZye*oZWmTxM3 zRTFOtXJ})(Ij~uK<#j{*N%hhe5?)*!*FuHz?07+uo9{!e>wJ1du_IXSXpuca&e(aN zwD+T=(lssqb!EFCmj0z2jorUB0dzetIAsJ@_|b^3ygu=lvt-Fyp?fKkZj-&G#%>OW zo05~^z`)D`5YGt%OyGUr*BYg@PCK&ZH9^VcQipsVItgNh{hEazRw_!|ON~lyG-L!5 z64VeKGK)nMwW2cSr6wir#Ia{O@0iu@xPN;xUy}b3!1U%_m)_B^4i?{4tJoTg=iAKq zag&XP2jzm!Mu~-Kt~(ZQeS9N!IBqtEldj`l`ahnll&G-Nqnn4`+de| zHS?%48E}tHkAGIG{it3r#pUPc@JDP6WB#&!qd@Yz;Y-7!iCx0mnvZqeGjG#P5w;aL zX>%D3oEjw$QI-Atk-gPE-2eL^WVJKw((2iG((EexhIpy6@viUo^aJx|@A_scT!BZX zi3w+1VCatkphiiT@riL?tW|4p*GdA02|C|CFcrE^^cfU-t8LYlTr~S>0DKW@Q7L_j zBycjk6{=N{A-O#7Bde1w=l|Ilt?f7j^5O7+R`&z$XGWyRkt006xIiWayRndmiRwj?`tElI=_QMn`Qqm zSH~X6Zd^rqod0*rLx(xvoOt5O=D(En|G8vgkrcq@O#ATqe;5C6zHZL{UHpI8rT@G0 z|0yv1Z`k>VsQkZS=O50M(*KXcPEQJ1nMoBrQRBaP@$O+?zgE;bj~K`RoGkb^hQA5Z zz%c~BR@zN`4hH`p-OuwYR}XgZNZpey4xJy-;2p;wue#qz9PMF5Ep;IVzfvj;BtLyf z5;W&39{BVn!qLq>!F?fvhvLf3IF<><*L`1o)Opl@2N7p}&&J%A;R0qAw{|WsG`lq- z-R1;AQsRcQNT5O8YGE9N)Y^x8pSR1tIgr#E9f_Q+itjc4IKKab6;Jt9ZB36B z>hwl%TuUUQz#_^-X#aaX{y%v=EE>Qz5*{eVsGo--%{QGVhpfQBOMV-#c$NUn9x44~ zF;j#GTeo^GRvRn>`wpk9OUkkjx~TG(m!8;~`3qZ0C8pX2eXmnol;(Qy0rqAa8r*Sq z6d^~L*D>ncu5AMFSMu?+b=tYDJhG4YuX7u=6onxeQoYPYaF0Pl64(AVgqGG z-Lra2?|b{2$^U0j|7(Z!oM->qzp}>eyi)p3PRk~H513a^m#8Atw1nf9=V}zqxNX;! zJ!X+SabHLJPm=Awedr_N7w!OHh%5Z`J8KowAoqFAKl8*6)9xTXXp+awc1P<9li*!| zG&B@5SfF=V)%b^lJRUaxBC73p6;vDaO|W_S7p~B+Z1oAM@@4rpz;3DirhBP)ER2_* zKgYnZ^xG0~IpcpmZP+#sP_;r^Sdr&o$wLbA7VBAKk>=$`TiQOWJuj|UJxB%W(;C71 z>&K>WrLX-he!Ou!CSE){;Ka_}fZa@KH?A)j4lbZ`hzF(vg(ZUs*Pkyiq?~IZ9>spg zz<{48ZrLc9uF3O%emk6uh$eN7mI(w3elZ6n&dF`rn zdX-L*>eWetq!C>)vN!(4t=;nesF6;Csic%sn_*Xoff}T+mP&+eaz3h z{;5#y?4`4F%}o3>Bm)rnEU(;_hw4gsPV)$vlqWC=nVPGVozq=?i}yDt7z;GxKbJHF z0%TY$x?{|7p@pUvg7yR`ZnZ{bCdRHtReZ;|HJrT7T9a)wcabP=Iuer?u%{aS8m+Bn=E7+r#ss(tV=FP4j>jBo|#S(+&1eA`H z`#cW_wp-f}bwlJHlTZrm2p-Mk5!Ik&xM9Fsm~@PAnW_Yas6#yHpe95ip!9{9wR+n`Juyf7jNI5eY~pL(*+sQpoMq8L{{5ShvY+x&4id*Ps1 z$0{^*LNJ*Jz-^z3YUSt$gC!>_4EqBbV%X(fvr)-nK9g2H`Y^z`&#@4o|E>D#SN9bj zmVdW-HpcHh*iUyGihL#OH z7Jk5GyHDC)))-mP&FoeHWV|q!X9?zfe4fb;IA#&s$}ImJqonU2Sv9-JD7eacj9mfN zA8=QSy?K)+MyR`>!QT{^Na%dH6$Q@RF)YM0SI1tr@|>=I0?j~o6v10#I?8;5=Z@G` zEmGD?lMfaO_o^QY2q}_I?&+UFN)NMk#C9rdDl*0^4aZJsFHbZ)_up`7R1iHmbspVo zep_n%8eHRLTU%~ZH`yy{S%f^N70fi4PL@kzL<3_(JDlZ@@J>!B#15{gVW6kga7)2m z-N?eB-FB+d+AH{bgU6gFQSZs8NB$*G@-4pZ=~f73;4Qc63?;GyTScrlG1O5vMQRp< z1Bl537~a85>39QPou(-N$pyR&tkTM$%!CFVf`8XuW|H0^o+4uTG?)ZD!ROP8CnF~W zt&XU?_;V_yAz~oza1|bxmF2$J_^kqF?=e=HaHsMM5wB;A!`p_D9Xoa$+hpGVslP?6 zqNQOOPdq|2zQ{<;hJ4v6zz9J{eVQ>(z71lcLT;M>M%gz;@%~Lys^os<55D^A>fx{} z5G**Y$!707*iXOZkg`FC*O5MK16Q_T4KTD5Bl#VPFbs#l?9-cRNb#pXUbT;wI@Wbs zPaaKH%q<^*0xY*?M^280yTq0&U@K9g-7oucLKkO-j_``nskdx`24`rkMgn%*>ry3L zjTE1!?j2nM{DF`pAU&mC9a5Ao-oAAGuwFJ}hwWK+kf2)B%^K;7mGKhsLQEpsY>Oot zH*t#_PUHwZZFZiM^aJ=b2Rpdjx;=;TQ;=iJdH$O$sY0!KHy;;mtu&KRT#S5Y%;Q;C zR{FI_2=+u-J~~dTlR;k=l;nYYY+`Fr{=37K5`GS*`rZ!(+<|RJC)K$>t`X*EYe)dS z?rF~d$%&Pa`DwJ{`;s~gqdo{7Wt}Qg)n1x;+Bl`x9>&0eJlJjJ=;6-^Sy8yRebPY! z*O947ywpmBrlA}axG^!r2g@&JN2W+63hiOq8^;6Ta!=9**g(*}{NU^aH51P8M&K?m zv;t0b7}9O2?a)Ha6X>^ZSvyHS`&RpWVsmJty=U~~Sv%3@dkj%ICG&!8M*+GUP;iSt z;4>ptnvc(770Ee2_Oh*GyUsa11~O;k|LZ-(abj~xIWm|dRI?>3u#K4hJG%kR?3q3STPxDb z94yx6Ud9NFJ!%))@!9fQd_fSt^TusktR;Gt2%Re1Vh-M2INS(S!&rVwAhc8N!Z45y zh!#SY)m6Q8w4?cSR0aY|vGm%wv(le>D8wLT`{v%e*gw-^zlDlJh1Ox#?Lh*{pLaXF zZ2po^>Pvf7vUpuiWDd6dytKL8(o`spha3HFuD4{m-1%`Tv9Vy)&2DY@jzA8m)!iwy zYI^PI-)YSOkgz-OnLUBUSsoy!FHXmkJEAs@%b1VGCJ7o>a zbmo6)7trndq2uWLeM}4&jfnsH&k*d)TK=W$G_#9s0wbH8)YrI1>~0WlRiAU_-09w% zl)|TA7((?q!9scMa`Gp(5n!_H4HdRPPMbHHHhAh?*{mLa^|}-3{GzYwC{x1ouO`r( z=T=oF;ehQgu}D?ciVmregPOBE?#e%fu^PbwmndnkczdT#jYypjLW|I8J3~WBemnPD z>Zefcz|$J+ERRA~aH8$+i)k_*u-mdoK znsWpuMcDGvb-xDES>OlfA1StU?{AL3D&)_8`JF|%SLQyA&}=%hNTh1nsM`oc)+!fH zNSeL4bxSpGC0qO=1u#Av4c5$<$|qhcXui1m>T$;bx)0qE^9bAXO#isu?VL9$H$iHS z6cOg$sRXn%KD5CmNO92pLCfmlL`leQ5W2y0{qjvH-Fwfi9{EoO5{qM>HfaW;zPHxB zV(!&=!=OTu)`FG>sKR1DHr7_mB0EI4y+_(GQ22)Vy8vJlu47a}0Ll~ilJwzTF;| zu&lrMB543f0K^x*s{=9+elP?({B%zT0Y*f{xc^K=a)ULbY7!}7&U9KbhB-hx=CWmY=1*+eywck!oO_K^zWI1KspfjUBNK-qywZxcyfllSi4n zShTfcENf*w**ol7zgv-onN$7L?(%r<+af)dBH3Skt$S>t3WrleYko48n-f*fDBOcw z)&CmtaUC7{8YL>L=xmfA{jTkqA9iM^nb;w%BmJzxkaENK5l6^DNzm~`m@h6%g5u6{`c3c*wlk5A0o z*Rn|&F83K62vWFfX9soXdXjouOqZ;|_Zdje&!kx2LL9)S9z(aMKs|r~T&9J^nAEzj zOyE(POUqfh{Z8FhKyP%=@824G)0yo$gw`JbFMp*Rm?`glmT}4`mL5bkCMs~Or5$Ys zipdMiqF=SrtmVKenc;}AWXahe#py0@S@>|WDb(jf!+i|nZc=hi=+0vfXR_<_8-VyL z0lH&hsjS9wfSXyfMX+?{c0-U0vXW7t4I}QbeBr@tNwoFX6Yw}~AROBd7D}nAHLcid z({{>8cr1{=xAEAIa#d|>p~Udl21EzZ3UG*%(~|9c+%q+d@WL+CQVRLGa zktVAq5neSn!B9FoGbvWqZYsy`_;-^>PN#G1ea2Gb3w;ke+3ctCFQ2IRXzYjSulmkX zu$_Qf`F46vh_M}6s|!J6G=R3sEo;Y>+Iab3%(9;;)mBiEB-V9L6neDrfi_gZp{EsW z15i(vlT)*k<%$wD6QTCV`)obeGoDcRl9TDl9vlNqCrAZ>r~&G%$Jq~)PN@9eHh~@< z`~eg>{zY@={8LHZ!9Twlb*X}w1+1FlFfOmLtWxD`%NutoWc}Vk_vc)?KC2y-)@3PT zSf6_ztUuA`50#&)nt;ElJ?`78k{8{LH?pXA^(1>K^^na>CzXPfVNqoXn%ya2BdII~ z@!4cd{FfI%uXz0jN|T8SOUvw+So5;9#kCPk5dV~4$Ed=+(tbRK)H4=ej!uMD&S+gy zM(W`gNM_m>B9C=DPJjJ&dB5%bDa9fdJP4?IMBExFC5)xmI)d31*-vw)8UP4@-&y;T zT08NG3LzUTz3%%6IvP{oy0_^_{1DVP&OEtJE-Qvc@xA&CW|j6ligwC_vXnpL-`Sp` zJ!AE1S!jU<-y)vOaSYvHhBkLPHleNTW;7cQnP1`#Z^?z-AN&Zj6@MKGe)35RvAW^E z%&u3EsK8|)p#>7hdV(g6Ca#>XejST9& zVJC#QF8d8^)T{VB9*=H>!#c5Uwq@?|(`CuM8ntKbc$qhaGz*JT-Hk7@M}EpCyCG;#pm+!=wLgxqXx>$Ets7X z*n7Ufg8F0J8&XPjEKTG1s~eyVak1P`j^3y0hGPYLYQ(^;geXxuxW$?rqgC1@5@>l8=z?Q27?!y}Bng_Wo;LSJ~jb zv^*o6o*l5HY*FB79a!=FPe|fI*z_#`2bk`Nu)0Xbucw5FzRaZh%QG(Kc`mnu!&CvA z)ohqM0u`vD-=9xH1OqxsD!&F1o3?TBov(xPRWLxXA&Xm;*YlL{KRn?xT%;*CDsaqPajQHjUh?b@&WqpHl&?jW!H+QORyiEb zf6iAI*-8j6Tj74^Qo`R>2(_!B5atmj$;8quoDv-R_}zOO1h%%bCIexUer3)EpTXzWm#fLxja_~eLM zN?f6&~b;?Z-U~r(GJUb+08$yfneogysKwE6AFLCvYt8Wwz?tC}>iA{_Z+M_WJT$2Or`eYN^}SZAA^sQy~-;icK+AcfaZ z{&K%>cwwejeme-~q^BBM!7ii)iasr(5?I~TmG%Aec$io3Z0*lw#-kXYAuZ~6)wt~y zwOiScDvL1Pu#2~bhOU(lq=PU%NJ3UNo6}MouB~H!a>V&_p(mdvcj#G=vf7860>64e z-pj?1K!{SeEwy-_da+Tt*%N+Cgx1KSQ4HIMWfFovJ2m+n zym}f#omz!Xz#y;8UfkGSwnELa+A%(?FzTk=d6ccK@q7fG2A66fOW$sb7P+(+A0wD( z;p(pbWnYIRgTIHatguX!n~QgMm=ve$Z6@|PtgMmNYn}~VHl1Z>3+obHLEk!+@k{+^ z(z*cO^ciejOLNJGueOqni8TLt1eznydU)l4mP zIn515DuxMU;6c^91Jjdx5s!O`HdDkf%=J$()B|NM>XNmIA^O4MtATC~4?&{&{fbuH z;~VSjdINWTn6&`>LWDaakc?hMp4Fv94isEfP`Hq!_BVj$Lw~ZGu~ry1`k^@4<+pUh zF&~-5AraGzS(1>LMio%g*WSVAlhS^NuT=S2>hr;SUnZSdA#ne9NY8~wz5%QqNc$B* zi0Q}8iLAp;CgMa1G-RXdx#UI?2SDh!a&OfgptfVLI`ZRyo4Lemzg9P5VCn|UUh3j$ z5-zn_GtKz`EqdsR6ZJ$dhgmG9A*SuA{+BxE-we&FF)#xW+xE{g1vaRbY}?VzByw5T zs3Jh(F1zyC?=C3Z-r*a&0;Z~Y*X{y5r5I2VhN$s=%D|_OmdN@Vg*g}bIk7OnN=<~j zP#fl=eq6bI>~M$*c|Q21;KQ2uj3*yAjpZYF`S`+pM}N@6Mqg2bge_CBw@q~RCn2dL zj=cuFS$e2SKu3D#jqUcMp9((EbZ6lStv9;cTl2T+%o+j)Ezl)`Cgnc>PV@SKF|<#U zv-hdE-WPZAU&DOj^=}&7fK2KAXP>^+6_T#v{cvl;T)_5I)>?IiWusR3m2M1MHrrDv zu`TAyK7B?o$Cb6vsAi2_qlygDTBo(hcmQ(NBldCO+Aw-fU7RJpol4Th?mZuocHEmq zwGf>~@OlFvDzZ6L!j`R28tVd?!Xw%b1)m23V4KCtIyXfDTZ36fMn*u!wRADJgrY?a z7oy=!OgHA!7>Y)Lkk+?sgW3T>17hs!lnsY#kt|^}qov$>ZW5s8v7s@1;I7N2^Y}*y z!GRuJLD#oK?yOl+6k7dlsv{GK86)K4!r}OL<_NVp!0=;cFMF7a-2M@#jEtjf+Bi#_ zRIUoB9&3&w0X)1uF-D%>YdMKFDp=~LI!Houl|(wZ_@a|h8US z+Jj1~0D!aLv+vP9SYO#2a9Z_5aJU^+>v{v_tL8VI5@=BuI@7b$MNUeXIo@Y)2wm=n z*W?Jp+kz$*O8Wg5<}=&3!tnErxo+Ke7?rRKFhz5C4b(2m4K}>_K#SRh%Nat>tQHlZ zQSlN%TI0I7sw|8c3%IZ@&TqO0;pFr9TiBr zi{!QOfTV~*&QScVTgF+bIEa6zAS6J^mU-WZ1LrpRf(hV~)cfbWUzJI5&v}woY<6S+x|f0MvdYbC@#a;Y9{i@4 zu57#btPbfgo2zRW78^9@84l61kAPhQPgobsML*jv$ufQ0?`vo55Sh{eOg8MMg+^=z zTgL$Y@O2a zZ_aYpt)G;e`&9gh2MDU?RNAaDXSQ7dtt_?|Ee7pD<`7lj=D*KW@3tj6KEn`PYHj%v zP543>3d#KRD;yZxa~zqT?dBHSmqgqAs+6wSTBt%jLM{=KyHv_m6an)BahC6)5tE03VeDsv1$vvILG~i2lO}|3a$q?Uw$7@>CoqfTgRcc)3#PcmnO!4d> zYK^V3iyMZS5OU_pw+(@>-%cDU@qq3eQT7_?E+M664w-uZ46!|b0jMA41PzOlKtjI` zof}$}-<)vS#?%anx)r?Y4!c>SikF z05S>N7aa(R+~pbt;!6H?3_ZL>IN`=0&l%JlL7q*EEk5P_WF7s+G1AK9yc*H_+iIj| zk*v86hI3{Ez-UO=ITYSOJc@vnzVAG8t$u?kW)5@Yo*7y@Vd_Z1ApLbpBYfkquZ3Q@S37^oe;Dajz0 z`uNjp{G#6$G(JgqiRK#icHGd%-bBPhjZH|95~-W_Ir26_Dapk5fEhMA@^Lhwc1t`C zK)O(-yGU_6RaSia_+Wcsj|OqQ%WN>pwK^zCDe=7aT6;+L4$ag#d3@hbCQepOl2%ephk!oyqN z$W?UAPR4AW5eYAcYP=o$WQ0sKso96YR4_#RTJF8s9ykba0vS8>KG~>%i*N34xaiTa z7U^mrfhnu_j#6J$-@@3$cuArd%@CKkWY@26I$4J19bj0)uh7ERTjs-Sc1zy}+i$VG z)SqW7Yo{uFp&=t~5d#{`TqE6Xy7cNGZPw-X%;(_j@yWx~>2sNw;r2P0HD$xbqkk0m z)gt8hSd&?D6O{{eb{Akjy5^e&;NwSUW@ekdBD(^)rKURj5|$e8pCfoHT@>e!nXRWf zAA&ZVdD7Wb^VYm=8?ymaFagTQW#iNh;RHszVPO=zE>F4C<(}Nn*qMYj&lM?W0d6xj zLrIV8Kj4Bk#%)jVVSGD}r%Eih_rSzft_sYUiQ1D>edHqCZL$)FEY-`rnZ2VaJzo@{ ztG){>Sd0GVElW0AhnD*(2MM47taJ3o3Y##(hI(=PBl#L*zCi`y`G@YR0SdyY#^>c8 z=?!r8Dac`fQy4EXm?sxRdNCV&`X#8+u5PGl`x0JYa)xEQ*p*BediO|x4) z_9urw60EkA3Z%?85K{mKl%H$)#6|(=XMihM#mPe9ZK0%#fvJ*Q5p_>Z6poj5@J>Y) zZjhiR2iT|!Gu}x0XUvN|H@l*1HHpyE*$$SeHrYxSYS*b!&s%jxe9x(b#>-L}9Dd#S zu#~J$gBp7POr6kos*ck9C)>{g%Ioy^jG4rVkCBGSg2`$i$DIQ}lXv7gj3w-aVwdY_ z{-XX`C;o<&C24tA!gI3i{rU|pNKWv(`f>1b7N6aKsHD4d5&B`gNreq}DEOp%alk|e z^n8;K`p!xIwUDB1#(pd)_+OZAg^go(b>_H{fyHb&5(-AbF&hG$O* z#=4-4JOQ7s<+$uFJh6*?V)C^vnWLwLuzxhTR2K=>QU$1Rc@l$G&~Z1De*Na%e*j z65xZATsHX<>#Ooc_dMAoR>3!Ai2yK9qCWeYi0)&99i>n>Eq{D0P<_b;QCDM_uYOpl zmzi=@6!d%Luj9ih4BR8ov122Mcu-eW2>1fz!AqF6WUr`9MO8HvRn3HQ7IIHl`T(X$ z;#mapz_E<8FEf$P)gqJ{LAQNb;&Vc?o!Ls>?a~floigZK=l4QS9rY**C?u;!-`i$c zQWgDH%#MjK7>56zed>T1%rwaP)gzK=-fzJdsU0!hmB}BN^+M>q|XdoqWCGY%%=koT^p1-P{ZPjD*=X2cZvQRVM^K{ z8^Av%k%=x(`A%r&hKVoFrH&t!o(nCq=q!^1Y`<3|xZ_3|l5roXD;)krJ_&2BbtkkF zIFdUrd@L-gP>De8A(a&k{kFz^8~h6G!pKI?-6h&qgiOr4Z(n%{D<1iZAteOv2C7PF z+#gIe{P{jPL$VBHZdf!FXWa?|&9&4999nGPUWV#t2bSJP(@wo>r_!JxpV(+UI+Vsh zUq>QeMjY)}X|UN2#*fV%?}pfHe+IU1Q|LFvV1S0gU%^IKxYGv|BT%gE6j3|#OF#~J zz}A`-MsgS3;Pc9jcXr2f{4THES2i=CG}nHfm%S(-Jh+w<3$+-pR@Tl zKM0Z~i)k0#x$*M)c2I|7qvx%Fc3Yd5za`C)cO6xw7f z2h{=BLbF^zt!nb)1JuNI6ug`*y>RCvt27-^aqaLHN_I0WP@7eFYOQ85&#HC7CQtI};XZ~wu`OD601$@CyP6JuO zgPD@`*{Ksws@G{Qcq3Z(+6Ga~hljF$uKt_jkb#gPInaPQFr!@wTZCz8nc77`-)%rV z_uW(~ex0~4PHx!%tjv4jWCngCxfM)Ks?qNm`DG>~-5;A;G=ecm1~Bi2*%LgwyjQBY zY<+6L;bul>v?TU$J!!-l*#}ga^xh|;G%3ThP(mGIuT{X%Nt1BoQSkEjuiB?yDAON2 zi&-zemjQShsrh^C=aL|M_kL8|ZGRZTLoTr4SpZVoFe1P7O^H~Rn|FCM^6eedMX@BcX*Ym;0;QeWC$b-v$In?i1sZ-cuIYTcuxL{#41F948{B z9ZD1)Vxqq>y4#ko)n;jk(024#-aK}gJ(#I|vE)?v^6`MlY?KqnxpSno#(0VG7POQ- zxq`;6Es#&|FYcH8%6T$pUM}-Won}6dUM>|48hi>e*C}z1H|X>3xU@s{g5tBe*H}jK zZtLC3G#&F&=Nc}k@PIF`4pZY2H&f)~JT))dUE@uu4B`i+B9{kTmSA#GjEC` z72c=)fnx^H@o5{dY$ZQ$Xl#|M!aWMVGCLA>f`Z@w9L8}=q$YX4dMHCOFeXXVRvl%F zEAgAX=(e+DBG|T)^6t(=pPQ$DsRzH?u7FkXE5WrmrBAwe^JrhJ#kxWe^g z{t4kbKGqFJFs30&a4*2wj4 zh>G=*%DXmafr#~ow|}-HLNVE5LCb#ye(5n)=;1~@g)R*6r#;^sFZm_#a)5xf%xPQ< z(7DvC=W&f+wOV;;@rP)k)R%?VA5{$FDW?F7uHA#KEYtGGLn5pm;(oLDwi@2`5w+f3 z+o-69e$2(a`F2ZFrm)k;klea%9ozQ*u=f>SZFk$YltOW6af%fyZpGb;OL2EA!QCmv ziWeH(O0l-MyB8>4G)RD!6b)_xg1levdEY(f-0|J_?jLZ+$QTSVc1YM+d+)X9nrqIa zfYZ(NR}2`#@gW$?A-|RnH-nfOIRp4LjM2 z_X;4LxWJEgW4V>gyy;7Mge@KDDii7-b{Q1o4Zp4+X3LcN{fW1^r*3)7$ZIdCcF?2R z%iUvtvRibM2?>~GxL@G4SU3lo*Z>N1)s@<{_Ss?xo%ToWiP1jKM%4C#n4+|kd`BB; zJP!E9nI8~7`@4ryHd-pvxKsT+qcp04*aPRU(g8NxKfB&0T3cvWyK)A|wJ!G#zRBR% zio>e6@8nwe9xfZp9ZnfeF~h9-C3V$8wV(PsSZL6QRK4RwI;8eB@?hBw-7cIyZAt!u z(9r%3PNBgdeny>La63wmK+Vonk(UzXsC}0CTY8x0K44Y49D|O0zLpc#2ll#rci8a)oi_%hAHQFuBVole| zE&Hpu+KX26a6Iq4-o?}$eWqkl>BN*J{L2mw@^T*8747--R*K?Bck{-&TA9$y{8yh3 zYT3er)uWYVV1Y-7jxH~VYl*n`w+S}Fke&%BW)B-0aaYHtNrTO8pijcAb*pCl;H6?A z3AkK**kCW;{oeBsyY_T<9D92G{<5aDH$tsOYIQ@7CRu|S4( z7nTBa9~Y#bDV85r<<)W3J4UA8Q*)sDxsm%!uK^3pvvT^Ls|>9DaUh7qD~j;xv*U3FW{UAoLbNCH86sKh@bz6bt_FGO@6Xehd3OtTRFdphNWz1;u(6Zkyjz z)IHgRgnHSYe5}AB(JWW(ul9S*q5@*;sG+v23rG* zJ$r*3ol^G42npqloArVCdB~t6fw<-rWt`Gi-D6Jjy_I&&))$NRE}t^ADAjjn%Hp#W zBct8{V%5f^v^648++UB+!&q*I*ZR>$zmLIw7WSWHto!IEX6-H3s~kXEt>Y+mudAJq z6nv|CRsQx1dSPJ`{FCE`jBmtpT$X(eVWg8_&5&VQ)m!QIWzo>}$luzeu_x?grsg4w zp@zvQOM%@_;U>+l88}}pdJ_#Mau;DPKZ2l7b%}SIyoR{+24#jT!O7UHqmN5Lc($JA zt&`UqTWiG)o+QKxX=Jk$w_&FRCKVSwr4^9qHUsqgJEYs_*I}6r6;v;lyN|^`Rq0nS zelYv7L##8Cc|w0V;c%7TxFjhC-sEs--;B)2OW9ZuH++n9m%|u{AH!xWj0|adO?2g^`a|58ccBU$sv6U-NZm7il?Ir2ar) zn?f0NKu--H$9-FxHwdB7{QJORd~AlQ%NWb$mj3ep4lrPP;2hj_vMUc?wDLjW61s7b zmZ|-9Ax2YUg!lCF?d;c`HNxn;%)i?u|LfKnjz)Ck(l6C(bn^0_+p0U^o2UYX_zbMB zgXjk5#lD%4h%V6bJhiAJ_36gwzVH?n)_auy-$U9K^Rnp)P1Z>!`(HzWkbkx)0Qn=W zu+MxrRa9MJd|Q801TD!#Rb{jYJB<)W+{F8OXY)gh4lMUDAN_qc^6x1M{mVC1F7(mq z6d(TjM44z^nTSMOTHe8gy1uLz_F!UGo$uifF<@qL-&Bhpscwvrh*$Hb{#~N;?|)k9 zSqIu@B|`K3vBbXy_Yj1?o>@y5TFc&HR)Ch!N8yajXf~!h&9MzBypaEIzQ2Fn5FWq! z^Ifu-+iUza_~&!?qn~tuOmSkxT8#|;=OX~b1jpy#q>AXg9L^SqKR0MpVPbvt=`&J4 z|3Cl7|Ht&pXQGfO)8l3?{!a$~^Y2J&)4k{Tq6@h|vyPwiQBx+w2pPch~#iAi%+=@R27?Xpc1#e;_#8fxMM7^7+{!we{)^R=$N)^@n%9Gwx(WmeeU<7;q{7EPBS?LB!*vm`c>&P$OTQ2@r!*alc)}AWS&;+IrlHkV^M}F`G>0aGL06N&0*$ zR`$w+T}|GfCTEw=2A6DB@V}k`8ZptSAs%nf7k@D*a+ZMW9VS!;;x^Vxu%532J{W(v zKI{cHPWc^Q0_QAU+bdr4*aPKa*SV`V>p&+Xg>ugGal1+#S!~U?J))D`j+nohJnK9Z zKXRMSC_||~F^w7C18%ne&fQ&6f8e;XYZY*ol1>L5FD`uClMD?pCwE+Xu~|}xwOUcb z7yGNH$}Gs4iBQ+8H#y$!kCA|wUlnktXlvN{4(3v{o7DQ!(DxD&P`23tc5Vr;E!PO}EMigl$RDKZE z5HMmc>-o(9Me;p|XuDKEG)VsKRCaR%dd1ut-b7(Vk ze{}1BrG0jLfTZo8zTc0Nr>pTh3=R0%JMXK^SE{L!3LKItop^bF7p*OCF||^DV>_uy zVq=+Bq5-}cOc(^zO|(*BcOBZL-pa^a;8o$@h?L5^ZhTa;886eykre(kp{Nj+QE{Ue z4(T&xev4UUngtX1eC|F^enLHb8k-?Abp-yeta5WuDt4$v0%wyn3g|ki?f*T9|CyOR zyZ)0Sg=}&F;L)=Lw7XZ&tB@D8Uj;cP7h3zq&U17Im$z_%G=ni;dN2W^T9)Kux75&F zIYtxGQ1UEE7S$D1i*e`k^+=1y2fO?5hk)QOUhyZ-EW&tHIBN`;p1vz|ts07=TWuc2 z<=+R@$`$LwWuWjY9`y6E=fyeieq{))YDu~fM)+YZT;rz6llSf89krP;&Vui z1d&v4VG35cEDu#81`AA@M)LglQ=IhJ(Sz7$QvS*q|Ct5-$20P8{$x-nX-26iSn|m| zlOu`oU*zAW9zWzabCs{gGn}52`*>wG{(C|!$Cw~jjTJ{rsfR55>&Qk=!xthnu8)9j zzybTBUGhB$?)&=IU#y+RYpp;=fiUOgB`WawhhEf*;8EVyZDiwKL03AAbcvO{kx%+FEko%dKw=3bnWls{NB#8eV76Txe@-0I zZv${)8s-0t5)?GcbIX}hDZBMzp^b@6f|2I6F=q1r<}CV0Y=_@t{%FK&N5y(Coyv5C zyq5a?eX2D`CPt-@tr+<)U>G8qyi$kerB3_$-J2lSNKoYQ8){E+#0OhnDhT@k6h_Lg_cEZZ zp31fBLQ1^nrr)KAmB;D}3*L$_0?Rv9Q2i-;!exQpE#Mu&O2KCjrjPRh!sTt%@-Y#! z?ZC-gooeGfump%QYhr)7)0021 zhgac1nJwuokr#RTl%L$pIxee!>uuhiZjQTbq_E93lE!?yiSRY*+$39Ua)|*1O699M zFN_5qah{ua z2|V{5esvz&qQN^>z+Ej6W4R}-#--#i@>1Z?L3bbHSnp8jTy>};o3ni2axI?BZn2KU zDSx$?7*NUQ$l@Da@mq7%U&M}yFUaD}C%RQv1rQ3R57`dESi2~p#y_NVid)Vs5-m6J z`P5rBf!2&W{nH^*BY=-SAG8B)_43pn2fSn~#c!+1ov6bMYqYZYUvIy|xnShA8Q4qS z%#bT|rUZG$_^Rv_kjE=*Ww z%mp1%6HS`&{_?TK2v`s-hNTW`ltO@v$?t|l`DXL!fsXi zc@+lx_x$@L%p$2wmo(+^TSJBbWyZ~i6%v!VA|R5OD_WOz(leZn`-Y!pDWZC8Ax^Z% z__AXCvg)w1Aya|1#XzU(~m120b9y88Y#EA{hDsGhB_#M zHpkSs)pl{3WV&LJ)Ay<0&$5kj+oSid^u0$h4pRPruyk@3skEEi-pqQ~Xd)#RYg==h zF0YVF#lvpHno^Yw6Scj(UW2yCY%%wXJ)_s>{$gTn0A}y$7B9AcYKi*YW^4iL#o?$M zj46g*{m^`6eE=EP^L$`CV{kD}=)gOXa_$3H-g1y@>9fk5m4}Em1|VS}cC*2MJ@uSH z5f`(Cu13Yhxm$cwV6hOa)$u#4N%K3vhuZM6xxdQ4-NQ?mlnj6@{n$J0lNJfNR_oY1 z=&o)RpDRsUqrI&i=6Ajv&7ah*kq+Hi5%XV-4Qa~aTT7elzFZ1SDwMl6&bgYDKzy>a z8R8ULHB<<^*xoZZekAp^`)Xb-O9YgJ^hHv^9^|SqJ*%flq=aOwO0+NStc16ENu@!` z)J}gV--&(IRh|DD*~0H^XpqXJni<}B7-q;)t?u9N zKmpizrFL;&96@ALo;vSHv)y`9cApbZ4NpDzoMC5n?>C-K_Ov#9B=3aReLGj`iBg+?nU z&o=l(>2&K1-?e84%nd%T8j~ckcRBoFP{pHB85hg`fM*79ujqe%4zJcsTXgGogD`8M z9C|qu#=Izqw5iC15n~&;X;8S$QG#%}kA*fnry20QIzwYJUvExYFka4_Y%_3HHolki zqrHDMqQIcoNe>7L$2cFyaLhI=spUK;6 z@mmX>(SOHVK)ru76;r?GUHkZrEc2!<%S9_X99{hI9OB?^;hC%WHH0dPoSBU4hP~)z zH(NpIMah#OR?I<$*=s5g9yjk+sn+~sEzG{QjXyOyJJ5j7{=OA^xkW{o~`%lhfxWD@U~P_dQ+VoR7U&45hEIvOQZ_(smiRoG+Q_8Z*$ zl?$QOjMnJ5(2C>jPm3}QJZdJK(1c~GT80p`CN>;$i6DZb)>@Q-c$!HB5sR1O7lY<> zeB%*<QfRP_z$w2axrH8LPoPI97EMUb=#yVTcoLqXMOI%O;Fsim-rjqB zE+qB+gNx|*-iVlBJDVYH18fnOf}Qm*?&0za{Qj~VQR*)(>THKSccv?wHJJ#ZF?jc6 z;5ux<1JvQ6f?ztcwu_Tith<9;f{hQFTUTR`_E+u}4qKAYF-nNZ#Lr^a`^wQEwf9z{v=2qev)kx zi-sWKGJTf03@ZuuiIL>SKLJu<%8$50i2lj-6?oD@GvbYO>rkaUY6;EEHSXrqv*hN| ziIc_9??{;D<`<7Oql<&iGlA~*4$H}Y0m+X%JdQ_71uBf62?QIL#OJ222_-YHtv-z3 zWJ^B1)rP>|)e(m`38X2xSK1D%>brTj0jusROVQBwwI@hU%&GV7K^JEnes z%9;%g5#Qu5_VeBdMf4K+=}r&^#fwV?kQ_~%Wg$z7ymiIiE7;DtP-!eT6Csam_nUzR zrFYyoWGpyduH20iN80qgKGi;i>k%a4GcZkYxIrvhfR$_Db|Lfag@T1$pDgOUlsR_) zHH|p)W-7M?*w-gp+Dqa(y6Jt{;j!qt1Z7;^hb#;ZuU4kiQ<>H}yS?>LQOK~(>%12|#hzN+p?gNyFyC?WY;_W(Aro81oejVB7_?r2%cG@8;sK*5nWK(y zG>g{+q!cOMePioOWu;eZ{IZ1=jT?X zp$9Pq*Ls1y67QA7bM(=AUheOYyEa0(dL@Q1yri0hge~zz0nKCX%w6ze)0x|F&{1S}p6z04B4btyNW zlz_Y%*Mp3njyMsZaW&Lrm2V6))9AzrWL3<-`M!l1(Ikd`fxjub(vw>H65RSCozM*M zL)x?bweH}s{p52|MaXM*!)-ar`vs267b~i2qojCd^Hd$v$avK;am4QBaFY61S%DMh z_*@XRij2FNP{`o&3D6B~GSH20<>p2;?4i0_$UX+iHTd zI$jg{xPrg65nzX#EU8HP9WXcH&>KqkUe0STZd-^>h&!=6*Tm_RZ>rB<_K6uccLwFz zu2Qnxgn!Klm15WrL9CXTUg_2>J*slmuQ0V^A8*vv7yn7hL>!KK^0*`zGm4BejV+zb z5c0ibHG%~OXy-J6n|b{BPpo#Z5RbCq<+@dt#nnXJwhj8cWquLIkuZJZj#J@EDWkcRDX>6E5 zl`a&unZ@|0;0so)d;(B)`+@UwN1GP5?4r%bmHd%#K8H>lqcbllgW}~OvwTU2%iH6~ za}j7_$bCO*5C`4LsLE^q>xS6SKQ3Y6^N;;C@wHWg+thw122{vIw9Sh*sk82P114#o z?$?f15K>R~hQB~Z36}hu;PB#D20{GVq{5==| zrWjcpN#QD}yhI1c8-zZ?VFoXvsxR0imc*If6ebpy)S?~C?L?vLCRX6cN zskIAJ-<(1Wx>Pf>Q~tHXZ-2?ft<8Cf3PHjXD&4KjTII+Drk&fA2>tAX6KZ(t(Mu@S z78-J|^4PcU9(CbzdW8C2-{52>Z~q?ck;kf*1T3?*+DIQ2ipbfLVlklEgn${M&&gV3 zrvO^1$Eb^n<~ce8T4{}mo|f)3rZ;!PfE&7N1T@Sso=6_4_rzS^&5tS83GOC_D+w<#W0*ZFMQ7w_eikSH+{yW zN?hOdtpk1#<2^+RYNj9V3PDomY+9n$Z#qhGp2O!-H~j>NSV(2A7>L6g$y-RLw5v>C z2fUuOTy~ZMKVd5$&!`%?#=U-sc7WewfFqbSHvTR2Hc%z%#KS@smIb(Bxv)Ok*R>&{ z3@yYoHRu^@ClyCtdK6KGP+_|>5zmmBQ#muqS%jZFh9;sh)VOQG?8`nG@gS}MHHO3- zw<>!JE}gdGV)dMfLfi;Eik6&XW`F!Mgq0l9D30!+q1}&Nf!0P`|5a7YBfM=J_8%V) z<-)mwnuMH3pKE!CH`2|r>hg}NY%dJmI5jb!1iU_b3{u;^ezQWY@(a^q3Ix(xntmkM zpr%0Ba>dKpuq{r%!tEn+z_3{>+1VbSk*Xzp**fY~V8a0jJe`?e%wTIO5E}k|Aw&RT zFDd(`BD*Ql!7X)niPP>_A@#FO0|)%zm$B<|6LtCtQ-!L`>yij_3H_gecwCwd z+W{KvA1X|mWh}6F4V#=AjB*&nvd%>ZJv$Zv?o(OXKOf0eON|BpNH+vY%r$+W?v&|7oFPf$ z28|cV^^Y3pv4|UP8}*8}9wGu!u~)RdO<7lQ`cTbl8i-DCW&`0rZ)VkS3n_S=m1)zeb_~z?|D;z2RfIA zr%Qw0(aws>SMR?+?k8Ab))c>cXL?#NozWQm*~l#LY#US-1lm=59caSPSbAKE36h)v z00ppJ@dIDt`7CoT2>pOq;eB%r``Et&hX2S*7T|Rt!nlQ%{Zb<)zyRQSRG$z_d zjRnT&<6L8bup2v(-$4LSYJb7q>F`}$QHL{m<)~E{m6EGzXhSbUhbjZ**mH{@kMB3pc&K(3wxy@kDQ z%nDiY`9giwi;W@}pq?cOqdw*T?A|hn!C{*jauAL*5e6%H+tt|*JF|Y=In_!|Imj?S z?=?JJDbFb*RBpKpNCOS_cH&i7JBGjblyP%5!zT9BO9iX(RX(}$wm626PbsvtOBX?? zQ%E!~DVwI0M8Xo8rNY?eTB16@3bImvuo3U5dfz1hd<87Da7O1+kVo|g?~ZPUilNtb zOvPe8yTuNkEQaExtF)!oZyjWlfwIo^{1co}K+Nli12BGK6sdFYDn1v*;)k@K3ZA~v zqt%J^8A@8&+<4zVl}T{KHPrTMbTH8)Ztfi)iM*wZDh{|wjhDnnl^x`vtUSoZ7Sj|D-?xz8y(nG=bK4Dt`Tcny21C`MU&9xztN(xUME(;8 z2QH#n0BmmE>SHKG_|5~h*OjKvJ6IUqLNbRk#&u>vz!hlDX?Fjm-Ak4ijz($G1ue1F zg*4>eZ*>5%kOQ8MVr5Ss^5ZV*)|MAFB$%?u&PH6}R2x!cFo$MVhU(}|{=TdgYy{0f z)ZWorj<@kwSU@`VFmot>iQx^PD1N%v=$X*9U`m3*7SQyQM0rcey7~D}o^fM4(=z71Hv?cXN+Z5^3;?>FNUU^l_|6m6rWw1eSBd=@P`Jlz^=T_I%wi+s3n zb$5Z^s$+OQ&faa^(h!79D;if%!_75Zlp6P%yz2M?4n--y%WkExWvQ}~@bv9;xyF6a z<%5DM;0`faZt9o&MF|y$#$3fIo|L=MEkZ9wYb9wx=$=ezTij30h>>?7muUPlVWcyK zv}HJgGE$2%)usekJ&&rZGK?I)1$1_MFDX$SbHxboa342ooTwZo^#_q2;&L8NTxo^s zkw*408Qwd>9lsM*1vD_VN2aGNv`V_ILVc%(lBgT|v9RPplAjIfG^`wNqot_yZm%*_ zvAeY1^Fjv0oT1KT5qkVOR@>2(*vk-Wi8pryh|_w{^~yU^{$ z^{CtNdcof4f|gMC?zgC~b8L%{Cx*42l`!#HA_T;H^A=zWdKuyvHVA8A$&{Hm2Jb^Z zzY3wIK0B_i^dL1mDhlG+obP<$=XSR-N{e8q5)1K#VI1eRuXCui%%F=7*;`M2@}NWq zw1qvPbuR6vs&nE2>w@}JSaZq%$iDwsI*!p-)}Y72gq~F}M-9$90A^2)RB0%{J6B7G z-h*x@Il~r{Be>%q9@h|IP%NB4^u_E_`l9w~#NKc>s-rWskWXt%xAJ_pZ29~ao`N)K zO3&{^j&^W&r$x}YUhW2;PeFm!!v|z~UB#A#!Z_SY4?pbQp>g?r{P~1)xIoHP2PemC zYvQU|OAAnt=+;BtBJeJJGCv}iqY^I^76B8IZ(jSNc%*TE^rO*1!H);Dm<7?su#qJM=I5F^r*F>)A!HR0( zb=E9|EvL1@_KiDq6{fIOj&WhaM;`0ud|-}O;_upn znX&AuVn)dfeRD+M5){Z0GzwnNigO27D08|+!)C;bXlvLch?_O(&9u}ANxm;-WTOH= z{9HIvi~5ilU55&OYIVG=^0=Yki|u-oB}wH4R+?SDxW_#~&l1`Gw&qPG-NjSv-tR?9 zDJ_lNVwy*6`W#isXf^|m^A#e1pAo$nd&{<0`^YR=(YRPG%m9+3_;-+;0xGL@t#$bhWPog)zw4FAMb%~hjil+X20TM^OdDP zAQ?LnePsP1)O&l}mPNx^x5}k~(KcfLMeDumNPx7*0MqUiM zoFG+T+>%9}t)J|wub<9=ixl&GoPt4Kr*)G@DGag5K#0NMP%^Eb>D%_qNRp;V!lgw1ogUCIStT{RAx(W3f57dLOeI1%x!08y zLLoJ;q=t}fVOC8?aW=JiXoHOQ?n;Xp3w#D#v#l;#b4Av{8-&VXjXMQ)f__aBq6m>F0g? zgu3N`0u}irQ=-Np+<&(54w&K()x|Oc7<>>|hyZ|Ll;4HF===<>Ct{e&CQy0GRn9Yr zU+yPVap%lyYM9Pu)TezjKou=8RW_-9MoHO_GGt$YIY;j6sOy4Un9>le9RqSPr}&fsydq25-tPHV2dev$uo ze2}a+_nH|tt(z5;0ODoGg!18MDTPB=8rD|w08f0PIyxuwY{rkZ`x>5A3pTqtqfx*p zRbnN08y+js7B+ShuwU()F2!kK7ell@|469cv>_drVtU8&`;ZQ^W=t@Ft1tr5indbb z_LdTtbF=>00Z=@?)>cx~p`$ORe8}j#1t^Fuq4-^PQGq6XcN^+&t<;&J>vzYJ3pXp2 z^&()|o?>O2;uSv4zzIJ0S3fF)Xeq?K8$1u)=@zUjyvsBPJd`pf!jReeO;f|S=sx` zW9C!a>EF#2cy5N;5kZZiw=s)xr7Y{_v{kmjB(y+`l+zd(i-Q9mT^w@WA}@$r2E1^< z5sFEn3i+|)^a?t3dpxBu~{^v3#=jS)i+M8_Ouqu37%QV@y* z{FOM>KcSLR;%TJiRZX;Vb!8&g0-=39eQg2!glPF*Fd4dK-b3D=Q|kO03$ds;@r8WY z`Ww#udtyv^zaa+J$5zw;G2!iVcUWTDM*UZ#o88@leOX^1LXiM`5 zwh2_;Ro|bZhF$G~F0DH46L&wYEOD6EskwI4#`y#cr?%iVMdQJDOk_p-u!nbMGN7YC znU=mdX#5)mpUCYyNTrF6=f;@T^J82Kzr1_e2nn|r^yA}*y~R2T1NkdKzfcnBNq7(y zBqWcRGcclBH8#%A#Q)7FZCR%I{PF!hCf>=-cxC*JP$iRReWi<)&4Nd1vrjAle!-B4 zhUMH=SI}W9aJ{6X6uM*88o9nhqT{nOS%lqo?)HlSZUZsvD~Ig#231tPG>XaB2Dl!{ z&A0#@K5|j_tvyX>jQf*Z<&SfS*j5be!DcpWDA$G|r0oas2Oyv<^W9e`)?288qQokf>*V^1fBDc!ao?fPx2WY4+d_XtiCOt6{7Q@&L; z*Nf#toVyM*FWl9&LZyZw6&4@W-Pgb9Q9(pEGCK}eaeC?KR5NMx6=Y|$!lr{A{QQoi zj9I4XWExMg9e>$3d2P8;2!+<=ahiVifzQjZ>2YkiGy7eSyGnp_mcdq`z2Rm z>#mR^0TA{#3Ppx=-gZRYdvWV&8$A!7W=6wiE=e=VO=E{F?5KcQoMNgY-(1~!v|q&A zBP08!JEME9Sqj&ijz}Hxel?|TPmVt!W)C{sW~?-BtY6W@rw}wQB@G(aKJtc$=m)gJ zhrRyhFjK+?m`09+TIB!=by!UC zXe9#hTro`zMVeMGvB?~vZnK}++n&Sc6nQy2SdBH|*F#J7Oq%(oHHD1;?*-=&ptbiW zi2zSrynGc0X8pZWX3X4{U^|?OC764J*k&O3qv>Db)=lTzHB&m7u6XCyjdm?-y7uO{ z*lzMbmE)`x>DUJC6=?pHA{NpxX%)Q+25OcqpKwf@f2w*_f<1tS&O46ac;t@OB|7no`K=HguI#Ek=L^@hAunWrLSn zm9RJc$%Hr1?s}9%z1fFPo$njGae#OPvu+rQdv&Hq@(o!WkZ+$($z<5LJ>&54_U?Kk z!>2B^|0SzVo2{0bXB*g_fI7~rpH%k|9pm+N4lUIe41z!zZ1!gH6tLq2hTRCbiKIp7 zv*4QwqtkewZ$ZZFXkZqavZMH>Hc1;O5(~!78<(ta#e0#wBUtU8@-}Hnp+1BP9YdHG z^4O7RKb^0~B|pQ9O~G0R3TFnk-RIn3YNeylfL~Et#i|fbLi1sLYYNP(r+7%HWI7(&k5k~B202_u1@I5>w5Cu zrdxy|&7iK*XN}TBV@5B;QY+RTJH$af=n|OS?IJ`$;pdn-Pzx#78=Lw7kzFh2$JtVj z)h1+!G?&k5v5gLLw>ZS#9i#@a&+U%7@9#hbF%0jS{c=+u5$o}g_HhCY@$WD8mxSy7 zSmeN;{7bQWL!Jj{26~@Tp;3 zcn)1uZ->0iQOK^Ko$jLCSH`@7lpn1(I>$kDU6Np zUU#w8;-NLBb%W)ev$c`HRc;RoOG4gfBco4Mrb6ewwg|}AV82UaPs@m*>3~e&-*;z< z?z;eupg_h_Mf(>-{{Mi*Eh01uL|*|NWyKqa&P>l&Q!TF~cAz^HSto@t?94Em8o6epEesnO(@8!)qZ@pVBd@H4R0-ghKPMN@64uSe;f%426GsV zRbin1A%noge_(AY=zOf%R;6F$4oTZ#mo&Wz-Z&&lZhdm#($K^9?dHluzYoAGzHpn( z!)U{t>(UlJ{?>ivA}L!-Oxof;mM;PNemi$7Jw?TSP)8Jm4-z$2D@PGM@T4wW*wzdf z*FBM^p3IjZ^VZ{?DA)bsSaxr{DzpxAZ6spiaaXTv5kWsRszwlTe5$w)DKhH=`t$Z{ zD3sDUT0;W2kE{ydMZkVkbMV#!y?5yv!v>$_6}>Codj(c*xVM%X)RKieLx5Og4kQ2!K{#y}K)nBqv-aImjEOpuU z1lK@!>_#L3nYN)+(V^oPJ-&l`P0z9>DH|pOVfgXnwC61? zS-D3ItCqI;-!$ihXVL>+9@c7l@o97bQ&a`*2*v`10PejV9gNTqPTO6o zk&ND%FEyT1NfmT4?!M|zZfA`rQb%Zpzz2tZ@T(H;&rLaax1@@6R3r#z+le z2}7J8o_CXIK0wPEp%%Sxzu|$W-2(Q|>+fjzZNXdi*rD5di|ySUMo-IdVJ%a_y~(|1 zZRe!TQfG-dcVK{TzRX&S1^8L}AgRI|UQe?$Gji?=XI2;Rc*Ftd7_Auo17|K7){Vua z$^WR3K>9+aKPlv*5}wf9o(RK7gX(jE>tssTZA|v7^4G~GJuPMA*iWG9r&{kUhG>~_l{+XuWa8Z*dT}{My zuLW1%1_CDaW9|x7cLVL!@CZ1amDhnFH1*^lo6q+>zmi%?)!lq@F}w(?j$bt;05-p3 zTXI=KhbD?7Kk^rZAE^doxnOfV%Ct5vyaKLt8vqG%enSbNT94lw**`D|J$u>OC3xqK zcTn_Hpd$Vw(~LuxP5aZ{=vtGVS7q@RQ^Aj%@9@capq|6^?o%&%X;(pj8_`91!{g5r zz&Z%uCEWG#>Wb7unR!9tZ-yV9I*-GRpWZa-eevZC`Ae}tscOV%l$l;{>IELt>p12?}7M%)_P#e#kQ*e`Omv`Ww}KiYYr1?pi3iVA3tc>nW=NDMg;z-eCEGf++0^b z!MtEIq#?0h*)8-1!8c!N%tMy#8uFNS|6y8(tT%ff zFn0ixA@NhnmV8rtt{?a3q&FF5ez@#D?RsnOr00dry{$G;z#`W@jdWIfJNxv~sMLjLVbqL#koGLH@~PvIrr+fxg{ph+ow$x(Jv6 zXbj*KaDuXAy|B{`*iWA;4@;?B=5qOXc@lfT!tsQ;=2HZBh5;Ld`#m5atBS;5DRIp+ zP9KddNU!z|9@we=Y#1b%5G$xDX@CDNd7S#@bE1cKi`Iii8PD%8gsOyE*udOyE!<;7 z#r4w@hz-8S!$*nlxxsVEz&%e1aM`v)UQnaPOSB~b%%D`}0{_`IYD&Z;V%NcCw#Vnu z-7cE~oAa2A#~x&D{!3TwNFfh;$$Q+L850BsQWMm;Xca1hiyje;x2w_>957qDt6)^? z+1Rfp!NIw*%HeGnYYB&OQwtIlIM4KY_P+wOje$;SnP_T2jOCL&wkN18nN4Uc>j9FVf5uj zHXdbXsdi?S4z&P5=*_S=oY=JSTbv2yY#DI*Z8M%fj=91~n~RJ}5)MJ#7z9|LSQX5X z^iwqKg|nPmOMk>alz$vl8aL~>m@O_jM^7&mW7$wy+$_g3koUa2`E(BsS(cm`2*j{i zjRJLZn%rrRNU`tn#yMHmcYU?8V$A&73XyV;4?mwwocpQ-V5xRPNoKy(NBOLk^QuPm z_E^tBirFe7s1rGE;|;J!ECXT{wSOF@O~7I_EKlKAO3ZzRZ>O0mHZ!f;isXVJRh=c~ zx5nvjX;ubkLNQIq z)UGskx0sk~X>IHLl9<>xp3{uUK`1X0!YVl3(XWRA~&b_%P))DtfZ*r0O z+r%V$b+_X-#)a=x5`i^mdKSAo<0LGJjss5+>VO|sQ`bkqZWW(0<-M!ZNuN~L6^j}; ziULKm$nN|ue3N@Fd1JG*tsQC@+$84eX59+UdL68gfXAwHB`1Xu3=ML54u_j7vXGn| zF6%@mQ`y|RG!j9pKVK^9H}#whc!Yj*icYL2o`f;oUEmTHRZlN`T6ysji~9gQtNXufbVaYf*xRP z3L1FeN3lTVQY0wXAy4t7ZlevZy==wzxaznNnfsb)8?h!N3=a2hE!Stq!TstPSdVqA z#lg$jk$Fm<*{`Augiw`D&5-+XKT+ZBX;chC=@_G!`^k;uUR&`B|tx(r;?$mCZT>=NgI4qT5D zU}I?EPmMh4TBZ1oc9=*fXWl?ebZfus@x+UXnDpEZlp?tgf$layJOxxp=xh=kWo?n%a{}S+Ulmj)@k$IdMCS4Wn&Q z3fJZ(Uhfm2UC2UWfw|1+SM^xp`#NJ;&26wx<95u4)o9gP5=JGcD{^E$LOpfPzv`1? zbJ~YZyWqmb7J4+_eO$B3OFkDOW@@O5%!2%3J}+kr3Ks3T^Dhr^>7xIjE#yZpalC0Q zk&pe9E~f1lEITPCj%+a1$~_MvJ{<#^1rcLas%5^~uuV#dYV^3sX%cX#kC-K%n4%G5 z(9gT}N)v7}x9Y$$r4(^`m4rior-dgLHS|4PX%bGYQd^7_8AsM zTgM^&&VA`2LEc(x%%oT+Fi1AL8TCixEFG_EN}4C47isz)1_KzmlPO-$1R zq4(NRKkUuzdS!e65MSJo-UZP&$;swA?;pw*tL%RZ)&I=BSR1duvqVdm5%4UMQ_Y8@k(&t0MH3?cJRV0PfA zML=l{=Q;a^D~Dc>w^mKdeb?p-s~g8&@t;iFLX(JX=i9>Z4zv-LUL~M_e+}Ksa{D8w zAQ7)n5Wd`qRo%I#MK7}sz?3RTUl;Mi{*2jH&&>qm?%A{>gvRu1cU%mq1TTbX4Isw? z$Sl4y0+U1s^`2qc2Keasjrt)89HR1PMD~~e%pzg99u98 z1ArLnIs3M15pA8r#$9=Jef`1xe8Q9Vh z#M7HsRl2qm*1$DNj$So+cL-Nwp0Q zn-ZBOL5Mvz39zi-2!gPMImB+yUG>)pyiIJvz~aqx+||8|q2OBudCp&()Q(WN=ZfOZ z+7DZg=DKg&pgWJX(Z2&2TcBuFB7U3ikH@z+s_;kuT-m~lHGh_53@ut5*%a9WB-s9I zt;_7tp^N{+-dn~+x$gVJN-KhZ3W9b5cf%;% zBRSN-bFuf?=bZo9Yps3G=Xtw*fiMC0+*keL8_ABp2Vb_pCZ5u5BR_142mNqE8R^yZ zaGLEvN~Wpb+kDZ;J7*d2F6w=?$#J}EvIYpMdBZqa^eAS1k-F=z3U%rd!lXJTh< z(VaB35cz27$JC?WaeF&+UTpY0on&^m3h2`9BThZvt1N&@Im2z?$!WM*`+;1vn2}*a z@(~M45*vS|V&R<0Vv3xW>+MCe-3(y?!LWs_Ls^Re9?$A6t(`XqWL=Xy@6>duZ%iBu zTn>nhKlG4dsz?*TXACM)Oz?J4+Vo5o_ULwOa+VHvvDIHzbxP+L*&kYi)f=`@-T85Q z`&JD-uIA*WT44QGXfsd=!8GrLLJBjZB1Xw0d3L z4OEhC5j3_TVX2#9{Loq?PP@@y6{cXDgSN6fM5069;Jc~Srm$!y1+nvs z6`uU0*vW8ge(z@GJErAsaTeX$iwoZi%RX-MLP3k)4I0t`HEWKb?nMTr&YW<+ZY$ng zGL{^DI=WYAb5WsrV!!h;xhOw&GflQ;-CP`9{zMeb!|kIJnI^Jdx;IQjLEmzGdO9?r zAthMkgN>TbePQR{rKVk9rWWFeV5-4IGL@hr9$NK#gST17=V^0#;EqzqA5GtnS9pTp zD$Rbul6v*l*c>vk6=9@N? zSa5U%?iRCQ9@6IQI{9BohxilWxzEttevC;^_cy9(t<*Jn+PPG(miFt~*MTZymr(;{ z*Wa*f`oFN?C$8`!sdq9(x^3&Pwr={Jvz+dZGoxPrkclWuCEkhihT4_gdCqjL=N^ET zR1~7pI)T}tPP~`*y=J>j!j5e36Gx$b51^Cx-z$Ir@Aul=Kr%(YuV}ymtZ_X2>$O49 zdgr>{g#Gk~fN5=SC$@2kd$ES^8K0ucjb7Q@|a z0J|*HSwzkSr|P#cwpILdYa> zni;J|a$H)Cc48=a^JhY68&F$u>;_&?&F)yv%q-c2XMjAq25pnTJjJ`K%J@I7=YRYN z!=t6a`&-AxKk!ax5>w2gxp%sV?<}L$?AH{U6o#vpzs|n%Rio@3`Xj$)3G*EzFS+4d zWs45ZD4rXjCG9<+S)ePIqnykbbo1WFI^6mqIU1|EjbHAE@2Z}1&_!SA{B-`p%yL|= zg+D-=OaB4m;y)%mH!XEM$C#&yF z`(sth&HG-VHH*~bKzq#7gQaKqzqs1}2;}}Nw4;{3q3^WQn;y!k%dZvs2d$3(dg&j$ zIRtBMnm(iydiM{iD1UM1TDicgXm#8ywf`T(`!9YZdVaObVkT=qdV9|9`yByEg!K|KG#+KW4(ehwqQ4-@jMiAFj&(AFD6x<0~lZ z->S^TmKYWTDRF3A!ft;wZnk*Kc{H!W3d^ZS6V(pF?=r3pRBNx4FF*trE$Boq=i0|> zC`T@XK}%$gk*ky%kNG)(@L{xYozsp4FKE{&R@Kvf1u|*L1JM(fWw>Y0YO;$AnOlR5oGN8QKB5T zD)%4m53A(qlqLD}gH zTb5pZyZrr$L4BoKxl~!!@qKNL*Y& z;x)oWmWj)dV)H|m=OMH9k`Vpy!vwLv`n*x%wpT}nZOv^PFs4!B7@(ODT~?wL3uq%T z<3$$?H3;9$dsS2XfbU=av!jhPxgn81^NAeBnVf(_L&Zset1J5KFyl$^i-7A!SOO6~ zpMvL(o2%_%HLECMJrx%Oy7oA1+qp|eA!H`tP>O+T9qlp@nR~&hxWBrbE-O-ua6W{qIjnMP13u;K86* z@-ivn^TKsm5&@9io2LMJ%VoNzfYC!6Rb}HB$7y01v+Cs>0gEU8>q-0HpM`<(4HN;2 zTt7o-uPM-(bli&h@W{#pO4lOU50s~^PQ>xAR7nsPhJP1)X>db+x)Ou=^*t!-bvj10 z3{z2{x>7QPuE$rG4s_4rV;GcWFV0W0qL_0(G9y6+vxDX4p`hz|;61;s<2PrgSGpZ8 z$Ot?(6fDqa#g7BRI^|6Qh%I6$h~HXkb7)TCiI=cKQVi^AjXSe zFF^A%0Qa^WfWOiKKzXz>I*t*lA6?fi4Epr8TJcuYR>ckd_Q-$8qZBI3PgkyIK}Xu7 zITsII>26a&SXIO!SrNE|4`aD42IPyA1nG?6!dE0QAhH#ntc9zR>le%Wux3l+rlNV` z-KO-?EZJY^?m3_}TL?W1-BKfUxj>^33h1KO5=>EIB?Df)dn$;c?z#4yKE0*MG83@Z zn0J+Ig!!g$TM%+vz5CIjoD_AhN4tl83>V0Q(112md2L!>g=yDT0_AdLmWH0_&-jNA_w@1J0?FeoL(9&TQ$px?yQFK65Zn$59{sv2Boz4vWN zqbEf-N~ps$D|xd_gI|GCoWrjSGwX*`DvIiIeH8ris$&zg(UYFZ5Fg!(Q=7zc(<;rQ z?HLBE;Vexwq~?p!o{kedWuO;cYtlitEM))-wJ>=Stsd8O3+K9Iu#w(# zVfvp<1#y+B!Bu~Q283SYtMzh5()yg;t_t=(I)M%EBrsgTF~V1dIKnIVW_#T!?Lju> zygoax-X)oP<4C}5CwK2O)~Y%>)WZl!wsrv_x@_yX5cA63BwiU{mue&PPzmT+n4;J5 zBSnYRbZb0yQl~otW33S9M%Uyye!OqCwOeQ?xyKr1 z3zVrox@iJg%RgIw>^aXU#9O@f84l#+x~Q5k>-T!JPCH)KRYXv@DD%jVJ=J?J=)BIX zV6oog-3t_en8lwSS|!VghzY)0yOFy7nO}X)}WpN z6ic20eR_0|_w4|M@aqYbbGSJ@2IB$l2r2I8#9eVLFK^OKzV+QNO3*^=YvPWz^XO_ngotZYpO;y&=8rq2Di!x!{A=m)*KX&KI{1pMZP_G_9icvJ7KCE zEi0&>k24Du*dEn(P&_KtIrwoNv>UzJAE*At&k&HrD3D*schR@;m#c0#xL1n}$FZr) zpTZ|4%ky6Nsgnpr^fh7xt@fR1y$^Sv;)VkH(sF$Jp-9PkXX}w_a%A)3zR20st>)u% zk?i|rYB;wZ?$l!6bj^7pC$JGz=iJ&^7U9@?r>IB;GD#kieiy+dDywnvZ~ptf{LkOZ z1-wNn`^QM5p$ee1VzH+hHxSQVBAF-%O`g9St-C~>6*pD`7IO@Do+yD$WFZjg@ zu1EO`+#crl+Egv=FMNIS!+cyaa!GFN3HY3bIsaY$!oCy=8TNpt4V8McVBk%}xIuiH8yr1o?q2RH2GOpxg4D&kKJyu3>)9NiHvv(EU({ckTXdfWrAfy9v2aV=(X=vkX{C1s&qq%eD zPd}+_^~HW0+w{D8FBB=hs-odhh9qj1r|rZHq0cm;aNWw)eY-tRfEal16>mx3|p z@~4gz(u2joj}rofbdM@Sf$+r=x9OT?0`HkfDwMuD^0aqyAjnKXyH)*(#2zTyPPzqU z8vc+8+bxiK_x)*2C30}C+|-PWiuzhm1!!#xs=f5}f0ZZ(q)M*QNiz;63888heM@3! zx^Lb)Z2-65xs>o#cQjp3wnEMP)y*UARsl}nvQQqt6n$5=ssJQ4(n?;W?()66`v;)f z|BA=_Spu)IMe9E%=<1;M?~yYeS}@}>-@-a8a2&-pl6KpfRbpm=-GQmABTU|_mI|l33#a0QR!CC*5`~wP@waBlQ^NN%%RxIy6mrst}C$V zZj2StUCB6s2dQDxDl&?R7uAlzB)P_~y(;vUesdoiQZ2Pz-{^opL-Lro3^~O z(l>hk8mNyfo`-rMCc8oB%gB58h43a}?d|=RO$Ws>s17=>FD6p%%`(?Y@08QVDTP;9 z=KNX*kXp3T}4K1&(K&ct?+)PWv1GC4{fI1m&G4m z$@Wo<6_ug9Bm2kMUK3!p-C$D|-Tka4-(#9=nEE&%qB_F8<`#u;w`)P5Y^4mQ8517b zZN_i^bM^ZJAg#b$BiXhrYWBD__48rJF^f@gST>$o*XOfed-)c~3s*k(cu+j;cFcBK zD&0UB`Iw7_OplbWwWqn$~nD3E22Yc?_&QyfzxoVZ1EpzmFn!d)* zO(!-Wmf*&CJ(d}&ZwJ2@ozlc^*X?sU1smS;Clxh_So5Bh@!l2jJ>PV7u5--BW>-$z z!e}uUn@x4rG>ZE1<+|xguiLWV@&zUa8UAqqt3my&7A>O@JPfFEq~AkcFqD~XoR@mo zGmEAPkK&IrP)|xZOqLcqBX|9db})rQG6;SiD{x$2Zwi|CatH~z`SD4}O?hIWSN_Vx zDtA?++KL&|o;;V>B6#qmDS$`f`t^0T15yYA9@;R~v}M5FWzhNQ(p$N9>gpe2$Iu(@ z!Mz{WGYka+R*b&l!bT@ z`%6x{4OFo>K|#9id%O8YkG||Tm5QmGpto_~j0`72uhP<7(*--a@@W9&m+7;l1mMe> zs8Fe6R<9U@^F&7uGl1v*R{&&sfhm$p_*4jHmmugAp*e>)`jtHZ_YekBj0Cg#)~M6U zhO+Rra*?92YjLePz<;3@r^lt#XR>s)*Waap&0r-L{le~fKoJj7cLHSAG1GZ%kbT~f zd^rpyi)ripR?k9Vu+n{(Yc>7){_RBIa+c zrqjdC`z`uHTd0lH!#DmAElPuGnSkKJtblzaq2Jh{L0XGbT$sd>MT$>LVa`A*4s_jT zJT?|JDg5-tpTc8gDt;&zfez9p2Mjg7YHi>82mB9U>uIDsjEbX=hbujxUvp##%s+T@W z{PTL74f;J0ghyiCXzXF}2HJAE@YBJz&|opY`4)qtPofPiGjq3fJ2Dq1n83Y0(lRRE zfr8&R!yu~}DSH0X4iGm}p*aZRDw~NY?{?JZ!yU`gEZ=XQPP3|GM?f8>+#if&O3D4@5Dp!*PuzjHLV z&)p%2eU0-;hhUS01o*keDw5xc2=?B{>ktW$Ev)v&RW5Qwk4`;IvO0@M?(dUYwGenG zeqc->zxM*7*V4D`P#Ox*{tQAT3BZwKaz=*mQQ3Zf7~xyDb?=6|j6V&vI-ng!zAJ?u z#Rei?^T?Y|%3OiV+WdW~Vq3fER0`wRi{@{n4TGQRcD~g9BqfLyG@0EGRBL#k*YHlZ z@Km#)HQC65WQfj#M1FwKefXYK#-Yn=qk!_lO5n`OV&hlLY3@0c?NB&cWy7FN6s%dy zT{c>vJu}S%XAn~u_p;@W{TPNLIy=|o)JSvS<9PG}=Cj9(-^NXWY?UCjREY!cp`r@$ z-JZVZc3Ih{PNmSbhVu8Vu`GS=ILy(kRCRm8IHDm8>B{o4b(+|$_u0WW%(^R4WbYEMRx&XD6Ld@L5fa3FY0vxa z2akIzzk%1bW;<$<4c=z^M~-&XZ?9qCNtFV3Ph#)=H3$Zop7D7{%)5>6WJbOZG@4#( zcK_Ok&2>EFHfU{6i3-ApP3GErXyOYY6W;(S3T~X{JBg$m!HFIcxYyAHYU8`)jk6U( z^kuo_n;$lkoK{-d-ef3<9G~Hz7eXs0SCy<+2E?=*%xT`>XwYW&;j}B>sSi|9i{U-{ z=yLv2%>TjoMWEZ|bT+gX_!;)2FbIt#VstbF z@rvXfKH?h2uR8*67mYS~ zG2#}wb&f7+b1xBYAd{OAf$POeZvuxlMUN`4&Gh80-xc%RerUWLZw`Vg&Elbka_L2K8!Z zE}44m9XUj2cAnj*S6%OVk40;=YI}BY*{g8rfo!>z`s{wOi}MLD2?pNZmfAmk5uYZa zj-s`jwJ0X>kHT+lZ^xO-VK;cg8AJF=NIl}A>d{KNBpFV1(YyIeukLP~^Vuer-HO01 zZXBDUtR8IrH_M0P=HCV|&u(MQKC-l6?DshS{c?h7Zz(vjs-=oX>H%B=$77Ek={-jB zIa~@heA1#L{|uAUJM~_P0)%6=DI|b-gib1{!U0HiOB^tK&SIY`H^93#2*slE{%LO_ zeok|yvV9g9Z1h=-;^S!X+@WI+8$Z@9*V5arrru|t#hSg2h-5UIr!YZTADC&gr7E3v zJ5WwUWX05fxq*@nGg*l^$KJyhPM*iKkY6X4OIkhZTkUp9DCqPsfTP6n2EJ}$N!SA; z+aC^nDu)Wq&F_Wz#c_m%T7Ah5lSj>34`kG5swcYaD5n`%UN5BW5(=o#W5M~8D};;A zECTii-93_rm{nAw@0FTSy4w{TY4QEch1c{Sl+YZj4uJT?eARyMPwxCR3|Oi7slxGe zEe{qEUZ%Ll(U#gbPDzc2&fahdP6UxbpfH~^>J8rPkATBV)> zz0YDTNerJMUC?J&o>;}|&KvHbVGnoTuk8uIz3^P##h2dp^lX?Z-vHrBbzm;dUKK76uq4N5OVI*NC!f*W`Mk)TkMF4ow0A~^6(TA z^VlmH213cpn-26dX2E^Oz7FP*-BhJF5J*jeq+M9K>5-UCDAnQ_r2F01W?wvJrl zudOOxuiLN1?Qm9s%l>-i>f@JSJB4xkrYEI#r_Qr)Uy`4n4d#!H8ICQ)#c>$%8A403 z(*-PcX6-Wp8VSqmlyOx-O=h`1YRsZWbDppIdGBsfO&Sp%LRb|pblCS-*zQ^w@up=NT}tfj9;4{| z;I-L~TcNw1$48uHsI#U|nQe8ZquVuAFd@hsbN{O4_O##91+G_HvWRoRNNW}Od;L#O zf=oyJdS)I9-xqkgH24zbla!E9^f1j4&(T1-T zwdufzoft3Vx;cCEm3z69G>OI2Ae_%}T=DltzQwfCBgkzC&xCKow@>;b;*zGs99Lca zK3ESzpXN0VaJ>Tl^;J%T7DvU#)0u>SHXPzhH;H6P>QE6WG_QxScbakwfVX3hA=S46 zNr=uWvIO3=@u7aJqla&9vo z82yd)8^RR$ZGuiGSkbgD@pmG3JV*s`tE#^HnpmY~JZEQJU+@s;y15GKrjLpSHhxMd z2O||pT!V;AxlB8a4MXo)rdK$xk??lCsMqKk(>Acb5I$N9;5ulVFui!!W?lh#Dr(lv zL-RRPQYCkHJJTsAK9FKCf$czFYxrB?2hUj>JLz)^;P$a?Gg)T>OGb4cv&${t%G%9O zjW#<~5>yA>ovjy$vq$+BqoNWd+`l%o<5?4~;JPc3@X$rE6xzjhKWmiZu!RvFQ&d(d zvA~)ld?3InbtSn6pAL0aY^jPu0lo*nZ2CKFZ{>uauIbO-Or#-bAPVx182Ti_kMI3y zxUCj0{`2HQ{RRIz9tK{P^z~%T#kiLPX9f$>FkFxIHi_sl3-X}Y#(3gPQOD%sWz8Mx zPmQ7#Jm*d3MFqZ${2}+k9|VrKcqFqunPs}Ws+h{2%o1gCxY7J$di%R5_xHln{gTpT zhvn`u*BQtIIROwo-x0*!zP$CL%D@$>>J>6nkJg;qi>5P29i1UuZynR z5pTw9rn5fT2o3XxK;~ci_$4d&9UIOtr=qg-r-tF0?9rx?OC?MCWvh->ab$Q*brxyaSR9R4R?F@?)jaHTt%dNA2>6k;+#o8FVQ9ob|j1! z86anGL68r;%YD)9X_47a{&ZTJ;)7{9g^HZNnwB7yVFeo#4-Bui{JB$}G3yVS*?A{W@-`Z|9 zJs?NHoR4r;ZG|pQw~)u++3AK+P)nyfa(%^hkrERWdhwdqX=BuC!qs~2t6@=jfsNSZ zUZTy+v;b&?c^{6U#&axHl0_%rOp~ZdRIPFKCE6{{RGS!g&noOzEiX0iS*J1j1X}n+-^z z(nTKbFbKJBRc_MrsTb>$pAiv633@MmY$_tBJl?t-rPc=S5JLJh?N{bcnpuirbES{*m`@q24q4h(#%ZzJ*EX3K;Vl_Fz7-6!?*|KtY zX7*0G^b3wkqlkB`4PTb|iw7MxTz3a78>J;xh(dhVZ?V`pG|uV6S6aJbc0IFOl+|-u zu@%>bMfESb~1{w9w?xWQQU@AEhO zaFTrArQBYK!)v1v1DsE~Ktt2);=Juh90>@SOK`6S=!coqYz3Ja56VHLubVQBY<4lZ zRHnp@OzB1@;Df=x8Mu%HsZaz29kbxF-ryXNrgZ&?Jo-ec%|k|+WLRq%Y;#0bp~iJF zbbWCk%=iWi<4Ob4H@XcNE+yCV(j}H@3{SgkZtoNL?7Dbt_Q9kqe#zQekCwvcBB;*3 zVK!yCY}(K|qzJc*uS%aRPaq7qu`QDy(O=pU9%vmTbV&ra=po z^Rr^o?{xB{^ngZB<-!(|ruMTPKMi1i!fb+*%9Y_S^&otT*1Y$#303Z;MuBcu$_p7x zS7#NS7*Vl1^uFv66UAT>y0BHT_C^^kv0nLhu?d5T;clG6^|20I&jT*Z^zQpeRmEOW zCnmzpi_v`O+$@Y&fpo$t1MPnNN!0OhO#A*s%A9*OS=RwMnQ#&%Ilp~ItmldxsN~mF z2xzV#`QBmj+;5jhpWcp+*RFYb9!h@QVAX6lI{OIqc6=xy%HDFOJAdbt)c`U*ue2so z%|icV{{q**9r^9Aw^MYZ8Jbc3VSyi>%Ry;pXC`hHy9DBE<~|)z1AD{;4vUTNN++=y`>J`LaTapd$ghMK zb(I-X@aH?QujgQ&3gx;K#P98MsP~~MoU|4h3b~nqB9D;BZYb5d88p(Ke111Pdbk6FB#)T7+>D?ne)1$2uEmRijGKI@8_qmKr z&veyhF9LfU_12(^A+tp@M)Yi06Eby7<+C+JRm{cr=V3=AsO03W8V=q8D<$JCj;lLe z@>Ir|L2@?w#YCb6g`rDfdB-KHba!Gpw@-qTZNy&$y=haD)pL?0)CW7!n*VU5{F~#Lv3Pi?H zJ>MiG`;J_$o%EEzV{*gE?UMjw&Hj!7{JT6Hr5U+Cot;^C*8V`Z2T0PJop+?_j`jH} zezH2MjvF%LOTz4-D9viQp;h{^Uw9$OrxntF>b4+jBI zUgq|yj!v=|t!N>-N1tm1sI8v>N4O52TSR@kWXI}h`UH2LzcHlYW88sItNiK1Opt_1x?qYES5igctm8^ z!Lt5s>#51lLl6opw7lC{CaCmHWsc zr20VGk%~A8VG;tAX~l*`@{RPBm)Zs%K?TBhS4UgEyM1Wh(B1e33GP1~-YlaUF0x@@ zQZ295Oe$=7Mo_PsyE&t8L+CjZ4&jLY}-PX%|<)q7{*}yuR!o#z&FzV|DZ3^z^{2Mm8e){MsUXg2v(~Jr;p%Odadxlvdkx| zq0erR|8R|i!vJ*}IOjgMm}&W}=1!Bcs(fQt^CN(4+F&hs`0!gkN2d&lg2qIOO3wA$$4f@w>gD+3q zMo0yn*P`z7<7|eKu`ol+-7lBn6`QLAsr(inCgDCG1mEhz^{3u;td~E9WCAeK46T=j zE0bn^;FXNgFgd0}OO{jniR=9y-nA2FB7MwP&cOtJnD3^|9S8F4k{~YKjs17Z7_z<+ zi>FtZ26C^v>`Yhbx$aDw5pIz(YpC43$Ib{5C(n02?j)Y7c4+`!;uDSZ2Jz2uPm|XV z61dA9+nDpLS$P+e=vtvNcGdT{fxFjasVD=5sd}a5ueT@-SOqW*D*)bWGq=>3RWoXr zdJ}$36(Y`oadIzI?|@u3mAz>_10@OjiDxzp^#m$?tYz&Y6I0mov8?p@*UWOyi5$55uwMuRDt#;Xt#`HZip8lWrgHF19ylf5XG*di3-d zaQA#%T?Dy&7_oTg09T>yy7m@DS`4Ar6 zpQ!ITZpz`#0!qR$OK>{rRs<)I<8xj|AKCHaKQCe&e(?Fz zZRZy;sFeyASB8M5#XnV2|M@Ygq-zQ@QnPHCKmIqbrhY5#j)g~iBa)@)$yHb6U;hDO z261Y+);TUn*#GL~c!4r+#iM`M4m1C6emNdB(Hjh`=zm}SpN+%6@BUv+qkm7HKbtpy zTiE}eJpZ0N|9J=gz3>0!dH3&Q>#t&g|NG>L;#}}l{6Gwv_+o#fL|wsW6yjN9Kr2h$ z+4+VQs6H@3Gip<57^VL#9{w+s&+D66LgWp|#)`MXU_KM&VPN7mGjf~v22Y?-GH@oq zwT;wPy8fS2{Z9jxw|Z~0?PjTLAHNk3ym@{&K`}s0(v_VHH?=eleKRu5b+a*2CHt5g#OiA!Dn2+;%YbR0)JW_&vvp_4g|R*zct8* zbFXaVDa59-RMIipm0R8(PBBH($iy1G|H^oIc23nw_^&UE0Cc>faU38p?>E?2P5npV zC$y@`ohc%Tqj?7E#q}FEt=>FW?}~aXnGvCkA6KARvVh_$u^s9~in>Y_fBQruLq~63 zk|g4#)eYl#P)GJ`;A-6d;_u2n|9hsA8geSBO;o#t-5!3)GvrUJ6id<;+I1&V>`9fi zrWMaSE%aU-msy6ojoZ5R6YTL~0|tCDcDW^04Vl0Epdblr#miDwG~0Oc zR(ylleIu{M@woHT=t#Q8a13CK$<9G|m-kj);60I}Lj~IZrIA~jW%2xi zgM}kJCj*EqmN*{)q$DO!J+~(!xk0!@zsK*wBY)Oc&uajE_kR!4bJmW$PVVcEmT z@VK#pi--v+P*r5odD?6M_t@8(0_w3%c4m(ED}t{&Q`03iS-mR2-!SRdMj61}kfKw-P#(NFU#o~#RaG^^wOJ{_{Fp83^XH~3 z`Vw&WtajdDKu)9sJ5GV?DgtZ?|z=s`tXoiwmjX)tmroer-das zXx*zgdqhY>k3&Wn`Q+GG>`qP_;h8R)^M(Z#l#`(Mw?SbOX-}&eIfPwgY~N>tND$|pAC!n8VI+P*CW0SkL+*3b2 zL z*5*IfEl zZa3h7K5>Baen;BUk6*{WxdihcIEvdC%h!3Hl1h>Gbgd4y%wh6-&d7QwBY_97D&IH$ zmTzSCN!_Be(={@IHS;e>o^0(qY}v7>1B{o);$ixD&WWJ;mK3>={ksB1egH(^0BwSG zX5?!B=#Te@OLY=xI-Bvri+tIyDTyyj8kg7i z=J@ZJ%^Xp38Gj=hGA1dB74hOD-&j(44$Ko>UrUf3%eC8&{Ec0fYdwh`0AZ~F9i;hA6bK~g#>fPToK3SmC z=jetKqD$@wyC)PjrAW0sHoz_Z!y|&6d*$PWl;d=hP2~CS9|ODZWDmYLx8Gv1B9dyp z2r%vY;#ZjQHr2=n-6UwzzCR$cZOt$!(TwK%Az+@jw#9J~ePq&!Un0M)%exeCyW^z5 zJl-a%69AuVuyUOb3duHr(lM<=Gq;*=DqoKc%pm8w`oL|E=k!X)Dm-783OR)o)zkop zV*7_y(S?xl?+}CCs~a>Ra#^nUnYj zXyhGu?2$Kf zr(s#=s{DHA8a19919!y!wDyMLfa_<%>T+xF9se&cAN}RnU&A1#163BOId(`QDYh#z z_!Geceh)*>;Dt6?pHuvjGWM#y(?q1__(;MX=e)bg9#WCJ@;?whMoKBd%hQLOu~xnV zcABHr9C4L9sRX_p*-~8#D{y2uxx#s$REEMnKs1C_+K&xaP!ilaIa$q1IaAAjy*X}I ztRA#j_a>P-_<_xM@r#8|Wbq>9<`XCDs|aCOP&vf}>T$h>oXyC^=xY6h$?d6`{S}T% zfJMfMDMb7(srYymjQv$mP0aRfn2*@!Z0$UoJx#&(md`G4GYndx#p{KrL7>+JojwwN z^gF%~QY+LUuGpbWhJ5DcIcAT`Ts;Mv@mcB}dRu&A6#K!+s6I>MZV{9-uZ8WPIP7|R z`J?*L{_HQK%9wWZm&S#wbom{UB0E(uTx)>&xaICD+gOi`I2H%XF+uA2^R}5)&DYyi z+Fd>Q$0>!qI#_?qrp8bGb(zIWMwJ@3{1_ z!k}T?>*TQyhbZ|ae5nUEA-n@xALX_usTl+3Mt((~K6uS@oLtW2-UDLdb~VVv8@$CTEAg^i!6~nHMw#JfC2zd+btt+^Ctn)YJ$T*Epqf^t9$lTdJvWlm2Zl$nW5%H@ zK(v+n!==GrKg_@N0yhFQj^mmw$2jYK&usv`;KStOVQfio#t8*LY`GD7 zg5=?Yt4#YBk?U1l%YF~sO7=LR zE*E_g45J6!a#)G=F59$p3i>+sW~d#J1qWz6efWb`n{w&H{N3(KaSKvGfI7}nhACa> z)X!E#kj}fCB)XqDml|1k42lQKDnlwd0az~5jofLaKT8scXC{DYy^||G zf)en357_o*cjgLm!6~*~r~+@apq3kY5|l0Z!Bva5D{hku5SeNo3b+rl?{^0-*6l(f zHFNx*_LDnQ&fX*`+Xy_Z2;7Ze)otW4tbpLlqjqk~p&E90EZ)57CsHqaR_A_*+;Gk9 z{lY7jvThQ2^t5S_Qv6?KM8wQs(+Qjxs86oOrt&zxzW%x=obUTepWb$(!^#!d37Lc6 z6DR=e>rN+|9hwFAe?(AT1W*D3+p_IObhiwQnW+Zyjw^|*1^}Q}bCSi}E|PM~h+`HL zs_i11V?(vuwp6DK+7h@t{LD64xhc*U70J<~F5@>koEB{n{K$Je(T{y_5Y~_9iZ#j_ z5l7BUIb;`l5P6HKx{dChF^r?d<%F|j}I*jR7M!^pY2xiM2>F|hY=RrPwa6GRh!*Ufq%X-F*Fo>g*mpiyl&IYoyiZ)Wn1OaRj3PAXcKG0_Zk{@vtExW(a zDO~l+fyll{4@ca0z*Y4y4DtGPe}GwnECux5*Xn;2-j7(NPeQ-2p2=2#MRR5%;sE*q zuRa*$e?1kLA41p(o-FndR%qQzip!onY9w=39bHjoAnjfI^ZXf>I z8(RAn{a6ym%MZjM0FzieF{zVL0&(XnsK804!bI<9L2Xfr{W3&9;HgB2 zlQcuN{yNRCy^F0gy`t7wpg%(Q__Z>M-M3^BeY?FIAP%jP4#7#FW$<95A-QuWCW&6s)3%GGO=RY5F>;yYf!B8@BWw0sVDa>C z_I(}_I#PwD%P}TjI&{%nG=U6Gwx*bJd4HfC5^8Yb$8T3w0~9JuaNJ&;A1Isv#dLsG zO+FIk`WMHgJ~L=5=`*`UZ`Lkh0p&IJZTka5HA!%GeQuRc2)lkHAJ?sySUm74Q#6`V zs1djEDp3W2pebQU10fgR!TH6o8v@M;66OlGR8Sa6@$>!Ml&nG@lbY=ccskmZY%FL# zm-puYg=n*%;ir|a(Nb}nY^US?fRCq048tY!ZLwj%+!9@YuD-hWezESxYSmrlHOi;= z?o?J040%SNFLj^KWp*XwxB+rx73vkQv>{L>Ry z-f*=YOP*F$dEI3?6$&`o9v&8Y4fsUf=jNDw%xkR?#|ka~$i80YyzY4Na*x9tz0Pf} z048dde4PBz?md>+7!dDxvM+P_wY>7^$9rfsRURaW-&LaS3j=cWQyuiNS4q9aJ<7sI zrwg0IjZhP4)hWlxLJv}S)1dG>Pi|>GW=M@_i22P^~8=R6JYG#Wzy9FEp0k=-^3L+zT`DEx;_)J z3)5)eK&0GQKz=%GvuBq4hUDJ8dk&AV|Hb5z$^ZbQPwo?IPG5)zm(8x|kKSCroCa)s z(O~asIdf2We~UcJJlxt5WUv_$kKuBdJkntgxAnHBeO(7bxy%n5qJa=g!}+-0Ob@=K zQB_Scxk%(hU6RZBG8#MD5}nsP@YL^|(yOfJk;k#`y05bGfITZ$Jn`@&Kdbr1=X+xl zVzM9f><_f*+IoKM&IWEi0UCiTHC8_DekX@+UYEy_VsSzcm#7ZUx_|~6$#$y&LyPEs9uh?w&tg!1pw&5SOj0f-{B!vE z-|HS9?}BLV$+FVW01rzVci>t%&&6=3Y9pP7Ia}AJB!IrLujm@f|OOF7Gr5osoLkHy?lhra|VM(bIC^v7kC| zfx|qS7D$Y2Vy|;FApNQvg2X=r`xk!gY6`mqf2xo+`}&z_2`#p^6_MPfZ_~EZSia_5 z|CxDrY{b!DklX%#(D{G72Ri<*94ILxHLeq6$lBJg=WL>J)Ypb75I&bNb6Ggpja*wE zCq~E*+vVa3d_^UnO5o=@^{(rThCVEYjbFnkcHe6-8jU+}Uq$t*Gzi(zw>~q~MN0ri zc4nt;@r?Z9h-ElS4wFfv_ASD*pHg+ILWm!|QbG5NO5g#|w@j{d8-Y;&Lkpnk0+PV9 zOOvPGkmCfiFvNTV)V(>7jUtNq8pUh*F}yaU6Rv6Dz#RQcs}fp9_Vn*a;nM%@uG2b>@m4*5ufttmAy(*9?9rAW$ z@898`S0De0br~riU8sKTcoSf>NuqFrH``5ZF$JS0y;+>4My=#V0>OIM^>Z`8I3hhh zSt%$DsQ?aBCo@o}%MGgWsG%W>7g>&MInPUyZm{Xe@_kL)+M*GQz22>T&rx!M9XC{^ zaCBr@Fx(0%r~s0SCowdRl##M>RGmm5Nd~UP#Hm{CPpvKTIT6gAbWW&PZrcpKkHhHa z5`t4-U2!uB{L999>sGelyaHkULqsyeNt>Iam6~Kos3UGu@0jPk?bJA#HUktm@}T07 z15S=$$?$Khje(J@CQG)w#*Hl@5u+CzEr35c>dMtuH$N?BDg8|a`GXUbYhQiM>Ad-v z!lEQ2_?j9s{~konF#x>Ci$l&dpTD{J{@LzJwqF2@0}m?c+Xh z|2M?KKkE_is1ps0Ns{oTzbWtk`M6*$7&m5Fc;jD7`=2Yg3n$gPB(3xRa9PYxv^!-E zMO82U{?Sh!fc`Uh5uS1z3jE(6^LLm~1`W8Xdr)=r^8dqa@c(;tz%CHoNnn@$&mF|S zetP=EDHi6R{6F0EBPW~kzl;CZs|B{^e;5C^Xy|`;{_pODlO_A_we#DJ132UVUORt% zYo;ko#UzM4UU`)j=h;?H_)?2J+oNf{sDUZYb-y%S`bNuS#kUw`F+)ns!Pp`@THz zq=l;k>;_-MK06wSb9qR!YrPb#uswcxen02;3K7Zspco|0WU;;%Cgm*+OsSj-pU=4U z=V~awvAheEI~VA~Zk@HqqUNdRqK;%gDy~`MCnw=ta$N#F_amps8eQ9IeH1E^s!&r z`Z|bI(nqx<$jPu9qY+9chzH2`cyN*meUn}Dgn?EO|V z6I8DaQ~(`$fvL(E&vEVC%JPGKuhsm@6$ZI&i&*3A+!Fo);(C3 zZHfUH@W~7BZ#1B_YA|%)Ba0WdEF4Zr9Ia#yV_I?Xqxk)`XZM&Ma`ghe-JgOc?65ab zt+>Ug1^iiOzEh)rel>7lwB9otS>0D;I9l#mB5-|ar+Mi%_V<+^eE~3FM+~I=QFxqo zF-g=#IZGwQXeZU6?(6ruc;1xx|4(pjd`cTP> zmkzdebpCM&fj#0+su4h8@uTpgp=DD| zivzv8#)exG6oAS0!0-w%OSO$z)SQdaSyHbC@#*M z4`O)570!KqvZ~M44}}l`lVdWx5#7>BB`Q_d5yfUL;X}#Wa;!q>DS^H-L0WG zXl6>jutfj)re5i*qc`TG+afi}FL*^JiQRE3vyr4JMC)lhK6!3?bR>xUfzD#2ig+Z@ zYQC`{hnW}O;LwtEKVD_4fmhGWZ(9R`48%qOvfRjcDvjCxz%{>Lsupbt+C_IU*U;In z#8ynDT{qpvk6)U=!k&J{=F0YhwY5C(2OBrl6b%E7PpCvp2eoZIt8U2SH$|JzLt%3R zy0#nCvr|sNn(-uRwMX+cVC;#6K}{wIf7uvfypnKO_JFCi+2W~0^3HT~>Y1*0;jAeh z8Uogs>3q|9YJq&#L*llw^B*DPEe%`SvfZCqiZakkK-0q6pQpJ#VjYty)xdv0qxI=A zlK9Z|72F(%nCfted-J0|dG^yoyWWs}+MlYC^YS6}2;CYNcU=qH#7X=j#Dn~TkF^hH zDNl&miAKFqwygs$y{}RRZa5mFKVU`62i4uRZbs&AThZ(7hc`3SQ~2Xn>UPA#R_l+4 zk?d4w1>3$(P^nKU9;SGq2qF@@c1a7N(FX9Xb2++|G3Dl7EL%y1&w@jqyAvyLWB5UM zm}kMi6jgYGYDeD_5fd^u*~P2KVrtVolH%}icWY3h?RhLbpZ zY;v%r3s=!@a7k+IjC&-r*(yI??R@>PZjRf04Z~hk&)IOW537A39dttgk?8fJ`@-(U zs3&eA5{J9K99qRv2-uOyARGT$%SEQ{Z|UGw)dEB4pD*_QZA&kC@dDuAF48+(JX?Df zl_J62pp^W26@XN!!eK7WH?24nj=_%8y?`*nn#|RGw_E&#bUEvkYqwPsu^xK_gm0C^hb{(s?_%^9 z+Q8UxG^TobBTJ5)p?i7ok6UnWX{vYWXSPKiu5f4e5%Q2>V#BtdY3wFPQ-+b)6R)mk z5TsHq7Yzc-!vGLOBxC4C74W`K#@8KR1CNslHKcgJ@%$mas=GQ>1bV-YqS|j3&#hXk zmF6RRB4VlCLdiBv>`*E00=WjyBC;rQ6w=VT+$nJsQJ<(n=8EABkP7XNkJ#U)HpbY( ztv~Ej@jvVn43I+WXLb4xzccMjVi&~p$>A3~io|}U#|qCxH`J^CUUMe-^;}#y)7X!) z(06p+Tg!sgBu>kH1?B@*eP8N5h~uHAULfHut;6obs;9zEdK)gX$R0lvwDD&CMyUejN{G8Bl4z*HPR z2+z0giv8rw-H@t)-GsXr<9Q-cVe4&-SMDI4q&mQmjk#PBzzV~9f_rM@y0WZ=Z_Ac3w38=kT}Z?}Cu^a4Ei zi9@v{=DPcCDv@d6f>ifrPlv6RQd=}+%z*q+U$ZR`mG zAY(2dy^73qHLB(b!lwQ`xDOE|KNaJ4ef5=~m=iMj#sl?VTJC1q!9>@zLkQoSS+lBx z4VJV9m-k8qy81?)_UirlM_YpvqpNvbFS8nI^3^Lp!B{Bs#`gQ(i6{w9c=+(y4rraI zpN^D^P5HZ5t5Ur7yT)v3j6D5js8XnTIxR4I%7tMim%G28@z2oeX0S(H$iK_K#7Ly+ zo8(K5mWJxzyZ2i}!R`@&qN?sJB~hGu`U-O(UGWsiwL0IO<@{oOc|f%Hw9!Mw^FJda zoL4bMD84r|c^#6Mskf8NzWGKMR+mtP<6WlyS5!)LpJ;6ny?LRg=Om7UX#~I1PWC?VM7XMt7|>PDhH-_YdNcQC zcg4gEmIVyTztErNpS}NU(igZL%(<_r564A6jSc_0I4_FRIXL)E@skvJ^#oqM!}_r}?WU6p|GmVq9;cIq z;RTdE!q5kqBv-^JEH{xkWqXAJyK=!PSRh5f^jir@sgw3CPurvp;YDG!rM*Ky!|U(# zRviRxrvsL=r|H52w=zvbO~^Pl@kK5gOxvhf&EB2@aRt%D)tV0cCz6|H^p7j?R}wr2 zObUQ%RKanPLrEhnVLsWLi8EL-;?^ha6vu|>2$*tS@^g1xYnC}RAHn=T$Pc|7Ng~ef z8<072CHF6myGRu0^?gx&>FD-Z@!7Y}SwJihr*IBp(|O&5GcdD57cz`}M2!2uQ>`9T zt~cN@vy*Xi_hs(|4F#(P|Axbl<1vWJ$3E5e=oo+8=N9-t>$zy{!;3rojIB7e8+U4=pzpQjS_U0gwG-ed36d}(QEO;uKC z;M+bxu*T7Vj?tOZts5j}tk7S_uDdu^_hb5o?}3ur#P)n-cRZ&T;CO3tQSDQgLG&xA z8l`nAZ5D+uJ^P~X__k$RS3AK+2Jp7|- z*56@rWZ6TGO(9=_cSa}q6eG$(1X}mY`?x79x@AkGmu#@o9@sDnbo6l}6){})H$?<~ z4BOJsSD2>%Qd1U;c_aeP>6D^K9K;qBB69Yz<=w-we4ks`&0odv7Mp1}@pcxhc)QhD72b8>&7~-C@J9UI2)9S{yN9I@I9L0>y!NcY_=Oyg>}41~d5e1P z&N@f+!?W{^(c&ZUd2y)y+32O+sMTSbnU|baCi^xb(9E}p`;|t|3VWf`a2Y=Wm2K7B zGpMHCUMnr`-ctniD-Mc2xt3tBK|QX{m)>N*r-)uWr#HHY2vWQE?i>8H1Ga@M!b0+0 z`N6w$>J5)+K;{gWLFw3qsDMjcZ*iB4r|xR?Ghc8lhUCbdC(BbWywf)&LeWxPzHFk> zX%H9~7!CrP6I+Fe6zWe;J+Q`<_Lo-zWmKUx_Sw{rbGWW1k_fBu>7$@6AW0dvW)_IN z&b7$P#4T=@SRxg`8_h+710p{Hwu60NPs>{Xq+mJXR63v86AQ4_KeRBWKbp8Zdt2_H zG0%+5>GV%G%Xh>Sl$FkBbA?evSYf=4w!@iN0anLt?i z4Enm~)u%J(uO!r*2)zMcNYtpgKT3K?dwG!Gz_WiYjaPF|!6J)Sa`DQ4+RA|F{n=c9 zCP_l+A`o_s*4tq1xiwyc5Wmh-c9wqr+DI&mNZ4#&j@tGg4HbzJ@Uc?50k`XfVNeY< zD2!;~%-|A7t`U!@rN*|jiBAsQK-{cmd1EG+sSXf-b!$yXGeke^E@#X%$SD2 z0y@f(v|7#U!T$d2&&Upyu1n45F5L)II_|0{>1VwFGCW@oX{SCBcDQww-Suf~ZK*Nt6nv%BE4NVH4SWS&$lzVkmO2Q`@0){EiBRCTpiYZ zG7cX($!Ylqg!Av94gC#3vwnCIE^t-$!#5ivzjyqWMlX;E zhI3RNKN)}dh?E-Os7gOnr!N+gW}TWKoZSzyFWP=F(wuiCkWCa%7-QP(6i&(WIY0It z5-4nYe`!ha%pm0{h7`r!F)N$-PT?L<=XKU{3G-Oa9}m}D*)7PDcsDb#oz;VB=;{0X zBK$@;10x&;HSS=MmVTl@svX!C6CHh3I-Xe$whAdey{q?`w)T0zD{Gr=Z_YP$h2>+pg-E`-vRt4@ORd{pd$L;Lsioht zzw|#EEF6Hg#n_upiJKJ9x9{^P4c;9gK&x_SRDE}JGtMm0ZGc82KMsgYG_FSjT^u{a zeRJIyeq84wJ6gdi59W0x&w=q9sbYkcAe4s~1yCEVt$3|V9}_xd5_003Q_bb0)?(7h z(n?4oGk!4lylt(nEn9rulnfBed*}2YE8(3)a5j#d2)R|}BTtG)6V+R!%Je^1gbDen z!0pCmLKZ!Z*UyrROs7z-WkrWj3yKnsUQ0$e9p2)`<5W$9NWVQ$V}aFCFz2C;pqh2= zP8s2p3G6ZIJc*FPvoB40u@SAy-@qYDt&O>v1nJpGM3w(fFm$_WqGTRF}}fFmXY;9u4b&HS>DNPl9R@^Czk z*J&vQfp~_mJv3eXH5JwA9AxR~dl56mF5)E8yXi4a_C6r*-LZ3_R%$J4BIxO~3K727 zOkYf0Pkr!+d%&_Kc_16KWp{Wejab0f!^}T z9$EcLe*dwkX1|y5k*HB;>}YM-TpB|2@6%5FAiDO8PLVQ)Ewm zO`aA_9?eMylAB=!+1>%37>L?7^xP_NtlJ{#CP8bd_2)(>OGX$f&P>#M5}Ck0Ey2?g zoP%OHwyZ{L-6+r=45q-zy8P35JHLvQl!;9frHk5>fJ%|&+i5!kR!f!abr^WJ8I)HBdsa^t2p{qR_*9CF)*FxwKwj zIW%qwj#qxv&->4%8KfI}*fGW$5^6r1qma-0GZ#6~dbqORJLd3H_Hh(th6~Rp;XD)I zviv?Q?L$!>ONWb}eI@Vz;}NYQHpu9=8a&xx$u-XQz#P^p2D|4M6pt1)(Qox&T{qLd zGld_ah!eu7ZIRlp;0CBLp+vE-2>wdwg7s#i*s!h_hg(x=hybRh7i8*+@%nQMqrD9QTa*iKHMl)0L_|jcG)e?Pg|YY7FqqIt-{hOJdkh>t*=^+anz#c z`13;q(uxe~22cZpy)D5B*nHm0yruXZL(RZyFQ+fJUF;gOQ@j>){2@sAvDcp0k1N|& zLuliE?Mp?54G1-V-=JF^9|9wj_wtp$rch9I-exbovpKgFN93V~rzxq7@}K*j_N@ zKAveIgDk^$?^%ZAB#R_Zkyb1W!UH;!gj*xCNxq03|G2P>MlxLDeW|qOE$W+x4a@fX ziEcQ+TV*}PgIuGI_)6CHDB*`U{0EeL{#Yq9>CgZo_)vb`47=A=(;Gp!mprydPbjy? z?1m2~++oe)y^`WbHFUEBg*)xJFY|ECkKh)JWerJ>eNx^oy@qbKmM!*deIlCdZQR^u zAnj@X$@iV&#F}YYST)8b4eS4ff$;tMmRwfiuzCLcd&QA5;m7hcsy%gbpL?t9VLs8D zIssAO5}I0+HdzaUCM%7`W8^R1xB~|>bpx(mNuA{T-NF*QXX0cEkGOV zH;i0`FEV3AO_rZarF(=NyW6DDY)4={L`1)`yw7#uz?Mdm7CW4OcloYRAH`*3O$FSR zmxo)^eVA$+H1p$m_wG0mrv#)y3R$9nwe!5s{gcT(a>5;X=$UK<{5bOAAMu-5}DBWuowA(gsr8t5+;RNn>z1yI9e_A-JNljcmpQAO}7ficVU zA`&k%_nEGp{CiG1v=dJRY%y=#DR#Rl(^~6R6&ekrx#nFr<{)eLd#0Gj77J^tJLFg^ zBfv(`A_oKOllAP58X)CnjjN-!q0UQ1Aqf)42Q_6@!+Jou`}(~|Ovh@23I(oPvX{|w zza#8>DAe4QejIIxlA-ftX^69@5;SM>y?84Mly&W8=J3U=o}H4%%9M|*wc=S9C1^%c z7)E;Ekr2(?-I|s+h*1)qVfSTpLw*DWV_ha-u%fTcNwHEaWJh*}Mn#`Io|;nc0RN0{ zo#|+~C3{irzO9`%OekmI)D_G0XCu3#`%N(~Ds5;~6L)0bE2+N_{udLLn^F!2U#1mK z^aeLy;;x?_OA&#Q{yQprZbu~P{BL8mIEk#bS(Px-3)e9vDW zz4ztuI*`g9*$T~N>`L$@&&%9N9cK(NsB{_ceOl%cZQBt43P)`D5}R+y{)NY9)0vzr zgk>}NO+#dv&Xt`-))de6Xg&)qL*SZb4Z6)8E*I(b7SX|IK*>C)4>PIwM9-L>fJ~`3 z6fyKfR!te6zqT`(B^+`!@-9`5{ktG8>WcHMheF|tD`6+vMe>LfjK9WW6Gj!1i z2vLM=ii+>e`AVP|Tq=k&jo4lAD~skX-}xm&>ros^p_h8wb>K~ zy4W+PG2`KTajrmwWNw;^vAfqz=@t6jk!ObHYHJdSD_M)(dE+6cUz4AX4r$jfr@Se; zw6C^GNlfTLIBgciRNWqfFb$a?T&LHS=>zK&B@zW7EfDI#GTNH$2N^qaSi@lC(E%mG zQ{%kwVX*U2^MFTbp%4U*pSPBW~8 zbsClBzVh?$g$B|D=X7ieEB@YYME~;iW$VZXZtalSv*2d>=+FsN1nZaUrt&ZFb^})f zx`!?6u>`xE56kA@B-NeIAq7(}K#4dTpM74dF8PCQQOCtuG@W^L`GIlo zW#&^SpyQ{&8iz47@HC0rTDCcC_Hd36;2?)DnzOetzYtC?ss_`UjlP;)4NQLTSV9PP z=GwrbG3&!_qbVRDrLvF|cgWncZt)GhcH3Y6FnwvHM*1+g5;H;_dQ4?dZB<1oFm&}r zp}}pcs9ELgGHZ&3Vgc52b7t;%OKv^-AabY!Y>;}+*qO@=#9f-}LDU?h) z2nq90@{v15knXQ)8HmvLU%;#4MT-8Qo@YGB&DPwEr{r2hN+%mquIKYvxvGCvk}5Ls zJX)+c%J7yYqrN-DeRAlx2ZcvGGGH8V7WAr_o1bp>Q|(2LAB=f!!+2wgf(4CrUjZvE2V18wrXowTg}@({HG zynfKrzv~SD@HW0QJ5uF2eq?-G-VI1YL{1$x6Mpyx856f@2Dm@7Yv$Y+$$0wQd=*ny z`lk5-_V(-uOg@KE-p{zfe(nM9=64oLvxuv2QA4i_VOuO(OEDKG2{RbAJ zFGj%R;CzF+mb(*ghAsUre$mM+-Q)L&=eS}*!3KxziK~4YfH!YMYhb{1&+yW$B(qaz z9#;=-$=N{bCH8M!p$O-m7SkNXeBK8&z(q#X>_OcWjR(r=!Th zF8l~8a$XWL`N-++R_b_)Vz(>)-iRk9c}MtHy=a= ziKuJUnpo8NYz`dsa4sU1U~hD4U30dQ24EWj5zJ}TrdxM5<7>t)+g5a*{j}%=+nw@{ zCm429$+PCUnLvrgchd(fx0cFFEw(Ij^p|Cqg^+5R+rKS=CFw5!$?*H=_z=|A77{?;Qf`a z2F|-IX5PLob^R=d+wa9FCrrcL&C_mI_8DjY__K#0Cp|@DFh4kv)vjsi$p~B;J`SDM zD&neOGe+~G&;Ff)TG4US$G_|K|7FW@`xwC7u{ocfB%yEC%_$kZXx{teVVXu zq^xCOV32}*x*wTTcF=7JvGe_i+~3z+|Ip#lp00AXF|3q;||+I0YYiq=od0yYa1r!wjmp`)K9MC ze@NWv$Wlr)=}IV{w@u~~sjdee#NE#j%+tkh@5L&?#0tTk4+gBFoet}9MpS;8E0~#U z@w<)2mio&Sy6ug1bQfy$oo~{ z+}!>$4O`uJO-2@ArkT%EH{mK^D6aHCzCNpE*H+)xw~Rkyxl6$A--pH+h-fnKW5Zu7&pg}2tkWZLe6N3m zmO@tz^88rKtnT^K+&V5Q>)o`=xdjS8yXTi~uw5UCRC?`RNqUeZ0iZ)S?D!SN`5N~v z9l1gJh=6F*bEipf{lYvg6O08)Q*B5H^H-tLzYHRr3aqz7v=Dm@Ly zYNfAdp0TDUaEnE+Nk+hrhPmFq40ck`3(r7-_3G}=bKXzoU-jqqZ}k1bLK^9qC??lg5oLb5zj)BNzHrG1<7t`u zK@QhX`88jdmGoA|Iz}PU;*Ggg@P)*?u0rOTbBl1)THj*TYn78u4B$ACyk}i^q$N~p zx~?ksW*y!HCHY8C<|n%tv*-N)PfPqZRgU6;O%EDo2OQOjP4iRo6&LZDkF^;z|HgQE zmOf1Momd-a8_BPEL$V%A)=W1{rlHs_F$hb25mp3Wk3RD>mE@DFa&MHsM`S7_2QT;K z$XyLg|9N2{F@litpsLkYCfjy5IG9)4#k7U@-&OW?dRI%!5x`Vy~nPa=9=*aS?;lK2=7P|CK%&JoFYVBXw?QU zz8F5}&(RglXni+ct_*#rCfLv=5)-HJytr#z&1Ylz> zqT-Cj))HmR>;4DPOtzRwLsjC=>Pf`K&y-%MmdPz{13inrwy>5~z9_w{^L}P>MUn9> zsymw5C*0d0`~+(g+dP2AY{zeCau~7^u-s95mu`JDkQoWn8`gun;}#BY80(l6b~Qjd zOWPk97y73!^@r<}TgU>xj}h0i)uQ-$6|_rtn)ES5hVrHKYPr^*?9+xyLm)|p^?0>3 z2sGlLWC^93_qhGwMje+sWZ9`8M;Vte;MQYlg3uN>SxPB2?`2s&%7cF5jB&VHfC7Xf z-`*k7Bj-)w<2wA--7a3Nf9sd{pA~iRfO7%n@f* z5nFe)tamB0+2~md=fN+pX22U{m>R!+?S0Gnsl48woR+6kr}p(s!^HXJ#ATs?8)&!g zjji!@VwCv+Qfh*R>JK%@%*1No9D7vIe*U0K5@t1FGx_sslHFisz3%PARi=coiM{-D z$A>Z#=I+OqJ*(9F5Y3eF$S#Kyoj?`>CY2(JMZo6aumj??S;)-KxWBqnyzeqz^kvQt9H*eniq1JmHn z)!?3=TSCPSBVS8M94x50*{>mA4?4joZOmPk!*WP+I2T}%5|f3g@bvc8)t zq7Cy*LbS}*vMaZ_l@4yoA5}A0ldTZ-nRKf+is5qFb z{nUMHCgd*T<89l5K zA-Io^xi<2Hna`xqc-WH;_*WH)c#HRR44EiReG7fjsnaeDI0~CROdZkqq-gmW$NfZO zd2eNK^|k7ZnH)8Ogxr1PV%){bWZKnam$3+Q`nHAcl(wKoLo&p^F+Iv^ zMRYugpg9#`eRN=Nd3}=cHKAthy|TS$EK2o^Sbi|W0TyUuoe{jD5(6C~u{+}+FvGhi z1wg^9o<#8*kL+;ktR%uag#(KbL1+T>UX3%(9&&Z)P^CqI-f2k2~yLtrgXI27lPn zFyy{Hg0|AnL8p0z?rd9Sdw+O}a7S4T?d0#;K3iRsp~Z8NQAyQ1k73mb+(wv1m$AKf z*b(tcwbl^K&s;^VS^#Z|t3cf)e$ zjirvi&0;^nE64gh_D7~GX585ezj}%4!_LMUbT&kAA`)wO=e6zhUho_-9O{3^l<)Ht z@KD%Sh!OL9lmDP1W2po3g1KtTqTpRcTbt81W9I$2{MT*i<;1Yfg&l${lFP%dxqUrj z76kT_R`-5+YP|BV3ne;Wl~-$~00#d7!bNtrih#$X3MYbzLQPBADey=cB6)E|)n)`? zu2g|Lidel>_MQ<(!yngABYS-lVieo>R~3OI>Uvu;GFQR+nk0Sn>0{mo4Ugr5*i76{ zR=-0N;|I&8u>}wxDFyD@UHK;Z>*FfNCHmAjhDM0pyi+0`z091pWEJFA9wXF)!H%0|cfU06K}-8gYex*ptp>A&dBh zxs}FjEwy^MHluomJ`J}j!8)Sww9=-IktE#AfNJHfb*!$*$31@AtLB)oJ^MP+V$$1E zX?vDu>@z0Qeq?EWv~5+nK>c;HaCE4sJ{l7$c5ejvUSg5osjIxw)Iw-FTGf6rb5OhC z);2agdha~#0*yd`6yX=aO+R*2s;ETPJbsaRDk~BH@s3m)adF*3d_+w-BV%VYEEO$X z*844~W_9tNZ5>49#Vy1fUHs>4(N%Z)H(s_41aFT6x!p-7m1mDSJ=Uh~EZTc&sywZM z2_BZ$Q#D^#th6;;;GaTuAO;Lmp)u2t%J@0Dj(z$ftSerr!16ho0_Qu6A;O+n?Iu5b z9kIF6FL(>_wIavN{ec}TnO^O{7}UK^THak{!hRHzHVEf14_u^NKoDs!R#k+G@wnS* zbGQ*JNv99Qx^3*VRCzWWx86V;(_RpUeY<@74p)FwWv^sC z5x+XOX)%k@%=YneDS9|@&cI`_KLEH-Oid?39TW4jaMYb(b)F+fSxC(YRf)Pl<>5!aVbP_v?EIUm#Xh zYU9=ANyF+GUS;OEzk&y3FP(B{k_+mUWWL%)d3rx|ulwk+M7T_M>S4}&Y>SMxbTI8< z3B}dV4QY_$17+oIB`P|cqJQGA7D=TO;>Nnu5G2aX)vU6(zvnb?+ahx-L;KvTSuUEd zagtb5czbyB>o)2|`ZNCFVy|?M?Pg6L=M}*LFA8{^)m9Wp2wM*G;L-g&9%dPO3Eu~J zDUjo(X8DDThGz!QsFhS=-1Q6alQwTB3soi%V5V}_S!92KWMGYIu05vYwp`*s!E9G0 z<~EL@KK`ene`$BBTZIk(({RP3VI8P#K18qfXynp%{$f893_IH&ZkvF|TsiwFX}F{= z$yrBNt?~!YsN>vGAKd#qmGNiDo7(;M;;%)bqFT?u(<6<}8x2d{;xu^UMS7U(!0EYj zctzu?s*<4!P&NneFBEgM(zxVP9;G6p*gQYX@;{YZcqo|utPXc}#>^JL^*cUQ70Px= zj?^$%j~PG|Z-1jndQl5k%-PV=YPEI8k6 z&zg!Cl?K-ALkmg-cK1E~k~Ei2w|V1slbrrya68xaz)*t#;+VldLP+il;7+Vc4mk z${MY(HuB5ft#l#vR2f1`;wTr!9MJa8ZzbTH3HbHrbkJmFy|;VK1Lay@UY+9Y8_?_B zJ^rZ1P4-5tTJzw-ofLw6bZvF78`=zFqvxXX4WLPH z6ZjPem3z}e$(;xlq*A>w)rp^=d!DkQM%OE|yk;pS;t5a_38OOB01ei=tTisUih7x$ zy8Okx;}v9)7({x=t%-oIAlSi|$_pR`W~KFX<>KF|-YgPHCEV-JOYM8jqS)Dc>AZGx zkZ!$Mty)iagfG2`v%6ybB{7y~b>3A?3@bem>aH>(cgCeg&n3D~;AyYbL`iS0M7GeX zH2>hLd-?}Y6$Nt({vLzq}lW1Ejs?= zxF<*@UNQ>9sS>W>NZd z3&h=RCz9H?=UA^azm_OZeL{_Oiu;uNlHK1boh)Fg`pFd)?`->H5+TdqcX@YyX<^H*UcXY_~nNIE1t4nV>*FO5wbMq(tJB)oQQ>{a%W z`-)P?ToqOyzmgRaf%nsc`I6l76%8HvGMwf{QMFmhrA*&Q2Up%X8?ms)OqKB_J5SV* zOVi+OIE0Z-Ve4m;^#KV_7@--{O5QsU$Vr6PgIbZ0K zZJW7yIKU{D3A(+^4M)`z%10g`X4d+BHcv+4;+9k-d5XijG}g`U-bjs0kr<&f$oW=J z@suhLAUq?`XD7^hELDqUY7}D+oK-G~Y_`ZKP`5Z@ zBtC|yU|`2aXx^QAm~CvYXws6MxzX}E%a_@T(N%&K*6M2GhkEFWOV^691JEUw&b3Q< z_><8cC1i_vep=qLWhML4^G8u(<;1EO+~DDNjWa};kID+}Fa->F%-Q1DI3KxJ*@5@C zik0!<88=^>Y%O>v4~tJ&s-hCz)}@Hkd0NYk3S7^)HjnVC-J%<>e>mE=$g^UaN8D%%drqg1WA&`$IZjGSS3Z|ev)$oHCnjF zNRe12m|%*j#H&Nn6JP?Py~D!XBk55jW8iEgI?5(|yxB1tlus;IPS)9&d>X3LvFXXb z@1v5x`ULe%F76jr7N7~Tpe+^4WL`q7-}rI)F9=V`PuJFtE(^D+Cw@HP4u>g(D%E6E zfH*;+kz@-em-kqiT4CIL2S1KT)#9pNg99=aR-?crJ`vxKIFofWWj$-B@ht8aE!~*@ zxaHFd(SRn55_N^BqmcAQ^Do!KZ)aS5$rwrq7jM(QE)pHSY&5If5mRJ`Hg$8aT|8_~ z=KJG&3IIi!vCbmB+6N_z>-R7j-V#0};!9`4hxQh)N>H6OX053_55pVSSdLUYBRTf{{`N&{^-AhHPVwXpGs;NQuD9;EUvrv@SzU=Z!6zvcSew;#~?sE7U~MdXnX=l z&CtzXpYsVQQ9Hxq{pB0+j~G23X4HjxS*%_GdJ(1!@B$E6S3dvNOQTS4F{g!VW?E&x zvu`Jr#GzVEj95*O>vLR1jEjNdN4Ze1O40UZND@Q&V4f`7NDYJNDjtbmqK}QEEjd{H z;_j3zy}Jq109QQUEwfc_^=c27BB2j z!Os+~kH4v@w?fKL5}Pu##2O0LC75jEk(FfAYAIFYbYDf8KrO1g17iu8Vf|AF z@NZ%c?;#NQ5jg&l^P1!&{ndrpi_h)ol-H;IYoJP+6GSlr5c%Tb2W=J_nQ2He*B_my z^45rZ6_K9-6nGsJj*~XUD0%Viimp%A93mOA&T4YKjUPn;NZt%doLi)0J)B)huPgrw zhv4%cQg9~F?e-tm?p+$oE9LimFKig@_lG@QI>}`d)@XLkfnjT(#d5Isw4|wRRyMaq z>Dp4@sA4F^#^ROy;!A)N_?(^X3ycP%dHHDEs7t_jK?9f2+^oREhM2JW95#TBveT-muu$h{Mq;^dz3H1^5-k(>rN|L5?I z^OU%8Bw`T^d3T@3O}!Vp?UmBvQIgH@5DM7x|)!-8Dc&< zh29iL_kOL^1|>Q+* zZ;^ONn7kdS>DNPmvwsb5U(isjF9^WPD@{yWL!ZNOT8x&HZVY zBFB0tk0{pw<6oFP&vJ*=dJXv$i3*?GFW#iH?aAyG20^#D*YiO-#d|0Ql0LpX%9cmg zsc;KMJ!{!7)`NPWo5H$JRm*5n+Pe8+!+#NCGMC#w5Js~+SQHDa?|xPYg)~v$l}X)) zE_m;6zQGnRJuRP0VeY6Uu=md5EzVjIajT{cQ9#UPfyapoHQj*DUv*1Sazpgc63cN&IA{^i1cDn$JW>=nd=d)_5)4f z;sRtZoWi8@`D16D>Q2}=%CPvC0W*ItRH*le^iaA^V9XrCxA^@0%Utyh+nB}LqmL5t zIUajwyr1getDP{Dsm24%`Wj^p%NQ=qqOm?YemwE9n2JUs6d`J2Eak;jRjII9CLzSm zn6A^rP#$}iY^W3_u7i+6t5z3~t41%}XxbC*-fY?!BQz!(QHyR<#|yoUNb1XqPWrVW z#4gL(Q*#gDNnuUFd7LkXj#$T|R*0%)MuBBEKbk;6(QiHWR8D%NwNB6f70~5))0P*0 zJ(v#oo`yf1jz_K30!7i#PXqrOV)uty~ z+EKcpEfI;4b-bUfBEI(o1KMi#cTC9IosOeUfxxc@aBnL?$E9afT2thO0bkR#Q@MOE zMh8{MJsDi&J}`vgIQN_nK3GLN01-4ml?f(4KFFbtc%i6khcM?M1(u<-1WK+s4og=* zv&Nf3qOFfqdt8(X3>#D(h3+XO3b+*!MDZTJ`t>h38uP**Qk7y|eEL zBEFZWZlUWnTFehpjO%MCzOP}3bi%_+#Y&m_-hrr(7bx7(&a3MINDY{N&Gg5hq&;<| zeC-+(TebQkW747>1(oEY^3SDkDWA5qbNP2WcY;R~&Ht+O9Xk8wn9|v5ujJ;Ryw^pL zNyD$(I!B%qzCY1rBvp+K`L%u&nMBh^(18*etLUmO~*(9}*ijpG+Q$+L4 z5^|ZVT%$m66<@SUmmPJt-}sM3ikbNHiPe_8mOAUVW{oyE&kA$vBnS9W0PbT z2&=K&@XgwTQ7BaW3nAS^(A>T(*kew(YVyG0hX$B1#69;h&t`4&`D@!d=z3?`#ohQ$ z7nfhH5>S*_{3D~RNb78*s7P}_NnRbD$j7N4c`(VmSe3Y+v%L{~;i!D5oQ%5r;3c{%K z#~RCS>}i!NAuxRSWTDW|gL^+Lwl>~w~FlMLnUBH_8C|M`izToO0*Aaf)>7kG5*Y-VZP7bh1Hd?pPd zfc%V16q5)~zQ~w+(IV~7ACXH}CGEiC-Ts7*d%vQK_pB(BYvwRj#aoI0f2PGT${<(i zD>9GrA`K8!f}v44MlBvI8c$WKi>S|G3_(;aQCNx}y1Bp?#n-}!rI5Xu?E|jXURPd% zckOYm?C=J{P^9M?fD3N9QP9=6;BY?)v7X*QS0Hykj;GecusS?%Ul){BxmA4&23ejv zDwUsIxC=i|;!C29%eEh|*v{#nUJcGFJ$`AL9pc~h<4%aoIQMCQO1u*yrOb3_LHJ~8 zYyax3@YQm8yIf`6NE)O4T-H_!+I~9 z3(Ft^Z`bv-VKe*Idp`*PDrd>`J>VT%Wt}}bB#!nxOQL`3!Kc$*G^^NQnxtxunIA&& zy>f$ObGZ$?zm<4fOOtx=spcY)M%AHTtMYF7h-(;f`Gfxp4u8Qk`?G|hS9Di0{m-ah z{I_%w{IhrU3E15wPdq99EN~sZ!Q1vH1`x+ei+MM2?d6~Huodwk;d820$GeOgjyO@+ z*qIHLQmxs{1OZGB8@bnxa=;mHB3|TdQ~5N(v93`nA50n{>-j38`6?zk}L7dJ99fUd|8ueI`9^aW*(S4%yf;u zvVSM@bSiC#4$!7fJA(-xNJW%Y(Br!6f12-PQJV*OX3aDlN_Lxic$`+b>L9wVLDk&Q{HU z_ys*0|4h$WhUw1$@h((MT)RgT`r;L@BcT7Ls8*tZU1{;?>SYoc5i-9U=6iejQMcWE zB(q`wvyzE&nKks7_)ok{Rus?yT0wzxfPfUzlB@#Q`Hbqlq5!kzs`-#lJXe9@)1PYh z;+$MmW!$e11;d}%W+z0Kzlvho3GQ88bH|2tc`{0BD+P2u-SoJOtR0wnd~~3ma#m{h z<1=?Zfb@IHIDEL}wvP!9Yk=?1RS8?^^a-O`3LcN`@++&nNI|ayajAz)Shsyn2Rks! zvAqUS_1Oz=V4Q*LjrZ%Txd(pvdGcyxG#ArgNAr>IIx?xj*7E`L)}~s%wAPa!&6(Hf zOx12f+_OZh>Anxw>X{g&qiZuU zwn~-6A!na2hWDF=H>9vLx}2}Du#Vc~3KS`fe6Pg%NCt}E`M8@m9&@_=-1-5|)%EqC zIrr2~zgI_tT}GYDyISw>29AdP?z22NjmlYv-%_VoC@jy1&ur;?EMvMQo@<^y+!D=K z=T4XVT{#!}6i_m{JE7^CGA;vz056YC10Vj3Iq#LWK_W5fpT+hXbk3i6X*iQP7y!~z zfwbUg&avawbMNF|ujjPdtsed`_NKURk*C+bUG@Un<%4y_kk!L#9V3{dKlKWSzXBzK z{)(-j0lVdLAvO(zJ9mNJQr)9OFrw#~@8QnrqZzi|r z{xn2!xJpGvg)Or2@VpBxCy-Gj6K~UUeeAWB+u_0n=w7j)@t=QL@E8Z}>m$u!r>hU` zu^PdMp_CUM$Inw)HUvjVKTQLvsXYD1*O@ljA9f6%=1#{pI6W-*rm{P8r`UWM%f z+dnsZBU$SsqQht7S-PEHn>x#MoAa7IN2~?yVyItU$;4ccGyd65{Eq11f0!^+)k_Eg z?bHy!uHnlyHGkaboy>u55_0{~ca`L01}WcHJ>4g4Qpq(Jg@K?qDQG_+0l3u2Sb?jw zx1vne%a@bs2j|m08Rc!WZ?rfn@rK!`R<8};=gVb$8fF)gwfH>qM9d4?`T64{%l|=F ztImdjTq+@EV<7p7ndkgq_!!H7Z`!-kLoT1mtNHa^dwMkgjf@}j#v8ja2}Eoe#2jp^(K`)FqKx*3oB90rmRO9IQKn0G*J`BokJF1;5!VZMbFD=aWgCPT z-mEzLjvA`e0w^ASm~@uYw! z-*VhIFR2gYYAh`N50IE4C*g(DXa^rxG^%A=cHA&)@U?b+Ie)1U+7+lIE>ClRk`0 z3^1M7dSg)}a;prq1EIQ}d$OMnmi4H{g zbPF#zCyu+IVrh~j%V?Cjv}oVuHr_SYy*6u~!BI7bRg&=#o8>~c>-q(k48GK#Bky1k zJu)Nzpiri{D}&2QC$91s8L2X*1!GF0s^Rcgw{R3O;>!X6S5h10-#=k_x>v5u+cOJN zyeS{vTQ8PD6N)FcqF9Z4R<+_YOrf@Bs4sGZnh_5xf{X-s$I6dX_GqsjB7UT_vMkw@lBU#@c_v)v`jqb`I zJOo=L-lY4XuP-jWUW^q(Oec>&lf&RkX! ze%&JwyMTFOk%{0i;31vAt9oWp%uR3HV_*Kdi|)++SC+s|o*K*8-PpL@%(%WulYb)D z{`D%$dSB0db2nc(ia8Vo8&}ir>Rszllz-UmeX2}4BnbbixLm~2$y`fYrUV)BY8B~^je~ajm^d9e!n{| z@`M-;1#y8rNU|O=t$JCKqkeS#*RMiv%|HDr0pv?djZ#|_MMF3li>|`h&2_-rd!p4FNGzJ#8AAB;rK25@GM+=4miXHZ_0S=nOhI`-7Y6#$0S;rEsR&% zT5p9>~&6QSUh%?a|@n*s~Oh=IX=lH zmex|y=JsLE){GLZR*JO?bcSCZ!=l>74}ZOB%r zo`3Ykf$2qu30&mI=8>b;LTia~{?T2WBkqGlg8)mcqsd$5!YvAvg)ssDG2`v!qvs<` zd=IwoGN&_N@0;hqChugiM>KnrhHc$F34MOzu%@|m{W@KG36Di>S&?>$o=2VOOS(a1 z=c%^jyLve?Tm^!`EVTg7?Y8s8Jp*_BxMr%^=fM1jyw*-JX%v|XE1G!N^&P%jg%R4t++Hg3(uMB);M;yZzF<)3<=S?D@{0tsTgMiM;Y(lk}gO{Ukrd7hl?6iTOW^ zC18~f?Npejf(T}71k^DC{ttB1^Y>`$V6-Grtk%Qjxh;^(VLdgI8tp3V?fKK+XBt-3 zf9&m8yu8(c{{A2?lMvo&++_^9^cXkr^HFxX)Fk8;scE?4%P~a)%AJN|7j^j6gy`9k z$6fkfS~WSE`0!m%U?3X%HfCNcbjiG5lXvGS!Ker3gwhRnX@v6{nfRA^lg5LK?u)w< zBHq7_3ro^5TPeyKZ&;onr7Fc*-C2ojOF97MO!z&+1K&Tz{ zbxA>KjjF{>a*!;yEghM+j|%x+Y;)x|I{ewYnYiGo7l?)6{@nNXkm#WNgjoN%z8E>i9y>A5{82_e2q&$Jms~Q*F}qdCf@0X zGaFYHH_##p1d3GDSE+AZ>E)ls6jj46EVM`b?q;56Vo@6-`^{=GM|SQRB)<9~7q_uI zjE^;!dWFl8`z}@1@GrbmA6b=r@8%n~idC+!TKDvl5_dd?!*!!BsS1vq4xZELjNSeQ z$hW?65jc%$%LZGQR9N-h)}vQzKbF+IQOB>!`Qu6WaQAH&vqqyBHLoI?`DOmBJ)KuC zSe7wA?FpwXe{`e70~$2&&@Lfq3k8*hP1of9Zun~nhRYB4RSPb@?SpT0EW5(l{j9H6 zh2D65|JJgc&^~ugQQ@!(NTYtE`n6J~XK0V6=|LqLry-{Je8b?>2Oj0Lr7f-!34k=Z zFl+N2S$%U8NFD6NnQnSaNx_Ue6t&V>K&A2=ELDpa+%xM&v4{+b?vj)7Y>E22wpff} zJRw~z1cgm80~AX%6x~NHnM+&uEC>%W9b9J8lnQdjv(9xuG1!N<*4Zw%Rd2Uwrd$0< z{W<2KVx5g8wfV56S!D3)X}`_vE9c=&Mh%li%6uszL*37_m5ZQ%MaMLKO~EQEM?UTV z2;DH$3dGidrn`lF+ZI=M+;^&gjj#dFiY&xC5-=DgP`r10K}3?}$38VD3nf{zMR@z5 z-C$7ZI#@ecA*abavGw6n?X$?Wg&z00I2i1h*IK=v?{T)f@XKQL&b+Jk4W9UF8l*|1 z%uV*FflGGg6_qasQfAP$u|hG0Z2B;#sff-bbT$o{R`Qru<^0HRv{`nc)@D{($}blHLJ^<8d3PP$gGBS_G9d2lt!3BNY&oKWx1Kkmbx=!2d*tmq z#mIa#46N5uj!duf3Ovos$zRYnQ-rpeS7|d|{+W1{L?&o|_f;4COY&L5IM5-G%u+}9 z>mM@qe=-yKgTqQDN_;90i>XAA`VXYd|9FGEV(>vbUS?l#|Kt$bNru8 z$v^q)0Kujw(UmguAg{j`?fj2xdHM>HIK64>r&Or_>fA_32LfDp{}Y@5$aYJ{Q-~Lu z5*A_o-NnXO1nThAm(OQy3-=QJ>wW$VW%ZwaMtl$RVvgc|<1nA1vG0BY~pGpVT>j@)pF@KoyDXW2*39Uci6(Mc_FupcVi7^8aKdpKj;B zSO354mjAX&|K2=*`^f)$^Zdi+=}mi3%?kqYK+p?uAEX>VqO+*ZHitO;k$`!@b(Qn9 zT#+K5$P-;ABI4^j?mnjrG!CE>`QD<&fF_|B-!>pX^+7EjCaF=@z|Y#<-=K`` z_$Pm)i>}Gmnxq+PJTs->%s0)G{nHure+f+R-+_Xxq>j)26X`Rz1Bl+l_hfmnNCz(g zfUMJqZoTJapB0#7oY8Z*$DWPw%x7-=gBvusTzDB`cLT22=OCOpz{3Nv5cUBfvVIn` z!DN<`;J!e3zWYHW79jl>xGqNVk82U2O0_DOHZ#lrt97FCSC z-@}Ic&a}TouiFUkS?-hm+4@M9fJugTXQH|e9q^D&+8HO#t+h(*!z+P7}|m1dk4={M5#5aQnzMVuprVz)lbe<;yza8T@Jd3@Iw@1L|W zpx#>}@E8}0NqMcVeMYZc2j86j@t;3{7o-p0KlikOeI8pk1AmVLTbI%ttGfYLzs`3bUxx#sMg+}GeTTm8t-hCq^=FJpFImm{0b%2L zRr)_kvVhZ10jxPRxg`J71)kM&I|UtR}5`47P@K zPtREyInNG5FAwA$N8Y9b=aLv5f8VW`3&8$MnAY>A{a-!I#9*xugkyQ1ZZJ9(7_Be3 zjMu*I`PxaSuIn4mJ671v`|v&92~bFS^ZMF9*toC4WRNAjlH4bhw|1|Z_^R2J>B_H9 zbRjphB$tlzrxb_(lzfBmTSW~HSN7Ez6hOO`4OEu1Bz4`LK<4`Wv{`?(y<*JrXO>H% z)5WRM^M28IR~0UtB(5F9<8Ie@FoplkZmj&#U=|QcW?bq1Ieo991s~oA^?Yu zhd?Wfk8!=k;U0BY40=GXuHW!7+dYn^YK?j5&;VZo`;@tUr}cAj0c#UzzZr$OU# zf0h)0$EqFx+1(Gm*kSvh4vrYiCyYX!PCJ6x@C=o$t$C3Zz&i&)G{{Qg) zpss=VV)Bd}x{6uwGv~Pe9nT2T zpTU2wOI$F)O>MJl+^c#$x?kwbAo9!QSe%Z{6@R z=MD)4g1db?gmSJ`UMdm<#z4nsfBhxZ*iIK`6MCj&74Jz;c?X(z21UUmau2vqRY_mrTXq{ zh!X4a0Dxoh{!%N?CE+YaAORHhcv&)7~#JH+|A&5sBg9`%^W8y+Y3*+7n zA$gujd!X6#q>llBub~Xny5zsw(=6DcYl>Br8&yMBHvep}^V+B2V272)DLfGkJ8ceHrA2p)HyzHl2Y7Yx&1 zIMu;@1W7Vnx8*u9xI0E@+8)AbohUmM{Zmj= zBp~_%_UGx=`Aa!X4ws#M88|M*Tv5lyrS<#u74uS?EWb?{uFA<1r4o%%;_%l`a1~;4 z#DoU{?=6TjwxRBm0AK>Rgm2P^ZW5YJOv35#K8#Mt6#gAD3(q zQW!WN?0b6^et(M=_Qp~PsbM5XM;Ee%QaxE<#LpMgV);SxoGzNO0Zu8Yl8HIJyV4d$_%rk_)dG{&y#buHGnGEqG}1*P8SSeFuBuFObrn@(`-eQ;z3xlZ{eb9Xxwhn;_I6{+ zxc6uM_wx38%S31UGYS>5(0CpkO<;}?dtzjT!Gs_fcbs*bHgd1o%ZoX^ec!>ORZ127S5x9bh;6`G%g+JnU*ONfb z{`FxcMnc^EQ>g`% zkn{<7JtTk)tBOf~f+X-E6;Ghi)B&{TZV5t8k7kz~s4KphW&bQn;73UhOv7Gsb|sPm zSq&WVXu|r-s8>7%<3!v(q96#!9c>L~DCbG1sU5)~u6RwA=uxUk?J?pq=%9P9uPbzi zZHOferb3!lc6Y&agWgH^CjI<({ysACsQp}r9LU_5yMYwu_w=?UJhW1w+TV^5=e;HxYSW!1;IC&h(=Zz*oyd~knH?M)-`672#<(|{9om$Qst>?l z#%Z8@NeP6O=&R&Qmn$TrnXgUoMR}qwZd&lVgmvMDt3A)uX4&gPfYxyT34QIpcw-53 zfkNk98C~=%J_>_;1dQ#aG|MWfd|s+ep{PDb$DOLgsTZ+ieX_a08a>x)Qi??EbbabX z;gPAJJjr+!sIo(sM5S}Sew53^nBQ1${2EVV97$l!yd+LK?WDh4<(kIndlTWR=>cmp zwEM{0^&+%VQBug0aq)$5$;WRfKQ@iJ!?te;)vwU5_K&U~LkM}?`n=tB)(4W+v+X`^ zXnbNZMO4*ox2+jLY=4&<(&0>$UUxJ@o%$+aWaTW*Q*E|@Rr5f)*0w%(=vG0rO`g2< zl>g%;n|~+C-YY{NMypg|kh1RZZ*;7hrL$2`X-d6e7~8l*H!o^nTu%@RWtZ(ui;bFaJx zL^KerAqVK&!@5N0kDq`3{)uf*HNh51nq4>3)|{I03jpvEU>wW|*dMHME>J|`-RJyX z8?aZwu%2&F^tDF98P8Aq9GO-(6P3pEGGAB-aHd27N_)`a`2Zi6^JU2k`aL$=o2xpO zNjc^s(b0B&Mu_fg4bx%9_HYn1s$?P4Oq1x9rOx+mbNALOrKYRZ{WJW3oc9@JsO;~Y zofapNBuIU(Lt9v0P$CGQknIC8g8E0xRVB?^pZm!V*Qzp^4DCUo*_(HC`1T*@j!$JsN(S9v=BwI&TcVzLl3()S=;n!Jz7FJs*1}U>Ym9 z^Ss?^axMg0vMjjmVYKHLefL`(0>HruPCM^7dliU+sROk_Uv z{Ahp~ssvJUk_KDs^V|CHrqk44D$uFC*VgyET`BHhS=Lz(Nlz{kcKo_KA?JR+zNa@u zZ-1{&l1;|xvaMZaOoX-K1yquXX|d3#|1x@kz=nJj4=*2{Rgp?l5`n1a^0Js zNo<4Xt3g0Xtu!8|H%mTv5fU&Gkcvd#`8?jPD>DPn+=Z};?v38qp*l2ad_5_uVi+PH zPWEgJgk9$CT8`4h`@r4vX?>*cNQ+)@DkMVuRP-%(r-Fg1!=wEIj|{aGWKh(x**XN) z%az45b-uxSmY0XK_Ofrd6D62BQ?A1{u&E%Sl}Us;Q;zYE`_W5lR=lc+V~4$+-fHpe zOj-*Hl4D@Od<-g_e7uALT!LlPVkK{Vf}T!1Ghi!9Aj%g+n)=|1iC zth;U%=6h{-m{fy}>89GIgX6pFaGTrB;mTh}lKtL4c zgQV8Wk4v)3?nRdgg*F|$*}-LAnaqJylTUZL`;9PKsa&5eMb-=Du7k!u@uQ077ai$L z+qAJpwlj*auc!h!#=1z>!9-*8?}y;oz%T^bS8Cc`7k=HUq0lfLalPSuw@Bw~96--6 zar@`V#~3NHi@iyl^0qN;WPj(F{F#ZW?nS$9n22V*8?VMHewZHYxX3iBe0oMMrw;Zbd_?tdr964W#X}AO@4(x(Grf+sVE)-sZ=#dyb?V(3i27AtT1Ye0vu7nZ ztz`52=tVWp!I$Z#*Z5uTAr^(})NxEps1}`&Cy}ay9D6@38wzciEqb}3KCa@_P9G(3 ztx_0ZOq3aEo4Ic>fQzfPW<$Ax`qu}f;Jep?;baJ#YNx^yE4!EhJkZKj<^xuTUN}K7 z{mHNMU)~ugH7dba3zrB6-sR5GtL8OF3MXNF6B|hEhCNvoH@*`$^N8^7aAD9b;|mKoS^A2*W(XAE?oy?<6Nc44KO#}mOla2fU6O*hA{eWulBoTxO2lyBjKvMf0Zk6d34wvVCbfYwLY) z5C(KRcUa9gPP&t72?=@{JAC@pvtV7}0&9r;TvDkQW}eJi66jPHlsv9wXq1W&lw?kq z7Hb?uFM=+xHH;K(Z?BdgG29nt(F@Px#ln+j)~u!)y6cGgqLj$q@kAHM;tjZ|N!l#d z>H1tuax^hiBthmg7B&+$lnc!VYDeylMT+i><%`ypq>5o!rov;kVN%LXg-NA^0Iv`M z)Ar^`HNJCf*C9>^?SoIbYNdEn8qNw@Gl6?wL*v^j4xbO_FR;xbB2@jlc(LjB6%bG7 zOH^0*mt3a_b8Bo!70|!W@N3F#cZEIwfl^40RL}ChJC)(*q3x3Bf|oT)AoEKc)`X83 zHQlMK{uozF^Al=VIst;IVhFo))munolgfV5qvm~M8<0tIOl^0(TO5j_P4J#yRHYMn za}O@YrU9onryNO&Q(=NdH!m=Md5U;_La$XEd!5 zy_#-EObSbBwF)PdW;YZFTDCy4baS!nmeubffyg6hXHAM(Q)6B)7R)`Oo<;+LXzWw)CUoG4M0-B0R|&5F2JX-~epyvg(1~5I`(JV zx48|fDkWlty_SogscogjQP|=+PctH`vpH<6vd2b;o-2`uOIyS8D?eDTi)t~6VWbm_ z{5TiZ8BGmjd*=XMMx4MC;(3O%9l8Y!e75^t0{8 z*z(xjk+q`be~9My(Wc2Ysas>(aXlN_5H;Irf(m_ ziH#qVqLJKqMU`~NvgJOya>-3I=Nj(BWXNIS;6IJv(J+_7>fK~bNGnkXdRA3Bzp@=< z-Vt%TXf#uXZe|)_%-86=N8qP&rwTMePY8Tvzc_3Z;B3UglhFJ+QQvk|7y>g{>Sxy5 z*4u(1Rk?gnFCgsL?QXQaFEKG-Gu^E(i;wzBQ2S9BDj{;BwcEsJsijejafb%_UDf5` zJdw+(TB4~Pm^T&Avs36QqRxF%1|*~M&nsTAh=i5!2@?Ds_8;2nEpQb&8tOMbH)&9b zaAHe3{9Mn*9C((Z5^qQOREcFq=r;L$oTMCdQCL@kG%bX<_YM^e#n4pTR<}4BI&4$! zK*7YCBuQ*|(UtBRz!E`C`WCse5xMJyv-z+2{M=c_F)1tF6H57%^~BpHh&(c*-45FQGy;J~RF5g+*ol~v73Mg6*E<%r1X|X^<$jHA<;0G)kJX9HmGK_af}nRxu~>q zMqCn;sts%rAU}q@T5R6twF^`jL9FLp{c%r5kCCe8vC;%<=dM&BlM^10AHD2%t4te* zl@KN?$HkbKFZ1ygFA=ft?KyhE*e1~3t|5=Jop<95ue@AEg_|zPGmqX9`}L#E9iidl zH`ZK{!ZL2c%>2!JHP1%!zig#|oSFmjL3(3Bi8%`Tsmw?3AUi-4cqmb3i~RX1aQFp@ z!|pk?c36TFxdRmfyW=|qbLafC%Y$ZNZ1c1i!5iVfu}V0Du+a)r%1|n}Z_~SmeqNt# z*_LU%^2z?FM#4Pc^(E1MgO#EM3^om4p}zbfnmUWhRB1;O`vtPX2rphwGM-FP5u%>4 zbz)LARMZsS&3{jF8mC}?p>}>Dl9P8@0Z(vK4edsoyElnGyrI5vBl;O;1l)|QtSj((u=SlrrD%IMG1Rw!Wb3Wl&Ty?jj)luz4;0%m**u(zzF4jYUF+Y6)lkG*6q$}{*hoh zhI67?825$HvymFKG7U$i+04DMPOv0viTN!1TO2=Lx%wz|&^<^A|BXXktN=ba{Y2P6dL& zM`j%ls?P6+_g9Ob-S`$W`F($=>7ANL+TM=tgPxZ)$*uLmJf|_zV#{;p`uBQ`bFvjq*+A@&n3BN z=+*qX4uoprB(*e{H#7o5{a9ryj`f4cQ8cU(Oj0525)uHjOB1GRY53MVmfjXr1AT(? z5RK#KWpB9=5111m;pbu+g12(tGY>EQ}l?PCH}xRllMf>|O%SVD=`fnB~N zq5Hg^z3=@d;>LyPQ-41Axkl4|l`!#*`Ngj4MP=<6b}~kT6myojS+knu1bfo0InBk2 z?&}yMC9&XdacLMqU(xC+`Dq8M29FmS{Wa|3R0tNxIwOK#N1$qJbtzBC+}J$!jLRadL>Ls2cp25ucSK`vpv@4$On(edxXV2mI!WKQxs zxc)wH+n@S^DZ#e{Dpz*8ka870i1fhMypE(oi&Ljl>e3dd{{Vbi$a^?6_zep4 z`y1J&5W#q6?m*-e%rOlvUwVn$@5#EB&|iT~c^d*lULT=}FhUt^g6LO?D&Kjz#K}1v zTCMMOL_2Z^bNtrmou}XWyOk{YOrz707uz2LTnwEhbQ&B+8Kp^{r^oBVibLzXrJ~m8 zSauEMPU4cLz^f)#U=)8OGfoKx}6`l_p1g6&zhsg`;?T-(bJbB>+ z)uFhqLiox!O8%ABQ@=&)MY9G=yHrc3Aq21j%O zda6%F*Kt8M_Ipjp$11(Uaa}UU%Klp8!XvIv(;J^~8Sd28Ar2?Ls$Wqv>_VwSR^Swp z$saEKt6TaP+0zFyL9w`)kQ8u`5Wj$s;q<$_p62fJrB4g>ay52V%|UWT$dgO#$MN1A z)SPddAJ+G$NB>13GZsH@XQ@I!K`av5XvGsF7N%hO{py5NJZesEwnEW)-Y+|&D_BI^ zg8A$dre(-T3iW$W&NYWr^eKsKiSvVc0S(M61!4s9$Izcw911TTa7~tO<$uUw{YDb+ zAUEwNSS70++ZS+9C>%1vL&|>SWJE>(0bWQ@3)p_t#V~6$R*VzcxyDHSIZWay4 zk$q1Cy)(!FQQpI}MGb(C#IS8+;^#X&3iXZ)JPlZ#M4%tV^ZlMa4bGKygN}pY(mtuB z{n4;a_08N^S)qHlPUAif$-{5wwl-8U(5x~MRc(BA>(v*>um0wRy+I=kjwk!eFz9@# zByka`? z=pJO63&X*o2PekMNZUy^KO%^_jpb`Fl?#R)242}as?sdeRhbRtj!f5T6IF_8k-p2P zicl9Axt48V|1IlFa8;#3omGqKODwVCwZEre^@jdAbvR9NK1p)iT6egX6ddSVR_11l z<}Y-o9{TquTvGcLwdmPqNJXwDd2jB|W=o3j(Y`Z7bwHmQ7&JF{@VSP}!!qhY&4M9_ zcx|VaS7(2viRVZYk^+;K)S9j)YT!D6HU2K;Wi(TXa_ZV9MGx;V(_i-&o*|?_Tf~0P z>jZxzI0J1!(=I;Z$IVBv3yZq{D-{V&w}Lbvu|7pqB@F6m%A0q5U}Utls7SO8-vGZe zRa*VU!dD#_jU6X+CWkhiC$349Mzo<99-C~EYHu7M6XZ1Iihc&Nybb$ zp3{)1-!vbv);Ec+F&i)@7yXJ6iAq?IxoE(du}KXE^TzkKg(|M80nKs9f&A3#U=Ntw zjQ{$fWoZbF^G2;itCX=;A?Hr5A+JV;5cnIB~jcZ;T!MI&3NyGf%> zNVs#(V47W1UlWe0;^zt*X$MOTTq8M+!=;Vtl~p%}!hv8gcWfpPpKj2qSHnDNxovZm zJN^c3^>F9eedK?azo%GlXG_?I2SL@9ido0VJFWP}Zh?67s~}f_U+dhIe)8}^o@<1m z*Vrq>mkw~33dKo=8I%k^Djej}c|BPm28e!(;1em5F=

    uO||zuv121#NlP;BjbwUcj^4zw=_B%mwFKkb(V9db3?ZZt#>izqsT?>-|MlQh5b`ww8A9qigr~f|gZP;`Iw6ni zII{xD%gaq-i0YdYa&jrG=`gZ^jjz{dxC{+toXb_F#bp>2ibkp=LWb5;CDW!P3V9Af z^AEL6P)N81z)b129G2wD)b|AJ0rl=wl0Kjma8YEi_-$uRjOd){nJIj}M3s)7wvHr_ z*K`?GaO>!I+Tv3|_(>_-h%;y6)+qG~M?2dE_FB8CvmXTVfYYEjyvg!1ZG7iAY}clZ zB&n}fnYQEk(zMwfQ|pItHQ^C}U>Kz9rxRglm~|)hjcn|bc-mBS$VJsszf*kmkeHTP z$xi#DUtJ3Oy?6181}g9KQMm51jONmN9VJDG_#jz)5iLYx?daGHvMrKu@!t& zrkeW`FEr&@=*_aD&DiPI6Bzwx4-~Y?%gKGMC=}dljvd-Bm zp=hM5L=1<$Uc1XK{}-shlK1;gRH$ZsM)i6LqlSyS=`K6#6f4}Ih2z^Benq7F;_qhK z9MFN^Ilil&l7PC4_jN$1vvO!&y35|l)Nv>PBG=ha(-lg%2d2k8@|aPOfp zC@)c3ZwYba-kF5&DDdxueN(CVZL(juHb#CWS*ann&WlEe`#mw8&s`1oAU#hR4ixP< z@1`zY0&ejS`M}a8FxZ2HeeBzhWv}G{K}}2B&V(cX-+c>{h7DRbH+wr?0`{2;kXI{O zG4uEnlas&iuiEplA@v1H>F9NJYzL_2IMm?QHCC`96p?TrK7W?aaw8&o7in5y7dx&{ zfj9wsAsHbEZtdHXI)e&pLE##D@`7S~Y}~AQuJ*gH@=qfem=Y+UJ+XKr!l?$v5q^A^ zu2iSg`N#{O_4Bl;$rU#uJTv9&d1e%>MzWK1fW=QLb zOW9$7>v_FBAQBw)v)?*oAb!3uJ;WFB@8aeMl9jX}fP>tpv-o!+td_&|R(T1*Xsk6qiFTf!`F=95c;-hbXSS)2X!WA2X#b zaWjznl-kpUkXF2lOLwPEz~i@&go0_)s<&$&K3{2^Y^#6p!CM|2)key_FWL7AEA8&z zszxjcSHeu+x64!PHb_8<<>wPMh$}+YlPI*Yz#N#Jr$pNvVrbPxl*xYDfJLH|TUQY0>Uc%po9IUlAs-gEI5u{XN+kaZwGSuUF)4`L63$?})SfqOtzWKE^sX%_ z6tn&3>KZDC%?7Pb9q&8yVR?a}$sMUAs)8=Z=Tx-1>&H{szden4M}=W-8m?n>cBp2=OJ7(|#~~E!+6= zTN^cx`{6{h=h<~ay$aa^cdAs5zAxX#W@dbv;6wr{Pcnqq-U}!BQPeJu9}wc!i)S zAOk;L?w>YX2{AD<>Wzw!FccAlub%d7^kE2c3ByPIOah&3$ zD_US)&4hHQp0y1Z92Ypll9TUXka|BSlh5!43d_wGX2rw@8<%`HxOSNz&Nb}v8XHo4 zJ&-$8Fr;mRC~hj1jILVz_K-bac2B$(i838oN*)v?v38hF(i@*2zkd^ZoLivo7*ZLh zh-AxK&mGLrYVtRf`2iR6o_kd1(i|(Qt|P)*GP7 z5%bp_S}!jE8$D!JV5GK8J@TSK?Oa(|N(zZwidiYY>jY9sk+lrQc-v>^PzvE@SjN(| zsHMbvEKjnV-SXNv(`V_cmoJN3uE$MLkLqbfePx^T%Iwt&6#a(xcj&!z4|e`r8+XTf z+xoDHBIQsJrFPsb)OLf3%#oW4_? z9&z`TeACjJsglV}ULborjMp=G8Tp~0Dlaki@y~me|F?%p3=KM#AD(@Gs#?cnn!=G1 z4tRWu&7hdSeXpaIT!)TTj%)nRHQsQb-H-N?WjnN>Jx^E);4y3@nL`&#W;2|OObf81 z5q?oS#bNmuoF9yf$e~70(*`YjUO}mgVaT9TTl&dk#)9my7Jsy^tYpih@l>Dr`+9=X zlAw_B(xXO%kF|uTX;A!&_`_3ttoDcK6*RRfH z-ig3oX!Ukwiw~7J>|2z@4+mi?>2Sa>x`Wnb(Qtxz8KKJ%A;Yp|rpM%sj?otcy;=+++Ow?Ker&lw;Upz8#h#U^w~dnu zj_Srp)>4bjuFs+LPA=GFN{ahjRSU&mwdwEAR?Eu|i$D|?*+2oO?&q`lX$TR{QbiC+ z;>WlWO|HIb9l1&kYfmG|B`oT=aP6;ZQ)<`__BrXe64?>%g(@>mpH8<)(cm>CujS;{ z;V>gA0e(aYfXF0Wc8_aH{RJDP7xzF^m%d`yEA=kIl2kann3-H?5|w)|kE)PFl8Vv(#=QQ~pYmO697;P8;d;#{%UVxgbx z2V|EQKa}S)^lsbdN})KdhuaN|~xS-9*_pGpkl{QjOyY;Q8de?mZOo zQebcbCGgklEy% zK0Q7EK0R|Wm;F3-1s7GdYwd3@dEehs)_&f-;WAZ-ec?^&lOqxJ(m|O=%d@WDXy??5 zTPm`x%nirP8{g#tV|MXRY6V)5@|cnsJnH-b-4p$k?t^ z3Tb718%tlWG;WJky!J+{?XDAT31{fY+KM^CX3JkH%FeJih(2{*v#4{(a5aEQ{`y1= zsuA~$5o3qEB;8fblWlh$kXiUZa5qVi*Gq)jy)RA2_$?oJMkdoFSm$N?uHqjy5p9@kcoF-j? zn^#^KR|8Z*9;@}?ab(|t&%XPBviXrRQUHJgQ!jySzV84fJjP)EGul2+QkXUijv*ks zOPR^P9J9W?+NW9~0d7kypKrP5U26#D{lm4c&pDb-CuR&QTV6Q$MUDo?Zf2?WtP z>L)5t%*TPY@_*4Bk>AvC%jx*7*{OTBKQQZH#2n4^{}OwoTpqV8;7^K7a8F6AtN636 zEv$jQ>o16Bu#%|o4VHY_bPT}!_rvj%om(y=`6LmzIMxzF?z0anQbN3JJbkL8rM!5X zlMmJ7{Z;zr(zD*L%*Sf&ch^{l7kkTrL=7YMHU?W^lC))8?H&s=@3yHayMcb9H23Yz;IsL;*OrHed=+ zZA+EXDKPrU2KsO|nf6`(!Z6<>*Z;*a=znbar{SJ7|sSc?v2rH~CRyF?sA!Fkh$ zonSY$d|!i~RPW~Xwb$An{D{F1P1CxJq4?|uy6kS<%I`pLaJXwg^PdzX;+g7j6LazC z^08yhhWXDgFbuY?_|?@jInH;#qh(R`^gEpIFu{d>DzjF}la{!lkDM+oej2)j;xZt! z`xCZy5ejF>;IV^nC}dLJy4K*t(mVN9>!Zo^5&sVlN^5jL>rgLf&B73kfJyD+24;B6 z>v1s?e>K|`;j2+MicIp-lj{T(R6(eM!bkAvEgJ#@#rO?j3r+#CgFb ziA(YpGbrHMTX>-3VPWhai#zc;Ow%n}6im4i@)CYuu&heBzWilX)1zI9)m*cs=~#}$ z`E-{xt$mZmzil}E)r>nnP+L1%GwVPbS~o>%ABzvKo<7aLdkL65l?zE2Pajze2?5}deFC(A z6d%}%x7|PyMEsvx?ktjAcQWIiih;EF5qOD@ndoXQ2C+NmRxYgr=5slbJJT2Ht*)X! z1xOL-b(#Rdz2~690rOe=obcXcK{p`l@1`oa+m7k*M+q9s4s^J4_LW$Hkt`FEow<~n2uovQxf#sS65x#Qm5npYcYG>S(a7U;-}og? z)tgyiEJ>Dvx*q#)FB0&U0zBv$#1cFLTU7tNYgR-*+5&yVlP|SPS$cpfTQask%OW;} z*zMGay(9PR!+PYig&APUj&!kFxrP<6WTisb9yr4ysg0>4$t+DG$sEWd8FY2z8&#YJ z6eM_5!t#m#eUJ62_v(Wn2sB!e*Vs<~ryKXbxu-um!v`BO_>%okU+=#Q4^o6Dz0*sV z$eI7ag7M$|ix9X}!AR)p2>(9p{`dXS2TzLHG$=>bs0VIeK9aNoDb^WaXEgE z1s0-T80^;&U~HmMoV45{b@}=~YDfgOUO<5TV;;t_wtMX?|7BW@j{EnCrBbR+@kSic z;%^IA3yN?#uzY;YXA3BA_wNzQL8!SX}Y{ybv=aKBO~-x$34* z3ClB|NSjuQH$7(=pk1$whL=XW3SGL~Wh#GQ-Eozaiuz4Z)=$R>%=wm8hrPm?Qs&mL7;k z6nS-DR=1m%EWG*!5psyqE5}_I#^rvVa8Qa=%%|D%<$WZVa^X8kqiH<^Hqab#?{GG; z<@6x2<}@w7A}K8;`I@?&KutTa{w@?yAiNNA)h1}1KDzqEnOCA+D+n0MrY!t+$MeEM zDEQcfW*r_|o)d$8Jc*^Yq~&8BNQ~EDU15&3ovqW+`7*(QMBW;$iY{(7sdZONd8@c> zF*rWYPv2K4YKZZ8?gWV^)0g~?w*UbX?ARd8HPEzx3t3Y9|ou5Fj%x^-qczZglTT)8Qy}(ytv<`0?{JfP{>U{@z8x zd*(NFg}BPbhG?+eKZ5}s53a?(t0$r!=*~khef&dlLV=dolqnb@XR#=SrruaV{dwDoWs*d`flJfIQ+%~j~rc41S>51u##Y=zx^Xw_reK%wgu$zVg+ zJR;CRcDz;QVs%*SQVK!7G`KpL-JTgP5XW?>gHf>?}_WWE? zHVA0G$j0}5KQ796}rPFIX1_3e3bxiZ;rc&sgVOWoUV4n=EL zSfH@5=zaYdu zty^^Hjn2?=i)YN$5qzh5DKmNI(V_-GPZqxDjeg=rueyWq0FH~8lg`F+Ex2{FgXC+{ zB>a&BrE2^$Xy4T4NM-cj1W8zCosd95^1lwUfW;JO7PGxs*N;)Vd7iOZKdnYx=T`z!Ke!?7JrZrxz!fD=|)$j`#b?o1ChJE+osT1k4xbqqxGOV_U6$#ns)2>u4QIKab zw+~EUS{IWqHq!_8GAlxM-|fokoqG_?6Wi41R#4Jun|BawqL^FUFVvr{ne5VseSt@g zY{S?kKRJEp&}QGBNFsJ=x%PR!7Oc<&J3=zZcHI1PaMS~Dn3Akjbm3A&vo8KI6SFRV zR@>lgs{|fu!D^v|J(N6At@EXM#?DUL77-*loHEnn@Vgl6seAkM`icHhE|T=qf{4y@ znNhEqqiivv%9WDm!Xn)(U?;r~k#le;e zYOi-ETryPdIg9O<@i*5e#rZMr4=)_ z0pU(j?_64LGEO!-GZIVn?pMWvr;b`7sP&i`Ui07PdQnnK{{t@cnMymo+HpjlkIOB6 z>b*8-58>5M0eF(p;v1pckQe7*2`!osQfwP~hKH*YN;pf|cgyg7)f$fi7sfouq{8q| zT@#@fS7@`kSZmd1Nd^>UrXxCp8^3vy^YL7_H4{fxNe3!JIP|&bHwN7tq7{Q)XAGJflRV*bj@IK`GU4)S)8w(hU zV#d>JN8O=lygJ(+Ac-P9dB6zeEAxWMSbj#`9{i{(1f;2Q)Eu#>v$&%&)8gU3(PRSO z5a0m$8+N_@W>tUNJsO#sezPXz_7AC7xXoNscM?x$p>=Vd=)9ntPQT79n`)_sWhzas z6}hYv2IIK zRt9Z$S<^C=;)_z$Ip#T51jE;S))^&Me;wwyVw)i*3GfVLrF1DCdf0D!`0MNw7``6a z%-3jVECSdyr5IXuX`_)i)*lO(r0;BS=&x1VFo9=UugLBBZVB7-7uJSv=8$iTqdY5! z@_;49hkJA?TiI6PK+Ys`V(<{+QwIOd4ke1qiTWwqp!os*H8PeR-#g)1F;d_iew{0& z`n#ruB#SQ#^$iI+6;>^=d`~}i5#k)@E$Q4BV8z)+U94D4)Vg7fmHI+OeUF=4YxBFA z(XG{ee3h>7K2x1cUqlh6f@^iaBUD6Ier`B<(}XWHW-{jDaREU&=;XeJbR%9bj<5~qVY(9`fI2%nB&fe1nP6|jDsRc6zXxh0CvCgMbK$#9c& zb63G;Y0bZiqKa7g3eUtUQrYggQ=0(oRo0Xr-8rAiSj(}eSP`f=8p{3iNv@79tkhv> zfA<}RN2aa2VqecpM(%)(-(w_@>7!Vx&5s*imzBK_cCOZEkJDGUZ2fN z=JfaB#y^+`>;g(nzySZ_^Zt$d^|5{tKQ6WF4ZGH`7U!L}roSRod`apg`N;Q}0NM)6RORrt}nnOH$Z&h0sfX>0*d6=jka3_2#%?Ov>%K_mr^@nB1^ zbn#qY5eP^(*3WsOWii^Gm^(Y90%Yf%u&+xTO9U^mPeE8S7oIeV7DKOe2Q0DgO72|3 zSROuB|ES<*%dZQ*$A;@^N5CrS3~04<5Yo%*y#Vgl{GUXOdD1s3p4TTFs?Ku69#0bOW?#w7Yp?#ZPt{a_Gc=@r>ByBH?Y`v!E+cijwl%Tu?z2}gpt@s^K(PU~n%t%;xC zL@VILEy$_N1-P>1J3yX>9Vk&*+VU3+Ur>Gg9W7=qw?fnhqQ z2Pg^!35h-sG9HMl z=ti3J@%;moSLfWXmiBIf{jS@%OePsy9ZiI*pjhQR9z$okVJBle;5z*#L%k@#6h|JW zBnJ$~?Pj!Hf}B*BMlu-3>nE6Ng1>P(cu(wN)HVBnb)UE~zZADs?yawf&fn|PL?uAw zYOwkU%Gfr0iSquCTMT(%m<_T`thm+4QIn#%8V9KtUjuuW;*Ry`(=U-49Cpxx7&veH=xL{Ro|hHZeTuuSIS^nOcr6 z6FuH1)Ex(pX#9@pt{baJU7^jl!N&H!ipVh@+47{p{?)3`q`ePWH?K2KljhBOIVyh$ ztQL(C>Ag1x)L>dLtUdJ_X{xbOXlUF%#CAVy89TBm{&Md=WdDXAn8CNDN3GhtL9wXE zk`yc3I0pnhMYQgy#+48E?)}K;SzPo{-)3cxJs*HVHFdG*b|2mkAqxc7;Wcdbetc

    pzZoS6F_?36p*R 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 literal 0 HcmV?d00001 diff --git a/static/images/2025-02-05-crates-io-development-update/swagger-ui.png b/static/images/2025-02-05-crates-io-development-update/swagger-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..a4d32ef48c994ed2141ee52197d8b14c83f25250 GIT binary patch literal 257238 zcmeEuS6GwX)~yXuP*D+3X(}qxMS4dRQHr4S8Ug9Ow-gX5Qk5z-AWdrMy-8Ji?;%JF z5JG@JLP#Jdp8xEN|NP&#_vW12eZlkO34yiVHRl{-%(C)HgDsd zr%uuKojP^S;KF&zI~;DeiKk9olC^pEOykwFXLmGQoh)taEl!=+>gdE^I>p$}<>SbJD!P(C|yjQz}&kc1y$QydqbSglO z#+f>S#j!c`7Ax!NjLT_cM~tI9z*?6z+km`DhUNZPLb{!n|91EF(u$kgUD!5$4sX-xc`+*k1zNAG3bnfQ1R=+B7_xta4` zS%H4}`1@TkD3#rL_dA}8E@#^BihdN=`$~T+b76FZ>W6*kZM|M1fKHnv;wQh!i4-KCg8R=+N$haFt*vY|9*%vQ`@!X9xN z{Ekl9aZ|`{ywy=c2yzK4^ENwe^w||8ZLD>bRbY@_pl9);VlVbbV!(ygGXefr?w95S zNPng}hX!2+Z9^M5Z#w(me1A&TS>y3Dj+pl{3f>WC6&KV)5AHy`jr@xe>1ghfJ-)`X zv&z>O)o6&`W0npOXZje(asar;{D37Y;R4&U7u(TmEK{|Q5iC>LN91&Nvlb!MpU)rN z{H5`{e&#c$VCc=4mmZv_cW^m7$As_VSQus(wMq@}yVAeZAou%XX6*K7=d>ZUS`mE> z-ea!bvJB=8Y98A!ICDN{p6~0y)C;m2tlUeIwWpn1jZIk|Zc%eIJWa^?X=uQ3s6GQp z`9Y`q?6;EVy{z}f<#N-j$S(z+1&;09BL-wWcApZP_I=CCcoGYA|JlCJHp_7ZXZ2O7 z(6si~rc9;gdS^4t`}H^`f>{$6e~<6$Ro4f9>+IS66)gDy(!pF`KBBxTH7>a?3HpL( z*v@+e9rlmsOy*~N|DJIuX*;qtuOi5(`-{63rPjd=vcbb0MEz^f(a(`#E{b-PxrE$LJdHb-p`@Q6V z*H6QTuDf5XXDoib6=Rf7;@2Sp=s=yx6=LV9-$M@>AVFV(pQ8Eg@%7(4)y!Q`6;bK zspItZPuc3_oP^KcUb4JBogY^jRhcrTTCcEi7o_o4=gAva9U2|wH`lotc(fm(-%4h> zE3W5{Sd~jo$80J_-NXJI{iX72_NUr%?=su2RoMB?}SfzxTs zl2G?Z_oR9tT(RDxUe_IgiX6gDE}`Pr(c=vz_*c*p_H1Zzi&4u{a{6hb#|#M_+e+PMBB5h=~Ya7K#7rDCi(|WN+z^@J`3RdU7*e zqBGSr-Lbi+v9l4;)?rrEsTyt&KAZ4fCDbfPz1 zHC*0F-jE!Vly)9-iE!riw08zd^q6V&d|$~Lh&)_fUX5F->|YWP^~3wQ%>52UvuA1;YhYV!TV{Akya^p`v{p2CG=DH7 zM{?O$m-*O*TMH81*sn+>0Wa7Y*jW>ZkCeBSA7&RU+U0u*(pN1Q4eSGo%NhdfLF>)= z%_*RUBh@2u@Hm+6sQ<|4c=ibT#34z)58jt}`t|8W|Mt@ueUl>nqSyevcQ4=Rzw`TS zsi81*m_htu`Qz4)svk#p9q$S$ybivu(Ecnj#Ir1N%EA4*-Sd%^5jS3lJ`Z^0Io9*tZ+K!@^ILS+Rr7D=+~(;WQBi5P{P?37 z#Uvbc=NbN#$1k}`W4BQ9oG?u z<~q9+*ac%l2>ozSSpUdOU(ESB#oILIM|SF~Zq7orRaM!q$}iQF;qiw-^qu*um$J)7 z3q}s>c(-nE(Wc8eF~AZr?SLPURmk%^QtXgp=kG-{;pK4$sp|~i z!Cl0|vM;22J{oI=din>Zwu@tdqr$lt^QzQpQkty~N53t6Ls%{d)e0F{CJ&^FVSn(h z7V%YlnYO7gT>U!8l{6|O_I_)?C(dUY3l{L?HhDwx1dot%uV=;7J%|QhB;-_URcRT` zRJHp3$PGGB_|b+_!c0MUjJ%Rhi>-y#PvR z5&*mOea_HAuj>28(fRpc9_Ayl35O>$TFvXDmOoZg3>B)!bPct2?H@Su%^kisT $ z5d;@bJC-&9iIc2ttZ*rFuj&c!v9Zl3b5)g$#qndft@P3cbM=MvF3FI3K0gm!0_H67 zJ~17m4u>qs9|R->Mg)3<@X~3s=Cbk^DsALV;>F&Jx{Ey&^JKdyH8QdccR%>PG|bwq z8m-MXDcihvZsqx}Pd`?_tp>z?iv{I9c`aj`H0O%ks~w#*FgKVT{0NnRh#qXNyY;#C zBS8b~4GSK>e=2r$2CHl(Zp_ZjTp@4ah`&AYxWityL}n>zsbtA+_w?FDua&X!)

    - z8O*qz&8G?bqAfDTn7+Q=Y1dJIu&j&7TUV)~j?Y7ITrk4!p2?Zk1&)NxtOY!mSy zu$9_@Zi#K)rvtRN=yJRyAoD=|yE=DzvUIV}Drr;C$=RtJyEEu#5^4h6;yKb>8Z1Z@ z6`(s>A?q5FYmd`)7j*++OfAEZilt)IY(l_V01@Mg0D%Fxr{wm5=!j^f>;sVRq0a`> zNMaShp+yu#OZN17?B%S{an0>L^vq3rYhTGzFt1bcYUlmW<94|9ivDud-WVPBT)F383=rkajEb1_`sd3@z9eMv#r_Y@Gw_nI7T@>c8*tvP- zB!Bc@EBw58p|9cEzrE5www1w4b#AqHxBT{v6E8_wkNQ9B{a@Do&w2i>%m2q;{^Dr< z<1c@4DE|eT|M8cMIfBfZd$@~AqUxXFqGgzo(kL=&E?1yU>vKU}j`xnco zG2dNNl>aZ*`&TNbN2&D^cEyb^GW+Gbjj?=1yPR+#s{!uf(ii{gFaNv1kk_ZV(3iMk zA@b;i8@O=w>Q^tilk2hn$MwQ>7nY*sqW0ci;C+2MfY6zbnfmud;2&w$qp`4_2aQq_ zgA3!8duakX9}Ky>uui$4l-?a|f7xm4g>~uzE=LV#b$5L&Tl%Jk(iv_dx({18sh)Hl){N6>944pT6g1O{xGnQAR~>q-mv@vaVSPkGXRQoqU$MVhwyP||xIr3m znfJlB9~`27>{xiRw)D)0TxL#UCcDBDA|2rgpGu4qBSj|HSeYG4UklrgS!YIBS)IVr z^2RjM#LbE_;#Na<4Fa5k66KTI8+uj-_naMHG2K(l&^Z&CtCk|#pu;C(@QupEd%dc5 zb;fWpC9~bmBON3LzjKAKeq7eI(PV26L7~Z^DNaPCc!wx)QmgnogbYW}9*l&&yfeac zq%tGoG|$WCw;dHzPwL@;;i6lNybSp-rNdGti3x`G*X5=x^41#GgNJKfR@jxqv8jk| zDGVqMWw|ltWWL&$H10W_tA=W;eyEn*kyb;JFtDOy)Y5(t#lkvi0+I8sdXSnb*&pFX6avRxSpIF%Dh-y=<=BY#3tWu8} z*2t@V@iUXvWoa)G|LWcn-=FPUPr7Xq9g}b*?|W(M%%N!ZglK@6)p^y->#7db&Z4vsqYj_X*2vS z2>wry$#{J(9k}~z$|BL22DHC9EmR}zywIuuH;y({e?#_o z_}F&rD{m2a_e{vj=qKRbFMsj9pY-Na+t;ul6C1`oK$`dKcvC`wq>4~8dG})l6E`pP zkX3jsMSSk!&oam0n%?n%`EPRVHe_$xkWSLAGi42cgm>S_b!X zoZ+^?9gV>=XR!O1i~#V#WD%a%KNTi8UQDobmGtj$swJ}^O`L5Uk`pTH&;!I()BzcM zAXj(Q=M^VyZH#4Q3#ouAh0r7#qAJvjaKi*v*%+9o>}mXP;Y>G1KciZg%)N!zYzX4Z zk2a4YdZ?yLTbMSK%bmm^6KA-1p&zypV4{N~v}(eD=NR8Y?%eGafcnXhN!TwNZ(lih z!aZ~|38}$kUK$FjDrOqdb=R&ZG`I;BPijxvi0)aX`{kF^7mlgZxFNP{8o0*=R6E@U zTdr&74G_$Xzk<29h%35*OtzMUu%pZDvQJ75MlUlIx}m&|jsk9O6B4x@c}nc(8})Z= zt9qBZ)k70a)&Xcw=Ksz?|Hz#Gr&IlT$AjxLU9UP+)@pZw5>#SL!I+U8mEVtz8$A2R za~$%QpJ8nPLGmD4;bP3$wU#Zaw~r2^8ptApQGV_K{t2TjFV$3WL0OWweD;woH=Xo> zw|xtmQA9+4!9k#L&$g{BLs>oLFWr_Ft|9p_D!^nd@(24T6wSYx8SYMWBUI3SFxGDvjYp*iEZ-sTYr)6=MS*{I*6kgL0mE zY)%QLgAdmaw!B)HkBIoepw-c$Jv!-a`90Jm?5!WexeaCccg-dDnM~!lretBRzkTvL zbPVkctVR8Bo3)2CDND@|8H4YIwVxHHV)Il#O%xkw&uO9dh3OB=d)pTa`VIs6C7I{%#j#J_B<$IHs)|K{tJf^lTOX7rQ;MCj+ZSEeT>L{ z6)SE{W@p6ln7llaAurl>YCq_;L0|`D%Q{3w#P=4C7U!@6pYU>|>}=3Zk6O(feIC@+ zK9k!xR-O71Z;`H1?HXzH+u%$gQvtJ>BMT3#Qo#tk48zjH3LB_hU1@~sXaa9gaV&<&N|e19}|!q{mKHu0A%8e5QcNNb@giM zZ(JY|GszR)2}r2h+Z=hXrymb#;1<>040Wa5~c$d>QeHMx@a zDV~4OowOxp^}JAruMkd#Fj&U2r}hT}C?*!XznBnK6GV~Y!{9MqdUH>d96X0XI@whV_^QJ1}I za-Vu(_02t^nz^cxKb{4@h~Da5saEez4=czw+9UETRZSuyz*3I%%tZ*!WYILD3;Y}A zp-bljq;8WR&bi}BuX~Aaiopqjsa4^E^zKiNvO!tm@`tVb6k$UW+zY|lpDa@70pl~M z45elVKE}=1!Mr!ix@j^A)NI~&4);;ID6sH-4d#Hli*qxT6P9JPjrbqkBI)e|2zYZB z+R&*^f3x-|VY+X%qQJh!5lW!##bC48`-FI*SN6iQ=<;{H8F;MvzJ8&N&r8|@c<+pR zuhu1Ui{?-6CRzSI?oByMxP zgCIcoPId5Z>;Y1a%q1*`_~7}y*uNF%kdyG)^K1*LzDsD@I?%&zF5Qw#4i&LvXD=kj zOhi}0Nx}j)Qp+i(J3V$sOM!HHMOMcU5uTwD6qXe3atBU;Rl=9ymz4Y-J zhW1@*7H9c6AhsWy8c~~To@<0k^P0aE!s7aJjzT&LSP|3d>Q)NZ)2h~Zd!{}Hn?+J@ z4TI`#*G%qrjr-zLVf+*;-TK4uF1n0|Y$CpWK(rwul2bKRc<>poeFmg&YUe>WMe@Rz z1Sa7+Z*^zmPeUQMbOC-UTUEoss16%W^1TG(Tonhe$*2=-UV|qf%#@H7CCOb3{fIw8*xApvuxOz` zj2`X6L=Y%(kIKYoWWSyigEfOTdGeK*WUNrS2wfJsCQKB6A)P@xah@RN<;&zdOG(pK zP}W2v*HtLS zoM@Q|NdS+Ji*-?W4LQv(Voi}jd-`_!QxJ+1)Y~23?ByTL(IN8LXL&l9W(wq(sv<=_P?_#4dgd=kH;C$m&Nv!bc05ca7mq_W@mJ)Ox+`EhH)#bT&-k$lNwup^zx8fyP zge;BrASk%^`pV=|{N#MWxatu*XjeZiHT?CzFM9)mxrT}jYi>S%Cx7YIll%2vFo_le zc7<*hH&w@AVyDaI;mv4SCa8ZaX|V#3!2ugGC)~#S;p!6YF7?SBcT@-h4}RJbt;cFz zs%9D8+qLoYj2JnTqWFuL1U4H69se-8n|7L{M`)Volq6o6fgQ5zGv|W`?X)nN@XhDECr~&( zp~&#=KjQn}5LmpSt&5k61P06nLgPURs+9cW0k&StPsh04y};9OW_u0`>-bX#Xijm^ zvSzZOghcAW-PZi>Bz!@J{H zb-8FIHb3rWauX{>9l<6Mj1V&N*|;Nl)+14oW+iVI*TAkL-!)7G=aMpgU^x79o3s^xTVZzU462bo6Rx{HPSEL`bLeT&2 z$av6CbTl#-OEdyIG~$oDwX1zrs>JLr^@`by+}ANO-4ZxgRCidQjf>?T4Wtt>E*#6v zwX2%AJ&sSqY5)69_eUHGpQA`RfgoK1Qi+X4plPIKMhHr&i)=QLzm!cRH<^d?o|Th6;ctO!!O&z?U=XU4IU~ z4n2#5b9nx;ti;sYC$=?Ha(_nrJYGYZl2eSMZ-Wkt-k?QKl!H>v$?m1faXF2rKnQTOKAy)AfQ7l@4_TwcQ5uLxC~A~jm-2yEHw zhy)NOiVYdW3M)y6%$VoCE4@u#0H!o4kG|sL#qWVj5fu<9LTkm3rhAa*4xrJTriZ+U z3}Mt&MD&YBF*`NqWtVtA(4PZOg6eb&oG5IvD#T-@HCIxwvOkH^)UJ{|0ku&i#%1LU zm%!T&w=Uy;LRq!)vLsfrp_4X{&a~n(Us&7bTIW7PV#}fLHZW*q^f;?KqHs#hv5B|~ zFDQbkSx~kV#=f=FG$UN>kus`IP;^WghvqxAMfmdoS6<#d^ohsdW*0_xImI8e=rxnM(R}6jm+T)$wwr^1 zMRNtAz_wv*MR@gJYLvglupS-xcVMpOO5#?PA&XyMCav^`KUK#+8qRYLTu8N*RW0S% zf=COX%+`UtscYUUCH zC^uuCSi64MYj(6hkq-M}U%un(GFhzKJ%E@l={ho~w10!fG4dtrQdsdamp^!Qy(LW4 z!9cgFF1rMi%iMt$JL39NRoR0Vtv)8K37V_m`e8+*R*|(toLxEfnd&~>ems#vpitCO zXggghZ2Jf|>v#=6x05(UDYGOY1*JT#p|t%7XY_-z--n>p>1MM)BaLIcRrfxmPJBdw z?$ODf>q6f(YhenCOh4{<_U<6`&CWU8tA$qwg z$SL>O%VtD$b;OMk6C(>s_PNvNCeVq5(nSnXQ}Pd>kn~KI13kRKD_q;Rrm5nr7lWE=bL`T>TtP*Z&k$pq_I>=Qq$`6TApgsZ75_%8z{OE zzA5rp_GmNwriiU-r7ir4S2IN{(Wf}no7yMbs_E~l$gmg?Jl{2x*>1M|*;MfT&!IV= z!M?5`k7@oteTT9+*WRw(UXO5->7rfGgaPO&orT=VV%&o7&SStt;^e}~NZ{(7A!n-F zVsn|y5+^7a{FnNVtDxk55&&a!j*~H`zx-Lot6!a3nGi!4|7R`spT46pK*`KjfF6-2 zN&Eiy?k?+5ie0Axz-K3<`Tv5ZMC`bT=*bL1A(D3#A~_G-xqLD#qyXm%FU6Pxx|35U zHl{x%k7C~L6mvi6X8&W%e|}>BG3Gz_#s5U+KR=(L|3v0LWr_c-0RIECe+xqYU!1Ad z>*E~mXD`sS+qEc5)qO$=e0TBM)Hh6*%FiU>)X~T7!1lU{7s@9n0R9oz0p}kKSyPHM z70hFymlIBu8~pk3?T`MqR+&32L|^{x0sYPY6qcrtaIjZ@~FXQT^lEx`+BNDVqp7SA^bD*sY2mIZ4@9-oJH(Pa~C; zF&)r2`Sx9N`cb$OZX*FjxZ$pTG8?qsyZ-3P&%702aBVI4T3T59`#&9RcjjfM%`uR{ z08AG+=mg6f9pXEo5Zve0UM-D|S%*DRRFCO(@ zG=Cw6D35a^MjiHpKDmpUW45DpIMTdt`Gtr3d-&h_=wIhgrP&wUZDpicVvZ{GUtupONM}DKk_gDOesZY8HjV=X)R-Z@9-^x*9-D54e#b-1!)$%L(-TQDO zOv=8!){_b#E8AP$lb!Yj-pn(UQe1gQezv_!&rRJ+{Q{YJCZc%{9=Ci>EML@Qr8ISX z*~NXYI6+rd=ay-G9yOexm+@yWrEwRRD>}FgjZ#JU*LXSCibwW^pS#Y-gG z)6$9u^>+a${Kq|-8N$zud?E;F0=|cDY^;hxS||fylmNWdanaX*{K1KkH6TY%e!zPe zAWaDyVWt?^Ggaf0!P_JA)6+|eZZ1@-Opz5?C&Um6@7!awt`ChyI#=EB_E{)8u(r;+ zDZyp7T4b=5eJjA=g77c4Sp8hJj^y6{sD3|R%Us6y$tPNbH;3YsDpNtsLK2GsUY6aZ z7b6o&h1?`p?tNx!y(xOP>9z%(MPHQ6gx!ragT&soh`mcK)V9F@sC(Jrq(QlgOegSCQYX=feBRm_96xK!n{S6^ll+%a4yi<=&`44b;k z);4T|O3#@2`tvYziDm)r7>9W`E;fJ76R5IP!*`T1NSD#ekVstsSWuSz@tx)apnOTR zNg*!Eq_E_6ic^^f%Wefn)*FsnlZ39S_Ujy!;OQ_53;hzCkP+*`eObA+X)=Sq=EwDa zmoWowinu;!0Sk+{ z6w&K(Q`k8%tathT$x29Lk*#G)?AHR%gN#uFvV?;y@%;|KczsjwxrF(V_vjXlA{9`0}&Ly0u zER^$`TSDn%3whkxj`rK)UbjfwpNOVrBRJVtz^@E9KkJ^en`QM3qh|Me;tQ+xeKkwO z9QpmKXQ0@D(li`#j!)${8SY44^~Od{s`yImERSZnEcJX@{8RGY;Y`yR!KKw8c=c-( z-q~EWt`|tS(c5H!^{_F#k&IR7fe{iB*+coOk1>X2GgEDyF90bv#GH{f^j^TU^ zxMvph@A?&EPHP-jtjd*|wlJRfA|}|LQI778ZNyF4#`kcVfSjk4y17lQvW0t8e}$AI zaXh7?CyiOD1{e9wIQ+$M?VFAW{cEwg{ZYfQmfaA!)N9ZyP~)ZV_~}}kO4|ftk`xLBuARRo#zsvc#qkDo|!dOlgwtB7Zlu^l(b%6XP?Chgj9!xL7n_ z{D!662g{pnLdZ@LjanNjf3xMWJkf8y_Ho(;Svb0s;-XEB6f@3$C2Y`IL_`5Zd(L1h z%(EB@#lQ6A={WR*ykdQ_ojv%yy_jQS$wbMM}#xa#C^rhm^xqxNI<-WmIM$2gs;3aOmXvvlHI{amd%8Fv zxbUw!%Omw3g_Oa09_F5HJCOmw=_c>ztHQ96+E+_@J}dFx)S*>ov*_wiCQZHrc1*L0 zrvk#s&OVL1J$A$26vJzmN>XU7DlxKhQTjqwos5Qik+H7{+L>S*{g+P(%uclr*g(rW zZCn80I_8@fW&|qEV_*3%kMY9QM`r`>K0A+W+qHR=mqsf5D(Ruj;x>0N{QY}ffRBEv z7w%S_IY{XJ%Pr{yLoh+n)t)*ZLP4=ZF~@DCDGzvZ`>uXEUwNuoPRs`!WfoAH-*<2J zt5FDj-C%ke>*E6PcR4~|brs>~Fi4NM;BwGHD@?g9I5A2;I0nlm=4kY*K0fq@^lO+;{Mc%RI`y&% z9SM~wzLULVmf}#8Jn2|9lg?HuiQl9(*TJQqnUkB^_p6#w&+?&FO_CJx0*wZWbUq;a ztIaf*t~iO!Uxz|uA19zDM51K2khHVL#W={)z8Gcosu`P$_HoCr;m${?)VHokTes-> zp+yo~E8La;C9t)|+#9kRpLZd>%IjoEJihCtj7<0NRsH(-?rSM*s;^8Zg1kzq-HUGF zV_Etbt4?Q1IHRP`OSzrXX<_6_J)Eo9AzG-Dt`FYWn|2{$ITqmpoZXeTDzY?ZbIZ^M zXfx!#)Qf~zfwZL53*u|{= zX+M<6OuT#S0A~C&y~@T&&w>lrW9Vg#eENU}%%R^aIck<#bsXwkJWTyn)&rnL9$4yq zg%<3sYeHdhwe7FNwxYN!eZ}Y-X3fYgNP-rog*^WUn#Xi9JWvy5nk{G^5onT3T|C>l zTiesfY0Z4MGZTr%zS@*&{M)Kv0D+>(); zhhPHd)~_&&8c{&I&UqmAUy%UsivXd)raP1yHf*{85B)7(enPvVpdf8O;D8v8S}7Wk zJ&LQvB^T0w$cwe~OOwb{fL@IT8wE60Tv!vQ-jFJtDtPyde0|%y)uR#fa^lVX3fO#M z+qwH)s;SrL8bu!-(xu+8+8oZhFWj>61e<;tJhW!x(oI&jGT@iln5&v#O^Dq5>@pah zwW`C&=TPO_5aY%s1^BKNc~Wj z68GTY+J8!g?>828QOcLi^@D5rXlP`=#q8z8DttZr444> zc(B;(as4X{=Px>z(uyFv_%-b}J(4_LP00*u->kx?4_D?x%9-SO|Ft5nVmw%A@>=@Y z4!+I~*)xqK-qug8`^R?y@Xmsd%RhIbHA_qr**6&zjdqZ0a~4UrqcvwEkw>du!;~Sp zgCz`qA3Ej?8u6MadhEO&?;&~(vpHR{^wB&zO3JaJ&eFuSZwkAr0;S(87fm;5 zn@abWJNrdPMVf6-Nt`CO1%C^ol;M=ZMOnjb3jnI8kF*S`(Q&Lbhq73iZ2f`44Zndp zq@fSsW`N%oSK3n`6a=}UmfTnOT4X=PlAT@75l9)S6QvBuF-KO|%{GG?*5>Lo-8Z!w zh?(`rqfI-V$g}1fHHa?TCf!J3!<`r{#xZ--?xAvvaO=qufx70xy7nj%`9W$cOIZy~u>)nkx8{z3Mi2Qc9R z=U1EAbxmwK=j!-gCfexizu{2o+};fM>QpiKhPWx!VjhC48(fXKee6JqN*1@xH!hok zoXf$afmzJB_?~dr-nKGj)ZA^Uux#hvjJV5U$4y!L=X-jYewEg5_Q^k0p`tRBskoRU zd#xJl>GBonLHnLKuATnRnSyQ;eR?jP47OE+jgo5k=~C17d;ME2n@^0NwBTrul2RuH z!)x*eF+Z(9cqn z%UUThUE=o}Y~Fh4B67pL)O==2e)*6+*w*mMmZU*r7HDAvAA_)x?m6(?$kv>3jstS z($qPP%n^m@3lxO!&oSCPKhj{gk}*mIs7L)0N>)PQSj*|trS^d|jT9Vsk}QnAJt-q` zF99WvpRkV$+E7wcK^F>eEl(6FCJaHNV=O~q#!2L6yGfYNt2ze-fK-9UV3|!hjcA3tBa8HAfnEh~e zbd{CSQJ&pW?SuC}k-=I1Q89}CLNVcb__mopBw29CmP zS0QE9mXL;>gg#tS%vsU_Cv^uu0ycx+?LEE$Ynf=tJ`!vZe^Nc;8?FGqBIU@mUiGL4 z1#7y-QU2Jjxu|S)qpXKp23si7te$r0Fz4Hgo(AnINA$MEF{sdZj8!#W99A=}1;Ym5!bTxE5`mmsTyXnRxtkiX2(97_^xV z+K-%kif5rYB=jV=4DQZDV6#kv=s2GZ`YOIZb8p6ItM zCEHZ?Zv_G+j%zi|eu^QMb=~L^vx)EaMSQynOsQ#Zhy6j2pAO^|7rAJ@nwiES(H3Vo zz$qdR>dXH&gFG?o^i#K6Ti1wHplQ#xD6T&hf|JPW&Pg<3Sf6_eAG`K@?2PLMh84Qu37OO4 zUV8q3Gd_pw$i?)A<1axgA&GlQTNN0fRoopH@D<*fNf;OEd0I()OBtZOK^=GyiiQn0PF5AL=el0R~9@0s(>@Igu9w!?UqxW zp9DGl-a65Fe3Qj%_K3P{Uo;-mzb99$F0*e>LI)diM+(-Z12-;C<8=nx1pg&{1_X0& z{~%)c%QNMU#^^o3ML>TU_GIk*h-Rd#X{$tq+7u12-)W>he zEs>(Ev#Zq%+6lb4jT!0J#{-)&^#wX?zFxjSVfT4-!Hll)(SOZK0%eQ^dzi@=1X6sSN9qiJE)QhK#*K5A2_(adCO*5U7)HW!G`9?|APd{)N zRZf0I+S42is~C`#5v%acIj^rMx!Txsuz9g2h_6b-kSm2%nq9V!9s4Kmvv?;PM5p<^ zLR>x>m%n~G00`aRr`#>U$GIOZv10(`Ch#62267W}0MChU%kM;wijM}~Uf&-iVhVQI z)&Hcy%ZZlSub+mq@ov$0{lI z6$-v~Co;dFQ7^D zwH(1bPbhF#-^lk@{B*kuphKNb_Is(iL9Gn!76Ly=t-P_z^J_nw{&je)xsSH?Qi8-(cjID`LM+`>#tS*>R7@-TvT-IBz*e=DwndL-P7`}xIf z<1I**7YY_MLvHHwzx{fAOgv^~2X4QaVG*+wT4kbM6*z8RsXN?*wnIFf?Q4G@4i{(_ z9xSv+FAC@apnl#Q{U7IHh^VT=l>p(T1BS#SiAgJ0f)CCOfU*)wR8N+cknJ1zJr9|K z5*0t~Ilm=~%@?`m9<^QMTWG5olm%Sq%|m@=Q(lMrjo(a@X>=xo=$0+X>WH#Q^1hRc ziRd#jc)Ic9iYHE=_qV1v)n@M z>GRM=sQ0lIt+9K-3HUijuQ{-nefh5!65TSmDG^b)`_dfj6_Bu^TZh>Y8k7{7bPO`+ z<0q@)hF%;y=}WGjrru;`c4{;QN}*?8(p6>y?!3ekET&=CNWT}um0vg16Ca5jq7@;$ zq{x@QkM}e*4m$(sd@^_syHgRKFL%ub@O^3)6^z zZ?@YnIn@}pcj9t>LmXuJ*7KCFpzzx)Gpw|kmBiaI)xbTiN(SAb)i$FKQ>vo2>eSa1qG#Bq4%nGB4#jB4D4OEUtRR zxJm1E#?N>3>tTrNAY9t4)|J>uVztft*q@1U7}%)rA+AV6f8^d`CO)sbf_<<+LyBBj zQQ@3WzD&8oxxEy0%0#jd1N6$XP65=+Jbg~C}q8!^`kKu73UQo``VYWI_TNkZ;Av8BICu5m9X}BI$tm(RWW4=hQ zdfu`(Ogr3OhDs{D_bD~nu+d<}l?ITj4=dzZzZ=k{c3ZbzuD}ie*r#0Y83;-m1qkepBu)ZNj|%%DjxOz68?~wE%b+G%tkR zSD11EIZ>HTQ<}7$6@RFFdZ~(7bW6ssB$Xz(5+mtQ5BhOnd&MS}MpzoZGz13$FPBvU3TR%RT^*I$&`;dbcf=V`7r)oOXLtEEdnXg;*nDAA|M$h)2U|h<>)k1A?H^azo^}4vKP2iS%F(+pT7w zZAA2qGgznhLet3J)6`qB#GEkFVKi<=sLPVhDjT;BX4~6eFn~h|M@|2_eXdd>FFOSu zfkl0yOe-NjVEoWKM+e+3$hjln1gYU_hZJQ8fu`ji?_-ES!dOdEe?fx^-x(~|vX>6y z6ICJj6*lSn1LEjZqpy{<6*p?(aw$IIReb#9Msmp<`y$Yoh9mD*BdUNmblP*)N%Q(w zb>!}hom1S$M{XX9Pe(`uMru2(NBE))l@R4N@=;r+q{l{F&=(@(M4{o!$p=ATo`f4f zSuUbPIzt71k1lOT|LOs{2GJX&KWe`~`*x(S-^O!CWWq>Bhf*B5DdX!7Obr4$9nYf2 zJrh54`yD&u*JAts7klp+)l}ED3*U;Oh=7WUfPf8^NjP3aeF(?7~hZY{D2=B$=++PJ=a{- zdSG0BvExa7E1UO=+Zt&#B!LUTUw7E7PfRfuy~cy)nJY(G6x5yMUyteYFa;jQ2IiUyE#blo4% zR;62Wl-lo}T)hXp6D`)jmBzXzsI%4OLws8nZQ;WkY1Ue$d&z2o;M{Xezd+ao_nj~0|bsf!swy}op7Bacp{J^((;?8n}4c=^P3vLyjLO2T?S3ogEyk zf#xsEyl^H1A?YQhfQ)S-@@j*6#;Q;!#Hmx3c%)lmw=W~TvYw$c?)3ATZkzP`&F@&oXP$0V6&QyfZS3|CX6wSFVfKYus+$(G$fvqhAQ zRN}DmsXb}$N%6IAH$Nv#cQ^cMl+Vn&jdDDlS0o&lBA8!P1}#@>*1w(v78~`8iSqcd zm)xK4Y4^F-0nzfX;fajrZc#G2ZWzkbW2Y&;p3FAX=Q=ox(pALk7W%V2;*x%*g~-6= z)zC99Kb^|YP45mSY{HySWb5*-iq1LUJF*99gIV&ew8PHo%&3zi7|+>-P&&4kvohoe z#hbpi{Ja?>knKfQyorxan$Mvfxx0>Z^}-={DiqN=y$IL5Nqz~o|ufTh> zj-eB4AfjC8*5SUxQKieww_wfZmFIHHtX=IAySFo}8BK1^17ZG4x3O)PC)z>8SOs*4 zJe^MZv{dlCK;!02>;tO<-ixr)MRp47LKcBe`}{IG7c@_%qZks-d>ah!TZ*?fV0|=~ zIH;>U`@z^+R84X110@K@W^GA99EsuhZ1Aem%za_METUKLvn zkGnup+px*@Kk(Wh<0%TIg0CK{3U&pGmu(AbTg^%oO_+D4uyN}LzTGL18V97pdgr^; zy92zq<2?j&37<-q0O8ooR0iv1JL?UUzi0$aW#|V9Yr1mB^7#erU0q|Vl!sEtS4yV{ zm(kvvqUi7w`B2(!e`{9Xxs7G7;>!K)TSJ`!jVS~HX|avcm8BUL?{R+S!Tq{WlK~PS z4t&NaWcxfb6}G>sp;uB{HojbVo%K0m%F)2ns1=0iY?ooAqBVcWI|Fwa_`d7pL zpIB9R(vSR&MBYO7wZp+7)}sQ5kY1TBqv`3_%lpN88Bd5y*cUnOUa~Z-M*GNQaAVhr zY(v~gqY`+PN__b3K} z47?77@&VL+d^fiYw}&4jKzRa48WKahkYV!RhXubCcFqPrOX)A&t&<%2;{x z+Tb^QMV$#@xNw&Gy~9*M-uUicK2y%?^Bw4 z8G*-WH6LtA+%Oz9X*P$+ng^2QB;lqud!%jmC}`m15tz9=)A#78PZYMONK=hJ98{O> zw!0aPaVil4N0jAQN7#EkSVREm(%BRwKU+uLW%I6wS;X;1RdErAr5DSR^dqywdltey zqhox963yMDV~$ec#$IpIhNud4HFkGZGOb;>EA>H@E5@N&QEYZx&Z^^+04z$)1^cxR z1xxd_R>T?JNed>QJAMAv>%ac)-_;AJn0*?T_8nk1KT^*0O3!K~?~!#m2DRG7TWAQQ z$?5aGpU!UK#b;9@eB9@5h{HAadMK&S(w@8g3ee6yzs{i`Z;Iv!d;lUijy`yNthbyY zY>!#l+8e_k=)qDmbiS-=O%u30- zlXPEOw`0CY%h}{QPJG&7K3|ncyu$wRoOa;>!;PfTCU;Q6L{hbEH7uNQ75sS}Fx2Fh zQ>$t6d!8-C$DsoylkJZOH_hKr>LPQttQZuB3hOC5oytZ_N&}~=Y+Y+vB09YN@^%*; zhjSw6L4I~g%pyHK9jU7C5if?h(faIPtaN?8Hvnz12%^v7CDN<52{<0zlFhRVQPOL+ z95e!!$gfdmi&_Ke9DzjY5Ucc=cpNY zuP`U!>YY*%x_&H{+EtGgsya$0^+nHj+8Zh<9aB2$^OYjMHSX*_NEX|0CkKqvp=>_O z0O9aDee#28O<(6W!5)lQMFFufkfBrBpY43TdUfWrw;?-o>&mL z;!~B@$4-$B6zR^MzXmXt|=341e&_>k&$A?QRVizxiU{*X5M>=7aEPm zE=UPBM1E^3+GsMUSFVLi>thrP1?6Lj+xL@ zT3Ds2NrPa~ZbL5>+x9jxI<_-x_WWv1YS-ENd*{?;6Tiu)dx4s*M`xK&ow+3U*WdlS z5cN7_A&fzQA6f5xZS|tY+YK9Usb?}rGt7bkay^n;T7z{ELtqAkSd1)I^*2SKXQ0y~rERUS9`EYm=!vK8^$|rCzSO92BtKO%d3;j}Z#k zGY&Z1u)#|a>H^3=%{KSqC@LoAroIW(nvrKCWp(&bwQ*Z%<&W)(Wk-U15pjwspR0i% zvnVIf2t)U8q9s&c*hCRJ%M)o*&=$7v4IZYd)OsHau4p`2N|Xk{`(NF5G^&;3F2H$mX6+ zET+WyOY#{8`GP;6?CG?2P#jgPnPDe0-%^Y-pLD~wy=3-B!evj=xMWWb!?v!UGJc9H zdgS`uvOh%k>hBoZrTb~8nO?I!T$Zk@SGK|bb#g#r6UT4ws=W^QxoNfbxN&Fgz->ev zUpIU4s`RNVEzgK)c=ToBSmLe5Bekh#&6zAZ0$ zEm8s?br8C4_Mm}U!B-D*VR!dRU_h=rG^ndfB$w|Dh4Q_}eNCPfOufzmlbVft+=FG% z4_DY#1iEvcLGF%D6_NHT#}g;I)RoYQslzZ&Qtn>&&M{D1PKQ+Od*xh-STep3&ABQo`RGSQkoAU1CanV7(G^UNhGc4#j_uR!wzF3Pb6!~7+ zsFSoavc@S|vh=3)VeGNaUrsmOnj?^D8lFo7IoaJx#W3~Jl0;=90qp6e$XCHV?(##1 zw8KY1w~gRjWUO>~>}T<=Xt`qvdPL(3Bt4%s8dgiFsX0z|phGEXmcs)0SD`T%SvF&V zc2`3EUn1_h(I<_HCX78gAc~t&Y}q?02Y<|Dc0!Z&{YUfT%Da8H7CNVI2N>c42rOie z0lb>_TS{4W8fM|P0t513L(GqapttFloSskf`2|!zRPlO&cAHNlyvXo9Ij$62DR5ut ziUXsLdy)f_sZhFwAk`LssmI$i48jgNiOT%Qw&Yy!jM!GuAS_B`!q>Tvx@Vhwj=ApL zW2SNRkfSeq@~h}uJgE-)Ng8hVeNLRgO>9NLg;!))q;c%aS~rizOcl&fhxaP zDR(7HhZ0;2M{hvPL7A(AE3ka8f zMYiNg59Xj_AcwJ-X_E2bjXXQ1muId!nQAl!Ae-9FS_>h5eKpkDLNtQuEPL;Kra%E=0%H7i(TEA5N0>!FBdV$_kIns`pJ zr1Lpc#%`91m=8-RO{YzR=}-M)5HkE0YV{j-Bo_xpJsgls;cO<16vvg)qE@Hh(MK|@ zo|-TeN-OHco*WzAq1vFr>fa6}t?ryGP>QtmUpfG~;L4XU7k^+nJ{j45Q-Yl7O_jt^ zb)6gWH)z$IY=U}W?_Ji5iey{!Rc=*WFsT>nVi|jnhnt+ZF!Q4S3e2m&1M_-^kD#M( zQBR=emonM*G_SE0IL-(Z8D<<7{UG!J{~&e-NvFc|_Omuepai?EK^xWA#~TCrytTuc zRn(V*C;uWOs&*KqH85_jq&O$bxPecyh@vfMR?BmE zGBs)(SlqBTV9F@yl|A8oax%AQ5m{9^36@sm(S3)4PX=%L$U%o?xc zcC4%Ta>|L%4;J`vUKy`nc*@!zg$)D;_J^p|tO&KTg_$!;7a3F=v;Y`^$`Z4>_z)#> zs4B^=coY4dh2OZoO0WTFJi|GLygOBVbL~xfkipkbavY|{^{egF!O0p#qb7N$dU5AV z>%mYQ1ZJqT=cDe*hh0eq=vq>y1K9|1|9Q#7Bq>5Z`e?*P3M=2;_)PLXnch z{9H=$n*9VyzSMB^QA=0Iyt*B31mGq-wOYVKpM&Hl4>U$G=HE#INHLXjFt=(LhBaxQcyvK60YX7#&~Gw1FDDPeojJ1% z_~LIz^J^6OaFKT!cPbz_gSrxVZLWk%6M}Z1;}vqSWV5$MlOiHPb5&JCO{$O56;E3z zG!ikd7`85aYDy3Br}k0UUELyS6jchnW*n<5Qp>RR^X*aUzcsBct4i9riL~BHiADzC zwduC%9&RxSIS$Fi#>H6ym2_)!K=k(FYyR84&_1{Av1ahW!o^?U$UOEhz& zX|q@MgxsS#b?7qdSK|2B2!9rsHqTI0>=GDH@GedfZpi9c2R8ZmYKM`JAyApS z_{4;wkWdNotv6wOkP1Plg-_TfY)LHd40mmd$=K`~*-RR$viL=&2bx7!8bIhN)6JjE z8Gr(v-fg)m&>qXn9|mF8d!lw-j`lraWuz$C!<91$;Km(iF3qpu?)<{*&S9XyQDg67 zmhSC?nJ|H9QtMY7zO>;mh036D3E{PKJgjiWFKzJa(XDYG(;t{-n3J`EtBCb-D$5Y4 z^T0y(QdJ|Lg*Y3r!J_F=5Hz&6s) zGZ7bfFev^tnEE7UZFJi!0KQ!}g#=5Qc$M2W$uI%!+e+QO@9pyrIqjm3b@0h+lj#N| zRHn_3RK(ms*aYijBiTA-kh+nC&T7_H&0R@}#hkVdi8AhQBambf+G@ zL`Et07UqDE^={?9ac#9xoMOlJg`M`jL@dFWG|F5us-Tz=o;oK*JUN^dz{?C#`s{mu z_fof@bQ=2#E<3ONN^|fnIdkD5&EG{<|H2^`O5_l`EOVqryd>khM;v16kDD&^H8;dh zNm`%&8Q0lf#EzK5_IFyMTc-Ldy_=c6R}wi}OFv~SfEmC&Ly|?Ecn-Wr+14wfwSRMv zCkCtLPyH~~>D21H4n=g0t7`7W zl;!DFAo!$8TL~{r-hDq=h*w>h2)I(!^*WR-v6a<-oaXvDK2wgN68bw=(>x^$G_;>d zbu-(mJ&;D)XnXkj%b+*cB#G$9`Fim|K^{e>&KFgxdE+rb%KUYG zWci6mNF%s*Nn**z?;P=-jb4T@vV_3TU_8NPo32*YdOhRPe(egBSP^uMobd2lfT45U z4rOlUTb9vV6{5VQW|scViV>G01Xd)lL>`0@hfP}YWzen+L``hk$Co^O+f5tJGod{s z982l!b<)h})9YJoAUq!wK&nSh5@d>u5j_kEqj1>?KSIP>z+zK=ZcW@i%`*Axv(1S< z__>RLtIzDP4ata-V`sF*=oW^QF0)Wu>Ve0cf*1iH$m`Wp+`e^WBFMLgq;L))UHrLQ ziL;~WvAP(Iv}3TB;q=97*DfGN+cj>iQKQ+HJ^3!T!Z?#GX(zT2+utHXI~BZboakmk*C>LYq}T9@x6 zugtx@aDw6L?*f;z9lCk<-_29w>$563I@>OZmYht!&okG18JE%F97VUwm^EgkLq}*vd zLdcIeD!KaI6nObHb_JWzA66X6d7Wo%b9JIZVIbUB?S=U(C9aneVwU!V3q=UM4NERi zK?BU#w(%}f&HcjX$J?c-!xm%YLG|SK5V^@3`O zVBqecA>GK0o%CWZEF5OG9#WqnQ1tA;gYx3fB*@>}e0`XdugnF4E5& z77xEN6W4WaGhJal-d9H1B}Ygd&D~0t@mJ`()KT8`pyv)7Mmntb;naHE71DvtPyM-5Uf#iE# zm)N6QwURDm-9UEY6V06ZzO*7*q*8@UOtJhye`l**=@Hknn27-4qU=lH2QDk-`(GMgMBk zZ+FlYR)sgc^yuvds>+!YMm%*&ghnw1!fLbcC>QEraZc|rHL#MvTsw=xv((p9ATAl7 zgnENhgdI|FF$#}+%@C0R1PtYN9SAL@EOapgR?%~2Ye)5paw5Md&6|Rx^ik%NgDgPB zU#V$wuhZUk(%1b*y=Tvk7TlSIOIHTZmkW2ATo8KSPtYWyn^W1GOO9gKN*smp+qggm z$zC*vDiitpvZPm1K%>1^ClZI&yIH8XIo$B1Z7x6qDFBMs1mX4QkQ+|zI z$_l;-{hZG7wX>-LRL-EGDT!L9pFkS%k;vtG<1oKW3V zRSrV*+#HWkToxN<$&7dN(b?;~A0^k+3!j#o7d&a=xs;)y65FX0gG9iUJJMMyY=>F# zv&IUcVb=t>l-N68q%FPFmbJ@2cbY+5j8!K3hIO!`N~F~!dMx5eRbI$SgPAYQX1ae* zGFsxh{cvHsS$9gu8#1*&!3k(Gsn8(aAvV2UJXnC3LOXDX5=PTPy&h$LG zO&;#yv{iUVU&XlzZcI*?A7CmHcyHz_UBGYHSM2LF2DghD_r;gyMl!8i zEmK0!NU(g{szOIfi$F0Z?NSXB&8&k(ibjsd(!fBi>yk!gnq5zI;GWq)7xWI_zCb9A zYSxt_jo)G`ezCZ1DgeuGEzuQL@|sHInmRuLT9xaIkE_QmN$WIkP*Evy++!m;S89>% z*IWQMwRJkNd(DTJ(6ffRnlRrQkvb*$Ne$N1{qg|MGH)|fFE zOa*&&_P5^T3Og~h_bZrW@){;UNG?yJ%oyGegxeubEc1RJ8B?|4{ESKw=DNy zFNx%u!D382YGWlb&FzID+QBb{ZFiYjAH<0+mgMYo*xR~EZ-3&r`AJ20G~}YecVX-E z@QM(y@Fhuyg%y`DO9`Z6ltWs2I;UDv+LBv&QhxCrV&E+gI#T%x2E=7nzz8gE^@pzaUw9rDnq}0i)Jb&cA=B+6e>^2YWgM_l^b z)$cK4<5m=n6tIPEm;m5m+!+eB5eZd7$O(K+nya;#0DgX+-+D}yOUOeDV zZ3;%>fAlD;bRE~N`OB-<0f1+}YzJO9ZO#}c2?-z;vxn9!PC%uwRTEBuwn>3kFlmccHM@*gGxSl)%3Ku#Oa7``$4Xb0wsoT*JUzn{|{?u+FyL_lnx7F9;@jcG~(kkiETpfdd znEiWruQ6PF5XfTQ7gQ~s%wJ#yj}+w(6=)B_9eEYat*&?a_b5#svEH}^aKoOuNIX_% zU?F>C%}0oG8{ObHY_DHone2$J(0=iWcUtIuo^fHwr&5jEOsVf{X^))r>dfPTjKV;} zPt(*&wr*N5H?Uns)<)_HHv%sxWbpINUPW19{;V&}t&UkS3*GPc! zVBX^EDd)KNLs`7iIi5Q{=WAW!i$wlwFQs|k{r+6n(F2;f{zuEJqVssR#$MxRW+O8B zt6T$Fy5PFSfzI!|-z<4d-M@QRqwgsxDRCU=b$N`XPC*@8OI=-KtRkIYP(_aDqY}5f zg^4-8d`|A=_H)FjEhVD>GCOJ`EmG^jDbUePU#-qGotPy*;E4NJ+T7}1k7T{Bp(eMY zF7xt6@nUy$#WhqJ^ejCHJh|{AO^3lt`snTxNXck#CjWk`>JjBmT5l#c(FHRqi>h*c z?#%pN3m|T{ub>NddqJi?o`&VT+?Sienc~9 ze%-%R?}6lF?EJS&&&$hP3I_%HXGs&zm0h_rtEeV6bbH@(Vo>hu`*et}aaWmow`V zu)lBvZ@3_>zp%*j$cNrK668PhPOj`P>CSVh56=FBr~i-Pe||ufg!=k>@$Ua%LRV#g z7ZOZNb9?$vt>Qmly#layt_r-Zt*yO3qM-dJ7tzo=+s2CTPG*0=Mqz{Wse5hlmva0c zTM<#=$5ZitTT$u!Mx`QZautM;f=z9x~2s%Ri60n2Qft zg&r8+qN{klDkR;dxb$x6nS+3lq|t5hqwgTN^b6)praxKr_ccz7C>Np4Qw2vT)@d2? zD7Z}}l}%+5IlDsUoP>A34-@yVX~NpwNBZI#cBX%?P~zXLGU&@a)5;$ye7n{WNXnpO zOQKYWJ11a+-T|oU)w4I**aWDks0JD~K{m(X>~)V3jdl|KxG z42u{ox|uK&uD4|mp{_n>7P35;91Ce78_U5)grlz9QtK%0Mu=XyG*_Q zRoq2}ij{`*Vw12U)9?0O2fp~FY4K%A(j48E@pNSU@5}$UJO6hV@xM>X2SVZCfAsRsP#y_7n8O8asW-CylXc{JS) zrl3&a2VhyIv=cWaJF@$;Cu)T@(tl(_rl-d%50`elYajd4bP^OPHkpz}pXkZdaK<-5 zKS7;LL5(}Jt9DpQysoqQr#j}3ow2GL6~4MgpK4Tu|6r}%iZ(gJeJ@w(=wtpb!^zjS zZlsTf1NUynq|ZBPU<2@pM*@xqk41;!L%C!};>5_@Anwb;G}9k754tfX1w9`Gm))LNl`_9#su zQ#+Cqir$_4-sio_+ni#XpcmEZKusb-;7}(qnRP=^aPCi2-MlOR+$2w(G3TA4X~LKh z;VdJQ>$I&t@I37KOG#1vR;B`TO;Zite&Hgj)qnERUEZH@1nG&gIqzLsHHewu4IF_u4BfbSFJjEsz`3cjQpUAUCg%Wj%o zNFN)e^>O}x-~RvBwcH;&ja_*#O_qo7Q+2hD;UMLq%#j=X8bGA^zeZTUw~5TfycWGx z+AJc!0!vp!e76n9WzVt5a{(Cg!*QB|XaC&c{S|bB+NXKlYb<1b2SZD6 z9wR@*vKPqS2QVUK;v3Pc;O5OBT)jTR=%QB;_n$b$TTy2nZ(u{_@7ePu|1L)2Em}!Epd+R@1;*hakWCKH2j1 zesjJ{vE4wxl5h9TF6Er?z0!<$487G_$g2uV%?3y8HHI8MO`1Qs-5f*Eg?77FjphYH zr473F@k*CzdI+u8F&L>#U!E%%;=d?NPNW3__QV81)8(K63Uzu8Y9tYH0w(-ie1Rox zwSCmm=g<8EuJpf*Q|>Z@7=YEqk;k-3Dk>gtx0upL%Nj(*OnxMr`|Sa+zR96^bANSJ zAM|!}pX>r+)Ngo*MGsKz%w|8^5z9AFP_!$&bT**i4>sXj8R!2CO}B@$FX>NH#=pwh zn#RET8fbbP^gsY;9yM>=YJYsSVDi=jw%|cKiY;te!!B|6$p?GsD#SkfaPmX07G{F!fOBPDR(aKLgoh zEjjtE6!wuXX!GtH=Ry{?mP!~>Cht7R=+tB!D`*Z`*nzZv^}t>q9u(L#a{f5{C(hvW zYpOBca_capz6H_jjCCw>>qZX@aAgzZItNUcF6Y>EH)7!Jrgmp-*u(#UvG{wx`RsX< z^#@@?NB0)LJ?!+IA2ImQlq9?%?;P_GwQksvn(Ty-V7kl?**_Y*%Y{9`AKzMS@fhM1 zd(suBQ+`QNHF^2!0;c>kH=16t|G^4BtM@w16`LV-dh4YS=RLM(Dg{sexexz*i8@-k zCp8XW4!~*X3x6;SU~$N?Qr}zH*c~%^clzJhuk*U*56|4W^#8J7ss^LE-704+dEfk# zrSz}2sUde3V8JWt;l7D&d-?#~05Oum2zup~owub3ug2`q+b~%Hie1GPrQo^mZXP#( zPmlEPR>64MLjYzLBM>qG9A99rJNDtut%R zb^0_@%BVxsKY#fDVB|BRdKLj@@&6E)3LZ=TKf~|t1Pwu}1Xo_fT$vi@d6k>`_8&uu zkG~+v9rprpjXwcia-VH~MLq`j)U1De=YL_d|Icp^z)$g4v{wN)-)0fS9+ueA;7biP zbn<=bp0Al(17`Yz>&5={(=^I(=rr z!bZ9K_LLjLA+s|8ijk$zA#B(^dUi)0nOlVM7l#j|oHP+6{?(!_r9a zS0y2`sfWRb>qk+}EXMU9e!eK%=}18hkF&KRn`;w9bfs1} z1g(4ncB0oCzT43hK~+^k{ZSzJKG#L7&V}v@KpT;-Q(OR~9J{@r`xP;ZI(~{^7F7aH z&B*~uxKU)X-92Gp43fXX~VnaS1}$?-of%+`s4A}z8?VqnD~g)|K7w2cTD2uX4??>v|Heu-)2^7J*WyG_z^G1eC4*8qbwG_e;wouXX-efxZ18daU5K|$h& zIGJ4bc6SpZHFHW-RY}vl(9^3CSBm|}As=s0?a-bB6Nsf{QKJ%0wL5>)EeIs->{f#NrB>VD zX(UAx)rGuFn_hE1dy5ps4H)*UpIK-m?@RhF{WNo%YC2^jI9akbGm+6hW?e-{0y9la z0%h~L;{d+amq;6t83)qqsO;=}Xk}2VDwkD$wSEl{N7D5l_~l zr6FFO-Eh(e)9wj@&4I1A^V7#9$!o=+>JD_&vatOe%G|z<;dE#XPb2hkliCl1sl&UE z=sMY+6ZIb1iVE2V67rQ|)2<5f=+X}ie0O|+saD|h$yn{aK5z{%*ahlN-2yEo1DJ~~ zDF2nld%9rsEBEw@3!RD>a0gz~AE=rdis#eiA5Z0q-YGU|d|cx^xg4NV3evn4bvIYC zyE;a*u5DzHl1e_b;hwsz@O?);kb^;;c~0eo;a!DiI<6uK1MA?%bChBk#t1JPi|)hf zJdp}W8SZY6D^y}>>#*A0w^kI4+NiNupXt-xbSY#^{WyYqy?@|PstlHI4CnjlwOCk+ z^8CID$dzLTCDNCj9pQFXvcJR=Wet+EmuM}$R&!Zaj6vSL05H$<(#A>k0R^c84Zeal z3>@JZ_c{~!Wwj9WajWS->B~S4!Afm%A3lN4@V^|lI%kzrUdw=B6-p5^bIU|fZf;JL z@%_zWapUeQdudU(wHDs9&bsWKA$7EOSG<^iW+&ax@ilY8X#D;mQRX%;+e4Eey=c}2 z>K}I8wUYV;wa*a>-=sTy|j|eMW zd+HqRJut*vf+6_*c#j?3_^%?BWenUqYSHlO1@ry~>$t#PS1;tNoR4nlX~vi6?v5Tv zZI$Z(@_7AN1hpHw!7dJB3{*b#(CFiTKD29&F)Kx_Ileg2dGWk$PZF}0=DWs!6Ee~7 zhPFz44xDN~X%}k#`Ihm4J$e0gfLpILofyp(N}8K@L%9C-O|=Z_td5XYpQcwH0LWmYsF9LIh_n)=H-E$I7gK!E3x)(VAO z9Zl2gdZ%)TfIAz0lzQl#vm%`7%jdd5RpHwjz<5HiCR?A0 z{;L%NyyVmUmrr`62p+h#V*Sb<7C>6-o{gRk1vIcvIW&0llcbJ+{M8S?oxP$Q6TvL< zVxBwxu3_D4UQd4_>#KSXuC3*!>WVR;7ZUqPcd6Ub@srLV-}xLhQxIh4WFggVAoJ28 zLO$wrN_OB#j}E|8Wp|8q8*4Vtef{f z_5`AF?2V&X6Qc-L1QONL;)&$7=N+73LKn{?9G(WO=Q`YDFHX9b$Yb+{;78S>WMEKm z^EsN6N5nDVY@wHOWeTHo+jYU|U4!{qKs&kp+CPsXA}lO%CZ{7b<(iNx#lFFdPbH=` z%qTU)mt8m3g0*dbxbg;!IjG#?Ncz2r7f`Oms@XhTEUf~@)T@esv3GuL6h7|Goe6w* zf0bWtUb}-}{XSeg+A?#J(3XybD6#X^0N-J0-G#QQlu4yGjIa~U612ud@jjp;RLVI62o6&p6mW=3YCuIwe5$Xme51k(18vl zuv9Pq4b@OWq)#RD2-ro6N4wDbvEW8V#e&bBy4}-+{tcFeS`Jl}#@-%@ zgKZU(`ic76u8(V@1MJE$hfL6sAG*G$qF&$;#`)gXc7QPo8Vt0i#;oXmc&_7`@L|L= z4_r~ZQ^R~0Tf$#!(MpT9T`LB}FIIk_hWKUA5}I3p4)F3OdB#{|ycs~Btnu7HMK?F_ zVPb4Mdm7$1yO(Ci0PckxdIXj`-vGDp6j(l`xR22+f5k4onV0a$VZm`LFdPYRuH3rR z@&6ty|8Kr9+CKihm6G+Q3jIBjk^+;uy|VOK%6yMzS-q%D*fRUT*A zWTD;;z!TS2#`{L6>(q;`@zX_ed^{adNO^8*ffvV)*yU7m)2D%1c}SNAk$z-fiH+9N z4hgIV6(si73eBqI1Iay3Tqv_#J{ige9 ze43r&ThwTYK9B6-dgbBvZ0}|URaGd@HEykFuiP|Vrt=rBi5vpx%yRuR1GLa#ZzWb) zAT|-?qaAQEtDbA~5+Mg1Z=T&d2@l)NyIHc`u&clcWp+lX5d&7WA4`9?u7T$H#-!L0 z^Gy87#ibveb-iQUduUbXU*HxWa(=GHX~K>vd{`ay2^Vl=Jd%3pD_^Lv z12+xR5Iie6;8!4^fI5n-QwxYG=IFYnCv+ws{7{T|SlK+1pE-bWMq=RhKueDK@>aH3 zt_*eIov7WNfKqCEi#Kc1^-8Ugx%C7)pRFj|Ni18pu;gqa?&;gtnIG5Ub}6Cr@vxlv z%Y1LHlg&F4H+Kz*l&W-TF4~E#L2+ps$Lpge7gC%#ZQIu4bwP3Dt?QI5ao9Lu^N$7^ zY^p7b=Go{{9Uxu4-C-1Ws{$(cMOPjf^p>}>@+BGv*tH!9u6#UaV~HP65(7GkfV)Cb z+@*+P1Nx^W_lQX?tkew0v#H(*OXcK!WJ43%5(2GB((XRt`BRI&FP2D3S&=2=);9xzNAstV-P%Vnp2=YY=n20_; z%m_@M2HE&cirNp!Nf^7NS2=mdB1p0)LX+DDCm)FcOOpp8N)KqV_GLX9g}~S@W0A_B zXJN-Nk9%dnr#l&?!Gz6y=6*ofjKX7p=8g`#;CGsnsbD1cFKM?7qv$ur#>E-61@dG! zPixpWvhZ>WT*k%t{$b-01j3{ zF)Nd9dQ(>P8zvk+HT3AzM4YgDjjX*h9#1Pb1lKdDzL2`p8(a zTdHu|XlbWtG(iN~*J5kXkxY47*PFNuN%s}ancmElH+e|vyF>EpcX8jk-aS{~Y~1CZ zg+lB(wCp&{I%EXy8?CuL^R_u&Bw^j69OA^+yj8@sOEa4W@?OeYxFj#8Dm;l-qUY?y zX9RKqA+(1z0b?I2RgvSdn&2y6cy^0Hf~N6_bS2Ob;RVpSB*#ug6O*sW{CvWvd9}v@ zw<5EMyVz{v-z)~Y4--KAQ1gm3TS=lb0!zwg&hnh6jIak%MlYs!o0fLf)uZn&q zdpZ(gu`mY{-F}CYFfL6ipd{DXGhW4|4(`j5;WD$aCPb9;Dv>ApiL>ltbuC&@PU-Y) z?Q`n6d&eVvgd8H$TYQ?Vf$6s)6G|KBL520E9*I(m6k z=@13kSF)DoBZyRTV^pZ&6A90|tKch57KhUZZ1TWT{+SlC=%_KUW?@ZpX5~@&egJ8* z994kuL=1?sIzOc_SC-wPphQEo{W_+?HWS%M|!zdF)sk!ZZkiFvw~L% zjX%Y+&mThGR0q9gH8f2&XX3E!#nMUNJRW{g_i!-X19^}&>X1DTh^~PKw&-nJ*02hf z=_l~YDh+X?LQMZEE@2a(2Y&H9?~s(15#x^;hBT^&cZ z(&%F5cc4oryQ`BnoL2is=s5w)y)w}!{8_z(pkCS-p{>Rmr@^=T2(L9aI5~lw$nBJU zrNDM<4Aa+%2p>5ZdH=Ekigv5p+1(EOFaR2$C>5rO1V0@8$~TT7X)cIwkZ|rR_eh2m zQ-G(_us)H-*zsPni^A+n+E6UhNpIJ>_twRyoH{ZdRJdEHTk4vA;-!xW4;eQR3fhb1 zI1@O~Uc73Fht%6`e-7|FZg@uMqkJNGvTwML9aI!@DS5{1cXkBaxq~?=A&efV;{fGaPyOtbukU>b6pG|*c|M_yo3kKh@Ab=E_q)@zXS1`XwY=BT9dd| z7D|J#RF$D3e}#{!q{JwvLa^wh541sXLiy6<$fs1$e}n+m1Ag;O`UKJ>Q!(P^EHwpP~y3jC4jW>N%j0g`vkSkjEfXY9n%$M57jcl{|RuT_*R!j)x`Y%9bf%T_z=m zXO&PQYfkw>p^W@(6>kooCa|o;_;B%ttbPW}Tgt#B3qaFfEUiZNvb^ zJr3CZY}@4>qt+-aPsQ@BIvJP2+OX1&9jj`oT)Zdl%^3l$WKoh1*fD54_KsRYuOU{s8C-w4qqCpa+gP1 zsa;PBuSq>(=GHuIFKpeEA?-AFwOA)w)@?0v7G&vBmf@ohcyzQi@B5{p5*v)9p02+3 z`bA%Q8?wK30jLqta>t}gC*;N|45XG)9s@1(H;vsdegPIxPj2B|?r^C%=AMNnIm5@% zTa9MG^o`gdS=D;<^OGogh|2U}&KJXFVWjrx8O4ai z+!|q(8RGo*hTfrPSRm*b?c%2OZ5fM$S57AjX!VrjA7pZD*P@>6u;%AgvLAO^22+d@>FpxHSXC~d)#3;!U`@T7Gyc$gW877N|T4t>9x4~WzdE+DAyY+J)yK_>#g*|@W+i# z+m6IgWR^Ae!E;LsFE8$Tk$X-pk${Wrhsuj~K~ZSvfE9YvWP@1E+>I}tL16f-gOJ62m6450hZ~h~l$zWa z-X+Wpvnp5d>h8+>IM?jU7s!uwLm-Wyl3w8n6|nZ>-fDm4-`B$sRAUr~zP@K2!GigY-ox;i*FTn~zI3V6lF6OP5l&z(Ee)V_$IDcW{fGl@YIjL9R{U%aU#@k7RE zQOwxVx6WUBrkpnS>*jp1h@(K*_KWRog1}R|>lvSN3>j?}e2bAWgq=P~Bb$DnGD@0i zq1aj&vmQtw3Wq^}lL5q7l!dwa0HF1*@L8zflVD8uU-Z#^@FZGKg^?-8WkfqX188#H zIQ|u^3&(JV3=t#?E(@XW)`CYP1#-3=5}dlcA*$->jwv$E^UPf?H}$hjITgE#M9piu z5chNM9@Gcl@V@y0NrzF*T`_1+xE$_0VD+YYO~?LD>)RS3pXG&#;lMf5f=(SdYhu~h zM~x@_$DmoD700b?qB=EdT(3S^-kmqkqo4sk1BwFNHi}d8}I~HHB%ZsP#`9i`8`Ve zyI;VEmGdh25$VZA~okH?gbL#v^WqAjuBR-3rV9^}*frOv+U`gg#7VFGbxc1FQRBzEAL+2Vc?y2e0z8<`r&^jE(3 z2@9_|DrA=%V?FNrB9pCxdcfz=fTtT?SwD2y&MK58WP8nFp>OKEHGG%zEy6vkf7g}z zR0AW-oy*4224{sU#Z*?>}HlVE`ou#?Wb$ZBNz}%(f$Ylxp;)6R=KlJocyILq4 zfQCA29sUMLm*jzTiFsx685X`PmnOSC23R^hD#}1QxZ6PA2>eFYqq;)lTE6dwTKHgZ zA-x^45P|QYo4%s)>I?@PaoBHpOxW1MD@^-vfzF{~?wnQdCSzS=ry=$`yZAStS5} zFYfUC6-IPFmD?y&nevocZLT zrWZ+wSzW-#8TX|p4p5r(>K58V^h20dA8*9}5%9LV&*`XrUOEe$sHb_j)Xs541 z`rK$~?}T4?*-yh5Fq)a<%QAMunIJ1lW+gsx{Dsy|tUr#KA=@Y;4_o}d*FF~Kl+B#o~6ea8@!4gm| z0)w(W@?>okwYOf|WX?fc^cHqmtdp7c6%zHqHs97s$&FYy>=3iuZV92mHml^Ssl85$ z0s(e5AthFo!wn$aaCY2_t8b1fwWWE%DRNF-um;u4;9sWxbq}bqlk4~LlkLQUa2rd$ zI(@%57l-<)w_;0`ZV}(%)$vuAC62Pw&cqQfL)Clf|lf7n^U0Z zxU$yr!4?8;$(aQVf@ymELV9JEihE1$_vRVt7kb@6U=wv#mCMh|DQ#madTDY6#IQI7 z&>X&3pH?|8in{q#p&B&%RPH{p^mgm00N`FDT7b9AdKiWm8;4Gn3Kg{OLKYc2U6g{j z=ec;6WDrn{EK3Uf9EuwB_7=N9?dt*>}{5 zIaoe`@+U0`w*z{?FyIoHIXhBq?$*3IY6VK4>qkh5rZo2fuhAU$seVY{oOR{6Q)L%U z9xy4~?7wPOpcFaXWqy(>E4|)&x1=IwEh*)P?AX-~^PqG}{{eP%;d4D(?i$8mh?LI@ zcCmC&?WodcjfL%xAcn&uP(S8RHvpZ;T z4w_Rtgh<=&ynPfAbSZ4-7Bq-?`AaFzPxYE0rS+|0=eJIU&@GbzeHr$YoxGGL?I69} zoLJ}X;qyBIcklj`7?e@~59uxo%L#a}y2PXxrZtkD$SeAF(KRhrdpIchV3U|Ad8Jux85Isccs?R6;#K# z?y!jt`Wiewd8qR$Db>vY_ht&I3kY!egPNU~w~qYN+*NkR?Skax)F#1K0t%5#kk?i> z`o%A6CV3POVl%wWrB4)1Ih#u?7MfLD_unfax5TX)1&zaYWHKX9Y%Zc117S|( zLE{03>7q+b^N6i-o+3v9!F|VmY*ICTsyZJ}l5rWn88+e{jMZ=jIN&LC zrLSQk(9KnnF?C}n#c&~Lh;`-Cn2AI6f|zA*-k7udHuhM#;%>%N2)fhRq_h+v%VX(&a9{#nL{0ZmLe^)5 zO%2a_9bBjkt#OQ79~BlcD)C|?vj5Ova~!CO$EZ5T)YZtmTo#*JVIWG$bGx|)EixM} zrnsPJ=g29>(@w8uec7FPzv?iYeuJ6aAl`#E=ye>tai}2^ODgO-Um*RfY~z&)$>QzX z4JCjPmqI5&ri7fK+5FT-n6fO7J8_rGzx}d$GwiN6>cw&BFg7P zyoZ!VqJK!fzL}`?PMH7IcPaDdfr0$lD*8{bP#mIA+){vYe4xCMB;XKK3v&yi!`6D{ z(w_utGbiSMq)V*wpK7UaTdr@>P@CR;GIB6z5RBrI{v;uz9oNShy^*v@kOl0$k)&Lu z41>z(_tzAVk&xE9AW_aPu_sjKX7&d%Hyr&jH7+dDViH$e$IBmv>^jvq2s0WxTv+jD zlcr9W&5QCvqJnS%FbPp2tRPhS#Ma0P3>d7d!MLC1Iv8}h59!>x0L!1M7P}&?XxCv} z;kw`j5QW3*{Ny@&V4#UR)YNzdbqIxNh@rGWpNUSog~OyMg;pd;XKBQiyfEoKIu74l z99oN@NLL|71B^eJd?~%F4v}RqW${e~pws3@UT_6rUjg0SEJWZ1ZCj;*mp7Qk4gYPp zG?;(!f$bDG$bZ}Db$%+XI+8pCtRxs%%;atVlk$n$tzdXqAmb1)V(r{d5g5xms*LEZ za*ho06mE{P1e5_ldB?!z&E)5@O0FYZZoMmh`Q*`tVZ|uoiZ>j_x&@*5HA6>Ew08An zSBr%y#bOprp%4fwlZ7APHa5q|>Q0M%&*xEhzs)#si@egX(&;4w4RJsKA0zzj8VA{? z7C}!_RyE#u{96*>^vAc`UgRp*`>teqeWBV>V%$B3{c=$0ZT*8RWW%$>B3H`I5OANU z*u-V3580R4*|V=kN5_m@^?OEj?YY>8$NsNR$v*baj=S{yl>W5=ZY?p!hF&OaRvFUs zZDnbxYj|&ke4}e&JM+d30%ea#m`8EAqGGR3r753nq3l0RM(Hy1>TZuHuGu%jS+Zcf z%MC`qcu9*UI|mfr@aMbzZr(_t5_5U6(6B&?;PDCn{h%rMU7+_r(bDMWMt`~szg72g zt8po47h&`%zd0vN3`@41Jop-8O!j%YCZ3q^i>O*iYHZu=2|IH_rtga-|ECfimN{xtjSyq*1SB1Qb3NKlxyPTvHV z1*#)CMu$%>A%9A-^h4d37yav~;e1N*ohUQo;^1Tn-aQ&BrKXmaM%qk`4N?~-z5cC)AOS8*Vz>73c&)+Dy96P{8JlscnjBiq+oP*k(?x)e-W^p z6n8|nCl8odVx*=%H75BVT#wmp}RdX_;+Gy5c7}M>OL$Ri7HG>hMAC9^hsk83Za0vZz&^ z3bDbQkrYdqv^O=dt>f#aQ1s!Mha&=5w-hGstklKHUL{I``;8!7PC>W+4|OQDHV7EX z5XrITm-Ome8-T@>Oh27=QT!ukl?@MzZ0fytf#!m31nAc&|B03l%hF)bz!;}Nr<`Vlzoj^lJbLA)U?Mo(TihPMpX8GB& zy!^R6n8j!Pm$P4k#lM0jR8Z>s`>byJ0obUiEe_|P(TaoEFF8q{QL+ImL-&>C#tM67 zp=Pnl900IDEI)DDr=T*+s2rUin&{X@yI(Tz-_9GVeS_>~UNF|!!)(}ZS#S^4$jw5S z9ay{6jEQY?=!f(Y)^0z}M7!&0o;rjl?pc{9-TU9iEcmcTGXF-^Lx!HSVuN{Kwx{d; z6ZM+*dfpI|SYnk1&dXU&UW}Zxw37Z#JlWYM10LV~f4u-GMdxwLq~_fVI2VIoajq*x z+Wi*#y8HSDwoO45K8`7ZsN@;JBz^66as_LJh@}e?{#UN^ZQqsl7wjLrM55nYh3@O% z+FmN$%CK2_};QS`|b zf0tYqCd1YE<|zZG6_>)ya5fWLd`WTVZ7=poU!gO4K<*yDaZampt~-6l?{k3O z<~Cr$x|2`%`8DFT;EfxoMu(`yWvc#1 ztc^Jx)Xa;5t!~`T4&RrNy0DB>V^~$+Nv6%h6Jyr^8PCJ&12OZO-LLCVT_ufJX}!y9 ze%re{p^3pTekwAD^SClhjT%0U4U!qW^xfXfQjc}@c(SEv8+nl<@d>5X=U0UuTR$%Q zAlc$7j9H-tEsSp$%49s%pQR5w9RDdRa+z0us zPB5qht6ay0?L_eejWc%gde{gppb8MAbZ6>@-Sf=mVv2*GBh%+fuVvv1BnJ!AQH4G+ zbwui{7mvvcrAt}nmxCIDA0pcb%5U&HgK}B0X8co?J2PuScj>y+YDAg(W^a9}tIi2Kc^3R!cQ4D;kytRlj_` zxVA0&V-X=FAb@`*H1svN`Gt+mx!)yN=RZ87owN>F){%!37kaFK=h`@y==p*r+qxnk z9wG>DT&vkoJfHytkKb5MhFAsv;_&$4dG6;({3U}qFw5eRYlMhC^3EUgqMkPMUO54Hz>MXvN7sbZufPjkdqYsPx*VHlGGA z*9pr9^WQHKJv2D$V>P!jfxYuf;bLj3($&%nmX-M`ipsuv_e1jNmE5J&eBB9Sn>Mcm zRhKM=mPVOsY{lRdOV)oc>V@okXEvSFP3O-ml1^@H!ZEV z!aZ7zZCi^3pr;l!xp>w)oU$Qc_HZtlFi5BIUk z3Rw^Qbmw_~AV~V6x2r!uxDNrGCd(vUj8+Y(p39z>%y~GyG*akSK3cB4fif6QFVHao z*4P0@dBj()P1@4KeFwJ@?$Dj@=$~#gcbs--ht0Q|=UaX5luui1Rck2|jSaS71g zXbz>BYqeC%|4pg!!3I?utk3*M6De$@AW$MjMGp|L7a&1X24C0jgr-LCo%|$eJ(HZh z!Sl>0I28O#a}@4*M>ySCvyJG~ZeQ+Ck@E5(h?>?bYstEHCyY614E%hQg%0em8usn% z*e|$SGq?CgG;p%>dDI;N442l4Q@729Ek%At7FkR*1{%~YE_UVxzP4W}^BD!XHMeoc z`S2-0Eq~roH}opCd+rf2^g)KigPWRQif8^2I-@)AAj>E`QyE+jAT=&}ew*?u@55Fn z?7pDqrEK{Z6=E+sks_}wD-@$=B<3B_oy$t{S=Rd2!D~7{yDhyI?s)l-1wP)2$k4>2 ztwA@hp6B+OW!EloS9nMx%jhEuUS#&76QAaW6ADdS3(%5NNIITIv|@+j=U^uVhP@rU zkDQ`&@>)~#)|iQWje|eF|2}pBJM|pPg$1)dy_sbH{+i)AsM(h!G4l-dfny&dO~9Xw z;StKSYM@R>RQBq?vx2KttHF4AhVQGqrO~B^uM2c2o$~qoa@b4$xEo&;BU*85KUTbU zt2lZLsFwmJ8~i@>MgKJGrjQFm?-x)j>|W@9JKvhin_TTuDbhr4o}t18gC1Xa{b@*A zFZsTfmbU_RVGivoVX(VU0nQZ&?z-u39@G?H1we@FUN2mylPxV$1lpriLUeI-C1Yil z<|IqSR?`)j|Bueg$yV%DJ;0p7)T88Kj;M2csYd7Z#!V5}?sQT<@c|h;F~MexXYv!=I-^{Q97aU%xcG=A;xEbI)5W3eWtoZ6T1-D_~yo8dH@ckcLAzUQ&Tb9(LRD`>pXkUH*O+! zME@0Q_B;PqNT2VAEi%$?EyQ(x99&eWGAndVs49br(#dGVUy=F1+-Xi9qi|>aTKZ%3 zB(nSjAUeM4t;qVgT53)W#{6<#GD+O>f>#}g$TP*zNw@|0L7%E~wPImQKNk2&bCz@C zw5yqXjii}cS7V$1_Ec2RJ=m0Rv(9^5S0_gLQv>dR5+uahvC5VeI!idykEF!sJ3G(l zof;|LvQld+FCQ?qqN=k^QAR6 zXqmT)5tQSZcvp9x{7Q&7!P7k^KHaV9VdEF&h77CR7QR}T1CAlcePsFkhSIQonA$Ba zsln;Nw^_8q;B>d=1gwzSJYHJzm|Jqp5Jd)UHAM^f5LxplTZh0J53w{mF1x1Nvofeg?S78Yf)Etc8*_ci+x&AgVCnopPvOf2)sck}A`?gok7L0$}=mIPfZfQ3YZN~qs= zCtj@rkCcC@W0u-docdU|bMSeYk#w@kP^2=nZ8M0#ax5~Srmzz{ff~IHhm|tWX zN4}!nsxF)$^&&-^b$7ctnD+{RTx#Vbp!^+zCVV|dI-h~hg!cOsu@ic56_+Vyqx4RO z6#$8Q8*L3G1oLdD)Krfl7?%kC^+sdpW|2WnVsd&ElYeVh{mR_QOl)?i6G~TVcNCpu z{yxAV>{)2l^w*pyU*CM^ws+=T4sN-1v}4lW;M|NvuAS@~WrrF5R@VNt+0=Ctlzz8{ zY_e??MeJu#DcS9Ejd!ea#AIf}y;u9OeJ-mpfoW|3eRp={7YzyV9PwVlTGtHWwg3}^ zDK@vtI1iuM4_U1d&!1KoO+Q$<=(};Y=gQ^{#icpScyGG$33VbrW{ptZ%Jk}{DovsYLB{b!Km&cOX$5L_iB%ieg3`**UU=m)CdYwpOyc%aMz?7O8` z+>vB{+nq~|Jm0}+`O8z$n0Qacyj$7Yb(-s##-R$|HqE-3Ph#(Y1dpg-b3B$O^W=4Mcf|+ZXdkKet*}8_InQ6E2-+AE{adOY5jBs~jq} z8*h3?&_|Ei*;DF~4kCSd;21aFBnQX6 zRkx@P1R%nu39C*BwV51S@&2}q82O@z;{ucfG)9Lz4rQdehV~a(oBsE~t}Z}rV2_Mb zba>PX-~AX7Po7w?kf016Q^FU+FU|++@A7rv3IxzZO4_8-5* zsVd$vOn8yGzAT4pS0qt#ay*pSeEWzXA~~LRG)|!?o%n$HW_j+BP9-&;99BdA5tk?s zr)cpbMdiF(JyW?Qnt13JqS|u^2ei zEEwAYwrHWT>6``oAfdlW}rWx;kiUmk(eoZ%HJJFFYI@ubkyU`$p$Zz(B5CK*k z&Ijdrxw#a$=}#BmsbuUgDg}Spp}u8>K=sZG#4B^~B|PbyX7VTAs|cyJJLSb2iLq}i zuy#^lwzN~02wJZGaClS^DuV>#$k{xtv-Wi@9yPkeflZr!7YFmG{V|Lh9*H_m0eyjR z_fw1~o=k{0mS>TWMWOBspXc%2l)C=?1tsOliq`^I-$v!vV>wsGa6C!@`@sbN=$alF zvk$iQkR`WG=mqY$_wU??_-=)@#@*D+KagqL!AYUCJu)Mov0fef7Nc|ut5vO97j0;_ z`&>-QXX%n@mF&%pC8eEej)tc*FY?w&89KkZQ-h*>ce<#ap3}Z7i@s31+<0wtuKv1x zJ(by-p}K92)0x$u&-h?4wnfYE=rEmdUu^WIg0+ZRPsVi-kN%f!SwJFVT5c0x*=W?n zeOvtTO- z&YN~1TvJr>mNF2d1>3G2<@?oy!J72wZ6xOG7sHJLz4WO^o{S|-B{`j8XvX-5`D4C{ zD$|@br(IR{=ZSqeXjPH>_fXD*tHy~#;5U$IvHn<|IvGZU^R{&Pggwt5=W>J5D9Qz}QoKf* zN{jSm$aT8229NKR#(iMnX404y?a&ocL$H=yB+*&K2i1~jy~GmZ7*!}`h5kw#$iA8^0#nY+iPy0s0SP;KJ~IrT*UN$VcuMy^yfw zCKpMpd7-t#yuSzFoILJ}K8b1o;Z+`$mSPPSLwbLL#wl9lYNzQd4h=GIMp37^ZN z(o&Pd&+Bb|{`gVwA`Rn&@@AL7mHE&lkhKb3yx-hXu!rAw52T#yWvIWpJ)gWhzKOAM zZm63W5u%H!0Z*6xLb^H21pHJjV0qr~tg`!JrAHP6aXlxpb%KI@vcUvFOu<$rLe*B( ziCZL41{!}Ck?bm3ohRtf3=){*Eu}i#W6(>{Ws_I)Cz7*iyWz+c&4tm*D9i6;?9OCH zpC32LUw^jaJ(R?}8cgmFAI>fDoy09)468WRxsyiP$n3zr6--__Ll9!OIS6`{`ndFB)A4077j zB3b-dUh$qN>y0-1@TAn#Q9~IS$#QSJZol&g^S*wod`nK-%nM^L(65Kq@3C6(b&vwr zP7{ZsxRrC=>s6nOt;Po7d^#@g6T3lDc0-XcsoCb!rk_I!SXQoP85z{LSxkE^1URQ= zbfl-F;crEs@aSlXnX7deGcl!(fls(KXxBySm+8xZ8U~y01!di3001;cNF~et=M25? z4R$yD+DM!xPS?z=Lq@CBUOUy!zf%@UJN85*)%N*%%{kA>=bU{g$q!(a;KN+S^;H%> z>3O9`-}M^a(xz7J7J$wAA@h^AeuGeQWH!K`Y2mt5fyxSAjjl^nWvA~rG zAt=g=i$lh%ipGczJuCBU97%at0R<*}@yq0i=)o{dJ*jM}0#2_NU*ZYuZWSb zkjQQoupo@H-)N@?a_AAc?$|*&)_H>5C!s>&LSV#Ms^CK-WA>sH=Sd#rU-k{Pq_V8z z<~v5Pv1)gbvHm>gp=$|lw_3gD_Lhyjx5_@T*0dUai~EkeJ~t$n(J_aGM%J@YGBQ|f zhU|uj%l=m6vN=WYB_n&YJCwy@+MOErd)Q#e8vswI`xS~6UkPp6P+p*E2*_z9;9b^! zebq)_^KYT>&HX=$WY@qNY}%(xJt zd)JJk$&irL^u)A&Fc=|jK9!Nh;~+?`qTT9MK{TV}r_LL+A5a-AgVJi8XRqPguQ0HQ z%aZX{`Hw@qNzjQF|KNUCIfUAsBtvn|LIZc_u&BuZ zL9&`+oQMi$n9?7p&|PGxkEYq?l5=~9_YZW##GxG?k~zBFdzJj-yfSIBVSZK|B#WQT ztll8rzu^F%L*uF&@Br-tFbqo))%#q-n_MGH1^3UL`Qo<|GJ)M`ekdTDYL zn%GHrUy{++x*`GThyG|Gp075wA2IPdEG3l`pw{ZQM`1 zLF{{_^s#9`QFLY#fa7(eInagX_qNp$UVV>r5u zLF`<+jITa?fWdw)(EMyEcfsDzd<$7h|F{q-x9y5wpfu^O$^@HW8(d2w3-)A(0Fk)M zc!??MlPp~Au(NDlf;lckab_3$AmrzXUy^Gx2D+y?QVti|vhG-)03(AoPjjW92_=UG zI_jUobVOWvaRif{C6olUL+aZ-FFdQXz*l-;_$8j$oSuRo;H+h0qlukG#^b|o*Q$zk zFQ$8dKjp(%rA6U7Dv5wE%xSZdK=Gl4@C&j1H2c9oi)A2?^=V>|8+dCJQ@YK)P*bJ; z(5B$See}>7Z_(I^hUVcb$4cQ3bPlKQklBhBb|A%LbmF;$MQA=ep|47+QQ1`0ddDdz zlQWm#!VWzI5b#6ANX!tE!-fib(kU60@v3Y226{lTwYA%iss&p>8^AVr z3MXd1TO5qp850&j#By+!qm4t-Xm{e4M_Ys4L;15pxAKm7E)OHdt68F&nB=RpLj0_= z?MU@xhKe;uV(asz%51`lU8ZU-JYjqzWW%UaV!rMhq4HDPdmJtkn9;v!8)%8h+Q}F_ zEO-}-`dx$xbjvjJRlV93U1RHSpGx5~0Ak9IUNO7+pPj)5v&hJIGSjoy4BxLi$$ZqW zuD7qPXL*Mv6+bGCtt=5ImWuP<)WhTP@6COIi9X#Ii|awyHP`93(0NQS5sUOHeY|2m zaziR$b@S|r*2R=FCP01|WY#Z>@LPEHI(X>0w|Na8>9O6M5-lSOPw=W5R- ztk?zM&0G2Ia`;S0jk{vAz(hUw6=N$Iz7G^Zpz~)R$VkiUerq{UX8C6}d{34UbV0Dh zum6r&VWV+~KUd;xwed`M>n-D2H21e%?8|nw^q6lQ+A49Iw;supl^Kx>o*~WHOTzV5B=lY*}-{rHSa!)TfbVL=fY|eW=YV>RM`y0-3ryc@> zIsA_+i!X-FynCb}W^UDy1Q)gIFq8`0UcYj+cR5AiQBb6G-)4VQR=v{eMmMj60L&kmoJJJGFoT~G99v0t*Y*O&su$4_ zieKk99_rhej*IgvdPOJxcBxK+3O~9ATDd6hKOR`@c;acPuGQzqcR(V&{z$mQN@$qk z?npRb)q+w?Mn6$n-Y}T?`nrd~tcKh!bhGV@#%go=LdM!QOKz*O4qp=a?j*E;j>p-o zk3J&xj8-MUbfa6oQ`~{6(Zk3Bbxky(*bwS;lJ9K_6;O&!5Gku2l;4rlE~uPnXjO_4 zz7D;Mn=hOCtyb9aayZD=9ODMBz z#$^}RWPc&E4ypf+brQiubeK(E72CKWu^$h>+HN-b{;=i`JcI70`Q-MyN#^&2H z1E-&UeKNw$VlHhJ%36}Ld7nkS0mKB8FcAO1@vihP_+|p!S zelmaoJ(#)=Ipe3oLU2In8~TBc~+n(WHEQb}=x z#ny7;m$ZRXx=OS0N((4HXpSLpLebTxf5SB`yB6>vmMAlhoW7NP{^TCO^sWG7WXal0 zN+rdEQmpw-Qzy=SUjk;P*7-M-@NZsbF-@As$LkBVARjJ@3kw0Gay z=Jtsv1#47YSdt3<22$qT5gsIunC5l&O`#^)gAWV$SM9=Y;pCas+XFPz2)!3ga5)2^&eh;#elHrSCHLJ@jp947#01;3yxr; zBad~>PpZIla2`;pp~N;pDK&s6((e}GKYy8{lhmvMPACDoe=~^Y%uD_3O>F7Y?U(7f z7U@HOaIEL5UK%&=$DaLN)%O2z=&-#b=W4jg#bmuH=Wh>_b?{eOkjd#xr2oV3|1Te- zS#<2|@?)P_XTxiE=~{CH-yI`c-LiDkz3{*M&Ane6C0_nA$WWR zdAoirL*#dgg#X@QdV3QX^LX7~y)qzey7-Ybm-^R(bGKB9@<_7dZ-i|B{YXbLw|BC~ z^(($FMQ4ulzv>IV-f$&v#{-B4$rt|~Gx?vsYuLcmw`QDrMS@udo6(op{4^3Y7^Lia zq6JMWO`rPPYbXoEB5UbCrnpH}Uwc(mn107@=a--7O`d;y35TTsH#kn%VM%s4j` zMw=VNl|Ibo__aTT2uahYn4zTq?bG;=HK3UVEd2q09eII2Ji?KYaU?hQ8sj~^tJ0pqG6Ekj-@wx9Fsdjvo^PN33< zv9*4+LEo3SAVc}=%P+crcesBQtf;;^S8n>a`vNB8bLKPu+S{-P^dJ)|(uqbJfK(#) z#N7hwZYF?ARrEgbex{W9x5cUdx*-4gFTsRo-RE3tM$%=rIRD|=ES>_~_UAi0!!>dq zUS1WzjM;sR83wkK$o90oBc|yN#~*<_^u@C|9s{3*I`X=fadGu-%iG&{{e9u=5y7M! zsj$>tEaw$oWjXM9%FTg!x?uT=G_Qb*Z1}&rD*yY>R6W`H${X!pRy*aJRDKV$4NO-P zU%~4q#7Q`{#d42YUeH`OJ-_zZ!Oo6l5n^wjPZ~o)5KBOTBoGM#>CC~qSJM0HoD!;v z(*>(h8`(J$zqHy`{zmBk-`Drc9My!9F+nNsJ4xoIO{U%2^3W_DpgghI==wg8D-#W4 z$%vb}d~)P`*v_%Hj`zThz>JeZ37{w*nA}4%T^v5$paI@34VK+fY2)vyp{JOl%)GQl(;pS0WJW~jPAy8 zSrib;0YDO&otG;8-zN(Kw8Kkh%J~DJ%;bUAicZ!q{8z@0pb}FF1V&eN5&&hMf}N|@0n`GiN@mrpd~1xHHaNMb(8l(x*V|4PWy0;aLG&FB*J(KEGtd_=%!yf zp3XKr5yd6`L0#+T#JQ9>k{v>>jp$N9p#l^T!n$ZvW5t?!P~^|06IBd%<#FxAw-|i$8b; z93AZ3EubQB%fepwkDyOy?kfWE)hqvQ`6qvJIaT@i0XV79H@i8(KRSIt3<@wJ1JD^a z{tR05f4}_yz4L!F)cfa0^Z)y@*Jt@9`g&Bu-p-D-Qs9@zZ=dsjahiNaQ~<~L^VoTe za5fMVQBmEkSK!~dpJ&4KFMj!-&;NhEMiRsTk{L^;#F&eQjdITcHeG4lBZE1t`!`b7 zf4OU^^3w-UuPeCT_=a7G@VUD5;|K(Y0^7K|PBb!M)>`~QD!Nf$?EmDE=j)-uN;Y!W z*arT!Vfck)Fu&?19=X*=nSbGmM%eDO_)nBtiZeyE{27Jq?SC+XkVniQ#F&ono||%v~C!?_-1kTuw5$X6!F!5RUwj8|3#? z2sz!5rQhre^iQ&Z)$q2li8xlR)nxU+^uQ#+J2yG#jP98~SidxE^CKRJ4aYQoz*5Q0 z!>X0UnM9_=vt$UD73cv(sYY2*I1$^i&iM|FZm2{(Js5lHpa)C8qR~*Vp%2ozw@`eB zIz%??e~;b&)&HtqKYKsHF#WcD+0TS_hKkCs-OlzM3lvwcTO`?=aA2J}d03@GC9ViP zEMf`=fQ#Y0#LW6IpNbgWt|KP&vna(*XyJpJ;p>t{KaCE&_vSNQX^o;V_#ORD&Tf$u^CYIM`` zd(h;U*1%5vC-M7R)&E5BqR31_XYS=>IXmYNKffbBaJK+&DN%eXy8^b(9R5K;;hE~f zQSu+&+YbnKzGz8a9;O1){_0Ponb?-`Z=TQW693?Y-yNZjBSP1J*GFH*+u+mJN6-Jk zWz92rw&XcwVF3W3r@O5FWZwg}vQwsf)o;mdE0@lvRPhN3ux)CycHZ0NlL1mR{Vpn^7CwVqfhLe&+Hvcoouhwr})kRxLHzAZ~q@0 z>uStj^+`im6(6c_&+-k^D|L-y#~Hf`$a{Z~_GMQcL2>RH`}9PAeC#8AQS%bL2l4X2 z(457;yK9Gi1D<~CH)We?-QVYJZoYeQZW62Ysk6KN-(J@A!2a08Zn-#-`v1d$lx@Xj zg#K-k{9n1bU=k2*eXGZ2i2cFx2Ren4z>Q*=)A#=H2hSkT*Ln=x8NCuh_vpWU0ss0u zdV#lTk`5iOj{Z7AwA|+4R;m)k9cP6hVvINe{cie?lmGVDQVj;uxVE{DCDRF;Lw?*e)64+|9E_jt&8_pb0S~^pMnzTyND-2SsXiT+mId=DM0Bp z&dR*vbtcTvSYSi-Ve0aDox#Bl#X40P8aaP`z7}B#Py+^PH3WzssTf1I7LwOdafjZB zesac*y#1!-aZlQF#(ZOt>0Xt5klKovxi)jrnbKPkr-Bb(c(fBgmYUaeY&hNcS~i@g z<-p;E;v=Q=%*F+ch}~0pg8HGejteE(EezP{e|~&IXdG8!%2Jq-bYcIlDNER`Gkv0c@b6O81`D7F=kcf2?@Cv&~lo^>*8c3A~%3D*U#sumhI zH)&_xXa?qhdwz)kW&Wln*NKykv@4>1ZW{-AjHS)jV-lR+@LAhAJ7w z_fXWVq=x176Jaq-U-@2%srNWae&-!_MUpz_#3_t6yw|(8@hTv}It5jQIL1v)zLtX0+NI77L=}PVjm)NeZ zh*_9M;+0MW?tpKif!FjS-G}A{_gKh1<&0I05z1q0lm>pBw5v%#nzJr^uJES$O25%O zf65f$2D=E1`PTVv_j$a&{@c+CU<(O*EK=?|st>pV(cRqmLC}tUQfv{p+;U4EE5r-E z@5UQaSqY!*OpJi6m@_Wc3yf{M5|D*=JNGo~1jB`$uj@ej{$02NTepCr=BdDkDPq!S zVR(6P$$r!Jo`|){0nqk-d(E);N08iQF9`4;tZ|bg8M%U|^Pqxb5OtBvs8gNBa4Snd z!!2RgkrdBFSvDU7G?jY*TjDB=X#_Wl-t{GPliMDT0=bbpZW?!3exI7;(uJSTgsdb3 z4&=MBA|5mFX8Vplenf|k9Pa8a%{!BtWUFAqxo&elU&0{Z4~e{#lrBC9c4`a9MB*-| z&LLgU;j_SSmB`>eTNI3yE_|ukm!WJ8w$QcSEr$bf)!U7n!M|cSfxBk@Kl0{(k*WMY z?45Z$l>guFzb%MDB`JkUD3Zz+V=G0-l6{x#WM{@0OA^W&LbkE*`#KnmQrY)qtTSX8 zj4}2xhH)Tb$veX&-?v)JzqB(<+d&hF6>_m?&Qu= zlsG#L#;aD^4e?%;eEV!K?#%;SGm`jufP}?6+08_V)0;yRvb4_un=NZX#UA`wj@zve z#F^52C`X(4M(U6~*p4wY>Dx-G#G6v0QHLo1a+0|7BB)ch#BlG|*+-h}Jtw6_^eLms zL^5xh@9r`%vA(F4euMPuJoHHEK1cUvZa9E{IhLda2w6ySxw>o{2x4WQeTk7hbQA1zY(SY-B|jh33=SC^Zk znLE?3mBzIqISk)PQ}j}IaUKTMwx8}9G!DyVeTcBKwhjf~>({NaW|VkxQRsnL(z$Au zj_#{fDfoH|irC4m$kRuE&`tkg^m@z@(g^@=7CPEE-M~9D`LNrq9~OxX#DKb0?>*JP zg~U8gcZBaqP2ha|1xVf8xi3t|3WYhz%ac`)k7ge6Zm-HV>Rf|#Hq9k;f?1N#@n2GI z;U9rJK43>Xh-byRdiccGgBFd3JCW=MG20xQzoMwhUDT$ zW{wHT9!NJHvC2?S7_MZ^_OUv-72r1zUS?Wj=$E>kjI@8Q6}{J<)lfgjt)oWn}?$qd~hry1Ow@0m16ozajVtlm32{NSej;dK~l3$ix0 ze0o$%^F3(nC*>pDpK1jp^Qenmb)D=v-T|;qfT)?fNnP>@Cv0AcyoUVL+o)#-<<1R& zVwwJQx^~fcW*4cboTD5!PmP91Tx7S!Hd`RW*$-{I88%k5=IKm*>l-&F1WI@NjTG7= z#2MXzC=Y31*H`JQxd*nR-_rAWI+nCBp!cDp97%y@cL{6LIw zxw;dY?`Xq?GzlfWKhwAqk9xlcxFPtXPxIA$-v;EoR?`hTfPBeYNeo@994AunDyu=e zh;#h#{94@(=Buo8z}v}Y6T_OfH-Y7e9$_2(GHSFqozAG)M?y(OCH8Q4Qg4?y_6_P! zsBz7lUGS=QwK!Dge4K|hAY&qS#f;w;ij^5xJT25M;`PL@@{BkP-&yBU^Ns?TtH!!z zhTH`OcQxBilSze5dhj-cRhO=NU#T!@m3G`dSU{)nj@@E&iC&r0GmP7rGLnykZ-if(xvjP<;UFa$!ubM3bjb?Upyk5l|)AjWh&p zaWU`8ZEvk35=|?f(%21FyEd=YdoJTGXTSeErUu##=SNGRmLwzW9!QrvjyLkGzyw{4 zq9cp?j{Nq28W{V#bNX3om$td|c+uzfK>|ZN3!UV$qQiT6$#}C7pWvco z>{yG{tqG-%LDf}1l(#+{=TbfQl?@sz7FH^YZ3x-F4&2rzy7$axJ?z7_NhTcCRfa); zTAx_uLh0%AIFu?itXCFGrkEXpUroNCQU`pOAU_tvdln%j_I}{y?UpETT0P-K+Gx4` zj{RM|+7#EaSqi4ZQTh)Q(r0d*S9`tQgOEI;Y&jw@^Y=D4&-QiZMqFFCt99d*dn%1x z(n$U0VA%XLqOCr;er}C2-|0Zt04y{21K#tEDksp{u*e6**8~c*_8B)muU+LAU@fw( zQYg*cZ9Abk7yzcdrJ~6pYAw7<~eBxg;0+cUOtuOQWf~2IJ$`|bj0Eh0&khNO5;+})g?>uVpz9-U|09M?tpNniD9t*H;@7HVF16zo2t!zQ47hVJK2^|IC1% zdG)b3dW83_{UpZGP^HRRm0(*+WDmZ+wSr%iA?t{J{mbt4kX)wB&lzC9K8x%D43lm> zBjS6yBj>lLNmIOLKGe8zs=nC{%tQmkV(ctAmGjWa`yfb+wfiaQ;ldd@gF7!z(M6RQ1*0YE5%OR z84euAo6C0}ZZ*8zo3Vg2FrB;Z5#a&){QxUMY(MADVFq0mHK_KgAc9^c4CDm>o})Bl zu)&dW;39@#RmQeVbe>77;PBrF(wkz0Lq`js@IY$GK%TlY^!tH=Ed`^U%*^@~{b17~ zN?P#fV5`g_m!vldcFe}s`}W`p3aXl^TL0qnwyDUceZpD2(np?w{ zHOD3Ncy7u>%Zq1XlTXna-|I0Fajz{nvduX#^Gm!3B$0lZ<#vi0$l?+vt$El`IUpE* zj+Y^K9G4x?o%ph*W!(`7?;1JpdDx;G7%QBTM>Dnz_+j+p1=VZm{zS2-|*=^Vu zV09}Yjjsc+VG}S34M!(Vl}2A0dgxjQWeAkS}NejrScPCVEF%zqNbHXu1_!%rvV2F7e?Q)gX7({P-OKhXZ#I?mY(rAAWfz{w{{n)ol%Om6+OsUru!nkr&Kj#k7hZ zhD(uuR6Rjs?w4^Wir7l5@85LWznUj$KI+2yxh=_Iw-@NB=(ILFq#K#B4?7KJyN)e< z@A_F0J0}=K{JTOh}favUBGHeOgkv9mdp~ zaeGUmgQ0K6-hU}fa5>ggzxh#3FszqnY zwF$jl#|y9$&?b<$GWQ6iMteZN|EUkgB9SaOA^oMdCPbW!uUe$7`ZVl1&prcsn_YUZ zh5JbwAK^|GhfVGwIpG}VBMp&DC8{7f8gORC+7Hq| zera?3QOJ9Au=yV}Fb?Q#ZJSf>>Us@Dpg{um{U%i=LXlVbfUwyP^snm2Q&1pGrAIFf ziN6pJxvRVb9LhC)p<%o8E5Ud2k&m*9>HW#D9qoGpnpKs2QVCZ4p4K|M90#4@x5q2G z#5=@e?8OZDda4+)Qz_B3Be6j6y~`!?=imyN{dE?stL+X(UyShq%AP;K405OgbrLh4 z=`YPc@sx2GCAlb}^-z+O$2sQt<`B+Rb>9R8dSXj_XzOLv$NgZvSm&E(1A+i}8O2{O zr@yU%sxmKlLZy);UeOH964X2M4S_Nglw?m4XyHtL^-QjDCun1XiOLpE4=ZRm}_azl~q04cDb`d17rL(XnchPXGf`*cO*9`#Wlj z$N3=#FKj#A0+o&!4IFwq4RVwA2d1MwD{?_Qq3prIKSI9Rt}a!fu4mD_rHOylHpLl5%l4%8L(9r)YvDn`g%$DEAi#~CA|H4zV=xL%7V zdbCh8)%gkxvKr{oeF+6xM=ph}c(<}-{^ebI8pOG4_g1|7rb+mFIQp}OK{6%Ey<8uJ zq)0J9>I(MjSs_XFmBh~V{U2XR*u$3P;fD^R*XscuOYe|W3gh#=D0p6Qbqz~zqD|`J zRFvVNF(OYDG+;N0vY=ZY-?}pXTJol^z2pa58@8qp6lG0u8Pb$(Ml#k(JW zp6s=#MxG^hzbhbf^>p6b6Wc`Tjh^9KU*U<9$lZf z$6`5&kcVL(swQqC0gyfu=-_j@U6AOLKrm*s44a4<_}rSfxOF(jtsb0`$5ImuSS>5B z#V{gYr`Tv0>krW9*uSVwAzP@Hh3GzJdRz9jjh0dDo55tvDU=i;{0>&!aq4zi#MNtV zgxsE_7xwmr1!IkO+EoN1No&478aAQoGW4a-N@uaPgozhJxvDR(cx7qX>7PP)b16(_ z){CDc#lhj6kMHu%u@^EPPzM9zUfjkp(r)YHVcmz3z)U8oaM zS7*OkL^8p;z02@8|JGo}CtbGXIv_uRbiRPorEFarJYfk9$wPf_@@uC&9<`TbJpqQ@Ijw#Y*qlBYN(?eF zLwx$igk6W&VXxz8ae?h~e@8C=?L@8Ari|rt*=0Z@KLwwIr3c_i#Cx%5*@=z0Ae@;i z+chWnyWfXST!5KcqRh-c?_|9UK@RqUZnto>Z>gQKcImJiHd%(EE{3m=;$%izbQ{nX zL+DV}BFjSZbU#cfN**ONv08;7R+XUYG42MI{4EYTV8@*vX==L#b6wj|v4NJvu*dx? zmi#~PqzoBH?&&E!z}^}D$?deCOlnzzP0u+xoLsO;gEk|ZgDJg@wp7=qG=LjxjyR>YwWylvP=pfqmf24{TJ}e^zf$z<8j=%Oo$QO0u}V+F zb=(c%0DpYA#E(ny&Dgq1K^qHCZj&6R#!~VWr5<=^m&JyGyX(yRdop$QPZ^0&hSdVR z3ERjP+C@-OBrPUy=OxBHYKgkm=uk%yk1s_+l1F=qlgG5B>%CL{xFBCi^_h)Fk^f2| z@t?jY_xQxMx2SKIe7ib3-QE-PQm0ffSC1;blxf_YvhUp%G!pAF$emfpPV;yBC3<$_ z1GI8K(U-E&z$vV9JRcc!7Yv(DTw>FFts<6@HFLSqxc||Gdl#$K^63rOzcMpzh8TXa z+hFZ)dHY&)MYvB&G&5CK)Vw&hn|Zn-_vu@pkMMr<>fuZlFyN4-0D5=xL?W^;1nw`w=9|AD7qXmenF9Q z?QA!`0tjo9jU(?N>I*&LpUVtonyTFm7_={IgkH)c!JKYig z+O{F`h`1lptH5##ZvDQ!PnP7?U(@5x2fJK85-fUYEZdcP;ICcm(Sbl&UA#- zK8c(@CAH@>EkW^LKhN!;nRbIzYi`vb?1DC9)g=Z%N@}t@*RgexjTAqZGninLrn9Jn z!7Es*2Rv9`bWeXsdulXyWWL6&j`5`=OOLF&>`vp9AFc#E3_ZdTQ(W>=H`=pEbToL; zw}%~VX<@p4Ob6%2cfL0%!koPjc_>vN@^?#(-^J6F@fsGi$)q*V@Lo$tVjZbkWD0-^ zga89-b&Ag>{S)1W-hZp@6XC@ev7bJs?q|EBu6yPU87zL^qT5?@WfXCEybqu-qx0ZC zz0>m(q7ocuM7|d3te#2^hL$z&y78SZ+R`o6zuW3m-&&$kIKI039%1k9d%SZ|C7My7Lqt}_&kkBP&ia_rGIK}9 zItQK2qr>emtqKq-?F3TL7tO@FfBKXo-Sx4%OE41DSx@b?Oqs=SAG$&s_Bd?k@nU}Z&mD>qNOXymEhE`mdlz-M1`jk% zju%XxH0VXbaaN0lkyrc@oEsvaA^Xx9XV3^uGR?(Dr+9|DgnhzoW{u~sE0xuNN=>sOfPHOfjz zySVl5RrXAT-Qk;Ot^SLJL3PH6<>ZLmSAb>W5pS5g>1yf-SlF_G{P_C&qeXgs=`9C^ zIz{d#ZM}^EInIf7n3i#+ivu#fqTN`twIhve*nE>`SPt=iJu(j@TvQI6Q?$rsg_(J8 z=wR1GydbVeXQ%88eRTys!IEju$p_tO>iXfZSK=z6^&Q*^r7P8Lsh%9^N8OV!o; z8HRdZj{L4aqT<$+iNb{2=BH}BQ@~>;cYes-?pgvn_75TH4}HeV8`aQ%)q%wxA5Br4 zT@KG_9ZHl#W&0%6qby)8L!2HBj6dPt6CLE*s9j9|;Y2R$rephz}65m>T`bf;CZm!C@XCr9FGnh71bY`^)u?^?)Y87?E3nGyCl@_3rv~{i< zeeRX0&+0X2P?}OnxY?DGH$PKMe#@F6{7h5>lV}X9VMdj5k zh`GF}?`c5M{&dV=%>aV}h!Y*ePyr!NK4*Q@w}O0>v13Bn7p~^CCEB^^pze2IaCwPh zRMu)b(IoADIxZhe#9SuGG)}5g+7Koq5x?Omj$g(nbOhFM-&}Q~lN|lb5y( z#7hhceTFI5Z>P!HTu}_L!b6nt4H6?fo_dT9wy#Z#8gbR*0$`<{Q0m3al9l*AgB$NN zc9J0-W@oF4iWh6W$km%MhP()#uXi3SFgl)frC+^ST-1lr0Wqc0}wWvecHL`8($G6rZv2G9uQNx@Uyl( z_QS=q+Ki;&x*cONpfa@MJ)Q43kv8<6iB#T-q*WCNr$3%D0QuSTYs#%7)2$y)O$Y6s z%g&?I+u(E|^8mPD2*+X8-7@7d%mQIuG`AC6_qhloAHgnK9VSVXEU8?6SB}wsK>Z!& zY&r1#XQg!yyF0Oz#aToAflH}CUYRPh!T1;=@Q#9R$dX)T!g6^g>6t<>BQud~Dwc)- zMup^)S?uk`HjPEeHwqnVm8&?=R;9>A+T|&-TwdUJDhFvx`ob*~2P-gjABL?A%cc-R z$9d0j@@HS$t4H9@cOc;iaA}1qvB-X;kS3^C+_CcvL$_Yxm%|U?$GudvnZJNQ59y1k zdy{zMtO?SQ(rj+Qw+14{KYP)rd%C2i)q?KMoors#=X%!N z>eYZ>CrAyw!>>I}OS0?5xZlmb zk*9~#7o2zi;_BmBi>)uI8_kh{v+?L<4BxHc0xi&LrXfLkm_;yi+-5A*%X$fd1_+n8 zCkBFp|5Fk7ufCKsXBcatuqK!;S!#%!$KtV1sxHA>5&KCgV-Kch{DefOjDoF!Oz1?zQ9>ps`z}owl0x#XH~&b~>noqj4nj z`klhsh&gqJ52jCv9NBk6X}<9Dp9!5t-+#?^jXyI}zv6vpD9welC;9o`v~3oAe1D1N z>~n8oQ|xCST;hY)?$x)IN@6z`{4oyW1vb40)?jf{qHk||>U5FBR`kmsNzuwGUl_S= zRO0&ycN9%$AS@mbx`rf#EpN?n7)0jHAFrI71txoJdlK&^BP@Xs2#y8hSD_b$ZT-6d zaE#rnw~kCq?G5Q` ziB}n~B3ls+rbjJyn8pJCp|?E_scoESel1ViCHK8`^z$-v>#os~Nw?cT!)9dVbM9M_ zEE6+VgS5{JvzKk(4RL&xE%g*2A7^5VrOEgL>h!SSO?6OHmB;enxNwYbyV{AfmEO+X zBB>4vD3DnCuj=RQoifA&xH;OUI#V;JTDE+8GVZ<>|Lq59tJii65N5!9z0rOxBKXorU0Z} zxbGsg52ri%5b9>wZ#?-mHULUEW5w2#P@@%tVhI61UWZ8b6ToZd7~O~>QEP5&s0vuB zbn0~8=Q`SZAJ0w z6OFd=p-We)?dH65MH{Ti`VtM+;RiLHS95iLcYh{656g@2;II%|8qQ433=j%RZUruw%4^is%`xTUJ=}@EJt2W zdMP7oZw8RB3R_DAkb!X9?Uc}9gDCrnA656nt-*=sS4gETHMB(Ulo7#9c|f4SYl#eH zl@IK`dCki0$)}4vgN!FBMMLkF-oZG}EW6BN?@#&MCOOvm4jDDOS=qjpX(9xUmY5(+ zfvnfH;*}8!gTQKv#|?rKb1wt>L-1x>1cx&KOKN`f`vSGf-MNm5>rnx>Xc|}{p(XOs z&1)eB8kv@#9ykn|HM%YE*Q2Mdt(AN4!{&P@bc%GXD02HE@058(l1(KFdg$GHYV<-* zI}J_pCE>RzId8`+b#VfRDfS`pVvg$F>*t?vFnHt@mi|TE5#Np$MnZbZOIMvVayn-} zA21C)%u|pHlH9D933#qjzqxR0<=uAPvWAuHvb;ZYX?<-%iq}&Ib-Kh^ArySMrSb3* z10yDiGL!mlbTRe$NY9S(gCp6ZCqhk9+J!oO#)`czHjfsYm{ZCd{f?GMuZt|AcEh)i zw$x+gPi~DA>cox%k_sKxynHmeL|W)n5vndU0^$);poWS9awz)+2Hbh)D6&Qa ze7rT$CUc!Wn^DwouQyq^mnOi3?ziP)%=AsghJz28gBcsMMnYou1s|A|zO}2bGRpiS z;OAx1-g~c|bn=KQtfz}qK$L3b)rvTPwS#dv+?Vlpre{Mr{Dxlzik?o4`_1&Vo}{k2 zBg6UxopU<;G6BPvG-M!JHK~!M;8~#Y?HXsA=bhUq%m?^k77xM^rrG|Y3v41mmT~=^ z0AF7>ut{5{zmN-Aou8loJmRhX40#D?b!qANkqFGo!3&~~3$se~#Lc@?Y@O?V@$zt- zLGb@x=uk4<(#%ora42Jp4US-crrkE_9B~})%%AB9+*y~zv$R91Oi+G-+bFyY+442Pj+~mxT_TqlF1+d*DIR=B7#+@ar3A&El5HhBZuz^SGX5uDTRz>D*u1*#f11|G$95K&E#QmS(8S9Q+5V)V+a3#z(6cFyw^H+UKqXBRPs}N` zGkHJW3agK3aQPlSbO2}T010Y_HO#U**0Y&E19tF3v>0~L344cZtkuNTZ};VcWz0PX z`>`jG`4QlIn+ZwQ+fZaTT)GXu-B_mI{AeA-Q`EMty_TFvAsX9sEawgl=;)cP(RblH z>)iv1N;ZnTe{^%j$RRjwy2durLJvRe0jatlIpWb)T&f452SbJ_+?f;zQC)ws?ai|qKTzNToa9FbB(ZMcMN zrL_2(a-0pS$M432%B+ewvl~U+Ir#R%C)|4IGBdq>j9V5k$?B8%;zVh04NN7!;H!N* z&R)0Nn~HoIuP1U7H^pxt>W(P$4T)VCqE7>biF`r4`N>aqP@DKz)5{<{P+C=Qk@cO1Azn@gfZL(w11|s%5*>Z<;Vd8hh!dq?)uXKa)|~REkKM$jQ1SWIAQw z-{yE|Mc!;bS<#IG?m7> zkJ>f#dDLCQ#fUy@deFT=+t<&v|JtyMhH%m^a7w;NaP7-x^%m@t*ySXfI z*8l-d6@Fh2^9ABFo`E{GAE<|XjOZcvy6YK36A$+MV|$t^+V)qax3=8}iM>XtM_z6S z)z*PIV2l3o3zKUd!LHkOuE{i(?})#NV$1^oprobSFxGRy5t}O+={}5eDbs_4J0C*& zy8Xv?q;U5J+Cs*y(52IxJ!q^!m87PR^cL)@()eZGZYLtrWj5187QG7|wFpkR8Vw}u zBw|zii+SeS)IU3v;TH^(#mK!Ni}^e*J|khiv?*RoUnfCZptf<(XO`W2Ch1{|>z-sm zeZ?P)XJAXJU|<9r49hI5(P7vOAvU+-PkAr3%|{$k2S!WpgRt!DA{ z47Y_XFY~{jXZqHwj4=y~yit?94 zdi#C%@06C7zhJ-1{3%ts#tCrlgg?9Vc0LjjdyKnHm-wuM{ z8`Efz=PlLuZJQ}Z@+ z*Qv$#zNGmX%F`~0z})EjIZ0V$u(BKa!L%3I;M|wr;CZMZB$dtiPE&P5t#~V@H_q#aJUqAH} ztt_>A%3NU*jS}DfB)(z+@$0wVd4R=(mHN_64<#!-bq#Tiueh<%GU(k$=;rL=N9q{z zN|*CIprNTLs*og)3Ga)*#T?bX*bU_x`H`lCHP%ollxN9^(>Bs#fn+DV+9ORgkOpeW zwe5`@JFLMXGW~76n6H1p(UO$?KY4uQZWNtl4?miT?aN8%sJHdoaf~I|qBFE~i!4wld4Vz7JCpuK zu;lZL%AMgn*Q|&EJ8q7+PR-l*=k$@0T4c-@RW~bS3jOW8+}wH5+^0iuR}0x~U@((l za>?}_u_fRX+}Bg#R4BE)@jiOMw@OoFhBWCsB*opa@}m7omLG2P%+~lr_iIaM4kVSU zBeUNE16BWo9F_R-s!ftHHQ}ITs=|d(M zpDjn|`~cl_Sc)A7tKO+#z8Z;}zbXCW65l_43CzHX>!`Mmm|Ye${9P|b-I-k^ye@<_ z$w;Jw3H@@7uw?d;qI#Q><>zPFx&U$dbNRaEIKgB@yJ1x-?DXPxE&4_YJ03s#Bq~{r z-5(}qR%Put*5V_w#@P3*I~<-Cxz;psTAT2jYCP8Ewkf?tc^Rcwubh7XxwI>=OA=oTlV&bL%MBn=3(tgQbvW%52S1w3{HrUMGDqr{wC-gQ=}vu;iuX!@Y?j z?pCqqt@G@f{zD&94|8BqrJMe;2X|DuNrm8d^$UxBqr@+M%u7vg*%)OYYg6CgH5el< z|Kjdc5H`tgbs(>p6vY?b<&u49+H@ZwnYjc3su{r;d>Qg5eeon+Kk*mddC8*BdJj{e z1%skbmk&u+7sp>K70+5r#u}v}!X%fV_VsHM&2Dh$t@Z^y<2SwuoFmnr4k&%b0#YTk z`@SNpIT^YD1KqVsiaItl>PL*=w0XKY_tY=hV?jP@Ds8sjC~kg6Rvhb-x-CjTpWo}g z>fg?qu=9}PRH(t$S}Vr3*4^KEh4|`m;Fi#1w8zJaAmvS*KPZu;6ei)W}r^!-?g=oY#Lp|XHx84u?~`HsTQ0zaPY&$CQ=PMc`r-7 z1TD|ZTrDYVo5$3I+x8+cdG!xno;C#;-ZO1{#;5v@%8D=G1~f1EqQpZ!j}P8N@5MhV ztc=rr+j<}2iR95EF0+Q0SY1Xyd{;op6^59t=pjvP`^cuHRLf3bN`Cj0#%K&8SWi9a3OqGPwGa zW?XbjJja(3D;*|sgTOqxe5Y?Y&Q2?@i;qivyYX^TOA2b~V-=O)QB6vJM8@5Pm+x)x zUAKv_zFzI<-6iQE#bdc+=1#r9an-92-URn#-(H1Kq&K&<fjxwuM*g@K}z^VlfvYGfaOIg6b_tz4Xs3W6|v^i-U``N6V2=RXGT?%!uFO{~7*o z)ohjC^d#j^H{6OL^7>wETh~h?h5vHmQpelEHkBS(F0ttL8{uk}&Mb|>jMx2Xm)duu zq{UuzHo!N{Ll#t$JxPhtJ#@0U?N2<2itsh5 zCPc|@l(P<_Q!U;wnN6-<*GiLe16l}buqhUAE?Zjw|6OZKmu%DHi{q5=!^gLBOiZEq z#l(6`-~SO$C-as@sZS=fP|}>7|N3&e@)h&uzf8Itz4=`?p65IpSFUtM>q6bW+kXA7U0(M;dKj%>*(xa({GK@8?oeDO-{B zw5KWcTU^HVEVbAq_Um$!+rn)fqCT+Kxt=~Nx;{eOr3PfRPayFx+S%dNVUbJH=|^&~ zQ7D8CzZztLp|pheOAf$2F(IhU6x%DkCY270r7C%okjKw?RrfKdG2t@vU)!B@Tt1c& zZ<8@%4NgGt_97QicVoj<6Eq`P_z7uj&G{)d&JA$R9Lplp_dOollrzyQHPa0A}NehAe$H9|U}M<0yYr_|ZCx%_UP3IQpetspdF)$3zpM z+HUB%8GCO8=+d)czK7x0cS2#p^@PY~H{gsT-316nZUD(Ia)rqkz89hMc{f})jyv!U z&!C`l%j4fft87S|4%M>;!bj!b`+yRhg|MVq`}XSioA)utZUY5fFu__OjfpEf0(cN* z;A#o{2A!xodbk}*>(LK7$CfrO)d!>>G6NUd^^&7|6%$`|2R19ZRaO92kQj__DZ}!Q zjI=CFlT*1uM5%F3j3=?wv_?V9aborK_o|`N^t>R;yyot;BCIO={OHWFdZ%PyXvgq2 zFRyZqy-rRdy`;kpQ_l=BYM^@2BWPM6h+ zHvKdem=Ou-cZA>2D>b$<*$TCm8N{~#{uve)xnJ_l9E-f{(jPFS8fkyexlv-uLoV57qI!^_5Ah()jxl=D>H~c&ej_H9S-CZMXZ5G<3-9ha zL^lNMt@JQ}$gd*+!h1Xg(JnQ6m+t%4xwkPDQ56;;QdxNxUi^|GTf;+9G=kuGMqe4n zXE2)p=ijU>Pnq?qx8BL*JOh>68KDya&9@CA{;H^1;L@)2EY>XW_v|?!JUA@HV~~E7 zg=U-dq_5ttDmNGNTTRp%CH(#1{yo-1U}TdYP}OKmcH2C7;GXuCVvlJg$Go9l)m5v^beG}oYX-Vr(`Gwg%=}nkWjOZ#0>$W8RsQNY!lqh79 zYfcqLrrk92-zn+!?qp{f9o5qfi+n*HifZO$IT5#<|9kdiIQkwPi-z;9u-hwy*{B7 zI0}peI=!uO;puq=&l*s)rPEm%iVbFUgwRWO-$WQ=SH`kVi4R0_33d||G?ZSv_}t*x z3JD&Fq}k{Ak{CT77#VBS#h;iLv?L(RBOUlCm-|(6Enjen8c4EE(FWq2e-liYxiEa9 zrzzE664W-##6eZ_1t0EfGx*Z5HuXlZb8rU9*j|hOLsCcm&GX6E=w`2+(Lc#M6RVLK z{zbXiNg<`|tpZg2OQy9UCCF<@kREzT}Dr!)6JIk{G+uEO)wAWk)%mlqMmnF z7u`tD(q>^y(?|ci`eZ|HZ+IQD{<5H%pVAjmn;s`rcK3F;88PZy4malUio++uf zB#&vVt$96jt2p|AKz1P-9Lk*4GrQfjgZ%9(tm!Gzie8)J<>N!zB>o*NnVUB7mqGJF|&S%3#PH6_XUJY@NT1E0gir6u5PR{(WooI3-1j5M*aDwW**QafM& zi9+K><#qq>t^r89X|^NcQ|RmdrknV=ZkDr;_<_ef+9u>&eEPe>;6yqZmnaY7fM9mg zV|Q5_L>=hlv!QNmX(Y!ag-v1$h`S<;V(wg2gc%(nv38g#a-|QM!KR8`)Zqh1$=LXv z_n&}}syAz~3E4n`=(5vv`Kwd)lOEsuFSrDTQj*5-b92J}C1t3Ls3|a|CpY%RLnM12 z3|P1qauR|=BiD&S6^roRe5uW)z|Hn7X8o)SfZbPB`OBT?f&0DQO=T2g_nLDs*N?}} z3; z6V|_TrosQc3?G%EM1q-*Rk>lv(yg3jI~#2sXBQ{3ZP@O3zh26JZ%}U4KxX%iWLL9G$4r~rw zP8PdI2%qru^_B-}_nZduJph+Kh!I(r&Lc(u$)iGC5ot3LyQi3$&NJq7eX4|!obZ&l zBb_>n&L08t1EN;Me(c6{x{njW{fK&4`O7C>H%V;m0m=F4)AyccU&Kj@J1aV^;4}30 zI6+^c2x-i|uW*AaD!SO?#fJ9xKgU@?^;>%BvE$${U?wqa$rbjI$*({NHq-k;_%n1* zWXp2sk*u~8T#AuB=&zH|S8}Zgz;F<(3B&*%zRdb3IP}&*>?0=EnpZ{ZbL!r~e^)h-?u=OyAjALC5v+`rVyG zI78xvqd_NKU0vPYFKc^l@UXq8Ss8J|rCr?2sgx!C4kT4+RfO|W| z|C_|93J-W~>@Fa`iuR?Dj2^IF>|%3Dzmw_{Id0bWYVGoah1Z0KII3d2Dp{!wp z7xG(4^34Cv0-*gDl!E{M+5VqDcwq+YLi;ks&;JTI$*%zj^CbX%LEm_d?LfD1AMhAm z;tUwHQVwgrGr;;WA|fs;(*F9ia>3uBmbZTZ-sj8L6?cIbyB_dMmAxY{a82Mb-;c!q zSUvyvR`_t{NANxK6Mtd`_*bt&eB0QuhhpYZB6 zyntr}m*Fs->r||LH#LO)nHEFPJB+(G@ztMntp3v=O6Rx`E9oO9kj$pKO|=9af#kM&)?F%nZbMS56?6I%eA`m z;-q!4-9LH5|90=ur~^0KH)L+gg@16#fLC~TOws!}d4rdiH?-yz>pyvsOWG$Y+v?q| z=(}<6sxXaHEfRmJ{GE08-&J4p761vZ-hbn_`_X3_%15vU#!npt@ajY05PN(3rKjMMDRRF>p5#3GEcByy{3o7^XBS@9htPf*sT3W z!1_zPCqOF2<8L6NV~#U@w~^?FsnUSDZG3BM)e+lLQBiS`jg7B|e+@CJZWhmvhj@uu z{iAonQ1{OIqo_*p^Qxao4@ZkDQbG4;^3wR!qFQ{u+z*^CYHfz@D3rdEG>9yL_Dg>M zAVEjpqu7yT|G(VN|8Z6Ri|@7LPqN3O&sALRxdf2-x#AJR?a)KxO?S#0rt6PCk6PW7 zP5XJl31)B4p3$6_ovmLMNXM)Up!s+9ZB6YA8YD`bzkl+y$cBzwDKIv?#&~$4+2cCr z|GD%0SAR~x9flw6!Kt^7N>w}+;>+}IKEMCALF@P2TuFj-XCnt39S9KXfAg&CJb#U$ ziy1KhiIfFEfet|9AwaArbt!kG75%O>l&1XQDfWNcFXUuc`lA=ri;!LPoeuh@X6&EQ zEsdAIZ%V*k(RV9$pqaYy$mS{Tp2=_I5zw5~TJC9sS{~inwNIZ0qYM7g=erpyN4{8~ zDgN+zlFpQns4}0?2`K1J*-a?S68P5{g^Sx|s|Ewh+wXrv*0*l$12A%swlhkxf?gY_ zP5-w)|Bt>@1lWVbwS?e#!n;PwG)5u$g}w|+5g=t;`ou6 zIYU1NHJA3OTjn0FehLM`G$ee+3CUATy^|qT36oom|A@!@jpc^8k7e220J8BW1iQoz z|66C-fB&52zFl&$2|2rXbuq2#)&u|3rL0`XS7##oqfBpZz`2VlodU8G)kGrJ6F#u;9TKrsu?q57!|K+JC zljl4O3rk61K3_7x{HmhAvb^?To;&Uh=pQ`In}~NH&`U3ByQvDWTCNhC$6Hl#E-d-~ zpu_;i7fLN0pV4+8`BhW6it6kG1)yeUnx@^2C>g<5OB4MOXq<*{{@;!vJFacq^jkQB z5qX62#^%YPiE}VtCh<=z%)mO-7hv>_BNWlPNrgxkH<>Vr1n~cpCG|!E%_@M#k6{Md z*%eJD_r=RJI3s~-PzcHK9zr*-rK$PMtfAWv;>@^SbqOGE8wPx)u)J#k5RkdfV2!d3#blIzRYgUQ9Blg}JgoK3JB2p_s zjNiNW{oKdzkLNg^yPxlW97o1GuX$bPb)DzA#hHOAZBV!$Wi$vZkf=8Zpbr;H?FQ8A zYg#vlRD=t*j;bSH%#XUq4(A~*7g*qYct3n-9VwvuPd4M`+t)p;f(YXqw0xa}oMT$2 zvz|6O@e;srXG^IG1$6W=NoSU-CdlLGj-MC+`{D9^QgefXNC{t`AU}Uk%Lv$vudnMx zkqCbYSy**-^h4{#|L{4=AN<^0D2KIsXiQf=^vT()6^3cV+*D1AStJcNWSk7yOGCz% z$r(Xre@wCr5RsBU53=4F8e8(8?PD*dg;e}&u;s$-DLVP#YQT#tNB8KVo_4h{{c`nI z=eSp#Qr>(K5MbQi$I6!AyX9L0S4XW7*iUKLh?s@!Wo?8135ovyknn%~Yn~nu<910j z{$&42+Gg$iz*6{D_mCSvyBR3Vzu^xpd%QKiS$Aw)cnMnx0k=y1C;RjArGEsqT+2H$ zipq!whsm~>I|3C#z`jgSs9v0T2N)J(k zYBThKYp|p3H>bIl`A6PA(j0kMXYhSC>~9zU-NKCarh`$}6Fyi4v0Y81@^6*E#r_AY$Xy;NEtfkxo9K0eKBwp4;BuUdwKRu3!6- zD5}_34>~JRJ;QED3UQP`zAfyO6xLxWud1sH>)RB?Li!Le~Eif6V`1~*Z5WTcs z(kR>+j}2~H;U&o#1ux37V20JCiS_^fHsG>QG3Up=KS8&rH**}ED#japl%7vQiLYzC z#Pj`&GAeKgJaA{cB`64EF#-z3Lk+OJ&){i1iZ)f4tOiUE5cRSr3Drk@Mp%F}Exc6s z6Y}yjR~v(3D+80Sec40i6qzKiQ*zzc1f`Kz;y&`|E*#}am^ajAwC6bHXzZQh;`l`9h?TEgUHSi__Na~zv?`b97 zPo36`5N-u1DX}XIb)!J2;1U;?Fd&^C^YOz%j^4XXFY~@Uy~2QmN2Io%zeH%%A6@U5 zx1Zvd5$IGRCXe@rBiB?snw7YARt#LmyZ0lwa(C`^JwdHMy^|*G5cvXOZUU^oD?N*@ zaiBj?Qydf9fc+J>aXrn9K+SmrN}XY>EI1Y+&Kx&CDM?2a4#KXyiuDK~N|=6c@lv?U zJ6atinco+p4frbj80((etK)JEJ|%UR7xUG6oOu65W*Axeu2s>1kV&y{okrXvwlA49 z!X*wl_cz|Ex^hQX=?Wv&ez(U+XlZID`hQC7&4dpn)iEVKjVW#yT) zRA>~3J*QP|hoM3-MKe=r@LIp*bHCGnD9HOR8Eo@-lmqy><;Jg$-6Mwho~hR9JoSyt zW0A8+eI%=C&(~m#mbU!y2%E2i;oqKWwi+`j!je~g1bIKL;D z5zR&09t_S+{yv)!1MamruXuf|&@iE+;<&#(!!-qS8W_kO;rNrJE$X?C^A|SQ?r7$Q z^Tr{-O+qwfZr&cTi{QES{L7;<)cvP-2G%GKA^Y;6({8b| z<^h_)_L`Q&y-cCj=g}8KV~ZcSryeSSV;Z){@0-+n>C^+lUv98bx-A-&HyT5r8MEBt zm+LAr`-F#m^xQ+7Txbqy6XVzJrlqseOrHGuCt?4qpiLw$7F8b%Lm>0vl`M@inE7w*oc3QwsIJZdBwo6 zxsp0$SH(&B%aT9i+h%9U`i8KDs%_+Pa2$D3@X)wMzt3>(Z82q3?E8Mau$Vd@i z+yGTdSb-LBr2)JWRL$BwEx?gt7SAO`|iZ^HvwWlL* z%2Ru2DrB1T9#-M1Lk#-fHCdw~pDwGXqmG2}z#ndtzfc5ugqM7YX$VT$mi0e}1KdZ0 z^y6~a-b+~ved;ZQ5>51xB>%;w@$JMy`Np`EsRpjxAx*cE#CgIqu^t=E#fuj_6 zDiwEHnFd#3?oH{X4cX7{3IOI-pNU^c6%*TSRIiz5C23!3?+Y0st1p-6tA8{oxp9eg zuApfOBHP`0j&7?5SKX6X&=f#nl8tNFRr$bNBca&`6*s?)WIs%@b`ye8O>nnF&98Gc z9!c2J-rh0DUGqdJ^-&QPd5G2XEIc%@|quRoCq_P%|7t1Mi{{Xd!!_U)YR98K-Aml9}nrZyXn?!`D}qL5-Ut zjhn3%id+4cbwk#sxPX~I_fVn6MQ{a2gx}~hiB<~v$*$nSWethR2zJY$ zG3-LmQf5**(zmA~N{Q2nEg4&U92z>mAdB~))Xn9k&d1Q!A&bekuL5B>QzxXKV&a(iTc0DMEjp0q@`w~ry z3D#a7t_uT@h^#BXnLD$*c}*Oq*Ip1k5#RcvDCE-n)-M*Jb7 zW;MN0P1-STxEl2;6L4hkPyuKw6XHA;8;47~)p6-k+QMYA-{!Z6dgX69zI!e|E97LZ zAAyc6mh@@CtIJAREkx$jY9JFD>t)MvK4pER zw5V}KUT>qCq+mzIqx5_SlW^%dYSizqIP=_zy9F`CV>gx2nX? zuPT!=(hk}F9YmvO0cUV-+6HFGzM+uSFz*h;EiD~3_p^PTLKHVlIFqn`Ks`1NTPT)n$l=li*56_uDEV{4zOD_E0= zmHyGoOjUL#$=G$env?~kSBaP_VHsYM_6PKG^$QovntTF0le@EGHM&KGi0GR{l4|$`D6}0||)p zD1i4?=YE;$`^hH!WQ#c;vOaH>zOYBXPY~tTN{pxR>TsC^w=0mlBLULZ={sq>t5UW57U?Ifv|b+@?2%XNEK?m6-1 zAKjF8kw-sdP1zE=_{?g!x~@zFe`-b&&7*|=O0qFOw;$*LOxFf+$T{4<8{%iwsTHi8ysm+3z;ujQ&mYc`&=o zm5xNqy7lrc#9U5|jvDc%G;C*jLtYM2K~QACV>-2~|m2UDb$m zI|m2)OaMz+oFUtp=C|K=)4nMChBr*oAi$ zgDB?7if)MqGA@y8(z6?1v)r8VwISyIEhayI_|HY_G#*%gY`91H&FgrB>zb*@y7V`t zYdZzZHkO>%+}Zp5CsJ(|2*-(U)8c{!xW*CuH9K`uMG44P%uZ3)WFH=-)C{90BrOQ{ zGdz4G>wdlA3CRQvb^aqc323VRsJNnf$=#~dG5MU|rYeYyq^oFHEU~ol>$|7KR!QCX z?Rm->_2klhn?qVkvxi6iN#;@AWMy1n=0NP^vDoi57tA+u05i5)*|Zq7))1}BLDUJ4 z;5w6Yx(8(qx~*IztZmWZfM+*z|>FTC8rlniTXq6k_OSH6j+n)fU|^Ov*>2K7WgBl zv;Y1P4xwu)uY?K2tU&#SsiQ(&yf#O^_q%+q{>V#BVewa(UsX8ceimip zfEuTiIBVQZ`fB%>EVeuHkgh9QDr<&W{!BvqzlejBS%K;(PNAL(hqq?jRSO@IEX3%M z)b7&80qVA-Q@#?1d(t%X9TpCOJOzXLv0LDY>o{Kc-Dx+**4~XwI8iQQs~(~&`+&Av z8dL7E!Z@V-P%^c~Eh(yLzva|!Ue9|6-b%W#bwI!gKlgTWZ9!gdH%QF<@JETaX$XFjg?Imno>1i86*+-0XyTgLyLwrX|Ep5W+k2Wd^2iA7(QVLBa&@s(@!D{2iAIAEv?*ol>P5CXY9k5GN=J0_H@q0P-$w&Jqlw zcgqH8o;7Mb^iNTwb}mP|fWam3m#gpRW%07cVhS~>42K!qzNZ#zR1UN|wRf=q-G>&t zQ24~k0-Jto$JyvS(xR5l1SQ)##=f$N>Kq{>@t<{rj?v;~AzpB$EuH2@qo#)v?z?dz z*#mIbR-%o{VP}(BcY|eUrcU@LA<3h2do0)*^6PvZa-QGvvw=3S5wsF>rfrax0 zvtSK`v%w?zll-Y8Ez-A-S7cT8p`MFlk8skEaVxJO9V3`L=04YH?Jp{#n|5{miihni z{X^2+kEc}C4d9O5g%UWQyT93)kwpE6m0KZUwR|gS-yjXv^7jLGJD^9aPv9<%#|zNp zqa~HiR=&er!<{?hGW(}a!1K?LzE;@bSn?y&9Pr4@ zdz)0czH{vQySCCg{;%0hONJx)BTG+4h6Bsqo~rYnc~BU@T<^kTy~f3t^PZzyT#~Wmhdnp{Z{{1*6oQr6Jn9RQKU(r0kEE9JIUcsKVS>m<*9#lZ40 ze>&e2WV&ftWb@IeaCVW6qZznqQNraG6h%G0M_2%MA2#6QJA7zUYIIX%HLu3VMIwn{ zhoCy6KP{J*FOr*1G_VYcECnFb@9?-`#`Sn=sUk z`Y31p%?e)6iEE%?sb_ zz$$ls-rwD<7}CrX7K?I(%k&cH%Jz_ZmC7}z^r-91axb(C*671f8&lDb=l9=C5w#LF z3Knv!ZKtqBZX3xQp5rVCC+2C8l4@_f{I#`DIpaSP?ilkmQkQ??12E6ho0gw86b`&E zAGyQYs62%fF@>m^g6#V>x%$+0oMAr<$#88)v{l~WMh!g1#~CMYYvL|C9Me0Ui&0gY zt_VSM8V4?pLFq6nt+lnr!Y?>|L(NT}|2%bjr{2dM*5D)k%@1a4dpxV&K#g&Tsa8p` zqYYX}Y#xG678Y6M=Sev|6CBo3zlOP(a=3uj_?F4Utw94Yp9Q!>rgeJZ8NUh`k4c^E zf!p*vlL8In08w71sT22awUR&ofsFdHIZX|@ag{6w%A*%bl^3p~vN~twcO1XqtQJL0 zS50yr&VMa!$jG#8lb0^^udZ>(;M&MoQkb?}het_sZyeb5C2}9B`ny{m^J%CwnQkL} zaFG_{+dtV{iY^i$dG=Mkn-uRT<8L0!6Hwyl_~#eFO`#!2Fqy^%?_rXA~D z@S;!HdtU|8+=0uRMGAN?!pQRWpP-nHwa07L6lx3 zue=uh`DGV~{D`2Q)II79t9?!|&2)L06RxUuK3z-(j~`I#a0+o!-3I) z1xd6}XJhd+NJqf|D0-U>k?|dz2>j9dr)^sEk1z25Dc=1*ftcot!!K#SZ#+&55s==+ z&t-iYh?@(g5BBwyVntHd%BmsZ3xumOpGzCK3SNUGTLb@TY95hCWhJ217JM*C<#rW7 zLB-ZuUY3^{^KP+Bi-mF7vDHQ(kR;c-umqv@ho_EQUp_qzO5n+dL<8W{TUSc^Cvb0+ zzC%FbP>Q6HbK1yAg@~itNjD&%>0l(3m{(Y?`z@QeT(+WCvueNG{lPTE!f>R^DQP|h zD*c0$OFu%u2y5C79cz`og1xP|!iwSP@6aXSg*oG|;XiZ3+s1X-MOo!gICrB`DpO^nKQTl~NQKR`VQYdQ?>uG%4Uxm$*| z$^Y^OvYp&w1`l_M8;g5PNj>lH@rL76vDa{VVlpioi8|-Q#YhoJC8mP1Q?xIv@?#5< z{Ypf!dh$E__E*pqUsWq=k@VpJtnG1PavJ!lzuUHY#@xyoPD)U~47Z`*izVt86#@G5 zTtaAv0t&&9C2HSfwP`hc7toHG#+Mkz85 z2it6Li#nxD$Hpk1c^^@vjzg=Loo3Ijc$0UECwTxhklok-w{-C^Q{Fjx}iIC;Y6DnCRL>T|r*3 zxG$dd;}y?5=^5bGAv@ysZf%Xy9fK2tq2>X)MjUct2=ovTSQdHIBiGFWEN-sn(=FGB zE*@3muqf|kho?=vK9zf@aw`h&`yzxXnZ_!(k~-G2yjUn!o;Q8GOn!!BjZDbQACTY{ z_5G+kmg|%qu&(pvuc*c$XHNlzcD`OKD2*ggm~^M<=m_b9oO!f&aOkO*=kxpeu!8S; zW%b@xN#*A>mXz<-dwt?8hsV2oj&!N>`u~8l1T!;E4Gj8+?3OPm(rZZb!SnL+-ZJ-- zE$SW_M)?g?fQGe4RGH>IKHqWtv@C+#p1w6Hv$y0UtR;Qp$0f6xr;EQ*R}49P7h(l@ zlHyUY*5VpNpva!g<)U=Bx`{Pq4srGv7bEF9@;~I`#SuwRZoBHhNePPU3~WeJ{@tlX z40!5VEdp*$C_Hv}w*c`6K>v9TR-VR<#+HnM%IQACVg`m^du>f+W&a4-fpn5ndp?@b zOKR>E3S1?L$)_CX6hFv}tVNEdMIo1;9v^-E1`E>FjXK)(2JIMG`X!=;hbvlTw>~gf z(>{e=R#!ZHE%*gtJ*^Ltv&5#xqzLNn-^;3>-dR0r;~|k5WL<_$thli}f`u4&53tw( zCnhP1aP`uC(^`~udWu1=^|WdE%MCAB%+B8M^HkFF4?E|pYHL4}gisOoab{82;4JsT5jT3|>oh~xdu0wj@uZ+) zo}Lfk!JiU~jY(2+GBUbXL@ibT!M}9^LbXv>n<7J@l_wOgX>9R&<v=ldwCfMS{(KJ%JyyT z)`136)*aR2lrPz}Eg~fLs4D4?iQWAc3RRFrbm~OI&hOik6yF+ZT|aALO%f3q7B9)k zfJ32_5ZSKu5vPiY($9)+1VKk=nhMt)zit+i;W2iF?Q9U7C+`QAX1K+>%?%j zg9Vx$!yaYDeYz$!LX{^!_!^JES{Xp8L&;YTYb+6*S^t2Ljx)hq<0QRrfhNFKx^+T9 z>IV}fmALNz;t#wfpBeb(8eCg)i1mg9SK`nrs?4W@Gx;8kmz9oi=UBveP3}B$Bfo0M z4~QoLQG>9aD(?u3?Z%(it5kd%ZI;%fn*$3jbs(m%h@0^f4z>%6aHW&=i~H?w4(VAY z48j^5M*q2u{~V3T_1mbt&}8wj=kZoYU=xI1p9P!Ry=mZ*?gV>OG7Z3vMPy5t$#1ai z>XqeL@j{Hh!slHK5fGb_s*-=Ptn`W<1r@8`;8}5$-+Lhosw#Ndh#ZthpiuIl1{YY( zm)BKS4$XdfpSJFY^3+ClP|D+p+fwtR@Lh-npqmC>#$Efcdk{^ZKMy$n>A+c7W7EvGGDE4nKwpe zz(e|v#oaufG51Ar?}cpxWxioX6TKOryw1L>m3GJ~;yIFgBVo;=QN%VG_AreBX7u^` z8c>&0)3|Hp6H_UO(mgTa>fpci^nwNhxBq0&=cyP^-h0$MxHR7dWN4MTtlJ*|ChGe? zD%#0nCCL}j(rHP_|4UVbeT3|6p6j}^IT#cWfUVZFW7%QY6l>K$h7YFF%V zl>tStYLL}by6=T5R&I9hA~~6b=i4BML1o9=pWZj`HoY3FkA4ikoBm)Bxj6Voi+%Za z?|SpW1|p>|Co`C7G7uDiig|h$1R-O@`|$ME!S^;Q-tRN!YWa|t{~25HrOm4 z3v9lECS-#9JmUL{d!+NORNq{ku9NVWcsP8Oa-1y4sHozl{qjA*A`^~PdDI9;DUo?D zS|+XV9*)BfW@COq@YB_7g^$S*KyLtBkgDD`(nNiVqT<fY~1BpeDJ^~85z7gYM$+$8ERYJ(5d09kbqpkmWkg0%EGp~Tz? zUG+>n_&xbV&T$b$@{bfTD{K9sM*sENR_EE)O^$C@W_EI<8Gm;~bQW|-JKnS#YPy^A zgPGjG&;KYffW3W5?EFi97zZr5`l|x@3cGtwZSY#(SOv`X;yiC z0A9@I4yo^>=1TsToO&nEi%Wg}yyz^PW9@xeEyIDz2>DkPDtA>#QB7&h2R^KH5O!uO z8L%D!b=xQpGHS0A z@en?!S^YU8=orOFV~pH7yR#-ncP$yYO;v(cUMfU^hpb zkOs~GABC?dbI+sXO(2(I>-FS+CCD4Jla5Tz)_#1;OzLWJM6=Y{yy*Cd|g%qG2 zdf#-^DP5Iyd7+YL*<982D?Ae>-D>C^z&iB(g~lDj+v2G;t^?5X+x4?gBd(TLR6M32 zZI&XVoqAF(lq4fS+4~UN^XRM1xVfDiA-Nm=%t|g-C(T&ar|xCFgVsGc-$dKEFY8l) zQzlLD1>Wd%q@ibQOXGE0m428{P6T*WL-w|b4A0v(IZFrbDsd%=>YFBtSgj}oBO`1Z z)S0Tf>QxS(uZRX*6Ib@CIp@FZlx!WKJ5;E+g{A4vg#wOg5+$m+*D-4T=#MW#EAf`2 zB$lLNV}2v%dMh3z&3+PTAgNII44)aWkX{NYSHSR;2pj!y{QT2)Hg>_+>nEYct?$ln zu_fC3-MD$Gb~rz530`0nSBb&jrHdR_mF?9oPzhTE|7C);#szQsV4ex;?Tp z8bG{Tp>H^b=X$`Qwax|-Q?UMiIXT2n6t1!juA9kk^?Ar& zudObhNBF~<9AQ25uVfJQp3k(;MJ7=Xa1u9dAU{jHr`8dQ+>&nKjL$eQ=jCNFL$u#G%)b02`4D{#P`}Lf2w}3AnrZ# z$YktT0;+ib84df-O^i8v+BJ#B%@7#B%dfZ5EArM+!Fe@9eI;iV#P55yIb`;BI`E#? z)m`>GlqIk;u(q<)#IcF=X`OvKbd=kYJr9b*O1so<#VG+RwZ<}>yRxalhHj`K7txb`isX_5|ylEcuEsG;h?ND(+ZKqK(x+|VvmbJKkYG=x+^GGm* z--JwH2B-$s6h=g*3V0XGQ!4ZIs^3no*Msn&DM1d$;o}Ls(WGkZ5&ru_iyEjmQj(;q zqB4vBxOhJ+K{fB2Zf)rSM;Gsnd~RqCx>-;uGqcK(CcNCxVaX2-Bid%p|LP*W4a) ztadEfvFVC{s_hiq7ESH&C1cC&Qm5bUriLzR9|6VQslAaiZPv6^GpZi^$9s~#mP`Bm_HgTCp%?)9B3RSp1r1Q6PaMw3cc*`N_=pQIbr|D`+ zMntG;O@0f>KEfO3!Xg&8wqa*o+@T*Sr>(0*`5kQ`Zk4e68s4qztK;bUXrv`80wlGT z@jh!&Myg>qHM|dl;O26h2 zQBMhzKO7ulzDU0$2s`*h4vshRX0Js~0?ySU7Im8TLsqvcmPCE>U51X0&d_Z*r2ABU z-dp2Za^mIJ>et-6ude9~^JeK5TY>$4nViJ$x^^|AdbAjdnD1=g(>5j^3(_fY-$K%uCgEhx5CrD74g+M~wm6P4?DG9vr@%1x_? z%w@%U_RZ1scEeRk8rz#Q&7EuLdUdrEU0sr*)y5{tgS-jhV|9JCAb zk8Nvsr?t=~-jq-VxU&6*1i9JHi5f`WsmsoUQ$u|wpr8Wx#(b%n;OX2Y4T4#i{8qT) zLD7`l*Al1QpPdCs%F_!O>KWc`n*j(ImsZ3*X1WY%<~x;+bK$~b6G53L^DiCz4evGN z)t#@XZus^-(Tl>Lbf0?#wb#nzA)`Z3?2xUzHPi8^8rcg8y+reJ}ikK=&aVXc_W z?yZuZxom<*+nT%%c_6h0kYCPLnsbRhCgq2x;zzS(eb!+3l})6RYc>_aJWXv3_=>yw zpr%l@CJ2&Q;jQ*+7wE<26^_e0SP&^tIwJPLc*kbt^B$(*nJ~qK8O7<@Mzi8XT{o%( zGmI12ceFPoB3E)u^6K0Gjsza1^e_|b^;uGxm0Se<85Z6ZkwQ!uHO(og1hqZ&UV1wD zE1~=%wE5iM(0(*)o2}`gNlk*uiVp(nUm)~y-|~uvC-H`CABgmq^FMj1?)X}AEhgDg z8=7+A8|BXN(3sJE>%HDwEiDsoJ_e!FXLoH=4{Q0y>+6L5&Qyb;YUNDj%oXpx6Jf-9 z7Yx9&!059QURrJiF@fNIR$<3V(hF9E zIenC-+{eHeCUR}=Eq!KC$F@L2w@JWZr;gW_Qqi}yOlhW6$jLui44y`Sy zRGpu%E6>EDRAG$~h636tH^D*M@5s_Y<7v?bjn|Ijz#JCpFxYvc#*Di?>{rM?%MhbD zzGJ0bUOee_^Z+PBrfnr%ZbJWeksQ6m4V7!j%L< zwV%FF360UL%^;!EC~32pr=wLDrvgZ(M`y%ah8}wCJ&97UhX<;Rz}<>WYAo@)cSq$% zb~fBWFj)*Nt;TU^_AyVu_{tIHZ-wI^)u; zg&;>;%iOt|^Q7mEBui19sM(}Grt^5VjUM)W+t>Nw%$I|_K8oVcXd+Ui69vQYmw?P} z+oGvJGndA7XG{X;zq0|$&0gu4N__cyKQEZQ_k%jOs{@jZ(p|mi#X{=$BRXNuQ-fQQ z1$#Ht=c_v@!5Q`I7+p0L#V7lI8PC3Ul}X}`r&-;R`|&_4cVnNw#M^Z8G^Hh70q7UO zuS(r2-Qx4d?qP@3x%m8sP}6xbIsWdu++MKbPo!Ui(451g;m)%TnNw})Ns`gDL(j>& z{J!QwaYzjUx04}>Ajh@2Q^$;IzJX4csvei={uMbjpjD+L7g*we-r(fxy z^_@6a?Xk+<_1el5k7M1J88Qsdy=6in&9>H9CBXA-c#S>IV!Oz~O1a`+ zmX^$v>%ps@?%zccZ9a|KP=?hr;v_+eniS{Ben5Pvr17*6XKT~JIINX2?@|L>vz`tN zktL1LQWSVfE2g2~XM?)e4k_vat_Sb9Aq4g0>v^({1(J-;i|&D#=8FQ)j(RZ1OuCc^ z-iZPPSn>X5FD>)SnbWf;$MAMl?AAg4pD5;pB2UM*aCQPEv*MFtiza#BpV`W9QDYNe zL+rLv>mwhh$OVv*rlcs)y5Kwz)37f zqb0Zc<+f0t+7-<)QX<25D{3Y(%B3%ZAAj4w6^2n~*%Djaem_l3{MP7%eVR>hqkg31 zOqaTIqqF^lOiFE&(b)~bGFfcQ^u)45MgNphnb{>@SWRqRo&)g*2S>T{faxA=(Y40G zf$WiiwvdcLH zuH#FfL(yv2_T^R~9imw+VAOhbvgPKIxal2X!xD||C7~(wqu8JZjCo+>vhedVBQj;_^*Y5)N9{`0pJ;yC#fzDzeQuQg!eTa{X zlpE!avilmGu4K#0+Ke7X)Bpt_-HhNJC34Q&bKy)#95YqEgV44Hh}CYgIWyOgUS5^E zXkXn(v4Ck9(qsKJwH=`$DrHpe!QvrKA`nVQ$dK>Gvl3v!RNRapAWcGk#otmp84~5~rQcFYQk!WVyrW!mD%>gr?mJzV2~*hxAl2^Z8abw-;F@ zPgO~{waHe0RnxGQzsl2qd3q-dw2ylLdlTQAa@WWLjdZ)IMLOjsei4Fx3D1feGVQ2v zb8~(6?ZqpUThPZo8qVfW=|`r0#)%7{yRez6q~6mQmfi|k8|Ev{Q4M>dv?`q0Q7ZD; zcroFE=hzYZPHe#5IWe^<<9Ln_5`h0S?4R{&IPLvIQX3LN5wpDAmQC1iuE|tJ>25?U zLFeDE(|2D%znB?;&kSsqZ$vCS68vo54CDv!YbL$lYaInO1}gF z-PvlD9XAJw&|r{|O$N{Akptn0xqyjeC6$H**WUcK$QtDKWNM_CgVV4^X>+N{_2yzG zY_)82=WXVe>z51U!=meuQCLSP)LgtRGvMC3i!k=6228le(6(q*oh$47vO=JX04+l~sj6PBtu89DiR#zEK8+NpE zOiC@)eWI>?RJpGSM*1q?1F%kIjr8exhg+HbCZ!V=sON|EKfmd?Ko#*JtdVPCC0~d+ z0O*kA{%Yuoj_t5?(nm_=wc@u5<3Byqh=sH?QP~~jvpY{5jdMUCKlk>T(k{z8N@N$8 z-Dcu^2(Bby5a8bdwIx;fe5dJledDh;k_(gcXSDkAA~wx+hyjuQt&a#>gJ(@BpXVaI zR$sOq-(d0+xaP#^pr~>%_#VXibiB&C@WLSEurtEfx1H)ie23I+)nT%9kU#1_89HAS z7a3XGbW&m6r8q(%P4Mv()9*eU$I`!;4`JbuARtl+ZXscQJlEOA))V)G^(suqX4axN zP^K~o!6;ZSaAfgHh~KxK4twUpyrTctb0$3OP6%Q}w%j%&P83_j*Y!VoNoCBjv$wY= zawD|J;pNq@8yM>d+({<6YY9*_SWO;<3y<@ zTJToeklko1Z+#&*{D~}whY9%4=mSjNo&!}ayOv+MdYx~Bsjm1ZDbmH_Wnp4nhu~Pn z-}8=yb?J7P%W>Ke>EoD--Dc)-x9%1P7+qiYXXDqnN~p)$CHBjARgk#WgP-Q{w3$+BI7D-0cc=#EXRK5hhB-UXn`R=U!MG` zOd`Tq6o6g5BMrE;mg}or#yr*}Hyw3S)?DUJdxHYnrcxUgGE$3UPb#qCRW3Bp@Q$V% zgI1+a7L#2b!yikzj6R^aPTq2UhDQclp92GkRbV0j!rUavxJCoM9-0UXjM_=`Gd{i0 zXb%W-H|)kB3a3D>Fycx2x#&cH`EL>tV7f!v8T(U|%QGOli@Ti)7s+%Vdx?saXx|Ei-ybXNy$_)e9Zknkx)+Oxr71ze<+g`bz6)D#ut;H6`N1imRPwx z_%^@K%msA?2M@8@1k1k$tEy?HJ+LT>cYUyb?@nQ~i4PG>}Xf zHU`WUv`*QT5sZF(v4A`m|MQ}+f1c$}M^0P)x**|j+suRdnS3Us4@RA0hS??k?e%!} zdh{KD)2Y9p?Va|2-ZR5EcZ`B zbj+*kH`0Ml5pD|{%51Nb4nbNVG!X%nsz~o3O?nLwLRIMm2oOjhL0W(i z0t5&(oY%F^x6az%K6~yt9cPU5Xa7qwk~dGepSwTTrD1hX@<2eP;8xypdu^gtL2Af9 zhK|yD23&l3^?{s-ys=&70ne56lBu zvVj*GD(+q)yyd8Wf@%LR-4y)!?u*9ToI0;%^M}2bpVvyQCa7ly@*1{id|t_mc;@Xa zFcAK9Dk4R`X!x@pwE4?Ki?B>DYpsVuz`vgG-$(Y>pIy8UpqON*eZUyx&1zl(biv>M z>3@Ilb^hSZ`Z23Jf71;8Pk-{U{`c|)zAfbZTeqSAOCJ6u)AIg+-kJ3{3)3?)G8$h} z`vZ6xz&CB8v5A4Rb+dB|W}YyH`!u|XJJ!qnx4M4*RSEykHM#qfW-jvV(cFb3&58!b z9t_xyJTXC!J)8PBK_&kC${q{0x-s2-5ffP%AaHq0U?Cm=LCaz;WG#ie5#5YRB?rc; z7Z93*X5)XKwc}rl255;(JjYXiLwxsNbvlH1{8;k&XlzQ~$GR3d5!*Bs33p3h+Fv24 zVa3*Yq*DJ@vG#u$IpZyXo@jk4BUQrUSuNqM`^s^ZP>YyYPgO{dISmzI`(GovUI z(EZ8jTmAUYqM!`$%dkIKa`~)xXYIobs=phF7?)hN?q|bHzNVKuxcS=W!~(M?n{)9w zzxCzNG;CG;R}S~D)#2)h=-VQh*PX;d{zi|@zkNmiCF@{C699x~pKnn8qphN;|2pfI z^}T^D)!x3oKK_AIFD@--q^BzslBB?^o@M|jRxA+%l`2nXiiurW3X;_2^Y~t=Ri>(c z4_RN?uz~#eWUGkwPvrjglh(Np!1gD)FbDMz4FgGapJk`H@0m8%kgMQ*n6;+WglYeq zYaO7FR)3#Ff6dx#U&cN{1>FKsHH0i>9-v&+8I(>UR?+;)pI_2EUSPM2Wo>-y%h*d$ z1>hx?oG%YUf-aIbelEsKK8Q}{%;caKON)dHJ#C~IZW2&2gGe*hLI{K`~L_?;R&i(X+EGAt} zV#|PLL-sRT?^oRW6TLLfNWDD*QJzb(ZExH@&vASWCjDiJ=6S z!))YA=qdniDfmaK^CR?4|9Jwe{~U&5QDzV`!f)Ob)3}Jr0M-!k$*dkb*yM^eo0bIf z($BHYJoRUs|IVfP|4F@ihrD5IBlvwy)a&JkvVTi*hXGpTopu>(1!F(Pl0BNKnXpQ% zxvdkb{*Ns(u$A(kPc|L*ky;6Wb{H{|+&&loSolrMaodz``^h;vJRBKU<0KaGUmN)k z{1KRP>q4j(30x3BSh^o8hk1cl>XHVg38F zzy9Wk`SPg$+U-9%$Jb*azkPO6n#cElfAHTroAN3EKAGkRWZ&aIk)2~SMLd89vNa%~ z6!|9-a{B*F{{QU!|4(B7MdL#*uhpsK^mNnjj!(V*P0#$Tx7T0NI5;?bKwrY#%K{ED z4b9I+$s4-{c?N%==7VSWru)w^XW-!Y&#nHS58tkI3LK)Td3bIJZ@zeH6xmho$UB086<0Beeg^#>w+=13GcU?PVss_L8wMfz$+1JgLs z2vJxQy9NS)y#qRt9pKyMGZBD$e+e6=j>8lWbq-o#0rg0wl z8$&{9$q%zZ?3<>rxvg4z1&3X~S9g+OlBQ$M8mfaC6Mq&Eummr&ROdNFrB`W|x(r{x zr7H5MT)@~FM1HqW`rI9d6cQHp_>AqI()@sHWbAW#VFq|6W;mb-z(2d7m(YFILtyhF zQ~U8hum!O*G#u=!vAHR(UjV{pSeq{+!pQ*3o~HRa|0|~~FyS>cfClg9mw?J@YR0B# z-0;xLlk!`h6j4WysK=qNN~#!#o>;4<{{vs|<9qoOUflH!)Ub21h&a!K$&v+)r3MNe zj|k}hf%K-_bU%OR8ygT$xJkNLVA&H;8S~XuRddA>@o5?J#kySyNOa<7NnLlaJ*qdo z{rn$^mi}?jTEGP4)5D;Z*jnS^r+z7NjT7AWwDTh|$R@^qLL~(CpsdqOhmejW`o1hR zefTYru?3*h5s_{IB!GvvJp2MfFKezs?zcaYwph*MM0;c5??&7Lyz@2y^tLnkr{t7v ztXI7@>%cC*xQ@^-x1ra zg?;mTJ@|K>h*tmOny)H!!-2`}PmW47xhyZ3%$=NMDgGlh_K>;4(5nBkU-eIH$7$Qo zaPk%YB;bs`-EDBfMCkL3{}N60c)L+6Jo)3w|0}Tmzm56d-v(d0_#e;5q*Zb@gCB)H zI&=6!m35C(b?4kx`=}MpO&vBu1~@{Sz&JJ=W-V$VKq?sQIV!{tx*CCjUhv`PRHVu>8O=N|Lh6P|K9< zfT990tGA-qL^su~PyA0gfd8F}zAgcbDQ>n$@AsZwl?!|u>3ei5^SdwH??MvggWx{~ zBftHd!EwWR!u?8c)xt-q60ds>TDMG>b(G^G-5ow>a90HsbmjLs8^Z4yH>Wh4+VUgL zReP^~6{bAkW9dm^nZ3)U-v7Ba_1S<#762#Df)n$Eo*i3_1sy$P`A)Bj?yM0|Pt&u_0_(XF^zv+4_|Eco^ zUZU+xEBw_ZCA_=fpK8gHUMcn*o|DG>Byf?4>u{G;k$gvHz+Rr(4vuM6Y(Rp-I{|fJ z2WpTbEbl4kBq85#%yZbLiJGi4+V^z|TMv06RReikCYqk*Qy=opIGQ$kCZvMkSpR~~ z-8|0My*F=V`Y2u&Fk0b%jcHB&>OSAI>cdNGn4ElL3y~ycKDTTz#&6hruty+O`K*5~ zJXPzt1oS-hCC)in|JYy=avBTDzc6Hk?8^H%^371&sLt_5o+@j3kfdYo-GHUTJ69=5 zg@IgocKQ}R^A;U=JR~9dJIR`-n$VN4o|QhF)uKLx^de^Kdyq#hhLw|md z!9)Og>mZPOj?<|q^%FO3^xX$cL2*|fif|F?-u612zIox!ON{bUQs@DI899WkjLJg4aPZLG-(2PNXZt{yI(5aEK*K5_4~5+*;G#|yWh8l& zGF*HcIjdD^b<%fZNlBaTI@ZY=U=ZJEJ!JaWtnFRi`u#)PTq>wJ@m7p9Z#GM^ghxW; z{xUl_72ve)2OD5blaHU!lDC-ssV=m!UNE0%9>~mCM5kJ$mG{+{QZ`(G*wre9)K0J5 zln5mBhs@!E?35K1!?yt{@N?Gg7kBBq? zMD`b-xS7+2jPYEL6Wyhr<1zl5HyWJQTn3sGc+FNua$Vt&&?=DkXMeyI?H1SAl}Q^H zgBS#MYJAel58t&I$_hB@=;?uHy2SOsVOCzWuLv3hOLsCeHz7R4?^U&$Ag#;A zdCh@F6^J~3iu^o&=1H?u-$F9^i@t&EP@uU#HC})>Xy-z>O8hrnW_YSq0~}x>-&=;e zPD$c?l({}o(1Vcg!(Sz7KFIbmHbghw0S^L|V{gmq)e{uI2R!X+h`9VUJTU6LQavs)#QeD!* z!skn-0uT&1+nT^QDrPY?|5n79!|Bdz*YDh*0X47Jfu!(he)(S=ia%JHL`yHbIbfTT zNv8pA|BGFq>$$SXS%|$nsZ<mUh;4)X&KV4~0RIEZ?P90Z;OUvn^=i zALxH>1JBhojq;V6)f(-Yjo}zImuu#G6A8xcJvq-JUiHist!{ryp%a^8lI`NKyDod2 zNQBJhtFQK`Ci2FGbNcsj*k$>gIiO-LU4>8tp&Kmfw-T8(B{jAut7}Kfs>8|2>C(GQ zyK`}f^q)?9K~EU!S8aWFKK-IU+fSNo(54=c1q#lII*r9L-`;LLn3Nztr9Cndg1T&- zTuA@$`$o+f-U{0-M~X+C^Tfv2Qws$ehsaX$1U_v^q{(Tl31t~?B3hHx$naY^+BtI9mN-;1KrtB(} z7c3xx%hAKa+XPI~@0A}SaLB5l@&;>`;?*0ri5p`v#qKQ#k)>8%wW#7lJwHH40TRW*N>k6U~Y`P7DzJBvS$5Q2CZjx#DHuSG~3E13NmN zuJ)$f+wI{`?H9i{Hs_h@lkd?|%}QM&+_%lL!st7e@#B67L{FbP&1RlTs8~fr0UaPX z(V*IDNV?eyyT$G~d-13d0E6SZf#Q4*tcZI>>?I9)ZLv}*(^DK(cG&EW>_H?l6IArPuNK)u{M7~W5-m~|Z;`+@uX@_! zoos&2@Kxy_o>^W0@^H6-ZgkjY2%Yu@F4Z9%n~=aie_xlZ_CdPvcmUu01AX!Rs3vvT zN#eZpWSz&dYvK(2It>UuPkMaNSFMp~@HUQZ)2PK2USe3SH&$l)U}<4eujum)QAeFb z$5Cq-=gm>$@+b)aRbtEq^HsO^@^8ERJYqFrX+4FdrV2PsagmV>4xn}q4#_$Xthw(z zBhR?mpi8*%Q55P>lk*X!$?VtV2uXEgc7B73=LvkK_W|cEt}(xJa#_^z(oT4s*)6tf zCYAnq^c!D3OLBL$C=q3H#-7=^Vw--LR6F&F!ZhlVeyPOYR|#uyC5#rcBfT>5=KwnB zG0;F-!@yys@~oo9)Xc=!?JG@=^Y@W{J7*?rWtDXMWLk_y?+`*3W+8it2&g?oqE{=pJkk`9ur8tI#Ce_mj*5s zzq4s6YbuFp+TUh(tqq^_Xfg5aKL)trpMQgv+oU6IdWrBkg;U!$%TK1hB5zk|Req$d zOG631j7^FB#%3z*P5UbqNStuRp6c2lm-slHfEB5n|&G{iY${a_d8?TmSK zk7Y0mi<)irdMGmKv+^2%W@tOkctI^`E$(2aLsJNI0(~ofd9=8| zrdGd}L!L|GRPxQA3lh|;W>tjSIJc0AS(IIT*Xz!3O2AHb=RC?hkir) zn0~ntpFX9f4VJ?Ewi%C=nvX!V2w{SzQ2TKH!YF$F6{K;r^oAfAdp{W*zkIB<6!HDB%!q-6AcLZd)~BaJg+ zmfnd`u z=TBl2+Uu4!RUp{~X&m-K%fOFiPNhqc1X#^{%$^HsbrhmZ{iX1*)0 ziV%kmw}Zt~33%PzwUC&pB}u{Qz2f;;1=xPRuTp+8d1vNqdDp?ov;LH)riz(#!n75he^n4 zr(^Xd+m!$-n*rCoSf^t`L~sZBON%aLB8 zA0rccgsn14MXGxF9wd`dzlP^fQ_U@IFDCzCF()j6Clm6WKHJ=aO?A;Lm(iF>2p6yiTW>j9sK=Q? zu61rc(&BF_go3qw&k?pZBX`eDSu``lpV8LSy4D*3zVTA}$~nXi-h4F%Mj?b+Ss7m^@g}NwmnNfg_r%0)+#dSAXm! zZ(Mdsf)H!V)n4b8SF58|M7r3+ZhsgS9HJ^%$;}L1LulN0^@l zh0jBO83vZ8Hz%6C8o((^P~UO7ueD9hHT#9bj%*=EA>vbqc)ajMLc`eXXpo)E(aPBk zq-NYCP6NW_IFyszfYpdyJ%u-s8w>l(_PMMq8nISa1u~l(LMUBWPHJzoUTSMdT3?O~ z9%kyC^WOA3I+D4WxCzh68hv$mlQ%Y1g}*)itK$#ttWQfUvIc=k4KI82My4$mrA_tx zf^eVAUM}#G>A35Z0iKg|-!|gJ`a*4QPm~gV%J`r&$hKQfm25WPnn;;D8+kR3d92b; za_Q@=!jpI28O(i$ES3An#+Xoy{CG;$4~_tck8(#7%g*F*V)d3*8CPOUz|Wt^*TNpcXFI z1W*cH<5u2d7vkunmOEIdTP^$a{4HL+W3e7tsPBWY@MJSfRyx+ipriCxPn=Lag+rR5 z#M-S6COOfz;wJd!wMD!~4n6lt(qjyO(VPluV%B1EIgLE(IX=LA;jOUfnnBCs!`Pql z5SeH(pleP?={}^?0nV+yH~Ma`Y(uo{LygA3=32|~obouzqaUX#|I!}cyan|DldV5M^_d^bORx*(^CPNnFZ2NFdz*gQK+^B<~c zgZS91e@uzat}$^Qe@tfdiY4{ z-Yfv|p?CK}CJzk$)SMlXSwD87!{r5Lm1n06zf`~#l)z_P_w=Cjf(Z|H{Z2$;Bg&yy zkIzN`d6zH2eO4Xyq4_3@%lIpWLhP$e@nI+~8qDU%;5Y3`ej2hjurj((biOUCLeim} zI@Dw9A$Jb4?7bP3j1dYbUItf-@tz4hw+TV*&t?UKy8|dV;=U^qJ3tc0O$AYR6G6t3 zIgH0e++>Le2aQK^33U368PqYzayJn5zlp}=Yz-@FwEax+Zf=_l#$+>W_FdAlrHh3Om$}YGlgeAE$HX5~L2JT7R7Cf3|Vou*>dkfW^tO(xb z;yzfMl=Do*=6LP59+aUFh`fB(FoTa&>L5<{*GIYrQ1k1oG`ql~Eorg{?k4(;UI(sC zay&FpENUq5DBz>?&fwv~hr12gyKmEIVMI3)p&x!&XG~()mnrTg)E>p`@@}&6SUEc7m{aUT(a4o8l&xUHxZY^DAmLW zhZCG+%O|gybZ$j{9IVV^H6&UoG8~C`NR7UVJk8 zht*UvRh{e~*Soh@jF{3r-3z;P2LeP!Aa7Lx+Mi0ulK0#^>w*C*^$yFCV;7cSsJ8I>@C*VF)%gl6BK4pvyPZ^wx~ zE&c^uD`S-5vV?5la<@5^r{cH8%6?@SM1;XayMQDVYiLQ13{B_71SZ3WnaneAu_oA% zUe1U6zuLcGU7X&mRcp3m|&ok=ZwTzbU5{$8i>g{(6O*&KQ+(*8wp*8DBxu{J+0Bqus|%eGu*HT-O^ zAK^mL>qzibsghq(j2%CZj1Rce~;53O=7&!3~}G0P=t=)Md^()rhY;>gMSZE@#~FpxZJlkx6ih z!FcuWJ0o|rGMBSZ!C}&(kIIi*8rM*4{DM$81=cMI^W{--LVv~sQmR?SR>mIG_v3dN z1+Mb}8*04sWJL33=zJ}BRm^4E`)vWJ3Ba9J@N_d~+h`_XFSr^|vqBn^e#&<$r%U=J zH6GbzTw06nOBKgW49qS_S*>wEB~k|q49DHdx1YPRKU+N7&5as!9>R&SJsIOUZ9jy~ z_3|@1CxSVBdH)>`5q{W&#Xq7mRfPj@v#F zsC(2qwKXGiYL)ILLnMUyN*s9J#MOL_{iFgqKEtX$kt+WI2`Kv5bUL&%sUR_J$$9=H z@@~J;a$L#g(%HSInW6cQeD1^eO<7gUU!jlY}r2a$}2ovoxcrDrCk!)L^{eq;H7jMnklfM~5 z>v#?74Kl=I+D4qz%X#4ZHK(@i=Pw~&5Z=&kGrRcY5*AzZ>CW}|e$-GPgO2lkaI3cT zb*U+03`0XftffW+(s0B$A`Z)3CYHU!t-MtLFI(biFwFv>Vv1^~#keI(+q|=Z?{_;)V%y){O zM5xs%(z-*w^j6zN*Y|f)?|)g%xOg)Q-jc{?tWky=4IZ+~jEt{FJTk=k;A!tUN#2Xh zvq_20ACMsHTs<2t@e-=D2(@MTD&X^j8a*;F=`Agtx3|D z3z**tQ0)y?r)3UMeeZvupWrWNZD-*~RjTgi^1b&=X&R~7?AF0=RGb?lG0aH#ZqzI3 z!0chy+oT1;|A`Yjg5sjrDD zObxO(`7%qE(8k4KMIt^0GAe}K!SlKm_M}AdDWTT%G|nd9Mvocx@ruBZri~4PrT*B9 zlhhu%^H7Ias{wyTQozqmKV^4)@4x;jU6>wmpUbLR(^hLnw#+Ld zkKuzaP$Y{_D)d5Dx9Ue^%7ucc{LiT3PY4y;8jDV$qc#kk&7x@dX1RCYZu z<6?lzBI)AcBwYm7&KL;4-ko9PH(3;coDLKVA>4MK+`n3e%Q72RCm^4R^l=vHl)vl< zP=nDBJ(839}~wV1B{c zn(1YaZC%E5dL13cN{T!QW6#Q3RxjgW#+eM&=rkOgsMGSw`)5J9P3w?VW_d;FM}4Rl zOV_LW*~?n`m*BGX7Xt2w!oxP96O7_!1peVXCw08Ti8@)whod6ij;Q8RPtgUj>0%@h z4IrE<)YA77?Kx@=M2P}m@5HiGjUCwFTQQQ8^f?%}GBL-If|K@$RU;9L(%{4A&k(yF zh-hzH!qyCt-i-aMm^ei+0NO&}^xdJyOD~>5@3+7MMMp|y1~I?G$AtsWcn?H#*KS#g z1DnFQR;-5w^unqsd#1hh1-?C)U6QZSV_l@1LPTIDPQoUO{DqYxQ)G#iN3g|y$O?bY zKvKOWk;{K4kfJPt&IO`J6wY!Fbj4+5eJqvK70S9b_JdiEZqlum#EHwc_G{S52^=7u zgR?Hl7{&1H_&N_&g@VxL$b2a;0LW9{Y!r1ES^F^arHk6|{$xb@Zp)FZ1fmr%CnKoN z1!z8%ZWKqv9`X$H`5gGRY3xbh(PQ(goRZ^*;5=-^wut89AZ`;aFW*~|Tx|_ec`l8L zuBJrVC<`H)Hoo~;YAwG@OOU5?gcaPv5yvgN;TSM$x6<<^3zK10Y&Ob@`VEHN5t6jZo ztkvKCg}`Kvnrhh_>W!&w9eaxBm|+2?tq{l{3I4JnKLe}9Ei4JsM5hI;YS1v+`*qQRlhNsXwRp{tKhk$cb zq;11Fy(7Ge zazrcHT~v_1vdPVE^4yOZzM7KipWTKF%A7G)^SjHm-8Vtr^a$u(?1GWP!=_!b`eAE} ztY+IpO}vBP3k7*mr}+~{HR8TRiOH}F#65JxwkepYDtBPNMc7@z!TaZ}m~%|@V@}6Z z{jLT835pw;H(+L8DL&6L+;?L$2jnM44n)JK-JS}i*^g7?A zbrR<()>{y}J}95PZNimyE*FTSYdx`<>2f9i_6Or+?_h; z)Uip(UQ&JERbQVV1{YI+#*EOR?2>aED#)RiiL{u<0$tDf88Hvf{@jR}?2%a5_e1x#W` zd8i`Y@GwZS5-Qa1$w#_WQNi-x*<^PbvbS+}V9Un0-l^;5Q;FNQpa_cWVcRKdqD{l< z9@W(Vt1)uElI}4P?mk&hn&U+Z3L6b^t`I@z;BpQYIAalKzukG(UXGA(2#-_;`bB?& zY<|JM#p`8jh)B>(WkH&ucD|Yy4H-RK!xzVM^lR*8c&&WN&;!RIiz6WEAi)^CB82YUdBL1w4q{UuD>3ZQh~AfZ=?YnCn?)3B?bR?G zw%q=fRA9bH@v8XpKz}TK4!%11!IBPe*xt4*fnY>Ma|1IlGs*6@8cRSNRu~8$awx|F zZa%441bjWEL&0A>1w;9P1+~~}U7+&&7rO0OFwI$@>Glet(}X6ud*W;O7X|g zv>oAl?frF1YQ#~`^_e@^AL*Q?=Du6Iv4Roc>@Y_5=fX%@Qc3brL)?~R^)JEn!mW`k z1G75`uRLL5HH%Xjfz8eaW(7{iOxW2?2KO(TzXzu*y%aZS%Ct)_*cxA;7sSlF46bbo zYji^ah_J9JXtUGW3k6fG)~zQo-?6W97;!#GujqJwk9>!n+-!T%?aMBO*{BR?8U+1; zyVVEs{0b7*XUQ#S?i7;NUW27<_91 z);u~Ofmg%%xXq!=71-%(okwp%p*qMbgt8kUb2(@C!%PI)T$Xn1GJ~!P8MbIPa*q5+ zE(0hwX9Ub@o{n@G|BOC-Dk4~(`8vSyBZV^uj&KArpAibAW*jVqp&q+=&iO5r?dhi2 z<-yR+z>B4eRFN7WUivA!{&jYq2t5dUV0D0vtjn|~U$k793e1t!{LlIuBjO`Q7WW%UYa%GGSujWj=V@?U^47YTtQn zzeDW3gR3k`^ya&0_^%+$exnh|`bjgy9F;Lf6cvA^Z_#XBuwCU%G%84>%Bfw)08*Cw zV>`vA07C(yuy95#@y&Nwc!swO2?qU@vaQEe^t%M^QUe{4jw%S=g@28D1(z`{H--&3 zjAv{7Zki#ru#>{p;TXOyi8WWAMVOIMdo71R2*a5ML_A) zbCBw(V^xe1n_%)yvLCleQEl;1=|HNm9e?ny+jF(QxYZy0?zDaRTFQ_5NzcvPptFa> z#LW43oJw8eh@Z*+(JdiAwg_WA%AFi{f;9J$6Huz@b`jp}3lfqMAKO^*Y39~>nLGeV zFC^viv~jU>+o%-C>?)f&a)->`oJ6 zC;>lfM}$yZgLbRtu|pLdd#`*JEyH&ffF2|rk;wBamR>(L;%@}|;y%)Ien6>(=%StK z#orWl=KShqV75nYbbd+8P=xEQ2DvBy`{_%Drxaf1PyrMEW~m|$b7vVG zlR#1HWoEgJ#%?F(G;X zONIwrEGLvPQ6Pdd2@2PC3ONNTGI(g$^u#x)qcUB}y(O`hg0Wb#c@hr^NKv)a@4jlk zLa&6DP`xZr8*%|x%W8FK;-ioaA==06pclWo!X-8C)^wI}zPsgWk75YOc~2}d;PF}+ zx#3JI#}XGQiWO=88}!Y}Y&z20^|=a=Pzs-o;-<$nh7!VhC=8sAC4Y%+J;(`d$gT!b z^*gI5^dr^Y$g4+^BX+2sp+c(N(m$fhY<*jWQUZNvccnSTYsU@GE3mbPn4am6Y z>ta8}Ce{a+8*hx}l53M*n$ui*y)xu(kx1J|`oP`1<{wCk@rLdCq6Vw^0BR1?R>POX zQDXt>KWbwT^CXn6BtJ$3JXrvr_qaUauuk#@Hq}f6tFt#FMGMLlj;= zBcO&^PcSSG+#Fa4ZBS}@bqWtZN*J^I{wk#WjO_=5FyqJ zVQL}WcZ#IFobOSbfV!GC2YxVul~3eWFBfkdw}xB776}NVcfM^(9=zAli>gvBJa(LX zXS4lFC;%kdD0&Q$p-CCLDrB1OKA*VW>vGuvRi9&mb|SowSq-})ykxuC*&~{B zDs$Xal*<8g_Q08D3f?B4-q#h277yJ9t2M3>=9y8xbYvD@81<{R3>Lov*T#7;)yZg(foeI~o|h;SlI&X#*7VK5+m%O4;0=0jv1J`8{}ae)TTi?NdLlBm7{u^CzKP?r zvn2i{`cfUy2u7FkQp(?+P24p{c#CQ`^G zRZ&FA5qB806?DNi-K)Rv(AzCi9j`KW_@%Ed+lw$#6jGW4`bPN}yZ$ZJ|16a$oPGIaMV_bG*7OqXNEN7czVw5vco3r*7hAK33y$y!6(D2ZDb!HH<2h zE+XcGU9BN&r1!InjCCV5=UFKz^V!?tAVLdrTPR(kU8`g-e4fb|+TL`vBVQ#0$}#Tc zz05dW)-->BDmCU|O%ordfav?n5tZEeAwB1$JU=sGkM7=#ZLUDIj@?1)1Qk0BN2^#K zMW4nX=q_TSoh^MmO&fRlYwq>>gSkJCl^S!28|x*sX!}iaSlJ8?B*e(9$1bK;H1Dja z^0eY?QMd=cyT{25D;tl8OZTzf+S&Qa9>O^2Np-HE%_8aD@72vyo4Z+U6c==jcLru# zJW@bAGPJ#h1N7SAVjyQI{69}IrNmWrZX(G(m60>zuex^Sv#!&yiIfL*NRu}M2U?BU zt_0a50_Hmq&0@W&d6c&O;+6_#~p$upm~kA)*- zY~OA&zjpXlXTHM*>e|%jOrgG5l41M?ZS5uqMY~<@BF+(O-h zu?rqyKtVg-zO|Kb)Zqr8Wsfd<+8_m_kE7V$55W-G^c;|ZG~Wxm%VSXtHql)=tt^sS z`HZ%zHUL)+Y`MqjmZZt;s`3TpuT$Jc3F5ew2@iNgXvz_YN;8q|!2`w#?`6)M*h7DE zn_|qk%GeX+wUau4kE9lGOScETM2F$mE>uhQkb+N9)E>3+} z7%ZYI2=|gaefHe8_ZfP=zLGRMMVWK?7V?c?7@ZeH={w2=y;KnGYg_9&)ss5PArp8| zzuvsnDCn`kTj0^&$M<+kOo1>~i7+SYqBrV}!!&PLog$Wnrf?(G9>kXH--1J1({rkO*LH}ghXYEuGaf*Z{X0Coz2{z6<3fLG{lwPzgM{+)0TG%_BCmQz z26?0UF+SYteL>9a9UWmRw>&uWL?^`a?T>91m$$@zLE4WLeiHr+yIl8uk~CD3D1cyU zuA|tPYT^@~J(P4p5B;k3Cq3WX>Zhd1WL8=qU1V1??X2kqI&L3v9lGQqzROXsJV@>D zBBnSdxeQ_RXKn7z1hI)sqK6EnEPbThd?M;{rwEc#7Y`o@w5-zg5-9c5jB(#Yj`TNP zFcK8!&w4@7eB8;RH&Uz=q_~^$3On%mh&$n6K(nn0{m?S~;aD`|9*OZVdeCl1i|ie5 zpp3K6Q*IHzczD<_IobOoeN%k@@hOgJ|4rhBJ>H#BY5h%{D_Y`t9F<+;NPUJl`En4F zKg_3Ry1C~YGGCiJAGlCzgFT0nqY9!?zxecgy^Sr=(Np4MH5HWSB|_}J*b_sqD5mo% zPO~wBT*cCLe~H)EeQ9uLCev?8RATF^b-Go7diu?9j`0rqtW06Q1V7;Vi?6~ti4rKR zPi>dEi_5X*AYI(fgn_15+_npZ9D90gX>O|82DfdTY6ejZZ1wMF8=V_ga8m78F@`={ z>HDZ9Ah?>jE`$33#NB8PM8Fn@5 zFg|gc8haSu1hPG40wUrtY#<`olNyM-c)O+bgv=>gahUg1_477f?Cd2Q>J(UR^CS~R z;y}=RO}nH@%!Ph!V?o(wP60%Hx^PzVCLVA5wSO8z-_$u|AK&VY6p-P7xjRr}sW605yqSJ%wSf?5zGk>~jhUnE(WAzLZl265 zy!WjPLvlK_49=UMM8Y1Koxup`Sy+#Y?K3z{^vFpbw1-AKB}jQKZw@*xp5A2hTvA_` zWbh%o7Vp}mEJ@rZ1gdyrDw=t=q%;ON$K{r*yB3f|(ak~KSr6{$;ctPc?E|P1-QLKb za8difxh~4g*R&HxwwS`GUJxy?8>Gmwfp|>3& zhi~bA#>y_f9t2vkR7^&Rv^B-gFpQgseXUbAm&whncq&Jz_J(e9HdQW-03_oPyLF^KC+vc6fq!+BT-}tbE`(-)zR^So@#{LDwX{yX1nPw9=I&{aVBB$Vf%)!R4Ipz zq)~?VUU##F@08uaPM3JwyZCui{iM3tDLJ&iCFzs>{1Sv{VI8EYnSPO)`jiaxHnzDi z?~&9l{?$#{7bY~}+p;EMExXZV%6*xI$R*@=KylzIun@|vxAPGMt1r{D-(zU*x5XDY z-Z7R}0_xhZlU3T}p3m{gN8tgbmDH%CHIDmT$BAT{)eULGN`B2{ebqQy+s$3Rpd*2` z54E7AJ7BK#an}eve78&{i_CSw%G^&6?!FlRG<&j zr1zo}=_7+X)YJ-5Si@c5c!HRcv?P z9T5`AxEHJvVqsLjM}{HAdnYmZD23HwJnydhZnrML`t9reY$Yg89D;E$W@~2|N&k)f z?`}VCOK0e_&w6$O4DsETtyDCp>+9K!f1DR>c++0Z^TiL*d;@$cGLVpdg%d0H>gZ;O zb&{zUL^*cqLXB1QHvM2~wGHLV+FS)h$ohI0BP`2)w;ogJzjiKa4utR?Uklp&eLq0r z$6}_tg8M@x*Z0$bl3|MxW}Whqrzo*)t#jQpW>EvE($Zmne%BalqlZDiD8<2P;&M5p zHTh?0j!Jck??7tphH~NNAu6D2WynGT={4-rd=(-KG%2!jtQ+sYZml{N=)9QT;O(Db zc;|kKZ67Qvc0mM2*XqOiK$?2q+~dX)uKoNuXYyjd1yk*j@U?>sFJ#hkl-7@)vW2SG z6KZ@d2E0t^vZ_B?aDHsSm~CvE@*X*lB1U2lNtQF+q+N(zI7NEeAB*sq>fei8*_r_n*>eA~iE4Qc=q1Vt8HEI8R{gIBi{YA*9v=Fwg1bcGCqIxm;JuxK?_FJz?9SlrBLLD5F_4@gz{-7R$2iQw z5LCuMf1wgg-F|B3i@lu{u-k-}oRbmsn&psvYKF(vBY1bain9Drk-jOzamDIBnj)=0 z$M0H0N01ADxoHJhrZPifzwB;(ZX`1Ys*ipgv7bvVTc`N5K(UFmE%*`zA)_oH73t%Y zX9AtdZ@WeCuVA(m@Ub)(~cLycYym)Hrmkou?Ojg^dp+#WCa8wYU7(UW-@<3t%r5K_S?NJM}d=`Z*JXf`*%uA zIUZ`v!J|)zTok&A_3s+J&{GN~iRIb2Bv>#alxwBwHZb*k#0zC5>Los{UOPq)Zrk@6 zyYK|)W_A7K_2~Q2Eaz(z<)fji5%+FgWtqCv6?}SK=GjF7x^IKN$=eHuJ0ydcdQ`xv zX*cPmHQ|pog&C5*UOb6Vrd}KB=^Avv@YA;tapWXvnh$<8`MIR9YYX&4SuWD2fxgGj zz<4sd59v=8DdxxjPV&x^>-s{VIiZ|dy#oAu(iSfE;wDOdllFj+^`g2gzgaWG$*Y+QpOqsS3x*bTJ756D3-!>Qjzq!z4bRr=0Fc61|za4Lt8{ zS+TPs!RT`NU|@p3>u9}Rd@WLvQBKzFt1nH^y46sfhG&PL)5Nq#t+hW>I4AR|sdC{o z>MFsc+)1KhFzq;tK^z(^SnXGPA#kDL6oO4h!*T7AuOw6#AQ)4(zD0@*ls%))@xDH) z-zr)r-!Nkm;YUB0hc!o(BbgZgC_j8pitEAnlyj_r*SML#X5nkzKcM>kag6KH5k^*Qnv z6D+)thc3dMh!%R{Yh<&4VnPPPUgh-lkdP^$i1E(PoTwo}C{o4Fv%7AkB8y1rR`d0Dn)Q!6$WIT~h%`W^`Sfw(zmzIR8@?m)N`6K|2-E-sZ#nuXqVw5dio% zZN|2k$Ep@4kMqiP_&Kx(bHL7SR+sixOwjc;M^dbOKEr{4$qVS=xHVe)YPtIzk^Q0~zk!*cznv04kNS8A74!a#_#77xzx~Pw)uW{a4C*(`M`96T4lgGHuko!J5a) zw{)#e=ebKJ8!kr>$1E-S(yI4LYXI^& zL3rIHgpXE(@$yL)w9PjTvU!721kt6#4^3FI?%pr`6tzJpQSiIsLlI!g2g- zpe&$+GY1$a7;@~V@Y5=Hw5AIUqaQ|tF`{UsYw0QDWqK)aA#DUXgo<>F6ceWo#A;f7 z&P<(nDqg3`Vx%$Siqy~8hyH2k^M;Ow^b!)vZnH{@AjzEOsLir0dll47mD{SSmj{pn z#B1=clAx&}!B6WVvU}y^iS|;4g=2uT z!@VBx`I0$VOfE3aPizOHmxfeN{l(W~@vGCu+iumclkrl{r)N{|P|urp-lm3}@!^@dkaxGd4?5Mb8!tNPPt<)74Y+TFEFc4lej$4a7gf$$~+4vNYC!d}+$fh3%KzDD5 zpVkINg`Gim8E^T{KOa750+ULW-~>NyPZ-# z8N|2N+&EyIu?o|uJEdydy3_Q%*?3p^I1u*)I^qZO96zn?QaJQKd=)+lqNkQHcWFAJ zvNObExV$xlv!Y}ww9}fCqdZ4av;Bm}V=!c<9w`ee>ifsfMkG^IP$n-&>|jvIUqKHJ z7Wp`fm57Y$qw-tn?~~{#1nyP2rRhW_UFz6&D|{!IV)(vW0$@MlL!9is9AFXQ_1e;f zr4`M?UO30uUpYCHPj1HDJq?6smD_coJ7=D~s=N*&A>I$Ws4fZJIBbQ? zj5_6X?jfmk319)r^5{f2_YXfF#Mp;cv-}xu`El6;SJi%UcBp^`Gfb7he>hv#!zl8S zyeWaKt%RoV82N7ReIO7LD*Z^fs!-wU*&gc;8J zdfUkuKxUla?2wm=CP9jv_Ftl+ic^HWecMkDBU`eDu8C|`oqa+|zHD7%7Ig{c8y(%w zTKAagiXONsC{S52RjSvw&-s%hS%^Q|VWO8NG~_6}*+i#iai_%#g=kPE%4-ecZho#z z6pNDjP46<(z_uaVJRMO zUNEmtOMWSG$+DHWa+Sp+f8It(S$$Qy{GxHE(57!-7*#8&mh8R>zwzS%iA!MqR!1Kt zN9AY(m5__Z4K55ZtE9A}GX8{!cl*tchdgTGf@JA-^nr{Tq^oCNxs2aeoXCh2!y+3 zF5*R5`%n%?t1@4U-^Z&`cCQ6Q%QqA^ikQ59G6Y53>_>lk2T8A6b63+QMs=8leB+ z0-#@IdGA?PcLK~{81lBf{OEhW;dxMxDEGxV%waP$(bUGQ83l#l(@va!6co=N{b#Il zceS%^%jVXw&Bo_+NrTn*OZTqir95X~Ko(zykB}N|mM-r{hZ6ew`e>N3yKPyHk{srq zqtmif-4c_gSxF0OF)iZC(-mf%O=+Sjvd_|JW*BwjsUjb$3^dPH+gg=#o5ZlUYnbxj zlh9%p!8c2%Vmu$xx0p1i8{S5kn$`HVtuWxfzhJ?{ zw(x!Z#FtCOX&nPsYnn7=kI@QeW$ zCBVpCVN*({xfo}9{`WdT%?Fx^#mmvitBmXUL98Mh?~wYYuOdx73XzK!z4BAWszWwn zlyS6_OFIQQsnCJ(qgUPNIVYDZC{#t_iVcdLps?jL z{TjdUT*EV$l)BDwYJBh}cbR#+{P0#_Ip0sDad1?oQPm4YuH<>ro%MqTZ%f$v7?9C1ZN0@8yzjRb7eghfqTvX6v)=fwPsCA+V$F%U%lo7KWlIw+s)F zi`8SXW?HS~mMTQ?&e<_-@4s)@vF_VUh;o?#S(`Rb$fqiX+psEzeF;JKi3l@^5r*eT zQc?#N%FE5$gxex5f>XY7%E-yQi&hzs^?P$;`EMEgeT&I6GsIrSO5XV#=P(fHLHymG zeTl0SPBgsUU`Tbg57k+#M)cY|@< z%~sLY&MKszM0gF$NLpfAgK@g&8i@==i)ofLFlzXd^y&h#gIGr9;Omn%i$G@S^DiC3 zbvA%(_=nhx4CZ}9sl~yGl^<=bAc$S+Q(yI3(D4-!iY^u(^|q7Uv_(g|+2gC@H{oW1 zb-1A$eL`x}r+NG85Ja-rtLm$da%m8GBUdS_r#q0h@Hi5zy2u<1dspnv9xrE+q4GE0 z?YxZrf;1cyC^J|XgW7?j{l`QeTI#EC2`6zv20!W~U_$Q1*7mD6<yI4nbgoe3QX8Ki50!_UcZeg|tErzb{kN8|6KZqR! z58I=REp3S58||!iX{ab#PIZq=N+Yv}cuC%4TLZ zW^qTgYxfHY#gMp$Al9WG&zy@ACUnOca6Z)kd;^2IzN#{Zg>|T zY7C_c=f^-LzZ@_(&|;J0wsdYZ{n;@6`Pb_nmX~AXTb>t0W zXva@WW?5|9tbVAXm%kZnd$wMY1)Cr0Cpet^LNx%1ZUGNU?fogK#Yz+tFec$CYn z#KdHa<|R!aoxmkz5iofu8y*mz>a#C#*Rca;W_Oy!iS50q&R7XGs0dkIj+UWt5s=?K z7teY}NnSom)7O4PXlZN`u9PtvwG==o&4)XOT%8j!V?KL}>t#II-Pi0$c7w8MH^lLH{EbVLq z1U;aT%Z}pCu~`?9#s#PQ%11E|8sBKJFeEXY7TsCr;@-gLn6{MVj)twiuPe_6ap@U0 zm)!#jhE8QR7<@Cg%!j@Cr+-f0X`|0}Vmfbg=qFwSx^EHur23(LQb`??+A8Dz&^=ro z#{jpTe(`O+J zZRm$*Ke~KxKHxtNf5`h@d^}J3UDS+ma$auRX78t}@mZo{dhgl}gH=UDBDWy;i1Ah} zIa;%?CjK2Xwz(`I^Vj5RD!aJ)9;P1v_&;S2^KeMvA?9=!{QY$ zxa$nFqC0@nRm>Y8_6=WQK%zH_LEjz(P84WViS*3Z+YT`v?Zu5ONX|cduv!>5J2KmM(-Qqp$b0(h;O5L#(p|7BHnS45*5-M49Oyb-c1hRrj=jLtDq`G0kZZ{vPg*EnNWRR~KbTT8@2rt3LQcuzDR@`R{Ubxd zVP7FjB2a9IXi^43jr7;L#}CphY;nR>2mwKgfHJa7K{;L)kG74wFUIJW(;O|fx~Qo= zl_Cy6{1h9R5Sn@0ByjVQMAOEaQ^s>0PvXt~gog-?SA}!sWa-dmU{t+zyxDW0@u;qx z@tU8~xiMssBY<-4z&M5@#Ui9la{(=DXO8>Glup*hSgkc_zkQ&TQ|>LwG% zl(C8Bd>{@_t@lXvz#)ar^bG6VY!p~%*)yN{;1;64BAVn;dM}#X^4}a#+K$KQ<9rv( zN9{rx9gJ~P$CZmN+n9=ACZW;Ocx|m%#CD^~X7X5hE=QfuQeT)&mdjY#TrG&XswL_H zc;bLra>mfBtC0neegCG@E$t@bP8w ziHgF>7suJk)6;J~DtAL^)iEcPQmJxZ*(x7ty0Kb+JK;60R&54dZ3#OvK-tV^N7qY~ z(sr7r<3sAN>6;q6k%T69v`Xlel<|5~V+Vj~3i>gHBm&I4VtP*pA!b z1Mz2Z41%_OyQ>fLUgn2uhP^A$U{o0*4t^bHNPp_`i)45(MNnVwv%$t>Zr1@eALxkf zlTwfAAIDW5;pxTpO<>+t+Im34Sw7GcK3-|*U(AB0yn3)mq0T@-$1Sinkl{YWe{qv= zKuTEva^B7_(Jh_%{Aog`AyVHgKm+OHo`;)(n|USJzb4c_m2hm98Ce_5vOVOe9CXRD6Ca3~Y zRDj}==hME~WOlABpmyju;XWd3xxJbSsT$R8B?Y=0MX-=hKu@|V5V@ItL2->yH3KxC zDI%b^?&Wj$D>c%l$6?TkMl?eiY`0Q|;qTRn+9&hC5MBn3-Ct(2oqo@(M86{QXp#mi zru6vFhJ*icFoLQdS}ece!#3*xgp2B1RwQZ>wkq@zcp`Uny?fnYBi&Xqh z)3?kkVNn*X`fzEAXOCYR?km3`WlMa+rf~XdqFR>%9cO_3Ae(gdV|@6wB9?7D+mdKZ z%kssm+DO7aMo|YFW2x1jVwb@SOq9nsha{Z-DJ~its@GB@S8L{H=Xcr7QVB9V%2H*49o`3w`%zOJ9p>$?lW}m8r7SHn0g@; z?cx$2=$72gkO1NQV)g79`0o8%C8|cLnLo z;<|7!ll$Rn)7llUl$0;z+(wO0ho#X=$&w9DD9$xV%MQStP*XF!mlqd>=c)N0m;bY1 z{%?v&Z^*Clvle`j0Mzfo<&qY>;$m=Zneo;AYPVOvZ2=+Ghk&P-iGSUX5O_?z*%M)` z6iImG?VZ>V)baXaA&1ALW%PW~GZ}$DZA1D$$iob%c(yVQ{#_$MuIXCik0p122qAG7 z*}~c%e)D1fH}RyrxWV4uj|&=wCCge;N{qrTI$GfE-NuhA~SJ5)A9Z{;o$Ury$`KxarJm%Vkl7FC{M;&uA5+Wm1l z`Jc6}{L7Oe_eRd=E2G|jC7|^$&eJo}U$-Jp|0tyNd2qSXQOOlhg`X*SnC{>0%)hfd z_xLWou}{i=XxgAkUUF6UzW$}!RyWTkal=1r4*yqgmOXzN*!o~z&#<>pjv^7Ad@1tL zgZ_!BHIx4iYyI=afsF!olDv7^w@y8YbV~JEXpw5uwNa5mQ1qLBu@wJudH?x$a)z{Q zs`YP7$Jin2?DlPMOyjCem?;zCBFg`jHU8&q{d$$neZ@NQTik;ov`%StFN1G>-#SB+ zz^i~%ZZr03@dlwR8c#llOAG~R>I)Cnun=x>Y5R(y$gkSjqD z8j76~SRfYUs*qBB%=Y4S%qqKv!9Sj@KRc`cT!3G%o+T0w8ch6Y!~eh9(|`P|KNINb zx51^lDgF1C{9oIm^!oMDU6GL5+SJ$c*esvAr7_|b3NHruljVrTBEZaRdRmGniN zU$Mle7kY-5);@T5I)8-mbc>i|)PK&vd}a~NidiY6*8Z#K4cO`axYv;!(=#u@pR3?( zf5dGqbo-6{GBT-IU@+qK#KZ&#JNpxf>4in-a~q{hZi9`1{@;=Xjem79^7gdBOASWj z&yTtpot&4W27YcNy_;aSkWoqMJlL#^)Ms*wb4;^NDoD#cSEc8@u?#soAZgw^8+Q?=ux;AOR*?|;>v0T2Jv96&zGghRk3AXBp1uT-MR zZR?=)uAtz=(aiHT&<_|(ddJaSvtYUB#DipVS6b{t)_@5jw6Fy-K*;s%1B32rv^Ya3 zPv+@gv?70dezW7r*L!!#>P@hu{Z5sz03kUuqBUU}?yR{Fs(=cdAE*PSxxdT|2(b>2 zm?qp`rnei2$ls`T1{uXhssG+teL?J~I~jyxeSS@0ZzSmy!r^+U+;3TjN=jm(9}CB0Y)~dPT*jP~kz(+wcHk!g z?Z9`t?!=%K9(Bxbw?4-w-B3d<+S~ zBlqu12z~pVH|`L*Ub*wd=chd$QRKL~TS+`v_!G$exDcVS-?w~P25F0WnOsI zg*ZsP&Tp=MhJ0Jz`I{S;b_qH2y&C#9AN~1qGKv%)&Sb%q?f&#PjO4X@UY9mjwx+0SeD=mA)h^kHC7<#*25g-feiz+v6>8WOkqt>w=)`Grw=c?G$CONIAx zyetqz4WNY45x?OB{{PMY|9tbU6F<~&TXLl&CFy_pT|HLAUwW*455nETf8~a0F48V! zupKGn_lEs%#QneE@4tE0SW9Eu#+4{0e zAY>`%gMnX1HFWMmnxS~x!XOOfSmou-dslwP#{Kf&@eLDzY6aIbWcO8HA~bm_UmJx2 z0JT2X-FB*`oMU3Ekl!V!n2Q@$ubs11d#A6I8K&p4{}#Z#9DgII_JOD3CL~sa@-QZS z6RSvs-nWWl24!YLAI8o({4K%E-m2}JE@0kFnGBbMW;Dp}N-Wem#95yo!&Zh)>IWrV zga6G5{nIo3k?-SlPMEX3*V|tVK|y#%sfx~BWCs-Xf(tks*PTI?FwIu>0jF#jE%!Nm zA-2Ia*gbDhL^}U*Tq{SJ5k;Sx+LzAzmwsoFRo}>^GW1JYRevdP2IH(cnCyO zL>>rlE4$YB(wzBvzXEQ;Tz4s@p>py_`gw@9k8N6JTg+;l_tWs-NPJufy8a+r9?z)u zS;gvuaJSeWLgtT4&1_2)0TalVPuk}jN15t1&BuavE*Z53gXz|O$3bSNUv8}W%2_`{ z@3bX;ZlPXnM_Z$K0{|TFUPHVP-k!6==rY4CXU)>-FSb_Ue|k3mjrm=D+R=U8$+;?0 zaC+i!IEg*#rR>z;OWBtUve_ag8j#JwLhyI%=_dUzaz-XK*x5_=*`P} z5&vy@@cHk2Kmc!s8?x0TNB4Zceq%;xpJ-MHr{8BRY<}0vJ=iyfGKiRXT<~t0(UU%B zSc`T2MqCG#^`G{}|LdE`_V|^%|59#@oC~e~eyDsG{B8cao?wZ#EwMV;Rgk&(T5g6w zwO5PW_yahfU}4Yu-$>Y4kc?xmP5=qxO258Fs?~ftMzIP|)Ndshe;rR^(mJhmYPv%9W(bx)olyGMY3-nD&X0!EnnglcBL&d*#I;TB!x!AyAif%ntQUTyI?R93 zG+lY{F)4|QmQyp4go3WGU$@kHwO?10W~x*_j&W@wTi$=R?a6U4omv2~YWy$Cj&-+{ zvQ+b6$0xe|aTh=pQl_Bcn}6++G5Z+!K$5vX7oMIsV$lF*{eInUbB{s5YK?oNDUiCa zzvNm>^v%ohq(OV*&-&c7d*+8$*L1|ku5-#E9$M1B+5Br;`B5SW5FqMn!3Ex8Nl)Zk`+_TX2jbTjF_>TkpvA8!TW+Rjz1iv|B`E^f)zaH|jkzdj-)W9daD1?AEJlEyNi=IE}>+g4y z0j6%_kzvf-!X^5Ls~IBxZ^0=f#Ht~HwMu$hs=y3XICQS4r#;d?OX2^ff0*GlqnRq| zv~Jw<7gK)UI4bRTuA@Fdkgv#8)YR~06C|dEh&JZ^+!jz@Z2q>C;N^I_U$b}v2|1ZS zc)Lm5c5*-u^GQiYYFK+q`PL zVerzWe0jh%j=LrlvH!hhbJvuOk54P$kJCbRVQ`2+vvVl7Ve{i@@XY!xy9(Zn)fsjl z&eP=8vW}@zc)y01EQe!8W+rEyqh6BF8mqzn=5*`=WRp!JP3T_CU8`=**qyk7{+w?E z=_B3g8ZOdIB1P;;=H4YO>4Pa71w1mlgK4im-0~)jjkkgD$wzMP?l!$c(Y*jkgVma3 zWeVe1f-~bmX1Q&^iDi#J-mm9SJfy^BE$THwN0z zM$jBytAPdS%Xf42j8XNMcve0q)X7R4WSjQhGPgL%+t{6?V4sgT-f9xOSX!?1bFf}u z;8ABTEvHtJtopMJFP&%2Crgpf$jrhr+G5f?r7}1jctF0 zoF$?g7pVC$4HsZE{n?a0T)+5*$Vk?+l;AQQfRG{ehG(IRFZQmei7@|Og4uH~RoAXj zOTNBzD8<5j!wF8R*hu&Q7t_RfF5Doqi5TIr7*OA5&{g2QTCOp?`j?QGQ9MET%eN)p#z*2ZUMZX;?fmq}4>)%0t_ z8C(=}ys@TUv-f8expa`pvfZj(r2Bv_juQDQm-farz&UuB6uvMW_^d~kLQoD&Ce`8v zcc~g45BSFl9_ynDA_y6GOC3Z}%|inP3e?Hqd5$}Q!|7SOL~95Z-i?IKpZyPJ9s{nQ zgh=gP1L?rIbU;bkVIw=02RenE{+>%sdyiI3SeCa&!B9HA*(V++&%AAGl0h&(dw}fO z{N>rkM?KQErFTh}TS61Rqy*TRTba~D^om|I<-mT-XypG;zoNeiFcs}%M0+E>WbR`I z<7+`AN|7uNv;2jPs5WMWi*Kgv;na_Qe#n{^5WXj6Rtd9h1FhFQ3Rzval=5GCch#zn z6ua~ncbqD6;a-?o$W{>cf(1V)qlybX|LZ&qtfq5iio9p6-!#k-|*`s z;f2p_;_>QIwS;Za{yABexJX(VSGC>&ce{lYSY?87{n}gS8pSuxZUfe~h|B6(kKpv& z<`tS68_hjYhysE9l_JC!XTo69tB}>Wp~EvSKwxf_TE;@F_<62THMRDG0pmvdlnNwZ z-gkMD_CtY%cx1)(mUIAKtotNY7{q3HQ^2Mnqn;1r_suOp_kn(_Gz7bT%V~BuVHp2J zS>~_+t{jlK_xi}r96I8ASv=RA73DVb<+C{6W_QxiGR;7Lm>7BVg9*Ad+i=BWnkQ8x zo{JS$FLz8Vi1Its-t8K(%6|!|he`SswH&Q$SGXbp9>T+6x8*5xBj&$a-0aWfgK39Z zwA>YF&%V`jTFPuzzn!LUZmEaTKa)>z1mkooKzR&RtPE7c!&hf+-Q5S$Z-vNY_8Tv< zcZbnWhX+~jfU~vK?{TWX;fGvLgI(&XLLisEQ|)n;~3T>y)4M%lMa0p6?eQ!P)=>6LqUip zKl7BYY}4Y_a!9EmZ_ewe&4A;5`sRFY!)g-(B}@+{j|b3#X9Jg&?eILw?r|3Fe2!x( zmB_ItW{FohE#=X}-5~~m2+M7lL0K*ApzN;I0Os2R-N7h5g%~)l_K7caC9~9TRqABL zNnk7@*?d%|)8oY3Z~fYAdP`l%7kbnQH@gPE*!_Ar&0$V+rpOG*K+I+x=6WBUV07F5 zV_f7u(+RlU0F127!N60`XW~W92lE-Tv|JpaAl$Yr)@j%Nho0o529|^o- zP=l*D8#SmWMx!KlokBMw^HnE!V-1TF&lSeU^OvFudz;6okKtUF4o5TJW1rV}DyU2$ z4&wK&B=}*He3hCSnB3f_RhvyMjI4u5D3X$CbkE%e#%SJC&js>%HPsFafyU+b;=*e>nAbiS%yeJVjRTj?x`Y@rNQ!V=4o1e6h2!i?viXKH-xSGZ~3o* z=aa31gGAMol$2gj{ruu&jMB^{$#grhB=_t{l>}RU-Ki^AW(|=0O3*1QGI*p`?*#v% z?^k9td2Kfypb2l~dNx1}6*+EMf8qgKPk^8tsa)sFj&P3R~lZ8t~#t4+^Y z0`^oIwmRvvxI|3@69BHA*Sj3g{|=pm3|?q#Y~pdEQK(2bDu8R;6_r> z&7!uQ*r@vEm){;3Haq8Yo3@S57An=10FaCFzUu2wEc&Qt{GM~S4DFPl3*{h+Uof~r z;#+fTrLAI_^|vkOVzaXFt>y{HxD7h08lj08nBZ$?2R6#-`3I^6S+Ved^SI-;Yai-f zC|}7G_iY2s7tHb{ZUnV#EdvsRj?LH_h-=ZO=%ToeQeg2Eg*lod_-8}?_4+j)b3ci4n!+*g3#OAw6^kz-_ zEeE8W{C|`5$QHW7ZCtP3MzDp8%Nq4cJ_Bkg-7E!gIB)7x+p;Tcog zf~{Zm2S~Y1u{f>2*mQZd@K0}dmrQ5=PE2Xx`GY2Lj2}C!P+w)pK0~)!F#ly}@9U$= z3v;On?BF;dm50Jej@F!qdgX~)Z9n_U3P?p+0@mBM-CWn&k3OuXJ#QcIl0D-+Pknu0 zU#wZiSbg4Rx)KpbMNPSRa?}vGa&Vl9$0E@mUEIbWh4r>}nZ=rSN6-Vq;sphfn1OR% zW;QHBq@naq0oNYu9gL`RgaOX<(T|AS>r}|SZFGj#73X6d3wazJ}d6i$~XlBiOE<4!Lo_1V)=Pux}foGv@nd#I_ z(9tf~eOT-lCYf5$3ULiQI%PdN=y|l83yu5Iyw5ZbLNb(T7gB*%YH5A@hBF%QE^ceG zC(iLwM<>1S_B(GX@3n9@_7kh?$A8yapsPZb8(62~0=I55h`#dqD!w6I+=)s`hie(7 zy+(OEd;!pHd{tF0_U$UX`Ro`=(FeTkNu_eti9Ro*v1pr>@6&fp+}~qATs& zecK3sT*m4iEuoi43-+M>^bs;5zHPt7=J>hz0g zh2Rs?tlQGQTi=b*rhgodSVNbZXf*k24^xVudmuJb$gCM@hWpE);Dv|!CF{}(FVJD_ zr^OYpfVC8}Pmfm)8*Q8Sk%g=9N3`=Nm?7Dc;Eg((tUgKB0F3d%XBB@2h}NFjS09b- zKpc*Zy!+P~JalRa^BUyG^81`Y$9+u(x zKv0N_Fmq(R45FgR`Sn(nap5~Z%ZHi1tJ0|bnf7Cs;hOv0U=>3n^HmRlf#Gtt{msc;&$TM(6~QUgTl^ZIn?#obx=ul|fZGVBu9u2- zodHu|O@snFuN$`7mQ9wKYCEP4C%^YtQ_njiWR#xA7uiW9|K}85kPd~P=w@La*#H?P z-HDVlQ^q}U{X!bq!8~7M)93)4s%h{9)D(WTY1_6if-4K!d6MCkAa%IXrAU(md&)Z7ocG<)+TH%xzc_+$DIG&YIpj|E|A zVfHFp8^;dcm+ZIn`&GHk$*p;B>iSsy3U*mQN^X(DjypVuQao{m!@F48`pT~nivYck zdB2@`WMUy}vz}wx1t0MEg(6`mI8;A{t(?PcUxRu;f%XQIy8GbMC3;iOhWUU6l4`^- zf=pC$z-Q3g;am9BPW9J?%p${5x=8ln9U%Uq0IC427v^X>nYK!AI-m*^=LvZay6_b+ z+(Vy^`|l%p&kq{|SKmrzc?2)|k$BVXN!8`P4Ul1a#O)!pLRrwIP#HOB-Z-;`&z1W5 zvov$Oe%NtwLBD&3iC?xeV$J`QS<89ohK(jBPkt@Q{4hH`;3Zgm$`7W3(5#d}Vj(iz zS_W*DLluX;qsnGcjR%kxQk7^?`5#1lO&Xdq+s|l6QCyCri})^7QWEOt%r>K^glD%2 z?W8oEd~zCMG^#UG|9o_r7+)a>CcaE?lw191{I)N`@SLP3jRtAg>wreGRml3bK+A2E zodYqge5(nfvhNL8O+LZpLN=9Cfbk;1r;;1qn7uDftfXE^V+A44&M923`$v&XFdxeD z4W$Z2tY6K`{UPgeX;nGkho>vOmtl12K4AmizFHz*cq9RDOnGcOzV}d!L`Atc@H`GT zA1mCrzuradniL`kgoFFDBn_BqWRjV=sptqXT1m}3@Vs>XsDt7;jtkp?|86HMmJ#P7 zh~fenb4`=qo7<`X=5yME)#ih-cMj7dn+H$9F;WLx2+g$ColSSY45eE49Jt4BdE6umpvko=nAP8fSpV=F8g*j`id2)twPPS$5CoCZ~7u$SZpSuk4DsWZ-$ zqR|@rn5kGLN{o;GO~gqfxpu~DN8gS$4W>6y%`Ody;;6UMKU0sbNCyzG(3H)0hm2Q~ zHuL01Bvd_1CX8)sUr{bnm>t{qOf7Er480q-+~~>b;k?1kS`U_=zF7~927k&u<9c{{ zbht8V0X1$TJ#0JNnPzioY2(*!)jX6riM1z73NEMwe%FmQkFKxT_UIkzdPzFa!Y~v; zx`%Qb5nR)_vJ5Mw5Nf}_(xj7pN!|8TW~Y9&Z4Jbc@UYND=-A>^$n~)P)5y{0wLz<- zx{#@+B&3Uv{zy%!>X43P`L`>Hhnc-7TVRId^C$TUkva-ku?^w#S4!LAOz?+S1=u+u zJWo=5=zVRwfj&-tQ3ZcmR%zv7e5I8`bkPhf031LDCun+K;_ zfnxI5=F^s}ZiQO}$q9L-hWx^`2E`N_IIRkGY6BQ%eF+=Vx!YWUB%6C=R|Kuml8-&3 zlAM5DRLUxoH|Ig)D*_YcpKRa6)dVyFMtMz7p#nNGUDF*D$dQnLvu>S-_IpF2jPKkv|wB;*Vl31622^r$G&o=OohLOqyb|}Z?uQ^zOm1Mb_y7~ zTnFFVUE^k@F1hN$WzlxkY%(@L)nS7n*7njemaE3hw-`3E`l1!ST(Eg&X$R*^H5k_l zBixiW%9u-Bg3{MN zUWps_ywlT^A1u);b5?o>-hQY`)O5xo`mI5eUMYQBssxxqN7+&~6tvxKu%TWWfp^<+e0NCW&tLKTdqETo^qg z-XH#@Hqzp`T4Hw~lY(oOLSk-RMFZ;iLCk`pvhnoT+d9*|8DKn;Wmn3i*1E~h8R>TI zp@VU;p%tdL9|@bI;Y{XK&)hc752^*yvb#X$Sz5OBEl)#4`K>|zNe|8)(kRjfgbigq zWkJ50KB@jqd&7`t*xngPPe6|g^TKR7UQ=$&78z-jKmV!p7q{lQs2G z=X-Yc3Axg_waar(;K0r8iSoL0Uk4!Bv|Vo?NTAl^8AuDZfi{3jq1aKk1#EN^`*&Q+ zA@6Pnb5ftv$ULv8nP+`1a#xR%k`7MAAF2^5J&d%C_ekSR85;(@F!#rYY0SwxC-nH9 z5+VgaYGl-429dy-y`)FW>7q^RBK`;SzIZn1acIlRrvk_maZnwj-Cbd&j>L-je0*&osr)_!~BjGRq~a;Q_-E z*b~UIsaDe}3!n`oyiqwM`0319qifGtNf`y%7l5)Q(mDiK)jV<2mEmhcpn@X zmDCpL^K&|s$G!uFg_|xCqefC%fr&g&8wFlzY{yej+cE8IERo-%Ejl zV`!N}y)b5D=qpx`#Q@*lmEsz|&@=1cWiR9-*&hQgf1F~>A=4QLTUB9_=IMfhcBfnt zjtv@&3iGWPUdW?Oor({nKS|<94;?FwKiEd5XNxhXKnBfeSHE+i-Zj>D`seaEWiND0 zM8`%U>L9^k!WWD~qO$neSC!O!Q#z#lLms0wv3IHmQw7b3Sv*Rao)t0#2+R8;Jz%qk zGwiz|m@UGSsHV~3<_Rqn%i1u40gvFlBW)$dclCk9*i>;^gALB7Zi`o=E%Q|WE{zRFkW8}qV_CNn_z zqa5=8aQB{JO|9M9=n@e`L{t={qX-C6RC))IUInBV5$S|ZAcP_!AS%6gq$|Cb(4uqcEiTs%x}UUb|l{(c@2Ir z_G(Tok!Ju~Sfji*Ul?399#>z`b!BluYSK^1XiElwli?7`S3YOiLqzyaPC!eEKb9H+ z3Ek{l=*l$#F1eT(pTt-wZlylxY6zU%tIWw5i zqDi*!%(nllUDGcMcr%{dOgIY6KszLBgLif?eKX!Ei$5Xfx;VpJ>q^+)=eP$^fK-KhoBYZuywSdK!%R2@c<>kQ#&pZmG-)wBUnVM3x0% z{i)jv(n@DX4ZG6?HLd}w=C>HGf2+uR#nO!RaIng%V>l?4@0F--5p8uQNv0NMKLv0L zzFhWXGLeN^Fv<^mf`l8hv$JFdCnOkW1uz#}md_i7@;7>4Dj%i3ko##8MuV6vW2YPcWUPvc8(YNO9l#*b3 z6ccFi$(itEqV;Los@KvuBp~FyCPHE9xpf1i2)}+U9o>3--Jzu*#E1$jS-t`;%h-sh z%M`LH#4Zf3M~h64Biiw3QM(%OfZv$ZWUaY_~^a^p^gEZwX~MVju$S$%N1H`XuPrLghS*`~XYWvRay2YLWi} zLx172@Dz0lrvRN7*>bHCDN7pwoNG)egH=|x!s+NzK!@tn`~apP@I1#x&X!I__!KY z78V6zpal_{BvxK)fS=X4-0GMvJHU)ATY9X9S+Ky6&HwG_1hhQEn1W`m&9Cq!Ka*jn ziKeIZ&7WW2$Tg&YE9DD6+Pv#cq9jwlgMx+4BSrJ#vxL7jc2u^w_zWyPl}5?n+dQTv zaL(OZ_XT7GZ_GJPRc6t!9J!XFEGq3&gQ_-*yBM;nD{^#f=CmM2F|0N0SGKN$NvZ6b z--mVY7FU6rqMQ+(qyz7ATaJ!4vbwUMVC2|lMb^zWdaATzV0xEuEfCCy=rA)(N$yv= z?2ioM`fU^l;YkEsq)>$wGC8a9nU-)~pW_3q^P`7?j)PCbed0weTTIIv_q;~SQ8*`V zR;nNsblckgua{oTe;QWnGCo(6y<~@$gPq3OV)zK?c`M8Z^Nm1U^xLw-K-@|ekZ$tc z+!zd7^KK&RaBV{8Rz4?K291I->l!fG(Pp{m3icm(bqI}{6!e?>{+4O9*apgy6(rM+ z3xjD=zY46FfzD^vW2iP_(Ya3P=V{pf*K$WB{qW|2lZ%_Rc-yi?IlDtCBg3;*oV zl9#4$rRPw^m%QkO=7UzPvTd}n9X|0|_L{>R2cHWJ`$0sMz~cK=smV{=4cCuSFWov` zB8pc}HfOi{;}7l6?lkQ$3$D6hnM)Unii-LbZJ&UMW!Pk+Y`Jg9ipq_;u6I;7V9~_Y zkXcD9hc%tJ@TdHXr@cfK@qkO=e94)z9a>>ahmvE&gOG?q1g%wPHslY?pcL@#!t?oDf0>%7 z1lKPIF7;2yP%*dKDy?`YW63jDvm(XH^4@NrGT>R9l&(z2#u`=_b1{klGrWd)?b^*# zzu!iz-Jg9@I$1vUV700h$m&pKIo=zUCMkDm_n0=Z)7OEy<|46927{z}-cxS4z7{|J zbPcg8$LRsB8t;REpz(42_qnAOH5N)|kGQ?;nWc|@=0U^O^E5Z_VNN}!3+xmx>pSiZ z%f5gGo#h z){Q-)dInS0odxlqY?x2fK$XP@ymU5gm7alRuXUb|Gkj)CjyM6RYO9%L-9KBO;ts^K zu$AFbUvW(hgVvB)?98h|K0nLpQVU^TuQms)$oL2YTKALg1v~K4>w^76`b3lVqJy*w z3)n+PUoS;qepzkpBdyk(JPDqxT0E&&u9_TpuJNN^tv{xDaG3034)2d*hIPI!!cUO} z8CN?a?Z2OTgDsTjW=2Do*y}f21;4d0W<1Scw4F)>h60FdU#r^5Yd!mkB^_14OElLo z_e;P7f0#5(`$rKo6%I}g`p=zu9KBkx8LA*CA!ZKoLh*4rK#u6z%n%rq7V7Okj`?zq zi2+N+9(mb8Q}8@g8w>2k6na`P3qZ=2(kzI#2r(%GEbWv zOVEd+ZWUc1)Vc5w8k}y{)$?Z_QI=WSX0_!Mc)wR#m$`yr%H4sZP%XKW4BI2x{TO$l z%gCw#^$qU7@Ndo&qh>MIjEflXb4g=632u!O&t{DiC#7PC6-_%bKJd$*WAEHrWw*pvoQl?o>1RX@$X@BQc;E zzyIaq8vLpC*8a0<=TL`=rb1-;71neSSE{mTo6Z2x&U6`vr&)U*ns|t*br9T;L`LBA zGgO$17YPp{|F#VBZq2KxOBH8C!XhOg=rEjX``K+}W}nagXVc1@*(=Oqo-1E9IeCN9 zG*X-G*u;m0TkxHF9{5*!aj6fuM>9M8buEtW$ZTae&$muar}vV2gY8`6OUp`ZX2W`_ z!OM)*PLm9u%*sFHC%YqZjR{KZ4R$eU7V>u@yHeuXxGp<4Oye?MNi6Q9@-qcj*^<8S zsWedVkRb8pwOK9xvA;XW>iZg8wOjOkbx}=EaG-(g_+;(Xm9kC}Y>CFVrU&ZsLs44@ zbBjZ7ou7ygJWdMED}mY9!8{TseoqswVFK2~OQSkVg7Q}lX3}rQ%=rUj0 zGQF-w2sd2(`}ZQ`17<1C4I5EAQxs{;+m05h@@B^T+pT(JmOB2xNjauM9ss@Gp!X&BdZ3DNAcksIubtBpmN6u$jNny;A05okvDui5ybwcKtb}W!(+**O&Y}) z-1u(V1xW5k3VCIoNJiAo%lPaoG#8{ttfZ;ENU-?SbZMU|tk9(e?$4&lSF|3ORYafi zJ1;R_w`}v!RxatH7Jo3|aDjjJioCYWS-odV2i1P#7$UeT6ytEAO8+KG^qB$?6SUv@ z!58B+su%O(lc+tT4|#rUULak-nt@2VmeY6hSdWGGhkt8Jp?r>Xpq6jIMDr22=K7T&7!2)WbCA0Nr_58|*oVQetN#)}VNE$&%&Ar;Tq4 z%zEn#aI=)tqmwyKfc#iskSn(UFJrjsAoPy!NgZ>yw}GzUf~ZkvHN<;><}RR~V{ zvOS7f5MkEf~{I?h&_s|_ji}OCjmc_-|^~3j4&^R8JL4l|Ki$p?#lgm zvz&s;vJF48F|t$rk!a2Gy`2pgwzFpy4-iUqaj`({pDU+UMzZr3+oK~+5)|JXra)KZ zwVzAL9(F@neL4i&y`9Jl>_6(487g0HKk1y*j5*3YVfi}mdcvwV+;>9AO3BF!Zg7~+ zm-Alt-ryKC2t!>jQ+Nw5-iy{RvmHO8kd(W|dvV)d4+j2;G=bOVc)F8k3h$z+h6H>h zOooKNI|hw&DcJu&rk9!0qP>qA?%N0EZL!&?uc_Tcy_|y)C>U=BXurO=Aog5dKH5_S zr?o$%j*%4BPLomq?=H@A*OhGTR!)BHAW{n{FoQ#%LfjL@dC=B0bdUrq`N-U zFE!g(Z{ViDas74Gt&F9n?ft0}TsEZM9z$g;f+>N|=i36pGlGtpv#w+|e+;xpPq}g> z^T-t-b3d}qdVP>C0#VM#`50VsRH+?Nl3%E~{I_MWDz@jShLi7`8jxiMeR^qQBmU)Q zSM(N_Y#=rw70IW};`5HzsIl+1nz}mRXa_`9`d>#rAYG6DxlFhADOr6X*+BK-wWF!2 z8{8``PX-E-uL;r{REw5fG&QJ4pH>Sjub7+HYyB)Pnm09kCmM!9gg13lYKY|ZHYb+q9@yKXr zLiQ1&z+>&*KEB4M4~3KE60{ZYs<@PKioDM%Vby=i#eB1IskIWgp-T#Q;?;xH>72v0 zS%iSLj9Y81)52mv-y3aN;si7pR82k;V|&y3b9PV8wILMvM_{xv7Zs6Q*+o$~nUy%0 z|292QfNsI=Z2DT;_!>DKdUHQki_K(H*xsDiHa6;+(V*V>xUV+4t=ji1LF4T^Cp|=Z zXY0-h^rN8fx~c7MsnDnPelv@TTF)2GUM3sZCg7J17PT{s>io>R*XN%uc!$`tk1K!9 z$?5HXkQwTjI`Rr%n@wSR_ZY;1zzYqMSP)J5`Bb)x_3=^pwjBd z=Mg37nX>X1AD_2?wXg=tNvV&dp4v~%$v)Ojbi*)$nk^7%)g4l0&tY3Jv|Ig`{hUFt zrJ7g?1$^|6>SO*YZP|$t{p2j9C%SDJNn?@#UX z4$fzCS5JO8xOH`T-?>lY@db;(6&h{g2K76T7lg{|La4uKgZnY$abcD;Z|cR^sXT+ShCbMnPXeJ-4=bs1eufHNB1JbX&uI#KT>390xp+*YNi?z7HEP6?rfH%A|d%jV-6Fq@Kc5=5Q>MbEr|H?I*aD zUfwUQDC7fTq^(`-gl21DLx=#K4(^_(qGuKTrUp~(M5YUk!~m`wG%D}Qd|3In zB0HN74aM02=1P+!K1=3XNvyv6;}d83?24GY9G#~2@~y&5hQfNqg}FLUNl8qLBWq5v9b(3v|g8sA8LJwg=u{{q3es za-fi1*Pzg}#YXv`7(;uTHxa%}8!;i&F{5p##)Ts(TmUV%Pt??5M?iLV$WSdA{1EfT z99Eri2mm2BJ}Q2Hf0ov~;SO#tbj`N#_yH*j1s&iHnydyrOo0Ig0bCC%7KSq$y0N%y zgrVeP2W57mIRQ`Pvfd{B34@q~@{OM0EDHtGai6B5&9eWPw=e^_(N$e89$%KjEBC(K<`?A%Q1nBprNfDAB}`6M9J*$ z-Ey+7nc%4ufS8$##$b7bNz(KXZ7<&GJGw;ZVxHvThY(6){OuhRq zKT@X7CBd%g2evKLxv#1o_~I_uy%9;*Qb%XW+?1z1*l*?hyFEqT}Jf7bs}<4uDWsn2Hh`(la^DQmbq^tO@~-TxQw;4iTXJc*D<%Y;KUa0XG?qgIEK>*)32#tQ=?}%K=6$mokqI4(B z_IkECAxB}vU(|l9v+EKY7V^9x z1xhSB+~KPNyHpdNK(i&-rS3uxt|3;dDaoEJ@Hrz&Tm#U?w4)+^JR>%R?sDWenEA}J zKP*$L@3^Ky^S#SVlu<{n8#4Ja4jq;=Wyn>_8Y2UWU4niT;E8>`ku-a$-W55! zlvA|pzh8i3IbfO+UJ1Mx8z?$QI0+wbAFTX%J|6%V%F8r2WUzN%D`!I{jc4*>ae{^I z*+&li_y!jpm{j7!zvuY5Th&3)%Zwsj(UuN)OOs}JiMbowz}NTsoQZti_I? z={$ehZD?WN{AI~)Dk9CxTao^O=@8~RIA<%|ErL&$m15jc>66b3oGq(y%{Lpp;-1C* zHWkJ#LDC*|9mOvjoqiW6U;zunq0J>z+>#r*UfG3^4iyvjeA*7Cq*gz)WgRct3Oz9> zQL3vP&IwJK=J_W;tW_hKb_l9fMc|AH4A)s)wA18|0OfjYob2%<^ zoPYz7uy%ju4IfUx2nG((_<;~T1ubIN29pyl$bI6-UCzS2wx(uU2U0CsoNeYF!Pr=E zVP%7Dv!bV`I?FR4sFGp*!d;*)fufi!k?dUF5dcNJ$LQ>Ax_h=1Qy=uA>H&0*$S%sX(}Y{7jr&qKvkdQWToHFIV>Rpfgj zg&wW64&0lkwi;v*y?iFsEc)4y%m3h5HQugSGy)>A+2HiG^uogcY7v)PfvzW~y+ZR> z-K1srq#r(EoSX7-J(fg&Ac8zLr6f>Dr7Kd;EjReuZ5C#RA1}~0L|7@1hov2KtW*p} z%buaVvc^KwHB?SU$g`;kQ80q>49%`$!DpU+~ zQLOguKc!ZMC*8cWMk#tRBU~v7uW6X}6zSdl%v7ia#p*p>PU+_g7h`v>ih3vEjW+`l z(>C^*WDw%*y|IB?oTr2-#)-ubQHT~}g?Z=KX0wPRqd5x(1}wQtm&m)W*RRu#)7@6B z%-684U*FI=$-yn7#B*Umv33Bxj=ClniO+atLAyV;ODt8;waTt4DuY=F4vTuQbA=c8 zV8Lc;5E}j_?+S(!6R_X9k;1^!x`wt}Ep+0)%51fmB#uo=(Lt1G*}Zj@_2*fSVg#QV zAq9u-4Fn2M$>C(Tigj)>Wsm0G~(&#h6t#)*%m+t)#Vu3tyj|((MCEPvR ztjL}UVp?1aJCovXINQ;6m~V-NRtc8bb|H_=gr?xF>d>vZk9BtGfE%WJuyxt)5W~*A z(6C=xBgl|KToG^`6NSHR`q3=9`vV2dgbUlmQkX5|&gMK&&&Nb(f7MFBrX5fUD~9yB zww-y~w>{v5H-ONj)(B3&Xhh(drw8h$LcUVu=PXT5>n8t32INJjOfP!nNt#Tlo!zm+hlZ}{^U>`AsIYQe zjm*O@mQh;)mB2>J^sUcQ1P%HWvUiQIOG?5w53=43eV}51CGQ;i?jQSPV5m^vu7BEu z*!RAnVr*q*DQ{Z42HF0?sDP}ZmK8Qjs<<39G59^)SD9-z%1oYl;@~GxpW^fQ#5uH!Q=$@rjDXTwP-MqpEt)1L-*I7Nb1h%)~RtcEq4m;I%gp%{g{YtG9CWW z3nO&E80;9HLe2V3J9A9(bYXk~En?=3lm!MFgVJDqOkpC!FPo1U<=eGSAu9@6uguQC zH3gc3oFB(gtp3a1$NR8{`*Q)a^V7i?e7gIju);9XE?V+%+n$J@Xdhlgn*K^IDW?_f zbejm3$}D;PHNKxo@pEU;9GGK{^deqn0^G|cOuaPo7n5|txQnC>+)SL1n{M-sTY1pN z_Q^32D?DzaKYouT79$Hb(xXW5jHS%mC#XogkNYzIs7I|E{P(a+#MR9JUxCzz#%JlS z^w=AFJRG^hLe*}h7l-JgJUv(ym0iKqsH_@EB+Jc#!hy8@?Ea&~$$YD9Nsd;v)?#lI zyu~ajFregRx$(Wak|$S!Q6=5UN~+)bCJ9lgOnO~N;)G|e!id-x3OWd_QmVs}7qTxK zJ&g9>QxqpoS!d`Zk*xv6_mb~gp$kTZ!hPO9&JZ-T&Yl=(=fiLn2#tS@qVhr8ei%8* zc@x3>p@#AoY}0c1CF^RYc_F4kipct@)u&q@){%P76>&D{ zdhbccOJ$0--0Rw;$QAGzmwo)21Y2>7#)n?w=S!UP&?LV5wLm-L4h3>&gn?HYGA69G zSMfO1L+cfSS@-?%U&nJg=L=6eTEfVI8^a;K^r5)bdV`<-2iovs$8!tn*ryF(qvwG` z6+sbgLNSJ%-lG=}67N5YX|QOX)gw|FW(v?*dNCrD&@>3hp_`~9bL(( zu^Win%A;CPyZY3zvaAKyucjf%nHr6{6%A1>Ffc+XRl?fk-Uk4vk}Q701BmU(q2VX9 zFYU!T8;1l1Nvh+J6^1Bem36ZHm>wb|-fBT-7U9D3? zC>Huc#+pH5WMm|^ZbvjsxU6l9DZz9>Qu)@jsj|Rqa#lMZ3N8{)j(NNIsnYL|C+li0 z0y9~m^uBG;+u`b2*LP}(vsY6np{xGGYay%kgsd8vI0k;aTI*Tv+1b4_<9eyZj&QVf zQzXtWJxOzIfi)02RUkN=Hs#X>J#s?uI%k@X!570Lc+pW(pYU(?DZGM4?%9EvEQ z+Kp$Nn{#aiivid*EA9TOOx8QnTRrVk?Y&h+dD>@{!N-7CH`nvgCt!Ps4jJXWPK_ED zua%mKkUR@WZL&PwI1$;DIr4deDUd%OmFzi+zAuVA^xABY54!(?8*a5zz~z$2=n{12 zfYCm)4lSs?!;bf{)%n2)2i1<03=_-p`WKpaVPKC5&+*u`ipJA(c68(^MWKAM2zSXq4KJEF&SB`4;uefSxFYUN*1iD64l;Nh;Je01#-kd-}w9)7* zaH%tTee|?M6Q9T^3X1&&p?i$Ejj8ssvZO`ZZ-AjBF=8&COXSVx#q% ze$Z0^N#a!A+O%kEUcS>`df9Q`f^;8SH9W(VM9Z8#EUgKzw+7&%WAwLc69_>HtQLRT3qo4d<^MYT#*H7z_iKY zMbE)C`S)vsKCIMc<&;=YCe!&(oW*4oDr?(=_73Xa3=rgRL~x_IrdrOn&p&cnx>MvC0n_U}4$+DW=3+(d z79o`*H3`n+-v~V$nd?%)in5ZFbON3u?SZXukFj7>X8Z7NJsS7Rw}&P<{JpOTptbj2 z$&DAjzcl6s<`XB;V&jZruS?bxynXc9#s+)DJKqM%DT=!T(82S>dWf^*>eD4RB zWz;)AU#c)i_wdC$bfwSQwbtg8BC=Yl$g50)GH4J#qlDbVEX{vv~@zE#Vy`rg+T%sn(_*|1WapVO&@Con_bLdP1R7nA%3` zcegXYvy*}i>KOWUiYv#*AndHS1_u2I2>mjOTz}5?JPJAsI=$^f#Brql+&C~3ogF{K zv>sj>=c4A*+MGJ-eMJL4ov zL2{B_%Tivk!p3xxg1x=KcG%Iwe)K#R2AvDU>nGSBZs{?+R$7^TcOc_B$@#D) z6}t>E3wlk_JUvjo4n(DQ3OTrROQ zd<=?qjQicId~$$QRU#c*Ch%c;9GfI4*mYaG%v02xNTvv*Ij!@bsj=s`SE1< z67#efrcClQ;M3HjyrK;Qc%1`h7ym6bWfr(_gXXZx#P`g&UHi!<)X6VoH?vSn=KDqW z=+lga)A1Q{bJ2F!TH+xS|1FPqQhpfWT=^d=ie*c_XnyfrL$pDC6uhv_FuTb-EbVD2 z&UNTMve*CM0)@E|D08~;q zQR;A>;u7uxvo(-f_dw=V_!&67#UTx;y_3p}Ve+Rxox(QlTDk)H@}GA3Wr1kKI?vkZ!@EW%*!d|DP(7+d~1$8QUp~lHjeu`xZY0& z#Fce~7>{U*t4?yQ_ufUNmE%I2F^_^2gk0fc$6D`iDDl4&K`%B9(o$t7>;^7+N>NzC`zB*LGl=qB@psGiv;0-sqZzIT84{}!qw%+vplg8u7l7kXFaHo# zgDdj3=Q>}K;<{%=yC%pa4f%=l&{KM})7e@osxFYonJVlPOHT|04B{dlYKHW;?8ZZx zqD6Gb|32{o)M$`W0{jH(fydtddjnzu(k+JC4hV@VZL4U{c*<6Zbeg5W)%UhJoz-zJ z)zK1td2K@01))QVFZk7$!Ur@pB#Qwm9<`6Jz<20>WQit7tRB#;coYh2zBRNYXBiXW zKRmuaKJHIon(k^B`;LteQukfKy1fd0p9JmPmw0_>_3(pRcDRCA`Znve$l<<2JkNF< zz+u8Sq%w%-DOXeuof)}(0mYVUWgM_pbmMF5(+Zd2%0lV=gNsckxxo|pPXoB^l$I)9 zD2D1Ubb{(jDvybBc z)jI)b{kP$AFd|&+{KQC#u(Cm^8GSTQ*LJaGMb@T!ny4#7ebj}EH|WlhV0+fo#;yRn z*6~xeZ~&O_qF@JpQo*lVq!l?PMf07c|HaX4Ae?SJ&N zU*#XGw(%UF{TiA6vXEj#z`WjUrp%JH&59*ys`RM>gGjLeXrVR^7@V?hr7fbEWB)6r zj+9hZWaB3F153)ao&8MB7n}9Xd|91h?*4;5SKty!U~p%nXqvDCTPro{j%?&{SCH@e zd%5Rx7tUKtY!7M^xe8Hp7k|rGUX^1rlM6v1VBQp#U#^qJ$-M%2^UPjqUHdvD-D`X}JOLUKJqNO}6+iu+%`<)!`Wa8-c86xerj`)2w6vc3_7iUmCzwRidz zCdPoj%>y97?>DT9DSvaJznGNX-jjPSbBF3aKHzO6;^$aanMa*pGja^698u0Pb`iWx6g$-mSW@!n^T*;Vd5gbFwjjRGsCQkZ+n432z#F zFj3HpQ+)*$NG%uH_{Y?McccFbK7QdrHgPZzvpKDH?qbFY%Smc3+3kpuUNKCyWUV7{7XMalGvJywQ!f zzO{hci!{FOdQK@NI=*U!}LxB#3aX-znY0D#Sq=zyZM-wvad^xBl~dXjGk2WpsEsx z^8Y-(-_W1IcduWxiO{T{ix&pd{}k*mf2KjJ1DJ|)=Mb<3MlnEF4kU218`HODOdESD ztBn+1Kx?M{30*nBteQjrV)(k#xO0{52Vo~?&)$NQgZDjK*HWSzoX= zRAqvf$Br^Gq~GAPGBZ&vV9XMqv9a+;$>J(GhuySS(I*GK=%jW{H4dmlXejTWVD_%Gg9 zQ>elHSY5`nSzvyH)AOY^Au&srqmsB9H~p*~8}dK6?pN=nl1NmajLd9=zusp^noTBK z6@E|=TIv6yf-m@3>=@qB(zY`wJ<&onQsk1x;c)-!yV6u1ansrEt-e3m^S?-X6xj-N zL9uY=yZ7^wUmAi|NLN8R77F{|myln=)>A+%C}ReclCL6r=&!XSg{52-4v(axG;{t; zF_4_2YJ*ua#5J6Q;9v-)bQL3+A9Or?Kf+bA*f*(4Zu>%4nxR3PkDz(5kbMcw-y}Hu zZzmlb$M;;Y8}Cxnb%e;iKOOvVvxqm{`2onIs8w(3^3r|xn2pe zlJ?Kvy5ne~%aYXL|5^an+7EJDVj1CYz_$Dm@%a`Fo2XgsY(j_s?PHj$7uBfVAML2u zrN)}B0_fWyZjl}*JPvSpCUao~yS66rW+0DZn|KT24BQj(BOLd+9 zWK={yt(#pq#V8%B?(T!^=Rvq(76*whnmK-dWasam^O3VC0)@@Bw#1}$T7CFGy8Y|S zwl{o)fJEU*g+m5#yD!f*~?Xk@|g7Ggm8Ait`52=?4e)zgTeKi>dEsyIIz15$@D)N zj`{D1OYS!1954!^zo@WK;)`#e>aY!xi}pzg_&+ zywtWlNBa4X0;M}wE9D^si$V>0u6wS6UFdI8ACEg>a)7_{vP`s^7ODU{zt0diYj~6~ zA1CNi+E?4oVK+Pg@C7*jk$o$^Af#DZkpMq@0>=o#`|AI^%XRAyV-%j59wgTy5z z(Ow#H^0nyN2UctmLBsZdmE4puY1RkVx6hE^)43llb60$_NK9ExcH5VGHm@jO)Zs;Q zbbj~uP5t2il&;_ZspoOWYJ?yiUtDH;RQwQY8#patqC79(BA}Hft>FuVYH&wA1Z%Pj z6YM(ceg?!bOk$wtOUy~Lv1@{Yf;PB4!_3$@8>VIoK4tY5RY#PT*?);14TLc9x$9E|;55`|%=eC2&lDV_}lCccR z)$Umni!>trH@X)8FA7)n&eehI>CRPLPP-C8L7ek-@A^qDT}=^S%RwNPS|nVHJZDP1 z42po;BD(TV$@2dtQE@6Awh_Xn&YoZW@aV0(%l8iSI3BRtd9=FM&H31Ia`Zq}g8oGG z*!oG$j9;WbtjDNwKD}F{{#@qVuHSi28m_;Rc>X}k-uptb`hoIn8Hj@O#BU#qz0m!W z11m6kwd?-f%!~vZ`sV{7E*S&zay!IR>`%-P5Ds)+Q@Nkf<(ANL$(gwC*`M*i!oz@< zW{ui2N7A$8%p4k*wQ_4T2q_fUj&5D>*+%$ z`eANilEU+0OO~)9bx9ljwu4KmC59DK87y4?9Grdi>ZVE^O$#0Mxz7Eb6^Xm*_l3kN za7=%M9p3A>2!NWOU4Z>iN)k|-Wj9XC{RnBr{n`LytyJtkjpx{7;^WyTZAapsl^FCF z@}=8M77j+Sd8Z?ok37I1kGDD_7Z7Z+(u0L!PbfuFxZ6cuLI+ z!OuR9>eMCx_m>$5dgm6xBN-$*Au*<7mE zOOzg*Ei>QvkB7$?TxU>a1k_(}+`R`rU#_Q0IF%P|Wx^X`3nRCoNx#tm@!!7Cio$uZ zvEQ@UMA*@H9UUH;2`+uVb-KK0@ zT*_ZhPm_nt8;xc_b9aF%Mj)HzBN4teUXXWr6ROcdo$7T6TB?4A_B*-I-#-#NHKqUQ zY1!wga%1!Dsn55~CFVl?9>s>RQG?&@Z@+= zyi8yG0Lw4TZ?u!1OgnZ<&V+%R>{eu2U(P==Zt|=1LQQd_y?b@PcekI$eQ5SBup;8C zoJT}Bo&Zuu(WLXk+14?BUH7>3_IQbqWtg}mSY^HQLbX$;Yh0_d`xNTFWnf)C-tU?s z;!B;!;NYn0QQEVSxSVzQ9V|te9)iZD4ah~V5o$=*9p&HUa-N^oFz_4(Cb1r zd#=^L1N}IPMXIiMTXK}?8GiCzjHp7bF7S8)WnQP_l5GVAK45q$WPjO|HB_r|RzCA$ zX_(M!u6F~xf`aOWqp1S%M`3D$0n%5_9v(P5Eal6)nPCY8v7vRL$AaLn$x>7czvGl~BX3@JBDZspw7RuY6=;of} z-CrJQD)s%@^u5}vC#zk+Yf`ejRRbW6zTsT~^iB7doduXA@gf_tgTg<*PkMLv-h*~O zl;5!@ocHW@*ScY;MY7ZLKpfh6oFLUO!IpO=_;@kKDEe=2C)+DIZkoou46{f1ie7CC znl6WXG=zcuoA+18p_s%${#z!+e312?#>!_1ODj{Z|<;b$orsQO{szHVd>GZtKKicBB{C){&A^*~llTqNn2l0>hA5~T~ zRor`e;nIThz=8Pw>V4P#lb*rcdM89!q&wvhX0b^<3%YWCKC#L5&4z8{R%;R6bAXfe z=!3uc_?s3>=;%pjWGDWqjial3VfqgLRzjFDmSTAFa@@b+-jKcw;Jn z$vygZA%5N-fT#ZzCv&JfRq0>+nDZ*o^Awrh(DyFUDPJv7Ef@FbckFdA&=xrLfxp5E z!e@x|itoqm#*_%K8r&-)^i7WT4f`P0n4D4_LhAF{C`RR3X!M18cJ`Ms6;d+qplozADr1x;aVD|`pXxIEy`*3_8W(eQ9v^vxO#uXfc<~V4-?45qBTuALpXp+i~i_v~*D#%X+u zq;5|Tl{x7Y-*FNUH;j@#`BqHA-uodr{1lf~GaNIim2mq!UI`&HlUTFPpODV#Z?fw{ zIEOMB>}oKl*+B;{P&NLPm~Re%9qf9%I@w55&jcOxU!p^}g$qjWW=yUntoV_m2Os~A ze|ep6?6V?e(`oiu0>CNTDL$p?v&8*tp!b4H%k7WhZ7ZkbtEaszl*}t(CFOT`Stsr> z(~z#K_j&`pPrlZU5co64jG&LD#!b49dLu^`qMp`+!&gJ#NtwN*EwHwG;gQWeS>CHv z$64T;FD{v{OUUKp zjp3}ZlYwa`g`Jg$Rlf6TsbUbnVjk3U&(+)J3fNdqT7F}e`p+7v`b{r&g61opd2-j_ zR3(5q2+9S13rY!ZdvmlvNb8|uw`=9?6kSQ!2t82;~G&|TecBk8Ancw_}D z^vHPQ0ZtlU?7UR1$kMzs@`mXMZ|WKk^d#KY$DL6za{8PQEI&dx|1D9J{Bf9;3JtN5U&}e<>9)nfnktV8+gNq zsCho@gH!_>*uJSF(Atfpr@N&GDBo}Xbd!@;9NcO7k!t=h$y_Y*nR`UrZJARK@p~H>g+LxNsLXV@ zq#YC3S!{k1vZ0^pC(gQ4B%bq`S54GpkJy_MvVFbg_Mh1!!VdLr#)_ z>P;v(Q(OS^1*&~v=tkNrnG4qQ1Jffv4n9eWn#t%t+TJG^+SBEvFxxLDY~^P9(efd% zb6;M}NTvO4uC&MKIRbyUzcOn5vg>Q4J7`V43wd!m+3``KCZlMQf*%v_+F*|zTPNYv zGhP3)J(;8bPpb_v276?kQ?eBJEa2gq+~dgik79u+q^rEizyi8cHfGRZ7Sy`v5BidI z%JTU`#0w6<(=;-V%5@q_i(X1bdD?~v=XeyAPi$uqI5cqP{!_tWD)pNiR`6YjZk7K9hw)k~4P+hIvelK2*TNP( ze`%dnoN7qcZ2 zT&dw5;miiN2rT17wF5hMvUZIWbL~YD3x_sxI(`d&Z^!AF!pKK=y)pJDiem}7o_)`p zX2M6-_E^mGYasZ)e#?BfTso0*FKXP+3KwA&rgNuyzf3n^SR?R3;vv27R#q-2pE+{^qW^sAe7~7`(nB=wD)0m4vnjSMq(K|mPF{@(%`o8 z5OqaksnjSoSv!kga)Fs~U3sla;@ukhBh1$8C6F(SO0q-2t`mr75v!eN%dCJT!Y9KC zvsf=_QsZa~Gic+LM;gr>cFejYs{ISjEHYh0-!oFd*oF)}R?1m!E4;p?loPR1BHh~< zX_O(|tZG6Vm&iC#of)^?1~kA0hJI(=Bzq=i=$~P@*J=E?5kYxB5(|=flIf~DLCe9z z<2HuA;(@S0I6Fkq!X}9J6tzMPI!@4izVY*bcQ7gIvxdu2|NZQdXImBAOUaS2$XLGf z#gMXa%_I%wGO!j<(2v5`Ez-s#_OvtuwK7d z%h0TPjd4VpUr?N-zAlW?Xc4-)oJJ0qUut;PzUZ7I5a>3Eia8yMrkJK64}Qz!l+#sp z*w4n%+;aAn{0baxEhF0S@+*^+Kbo8do$WGZIkOSL?Z*$V;FLjc2=Qcm zEUbifvM3c(0Pq;;d%#I2(OC}QBe<}SU$`7@y|>;s~eJlU|>(~zqYO`-lQ zY7quQbSiolq+;JA9FZKfR@bh04Nm1-;h9jaHe!f@MpOU}RTSjeDn;gz;%M>bA1x6U z6@tD#zQV7j%)FvFeWhfacq|O-yL5P%{+0ezIo))2_q&g35LM+agOsCwgJ7AVFpL_W z&ldxPhRhV@abpGMPMpb>zr$>MJ`#Ijsz+Eb)8JLCsaY4BGDN)3O}nfPM{P-4bu-57 zOPq_-zrNQ}CSY4#ckw1E`>d` zw+dsbc}^^C&N*hknWA;8QoAdUNgW-KHQf8HD73kzRmfg<)jBx9b~MaX<{Oa%8+_4w z_v4c`>)U>XiY}+qIMW6*{5xOly{eapv3C|3O-SBeNj>78Jug#97=IozSPuyqgf_`I zCp?S^el=xg);B9_cgJ6eup^usev}ltubHX}i-#tEU9IC+=w-Ey{Xo)UUPpm_OPpTJ zS}SJd)sK8cV-u^cxj9Wzex~z zK%iPTxxAa+`f8;AY1$TboVyatT*EAu6_Sn}?+kt1j`!RwW;`ab!6^IKPj=j zEex_gvE)307fQjp*$%}@^H@P!$ah$<*PEEDrg>iUAiK<$)esWo)us@Po(oGJY_)J| z`JtB~u6P`T8fg-#HT-(#xYEcAxVLR>XYDdMK39X^Mf3whG@P}baAYrV+tvWEQ^hX> zE!*DY+Nirr5mnra-yCftcLIkCbAop}%!c$W{jtyA)Vj>xeE6sn(iHAx8$iyjMDh@i zxGvW-Q>Ez>Y_MK;Q`@ywxg3~Ilb+*%d%eD$1 zkpW{GDR|6YXYw<$zQjoYIgNxQugakBCT2uQ4@_ESkWCC&TY*gNwwj_q9p~D#I-nYz zZz);LMCcL&H#;jyLWF+rNu@$)X!LE+($h;)T|@e}xYTIHKBwsegRyUk-gN7@UR|Go zy8S-iJENSJiQXNmagm|^Yl&BFLU+K#M<)v@&LUFj`fga}zU72MS-Rp4ge5&sJ2}=4 z?``=hGmoes;JVe)ZoTE%Yqy+5+(pv%3cWV_T}e07;q-O7%zT*C(hLgWgEJuc$29#o zl;IrG+m(*<-wdnJ3itam6vUdQFLG#4kehuGOz8z}5>~uEyHh}mi=Uaxqm-V$xbXUs z!`z|<$%VF1)3Z{RbERnJkTRE?!QtU;mqIo6Kik&2oc$t}VPj_B(35^S$H}QJxXIgl zU_cQx<~nH2r0u0ksdyfF*l!8BFtYBy7r5M~2;M*8a@}tCgl16|;FeV^<@wD(KMeQC zsM;PKB)exbA8Ywb1{B70;+#648`|aPu9TtIgh{@ zD-_ClZM^)N^8M$AABr5FIdB+bh8xwjetyA2;34Rt$_iP#);nhi#&e2#->c-drVFVT zAEK{C$zpGMhsZ*}}TKUfI+_ooiecFm$7m3)v9 z_~!nh23*O=UGc8FqY6`AgyoIIC&f00h&*XXK2NX@%qb7XA>D$&@`y*m{daF;>&w!$ zL)Ub4Idp$%fd-5m*Nrr5b5VH+$8Z6|j#<7SwCKex83ZPXiw62RY2Rn94&`vdQ`H{~ zkp!%%9TV8am+9rbWa^t1WUF9dSzvXz>T(q~W0M6ZFHU42&pT!{&vW*Z~6aXGlvJq`H;z+0i>BEqrFS4d&9;kR80_4#Eeb@wwQ*J?6E^SWZm6 z`>{-_PX}09;OUQm?JC*0^uqYY?9yk+_?Gb!M9*GoBeB{i^AZ0*E=yVA%sA53Q5)bt z9CHBk4>n*{TgHn7*nSx7Sqio+1UXNC%7V&|{LfkVzr7}JMV_%xs2!;3PyThx z?A!o)Xt}1}DV+GVRdy;^i8~G3BwWc>RDjl>6lsb`8Mdqy2kP`vi^uNRHhugMb>>Rp ziGyT&etBfswFH}ntVK1O!1A%vcn&rCwx~hl#`oNyrNFJe80ES=J9=}1VPQR+PT5HT zYpafQVvhP}Kw7%raq|rVytl?0=~wIH51PM`$y0OP;j$rzNVE1LdT<6S@^zv~!_vSf zl>Riz(Z(@|IxRcpJ`r`>?33`vmcCs;)5_w=7&nX)3f`{!>eu{0J6$r-LS&uswo&7i z$x1h3>f~obE$eHR<)uxIj!-TB`iPL(7-TS>Y5l}eICf2N>OvehzoKV6&%oPO^?c0{ ztptxO>6~148rVR2zEO>>9h*A8;JHm{uJvT#dN@vn8P1JE zFKCMu9WZb;Z}2dhNW7IZHfLK%B!zBgI&MrBX8la1qVfutNT{Emwq0LPcx9`7Y@*d> z=6YH@`tcr`^>9de6yR`$7u=d0hwcyz+RoBOW5x&g`V`A$QyQF#TqQU2!prE{5hexY z2@l;)?7tPX&d1(}NJR}v29n60nxHdIfjEjkU@9C)ZuyiuBxT(RCa8@IB zeNxY5Y=YcS8X7)hw@dCnx(06+a0)dVw%@Fs+$=59A>C6gAZLcO8}2^oMS1yt4-Q%N z|HzaN- zOlSB~x}wKpWnuZmasdpeq{|?UkG&7?zd;c>jqP`LEQ3k$vd9S`d zkOS-DSj8IboezC0>w*X^#FN&_Os$_Vt|grcQbuw;4dr^XR42j1rL4E@iRtwkdfujH ze+LXorsD;7SMnn|rtlu1zc7Ej&Q^Zg7OOza9`{aKV8PO|Lc@c%kr*7JP)mpC@DnYSSks=!Nj8!5IL>}o%O3`*Cr_kgpB(NN?D~FI{Mh7;WWW&La*6k)iN^Pt zSQq{}6GHb-u7h}e3V!qh&7-;Z^{|VDaFxqXw>4WI`(GfTa4XCgR;9+50(V^}Yvbj< znCgtDKmM5!7;WE8%MLHg@o5?NMmodu{GvrJVt_=$q8z?_!(hTUp~-PZld4J^<(`So zqiQM!;rwv4lVKW3saXGuOO(0nfY?I*(HoftSxqF9B9o?^Iy!QuWrkAK#BR!1A0bMV}}=;07I z{m~&04-yPPvUg5lRsv&X3^Lw|Gy_<10ILei>iP1e+V7iH7)V{ISn)K;#s9d@r>hkCZ&4)P_e zWO#N7TXZ*}u}|R!6q*iLNd80_LcQ3ycmMqOySha6uKLu^u9+|bJdV)^`okJg#19*wI%CIzodP_>LB&)M7)DCBn2=Q>V6zBX3g`+TBoT&<@RS- zYFbv!k*2=X$Bkz>8Zr4J-|!x&2&jPKs)6gr*@!r-U#{$YbI>ZbxDLO>CEMIA=!$I% zNjR&aooX6k4>2B$lDe7Ouq^v??bu!qJNY}OfT}IZa~yn3Bh+X$l;K*|$8gjdZRo3^ zV%K~ZM^WFC2KdZ{1&^yuY~Zrr=#g?N9&fA*rz;<%L$S>z+K^Sr_S4p(WA?LRfKDK|Jj+pA%Qm+u#JQD$TYmN89Hi5Ux5se5( zQ;u&TdpKs#Q~#M0=aSIx{IUHXnD+AZVppJy~dWz!)GOZsLu=v7r1>4n%# zy7|acu5eQglg6{gW#{+IndPfapX~4%r#W`Hm|Og)avmya0oYDt3p6+!6HE#fnjG17 zjBG(xXgR7C_rcx1+AsH3Wn#>;Z)ipr^gMDHb)=V*lTo^&VXq$4cHAFKJZuxZC@BU6 zIiG}|xSp8cyoFh|55dLs?Dspbv`G2Q;L0#%dh!$dgP+hD2pTJA5+G+=;LoOu8aGDI zh5_pyb#Gsxj0E;Kv%wV3xdXrz>#ZK4p{OHyUHWMr?gb=0f3w+HQ;?J|eiWJZ2zxj> zd9vh5=)iziv!F`7Ah7(`WIokbx@p~D!r_>zy4faK336QRUbol%LoF#M_eb_{Zprb+ z_13Q>@+q8GFl2IhProjC*Ot=icLyS|7veXm^x2@X=__T6J!I__Vrymi#-asYL3ypE z{*lIxx`FDjHtUo% z?^()8K3N&gyNyTj<@P%Eo$t}AG?szW>0r~SBV}*N)s$S=`+=vS(PpmUY||g7Y7K8c zjXmk#H`M#aKuwYrVt@GbA+gCeJ((`daVyJDJZlRNW@Uv5&C#(Ff;vM(&VEcbBc?(w zR9{gT>M4^O?vWtjF#5~a$JT|7Z^@t1Off7$OD{$`oHp?v`dJjd=__aNKlIhb=18xP zi%I^&!><2^YvJn^v#pQuyPwGHXRn!D4#?ou+k5ZAZeeIx&9KFTI2m1n9Wc@6N+?wO60t(J>HB{xn!+Wd8MzKIxsNj%jb+ zDlGlPj>s;Qcn}ph5uxCWG66=C#=dX~=H(zT6#J+^G4q(K zq8ZvM+pN-&WYZFOv0_O1k4fRH$>OUaqsFUY+xx1URtK{Fp9wX{s)-f%W=}YU?B@0rL&6(l}k^*t> zfx8i4BJXa7k`+Rw2KWbz)C){DYd+?tfHbtl(A8b7sGN^yN@_ymwv>^y^iFt%+JPnX zhEb{JR8IwAZeXS)SAQ9Ilka!~c7ZPeQHi}azCzrlzCD7>hWWgvw59GZ>yq0%JwvDy zh`LzS;*inpN&dz|1i*0Uj2OD7w+{d8W1#o9QN;3F(0fl3_v)BOm`5%)L>>ER%G_hC z8{KZ=W3|lr60g59es9YlIu=s#L-`=%I=RIyYd2Ov)#3Kf(D<{GHucly*2v%plUW4J02s>i8`D?%xuOdIOI=m4CVOwfM9>6PbB3 zYzaERI#7RaVWx#e-&EXTjpN*q{PP7X@o6Q04_(5wrDG>?^Y2gk&v>|PYXf!L^11ht z6+TzDoBc>V`F7^pl!8Q>h470m?{e_F%&Qe#%w2YqP8ACuHiQ|n`Mf0v!cJL=O=)paBFr6jewHHGnb)IX~u z!!zshr@1~S%|kzkzsfu+?BL@P)mp@NCfefoI%KT7<&Wy3ns*TWfY9!vq9;~M-`YLN zWy=@6B#rP5ba*~C^SZ8pyF1mC(Feaeza_)H>Bou#)v8*B?oePCX))O{8o*-;-!xFT zIB$ciuvqFBD!2%GZT@})sOH*2JX`5Tb&Ov3c0qY~m$Thit~D+@6(ne{=QJdgLd9kW zwZhJd11egZ(7E}zQ9-MM-S!hcH}ku)ktg7(hT=ZgVmGeV*KQhPi)LnmrucLbdm zJvltop7+UbPDE>{kSyK1P{4LY#1Pe@^yRL9|H>B8+nhOg^79OSK^1=K!mo0Jn5%-n zLWW!Kg}v{4>n9qfp%vlx&=E9^u54ihyR{nM?VBOIHwo`9Fy<~6Go|kGt3@bM zZ2+iZ*w`$kF6ns2#aQGcd<;efCjPwLyu0f+AFMFYHh>~O{?(o@h7{@|w7c3T^$f8~ zqO0nY#G;cW>yWotKLs-fF1}tOZ%}l7M>d~G6YgXmqKKM(GG>xBVk=#H=HJ^B4;P87 zTX(W_=Frddg;loJmo&1mX}Lz1qe>L-bUqn!zwYGt>bAu!W91kswUf_de}fvix%Ja- zlCuy04WfOnY|Y28F=MV<+ zpgLvc?Ht;68tn9_K1nY_VT3!u-9syMd?=e-EpB;6xj3}0_hY+)diKpZsj8G+Y7c(* z6Y}(Se$C97DOLEW7K7y-TQ6LVFo;m6-71!mv>urvu z`J5GxwOBG4xzQ`RG_bO(p5M4j;E9_TOvQ%Y*L(mcUTCBHMt&l+OY{-Entk0IAC(E% z$z4{Pe7#(^Vx&|{zExOXRvJjR8ARtuUvI2;S(Z@ScGi1hjANS!!onjLfJ^76LmE7yUFX zEA3s!;e~#hwCHVB0YX6OpL-u{roV_i3*H=1%ybyAZ5-rtZfoInp9Ka-Z`^E9bY*Mq zhYao*>Ff-&Dy~M~ecGy*3IaW&)sZ+8e{RUuDCo(4-rau~l~TW0xa}12>bYIo{*$CH zkp2`^gQT*4zHg0oGZr`A9V}OGUdEn3S#QpF;<{yX?aG%*AQwd%eo>p2_li63s`!}s zlD_?{-PXs&L9x`MZ0+Hg?~&)MGNSsZ;|0zu=3y?x;WDEZ4R2WJCM7Owr~tJ-qan9- zR_C4pm%xFW1By`)ampP`L4X3NI+!*x@&0iW?Oaf(y2X^w<%&#MH6xbJiUz!t9Z&ucRII=s23%>_?%*Ed8{@mZ>?P37L%f&Gta zb1tH9z;utbq}nu?^@4<;+R2FhjJB%vvuO8Mp~O3Uc3`JWCjB(}$d97x(>_vrIxZ=( zaY5L`XM)hApH7{s zuUep3C)(1pkO7xR88equ2@YdZ97ssKR*t{IrrzTAO>Ln`EgNZr!9f{H#iUH2mc!$= zj+3bdS5_vFEVu}JLEkB?kNxIW>bUMQq)e9Q$1lWQ?RlEdov@#1+hN$Fwm-&@ysSZIR0%`oKbaQV}6#|yT{wv?J0f)#=rGoYPk05>m5z%vsv zWjVS}T{LvCMiIM|`cm%d12w%pfit;Te)sdQKb+4q$`8iMc3yT=#gH&<)|~w}>@X~^ z4OLm66g*&WrGNJH-96XwE|Hlbp?(o7!m-wiC~q@MQz*s<=%wDUBnGZsaa0?Rq@>rg zcr@FmD?TXa*W^>ZS(#uZ-d~hTdp{GmdO;|Cu*%wZk=zMXIM*T^G0_=lL2G5DkwEz> zN0iO(7A9LI0z}=i$=bau3wUK8HHSmsidMYU>YQiuUb97nm#n2{cO5Bj-Wc}DGo|L{ z8%Lf(?zs|!bkC*^I@x?sme+vG8P9&PSwAqEHdcN64J5tp=?}3u?9;=x2)cdg3Up{j z{l_daG^8(BFk`AFJy7o9PJFTt)N@OY@-iwlR*@lkCs=w76u4f_zwU5l z{}C4EvLMCR+)64a$$N@PLM9%UTfx$D`042)Zfza}KK-3xwYRZ5>zwgZeI4+msNo^| zH>+QsMp(`GW%%9aQX(&AnXqO9tQM$c<~V+pv)zS1&TXU}Vcx!6Vp??GJI0T-qxPa$ z|0{RUZG_R5Gwa;_!MB4|zW0w78!%6QQF4tgrh-Lv2(M#D*Cfg7O zanDOK|BI^^4vJ<6ygCyDCeKHg4Yn#+W*=d$ zLP;l+q%NSPhX#Q5Xs5Y@4`CF?Z0^K6y>9L<#d$0&#p_1q8%WH zuk`8iQp%j;lW?7PMQMK283~%hz*}d`e%sKi&OUn__*jO6OXK#6@KgSKzPrVxhO3$E z{olW`dL+t-^sh?tRd$^6_;)V=WbZxm>frp9s|aW3*|;B*ByWgP(of7v{Mc|UYGSR6Ac@-{SY|QRl2&o)A z8O=Z5$Da7c?ZeN*t_O*oZSdwkUU(drQnjjudv_Fz_!r09K%q#cf!w-aTn=vP+O0m1 z5#HM!bGGyy%e!~2Du#y7xT*-)?02CEa65FNLH3|Dl?q*|8ymhpM}f>^PyZl29flYn(>?oJr9&!l{V1>py!my$gl(YY0Sc?V#V zzS36fwu0_9+8x`;?{17gYJli5%Vqi~nM4~UDB}{fRNfj}hd5F+V-PwxxK)d&X-5$( z8>B;dk)GidT1;F~h26|l)@}gG_^PSa7TZmTXn}SXOe3q&^~IP2wQ5VTW5%HE+2J+6 zK)SO007ZOZ_A+tgk(g<1JB@E1ePNG}d!>R%;~f3fB#?rB(A;w9Rw+kRmzUf=qel_k zYwLppMYyAzn`Fy!2bd}z3A%f-K3jp-@tOKk>Gf_tYwT$$Aeh&8eM@!PN+3o(G^F{3 zT4Wd2Zl#P%Td75Gto)s5!wfh+TSESYxEWW3ArNBG4kS&|{hwO5|!8CWJa@XWn zgT7NKtOw%(6T`tjIOD-Aau>3nXerk-F1=oA(9OJrLC|jx2j?PLv)*`cci7(Fn19&< zJ^SOK!O$<^)0Tdn4~|WHV>f|s)cS2(|u24Zg5v?JsY!EK2#!^=i`%p9TZ%pJ>CJ znI(VOOXcC;rt^(3Cb+qiMF3JO+k`ro9fDUvzH!W4ON~>=r5Y}=FKH-1-FINOlO~V( zejlsiE=+F|`}|EFnm*k|1V677PAJK-7%OSS$%rz|EAK#3;%#dz<({ue?Jd4=%GWP* zxtQKB?>_kWaV=0$=CJDuG1<8>wSA?3Wy4xo@S*`0T2t$JW{UUe?wY(^$=fdYT!mFw zoS$nT==l1?#}FtCKADPb@%Q|RBc5y|aD>XMceRRBtUf!?8gpUHjy2t9fNnoV3)tia%?rbJahTF!Tt4lEUu@=<{_Fj@)UhMk9(cFZqB? zxXf`jKe;sU&8xD@|H_bQagAj=)3vE&CiN+k&v&-g-nDx}{xU&|5vxoICUtlvGJPRR zIhwN0=<8x;Wmr?+gDUq-Qez*G&q^jrh3-7^2>NM` zqORDNhnyO|YE%@8oq2xGA>y*?k2-&_B$-FThqI9MEu9FRT21kCW{%t@8aOT-<=(id zkB)U$)&An}ioVq6;CFQpd!9HvZH0a=yxY=HQ<$C>YXb>fUXUtt%_UFS-Ks#nV9lyB zwXCQLMy&;6111BJp^E#oYePTbZQ8YoXrMU+w=X%06{v#rx>_OXjh0uiqA5s`RDp=C znkV}o5R1JSp?WP$gW^=%(?V5e_>_V1M5|xAZpL;)O&KKoX0dfauG-MjOGn!}tps#t z?Ff>J*f%)R#wa&RR`cq#-m?bUOj`ChSN+EbH$sptRC~TZecg1&9R&O^Kbmth-zz1G zo=if;@vNMv?*YYZUUWMefn*-U!}bi5ID&6qKO@G6{_#VsxEZYf867ajEtPj@qj=>6 zIybj1E;~W~VOw|uKuqxIFDtec_5JXiLvkRa_m}vSS#a1V~tFBq`F49&LP=i zH(_qK;gg=Ep#3-R;d1B96(66*z31?0y3pXj=INXRD~cWKeFo9Bz1z6QUM z`gvY1;TH_(yxEOT4k}(7t@nFexh^W3Qw;h(-em1syo6j!Jm(KwiBmB&Iy(~IdTgahBD?$-{*TksoYY%9n5BZpwo!E zx+Lx0&N~0l1J}a(2p#;{Ln@eQ@~Do9W3-O}sHfC*-rN!8^cYg?dfM6AqxsroiH6OB zpXZKPxk-MGkf zM_XO~c>M!ePD3M)nXb~&thg0AEP9N^ulqUa^r-shV$auZ)NS<q-w&Qav0l6KuN-HcCUb$NcYT%t1bxkd`Z8{d>pj6^WCSt5BI=buLSTqE0K_^SNF7 z7gYzGhU2vgsitOEKGh_LGTKzuHJWhkHFrRbuf;g}!ToaK)_U4P$MW_~ ziFEnR;4EKh1E5<|7*p$u0`^f_sc(N122mc`J%jPtmg*3WXj^YGJqPQ#M;nwRlA4cs z?lokL6ee4F+1Nt;e!9j<3M?X?G93MSho}+Y08i4^qN?I#qMB0~zH0F4T9}!B_Yn78o^6n|@2s+AA*X_h^oH=H;tnx{YD@~}|L@1Bm%NBffT?qYeo>VZ2beO5;~ z<1fqG5xl!5+9y3ma*E`n4}9CS?*p2x)5|`s0;LHWkTK5dbN5?`95A}QPV%Ny??|A4 zx;coW2^8gYNbYu7-tJ|1GU>JMbsHV z+52s=n{6Ho1&yuQud>dbBC065Ozz`}C=;XaC$hVaSH7y}W#y%_)cwL*QJ?NipBgDMB zH_#843+iVvuvX6fHZMnp8g+EeMTLJN=Qw?BG|xREGa7TfJagq$RP25TOih<=rCS$aGa;*!Wi`9g>GQiB4oq@M z)NTy##wPdXPPAtf%|f=N#wR58^w-uV?XR80P7k!6@tIO6 zYpv!zQ}=}}XgyugvVfwdw!V>5_SQE`-7i`8^XNm7l~d(ze4A0?y!*k8V}{A5HUJgE#XuDlfKv9U&)1-sfRstU$%-;A*HbcSMR0vvOugG#FJC)q{YIJ~cu9)8 zae)2xsyrv(j7rkNYInDyZD^Z{{0`ykz)Tn0^o0Y*usmx>MJbgf zpH|%gU2>weniaepCF_H)Nn7!+)@UDs&$ZVblh zq^Ey?k1IdD>;XDvutGS3rUT?#`_ZQqV4EAj#2d(JxO-O0*52=r;jmS1wOXV1Y9B9J z4V@g4pe@{*o{^zx;Wg%H`oSblioJiM0=o@WZcNQwj&JU;%tnFEhGc* zPS06rkE*L4egxbuAXeB_#kDzMtvHeRvVxTU$=@T25B94!aom3nsQSo%wR+n7^{#3z ziND1u#fmgZFEDZ+(W0z(p0t(4iWNqy!JmAaU#fn*%8qB_-+TT3lW1dx9fR;079XYd zd10xGSWmnXaw$UXbFN;rLqXzQj%A;pRUpsG^5rCVOn!M2Vm$|-0|)G>nLiyJ zP?Kn%SycxeRe@s5#zzEjX}8+igzBCqL2eCky3MIMz9O>HQd%$ldH3vv2PwbJ;R{N5 zmwkqg1{AZIoKbwaoglKFHxhYuqg)cFoD$4@U^#pVdD31x4VYD?l?J#Ko*wCqlSA zTr!R{+yf8H(&eJ9_@KNb!3`CTYAv#=&5#e)1&2ENI<&Ol2Gy4S`t{(}z^6(xzMQ+8 z2!!Ueb=YT%SFZ^15S4NtD8LoMA>UTV*K=6-&vZKK7>@9+)sSSguX0X_81~7nP`~iH zD_TVYs2k$VZEueK=8lN%%{y?L=USe-&g(*kAd$r_vbZ8)92KR`#pvUMPYagaRHW=u zXBwn_h|cWz%aJhyiO1U**Gdv2Y-&P9sYfSdNIa`XlAI}`Loxg9v`ikLIE)Hcw7EE^ z6-OocP&6HT)_0@5w`On^_}4(uJQZA^oEu6*Yp283X497QF|HL>FD1z{8GE&1IGi)<9#6%oRhwZbXt+x5522zJng;Xg zpB8PukoXklPLK|aZoO)MKe;!$ly$T1dk@FkF+?(@*TnEEKEvUO8 zP#vI1x%ZL3+PsohaT6)`BRlY}?~B7q_^WLP-@R&hXn>0Kt~(#{4FBHcp`o>ltLE0()S<_O9AUO)xj_f?=ZeDZ_3N2a zbqR&GfuQvjd~;@O!ZdS~yW@yd7*bw>6}?x`hf2h~f^2PJ_h73t@aQwK<0n0Z&$yR_ zZ$TldKrLyFzM8rgQ_ZFTwJ+-O3sJb5;bn+0($s#yc|8)~T|PbBh?Y+*=J1xg(t0PRKws`e#h zTWz}}7FkLiZ@dTV?emN~9g?P<=bgfq2q8_YHw%qi9CjF27EqeBZGRWKjwKq&9z;Mq zD*K#81x54kCsjK7P}Z0+!@bqyEVNJKe5-8U!pXA5BGcJT71fRz>AIkwLh2rCM&%uVXYf23nVagLMnPJRxL8R3$Sb)dtrtGf!UdcgjtqkM8qgaC*xc25l zHBP9(AboJ32fTk>W0ooYYjzY$U?D4ckv}e58Yr+8eHR}*Q4cIG94hNwElhjH z{_NSa&DFO#G%Bfq0odVnHbz;&n(7QY6=x$OT}SGYJ8K2_FTOwen}xG3Nb8VlOKt!R zCngCW1g#hAOQgJUKFU>gBWKNtHs`=0QCV`7U+=<+*nW10z|{3?{?769Ck`$;KK z4FH2vYKe)FwgS5i-bC@?ln1j^p=H$Jgr$;aef91SOU-T+dH=(QPz z5n|(&-*1_dijG|bl!IIQ{bHU}mRfKSfw#!`qPKR$T|W`;8KBVE{#(vc4k?iC;WA#C z^*ae#3lyo=i~Iszz?I2(&OIC%a)W;mv(!pUMc%FJU$!j8c11dI`~8(S*Na<8U-#b} zvnRIhRtFKLO5b>86q}c&ogZ&am2(-q5LKDsWNf4sbWa>7wLKKNIY;)kHQ)WYve>+)YqU<3>KIGqs2eP21OO_$%cl>Sce zrGZnkJ8tJ6SFy38QdCis8XfqV*eJDjc#TF3_nvT$4S{dmHm2pWTTPDUNS;@i^0;j~ zXF^|;pRp6+d;*5^lJY4yV<~U36K)81S$bcf%ETRYt)&Omx!$ju*VNRYEARQ)e2~En znM$N9Rx>u|1C*4sHs(9MgPAU(#|bu#UJGY;-P=FBuWW@Bygi$QR)En)%nZzIKuSw! zpd_K;!|JEp-24`8UG&nMvK9H8#+iET=~tHj)R+NyJKVa&k|yVJd9T49Z;}dvwUwGR zJyh_R$|%uzRBUGGf-ZJG^2Y7bQr{Bl8>f%ot97fD-yuV@PA}WV_b?U_z3eM35Rw<4 zuhp_}*~x;;!@94JUXGqr1i#zJpmjP@?c|=s-Q7e2mp)YOoO|LYhlAXHmo49#IC!sH zVRJOQ74b9k?oacNEOR{r3)1ni)MDos(Fh7fV^sJ|5Q1D1*}uO8%cBaODf z-!cqO+?4@#E$>0TDOs~@KK!{NY}vOGU$L}w@z{PSKdv2pv9^YEwg z;LQPp>Og#b-p%EG--Mzf&Bc{%_eDTFx}Rw=wrMotbnH*7o&Wtej-LK~X>ZnFc`N_h zyZwaqr+|$o-o#Z=b67J4h#Bqa;RDscPO0ni{g1uc6|W_7*o{l93~hpUko|;*cY2eh z#6I>WCnj8p(w<4?_$S;bUk3a(u#LFn2Mn8+++VD7i+x?7jfFF1mU5JT0T}fNKWKB~ z9RlAEJ{)!W+9hB#M|tLthW`b_sek{;4nx z`EQEsZI-Cl;&uoA`mO!Ps=7D7*+mx{-)0>Adq=qS1xQ05Bx*EVmM07fqzj8S0F)YU zTNqOCPZi_;>~{}*`Dz|ue@q^FqgP}oCiK7O-R!Pd@DK*C{eN?$WVQUbywURHIEy<* z3F@~fQCIq^51H+rWpk(>R=ynGH$lPdje^&oTbv(;LGJ zWzt#3>S~3xYh(HCVR5~&o`|Ha9_}koDfi>)H1^GFL)-fz@6$xC$-CSe;>zu1|B62G-$(Mx^K7SkhHTbf|KrjBW6uA_mHiLl z{4F&ezyi7J*oTCKQ(aSE*#Fr9_Itdsm;5og(ArcD7;XP7Rg_YEe(-V8sek@JFAs{} zLf#}v2?E~0=@`JAdaPJYSQx4OS^4kWnyV)cmWx+q-l(@dc87K>K$xw+YxUroo-4L- z+xPy*H50vN(q1-IT9@|}AjvfJ=%?tY;Q`agzZQ$|Ia?aPUb#2$iRzB^1 ze4Ff5UBLG@p2=p*i|{4D5L#2VGfiSUVu^6vI~1J!YP#(M97=UKy~y3o<&Ns^zC4OP z#L8&~148oT5Zbmmj5SN>DsK(5I?bY1+wlDq$L7?XZX)OdT5}C!-4I9k)hd|uGg#$U7#^4!>j{K>h?C7BvU1tWK$<}q znN_P*jQ441F9g2+muK03o}7n`zVewfa&$63wE|c!1HffH1%2C0tqKkBNHT&60On>b z8=4mgx(R#CQ0X}b)_*pRO{fah%ZSyL{~spte?I(w`^tM;mWRd0JkFE%AI1_dX{O25 z9o&Tc=G<&|1Ak{j2c!s6ZiL^9fEb^ooM*%`2q5|BSkU zIL&6&cWf|BRa@cW2lPJw9mdy*yOl3Me|Q?S*bumk6zn5SDM0%UnKFD+buzdfQDC~dy_bxjS1l;pVRl4`L zPXEF#kWqN98{lHxZAHf#$e*c+x)@HzP=g ztE)hA^y49CWQ^ZIaY^y?8G-to<2P2YXlA+dZ`=_7Siqr!cMO$RTHJ+7JA8LkOmeTyM zGRFTS(D?K5tI8EMvmK$>q!IzM-@gY+ojUriE^psPm5#KqrIKaF3u`B%2x78|a`p#c zAh~;nuYfJlGjzq>?DX)^?Jm5q23X}A{OzvG>a8L*xWUw=9b#2HfAIgyh5pNcfKu}( zo3C-TrrAUW!Tg|{aWr;S#jfFP_-)?JNOEkudSrkmFip4)!*+&Pk0lUw<$u-o(;>D> zF08%$I_m_<1KkCS^!?14>N!RK&hz$F=@OfjzQ8ZNd|s8>s?OvWbq8Hdb3^yH1RuX3 zr*BK^HkcM4&aG<))lqHsU;NI)6(ne{nX>%+RG@Om{^jjG}}Y>npHZ;i73oe%=1qo zy0*4$k7;T8nLb}5An??X01 z8(307%EwiKf)nF^V^hERG?ilhhV#1U?A8u)gjeT(l5Xn@i&Pv<9DZNWKfe@`FjUpUte*7o)OVEeUhEZ$d#Olp^uIyUdG(ReB(-U}Upt!oKQ_i*-U@P?=jqWJ zM_EOS@u!Y6+H7dVZNBe$3h_P8-T3dHI>S$eP1*e^9{l_|cDnwu3=3xv z_wR*yh2s9f-hXKsA2t4Lz(C{JP^KIk-ud{F#vjFo@ov}|P7X)tLm`1bw>k31|+<;Ojst$gLD&Qe5jtxdmt!C~zF3ViWI zI^wq1u{o80z#jt6{r_JC9BarseR+9#XFyfHyKae)J*Z#UVfr6lR#iH0jEr_{(F=Ame+q0aQ2uJ#mt*Zb>oh7L_qD8-R`ktc?#VmlZpQhnCI1{ zzo(nrOA2cLgI1$ewweBeT-*V#CcVzQPp%08u4#V}dPpt`G2RidD2+VZR!~6!TGq+t z`RunW{%3407x{B{kt58*$Ti`K5{vwJzS3Mo;(v$eeShQ1@eXQDbZsoJ{|}bOyf5B$ zxDShN{s)%l=AUY0&_A#||ByNEWBt4-n*S=NuYEtw|G+Bwh}#)+jPA3ex~2JT#9e zkc(xEg{)S4cF*6KY2bV-Gd$0AFlF&h0(T*sFW;MO(ariDV42&$n)YzbQ!y^PNVMcF zeY4$x->G>tUV-!K;78_!p9T!dzBn{K?Xj#oR?cK{^jf-zhQ-Fl#{Te}_e;|*Ot$@q zw`b#VQ%SB7u?Z{Pn0$dnk@}`F-J_m z|Gali<+FkZ^UiFeg2nl%=QLW(6Z^;$eE^V`?>)skH}qXa?1zxw@G)Ho4&wPf>E$B$ z?N&&MR{6JX4zP??GSVrp^m=W-(&E&r!)eIT)(Q+^Aya0Co~>2Ad_b0;nc>4Zf8J7Z z=`!Tke+za>o%Hi@f^iaH*a}~6IM!^btqZsLA#nf&^f4hHS$ybl;*vUy(q5StcZ?&y z^u3Xy5$*O}`xN91uJtb?@?N%VF{!>>HPopn2Rghlrg$}X|FK#r!nWyl+$8Gda^RPZ zDjNkSr&d$A217Yb8CU${xP;uqpS~eAFqV<8Iy@o`O6YLzC;SLu7I1~N;3eAr;bdU< zOeyYef#|s66`JMRB%_Q6FvMep_{5)9K~>J==4Q&(TG`(fA93C?Ugg>_<)9p{;bPnJ zCe`C6nN~i{;@pyAzvtN3`CTd&lr zO{&P(jq2En%Xf7-C*sXNzhI>2c z=WOk3$hd?OHlWQ^WDA2W%^w~ug=-PD!&~6AU-{iz7jg_PF|`vb?*=@JGu<|9)R;%B^r`#iMAaL6 z`)I2j<3V4#EAQiZ9`D51+3qxYk6Rp^Rw@dB)r7>pVH5hdLY+E3)J2{>ra4v zrKGtngNi)5#`ylyj@f>@D=cV-UoHFH^~S|6+gwzo;hQ0n6bFQdBl>(=?_vrClh5n> z@useqo<`;d2X{uy+57O^+p#2HiHArfwQ4ZVZ=`r_b_@26L1lY!qH)rfL+W&yq^q(x z8ceQ0?e|)8h-@YG==;kddFFXXaSin$tBA? zO8;+#zT~z)QF@6xVG-#Dg3*xn#t*Nw>6cz{` z9l&K}<-|yyPgI|@91I-~2*jmQG&Ty~1{kphc-UmjyG%|dgg&=?jlI(Motu|lB5~$G z%XYTmV~&CA(O)W7e&kc6Q9R5M$Mj6A@6cKxHE%`fYDzge+Ih7@>A66T4Iv`L007^9 zXgyW>g{f-t=pL)GhG@&=;{G-Xv{>X9c3pnc3Nyn?jwF7(9tQCe=*`?eoa`VmD=9F< zu!AP02cZPk*xs}@$MvC}PvxmIc>Pe@*zcJm;;0;2X=x;W*ZS2_ieqa6SGw;s^=A~z zG$&}w*AM%l35;jos_w>EcT2`>w_+7AYrgS2=p|xzU+8Lm|C}hvtiCUI#t2s*Ov9`Y zwK-|_a}ddO-oj~E;>F?Hw``qW;VZF;B=omB;&=Mb6fx%W2~7qW4RMN{L{Zm;g>l|* z8|R|`v|f7u?iDO}U3IHyJU^3%51scoQ75UpIdE{v+@} zKkC%JbbBu8XdX+BEi?ocd8q$9AzGz6OcY-G++4xWO<$i=x-DBnIGUvn#_{?3{!+9B z-8s{ohA8(mR|fzaUR_DJ0!+ZCHOj z39v1|tIw`At?~l7hTmLx@bU~HC3+<2Fej%hQB)vkKc>?c&&z2$;8>FZJ=63%Jr%ZP zq4h@`Z>GFl$lpqZd~<(TW|chd{HIljJw&R&(tWmZX-Gd$89i{T4aD+zFY@fUVUs~T zKtGm?I<{Q1g@xa=%UJoxS{er9)Azn35|S!F_o=Rx}enarkr{vuHk{8@oO zw9tZ>H}ph&NXwH%c-^>^PDu5BLLEci(%W5m4_1;4Tr^Y<7MJa3XUjJBmkXJyx`S40 za~b7-D53DZ%yB}!6P@DA^R2a@tkW*d>=-J9?~;)>34b(yIXLN=W^3`?$6CudB>QV~ z*$UNF=|Yb4jerVl&8NqC@9t6@_=n9HoQ%rO-}*(!7$3fVU%L3ctj1iEc?o%EnDNbW zjDNV=9{)^Ri$}BgDHD%YSdHz3`D?Y1>7C1Db^^} z;6_TN9_tu`tEPf@-IvE*EWYEYSNe5v zgEcjCr1PFZxbrIx``^!gD18;LC-Zzx517NE%}^Dpfp$^v$_WmbI`pXos@^ff+_=@C zk=6b0(XA750612oYr4fjf84l1_*kxMRBR?+gvm6j!#0xfPQBkA_vgALsj1aF7`pn2 z66nY$c@>&<&3!F8O|%u6`hFm&&UqV0a=pD_iT?uk5hG*CwnxEe)VlX-z7=j&IwD?< zoL=SnUst>hNEfJ{t9bx8o>VqC6V=aqZ~p8~Dd{HPfHV|5kbxL+3oo&TOR1krd2pt- z_^}TWEL&?kKk_E0;9};W>@p$-zceET;Tv@Qwhj1H*WrC%sZG3Ii572Of;R^mJRGP6 zks_W%uzDJ3Tch(ef1S|~-tWx)IUTR0uQnYek@$+VVbN|IK5h#_&j-Z+aaxw?)Y{al zujpE4ILl#{l;0-)e^v?q@ees0e`iF@7qHGeeX(fP;|S)6R(8z6JJKfWFvc54)WWW0 z5pb28cZ3dUXX@NbTFzGahoPvU-b;cdt{syJ{amEG8`~E>ODg@e!kET(z;^I&6Np z**v#t->H3;+Y>&RbO~%3Z2RzWUKk^QP5+hNu% zeXfB<$J>5tIEGw|u4T_cf^h=3dcl`yAG-v-TAM!mddzdBWWg%t;1(n28Fwvy5wl?1 zw!8$xr*LJlw%SL8xXNTWajLoNSbO*qU(<=N=;?P8%vuIm_lZjK=FCM13vBNSJR0Ym zx^8Ury*Dnur^#KH?PD^>l;S-hyPM-#p165V99+D8jtklo&zlA3bbn+E32!Tc_=J|Z zE`>z7jDJRfy2o!GE~!X7lJb?Bogn#J9)i&y#2E~HPNm1HEj=xzXeCwBUK(~Kfjxe6 z#F^u<=piwDP@Q~7+*+DvU5yQ-0sI3<#Blh1_r!QhnKeS&g4c|(#%96$p*PrAtLBU< z=0y<4vnekvkEI^0<>GqDfpMQZ($JjJZwJy2w~-^j@seMYpu^PlUo=$+$M$(7QA^5J zsSd1{le7ai%E>(;EX#AN#rt4o@oL7dhV$VISzYAz5fbxlWBj5<=6$`e6*-ES^CY43 zt6zzNW7jl0CYA=rfrkg%u)AcV=O*C^+mRymtBr?aG;hVstv;Mi>0@1lq~N%s><81= z8J>vsyL~@|VmuQXp)x(p8PJ{Q$Su{9;MhsG$u4P4K(!uO;9p}4 z4Ke`l{FtF`PT=`*#KwVb5H-B$<;oyWMxcV2B5u=ScLl8$B3`<0x>c$9K1xPl`@(^AAlEX{X#V_o!%gFAB2Vu z2ABXUVF*T4`+NK~hD#=&mB8Gj`gz}iwQAzAxPuTUe?83%pH&-yQ*z%R#sM82yXDX@ zJF5X@kZ{6qzHau82NAbT^E+hOhF_8f##M+JN9k?=DE73#e1F+`e-MfJB7UFeM^v);e8WJ{cO z_5etn7I5D27-o)@+7U@gi@tGj_8VwC=BvC~GtD+ElpOtPWe_hXJ^nzDJ>mB06R$Yz6&sOT*ZQabl#pWq!%LS9g505mx7lxs!HQcah zhBEszusSB;htgW{HY2fKMSgr#1xl~_&qDZ1SE>M+m%*!=x{aTt=jhF^PVbDgP|b}i zO}X_{+_LzLPNiKhAVGGUo&jP3GUl|0ghLYizP6DoWDcbgd@4)U7cUxb2bVuqDh~F$ zGiXq!?ty*wB(Kl&{< zSGX_T?2x`I^YNh?2Qhc0&(5|SV(UZT7Lv&KL8YYM5soWyF*)E3;0S&#XpiBoWZ>}$ zcAQ?;kJW{B=bFGm2sR%|)>;1cVB&18?c4GK_>iCGRT9`{aI^M!^D7e5 z9T~@Le24Xzn9Jtn_RbOh1TWisTch!827b6W*2n4MOG8@G zX))f7EHZ*iIQyI_y!V zfO)o-0ac!`QQ3rKPpjY)L12f4<1@wx;ZU+cvZ7@sElXAUYHr36{(=zwGqYAp5Hfq? zuGk@)Zl%N)$vZoZgPi2rizOO7G*=9*$;@U;syT=-67U>_z*;uP5~ULAQg%;>B)?xp zvf>=p1^sf;i0;ECo5tV83c0pO(^6cZG);mCTjU`@U0fsnrAnN)`L1hhvFnt*paW+J z^eN)}WtXmn3OP;aIg83<%c>#|#Y;LZ&^%z96%6t{p0Ny%4sr0b8=))quqK@OVJW_tRz>7@mtG<|U#Laed={E;18$7xIpGXNbnf@%(%oHdJ?(*0mIXmcbPyQFzqP=S|?hQ`b$1%Hb z`oo9P>1Lf<+efqICa(d{!5BGl!6F;Jnfi5Yq{S$T7RR+@ z&Y3wv)`sABt1CHUBm^y5ayhB_rL4geD*2Ij52Vd>=F3U|Zj_q|GKV_YcLL(%ayv58{z|MzjgF{x( zRYff&-QeJUh32P+rR*LG&4u;Olnd=^lA|6>SgkOz;zInnS^K`~)@@6@Vx)`{i_PQY z^8L6Sb8(*MxJ~W#MH?UzTjxFH(YoX1xyMf0WJb*~w8Ty|Drs+#;c!rpm z-SoNT{E`Bv$-B=T#M^Ln8n7=W@V3Q5*SynN4v^B*6OG&T>CxJlKxWjIP!fi=Y1Mt8 zE!!EcHN!=oQ0{%1aHDB1vP$K9*uDm*zkssTa3pDO%>>xVu52z|w(V%2MniN+Vr}Ap zSRycJ@3COYQiOMM5II@Oz+9Y~W*fEeic}ikm%V$0=H?NJR z=`T3|Ov(@M2N!9kdtX_7Hr)8!Q+7tGgD+vHVK+B% z{=t$({C^?)&w zce5%UF8Lf~XAESA@GoYE2)1SaoR6uK-F6z?+hDD;9_NwhXW{U0{LRI5MLW!gb*eo$ zA~1pxtn<1>HODAQR|WKhSiC ziG7!04>SO;tOU4@SDF$Mj|!BD;uaF4VQ=t@T%k4eha(wQgfE*4?mpSWjpc0sL}a~p z@3B}~;rB^NS$n8Y=H6=_m9wy7^>MeDZ?Qg}h@<0_$aMY%tT^@W5RfF%E%Fqh3iF<{ zh6@ZyOm4yTwi=Bl+~+3=?)*+AMkO3RyQ)xOI?(og*8^T;3i!gaS+olG@#3%<$9lUu zUCMOnGsXC2dmSU%-x?DN=XnXVksBMnOWE>p+LjXv*CU|z3C6u@@}w3?D{n(Auv@x> z)NgH-!nJ@4z4wbkTg2!jm;WLgRLDxK(K7=xF|uzR8^=AT9SHV=U!MU4@G~;>YqRq| z(ZI3-Y@w=NgH=;_YtA9c96=;_El~?Jdy91=F-||~Vf8oQZK+;k*IV1Ja`@U!1S0yJ zkGX;SP8ij*w9Gx*a<<=6J6w~t?Wk8TNM47dT*Oz$WIs9kka?dR&l|!Qc)c9V8y=hO ztn{S_o=_B*;=0bB$U zT*ur~RzJfd((8M0yf3DZqzC3x+O#>N{SI9C8p`Y#xfBX`y6RYruaZ zh@?*)8%nty27TtRA5No}I`o=rq%GH;u4p&s%8>YJH(wiJjmoc8{R=$i7&pie(-|@s z=>GJ?^H*$Wk^{Q#n(}c7+1T?VU(>Fdlt%8Cr7q&l>Qsu)p&ZU~12s8>^qT_Zw~j7Y z_^`5{oX(bF{@m}Nx|hQ1e3>W~?}%dAsq^#>Q@k{M#0X6M(Y86@7)RZ%?9heA&)vg+ zr=ZMalmKsZsyb&ps5i>SYrvvRAe(I-XNO5`@_st}7N1_oFcuSVgUFf!m--46Qb>M<7%$jKKx5sFP>{#1w4YOvdVg}ca`|8le(X5wVfU#Pw3h`76UH4yEyas)Z4 zII(>j_1U5BfgIYFDI9*9kBan(r@sw(LMLKktPb;oH-s3pQQ1G!E`KR?6-yEoov{dI ztH&3I`@DbCAJ2O}=vIqg+9j%h-WF6dlOh1bdgekStGA2Hsn9P-hHAuR4-=X7`E2mI zxFdqu;1`RQsT8HGdsMOIYKlV(&>?9oogZ@M24$GdaAP7y`>bbuyjX*|TAB)BTB=2N zCR|&TBIyOYR5`=0;)dzrw(!Lc+{+Z;%z(b~16>feEbZb%e~To>RFX8dZ4U0x_C8tc zhI690p=$WTMaDIfVBw zX`%CwH4tLW6&TXIxf$S-g2EALkA+V!#1fpHXMD?&Jn!eWd0?C5c z>^R#Qv0K7zHywL6`EhIze#b_wZQy&=TQF19(Oa4@Beoo_XI4p>D)QymcVwOW0c22c z*+ZP`uy{WnYZ0^9l~VrVvT_fJ!*r<&V!Z5`lHQk#WU2d@g%xk23h2&9Xs?SKO4HuJ zHf-I_p}NdNdrxS$Ts2Jvc&NGbjr^ckDNCAv7Dk9bbDP+JBTmwnPM5YhpK7`(2dF^C z1P3wZ$n<-M0Xtav2O#j#ZvI9LdH){Z(7K$s5C=QNeB~}?B2BOmlY#rKxg&^Kk(&)Z!IPZJ$&$a3v#Y>cPM~+czC}@WUoz*t8>A5bT?R` zj<(}h!pX|-c==DU4er@bmVZdNacJ_6hXZ!AXd@faFW1)j0PR>u51bn;f_>8~K=#L= z&9I(|mUyZ4Okzh#Qe$00hgn||*|U|>r=~Q(3yHqTLOtcSgU3Ks#!VDe!_@o%_;6~? zuF?+!u^Iy&=sOnI9o{bvn5e#b!TMBVc&glTaG}clg~V9M`#|X^1_P7lA|Q#<3Z;gp zKfRHl`XnKHeS-Vbo>~;PIa!tifk}1Q{Bm))+w`St(qw5KjN{+js8uhZGn&@B#0}*4 zIvHJDtr=H|*42D4bW26*H>F>8`@WveVx@^nZ*u;YV$>spSpVj_x#kpRU(bU8+@h`O z5zps4d}qFm6)mgWf0cJp6+hGQyYPPFG{HjWmkxZrRa$qc+euYqyD%q)e^`^THu1KV=2PPat$j}9x9&1&M~f}t_F7#)q&q6=;kYXf?3>_V~ZGe<60Y7nFY1vQDK$tbE>5Z=oBX5g-Gs8v~S@bs#le& zQS`S#X`H@}5#ri28{n$1_drF9Vej99X*pchU$>$6LMC%uD$Z@BRN4p)DV`Db6Tk1d zZBLtC#WnW~J}bdLjyM>sg%2kGlJb5yNfbG5XuYUx6l0|FfF}ZGyvl)&+X==5ylJqj zAvw`4z+YUB#>+CDYpH%l65~fb`>x+o$x;oQ|FKK%Aca)gFXW`Jpoz-xh!W^WsQ4Pd))dpZ%u_qee2t2m%Sv{b>0I-0x}TGNlvlen=F%eh z7n*68yd_QGv1N{@FV`>A(}cPWCIc^=K3*;|VhEnpot6OFsE*;@}Mx* zqdr@QTL&;`+Fj2KBz`mhOgtQ6dgGt>NZPqvqC|7}9&(c~nh3(`GuPbeD>-^Wvt;`dSy>c==9Ty5yRvdU}dcyA(-R#&Jf&VH3I0-e`FOATi9<6Z^C zi5v=od-V?bkTj;xqVJ?MW{0Hd-4y(y6C`hbKeLN*GfG(JEX~QzNpP{kr(p7o`eS4* zD3oVi&~csuU{~_bGdDbSI$6Wv8Vqvyzq5GEBi)z8LI{VL= zPV>z;Ka-0K+vFrEXe-=jBa?&4ic`dopsja=|uPlUG_~pe91;wh41x-)l0iJ}K z%DivHmfBicx_rf?O-H3mBhpj)59G8N3u%sX%grw!ZJibcXCp4v4V;uB@~RA0Z+ z)}8iAa4En_ z@iyIK+lynAC;pxjV@+T`LTEOq+?`k4)?yp3Hr{S74(45Vy>;X7ty$HWlVoB`BZS(v6cNB>IPd9=xnzE^M7po@xh61HCHk?#rdXIJ>oI1xSM2z?E zy<2Vad6K1sDGsROUR|||w4dY9#?zz_xEYudXz`)D6It9|~ z76%{O5!_NU6!}wAx3Pn1`c7GE4JJ9(2OWqi=k|V~uz=cZ?8# zwQ2U?KjS=BvYmou{2CtM}(yO}uLV`fI&^UQBbbYiWC5`P4?go0r{0~axG zL5n7h#Q8~_KG02V6pld2zz_v17#tA(1!D6qd)Ol)esD1NOMeUI@_~KY8Ki7WPCD!4 zT~yKJeUZ5>c>Ukdf4)nYeg7FNyS7G4a$n`1M~Et&oN~F2w1Sh7nA4vY$@}82sZx&R zJGy>S1e_YeN9fG6tUKLjh}CU<@veDi+bRuXx|+;&|G%#d7_>~eS!<0{XBOK`e(*mH zFiFoRihXa$Nn(85zw7d&4xFi z&s^$~M6*cdiEC6l-*g?@+Ot_S3KMW9!)fJ4I~g>N4c62W3Fh2ilG+uAL4-F0*k~4f zAcxD@>K5+Pso$Xt@8XZdK~~5>Y%JWp`?;Ac<4d{_Mw0!KCeyKB~dum-?{GM52^@);1@BJ>JPrRX_;! zytV#N%-yz|auqqVtJ`pXL11)6z=i&%>}~IF-gBZqb?`X>aS7Lr>M1K<1O~gYT~*kv zW^lLn-EHfZftiJ42RHXXJO&$6+IK#Hj^{nL3}0mE?{pVrMDN`mmwdvK2t7`k{$R)N zv{|Q{jBBHkcM$ja6vR$q;!6|vq*mE4X99+YQxm&*Tds2{W=Mh@wrs93Xf}Cb#Q6B7 zcz4a>kJ)CEIa&ehAYBl0tJ$MH=p2zrwRL`k{9g0bh*Rp0X8Y8o0DgyunK*+u zuNIUUBltu%fdOBVOl0e(vu(Y;;e)~pyS$xg@}1voy;?9vI2(-A7Ah6)jlE}Co;oVV zC@qfFSjX)?a-2g$0|WwT-PjvQu?wX=ACdQ8PV>w9&uhHj^~}W<{b`dEU0=AYR>ZTj zRhZxo%nY+}Qk{z`dXa8BGM+7c@Et2aEy2Y@%`0_2Vmd!A|2MCC>IV6I?wpZvnmHH} zM=72zsQ~^e-`LbO1TX<}r#q>t=_Q<`;-aa<%12|dY>T*$j)5#BD@=KrstQTWk#t@y zwvT(#w$jn@cxFgh9A}p9Ek+X8g!h2`Powag_Vwslp-j{i0i0MT>UR!EkGW9J%I>1X zHUzAxLOsVz3abW$rb{hYh8xF9t=*P11|7dGNG?sSu>Ie4ivKOLzwdg5F5fy` z6+2VozxXWKoFXg>T?W+>7Kq0+X(`G_uO=?7L>KA8Q((u^?bNNX{!kx*86=4ix z&@zH}Oh|mInpjIFtad9ti@0^9aq4&9scdAhE%XtyQHmtQVvbM9ftAB7TE8%nfia!u z`8C#Z<=3@s35H2(|e;Y2c*h)o@1dbB@}9(pU6|WN2T}2*bMIT zSe400t-#-*h5trdvIs|$B+1_#4Gmi~>LDw=tH7GD%@;Z((WQ=6m zmrS>K#Y)5NLlttaAb^KNwfH=xlz@ZVVqlx3m!WCoES$*T~dBh;)8g01s?(eC| zxR2j>72^4hm?u5`Q~^gp<$v3`&CDGeWZ2A9b{}69ZvvYoeCZrnd=l>Z^s~Ld1CxsD z?ST(@uUSW>u(}nQjnRxX>MKq$zxuhvB+@ntU~r#Raw?E%^k=6-|^q< zWL1Wo@DC|hkCy+!KcWWSvEKml4UrSqk7 zj8ZflC6y{_xNKvHhTL9fQ7P@>|8&OhRsQwD`jc*1#^qZD=X=efP8pzWTTiLyfHuJZ%4yYnl88}>?n+7^9Yp} z8bJ$=92}0lTAyc&0eePy+RT8hPw>C23o^_QP&%OwEaWFxEWCVJ+&*W3#j&ZY%xD#d zL8UjLA*xZ#DpE^~)#@>9pVC)f`c4P>eHKk(vtzW9xU;P()lwdC)I`7G8U1Einu$2& zx8Bx$-g%fC55muZR==nk`$|qhZNd;HxBet+(i-~fc81*qY;!$+O#OzNlHb9gNKQ!8 z&^ER?#GCd*4i+D*#hzFcqR}+Wd*d*hJ#mMAC?$pC6%zNk5L|>X3Gn~sU|EpnDaZjm zEJEIFhe+0PgGAq%qwMQnn0EWwGZtceQXJ+5iIwBZ;%6O$+m@&w)kBhltX?A*4mBg5 zKtXr&(chg8{8$J%;lHSP2ZbImoBSV+FaO8K`^hU&ej#p6^bCt!_JzGwP= z*F?o-{ZD!F^9QriTNRkp5i-BO>MBY{YRLI(fZvlA344BW&%74c#A*cA(xB0QX0W7m z`;9zzlrFrgF4Hi}NTGioP24FhsHBB|*OZ@p-T-ahX^r?(W+B8e%AFE$8y4p=OGIl2 zlNgYPYoPgYdHRGg1X$O-*DB=u!_IoLSb8q|V0G(m-eqDk37<63fWFQG6=S|VzHR>AVBT6 z2COY=?4R!j(yCLk^aN?&dGTAf8gl_@k>w0tYux*0#6oSok>`YQjC+zougEPk*BLhP@X3FHx!P_D;7qsI?_rrGHr$&CnHoKx;$3fjOj z-9J6+JPhE-=JaJ?d5Bxw_UYsi45>n{wpg2F55Ko(dBTf(yy?nt!-oowsIYy~V9*qj zB4lghwzKKi;4!FoK(0h2<-~|qjcf+0P;J~=PlJ#ApiY_*8|f!5V@P2)21+V_F~msO zlRMu(PV}fnl?Gr=5$F51%ePwz9;uCcAzAY+3@V$JXYB6p23)B7OHw_~dW{P8scbS& zHn>a&u;9aJ-MUg4zq1WysQTrr>5kxS>_$wpzcDmznJUgl8-S)ZDsj$jpFL{{1!IjY zz(Jpu+%>zC)kUv%*zz26L?}hK z7-`~8_M{p&|BE8^tDnr%o}|lg6JJCQJ^sx>vTCg!@L-!J=UPAEeG-W5AyPdIEn0M*G9$HwhmtHm)fW4*&u$ZXT+hWOplzKdOB}sgT`wBy41FGZ{|q^!LQh z6-q~>3Jp^Aex2_XoTyq}#k=#vV#@fOeKY%8WPYhD`=Uf55o~I8%B8wWrVhcxdd=!y! zs_ku1NCJ1zo##i}aK07;C%>H$&(u|3zT7qRLet{n?6LgK#j3)v`DpaMjp8jn2F{_p z_*45a$3(J?R zdwdvv-@&P=b<0p?s%;}rv^2d6(0u+0$IUW3B%mUN1LetLR2Q>H&PdqCVW>|SMOi3o zGKUB~KtFYlT(jF{hJIXrW`Rd91#a&9*qa85;otoYEOvh26g+oSlUi{UR*-(MMTgNQ z-t~BepV~WR{Qy!1Nq3IB7qe2L#dLV3e2dc{o=SAq} z1++f(UUee2AG|$-YT0-3vogS!e)~?oS;35$)3K7@!Lfi8|3JR56256Kw+zT}cuK}V z&^HHJys>r{1Rp4T$1buC?SV$ykv!2uLS`J#%k=6FaeEoF!@ETVX^i+~3LsqrsWlWn z89;lhu7WoIu!fQ-Lyo0Fh3pW<6*jQS*BUu*d2?~!$rFp-WJw9Q$sP31JqNz(Qfx~5 zEkA>$sM`%mllU%v32-WrXJZGRUx^mV`peLpEBB*}Jf&MlZ@E^t1VP#jFkD+~k;JD| zr4&;qns47R(XsC!Wlx8BbWp5URT_w5#c^Mgz}wk1RAxY~gqO#e^(6!MqF5)k97LYO znivP<@}8RQkpnMNElri4%~%10zT(i+Z;6z6UC?ex!n(=nem~64vA7acjjibLF#7qp z!N8inAF_M^=(by(UWyLC3$S^IR1Kt}1nD=ea6k^P3*W()e@0FN5JIZ2VGY6RsTCg~ z7jc3CCBhNcK3tH61JvcSzJ*Wnw6ekVhs&R{-}m1hBwJ8J_Bo8!`5k1e+TWmZ+_Kpr zZzFtisIzwFszV!BXCKI9!JU#sUA4TvNu@{IcEIeGKEL_VW)lCT;1frAy~vU(UZ4z< zYyGa_xEc_y?*1jg9xW!xNZgan@QL~oUTlEeD}6Impby>4?sOP|0vz~1sPJ8*T4fZ& z)OrFCtyQcaV9kre**@Kq#K#6k(4Df~N2q?M^R*WZA13fh{08g>b%l$CO@1kdU^RT( z?wSlrtVCb=bcEGm8jOjZC}*imR14!?D0*N!9M6#P74L^2%<5SSD?_ac;yu2w08 zdV!RiS0)<%2Yc@s(A1Xq3o8}`1VlunqX;M+>AeXkReBFidhazLQWT}ANN)<#OXw{W z0Vzrd(n|=D7CJ#f5;}J~cV?b>?wvW$Ildp>FV{~P!cO*DYp?Y$zoM#ueV4+Q8GvUX zSrY<}#w)euEEzz^gt&__-#Qt(j}PH;*m6DOQ=wldFKcfTuBS(1NkjV`$UTI-%qXql zm{pN_s@B{c)A0SO7o=vbV`#tC?{LUbx&uhSX9b4qrA4UldbAxRGy?^{(@^qqwcUX3 z`$ZHxlTeR+C3I4v95!o7q&KXu_2(ht^w{D~a6Q4{^5vO&{=hr&iu;vbCEH-N6;oY6QY@u%FW zE2vQ$^kmq3@YT;xG#z=LpXC(iW4LIL7nsBM?&lY+7Oz@pKM%&n2ef*f*rOa!ZEf=l zr#d5Bs{xru(oJq29=V~5YTYX2i(x*5x(@7fWf1Atvi{u#h13v*fW|m_GYk5roJ7f% zA0*d`i0Ox9_I~7}!69;{Q2&a?(lCc8IpRvKwhbx#m(!vU2$i-BLspN#AE$+vNj4k$ zKxk+#M+PSRAigT}ayH>9MKUuwNyjGr{iRaSMu&%saXL*IV}L-eIKbv31Pa@%yoM* zpA{0!pjm$vN;nUQ8!(K*@u0FD__z`Bno;uew-u)KFEewtN!UfmFhlOpEt@$o0UTaK zGy-hb#@5Q`zk7ZT+V$w@tH|3Kdw)N?R|7SS&te)!KoylbKkp{UG&FY3a|mv52-O@h zLo1H2%8hJbrwb@%MD91Qeu5pbg9tgBN9aXeRr>#d_cmhe~E2K|$Y zEtT<8409qPUeTnz6?l4(`n)W2F+r|$Otw#u zK}}$!Y!VKlgm+E{pk!d8aL4%~RQr|iS%&R9Y{#y$&Z#hD94L#7|GxEWiq7^Wp9dDk8 z;$`;}|M`g;=7A5Hy_7SaU$Z;XcmLtpx4F;`H2p=eHc-em@ zDVpA>Y7t{D-(!TDSJ56I{ZZqg0Ad2vO=r;^t5|1bd6a7BTkz$?xo z5Gql2Ciqz&G3sBVq3^L^0ix0v;}XP=Ue zLdZ$#J|hFjv7q^AJI3*1j@GPR9Mn8l&qC_3y(x6Z!0TwH+LjpG$D-FdKE7kU2f$+n z8_hBCn5sp8`>v?ixgGLJ)I!?^A#K|MNP$7@J^M=J{BX$)VTAmG0_K+cDaLJ1P`E++ zbB4>=-1TGTF@oje*Rpc7r$^=xomcC@TlHdXM*G2&-s@lxrsTb^Yf;gO)@ZYzUFNn~ zvjWDV`?zzf&8Y`I^GneMY!6!&99s1tLTlCeWvm+1Q&^rEZ&)l-*H$5`as~ z3qRAk6T(uPz)(HiuBhJR9)12kJMArr2MxqOZ4qK*L3k#7OP@98wlf`I{Vz_IYGgnf({Cdx|0TX zj<$u#-Q+oq)tqmZt9O&80v&_-1A0_v%nTVfn_Hkx8~mn$?8z8D=g4VOx4Bv3ZA4J| z#Q_rhTk(?ji$_c@a||ce=Fe0*M@~<)1mnv+aP;HxIrP`Au79ejcsi*AX_)`qO7tjT zHY{;%)PWzOI!tRB*hBfA-3(%;MNZbGpmFJBPq*qGr<9y)0jHq!uCW4to9S8CYq$`t zMPNzUw-BR#zwgSCnq&-t?$#k~@cQ%n=|T<}CbcX3w+qr}h}gJ|%J;eqP+%!I*-L+f zvpWA1qal2Io9Fx;A+Lo`{nrZVi|=x+wTO1%CMyl3q)RmV{LWsIhO`}z+zZh>w!Oie zX&vGmzWJ7OQ8B-uEgz^<;e(^e#TLG=td8lyMM>pFom$cZw%}>9qW~e4l{dGjxG4Ir zgQx$}8=unPha ztgn;L()Jvsnu)kfISC548(WyG3&w2(9p!_74r1HO4VrTG&het0urFtohWB>O8Bz?3 zg^h1)$~b*qQz4JKIbB5j5KP!=Jd7*!<=% z{HDu}*V)dC#dam+={-j9^bZ9U!})iMVO0pa7WX_geD4nA2;@Cb+_?UNh0Y#0aoi!Q z9-5RnVz_JJ3y)7=pb*Tw;ZGE#9WAG#y)aC0Y+5}snk=K2Z_zbAXJUPvpSb42aDREy zk6_U~n8e1+S9e=$$2hWkCMUtC;)Gusxup)c{Yd)3$i>Xv+?d7$;7Q zI&@~Kvwg32qTCL7{SN7h(quMIIn2yY=3Oi{xE;e*kV=DolgE>CeVrQ?@$V`-=1ZGU z1C?6iZ`~qKE1TA)BZfYp3tE_rFhDzIRjlee;e8mx#Q}y(~iN`Uynu8YzGMgR~6=kSL;6&M3kGs?xI#zm9D@e%u zKkUllu+sd&BZ+ zD>R>pOZ$m!b9!4~1%Yx~WL;ErMGjxo(LKH){Gi!@G+3tXM{GxHj_S#!SAuWM>SIbk zP=zj$E8hm7vk zR?S6s4;0xRBRtxLI)4I86x}YEN#4ZBVs4%;&be4dc&7z zwumD?9c38@Zbk-!ks!B+;~gbMYcrnbWg7WO<<{?$%yY6g9oXS2LDs0y#jUjO9}o?} zWd1Ujp-y%urz7fTw6%{fDRiG-O}q5X>Qg&8ZXJ4?tI2GtP4&ESG$|Q3X(GNs`^sbA zp(|lUQ4HUs01w_nN^y8`<4W=Ma&;`t9%T##P2T2Mb3TdO$A^>d0#E77%{I7q82Ms@ zV}Ua5aZVi0OhJa6`wa^pAi))vUgtVp(~p@*ixy3Aw8W97TxytCb)pe54A~kN6FXQb zEMD9Ix-7LDm2EI{gr_sm0&T;Z00oQDIobG6nwb-YruENJ^YbkUGTV;%M%K#>h_g)3 zhUW{D7U9XmNq#rlbKDr5?tekfgvqTsaiB7;-1>(WK&&iVMx}~>A9KL_t?Ka7Milw_ zBq4`rtURc;X)8N;CbmK0d#u+e@*-GtPpx5948We+GMqH~TM^lD%;Ejmiwcs>pp zyBr0PhQSTq7II38Hr|%;dRh!_`2v(nLr&L+r8=t3)z7lXo4u<7wz#KI-zL^x(Z|mD z5i0Pvib8TNaO=#oFZ3ZKM&bKyRXzn9s;CgTGhypRFINHFmfzScNXg8#xw%9qU!|!< zvCj_{o%{>)_zSbgd~_AthY1fP9~!d_S3Mdd7m12%nWF>{^Z7tIj#^1kq3qs;sEuHjID-^?US}IybNI|lxW>L5}Ha7 z7OW`3Ru{;y__^g1B^Ph8`0w9V;s2k#Nv^R26*;wNCnwr|c!`bkM7_*NrK$bIY3-~= z&Osu9)T3Cfp1#mIzJ+4||E<_)E@nzzuX8v0#QCz_=Nn)y_!of6iA1ak9@mdB^<= z7|o!DLdA@rczww)DH)h!(xdqp)0zh=W!mQK`_A@#tekfvi*kbBO(tOh>R9rznvH@rE0s_`jTU$bz8CBh{V>aZGv!a=&{LLa%$bS+~lX0evqc0g)T4| z!c{^@DBol7yx(Mn8Eww{z5Q1-+%PDnb%h_|po=xili_2JT_G+;1*npza2=oFML?4WZ2k~Qp($fQPv4BQY z2LP_tILLZvn9=octBn5Mdj0)x_W1jkf@vC8V=n@*hh0#QMWZwya1!gg zwt%R~NeRPSAc$`=Pzw+ZR;B?P`ng}Hxzt0({Wp9cortzfF=4YliSQ~TciZWZ;=7E% zFj&9>!Ckg>qrSuWTs0Dp2!`aPki#cO9rpIh@^YThn7^?8V@^Zhc|YUA@Fc$1x@G9`&69mCqSenS&hFXhfZ7`=$4G z1b}pAi*3>fxjwHy-|G3bnq1%&7toCmX+(x4ZQ%rDuR-Lo05_#p=1DJMJ1t3Xw?TC# zz-Yt?z3z(%*{sfFhzr5kMJg&MKV_sIr}97a>w1U<0Ha5*xm%N+&%q#HC^n&%EFsym z8#r(JEM{gy{;#Q1Dz{>vr*`@*Oc>mQG%c6cY770!Ef9}B1uvDZ3u6BU*qxU%uemU( z9GJsk1Zf2}%!28#7jBxbZw|JBf{?9wbAA@NKo0_)bB1)6oB~C?=9-zzPmt}(@^%iT zYr65_I`W(DA?~C?gFqtNxfMlV3t0pUG->3ym5JF}n59~J0X>%xZT?cp8fPlf!DxP?v=;MlOQm6pHJN7*0A*Z%zoHc_q6 z`%t;>24DS_r8`Z=WE<~r*edih=4!^seurKSqH4@83RQjHqZ_17-E7*SQkh@_oSUrSFre9wo_7WQe%zj_4by7$&8r4mDZ> z2A-b_n1SxPg-dx^Gj`zk&A<=vVz-Kpu@Y)g|6#L0h3mz4ZCbCPVvyG3@L#Z~gR=Xu z(Cr|HgT)dG9@D0NjZD#QSeoFde#tu*$>}-nUxe$tE-)~hL+}8U2#IGRbz<6N;BWs z&7kQDy$Q@AMW#$hLSrs=Wr!e(`hHoILDba>xPP1ViL%r&zQJlgSh~c`!ej5)=7gKokmOh7kP|` z-+qDffa<1>fA-yg5JE(xH^xdLCzXO~P<@YG^G5jdLOePawG)~f{Jv|)2YwkV$!t|U9@N&b z)^1?BPG*!h7fP53N!(e|W#QMX)kPiHxc`$5rx;d!=bccJkx^}E7(?^HIr|X=N zBl@*+Dm3d5i$_BUFB+g#4U`01V@uXZuYgvScKM`nWr~T^ZfT9od_ktvegXxLbt3O)=%(>()49{)W zVn8an1ka%0FFt~k4d{(94P#lJ9`Qe{mHth8SDuTANz(s8Ft0_;7c%%zmPEHK30Q~A z;9#Tp0vye2ngO?H;XslUbv(Fm#gzz1UNX;RYuo`I%1xrU?_ z-o4p>qjnh6P8<0h6J`4@Oi~{9Do$TAqNYhy6eTU2*6uib$LGi`;3!9Gt1iFUroZ4+ z{6Yx{EK_ReSEnwza<*B$PjLmB?$IGLLmrGdIb@<1f?pw8Hu#a68!nO?_Mlh#=l+%2 zX180Tc|k(8CP^IjJ+GG0M_zKl+8$RhAw}@7V7{&m!Gu2{D=dE}qNPEvn<;qH)&Ei5 zxlyX(FMvEc_s_4(->*%L5lP{vI^%->Xdhwte7rTh;yxi)X5How* zZLjHs(64vUbf}9&04Q5m*NjQ@82%~6_V&eZwVyx5cF?uG;#$cGG1Pf2!16z4hW{JB z$NCr;;>U{BxBfnJ`pgkne(AnC%y)PzAnaxz3!c4E;Cjj1+gpPYQM^92m{^mz;tXnF zaB#Wu-X|iGQsQ&5HRYv0`)M-3Esrif;{Cf)?URU$r3Pj8K+C>~FyhW{)&k=(uKIpl z8(bf7Bc5KgSYA~xETCRzQ3Z|uC>AJ{W_MO@1gQi{x$PyOw%`M#6aH$1Fq!aN`P;S* zo_jSDfaFp7FP@ZZM|XoV-@yO88vj0TUjcn|?YUR%RPrCLlK=pJ9=bj*IAdA=!*WWh+om2kp);edfL+e z#@|Pot5W_~QRG)Sp^a->r)uR->Ha>G@43-mnFbvMvHe5X`p^B{KiBq?reErK;IzM_ z`u$&@^+W+scu&ozPVJt)r|Q5~>mTjHUkevg{mYko`sy6jmbY&q!z7ogRCndm_va=- zD%tK7H~-`+{O8E`-vSo@@~VD-TZ&NvKE~qf-Sd@g8j=XczbK;)DCA233wvO=d3%}< zAzY!C;Q!L%>y`5sJ}vm)F{;!TJ+E7{ycx&bu6gt0fw#XF7k2v|55(oSgzD{X^jE|Y z8@x>{QP8y2T1&U<)k0cvz~K+DMz?Cil$2%f;M-bBmZt0<#JkXq)|)WP45T(Db)Wv3 z80)_#_t#IK3;=~CQ;AU{lOg|UQCL>{VKGTW;Q8Q`L^13CIgS1A*8)rn?5>j!Q;<%vB|s?_VJOI=QX@NnY-DkSp_T~ zbfncIFJ%FHEpYC@QsRw5upK!W4rrcullN4An4$jrkGWR7MD*<%w|aS=YxRTPZ}iYv zFLt?OZ?8aLh4|8&mr(@#Tvv2Aamb#o91r#&%MUXL%zrc|e#h}sK8W^-F^JBF#_knx zUoVy|E;qNbs4LHPlmmj9OJXL){i@Zm1Q~w*+$R_y7T*DFOhUu}s2CQ+e`4Bq+|1hH z)}^&oqtR$@Quvr@OL#AHf2=y_H|}}l-WxkKpAb5AIw)*tcZdM+6acJx@IVs7@SLRB z;Q&0tONiVh9oQ&%)=Grsidt4De7c^dodf~OAr=rTZ7iR-oUKV^x^I&M&8P62zMWhbF?_RD z8-p5%6VL$)D8aMRSam%GGNo#9O33*fnlbbixV$5197<+B zDzd4#yDc*amG}FL$NAqj+$xfb=2t+NSkMe_<1EKiPaNWI#DT8(a?3Ld$2oGSXXw5~ zX27VLwNdeJ`1GE?sAj@?>sdf|XMk8a@(M-juDebf4e)@grA9#Cbax*7*wdZ)P1j0} z>z+Z@ZnDEW95eNCvpm3;mfhOE6VMsdC?ST7$Nrg!{GWl%KaQSc?Ps$)g)&9JQQj{X z_>o&$`_Be#|H6ei7xC@>H5i2voUL43RoNlAQ%-%38LJBD0^U(*NExjfQJ_IoDKc04~6clhq+W@m3* zTEtbRa%Vtzs?Fv!SK5356QQDEkz3CL<^yR{0x&?_N8s}u41fr46B+!*ls@~+an18r zCXtl1cxly6PP5QJ{Pdob#t9yS&|Z9n|2T-Yt$ z`Tv^Ie`du0dXD|~So%Zj72)D^hZ&Jss|MHBnY!}YiF@LZRPM^gAVsX!Ctp(1})p124qk;80{2_7>@*G1_v8!FPj3!}`i!|03rva+S&p?8`co z2m<+u$4$t$2kTB@C_J}DGMB+|4%)&I)JJa)$zu))LSl~HhXyw03_hHA&j++^6zm+w z*)@ZVK`*EP*O?DWwno48*ryS#JDSniBx8zJ0;g^4;wGtKU6mUcc)7~nik}4v~2X0DO}${;PA#Y6~3I4zLom{O@d&=OSR&f$h*_B{N_7 zU&jC6597aE;15)Qc&9hZnc^Si{(twT|NL4%PsA)t(mdf;G5nrXL`nFmUD%1AF6?sS zOtAVWV6m9y6!$O1z$ZDEesP=t1g$%aZ@ay(ve2-?RB-gxpLujYNRtBlWuikgSn*th z+U=dSB3oFo5$Lr<3LtRBCcwhhb>*Lv2-L-XkzDh8KXi_i_z;ga`xO1S8}nxd_}(wi z_JL(5>!QEk^oP1jySuwEBijza@R@Tz7J6O}0t&H%>*0nWnMk1TimvLWyuW2pyockr zY@eM4G)6c)lybhp;i9r$o}xPy`4k) zz-7ujg1hA>Ut*Pxqjoy%G_4?m#A%f6V2YW4e0uMH-P3=}E#%k809hdEG9D14k`U#L8gLgkaLuLCqgjK+kF6bR7Lwgvp=JKGsin5gE4eY)g$P2Avx zbU%hTlWLA39`m;jb4PyJ>C$45?`+ccFU%x1{LN~M_vQoo*W*EnQEA6$&`c3qe(vny8+)kkiWmpyWm9e`h+Ser)(GgLd#Zmd13FMPKlS#1m9%tWbA`YZ$ z!5c4`9v423AEznK!s*a;bs84z*4qAqv zFtsT$6!Doi-E)gL7%wx*1jsAj$}RM+ee)PCH28=ZdJhNmbX>f9xs6 zSBQe?-+`Qsjp^gbxSuQN95q=hg>haEen(YsOtN}tArKzncBAS0Dj^UV>^FeYs!{!q z3F)$y6&gkd#EMd)`|rXLp+j6g+tC*Wp31#I`4lzdOSxO!1~Vi^5sCJLnWFF_Z?440GC|# z)5tyy&@gTXAeM!FTAAp#Tr@pCdTA$iLwY*a2fjyb0L4bo`k)Oz*L|uK(&pl z9VyKLLz<1Z#eK{|p8=M9=iYjKZS(#}IPGFTcW)lcv`TgGLekNe+>b9|Xh4Ut_?FZV z=s%{iuDTHvOj7Bu`Iud|+ii;*StiYcnoSy9)9Iv_)^(8(Gxt{btk*{PiQCoIC2u9; zxs~D@7XVB_j}s4y*sFgc`o;2A2W3XqOZev-b#mcDrRc&&qs(Nd&3+kvZJ9U9u2oZU zYb0~DA+^cA(SY62ZFE1Nc&8DKQHBi3hNM$4&Ga!Et-zUVd(|K4(hYVoANJt@0Z~Sw zgZ;(C1UiSiLYDx!4~=X|5sEEg zab~vJ2baj>gg zv7Ir(esND`ju^{PG74@6?4j%9Tt~&TXGkB*9Zx!nE5+DIz=~xy(_8Uu5e97RQ$uMR)pUvb!V@*kr-Sb2RTpx-|OI{q9;?KhM8y?K3TAnD4j20$H6ha7h`NM5uC;=ed z_YTXUbfHwhrPh*?QTCs)!+$$x@7`>}_hxDWz$RFQ80rV_C;6jwk+Q+>QrnNsC>}EH zU6np##KK;39y8G$=avn!r&9jxqbrsMVu)W-`l+hkBXEPw!TbJ`Xg&*d6E`I+ zm&vq*{qU|Idfek?x|g0&8aIUp9d!m~s%drZM-jidZO(yf*k;W2xbgDF^y*AuwhrTK z&0i`l*1v3G7m_#bY``l_yY(TORyCSg)5|5FoDD~8i$QG}C3-~( zYja?i+AV)XAcjpv+TjL>FMfBnwpyF{3C5*|*V#?nZRV7(H*DIV3X1E$IZI^Hk18$$wF8;A5b}wAUOP$uIHX4Gk_Kz(H z%I+Vc$Q;j3k9|sqf7ZK=&LA4~OJ}RBBTawG;)@m_rcK#K@QeZzoBtNv84f6r6*PDZtz()%y#5fm^H#{Ax4evYVi+! znZq-Mr+v3ahK~j!5maDij_EZKmoWi1ME!jL)$2Ha2Y}~}YE;aKXab$lt)B&Wrm12b zwnnMbqi;0adhHX(YMamSUN8sC{Ul$^9AIv68ps9cyzmIr+7F4iZ2FZC1$xPrtsP1i z)S#j(@;BT7^%MIP@LHN_og=8+v*YoQ{spP@p==}p)KgQ z72uTFQ1RMaHvN*?qU5NE?g&buz%P4E%5LP#SA34n(b=>VSs?c-d?Mv-Byz-`^U594 zn;d!JR5T>j0y=Muu5J>MUES=G@7WHkhJws=6y=q5FX^9R5d%Cv_|4dmZHY-T!qJYz z=JqD=FTlZJWfmKfBj~mnQYsD?rI!lxQ10PQ;TPMeKusqw355^!`%;pQ!}pGhD}Xpx zI*@W{_iFKWG(EB1!aMhHSwzgtnKZZP@i>0mU@N4tlF4PP5v&I8hKk9~U ziI4-+wpx@4P+TDcY(e=otlpnv$UI!hkLEijrH@&nU)u9bhVN^f%$bePCJE;YM0vTz zMYT#}GiacvNYLFULzllgvrs|R@5r6TO4#>&^V1;b&M7y3tXcJ(#{Sgy6jVJ6J6;yU zE^o@g4tWi=SvnGE8XL=vI$@?y?p7t1*+i4lXpU!0lYCmHQ{rcRq#6*pq$Rk<+ZpSvPti*YJ`TTyA*1Mbhn<)FrcNl9kuOn8zz?d3Qc8ITL5lq z(eq&l1TEt6IfY;ce|D?hW#ppTJD|;S12DW2W~WP0tAua&9G*u+Qiwn|YxDxMqI@wO zgpWak4bzRN;K@fkbPlCSQ5T6>W`|r`zp6Y2{H)MHzrd561*+7S_gHRdl0H00a?eP6 zzkNNdItv2bR>AhHSh8Cr<$V1`kI7GDcAjZ4n`CFJb2H#755S zE5C`Q3y8}#eAh6ax(IP#a|d*~JYW(I7C%@3OHm|WlLLUruRYj_Onm-mjZX;(ItJ-% zRZJWrB>C=Jmz3nqRn@u_%N;E(4qZ>c39U1`LboRDe|$dwSc@*hZQ&EOYRoiYx-n5F zYFZ2xDy5{h5h2A7rHDj=_QCs;a5}MpglsJ*~aJm2eQ$9bVAn;A1)8O zvI2ykbcyxi+dbEzv=0`xE>KEu8lmO7NPi!p<7^Pf!`uo)*vf}{LCIXYFgdOtq^9Hyx8PPSwrOn^^< zbV|4OD82l|yevS0&$A7#BQ9$PX#0T9u$KTCWqa4GR#n!UTieTGD@ z+#frvbAlio)+*)4HsBu}98*D3=?amQ0gp}i)komI?-b)A&6m|@;D90JI*YMvJvum=a$-2 zA6i%Yn!iPQ_2|SWv17poyA5SY1Bj+vo|0Zi`jfVsX@H1+6WD9uT|%UAuPipM+Dn=9 zlSSxS5Wd+X`Av#@{wKHYXn=W85Bi**=%uveEvGh1m)nPH7UxS zu3br67bzu%%Q;gP3?2oJ@%D=8jG3YJjnrmw5_^iO|-IjBINQ@IoU2{i$SM)n1 z!G~875JR%VWI(R3V1Ri$NpH2aSuQiB!t^duPons1giDFvMZ;?^4)IBl)0VqnE8`%; zf4@indbPasV%9TcESlZZ(z?Dd$-Rwxh1Ka0N*Gq65KGjsU|JH6n_6fsI#;tcxGdBD z5_jpDU(g{-JT7ut(x5`I<5uC7pVKBk2jG?F-m#y@N)p+hO@&}&Mqg3zLHE?KTa74o zM(W0oSLPCBcbkINdW>M>ljio}$B^7NZm~3MfZ!~K#Oc)yS$q~5Ow2Mo^Gzi=35Pa| zL~on~cJF;2L$**7Zw<3Md%bJ=n(F4Nh}IFtrP@Y`gdJ3yaOFDhehOUS^N`U?92C>e z|8Yu*QbycbYP{FM|B#^0NAGac%vytM)bE>)QZ8}P9JN%SseAsA%E21(4v-xUn};Jc ztCcshY&OYeZVVpfk@3GC#Bi2s<(hcyrrW~npO0S{JTsYZ^>CINKHNV-2AeaJ9O$pe{I722&9DI6Ph>8G@zH;J3gorMmzL@=ZKlQrr2HQt`%SOZFbpG)K zbA(FiZjI&{Hc>8VJ7VTb&Tq(R@>{OaC@Dp$}<9g-vD! zE_n4^V}*pB6>&+W?iHw~UWW5*8R9hw;36-ZwM~}%&bX1K`ZpHZdh@&w>U_)|r-TlEUGFEp_Vs;d?UI98 zr@5mVW>OavxRUk-W+q{^U7aM8=BYnIf3TbZGEEr=c$u}=Wp{b#W!B5%Fn)q(OG!g8 zTFWq+BMP4t9pP=@kQRP?4}&jbY#ZY5*i^%gs6%G_LtGWX=Ix>U?CZ(jrJQZ{r}DMw z!BqSS$#vOl=Fzu^m&>x9&>tL+4)F-gg+4yq3!RW&$@h<&GPrab8O7mDA=V?d>nX(^bo8iJ2agA}6%C&cr4MszZwS0iUL1eMA>27&pFPeWwaE4b5 z2}q6!kA5v-({7-McZ)psXgw`#J}lk1o_3YNzqRBkQ_qlei0=>28#ftice}{=Gc!4m z^qbAg4I6_e1evGIIfsr_ZK%_b%m`IRdS=`_F-vBqd&?j!LxNi)DSsC|Az@v05(!ip z!dHLTR(Se4y}=wZR3^|oFLPrQ*^FYC<=cK5lXv;YE{6oqBEQVEo&-33Ek> zYZGl{1N3|^$YtPR#Kt!G&Du;L^C0$_zmyt-DR{x$E_Q9EboM?$?v^;!`m}dpjo3`! z1)ud2&Vo=e4e+XtlxVPI=Rrw9cIVRonO1`2UL3}!7VjMon(NNU3l+)&fNX|wZ%Ra0&gxuxMm|P!NUQkPtcVVEBb%uc3zUY_e^l@-v z^gzmh?4J!e_GH#>eg!(MUh&2eM>#$GpdQ)&n8wE$1Ixu__T-9HYK)L-%PZ0H}Jf;Oh<>MK%aO^?|o zo$5QM%{9B#W0WV?^`(-ovGc9BATTMfVtD7xB&%BoG6!_2FzkH%b&p%~inF6dl^Hq? zOI?z-!KGL=4ekhqtoy-XqBaLjwy%>?To5}$I_6%b;jX?Gcjk&&dxqEqd-b$sH#nDD zD;@Oju*I&vav8q2cKVaQWA9Z5U3sn;KCjLu=E5yE02fWXwD1nZhs zw}wB9dR&y_9bAp_TW2^iQ8<2}SAnwXQJ5C*ERdYjPJMY$N0qPlYWbwqH1$dF-s*T4 zZ1ptMZA042Ca5D6N9AqY-@7{u*Uc`vyZAw|QAh$K?qz3w!fy3CGw2bO$&lk$lk-w-bt{B$-Kmw)~XcRO%ybh_a+@oiVU-bW-MR#0ek4R_hmi~F7!hdQeN+9j8QqC^(T+e znI4%`c#EuWx1}Zzi?d5K1{FD8hzve2*zhkrbh(*6z}MWx9z9?_bl*WDxePPSIW-L( zb3ZvXUrE(Nu8t0=t)uq9p8H-!7jb*jTqjym`Qu+=OFB}&4)0CbYLPyKogU~XRE8{- zoC$hNr{{zwB~{}$go1X#Xrhg%qLo20#r}vwo!^`px6gIIYt`{8@{wzfmH4zCNPSKH% z-3&XyiTS{%X=7}H8ZFhAQbFE z_Q2s4G+X16B{Fn3*5P{Cz0I}_J`x?0+LElO=vVa32=}(1Z{63L#DIxsOUmQKhSWQ)kmGBl-ABnmuJ+K4)8D?T-!l&#TX0p!gQZ zMPjwr9n7V-*VTl7%N71{geF#-pd1>oHZGJ#B)e^Xo#()CSn|g5=uLi8#w(h@Y>f3L zWJ`Y8edjn#d%bBfH*n#8BRwBYr`JG*s2G@XN~~!D@byj!G(9w*Q8E5#zzr~S6FHXc zqzsO9FRr<2P??I=4U3KQ`L9m&+`ImC?Cwa=96as~d~9N4B0e`=IYB@ti7npadQKQ% znHZ*9Rk<-L<4bitpN_*kDY%eG&cpoE-T}6j`uqO!{>JqopwIF$_vs-HA!iL0XJ~)P zp1HVtAnk{$HXFH*3R-FVBn&)}xUt#|RnJKU@6WN+mrLS{+j{Crl0z2b8`-mka!IaB zter55D7zbsO@t9|v+&erM=L(B5ZAkl##K1#fj!3Vdh6HW6=#5_E3I(>I}KOUEot(4 z;sgX!9*1A17pXWkmV>$yM6gZ;<8a+J?XgLxiCFQ074dsCi%nR2wE+jjn_I$Mh7$+l zgtd?_VMiF-hB^CzsW4tWnSqhhgAO?5MPzAGFA-<1cWd)O$_C7D($bDXsx{o$Kw|iD zD0FbbEUnh{Zcu!4R<@PH_a~-Ba3*tI!vTk_IPwR$Hu^+YK!3dxU*?ae;{0TE#2CEv zf%VR5@u=!WSn}iN=7W!xqH4U&eNsvx%pj}R+A{6b zJ^Y34pCx%7E|(Ld*9FUC5Zh8&hS4Ep%@ z(mP~)eLPtbQsg6^;NH=};{^7F>{ZetsEV>3;T=1Swc#jm*D20V$|WMp8a&V^v20v~ zA?{9;n=ua@p0Y9|3ZRJnfeH%21*+nbu9*;&CfdPfK3$LdF2x;g)~mirdG(etk-s_6 zTwH6W5B|vWC;Q4T(&Q+fI)u2d^ccwIX8~&vu}=RzISK84VU9^Jhd8=)0kgA^R8@#ssjAledB{!4qw&!}E>7P|i;ml2r5-5~hmk1=(eZ=4w+tm!jPB9lz zf-((6W!J;22?OC6oZOPU&+>TcCGfCUcOt37#cSMR+{t-_GR#j0b1Cns53CgqL)&Xw zw3~Vt@!WmdS0-@B>p@S>0&r1Y=rr5Jt0v#3i^btB^gfa+;>jWVpUFlpzXJDr{Mt%MIy%!l)we4({BjuNOz0%E>I}|=B48D3?WYJV!6YDHXm~E<=u5@eN z>7m)#ci@I`Tb?e8`hY6y-st zn4s<|vEjLvzET#E(PZ9;?`cBXlwU5?+7D9P!6@e^%biXop?{p7C@Ms7V>(L+QE$iJ z7ZwM+x|qp75N(o}-SR?iyCwKhU~?>Or_Nftc;_-gP^E4SPvc#(>ZkQ45Bun0EBLOB z_w0e61N$v@fR?;At7DOH)#=)FVUx^gh3cta=g~8 z1f1(XnULNMe*0uG;=W!|&h3uYCY(7U=6{j))=^RYi{7w-BB-E*s7Od7CEXz1CEX*|5+C=v}f*{x>|15?sOSB9wrZ*M(o!^TGB8DggRQo!C1PQxBhs;Joi63 zBMmq;kjpZ;T;fX=rtSmHfttOKLkN{@)`%XOx*s+N3Mf5R$+*M}+2P*8VnndxSE~_y2^a0cAAw1)#Lw<)rE7xg`|7 z?%aR^W$5&G{Q2>)lhvKC6haOBLk_SEG4PjW^fI#q`0~@=W@i^%te?m_ne%c3+Ng^X zzAAkz>O+SgL-#b?mr$Xp4wSX@V|AU*<;t6k@fgo1`T*_)f0O;hde}k+Y>ZrP#Tg~F zgL8w1@zX^z11h)g7qM6X{2tzxW(x*O?$pLm;{46bK5UTQr4m zuY*~}t#>}BRDNcq&Dcupg@Xj0alP}#SR=DgG0jUk6>x9Bm0PL@Q90=`84=jp^4tMb zGMY3bP+Ye#Pw9JL7xjWqz=j``j8@c9{DuGmSN!X;SV(x*AFSA-XYB`TW&AvIw;`MeZ;h?Vxl{OZdX!CJ!esR z-8L#DgNy(aGN}}vbIa+j6UEd-&AG~mmgjm~Rqlm{Goo=t!TRjvUK&3cn}aJGh94J2 zsD2eeo^F(hxkia1_O5Z@(OL~1d38=puU>eW0O*u8Y`=j(HLc3cZl+p^U36@!T%Vgs z7r6~&{XNZ4I^8MCdS=|ZC*$mSQ}9zdr**uGY7&uv^SjUUNxjltvo-u52nbzwe}haW z(ZBv&7fY{cUU}!7wkosB6Y!Him@oI)*St@B703*qyBjyM(e2BRxg71=j2lg2Pw~UrP94Zo;LB1e$z_gK zmRY_8IZ|I9@Q8XHJbp2gZT>0y0p1M7P}LsVdDdhifvqnW=$B<1b}hX0jlM=d66Afs zXD0uHo-a=!uI`#|8>tdZqIG_qQX%&osu4rhNIp}i(? zlCxU{M*OUik~HYRyt#f+F7+=|*FV5jJ=i_@U+kBIzw<(H3_kLkW?7%Y?D9E1;%~2+?MU~d zr3MnyIhfU+=*LEdD(Quqi4hDzV@`8P16yodgsx9v&i2pe<$Y3=HEuY!TE<4|wVRgf zne-u>K^pJaq2=B>Jjsy?(%Uo<^$zo05u(n@6XvDpXz@{b#aY5L%*`qAA|XcMnVWL| z=MO*g#Yt8BJ5dW5HHA&iGi<+Fc&FWjlk+v3srgt$&F zL>Sq^{K&gIbR(fLfi$`f5=0B18uh!`{$YIIRz99sjVY+rKM_KWNlk zl{*72o&tEb~_2@N2t zhlpT*v01ZvsS=#~8VtZR=3+8(k+R5yujl!iUqURrt#s0ozB1W4cbt3jFxwhF?#|;o zKfsQ}(w89~FJ(Cy=0dOsVCt7j*Hzh_2dyh9)=ou| zb3CEMaW8rpjmr0D5t8~ylfz-$!Xr|ovm7PuuWi6jerLK7q$7iWI!VGjO$OY7N~P7a z;&w7_tUOONv|_u7s7}F*G2{;3>bhP&Q$BHJdlx`wlYG|gySUWV;8DFkd(|Kwc}l-f zbr^^f*9iB{%MvvTppzv5PiaU=*0gbz5^7)4Jvvs|O1t_&=>K+kM*QMeUViOV1AEhZ z2WmcTDi*nWGUB7}&Yk`~t@A9T(5xx4R$-ZL9-D_S3P+reinoa24XrK2(Fh=x%3Y5| z9@NLwLTV;#KtzIyb4+o+X2?WZgcO4*LFbgXB^8(~d{XY{p4^i`FPL5pO*8!GQ^o^d z(AJ62ol)?$pyj(d11o<+BrnJ{`?xV-c`PcAWW^|p!Ly;lFE#k6L(jwtdfp3LncKN0 zI3NS?4irXm9F*zLK3A}%t+AWIY}f3}0lk2~heU66Z{+scM~HstUood_q*^hi5Plv|pS+^JOWL&NbMm?!88}u<4f8J8#BBudO9Nl**Fb zuLrAqexO>*C_yfgq1H>|7ANP`jw-w1{ay~&?)Q#86h#He2yEqEy{$8y-xfa6en4s< zHHLM&J?Gx;=sFG!3WP5J@W45G%Nvt$QobdJH8Zy_9t6<{h|#i>sn;zcT;jD>!uS(3MT$F1YZr?-tu6s4-(7-cLqn zoH9{27P@gFTpT6CniXtUp{9rGs;D?=e7E2HJ&Wwpad%dp1gK{<9v^1GsBpIZOt_Xm z`_{qyWJBSClb`i_<*A=M(&vx<0&RU^v|vO)zr>aG zpofgzvC;C%Yb;(2Hp zI7g)gHI{X4IB{SuN2o%i+oX&+6nb6*WYso`EX&R(>IsZaeaRh1#TWJ`-Y?%?{}Zeq z_WW#!13K4$H4M7Jr#i)dJ$qi0o8RO{#>l4XFgu6;mh{AJfQWI>c%$T9R-;D+V3>xh z5URbD=yp!@y1aYxg9nfKLVkD9ZS|0LxB=!wA;82$lP69qt(8suB;JC4w&CS6vK=k) zQ`gU_=hu}-lcr3TZ&K#S+gY~95#04tCzUWEMNx-r=*$YG5v} z%}wCrjG+m5%QNtx;j`m?ANDEP^pbrhnhqLHKKtbQiOrE)z6a!opSMj=gq8Aq+D zq1ZW~f=89b;`9#p=MR}vxb_Tp;UsrVR!vfJzskaud~{_f##RrCUQE$-L@$q>lsEC% zg&Cz+>=<+Z`gyICvJ{{iuW+7M2r~O+E|+TJdG~Xr&OJtrRQs{Pv{LxJ++Q)AiFR1<%s^sDk7N?iGxQ^XIw5H4N`az2O-nJ8=6K7Xh3j^okW;Jdi5bX0U<7Zw(~aA4)O-qSJ)lC36E7_Wn{Mi z=$7DD!N=9PAaRis7YK@7)Is`ce;ecuqnb+mXo|hH~4o=eN*}L!R z>#cgH@&OzDZe&zad}cIe+eD`C!7IatWeno;tN_g4S?l=HFJ04WNT1p63VhTDbxP0U z)Gcip6f|11f%_l#va9SV-*Z7Log3CUICWfDxV)yER^}T=dZl?w`a>^fDhzQUaZLMT z+G`#o%3G|v7r!R@GJOjTRa%D=>UXPTd2~^ez`@H2s(Jb2YJZyhC55pe3;Swr4q(R&Q}6TXU?kH@ zpsmi)G;X2bo!0+mw$sKrMe64Bi){AO20_oSk&|k}neAR&(V~|@(>$bi+%7h@y!mP` zDo?!v$3EH5A~_ltU83jRkW&FcgCB8cqLzYiB4M(^oV9!blwoUOZt!Q97|$E1s$b z`Ui)1P=-$R&E6~LNwKvZKt8uDRf_a^yAQe!C`Dk9u2mCaVt6^*a9HV4*^G)B;G};- zuMpo3pj>Yc#_IB1)^cw)WL0@)7$^jtLq%MghOj{MU<$$kCQrZaa-OS1_L4J|a;Z{F zaNM@yZ9$mClX^?|1&Hwvy3#cyo8_Pkh6GcN>p#4(q@Q@JwK&AyPP5XiElTGXUlKKs zzsU#(XPLGMzI$Ug?kU;JL*BDs*1~tLsSzWMz{4dnfEbK5Cdv8fvU9P;;3Cuuw@e0!%yI&xnqe z`1p=!gt0|4ty@=E%6nommh~fh!ugHkb977CevUlW3jRg{nbiH2UWLZH)3NuA$1%p; zSJX!y(FYRnVlO)}m0N4Y=TU^Sre2!vUK6Kb+N#3~FCSOoY!glRpZDkn(#A;_x>aOP z2_D<=Weg^SU-4`R3l4?abr0ml4n{NdGjrNSrqPKhIbBzJE;8csFs9B5%UddgjbJ;| z_FHdk_M#3mtYp(&Ta;9r-8K3&t*eFo0zD>qAUIPcnv5&HkilU&aB9)}EA4YvA(ukr zccSL4wR9Kc`wYg>5}Byp(Ntc?U7fhZj=AOiV_4ahXSN!Hp##O2JWz=JLYCAc_pKk{ZxI9Vn zK91>gq~hZB6iIFPm7H3rJ-sF0ZEDOK;^-?yVG2yj8+SrpvO#~ae zbOk$}_h2MnboY6GiBZ|L#`4>AAK5#)^?xvz87zsI@4peaN_^(xpZnT`-rYHiX+m>B zPMnp0jp~~DLge&nmrAZ)oV?72wtc!7Mz>bvy3t+SG9Ry!c|qKSsPrYqAJJJn3%l$* z4m+GBF=VZZJ0IUAQax~F%5_O+HgKOJneO0W)3q+mBi6&5fVVQHY0kaim*3%}(jimF zCk2jS$ro*mO*4d(;5|aj{M>K~B(C;6hB3}_Gg&=PHqrvGie$xks-H7QJ*TN?q;Tm; zqw+@9ij2wd#s`YLe(w$n&h4Ms`)9V}9-%-Jfk@8-3fFS)^_9N7R!yg*e8+s&se^BC zN|H!ddj$vcg-7AKdDagDxDg(q_tY94^O`Kq%hkSF_O9N`*UXTF+q#}BY%h+h zP(hvKr(`mwt+)s8H{FwAIv+M*12Mz)w+#d&mA8yhi(l0&uU*R~LQ5_SjEwXG?JP=*8uIvP!X}Q;<;7scxvt^J24AD#{azJlW{imSYse(tBvE z$t=)Lx9!U9()F;?2ajgXVOO)lr`AnZZ>}^!hEntLCVzrpNc1$MYp!_n6#E%sgqW<> zXp;&Ytk_$EhLtTyiH$yUBs+M%ns~qBM-BIu@=C*H0nL@LTf`F%c7Jl$bYp!3oszdb zaOGBZMo^0MH2t|r4wqtA3!rNU`f8o;VHEJz!EvY`p9n=9zC08b>oor{wpN851FK*u z1QN~(TE?Hbzom#{zif4e@_)jmAQnJiEWAe^(J~ghL!K49n#~Fvd>a!8|J~{@N2Z zkuga3q*%KwaXh*XdVM9Qnu~b~mVe)pz!H}MNS{NWWRyD5s{rQ{VP{~U9-DjC(WppQ zwH*~+p}y3}Zrl(adAzm7+>N1)7KwQz;Z)U*?#JL-d*72)aioFkyjTeyyL} zbQv_JtgoW5AnU?y>i$g z(SPa^uEY6Nc+_jqC4xuQm2a=O6A+?%xuxAPAWzEfZEOS@2pMDwFQ_Qljkowwdx>If&$FOqX4ngc- z;~}f34-W(a1efp1zXxM=44rLH;Q`1ueh168ErqSfmN9XD7^3ZXUb4Vy&u`CTj81+#1Ekr*cN#%fbOor7k2SRIPby05%JojC=6c zZ+0X@wQpAY$T~A&THvYkI;ItQjD+5=l7r&HQQv6`<;IM=cytCCZ<6$GpgNKUwK?=n z2HLPoZy_q!RJ<+nY86t=s$P85uC7c_PFMn6vT5H`_06^~?#6vnWux7=c;9DgBaLVa zl%D2NdFB0$Xf0hMakzJu;XzvUHYI2p$w|ECk#NKLs7r9q>vV55}t zqWum_UDWTXzAn1UZ3@=r_)`JG6 z*SxVx;p|Ead~~tnax@859Ty9-r5&Bpd17iQN9vt8`s0Z4hD>orPZV0|tH-V_W9lE~ zC4JycP>esA@DM`k-kw0ZC8&`u9AmBXRkp+(yPD|V8U^Es(Mi|y&jMqf3J&r(OucTq zYFaZ+J=ki5S6&6>2`T2s5|*iRVr%4cG8yq6fIHhN5ftRS`m<-Pq(OTJZnHY0WC9gs&(_o4&H%@1~LT#<|Su)V5P z-yas2t6a;TZ~*y(xhwdiY@tL8Jt;V4JLRm6+|#Xfy%IZ5d-hqhVCu&w#y%%JRnXJI zb7X)if7UfJJU&SJB#BV`B3bZvc87~LYn-hnl@HI?8%wz|+>_{!mq9{&P7`xcDL!|y zbWJm?E1!C)e7ov-_0snxN4`hejQOEy0Lro4%!FnIP_zscN5@IkAs+$#EhE%ib<#W6 z5VRuFng0n4GPb*o5>m)$@sN`1bB3Oai8#A&K*q!fm!Bz${}g(_ z2pi5;!fCUZlr^RD0 zLtec5LZQzCiOyV8-fSF?7Q=K$jjv^-|7q!|W)hr@?>>%b{)L~qzZ1bp8z%rhv5G;d zx{OY?oY;k4Y-I(Q^L@pedk^?s{#KL4 z=7=H1#<1F0o!F17{)&4U<5X*Ts~QP;RPU93D0U53nW7Jb>F#aTBbU6Exv6AuP?(zm zz?t)qkS*cl58U4Q(jv*&6Ca0rKGTRMw|JmaQZkMYQTgOt8b#tGT*;=mJ`Lz#;#7?n zsV3v_nPer)bOvIIVftIdp-U)p3$bGWCCLSBg(;+6{tlV`n0dOGri1bF6v!k#k>Ud1 z;)%^E9$w@a1l$YgRe!~P+DJ0>%cwTqj`T*YW(dlr`vhsw$-w zM!^g25;A9?xJN=dOensRTyE_d%2xd*l!$fr+?{}sh)(gCe!N&3+@Wx>X}B*`A17dY zZKcyhLbft3-tZFp0&OhDbF^_*6eChP5eGhCZdI8 zLj+?C0+iFiLFZbdiaO9tewa<(!>-x`DDov_Eo!ODvGEA5Yswv6>FR&dbL4bQ2{_hF zCO?xIZN{o_AkH4u1Hv;L3lABmKO)rfGr#a)RwADv^Y88OFApe^tHq~fWe{^GwUMXg zheheEbji^Rqo=}OiHBLB4tbG$b*jBtcM+O}$`AXRB)UqkouHRasH0ao?Kr3uW#k7C zp&EE`uiYyvU;hz)rUPkX5qxCP^< z*7qgHx-xp~eC(bB$H zFjAOhd$yb}MVX-7)kr-6Q|U2B0@-f04g||)n3+H<6Wn_%w;kBWUDB6lqeV~O6_zsY z!{5b4cGbyId2`vIui$>`%IIUwu{+*8ma!dVAj^P@!>wHhPge4J#;gwvsU%Q}oob~C z++E)vQ~?){)8&u@%G}%Cx?i>ajRErS$e}&oO_>-dGN*6&vCdX5lo#%a1{cDjge&IB zWcE?A+1q5_+eqak9_gvPp-}B9tshyRUHcr!Tc-6oBTb73R&F>@4x{#}X%o)#&m7#; zq(?b_s+3RkW_UlgF71+6h!=fzFLgJ5D2Y*6aJz4~_@i_mBIM9WS)5%qkCKJRHT`R8 z9nEl3aLU-5$7lA^H26^9WVi`Y6GuZ*D$1#4ZjDUvxImH1xWua7Kd&jiRcF{r?aNQj z%IyP^*l>o=Fe2DCu0Pv-tLqD6p13cj{*dH*$wcb1w6fT~e1qs#UG^69Qp@;dE(RJD z;Ki{Aypw4M)n;%%^3S>&q7Ys@M>=^SY&!R_bsD{}rNE)Qk@vX``M4`-AkV9afzRN& z#Z`yC6Od4c!epUB50k5tZ7NmZc!ut+YJr#rK)-F*CqCbw0&v`Vc~2OV!#58bNx>6j z3e)wEZS!c}i3hx#y?-LIbH41^T0vY|+21yfj_(G-2t1VgxA+X|RXwA;M@O%|4NP$; zz91#duohxB#Uf_P?0t|e;my{oXLL7nFrRzEpD?DE>MKiYhVpZ#yzn83saG$&hth~k zX2UE4)&-gv9biE>F818a`a>1yJAzy+c?D@k)6%x}N*dTDtQmkpCFK+LvOgOH^3<0y zYjOd1@x9cxF5vnhz&Es;n?MW;;2*rVipu1UysV}Q);bX0d_8^E%l}2I?7z~@< zn^(tw)gF(}^Nb+d$F7F=-O2U#qCoAJGv}#^vyco8t*}oH^ZB2vUQ``!0ZJ0O-zl7y zh0QJ#Z04SLX;xSyG&<&~-f8!mS_&@J2Z0x4JEE?Wk&S@*7fj_cYT9{|`6})y7`xy2 z@RZ%8Z7$-4w=A{1PS9YR%S6Q{;JgnN6*4_(1{7N(Ze#5>bWfg`MwY3HUk?9HPd(|= z?-<<~9I_VdcFRwH2TJl@p7H1j%k40*9E~Z;d~6u8kRpA=)jkWLfIhD+KMj@ZKT}0T zO%LCqug|DJMFrjLU;c2(=7t#Y(yLSoa-5zH5c6F2E}|Bl4rs1j{ty@WgN8RQXaT|< zxs_Q54(dLt1^gZ2dWBduBaI_^_~^5xjGyfK0-elSP#S?u z{Y*ff-K_u8Z>`2fci-Qv%n}4fb`Y;+PQk^h`BA?z<093jk_I+L+u06aju1QDj@zuh zDHRkQaP|9L`M(;Z|G_LUG2*nKw{4fP>-SNeAk&wL9E@lY*brTpUqgO>5^c>7xB4IsUHh~5ceCyTe((J5h`hXj>>=lVwi}gbf2OVQUDPp%iS3rw}A>>6_Ag6>7yNN<#==j&*Ziw}}IGN0m$x7IaPs|jvT{{R!+ z2X>p?-=D1l(!_U{c^~xNB(kVD&_Qk7*KM!CBWE%E^f$i!WFWKune9KpgG4Wav;Iga zh#B|Xw!VGKZ;wphk|t)q+ylBJ{yjf2={5rOIHPvI6}nski!?11n-Z!T9zSWaD{xu+!dH7){#qZM&BLaBozoxh zSWX+mEi>=`U6zYYC5}lIoIWNUl%P~@w%@cC#RW+Cl!~KpbckM*ITlAg5Ow{wL%jBF zg^GkU!p77EwBLkY#=W2!xu)=Y)0w#zOx)u@vg++xq(NeeSCzigA&ot7kGcgj1d)bf z{o-y*yRp26Ly=+%8jMM7hSqsa9cHklAA#BOK^~#%_pNSY2)RT(cdbwBA3M=oho$CX z`5H93@{kl|D~i?o<(8dN%iI+iL`B*F#^wMokpH$#^&55p9|nw-28VOpg%$;2n^(+U z=dGv)%6&%d>fjjSeLbm|D=Q*Bs%*c!-m!K3N_kcYxN{>- zEbIg{TXy9hJ!kfQILxy{cEWC??BQ$KevJ=hpkiBl_lE(kHYvHcF{|q{DWNat28z|m z0|2~4?g#%mR5bsU#KY+E45>Nxr_^0s3nRhB5<-_kudT|~{Z+n^M83h3C9frN2c@Zs z=oe2QkKc!U&es#137d-+K3#vkP`A6DtA-7E;fN~O9rHSvr(J24=doyFk+X1Z&*L%t z*n!OOI_T+yl*p+b9Mu=g=$URy_eD?w(!j+MOiuEF{bB{Nrgzv{yDvXN!h;+TuHg#%$5PdFGp>PgdVDk%=oeHm&wh_^CRqq5gIazPY6TTD@V~_irJ$y7Dd&U zMX`I-W}B{%8`nGpJtns>atS8n8ll#A>#-J z_?9612??>jlNn_CPqG3wo*$}$4;BMVW4PO`Zzj9{V8h#*aI3nv>*Hhs_AvO(Uufu@ zMKb#3Tj?3?9@eegw@^9F5~%p`x!^!X*Au9LEI3*`0P) z_vgrDQB%0l>8HrE*H0E$%DbByU36_Bt8z7-UI%iUEHqDum$`0P=WzRR-)$r!D=AH? zg|AjqhRmuSYR{1Dj~leK6o!9nfRtVg~lgZh)u97 zgJb)>H?jjE#xne&+wsd#=xh}KLmim{w@`Yk%|REXO9ABlP2(1*`#9|-Pr#)Z3u{a^ zZQM?uJ<86aaxj6V2Y<7tyHRQ{UZ8od^OCSua*Ql4n1zUzU^_sXnx|B!J$1bN<`v;Z zb2hsY2OaX|txX zz2W9ubRVj}%GnH#i{k!U7QuoMxd%EvPB!I<&hN!sD>uz~{9mB4Oh^CPn5~T0^eZ=< z*Z#P!RzIPa!Qzj^o$C(2$VRbyIOcyp*Gb3pkePl7x`nL%F3|%&okdOa0ngf`%(}wn zZHZIa^;hCE`8q&1m?hCYuFq$eM?>0sLi@Sg0f^iQDo)p6BoLMR6eTd|zWsAK>@hj6 zqu0#v{3aRsLr$tO%|(ZoC6$^MTec?a;KO4XSka9)YBdS3+%i21P z$@U!W!t542cVV5lR8NnuJHBb{zm1|y1)D83RH$SucnqgEyM00&--#j`CL5%qj&qYd z7XAIlMmuZb%biRwm)qb_@dwQbU|-9wT^OCx@r1Q|J<^_q%GNW7g6U(YeK`z)-Q4iB zxanFpaPA#l^t7)fR#?Q^92Y}kUpPNEs3b0jM6$viEt@0RE4D61g%9w=h=T0P>CN}? zSs1PlL!Nm)h<}kFJZe7af^AGx)ne<+AC8=_Gii3Ua$CLwO1WSD26jR<-XW>69YPi0 ze(TzE=Gg?EwYF-*=5FocHm1LcGn|p-LWC`Gj*vNy*6{1V}1b7ZVS? zE(@SxH3Tkm?B@iuvEpGbBY)r$yiR?I7(65na`}RB4`>?)Bo5Yd)imQB0qKTSO<`p) zPk=ZuOy=&5;7T$P5_<|O9kvnw2^`r+z6XZ1NCg!v7XY}qEp@6Fx+@@Qo5FL7Q!3~* z`Mp`{LomAa08@60@ezMs3b}KcaeBatVBl-h(O;ym=sL<24X9+$vu=mLE|PItoxAP9 zGojbaqO)!-d+?8+Ace{5>=b>9prw@dcpDT zK%k=Ra=(6-()xQ2u01yoH0sJHxwGCx(Kl2M}tT^2_66RbN_HY7b`cc zUwEjp;Zgbp)(1cRq;FdkFxK-*x5TM*x-{$Pr_DSLze<%}=lB9bfj<}j_Im@e}+*sk5%m7uH zwjUG}sY&shDX zz4B*>Wb2Vsea39Qnl6WvNI>lz`^CWUJxGz| z=I+1g9_3LSf7{GnI5F-$&jP>P5Rd~}k%E!W&2s>R#eZ5^AtQW-Daic?eDH<&J0#{% z^Sry(5EXt-z#er1`GS~V#2vBrK(8Bq^7@rz>Ti{CBPnfnrUXdNdQ#}NMWCQMT=~0U ze}*@%eDZt5Gwx3a(>5E8U-8oeLQX}`$672k*?8T?NOg_vto3mB#>B6?E-bHmbB-3~ z-4ynGuI_+}gr?%_#KIZ^y0d@WA~1!e^rafeEuPFGbj;ljN8j zkyV{dmWkSRm4?0laT0;^vsSB5agTM}#gs*B_GCvdG!!`1*fq>qKz{kwnBrC-T5U>? zfL+TKf*9oE#JI#W-Vc<#azF`aa)tmebU8=2XJ4VPE_->IZk3ZN71-`~gue~wB-K7k zqaIK;JU0MsKj~yOOUcyKbElK`?&0K}Z*j367Nv8560KFxUmtW=bzzNKP4ywhql z?o0ffMrNQz1Ltm>$-q{k|J>}MW^&hT1JE_$Ps zxnT#eI$H`@QG}qIR^8WpN5NzVP(}a=y$L*Hip-&UjPXCc?Gs|z}81iZrmIy ztlgP-Zn3GWE-r@XThx-=KM;K@$9y_8u!RANMbp$5b7GhR@Pr|A>iHX10qja&j}m*# z?+n!fN7p-&fkl~q4Eus~U2z4j*76?jXDJ#QHCvot$YPWeIJ7a@5+S%6%2d9`16um{ ziR_2H+uTI7i&#cLp!s_!$}s6y6;Iyp69~e$Vka)~?CdN7D|*ZVCrQSng=;5DU}7K&U`he}*hEADS3 znWX&6CP`{6FB%w-)lgn@01P;MVdX+VyhhJ~(%RsVuEAKQa4I4E8Yl@q^%q&n|QGQbL_$3kf=l_JQtemxN_E^px09joOdc-wxp z-!NW}IJL&I!-S;mr`{shfY7bGS*uz`F++LWx};lY%HAhNJDSgR>g}}i4(r6u>pW)k z`y6U_dOM2*HWWozx9Gt~RxM*;r`|g3?rgU#;1bUaYjUPV;BAMVh zdH!jigKpfQGE|V3(AsHs3Rh{tvf*a2HHJ9@b--noecdT>7d|AVgvVo@LVxKQ2T0s( zk;n4s=tdD^!C3w*3@m{qwr&$3UYv6Y`-lX{&L)wXtS}=WR`h33scB_@lux zS6&3~!=qPFDr2!0HEcLafy`K}(jj*!T=AgrUP8xH-PPVpG+emo7WqQIO`KD@842m@ zQLR&n>)EjgLBw(XQbPG{S%xw|lF~e^D##vaH$`V7W;rYm0cEXkhbO#BSVZ@e?QX{D z9}59t3zRDOjjiuqG7NsP)H8cWKe*#Y{&^oDPanA1E*!0X!nGeiuZVR7|Q4bm8S2hHW)9Ab1VwheLLPA5;Y2Ma2@z}*Jm|t(Jf@UFDB?3Ta!?TCMb}&7qs*5Ba4uxNL@%k*QUl&D2U<2w8^w@oY!F zTjXgtQ%s1%7TQoz`I^zyT))I!u<0nH{UYlbl2+;ly^T#h)HO*x^+(sPRvS7skILrm zr;gv01s5DeKZ_HwzNeNRLRw$&#{kV!CY`PTL~~6Me=2SqzdT4enY=$e>K+A9FqQu2 zb|4o=X7-T`{>itHk_aKNv_slY-~HV1zSIRiBCo03%Q6_CBz>}0@-AQq?e?>pe+L)Y2=QQl3K^NoAj5b9`a`*G%6(ki5S+A_DO}4G;-t z{Tbf}6J*YKJQ~ts{d>YlJKa~-;5Ls)L`uCpUsWq*uIa4%GYZt^$bR2$WIReVM;t+xNYcQs<^Wg)HhG3K$ zB!CN$k~~%3sVc#C>-S8lva;O9-uh`Y9=a@1L z2!~f6Gxa~GFV^{V_o4D_a{3y52t%RjQj5N}MP~09PVKFemQy{M5GV7z zn=_@_+>U~uoyfi59#!6EgHypme^xhD4Hjbj0T(Ha$?2?-bk50gy~8B^Mo03=63dW? zuFV%}Nt5QlY2|+I%2>6B(K}dGE=8&FRO5ag5Yx#_A-Sr`chRKjK%SORZ9n+Q3l~B` zM<>h2bNk1~o1chsL*PEJho}0LWCQwqe5ex<(p9@eR(%T?j1_iZy}*eGdlS6;Q%IrM z)M2_*Mo}(Ta!SUkwCV~tw^?_98?UXgk>b~9+yV)hh+dWF^FsA?NK9^uK$s?O`%u7z zOX7a?<^st6bBS)1$)o+28jtTRk@FV09@BgHf9wXoSQ(bXoXSCfwa;FdB@!SD>_M32 z!j4k}zci+DJGp4Dki)Nq?GKO zK6be|SUdeDQStL^ZXAiY)`5Zhp%Fd~wYuIdA{UiragBJNpAuk{>suAK$}vE3l%8~y z``rc4G89m zxSO?SXNqa&`Tc6(__VTD#Zk)+>B#R7)4S@#2QR<=j>QY!)io!cP;5p*s8P zUwn2#778E)W4n)B3;V54zkss9 zFC|zx7>jCOC6Yz^iK^|)ZMLXI2_c-TO@0s5NBB_|b+kOX%v;{T#FJ_YkMW}=>mhy- zp9T$tC#gsl>TF5SR+4O_-y1k0-WWDyGd1?DJ$ZC`>My|JQ^;N{y_k& zS@}3(AFieHwxdV?q;~Msj$71B;SAmfmJe_Co08X31j9a_AA@ht>mlyN%fj@W+uxaE zoS~Q2?9jczZ(D$!$5A%R#h__K(Fw;t6Acl>6cbNSE|$23)M1xKi!yy?D(((lT@otK zS>L`z{}Ko^qk^Sa9a#amaHb1iq+dq3>)&Ug`9}h-b7rVNVlD2*cX3%F|MQR0O9N8< zOw$e+W^V;@$(kV?8@M#7nyVtFOC5BJ+Fq0UtW)O^-VJ051RkT~jH6?V2f_}>M-}z) zX}G>~>k}?j=CnSe@{25OF)j&evRlZu%gjF-{^l3YeU$;5U#e<`Q11clC!>~4!uh? z?Q)pgvpH+Jl_s9Vb{|MYmbk1nIN>cdc}UL7LuTx1qP~THdJWu}WS`J<0-&R?pxsygNoCYs(NWzpe5RKW$IpWi;m!GB{0C_rBWoeas1u>jqf)>wcU*DC%S2uA`RwtwC9Ki6-#u2KT9Z2_{*$&G5)b;Z3iNAW>_sSuoLY;fK z_OgyjCQ7{$^dNb>fBu5M#Df2B9V{2bc~vQ>T~PSH{=~my(E|7IfK19vQo(;*)xR1O z|J}#_t6I?PAr0{GA1swCE=F>>^AGB3+xTuE{N3vRqf5(fd-NvP_{)KNUaD0wmsWw% z{vESFL$^K3w0`oCHkFX zWmNZ(o!eiBL;cI&_^*#`M)p?1Y;U+hTvdtxL(8bSjv#M0jQD1_An7oNQsg-{i}yUN z*jJxceV}E4r_^>BGonMJ-%-BwV)yp{@R$GMHhn6<*BlpWY|MN`s?;e4fBaNA*isirium9=Y_~(!ftd9n!K#}E1eA2IT8FJ|)cmA{A z2c&T&-dI?hXs*AvdH=h9WYS%u8`UI#o&WdWUtl0_@(rQ238;61(sjH&`dNnhGFy11 z&MnM3;t$U4O2hmg|LE_}6{t0&jNI{LVpnLEssRm%{klx0c>+V1U#3&?^9uVWr*{9y z+%KZeE}5#5oc|BsBlF!hw1CZ1$kO;Dv_sbT=W`u>929+bEeWYH5=__jdN`iJaL z(517QsqH4aV*lXX|MbhKs}qU8ebFvXfl~W@4v0?vl;e>4QJ%FmoL|k-z=IuOI!vPjy8R4jqNMR zXEU)|bh9dqsYzxg2%_QE=wQ^CT9uVpvOe?dsvyCC_P+m_34h#Us`aaCP?F4P>psHB zQ*(5-J*e?BcYX!D#D^Y1-fSm_v?IbR7v(((BiH^Vc7z4&Xd9P>^IW8hgjm|XVv$%^p6>*TyE0LEu zJhMN+Ic+nX|MB;jjWGP;={6ABuQrtR=xKSI6fn}UTWjizgYxc>vuop{Jkz7GD+d&aX3JAH((--W#3I?(Pyk z?mpdWueY{CsD=>PDMZ77F`nW5wZBWF!%hEuWeV?pqzi0lv1YNYQ*>|rTvyfT=ev>o zLT$gxftRhNzd~OB54w8lX{O*A@gLiEyS;1q{H{drZtmt5%yuTBAc59I*X)>HwEe$Z z-IcI!%8%c?v5zW&T~pLL8$Eg8G&#bW^T(}+TR(GMpR?M@;J^MIZMlYeMyuuIyY7^1 zW7pGnT{{!VPGdmFYKVgxM%}m1xRTXQgVf6!^&ms`SDzEbeNYg=U>kJ_=A9y=VKN#f zI7<|y95tFwM$^e?Iw7x~r+MD_w?Eceje&t7LEy^%t&S>(ZfG+yv2X||I5aTeVr&o) zIHR9uHVLN!9D3~;5B_;y+|7yCa7?|U)?tf?(ZIx#MCqPXI0AnEuwE>*@(wTuF?hQA KxvX Date: Wed, 5 Feb 2025 19:02:49 +0100 Subject: [PATCH 0764/1024] Address overlooked feedback The sentence carries no meaningful information for readers and the tone is not great --- posts/2025-02-05-crates-io-development-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-02-05-crates-io-development-update.md b/posts/2025-02-05-crates-io-development-update.md index 1f7fc10c4..aaa810ffc 100644 --- a/posts/2025-02-05-crates-io-development-update.md +++ b/posts/2025-02-05-crates-io-development-update.md @@ -46,7 +46,7 @@ We have added a new feature that allows you to receive email notifications when ![Publish Notification Screenshot](../../../images/2025-02-05-crates-io-development-update/publish-notification.png) -This feature was another [long-standing feature request](https://github.com/rust-lang/crates.io/issues/815) from our community, and we were happy to finally implement it. After some initial pushback from a few vocal community members we also implemented a way to opt out of these notifications. If you'd prefer not to receive publish notifications, then you can go to your account settings on crates.io and disable these notifications. +This feature was another [long-standing feature request](https://github.com/rust-lang/crates.io/issues/815) from our community, and we were happy to finally implement it. If you'd prefer not to receive publish notifications, then you can go to your account settings on crates.io and disable these notifications. ## Miscellaneous From f49d3dd5e5dc45297f62881a63fe23f51609bbf8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 9 Feb 2025 15:07:23 +0100 Subject: [PATCH 0765/1024] Update Rust crate handlebars to v6.3.1 (#1477) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 272ce0992..2ecf07b89 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -793,9 +793,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "6.3.0" +version = "6.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6b224b95c1e668ac0270325ad563b2eef1469fbbb8959bc7c692c844b813d9" +checksum = "d752747ddabc4c1a70dd28e72f2e3c218a816773e0d7faf67433f1acfa6cba7c" dependencies = [ "derive_builder", "log", diff --git a/Cargo.toml b/Cargo.toml index 1832277fd..cf59982ad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" [dependencies] color-eyre = "=0.6.3" eyre = "=0.6.12" -handlebars = { version = "=6.3.0", features = ["dir_source"] } +handlebars = { version = "=6.3.1", features = ["dir_source"] } lazy_static = "=1.5.0" serde = "=1.0.217" serde_derive = "=1.0.217" From 78a32f3e38cb933cb5f6dd3bd2bfba07de848ae6 Mon Sep 17 00:00:00 2001 From: apiraino Date: Mon, 10 Feb 2025 12:53:58 +0100 Subject: [PATCH 0766/1024] Move all Rust survey 2024 content to new date --- ...-2024-State-Of-Rust-Survey-2024-results.md | 351 ---------------- ...02-13-2024-State-Of-Rust-Survey-results.md | 385 ++++++++++++++++++ .../do-you-personally-use-rust-at-work.png | Bin 25481 -> 0 bytes .../do-you-personally-use-rust-at-work.svg | 1 - .../do-you-use-rust.png | Bin 20868 -> 0 bytes .../do-you-use-rust.svg | 1 - .../have-you-taken-a-rust-course.png | Bin 28812 -> 0 bytes .../have-you-taken-a-rust-course.svg | 1 - .../how-is-rust-used-at-your-organization.png | Bin 48664 -> 0 bytes .../how-is-rust-used-at-your-organization.svg | 1 - .../how-often-do-you-use-rust.png | Bin 24435 -> 0 bytes .../how-often-do-you-use-rust.svg | 1 - ...how-would-you-rate-your-rust-expertise.png | Bin 31181 -> 0 bytes ...how-would-you-rate-your-rust-expertise.svg | 1 - .../technology-domain.png | Bin 62291 -> 0 bytes .../technology-domain.svg | 1 - ...at-are-your-biggest-worries-about-rust.png | Bin 63172 -> 0 bytes ...at-are-your-biggest-worries-about-rust.svg | 1 - ...what-do-you-think-about-rust-evolution.png | Bin 34882 -> 0 bytes ...what-do-you-think-about-rust-evolution.svg | 1 - .../what-ide-do-you-use.png | Bin 37818 -> 0 bytes .../what-ide-do-you-use.svg | 1 - ...f-learning-materials-have-you-consumed.png | Bin 41719 -> 0 bytes ...f-learning-materials-have-you-consumed.svg | 1 - .../where-do-you-live.png | Bin 88982 -> 0 bytes .../where-do-you-live.svg | 1 - .../which-features-do-you-want-stabilized.png | Bin 78420 -> 0 bytes .../which-features-do-you-want-stabilized.svg | 1 - .../which-os-do-you-target.png | Bin 48585 -> 0 bytes .../which-os-do-you-target.svg | 1 - .../which-os-do-you-use.png | Bin 28010 -> 0 bytes .../which-os-do-you-use.svg | 1 - ...which-problems-limit-your-productivity.png | Bin 89098 -> 0 bytes ...which-problems-limit-your-productivity.svg | 1 - ...which-statements-apply-to-rust-at-work.png | Bin 41239 -> 0 bytes ...which-statements-apply-to-rust-at-work.svg | 1 - .../why-did-you-stop-using-rust.png | Bin 46544 -> 0 bytes .../why-did-you-stop-using-rust.svg | 1 - .../why-dont-you-use-rust.png | Bin 43639 -> 0 bytes .../why-dont-you-use-rust.svg | 1 - .../why-you-use-rust-at-work.png | Bin 51805 -> 0 bytes .../why-you-use-rust-at-work.svg | 1 - .../do-you-personally-use-rust-at-work.png | Bin 0 -> 25550 bytes .../do-you-personally-use-rust-at-work.svg | 1 + .../do-you-use-rust.png | Bin 0 -> 21163 bytes .../do-you-use-rust.svg | 1 + .../have-you-taken-a-rust-course.png | Bin 0 -> 28262 bytes .../have-you-taken-a-rust-course.svg | 1 + .../how-is-rust-used-at-your-organization.png | Bin 0 -> 48963 bytes .../how-is-rust-used-at-your-organization.svg | 1 + .../how-often-do-you-use-rust.png | Bin 0 -> 25034 bytes .../how-often-do-you-use-rust.svg | 1 + ...how-would-you-rate-your-rust-expertise.png | Bin 0 -> 30836 bytes ...how-would-you-rate-your-rust-expertise.svg | 1 + .../if-you-use-nightly-why-wordcloud.png | Bin 0 -> 44077 bytes .../if-you-use-nightly-why.png | Bin 0 -> 39833 bytes .../if-you-use-nightly-why.svg | 1 + .../technology-domain-wordcloud.png | Bin .../technology-domain.png | Bin 0 -> 63740 bytes .../technology-domain.svg | 1 + ...r-biggest-worries-about-rust-wordcloud.png | Bin ...at-are-your-biggest-worries-about-rust.png | Bin 0 -> 64746 bytes ...at-are-your-biggest-worries-about-rust.svg | 1 + ...what-do-you-think-about-rust-evolution.png | Bin 0 -> 37269 bytes ...what-do-you-think-about-rust-evolution.svg | 1 + .../what-ide-do-you-use-wordcloud.png | Bin .../what-ide-do-you-use.png | Bin 0 -> 38918 bytes .../what-ide-do-you-use.svg | 1 + ...-materials-have-you-consumed-wordcloud.png | Bin ...f-learning-materials-have-you-consumed.png | Bin 0 -> 42311 bytes ...f-learning-materials-have-you-consumed.svg | 1 + .../where-do-you-live.png | Bin 0 -> 90628 bytes .../where-do-you-live.svg | 1 + ...tures-do-you-want-stabilized-wordcloud.png | Bin .../which-features-do-you-want-stabilized.png | Bin 0 -> 76898 bytes .../which-features-do-you-want-stabilized.svg | 1 + .../which-marginalized-group.png | Bin 0 -> 48061 bytes .../which-marginalized-group.svg | 1 + .../which-os-do-you-target-wordcloud.png | Bin .../which-os-do-you-target.png | Bin 0 -> 49174 bytes .../which-os-do-you-target.svg | 1 + .../which-os-do-you-use-wordcloud.png | Bin .../which-os-do-you-use.png | Bin 0 -> 28745 bytes .../which-os-do-you-use.svg | 1 + ...lems-limit-your-productivity-wordcloud.png | Bin ...which-problems-limit-your-productivity.png | Bin 0 -> 87646 bytes ...which-problems-limit-your-productivity.svg | 1 + ...which-statements-apply-to-rust-at-work.png | Bin 0 -> 41988 bytes ...which-statements-apply-to-rust-at-work.svg | 1 + ...h-version-of-rust-do-you-use-wordcloud.png | Bin 0 -> 55146 bytes .../which-version-of-rust-do-you-use.png | Bin 0 -> 31928 bytes .../which-version-of-rust-do-you-use.svg | 1 + .../why-did-you-stop-using-rust-wordcloud.png | Bin .../why-did-you-stop-using-rust.png | Bin 0 -> 46683 bytes .../why-did-you-stop-using-rust.svg | 1 + .../why-dont-you-use-rust-wordcloud.png | Bin .../why-dont-you-use-rust.png | Bin 0 -> 44513 bytes .../why-dont-you-use-rust.svg | 1 + .../why-you-use-rust-at-work.png | Bin 0 -> 54796 bytes .../why-you-use-rust-at-work.svg | 1 + .../2025-01-rust-survey-2024/charts.js | 77 ---- .../2025-02-13-rust-survey-2024/charts.js | 83 ++++ 102 files changed, 491 insertions(+), 448 deletions(-) delete mode 100644 posts/2025-01-27-2024-State-Of-Rust-Survey-2024-results.md create mode 100644 posts/2025-02-13-2024-State-Of-Rust-Survey-results.md delete mode 100644 static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.png delete mode 100644 static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.svg delete mode 100644 static/images/2025-01-rust-survey-2024/do-you-use-rust.png delete mode 100644 static/images/2025-01-rust-survey-2024/do-you-use-rust.svg delete mode 100644 static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.png delete mode 100644 static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.svg delete mode 100644 static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.png delete mode 100644 static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.svg delete mode 100644 static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.png delete mode 100644 static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.svg delete mode 100644 static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.png delete mode 100644 static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.svg delete mode 100644 static/images/2025-01-rust-survey-2024/technology-domain.png delete mode 100644 static/images/2025-01-rust-survey-2024/technology-domain.svg delete mode 100644 static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.png delete mode 100644 static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.svg delete mode 100644 static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.png delete mode 100644 static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.svg delete mode 100644 static/images/2025-01-rust-survey-2024/what-ide-do-you-use.png delete mode 100644 static/images/2025-01-rust-survey-2024/what-ide-do-you-use.svg delete mode 100644 static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed.png delete mode 100644 static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed.svg delete mode 100644 static/images/2025-01-rust-survey-2024/where-do-you-live.png delete mode 100644 static/images/2025-01-rust-survey-2024/where-do-you-live.svg delete mode 100644 static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.png delete mode 100644 static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.svg delete mode 100644 static/images/2025-01-rust-survey-2024/which-os-do-you-target.png delete mode 100644 static/images/2025-01-rust-survey-2024/which-os-do-you-target.svg delete mode 100644 static/images/2025-01-rust-survey-2024/which-os-do-you-use.png delete mode 100644 static/images/2025-01-rust-survey-2024/which-os-do-you-use.svg delete mode 100644 static/images/2025-01-rust-survey-2024/which-problems-limit-your-productivity.png delete mode 100644 static/images/2025-01-rust-survey-2024/which-problems-limit-your-productivity.svg delete mode 100644 static/images/2025-01-rust-survey-2024/which-statements-apply-to-rust-at-work.png delete mode 100644 static/images/2025-01-rust-survey-2024/which-statements-apply-to-rust-at-work.svg delete mode 100644 static/images/2025-01-rust-survey-2024/why-did-you-stop-using-rust.png delete mode 100644 static/images/2025-01-rust-survey-2024/why-did-you-stop-using-rust.svg delete mode 100644 static/images/2025-01-rust-survey-2024/why-dont-you-use-rust.png delete mode 100644 static/images/2025-01-rust-survey-2024/why-dont-you-use-rust.svg delete mode 100644 static/images/2025-01-rust-survey-2024/why-you-use-rust-at-work.png delete mode 100644 static/images/2025-01-rust-survey-2024/why-you-use-rust-at-work.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/do-you-personally-use-rust-at-work.png create mode 100644 static/images/2025-02-13-rust-survey-2024/do-you-personally-use-rust-at-work.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/do-you-use-rust.png create mode 100644 static/images/2025-02-13-rust-survey-2024/do-you-use-rust.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/have-you-taken-a-rust-course.png create mode 100644 static/images/2025-02-13-rust-survey-2024/have-you-taken-a-rust-course.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/how-is-rust-used-at-your-organization.png create mode 100644 static/images/2025-02-13-rust-survey-2024/how-is-rust-used-at-your-organization.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/how-often-do-you-use-rust.png create mode 100644 static/images/2025-02-13-rust-survey-2024/how-often-do-you-use-rust.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/how-would-you-rate-your-rust-expertise.png create mode 100644 static/images/2025-02-13-rust-survey-2024/how-would-you-rate-your-rust-expertise.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/if-you-use-nightly-why-wordcloud.png create mode 100644 static/images/2025-02-13-rust-survey-2024/if-you-use-nightly-why.png create mode 100644 static/images/2025-02-13-rust-survey-2024/if-you-use-nightly-why.svg rename static/images/{2025-01-rust-survey-2024 => 2025-02-13-rust-survey-2024}/technology-domain-wordcloud.png (100%) create mode 100644 static/images/2025-02-13-rust-survey-2024/technology-domain.png create mode 100644 static/images/2025-02-13-rust-survey-2024/technology-domain.svg rename static/images/{2025-01-rust-survey-2024 => 2025-02-13-rust-survey-2024}/what-are-your-biggest-worries-about-rust-wordcloud.png (100%) create mode 100644 static/images/2025-02-13-rust-survey-2024/what-are-your-biggest-worries-about-rust.png create mode 100644 static/images/2025-02-13-rust-survey-2024/what-are-your-biggest-worries-about-rust.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/what-do-you-think-about-rust-evolution.png create mode 100644 static/images/2025-02-13-rust-survey-2024/what-do-you-think-about-rust-evolution.svg rename static/images/{2025-01-rust-survey-2024 => 2025-02-13-rust-survey-2024}/what-ide-do-you-use-wordcloud.png (100%) create mode 100644 static/images/2025-02-13-rust-survey-2024/what-ide-do-you-use.png create mode 100644 static/images/2025-02-13-rust-survey-2024/what-ide-do-you-use.svg rename static/images/{2025-01-rust-survey-2024 => 2025-02-13-rust-survey-2024}/what-kind-of-learning-materials-have-you-consumed-wordcloud.png (100%) create mode 100644 static/images/2025-02-13-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed.png create mode 100644 static/images/2025-02-13-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/where-do-you-live.png create mode 100644 static/images/2025-02-13-rust-survey-2024/where-do-you-live.svg rename static/images/{2025-01-rust-survey-2024 => 2025-02-13-rust-survey-2024}/which-features-do-you-want-stabilized-wordcloud.png (100%) create mode 100644 static/images/2025-02-13-rust-survey-2024/which-features-do-you-want-stabilized.png create mode 100644 static/images/2025-02-13-rust-survey-2024/which-features-do-you-want-stabilized.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/which-marginalized-group.png create mode 100644 static/images/2025-02-13-rust-survey-2024/which-marginalized-group.svg rename static/images/{2025-01-rust-survey-2024 => 2025-02-13-rust-survey-2024}/which-os-do-you-target-wordcloud.png (100%) create mode 100644 static/images/2025-02-13-rust-survey-2024/which-os-do-you-target.png create mode 100644 static/images/2025-02-13-rust-survey-2024/which-os-do-you-target.svg rename static/images/{2025-01-rust-survey-2024 => 2025-02-13-rust-survey-2024}/which-os-do-you-use-wordcloud.png (100%) create mode 100644 static/images/2025-02-13-rust-survey-2024/which-os-do-you-use.png create mode 100644 static/images/2025-02-13-rust-survey-2024/which-os-do-you-use.svg rename static/images/{2025-01-rust-survey-2024 => 2025-02-13-rust-survey-2024}/which-problems-limit-your-productivity-wordcloud.png (100%) create mode 100644 static/images/2025-02-13-rust-survey-2024/which-problems-limit-your-productivity.png create mode 100644 static/images/2025-02-13-rust-survey-2024/which-problems-limit-your-productivity.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/which-statements-apply-to-rust-at-work.png create mode 100644 static/images/2025-02-13-rust-survey-2024/which-statements-apply-to-rust-at-work.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/which-version-of-rust-do-you-use-wordcloud.png create mode 100644 static/images/2025-02-13-rust-survey-2024/which-version-of-rust-do-you-use.png create mode 100644 static/images/2025-02-13-rust-survey-2024/which-version-of-rust-do-you-use.svg rename static/images/{2025-01-rust-survey-2024 => 2025-02-13-rust-survey-2024}/why-did-you-stop-using-rust-wordcloud.png (100%) create mode 100644 static/images/2025-02-13-rust-survey-2024/why-did-you-stop-using-rust.png create mode 100644 static/images/2025-02-13-rust-survey-2024/why-did-you-stop-using-rust.svg rename static/images/{2025-01-rust-survey-2024 => 2025-02-13-rust-survey-2024}/why-dont-you-use-rust-wordcloud.png (100%) create mode 100644 static/images/2025-02-13-rust-survey-2024/why-dont-you-use-rust.png create mode 100644 static/images/2025-02-13-rust-survey-2024/why-dont-you-use-rust.svg create mode 100644 static/images/2025-02-13-rust-survey-2024/why-you-use-rust-at-work.png create mode 100644 static/images/2025-02-13-rust-survey-2024/why-you-use-rust-at-work.svg delete mode 100644 static/scripts/2025-01-rust-survey-2024/charts.js create mode 100644 static/scripts/2025-02-13-rust-survey-2024/charts.js diff --git a/posts/2025-01-27-2024-State-Of-Rust-Survey-2024-results.md b/posts/2025-01-27-2024-State-Of-Rust-Survey-2024-results.md deleted file mode 100644 index f59639982..000000000 --- a/posts/2025-01-27-2024-State-Of-Rust-Survey-2024-results.md +++ /dev/null @@ -1,351 +0,0 @@ ---- -layout: post -title: "2024 State of Rust Survey Results" -author: The Rust Survey Team ---- - -Hello, Rustaceans! - -The Rust Survey Team is excited to share the results of our [2024 survey on the Rust Programming language](https://blog.rust-lang.org/2024/12/05/annual-survey-2024-launch.html), conducted between December 5, 2024 and December 23, 2024. -As in previous years, the 2024 State of Rust Survey was focused on gathering insights and feedback from Rust users, and all those who are interested in the future of Rust more generally. - -This ninth edition of the survey surfaced new insights and learning opportunities straight from the global Rust language community, which we will summarize below. In addition to this blog post, we have also prepared a [report][report] containing charts with aggregated results of all questions in the survey. - -**Our sincerest thanks to every community member who took the time to express their opinions and experiences with Rust over the past year. Your participation will help us make Rust better for everyone.** - -There's a lot of data to go through, so strap in and enjoy! - -## Participation - -| **Survey** | **Started** | **Completed** | **Completion rate** | **Views** | -|:----------:|------------:|--------------:|--------------------:|----------:| -| 2023 | 11 950 | 9 710 | 82.2% | 16 028 | -| 2024 | TODO | TODO | TODO% | TODO | - -TODO - outdated, don't have the data yet - -[//]: # (As shown above, in 2023, we have received 37% fewer survey views in vs 2022, but saw a slight uptick in starts and completions. There are many reasons why this could have been the case, but it’s possible that because we released the [2022 analysis blog](https://blog.rust-lang.org/2023/08/07/Rust-Survey-2023-Results.html) so late last year, the survey was fresh in many Rustaceans’ minds. This might have prompted fewer people to feel the need to open the most recent survey. Therefore, we find it doubly impressive that there were more starts and completions in 2023, despite the lower overall view count.) - -## Community - -TODO - outdated, don't have the data yet - -[//]: # (We saw a 3pp increase in respondents taking this year’s survey in English – 80% in 2023 and 77% in 2022. Across all other languages, we saw only minor variations – all of which are likely due to us offering fewer languages overall this year due to having fewer volunteers.) - -Same as every year, we asked our respondents in which country they live in. The top 10 countries represented were, in order: United States (22%), Germany (12%), China (6%), United Kingdom (6%), France (6%), Canada (3%), Russia (3%), Netherlands (3%), Japan (3%), and Poland (3%) . We were interested to see a small reduction in participants taking the survey in the United States in 2023 (down 3pp from the 2022 edition) which is a positive indication of the growing global nature of our community! You can try to find your country in the chart below: - - -

    - - -[//]: # (Once again, the majority of our respondents reported being most comfortable communicating on technical topics in English at 92.7% — a slight difference from 93% in 2022. Again, Chinese was the second-highest choice for preferred language for technical communication at 6.1% (7% in 2022).) - -[//]: # () -[//]: # () - -[//]: # () -[//]: # (We also asked whether respondents consider themselves members of a marginalized community. Out of those who answered, 76% selected no, 14% selected yes, and 10% preferred not to say.) - -[//]: # () -[//]: # (We have asked the group that selected “yes” which specific groups they identified as being a member of. The majority of those who consider themselves a member of an underrepresented or marginalized group in technology identify as lesbian, gay, bisexual, or otherwise non-heterosexual. The second most selected option was neurodivergent at 41% followed by trans at 31.4%. Going forward, it will be important for us to track these figures over time to learn how our community changes and to identify the gaps we need to fill.) - -[//]: # () -[//]: # () - -[//]: # () -[//]: # (As Rust continues to grow, we must acknowledge the diversity, equity, and inclusivity (DEI)-related gaps that exist in the Rust community. Sadly, Rust is not unique in this regard. For instance, only 20% of 2023 respondents to this representation question consider themselves a member of a racial or ethnic minority and only 26% identify as a woman. We would like to see more equitable figures in these and other categories. In 2023, the Rust Foundation formed a diversity, equity, and inclusion subcommittee on its Board of Directors whose members are aware of these results and are actively discussing ways that the Foundation might be able to better support underrepresented groups in Rust and help make our ecosystem more globally inclusive. One of the central goals of the Rust Foundation board's subcommittee is to analyze information about our community to find out what gaps exist, so this information is a helpful place to start. This topic deserves much more depth than is possible here, but readers can expect more on the subject in the future.) - -## Rust usage - -The number of respondents that self-identify as a Rust user was quite similar to last year, around 92%. This high number is not surprising, since we primarily target existing Rust developers with this survey. - - -
    -
    -
    - [PNG] [SVG] -
    -
    - - -Similarly as last year, around 31% of those who did not identify as Rust users cited the perception of difficulty as the primary reason for not using Rust. The most common reason for not using Rust was that the respondents simply haven’t had the chance to try it yet. - - -
    -
    - -
    - - -Of the former Rust users who participated in the 2024 survey, 36% cited factors outside their control as a reason why they no longer use Rust, which is a 10pp decrease from last year. This year, we also asked respondents if they would consider using Rust again if an opportunity comes up, which turns out to be true for a large fraction of the respondents (63%). That is good to hear! - - -
    -
    - -
    - - -> Closed answers marked with N/A were not present in the previous version(s) of the survey. - -Of those who used Rust in 2024, 53% did so on a daily (or nearly daily) basis — an increase of 4pp from the previous year. We can observe an upward trend in the frequency of Rust usage over the past few years. - - -
    -
    -
    - [PNG] [SVG] -
    -
    - - -Rust expertise is also continually increasing amongst our respondents! 20% of respondents can write (only) simple programs in Rust (a decrease of 3pp from 2023), while 53% consider themselves productive using Rust — up from 47% in 2023. While the survey is just one tool to measure the changes in Rust expertise overall, these numbers are heartening as they represent knowledge growth for many Rustaceans returning to the survey year over year. - - -
    -
    -
    - [PNG] [SVG] -
    -
    - - -## Learning Rust -To use Rust, programmers first have to learn it, so we are always interested in finding out how do they approach that. Based on the survey results, it seems that most users learn from Rust documentation and also from [The Rust Programming Language](https://doc.rust-lang.org/book/) book, which has been a favourite learning resource of new Rustaceans for a long time. Many people also seem to learn by reading the source code of Rust crates. The fact that both the documentation and source code of tens of thousands of Rust crates is available on [docs.rs](https://docs.rs) and GitHub makes this easier. - - -
    -
    - -
    - - -On the other hand, only a very small number of respondents (around 3%) have taken a university Rust course or use university learning materials. It seems that Rust has not yet penetrated university curriculums, as this is typically a very slow moving area. - - -
    -
    -
    - [PNG] [SVG] -
    -
    - - -## Programming environment - -In terms of operating systems used by Rustaceans, the situation stayed very similar over the past couple years, with Linux being the most popular choice, followed by macOS and Windows, which have a very similar share of usage. As you can see in the linked [wordcloud](../../../images/2025-01-rust-survey-2024/which-os-do-you-use-wordcloud.png), there are also a few users that prefer Arch, btw. - - -
    -
    - -
    - - -Rust programmers target a diverse set of platforms with their Rust programs. We saw a slight uptick in users targeting embedded and mobile platforms, but otherwise the distribution of platforms stayed mostly the same as last year. Since the WebAssembly target is quite diverse, we have split it into two separate categories this time. Based on the results it is clear that when using WebAssembly, it is mostly in the context of browsers (23%) rather than other use-cases (7%). - - -
    -
    - -
    - - -We cannot of course forget the favourite topic of many programmers: which IDE (developer environment) do they use. Although Visual Studio Code still remains the most popular option, its share has dropped by 5pp this year. On the other hand, the Zed editor seems to have gained considerable traction recently. - - -
    -
    - -
    - - -> You can also take a look at the linked [wordcloud](../../../images/2025-01-rust-survey-2024/what-ide-do-you-use-wordcloud.png) that summarizes open answers to this question (the "Other" category), to see what other editors are also popular. - -## Rust at Work - -We were excited to see that more and more people use Rust at work for the majority of their coding, 38% vs 34% from last year. There is a clear upward trend in this metric over the past few years. - -The usage of Rust within companies also seems to be rising, 45% of respondents answered that their organisation makes non-trivial use of Rust, which is a 7pp increase from 2023. - - -
    -
    -
    - [PNG] [SVG] -
    -
    - - - -
    -
    -
    - [PNG] [SVG] -
    -
    - - -Once again, the top reason employers of our survey respondents invested in Rust was the ability to build relatively correct and bug-free software. The second most popular reason was Rust’s performance characteristics. 21% of respondents that use Rust at work do so because they already know it, and it's thus their default choice, an uptick of 5pp from 2023. This seems to suggest that Rust is becoming one of the baseline languages of choice for more companies. - - -
    -
    -
    - [PNG] [SVG] -
    -
    - - -Similarly to the previous year, a large percentage of respondents (82%) report that Rust helped their company achieve its goals. In general, it seems that programmers and companies are quite happy with their usage of Rust, which is great! - - -
    -
    -
    - [PNG] [SVG] -
    -
    - - -In terms of technology domains, the situation is quite similar to the previous year. Rust to be especially popular for creating server backends, web and networking services and cloud technologies. It also seems to be gaining more traction for embedded use-cases. - - -
    -
    - -
    - - -> You can scroll the chart to the right to see more domains. Note that the Automotive domain was not offered as a closed answer in the 2023 survey (it was merely entered through open answers), which might explain the large jump. - -It is exciting to see the continued growth of professional Rust usage and the confidence so many users feel in its performance, control, security and safety, enjoyability, and more! - -## Challenges - -As always, one of the main goals of the State of Rust survey is to shed light on challenges, concerns, and priorities on Rustaceans’ minds over the past year. - -We have asked our users about aspects of Rust that limit their productivity. Perhaps unsurprisingly, slow compilation was at the top of the list, followed by subpar support for debugging Rust and high disk usage of Rust compiler artifacts. On the other hand, most Rust users seem to be very happy with its runtime performance, the correctness and stability of the compiler and also Rust's documentation. - - -
    -
    - -
    - - -In terms of specific unstable (or missing) features that Rust users want to be stabilized (or implemented), the most desired ones were async closures and if/let while chains. Well, we have good news! Async closures will be stabilized in the next version of Rust (1.85), and if/let while chains will hopefully follow [soon after](https://github.com/rust-lang/rust/pull/132833), once Edition 2024 is released (which will also happen in Rust 1.85). - -Other coveted features are generators (both sync and async) and more powerful generic const expressions. You can follow the [Rust Project Goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html) to track the progress of these (and other) features. - - -
    -
    - -
    - - -This year, we have also included a new question about the speed of Rust's evolution. While most people seem to be content with the status quo, more than a quarter of people who responded to this question would like Rust to stabilize and/or add features more quickly, and only 7% of respondents would prefer Rust to slow down or completely stop adding new features. - - -
    -
    -
    - [PNG] [SVG] -
    -
    - - -Interestingly, when we asked respondents about their main worries for the future of Rust, one of the top answers remained the worry that Rust will become too complex. This seems to be in contrast with the answers to the previous question. Perhaps Rust users still seem to consider the complexity of Rust to be manageable, but they worry that one day it might become too much. - -We are happy to see that the amount of respondents concerned about Rust Project governance and lacking support of the Rust Foundation has dropped by about 6pp from 2023. - - -
    -
    - -
    - - -## Looking ahead - -Each year, the results of the State of Rust survey help reveal the areas that need improvement in many areas across the Rust Project and ecosystem, as well as the aspects that are working well for our community. - -If you have any suggestions for the Rust Annual survey, please [let us know](https://github.com/rust-lang/surveys/issues)! - -We are immensely grateful to those who participated in the 2024 State of Rust Survey and facilitated its creation. While there are always challenges associated with developing and maintaining a programming language, this year we were pleased to see a high level of survey participation and candid feedback that will truly help us make Rust work better for everyone. - -If you’d like to dig into more details, we recommend you to browse through the full [survey report][report]. - -[report]: https://raw.githubusercontent.com/rust-lang/surveys/main/surveys/2024-annual-survey/report/annual-survey-2024-report.pdf - - - - - - diff --git a/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md b/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md new file mode 100644 index 000000000..8e2988c14 --- /dev/null +++ b/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md @@ -0,0 +1,385 @@ +--- +layout: post +title: "2024 State of Rust Survey Results" +author: The Rust Survey Team +--- + +Hello, Rustaceans! + +The Rust Survey Team is excited to share the results of our [2024 survey on the Rust Programming language](https://blog.rust-lang.org/2024/12/05/annual-survey-2024-launch.html), conducted between December 5, 2024 and December 23, 2024. +As in previous years, the 2024 State of Rust Survey was focused on gathering insights and feedback from Rust users, and all those who are interested in the future of Rust more generally. + +This ninth edition of the survey surfaced new insights and learning opportunities straight from the global Rust language community, which we will summarize below. In addition to this blog post, **we have also prepared a [report][report]** containing charts with aggregated results of all questions in the survey. + +**Our sincerest thanks to every community member who took the time to express their opinions and experiences with Rust over the past year. Your participation will help us make Rust better for everyone.** + +There's a lot of data to go through, so strap in and enjoy! + +## Participation + +| **Survey** | **Started** | **Completed** | **Completion rate** | **Views** | +|:----------:|------------:|--------------:|--------------------:|----------:| +| 2023 | 11 950 | 9 710 | 82.2% | 16 028 | +| 2024 | 9 450 | 7 310 | 77.4% | 13 564 | + +As shown above, in 2024, we have received fewer survey views than in the previous year. This was likely caused simply by the fact that the survey ran only for two weeks, while in the previous year it ran for almost a month. However, the completion rate has also dropped, which seems to suggest that the survey might be a bit too long. We will take this into consideration for the next edition of the survey. + +## Community + +The State of Rust survey not only gives us excellent insight into how many Rust users around the world are using and experiencing the language but also gives us insight into the makeup of our global community. This information gives us a sense of where the language is being used and where access gaps might exist for us to address over time. We hope that this data and our related analysis help further important discussions about how we can continue to prioritize global access and inclusivity in the Rust community. + +Same as every year, we asked our respondents in which country they live in. The top 10 countries represented were, in order: United States (22%), Germany (14%), United Kingdom (6%), France (6%), China (5%), Canada (3%), Netherlands (3%), Russia (3%), Australia (2%), and Sweden (2%). We are happy to see that Rust is enjoyed by users from all around the world! You can try to find your country in the chart below: + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +We also asked whether respondents consider themselves members of a marginalized community. Out of those who answered, 74.5% selected no, 15.5% selected yes, and 10% preferred not to say. + +We have asked the group that selected “yes” which specific groups they identified as being a member of. The majority of those who consider themselves a member of an underrepresented or marginalized group in technology identify as lesbian, gay, bisexual, or otherwise non-heterosexual. The second most selected option was neurodivergent at 46% followed by trans at 35%. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Each year, we must acknowledge the diversity, equity, and inclusivity (DEI) related gaps in the Rust community and open source as a whole. We believe that excellent work is underway at the Rust Foundation to advance global access to Rust community gatherings and distribute grants to a diverse pool of maintainers each cycle, which you can learn more about [here](https://rustfoundation.org/community). Even so, global inclusion and access is just one element of DEI, and the survey working group will continue to advocate for progress in this domain. + +## Rust usage + +The number of respondents that self-identify as a Rust user was quite similar to last year, around 92%. This high number is not surprising, since we primarily target existing Rust developers with this survey. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Similarly as last year, around 31% of those who did not identify as Rust users cited the perception of difficulty as the primary reason for not using Rust. The most common reason for not using Rust was that the respondents simply haven’t had the chance to try it yet. + + +
    +
    + +
    + + +Of the former Rust users who participated in the 2024 survey, 36% cited factors outside their control as a reason why they no longer use Rust, which is a 10pp decrease from last year. This year, we also asked respondents if they would consider using Rust again if an opportunity comes up, which turns out to be true for a large fraction of the respondents (63%). That is good to hear! + + +
    +
    + +
    + + +> Closed answers marked with N/A were not present in the previous version(s) of the survey. + +Those not using Rust anymore told us that it is because they don't really need it (or the goals of their company changed) or because (like above) it was not the right tool for the job. A few reported being overwhelmed by the language or its ecosystem in general or that switching or introducing Rust would have been too expensive in terms of human effort. + +Of those who used Rust in 2024, 53% did so on a daily (or nearly daily) basis — an increase of 4pp from the previous year. We can observe an upward trend in the frequency of Rust usage over the past few years, which suggests that Rust is being increasingly used at work. This is also confirmed by other answers mentioned in the Rust at Work section later below. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Rust expertise is also continually increasing amongst our respondents! 20% of respondents can write (only) simple programs in Rust (a decrease of 3pp from 2023), while 53% consider themselves productive using Rust — up from 47% in 2023. While the survey is just one tool to measure the changes in Rust expertise overall, these numbers are heartening as they represent knowledge growth for many Rustaceans returning to the survey year over year. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Unsurprisingly, the most popular version of Rust is *latest stable*, either the most recent one or whichever comes with the users' Linux distribution. Almost a third of users also use the latest nightly release, due to various reasons (see below). However, it seems that the beta toolchain is not used much, which is a bit unfortunate. We would like to encourage Rust users to use the beta toolchain more (e.g. in CI environments) to help test soon-to-be stabilized versions of Rust. + + +
    +
    + +
    + + +People that use the nightly toolchain mostly do it to gain access to specific unstable language features. Several users have also mentioned that rustfmt works better for them on nightly or that they use the nightly compiler because of faster compilation times. + + +
    +
    + +
    + + +## Learning Rust +To use Rust, programmers first have to learn it, so we are always interested in finding out how do they approach that. Based on the survey results, it seems that most users learn from Rust documentation and also from [The Rust Programming Language](https://doc.rust-lang.org/book/) book, which has been a favourite learning resource of new Rustaceans for a long time. Many people also seem to learn by reading the source code of Rust crates. The fact that both the documentation and source code of tens of thousands of Rust crates is available on [docs.rs](https://docs.rs) and GitHub makes this easier. + + +
    +
    + +
    + + +In terms of answers belonging to the "Other" category, they can be clustered into three categories: people using LLM (large language model) assistants (Copilot, ChatGPT, Claude, etc.), reading the official Rust forums (Discord, [URLO][urlo]) or being mentored while contributing to Rust projects. We would like to extend a big thank you to those making our spaces friendly and welcoming for newcomers, as it is important work and it pays off. Interestingly, a non-trivial number of people "learned by doing" and used rustc error messages and clippy as a guide, which is a good indicator of the quality of Rust diagnostics. + +In terms of formal education, it seems that Rust has not yet penetrated university curriculums, as this is typically a very slowly moving area. Only a very small number of respondents (around 3%) have taken a university Rust course or use university learning materials. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +[urlo]: https://users.rust-lang.org/ + +## Programming environment + +In terms of operating systems used by Rustaceans, Linux was the most popular choice, and it seems that it is getting increasingly popular year after year. It is followed by macOS and Windows, which have a very similar share of usage. + + +
    +
    + +
    + + +> As you can see in the [wordcloud](../../../images/2025-02-13-rust-survey-2024/which-os-do-you-use-wordcloud.png), there are also a few users that prefer Arch, btw. + +Rust programmers target a diverse set of platforms with their Rust programs. We saw a slight uptick in users targeting embedded and mobile platforms, but otherwise the distribution of platforms stayed mostly the same as last year. Since the WebAssembly target is quite diverse, we have split it into two separate categories this time. Based on the results it is clear that when using WebAssembly, it is mostly in the context of browsers (23%) rather than other use-cases (7%). + + +
    +
    + +
    + + +We cannot of course forget the favourite topic of many programmers: which IDE (developer environment) they use. Although Visual Studio Code still remains the most popular option, its share has dropped by 5pp this year. On the other hand, the Zed editor seems to have gained considerable traction recently. The small percentage of those who selected "Other" are using a wide range of different tools: from CursorAI to classics like Kate or Notepad++. Special mention to the 3 people using "ed", that's quite an achievement. + + +
    +
    + +
    + + +> You can also take a look at the linked [wordcloud](../../../images/2025-01-rust-survey-2024/what-ide-do-you-use-wordcloud.png) that summarizes open answers to this question (the "Other" category), to see what other editors are also popular. + +## Rust at Work + +We were excited to see that more and more people use Rust at work for the majority of their coding, 38% vs 34% from last year. There is a clear upward trend in this metric over the past few years. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +The usage of Rust within companies also seems to be rising, as 45% of respondents answered that their organisation makes non-trivial use of Rust, which is a 7pp increase from 2023. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Once again, the top reason employers of our survey respondents invested in Rust was the ability to build relatively correct and bug-free software. The second most popular reason was Rust’s performance characteristics. 21% of respondents that use Rust at work do so because they already know it, and it's thus their default choice, an uptick of 5pp from 2023. This seems to suggest that Rust is becoming one of the baseline languages of choice for more and more companies. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Similarly to the previous year, a large percentage of respondents (82%) report that Rust helped their company achieve its goals. In general, it seems that programmers and companies are quite happy with their usage of Rust, which is great! + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +In terms of technology domains, the situation is quite similar to the previous year. Rust seems to be especially popular for creating server backends, web and networking services and cloud technologies. It also seems to be gaining more traction for embedded use-cases. + + +
    +
    + +
    + + +> You can scroll the chart to the right to see more domains. Note that the Automotive domain was not offered as a closed answer in the 2023 survey (it was merely entered through open answers), which might explain the large jump. + +It is exciting to see the continued growth of professional Rust usage and the confidence so many users feel in its performance, control, security and safety, enjoyability, and more! + +## Challenges + +As always, one of the main goals of the State of Rust survey is to shed light on challenges, concerns, and priorities on Rustaceans’ minds over the past year. + +We have asked our users about aspects of Rust that limit their productivity. Perhaps unsurprisingly, slow compilation was at the top of the list, as it seems to be a perennial concern of Rust users. As always, there are efforts underway to improve the speed of the compiler, such as enabling the [parallel frontend](https://blog.rust-lang.org/2023/11/09/parallel-rustc.html) or switching to a [faster linker by default](https://blog.rust-lang.org/2024/05/17/enabling-rust-lld-on-linux.html). We invite you to test these improvements and let us know if you encounter any issues. + +Other challenges included subpar support for debugging Rust and high disk usage of Rust compiler artifacts. On the other hand, most Rust users seem to be very happy with its runtime performance, the correctness and stability of the compiler and also Rust's documentation. + + +
    +
    + +
    + + +In terms of specific unstable (or missing) features that Rust users want to be stabilized (or implemented), the most desired ones were async closures and if/let while chains. Well, we have good news! Async closures will be stabilized in the next version of Rust (1.85), and if/let while chains will hopefully follow [soon after](https://github.com/rust-lang/rust/pull/132833), once Edition 2024 is released (which will also happen in Rust 1.85). + +Other coveted features are generators (both sync and async) and more powerful generic const expressions. You can follow the [Rust Project Goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html) to track the progress of these (and other) features. + +People were really helpful and tried hard pointing their most notable issues limiting productivity in the open answers to this question. We have seen mentions of struggles with async programming (an all-time favourite), debuggability of errors (which people generally love, but they are not perfect for everyone) or Rust tooling being slow or resource intensive (rust-analyzer and rustfmt). Some users also want a better IDE story and improved interoperability with other languages. + + +
    +
    + +
    + + +This year, we have also included a new question about the speed of Rust's evolution. While most people seem to be content with the status quo, more than a quarter of people who responded to this question would like Rust to stabilize and/or add features more quickly, and only 7% of respondents would prefer Rust to slow down or completely stop adding new features. + + +
    +
    +
    + [PNG] [SVG] +
    +
    + + +Interestingly, when we asked respondents about their main worries for the future of Rust, one of the top answers remained the worry that Rust will become too complex. This seems to be in contrast with the answers to the previous question. Perhaps Rust users still seem to consider the complexity of Rust to be manageable, but they worry that one day it might become too much. + +We are happy to see that the amount of respondents concerned about Rust Project governance and lacking support of the Rust Foundation has dropped by about 6pp from 2023. + + +
    +
    + +
    + + +## Looking ahead + +Each year, the results of the State of Rust survey help reveal the areas that need improvement in many areas across the Rust Project and ecosystem, as well as the aspects that are working well for our community. + +If you have any suggestions for the Rust Annual survey, please [let us know](https://github.com/rust-lang/surveys/issues)! + +We are immensely grateful to those who participated in the 2024 State of Rust Survey and facilitated its creation. While there are always challenges associated with developing and maintaining a programming language, this year we were pleased to see a high level of survey participation and candid feedback that will truly help us make Rust work better for everyone. + +If you’d like to dig into more details, we recommend you to browse through the full [survey report][report]. + +[report]: https://raw.githubusercontent.com/rust-lang/surveys/main/surveys/2024-annual-survey/report/annual-survey-2024-report.pdf + + + + + + diff --git a/static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.png b/static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.png deleted file mode 100644 index ff2fac378a91681d50fc6e5a38f8ce6c22ea3c05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25481 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 diff --git a/static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.svg b/static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.svg deleted file mode 100644 index 2b6e891f6..000000000 --- a/static/images/2025-01-rust-survey-2024/do-you-personally-use-rust-at-work.svg +++ /dev/null @@ -1 +0,0 @@ -29.8%27.1%43.2%N/A33.9%28.1%38.0%N/A38.2%13.4%18.1%30.3%Yes, for the majority ofmy codingNoYes, but I only use itoccasionallyYes, a few times perweek on average0%20%40%60%80%100%Year202220232024Are you using Rust at work?(total responses = 7144, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/do-you-use-rust.png b/static/images/2025-01-rust-survey-2024/do-you-use-rust.png deleted file mode 100644 index 56cae1c97ad57a3a17906e2ca3f4b6072c0923b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20868 zcmeIa2UJt(`Y#;EvC;++=`h$3k=~`vh=_ER-hzmL5Fqq~63~&NQb$BeC`W11o74oN ziGXyag&GJE5CbIi63X2>Gvg`i{LlBl>nr!WYu&7+Wbd~<<@c2LdH2rKTgJLaGvqTFOhq2jnA6gb70?X^S9>;CtJGOj7cH&dEXwD{cQA@FMA>~14n*5RfX|gU`Tf z-(HIQlHUJg1nvr%{h+90vA81qf}(ND3A2V4D3*tr)qK1o%nzw$hd;2arO=~75)U@! z=FaMbR%SU+}zx;U#Qn>ev;u6Dh_{7hBL0r7tW5 zsbzr=Dg-1)AElC9lu^il`eQr-OYdnDkM5lz84p0y- zh#wd}O*gPl37L&s(&$mD)g(#=I=>b9N*)p_imk*_@(e|~cA>MPYMl!Av4+`y8?3{_ zT$6gp8Z`}LYx>ANx?-%ENW>;G)8_N)t<@33n4a1Zndu|+*YqfZkt_G8@;Krn=M0{v zty|^litBlFn}%+(dSagzJA7XciAFDuhv#jnxdt9Pbhn>AOAI))y`oyz^1&@E6ZRnA z#k_N_zDPP+S=}~Yr`Sn{V?Wrv)S9(jBo@hNBeT6yjC@MlYD=wn5+q~G{<&9^4^qoU z3pgb@Q2wUBia66ndtK}3@u1*Ud12q%680B)CS@(fV|0HZ4t7ZSak#uBOKKb{VN;tF$lt$XC*1Zm5|&3Sd{Q1! z2f%9*db|N%Q5I3>mVUX!{nB%XU}l z(AuA-)Z+|rr$|n`9uB%0gC6~R_E+IU%js*6={pX*qv5AXcdS1{rg~$Ma}xKe8K>P0 zt(7#;gFX7FjH1mvG2*oR-Nmg1i$K38A6DGTosr$5+dpIXkavByWw3#sGe1H+&X6iD zA&?ZA@T_p>dx{Brn4uMgv0K%Z6gi@gk)1{P9ulMK z1h@vT#H-ea|4?*7QmS13{VH3s6OPAO10_fri593%RjI%UlU8kzb2yzU^qa}3O>gDo zLlATnG2UrxC5aP$>dbv-;)uhZ|A%6cXv8wPC^K{QqM?YT<-9#ou_0*ILzvV8|9!1w zHFPpcx#scV1Qtm7Nw}5tSVFi@f}VQ0`o!t1FYe`3p;wYg%Pf zCHp2+KC-T{>|P8_quZ;;L;Sir!wGYB5CV~AgZtQ@3al$4SFJqVr){X5-oI zSB@fTRrF7!(oICjN!squH5WUj)vrJRrpn5S zHTT`L%6|NW{4(k|^RcGTYV~hvGrz;G&IIw+2tRMMQfpuQ7Oj?~NKDx1PppY?#9A*X z3XBC-YinHdEI@M=WO$~EH23TX<0WtQ=i|a6%&`z94%%)mE9GNg1JZ)V@kLIVdi+~W z^0C3i-y&uLEwsiXQyxnA2b=JlaF5sCp!Gog5M@zxwdw3JH6_xRDW}QyU3lO-N0iME zfJwlAC&k_n$%v6nW54mhYqHYr)>sde-E+oSXh?H>0+)5Yl*2Mf5-*S?v{0rUNW0Gy zbLA!OUR5&vBvVD@)?HpbJ#Dt-p)QxkLW9?WS8imo%NTbLEcsu+!bGwnE!&pYULle3 z9gJkSBT}jU_^sZ`K?BYjIIJ{#6XYJei*rQ=7YBI7Ntk_^sJ+_FzP;> zT;qGS8?VM1?)v+c53KD*y{~5$d_7xX3YS}?XyazR}qI z*o;?;g?G!uX5!IL*9QHG@vq%N5wf_9)(QDtd-?!$uYs;a(KtdscCf1?tCE06?+K9? z$0t%FiC<+KqLi~6-E-F{cn=>MgPK9;A)wz<><`lmczu#y1|XXPKi`V1zO6{siQo~@ zV_Y+j>9j$b5EP59wS-sr_iB$U!9CQ*cj}1t}+ul^%%bG6_KUS}Ln+-Fcb0VU3;-ZsuA#QJEXF`S5@+9NV zELmf8JNY$QsFYmT>?V?zhA~?^hR{YM)$&9RBHWfXk}!&K<_BYWPA_@32>Q#1u|52^ z)#y&zalP_FaLqgHH1&qy;Trlg2Gu^aB1-ZN1}Yr>jd0;0*|%_^BA{+tj$LQYK?*90 z&3T67#}`nMi@NCjBLy=>Q846~cuD4%f3Q&Ev)rz#eh-YUu2nXqxmVbKJ6K>RydR^pTY5a#=DpC!&#Lup=~&ZAJ)>gY+={a>UOn_6 zAjT<8j2pp7&45}I{I&Q?l935_##iZRM7qs!L|t=OkqE;=d$5l*8tOTYc7HM{Ycfl= zC&ir~pMIOT8d@aEviURG!nB0;KyishL~$H?E^N@2vVWWxr{soZ2b0~B{RICkwHKB)ia*8wd~SPlV&D(>xLuP z+vvu<6V~Du&1(Je?C0z^V=l7d%PpVc&gzS=(2v;SY*QHR6Y10qYa(RVF>=?Bi$qZv zjtNg9MJuytHPn$6JI`!Yng=kpxBY9z>!y}EXZla)E}syerBrh$?`0N7DRhNjY$Nxs zPG7`kVs4kR6Si}`EaR05dCpPAv7H#%i2<1-0tB_Dx@CF(_8cM4f}jMsh8}89EzuzG zgyn`n+ufk0gpx-0i=!|9fV4m|(7EY;Kt4Y+Wf#qL}e}>Mo0Kipr!8?h zi&JPrU(rpB5hKR0I&icNwpb;rWvOJ$Ii3XU=85(UGWZEElv{oxJ6O|x`L1q)DZa*5 z__hLhGo@8++7(M!i5=T}(JMxfz_Vb-%m@@txK`O#hb9YcFG*QfAe+<>-y|H5gcGPI z-S8h52}Z{pYzMt(#%isMEqX4VY!z!;QXs&O8EGAd&)jo2S$pc%PK z9FHg}dv_-ScSqv!f$+`#vsew5phsH8ylVBDZDYM!aymP^K1gCVws76$B*HnqF8nkU z_qJ&Fe*YxeJ@v-h#!Gg*42ynzB!zIIPa%UyzKxvt;W2f-CtsDckTV%I2V|#&QJ*Je z%Qr;gDf%y_eUQ~+B9X_YlxK+Kk|v?P7U!dT>)Tr@>M$*Kn$MmG#CqYmu|uO3!FU7;H*C*CrZtSmDrgV!?NH7 zvao?5{suvog)KmpFWlva&p6&!K-~|$c5q1~T3NPOYoxzl^VMZ%^~SA@P7QYWIf@#_-l{4p!-roZ%O0GkfNpM4~o7 zwDUjID&|Y5^~`tL6JU#eKC^tQYX01^P-eOb-j?INx7L9Xt@Z8R2s}UC;zbe5lK+>{ z#T1OB1xe(ZE$W2U=-MX1mZzWdzD1Y!VCx61&i)GTQa8d(gZyTDzOHVQ5t+ahp5P{(e5yt2n1?|{~=F$zHX_O+e48D z4f01a@{?E%Mf4OiEPpQ7IsuDZFt{ygtp;x7|Zc)mrW7BNg_`~Sc+l3WnB6^fN#4pwKD9HyZ zIacWn@}6n+rxC~DeUiP#wY$D`E$;h1Xt|*6`FtEViPE0!;GxMvf$q45Np!C_RL*cV zXR7I>x0-~VCiTR^Bn_`>sikREr=1xIHQpe{$486UQV_rHzHr}h%1felwS;O(;yc|$ zA8APq60?dgA4r5P#Myl?6zWA$0bQ^V@SlN&Zh0#iWa@yox6~qv17%1{4!1w!eB}7fBrM2XI3@8sQ>nU z0_0t5@Mr(fv70^YhaPs@!^XP#Ss}w+0b!1sR0w3)SYqe^{j^FRGR5uwd+?T+`TTT9 z`uLks_r`0aZ{FLyQha=6cNK^DA@n1WrwIpsvdg{~UyCKnmb!Av7LdcOS!v|g{TCqb zcofdI<(fU!9)}LFp%VDB1BwY&#MS~*?0uU7y^d9H2t6Q>cfrPu5b1x#`$Cn~V6pEB zvh&MBkY=h3s~6#Vxd=Vpl)Yfa|2H-swwNBs6eDWEm|&$=N|k)6Jr>F;t!oW=SC<#8 zVKw~G{5ae>uCbuMmAv$*CpStOKdD!xQKHFQ>6-!tD62DzI<-=~J#txGTP0~&|?f;r}6?te%oZKC1SKfbom0pzZ^W5>%(1IHTc?}6uY(I;=yy?f1w@&S`8h}71 zIp8@q7ddWV8@{X-zdX{}4w)Jw3pEN@BqVS8VYeqT$}ThbATZBvcyfJEPmY zABuI=>JMoSd+@~5&&z}mz3{sRu=Gh_14Je7Z61VklaD+s#WRj$j{XNlZ#nj@Rm9sL zh6qG%9xynH_tk*z05kyHL4ff%C9M4`_mzv#m2$a^I3C}e(T!CYurCt=`KIU%*qpQ3 zj!C|$W+%5FIm*RMmtn~FxKxrAq@#d6p3ES zU1?dQRkA<$c046AKwe~&U;o6$?n z?~787_cdk*;FrY(4agaF`L?L=QE1I)3;iw88CbdZ1bmiaV`82eZK>F$b=u|>6oR~i zgsuCr66r;TBGq9VM7Gcg95|knbYtRfAnF6!K)9TubpwFLiNEW&ztP@L9}onvx{-=I zesd$xoG>r}H6*`%t#iAo?$DF~IkOeh9x6l|Ie<~rABSvs=DWZTzatWC+qNfCiOU~r zf=4D!n6g3W-Sna0bR$8-Irj(Jh-%PmlL*DHFZ#NEP%Q%dyvUEPXDQJ=AVu7yk*-pa z?VZ)-tUW{8_Kqmv4W_KgfX+3r2h{MAvw#P%4&tB=%l`+J{&$*i=RNb%Nj-5{D{@fx zlA`u$-Ke@=a<@(J20tX!zEm!<&P=wJyL2y4Key(F;Ww$%>CVp?n{`o5Mp0Ce=TF2+X zhP!o#-VyWCBs^GYDr=H?>jVd_wnYEwa(TN4xdzWk7kB}$aU0GG7cfO{H5`3v+K_iz z7CZA3$xJeY6%YtSn3z8GQQ61f@E|>G~1JiQhCHN;P`2n!XYP!i{)zYM454=GiC%eI3FmwDVgbobg_ocy#=deRed*!-zY zJKNW)3^qu!2&qL7-jGTW8i>;hoSu5AbUvzJ7y=-psm$H`2(-lgxRkG;6!g@YRS>Wt zSwqW>vryu4RvRoUYFuvm$iunFx~zD+&ga{Jsr&0779!-@092l&eHuoV9aSF6>>2#j znvnmhR!6{M?FVqZwbMPuXQV^`TQ_Wbd;zcO`#k5%-qQdqg#Lnlaem~@=<zKc(-9x_TH&2?#K3bnp{%HKPdn3J!eo_bWaPq!Rskxgy zOyHbNy+MDmV=R9h*}Q+u``YFU;^V^)%fAw0I$X)?%8M6Tw>HdYj9{TiwasT4t+=ap zp^;}H?`WS>P1LfLZ&K)i&kcm|=;HD0m$f?i3ui&@NN z=$i$-LE#kK#k1i;7PW_l3!q)HM*OhpC&W>*QMchBetyX zoD-{i*q`!COOc0lJ#->_TMTK=S@P3yVbFJ zHYs5dK|TfoeL*L1g@UeWCXK0cD!sO9RCS3l$O38#W0m*GB%G{FaM;aaKd>-e?Gyd& z7!PUg0!_|KB5CBqlF$B+P$iN5sw%d3J!vft)REHzHZE1Nt=22Mz>dkQIGq^kBbu^u z5nJMMxWabtUcRW?3^F8cOhqj%@H*u<2l z7K?oD&)-Oj>(PBrqzku5EBE_-B~>d>1k2NO{P#1mS>TD$liapt9)}+;o(}RdH{}1V zxU@S4S(&t5zsXOkc>Z&{LT6TEY^VNbR%_+itJ6ktQfIync|jXaI+J{z1t1>nnc>9N z-@Veg2`#4Ty4FE*uyZ7@UCKd;2~<g;Ffs0CY62prfLC- zK5ien1g}o^gwP46eHO3nyuq}47-HMOUe>Ms>$x|iILe+I>5yE2b#|{Pttlz)c=rt% z&V3kR-g&cJ#un55a)M1_tWPu3;lhXq*zc#f?uk3KKMh_RxIS24RVqkwE&WVY9jmh$ zISSD_j}qTcG71KjFWxq3GQZx_l#pb}(-bL`z`Y!Ms*; z%t1TiFoX=GYCw|okPbv2X1)~O{RrUUI4y?2$UY!oROs)3b|ALl0SC|Q6_G;!fjR8B zH2DbF^vD1IJ9l8x{u30>@~0Sp0QZMn{*~{au|U&bd;^)szm8}=UA2~Y3b;L`!$vK+ z?PFX!*_j{(%=IozQRzD3J`9wi$4L3T2c>7MEeDP4oi*``!eODH5Cgx-MGOhg(F&tC zzD0uS5a8UNTN1BXE4c;;`C(kD%VLv}0jP@a>rP&=wl`l7i+=^uHH^tWUW|-M2Zxs5 zDn31TMUCgRnz%H$dJi{$in7A!66FjRK-_}anFDjRW-&`9H8ja zcSFwDCcD{KSjaIusEz#Xj)LC3wxpyPwT1~${fuPx?i#ng`?Z%mh8AXBm~&d0K5+@b zd}cOVq%B)3fn%{Bx2_0)qJ+xyd#g95O&I2RZuk{5*|nY6dIrsYOcrmnW9c}@KXgKqEk56k{nv8Z^< z=WrnjT~Nlwh6A$}l%E?2>8f^U{3&YFZg zv|f+my2d_EBX}unT*wW{q^g0Eq!PJFt6|WRD_qSrYb+P#d!nEM zw^i+5lGnM~S`}()mp=To)Lt`7?uc6Ri$F+X#p%jBwv;i!;%~$1b4$*BLwc^EzA5KO zxvEc7t6oYib8+shx8KKiKH+&601>i0kB*Dtpj3y$|ieF)tXXX3-K^~ilk zU&qQK(fW@*^q5GLdncu$iD)^Y{U0J1x@h; zkQEXO8>em3>mVF z5FIq%hl}`-lN9K|vIy^W?9PcK{7$n0JK8Gh-0d#ppe*?xg? zgNcsOk)~0b#mTO`$u`f6K!@S&RAnlK6Naiy(k6cQOW;h{_50dH2k;hME+y$E(o-0w z&s;&uubBTDvU>T*S+KE!tnm2jc47owse}TUX|3zt=me0(s@zWnY-_x|PN{kSs;k&J zpoPb{7lg<|VkAOoT4Q0RCLA2U(WS2usmxNKEyg7GvQG>Gg_Kz51c`e$qz&zk-cjO_ z2;l=b1^iAk_8cY!Z3s+L;ip@?^i?rryjzmV2W~BK>Dw&W>3fVp5~EsD7;Y!cF)7=i zTpwvr@%&W-8o1h&!%SWSyPr99B^rzk+_=i*tQ!!!`?sDpOj0ryG|7-N#?SksPaNwp z1~yFCpRolpOP;%0V9Rh=(fgX(c#~q#zuXP6C^|1bUG46;#Z-^v;Op9C(@-=I<~+bQ zB2esO;U2mnoNT~cL}Rvl2l>G!d-2OBrpCVeV$cP@v#Qjr<6`zJvrH3Z%D{co9k#7? z?hgu=X8v{p`1T0bqQ}$*wh!9#BWR$1#8J9pM0rV)kBu zhIY5t{qyDKAhSZyC0Fb{tji`XZODBA!8a@~ucdFL>Kg|lVfy-47co~IP|I5|d@)mq zc4{G&osZu#zuR043?A#rdcbth7Hp=KWU<<}RVh5p=fRn3a-Q+RN;yZmV<1eAZtFD7 zNziFPJ6;9NgVaAZ7c`W@Xm}4!#SF0^rA)Nlb~e90U;*Ao>U|iUzy4K6ALM>9ZRF`E zgs(3cpdQ&%%cG41leMG3h8o|@(NYyXc7PiVV-`K+q1|@6?^%CP%`rnOeOiE$HmXJ> zScuP=x?hc&UyHDD_ZMRcVg{vBv+j7K5wkS+%$J8iB9!`zN|>5;xz5zUXjJK0fTQm@ zz(aTuGp1vIv5p`?&Az-%Sz{vI`b@kqPY7a!dK2$3d$J*-l2C(5ffMM zHzSzKoOlTDCQ6AoJO`Q|lpD&eh3VV|S+q1%%w19pFTr_(3%;A}d46GDFMj_wZzeN- zd5r=0$$B+DQ-5IA{BmE^I>thZDXB+|PvHvd#$K`@2O!x@Q7T)w49zyXs;QbYV`Ixo&6Eq?005eS~Pd3m2 zg_NRXXu=R!VT#eN^R&qv%4+BmHGEOwg964K{S6)sQyidiXvNW zCgeWyGi|u7B&an?0%k^e$*+b@Yq4X8XA{shYfQlpJ$TD4>1!KtH0JHlljU+Lvj;Er zmL?~|%IRQpDo5@G%+Wi{B4SgO&b($K>|4lglO<3!1;jcSr1>*ZOOnhq*jfbmwMLj zLwXjdIT+J6`kq-heu2%A&6o4w?w(x5`~Q*xye`h>$Z1oBri{)!QFb#vn_rS=u=`9N zD4UUw9H+_S1rDZa`Xc5A%E&_c<6BN*>|So#_nP-l3y__Q4!!%JuiAWj@~;=g=pe{+_HrDpyTRsJyaxLzbPf1eji&7}MxO$HGO}uMq_{5%f zJm|-!Xck3JvaUymU-vv%TpaP{&%kSiD`ghH5{lt-w|(oV!%TxsUKpsw{%U^_eT^#S zQ6aSBsaWQ!@^6v@x^|@VadPZEi|k789JqPR@~~4l@0e=l#k13Col-Xzm7C9isLk4L z80IC-?g$QtfPQZ{0J-O|yPPaK@K?AFE_$DUr1X_}KVn)@RTwH|a0CmQAEef7dwzl> z{R2jd!9;4HOAq6=hOZMST+p2Vi|rP8 z`_V+l$^^+D{DwMNa26woK=y;fHpBtRDo39H4Se?q*&OI_2x}%G#59`uvwgD%Pqtm- zK}rQWW`vnU4%~0xuJHrO8BTWu1pNcDG#2b2?PX;I5&=fP-Nhp8gP2|BCWXh@l5$6G zrbP;LVD+pmHP$ajUg4N4)WTCcRGZVDE`4$RBk=S*?N0F2;@rSl`bUm%D^D%W4fIS~ zFn>HVHW2S**#S8jl={I<6c7ea0>B}_`e;`BAKvl4vzTiaxWaI?$Gv2(SAaaED^$EB z$2v2PgTRfqH|f7yJ&_^$9HbazluS}3x7B*f;$Zw94d_3THrKdk z4{YBqWi#EBP!eVEUkpL_;OuFqK8d!RpnTgPU6D^-LH&seDZ%6o|nc#(zK0_P9 zU{`_gDv@|yOZqEw^mou=<{;mF_kS=Cx>|>SAh|w?$j6K+)h%g1*Dw=p145_7Euc11 zF1&n-G-=*!f;15Be#cHgvq!fbqh&n(aYg>p zb)ZD<_S#?w0w6pqsPj=wL;6lrmi6B=Lx(Hk%rt4powMe9W~g6D7y%>PBO$eR_TEy^ znkrmFR7LqfI|Tj#5rTNS>d)z2c}B>xOn@?kSKOHfVOeB8S|Vb?1}2jaOC@_FdVYt2 z!Mcl?CVm$QAb((u%tFjQ(_T{=GOp(az^$v3xMo4sEZ8XBx70?;Gtyv zwihAkqav7>>xq`DubR7CI-p0Hn8!%dJ}%8%WE#l$=OVS>ZefI93{&^g8o8LphVM89 zMM5%z7tJpkO8f!0M3@J)sRRa!dszM)v0$*TKu9ihWlmi{!D8@3^=>|4Y)*Dr1H`^b zo*a&zoAkx%sblGN8`y`fdY<&SV;AZsCDfUswr{*Cj7Jv@JykmvfyQ5&pxS;(-w_Un z%cU_@JUX(?mp*5x_`<#TC(;%6P!>14_~-+n7NLB{=52i*rqg)Y4P9!}oKqy)7&#%^ zPJHR{{BxI&I03?LtMCrD0Mxer?dx8ZFv%o$-iaN0{JF1vgA>tpf_U^d1dqudy2v}* zY6H9eWhG)!Xkyh>6iejk^_QL<(wl!NZ|0SyY`WcJ(9RT>t><)mdzXCA^Q0nynJ7Ax zcmx9+E%4PCcHF5puIdPN(qs}(OV{jOEeY$WEm4vnufxP*-P}E+VOwIv^k@lzzFtmJ z4L$$eOpzxWi%9isD+|Qd#&l62B#z?;9A27m;nh4l(Q1wqFU)eV5zXWzL zC_a5*GM>(Ds?xd_Qe7naR8NzgXQCQ8Y1PFvUe}m&#OBh(v~6%>A7}cz%rr2jS4m5+ zXVuOt!LFEcOfDQehyYM3awVkavpbaxokPg{s^-DE6*8grWwCk<{IDyW4=saZeue>M)YX3979 z3Ny`t4gNb5LCv3J(^U~f$h9!Zh93(T_7@@9A(`8uEY5Cq+R-ATdi6O+|YWtgaw7k-zH`e2-Sw-DcV|)RoW77-jF;n9>h` z8!&%+X)&z`@+L92kiySaPYbJ`k+Hh>{ZCNGyxWC(#Vsv+_h)8v3JRfDXXZ*qh8;Lg_{6_aO5ZjsH0=GpG7bf&2dt9YA$_FIjvq zi~k#{K{5Wt_kU4H|9d9#J#Ks-0j~4Uk($}`KePOw6)iBz|9krWzwJOLQcs#EDKFn~ ziZ-zBnxSu~Vyz9B@wGq&cmQ1Sbu!NC>082uq(+uVm$WbYdw&*U-LL}SdHpX%z;l_1vVL=_KVDh_+tyt+y^dH(n)P)RS5Y*HvXtF z%%}Rz%|50nwfkySC95Rc>T?oo*~vzOVSZE){q;Fs@!-zsz0r2yoqwvOK6LF-sK0Q( zW*B((QF#&l$DSz-e#HY++PgR#lzBPXoNwRN&=iKYS~n?E#Hd0or&~qTe2yCkGxtgWY`hw66Phy1 z|2)tAYpe8b6seq6PSHr9U1e)r7$`M-M#1FSRi=-=4bchrLm{719>-=f3c-N8Tl zmIJvs{pwH?)N_UAw8GJ?TAK}SK;|@4-i8zKa=9qwB&;PDmt9pkD2!}TOAKo{H>{2B z{`>i4!3lz{Usx2g;nj0ZhlskwD}02I#IUUcdc0^``ilIIfT|fkMmri}SmE{!TTvZD zcP=>k)-9hn3NBGsL-<7rhw}BjfQ=-J9S6{`$tPzy)JB%f^D|`&x}#@a_@E_$^A{w7 zk91YJ=%Pajr^@}(qEV+Va`BM&;B=O3h#={MMveu?x}s-cZ513>@k%;s!pc8k(vr`U ziWFNf7(WeAVEd$YD7}R)%OyKhdv?xyUI$j+mvnGhBtn^3SnYLg6i%# z8IoUD8TMluKaSmL5oIx9ye^_R8_gUa;+)$YGC8t$v)O~qlE?CLDDVgypVy2vhhxvV z$+qkdgP|D>$jSDJnA&wj^S-0<5x`y=>lG2SPP>y1wNbDwG||*8X5luHtM1E{n51sk zkrwTyGmI%znDLnVO4Z@NO@7S>&_~MsoQ#u>L-(OZ_@&asHIJ8<6WnyqK_w<0ZyMEv z3?BLf_c#3o86Jx4G+f`Hb-tDV7IxO5ISQ8HeiL}Ehv9?x+z+mnLYD<%1@W+NTmYjCVMpjX5LD=X8tsneyqj98J0=3q8U)^dH!8B#}YDC^bwem5xgmvSEj*j6Gh9Nq(ra1f)!1e{~QsQR@0?Oe! zHUZ3Vr^IYwrJFm@+7rPHnA9F$Ox z(LdlBj|sM$sT(?D z&Y8V*sNKZfI{1SILiUS$9$w}H(s$_qa_P+@(>eCwSOWW%T|Lq+=gG`^#j~B87ra(> z1;c7GcS14Mze(asxb^mjnLKE7l=z4_#~r&Bp=g&J?hul73WHO$qy0^_PRyLk1ZJ0I z7|dw?5N5W!&2V@XDzIyO_&AN@1T8!WZO?%3b{zr` zds1D4f| zo*(QeVKyB08|ls6WqZUG&%niSU<(Y+3(WT`INJr_fab3o%*zOHFU4&C<1z&(HviM* zDd?ZnFzNV*&PRaB{^9b!oH?f44Sb%A;)P@gl1lP`%$>O)CK7y-EOxTtAF>W6324I; z;4^~%nsa~>p`EEx$+>ki={(OSE=MrBGyg8LDhV_xJDy({{Flltb2fp*e@Hs2iogO1 z(7n#O?`O)3-`)spy!2Alo|z4j=QjP5>sO(*HVaq&@zfSPKLl5w2_&2Q$T#N~))Of|M|hPkmHc7 z61%SD##74s!%rXEjwbSU3jgrX)%JU(mL@%W1Tu~(`<{8QKx`X?8!Sv{K5fRA{D9~F z;^ytx7T4Gv#$K~Y1RsL*2AYKj$_b@V{ycw8a@>TxI|`h;_EPRN-Iy*6lD;8H-TcRA zR{rz%ha#_&5kab^$xTbz5{i=nyWGK*#OU=I9>An6=udvK4`~(du!WjObH%<9lmez+lmU0`IZE|ne)N}Rla(agrI$GH- z@2Y2j$V%Obax*PCEF*Nmi7WXu#p%n|GkUtprs|EYjCk zIy97;zM=5wcr7VYq_o%Emw8vRhRtBD$dV({)zgHadE$_G^g_M;K-5k~G%BeON2$)n z${~o}4k6=+8r+ekqy&P|&1lrf`KHf-yY3eaXmw!|Ia1h`)QVaD+UQBv@N>q&9oY&; zJPm!Hg+q^MzS$5M>N?kaZ%(A1LNwR< zDI2vEAfnp|f4}lx)6;tf)4VdAEqvj1yRFtnCFjAd#e2r=VzRZL=vE%lb{cP*p zS1Dsg?hAZsN#}I6(MV!XSUujmtz4kg%vgt794tU8;qr_dOVO3cuW?*mx{nB7al?7T4c@?BMYO!L5if|JA zn?c`1N+s%u`en7W(g@nLx0s1isF!Nk(+bns?2w7JVsfU|u&V&}psZYDBZZ8jv}r0$ zAJZt<0v>Y7V9TEjTB!HdSlWel@pw@ zM!X+*ZVr%-?cM!=TRnw-fUh^4?sW@|>JLx9lFzR{=)U{O6KT6h;qWb{K&o!;)xEBt z-0_hel-XBO^tA%s&_#2G&k5>eb3=*mt&v7sVl3gIsGmsQP4%=Sr<(d3dd246ZV{ulUtPurK}tgn(U#ivC#3u z#o=$87krTDksrU_vsLD3R&i?FwXP!`$2uU<%h8u3Hf8p2ZEh<2H-~tz;$?S_#{(sB z>0Qw{=Wzs4gyxJ~-PZNOtFc?C@rBo<%@bXN>ehjqGO}j9E*m1@@+(`vZ|U_Ohx4~S z6~*>%jgj^qp}0tAn@xEzZyMQcQP+uH7EXPL6 zKhrH})^_OA)>PNnyML7E4{OsJr<`nzBqYnd`r?k)GLV5 zZ6C(s!lbyFO8raH-5CXWkvDGaf0j|dDTU)9*<8@9^Q$ghe$R6srbS)qeZO2-k6@+I z`#;B%HB26hH`$iSjA;qc!6#oqg=Um9?BNK~S7F^n5a6Q)Q{kyDf%p_QiShM3^@&IHZ7^bKkF*Sgb$^ zWI5;zSZPDdUD#N)*o2UgRwQ4#^GbvDZQ}->3mqdPK zx>bp=!$4Ofb{J;o8THe66wUILuZUR3F zF?}t$m#0;8*Cp2^_>LzZRBPlX{Mi1=6NIXJx2q}J{^M8C#dV17hJ!0a4$PzQ)DsS2 zO9VO;_xmzPP7Wt+x-wjVREJui93k7QIXrF((RbeWP8YtgTD)BlPpst@2`!8|^6N;z zw5N?m(vFt;q&y(A_Xl0}tz(<>f;4Pz^q4BC7mvxHXvDn&jM;a&Av=PogYcNsP)aW^ z?lv-7B&9-Fe9*yu(EBOIEx??hk4)*zU-USyxUVv%OE&5XHGkJVRG`7HY-$i@7wQVy z_55{i6E<1}2V>H1u;L6f4uc%_@tG{0Afer!&0KzW$Ab?}nD(RLF}r8Fgcmy5NTEba z5e9|r+kM&I{jdZSkQ(-<<$NRmI??q~S=a~zeR*EkGV!THTS&&>gXYq)?3~0WKJOo| zYf;-2_J=rD{pZ!9>dXec-xA)&6WQ$K{GgK>0agpyt=yTqvP<8heS~P>uK{H6#YJ6c z>|TdIvk{J}d)DTcD`A_x@s*duuY;#RJ7l+8u zvl2r0tTXvs`rP1HBysPz%4JvY`eM&3_OjX27%kuKqNi;#>*U1z`HwXWdY~7kI_4Y4 zfvJdNJEq5dUk1B0#70!wm!2LgO$hO4rFol%h9+fl01j$nn=w5pK`<795A1@v+B$RP@4CA2 ztXZviup)lbQ-p!kK}Kh{1@aDTQ+oTuW5ZXM65h>lZ6|BFzJImx_>o7wOxBgV&83*^ z9OT#Mn5g!sWA5`=!~lohR_Paf8cmMKa@VA|O@@~g+;g)&L?x^EeOJ$5#VOJkxrOH= zEf=-o=4`#iE_-Jea}d<*#_Da&%RM!gKFeYYNya3teV5#&Tn;ft2CYpIJFkLWbGVvS z?AW}-$f55{IF8FDb*ixWYq+gUEH<&h?^qw)lx!35g>H{y=u)^NoyQpW9xG3-*R(Ys zEMIQS{q&_>3)mHgYT>8IzIRzquPz%UBDodB^d4nD0f5$kGaRPA*Jj9lc-sF^&9V zE6##rA%erkF%X%v2;7solK%spxG&{7ason^vxdfs1Pia1;2K3^zP&skor_ zYpsS@>)uE$WD2!KylLTt^VfVlIX^f3A$sxzd}I671E9Vb5?xm@)D*hqT0k!{#tD#S zT-7D9iyg3Wqs`fs1$xSvz9k*Pfuw7;BG)jkM;PmHtNr|7s_DiM$ibU7mvX-}Dnv-uW zEIa2BI$IdT@x3*#!@#S1w$VzGgt1;CM@h70TWkQ14=RM)_3%tR_~wj-QZ=8q@t}HK zrBACzDIY~Z`>m0Lsf`7R=H}#3?2&4|qAc6WlQhQlL+zJWcUva+jsjZ+@Exw; z7LP8~NacC+(avacT(6O0n9&DXgt9<%>OOq8BP-vv65qBPt9_X(gohN2Jq#mzwlR`W z^~qGD`Db+X(HWj4fSm9mQRCl8Pr-weXIVdRJ@h3<=p?oy~XVAiGACDQNH_Ak|90lHA(%5%F7H_?h8Jt4% zj%N0VdE>Z9HKl@W+tFR!%3osGLPLR9)qvO9_UB#Z1+pd4xIGC!;J2qR;i}lV`b6@n z=0*(XL4>#!u44*AMpYz-1=3pQwiXtGYT6J2;45-AGTaYVWUZxr4svPxX$UCB1i4kG!6| zua7LY>POSd;1{scyU#1gRBI8^AP8;_n#@Y^Uh3`YGU2r@+Vr-_y6*}jt*du1Q6aFt zxsx_2v*p5MSOpvT4KnmR@e=93.4%3.3%3.3%92.5%4.1%3.3%Yes, I use RustNo, I don't currently useRust, but I have in the pastNo, I have never used Rust0%20%40%60%80%100%Year20232024Do you use Rust?(total responses = 11906, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.png b/static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.png deleted file mode 100644 index 2cb55953e5d894372a152fa7200e65b1a10dc19c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28812 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 B^e6xT diff --git a/static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.svg b/static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.svg deleted file mode 100644 index 61745bc2f..000000000 --- a/static/images/2025-01-rust-survey-2024/have-you-taken-a-rust-course.svg +++ /dev/null @@ -1 +0,0 @@ -5.1%3.6%91.3%3.2%2.3%94.5%NoYes, through a university,school, or other educationalinstitutionYes, through my employer,contractor, or consultancy0%20%40%60%80%100%Year20232024Are you currently taking a course that uses or teaches Rust OR have youtaken a course of this type in the last year?(total responses = 9232, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.png b/static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.png deleted file mode 100644 index 08d2fb903de2af0f1feed9c734426c3297a80350..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48664 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 diff --git a/static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.svg b/static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.svg deleted file mode 100644 index 1f8b5ae10..000000000 --- a/static/images/2025-01-rust-survey-2024/how-is-rust-used-at-your-organization.svg +++ /dev/null @@ -1 +0,0 @@ -35.4%19.2%27.2%11.1%7.1%38.7%17.9%29.8%9.6%4.0%45.5%16.6%25.9%8.5%3.5%My organisation makes non-trivial use of Rust (e.g.,used in production or insignificant tooling)My organisation has notseriously considered Rust forany useMy organisation hasexperimented with Rust or isconsidering using itI am unsure whether myorganisation has consideredusing or currently uses RustI don't work for aorganisation or myorganisation does not developsoftware of any kind0%20%40%60%80%100%Year202220232024To what extent is Rust currently being used by your company?(total responses = 7805, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.png b/static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.png deleted file mode 100644 index 6b3f33e34d20035709278fffa1d0cd9632bd24ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24435 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 V3w$Y;FDEh@jINqqDZP9*>OZ9e=57E0 diff --git a/static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.svg b/static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.svg deleted file mode 100644 index af418fde4..000000000 --- a/static/images/2025-01-rust-survey-2024/how-often-do-you-use-rust.svg +++ /dev/null @@ -1 +0,0 @@ -47.3%34.2%13.5%5.1%49.3%33.4%12.6%4.7%53.4%31.1%11.6%3.8%Daily or nearly soWeekly or nearly soMonthly or nearly soRarely0%20%40%60%80%100%Year202220232024On average, how often do you use Rust?(total responses = 9849, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.png b/static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.png deleted file mode 100644 index b8e3fd556c6c7559dfa0f5acaa35fa7bcdb1350f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31181 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%0AR{v?iEqlw*RwIk+5{&(AmSwJuBhl$4svEnHkR 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 diff --git a/static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.svg b/static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.svg deleted file mode 100644 index 63ecfcd27..000000000 --- a/static/images/2025-01-rust-survey-2024/how-would-you-rate-your-rust-expertise.svg +++ /dev/null @@ -1 +0,0 @@ -1.5%29.0%27.2%42.3%1.7%23.2%28.2%47.0%1.7%19.8%24.9%53.5%I am productive writing RustI can write useful, production-readycode, but it is a struggleI can write simple programs in RustI can't write Rust code0%20%40%60%80%100%Year202220232024How would you rate your Rust expertise?(total responses = 9851, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/technology-domain.png b/static/images/2025-01-rust-survey-2024/technology-domain.png deleted file mode 100644 index 6274f7da2335d87c0685939c0837bbafe15ee436..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62291 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 diff --git a/static/images/2025-01-rust-survey-2024/technology-domain.svg b/static/images/2025-01-rust-survey-2024/technology-domain.svg deleted file mode 100644 index 744da892f..000000000 --- a/static/images/2025-01-rust-survey-2024/technology-domain.svg +++ /dev/null @@ -1 +0,0 @@ -3.9%8.9%27.2%21.8%8.0%14.8%12.0%9.9%27.0%17.5%12.6%5.2%9.5%9.1%2.2%18.1%9.4%3.9%14.1%10.4%52.7%6.4%9.9%20.1%3.8%7.8%5.9%0.3%4.5%5.3%6.5%24.3%22.2%8.5%4.0%24.0%17.3%13.3%10.2%11.1%9.9%25.3%19.7%14.6%5.4%9.3%8.5%2.7%12.0%4.7%11.6%53.4%6.8%11.0%18.7%6.8%Server-side or "backend" applicationDistributed systemsCloud computing applicationsComputer networkingCloud computing infrastructure or utilitiesEmbedded devices (with operating systems)WebAssemblyComputer securityEmbedded devices (bare metal)Data scienceProgramming languages and related toolsScientific and/or numerical computingDesktop computer application frontendWeb application frontendDatabase implementationDesktop computer or mobile phone libraries orservicesIoT (Internet of Things)Computer graphicsMachine learningSimulationOtherBlockchainHPC (High-performance [Super]Computing)AutomotiveRoboticsAudio programmingComputer gamesMobile phone application frontend0%20%40%60%80%100%Year20232024In what technology domain(s) is Rust used at your organisation?(total responses = 4139, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.png b/static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.png deleted file mode 100644 index 0d002d7391ac5c74a3610c1d933cd935def505d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63172 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 a8~Fp;&KZlzQ;Yxq4hWP`5U&z74EP_VvB#|d diff --git a/static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.svg b/static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.svg deleted file mode 100644 index 59afb71c5..000000000 --- a/static/images/2025-01-rust-survey-2024/what-are-your-biggest-worries-about-rust.svg +++ /dev/null @@ -1 +0,0 @@ -42.5%10.7%16.0%9.5%11.1%9.6%12.7%43.0%5.3%28.4%28.2%32.1%17.8%8.6%45.5%9.8%15.9%10.5%14.6%9.6%13.8%45.2%5.3%21.1%22.8%35.4%18.6%8.9%Not enough usage in the tech industryBecomes too complexDevelopers/maintainers of the language arenot properly supportedProject governance does not scale to matchthe size/requirements of the communityRust Foundation not supporting the Rustproject properlyI'm not worriedNot enough open source contributions to theecosystemRust doesn't evolve quickly enoughSuperseded by an alternativeDoesn't add a specific feature I wantToo much interest from big companiesInstability of the languageOtherTools and documentation are not accessibleenough0%20%40%60%80%100%Year20232024What are your biggest worries for the future of Rust?(total responses = 9374, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.png b/static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.png deleted file mode 100644 index a07e85c3d6ffb959c18489fd010863cfae29a1bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34882 zcmeFZXH-;M*Ctx%Q51=iBnwDR3X%~NNuor7lB|+rk*mmh$XT*TQi9~11d1RzBRP~+ zKoKPsMMgs1U3lL2eqZW%jJ+7G&k8sfhb= z{!x&rqI4u~FQy0gQo9gF?iZADgBqIn_G`@Fqlof`K`gV`(es8ozn3I_r`wY!a%?Z8 zgekpwCfpM>zLi=20GvDFD^_3I?KyGKW0ky8e^4X&!Su8%+~ z8HSzZ-*;mw@^aF(!hnk!F2tr&xQ$G_LhXAIvM89r$at&&4npJz!IJ3Q@e*~YaKlj^BXO+kndng-ZpK=sIpYQ)EUL0e zTN{j!JR2hG!ga-S`^|?$JWI;m%<57&d0)(b@)Y}<&)7oMgD2`uLh7Myjj&AADrCqN ztxLxHJ`Vex3rcHr1ch|)Z436jhb>|w{l=NvIyMKg=R9|lyUfG=Kc($t@I42R3F&#{n zvm~!PeEy0#I&%A*=X#!M&Fb<+N@lbYbc#*m8v!cRW~?EIp@i4yy?b6Xu8qW)S=aW} zT57WF12H4mU1s%^ee_nE?O0NF_r4r<$`N&u%Ku4jGoaH)3BJ8xA@)hirQ(Zf7Pr=U zUa&ut1+`+(=HIE(*gmQ7=&6f|1M~q~Zz1MeCYx&HxU-&%5P-247JkS^E^we5j=UDXB5}Q zHMAIuo-1vT&Jpx0p@{_iq8pD|MW$ZNr({MdWm2eWUWLb-N≷GG&s<>0X>M)w>`n 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 Yc3m-CG4<4vOP5rXHD8q}z5num0I--b*8l(j diff --git a/static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.svg b/static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.svg deleted file mode 100644 index 74594d571..000000000 --- a/static/images/2025-01-rust-survey-2024/what-do-you-think-about-rust-evolution.svg +++ /dev/null @@ -1 +0,0 @@ -4.0%3.3%57.9%25.6%6.6%2.6%I am satisfied with thecurrent pace of developmentRust changes too slowly, Iwish it would add or stabilizefeatures fasterI don't know or don't careRust is already too complex,it should not add or stabilizemore significant featuresRust changes too quickly, Iwish it would slow down thepace of developmentOther0%20%40%60%80%100%What is your opinion on how fast Rust evolves?(total responses = 7088, single answer)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/what-ide-do-you-use.png b/static/images/2025-01-rust-survey-2024/what-ide-do-you-use.png deleted file mode 100644 index 7a52270489e5ed8ba62a3835e485b420cdd3856c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37818 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 diff --git a/static/images/2025-01-rust-survey-2024/what-ide-do-you-use.svg b/static/images/2025-01-rust-survey-2024/what-ide-do-you-use.svg deleted file mode 100644 index e8390b448..000000000 --- a/static/images/2025-01-rust-survey-2024/what-ide-do-you-use.svg +++ /dev/null @@ -1 +0,0 @@ -61.7%31.0%10.6%16.4%5.5%2.3%0.7%0.2%0.2%8.9%3.6%0.7%56.7%30.2%5.0%16.1%5.7%1.9%0.7%0.2%0.2%10.3%3.7%8.9%VS Codevi/vim/neovimRust RoverHelixZedEmacs (or derivatives likeDoom Emacs, Spacemacs, etc.)IntelliJ/CLion/other JetBrainsIDE + Rust pluginOtherSublime TextVisual StudioXcodeAtom0%20%40%60%80%100%Year20232024Which editor or IDE setup do you use with Rust code on a regular basis?(total responses = 10480, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed.png b/static/images/2025-01-rust-survey-2024/what-kind-of-learning-materials-have-you-consumed.png deleted file mode 100644 index 490be7ae30b65e177505fe4c412e5b68969eb465..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41719 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.7%38.7%39.1%57.4%86.4%62.1%6.5%3.2%1.9%4.5%DocumentationBooks ("The Rust Programming Language","Rust for Rustaceans", etc.)Source code of Rust cratesBlog postsVideos or live-streamsOnline exercises (Rustlings, 100Exercises To Learn Rust, etc.)Online courses, webinarsOtherIn-person trainingUniversity learning materials0%20%40%60%80%100%If you consumed learning material about Rust, which kind of material didyou consume?(total responses = 7385, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/where-do-you-live.png b/static/images/2025-01-rust-survey-2024/where-do-you-live.png deleted file mode 100644 index d7d24ba4c7ebc0db43b085b6fdf1de8a151a36c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88982 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

    m^@Khmf=%6w~<9mrxFGP7(gAW2)$N5&^7= zI>{hk8*tJ!e5+k}*05PZwDzwGYUdR(EgDwS-sr)Eg}i20zCP5OYOjZ=X?Gyk_B%GL zsZtkNy|+U|6FAigz@3`a`2o=C*Ilz%rJt12{?Zm{GV2gtGtte(=F6+bV;EQ%;z$;@u%7RuT;mw0-vY75HHveDELN; zn4uP`o^ebI6bpU(Xq&sja8j$SG44fIYH5_)3{OYxwG~_xBo^u-Ve?hXb8KA4O5~4N z(~ZtrA;$X5J15H=C-q2u*7D*g(15W_k^DrD?t84A*#IhuDN0H!D5~GeuduroPezG&1CXUjrR!7y~Aw-{qXT6)YTzfNYL5`7}62Q;^b!*e`0GjxWPXGoo zcn#%ail*Lg0@;;;^*f!!Kw>Ja*KE4SfgBUn*d`TX!sS-u5tP+-t+f4U$K@ww>Nd%p z(ALJR1AK;7`W~Dr2OAj(7-|OD3Y1HZ`I--}b$}m%c>E)`6z(!t0LQH$-GckDf&{=i zmS!i{!X?5pYDG=NbOEW0D;_T$ehS}4Bzkw?SsPYhA?}LoKI!NK9bC_(MxbqAn+~Bz zempCH)HkV80-}kkkvxOOLU<@Ov0^|M)4!%?Tk`;D;M;GORil+!mfG;N4G#pvdK0-} zXRE_>qPZW6SL93p)|G;VnDh-X?)XfW&oB1rn#h3f#6l}m2h{FMDHPsA#wU5~S%oJu zt!v?y^{M3vHKROO(`J4HdFGKqyOF|z4)z^2u4S)oOnH2KBu-|x!-%@sDeuGOvnI04 zl9+zl9rkafVO*DO;ikTnJaV@K3@j{IRHcVrNBNadUmsiEhnPUg&wp6$4D{2yY<-=v PfIp=d>hk5XW`X|~7@rkI diff --git a/static/images/2025-01-rust-survey-2024/where-do-you-live.svg b/static/images/2025-01-rust-survey-2024/where-do-you-live.svg deleted file mode 100644 index 58cb6f346..000000000 --- a/static/images/2025-01-rust-survey-2024/where-do-you-live.svg +++ /dev/null @@ -1 +0,0 @@ -22.3%14.1%6.11%5.54%5.26%3.2%2.85%2.56%2.49%2.34%2.14%2.09%1.99%1.77%1.57%1.55%1.52%1.48%1.41%1.28%1.17%1.02%0.877%0.752%0.64%0.627%0.613%0.501%0.418%0.404%0.404%0.39%0.376%0.362%0.32%0.32%0.306%0.306%0.292%0.251%0.237%0.237%0.237%0.223%0.223%0.209%0.195%0.195%0.181%0.181%0.181%0.167%0.153%0.153%0.139%0.139%0.125%0.125%0.125%0.125%0.125%0.125%0.125%0.111%0.111%0.111%0.0975%0.0975%0.0835%0.0696%0.0696%0.0696%0.0696%0.0557%0.0557%0.0557%0.0557%0.0557%0.0557%0.0418%0.0418%0.0418%0.0418%0.0418%0.0418%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0278%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%0.0139%United States of AmericaGermanyUnited Kingdom of GreatBritain and Northern IrelandFranceChinaCanadaNetherlandsRussian FederationAustraliaSwedenJapanPolandIndiaSwitzerlandItalyBrazilFinlandAustriaSpainNorwayCzech RepublicBelgiumDenmarkIsraelNew ZealandUkraineHungaryIrelandPortugalRomaniaTaiwanRepublic of KoreaTurkeyArgentinaHong Kong SARSouth AfricaIndonesiaMexicoSingaporeBelarusGeorgiaGreeceThailandKenyaSlovakiaEstoniaCroatiaSloveniaChileIslamic Republic of IranSerbiaNigeriaLatviaLithuaniaMalaysiaPhilippinesArmeniaColombiaEgyptIcelandKazakhstanSaudi ArabiaViet NamCyprusPakistanPeruBulgariaCameroonNepalAfghanistanBangladeshEcuadorSri LankaAndorraCosta RicaLuxembourgNorth MacedoniaTunisiaUnited Arab EmiratesBolivarian Republic ofVenezuelaCambodiaDominican RepublicGhanaMoroccoUruguayAlbaniaAlgeriaBhutanBosnia and HerzegovinaEthiopiaHondurasLebanonMaldivesNicaraguaPanamaRepublic of MoldovaSudanUgandaAntigua and BarbudaAzerbaijanBahamasBotswanaCabo VerdeCôte d'IvoireGabonGuatemalaIraqJamaicaJordanMauritiusMontenegroNamibiaOmanOtherPlurinational State of BoliviaQatarTogoZimbabweAngolaBahrainBarbadosBelizeBeninBrunei DarussalamBurkina FasoBurundiCentral African RepublicChadComorosCongoCubaDemocratic People's Republicof KoreaDemocratic Republic of theCongoDjiboutiDominicaEl SalvadorEquatorial GuineaEritreaEswatiniFederated States of MicronesiaFijiGambiaGrenadaGuineaGuinea-BissauGuyanaHaitiKiribatiKuwaitKyrgyzstanLao People's DemocraticRepublicLesothoLiberiaLibyaLiechtensteinMadagascarMalawiMaliMaltaMarshall IslandsMauritaniaMonacoMongoliaMozambiqueMyanmarNauruNigerPalauPalestinePapua New GuineaParaguayRwandaSaint Kitts and NevisSaint LuciaSaint Vincent and theGrenadinesSamoaSan MarinoSenegalSeychellesSierra LeoneSolomon IslandsSomaliaSouth SudanSurinameSyrian Arab RepublicSão Tomé and PríncipeTajikistanTimor-LesteTongaTrinidad and TobagoTurkmenistanTuvaluUnited Republic of TanzaniaUzbekistanVanuatuVatican CityYemenZambiaWhere do you live?(total responses = 7182) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.png b/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.png deleted file mode 100644 index 6460ab948419bd56ad47a3906f0d1e0dc043a084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78420 zcmeFZbyQn#(=LodaVb!sK!F0q9ok|AiWH}~h2l<%2X}38hXSQo@#2=y0L8VqhTugL z-04aCd(Ly-_dD{Pf6gD@`c77owb$g{vuDqqJ@<9Z+&eLv>WW18wD@RfXhd(6UcW^{ z!v>+D;k?4bL`hB`E*PMpVWMfO>d4>U-yiCTZ|t3+4W*Y`URkLX#Jn^W^G zn``4!iw~M(c0OmurC)2zHiNrIew7uasz^y{I`2pMxM^k3WO(|7U2}jeL*omwzg%@? zU6!ve`|EsVj&QV75C8fN(vfs!q3Rp<@%mS7^?@s3wCN&TuPH+L6=``$E?_@3~z8;Lh9h)hUYcyw7Ia5KT#oh41_EVJQFn-`D?tJV3c+goB2L zj^^=JUHkt2_y4Ka|0f)JVBGQ>w#;bJ7lIp#F~Rrx1rAmP9T}n&gsukwtL0~@2j41@5`3Af#!!F^44H|yc^q$ z(&OEQoRV+Gc3mGwrB3ia?_P9OsXKD_=rtg^%i=M(>T3OMo@ft?iH|E%A?W&bAU{&n z(DfI%*Ybk6(@*bSMqmrIny_81v6=;Yz|$~G9ZNV+2}U{c#yH|YC(;rcu23Rz9gx=JQqqZ@VL&uWE3oog_!dS z1aw=|X5cUaabU+J3ezG(+ z5E)BiVnBTLORaM+gZ@k~fLzIMR}`Bce!X){V@eM#?4Lga}u>LvD4e3v#Ow@et)f#=Bp4Wj z``qK8i%5f^y+zK;b*mtE`9?S`x1Mw5U6xXHw%79o4~QYM>9O<)+X@okH&&+#xPPlQ zoN4uW#g81!a|eITI_AX{uz|6>y_#txpMV7%I@t9dsw4#GEjIYZxqAjhcPNxA%t8>d z-L4C4O@0nkyo(}y91bf!D^rAAtr-bYW=^pmr^_9Adf$+NwXP3`_%+Qcxw2>$@5c)n z#7ig61O?$EQjzQ9<(6R=!+{S;R3@fGO`Ps!e82V8`=3%7=s$&3skz5B7~M8}W+~kt zXxSDKb03}HW9->p=m;KPd7pn~uaZ}gJfvnydGaiBtI9gS;urOZHq=i+MLk2RY71Zp zr(`dxPQe8Zq-6Mr3c`6L)aXWOUaZU0?pZUsxy!RU*TY4gE1N~IA{sBMPFcHZz-jY^ zTY0@ZmfAcLi&3q(rX9~G^sR60kZe12W^uI}P)Eqj`f2vpy;KwX=Jy3jo&^o|3*41? zG+?9GV3%1v)L*ka-Pwi;m{Ng+&&)K>8f(16c=~RxT=3-f!;|fM}_PHblbZg!L z66&25U^vLZ%Swkh>`#;(vl*s;&t6fCTIt2|?S~Ikuu{XvudOwDC2Ly0I!JvO%-dU= zG{UE&OnjJEP&d?A=r1NRBR`z$Q!@2o>j6A2HseRf{&*Lp?h#iCai2OFxQCsu&vb9m z@ZNsGW3))tou?0QPsZt(gAKf{Q&R>6uSPuq>Pz2Q%JBPXz;+m0as85lnkvp!CPyei z^6W=>Vj=pVAMWtw&;1V=Fpp zlaZZlPx+qWvP!Shi1}ryvAv zhzU9CF1bF$nVDq#xa^7wrtT#Iz=GTIJoCldy3QQoW!Ep?qjXGYw8CfH>%O*?duVwT z@SF@t)*UYQd!A)9xJ;gfoq8?`Hpx%=KhVsW$Zf3_7TwrBX2kfqm5JPalZvje%kie;!-%vJ$r zwKf-~OUIWNjUyo$-v^9$jKA+g&SBQD*q9cgDfh=447^t!nkN=Y`3DZyx;^J{2c&!; zVUV?S{i&P)32X{ii&{`QAHir}Uot;zYL^)A^wd7b;aX(mrA#W_Eo0VfuI^+uLwZ0B zV@ZCW<+5?2V+JhDAlaDU^f@9Jd(!JN@u{&0-fepnD&dqMX zsJ~Z!{glH<0to_Q0l6k=c=9@KEeJ>^Pv_BMn5hpp-P zmIIfo@M2PW)T}MDwHNp{{@`7Cq)xFfbDL^Mg-TOC# z9K_Z0WjbCX`vFJgbkO#zTK9S~AV?!84lc5)u0zOi*!s^^bRjF9VU@p9)FnD=T61YJ z;Qr+f^~+qfy>Fet(V6$CT(fr{8;=}njG86Cdz-n#h3EWOHy;CVQ)Sl{3$DvZ11*oW z&BKo2Bho$vKJd`wr>D1*I)S6(K4{=g=la=4hK#(fSAGX!nP4^7l&^_jS@TzfN*~(3 zK=R_3#1buTO+v-%KkMKF_FfX7Bo*f7WD+q?5b$6FbwHaRg+XJ-acfJ(&*`9h>EK8H zd_cAqAOCW3-CD;j3}#zQ5W;7_jsfVekuw6HHhUCH!N=fQTMXwx)Lzb8cs|TX<}T?; z>gfxcZDA`OYoxI#ji|g!p4`eSxC9_~U-3Xb3(9(JtpozQ#vcka!zu?Rvh!CWk z_rc6x7STHAhYE;w2%Kn8i7K_&!wClwIlC0Oy`aoFQp}N-i@KGtFT%W^I%lQ(h$P^{ zDBeVZzr4ha0UaiEB`Gxh{P+0+>V7}3wo%`f zrUl<`Jvn{>ADQDm3UC$;(+~LhF;=Lb@gGkgtwxJAG3e-%aC}QhQ}hL|tHF5!s;}1P zMy$N86$IT%MGQ_W1xX6Xz+~a_)ll`DnR`Z2~AQL4|KW+C1gMz?XSY3 zIvq}=eb5^O#X ze>oCQD1{EL*2l;u;v2FNs4&;Nbt@S91qpMEcpXwNjZrfOSezOf4h#|m^-wA{Y^Yrz zd(y+2EBkJ6XO(*$HhY>snf#dJepB9Y@yFbmU#1&olEr`AIz2JYpFvDk%-3n5C)YDj z(h#vY?C@DFjZ4pm8#JGjYeSt3a?tAzg9oVU$r+?i^WWIP)AWqlQU>FD888t2qwDku zj5swS$9of1VfvyuS-Sel^^fI)5-@7A4fm{!mT_VH6l9+DL}8~qIy`}yxKx~9OdOmJ zJ0!@!E&~XoC0y9smml`_(jh+>JLZVsJUg{Mz?WGn?i6?Qj^{F4><{ZSdRYMOba{KK zAh*m?`TK@e+pqg>LPlS4Uw!AU`Y|n>FzdUj2f2ZYa}BLGx<5*BQa@12uf0)1vT+n4 zuo0Ns+&81SQp&|Bz}N^_+2QU#+={xQ&jC+?F)AGRJQ#2RXRD z+s-+ylMqpj&xr{R6CPYw1MkMr5m}#h2hK=AoAdsC(sbJcQ%k2QMkHqYILP!<&~Ge! z%Ib2HtLW@n5yxaN&0{NxH4*)LljbfvlLm%dwbBu3Io1s0+x|LDqiLbp+iu|$Jy_be zGTS8QyjCh3+iI;nS_R5xnxZ!rTb_u?rB640P-C(LbJi2VHpCy$DA*VAUBJ|QG`$Hm z|3e0*9o4`CLoi3iS2A1Eh%N4mC}_?|mJcE5WU{K60H$NxY9l0>Q{UdN-qu0_cDN#< z_3BAIzJWS!s_9IKr8zvx#Ci+~~S>dbLj!AD> zhy^zn^;l8r*D{y`lP{jCN)(Fm)?c5)07IPOFoPn_r@~JzSPHLc{6UPR77^uUM~vJ2g%5u3!`2ymkA7`iR2$f zZ=`OlByO|0f~t*kXf(b4AXm3mR+7g&-$NsSeVxZTtB{J6xIsPkArrZ`Abp?-Ro&%A z+~MkPNe%6zPdUM)K!+S`KAy+KQUKAcH(`#}-P9L9;f;qP&QciQ9TvLlY3DF+D%=IW!lcN|Yhg`D2W(Qx zPwK3A%er@D1SRvJYezPsSlzwnK*KLNxkL>#fG?><* z-|n;7Mfc7eGaOTJhgisL)=?iHp^;0HYG-frC?<9L18@X`BI^ZzKKBoRGr^HZrWs9) z?42?Dl<(r7Ap4ssTvNl3_1QRk^j%jQtj9E0-98{7uGJk%kH2y71iqK~tzH#}juX-Yx{xl`PrH64_M10iBAOQ{VYcjZ5*35!(`+3;H#yrwP4md>S zQ_u%zdEsH4X!8EfawAty=xZEU|K`XA4<2AI&qsF5u)sB~I2N`&SJS^VUKPN@yXSiD z%HM$ft8L=q>e-C)G($+u1mD&JnS5ICR%u4leSE=@VdFw_*!l9dX-4yOOqR7|WCS)y zs%B|lV=5q+Abp;s%HfO~A5wEl_8=e-dHtrj{S2}2#)bcy2AIj8LDwdUG?LV7Uv@dw z1ymhwJ+Ak@^&D;&dqIo=Vp7SvA{vu5ZZQ`?N@Mfg)s1CfAl5Kfxdv|!U#^*=Y<{)= z%rM$%>M~180jjN1=-e^ew6cy%F*c(nm0r6RkCBG6g5kyVzgh76)m?GRZnqTtwpH^} zBlxUErF(m1jR>4^^#TVk^z#@dY_3woIz()k+n59?ON!-80gmac!Uml9H3nh8b`z|$ zZqcRx3@jX!li8IdLwx043z$imw?nqg@VQLV^z>m3VMI(YyaghXFmY?=P7=W1%Ogt4Wx|o3%zf z!Slsk+LYO!8wwK>YN0fQtC30iF@Or!G}7B}dKxnO7JD?5#MO%#(?1U|w) zk1)aTlcG#b>q+*j&bWaf6@$g_ioe=xra6ZNm!!KU?zLwBj*dP`l_5R->Dg5|&*PM-wlPG9>^ZuAKOZUy!VH!!mJ(n1KlPtuk3|T0UA^Q^06;IP~J93yU^J=#yXcc5IjF z9~seMSu*)pHOisdaQbB=YRf=)isz_f`uZq>&1%6;#F9?FNNVh7C3O zO;dw2j2g!(+tgHZQJxpFcOr*$)pa(S?u?@f`htoL9WCIyk?{UtF?Gf6V|d!p z(Yho++Hop9ZZ%?Nsez0Q4|Pojezx;dObWhMRjsQcG~hw%O+rt#42hOKc5`HWQz5ZX z&Tc-F`leMC^4@}v?N_7MQ42sBm$L5Sp;UR?Z7v~Y;HFi=t}o;6iuh?6K7O{6e<2s zw@|KcjX**YcqkLcG$#qZD#R zU}L+ot*onrg^>sxID7Joxu{SAG-ePoMDq6hJI8LkoZhGxM3YqP7z3>N1aBdmm{Pkd z&TiggBP_&Q6;fmvYN_$MK8Ct3?65#F;L1J~DXwn{in;bEUn|Ct8E<+mDN{Juo9VKi zM1lhw|1cD5%`bkEnnn6%BEI+zE-VQg1}Xxm`6%&1n~IX$Kw?2z@lv=Tv4Rx*y57ja zf^Az@9w&f)fRqf%RuV-4YX+A8keq9_JSE{doANso0@+qIC#6yk}Ut+m6T8){;8C# z$EDSdZUR6V@pOd(9l(VrNy~p!N2R;2TE9e=PsuBL&i)LuhF!5TyAF47uLr-_P2&^C zc{%!Cu6GUd(D059wxOo(kJOQ}YDn3hpRU${7_!9?x;XffJbTubZb6O|OH!9-BxOo7 z(}y8J%Cxu7b<_dRs2Y!abM{aIWY|-yy{c8mE{Iz`wQlaL%RF7BK%OR;|3QAjd}jxQ z4f9<}%kcW;`9hbA1s!_RHgoYTt!J=2<6E#K-kQ^r@fj88=Q!nD%Ja^R-8caNFUnPN zwY{o?IhsPx5?8uDFaVhyH#!~Xiv1FG62Q;gWv62!#;WQjYw?p&DDl8%)Xi)bzu3I| zDNj7OMHxG;J65;7;#0U1yHI_-*AN4vViqb=WP-|n+$3QlhJVCV6CTIH<2IU)BtT~p zA4_&Z+#+oj`$~+sk8$x!Kj;z;GA+8jO*vbwX1omFc}tZjK2j}dR#cWk^9a}zkR35q z|9+&p+JcmRbrTgKqE>4o&xisj*yTEymlf)Y-ibUf?sSjv4KX8^)zcl%7B@9wBJH=H zW}fv?oh1p@H)Cv6Vt6Fy-3wXg-5cv@f5|zfhnj7!<&g1iN-7i;sYmunc8@*FE;|7D zFo(hCg-U`WDidMZW0qrF;->rbHs`s~OagXNU-tYcGhfZh2K3OTRUn-n%;={A66vxX zYo$q1srjB1T=f_n$-X%lz?y0|&0>YHf=ME-dy@Gv_DXs?Q|4 z7Ll{xuHVgaCh}f@w4q}kGqmt0p;$jYwufM%X8Y4)z3#1O?;@d&FHunA+qY5#5;S%t z=m)*gVkCf)dQF9v3oo8VrV1t^tG==dRh5$9%q()l!!C#5Cw9il!ni|{u%v(=udb1S zNCi>cxNKqD)pQWJPz_G`!s#BOM_h6aGYmk6xfE z#IN|(%eDO?Y_`%bF%1jk)RtjLw2mUy9H4o{AM>dFxu}-)j?;!f&X)@#XIFSFf1*`^ zWdxEQbFcc2Zs^I+$3J(_gb;zqm*yO}EY_=>{x_TgqCssV@G7bCv%3lRK+}^eEm4{S z&5X@fB4KMfN0>WM_Y3YWNX8djDhXR(xjmhZ-eE?QY_rP3yVRK;IDT-ISl zUj7g!HW6~?32Ku7t!v5G>HcWD@VtB1Kcqd@Yr6g-9Q)*R)~_>=VO4B}6%7k242=`7 zaOk70NnXDm%CIuXY$P8h%NR@}Tie2fd;WMVP_EF-3>)OGA@wVKU0w4{Gs~oPasH?pZDm zNYPjCJsJ3+G(RpX`)y3jn%=VBXAYnjZr}6MW65aJJP4bWT#mv5Mzgx1E)%CVz`f<( zGL%}{>w(O;-n9QT@F%LO#Ty8t5B*G1`G^9F3Pv z1|>iTlcF}z_^@P9pMOix!Q<}VjD4(Ec`liBudFaY1eS{P#eA#2Dbel0OIh&tlYwzh?X+{nt2@asO58 zU&+4?CaK25hr;Z^)bI!fS?k+^PUD*AinLjB9kCtKBMjRSB~H8I@i*LR|(&CV%{8_v*B0*i8%Kp@8j{w6Qdb@tiqH|to`|fGK^S1h-s=9CZ=_$Zyo0^X* zr+F7v*#qNq;}Y|#9vJHjYgX%zgGp>ca+~V=#ti2Lm!(-tua)u>En8ckItO3GO`ZKx z#6hI$YQgVDGIwtX>%Ti6y6p=t5ED80#1XXCi+L=yElHq(%qYPk1tD7wad-K~l&_OG zD#~_629_&YF%Bv1!I(((M_S^95b`2Nb<_Hcvid`hAH+4Io?YHAH>|35&wUdTKnXGE zeCu|H+(W z0&=@`QfuWNe^ZR_b{#5QV$lkO?{_+YU_;nXvHMs5))ho z(|~FQV!%wZ5_P5;m6BC?l`KrEFR7BQLPW>}1Pmox`lr z0q|6!nKM>mP=4)y+Zc~($M>*cv2u8Ij5Fo-lcWW6lkO`LrW587px zIM00vy(xz`24F`_haAv7Vl&(9E>t$|Rz1&0;EA#M z<|_Ju1L~~yAp_JU9i4Bp9@JHi@Gs54C0W;6o&mbn1GofsabO0PLIuKv2572{cl^f| zeHRMq58p1(m&r$(M2#7}h$*J=^J)uE#lJYVf5Ez;UJ zFY~aOOrNq`Fd=86&XzGiQF=Kn^h5Y)T=+suZJ&C;^wLs|N<_$x(5($%PM1Cnn(YJA zA>&pebZ0;^5om=0?Cte*h~KF;{WO-Wu3B{U8Q`dDPcf`HU?9tv1k_04$}!)zkt#Vo ztvaW|-*TRAh$kcoo;mA!qV(Lu(plOA!iEVXkJRGAhrCMFEo)Y4YsfiI1~ue_!-j)1 zba!yj(}*}N*iVzmk-jd!B0_(~H1qQWf`p?f21oCrDf&MS$+M;?(T3^??M zH9H#<`LN>Pp?H{Jm<8!4t(8$_W@hSxnI!9Tlyn>BmkNG z@&hR0Q(>V;G%-BDXS&}%&{M?D%14|%%tC%=bH?EA3W|fEyx_vIxA-BB28_y7jT|Vq zo%B>YtQK!BVn0}+G|aD@WuJ}hqF}(RF~}Wwzyui(>RbenbHUYo9PON-e!NwYbn0+- z*->&`ox!u$C#U!jE&1WtB@vkw!7EuRrSj>v^>Ly%#vZ1p&1yh?IRhjG9$hQMP zeVP$U*sMVa%!d;c1@44(RujQKEKkjx=>iq~6RUVlBk$Vw0MGBIrm#R}=-{`Fk3riJ z`%y-0H>!^wE@i<_Sw*}+iID?9BADX=`zNHzoyfqGt8gvv^)6Q< zxFskerrgDBF`Dai!>t95$-P-Xg-f45*(uxa8NwxxeYP?k<)M_$;&@1PLvP$O%+c+a z8ldNG?+Os(S@$;Wo(DLXV7{8~G(2>eZ(t*Ekr-m4z{!^6c73bycg|b4`D;i&G{g@O zL4|r$R5RD2SKfdxnH1o}3GG z3lqe?sLW`iLq%NF%vZt3KadO2zNVC?Z64+r7CqL7@~`JF^|~9y21gbNUIx*2~vy z%p%8Ss9?R0@( zygpy#ax%;?z%^Aua_t7iT$&mskNBU8HsY=l+?K$J2+Z9@NC2kt^SvX%z8~~BKsmi^ zQaa?&II28qojh!S0>C@0Z|I$$@MHBoPu+D3BU@bJA9!>G!RRo3Mys5a^`ja5yqZBj zI68m6IMZ{9AV&BIs7xAb-dq;JOMeM~ideKCArP@qLs`@Wrlaa5L0Y zN_r&LnGzIaXwJ{#%%|qja^sFHX@H1T$k?91`ajhnXlKz7T*Os7{ledRr!fY!aF$CR zZw!Vu|2m3)eb{A_pkJW>aaR8NwJ-s!j*>-T?NkF7xNH^Y`s0xD9rx0*@Y8Ap^IE`A z^z7hzrx|>i!jm~6ZU4*wmW_noanf-%&gzx`LLD9BQB5)&VffsIC_oatnfVfvUDx& z?%D8gqjHJtvJ-J5gdpL9T)&Az@3fX;3Rfn{p3-FBbmdq z?1~*4)$agO6S2bKBXDrs$;^_i8n)_p(`UUUo=7y9&>QXs-Bd;rdb6_&mOwfvBcxf~ z#FIt`; z9ZA@81G{0Isn?}6$d^2WoJLLG*1aUNv6#ltwe8K-c0Da6NqF8Z)*kX8yMA%wcQ3)S zU%84YQQc$UaD z(>!!AA2Hy|3`0d$1E8LK{?(J&O3bp0*PfV`jWgZi1M3H*6WVJO<4QI4TNNo~jeXI_ z!9a1Rb{0vzR{yLl?%H&mAM{seCp11_3;H_k4st_d^5&YY+A}pnbZ~4Rw}PnSHX69* zc|$r*6}N)t5+hTwFb&O+%t%gu*ep#Sf#W7lr*p?6Ie6(+%OR6lh0Jy9Nbm)nPE~ml z#b)Q84(4D2a_t#e&f#PoZHb@7{StzpM`y(-;X)~=-O0~DWBHv(zo;j@cWjnpjp$c4 zXm&N!v8r#8v{#M_9M@{_>0;0Tnms3B6L^#52syRTw^&{_{=!~%P}z_$M7?v+Z+Gr8 z(gYNj79vQE8I+vx=^bvgBsQ2ZyH7J@P^|9rJAn{_`?C9nJZhDKFChKR{wrb+14A%; zQ&A=SOYB&Ug0G3I*#CfM2y#5@MrTsNdN3za4;C;+4>s| z1@Z6CgvySuYy7_94E9Gn`PG9x@d^dm|Kjm~5ruzP!#|S$DUbLI>HizEXeagf&WTV# z<2wx$uKeA4`}>HI>Feh~>EF_bH@~kDzpseS5bubr?CJK74)4Uc^$8$1tp2|*f-dhP zyL|r}iTD@e_zWVXL;vgFJI-=n=^xI&JlEen6=kWp#zQK2+`fc++7lvW6SOP=Ea8NwfDtE7 zqRZ86-rGf3PW?#a($hxgkc&1&wjJ1*dP1US0r8u?%8}JKQKx!tC*da2Bw%M*7q^>( z0vd<(k zrWY_k;zg4JaO;qR^2!OmFMCU5ZeKdv*R)(}*bCtU^-w?c>pMb_#()nxxa8xflbjqW zLwu|H+(0wE7IcsqIoQ>K&&gsZ-w&*YFoXwu>N93kKFGprIeh7NBiAPhU$XwTe3852 zsSIACl*I8Og)und*&K*1afIqebeqb0G zQcU?m%L>8*8EC{o@G&QHVZc&seZY?kwnatw29AYEV6ukB;o#EOAVQ0v2MHJ0o#MN` zCbbPZa)+1K7Kiw_K#Xw;m)2M2TfK4Ohd0+a0uFzjL5+( z+DW;fR86lESA6Rgx))^Pe%?iE$4{)(6kR$UkhyIO*E~og?*J{|Cz(T>{^8)5o$DNRbYFT8<0g&q?|OyU)EjG4Q* zO;p{;_rf12s5BDRT=bC?-I?N?oUj`53{+T6{W|H%ZZvLF6hH;1mAqGNv?HBbh^qJF zPg`uH0s~R#I01^=PyorWbe{KX?MG-myedHzR3kp-Cj~poraUj;WK*9*_hJ(WEbYt* zH=l}?wO9E4j(uY~#|Oz!q#m{xn-ie0)>hAcfale{M>1c)B4-zTA@qy_nf`eW1F?jk z==i6tDpEI6iGvCA^nniHu5j})5x^+L-)D$C%S)er7nT9s?lk63A*(?L8k5wbCKaHF zhh)YL7z2n-RJO6Jr1?CN$BqH4%jYWJ_>=@@kSt6lDnBYIbs|eP(e}84d_n5WDs^vY zvX=@pja&(xeGk!$9FFL0ggh*b=X2rxRJhD>Q)5^OHP(1Qgbc(-&U73VMJ~XZkmXiU zFElLerXHgDi8U=_IW(z@R3JYq+i9kv3n8)VrnM&72Owb2&jIxsG4qj^L4+_?My{cd z=AwNA1A^@dhn7_=DfW%W@BnONJgbDY4JHvY`b>Ct^=6q<)HvNXlpdI=om1}W559oDxx>^K1od<76U>H)6IX(sRYn&0 z!Nm_B!taEsfK>_(?kNr5$iPIoyuEnFlOLx8F~bDpymwDr2*5?nY`H0(eAZu&7zd$# zUrZt?TW{p`xF&a7;m#j6!u>r^zV#th*%UNMKIeELCAxtPG9v|Z#^`@;+Ksbe)}egl zVm~+EPZ=~aZt#w#1p{pJDt_?!%TdCw5i_DZbe$A2R{4N&V_#rPmC z=|{(pBMWF1*N^yF4kPM=;E%5kr+%P7D|^5FSHm|1be%a2w#IBN5N1rOThYHf!mCro zm%{K}4_MH-fDlYEk#%b&4vBwcBK}i1?*Z(4xMxm;lcAxR5rNnSc*N3d;`b;Ey!a3Y z9w37(e+nSe$KmeZV5%5a;8*?F6P<$%E4LLM487o&6dVnkRi{6PRP#P$r|DzbjB`TT zI0%>7_8xO1XR3lT+S^tA6f3(lk21rWMwxBDAKrLUVb7*vqay=xkPb_u2+W!+U8YK$ zxILiT7WQJTAFZeg8#;Dp7un8$BY(}QQ6t$i+mWT+4jq^o1KE-lNs zfh^m&A~?k8KxqDi$PQtU8i4nMf5gc9-q5-58?1{^vAM*)o9-qjL>$PuvMu#mz5^o8|`ryw8n#sWSa zX8!5xy1^F7(|GPBLcn*Yw>8J0^*A`atptFsf_5P7rgKPpC6o{pHQE4O#w4~B&sAOc z?&$@8#dd}P&gabCM~uK5^@03gHN}bWP9$ojJvk`KU^g}7B75D7j;to2B=DvFb7LY|1j_wpWk{bk{mPWCF{>YBZYz=+;*DB3Xlj0YSc+al zYy?*PSd!widelJio==)!L z!QQ{zco9q$tL{ETp`XL1Uh>1!q6C+${i}BbM8)COH*wVc4s$y(9+5GhUM$t3qgJ0d z9AfcZPgX{9TM2#S;YwL|3~fTO5lUoy6%A>Da@Cn++O8)FC^vdcMn!hfO;czVV{8v+ zKsK8&L~;Fjg!}%_r@tmXlaAr!Wirq1x?mtO^`qq;{JN8cR@mSPRknZE^`$YR?V~Tp zb}w2tMm?NUs`708L&BXY8sgQH=Jdc;hJFd0+Lu|xpiSBrD*(2H48G*an`x#Ap_WEB zI?+&lww!~?ffz$^TXDGB9gcR>RCGreu*?A79w`3jHzj{!GjBKx{(iy)=eiOaDR+PX}NDK1OFWtPwUJtEqpJZe(GKG7w{kH z!E;aXcKA<|MONC^3Ag+z{2}>2f-l0CS7Tr%`Ag?hTUPCGNj6&WK}R|^An@|jWD^gK z+Vyro<3+Cd#V3>Fs_*?A%&?JI$oqEUFqM297}T+&(@+I!eDOj_1VmzDn~4i7+3$DV z`|?v0t7~$(ZBLnj5k<_OD(F1`#F#{`L}G7ViM0=t8pyX|PFvmE=yi*{ND|w~?rU!j zZQ+tV_Gfb>0#IFhMN@88_vcoAGp$(t#6JqN8sZ%gl!Q@#lw=JEoTSdw_3L~5{jP%> zh5yAI_J1mOR8AK+EGFl`=Hld(Q?lYUFqONN6#8NPS*)pb^xi*A*WOirBw!=!5e>uU zN;7G67z<70O-`zars3=h%N6;!?6>fO(v@S7>|Cdv&0A@rUO65&)l+td8TsL2K4#RS(dQB@5_d%voF=;X-i@*}NMykEfZ zwrn09LFWTz7ky4+;?4v_czuB`np28^*h3e-Z1QozmvKNhA8WULkjefb&$#w;$yWuU zl|T;?yz7ZSn4SIw+O!=!d?f>4J(VEow0MOwq=Qf9FTSKJwinouVz;eRHY=i^jt%tH!v=UQciKG!IeZ=I&^W(x zMye-xc~3@r=bMW#9xYgVLTdX$mrYkF;gWF4DRkKE&)@>>(B_h|atydrRW>2WIm+U5 z7t9HIqX37f@R*c%5`!JxN;~}^3j%Nm)pS1}#d9DD_&|ktCC3EnXQc4Uivb*9(FF+Y zZ1j8RTOWEss-h#00VWUP=BHvY05A_^;yv}+QEEC0cw_x@Lfh|wrKQsX;^_Sj4{ z$wym*d!*ZCPA=P*siMVVM}=sx(@I)!-Judg144W2_No$R<@~`eYnWq+Q+d@=0K*zS z^02;Fd&U|W*G`_KcE{?ArtXP9)f(YOvA=l2(_Q6DVwZl3c078{p(6)2vE>azV zT}O+0B15o=drgvUTNJeD8;x3?t-*oh^r_czD`VDNoRCnFV0alhrQ5PqsEj{ouN@=2 z{PeVUa0HLO;{17vga8$x?Q4?CvCs*xk9jP)IIB{Gfa&}e>a3g87r#$B+iQ5RW!{+? z6IC0}V!EIqhLp!esgD*SL(4=-U%McGinvWHb^7%Lz|d2_p{VWuFp@lHi(L`uruFgj8ugTjO}yxqk;%l3_oNy08v#oUfj@r|-m zT(xtLE+d4b?%>7E4H&hWaYwZ-#FaEP7pgdcW9=%?hxjzLr7!Ygs@K^}-R!Mp6mHqr z4I3Q728oNT*>Iu(ML>qSVSogBK-O9YI?x`vm@!WvacteDs@?y{gYSXd(NQfEAJjM+ z#5$tzCRvjhCO6jK`+k@w#=+O=sVW*pb8o?;Wz;ikIJNkbZC)w94j^8&HOh~khtAuy z7^uH}i0WLNLVEqRHa}S37U?#~@cbVAL&zTY%;qbGT^BSMwFvD;PcGSc1vX!i2ew2H z06rVa!j>TdAA;!I?=@U6N1)<6^Olz0H26Y6Xf3bOpm}s@@ zboEHrQp7ekrFe|k>C!{+=79;tgCSZCG~l_^{Pv38k9NNwmS@-Ft(nKQO$1pJsIJ62 zHkw)>tzb`(<~Q1g2j~B!Rxf;S^CGxi~d5t>sD*!uA8|#=cV~=wITW?Sy2CcPh?#?Oi{C-X!DH z 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 diff --git a/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.svg b/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.svg deleted file mode 100644 index 1a50215ca..000000000 --- a/static/images/2025-01-rust-survey-2024/which-features-do-you-want-stabilized.svg +++ /dev/null @@ -1 +0,0 @@ -15.00%11.10%13.09%10.40%7.90%4.35%5.15%5.29%9.21%6.06%15.76%10.85%13.44%8.84%4.54%8.90%9.81%13.16%10.61%31.75%49.26%50.25%43.34%61.28%36.22%35.48%39.14%33.36%40.28%40.56%39.73%36.51%28.25%23.05%47.12%26.75%22.68%29.76%17.94%22.41%23.65%27.66%16.41%42.70%33.94%27.14%18.63%23.15%21.57%23.75%26.89%26.24%28.50%17.98%36.49%46.97%35.66%35.31%17.23%13.01%18.60%14.42%16.73%25.44%28.42%38.80%30.52%22.11%25.67%23.16%36.68%43.92%26.00%26.95%17.20%23.98%0%20%40%60%80%100%Arbitrary self typesVariadic genericsType Alias Impl Trait (TAIT)Allocator trait and better OOMhandlingNever typeTrait aliasesAssociated type defaultsSpecializationPortable SIMDTry blocksStable ABIConst trait methodsEnum variant typesCompile time reflectionAsync generators/coroutinesGeneric const expressionsGenerators/coroutinesIf/while let chainsAsync closuresResponseWould unblock my use-caseWould improve my codeDon't need itDon't know what it isWhich unimplemented (or nightly only) features are you looking for to bestabilized?(total responses = 6792) \ No newline at end of file diff --git a/static/images/2025-01-rust-survey-2024/which-os-do-you-target.png b/static/images/2025-01-rust-survey-2024/which-os-do-you-target.png deleted file mode 100644 index 0b4b801e940fe2195e0de6b5f2e59a07a168f40f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48585 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

    na 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 literal 0 HcmV?d00001 diff --git a/static/images/2025-02-05-crates-io-development-update/publish-notification.png b/static/images/2025-02-05-crates-io-development-update/publish-notification.png new file mode 100644 index 0000000000000000000000000000000000000000..775f731071ba19d36171b28a2d059cfc022490fb GIT binary patch literal 117664 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

    - - - - - - -![Help wanted](https://img.shields.io/badge/Help%20wanted-yellow) this project goal needs a compiler developer to move forward. - - - - +*Help wanted:* this project goal needs a compiler developer to move forward. If you'd like to help, please post in [this goal's dedicated zulip topic](https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Implement.20Open.20API.20Namespace.20Support.20.28goals.23256.29).
    1 detailed update available. @@ -352,18 +341,8 @@ Help wanted: this project goal needs a compiler developer to move forward.
    - - - - - - -![Help wanted](https://img.shields.io/badge/Help%20wanted-yellow) this project goal needs someone to work on the implementation - - - - +*Help wanted:* this project goal needs someone to work on the implementation. If you'd like to help, please post in [this goal's dedicated zulip topic](https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Prototype.20a.20new.20set.20of.20Cargo.20.22plumbing.22.20.28goals.23264.29).
    2 detailed updates availabled. @@ -409,18 +388,8 @@ Hi @epage I am very interested to collaborate in this implementation work. Let's
    - - - - - - -![Help wanted](https://img.shields.io/badge/Help%20wanted-yellow) Looking for people that want to help do a bit of refactoring. Please reach out through the project-stable-mir [zulip channel](https://rust-lang.zulipchat.com/#narrow/channel/320896-project-stable-mir) or [repository](https://github.com/rust-lang/project-stable-mir). - - - - +*Help wanted:* looking for people that want to help do a bit of refactoring. Please reach out through the project-stable-mir [zulip channel](https://rust-lang.zulipchat.com/#narrow/channel/320896-project-stable-mir) or [repository](https://github.com/rust-lang/project-stable-mir).
    1 detailed update available. @@ -453,18 +422,8 @@ No progress yet.
    - - - - - - -![Help wanted](https://img.shields.io/badge/Help%20wanted-yellow) this project goal needs a compiler developer to move forward. - - - - +*Help wanted:* this project goal needs a compiler developer to move forward. If you'd like to help, please post in [this goal's dedicated zulip topic](https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Stabilize.20public.2Fprivate.20dependencies.20.28goals.23272.29).
    1 detailed update available. From 7daa3b397d0f3715cad6d218dddef51437c701a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Fri, 28 Feb 2025 18:16:17 +0000 Subject: [PATCH 0793/1024] fix escaping issues in autogenerated content --- posts/2025-03-03-Project-Goals-Feb-Update.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/posts/2025-03-03-Project-Goals-Feb-Update.md b/posts/2025-03-03-Project-Goals-Feb-Update.md index 769b8bb8f..e0d140bdb 100644 --- a/posts/2025-03-03-Project-Goals-Feb-Update.md +++ b/posts/2025-03-03-Project-Goals-Feb-Update.md @@ -16,19 +16,19 @@ This is the first Project Goals update for the new 2025h1 period. For the first -**Why this goal?** This work continues our drive to improve support for async programming in Rust. In 2024H2 we stabilized async closures; explored the generator design space; and began work on the `dynosaur` crate, an experimental proc-macro to provide dynamic dispatch for async functions in traits. In 2025H1 [our plan](https://rust-lang.github.io/rust-project-goals/2025h1/async.html) is to deliver (1) improved support for async-fn-in-traits, completely subsuming the functionality of the [`async-trait` crate](https://crates.io/crates/async-trait); (2) progress towards sync and async generators, simplifying the creation of iterators and async data streams; (3) and improve the ergonomics of `Pin`, making lower-level async coding more approachable. These items together start to unblock the creation of the next generation of async libraries in the wider ecosystem, as progress there has been blocked on a stable solution for async traits and streams. +**Why this goal?** This work continues our drive to improve support for async programming in Rust. In 2024H2 we stabilized async closures; explored the generator design space; and began work on the `dynosaur` crate, an experimental proc-macro to provide dynamic dispatch for async functions in traits. In 2025H1 [our plan](https://rust-lang.github.io/rust-project-goals/2025h1/async.html) is to deliver (1) improved support for async-fn-in-traits, completely subsuming the functionality of the [`async-trait` crate](https://crates.io/crates/async-trait); (2) progress towards sync and async generators, simplifying the creation of iterators and async data streams; (3) and improve the ergonomics of `Pin`, making lower-level async coding more approachable. These items together start to unblock the creation of the next generation of async libraries in the wider ecosystem, as progress there has been blocked on a stable solution for async traits and streams. **What has happened?** The biggest news is that Rust 1.85 is stable and includes two major features that impact Async Rust. The first is [async closures](https://blog.rust-lang.org/inside-rust/2024/08/09/async-closures-call-for-testing.html), which has been on many people's wish lists for a long time and was expertly moved forward by @compiler-errors over the last year. -The second feature included in 1.85 is the new [lifetime capture rules](https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html) as part of Rust 2024 edition. This should substantially improve the experience of using async Rust anytime a user writes `-> impl Future`, as it removes the need for `+ '_` or similar bounds in most cases. It will also lead to an easier to understand language, since those bounds only worked by exploiting the more subtle rules of `impl Trait` in a way that runs contrary to their actual semantic role in the language. In the 2024 Edition, the subtle rule is gone and we capture all input lifetimes by default, with the ability to use `+ use<>` syntax to opt out. See [this blog post](https://blog.rust-lang.org/2024/09/05/impl-trait-capture-rules.html) for more. +The second feature included in 1.85 is the new [lifetime capture rules](https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html) as part of Rust 2024 edition. This should substantially improve the experience of using async Rust anytime a user writes `-> impl Future`, as it removes the need for `+ '_` or similar bounds in most cases. It will also lead to an easier to understand language, since those bounds only worked by exploiting the more subtle rules of `impl Trait` in a way that runs contrary to their actual semantic role in the language. In the 2024 Edition, the subtle rule is gone and we capture all input lifetimes by default, with the ability to use `+ use<>` syntax to opt out. See [this blog post](https://blog.rust-lang.org/2024/09/05/impl-trait-capture-rules.html) for more. -**Generators.** The lang team also held a design meeting to review the design for generators, with the outcome of the last one being that we will implement a `std::iter::iter!` macro (exact path TBD) in the compiler, as a lang team experiment that allows the use of the `yield` syntax. We decided to go in this direction because we want to reserve `gen` for self-borrowing and perhaps lending generators, and aren't yet decided on which subset of features to expose under that syntax. This decision interacts with ongoing compiler development that isn't ready yet to enable experimentation with lending. +**Generators.** The lang team also held a design meeting to review the design for generators, with the outcome of the last one being that we will implement a `std::iter::iter!` macro (exact path TBD) in the compiler, as a lang team experiment that allows the use of the `yield` syntax. We decided to go in this direction because we want to reserve `gen` for self-borrowing and perhaps lending generators, and aren't yet decided on which subset of features to expose under that syntax. This decision interacts with ongoing compiler development that isn't ready yet to enable experimentation with lending. -Our hope is that in the meantime, by shipping `iter!` we will give people the chance to start using generators in their own code and better understand which limitations people hit in practice. +Our hope is that in the meantime, by shipping `iter!` we will give people the chance to start using generators in their own code and better understand which limitations people hit in practice. As you may have noticed, I'm not talking about async generators here. Those are the ultimate goal for the async initiative, but we felt the first step should be clarifying the state of synchronous generators so we can build on that when talking about async ones. -**Dynosaur.** [dynosaur v0.1.3](https://github.com/spastorino/dynosaur/releases/tag/0.1.3) was released, with another release in the works. We think we are approaching a 1.0 release real soon now (tm). At this point you should be able to try it on your crate to enable dyn dispatch for traits with `async fn` and other `-> impl Trait` methods. If you need to use it together with `#[trait_variant]`, you may need to wait until the next release when [#55](https://github.com/spastorino/dynosaur/issues/55) is fixed. +**Dynosaur.** [dynosaur v0.1.3](https://github.com/spastorino/dynosaur/releases/tag/0.1.3) was released, with another release in the works. We think we are approaching a 1.0 release real soon now (tm). At this point you should be able to try it on your crate to enable dyn dispatch for traits with `async fn` and other `-> impl Trait` methods. If you need to use it together with `#[trait_variant]`, you may need to wait until the next release when [#55](https://github.com/spastorino/dynosaur/issues/55) is fixed. @@ -155,7 +155,7 @@ Next up: -**Why this goal?** This goal continues our work from 2024H2 in supporting the [experimental support for Rust development in the Linux kernel][RFL.com]. Whereas in 2024H2 we were focused on stabilizing required language features, our focus in 2025H1 is stabilizing compiler flags and tooling options. We will (1) implement [RFC #3716] which lays out a design for ABI-modifying flags; (2) take the first step towards stabilizing [`build-std`](https://doc.rust-lang.org/cargo/reference/unstable.html#build-std) by [creating a stable way to rebuild core with specific compiler options](./build-std.md); (3) extending rustdoc, clippy, and the compiler with features that extract metadata for integration into other build systems (in this case, the kernel's build system). +**Why this goal?** This goal continues our work from 2024H2 in supporting the [experimental support for Rust development in the Linux kernel][RFL.com]. Whereas in 2024H2 we were focused on stabilizing required language features, our focus in 2025H1 is stabilizing compiler flags and tooling options. We will (1) implement [RFC #3716] which lays out a design for ABI-modifying flags; (2) take the first step towards stabilizing [`build-std`](https://doc.rust-lang.org/cargo/reference/unstable.html#build-std) by [creating a stable way to rebuild core with specific compiler options](./build-std.md); (3) extending rustdoc, clippy, and the compiler with features that extract metadata for integration into other build systems (in this case, the kernel's build system). [RFC #3716]: https://github.com/rust-lang/rfcs/pull/3716 [RFL.com]: https://rust-for-linux.com/ From ebcae1e4614175f7fc85222640aa55d09ce72533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Fri, 28 Feb 2025 18:34:23 +0000 Subject: [PATCH 0794/1024] michael --- posts/2025-03-03-Project-Goals-Feb-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-03-03-Project-Goals-Feb-Update.md b/posts/2025-03-03-Project-Goals-Feb-Update.md index e0d140bdb..9bd4a7377 100644 --- a/posts/2025-03-03-Project-Goals-Feb-Update.md +++ b/posts/2025-03-03-Project-Goals-Feb-Update.md @@ -18,7 +18,7 @@ This is the first Project Goals update for the new 2025h1 period. For the first **Why this goal?** This work continues our drive to improve support for async programming in Rust. In 2024H2 we stabilized async closures; explored the generator design space; and began work on the `dynosaur` crate, an experimental proc-macro to provide dynamic dispatch for async functions in traits. In 2025H1 [our plan](https://rust-lang.github.io/rust-project-goals/2025h1/async.html) is to deliver (1) improved support for async-fn-in-traits, completely subsuming the functionality of the [`async-trait` crate](https://crates.io/crates/async-trait); (2) progress towards sync and async generators, simplifying the creation of iterators and async data streams; (3) and improve the ergonomics of `Pin`, making lower-level async coding more approachable. These items together start to unblock the creation of the next generation of async libraries in the wider ecosystem, as progress there has been blocked on a stable solution for async traits and streams. -**What has happened?** The biggest news is that Rust 1.85 is stable and includes two major features that impact Async Rust. The first is [async closures](https://blog.rust-lang.org/inside-rust/2024/08/09/async-closures-call-for-testing.html), which has been on many people's wish lists for a long time and was expertly moved forward by @compiler-errors over the last year. +**What has happened?** The biggest news is that Rust 1.85 is stable and includes two major features that impact Async Rust. The first is [async closures](https://blog.rust-lang.org/inside-rust/2024/08/09/async-closures-call-for-testing.html), which has been on many people's wish lists for a long time and was expertly moved forward by [@compiler-errors](https://github.com/compiler-errors) over the last year. The second feature included in 1.85 is the new [lifetime capture rules](https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html) as part of Rust 2024 edition. This should substantially improve the experience of using async Rust anytime a user writes `-> impl Future`, as it removes the need for `+ '_` or similar bounds in most cases. It will also lead to an easier to understand language, since those bounds only worked by exploiting the more subtle rules of `impl Trait` in a way that runs contrary to their actual semantic role in the language. In the 2024 Edition, the subtle rule is gone and we capture all input lifetimes by default, with the ability to use `+ use<>` syntax to opt out. See [this blog post](https://blog.rust-lang.org/2024/09/05/impl-trait-capture-rules.html) for more. From 73f94f64b538b9959660f05ac552f0ff393c333f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Fri, 28 Feb 2025 19:52:23 +0100 Subject: [PATCH 0795/1024] fix cfg in RLF update Co-authored-by: Miguel Ojeda --- posts/2025-03-03-Project-Goals-Feb-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-03-03-Project-Goals-Feb-Update.md b/posts/2025-03-03-Project-Goals-Feb-Update.md index 9bd4a7377..bb55992d6 100644 --- a/posts/2025-03-03-Project-Goals-Feb-Update.md +++ b/posts/2025-03-03-Project-Goals-Feb-Update.md @@ -290,7 +290,7 @@ Regarding arbitary self types and coerce pointee, we are waiting on rust-lang/ru @wesleywiser is preparing a PR to add `-Zdwarf-version` to help advance compiler flags. -There is an annoying issue related to `cfg(no_fp_fmt_parse)`, which is no longer used by RFL but which remains in an older branch of the kernel (6.12, LTS). +There is an annoying issue related to `cfg(no_global_oom_handling)`, which is no longer used by RFL but which remains in an older branch of the kernel (6.12, LTS). As a set of "leaf crates" that evolve together in a mono-repo-like fashion, RFL would like to have a solution for disabling the orphan rule. From 5ef299cd7fb5c5d51c8c65dc55ca136c9e7ddf82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Sat, 1 Mar 2025 13:24:34 +0100 Subject: [PATCH 0796/1024] Add blog post about our participation in GSoC 2025 --- ...25-03-03-Rust-participates-in-GSoC-2025.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 posts/2025-03-03-Rust-participates-in-GSoC-2025.md diff --git a/posts/2025-03-03-Rust-participates-in-GSoC-2025.md b/posts/2025-03-03-Rust-participates-in-GSoC-2025.md new file mode 100644 index 000000000..08ad5ba9f --- /dev/null +++ b/posts/2025-03-03-Rust-participates-in-GSoC-2025.md @@ -0,0 +1,26 @@ +--- +layout: post +title: "Rust participates in Google Summer of Code 2025" +author: Jakub Beránek, Jack Huey and Paul Lenz +--- + +We're writing this blog post to announce that the Rust Project will again be participating in [Google Summer of Code (GSoC) 2025][gsoc]. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful information and links. + +Google Summer of Code (GSoC) is an annual global program organized by Google that aims to bring new contributors to the world of open-source. The program pairs organizations (such as the Rust Project) with contributors (usually students), with the goal of helping the participants make meaningful open-source contributions under the guidance of experienced mentors. + +The organizations that have been accepted into the program have been [announced][gsoc orgs] by Google. The GSoC applicants now have several weeks to discuss project ideas with mentors. Later, they will send project proposals for the projects that they found the most interesting. If their project proposal is accepted, they will embark on a several month journey during which they will try to complete their proposed project under the guidance of an assigned mentor. + +We have prepared a [list of project ideas][gsoc repo] that can serve as inspiration for potential GSoC contributors that would like to send a project proposal to the Rust organization. However, applicants can also come up with their own project ideas. You can discuss project ideas or try to find mentors in the [#gsoc][gsoc stream] Zulip stream. We have also prepared a [proposal guide][proposal guide] that should help you with preparing your project proposals. + +You can start discussing the project ideas with Rust Project mentors and maintainers immediately. The project proposal application period starts on March 24, 2025, and ends on April 8, 2025 at 18:00 UTC. Take note of that deadline, as there will be no extensions! + +If you are interested in contributing to the Rust Project, we encourage you to check out our project idea list and send us a GSoC project proposal! Of course, you are also free to discuss these projects and/or try to move them forward even if you do not intend to (or cannot) participate in GSoC. We welcome all contributors to Rust, as there is always enough work to do. + +Last year we have participated in GSoC for the first time, and it was a [success][gsoc results]! This year we are very excited to participate again. We hope that participants in the program can improve their skills, but also would love for this to bring new contributors to the Project and increase the awareness of Rust in general. We will publish another blog post later this year with more information about our participation in the program. + +[gsoc]: https://summerofcode.withgoogle.com +[gsoc orgs]: https://summerofcode.withgoogle.com/programs/2025/organizations +[gsoc repo]: https://github.com/rust-lang/google-summer-of-code +[gsoc stream]: https://rust-lang.zulipchat.com/#narrow/stream/421156-gsoc +[proposal guide]: https://github.com/rust-lang/google-summer-of-code/blob/main/gsoc/proposal-guide.md +[gsoc results]: https://blog.rust-lang.org/2024/11/07/gsoc-2024-results.html From 91e01165d9e54aac2c9b7a423fcad238f1581504 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Sat, 1 Mar 2025 21:08:48 +0100 Subject: [PATCH 0797/1024] Modify text --- posts/2025-03-03-Rust-participates-in-GSoC-2025.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/posts/2025-03-03-Rust-participates-in-GSoC-2025.md b/posts/2025-03-03-Rust-participates-in-GSoC-2025.md index 08ad5ba9f..515e228fc 100644 --- a/posts/2025-03-03-Rust-participates-in-GSoC-2025.md +++ b/posts/2025-03-03-Rust-participates-in-GSoC-2025.md @@ -4,7 +4,7 @@ title: "Rust participates in Google Summer of Code 2025" author: Jakub Beránek, Jack Huey and Paul Lenz --- -We're writing this blog post to announce that the Rust Project will again be participating in [Google Summer of Code (GSoC) 2025][gsoc]. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful information and links. +We are happy to announce that the Rust Project will again be participating in [Google Summer of Code (GSoC) 2025][gsoc], same as [last year][gsoc announcement 2024]. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful information and links. Google Summer of Code (GSoC) is an annual global program organized by Google that aims to bring new contributors to the world of open-source. The program pairs organizations (such as the Rust Project) with contributors (usually students), with the goal of helping the participants make meaningful open-source contributions under the guidance of experienced mentors. @@ -12,13 +12,16 @@ The organizations that have been accepted into the program have been [announced] We have prepared a [list of project ideas][gsoc repo] that can serve as inspiration for potential GSoC contributors that would like to send a project proposal to the Rust organization. However, applicants can also come up with their own project ideas. You can discuss project ideas or try to find mentors in the [#gsoc][gsoc stream] Zulip stream. We have also prepared a [proposal guide][proposal guide] that should help you with preparing your project proposals. -You can start discussing the project ideas with Rust Project mentors and maintainers immediately. The project proposal application period starts on March 24, 2025, and ends on April 8, 2025 at 18:00 UTC. Take note of that deadline, as there will be no extensions! +You can start discussing the project ideas with Rust Project mentors and maintainers immediately, but you might want to keep the following important dates in mind: +- The project proposal application period starts on March 24, 2025. From that date you can submit project proposals into the GSoC dashboard. +- The project proposal application period ends on **April 8, 2025** at 18:00 UTC. Take note of that deadline, as there will be no extensions! If you are interested in contributing to the Rust Project, we encourage you to check out our project idea list and send us a GSoC project proposal! Of course, you are also free to discuss these projects and/or try to move them forward even if you do not intend to (or cannot) participate in GSoC. We welcome all contributors to Rust, as there is always enough work to do. -Last year we have participated in GSoC for the first time, and it was a [success][gsoc results]! This year we are very excited to participate again. We hope that participants in the program can improve their skills, but also would love for this to bring new contributors to the Project and increase the awareness of Rust in general. We will publish another blog post later this year with more information about our participation in the program. +Last year was our first time participating in GSoC, and it was a [success][gsoc results]! This year we are very excited to participate again. We hope that participants in the program can improve their skills, but also would love for this to bring new contributors to the Project and increase the awareness of Rust in general. Like last year, we expect to publish blog posts in the future with updates about our participation in the program. [gsoc]: https://summerofcode.withgoogle.com +[gsoc announcement 2024]: https://blog.rust-lang.org/2024/02/21/Rust-participates-in-GSoC-2024.html [gsoc orgs]: https://summerofcode.withgoogle.com/programs/2025/organizations [gsoc repo]: https://github.com/rust-lang/google-summer-of-code [gsoc stream]: https://rust-lang.zulipchat.com/#narrow/stream/421156-gsoc From 2d20a97d56882b88e77760b938ffc1659303bfbb Mon Sep 17 00:00:00 2001 From: rami3l Date: Sun, 2 Mar 2025 21:05:13 +0800 Subject: [PATCH 0798/1024] posts: announce rustup 1.28.0 Co-authored-by: Travis Cross --- posts/2025-03-02-Rustup-1.28.0.md | 112 ++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 posts/2025-03-02-Rustup-1.28.0.md diff --git a/posts/2025-03-02-Rustup-1.28.0.md b/posts/2025-03-02-Rustup-1.28.0.md new file mode 100644 index 000000000..b0cbf482f --- /dev/null +++ b/posts/2025-03-02-Rustup-1.28.0.md @@ -0,0 +1,112 @@ +--- +layout: post +title: "Announcing Rustup 1.28.0" +author: The Rustup Team +--- + +The rustup team is happy to announce the release of rustup version 1.28.0. +[Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. + +## What's new in rustup 1.28.0 + +This new release of rustup has been a long time in the making and comes with substantial changes. + +Before digging into the details, it is worth mentioning that [Chris Denton](https://github.com/chrisdenton) has joined the team. +Chris has a lot of experience contributing to Windows-related parts of the Rust Project -- expertise we were previously lacking -- so we're happy to have him on board to help address Windows-specific issues. + +The following improvements might require changes to how you use rustup: + +- rustup will no longer automatically install the active toolchain if it is not installed. + + - To ensure its installation, run `rustup toolchain install` with no arguments. + - The following command installs the active toolchain both before and after this change: + ```sh + rustup show active-toolchain || rustup toolchain install + # Or, on older versions of PowerShell: + rustup show active-toolchain; if ($LASTEXITCODE -ne 0) { rustup toolchain install } + ``` + +- Installing a host-incompatible toolchain via `rustup toolchain install` or `rustup default` will + now be rejected unless you explicitly add the `--force-non-host` flag. + +Rustup now officially supports the following host platforms: + +- `aarch64-pc-windows-msvc` +- `loongarch64-unknown-linux-musl` + +This release also comes with various quality-of-life improvements, to name a few: + +- `rustup show`'s output format has been cleaned up, making it easier to find out about your toolchains' status. +- `rustup doc` now accepts a flag and a topic at the same time, enabling quick navigation to specific parts of more books. +- rustup's `remove` subcommands now support more aliases such as `rm` and `del`. +- Basic support for nushell has been added. + +We have additionally made the following internal changes: + +- The default download backend has been changed from reqwest with native-tls to reqwest with rustls. + - `RUSTUP_USE_CURL` and `RUSTUP_USE_RUSTLS` can still be used to change the download backend + if the new backend causes issues. If issues do happen, please [let us know](https://github.com/rust-lang/rustup/issues/3806). + - The default backend now uses rustls-platform-verifier to verify server certificates, taking + advantage of the platform's certificate store on platforms that support it. +- When creating proxy links, rustup will now try symlinks first and fall back to hardlinks, + as opposed to trying hardlinks first. +- A new `RUSTUP_LOG` environment variable can be used to control tracing-based logging in + rustup binaries. See the [dev guide](https://rust-lang.github.io/rustup/dev-guide/tracing.html) for more details. + +Finally, there are some notable changes to our [official website][install] as well: + +- The overall design of the website has been updated to better align with the Rust Project's branding. +- It is now possible to download the prebuilt `rustup-init.sh` installer for the `aarch64-pc-windows-msvc` host platform via https://win.rustup.rs/aarch64. + +Further details are available in the [changelog]! + +## How to update + +If you have a previous version of rustup installed, getting rustup 1.28.0 is as easy as stopping any programs which may be using Rustup (e.g. closing your IDE) and running: + +```console +$ rustup self update +``` + +Rustup will also automatically update itself at the end of a normal toolchain update: + +```console +$ rustup update +``` + +If you don't have it already, you can [get rustup][install] from the appropriate page on our website. + +Rustup's documentation is also available in [the rustup book][book]. + +## Caveats + +Rustup releases can come with problems not caused by rustup itself but just due to having a new release. +As such, we recommend paying attention to the following potential issues in particular: + +- Anti-malware scanners might be blocking rustup or stopping it from creating or copying files + (especially when installing `rust-docs`, since it contains many small files). + +- In your CI environment, rustup might fail when trying to perform a self-update. + + This is a [known issue](https://github.com/rust-lang/rustup/issues/3709), + and in the case where this issue does occur, we recommend applying the following workaround at the beginning of your workflow: + + ```console + $ rustup set auto-self-update disable + ``` + + Also, starting from 1.28.0, rustup will no longer attempt to self-update in CI environments, + so this workaround should not be necessary in the future. + +These issues should be automatically resolved in a few weeks when the anti-malware scanners are updated to be aware of the new rustup release, +and the hosted version is updated across all CI runners. + +## Thanks + +Thanks again to all the [contributors] who made rustup 1.28.0 possible! + +[book]: https://rust-lang.github.io/rustup/ +[changelog]: https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md +[contributors]: https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md#detailed-changes +[install]: https://rustup.rs +[rust]: https://www.rust-lang.org From 2f9eb1516f56c46d3d8a8d453682ce6acf16e4d2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 10:35:31 +0100 Subject: [PATCH 0799/1024] Lock file maintenance (#1495) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 20426eb9e..c7b35329c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -182,9 +182,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "block-buffer" @@ -274,9 +274,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.15" +version = "1.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c736e259eea577f443d5c86c304f9f4ae0295c43f3ba05c21f1d66b5f06001af" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" dependencies = [ "shlex", ] @@ -318,9 +318,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.30" +version = "4.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b7b18d71fad5313a1e320fa9897994228ce274b60faa4d694fe0ea89cd9e6d" +checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" dependencies = [ "clap_builder", "clap_derive", @@ -328,9 +328,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.30" +version = "4.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35db2071778a7344791a4fb4f95308b5673d219dee3ae348b86642574ecc90c" +checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" dependencies = [ "anstream", "anstyle", @@ -398,7 +398,7 @@ checksum = "5afa2702ef2fecc5bd7ca605f37e875a6be3fc8138c4633e711a945b70351550" dependencies = [ "bon", "caseless", - "clap 4.5.30", + "clap 4.5.31", "entities", "memchr", "shell-words", @@ -464,7 +464,7 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "crossterm_winapi", "parking_lot", "rustix", @@ -680,9 +680,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.35" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c" +checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" dependencies = [ "crc32fast", "miniz_oxide 0.8.5", @@ -1175,9 +1175,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "litemap" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "local_ipaddress" @@ -1648,7 +1648,7 @@ version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", ] [[package]] @@ -1706,7 +1706,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.8.0", + "bitflags 2.9.0", "errno", "libc", "linux-raw-sys", @@ -2798,18 +2798,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", From 420743a39590b8bd866e7948cbab1f2bbdaf74aa Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Mar 2025 18:43:32 +0100 Subject: [PATCH 0800/1024] Update Rust crate serde_json to v1.0.140 (#1496) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c7b35329c..05eb9e9f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1830,9 +1830,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.139" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", "memchr", diff --git a/Cargo.toml b/Cargo.toml index b7f38ab3d..771a215e3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ handlebars = { version = "=6.3.1", features = ["dir_source"] } lazy_static = "=1.5.0" serde = "=1.0.218" serde_derive = "=1.0.218" -serde_json = "=1.0.139" +serde_json = "=1.0.140" serde_yaml = "=0.9.34-deprecated" comrak = { version = "=0.36.0", features = ["bon"] } rayon = "=1.10.0" From d1fc2fe148d53e4bda15e8a267170f17638cd7c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Kj=C3=A4ll?= Date: Mon, 3 Mar 2025 21:34:54 +0100 Subject: [PATCH 0801/1024] fix minor typo (#1498) --- posts/2025-03-03-Project-Goals-Feb-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-03-03-Project-Goals-Feb-Update.md b/posts/2025-03-03-Project-Goals-Feb-Update.md index bb55992d6..79382d19c 100644 --- a/posts/2025-03-03-Project-Goals-Feb-Update.md +++ b/posts/2025-03-03-Project-Goals-Feb-Update.md @@ -161,7 +161,7 @@ Next up: [RFL.com]: https://rust-for-linux.com/ [RFL#2]: https://github.com/Rust-for-Linux/linux/issues/2 -**What has happened?** We established the precise set of 2025H1 deliverables and we have been tracking them and have begun making progress towards them. Rustdoc has been updated to support extracting doc tests so that the Kernel can execute them in a special environment (this was previously done with a big hack) and RFL is in the process of trying to us that new support. The first PR towards the implementation of [RFC #3716](https://github.com/rust-lang/rfcs/pull/3716) has landed and the ARM team has begun reading early drafts of the design doc for `-Zbuild-core` with the cargo team. +**What has happened?** We established the precise set of 2025H1 deliverables and we have been tracking them and have begun making progress towards them. Rustdoc has been updated to support extracting doc tests so that the Kernel can execute them in a special environment (this was previously done with a big hack) and RFL is in the process of trying to use that new support. The first PR towards the implementation of [RFC #3716](https://github.com/rust-lang/rfcs/pull/3716) has landed and the ARM team has begun reading early drafts of the design doc for `-Zbuild-core` with the cargo team. We are also working to finalize the stabilization of the language features that were developed in 2024H2, as two late-breaking complications arose. The first (an interaction between casting of raw pointers and arbitrary self types) is expected to be resolved by limiting the casts of raw pointers, which previously accepted some surprising code. We identified that only a very small set of crates relied on this bug/misfeature; we expect nonetheless to issue a forwards compatibility warning. We are also resolving an issue where `derive(CoercePointee)` was found to reveal the existence of some unstable impls in the stdlib. From 1f499a214fc28db3fda9b02b491ed6688dd747ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Tue, 4 Mar 2025 20:09:16 +0100 Subject: [PATCH 0802/1024] fix incorrect link in RFL update (#1500) --- posts/2025-03-03-Project-Goals-Feb-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2025-03-03-Project-Goals-Feb-Update.md b/posts/2025-03-03-Project-Goals-Feb-Update.md index 79382d19c..35847b926 100644 --- a/posts/2025-03-03-Project-Goals-Feb-Update.md +++ b/posts/2025-03-03-Project-Goals-Feb-Update.md @@ -155,7 +155,7 @@ Next up: -**Why this goal?** This goal continues our work from 2024H2 in supporting the [experimental support for Rust development in the Linux kernel][RFL.com]. Whereas in 2024H2 we were focused on stabilizing required language features, our focus in 2025H1 is stabilizing compiler flags and tooling options. We will (1) implement [RFC #3716] which lays out a design for ABI-modifying flags; (2) take the first step towards stabilizing [`build-std`](https://doc.rust-lang.org/cargo/reference/unstable.html#build-std) by [creating a stable way to rebuild core with specific compiler options](./build-std.md); (3) extending rustdoc, clippy, and the compiler with features that extract metadata for integration into other build systems (in this case, the kernel's build system). +**Why this goal?** This goal continues our work from 2024H2 in supporting the [experimental support for Rust development in the Linux kernel][RFL.com]. Whereas in 2024H2 we were focused on stabilizing required language features, our focus in 2025H1 is stabilizing compiler flags and tooling options. We will (1) implement [RFC #3716] which lays out a design for ABI-modifying flags; (2) take the first step towards stabilizing [`build-std`](https://doc.rust-lang.org/cargo/reference/unstable.html#build-std) by [creating a stable way to rebuild core with specific compiler options](https://rust-lang.github.io/rust-project-goals/2025h1/build-std.html); (3) extending rustdoc, clippy, and the compiler with features that extract metadata for integration into other build systems (in this case, the kernel's build system). [RFC #3716]: https://github.com/rust-lang/rfcs/pull/3716 [RFL.com]: https://rust-for-linux.com/ From cdbfaf5a447fcdf72c3b28837c55972b0682fb83 Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Tue, 4 Mar 2025 21:54:41 +0100 Subject: [PATCH 0803/1024] posts: announce rustup 1.28.1 --- posts/2025-03-04-Rustup-1.28.1.md | 88 +++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 posts/2025-03-04-Rustup-1.28.1.md diff --git a/posts/2025-03-04-Rustup-1.28.1.md b/posts/2025-03-04-Rustup-1.28.1.md new file mode 100644 index 000000000..f484a9785 --- /dev/null +++ b/posts/2025-03-04-Rustup-1.28.1.md @@ -0,0 +1,88 @@ +--- +layout: post +title: "Announcing rustup 1.28.1" +author: The Rustup Team +--- + +The rustup team is happy to announce the release of rustup version 1.28.1. +[Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. + +## Challenges with rustup 1.28.0 + +rustup 1.28.0 was a significant release with many changes, and there was a quick response from many +folks that this release broke their processes. While we considered yanking the release, we worried +that this would cause problems for people who had already updated to adopt some of the changes. +Instead, we are rolling forward with 1.28.1 today and potentially further bugfix releases to +address the feedback that comes in. + +We value all constructive feedback -- please keep it coming in the [issue tracker]. In particular, +the change with regard to implicit toolchain installation is being discussed in [this issue]. + +[this issue]: https://github.com/rust-lang/rustup/issues/4211 +[issue tracker]: https://github.com/rust-lang/rustup/issues/ + +## What's new in rustup 1.28.1 + +This release contains the following fixes: + +- Automatic install is enabled by default but can be opted out by setting `RUSTUP_AUTO_INSTALL` + environment variable to `0`. [pr#4214] +- `rustup show active-toolchain` will only print a single line, as it did in 1.27. [pr#4221] +- Fixed a bug in the reqwest backend that would erroneously timeout downloads after 30s. [pr#4218] + +[1.28.1]: https://github.com/rust-lang/rustup/releases/tag/1.28.1 +[pr#4214]: https://github.com/rust-lang/rustup/pull/4214 +[pr#4221]: https://github.com/rust-lang/rustup/pull/4221 +[pr#4218]: https://github.com/rust-lang/rustup/pull/4218 + +## How to update + +If you have a previous version of rustup installed, getting rustup 1.28.1 is as easy as stopping +any programs which may be using Rustup (e.g. closing your IDE) and running: + +```console +$ rustup self update +``` + +Rustup will also automatically update itself at the end of a normal toolchain update: + +```console +$ rustup update +``` + +If you don't have it already, you can [get rustup][install] from the appropriate page on our website. + +Rustup's documentation is also available in [the rustup book][book]. + +## Caveats + +Rustup releases can come with problems not caused by rustup itself but just due to having a new release. +As such, we recommend paying attention to the following potential issues in particular: + +- Anti-malware scanners might be blocking rustup or stopping it from creating or copying files + (especially when installing `rust-docs`, since it contains many small files). + +- In your CI environment, rustup might fail when trying to perform a self-update. + + This is a [known issue](https://github.com/rust-lang/rustup/issues/3709), + and in the case where this issue does occur, we recommend applying the following workaround at the beginning of your workflow: + + ```console + $ rustup set auto-self-update disable + ``` + + Also, starting from 1.28.0, rustup will no longer attempt to self-update in CI environments, + so this workaround should not be necessary in the future. + +These issues should be automatically resolved in a few weeks when the anti-malware scanners are updated to be aware of the new rustup release, +and the hosted version is updated across all CI runners. + +## Thanks + +Thanks to the rustup and t-release team members who came together to quickly address these issues. + +[book]: https://rust-lang.github.io/rustup/ +[changelog]: https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md +[contributors]: https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md#detailed-changes +[install]: https://rustup.rs +[rust]: https://www.rust-lang.org From 8fe81954baf1d2f0d8414ff788cc5d89c23ba1a4 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Wed, 5 Mar 2025 07:40:58 -0500 Subject: [PATCH 0804/1024] Update posts/2025-03-04-Rustup-1.28.1.md Co-authored-by: Chris Denton --- posts/2025-03-04-Rustup-1.28.1.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/posts/2025-03-04-Rustup-1.28.1.md b/posts/2025-03-04-Rustup-1.28.1.md index f484a9785..cf26e464f 100644 --- a/posts/2025-03-04-Rustup-1.28.1.md +++ b/posts/2025-03-04-Rustup-1.28.1.md @@ -26,14 +26,17 @@ the change with regard to implicit toolchain installation is being discussed in This release contains the following fixes: - Automatic install is enabled by default but can be opted out by setting `RUSTUP_AUTO_INSTALL` - environment variable to `0`. [pr#4214] + environment variable to `0`. [pr#4214] [pr#4227] - `rustup show active-toolchain` will only print a single line, as it did in 1.27. [pr#4221] - Fixed a bug in the reqwest backend that would erroneously timeout downloads after 30s. [pr#4218] +- Use relative symlinks for proxies. [pr#4226] [1.28.1]: https://github.com/rust-lang/rustup/releases/tag/1.28.1 [pr#4214]: https://github.com/rust-lang/rustup/pull/4214 [pr#4221]: https://github.com/rust-lang/rustup/pull/4221 [pr#4218]: https://github.com/rust-lang/rustup/pull/4218 +[pr#4226]: https://github.com/rust-lang/rustup/pull/4226 +[pr#4227]: https://github.com/rust-lang/rustup/pull/4227 ## How to update From fa2adaadaf9e9b83b9da3fb06ac9c10b4f9be537 Mon Sep 17 00:00:00 2001 From: Ronak Buch Date: Wed, 5 Mar 2025 11:39:31 -0500 Subject: [PATCH 0805/1024] Style: Add left margin for columns on all screen sizes (#786) --- src/styles/app.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/styles/app.scss b/src/styles/app.scss index 2d53046af..975483cfe 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -163,6 +163,11 @@ ul.nav, ul.nav li { margin-bottom: 0; } +// TODO: remove when switching to Tachyons -- these are overrides for Skeleton. +.column, .columns { + margin-left: 4%; +} + .nav a { color: var(--gray); color: var(--nav-links-a); From 4a14b7da55f27505b68d3996275676e120245392 Mon Sep 17 00:00:00 2001 From: Boxy Date: Wed, 5 Mar 2025 17:55:38 +0000 Subject: [PATCH 0806/1024] Call for testing: generic_arg_infer --- ...-03-07-inferred-const-generic-arguments.md | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 posts/inside-rust/2025-03-07-inferred-const-generic-arguments.md diff --git a/posts/inside-rust/2025-03-07-inferred-const-generic-arguments.md b/posts/inside-rust/2025-03-07-inferred-const-generic-arguments.md new file mode 100644 index 000000000..bd6bd937e --- /dev/null +++ b/posts/inside-rust/2025-03-07-inferred-const-generic-arguments.md @@ -0,0 +1,62 @@ +--- +layout: post +title: "Inferred const generic arguments: Call for Testing!" +author: BoxyUwU +team: The Const Generics Project Group +--- + +We are excited to announce that `feature(generic_arg_infer)` is nearing the point of stabilization. In this post we'd like to talk a bit about what this feature does, and what comes next for it. + +## What is `feature(generic_arg_infer)` + +When `feature(min_const_generics)` was [stabilized in early 2021](https://github.com/rust-lang/rust/pull/79135) it did not include the ability to use `_` as an explicit const argument: +```rust +fn foo() { + // This errors due to `_` as an array length being unsupported + let a: [u8; _] = [Default::default()]; + // This is legal as `_` is permitted as a type argument + let b: [_; 1] = a; +} +``` + +This is entirely a syntactic limitation; it is possible to entirely elide generic argument listings that may involve const arguments: +```rust +fn foo(_: [u8; N]) {} + +fn bar() { + // This errors due to `_` as a const argument being unsupported + foo::<_>([1]); + // This is legal as even though the const argument is *inferred* + // there is no explicit `_` written. + foo([1]); +} +``` + +The compiler has always been able to infer values for const generic parameters, only the ability to explicitly ask for a const argument to be inferred is unstable. + +It is currently also not possible to the infer the length of a repeat expression. Doing so would require moving the expression into a separate function generic over the array length. + +```rust +fn foo() { + // This errors due to `_` as a repeat count being unsupported + let a: [_; 1] = [String::new(); _]; +} +``` + +With `feature(generic_arg_infer)` all of the previous examples compile. This should hopefully feel like something that should "obviously" be supported by Rust. + +## What comes next + +We have [significantly reworked the implementation](https://github.com/rust-lang/rust/pull/135272) of this recently and it should now be ready for stabilization. We'd love for you to try it out on a recent nightly and report any issues you encounter. + +## Acknowledgements + +My recent push to make this feature ready for testing would not have been possible without the help of many others. + +A big thank you to [@lcnr][lcnr] and [@JulianKnodt][JulianKnodt] for the initial implementation of `generic_arg_infer`, [@camelid][camelid] for refactoring our representation of const generic arguments to be more flexible, [@voidc][voidc] for helping unify the way we operate on array lengths and const generic arguments, [@lcnr][lcnr] for design work on abstracting away differences between inferred type/const/generic arguments, and finally [@compiler-errors][compiler-errors] for reviewing many PRs and implementation decisions made as part of work on this feature. + +[lcnr]: https://github.com/lcnr +[JulianKnodt]: https://github.com/JulianKnodt +[camelid]: https://github.com/camelid +[voidc]: https://github.com/voidc +[compiler-errors]: https://github.com/compiler-errors \ No newline at end of file From 697470dae62d8e52bc3fe4fa738ec9f550c34c6e Mon Sep 17 00:00:00 2001 From: Boxy Date: Wed, 5 Mar 2025 20:19:44 +0000 Subject: [PATCH 0807/1024] Change date --- ...rguments.md => 2025-03-05-inferred-const-generic-arguments.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{2025-03-07-inferred-const-generic-arguments.md => 2025-03-05-inferred-const-generic-arguments.md} (100%) diff --git a/posts/inside-rust/2025-03-07-inferred-const-generic-arguments.md b/posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md similarity index 100% rename from posts/inside-rust/2025-03-07-inferred-const-generic-arguments.md rename to posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md From 4b6dd3bc12f9158e7028700ccaf3ec9b01691a48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 19:45:50 +0100 Subject: [PATCH 0808/1024] Bump ring from 0.17.11 to 0.17.13 (#1503) Bumps [ring](https://github.com/briansmith/ring) from 0.17.11 to 0.17.13. - [Changelog](https://github.com/briansmith/ring/blob/main/RELEASES.md) - [Commits](https://github.com/briansmith/ring/commits) --- updated-dependencies: - dependency-name: ring dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 05eb9e9f8..69a0b2333 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1682,9 +1682,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "ring" -version = "0.17.11" +version = "0.17.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da5349ae27d3887ca812fb375b45a4fbb36d8d12d2df394968cd86e35683fe73" +checksum = "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee" dependencies = [ "cc", "cfg-if", From 6079225b1934fc593f0aa42603211453a893fcc2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 7 Mar 2025 23:13:16 +0100 Subject: [PATCH 0809/1024] Update Rust crate tokio to v1.44.0 (#1504) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- serve/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 69a0b2333..87b2c3d3a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2198,9 +2198,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.43.0" +version = "1.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" +checksum = "9975ea0f48b5aa3972bf2d888c238182458437cc2a19374b81b25cdf1023fb3a" dependencies = [ "backtrace", "bytes", diff --git a/serve/Cargo.toml b/serve/Cargo.toml index f5e55f270..b9fd08bc7 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -8,4 +8,4 @@ edition = "2021" [dependencies] blog = { path = ".." } warpy = "=0.3.68" -tokio = "=1.43.0" +tokio = "=1.44.0" From 2504cb1bb1353fae25de2d5ac8448f9c4ac97b8b Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Tue, 4 Mar 2025 22:35:07 +0100 Subject: [PATCH 0810/1024] replace handlebars with tera --- Cargo.lock | 277 ++++++++++++++++++++++++++++++++++++++++------------- Cargo.toml | 2 +- src/lib.rs | 88 ++++++++++------- 3 files changed, 270 insertions(+), 97 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 87b2c3d3a..ea6a0b3f0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -203,7 +203,6 @@ dependencies = [ "color-eyre", "comrak", "eyre", - "handlebars", "lazy_static", "rayon", "regex", @@ -212,6 +211,7 @@ dependencies = [ "serde_derive", "serde_json", "serde_yaml", + "tera", ] [[package]] @@ -239,6 +239,16 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "bstr" +version = "1.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "build_html" version = "2.6.0" @@ -301,6 +311,28 @@ dependencies = [ "windows-link", ] +[[package]] +name = "chrono-tz" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb" +dependencies = [ + "chrono", + "chrono-tz-build", + "phf", +] + +[[package]] +name = "chrono-tz-build" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1" +dependencies = [ + "parse-zoneinfo", + "phf", + "phf_codegen", +] + [[package]] name = "clap" version = "2.34.0" @@ -540,37 +572,6 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "derive_builder" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.98", -] - -[[package]] -name = "derive_builder_macro" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" -dependencies = [ - "derive_builder_core", - "syn 2.0.98", -] - [[package]] name = "deunicode" version = "1.6.0" @@ -772,6 +773,30 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "globset" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "globwalk" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" +dependencies = [ + "bitflags 2.9.0", + "ignore", + "walkdir", +] + [[package]] name = "h2" version = "0.3.26" @@ -791,23 +816,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "handlebars" -version = "6.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d752747ddabc4c1a70dd28e72f2e3c218a816773e0d7faf67433f1acfa6cba7c" -dependencies = [ - "derive_builder", - "log", - "num-order", - "pest", - "pest_derive", - "serde", - "serde_json", - "thiserror 2.0.11", - "walkdir", -] - [[package]] name = "hashbrown" version = "0.15.2" @@ -913,6 +921,15 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humansize" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" +dependencies = [ + "libm", +] + [[package]] name = "humantime" version = "2.1.0" @@ -1111,6 +1128,22 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "ignore" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata", + "same-file", + "walkdir", + "winapi-util", +] + [[package]] name = "indenter" version = "0.3.3" @@ -1161,6 +1194,12 @@ version = "0.2.170" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + [[package]] name = "linked-hash-map" version = "0.5.6" @@ -1276,21 +1315,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num-modular" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" - -[[package]] -name = "num-order" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" -dependencies = [ - "num-modular", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -1376,6 +1400,15 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "parse-zoneinfo" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" +dependencies = [ + "regex", +] + [[package]] name = "pem" version = "3.0.5" @@ -1437,6 +1470,44 @@ dependencies = [ "sha2", ] +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_codegen" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.9" @@ -1926,6 +1997,12 @@ dependencies = [ "libc", ] +[[package]] +name = "siphasher" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" + [[package]] name = "slab" version = "0.4.9" @@ -2071,6 +2148,28 @@ dependencies = [ "yaml-rust", ] +[[package]] +name = "tera" +version = "1.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee" +dependencies = [ + "chrono", + "chrono-tz", + "globwalk", + "humansize", + "lazy_static", + "percent-encoding", + "pest", + "pest_derive", + "rand", + "regex", + "serde", + "serde_json", + "slug", + "unic-segment", +] + [[package]] name = "terminal_size" version = "0.4.1" @@ -2351,6 +2450,56 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-segment" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23" +dependencies = [ + "unic-ucd-segment", +] + +[[package]] +name = "unic-ucd-segment" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + [[package]] name = "unicase" version = "2.8.1" diff --git a/Cargo.toml b/Cargo.toml index 771a215e3..1b47803c0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,6 @@ edition = "2021" [dependencies] color-eyre = "=0.6.3" eyre = "=0.6.12" -handlebars = { version = "=6.3.1", features = ["dir_source"] } lazy_static = "=1.5.0" serde = "=1.0.218" serde_derive = "=1.0.218" @@ -18,6 +17,7 @@ rayon = "=1.10.0" regex = "=1.11.1" sass-rs = "=0.2.2" chrono = "=0.4.40" +tera = "=1.20.0" [workspace] members = ["serve"] diff --git a/src/lib.rs b/src/lib.rs index 4c110024f..01ceaf8dc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,17 +5,18 @@ use self::blogs::Blog; use self::posts::Post; use chrono::Timelike; use eyre::{eyre, WrapErr}; -use handlebars::{handlebars_helper, DirectorySourceOptions, Handlebars}; use rayon::prelude::*; use sass_rs::{compile_file, Options}; use serde_derive::Serialize; -use serde_json::json; +use serde_json::{json, Value}; +use std::collections::HashMap; use std::fs::{self, File}; use std::io::{self, Write}; use std::path::{Path, PathBuf}; +use tera::Tera; -struct Generator<'a> { - handlebars: Handlebars<'a>, +struct Generator { + tera: Tera, blogs: Vec, out_directory: PathBuf, } @@ -31,34 +32,56 @@ struct ReleasePost { title: String, url: String, } -handlebars_helper!(hb_month_name_helper: |month_num: u64| match month_num { - 1 => "Jan.", - 2 => "Feb.", - 3 => "Mar.", - 4 => "Apr.", - 5 => "May", - 6 => "June", - 7 => "July", - 8 => "Aug.", - 9 => "Sept.", - 10 => "Oct.", - 11 => "Nov.", - 12 => "Dec.", - _ => "Error!", -}); - -impl Generator<'_> { + +fn month_name(month_num: &Value, _args: &HashMap) -> tera::Result { + let month_num = month_num + .as_u64() + .expect("month_num should be an unsigned integer"); + let name = match month_num { + 1 => "Jan.", + 2 => "Feb.", + 3 => "Mar.", + 4 => "Apr.", + 5 => "May", + 6 => "June", + 7 => "July", + 8 => "Aug.", + 9 => "Sept.", + 10 => "Oct.", + 11 => "Nov.", + 12 => "Dec.", + _ => panic!("invalid month! ({month_num})"), + }; + Ok(name.into()) +} + +// Tera and Handlebars escape HTML differently by default. +// Tera: &<>"'/ +// Handlebars: &<>"'`= +// To make the transition testable, this function escapes just like Handlebars. +fn escape_hbs(input: &Value, _args: &HashMap) -> tera::Result { + let input = input.as_str().expect("input should be a string"); + Ok(input + .replace("&", "&") + .replace("<", "<") + .replace(">", ">") + .replace("\"", """) + .replace("'", "'") + .replace("`", "`") + .replace("=", "=") + .into()) +} + +impl Generator { fn new( out_directory: impl AsRef, posts_directory: impl AsRef, ) -> eyre::Result { - let mut handlebars = Handlebars::new(); - handlebars.set_strict_mode(true); - handlebars.register_templates_directory("templates", DirectorySourceOptions::default())?; - handlebars.register_helper("month_name", Box::new(hb_month_name_helper)); - + let mut tera = Tera::new("templates/*")?; + tera.register_filter("month_name", month_name); + tera.register_filter("escape_hbs", escape_hbs); Ok(Generator { - handlebars, + tera, blogs: self::blogs::load(posts_directory.as_ref())?, out_directory: out_directory.as_ref().into(), }) @@ -165,7 +188,7 @@ impl Generator<'_> { "root": blog.path_back_to_root(), }); let path = blog.prefix().join("index.html"); - self.render_template(&path, "index", data)?; + self.render_template(&path, "index.tera", data)?; Ok(path) } @@ -189,7 +212,7 @@ impl Generator<'_> { }); let path = path.join(filename); - self.render_template(&path, &post.layout, data)?; + self.render_template(&path, &format!("{}.tera", post.layout), data)?; Ok(path) } @@ -201,7 +224,7 @@ impl Generator<'_> { "feed_updated": chrono::Utc::now().with_nanosecond(0).unwrap().to_rfc3339(), }); - self.render_template(blog.prefix().join("feed.xml"), "feed", data)?; + self.render_template(blog.prefix().join("feed.xml"), "feed.tera", data)?; Ok(()) } @@ -242,11 +265,12 @@ impl Generator<'_> { &self, name: impl AsRef, template: &str, - data: serde_json::Value, + data: Value, ) -> eyre::Result<()> { let out_file = self.out_directory.join(name.as_ref()); let file = File::create(out_file)?; - self.handlebars.render_to_write(template, &data, file)?; + self.tera + .render_to(template, &tera::Context::from_value(data)?, file)?; Ok(()) } } From bfcf58af688407329e9d0acd30279c0ab1c2bd34 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 5 Mar 2025 01:46:38 +0100 Subject: [PATCH 0811/1024] rename templates from .hbs to .tera --- templates/{feed.hbs => feed.tera} | 0 templates/{footer.hbs => footer.tera} | 0 templates/{headers.hbs => headers.tera} | 0 templates/{index.hbs => index.tera} | 0 templates/{layout.hbs => layout.tera} | 0 templates/{nav.hbs => nav.tera} | 0 templates/{post.hbs => post.tera} | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename templates/{feed.hbs => feed.tera} (100%) rename templates/{footer.hbs => footer.tera} (100%) rename templates/{headers.hbs => headers.tera} (100%) rename templates/{index.hbs => index.tera} (100%) rename templates/{layout.hbs => layout.tera} (100%) rename templates/{nav.hbs => nav.tera} (100%) rename templates/{post.hbs => post.tera} (100%) diff --git a/templates/feed.hbs b/templates/feed.tera similarity index 100% rename from templates/feed.hbs rename to templates/feed.tera diff --git a/templates/footer.hbs b/templates/footer.tera similarity index 100% rename from templates/footer.hbs rename to templates/footer.tera diff --git a/templates/headers.hbs b/templates/headers.tera similarity index 100% rename from templates/headers.hbs rename to templates/headers.tera diff --git a/templates/index.hbs b/templates/index.tera similarity index 100% rename from templates/index.hbs rename to templates/index.tera diff --git a/templates/layout.hbs b/templates/layout.tera similarity index 100% rename from templates/layout.hbs rename to templates/layout.tera diff --git a/templates/nav.hbs b/templates/nav.tera similarity index 100% rename from templates/nav.hbs rename to templates/nav.tera diff --git a/templates/post.hbs b/templates/post.tera similarity index 100% rename from templates/post.hbs rename to templates/post.tera From 289218f668bcd1006ee2cea9281ef563ba9019dd Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 01:28:35 +0100 Subject: [PATCH 0812/1024] translate templates from handlebars to tera --- templates/feed.tera | 18 +++++++++--------- templates/footer.tera | 2 ++ templates/headers.tera | 6 ++++-- templates/index.tera | 28 ++++++++++++++-------------- templates/layout.tera | 13 ++++++++----- templates/nav.tera | 2 ++ templates/post.tera | 16 ++++++++-------- 7 files changed, 47 insertions(+), 38 deletions(-) diff --git a/templates/feed.tera b/templates/feed.tera index 2511a8d0d..235361025 100644 --- a/templates/feed.tera +++ b/templates/feed.tera @@ -12,18 +12,18 @@ {{feed_updated}} - {{#each posts}} + {% for post in posts %} - {{title}} - - {{published}} - {{updated}} - https://blog.rust-lang.org/{{../blog.prefix}}{{url}} - {{contents}} + {{post.title}} + + {{post.published}} + {{post.updated}} + https://blog.rust-lang.org/{{blog.prefix}}{{post.url}} + {{post.contents}} - {{author}} + {{post.author}} - {{/each}} + {% endfor %} diff --git a/templates/footer.tera b/templates/footer.tera index 30899b465..e5bd89fdc 100644 --- a/templates/footer.tera +++ b/templates/footer.tera @@ -1,3 +1,4 @@ +{% macro footer(root) -%}
    @@ -44,3 +45,4 @@ +{% endmacro %} diff --git a/templates/headers.tera b/templates/headers.tera index 11ce5c927..1edacedb0 100644 --- a/templates/headers.tera +++ b/templates/headers.tera @@ -1,13 +1,14 @@ +{% macro headers(root, title, blog) -%} - + - + @@ -39,3 +40,4 @@ +{% endmacro %} diff --git a/templates/index.tera b/templates/index.tera index 5dfb09b0b..442157c15 100644 --- a/templates/index.tera +++ b/templates/index.tera @@ -1,17 +1,18 @@ -{{#*inline "page"}} +{% extends "layout.tera" %} +{% block page %}
    -

    {{{blog.index_html}}}

    +

    {{blog.index_html}}

    See also: - {{#each other_blogs}} - {{link_text}} - {{/each}} + {%- for other in other_blogs %} + {{other.link_text | escape_hbs}} + {%- endfor %}

    @@ -21,19 +22,18 @@
    - {{#each blog.posts}} - {{#if show_year}} + {%- for post in blog.posts %} + {% if post.show_year %} - - {{/if}} + + {% endif %} - - + + - {{/each}} + {%- endfor %}

    Posts in {{year}}

    Posts in {{post.year}}

    {{month_name month}} {{day}}{{title}}{{post.month | month_name}} {{post.day}}{{post.title | escape_hbs}}
    -{{/inline}} -{{~> layout~}} +{%- endblock page %} diff --git a/templates/layout.tera b/templates/layout.tera index 7a79cfbeb..48fe41342 100644 --- a/templates/layout.tera +++ b/templates/layout.tera @@ -1,15 +1,18 @@ +{% import "headers.tera" as headers %} +{% import "nav.tera" as nav %} +{% import "footer.tera" as footer %} - {{ title }} + {{ title | escape_hbs }} - {{> headers }} + {{ headers::headers(root=root, title=title, blog=blog) | indent(prefix=" ", blank=true) }} - {{> nav }} - {{~> page}} - {{> footer }} + {{ nav::nav(root=root, blog=blog) | indent(prefix=" ", blank=true) }} + {%- block page %}{% endblock page %} + {{ footer::footer(root=root) | indent(prefix=" ", blank=true) }} diff --git a/templates/nav.tera b/templates/nav.tera index 317c1fa41..843c29d1c 100644 --- a/templates/nav.tera +++ b/templates/nav.tera @@ -1,3 +1,4 @@ +{% macro nav(root, blog) -%} +{% endmacro %} diff --git a/templates/post.tera b/templates/post.tera index f7b00f24f..abba02bd8 100644 --- a/templates/post.tera +++ b/templates/post.tera @@ -1,19 +1,19 @@ -{{#*inline "page"}} -
    +{% extends "layout.tera" %} +{% block page %} +
    -

    {{ post.title }}

    +

    {{ post.title | escape_hbs }}

    -
    {{month_name post.month}} {{post.day}}, {{post.year}} · {{post.author}} - {{#if post.has_team}} on behalf of {{post.team}} {{/if}} +
    {{post.month | month_name}} {{post.day}}, {{post.year}} · {{post.author | escape_hbs}} + {% if post.has_team %} on behalf of {{post.team}} {% endif %}
    - {{{ post.contents }}} + {{ post.contents }}
    -{{/inline}} -{{~> layout~}} +{%- endblock page %} From 0e7a5f40800d7a1d5a72d7c32cdb827c85d533fe Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 07:56:45 +0100 Subject: [PATCH 0813/1024] Fix RSS feed This was broken in the transition from Hanlebars to Tera. It was excluded from the snapshot tests, because it contains a non-deterministic timestamp. --- templates/feed.tera | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/templates/feed.tera b/templates/feed.tera index 235361025..7adb07787 100644 --- a/templates/feed.tera +++ b/templates/feed.tera @@ -14,16 +14,16 @@ {% for post in posts %} - {{post.title}} - - {{post.published}} - {{post.updated}} - https://blog.rust-lang.org/{{blog.prefix}}{{post.url}} - {{post.contents}} + {{post.title | escape_hbs}} + + {{post.published | escape_hbs}} + {{post.updated | escape_hbs}} + https://blog.rust-lang.org/{{blog.prefix}}{{post.url | escape_hbs}} + {{post.contents | escape_hbs}} - {{post.author}} + {{post.author | escape_hbs}} - {% endfor %} + {%- endfor %} From edd2d2be2125855d17219a629450ac7960ea091c Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 11:00:18 +0100 Subject: [PATCH 0814/1024] Add snapshot testing setup (#1506) --- .gitignore | 1 + Cargo.lock | 41 +++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 3 +++ README.md | 25 +++++++++++++++++++++++++ src/lib.rs | 37 +++++++++++++++++++++++++++++++++++++ 5 files changed, 107 insertions(+) diff --git a/.gitignore b/.gitignore index c12003316..054d96f75 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ static/styles/vendor.css static/styles/app.css static/styles/fonts.css static/styles/noscript.css +src/snapshots diff --git a/Cargo.lock b/Cargo.lock index ea6a0b3f0..220c38a64 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -203,6 +203,7 @@ dependencies = [ "color-eyre", "comrak", "eyre", + "insta", "lazy_static", "rayon", "regex", @@ -441,6 +442,18 @@ dependencies = [ "xdg", ] +[[package]] +name = "console" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "windows-sys 0.59.0", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -605,6 +618,12 @@ version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + [[package]] name = "encoding_rs" version = "0.8.35" @@ -1160,6 +1179,22 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "insta" +version = "1.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50259abbaa67d11d2bcafc7ba1d094ed7a0c70e3ce893f0d0997f73558cb3084" +dependencies = [ + "console", + "globset", + "linked-hash-map", + "once_cell", + "pin-project", + "regex", + "similar", + "walkdir", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1997,6 +2032,12 @@ dependencies = [ "libc", ] +[[package]] +name = "similar" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" + [[package]] name = "siphasher" version = "1.0.1" diff --git a/Cargo.toml b/Cargo.toml index 1b47803c0..c7467bfe9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,3 +21,6 @@ tera = "=1.20.0" [workspace] members = ["serve"] + +[dev-dependencies] +insta = { version = "1.42.0", features = ["filters", "glob"] } diff --git a/README.md b/README.md index e3c493b88..79032d87f 100644 --- a/README.md +++ b/README.md @@ -54,3 +54,28 @@ author: Blog post author (or on behalf of which team) release: true (to be only used for official posts about Rust releases announcements) --- ``` + +### Snapshot testing + +If you're making changes to how the site is generated, you may want to check the impact your changes have on the output. +For this purpose, there is a setup to do snapshot testing over the entire output directory. +It's not run in CI, because the number of snapshots is too large. +But you can run these tests locally as needed. + +- Make sure you have [cargo-insta](https://insta.rs/docs/quickstart/) installed. + +- Generate the good snapshots to compare against, usually based off the master branch: + ```sh + cargo insta test --accept --include-ignored + ``` + Consider making a commit with these snapshots, so you can always check the diff of your changes with git: + ```sh + git add --force src/snapshots # snapshots are ignored by default + git commit --message "WIP add good snapshots" + ``` + Since we can't merge the snapshots to main, don't forget to drop this commit when opening a pull request. + +- Compare the output of the branch you're working on with the good snapshots: + ```sh + cargo insta test --review --include-ignored + ``` diff --git a/src/lib.rs b/src/lib.rs index 01ceaf8dc..cc360dd2c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -302,3 +302,40 @@ pub fn main() -> eyre::Result<()> { Ok(()) } + +#[test] +fn snapshot() { + main().unwrap(); + let timestamped_files = ["releases.json", "feed.xml"]; + let inexplicably_non_deterministic_files = ["images/2023-08-rust-survey-2022/experiences.png"]; + insta::glob!("..", "site/**/*", |path| { + if path.is_dir() { + return; + } + let path = path.display().to_string(); + if timestamped_files + .into_iter() + .chain(inexplicably_non_deterministic_files) + .any(|f| path.ends_with(f)) + { + // Skip troublesome files, e.g. they might contain timestamps. + // If possible, they are tested separately below. + return; + } + let content = fs::read(path).unwrap(); + // insta can't deal with non-utf8 strings? + let content = String::from_utf8_lossy(&content).into_owned(); + insta::assert_snapshot!(content); + }); + + // test files with timestamps filtered + insta::with_settings!({filters => vec![ + (r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}", "(filtered timestamp)"), + ]}, { + for file in timestamped_files { + let content = fs::read(format!("site/{file}")).unwrap(); + let content = String::from_utf8_lossy(&content).into_owned(); + insta::assert_snapshot!(content); + } + }); +} From 650e08fc3e2536a944615711288b84dbac224095 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 8 Mar 2025 11:05:22 +0100 Subject: [PATCH 0815/1024] Pin Rust crate insta to v1.42.2 (#1507) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index c7467bfe9..d1c9e2ff7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,4 +23,4 @@ tera = "=1.20.0" members = ["serve"] [dev-dependencies] -insta = { version = "1.42.0", features = ["filters", "glob"] } +insta = { version = "=1.42.2", features = ["filters", "glob"] } From 02f5187c493519cdce8eb479ebbdb41886339972 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 01:52:01 +0100 Subject: [PATCH 0816/1024] Replace windows with unix line endings --- ...23-08-30-electing-new-project-directors.md | 168 +++++++++--------- ...nouncing-the-new-rust-project-directors.md | 84 ++++----- .../2023-09-22-project-director-nominees.md | 88 ++++----- 3 files changed, 170 insertions(+), 170 deletions(-) diff --git a/posts/2023-08-30-electing-new-project-directors.md b/posts/2023-08-30-electing-new-project-directors.md index bd32a80f0..cfb653e9e 100644 --- a/posts/2023-08-30-electing-new-project-directors.md +++ b/posts/2023-08-30-electing-new-project-directors.md @@ -1,84 +1,84 @@ ---- -layout: post -title: "Electing New Project Directors" -author: Leadership Council -team: Leadership Council ---- - -Today we are launching the process to elect new Project Directors to the Rust Foundation Board of Directors. -As we begin the process, we wanted to spend some time explaining the goals and procedures we will follow. -We will summarize everything here, but if you would like to you can read the [official process documentation][pde-process]. - -We ask all project members to begin working with their Leadership Council representative to nominate potential Project Directors. See the [Candidate Gathering](#candidate-gathering) section for more details. Nominations are due by September 15, 2023. - -[pde-process]: https://github.com/rust-lang/leadership-council/blob/main/policies/project-director-election-process.md - -## What are Project Directors? - -The Rust Foundation Board of Directors has five seats reserved for Project Directors. -These Project Directors serve as representatives of the Rust project itself on the Board. -Like all Directors, the Project Directors are elected by the entity they represent, which in the case of the Rust Project means they are elected by the Rust Leadership Council. -Project Directors serve for a term of two years and will have staggered terms. -This year we will appoint two new directors and next year we will appoint three new directors. - -The current project directors are Jane Losare-Lusby, Josh Stone, Mark Rousskov, Ryan Levick and Tyler Mandry. -This year, Jane Losare-Lusby and Josh Stone will be rotating out of their roles as Project Directors, so the current elections are to fill their seats. -We are grateful for the work the Jane and Josh have put in during their terms as Project Directors! - -We want to make sure the Project Directors can effectively represent the project as a whole, so we are soliciting input from the whole project. -The elections process will go through two phases: Candidate Gathering and Election. -Read on for more detail about how these work. - -## Candidate Gathering - -The first phase is beginning right now. -In this phase, we are inviting the members of all of the top level Rust teams and their subteams to nominate people who will make good project directors. -The goal is to bubble these up to the Council through each of the top-level teams. -You should be hearing from your Council Representative soon with more details, but if not, feel free to reach out to them directly. - -Each team is encouraged to suggest candidates. -Since we are electing two new directors, it would be ideal for teams to nominate at least two candidates. -Nominees can be anyone in the project and do not have to be a member of the team who nominates them. - -The candidate gathering process will be open until September 15, at which point each team's Council Representative will share their team's nominations and reasoning with the whole Leadership Council. -At this point, the Council will confirm with each of the nominees that they are willing to accept the nomination and fill the role of Project Director. -Then the Council will publish the set of candidates. - -This then starts a ten day period where members of the Rust Project are invited to share feedback on the nominees with the Council. -This feedback can include reasons why a nominee would make a good project director, or concerns the Council should be aware of. - -The Council will announce the set of nominees by September 19 and the ten day feedback period will last until September 29. -Once this time has passed, we will move on to the election phase. - -## Election - -The Council will meet during the week of October 1 to complete the election process. -In this meeting we will discuss each candidate and once we have done this the facilitator will propose a set of two of them to be the new Project Directors. -The facilitator puts this to a vote, and if the Council unanimously agrees with the proposed pair of candidates then the process is completed. -Otherwise, we will give another opportunity for council members to express their objections and we will continue with another proposal. -This process repeats until we find two nominees who the Council can unanimously consent to. -The Council will then confirm these nominees through an official vote. - -Once this is done, we will announce the new Project Directors. -In addition, we will contact each of the nominees, including those who were not elected, to tell them a little bit more about what we saw as their strengths and opportunities for growth to help them serve better in similar roles in the future. - -## Timeline - -This process will continue through all of September and into October. -Below are the key dates: - -* Candidate nominations due: September 15 -* Candidates published: ~~September 19~~ September 22 -* Feedback period: ~~September 19 - 29~~ September 22 - October 2 -* Election meeting: Week of October 1 - -After the election meeting happens, the Rust Leadership Council will announce the results and the new Project Directors will assume their responsibilities. - -*Edit: we have adjusted the candidate publication date due to delays in getting all the nominees ready.* - -## Acknowledgements - -A number of people have been involved in designing and launching this election process and we wish to extend a heartfelt thanks to all of them! -We'd especially like to thank the members of the Project Director Election Proposal Committee: Jane Losare-Lusby, Eric Holk, and Ryan Levick. -Additionally, many members of the Rust Community have provided feedback and thoughtful discussions that led to significant improvements to the process. -We are grateful for all of your contributions. +--- +layout: post +title: "Electing New Project Directors" +author: Leadership Council +team: Leadership Council +--- + +Today we are launching the process to elect new Project Directors to the Rust Foundation Board of Directors. +As we begin the process, we wanted to spend some time explaining the goals and procedures we will follow. +We will summarize everything here, but if you would like to you can read the [official process documentation][pde-process]. + +We ask all project members to begin working with their Leadership Council representative to nominate potential Project Directors. See the [Candidate Gathering](#candidate-gathering) section for more details. Nominations are due by September 15, 2023. + +[pde-process]: https://github.com/rust-lang/leadership-council/blob/main/policies/project-director-election-process.md + +## What are Project Directors? + +The Rust Foundation Board of Directors has five seats reserved for Project Directors. +These Project Directors serve as representatives of the Rust project itself on the Board. +Like all Directors, the Project Directors are elected by the entity they represent, which in the case of the Rust Project means they are elected by the Rust Leadership Council. +Project Directors serve for a term of two years and will have staggered terms. +This year we will appoint two new directors and next year we will appoint three new directors. + +The current project directors are Jane Losare-Lusby, Josh Stone, Mark Rousskov, Ryan Levick and Tyler Mandry. +This year, Jane Losare-Lusby and Josh Stone will be rotating out of their roles as Project Directors, so the current elections are to fill their seats. +We are grateful for the work the Jane and Josh have put in during their terms as Project Directors! + +We want to make sure the Project Directors can effectively represent the project as a whole, so we are soliciting input from the whole project. +The elections process will go through two phases: Candidate Gathering and Election. +Read on for more detail about how these work. + +## Candidate Gathering + +The first phase is beginning right now. +In this phase, we are inviting the members of all of the top level Rust teams and their subteams to nominate people who will make good project directors. +The goal is to bubble these up to the Council through each of the top-level teams. +You should be hearing from your Council Representative soon with more details, but if not, feel free to reach out to them directly. + +Each team is encouraged to suggest candidates. +Since we are electing two new directors, it would be ideal for teams to nominate at least two candidates. +Nominees can be anyone in the project and do not have to be a member of the team who nominates them. + +The candidate gathering process will be open until September 15, at which point each team's Council Representative will share their team's nominations and reasoning with the whole Leadership Council. +At this point, the Council will confirm with each of the nominees that they are willing to accept the nomination and fill the role of Project Director. +Then the Council will publish the set of candidates. + +This then starts a ten day period where members of the Rust Project are invited to share feedback on the nominees with the Council. +This feedback can include reasons why a nominee would make a good project director, or concerns the Council should be aware of. + +The Council will announce the set of nominees by September 19 and the ten day feedback period will last until September 29. +Once this time has passed, we will move on to the election phase. + +## Election + +The Council will meet during the week of October 1 to complete the election process. +In this meeting we will discuss each candidate and once we have done this the facilitator will propose a set of two of them to be the new Project Directors. +The facilitator puts this to a vote, and if the Council unanimously agrees with the proposed pair of candidates then the process is completed. +Otherwise, we will give another opportunity for council members to express their objections and we will continue with another proposal. +This process repeats until we find two nominees who the Council can unanimously consent to. +The Council will then confirm these nominees through an official vote. + +Once this is done, we will announce the new Project Directors. +In addition, we will contact each of the nominees, including those who were not elected, to tell them a little bit more about what we saw as their strengths and opportunities for growth to help them serve better in similar roles in the future. + +## Timeline + +This process will continue through all of September and into October. +Below are the key dates: + +* Candidate nominations due: September 15 +* Candidates published: ~~September 19~~ September 22 +* Feedback period: ~~September 19 - 29~~ September 22 - October 2 +* Election meeting: Week of October 1 + +After the election meeting happens, the Rust Leadership Council will announce the results and the new Project Directors will assume their responsibilities. + +*Edit: we have adjusted the candidate publication date due to delays in getting all the nominees ready.* + +## Acknowledgements + +A number of people have been involved in designing and launching this election process and we wish to extend a heartfelt thanks to all of them! +We'd especially like to thank the members of the Project Director Election Proposal Committee: Jane Losare-Lusby, Eric Holk, and Ryan Levick. +Additionally, many members of the Rust Community have provided feedback and thoughtful discussions that led to significant improvements to the process. +We are grateful for all of your contributions. diff --git a/posts/2023-10-19-announcing-the-new-rust-project-directors.md b/posts/2023-10-19-announcing-the-new-rust-project-directors.md index e085a861d..97358232f 100644 --- a/posts/2023-10-19-announcing-the-new-rust-project-directors.md +++ b/posts/2023-10-19-announcing-the-new-rust-project-directors.md @@ -1,42 +1,42 @@ ---- -layout: post -title: "Announcing the New Rust Project Directors" -author: Leadership Council -team: Leadership Council ---- - -We are happy to announce that we have completed the process to elect new Project Directors. - -The new Project Directors are: - -* [Scott McMurray](https://github.com/scottmcm) -* [Jakob Degen](https://github.com/JakobDegen) -* [Santiago Pastorino](https://github.com/spastorino) - -They will join [Ryan Levick] and [Mark Rousskov] to make up the five members of the Rust Foundation Board of Directors who represent the Rust Project. - -The board is made up of Project Directors, who come from and represent the Rust Project, and Member Directors, who represent the corporate members of the Rust Foundation. - -Both of these director groups have equal voting power. - -[Ryan Levick]: https://github.com/rylev -[Mark Rousskov]: https://github.com/mark-simulacrum - -We look forward to working with and being represented by this new group of project directors. - -We were fortunate to have a number of excellent candidates and this was a difficult decision. -We wish to express our gratitude to all of the candidates who were considered for this role! -We also extend our thanks to the project as a whole who participated by nominating candidates and providing additional feedback once the nominees were published. -Finally, we want to share our appreciation for the [Project Director Elections Subcommittee][pde-subcommittee] for working to design and facilitate running this election process. - -[pde-subcommittee]: https://github.com/rust-lang/leadership-council/blob/main/committees/project-director-election-process.md - -This was a challenging decision for a number of reasons. - -This was also our first time doing this process and we learned a lot to use to improve it going forward. -The [Project Director Elections Subcommittee][pde-subcommittee] will be following up with a retrospective outlining how well we achieved our goals with this process and making suggestions for future elections. -We are expecting another election next year to start a rotating cadence of 2-year terms. -Project governance is about iterating and refining over time. - -Once again, we thank all who were involved in this process and we are excited to welcome our new Project Directors. - +--- +layout: post +title: "Announcing the New Rust Project Directors" +author: Leadership Council +team: Leadership Council +--- + +We are happy to announce that we have completed the process to elect new Project Directors. + +The new Project Directors are: + +* [Scott McMurray](https://github.com/scottmcm) +* [Jakob Degen](https://github.com/JakobDegen) +* [Santiago Pastorino](https://github.com/spastorino) + +They will join [Ryan Levick] and [Mark Rousskov] to make up the five members of the Rust Foundation Board of Directors who represent the Rust Project. + +The board is made up of Project Directors, who come from and represent the Rust Project, and Member Directors, who represent the corporate members of the Rust Foundation. + +Both of these director groups have equal voting power. + +[Ryan Levick]: https://github.com/rylev +[Mark Rousskov]: https://github.com/mark-simulacrum + +We look forward to working with and being represented by this new group of project directors. + +We were fortunate to have a number of excellent candidates and this was a difficult decision. +We wish to express our gratitude to all of the candidates who were considered for this role! +We also extend our thanks to the project as a whole who participated by nominating candidates and providing additional feedback once the nominees were published. +Finally, we want to share our appreciation for the [Project Director Elections Subcommittee][pde-subcommittee] for working to design and facilitate running this election process. + +[pde-subcommittee]: https://github.com/rust-lang/leadership-council/blob/main/committees/project-director-election-process.md + +This was a challenging decision for a number of reasons. + +This was also our first time doing this process and we learned a lot to use to improve it going forward. +The [Project Director Elections Subcommittee][pde-subcommittee] will be following up with a retrospective outlining how well we achieved our goals with this process and making suggestions for future elections. +We are expecting another election next year to start a rotating cadence of 2-year terms. +Project governance is about iterating and refining over time. + +Once again, we thank all who were involved in this process and we are excited to welcome our new Project Directors. + diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index 1acfa6343..73340eb52 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -1,44 +1,44 @@ ---- -layout: post -title: "Announcing the Project Director Nominees" -author: Leadership Council -team: Leadership Council ---- - -# Announcing the Project Director Nominees - -Over the past couple weeks, the Rust Leadership Council has been soliciting nominees from the whole Rust project for the role of Project Director. -Now that the nomination period is closed, we are happy to announce the list of nominees. -As described in our [last post], we will elect from these people three new Project Directors. - -The nominees are: - -- [Jakob Degen](https://github.com/JakobDegen) -- [Amanieu d'Antras](https://github.com/Amanieu) -- [Felix Klock](https://github.com/pnkfelix) -- [lcnr](https://github.com/lcnr) -- [scottmcm](https://github.com/scottmcm) -- [Michael Goulet](https://github.com/compiler-errors) -- [Santiago Pastorino](https://github.com/spastorino) -- [Jubilee](https://github.com/workingjubilee) -- [Mara Bos](https://github.com/m-ou-se) - -These were all spoken of highly by their nominating teams. -While several other candidates were suggested, not everyone who was nominated felt like they were in a place where they were able or wanted to accept the role if they were elected. - -Now we'd again like to ask the members of the Rust Project for their feedback. -Please contact the Council in general or your representative(s) to tell us what we should consider going into the election process. -We hope that most of the feedback will be reasons we may not have considered yet for why they will be successful in the role, but if there are areas of necessary growth or other concerns that mean one or more of these nominees may not be a good fit for the role at this time, we want to know this as well! - -You may reach out to us either on the public [#council] channel on Zulip or by emailing the Leadership Council at . - -We would also like to acknowledge the conflict of interest with Mara Bos since she is both a nominee and a member of the Leadership Council. -In keeping with the Leadership Council's [Conflict of Interest policy], Mara will recuse herself from the election process and instead the Libraries team will send an [alternate representative] to participate in the Project Director election. - -We will be open for feedback through October 2, and elections will take place soon afterwards. -We will announce the new Project Directors once the election is complete. - -[last post]: https://blog.rust-lang.org/2023/08/30/electing-new-project-directors.html -[#council]: https://rust-lang.zulipchat.com/#narrow/stream/392734-council -[Conflict of Interest policy]: https://rust-lang.github.io/rfcs/3392-leadership-council.html#conflicts-of-interest -[alternate representative]: https://rust-lang.github.io/rfcs/3392-leadership-council.html#alternates-and-forgoing-representation +--- +layout: post +title: "Announcing the Project Director Nominees" +author: Leadership Council +team: Leadership Council +--- + +# Announcing the Project Director Nominees + +Over the past couple weeks, the Rust Leadership Council has been soliciting nominees from the whole Rust project for the role of Project Director. +Now that the nomination period is closed, we are happy to announce the list of nominees. +As described in our [last post], we will elect from these people three new Project Directors. + +The nominees are: + +- [Jakob Degen](https://github.com/JakobDegen) +- [Amanieu d'Antras](https://github.com/Amanieu) +- [Felix Klock](https://github.com/pnkfelix) +- [lcnr](https://github.com/lcnr) +- [scottmcm](https://github.com/scottmcm) +- [Michael Goulet](https://github.com/compiler-errors) +- [Santiago Pastorino](https://github.com/spastorino) +- [Jubilee](https://github.com/workingjubilee) +- [Mara Bos](https://github.com/m-ou-se) + +These were all spoken of highly by their nominating teams. +While several other candidates were suggested, not everyone who was nominated felt like they were in a place where they were able or wanted to accept the role if they were elected. + +Now we'd again like to ask the members of the Rust Project for their feedback. +Please contact the Council in general or your representative(s) to tell us what we should consider going into the election process. +We hope that most of the feedback will be reasons we may not have considered yet for why they will be successful in the role, but if there are areas of necessary growth or other concerns that mean one or more of these nominees may not be a good fit for the role at this time, we want to know this as well! + +You may reach out to us either on the public [#council] channel on Zulip or by emailing the Leadership Council at . + +We would also like to acknowledge the conflict of interest with Mara Bos since she is both a nominee and a member of the Leadership Council. +In keeping with the Leadership Council's [Conflict of Interest policy], Mara will recuse herself from the election process and instead the Libraries team will send an [alternate representative] to participate in the Project Director election. + +We will be open for feedback through October 2, and elections will take place soon afterwards. +We will announce the new Project Directors once the election is complete. + +[last post]: https://blog.rust-lang.org/2023/08/30/electing-new-project-directors.html +[#council]: https://rust-lang.zulipchat.com/#narrow/stream/392734-council +[Conflict of Interest policy]: https://rust-lang.github.io/rfcs/3392-leadership-council.html#conflicts-of-interest +[alternate representative]: https://rust-lang.github.io/rfcs/3392-leadership-council.html#alternates-and-forgoing-representation From e7553579dac698393451cf63908a0839ca4506a4 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 11:22:51 +0100 Subject: [PATCH 0817/1024] Fix quirky yaml headers --- posts/2023-09-25-Increasing-Apple-Version-Requirements.md | 1 - posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2023-09-25-Increasing-Apple-Version-Requirements.md b/posts/2023-09-25-Increasing-Apple-Version-Requirements.md index fe423028f..4aeef2a23 100644 --- a/posts/2023-09-25-Increasing-Apple-Version-Requirements.md +++ b/posts/2023-09-25-Increasing-Apple-Version-Requirements.md @@ -1,4 +1,3 @@ - --- layout: post title: "Increasing the minimum supported Apple platform versions" diff --git a/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md b/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md index bd62d29f4..6e6765289 100644 --- a/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md +++ b/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md @@ -1,3 +1,4 @@ +--- layout: post title: "Intra-doc links close to stabilization" author: Manish Goregaokar and Jynn Nelson From 7b42b9ec860c57b78e2b42a9d12988d0783046e6 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 22 Jan 2025 23:59:10 +0100 Subject: [PATCH 0818/1024] Replace serde_yaml with toml --- Cargo.lock | 69 ++++++++++++++++++++++++++++++++++++++-------------- Cargo.toml | 2 +- README.md | 14 +++++------ src/blogs.rs | 6 ++--- src/posts.rs | 18 +++++++------- 5 files changed, 71 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 220c38a64..45be0adcc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -211,8 +211,8 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "serde_yaml", "tera", + "toml", ] [[package]] @@ -1947,28 +1947,24 @@ dependencies = [ ] [[package]] -name = "serde_urlencoded" -version = "0.7.1" +name = "serde_spanned" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ - "form_urlencoded", - "itoa", - "ryu", "serde", ] [[package]] -name = "serde_yaml" -version = "0.9.34-deprecated" +name = "serde_urlencoded" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4f17ab28832fcb8e88a0e938aaa915b4f4618142bd011d4e6a3060028974c47" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ - "indexmap", + "form_urlencoded", "itoa", "ryu", "serde", - "unsafe-libyaml", ] [[package]] @@ -2400,6 +2396,40 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + [[package]] name = "tower-service" version = "0.3.3" @@ -2580,12 +2610,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" -[[package]] -name = "unsafe-libyaml" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" - [[package]] name = "untrusted" version = "0.9.0" @@ -2905,6 +2929,15 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "winnow" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +dependencies = [ + "memchr", +] + [[package]] name = "write16" version = "1.0.0" diff --git a/Cargo.toml b/Cargo.toml index d1c9e2ff7..61e399e48 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,13 +11,13 @@ lazy_static = "=1.5.0" serde = "=1.0.218" serde_derive = "=1.0.218" serde_json = "=1.0.140" -serde_yaml = "=0.9.34-deprecated" comrak = { version = "=0.36.0", features = ["bon"] } rayon = "=1.10.0" regex = "=1.11.1" sass-rs = "=0.2.2" chrono = "=0.4.40" tera = "=1.20.0" +toml = "=0.8.20" [workspace] members = ["serve"] diff --git a/README.md b/README.md index 79032d87f..3efaad88a 100644 --- a/README.md +++ b/README.md @@ -46,13 +46,13 @@ something big, please open an issue before working on it, so we can make sure that it's something that will eventually be accepted. When writing a new blog post, keep in mind the file headers: -``` ---- -layout: post -title: Title of the blog post -author: Blog post author (or on behalf of which team) -release: true (to be only used for official posts about Rust releases announcements) ---- +```md ++++ +layout = "post" +title = "Title of the blog post" +author = "Blog post author (or on behalf of which team)" +release = true # (to be only used for official posts about Rust releases announcements) ++++ ``` ### Snapshot testing diff --git a/src/blogs.rs b/src/blogs.rs index 3e4b49f52..5dc12f1d5 100644 --- a/src/blogs.rs +++ b/src/blogs.rs @@ -2,7 +2,7 @@ use super::posts::Post; use serde_derive::{Deserialize, Serialize}; use std::path::{Path, PathBuf}; -static MANIFEST_FILE: &str = "blog.yml"; +static MANIFEST_FILE: &str = "blog.toml"; static POSTS_EXT: &str = "md"; #[derive(Deserialize)] @@ -47,7 +47,7 @@ pub struct Blog { impl Blog { fn load(prefix: PathBuf, dir: &Path) -> eyre::Result { let manifest_content = std::fs::read_to_string(dir.join(MANIFEST_FILE))?; - let manifest: Manifest = serde_yaml::from_str(&manifest_content)?; + let manifest: Manifest = toml::from_str(&manifest_content)?; let mut posts = Vec::new(); for entry in std::fs::read_dir(dir)? { @@ -119,7 +119,7 @@ impl Blog { } } -/// Recursively load blogs in a directory. A blog is a directory with a `blog.yml` +/// Recursively load blogs in a directory. A blog is a directory with a `blog.toml` /// file inside it. pub fn load(base: &Path) -> eyre::Result> { let mut blogs = Vec::new(); diff --git a/src/posts.rs b/src/posts.rs index 77c49c824..5658edc1b 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -5,7 +5,7 @@ use serde_derive::{Deserialize, Serialize}; use std::path::{Path, PathBuf}; #[derive(Debug, PartialEq, Deserialize)] -struct YamlHeader { +struct TomlHeader { title: String, author: String, #[serde(default)] @@ -55,18 +55,18 @@ impl Post { )); } - // yaml headers.... we know the first four bytes of each file are "---\n" + // toml headers.... we know the first four bytes of each file are "+++\n" // so we need to find the end. we need the fours to adjust for those first bytes - let end_of_yaml = contents[4..].find("---").unwrap() + 4; - let yaml = &contents[..end_of_yaml]; - let YamlHeader { + let end_of_toml = contents[4..].find("+++").unwrap() + 4; + let toml = &contents[4..end_of_toml]; + let TomlHeader { author, title, release, team: team_string, layout, - } = serde_yaml::from_str(yaml)?; - // next, the contents. we add + to get rid of the final "---\n\n" + } = toml::from_str(toml)?; + let options = comrak::Options { render: comrak::RenderOptions::builder().unsafe_(true).build(), extension: comrak::ExtensionOptions::builder() @@ -78,8 +78,8 @@ impl Post { ..comrak::Options::default() }; - // Content starts after "---\n" (we don't assume an extra newline) - let contents = comrak::markdown_to_html(&contents[end_of_yaml + 4..], &options); + // Content starts after "+++\n" (we don't assume an extra newline) + let contents = comrak::markdown_to_html(&contents[end_of_toml + 4..], &options); // finally, the url. let mut url = PathBuf::from(&*filename); From 4e23bed59f70592721cbd6f96ac9d7a5a7d3b362 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 13:44:58 +0100 Subject: [PATCH 0819/1024] Replace serde_derive with the feature flag --- Cargo.lock | 1 - Cargo.toml | 3 +-- src/blogs.rs | 2 +- src/lib.rs | 2 +- src/posts.rs | 2 +- 5 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 45be0adcc..b95a27fd0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -209,7 +209,6 @@ dependencies = [ "regex", "sass-rs", "serde", - "serde_derive", "serde_json", "tera", "toml", diff --git a/Cargo.toml b/Cargo.toml index 61e399e48..0a59a3eaa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,8 +8,7 @@ edition = "2021" color-eyre = "=0.6.3" eyre = "=0.6.12" lazy_static = "=1.5.0" -serde = "=1.0.218" -serde_derive = "=1.0.218" +serde = { version = "=1.0.218", features = ["derive"] } serde_json = "=1.0.140" comrak = { version = "=0.36.0", features = ["bon"] } rayon = "=1.10.0" diff --git a/src/blogs.rs b/src/blogs.rs index 5dc12f1d5..280456ae4 100644 --- a/src/blogs.rs +++ b/src/blogs.rs @@ -1,5 +1,5 @@ use super::posts::Post; -use serde_derive::{Deserialize, Serialize}; +use serde::{Deserialize, Serialize}; use std::path::{Path, PathBuf}; static MANIFEST_FILE: &str = "blog.toml"; diff --git a/src/lib.rs b/src/lib.rs index cc360dd2c..c86e1ffaf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,7 +7,7 @@ use chrono::Timelike; use eyre::{eyre, WrapErr}; use rayon::prelude::*; use sass_rs::{compile_file, Options}; -use serde_derive::Serialize; +use serde::Serialize; use serde_json::{json, Value}; use std::collections::HashMap; use std::fs::{self, File}; diff --git a/src/posts.rs b/src/posts.rs index 5658edc1b..b7a88467f 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -1,7 +1,7 @@ use super::blogs::Manifest; use eyre::eyre; use regex::Regex; -use serde_derive::{Deserialize, Serialize}; +use serde::{Deserialize, Serialize}; use std::path::{Path, PathBuf}; #[derive(Debug, PartialEq, Deserialize)] From bc87b2d2d6a5920a27a2a22841e1e160b3c9ecbb Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 13:52:08 +0100 Subject: [PATCH 0820/1024] Upgrade workspace to Rust edition 2024 --- Cargo.toml | 11 +++++++---- serve/Cargo.toml | 4 +--- src/lib.rs | 6 +++--- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0a59a3eaa..55400eb69 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,8 +1,14 @@ +[workspace] +members = ["serve"] + +[workspace.package] +edition = "2024" + [package] name = "blog" version = "0.1.0" +edition.workspace = true authors = ["The Rust Project Developers"] -edition = "2021" [dependencies] color-eyre = "=0.6.3" @@ -18,8 +24,5 @@ chrono = "=0.4.40" tera = "=1.20.0" toml = "=0.8.20" -[workspace] -members = ["serve"] - [dev-dependencies] insta = { version = "=1.42.2", features = ["filters", "glob"] } diff --git a/serve/Cargo.toml b/serve/Cargo.toml index b9fd08bc7..790e5f36b 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -1,9 +1,7 @@ [package] name = "serve" version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +edition.workspace = true [dependencies] blog = { path = ".." } diff --git a/src/lib.rs b/src/lib.rs index c86e1ffaf..8415a4261 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,11 +4,11 @@ mod posts; use self::blogs::Blog; use self::posts::Post; use chrono::Timelike; -use eyre::{eyre, WrapErr}; +use eyre::{WrapErr, eyre}; use rayon::prelude::*; -use sass_rs::{compile_file, Options}; +use sass_rs::{Options, compile_file}; use serde::Serialize; -use serde_json::{json, Value}; +use serde_json::{Value, json}; use std::collections::HashMap; use std::fs::{self, File}; use std::io::{self, Write}; From 1d6b9d532b587fe4e166e832ec69ff99de5c85ce Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 13:55:46 +0100 Subject: [PATCH 0821/1024] Remove dependency lazy_static --- Cargo.lock | 1 - Cargo.toml | 1 - src/posts.rs | 10 ++++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b95a27fd0..12c5bcc90 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -204,7 +204,6 @@ dependencies = [ "comrak", "eyre", "insta", - "lazy_static", "rayon", "regex", "sass-rs", diff --git a/Cargo.toml b/Cargo.toml index 55400eb69..bcd5c2cc0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,6 @@ authors = ["The Rust Project Developers"] [dependencies] color-eyre = "=0.6.3" eyre = "=0.6.12" -lazy_static = "=1.5.0" serde = { version = "=1.0.218", features = ["derive"] } serde_json = "=1.0.140" comrak = { version = "=0.36.0", features = ["bon"] } diff --git a/src/posts.rs b/src/posts.rs index b7a88467f..7a9609a7d 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -2,7 +2,10 @@ use super::blogs::Manifest; use eyre::eyre; use regex::Regex; use serde::{Deserialize, Serialize}; -use std::path::{Path, PathBuf}; +use std::{ + path::{Path, PathBuf}, + sync::LazyLock, +}; #[derive(Debug, PartialEq, Deserialize)] struct TomlHeader { @@ -113,9 +116,8 @@ impl Post { // If they supplied team, it should look like `team-text ` let (team, team_url) = team_string.map_or((None, None), |s| { - lazy_static::lazy_static! { - static ref R: Regex = Regex::new(r"(?P[^<]*) <(?P[^>]+)>").unwrap(); - } + static R: LazyLock = + LazyLock::new(|| Regex::new(r"(?P[^<]*) <(?P[^>]+)>").unwrap()); let Some(captures) = R.captures(&s) else { panic!( "team from path `{}` should have format `$name <$url>`", From 3d982bfd9f2c650d3fa2519f647b1e48cdec7893 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 14:10:29 +0100 Subject: [PATCH 0822/1024] Track all dependency versions in workspace --- Cargo.toml | 41 +++++++++++++++++++++++++++++------------ serve/Cargo.toml | 6 +++--- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index bcd5c2cc0..6d0af24fb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,24 +4,41 @@ members = ["serve"] [workspace.package] edition = "2024" -[package] -name = "blog" -version = "0.1.0" -edition.workspace = true -authors = ["The Rust Project Developers"] - -[dependencies] +[workspace.dependencies] +blog = { path = "." } +chrono = "=0.4.40" color-eyre = "=0.6.3" +comrak = "=0.36.0" eyre = "=0.6.12" -serde = { version = "=1.0.218", features = ["derive"] } -serde_json = "=1.0.140" -comrak = { version = "=0.36.0", features = ["bon"] } +insta = "=1.42.2" rayon = "=1.10.0" regex = "=1.11.1" sass-rs = "=0.2.2" -chrono = "=0.4.40" +serde_json = "=1.0.140" +serde = "=1.0.218" tera = "=1.20.0" +tokio = "=1.44.0" toml = "=0.8.20" +warpy = "=0.3.68" + +[package] +name = "blog" +version = "0.1.0" +edition.workspace = true +authors = ["The Rust Project Developers"] + +[dependencies] +chrono.workspace = true +color-eyre.workspace = true +comrak = { workspace = true, features = ["bon"] } +eyre.workspace = true +rayon.workspace = true +regex.workspace = true +sass-rs.workspace = true +serde_json.workspace = true +serde = { workspace = true, features = ["derive"] } +tera.workspace = true +toml.workspace = true [dev-dependencies] -insta = { version = "=1.42.2", features = ["filters", "glob"] } +insta = { workspace = true, features = ["filters", "glob"] } diff --git a/serve/Cargo.toml b/serve/Cargo.toml index 790e5f36b..01c37725e 100644 --- a/serve/Cargo.toml +++ b/serve/Cargo.toml @@ -4,6 +4,6 @@ version = "0.1.0" edition.workspace = true [dependencies] -blog = { path = ".." } -warpy = "=0.3.68" -tokio = "=1.44.0" +blog.workspace = true +warpy.workspace = true +tokio.workspace = true From ab98793dcdd8d6b79cff783f8edaca6c0a0483d7 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 13:46:51 +0100 Subject: [PATCH 0823/1024] Add front_matter crate We might want to move the blog to Zola. In that case, it will still be useful to have a crate that validates and even fixes our front matter. This will be especially important if we decide to duplicate the date of a post in the two front matter fields `date` and `path`, which may be necessary to preserve the existing URL scheme. While the custom static site generator is still present, it can reuse the front matter parsing logic. --- Cargo.lock | 10 ++++++++++ Cargo.toml | 4 +++- front_matter/Cargo.toml | 9 +++++++++ front_matter/src/lib.rs | 29 +++++++++++++++++++++++++++ src/posts.rs | 43 +++++++++++++---------------------------- 5 files changed, 64 insertions(+), 31 deletions(-) create mode 100644 front_matter/Cargo.toml create mode 100644 front_matter/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 12c5bcc90..9885a96ce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -203,6 +203,7 @@ dependencies = [ "color-eyre", "comrak", "eyre", + "front_matter", "insta", "rayon", "regex", @@ -721,6 +722,15 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "front_matter" +version = "0.1.0" +dependencies = [ + "eyre", + "serde", + "toml", +] + [[package]] name = "futures-channel" version = "0.3.31" diff --git a/Cargo.toml b/Cargo.toml index 6d0af24fb..4842b7fbc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = ["serve"] +members = ["front_matter", "serve"] [workspace.package] edition = "2024" @@ -10,6 +10,7 @@ chrono = "=0.4.40" color-eyre = "=0.6.3" comrak = "=0.36.0" eyre = "=0.6.12" +front_matter = { path = "front_matter" } insta = "=1.42.2" rayon = "=1.10.0" regex = "=1.11.1" @@ -32,6 +33,7 @@ chrono.workspace = true color-eyre.workspace = true comrak = { workspace = true, features = ["bon"] } eyre.workspace = true +front_matter.workspace = true rayon.workspace = true regex.workspace = true sass-rs.workspace = true diff --git a/front_matter/Cargo.toml b/front_matter/Cargo.toml new file mode 100644 index 000000000..9fb79f6c0 --- /dev/null +++ b/front_matter/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "front_matter" +version = "0.1.0" +edition.workspace = true + +[dependencies] +eyre.workspace = true +serde = { workspace = true, features = ["derive"] } +toml.workspace = true diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs new file mode 100644 index 000000000..b3331bb70 --- /dev/null +++ b/front_matter/src/lib.rs @@ -0,0 +1,29 @@ +use eyre::bail; +use serde::{Deserialize, Serialize}; + +/// The front matter of a markdown blog post. +#[derive(Debug, PartialEq, Serialize, Deserialize)] +pub struct FrontMatter { + pub title: String, + pub author: String, + #[serde(default)] + pub release: bool, + pub team: Option, + pub layout: String, +} + +/// Extracts the front matter from a markdown file. +/// +/// The remaining normal markdown content is returned as the second element of +/// the tuple. +pub fn parse(markdown: &str) -> eyre::Result<(FrontMatter, &str)> { + if !markdown.starts_with("+++\n") { + bail!("markdown file must start with the line `+++`"); + } + let (front_matter, content) = markdown + .trim_start_matches("+++\n") + .split_once("\n+++\n") + .expect("couldn't find the end of the front matter: `+++`"); + + Ok((toml::from_str(front_matter)?, content)) +} diff --git a/src/posts.rs b/src/posts.rs index 7a9609a7d..e07c1b38b 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -1,22 +1,12 @@ use super::blogs::Manifest; -use eyre::eyre; +use front_matter::FrontMatter; use regex::Regex; -use serde::{Deserialize, Serialize}; +use serde::Serialize; use std::{ path::{Path, PathBuf}, sync::LazyLock, }; -#[derive(Debug, PartialEq, Deserialize)] -struct TomlHeader { - title: String, - author: String, - #[serde(default)] - release: bool, - team: Option, - layout: String, -} - #[derive(Debug, Clone, Serialize)] pub struct Post { pub(crate) filename: String, @@ -52,23 +42,17 @@ impl Post { let filename = split.next().unwrap().to_string(); let contents = std::fs::read_to_string(path)?; - if contents.len() < 5 { - return Err(eyre!( - "{path:?} is empty, or too short to have valid front matter" - )); - } - // toml headers.... we know the first four bytes of each file are "+++\n" - // so we need to find the end. we need the fours to adjust for those first bytes - let end_of_toml = contents[4..].find("+++").unwrap() + 4; - let toml = &contents[4..end_of_toml]; - let TomlHeader { - author, - title, - release, - team: team_string, - layout, - } = toml::from_str(toml)?; + let ( + FrontMatter { + author, + title, + release, + team: team_string, + layout, + }, + contents, + ) = front_matter::parse(&contents)?; let options = comrak::Options { render: comrak::RenderOptions::builder().unsafe_(true).build(), @@ -81,8 +65,7 @@ impl Post { ..comrak::Options::default() }; - // Content starts after "+++\n" (we don't assume an extra newline) - let contents = comrak::markdown_to_html(&contents[end_of_toml + 4..], &options); + let contents = comrak::markdown_to_html(contents, &options); // finally, the url. let mut url = PathBuf::from(&*filename); From ae17fb250ab08df15c4b16992b990c8eed1363bc Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 23 Jan 2025 00:35:17 +0100 Subject: [PATCH 0824/1024] Translate blog metadata from yaml to toml Translate blog.yaml to blog.toml --- posts/blog.toml | 10 ++++++++++ posts/blog.yml | 10 ---------- posts/inside-rust/blog.toml | 12 ++++++++++++ posts/inside-rust/blog.yml | 11 ----------- 4 files changed, 22 insertions(+), 21 deletions(-) create mode 100644 posts/blog.toml delete mode 100644 posts/blog.yml create mode 100644 posts/inside-rust/blog.toml delete mode 100644 posts/inside-rust/blog.yml diff --git a/posts/blog.toml b/posts/blog.toml new file mode 100644 index 000000000..889e663fb --- /dev/null +++ b/posts/blog.toml @@ -0,0 +1,10 @@ +title = "Rust Blog" +index-title = "The Rust Programming Language Blog" +link-text = "the main Rust blog" +description = "Empowering everyone to build reliable and efficient software." +index-html = """ +This is the main Rust blog. \ +Rust teams \ +use this blog to announce major developments in the world of Rust.""" +maintained-by = "the Rust Teams" +requires-team = false diff --git a/posts/blog.yml b/posts/blog.yml deleted file mode 100644 index 078cfb3a4..000000000 --- a/posts/blog.yml +++ /dev/null @@ -1,10 +0,0 @@ -title: Rust Blog -index-title: The Rust Programming Language Blog -link-text: the main Rust blog -description: Empowering everyone to build reliable and efficient software. -index-html: This is the main Rust blog. - Rust teams - use this blog to announce major developments in the world of Rust. -maintained-by: the Rust Teams -requires-team: false - diff --git a/posts/inside-rust/blog.toml b/posts/inside-rust/blog.toml new file mode 100644 index 000000000..8014cd1f1 --- /dev/null +++ b/posts/inside-rust/blog.toml @@ -0,0 +1,12 @@ +title = "Inside Rust Blog" +index-title = 'The "Inside Rust" Blog' +link-text = 'the "Inside Rust" blog' +description = "Want to follow along with Rust development? Curious how you might get involved? Take a look!" +index-html = """ +This is the "Inside Rust" blog. This blog is aimed at those who wish \ +to follow along with Rust development. The various \ +Rust teams and working groups \ +use this blog to post status updates, calls for help, and other \ +similar announcements.""" +maintained-by = "the Rust Teams" +requires-team = false diff --git a/posts/inside-rust/blog.yml b/posts/inside-rust/blog.yml deleted file mode 100644 index 4a41360ab..000000000 --- a/posts/inside-rust/blog.yml +++ /dev/null @@ -1,11 +0,0 @@ -title: Inside Rust Blog -index-title: The "Inside Rust" Blog -link-text: the "Inside Rust" blog -description: Want to follow along with Rust development? Curious how you might get involved? Take a look! -index-html: This is the "Inside Rust" blog. This blog is aimed at those who wish - to follow along with Rust development. The various - Rust teams and working groups - use this blog to post status updates, calls for help, and other - similar announcements. -maintained-by: the Rust Teams -requires-team: false From 6f2159edc39947aac5974ea69a499de91905dfa7 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 14:53:25 +0100 Subject: [PATCH 0825/1024] Add test for normalized front matter --- front_matter/src/lib.rs | 82 +++++++++++++++++++++++++++++++++++++++-- src/posts.rs | 1 + 2 files changed, 80 insertions(+), 3 deletions(-) diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs index b3331bb70..999146a84 100644 --- a/front_matter/src/lib.rs +++ b/front_matter/src/lib.rs @@ -4,12 +4,13 @@ use serde::{Deserialize, Serialize}; /// The front matter of a markdown blog post. #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct FrontMatter { + pub layout: String, pub title: String, pub author: String, - #[serde(default)] - pub release: bool, + pub description: Option, pub team: Option, - pub layout: String, + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + pub release: bool, } /// Extracts the front matter from a markdown file. @@ -27,3 +28,78 @@ pub fn parse(markdown: &str) -> eyre::Result<(FrontMatter, &str)> { Ok((toml::from_str(front_matter)?, content)) } + +/// Normalizes the front matter of a markdown file. +pub fn normalize(markdown: &str) -> eyre::Result { + let (front_matter, content) = parse(markdown)?; + + Ok(format!( + "\ ++++ +{}\ ++++ +{content}", + toml::to_string_pretty(&front_matter)? + )) +} + +#[cfg(test)] +mod tests { + use std::{env, fs, path::PathBuf}; + + use super::*; + + #[test] + fn front_matter_is_normalized() { + let repo_root = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(".."); + + let posts = fs::read_dir(repo_root.join("posts")) + .unwrap() + .chain(fs::read_dir(repo_root.join("posts/inside-rust")).unwrap()) + .map(|p| p.unwrap().path()) + .filter(|p| p.extension() == Some("md".as_ref())); + + for post in posts { + let content = fs::read_to_string(&post).unwrap(); + let normalized = normalize(&content).unwrap(); + + if content != normalized { + if env::var("FIX_FRONT_MATTER").is_ok() { + fs::write(post, normalized).unwrap(); + continue; + } + + let post = post.file_name().unwrap().to_str().unwrap(); + let actual = content + .rsplit_once("+++") + .map(|(f, _)| format!("{f}+++")) + .unwrap_or(content); + let expected = normalized + .rsplit_once("+++") + .map(|(f, _)| format!("{f}+++")) + .unwrap_or(normalized); + + // better error message than assert_eq!() + panic!( + " +The post {post} has abnormal front matter. + + actual: +{actual} + + expected: +{expected} + + ┌──────────────────────────────────────────────────────────────────────────┐ + │ │ + │ You can fix this automatically by running: │ + │ │ + │ FIX_FRONT_MATTER=1 cargo test --all front_matter_is_normalized │ + │ │ + └──────────────────────────────────────────────────────────────────────────┘ +", + ) + }; + } + } +} diff --git a/src/posts.rs b/src/posts.rs index e07c1b38b..5e9ea0d8e 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -50,6 +50,7 @@ impl Post { release, team: team_string, layout, + .. }, contents, ) = front_matter::parse(&contents)?; From 6e6d05fe8784cc5e5e72153893a3d735be3001ea Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 11:29:55 +0100 Subject: [PATCH 0826/1024] Translate front matter from yaml to toml --- posts/2014-09-15-Rust-1.0.md | 12 ++++++------ posts/2014-10-30-Stability.md | 12 ++++++------ posts/2014-11-20-Cargo.md | 12 ++++++------ posts/2014-12-12-1.0-Timeline.md | 12 ++++++------ posts/2014-12-12-Core-Team.md | 12 ++++++------ posts/2015-01-09-Rust-1.0-alpha.md | 10 +++++----- posts/2015-02-13-Final-1.0-timeline.md | 10 +++++----- posts/2015-02-20-Rust-1.0-alpha2.md | 12 ++++++------ posts/2015-04-03-Rust-1.0-beta.md | 10 +++++----- posts/2015-04-10-Fearless-Concurrency.md | 12 ++++++------ .../2015-04-17-Enums-match-mutation-and-moves.md | 12 ++++++------ posts/2015-04-24-Rust-Once-Run-Everywhere.md | 12 ++++++------ posts/2015-05-11-traits.md | 12 ++++++------ posts/2015-05-15-Rust-1.0.md | 12 ++++++------ posts/2015-06-25-Rust-1.1.md | 12 ++++++------ posts/2015-08-06-Rust-1.2.md | 12 ++++++------ posts/2015-08-14-Next-year.md | 12 ++++++------ posts/2015-09-17-Rust-1.3.md | 12 ++++++------ posts/2015-10-29-Rust-1.4.md | 12 ++++++------ posts/2015-12-10-Rust-1.5.md | 12 ++++++------ posts/2016-01-21-Rust-1.6.md | 12 ++++++------ posts/2016-03-02-Rust-1.7.md | 12 ++++++------ posts/2016-04-14-Rust-1.8.md | 12 ++++++------ posts/2016-04-19-MIR.md | 12 ++++++------ posts/2016-05-05-cargo-pillars.md | 12 ++++++------ posts/2016-05-09-survey.md | 12 ++++++------ posts/2016-05-13-rustup.md | 12 ++++++------ posts/2016-05-16-rust-at-one-year.md | 12 ++++++------ posts/2016-05-26-Rust-1.9.md | 12 ++++++------ posts/2016-06-30-State-of-Rust-Survey-2016.md | 10 +++++----- posts/2016-07-07-Rust-1.10.md | 12 ++++++------ posts/2016-07-25-conf-lineup.md | 12 ++++++------ posts/2016-08-10-Shape-of-errors-to-come.md | 10 +++++----- posts/2016-08-18-Rust-1.11.md | 12 ++++++------ posts/2016-09-08-incremental.md | 12 ++++++------ posts/2016-09-29-Rust-1.12.md | 12 ++++++------ posts/2016-10-20-Rust-1.12.1.md | 12 ++++++------ posts/2016-11-10-Rust-1.13.md | 12 ++++++------ posts/2016-12-15-Underhanded-Rust.md | 10 +++++----- posts/2016-12-22-Rust-1.14.md | 12 ++++++------ posts/2017-02-02-Rust-1.15.md | 12 ++++++------ posts/2017-02-06-roadmap.md | 12 ++++++------ posts/2017-02-09-Rust-1.15.1.md | 12 ++++++------ posts/2017-03-02-lang-ergonomics.md | 12 ++++++------ posts/2017-03-16-Rust-1.16.md | 12 ++++++------ posts/2017-04-27-Rust-1.17.md | 12 ++++++------ posts/2017-05-03-survey.md | 12 ++++++------ posts/2017-05-05-libz-blitz.md | 12 ++++++------ posts/2017-05-15-rust-at-two-years.md | 12 ++++++------ posts/2017-06-08-Rust-1.18.md | 12 ++++++------ posts/2017-06-27-Increasing-Rusts-Reach.md | 10 +++++----- posts/2017-07-05-Rust-Roadmap-Update.md | 10 +++++----- posts/2017-07-18-conf-lineup.md | 12 ++++++------ posts/2017-07-20-Rust-1.19.md | 12 ++++++------ posts/2017-08-31-Rust-1.20.md | 12 ++++++------ posts/2017-09-05-Rust-2017-Survey-Results.md | 10 +++++----- posts/2017-09-18-impl-future-for-rust.md | 12 ++++++------ posts/2017-10-12-Rust-1.21.md | 12 ++++++------ ...14-Fearless-Concurrency-In-Firefox-Quantum.md | 10 +++++----- posts/2017-11-22-Rust-1.22.md | 12 ++++++------ posts/2017-12-21-rust-in-2017.md | 10 +++++----- ...-years-rust-a-call-for-community-blogposts.md | 10 +++++----- posts/2018-01-04-Rust-1.23.md | 12 ++++++------ posts/2018-01-31-The-2018-Rust-Event-Lineup.md | 12 ++++++------ posts/2018-02-15-Rust-1.24.md | 12 ++++++------ posts/2018-03-01-Rust-1.24.1.md | 12 ++++++------ posts/2018-03-12-roadmap.md | 10 +++++----- posts/2018-03-29-Rust-1.25.md | 12 ++++++------ posts/2018-04-02-Increasing-Rusts-Reach-2018.md | 10 +++++----- posts/2018-04-06-all-hands.md | 10 +++++----- posts/2018-05-10-Rust-1.26.md | 12 ++++++------ posts/2018-05-15-Rust-turns-three.md | 12 ++++++------ posts/2018-05-29-Rust-1.26.1.md | 12 ++++++------ posts/2018-06-05-Rust-1.26.2.md | 12 ++++++------ posts/2018-06-21-Rust-1.27.md | 12 ++++++------ .../2018-07-06-security-advisory-for-rustdoc.md | 10 +++++----- posts/2018-07-10-Rust-1.27.1.md | 12 ++++++------ posts/2018-07-20-Rust-1.27.2.md | 12 ++++++------ posts/2018-07-27-what-is-rust-2018.md | 10 +++++----- posts/2018-08-02-Rust-1.28.md | 12 ++++++------ posts/2018-08-08-survey.md | 12 ++++++------ posts/2018-09-13-Rust-1.29.md | 12 ++++++------ posts/2018-09-21-Security-advisory-for-std.md | 10 +++++----- posts/2018-09-25-Rust-1.29.1.md | 12 ++++++------ posts/2018-10-12-Rust-1.29.2.md | 12 ++++++------ posts/2018-10-19-Update-on-crates.io-incident.md | 10 +++++----- posts/2018-10-25-Rust-1.30.0.md | 12 ++++++------ posts/2018-10-30-help-test-rust-2018.md | 10 +++++----- posts/2018-11-08-Rust-1.30.1.md | 12 ++++++------ posts/2018-11-27-Rust-survey-2018.md | 10 +++++----- posts/2018-11-29-a-new-look-for-rust-lang-org.md | 12 ++++++------ posts/2018-12-06-Rust-1.31-and-rust-2018.md | 12 ++++++------ ...12-06-call-for-rust-2019-roadmap-blogposts.md | 12 ++++++------ posts/2018-12-17-Rust-2018-dev-tools.md | 10 +++++----- posts/2018-12-20-Rust-1.31.1.md | 12 ++++++------ .../2018-12-21-Procedural-Macros-in-Rust-2018.md | 10 +++++----- posts/2019-01-17-Rust-1.32.0.md | 12 ++++++------ posts/2019-02-22-Core-team-changes.md | 10 +++++----- posts/2019-02-28-Rust-1.33.0.md | 12 ++++++------ posts/2019-04-11-Rust-1.34.0.md | 12 ++++++------ posts/2019-04-23-roadmap.md | 10 +++++----- posts/2019-04-25-Rust-1.34.1.md | 12 ++++++------ ...26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md | 10 +++++----- posts/2019-05-13-Security-advisory.md | 10 +++++----- posts/2019-05-14-Rust-1.34.2.md | 12 ++++++------ posts/2019-05-15-4-Years-Of-Rust.md | 10 +++++----- posts/2019-05-20-The-2019-Rust-Event-Lineup.md | 12 ++++++------ posts/2019-05-23-Rust-1.35.0.md | 12 ++++++------ posts/2019-06-03-governance-wg-announcement.md | 12 ++++++------ posts/2019-07-04-Rust-1.36.0.md | 12 ++++++------ posts/2019-08-15-Rust-1.37.0.md | 12 ++++++------ posts/2019-09-18-upcoming-docsrs-changes.md | 10 +++++----- posts/2019-09-26-Rust-1.38.0.md | 12 ++++++------ posts/2019-09-30-Async-await-hits-beta.md | 10 +++++----- posts/2019-09-30-Security-advisory-for-cargo.md | 10 +++++----- posts/2019-10-03-inside-rust-blog.md | 10 +++++----- posts/2019-10-15-Rustup-1.20.0.md | 10 +++++----- posts/2019-10-29-A-call-for-blogs-2020.md | 10 +++++----- posts/2019-11-01-nll-hard-errors.md | 10 +++++----- posts/2019-11-07-Async-await-stable.md | 10 +++++----- posts/2019-11-07-Rust-1.39.0.md | 12 ++++++------ posts/2019-12-03-survey-launch.md | 12 ++++++------ posts/2019-12-19-Rust-1.40.0.md | 12 ++++++------ ...-reducing-support-for-32-bit-apple-targets.md | 10 +++++----- posts/2020-01-30-Rust-1.41.0.md | 12 ++++++------ posts/2020-01-31-conf-lineup.md | 12 ++++++------ posts/2020-02-27-Rust-1.41.1.md | 12 ++++++------ posts/2020-03-10-rustconf-cfp.md | 12 ++++++------ posts/2020-03-12-Rust-1.42.md | 12 ++++++------ .../2020-03-15-docs-rs-opt-into-fewer-targets.md | 12 ++++++------ posts/2020-04-17-Rust-survey-2019.md | 10 +++++----- posts/2020-04-23-Rust-1.43.0.md | 12 ++++++------ posts/2020-05-07-Rust.1.43.1.md | 12 ++++++------ posts/2020-05-15-five-years-of-rust.md | 10 +++++----- posts/2020-06-04-Rust-1.44.0.md | 12 ++++++------ posts/2020-06-10-event-lineup-update.md | 12 ++++++------ posts/2020-06-18-Rust.1.44.1.md | 12 ++++++------ posts/2020-07-06-Rustup-1.22.0.md | 10 +++++----- posts/2020-07-08-Rustup-1.22.1.md | 10 +++++----- posts/2020-07-14-crates-io-security-advisory.md | 10 +++++----- posts/2020-07-16-Rust-1.45.0.md | 12 ++++++------ posts/2020-07-30-Rust-1.45.1.md | 12 ++++++------ posts/2020-08-03-Rust-1.45.2.md | 12 ++++++------ ...-18-laying-the-foundation-for-rusts-future.md | 12 ++++++------ posts/2020-08-27-Rust-1.46.0.md | 12 ++++++------ posts/2020-09-03-Planning-2021-Roadmap.md | 12 ++++++------ posts/2020-09-10-survey-launch.md | 12 ++++++------ .../2020-09-14-wg-prio-call-for-contributors.md | 10 +++++----- posts/2020-09-21-Scheduling-2021-Roadmap.md | 12 ++++++------ posts/2020-10-08-Rust-1.47.md | 12 ++++++------ posts/2020-10-20-regression-labels.md | 14 +++++++------- posts/2020-11-19-Rust-1.48.md | 12 ++++++------ posts/2020-11-27-Rustup-1.23.0.md | 10 +++++----- posts/2020-12-07-the-foundation-conversation.md | 12 ++++++------ posts/2020-12-11-lock-poisoning-survey.md | 12 ++++++------ ...Next-steps-for-the-foundation-conversation.md | 12 ++++++------ posts/2020-12-16-rust-survey-2020.md | 12 ++++++------ posts/2020-12-31-Rust-1.49.0.md | 12 ++++++------ posts/2021-01-04-mdbook-security-advisory.md | 10 +++++----- posts/2021-02-11-Rust-1.50.0.md | 12 ++++++------ posts/2021-02-26-const-generics-mvp-beta.md | 10 +++++----- posts/2021-03-18-async-vision-doc.md | 14 +++++++------- posts/2021-03-25-Rust-1.51.0.md | 12 ++++++------ .../2021-04-14-async-vision-doc-shiny-future.md | 14 +++++++------- posts/2021-04-27-Rustup-1.24.0.md | 10 +++++----- posts/2021-04-29-Rustup-1.24.1.md | 10 +++++----- posts/2021-05-06-Rust-1.52.0.md | 12 ++++++------ posts/2021-05-10-Rust-1.52.1.md | 14 +++++++------- posts/2021-05-11-edition-2021.md | 12 ++++++------ posts/2021-05-15-six-years-of-rust.md | 10 +++++----- posts/2021-05-17-Rustup-1.24.2.md | 10 +++++----- posts/2021-06-08-Rustup-1.24.3.md | 10 +++++----- posts/2021-06-17-Rust-1.53.0.md | 12 ++++++------ posts/2021-07-21-Rust-2021-public-testing.md | 12 ++++++------ posts/2021-07-29-Rust-1.54.0.md | 12 ++++++------ posts/2021-08-03-GATs-stabilization-push.md | 12 ++++++------ posts/2021-09-09-Rust-1.55.0.md | 12 ++++++------ posts/2021-09-27-Core-team-membership-updates.md | 10 +++++----- posts/2021-10-21-Rust-1.56.0.md | 12 ++++++------ posts/2021-11-01-Rust-1.56.1.md | 12 ++++++------ posts/2021-11-01-cve-2021-42574.md | 10 +++++----- posts/2021-12-02-Rust-1.57.0.md | 12 ++++++------ posts/2021-12-08-survey-launch.md | 12 ++++++------ posts/2022-01-13-Rust-1.58.0.md | 12 ++++++------ posts/2022-01-20-Rust-1.58.1.md | 12 ++++++------ posts/2022-01-20-cve-2022-21658.md | 10 +++++----- posts/2022-01-31-changes-in-the-core-team.md | 10 +++++----- posts/2022-02-14-crates-io-snapshot-branches.md | 12 ++++++------ posts/2022-02-15-Rust-Survey-2021.md | 10 +++++----- posts/2022-02-21-rust-analyzer-joins-rust-org.md | 10 +++++----- posts/2022-02-24-Rust-1.59.0.md | 12 ++++++------ posts/2022-03-08-cve-2022-24713.md | 10 +++++----- posts/2022-04-07-Rust-1.60.0.md | 12 ++++++------ posts/2022-05-10-malicious-crate-rustdecimal.md | 10 +++++----- posts/2022-05-19-Rust-1.61.0.md | 12 ++++++------ posts/2022-06-22-sparse-registry-testing.md | 12 ++++++------ posts/2022-06-28-rust-unconference.md | 10 +++++----- posts/2022-06-30-Rust-1.62.0.md | 12 ++++++------ posts/2022-07-01-RLS-deprecation.md | 10 +++++----- posts/2022-07-11-Rustup-1.25.0.md | 10 +++++----- posts/2022-07-12-Rustup-1.25.1.md | 10 +++++----- posts/2022-07-12-changes-in-the-core-team.md | 10 +++++----- posts/2022-07-19-Rust-1.62.1.md | 12 ++++++------ ...08-01-Increasing-glibc-kernel-requirements.md | 10 +++++----- posts/2022-08-05-nll-by-default.md | 14 +++++++------- posts/2022-08-11-Rust-1.63.0.md | 12 ++++++------ posts/2022-09-14-cargo-cves.md | 10 +++++----- ...2022-09-15-const-eval-safety-rule-revision.md | 14 +++++++------- posts/2022-09-22-Rust-1.64.0.md | 12 ++++++------ posts/2022-10-28-gats-stabilization.md | 14 +++++++------- posts/2022-11-03-Rust-1.65.0.md | 12 ++++++------ posts/2022-12-05-survey-launch.md | 12 ++++++------ posts/2022-12-15-Rust-1.66.0.md | 12 ++++++------ posts/2023-01-09-android-ndk-update-r25.md | 12 ++++++------ posts/2023-01-10-Rust-1.66.1.md | 12 ++++++------ posts/2023-01-10-cve-2022-46176.md | 10 +++++----- posts/2023-01-20-types-announcement.md | 14 +++++++------- posts/2023-01-26-Rust-1.67.0.md | 12 ++++++------ posts/2023-02-01-Rustup-1.25.2.md | 10 +++++----- posts/2023-02-09-Rust-1.67.1.md | 12 ++++++------ posts/2023-03-09-Rust-1.68.0.md | 12 ++++++------ posts/2023-03-23-Rust-1.68.1.md | 12 ++++++------ posts/2023-03-28-Rust-1.68.2.md | 12 ++++++------ posts/2023-04-20-Rust-1.69.0.md | 12 ++++++------ posts/2023-04-25-Rustup-1.26.0.md | 10 +++++----- posts/2023-05-09-Updating-musl-targets.md | 14 +++++++------- posts/2023-05-29-RustConf.md | 14 +++++++------- posts/2023-06-01-Rust-1.70.0.md | 12 ++++++------ .../2023-06-20-introducing-leadership-council.md | 12 ++++++------ ...23-06-23-improved-api-tokens-for-crates-io.md | 12 ++++++------ ...07-01-rustfmt-supports-let-else-statements.md | 14 +++++++------- posts/2023-07-05-regex-1.9.md | 12 ++++++------ posts/2023-07-13-Rust-1.71.0.md | 12 ++++++------ posts/2023-08-03-Rust-1.71.1.md | 12 ++++++------ posts/2023-08-03-cve-2023-38497.md | 10 +++++----- posts/2023-08-07-Rust-Survey-2023-Results.md | 12 ++++++------ posts/2023-08-24-Rust-1.72.0.md | 12 ++++++------ posts/2023-08-29-committing-lockfiles.md | 12 ++++++------ .../2023-08-30-electing-new-project-directors.md | 12 ++++++------ posts/2023-09-19-Rust-1.72.1.md | 12 ++++++------ posts/2023-09-22-crates-io-usage-policy-rfc.md | 12 ++++++------ ...9-25-Increasing-Apple-Version-Requirements.md | 12 ++++++------ posts/2023-10-05-Rust-1.73.0.md | 12 ++++++------ ...-announcing-the-new-rust-project-directors.md | 12 ++++++------ .../2023-10-26-broken-badges-and-23k-keywords.md | 12 ++++++------ ...23-10-27-crates-io-non-canonical-downloads.md | 12 ++++++------ posts/2023-11-09-parallel-rustc.md | 12 ++++++------ posts/2023-11-16-Rust-1.74.0.md | 12 ++++++------ posts/2023-12-07-Rust-1.74.1.md | 12 ++++++------ posts/2023-12-11-cargo-cache-cleaning.md | 12 ++++++------ posts/2023-12-15-2024-Edition-CFP.md | 12 ++++++------ posts/2023-12-18-survey-launch.md | 12 ++++++------ posts/2023-12-21-async-fn-rpit-in-traits.md | 12 ++++++------ posts/2023-12-28-Rust-1.75.0.md | 12 ++++++------ posts/2024-02-06-crates-io-status-codes.md | 12 ++++++------ posts/2024-02-08-Rust-1.76.0.md | 12 ++++++------ ...02-19-2023-Rust-Annual-Survey-2023-results.md | 10 +++++----- .../2024-02-21-Rust-participates-in-GSoC-2024.md | 10 +++++----- posts/2024-02-26-Windows-7.md | 10 +++++----- ...28-Clippy-deprecating-feature-cargo-clippy.md | 10 +++++----- posts/2024-03-11-Rustup-1.27.0.md | 10 +++++----- posts/2024-03-11-crates-io-download-changes.md | 12 ++++++------ posts/2024-03-21-Rust-1.77.0.md | 12 ++++++------ posts/2024-03-28-Rust-1.77.1.md | 12 ++++++------ posts/2024-03-30-i128-layout-update.md | 12 ++++++------ posts/2024-04-09-Rust-1.77.2.md | 12 ++++++------ posts/2024-04-09-cve-2024-24576.md | 10 +++++----- .../2024-04-09-updates-to-rusts-wasi-targets.md | 10 +++++----- posts/2024-05-01-gsoc-2024-selected-projects.md | 10 +++++----- posts/2024-05-02-Rust-1.78.0.md | 12 ++++++------ posts/2024-05-06-Rustup-1.27.1.md | 10 +++++----- posts/2024-05-06-check-cfg.md | 12 ++++++------ posts/2024-05-07-OSPP-2024.md | 10 +++++----- posts/2024-05-17-enabling-rust-lld-on-linux.md | 12 ++++++------ posts/2024-06-13-Rust-1.79.0.md | 12 ++++++------ posts/2024-06-26-types-team-update.md | 12 ++++++------ posts/2024-07-25-Rust-1.80.0.md | 12 ++++++------ posts/2024-07-29-crates-io-development-update.md | 12 ++++++------ posts/2024-08-08-Rust-1.80.1.md | 12 ++++++------ posts/2024-08-12-Project-goals.md | 12 ++++++------ posts/2024-08-26-council-survey.md | 10 +++++----- posts/2024-09-04-cve-2024-43402.md | 10 +++++----- posts/2024-09-05-Rust-1.81.0.md | 12 ++++++------ posts/2024-09-05-impl-trait-capture-rules.md | 12 ++++++------ posts/2024-09-23-Project-Goals-Sep-Update.md | 12 ++++++------ ...-targets-change-in-default-target-features.md | 12 ++++++------ posts/2024-10-17-Rust-1.82.0.md | 12 ++++++------ posts/2024-10-31-project-goals-oct-update.md | 12 ++++++------ posts/2024-11-06-trademark-update.md | 10 +++++----- ...-07-gccrs-an-alternative-compiler-for-rust.md | 10 +++++----- posts/2024-11-07-gsoc-2024-results.md | 10 +++++----- posts/2024-11-26-wasip2-tier-2.md | 10 +++++----- posts/2024-11-27-Rust-2024-public-testing.md | 12 ++++++------ posts/2024-11-28-Rust-1.83.0.md | 12 ++++++------ posts/2024-12-05-annual-survey-2024-launch.md | 12 ++++++------ posts/2024-12-16-project-goals-nov-update.md | 12 ++++++------ posts/2025-01-09-Rust-1.84.0.md | 12 ++++++------ posts/2025-01-22-rust-2024-beta.md | 12 ++++++------ posts/2025-01-23-Project-Goals-Dec-Update.md | 12 ++++++------ posts/2025-01-30-Rust-1.84.1.md | 12 ++++++------ posts/2025-02-05-crates-io-development-update.md | 12 ++++++------ ...25-02-13-2024-State-Of-Rust-Survey-results.md | 10 +++++----- posts/2025-02-20-Rust-1.85.0.md | 12 ++++++------ posts/2025-03-02-Rustup-1.28.0.md | 10 +++++----- posts/2025-03-03-Project-Goals-Feb-Update.md | 12 ++++++------ .../2025-03-03-Rust-participates-in-GSoC-2025.md | 10 +++++----- posts/2025-03-04-Rustup-1.28.1.md | 10 +++++----- posts/inside-rust/2019-09-25-Welcome.md | 14 +++++++------- ...-10-03-Keeping-secure-with-cargo-audit-0.9.md | 14 +++++++------- .../2019-10-07-AsyncAwait-WG-Focus-Issues.md | 14 +++++++------- ...-11-AsyncAwait-Not-Send-Error-Improvements.md | 14 +++++++------- .../inside-rust/2019-10-11-Lang-Team-Meeting.md | 14 +++++++------- .../2019-10-15-compiler-team-meeting.md | 14 +++++++------- .../inside-rust/2019-10-15-infra-team-meeting.md | 12 ++++++------ ...7-ecstatic-morse-for-compiler-contributors.md | 14 +++++++------- .../2019-10-21-compiler-team-meeting.md | 14 +++++++------- .../inside-rust/2019-10-22-LLVM-ICE-breakers.md | 14 +++++++------- .../inside-rust/2019-10-22-infra-team-meeting.md | 12 ++++++------ .../2019-10-24-docsrs-outage-postmortem.md | 12 ++++++------ .../2019-10-24-pnkfelix-compiler-team-co-lead.md | 14 +++++++------- .../2019-10-25-planning-meeting-update.md | 14 +++++++------- ...-rustc-learning-working-group-introduction.md | 14 +++++++------- .../inside-rust/2019-10-29-infra-team-meeting.md | 12 ++++++------ .../2019-10-30-compiler-team-meeting.md | 14 +++++++------- ...2019-11-04-Clippy-removes-plugin-interface.md | 14 +++++++------- .../inside-rust/2019-11-06-infra-team-meeting.md | 12 ++++++------ .../2019-11-07-compiler-team-meeting.md | 16 ++++++++-------- .../2019-11-11-compiler-team-meeting.md | 14 +++++++------- posts/inside-rust/2019-11-13-goverance-wg-cfp.md | 12 ++++++------ .../2019-11-14-evaluating-github-actions.md | 12 ++++++------ .../inside-rust/2019-11-18-infra-team-meeting.md | 12 ++++++------ .../2019-11-19-compiler-team-meeting.md | 14 +++++++------- .../inside-rust/2019-11-19-infra-team-meeting.md | 12 ++++++------ .../inside-rust/2019-11-22-Lang-team-meeting.md | 14 +++++++------- ...-22-upcoming-compiler-team-design-meetings.md | 14 +++++++------- posts/inside-rust/2019-11-25-const-if-match.md | 12 ++++++------ .../2019-12-02-const-prop-on-by-default.md | 14 +++++++------- .../2019-12-03-governance-wg-meeting.md | 12 ++++++------ posts/inside-rust/2019-12-04-ide-future.md | 12 ++++++------ .../2019-12-09-announcing-the-docsrs-team.md | 12 ++++++------ .../2019-12-10-governance-wg-meeting.md | 12 ++++++------ .../inside-rust/2019-12-11-infra-team-meeting.md | 12 ++++++------ .../2019-12-18-bisecting-rust-compiler.md | 12 ++++++------ ...er-and-wiser-full-members-of-compiler-team.md | 14 +++++++------- .../2019-12-20-governance-wg-meeting.md | 12 ++++++------ .../inside-rust/2019-12-20-infra-team-meeting.md | 12 ++++++------ .../inside-rust/2019-12-20-wg-learning-update.md | 12 ++++++------ .../2019-12-23-formatting-the-compiler.md | 14 +++++++------- posts/inside-rust/2020-01-10-cargo-in-2020.md | 14 +++++++------- .../2020-01-10-lang-team-design-meetings.md | 14 +++++++------- posts/inside-rust/2020-01-14-Goverance-wg-cfp.md | 12 ++++++------ ...01-23-Introducing-cargo-audit-fix-and-more.md | 14 +++++++------- .../2020-01-24-feb-lang-team-design-meetings.md | 14 +++++++------- ...-24-upcoming-compiler-team-design-meetings.md | 14 +++++++------- .../2020-02-06-Cleanup-Crew-ICE-breakers.md | 14 +++++++------- .../2020-02-07-compiler-team-meeting.md | 14 +++++++------- posts/inside-rust/2020-02-11-Goverance-wg.md | 12 ++++++------ ...-14-upcoming-compiler-team-design-meetings.md | 14 +++++++------- .../2020-02-20-jtgeibel-crates-io-co-lead.md | 14 +++++++------- .../2020-02-25-intro-rustc-self-profile.md | 14 +++++++------- .../2020-02-26-crates-io-incident-report.md | 12 ++++++------ posts/inside-rust/2020-02-27-Goverance-wg.md | 12 ++++++------ .../2020-02-27-ffi-unwind-design-meeting.md | 14 +++++++------- .../2020-02-27-pietro-joins-core-team.md | 12 ++++++------ ...ecent-future-pattern-matching-improvements.md | 14 +++++++------- .../2020-03-11-lang-team-design-meetings.md | 14 +++++++------- .../inside-rust/2020-03-13-rename-rustc-guide.md | 14 +++++++------- posts/inside-rust/2020-03-13-twir-new-lead.md | 12 ++++++------ ...-13-upcoming-compiler-team-design-meetings.md | 14 +++++++------- posts/inside-rust/2020-03-17-governance-wg.md | 12 ++++++------ .../2020-03-18-all-hands-retrospective.md | 12 ++++++------ posts/inside-rust/2020-03-19-terminating-rust.md | 14 +++++++------- .../2020-03-26-rustc-dev-guide-overview.md | 14 +++++++------- .../inside-rust/2020-03-27-goodbye-docs-team.md | 14 +++++++------- posts/inside-rust/2020-03-28-traits-sprint-1.md | 12 ++++++------ ...07-update-on-the-github-actions-evaluation.md | 12 ++++++------ .../2020-04-10-lang-team-design-meetings.md | 14 +++++++------- ...4-10-upcoming-compiler-team-design-meeting.md | 14 +++++++------- .../2020-04-14-Governance-WG-updated.md | 12 ++++++------ posts/inside-rust/2020-04-23-Governance-wg.md | 12 ++++++------ .../2020-05-08-lang-team-meetings-rescheduled.md | 14 +++++++------- posts/inside-rust/2020-05-18-traits-sprint-2.md | 12 ++++++------ .../2020-05-26-website-retrospective.md | 12 ++++++------ .../inside-rust/2020-05-27-contributor-survey.md | 14 +++++++------- posts/inside-rust/2020-06-08-new-inline-asm.md | 14 +++++++------- ...6-08-upcoming-compiler-team-design-meeting.md | 14 +++++++------- .../2020-06-09-windows-notification-group.md | 14 +++++++------- posts/inside-rust/2020-06-29-lto-improvements.md | 14 +++++++------- .../2020-07-02-Ownership-Std-Implementation.md | 12 ++++++------ ...2020-07-08-lang-team-design-meeting-update.md | 14 +++++++------- .../2020-07-09-lang-team-path-to-membership.md | 14 +++++++------- posts/inside-rust/2020-07-17-traits-sprint-3.md | 12 ++++++------ ...-07-23-rust-ci-is-moving-to-github-actions.md | 12 ++++++------ .../inside-rust/2020-07-27-1.45.1-prerelease.md | 12 ++++++------ ...2020-07-27-opening-up-the-core-team-agenda.md | 12 ++++++------ ...ang-team-design-meeting-min-const-generics.md | 14 +++++++------- ...20-07-29-lang-team-design-meeting-wf-types.md | 14 +++++++------- .../inside-rust/2020-08-24-1.46.0-prerelease.md | 12 ++++++------ ...-28-upcoming-compiler-team-design-meetings.md | 14 +++++++------- .../2020-08-30-changes-to-x-py-defaults.md | 12 ++++++------ .../2020-09-17-stabilizing-intra-doc-links.md | 12 ++++++------ .../2020-09-18-error-handling-wg-announcement.md | 14 +++++++------- posts/inside-rust/2020-09-29-Portable-SIMD-PG.md | 14 +++++++------- .../inside-rust/2020-10-06-1.47.0-prerelease.md | 12 ++++++------ .../2020-10-07-1.47.0-prerelease-2.md | 12 ++++++------ posts/inside-rust/2020-10-16-Backlog-Bonanza.md | 12 ++++++------ .../2020-10-23-Core-team-membership.md | 12 ++++++------ ...-11-11-exploring-pgo-for-the-rust-compiler.md | 14 +++++++------- .../2020-11-12-source-based-code-coverage.md | 12 ++++++------ .../2020-11-15-Using-rustc_codegen_cranelift.md | 12 ++++++------ .../inside-rust/2020-11-16-1.48.0-prerelease.md | 12 ++++++------ ...error-handling-project-group-is-working-on.md | 14 +++++++------- .../2020-12-14-changes-to-compiler-team.md | 14 +++++++------- ...ot-and-nadrieril-for-compiler-contributors.md | 14 +++++++------- .../inside-rust/2020-12-29-1.49.0-prerelease.md | 12 ++++++------ ...021-01-15-rustdoc-performance-improvements.md | 12 ++++++------ .../2021-01-19-changes-to-rustdoc-team.md | 14 +++++++------- .../inside-rust/2021-01-26-ffi-unwind-longjmp.md | 14 +++++++------- ...-02-01-davidtwco-jackhuey-compiler-members.md | 14 +++++++------- .../2021-02-03-lang-team-feb-update.md | 14 +++++++------- .../inside-rust/2021-02-09-1.50.0-prerelease.md | 12 ++++++------ .../2021-02-15-shrinkmem-rustc-sprint.md | 12 ++++++------ .../2021-03-03-lang-team-mar-update.md | 14 +++++++------- .../inside-rust/2021-03-04-planning-rust-2021.md | 12 ++++++------ .../inside-rust/2021-03-23-1.51.0-prerelease.md | 12 ++++++------ .../inside-rust/2021-04-03-core-team-updates.md | 12 ++++++------ ...1-04-15-compiler-team-april-steering-cycle.md | 14 +++++++------- .../2021-04-17-lang-team-apr-update.md | 14 +++++++------- .../2021-04-20-jsha-rustdoc-member.md | 14 +++++++------- .../2021-04-26-aaron-hill-compiler-team.md | 14 +++++++------- .../2021-04-28-rustup-1.24.0-incident-report.md | 12 ++++++------ .../inside-rust/2021-05-04-1.52.0-prerelease.md | 12 ++++++------ posts/inside-rust/2021-05-04-core-team-update.md | 12 ++++++------ posts/inside-rust/2021-06-15-1.53.0-prelease.md | 12 ++++++------ ...eulartichaut-the8472-compiler-contributors.md | 14 +++++++------- ...21-06-23-compiler-team-june-steering-cycle.md | 14 +++++++------- ...-handling-project-group-is-working-towards.md | 12 ++++++------ ...21-07-02-compiler-team-july-steering-cycle.md | 14 +++++++------- .../2021-07-12-Lang-team-july-update.md | 14 +++++++------- .../inside-rust/2021-07-26-1.54.0-prerelease.md | 12 ++++++------ ...-07-30-compiler-team-august-steering-cycle.md | 14 +++++++------- .../2021-08-04-lang-team-aug-update.md | 14 +++++++------- .../2021-09-06-Splitting-const-generics.md | 14 +++++++------- .../inside-rust/2021-09-07-1.55.0-prerelease.md | 12 ++++++------ .../2021-10-08-Lang-team-Oct-update.md | 14 +++++++------- .../inside-rust/2021-10-18-1.56.0-prerelease.md | 12 ++++++------ ...21-11-15-libs-contributors-the8472-kodraus.md | 14 +++++++------- ...esponse-to-the-moderation-team-resignation.md | 10 +++++----- .../inside-rust/2021-11-30-1.57.0-prerelease.md | 12 ++++++------ ...21-12-17-follow-up-on-the-moderation-issue.md | 12 ++++++------ .../inside-rust/2022-01-11-1.58.0-prerelease.md | 12 ++++++------ .../inside-rust/2022-01-18-jan-steering-cycle.md | 14 +++++++------- posts/inside-rust/2022-02-03-async-in-2022.md | 14 +++++++------- posts/inside-rust/2022-02-11-CTCFT-february.md | 10 +++++----- .../inside-rust/2022-02-17-feb-steering-cycle.md | 14 +++++++------- .../2022-02-18-lang-team-feb-update.md | 14 +++++++------- .../inside-rust/2022-02-22-1.59.0-prerelease.md | 12 ++++++------ .../2022-02-22-compiler-team-ambitions-2022.md | 14 +++++++------- .../2022-03-09-lang-team-mar-update.md | 14 +++++++------- .../inside-rust/2022-03-11-mar-steering-cycle.md | 14 +++++++------- posts/inside-rust/2022-03-16-CTCFT-march.md | 10 +++++----- .../inside-rust/2022-03-31-cargo-team-changes.md | 12 ++++++------ .../inside-rust/2022-04-04-1.60.0-prerelease.md | 12 ++++++------ .../inside-rust/2022-04-04-lang-roadmap-2024.md | 14 +++++++------- .../2022-04-06-lang-team-april-update.md | 14 +++++++------- posts/inside-rust/2022-04-12-CTCFT-april.md | 10 +++++----- .../inside-rust/2022-04-15-apr-steering-cycle.md | 14 +++++++------- .../inside-rust/2022-04-18-libs-contributors.md | 14 +++++++------- .../inside-rust/2022-04-19-imposter-syndrome.md | 12 ++++++------ posts/inside-rust/2022-04-20-libs-aspirations.md | 14 +++++++------- posts/inside-rust/2022-05-10-CTCFT-may.md | 10 +++++----- .../inside-rust/2022-05-16-1.61.0-prerelease.md | 12 ++++++------ .../inside-rust/2022-05-19-governance-update.md | 12 ++++++------ .../2022-05-26-Concluding-events-mods.md | 12 ++++++------ .../inside-rust/2022-06-03-jun-steering-cycle.md | 14 +++++++------- .../inside-rust/2022-06-21-survey-2021-report.md | 14 +++++++------- .../inside-rust/2022-06-28-1.62.0-prerelease.md | 12 ++++++------ .../2022-07-13-clippy-team-changes.md | 12 ++++++------ .../inside-rust/2022-07-16-1.62.1-prerelease.md | 14 +++++++------- posts/inside-rust/2022-07-27-keyword-generics.md | 12 ++++++------ ...22-08-08-compiler-team-2022-midyear-report.md | 14 +++++++------- .../inside-rust/2022-08-09-1.63.0-prerelease.md | 14 +++++++------- .../inside-rust/2022-08-10-libs-contributors.md | 12 ++++++------ .../inside-rust/2022-08-16-diagnostic-effort.md | 12 ++++++------ .../inside-rust/2022-09-19-1.64.0-prerelease.md | 14 +++++++------- ...09-23-compiler-team-sep-oct-steering-cycle.md | 14 +++++++------- .../2022-09-29-announcing-the-rust-style-team.md | 12 ++++++------ .../inside-rust/2022-10-06-governance-update.md | 12 ++++++------ .../inside-rust/2022-10-31-1.65.0-prerelease.md | 14 +++++++------- .../2022-11-17-async-fn-in-trait-nightly.md | 12 ++++++------ posts/inside-rust/2022-11-29-libs-member.md | 12 ++++++------ .../inside-rust/2022-12-12-1.66.0-prerelease.md | 14 +++++++------- .../2023-01-24-content-delivery-networks.md | 12 ++++++------ .../inside-rust/2023-01-25-1.67.0-prerelease.md | 14 +++++++------- .../2023-01-30-cargo-sparse-protocol.md | 12 ++++++------ .../inside-rust/2023-02-07-1.67.1-prerelease.md | 14 +++++++------- .../2023-02-08-dns-outage-portmortem.md | 12 ++++++------ ...023-02-10-compiler-team-feb-steering-cycle.md | 14 +++++++------- posts/inside-rust/2023-02-14-lang-advisors.md | 12 ++++++------ .../2023-02-14-lang-team-membership-update.md | 12 ++++++------ .../2023-02-22-governance-reform-rfc.md | 12 ++++++------ ...-keyword-generics-progress-report-feb-2023.md | 12 ++++++------ .../inside-rust/2023-03-06-1.68.0-prerelease.md | 14 +++++++------- .../inside-rust/2023-03-20-1.68.1-prerelease.md | 14 +++++++------- .../inside-rust/2023-03-27-1.68.2-prerelease.md | 14 +++++++------- .../inside-rust/2023-04-06-cargo-new-members.md | 12 ++++++------ ...2023-04-12-trademark-policy-draft-feedback.md | 10 +++++----- .../inside-rust/2023-04-17-1.69.0-prerelease.md | 14 +++++++------- posts/inside-rust/2023-05-01-cargo-postmortem.md | 12 ++++++------ .../2023-05-03-stabilizing-async-fn-in-trait.md | 12 ++++++------ posts/inside-rust/2023-05-09-api-token-scopes.md | 12 ++++++------ .../inside-rust/2023-05-29-1.70.0-prerelease.md | 14 +++++++------- .../inside-rust/2023-07-10-1.71.0-prerelease.md | 14 +++++++------- ...023-07-17-trait-system-refactor-initiative.md | 14 +++++++------- .../2023-07-21-crates-io-postmortem.md | 12 ++++++------ .../2023-07-25-leadership-council-update.md | 12 ++++++------ .../inside-rust/2023-08-01-1.71.1-prerelease.md | 14 +++++++------- .../2023-08-02-rotating-compiler-leads.md | 12 ++++++------ .../inside-rust/2023-08-21-1.72.0-prerelease.md | 14 +++++++------- .../2023-08-24-cargo-config-merging.md | 14 +++++++------- .../2023-08-25-leadership-initiatives.md | 12 ++++++------ ...8-29-leadership-council-membership-changes.md | 12 ++++++------ .../2023-09-01-crates-io-malware-postmortem.md | 12 ++++++------ ...09-04-keeping-secure-with-cargo-audit-0.18.md | 14 +++++++------- .../2023-09-08-infra-team-leadership-change.md | 12 ++++++------ .../inside-rust/2023-09-14-1.72.1-prerelease.md | 14 +++++++------- .../2023-09-22-project-director-nominees.md | 12 ++++++------ .../inside-rust/2023-10-03-1.73.0-prerelease.md | 14 +++++++------- posts/inside-rust/2023-10-06-polonius-update.md | 14 +++++++------- posts/inside-rust/2023-10-23-coroutines.md | 10 +++++----- .../inside-rust/2023-11-13-1.74.0-prerelease.md | 14 +++++++------- .../2023-11-13-leadership-council-update.md | 12 ++++++------ posts/inside-rust/2023-11-15-spec-vision.md | 12 ++++++------ .../inside-rust/2023-12-05-1.74.1-prerelease.md | 14 +++++++------- .../inside-rust/2023-12-21-1.75.0-prerelease.md | 14 +++++++------- ...023-12-22-trait-system-refactor-initiative.md | 14 +++++++------- ...01-03-this-development-cycle-in-cargo-1-76.md | 12 ++++++------ .../inside-rust/2024-02-04-1.76.0-prerelease.md | 14 +++++++------- posts/inside-rust/2024-02-13-lang-team-colead.md | 12 ++++++------ .../2024-02-13-leadership-council-update.md | 12 ++++++------ ...02-13-this-development-cycle-in-cargo-1-77.md | 12 ++++++------ ...24-02-19-leadership-council-repr-selection.md | 12 ++++++------ .../inside-rust/2024-03-17-1.77.0-prerelease.md | 14 +++++++------- .../2024-03-22-2024-edition-update.md | 12 ++++++------ ...03-26-this-development-cycle-in-cargo-1.78.md | 12 ++++++------ .../inside-rust/2024-03-27-1.77.1-prerelease.md | 14 +++++++------- ...24-04-01-leadership-council-repr-selection.md | 12 ++++++------ .../2024-04-12-types-team-leadership.md | 12 ++++++------ .../2024-05-07-announcing-project-goals.md | 12 ++++++------ ...05-07-this-development-cycle-in-cargo-1.79.md | 12 ++++++------ .../inside-rust/2024-05-09-rust-leads-summit.md | 10 +++++----- .../2024-05-14-leadership-council-update.md | 12 ++++++------ .../2024-05-28-launching-pad-representative.md | 12 ++++++------ ...06-19-this-development-cycle-in-cargo-1.80.md | 12 ++++++------ .../2024-08-01-welcome-tc-to-the-lang-team.md | 12 ++++++------ ...2024-08-09-async-closures-call-for-testing.md | 14 +++++++------- ...08-15-this-development-cycle-in-cargo-1.81.md | 12 ++++++------ ...24-08-20-leadership-council-repr-selection.md | 12 ++++++------ .../2024-08-22-embedded-wg-micro-survey.md | 12 ++++++------ posts/inside-rust/2024-09-02-all-hands.md | 12 ++++++------ .../2024-09-06-electing-new-project-directors.md | 12 ++++++------ .../2024-09-06-leadership-council-update.md | 12 ++++++------ .../2024-09-26-rtn-call-for-testing.md | 12 ++++++------ ...24-09-27-leadership-council-repr-selection.md | 12 ++++++------ ...10-01-this-development-cycle-in-cargo-1.82.md | 12 ++++++------ .../2024-10-10-test-infra-oct-2024.md | 12 ++++++------ ...10-31-this-development-cycle-in-cargo-1.83.md | 12 ++++++------ .../2024-11-01-compiler-team-reorg.md | 12 ++++++------ ...04-project-goals-2025h1-call-for-proposals.md | 12 ++++++------ .../2024-11-04-test-infra-oct-2024-2.md | 12 ++++++------ .../2024-11-12-compiler-team-new-members.md | 12 ++++++------ ...024-12-04-trait-system-refactor-initiative.md | 12 ++++++------ .../2024-12-09-leadership-council-update.md | 12 ++++++------ .../2024-12-09-test-infra-nov-2024.md | 12 ++++++------ ...12-13-this-development-cycle-in-cargo-1.84.md | 12 ++++++------ .../2024-12-17-project-director-update.md | 12 ++++++------ .../2025-01-10-test-infra-dec-2024.md | 12 ++++++------ ...01-17-this-development-cycle-in-cargo-1.85.md | 12 ++++++------ .../2025-01-30-project-director-update.md | 12 ++++++------ ...25-02-14-leadership-council-repr-selection.md | 12 ++++++------ .../2025-02-24-project-director-update.md | 14 +++++++------- .../2025-02-27-relnotes-interest-group.md | 12 ++++++------ ...02-27-this-development-cycle-in-cargo-1.86.md | 12 ++++++------ ...025-03-05-inferred-const-generic-arguments.md | 14 +++++++------- 584 files changed, 3543 insertions(+), 3543 deletions(-) diff --git a/posts/2014-09-15-Rust-1.0.md b/posts/2014-09-15-Rust-1.0.md index e6b0f5119..45055a940 100644 --- a/posts/2014-09-15-Rust-1.0.md +++ b/posts/2014-09-15-Rust-1.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Road to Rust 1.0" -author: Niko Matsakis -description: "Rust 1.0 is on its way! We have nailed down a concrete list of features and are hard at work on implementing them." ---- ++++ +layout = "post" +title = "Road to Rust 1.0" +author = "Niko Matsakis" +description = "Rust 1.0 is on its way! We have nailed down a concrete list of features and are hard at work on implementing them." ++++ Rust 1.0 is on its way! We have nailed down a concrete list of features and are hard at work on implementing them. We plan to ship diff --git a/posts/2014-10-30-Stability.md b/posts/2014-10-30-Stability.md index c5f299353..fc8be71ab 100644 --- a/posts/2014-10-30-Stability.md +++ b/posts/2014-10-30-Stability.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Stability as a Deliverable" -author: Aaron Turon and Niko Matsakis -description: "The upcoming Rust 1.0 release means a lot, but most fundamentally it is a commitment to stability, alongside our long-running commitment to safety." ---- ++++ +layout = "post" +title = "Stability as a Deliverable" +author = "Aaron Turon and Niko Matsakis" +description = "The upcoming Rust 1.0 release means a lot, but most fundamentally it is a commitment to stability, alongside our long-running commitment to safety." ++++ The upcoming Rust 1.0 release means [a lot](https://blog.rust-lang.org/2014/09/15/Rust-1.0.html), but most diff --git a/posts/2014-11-20-Cargo.md b/posts/2014-11-20-Cargo.md index cb83b7954..c8ce953fa 100644 --- a/posts/2014-11-20-Cargo.md +++ b/posts/2014-11-20-Cargo.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Cargo: Rust's community crate host" -author: Alex Crichton -description: "Today it is my pleasure to announce that crates.io is online and ready for action." ---- ++++ +layout = "post" +title = "Cargo: Rust's community crate host" +author = "Alex Crichton" +description = "Today it is my pleasure to announce that crates.io is online and ready for action." ++++ Today it is my pleasure to announce that [crates.io](https://crates.io/) is online and ready for action. The site is a central location to diff --git a/posts/2014-12-12-1.0-Timeline.md b/posts/2014-12-12-1.0-Timeline.md index c1edff816..331778f4c 100644 --- a/posts/2014-12-12-1.0-Timeline.md +++ b/posts/2014-12-12-1.0-Timeline.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust 1.0: Scheduling the trains" -author: Aaron Turon -description: "As 2014 is drawing to a close, it's time to begin the Rust 1.0 release cycle!" ---- ++++ +layout = "post" +title = "Rust 1.0: Scheduling the trains" +author = "Aaron Turon" +description = "As 2014 is drawing to a close, it's time to begin the Rust 1.0 release cycle!" ++++ As 2014 is drawing to a close, it's time to begin the Rust 1.0 release cycle! diff --git a/posts/2014-12-12-Core-Team.md b/posts/2014-12-12-Core-Team.md index ad331743e..240ff79d7 100644 --- a/posts/2014-12-12-Core-Team.md +++ b/posts/2014-12-12-Core-Team.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Yehuda Katz and Steve Klabnik are joining the Rust Core Team -author: Niko Matsakis -description: "I'm pleased to announce that Yehuda Katz and Steve Klabnik are joining the Rust core team." ---- ++++ +layout = "post" +title = "Yehuda Katz and Steve Klabnik are joining the Rust Core Team" +author = "Niko Matsakis" +description = "I'm pleased to announce that Yehuda Katz and Steve Klabnik are joining the Rust core team." ++++ I'm pleased to announce that Yehuda Katz and Steve Klabnik are joining the [Rust core team]. Both of them are not only active and engaged diff --git a/posts/2015-01-09-Rust-1.0-alpha.md b/posts/2015-01-09-Rust-1.0-alpha.md index 1f26a5193..d082c6ac8 100644 --- a/posts/2015-01-09-Rust-1.0-alpha.md +++ b/posts/2015-01-09-Rust-1.0-alpha.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rust 1.0 Alpha" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Announcing Rust 1.0 Alpha" +author = "The Rust Core Team" ++++ Today, we're excited to [release](https://www.rust-lang.org/install.html) the alpha version of Rust 1.0, a systems programming language with a focus on safety, performance and concurrency. diff --git a/posts/2015-02-13-Final-1.0-timeline.md b/posts/2015-02-13-Final-1.0-timeline.md index 98b8c2a55..04ceccd2b 100644 --- a/posts/2015-02-13-Final-1.0-timeline.md +++ b/posts/2015-02-13-Final-1.0-timeline.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust 1.0: status report and final timeline" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Rust 1.0: status report and final timeline" +author = "The Rust Core Team" ++++ It's been five weeks since we released Rust 1.0-alpha! Before this release cycle finishes next week, we want to give a status report and diff --git a/posts/2015-02-20-Rust-1.0-alpha2.md b/posts/2015-02-20-Rust-1.0-alpha2.md index 26d563997..ad909b6f4 100644 --- a/posts/2015-02-20-Rust-1.0-alpha2.md +++ b/posts/2015-02-20-Rust-1.0-alpha2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.0.0.alpha.2" -author: Steve Klabnik -description: "Rust 1.0.0.alpha.2 has been released." ---- ++++ +layout = "post" +title = "Announcing Rust 1.0.0.alpha.2" +author = "Steve Klabnik" +description = "Rust 1.0.0.alpha.2 has been released." ++++ Today, we are happy to announce the release of Rust 1.0.0.alpha.2! Rust is a systems programming language pursuing the trifecta: safe, fast, and concurrent. diff --git a/posts/2015-04-03-Rust-1.0-beta.md b/posts/2015-04-03-Rust-1.0-beta.md index e5db8eafa..dadee3c0f 100644 --- a/posts/2015-04-03-Rust-1.0-beta.md +++ b/posts/2015-04-03-Rust-1.0-beta.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rust 1.0 Beta" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Announcing Rust 1.0 Beta" +author = "The Rust Core Team" ++++ Today we are excited to announce the [release of Rust 1.0 beta][ru]! The beta release marks a very significant "state transition" in the diff --git a/posts/2015-04-10-Fearless-Concurrency.md b/posts/2015-04-10-Fearless-Concurrency.md index cb68fc5a1..6f6c82e86 100644 --- a/posts/2015-04-10-Fearless-Concurrency.md +++ b/posts/2015-04-10-Fearless-Concurrency.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Fearless Concurrency with Rust" -author: Aaron Turon -description: "Rust's vision for concurrency" ---- ++++ +layout = "post" +title = "Fearless Concurrency with Rust" +author = "Aaron Turon" +description = "Rust's vision for concurrency" ++++ The Rust project was initiated to solve two thorny problems: diff --git a/posts/2015-04-17-Enums-match-mutation-and-moves.md b/posts/2015-04-17-Enums-match-mutation-and-moves.md index 31a88d9e8..52fdc7cd8 100644 --- a/posts/2015-04-17-Enums-match-mutation-and-moves.md +++ b/posts/2015-04-17-Enums-match-mutation-and-moves.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Mixing matching, mutation, and moves in Rust" -author: Felix S. Klock II -description: "A tour of matching and enums in Rust." ---- ++++ +layout = "post" +title = "Mixing matching, mutation, and moves in Rust" +author = "Felix S. Klock II" +description = "A tour of matching and enums in Rust." ++++ One of the primary goals of the Rust project is to enable safe systems programming. Systems programming usually implies imperative diff --git a/posts/2015-04-24-Rust-Once-Run-Everywhere.md b/posts/2015-04-24-Rust-Once-Run-Everywhere.md index 149fb755f..1665d37ca 100644 --- a/posts/2015-04-24-Rust-Once-Run-Everywhere.md +++ b/posts/2015-04-24-Rust-Once-Run-Everywhere.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust Once, Run Everywhere" -author: Alex Crichton -description: "Zero-cost and safe FFI in Rust" ---- ++++ +layout = "post" +title = "Rust Once, Run Everywhere" +author = "Alex Crichton" +description = "Zero-cost and safe FFI in Rust" ++++ Rust's quest for world domination was never destined to happen overnight, so Rust needs to be able to interoperate with the existing world just as easily as diff --git a/posts/2015-05-11-traits.md b/posts/2015-05-11-traits.md index 28ab0b646..b4c3903b4 100644 --- a/posts/2015-05-11-traits.md +++ b/posts/2015-05-11-traits.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Abstraction without overhead: traits in Rust" -author: Aaron Turon -description: "The vision of Rust's traits for zero-cost abstraction" ---- ++++ +layout = "post" +title = "Abstraction without overhead: traits in Rust" +author = "Aaron Turon" +description = "The vision of Rust's traits for zero-cost abstraction" ++++ [Previous posts][fearless] have covered two pillars of Rust's design: diff --git a/posts/2015-05-15-Rust-1.0.md b/posts/2015-05-15-Rust-1.0.md index 4ab323c2e..5af676d08 100644 --- a/posts/2015-05-15-Rust-1.0.md +++ b/posts/2015-05-15-Rust-1.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.0" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.0" +author = "The Rust Core Team" +release = true ++++ Today we are very proud to announce the [1.0 release of Rust][relnotes], a new programming language aiming to diff --git a/posts/2015-06-25-Rust-1.1.md b/posts/2015-06-25-Rust-1.1.md index 86466cc11..524ad9f7f 100644 --- a/posts/2015-06-25-Rust-1.1.md +++ b/posts/2015-06-25-Rust-1.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust 1.1 stable, the Community Subteam, and RustCamp" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Rust 1.1 stable, the Community Subteam, and RustCamp" +author = "The Rust Core Team" +release = true ++++ We're happy to announce the completion of the first release cycle after Rust 1.0: today we are [releasing][install] Rust 1.1 stable, as well as 1.2 beta. diff --git a/posts/2015-08-06-Rust-1.2.md b/posts/2015-08-06-Rust-1.2.md index 028e8f08a..15dc1266b 100644 --- a/posts/2015-08-06-Rust-1.2.md +++ b/posts/2015-08-06-Rust-1.2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.2" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.2" +author = "The Rust Core Team" +release = true ++++ Today marks the [completion][install] of the Rust 1.2 stable and 1.3 beta release cycles! Read on for the highlight, or check the [release notes][notes] diff --git a/posts/2015-08-14-Next-year.md b/posts/2015-08-14-Next-year.md index 57066e2a2..65cbb832c 100644 --- a/posts/2015-08-14-Next-year.md +++ b/posts/2015-08-14-Next-year.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust in 2016" -author: Nicholas Matsakis and Aaron Turon -description: "Our vision for Rust's next year" ---- ++++ +layout = "post" +title = "Rust in 2016" +author = "Nicholas Matsakis and Aaron Turon" +description = "Our vision for Rust's next year" ++++ This week marks three months since Rust 1.0 was released. As we're starting to hit our post-1.0 stride, we'd like to talk about **what 1.0 meant in hindsight, diff --git a/posts/2015-09-17-Rust-1.3.md b/posts/2015-09-17-Rust-1.3.md index 864eaefe2..e12cd9aba 100644 --- a/posts/2015-09-17-Rust-1.3.md +++ b/posts/2015-09-17-Rust-1.3.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.3" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.3" +author = "The Rust Core Team" +release = true ++++ The gear keeps turning: we're releasing Rust 1.3 stable today! As always, read on for the highlights and check the [release notes][notes] for more detail. diff --git a/posts/2015-10-29-Rust-1.4.md b/posts/2015-10-29-Rust-1.4.md index 961dd7112..d0cfffb04 100644 --- a/posts/2015-10-29-Rust-1.4.md +++ b/posts/2015-10-29-Rust-1.4.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.4" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.4" +author = "The Rust Core Team" +release = true ++++ Choo choo! The trains have kept rolling, and today, we’re happy to announce the release of Rust 1.4, the newest stable release. Rust is a systems programming diff --git a/posts/2015-12-10-Rust-1.5.md b/posts/2015-12-10-Rust-1.5.md index b50b73233..5a44774fa 100644 --- a/posts/2015-12-10-Rust-1.5.md +++ b/posts/2015-12-10-Rust-1.5.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.5" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.5" +author = "The Rust Core Team" +release = true ++++ Today we're releasing [Rust 1.5 stable][install]. This post gives the highlights, and you can find the full details in the diff --git a/posts/2016-01-21-Rust-1.6.md b/posts/2016-01-21-Rust-1.6.md index 87220f7ab..e0f838d04 100644 --- a/posts/2016-01-21-Rust-1.6.md +++ b/posts/2016-01-21-Rust-1.6.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.6" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.6" +author = "The Rust Core Team" +release = true ++++ Hello 2016! We’re happy to announce the first Rust release of the year, 1.6. Rust is a systems programming language focused on safety, speed, and diff --git a/posts/2016-03-02-Rust-1.7.md b/posts/2016-03-02-Rust-1.7.md index 7aeb75fe6..510e2a9e1 100644 --- a/posts/2016-03-02-Rust-1.7.md +++ b/posts/2016-03-02-Rust-1.7.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.7" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.7" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.7. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2016-04-14-Rust-1.8.md b/posts/2016-04-14-Rust-1.8.md index 08e1fce51..44618edf9 100644 --- a/posts/2016-04-14-Rust-1.8.md +++ b/posts/2016-04-14-Rust-1.8.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.8" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.8" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.8. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2016-04-19-MIR.md b/posts/2016-04-19-MIR.md index 168c31823..22b6c64ed 100644 --- a/posts/2016-04-19-MIR.md +++ b/posts/2016-04-19-MIR.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Introducing MIR" -author: Niko Matsakis -description: "The shift to use MIR in the compiler should unlock many exciting improvements." ---- ++++ +layout = "post" +title = "Introducing MIR" +author = "Niko Matsakis" +description = "The shift to use MIR in the compiler should unlock many exciting improvements." ++++ We are in the final stages of a grand transformation on the Rust compiler internals. Over the past year or so, we have been steadily diff --git a/posts/2016-05-05-cargo-pillars.md b/posts/2016-05-05-cargo-pillars.md index 6b0d77d75..5f4b08dca 100644 --- a/posts/2016-05-05-cargo-pillars.md +++ b/posts/2016-05-05-cargo-pillars.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Cargo: predictable dependency management" -author: Yehuda Katz -description: "Cargo makes dependency management in Rust easy and predictable" ---- ++++ +layout = "post" +title = "Cargo: predictable dependency management" +author = "Yehuda Katz" +description = "Cargo makes dependency management in Rust easy and predictable" ++++ Cargo's goal is to make modern application package management a core value of the Rust programming language. diff --git a/posts/2016-05-09-survey.md b/posts/2016-05-09-survey.md index fe9a4d20b..c02ab036c 100644 --- a/posts/2016-05-09-survey.md +++ b/posts/2016-05-09-survey.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Launching the 2016 State of Rust Survey" -author: The Rust Community Team -description: "Hearing from you about the first year of Rust" ---- ++++ +layout = "post" +title = "Launching the 2016 State of Rust Survey" +author = "The Rust Community Team" +description = "Hearing from you about the first year of Rust" ++++ Rust's first birthday is upon us (on May 15th, 2016), and we want to take this opportunity to reflect on where we've been, and where we're going. The Rust core diff --git a/posts/2016-05-13-rustup.md b/posts/2016-05-13-rustup.md index 9187e1aa9..91650a25d 100644 --- a/posts/2016-05-13-rustup.md +++ b/posts/2016-05-13-rustup.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Taking Rust everywhere with rustup" -author: Brian Anderson -description: "The rustup toolchain manager makes cross-compilation in Rust a breeze" ---- ++++ +layout = "post" +title = "Taking Rust everywhere with rustup" +author = "Brian Anderson" +description = "The rustup toolchain manager makes cross-compilation in Rust a breeze" ++++ *Cross-compilation* is an imposing term for a common kind of desire: diff --git a/posts/2016-05-16-rust-at-one-year.md b/posts/2016-05-16-rust-at-one-year.md index e60294e38..37746b405 100644 --- a/posts/2016-05-16-rust-at-one-year.md +++ b/posts/2016-05-16-rust-at-one-year.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "One year of Rust" -author: Aaron Turon -description: "Rust's trajectory one year after 1.0" ---- ++++ +layout = "post" +title = "One year of Rust" +author = "Aaron Turon" +description = "Rust's trajectory one year after 1.0" ++++ Rust is a language that gives you: diff --git a/posts/2016-05-26-Rust-1.9.md b/posts/2016-05-26-Rust-1.9.md index 924d3ab7d..d297028cc 100644 --- a/posts/2016-05-26-Rust-1.9.md +++ b/posts/2016-05-26-Rust-1.9.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.9" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.9" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.9. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2016-06-30-State-of-Rust-Survey-2016.md b/posts/2016-06-30-State-of-Rust-Survey-2016.md index 79b40da01..5666816cb 100644 --- a/posts/2016-06-30-State-of-Rust-Survey-2016.md +++ b/posts/2016-06-30-State-of-Rust-Survey-2016.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "State of Rust Survey 2016" -author: Jonathan Turner ---- ++++ +layout = "post" +title = "State of Rust Survey 2016" +author = "Jonathan Turner" ++++ We recently wrapped up with a survey for the Rust community. Little did we know that it would grow to be one of the largest language community surveys. A *huge* thank you to the **3,086** people who responded! We're humbled by the response, and we're thankful for all the great feedback. diff --git a/posts/2016-07-07-Rust-1.10.md b/posts/2016-07-07-Rust-1.10.md index f9f1aef6b..024e5eae9 100644 --- a/posts/2016-07-07-Rust-1.10.md +++ b/posts/2016-07-07-Rust-1.10.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.10" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.10" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.10. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2016-07-25-conf-lineup.md b/posts/2016-07-25-conf-lineup.md index 67c314423..69e75a161 100644 --- a/posts/2016-07-25-conf-lineup.md +++ b/posts/2016-07-25-conf-lineup.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The 2016 Rust Conference Lineup" -author: Rust Community -description: "Three Rust conferences are coming up soon; join us at one near you!" ---- ++++ +layout = "post" +title = "The 2016 Rust Conference Lineup" +author = "Rust Community" +description = "Three Rust conferences are coming up soon; join us at one near you!" ++++ The Rust Community is holding three major conferences in the near future, and we wanted to give a shout-out to each, now that all of the lineups are fully diff --git a/posts/2016-08-10-Shape-of-errors-to-come.md b/posts/2016-08-10-Shape-of-errors-to-come.md index 8a778ca57..b200afea7 100644 --- a/posts/2016-08-10-Shape-of-errors-to-come.md +++ b/posts/2016-08-10-Shape-of-errors-to-come.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Shape of errors to come" -author: Sophia June Turner ---- ++++ +layout = "post" +title = "Shape of errors to come" +author = "Sophia June Turner" ++++ There are changes afoot in the Rust world. If you've tried out the latest nightly, you'll notice something is *a little different*. For the past few months we've been working on new way of diff --git a/posts/2016-08-18-Rust-1.11.md b/posts/2016-08-18-Rust-1.11.md index 10a94b7b4..e3a792922 100644 --- a/posts/2016-08-18-Rust-1.11.md +++ b/posts/2016-08-18-Rust-1.11.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.11" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.11" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.11. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2016-09-08-incremental.md b/posts/2016-09-08-incremental.md index fe4d6eefe..a263afc67 100644 --- a/posts/2016-09-08-incremental.md +++ b/posts/2016-09-08-incremental.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Incremental Compilation" -author: Michael Woerister -description: "Incremental compilation for exponential joy and happiness." ---- ++++ +layout = "post" +title = "Incremental Compilation" +author = "Michael Woerister" +description = "Incremental compilation for exponential joy and happiness." ++++ I remember when, during the 1.0 anniversary presentation at the [Bay Area Meetup][meetup], Aaron Turon talked about Dropbox so far having been diff --git a/posts/2016-09-29-Rust-1.12.md b/posts/2016-09-29-Rust-1.12.md index f90d18293..bfdcff7e5 100644 --- a/posts/2016-09-29-Rust-1.12.md +++ b/posts/2016-09-29-Rust-1.12.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.12" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.12" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.12. Rust is a systems programming language with the slogan "fast, reliable, productive: diff --git a/posts/2016-10-20-Rust-1.12.1.md b/posts/2016-10-20-Rust-1.12.1.md index e8b981c99..cef34f3bc 100644 --- a/posts/2016-10-20-Rust-1.12.1.md +++ b/posts/2016-10-20-Rust-1.12.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.12.1" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.12.1" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.12.1. Rust is a systems programming language with a focus on reliability, performance, and diff --git a/posts/2016-11-10-Rust-1.13.md b/posts/2016-11-10-Rust-1.13.md index a92278a03..cdf26234a 100644 --- a/posts/2016-11-10-Rust-1.13.md +++ b/posts/2016-11-10-Rust-1.13.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.13" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.13" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.13.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2016-12-15-Underhanded-Rust.md b/posts/2016-12-15-Underhanded-Rust.md index 04bfcc7b7..d29434acf 100644 --- a/posts/2016-12-15-Underhanded-Rust.md +++ b/posts/2016-12-15-Underhanded-Rust.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing the First Underhanded Rust Contest" -author: The Rust Community Team ---- ++++ +layout = "post" +title = "Announcing the First Underhanded Rust Contest" +author = "The Rust Community Team" ++++ The [Rust Community Team](https://community.rs) is pleased to announce the first annual Underhanded Rust Contest, inspired by the [Underhanded diff --git a/posts/2016-12-22-Rust-1.14.md b/posts/2016-12-22-Rust-1.14.md index 0b7411f35..d3f0a0aae 100644 --- a/posts/2016-12-22-Rust-1.14.md +++ b/posts/2016-12-22-Rust-1.14.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.14" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.14" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.14.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2017-02-02-Rust-1.15.md b/posts/2017-02-02-Rust-1.15.md index 44753ce97..74c17e165 100644 --- a/posts/2017-02-02-Rust-1.15.md +++ b/posts/2017-02-02-Rust-1.15.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.15" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.15" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.15.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2017-02-06-roadmap.md b/posts/2017-02-06-roadmap.md index e512c259a..a88f7301e 100644 --- a/posts/2017-02-06-roadmap.md +++ b/posts/2017-02-06-roadmap.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust's 2017 roadmap" -author: Aaron Turon -description: "What the Rust community hopes to get done in 2017" ---- ++++ +layout = "post" +title = "Rust's 2017 roadmap" +author = "Aaron Turon" +description = "What the Rust community hopes to get done in 2017" ++++ Starting with 2017, Rust is following an [open roadmap process] for setting our aims for the year. The process is coordinated with [the survey] and diff --git a/posts/2017-02-09-Rust-1.15.1.md b/posts/2017-02-09-Rust-1.15.1.md index 33104e250..1c3fd23f7 100644 --- a/posts/2017-02-09-Rust-1.15.1.md +++ b/posts/2017-02-09-Rust-1.15.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.15.1" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.15.1" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.15.1. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2017-03-02-lang-ergonomics.md b/posts/2017-03-02-lang-ergonomics.md index e52fd85de..f94e8b2aa 100644 --- a/posts/2017-03-02-lang-ergonomics.md +++ b/posts/2017-03-02-lang-ergonomics.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust's language ergonomics initiative" -author: Aaron Turon -description: "Ergonomics, learnability, and the fact that sometimes implicit is better" ---- ++++ +layout = "post" +title = "Rust's language ergonomics initiative" +author = "Aaron Turon" +description = "Ergonomics, learnability, and the fact that sometimes implicit is better" ++++ To help bring our [2017 vision for Rust] to fruition, the Rust subteams are launching initiatives targeted at specific roadmap goals. **This post covers the diff --git a/posts/2017-03-16-Rust-1.16.md b/posts/2017-03-16-Rust-1.16.md index 0612f8d2f..4c36d2b47 100644 --- a/posts/2017-03-16-Rust-1.16.md +++ b/posts/2017-03-16-Rust-1.16.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.16" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.16" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.16.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2017-04-27-Rust-1.17.md b/posts/2017-04-27-Rust-1.17.md index 88c81b3f5..1b85e5e6a 100644 --- a/posts/2017-04-27-Rust-1.17.md +++ b/posts/2017-04-27-Rust-1.17.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.17" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.17" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.17.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2017-05-03-survey.md b/posts/2017-05-03-survey.md index 0fe8184ee..99111b003 100644 --- a/posts/2017-05-03-survey.md +++ b/posts/2017-05-03-survey.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Launching the 2017 State of Rust Survey" -author: The Rust Community Team -description: "Hearing from you about the second year of Rust" ---- ++++ +layout = "post" +title = "Launching the 2017 State of Rust Survey" +author = "The Rust Community Team" +description = "Hearing from you about the second year of Rust" ++++ Rust's second birthday is a little less than two weeks away (May 15th, 2017), so it's time for us to reflect on our progress over the past year, and how we diff --git a/posts/2017-05-05-libz-blitz.md b/posts/2017-05-05-libz-blitz.md index 14bc826c8..ef798bb3a 100644 --- a/posts/2017-05-05-libz-blitz.md +++ b/posts/2017-05-05-libz-blitz.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The Rust Libz Blitz" -author: Brian Anderson, David Tolnay, and Aaron Turon -description: "Improving the quality and maturity of Rust's core ecosystem" ---- ++++ +layout = "post" +title = "The Rust Libz Blitz" +author = "Brian Anderson, David Tolnay, and Aaron Turon" +description = "Improving the quality and maturity of Rust's core ecosystem" ++++ To help bring our [2017 vision for Rust] to fruition, the Rust subteams are launching initiatives targeted at specific roadmap goals. **This post covers the diff --git a/posts/2017-05-15-rust-at-two-years.md b/posts/2017-05-15-rust-at-two-years.md index b63a5c95a..e52447655 100644 --- a/posts/2017-05-15-rust-at-two-years.md +++ b/posts/2017-05-15-rust-at-two-years.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Two years of Rust" -author: Carol (Nichols || Goulding) -description: "Rust, two years after 1.0" ---- ++++ +layout = "post" +title = "Two years of Rust" +author = "Carol (Nichols || Goulding)" +description = "Rust, two years after 1.0" ++++ Rust is a language for confident, productive systems programming. It aims to make systems programming accessible to a wider audience, and to raise the diff --git a/posts/2017-06-08-Rust-1.18.md b/posts/2017-06-08-Rust-1.18.md index b257944ab..d373bbb52 100644 --- a/posts/2017-06-08-Rust-1.18.md +++ b/posts/2017-06-08-Rust-1.18.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.18" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.18" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.18.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2017-06-27-Increasing-Rusts-Reach.md b/posts/2017-06-27-Increasing-Rusts-Reach.md index 5464d2ec9..ed3a2429a 100644 --- a/posts/2017-06-27-Increasing-Rusts-Reach.md +++ b/posts/2017-06-27-Increasing-Rusts-Reach.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Increasing Rust’s Reach" -author: Carol Nichols ---- ++++ +layout = "post" +title = "Increasing Rust’s Reach" +author = "Carol Nichols" ++++ **EDIT: We've heard that Google Forms is not easily accessible in all countries; if that applies to you, please find the [application's questions in this text file](../../../images/2017-06-Increasing-Rusts-Reach/application.txt) and send the answers via email to carol.nichols@gmail.com.** diff --git a/posts/2017-07-05-Rust-Roadmap-Update.md b/posts/2017-07-05-Rust-Roadmap-Update.md index 447d18cf7..ce09d1750 100644 --- a/posts/2017-07-05-Rust-Roadmap-Update.md +++ b/posts/2017-07-05-Rust-Roadmap-Update.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust's 2017 roadmap, six months in" -author: Nicholas Matsakis ---- ++++ +layout = "post" +title = "Rust's 2017 roadmap, six months in" +author = "Nicholas Matsakis" ++++ In January of this year, we adopted the [2017 Rust Roadmap][rr], which laid out our plans for 2017. As part of the roadmap process, we plan diff --git a/posts/2017-07-18-conf-lineup.md b/posts/2017-07-18-conf-lineup.md index f0b69ca57..5b05b92be 100644 --- a/posts/2017-07-18-conf-lineup.md +++ b/posts/2017-07-18-conf-lineup.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The 2017 Rust Conference Lineup" -author: Rust Community -description: "Three Rust conferences are coming up soon; join us at one near you!" ---- ++++ +layout = "post" +title = "The 2017 Rust Conference Lineup" +author = "Rust Community" +description = "Three Rust conferences are coming up soon; join us at one near you!" ++++ The Rust Community is holding three major conferences in the near future! diff --git a/posts/2017-07-20-Rust-1.19.md b/posts/2017-07-20-Rust-1.19.md index 87faa21d8..6336da132 100644 --- a/posts/2017-07-20-Rust-1.19.md +++ b/posts/2017-07-20-Rust-1.19.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.19" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.19" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.19.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2017-08-31-Rust-1.20.md b/posts/2017-08-31-Rust-1.20.md index 5c47b265f..a6fa7ef8a 100644 --- a/posts/2017-08-31-Rust-1.20.md +++ b/posts/2017-08-31-Rust-1.20.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.20" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.20" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.20.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2017-09-05-Rust-2017-Survey-Results.md b/posts/2017-09-05-Rust-2017-Survey-Results.md index a27ead0a3..4ec18cb18 100644 --- a/posts/2017-09-05-Rust-2017-Survey-Results.md +++ b/posts/2017-09-05-Rust-2017-Survey-Results.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust 2017 Survey Results" -author: Jonathan Turner ---- ++++ +layout = "post" +title = "Rust 2017 Survey Results" +author = "Jonathan Turner" ++++ It's that time of the year, where we take a good look at how things are going by asking the community at large -- both Rust users and non-users. And wow, did you respond! diff --git a/posts/2017-09-18-impl-future-for-rust.md b/posts/2017-09-18-impl-future-for-rust.md index a7f3fc62d..dc738a2be 100644 --- a/posts/2017-09-18-impl-future-for-rust.md +++ b/posts/2017-09-18-impl-future-for-rust.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "impl Future for Rust" -author: Aaron Turon -description: "The Rust community is going to finish out its 2017 roadmap with a bang—and we want your help!" ---- ++++ +layout = "post" +title = "impl Future for Rust" +author = "Aaron Turon" +description = "The Rust community is going to finish out its 2017 roadmap with a bang—and we want your help!" ++++ The Rust community has been hard at work on our [2017 roadmap], but as we come up on the final quarter of the year, we're going to kick it into high gear—and diff --git a/posts/2017-10-12-Rust-1.21.md b/posts/2017-10-12-Rust-1.21.md index 8d83ad47e..1905a249c 100644 --- a/posts/2017-10-12-Rust-1.21.md +++ b/posts/2017-10-12-Rust-1.21.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.21" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.21" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce the latest version of Rust, 1.21.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md b/posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md index 3ba49214e..b9eebb48b 100644 --- a/posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md +++ b/posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Fearless Concurrency in Firefox Quantum" -author: "Manish Goregaokar" ---- ++++ +layout = "post" +title = "Fearless Concurrency in Firefox Quantum" +author = "Manish Goregaokar" ++++ These days, Rust is used for [all kinds of things][friends]. But its founding application was [Servo], an experimental browser engine. diff --git a/posts/2017-11-22-Rust-1.22.md b/posts/2017-11-22-Rust-1.22.md index db40fe999..41203a91d 100644 --- a/posts/2017-11-22-Rust-1.22.md +++ b/posts/2017-11-22-Rust-1.22.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.22 (and 1.22.1)" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.22 (and 1.22.1)" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce *two* new versions of Rust, 1.22.0 and 1.22.1. Rust is a systems programming language focused on safety, speed, and diff --git a/posts/2017-12-21-rust-in-2017.md b/posts/2017-12-21-rust-in-2017.md index 9afdf315d..1a77270c7 100644 --- a/posts/2017-12-21-rust-in-2017.md +++ b/posts/2017-12-21-rust-in-2017.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust in 2017: what we achieved" -author: Aaron Turon ---- ++++ +layout = "post" +title = "Rust in 2017: what we achieved" +author = "Aaron Turon" ++++ Rust’s development in 2017 fit into a single overarching theme: **increasing productivity, especially for newcomers to Rust**. From tooling to libraries to documentation to the core language, we wanted to make it easier to get things done with Rust. That desire led to [a roadmap](https://blog.rust-lang.org/2017/02/06/roadmap.html) for the year, setting out 8 high-level objectives that would guide the work of the team. diff --git a/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md b/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md index 6e833c7d0..ebe86b20c 100644 --- a/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md +++ b/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md @@ -1,8 +1,8 @@ ---- -title: "New Year's Rust: A Call for Community Blogposts" -author: "The Rust Core Team" -layout: post ---- ++++ +title = "New Year's Rust: A Call for Community Blogposts" +author = "The Rust Core Team" +layout = "post" ++++ 'Tis the season for people and communities to reflect and set goals- and the Rust team is no different. Last month, we published [a blogpost about our accomplishments in 2017], diff --git a/posts/2018-01-04-Rust-1.23.md b/posts/2018-01-04-Rust-1.23.md index dcdb24a86..dcebfea23 100644 --- a/posts/2018-01-04-Rust-1.23.md +++ b/posts/2018-01-04-Rust-1.23.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.23" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.23" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.23.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-01-31-The-2018-Rust-Event-Lineup.md b/posts/2018-01-31-The-2018-Rust-Event-Lineup.md index 30e7a5932..27273f4be 100644 --- a/posts/2018-01-31-The-2018-Rust-Event-Lineup.md +++ b/posts/2018-01-31-The-2018-Rust-Event-Lineup.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The 2018 Rust Event Lineup" -author: Rust Community -description: "Lots of Rust events are happening this year; join us at one near you!" ---- ++++ +layout = "post" +title = "The 2018 Rust Event Lineup" +author = "Rust Community" +description = "Lots of Rust events are happening this year; join us at one near you!" ++++ Every year there are multiple Rust events around the world, bringing together the community. Despite being early in the year, we're excited to be able to highlight several events diff --git a/posts/2018-02-15-Rust-1.24.md b/posts/2018-02-15-Rust-1.24.md index c6e9e8483..8dd1e529b 100644 --- a/posts/2018-02-15-Rust-1.24.md +++ b/posts/2018-02-15-Rust-1.24.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.24" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.24" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.24.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-03-01-Rust-1.24.1.md b/posts/2018-03-01-Rust-1.24.1.md index 72f5ecddc..fdf947614 100644 --- a/posts/2018-03-01-Rust-1.24.1.md +++ b/posts/2018-03-01-Rust-1.24.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.24.1" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.24.1" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.24.1. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-03-12-roadmap.md b/posts/2018-03-12-roadmap.md index 5d41702b2..daac4af4e 100644 --- a/posts/2018-03-12-roadmap.md +++ b/posts/2018-03-12-roadmap.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust's 2018 roadmap" -author: "The Rust Core Team" ---- ++++ +layout = "post" +title = "Rust's 2018 roadmap" +author = "The Rust Core Team" ++++ Each year the Rust community [comes together][roadmap-process] to set out a roadmap. This year, in addition to the [survey], we put out diff --git a/posts/2018-03-29-Rust-1.25.md b/posts/2018-03-29-Rust-1.25.md index e2cd21c21..af88c40eb 100644 --- a/posts/2018-03-29-Rust-1.25.md +++ b/posts/2018-03-29-Rust-1.25.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.25" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.25" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.25.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-04-02-Increasing-Rusts-Reach-2018.md b/posts/2018-04-02-Increasing-Rusts-Reach-2018.md index 8fc9fd943..60b1c0d8b 100644 --- a/posts/2018-04-02-Increasing-Rusts-Reach-2018.md +++ b/posts/2018-04-02-Increasing-Rusts-Reach-2018.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Increasing Rust’s Reach 2018" -author: Ashley Williams ---- ++++ +layout = "post" +title = "Increasing Rust’s Reach 2018" +author = "Ashley Williams" ++++ The Rust team is happy to announce that we're running our Increasing Rust's Reach program [again] this year. Increasing Rust's Reach is one of several programs run by diff --git a/posts/2018-04-06-all-hands.md b/posts/2018-04-06-all-hands.md index 6eaacbaa5..cbb38dfa7 100644 --- a/posts/2018-04-06-all-hands.md +++ b/posts/2018-04-06-all-hands.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "The Rust Team All Hands in Berlin: a Recap" -author: Aaron Turon ---- ++++ +layout = "post" +title = "The Rust Team All Hands in Berlin: a Recap" +author = "Aaron Turon" ++++ Last week we held an "All Hands" event in Berlin, which drew more than 50 people involved in 15 different Rust Teams or Working Groups, with a majority being diff --git a/posts/2018-05-10-Rust-1.26.md b/posts/2018-05-10-Rust-1.26.md index 07562528c..e1128cece 100644 --- a/posts/2018-05-10-Rust-1.26.md +++ b/posts/2018-05-10-Rust-1.26.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.26" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.26" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.26.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-05-15-Rust-turns-three.md b/posts/2018-05-15-Rust-turns-three.md index ce09cbe46..9a18841a8 100644 --- a/posts/2018-05-15-Rust-turns-three.md +++ b/posts/2018-05-15-Rust-turns-three.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust turns three" -author: Aaron Turon -description: "Three years ago today, the Rust community released Rust 1.0 to the world, with our initial vision of fearless systems programming." ---- ++++ +layout = "post" +title = "Rust turns three" +author = "Aaron Turon" +description = "Three years ago today, the Rust community released Rust 1.0 to the world, with our initial vision of fearless systems programming." ++++ Three years ago today, the Rust community released [Rust 1.0] to the world, with our initial vision of fearless systems programming. As per tradition, we’ll diff --git a/posts/2018-05-29-Rust-1.26.1.md b/posts/2018-05-29-Rust-1.26.1.md index 06febb446..3942cabe0 100644 --- a/posts/2018-05-29-Rust-1.26.1.md +++ b/posts/2018-05-29-Rust-1.26.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.26.1" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.26.1" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.26.1. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-06-05-Rust-1.26.2.md b/posts/2018-06-05-Rust-1.26.2.md index 7baccbae1..49cf5e956 100644 --- a/posts/2018-06-05-Rust-1.26.2.md +++ b/posts/2018-06-05-Rust-1.26.2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.26.2" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.26.2" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.26.2. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-06-21-Rust-1.27.md b/posts/2018-06-21-Rust-1.27.md index a4970a18c..ea9d415c3 100644 --- a/posts/2018-06-21-Rust-1.27.md +++ b/posts/2018-06-21-Rust-1.27.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.27" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.27" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.27.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-07-06-security-advisory-for-rustdoc.md b/posts/2018-07-06-security-advisory-for-rustdoc.md index f8b3b0479..127cebfc6 100644 --- a/posts/2018-07-06-security-advisory-for-rustdoc.md +++ b/posts/2018-07-06-security-advisory-for-rustdoc.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security Advisory for rustdoc" -author: "The Rust Core Team" ---- ++++ +layout = "post" +title = "Security Advisory for rustdoc" +author = "The Rust Core Team" ++++ ## Quick overview diff --git a/posts/2018-07-10-Rust-1.27.1.md b/posts/2018-07-10-Rust-1.27.1.md index 9f321b635..756b95d0a 100644 --- a/posts/2018-07-10-Rust-1.27.1.md +++ b/posts/2018-07-10-Rust-1.27.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.27.1" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.27.1" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.27.1. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-07-20-Rust-1.27.2.md b/posts/2018-07-20-Rust-1.27.2.md index 0722dd9a2..d72ff40e6 100644 --- a/posts/2018-07-20-Rust-1.27.2.md +++ b/posts/2018-07-20-Rust-1.27.2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.27.2" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.27.2" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.27.2. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-07-27-what-is-rust-2018.md b/posts/2018-07-27-what-is-rust-2018.md index 56abc657a..415624bc9 100644 --- a/posts/2018-07-27-what-is-rust-2018.md +++ b/posts/2018-07-27-what-is-rust-2018.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "What is Rust 2018?" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "What is Rust 2018?" +author = "The Rust Core Team" ++++ Back in March, [we announced](https://blog.rust-lang.org/2018/03/12/roadmap.html) something new: diff --git a/posts/2018-08-02-Rust-1.28.md b/posts/2018-08-02-Rust-1.28.md index 9d41caa07..96dbd77d6 100644 --- a/posts/2018-08-02-Rust-1.28.md +++ b/posts/2018-08-02-Rust-1.28.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.28" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.28" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.28.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-08-08-survey.md b/posts/2018-08-08-survey.md index 19f43dc65..334c2914e 100644 --- a/posts/2018-08-08-survey.md +++ b/posts/2018-08-08-survey.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Launching the 2018 State of Rust Survey" -author: The Rust Community Team -description: "Hearing from you about the third year of Rust" ---- ++++ +layout = "post" +title = "Launching the 2018 State of Rust Survey" +author = "The Rust Community Team" +description = "Hearing from you about the third year of Rust" ++++ It's that time again! Time for us to take a look at how the Rust project is doing, and what we should plan for the future. The Rust Community Team is pleased to announce our [2018 State of Rust Survey][survey]! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses and establish development priorities for the future. diff --git a/posts/2018-09-13-Rust-1.29.md b/posts/2018-09-13-Rust-1.29.md index 7ac89a92a..5a3e657ac 100644 --- a/posts/2018-09-13-Rust-1.29.md +++ b/posts/2018-09-13-Rust-1.29.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.29" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.29" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.29.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-09-21-Security-advisory-for-std.md b/posts/2018-09-21-Security-advisory-for-std.md index 483bd6933..d6aa0ee52 100644 --- a/posts/2018-09-21-Security-advisory-for-std.md +++ b/posts/2018-09-21-Security-advisory-for-std.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory for the standard library" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Security advisory for the standard library" +author = "The Rust Core Team" ++++ The Rust team was recently notified of a security vulnerability affecting the standard library's `str::repeat` function. When passed a large number this diff --git a/posts/2018-09-25-Rust-1.29.1.md b/posts/2018-09-25-Rust-1.29.1.md index 85049116f..4b9ba5029 100644 --- a/posts/2018-09-25-Rust-1.29.1.md +++ b/posts/2018-09-25-Rust-1.29.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.29.1" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.29.1" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.29.1. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-10-12-Rust-1.29.2.md b/posts/2018-10-12-Rust-1.29.2.md index 53b56216e..1f636ee29 100644 --- a/posts/2018-10-12-Rust-1.29.2.md +++ b/posts/2018-10-12-Rust-1.29.2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.29.2" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.29.2" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.29.2. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-10-19-Update-on-crates.io-incident.md b/posts/2018-10-19-Update-on-crates.io-incident.md index dc86fc77b..3f796e662 100644 --- a/posts/2018-10-19-Update-on-crates.io-incident.md +++ b/posts/2018-10-19-Update-on-crates.io-incident.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Update on the October 15, 2018 incident on crates.io" -author: The Crates.io Team ---- ++++ +layout = "post" +title = "Update on the October 15, 2018 incident on crates.io" +author = "The Crates.io Team" ++++ On Monday, Oct 15, starting at approximately 20:00 UTC, crates.io sustained an operational incident. You can find the status page report [here][status] and our diff --git a/posts/2018-10-25-Rust-1.30.0.md b/posts/2018-10-25-Rust-1.30.0.md index 208ce33dd..bc73f4950 100644 --- a/posts/2018-10-25-Rust-1.30.0.md +++ b/posts/2018-10-25-Rust-1.30.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.30" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.30" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.30.0. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-10-30-help-test-rust-2018.md b/posts/2018-10-30-help-test-rust-2018.md index 8957bb6c6..f96102e65 100644 --- a/posts/2018-10-30-help-test-rust-2018.md +++ b/posts/2018-10-30-help-test-rust-2018.md @@ -1,8 +1,8 @@ ---- -title: "Help test Rust 2018" -author: "The Rust Core Team" -layout: post ---- ++++ +title = "Help test Rust 2018" +author = "The Rust Core Team" +layout = "post" ++++ Back in July, we talked about ["Rust 2018"]. In short, we are launching a cycle of long-term milestones called "Editions". Editions are a way to diff --git a/posts/2018-11-08-Rust-1.30.1.md b/posts/2018-11-08-Rust-1.30.1.md index b06bdbff8..59799ba21 100644 --- a/posts/2018-11-08-Rust-1.30.1.md +++ b/posts/2018-11-08-Rust-1.30.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.30.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.30.1" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.30.1. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-11-27-Rust-survey-2018.md b/posts/2018-11-27-Rust-survey-2018.md index 484a33ed8..bdee1a934 100644 --- a/posts/2018-11-27-Rust-survey-2018.md +++ b/posts/2018-11-27-Rust-survey-2018.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust Survey 2018 Results" -author: The Rust Survey Team ---- ++++ +layout = "post" +title = "Rust Survey 2018 Results" +author = "The Rust Survey Team" ++++ Another year means another Rust survey, and this year marks Rust's third annual survey. This year, the survey launched for the first time in multiple languages. In total **14** languages, in addition to English, were covered. The results from non-English languages totalled *25% of all responses* and helped pushed the number of responses to a new record of **5991 responses**. Before we begin the analysis, we just want to give a big "thank you!" to all the people who took the time to respond and give us your thoughts. It’s because of your help that Rust will continue to improve year after year. diff --git a/posts/2018-11-29-a-new-look-for-rust-lang-org.md b/posts/2018-11-29-a-new-look-for-rust-lang-org.md index 3f6f0a4ee..f4a79d2a8 100644 --- a/posts/2018-11-29-a-new-look-for-rust-lang-org.md +++ b/posts/2018-11-29-a-new-look-for-rust-lang-org.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "A new look for rust-lang.org" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "A new look for rust-lang.org" +author = "The Rust Core Team" ++++ Before 1.0, Rust had a reputation for changing the language on a near-daily basis. By contrast, the website has looked pretty much the same. Here’s the @@ -123,4 +123,4 @@ us](mailto:www@rust-lang.org)! We’d like to ship this new site on December 6, with the release of Rust 2018. Thank you for giving it a try before then, so we can work out any bugs we -find! \ No newline at end of file +find! diff --git a/posts/2018-12-06-Rust-1.31-and-rust-2018.md b/posts/2018-12-06-Rust-1.31-and-rust-2018.md index 752613479..e5bf7d415 100644 --- a/posts/2018-12-06-Rust-1.31-and-rust-2018.md +++ b/posts/2018-12-06-Rust-1.31-and-rust-2018.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.31 and Rust 2018" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.31 and Rust 2018" +author = "The Rust Core Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.31.0, and "Rust 2018" as well. Rust is a programming language that empowers everyone to build diff --git a/posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md b/posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md index ffa194fcd..70c2ff779 100644 --- a/posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md +++ b/posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "A call for Rust 2019 Roadmap blog posts" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "A call for Rust 2019 Roadmap blog posts" +author = "The Rust Core Team" ++++ It's almost 2019! As such, the Rust team needs to create a roadmap for Rust's development next year. At the highest level, Rust's development process looks @@ -77,4 +77,4 @@ open up the normal RFC process, though if you want, you are welcome to write a post and link to it on the GitHub discussion. We look forward to working with the entire community to make Rust even more -wonderful in 2019. Thanks for an awesome 2018! \ No newline at end of file +wonderful in 2019. Thanks for an awesome 2018! diff --git a/posts/2018-12-17-Rust-2018-dev-tools.md b/posts/2018-12-17-Rust-2018-dev-tools.md index 13f50b4ab..e59caf0c1 100644 --- a/posts/2018-12-17-Rust-2018-dev-tools.md +++ b/posts/2018-12-17-Rust-2018-dev-tools.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Tools in the 2018 edition" -author: The Dev-tools team ---- ++++ +layout = "post" +title = "Tools in the 2018 edition" +author = "The Dev-tools team" ++++ Tooling is an important part of what makes a programming language practical and productive. Rust has always had some great tools (Cargo in particular has a diff --git a/posts/2018-12-20-Rust-1.31.1.md b/posts/2018-12-20-Rust-1.31.1.md index 7211cc3b0..88b23315b 100644 --- a/posts/2018-12-20-Rust-1.31.1.md +++ b/posts/2018-12-20-Rust-1.31.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.31.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.31.1" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.31.1. Rust is a systems programming language focused on safety, speed, and concurrency. diff --git a/posts/2018-12-21-Procedural-Macros-in-Rust-2018.md b/posts/2018-12-21-Procedural-Macros-in-Rust-2018.md index b92e21068..03bf575cb 100644 --- a/posts/2018-12-21-Procedural-Macros-in-Rust-2018.md +++ b/posts/2018-12-21-Procedural-Macros-in-Rust-2018.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Procedural Macros in Rust 2018" -author: Alex Crichton ---- ++++ +layout = "post" +title = "Procedural Macros in Rust 2018" +author = "Alex Crichton" ++++ Perhaps my favorite feature in the Rust 2018 edition is [procedural macros]. Procedural macros have had a long and storied history in Rust (and will continue diff --git a/posts/2019-01-17-Rust-1.32.0.md b/posts/2019-01-17-Rust-1.32.0.md index 6872c944a..855a93989 100644 --- a/posts/2019-01-17-Rust-1.32.0.md +++ b/posts/2019-01-17-Rust-1.32.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.32.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.32.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.32.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2019-02-22-Core-team-changes.md b/posts/2019-02-22-Core-team-changes.md index b444b8935..3bb5148dd 100644 --- a/posts/2019-02-22-Core-team-changes.md +++ b/posts/2019-02-22-Core-team-changes.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Changes in the core team" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Changes in the core team" +author = "The Rust Core Team" ++++ Just a quick update: You may have noticed that, in the last month or so, a number of [Rust core team] members have changed their jobs diff --git a/posts/2019-02-28-Rust-1.33.0.md b/posts/2019-02-28-Rust-1.33.0.md index 2ef03ec91..24119c55e 100644 --- a/posts/2019-02-28-Rust-1.33.0.md +++ b/posts/2019-02-28-Rust-1.33.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.33.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.33.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.33.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2019-04-11-Rust-1.34.0.md b/posts/2019-04-11-Rust-1.34.0.md index 5846c174b..9b7729bf4 100644 --- a/posts/2019-04-11-Rust-1.34.0.md +++ b/posts/2019-04-11-Rust-1.34.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.34.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.34.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.34.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2019-04-23-roadmap.md b/posts/2019-04-23-roadmap.md index c3182a6c4..812f913dd 100644 --- a/posts/2019-04-23-roadmap.md +++ b/posts/2019-04-23-roadmap.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust's 2019 roadmap" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Rust's 2019 roadmap" +author = "The Rust Core Team" ++++ Each year the Rust community [comes together][roadmap-process] to set out a roadmap. This year, in addition to the [survey], we put out a [call for blog diff --git a/posts/2019-04-25-Rust-1.34.1.md b/posts/2019-04-25-Rust-1.34.1.md index cbc9a84b6..483099209 100644 --- a/posts/2019-04-25-Rust-1.34.1.md +++ b/posts/2019-04-25-Rust-1.34.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.34.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.34.1" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.34.1, and a new version of rustup, 1.18.1. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md b/posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md index 263edbdb6..28e960d20 100644 --- a/posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md +++ b/posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Mozilla IRC Sunset and the Rust Channel" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Mozilla IRC Sunset and the Rust Channel" +author = "The Rust Core Team" ++++ The Rust community has had a presence on Mozilla’s IRC network almost since Rust’s inception. Over time, the single channel grew into a set of pretty active channels where folks would come to ask Rust questions, coordinate work on Rust itself, and just in general chat about Rust. diff --git a/posts/2019-05-13-Security-advisory.md b/posts/2019-05-13-Security-advisory.md index 18caa1187..4d32473be 100644 --- a/posts/2019-05-13-Security-advisory.md +++ b/posts/2019-05-13-Security-advisory.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory for the standard library" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Security advisory for the standard library" +author = "The Rust Core Team" ++++ This is a cross-post of the [official security advisory][official]. The official post contains a signed version with our PGP key, as well. diff --git a/posts/2019-05-14-Rust-1.34.2.md b/posts/2019-05-14-Rust-1.34.2.md index eb3d2b926..47f619285 100644 --- a/posts/2019-05-14-Rust-1.34.2.md +++ b/posts/2019-05-14-Rust-1.34.2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.34.2" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.34.2" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.34.2. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2019-05-15-4-Years-Of-Rust.md b/posts/2019-05-15-4-Years-Of-Rust.md index 12906328a..276efe5a7 100644 --- a/posts/2019-05-15-4-Years-Of-Rust.md +++ b/posts/2019-05-15-4-Years-Of-Rust.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "4 years of Rust" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "4 years of Rust" +author = "The Rust Core Team" ++++ On May 15th, 2015, [Rust][rust-release] was released to the world! After 5 years of open development (and a couple of years of sketching before that), we finally hit the button on making the attempt to create a new systems programming language a serious effort! diff --git a/posts/2019-05-20-The-2019-Rust-Event-Lineup.md b/posts/2019-05-20-The-2019-Rust-Event-Lineup.md index 52321d1c8..aca840bdc 100644 --- a/posts/2019-05-20-The-2019-Rust-Event-Lineup.md +++ b/posts/2019-05-20-The-2019-Rust-Event-Lineup.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The 2019 Rust Event Lineup" -author: Rust Community Team -description: "Lots of Rust events are happening this year; join us at one near you!" ---- ++++ +layout = "post" +title = "The 2019 Rust Event Lineup" +author = "Rust Community Team" +description = "Lots of Rust events are happening this year; join us at one near you!" ++++ We're excited for the 2019 conference season, which we're actually late in writing up. Some incredible events have already happened! Read on to learn more about all the events occurring diff --git a/posts/2019-05-23-Rust-1.35.0.md b/posts/2019-05-23-Rust-1.35.0.md index 676124c95..b09c7d97f 100644 --- a/posts/2019-05-23-Rust-1.35.0.md +++ b/posts/2019-05-23-Rust-1.35.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.35.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.35.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.35.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2019-06-03-governance-wg-announcement.md b/posts/2019-06-03-governance-wg-announcement.md index 07e08cee4..b051b0f98 100644 --- a/posts/2019-06-03-governance-wg-announcement.md +++ b/posts/2019-06-03-governance-wg-announcement.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The Governance WG is going public" -author: The Rust Governance WG -release: false ---- ++++ +layout = "post" +title = "The Governance WG is going public" +author = "The Rust Governance WG" +release = false ++++ Hey all! Today we're happy to announce the [Governance Working Group](https://internals.rust-lang.org/t/governance-working-group-announcement/9637) is going public. We've been spending the last couple weeks finding our bearings and structuring the working group. diff --git a/posts/2019-07-04-Rust-1.36.0.md b/posts/2019-07-04-Rust-1.36.0.md index d5eb7b296..682b88367 100644 --- a/posts/2019-07-04-Rust-1.36.0.md +++ b/posts/2019-07-04-Rust-1.36.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.36.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.36.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.36.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2019-08-15-Rust-1.37.0.md b/posts/2019-08-15-Rust-1.37.0.md index 76e64ba91..13190060a 100644 --- a/posts/2019-08-15-Rust-1.37.0.md +++ b/posts/2019-08-15-Rust-1.37.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.37.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.37.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.37.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2019-09-18-upcoming-docsrs-changes.md b/posts/2019-09-18-upcoming-docsrs-changes.md index 422ce8349..af994a03c 100644 --- a/posts/2019-09-18-upcoming-docsrs-changes.md +++ b/posts/2019-09-18-upcoming-docsrs-changes.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Upcoming docs.rs changes" -author: The Rust Infrastructure Team ---- ++++ +layout = "post" +title = "Upcoming docs.rs changes" +author = "The Rust Infrastructure Team" ++++ On September 30th breaking changes will be deployed to the [docs.rs] build environment. [docs.rs] is a free service building and hosting documentation for diff --git a/posts/2019-09-26-Rust-1.38.0.md b/posts/2019-09-26-Rust-1.38.0.md index 7d303e460..d4ad0bae2 100644 --- a/posts/2019-09-26-Rust-1.38.0.md +++ b/posts/2019-09-26-Rust-1.38.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.38.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.38.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.38.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2019-09-30-Async-await-hits-beta.md b/posts/2019-09-30-Async-await-hits-beta.md index 3c8fe5f84..d1f44197c 100644 --- a/posts/2019-09-30-Async-await-hits-beta.md +++ b/posts/2019-09-30-Async-await-hits-beta.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Async-await hits beta!" -author: Niko Matsakis ---- ++++ +layout = "post" +title = "Async-await hits beta!" +author = "Niko Matsakis" ++++ Big news! As of this writing, **syntactic support for async-await is available in the Rust beta channel!** It will be available in the 1.39 diff --git a/posts/2019-09-30-Security-advisory-for-cargo.md b/posts/2019-09-30-Security-advisory-for-cargo.md index 632f722c9..40d262488 100644 --- a/posts/2019-09-30-Security-advisory-for-cargo.md +++ b/posts/2019-09-30-Security-advisory-for-cargo.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory for Cargo" -author: The Rust Security Team ---- ++++ +layout = "post" +title = "Security advisory for Cargo" +author = "The Rust Security Team" ++++ > **Note**: This is a cross-post of the [official security advisory]. The official > post contains a signed version with our PGP key, as well. diff --git a/posts/2019-10-03-inside-rust-blog.md b/posts/2019-10-03-inside-rust-blog.md index 11e6a46fd..52eff0b6d 100644 --- a/posts/2019-10-03-inside-rust-blog.md +++ b/posts/2019-10-03-inside-rust-blog.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing the Inside Rust blog" -author: Niko Matsakis ---- ++++ +layout = "post" +title = "Announcing the Inside Rust blog" +author = "Niko Matsakis" ++++ Today we're happy to announce that we're starting a second blog, the [**Inside Rust** blog][irb]. This blog will be used to post regular diff --git a/posts/2019-10-15-Rustup-1.20.0.md b/posts/2019-10-15-Rustup-1.20.0.md index e00744d9f..807b1260d 100644 --- a/posts/2019-10-15-Rustup-1.20.0.md +++ b/posts/2019-10-15-Rustup-1.20.0.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.20.0" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.20.0" +author = "The Rustup Working Group" ++++ The rustup working group is happy to announce the release of rustup version 1.20.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2019-10-29-A-call-for-blogs-2020.md b/posts/2019-10-29-A-call-for-blogs-2020.md index 8174a3416..32159b2b8 100644 --- a/posts/2019-10-29-A-call-for-blogs-2020.md +++ b/posts/2019-10-29-A-call-for-blogs-2020.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "A call for blogs 2020" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "A call for blogs 2020" +author = "The Rust Core Team" ++++ What will Rust development look like in 2020? That's partially up to you! Here's how it works: diff --git a/posts/2019-11-01-nll-hard-errors.md b/posts/2019-11-01-nll-hard-errors.md index 11f2db4e0..79c13f841 100644 --- a/posts/2019-11-01-nll-hard-errors.md +++ b/posts/2019-11-01-nll-hard-errors.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Completing the transition to the new borrow checker" -author: Niko Matsakis ---- ++++ +layout = "post" +title = "Completing the transition to the new borrow checker" +author = "Niko Matsakis" ++++ For most of 2018, we've been issuing warnings about various bugs in the borrow checker that we plan to fix -- about two months ago, in the diff --git a/posts/2019-11-07-Async-await-stable.md b/posts/2019-11-07-Async-await-stable.md index be45ee62c..6a5f6ac26 100644 --- a/posts/2019-11-07-Async-await-stable.md +++ b/posts/2019-11-07-Async-await-stable.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Async-await on stable Rust!" -author: Niko Matsakis ---- ++++ +layout = "post" +title = "Async-await on stable Rust!" +author = "Niko Matsakis" ++++ **On this coming Thursday, November 7, async-await syntax hits stable Rust, as part of the 1.39.0 release.** This work has been a long time diff --git a/posts/2019-11-07-Rust-1.39.0.md b/posts/2019-11-07-Rust-1.39.0.md index cb7b42eae..4ee774eb6 100644 --- a/posts/2019-11-07-Rust-1.39.0.md +++ b/posts/2019-11-07-Rust-1.39.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.39.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.39.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.39.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2019-12-03-survey-launch.md b/posts/2019-12-03-survey-launch.md index 82e224de9..b96bc30e5 100644 --- a/posts/2019-12-03-survey-launch.md +++ b/posts/2019-12-03-survey-launch.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Launching the 2019 State of Rust Survey" -author: The Rust Community Team -description: "Hearing from you about the fourth year of Rust" ---- ++++ +layout = "post" +title = "Launching the 2019 State of Rust Survey" +author = "The Rust Community Team" +description = "Hearing from you about the fourth year of Rust" ++++ It's that time again! Time for us to take a look at how the Rust project is doing, and what we should plan for the future. The Rust Community Team is pleased to announce our [2019 State of Rust Survey][survey]! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses and establish development priorities for the future. diff --git a/posts/2019-12-19-Rust-1.40.0.md b/posts/2019-12-19-Rust-1.40.0.md index 4d89ed17a..b80140e6a 100644 --- a/posts/2019-12-19-Rust-1.40.0.md +++ b/posts/2019-12-19-Rust-1.40.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.40.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.40.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.40.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md b/posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md index d92f7856b..7aca44b41 100644 --- a/posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md +++ b/posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Reducing support for 32-bit Apple targets" -author: Pietro Albini ---- ++++ +layout = "post" +title = "Reducing support for 32-bit Apple targets" +author = "Pietro Albini" ++++ The Rust team regrets to announce that Rust 1.41.0 (to be released on January 30th, 2020) will be the last release with the current level of support for diff --git a/posts/2020-01-30-Rust-1.41.0.md b/posts/2020-01-30-Rust-1.41.0.md index aa2c2037a..276e6a851 100644 --- a/posts/2020-01-30-Rust-1.41.0.md +++ b/posts/2020-01-30-Rust-1.41.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.41.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.41.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.41.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2020-01-31-conf-lineup.md b/posts/2020-01-31-conf-lineup.md index 555059ed9..85bade2de 100644 --- a/posts/2020-01-31-conf-lineup.md +++ b/posts/2020-01-31-conf-lineup.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The 2020 Rust Event Lineup" -author: Rust Community -description: "Welcome to 2020; We are excited about the Rust conferences coming up; join us at one near you!" ---- ++++ +layout = "post" +title = "The 2020 Rust Event Lineup" +author = "Rust Community" +description = "Welcome to 2020; We are excited about the Rust conferences coming up; join us at one near you!" ++++ A new decade has started, and we are excited about the Rust conferences coming up. Each conference is an opportunity to learn about Rust, share your knowledge, and to have a good time with your fellow Rustaceans. Read on to learn more about the events we know about so far. diff --git a/posts/2020-02-27-Rust-1.41.1.md b/posts/2020-02-27-Rust-1.41.1.md index 06ca73863..84b5d3fb3 100644 --- a/posts/2020-02-27-Rust-1.41.1.md +++ b/posts/2020-02-27-Rust-1.41.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.41.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.41.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.41.1. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2020-03-10-rustconf-cfp.md b/posts/2020-03-10-rustconf-cfp.md index ddd9f6daa..e2198cf6e 100644 --- a/posts/2020-03-10-rustconf-cfp.md +++ b/posts/2020-03-10-rustconf-cfp.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The 2020 RustConf CFP is Now Open!" -author: Rust Community -description: "The call for proposals for RustConf 202 is open; We want to hear from you!" ---- ++++ +layout = "post" +title = "The 2020 RustConf CFP is Now Open!" +author = "Rust Community" +description = "The call for proposals for RustConf 202 is open; We want to hear from you!" ++++ Greetings fellow Rustaceans! diff --git a/posts/2020-03-12-Rust-1.42.md b/posts/2020-03-12-Rust-1.42.md index ecf72aec0..ffe4b04f5 100644 --- a/posts/2020-03-12-Rust-1.42.md +++ b/posts/2020-03-12-Rust-1.42.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.42.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.42.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.42.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md b/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md index 06aba2976..6c9062240 100644 --- a/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md +++ b/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "docs.rs now allows you to choose your build targets" -author: Jynn Nelson -team: the docs.rs team ---- ++++ +layout = "post" +title = "docs.rs now allows you to choose your build targets" +author = "Jynn Nelson" +team = "the docs.rs team " ++++ Recently, [docs.rs] added a feature that allows crates to opt-out of building on all targets. If you don't need to build on all targets, you can enable this feature to reduce your build times. diff --git a/posts/2020-04-17-Rust-survey-2019.md b/posts/2020-04-17-Rust-survey-2019.md index 4b08c06d7..7ed4e26d3 100644 --- a/posts/2020-04-17-Rust-survey-2019.md +++ b/posts/2020-04-17-Rust-survey-2019.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust Survey 2019 Results" -author: The Rust Survey Team ---- ++++ +layout = "post" +title = "Rust Survey 2019 Results" +author = "The Rust Survey Team" ++++ > Translation available for [Chinese | 中文](https://web.archive.org/web/20200611004214/http://www.secondstate.info/blog/rust-2019) diff --git a/posts/2020-04-23-Rust-1.43.0.md b/posts/2020-04-23-Rust-1.43.0.md index e7e8a469c..a9ce92840 100644 --- a/posts/2020-04-23-Rust-1.43.0.md +++ b/posts/2020-04-23-Rust-1.43.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.43.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.43.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.43.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2020-05-07-Rust.1.43.1.md b/posts/2020-05-07-Rust.1.43.1.md index 781c9d6da..c0954c4d3 100644 --- a/posts/2020-05-07-Rust.1.43.1.md +++ b/posts/2020-05-07-Rust.1.43.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.43.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.43.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.43.1. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2020-05-15-five-years-of-rust.md b/posts/2020-05-15-five-years-of-rust.md index 5bee1b162..aa00e2471 100644 --- a/posts/2020-05-15-five-years-of-rust.md +++ b/posts/2020-05-15-five-years-of-rust.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Five Years of Rust" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Five Years of Rust" +author = "The Rust Core Team" ++++ With all that's going on in the world you'd be forgiven for forgetting that as of today, it has been five years since we released 1.0! Rust has changed diff --git a/posts/2020-06-04-Rust-1.44.0.md b/posts/2020-06-04-Rust-1.44.0.md index 66f058d32..a4d72cfe6 100644 --- a/posts/2020-06-04-Rust-1.44.0.md +++ b/posts/2020-06-04-Rust-1.44.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.44.0" -author: The Rust Core Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.44.0" +author = "The Rust Core Team" +release = true ++++ The Rust team has published a new version of Rust, 1.44.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2020-06-10-event-lineup-update.md b/posts/2020-06-10-event-lineup-update.md index 59828d6ba..728f8095a 100644 --- a/posts/2020-06-10-event-lineup-update.md +++ b/posts/2020-06-10-event-lineup-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2020 Event Lineup - Update" -author: The Rust Community Team -description: "Join Rust events online" ---- ++++ +layout = "post" +title = "2020 Event Lineup - Update" +author = "The Rust Community Team" +description = "Join Rust events online" ++++ In 2020 the way we can do events suddenly changed. In the past we had in-person events all around the world, with some major conferences throughout the year. diff --git a/posts/2020-06-18-Rust.1.44.1.md b/posts/2020-06-18-Rust.1.44.1.md index 767b022b3..872a8acce 100644 --- a/posts/2020-06-18-Rust.1.44.1.md +++ b/posts/2020-06-18-Rust.1.44.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.44.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.44.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.44.1. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2020-07-06-Rustup-1.22.0.md b/posts/2020-07-06-Rustup-1.22.0.md index 62a6721dd..353f7d119 100644 --- a/posts/2020-07-06-Rustup-1.22.0.md +++ b/posts/2020-07-06-Rustup-1.22.0.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.22.0" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.22.0" +author = "The Rustup Working Group" ++++ The rustup working group is happy to announce the release of rustup version 1.22.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2020-07-08-Rustup-1.22.1.md b/posts/2020-07-08-Rustup-1.22.1.md index ab6095280..75a08dd68 100644 --- a/posts/2020-07-08-Rustup-1.22.1.md +++ b/posts/2020-07-08-Rustup-1.22.1.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.22.1" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.22.1" +author = "The Rustup Working Group" ++++ The rustup working group is happy to announce the release of rustup version 1.22.1. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2020-07-14-crates-io-security-advisory.md b/posts/2020-07-14-crates-io-security-advisory.md index b5c516b4a..c0189491b 100644 --- a/posts/2020-07-14-crates-io-security-advisory.md +++ b/posts/2020-07-14-crates-io-security-advisory.md @@ -1,8 +1,8 @@ ---- -layout: post -title: crates.io security advisory -author: Rust Security Response WG ---- ++++ +layout = "post" +title = "crates.io security advisory" +author = "Rust Security Response WG" ++++ This is a cross-post of [the official security advisory][ml]. The official post contains a signed version with our PGP key, as well. diff --git a/posts/2020-07-16-Rust-1.45.0.md b/posts/2020-07-16-Rust-1.45.0.md index 9e76bec7a..6b74e4556 100644 --- a/posts/2020-07-16-Rust-1.45.0.md +++ b/posts/2020-07-16-Rust-1.45.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.45.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.45.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.45.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2020-07-30-Rust-1.45.1.md b/posts/2020-07-30-Rust-1.45.1.md index 5e43222c4..4eacda07e 100644 --- a/posts/2020-07-30-Rust-1.45.1.md +++ b/posts/2020-07-30-Rust-1.45.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.45.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.45.1" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.45.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2020-08-03-Rust-1.45.2.md b/posts/2020-08-03-Rust-1.45.2.md index b83d9c16d..2f54ce606 100644 --- a/posts/2020-08-03-Rust-1.45.2.md +++ b/posts/2020-08-03-Rust-1.45.2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.45.2" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.45.2" +author = "The Rust Release Team" +release = true ++++ The Rust team is announcing a new version of Rust, 1.45.2. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2020-08-18-laying-the-foundation-for-rusts-future.md b/posts/2020-08-18-laying-the-foundation-for-rusts-future.md index 90822cfd2..d2510b1b1 100644 --- a/posts/2020-08-18-laying-the-foundation-for-rusts-future.md +++ b/posts/2020-08-18-laying-the-foundation-for-rusts-future.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Laying the foundation for Rust's future" -author: The Rust Core Team -release: false ---- ++++ +layout = "post" +title = "Laying the foundation for Rust's future" +author = "The Rust Core Team" +release = false ++++ The Rust project was originally [conceived in 2010][2010] (depending on how you count, you might even say [2006][2006]!) as a [Mozilla Research] project, but the long term goal has always been to establish Rust as a self-sustaining project. In 2015, [with the launch of Rust 1.0][onepointoh], Rust established its project direction and governance independent of the Mozilla organization. Since then, Rust has been operating as an autonomous organization, with Mozilla being a prominent and consistent financial and legal sponsor. diff --git a/posts/2020-08-27-Rust-1.46.0.md b/posts/2020-08-27-Rust-1.46.0.md index 1d2de46b2..470e15239 100644 --- a/posts/2020-08-27-Rust-1.46.0.md +++ b/posts/2020-08-27-Rust-1.46.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.46.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.46.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.46.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2020-09-03-Planning-2021-Roadmap.md b/posts/2020-09-03-Planning-2021-Roadmap.md index 868c70399..06432fbc9 100644 --- a/posts/2020-09-03-Planning-2021-Roadmap.md +++ b/posts/2020-09-03-Planning-2021-Roadmap.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Planning the 2021 Roadmap" -author: The Rust Core Team -release: false ---- ++++ +layout = "post" +title = "Planning the 2021 Roadmap" +author = "The Rust Core Team" +release = false ++++ The core team is beginning to think about the 2021 Roadmap, and we want to hear from the community. We’re going to be running two parallel efforts over the next several weeks: the 2020 Rust Survey, to be announced next week, and a call for blog posts. diff --git a/posts/2020-09-10-survey-launch.md b/posts/2020-09-10-survey-launch.md index 03bc2be96..0c2405a19 100644 --- a/posts/2020-09-10-survey-launch.md +++ b/posts/2020-09-10-survey-launch.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Launching the 2020 State of Rust Survey" -author: The Rust Community Team -description: "Hearing from you about the fifth year of Rust" ---- ++++ +layout = "post" +title = "Launching the 2020 State of Rust Survey" +author = "The Rust Community Team" +description = "Hearing from you about the fifth year of Rust" ++++ It's that time again! Time for us to take a look at how the Rust project is doing, and what we should plan for the future. The Rust Community Team is pleased to announce our [2020 State of Rust Survey][survey]! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses and establish development priorities for the future. (If you'd like to give longer form feedback on the Rust roadmap, [we're also collecting blog posts!](https://blog.rust-lang.org/2020/09/03/Planning-2021-Roadmap.html)) diff --git a/posts/2020-09-14-wg-prio-call-for-contributors.md b/posts/2020-09-14-wg-prio-call-for-contributors.md index 64264d35f..3dff444b7 100644 --- a/posts/2020-09-14-wg-prio-call-for-contributors.md +++ b/posts/2020-09-14-wg-prio-call-for-contributors.md @@ -1,8 +1,8 @@ ---- -layout: post -title: A call for contributors from the WG-prioritization team -author: The Rust WG-Prioritization Team ---- ++++ +layout = "post" +title = "A call for contributors from the WG-prioritization team" +author = "The Rust WG-Prioritization Team" ++++ Are you looking for opportunities to contribute to the Rust community? Have some spare time to donate? And maybe learn something interesting along the way? diff --git a/posts/2020-09-21-Scheduling-2021-Roadmap.md b/posts/2020-09-21-Scheduling-2021-Roadmap.md index cc3681df7..9411fded9 100644 --- a/posts/2020-09-21-Scheduling-2021-Roadmap.md +++ b/posts/2020-09-21-Scheduling-2021-Roadmap.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Call for 2021 Roadmap Blogs Ending Soon" -author: The Rust Core Team -release: false ---- ++++ +layout = "post" +title = "Call for 2021 Roadmap Blogs Ending Soon" +author = "The Rust Core Team" +release = false ++++ We will be closing the collection of blog posts on **October 5th**. As a reminder, we plan to close the [survey](https://blog.rust-lang.org/2020/09/10/survey-launch.html) on **September 24th**, later this week. diff --git a/posts/2020-10-08-Rust-1.47.md b/posts/2020-10-08-Rust-1.47.md index d4c1340b5..b549fe39e 100644 --- a/posts/2020-10-08-Rust-1.47.md +++ b/posts/2020-10-08-Rust-1.47.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.47.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.47.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.47.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2020-10-20-regression-labels.md b/posts/2020-10-20-regression-labels.md index 99e3b0439..f04bf2750 100644 --- a/posts/2020-10-20-regression-labels.md +++ b/posts/2020-10-20-regression-labels.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Marking issues as regressions" -description: "Now anyone can mark issues as regressions!" -author: Camelid -team: the release team ---- ++++ +layout = "post" +title = "Marking issues as regressions" +description = "Now anyone can mark issues as regressions!" +author = "Camelid" +team = "the release team " ++++ The Rust project gets many issues filed every day, and we need to keep track of them all to make sure we don't miss anything. To do that we use GitHub's diff --git a/posts/2020-11-19-Rust-1.48.md b/posts/2020-11-19-Rust-1.48.md index 0dc0d9f58..a22c6a0bf 100644 --- a/posts/2020-11-19-Rust-1.48.md +++ b/posts/2020-11-19-Rust-1.48.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.48.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.48.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.48.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2020-11-27-Rustup-1.23.0.md b/posts/2020-11-27-Rustup-1.23.0.md index 29d921d9b..432ae402f 100644 --- a/posts/2020-11-27-Rustup-1.23.0.md +++ b/posts/2020-11-27-Rustup-1.23.0.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.23.0" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.23.0" +author = "The Rustup Working Group" ++++ The rustup working group is happy to announce the release of rustup version 1.23.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2020-12-07-the-foundation-conversation.md b/posts/2020-12-07-the-foundation-conversation.md index 85d5715ab..0e4827b55 100644 --- a/posts/2020-12-07-the-foundation-conversation.md +++ b/posts/2020-12-07-the-foundation-conversation.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The Foundation Conversation" -author: The Rust Core Team -release: false ---- ++++ +layout = "post" +title = "The Foundation Conversation" +author = "The Rust Core Team" +release = false ++++ In August, we on the Core Team [announced our plans to create a Foundation](https://blog.rust-lang.org/2020/08/18/laying-the-foundation-for-rusts-future.html) by the end of the year. Since that time, we’ve been doing a lot of work but it has been difficult to share many details, and we know that a lot of you have questions. diff --git a/posts/2020-12-11-lock-poisoning-survey.md b/posts/2020-12-11-lock-poisoning-survey.md index a3ad9f872..9941ec541 100644 --- a/posts/2020-12-11-lock-poisoning-survey.md +++ b/posts/2020-12-11-lock-poisoning-survey.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Launching the Lock Poisoning Survey" -author: Ashley Mannix -team: The Libs team ---- ++++ +layout = "post" +title = "Launching the Lock Poisoning Survey" +author = "Ashley Mannix" +team = "The Libs team " ++++ The Libs team is looking at how we can improve the `std::sync` module, by potentially splitting it up into new modules and making some changes to APIs along the way. One of those API changes we're looking at is non-poisoning implementations of `Mutex` and `RwLock`. diff --git a/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md b/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md index a4d88ccef..c96e3a684 100644 --- a/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md +++ b/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Next steps for the Foundation Conversation" -author: The Rust Core Team -release: false ---- ++++ +layout = "post" +title = "Next steps for the Foundation Conversation" +author = "The Rust Core Team" +release = false ++++ Last week we kicked off the [Foundation Conversation](https://blog.rust-lang.org/2020/12/07/the-foundation-conversation.html), a week-long period of Q&A forums and live broadcasts with the goal of explaining our vision for the Foundation and finding out what sorts of questions people had. We used those questions to help build a [draft Foundation FAQ](https://github.com/rust-lang/foundation-faq-2020/blob/main/FAQ.md), and if you’ve not seen it yet, you should definitely take a look -- it’s chock full of good information. Thanks to everyone for asking such great questions! diff --git a/posts/2020-12-16-rust-survey-2020.md b/posts/2020-12-16-rust-survey-2020.md index fbfae1a27..e8208e805 100644 --- a/posts/2020-12-16-rust-survey-2020.md +++ b/posts/2020-12-16-rust-survey-2020.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust Survey 2020 Results" -author: The Rust Survey Team -release: false ---- ++++ +layout = "post" +title = "Rust Survey 2020 Results" +author = "The Rust Survey Team" +release = false ++++ Greetings Rustaceans! diff --git a/posts/2020-12-31-Rust-1.49.0.md b/posts/2020-12-31-Rust-1.49.0.md index 8646b6d51..e7f665bc4 100644 --- a/posts/2020-12-31-Rust-1.49.0.md +++ b/posts/2020-12-31-Rust-1.49.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.49.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.49.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.49.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2021-01-04-mdbook-security-advisory.md b/posts/2021-01-04-mdbook-security-advisory.md index a5dcc528a..6d2ef3c8a 100644 --- a/posts/2021-01-04-mdbook-security-advisory.md +++ b/posts/2021-01-04-mdbook-security-advisory.md @@ -1,8 +1,8 @@ ---- -layout: post -title: mdBook security advisory -author: Rust Security Response WG ---- ++++ +layout = "post" +title = "mdBook security advisory" +author = "Rust Security Response WG" ++++ > This is a cross-post of [the official security advisory][ml]. The official post > contains a signed version with our PGP key, as well. diff --git a/posts/2021-02-11-Rust-1.50.0.md b/posts/2021-02-11-Rust-1.50.0.md index f9788ad29..2b70a7366 100644 --- a/posts/2021-02-11-Rust-1.50.0.md +++ b/posts/2021-02-11-Rust-1.50.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.50.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.50.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.50.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2021-02-26-const-generics-mvp-beta.md b/posts/2021-02-26-const-generics-mvp-beta.md index e385f1bfc..c7948e1da 100644 --- a/posts/2021-02-26-const-generics-mvp-beta.md +++ b/posts/2021-02-26-const-generics-mvp-beta.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Const generics MVP hits beta!" -author: The const generics project group ---- ++++ +layout = "post" +title = "Const generics MVP hits beta!" +author = "The const generics project group" ++++ After more than 3 years since the [original RFC for const generics](https://github.com/rust-lang/rfcs/blob/master/text/2000-const-generics.md) was accepted, **the first version of const generics is now available in the Rust beta channel!** It will be available in the 1.51 release, which is expected to be released on **March 25th, 2021**. Const generics is one of the [most highly anticipated](https://blog.rust-lang.org/2020/12/16/rust-survey-2020.html) features coming to Rust, and we're excited for people to start taking advantage of the increased power of the language following this addition. diff --git a/posts/2021-03-18-async-vision-doc.md b/posts/2021-03-18-async-vision-doc.md index 0e3328de2..bbe24d820 100644 --- a/posts/2021-03-18-async-vision-doc.md +++ b/posts/2021-03-18-async-vision-doc.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Building a shared vision for Async Rust" -author: Niko Matsakis -description: "Building a shared vision for Async Rust" -team: the Async Foundations Working Group ---- ++++ +layout = "post" +title = "Building a shared vision for Async Rust" +author = "Niko Matsakis" +description = "Building a shared vision for Async Rust" +team = "the Async Foundations Working Group " ++++ [wg]: https://rust-lang.github.io/wg-async-foundations/ [vd]: https://rust-lang.github.io/wg-async-foundations/vision.html#-the-vision diff --git a/posts/2021-03-25-Rust-1.51.0.md b/posts/2021-03-25-Rust-1.51.0.md index 8ecda02e3..2bbad4da9 100644 --- a/posts/2021-03-25-Rust-1.51.0.md +++ b/posts/2021-03-25-Rust-1.51.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.51.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.51.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.51.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2021-04-14-async-vision-doc-shiny-future.md b/posts/2021-04-14-async-vision-doc-shiny-future.md index 1b2c158ae..a9cbe38a7 100644 --- a/posts/2021-04-14-async-vision-doc-shiny-future.md +++ b/posts/2021-04-14-async-vision-doc-shiny-future.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Brainstorming Async Rust's Shiny Future" -author: Niko Matsakis -description: "Brainstorming Async Rust's Shiny Future" -team: the Async Foundations Working Group ---- ++++ +layout = "post" +title = "Brainstorming Async Rust's Shiny Future" +author = "Niko Matsakis" +description = "Brainstorming Async Rust's Shiny Future" +team = "the Async Foundations Working Group " ++++ On March 18th, we [announced the start of the Async Vision Doc][announce] process. Since then, we've landed [24 "status quo" stories][sq] and we have [4 more stories in open PRs][prs]; [Ryan Levick] and [I] have also hosted more than ten collaborative writing sessions over the course of the last few weeks, and we have [more scheduled for this week][cws]. diff --git a/posts/2021-04-27-Rustup-1.24.0.md b/posts/2021-04-27-Rustup-1.24.0.md index 12e3faa02..aef16a36b 100644 --- a/posts/2021-04-27-Rustup-1.24.0.md +++ b/posts/2021-04-27-Rustup-1.24.0.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.24.0" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.24.0" +author = "The Rustup Working Group" ++++ > Shortly after publishing the release we got reports of [a regression][2737] > preventing users from running `rustfmt` and `cargo fmt` after upgrading to diff --git a/posts/2021-04-29-Rustup-1.24.1.md b/posts/2021-04-29-Rustup-1.24.1.md index 9167acd39..66d27043a 100644 --- a/posts/2021-04-29-Rustup-1.24.1.md +++ b/posts/2021-04-29-Rustup-1.24.1.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.24.1" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.24.1" +author = "The Rustup Working Group" ++++ The rustup working group is happy to announce the release of rustup version 1.24.1. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2021-05-06-Rust-1.52.0.md b/posts/2021-05-06-Rust-1.52.0.md index 9c93a7de3..69e5fc69f 100644 --- a/posts/2021-05-06-Rust-1.52.0.md +++ b/posts/2021-05-06-Rust-1.52.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.52.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.52.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.52.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2021-05-10-Rust-1.52.1.md b/posts/2021-05-10-Rust-1.52.1.md index d7e736e6f..769570449 100644 --- a/posts/2021-05-10-Rust-1.52.1.md +++ b/posts/2021-05-10-Rust-1.52.1.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Announcing Rust 1.52.1" -author: Felix Klock, Mark Rousskov -team: the compiler team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.52.1" +author = "Felix Klock, Mark Rousskov" +team = "the compiler team " +release = true ++++ The Rust team has prepared a new release, 1.52.1, working around a bug in incremental compilation which was made into a compiler error in 1.52.0. We diff --git a/posts/2021-05-11-edition-2021.md b/posts/2021-05-11-edition-2021.md index 5ec386735..3df12be1d 100644 --- a/posts/2021-05-11-edition-2021.md +++ b/posts/2021-05-11-edition-2021.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The Plan for the Rust 2021 Edition" -author: Mara Bos -team: The Rust 2021 Edition Working Group ---- ++++ +layout = "post" +title = "The Plan for the Rust 2021 Edition" +author = "Mara Bos" +team = "The Rust 2021 Edition Working Group " ++++ We are happy to announce that the third edition of the Rust language, Rust 2021, is scheduled for release in October. diff --git a/posts/2021-05-15-six-years-of-rust.md b/posts/2021-05-15-six-years-of-rust.md index 68bc96a34..8b181f512 100644 --- a/posts/2021-05-15-six-years-of-rust.md +++ b/posts/2021-05-15-six-years-of-rust.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Six Years of Rust" -author: The Rust Team ---- ++++ +layout = "post" +title = "Six Years of Rust" +author = "The Rust Team" ++++ Today marks [Rust]'s sixth birthday since it went 1.0 in 2015. A lot has changed since then and especially over the past year, and Rust was no different. In 2020, there was no foundation yet, no const generics, and a lot of organisations were still wondering whether Rust was production ready. diff --git a/posts/2021-05-17-Rustup-1.24.2.md b/posts/2021-05-17-Rustup-1.24.2.md index 8bd166034..76489e8b1 100644 --- a/posts/2021-05-17-Rustup-1.24.2.md +++ b/posts/2021-05-17-Rustup-1.24.2.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.24.2" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.24.2" +author = "The Rustup Working Group" ++++ The rustup working group is happy to announce the release of rustup version 1.24.2. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2021-06-08-Rustup-1.24.3.md b/posts/2021-06-08-Rustup-1.24.3.md index 033d1df9b..314c9cba4 100644 --- a/posts/2021-06-08-Rustup-1.24.3.md +++ b/posts/2021-06-08-Rustup-1.24.3.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.24.3" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.24.3" +author = "The Rustup Working Group" ++++ The rustup working group is happy to announce the release of rustup version 1.24.3. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2021-06-17-Rust-1.53.0.md b/posts/2021-06-17-Rust-1.53.0.md index 0fb3c3343..125c8bb18 100644 --- a/posts/2021-06-17-Rust-1.53.0.md +++ b/posts/2021-06-17-Rust-1.53.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.53.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.53.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.53.0. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2021-07-21-Rust-2021-public-testing.md b/posts/2021-07-21-Rust-2021-public-testing.md index e224c632f..f7ee0ff92 100644 --- a/posts/2021-07-21-Rust-2021-public-testing.md +++ b/posts/2021-07-21-Rust-2021-public-testing.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust 2021 public testing period" -author: Niko Matsakis -team: the Edition 2021 Project Group ---- ++++ +layout = "post" +title = "Rust 2021 public testing period" +author = "Niko Matsakis" +team = "the Edition 2021 Project Group " ++++ # Rust 2021 public testing period diff --git a/posts/2021-07-29-Rust-1.54.0.md b/posts/2021-07-29-Rust-1.54.0.md index 40aeb52c2..7c8a34b38 100644 --- a/posts/2021-07-29-Rust-1.54.0.md +++ b/posts/2021-07-29-Rust-1.54.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.54.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.54.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.54.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2021-08-03-GATs-stabilization-push.md b/posts/2021-08-03-GATs-stabilization-push.md index c640af4db..5d1b64f73 100644 --- a/posts/2021-08-03-GATs-stabilization-push.md +++ b/posts/2021-08-03-GATs-stabilization-push.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "The push for GATs stabilization" -author: Jack Huey -team: the Traits Working Group ---- ++++ +layout = "post" +title = "The push for GATs stabilization" +author = "Jack Huey" +team = "the Traits Working Group " ++++ # The push for GATs stabilization diff --git a/posts/2021-09-09-Rust-1.55.0.md b/posts/2021-09-09-Rust-1.55.0.md index 7e37f3187..35d09b647 100644 --- a/posts/2021-09-09-Rust-1.55.0.md +++ b/posts/2021-09-09-Rust-1.55.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.55.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.55.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.55.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2021-09-27-Core-team-membership-updates.md b/posts/2021-09-27-Core-team-membership-updates.md index 9ecf2e28b..6ce7bf3be 100644 --- a/posts/2021-09-27-Core-team-membership-updates.md +++ b/posts/2021-09-27-Core-team-membership-updates.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Core team membership updates" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Core team membership updates" +author = "The Rust Core Team" ++++ The Rust Core team is excited to announce the first of a series of changes to its structure we’ve been planning for 2021, starting today by adding several new diff --git a/posts/2021-10-21-Rust-1.56.0.md b/posts/2021-10-21-Rust-1.56.0.md index 0cd06ed2d..cc7ac9c3e 100644 --- a/posts/2021-10-21-Rust-1.56.0.md +++ b/posts/2021-10-21-Rust-1.56.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.56.0 and Rust 2021" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.56.0 and Rust 2021" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.56.0. This stabilizes the 2021 edition as well. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2021-11-01-Rust-1.56.1.md b/posts/2021-11-01-Rust-1.56.1.md index 783c21b4d..4b18e1810 100644 --- a/posts/2021-11-01-Rust-1.56.1.md +++ b/posts/2021-11-01-Rust-1.56.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.56.1" -author: The Rust Security Response WG -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.56.1" +author = "The Rust Security Response WG" +release = true ++++ The Rust team has published a new point release of Rust, 1.56.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2021-11-01-cve-2021-42574.md b/posts/2021-11-01-cve-2021-42574.md index a5a3e25a7..541eb395c 100644 --- a/posts/2021-11-01-cve-2021-42574.md +++ b/posts/2021-11-01-cve-2021-42574.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory for rustc (CVE-2021-42574)" -author: The Rust Security Response WG ---- ++++ +layout = "post" +title = "Security advisory for rustc (CVE-2021-42574)" +author = "The Rust Security Response WG" ++++ > This is a lightly edited cross-post of [the official security advisory][advisory]. The > official advisory contains a signed version with our PGP key, as well. diff --git a/posts/2021-12-02-Rust-1.57.0.md b/posts/2021-12-02-Rust-1.57.0.md index bdedf5a54..43fa1f985 100644 --- a/posts/2021-12-02-Rust-1.57.0.md +++ b/posts/2021-12-02-Rust-1.57.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.57.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.57.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.57.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2021-12-08-survey-launch.md b/posts/2021-12-08-survey-launch.md index 72a48959b..8251b4a0d 100644 --- a/posts/2021-12-08-survey-launch.md +++ b/posts/2021-12-08-survey-launch.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Launching the 2021 State of Rust Survey" -author: The Rust Community Team -description: "Hearing from you about the sixth year of Rust" ---- ++++ +layout = "post" +title = "Launching the 2021 State of Rust Survey" +author = "The Rust Community Team" +description = "Hearing from you about the sixth year of Rust" ++++ It's that time again! Time for us to take a look at who the Rust community is composed of, how the Rust project is doing, and how we can improve the Rust programming experience. The Rust Community Team is pleased to announce our [2021 State of Rust Survey][survey]! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses, and establish development priorities for the future. diff --git a/posts/2022-01-13-Rust-1.58.0.md b/posts/2022-01-13-Rust-1.58.0.md index 61845af01..61e618e9b 100644 --- a/posts/2022-01-13-Rust-1.58.0.md +++ b/posts/2022-01-13-Rust-1.58.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.58.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.58.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.58.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2022-01-20-Rust-1.58.1.md b/posts/2022-01-20-Rust-1.58.1.md index 0b243a426..bd6ca47b7 100644 --- a/posts/2022-01-20-Rust-1.58.1.md +++ b/posts/2022-01-20-Rust-1.58.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.58.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.58.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.58.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2022-01-20-cve-2022-21658.md b/posts/2022-01-20-cve-2022-21658.md index 2b2924d81..2fe6976a5 100644 --- a/posts/2022-01-20-cve-2022-21658.md +++ b/posts/2022-01-20-cve-2022-21658.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory for the standard library (CVE-2022-21658)" -author: The Rust Security Response WG ---- ++++ +layout = "post" +title = "Security advisory for the standard library (CVE-2022-21658)" +author = "The Rust Security Response WG" ++++ > This is a cross-post of [the official security advisory][advisory]. The > official advisory contains a signed version with our PGP key, as well. diff --git a/posts/2022-01-31-changes-in-the-core-team.md b/posts/2022-01-31-changes-in-the-core-team.md index af5b615cd..66eca8e86 100644 --- a/posts/2022-01-31-changes-in-the-core-team.md +++ b/posts/2022-01-31-changes-in-the-core-team.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Changes in the Core Team" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Changes in the Core Team" +author = "The Rust Core Team" ++++ We want to say thanks to three people who recently have decided to step back from the Core Team: diff --git a/posts/2022-02-14-crates-io-snapshot-branches.md b/posts/2022-02-14-crates-io-snapshot-branches.md index 8f70ce1e2..ee2bb858d 100644 --- a/posts/2022-02-14-crates-io-snapshot-branches.md +++ b/posts/2022-02-14-crates-io-snapshot-branches.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Crates.io Index Snapshot Branches Moving" -author: The Crates.io Team -release: false ---- ++++ +layout = "post" +title = "Crates.io Index Snapshot Branches Moving" +author = "The Crates.io Team" +release = false ++++ Every so often, the [crates.io index](https://github.com/rust-lang/crates.io-index)'s Git history is [squashed into one diff --git a/posts/2022-02-15-Rust-Survey-2021.md b/posts/2022-02-15-Rust-Survey-2021.md index 5c0db0899..fbc119abf 100644 --- a/posts/2022-02-15-Rust-Survey-2021.md +++ b/posts/2022-02-15-Rust-Survey-2021.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust Survey 2021 Results" -author: The Rust Survey Team ---- ++++ +layout = "post" +title = "Rust Survey 2021 Results" +author = "The Rust Survey Team" ++++ Greetings Rustaceans! diff --git a/posts/2022-02-21-rust-analyzer-joins-rust-org.md b/posts/2022-02-21-rust-analyzer-joins-rust-org.md index 6ed721fcc..0526fc318 100644 --- a/posts/2022-02-21-rust-analyzer-joins-rust-org.md +++ b/posts/2022-02-21-rust-analyzer-joins-rust-org.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "rust-analyzer joins the Rust organization!" -author: The rust-analyzer Team on behalf of the entire Rust Team ---- ++++ +layout = "post" +title = "rust-analyzer joins the Rust organization!" +author = "The rust-analyzer Team on behalf of the entire Rust Team" ++++ We have an exciting announcement to make! The [rust-analyzer](https://rust-analyzer.github.io) project, a new implementation of the Language Server Protocol (LSP) for Rust, is now officially a part of the wider Rust organization! 🎉 diff --git a/posts/2022-02-24-Rust-1.59.0.md b/posts/2022-02-24-Rust-1.59.0.md index 04610f8f0..e01ab7d5c 100644 --- a/posts/2022-02-24-Rust-1.59.0.md +++ b/posts/2022-02-24-Rust-1.59.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.59.0" -author: The Rust Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.59.0" +author = "The Rust Team" +release = true ++++ The Rust team has published a new version of Rust, 1.59.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2022-03-08-cve-2022-24713.md b/posts/2022-03-08-cve-2022-24713.md index 8805cf6dc..47661e451 100644 --- a/posts/2022-03-08-cve-2022-24713.md +++ b/posts/2022-03-08-cve-2022-24713.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory for the regex crate (CVE-2022-24713)" -author: The Rust Security Response WG ---- ++++ +layout = "post" +title = "Security advisory for the regex crate (CVE-2022-24713)" +author = "The Rust Security Response WG" ++++ > This is a cross-post of [the official security advisory][advisory]. The > official advisory contains a signed version with our PGP key, as well. diff --git a/posts/2022-04-07-Rust-1.60.0.md b/posts/2022-04-07-Rust-1.60.0.md index 12a00bf5b..1a75fe0e6 100644 --- a/posts/2022-04-07-Rust-1.60.0.md +++ b/posts/2022-04-07-Rust-1.60.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.60.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.60.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.60.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2022-05-10-malicious-crate-rustdecimal.md b/posts/2022-05-10-malicious-crate-rustdecimal.md index d86948618..62ddaaaf0 100644 --- a/posts/2022-05-10-malicious-crate-rustdecimal.md +++ b/posts/2022-05-10-malicious-crate-rustdecimal.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory: malicious crate rustdecimal" -author: The Rust Security Response WG ---- ++++ +layout = "post" +title = "Security advisory: malicious crate rustdecimal" +author = "The Rust Security Response WG" ++++ > This is a cross-post of [the official security advisory][advisory]. The > official advisory contains a signed version with our PGP key, as well. diff --git a/posts/2022-05-19-Rust-1.61.0.md b/posts/2022-05-19-Rust-1.61.0.md index 5f8eb2bca..141d33cd9 100644 --- a/posts/2022-05-19-Rust-1.61.0.md +++ b/posts/2022-05-19-Rust-1.61.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.61.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.61.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.61.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2022-06-22-sparse-registry-testing.md b/posts/2022-06-22-sparse-registry-testing.md index c415944c1..c22b344d8 100644 --- a/posts/2022-06-22-sparse-registry-testing.md +++ b/posts/2022-06-22-sparse-registry-testing.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Call for testing: Cargo sparse-registry" -author: Arlo Siemsen -team: The Cargo Team ---- ++++ +layout = "post" +title = "Call for testing: Cargo sparse-registry" +author = "Arlo Siemsen" +team = "The Cargo Team " ++++ > Note: Sparse registry support has been stabilized for the 1.68 release. > See [Help test Cargo's new index protocol](../../../inside-rust/2023/01/30/cargo-sparse-protocol.html) for updated information. diff --git a/posts/2022-06-28-rust-unconference.md b/posts/2022-06-28-rust-unconference.md index 31534efed..37fd6b5cc 100644 --- a/posts/2022-06-28-rust-unconference.md +++ b/posts/2022-06-28-rust-unconference.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing The RustConf PostConf UnConf" -author: Jane Lusby, on behalf of The Rust Project Teams ---- ++++ +layout = "post" +title = "Announcing The RustConf PostConf UnConf" +author = "Jane Lusby, on behalf of The Rust Project Teams" ++++ Hello Rust community! diff --git a/posts/2022-06-30-Rust-1.62.0.md b/posts/2022-06-30-Rust-1.62.0.md index 15718ba75..72bf9d58f 100644 --- a/posts/2022-06-30-Rust-1.62.0.md +++ b/posts/2022-06-30-Rust-1.62.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.62.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.62.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.62.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2022-07-01-RLS-deprecation.md b/posts/2022-07-01-RLS-deprecation.md index 8f6e244b6..732eecc43 100644 --- a/posts/2022-07-01-RLS-deprecation.md +++ b/posts/2022-07-01-RLS-deprecation.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "RLS Deprecation" -author: The Rust Dev Tools Team ---- ++++ +layout = "post" +title = "RLS Deprecation" +author = "The Rust Dev Tools Team" ++++ The Rust Language Server (RLS) is being deprecated in favor of [rust-analyzer](https://rust-analyzer.github.io/). Current users of RLS should migrate to using rust-analyzer instead. diff --git a/posts/2022-07-11-Rustup-1.25.0.md b/posts/2022-07-11-Rustup-1.25.0.md index 840443698..0f2f48e51 100644 --- a/posts/2022-07-11-Rustup-1.25.0.md +++ b/posts/2022-07-11-Rustup-1.25.0.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.25.0" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.25.0" +author = "The Rustup Working Group" ++++ The rustup working group is happy to announce the release of rustup version 1.25.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2022-07-12-Rustup-1.25.1.md b/posts/2022-07-12-Rustup-1.25.1.md index 049033884..a466c0e03 100644 --- a/posts/2022-07-12-Rustup-1.25.1.md +++ b/posts/2022-07-12-Rustup-1.25.1.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.25.1" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.25.1" +author = "The Rustup Working Group" ++++ The rustup working group is announcing the release of rustup version 1.25.1. [Rustup][install] is the recommended tool to install [Rust][rust], a diff --git a/posts/2022-07-12-changes-in-the-core-team.md b/posts/2022-07-12-changes-in-the-core-team.md index 10dacaf3b..38e318df4 100644 --- a/posts/2022-07-12-changes-in-the-core-team.md +++ b/posts/2022-07-12-changes-in-the-core-team.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Changes in the Core Team" -author: The Rust Core Team ---- ++++ +layout = "post" +title = "Changes in the Core Team" +author = "The Rust Core Team" ++++ We want to say farewell and thanks to a couple of people who are stepping back from the Core Team: diff --git a/posts/2022-07-19-Rust-1.62.1.md b/posts/2022-07-19-Rust-1.62.1.md index 4327e5daf..85a271923 100644 --- a/posts/2022-07-19-Rust-1.62.1.md +++ b/posts/2022-07-19-Rust-1.62.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.62.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.62.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.62.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2022-08-01-Increasing-glibc-kernel-requirements.md b/posts/2022-08-01-Increasing-glibc-kernel-requirements.md index 0916da381..cb86366c7 100644 --- a/posts/2022-08-01-Increasing-glibc-kernel-requirements.md +++ b/posts/2022-08-01-Increasing-glibc-kernel-requirements.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Increasing the glibc and Linux kernel requirements" -author: Nikita Popov ---- ++++ +layout = "post" +title = "Increasing the glibc and Linux kernel requirements" +author = "Nikita Popov" ++++ The minimum requirements for Rust toolchains targeting Linux will [increase][PR] with the Rust 1.64.0 release (slated for September 22nd, 2022). The new minimum requirements are: diff --git a/posts/2022-08-05-nll-by-default.md b/posts/2022-08-05-nll-by-default.md index b2f97f6a6..443d088a4 100644 --- a/posts/2022-08-05-nll-by-default.md +++ b/posts/2022-08-05-nll-by-default.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Non-lexical lifetimes (NLL) fully stable" -author: Niko Matsakis -team: the NLL working group -release: false ---- ++++ +layout = "post" +title = "Non-lexical lifetimes (NLL) fully stable" +author = "Niko Matsakis" +team = "the NLL working group " +release = false ++++ As of Rust 1.63 (releasing next week), the "non-lexical lifetimes" (NLL) work will be enabled by default. NLL is the second iteration of Rust's borrow checker. The [RFC] actually does quite a nice job of highlighting some of the motivating examples. "But," I hear you saying, "wasn't NLL included in [Rust 2018]?" And yes, yes it was! But at that time, NLL was only enabled for Rust 2018 code, while Rust 2015 code ran in "migration mode". When in "migration mode," the compiler would run both the old *and* the new borrow checker and compare the results. This way, we could give warnings for older code that should never have compiled in the first place; we could also limit the impact of any bugs in the new code. Over time, we have limited migration mode to be closer and closer to just running the new-style borrow checker: in the next release, that process completes, and all Rust code will be checked with NLL. diff --git a/posts/2022-08-11-Rust-1.63.0.md b/posts/2022-08-11-Rust-1.63.0.md index 2dbdbb9d5..d98123d21 100644 --- a/posts/2022-08-11-Rust-1.63.0.md +++ b/posts/2022-08-11-Rust-1.63.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.63.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.63.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.63.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2022-09-14-cargo-cves.md b/posts/2022-09-14-cargo-cves.md index a0ebbf356..fec865242 100644 --- a/posts/2022-09-14-cargo-cves.md +++ b/posts/2022-09-14-cargo-cves.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisories for Cargo (CVE-2022-36113, CVE-2022-36114)" -author: The Rust Security Response WG ---- ++++ +layout = "post" +title = "Security advisories for Cargo (CVE-2022-36113, CVE-2022-36114)" +author = "The Rust Security Response WG" ++++ > This is a cross-post of [the official security advisory][advisory]. The > official advisory contains a signed version with our PGP key, as well. diff --git a/posts/2022-09-15-const-eval-safety-rule-revision.md b/posts/2022-09-15-const-eval-safety-rule-revision.md index 08408af51..2766a4fa6 100644 --- a/posts/2022-09-15-const-eval-safety-rule-revision.md +++ b/posts/2022-09-15-const-eval-safety-rule-revision.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Const Eval (Un)Safety Rules -author: Felix Klock -description: "Various ways const-eval can change between Rust versions" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Const Eval (Un)Safety Rules" +author = "Felix Klock" +description = "Various ways const-eval can change between Rust versions" +team = "The Compiler Team " ++++ In a recent Rust issue ([#99923][]), a developer noted that the upcoming 1.64-beta version of Rust had started signalling errors on their crate, diff --git a/posts/2022-09-22-Rust-1.64.0.md b/posts/2022-09-22-Rust-1.64.0.md index 7b46213b0..ed195d333 100644 --- a/posts/2022-09-22-Rust-1.64.0.md +++ b/posts/2022-09-22-Rust-1.64.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.64.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.64.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.64.0. Rust is a programming language empowering everyone to build reliable and efficient diff --git a/posts/2022-10-28-gats-stabilization.md b/posts/2022-10-28-gats-stabilization.md index f25f507a6..383506d4d 100644 --- a/posts/2022-10-28-gats-stabilization.md +++ b/posts/2022-10-28-gats-stabilization.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Generic associated types to be stable in Rust 1.65 -author: Jack Huey -description: "Generic associated types will stabilize in Rust 1.65" -team: The Types Team ---- ++++ +layout = "post" +title = "Generic associated types to be stable in Rust 1.65" +author = "Jack Huey" +description = "Generic associated types will stabilize in Rust 1.65" +team = "The Types Team " ++++ As of Rust 1.65, which is set to release on November 3rd, generic associated types (GATs) will be stable — over six and a half years after the original [RFC] was opened. This is truly a monumental achievement; however, as with a few of the other monumental features of Rust, like `async` or const generics, there are limitations in the initial stabilization that we plan to remove in the future. diff --git a/posts/2022-11-03-Rust-1.65.0.md b/posts/2022-11-03-Rust-1.65.0.md index ec50443fc..f09d07e23 100644 --- a/posts/2022-11-03-Rust-1.65.0.md +++ b/posts/2022-11-03-Rust-1.65.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.65.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.65.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.65.0. Rust is a programming language empowering everyone to build reliable and efficient diff --git a/posts/2022-12-05-survey-launch.md b/posts/2022-12-05-survey-launch.md index cdded8e1e..4b20a058b 100644 --- a/posts/2022-12-05-survey-launch.md +++ b/posts/2022-12-05-survey-launch.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Launching the 2022 State of Rust Survey" -author: The Rust Survey Working Group -description: "Hearing from you about the seventh year of Rust" ---- ++++ +layout = "post" +title = "Launching the 2022 State of Rust Survey" +author = "The Rust Survey Working Group" +description = "Hearing from you about the seventh year of Rust" ++++ The [2022 State of Rust Survey][survey] is here! diff --git a/posts/2022-12-15-Rust-1.66.0.md b/posts/2022-12-15-Rust-1.66.0.md index 283df8258..ff70f7a12 100644 --- a/posts/2022-12-15-Rust-1.66.0.md +++ b/posts/2022-12-15-Rust-1.66.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.66.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.66.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.66.0. Rust is a programming language empowering everyone to build reliable and efficient diff --git a/posts/2023-01-09-android-ndk-update-r25.md b/posts/2023-01-09-android-ndk-update-r25.md index 1bc4976db..c1ab2f9ba 100644 --- a/posts/2023-01-09-android-ndk-update-r25.md +++ b/posts/2023-01-09-android-ndk-update-r25.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Updating the Android NDK in Rust 1.68" -author: Android Platform Team -description: "Modernizing Android support in Rust" ---- ++++ +layout = "post" +title = "Updating the Android NDK in Rust 1.68" +author = "Android Platform Team" +description = "Modernizing Android support in Rust" ++++ We are pleased to announce that Android platform support in Rust will be modernized in Rust 1.68 as we update the target NDK from r17 to r25. As a diff --git a/posts/2023-01-10-Rust-1.66.1.md b/posts/2023-01-10-Rust-1.66.1.md index 538a00b8a..badfcffb9 100644 --- a/posts/2023-01-10-Rust-1.66.1.md +++ b/posts/2023-01-10-Rust-1.66.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.66.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.66.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.66.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2023-01-10-cve-2022-46176.md b/posts/2023-01-10-cve-2022-46176.md index 8fc0a159c..0a2a30761 100644 --- a/posts/2023-01-10-cve-2022-46176.md +++ b/posts/2023-01-10-cve-2022-46176.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory for Cargo (CVE-2022-46176)" -author: The Rust Security Response WG ---- ++++ +layout = "post" +title = "Security advisory for Cargo (CVE-2022-46176)" +author = "The Rust Security Response WG" ++++ > This is a cross-post of [the official security advisory][advisory]. The > official advisory contains a signed version with our PGP key, as well. diff --git a/posts/2023-01-20-types-announcement.md b/posts/2023-01-20-types-announcement.md index 9594a71e6..f9fe4d1a1 100644 --- a/posts/2023-01-20-types-announcement.md +++ b/posts/2023-01-20-types-announcement.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Officially announcing the types team" -author: Jack Huey -description: "An overview of the new types team" -team: The Types Team ---- ++++ +layout = "post" +title = "Officially announcing the types team" +author = "Jack Huey" +description = "An overview of the new types team" +team = "The Types Team " ++++ Oh hey, it's [another](https://blog.rust-lang.org/inside-rust/2022/09/29/announcing-the-rust-style-team.html) new team announcement. But I will admit: if you follow the [RFCs repository](https://github.com/rust-lang/rfcs/pull/3254), the [Rust zulip](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-types), or were particularly observant on the [GATs stabilization announcement post](https://blog.rust-lang.org/2022/10/28/gats-stabilization.html), then this *might* not be a surprise for you. In fact, this "new" team was officially established at the end of May last year. diff --git a/posts/2023-01-26-Rust-1.67.0.md b/posts/2023-01-26-Rust-1.67.0.md index 0f4fd3241..37d0fe31a 100644 --- a/posts/2023-01-26-Rust-1.67.0.md +++ b/posts/2023-01-26-Rust-1.67.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.67.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.67.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.67.0. Rust is a programming language empowering everyone to build reliable and efficient diff --git a/posts/2023-02-01-Rustup-1.25.2.md b/posts/2023-02-01-Rustup-1.25.2.md index 0d6e9292d..aad0ca2c5 100644 --- a/posts/2023-02-01-Rustup-1.25.2.md +++ b/posts/2023-02-01-Rustup-1.25.2.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.25.2" -author: The rustup working group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.25.2" +author = "The rustup working group" ++++ The rustup working group is announcing the release of rustup version 1.25.2. Rustup is the recommended tool to install Rust, a programming language that is diff --git a/posts/2023-02-09-Rust-1.67.1.md b/posts/2023-02-09-Rust-1.67.1.md index f91fbed2f..db3e5f773 100644 --- a/posts/2023-02-09-Rust-1.67.1.md +++ b/posts/2023-02-09-Rust-1.67.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.67.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.67.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.67.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2023-03-09-Rust-1.68.0.md b/posts/2023-03-09-Rust-1.68.0.md index 154952523..4da0a91ad 100644 --- a/posts/2023-03-09-Rust-1.68.0.md +++ b/posts/2023-03-09-Rust-1.68.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.68.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.68.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.68.0. Rust is a programming language empowering everyone to build reliable and efficient diff --git a/posts/2023-03-23-Rust-1.68.1.md b/posts/2023-03-23-Rust-1.68.1.md index f1e81a7fa..f4db51437 100644 --- a/posts/2023-03-23-Rust-1.68.1.md +++ b/posts/2023-03-23-Rust-1.68.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.68.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.68.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.68.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2023-03-28-Rust-1.68.2.md b/posts/2023-03-28-Rust-1.68.2.md index fe6488351..db678d66c 100644 --- a/posts/2023-03-28-Rust-1.68.2.md +++ b/posts/2023-03-28-Rust-1.68.2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.68.2" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.68.2" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.68.2. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md index 135d06bab..9ad2b1119 100644 --- a/posts/2023-04-20-Rust-1.69.0.md +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.69.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.69.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a nice version of Rust, 1.69.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2023-04-25-Rustup-1.26.0.md b/posts/2023-04-25-Rustup-1.26.0.md index 8d56f7f58..56f3eb10c 100644 --- a/posts/2023-04-25-Rustup-1.26.0.md +++ b/posts/2023-04-25-Rustup-1.26.0.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.26.0" -author: The Rustup Working Group ---- ++++ +layout = "post" +title = "Announcing Rustup 1.26.0" +author = "The Rustup Working Group" ++++ The rustup working group is happy to announce the release of rustup version 1.26.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2023-05-09-Updating-musl-targets.md b/posts/2023-05-09-Updating-musl-targets.md index 84312179f..df5d18890 100644 --- a/posts/2023-05-09-Updating-musl-targets.md +++ b/posts/2023-05-09-Updating-musl-targets.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Updating Rust's Linux musl targets" -author: Wesley Wiser -description: "musl targets will soon ship with musl 1.2" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Updating Rust's Linux musl targets" +author = "Wesley Wiser" +description = "musl targets will soon ship with musl 1.2" +team = "The Compiler Team " ++++ Beginning with Rust 1.71 (slated for stable release on 2023-07-13), the various `*-linux-musl` targets will [ship][PR] with musl 1.2.3. These targets currently use musl 1.1.24. diff --git a/posts/2023-05-29-RustConf.md b/posts/2023-05-29-RustConf.md index 818884495..20ecfe311 100644 --- a/posts/2023-05-29-RustConf.md +++ b/posts/2023-05-29-RustConf.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "On the RustConf keynote" -author: leadership chat membership -team: leadership chat ---- ++++ +layout = "post" +title = "On the RustConf keynote" +author = "leadership chat membership" +team = "leadership chat " ++++ On May 26th 2023, [JeanHeyd Meneide](https://thephd.dev/about/) announced they [would not speak at RustConf 2023 anymore](https://thephd.dev/i-am-no-longer-speaking-at-rustconf-2023). They were invited to give a keynote at the conference, only to be told two weeks later the keynote would be demoted to a normal talk, due to a decision made within the Rust project leadership. @@ -19,4 +19,4 @@ Organizationally, within leadership chat we will enforce a strict consensus rule We wish to close the post by reiterating our apology to JeanHeyd, but also the wider Rust community. You deserved better than you got from us. --- The [members of leadership chat](https://github.com/rust-lang/team/blob/2cea9916903fffafbfae6c78882d0924ce3c3a8a/teams/interim-leadership-chat.toml#L8-L25) \ No newline at end of file +-- The [members of leadership chat](https://github.com/rust-lang/team/blob/2cea9916903fffafbfae6c78882d0924ce3c3a8a/teams/interim-leadership-chat.toml#L8-L25) diff --git a/posts/2023-06-01-Rust-1.70.0.md b/posts/2023-06-01-Rust-1.70.0.md index e6b499416..0d45d9808 100644 --- a/posts/2023-06-01-Rust-1.70.0.md +++ b/posts/2023-06-01-Rust-1.70.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.70.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.70.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.70.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2023-06-20-introducing-leadership-council.md b/posts/2023-06-20-introducing-leadership-council.md index 0c43fc38e..45f4146ae 100644 --- a/posts/2023-06-20-introducing-leadership-council.md +++ b/posts/2023-06-20-introducing-leadership-council.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Introducing the Rust Leadership Council" -author: Leadership Council -team: Leadership Council ---- ++++ +layout = "post" +title = "Introducing the Rust Leadership Council" +author = "Leadership Council" +team = "Leadership Council " ++++ As of today, [RFC 3392] has been merged, forming the new top level governance body of the Rust Project: the Leadership Council. The creation of this Council marks the end of both the Core Team and the interim Leadership Chat. diff --git a/posts/2023-06-23-improved-api-tokens-for-crates-io.md b/posts/2023-06-23-improved-api-tokens-for-crates-io.md index dc4e3ed0c..c298b3bbe 100644 --- a/posts/2023-06-23-improved-api-tokens-for-crates-io.md +++ b/posts/2023-06-23-improved-api-tokens-for-crates-io.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Improved API tokens for crates.io -author: Tobias Bieniek -team: the crates.io team ---- ++++ +layout = "post" +title = "Improved API tokens for crates.io" +author = "Tobias Bieniek" +team = "the crates.io team " ++++ If you recently generated a new API token on crates.io, you might have noticed our new API token creation page and some of the new features it now supports. diff --git a/posts/2023-07-01-rustfmt-supports-let-else-statements.md b/posts/2023-07-01-rustfmt-supports-let-else-statements.md index b157ec447..42a594749 100644 --- a/posts/2023-07-01-rustfmt-supports-let-else-statements.md +++ b/posts/2023-07-01-rustfmt-supports-let-else-statements.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Rustfmt support for let-else statements -author: Caleb Cartwright -team: the style team and the rustfmt team ---- ++++ +layout = "post" +title = "Rustfmt support for let-else statements" +author = "Caleb Cartwright" +team = "the style team and the rustfmt team " ++++ Rustfmt will add support for formatting [let-else statements] starting with the nightly 2023-07-02 toolchain, and then let-else formatting support should come to stable Rust as part of the 1.72 release. @@ -62,4 +62,4 @@ Both the Style and Rustfmt teams hang out on Zulip so if you'd like to get more [style-edition-rfc]: https://rust-lang.github.io/rfcs/3338-style-evolution.html [nightly-syntax-policy]: https://github.com/rust-lang/style-team/blob/468570a02856a6bbe3994164e1a16a13b56b5cf4/nightly-style-procedure.md [style-zulip]: https://rust-lang.zulipchat.com/#narrow/stream/346005-t-style -[rustfmt-zulip]: https://rust-lang.zulipchat.com/#narrow/stream/357797-t-rustfmt \ No newline at end of file +[rustfmt-zulip]: https://rust-lang.zulipchat.com/#narrow/stream/357797-t-rustfmt diff --git a/posts/2023-07-05-regex-1.9.md b/posts/2023-07-05-regex-1.9.md index 862a00623..a082e4e3f 100644 --- a/posts/2023-07-05-regex-1.9.md +++ b/posts/2023-07-05-regex-1.9.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing regex 1.9" -author: Andrew Gallant -team: The regex crate team ---- ++++ +layout = "post" +title = "Announcing regex 1.9" +author = "Andrew Gallant" +team = "The regex crate team " ++++ The regex sub-team is announcing the release of `regex 1.9`. The `regex` crate is maintained by the Rust project and is the recommended way to use regular diff --git a/posts/2023-07-13-Rust-1.71.0.md b/posts/2023-07-13-Rust-1.71.0.md index 367b78f7d..1184ac329 100644 --- a/posts/2023-07-13-Rust-1.71.0.md +++ b/posts/2023-07-13-Rust-1.71.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.71.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.71.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.71.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2023-08-03-Rust-1.71.1.md b/posts/2023-08-03-Rust-1.71.1.md index ac24a8c41..bd8369439 100644 --- a/posts/2023-08-03-Rust-1.71.1.md +++ b/posts/2023-08-03-Rust-1.71.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.71.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.71.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.71.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2023-08-03-cve-2023-38497.md b/posts/2023-08-03-cve-2023-38497.md index 49612b3ad..d35b8de50 100644 --- a/posts/2023-08-03-cve-2023-38497.md +++ b/posts/2023-08-03-cve-2023-38497.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory for Cargo (CVE-2023-38497)" -author: The Rust Security Response WG ---- ++++ +layout = "post" +title = "Security advisory for Cargo (CVE-2023-38497)" +author = "The Rust Security Response WG" ++++ > This is a cross-post of [the official security advisory][advisory]. The > official advisory contains a signed version with our PGP key, as well. diff --git a/posts/2023-08-07-Rust-Survey-2023-Results.md b/posts/2023-08-07-Rust-Survey-2023-Results.md index e94bc627c..049ef2455 100644 --- a/posts/2023-08-07-Rust-Survey-2023-Results.md +++ b/posts/2023-08-07-Rust-Survey-2023-Results.md @@ -1,9 +1,9 @@ ---- -layout: post -title: 2022 Annual Rust Survey Results -author: The Rust Survey Working Group in partnership with the Rust Foundation -release: false ---- ++++ +layout = "post" +title = "2022 Annual Rust Survey Results" +author = "The Rust Survey Working Group in partnership with the Rust Foundation" +release = false ++++ Hello, Rustaceans! diff --git a/posts/2023-08-24-Rust-1.72.0.md b/posts/2023-08-24-Rust-1.72.0.md index aac477930..1f8eec400 100644 --- a/posts/2023-08-24-Rust-1.72.0.md +++ b/posts/2023-08-24-Rust-1.72.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.72.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.72.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.72.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2023-08-29-committing-lockfiles.md b/posts/2023-08-29-committing-lockfiles.md index 6a13216ca..446715e1e 100644 --- a/posts/2023-08-29-committing-lockfiles.md +++ b/posts/2023-08-29-committing-lockfiles.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Change in Guidance on Committing Lockfiles" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "Change in Guidance on Committing Lockfiles" +author = "Ed Page" +team = "The Cargo Team " ++++ For years, the Cargo team has encouraged Rust developers to [commit their `Cargo.lock` file for packages with binaries but not libraries](https://doc.rust-lang.org/1.71.1/cargo/faq.html#why-do-binaries-have-cargolock-in-version-control-but-not-libraries). diff --git a/posts/2023-08-30-electing-new-project-directors.md b/posts/2023-08-30-electing-new-project-directors.md index cfb653e9e..8c2a2bfc2 100644 --- a/posts/2023-08-30-electing-new-project-directors.md +++ b/posts/2023-08-30-electing-new-project-directors.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Electing New Project Directors" -author: Leadership Council -team: Leadership Council ---- ++++ +layout = "post" +title = "Electing New Project Directors" +author = "Leadership Council" +team = "Leadership Council " ++++ Today we are launching the process to elect new Project Directors to the Rust Foundation Board of Directors. As we begin the process, we wanted to spend some time explaining the goals and procedures we will follow. diff --git a/posts/2023-09-19-Rust-1.72.1.md b/posts/2023-09-19-Rust-1.72.1.md index a4e55ad9a..cdf222c77 100644 --- a/posts/2023-09-19-Rust-1.72.1.md +++ b/posts/2023-09-19-Rust-1.72.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.72.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.72.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.72.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2023-09-22-crates-io-usage-policy-rfc.md b/posts/2023-09-22-crates-io-usage-policy-rfc.md index c9ba7c704..681e1236a 100644 --- a/posts/2023-09-22-crates-io-usage-policy-rfc.md +++ b/posts/2023-09-22-crates-io-usage-policy-rfc.md @@ -1,9 +1,9 @@ ---- -layout: post -title: crates.io Policy Update RFC -author: Tobias Bieniek -team: the crates.io team ---- ++++ +layout = "post" +title = "crates.io Policy Update RFC" +author = "Tobias Bieniek" +team = "the crates.io team " ++++ Around the end of July the crates.io team opened an [RFC](https://github.com/rust-lang/rfcs/pull/3463) to update the current crates.io usage policies. This policy update addresses operational concerns of the crates.io community service that have arisen since the last significant policy update in 2017, particularly related to name squatting and spam. The RFC has caused considerable discussion, and most of the suggested improvements have since been integrated into the proposal. diff --git a/posts/2023-09-25-Increasing-Apple-Version-Requirements.md b/posts/2023-09-25-Increasing-Apple-Version-Requirements.md index 4aeef2a23..f5f9a5c2f 100644 --- a/posts/2023-09-25-Increasing-Apple-Version-Requirements.md +++ b/posts/2023-09-25-Increasing-Apple-Version-Requirements.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Increasing the minimum supported Apple platform versions" -author: BlackHoleFox -description: "Modernizing and improving Apple platform support for Rust" ---- ++++ +layout = "post" +title = "Increasing the minimum supported Apple platform versions" +author = "BlackHoleFox" +description = "Modernizing and improving Apple platform support for Rust" ++++ As of Rust 1.74 (to be released on November 16th, 2023), the minimum version of Apple's platforms (iOS, macOS, and tvOS) that the Rust toolchain supports will be [increased](https://github.com/rust-lang/rust/pull/104385) to newer baselines. These changes affect both the Rust compiler itself (`rustc`), other host tooling, and most importantly, the standard library and any binaries produced that use it. With these changes in place, any binaries produced will stop loading on older versions or exhibit other, unspecified, behavior. diff --git a/posts/2023-10-05-Rust-1.73.0.md b/posts/2023-10-05-Rust-1.73.0.md index 8f8d115d8..879cdf655 100644 --- a/posts/2023-10-05-Rust-1.73.0.md +++ b/posts/2023-10-05-Rust-1.73.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.73.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.73.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.73.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2023-10-19-announcing-the-new-rust-project-directors.md b/posts/2023-10-19-announcing-the-new-rust-project-directors.md index 97358232f..98f0a14fd 100644 --- a/posts/2023-10-19-announcing-the-new-rust-project-directors.md +++ b/posts/2023-10-19-announcing-the-new-rust-project-directors.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing the New Rust Project Directors" -author: Leadership Council -team: Leadership Council ---- ++++ +layout = "post" +title = "Announcing the New Rust Project Directors" +author = "Leadership Council" +team = "Leadership Council " ++++ We are happy to announce that we have completed the process to elect new Project Directors. diff --git a/posts/2023-10-26-broken-badges-and-23k-keywords.md b/posts/2023-10-26-broken-badges-and-23k-keywords.md index 0e21d2ac9..771d49ac2 100644 --- a/posts/2023-10-26-broken-badges-and-23k-keywords.md +++ b/posts/2023-10-26-broken-badges-and-23k-keywords.md @@ -1,9 +1,9 @@ ---- -layout: post -title: A tale of broken badges and 23,000 features -author: Tobias Bieniek -team: the crates.io team ---- ++++ +layout = "post" +title = "A tale of broken badges and 23,000 features" +author = "Tobias Bieniek" +team = "the crates.io team " ++++ Around mid-October of 2023 the crates.io team was [notified](https://github.com/rust-lang/crates.io/issues/7269) by one of our users that a [shields.io](https://shields.io) badge for their crate stopped working. The issue reporter was kind enough to already debug the problem and figured out that the API request that shields.io sends to crates.io was most likely the problem. Here is a quote from the original issue: diff --git a/posts/2023-10-27-crates-io-non-canonical-downloads.md b/posts/2023-10-27-crates-io-non-canonical-downloads.md index 7c4e8bf6a..37679b2de 100644 --- a/posts/2023-10-27-crates-io-non-canonical-downloads.md +++ b/posts/2023-10-27-crates-io-non-canonical-downloads.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "crates.io: Dropping support for non-canonical downloads" -author: Tobias Bieniek -team: the crates.io team ---- ++++ +layout = "post" +title = "crates.io: Dropping support for non-canonical downloads" +author = "Tobias Bieniek" +team = "the crates.io team " ++++ ## TL;DR diff --git a/posts/2023-11-09-parallel-rustc.md b/posts/2023-11-09-parallel-rustc.md index 09e6a1d23..251f145c4 100644 --- a/posts/2023-11-09-parallel-rustc.md +++ b/posts/2023-11-09-parallel-rustc.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Faster compilation with the parallel front-end in nightly -author: Nicholas Nethercote -team: The Parallel Rustc Working Group ---- ++++ +layout = "post" +title = "Faster compilation with the parallel front-end in nightly" +author = "Nicholas Nethercote" +team = "The Parallel Rustc Working Group " ++++ The Rust compiler's front-end can now use parallel execution to significantly reduce compile times. To try it, run the nightly compiler with the `-Z diff --git a/posts/2023-11-16-Rust-1.74.0.md b/posts/2023-11-16-Rust-1.74.0.md index 3b5d26e37..d5c4be80b 100644 --- a/posts/2023-11-16-Rust-1.74.0.md +++ b/posts/2023-11-16-Rust-1.74.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.74.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.74.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.74.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2023-12-07-Rust-1.74.1.md b/posts/2023-12-07-Rust-1.74.1.md index 834caaded..6e9bb3526 100644 --- a/posts/2023-12-07-Rust-1.74.1.md +++ b/posts/2023-12-07-Rust-1.74.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.74.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.74.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.74.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2023-12-11-cargo-cache-cleaning.md b/posts/2023-12-11-cargo-cache-cleaning.md index 921e3ecfb..e8ca6e1e0 100644 --- a/posts/2023-12-11-cargo-cache-cleaning.md +++ b/posts/2023-12-11-cargo-cache-cleaning.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Cargo cache cleaning" -author: Eric Huss -team: The Cargo Team ---- ++++ +layout = "post" +title = "Cargo cache cleaning" +author = "Eric Huss" +team = "The Cargo Team " ++++ Cargo has recently gained an unstable feature on the nightly channel (starting with nightly-2023-11-17) to perform automatic cleaning of cache content within Cargo's home directory. This post includes: diff --git a/posts/2023-12-15-2024-Edition-CFP.md b/posts/2023-12-15-2024-Edition-CFP.md index 27c5f665f..3b69bc004 100644 --- a/posts/2023-12-15-2024-Edition-CFP.md +++ b/posts/2023-12-15-2024-Edition-CFP.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "A Call for Proposals for the Rust 2024 Edition" -author: "Ben Striegel on behalf of the Edition 2024 Project Group" -release: false ---- ++++ +layout = "post" +title = "A Call for Proposals for the Rust 2024 Edition" +author = "Ben Striegel on behalf of the Edition 2024 Project Group" +release = false ++++ The year 2024 is soon to be upon us, and as long-time Rust aficionados know, that means that a new Edition of Rust is on the horizon! diff --git a/posts/2023-12-18-survey-launch.md b/posts/2023-12-18-survey-launch.md index 78ab2ebe1..ead0f04cc 100644 --- a/posts/2023-12-18-survey-launch.md +++ b/posts/2023-12-18-survey-launch.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Launching the 2023 State of Rust Survey" -author: The Rust Survey Working Group -description: "Share your experience using Rust in the eighth edition of the State of Rust Survey" ---- ++++ +layout = "post" +title = "Launching the 2023 State of Rust Survey" +author = "The Rust Survey Working Group" +description = "Share your experience using Rust in the eighth edition of the State of Rust Survey" ++++ It’s time for the [2023 State of Rust Survey](https://www.surveyhero.com/c/4vxempzc)! diff --git a/posts/2023-12-21-async-fn-rpit-in-traits.md b/posts/2023-12-21-async-fn-rpit-in-traits.md index 6e5d28656..04179715b 100644 --- a/posts/2023-12-21-async-fn-rpit-in-traits.md +++ b/posts/2023-12-21-async-fn-rpit-in-traits.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing `async fn` and return-position `impl Trait` in traits" -author: Tyler Mandry -team: The Async Working Group ---- ++++ +layout = "post" +title = "Announcing `async fn` and return-position `impl Trait` in traits" +author = "Tyler Mandry" +team = "The Async Working Group " ++++ The Rust Async Working Group is excited to announce major progress towards our goal of enabling the use of `async fn` in traits. Rust 1.75, which hits stable next week, will include support for both `-> impl Trait` notation and `async fn` in traits. diff --git a/posts/2023-12-28-Rust-1.75.0.md b/posts/2023-12-28-Rust-1.75.0.md index 24b503df8..e16ff10c4 100644 --- a/posts/2023-12-28-Rust-1.75.0.md +++ b/posts/2023-12-28-Rust-1.75.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.75.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.75.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.75.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2024-02-06-crates-io-status-codes.md b/posts/2024-02-06-crates-io-status-codes.md index ccae647b5..613934025 100644 --- a/posts/2024-02-06-crates-io-status-codes.md +++ b/posts/2024-02-06-crates-io-status-codes.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "crates.io: API status code changes" -author: Tobias Bieniek -team: the crates.io team ---- ++++ +layout = "post" +title = "crates.io: API status code changes" +author = "Tobias Bieniek" +team = "the crates.io team " ++++ Cargo and crates.io were developed in the rush leading up to the Rust 1.0 release to fill the needs for a tool to manage dependencies and a registry that people could use to share code. This rapid work resulted in these tools being connected with an API that initially didn't return the correct [HTTP response status codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status). After the Rust 1.0 release, Rust's stability guarantees around backward compatibility made this non-trivial to fix, as we wanted older versions of Cargo to continue working with the current crates.io API. diff --git a/posts/2024-02-08-Rust-1.76.0.md b/posts/2024-02-08-Rust-1.76.0.md index d69386f21..7881c8a8e 100644 --- a/posts/2024-02-08-Rust-1.76.0.md +++ b/posts/2024-02-08-Rust-1.76.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.76.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.76.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.76.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md b/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md index 1001947b9..988824897 100644 --- a/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md +++ b/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "2023 Annual Rust Survey Results" -author: The Rust Survey Team ---- ++++ +layout = "post" +title = "2023 Annual Rust Survey Results" +author = "The Rust Survey Team" ++++ Hello, Rustaceans! diff --git a/posts/2024-02-21-Rust-participates-in-GSoC-2024.md b/posts/2024-02-21-Rust-participates-in-GSoC-2024.md index 49609ceab..5b62857aa 100644 --- a/posts/2024-02-21-Rust-participates-in-GSoC-2024.md +++ b/posts/2024-02-21-Rust-participates-in-GSoC-2024.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust participates in Google Summer of Code 2024" -author: Jakub Beránek, Jack Huey and Paul Lenz ---- ++++ +layout = "post" +title = "Rust participates in Google Summer of Code 2024" +author = "Jakub Beránek, Jack Huey and Paul Lenz" ++++ We're writing this blog post to announce that the Rust Project will be participating in [Google Summer of Code (GSoC) 2024][gsoc]. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful information and links. diff --git a/posts/2024-02-26-Windows-7.md b/posts/2024-02-26-Windows-7.md index 4eecd7173..ea57c68c8 100644 --- a/posts/2024-02-26-Windows-7.md +++ b/posts/2024-02-26-Windows-7.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Updated baseline standards for Windows targets" -author: Chris Denton on behalf of the Compiler Team ---- ++++ +layout = "post" +title = "Updated baseline standards for Windows targets" +author = "Chris Denton on behalf of the Compiler Team" ++++ The minimum requirements for Tier 1 toolchains targeting Windows will increase with the 1.78 release (scheduled for May 02, 2024). Windows 10 will now be the minimum supported version for the `*-pc-windows-*` targets. diff --git a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md index d141b7a82..a6423e2ec 100644 --- a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md +++ b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Clippy: Deprecating `feature = \"cargo-clippy\"`" -author: The Clippy Team ---- ++++ +layout = "post" +title = "Clippy: Deprecating `feature = \"cargo-clippy\"`" +author = "The Clippy Team" ++++ Since Clippy [`v0.0.97`] and before it was shipped with `rustup`, Clippy implicitly added a `feature = "cargo-clippy"` config[^1] when linting your code diff --git a/posts/2024-03-11-Rustup-1.27.0.md b/posts/2024-03-11-Rustup-1.27.0.md index 0466ea95d..09e9fa9b9 100644 --- a/posts/2024-03-11-Rustup-1.27.0.md +++ b/posts/2024-03-11-Rustup-1.27.0.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.27.0" -author: The Rustup Team ---- ++++ +layout = "post" +title = "Announcing Rustup 1.27.0" +author = "The Rustup Team" ++++ The rustup team is happy to announce the release of rustup version 1.27.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2024-03-11-crates-io-download-changes.md b/posts/2024-03-11-crates-io-download-changes.md index 255ed747a..6ccf958ac 100644 --- a/posts/2024-03-11-crates-io-download-changes.md +++ b/posts/2024-03-11-crates-io-download-changes.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "crates.io: Download changes" -author: Tobias Bieniek -team: the crates.io team ---- ++++ +layout = "post" +title = "crates.io: Download changes" +author = "Tobias Bieniek" +team = "the crates.io team " ++++ Like the rest of the Rust community, [crates.io](https://crates.io) has been growing rapidly, with download and package counts increasing 2-3x year-on-year. This growth doesn't come without problems, and we have made some changes to download handling on crates.io to ensure we can keep providing crates for a long time to come. diff --git a/posts/2024-03-21-Rust-1.77.0.md b/posts/2024-03-21-Rust-1.77.0.md index 375d7b33a..acf6decc8 100644 --- a/posts/2024-03-21-Rust-1.77.0.md +++ b/posts/2024-03-21-Rust-1.77.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.77.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.77.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.77.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2024-03-28-Rust-1.77.1.md b/posts/2024-03-28-Rust-1.77.1.md index c27a3400a..6082eb698 100644 --- a/posts/2024-03-28-Rust-1.77.1.md +++ b/posts/2024-03-28-Rust-1.77.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.77.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.77.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.77.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2024-03-30-i128-layout-update.md b/posts/2024-03-30-i128-layout-update.md index 54b2d42b5..51b2b4eb4 100644 --- a/posts/2024-03-30-i128-layout-update.md +++ b/posts/2024-03-30-i128-layout-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Changes to `u128`/`i128` layout in 1.77 and 1.78" -author: Trevor Gross -team: The Rust Lang Team ---- ++++ +layout = "post" +title = "Changes to `u128`/`i128` layout in 1.77 and 1.78" +author = "Trevor Gross" +team = "The Rust Lang Team " ++++ Rust has long had an inconsistency with C regarding the alignment of 128-bit integers on the x86-32 and x86-64 architectures. This problem has recently been resolved, but diff --git a/posts/2024-04-09-Rust-1.77.2.md b/posts/2024-04-09-Rust-1.77.2.md index d499439c3..3aa735f40 100644 --- a/posts/2024-04-09-Rust-1.77.2.md +++ b/posts/2024-04-09-Rust-1.77.2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.77.2" -author: The Rust Security Response WG -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.77.2" +author = "The Rust Security Response WG" +release = true ++++ The Rust team has published a new point release of Rust, 1.77.2. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2024-04-09-cve-2024-24576.md b/posts/2024-04-09-cve-2024-24576.md index 2168b0e64..0e5b0968d 100644 --- a/posts/2024-04-09-cve-2024-24576.md +++ b/posts/2024-04-09-cve-2024-24576.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory for the standard library (CVE-2024-24576)" -author: The Rust Security Response WG ---- ++++ +layout = "post" +title = "Security advisory for the standard library (CVE-2024-24576)" +author = "The Rust Security Response WG" ++++ The Rust Security Response WG was notified that the Rust standard library did not properly escape arguments when invoking batch files (with the `bat` and diff --git a/posts/2024-04-09-updates-to-rusts-wasi-targets.md b/posts/2024-04-09-updates-to-rusts-wasi-targets.md index 26d7a5ab3..e146ff182 100644 --- a/posts/2024-04-09-updates-to-rusts-wasi-targets.md +++ b/posts/2024-04-09-updates-to-rusts-wasi-targets.md @@ -1,8 +1,8 @@ ---- -layout: post -title: Changes to Rust's WASI targets -author: Yosh Wuyts ---- ++++ +layout = "post" +title = "Changes to Rust's WASI targets" +author = "Yosh Wuyts" ++++ [WASI 0.2 was recently stabilized](https://bytecodealliance.org/articles/WASI-0.2), and Rust has begun diff --git a/posts/2024-05-01-gsoc-2024-selected-projects.md b/posts/2024-05-01-gsoc-2024-selected-projects.md index 5b62b60b4..bd9229e76 100644 --- a/posts/2024-05-01-gsoc-2024-selected-projects.md +++ b/posts/2024-05-01-gsoc-2024-selected-projects.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Google Summer of Code 2024 selected projects" -author: Jakub Beránek, Jack Huey and Paul Lenz ---- ++++ +layout = "post" +title = "Announcing Google Summer of Code 2024 selected projects" +author = "Jakub Beránek, Jack Huey and Paul Lenz" ++++ The Rust Project is [participating][gsoc blog post] in [Google Summer of Code (GSoC) 2024][gsoc], a global program organized by Google which is designed to bring new contributors to the world of open-source. diff --git a/posts/2024-05-02-Rust-1.78.0.md b/posts/2024-05-02-Rust-1.78.0.md index 93f668d7f..baeb69d7a 100644 --- a/posts/2024-05-02-Rust-1.78.0.md +++ b/posts/2024-05-02-Rust-1.78.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.78.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.78.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.78.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2024-05-06-Rustup-1.27.1.md b/posts/2024-05-06-Rustup-1.27.1.md index 9088c24bb..58d6c9b6d 100644 --- a/posts/2024-05-06-Rustup-1.27.1.md +++ b/posts/2024-05-06-Rustup-1.27.1.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.27.1" -author: The Rustup Team ---- ++++ +layout = "post" +title = "Announcing Rustup 1.27.1" +author = "The Rustup Team" ++++ The Rustup team is happy to announce the release of Rustup version 1.27.1. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2024-05-06-check-cfg.md b/posts/2024-05-06-check-cfg.md index 24c4ef344..f1e0e372a 100644 --- a/posts/2024-05-06-check-cfg.md +++ b/posts/2024-05-06-check-cfg.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Automatic checking of cfgs at compile-time" -author: Urgau -team: The Cargo Team ---- ++++ +layout = "post" +title = "Automatic checking of cfgs at compile-time" +author = "Urgau" +team = "The Cargo Team " ++++ The Cargo and Compiler team are delighted to announce that starting with Rust 1.80 (or nightly-2024-05-05) every _reachable_ `#[cfg]` will be **automatically checked** that they match the **expected config names and values**. diff --git a/posts/2024-05-07-OSPP-2024.md b/posts/2024-05-07-OSPP-2024.md index 30fd3a66e..925fc2647 100644 --- a/posts/2024-05-07-OSPP-2024.md +++ b/posts/2024-05-07-OSPP-2024.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust participates in OSPP 2024" -author: Amanieu d'Antras, Jack Huey, and Jakub Beránek ---- ++++ +layout = "post" +title = "Rust participates in OSPP 2024" +author = "Amanieu d'Antras, Jack Huey, and Jakub Beránek" ++++ Similar to our [previous][gsoc-announcement] [announcements][gsoc-project-announcement] of the Rust Project's participation in Google Summer of Code (GSoC), we are now announcing our participation in [Open Source Promotion Plan (OSPP) 2024][ospp]. diff --git a/posts/2024-05-17-enabling-rust-lld-on-linux.md b/posts/2024-05-17-enabling-rust-lld-on-linux.md index fbb638b68..356c8229c 100644 --- a/posts/2024-05-17-enabling-rust-lld-on-linux.md +++ b/posts/2024-05-17-enabling-rust-lld-on-linux.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Faster linking times on nightly on Linux using `rust-lld` -author: Rémy Rakic -team: the compiler performance working group ---- ++++ +layout = "post" +title = "Faster linking times on nightly on Linux using `rust-lld`" +author = "Rémy Rakic" +team = "the compiler performance working group " ++++ TL;DR: rustc will use `rust-lld` by default on `x86_64-unknown-linux-gnu` on nightly to significantly reduce linking times. diff --git a/posts/2024-06-13-Rust-1.79.0.md b/posts/2024-06-13-Rust-1.79.0.md index 35e346382..8812c4abc 100644 --- a/posts/2024-06-13-Rust-1.79.0.md +++ b/posts/2024-06-13-Rust-1.79.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.79.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.79.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.79.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2024-06-26-types-team-update.md b/posts/2024-06-26-types-team-update.md index 073e7601a..7aa313c84 100644 --- a/posts/2024-06-26-types-team-update.md +++ b/posts/2024-06-26-types-team-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Types Team Update and Roadmap" -author: lcnr -team: The Types Team ---- ++++ +layout = "post" +title = "Types Team Update and Roadmap" +author = "lcnr" +team = "The Types Team " ++++ It has been more than a year since [the initial blog post][TypesAnnouncement] announcing the Types team, and our initial set of goals. For details on what the team is, why it was formed, or our previously-stated overarching goals, go check out that blog post. In short the Types team's purview extends to the parts of the Rust language and compiler that involve the type system, e.g. type checking, trait solving, and borrow checking. Our short and long term goals effectively work to make the type system sound, consistent, extensible, and fast. diff --git a/posts/2024-07-25-Rust-1.80.0.md b/posts/2024-07-25-Rust-1.80.0.md index 69f595ab7..d21f659c1 100644 --- a/posts/2024-07-25-Rust-1.80.0.md +++ b/posts/2024-07-25-Rust-1.80.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.80.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.80.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.80.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2024-07-29-crates-io-development-update.md b/posts/2024-07-29-crates-io-development-update.md index d14d58374..1aeb14423 100644 --- a/posts/2024-07-29-crates-io-development-update.md +++ b/posts/2024-07-29-crates-io-development-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "crates.io: development update" -author: Tobias Bieniek -team: the crates.io team ---- ++++ +layout = "post" +title = "crates.io: development update" +author = "Tobias Bieniek" +team = "the crates.io team " ++++ Since crates.io does not have releases in the classical sense, there are no release notes either. However, the crates.io team still wants to keep you all updated about the ongoing development of crates.io. This blog post is a summary of the most significant changes that we have made to crates.io in the past months. diff --git a/posts/2024-08-08-Rust-1.80.1.md b/posts/2024-08-08-Rust-1.80.1.md index 17cbc3997..b65309d9f 100644 --- a/posts/2024-08-08-Rust-1.80.1.md +++ b/posts/2024-08-08-Rust-1.80.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.80.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.80.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.80.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2024-08-12-Project-goals.md b/posts/2024-08-12-Project-goals.md index c8a68a170..b44213cce 100644 --- a/posts/2024-08-12-Project-goals.md +++ b/posts/2024-08-12-Project-goals.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust Project goals for 2024" -author: Niko Matsakis -team: Leadership Council ---- ++++ +layout = "post" +title = "Rust Project goals for 2024" +author = "Niko Matsakis" +team = "Leadership Council " ++++ With the merging of [RFC #3672][], the Rust project has selected a **slate of 26 Project Goals** for the second half of 2024 (2024H2). This is our first time running an [experimental new roadmapping process][RFC #3614]; assuming all goes well, we expect to be running the process roughly every six months. Of these goals, we have designated three of them as our **flagship goals**, representing our most ambitious and most impactful efforts: (1) finalize preparations for the Rust 2024 edition; (2) bring the Async Rust experience closer to parity with sync Rust; and (3) resolve the biggest blockers to the Linux kernel building on stable Rust. As the year progresses we'll be posting regular updates on these 3 flagship goals along with the 23 others. diff --git a/posts/2024-08-26-council-survey.md b/posts/2024-08-26-council-survey.md index 870fe63e2..6d5005c7d 100644 --- a/posts/2024-08-26-council-survey.md +++ b/posts/2024-08-26-council-survey.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "2024 Leadership Council Survey" -author: The Leadership Council ---- ++++ +layout = "post" +title = "2024 Leadership Council Survey" +author = "The Leadership Council" ++++ One of the responsibilities of the [leadership council](https://www.rust-lang.org/governance/teams/leadership-council), formed by [RFC 3392], is to solicit feedback on a yearly basis from the Project diff --git a/posts/2024-09-04-cve-2024-43402.md b/posts/2024-09-04-cve-2024-43402.md index dcd061ca6..5fd74e250 100644 --- a/posts/2024-09-04-cve-2024-43402.md +++ b/posts/2024-09-04-cve-2024-43402.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Security advisory for the standard library (CVE-2024-43402)" -author: The Rust Security Response WG ---- ++++ +layout = "post" +title = "Security advisory for the standard library (CVE-2024-43402)" +author = "The Rust Security Response WG" ++++ On April 9th, 2024, the Rust Security Response WG disclosed [CVE-2024-24576][1], where `std::process::Command` incorrectly escaped arguments when invoking batch diff --git a/posts/2024-09-05-Rust-1.81.0.md b/posts/2024-09-05-Rust-1.81.0.md index 94f7c4e5b..b9197f80e 100644 --- a/posts/2024-09-05-Rust-1.81.0.md +++ b/posts/2024-09-05-Rust-1.81.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.81.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.81.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.81.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2024-09-05-impl-trait-capture-rules.md b/posts/2024-09-05-impl-trait-capture-rules.md index 49aff8605..c1bf4bda5 100644 --- a/posts/2024-09-05-impl-trait-capture-rules.md +++ b/posts/2024-09-05-impl-trait-capture-rules.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Changes to `impl Trait` in Rust 2024" -author: Niko Matsakis -team: the language team ---- ++++ +layout = "post" +title = "Changes to `impl Trait` in Rust 2024" +author = "Niko Matsakis" +team = "the language team " ++++ The default way `impl Trait` works in return position is changing in Rust 2024. These changes are meant to simplify `impl Trait` to better match what people want most of the time. We're also adding a flexible syntax that gives you full control when you need it. ## TL;DR diff --git a/posts/2024-09-23-Project-Goals-Sep-Update.md b/posts/2024-09-23-Project-Goals-Sep-Update.md index 8a67f9758..86f4aec62 100644 --- a/posts/2024-09-23-Project-Goals-Sep-Update.md +++ b/posts/2024-09-23-Project-Goals-Sep-Update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "September Project Goals Update" -author: Niko Matsakis -team: Leadership Council ---- ++++ +layout = "post" +title = "September Project Goals Update" +author = "Niko Matsakis" +team = "Leadership Council " ++++ The Rust project is currently working towards a [slate of 26 project goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html), with 3 of them designed as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html#flagship-goals). This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated [tracking issue on the rust-project-goals repository](https://github.com/rust-lang/rust-project-goals/milestone/2). diff --git a/posts/2024-09-24-webassembly-targets-change-in-default-target-features.md b/posts/2024-09-24-webassembly-targets-change-in-default-target-features.md index f2fa238c9..19748d157 100644 --- a/posts/2024-09-24-webassembly-targets-change-in-default-target-features.md +++ b/posts/2024-09-24-webassembly-targets-change-in-default-target-features.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "WebAssembly targets: change in default target-features" -author: Alex Crichton -team: The Compiler Team ---- ++++ +layout = "post" +title = "WebAssembly targets: change in default target-features" +author = "Alex Crichton" +team = "The Compiler Team " ++++ The Rust compiler has [recently upgraded to using LLVM 19][llvm19] and this change accompanies some updates to the default set of target features enabled diff --git a/posts/2024-10-17-Rust-1.82.0.md b/posts/2024-10-17-Rust-1.82.0.md index ae84a27dd..00d026de9 100644 --- a/posts/2024-10-17-Rust-1.82.0.md +++ b/posts/2024-10-17-Rust-1.82.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.82.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.82.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.82.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2024-10-31-project-goals-oct-update.md b/posts/2024-10-31-project-goals-oct-update.md index 617661d49..4ac74d7ea 100644 --- a/posts/2024-10-31-project-goals-oct-update.md +++ b/posts/2024-10-31-project-goals-oct-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "October project goals update" -author: Niko Matsakis -team: Leadership Council ---- ++++ +layout = "post" +title = "October project goals update" +author = "Niko Matsakis" +team = "Leadership Council " ++++ The Rust project is currently working towards a [slate of 26 project goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html), with 3 of them designed as [flagship goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html#flagship-goals). This post provides selected diff --git a/posts/2024-11-06-trademark-update.md b/posts/2024-11-06-trademark-update.md index ebd2cc360..36361a2bf 100644 --- a/posts/2024-11-06-trademark-update.md +++ b/posts/2024-11-06-trademark-update.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Next Steps on the Rust Trademark Policy" -author: the Leadership Council ---- ++++ +layout = "post" +title = "Next Steps on the Rust Trademark Policy" +author = "the Leadership Council" ++++ As many of you know, the Rust language trademark policy has been the subject of an extended revision process dating back to 2022. In 2023, the Rust Foundation diff --git a/posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md b/posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md index 54968cbde..036752443 100644 --- a/posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md +++ b/posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "gccrs: An alternative compiler for Rust" -author: "Arthur Cohen on behalf of the gccrs project" ---- ++++ +layout = "post" +title = "gccrs: An alternative compiler for Rust" +author = "Arthur Cohen on behalf of the gccrs project" ++++ *This is a guest post from the gccrs project, at the invitation of the Rust Project, to clarify the relationship with the Rust Project and the opportunities for collaboration.* diff --git a/posts/2024-11-07-gsoc-2024-results.md b/posts/2024-11-07-gsoc-2024-results.md index 1fee61985..d63be846f 100644 --- a/posts/2024-11-07-gsoc-2024-results.md +++ b/posts/2024-11-07-gsoc-2024-results.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Google Summer of Code 2024 results" -author: Jakub Beránek, Jack Huey and Paul Lenz ---- ++++ +layout = "post" +title = "Google Summer of Code 2024 results" +author = "Jakub Beránek, Jack Huey and Paul Lenz" ++++ As we have previously [announced][gsoc-blog-post], the Rust Project participated in [Google Summer of Code (GSoC)][gsoc] for the first time this year. Nine contributors have been tirelessly working on their exciting projects diff --git a/posts/2024-11-26-wasip2-tier-2.md b/posts/2024-11-26-wasip2-tier-2.md index 5c88dbb24..7a985f503 100644 --- a/posts/2024-11-26-wasip2-tier-2.md +++ b/posts/2024-11-26-wasip2-tier-2.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "The wasm32-wasip2 Target Has Reached Tier 2 Support" -author: Yosh Wuyts ---- ++++ +layout = "post" +title = "The wasm32-wasip2 Target Has Reached Tier 2 Support" +author = "Yosh Wuyts" ++++ ## Introduction diff --git a/posts/2024-11-27-Rust-2024-public-testing.md b/posts/2024-11-27-Rust-2024-public-testing.md index 9dabf7a0b..ca1973da7 100644 --- a/posts/2024-11-27-Rust-2024-public-testing.md +++ b/posts/2024-11-27-Rust-2024-public-testing.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust 2024 call for testing" -author: "Eric Huss & TC" -team: the Edition 2024 Project Group ---- ++++ +layout = "post" +title = "Rust 2024 call for testing" +author = "Eric Huss & TC" +team = "the Edition 2024 Project Group " ++++ # Rust 2024 call for testing diff --git a/posts/2024-11-28-Rust-1.83.0.md b/posts/2024-11-28-Rust-1.83.0.md index 7b7671f03..f5d5e8779 100644 --- a/posts/2024-11-28-Rust-1.83.0.md +++ b/posts/2024-11-28-Rust-1.83.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.83.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.83.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.83.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2024-12-05-annual-survey-2024-launch.md b/posts/2024-12-05-annual-survey-2024-launch.md index 38a82e4a3..8af8e3ad5 100644 --- a/posts/2024-12-05-annual-survey-2024-launch.md +++ b/posts/2024-12-05-annual-survey-2024-launch.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Launching the 2024 State of Rust Survey" -author: The Rust Survey Working Group -description: "Share your experience using Rust in the ninth edition of the State of Rust Survey" ---- ++++ +layout = "post" +title = "Launching the 2024 State of Rust Survey" +author = "The Rust Survey Working Group" +description = "Share your experience using Rust in the ninth edition of the State of Rust Survey" ++++ It’s time for the [2024 State of Rust Survey][survey-link]! diff --git a/posts/2024-12-16-project-goals-nov-update.md b/posts/2024-12-16-project-goals-nov-update.md index ad9004458..7ded73917 100644 --- a/posts/2024-12-16-project-goals-nov-update.md +++ b/posts/2024-12-16-project-goals-nov-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "November project goals update" -author: Niko Matsakis -team: Leadership Council ---- ++++ +layout = "post" +title = "November project goals update" +author = "Niko Matsakis" +team = "Leadership Council " ++++ The Rust project is currently working towards a [slate of 26 project goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html), with 3 of them designed as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html#flagship-goals). This post provides selected diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index cc98a3f69..31b6c5e36 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.84.0" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.84.0" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.84.0. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2025-01-22-rust-2024-beta.md b/posts/2025-01-22-rust-2024-beta.md index e4d9743a3..ddea97264 100644 --- a/posts/2025-01-22-rust-2024-beta.md +++ b/posts/2025-01-22-rust-2024-beta.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust 2024 in beta channel" -author: "TC & Eric Huss" -team: the Edition 2024 Project Group ---- ++++ +layout = "post" +title = "Rust 2024 in beta channel" +author = "TC & Eric Huss" +team = "the Edition 2024 Project Group " ++++ # Rust 2024 in beta channel diff --git a/posts/2025-01-23-Project-Goals-Dec-Update.md b/posts/2025-01-23-Project-Goals-Dec-Update.md index e1d74168a..1e76397dc 100644 --- a/posts/2025-01-23-Project-Goals-Dec-Update.md +++ b/posts/2025-01-23-Project-Goals-Dec-Update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "December Project Goals Update" -author: David Wood and Niko Matsakis -team: Leadership Council ---- ++++ +layout = "post" +title = "December Project Goals Update" +author = "David Wood and Niko Matsakis" +team = "Leadership Council " ++++ Over the last six months, the Rust project has been working towards a [slate of 26 project goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html), with 3 of them designated diff --git a/posts/2025-01-30-Rust-1.84.1.md b/posts/2025-01-30-Rust-1.84.1.md index ae4ea53a3..44fe93fa7 100644 --- a/posts/2025-01-30-Rust-1.84.1.md +++ b/posts/2025-01-30-Rust-1.84.1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.84.1" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.84.1" +author = "The Rust Release Team" +release = true ++++ The Rust team has published a new point release of Rust, 1.84.1. Rust is a programming language that is empowering everyone to build reliable and diff --git a/posts/2025-02-05-crates-io-development-update.md b/posts/2025-02-05-crates-io-development-update.md index aaa810ffc..39e3391ab 100644 --- a/posts/2025-02-05-crates-io-development-update.md +++ b/posts/2025-02-05-crates-io-development-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "crates.io: development update" -author: Tobias Bieniek -team: the crates.io team ---- ++++ +layout = "post" +title = "crates.io: development update" +author = "Tobias Bieniek" +team = "the crates.io team " ++++ Back in July 2024, we published a [blog post](https://blog.rust-lang.org/2024/07/29/crates-io-development-update.html) about the ongoing development of crates.io. Since then, we have made a lot of progress and shipped a few new features. In this blog post, we want to give you an update on the latest changes that we have made to crates.io. diff --git a/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md b/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md index 11a507698..60a6deb19 100644 --- a/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md +++ b/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "2024 State of Rust Survey Results" -author: The Rust Survey Team ---- ++++ +layout = "post" +title = "2024 State of Rust Survey Results" +author = "The Rust Survey Team" ++++ Hello, Rustaceans! diff --git a/posts/2025-02-20-Rust-1.85.0.md b/posts/2025-02-20-Rust-1.85.0.md index 53c01fdee..16a9d6cb7 100644 --- a/posts/2025-02-20-Rust-1.85.0.md +++ b/posts/2025-02-20-Rust-1.85.0.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Rust 1.85.0 and Rust 2024" -author: The Rust Release Team -release: true ---- ++++ +layout = "post" +title = "Announcing Rust 1.85.0 and Rust 2024" +author = "The Rust Release Team" +release = true ++++ The Rust team is happy to announce a new version of Rust, 1.85.0. This stabilizes the 2024 edition as well. Rust is a programming language empowering everyone to build reliable and efficient software. diff --git a/posts/2025-03-02-Rustup-1.28.0.md b/posts/2025-03-02-Rustup-1.28.0.md index b0cbf482f..7a21445d0 100644 --- a/posts/2025-03-02-Rustup-1.28.0.md +++ b/posts/2025-03-02-Rustup-1.28.0.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing Rustup 1.28.0" -author: The Rustup Team ---- ++++ +layout = "post" +title = "Announcing Rustup 1.28.0" +author = "The Rustup Team" ++++ The rustup team is happy to announce the release of rustup version 1.28.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/2025-03-03-Project-Goals-Feb-Update.md b/posts/2025-03-03-Project-Goals-Feb-Update.md index 35847b926..5c73acf1f 100644 --- a/posts/2025-03-03-Project-Goals-Feb-Update.md +++ b/posts/2025-03-03-Project-Goals-Feb-Update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "February Project Goals Update" -author: Rémy Rakic, Niko Matsakis, Santiago Pastorino -team: Goals Team ---- ++++ +layout = "post" +title = "February Project Goals Update" +author = "Rémy Rakic, Niko Matsakis, Santiago Pastorino" +team = "Goals Team " ++++ This is the first Project Goals update for the new 2025h1 period. For the first 6 months of 2025, the Rust project will work towards a [slate of 39 project goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html), with 3 of them designed as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html#flagship-goals). This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated [tracking issue on the rust-project-goals repository](https://github.com/rust-lang/rust-project-goals/issues?q=is%3Aissue%20state%3Aopen%20label%3AC-tracking-issue). diff --git a/posts/2025-03-03-Rust-participates-in-GSoC-2025.md b/posts/2025-03-03-Rust-participates-in-GSoC-2025.md index 515e228fc..924aacad7 100644 --- a/posts/2025-03-03-Rust-participates-in-GSoC-2025.md +++ b/posts/2025-03-03-Rust-participates-in-GSoC-2025.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Rust participates in Google Summer of Code 2025" -author: Jakub Beránek, Jack Huey and Paul Lenz ---- ++++ +layout = "post" +title = "Rust participates in Google Summer of Code 2025" +author = "Jakub Beránek, Jack Huey and Paul Lenz" ++++ We are happy to announce that the Rust Project will again be participating in [Google Summer of Code (GSoC) 2025][gsoc], same as [last year][gsoc announcement 2024]. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful information and links. diff --git a/posts/2025-03-04-Rustup-1.28.1.md b/posts/2025-03-04-Rustup-1.28.1.md index cf26e464f..6fdd3af47 100644 --- a/posts/2025-03-04-Rustup-1.28.1.md +++ b/posts/2025-03-04-Rustup-1.28.1.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Announcing rustup 1.28.1" -author: The Rustup Team ---- ++++ +layout = "post" +title = "Announcing rustup 1.28.1" +author = "The Rustup Team" ++++ The rustup team is happy to announce the release of rustup version 1.28.1. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/posts/inside-rust/2019-09-25-Welcome.md b/posts/inside-rust/2019-09-25-Welcome.md index 2ef4f37de..81cdf9b33 100644 --- a/posts/inside-rust/2019-09-25-Welcome.md +++ b/posts/inside-rust/2019-09-25-Welcome.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Welcome to the Inside Rust blog!" -author: Niko Matsakis -description: "A new blog where the Rust team can post updates on the latest developments" -team: the core team ---- ++++ +layout = "post" +title = "Welcome to the Inside Rust blog!" +author = "Niko Matsakis" +description = "A new blog where the Rust team can post updates on the latest developments" +team = "the core team " ++++ Welcome to the inaugural post of the **Inside Rust** blog! This is a new blog where the various Rust teams and working groups can post diff --git a/posts/inside-rust/2019-10-03-Keeping-secure-with-cargo-audit-0.9.md b/posts/inside-rust/2019-10-03-Keeping-secure-with-cargo-audit-0.9.md index e11743f46..d2149427a 100644 --- a/posts/inside-rust/2019-10-03-Keeping-secure-with-cargo-audit-0.9.md +++ b/posts/inside-rust/2019-10-03-Keeping-secure-with-cargo-audit-0.9.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Keeping Rust projects secure with cargo-audit 0.9: dependency trees, core advisories, unmaintained crates" -author: Tony Arcieri -description: "A look at the new features in cargo-audit 0.9 for ensuring dependencies are free of security advisories" -team: the Secure Code WG ---- ++++ +layout = "post" +title = "Keeping Rust projects secure with cargo-audit 0.9: dependency trees, core advisories, unmaintained crates" +author = "Tony Arcieri" +description = "A look at the new features in cargo-audit 0.9 for ensuring dependencies are free of security advisories" +team = "the Secure Code WG " ++++ [cargo-audit](https://github.com/rustsec/cargo-audit) is a command-line utility which inspects `Cargo.lock` files and compares them against the [RustSec Advisory Database](https://rustsec.org), a community database of security vulnerabilities maintained by the [Rust Secure Code Working Group](https://github.com/rust-secure-code/wg). diff --git a/posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md b/posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md index 85971aff3..73834ef71 100644 --- a/posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md +++ b/posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Async Foundations Update: Time for polish!" -author: Niko Matsakis -description: "A new blog where the Rust team can post updates on the latest developments" -team: the Async Foundations WG ---- ++++ +layout = "post" +title = "Async Foundations Update: Time for polish!" +author = "Niko Matsakis" +description = "A new blog where the Rust team can post updates on the latest developments" +team = "the Async Foundations WG " ++++ As you've perhaps heard, recently the async-await feature [landed on the Rust beta branch][blog]. This marks a big turning point in the diff --git a/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md b/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md index 856e05398..1b93baac1 100644 --- a/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md +++ b/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Improving async-await's \"Future is not Send\" diagnostic" -author: David Wood -description: "Highlighting a diagnostic improvement for async-await" -team: the Async Foundations WG ---- ++++ +layout = "post" +title = "Improving async-await's \"Future is not Send\" diagnostic" +author = "David Wood" +description = "Highlighting a diagnostic improvement for async-await" +team = "the Async Foundations WG " ++++ Async-await is due to hit stable in the 1.39 release (only a month away!), and as announced in the ["Async Foundations Update: Time for polish!"][previous_post] post last month, the Async diff --git a/posts/inside-rust/2019-10-11-Lang-Team-Meeting.md b/posts/inside-rust/2019-10-11-Lang-Team-Meeting.md index 3bdd76f1f..1702e665a 100644 --- a/posts/inside-rust/2019-10-11-Lang-Team-Meeting.md +++ b/posts/inside-rust/2019-10-11-Lang-Team-Meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "2019-10-10 Lang Team Triage Meeting" -author: Niko Matsakis -description: "2019-10-10 Lang Team Triage Meeting" -team: the lang team ---- ++++ +layout = "post" +title = "2019-10-10 Lang Team Triage Meeting" +author = "Niko Matsakis" +description = "2019-10-10 Lang Team Triage Meeting" +team = "the lang team " ++++ We had our [weekly triage meeting] on 2019-10-10. You can find the [minutes] on the [lang-team] repository; there is also a [video diff --git a/posts/inside-rust/2019-10-15-compiler-team-meeting.md b/posts/inside-rust/2019-10-15-compiler-team-meeting.md index bd4651f06..a7b75a9bd 100644 --- a/posts/inside-rust/2019-10-15-compiler-team-meeting.md +++ b/posts/inside-rust/2019-10-15-compiler-team-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "2019-10-10 Compiler Team Triage Meeting" -author: Wesley Wiser -description: "2019-10-10 Compiler Team Triage Meeting" -team: the compiler team ---- ++++ +layout = "post" +title = "2019-10-10 Compiler Team Triage Meeting" +author = "Wesley Wiser" +description = "2019-10-10 Compiler Team Triage Meeting" +team = "the compiler team " ++++ The compiler team had our weekly triage meeting on 2019-10-10. You can find the [minutes](https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-10/) on the [compiler-team](https://github.com/rust-lang/compiler-team) repository. diff --git a/posts/inside-rust/2019-10-15-infra-team-meeting.md b/posts/inside-rust/2019-10-15-infra-team-meeting.md index 854a8cf85..dc776c460 100644 --- a/posts/inside-rust/2019-10-15-infra-team-meeting.md +++ b/posts/inside-rust/2019-10-15-infra-team-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2019-10-10 Infrastructure Team Meeting" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "2019-10-10 Infrastructure Team Meeting" +author = "Pietro Albini" +team = "the infrastructure team " ++++ Meeting run by kennytm. Minutes written by pietroalbini. Attending: alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, sgrif, diff --git a/posts/inside-rust/2019-10-17-ecstatic-morse-for-compiler-contributors.md b/posts/inside-rust/2019-10-17-ecstatic-morse-for-compiler-contributors.md index 1d91dbe15..5789a6ae8 100644 --- a/posts/inside-rust/2019-10-17-ecstatic-morse-for-compiler-contributors.md +++ b/posts/inside-rust/2019-10-17-ecstatic-morse-for-compiler-contributors.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Please welcome ecstatic-morse to compiler-contributors" -author: Niko Matsakis -description: "Please welcome ecstatic-morse to compiler-contributors" -team: the compiler team ---- ++++ +layout = "post" +title = "Please welcome ecstatic-morse to compiler-contributors" +author = "Niko Matsakis" +description = "Please welcome ecstatic-morse to compiler-contributors" +team = "the compiler team " ++++ Please welcome [@ecstatic-morse] to the [compiler contributors] group! They're working to make compile-time evaluation more expressive by diff --git a/posts/inside-rust/2019-10-21-compiler-team-meeting.md b/posts/inside-rust/2019-10-21-compiler-team-meeting.md index 327477f52..dd9fd7691 100644 --- a/posts/inside-rust/2019-10-21-compiler-team-meeting.md +++ b/posts/inside-rust/2019-10-21-compiler-team-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "2019-10-17 Compiler Team Triage Meeting" -author: "Wesley Wiser" -description: "2019-10-17 Compiler Team Triage Meeting" -team: the compiler team ---- ++++ +layout = "post" +title = "2019-10-17 Compiler Team Triage Meeting" +author = "Wesley Wiser" +description = "2019-10-17 Compiler Team Triage Meeting" +team = "the compiler team " ++++ The compiler team had our weekly triage meeting on 2019-10-17. You can find the [minutes](https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-17/) on the [compiler-team](https://github.com/rust-lang/compiler-team) repository. diff --git a/posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md b/posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md index c21b7f12e..e13e8ba62 100644 --- a/posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md +++ b/posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Announcing the LLVM ICE-breaker group" -author: Niko Matsakis -description: "A new blog where the Rust team can post updates on the latest developments" -team: the compiler team ---- ++++ +layout = "post" +title = "Announcing the LLVM ICE-breaker group" +author = "Niko Matsakis" +description = "A new blog where the Rust team can post updates on the latest developments" +team = "the compiler team " ++++ Today I'm announcing a new experiment in the compiler team, the **LLVM ICE-breaker group**. If you're familiar with LLVM and would like to contribute to rustc -- but without taking on a large commitment -- then the LLVM ICE-breaker group might well be for you! diff --git a/posts/inside-rust/2019-10-22-infra-team-meeting.md b/posts/inside-rust/2019-10-22-infra-team-meeting.md index 192ddad46..b847dbe81 100644 --- a/posts/inside-rust/2019-10-22-infra-team-meeting.md +++ b/posts/inside-rust/2019-10-22-infra-team-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2019-10-22 Infrastructure Team Meeting" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "2019-10-22 Infrastructure Team Meeting" +author = "Pietro Albini" +team = "the infrastructure team " ++++ Meeting run by pietroalbini. Mintues written by pietroalbini. Attending: aidanhs, alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, diff --git a/posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md b/posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md index 8bb69907c..5be322a1a 100644 --- a/posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md +++ b/posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "docs.rs outage postmortem" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "docs.rs outage postmortem" +author = "Pietro Albini" +team = "the infrastructure team " ++++ At 2019-10-21 01:38 UTC the docs.rs website went down because no available disk space was left on the server hosting the application. Crate builds were failing diff --git a/posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md b/posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md index 6285f10a4..b99fee2bb 100644 --- a/posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md +++ b/posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Please welcome pnkfelix as compiler team co-lead!" -author: Niko Matsakis -description: "pnkfelix added as compiler-team co-lead" -team: the compiler team ---- ++++ +layout = "post" +title = "Please welcome pnkfelix as compiler team co-lead!" +author = "Niko Matsakis" +description = "pnkfelix added as compiler-team co-lead" +team = "the compiler team " ++++ I'm happy to announce that [pnkfelix] will be joining me as compiler team co-lead. Felix was a "founding member" of the compiler team when diff --git a/posts/inside-rust/2019-10-25-planning-meeting-update.md b/posts/inside-rust/2019-10-25-planning-meeting-update.md index 81cda3eae..d4bcffe48 100644 --- a/posts/inside-rust/2019-10-25-planning-meeting-update.md +++ b/posts/inside-rust/2019-10-25-planning-meeting-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Planning meeting update" -author: Niko Matsakis -description: "Planning meeting update" -team: the compiler team ---- ++++ +layout = "post" +title = "Planning meeting update" +author = "Niko Matsakis" +description = "Planning meeting update" +team = "the compiler team " ++++ In our planning meeting today, the compiler team has scheduled our next batch of upcoming design meetings: diff --git a/posts/inside-rust/2019-10-28-rustc-learning-working-group-introduction.md b/posts/inside-rust/2019-10-28-rustc-learning-working-group-introduction.md index 71782efdd..60c69db1b 100644 --- a/posts/inside-rust/2019-10-28-rustc-learning-working-group-introduction.md +++ b/posts/inside-rust/2019-10-28-rustc-learning-working-group-introduction.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "The Rustc Dev Guide Working Group - An Introduction" -author: Amanjeev Sethi -description: "introduction rustc dev guide working group useful links" -team: the rustc dev guide working group ---- ++++ +layout = "post" +title = "The Rustc Dev Guide Working Group - An Introduction" +author = "Amanjeev Sethi" +description = "introduction rustc dev guide working group useful links" +team = "the rustc dev guide working group " ++++ The [Rustc Dev Guide Working Group], formed in April 2019, is focused on making the compiler easier to learn by ensuring that [rustc-dev-guide] and API docs are diff --git a/posts/inside-rust/2019-10-29-infra-team-meeting.md b/posts/inside-rust/2019-10-29-infra-team-meeting.md index 3b8cc5e22..ff0785380 100644 --- a/posts/inside-rust/2019-10-29-infra-team-meeting.md +++ b/posts/inside-rust/2019-10-29-infra-team-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2019-10-29 Infrastructure Team Meeting" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "2019-10-29 Infrastructure Team Meeting" +author = "Pietro Albini" +team = "the infrastructure team " ++++ Meeting run by Mark-Simulacrum. Minutes written by pietroalbini. Attending: alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, shepmaster diff --git a/posts/inside-rust/2019-10-30-compiler-team-meeting.md b/posts/inside-rust/2019-10-30-compiler-team-meeting.md index 29351c16b..72f521ab3 100644 --- a/posts/inside-rust/2019-10-30-compiler-team-meeting.md +++ b/posts/inside-rust/2019-10-30-compiler-team-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "2019-10-24 Compiler Team Triage Meeting" -author: "Wesley Wiser" -description: "2019-10-24 Compiler Team Triage Meeting" -team: the compiler team ---- ++++ +layout = "post" +title = "2019-10-24 Compiler Team Triage Meeting" +author = "Wesley Wiser" +description = "2019-10-24 Compiler Team Triage Meeting" +team = "the compiler team " ++++ The compiler team had our weekly triage meeting on 2019-10-24. You can find the [minutes](https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-24/) on the [compiler-team](https://github.com/rust-lang/compiler-team) repository. diff --git a/posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md b/posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md index cfb5da57c..fadfe223a 100644 --- a/posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md +++ b/posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Clippy is removing its plugin interface" -author: Philipp Krones -description: "Now that compiler plugins are deprecated, Clippy is removing its deprecated plugin interface" -team: the Dev tools team (Clippy) ---- ++++ +layout = "post" +title = "Clippy is removing its plugin interface" +author = "Philipp Krones" +description = "Now that compiler plugins are deprecated, Clippy is removing its deprecated plugin interface" +team = "the Dev tools team (Clippy) " ++++ Today, we're announcing that Clippy will completely remove its plugin interface. Using the plugin interface has been deprecated for about one and a half year now diff --git a/posts/inside-rust/2019-11-06-infra-team-meeting.md b/posts/inside-rust/2019-11-06-infra-team-meeting.md index 5293f8491..17a3b59d6 100644 --- a/posts/inside-rust/2019-11-06-infra-team-meeting.md +++ b/posts/inside-rust/2019-11-06-infra-team-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2019-11-05 Infrastructure Team Meeting" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "2019-11-05 Infrastructure Team Meeting" +author = "Pietro Albini" +team = "the infrastructure team " ++++ Meeting run by shepmaster. Minutes written by pietroalbini. Attending: aidanhs, alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, shepmaster diff --git a/posts/inside-rust/2019-11-07-compiler-team-meeting.md b/posts/inside-rust/2019-11-07-compiler-team-meeting.md index 8eecffa41..83a9db0e1 100644 --- a/posts/inside-rust/2019-11-07-compiler-team-meeting.md +++ b/posts/inside-rust/2019-11-07-compiler-team-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "2019-10-31 Compiler Team Triage Meeting" -author: "Wesley Wiser" -description: "2019-10-31 Compiler Team Triage Meeting" -team: the compiler team ---- ++++ +layout = "post" +title = "2019-10-31 Compiler Team Triage Meeting" +author = "Wesley Wiser" +description = "2019-10-31 Compiler Team Triage Meeting" +team = "the compiler team " ++++ The compiler team had our weekly triage meeting on 2019-10-31. You can find the [minutes](https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-10-31/) on the [compiler-team](https://github.com/rust-lang/compiler-team) repository. @@ -40,4 +40,4 @@ Rust 1.39 ships on Thursday! [Link to full discussion](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/weekly.20meeting.202019-10-31.20.2354818/near/179539371) -[@michaelwoerister]: https://github.com/michaelwoerister \ No newline at end of file +[@michaelwoerister]: https://github.com/michaelwoerister diff --git a/posts/inside-rust/2019-11-11-compiler-team-meeting.md b/posts/inside-rust/2019-11-11-compiler-team-meeting.md index 2c08f67fb..22bffeda9 100644 --- a/posts/inside-rust/2019-11-11-compiler-team-meeting.md +++ b/posts/inside-rust/2019-11-11-compiler-team-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "2019-11-07 Compiler Team Triage Meeting" -author: "Wesley Wiser" -description: "2019-11-07 Compiler Team Triage Meeting" -team: the compiler team ---- ++++ +layout = "post" +title = "2019-11-07 Compiler Team Triage Meeting" +author = "Wesley Wiser" +description = "2019-11-07 Compiler Team Triage Meeting" +team = "the compiler team " ++++ The compiler team had our weekly triage meeting on 2019-11-07. You can find the [minutes](https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-07/) on the [compiler-team](https://github.com/rust-lang/compiler-team) repository. diff --git a/posts/inside-rust/2019-11-13-goverance-wg-cfp.md b/posts/inside-rust/2019-11-13-goverance-wg-cfp.md index 2a2b5a690..d1fc82438 100644 --- a/posts/inside-rust/2019-11-13-goverance-wg-cfp.md +++ b/posts/inside-rust/2019-11-13-goverance-wg-cfp.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance WG Call For Participation" -author: Erin Power -team: The Governance WG ---- ++++ +layout = "post" +title = "Governance WG Call For Participation" +author = "Erin Power" +team = "The Governance WG " ++++ Hello everyone, the governance working group has been working a few efforts, but we haven't made as much progress as we would have liked over the past few diff --git a/posts/inside-rust/2019-11-14-evaluating-github-actions.md b/posts/inside-rust/2019-11-14-evaluating-github-actions.md index 5a3ed3141..ec17abd96 100644 --- a/posts/inside-rust/2019-11-14-evaluating-github-actions.md +++ b/posts/inside-rust/2019-11-14-evaluating-github-actions.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Evaluating GitHub Actions -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "Evaluating GitHub Actions" +author = "Pietro Albini" +team = "the infrastructure team " ++++ The Rust Infrastructure team is happy to announce that we’re starting an evaluation of [GitHub Actions](https://github.com/features/actions) as a diff --git a/posts/inside-rust/2019-11-18-infra-team-meeting.md b/posts/inside-rust/2019-11-18-infra-team-meeting.md index 74ce97f50..d86983a55 100644 --- a/posts/inside-rust/2019-11-18-infra-team-meeting.md +++ b/posts/inside-rust/2019-11-18-infra-team-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2019-11-12 Infrastructure Team Meeting" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "2019-11-12 Infrastructure Team Meeting" +author = "Pietro Albini" +team = "the infrastructure team " ++++ Meeting run by pietroalbini. Minutes written by pietroalbini. Attending: alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, sgrif, shepmaster diff --git a/posts/inside-rust/2019-11-19-compiler-team-meeting.md b/posts/inside-rust/2019-11-19-compiler-team-meeting.md index 87ac0d24a..470dde2f7 100644 --- a/posts/inside-rust/2019-11-19-compiler-team-meeting.md +++ b/posts/inside-rust/2019-11-19-compiler-team-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "2019-11-14 Compiler Team Triage Meeting" -author: "Wesley Wiser" -description: "2019-11-14 Compiler Team Triage Meeting" -team: the compiler team ---- ++++ +layout = "post" +title = "2019-11-14 Compiler Team Triage Meeting" +author = "Wesley Wiser" +description = "2019-11-14 Compiler Team Triage Meeting" +team = "the compiler team " ++++ The compiler team had our weekly triage meeting on 2019-11-14. You can find the [minutes](https://rust-lang.github.io/compiler-team/minutes/triage-meeting/2019-11-14/) on the [compiler-team](https://github.com/rust-lang/compiler-team) repository. diff --git a/posts/inside-rust/2019-11-19-infra-team-meeting.md b/posts/inside-rust/2019-11-19-infra-team-meeting.md index ea8dc6799..bd3f0cf1b 100644 --- a/posts/inside-rust/2019-11-19-infra-team-meeting.md +++ b/posts/inside-rust/2019-11-19-infra-team-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2019-11-19 Infrastructure Team Meeting" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "2019-11-19 Infrastructure Team Meeting" +author = "Pietro Albini" +team = "the infrastructure team " ++++ Meeting run by pietroalbini. Minutes written by pietroalbini. Attending: alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, shepmaster diff --git a/posts/inside-rust/2019-11-22-Lang-team-meeting.md b/posts/inside-rust/2019-11-22-Lang-team-meeting.md index decdccfae..06f3cf16e 100644 --- a/posts/inside-rust/2019-11-22-Lang-team-meeting.md +++ b/posts/inside-rust/2019-11-22-Lang-team-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "2019-11-14 and 2019-11-21 Lang Team Triage Meetings" -author: Niko Matsakis -description: "2019-11-14 and 2019-11-21 Lang Team Triage Meetings" -team: the lang team ---- ++++ +layout = "post" +title = "2019-11-14 and 2019-11-21 Lang Team Triage Meetings" +author = "Niko Matsakis" +description = "2019-11-14 and 2019-11-21 Lang Team Triage Meetings" +team = "the lang team " ++++ Since I apparently forgot to post a blog post last week, this blog post covers two lang-team triage meetings: [2019-11-14] and diff --git a/posts/inside-rust/2019-11-22-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/2019-11-22-upcoming-compiler-team-design-meetings.md index e0edf0ac2..7a181f51a 100644 --- a/posts/inside-rust/2019-11-22-upcoming-compiler-team-design-meetings.md +++ b/posts/inside-rust/2019-11-22-upcoming-compiler-team-design-meetings.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Upcoming compiler-team design meetings" -author: Niko Matsakis -description: "Upcoming compiler-team design meetings" -team: the compiler team ---- ++++ +layout = "post" +title = "Upcoming compiler-team design meetings" +author = "Niko Matsakis" +description = "Upcoming compiler-team design meetings" +team = "the compiler team " ++++ In our [planning meeting today], the [compiler team] has scheduled our next batch of upcoming design meetings. You can find the exact times diff --git a/posts/inside-rust/2019-11-25-const-if-match.md b/posts/inside-rust/2019-11-25-const-if-match.md index 9c4228d87..d8300970e 100644 --- a/posts/inside-rust/2019-11-25-const-if-match.md +++ b/posts/inside-rust/2019-11-25-const-if-match.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "`if` and `match` in constants on nightly rust" -author: Dylan MacKenzie -team: WG const-eval ---- ++++ +layout = "post" +title = "`if` and `match` in constants on nightly rust" +author = "Dylan MacKenzie" +team = "WG const-eval " ++++ **TLDR; `if` and `match` are now usable in constants on the latest nightly.** diff --git a/posts/inside-rust/2019-12-02-const-prop-on-by-default.md b/posts/inside-rust/2019-12-02-const-prop-on-by-default.md index 04f901a02..440817146 100644 --- a/posts/inside-rust/2019-12-02-const-prop-on-by-default.md +++ b/posts/inside-rust/2019-12-02-const-prop-on-by-default.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Constant propagation is now on by default in nightly" -author: "Wesley Wiser" -description: "Constant propagation is now on by default in nightly" -team: the MIR Optimizations WG ---- ++++ +layout = "post" +title = "Constant propagation is now on by default in nightly" +author = "Wesley Wiser" +description = "Constant propagation is now on by default in nightly" +team = "the MIR Optimizations WG " ++++ I'm pleased to announce that the [Mid-level IR][mir] (MIR) constant propagation pass has been [switched on][pr] by default on Rust nightly which will eventually become Rust 1.41! diff --git a/posts/inside-rust/2019-12-03-governance-wg-meeting.md b/posts/inside-rust/2019-12-03-governance-wg-meeting.md index 905519c8a..aeaa2b071 100644 --- a/posts/inside-rust/2019-12-03-governance-wg-meeting.md +++ b/posts/inside-rust/2019-12-03-governance-wg-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Working Group Update" -author: Nell Shamrell-Harrington -team: the Governance WG ---- ++++ +layout = "post" +title = "Governance Working Group Update" +author = "Nell Shamrell-Harrington" +team = "the Governance WG " ++++ Hello everyone! Two weeks ago the governance working group met. Here are the large issues we discussed and information on our next meeting. diff --git a/posts/inside-rust/2019-12-04-ide-future.md b/posts/inside-rust/2019-12-04-ide-future.md index 60723cded..cc283d5f6 100644 --- a/posts/inside-rust/2019-12-04-ide-future.md +++ b/posts/inside-rust/2019-12-04-ide-future.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2019-11-18 IDE team meeting" -author: Aleksey Kladov, Igor Matuszewski -team: the IDE team ---- ++++ +layout = "post" +title = "2019-11-18 IDE team meeting" +author = "Aleksey Kladov, Igor Matuszewski" +team = "the IDE team " ++++ Meeting run by nikomatsakis. Minutes written by nikomatsakis. Attending: nikomatsakis, pnkfelix, Xanewok, matklad diff --git a/posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md b/posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md index 7cf397ed2..49aa572db 100644 --- a/posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md +++ b/posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing the Docs.rs Team" -author: QuietMisdreavus -team: The Rustdoc Team ---- ++++ +layout = "post" +title = "Announcing the Docs.rs Team" +author = "QuietMisdreavus" +team = "The Rustdoc Team " ++++ Today we're announcing a brand new team: The Docs.rs Team! diff --git a/posts/inside-rust/2019-12-10-governance-wg-meeting.md b/posts/inside-rust/2019-12-10-governance-wg-meeting.md index 535bb0754..c946a976d 100644 --- a/posts/inside-rust/2019-12-10-governance-wg-meeting.md +++ b/posts/inside-rust/2019-12-10-governance-wg-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Working Group Update" -author: Niko Matsakis -team: the Governance WG ---- ++++ +layout = "post" +title = "Governance Working Group Update" +author = "Niko Matsakis" +team = "the Governance WG " ++++ Hello everyone! The governance working group met last week to discuss writing out a policy for access privileges on our Github diff --git a/posts/inside-rust/2019-12-11-infra-team-meeting.md b/posts/inside-rust/2019-12-11-infra-team-meeting.md index c4fc5da5b..0225f63f9 100644 --- a/posts/inside-rust/2019-12-11-infra-team-meeting.md +++ b/posts/inside-rust/2019-12-11-infra-team-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2019-12-10 Infrastructure Team Meeting" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "2019-12-10 Infrastructure Team Meeting" +author = "Pietro Albini" +team = "the infrastructure team " ++++ Meeting run by pietroalbini. Minutes written by pietroalbini. Attending: aidanhs, kennytm, Mark-Simulacrum, pietroalbini, shepmaster diff --git a/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md b/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md index 227c0ca51..d0bb9d906 100644 --- a/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md +++ b/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Bisecting Rust Compiler Regressions with cargo-bisect-rustc" -author: Santiago Pastorino -team: the compiler team ---- ++++ +layout = "post" +title = "Bisecting Rust Compiler Regressions with cargo-bisect-rustc" +author = "Santiago Pastorino" +team = "the compiler team " ++++ Let's say that you've just updated the Rust compiler version and have tried to compile your application and see a failure that wasn't there diff --git a/posts/inside-rust/2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md b/posts/inside-rust/2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md index c2ac65521..708e04327 100644 --- a/posts/inside-rust/2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md +++ b/posts/inside-rust/2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Congrats to compiler team members matthewjasper and wesleywiser" -author: Felix S. Klock II -description: "Congrats to compiler team members matthewjasper and wesleywiser" -team: the compiler team ---- ++++ +layout = "post" +title = "Congrats to compiler team members matthewjasper and wesleywiser" +author = "Felix S. Klock II" +description = "Congrats to compiler team members matthewjasper and wesleywiser" +team = "the compiler team " ++++ I am pleased to announce that [@matthewjasper][] and [@wesleywiser][] have been made full members of the [compiler team][]. diff --git a/posts/inside-rust/2019-12-20-governance-wg-meeting.md b/posts/inside-rust/2019-12-20-governance-wg-meeting.md index d05d86de5..4cf43d3ff 100644 --- a/posts/inside-rust/2019-12-20-governance-wg-meeting.md +++ b/posts/inside-rust/2019-12-20-governance-wg-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Working Group Update: Meeting 17 December 2019" -author: Val Grimm -team: The Governance WG ---- ++++ +layout = "post" +title = "Governance Working Group Update: Meeting 17 December 2019" +author = "Val Grimm" +team = "The Governance WG " ++++ Hello everyone! diff --git a/posts/inside-rust/2019-12-20-infra-team-meeting.md b/posts/inside-rust/2019-12-20-infra-team-meeting.md index 60acf347d..7bde3ae4b 100644 --- a/posts/inside-rust/2019-12-20-infra-team-meeting.md +++ b/posts/inside-rust/2019-12-20-infra-team-meeting.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2019-12-17 Infrastructure Team Meeting" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "2019-12-17 Infrastructure Team Meeting" +author = "Pietro Albini" +team = "the infrastructure team " ++++ Meeting run by pietroalbini. Minutes written by pietroalbini. Attending: aidanhs, alexcrichton, kennytm, Mark-Simulacrum, pietroalbini, diff --git a/posts/inside-rust/2019-12-20-wg-learning-update.md b/posts/inside-rust/2019-12-20-wg-learning-update.md index 628007119..d293c48cc 100644 --- a/posts/inside-rust/2019-12-20-wg-learning-update.md +++ b/posts/inside-rust/2019-12-20-wg-learning-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "An Update from WG-Learning" -author: mark-i-m -team: the Rustc Dev Guide Working Group ---- ++++ +layout = "post" +title = "An Update from WG-Learning" +author = "mark-i-m" +team = "the Rustc Dev Guide Working Group " ++++ # An update from WG-Learning diff --git a/posts/inside-rust/2019-12-23-formatting-the-compiler.md b/posts/inside-rust/2019-12-23-formatting-the-compiler.md index 64d5288e4..4e9958d33 100644 --- a/posts/inside-rust/2019-12-23-formatting-the-compiler.md +++ b/posts/inside-rust/2019-12-23-formatting-the-compiler.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Formatting the compiler tree" -author: Mark Rousskov -description: "How to rebase and what happened" -team: the compiler team ---- ++++ +layout = "post" +title = "Formatting the compiler tree" +author = "Mark Rousskov" +description = "How to rebase and what happened" +team = "the compiler team " ++++ ## What happened diff --git a/posts/inside-rust/2020-01-10-cargo-in-2020.md b/posts/inside-rust/2020-01-10-cargo-in-2020.md index 63d518162..91d317ec8 100644 --- a/posts/inside-rust/2020-01-10-cargo-in-2020.md +++ b/posts/inside-rust/2020-01-10-cargo-in-2020.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Cargo in 2020" -author: Eric Huss -description: "Roadmap for Cargo in 2020" -team: the Cargo team ---- ++++ +layout = "post" +title = "Cargo in 2020" +author = "Eric Huss" +description = "Roadmap for Cargo in 2020" +team = "the Cargo team " ++++ This post is an overview of the major projects the Cargo team is interested in tackling in 2020. diff --git a/posts/inside-rust/2020-01-10-lang-team-design-meetings.md b/posts/inside-rust/2020-01-10-lang-team-design-meetings.md index 024423280..bebefaac3 100644 --- a/posts/inside-rust/2020-01-10-lang-team-design-meetings.md +++ b/posts/inside-rust/2020-01-10-lang-team-design-meetings.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang Team Design Meetings" -author: Niko Matsakis -description: "Lang Team Design Meetings" -team: the language team ---- ++++ +layout = "post" +title = "Lang Team Design Meetings" +author = "Niko Matsakis" +description = "Lang Team Design Meetings" +team = "the language team " ++++ Hi all! I wanted to give a quick update about the lang team. We're starting something new this year: a regular **design meeting**. The diff --git a/posts/inside-rust/2020-01-14-Goverance-wg-cfp.md b/posts/inside-rust/2020-01-14-Goverance-wg-cfp.md index b925d5722..b30356496 100644 --- a/posts/inside-rust/2020-01-14-Goverance-wg-cfp.md +++ b/posts/inside-rust/2020-01-14-Goverance-wg-cfp.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Working Group Update: Meeting 14 January 2020" -author: Val Grimm -team: The Governance WG ---- ++++ +layout = "post" +title = "Governance Working Group Update: Meeting 14 January 2020" +author = "Val Grimm" +team = "The Governance WG " ++++ Hello everyone! diff --git a/posts/inside-rust/2020-01-23-Introducing-cargo-audit-fix-and-more.md b/posts/inside-rust/2020-01-23-Introducing-cargo-audit-fix-and-more.md index bdff1a600..3b8fc9da9 100644 --- a/posts/inside-rust/2020-01-23-Introducing-cargo-audit-fix-and-more.md +++ b/posts/inside-rust/2020-01-23-Introducing-cargo-audit-fix-and-more.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "cargo-audit v0.11: Introducing the `fix` feature, yanked crate detection, and more" -author: Tony Arcieri -description: "Release announcement for cargo-audit v0.11 describing the new features" -team: the Secure Code WG ---- ++++ +layout = "post" +title = "cargo-audit v0.11: Introducing the `fix` feature, yanked crate detection, and more" +author = "Tony Arcieri" +description = "Release announcement for cargo-audit v0.11 describing the new features" +team = "the Secure Code WG " ++++ [cargo-audit](https://github.com/rustsec/cargo-audit) is a command-line utility which inspects `Cargo.lock` files and compares them against the [RustSec Advisory Database](https://rustsec.org), a community database of security vulnerabilities maintained by the [Rust Secure Code Working Group](https://github.com/rust-secure-code/wg). diff --git a/posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md b/posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md index 069d6cc31..e6645af70 100644 --- a/posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md +++ b/posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "February Lang Team Design Meetings" -author: Niko Matsakis -description: "Lang Team Design Meetings scheduled for February" -team: the language team ---- ++++ +layout = "post" +title = "February Lang Team Design Meetings" +author = "Niko Matsakis" +description = "Lang Team Design Meetings scheduled for February" +team = "the language team " ++++ We've scheduled our **language team design meetings** for February. The current plans are as follows: diff --git a/posts/inside-rust/2020-01-24-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/2020-01-24-upcoming-compiler-team-design-meetings.md index 09e6f7485..ea43ccfa5 100644 --- a/posts/inside-rust/2020-01-24-upcoming-compiler-team-design-meetings.md +++ b/posts/inside-rust/2020-01-24-upcoming-compiler-team-design-meetings.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Upcoming compiler-team design meetings" -author: Niko Matsakis -description: "Upcoming compiler-team design meetings" -team: the compiler team ---- ++++ +layout = "post" +title = "Upcoming compiler-team design meetings" +author = "Niko Matsakis" +description = "Upcoming compiler-team design meetings" +team = "the compiler team " ++++ In our [planning meeting on January 17], the [compiler team] has scheduled our next batch of upcoming design meetings. You can find the exact times diff --git a/posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md b/posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md index c30f1b528..f18a251bb 100644 --- a/posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md +++ b/posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Announcing the Cleanup Crew ICE-breaker group" -author: Santiago Pastorino -description: "A new blog where the Rust team can post updates on the latest developments" -team: the compiler team ---- ++++ +layout = "post" +title = "Announcing the Cleanup Crew ICE-breaker group" +author = "Santiago Pastorino" +description = "A new blog where the Rust team can post updates on the latest developments" +team = "the compiler team " ++++ Following Niko Matsakis' announcement of the [**LLVM ICE-breaker group**](https://blog.rust-lang.org/inside-rust/2019/10/22/LLVM-ICE-breakers.html), diff --git a/posts/inside-rust/2020-02-07-compiler-team-meeting.md b/posts/inside-rust/2020-02-07-compiler-team-meeting.md index 124036292..d79778e75 100644 --- a/posts/inside-rust/2020-02-07-compiler-team-meeting.md +++ b/posts/inside-rust/2020-02-07-compiler-team-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "2020-02-06 Compiler Team Triage Meeting" -author: "Wesley Wiser" -description: "2019-02-06 Compiler Team Triage Meeting" -team: the compiler team ---- ++++ +layout = "post" +title = "2020-02-06 Compiler Team Triage Meeting" +author = "Wesley Wiser" +description = "2019-02-06 Compiler Team Triage Meeting" +team = "the compiler team " ++++ The compiler team had our weekly triage meeting on 2020-02-06. You can find the [minutes] on the [compiler-team repository]. diff --git a/posts/inside-rust/2020-02-11-Goverance-wg.md b/posts/inside-rust/2020-02-11-Goverance-wg.md index 19efe7cb6..67b1b925c 100644 --- a/posts/inside-rust/2020-02-11-Goverance-wg.md +++ b/posts/inside-rust/2020-02-11-Goverance-wg.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Working Group Update: Meeting 11 February 2020" -author: Val Grimm -team: The Governance WG ---- ++++ +layout = "post" +title = "Governance Working Group Update: Meeting 11 February 2020" +author = "Val Grimm" +team = "The Governance WG " ++++ Hello everyone! diff --git a/posts/inside-rust/2020-02-14-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/2020-02-14-upcoming-compiler-team-design-meetings.md index d7144b19e..be1de7641 100644 --- a/posts/inside-rust/2020-02-14-upcoming-compiler-team-design-meetings.md +++ b/posts/inside-rust/2020-02-14-upcoming-compiler-team-design-meetings.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Upcoming compiler-team design meetings" -author: Niko Matsakis -description: "Upcoming compiler-team design meetings" -team: the compiler team ---- ++++ +layout = "post" +title = "Upcoming compiler-team design meetings" +author = "Niko Matsakis" +description = "Upcoming compiler-team design meetings" +team = "the compiler team " ++++ In our [planning meeting on February 14th][pm], the [compiler team] has scheduled our next batch of upcoming design meetings. You can find the exact times diff --git a/posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md b/posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md index 021c48e84..990e9c6ba 100644 --- a/posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md +++ b/posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Please welcome jtgeibel as crates.io team co-lead!" -author: Sean Griffin -description: "jtgeibel added as crates.io team co-lead" -team: the crates.io team ---- ++++ +layout = "post" +title = "Please welcome jtgeibel as crates.io team co-lead!" +author = "Sean Griffin" +description = "jtgeibel added as crates.io team co-lead" +team = "the crates.io team " ++++ I'm happy to announce some changes in the leadership of the crates.io team. Justin Geibel ([jtgeibel]) will be joining me as co-lead. Justin diff --git a/posts/inside-rust/2020-02-25-intro-rustc-self-profile.md b/posts/inside-rust/2020-02-25-intro-rustc-self-profile.md index 76b09941e..4b0708f5b 100644 --- a/posts/inside-rust/2020-02-25-intro-rustc-self-profile.md +++ b/posts/inside-rust/2020-02-25-intro-rustc-self-profile.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Intro to rustc's self profiler" -author: Wesley Wiser -description: "Learn how to use the -Zself-profile rustc flag" -team: the self-profile working group ---- ++++ +layout = "post" +title = "Intro to rustc's self profiler" +author = "Wesley Wiser" +description = "Learn how to use the -Zself-profile rustc flag" +team = "the self-profile working group " ++++ Over the last year, the [Self-Profile Working Group] has been building tools to profile `rustc` because we often hear requests to know where compilation time is being spent. This is useful when optimizing the compiler, one of the Compiler Team's ongoing efforts to improve compile times, but it's also useful to users who want to refactor their crate so that it will compile faster. diff --git a/posts/inside-rust/2020-02-26-crates-io-incident-report.md b/posts/inside-rust/2020-02-26-crates-io-incident-report.md index 83361294b..1db31f1f0 100644 --- a/posts/inside-rust/2020-02-26-crates-io-incident-report.md +++ b/posts/inside-rust/2020-02-26-crates-io-incident-report.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "crates.io incident report for 2020-02-20" -author: Pietro Albini -team: the crates.io team ---- ++++ +layout = "post" +title = "crates.io incident report for 2020-02-20" +author = "Pietro Albini" +team = "the crates.io team " ++++ On 2020-02-20 at 21:28 UTC we received a report from a user of crates.io that their crate was not available on the index even after 10 minutes since the diff --git a/posts/inside-rust/2020-02-27-Goverance-wg.md b/posts/inside-rust/2020-02-27-Goverance-wg.md index 5c66ff324..9c78aec1a 100644 --- a/posts/inside-rust/2020-02-27-Goverance-wg.md +++ b/posts/inside-rust/2020-02-27-Goverance-wg.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Working Group Update: Meeting 27 February 2020" -author: Val Grimm -team: The Governance WG ---- ++++ +layout = "post" +title = "Governance Working Group Update: Meeting 27 February 2020" +author = "Val Grimm" +team = "The Governance WG " ++++ Hello everyone! diff --git a/posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md b/posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md index 768f3489f..5db59970e 100644 --- a/posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md +++ b/posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Announcing the first FFI-unwind project design meeting" -author: Kyle Strand, Niko Matsakis, and Amanieu d'Antras -description: "First design meeting for the FFI-unwind project" -team: the FFI-unwind project group ---- ++++ +layout = "post" +title = "Announcing the first FFI-unwind project design meeting" +author = "Kyle Strand, Niko Matsakis, and Amanieu d'Antras" +description = "First design meeting for the FFI-unwind project" +team = "the FFI-unwind project group " ++++ The FFI-unwind project group, announced in [this RFC][rfc-announcement], is working to extend the language to support unwinding that crosses FFI diff --git a/posts/inside-rust/2020-02-27-pietro-joins-core-team.md b/posts/inside-rust/2020-02-27-pietro-joins-core-team.md index 58409f31b..859c1c29f 100644 --- a/posts/inside-rust/2020-02-27-pietro-joins-core-team.md +++ b/posts/inside-rust/2020-02-27-pietro-joins-core-team.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Pietro Albini has joined the core team" -author: Nick Cameron -team: the core team ---- ++++ +layout = "post" +title = "Pietro Albini has joined the core team" +author = "Nick Cameron" +team = "the core team " ++++ We are very happy to announce that [Pietro Albini](https://github.com/pietroalbini) has joined the core team. Pietro joined us back on December 24th 2019 (a Christmas present for the core team!), but we have been a bit late in announcing it (sorry Pietro!). diff --git a/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md b/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md index 0f364349f..61ba273db 100644 --- a/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md +++ b/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Recent and future pattern matching improvements" -author: Mazdak "Centril" Farrokhzad -description: "Reviewing recent pattern matching improvements" -team: the language team ---- ++++ +layout = "post" +title = "Recent and future pattern matching improvements" +author = """Mazdak "Centril" Farrokhzad""" +description = "Reviewing recent pattern matching improvements" +team = "the language team " ++++ [ch_6]: https://doc.rust-lang.org/book/ch06-00-enums.html [ch_18]: https://doc.rust-lang.org/book/ch18-00-patterns.html diff --git a/posts/inside-rust/2020-03-11-lang-team-design-meetings.md b/posts/inside-rust/2020-03-11-lang-team-design-meetings.md index 8ee5c6990..e3e72136e 100644 --- a/posts/inside-rust/2020-03-11-lang-team-design-meetings.md +++ b/posts/inside-rust/2020-03-11-lang-team-design-meetings.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "March Lang Team Design Meetings" -author: Niko Matsakis -description: "Lang Team Design Meetings scheduled for March" -team: the language team ---- ++++ +layout = "post" +title = "March Lang Team Design Meetings" +author = "Niko Matsakis" +description = "Lang Team Design Meetings scheduled for March" +team = "the language team " ++++ We've scheduled our **language team design meetings** for March. We have plans for two meetings: diff --git a/posts/inside-rust/2020-03-13-rename-rustc-guide.md b/posts/inside-rust/2020-03-13-rename-rustc-guide.md index 71691beed..4375669e6 100644 --- a/posts/inside-rust/2020-03-13-rename-rustc-guide.md +++ b/posts/inside-rust/2020-03-13-rename-rustc-guide.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "The rustc-guide is now rustc-dev-guide" -author: mark-i-m -description: "the guide has been renamed" -team: the rustc dev guide working group ---- ++++ +layout = "post" +title = "The rustc-guide is now rustc-dev-guide" +author = "mark-i-m" +description = "the guide has been renamed" +team = "the rustc dev guide working group " ++++ You may or may not be aware of two similarly named resources: - [The rustc book](https://doc.rust-lang.org/rustc/index.html) diff --git a/posts/inside-rust/2020-03-13-twir-new-lead.md b/posts/inside-rust/2020-03-13-twir-new-lead.md index 4e2c01b72..cc594e34e 100644 --- a/posts/inside-rust/2020-03-13-twir-new-lead.md +++ b/posts/inside-rust/2020-03-13-twir-new-lead.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Week in Rust is looking for a new maintainer." -author: Erin Power -team: the community team ---- ++++ +layout = "post" +title = "This Week in Rust is looking for a new maintainer." +author = "Erin Power" +team = "the community team " ++++ Vikrant Chaudhary ([@nasa42]) is retiring from [This Week in Rust][twir]. He joined This Week in Rust in June 2015 with issue 84 and has been part of Rust Community team since February 2018. We'd like to thank Vikrant for his stewardship of TWiR these past five years, and making TWiR one of the community's favourite newsletters. We wish him all the best in his future projects. diff --git a/posts/inside-rust/2020-03-13-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/2020-03-13-upcoming-compiler-team-design-meetings.md index 199e8301b..fc57e0b38 100644 --- a/posts/inside-rust/2020-03-13-upcoming-compiler-team-design-meetings.md +++ b/posts/inside-rust/2020-03-13-upcoming-compiler-team-design-meetings.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Upcoming compiler-team design meetings" -author: Niko Matsakis -description: "Upcoming compiler-team design meetings" -team: the compiler team ---- ++++ +layout = "post" +title = "Upcoming compiler-team design meetings" +author = "Niko Matsakis" +description = "Upcoming compiler-team design meetings" +team = "the compiler team " ++++ In our [planning meeting today], the [compiler team] has scheduled our next batch of upcoming design meetings. You can find the exact times diff --git a/posts/inside-rust/2020-03-17-governance-wg.md b/posts/inside-rust/2020-03-17-governance-wg.md index a4f4409c3..71a3bbda2 100644 --- a/posts/inside-rust/2020-03-17-governance-wg.md +++ b/posts/inside-rust/2020-03-17-governance-wg.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Working Group Update: Meeting 12 March 2020" -author: Nell Shamrell-Harrington -team: The Governance WG ---- ++++ +layout = "post" +title = "Governance Working Group Update: Meeting 12 March 2020" +author = "Nell Shamrell-Harrington" +team = "The Governance WG " ++++ Hello everyone! diff --git a/posts/inside-rust/2020-03-18-all-hands-retrospective.md b/posts/inside-rust/2020-03-18-all-hands-retrospective.md index 2203a2b1c..ec252ae50 100644 --- a/posts/inside-rust/2020-03-18-all-hands-retrospective.md +++ b/posts/inside-rust/2020-03-18-all-hands-retrospective.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "All Hands Retrospective" -author: Erin Power -team: The All Hands Organisers ---- ++++ +layout = "post" +title = "All Hands Retrospective" +author = "Erin Power" +team = "The All Hands Organisers " ++++ If you're not already aware, the Rust All Hands event, originally scheduled for March 16th–20th in Thessaloníki, Greece was cancelled in January. The All Hands' diff --git a/posts/inside-rust/2020-03-19-terminating-rust.md b/posts/inside-rust/2020-03-19-terminating-rust.md index c28dcf33b..a7ac6f70f 100644 --- a/posts/inside-rust/2020-03-19-terminating-rust.md +++ b/posts/inside-rust/2020-03-19-terminating-rust.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Resolving Rust's forward progress guarantees" -author: Mark Rousskov -description: "Should side-effect be the fix?" -team: the compiler team ---- ++++ +layout = "post" +title = "Resolving Rust's forward progress guarantees" +author = "Mark Rousskov" +description = "Should side-effect be the fix?" +team = "the compiler team " ++++ There has been a longstanding miscompilation in Rust: programs that do not make [forward progress]. Note that the previous link is to the C++ definition; Rust diff --git a/posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md b/posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md index 4f554aafa..0ba1e39be 100644 --- a/posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md +++ b/posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "rustc-dev-guide Overview" -author: "Chris Simpkins" -description: "2020-03-26 rustc-dev-guide Overview" -team: the Rustc Dev Guide Working Group ---- ++++ +layout = "post" +title = "rustc-dev-guide Overview" +author = "Chris Simpkins" +description = "2020-03-26 rustc-dev-guide Overview" +team = "the Rustc Dev Guide Working Group " ++++ The `rustc` compiler includes over 380,000 lines of source across more than 40 crates1 to support the lexing through binary linking stages of the Rust compile process. It is daunting for newcomers, and we recognize that a high-level survey of the pipeline is warranted. diff --git a/posts/inside-rust/2020-03-27-goodbye-docs-team.md b/posts/inside-rust/2020-03-27-goodbye-docs-team.md index 318d8da4c..e616cd404 100644 --- a/posts/inside-rust/2020-03-27-goodbye-docs-team.md +++ b/posts/inside-rust/2020-03-27-goodbye-docs-team.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Goodbye, docs team" -author: Steve Klabnik -description: "The docs team is winding down" -team: the core team ---- ++++ +layout = "post" +title = "Goodbye, docs team" +author = "Steve Klabnik" +description = "The docs team is winding down" +team = "the core team " ++++ I'll cut right to the chase: the docs team no longer exists. diff --git a/posts/inside-rust/2020-03-28-traits-sprint-1.md b/posts/inside-rust/2020-03-28-traits-sprint-1.md index 5d98000ff..40c3ef7b3 100644 --- a/posts/inside-rust/2020-03-28-traits-sprint-1.md +++ b/posts/inside-rust/2020-03-28-traits-sprint-1.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Traits working group 2020 sprint 1 summary" -author: Jack Huey -team: The Traits WG ---- ++++ +layout = "post" +title = "Traits working group 2020 sprint 1 summary" +author = "Jack Huey" +team = "The Traits WG " ++++ This Tuesday, the traits working group finished our first sprint of 2020, last 6 weeks from February 11th through March 24th. The last sprint was about a year ago, but we decided to resurrect the format in order to help push forward traits-related work in [Chalk] and rustc. diff --git a/posts/inside-rust/2020-04-07-update-on-the-github-actions-evaluation.md b/posts/inside-rust/2020-04-07-update-on-the-github-actions-evaluation.md index 243170d11..1f9b3fae3 100644 --- a/posts/inside-rust/2020-04-07-update-on-the-github-actions-evaluation.md +++ b/posts/inside-rust/2020-04-07-update-on-the-github-actions-evaluation.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Update on the GitHub Actions evaluation -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "Update on the GitHub Actions evaluation" +author = "Pietro Albini" +team = "the infrastructure team " ++++ The infrastructure team is happy to report that [the evaluation we started last year][prev] of [GitHub Actions][gha] as the new CI platform for the diff --git a/posts/inside-rust/2020-04-10-lang-team-design-meetings.md b/posts/inside-rust/2020-04-10-lang-team-design-meetings.md index a96c11da8..d0a4146b4 100644 --- a/posts/inside-rust/2020-04-10-lang-team-design-meetings.md +++ b/posts/inside-rust/2020-04-10-lang-team-design-meetings.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "April Lang Team Design Meetings" -author: Josh Triplett -description: "Lang Team Design Meetings scheduled for April" -team: the language team ---- ++++ +layout = "post" +title = "April Lang Team Design Meetings" +author = "Josh Triplett" +description = "Lang Team Design Meetings scheduled for April" +team = "the language team " ++++ We've scheduled our **language team design meetings** for April. We have plans for three meetings: diff --git a/posts/inside-rust/2020-04-10-upcoming-compiler-team-design-meeting.md b/posts/inside-rust/2020-04-10-upcoming-compiler-team-design-meeting.md index 877ac3939..1e3e8b78b 100644 --- a/posts/inside-rust/2020-04-10-upcoming-compiler-team-design-meeting.md +++ b/posts/inside-rust/2020-04-10-upcoming-compiler-team-design-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Upcoming compiler-team design meetings" -author: Niko Matsakis -description: "Upcoming compiler-team design meetings" -team: the compiler team ---- ++++ +layout = "post" +title = "Upcoming compiler-team design meetings" +author = "Niko Matsakis" +description = "Upcoming compiler-team design meetings" +team = "the compiler team " ++++ In our [planning meeting today], the [compiler team] has scheduled our next batch of upcoming design meetings. You can find the exact times diff --git a/posts/inside-rust/2020-04-14-Governance-WG-updated.md b/posts/inside-rust/2020-04-14-Governance-WG-updated.md index bb643731e..dfa4601bc 100644 --- a/posts/inside-rust/2020-04-14-Governance-WG-updated.md +++ b/posts/inside-rust/2020-04-14-Governance-WG-updated.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Working Group Update: Meeting 09 April 2020" -author: Nell Shamrell-Harrington -team: The Governance WG ---- ++++ +layout = "post" +title = "Governance Working Group Update: Meeting 09 April 2020" +author = "Nell Shamrell-Harrington" +team = "The Governance WG " ++++ Greetings Rustaceans! diff --git a/posts/inside-rust/2020-04-23-Governance-wg.md b/posts/inside-rust/2020-04-23-Governance-wg.md index c30e382fa..27aa5ca17 100644 --- a/posts/inside-rust/2020-04-23-Governance-wg.md +++ b/posts/inside-rust/2020-04-23-Governance-wg.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Working Group Update: Meeting 23 April 2020" -author: Val Grimm -team: The Governance WG ---- ++++ +layout = "post" +title = "Governance Working Group Update: Meeting 23 April 2020" +author = "Val Grimm" +team = "The Governance WG " ++++ Greetings Rustaceans! diff --git a/posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md b/posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md index d0c6e002e..1ae3a32c9 100644 --- a/posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md +++ b/posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang Team meetings moving to new time slots" -author: Josh Triplett -description: "The Rust language team design and triage meetings have moved to new time slots" -team: the language team ---- ++++ +layout = "post" +title = "Lang Team meetings moving to new time slots" +author = "Josh Triplett" +description = "The Rust language team design and triage meetings have moved to new time slots" +team = "the language team " ++++ The Rust language team holds two weekly meetings: diff --git a/posts/inside-rust/2020-05-18-traits-sprint-2.md b/posts/inside-rust/2020-05-18-traits-sprint-2.md index f12d0494d..bd12a6b86 100644 --- a/posts/inside-rust/2020-05-18-traits-sprint-2.md +++ b/posts/inside-rust/2020-05-18-traits-sprint-2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Traits working group 2020 sprint 2 summary" -author: Jack Huey -team: The Traits WG ---- ++++ +layout = "post" +title = "Traits working group 2020 sprint 2 summary" +author = "Jack Huey" +team = "The Traits WG " ++++ It's that time of year again: another traits working group sprint summary. And ohh boy, it was a busy sprint. diff --git a/posts/inside-rust/2020-05-26-website-retrospective.md b/posts/inside-rust/2020-05-26-website-retrospective.md index 57d78c1da..56f66ce83 100644 --- a/posts/inside-rust/2020-05-26-website-retrospective.md +++ b/posts/inside-rust/2020-05-26-website-retrospective.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "A retrospective on the 2018 rust-lang.org redesign" -author: Nick Cameron -team: the core team ---- ++++ +layout = "post" +title = "A retrospective on the 2018 rust-lang.org redesign" +author = "Nick Cameron" +team = "the core team " ++++ We released our second 'edition' of Rust at the end of 2018. Part of that release was a revamp of the [Rust website](https://www.rust-lang.org). That work was completed on time, but there was some controversy when it was released, and the project itself was difficult and draining for those involved. This retrospective is an attempt to record the lessons learned from the project, and to put the project into context for those interested but not directly involved. diff --git a/posts/inside-rust/2020-05-27-contributor-survey.md b/posts/inside-rust/2020-05-27-contributor-survey.md index b17455e72..fd2e4f942 100644 --- a/posts/inside-rust/2020-05-27-contributor-survey.md +++ b/posts/inside-rust/2020-05-27-contributor-survey.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "2020 Contributor Survey" -author: Niko Matsakis and @mark-i-m -description: "We announce a new survey about the code contribution experience." -team: the compiler team ---- ++++ +layout = "post" +title = "2020 Contributor Survey" +author = "Niko Matsakis and @mark-i-m" +description = "We announce a new survey about the code contribution experience." +team = "the compiler team " ++++ You may be aware that [Rust recently turned 5][five]! If you read this blog, diff --git a/posts/inside-rust/2020-06-08-new-inline-asm.md b/posts/inside-rust/2020-06-08-new-inline-asm.md index f2df0afca..3dc9b912e 100644 --- a/posts/inside-rust/2020-06-08-new-inline-asm.md +++ b/posts/inside-rust/2020-06-08-new-inline-asm.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "New inline assembly syntax available in nightly" -author: Josh Triplett -description: "Rust has a new inline assembly syntax in nightly, please test" -team: the language team ---- ++++ +layout = "post" +title = "New inline assembly syntax available in nightly" +author = "Josh Triplett" +description = "Rust has a new inline assembly syntax in nightly, please test" +team = "the language team " ++++ In the course of optimization, OS or embedded development, or other kinds of low-level programming, you may sometimes need to write native assembly code for diff --git a/posts/inside-rust/2020-06-08-upcoming-compiler-team-design-meeting.md b/posts/inside-rust/2020-06-08-upcoming-compiler-team-design-meeting.md index 77f04db35..97c796391 100644 --- a/posts/inside-rust/2020-06-08-upcoming-compiler-team-design-meeting.md +++ b/posts/inside-rust/2020-06-08-upcoming-compiler-team-design-meeting.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Upcoming compiler-team design meetings" -author: Felix Klock -description: "Upcoming compiler-team design meetings" -team: the compiler team ---- ++++ +layout = "post" +title = "Upcoming compiler-team design meetings" +author = "Felix Klock" +description = "Upcoming compiler-team design meetings" +team = "the compiler team " ++++ In our [planning meeting today], the [compiler team] has scheduled our next batch of upcoming design meetings. You can find the exact times diff --git a/posts/inside-rust/2020-06-09-windows-notification-group.md b/posts/inside-rust/2020-06-09-windows-notification-group.md index bd1c295ca..215b668a8 100644 --- a/posts/inside-rust/2020-06-09-windows-notification-group.md +++ b/posts/inside-rust/2020-06-09-windows-notification-group.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Announcing the Windows and ARM notification groups" -author: Niko Matsakis -description: "Announcing the Windows and ARM notification groups" -team: the compiler team ---- ++++ +layout = "post" +title = "Announcing the Windows and ARM notification groups" +author = "Niko Matsakis" +description = "Announcing the Windows and ARM notification groups" +team = "the compiler team " ++++ We are forming two new groups in the compiler team: diff --git a/posts/inside-rust/2020-06-29-lto-improvements.md b/posts/inside-rust/2020-06-29-lto-improvements.md index 77670396b..39d4aadbc 100644 --- a/posts/inside-rust/2020-06-29-lto-improvements.md +++ b/posts/inside-rust/2020-06-29-lto-improvements.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Disk space and LTO improvements" -author: Eric Huss -description: "Disk space and LTO improvements" -team: the Cargo team ---- ++++ +layout = "post" +title = "Disk space and LTO improvements" +author = "Eric Huss" +description = "Disk space and LTO improvements" +team = "the Cargo team " ++++ Thanks to the work of [Nicholas Nethercote] and [Alex Crichton], there have been some recent improvements that reduce the size of compiled libraries, and improves the compile-time performance, particularly when using LTO. This post dives into some of the details of what changed, and an estimation of the benefits. diff --git a/posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md b/posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md index cc34cf808..3ce623753 100644 --- a/posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md +++ b/posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Ownership of the standard library implementation" -author: Ashley Mannix -team: The Libs team ---- ++++ +layout = "post" +title = "Ownership of the standard library implementation" +author = "Ashley Mannix" +team = "The Libs team " ++++ Our Rust project is a large and diverse one. Its activities are broadly coordinated by teams that give the community space to find and contribute to the things that matter to them. We’re trialing a reorganization of standard library activities between the Libs and Compiler teams. diff --git a/posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md b/posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md index 721a73841..be1878ef3 100644 --- a/posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md +++ b/posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team design meeting update" -author: Niko Matsakis -description: "Summary of some of the recent lang team design meetings" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team design meeting update" +author = "Niko Matsakis" +description = "Summary of some of the recent lang team design meetings" +team = "the lang team " ++++ Hello! Did you know that the [lang team] now has regular design meetings? We use these meetings to dig deeper into the output of diff --git a/posts/inside-rust/2020-07-09-lang-team-path-to-membership.md b/posts/inside-rust/2020-07-09-lang-team-path-to-membership.md index 5f7a669ea..94c96de11 100644 --- a/posts/inside-rust/2020-07-09-lang-team-path-to-membership.md +++ b/posts/inside-rust/2020-07-09-lang-team-path-to-membership.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team design meeting: path to membership" -author: Niko Matsakis -description: "Lang team design meeting: path to membership" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team design meeting: path to membership" +author = "Niko Matsakis" +description = "Lang team design meeting: path to membership" +team = "the lang team " ++++ This week the [lang team] design meeting was on the topic of the "path to membership". This blog post gives a brief summary; you can also read diff --git a/posts/inside-rust/2020-07-17-traits-sprint-3.md b/posts/inside-rust/2020-07-17-traits-sprint-3.md index 60f85ea9f..2f31647fa 100644 --- a/posts/inside-rust/2020-07-17-traits-sprint-3.md +++ b/posts/inside-rust/2020-07-17-traits-sprint-3.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Traits working group 2020 sprint 3 summary" -author: Jack Huey -team: The Traits WG ---- ++++ +layout = "post" +title = "Traits working group 2020 sprint 3 summary" +author = "Jack Huey" +team = "The Traits WG " ++++ Again? It feels like we just had one of these...6 weeks ago 😉. Anyways, much of this sprint was a continuation of the previous two: working towards making Chalk feature-complete and eventually using it in rustc for trait solving. diff --git a/posts/inside-rust/2020-07-23-rust-ci-is-moving-to-github-actions.md b/posts/inside-rust/2020-07-23-rust-ci-is-moving-to-github-actions.md index d519e7560..15f3a1193 100644 --- a/posts/inside-rust/2020-07-23-rust-ci-is-moving-to-github-actions.md +++ b/posts/inside-rust/2020-07-23-rust-ci-is-moving-to-github-actions.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust's CI is moving to GitHub Actions" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "Rust's CI is moving to GitHub Actions" +author = "Pietro Albini" +team = "the infrastructure team " ++++ The Rust Infrastructure Team is happy to announce that, as part of the [evaluation we started last year][eval], most of Rust’s CI is moving to GitHub diff --git a/posts/inside-rust/2020-07-27-1.45.1-prerelease.md b/posts/inside-rust/2020-07-27-1.45.1-prerelease.md index 0b8b6f6c1..099a51f26 100644 --- a/posts/inside-rust/2020-07-27-1.45.1-prerelease.md +++ b/posts/inside-rust/2020-07-27-1.45.1-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.45.1 prerelease testing" -author: Mark Rousskov -team: The Release Team ---- ++++ +layout = "post" +title = "1.45.1 prerelease testing" +author = "Mark Rousskov" +team = "The Release Team " ++++ The 1.45.1 pre-release is ready for testing. The release is scheduled for this Thursday, the 30th. Release notes can be found here: diff --git a/posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md b/posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md index f5a4eb316..f0dd1e15a 100644 --- a/posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md +++ b/posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Opening up the Core Team agenda" -author: Pietro Albini -team: the Core Team ---- ++++ +layout = "post" +title = "Opening up the Core Team agenda" +author = "Pietro Albini" +team = "the Core Team " ++++ The Core Team works on project-wide policy questions on all sorts of matters, as well as generally monitoring the overall health of the project. While some diff --git a/posts/inside-rust/2020-07-29-lang-team-design-meeting-min-const-generics.md b/posts/inside-rust/2020-07-29-lang-team-design-meeting-min-const-generics.md index 3c8aebee2..8c4e92a9c 100644 --- a/posts/inside-rust/2020-07-29-lang-team-design-meeting-min-const-generics.md +++ b/posts/inside-rust/2020-07-29-lang-team-design-meeting-min-const-generics.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team design meeting: minimal const generics" -author: Niko Matsakis -description: "Minimal const generics meeting report" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team design meeting: minimal const generics" +author = "Niko Matsakis" +description = "Minimal const generics meeting report" +team = "the lang team " ++++ Hello! Did you know that the [lang team] now has regular design meetings? We use these meetings to dig deeper into the output of diff --git a/posts/inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md b/posts/inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md index 77fa0a458..7290bbe9e 100644 --- a/posts/inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md +++ b/posts/inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team design meeting: well-formedness and type aliases" -author: Niko Matsakis -description: "Well-formedness and type aliases meeting report" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team design meeting: well-formedness and type aliases" +author = "Niko Matsakis" +description = "Well-formedness and type aliases meeting report" +team = "the lang team " ++++ Hello! Did you know that the [lang team] now has regular design meetings? We use these meetings to dig deeper into the output of diff --git a/posts/inside-rust/2020-08-24-1.46.0-prerelease.md b/posts/inside-rust/2020-08-24-1.46.0-prerelease.md index 5d142fe79..77af713d9 100644 --- a/posts/inside-rust/2020-08-24-1.46.0-prerelease.md +++ b/posts/inside-rust/2020-08-24-1.46.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.46.0 pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.46.0 pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The 1.46.0 pre-release is ready for testing. The release is scheduled for this Thursday, August 27th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2020-08-28-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/2020-08-28-upcoming-compiler-team-design-meetings.md index 46c8ff34e..078b92890 100644 --- a/posts/inside-rust/2020-08-28-upcoming-compiler-team-design-meetings.md +++ b/posts/inside-rust/2020-08-28-upcoming-compiler-team-design-meetings.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Upcoming compiler-team design meetings" -author: Niko Matsakis -description: "Upcoming compiler-team design meetings" -team: the compiler team ---- ++++ +layout = "post" +title = "Upcoming compiler-team design meetings" +author = "Niko Matsakis" +description = "Upcoming compiler-team design meetings" +team = "the compiler team " ++++ In our [planning meeting today], the [compiler team] has scheduled our next batch of upcoming design meetings. You can find the exact times diff --git a/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md b/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md index 72a245c45..5bb42478e 100644 --- a/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md +++ b/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Changes to x.py defaults" -author: Jynn Nelson -team: the compiler team ---- ++++ +layout = "post" +title = "Changes to x.py defaults" +author = "Jynn Nelson" +team = "the compiler team " ++++ Recently, the defaults for [`x.py`], the tool used to [bootstrap] the Rust compiler from source, changed. If you regularly contribute to Rust, this might affect your workflow. diff --git a/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md b/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md index 6e6765289..226232656 100644 --- a/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md +++ b/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Intra-doc links close to stabilization" -author: Manish Goregaokar and Jynn Nelson -team: the rustdoc team ---- ++++ +layout = "post" +title = "Intra-doc links close to stabilization" +author = "Manish Goregaokar and Jynn Nelson" +team = "the rustdoc team " ++++ We're excited to share that intra-doc links are stabilizing soon! diff --git a/posts/inside-rust/2020-09-18-error-handling-wg-announcement.md b/posts/inside-rust/2020-09-18-error-handling-wg-announcement.md index 21b0697a3..bc3aa8db3 100644 --- a/posts/inside-rust/2020-09-18-error-handling-wg-announcement.md +++ b/posts/inside-rust/2020-09-18-error-handling-wg-announcement.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Announcing the Error Handling Project Group" -author: Sean Chen -description: "Announcing the Error Handling Project Group" -team: the library team ---- ++++ +layout = "post" +title = "Announcing the Error Handling Project Group" +author = "Sean Chen" +description = "Announcing the Error Handling Project Group" +team = "the library team " ++++ Today we are announcing the formation of a new project group under the libs team, focused on error handling! diff --git a/posts/inside-rust/2020-09-29-Portable-SIMD-PG.md b/posts/inside-rust/2020-09-29-Portable-SIMD-PG.md index 758dc4239..3647167d3 100644 --- a/posts/inside-rust/2020-09-29-Portable-SIMD-PG.md +++ b/posts/inside-rust/2020-09-29-Portable-SIMD-PG.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Announcing the Portable SIMD Project Group" -author: Jubilee and Lokathor -description: "Announcing the Portable SIMD Project Group" -team: the library team ---- ++++ +layout = "post" +title = "Announcing the Portable SIMD Project Group" +author = "Jubilee and Lokathor" +description = "Announcing the Portable SIMD Project Group" +team = "the library team " ++++ We're announcing the start of the _Portable SIMD Project Group_ within the Libs team. This group is dedicated to making a portable SIMD API available to stable Rust users. diff --git a/posts/inside-rust/2020-10-06-1.47.0-prerelease.md b/posts/inside-rust/2020-10-06-1.47.0-prerelease.md index c340773a4..9bf610527 100644 --- a/posts/inside-rust/2020-10-06-1.47.0-prerelease.md +++ b/posts/inside-rust/2020-10-06-1.47.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.47.0 pre-release testing" -author: Mark Rousskov -team: The Release Team ---- ++++ +layout = "post" +title = "1.47.0 pre-release testing" +author = "Mark Rousskov" +team = "The Release Team " ++++ The 1.47.0 pre-release is ready for testing. The release is scheduled for this Thursday, October 8th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md b/posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md index d91a9b3ae..93555c6c1 100644 --- a/posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md +++ b/posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.47.0 second pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.47.0 second pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The second pre-release for 1.47.0 is ready for testing. The release is scheduled for this Thursday, October 8th. [Release notes can be found diff --git a/posts/inside-rust/2020-10-16-Backlog-Bonanza.md b/posts/inside-rust/2020-10-16-Backlog-Bonanza.md index 77f0ecc3f..67e3bd67a 100644 --- a/posts/inside-rust/2020-10-16-Backlog-Bonanza.md +++ b/posts/inside-rust/2020-10-16-Backlog-Bonanza.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Lang team Backlog Bonanza and Project Proposals" -author: Nicholas Matsakis -team: the lang team ---- ++++ +layout = "post" +title = "Lang team Backlog Bonanza and Project Proposals" +author = "Nicholas Matsakis" +team = "the lang team " ++++ A month or two back, the lang team embarked on a new initiative that we call the "Backlog Bonanza". The idea is simple: we are holding a diff --git a/posts/inside-rust/2020-10-23-Core-team-membership.md b/posts/inside-rust/2020-10-23-Core-team-membership.md index efac6b2e8..8c1b514af 100644 --- a/posts/inside-rust/2020-10-23-Core-team-membership.md +++ b/posts/inside-rust/2020-10-23-Core-team-membership.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Core team membership changes" -author: Mark Rousskov -team: The Core Team ---- ++++ +layout = "post" +title = "Core team membership changes" +author = "Mark Rousskov" +team = "The Core Team " ++++ The core team has had a few membership updates in the last month, and we wanted to provide an update. diff --git a/posts/inside-rust/2020-11-11-exploring-pgo-for-the-rust-compiler.md b/posts/inside-rust/2020-11-11-exploring-pgo-for-the-rust-compiler.md index 0644ef3ae..5ff7ab139 100644 --- a/posts/inside-rust/2020-11-11-exploring-pgo-for-the-rust-compiler.md +++ b/posts/inside-rust/2020-11-11-exploring-pgo-for-the-rust-compiler.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Exploring PGO for the Rust compiler" -author: Michael Woerister -description: "Investigate the effects that profile guided optimization has on rustc's performance" -team: the compiler team ---- ++++ +layout = "post" +title = "Exploring PGO for the Rust compiler" +author = "Michael Woerister" +description = "Investigate the effects that profile guided optimization has on rustc's performance" +team = "the compiler team " ++++ **TLDR** -- PGO makes the compiler [faster](#final-numbers-and-a-benchmarking-plot-twist) but is [not straightforward](#where-to-go-from-here) to realize in CI. diff --git a/posts/inside-rust/2020-11-12-source-based-code-coverage.md b/posts/inside-rust/2020-11-12-source-based-code-coverage.md index 2ccdd38ec..f46de281e 100644 --- a/posts/inside-rust/2020-11-12-source-based-code-coverage.md +++ b/posts/inside-rust/2020-11-12-source-based-code-coverage.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Source-based code coverage in nightly -author: Tyler Mandry -team: The Compiler Team ---- ++++ +layout = "post" +title = "Source-based code coverage in nightly" +author = "Tyler Mandry" +team = "The Compiler Team " ++++ Support has landed in the nightly compiler for source-based code coverage, diff --git a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md b/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md index 7b8a668c4..b103f7e74 100644 --- a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md +++ b/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Using rustc_codegen_cranelift for debug builds" -author: Jynn Nelson -team: The Compiler Team ---- ++++ +layout = "post" +title = "Using rustc_codegen_cranelift for debug builds" +author = "Jynn Nelson" +team = "The Compiler Team " ++++ ## What is `rustc_codegen_cranelift`? diff --git a/posts/inside-rust/2020-11-16-1.48.0-prerelease.md b/posts/inside-rust/2020-11-16-1.48.0-prerelease.md index e6c5d4c10..0fea8323c 100644 --- a/posts/inside-rust/2020-11-16-1.48.0-prerelease.md +++ b/posts/inside-rust/2020-11-16-1.48.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.48.0 pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.48.0 pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The 1.48.0 pre-release is ready for testing. The release is scheduled for this Thursday, November 19th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2020-11-23-What-the-error-handling-project-group-is-working-on.md b/posts/inside-rust/2020-11-23-What-the-error-handling-project-group-is-working-on.md index 069fad228..1db45d21b 100644 --- a/posts/inside-rust/2020-11-23-What-the-error-handling-project-group-is-working-on.md +++ b/posts/inside-rust/2020-11-23-What-the-error-handling-project-group-is-working-on.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "What the Error Handling Project Group is Working On" -author: Sean Chen -team: the library team ---- ++++ +layout = "post" +title = "What the Error Handling Project Group is Working On" +author = "Sean Chen" +team = "the library team " ++++ The Rust community takes its error handling seriously. There’s already a strong culture in place for emphasizing helpful error handling and reporting, with multiple libraries each offering their own take (see Jane Lusby’s thorough [survey][error_ecosystem_vid] of Rust error handling/reporting libraries). @@ -86,4 +86,4 @@ Lastly, we'll be presenting some forthcoming news about a universally consistent [zulip]: https://rust-lang.zulipchat.com/#narrow/stream/257204-project-error-handling [peh_repo]: https://github.com/rust-lang/project-error-handling [backtrace_frames_pr]: https://github.com/rust-lang/rust/pull/78299 -[error_book]: https://github.com/rust-lang/project-error-handling/tree/master/the-rust-error-book \ No newline at end of file +[error_book]: https://github.com/rust-lang/project-error-handling/tree/master/the-rust-error-book diff --git a/posts/inside-rust/2020-12-14-changes-to-compiler-team.md b/posts/inside-rust/2020-12-14-changes-to-compiler-team.md index bd6916c8c..13abd5d43 100644 --- a/posts/inside-rust/2020-12-14-changes-to-compiler-team.md +++ b/posts/inside-rust/2020-12-14-changes-to-compiler-team.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Changes to Rust compiler team" -author: Felix S. Klock II -description: "recent leadership and membership changes" -team: the compiler team ---- ++++ +layout = "post" +title = "Changes to Rust compiler team" +author = "Felix S. Klock II" +description = "recent leadership and membership changes" +team = "the compiler team " ++++ There have been important changes recently to the Rust compiler team. diff --git a/posts/inside-rust/2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md b/posts/inside-rust/2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md index dc5d1155f..1128f8eb6 100644 --- a/posts/inside-rust/2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md +++ b/posts/inside-rust/2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Please welcome cjgillot and Nadrieril to compiler-contributors" -author: Wesley Wiser -description: "Please welcome cjgillot and Nadrieril to compiler-contributors" -team: the compiler team ---- ++++ +layout = "post" +title = "Please welcome cjgillot and Nadrieril to compiler-contributors" +author = "Wesley Wiser" +description = "Please welcome cjgillot and Nadrieril to compiler-contributors" +team = "the compiler team " ++++ Please welcome [@cjgillot] and [@Nadrieril] to the [compiler-contributors] group! diff --git a/posts/inside-rust/2020-12-29-1.49.0-prerelease.md b/posts/inside-rust/2020-12-29-1.49.0-prerelease.md index 05717f319..c146d5409 100644 --- a/posts/inside-rust/2020-12-29-1.49.0-prerelease.md +++ b/posts/inside-rust/2020-12-29-1.49.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.49.0 pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.49.0 pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The 1.49.0 pre-release is ready for testing. The release is scheduled for this Thursday, December 31st. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md b/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md index 7e05d1c57..7fcb2e2e1 100644 --- a/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md +++ b/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rustdoc performance improvements" -author: Jynn Nelson and Guillaume Gomez -team: The Rustdoc Team ---- ++++ +layout = "post" +title = "Rustdoc performance improvements" +author = "Jynn Nelson and Guillaume Gomez" +team = "The Rustdoc Team " ++++ Hi everyone! [**@GuillaumeGomez**] recently tweeted about the rustdoc performance improvements and suggested that we write a blog post about it: diff --git a/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md b/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md index e4b13fbf1..2cb3bcf4e 100644 --- a/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md +++ b/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Changes to the Rustdoc team" -author: Guillaume Gomez -description: "leadership and membership additions" -team: the rustdoc team ---- ++++ +layout = "post" +title = "Changes to the Rustdoc team" +author = "Guillaume Gomez" +description = "leadership and membership additions" +team = "the rustdoc team " ++++ Recently, there have been a lot of improvements in rustdoc. It was possible thanks to our new contributors. In light of these recent contributions, a few changes were made in the rustdoc team. diff --git a/posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md b/posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md index 1eaab02da..10b1c65e6 100644 --- a/posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md +++ b/posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Rust & the case of the disappearing stack frames" -author: Kyle Strand -description: "introducing an exploration of how `longjmp` and similar functions can be handled in Rust" -team: the FFI-unwind project group ---- ++++ +layout = "post" +title = "Rust & the case of the disappearing stack frames" +author = "Kyle Strand" +description = "introducing an exploration of how `longjmp` and similar functions can be handled in Rust" +team = "the FFI-unwind project group " ++++ Now that the [FFI-unwind Project Group][proj-group-gh] has merged [an RFC][c-unwind-rfc] specifying the `"C unwind"` ABI and removing some instances diff --git a/posts/inside-rust/2021-02-01-davidtwco-jackhuey-compiler-members.md b/posts/inside-rust/2021-02-01-davidtwco-jackhuey-compiler-members.md index 62d0a4e7e..72e3741d7 100644 --- a/posts/inside-rust/2021-02-01-davidtwco-jackhuey-compiler-members.md +++ b/posts/inside-rust/2021-02-01-davidtwco-jackhuey-compiler-members.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Welcoming David Wood to compiler team and Jack Huey to compiler-contributors" -author: Wesley Wiser -description: "Please welcome David Wood to the compiler team and Jack Huey to compiler-contributors" -team: the compiler team ---- ++++ +layout = "post" +title = "Welcoming David Wood to compiler team and Jack Huey to compiler-contributors" +author = "Wesley Wiser" +description = "Please welcome David Wood to the compiler team and Jack Huey to compiler-contributors" +team = "the compiler team " ++++ Please welcome [David Wood] to the compiler team and [Jack Huey] to the [compiler-contributors] group! diff --git a/posts/inside-rust/2021-02-03-lang-team-feb-update.md b/posts/inside-rust/2021-02-03-lang-team-feb-update.md index a13e9e1e1..68df3eaa9 100644 --- a/posts/inside-rust/2021-02-03-lang-team-feb-update.md +++ b/posts/inside-rust/2021-02-03-lang-team-feb-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team February update" -author: Niko Matsakis -description: "Lang team February update" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team February update" +author = "Niko Matsakis" +description = "Lang team February update" +team = "the lang team " ++++ Today the lang team held its first planning meeting ([minutes]). From now on, we're going to hold these meetings on the first Wednesday of every month. diff --git a/posts/inside-rust/2021-02-09-1.50.0-prerelease.md b/posts/inside-rust/2021-02-09-1.50.0-prerelease.md index d2f9d20f9..ae6e2ddde 100644 --- a/posts/inside-rust/2021-02-09-1.50.0-prerelease.md +++ b/posts/inside-rust/2021-02-09-1.50.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.50.0 pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.50.0 pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The 1.50.0 pre-release is ready for testing. The release is scheduled for this Thursday, February 11th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md b/posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md index 5e230cb14..cc0370f2b 100644 --- a/posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md +++ b/posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "March Sprint for rustc: Shrink Memory Usage" -author: Felix Klock -team: The Compiler Team ---- ++++ +layout = "post" +title = "March Sprint for rustc: Shrink Memory Usage" +author = "Felix Klock" +team = "The Compiler Team " ++++ I am very excited about the compiler team's upcoming sprint, and I want to share that excitement with all of you. diff --git a/posts/inside-rust/2021-03-03-lang-team-mar-update.md b/posts/inside-rust/2021-03-03-lang-team-mar-update.md index bf526442a..774d9586d 100644 --- a/posts/inside-rust/2021-03-03-lang-team-mar-update.md +++ b/posts/inside-rust/2021-03-03-lang-team-mar-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team March update" -author: Niko Matsakis -description: "Lang team March update" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team March update" +author = "Niko Matsakis" +description = "Lang team March update" +team = "the lang team " ++++ Today the lang team held its March planning meeting ([minutes]). We hold these meetings on the first Wednesday of every month. diff --git a/posts/inside-rust/2021-03-04-planning-rust-2021.md b/posts/inside-rust/2021-03-04-planning-rust-2021.md index a6f581076..555a7323c 100644 --- a/posts/inside-rust/2021-03-04-planning-rust-2021.md +++ b/posts/inside-rust/2021-03-04-planning-rust-2021.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Planning the Rust 2021 Edition" -author: Ryan Levick -team: The Rust 2021 Edition Working Group ---- ++++ +layout = "post" +title = "Planning the Rust 2021 Edition" +author = "Ryan Levick" +team = "The Rust 2021 Edition Working Group " ++++ The Rust 2021 Edition working group is happy to announce that the next edition of Rust, Rust 2021, is scheduled for release later this year. While the [RFC](https://github.com/rust-lang/rfcs/pull/3085) formally introducing this edition is still open, we expect it to be merged soon. Planning and preparation have already begun, and we're on schedule! diff --git a/posts/inside-rust/2021-03-23-1.51.0-prerelease.md b/posts/inside-rust/2021-03-23-1.51.0-prerelease.md index 6b8fdb1e4..fc477f617 100644 --- a/posts/inside-rust/2021-03-23-1.51.0-prerelease.md +++ b/posts/inside-rust/2021-03-23-1.51.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.51.0 pre-release testing" -author: Mark Rousskov -team: The Release Team ---- ++++ +layout = "post" +title = "1.51.0 pre-release testing" +author = "Mark Rousskov" +team = "The Release Team " ++++ The 1.51.0 pre-release is ready for testing. The release is scheduled for this Thursday, March 25th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2021-04-03-core-team-updates.md b/posts/inside-rust/2021-04-03-core-team-updates.md index 630a2491a..f0b395031 100644 --- a/posts/inside-rust/2021-04-03-core-team-updates.md +++ b/posts/inside-rust/2021-04-03-core-team-updates.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Core Team updates" -author: Pietro Albini -team: the Rust Core Team ---- ++++ +layout = "post" +title = "Core Team updates" +author = "Pietro Albini" +team = "the Rust Core Team " ++++ Niko Matsakis is [stepping back][niko-blog] from the [Core Team][team-core], focusing his energy on leading the [Language Team][team-lang]. Amongst the many diff --git a/posts/inside-rust/2021-04-15-compiler-team-april-steering-cycle.md b/posts/inside-rust/2021-04-15-compiler-team-april-steering-cycle.md index 90a717561..e4b694d32 100644 --- a/posts/inside-rust/2021-04-15-compiler-team-april-steering-cycle.md +++ b/posts/inside-rust/2021-04-15-compiler-team-april-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler April Steering Cycle -author: Felix Klock -description: "The compiler team's April steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler April Steering Cycle" +author = "Felix Klock" +description = "The compiler team's April steering cycle" +team = "The Compiler Team " ++++ On [Friday, April 9th][apr-9-zulip-archive], the Rust Compiler team had a planning meeting for the April steering cycle. diff --git a/posts/inside-rust/2021-04-17-lang-team-apr-update.md b/posts/inside-rust/2021-04-17-lang-team-apr-update.md index 42cff717d..3f4079c29 100644 --- a/posts/inside-rust/2021-04-17-lang-team-apr-update.md +++ b/posts/inside-rust/2021-04-17-lang-team-apr-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team April update" -author: Niko Matsakis -description: "Lang team April update" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team April update" +author = "Niko Matsakis" +description = "Lang team April update" +team = "the lang team " ++++ This week the lang team held its April planning meeting ([minutes]). We normally hold these meetings on the first Wednesday of every month, but this month we were delayed by one week due to scheduling conflicts. diff --git a/posts/inside-rust/2021-04-20-jsha-rustdoc-member.md b/posts/inside-rust/2021-04-20-jsha-rustdoc-member.md index 1a75bba47..d16de19b8 100644 --- a/posts/inside-rust/2021-04-20-jsha-rustdoc-member.md +++ b/posts/inside-rust/2021-04-20-jsha-rustdoc-member.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Jacob Hoffman-Andrews joins the Rustdoc team" -author: Guillaume Gomez -description: "new rustdoc team member" -team: the rustdoc team ---- ++++ +layout = "post" +title = "Jacob Hoffman-Andrews joins the Rustdoc team" +author = "Guillaume Gomez" +description = "new rustdoc team member" +team = "the rustdoc team " ++++ Hello everyone, please welcome [Jacob Hoffman-Andrews][@jsha] to the rustdoc team! diff --git a/posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md b/posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md index a59996ed3..361b0f361 100644 --- a/posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md +++ b/posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Congrats to compiler team member Aaron Hill" -author: Wesley Wiser -description: "Congrats to compiler team member Aaron Hill" -team: the compiler team ---- ++++ +layout = "post" +title = "Congrats to compiler team member Aaron Hill" +author = "Wesley Wiser" +description = "Congrats to compiler team member Aaron Hill" +team = "the compiler team " ++++ I am pleased to announce that [Aaron Hill] has been made a full member of the [compiler team]. diff --git a/posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md b/posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md index b04141098..a892b5936 100644 --- a/posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md +++ b/posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rustup 1.24.0 release incident report for 2021-04-27" -author: Daniel Silverstone -team: the Rustup team ---- ++++ +layout = "post" +title = "Rustup 1.24.0 release incident report for 2021-04-27" +author = "Daniel Silverstone" +team = "the Rustup team " ++++ On 2021-04-27 at 15:09 UTC we released a new version of Rustup (1.24.0). At 15:23 UTC we received a report that we had introduced a regression in the part diff --git a/posts/inside-rust/2021-05-04-1.52.0-prerelease.md b/posts/inside-rust/2021-05-04-1.52.0-prerelease.md index ca4ef6d45..a01aabfb9 100644 --- a/posts/inside-rust/2021-05-04-1.52.0-prerelease.md +++ b/posts/inside-rust/2021-05-04-1.52.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.52.0 pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.52.0 pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The 1.52.0 pre-release is ready for testing. The release is scheduled for this Thursday, May 6th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2021-05-04-core-team-update.md b/posts/inside-rust/2021-05-04-core-team-update.md index 0737b867b..225439649 100644 --- a/posts/inside-rust/2021-05-04-core-team-update.md +++ b/posts/inside-rust/2021-05-04-core-team-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Core Team Update: May 2021" -author: Steve Klabnik -team: The Core Team ---- ++++ +layout = "post" +title = "Core Team Update: May 2021" +author = "Steve Klabnik" +team = "The Core Team " ++++ Hey everyone! Back in August of last year, the core team wrote a blog post titled "[Laying the foundation for Rust's Future][future]." Ever since then, diff --git a/posts/inside-rust/2021-06-15-1.53.0-prelease.md b/posts/inside-rust/2021-06-15-1.53.0-prelease.md index 53c239921..af0dd3ebe 100644 --- a/posts/inside-rust/2021-06-15-1.53.0-prelease.md +++ b/posts/inside-rust/2021-06-15-1.53.0-prelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.53.0 pre-release testing" -author: Mark Rousskov -team: The Release Team ---- ++++ +layout = "post" +title = "1.53.0 pre-release testing" +author = "Mark Rousskov" +team = "The Release Team " ++++ The 1.53.0 pre-release is ready for testing. The release is scheduled for this Thursday, June 17th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md b/posts/inside-rust/2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md index 95d10c962..642427bbd 100644 --- a/posts/inside-rust/2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md +++ b/posts/inside-rust/2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Please welcome Boxy, Léo Lanteri Thauvin and the8472 to compiler-contributors" -author: Wesley Wiser -description: "Please welcome Boxy, Léo Lanteri Thauvin and the8472 to compiler-contributors" -team: the compiler team ---- ++++ +layout = "post" +title = "Please welcome Boxy, Léo Lanteri Thauvin and the8472 to compiler-contributors" +author = "Wesley Wiser" +description = "Please welcome Boxy, Léo Lanteri Thauvin and the8472 to compiler-contributors" +team = "the compiler team " ++++ Please welcome [Boxy], [Léo Lanteri Thauvin] and [the8472] to the [compiler-contributors] group! diff --git a/posts/inside-rust/2021-06-23-compiler-team-june-steering-cycle.md b/posts/inside-rust/2021-06-23-compiler-team-june-steering-cycle.md index c8056f1dd..7db539e94 100644 --- a/posts/inside-rust/2021-06-23-compiler-team-june-steering-cycle.md +++ b/posts/inside-rust/2021-06-23-compiler-team-june-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler June Steering Cycle -author: Felix Klock -description: "The compiler team's June steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler June Steering Cycle" +author = "Felix Klock" +description = "The compiler team's June steering cycle" +team = "The Compiler Team " ++++ On [Friday, June 4th][jun-4-zulip-archive], the Rust Compiler team had a planning meeting for the June steering cycle. diff --git a/posts/inside-rust/2021-07-01-What-the-error-handling-project-group-is-working-towards.md b/posts/inside-rust/2021-07-01-What-the-error-handling-project-group-is-working-towards.md index ac05ce0c9..e7d5a6d99 100644 --- a/posts/inside-rust/2021-07-01-What-the-error-handling-project-group-is-working-towards.md +++ b/posts/inside-rust/2021-07-01-What-the-error-handling-project-group-is-working-towards.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "What the Error Handling Project Group is Working Towards" -author: Jane Lusby -team: the library team ---- ++++ +layout = "post" +title = "What the Error Handling Project Group is Working Towards" +author = "Jane Lusby" +team = "the library team " ++++ This blog post is a follow up of our [previous](https://blog.rust-lang.org/inside-rust/2020/11/23/What-the-error-handling-project-group-is-working-on.html) post detailing what we're working on now. We've been iterating for a while now on some of the challenges that we see with error handling today and have reached the point where we want to describe some of the new changes we're working towards. But first we need to describe the main challenges we've identified. diff --git a/posts/inside-rust/2021-07-02-compiler-team-july-steering-cycle.md b/posts/inside-rust/2021-07-02-compiler-team-july-steering-cycle.md index 0899ee47a..f961a3e35 100644 --- a/posts/inside-rust/2021-07-02-compiler-team-july-steering-cycle.md +++ b/posts/inside-rust/2021-07-02-compiler-team-july-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler July Steering Cycle -author: Felix Klock -description: "The compiler team's July steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler July Steering Cycle" +author = "Felix Klock" +description = "The compiler team's July steering cycle" +team = "The Compiler Team " ++++ On [Friday, July 2nd][jul-02-zulip-archive], the Rust Compiler team had a planning meeting for the July steering cycle, followed by a continuation of an ongoing discussion of the 1.52.0 fingerprint event. Every fourth Friday, the Rust compiler team decides how diff --git a/posts/inside-rust/2021-07-12-Lang-team-july-update.md b/posts/inside-rust/2021-07-12-Lang-team-july-update.md index e4da92129..9df5d5ad7 100644 --- a/posts/inside-rust/2021-07-12-Lang-team-july-update.md +++ b/posts/inside-rust/2021-07-12-Lang-team-july-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team July update" -author: Niko Matsakis -description: "Lang team July update" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team July update" +author = "Niko Matsakis" +description = "Lang team July update" +team = "the lang team " ++++ On 2021-07-07, the lang team held its July planning meeting ([minutes]). These meetings are tyically held the first Wednesday of every month. diff --git a/posts/inside-rust/2021-07-26-1.54.0-prerelease.md b/posts/inside-rust/2021-07-26-1.54.0-prerelease.md index 4c877ad94..f252743e5 100644 --- a/posts/inside-rust/2021-07-26-1.54.0-prerelease.md +++ b/posts/inside-rust/2021-07-26-1.54.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.54.0 pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.54.0 pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The 1.54.0 pre-release is ready for testing. The release is scheduled for this Thursday, July 29th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2021-07-30-compiler-team-august-steering-cycle.md b/posts/inside-rust/2021-07-30-compiler-team-august-steering-cycle.md index aa778edf7..db1e8c9ab 100644 --- a/posts/inside-rust/2021-07-30-compiler-team-august-steering-cycle.md +++ b/posts/inside-rust/2021-07-30-compiler-team-august-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler August Steering Cycle -author: Felix Klock -description: "The compiler team's August steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler August Steering Cycle" +author = "Felix Klock" +description = "The compiler team's August steering cycle" +team = "The Compiler Team " ++++ On [Friday, July 30th][jul-30-zulip-archive], the Rust Compiler team had a planning meeting for the August steering cycle. [jul-30-zulip-archive]: https://zulip-archive.rust-lang.org/238009tcompilermeetings/86722planningmeeting20210730.html diff --git a/posts/inside-rust/2021-08-04-lang-team-aug-update.md b/posts/inside-rust/2021-08-04-lang-team-aug-update.md index 5472e2983..c320e2647 100644 --- a/posts/inside-rust/2021-08-04-lang-team-aug-update.md +++ b/posts/inside-rust/2021-08-04-lang-team-aug-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team August update" -author: Josh Triplett -description: "Lang team August update" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team August update" +author = "Josh Triplett" +description = "Lang team August update" +team = "the lang team " ++++ This week the lang team held its August planning meeting. We normally hold these meetings on the first Wednesday of every month. diff --git a/posts/inside-rust/2021-09-06-Splitting-const-generics.md b/posts/inside-rust/2021-09-06-Splitting-const-generics.md index d386e5ae4..0e008308d 100644 --- a/posts/inside-rust/2021-09-06-Splitting-const-generics.md +++ b/posts/inside-rust/2021-09-06-Splitting-const-generics.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Splitting the const generics features" -author: lcnr -description: "Splitting the const generics features" -team: The Const Generics Project Group ---- ++++ +layout = "post" +title = "Splitting the const generics features" +author = "lcnr" +description = "Splitting the const generics features" +team = "The Const Generics Project Group " ++++ After the stabilization of the const generics MVP in version 1.51, the const generics project group has continued to work on const generics. Large parts of this work were gated behind the feature gates `const_generics` and `const_evaluatable_checked`. As time went on, the diff --git a/posts/inside-rust/2021-09-07-1.55.0-prerelease.md b/posts/inside-rust/2021-09-07-1.55.0-prerelease.md index 37d8dfbfc..5abb4b500 100644 --- a/posts/inside-rust/2021-09-07-1.55.0-prerelease.md +++ b/posts/inside-rust/2021-09-07-1.55.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.55.0 pre-release testing" -author: Mark Rousskov -team: The Release Team ---- ++++ +layout = "post" +title = "1.55.0 pre-release testing" +author = "Mark Rousskov" +team = "The Release Team " ++++ The 1.55.0 pre-release is ready for testing. The release is scheduled for this Thursday, September 9th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2021-10-08-Lang-team-Oct-update.md b/posts/inside-rust/2021-10-08-Lang-team-Oct-update.md index d94aaf292..e65eb8429 100644 --- a/posts/inside-rust/2021-10-08-Lang-team-Oct-update.md +++ b/posts/inside-rust/2021-10-08-Lang-team-Oct-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team October update" -author: Niko Matsakis -description: "Lang team October update" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team October update" +author = "Niko Matsakis" +description = "Lang team October update" +team = "the lang team " ++++ This week the lang team held its October planning meeting ([minutes]). We hold these meetings on the first Wednesday of every month. diff --git a/posts/inside-rust/2021-10-18-1.56.0-prerelease.md b/posts/inside-rust/2021-10-18-1.56.0-prerelease.md index 9379fb999..1e263e5fd 100644 --- a/posts/inside-rust/2021-10-18-1.56.0-prerelease.md +++ b/posts/inside-rust/2021-10-18-1.56.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.56.0 pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.56.0 pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The 1.56.0 pre-release is ready for testing. The release is scheduled for this Thursday, October 21st. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md b/posts/inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md index aab707e6e..a5e0dd9dc 100644 --- a/posts/inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md +++ b/posts/inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Please welcome The 8472 and Ashley Mannix to Library Contributors" -author: Mara Bos -description: "Please welcome The 8472 and Ashley Mannix to Library Contributors" -team: the library team ---- ++++ +layout = "post" +title = "Please welcome The 8472 and Ashley Mannix to Library Contributors" +author = "Mara Bos" +description = "Please welcome The 8472 and Ashley Mannix to Library Contributors" +team = "the library team " ++++ Please welcome The 8472 and Ashley Mannix to the [Library Contributors](https://www.rust-lang.org/governance/teams/library#libs-contributors) group! diff --git a/posts/inside-rust/2021-11-25-in-response-to-the-moderation-team-resignation.md b/posts/inside-rust/2021-11-25-in-response-to-the-moderation-team-resignation.md index a39b778e1..f71c6b123 100644 --- a/posts/inside-rust/2021-11-25-in-response-to-the-moderation-team-resignation.md +++ b/posts/inside-rust/2021-11-25-in-response-to-the-moderation-team-resignation.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "In response to the moderation team resignation" -author: The undersigned ---- ++++ +layout = "post" +title = "In response to the moderation team resignation" +author = "The undersigned" ++++ As top-level team leads, project directors to the Foundation, and core team members, we are actively collaborating to establish next steps after the diff --git a/posts/inside-rust/2021-11-30-1.57.0-prerelease.md b/posts/inside-rust/2021-11-30-1.57.0-prerelease.md index b4242b342..066a3e575 100644 --- a/posts/inside-rust/2021-11-30-1.57.0-prerelease.md +++ b/posts/inside-rust/2021-11-30-1.57.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.57.0 pre-release testing" -author: Mark Rousskov -team: The Release Team ---- ++++ +layout = "post" +title = "1.57.0 pre-release testing" +author = "Mark Rousskov" +team = "The Release Team " ++++ The 1.57.0 pre-release is ready for testing. The release is scheduled for this Thursday, December 2nd. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md b/posts/inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md index f69f25534..1c297eb2d 100644 --- a/posts/inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md +++ b/posts/inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Follow-up on the moderation issue" -author: Ryan Levick and Mara Bos -team: the Rust Project ---- ++++ +layout = "post" +title = "Follow-up on the moderation issue" +author = "Ryan Levick and Mara Bos" +team = "the Rust Project " ++++ Last week, the following e-mail was sent to all members of the Rust project (including all working groups) to follow up on the moderation issue. diff --git a/posts/inside-rust/2022-01-11-1.58.0-prerelease.md b/posts/inside-rust/2022-01-11-1.58.0-prerelease.md index 04fff72be..7a5738602 100644 --- a/posts/inside-rust/2022-01-11-1.58.0-prerelease.md +++ b/posts/inside-rust/2022-01-11-1.58.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.58.0 pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.58.0 pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The 1.58.0 pre-release is ready for testing. The release is scheduled for this Thursday, January 13th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2022-01-18-jan-steering-cycle.md b/posts/inside-rust/2022-01-18-jan-steering-cycle.md index bd2de3a55..16adc3d35 100644 --- a/posts/inside-rust/2022-01-18-jan-steering-cycle.md +++ b/posts/inside-rust/2022-01-18-jan-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler January 2022 Steering Cycle -author: Felix Klock -description: "The compiler team's January 2022 steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler January 2022 Steering Cycle" +author = "Felix Klock" +description = "The compiler team's January 2022 steering cycle" +team = "The Compiler Team " ++++ On [Friday, January 14th][jan-14-zulip-archive], the Rust Compiler team had a planning meeting for the January steering cycle. diff --git a/posts/inside-rust/2022-02-03-async-in-2022.md b/posts/inside-rust/2022-02-03-async-in-2022.md index c49c53652..2b0077717 100644 --- a/posts/inside-rust/2022-02-03-async-in-2022.md +++ b/posts/inside-rust/2022-02-03-async-in-2022.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Async Rust in 2022 -author: Niko Matsakis and Tyler Mandry -description: "The async working group's goals in 2022" -team: Async Working Group ---- ++++ +layout = "post" +title = "Async Rust in 2022" +author = "Niko Matsakis and Tyler Mandry" +description = "The async working group's goals in 2022" +team = "Async Working Group " ++++ Almost a year ago, the Async Working Group[^name] [embarked on a collaborative effort][ce] to write a [shared async vision document][avd]. As we enter 2022, we wanted to give an update on the results from that process along with the progress we are making towards realizing that vision. diff --git a/posts/inside-rust/2022-02-11-CTCFT-february.md b/posts/inside-rust/2022-02-11-CTCFT-february.md index 2aed30773..e1ef08a8f 100644 --- a/posts/inside-rust/2022-02-11-CTCFT-february.md +++ b/posts/inside-rust/2022-02-11-CTCFT-february.md @@ -1,8 +1,8 @@ ---- -layout: post -title: CTCFT 2022-02-21 Agenda -author: Rust CTCFT Team ---- ++++ +layout = "post" +title = "CTCFT 2022-02-21 Agenda" +author = "Rust CTCFT Team" ++++ The next ["Cross Team Collaboration Fun Times" (CTCFT)][CTCFT] meeting will take place on Monday, 2022-02-21 at **3pm US Eastern Time** ([click to see in your diff --git a/posts/inside-rust/2022-02-17-feb-steering-cycle.md b/posts/inside-rust/2022-02-17-feb-steering-cycle.md index bec9bd2a5..51241586e 100644 --- a/posts/inside-rust/2022-02-17-feb-steering-cycle.md +++ b/posts/inside-rust/2022-02-17-feb-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler February 2022 Steering Cycle -author: Felix Klock -description: "The compiler team's February 2022 steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler February 2022 Steering Cycle" +author = "Felix Klock" +description = "The compiler team's February 2022 steering cycle" +team = "The Compiler Team " ++++ On [Friday, February 11th][feb-11-zulip-archive], the Rust Compiler team had a planning meeting for the February steering cycle. diff --git a/posts/inside-rust/2022-02-18-lang-team-feb-update.md b/posts/inside-rust/2022-02-18-lang-team-feb-update.md index 208acdceb..667f21144 100644 --- a/posts/inside-rust/2022-02-18-lang-team-feb-update.md +++ b/posts/inside-rust/2022-02-18-lang-team-feb-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team February update" -author: Sean Chen -description: "Lang team February update" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team February update" +author = "Sean Chen" +description = "Lang team February update" +team = "the lang team " ++++ Two weeks ago, the lang team held its February planning meeting ([minutes]). We hold these meetings on the first Wednesday of every month. The planning meeting is used for: diff --git a/posts/inside-rust/2022-02-22-1.59.0-prerelease.md b/posts/inside-rust/2022-02-22-1.59.0-prerelease.md index 0b53747ea..e2bc443ad 100644 --- a/posts/inside-rust/2022-02-22-1.59.0-prerelease.md +++ b/posts/inside-rust/2022-02-22-1.59.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.59.0 pre-release testing" -author: Mark Rousskov -team: The Release Team ---- ++++ +layout = "post" +title = "1.59.0 pre-release testing" +author = "Mark Rousskov" +team = "The Release Team " ++++ The 1.59.0 pre-release is ready for testing. The release is scheduled for this Thursday, February 24th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md b/posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md index 6792084a2..9b06b92f3 100644 --- a/posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md +++ b/posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler Ambitions for 2022 -author: Felix Klock, Wesley Wiser -description: "The compiler team's concrete initiatives and hopeful aspirations for this year." -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler Ambitions for 2022" +author = "Felix Klock, Wesley Wiser" +description = "The compiler team's concrete initiatives and hopeful aspirations for this year." +team = "The Compiler Team " ++++ # Rust Compiler Ambitions for 2022 diff --git a/posts/inside-rust/2022-03-09-lang-team-mar-update.md b/posts/inside-rust/2022-03-09-lang-team-mar-update.md index 20999baab..f03d30e5a 100644 --- a/posts/inside-rust/2022-03-09-lang-team-mar-update.md +++ b/posts/inside-rust/2022-03-09-lang-team-mar-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team March update" -author: Niko Matsakis -description: "Lang team March update" -team: the lang team ---- ++++ +layout = "post" +title = "Lang team March update" +author = "Niko Matsakis" +description = "Lang team March update" +team = "the lang team " ++++ Two weeks ago, the lang team held its March planning meeting ([minutes]). We hold these meetings on the first Wednesday of every month and we use them to schedule [design meetings] for the remainder of the month. diff --git a/posts/inside-rust/2022-03-11-mar-steering-cycle.md b/posts/inside-rust/2022-03-11-mar-steering-cycle.md index 4a3b0a592..707c563a0 100644 --- a/posts/inside-rust/2022-03-11-mar-steering-cycle.md +++ b/posts/inside-rust/2022-03-11-mar-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler March 2022 Steering Cycle -author: Felix Klock -description: "The compiler team's March 2022 steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler March 2022 Steering Cycle" +author = "Felix Klock" +description = "The compiler team's March 2022 steering cycle" +team = "The Compiler Team " ++++ On [Friday, March 11th][mar-11-zulip-archive], the Rust Compiler team had a planning meeting for the March steering cycle. [mar-11-zulip-archive]: https://zulip-archive.rust-lang.org/stream/238009-t-compiler/meetings/topic/.5Bplanning.20meeting.5D.202022-03-11.html diff --git a/posts/inside-rust/2022-03-16-CTCFT-march.md b/posts/inside-rust/2022-03-16-CTCFT-march.md index 7d608893b..0ee920e85 100644 --- a/posts/inside-rust/2022-03-16-CTCFT-march.md +++ b/posts/inside-rust/2022-03-16-CTCFT-march.md @@ -1,8 +1,8 @@ ---- -layout: post -title: CTCFT 2022-03-21 Agenda -author: Rust CTCFT Team ---- ++++ +layout = "post" +title = "CTCFT 2022-03-21 Agenda" +author = "Rust CTCFT Team" ++++ The next ["Cross Team Collaboration Fun Times" (CTCFT)][CTCFT] meeting will take place on Monday, 2022-03-21 at **1pm US Eastern Time** ([click to see in your diff --git a/posts/inside-rust/2022-03-31-cargo-team-changes.md b/posts/inside-rust/2022-03-31-cargo-team-changes.md index b67a59e3f..f6b64d73b 100644 --- a/posts/inside-rust/2022-03-31-cargo-team-changes.md +++ b/posts/inside-rust/2022-03-31-cargo-team-changes.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Changes at the Cargo Team" -author: Eric Huss -team: The Cargo Team ---- ++++ +layout = "post" +title = "Changes at the Cargo Team" +author = "Eric Huss" +team = "The Cargo Team " ++++ We are thrilled to publicly announce that [Weihang Lo](https://github.com/weihanglo) and [Ed Page](https://github.com/epage/) diff --git a/posts/inside-rust/2022-04-04-1.60.0-prerelease.md b/posts/inside-rust/2022-04-04-1.60.0-prerelease.md index b029a3697..cc2cf8bcb 100644 --- a/posts/inside-rust/2022-04-04-1.60.0-prerelease.md +++ b/posts/inside-rust/2022-04-04-1.60.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.60.0 pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.60.0 pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The 1.60.0 pre-release is ready for testing. The release is scheduled for this Thursday, April 7th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2022-04-04-lang-roadmap-2024.md b/posts/inside-rust/2022-04-04-lang-roadmap-2024.md index b915fe5ce..6c65a9d2a 100644 --- a/posts/inside-rust/2022-04-04-lang-roadmap-2024.md +++ b/posts/inside-rust/2022-04-04-lang-roadmap-2024.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Lang Roadmap for 2024 -author: Josh Triplett, Niko Matsakis -description: "The language team's concrete initiatives and hopeful aspirations for the Rust 2024 edition." -team: The Rust Lang Team ---- ++++ +layout = "post" +title = "Rust Lang Roadmap for 2024" +author = "Josh Triplett, Niko Matsakis" +description = "The language team's concrete initiatives and hopeful aspirations for the Rust 2024 edition." +team = "The Rust Lang Team " ++++ Note: this blog post is a snapshot of the living roadmap at . Subsequent diff --git a/posts/inside-rust/2022-04-06-lang-team-april-update.md b/posts/inside-rust/2022-04-06-lang-team-april-update.md index 11565bf63..a351183b4 100644 --- a/posts/inside-rust/2022-04-06-lang-team-april-update.md +++ b/posts/inside-rust/2022-04-06-lang-team-april-update.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Lang team April update" -author: Josh Triplett -description: "Lang team April update" -team: The Rust Lang Team ---- ++++ +layout = "post" +title = "Lang team April update" +author = "Josh Triplett" +description = "Lang team April update" +team = "The Rust Lang Team " ++++ Today, the lang team held its April planning meeting. We hold these meetings on the first Wednesday of every month, and we use them to schedule [design meetings](https://lang-team.rust-lang.org/meetings/design.html) for the remainder of the month. diff --git a/posts/inside-rust/2022-04-12-CTCFT-april.md b/posts/inside-rust/2022-04-12-CTCFT-april.md index dd23e329a..6b8525578 100644 --- a/posts/inside-rust/2022-04-12-CTCFT-april.md +++ b/posts/inside-rust/2022-04-12-CTCFT-april.md @@ -1,8 +1,8 @@ ---- -layout: post -title: CTCFT 2022-04-18 Agenda -author: Rust CTCFT Team ---- ++++ +layout = "post" +title = "CTCFT 2022-04-18 Agenda" +author = "Rust CTCFT Team" ++++ The next ["Cross Team Collaboration Fun Times" (CTCFT)][CTCFT] meeting will take place on Monday, 2022-04-18 at **9pm US Eastern Time** ([click to see in your diff --git a/posts/inside-rust/2022-04-15-apr-steering-cycle.md b/posts/inside-rust/2022-04-15-apr-steering-cycle.md index 64d0c1450..c0f9db585 100644 --- a/posts/inside-rust/2022-04-15-apr-steering-cycle.md +++ b/posts/inside-rust/2022-04-15-apr-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler April 2022 Steering Cycle -author: Felix Klock -description: "The compiler team's April 2022 steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler April 2022 Steering Cycle" +author = "Felix Klock" +description = "The compiler team's April 2022 steering cycle" +team = "The Compiler Team " ++++ On [Friday, April 8th][apr-08-zulip-archive], the Rust Compiler team had a planning meeting for the April 2022 steering cycle. [apr-08-zulip-archive]: https://zulip-archive.rust-lang.org/stream/238009-t-compiler/meetings/topic/.5Bplanning.20meeting.5D.202022-04-08.html diff --git a/posts/inside-rust/2022-04-18-libs-contributors.md b/posts/inside-rust/2022-04-18-libs-contributors.md index 92d97581f..9b847d5d9 100644 --- a/posts/inside-rust/2022-04-18-libs-contributors.md +++ b/posts/inside-rust/2022-04-18-libs-contributors.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Please welcome Thom and Chris to Library Contributors" -author: Mara Bos -description: "Please welcome Thom and Chris to Library Contributors" -team: the library team ---- ++++ +layout = "post" +title = "Please welcome Thom and Chris to Library Contributors" +author = "Mara Bos" +description = "Please welcome Thom and Chris to Library Contributors" +team = "the library team " ++++ Please welcome Thom Chiovoloni and Chris Denton to the [Library Contributors](https://www.rust-lang.org/governance/teams/library#libs-contributors) group! diff --git a/posts/inside-rust/2022-04-19-imposter-syndrome.md b/posts/inside-rust/2022-04-19-imposter-syndrome.md index 6ba9c90de..078796a00 100644 --- a/posts/inside-rust/2022-04-19-imposter-syndrome.md +++ b/posts/inside-rust/2022-04-19-imposter-syndrome.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Imposter Syndrome" -author: Jane Lusby, Project Director of Collaboration -team: Rust Foundation Project Directors ---- ++++ +layout = "post" +title = "Imposter Syndrome" +author = "Jane Lusby, Project Director of Collaboration" +team = "Rust Foundation Project Directors " ++++ *Preface: This is in response to some feedback the project directors received from the Rust Foundation staff. Some of the contributors they'd talked to said diff --git a/posts/inside-rust/2022-04-20-libs-aspirations.md b/posts/inside-rust/2022-04-20-libs-aspirations.md index 8ea212fe3..169105e0a 100644 --- a/posts/inside-rust/2022-04-20-libs-aspirations.md +++ b/posts/inside-rust/2022-04-20-libs-aspirations.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Library Team Aspirations -author: Mara Bos -description: Rust Library Team Aspirations -team: The Rust Library Team ---- ++++ +layout = "post" +title = "Rust Library Team Aspirations" +author = "Mara Bos" +description = "Rust Library Team Aspirations" +team = "The Rust Library Team " ++++ Over the past years, Rust has grown from a language used by a few dedicated users into a well-known language used by lots of highly visible projects and diff --git a/posts/inside-rust/2022-05-10-CTCFT-may.md b/posts/inside-rust/2022-05-10-CTCFT-may.md index 3323f6805..e3c0b3770 100644 --- a/posts/inside-rust/2022-05-10-CTCFT-may.md +++ b/posts/inside-rust/2022-05-10-CTCFT-may.md @@ -1,8 +1,8 @@ ---- -layout: post -title: CTCFT 2022-05-16 Agenda -author: Rust CTCFT Team ---- ++++ +layout = "post" +title = "CTCFT 2022-05-16 Agenda" +author = "Rust CTCFT Team" ++++ The next ["Cross Team Collaboration Fun Times" (CTCFT)][CTCFT] meeting will take place on Monday, 2022-05-16 at **11am US Eastern Time** ([click to see in your diff --git a/posts/inside-rust/2022-05-16-1.61.0-prerelease.md b/posts/inside-rust/2022-05-16-1.61.0-prerelease.md index 78f93800b..728eead15 100644 --- a/posts/inside-rust/2022-05-16-1.61.0-prerelease.md +++ b/posts/inside-rust/2022-05-16-1.61.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.61.0 pre-release testing" -author: Mark Rousskov -team: The Release Team ---- ++++ +layout = "post" +title = "1.61.0 pre-release testing" +author = "Mark Rousskov" +team = "The Release Team " ++++ The 1.61.0 pre-release is ready for testing. The release is scheduled for this Thursday, May 19th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2022-05-19-governance-update.md b/posts/inside-rust/2022-05-19-governance-update.md index c7ca06ad8..3b54975d4 100644 --- a/posts/inside-rust/2022-05-19-governance-update.md +++ b/posts/inside-rust/2022-05-19-governance-update.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Governance Update" -author: Ryan Levick and Mara Bos ---- ++++ +layout = "post" +title = "Governance Update" +author = "Ryan Levick and Mara Bos" ++++ Last month, the core team, all the leads of top-level teams, the moderators, and the project representatives on the Rust Foundation board jointly sent out an update to all Rust project members on investigations happening into improvements to the governance of the Rust project. @@ -94,4 +94,4 @@ As is noted in the summary, the next steps are to take the findings we have so f > I'd like to take this opportunity to thank you for reading this very long email. Once again, if you'd like to participate or give feedback in any form, please do not hesitate to reach out. > > Cheers,\ -> Ryan \ No newline at end of file +> Ryan diff --git a/posts/inside-rust/2022-05-26-Concluding-events-mods.md b/posts/inside-rust/2022-05-26-Concluding-events-mods.md index 39165dcbc..ef802d5e4 100644 --- a/posts/inside-rust/2022-05-26-Concluding-events-mods.md +++ b/posts/inside-rust/2022-05-26-Concluding-events-mods.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Concluding the events of last November" -author: Khionu Sybiern -team: The Moderation Team ---- ++++ +layout = "post" +title = "Concluding the events of last November" +author = "Khionu Sybiern" +team = "The Moderation Team " ++++ [With the moderators' resignation in November](https://blog.rust-lang.org/inside-rust/2021/11/25/in-response-to-the-moderation-team-resignation.html), we (Josh Gould and Khionu Sybiern) had the mantle of the Moderation Team offered to us, and we caught up to speed on what led up to this conflict. Their resignation became a catalyst, and we commited with the rest of the project leadership to do our best to solve the issues present and going forward. diff --git a/posts/inside-rust/2022-06-03-jun-steering-cycle.md b/posts/inside-rust/2022-06-03-jun-steering-cycle.md index 209d634d2..9336e7716 100644 --- a/posts/inside-rust/2022-06-03-jun-steering-cycle.md +++ b/posts/inside-rust/2022-06-03-jun-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler June 2022 Steering Cycle -author: Felix Klock -description: "The compiler team's June 2022 steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler June 2022 Steering Cycle" +author = "Felix Klock" +description = "The compiler team's June 2022 steering cycle" +team = "The Compiler Team " ++++ On [Friday, June 3rd][jun-03-zulip-archive], the Rust Compiler team had a planning meeting for the June 2022 steering cycle. [jun-03-zulip-archive]: https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bplanning.20meeting.5D.202022-06-03/near/284883023 diff --git a/posts/inside-rust/2022-06-21-survey-2021-report.md b/posts/inside-rust/2022-06-21-survey-2021-report.md index 302b1faf7..468d24feb 100644 --- a/posts/inside-rust/2022-06-21-survey-2021-report.md +++ b/posts/inside-rust/2022-06-21-survey-2021-report.md @@ -1,10 +1,10 @@ ---- -layout: post -title: 2021 Annual Survey Report -author: Nick Cameron -description: "Download a data report on the 2021 annual community survey." -team: The Survey Working Group ---- ++++ +layout = "post" +title = "2021 Annual Survey Report" +author = "Nick Cameron" +description = "Download a data report on the 2021 annual community survey." +team = "The Survey Working Group " ++++ As usual, we conducted an annual community survey in 2021. We previously shared some some highlights and charts in a [blog post](https://blog.rust-lang.org/2022/02/15/Rust-Survey-2021.html). This year we would also like to make the complete (-ish) dataset available. We have compiled a report which contains data and charts for nearly diff --git a/posts/inside-rust/2022-06-28-1.62.0-prerelease.md b/posts/inside-rust/2022-06-28-1.62.0-prerelease.md index c265ae6ba..8381ea933 100644 --- a/posts/inside-rust/2022-06-28-1.62.0-prerelease.md +++ b/posts/inside-rust/2022-06-28-1.62.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.62.0 pre-release testing" -author: Pietro Albini -team: The Release Team ---- ++++ +layout = "post" +title = "1.62.0 pre-release testing" +author = "Pietro Albini" +team = "The Release Team " ++++ The 1.62.0 pre-release is ready for testing. The release is scheduled for this Thursday, June 30th. [Release notes can be found here.][relnotes] diff --git a/posts/inside-rust/2022-07-13-clippy-team-changes.md b/posts/inside-rust/2022-07-13-clippy-team-changes.md index cfce73375..76aa0c871 100644 --- a/posts/inside-rust/2022-07-13-clippy-team-changes.md +++ b/posts/inside-rust/2022-07-13-clippy-team-changes.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Changes at the Clippy Team" -author: Philipp Krones -team: The Clippy Team ---- ++++ +layout = "post" +title = "Changes at the Clippy Team" +author = "Philipp Krones" +team = "The Clippy Team " ++++ ## New Members diff --git a/posts/inside-rust/2022-07-16-1.62.1-prerelease.md b/posts/inside-rust/2022-07-16-1.62.1-prerelease.md index 1d247c1c5..0ea854090 100644 --- a/posts/inside-rust/2022-07-16-1.62.1-prerelease.md +++ b/posts/inside-rust/2022-07-16-1.62.1-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.62.1 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.62.1 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.62.1 pre-release is ready for testing. The release is scheduled for July 19. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1621-2022-07-19 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2022-07-27-keyword-generics.md b/posts/inside-rust/2022-07-27-keyword-generics.md index b25e09941..92a002f44 100644 --- a/posts/inside-rust/2022-07-27-keyword-generics.md +++ b/posts/inside-rust/2022-07-27-keyword-generics.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing the Keyword Generics Initiative" -author: Yoshua Wuyts -team: The Keyword Generics Initiative ---- ++++ +layout = "post" +title = "Announcing the Keyword Generics Initiative" +author = "Yoshua Wuyts" +team = "The Keyword Generics Initiative " ++++ We ([Oli], [Niko], and [Yosh]) are excited to announce the start of the [Keyword Generics Initiative][kwi], a new initiative [^initiative] under the purview of diff --git a/posts/inside-rust/2022-08-08-compiler-team-2022-midyear-report.md b/posts/inside-rust/2022-08-08-compiler-team-2022-midyear-report.md index a4aa9c8c7..ba1fee0e4 100644 --- a/posts/inside-rust/2022-08-08-compiler-team-2022-midyear-report.md +++ b/posts/inside-rust/2022-08-08-compiler-team-2022-midyear-report.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler Midyear Report for 2022 -author: Felix Klock, Wesley Wiser -description: "The compiler team's midyear report on its ambitions for 2022." -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler Midyear Report for 2022" +author = "Felix Klock, Wesley Wiser" +description = "The compiler team's midyear report on its ambitions for 2022." +team = "The Compiler Team " ++++ # Rust Compiler Midyear Report for 2022 diff --git a/posts/inside-rust/2022-08-09-1.63.0-prerelease.md b/posts/inside-rust/2022-08-09-1.63.0-prerelease.md index 56cd7c2e6..f2e60eadb 100644 --- a/posts/inside-rust/2022-08-09-1.63.0-prerelease.md +++ b/posts/inside-rust/2022-08-09-1.63.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.63.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.63.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.63.0 pre-release is ready for testing. The release is scheduled for August 11. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1630-2022-08-11 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2022-08-10-libs-contributors.md b/posts/inside-rust/2022-08-10-libs-contributors.md index 5e3037c86..4a26a1273 100644 --- a/posts/inside-rust/2022-08-10-libs-contributors.md +++ b/posts/inside-rust/2022-08-10-libs-contributors.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Please welcome Dan to Library Contributors" -author: Mara Bos -team: the library team ---- ++++ +layout = "post" +title = "Please welcome Dan to Library Contributors" +author = "Mara Bos" +team = "the library team " ++++ Please welcome [Dan Gohman](https://github.com/sunfishcode) to the [Library Contributors](https://www.rust-lang.org/governance/teams/library#libs-contributors) group! diff --git a/posts/inside-rust/2022-08-16-diagnostic-effort.md b/posts/inside-rust/2022-08-16-diagnostic-effort.md index 69a0cf8e0..d59f5f19e 100644 --- a/posts/inside-rust/2022-08-16-diagnostic-effort.md +++ b/posts/inside-rust/2022-08-16-diagnostic-effort.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Contribute to the diagnostic translation effort!" -author: David Wood -team: the compiler team ---- ++++ +layout = "post" +title = "Contribute to the diagnostic translation effort!" +author = "David Wood" +team = "the compiler team " ++++ The Rust Diagnostics working group is leading an effort to add support for internationalization of error messages in the compiler, allowing the compiler diff --git a/posts/inside-rust/2022-09-19-1.64.0-prerelease.md b/posts/inside-rust/2022-09-19-1.64.0-prerelease.md index 70a8d86f2..afa84b9bf 100644 --- a/posts/inside-rust/2022-09-19-1.64.0-prerelease.md +++ b/posts/inside-rust/2022-09-19-1.64.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.64.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.64.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.64.0 pre-release is ready for testing. The release is scheduled for September 22. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1640-2022-09-22 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2022-09-23-compiler-team-sep-oct-steering-cycle.md b/posts/inside-rust/2022-09-23-compiler-team-sep-oct-steering-cycle.md index b693afb19..e446472c9 100644 --- a/posts/inside-rust/2022-09-23-compiler-team-sep-oct-steering-cycle.md +++ b/posts/inside-rust/2022-09-23-compiler-team-sep-oct-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler Early October 2022 Steering Cycle -author: Felix Klock -description: "The compiler team's early October 2022 steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler Early October 2022 Steering Cycle" +author = "Felix Klock" +description = "The compiler team's early October 2022 steering cycle" +team = "The Compiler Team " ++++ On [Friday, September 23rd][sep-23-zulip-archive], the Rust Compiler team had a planning meeting for the September/October 2022 steering cycle. diff --git a/posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md b/posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md index 25acdd506..6b6318371 100644 --- a/posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md +++ b/posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing the Rust Style Team" -author: Josh Triplett -team: The Rust Style Team ---- ++++ +layout = "post" +title = "Announcing the Rust Style Team" +author = "Josh Triplett" +team = "The Rust Style Team " ++++ Rust has a standardized style, and an implementation of that style in the `rustfmt` tool. The standardized style helps Rust developers feel comfortable diff --git a/posts/inside-rust/2022-10-06-governance-update.md b/posts/inside-rust/2022-10-06-governance-update.md index fd1c69f04..c1e609718 100644 --- a/posts/inside-rust/2022-10-06-governance-update.md +++ b/posts/inside-rust/2022-10-06-governance-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Update" -author: Ryan Levick -team: leadership chat ---- ++++ +layout = "post" +title = "Governance Update" +author = "Ryan Levick" +team = "leadership chat " ++++ As part of ongoing work on governance, Rust leadership jointly established a group, "leadership chat", consisting of the Core team, leads of all teams on the [governance page], the Moderation team, and the project directors on the Rust Foundation board. This group has been serving as an interim governing body while efforts to establish the next evolution of Rust project-wide governance are underway. diff --git a/posts/inside-rust/2022-10-31-1.65.0-prerelease.md b/posts/inside-rust/2022-10-31-1.65.0-prerelease.md index 6745f52d0..e6cbbbb68 100644 --- a/posts/inside-rust/2022-10-31-1.65.0-prerelease.md +++ b/posts/inside-rust/2022-10-31-1.65.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.65.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.65.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.65.0 pre-release is ready for testing. The release is scheduled for November 03. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1650-2022-11-03 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md b/posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md index 42a2ecd3a..2b1f72566 100644 --- a/posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md +++ b/posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Async fn in trait MVP comes to nightly" -author: Tyler Mandry -team: The Rust Async Working Group ---- ++++ +layout = "post" +title = "Async fn in trait MVP comes to nightly" +author = "Tyler Mandry" +team = "The Rust Async Working Group " ++++ The async working group is excited to announce that `async fn` can now be used in traits in the nightly compiler. You can now write code like this: diff --git a/posts/inside-rust/2022-11-29-libs-member.md b/posts/inside-rust/2022-11-29-libs-member.md index a6586ddc1..ceeba3fa7 100644 --- a/posts/inside-rust/2022-11-29-libs-member.md +++ b/posts/inside-rust/2022-11-29-libs-member.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Please welcome The 8472 to the Library team" -author: Mara Bos -team: the library team ---- ++++ +layout = "post" +title = "Please welcome The 8472 to the Library team" +author = "Mara Bos" +team = "the library team " ++++ We're very excited to announce that [The 8472](https://github.com/the8472) has joined [the Library team](https://www.rust-lang.org/governance/teams/library)! diff --git a/posts/inside-rust/2022-12-12-1.66.0-prerelease.md b/posts/inside-rust/2022-12-12-1.66.0-prerelease.md index 120b728e0..93d83bef8 100644 --- a/posts/inside-rust/2022-12-12-1.66.0-prerelease.md +++ b/posts/inside-rust/2022-12-12-1.66.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.66.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.66.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.66.0 pre-release is ready for testing. The release is scheduled for December 15. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1660-2022-12-15 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-01-24-content-delivery-networks.md b/posts/inside-rust/2023-01-24-content-delivery-networks.md index 101d048f9..e75df00aa 100644 --- a/posts/inside-rust/2023-01-24-content-delivery-networks.md +++ b/posts/inside-rust/2023-01-24-content-delivery-networks.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Diversifying our Content Delivery Networks -author: Jan David Nose -team: The Rust Infrastructure Team ---- ++++ +layout = "post" +title = "Diversifying our Content Delivery Networks" +author = "Jan David Nose" +team = "The Rust Infrastructure Team " ++++ Over the past few weeks, the [Infrastructure Team] has been working on setting up a second [Content Delivery Network] (CDN) for releases and crates. diff --git a/posts/inside-rust/2023-01-25-1.67.0-prerelease.md b/posts/inside-rust/2023-01-25-1.67.0-prerelease.md index 8a6b496db..73f538ba6 100644 --- a/posts/inside-rust/2023-01-25-1.67.0-prerelease.md +++ b/posts/inside-rust/2023-01-25-1.67.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.67.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.67.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.67.0 pre-release is ready for testing. The release is scheduled for January 26. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1670-2023-01-26 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-01-30-cargo-sparse-protocol.md b/posts/inside-rust/2023-01-30-cargo-sparse-protocol.md index 9832fd5a5..c62e57a29 100644 --- a/posts/inside-rust/2023-01-30-cargo-sparse-protocol.md +++ b/posts/inside-rust/2023-01-30-cargo-sparse-protocol.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Help test Cargo's new index protocol -author: Eric Huss -team: The Cargo Team ---- ++++ +layout = "post" +title = "Help test Cargo's new index protocol" +author = "Eric Huss" +team = "The Cargo Team " ++++ Cargo's new index protocol will be available starting in Rust 1.68, which will be released on 2023-03-09. This new "sparse" protocol should usually provide a significant performance improvement when accessing [crates.io]. diff --git a/posts/inside-rust/2023-02-07-1.67.1-prerelease.md b/posts/inside-rust/2023-02-07-1.67.1-prerelease.md index 0a998e0c5..41c657516 100644 --- a/posts/inside-rust/2023-02-07-1.67.1-prerelease.md +++ b/posts/inside-rust/2023-02-07-1.67.1-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.67.1 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.67.1 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.67.1 pre-release is ready for testing. The release is scheduled for February 09. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1671-2023-02-09 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-02-08-dns-outage-portmortem.md b/posts/inside-rust/2023-02-08-dns-outage-portmortem.md index b74e0a82c..9487d874b 100644 --- a/posts/inside-rust/2023-02-08-dns-outage-portmortem.md +++ b/posts/inside-rust/2023-02-08-dns-outage-portmortem.md @@ -1,9 +1,9 @@ ---- -layout: post -title: DNS Outage on 2023-01-25 -author: Jan David Nose -team: The Rust Infrastructure Team ---- ++++ +layout = "post" +title = "DNS Outage on 2023-01-25" +author = "Jan David Nose" +team = "The Rust Infrastructure Team " ++++ On Wednesday, 2023-01-25 at 09:15 UTC, we deployed changes to the production infrastructure for crates.io. During the deployment, the DNS record for diff --git a/posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md b/posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md index 7eab51ba8..9cf24a43c 100644 --- a/posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md +++ b/posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md @@ -1,10 +1,10 @@ ---- -layout: post -title: Rust Compiler February 2023 Steering Cycle -author: Felix Klock -description: "The compiler team's Feburary 2023 steering cycle" -team: The Compiler Team ---- ++++ +layout = "post" +title = "Rust Compiler February 2023 Steering Cycle" +author = "Felix Klock" +description = "The compiler team's Feburary 2023 steering cycle" +team = "The Compiler Team " ++++ On [Friday, February 10th][feb-10-zulip-archive], the Rust Compiler team had a planning meeting for the February 2023 steering cycle. diff --git a/posts/inside-rust/2023-02-14-lang-advisors.md b/posts/inside-rust/2023-02-14-lang-advisors.md index 5654c22ad..5114c550a 100644 --- a/posts/inside-rust/2023-02-14-lang-advisors.md +++ b/posts/inside-rust/2023-02-14-lang-advisors.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Language team advisors" -author: Josh Triplett, Niko Matsakis -team: The Rust Lang Team ---- ++++ +layout = "post" +title = "Language team advisors" +author = "Josh Triplett, Niko Matsakis" +team = "The Rust Lang Team " ++++ [RFC #3327](https://github.com/rust-lang/rfcs/pull/3327) created a new lang-team subteam, the lang team advisors. The advisors team recognizes people who regularly aid the Rust community and the lang team in particular in language design decisions. We already value their input highly and treat their concerns as blocking on features or proposals. The advisors team gives us a way to acknowledge them officially. diff --git a/posts/inside-rust/2023-02-14-lang-team-membership-update.md b/posts/inside-rust/2023-02-14-lang-team-membership-update.md index 1a3da55ee..d0f7763f1 100644 --- a/posts/inside-rust/2023-02-14-lang-team-membership-update.md +++ b/posts/inside-rust/2023-02-14-lang-team-membership-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Welcome Tyler Mandry to the Rust language team!" -author: Josh Triplett, Niko Matsakis -team: The Rust Lang Team ---- ++++ +layout = "post" +title = "Welcome Tyler Mandry to the Rust language team!" +author = "Josh Triplett, Niko Matsakis" +team = "The Rust Lang Team " ++++ We are happy to announce that [Tyler Mandry][tmandry] is joining the Rust language design team as a full member! diff --git a/posts/inside-rust/2023-02-22-governance-reform-rfc.md b/posts/inside-rust/2023-02-22-governance-reform-rfc.md index 5b8ebe769..2b14f8471 100644 --- a/posts/inside-rust/2023-02-22-governance-reform-rfc.md +++ b/posts/inside-rust/2023-02-22-governance-reform-rfc.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Governance Reform RFC Announcement" -author: Jane Losare-Lusby and the Governance Reform WG -team: leadership chat ---- ++++ +layout = "post" +title = "Governance Reform RFC Announcement" +author = "Jane Losare-Lusby and the Governance Reform WG" +team = "leadership chat " ++++ As part of [ongoing work on governance](https://blog.rust-lang.org/inside-rust/2022/10/06/governance-update.html), the "leadership chat" established a smaller "governance reform" working group to create an RFC to establish new project wide governance. This RFC is now live and can found on the RFCs repo: diff --git a/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md b/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md index b1a7bb6cf..020fe953a 100644 --- a/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md +++ b/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Keyword Generics Progress Report: February 2023" -author: Yoshua Wuyts -team: The Keyword Generics Initiative ---- ++++ +layout = "post" +title = "Keyword Generics Progress Report: February 2023" +author = "Yoshua Wuyts" +team = "The Keyword Generics Initiative " ++++ ## Introduction diff --git a/posts/inside-rust/2023-03-06-1.68.0-prerelease.md b/posts/inside-rust/2023-03-06-1.68.0-prerelease.md index e9277da9e..fd1ac594c 100644 --- a/posts/inside-rust/2023-03-06-1.68.0-prerelease.md +++ b/posts/inside-rust/2023-03-06-1.68.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.68.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.68.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.68.0 pre-release is ready for testing. The release is scheduled for March 09. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1680-2023-03-09 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-03-20-1.68.1-prerelease.md b/posts/inside-rust/2023-03-20-1.68.1-prerelease.md index b9220643c..8aa3cd3a4 100644 --- a/posts/inside-rust/2023-03-20-1.68.1-prerelease.md +++ b/posts/inside-rust/2023-03-20-1.68.1-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.68.1 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.68.1 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.68.1 pre-release is ready for testing. The release is scheduled for March 23. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1681-2023-03-23 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-03-27-1.68.2-prerelease.md b/posts/inside-rust/2023-03-27-1.68.2-prerelease.md index 4b03bfcad..89de4ecc1 100644 --- a/posts/inside-rust/2023-03-27-1.68.2-prerelease.md +++ b/posts/inside-rust/2023-03-27-1.68.2-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.68.2 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.68.2 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.68.2 pre-release is ready for testing. The release is scheduled for March 28. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1682-2023-03-28 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-04-06-cargo-new-members.md b/posts/inside-rust/2023-04-06-cargo-new-members.md index 63d1332fb..499ca778c 100644 --- a/posts/inside-rust/2023-04-06-cargo-new-members.md +++ b/posts/inside-rust/2023-04-06-cargo-new-members.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Welcome Arlo and Scott to the Cargo Team" -author: Eric Huss -team: The Cargo Team ---- ++++ +layout = "post" +title = "Welcome Arlo and Scott to the Cargo Team" +author = "Eric Huss" +team = "The Cargo Team " ++++ We are excited to welcome [Arlo Siemsen](https://github.com/arlosi) and [Scott Schafer](https://github.com/Muscraft) as new members to the Cargo Team! diff --git a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md index c5c043b23..85708a4bb 100644 --- a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md +++ b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "A note on the Trademark Policy Draft" -author: Ryan Levick, Jane Losare-Lusby, Tyler Mandry, Mark Rousskov, Josh Stone, and Josh Triplett ---- ++++ +layout = "post" +title = "A note on the Trademark Policy Draft" +author = "Ryan Levick, Jane Losare-Lusby, Tyler Mandry, Mark Rousskov, Josh Stone, and Josh Triplett" ++++ # A note on the Trademark Policy Draft diff --git a/posts/inside-rust/2023-04-17-1.69.0-prerelease.md b/posts/inside-rust/2023-04-17-1.69.0-prerelease.md index 84f1ac158..dd5db8150 100644 --- a/posts/inside-rust/2023-04-17-1.69.0-prerelease.md +++ b/posts/inside-rust/2023-04-17-1.69.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.69.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.69.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.69.0 pre-release is ready for testing. The release is scheduled for April 20. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1690-2023-04-20 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-05-01-cargo-postmortem.md b/posts/inside-rust/2023-05-01-cargo-postmortem.md index b84e4b235..6a29813d4 100644 --- a/posts/inside-rust/2023-05-01-cargo-postmortem.md +++ b/posts/inside-rust/2023-05-01-cargo-postmortem.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Postmortem Analysis in Cargo -author: Jon Gjengset and Weihang Lo -team: The Cargo Team ---- ++++ +layout = "post" +title = "Postmortem Analysis in Cargo" +author = "Jon Gjengset and Weihang Lo" +team = "The Cargo Team " ++++ At 01:52 UTC, 2022-10-28, [rust-lang/cargo#11183] was merged into the Cargo master branch. It introduced a bug that caused Cargo to fail to build packages that use a particular, but very common, dependency setup. The change nearly made its way into the next nightly release. If it had, it would have rendered any of the 30k crates with `serde_derive` as a dependency (one of the most popular crate on crates.io) unbuildable for anyone using the resulting nightly release. diff --git a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md index 0f11837db..16e5b96d9 100644 --- a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Stabilizing async fn in traits in 2023" -author: Niko Matsakis and Tyler Mandry -team: The Rust Async Working Group ---- ++++ +layout = "post" +title = "Stabilizing async fn in traits in 2023" +author = "Niko Matsakis and Tyler Mandry" +team = "The Rust Async Working Group " ++++ The async working group's headline goal for 2023 is to stabilize a "minimum viable product" (MVP) version of async functions in traits. We are currently targeting Rust 1.74 for stabilization. This post lays out the features we plan to ship and the status of each one. diff --git a/posts/inside-rust/2023-05-09-api-token-scopes.md b/posts/inside-rust/2023-05-09-api-token-scopes.md index d4739564c..f04a10723 100644 --- a/posts/inside-rust/2023-05-09-api-token-scopes.md +++ b/posts/inside-rust/2023-05-09-api-token-scopes.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "API token scopes" -author: Tobias Bieniek -team: the crates.io team ---- ++++ +layout = "post" +title = "API token scopes" +author = "Tobias Bieniek" +team = "the crates.io team " ++++ Roughly three years ago [Pietro Albini](https://github.com/pietroalbini) opened an RFC called ["crates.io token scopes"](https://github.com/rust-lang/rfcs/pull/2947). This RFC described an improvement to the existing API tokens, that everyone is using to publish crates to the [crates.io](https://crates.io/) package registry. The proposal was to make it possible to restrict API tokens to 1) certain operations and 2) certain crates. diff --git a/posts/inside-rust/2023-05-29-1.70.0-prerelease.md b/posts/inside-rust/2023-05-29-1.70.0-prerelease.md index 2f5de855f..0b3662f67 100644 --- a/posts/inside-rust/2023-05-29-1.70.0-prerelease.md +++ b/posts/inside-rust/2023-05-29-1.70.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.70.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.70.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.70.0 pre-release is ready for testing. The release is scheduled for June 1. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1700-2023-06-01 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-07-10-1.71.0-prerelease.md b/posts/inside-rust/2023-07-10-1.71.0-prerelease.md index 2ac38b498..2ec0c1a00 100644 --- a/posts/inside-rust/2023-07-10-1.71.0-prerelease.md +++ b/posts/inside-rust/2023-07-10-1.71.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.71.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.71.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.71.0 pre-release is ready for testing. The release is scheduled for July 13. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1710-2023-07-13 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md b/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md index 96410da30..2b7607fd7 100644 --- a/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rustc Trait System Refactor Initiative Update" -author: lcnr -team: The Rustc Trait System Refactor Initiative ---- ++++ +layout = "post" +title = "Rustc Trait System Refactor Initiative Update" +author = "lcnr" +team = "The Rustc Trait System Refactor Initiative " ++++ As announced in the [Types Team announcement post](https://blog.rust-lang.org/2023/01/20/types-announcement.html) at the start of this year, the Types Team has started to reimplement the trait solver of rustc. This refactor is similar to [Chalk](https://github.com/rust-lang/chalk/), but directly integrated into the existing codebase using the experience gathered over the last few years. Unlike Chalk, the new trait solver has the sole goal of replacing the existing implementation. We are separately working on formalizing the type system in [a-mir-formality](https://github.com/rust-lang/a-mir-formality). It has now been half a year since that announcement which matches the first step of [our roadmap][roadmap]. @@ -46,4 +46,4 @@ How and when we make such inference jumps is quite closely tied to the old trait Another major hurdle will be error diagnostics. We currently rely on many internal details of the old trait solver implementation to emit actionable and useful errors to the user. These diagnostics have been incrementally improved by relying and working around these internal details. We cannot simply reuse them with the new trait solver implementation. Our goal there is to instead optionally emit "proof trees", an in-memory representation of how trait solving occurred. We intend provide an simplified API in top of these proof trees which will then be used for diagnostics. -[roadmap]: https://blog.rust-lang.org/2023/01/20/types-announcement.html#roadmap \ No newline at end of file +[roadmap]: https://blog.rust-lang.org/2023/01/20/types-announcement.html#roadmap diff --git a/posts/inside-rust/2023-07-21-crates-io-postmortem.md b/posts/inside-rust/2023-07-21-crates-io-postmortem.md index 7a4ca2995..95a885bd6 100644 --- a/posts/inside-rust/2023-07-21-crates-io-postmortem.md +++ b/posts/inside-rust/2023-07-21-crates-io-postmortem.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "crates.io Postmortem: Broken Crate Downloads" -author: Tobias Bieniek -team: the crates.io team ---- ++++ +layout = "post" +title = "crates.io Postmortem: Broken Crate Downloads" +author = "Tobias Bieniek" +team = "the crates.io team " ++++ (based on https://www.atlassian.com/incident-management/postmortem/templates) diff --git a/posts/inside-rust/2023-07-25-leadership-council-update.md b/posts/inside-rust/2023-07-25-leadership-council-update.md index 4174aabca..0acbae43e 100644 --- a/posts/inside-rust/2023-07-25-leadership-council-update.md +++ b/posts/inside-rust/2023-07-25-leadership-council-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "July 2023 Leadership Council Update" -author: Leadership Council -team: Leadership Council ---- ++++ +layout = "post" +title = "July 2023 Leadership Council Update" +author = "Leadership Council" +team = "Leadership Council " ++++ Hello again from the Rust Leadership Council. In our [first blog post][first post], we laid out several immediate goals for the council and promised to report back on their progress. It has been about a month since our first update so we wanted to share how it's going and what we're working on now. diff --git a/posts/inside-rust/2023-08-01-1.71.1-prerelease.md b/posts/inside-rust/2023-08-01-1.71.1-prerelease.md index b8656d56b..1fd8f040e 100644 --- a/posts/inside-rust/2023-08-01-1.71.1-prerelease.md +++ b/posts/inside-rust/2023-08-01-1.71.1-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.71.1 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.71.1 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.71.1 pre-release is ready for testing. The release is scheduled for August 3. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1711-2023-08-03 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-08-02-rotating-compiler-leads.md b/posts/inside-rust/2023-08-02-rotating-compiler-leads.md index eb1be85ed..4e75bfcc9 100644 --- a/posts/inside-rust/2023-08-02-rotating-compiler-leads.md +++ b/posts/inside-rust/2023-08-02-rotating-compiler-leads.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rotating Rust compiler team leadership" -author: Wesley Wiser -team: the compiler team ---- ++++ +layout = "post" +title = "Rotating Rust compiler team leadership" +author = "Wesley Wiser" +team = "the compiler team " ++++ As initiated in [late 2020] and ratified by [RFC 3262], the Rust compiler team uses a rotating system of co-leads. After two and a half years, we've decided its time to rotate the leadership again! diff --git a/posts/inside-rust/2023-08-21-1.72.0-prerelease.md b/posts/inside-rust/2023-08-21-1.72.0-prerelease.md index 60cadf25d..acd3ff85f 100644 --- a/posts/inside-rust/2023-08-21-1.72.0-prerelease.md +++ b/posts/inside-rust/2023-08-21-1.72.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.72.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.72.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.72.0 pre-release is ready for testing. The release is scheduled for August 24. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1720-2023-08-24 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-08-24-cargo-config-merging.md b/posts/inside-rust/2023-08-24-cargo-config-merging.md index 341145e6d..292355e4a 100644 --- a/posts/inside-rust/2023-08-24-cargo-config-merging.md +++ b/posts/inside-rust/2023-08-24-cargo-config-merging.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Cargo changes how arrays in config are merged" -author: Arlo Siemsen -team: the Cargo team ---- ++++ +layout = "post" +title = "Cargo changes how arrays in config are merged" +author = "Arlo Siemsen" +team = "the Cargo team " ++++ Cargo will be changing the order of merged configuration arrays, and we are looking for people to help test this change and provide feedback. @@ -75,4 +75,4 @@ This was not the intended behavior, since config merging should always start wit [cargo#12515]: https://github.com/rust-lang/cargo/pull/12515 [configuration]: https://doc.rust-lang.org/cargo/reference/config.html#hierarchical-structure -[issue]: https://github.com/rust-lang/cargo/issues/new/choose \ No newline at end of file +[issue]: https://github.com/rust-lang/cargo/issues/new/choose diff --git a/posts/inside-rust/2023-08-25-leadership-initiatives.md b/posts/inside-rust/2023-08-25-leadership-initiatives.md index 929283a74..9098a3dde 100644 --- a/posts/inside-rust/2023-08-25-leadership-initiatives.md +++ b/posts/inside-rust/2023-08-25-leadership-initiatives.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Seeking help for initial Leadership Council initiatives" -author: Mark Rousskov -team: the leadership council ---- ++++ +layout = "post" +title = "Seeking help for initial Leadership Council initiatives" +author = "Mark Rousskov" +team = "the leadership council " ++++ Having not heard any significant disagreement with the first set of [proposed priorities], we are moving ahead with forming subgroups that will work towards defining and diff --git a/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md b/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md index fc8f0dd34..8855d948b 100644 --- a/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md +++ b/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Leadership Council Membership Changes" -author: Carol Nichols -team: the leadership council ---- ++++ +layout = "post" +title = "Leadership Council Membership Changes" +author = "Carol Nichols" +team = "the leadership council " ++++ As of today, Khionu Sybiern will no longer be the representative of the Moderation team on the Leadership Council, and she is also stepping down from the Moderation Team entirely, for personal diff --git a/posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md b/posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md index 082b7fafd..b5e465403 100644 --- a/posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md +++ b/posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "crates.io Postmortem: User Uploaded Malware" -author: Adam Harvey -team: the crates.io team ---- ++++ +layout = "post" +title = "crates.io Postmortem: User Uploaded Malware" +author = "Adam Harvey" +team = "the crates.io team " ++++ ## Summary diff --git a/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md b/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md index 5187cb4e0..2815f465e 100644 --- a/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md +++ b/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md @@ -1,10 +1,10 @@ ---- -layout: post -title: "Keeping Rust projects secure with cargo-audit 0.18: performance, compatibility and security improvements" -author: Sergey "Shnatsel" Davidoff -description: "A look at the new features in cargo-audit 0.18 for ensuring dependencies are free of known vulnerabilities" -team: the Secure Code WG ---- ++++ +layout = "post" +title = "Keeping Rust projects secure with cargo-audit 0.18: performance, compatibility and security improvements" +author = """Sergey "Shnatsel" Davidoff""" +description = "A look at the new features in cargo-audit 0.18 for ensuring dependencies are free of known vulnerabilities" +team = "the Secure Code WG " ++++ [`cargo audit`](https://crates.io/crates/cargo-audit) checks your project's dependencies for known security vulnerabilites. diff --git a/posts/inside-rust/2023-09-08-infra-team-leadership-change.md b/posts/inside-rust/2023-09-08-infra-team-leadership-change.md index 51aaf44e1..3e2bcc5f6 100644 --- a/posts/inside-rust/2023-09-08-infra-team-leadership-change.md +++ b/posts/inside-rust/2023-09-08-infra-team-leadership-change.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Leadership change in the Rust Infrastructure Team" -author: Pietro Albini -team: the infrastructure team ---- ++++ +layout = "post" +title = "Leadership change in the Rust Infrastructure Team" +author = "Pietro Albini" +team = "the infrastructure team " ++++ After almost four years leading the Rust Infrastructure Team, in late July I [expressed my intent to step down as lead of the team][resign] to focus back on diff --git a/posts/inside-rust/2023-09-14-1.72.1-prerelease.md b/posts/inside-rust/2023-09-14-1.72.1-prerelease.md index b9fbeff3e..fff48821a 100644 --- a/posts/inside-rust/2023-09-14-1.72.1-prerelease.md +++ b/posts/inside-rust/2023-09-14-1.72.1-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.72.1 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.72.1 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.72.1 pre-release is ready for testing. The release is scheduled for September 19. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1721-2023-09-19 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index 73340eb52..87d2fe6ef 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing the Project Director Nominees" -author: Leadership Council -team: Leadership Council ---- ++++ +layout = "post" +title = "Announcing the Project Director Nominees" +author = "Leadership Council" +team = "Leadership Council " ++++ # Announcing the Project Director Nominees diff --git a/posts/inside-rust/2023-10-03-1.73.0-prerelease.md b/posts/inside-rust/2023-10-03-1.73.0-prerelease.md index 876fc25c4..787612929 100644 --- a/posts/inside-rust/2023-10-03-1.73.0-prerelease.md +++ b/posts/inside-rust/2023-10-03-1.73.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.73.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.73.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.73.0 pre-release is ready for testing. The release is scheduled for October 5. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1730-2023-10-05 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-10-06-polonius-update.md b/posts/inside-rust/2023-10-06-polonius-update.md index c1c62231e..c1d93e70a 100644 --- a/posts/inside-rust/2023-10-06-polonius-update.md +++ b/posts/inside-rust/2023-10-06-polonius-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Polonius update" -author: Rémy Rakic and Niko Matsakis -team: The Polonius Working Group ---- ++++ +layout = "post" +title = "Polonius update" +author = "Rémy Rakic and Niko Matsakis" +team = "The Polonius Working Group " ++++ This post lays out a roadmap to try to get Polonius on stable by Rust 2024. It identifies some high-level milestones and summarizes the key goals, as well as the recent progress. @@ -153,4 +153,4 @@ Around this time, librarification efforts can also be rebooted, to turn the in-t ## Conclusion -We are very excited to see the plan for Polonius coming into focus. At the moment, as we are still doing foundational work, we are not looking for volunteers or contributors unless they are well versed in the compiler. We do expect that as the project proceeds, there will be more and more need for new contributions. Stay tuned for updates! \ No newline at end of file +We are very excited to see the plan for Polonius coming into focus. At the moment, as we are still doing foundational work, we are not looking for volunteers or contributors unless they are well versed in the compiler. We do expect that as the project proceeds, there will be more and more need for new contributions. Stay tuned for updates! diff --git a/posts/inside-rust/2023-10-23-coroutines.md b/posts/inside-rust/2023-10-23-coroutines.md index 340fe9164..967225040 100644 --- a/posts/inside-rust/2023-10-23-coroutines.md +++ b/posts/inside-rust/2023-10-23-coroutines.md @@ -1,8 +1,8 @@ ---- -layout: post -title: Generators are dead, long live coroutines, generators are back -author: oli-obk ---- ++++ +layout = "post" +title = "Generators are dead, long live coroutines, generators are back" +author = "oli-obk" ++++ We have renamed the unstable `Generator` trait to `Coroutine` and adjusted all terminology accordingly. If you want to see all 3800 modified lines of code, you can find the PR [here](https://github.com/rust-lang/rust/pull/116958). diff --git a/posts/inside-rust/2023-11-13-1.74.0-prerelease.md b/posts/inside-rust/2023-11-13-1.74.0-prerelease.md index c5c8b2442..8944f026a 100644 --- a/posts/inside-rust/2023-11-13-1.74.0-prerelease.md +++ b/posts/inside-rust/2023-11-13-1.74.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.74.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.74.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.74.0 pre-release is ready for testing. The release is scheduled for November 16. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1740-2023-11-16 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-11-13-leadership-council-update.md b/posts/inside-rust/2023-11-13-leadership-council-update.md index e7bb8b82f..f77e6fbe3 100644 --- a/posts/inside-rust/2023-11-13-leadership-council-update.md +++ b/posts/inside-rust/2023-11-13-leadership-council-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "November 2023 Leadership Council Update" -author: Leadership Council -team: Leadership Council ---- ++++ +layout = "post" +title = "November 2023 Leadership Council Update" +author = "Leadership Council" +team = "Leadership Council " ++++ Hello again from the Rust Leadership Council! We wanted to share an update on what the Council has been working on since [our last update][update]. diff --git a/posts/inside-rust/2023-11-15-spec-vision.md b/posts/inside-rust/2023-11-15-spec-vision.md index 3ec4b5932..7bdf0161c 100644 --- a/posts/inside-rust/2023-11-15-spec-vision.md +++ b/posts/inside-rust/2023-11-15-spec-vision.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Our Vision for the Rust Specification" -author: Eric, Felix, Joel and Mara -team: the specification team ---- ++++ +layout = "post" +title = "Our Vision for the Rust Specification" +author = "Eric, Felix, Joel and Mara" +team = "the specification team " ++++ A few months ago, by accepting [RFC 3355](https://rust-lang.github.io/rfcs/3355-rust-spec.html), the decision was made to start working on an official specification for the Rust language. Eric (maintainer of the Rust Reference), Felix (Rust language team), Joel (Rust Foundation) and Mara (author of the RFC) have been working together to get this effort started. diff --git a/posts/inside-rust/2023-12-05-1.74.1-prerelease.md b/posts/inside-rust/2023-12-05-1.74.1-prerelease.md index aeea01377..d0e3b5268 100644 --- a/posts/inside-rust/2023-12-05-1.74.1-prerelease.md +++ b/posts/inside-rust/2023-12-05-1.74.1-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.74.1 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.74.1 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.74.1 pre-release is ready for testing. The release is scheduled for December 7. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1741-2023-12-07 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-12-21-1.75.0-prerelease.md b/posts/inside-rust/2023-12-21-1.75.0-prerelease.md index 9837dcf90..150bb14d0 100644 --- a/posts/inside-rust/2023-12-21-1.75.0-prerelease.md +++ b/posts/inside-rust/2023-12-21-1.75.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.75.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.75.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.75.0 pre-release is ready for testing. The release is scheduled for December 28. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1750-2023-12-28 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md index f62b1e76f..c6128bec5 100644 --- a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rustc Trait System Refactor Initiative Update: A call for testing" -author: lcnr -team: The Rustc Trait System Refactor Initiative ---- ++++ +layout = "post" +title = "Rustc Trait System Refactor Initiative Update: A call for testing" +author = "lcnr" +team = "The Rustc Trait System Refactor Initiative " ++++ It has been nearly half a year since [our last update][prev]. We are reimplementing the trait solver of rustc with the goal of completely replacing the existing systems. This should allow us to fix some long-standing bugs, enable future type system improvements, and reduce compile times. See the previous update for a more detailed introduction. We have continued to make big progress on the new solver, mostly focusing on getting the solver ready for use in coherence. We changed the unstable compiler flag to enable the new solver: you can now use `-Znext-solver=globally` to enable it everywhere and `-Znext-solver=coherence` to enable the new solver only for coherence checking. @@ -54,4 +54,4 @@ In case there are any questions or thoughts about the new solver, please reach o [^2]: see the [introduction of the previous update][prev] -[prev]: https://blog.rust-lang.org/inside-rust/2023/07/17/trait-system-refactor-initiative.html \ No newline at end of file +[prev]: https://blog.rust-lang.org/inside-rust/2023/07/17/trait-system-refactor-initiative.html diff --git a/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md b/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md index 98db16796..c7ead8d53 100644 --- a/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md +++ b/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.76" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.76" +author = "Ed Page" +team = "The Cargo Team " ++++ We wanted to share what has been happening for the last 6 weeks to better keep the community informed and involved. For work that was merged before branching for 1.76 beta, it will be in the Beta channel for the next 6 weeks after which it will be generally available. diff --git a/posts/inside-rust/2024-02-04-1.76.0-prerelease.md b/posts/inside-rust/2024-02-04-1.76.0-prerelease.md index 963793ca9..41d5dc174 100644 --- a/posts/inside-rust/2024-02-04-1.76.0-prerelease.md +++ b/posts/inside-rust/2024-02-04-1.76.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.76.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.76.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.76.0 pre-release is ready for testing. The release is scheduled for February 8. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1760-2024-02-08 [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2024-02-13-lang-team-colead.md b/posts/inside-rust/2024-02-13-lang-team-colead.md index 41267b5f0..8b5c306f7 100644 --- a/posts/inside-rust/2024-02-13-lang-team-colead.md +++ b/posts/inside-rust/2024-02-13-lang-team-colead.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing Tyler Mandry as Lang Team co-lead" -author: Niko Matsakis -team: the lang design team ---- ++++ +layout = "post" +title = "Announcing Tyler Mandry as Lang Team co-lead" +author = "Niko Matsakis" +team = "the lang design team " ++++ It gives me great pleasure to announce (rather belatedly[^b]) that Tyler Mandry has been chosen as the new lang-team co-lead. Tyler is a great choice for lead, as he always brings a balanced, thoughtful perspective to discussions, but is also willing to take strong positions when he believes he knows the right path forward. And he usually does. diff --git a/posts/inside-rust/2024-02-13-leadership-council-update.md b/posts/inside-rust/2024-02-13-leadership-council-update.md index 4182431e7..43f7f13bc 100644 --- a/posts/inside-rust/2024-02-13-leadership-council-update.md +++ b/posts/inside-rust/2024-02-13-leadership-council-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "February 2024 Leadership Council Update" -author: Leadership Council -team: Leadership Council ---- ++++ +layout = "post" +title = "February 2024 Leadership Council Update" +author = "Leadership Council" +team = "Leadership Council " ++++ Hello again from the Rust Leadership Council! We wanted to share an update on what the Council has been working on since [our last update][update]. diff --git a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md b/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md index b2aaf9eed..f8adf5221 100644 --- a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md +++ b/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.77" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.77" +author = "Ed Page" +team = "The Cargo Team " ++++ # This Development-cycle in Cargo: 1.77 diff --git a/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md b/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md index 38abdc0e8..0059e02dd 100644 --- a/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md +++ b/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Leadership Council March Representative Selections" -author: Leadership Council -team: Leadership Council ---- ++++ +layout = "post" +title = "Leadership Council March Representative Selections" +author = "Leadership Council" +team = "Leadership Council " ++++ The selection process for representatives on the [Leadership Council] is starting today. diff --git a/posts/inside-rust/2024-03-17-1.77.0-prerelease.md b/posts/inside-rust/2024-03-17-1.77.0-prerelease.md index 5d91e00b1..72fe8ee3a 100644 --- a/posts/inside-rust/2024-03-17-1.77.0-prerelease.md +++ b/posts/inside-rust/2024-03-17-1.77.0-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.77.0 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.77.0 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.77.0 pre-release is ready for testing. The release is scheduled for March 21. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://dev-doc.rust-lang.org/1.77.0/releases.html [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2024-03-22-2024-edition-update.md b/posts/inside-rust/2024-03-22-2024-edition-update.md index 2f16d64c7..6605aac27 100644 --- a/posts/inside-rust/2024-03-22-2024-edition-update.md +++ b/posts/inside-rust/2024-03-22-2024-edition-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "2024 Edition Update" -author: Eric Huss -team: Edition 2024 Project Group ---- ++++ +layout = "post" +title = "2024 Edition Update" +author = "Eric Huss" +team = "Edition 2024 Project Group " ++++ This is a reminder to the teams working on the 2024 Edition that implementation work should be **finished by the end of May**. If you have any questions, please let us know on the [`#edition`][zulip] Zulip stream. diff --git a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md index 328b781ac..7f2a1f36c 100644 --- a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md +++ b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.78" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.78" +author = "Ed Page" +team = "The Cargo Team " ++++ # This Development-cycle in Cargo: 1.78 diff --git a/posts/inside-rust/2024-03-27-1.77.1-prerelease.md b/posts/inside-rust/2024-03-27-1.77.1-prerelease.md index cfbbb0d51..947b8a6e5 100644 --- a/posts/inside-rust/2024-03-27-1.77.1-prerelease.md +++ b/posts/inside-rust/2024-03-27-1.77.1-prerelease.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "1.77.1 pre-release testing" -author: Release automation -team: The Release Team ---- ++++ +layout = "post" +title = "1.77.1 pre-release testing" +author = "Release automation" +team = "The Release Team " ++++ The 1.77.1 pre-release is ready for testing. The release is scheduled for March 28. [Release notes can be found here.][relnotes] @@ -23,4 +23,4 @@ we'd love your feedback [on this GitHub issue][feedback]. [relnotes]: https://dev-doc.rust-lang.org/1.77.1/releases.html [feedback]: https://github.com/rust-lang/release-team/issues/16 - \ No newline at end of file + diff --git a/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md b/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md index 02bf23065..73fb0e3e5 100644 --- a/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md +++ b/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Leadership Council March Representative Selections" -author: Eric Huss -team: Leadership Council ---- ++++ +layout = "post" +title = "Leadership Council March Representative Selections" +author = "Eric Huss" +team = "Leadership Council " ++++ The March 2024 selections for [Leadership Council] representatives have been finalized. All teams chose their existing representatives to continue for a second term. The representatives are: diff --git a/posts/inside-rust/2024-04-12-types-team-leadership.md b/posts/inside-rust/2024-04-12-types-team-leadership.md index 3ed117101..6892c009e 100644 --- a/posts/inside-rust/2024-04-12-types-team-leadership.md +++ b/posts/inside-rust/2024-04-12-types-team-leadership.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Announcing lcnr as Types Team co-lead" -author: Niko Matsakis -team: the types team ---- ++++ +layout = "post" +title = "Announcing lcnr as Types Team co-lead" +author = "Niko Matsakis" +team = "the types team " ++++ It is my great privilege to announce that [lcnr][] will be serving as the new types team co-lead. The types team has adopted the ["rolling leadership" model](https://rust-lang.github.io/rfcs/3262-compiler-team-rolling-leads.html) pioneered by the compiler team, and so [lcnr][] is joining as the new "junior lead". The senior lead will be [Jack Huey][]. I ([Niko Matsakis][]) am going to be stepping back and I will continue to be active as a types team member. diff --git a/posts/inside-rust/2024-05-07-announcing-project-goals.md b/posts/inside-rust/2024-05-07-announcing-project-goals.md index 223510db2..27add03a5 100644 --- a/posts/inside-rust/2024-05-07-announcing-project-goals.md +++ b/posts/inside-rust/2024-05-07-announcing-project-goals.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rust Project Goals Submission Period" -author: Niko Matsakis and Josh Triplett -team: Leadership Council ---- ++++ +layout = "post" +title = "Rust Project Goals Submission Period" +author = "Niko Matsakis and Josh Triplett" +team = "Leadership Council " ++++ We're happy to announce the start of an experimental roadmapping effort dubbed **Rust project goals**. As described in [RFC 3614][], the plan is to establish a slate of **project goals** for the second half of 2024 (2024H2). **We need your help!** We are currently seeking ideas for project goals, particularly those that have motivated owners who have time and resources to drive the goal to completion. [If you'd like to propose a goal, read more about the process here!][propose] diff --git a/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md b/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md index 7dc2799ed..65dc921c6 100644 --- a/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md +++ b/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.79" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.79" +author = "Ed Page" +team = "The Cargo Team " ++++ # This Development-cycle in Cargo: 1.79 diff --git a/posts/inside-rust/2024-05-09-rust-leads-summit.md b/posts/inside-rust/2024-05-09-rust-leads-summit.md index 02bf54e98..8d67976f5 100644 --- a/posts/inside-rust/2024-05-09-rust-leads-summit.md +++ b/posts/inside-rust/2024-05-09-rust-leads-summit.md @@ -1,8 +1,8 @@ ---- -layout: post -title: "Recap: Rust Leads Summit 2024" -author: Tyler Mandry and Eric Holk ---- ++++ +layout = "post" +title = "Recap: Rust Leads Summit 2024" +author = "Tyler Mandry and Eric Holk" ++++ ## What happened? diff --git a/posts/inside-rust/2024-05-14-leadership-council-update.md b/posts/inside-rust/2024-05-14-leadership-council-update.md index 79a82a913..0f77f4ed6 100644 --- a/posts/inside-rust/2024-05-14-leadership-council-update.md +++ b/posts/inside-rust/2024-05-14-leadership-council-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "May 2024 Leadership Council Update" -author: Eric Huss -team: Leadership Council ---- ++++ +layout = "post" +title = "May 2024 Leadership Council Update" +author = "Eric Huss" +team = "Leadership Council " ++++ Hello again from the Rust Leadership Council! We wanted to share an update on what the Council has been working on since [our last update][update]. diff --git a/posts/inside-rust/2024-05-28-launching-pad-representative.md b/posts/inside-rust/2024-05-28-launching-pad-representative.md index b191866e4..1bc4a8eb9 100644 --- a/posts/inside-rust/2024-05-28-launching-pad-representative.md +++ b/posts/inside-rust/2024-05-28-launching-pad-representative.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Welcome James Munns to the Leadership Council" -author: Eric Huss -team: Leadership Council ---- ++++ +layout = "post" +title = "Welcome James Munns to the Leadership Council" +author = "Eric Huss" +team = "Leadership Council " ++++ The Leadership Council would like to welcome [James Munns] as the new representative of the Launching Pad. [JP] will be stepping down for personal reasons. We are very grateful for JP being a part of the Leadership Council since its beginning. diff --git a/posts/inside-rust/2024-06-19-this-development-cycle-in-cargo-1.80.md b/posts/inside-rust/2024-06-19-this-development-cycle-in-cargo-1.80.md index dab112d3f..4f4ce446a 100644 --- a/posts/inside-rust/2024-06-19-this-development-cycle-in-cargo-1.80.md +++ b/posts/inside-rust/2024-06-19-this-development-cycle-in-cargo-1.80.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.80" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.80" +author = "Ed Page" +team = "The Cargo Team " ++++ # This Development-cycle in Cargo: 1.80 diff --git a/posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md b/posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md index 6a09b78ea..1f62a3cde 100644 --- a/posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md +++ b/posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Welcome TC to the Rust language design team!" -author: Niko Matsakis and Tyler Mandry -team: The Rust Lang Team ---- ++++ +layout = "post" +title = "Welcome TC to the Rust language design team!" +author = "Niko Matsakis and Tyler Mandry" +team = "The Rust Lang Team " ++++ Please join us in welcoming TC as a new member of the Rust language design team. TC has been a valuable contributor to the Rust project, serving as the lead of the lang-ops team and overseeing the Rust 2024 edition. diff --git a/posts/inside-rust/2024-08-09-async-closures-call-for-testing.md b/posts/inside-rust/2024-08-09-async-closures-call-for-testing.md index bb65e0e58..f67c6a8a6 100644 --- a/posts/inside-rust/2024-08-09-async-closures-call-for-testing.md +++ b/posts/inside-rust/2024-08-09-async-closures-call-for-testing.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Async Closures MVP: Call for Testing!" -author: Michael Goulet -team: The Async Working Group ---- ++++ +layout = "post" +title = "Async Closures MVP: Call for Testing!" +author = "Michael Goulet" +team = "The Async Working Group " ++++ The async working group is excited to announce that [RFC 3668] "Async Closures" was recently approved by the Lang team. In this post, we want to briefly motivate why async closures exist, explain their current shortcomings, and most importantly, announce a call for testing them on nightly Rust. @@ -163,4 +163,4 @@ fn needs_fn_pointer(callback: impl async Fn()) { todo!() } fn needs_fn_pointer(callback: impl AsyncFn()) { todo!() } ``` -[RFC 3668]: https://rust-lang.github.io/rfcs/3668-async-closures.html \ No newline at end of file +[RFC 3668]: https://rust-lang.github.io/rfcs/3668-async-closures.html diff --git a/posts/inside-rust/2024-08-15-this-development-cycle-in-cargo-1.81.md b/posts/inside-rust/2024-08-15-this-development-cycle-in-cargo-1.81.md index 45fbc1867..ca598529d 100644 --- a/posts/inside-rust/2024-08-15-this-development-cycle-in-cargo-1.81.md +++ b/posts/inside-rust/2024-08-15-this-development-cycle-in-cargo-1.81.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.81" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.81" +author = "Ed Page" +team = "The Cargo Team " ++++ # This Development-cycle in Cargo: 1.81 diff --git a/posts/inside-rust/2024-08-20-leadership-council-repr-selection.md b/posts/inside-rust/2024-08-20-leadership-council-repr-selection.md index b53bf153d..31aeffef5 100644 --- a/posts/inside-rust/2024-08-20-leadership-council-repr-selection.md +++ b/posts/inside-rust/2024-08-20-leadership-council-repr-selection.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Leadership Council September Representative Selections" -author: Eric Huss -team: Leadership Council ---- ++++ +layout = "post" +title = "Leadership Council September Representative Selections" +author = "Eric Huss" +team = "Leadership Council " ++++ The selection process for representatives on the [Leadership Council] is starting today. diff --git a/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md b/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md index 72e4f3dd9..2dc067d82 100644 --- a/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md +++ b/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Embedded Working Group Community Micro Survey" -author: James Munns -team: Embedded Devices Working Group ---- ++++ +layout = "post" +title = "Embedded Working Group Community Micro Survey" +author = "James Munns" +team = "Embedded Devices Working Group " ++++ The [Embedded devices working group] has launched the [2024 Embedded Community Micro Survey] starting today, and running until **September 19th, 2024**. diff --git a/posts/inside-rust/2024-09-02-all-hands.md b/posts/inside-rust/2024-09-02-all-hands.md index 52ec09724..502ac133c 100644 --- a/posts/inside-rust/2024-09-02-all-hands.md +++ b/posts/inside-rust/2024-09-02-all-hands.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Save the Date: Rust All Hands 2025" -author: Mara Bos -team: Leadership Council ---- ++++ +layout = "post" +title = "Save the Date: Rust All Hands 2025" +author = "Mara Bos" +team = "Leadership Council " ++++ We are very excited to announce that, after six years, we will finally have another Rust All Hands event in 2025! diff --git a/posts/inside-rust/2024-09-06-electing-new-project-directors.md b/posts/inside-rust/2024-09-06-electing-new-project-directors.md index a8090e866..5a5305dec 100644 --- a/posts/inside-rust/2024-09-06-electing-new-project-directors.md +++ b/posts/inside-rust/2024-09-06-electing-new-project-directors.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Electing New Project Directors 2024" -author: Leadership Council -team: Leadership Council ---- ++++ +layout = "post" +title = "Electing New Project Directors 2024" +author = "Leadership Council" +team = "Leadership Council " ++++ Today we are launching the process to elect two Project Directors to the Rust Foundation Board of Directors. This is the second round of slots, following from [last year's election](https://blog.rust-lang.org/2023/08/30/electing-new-project-directors.html). diff --git a/posts/inside-rust/2024-09-06-leadership-council-update.md b/posts/inside-rust/2024-09-06-leadership-council-update.md index ae8a9de93..8e3fbf273 100644 --- a/posts/inside-rust/2024-09-06-leadership-council-update.md +++ b/posts/inside-rust/2024-09-06-leadership-council-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "September 2024 Leadership Council Update" -author: Eric Huss -team: Leadership Council ---- ++++ +layout = "post" +title = "September 2024 Leadership Council Update" +author = "Eric Huss" +team = "Leadership Council " ++++ Hello again from the Rust Leadership Council! We wanted to share an update on what the Council has been working on since [our last update][update]. diff --git a/posts/inside-rust/2024-09-26-rtn-call-for-testing.md b/posts/inside-rust/2024-09-26-rtn-call-for-testing.md index 5a6b5a7c1..4a382024e 100644 --- a/posts/inside-rust/2024-09-26-rtn-call-for-testing.md +++ b/posts/inside-rust/2024-09-26-rtn-call-for-testing.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Return type notation MVP: Call for testing!" -author: Michael Goulet -team: The Async Working Group ---- ++++ +layout = "post" +title = "Return type notation MVP: Call for testing!" +author = "Michael Goulet" +team = "The Async Working Group " ++++ The async working group is excited to announce that [RFC 3654] return type notation (RTN) is ready for testing on nightly Rust. In this post, we'll briefly describe the feature. diff --git a/posts/inside-rust/2024-09-27-leadership-council-repr-selection.md b/posts/inside-rust/2024-09-27-leadership-council-repr-selection.md index ab8bd2672..091b6ccb1 100644 --- a/posts/inside-rust/2024-09-27-leadership-council-repr-selection.md +++ b/posts/inside-rust/2024-09-27-leadership-council-repr-selection.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Leadership Council September 2024 Representative Selections" -author: Eric Huss -team: Leadership Council ---- ++++ +layout = "post" +title = "Leadership Council September 2024 Representative Selections" +author = "Eric Huss" +team = "Leadership Council " ++++ The September 2024 selections for [Leadership Council] representatives have been finalized. The Lang Team has chosen [TC] as their new representative, and the Moderation Team has chosen [Oliver Scherer]. Oli is currently on leave, so the current representative, [Josh Gould], will substitute until he returns. Thank you to the outgoing representatives [Jack Huey] and [Josh Gould] for your amazing support on the Council. diff --git a/posts/inside-rust/2024-10-01-this-development-cycle-in-cargo-1.82.md b/posts/inside-rust/2024-10-01-this-development-cycle-in-cargo-1.82.md index 438dc4513..e412a703e 100644 --- a/posts/inside-rust/2024-10-01-this-development-cycle-in-cargo-1.82.md +++ b/posts/inside-rust/2024-10-01-this-development-cycle-in-cargo-1.82.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.82" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.82" +author = "Ed Page" +team = "The Cargo Team " ++++ # This Development-cycle in Cargo: 1.82 diff --git a/posts/inside-rust/2024-10-10-test-infra-oct-2024.md b/posts/inside-rust/2024-10-10-test-infra-oct-2024.md index f47e6dd18..e06cd0d77 100644 --- a/posts/inside-rust/2024-10-10-test-infra-oct-2024.md +++ b/posts/inside-rust/2024-10-10-test-infra-oct-2024.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Month in Our Test Infra: September 2024" -author: Jieyou Xu -team: the Bootstrap Team ---- ++++ +layout = "post" +title = "This Month in Our Test Infra: September 2024" +author = "Jieyou Xu" +team = "the Bootstrap Team " ++++ # This Month in Our Test Infra: September 2024 diff --git a/posts/inside-rust/2024-10-31-this-development-cycle-in-cargo-1.83.md b/posts/inside-rust/2024-10-31-this-development-cycle-in-cargo-1.83.md index 8059538c4..2a98e963c 100644 --- a/posts/inside-rust/2024-10-31-this-development-cycle-in-cargo-1.83.md +++ b/posts/inside-rust/2024-10-31-this-development-cycle-in-cargo-1.83.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.83" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.83" +author = "Ed Page" +team = "The Cargo Team " ++++ # This Development-cycle in Cargo: 1.83 diff --git a/posts/inside-rust/2024-11-01-compiler-team-reorg.md b/posts/inside-rust/2024-11-01-compiler-team-reorg.md index 9c46f422f..3f6a16c92 100644 --- a/posts/inside-rust/2024-11-01-compiler-team-reorg.md +++ b/posts/inside-rust/2024-11-01-compiler-team-reorg.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Re-organising the compiler team and recognising our team members -author: davidtwco and wesleywiser -team: the compiler team ---- ++++ +layout = "post" +title = "Re-organising the compiler team and recognising our team members" +author = "davidtwco and wesleywiser" +team = "the compiler team " ++++ Back in June, the compiler team merged [RFC 3599][rfc] which re-structured the team to ensure the team's policies and processes can support the maintenance of the Rust compiler going forward. diff --git a/posts/inside-rust/2024-11-04-project-goals-2025h1-call-for-proposals.md b/posts/inside-rust/2024-11-04-project-goals-2025h1-call-for-proposals.md index 66b8843b1..4af3c2275 100644 --- a/posts/inside-rust/2024-11-04-project-goals-2025h1-call-for-proposals.md +++ b/posts/inside-rust/2024-11-04-project-goals-2025h1-call-for-proposals.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Call for proposals: Rust 2025h1 project goals" -author: Niko Matsakis -team: Leadership Council ---- ++++ +layout = "post" +title = "Call for proposals: Rust 2025h1 project goals" +author = "Niko Matsakis" +team = "Leadership Council " ++++ **As of today, we are officially accepting proposals for Rust Project Goals targeting 2025H1 (the first half of 2025).** If you'd like to participate in the process, or just to follow along, please check out the [2025h1 goal page][2025h1]. It includes listings of the goals currently under consideration, more details about the goals program, and instructions for how to submit a goal. diff --git a/posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md b/posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md index 00e68c95c..4106f64fc 100644 --- a/posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md +++ b/posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Month in Our Test Infra: October 2024" -author: Jieyou Xu -team: the Bootstrap Team ---- ++++ +layout = "post" +title = "This Month in Our Test Infra: October 2024" +author = "Jieyou Xu" +team = "the Bootstrap Team " ++++ # This Month in Our Test Infra: October 2024 diff --git a/posts/inside-rust/2024-11-12-compiler-team-new-members.md b/posts/inside-rust/2024-11-12-compiler-team-new-members.md index 5f433eb48..9fcb1868d 100644 --- a/posts/inside-rust/2024-11-12-compiler-team-new-members.md +++ b/posts/inside-rust/2024-11-12-compiler-team-new-members.md @@ -1,9 +1,9 @@ ---- -layout: post -title: Announcing four new members of the compiler team -author: davidtwco and wesleywiser -team: the compiler team ---- ++++ +layout = "post" +title = "Announcing four new members of the compiler team" +author = "davidtwco and wesleywiser" +team = "the compiler team " ++++ Its been no time at all since [we restructured the team and recognised our existing and new members][blog_reorg], but we've already got new compiler team members to announce and recognise: diff --git a/posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md b/posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md index 2097e3c0b..353460fed 100644 --- a/posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Rustc Trait System Refactor Initiative Update: Stabilizing `-Znext-solver=coherence`" -author: lcnr -team: The Rustc Trait System Refactor Initiative ---- ++++ +layout = "post" +title = "Rustc Trait System Refactor Initiative Update: Stabilizing `-Znext-solver=coherence`" +author = "lcnr" +team = "The Rustc Trait System Refactor Initiative " ++++ It's been half a year since we last summarized our progress in the [Types Team update blog post](https://blog.rust-lang.org/2024/06/26/types-team-update.html). With the next-generation trait solver now getting used by default in coherence checking on beta[^2], it's time for another update. The next-generation trait solver is intended to fully replace the existing type system components responsible for proving trait bounds, normalizing associated types, and much more. This should fix many long-standing (soundness) bugs, enable future type system improvements, and improve compile-times. See [this previous blog post](https://blog.rust-lang.org/inside-rust/2023/07/17/trait-system-refactor-initiative.html) for more details. diff --git a/posts/inside-rust/2024-12-09-leadership-council-update.md b/posts/inside-rust/2024-12-09-leadership-council-update.md index c1ae35a04..a0f8222f7 100644 --- a/posts/inside-rust/2024-12-09-leadership-council-update.md +++ b/posts/inside-rust/2024-12-09-leadership-council-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "December 2024 Leadership Council Update" -author: Eric Huss -team: Leadership Council ---- ++++ +layout = "post" +title = "December 2024 Leadership Council Update" +author = "Eric Huss" +team = "Leadership Council " ++++ Hello again from the Rust Leadership Council! We wanted to share an update on what the Council has been working on since [our last update][update]. diff --git a/posts/inside-rust/2024-12-09-test-infra-nov-2024.md b/posts/inside-rust/2024-12-09-test-infra-nov-2024.md index 9876a251d..29a98dc0a 100644 --- a/posts/inside-rust/2024-12-09-test-infra-nov-2024.md +++ b/posts/inside-rust/2024-12-09-test-infra-nov-2024.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Month in Our Test Infra: November 2024" -author: Jieyou Xu -team: the Bootstrap Team ---- ++++ +layout = "post" +title = "This Month in Our Test Infra: November 2024" +author = "Jieyou Xu" +team = "the Bootstrap Team " ++++ # This Month in Our Test Infra: November 2024 diff --git a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md index dbff28411..232240578 100644 --- a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md +++ b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.84" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.84" +author = "Ed Page" +team = "The Cargo Team " ++++ # This Development-cycle in Cargo: 1.84 diff --git a/posts/inside-rust/2024-12-17-project-director-update.md b/posts/inside-rust/2024-12-17-project-director-update.md index eeee820ca..8d79bf1d5 100644 --- a/posts/inside-rust/2024-12-17-project-director-update.md +++ b/posts/inside-rust/2024-12-17-project-director-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "December 2024 Project Director Update" -author: Carol Nichols -team: Rust Foundation Project Directors ---- ++++ +layout = "post" +title = "December 2024 Project Director Update" +author = "Carol Nichols" +team = "Rust Foundation Project Directors " ++++ Hello and welcome to the inaugural Rust Foundation Project Director update! I’m Carol Nichols, I’m one of the authors on The Rust Programming Language book and a member of the crates.io team, and [I diff --git a/posts/inside-rust/2025-01-10-test-infra-dec-2024.md b/posts/inside-rust/2025-01-10-test-infra-dec-2024.md index de5d8364c..7e784fc1d 100644 --- a/posts/inside-rust/2025-01-10-test-infra-dec-2024.md +++ b/posts/inside-rust/2025-01-10-test-infra-dec-2024.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Month in Our Test Infra: December 2024" -author: Jieyou Xu -team: the Bootstrap Team ---- ++++ +layout = "post" +title = "This Month in Our Test Infra: December 2024" +author = "Jieyou Xu" +team = "the Bootstrap Team " ++++ # This Month in Our Test Infra: December 2024 diff --git a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md b/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md index 709dbc7ec..03d0f9db0 100644 --- a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md +++ b/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.85" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.85" +author = "Ed Page" +team = "The Cargo Team " ++++ # This Development-cycle in Cargo: 1.85 diff --git a/posts/inside-rust/2025-01-30-project-director-update.md b/posts/inside-rust/2025-01-30-project-director-update.md index 3e6b78b7f..cb15b92f7 100644 --- a/posts/inside-rust/2025-01-30-project-director-update.md +++ b/posts/inside-rust/2025-01-30-project-director-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "January 2025 Project Director Update" -author: Carol Nichols -team: Rust Foundation Project Directors ---- ++++ +layout = "post" +title = "January 2025 Project Director Update" +author = "Carol Nichols" +team = "Rust Foundation Project Directors " ++++ Happy New Year everyone! Welcome to the second blog post in [the series started last month](https://blog.rust-lang.org/inside-rust/2024/12/17/project-director-update.html) where us Rust Foundation Project Directors will be sharing the highlights from last month’s Rust Foundation Board meeting. You’ll find the [full December 2024 meeting minutes](https://rustfoundation.org/resource/december-board-minutes/) on the Rust Foundation’s [beautiful new site](https://rustfoundation.org/policies-resources/#minutes)! diff --git a/posts/inside-rust/2025-02-14-leadership-council-repr-selection.md b/posts/inside-rust/2025-02-14-leadership-council-repr-selection.md index c4301bd56..7948180ba 100644 --- a/posts/inside-rust/2025-02-14-leadership-council-repr-selection.md +++ b/posts/inside-rust/2025-02-14-leadership-council-repr-selection.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Leadership Council March 2025 Representative Selections" -author: Eric Huss -team: Leadership Council ---- ++++ +layout = "post" +title = "Leadership Council March 2025 Representative Selections" +author = "Eric Huss" +team = "Leadership Council " ++++ The selection process for representatives on the [Leadership Council] is starting today. diff --git a/posts/inside-rust/2025-02-24-project-director-update.md b/posts/inside-rust/2025-02-24-project-director-update.md index bb38207f5..b7e06ec75 100644 --- a/posts/inside-rust/2025-02-24-project-director-update.md +++ b/posts/inside-rust/2025-02-24-project-director-update.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "February 2025 Project Director Update" -author: Carol Nichols -team: Rust Foundation Project Directors ---- ++++ +layout = "post" +title = "February 2025 Project Director Update" +author = "Carol Nichols" +team = "Rust Foundation Project Directors " ++++ This is the third blog post in [the series started December 2024](https://blog.rust-lang.org/inside-rust/2024/12/17/project-director-update.html) where us Rust Foundation Project Directors will be sharing the highlights from last month’s Rust Foundation Board meeting. You’ll find the [full January 2025 meeting minutes](https://rustfoundation.org/resource/january-2025-board-meeting/) on the Rust Foundation’s [beautiful new site](https://rustfoundation.org/policies-resources/#minutes)! @@ -18,4 +18,4 @@ As always, if you have any comments, questions, or suggestions, please email all of the project directors via project-directors at rust-lang.org or join us in [the #foundation channel on the Rust Zulip][foundation-zulip]. -[foundation-zulip]: https://rust-lang.zulipchat.com/#narrow/channel/335408-foundation \ No newline at end of file +[foundation-zulip]: https://rust-lang.zulipchat.com/#narrow/channel/335408-foundation diff --git a/posts/inside-rust/2025-02-27-relnotes-interest-group.md b/posts/inside-rust/2025-02-27-relnotes-interest-group.md index 6d5b24ce3..294e69398 100644 --- a/posts/inside-rust/2025-02-27-relnotes-interest-group.md +++ b/posts/inside-rust/2025-02-27-relnotes-interest-group.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Relnotes PR and release blog post ping group" -author: Jieyou Xu -team: The Release Team ---- ++++ +layout = "post" +title = "Relnotes PR and release blog post ping group" +author = "Jieyou Xu" +team = "The Release Team " ++++ # Relnotes PR and release blog post ping group is now available diff --git a/posts/inside-rust/2025-02-27-this-development-cycle-in-cargo-1.86.md b/posts/inside-rust/2025-02-27-this-development-cycle-in-cargo-1.86.md index cab1bb1fe..b34de078d 100644 --- a/posts/inside-rust/2025-02-27-this-development-cycle-in-cargo-1.86.md +++ b/posts/inside-rust/2025-02-27-this-development-cycle-in-cargo-1.86.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "This Development-cycle in Cargo: 1.86" -author: Ed Page -team: The Cargo Team ---- ++++ +layout = "post" +title = "This Development-cycle in Cargo: 1.86" +author = "Ed Page" +team = "The Cargo Team " ++++ # This Development-cycle in Cargo: 1.86 diff --git a/posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md b/posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md index bd6bd937e..3fe3f05af 100644 --- a/posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md +++ b/posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md @@ -1,9 +1,9 @@ ---- -layout: post -title: "Inferred const generic arguments: Call for Testing!" -author: BoxyUwU -team: The Const Generics Project Group ---- ++++ +layout = "post" +title = "Inferred const generic arguments: Call for Testing!" +author = "BoxyUwU" +team = "The Const Generics Project Group " ++++ We are excited to announce that `feature(generic_arg_infer)` is nearing the point of stabilization. In this post we'd like to talk a bit about what this feature does, and what comes next for it. @@ -59,4 +59,4 @@ A big thank you to [@lcnr][lcnr] and [@JulianKnodt][JulianKnodt] for the initial [JulianKnodt]: https://github.com/JulianKnodt [camelid]: https://github.com/camelid [voidc]: https://github.com/voidc -[compiler-errors]: https://github.com/compiler-errors \ No newline at end of file +[compiler-errors]: https://github.com/compiler-errors From 7934c1343d93298e29101311360f12bb08d8f6e5 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 15:37:42 +0100 Subject: [PATCH 0827/1024] Normalize all front matter This was done automatically with: ```sh FIX_FRONT_MATTER=1 cargo test --all front_matter_is_normalized ``` --- .../2018-01-03-new-years-rust-a-call-for-community-blogposts.md | 2 +- posts/2018-10-30-help-test-rust-2018.md | 2 +- posts/2019-06-03-governance-wg-announcement.md | 1 - posts/2020-08-18-laying-the-foundation-for-rusts-future.md | 1 - posts/2020-09-03-Planning-2021-Roadmap.md | 1 - posts/2020-09-21-Scheduling-2021-Roadmap.md | 1 - posts/2020-10-20-regression-labels.md | 2 +- posts/2020-12-07-the-foundation-conversation.md | 1 - posts/2020-12-14-Next-steps-for-the-foundation-conversation.md | 1 - posts/2020-12-16-rust-survey-2020.md | 1 - posts/2022-02-14-crates-io-snapshot-branches.md | 1 - posts/2022-08-05-nll-by-default.md | 1 - posts/2023-08-07-Rust-Survey-2023-Results.md | 1 - posts/2023-12-15-2024-Edition-CFP.md | 1 - posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md | 2 +- .../2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md | 2 +- .../2020-03-04-recent-future-pattern-matching-improvements.md | 2 +- .../2023-09-04-keeping-secure-with-cargo-audit-0.18.md | 2 +- 18 files changed, 7 insertions(+), 18 deletions(-) diff --git a/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md b/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md index ebe86b20c..3f504c9ac 100644 --- a/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md +++ b/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md @@ -1,7 +1,7 @@ +++ +layout = "post" title = "New Year's Rust: A Call for Community Blogposts" author = "The Rust Core Team" -layout = "post" +++ 'Tis the season for people and communities to reflect and set goals- and the Rust team is diff --git a/posts/2018-10-30-help-test-rust-2018.md b/posts/2018-10-30-help-test-rust-2018.md index f96102e65..88955d23c 100644 --- a/posts/2018-10-30-help-test-rust-2018.md +++ b/posts/2018-10-30-help-test-rust-2018.md @@ -1,7 +1,7 @@ +++ +layout = "post" title = "Help test Rust 2018" author = "The Rust Core Team" -layout = "post" +++ Back in July, we talked about ["Rust 2018"]. In short, we are launching a diff --git a/posts/2019-06-03-governance-wg-announcement.md b/posts/2019-06-03-governance-wg-announcement.md index b051b0f98..d338f9b72 100644 --- a/posts/2019-06-03-governance-wg-announcement.md +++ b/posts/2019-06-03-governance-wg-announcement.md @@ -2,7 +2,6 @@ layout = "post" title = "The Governance WG is going public" author = "The Rust Governance WG" -release = false +++ diff --git a/posts/2020-08-18-laying-the-foundation-for-rusts-future.md b/posts/2020-08-18-laying-the-foundation-for-rusts-future.md index d2510b1b1..126e6e353 100644 --- a/posts/2020-08-18-laying-the-foundation-for-rusts-future.md +++ b/posts/2020-08-18-laying-the-foundation-for-rusts-future.md @@ -2,7 +2,6 @@ layout = "post" title = "Laying the foundation for Rust's future" author = "The Rust Core Team" -release = false +++ The Rust project was originally [conceived in 2010][2010] (depending on how you count, you might even say [2006][2006]!) as a [Mozilla Research] project, but the long term goal has always been to establish Rust as a self-sustaining project. In 2015, [with the launch of Rust 1.0][onepointoh], Rust established its project direction and governance independent of the Mozilla organization. Since then, Rust has been operating as an autonomous organization, with Mozilla being a prominent and consistent financial and legal sponsor. diff --git a/posts/2020-09-03-Planning-2021-Roadmap.md b/posts/2020-09-03-Planning-2021-Roadmap.md index 06432fbc9..d28c54110 100644 --- a/posts/2020-09-03-Planning-2021-Roadmap.md +++ b/posts/2020-09-03-Planning-2021-Roadmap.md @@ -2,7 +2,6 @@ layout = "post" title = "Planning the 2021 Roadmap" author = "The Rust Core Team" -release = false +++ The core team is beginning to think about the 2021 Roadmap, and we want to hear from the community. We’re going to be running two parallel efforts over the next several weeks: the 2020 Rust Survey, to be announced next week, and a call for blog posts. diff --git a/posts/2020-09-21-Scheduling-2021-Roadmap.md b/posts/2020-09-21-Scheduling-2021-Roadmap.md index 9411fded9..5dd7130e5 100644 --- a/posts/2020-09-21-Scheduling-2021-Roadmap.md +++ b/posts/2020-09-21-Scheduling-2021-Roadmap.md @@ -2,7 +2,6 @@ layout = "post" title = "Call for 2021 Roadmap Blogs Ending Soon" author = "The Rust Core Team" -release = false +++ We will be closing the collection of blog posts on **October 5th**. As a reminder, we plan to close the [survey](https://blog.rust-lang.org/2020/09/10/survey-launch.html) on **September 24th**, later this week. diff --git a/posts/2020-10-20-regression-labels.md b/posts/2020-10-20-regression-labels.md index f04bf2750..0927a3ed6 100644 --- a/posts/2020-10-20-regression-labels.md +++ b/posts/2020-10-20-regression-labels.md @@ -1,8 +1,8 @@ +++ layout = "post" title = "Marking issues as regressions" -description = "Now anyone can mark issues as regressions!" author = "Camelid" +description = "Now anyone can mark issues as regressions!" team = "the release team " +++ diff --git a/posts/2020-12-07-the-foundation-conversation.md b/posts/2020-12-07-the-foundation-conversation.md index 0e4827b55..c6a7ce208 100644 --- a/posts/2020-12-07-the-foundation-conversation.md +++ b/posts/2020-12-07-the-foundation-conversation.md @@ -2,7 +2,6 @@ layout = "post" title = "The Foundation Conversation" author = "The Rust Core Team" -release = false +++ In August, we on the Core Team [announced our plans to create a Foundation](https://blog.rust-lang.org/2020/08/18/laying-the-foundation-for-rusts-future.html) by the end of the year. Since that time, we’ve been doing a lot of work but it has been difficult to share many details, and we know that a lot of you have questions. diff --git a/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md b/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md index c96e3a684..0bd0e04aa 100644 --- a/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md +++ b/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md @@ -2,7 +2,6 @@ layout = "post" title = "Next steps for the Foundation Conversation" author = "The Rust Core Team" -release = false +++ Last week we kicked off the [Foundation Conversation](https://blog.rust-lang.org/2020/12/07/the-foundation-conversation.html), a week-long period of Q&A forums and live broadcasts with the goal of explaining our vision for the Foundation and finding out what sorts of questions people had. We used those questions to help build a [draft Foundation FAQ](https://github.com/rust-lang/foundation-faq-2020/blob/main/FAQ.md), and if you’ve not seen it yet, you should definitely take a look -- it’s chock full of good information. Thanks to everyone for asking such great questions! diff --git a/posts/2020-12-16-rust-survey-2020.md b/posts/2020-12-16-rust-survey-2020.md index e8208e805..c739fdd1b 100644 --- a/posts/2020-12-16-rust-survey-2020.md +++ b/posts/2020-12-16-rust-survey-2020.md @@ -2,7 +2,6 @@ layout = "post" title = "Rust Survey 2020 Results" author = "The Rust Survey Team" -release = false +++ Greetings Rustaceans! diff --git a/posts/2022-02-14-crates-io-snapshot-branches.md b/posts/2022-02-14-crates-io-snapshot-branches.md index ee2bb858d..0b392ecea 100644 --- a/posts/2022-02-14-crates-io-snapshot-branches.md +++ b/posts/2022-02-14-crates-io-snapshot-branches.md @@ -2,7 +2,6 @@ layout = "post" title = "Crates.io Index Snapshot Branches Moving" author = "The Crates.io Team" -release = false +++ Every so often, the [crates.io index](https://github.com/rust-lang/crates.io-index)'s Git history diff --git a/posts/2022-08-05-nll-by-default.md b/posts/2022-08-05-nll-by-default.md index 443d088a4..87661a143 100644 --- a/posts/2022-08-05-nll-by-default.md +++ b/posts/2022-08-05-nll-by-default.md @@ -3,7 +3,6 @@ layout = "post" title = "Non-lexical lifetimes (NLL) fully stable" author = "Niko Matsakis" team = "the NLL working group " -release = false +++ As of Rust 1.63 (releasing next week), the "non-lexical lifetimes" (NLL) work will be enabled by default. NLL is the second iteration of Rust's borrow checker. The [RFC] actually does quite a nice job of highlighting some of the motivating examples. "But," I hear you saying, "wasn't NLL included in [Rust 2018]?" And yes, yes it was! But at that time, NLL was only enabled for Rust 2018 code, while Rust 2015 code ran in "migration mode". When in "migration mode," the compiler would run both the old *and* the new borrow checker and compare the results. This way, we could give warnings for older code that should never have compiled in the first place; we could also limit the impact of any bugs in the new code. Over time, we have limited migration mode to be closer and closer to just running the new-style borrow checker: in the next release, that process completes, and all Rust code will be checked with NLL. diff --git a/posts/2023-08-07-Rust-Survey-2023-Results.md b/posts/2023-08-07-Rust-Survey-2023-Results.md index 049ef2455..493ef6679 100644 --- a/posts/2023-08-07-Rust-Survey-2023-Results.md +++ b/posts/2023-08-07-Rust-Survey-2023-Results.md @@ -2,7 +2,6 @@ layout = "post" title = "2022 Annual Rust Survey Results" author = "The Rust Survey Working Group in partnership with the Rust Foundation" -release = false +++ Hello, Rustaceans! diff --git a/posts/2023-12-15-2024-Edition-CFP.md b/posts/2023-12-15-2024-Edition-CFP.md index 3b69bc004..c4fa13e87 100644 --- a/posts/2023-12-15-2024-Edition-CFP.md +++ b/posts/2023-12-15-2024-Edition-CFP.md @@ -2,7 +2,6 @@ layout = "post" title = "A Call for Proposals for the Rust 2024 Edition" author = "Ben Striegel on behalf of the Edition 2024 Project Group" -release = false +++ The year 2024 is soon to be upon us, and as long-time Rust aficionados know, diff --git a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md index a6423e2ec..ce40c3802 100644 --- a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md +++ b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md @@ -1,6 +1,6 @@ +++ layout = "post" -title = "Clippy: Deprecating `feature = \"cargo-clippy\"`" +title = 'Clippy: Deprecating `feature = "cargo-clippy"`' author = "The Clippy Team" +++ diff --git a/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md b/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md index 1b93baac1..377622209 100644 --- a/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md +++ b/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md @@ -1,6 +1,6 @@ +++ layout = "post" -title = "Improving async-await's \"Future is not Send\" diagnostic" +title = '''Improving async-await's "Future is not Send" diagnostic''' author = "David Wood" description = "Highlighting a diagnostic improvement for async-await" team = "the Async Foundations WG " diff --git a/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md b/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md index 61ba273db..eda99dfde 100644 --- a/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md +++ b/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md @@ -1,7 +1,7 @@ +++ layout = "post" title = "Recent and future pattern matching improvements" -author = """Mazdak "Centril" Farrokhzad""" +author = 'Mazdak "Centril" Farrokhzad' description = "Reviewing recent pattern matching improvements" team = "the language team " +++ diff --git a/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md b/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md index 2815f465e..a6865f8b4 100644 --- a/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md +++ b/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md @@ -1,7 +1,7 @@ +++ layout = "post" title = "Keeping Rust projects secure with cargo-audit 0.18: performance, compatibility and security improvements" -author = """Sergey "Shnatsel" Davidoff""" +author = 'Sergey "Shnatsel" Davidoff' description = "A look at the new features in cargo-audit 0.18 for ensuring dependencies are free of known vulnerabilities" team = "the Secure Code WG " +++ From 7ba45d66e663bb46aa5044198d1800dd7d4ba039 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 17:22:25 +0100 Subject: [PATCH 0828/1024] Add date field to front matter spec --- front_matter/src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs index 999146a84..8861d20e9 100644 --- a/front_matter/src/lib.rs +++ b/front_matter/src/lib.rs @@ -1,10 +1,12 @@ use eyre::bail; use serde::{Deserialize, Serialize}; +use toml::value::Date; /// The front matter of a markdown blog post. #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct FrontMatter { pub layout: String, + pub date: Date, pub title: String, pub author: String, pub description: Option, From 3324c4fc2c4730c09d81421fc9c3cc28eadc673a Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 20:09:38 +0100 Subject: [PATCH 0829/1024] Parse date from front matter instead of file name --- src/posts.rs | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/posts.rs b/src/posts.rs index 5e9ea0d8e..39845dab2 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -6,6 +6,7 @@ use std::{ path::{Path, PathBuf}, sync::LazyLock, }; +use toml::value::Date; #[derive(Debug, Clone, Serialize)] pub struct Post { @@ -13,10 +14,10 @@ pub struct Post { pub(crate) layout: String, pub(crate) title: String, pub(crate) author: String, - pub(crate) year: i32, + pub(crate) year: u16, pub(crate) show_year: bool, - pub(crate) month: u32, - pub(crate) day: u32, + pub(crate) month: u8, + pub(crate) day: u8, pub(crate) contents: String, pub(crate) url: String, pub(crate) published: String, @@ -30,16 +31,7 @@ pub struct Post { impl Post { pub(crate) fn open(path: &Path, manifest: &Manifest) -> eyre::Result { // yeah this might blow up, but it won't - let filename = path.file_name().unwrap().to_str().unwrap(); - - // we need to get the metadata out of the url - let mut split = filename.splitn(4, '-'); - - // we do some unwraps because these need to be valid - let year = split.next().unwrap().parse::().unwrap(); - let month = split.next().unwrap().parse::().unwrap(); - let day = split.next().unwrap().parse::().unwrap(); - let filename = split.next().unwrap().to_string(); + let filename = path.file_name().unwrap().to_str().unwrap().into(); let contents = std::fs::read_to_string(path)?; @@ -50,6 +42,7 @@ impl Post { release, team: team_string, layout, + date: Date { year, month, day }, .. }, contents, @@ -69,7 +62,7 @@ impl Post { let contents = comrak::markdown_to_html(contents, &options); // finally, the url. - let mut url = PathBuf::from(&*filename); + let mut url = PathBuf::from(&filename); url.set_extension("html"); // this is fine @@ -139,8 +132,8 @@ impl Post { } } -fn build_post_time(year: i32, month: u32, day: u32, seconds: u32) -> String { - let date = chrono::NaiveDate::from_ymd_opt(year, month, day).unwrap(); +fn build_post_time(year: u16, month: u8, day: u8, seconds: u32) -> String { + let date = chrono::NaiveDate::from_ymd_opt(year.into(), month.into(), day.into()).unwrap(); let date_time = date.and_hms_opt(0, 0, seconds).unwrap(); chrono::DateTime::::from_naive_utc_and_offset(date_time, chrono::Utc).to_rfc3339() } From dc16817fd137a380807b8a7e5b14f26acf91d079 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 19:46:39 +0100 Subject: [PATCH 0830/1024] Add date to front matter of every post --- posts/2014-09-15-Rust-1.0.md | 1 + posts/2014-10-30-Stability.md | 1 + posts/2014-11-20-Cargo.md | 1 + posts/2014-12-12-1.0-Timeline.md | 1 + posts/2014-12-12-Core-Team.md | 1 + posts/2015-01-09-Rust-1.0-alpha.md | 1 + posts/2015-02-13-Final-1.0-timeline.md | 1 + posts/2015-02-20-Rust-1.0-alpha2.md | 1 + posts/2015-04-03-Rust-1.0-beta.md | 1 + posts/2015-04-10-Fearless-Concurrency.md | 1 + posts/2015-04-17-Enums-match-mutation-and-moves.md | 1 + posts/2015-04-24-Rust-Once-Run-Everywhere.md | 1 + posts/2015-05-11-traits.md | 1 + posts/2015-05-15-Rust-1.0.md | 1 + posts/2015-06-25-Rust-1.1.md | 1 + posts/2015-08-06-Rust-1.2.md | 1 + posts/2015-08-14-Next-year.md | 1 + posts/2015-09-17-Rust-1.3.md | 1 + posts/2015-10-29-Rust-1.4.md | 1 + posts/2015-12-10-Rust-1.5.md | 1 + posts/2016-01-21-Rust-1.6.md | 1 + posts/2016-03-02-Rust-1.7.md | 1 + posts/2016-04-14-Rust-1.8.md | 1 + posts/2016-04-19-MIR.md | 1 + posts/2016-05-05-cargo-pillars.md | 1 + posts/2016-05-09-survey.md | 1 + posts/2016-05-13-rustup.md | 1 + posts/2016-05-16-rust-at-one-year.md | 1 + posts/2016-05-26-Rust-1.9.md | 1 + posts/2016-06-30-State-of-Rust-Survey-2016.md | 1 + posts/2016-07-07-Rust-1.10.md | 1 + posts/2016-07-25-conf-lineup.md | 1 + posts/2016-08-10-Shape-of-errors-to-come.md | 1 + posts/2016-08-18-Rust-1.11.md | 1 + posts/2016-09-08-incremental.md | 1 + posts/2016-09-29-Rust-1.12.md | 1 + posts/2016-10-20-Rust-1.12.1.md | 1 + posts/2016-11-10-Rust-1.13.md | 1 + posts/2016-12-15-Underhanded-Rust.md | 1 + posts/2016-12-22-Rust-1.14.md | 1 + posts/2017-02-02-Rust-1.15.md | 1 + posts/2017-02-06-roadmap.md | 1 + posts/2017-02-09-Rust-1.15.1.md | 1 + posts/2017-03-02-lang-ergonomics.md | 1 + posts/2017-03-16-Rust-1.16.md | 1 + posts/2017-04-27-Rust-1.17.md | 1 + posts/2017-05-03-survey.md | 1 + posts/2017-05-05-libz-blitz.md | 1 + posts/2017-05-15-rust-at-two-years.md | 1 + posts/2017-06-08-Rust-1.18.md | 1 + posts/2017-06-27-Increasing-Rusts-Reach.md | 1 + posts/2017-07-05-Rust-Roadmap-Update.md | 1 + posts/2017-07-18-conf-lineup.md | 1 + posts/2017-07-20-Rust-1.19.md | 1 + posts/2017-08-31-Rust-1.20.md | 1 + posts/2017-09-05-Rust-2017-Survey-Results.md | 1 + posts/2017-09-18-impl-future-for-rust.md | 1 + posts/2017-10-12-Rust-1.21.md | 1 + posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md | 1 + posts/2017-11-22-Rust-1.22.md | 1 + posts/2017-12-21-rust-in-2017.md | 1 + .../2018-01-03-new-years-rust-a-call-for-community-blogposts.md | 1 + posts/2018-01-04-Rust-1.23.md | 1 + posts/2018-01-31-The-2018-Rust-Event-Lineup.md | 1 + posts/2018-02-15-Rust-1.24.md | 1 + posts/2018-03-01-Rust-1.24.1.md | 1 + posts/2018-03-12-roadmap.md | 1 + posts/2018-03-29-Rust-1.25.md | 1 + posts/2018-04-02-Increasing-Rusts-Reach-2018.md | 1 + posts/2018-04-06-all-hands.md | 1 + posts/2018-05-10-Rust-1.26.md | 1 + posts/2018-05-15-Rust-turns-three.md | 1 + posts/2018-05-29-Rust-1.26.1.md | 1 + posts/2018-06-05-Rust-1.26.2.md | 1 + posts/2018-06-21-Rust-1.27.md | 1 + posts/2018-07-06-security-advisory-for-rustdoc.md | 1 + posts/2018-07-10-Rust-1.27.1.md | 1 + posts/2018-07-20-Rust-1.27.2.md | 1 + posts/2018-07-27-what-is-rust-2018.md | 1 + posts/2018-08-02-Rust-1.28.md | 1 + posts/2018-08-08-survey.md | 1 + posts/2018-09-13-Rust-1.29.md | 1 + posts/2018-09-21-Security-advisory-for-std.md | 1 + posts/2018-09-25-Rust-1.29.1.md | 1 + posts/2018-10-12-Rust-1.29.2.md | 1 + posts/2018-10-19-Update-on-crates.io-incident.md | 1 + posts/2018-10-25-Rust-1.30.0.md | 1 + posts/2018-10-30-help-test-rust-2018.md | 1 + posts/2018-11-08-Rust-1.30.1.md | 1 + posts/2018-11-27-Rust-survey-2018.md | 1 + posts/2018-11-29-a-new-look-for-rust-lang-org.md | 1 + posts/2018-12-06-Rust-1.31-and-rust-2018.md | 1 + posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md | 1 + posts/2018-12-17-Rust-2018-dev-tools.md | 1 + posts/2018-12-20-Rust-1.31.1.md | 1 + posts/2018-12-21-Procedural-Macros-in-Rust-2018.md | 1 + posts/2019-01-17-Rust-1.32.0.md | 1 + posts/2019-02-22-Core-team-changes.md | 1 + posts/2019-02-28-Rust-1.33.0.md | 1 + posts/2019-04-11-Rust-1.34.0.md | 1 + posts/2019-04-23-roadmap.md | 1 + posts/2019-04-25-Rust-1.34.1.md | 1 + posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md | 1 + posts/2019-05-13-Security-advisory.md | 1 + posts/2019-05-14-Rust-1.34.2.md | 1 + posts/2019-05-15-4-Years-Of-Rust.md | 1 + posts/2019-05-20-The-2019-Rust-Event-Lineup.md | 1 + posts/2019-05-23-Rust-1.35.0.md | 1 + posts/2019-06-03-governance-wg-announcement.md | 1 + posts/2019-07-04-Rust-1.36.0.md | 1 + posts/2019-08-15-Rust-1.37.0.md | 1 + posts/2019-09-18-upcoming-docsrs-changes.md | 1 + posts/2019-09-26-Rust-1.38.0.md | 1 + posts/2019-09-30-Async-await-hits-beta.md | 1 + posts/2019-09-30-Security-advisory-for-cargo.md | 1 + posts/2019-10-03-inside-rust-blog.md | 1 + posts/2019-10-15-Rustup-1.20.0.md | 1 + posts/2019-10-29-A-call-for-blogs-2020.md | 1 + posts/2019-11-01-nll-hard-errors.md | 1 + posts/2019-11-07-Async-await-stable.md | 1 + posts/2019-11-07-Rust-1.39.0.md | 1 + posts/2019-12-03-survey-launch.md | 1 + posts/2019-12-19-Rust-1.40.0.md | 1 + posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md | 1 + posts/2020-01-30-Rust-1.41.0.md | 1 + posts/2020-01-31-conf-lineup.md | 1 + posts/2020-02-27-Rust-1.41.1.md | 1 + posts/2020-03-10-rustconf-cfp.md | 1 + posts/2020-03-12-Rust-1.42.md | 1 + posts/2020-03-15-docs-rs-opt-into-fewer-targets.md | 1 + posts/2020-04-17-Rust-survey-2019.md | 1 + posts/2020-04-23-Rust-1.43.0.md | 1 + posts/2020-05-07-Rust.1.43.1.md | 1 + posts/2020-05-15-five-years-of-rust.md | 1 + posts/2020-06-04-Rust-1.44.0.md | 1 + posts/2020-06-10-event-lineup-update.md | 1 + posts/2020-06-18-Rust.1.44.1.md | 1 + posts/2020-07-06-Rustup-1.22.0.md | 1 + posts/2020-07-08-Rustup-1.22.1.md | 1 + posts/2020-07-14-crates-io-security-advisory.md | 1 + posts/2020-07-16-Rust-1.45.0.md | 1 + posts/2020-07-30-Rust-1.45.1.md | 1 + posts/2020-08-03-Rust-1.45.2.md | 1 + posts/2020-08-18-laying-the-foundation-for-rusts-future.md | 1 + posts/2020-08-27-Rust-1.46.0.md | 1 + posts/2020-09-03-Planning-2021-Roadmap.md | 1 + posts/2020-09-10-survey-launch.md | 1 + posts/2020-09-14-wg-prio-call-for-contributors.md | 1 + posts/2020-09-21-Scheduling-2021-Roadmap.md | 1 + posts/2020-10-08-Rust-1.47.md | 1 + posts/2020-10-20-regression-labels.md | 1 + posts/2020-11-19-Rust-1.48.md | 1 + posts/2020-11-27-Rustup-1.23.0.md | 1 + posts/2020-12-07-the-foundation-conversation.md | 1 + posts/2020-12-11-lock-poisoning-survey.md | 1 + posts/2020-12-14-Next-steps-for-the-foundation-conversation.md | 1 + posts/2020-12-16-rust-survey-2020.md | 1 + posts/2020-12-31-Rust-1.49.0.md | 1 + posts/2021-01-04-mdbook-security-advisory.md | 1 + posts/2021-02-11-Rust-1.50.0.md | 1 + posts/2021-02-26-const-generics-mvp-beta.md | 1 + posts/2021-03-18-async-vision-doc.md | 1 + posts/2021-03-25-Rust-1.51.0.md | 1 + posts/2021-04-14-async-vision-doc-shiny-future.md | 1 + posts/2021-04-27-Rustup-1.24.0.md | 1 + posts/2021-04-29-Rustup-1.24.1.md | 1 + posts/2021-05-06-Rust-1.52.0.md | 1 + posts/2021-05-10-Rust-1.52.1.md | 1 + posts/2021-05-11-edition-2021.md | 1 + posts/2021-05-15-six-years-of-rust.md | 1 + posts/2021-05-17-Rustup-1.24.2.md | 1 + posts/2021-06-08-Rustup-1.24.3.md | 1 + posts/2021-06-17-Rust-1.53.0.md | 1 + posts/2021-07-21-Rust-2021-public-testing.md | 1 + posts/2021-07-29-Rust-1.54.0.md | 1 + posts/2021-08-03-GATs-stabilization-push.md | 1 + posts/2021-09-09-Rust-1.55.0.md | 1 + posts/2021-09-27-Core-team-membership-updates.md | 1 + posts/2021-10-21-Rust-1.56.0.md | 1 + posts/2021-11-01-Rust-1.56.1.md | 1 + posts/2021-11-01-cve-2021-42574.md | 1 + posts/2021-12-02-Rust-1.57.0.md | 1 + posts/2021-12-08-survey-launch.md | 1 + posts/2022-01-13-Rust-1.58.0.md | 1 + posts/2022-01-20-Rust-1.58.1.md | 1 + posts/2022-01-20-cve-2022-21658.md | 1 + posts/2022-01-31-changes-in-the-core-team.md | 1 + posts/2022-02-14-crates-io-snapshot-branches.md | 1 + posts/2022-02-15-Rust-Survey-2021.md | 1 + posts/2022-02-21-rust-analyzer-joins-rust-org.md | 1 + posts/2022-02-24-Rust-1.59.0.md | 1 + posts/2022-03-08-cve-2022-24713.md | 1 + posts/2022-04-07-Rust-1.60.0.md | 1 + posts/2022-05-10-malicious-crate-rustdecimal.md | 1 + posts/2022-05-19-Rust-1.61.0.md | 1 + posts/2022-06-22-sparse-registry-testing.md | 1 + posts/2022-06-28-rust-unconference.md | 1 + posts/2022-06-30-Rust-1.62.0.md | 1 + posts/2022-07-01-RLS-deprecation.md | 1 + posts/2022-07-11-Rustup-1.25.0.md | 1 + posts/2022-07-12-Rustup-1.25.1.md | 1 + posts/2022-07-12-changes-in-the-core-team.md | 1 + posts/2022-07-19-Rust-1.62.1.md | 1 + posts/2022-08-01-Increasing-glibc-kernel-requirements.md | 1 + posts/2022-08-05-nll-by-default.md | 1 + posts/2022-08-11-Rust-1.63.0.md | 1 + posts/2022-09-14-cargo-cves.md | 1 + posts/2022-09-15-const-eval-safety-rule-revision.md | 1 + posts/2022-09-22-Rust-1.64.0.md | 1 + posts/2022-10-28-gats-stabilization.md | 1 + posts/2022-11-03-Rust-1.65.0.md | 1 + posts/2022-12-05-survey-launch.md | 1 + posts/2022-12-15-Rust-1.66.0.md | 1 + posts/2023-01-09-android-ndk-update-r25.md | 1 + posts/2023-01-10-Rust-1.66.1.md | 1 + posts/2023-01-10-cve-2022-46176.md | 1 + posts/2023-01-20-types-announcement.md | 1 + posts/2023-01-26-Rust-1.67.0.md | 1 + posts/2023-02-01-Rustup-1.25.2.md | 1 + posts/2023-02-09-Rust-1.67.1.md | 1 + posts/2023-03-09-Rust-1.68.0.md | 1 + posts/2023-03-23-Rust-1.68.1.md | 1 + posts/2023-03-28-Rust-1.68.2.md | 1 + posts/2023-04-20-Rust-1.69.0.md | 1 + posts/2023-04-25-Rustup-1.26.0.md | 1 + posts/2023-05-09-Updating-musl-targets.md | 1 + posts/2023-05-29-RustConf.md | 1 + posts/2023-06-01-Rust-1.70.0.md | 1 + posts/2023-06-20-introducing-leadership-council.md | 1 + posts/2023-06-23-improved-api-tokens-for-crates-io.md | 1 + posts/2023-07-01-rustfmt-supports-let-else-statements.md | 1 + posts/2023-07-05-regex-1.9.md | 1 + posts/2023-07-13-Rust-1.71.0.md | 1 + posts/2023-08-03-Rust-1.71.1.md | 1 + posts/2023-08-03-cve-2023-38497.md | 1 + posts/2023-08-07-Rust-Survey-2023-Results.md | 1 + posts/2023-08-24-Rust-1.72.0.md | 1 + posts/2023-08-29-committing-lockfiles.md | 1 + posts/2023-08-30-electing-new-project-directors.md | 1 + posts/2023-09-19-Rust-1.72.1.md | 1 + posts/2023-09-22-crates-io-usage-policy-rfc.md | 1 + posts/2023-09-25-Increasing-Apple-Version-Requirements.md | 1 + posts/2023-10-05-Rust-1.73.0.md | 1 + posts/2023-10-19-announcing-the-new-rust-project-directors.md | 1 + posts/2023-10-26-broken-badges-and-23k-keywords.md | 1 + posts/2023-10-27-crates-io-non-canonical-downloads.md | 1 + posts/2023-11-09-parallel-rustc.md | 1 + posts/2023-11-16-Rust-1.74.0.md | 1 + posts/2023-12-07-Rust-1.74.1.md | 1 + posts/2023-12-11-cargo-cache-cleaning.md | 1 + posts/2023-12-15-2024-Edition-CFP.md | 1 + posts/2023-12-18-survey-launch.md | 1 + posts/2023-12-21-async-fn-rpit-in-traits.md | 1 + posts/2023-12-28-Rust-1.75.0.md | 1 + posts/2024-02-06-crates-io-status-codes.md | 1 + posts/2024-02-08-Rust-1.76.0.md | 1 + posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md | 1 + posts/2024-02-21-Rust-participates-in-GSoC-2024.md | 1 + posts/2024-02-26-Windows-7.md | 1 + posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md | 1 + posts/2024-03-11-Rustup-1.27.0.md | 1 + posts/2024-03-11-crates-io-download-changes.md | 1 + posts/2024-03-21-Rust-1.77.0.md | 1 + posts/2024-03-28-Rust-1.77.1.md | 1 + posts/2024-03-30-i128-layout-update.md | 1 + posts/2024-04-09-Rust-1.77.2.md | 1 + posts/2024-04-09-cve-2024-24576.md | 1 + posts/2024-04-09-updates-to-rusts-wasi-targets.md | 1 + posts/2024-05-01-gsoc-2024-selected-projects.md | 1 + posts/2024-05-02-Rust-1.78.0.md | 1 + posts/2024-05-06-Rustup-1.27.1.md | 1 + posts/2024-05-06-check-cfg.md | 1 + posts/2024-05-07-OSPP-2024.md | 1 + posts/2024-05-17-enabling-rust-lld-on-linux.md | 1 + posts/2024-06-13-Rust-1.79.0.md | 1 + posts/2024-06-26-types-team-update.md | 1 + posts/2024-07-25-Rust-1.80.0.md | 1 + posts/2024-07-29-crates-io-development-update.md | 1 + posts/2024-08-08-Rust-1.80.1.md | 1 + posts/2024-08-12-Project-goals.md | 1 + posts/2024-08-26-council-survey.md | 1 + posts/2024-09-04-cve-2024-43402.md | 1 + posts/2024-09-05-Rust-1.81.0.md | 1 + posts/2024-09-05-impl-trait-capture-rules.md | 1 + posts/2024-09-23-Project-Goals-Sep-Update.md | 1 + ...9-24-webassembly-targets-change-in-default-target-features.md | 1 + posts/2024-10-17-Rust-1.82.0.md | 1 + posts/2024-10-31-project-goals-oct-update.md | 1 + posts/2024-11-06-trademark-update.md | 1 + posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md | 1 + posts/2024-11-07-gsoc-2024-results.md | 1 + posts/2024-11-26-wasip2-tier-2.md | 1 + posts/2024-11-27-Rust-2024-public-testing.md | 1 + posts/2024-11-28-Rust-1.83.0.md | 1 + posts/2024-12-05-annual-survey-2024-launch.md | 1 + posts/2024-12-16-project-goals-nov-update.md | 1 + posts/2025-01-09-Rust-1.84.0.md | 1 + posts/2025-01-22-rust-2024-beta.md | 1 + posts/2025-01-23-Project-Goals-Dec-Update.md | 1 + posts/2025-01-30-Rust-1.84.1.md | 1 + posts/2025-02-05-crates-io-development-update.md | 1 + posts/2025-02-13-2024-State-Of-Rust-Survey-results.md | 1 + posts/2025-02-20-Rust-1.85.0.md | 1 + posts/2025-03-02-Rustup-1.28.0.md | 1 + posts/2025-03-03-Project-Goals-Feb-Update.md | 1 + posts/2025-03-03-Rust-participates-in-GSoC-2025.md | 1 + posts/2025-03-04-Rustup-1.28.1.md | 1 + posts/inside-rust/2019-09-25-Welcome.md | 1 + .../2019-10-03-Keeping-secure-with-cargo-audit-0.9.md | 1 + posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md | 1 + .../2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md | 1 + posts/inside-rust/2019-10-11-Lang-Team-Meeting.md | 1 + posts/inside-rust/2019-10-15-compiler-team-meeting.md | 1 + posts/inside-rust/2019-10-15-infra-team-meeting.md | 1 + .../2019-10-17-ecstatic-morse-for-compiler-contributors.md | 1 + posts/inside-rust/2019-10-21-compiler-team-meeting.md | 1 + posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md | 1 + posts/inside-rust/2019-10-22-infra-team-meeting.md | 1 + posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md | 1 + posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md | 1 + posts/inside-rust/2019-10-25-planning-meeting-update.md | 1 + .../2019-10-28-rustc-learning-working-group-introduction.md | 1 + posts/inside-rust/2019-10-29-infra-team-meeting.md | 1 + posts/inside-rust/2019-10-30-compiler-team-meeting.md | 1 + posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md | 1 + posts/inside-rust/2019-11-06-infra-team-meeting.md | 1 + posts/inside-rust/2019-11-07-compiler-team-meeting.md | 1 + posts/inside-rust/2019-11-11-compiler-team-meeting.md | 1 + posts/inside-rust/2019-11-13-goverance-wg-cfp.md | 1 + posts/inside-rust/2019-11-14-evaluating-github-actions.md | 1 + posts/inside-rust/2019-11-18-infra-team-meeting.md | 1 + posts/inside-rust/2019-11-19-compiler-team-meeting.md | 1 + posts/inside-rust/2019-11-19-infra-team-meeting.md | 1 + posts/inside-rust/2019-11-22-Lang-team-meeting.md | 1 + .../2019-11-22-upcoming-compiler-team-design-meetings.md | 1 + posts/inside-rust/2019-11-25-const-if-match.md | 1 + posts/inside-rust/2019-12-02-const-prop-on-by-default.md | 1 + posts/inside-rust/2019-12-03-governance-wg-meeting.md | 1 + posts/inside-rust/2019-12-04-ide-future.md | 1 + posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md | 1 + posts/inside-rust/2019-12-10-governance-wg-meeting.md | 1 + posts/inside-rust/2019-12-11-infra-team-meeting.md | 1 + posts/inside-rust/2019-12-18-bisecting-rust-compiler.md | 1 + .../2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md | 1 + posts/inside-rust/2019-12-20-governance-wg-meeting.md | 1 + posts/inside-rust/2019-12-20-infra-team-meeting.md | 1 + posts/inside-rust/2019-12-20-wg-learning-update.md | 1 + posts/inside-rust/2019-12-23-formatting-the-compiler.md | 1 + posts/inside-rust/2020-01-10-cargo-in-2020.md | 1 + posts/inside-rust/2020-01-10-lang-team-design-meetings.md | 1 + posts/inside-rust/2020-01-14-Goverance-wg-cfp.md | 1 + .../2020-01-23-Introducing-cargo-audit-fix-and-more.md | 1 + posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md | 1 + .../2020-01-24-upcoming-compiler-team-design-meetings.md | 1 + posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md | 1 + posts/inside-rust/2020-02-07-compiler-team-meeting.md | 1 + posts/inside-rust/2020-02-11-Goverance-wg.md | 1 + .../2020-02-14-upcoming-compiler-team-design-meetings.md | 1 + posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md | 1 + posts/inside-rust/2020-02-25-intro-rustc-self-profile.md | 1 + posts/inside-rust/2020-02-26-crates-io-incident-report.md | 1 + posts/inside-rust/2020-02-27-Goverance-wg.md | 1 + posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md | 1 + posts/inside-rust/2020-02-27-pietro-joins-core-team.md | 1 + .../2020-03-04-recent-future-pattern-matching-improvements.md | 1 + posts/inside-rust/2020-03-11-lang-team-design-meetings.md | 1 + posts/inside-rust/2020-03-13-rename-rustc-guide.md | 1 + posts/inside-rust/2020-03-13-twir-new-lead.md | 1 + .../2020-03-13-upcoming-compiler-team-design-meetings.md | 1 + posts/inside-rust/2020-03-17-governance-wg.md | 1 + posts/inside-rust/2020-03-18-all-hands-retrospective.md | 1 + posts/inside-rust/2020-03-19-terminating-rust.md | 1 + posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md | 1 + posts/inside-rust/2020-03-27-goodbye-docs-team.md | 1 + posts/inside-rust/2020-03-28-traits-sprint-1.md | 1 + .../2020-04-07-update-on-the-github-actions-evaluation.md | 1 + posts/inside-rust/2020-04-10-lang-team-design-meetings.md | 1 + .../2020-04-10-upcoming-compiler-team-design-meeting.md | 1 + posts/inside-rust/2020-04-14-Governance-WG-updated.md | 1 + posts/inside-rust/2020-04-23-Governance-wg.md | 1 + posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md | 1 + posts/inside-rust/2020-05-18-traits-sprint-2.md | 1 + posts/inside-rust/2020-05-26-website-retrospective.md | 1 + posts/inside-rust/2020-05-27-contributor-survey.md | 1 + posts/inside-rust/2020-06-08-new-inline-asm.md | 1 + .../2020-06-08-upcoming-compiler-team-design-meeting.md | 1 + posts/inside-rust/2020-06-09-windows-notification-group.md | 1 + posts/inside-rust/2020-06-29-lto-improvements.md | 1 + posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md | 1 + posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md | 1 + posts/inside-rust/2020-07-09-lang-team-path-to-membership.md | 1 + posts/inside-rust/2020-07-17-traits-sprint-3.md | 1 + .../2020-07-23-rust-ci-is-moving-to-github-actions.md | 1 + posts/inside-rust/2020-07-27-1.45.1-prerelease.md | 1 + posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md | 1 + .../2020-07-29-lang-team-design-meeting-min-const-generics.md | 1 + .../inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md | 1 + posts/inside-rust/2020-08-24-1.46.0-prerelease.md | 1 + .../2020-08-28-upcoming-compiler-team-design-meetings.md | 1 + posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md | 1 + posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md | 1 + posts/inside-rust/2020-09-18-error-handling-wg-announcement.md | 1 + posts/inside-rust/2020-09-29-Portable-SIMD-PG.md | 1 + posts/inside-rust/2020-10-06-1.47.0-prerelease.md | 1 + posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md | 1 + posts/inside-rust/2020-10-16-Backlog-Bonanza.md | 1 + posts/inside-rust/2020-10-23-Core-team-membership.md | 1 + .../2020-11-11-exploring-pgo-for-the-rust-compiler.md | 1 + posts/inside-rust/2020-11-12-source-based-code-coverage.md | 1 + posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md | 1 + posts/inside-rust/2020-11-16-1.48.0-prerelease.md | 1 + ...-11-23-What-the-error-handling-project-group-is-working-on.md | 1 + posts/inside-rust/2020-12-14-changes-to-compiler-team.md | 1 + ...020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md | 1 + posts/inside-rust/2020-12-29-1.49.0-prerelease.md | 1 + posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md | 1 + posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md | 1 + posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md | 1 + .../2021-02-01-davidtwco-jackhuey-compiler-members.md | 1 + posts/inside-rust/2021-02-03-lang-team-feb-update.md | 1 + posts/inside-rust/2021-02-09-1.50.0-prerelease.md | 1 + posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md | 1 + posts/inside-rust/2021-03-03-lang-team-mar-update.md | 1 + posts/inside-rust/2021-03-04-planning-rust-2021.md | 1 + posts/inside-rust/2021-03-23-1.51.0-prerelease.md | 1 + posts/inside-rust/2021-04-03-core-team-updates.md | 1 + .../inside-rust/2021-04-15-compiler-team-april-steering-cycle.md | 1 + posts/inside-rust/2021-04-17-lang-team-apr-update.md | 1 + posts/inside-rust/2021-04-20-jsha-rustdoc-member.md | 1 + posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md | 1 + posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md | 1 + posts/inside-rust/2021-05-04-1.52.0-prerelease.md | 1 + posts/inside-rust/2021-05-04-core-team-update.md | 1 + posts/inside-rust/2021-06-15-1.53.0-prelease.md | 1 + ...6-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md | 1 + .../inside-rust/2021-06-23-compiler-team-june-steering-cycle.md | 1 + ...1-What-the-error-handling-project-group-is-working-towards.md | 1 + .../inside-rust/2021-07-02-compiler-team-july-steering-cycle.md | 1 + posts/inside-rust/2021-07-12-Lang-team-july-update.md | 1 + posts/inside-rust/2021-07-26-1.54.0-prerelease.md | 1 + .../2021-07-30-compiler-team-august-steering-cycle.md | 1 + posts/inside-rust/2021-08-04-lang-team-aug-update.md | 1 + posts/inside-rust/2021-09-06-Splitting-const-generics.md | 1 + posts/inside-rust/2021-09-07-1.55.0-prerelease.md | 1 + posts/inside-rust/2021-10-08-Lang-team-Oct-update.md | 1 + posts/inside-rust/2021-10-18-1.56.0-prerelease.md | 1 + .../inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md | 1 + .../2021-11-25-in-response-to-the-moderation-team-resignation.md | 1 + posts/inside-rust/2021-11-30-1.57.0-prerelease.md | 1 + .../inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md | 1 + posts/inside-rust/2022-01-11-1.58.0-prerelease.md | 1 + posts/inside-rust/2022-01-18-jan-steering-cycle.md | 1 + posts/inside-rust/2022-02-03-async-in-2022.md | 1 + posts/inside-rust/2022-02-11-CTCFT-february.md | 1 + posts/inside-rust/2022-02-17-feb-steering-cycle.md | 1 + posts/inside-rust/2022-02-18-lang-team-feb-update.md | 1 + posts/inside-rust/2022-02-22-1.59.0-prerelease.md | 1 + posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md | 1 + posts/inside-rust/2022-03-09-lang-team-mar-update.md | 1 + posts/inside-rust/2022-03-11-mar-steering-cycle.md | 1 + posts/inside-rust/2022-03-16-CTCFT-march.md | 1 + posts/inside-rust/2022-03-31-cargo-team-changes.md | 1 + posts/inside-rust/2022-04-04-1.60.0-prerelease.md | 1 + posts/inside-rust/2022-04-04-lang-roadmap-2024.md | 1 + posts/inside-rust/2022-04-06-lang-team-april-update.md | 1 + posts/inside-rust/2022-04-12-CTCFT-april.md | 1 + posts/inside-rust/2022-04-15-apr-steering-cycle.md | 1 + posts/inside-rust/2022-04-18-libs-contributors.md | 1 + posts/inside-rust/2022-04-19-imposter-syndrome.md | 1 + posts/inside-rust/2022-04-20-libs-aspirations.md | 1 + posts/inside-rust/2022-05-10-CTCFT-may.md | 1 + posts/inside-rust/2022-05-16-1.61.0-prerelease.md | 1 + posts/inside-rust/2022-05-19-governance-update.md | 1 + posts/inside-rust/2022-05-26-Concluding-events-mods.md | 1 + posts/inside-rust/2022-06-03-jun-steering-cycle.md | 1 + posts/inside-rust/2022-06-21-survey-2021-report.md | 1 + posts/inside-rust/2022-06-28-1.62.0-prerelease.md | 1 + posts/inside-rust/2022-07-13-clippy-team-changes.md | 1 + posts/inside-rust/2022-07-16-1.62.1-prerelease.md | 1 + posts/inside-rust/2022-07-27-keyword-generics.md | 1 + .../inside-rust/2022-08-08-compiler-team-2022-midyear-report.md | 1 + posts/inside-rust/2022-08-09-1.63.0-prerelease.md | 1 + posts/inside-rust/2022-08-10-libs-contributors.md | 1 + posts/inside-rust/2022-08-16-diagnostic-effort.md | 1 + posts/inside-rust/2022-09-19-1.64.0-prerelease.md | 1 + .../2022-09-23-compiler-team-sep-oct-steering-cycle.md | 1 + posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md | 1 + posts/inside-rust/2022-10-06-governance-update.md | 1 + posts/inside-rust/2022-10-31-1.65.0-prerelease.md | 1 + posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md | 1 + posts/inside-rust/2022-11-29-libs-member.md | 1 + posts/inside-rust/2022-12-12-1.66.0-prerelease.md | 1 + posts/inside-rust/2023-01-24-content-delivery-networks.md | 1 + posts/inside-rust/2023-01-25-1.67.0-prerelease.md | 1 + posts/inside-rust/2023-01-30-cargo-sparse-protocol.md | 1 + posts/inside-rust/2023-02-07-1.67.1-prerelease.md | 1 + posts/inside-rust/2023-02-08-dns-outage-portmortem.md | 1 + posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md | 1 + posts/inside-rust/2023-02-14-lang-advisors.md | 1 + posts/inside-rust/2023-02-14-lang-team-membership-update.md | 1 + posts/inside-rust/2023-02-22-governance-reform-rfc.md | 1 + .../2023-02-23-keyword-generics-progress-report-feb-2023.md | 1 + posts/inside-rust/2023-03-06-1.68.0-prerelease.md | 1 + posts/inside-rust/2023-03-20-1.68.1-prerelease.md | 1 + posts/inside-rust/2023-03-27-1.68.2-prerelease.md | 1 + posts/inside-rust/2023-04-06-cargo-new-members.md | 1 + posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md | 1 + posts/inside-rust/2023-04-17-1.69.0-prerelease.md | 1 + posts/inside-rust/2023-05-01-cargo-postmortem.md | 1 + posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md | 1 + posts/inside-rust/2023-05-09-api-token-scopes.md | 1 + posts/inside-rust/2023-05-29-1.70.0-prerelease.md | 1 + posts/inside-rust/2023-07-10-1.71.0-prerelease.md | 1 + posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md | 1 + posts/inside-rust/2023-07-21-crates-io-postmortem.md | 1 + posts/inside-rust/2023-07-25-leadership-council-update.md | 1 + posts/inside-rust/2023-08-01-1.71.1-prerelease.md | 1 + posts/inside-rust/2023-08-02-rotating-compiler-leads.md | 1 + posts/inside-rust/2023-08-21-1.72.0-prerelease.md | 1 + posts/inside-rust/2023-08-24-cargo-config-merging.md | 1 + posts/inside-rust/2023-08-25-leadership-initiatives.md | 1 + .../2023-08-29-leadership-council-membership-changes.md | 1 + posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md | 1 + .../2023-09-04-keeping-secure-with-cargo-audit-0.18.md | 1 + posts/inside-rust/2023-09-08-infra-team-leadership-change.md | 1 + posts/inside-rust/2023-09-14-1.72.1-prerelease.md | 1 + posts/inside-rust/2023-09-22-project-director-nominees.md | 1 + posts/inside-rust/2023-10-03-1.73.0-prerelease.md | 1 + posts/inside-rust/2023-10-06-polonius-update.md | 1 + posts/inside-rust/2023-10-23-coroutines.md | 1 + posts/inside-rust/2023-11-13-1.74.0-prerelease.md | 1 + posts/inside-rust/2023-11-13-leadership-council-update.md | 1 + posts/inside-rust/2023-11-15-spec-vision.md | 1 + posts/inside-rust/2023-12-05-1.74.1-prerelease.md | 1 + posts/inside-rust/2023-12-21-1.75.0-prerelease.md | 1 + posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md | 1 + .../2024-01-03-this-development-cycle-in-cargo-1-76.md | 1 + posts/inside-rust/2024-02-04-1.76.0-prerelease.md | 1 + posts/inside-rust/2024-02-13-lang-team-colead.md | 1 + posts/inside-rust/2024-02-13-leadership-council-update.md | 1 + .../2024-02-13-this-development-cycle-in-cargo-1-77.md | 1 + .../inside-rust/2024-02-19-leadership-council-repr-selection.md | 1 + posts/inside-rust/2024-03-17-1.77.0-prerelease.md | 1 + posts/inside-rust/2024-03-22-2024-edition-update.md | 1 + .../2024-03-26-this-development-cycle-in-cargo-1.78.md | 1 + posts/inside-rust/2024-03-27-1.77.1-prerelease.md | 1 + .../inside-rust/2024-04-01-leadership-council-repr-selection.md | 1 + posts/inside-rust/2024-04-12-types-team-leadership.md | 1 + posts/inside-rust/2024-05-07-announcing-project-goals.md | 1 + .../2024-05-07-this-development-cycle-in-cargo-1.79.md | 1 + posts/inside-rust/2024-05-09-rust-leads-summit.md | 1 + posts/inside-rust/2024-05-14-leadership-council-update.md | 1 + posts/inside-rust/2024-05-28-launching-pad-representative.md | 1 + .../2024-06-19-this-development-cycle-in-cargo-1.80.md | 1 + posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md | 1 + posts/inside-rust/2024-08-09-async-closures-call-for-testing.md | 1 + .../2024-08-15-this-development-cycle-in-cargo-1.81.md | 1 + .../inside-rust/2024-08-20-leadership-council-repr-selection.md | 1 + posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md | 1 + posts/inside-rust/2024-09-02-all-hands.md | 1 + posts/inside-rust/2024-09-06-electing-new-project-directors.md | 1 + posts/inside-rust/2024-09-06-leadership-council-update.md | 1 + posts/inside-rust/2024-09-26-rtn-call-for-testing.md | 1 + .../inside-rust/2024-09-27-leadership-council-repr-selection.md | 1 + .../2024-10-01-this-development-cycle-in-cargo-1.82.md | 1 + posts/inside-rust/2024-10-10-test-infra-oct-2024.md | 1 + .../2024-10-31-this-development-cycle-in-cargo-1.83.md | 1 + posts/inside-rust/2024-11-01-compiler-team-reorg.md | 1 + .../2024-11-04-project-goals-2025h1-call-for-proposals.md | 1 + posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md | 1 + posts/inside-rust/2024-11-12-compiler-team-new-members.md | 1 + posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md | 1 + posts/inside-rust/2024-12-09-leadership-council-update.md | 1 + posts/inside-rust/2024-12-09-test-infra-nov-2024.md | 1 + .../2024-12-13-this-development-cycle-in-cargo-1.84.md | 1 + posts/inside-rust/2024-12-17-project-director-update.md | 1 + posts/inside-rust/2025-01-10-test-infra-dec-2024.md | 1 + .../2025-01-17-this-development-cycle-in-cargo-1.85.md | 1 + posts/inside-rust/2025-01-30-project-director-update.md | 1 + .../inside-rust/2025-02-14-leadership-council-repr-selection.md | 1 + posts/inside-rust/2025-02-24-project-director-update.md | 1 + posts/inside-rust/2025-02-27-relnotes-interest-group.md | 1 + .../2025-02-27-this-development-cycle-in-cargo-1.86.md | 1 + posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md | 1 + 584 files changed, 584 insertions(+) diff --git a/posts/2014-09-15-Rust-1.0.md b/posts/2014-09-15-Rust-1.0.md index 45055a940..6fff70359 100644 --- a/posts/2014-09-15-Rust-1.0.md +++ b/posts/2014-09-15-Rust-1.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2014-09-15 title = "Road to Rust 1.0" author = "Niko Matsakis" description = "Rust 1.0 is on its way! We have nailed down a concrete list of features and are hard at work on implementing them." diff --git a/posts/2014-10-30-Stability.md b/posts/2014-10-30-Stability.md index fc8be71ab..7650226a8 100644 --- a/posts/2014-10-30-Stability.md +++ b/posts/2014-10-30-Stability.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2014-10-30 title = "Stability as a Deliverable" author = "Aaron Turon and Niko Matsakis" description = "The upcoming Rust 1.0 release means a lot, but most fundamentally it is a commitment to stability, alongside our long-running commitment to safety." diff --git a/posts/2014-11-20-Cargo.md b/posts/2014-11-20-Cargo.md index c8ce953fa..9a1dd5d72 100644 --- a/posts/2014-11-20-Cargo.md +++ b/posts/2014-11-20-Cargo.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2014-11-20 title = "Cargo: Rust's community crate host" author = "Alex Crichton" description = "Today it is my pleasure to announce that crates.io is online and ready for action." diff --git a/posts/2014-12-12-1.0-Timeline.md b/posts/2014-12-12-1.0-Timeline.md index 331778f4c..97e613572 100644 --- a/posts/2014-12-12-1.0-Timeline.md +++ b/posts/2014-12-12-1.0-Timeline.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2014-12-12 title = "Rust 1.0: Scheduling the trains" author = "Aaron Turon" description = "As 2014 is drawing to a close, it's time to begin the Rust 1.0 release cycle!" diff --git a/posts/2014-12-12-Core-Team.md b/posts/2014-12-12-Core-Team.md index 240ff79d7..59271b140 100644 --- a/posts/2014-12-12-Core-Team.md +++ b/posts/2014-12-12-Core-Team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2014-12-12 title = "Yehuda Katz and Steve Klabnik are joining the Rust Core Team" author = "Niko Matsakis" description = "I'm pleased to announce that Yehuda Katz and Steve Klabnik are joining the Rust core team." diff --git a/posts/2015-01-09-Rust-1.0-alpha.md b/posts/2015-01-09-Rust-1.0-alpha.md index d082c6ac8..f6e32c15e 100644 --- a/posts/2015-01-09-Rust-1.0-alpha.md +++ b/posts/2015-01-09-Rust-1.0-alpha.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-01-09 title = "Announcing Rust 1.0 Alpha" author = "The Rust Core Team" +++ diff --git a/posts/2015-02-13-Final-1.0-timeline.md b/posts/2015-02-13-Final-1.0-timeline.md index 04ceccd2b..e88dc7676 100644 --- a/posts/2015-02-13-Final-1.0-timeline.md +++ b/posts/2015-02-13-Final-1.0-timeline.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-02-13 title = "Rust 1.0: status report and final timeline" author = "The Rust Core Team" +++ diff --git a/posts/2015-02-20-Rust-1.0-alpha2.md b/posts/2015-02-20-Rust-1.0-alpha2.md index ad909b6f4..8f1ea635c 100644 --- a/posts/2015-02-20-Rust-1.0-alpha2.md +++ b/posts/2015-02-20-Rust-1.0-alpha2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-02-20 title = "Announcing Rust 1.0.0.alpha.2" author = "Steve Klabnik" description = "Rust 1.0.0.alpha.2 has been released." diff --git a/posts/2015-04-03-Rust-1.0-beta.md b/posts/2015-04-03-Rust-1.0-beta.md index dadee3c0f..53622d93d 100644 --- a/posts/2015-04-03-Rust-1.0-beta.md +++ b/posts/2015-04-03-Rust-1.0-beta.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-04-03 title = "Announcing Rust 1.0 Beta" author = "The Rust Core Team" +++ diff --git a/posts/2015-04-10-Fearless-Concurrency.md b/posts/2015-04-10-Fearless-Concurrency.md index 6f6c82e86..23600a2cb 100644 --- a/posts/2015-04-10-Fearless-Concurrency.md +++ b/posts/2015-04-10-Fearless-Concurrency.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-04-10 title = "Fearless Concurrency with Rust" author = "Aaron Turon" description = "Rust's vision for concurrency" diff --git a/posts/2015-04-17-Enums-match-mutation-and-moves.md b/posts/2015-04-17-Enums-match-mutation-and-moves.md index 52fdc7cd8..f8da05510 100644 --- a/posts/2015-04-17-Enums-match-mutation-and-moves.md +++ b/posts/2015-04-17-Enums-match-mutation-and-moves.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-04-17 title = "Mixing matching, mutation, and moves in Rust" author = "Felix S. Klock II" description = "A tour of matching and enums in Rust." diff --git a/posts/2015-04-24-Rust-Once-Run-Everywhere.md b/posts/2015-04-24-Rust-Once-Run-Everywhere.md index 1665d37ca..1637e1252 100644 --- a/posts/2015-04-24-Rust-Once-Run-Everywhere.md +++ b/posts/2015-04-24-Rust-Once-Run-Everywhere.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-04-24 title = "Rust Once, Run Everywhere" author = "Alex Crichton" description = "Zero-cost and safe FFI in Rust" diff --git a/posts/2015-05-11-traits.md b/posts/2015-05-11-traits.md index b4c3903b4..64949217d 100644 --- a/posts/2015-05-11-traits.md +++ b/posts/2015-05-11-traits.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-05-11 title = "Abstraction without overhead: traits in Rust" author = "Aaron Turon" description = "The vision of Rust's traits for zero-cost abstraction" diff --git a/posts/2015-05-15-Rust-1.0.md b/posts/2015-05-15-Rust-1.0.md index 5af676d08..2d55fe50d 100644 --- a/posts/2015-05-15-Rust-1.0.md +++ b/posts/2015-05-15-Rust-1.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-05-15 title = "Announcing Rust 1.0" author = "The Rust Core Team" release = true diff --git a/posts/2015-06-25-Rust-1.1.md b/posts/2015-06-25-Rust-1.1.md index 524ad9f7f..a3c5f9fe1 100644 --- a/posts/2015-06-25-Rust-1.1.md +++ b/posts/2015-06-25-Rust-1.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-06-25 title = "Rust 1.1 stable, the Community Subteam, and RustCamp" author = "The Rust Core Team" release = true diff --git a/posts/2015-08-06-Rust-1.2.md b/posts/2015-08-06-Rust-1.2.md index 15dc1266b..30dc12e4a 100644 --- a/posts/2015-08-06-Rust-1.2.md +++ b/posts/2015-08-06-Rust-1.2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-08-06 title = "Announcing Rust 1.2" author = "The Rust Core Team" release = true diff --git a/posts/2015-08-14-Next-year.md b/posts/2015-08-14-Next-year.md index 65cbb832c..b289babc6 100644 --- a/posts/2015-08-14-Next-year.md +++ b/posts/2015-08-14-Next-year.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-08-14 title = "Rust in 2016" author = "Nicholas Matsakis and Aaron Turon" description = "Our vision for Rust's next year" diff --git a/posts/2015-09-17-Rust-1.3.md b/posts/2015-09-17-Rust-1.3.md index e12cd9aba..f86858cc1 100644 --- a/posts/2015-09-17-Rust-1.3.md +++ b/posts/2015-09-17-Rust-1.3.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-09-17 title = "Announcing Rust 1.3" author = "The Rust Core Team" release = true diff --git a/posts/2015-10-29-Rust-1.4.md b/posts/2015-10-29-Rust-1.4.md index d0cfffb04..7b5596f43 100644 --- a/posts/2015-10-29-Rust-1.4.md +++ b/posts/2015-10-29-Rust-1.4.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-10-29 title = "Announcing Rust 1.4" author = "The Rust Core Team" release = true diff --git a/posts/2015-12-10-Rust-1.5.md b/posts/2015-12-10-Rust-1.5.md index 5a44774fa..4c96aa5f9 100644 --- a/posts/2015-12-10-Rust-1.5.md +++ b/posts/2015-12-10-Rust-1.5.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2015-12-10 title = "Announcing Rust 1.5" author = "The Rust Core Team" release = true diff --git a/posts/2016-01-21-Rust-1.6.md b/posts/2016-01-21-Rust-1.6.md index e0f838d04..0f0804769 100644 --- a/posts/2016-01-21-Rust-1.6.md +++ b/posts/2016-01-21-Rust-1.6.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-01-21 title = "Announcing Rust 1.6" author = "The Rust Core Team" release = true diff --git a/posts/2016-03-02-Rust-1.7.md b/posts/2016-03-02-Rust-1.7.md index 510e2a9e1..9098a857f 100644 --- a/posts/2016-03-02-Rust-1.7.md +++ b/posts/2016-03-02-Rust-1.7.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-03-02 title = "Announcing Rust 1.7" author = "The Rust Core Team" release = true diff --git a/posts/2016-04-14-Rust-1.8.md b/posts/2016-04-14-Rust-1.8.md index 44618edf9..ea8b20913 100644 --- a/posts/2016-04-14-Rust-1.8.md +++ b/posts/2016-04-14-Rust-1.8.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-04-14 title = "Announcing Rust 1.8" author = "The Rust Core Team" release = true diff --git a/posts/2016-04-19-MIR.md b/posts/2016-04-19-MIR.md index 22b6c64ed..52574d30c 100644 --- a/posts/2016-04-19-MIR.md +++ b/posts/2016-04-19-MIR.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-04-19 title = "Introducing MIR" author = "Niko Matsakis" description = "The shift to use MIR in the compiler should unlock many exciting improvements." diff --git a/posts/2016-05-05-cargo-pillars.md b/posts/2016-05-05-cargo-pillars.md index 5f4b08dca..e183b0bbb 100644 --- a/posts/2016-05-05-cargo-pillars.md +++ b/posts/2016-05-05-cargo-pillars.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-05-05 title = "Cargo: predictable dependency management" author = "Yehuda Katz" description = "Cargo makes dependency management in Rust easy and predictable" diff --git a/posts/2016-05-09-survey.md b/posts/2016-05-09-survey.md index c02ab036c..129d99aa8 100644 --- a/posts/2016-05-09-survey.md +++ b/posts/2016-05-09-survey.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-05-09 title = "Launching the 2016 State of Rust Survey" author = "The Rust Community Team" description = "Hearing from you about the first year of Rust" diff --git a/posts/2016-05-13-rustup.md b/posts/2016-05-13-rustup.md index 91650a25d..d7ed6815f 100644 --- a/posts/2016-05-13-rustup.md +++ b/posts/2016-05-13-rustup.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-05-13 title = "Taking Rust everywhere with rustup" author = "Brian Anderson" description = "The rustup toolchain manager makes cross-compilation in Rust a breeze" diff --git a/posts/2016-05-16-rust-at-one-year.md b/posts/2016-05-16-rust-at-one-year.md index 37746b405..6ac566168 100644 --- a/posts/2016-05-16-rust-at-one-year.md +++ b/posts/2016-05-16-rust-at-one-year.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-05-16 title = "One year of Rust" author = "Aaron Turon" description = "Rust's trajectory one year after 1.0" diff --git a/posts/2016-05-26-Rust-1.9.md b/posts/2016-05-26-Rust-1.9.md index d297028cc..1781b8365 100644 --- a/posts/2016-05-26-Rust-1.9.md +++ b/posts/2016-05-26-Rust-1.9.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-05-26 title = "Announcing Rust 1.9" author = "The Rust Core Team" release = true diff --git a/posts/2016-06-30-State-of-Rust-Survey-2016.md b/posts/2016-06-30-State-of-Rust-Survey-2016.md index 5666816cb..4d11f8668 100644 --- a/posts/2016-06-30-State-of-Rust-Survey-2016.md +++ b/posts/2016-06-30-State-of-Rust-Survey-2016.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-06-30 title = "State of Rust Survey 2016" author = "Jonathan Turner" +++ diff --git a/posts/2016-07-07-Rust-1.10.md b/posts/2016-07-07-Rust-1.10.md index 024e5eae9..4d22961a9 100644 --- a/posts/2016-07-07-Rust-1.10.md +++ b/posts/2016-07-07-Rust-1.10.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-07-07 title = "Announcing Rust 1.10" author = "The Rust Core Team" release = true diff --git a/posts/2016-07-25-conf-lineup.md b/posts/2016-07-25-conf-lineup.md index 69e75a161..01f43213b 100644 --- a/posts/2016-07-25-conf-lineup.md +++ b/posts/2016-07-25-conf-lineup.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-07-25 title = "The 2016 Rust Conference Lineup" author = "Rust Community" description = "Three Rust conferences are coming up soon; join us at one near you!" diff --git a/posts/2016-08-10-Shape-of-errors-to-come.md b/posts/2016-08-10-Shape-of-errors-to-come.md index b200afea7..62684b15f 100644 --- a/posts/2016-08-10-Shape-of-errors-to-come.md +++ b/posts/2016-08-10-Shape-of-errors-to-come.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-08-10 title = "Shape of errors to come" author = "Sophia June Turner" +++ diff --git a/posts/2016-08-18-Rust-1.11.md b/posts/2016-08-18-Rust-1.11.md index e3a792922..bd2aa4dc5 100644 --- a/posts/2016-08-18-Rust-1.11.md +++ b/posts/2016-08-18-Rust-1.11.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-08-18 title = "Announcing Rust 1.11" author = "The Rust Core Team" release = true diff --git a/posts/2016-09-08-incremental.md b/posts/2016-09-08-incremental.md index a263afc67..c083e1163 100644 --- a/posts/2016-09-08-incremental.md +++ b/posts/2016-09-08-incremental.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-09-08 title = "Incremental Compilation" author = "Michael Woerister" description = "Incremental compilation for exponential joy and happiness." diff --git a/posts/2016-09-29-Rust-1.12.md b/posts/2016-09-29-Rust-1.12.md index bfdcff7e5..1d3b20df2 100644 --- a/posts/2016-09-29-Rust-1.12.md +++ b/posts/2016-09-29-Rust-1.12.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-09-29 title = "Announcing Rust 1.12" author = "The Rust Core Team" release = true diff --git a/posts/2016-10-20-Rust-1.12.1.md b/posts/2016-10-20-Rust-1.12.1.md index cef34f3bc..68f109ec8 100644 --- a/posts/2016-10-20-Rust-1.12.1.md +++ b/posts/2016-10-20-Rust-1.12.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-10-20 title = "Announcing Rust 1.12.1" author = "The Rust Core Team" release = true diff --git a/posts/2016-11-10-Rust-1.13.md b/posts/2016-11-10-Rust-1.13.md index cdf26234a..fd9739675 100644 --- a/posts/2016-11-10-Rust-1.13.md +++ b/posts/2016-11-10-Rust-1.13.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-11-10 title = "Announcing Rust 1.13" author = "The Rust Core Team" release = true diff --git a/posts/2016-12-15-Underhanded-Rust.md b/posts/2016-12-15-Underhanded-Rust.md index d29434acf..9e10df017 100644 --- a/posts/2016-12-15-Underhanded-Rust.md +++ b/posts/2016-12-15-Underhanded-Rust.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-12-15 title = "Announcing the First Underhanded Rust Contest" author = "The Rust Community Team" +++ diff --git a/posts/2016-12-22-Rust-1.14.md b/posts/2016-12-22-Rust-1.14.md index d3f0a0aae..02141011f 100644 --- a/posts/2016-12-22-Rust-1.14.md +++ b/posts/2016-12-22-Rust-1.14.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2016-12-22 title = "Announcing Rust 1.14" author = "The Rust Core Team" release = true diff --git a/posts/2017-02-02-Rust-1.15.md b/posts/2017-02-02-Rust-1.15.md index 74c17e165..23fd6bce8 100644 --- a/posts/2017-02-02-Rust-1.15.md +++ b/posts/2017-02-02-Rust-1.15.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-02-02 title = "Announcing Rust 1.15" author = "The Rust Core Team" release = true diff --git a/posts/2017-02-06-roadmap.md b/posts/2017-02-06-roadmap.md index a88f7301e..797235f0d 100644 --- a/posts/2017-02-06-roadmap.md +++ b/posts/2017-02-06-roadmap.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-02-06 title = "Rust's 2017 roadmap" author = "Aaron Turon" description = "What the Rust community hopes to get done in 2017" diff --git a/posts/2017-02-09-Rust-1.15.1.md b/posts/2017-02-09-Rust-1.15.1.md index 1c3fd23f7..80aeef0bf 100644 --- a/posts/2017-02-09-Rust-1.15.1.md +++ b/posts/2017-02-09-Rust-1.15.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-02-09 title = "Announcing Rust 1.15.1" author = "The Rust Core Team" release = true diff --git a/posts/2017-03-02-lang-ergonomics.md b/posts/2017-03-02-lang-ergonomics.md index f94e8b2aa..af835968d 100644 --- a/posts/2017-03-02-lang-ergonomics.md +++ b/posts/2017-03-02-lang-ergonomics.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-03-02 title = "Rust's language ergonomics initiative" author = "Aaron Turon" description = "Ergonomics, learnability, and the fact that sometimes implicit is better" diff --git a/posts/2017-03-16-Rust-1.16.md b/posts/2017-03-16-Rust-1.16.md index 4c36d2b47..b48fa9e6f 100644 --- a/posts/2017-03-16-Rust-1.16.md +++ b/posts/2017-03-16-Rust-1.16.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-03-16 title = "Announcing Rust 1.16" author = "The Rust Core Team" release = true diff --git a/posts/2017-04-27-Rust-1.17.md b/posts/2017-04-27-Rust-1.17.md index 1b85e5e6a..cb48f5f4b 100644 --- a/posts/2017-04-27-Rust-1.17.md +++ b/posts/2017-04-27-Rust-1.17.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-04-27 title = "Announcing Rust 1.17" author = "The Rust Core Team" release = true diff --git a/posts/2017-05-03-survey.md b/posts/2017-05-03-survey.md index 99111b003..e7f561e61 100644 --- a/posts/2017-05-03-survey.md +++ b/posts/2017-05-03-survey.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-05-03 title = "Launching the 2017 State of Rust Survey" author = "The Rust Community Team" description = "Hearing from you about the second year of Rust" diff --git a/posts/2017-05-05-libz-blitz.md b/posts/2017-05-05-libz-blitz.md index ef798bb3a..df507f48c 100644 --- a/posts/2017-05-05-libz-blitz.md +++ b/posts/2017-05-05-libz-blitz.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-05-05 title = "The Rust Libz Blitz" author = "Brian Anderson, David Tolnay, and Aaron Turon" description = "Improving the quality and maturity of Rust's core ecosystem" diff --git a/posts/2017-05-15-rust-at-two-years.md b/posts/2017-05-15-rust-at-two-years.md index e52447655..429f80b85 100644 --- a/posts/2017-05-15-rust-at-two-years.md +++ b/posts/2017-05-15-rust-at-two-years.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-05-15 title = "Two years of Rust" author = "Carol (Nichols || Goulding)" description = "Rust, two years after 1.0" diff --git a/posts/2017-06-08-Rust-1.18.md b/posts/2017-06-08-Rust-1.18.md index d373bbb52..a58dce5cf 100644 --- a/posts/2017-06-08-Rust-1.18.md +++ b/posts/2017-06-08-Rust-1.18.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-06-08 title = "Announcing Rust 1.18" author = "The Rust Core Team" release = true diff --git a/posts/2017-06-27-Increasing-Rusts-Reach.md b/posts/2017-06-27-Increasing-Rusts-Reach.md index ed3a2429a..2c1e446fe 100644 --- a/posts/2017-06-27-Increasing-Rusts-Reach.md +++ b/posts/2017-06-27-Increasing-Rusts-Reach.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-06-27 title = "Increasing Rust’s Reach" author = "Carol Nichols" +++ diff --git a/posts/2017-07-05-Rust-Roadmap-Update.md b/posts/2017-07-05-Rust-Roadmap-Update.md index ce09d1750..69f26ba99 100644 --- a/posts/2017-07-05-Rust-Roadmap-Update.md +++ b/posts/2017-07-05-Rust-Roadmap-Update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-07-05 title = "Rust's 2017 roadmap, six months in" author = "Nicholas Matsakis" +++ diff --git a/posts/2017-07-18-conf-lineup.md b/posts/2017-07-18-conf-lineup.md index 5b05b92be..cbea58493 100644 --- a/posts/2017-07-18-conf-lineup.md +++ b/posts/2017-07-18-conf-lineup.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-07-18 title = "The 2017 Rust Conference Lineup" author = "Rust Community" description = "Three Rust conferences are coming up soon; join us at one near you!" diff --git a/posts/2017-07-20-Rust-1.19.md b/posts/2017-07-20-Rust-1.19.md index 6336da132..125936c2c 100644 --- a/posts/2017-07-20-Rust-1.19.md +++ b/posts/2017-07-20-Rust-1.19.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-07-20 title = "Announcing Rust 1.19" author = "The Rust Core Team" release = true diff --git a/posts/2017-08-31-Rust-1.20.md b/posts/2017-08-31-Rust-1.20.md index a6fa7ef8a..468e4c710 100644 --- a/posts/2017-08-31-Rust-1.20.md +++ b/posts/2017-08-31-Rust-1.20.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-08-31 title = "Announcing Rust 1.20" author = "The Rust Core Team" release = true diff --git a/posts/2017-09-05-Rust-2017-Survey-Results.md b/posts/2017-09-05-Rust-2017-Survey-Results.md index 4ec18cb18..4635be47a 100644 --- a/posts/2017-09-05-Rust-2017-Survey-Results.md +++ b/posts/2017-09-05-Rust-2017-Survey-Results.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-09-05 title = "Rust 2017 Survey Results" author = "Jonathan Turner" +++ diff --git a/posts/2017-09-18-impl-future-for-rust.md b/posts/2017-09-18-impl-future-for-rust.md index dc738a2be..2df1561ca 100644 --- a/posts/2017-09-18-impl-future-for-rust.md +++ b/posts/2017-09-18-impl-future-for-rust.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-09-18 title = "impl Future for Rust" author = "Aaron Turon" description = "The Rust community is going to finish out its 2017 roadmap with a bang—and we want your help!" diff --git a/posts/2017-10-12-Rust-1.21.md b/posts/2017-10-12-Rust-1.21.md index 1905a249c..eb6ec3014 100644 --- a/posts/2017-10-12-Rust-1.21.md +++ b/posts/2017-10-12-Rust-1.21.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-10-12 title = "Announcing Rust 1.21" author = "The Rust Core Team" release = true diff --git a/posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md b/posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md index b9eebb48b..a3c6b4715 100644 --- a/posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md +++ b/posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-11-14 title = "Fearless Concurrency in Firefox Quantum" author = "Manish Goregaokar" +++ diff --git a/posts/2017-11-22-Rust-1.22.md b/posts/2017-11-22-Rust-1.22.md index 41203a91d..1ba2ec3ac 100644 --- a/posts/2017-11-22-Rust-1.22.md +++ b/posts/2017-11-22-Rust-1.22.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-11-22 title = "Announcing Rust 1.22 (and 1.22.1)" author = "The Rust Core Team" release = true diff --git a/posts/2017-12-21-rust-in-2017.md b/posts/2017-12-21-rust-in-2017.md index 1a77270c7..acd8038e6 100644 --- a/posts/2017-12-21-rust-in-2017.md +++ b/posts/2017-12-21-rust-in-2017.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2017-12-21 title = "Rust in 2017: what we achieved" author = "Aaron Turon" +++ diff --git a/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md b/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md index 3f504c9ac..b0c2d49f3 100644 --- a/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md +++ b/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-01-03 title = "New Year's Rust: A Call for Community Blogposts" author = "The Rust Core Team" +++ diff --git a/posts/2018-01-04-Rust-1.23.md b/posts/2018-01-04-Rust-1.23.md index dcebfea23..c9e2a9baf 100644 --- a/posts/2018-01-04-Rust-1.23.md +++ b/posts/2018-01-04-Rust-1.23.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-01-04 title = "Announcing Rust 1.23" author = "The Rust Core Team" release = true diff --git a/posts/2018-01-31-The-2018-Rust-Event-Lineup.md b/posts/2018-01-31-The-2018-Rust-Event-Lineup.md index 27273f4be..d66c51717 100644 --- a/posts/2018-01-31-The-2018-Rust-Event-Lineup.md +++ b/posts/2018-01-31-The-2018-Rust-Event-Lineup.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-01-31 title = "The 2018 Rust Event Lineup" author = "Rust Community" description = "Lots of Rust events are happening this year; join us at one near you!" diff --git a/posts/2018-02-15-Rust-1.24.md b/posts/2018-02-15-Rust-1.24.md index 8dd1e529b..b2bb8bd15 100644 --- a/posts/2018-02-15-Rust-1.24.md +++ b/posts/2018-02-15-Rust-1.24.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-02-15 title = "Announcing Rust 1.24" author = "The Rust Core Team" release = true diff --git a/posts/2018-03-01-Rust-1.24.1.md b/posts/2018-03-01-Rust-1.24.1.md index fdf947614..7ac16ff74 100644 --- a/posts/2018-03-01-Rust-1.24.1.md +++ b/posts/2018-03-01-Rust-1.24.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-03-01 title = "Announcing Rust 1.24.1" author = "The Rust Core Team" release = true diff --git a/posts/2018-03-12-roadmap.md b/posts/2018-03-12-roadmap.md index daac4af4e..4f7009266 100644 --- a/posts/2018-03-12-roadmap.md +++ b/posts/2018-03-12-roadmap.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-03-12 title = "Rust's 2018 roadmap" author = "The Rust Core Team" +++ diff --git a/posts/2018-03-29-Rust-1.25.md b/posts/2018-03-29-Rust-1.25.md index af88c40eb..daab60edf 100644 --- a/posts/2018-03-29-Rust-1.25.md +++ b/posts/2018-03-29-Rust-1.25.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-03-29 title = "Announcing Rust 1.25" author = "The Rust Core Team" release = true diff --git a/posts/2018-04-02-Increasing-Rusts-Reach-2018.md b/posts/2018-04-02-Increasing-Rusts-Reach-2018.md index 60b1c0d8b..eac87cef2 100644 --- a/posts/2018-04-02-Increasing-Rusts-Reach-2018.md +++ b/posts/2018-04-02-Increasing-Rusts-Reach-2018.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-04-02 title = "Increasing Rust’s Reach 2018" author = "Ashley Williams" +++ diff --git a/posts/2018-04-06-all-hands.md b/posts/2018-04-06-all-hands.md index cbb38dfa7..ee3e7221a 100644 --- a/posts/2018-04-06-all-hands.md +++ b/posts/2018-04-06-all-hands.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-04-06 title = "The Rust Team All Hands in Berlin: a Recap" author = "Aaron Turon" +++ diff --git a/posts/2018-05-10-Rust-1.26.md b/posts/2018-05-10-Rust-1.26.md index e1128cece..2b23321ac 100644 --- a/posts/2018-05-10-Rust-1.26.md +++ b/posts/2018-05-10-Rust-1.26.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-05-10 title = "Announcing Rust 1.26" author = "The Rust Core Team" release = true diff --git a/posts/2018-05-15-Rust-turns-three.md b/posts/2018-05-15-Rust-turns-three.md index 9a18841a8..de118de74 100644 --- a/posts/2018-05-15-Rust-turns-three.md +++ b/posts/2018-05-15-Rust-turns-three.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-05-15 title = "Rust turns three" author = "Aaron Turon" description = "Three years ago today, the Rust community released Rust 1.0 to the world, with our initial vision of fearless systems programming." diff --git a/posts/2018-05-29-Rust-1.26.1.md b/posts/2018-05-29-Rust-1.26.1.md index 3942cabe0..26e5ace23 100644 --- a/posts/2018-05-29-Rust-1.26.1.md +++ b/posts/2018-05-29-Rust-1.26.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-05-29 title = "Announcing Rust 1.26.1" author = "The Rust Core Team" release = true diff --git a/posts/2018-06-05-Rust-1.26.2.md b/posts/2018-06-05-Rust-1.26.2.md index 49cf5e956..dd9d9fe63 100644 --- a/posts/2018-06-05-Rust-1.26.2.md +++ b/posts/2018-06-05-Rust-1.26.2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-06-05 title = "Announcing Rust 1.26.2" author = "The Rust Core Team" release = true diff --git a/posts/2018-06-21-Rust-1.27.md b/posts/2018-06-21-Rust-1.27.md index ea9d415c3..85366af75 100644 --- a/posts/2018-06-21-Rust-1.27.md +++ b/posts/2018-06-21-Rust-1.27.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-06-21 title = "Announcing Rust 1.27" author = "The Rust Core Team" release = true diff --git a/posts/2018-07-06-security-advisory-for-rustdoc.md b/posts/2018-07-06-security-advisory-for-rustdoc.md index 127cebfc6..24c9b42cc 100644 --- a/posts/2018-07-06-security-advisory-for-rustdoc.md +++ b/posts/2018-07-06-security-advisory-for-rustdoc.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-07-06 title = "Security Advisory for rustdoc" author = "The Rust Core Team" +++ diff --git a/posts/2018-07-10-Rust-1.27.1.md b/posts/2018-07-10-Rust-1.27.1.md index 756b95d0a..680863d89 100644 --- a/posts/2018-07-10-Rust-1.27.1.md +++ b/posts/2018-07-10-Rust-1.27.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-07-10 title = "Announcing Rust 1.27.1" author = "The Rust Core Team" release = true diff --git a/posts/2018-07-20-Rust-1.27.2.md b/posts/2018-07-20-Rust-1.27.2.md index d72ff40e6..df9abccf6 100644 --- a/posts/2018-07-20-Rust-1.27.2.md +++ b/posts/2018-07-20-Rust-1.27.2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-07-20 title = "Announcing Rust 1.27.2" author = "The Rust Core Team" release = true diff --git a/posts/2018-07-27-what-is-rust-2018.md b/posts/2018-07-27-what-is-rust-2018.md index 415624bc9..07e083a3c 100644 --- a/posts/2018-07-27-what-is-rust-2018.md +++ b/posts/2018-07-27-what-is-rust-2018.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-07-27 title = "What is Rust 2018?" author = "The Rust Core Team" +++ diff --git a/posts/2018-08-02-Rust-1.28.md b/posts/2018-08-02-Rust-1.28.md index 96dbd77d6..97932d9f5 100644 --- a/posts/2018-08-02-Rust-1.28.md +++ b/posts/2018-08-02-Rust-1.28.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-08-02 title = "Announcing Rust 1.28" author = "The Rust Core Team" release = true diff --git a/posts/2018-08-08-survey.md b/posts/2018-08-08-survey.md index 334c2914e..38bd2c4f7 100644 --- a/posts/2018-08-08-survey.md +++ b/posts/2018-08-08-survey.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-08-08 title = "Launching the 2018 State of Rust Survey" author = "The Rust Community Team" description = "Hearing from you about the third year of Rust" diff --git a/posts/2018-09-13-Rust-1.29.md b/posts/2018-09-13-Rust-1.29.md index 5a3e657ac..d4d8c4104 100644 --- a/posts/2018-09-13-Rust-1.29.md +++ b/posts/2018-09-13-Rust-1.29.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-09-13 title = "Announcing Rust 1.29" author = "The Rust Core Team" release = true diff --git a/posts/2018-09-21-Security-advisory-for-std.md b/posts/2018-09-21-Security-advisory-for-std.md index d6aa0ee52..db2acbd93 100644 --- a/posts/2018-09-21-Security-advisory-for-std.md +++ b/posts/2018-09-21-Security-advisory-for-std.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-09-21 title = "Security advisory for the standard library" author = "The Rust Core Team" +++ diff --git a/posts/2018-09-25-Rust-1.29.1.md b/posts/2018-09-25-Rust-1.29.1.md index 4b9ba5029..8a8d875b4 100644 --- a/posts/2018-09-25-Rust-1.29.1.md +++ b/posts/2018-09-25-Rust-1.29.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-09-25 title = "Announcing Rust 1.29.1" author = "The Rust Core Team" release = true diff --git a/posts/2018-10-12-Rust-1.29.2.md b/posts/2018-10-12-Rust-1.29.2.md index 1f636ee29..01a82f2a1 100644 --- a/posts/2018-10-12-Rust-1.29.2.md +++ b/posts/2018-10-12-Rust-1.29.2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-10-12 title = "Announcing Rust 1.29.2" author = "The Rust Release Team" release = true diff --git a/posts/2018-10-19-Update-on-crates.io-incident.md b/posts/2018-10-19-Update-on-crates.io-incident.md index 3f796e662..61bbcafc9 100644 --- a/posts/2018-10-19-Update-on-crates.io-incident.md +++ b/posts/2018-10-19-Update-on-crates.io-incident.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-10-19 title = "Update on the October 15, 2018 incident on crates.io" author = "The Crates.io Team" +++ diff --git a/posts/2018-10-25-Rust-1.30.0.md b/posts/2018-10-25-Rust-1.30.0.md index bc73f4950..351c0eb94 100644 --- a/posts/2018-10-25-Rust-1.30.0.md +++ b/posts/2018-10-25-Rust-1.30.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-10-25 title = "Announcing Rust 1.30" author = "The Rust Core Team" release = true diff --git a/posts/2018-10-30-help-test-rust-2018.md b/posts/2018-10-30-help-test-rust-2018.md index 88955d23c..772c096ba 100644 --- a/posts/2018-10-30-help-test-rust-2018.md +++ b/posts/2018-10-30-help-test-rust-2018.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-10-30 title = "Help test Rust 2018" author = "The Rust Core Team" +++ diff --git a/posts/2018-11-08-Rust-1.30.1.md b/posts/2018-11-08-Rust-1.30.1.md index 59799ba21..20b6afa85 100644 --- a/posts/2018-11-08-Rust-1.30.1.md +++ b/posts/2018-11-08-Rust-1.30.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-11-08 title = "Announcing Rust 1.30.1" author = "The Rust Release Team" release = true diff --git a/posts/2018-11-27-Rust-survey-2018.md b/posts/2018-11-27-Rust-survey-2018.md index bdee1a934..b7653427b 100644 --- a/posts/2018-11-27-Rust-survey-2018.md +++ b/posts/2018-11-27-Rust-survey-2018.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-11-27 title = "Rust Survey 2018 Results" author = "The Rust Survey Team" +++ diff --git a/posts/2018-11-29-a-new-look-for-rust-lang-org.md b/posts/2018-11-29-a-new-look-for-rust-lang-org.md index f4a79d2a8..1ea8161a6 100644 --- a/posts/2018-11-29-a-new-look-for-rust-lang-org.md +++ b/posts/2018-11-29-a-new-look-for-rust-lang-org.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-11-29 title = "A new look for rust-lang.org" author = "The Rust Core Team" +++ diff --git a/posts/2018-12-06-Rust-1.31-and-rust-2018.md b/posts/2018-12-06-Rust-1.31-and-rust-2018.md index e5bf7d415..169fed0c5 100644 --- a/posts/2018-12-06-Rust-1.31-and-rust-2018.md +++ b/posts/2018-12-06-Rust-1.31-and-rust-2018.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-12-06 title = "Announcing Rust 1.31 and Rust 2018" author = "The Rust Core Team" release = true diff --git a/posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md b/posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md index 70c2ff779..9fc8e7ae1 100644 --- a/posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md +++ b/posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-12-06 title = "A call for Rust 2019 Roadmap blog posts" author = "The Rust Core Team" +++ diff --git a/posts/2018-12-17-Rust-2018-dev-tools.md b/posts/2018-12-17-Rust-2018-dev-tools.md index e59caf0c1..e5e6f6b8f 100644 --- a/posts/2018-12-17-Rust-2018-dev-tools.md +++ b/posts/2018-12-17-Rust-2018-dev-tools.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-12-17 title = "Tools in the 2018 edition" author = "The Dev-tools team" +++ diff --git a/posts/2018-12-20-Rust-1.31.1.md b/posts/2018-12-20-Rust-1.31.1.md index 88b23315b..924a52f21 100644 --- a/posts/2018-12-20-Rust-1.31.1.md +++ b/posts/2018-12-20-Rust-1.31.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-12-20 title = "Announcing Rust 1.31.1" author = "The Rust Release Team" release = true diff --git a/posts/2018-12-21-Procedural-Macros-in-Rust-2018.md b/posts/2018-12-21-Procedural-Macros-in-Rust-2018.md index 03bf575cb..243b57f71 100644 --- a/posts/2018-12-21-Procedural-Macros-in-Rust-2018.md +++ b/posts/2018-12-21-Procedural-Macros-in-Rust-2018.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2018-12-21 title = "Procedural Macros in Rust 2018" author = "Alex Crichton" +++ diff --git a/posts/2019-01-17-Rust-1.32.0.md b/posts/2019-01-17-Rust-1.32.0.md index 855a93989..426341d3b 100644 --- a/posts/2019-01-17-Rust-1.32.0.md +++ b/posts/2019-01-17-Rust-1.32.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-01-17 title = "Announcing Rust 1.32.0" author = "The Rust Release Team" release = true diff --git a/posts/2019-02-22-Core-team-changes.md b/posts/2019-02-22-Core-team-changes.md index 3bb5148dd..03b77abe6 100644 --- a/posts/2019-02-22-Core-team-changes.md +++ b/posts/2019-02-22-Core-team-changes.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-02-22 title = "Changes in the core team" author = "The Rust Core Team" +++ diff --git a/posts/2019-02-28-Rust-1.33.0.md b/posts/2019-02-28-Rust-1.33.0.md index 24119c55e..6bb038c95 100644 --- a/posts/2019-02-28-Rust-1.33.0.md +++ b/posts/2019-02-28-Rust-1.33.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-02-28 title = "Announcing Rust 1.33.0" author = "The Rust Release Team" release = true diff --git a/posts/2019-04-11-Rust-1.34.0.md b/posts/2019-04-11-Rust-1.34.0.md index 9b7729bf4..28b9dacc9 100644 --- a/posts/2019-04-11-Rust-1.34.0.md +++ b/posts/2019-04-11-Rust-1.34.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-04-11 title = "Announcing Rust 1.34.0" author = "The Rust Release Team" release = true diff --git a/posts/2019-04-23-roadmap.md b/posts/2019-04-23-roadmap.md index 812f913dd..8d92c2a42 100644 --- a/posts/2019-04-23-roadmap.md +++ b/posts/2019-04-23-roadmap.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-04-23 title = "Rust's 2019 roadmap" author = "The Rust Core Team" +++ diff --git a/posts/2019-04-25-Rust-1.34.1.md b/posts/2019-04-25-Rust-1.34.1.md index 483099209..4c11c0a00 100644 --- a/posts/2019-04-25-Rust-1.34.1.md +++ b/posts/2019-04-25-Rust-1.34.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-04-25 title = "Announcing Rust 1.34.1" author = "The Rust Release Team" release = true diff --git a/posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md b/posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md index 28e960d20..a87aa564d 100644 --- a/posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md +++ b/posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-04-26 title = "Mozilla IRC Sunset and the Rust Channel" author = "The Rust Core Team" +++ diff --git a/posts/2019-05-13-Security-advisory.md b/posts/2019-05-13-Security-advisory.md index 4d32473be..3493057b7 100644 --- a/posts/2019-05-13-Security-advisory.md +++ b/posts/2019-05-13-Security-advisory.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-05-13 title = "Security advisory for the standard library" author = "The Rust Core Team" +++ diff --git a/posts/2019-05-14-Rust-1.34.2.md b/posts/2019-05-14-Rust-1.34.2.md index 47f619285..cda5d82af 100644 --- a/posts/2019-05-14-Rust-1.34.2.md +++ b/posts/2019-05-14-Rust-1.34.2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-05-14 title = "Announcing Rust 1.34.2" author = "The Rust Release Team" release = true diff --git a/posts/2019-05-15-4-Years-Of-Rust.md b/posts/2019-05-15-4-Years-Of-Rust.md index 276efe5a7..72c69fb5c 100644 --- a/posts/2019-05-15-4-Years-Of-Rust.md +++ b/posts/2019-05-15-4-Years-Of-Rust.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-05-15 title = "4 years of Rust" author = "The Rust Core Team" +++ diff --git a/posts/2019-05-20-The-2019-Rust-Event-Lineup.md b/posts/2019-05-20-The-2019-Rust-Event-Lineup.md index aca840bdc..9bc3e7a38 100644 --- a/posts/2019-05-20-The-2019-Rust-Event-Lineup.md +++ b/posts/2019-05-20-The-2019-Rust-Event-Lineup.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-05-20 title = "The 2019 Rust Event Lineup" author = "Rust Community Team" description = "Lots of Rust events are happening this year; join us at one near you!" diff --git a/posts/2019-05-23-Rust-1.35.0.md b/posts/2019-05-23-Rust-1.35.0.md index b09c7d97f..1e4019f1f 100644 --- a/posts/2019-05-23-Rust-1.35.0.md +++ b/posts/2019-05-23-Rust-1.35.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-05-23 title = "Announcing Rust 1.35.0" author = "The Rust Release Team" release = true diff --git a/posts/2019-06-03-governance-wg-announcement.md b/posts/2019-06-03-governance-wg-announcement.md index d338f9b72..c0c16394f 100644 --- a/posts/2019-06-03-governance-wg-announcement.md +++ b/posts/2019-06-03-governance-wg-announcement.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-06-03 title = "The Governance WG is going public" author = "The Rust Governance WG" +++ diff --git a/posts/2019-07-04-Rust-1.36.0.md b/posts/2019-07-04-Rust-1.36.0.md index 682b88367..79d934273 100644 --- a/posts/2019-07-04-Rust-1.36.0.md +++ b/posts/2019-07-04-Rust-1.36.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-07-04 title = "Announcing Rust 1.36.0" author = "The Rust Release Team" release = true diff --git a/posts/2019-08-15-Rust-1.37.0.md b/posts/2019-08-15-Rust-1.37.0.md index 13190060a..928b74d21 100644 --- a/posts/2019-08-15-Rust-1.37.0.md +++ b/posts/2019-08-15-Rust-1.37.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-08-15 title = "Announcing Rust 1.37.0" author = "The Rust Release Team" release = true diff --git a/posts/2019-09-18-upcoming-docsrs-changes.md b/posts/2019-09-18-upcoming-docsrs-changes.md index af994a03c..d7d32e44b 100644 --- a/posts/2019-09-18-upcoming-docsrs-changes.md +++ b/posts/2019-09-18-upcoming-docsrs-changes.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-09-18 title = "Upcoming docs.rs changes" author = "The Rust Infrastructure Team" +++ diff --git a/posts/2019-09-26-Rust-1.38.0.md b/posts/2019-09-26-Rust-1.38.0.md index d4ad0bae2..8714fb410 100644 --- a/posts/2019-09-26-Rust-1.38.0.md +++ b/posts/2019-09-26-Rust-1.38.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-09-26 title = "Announcing Rust 1.38.0" author = "The Rust Release Team" release = true diff --git a/posts/2019-09-30-Async-await-hits-beta.md b/posts/2019-09-30-Async-await-hits-beta.md index d1f44197c..534e73b5b 100644 --- a/posts/2019-09-30-Async-await-hits-beta.md +++ b/posts/2019-09-30-Async-await-hits-beta.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-09-30 title = "Async-await hits beta!" author = "Niko Matsakis" +++ diff --git a/posts/2019-09-30-Security-advisory-for-cargo.md b/posts/2019-09-30-Security-advisory-for-cargo.md index 40d262488..9c7bd9b03 100644 --- a/posts/2019-09-30-Security-advisory-for-cargo.md +++ b/posts/2019-09-30-Security-advisory-for-cargo.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-09-30 title = "Security advisory for Cargo" author = "The Rust Security Team" +++ diff --git a/posts/2019-10-03-inside-rust-blog.md b/posts/2019-10-03-inside-rust-blog.md index 52eff0b6d..0092faced 100644 --- a/posts/2019-10-03-inside-rust-blog.md +++ b/posts/2019-10-03-inside-rust-blog.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-03 title = "Announcing the Inside Rust blog" author = "Niko Matsakis" +++ diff --git a/posts/2019-10-15-Rustup-1.20.0.md b/posts/2019-10-15-Rustup-1.20.0.md index 807b1260d..66b5920bf 100644 --- a/posts/2019-10-15-Rustup-1.20.0.md +++ b/posts/2019-10-15-Rustup-1.20.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-15 title = "Announcing Rustup 1.20.0" author = "The Rustup Working Group" +++ diff --git a/posts/2019-10-29-A-call-for-blogs-2020.md b/posts/2019-10-29-A-call-for-blogs-2020.md index 32159b2b8..931495ff7 100644 --- a/posts/2019-10-29-A-call-for-blogs-2020.md +++ b/posts/2019-10-29-A-call-for-blogs-2020.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-29 title = "A call for blogs 2020" author = "The Rust Core Team" +++ diff --git a/posts/2019-11-01-nll-hard-errors.md b/posts/2019-11-01-nll-hard-errors.md index 79c13f841..dba9dd2cc 100644 --- a/posts/2019-11-01-nll-hard-errors.md +++ b/posts/2019-11-01-nll-hard-errors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-01 title = "Completing the transition to the new borrow checker" author = "Niko Matsakis" +++ diff --git a/posts/2019-11-07-Async-await-stable.md b/posts/2019-11-07-Async-await-stable.md index 6a5f6ac26..daadbe0a5 100644 --- a/posts/2019-11-07-Async-await-stable.md +++ b/posts/2019-11-07-Async-await-stable.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-07 title = "Async-await on stable Rust!" author = "Niko Matsakis" +++ diff --git a/posts/2019-11-07-Rust-1.39.0.md b/posts/2019-11-07-Rust-1.39.0.md index 4ee774eb6..5c6f93280 100644 --- a/posts/2019-11-07-Rust-1.39.0.md +++ b/posts/2019-11-07-Rust-1.39.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-07 title = "Announcing Rust 1.39.0" author = "The Rust Release Team" release = true diff --git a/posts/2019-12-03-survey-launch.md b/posts/2019-12-03-survey-launch.md index b96bc30e5..f7f47c7ca 100644 --- a/posts/2019-12-03-survey-launch.md +++ b/posts/2019-12-03-survey-launch.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-03 title = "Launching the 2019 State of Rust Survey" author = "The Rust Community Team" description = "Hearing from you about the fourth year of Rust" diff --git a/posts/2019-12-19-Rust-1.40.0.md b/posts/2019-12-19-Rust-1.40.0.md index b80140e6a..0c18b8027 100644 --- a/posts/2019-12-19-Rust-1.40.0.md +++ b/posts/2019-12-19-Rust-1.40.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-19 title = "Announcing Rust 1.40.0" author = "The Rust Release Team" release = true diff --git a/posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md b/posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md index 7aca44b41..28ffd0bac 100644 --- a/posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md +++ b/posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-01-03 title = "Reducing support for 32-bit Apple targets" author = "Pietro Albini" +++ diff --git a/posts/2020-01-30-Rust-1.41.0.md b/posts/2020-01-30-Rust-1.41.0.md index 276e6a851..6f62bac18 100644 --- a/posts/2020-01-30-Rust-1.41.0.md +++ b/posts/2020-01-30-Rust-1.41.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-01-30 title = "Announcing Rust 1.41.0" author = "The Rust Release Team" release = true diff --git a/posts/2020-01-31-conf-lineup.md b/posts/2020-01-31-conf-lineup.md index 85bade2de..e382d1414 100644 --- a/posts/2020-01-31-conf-lineup.md +++ b/posts/2020-01-31-conf-lineup.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-01-31 title = "The 2020 Rust Event Lineup" author = "Rust Community" description = "Welcome to 2020; We are excited about the Rust conferences coming up; join us at one near you!" diff --git a/posts/2020-02-27-Rust-1.41.1.md b/posts/2020-02-27-Rust-1.41.1.md index 84b5d3fb3..d0dbe7015 100644 --- a/posts/2020-02-27-Rust-1.41.1.md +++ b/posts/2020-02-27-Rust-1.41.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-27 title = "Announcing Rust 1.41.1" author = "The Rust Release Team" release = true diff --git a/posts/2020-03-10-rustconf-cfp.md b/posts/2020-03-10-rustconf-cfp.md index e2198cf6e..dde5c8971 100644 --- a/posts/2020-03-10-rustconf-cfp.md +++ b/posts/2020-03-10-rustconf-cfp.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-10 title = "The 2020 RustConf CFP is Now Open!" author = "Rust Community" description = "The call for proposals for RustConf 202 is open; We want to hear from you!" diff --git a/posts/2020-03-12-Rust-1.42.md b/posts/2020-03-12-Rust-1.42.md index ffe4b04f5..c7997436d 100644 --- a/posts/2020-03-12-Rust-1.42.md +++ b/posts/2020-03-12-Rust-1.42.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-12 title = "Announcing Rust 1.42.0" author = "The Rust Release Team" release = true diff --git a/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md b/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md index 6c9062240..b6daec3ec 100644 --- a/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md +++ b/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-15 title = "docs.rs now allows you to choose your build targets" author = "Jynn Nelson" team = "the docs.rs team " diff --git a/posts/2020-04-17-Rust-survey-2019.md b/posts/2020-04-17-Rust-survey-2019.md index 7ed4e26d3..f9fcdb221 100644 --- a/posts/2020-04-17-Rust-survey-2019.md +++ b/posts/2020-04-17-Rust-survey-2019.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-04-17 title = "Rust Survey 2019 Results" author = "The Rust Survey Team" +++ diff --git a/posts/2020-04-23-Rust-1.43.0.md b/posts/2020-04-23-Rust-1.43.0.md index a9ce92840..ef887685a 100644 --- a/posts/2020-04-23-Rust-1.43.0.md +++ b/posts/2020-04-23-Rust-1.43.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-04-23 title = "Announcing Rust 1.43.0" author = "The Rust Release Team" release = true diff --git a/posts/2020-05-07-Rust.1.43.1.md b/posts/2020-05-07-Rust.1.43.1.md index c0954c4d3..77129e9af 100644 --- a/posts/2020-05-07-Rust.1.43.1.md +++ b/posts/2020-05-07-Rust.1.43.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-05-07 title = "Announcing Rust 1.43.1" author = "The Rust Release Team" release = true diff --git a/posts/2020-05-15-five-years-of-rust.md b/posts/2020-05-15-five-years-of-rust.md index aa00e2471..654bc12b4 100644 --- a/posts/2020-05-15-five-years-of-rust.md +++ b/posts/2020-05-15-five-years-of-rust.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-05-15 title = "Five Years of Rust" author = "The Rust Core Team" +++ diff --git a/posts/2020-06-04-Rust-1.44.0.md b/posts/2020-06-04-Rust-1.44.0.md index a4d72cfe6..d4f672188 100644 --- a/posts/2020-06-04-Rust-1.44.0.md +++ b/posts/2020-06-04-Rust-1.44.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-06-04 title = "Announcing Rust 1.44.0" author = "The Rust Core Team" release = true diff --git a/posts/2020-06-10-event-lineup-update.md b/posts/2020-06-10-event-lineup-update.md index 728f8095a..d8f2739cd 100644 --- a/posts/2020-06-10-event-lineup-update.md +++ b/posts/2020-06-10-event-lineup-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-06-10 title = "2020 Event Lineup - Update" author = "The Rust Community Team" description = "Join Rust events online" diff --git a/posts/2020-06-18-Rust.1.44.1.md b/posts/2020-06-18-Rust.1.44.1.md index 872a8acce..6cc346933 100644 --- a/posts/2020-06-18-Rust.1.44.1.md +++ b/posts/2020-06-18-Rust.1.44.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-06-18 title = "Announcing Rust 1.44.1" author = "The Rust Release Team" release = true diff --git a/posts/2020-07-06-Rustup-1.22.0.md b/posts/2020-07-06-Rustup-1.22.0.md index 353f7d119..92b73c267 100644 --- a/posts/2020-07-06-Rustup-1.22.0.md +++ b/posts/2020-07-06-Rustup-1.22.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-06 title = "Announcing Rustup 1.22.0" author = "The Rustup Working Group" +++ diff --git a/posts/2020-07-08-Rustup-1.22.1.md b/posts/2020-07-08-Rustup-1.22.1.md index 75a08dd68..b637958b7 100644 --- a/posts/2020-07-08-Rustup-1.22.1.md +++ b/posts/2020-07-08-Rustup-1.22.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-08 title = "Announcing Rustup 1.22.1" author = "The Rustup Working Group" +++ diff --git a/posts/2020-07-14-crates-io-security-advisory.md b/posts/2020-07-14-crates-io-security-advisory.md index c0189491b..52c10765d 100644 --- a/posts/2020-07-14-crates-io-security-advisory.md +++ b/posts/2020-07-14-crates-io-security-advisory.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-14 title = "crates.io security advisory" author = "Rust Security Response WG" +++ diff --git a/posts/2020-07-16-Rust-1.45.0.md b/posts/2020-07-16-Rust-1.45.0.md index 6b74e4556..396a4d9cb 100644 --- a/posts/2020-07-16-Rust-1.45.0.md +++ b/posts/2020-07-16-Rust-1.45.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-16 title = "Announcing Rust 1.45.0" author = "The Rust Release Team" release = true diff --git a/posts/2020-07-30-Rust-1.45.1.md b/posts/2020-07-30-Rust-1.45.1.md index 4eacda07e..8ff0a3ee9 100644 --- a/posts/2020-07-30-Rust-1.45.1.md +++ b/posts/2020-07-30-Rust-1.45.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-30 title = "Announcing Rust 1.45.1" author = "The Rust Release Team" release = true diff --git a/posts/2020-08-03-Rust-1.45.2.md b/posts/2020-08-03-Rust-1.45.2.md index 2f54ce606..ba2df28cb 100644 --- a/posts/2020-08-03-Rust-1.45.2.md +++ b/posts/2020-08-03-Rust-1.45.2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-08-03 title = "Announcing Rust 1.45.2" author = "The Rust Release Team" release = true diff --git a/posts/2020-08-18-laying-the-foundation-for-rusts-future.md b/posts/2020-08-18-laying-the-foundation-for-rusts-future.md index 126e6e353..0a8a4885b 100644 --- a/posts/2020-08-18-laying-the-foundation-for-rusts-future.md +++ b/posts/2020-08-18-laying-the-foundation-for-rusts-future.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-08-18 title = "Laying the foundation for Rust's future" author = "The Rust Core Team" +++ diff --git a/posts/2020-08-27-Rust-1.46.0.md b/posts/2020-08-27-Rust-1.46.0.md index 470e15239..ae6ce6728 100644 --- a/posts/2020-08-27-Rust-1.46.0.md +++ b/posts/2020-08-27-Rust-1.46.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-08-27 title = "Announcing Rust 1.46.0" author = "The Rust Release Team" release = true diff --git a/posts/2020-09-03-Planning-2021-Roadmap.md b/posts/2020-09-03-Planning-2021-Roadmap.md index d28c54110..3d6274fd8 100644 --- a/posts/2020-09-03-Planning-2021-Roadmap.md +++ b/posts/2020-09-03-Planning-2021-Roadmap.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-09-03 title = "Planning the 2021 Roadmap" author = "The Rust Core Team" +++ diff --git a/posts/2020-09-10-survey-launch.md b/posts/2020-09-10-survey-launch.md index 0c2405a19..c4ce3331b 100644 --- a/posts/2020-09-10-survey-launch.md +++ b/posts/2020-09-10-survey-launch.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-09-10 title = "Launching the 2020 State of Rust Survey" author = "The Rust Community Team" description = "Hearing from you about the fifth year of Rust" diff --git a/posts/2020-09-14-wg-prio-call-for-contributors.md b/posts/2020-09-14-wg-prio-call-for-contributors.md index 3dff444b7..489b1bff3 100644 --- a/posts/2020-09-14-wg-prio-call-for-contributors.md +++ b/posts/2020-09-14-wg-prio-call-for-contributors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-09-14 title = "A call for contributors from the WG-prioritization team" author = "The Rust WG-Prioritization Team" +++ diff --git a/posts/2020-09-21-Scheduling-2021-Roadmap.md b/posts/2020-09-21-Scheduling-2021-Roadmap.md index 5dd7130e5..39249e45c 100644 --- a/posts/2020-09-21-Scheduling-2021-Roadmap.md +++ b/posts/2020-09-21-Scheduling-2021-Roadmap.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-09-21 title = "Call for 2021 Roadmap Blogs Ending Soon" author = "The Rust Core Team" +++ diff --git a/posts/2020-10-08-Rust-1.47.md b/posts/2020-10-08-Rust-1.47.md index b549fe39e..3581716e5 100644 --- a/posts/2020-10-08-Rust-1.47.md +++ b/posts/2020-10-08-Rust-1.47.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-10-08 title = "Announcing Rust 1.47.0" author = "The Rust Release Team" release = true diff --git a/posts/2020-10-20-regression-labels.md b/posts/2020-10-20-regression-labels.md index 0927a3ed6..890cfc65f 100644 --- a/posts/2020-10-20-regression-labels.md +++ b/posts/2020-10-20-regression-labels.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-10-20 title = "Marking issues as regressions" author = "Camelid" description = "Now anyone can mark issues as regressions!" diff --git a/posts/2020-11-19-Rust-1.48.md b/posts/2020-11-19-Rust-1.48.md index a22c6a0bf..ec3e40660 100644 --- a/posts/2020-11-19-Rust-1.48.md +++ b/posts/2020-11-19-Rust-1.48.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-11-19 title = "Announcing Rust 1.48.0" author = "The Rust Release Team" release = true diff --git a/posts/2020-11-27-Rustup-1.23.0.md b/posts/2020-11-27-Rustup-1.23.0.md index 432ae402f..24cf9a35a 100644 --- a/posts/2020-11-27-Rustup-1.23.0.md +++ b/posts/2020-11-27-Rustup-1.23.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-11-27 title = "Announcing Rustup 1.23.0" author = "The Rustup Working Group" +++ diff --git a/posts/2020-12-07-the-foundation-conversation.md b/posts/2020-12-07-the-foundation-conversation.md index c6a7ce208..c66e6d652 100644 --- a/posts/2020-12-07-the-foundation-conversation.md +++ b/posts/2020-12-07-the-foundation-conversation.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-12-07 title = "The Foundation Conversation" author = "The Rust Core Team" +++ diff --git a/posts/2020-12-11-lock-poisoning-survey.md b/posts/2020-12-11-lock-poisoning-survey.md index 9941ec541..a8b0c10b8 100644 --- a/posts/2020-12-11-lock-poisoning-survey.md +++ b/posts/2020-12-11-lock-poisoning-survey.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-12-11 title = "Launching the Lock Poisoning Survey" author = "Ashley Mannix" team = "The Libs team " diff --git a/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md b/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md index 0bd0e04aa..c17f87a51 100644 --- a/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md +++ b/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-12-14 title = "Next steps for the Foundation Conversation" author = "The Rust Core Team" +++ diff --git a/posts/2020-12-16-rust-survey-2020.md b/posts/2020-12-16-rust-survey-2020.md index c739fdd1b..7c86e929a 100644 --- a/posts/2020-12-16-rust-survey-2020.md +++ b/posts/2020-12-16-rust-survey-2020.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-12-16 title = "Rust Survey 2020 Results" author = "The Rust Survey Team" +++ diff --git a/posts/2020-12-31-Rust-1.49.0.md b/posts/2020-12-31-Rust-1.49.0.md index e7f665bc4..b8e8f5e26 100644 --- a/posts/2020-12-31-Rust-1.49.0.md +++ b/posts/2020-12-31-Rust-1.49.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-12-31 title = "Announcing Rust 1.49.0" author = "The Rust Release Team" release = true diff --git a/posts/2021-01-04-mdbook-security-advisory.md b/posts/2021-01-04-mdbook-security-advisory.md index 6d2ef3c8a..38ad934c4 100644 --- a/posts/2021-01-04-mdbook-security-advisory.md +++ b/posts/2021-01-04-mdbook-security-advisory.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-01-04 title = "mdBook security advisory" author = "Rust Security Response WG" +++ diff --git a/posts/2021-02-11-Rust-1.50.0.md b/posts/2021-02-11-Rust-1.50.0.md index 2b70a7366..f51b61d7c 100644 --- a/posts/2021-02-11-Rust-1.50.0.md +++ b/posts/2021-02-11-Rust-1.50.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-02-11 title = "Announcing Rust 1.50.0" author = "The Rust Release Team" release = true diff --git a/posts/2021-02-26-const-generics-mvp-beta.md b/posts/2021-02-26-const-generics-mvp-beta.md index c7948e1da..e92c58e25 100644 --- a/posts/2021-02-26-const-generics-mvp-beta.md +++ b/posts/2021-02-26-const-generics-mvp-beta.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-02-26 title = "Const generics MVP hits beta!" author = "The const generics project group" +++ diff --git a/posts/2021-03-18-async-vision-doc.md b/posts/2021-03-18-async-vision-doc.md index bbe24d820..d6988a816 100644 --- a/posts/2021-03-18-async-vision-doc.md +++ b/posts/2021-03-18-async-vision-doc.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-03-18 title = "Building a shared vision for Async Rust" author = "Niko Matsakis" description = "Building a shared vision for Async Rust" diff --git a/posts/2021-03-25-Rust-1.51.0.md b/posts/2021-03-25-Rust-1.51.0.md index 2bbad4da9..cc6728113 100644 --- a/posts/2021-03-25-Rust-1.51.0.md +++ b/posts/2021-03-25-Rust-1.51.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-03-25 title = "Announcing Rust 1.51.0" author = "The Rust Release Team" release = true diff --git a/posts/2021-04-14-async-vision-doc-shiny-future.md b/posts/2021-04-14-async-vision-doc-shiny-future.md index a9cbe38a7..c9867ff74 100644 --- a/posts/2021-04-14-async-vision-doc-shiny-future.md +++ b/posts/2021-04-14-async-vision-doc-shiny-future.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-04-14 title = "Brainstorming Async Rust's Shiny Future" author = "Niko Matsakis" description = "Brainstorming Async Rust's Shiny Future" diff --git a/posts/2021-04-27-Rustup-1.24.0.md b/posts/2021-04-27-Rustup-1.24.0.md index aef16a36b..3ef4423ca 100644 --- a/posts/2021-04-27-Rustup-1.24.0.md +++ b/posts/2021-04-27-Rustup-1.24.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-04-27 title = "Announcing Rustup 1.24.0" author = "The Rustup Working Group" +++ diff --git a/posts/2021-04-29-Rustup-1.24.1.md b/posts/2021-04-29-Rustup-1.24.1.md index 66d27043a..6f0e0f4b5 100644 --- a/posts/2021-04-29-Rustup-1.24.1.md +++ b/posts/2021-04-29-Rustup-1.24.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-04-29 title = "Announcing Rustup 1.24.1" author = "The Rustup Working Group" +++ diff --git a/posts/2021-05-06-Rust-1.52.0.md b/posts/2021-05-06-Rust-1.52.0.md index 69e5fc69f..77b002acd 100644 --- a/posts/2021-05-06-Rust-1.52.0.md +++ b/posts/2021-05-06-Rust-1.52.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-05-06 title = "Announcing Rust 1.52.0" author = "The Rust Release Team" release = true diff --git a/posts/2021-05-10-Rust-1.52.1.md b/posts/2021-05-10-Rust-1.52.1.md index 769570449..63a84a492 100644 --- a/posts/2021-05-10-Rust-1.52.1.md +++ b/posts/2021-05-10-Rust-1.52.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-05-10 title = "Announcing Rust 1.52.1" author = "Felix Klock, Mark Rousskov" team = "the compiler team " diff --git a/posts/2021-05-11-edition-2021.md b/posts/2021-05-11-edition-2021.md index 3df12be1d..f518464eb 100644 --- a/posts/2021-05-11-edition-2021.md +++ b/posts/2021-05-11-edition-2021.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-05-11 title = "The Plan for the Rust 2021 Edition" author = "Mara Bos" team = "The Rust 2021 Edition Working Group " diff --git a/posts/2021-05-15-six-years-of-rust.md b/posts/2021-05-15-six-years-of-rust.md index 8b181f512..11ac93b5e 100644 --- a/posts/2021-05-15-six-years-of-rust.md +++ b/posts/2021-05-15-six-years-of-rust.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-05-15 title = "Six Years of Rust" author = "The Rust Team" +++ diff --git a/posts/2021-05-17-Rustup-1.24.2.md b/posts/2021-05-17-Rustup-1.24.2.md index 76489e8b1..8cef5f5ea 100644 --- a/posts/2021-05-17-Rustup-1.24.2.md +++ b/posts/2021-05-17-Rustup-1.24.2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-05-17 title = "Announcing Rustup 1.24.2" author = "The Rustup Working Group" +++ diff --git a/posts/2021-06-08-Rustup-1.24.3.md b/posts/2021-06-08-Rustup-1.24.3.md index 314c9cba4..f2eb46677 100644 --- a/posts/2021-06-08-Rustup-1.24.3.md +++ b/posts/2021-06-08-Rustup-1.24.3.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-06-08 title = "Announcing Rustup 1.24.3" author = "The Rustup Working Group" +++ diff --git a/posts/2021-06-17-Rust-1.53.0.md b/posts/2021-06-17-Rust-1.53.0.md index 125c8bb18..29dd336da 100644 --- a/posts/2021-06-17-Rust-1.53.0.md +++ b/posts/2021-06-17-Rust-1.53.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-06-17 title = "Announcing Rust 1.53.0" author = "The Rust Release Team" release = true diff --git a/posts/2021-07-21-Rust-2021-public-testing.md b/posts/2021-07-21-Rust-2021-public-testing.md index f7ee0ff92..4381f6285 100644 --- a/posts/2021-07-21-Rust-2021-public-testing.md +++ b/posts/2021-07-21-Rust-2021-public-testing.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-07-21 title = "Rust 2021 public testing period" author = "Niko Matsakis" team = "the Edition 2021 Project Group " diff --git a/posts/2021-07-29-Rust-1.54.0.md b/posts/2021-07-29-Rust-1.54.0.md index 7c8a34b38..fdd69dc37 100644 --- a/posts/2021-07-29-Rust-1.54.0.md +++ b/posts/2021-07-29-Rust-1.54.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-07-29 title = "Announcing Rust 1.54.0" author = "The Rust Release Team" release = true diff --git a/posts/2021-08-03-GATs-stabilization-push.md b/posts/2021-08-03-GATs-stabilization-push.md index 5d1b64f73..7a3805dbe 100644 --- a/posts/2021-08-03-GATs-stabilization-push.md +++ b/posts/2021-08-03-GATs-stabilization-push.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-08-03 title = "The push for GATs stabilization" author = "Jack Huey" team = "the Traits Working Group " diff --git a/posts/2021-09-09-Rust-1.55.0.md b/posts/2021-09-09-Rust-1.55.0.md index 35d09b647..4bb617b20 100644 --- a/posts/2021-09-09-Rust-1.55.0.md +++ b/posts/2021-09-09-Rust-1.55.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-09-09 title = "Announcing Rust 1.55.0" author = "The Rust Release Team" release = true diff --git a/posts/2021-09-27-Core-team-membership-updates.md b/posts/2021-09-27-Core-team-membership-updates.md index 6ce7bf3be..d62ba995a 100644 --- a/posts/2021-09-27-Core-team-membership-updates.md +++ b/posts/2021-09-27-Core-team-membership-updates.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-09-27 title = "Core team membership updates" author = "The Rust Core Team" +++ diff --git a/posts/2021-10-21-Rust-1.56.0.md b/posts/2021-10-21-Rust-1.56.0.md index cc7ac9c3e..beabd1423 100644 --- a/posts/2021-10-21-Rust-1.56.0.md +++ b/posts/2021-10-21-Rust-1.56.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-10-21 title = "Announcing Rust 1.56.0 and Rust 2021" author = "The Rust Release Team" release = true diff --git a/posts/2021-11-01-Rust-1.56.1.md b/posts/2021-11-01-Rust-1.56.1.md index 4b18e1810..bebf00092 100644 --- a/posts/2021-11-01-Rust-1.56.1.md +++ b/posts/2021-11-01-Rust-1.56.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-11-01 title = "Announcing Rust 1.56.1" author = "The Rust Security Response WG" release = true diff --git a/posts/2021-11-01-cve-2021-42574.md b/posts/2021-11-01-cve-2021-42574.md index 541eb395c..d73db3ea7 100644 --- a/posts/2021-11-01-cve-2021-42574.md +++ b/posts/2021-11-01-cve-2021-42574.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-11-01 title = "Security advisory for rustc (CVE-2021-42574)" author = "The Rust Security Response WG" +++ diff --git a/posts/2021-12-02-Rust-1.57.0.md b/posts/2021-12-02-Rust-1.57.0.md index 43fa1f985..08c58c040 100644 --- a/posts/2021-12-02-Rust-1.57.0.md +++ b/posts/2021-12-02-Rust-1.57.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-12-02 title = "Announcing Rust 1.57.0" author = "The Rust Release Team" release = true diff --git a/posts/2021-12-08-survey-launch.md b/posts/2021-12-08-survey-launch.md index 8251b4a0d..4b014d147 100644 --- a/posts/2021-12-08-survey-launch.md +++ b/posts/2021-12-08-survey-launch.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-12-08 title = "Launching the 2021 State of Rust Survey" author = "The Rust Community Team" description = "Hearing from you about the sixth year of Rust" diff --git a/posts/2022-01-13-Rust-1.58.0.md b/posts/2022-01-13-Rust-1.58.0.md index 61e618e9b..14145cfdf 100644 --- a/posts/2022-01-13-Rust-1.58.0.md +++ b/posts/2022-01-13-Rust-1.58.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-01-13 title = "Announcing Rust 1.58.0" author = "The Rust Release Team" release = true diff --git a/posts/2022-01-20-Rust-1.58.1.md b/posts/2022-01-20-Rust-1.58.1.md index bd6ca47b7..cb8b95788 100644 --- a/posts/2022-01-20-Rust-1.58.1.md +++ b/posts/2022-01-20-Rust-1.58.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-01-20 title = "Announcing Rust 1.58.1" author = "The Rust Release Team" release = true diff --git a/posts/2022-01-20-cve-2022-21658.md b/posts/2022-01-20-cve-2022-21658.md index 2fe6976a5..306b9e169 100644 --- a/posts/2022-01-20-cve-2022-21658.md +++ b/posts/2022-01-20-cve-2022-21658.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-01-20 title = "Security advisory for the standard library (CVE-2022-21658)" author = "The Rust Security Response WG" +++ diff --git a/posts/2022-01-31-changes-in-the-core-team.md b/posts/2022-01-31-changes-in-the-core-team.md index 66eca8e86..0e0575f8a 100644 --- a/posts/2022-01-31-changes-in-the-core-team.md +++ b/posts/2022-01-31-changes-in-the-core-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-01-31 title = "Changes in the Core Team" author = "The Rust Core Team" +++ diff --git a/posts/2022-02-14-crates-io-snapshot-branches.md b/posts/2022-02-14-crates-io-snapshot-branches.md index 0b392ecea..4280632c4 100644 --- a/posts/2022-02-14-crates-io-snapshot-branches.md +++ b/posts/2022-02-14-crates-io-snapshot-branches.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-02-14 title = "Crates.io Index Snapshot Branches Moving" author = "The Crates.io Team" +++ diff --git a/posts/2022-02-15-Rust-Survey-2021.md b/posts/2022-02-15-Rust-Survey-2021.md index fbc119abf..a0130db72 100644 --- a/posts/2022-02-15-Rust-Survey-2021.md +++ b/posts/2022-02-15-Rust-Survey-2021.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-02-15 title = "Rust Survey 2021 Results" author = "The Rust Survey Team" +++ diff --git a/posts/2022-02-21-rust-analyzer-joins-rust-org.md b/posts/2022-02-21-rust-analyzer-joins-rust-org.md index 0526fc318..f0fe066da 100644 --- a/posts/2022-02-21-rust-analyzer-joins-rust-org.md +++ b/posts/2022-02-21-rust-analyzer-joins-rust-org.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-02-21 title = "rust-analyzer joins the Rust organization!" author = "The rust-analyzer Team on behalf of the entire Rust Team" +++ diff --git a/posts/2022-02-24-Rust-1.59.0.md b/posts/2022-02-24-Rust-1.59.0.md index e01ab7d5c..197c389d7 100644 --- a/posts/2022-02-24-Rust-1.59.0.md +++ b/posts/2022-02-24-Rust-1.59.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-02-24 title = "Announcing Rust 1.59.0" author = "The Rust Team" release = true diff --git a/posts/2022-03-08-cve-2022-24713.md b/posts/2022-03-08-cve-2022-24713.md index 47661e451..9e8df828b 100644 --- a/posts/2022-03-08-cve-2022-24713.md +++ b/posts/2022-03-08-cve-2022-24713.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-03-08 title = "Security advisory for the regex crate (CVE-2022-24713)" author = "The Rust Security Response WG" +++ diff --git a/posts/2022-04-07-Rust-1.60.0.md b/posts/2022-04-07-Rust-1.60.0.md index 1a75fe0e6..ad1e6f2cf 100644 --- a/posts/2022-04-07-Rust-1.60.0.md +++ b/posts/2022-04-07-Rust-1.60.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-04-07 title = "Announcing Rust 1.60.0" author = "The Rust Release Team" release = true diff --git a/posts/2022-05-10-malicious-crate-rustdecimal.md b/posts/2022-05-10-malicious-crate-rustdecimal.md index 62ddaaaf0..4ce4ef70e 100644 --- a/posts/2022-05-10-malicious-crate-rustdecimal.md +++ b/posts/2022-05-10-malicious-crate-rustdecimal.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-05-10 title = "Security advisory: malicious crate rustdecimal" author = "The Rust Security Response WG" +++ diff --git a/posts/2022-05-19-Rust-1.61.0.md b/posts/2022-05-19-Rust-1.61.0.md index 141d33cd9..67f62a2cd 100644 --- a/posts/2022-05-19-Rust-1.61.0.md +++ b/posts/2022-05-19-Rust-1.61.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-05-19 title = "Announcing Rust 1.61.0" author = "The Rust Release Team" release = true diff --git a/posts/2022-06-22-sparse-registry-testing.md b/posts/2022-06-22-sparse-registry-testing.md index c22b344d8..cdeae933e 100644 --- a/posts/2022-06-22-sparse-registry-testing.md +++ b/posts/2022-06-22-sparse-registry-testing.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-06-22 title = "Call for testing: Cargo sparse-registry" author = "Arlo Siemsen" team = "The Cargo Team " diff --git a/posts/2022-06-28-rust-unconference.md b/posts/2022-06-28-rust-unconference.md index 37fd6b5cc..3cac65657 100644 --- a/posts/2022-06-28-rust-unconference.md +++ b/posts/2022-06-28-rust-unconference.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-06-28 title = "Announcing The RustConf PostConf UnConf" author = "Jane Lusby, on behalf of The Rust Project Teams" +++ diff --git a/posts/2022-06-30-Rust-1.62.0.md b/posts/2022-06-30-Rust-1.62.0.md index 72bf9d58f..4a6eea59d 100644 --- a/posts/2022-06-30-Rust-1.62.0.md +++ b/posts/2022-06-30-Rust-1.62.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-06-30 title = "Announcing Rust 1.62.0" author = "The Rust Release Team" release = true diff --git a/posts/2022-07-01-RLS-deprecation.md b/posts/2022-07-01-RLS-deprecation.md index 732eecc43..6f3fae720 100644 --- a/posts/2022-07-01-RLS-deprecation.md +++ b/posts/2022-07-01-RLS-deprecation.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-07-01 title = "RLS Deprecation" author = "The Rust Dev Tools Team" +++ diff --git a/posts/2022-07-11-Rustup-1.25.0.md b/posts/2022-07-11-Rustup-1.25.0.md index 0f2f48e51..351bc30cb 100644 --- a/posts/2022-07-11-Rustup-1.25.0.md +++ b/posts/2022-07-11-Rustup-1.25.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-07-11 title = "Announcing Rustup 1.25.0" author = "The Rustup Working Group" +++ diff --git a/posts/2022-07-12-Rustup-1.25.1.md b/posts/2022-07-12-Rustup-1.25.1.md index a466c0e03..df76edcfc 100644 --- a/posts/2022-07-12-Rustup-1.25.1.md +++ b/posts/2022-07-12-Rustup-1.25.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-07-12 title = "Announcing Rustup 1.25.1" author = "The Rustup Working Group" +++ diff --git a/posts/2022-07-12-changes-in-the-core-team.md b/posts/2022-07-12-changes-in-the-core-team.md index 38e318df4..2410846fa 100644 --- a/posts/2022-07-12-changes-in-the-core-team.md +++ b/posts/2022-07-12-changes-in-the-core-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-07-12 title = "Changes in the Core Team" author = "The Rust Core Team" +++ diff --git a/posts/2022-07-19-Rust-1.62.1.md b/posts/2022-07-19-Rust-1.62.1.md index 85a271923..c24216458 100644 --- a/posts/2022-07-19-Rust-1.62.1.md +++ b/posts/2022-07-19-Rust-1.62.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-07-19 title = "Announcing Rust 1.62.1" author = "The Rust Release Team" release = true diff --git a/posts/2022-08-01-Increasing-glibc-kernel-requirements.md b/posts/2022-08-01-Increasing-glibc-kernel-requirements.md index cb86366c7..6d03e1a69 100644 --- a/posts/2022-08-01-Increasing-glibc-kernel-requirements.md +++ b/posts/2022-08-01-Increasing-glibc-kernel-requirements.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-08-01 title = "Increasing the glibc and Linux kernel requirements" author = "Nikita Popov" +++ diff --git a/posts/2022-08-05-nll-by-default.md b/posts/2022-08-05-nll-by-default.md index 87661a143..7cd8ff95c 100644 --- a/posts/2022-08-05-nll-by-default.md +++ b/posts/2022-08-05-nll-by-default.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-08-05 title = "Non-lexical lifetimes (NLL) fully stable" author = "Niko Matsakis" team = "the NLL working group " diff --git a/posts/2022-08-11-Rust-1.63.0.md b/posts/2022-08-11-Rust-1.63.0.md index d98123d21..da79c1be8 100644 --- a/posts/2022-08-11-Rust-1.63.0.md +++ b/posts/2022-08-11-Rust-1.63.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-08-11 title = "Announcing Rust 1.63.0" author = "The Rust Release Team" release = true diff --git a/posts/2022-09-14-cargo-cves.md b/posts/2022-09-14-cargo-cves.md index fec865242..05f3f8d2d 100644 --- a/posts/2022-09-14-cargo-cves.md +++ b/posts/2022-09-14-cargo-cves.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-09-14 title = "Security advisories for Cargo (CVE-2022-36113, CVE-2022-36114)" author = "The Rust Security Response WG" +++ diff --git a/posts/2022-09-15-const-eval-safety-rule-revision.md b/posts/2022-09-15-const-eval-safety-rule-revision.md index 2766a4fa6..c5d8e8eb1 100644 --- a/posts/2022-09-15-const-eval-safety-rule-revision.md +++ b/posts/2022-09-15-const-eval-safety-rule-revision.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-09-15 title = "Const Eval (Un)Safety Rules" author = "Felix Klock" description = "Various ways const-eval can change between Rust versions" diff --git a/posts/2022-09-22-Rust-1.64.0.md b/posts/2022-09-22-Rust-1.64.0.md index ed195d333..42b5b644a 100644 --- a/posts/2022-09-22-Rust-1.64.0.md +++ b/posts/2022-09-22-Rust-1.64.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-09-22 title = "Announcing Rust 1.64.0" author = "The Rust Release Team" release = true diff --git a/posts/2022-10-28-gats-stabilization.md b/posts/2022-10-28-gats-stabilization.md index 383506d4d..1510584d7 100644 --- a/posts/2022-10-28-gats-stabilization.md +++ b/posts/2022-10-28-gats-stabilization.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-10-28 title = "Generic associated types to be stable in Rust 1.65" author = "Jack Huey" description = "Generic associated types will stabilize in Rust 1.65" diff --git a/posts/2022-11-03-Rust-1.65.0.md b/posts/2022-11-03-Rust-1.65.0.md index f09d07e23..da39c47e6 100644 --- a/posts/2022-11-03-Rust-1.65.0.md +++ b/posts/2022-11-03-Rust-1.65.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-11-03 title = "Announcing Rust 1.65.0" author = "The Rust Release Team" release = true diff --git a/posts/2022-12-05-survey-launch.md b/posts/2022-12-05-survey-launch.md index 4b20a058b..a13cbf86c 100644 --- a/posts/2022-12-05-survey-launch.md +++ b/posts/2022-12-05-survey-launch.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-12-05 title = "Launching the 2022 State of Rust Survey" author = "The Rust Survey Working Group" description = "Hearing from you about the seventh year of Rust" diff --git a/posts/2022-12-15-Rust-1.66.0.md b/posts/2022-12-15-Rust-1.66.0.md index ff70f7a12..cfae68bf9 100644 --- a/posts/2022-12-15-Rust-1.66.0.md +++ b/posts/2022-12-15-Rust-1.66.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-12-15 title = "Announcing Rust 1.66.0" author = "The Rust Release Team" release = true diff --git a/posts/2023-01-09-android-ndk-update-r25.md b/posts/2023-01-09-android-ndk-update-r25.md index c1ab2f9ba..a4c184444 100644 --- a/posts/2023-01-09-android-ndk-update-r25.md +++ b/posts/2023-01-09-android-ndk-update-r25.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-01-09 title = "Updating the Android NDK in Rust 1.68" author = "Android Platform Team" description = "Modernizing Android support in Rust" diff --git a/posts/2023-01-10-Rust-1.66.1.md b/posts/2023-01-10-Rust-1.66.1.md index badfcffb9..32ef2dfa6 100644 --- a/posts/2023-01-10-Rust-1.66.1.md +++ b/posts/2023-01-10-Rust-1.66.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-01-10 title = "Announcing Rust 1.66.1" author = "The Rust Release Team" release = true diff --git a/posts/2023-01-10-cve-2022-46176.md b/posts/2023-01-10-cve-2022-46176.md index 0a2a30761..93404dccb 100644 --- a/posts/2023-01-10-cve-2022-46176.md +++ b/posts/2023-01-10-cve-2022-46176.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-01-10 title = "Security advisory for Cargo (CVE-2022-46176)" author = "The Rust Security Response WG" +++ diff --git a/posts/2023-01-20-types-announcement.md b/posts/2023-01-20-types-announcement.md index f9fe4d1a1..962eaeb02 100644 --- a/posts/2023-01-20-types-announcement.md +++ b/posts/2023-01-20-types-announcement.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-01-20 title = "Officially announcing the types team" author = "Jack Huey" description = "An overview of the new types team" diff --git a/posts/2023-01-26-Rust-1.67.0.md b/posts/2023-01-26-Rust-1.67.0.md index 37d0fe31a..6de8aea3e 100644 --- a/posts/2023-01-26-Rust-1.67.0.md +++ b/posts/2023-01-26-Rust-1.67.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-01-26 title = "Announcing Rust 1.67.0" author = "The Rust Release Team" release = true diff --git a/posts/2023-02-01-Rustup-1.25.2.md b/posts/2023-02-01-Rustup-1.25.2.md index aad0ca2c5..ce4db99f6 100644 --- a/posts/2023-02-01-Rustup-1.25.2.md +++ b/posts/2023-02-01-Rustup-1.25.2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-02-01 title = "Announcing Rustup 1.25.2" author = "The rustup working group" +++ diff --git a/posts/2023-02-09-Rust-1.67.1.md b/posts/2023-02-09-Rust-1.67.1.md index db3e5f773..f9fe7ff55 100644 --- a/posts/2023-02-09-Rust-1.67.1.md +++ b/posts/2023-02-09-Rust-1.67.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-02-09 title = "Announcing Rust 1.67.1" author = "The Rust Release Team" release = true diff --git a/posts/2023-03-09-Rust-1.68.0.md b/posts/2023-03-09-Rust-1.68.0.md index 4da0a91ad..ed571e4db 100644 --- a/posts/2023-03-09-Rust-1.68.0.md +++ b/posts/2023-03-09-Rust-1.68.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-03-09 title = "Announcing Rust 1.68.0" author = "The Rust Release Team" release = true diff --git a/posts/2023-03-23-Rust-1.68.1.md b/posts/2023-03-23-Rust-1.68.1.md index f4db51437..68fa78e7f 100644 --- a/posts/2023-03-23-Rust-1.68.1.md +++ b/posts/2023-03-23-Rust-1.68.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-03-23 title = "Announcing Rust 1.68.1" author = "The Rust Release Team" release = true diff --git a/posts/2023-03-28-Rust-1.68.2.md b/posts/2023-03-28-Rust-1.68.2.md index db678d66c..be65c7062 100644 --- a/posts/2023-03-28-Rust-1.68.2.md +++ b/posts/2023-03-28-Rust-1.68.2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-03-28 title = "Announcing Rust 1.68.2" author = "The Rust Release Team" release = true diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/2023-04-20-Rust-1.69.0.md index 9ad2b1119..ac4d98a7c 100644 --- a/posts/2023-04-20-Rust-1.69.0.md +++ b/posts/2023-04-20-Rust-1.69.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-04-20 title = "Announcing Rust 1.69.0" author = "The Rust Release Team" release = true diff --git a/posts/2023-04-25-Rustup-1.26.0.md b/posts/2023-04-25-Rustup-1.26.0.md index 56f3eb10c..70f9a5cb9 100644 --- a/posts/2023-04-25-Rustup-1.26.0.md +++ b/posts/2023-04-25-Rustup-1.26.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-04-25 title = "Announcing Rustup 1.26.0" author = "The Rustup Working Group" +++ diff --git a/posts/2023-05-09-Updating-musl-targets.md b/posts/2023-05-09-Updating-musl-targets.md index df5d18890..2ad8ca65b 100644 --- a/posts/2023-05-09-Updating-musl-targets.md +++ b/posts/2023-05-09-Updating-musl-targets.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-05-09 title = "Updating Rust's Linux musl targets" author = "Wesley Wiser" description = "musl targets will soon ship with musl 1.2" diff --git a/posts/2023-05-29-RustConf.md b/posts/2023-05-29-RustConf.md index 20ecfe311..3372995b8 100644 --- a/posts/2023-05-29-RustConf.md +++ b/posts/2023-05-29-RustConf.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-05-29 title = "On the RustConf keynote" author = "leadership chat membership" team = "leadership chat " diff --git a/posts/2023-06-01-Rust-1.70.0.md b/posts/2023-06-01-Rust-1.70.0.md index 0d45d9808..14ccfbc0f 100644 --- a/posts/2023-06-01-Rust-1.70.0.md +++ b/posts/2023-06-01-Rust-1.70.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-06-01 title = "Announcing Rust 1.70.0" author = "The Rust Release Team" release = true diff --git a/posts/2023-06-20-introducing-leadership-council.md b/posts/2023-06-20-introducing-leadership-council.md index 45f4146ae..8ccfdb5fb 100644 --- a/posts/2023-06-20-introducing-leadership-council.md +++ b/posts/2023-06-20-introducing-leadership-council.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-06-20 title = "Introducing the Rust Leadership Council" author = "Leadership Council" team = "Leadership Council " diff --git a/posts/2023-06-23-improved-api-tokens-for-crates-io.md b/posts/2023-06-23-improved-api-tokens-for-crates-io.md index c298b3bbe..fced5457d 100644 --- a/posts/2023-06-23-improved-api-tokens-for-crates-io.md +++ b/posts/2023-06-23-improved-api-tokens-for-crates-io.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-06-23 title = "Improved API tokens for crates.io" author = "Tobias Bieniek" team = "the crates.io team " diff --git a/posts/2023-07-01-rustfmt-supports-let-else-statements.md b/posts/2023-07-01-rustfmt-supports-let-else-statements.md index 42a594749..3f0e8143e 100644 --- a/posts/2023-07-01-rustfmt-supports-let-else-statements.md +++ b/posts/2023-07-01-rustfmt-supports-let-else-statements.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-07-01 title = "Rustfmt support for let-else statements" author = "Caleb Cartwright" team = "the style team and the rustfmt team " diff --git a/posts/2023-07-05-regex-1.9.md b/posts/2023-07-05-regex-1.9.md index a082e4e3f..cc1a5aee9 100644 --- a/posts/2023-07-05-regex-1.9.md +++ b/posts/2023-07-05-regex-1.9.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-07-05 title = "Announcing regex 1.9" author = "Andrew Gallant" team = "The regex crate team " diff --git a/posts/2023-07-13-Rust-1.71.0.md b/posts/2023-07-13-Rust-1.71.0.md index 1184ac329..3a083616f 100644 --- a/posts/2023-07-13-Rust-1.71.0.md +++ b/posts/2023-07-13-Rust-1.71.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-07-13 title = "Announcing Rust 1.71.0" author = "The Rust Release Team" release = true diff --git a/posts/2023-08-03-Rust-1.71.1.md b/posts/2023-08-03-Rust-1.71.1.md index bd8369439..64d78db60 100644 --- a/posts/2023-08-03-Rust-1.71.1.md +++ b/posts/2023-08-03-Rust-1.71.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-03 title = "Announcing Rust 1.71.1" author = "The Rust Release Team" release = true diff --git a/posts/2023-08-03-cve-2023-38497.md b/posts/2023-08-03-cve-2023-38497.md index d35b8de50..997fc3651 100644 --- a/posts/2023-08-03-cve-2023-38497.md +++ b/posts/2023-08-03-cve-2023-38497.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-03 title = "Security advisory for Cargo (CVE-2023-38497)" author = "The Rust Security Response WG" +++ diff --git a/posts/2023-08-07-Rust-Survey-2023-Results.md b/posts/2023-08-07-Rust-Survey-2023-Results.md index 493ef6679..ccdc5a37d 100644 --- a/posts/2023-08-07-Rust-Survey-2023-Results.md +++ b/posts/2023-08-07-Rust-Survey-2023-Results.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-07 title = "2022 Annual Rust Survey Results" author = "The Rust Survey Working Group in partnership with the Rust Foundation" +++ diff --git a/posts/2023-08-24-Rust-1.72.0.md b/posts/2023-08-24-Rust-1.72.0.md index 1f8eec400..acdae1748 100644 --- a/posts/2023-08-24-Rust-1.72.0.md +++ b/posts/2023-08-24-Rust-1.72.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-24 title = "Announcing Rust 1.72.0" author = "The Rust Release Team" release = true diff --git a/posts/2023-08-29-committing-lockfiles.md b/posts/2023-08-29-committing-lockfiles.md index 446715e1e..ec33d648e 100644 --- a/posts/2023-08-29-committing-lockfiles.md +++ b/posts/2023-08-29-committing-lockfiles.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-29 title = "Change in Guidance on Committing Lockfiles" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/2023-08-30-electing-new-project-directors.md b/posts/2023-08-30-electing-new-project-directors.md index 8c2a2bfc2..864a968ec 100644 --- a/posts/2023-08-30-electing-new-project-directors.md +++ b/posts/2023-08-30-electing-new-project-directors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-30 title = "Electing New Project Directors" author = "Leadership Council" team = "Leadership Council " diff --git a/posts/2023-09-19-Rust-1.72.1.md b/posts/2023-09-19-Rust-1.72.1.md index cdf222c77..f3ddaedd0 100644 --- a/posts/2023-09-19-Rust-1.72.1.md +++ b/posts/2023-09-19-Rust-1.72.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-09-19 title = "Announcing Rust 1.72.1" author = "The Rust Release Team" release = true diff --git a/posts/2023-09-22-crates-io-usage-policy-rfc.md b/posts/2023-09-22-crates-io-usage-policy-rfc.md index 681e1236a..895fd94bc 100644 --- a/posts/2023-09-22-crates-io-usage-policy-rfc.md +++ b/posts/2023-09-22-crates-io-usage-policy-rfc.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-09-22 title = "crates.io Policy Update RFC" author = "Tobias Bieniek" team = "the crates.io team " diff --git a/posts/2023-09-25-Increasing-Apple-Version-Requirements.md b/posts/2023-09-25-Increasing-Apple-Version-Requirements.md index f5f9a5c2f..cd080ae9c 100644 --- a/posts/2023-09-25-Increasing-Apple-Version-Requirements.md +++ b/posts/2023-09-25-Increasing-Apple-Version-Requirements.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-09-25 title = "Increasing the minimum supported Apple platform versions" author = "BlackHoleFox" description = "Modernizing and improving Apple platform support for Rust" diff --git a/posts/2023-10-05-Rust-1.73.0.md b/posts/2023-10-05-Rust-1.73.0.md index 879cdf655..3efe5b5d3 100644 --- a/posts/2023-10-05-Rust-1.73.0.md +++ b/posts/2023-10-05-Rust-1.73.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-10-05 title = "Announcing Rust 1.73.0" author = "The Rust Release Team" release = true diff --git a/posts/2023-10-19-announcing-the-new-rust-project-directors.md b/posts/2023-10-19-announcing-the-new-rust-project-directors.md index 98f0a14fd..ab5d5a799 100644 --- a/posts/2023-10-19-announcing-the-new-rust-project-directors.md +++ b/posts/2023-10-19-announcing-the-new-rust-project-directors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-10-19 title = "Announcing the New Rust Project Directors" author = "Leadership Council" team = "Leadership Council " diff --git a/posts/2023-10-26-broken-badges-and-23k-keywords.md b/posts/2023-10-26-broken-badges-and-23k-keywords.md index 771d49ac2..9c4165db5 100644 --- a/posts/2023-10-26-broken-badges-and-23k-keywords.md +++ b/posts/2023-10-26-broken-badges-and-23k-keywords.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-10-26 title = "A tale of broken badges and 23,000 features" author = "Tobias Bieniek" team = "the crates.io team " diff --git a/posts/2023-10-27-crates-io-non-canonical-downloads.md b/posts/2023-10-27-crates-io-non-canonical-downloads.md index 37679b2de..a0d297c9f 100644 --- a/posts/2023-10-27-crates-io-non-canonical-downloads.md +++ b/posts/2023-10-27-crates-io-non-canonical-downloads.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-10-27 title = "crates.io: Dropping support for non-canonical downloads" author = "Tobias Bieniek" team = "the crates.io team " diff --git a/posts/2023-11-09-parallel-rustc.md b/posts/2023-11-09-parallel-rustc.md index 251f145c4..a64944e1a 100644 --- a/posts/2023-11-09-parallel-rustc.md +++ b/posts/2023-11-09-parallel-rustc.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-11-09 title = "Faster compilation with the parallel front-end in nightly" author = "Nicholas Nethercote" team = "The Parallel Rustc Working Group " diff --git a/posts/2023-11-16-Rust-1.74.0.md b/posts/2023-11-16-Rust-1.74.0.md index d5c4be80b..57cfd35fa 100644 --- a/posts/2023-11-16-Rust-1.74.0.md +++ b/posts/2023-11-16-Rust-1.74.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-11-16 title = "Announcing Rust 1.74.0" author = "The Rust Release Team" release = true diff --git a/posts/2023-12-07-Rust-1.74.1.md b/posts/2023-12-07-Rust-1.74.1.md index 6e9bb3526..35d9026ea 100644 --- a/posts/2023-12-07-Rust-1.74.1.md +++ b/posts/2023-12-07-Rust-1.74.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-12-07 title = "Announcing Rust 1.74.1" author = "The Rust Release Team" release = true diff --git a/posts/2023-12-11-cargo-cache-cleaning.md b/posts/2023-12-11-cargo-cache-cleaning.md index e8ca6e1e0..e944717f2 100644 --- a/posts/2023-12-11-cargo-cache-cleaning.md +++ b/posts/2023-12-11-cargo-cache-cleaning.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-12-11 title = "Cargo cache cleaning" author = "Eric Huss" team = "The Cargo Team " diff --git a/posts/2023-12-15-2024-Edition-CFP.md b/posts/2023-12-15-2024-Edition-CFP.md index c4fa13e87..7b45ceb88 100644 --- a/posts/2023-12-15-2024-Edition-CFP.md +++ b/posts/2023-12-15-2024-Edition-CFP.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-12-15 title = "A Call for Proposals for the Rust 2024 Edition" author = "Ben Striegel on behalf of the Edition 2024 Project Group" +++ diff --git a/posts/2023-12-18-survey-launch.md b/posts/2023-12-18-survey-launch.md index ead0f04cc..f83b08702 100644 --- a/posts/2023-12-18-survey-launch.md +++ b/posts/2023-12-18-survey-launch.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-12-18 title = "Launching the 2023 State of Rust Survey" author = "The Rust Survey Working Group" description = "Share your experience using Rust in the eighth edition of the State of Rust Survey" diff --git a/posts/2023-12-21-async-fn-rpit-in-traits.md b/posts/2023-12-21-async-fn-rpit-in-traits.md index 04179715b..8b02e1bf4 100644 --- a/posts/2023-12-21-async-fn-rpit-in-traits.md +++ b/posts/2023-12-21-async-fn-rpit-in-traits.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-12-21 title = "Announcing `async fn` and return-position `impl Trait` in traits" author = "Tyler Mandry" team = "The Async Working Group " diff --git a/posts/2023-12-28-Rust-1.75.0.md b/posts/2023-12-28-Rust-1.75.0.md index e16ff10c4..16839e752 100644 --- a/posts/2023-12-28-Rust-1.75.0.md +++ b/posts/2023-12-28-Rust-1.75.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-12-28 title = "Announcing Rust 1.75.0" author = "The Rust Release Team" release = true diff --git a/posts/2024-02-06-crates-io-status-codes.md b/posts/2024-02-06-crates-io-status-codes.md index 613934025..fa44e1d0d 100644 --- a/posts/2024-02-06-crates-io-status-codes.md +++ b/posts/2024-02-06-crates-io-status-codes.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-06 title = "crates.io: API status code changes" author = "Tobias Bieniek" team = "the crates.io team " diff --git a/posts/2024-02-08-Rust-1.76.0.md b/posts/2024-02-08-Rust-1.76.0.md index 7881c8a8e..002e0746b 100644 --- a/posts/2024-02-08-Rust-1.76.0.md +++ b/posts/2024-02-08-Rust-1.76.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-08 title = "Announcing Rust 1.76.0" author = "The Rust Release Team" release = true diff --git a/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md b/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md index 988824897..d83d5dbe7 100644 --- a/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md +++ b/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-19 title = "2023 Annual Rust Survey Results" author = "The Rust Survey Team" +++ diff --git a/posts/2024-02-21-Rust-participates-in-GSoC-2024.md b/posts/2024-02-21-Rust-participates-in-GSoC-2024.md index 5b62857aa..a19584e71 100644 --- a/posts/2024-02-21-Rust-participates-in-GSoC-2024.md +++ b/posts/2024-02-21-Rust-participates-in-GSoC-2024.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-21 title = "Rust participates in Google Summer of Code 2024" author = "Jakub Beránek, Jack Huey and Paul Lenz" +++ diff --git a/posts/2024-02-26-Windows-7.md b/posts/2024-02-26-Windows-7.md index ea57c68c8..031a7f437 100644 --- a/posts/2024-02-26-Windows-7.md +++ b/posts/2024-02-26-Windows-7.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-26 title = "Updated baseline standards for Windows targets" author = "Chris Denton on behalf of the Compiler Team" +++ diff --git a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md index ce40c3802..da747ca2e 100644 --- a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md +++ b/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-28 title = 'Clippy: Deprecating `feature = "cargo-clippy"`' author = "The Clippy Team" +++ diff --git a/posts/2024-03-11-Rustup-1.27.0.md b/posts/2024-03-11-Rustup-1.27.0.md index 09e9fa9b9..d27506c04 100644 --- a/posts/2024-03-11-Rustup-1.27.0.md +++ b/posts/2024-03-11-Rustup-1.27.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-03-11 title = "Announcing Rustup 1.27.0" author = "The Rustup Team" +++ diff --git a/posts/2024-03-11-crates-io-download-changes.md b/posts/2024-03-11-crates-io-download-changes.md index 6ccf958ac..9473ce23e 100644 --- a/posts/2024-03-11-crates-io-download-changes.md +++ b/posts/2024-03-11-crates-io-download-changes.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-03-11 title = "crates.io: Download changes" author = "Tobias Bieniek" team = "the crates.io team " diff --git a/posts/2024-03-21-Rust-1.77.0.md b/posts/2024-03-21-Rust-1.77.0.md index acf6decc8..37790290b 100644 --- a/posts/2024-03-21-Rust-1.77.0.md +++ b/posts/2024-03-21-Rust-1.77.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-03-21 title = "Announcing Rust 1.77.0" author = "The Rust Release Team" release = true diff --git a/posts/2024-03-28-Rust-1.77.1.md b/posts/2024-03-28-Rust-1.77.1.md index 6082eb698..7f42ed1bc 100644 --- a/posts/2024-03-28-Rust-1.77.1.md +++ b/posts/2024-03-28-Rust-1.77.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-03-28 title = "Announcing Rust 1.77.1" author = "The Rust Release Team" release = true diff --git a/posts/2024-03-30-i128-layout-update.md b/posts/2024-03-30-i128-layout-update.md index 51b2b4eb4..1392ffda0 100644 --- a/posts/2024-03-30-i128-layout-update.md +++ b/posts/2024-03-30-i128-layout-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-03-30 title = "Changes to `u128`/`i128` layout in 1.77 and 1.78" author = "Trevor Gross" team = "The Rust Lang Team " diff --git a/posts/2024-04-09-Rust-1.77.2.md b/posts/2024-04-09-Rust-1.77.2.md index 3aa735f40..be27f1393 100644 --- a/posts/2024-04-09-Rust-1.77.2.md +++ b/posts/2024-04-09-Rust-1.77.2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-04-09 title = "Announcing Rust 1.77.2" author = "The Rust Security Response WG" release = true diff --git a/posts/2024-04-09-cve-2024-24576.md b/posts/2024-04-09-cve-2024-24576.md index 0e5b0968d..9d3fcdb51 100644 --- a/posts/2024-04-09-cve-2024-24576.md +++ b/posts/2024-04-09-cve-2024-24576.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-04-09 title = "Security advisory for the standard library (CVE-2024-24576)" author = "The Rust Security Response WG" +++ diff --git a/posts/2024-04-09-updates-to-rusts-wasi-targets.md b/posts/2024-04-09-updates-to-rusts-wasi-targets.md index e146ff182..f1ef05c8c 100644 --- a/posts/2024-04-09-updates-to-rusts-wasi-targets.md +++ b/posts/2024-04-09-updates-to-rusts-wasi-targets.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-04-09 title = "Changes to Rust's WASI targets" author = "Yosh Wuyts" +++ diff --git a/posts/2024-05-01-gsoc-2024-selected-projects.md b/posts/2024-05-01-gsoc-2024-selected-projects.md index bd9229e76..8840ee699 100644 --- a/posts/2024-05-01-gsoc-2024-selected-projects.md +++ b/posts/2024-05-01-gsoc-2024-selected-projects.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-01 title = "Announcing Google Summer of Code 2024 selected projects" author = "Jakub Beránek, Jack Huey and Paul Lenz" +++ diff --git a/posts/2024-05-02-Rust-1.78.0.md b/posts/2024-05-02-Rust-1.78.0.md index baeb69d7a..4a654acef 100644 --- a/posts/2024-05-02-Rust-1.78.0.md +++ b/posts/2024-05-02-Rust-1.78.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-02 title = "Announcing Rust 1.78.0" author = "The Rust Release Team" release = true diff --git a/posts/2024-05-06-Rustup-1.27.1.md b/posts/2024-05-06-Rustup-1.27.1.md index 58d6c9b6d..25cd9d05f 100644 --- a/posts/2024-05-06-Rustup-1.27.1.md +++ b/posts/2024-05-06-Rustup-1.27.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-06 title = "Announcing Rustup 1.27.1" author = "The Rustup Team" +++ diff --git a/posts/2024-05-06-check-cfg.md b/posts/2024-05-06-check-cfg.md index f1e0e372a..91918c825 100644 --- a/posts/2024-05-06-check-cfg.md +++ b/posts/2024-05-06-check-cfg.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-06 title = "Automatic checking of cfgs at compile-time" author = "Urgau" team = "The Cargo Team " diff --git a/posts/2024-05-07-OSPP-2024.md b/posts/2024-05-07-OSPP-2024.md index 925fc2647..7ce2923e5 100644 --- a/posts/2024-05-07-OSPP-2024.md +++ b/posts/2024-05-07-OSPP-2024.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-07 title = "Rust participates in OSPP 2024" author = "Amanieu d'Antras, Jack Huey, and Jakub Beránek" +++ diff --git a/posts/2024-05-17-enabling-rust-lld-on-linux.md b/posts/2024-05-17-enabling-rust-lld-on-linux.md index 356c8229c..659e9d66e 100644 --- a/posts/2024-05-17-enabling-rust-lld-on-linux.md +++ b/posts/2024-05-17-enabling-rust-lld-on-linux.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-17 title = "Faster linking times on nightly on Linux using `rust-lld`" author = "Rémy Rakic" team = "the compiler performance working group " diff --git a/posts/2024-06-13-Rust-1.79.0.md b/posts/2024-06-13-Rust-1.79.0.md index 8812c4abc..f548f8fcc 100644 --- a/posts/2024-06-13-Rust-1.79.0.md +++ b/posts/2024-06-13-Rust-1.79.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-06-13 title = "Announcing Rust 1.79.0" author = "The Rust Release Team" release = true diff --git a/posts/2024-06-26-types-team-update.md b/posts/2024-06-26-types-team-update.md index 7aa313c84..325cb1d70 100644 --- a/posts/2024-06-26-types-team-update.md +++ b/posts/2024-06-26-types-team-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-06-26 title = "Types Team Update and Roadmap" author = "lcnr" team = "The Types Team " diff --git a/posts/2024-07-25-Rust-1.80.0.md b/posts/2024-07-25-Rust-1.80.0.md index d21f659c1..f248bab8d 100644 --- a/posts/2024-07-25-Rust-1.80.0.md +++ b/posts/2024-07-25-Rust-1.80.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-07-25 title = "Announcing Rust 1.80.0" author = "The Rust Release Team" release = true diff --git a/posts/2024-07-29-crates-io-development-update.md b/posts/2024-07-29-crates-io-development-update.md index 1aeb14423..f9bba6e3c 100644 --- a/posts/2024-07-29-crates-io-development-update.md +++ b/posts/2024-07-29-crates-io-development-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-07-29 title = "crates.io: development update" author = "Tobias Bieniek" team = "the crates.io team " diff --git a/posts/2024-08-08-Rust-1.80.1.md b/posts/2024-08-08-Rust-1.80.1.md index b65309d9f..c04216f9e 100644 --- a/posts/2024-08-08-Rust-1.80.1.md +++ b/posts/2024-08-08-Rust-1.80.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-08-08 title = "Announcing Rust 1.80.1" author = "The Rust Release Team" release = true diff --git a/posts/2024-08-12-Project-goals.md b/posts/2024-08-12-Project-goals.md index b44213cce..713b1ddf6 100644 --- a/posts/2024-08-12-Project-goals.md +++ b/posts/2024-08-12-Project-goals.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-08-12 title = "Rust Project goals for 2024" author = "Niko Matsakis" team = "Leadership Council " diff --git a/posts/2024-08-26-council-survey.md b/posts/2024-08-26-council-survey.md index 6d5005c7d..b506c3462 100644 --- a/posts/2024-08-26-council-survey.md +++ b/posts/2024-08-26-council-survey.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-08-26 title = "2024 Leadership Council Survey" author = "The Leadership Council" +++ diff --git a/posts/2024-09-04-cve-2024-43402.md b/posts/2024-09-04-cve-2024-43402.md index 5fd74e250..03b021594 100644 --- a/posts/2024-09-04-cve-2024-43402.md +++ b/posts/2024-09-04-cve-2024-43402.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-09-04 title = "Security advisory for the standard library (CVE-2024-43402)" author = "The Rust Security Response WG" +++ diff --git a/posts/2024-09-05-Rust-1.81.0.md b/posts/2024-09-05-Rust-1.81.0.md index b9197f80e..24894af1b 100644 --- a/posts/2024-09-05-Rust-1.81.0.md +++ b/posts/2024-09-05-Rust-1.81.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-09-05 title = "Announcing Rust 1.81.0" author = "The Rust Release Team" release = true diff --git a/posts/2024-09-05-impl-trait-capture-rules.md b/posts/2024-09-05-impl-trait-capture-rules.md index c1bf4bda5..ba7e03eda 100644 --- a/posts/2024-09-05-impl-trait-capture-rules.md +++ b/posts/2024-09-05-impl-trait-capture-rules.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-09-05 title = "Changes to `impl Trait` in Rust 2024" author = "Niko Matsakis" team = "the language team " diff --git a/posts/2024-09-23-Project-Goals-Sep-Update.md b/posts/2024-09-23-Project-Goals-Sep-Update.md index 86f4aec62..c1c0dcb74 100644 --- a/posts/2024-09-23-Project-Goals-Sep-Update.md +++ b/posts/2024-09-23-Project-Goals-Sep-Update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-09-23 title = "September Project Goals Update" author = "Niko Matsakis" team = "Leadership Council " diff --git a/posts/2024-09-24-webassembly-targets-change-in-default-target-features.md b/posts/2024-09-24-webassembly-targets-change-in-default-target-features.md index 19748d157..6682fdf7c 100644 --- a/posts/2024-09-24-webassembly-targets-change-in-default-target-features.md +++ b/posts/2024-09-24-webassembly-targets-change-in-default-target-features.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-09-24 title = "WebAssembly targets: change in default target-features" author = "Alex Crichton" team = "The Compiler Team " diff --git a/posts/2024-10-17-Rust-1.82.0.md b/posts/2024-10-17-Rust-1.82.0.md index 00d026de9..7d3703657 100644 --- a/posts/2024-10-17-Rust-1.82.0.md +++ b/posts/2024-10-17-Rust-1.82.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-10-17 title = "Announcing Rust 1.82.0" author = "The Rust Release Team" release = true diff --git a/posts/2024-10-31-project-goals-oct-update.md b/posts/2024-10-31-project-goals-oct-update.md index 4ac74d7ea..85674a804 100644 --- a/posts/2024-10-31-project-goals-oct-update.md +++ b/posts/2024-10-31-project-goals-oct-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-10-31 title = "October project goals update" author = "Niko Matsakis" team = "Leadership Council " diff --git a/posts/2024-11-06-trademark-update.md b/posts/2024-11-06-trademark-update.md index 36361a2bf..a4b276049 100644 --- a/posts/2024-11-06-trademark-update.md +++ b/posts/2024-11-06-trademark-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-11-06 title = "Next Steps on the Rust Trademark Policy" author = "the Leadership Council" +++ diff --git a/posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md b/posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md index 036752443..fbedb22b2 100644 --- a/posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md +++ b/posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-11-07 title = "gccrs: An alternative compiler for Rust" author = "Arthur Cohen on behalf of the gccrs project" +++ diff --git a/posts/2024-11-07-gsoc-2024-results.md b/posts/2024-11-07-gsoc-2024-results.md index d63be846f..b0afd1244 100644 --- a/posts/2024-11-07-gsoc-2024-results.md +++ b/posts/2024-11-07-gsoc-2024-results.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-11-07 title = "Google Summer of Code 2024 results" author = "Jakub Beránek, Jack Huey and Paul Lenz" +++ diff --git a/posts/2024-11-26-wasip2-tier-2.md b/posts/2024-11-26-wasip2-tier-2.md index 7a985f503..0caf42b9e 100644 --- a/posts/2024-11-26-wasip2-tier-2.md +++ b/posts/2024-11-26-wasip2-tier-2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-11-26 title = "The wasm32-wasip2 Target Has Reached Tier 2 Support" author = "Yosh Wuyts" +++ diff --git a/posts/2024-11-27-Rust-2024-public-testing.md b/posts/2024-11-27-Rust-2024-public-testing.md index ca1973da7..0aaeb973e 100644 --- a/posts/2024-11-27-Rust-2024-public-testing.md +++ b/posts/2024-11-27-Rust-2024-public-testing.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-11-27 title = "Rust 2024 call for testing" author = "Eric Huss & TC" team = "the Edition 2024 Project Group " diff --git a/posts/2024-11-28-Rust-1.83.0.md b/posts/2024-11-28-Rust-1.83.0.md index f5d5e8779..bec4e8242 100644 --- a/posts/2024-11-28-Rust-1.83.0.md +++ b/posts/2024-11-28-Rust-1.83.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-11-28 title = "Announcing Rust 1.83.0" author = "The Rust Release Team" release = true diff --git a/posts/2024-12-05-annual-survey-2024-launch.md b/posts/2024-12-05-annual-survey-2024-launch.md index 8af8e3ad5..d05161353 100644 --- a/posts/2024-12-05-annual-survey-2024-launch.md +++ b/posts/2024-12-05-annual-survey-2024-launch.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-12-05 title = "Launching the 2024 State of Rust Survey" author = "The Rust Survey Working Group" description = "Share your experience using Rust in the ninth edition of the State of Rust Survey" diff --git a/posts/2024-12-16-project-goals-nov-update.md b/posts/2024-12-16-project-goals-nov-update.md index 7ded73917..1c99df117 100644 --- a/posts/2024-12-16-project-goals-nov-update.md +++ b/posts/2024-12-16-project-goals-nov-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-12-16 title = "November project goals update" author = "Niko Matsakis" team = "Leadership Council " diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/2025-01-09-Rust-1.84.0.md index 31b6c5e36..4ac18cb87 100644 --- a/posts/2025-01-09-Rust-1.84.0.md +++ b/posts/2025-01-09-Rust-1.84.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-01-09 title = "Announcing Rust 1.84.0" author = "The Rust Release Team" release = true diff --git a/posts/2025-01-22-rust-2024-beta.md b/posts/2025-01-22-rust-2024-beta.md index ddea97264..c43d7185b 100644 --- a/posts/2025-01-22-rust-2024-beta.md +++ b/posts/2025-01-22-rust-2024-beta.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-01-22 title = "Rust 2024 in beta channel" author = "TC & Eric Huss" team = "the Edition 2024 Project Group " diff --git a/posts/2025-01-23-Project-Goals-Dec-Update.md b/posts/2025-01-23-Project-Goals-Dec-Update.md index 1e76397dc..3479b220e 100644 --- a/posts/2025-01-23-Project-Goals-Dec-Update.md +++ b/posts/2025-01-23-Project-Goals-Dec-Update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-01-23 title = "December Project Goals Update" author = "David Wood and Niko Matsakis" team = "Leadership Council " diff --git a/posts/2025-01-30-Rust-1.84.1.md b/posts/2025-01-30-Rust-1.84.1.md index 44fe93fa7..b873bf611 100644 --- a/posts/2025-01-30-Rust-1.84.1.md +++ b/posts/2025-01-30-Rust-1.84.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-01-30 title = "Announcing Rust 1.84.1" author = "The Rust Release Team" release = true diff --git a/posts/2025-02-05-crates-io-development-update.md b/posts/2025-02-05-crates-io-development-update.md index 39e3391ab..80cec9aaa 100644 --- a/posts/2025-02-05-crates-io-development-update.md +++ b/posts/2025-02-05-crates-io-development-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-02-05 title = "crates.io: development update" author = "Tobias Bieniek" team = "the crates.io team " diff --git a/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md b/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md index 60a6deb19..fe7644c8f 100644 --- a/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md +++ b/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-02-13 title = "2024 State of Rust Survey Results" author = "The Rust Survey Team" +++ diff --git a/posts/2025-02-20-Rust-1.85.0.md b/posts/2025-02-20-Rust-1.85.0.md index 16a9d6cb7..d002cf831 100644 --- a/posts/2025-02-20-Rust-1.85.0.md +++ b/posts/2025-02-20-Rust-1.85.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-02-20 title = "Announcing Rust 1.85.0 and Rust 2024" author = "The Rust Release Team" release = true diff --git a/posts/2025-03-02-Rustup-1.28.0.md b/posts/2025-03-02-Rustup-1.28.0.md index 7a21445d0..f0bd05608 100644 --- a/posts/2025-03-02-Rustup-1.28.0.md +++ b/posts/2025-03-02-Rustup-1.28.0.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-03-02 title = "Announcing Rustup 1.28.0" author = "The Rustup Team" +++ diff --git a/posts/2025-03-03-Project-Goals-Feb-Update.md b/posts/2025-03-03-Project-Goals-Feb-Update.md index 5c73acf1f..d5323d7b2 100644 --- a/posts/2025-03-03-Project-Goals-Feb-Update.md +++ b/posts/2025-03-03-Project-Goals-Feb-Update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-03-03 title = "February Project Goals Update" author = "Rémy Rakic, Niko Matsakis, Santiago Pastorino" team = "Goals Team " diff --git a/posts/2025-03-03-Rust-participates-in-GSoC-2025.md b/posts/2025-03-03-Rust-participates-in-GSoC-2025.md index 924aacad7..f2a9249a4 100644 --- a/posts/2025-03-03-Rust-participates-in-GSoC-2025.md +++ b/posts/2025-03-03-Rust-participates-in-GSoC-2025.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-03-03 title = "Rust participates in Google Summer of Code 2025" author = "Jakub Beránek, Jack Huey and Paul Lenz" +++ diff --git a/posts/2025-03-04-Rustup-1.28.1.md b/posts/2025-03-04-Rustup-1.28.1.md index 6fdd3af47..7109333ea 100644 --- a/posts/2025-03-04-Rustup-1.28.1.md +++ b/posts/2025-03-04-Rustup-1.28.1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-03-04 title = "Announcing rustup 1.28.1" author = "The Rustup Team" +++ diff --git a/posts/inside-rust/2019-09-25-Welcome.md b/posts/inside-rust/2019-09-25-Welcome.md index 81cdf9b33..ad9c1352a 100644 --- a/posts/inside-rust/2019-09-25-Welcome.md +++ b/posts/inside-rust/2019-09-25-Welcome.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-09-25 title = "Welcome to the Inside Rust blog!" author = "Niko Matsakis" description = "A new blog where the Rust team can post updates on the latest developments" diff --git a/posts/inside-rust/2019-10-03-Keeping-secure-with-cargo-audit-0.9.md b/posts/inside-rust/2019-10-03-Keeping-secure-with-cargo-audit-0.9.md index d2149427a..6b7cf47d7 100644 --- a/posts/inside-rust/2019-10-03-Keeping-secure-with-cargo-audit-0.9.md +++ b/posts/inside-rust/2019-10-03-Keeping-secure-with-cargo-audit-0.9.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-03 title = "Keeping Rust projects secure with cargo-audit 0.9: dependency trees, core advisories, unmaintained crates" author = "Tony Arcieri" description = "A look at the new features in cargo-audit 0.9 for ensuring dependencies are free of security advisories" diff --git a/posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md b/posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md index 73834ef71..7305ca228 100644 --- a/posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md +++ b/posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-07 title = "Async Foundations Update: Time for polish!" author = "Niko Matsakis" description = "A new blog where the Rust team can post updates on the latest developments" diff --git a/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md b/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md index 377622209..57c7ec099 100644 --- a/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md +++ b/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-11 title = '''Improving async-await's "Future is not Send" diagnostic''' author = "David Wood" description = "Highlighting a diagnostic improvement for async-await" diff --git a/posts/inside-rust/2019-10-11-Lang-Team-Meeting.md b/posts/inside-rust/2019-10-11-Lang-Team-Meeting.md index 1702e665a..16debbcb7 100644 --- a/posts/inside-rust/2019-10-11-Lang-Team-Meeting.md +++ b/posts/inside-rust/2019-10-11-Lang-Team-Meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-11 title = "2019-10-10 Lang Team Triage Meeting" author = "Niko Matsakis" description = "2019-10-10 Lang Team Triage Meeting" diff --git a/posts/inside-rust/2019-10-15-compiler-team-meeting.md b/posts/inside-rust/2019-10-15-compiler-team-meeting.md index a7b75a9bd..efe6edaff 100644 --- a/posts/inside-rust/2019-10-15-compiler-team-meeting.md +++ b/posts/inside-rust/2019-10-15-compiler-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-15 title = "2019-10-10 Compiler Team Triage Meeting" author = "Wesley Wiser" description = "2019-10-10 Compiler Team Triage Meeting" diff --git a/posts/inside-rust/2019-10-15-infra-team-meeting.md b/posts/inside-rust/2019-10-15-infra-team-meeting.md index dc776c460..97767b71f 100644 --- a/posts/inside-rust/2019-10-15-infra-team-meeting.md +++ b/posts/inside-rust/2019-10-15-infra-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-15 title = "2019-10-10 Infrastructure Team Meeting" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2019-10-17-ecstatic-morse-for-compiler-contributors.md b/posts/inside-rust/2019-10-17-ecstatic-morse-for-compiler-contributors.md index 5789a6ae8..294419378 100644 --- a/posts/inside-rust/2019-10-17-ecstatic-morse-for-compiler-contributors.md +++ b/posts/inside-rust/2019-10-17-ecstatic-morse-for-compiler-contributors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-17 title = "Please welcome ecstatic-morse to compiler-contributors" author = "Niko Matsakis" description = "Please welcome ecstatic-morse to compiler-contributors" diff --git a/posts/inside-rust/2019-10-21-compiler-team-meeting.md b/posts/inside-rust/2019-10-21-compiler-team-meeting.md index dd9fd7691..8bc7bcae3 100644 --- a/posts/inside-rust/2019-10-21-compiler-team-meeting.md +++ b/posts/inside-rust/2019-10-21-compiler-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-21 title = "2019-10-17 Compiler Team Triage Meeting" author = "Wesley Wiser" description = "2019-10-17 Compiler Team Triage Meeting" diff --git a/posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md b/posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md index e13e8ba62..f2574708d 100644 --- a/posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md +++ b/posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-22 title = "Announcing the LLVM ICE-breaker group" author = "Niko Matsakis" description = "A new blog where the Rust team can post updates on the latest developments" diff --git a/posts/inside-rust/2019-10-22-infra-team-meeting.md b/posts/inside-rust/2019-10-22-infra-team-meeting.md index b847dbe81..328cb33db 100644 --- a/posts/inside-rust/2019-10-22-infra-team-meeting.md +++ b/posts/inside-rust/2019-10-22-infra-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-22 title = "2019-10-22 Infrastructure Team Meeting" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md b/posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md index 5be322a1a..a7f393452 100644 --- a/posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md +++ b/posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-24 title = "docs.rs outage postmortem" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md b/posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md index b99fee2bb..5c8ba7804 100644 --- a/posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md +++ b/posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-24 title = "Please welcome pnkfelix as compiler team co-lead!" author = "Niko Matsakis" description = "pnkfelix added as compiler-team co-lead" diff --git a/posts/inside-rust/2019-10-25-planning-meeting-update.md b/posts/inside-rust/2019-10-25-planning-meeting-update.md index d4bcffe48..e9c1511cb 100644 --- a/posts/inside-rust/2019-10-25-planning-meeting-update.md +++ b/posts/inside-rust/2019-10-25-planning-meeting-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-25 title = "Planning meeting update" author = "Niko Matsakis" description = "Planning meeting update" diff --git a/posts/inside-rust/2019-10-28-rustc-learning-working-group-introduction.md b/posts/inside-rust/2019-10-28-rustc-learning-working-group-introduction.md index 60c69db1b..6deedbfea 100644 --- a/posts/inside-rust/2019-10-28-rustc-learning-working-group-introduction.md +++ b/posts/inside-rust/2019-10-28-rustc-learning-working-group-introduction.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-28 title = "The Rustc Dev Guide Working Group - An Introduction" author = "Amanjeev Sethi" description = "introduction rustc dev guide working group useful links" diff --git a/posts/inside-rust/2019-10-29-infra-team-meeting.md b/posts/inside-rust/2019-10-29-infra-team-meeting.md index ff0785380..3ad031ecb 100644 --- a/posts/inside-rust/2019-10-29-infra-team-meeting.md +++ b/posts/inside-rust/2019-10-29-infra-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-29 title = "2019-10-29 Infrastructure Team Meeting" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2019-10-30-compiler-team-meeting.md b/posts/inside-rust/2019-10-30-compiler-team-meeting.md index 72f521ab3..d10de84c5 100644 --- a/posts/inside-rust/2019-10-30-compiler-team-meeting.md +++ b/posts/inside-rust/2019-10-30-compiler-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-10-30 title = "2019-10-24 Compiler Team Triage Meeting" author = "Wesley Wiser" description = "2019-10-24 Compiler Team Triage Meeting" diff --git a/posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md b/posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md index fadfe223a..61654c3c9 100644 --- a/posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md +++ b/posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-04 title = "Clippy is removing its plugin interface" author = "Philipp Krones" description = "Now that compiler plugins are deprecated, Clippy is removing its deprecated plugin interface" diff --git a/posts/inside-rust/2019-11-06-infra-team-meeting.md b/posts/inside-rust/2019-11-06-infra-team-meeting.md index 17a3b59d6..12220ac72 100644 --- a/posts/inside-rust/2019-11-06-infra-team-meeting.md +++ b/posts/inside-rust/2019-11-06-infra-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-06 title = "2019-11-05 Infrastructure Team Meeting" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2019-11-07-compiler-team-meeting.md b/posts/inside-rust/2019-11-07-compiler-team-meeting.md index 83a9db0e1..58196b0f1 100644 --- a/posts/inside-rust/2019-11-07-compiler-team-meeting.md +++ b/posts/inside-rust/2019-11-07-compiler-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-07 title = "2019-10-31 Compiler Team Triage Meeting" author = "Wesley Wiser" description = "2019-10-31 Compiler Team Triage Meeting" diff --git a/posts/inside-rust/2019-11-11-compiler-team-meeting.md b/posts/inside-rust/2019-11-11-compiler-team-meeting.md index 22bffeda9..9fa21d66c 100644 --- a/posts/inside-rust/2019-11-11-compiler-team-meeting.md +++ b/posts/inside-rust/2019-11-11-compiler-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-11 title = "2019-11-07 Compiler Team Triage Meeting" author = "Wesley Wiser" description = "2019-11-07 Compiler Team Triage Meeting" diff --git a/posts/inside-rust/2019-11-13-goverance-wg-cfp.md b/posts/inside-rust/2019-11-13-goverance-wg-cfp.md index d1fc82438..47b94cbc1 100644 --- a/posts/inside-rust/2019-11-13-goverance-wg-cfp.md +++ b/posts/inside-rust/2019-11-13-goverance-wg-cfp.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-13 title = "Governance WG Call For Participation" author = "Erin Power" team = "The Governance WG " diff --git a/posts/inside-rust/2019-11-14-evaluating-github-actions.md b/posts/inside-rust/2019-11-14-evaluating-github-actions.md index ec17abd96..7b33b4e4f 100644 --- a/posts/inside-rust/2019-11-14-evaluating-github-actions.md +++ b/posts/inside-rust/2019-11-14-evaluating-github-actions.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-14 title = "Evaluating GitHub Actions" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2019-11-18-infra-team-meeting.md b/posts/inside-rust/2019-11-18-infra-team-meeting.md index d86983a55..d5c567029 100644 --- a/posts/inside-rust/2019-11-18-infra-team-meeting.md +++ b/posts/inside-rust/2019-11-18-infra-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-18 title = "2019-11-12 Infrastructure Team Meeting" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2019-11-19-compiler-team-meeting.md b/posts/inside-rust/2019-11-19-compiler-team-meeting.md index 470dde2f7..deea5fa4e 100644 --- a/posts/inside-rust/2019-11-19-compiler-team-meeting.md +++ b/posts/inside-rust/2019-11-19-compiler-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-19 title = "2019-11-14 Compiler Team Triage Meeting" author = "Wesley Wiser" description = "2019-11-14 Compiler Team Triage Meeting" diff --git a/posts/inside-rust/2019-11-19-infra-team-meeting.md b/posts/inside-rust/2019-11-19-infra-team-meeting.md index bd3f0cf1b..7af6ff795 100644 --- a/posts/inside-rust/2019-11-19-infra-team-meeting.md +++ b/posts/inside-rust/2019-11-19-infra-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-19 title = "2019-11-19 Infrastructure Team Meeting" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2019-11-22-Lang-team-meeting.md b/posts/inside-rust/2019-11-22-Lang-team-meeting.md index 06f3cf16e..affb6b90c 100644 --- a/posts/inside-rust/2019-11-22-Lang-team-meeting.md +++ b/posts/inside-rust/2019-11-22-Lang-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-22 title = "2019-11-14 and 2019-11-21 Lang Team Triage Meetings" author = "Niko Matsakis" description = "2019-11-14 and 2019-11-21 Lang Team Triage Meetings" diff --git a/posts/inside-rust/2019-11-22-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/2019-11-22-upcoming-compiler-team-design-meetings.md index 7a181f51a..1d9108ff1 100644 --- a/posts/inside-rust/2019-11-22-upcoming-compiler-team-design-meetings.md +++ b/posts/inside-rust/2019-11-22-upcoming-compiler-team-design-meetings.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-22 title = "Upcoming compiler-team design meetings" author = "Niko Matsakis" description = "Upcoming compiler-team design meetings" diff --git a/posts/inside-rust/2019-11-25-const-if-match.md b/posts/inside-rust/2019-11-25-const-if-match.md index d8300970e..786e6c518 100644 --- a/posts/inside-rust/2019-11-25-const-if-match.md +++ b/posts/inside-rust/2019-11-25-const-if-match.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-11-25 title = "`if` and `match` in constants on nightly rust" author = "Dylan MacKenzie" team = "WG const-eval " diff --git a/posts/inside-rust/2019-12-02-const-prop-on-by-default.md b/posts/inside-rust/2019-12-02-const-prop-on-by-default.md index 440817146..a78627712 100644 --- a/posts/inside-rust/2019-12-02-const-prop-on-by-default.md +++ b/posts/inside-rust/2019-12-02-const-prop-on-by-default.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-02 title = "Constant propagation is now on by default in nightly" author = "Wesley Wiser" description = "Constant propagation is now on by default in nightly" diff --git a/posts/inside-rust/2019-12-03-governance-wg-meeting.md b/posts/inside-rust/2019-12-03-governance-wg-meeting.md index aeaa2b071..53c5909de 100644 --- a/posts/inside-rust/2019-12-03-governance-wg-meeting.md +++ b/posts/inside-rust/2019-12-03-governance-wg-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-03 title = "Governance Working Group Update" author = "Nell Shamrell-Harrington" team = "the Governance WG " diff --git a/posts/inside-rust/2019-12-04-ide-future.md b/posts/inside-rust/2019-12-04-ide-future.md index cc283d5f6..70b44772d 100644 --- a/posts/inside-rust/2019-12-04-ide-future.md +++ b/posts/inside-rust/2019-12-04-ide-future.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-04 title = "2019-11-18 IDE team meeting" author = "Aleksey Kladov, Igor Matuszewski" team = "the IDE team " diff --git a/posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md b/posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md index 49aa572db..b0dc69b12 100644 --- a/posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md +++ b/posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-09 title = "Announcing the Docs.rs Team" author = "QuietMisdreavus" team = "The Rustdoc Team " diff --git a/posts/inside-rust/2019-12-10-governance-wg-meeting.md b/posts/inside-rust/2019-12-10-governance-wg-meeting.md index c946a976d..c3445ca5c 100644 --- a/posts/inside-rust/2019-12-10-governance-wg-meeting.md +++ b/posts/inside-rust/2019-12-10-governance-wg-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-10 title = "Governance Working Group Update" author = "Niko Matsakis" team = "the Governance WG " diff --git a/posts/inside-rust/2019-12-11-infra-team-meeting.md b/posts/inside-rust/2019-12-11-infra-team-meeting.md index 0225f63f9..7e0f5166b 100644 --- a/posts/inside-rust/2019-12-11-infra-team-meeting.md +++ b/posts/inside-rust/2019-12-11-infra-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-11 title = "2019-12-10 Infrastructure Team Meeting" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md b/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md index d0bb9d906..eded446a7 100644 --- a/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md +++ b/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-18 title = "Bisecting Rust Compiler Regressions with cargo-bisect-rustc" author = "Santiago Pastorino" team = "the compiler team " diff --git a/posts/inside-rust/2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md b/posts/inside-rust/2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md index 708e04327..59f98bd5d 100644 --- a/posts/inside-rust/2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md +++ b/posts/inside-rust/2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-19 title = "Congrats to compiler team members matthewjasper and wesleywiser" author = "Felix S. Klock II" description = "Congrats to compiler team members matthewjasper and wesleywiser" diff --git a/posts/inside-rust/2019-12-20-governance-wg-meeting.md b/posts/inside-rust/2019-12-20-governance-wg-meeting.md index 4cf43d3ff..5adc96559 100644 --- a/posts/inside-rust/2019-12-20-governance-wg-meeting.md +++ b/posts/inside-rust/2019-12-20-governance-wg-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-20 title = "Governance Working Group Update: Meeting 17 December 2019" author = "Val Grimm" team = "The Governance WG " diff --git a/posts/inside-rust/2019-12-20-infra-team-meeting.md b/posts/inside-rust/2019-12-20-infra-team-meeting.md index 7bde3ae4b..1f8e09269 100644 --- a/posts/inside-rust/2019-12-20-infra-team-meeting.md +++ b/posts/inside-rust/2019-12-20-infra-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-20 title = "2019-12-17 Infrastructure Team Meeting" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2019-12-20-wg-learning-update.md b/posts/inside-rust/2019-12-20-wg-learning-update.md index d293c48cc..5faea698d 100644 --- a/posts/inside-rust/2019-12-20-wg-learning-update.md +++ b/posts/inside-rust/2019-12-20-wg-learning-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-20 title = "An Update from WG-Learning" author = "mark-i-m" team = "the Rustc Dev Guide Working Group " diff --git a/posts/inside-rust/2019-12-23-formatting-the-compiler.md b/posts/inside-rust/2019-12-23-formatting-the-compiler.md index 4e9958d33..9e6914d4e 100644 --- a/posts/inside-rust/2019-12-23-formatting-the-compiler.md +++ b/posts/inside-rust/2019-12-23-formatting-the-compiler.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2019-12-23 title = "Formatting the compiler tree" author = "Mark Rousskov" description = "How to rebase and what happened" diff --git a/posts/inside-rust/2020-01-10-cargo-in-2020.md b/posts/inside-rust/2020-01-10-cargo-in-2020.md index 91d317ec8..9d2eab276 100644 --- a/posts/inside-rust/2020-01-10-cargo-in-2020.md +++ b/posts/inside-rust/2020-01-10-cargo-in-2020.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-01-10 title = "Cargo in 2020" author = "Eric Huss" description = "Roadmap for Cargo in 2020" diff --git a/posts/inside-rust/2020-01-10-lang-team-design-meetings.md b/posts/inside-rust/2020-01-10-lang-team-design-meetings.md index bebefaac3..5ca4702cd 100644 --- a/posts/inside-rust/2020-01-10-lang-team-design-meetings.md +++ b/posts/inside-rust/2020-01-10-lang-team-design-meetings.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-01-10 title = "Lang Team Design Meetings" author = "Niko Matsakis" description = "Lang Team Design Meetings" diff --git a/posts/inside-rust/2020-01-14-Goverance-wg-cfp.md b/posts/inside-rust/2020-01-14-Goverance-wg-cfp.md index b30356496..a661ffe1d 100644 --- a/posts/inside-rust/2020-01-14-Goverance-wg-cfp.md +++ b/posts/inside-rust/2020-01-14-Goverance-wg-cfp.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-01-14 title = "Governance Working Group Update: Meeting 14 January 2020" author = "Val Grimm" team = "The Governance WG " diff --git a/posts/inside-rust/2020-01-23-Introducing-cargo-audit-fix-and-more.md b/posts/inside-rust/2020-01-23-Introducing-cargo-audit-fix-and-more.md index 3b8fc9da9..3aaf533cf 100644 --- a/posts/inside-rust/2020-01-23-Introducing-cargo-audit-fix-and-more.md +++ b/posts/inside-rust/2020-01-23-Introducing-cargo-audit-fix-and-more.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-01-23 title = "cargo-audit v0.11: Introducing the `fix` feature, yanked crate detection, and more" author = "Tony Arcieri" description = "Release announcement for cargo-audit v0.11 describing the new features" diff --git a/posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md b/posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md index e6645af70..ddb11d034 100644 --- a/posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md +++ b/posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-01-24 title = "February Lang Team Design Meetings" author = "Niko Matsakis" description = "Lang Team Design Meetings scheduled for February" diff --git a/posts/inside-rust/2020-01-24-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/2020-01-24-upcoming-compiler-team-design-meetings.md index ea43ccfa5..53062718e 100644 --- a/posts/inside-rust/2020-01-24-upcoming-compiler-team-design-meetings.md +++ b/posts/inside-rust/2020-01-24-upcoming-compiler-team-design-meetings.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-01-24 title = "Upcoming compiler-team design meetings" author = "Niko Matsakis" description = "Upcoming compiler-team design meetings" diff --git a/posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md b/posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md index f18a251bb..6f7d47c05 100644 --- a/posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md +++ b/posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-06 title = "Announcing the Cleanup Crew ICE-breaker group" author = "Santiago Pastorino" description = "A new blog where the Rust team can post updates on the latest developments" diff --git a/posts/inside-rust/2020-02-07-compiler-team-meeting.md b/posts/inside-rust/2020-02-07-compiler-team-meeting.md index d79778e75..130d3e952 100644 --- a/posts/inside-rust/2020-02-07-compiler-team-meeting.md +++ b/posts/inside-rust/2020-02-07-compiler-team-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-07 title = "2020-02-06 Compiler Team Triage Meeting" author = "Wesley Wiser" description = "2019-02-06 Compiler Team Triage Meeting" diff --git a/posts/inside-rust/2020-02-11-Goverance-wg.md b/posts/inside-rust/2020-02-11-Goverance-wg.md index 67b1b925c..80f2ba229 100644 --- a/posts/inside-rust/2020-02-11-Goverance-wg.md +++ b/posts/inside-rust/2020-02-11-Goverance-wg.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-11 title = "Governance Working Group Update: Meeting 11 February 2020" author = "Val Grimm" team = "The Governance WG " diff --git a/posts/inside-rust/2020-02-14-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/2020-02-14-upcoming-compiler-team-design-meetings.md index be1de7641..497fd8050 100644 --- a/posts/inside-rust/2020-02-14-upcoming-compiler-team-design-meetings.md +++ b/posts/inside-rust/2020-02-14-upcoming-compiler-team-design-meetings.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-14 title = "Upcoming compiler-team design meetings" author = "Niko Matsakis" description = "Upcoming compiler-team design meetings" diff --git a/posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md b/posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md index 990e9c6ba..7bda121c8 100644 --- a/posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md +++ b/posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-20 title = "Please welcome jtgeibel as crates.io team co-lead!" author = "Sean Griffin" description = "jtgeibel added as crates.io team co-lead" diff --git a/posts/inside-rust/2020-02-25-intro-rustc-self-profile.md b/posts/inside-rust/2020-02-25-intro-rustc-self-profile.md index 4b0708f5b..9dac2a0fa 100644 --- a/posts/inside-rust/2020-02-25-intro-rustc-self-profile.md +++ b/posts/inside-rust/2020-02-25-intro-rustc-self-profile.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-25 title = "Intro to rustc's self profiler" author = "Wesley Wiser" description = "Learn how to use the -Zself-profile rustc flag" diff --git a/posts/inside-rust/2020-02-26-crates-io-incident-report.md b/posts/inside-rust/2020-02-26-crates-io-incident-report.md index 1db31f1f0..8de0903c1 100644 --- a/posts/inside-rust/2020-02-26-crates-io-incident-report.md +++ b/posts/inside-rust/2020-02-26-crates-io-incident-report.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-26 title = "crates.io incident report for 2020-02-20" author = "Pietro Albini" team = "the crates.io team " diff --git a/posts/inside-rust/2020-02-27-Goverance-wg.md b/posts/inside-rust/2020-02-27-Goverance-wg.md index 9c78aec1a..13da05c8e 100644 --- a/posts/inside-rust/2020-02-27-Goverance-wg.md +++ b/posts/inside-rust/2020-02-27-Goverance-wg.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-27 title = "Governance Working Group Update: Meeting 27 February 2020" author = "Val Grimm" team = "The Governance WG " diff --git a/posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md b/posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md index 5db59970e..f8b217cd1 100644 --- a/posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md +++ b/posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-27 title = "Announcing the first FFI-unwind project design meeting" author = "Kyle Strand, Niko Matsakis, and Amanieu d'Antras" description = "First design meeting for the FFI-unwind project" diff --git a/posts/inside-rust/2020-02-27-pietro-joins-core-team.md b/posts/inside-rust/2020-02-27-pietro-joins-core-team.md index 859c1c29f..9f6f9fd06 100644 --- a/posts/inside-rust/2020-02-27-pietro-joins-core-team.md +++ b/posts/inside-rust/2020-02-27-pietro-joins-core-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-02-27 title = "Pietro Albini has joined the core team" author = "Nick Cameron" team = "the core team " diff --git a/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md b/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md index eda99dfde..783762ff7 100644 --- a/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md +++ b/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-04 title = "Recent and future pattern matching improvements" author = 'Mazdak "Centril" Farrokhzad' description = "Reviewing recent pattern matching improvements" diff --git a/posts/inside-rust/2020-03-11-lang-team-design-meetings.md b/posts/inside-rust/2020-03-11-lang-team-design-meetings.md index e3e72136e..62f1faadf 100644 --- a/posts/inside-rust/2020-03-11-lang-team-design-meetings.md +++ b/posts/inside-rust/2020-03-11-lang-team-design-meetings.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-11 title = "March Lang Team Design Meetings" author = "Niko Matsakis" description = "Lang Team Design Meetings scheduled for March" diff --git a/posts/inside-rust/2020-03-13-rename-rustc-guide.md b/posts/inside-rust/2020-03-13-rename-rustc-guide.md index 4375669e6..42f1166ee 100644 --- a/posts/inside-rust/2020-03-13-rename-rustc-guide.md +++ b/posts/inside-rust/2020-03-13-rename-rustc-guide.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-13 title = "The rustc-guide is now rustc-dev-guide" author = "mark-i-m" description = "the guide has been renamed" diff --git a/posts/inside-rust/2020-03-13-twir-new-lead.md b/posts/inside-rust/2020-03-13-twir-new-lead.md index cc594e34e..3fd6c1b78 100644 --- a/posts/inside-rust/2020-03-13-twir-new-lead.md +++ b/posts/inside-rust/2020-03-13-twir-new-lead.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-13 title = "This Week in Rust is looking for a new maintainer." author = "Erin Power" team = "the community team " diff --git a/posts/inside-rust/2020-03-13-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/2020-03-13-upcoming-compiler-team-design-meetings.md index fc57e0b38..fd1882f06 100644 --- a/posts/inside-rust/2020-03-13-upcoming-compiler-team-design-meetings.md +++ b/posts/inside-rust/2020-03-13-upcoming-compiler-team-design-meetings.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-13 title = "Upcoming compiler-team design meetings" author = "Niko Matsakis" description = "Upcoming compiler-team design meetings" diff --git a/posts/inside-rust/2020-03-17-governance-wg.md b/posts/inside-rust/2020-03-17-governance-wg.md index 71a3bbda2..193700860 100644 --- a/posts/inside-rust/2020-03-17-governance-wg.md +++ b/posts/inside-rust/2020-03-17-governance-wg.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-17 title = "Governance Working Group Update: Meeting 12 March 2020" author = "Nell Shamrell-Harrington" team = "The Governance WG " diff --git a/posts/inside-rust/2020-03-18-all-hands-retrospective.md b/posts/inside-rust/2020-03-18-all-hands-retrospective.md index ec252ae50..a86da530f 100644 --- a/posts/inside-rust/2020-03-18-all-hands-retrospective.md +++ b/posts/inside-rust/2020-03-18-all-hands-retrospective.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-18 title = "All Hands Retrospective" author = "Erin Power" team = "The All Hands Organisers " diff --git a/posts/inside-rust/2020-03-19-terminating-rust.md b/posts/inside-rust/2020-03-19-terminating-rust.md index a7ac6f70f..ac20a4dde 100644 --- a/posts/inside-rust/2020-03-19-terminating-rust.md +++ b/posts/inside-rust/2020-03-19-terminating-rust.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-19 title = "Resolving Rust's forward progress guarantees" author = "Mark Rousskov" description = "Should side-effect be the fix?" diff --git a/posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md b/posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md index 0ba1e39be..f49014652 100644 --- a/posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md +++ b/posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-26 title = "rustc-dev-guide Overview" author = "Chris Simpkins" description = "2020-03-26 rustc-dev-guide Overview" diff --git a/posts/inside-rust/2020-03-27-goodbye-docs-team.md b/posts/inside-rust/2020-03-27-goodbye-docs-team.md index e616cd404..b9554e639 100644 --- a/posts/inside-rust/2020-03-27-goodbye-docs-team.md +++ b/posts/inside-rust/2020-03-27-goodbye-docs-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-27 title = "Goodbye, docs team" author = "Steve Klabnik" description = "The docs team is winding down" diff --git a/posts/inside-rust/2020-03-28-traits-sprint-1.md b/posts/inside-rust/2020-03-28-traits-sprint-1.md index 40c3ef7b3..1db7ebdff 100644 --- a/posts/inside-rust/2020-03-28-traits-sprint-1.md +++ b/posts/inside-rust/2020-03-28-traits-sprint-1.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-03-28 title = "Traits working group 2020 sprint 1 summary" author = "Jack Huey" team = "The Traits WG " diff --git a/posts/inside-rust/2020-04-07-update-on-the-github-actions-evaluation.md b/posts/inside-rust/2020-04-07-update-on-the-github-actions-evaluation.md index 1f9b3fae3..54f02cc0a 100644 --- a/posts/inside-rust/2020-04-07-update-on-the-github-actions-evaluation.md +++ b/posts/inside-rust/2020-04-07-update-on-the-github-actions-evaluation.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-04-07 title = "Update on the GitHub Actions evaluation" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2020-04-10-lang-team-design-meetings.md b/posts/inside-rust/2020-04-10-lang-team-design-meetings.md index d0a4146b4..7edeec4ff 100644 --- a/posts/inside-rust/2020-04-10-lang-team-design-meetings.md +++ b/posts/inside-rust/2020-04-10-lang-team-design-meetings.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-04-10 title = "April Lang Team Design Meetings" author = "Josh Triplett" description = "Lang Team Design Meetings scheduled for April" diff --git a/posts/inside-rust/2020-04-10-upcoming-compiler-team-design-meeting.md b/posts/inside-rust/2020-04-10-upcoming-compiler-team-design-meeting.md index 1e3e8b78b..b70cfaa65 100644 --- a/posts/inside-rust/2020-04-10-upcoming-compiler-team-design-meeting.md +++ b/posts/inside-rust/2020-04-10-upcoming-compiler-team-design-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-04-10 title = "Upcoming compiler-team design meetings" author = "Niko Matsakis" description = "Upcoming compiler-team design meetings" diff --git a/posts/inside-rust/2020-04-14-Governance-WG-updated.md b/posts/inside-rust/2020-04-14-Governance-WG-updated.md index dfa4601bc..9e02e62c2 100644 --- a/posts/inside-rust/2020-04-14-Governance-WG-updated.md +++ b/posts/inside-rust/2020-04-14-Governance-WG-updated.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-04-14 title = "Governance Working Group Update: Meeting 09 April 2020" author = "Nell Shamrell-Harrington" team = "The Governance WG " diff --git a/posts/inside-rust/2020-04-23-Governance-wg.md b/posts/inside-rust/2020-04-23-Governance-wg.md index 27aa5ca17..23e36d86a 100644 --- a/posts/inside-rust/2020-04-23-Governance-wg.md +++ b/posts/inside-rust/2020-04-23-Governance-wg.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-04-23 title = "Governance Working Group Update: Meeting 23 April 2020" author = "Val Grimm" team = "The Governance WG " diff --git a/posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md b/posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md index 1ae3a32c9..728d723c3 100644 --- a/posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md +++ b/posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-05-08 title = "Lang Team meetings moving to new time slots" author = "Josh Triplett" description = "The Rust language team design and triage meetings have moved to new time slots" diff --git a/posts/inside-rust/2020-05-18-traits-sprint-2.md b/posts/inside-rust/2020-05-18-traits-sprint-2.md index bd12a6b86..1a95ded76 100644 --- a/posts/inside-rust/2020-05-18-traits-sprint-2.md +++ b/posts/inside-rust/2020-05-18-traits-sprint-2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-05-18 title = "Traits working group 2020 sprint 2 summary" author = "Jack Huey" team = "The Traits WG " diff --git a/posts/inside-rust/2020-05-26-website-retrospective.md b/posts/inside-rust/2020-05-26-website-retrospective.md index 56f66ce83..2779deb29 100644 --- a/posts/inside-rust/2020-05-26-website-retrospective.md +++ b/posts/inside-rust/2020-05-26-website-retrospective.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-05-26 title = "A retrospective on the 2018 rust-lang.org redesign" author = "Nick Cameron" team = "the core team " diff --git a/posts/inside-rust/2020-05-27-contributor-survey.md b/posts/inside-rust/2020-05-27-contributor-survey.md index fd2e4f942..066b71be9 100644 --- a/posts/inside-rust/2020-05-27-contributor-survey.md +++ b/posts/inside-rust/2020-05-27-contributor-survey.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-05-27 title = "2020 Contributor Survey" author = "Niko Matsakis and @mark-i-m" description = "We announce a new survey about the code contribution experience." diff --git a/posts/inside-rust/2020-06-08-new-inline-asm.md b/posts/inside-rust/2020-06-08-new-inline-asm.md index 3dc9b912e..c7bb21bed 100644 --- a/posts/inside-rust/2020-06-08-new-inline-asm.md +++ b/posts/inside-rust/2020-06-08-new-inline-asm.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-06-08 title = "New inline assembly syntax available in nightly" author = "Josh Triplett" description = "Rust has a new inline assembly syntax in nightly, please test" diff --git a/posts/inside-rust/2020-06-08-upcoming-compiler-team-design-meeting.md b/posts/inside-rust/2020-06-08-upcoming-compiler-team-design-meeting.md index 97c796391..26b8db5c3 100644 --- a/posts/inside-rust/2020-06-08-upcoming-compiler-team-design-meeting.md +++ b/posts/inside-rust/2020-06-08-upcoming-compiler-team-design-meeting.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-06-08 title = "Upcoming compiler-team design meetings" author = "Felix Klock" description = "Upcoming compiler-team design meetings" diff --git a/posts/inside-rust/2020-06-09-windows-notification-group.md b/posts/inside-rust/2020-06-09-windows-notification-group.md index 215b668a8..3032abc2e 100644 --- a/posts/inside-rust/2020-06-09-windows-notification-group.md +++ b/posts/inside-rust/2020-06-09-windows-notification-group.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-06-09 title = "Announcing the Windows and ARM notification groups" author = "Niko Matsakis" description = "Announcing the Windows and ARM notification groups" diff --git a/posts/inside-rust/2020-06-29-lto-improvements.md b/posts/inside-rust/2020-06-29-lto-improvements.md index 39d4aadbc..03ad2b48f 100644 --- a/posts/inside-rust/2020-06-29-lto-improvements.md +++ b/posts/inside-rust/2020-06-29-lto-improvements.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-06-29 title = "Disk space and LTO improvements" author = "Eric Huss" description = "Disk space and LTO improvements" diff --git a/posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md b/posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md index 3ce623753..7044c8a63 100644 --- a/posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md +++ b/posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-02 title = "Ownership of the standard library implementation" author = "Ashley Mannix" team = "The Libs team " diff --git a/posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md b/posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md index be1878ef3..ea47b1497 100644 --- a/posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md +++ b/posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-08 title = "Lang team design meeting update" author = "Niko Matsakis" description = "Summary of some of the recent lang team design meetings" diff --git a/posts/inside-rust/2020-07-09-lang-team-path-to-membership.md b/posts/inside-rust/2020-07-09-lang-team-path-to-membership.md index 94c96de11..21d29072e 100644 --- a/posts/inside-rust/2020-07-09-lang-team-path-to-membership.md +++ b/posts/inside-rust/2020-07-09-lang-team-path-to-membership.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-09 title = "Lang team design meeting: path to membership" author = "Niko Matsakis" description = "Lang team design meeting: path to membership" diff --git a/posts/inside-rust/2020-07-17-traits-sprint-3.md b/posts/inside-rust/2020-07-17-traits-sprint-3.md index 2f31647fa..5d04b5c88 100644 --- a/posts/inside-rust/2020-07-17-traits-sprint-3.md +++ b/posts/inside-rust/2020-07-17-traits-sprint-3.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-17 title = "Traits working group 2020 sprint 3 summary" author = "Jack Huey" team = "The Traits WG " diff --git a/posts/inside-rust/2020-07-23-rust-ci-is-moving-to-github-actions.md b/posts/inside-rust/2020-07-23-rust-ci-is-moving-to-github-actions.md index 15f3a1193..49062a093 100644 --- a/posts/inside-rust/2020-07-23-rust-ci-is-moving-to-github-actions.md +++ b/posts/inside-rust/2020-07-23-rust-ci-is-moving-to-github-actions.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-23 title = "Rust's CI is moving to GitHub Actions" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2020-07-27-1.45.1-prerelease.md b/posts/inside-rust/2020-07-27-1.45.1-prerelease.md index 099a51f26..a783596d4 100644 --- a/posts/inside-rust/2020-07-27-1.45.1-prerelease.md +++ b/posts/inside-rust/2020-07-27-1.45.1-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-27 title = "1.45.1 prerelease testing" author = "Mark Rousskov" team = "The Release Team " diff --git a/posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md b/posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md index f0dd1e15a..66db38be5 100644 --- a/posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md +++ b/posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-27 title = "Opening up the Core Team agenda" author = "Pietro Albini" team = "the Core Team " diff --git a/posts/inside-rust/2020-07-29-lang-team-design-meeting-min-const-generics.md b/posts/inside-rust/2020-07-29-lang-team-design-meeting-min-const-generics.md index 8c4e92a9c..31a0f2e4e 100644 --- a/posts/inside-rust/2020-07-29-lang-team-design-meeting-min-const-generics.md +++ b/posts/inside-rust/2020-07-29-lang-team-design-meeting-min-const-generics.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-29 title = "Lang team design meeting: minimal const generics" author = "Niko Matsakis" description = "Minimal const generics meeting report" diff --git a/posts/inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md b/posts/inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md index 7290bbe9e..c0644c727 100644 --- a/posts/inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md +++ b/posts/inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-07-29 title = "Lang team design meeting: well-formedness and type aliases" author = "Niko Matsakis" description = "Well-formedness and type aliases meeting report" diff --git a/posts/inside-rust/2020-08-24-1.46.0-prerelease.md b/posts/inside-rust/2020-08-24-1.46.0-prerelease.md index 77af713d9..584e7e29d 100644 --- a/posts/inside-rust/2020-08-24-1.46.0-prerelease.md +++ b/posts/inside-rust/2020-08-24-1.46.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-08-24 title = "1.46.0 pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2020-08-28-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/2020-08-28-upcoming-compiler-team-design-meetings.md index 078b92890..c187d90d3 100644 --- a/posts/inside-rust/2020-08-28-upcoming-compiler-team-design-meetings.md +++ b/posts/inside-rust/2020-08-28-upcoming-compiler-team-design-meetings.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-08-28 title = "Upcoming compiler-team design meetings" author = "Niko Matsakis" description = "Upcoming compiler-team design meetings" diff --git a/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md b/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md index 5bb42478e..c2cd04646 100644 --- a/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md +++ b/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-08-30 title = "Changes to x.py defaults" author = "Jynn Nelson" team = "the compiler team " diff --git a/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md b/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md index 226232656..e7a1b8c98 100644 --- a/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md +++ b/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-09-17 title = "Intra-doc links close to stabilization" author = "Manish Goregaokar and Jynn Nelson" team = "the rustdoc team " diff --git a/posts/inside-rust/2020-09-18-error-handling-wg-announcement.md b/posts/inside-rust/2020-09-18-error-handling-wg-announcement.md index bc3aa8db3..9b1ed172b 100644 --- a/posts/inside-rust/2020-09-18-error-handling-wg-announcement.md +++ b/posts/inside-rust/2020-09-18-error-handling-wg-announcement.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-09-18 title = "Announcing the Error Handling Project Group" author = "Sean Chen" description = "Announcing the Error Handling Project Group" diff --git a/posts/inside-rust/2020-09-29-Portable-SIMD-PG.md b/posts/inside-rust/2020-09-29-Portable-SIMD-PG.md index 3647167d3..44346383b 100644 --- a/posts/inside-rust/2020-09-29-Portable-SIMD-PG.md +++ b/posts/inside-rust/2020-09-29-Portable-SIMD-PG.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-09-29 title = "Announcing the Portable SIMD Project Group" author = "Jubilee and Lokathor" description = "Announcing the Portable SIMD Project Group" diff --git a/posts/inside-rust/2020-10-06-1.47.0-prerelease.md b/posts/inside-rust/2020-10-06-1.47.0-prerelease.md index 9bf610527..ad184660c 100644 --- a/posts/inside-rust/2020-10-06-1.47.0-prerelease.md +++ b/posts/inside-rust/2020-10-06-1.47.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-10-06 title = "1.47.0 pre-release testing" author = "Mark Rousskov" team = "The Release Team " diff --git a/posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md b/posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md index 93555c6c1..40a44fa84 100644 --- a/posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md +++ b/posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-10-07 title = "1.47.0 second pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2020-10-16-Backlog-Bonanza.md b/posts/inside-rust/2020-10-16-Backlog-Bonanza.md index 67e3bd67a..3988f5abc 100644 --- a/posts/inside-rust/2020-10-16-Backlog-Bonanza.md +++ b/posts/inside-rust/2020-10-16-Backlog-Bonanza.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-10-16 title = "Lang team Backlog Bonanza and Project Proposals" author = "Nicholas Matsakis" team = "the lang team " diff --git a/posts/inside-rust/2020-10-23-Core-team-membership.md b/posts/inside-rust/2020-10-23-Core-team-membership.md index 8c1b514af..8ec9cfcfa 100644 --- a/posts/inside-rust/2020-10-23-Core-team-membership.md +++ b/posts/inside-rust/2020-10-23-Core-team-membership.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-10-23 title = "Core team membership changes" author = "Mark Rousskov" team = "The Core Team " diff --git a/posts/inside-rust/2020-11-11-exploring-pgo-for-the-rust-compiler.md b/posts/inside-rust/2020-11-11-exploring-pgo-for-the-rust-compiler.md index 5ff7ab139..ddff4587e 100644 --- a/posts/inside-rust/2020-11-11-exploring-pgo-for-the-rust-compiler.md +++ b/posts/inside-rust/2020-11-11-exploring-pgo-for-the-rust-compiler.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-11-11 title = "Exploring PGO for the Rust compiler" author = "Michael Woerister" description = "Investigate the effects that profile guided optimization has on rustc's performance" diff --git a/posts/inside-rust/2020-11-12-source-based-code-coverage.md b/posts/inside-rust/2020-11-12-source-based-code-coverage.md index f46de281e..e32a83044 100644 --- a/posts/inside-rust/2020-11-12-source-based-code-coverage.md +++ b/posts/inside-rust/2020-11-12-source-based-code-coverage.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-11-12 title = "Source-based code coverage in nightly" author = "Tyler Mandry" team = "The Compiler Team " diff --git a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md b/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md index b103f7e74..ff52e2ee7 100644 --- a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md +++ b/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-11-15 title = "Using rustc_codegen_cranelift for debug builds" author = "Jynn Nelson" team = "The Compiler Team " diff --git a/posts/inside-rust/2020-11-16-1.48.0-prerelease.md b/posts/inside-rust/2020-11-16-1.48.0-prerelease.md index 0fea8323c..84d144676 100644 --- a/posts/inside-rust/2020-11-16-1.48.0-prerelease.md +++ b/posts/inside-rust/2020-11-16-1.48.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-11-16 title = "1.48.0 pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2020-11-23-What-the-error-handling-project-group-is-working-on.md b/posts/inside-rust/2020-11-23-What-the-error-handling-project-group-is-working-on.md index 1db45d21b..79b429659 100644 --- a/posts/inside-rust/2020-11-23-What-the-error-handling-project-group-is-working-on.md +++ b/posts/inside-rust/2020-11-23-What-the-error-handling-project-group-is-working-on.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-11-23 title = "What the Error Handling Project Group is Working On" author = "Sean Chen" team = "the library team " diff --git a/posts/inside-rust/2020-12-14-changes-to-compiler-team.md b/posts/inside-rust/2020-12-14-changes-to-compiler-team.md index 13abd5d43..03866ca7c 100644 --- a/posts/inside-rust/2020-12-14-changes-to-compiler-team.md +++ b/posts/inside-rust/2020-12-14-changes-to-compiler-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-12-14 title = "Changes to Rust compiler team" author = "Felix S. Klock II" description = "recent leadership and membership changes" diff --git a/posts/inside-rust/2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md b/posts/inside-rust/2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md index 1128f8eb6..2e44b0af4 100644 --- a/posts/inside-rust/2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md +++ b/posts/inside-rust/2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-12-28 title = "Please welcome cjgillot and Nadrieril to compiler-contributors" author = "Wesley Wiser" description = "Please welcome cjgillot and Nadrieril to compiler-contributors" diff --git a/posts/inside-rust/2020-12-29-1.49.0-prerelease.md b/posts/inside-rust/2020-12-29-1.49.0-prerelease.md index c146d5409..4a51dcdbc 100644 --- a/posts/inside-rust/2020-12-29-1.49.0-prerelease.md +++ b/posts/inside-rust/2020-12-29-1.49.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2020-12-29 title = "1.49.0 pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md b/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md index 7fcb2e2e1..9dd55e33e 100644 --- a/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md +++ b/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-01-15 title = "Rustdoc performance improvements" author = "Jynn Nelson and Guillaume Gomez" team = "The Rustdoc Team " diff --git a/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md b/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md index 2cb3bcf4e..f78662fa8 100644 --- a/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md +++ b/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-01-19 title = "Changes to the Rustdoc team" author = "Guillaume Gomez" description = "leadership and membership additions" diff --git a/posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md b/posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md index 10b1c65e6..c3533afa3 100644 --- a/posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md +++ b/posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-01-26 title = "Rust & the case of the disappearing stack frames" author = "Kyle Strand" description = "introducing an exploration of how `longjmp` and similar functions can be handled in Rust" diff --git a/posts/inside-rust/2021-02-01-davidtwco-jackhuey-compiler-members.md b/posts/inside-rust/2021-02-01-davidtwco-jackhuey-compiler-members.md index 72e3741d7..d7e403fe6 100644 --- a/posts/inside-rust/2021-02-01-davidtwco-jackhuey-compiler-members.md +++ b/posts/inside-rust/2021-02-01-davidtwco-jackhuey-compiler-members.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-02-01 title = "Welcoming David Wood to compiler team and Jack Huey to compiler-contributors" author = "Wesley Wiser" description = "Please welcome David Wood to the compiler team and Jack Huey to compiler-contributors" diff --git a/posts/inside-rust/2021-02-03-lang-team-feb-update.md b/posts/inside-rust/2021-02-03-lang-team-feb-update.md index 68df3eaa9..58d928e17 100644 --- a/posts/inside-rust/2021-02-03-lang-team-feb-update.md +++ b/posts/inside-rust/2021-02-03-lang-team-feb-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-02-03 title = "Lang team February update" author = "Niko Matsakis" description = "Lang team February update" diff --git a/posts/inside-rust/2021-02-09-1.50.0-prerelease.md b/posts/inside-rust/2021-02-09-1.50.0-prerelease.md index ae6e2ddde..12d1cb1a9 100644 --- a/posts/inside-rust/2021-02-09-1.50.0-prerelease.md +++ b/posts/inside-rust/2021-02-09-1.50.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-02-09 title = "1.50.0 pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md b/posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md index cc0370f2b..5f55b1c49 100644 --- a/posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md +++ b/posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-02-15 title = "March Sprint for rustc: Shrink Memory Usage" author = "Felix Klock" team = "The Compiler Team " diff --git a/posts/inside-rust/2021-03-03-lang-team-mar-update.md b/posts/inside-rust/2021-03-03-lang-team-mar-update.md index 774d9586d..c6ea14be4 100644 --- a/posts/inside-rust/2021-03-03-lang-team-mar-update.md +++ b/posts/inside-rust/2021-03-03-lang-team-mar-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-03-03 title = "Lang team March update" author = "Niko Matsakis" description = "Lang team March update" diff --git a/posts/inside-rust/2021-03-04-planning-rust-2021.md b/posts/inside-rust/2021-03-04-planning-rust-2021.md index 555a7323c..cbb1ea347 100644 --- a/posts/inside-rust/2021-03-04-planning-rust-2021.md +++ b/posts/inside-rust/2021-03-04-planning-rust-2021.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-03-04 title = "Planning the Rust 2021 Edition" author = "Ryan Levick" team = "The Rust 2021 Edition Working Group " diff --git a/posts/inside-rust/2021-03-23-1.51.0-prerelease.md b/posts/inside-rust/2021-03-23-1.51.0-prerelease.md index fc477f617..3599e0c10 100644 --- a/posts/inside-rust/2021-03-23-1.51.0-prerelease.md +++ b/posts/inside-rust/2021-03-23-1.51.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-03-23 title = "1.51.0 pre-release testing" author = "Mark Rousskov" team = "The Release Team " diff --git a/posts/inside-rust/2021-04-03-core-team-updates.md b/posts/inside-rust/2021-04-03-core-team-updates.md index f0b395031..c9290d2f5 100644 --- a/posts/inside-rust/2021-04-03-core-team-updates.md +++ b/posts/inside-rust/2021-04-03-core-team-updates.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-04-03 title = "Core Team updates" author = "Pietro Albini" team = "the Rust Core Team " diff --git a/posts/inside-rust/2021-04-15-compiler-team-april-steering-cycle.md b/posts/inside-rust/2021-04-15-compiler-team-april-steering-cycle.md index e4b694d32..52af5535d 100644 --- a/posts/inside-rust/2021-04-15-compiler-team-april-steering-cycle.md +++ b/posts/inside-rust/2021-04-15-compiler-team-april-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-04-15 title = "Rust Compiler April Steering Cycle" author = "Felix Klock" description = "The compiler team's April steering cycle" diff --git a/posts/inside-rust/2021-04-17-lang-team-apr-update.md b/posts/inside-rust/2021-04-17-lang-team-apr-update.md index 3f4079c29..7eb2b8f4d 100644 --- a/posts/inside-rust/2021-04-17-lang-team-apr-update.md +++ b/posts/inside-rust/2021-04-17-lang-team-apr-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-04-17 title = "Lang team April update" author = "Niko Matsakis" description = "Lang team April update" diff --git a/posts/inside-rust/2021-04-20-jsha-rustdoc-member.md b/posts/inside-rust/2021-04-20-jsha-rustdoc-member.md index d16de19b8..f85240269 100644 --- a/posts/inside-rust/2021-04-20-jsha-rustdoc-member.md +++ b/posts/inside-rust/2021-04-20-jsha-rustdoc-member.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-04-20 title = "Jacob Hoffman-Andrews joins the Rustdoc team" author = "Guillaume Gomez" description = "new rustdoc team member" diff --git a/posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md b/posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md index 361b0f361..dd8970f13 100644 --- a/posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md +++ b/posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-04-26 title = "Congrats to compiler team member Aaron Hill" author = "Wesley Wiser" description = "Congrats to compiler team member Aaron Hill" diff --git a/posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md b/posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md index a892b5936..d502d737a 100644 --- a/posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md +++ b/posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-04-28 title = "Rustup 1.24.0 release incident report for 2021-04-27" author = "Daniel Silverstone" team = "the Rustup team " diff --git a/posts/inside-rust/2021-05-04-1.52.0-prerelease.md b/posts/inside-rust/2021-05-04-1.52.0-prerelease.md index a01aabfb9..c7229049e 100644 --- a/posts/inside-rust/2021-05-04-1.52.0-prerelease.md +++ b/posts/inside-rust/2021-05-04-1.52.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-05-04 title = "1.52.0 pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2021-05-04-core-team-update.md b/posts/inside-rust/2021-05-04-core-team-update.md index 225439649..61e82d114 100644 --- a/posts/inside-rust/2021-05-04-core-team-update.md +++ b/posts/inside-rust/2021-05-04-core-team-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-05-04 title = "Core Team Update: May 2021" author = "Steve Klabnik" team = "The Core Team " diff --git a/posts/inside-rust/2021-06-15-1.53.0-prelease.md b/posts/inside-rust/2021-06-15-1.53.0-prelease.md index af0dd3ebe..cc608bc03 100644 --- a/posts/inside-rust/2021-06-15-1.53.0-prelease.md +++ b/posts/inside-rust/2021-06-15-1.53.0-prelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-06-15 title = "1.53.0 pre-release testing" author = "Mark Rousskov" team = "The Release Team " diff --git a/posts/inside-rust/2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md b/posts/inside-rust/2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md index 642427bbd..242cb98f5 100644 --- a/posts/inside-rust/2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md +++ b/posts/inside-rust/2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-06-15 title = "Please welcome Boxy, Léo Lanteri Thauvin and the8472 to compiler-contributors" author = "Wesley Wiser" description = "Please welcome Boxy, Léo Lanteri Thauvin and the8472 to compiler-contributors" diff --git a/posts/inside-rust/2021-06-23-compiler-team-june-steering-cycle.md b/posts/inside-rust/2021-06-23-compiler-team-june-steering-cycle.md index 7db539e94..5ce19105c 100644 --- a/posts/inside-rust/2021-06-23-compiler-team-june-steering-cycle.md +++ b/posts/inside-rust/2021-06-23-compiler-team-june-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-06-23 title = "Rust Compiler June Steering Cycle" author = "Felix Klock" description = "The compiler team's June steering cycle" diff --git a/posts/inside-rust/2021-07-01-What-the-error-handling-project-group-is-working-towards.md b/posts/inside-rust/2021-07-01-What-the-error-handling-project-group-is-working-towards.md index e7d5a6d99..96cc42177 100644 --- a/posts/inside-rust/2021-07-01-What-the-error-handling-project-group-is-working-towards.md +++ b/posts/inside-rust/2021-07-01-What-the-error-handling-project-group-is-working-towards.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-07-01 title = "What the Error Handling Project Group is Working Towards" author = "Jane Lusby" team = "the library team " diff --git a/posts/inside-rust/2021-07-02-compiler-team-july-steering-cycle.md b/posts/inside-rust/2021-07-02-compiler-team-july-steering-cycle.md index f961a3e35..5f565664c 100644 --- a/posts/inside-rust/2021-07-02-compiler-team-july-steering-cycle.md +++ b/posts/inside-rust/2021-07-02-compiler-team-july-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-07-02 title = "Rust Compiler July Steering Cycle" author = "Felix Klock" description = "The compiler team's July steering cycle" diff --git a/posts/inside-rust/2021-07-12-Lang-team-july-update.md b/posts/inside-rust/2021-07-12-Lang-team-july-update.md index 9df5d5ad7..77a982b92 100644 --- a/posts/inside-rust/2021-07-12-Lang-team-july-update.md +++ b/posts/inside-rust/2021-07-12-Lang-team-july-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-07-12 title = "Lang team July update" author = "Niko Matsakis" description = "Lang team July update" diff --git a/posts/inside-rust/2021-07-26-1.54.0-prerelease.md b/posts/inside-rust/2021-07-26-1.54.0-prerelease.md index f252743e5..204efbc23 100644 --- a/posts/inside-rust/2021-07-26-1.54.0-prerelease.md +++ b/posts/inside-rust/2021-07-26-1.54.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-07-26 title = "1.54.0 pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2021-07-30-compiler-team-august-steering-cycle.md b/posts/inside-rust/2021-07-30-compiler-team-august-steering-cycle.md index db1e8c9ab..47c99176e 100644 --- a/posts/inside-rust/2021-07-30-compiler-team-august-steering-cycle.md +++ b/posts/inside-rust/2021-07-30-compiler-team-august-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-07-30 title = "Rust Compiler August Steering Cycle" author = "Felix Klock" description = "The compiler team's August steering cycle" diff --git a/posts/inside-rust/2021-08-04-lang-team-aug-update.md b/posts/inside-rust/2021-08-04-lang-team-aug-update.md index c320e2647..0fcf0f185 100644 --- a/posts/inside-rust/2021-08-04-lang-team-aug-update.md +++ b/posts/inside-rust/2021-08-04-lang-team-aug-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-08-04 title = "Lang team August update" author = "Josh Triplett" description = "Lang team August update" diff --git a/posts/inside-rust/2021-09-06-Splitting-const-generics.md b/posts/inside-rust/2021-09-06-Splitting-const-generics.md index 0e008308d..483bf65d5 100644 --- a/posts/inside-rust/2021-09-06-Splitting-const-generics.md +++ b/posts/inside-rust/2021-09-06-Splitting-const-generics.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-09-06 title = "Splitting the const generics features" author = "lcnr" description = "Splitting the const generics features" diff --git a/posts/inside-rust/2021-09-07-1.55.0-prerelease.md b/posts/inside-rust/2021-09-07-1.55.0-prerelease.md index 5abb4b500..ff7788b1b 100644 --- a/posts/inside-rust/2021-09-07-1.55.0-prerelease.md +++ b/posts/inside-rust/2021-09-07-1.55.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-09-07 title = "1.55.0 pre-release testing" author = "Mark Rousskov" team = "The Release Team " diff --git a/posts/inside-rust/2021-10-08-Lang-team-Oct-update.md b/posts/inside-rust/2021-10-08-Lang-team-Oct-update.md index e65eb8429..046a8430a 100644 --- a/posts/inside-rust/2021-10-08-Lang-team-Oct-update.md +++ b/posts/inside-rust/2021-10-08-Lang-team-Oct-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-10-08 title = "Lang team October update" author = "Niko Matsakis" description = "Lang team October update" diff --git a/posts/inside-rust/2021-10-18-1.56.0-prerelease.md b/posts/inside-rust/2021-10-18-1.56.0-prerelease.md index 1e263e5fd..cc0b2d179 100644 --- a/posts/inside-rust/2021-10-18-1.56.0-prerelease.md +++ b/posts/inside-rust/2021-10-18-1.56.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-10-18 title = "1.56.0 pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md b/posts/inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md index a5e0dd9dc..fcf3949f8 100644 --- a/posts/inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md +++ b/posts/inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-11-15 title = "Please welcome The 8472 and Ashley Mannix to Library Contributors" author = "Mara Bos" description = "Please welcome The 8472 and Ashley Mannix to Library Contributors" diff --git a/posts/inside-rust/2021-11-25-in-response-to-the-moderation-team-resignation.md b/posts/inside-rust/2021-11-25-in-response-to-the-moderation-team-resignation.md index f71c6b123..f4be272cb 100644 --- a/posts/inside-rust/2021-11-25-in-response-to-the-moderation-team-resignation.md +++ b/posts/inside-rust/2021-11-25-in-response-to-the-moderation-team-resignation.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-11-25 title = "In response to the moderation team resignation" author = "The undersigned" +++ diff --git a/posts/inside-rust/2021-11-30-1.57.0-prerelease.md b/posts/inside-rust/2021-11-30-1.57.0-prerelease.md index 066a3e575..53fe1e463 100644 --- a/posts/inside-rust/2021-11-30-1.57.0-prerelease.md +++ b/posts/inside-rust/2021-11-30-1.57.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-11-30 title = "1.57.0 pre-release testing" author = "Mark Rousskov" team = "The Release Team " diff --git a/posts/inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md b/posts/inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md index 1c297eb2d..f0c7d9236 100644 --- a/posts/inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md +++ b/posts/inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2021-12-17 title = "Follow-up on the moderation issue" author = "Ryan Levick and Mara Bos" team = "the Rust Project " diff --git a/posts/inside-rust/2022-01-11-1.58.0-prerelease.md b/posts/inside-rust/2022-01-11-1.58.0-prerelease.md index 7a5738602..8ddddfc9a 100644 --- a/posts/inside-rust/2022-01-11-1.58.0-prerelease.md +++ b/posts/inside-rust/2022-01-11-1.58.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-01-11 title = "1.58.0 pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2022-01-18-jan-steering-cycle.md b/posts/inside-rust/2022-01-18-jan-steering-cycle.md index 16adc3d35..4d0f0a2b8 100644 --- a/posts/inside-rust/2022-01-18-jan-steering-cycle.md +++ b/posts/inside-rust/2022-01-18-jan-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-01-18 title = "Rust Compiler January 2022 Steering Cycle" author = "Felix Klock" description = "The compiler team's January 2022 steering cycle" diff --git a/posts/inside-rust/2022-02-03-async-in-2022.md b/posts/inside-rust/2022-02-03-async-in-2022.md index 2b0077717..813a276c2 100644 --- a/posts/inside-rust/2022-02-03-async-in-2022.md +++ b/posts/inside-rust/2022-02-03-async-in-2022.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-02-03 title = "Async Rust in 2022" author = "Niko Matsakis and Tyler Mandry" description = "The async working group's goals in 2022" diff --git a/posts/inside-rust/2022-02-11-CTCFT-february.md b/posts/inside-rust/2022-02-11-CTCFT-february.md index e1ef08a8f..88f09091c 100644 --- a/posts/inside-rust/2022-02-11-CTCFT-february.md +++ b/posts/inside-rust/2022-02-11-CTCFT-february.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-02-11 title = "CTCFT 2022-02-21 Agenda" author = "Rust CTCFT Team" +++ diff --git a/posts/inside-rust/2022-02-17-feb-steering-cycle.md b/posts/inside-rust/2022-02-17-feb-steering-cycle.md index 51241586e..d96429413 100644 --- a/posts/inside-rust/2022-02-17-feb-steering-cycle.md +++ b/posts/inside-rust/2022-02-17-feb-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-02-17 title = "Rust Compiler February 2022 Steering Cycle" author = "Felix Klock" description = "The compiler team's February 2022 steering cycle" diff --git a/posts/inside-rust/2022-02-18-lang-team-feb-update.md b/posts/inside-rust/2022-02-18-lang-team-feb-update.md index 667f21144..8017521b4 100644 --- a/posts/inside-rust/2022-02-18-lang-team-feb-update.md +++ b/posts/inside-rust/2022-02-18-lang-team-feb-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-02-18 title = "Lang team February update" author = "Sean Chen" description = "Lang team February update" diff --git a/posts/inside-rust/2022-02-22-1.59.0-prerelease.md b/posts/inside-rust/2022-02-22-1.59.0-prerelease.md index e2bc443ad..16feb9985 100644 --- a/posts/inside-rust/2022-02-22-1.59.0-prerelease.md +++ b/posts/inside-rust/2022-02-22-1.59.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-02-22 title = "1.59.0 pre-release testing" author = "Mark Rousskov" team = "The Release Team " diff --git a/posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md b/posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md index 9b06b92f3..1c39467a0 100644 --- a/posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md +++ b/posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-02-22 title = "Rust Compiler Ambitions for 2022" author = "Felix Klock, Wesley Wiser" description = "The compiler team's concrete initiatives and hopeful aspirations for this year." diff --git a/posts/inside-rust/2022-03-09-lang-team-mar-update.md b/posts/inside-rust/2022-03-09-lang-team-mar-update.md index f03d30e5a..4584522e8 100644 --- a/posts/inside-rust/2022-03-09-lang-team-mar-update.md +++ b/posts/inside-rust/2022-03-09-lang-team-mar-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-03-09 title = "Lang team March update" author = "Niko Matsakis" description = "Lang team March update" diff --git a/posts/inside-rust/2022-03-11-mar-steering-cycle.md b/posts/inside-rust/2022-03-11-mar-steering-cycle.md index 707c563a0..f243c65e9 100644 --- a/posts/inside-rust/2022-03-11-mar-steering-cycle.md +++ b/posts/inside-rust/2022-03-11-mar-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-03-11 title = "Rust Compiler March 2022 Steering Cycle" author = "Felix Klock" description = "The compiler team's March 2022 steering cycle" diff --git a/posts/inside-rust/2022-03-16-CTCFT-march.md b/posts/inside-rust/2022-03-16-CTCFT-march.md index 0ee920e85..6dec7e6a5 100644 --- a/posts/inside-rust/2022-03-16-CTCFT-march.md +++ b/posts/inside-rust/2022-03-16-CTCFT-march.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-03-16 title = "CTCFT 2022-03-21 Agenda" author = "Rust CTCFT Team" +++ diff --git a/posts/inside-rust/2022-03-31-cargo-team-changes.md b/posts/inside-rust/2022-03-31-cargo-team-changes.md index f6b64d73b..4d655f98f 100644 --- a/posts/inside-rust/2022-03-31-cargo-team-changes.md +++ b/posts/inside-rust/2022-03-31-cargo-team-changes.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-03-31 title = "Changes at the Cargo Team" author = "Eric Huss" team = "The Cargo Team " diff --git a/posts/inside-rust/2022-04-04-1.60.0-prerelease.md b/posts/inside-rust/2022-04-04-1.60.0-prerelease.md index cc2cf8bcb..752aa0a0d 100644 --- a/posts/inside-rust/2022-04-04-1.60.0-prerelease.md +++ b/posts/inside-rust/2022-04-04-1.60.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-04-04 title = "1.60.0 pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2022-04-04-lang-roadmap-2024.md b/posts/inside-rust/2022-04-04-lang-roadmap-2024.md index 6c65a9d2a..2edadc60f 100644 --- a/posts/inside-rust/2022-04-04-lang-roadmap-2024.md +++ b/posts/inside-rust/2022-04-04-lang-roadmap-2024.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-04-04 title = "Rust Lang Roadmap for 2024" author = "Josh Triplett, Niko Matsakis" description = "The language team's concrete initiatives and hopeful aspirations for the Rust 2024 edition." diff --git a/posts/inside-rust/2022-04-06-lang-team-april-update.md b/posts/inside-rust/2022-04-06-lang-team-april-update.md index a351183b4..8fdb60a6f 100644 --- a/posts/inside-rust/2022-04-06-lang-team-april-update.md +++ b/posts/inside-rust/2022-04-06-lang-team-april-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-04-06 title = "Lang team April update" author = "Josh Triplett" description = "Lang team April update" diff --git a/posts/inside-rust/2022-04-12-CTCFT-april.md b/posts/inside-rust/2022-04-12-CTCFT-april.md index 6b8525578..c657f3984 100644 --- a/posts/inside-rust/2022-04-12-CTCFT-april.md +++ b/posts/inside-rust/2022-04-12-CTCFT-april.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-04-12 title = "CTCFT 2022-04-18 Agenda" author = "Rust CTCFT Team" +++ diff --git a/posts/inside-rust/2022-04-15-apr-steering-cycle.md b/posts/inside-rust/2022-04-15-apr-steering-cycle.md index c0f9db585..0763eac0a 100644 --- a/posts/inside-rust/2022-04-15-apr-steering-cycle.md +++ b/posts/inside-rust/2022-04-15-apr-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-04-15 title = "Rust Compiler April 2022 Steering Cycle" author = "Felix Klock" description = "The compiler team's April 2022 steering cycle" diff --git a/posts/inside-rust/2022-04-18-libs-contributors.md b/posts/inside-rust/2022-04-18-libs-contributors.md index 9b847d5d9..9449d7a9b 100644 --- a/posts/inside-rust/2022-04-18-libs-contributors.md +++ b/posts/inside-rust/2022-04-18-libs-contributors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-04-18 title = "Please welcome Thom and Chris to Library Contributors" author = "Mara Bos" description = "Please welcome Thom and Chris to Library Contributors" diff --git a/posts/inside-rust/2022-04-19-imposter-syndrome.md b/posts/inside-rust/2022-04-19-imposter-syndrome.md index 078796a00..ffaa9c8ce 100644 --- a/posts/inside-rust/2022-04-19-imposter-syndrome.md +++ b/posts/inside-rust/2022-04-19-imposter-syndrome.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-04-19 title = "Imposter Syndrome" author = "Jane Lusby, Project Director of Collaboration" team = "Rust Foundation Project Directors " diff --git a/posts/inside-rust/2022-04-20-libs-aspirations.md b/posts/inside-rust/2022-04-20-libs-aspirations.md index 169105e0a..c74034de9 100644 --- a/posts/inside-rust/2022-04-20-libs-aspirations.md +++ b/posts/inside-rust/2022-04-20-libs-aspirations.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-04-20 title = "Rust Library Team Aspirations" author = "Mara Bos" description = "Rust Library Team Aspirations" diff --git a/posts/inside-rust/2022-05-10-CTCFT-may.md b/posts/inside-rust/2022-05-10-CTCFT-may.md index e3c0b3770..7016dd611 100644 --- a/posts/inside-rust/2022-05-10-CTCFT-may.md +++ b/posts/inside-rust/2022-05-10-CTCFT-may.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-05-10 title = "CTCFT 2022-05-16 Agenda" author = "Rust CTCFT Team" +++ diff --git a/posts/inside-rust/2022-05-16-1.61.0-prerelease.md b/posts/inside-rust/2022-05-16-1.61.0-prerelease.md index 728eead15..86ef47590 100644 --- a/posts/inside-rust/2022-05-16-1.61.0-prerelease.md +++ b/posts/inside-rust/2022-05-16-1.61.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-05-16 title = "1.61.0 pre-release testing" author = "Mark Rousskov" team = "The Release Team " diff --git a/posts/inside-rust/2022-05-19-governance-update.md b/posts/inside-rust/2022-05-19-governance-update.md index 3b54975d4..031481521 100644 --- a/posts/inside-rust/2022-05-19-governance-update.md +++ b/posts/inside-rust/2022-05-19-governance-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-05-19 title = "Governance Update" author = "Ryan Levick and Mara Bos" +++ diff --git a/posts/inside-rust/2022-05-26-Concluding-events-mods.md b/posts/inside-rust/2022-05-26-Concluding-events-mods.md index ef802d5e4..e074c4b5e 100644 --- a/posts/inside-rust/2022-05-26-Concluding-events-mods.md +++ b/posts/inside-rust/2022-05-26-Concluding-events-mods.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-05-26 title = "Concluding the events of last November" author = "Khionu Sybiern" team = "The Moderation Team " diff --git a/posts/inside-rust/2022-06-03-jun-steering-cycle.md b/posts/inside-rust/2022-06-03-jun-steering-cycle.md index 9336e7716..79a0a0811 100644 --- a/posts/inside-rust/2022-06-03-jun-steering-cycle.md +++ b/posts/inside-rust/2022-06-03-jun-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-06-03 title = "Rust Compiler June 2022 Steering Cycle" author = "Felix Klock" description = "The compiler team's June 2022 steering cycle" diff --git a/posts/inside-rust/2022-06-21-survey-2021-report.md b/posts/inside-rust/2022-06-21-survey-2021-report.md index 468d24feb..d43f0aebd 100644 --- a/posts/inside-rust/2022-06-21-survey-2021-report.md +++ b/posts/inside-rust/2022-06-21-survey-2021-report.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-06-21 title = "2021 Annual Survey Report" author = "Nick Cameron" description = "Download a data report on the 2021 annual community survey." diff --git a/posts/inside-rust/2022-06-28-1.62.0-prerelease.md b/posts/inside-rust/2022-06-28-1.62.0-prerelease.md index 8381ea933..c4117f516 100644 --- a/posts/inside-rust/2022-06-28-1.62.0-prerelease.md +++ b/posts/inside-rust/2022-06-28-1.62.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-06-28 title = "1.62.0 pre-release testing" author = "Pietro Albini" team = "The Release Team " diff --git a/posts/inside-rust/2022-07-13-clippy-team-changes.md b/posts/inside-rust/2022-07-13-clippy-team-changes.md index 76aa0c871..0fa2394c0 100644 --- a/posts/inside-rust/2022-07-13-clippy-team-changes.md +++ b/posts/inside-rust/2022-07-13-clippy-team-changes.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-07-13 title = "Changes at the Clippy Team" author = "Philipp Krones" team = "The Clippy Team " diff --git a/posts/inside-rust/2022-07-16-1.62.1-prerelease.md b/posts/inside-rust/2022-07-16-1.62.1-prerelease.md index 0ea854090..548e91138 100644 --- a/posts/inside-rust/2022-07-16-1.62.1-prerelease.md +++ b/posts/inside-rust/2022-07-16-1.62.1-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-07-16 title = "1.62.1 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2022-07-27-keyword-generics.md b/posts/inside-rust/2022-07-27-keyword-generics.md index 92a002f44..11eac9c01 100644 --- a/posts/inside-rust/2022-07-27-keyword-generics.md +++ b/posts/inside-rust/2022-07-27-keyword-generics.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-07-27 title = "Announcing the Keyword Generics Initiative" author = "Yoshua Wuyts" team = "The Keyword Generics Initiative " diff --git a/posts/inside-rust/2022-08-08-compiler-team-2022-midyear-report.md b/posts/inside-rust/2022-08-08-compiler-team-2022-midyear-report.md index ba1fee0e4..2448c6c71 100644 --- a/posts/inside-rust/2022-08-08-compiler-team-2022-midyear-report.md +++ b/posts/inside-rust/2022-08-08-compiler-team-2022-midyear-report.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-08-08 title = "Rust Compiler Midyear Report for 2022" author = "Felix Klock, Wesley Wiser" description = "The compiler team's midyear report on its ambitions for 2022." diff --git a/posts/inside-rust/2022-08-09-1.63.0-prerelease.md b/posts/inside-rust/2022-08-09-1.63.0-prerelease.md index f2e60eadb..2a51c3159 100644 --- a/posts/inside-rust/2022-08-09-1.63.0-prerelease.md +++ b/posts/inside-rust/2022-08-09-1.63.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-08-09 title = "1.63.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2022-08-10-libs-contributors.md b/posts/inside-rust/2022-08-10-libs-contributors.md index 4a26a1273..dfe4e253f 100644 --- a/posts/inside-rust/2022-08-10-libs-contributors.md +++ b/posts/inside-rust/2022-08-10-libs-contributors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-08-10 title = "Please welcome Dan to Library Contributors" author = "Mara Bos" team = "the library team " diff --git a/posts/inside-rust/2022-08-16-diagnostic-effort.md b/posts/inside-rust/2022-08-16-diagnostic-effort.md index d59f5f19e..e8645b6ad 100644 --- a/posts/inside-rust/2022-08-16-diagnostic-effort.md +++ b/posts/inside-rust/2022-08-16-diagnostic-effort.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-08-16 title = "Contribute to the diagnostic translation effort!" author = "David Wood" team = "the compiler team " diff --git a/posts/inside-rust/2022-09-19-1.64.0-prerelease.md b/posts/inside-rust/2022-09-19-1.64.0-prerelease.md index afa84b9bf..040d8bd9a 100644 --- a/posts/inside-rust/2022-09-19-1.64.0-prerelease.md +++ b/posts/inside-rust/2022-09-19-1.64.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-09-19 title = "1.64.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2022-09-23-compiler-team-sep-oct-steering-cycle.md b/posts/inside-rust/2022-09-23-compiler-team-sep-oct-steering-cycle.md index e446472c9..033cb09de 100644 --- a/posts/inside-rust/2022-09-23-compiler-team-sep-oct-steering-cycle.md +++ b/posts/inside-rust/2022-09-23-compiler-team-sep-oct-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-09-23 title = "Rust Compiler Early October 2022 Steering Cycle" author = "Felix Klock" description = "The compiler team's early October 2022 steering cycle" diff --git a/posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md b/posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md index 6b6318371..2bbf079bd 100644 --- a/posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md +++ b/posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-09-29 title = "Announcing the Rust Style Team" author = "Josh Triplett" team = "The Rust Style Team " diff --git a/posts/inside-rust/2022-10-06-governance-update.md b/posts/inside-rust/2022-10-06-governance-update.md index c1e609718..490a4e666 100644 --- a/posts/inside-rust/2022-10-06-governance-update.md +++ b/posts/inside-rust/2022-10-06-governance-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-10-06 title = "Governance Update" author = "Ryan Levick" team = "leadership chat " diff --git a/posts/inside-rust/2022-10-31-1.65.0-prerelease.md b/posts/inside-rust/2022-10-31-1.65.0-prerelease.md index e6cbbbb68..29f1eedf9 100644 --- a/posts/inside-rust/2022-10-31-1.65.0-prerelease.md +++ b/posts/inside-rust/2022-10-31-1.65.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-10-31 title = "1.65.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md b/posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md index 2b1f72566..1876626ac 100644 --- a/posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md +++ b/posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-11-17 title = "Async fn in trait MVP comes to nightly" author = "Tyler Mandry" team = "The Rust Async Working Group " diff --git a/posts/inside-rust/2022-11-29-libs-member.md b/posts/inside-rust/2022-11-29-libs-member.md index ceeba3fa7..d0b7ce47c 100644 --- a/posts/inside-rust/2022-11-29-libs-member.md +++ b/posts/inside-rust/2022-11-29-libs-member.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-11-29 title = "Please welcome The 8472 to the Library team" author = "Mara Bos" team = "the library team " diff --git a/posts/inside-rust/2022-12-12-1.66.0-prerelease.md b/posts/inside-rust/2022-12-12-1.66.0-prerelease.md index 93d83bef8..daba13b1b 100644 --- a/posts/inside-rust/2022-12-12-1.66.0-prerelease.md +++ b/posts/inside-rust/2022-12-12-1.66.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2022-12-12 title = "1.66.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-01-24-content-delivery-networks.md b/posts/inside-rust/2023-01-24-content-delivery-networks.md index e75df00aa..bb2217653 100644 --- a/posts/inside-rust/2023-01-24-content-delivery-networks.md +++ b/posts/inside-rust/2023-01-24-content-delivery-networks.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-01-24 title = "Diversifying our Content Delivery Networks" author = "Jan David Nose" team = "The Rust Infrastructure Team " diff --git a/posts/inside-rust/2023-01-25-1.67.0-prerelease.md b/posts/inside-rust/2023-01-25-1.67.0-prerelease.md index 73f538ba6..34d510128 100644 --- a/posts/inside-rust/2023-01-25-1.67.0-prerelease.md +++ b/posts/inside-rust/2023-01-25-1.67.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-01-25 title = "1.67.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-01-30-cargo-sparse-protocol.md b/posts/inside-rust/2023-01-30-cargo-sparse-protocol.md index c62e57a29..084e13005 100644 --- a/posts/inside-rust/2023-01-30-cargo-sparse-protocol.md +++ b/posts/inside-rust/2023-01-30-cargo-sparse-protocol.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-01-30 title = "Help test Cargo's new index protocol" author = "Eric Huss" team = "The Cargo Team " diff --git a/posts/inside-rust/2023-02-07-1.67.1-prerelease.md b/posts/inside-rust/2023-02-07-1.67.1-prerelease.md index 41c657516..b821515d7 100644 --- a/posts/inside-rust/2023-02-07-1.67.1-prerelease.md +++ b/posts/inside-rust/2023-02-07-1.67.1-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-02-07 title = "1.67.1 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-02-08-dns-outage-portmortem.md b/posts/inside-rust/2023-02-08-dns-outage-portmortem.md index 9487d874b..79e2c26f1 100644 --- a/posts/inside-rust/2023-02-08-dns-outage-portmortem.md +++ b/posts/inside-rust/2023-02-08-dns-outage-portmortem.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-02-08 title = "DNS Outage on 2023-01-25" author = "Jan David Nose" team = "The Rust Infrastructure Team " diff --git a/posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md b/posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md index 9cf24a43c..d29ca7814 100644 --- a/posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md +++ b/posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-02-10 title = "Rust Compiler February 2023 Steering Cycle" author = "Felix Klock" description = "The compiler team's Feburary 2023 steering cycle" diff --git a/posts/inside-rust/2023-02-14-lang-advisors.md b/posts/inside-rust/2023-02-14-lang-advisors.md index 5114c550a..3f850b931 100644 --- a/posts/inside-rust/2023-02-14-lang-advisors.md +++ b/posts/inside-rust/2023-02-14-lang-advisors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-02-14 title = "Language team advisors" author = "Josh Triplett, Niko Matsakis" team = "The Rust Lang Team " diff --git a/posts/inside-rust/2023-02-14-lang-team-membership-update.md b/posts/inside-rust/2023-02-14-lang-team-membership-update.md index d0f7763f1..94c16b095 100644 --- a/posts/inside-rust/2023-02-14-lang-team-membership-update.md +++ b/posts/inside-rust/2023-02-14-lang-team-membership-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-02-14 title = "Welcome Tyler Mandry to the Rust language team!" author = "Josh Triplett, Niko Matsakis" team = "The Rust Lang Team " diff --git a/posts/inside-rust/2023-02-22-governance-reform-rfc.md b/posts/inside-rust/2023-02-22-governance-reform-rfc.md index 2b14f8471..57b832b6a 100644 --- a/posts/inside-rust/2023-02-22-governance-reform-rfc.md +++ b/posts/inside-rust/2023-02-22-governance-reform-rfc.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-02-22 title = "Governance Reform RFC Announcement" author = "Jane Losare-Lusby and the Governance Reform WG" team = "leadership chat " diff --git a/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md b/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md index 020fe953a..feb8b26d3 100644 --- a/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md +++ b/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-02-23 title = "Keyword Generics Progress Report: February 2023" author = "Yoshua Wuyts" team = "The Keyword Generics Initiative " diff --git a/posts/inside-rust/2023-03-06-1.68.0-prerelease.md b/posts/inside-rust/2023-03-06-1.68.0-prerelease.md index fd1ac594c..7a47532a0 100644 --- a/posts/inside-rust/2023-03-06-1.68.0-prerelease.md +++ b/posts/inside-rust/2023-03-06-1.68.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-03-06 title = "1.68.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-03-20-1.68.1-prerelease.md b/posts/inside-rust/2023-03-20-1.68.1-prerelease.md index 8aa3cd3a4..3778ec46a 100644 --- a/posts/inside-rust/2023-03-20-1.68.1-prerelease.md +++ b/posts/inside-rust/2023-03-20-1.68.1-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-03-20 title = "1.68.1 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-03-27-1.68.2-prerelease.md b/posts/inside-rust/2023-03-27-1.68.2-prerelease.md index 89de4ecc1..c3ec5adb7 100644 --- a/posts/inside-rust/2023-03-27-1.68.2-prerelease.md +++ b/posts/inside-rust/2023-03-27-1.68.2-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-03-27 title = "1.68.2 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-04-06-cargo-new-members.md b/posts/inside-rust/2023-04-06-cargo-new-members.md index 499ca778c..0c664df95 100644 --- a/posts/inside-rust/2023-04-06-cargo-new-members.md +++ b/posts/inside-rust/2023-04-06-cargo-new-members.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-04-06 title = "Welcome Arlo and Scott to the Cargo Team" author = "Eric Huss" team = "The Cargo Team " diff --git a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md index 85708a4bb..e9db93485 100644 --- a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md +++ b/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-04-12 title = "A note on the Trademark Policy Draft" author = "Ryan Levick, Jane Losare-Lusby, Tyler Mandry, Mark Rousskov, Josh Stone, and Josh Triplett" +++ diff --git a/posts/inside-rust/2023-04-17-1.69.0-prerelease.md b/posts/inside-rust/2023-04-17-1.69.0-prerelease.md index dd5db8150..9a4fac531 100644 --- a/posts/inside-rust/2023-04-17-1.69.0-prerelease.md +++ b/posts/inside-rust/2023-04-17-1.69.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-04-17 title = "1.69.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-05-01-cargo-postmortem.md b/posts/inside-rust/2023-05-01-cargo-postmortem.md index 6a29813d4..161d4797b 100644 --- a/posts/inside-rust/2023-05-01-cargo-postmortem.md +++ b/posts/inside-rust/2023-05-01-cargo-postmortem.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-05-01 title = "Postmortem Analysis in Cargo" author = "Jon Gjengset and Weihang Lo" team = "The Cargo Team " diff --git a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md index 16e5b96d9..66e0211ce 100644 --- a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md +++ b/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-05-03 title = "Stabilizing async fn in traits in 2023" author = "Niko Matsakis and Tyler Mandry" team = "The Rust Async Working Group " diff --git a/posts/inside-rust/2023-05-09-api-token-scopes.md b/posts/inside-rust/2023-05-09-api-token-scopes.md index f04a10723..d1c708fad 100644 --- a/posts/inside-rust/2023-05-09-api-token-scopes.md +++ b/posts/inside-rust/2023-05-09-api-token-scopes.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-05-09 title = "API token scopes" author = "Tobias Bieniek" team = "the crates.io team " diff --git a/posts/inside-rust/2023-05-29-1.70.0-prerelease.md b/posts/inside-rust/2023-05-29-1.70.0-prerelease.md index 0b3662f67..7fcfa8ff0 100644 --- a/posts/inside-rust/2023-05-29-1.70.0-prerelease.md +++ b/posts/inside-rust/2023-05-29-1.70.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-05-29 title = "1.70.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-07-10-1.71.0-prerelease.md b/posts/inside-rust/2023-07-10-1.71.0-prerelease.md index 2ec0c1a00..f1df2b644 100644 --- a/posts/inside-rust/2023-07-10-1.71.0-prerelease.md +++ b/posts/inside-rust/2023-07-10-1.71.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-07-10 title = "1.71.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md b/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md index 2b7607fd7..da221f36a 100644 --- a/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-07-17 title = "Rustc Trait System Refactor Initiative Update" author = "lcnr" team = "The Rustc Trait System Refactor Initiative " diff --git a/posts/inside-rust/2023-07-21-crates-io-postmortem.md b/posts/inside-rust/2023-07-21-crates-io-postmortem.md index 95a885bd6..84e254983 100644 --- a/posts/inside-rust/2023-07-21-crates-io-postmortem.md +++ b/posts/inside-rust/2023-07-21-crates-io-postmortem.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-07-21 title = "crates.io Postmortem: Broken Crate Downloads" author = "Tobias Bieniek" team = "the crates.io team " diff --git a/posts/inside-rust/2023-07-25-leadership-council-update.md b/posts/inside-rust/2023-07-25-leadership-council-update.md index 0acbae43e..ae74e9692 100644 --- a/posts/inside-rust/2023-07-25-leadership-council-update.md +++ b/posts/inside-rust/2023-07-25-leadership-council-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-07-25 title = "July 2023 Leadership Council Update" author = "Leadership Council" team = "Leadership Council " diff --git a/posts/inside-rust/2023-08-01-1.71.1-prerelease.md b/posts/inside-rust/2023-08-01-1.71.1-prerelease.md index 1fd8f040e..5ef380a5f 100644 --- a/posts/inside-rust/2023-08-01-1.71.1-prerelease.md +++ b/posts/inside-rust/2023-08-01-1.71.1-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-01 title = "1.71.1 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-08-02-rotating-compiler-leads.md b/posts/inside-rust/2023-08-02-rotating-compiler-leads.md index 4e75bfcc9..4f5ed4210 100644 --- a/posts/inside-rust/2023-08-02-rotating-compiler-leads.md +++ b/posts/inside-rust/2023-08-02-rotating-compiler-leads.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-02 title = "Rotating Rust compiler team leadership" author = "Wesley Wiser" team = "the compiler team " diff --git a/posts/inside-rust/2023-08-21-1.72.0-prerelease.md b/posts/inside-rust/2023-08-21-1.72.0-prerelease.md index acd3ff85f..abe1b4d8e 100644 --- a/posts/inside-rust/2023-08-21-1.72.0-prerelease.md +++ b/posts/inside-rust/2023-08-21-1.72.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-21 title = "1.72.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-08-24-cargo-config-merging.md b/posts/inside-rust/2023-08-24-cargo-config-merging.md index 292355e4a..2b161cf87 100644 --- a/posts/inside-rust/2023-08-24-cargo-config-merging.md +++ b/posts/inside-rust/2023-08-24-cargo-config-merging.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-24 title = "Cargo changes how arrays in config are merged" author = "Arlo Siemsen" team = "the Cargo team " diff --git a/posts/inside-rust/2023-08-25-leadership-initiatives.md b/posts/inside-rust/2023-08-25-leadership-initiatives.md index 9098a3dde..46b283a6f 100644 --- a/posts/inside-rust/2023-08-25-leadership-initiatives.md +++ b/posts/inside-rust/2023-08-25-leadership-initiatives.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-25 title = "Seeking help for initial Leadership Council initiatives" author = "Mark Rousskov" team = "the leadership council " diff --git a/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md b/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md index 8855d948b..5225f6370 100644 --- a/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md +++ b/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-08-29 title = "Leadership Council Membership Changes" author = "Carol Nichols" team = "the leadership council " diff --git a/posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md b/posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md index b5e465403..c3d567dd9 100644 --- a/posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md +++ b/posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-09-01 title = "crates.io Postmortem: User Uploaded Malware" author = "Adam Harvey" team = "the crates.io team " diff --git a/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md b/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md index a6865f8b4..633170b99 100644 --- a/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md +++ b/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-09-04 title = "Keeping Rust projects secure with cargo-audit 0.18: performance, compatibility and security improvements" author = 'Sergey "Shnatsel" Davidoff' description = "A look at the new features in cargo-audit 0.18 for ensuring dependencies are free of known vulnerabilities" diff --git a/posts/inside-rust/2023-09-08-infra-team-leadership-change.md b/posts/inside-rust/2023-09-08-infra-team-leadership-change.md index 3e2bcc5f6..f212af020 100644 --- a/posts/inside-rust/2023-09-08-infra-team-leadership-change.md +++ b/posts/inside-rust/2023-09-08-infra-team-leadership-change.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-09-08 title = "Leadership change in the Rust Infrastructure Team" author = "Pietro Albini" team = "the infrastructure team " diff --git a/posts/inside-rust/2023-09-14-1.72.1-prerelease.md b/posts/inside-rust/2023-09-14-1.72.1-prerelease.md index fff48821a..305eb02ed 100644 --- a/posts/inside-rust/2023-09-14-1.72.1-prerelease.md +++ b/posts/inside-rust/2023-09-14-1.72.1-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-09-14 title = "1.72.1 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/2023-09-22-project-director-nominees.md index 87d2fe6ef..54cb8a416 100644 --- a/posts/inside-rust/2023-09-22-project-director-nominees.md +++ b/posts/inside-rust/2023-09-22-project-director-nominees.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-09-22 title = "Announcing the Project Director Nominees" author = "Leadership Council" team = "Leadership Council " diff --git a/posts/inside-rust/2023-10-03-1.73.0-prerelease.md b/posts/inside-rust/2023-10-03-1.73.0-prerelease.md index 787612929..50224b658 100644 --- a/posts/inside-rust/2023-10-03-1.73.0-prerelease.md +++ b/posts/inside-rust/2023-10-03-1.73.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-10-03 title = "1.73.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-10-06-polonius-update.md b/posts/inside-rust/2023-10-06-polonius-update.md index c1d93e70a..9a7593662 100644 --- a/posts/inside-rust/2023-10-06-polonius-update.md +++ b/posts/inside-rust/2023-10-06-polonius-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-10-06 title = "Polonius update" author = "Rémy Rakic and Niko Matsakis" team = "The Polonius Working Group " diff --git a/posts/inside-rust/2023-10-23-coroutines.md b/posts/inside-rust/2023-10-23-coroutines.md index 967225040..20f696c0d 100644 --- a/posts/inside-rust/2023-10-23-coroutines.md +++ b/posts/inside-rust/2023-10-23-coroutines.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-10-23 title = "Generators are dead, long live coroutines, generators are back" author = "oli-obk" +++ diff --git a/posts/inside-rust/2023-11-13-1.74.0-prerelease.md b/posts/inside-rust/2023-11-13-1.74.0-prerelease.md index 8944f026a..7fab4046f 100644 --- a/posts/inside-rust/2023-11-13-1.74.0-prerelease.md +++ b/posts/inside-rust/2023-11-13-1.74.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-11-13 title = "1.74.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-11-13-leadership-council-update.md b/posts/inside-rust/2023-11-13-leadership-council-update.md index f77e6fbe3..6695228c2 100644 --- a/posts/inside-rust/2023-11-13-leadership-council-update.md +++ b/posts/inside-rust/2023-11-13-leadership-council-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-11-13 title = "November 2023 Leadership Council Update" author = "Leadership Council" team = "Leadership Council " diff --git a/posts/inside-rust/2023-11-15-spec-vision.md b/posts/inside-rust/2023-11-15-spec-vision.md index 7bdf0161c..351515a82 100644 --- a/posts/inside-rust/2023-11-15-spec-vision.md +++ b/posts/inside-rust/2023-11-15-spec-vision.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-11-15 title = "Our Vision for the Rust Specification" author = "Eric, Felix, Joel and Mara" team = "the specification team " diff --git a/posts/inside-rust/2023-12-05-1.74.1-prerelease.md b/posts/inside-rust/2023-12-05-1.74.1-prerelease.md index d0e3b5268..e9b7b0d35 100644 --- a/posts/inside-rust/2023-12-05-1.74.1-prerelease.md +++ b/posts/inside-rust/2023-12-05-1.74.1-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-12-05 title = "1.74.1 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-12-21-1.75.0-prerelease.md b/posts/inside-rust/2023-12-21-1.75.0-prerelease.md index 150bb14d0..13ba53c15 100644 --- a/posts/inside-rust/2023-12-21-1.75.0-prerelease.md +++ b/posts/inside-rust/2023-12-21-1.75.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-12-21 title = "1.75.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md index c6128bec5..9656afd2d 100644 --- a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2023-12-22 title = "Rustc Trait System Refactor Initiative Update: A call for testing" author = "lcnr" team = "The Rustc Trait System Refactor Initiative " diff --git a/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md b/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md index c7ead8d53..d565a3f31 100644 --- a/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md +++ b/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-01-03 title = "This Development-cycle in Cargo: 1.76" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2024-02-04-1.76.0-prerelease.md b/posts/inside-rust/2024-02-04-1.76.0-prerelease.md index 41d5dc174..359e974e6 100644 --- a/posts/inside-rust/2024-02-04-1.76.0-prerelease.md +++ b/posts/inside-rust/2024-02-04-1.76.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-04 title = "1.76.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2024-02-13-lang-team-colead.md b/posts/inside-rust/2024-02-13-lang-team-colead.md index 8b5c306f7..1b5caab98 100644 --- a/posts/inside-rust/2024-02-13-lang-team-colead.md +++ b/posts/inside-rust/2024-02-13-lang-team-colead.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-13 title = "Announcing Tyler Mandry as Lang Team co-lead" author = "Niko Matsakis" team = "the lang design team " diff --git a/posts/inside-rust/2024-02-13-leadership-council-update.md b/posts/inside-rust/2024-02-13-leadership-council-update.md index 43f7f13bc..532990d03 100644 --- a/posts/inside-rust/2024-02-13-leadership-council-update.md +++ b/posts/inside-rust/2024-02-13-leadership-council-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-13 title = "February 2024 Leadership Council Update" author = "Leadership Council" team = "Leadership Council " diff --git a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md b/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md index f8adf5221..6c32e01eb 100644 --- a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md +++ b/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-13 title = "This Development-cycle in Cargo: 1.77" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md b/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md index 0059e02dd..7a38bb27d 100644 --- a/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md +++ b/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-02-19 title = "Leadership Council March Representative Selections" author = "Leadership Council" team = "Leadership Council " diff --git a/posts/inside-rust/2024-03-17-1.77.0-prerelease.md b/posts/inside-rust/2024-03-17-1.77.0-prerelease.md index 72fe8ee3a..23cad0afa 100644 --- a/posts/inside-rust/2024-03-17-1.77.0-prerelease.md +++ b/posts/inside-rust/2024-03-17-1.77.0-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-03-17 title = "1.77.0 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2024-03-22-2024-edition-update.md b/posts/inside-rust/2024-03-22-2024-edition-update.md index 6605aac27..ebcda4dd5 100644 --- a/posts/inside-rust/2024-03-22-2024-edition-update.md +++ b/posts/inside-rust/2024-03-22-2024-edition-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-03-22 title = "2024 Edition Update" author = "Eric Huss" team = "Edition 2024 Project Group " diff --git a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md index 7f2a1f36c..a84a13f0c 100644 --- a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md +++ b/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-03-26 title = "This Development-cycle in Cargo: 1.78" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2024-03-27-1.77.1-prerelease.md b/posts/inside-rust/2024-03-27-1.77.1-prerelease.md index 947b8a6e5..0ecd430e2 100644 --- a/posts/inside-rust/2024-03-27-1.77.1-prerelease.md +++ b/posts/inside-rust/2024-03-27-1.77.1-prerelease.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-03-27 title = "1.77.1 pre-release testing" author = "Release automation" team = "The Release Team " diff --git a/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md b/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md index 73fb0e3e5..d64c30400 100644 --- a/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md +++ b/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-04-01 title = "Leadership Council March Representative Selections" author = "Eric Huss" team = "Leadership Council " diff --git a/posts/inside-rust/2024-04-12-types-team-leadership.md b/posts/inside-rust/2024-04-12-types-team-leadership.md index 6892c009e..e2d4f3f5f 100644 --- a/posts/inside-rust/2024-04-12-types-team-leadership.md +++ b/posts/inside-rust/2024-04-12-types-team-leadership.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-04-12 title = "Announcing lcnr as Types Team co-lead" author = "Niko Matsakis" team = "the types team " diff --git a/posts/inside-rust/2024-05-07-announcing-project-goals.md b/posts/inside-rust/2024-05-07-announcing-project-goals.md index 27add03a5..0af54f457 100644 --- a/posts/inside-rust/2024-05-07-announcing-project-goals.md +++ b/posts/inside-rust/2024-05-07-announcing-project-goals.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-07 title = "Rust Project Goals Submission Period" author = "Niko Matsakis and Josh Triplett" team = "Leadership Council " diff --git a/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md b/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md index 65dc921c6..8d69520d1 100644 --- a/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md +++ b/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-07 title = "This Development-cycle in Cargo: 1.79" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2024-05-09-rust-leads-summit.md b/posts/inside-rust/2024-05-09-rust-leads-summit.md index 8d67976f5..57f8f6098 100644 --- a/posts/inside-rust/2024-05-09-rust-leads-summit.md +++ b/posts/inside-rust/2024-05-09-rust-leads-summit.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-09 title = "Recap: Rust Leads Summit 2024" author = "Tyler Mandry and Eric Holk" +++ diff --git a/posts/inside-rust/2024-05-14-leadership-council-update.md b/posts/inside-rust/2024-05-14-leadership-council-update.md index 0f77f4ed6..707add30b 100644 --- a/posts/inside-rust/2024-05-14-leadership-council-update.md +++ b/posts/inside-rust/2024-05-14-leadership-council-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-14 title = "May 2024 Leadership Council Update" author = "Eric Huss" team = "Leadership Council " diff --git a/posts/inside-rust/2024-05-28-launching-pad-representative.md b/posts/inside-rust/2024-05-28-launching-pad-representative.md index 1bc4a8eb9..8b5694d29 100644 --- a/posts/inside-rust/2024-05-28-launching-pad-representative.md +++ b/posts/inside-rust/2024-05-28-launching-pad-representative.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-05-28 title = "Welcome James Munns to the Leadership Council" author = "Eric Huss" team = "Leadership Council " diff --git a/posts/inside-rust/2024-06-19-this-development-cycle-in-cargo-1.80.md b/posts/inside-rust/2024-06-19-this-development-cycle-in-cargo-1.80.md index 4f4ce446a..98e3f5173 100644 --- a/posts/inside-rust/2024-06-19-this-development-cycle-in-cargo-1.80.md +++ b/posts/inside-rust/2024-06-19-this-development-cycle-in-cargo-1.80.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-06-19 title = "This Development-cycle in Cargo: 1.80" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md b/posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md index 1f62a3cde..03c4de9dd 100644 --- a/posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md +++ b/posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-08-01 title = "Welcome TC to the Rust language design team!" author = "Niko Matsakis and Tyler Mandry" team = "The Rust Lang Team " diff --git a/posts/inside-rust/2024-08-09-async-closures-call-for-testing.md b/posts/inside-rust/2024-08-09-async-closures-call-for-testing.md index f67c6a8a6..3f9cf1c9b 100644 --- a/posts/inside-rust/2024-08-09-async-closures-call-for-testing.md +++ b/posts/inside-rust/2024-08-09-async-closures-call-for-testing.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-08-09 title = "Async Closures MVP: Call for Testing!" author = "Michael Goulet" team = "The Async Working Group " diff --git a/posts/inside-rust/2024-08-15-this-development-cycle-in-cargo-1.81.md b/posts/inside-rust/2024-08-15-this-development-cycle-in-cargo-1.81.md index ca598529d..449d66c0e 100644 --- a/posts/inside-rust/2024-08-15-this-development-cycle-in-cargo-1.81.md +++ b/posts/inside-rust/2024-08-15-this-development-cycle-in-cargo-1.81.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-08-15 title = "This Development-cycle in Cargo: 1.81" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2024-08-20-leadership-council-repr-selection.md b/posts/inside-rust/2024-08-20-leadership-council-repr-selection.md index 31aeffef5..257b99e1f 100644 --- a/posts/inside-rust/2024-08-20-leadership-council-repr-selection.md +++ b/posts/inside-rust/2024-08-20-leadership-council-repr-selection.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-08-20 title = "Leadership Council September Representative Selections" author = "Eric Huss" team = "Leadership Council " diff --git a/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md b/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md index 2dc067d82..68d56f184 100644 --- a/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md +++ b/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-08-22 title = "Embedded Working Group Community Micro Survey" author = "James Munns" team = "Embedded Devices Working Group " diff --git a/posts/inside-rust/2024-09-02-all-hands.md b/posts/inside-rust/2024-09-02-all-hands.md index 502ac133c..0257e464b 100644 --- a/posts/inside-rust/2024-09-02-all-hands.md +++ b/posts/inside-rust/2024-09-02-all-hands.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-09-02 title = "Save the Date: Rust All Hands 2025" author = "Mara Bos" team = "Leadership Council " diff --git a/posts/inside-rust/2024-09-06-electing-new-project-directors.md b/posts/inside-rust/2024-09-06-electing-new-project-directors.md index 5a5305dec..3802443ae 100644 --- a/posts/inside-rust/2024-09-06-electing-new-project-directors.md +++ b/posts/inside-rust/2024-09-06-electing-new-project-directors.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-09-06 title = "Electing New Project Directors 2024" author = "Leadership Council" team = "Leadership Council " diff --git a/posts/inside-rust/2024-09-06-leadership-council-update.md b/posts/inside-rust/2024-09-06-leadership-council-update.md index 8e3fbf273..dd8a2fce0 100644 --- a/posts/inside-rust/2024-09-06-leadership-council-update.md +++ b/posts/inside-rust/2024-09-06-leadership-council-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-09-06 title = "September 2024 Leadership Council Update" author = "Eric Huss" team = "Leadership Council " diff --git a/posts/inside-rust/2024-09-26-rtn-call-for-testing.md b/posts/inside-rust/2024-09-26-rtn-call-for-testing.md index 4a382024e..46bb57489 100644 --- a/posts/inside-rust/2024-09-26-rtn-call-for-testing.md +++ b/posts/inside-rust/2024-09-26-rtn-call-for-testing.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-09-26 title = "Return type notation MVP: Call for testing!" author = "Michael Goulet" team = "The Async Working Group " diff --git a/posts/inside-rust/2024-09-27-leadership-council-repr-selection.md b/posts/inside-rust/2024-09-27-leadership-council-repr-selection.md index 091b6ccb1..98d3ffb9e 100644 --- a/posts/inside-rust/2024-09-27-leadership-council-repr-selection.md +++ b/posts/inside-rust/2024-09-27-leadership-council-repr-selection.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-09-27 title = "Leadership Council September 2024 Representative Selections" author = "Eric Huss" team = "Leadership Council " diff --git a/posts/inside-rust/2024-10-01-this-development-cycle-in-cargo-1.82.md b/posts/inside-rust/2024-10-01-this-development-cycle-in-cargo-1.82.md index e412a703e..ad134e5df 100644 --- a/posts/inside-rust/2024-10-01-this-development-cycle-in-cargo-1.82.md +++ b/posts/inside-rust/2024-10-01-this-development-cycle-in-cargo-1.82.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-10-01 title = "This Development-cycle in Cargo: 1.82" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2024-10-10-test-infra-oct-2024.md b/posts/inside-rust/2024-10-10-test-infra-oct-2024.md index e06cd0d77..280bf9ad3 100644 --- a/posts/inside-rust/2024-10-10-test-infra-oct-2024.md +++ b/posts/inside-rust/2024-10-10-test-infra-oct-2024.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-10-10 title = "This Month in Our Test Infra: September 2024" author = "Jieyou Xu" team = "the Bootstrap Team " diff --git a/posts/inside-rust/2024-10-31-this-development-cycle-in-cargo-1.83.md b/posts/inside-rust/2024-10-31-this-development-cycle-in-cargo-1.83.md index 2a98e963c..7c367e91b 100644 --- a/posts/inside-rust/2024-10-31-this-development-cycle-in-cargo-1.83.md +++ b/posts/inside-rust/2024-10-31-this-development-cycle-in-cargo-1.83.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-10-31 title = "This Development-cycle in Cargo: 1.83" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2024-11-01-compiler-team-reorg.md b/posts/inside-rust/2024-11-01-compiler-team-reorg.md index 3f6a16c92..9ebaf4ab8 100644 --- a/posts/inside-rust/2024-11-01-compiler-team-reorg.md +++ b/posts/inside-rust/2024-11-01-compiler-team-reorg.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-11-01 title = "Re-organising the compiler team and recognising our team members" author = "davidtwco and wesleywiser" team = "the compiler team " diff --git a/posts/inside-rust/2024-11-04-project-goals-2025h1-call-for-proposals.md b/posts/inside-rust/2024-11-04-project-goals-2025h1-call-for-proposals.md index 4af3c2275..498bfe8e4 100644 --- a/posts/inside-rust/2024-11-04-project-goals-2025h1-call-for-proposals.md +++ b/posts/inside-rust/2024-11-04-project-goals-2025h1-call-for-proposals.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-11-04 title = "Call for proposals: Rust 2025h1 project goals" author = "Niko Matsakis" team = "Leadership Council " diff --git a/posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md b/posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md index 4106f64fc..ce7a3cec2 100644 --- a/posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md +++ b/posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-11-04 title = "This Month in Our Test Infra: October 2024" author = "Jieyou Xu" team = "the Bootstrap Team " diff --git a/posts/inside-rust/2024-11-12-compiler-team-new-members.md b/posts/inside-rust/2024-11-12-compiler-team-new-members.md index 9fcb1868d..65a649f56 100644 --- a/posts/inside-rust/2024-11-12-compiler-team-new-members.md +++ b/posts/inside-rust/2024-11-12-compiler-team-new-members.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-11-12 title = "Announcing four new members of the compiler team" author = "davidtwco and wesleywiser" team = "the compiler team " diff --git a/posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md b/posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md index 353460fed..479280d02 100644 --- a/posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md +++ b/posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-12-04 title = "Rustc Trait System Refactor Initiative Update: Stabilizing `-Znext-solver=coherence`" author = "lcnr" team = "The Rustc Trait System Refactor Initiative " diff --git a/posts/inside-rust/2024-12-09-leadership-council-update.md b/posts/inside-rust/2024-12-09-leadership-council-update.md index a0f8222f7..8bfd82a4a 100644 --- a/posts/inside-rust/2024-12-09-leadership-council-update.md +++ b/posts/inside-rust/2024-12-09-leadership-council-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-12-09 title = "December 2024 Leadership Council Update" author = "Eric Huss" team = "Leadership Council " diff --git a/posts/inside-rust/2024-12-09-test-infra-nov-2024.md b/posts/inside-rust/2024-12-09-test-infra-nov-2024.md index 29a98dc0a..bf47dad2c 100644 --- a/posts/inside-rust/2024-12-09-test-infra-nov-2024.md +++ b/posts/inside-rust/2024-12-09-test-infra-nov-2024.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-12-09 title = "This Month in Our Test Infra: November 2024" author = "Jieyou Xu" team = "the Bootstrap Team " diff --git a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md index 232240578..eed76c524 100644 --- a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md +++ b/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-12-13 title = "This Development-cycle in Cargo: 1.84" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2024-12-17-project-director-update.md b/posts/inside-rust/2024-12-17-project-director-update.md index 8d79bf1d5..6cf54e285 100644 --- a/posts/inside-rust/2024-12-17-project-director-update.md +++ b/posts/inside-rust/2024-12-17-project-director-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2024-12-17 title = "December 2024 Project Director Update" author = "Carol Nichols" team = "Rust Foundation Project Directors " diff --git a/posts/inside-rust/2025-01-10-test-infra-dec-2024.md b/posts/inside-rust/2025-01-10-test-infra-dec-2024.md index 7e784fc1d..fdad47bd1 100644 --- a/posts/inside-rust/2025-01-10-test-infra-dec-2024.md +++ b/posts/inside-rust/2025-01-10-test-infra-dec-2024.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-01-10 title = "This Month in Our Test Infra: December 2024" author = "Jieyou Xu" team = "the Bootstrap Team " diff --git a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md b/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md index 03d0f9db0..06a70f7cb 100644 --- a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md +++ b/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-01-17 title = "This Development-cycle in Cargo: 1.85" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2025-01-30-project-director-update.md b/posts/inside-rust/2025-01-30-project-director-update.md index cb15b92f7..4f779e66e 100644 --- a/posts/inside-rust/2025-01-30-project-director-update.md +++ b/posts/inside-rust/2025-01-30-project-director-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-01-30 title = "January 2025 Project Director Update" author = "Carol Nichols" team = "Rust Foundation Project Directors " diff --git a/posts/inside-rust/2025-02-14-leadership-council-repr-selection.md b/posts/inside-rust/2025-02-14-leadership-council-repr-selection.md index 7948180ba..7a28226e0 100644 --- a/posts/inside-rust/2025-02-14-leadership-council-repr-selection.md +++ b/posts/inside-rust/2025-02-14-leadership-council-repr-selection.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-02-14 title = "Leadership Council March 2025 Representative Selections" author = "Eric Huss" team = "Leadership Council " diff --git a/posts/inside-rust/2025-02-24-project-director-update.md b/posts/inside-rust/2025-02-24-project-director-update.md index b7e06ec75..6bd55048a 100644 --- a/posts/inside-rust/2025-02-24-project-director-update.md +++ b/posts/inside-rust/2025-02-24-project-director-update.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-02-24 title = "February 2025 Project Director Update" author = "Carol Nichols" team = "Rust Foundation Project Directors " diff --git a/posts/inside-rust/2025-02-27-relnotes-interest-group.md b/posts/inside-rust/2025-02-27-relnotes-interest-group.md index 294e69398..a398d10c2 100644 --- a/posts/inside-rust/2025-02-27-relnotes-interest-group.md +++ b/posts/inside-rust/2025-02-27-relnotes-interest-group.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-02-27 title = "Relnotes PR and release blog post ping group" author = "Jieyou Xu" team = "The Release Team " diff --git a/posts/inside-rust/2025-02-27-this-development-cycle-in-cargo-1.86.md b/posts/inside-rust/2025-02-27-this-development-cycle-in-cargo-1.86.md index b34de078d..eda5adec6 100644 --- a/posts/inside-rust/2025-02-27-this-development-cycle-in-cargo-1.86.md +++ b/posts/inside-rust/2025-02-27-this-development-cycle-in-cargo-1.86.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-02-27 title = "This Development-cycle in Cargo: 1.86" author = "Ed Page" team = "The Cargo Team " diff --git a/posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md b/posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md index 3fe3f05af..a546ef2d7 100644 --- a/posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md +++ b/posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md @@ -1,5 +1,6 @@ +++ layout = "post" +date = 2025-03-05 title = "Inferred const generic arguments: Call for Testing!" author = "BoxyUwU" team = "The Const Generics Project Group " From 039e3a62d57ff9ea3e373cb90633beefc9616450 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 19:37:21 +0100 Subject: [PATCH 0831/1024] Remove date from file names of posts Without the date in the file name, there are some name collisions. These were resolved by inserting `@{counter}` before the file extension. A later commit will adjust the static site generator to strip this disambiguator again, such that permalinks stay intact. The counter is sorted by date, i.e. `foo@0.md` is older than `foo@1.md`. --- posts/{2014-12-12-1.0-Timeline.md => 1.0-Timeline.md} | 0 ...ey-2023-results.md => 2023-Rust-Annual-Survey-2023-results.md} | 0 posts/{2023-12-15-2024-Edition-CFP.md => 2024-Edition-CFP.md} | 0 ...ust-Survey-results.md => 2024-State-Of-Rust-Survey-results.md} | 0 posts/{2019-05-15-4-Years-Of-Rust.md => 4-Years-Of-Rust.md} | 0 ...19-10-29-A-call-for-blogs-2020.md => A-call-for-blogs-2020.md} | 0 ...19-09-30-Async-await-hits-beta.md => Async-await-hits-beta.md} | 0 posts/{2019-11-07-Async-await-stable.md => Async-await-stable.md} | 0 posts/{2014-11-20-Cargo.md => Cargo.md} | 0 ...cargo-clippy.md => Clippy-deprecating-feature-cargo-clippy.md} | 0 posts/{2014-12-12-Core-Team.md => Core-Team.md} | 0 posts/{2019-02-22-Core-team-changes.md => Core-team-changes.md} | 0 ...team-membership-updates.md => Core-team-membership-updates.md} | 0 ...ch-mutation-and-moves.md => Enums-match-mutation-and-moves.md} | 0 ...efox-Quantum.md => Fearless-Concurrency-In-Firefox-Quantum.md} | 0 ...2015-04-10-Fearless-Concurrency.md => Fearless-Concurrency.md} | 0 posts/{2015-02-13-Final-1.0-timeline.md => Final-1.0-timeline.md} | 0 ...8-03-GATs-stabilization-push.md => GATs-stabilization-push.md} | 0 ...n-Requirements.md => Increasing-Apple-Version-Requirements.md} | 0 ...reasing-Rusts-Reach-2018.md => Increasing-Rusts-Reach-2018.md} | 0 ...-06-27-Increasing-Rusts-Reach.md => Increasing-Rusts-Reach.md} | 0 ...el-requirements.md => Increasing-glibc-kernel-requirements.md} | 0 posts/{2016-04-19-MIR.md => MIR.md} | 0 ...Rust-Channel.md => Mozilla-IRC-Sunset-and-the-Rust-Channel.md} | 0 ...versation.md => Next-steps-for-the-foundation-conversation.md} | 0 posts/{2015-08-14-Next-year.md => Next-year.md} | 0 posts/{2024-05-07-OSPP-2024.md => OSPP-2024.md} | 0 ...20-09-03-Planning-2021-Roadmap.md => Planning-2021-Roadmap.md} | 0 ...l-Macros-in-Rust-2018.md => Procedural-Macros-in-Rust-2018.md} | 0 ...23-Project-Goals-Dec-Update.md => Project-Goals-Dec-Update.md} | 0 ...03-Project-Goals-Feb-Update.md => Project-Goals-Feb-Update.md} | 0 ...23-Project-Goals-Sep-Update.md => Project-Goals-Sep-Update.md} | 0 posts/{2024-08-12-Project-goals.md => Project-goals.md} | 0 posts/{2022-07-01-RLS-deprecation.md => RLS-deprecation.md} | 0 posts/{2015-01-09-Rust-1.0-alpha.md => Rust-1.0-alpha.md} | 0 posts/{2015-02-20-Rust-1.0-alpha2.md => Rust-1.0-alpha2.md} | 0 posts/{2015-04-03-Rust-1.0-beta.md => Rust-1.0-beta.md} | 0 posts/{2014-09-15-Rust-1.0.md => Rust-1.0@0.md} | 0 posts/{2015-05-15-Rust-1.0.md => Rust-1.0@1.md} | 0 posts/{2015-06-25-Rust-1.1.md => Rust-1.1.md} | 0 posts/{2016-07-07-Rust-1.10.md => Rust-1.10.md} | 0 posts/{2016-08-18-Rust-1.11.md => Rust-1.11.md} | 0 posts/{2016-10-20-Rust-1.12.1.md => Rust-1.12.1.md} | 0 posts/{2016-09-29-Rust-1.12.md => Rust-1.12.md} | 0 posts/{2016-11-10-Rust-1.13.md => Rust-1.13.md} | 0 posts/{2016-12-22-Rust-1.14.md => Rust-1.14.md} | 0 posts/{2017-02-09-Rust-1.15.1.md => Rust-1.15.1.md} | 0 posts/{2017-02-02-Rust-1.15.md => Rust-1.15.md} | 0 posts/{2017-03-16-Rust-1.16.md => Rust-1.16.md} | 0 posts/{2017-04-27-Rust-1.17.md => Rust-1.17.md} | 0 posts/{2017-06-08-Rust-1.18.md => Rust-1.18.md} | 0 posts/{2017-07-20-Rust-1.19.md => Rust-1.19.md} | 0 posts/{2015-08-06-Rust-1.2.md => Rust-1.2.md} | 0 posts/{2017-08-31-Rust-1.20.md => Rust-1.20.md} | 0 posts/{2017-10-12-Rust-1.21.md => Rust-1.21.md} | 0 posts/{2017-11-22-Rust-1.22.md => Rust-1.22.md} | 0 posts/{2018-01-04-Rust-1.23.md => Rust-1.23.md} | 0 posts/{2018-03-01-Rust-1.24.1.md => Rust-1.24.1.md} | 0 posts/{2018-02-15-Rust-1.24.md => Rust-1.24.md} | 0 posts/{2018-03-29-Rust-1.25.md => Rust-1.25.md} | 0 posts/{2018-05-29-Rust-1.26.1.md => Rust-1.26.1.md} | 0 posts/{2018-06-05-Rust-1.26.2.md => Rust-1.26.2.md} | 0 posts/{2018-05-10-Rust-1.26.md => Rust-1.26.md} | 0 posts/{2018-07-10-Rust-1.27.1.md => Rust-1.27.1.md} | 0 posts/{2018-07-20-Rust-1.27.2.md => Rust-1.27.2.md} | 0 posts/{2018-06-21-Rust-1.27.md => Rust-1.27.md} | 0 posts/{2018-08-02-Rust-1.28.md => Rust-1.28.md} | 0 posts/{2018-09-25-Rust-1.29.1.md => Rust-1.29.1.md} | 0 posts/{2018-10-12-Rust-1.29.2.md => Rust-1.29.2.md} | 0 posts/{2018-09-13-Rust-1.29.md => Rust-1.29.md} | 0 posts/{2015-09-17-Rust-1.3.md => Rust-1.3.md} | 0 posts/{2018-10-25-Rust-1.30.0.md => Rust-1.30.0.md} | 0 posts/{2018-11-08-Rust-1.30.1.md => Rust-1.30.1.md} | 0 ...2-06-Rust-1.31-and-rust-2018.md => Rust-1.31-and-rust-2018.md} | 0 posts/{2018-12-20-Rust-1.31.1.md => Rust-1.31.1.md} | 0 posts/{2019-01-17-Rust-1.32.0.md => Rust-1.32.0.md} | 0 posts/{2019-02-28-Rust-1.33.0.md => Rust-1.33.0.md} | 0 posts/{2019-04-11-Rust-1.34.0.md => Rust-1.34.0.md} | 0 posts/{2019-04-25-Rust-1.34.1.md => Rust-1.34.1.md} | 0 posts/{2019-05-14-Rust-1.34.2.md => Rust-1.34.2.md} | 0 posts/{2019-05-23-Rust-1.35.0.md => Rust-1.35.0.md} | 0 posts/{2019-07-04-Rust-1.36.0.md => Rust-1.36.0.md} | 0 posts/{2019-08-15-Rust-1.37.0.md => Rust-1.37.0.md} | 0 posts/{2019-09-26-Rust-1.38.0.md => Rust-1.38.0.md} | 0 posts/{2019-11-07-Rust-1.39.0.md => Rust-1.39.0.md} | 0 posts/{2015-10-29-Rust-1.4.md => Rust-1.4.md} | 0 posts/{2019-12-19-Rust-1.40.0.md => Rust-1.40.0.md} | 0 posts/{2020-01-30-Rust-1.41.0.md => Rust-1.41.0.md} | 0 posts/{2020-02-27-Rust-1.41.1.md => Rust-1.41.1.md} | 0 posts/{2020-03-12-Rust-1.42.md => Rust-1.42.md} | 0 posts/{2020-04-23-Rust-1.43.0.md => Rust-1.43.0.md} | 0 posts/{2020-06-04-Rust-1.44.0.md => Rust-1.44.0.md} | 0 posts/{2020-07-16-Rust-1.45.0.md => Rust-1.45.0.md} | 0 posts/{2020-07-30-Rust-1.45.1.md => Rust-1.45.1.md} | 0 posts/{2020-08-03-Rust-1.45.2.md => Rust-1.45.2.md} | 0 posts/{2020-08-27-Rust-1.46.0.md => Rust-1.46.0.md} | 0 posts/{2020-10-08-Rust-1.47.md => Rust-1.47.md} | 0 posts/{2020-11-19-Rust-1.48.md => Rust-1.48.md} | 0 posts/{2020-12-31-Rust-1.49.0.md => Rust-1.49.0.md} | 0 posts/{2015-12-10-Rust-1.5.md => Rust-1.5.md} | 0 posts/{2021-02-11-Rust-1.50.0.md => Rust-1.50.0.md} | 0 posts/{2021-03-25-Rust-1.51.0.md => Rust-1.51.0.md} | 0 posts/{2021-05-06-Rust-1.52.0.md => Rust-1.52.0.md} | 0 posts/{2021-05-10-Rust-1.52.1.md => Rust-1.52.1.md} | 0 posts/{2021-06-17-Rust-1.53.0.md => Rust-1.53.0.md} | 0 posts/{2021-07-29-Rust-1.54.0.md => Rust-1.54.0.md} | 0 posts/{2021-09-09-Rust-1.55.0.md => Rust-1.55.0.md} | 0 posts/{2021-10-21-Rust-1.56.0.md => Rust-1.56.0.md} | 0 posts/{2021-11-01-Rust-1.56.1.md => Rust-1.56.1.md} | 0 posts/{2021-12-02-Rust-1.57.0.md => Rust-1.57.0.md} | 0 posts/{2022-01-13-Rust-1.58.0.md => Rust-1.58.0.md} | 0 posts/{2022-01-20-Rust-1.58.1.md => Rust-1.58.1.md} | 0 posts/{2022-02-24-Rust-1.59.0.md => Rust-1.59.0.md} | 0 posts/{2016-01-21-Rust-1.6.md => Rust-1.6.md} | 0 posts/{2022-04-07-Rust-1.60.0.md => Rust-1.60.0.md} | 0 posts/{2022-05-19-Rust-1.61.0.md => Rust-1.61.0.md} | 0 posts/{2022-06-30-Rust-1.62.0.md => Rust-1.62.0.md} | 0 posts/{2022-07-19-Rust-1.62.1.md => Rust-1.62.1.md} | 0 posts/{2022-08-11-Rust-1.63.0.md => Rust-1.63.0.md} | 0 posts/{2022-09-22-Rust-1.64.0.md => Rust-1.64.0.md} | 0 posts/{2022-11-03-Rust-1.65.0.md => Rust-1.65.0.md} | 0 posts/{2022-12-15-Rust-1.66.0.md => Rust-1.66.0.md} | 0 posts/{2023-01-10-Rust-1.66.1.md => Rust-1.66.1.md} | 0 posts/{2023-01-26-Rust-1.67.0.md => Rust-1.67.0.md} | 0 posts/{2023-02-09-Rust-1.67.1.md => Rust-1.67.1.md} | 0 posts/{2023-03-09-Rust-1.68.0.md => Rust-1.68.0.md} | 0 posts/{2023-03-23-Rust-1.68.1.md => Rust-1.68.1.md} | 0 posts/{2023-03-28-Rust-1.68.2.md => Rust-1.68.2.md} | 0 posts/{2023-04-20-Rust-1.69.0.md => Rust-1.69.0.md} | 0 posts/{2016-03-02-Rust-1.7.md => Rust-1.7.md} | 0 posts/{2023-06-01-Rust-1.70.0.md => Rust-1.70.0.md} | 0 posts/{2023-07-13-Rust-1.71.0.md => Rust-1.71.0.md} | 0 posts/{2023-08-03-Rust-1.71.1.md => Rust-1.71.1.md} | 0 posts/{2023-08-24-Rust-1.72.0.md => Rust-1.72.0.md} | 0 posts/{2023-09-19-Rust-1.72.1.md => Rust-1.72.1.md} | 0 posts/{2023-10-05-Rust-1.73.0.md => Rust-1.73.0.md} | 0 posts/{2023-11-16-Rust-1.74.0.md => Rust-1.74.0.md} | 0 posts/{2023-12-07-Rust-1.74.1.md => Rust-1.74.1.md} | 0 posts/{2023-12-28-Rust-1.75.0.md => Rust-1.75.0.md} | 0 posts/{2024-02-08-Rust-1.76.0.md => Rust-1.76.0.md} | 0 posts/{2024-03-21-Rust-1.77.0.md => Rust-1.77.0.md} | 0 posts/{2024-03-28-Rust-1.77.1.md => Rust-1.77.1.md} | 0 posts/{2024-04-09-Rust-1.77.2.md => Rust-1.77.2.md} | 0 posts/{2024-05-02-Rust-1.78.0.md => Rust-1.78.0.md} | 0 posts/{2024-06-13-Rust-1.79.0.md => Rust-1.79.0.md} | 0 posts/{2016-04-14-Rust-1.8.md => Rust-1.8.md} | 0 posts/{2024-07-25-Rust-1.80.0.md => Rust-1.80.0.md} | 0 posts/{2024-08-08-Rust-1.80.1.md => Rust-1.80.1.md} | 0 posts/{2024-09-05-Rust-1.81.0.md => Rust-1.81.0.md} | 0 posts/{2024-10-17-Rust-1.82.0.md => Rust-1.82.0.md} | 0 posts/{2024-11-28-Rust-1.83.0.md => Rust-1.83.0.md} | 0 posts/{2025-01-09-Rust-1.84.0.md => Rust-1.84.0.md} | 0 posts/{2025-01-30-Rust-1.84.1.md => Rust-1.84.1.md} | 0 posts/{2025-02-20-Rust-1.85.0.md => Rust-1.85.0.md} | 0 posts/{2016-05-26-Rust-1.9.md => Rust-1.9.md} | 0 ...05-Rust-2017-Survey-Results.md => Rust-2017-Survey-Results.md} | 0 .../{2018-12-17-Rust-2018-dev-tools.md => Rust-2018-dev-tools.md} | 0 ...21-Rust-2021-public-testing.md => Rust-2021-public-testing.md} | 0 ...27-Rust-2024-public-testing.md => Rust-2024-public-testing.md} | 0 ...24-Rust-Once-Run-Everywhere.md => Rust-Once-Run-Everywhere.md} | 0 .../{2017-07-05-Rust-Roadmap-Update.md => Rust-Roadmap-Update.md} | 0 posts/{2022-02-15-Rust-Survey-2021.md => Rust-Survey-2021.md} | 0 ...07-Rust-Survey-2023-Results.md => Rust-Survey-2023-Results.md} | 0 ...icipates-in-GSoC-2024.md => Rust-participates-in-GSoC-2024.md} | 0 ...icipates-in-GSoC-2025.md => Rust-participates-in-GSoC-2025.md} | 0 posts/{2018-11-27-Rust-survey-2018.md => Rust-survey-2018.md} | 0 posts/{2020-04-17-Rust-survey-2019.md => Rust-survey-2019.md} | 0 posts/{2018-05-15-Rust-turns-three.md => Rust-turns-three.md} | 0 posts/{2020-05-07-Rust.1.43.1.md => Rust.1.43.1.md} | 0 posts/{2020-06-18-Rust.1.44.1.md => Rust.1.44.1.md} | 0 posts/{2023-05-29-RustConf.md => RustConf.md} | 0 posts/{2019-10-15-Rustup-1.20.0.md => Rustup-1.20.0.md} | 0 posts/{2020-07-06-Rustup-1.22.0.md => Rustup-1.22.0.md} | 0 posts/{2020-07-08-Rustup-1.22.1.md => Rustup-1.22.1.md} | 0 posts/{2020-11-27-Rustup-1.23.0.md => Rustup-1.23.0.md} | 0 posts/{2021-04-27-Rustup-1.24.0.md => Rustup-1.24.0.md} | 0 posts/{2021-04-29-Rustup-1.24.1.md => Rustup-1.24.1.md} | 0 posts/{2021-05-17-Rustup-1.24.2.md => Rustup-1.24.2.md} | 0 posts/{2021-06-08-Rustup-1.24.3.md => Rustup-1.24.3.md} | 0 posts/{2022-07-11-Rustup-1.25.0.md => Rustup-1.25.0.md} | 0 posts/{2022-07-12-Rustup-1.25.1.md => Rustup-1.25.1.md} | 0 posts/{2023-02-01-Rustup-1.25.2.md => Rustup-1.25.2.md} | 0 posts/{2023-04-25-Rustup-1.26.0.md => Rustup-1.26.0.md} | 0 posts/{2024-03-11-Rustup-1.27.0.md => Rustup-1.27.0.md} | 0 posts/{2024-05-06-Rustup-1.27.1.md => Rustup-1.27.1.md} | 0 posts/{2025-03-02-Rustup-1.28.0.md => Rustup-1.28.0.md} | 0 posts/{2025-03-04-Rustup-1.28.1.md => Rustup-1.28.1.md} | 0 ...9-21-Scheduling-2021-Roadmap.md => Scheduling-2021-Roadmap.md} | 0 ...urity-advisory-for-cargo.md => Security-advisory-for-cargo.md} | 0 ...-Security-advisory-for-std.md => Security-advisory-for-std.md} | 0 posts/{2019-05-13-Security-advisory.md => Security-advisory.md} | 0 ...8-10-Shape-of-errors-to-come.md => Shape-of-errors-to-come.md} | 0 posts/{2014-10-30-Stability.md => Stability.md} | 0 ...-State-of-Rust-Survey-2016.md => State-of-Rust-Survey-2016.md} | 0 ...he-2018-Rust-Event-Lineup.md => The-2018-Rust-Event-Lineup.md} | 0 ...he-2019-Rust-Event-Lineup.md => The-2019-Rust-Event-Lineup.md} | 0 posts/{2016-12-15-Underhanded-Rust.md => Underhanded-Rust.md} | 0 ...e-on-crates.io-incident.md => Update-on-crates.io-incident.md} | 0 ...23-05-09-Updating-musl-targets.md => Updating-musl-targets.md} | 0 posts/{2024-02-26-Windows-7.md => Windows-7.md} | 0 ...-look-for-rust-lang-org.md => a-new-look-for-rust-lang-org.md} | 0 posts/{2018-04-06-all-hands.md => all-hands.md} | 0 ...-01-09-android-ndk-update-r25.md => android-ndk-update-r25.md} | 0 ...-directors.md => announcing-the-new-rust-project-directors.md} | 0 ...-annual-survey-2024-launch.md => annual-survey-2024-launch.md} | 0 ...2-21-async-fn-rpit-in-traits.md => async-fn-rpit-in-traits.md} | 0 ...ision-doc-shiny-future.md => async-vision-doc-shiny-future.md} | 0 posts/{2021-03-18-async-vision-doc.md => async-vision-doc.md} | 0 ...dges-and-23k-keywords.md => broken-badges-and-23k-keywords.md} | 0 ...admap-blogposts.md => call-for-rust-2019-roadmap-blogposts.md} | 0 ...2023-12-11-cargo-cache-cleaning.md => cargo-cache-cleaning.md} | 0 posts/{2022-09-14-cargo-cves.md => cargo-cves.md} | 0 posts/{2016-05-05-cargo-pillars.md => cargo-pillars.md} | 0 ...-changes-in-the-core-team.md => changes-in-the-core-team@0.md} | 0 ...-changes-in-the-core-team.md => changes-in-the-core-team@1.md} | 0 posts/{2024-05-06-check-cfg.md => check-cfg.md} | 0 ...2023-08-29-committing-lockfiles.md => committing-lockfiles.md} | 0 posts/{2016-07-25-conf-lineup.md => conf-lineup@0.md} | 0 posts/{2017-07-18-conf-lineup.md => conf-lineup@1.md} | 0 posts/{2020-01-31-conf-lineup.md => conf-lineup@2.md} | 0 ...safety-rule-revision.md => const-eval-safety-rule-revision.md} | 0 ...2-26-const-generics-mvp-beta.md => const-generics-mvp-beta.md} | 0 posts/{2024-08-26-council-survey.md => council-survey.md} | 0 ...io-development-update.md => crates-io-development-update@0.md} | 0 ...io-development-update.md => crates-io-development-update@1.md} | 0 ...rates-io-download-changes.md => crates-io-download-changes.md} | 0 ...anonical-downloads.md => crates-io-non-canonical-downloads.md} | 0 ...tes-io-security-advisory.md => crates-io-security-advisory.md} | 0 ...tes-io-snapshot-branches.md => crates-io-snapshot-branches.md} | 0 ...-02-06-crates-io-status-codes.md => crates-io-status-codes.md} | 0 ...rates-io-usage-policy-rfc.md => crates-io-usage-policy-rfc.md} | 0 posts/{2021-11-01-cve-2021-42574.md => cve-2021-42574.md} | 0 posts/{2022-01-20-cve-2022-21658.md => cve-2022-21658.md} | 0 posts/{2022-03-08-cve-2022-24713.md => cve-2022-24713.md} | 0 posts/{2023-01-10-cve-2022-46176.md => cve-2022-46176.md} | 0 posts/{2023-08-03-cve-2023-38497.md => cve-2023-38497.md} | 0 posts/{2024-04-09-cve-2024-24576.md => cve-2024-24576.md} | 0 posts/{2024-09-04-cve-2024-43402.md => cve-2024-43402.md} | 0 ...pt-into-fewer-targets.md => docs-rs-opt-into-fewer-targets.md} | 0 posts/{2021-05-11-edition-2021.md => edition-2021.md} | 0 ...new-project-directors.md => electing-new-project-directors.md} | 0 ...nabling-rust-lld-on-linux.md => enabling-rust-lld-on-linux.md} | 0 .../{2020-06-10-event-lineup-update.md => event-lineup-update.md} | 0 posts/{2020-05-15-five-years-of-rust.md => five-years-of-rust.md} | 0 posts/{2022-10-28-gats-stabilization.md => gats-stabilization.md} | 0 ...iler-for-rust.md => gccrs-an-alternative-compiler-for-rust.md} | 0 ...overnance-wg-announcement.md => governance-wg-announcement.md} | 0 posts/{2024-11-07-gsoc-2024-results.md => gsoc-2024-results.md} | 0 ...c-2024-selected-projects.md => gsoc-2024-selected-projects.md} | 0 .../{2018-10-30-help-test-rust-2018.md => help-test-rust-2018.md} | 0 posts/{2024-03-30-i128-layout-update.md => i128-layout-update.md} | 0 ...2017-09-18-impl-future-for-rust.md => impl-future-for-rust.md} | 0 ...05-impl-trait-capture-rules.md => impl-trait-capture-rules.md} | 0 ...kens-for-crates-io.md => improved-api-tokens-for-crates-io.md} | 0 posts/{2016-09-08-incremental.md => incremental.md} | 0 posts/{2019-10-03-inside-rust-blog.md => inside-rust-blog.md} | 0 .../{2020-07-27-1.45.1-prerelease.md => 1.45.1-prerelease.md} | 0 .../{2020-08-24-1.46.0-prerelease.md => 1.46.0-prerelease.md} | 0 .../{2020-10-07-1.47.0-prerelease-2.md => 1.47.0-prerelease-2.md} | 0 .../{2020-10-06-1.47.0-prerelease.md => 1.47.0-prerelease.md} | 0 .../{2020-11-16-1.48.0-prerelease.md => 1.48.0-prerelease.md} | 0 .../{2020-12-29-1.49.0-prerelease.md => 1.49.0-prerelease.md} | 0 .../{2021-02-09-1.50.0-prerelease.md => 1.50.0-prerelease.md} | 0 .../{2021-03-23-1.51.0-prerelease.md => 1.51.0-prerelease.md} | 0 .../{2021-05-04-1.52.0-prerelease.md => 1.52.0-prerelease.md} | 0 .../{2021-06-15-1.53.0-prelease.md => 1.53.0-prelease.md} | 0 .../{2021-07-26-1.54.0-prerelease.md => 1.54.0-prerelease.md} | 0 .../{2021-09-07-1.55.0-prerelease.md => 1.55.0-prerelease.md} | 0 .../{2021-10-18-1.56.0-prerelease.md => 1.56.0-prerelease.md} | 0 .../{2021-11-30-1.57.0-prerelease.md => 1.57.0-prerelease.md} | 0 .../{2022-01-11-1.58.0-prerelease.md => 1.58.0-prerelease.md} | 0 .../{2022-02-22-1.59.0-prerelease.md => 1.59.0-prerelease.md} | 0 .../{2022-04-04-1.60.0-prerelease.md => 1.60.0-prerelease.md} | 0 .../{2022-05-16-1.61.0-prerelease.md => 1.61.0-prerelease.md} | 0 .../{2022-06-28-1.62.0-prerelease.md => 1.62.0-prerelease.md} | 0 .../{2022-07-16-1.62.1-prerelease.md => 1.62.1-prerelease.md} | 0 .../{2022-08-09-1.63.0-prerelease.md => 1.63.0-prerelease.md} | 0 .../{2022-09-19-1.64.0-prerelease.md => 1.64.0-prerelease.md} | 0 .../{2022-10-31-1.65.0-prerelease.md => 1.65.0-prerelease.md} | 0 .../{2022-12-12-1.66.0-prerelease.md => 1.66.0-prerelease.md} | 0 .../{2023-01-25-1.67.0-prerelease.md => 1.67.0-prerelease.md} | 0 .../{2023-02-07-1.67.1-prerelease.md => 1.67.1-prerelease.md} | 0 .../{2023-03-06-1.68.0-prerelease.md => 1.68.0-prerelease.md} | 0 .../{2023-03-20-1.68.1-prerelease.md => 1.68.1-prerelease.md} | 0 .../{2023-03-27-1.68.2-prerelease.md => 1.68.2-prerelease.md} | 0 .../{2023-04-17-1.69.0-prerelease.md => 1.69.0-prerelease.md} | 0 .../{2023-05-29-1.70.0-prerelease.md => 1.70.0-prerelease.md} | 0 .../{2023-07-10-1.71.0-prerelease.md => 1.71.0-prerelease.md} | 0 .../{2023-08-01-1.71.1-prerelease.md => 1.71.1-prerelease.md} | 0 .../{2023-08-21-1.72.0-prerelease.md => 1.72.0-prerelease.md} | 0 .../{2023-09-14-1.72.1-prerelease.md => 1.72.1-prerelease.md} | 0 .../{2023-10-03-1.73.0-prerelease.md => 1.73.0-prerelease.md} | 0 .../{2023-11-13-1.74.0-prerelease.md => 1.74.0-prerelease.md} | 0 .../{2023-12-05-1.74.1-prerelease.md => 1.74.1-prerelease.md} | 0 .../{2023-12-21-1.75.0-prerelease.md => 1.75.0-prerelease.md} | 0 .../{2024-02-04-1.76.0-prerelease.md => 1.76.0-prerelease.md} | 0 .../{2024-03-17-1.77.0-prerelease.md => 1.77.0-prerelease.md} | 0 .../{2024-03-27-1.77.1-prerelease.md => 1.77.1-prerelease.md} | 0 .../{2024-03-22-2024-edition-update.md => 2024-edition-update.md} | 0 ...-Improvements.md => AsyncAwait-Not-Send-Error-Improvements.md} | 0 ...syncAwait-WG-Focus-Issues.md => AsyncAwait-WG-Focus-Issues.md} | 0 .../{2020-10-16-Backlog-Bonanza.md => Backlog-Bonanza.md} | 0 posts/inside-rust/{2022-04-12-CTCFT-april.md => CTCFT-april.md} | 0 .../{2022-02-11-CTCFT-february.md => CTCFT-february.md} | 0 posts/inside-rust/{2022-03-16-CTCFT-march.md => CTCFT-march.md} | 0 posts/inside-rust/{2022-05-10-CTCFT-may.md => CTCFT-may.md} | 0 ...-Cleanup-Crew-ICE-breakers.md => Cleanup-Crew-ICE-breakers.md} | 0 ...ves-plugin-interface.md => Clippy-removes-plugin-interface.md} | 0 ...-05-26-Concluding-events-mods.md => Concluding-events-mods.md} | 0 ...2020-10-23-Core-team-membership.md => Core-team-membership.md} | 0 .../{2020-01-14-Goverance-wg-cfp.md => Goverance-wg-cfp.md} | 0 .../inside-rust/{2020-02-11-Goverance-wg.md => Goverance-wg@0.md} | 0 .../inside-rust/{2020-02-27-Goverance-wg.md => Goverance-wg@1.md} | 0 ...20-04-14-Governance-WG-updated.md => Governance-WG-updated.md} | 0 .../inside-rust/{2020-04-23-Governance-wg.md => Governance-wg.md} | 0 ...it-fix-and-more.md => Introducing-cargo-audit-fix-and-more.md} | 0 ...-cargo-audit-0.9.md => Keeping-secure-with-cargo-audit-0.9.md} | 0 .../{2019-10-22-LLVM-ICE-breakers.md => LLVM-ICE-breakers.md} | 0 .../{2019-10-11-Lang-Team-Meeting.md => Lang-Team-Meeting.md} | 0 ...2021-10-08-Lang-team-Oct-update.md => Lang-team-Oct-update.md} | 0 ...21-07-12-Lang-team-july-update.md => Lang-team-july-update.md} | 0 .../{2019-11-22-Lang-team-meeting.md => Lang-team-meeting.md} | 0 ...ship-Std-Implementation.md => Ownership-Std-Implementation.md} | 0 .../{2020-09-29-Portable-SIMD-PG.md => Portable-SIMD-PG.md} | 0 ...06-Splitting-const-generics.md => Splitting-const-generics.md} | 0 ...ustc_codegen_cranelift.md => Using-rustc_codegen_cranelift.md} | 0 posts/inside-rust/{2019-09-25-Welcome.md => Welcome.md} | 0 ....md => What-the-error-handling-project-group-is-working-on.md} | 0 ...> What-the-error-handling-project-group-is-working-towards.md} | 0 ...26-aaron-hill-compiler-team.md => aaron-hill-compiler-team.md} | 0 ...3-18-all-hands-retrospective.md => all-hands-retrospective.md} | 0 posts/inside-rust/{2024-09-02-all-hands.md => all-hands.md} | 0 ...07-announcing-project-goals.md => announcing-project-goals.md} | 0 ...nnouncing-the-docsrs-team.md => announcing-the-docsrs-team.md} | 0 ...g-the-rust-style-team.md => announcing-the-rust-style-team.md} | 0 .../{2023-05-09-api-token-scopes.md => api-token-scopes.md} | 0 .../{2022-04-15-apr-steering-cycle.md => apr-steering-cycle.md} | 0 ...res-call-for-testing.md => async-closures-call-for-testing.md} | 0 ...-async-fn-in-trait-nightly.md => async-fn-in-trait-nightly.md} | 0 .../inside-rust/{2022-02-03-async-in-2022.md => async-in-2022.md} | 0 ...2-18-bisecting-rust-compiler.md => bisecting-rust-compiler.md} | 0 ...d => boxyuwu-leseulartichaut-the8472-compiler-contributors.md} | 0 ...2023-08-24-cargo-config-merging.md => cargo-config-merging.md} | 0 .../inside-rust/{2020-01-10-cargo-in-2020.md => cargo-in-2020.md} | 0 .../{2023-04-06-cargo-new-members.md => cargo-new-members.md} | 0 .../{2023-05-01-cargo-postmortem.md => cargo-postmortem.md} | 0 ...23-01-30-cargo-sparse-protocol.md => cargo-sparse-protocol.md} | 0 .../{2022-03-31-cargo-team-changes.md => cargo-team-changes.md} | 0 ...14-changes-to-compiler-team.md => changes-to-compiler-team.md} | 0 ...1-19-changes-to-rustdoc-team.md => changes-to-rustdoc-team.md} | 0 ...30-changes-to-x-py-defaults.md => changes-to-x-py-defaults.md} | 0 ...ors.md => cjgillot-and-nadrieril-for-compiler-contributors.md} | 0 .../{2022-07-13-clippy-team-changes.md => clippy-team-changes.md} | 0 ...022-midyear-report.md => compiler-team-2022-midyear-report.md} | 0 ...ler-team-ambitions-2022.md => compiler-team-ambitions-2022.md} | 0 ...il-steering-cycle.md => compiler-team-april-steering-cycle.md} | 0 ...t-steering-cycle.md => compiler-team-august-steering-cycle.md} | 0 ...-feb-steering-cycle.md => compiler-team-feb-steering-cycle.md} | 0 ...uly-steering-cycle.md => compiler-team-july-steering-cycle.md} | 0 ...une-steering-cycle.md => compiler-team-june-steering-cycle.md} | 0 ...-10-15-compiler-team-meeting.md => compiler-team-meeting@0.md} | 0 ...-10-21-compiler-team-meeting.md => compiler-team-meeting@1.md} | 0 ...-10-30-compiler-team-meeting.md => compiler-team-meeting@2.md} | 0 ...-11-07-compiler-team-meeting.md => compiler-team-meeting@3.md} | 0 ...-11-11-compiler-team-meeting.md => compiler-team-meeting@4.md} | 0 ...-11-19-compiler-team-meeting.md => compiler-team-meeting@5.md} | 0 ...-02-07-compiler-team-meeting.md => compiler-team-meeting@6.md} | 0 ...-compiler-team-new-members.md => compiler-team-new-members.md} | 0 .../{2024-11-01-compiler-team-reorg.md => compiler-team-reorg.md} | 0 ...-steering-cycle.md => compiler-team-sep-oct-steering-cycle.md} | 0 .../{2019-11-25-const-if-match.md => const-if-match.md} | 0 ...02-const-prop-on-by-default.md => const-prop-on-by-default.md} | 0 ...-content-delivery-networks.md => content-delivery-networks.md} | 0 .../{2020-05-27-contributor-survey.md => contributor-survey.md} | 0 .../{2021-05-04-core-team-update.md => core-team-update.md} | 0 .../{2021-04-03-core-team-updates.md => core-team-updates.md} | 0 posts/inside-rust/{2023-10-23-coroutines.md => coroutines.md} | 0 ...-crates-io-incident-report.md => crates-io-incident-report.md} | 0 ...s-io-malware-postmortem.md => crates-io-malware-postmortem.md} | 0 ...2023-07-21-crates-io-postmortem.md => crates-io-postmortem.md} | 0 ...compiler-members.md => davidtwco-jackhuey-compiler-members.md} | 0 .../{2022-08-16-diagnostic-effort.md => diagnostic-effort.md} | 0 ...23-02-08-dns-outage-portmortem.md => dns-outage-portmortem.md} | 0 ...24-docsrs-outage-postmortem.md => docsrs-outage-postmortem.md} | 0 ...ontributors.md => ecstatic-morse-for-compiler-contributors.md} | 0 ...new-project-directors.md => electing-new-project-directors.md} | 0 ...22-embedded-wg-micro-survey.md => embedded-wg-micro-survey.md} | 0 ...dling-wg-announcement.md => error-handling-wg-announcement.md} | 0 ...-evaluating-github-actions.md => evaluating-github-actions.md} | 0 ...he-rust-compiler.md => exploring-pgo-for-the-rust-compiler.md} | 0 ...g-team-design-meetings.md => feb-lang-team-design-meetings.md} | 0 .../{2022-02-17-feb-steering-cycle.md => feb-steering-cycle.md} | 0 ...-ffi-unwind-design-meeting.md => ffi-unwind-design-meeting.md} | 0 .../{2021-01-26-ffi-unwind-longjmp.md => ffi-unwind-longjmp.md} | 0 ...e-moderation-issue.md => follow-up-on-the-moderation-issue.md} | 0 ...2-23-formatting-the-compiler.md => formatting-the-compiler.md} | 0 .../{2020-03-27-goodbye-docs-team.md => goodbye-docs-team.md} | 0 .../{2019-11-13-goverance-wg-cfp.md => goverance-wg-cfp.md} | 0 ...23-02-22-governance-reform-rfc.md => governance-reform-rfc.md} | 0 .../{2022-05-19-governance-update.md => governance-update@0.md} | 0 .../{2022-10-06-governance-update.md => governance-update@1.md} | 0 ...-12-03-governance-wg-meeting.md => governance-wg-meeting@0.md} | 0 ...-12-10-governance-wg-meeting.md => governance-wg-meeting@1.md} | 0 ...-12-20-governance-wg-meeting.md => governance-wg-meeting@2.md} | 0 .../inside-rust/{2020-03-17-governance-wg.md => governance-wg.md} | 0 posts/inside-rust/{2019-12-04-ide-future.md => ide-future.md} | 0 .../{2022-04-19-imposter-syndrome.md => imposter-syndrome.md} | 0 ...ation.md => in-response-to-the-moderation-team-resignation.md} | 0 ...t-generic-arguments.md => inferred-const-generic-arguments.md} | 0 ...-team-leadership-change.md => infra-team-leadership-change.md} | 0 .../{2019-10-15-infra-team-meeting.md => infra-team-meeting@0.md} | 0 .../{2019-10-22-infra-team-meeting.md => infra-team-meeting@1.md} | 0 .../{2019-10-29-infra-team-meeting.md => infra-team-meeting@2.md} | 0 .../{2019-11-06-infra-team-meeting.md => infra-team-meeting@3.md} | 0 .../{2019-11-18-infra-team-meeting.md => infra-team-meeting@4.md} | 0 .../{2019-11-19-infra-team-meeting.md => infra-team-meeting@5.md} | 0 .../{2019-12-11-infra-team-meeting.md => infra-team-meeting@6.md} | 0 .../{2019-12-20-infra-team-meeting.md => infra-team-meeting@7.md} | 0 ...25-intro-rustc-self-profile.md => intro-rustc-self-profile.md} | 0 .../{2022-01-18-jan-steering-cycle.md => jan-steering-cycle.md} | 0 ...-team.md => jasper-and-wiser-full-members-of-compiler-team.md} | 0 .../{2021-04-20-jsha-rustdoc-member.md => jsha-rustdoc-member.md} | 0 ...tgeibel-crates-io-co-lead.md => jtgeibel-crates-io-co-lead.md} | 0 .../{2022-06-03-jun-steering-cycle.md => jun-steering-cycle.md} | 0 ...argo-audit-0.18.md => keeping-secure-with-cargo-audit-0.18.md} | 0 ...t-feb-2023.md => keyword-generics-progress-report-feb-2023.md} | 0 .../{2022-07-27-keyword-generics.md => keyword-generics.md} | 0 .../inside-rust/{2023-02-14-lang-advisors.md => lang-advisors.md} | 0 .../{2022-04-04-lang-roadmap-2024.md => lang-roadmap-2024.md} | 0 ...2021-04-17-lang-team-apr-update.md => lang-team-apr-update.md} | 0 ...-04-06-lang-team-april-update.md => lang-team-april-update.md} | 0 ...2021-08-04-lang-team-aug-update.md => lang-team-aug-update.md} | 0 .../{2024-02-13-lang-team-colead.md => lang-team-colead.md} | 0 ...generics.md => lang-team-design-meeting-min-const-generics.md} | 0 ...esign-meeting-update.md => lang-team-design-meeting-update.md} | 0 ...n-meeting-wf-types.md => lang-team-design-meeting-wf-types.md} | 0 ...ang-team-design-meetings.md => lang-team-design-meetings@0.md} | 0 ...ang-team-design-meetings.md => lang-team-design-meetings@1.md} | 0 ...ang-team-design-meetings.md => lang-team-design-meetings@2.md} | 0 ...21-02-03-lang-team-feb-update.md => lang-team-feb-update@0.md} | 0 ...22-02-18-lang-team-feb-update.md => lang-team-feb-update@1.md} | 0 ...21-03-03-lang-team-mar-update.md => lang-team-mar-update@0.md} | 0 ...22-03-09-lang-team-mar-update.md => lang-team-mar-update@1.md} | 0 ...-meetings-rescheduled.md => lang-team-meetings-rescheduled.md} | 0 ...g-team-membership-update.md => lang-team-membership-update.md} | 0 ...team-path-to-membership.md => lang-team-path-to-membership.md} | 0 ...hing-pad-representative.md => launching-pad-representative.md} | 0 ...ership-changes.md => leadership-council-membership-changes.md} | 0 ...l-repr-selection.md => leadership-council-repr-selection@0.md} | 0 ...l-repr-selection.md => leadership-council-repr-selection@1.md} | 0 ...l-repr-selection.md => leadership-council-repr-selection@2.md} | 0 ...l-repr-selection.md => leadership-council-repr-selection@3.md} | 0 ...l-repr-selection.md => leadership-council-repr-selection@4.md} | 0 ...eadership-council-update.md => leadership-council-update@0.md} | 0 ...eadership-council-update.md => leadership-council-update@1.md} | 0 ...eadership-council-update.md => leadership-council-update@2.md} | 0 ...eadership-council-update.md => leadership-council-update@3.md} | 0 ...eadership-council-update.md => leadership-council-update@4.md} | 0 ...eadership-council-update.md => leadership-council-update@5.md} | 0 ...-08-25-leadership-initiatives.md => leadership-initiatives.md} | 0 .../{2022-04-20-libs-aspirations.md => libs-aspirations.md} | 0 ...rs-the8472-kodraus.md => libs-contributors-the8472-kodraus.md} | 0 .../{2022-04-18-libs-contributors.md => libs-contributors@0.md} | 0 .../{2022-08-10-libs-contributors.md => libs-contributors@1.md} | 0 posts/inside-rust/{2022-11-29-libs-member.md => libs-member.md} | 0 .../{2020-06-29-lto-improvements.md => lto-improvements.md} | 0 .../{2022-03-11-mar-steering-cycle.md => mar-steering-cycle.md} | 0 .../{2020-06-08-new-inline-asm.md => new-inline-asm.md} | 0 ...the-core-team-agenda.md => opening-up-the-core-team-agenda.md} | 0 ...-02-27-pietro-joins-core-team.md => pietro-joins-core-team.md} | 0 ...0-25-planning-meeting-update.md => planning-meeting-update.md} | 0 .../{2021-03-04-planning-rust-2021.md => planning-rust-2021.md} | 0 ...compiler-team-co-lead.md => pnkfelix-compiler-team-co-lead.md} | 0 .../{2023-10-06-polonius-update.md => polonius-update.md} | 0 ...-project-director-nominees.md => project-director-nominees.md} | 0 ...17-project-director-update.md => project-director-update@0.md} | 0 ...30-project-director-update.md => project-director-update@1.md} | 0 ...24-project-director-update.md => project-director-update@2.md} | 0 ...or-proposals.md => project-goals-2025h1-call-for-proposals.md} | 0 ...ovements.md => recent-future-pattern-matching-improvements.md} | 0 ...2-27-relnotes-interest-group.md => relnotes-interest-group.md} | 0 .../{2020-03-13-rename-rustc-guide.md => rename-rustc-guide.md} | 0 ...8-02-rotating-compiler-leads.md => rotating-compiler-leads.md} | 0 ...2024-09-26-rtn-call-for-testing.md => rtn-call-for-testing.md} | 0 ...o-github-actions.md => rust-ci-is-moving-to-github-actions.md} | 0 .../{2024-05-09-rust-leads-summit.md => rust-leads-summit.md} | 0 ...26-rustc-dev-guide-overview.md => rustc-dev-guide-overview.md} | 0 ...troduction.md => rustc-learning-working-group-introduction.md} | 0 ...rmance-improvements.md => rustdoc-performance-improvements.md} | 0 ...1.24.0-incident-report.md => rustup-1.24.0-incident-report.md} | 0 ...-02-15-shrinkmem-rustc-sprint.md => shrinkmem-rustc-sprint.md} | 0 ...ource-based-code-coverage.md => source-based-code-coverage.md} | 0 posts/inside-rust/{2023-11-15-spec-vision.md => spec-vision.md} | 0 ...zing-async-fn-in-trait.md => stabilizing-async-fn-in-trait.md} | 0 ...bilizing-intra-doc-links.md => stabilizing-intra-doc-links.md} | 0 .../{2022-06-21-survey-2021-report.md => survey-2021-report.md} | 0 .../{2020-03-19-terminating-rust.md => terminating-rust.md} | 0 .../{2025-01-10-test-infra-dec-2024.md => test-infra-dec-2024.md} | 0 .../{2024-12-09-test-infra-nov-2024.md => test-infra-nov-2024.md} | 0 ...24-11-04-test-infra-oct-2024-2.md => test-infra-oct-2024-2.md} | 0 .../{2024-10-10-test-infra-oct-2024.md => test-infra-oct-2024.md} | 0 ...e-in-cargo-1-76.md => this-development-cycle-in-cargo-1-76.md} | 0 ...e-in-cargo-1-77.md => this-development-cycle-in-cargo-1-77.md} | 0 ...e-in-cargo-1.78.md => this-development-cycle-in-cargo-1.78.md} | 0 ...e-in-cargo-1.79.md => this-development-cycle-in-cargo-1.79.md} | 0 ...e-in-cargo-1.80.md => this-development-cycle-in-cargo-1.80.md} | 0 ...e-in-cargo-1.81.md => this-development-cycle-in-cargo-1.81.md} | 0 ...e-in-cargo-1.82.md => this-development-cycle-in-cargo-1.82.md} | 0 ...e-in-cargo-1.83.md => this-development-cycle-in-cargo-1.83.md} | 0 ...e-in-cargo-1.84.md => this-development-cycle-in-cargo-1.84.md} | 0 ...e-in-cargo-1.85.md => this-development-cycle-in-cargo-1.85.md} | 0 ...e-in-cargo-1.86.md => this-development-cycle-in-cargo-1.86.md} | 0 ...olicy-draft-feedback.md => trademark-policy-draft-feedback.md} | 0 ...factor-initiative.md => trait-system-refactor-initiative@0.md} | 0 ...factor-initiative.md => trait-system-refactor-initiative@1.md} | 0 ...factor-initiative.md => trait-system-refactor-initiative@2.md} | 0 .../{2020-03-28-traits-sprint-1.md => traits-sprint-1.md} | 0 .../{2020-05-18-traits-sprint-2.md => traits-sprint-2.md} | 0 .../{2020-07-17-traits-sprint-3.md => traits-sprint-3.md} | 0 .../inside-rust/{2020-03-13-twir-new-lead.md => twir-new-lead.md} | 0 ...24-04-12-types-team-leadership.md => types-team-leadership.md} | 0 ...sign-meeting.md => upcoming-compiler-team-design-meeting@0.md} | 0 ...sign-meeting.md => upcoming-compiler-team-design-meeting@1.md} | 0 ...gn-meetings.md => upcoming-compiler-team-design-meetings@0.md} | 0 ...gn-meetings.md => upcoming-compiler-team-design-meetings@1.md} | 0 ...gn-meetings.md => upcoming-compiler-team-design-meetings@2.md} | 0 ...gn-meetings.md => upcoming-compiler-team-design-meetings@3.md} | 0 ...gn-meetings.md => upcoming-compiler-team-design-meetings@4.md} | 0 ...s-evaluation.md => update-on-the-github-actions-evaluation.md} | 0 ...20-05-26-website-retrospective.md => website-retrospective.md} | 0 ...come-tc-to-the-lang-team.md => welcome-tc-to-the-lang-team.md} | 0 .../{2019-12-20-wg-learning-update.md => wg-learning-update.md} | 0 ...indows-notification-group.md => windows-notification-group.md} | 0 ...ng-leadership-council.md => introducing-leadership-council.md} | 0 posts/{2017-03-02-lang-ergonomics.md => lang-ergonomics.md} | 0 ...-rusts-future.md => laying-the-foundation-for-rusts-future.md} | 0 posts/{2017-05-05-libz-blitz.md => libz-blitz.md} | 0 ...20-12-11-lock-poisoning-survey.md => lock-poisoning-survey.md} | 0 ...icious-crate-rustdecimal.md => malicious-crate-rustdecimal.md} | 0 ...04-mdbook-security-advisory.md => mdbook-security-advisory.md} | 0 ...gposts.md => new-years-rust-a-call-for-community-blogposts.md} | 0 posts/{2022-08-05-nll-by-default.md => nll-by-default.md} | 0 posts/{2019-11-01-nll-hard-errors.md => nll-hard-errors.md} | 0 posts/{2023-11-09-parallel-rustc.md => parallel-rustc.md} | 0 ...16-project-goals-nov-update.md => project-goals-nov-update.md} | 0 ...31-project-goals-oct-update.md => project-goals-oct-update.md} | 0 ...le-targets.md => reducing-support-for-32-bit-apple-targets.md} | 0 posts/{2023-07-05-regex-1.9.md => regex-1.9.md} | 0 posts/{2020-10-20-regression-labels.md => regression-labels.md} | 0 posts/{2017-02-06-roadmap.md => roadmap@0.md} | 0 posts/{2018-03-12-roadmap.md => roadmap@1.md} | 0 posts/{2019-04-23-roadmap.md => roadmap@2.md} | 0 posts/{2025-01-22-rust-2024-beta.md => rust-2024-beta.md} | 0 ...analyzer-joins-rust-org.md => rust-analyzer-joins-rust-org.md} | 0 posts/{2016-05-16-rust-at-one-year.md => rust-at-one-year.md} | 0 posts/{2017-05-15-rust-at-two-years.md => rust-at-two-years.md} | 0 posts/{2017-12-21-rust-in-2017.md => rust-in-2017.md} | 0 posts/{2020-12-16-rust-survey-2020.md => rust-survey-2020.md} | 0 posts/{2022-06-28-rust-unconference.md => rust-unconference.md} | 0 posts/{2020-03-10-rustconf-cfp.md => rustconf-cfp.md} | 0 ...else-statements.md => rustfmt-supports-let-else-statements.md} | 0 posts/{2016-05-13-rustup.md => rustup.md} | 0 ...y-advisory-for-rustdoc.md => security-advisory-for-rustdoc.md} | 0 posts/{2021-05-15-six-years-of-rust.md => six-years-of-rust.md} | 0 ...6-22-sparse-registry-testing.md => sparse-registry-testing.md} | 0 posts/{2019-12-03-survey-launch.md => survey-launch@0.md} | 0 posts/{2020-09-10-survey-launch.md => survey-launch@1.md} | 0 posts/{2021-12-08-survey-launch.md => survey-launch@2.md} | 0 posts/{2022-12-05-survey-launch.md => survey-launch@3.md} | 0 posts/{2023-12-18-survey-launch.md => survey-launch@4.md} | 0 posts/{2016-05-09-survey.md => survey@0.md} | 0 posts/{2017-05-03-survey.md => survey@1.md} | 0 posts/{2018-08-08-survey.md => survey@2.md} | 0 ...-foundation-conversation.md => the-foundation-conversation.md} | 0 posts/{2024-11-06-trademark-update.md => trademark-update.md} | 0 posts/{2015-05-11-traits.md => traits.md} | 0 posts/{2023-01-20-types-announcement.md => types-announcement.md} | 0 posts/{2024-06-26-types-team-update.md => types-team-update.md} | 0 ...9-18-upcoming-docsrs-changes.md => upcoming-docsrs-changes.md} | 0 ...-to-rusts-wasi-targets.md => updates-to-rusts-wasi-targets.md} | 0 posts/{2024-11-26-wasip2-tier-2.md => wasip2-tier-2.md} | 0 ...d => webassembly-targets-change-in-default-target-features.md} | 0 ...-call-for-contributors.md => wg-prio-call-for-contributors.md} | 0 posts/{2018-07-27-what-is-rust-2018.md => what-is-rust-2018.md} | 0 584 files changed, 0 insertions(+), 0 deletions(-) rename posts/{2014-12-12-1.0-Timeline.md => 1.0-Timeline.md} (100%) rename posts/{2024-02-19-2023-Rust-Annual-Survey-2023-results.md => 2023-Rust-Annual-Survey-2023-results.md} (100%) rename posts/{2023-12-15-2024-Edition-CFP.md => 2024-Edition-CFP.md} (100%) rename posts/{2025-02-13-2024-State-Of-Rust-Survey-results.md => 2024-State-Of-Rust-Survey-results.md} (100%) rename posts/{2019-05-15-4-Years-Of-Rust.md => 4-Years-Of-Rust.md} (100%) rename posts/{2019-10-29-A-call-for-blogs-2020.md => A-call-for-blogs-2020.md} (100%) rename posts/{2019-09-30-Async-await-hits-beta.md => Async-await-hits-beta.md} (100%) rename posts/{2019-11-07-Async-await-stable.md => Async-await-stable.md} (100%) rename posts/{2014-11-20-Cargo.md => Cargo.md} (100%) rename posts/{2024-02-28-Clippy-deprecating-feature-cargo-clippy.md => Clippy-deprecating-feature-cargo-clippy.md} (100%) rename posts/{2014-12-12-Core-Team.md => Core-Team.md} (100%) rename posts/{2019-02-22-Core-team-changes.md => Core-team-changes.md} (100%) rename posts/{2021-09-27-Core-team-membership-updates.md => Core-team-membership-updates.md} (100%) rename posts/{2015-04-17-Enums-match-mutation-and-moves.md => Enums-match-mutation-and-moves.md} (100%) rename posts/{2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md => Fearless-Concurrency-In-Firefox-Quantum.md} (100%) rename posts/{2015-04-10-Fearless-Concurrency.md => Fearless-Concurrency.md} (100%) rename posts/{2015-02-13-Final-1.0-timeline.md => Final-1.0-timeline.md} (100%) rename posts/{2021-08-03-GATs-stabilization-push.md => GATs-stabilization-push.md} (100%) rename posts/{2023-09-25-Increasing-Apple-Version-Requirements.md => Increasing-Apple-Version-Requirements.md} (100%) rename posts/{2018-04-02-Increasing-Rusts-Reach-2018.md => Increasing-Rusts-Reach-2018.md} (100%) rename posts/{2017-06-27-Increasing-Rusts-Reach.md => Increasing-Rusts-Reach.md} (100%) rename posts/{2022-08-01-Increasing-glibc-kernel-requirements.md => Increasing-glibc-kernel-requirements.md} (100%) rename posts/{2016-04-19-MIR.md => MIR.md} (100%) rename posts/{2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md => Mozilla-IRC-Sunset-and-the-Rust-Channel.md} (100%) rename posts/{2020-12-14-Next-steps-for-the-foundation-conversation.md => Next-steps-for-the-foundation-conversation.md} (100%) rename posts/{2015-08-14-Next-year.md => Next-year.md} (100%) rename posts/{2024-05-07-OSPP-2024.md => OSPP-2024.md} (100%) rename posts/{2020-09-03-Planning-2021-Roadmap.md => Planning-2021-Roadmap.md} (100%) rename posts/{2018-12-21-Procedural-Macros-in-Rust-2018.md => Procedural-Macros-in-Rust-2018.md} (100%) rename posts/{2025-01-23-Project-Goals-Dec-Update.md => Project-Goals-Dec-Update.md} (100%) rename posts/{2025-03-03-Project-Goals-Feb-Update.md => Project-Goals-Feb-Update.md} (100%) rename posts/{2024-09-23-Project-Goals-Sep-Update.md => Project-Goals-Sep-Update.md} (100%) rename posts/{2024-08-12-Project-goals.md => Project-goals.md} (100%) rename posts/{2022-07-01-RLS-deprecation.md => RLS-deprecation.md} (100%) rename posts/{2015-01-09-Rust-1.0-alpha.md => Rust-1.0-alpha.md} (100%) rename posts/{2015-02-20-Rust-1.0-alpha2.md => Rust-1.0-alpha2.md} (100%) rename posts/{2015-04-03-Rust-1.0-beta.md => Rust-1.0-beta.md} (100%) rename posts/{2014-09-15-Rust-1.0.md => Rust-1.0@0.md} (100%) rename posts/{2015-05-15-Rust-1.0.md => Rust-1.0@1.md} (100%) rename posts/{2015-06-25-Rust-1.1.md => Rust-1.1.md} (100%) rename posts/{2016-07-07-Rust-1.10.md => Rust-1.10.md} (100%) rename posts/{2016-08-18-Rust-1.11.md => Rust-1.11.md} (100%) rename posts/{2016-10-20-Rust-1.12.1.md => Rust-1.12.1.md} (100%) rename posts/{2016-09-29-Rust-1.12.md => Rust-1.12.md} (100%) rename posts/{2016-11-10-Rust-1.13.md => Rust-1.13.md} (100%) rename posts/{2016-12-22-Rust-1.14.md => Rust-1.14.md} (100%) rename posts/{2017-02-09-Rust-1.15.1.md => Rust-1.15.1.md} (100%) rename posts/{2017-02-02-Rust-1.15.md => Rust-1.15.md} (100%) rename posts/{2017-03-16-Rust-1.16.md => Rust-1.16.md} (100%) rename posts/{2017-04-27-Rust-1.17.md => Rust-1.17.md} (100%) rename posts/{2017-06-08-Rust-1.18.md => Rust-1.18.md} (100%) rename posts/{2017-07-20-Rust-1.19.md => Rust-1.19.md} (100%) rename posts/{2015-08-06-Rust-1.2.md => Rust-1.2.md} (100%) rename posts/{2017-08-31-Rust-1.20.md => Rust-1.20.md} (100%) rename posts/{2017-10-12-Rust-1.21.md => Rust-1.21.md} (100%) rename posts/{2017-11-22-Rust-1.22.md => Rust-1.22.md} (100%) rename posts/{2018-01-04-Rust-1.23.md => Rust-1.23.md} (100%) rename posts/{2018-03-01-Rust-1.24.1.md => Rust-1.24.1.md} (100%) rename posts/{2018-02-15-Rust-1.24.md => Rust-1.24.md} (100%) rename posts/{2018-03-29-Rust-1.25.md => Rust-1.25.md} (100%) rename posts/{2018-05-29-Rust-1.26.1.md => Rust-1.26.1.md} (100%) rename posts/{2018-06-05-Rust-1.26.2.md => Rust-1.26.2.md} (100%) rename posts/{2018-05-10-Rust-1.26.md => Rust-1.26.md} (100%) rename posts/{2018-07-10-Rust-1.27.1.md => Rust-1.27.1.md} (100%) rename posts/{2018-07-20-Rust-1.27.2.md => Rust-1.27.2.md} (100%) rename posts/{2018-06-21-Rust-1.27.md => Rust-1.27.md} (100%) rename posts/{2018-08-02-Rust-1.28.md => Rust-1.28.md} (100%) rename posts/{2018-09-25-Rust-1.29.1.md => Rust-1.29.1.md} (100%) rename posts/{2018-10-12-Rust-1.29.2.md => Rust-1.29.2.md} (100%) rename posts/{2018-09-13-Rust-1.29.md => Rust-1.29.md} (100%) rename posts/{2015-09-17-Rust-1.3.md => Rust-1.3.md} (100%) rename posts/{2018-10-25-Rust-1.30.0.md => Rust-1.30.0.md} (100%) rename posts/{2018-11-08-Rust-1.30.1.md => Rust-1.30.1.md} (100%) rename posts/{2018-12-06-Rust-1.31-and-rust-2018.md => Rust-1.31-and-rust-2018.md} (100%) rename posts/{2018-12-20-Rust-1.31.1.md => Rust-1.31.1.md} (100%) rename posts/{2019-01-17-Rust-1.32.0.md => Rust-1.32.0.md} (100%) rename posts/{2019-02-28-Rust-1.33.0.md => Rust-1.33.0.md} (100%) rename posts/{2019-04-11-Rust-1.34.0.md => Rust-1.34.0.md} (100%) rename posts/{2019-04-25-Rust-1.34.1.md => Rust-1.34.1.md} (100%) rename posts/{2019-05-14-Rust-1.34.2.md => Rust-1.34.2.md} (100%) rename posts/{2019-05-23-Rust-1.35.0.md => Rust-1.35.0.md} (100%) rename posts/{2019-07-04-Rust-1.36.0.md => Rust-1.36.0.md} (100%) rename posts/{2019-08-15-Rust-1.37.0.md => Rust-1.37.0.md} (100%) rename posts/{2019-09-26-Rust-1.38.0.md => Rust-1.38.0.md} (100%) rename posts/{2019-11-07-Rust-1.39.0.md => Rust-1.39.0.md} (100%) rename posts/{2015-10-29-Rust-1.4.md => Rust-1.4.md} (100%) rename posts/{2019-12-19-Rust-1.40.0.md => Rust-1.40.0.md} (100%) rename posts/{2020-01-30-Rust-1.41.0.md => Rust-1.41.0.md} (100%) rename posts/{2020-02-27-Rust-1.41.1.md => Rust-1.41.1.md} (100%) rename posts/{2020-03-12-Rust-1.42.md => Rust-1.42.md} (100%) rename posts/{2020-04-23-Rust-1.43.0.md => Rust-1.43.0.md} (100%) rename posts/{2020-06-04-Rust-1.44.0.md => Rust-1.44.0.md} (100%) rename posts/{2020-07-16-Rust-1.45.0.md => Rust-1.45.0.md} (100%) rename posts/{2020-07-30-Rust-1.45.1.md => Rust-1.45.1.md} (100%) rename posts/{2020-08-03-Rust-1.45.2.md => Rust-1.45.2.md} (100%) rename posts/{2020-08-27-Rust-1.46.0.md => Rust-1.46.0.md} (100%) rename posts/{2020-10-08-Rust-1.47.md => Rust-1.47.md} (100%) rename posts/{2020-11-19-Rust-1.48.md => Rust-1.48.md} (100%) rename posts/{2020-12-31-Rust-1.49.0.md => Rust-1.49.0.md} (100%) rename posts/{2015-12-10-Rust-1.5.md => Rust-1.5.md} (100%) rename posts/{2021-02-11-Rust-1.50.0.md => Rust-1.50.0.md} (100%) rename posts/{2021-03-25-Rust-1.51.0.md => Rust-1.51.0.md} (100%) rename posts/{2021-05-06-Rust-1.52.0.md => Rust-1.52.0.md} (100%) rename posts/{2021-05-10-Rust-1.52.1.md => Rust-1.52.1.md} (100%) rename posts/{2021-06-17-Rust-1.53.0.md => Rust-1.53.0.md} (100%) rename posts/{2021-07-29-Rust-1.54.0.md => Rust-1.54.0.md} (100%) rename posts/{2021-09-09-Rust-1.55.0.md => Rust-1.55.0.md} (100%) rename posts/{2021-10-21-Rust-1.56.0.md => Rust-1.56.0.md} (100%) rename posts/{2021-11-01-Rust-1.56.1.md => Rust-1.56.1.md} (100%) rename posts/{2021-12-02-Rust-1.57.0.md => Rust-1.57.0.md} (100%) rename posts/{2022-01-13-Rust-1.58.0.md => Rust-1.58.0.md} (100%) rename posts/{2022-01-20-Rust-1.58.1.md => Rust-1.58.1.md} (100%) rename posts/{2022-02-24-Rust-1.59.0.md => Rust-1.59.0.md} (100%) rename posts/{2016-01-21-Rust-1.6.md => Rust-1.6.md} (100%) rename posts/{2022-04-07-Rust-1.60.0.md => Rust-1.60.0.md} (100%) rename posts/{2022-05-19-Rust-1.61.0.md => Rust-1.61.0.md} (100%) rename posts/{2022-06-30-Rust-1.62.0.md => Rust-1.62.0.md} (100%) rename posts/{2022-07-19-Rust-1.62.1.md => Rust-1.62.1.md} (100%) rename posts/{2022-08-11-Rust-1.63.0.md => Rust-1.63.0.md} (100%) rename posts/{2022-09-22-Rust-1.64.0.md => Rust-1.64.0.md} (100%) rename posts/{2022-11-03-Rust-1.65.0.md => Rust-1.65.0.md} (100%) rename posts/{2022-12-15-Rust-1.66.0.md => Rust-1.66.0.md} (100%) rename posts/{2023-01-10-Rust-1.66.1.md => Rust-1.66.1.md} (100%) rename posts/{2023-01-26-Rust-1.67.0.md => Rust-1.67.0.md} (100%) rename posts/{2023-02-09-Rust-1.67.1.md => Rust-1.67.1.md} (100%) rename posts/{2023-03-09-Rust-1.68.0.md => Rust-1.68.0.md} (100%) rename posts/{2023-03-23-Rust-1.68.1.md => Rust-1.68.1.md} (100%) rename posts/{2023-03-28-Rust-1.68.2.md => Rust-1.68.2.md} (100%) rename posts/{2023-04-20-Rust-1.69.0.md => Rust-1.69.0.md} (100%) rename posts/{2016-03-02-Rust-1.7.md => Rust-1.7.md} (100%) rename posts/{2023-06-01-Rust-1.70.0.md => Rust-1.70.0.md} (100%) rename posts/{2023-07-13-Rust-1.71.0.md => Rust-1.71.0.md} (100%) rename posts/{2023-08-03-Rust-1.71.1.md => Rust-1.71.1.md} (100%) rename posts/{2023-08-24-Rust-1.72.0.md => Rust-1.72.0.md} (100%) rename posts/{2023-09-19-Rust-1.72.1.md => Rust-1.72.1.md} (100%) rename posts/{2023-10-05-Rust-1.73.0.md => Rust-1.73.0.md} (100%) rename posts/{2023-11-16-Rust-1.74.0.md => Rust-1.74.0.md} (100%) rename posts/{2023-12-07-Rust-1.74.1.md => Rust-1.74.1.md} (100%) rename posts/{2023-12-28-Rust-1.75.0.md => Rust-1.75.0.md} (100%) rename posts/{2024-02-08-Rust-1.76.0.md => Rust-1.76.0.md} (100%) rename posts/{2024-03-21-Rust-1.77.0.md => Rust-1.77.0.md} (100%) rename posts/{2024-03-28-Rust-1.77.1.md => Rust-1.77.1.md} (100%) rename posts/{2024-04-09-Rust-1.77.2.md => Rust-1.77.2.md} (100%) rename posts/{2024-05-02-Rust-1.78.0.md => Rust-1.78.0.md} (100%) rename posts/{2024-06-13-Rust-1.79.0.md => Rust-1.79.0.md} (100%) rename posts/{2016-04-14-Rust-1.8.md => Rust-1.8.md} (100%) rename posts/{2024-07-25-Rust-1.80.0.md => Rust-1.80.0.md} (100%) rename posts/{2024-08-08-Rust-1.80.1.md => Rust-1.80.1.md} (100%) rename posts/{2024-09-05-Rust-1.81.0.md => Rust-1.81.0.md} (100%) rename posts/{2024-10-17-Rust-1.82.0.md => Rust-1.82.0.md} (100%) rename posts/{2024-11-28-Rust-1.83.0.md => Rust-1.83.0.md} (100%) rename posts/{2025-01-09-Rust-1.84.0.md => Rust-1.84.0.md} (100%) rename posts/{2025-01-30-Rust-1.84.1.md => Rust-1.84.1.md} (100%) rename posts/{2025-02-20-Rust-1.85.0.md => Rust-1.85.0.md} (100%) rename posts/{2016-05-26-Rust-1.9.md => Rust-1.9.md} (100%) rename posts/{2017-09-05-Rust-2017-Survey-Results.md => Rust-2017-Survey-Results.md} (100%) rename posts/{2018-12-17-Rust-2018-dev-tools.md => Rust-2018-dev-tools.md} (100%) rename posts/{2021-07-21-Rust-2021-public-testing.md => Rust-2021-public-testing.md} (100%) rename posts/{2024-11-27-Rust-2024-public-testing.md => Rust-2024-public-testing.md} (100%) rename posts/{2015-04-24-Rust-Once-Run-Everywhere.md => Rust-Once-Run-Everywhere.md} (100%) rename posts/{2017-07-05-Rust-Roadmap-Update.md => Rust-Roadmap-Update.md} (100%) rename posts/{2022-02-15-Rust-Survey-2021.md => Rust-Survey-2021.md} (100%) rename posts/{2023-08-07-Rust-Survey-2023-Results.md => Rust-Survey-2023-Results.md} (100%) rename posts/{2024-02-21-Rust-participates-in-GSoC-2024.md => Rust-participates-in-GSoC-2024.md} (100%) rename posts/{2025-03-03-Rust-participates-in-GSoC-2025.md => Rust-participates-in-GSoC-2025.md} (100%) rename posts/{2018-11-27-Rust-survey-2018.md => Rust-survey-2018.md} (100%) rename posts/{2020-04-17-Rust-survey-2019.md => Rust-survey-2019.md} (100%) rename posts/{2018-05-15-Rust-turns-three.md => Rust-turns-three.md} (100%) rename posts/{2020-05-07-Rust.1.43.1.md => Rust.1.43.1.md} (100%) rename posts/{2020-06-18-Rust.1.44.1.md => Rust.1.44.1.md} (100%) rename posts/{2023-05-29-RustConf.md => RustConf.md} (100%) rename posts/{2019-10-15-Rustup-1.20.0.md => Rustup-1.20.0.md} (100%) rename posts/{2020-07-06-Rustup-1.22.0.md => Rustup-1.22.0.md} (100%) rename posts/{2020-07-08-Rustup-1.22.1.md => Rustup-1.22.1.md} (100%) rename posts/{2020-11-27-Rustup-1.23.0.md => Rustup-1.23.0.md} (100%) rename posts/{2021-04-27-Rustup-1.24.0.md => Rustup-1.24.0.md} (100%) rename posts/{2021-04-29-Rustup-1.24.1.md => Rustup-1.24.1.md} (100%) rename posts/{2021-05-17-Rustup-1.24.2.md => Rustup-1.24.2.md} (100%) rename posts/{2021-06-08-Rustup-1.24.3.md => Rustup-1.24.3.md} (100%) rename posts/{2022-07-11-Rustup-1.25.0.md => Rustup-1.25.0.md} (100%) rename posts/{2022-07-12-Rustup-1.25.1.md => Rustup-1.25.1.md} (100%) rename posts/{2023-02-01-Rustup-1.25.2.md => Rustup-1.25.2.md} (100%) rename posts/{2023-04-25-Rustup-1.26.0.md => Rustup-1.26.0.md} (100%) rename posts/{2024-03-11-Rustup-1.27.0.md => Rustup-1.27.0.md} (100%) rename posts/{2024-05-06-Rustup-1.27.1.md => Rustup-1.27.1.md} (100%) rename posts/{2025-03-02-Rustup-1.28.0.md => Rustup-1.28.0.md} (100%) rename posts/{2025-03-04-Rustup-1.28.1.md => Rustup-1.28.1.md} (100%) rename posts/{2020-09-21-Scheduling-2021-Roadmap.md => Scheduling-2021-Roadmap.md} (100%) rename posts/{2019-09-30-Security-advisory-for-cargo.md => Security-advisory-for-cargo.md} (100%) rename posts/{2018-09-21-Security-advisory-for-std.md => Security-advisory-for-std.md} (100%) rename posts/{2019-05-13-Security-advisory.md => Security-advisory.md} (100%) rename posts/{2016-08-10-Shape-of-errors-to-come.md => Shape-of-errors-to-come.md} (100%) rename posts/{2014-10-30-Stability.md => Stability.md} (100%) rename posts/{2016-06-30-State-of-Rust-Survey-2016.md => State-of-Rust-Survey-2016.md} (100%) rename posts/{2018-01-31-The-2018-Rust-Event-Lineup.md => The-2018-Rust-Event-Lineup.md} (100%) rename posts/{2019-05-20-The-2019-Rust-Event-Lineup.md => The-2019-Rust-Event-Lineup.md} (100%) rename posts/{2016-12-15-Underhanded-Rust.md => Underhanded-Rust.md} (100%) rename posts/{2018-10-19-Update-on-crates.io-incident.md => Update-on-crates.io-incident.md} (100%) rename posts/{2023-05-09-Updating-musl-targets.md => Updating-musl-targets.md} (100%) rename posts/{2024-02-26-Windows-7.md => Windows-7.md} (100%) rename posts/{2018-11-29-a-new-look-for-rust-lang-org.md => a-new-look-for-rust-lang-org.md} (100%) rename posts/{2018-04-06-all-hands.md => all-hands.md} (100%) rename posts/{2023-01-09-android-ndk-update-r25.md => android-ndk-update-r25.md} (100%) rename posts/{2023-10-19-announcing-the-new-rust-project-directors.md => announcing-the-new-rust-project-directors.md} (100%) rename posts/{2024-12-05-annual-survey-2024-launch.md => annual-survey-2024-launch.md} (100%) rename posts/{2023-12-21-async-fn-rpit-in-traits.md => async-fn-rpit-in-traits.md} (100%) rename posts/{2021-04-14-async-vision-doc-shiny-future.md => async-vision-doc-shiny-future.md} (100%) rename posts/{2021-03-18-async-vision-doc.md => async-vision-doc.md} (100%) rename posts/{2023-10-26-broken-badges-and-23k-keywords.md => broken-badges-and-23k-keywords.md} (100%) rename posts/{2018-12-06-call-for-rust-2019-roadmap-blogposts.md => call-for-rust-2019-roadmap-blogposts.md} (100%) rename posts/{2023-12-11-cargo-cache-cleaning.md => cargo-cache-cleaning.md} (100%) rename posts/{2022-09-14-cargo-cves.md => cargo-cves.md} (100%) rename posts/{2016-05-05-cargo-pillars.md => cargo-pillars.md} (100%) rename posts/{2022-01-31-changes-in-the-core-team.md => changes-in-the-core-team@0.md} (100%) rename posts/{2022-07-12-changes-in-the-core-team.md => changes-in-the-core-team@1.md} (100%) rename posts/{2024-05-06-check-cfg.md => check-cfg.md} (100%) rename posts/{2023-08-29-committing-lockfiles.md => committing-lockfiles.md} (100%) rename posts/{2016-07-25-conf-lineup.md => conf-lineup@0.md} (100%) rename posts/{2017-07-18-conf-lineup.md => conf-lineup@1.md} (100%) rename posts/{2020-01-31-conf-lineup.md => conf-lineup@2.md} (100%) rename posts/{2022-09-15-const-eval-safety-rule-revision.md => const-eval-safety-rule-revision.md} (100%) rename posts/{2021-02-26-const-generics-mvp-beta.md => const-generics-mvp-beta.md} (100%) rename posts/{2024-08-26-council-survey.md => council-survey.md} (100%) rename posts/{2024-07-29-crates-io-development-update.md => crates-io-development-update@0.md} (100%) rename posts/{2025-02-05-crates-io-development-update.md => crates-io-development-update@1.md} (100%) rename posts/{2024-03-11-crates-io-download-changes.md => crates-io-download-changes.md} (100%) rename posts/{2023-10-27-crates-io-non-canonical-downloads.md => crates-io-non-canonical-downloads.md} (100%) rename posts/{2020-07-14-crates-io-security-advisory.md => crates-io-security-advisory.md} (100%) rename posts/{2022-02-14-crates-io-snapshot-branches.md => crates-io-snapshot-branches.md} (100%) rename posts/{2024-02-06-crates-io-status-codes.md => crates-io-status-codes.md} (100%) rename posts/{2023-09-22-crates-io-usage-policy-rfc.md => crates-io-usage-policy-rfc.md} (100%) rename posts/{2021-11-01-cve-2021-42574.md => cve-2021-42574.md} (100%) rename posts/{2022-01-20-cve-2022-21658.md => cve-2022-21658.md} (100%) rename posts/{2022-03-08-cve-2022-24713.md => cve-2022-24713.md} (100%) rename posts/{2023-01-10-cve-2022-46176.md => cve-2022-46176.md} (100%) rename posts/{2023-08-03-cve-2023-38497.md => cve-2023-38497.md} (100%) rename posts/{2024-04-09-cve-2024-24576.md => cve-2024-24576.md} (100%) rename posts/{2024-09-04-cve-2024-43402.md => cve-2024-43402.md} (100%) rename posts/{2020-03-15-docs-rs-opt-into-fewer-targets.md => docs-rs-opt-into-fewer-targets.md} (100%) rename posts/{2021-05-11-edition-2021.md => edition-2021.md} (100%) rename posts/{2023-08-30-electing-new-project-directors.md => electing-new-project-directors.md} (100%) rename posts/{2024-05-17-enabling-rust-lld-on-linux.md => enabling-rust-lld-on-linux.md} (100%) rename posts/{2020-06-10-event-lineup-update.md => event-lineup-update.md} (100%) rename posts/{2020-05-15-five-years-of-rust.md => five-years-of-rust.md} (100%) rename posts/{2022-10-28-gats-stabilization.md => gats-stabilization.md} (100%) rename posts/{2024-11-07-gccrs-an-alternative-compiler-for-rust.md => gccrs-an-alternative-compiler-for-rust.md} (100%) rename posts/{2019-06-03-governance-wg-announcement.md => governance-wg-announcement.md} (100%) rename posts/{2024-11-07-gsoc-2024-results.md => gsoc-2024-results.md} (100%) rename posts/{2024-05-01-gsoc-2024-selected-projects.md => gsoc-2024-selected-projects.md} (100%) rename posts/{2018-10-30-help-test-rust-2018.md => help-test-rust-2018.md} (100%) rename posts/{2024-03-30-i128-layout-update.md => i128-layout-update.md} (100%) rename posts/{2017-09-18-impl-future-for-rust.md => impl-future-for-rust.md} (100%) rename posts/{2024-09-05-impl-trait-capture-rules.md => impl-trait-capture-rules.md} (100%) rename posts/{2023-06-23-improved-api-tokens-for-crates-io.md => improved-api-tokens-for-crates-io.md} (100%) rename posts/{2016-09-08-incremental.md => incremental.md} (100%) rename posts/{2019-10-03-inside-rust-blog.md => inside-rust-blog.md} (100%) rename posts/inside-rust/{2020-07-27-1.45.1-prerelease.md => 1.45.1-prerelease.md} (100%) rename posts/inside-rust/{2020-08-24-1.46.0-prerelease.md => 1.46.0-prerelease.md} (100%) rename posts/inside-rust/{2020-10-07-1.47.0-prerelease-2.md => 1.47.0-prerelease-2.md} (100%) rename posts/inside-rust/{2020-10-06-1.47.0-prerelease.md => 1.47.0-prerelease.md} (100%) rename posts/inside-rust/{2020-11-16-1.48.0-prerelease.md => 1.48.0-prerelease.md} (100%) rename posts/inside-rust/{2020-12-29-1.49.0-prerelease.md => 1.49.0-prerelease.md} (100%) rename posts/inside-rust/{2021-02-09-1.50.0-prerelease.md => 1.50.0-prerelease.md} (100%) rename posts/inside-rust/{2021-03-23-1.51.0-prerelease.md => 1.51.0-prerelease.md} (100%) rename posts/inside-rust/{2021-05-04-1.52.0-prerelease.md => 1.52.0-prerelease.md} (100%) rename posts/inside-rust/{2021-06-15-1.53.0-prelease.md => 1.53.0-prelease.md} (100%) rename posts/inside-rust/{2021-07-26-1.54.0-prerelease.md => 1.54.0-prerelease.md} (100%) rename posts/inside-rust/{2021-09-07-1.55.0-prerelease.md => 1.55.0-prerelease.md} (100%) rename posts/inside-rust/{2021-10-18-1.56.0-prerelease.md => 1.56.0-prerelease.md} (100%) rename posts/inside-rust/{2021-11-30-1.57.0-prerelease.md => 1.57.0-prerelease.md} (100%) rename posts/inside-rust/{2022-01-11-1.58.0-prerelease.md => 1.58.0-prerelease.md} (100%) rename posts/inside-rust/{2022-02-22-1.59.0-prerelease.md => 1.59.0-prerelease.md} (100%) rename posts/inside-rust/{2022-04-04-1.60.0-prerelease.md => 1.60.0-prerelease.md} (100%) rename posts/inside-rust/{2022-05-16-1.61.0-prerelease.md => 1.61.0-prerelease.md} (100%) rename posts/inside-rust/{2022-06-28-1.62.0-prerelease.md => 1.62.0-prerelease.md} (100%) rename posts/inside-rust/{2022-07-16-1.62.1-prerelease.md => 1.62.1-prerelease.md} (100%) rename posts/inside-rust/{2022-08-09-1.63.0-prerelease.md => 1.63.0-prerelease.md} (100%) rename posts/inside-rust/{2022-09-19-1.64.0-prerelease.md => 1.64.0-prerelease.md} (100%) rename posts/inside-rust/{2022-10-31-1.65.0-prerelease.md => 1.65.0-prerelease.md} (100%) rename posts/inside-rust/{2022-12-12-1.66.0-prerelease.md => 1.66.0-prerelease.md} (100%) rename posts/inside-rust/{2023-01-25-1.67.0-prerelease.md => 1.67.0-prerelease.md} (100%) rename posts/inside-rust/{2023-02-07-1.67.1-prerelease.md => 1.67.1-prerelease.md} (100%) rename posts/inside-rust/{2023-03-06-1.68.0-prerelease.md => 1.68.0-prerelease.md} (100%) rename posts/inside-rust/{2023-03-20-1.68.1-prerelease.md => 1.68.1-prerelease.md} (100%) rename posts/inside-rust/{2023-03-27-1.68.2-prerelease.md => 1.68.2-prerelease.md} (100%) rename posts/inside-rust/{2023-04-17-1.69.0-prerelease.md => 1.69.0-prerelease.md} (100%) rename posts/inside-rust/{2023-05-29-1.70.0-prerelease.md => 1.70.0-prerelease.md} (100%) rename posts/inside-rust/{2023-07-10-1.71.0-prerelease.md => 1.71.0-prerelease.md} (100%) rename posts/inside-rust/{2023-08-01-1.71.1-prerelease.md => 1.71.1-prerelease.md} (100%) rename posts/inside-rust/{2023-08-21-1.72.0-prerelease.md => 1.72.0-prerelease.md} (100%) rename posts/inside-rust/{2023-09-14-1.72.1-prerelease.md => 1.72.1-prerelease.md} (100%) rename posts/inside-rust/{2023-10-03-1.73.0-prerelease.md => 1.73.0-prerelease.md} (100%) rename posts/inside-rust/{2023-11-13-1.74.0-prerelease.md => 1.74.0-prerelease.md} (100%) rename posts/inside-rust/{2023-12-05-1.74.1-prerelease.md => 1.74.1-prerelease.md} (100%) rename posts/inside-rust/{2023-12-21-1.75.0-prerelease.md => 1.75.0-prerelease.md} (100%) rename posts/inside-rust/{2024-02-04-1.76.0-prerelease.md => 1.76.0-prerelease.md} (100%) rename posts/inside-rust/{2024-03-17-1.77.0-prerelease.md => 1.77.0-prerelease.md} (100%) rename posts/inside-rust/{2024-03-27-1.77.1-prerelease.md => 1.77.1-prerelease.md} (100%) rename posts/inside-rust/{2024-03-22-2024-edition-update.md => 2024-edition-update.md} (100%) rename posts/inside-rust/{2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md => AsyncAwait-Not-Send-Error-Improvements.md} (100%) rename posts/inside-rust/{2019-10-07-AsyncAwait-WG-Focus-Issues.md => AsyncAwait-WG-Focus-Issues.md} (100%) rename posts/inside-rust/{2020-10-16-Backlog-Bonanza.md => Backlog-Bonanza.md} (100%) rename posts/inside-rust/{2022-04-12-CTCFT-april.md => CTCFT-april.md} (100%) rename posts/inside-rust/{2022-02-11-CTCFT-february.md => CTCFT-february.md} (100%) rename posts/inside-rust/{2022-03-16-CTCFT-march.md => CTCFT-march.md} (100%) rename posts/inside-rust/{2022-05-10-CTCFT-may.md => CTCFT-may.md} (100%) rename posts/inside-rust/{2020-02-06-Cleanup-Crew-ICE-breakers.md => Cleanup-Crew-ICE-breakers.md} (100%) rename posts/inside-rust/{2019-11-04-Clippy-removes-plugin-interface.md => Clippy-removes-plugin-interface.md} (100%) rename posts/inside-rust/{2022-05-26-Concluding-events-mods.md => Concluding-events-mods.md} (100%) rename posts/inside-rust/{2020-10-23-Core-team-membership.md => Core-team-membership.md} (100%) rename posts/inside-rust/{2020-01-14-Goverance-wg-cfp.md => Goverance-wg-cfp.md} (100%) rename posts/inside-rust/{2020-02-11-Goverance-wg.md => Goverance-wg@0.md} (100%) rename posts/inside-rust/{2020-02-27-Goverance-wg.md => Goverance-wg@1.md} (100%) rename posts/inside-rust/{2020-04-14-Governance-WG-updated.md => Governance-WG-updated.md} (100%) rename posts/inside-rust/{2020-04-23-Governance-wg.md => Governance-wg.md} (100%) rename posts/inside-rust/{2020-01-23-Introducing-cargo-audit-fix-and-more.md => Introducing-cargo-audit-fix-and-more.md} (100%) rename posts/inside-rust/{2019-10-03-Keeping-secure-with-cargo-audit-0.9.md => Keeping-secure-with-cargo-audit-0.9.md} (100%) rename posts/inside-rust/{2019-10-22-LLVM-ICE-breakers.md => LLVM-ICE-breakers.md} (100%) rename posts/inside-rust/{2019-10-11-Lang-Team-Meeting.md => Lang-Team-Meeting.md} (100%) rename posts/inside-rust/{2021-10-08-Lang-team-Oct-update.md => Lang-team-Oct-update.md} (100%) rename posts/inside-rust/{2021-07-12-Lang-team-july-update.md => Lang-team-july-update.md} (100%) rename posts/inside-rust/{2019-11-22-Lang-team-meeting.md => Lang-team-meeting.md} (100%) rename posts/inside-rust/{2020-07-02-Ownership-Std-Implementation.md => Ownership-Std-Implementation.md} (100%) rename posts/inside-rust/{2020-09-29-Portable-SIMD-PG.md => Portable-SIMD-PG.md} (100%) rename posts/inside-rust/{2021-09-06-Splitting-const-generics.md => Splitting-const-generics.md} (100%) rename posts/inside-rust/{2020-11-15-Using-rustc_codegen_cranelift.md => Using-rustc_codegen_cranelift.md} (100%) rename posts/inside-rust/{2019-09-25-Welcome.md => Welcome.md} (100%) rename posts/inside-rust/{2020-11-23-What-the-error-handling-project-group-is-working-on.md => What-the-error-handling-project-group-is-working-on.md} (100%) rename posts/inside-rust/{2021-07-01-What-the-error-handling-project-group-is-working-towards.md => What-the-error-handling-project-group-is-working-towards.md} (100%) rename posts/inside-rust/{2021-04-26-aaron-hill-compiler-team.md => aaron-hill-compiler-team.md} (100%) rename posts/inside-rust/{2020-03-18-all-hands-retrospective.md => all-hands-retrospective.md} (100%) rename posts/inside-rust/{2024-09-02-all-hands.md => all-hands.md} (100%) rename posts/inside-rust/{2024-05-07-announcing-project-goals.md => announcing-project-goals.md} (100%) rename posts/inside-rust/{2019-12-09-announcing-the-docsrs-team.md => announcing-the-docsrs-team.md} (100%) rename posts/inside-rust/{2022-09-29-announcing-the-rust-style-team.md => announcing-the-rust-style-team.md} (100%) rename posts/inside-rust/{2023-05-09-api-token-scopes.md => api-token-scopes.md} (100%) rename posts/inside-rust/{2022-04-15-apr-steering-cycle.md => apr-steering-cycle.md} (100%) rename posts/inside-rust/{2024-08-09-async-closures-call-for-testing.md => async-closures-call-for-testing.md} (100%) rename posts/inside-rust/{2022-11-17-async-fn-in-trait-nightly.md => async-fn-in-trait-nightly.md} (100%) rename posts/inside-rust/{2022-02-03-async-in-2022.md => async-in-2022.md} (100%) rename posts/inside-rust/{2019-12-18-bisecting-rust-compiler.md => bisecting-rust-compiler.md} (100%) rename posts/inside-rust/{2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md => boxyuwu-leseulartichaut-the8472-compiler-contributors.md} (100%) rename posts/inside-rust/{2023-08-24-cargo-config-merging.md => cargo-config-merging.md} (100%) rename posts/inside-rust/{2020-01-10-cargo-in-2020.md => cargo-in-2020.md} (100%) rename posts/inside-rust/{2023-04-06-cargo-new-members.md => cargo-new-members.md} (100%) rename posts/inside-rust/{2023-05-01-cargo-postmortem.md => cargo-postmortem.md} (100%) rename posts/inside-rust/{2023-01-30-cargo-sparse-protocol.md => cargo-sparse-protocol.md} (100%) rename posts/inside-rust/{2022-03-31-cargo-team-changes.md => cargo-team-changes.md} (100%) rename posts/inside-rust/{2020-12-14-changes-to-compiler-team.md => changes-to-compiler-team.md} (100%) rename posts/inside-rust/{2021-01-19-changes-to-rustdoc-team.md => changes-to-rustdoc-team.md} (100%) rename posts/inside-rust/{2020-08-30-changes-to-x-py-defaults.md => changes-to-x-py-defaults.md} (100%) rename posts/inside-rust/{2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md => cjgillot-and-nadrieril-for-compiler-contributors.md} (100%) rename posts/inside-rust/{2022-07-13-clippy-team-changes.md => clippy-team-changes.md} (100%) rename posts/inside-rust/{2022-08-08-compiler-team-2022-midyear-report.md => compiler-team-2022-midyear-report.md} (100%) rename posts/inside-rust/{2022-02-22-compiler-team-ambitions-2022.md => compiler-team-ambitions-2022.md} (100%) rename posts/inside-rust/{2021-04-15-compiler-team-april-steering-cycle.md => compiler-team-april-steering-cycle.md} (100%) rename posts/inside-rust/{2021-07-30-compiler-team-august-steering-cycle.md => compiler-team-august-steering-cycle.md} (100%) rename posts/inside-rust/{2023-02-10-compiler-team-feb-steering-cycle.md => compiler-team-feb-steering-cycle.md} (100%) rename posts/inside-rust/{2021-07-02-compiler-team-july-steering-cycle.md => compiler-team-july-steering-cycle.md} (100%) rename posts/inside-rust/{2021-06-23-compiler-team-june-steering-cycle.md => compiler-team-june-steering-cycle.md} (100%) rename posts/inside-rust/{2019-10-15-compiler-team-meeting.md => compiler-team-meeting@0.md} (100%) rename posts/inside-rust/{2019-10-21-compiler-team-meeting.md => compiler-team-meeting@1.md} (100%) rename posts/inside-rust/{2019-10-30-compiler-team-meeting.md => compiler-team-meeting@2.md} (100%) rename posts/inside-rust/{2019-11-07-compiler-team-meeting.md => compiler-team-meeting@3.md} (100%) rename posts/inside-rust/{2019-11-11-compiler-team-meeting.md => compiler-team-meeting@4.md} (100%) rename posts/inside-rust/{2019-11-19-compiler-team-meeting.md => compiler-team-meeting@5.md} (100%) rename posts/inside-rust/{2020-02-07-compiler-team-meeting.md => compiler-team-meeting@6.md} (100%) rename posts/inside-rust/{2024-11-12-compiler-team-new-members.md => compiler-team-new-members.md} (100%) rename posts/inside-rust/{2024-11-01-compiler-team-reorg.md => compiler-team-reorg.md} (100%) rename posts/inside-rust/{2022-09-23-compiler-team-sep-oct-steering-cycle.md => compiler-team-sep-oct-steering-cycle.md} (100%) rename posts/inside-rust/{2019-11-25-const-if-match.md => const-if-match.md} (100%) rename posts/inside-rust/{2019-12-02-const-prop-on-by-default.md => const-prop-on-by-default.md} (100%) rename posts/inside-rust/{2023-01-24-content-delivery-networks.md => content-delivery-networks.md} (100%) rename posts/inside-rust/{2020-05-27-contributor-survey.md => contributor-survey.md} (100%) rename posts/inside-rust/{2021-05-04-core-team-update.md => core-team-update.md} (100%) rename posts/inside-rust/{2021-04-03-core-team-updates.md => core-team-updates.md} (100%) rename posts/inside-rust/{2023-10-23-coroutines.md => coroutines.md} (100%) rename posts/inside-rust/{2020-02-26-crates-io-incident-report.md => crates-io-incident-report.md} (100%) rename posts/inside-rust/{2023-09-01-crates-io-malware-postmortem.md => crates-io-malware-postmortem.md} (100%) rename posts/inside-rust/{2023-07-21-crates-io-postmortem.md => crates-io-postmortem.md} (100%) rename posts/inside-rust/{2021-02-01-davidtwco-jackhuey-compiler-members.md => davidtwco-jackhuey-compiler-members.md} (100%) rename posts/inside-rust/{2022-08-16-diagnostic-effort.md => diagnostic-effort.md} (100%) rename posts/inside-rust/{2023-02-08-dns-outage-portmortem.md => dns-outage-portmortem.md} (100%) rename posts/inside-rust/{2019-10-24-docsrs-outage-postmortem.md => docsrs-outage-postmortem.md} (100%) rename posts/inside-rust/{2019-10-17-ecstatic-morse-for-compiler-contributors.md => ecstatic-morse-for-compiler-contributors.md} (100%) rename posts/inside-rust/{2024-09-06-electing-new-project-directors.md => electing-new-project-directors.md} (100%) rename posts/inside-rust/{2024-08-22-embedded-wg-micro-survey.md => embedded-wg-micro-survey.md} (100%) rename posts/inside-rust/{2020-09-18-error-handling-wg-announcement.md => error-handling-wg-announcement.md} (100%) rename posts/inside-rust/{2019-11-14-evaluating-github-actions.md => evaluating-github-actions.md} (100%) rename posts/inside-rust/{2020-11-11-exploring-pgo-for-the-rust-compiler.md => exploring-pgo-for-the-rust-compiler.md} (100%) rename posts/inside-rust/{2020-01-24-feb-lang-team-design-meetings.md => feb-lang-team-design-meetings.md} (100%) rename posts/inside-rust/{2022-02-17-feb-steering-cycle.md => feb-steering-cycle.md} (100%) rename posts/inside-rust/{2020-02-27-ffi-unwind-design-meeting.md => ffi-unwind-design-meeting.md} (100%) rename posts/inside-rust/{2021-01-26-ffi-unwind-longjmp.md => ffi-unwind-longjmp.md} (100%) rename posts/inside-rust/{2021-12-17-follow-up-on-the-moderation-issue.md => follow-up-on-the-moderation-issue.md} (100%) rename posts/inside-rust/{2019-12-23-formatting-the-compiler.md => formatting-the-compiler.md} (100%) rename posts/inside-rust/{2020-03-27-goodbye-docs-team.md => goodbye-docs-team.md} (100%) rename posts/inside-rust/{2019-11-13-goverance-wg-cfp.md => goverance-wg-cfp.md} (100%) rename posts/inside-rust/{2023-02-22-governance-reform-rfc.md => governance-reform-rfc.md} (100%) rename posts/inside-rust/{2022-05-19-governance-update.md => governance-update@0.md} (100%) rename posts/inside-rust/{2022-10-06-governance-update.md => governance-update@1.md} (100%) rename posts/inside-rust/{2019-12-03-governance-wg-meeting.md => governance-wg-meeting@0.md} (100%) rename posts/inside-rust/{2019-12-10-governance-wg-meeting.md => governance-wg-meeting@1.md} (100%) rename posts/inside-rust/{2019-12-20-governance-wg-meeting.md => governance-wg-meeting@2.md} (100%) rename posts/inside-rust/{2020-03-17-governance-wg.md => governance-wg.md} (100%) rename posts/inside-rust/{2019-12-04-ide-future.md => ide-future.md} (100%) rename posts/inside-rust/{2022-04-19-imposter-syndrome.md => imposter-syndrome.md} (100%) rename posts/inside-rust/{2021-11-25-in-response-to-the-moderation-team-resignation.md => in-response-to-the-moderation-team-resignation.md} (100%) rename posts/inside-rust/{2025-03-05-inferred-const-generic-arguments.md => inferred-const-generic-arguments.md} (100%) rename posts/inside-rust/{2023-09-08-infra-team-leadership-change.md => infra-team-leadership-change.md} (100%) rename posts/inside-rust/{2019-10-15-infra-team-meeting.md => infra-team-meeting@0.md} (100%) rename posts/inside-rust/{2019-10-22-infra-team-meeting.md => infra-team-meeting@1.md} (100%) rename posts/inside-rust/{2019-10-29-infra-team-meeting.md => infra-team-meeting@2.md} (100%) rename posts/inside-rust/{2019-11-06-infra-team-meeting.md => infra-team-meeting@3.md} (100%) rename posts/inside-rust/{2019-11-18-infra-team-meeting.md => infra-team-meeting@4.md} (100%) rename posts/inside-rust/{2019-11-19-infra-team-meeting.md => infra-team-meeting@5.md} (100%) rename posts/inside-rust/{2019-12-11-infra-team-meeting.md => infra-team-meeting@6.md} (100%) rename posts/inside-rust/{2019-12-20-infra-team-meeting.md => infra-team-meeting@7.md} (100%) rename posts/inside-rust/{2020-02-25-intro-rustc-self-profile.md => intro-rustc-self-profile.md} (100%) rename posts/inside-rust/{2022-01-18-jan-steering-cycle.md => jan-steering-cycle.md} (100%) rename posts/inside-rust/{2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md => jasper-and-wiser-full-members-of-compiler-team.md} (100%) rename posts/inside-rust/{2021-04-20-jsha-rustdoc-member.md => jsha-rustdoc-member.md} (100%) rename posts/inside-rust/{2020-02-20-jtgeibel-crates-io-co-lead.md => jtgeibel-crates-io-co-lead.md} (100%) rename posts/inside-rust/{2022-06-03-jun-steering-cycle.md => jun-steering-cycle.md} (100%) rename posts/inside-rust/{2023-09-04-keeping-secure-with-cargo-audit-0.18.md => keeping-secure-with-cargo-audit-0.18.md} (100%) rename posts/inside-rust/{2023-02-23-keyword-generics-progress-report-feb-2023.md => keyword-generics-progress-report-feb-2023.md} (100%) rename posts/inside-rust/{2022-07-27-keyword-generics.md => keyword-generics.md} (100%) rename posts/inside-rust/{2023-02-14-lang-advisors.md => lang-advisors.md} (100%) rename posts/inside-rust/{2022-04-04-lang-roadmap-2024.md => lang-roadmap-2024.md} (100%) rename posts/inside-rust/{2021-04-17-lang-team-apr-update.md => lang-team-apr-update.md} (100%) rename posts/inside-rust/{2022-04-06-lang-team-april-update.md => lang-team-april-update.md} (100%) rename posts/inside-rust/{2021-08-04-lang-team-aug-update.md => lang-team-aug-update.md} (100%) rename posts/inside-rust/{2024-02-13-lang-team-colead.md => lang-team-colead.md} (100%) rename posts/inside-rust/{2020-07-29-lang-team-design-meeting-min-const-generics.md => lang-team-design-meeting-min-const-generics.md} (100%) rename posts/inside-rust/{2020-07-08-lang-team-design-meeting-update.md => lang-team-design-meeting-update.md} (100%) rename posts/inside-rust/{2020-07-29-lang-team-design-meeting-wf-types.md => lang-team-design-meeting-wf-types.md} (100%) rename posts/inside-rust/{2020-01-10-lang-team-design-meetings.md => lang-team-design-meetings@0.md} (100%) rename posts/inside-rust/{2020-03-11-lang-team-design-meetings.md => lang-team-design-meetings@1.md} (100%) rename posts/inside-rust/{2020-04-10-lang-team-design-meetings.md => lang-team-design-meetings@2.md} (100%) rename posts/inside-rust/{2021-02-03-lang-team-feb-update.md => lang-team-feb-update@0.md} (100%) rename posts/inside-rust/{2022-02-18-lang-team-feb-update.md => lang-team-feb-update@1.md} (100%) rename posts/inside-rust/{2021-03-03-lang-team-mar-update.md => lang-team-mar-update@0.md} (100%) rename posts/inside-rust/{2022-03-09-lang-team-mar-update.md => lang-team-mar-update@1.md} (100%) rename posts/inside-rust/{2020-05-08-lang-team-meetings-rescheduled.md => lang-team-meetings-rescheduled.md} (100%) rename posts/inside-rust/{2023-02-14-lang-team-membership-update.md => lang-team-membership-update.md} (100%) rename posts/inside-rust/{2020-07-09-lang-team-path-to-membership.md => lang-team-path-to-membership.md} (100%) rename posts/inside-rust/{2024-05-28-launching-pad-representative.md => launching-pad-representative.md} (100%) rename posts/inside-rust/{2023-08-29-leadership-council-membership-changes.md => leadership-council-membership-changes.md} (100%) rename posts/inside-rust/{2024-02-19-leadership-council-repr-selection.md => leadership-council-repr-selection@0.md} (100%) rename posts/inside-rust/{2024-04-01-leadership-council-repr-selection.md => leadership-council-repr-selection@1.md} (100%) rename posts/inside-rust/{2024-08-20-leadership-council-repr-selection.md => leadership-council-repr-selection@2.md} (100%) rename posts/inside-rust/{2024-09-27-leadership-council-repr-selection.md => leadership-council-repr-selection@3.md} (100%) rename posts/inside-rust/{2025-02-14-leadership-council-repr-selection.md => leadership-council-repr-selection@4.md} (100%) rename posts/inside-rust/{2023-07-25-leadership-council-update.md => leadership-council-update@0.md} (100%) rename posts/inside-rust/{2023-11-13-leadership-council-update.md => leadership-council-update@1.md} (100%) rename posts/inside-rust/{2024-02-13-leadership-council-update.md => leadership-council-update@2.md} (100%) rename posts/inside-rust/{2024-05-14-leadership-council-update.md => leadership-council-update@3.md} (100%) rename posts/inside-rust/{2024-09-06-leadership-council-update.md => leadership-council-update@4.md} (100%) rename posts/inside-rust/{2024-12-09-leadership-council-update.md => leadership-council-update@5.md} (100%) rename posts/inside-rust/{2023-08-25-leadership-initiatives.md => leadership-initiatives.md} (100%) rename posts/inside-rust/{2022-04-20-libs-aspirations.md => libs-aspirations.md} (100%) rename posts/inside-rust/{2021-11-15-libs-contributors-the8472-kodraus.md => libs-contributors-the8472-kodraus.md} (100%) rename posts/inside-rust/{2022-04-18-libs-contributors.md => libs-contributors@0.md} (100%) rename posts/inside-rust/{2022-08-10-libs-contributors.md => libs-contributors@1.md} (100%) rename posts/inside-rust/{2022-11-29-libs-member.md => libs-member.md} (100%) rename posts/inside-rust/{2020-06-29-lto-improvements.md => lto-improvements.md} (100%) rename posts/inside-rust/{2022-03-11-mar-steering-cycle.md => mar-steering-cycle.md} (100%) rename posts/inside-rust/{2020-06-08-new-inline-asm.md => new-inline-asm.md} (100%) rename posts/inside-rust/{2020-07-27-opening-up-the-core-team-agenda.md => opening-up-the-core-team-agenda.md} (100%) rename posts/inside-rust/{2020-02-27-pietro-joins-core-team.md => pietro-joins-core-team.md} (100%) rename posts/inside-rust/{2019-10-25-planning-meeting-update.md => planning-meeting-update.md} (100%) rename posts/inside-rust/{2021-03-04-planning-rust-2021.md => planning-rust-2021.md} (100%) rename posts/inside-rust/{2019-10-24-pnkfelix-compiler-team-co-lead.md => pnkfelix-compiler-team-co-lead.md} (100%) rename posts/inside-rust/{2023-10-06-polonius-update.md => polonius-update.md} (100%) rename posts/inside-rust/{2023-09-22-project-director-nominees.md => project-director-nominees.md} (100%) rename posts/inside-rust/{2024-12-17-project-director-update.md => project-director-update@0.md} (100%) rename posts/inside-rust/{2025-01-30-project-director-update.md => project-director-update@1.md} (100%) rename posts/inside-rust/{2025-02-24-project-director-update.md => project-director-update@2.md} (100%) rename posts/inside-rust/{2024-11-04-project-goals-2025h1-call-for-proposals.md => project-goals-2025h1-call-for-proposals.md} (100%) rename posts/inside-rust/{2020-03-04-recent-future-pattern-matching-improvements.md => recent-future-pattern-matching-improvements.md} (100%) rename posts/inside-rust/{2025-02-27-relnotes-interest-group.md => relnotes-interest-group.md} (100%) rename posts/inside-rust/{2020-03-13-rename-rustc-guide.md => rename-rustc-guide.md} (100%) rename posts/inside-rust/{2023-08-02-rotating-compiler-leads.md => rotating-compiler-leads.md} (100%) rename posts/inside-rust/{2024-09-26-rtn-call-for-testing.md => rtn-call-for-testing.md} (100%) rename posts/inside-rust/{2020-07-23-rust-ci-is-moving-to-github-actions.md => rust-ci-is-moving-to-github-actions.md} (100%) rename posts/inside-rust/{2024-05-09-rust-leads-summit.md => rust-leads-summit.md} (100%) rename posts/inside-rust/{2020-03-26-rustc-dev-guide-overview.md => rustc-dev-guide-overview.md} (100%) rename posts/inside-rust/{2019-10-28-rustc-learning-working-group-introduction.md => rustc-learning-working-group-introduction.md} (100%) rename posts/inside-rust/{2021-01-15-rustdoc-performance-improvements.md => rustdoc-performance-improvements.md} (100%) rename posts/inside-rust/{2021-04-28-rustup-1.24.0-incident-report.md => rustup-1.24.0-incident-report.md} (100%) rename posts/inside-rust/{2021-02-15-shrinkmem-rustc-sprint.md => shrinkmem-rustc-sprint.md} (100%) rename posts/inside-rust/{2020-11-12-source-based-code-coverage.md => source-based-code-coverage.md} (100%) rename posts/inside-rust/{2023-11-15-spec-vision.md => spec-vision.md} (100%) rename posts/inside-rust/{2023-05-03-stabilizing-async-fn-in-trait.md => stabilizing-async-fn-in-trait.md} (100%) rename posts/inside-rust/{2020-09-17-stabilizing-intra-doc-links.md => stabilizing-intra-doc-links.md} (100%) rename posts/inside-rust/{2022-06-21-survey-2021-report.md => survey-2021-report.md} (100%) rename posts/inside-rust/{2020-03-19-terminating-rust.md => terminating-rust.md} (100%) rename posts/inside-rust/{2025-01-10-test-infra-dec-2024.md => test-infra-dec-2024.md} (100%) rename posts/inside-rust/{2024-12-09-test-infra-nov-2024.md => test-infra-nov-2024.md} (100%) rename posts/inside-rust/{2024-11-04-test-infra-oct-2024-2.md => test-infra-oct-2024-2.md} (100%) rename posts/inside-rust/{2024-10-10-test-infra-oct-2024.md => test-infra-oct-2024.md} (100%) rename posts/inside-rust/{2024-01-03-this-development-cycle-in-cargo-1-76.md => this-development-cycle-in-cargo-1-76.md} (100%) rename posts/inside-rust/{2024-02-13-this-development-cycle-in-cargo-1-77.md => this-development-cycle-in-cargo-1-77.md} (100%) rename posts/inside-rust/{2024-03-26-this-development-cycle-in-cargo-1.78.md => this-development-cycle-in-cargo-1.78.md} (100%) rename posts/inside-rust/{2024-05-07-this-development-cycle-in-cargo-1.79.md => this-development-cycle-in-cargo-1.79.md} (100%) rename posts/inside-rust/{2024-06-19-this-development-cycle-in-cargo-1.80.md => this-development-cycle-in-cargo-1.80.md} (100%) rename posts/inside-rust/{2024-08-15-this-development-cycle-in-cargo-1.81.md => this-development-cycle-in-cargo-1.81.md} (100%) rename posts/inside-rust/{2024-10-01-this-development-cycle-in-cargo-1.82.md => this-development-cycle-in-cargo-1.82.md} (100%) rename posts/inside-rust/{2024-10-31-this-development-cycle-in-cargo-1.83.md => this-development-cycle-in-cargo-1.83.md} (100%) rename posts/inside-rust/{2024-12-13-this-development-cycle-in-cargo-1.84.md => this-development-cycle-in-cargo-1.84.md} (100%) rename posts/inside-rust/{2025-01-17-this-development-cycle-in-cargo-1.85.md => this-development-cycle-in-cargo-1.85.md} (100%) rename posts/inside-rust/{2025-02-27-this-development-cycle-in-cargo-1.86.md => this-development-cycle-in-cargo-1.86.md} (100%) rename posts/inside-rust/{2023-04-12-trademark-policy-draft-feedback.md => trademark-policy-draft-feedback.md} (100%) rename posts/inside-rust/{2023-07-17-trait-system-refactor-initiative.md => trait-system-refactor-initiative@0.md} (100%) rename posts/inside-rust/{2023-12-22-trait-system-refactor-initiative.md => trait-system-refactor-initiative@1.md} (100%) rename posts/inside-rust/{2024-12-04-trait-system-refactor-initiative.md => trait-system-refactor-initiative@2.md} (100%) rename posts/inside-rust/{2020-03-28-traits-sprint-1.md => traits-sprint-1.md} (100%) rename posts/inside-rust/{2020-05-18-traits-sprint-2.md => traits-sprint-2.md} (100%) rename posts/inside-rust/{2020-07-17-traits-sprint-3.md => traits-sprint-3.md} (100%) rename posts/inside-rust/{2020-03-13-twir-new-lead.md => twir-new-lead.md} (100%) rename posts/inside-rust/{2024-04-12-types-team-leadership.md => types-team-leadership.md} (100%) rename posts/inside-rust/{2020-04-10-upcoming-compiler-team-design-meeting.md => upcoming-compiler-team-design-meeting@0.md} (100%) rename posts/inside-rust/{2020-06-08-upcoming-compiler-team-design-meeting.md => upcoming-compiler-team-design-meeting@1.md} (100%) rename posts/inside-rust/{2019-11-22-upcoming-compiler-team-design-meetings.md => upcoming-compiler-team-design-meetings@0.md} (100%) rename posts/inside-rust/{2020-01-24-upcoming-compiler-team-design-meetings.md => upcoming-compiler-team-design-meetings@1.md} (100%) rename posts/inside-rust/{2020-02-14-upcoming-compiler-team-design-meetings.md => upcoming-compiler-team-design-meetings@2.md} (100%) rename posts/inside-rust/{2020-03-13-upcoming-compiler-team-design-meetings.md => upcoming-compiler-team-design-meetings@3.md} (100%) rename posts/inside-rust/{2020-08-28-upcoming-compiler-team-design-meetings.md => upcoming-compiler-team-design-meetings@4.md} (100%) rename posts/inside-rust/{2020-04-07-update-on-the-github-actions-evaluation.md => update-on-the-github-actions-evaluation.md} (100%) rename posts/inside-rust/{2020-05-26-website-retrospective.md => website-retrospective.md} (100%) rename posts/inside-rust/{2024-08-01-welcome-tc-to-the-lang-team.md => welcome-tc-to-the-lang-team.md} (100%) rename posts/inside-rust/{2019-12-20-wg-learning-update.md => wg-learning-update.md} (100%) rename posts/inside-rust/{2020-06-09-windows-notification-group.md => windows-notification-group.md} (100%) rename posts/{2023-06-20-introducing-leadership-council.md => introducing-leadership-council.md} (100%) rename posts/{2017-03-02-lang-ergonomics.md => lang-ergonomics.md} (100%) rename posts/{2020-08-18-laying-the-foundation-for-rusts-future.md => laying-the-foundation-for-rusts-future.md} (100%) rename posts/{2017-05-05-libz-blitz.md => libz-blitz.md} (100%) rename posts/{2020-12-11-lock-poisoning-survey.md => lock-poisoning-survey.md} (100%) rename posts/{2022-05-10-malicious-crate-rustdecimal.md => malicious-crate-rustdecimal.md} (100%) rename posts/{2021-01-04-mdbook-security-advisory.md => mdbook-security-advisory.md} (100%) rename posts/{2018-01-03-new-years-rust-a-call-for-community-blogposts.md => new-years-rust-a-call-for-community-blogposts.md} (100%) rename posts/{2022-08-05-nll-by-default.md => nll-by-default.md} (100%) rename posts/{2019-11-01-nll-hard-errors.md => nll-hard-errors.md} (100%) rename posts/{2023-11-09-parallel-rustc.md => parallel-rustc.md} (100%) rename posts/{2024-12-16-project-goals-nov-update.md => project-goals-nov-update.md} (100%) rename posts/{2024-10-31-project-goals-oct-update.md => project-goals-oct-update.md} (100%) rename posts/{2020-01-03-reducing-support-for-32-bit-apple-targets.md => reducing-support-for-32-bit-apple-targets.md} (100%) rename posts/{2023-07-05-regex-1.9.md => regex-1.9.md} (100%) rename posts/{2020-10-20-regression-labels.md => regression-labels.md} (100%) rename posts/{2017-02-06-roadmap.md => roadmap@0.md} (100%) rename posts/{2018-03-12-roadmap.md => roadmap@1.md} (100%) rename posts/{2019-04-23-roadmap.md => roadmap@2.md} (100%) rename posts/{2025-01-22-rust-2024-beta.md => rust-2024-beta.md} (100%) rename posts/{2022-02-21-rust-analyzer-joins-rust-org.md => rust-analyzer-joins-rust-org.md} (100%) rename posts/{2016-05-16-rust-at-one-year.md => rust-at-one-year.md} (100%) rename posts/{2017-05-15-rust-at-two-years.md => rust-at-two-years.md} (100%) rename posts/{2017-12-21-rust-in-2017.md => rust-in-2017.md} (100%) rename posts/{2020-12-16-rust-survey-2020.md => rust-survey-2020.md} (100%) rename posts/{2022-06-28-rust-unconference.md => rust-unconference.md} (100%) rename posts/{2020-03-10-rustconf-cfp.md => rustconf-cfp.md} (100%) rename posts/{2023-07-01-rustfmt-supports-let-else-statements.md => rustfmt-supports-let-else-statements.md} (100%) rename posts/{2016-05-13-rustup.md => rustup.md} (100%) rename posts/{2018-07-06-security-advisory-for-rustdoc.md => security-advisory-for-rustdoc.md} (100%) rename posts/{2021-05-15-six-years-of-rust.md => six-years-of-rust.md} (100%) rename posts/{2022-06-22-sparse-registry-testing.md => sparse-registry-testing.md} (100%) rename posts/{2019-12-03-survey-launch.md => survey-launch@0.md} (100%) rename posts/{2020-09-10-survey-launch.md => survey-launch@1.md} (100%) rename posts/{2021-12-08-survey-launch.md => survey-launch@2.md} (100%) rename posts/{2022-12-05-survey-launch.md => survey-launch@3.md} (100%) rename posts/{2023-12-18-survey-launch.md => survey-launch@4.md} (100%) rename posts/{2016-05-09-survey.md => survey@0.md} (100%) rename posts/{2017-05-03-survey.md => survey@1.md} (100%) rename posts/{2018-08-08-survey.md => survey@2.md} (100%) rename posts/{2020-12-07-the-foundation-conversation.md => the-foundation-conversation.md} (100%) rename posts/{2024-11-06-trademark-update.md => trademark-update.md} (100%) rename posts/{2015-05-11-traits.md => traits.md} (100%) rename posts/{2023-01-20-types-announcement.md => types-announcement.md} (100%) rename posts/{2024-06-26-types-team-update.md => types-team-update.md} (100%) rename posts/{2019-09-18-upcoming-docsrs-changes.md => upcoming-docsrs-changes.md} (100%) rename posts/{2024-04-09-updates-to-rusts-wasi-targets.md => updates-to-rusts-wasi-targets.md} (100%) rename posts/{2024-11-26-wasip2-tier-2.md => wasip2-tier-2.md} (100%) rename posts/{2024-09-24-webassembly-targets-change-in-default-target-features.md => webassembly-targets-change-in-default-target-features.md} (100%) rename posts/{2020-09-14-wg-prio-call-for-contributors.md => wg-prio-call-for-contributors.md} (100%) rename posts/{2018-07-27-what-is-rust-2018.md => what-is-rust-2018.md} (100%) diff --git a/posts/2014-12-12-1.0-Timeline.md b/posts/1.0-Timeline.md similarity index 100% rename from posts/2014-12-12-1.0-Timeline.md rename to posts/1.0-Timeline.md diff --git a/posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md b/posts/2023-Rust-Annual-Survey-2023-results.md similarity index 100% rename from posts/2024-02-19-2023-Rust-Annual-Survey-2023-results.md rename to posts/2023-Rust-Annual-Survey-2023-results.md diff --git a/posts/2023-12-15-2024-Edition-CFP.md b/posts/2024-Edition-CFP.md similarity index 100% rename from posts/2023-12-15-2024-Edition-CFP.md rename to posts/2024-Edition-CFP.md diff --git a/posts/2025-02-13-2024-State-Of-Rust-Survey-results.md b/posts/2024-State-Of-Rust-Survey-results.md similarity index 100% rename from posts/2025-02-13-2024-State-Of-Rust-Survey-results.md rename to posts/2024-State-Of-Rust-Survey-results.md diff --git a/posts/2019-05-15-4-Years-Of-Rust.md b/posts/4-Years-Of-Rust.md similarity index 100% rename from posts/2019-05-15-4-Years-Of-Rust.md rename to posts/4-Years-Of-Rust.md diff --git a/posts/2019-10-29-A-call-for-blogs-2020.md b/posts/A-call-for-blogs-2020.md similarity index 100% rename from posts/2019-10-29-A-call-for-blogs-2020.md rename to posts/A-call-for-blogs-2020.md diff --git a/posts/2019-09-30-Async-await-hits-beta.md b/posts/Async-await-hits-beta.md similarity index 100% rename from posts/2019-09-30-Async-await-hits-beta.md rename to posts/Async-await-hits-beta.md diff --git a/posts/2019-11-07-Async-await-stable.md b/posts/Async-await-stable.md similarity index 100% rename from posts/2019-11-07-Async-await-stable.md rename to posts/Async-await-stable.md diff --git a/posts/2014-11-20-Cargo.md b/posts/Cargo.md similarity index 100% rename from posts/2014-11-20-Cargo.md rename to posts/Cargo.md diff --git a/posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md b/posts/Clippy-deprecating-feature-cargo-clippy.md similarity index 100% rename from posts/2024-02-28-Clippy-deprecating-feature-cargo-clippy.md rename to posts/Clippy-deprecating-feature-cargo-clippy.md diff --git a/posts/2014-12-12-Core-Team.md b/posts/Core-Team.md similarity index 100% rename from posts/2014-12-12-Core-Team.md rename to posts/Core-Team.md diff --git a/posts/2019-02-22-Core-team-changes.md b/posts/Core-team-changes.md similarity index 100% rename from posts/2019-02-22-Core-team-changes.md rename to posts/Core-team-changes.md diff --git a/posts/2021-09-27-Core-team-membership-updates.md b/posts/Core-team-membership-updates.md similarity index 100% rename from posts/2021-09-27-Core-team-membership-updates.md rename to posts/Core-team-membership-updates.md diff --git a/posts/2015-04-17-Enums-match-mutation-and-moves.md b/posts/Enums-match-mutation-and-moves.md similarity index 100% rename from posts/2015-04-17-Enums-match-mutation-and-moves.md rename to posts/Enums-match-mutation-and-moves.md diff --git a/posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md b/posts/Fearless-Concurrency-In-Firefox-Quantum.md similarity index 100% rename from posts/2017-11-14-Fearless-Concurrency-In-Firefox-Quantum.md rename to posts/Fearless-Concurrency-In-Firefox-Quantum.md diff --git a/posts/2015-04-10-Fearless-Concurrency.md b/posts/Fearless-Concurrency.md similarity index 100% rename from posts/2015-04-10-Fearless-Concurrency.md rename to posts/Fearless-Concurrency.md diff --git a/posts/2015-02-13-Final-1.0-timeline.md b/posts/Final-1.0-timeline.md similarity index 100% rename from posts/2015-02-13-Final-1.0-timeline.md rename to posts/Final-1.0-timeline.md diff --git a/posts/2021-08-03-GATs-stabilization-push.md b/posts/GATs-stabilization-push.md similarity index 100% rename from posts/2021-08-03-GATs-stabilization-push.md rename to posts/GATs-stabilization-push.md diff --git a/posts/2023-09-25-Increasing-Apple-Version-Requirements.md b/posts/Increasing-Apple-Version-Requirements.md similarity index 100% rename from posts/2023-09-25-Increasing-Apple-Version-Requirements.md rename to posts/Increasing-Apple-Version-Requirements.md diff --git a/posts/2018-04-02-Increasing-Rusts-Reach-2018.md b/posts/Increasing-Rusts-Reach-2018.md similarity index 100% rename from posts/2018-04-02-Increasing-Rusts-Reach-2018.md rename to posts/Increasing-Rusts-Reach-2018.md diff --git a/posts/2017-06-27-Increasing-Rusts-Reach.md b/posts/Increasing-Rusts-Reach.md similarity index 100% rename from posts/2017-06-27-Increasing-Rusts-Reach.md rename to posts/Increasing-Rusts-Reach.md diff --git a/posts/2022-08-01-Increasing-glibc-kernel-requirements.md b/posts/Increasing-glibc-kernel-requirements.md similarity index 100% rename from posts/2022-08-01-Increasing-glibc-kernel-requirements.md rename to posts/Increasing-glibc-kernel-requirements.md diff --git a/posts/2016-04-19-MIR.md b/posts/MIR.md similarity index 100% rename from posts/2016-04-19-MIR.md rename to posts/MIR.md diff --git a/posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md b/posts/Mozilla-IRC-Sunset-and-the-Rust-Channel.md similarity index 100% rename from posts/2019-04-26-Mozilla-IRC-Sunset-and-the-Rust-Channel.md rename to posts/Mozilla-IRC-Sunset-and-the-Rust-Channel.md diff --git a/posts/2020-12-14-Next-steps-for-the-foundation-conversation.md b/posts/Next-steps-for-the-foundation-conversation.md similarity index 100% rename from posts/2020-12-14-Next-steps-for-the-foundation-conversation.md rename to posts/Next-steps-for-the-foundation-conversation.md diff --git a/posts/2015-08-14-Next-year.md b/posts/Next-year.md similarity index 100% rename from posts/2015-08-14-Next-year.md rename to posts/Next-year.md diff --git a/posts/2024-05-07-OSPP-2024.md b/posts/OSPP-2024.md similarity index 100% rename from posts/2024-05-07-OSPP-2024.md rename to posts/OSPP-2024.md diff --git a/posts/2020-09-03-Planning-2021-Roadmap.md b/posts/Planning-2021-Roadmap.md similarity index 100% rename from posts/2020-09-03-Planning-2021-Roadmap.md rename to posts/Planning-2021-Roadmap.md diff --git a/posts/2018-12-21-Procedural-Macros-in-Rust-2018.md b/posts/Procedural-Macros-in-Rust-2018.md similarity index 100% rename from posts/2018-12-21-Procedural-Macros-in-Rust-2018.md rename to posts/Procedural-Macros-in-Rust-2018.md diff --git a/posts/2025-01-23-Project-Goals-Dec-Update.md b/posts/Project-Goals-Dec-Update.md similarity index 100% rename from posts/2025-01-23-Project-Goals-Dec-Update.md rename to posts/Project-Goals-Dec-Update.md diff --git a/posts/2025-03-03-Project-Goals-Feb-Update.md b/posts/Project-Goals-Feb-Update.md similarity index 100% rename from posts/2025-03-03-Project-Goals-Feb-Update.md rename to posts/Project-Goals-Feb-Update.md diff --git a/posts/2024-09-23-Project-Goals-Sep-Update.md b/posts/Project-Goals-Sep-Update.md similarity index 100% rename from posts/2024-09-23-Project-Goals-Sep-Update.md rename to posts/Project-Goals-Sep-Update.md diff --git a/posts/2024-08-12-Project-goals.md b/posts/Project-goals.md similarity index 100% rename from posts/2024-08-12-Project-goals.md rename to posts/Project-goals.md diff --git a/posts/2022-07-01-RLS-deprecation.md b/posts/RLS-deprecation.md similarity index 100% rename from posts/2022-07-01-RLS-deprecation.md rename to posts/RLS-deprecation.md diff --git a/posts/2015-01-09-Rust-1.0-alpha.md b/posts/Rust-1.0-alpha.md similarity index 100% rename from posts/2015-01-09-Rust-1.0-alpha.md rename to posts/Rust-1.0-alpha.md diff --git a/posts/2015-02-20-Rust-1.0-alpha2.md b/posts/Rust-1.0-alpha2.md similarity index 100% rename from posts/2015-02-20-Rust-1.0-alpha2.md rename to posts/Rust-1.0-alpha2.md diff --git a/posts/2015-04-03-Rust-1.0-beta.md b/posts/Rust-1.0-beta.md similarity index 100% rename from posts/2015-04-03-Rust-1.0-beta.md rename to posts/Rust-1.0-beta.md diff --git a/posts/2014-09-15-Rust-1.0.md b/posts/Rust-1.0@0.md similarity index 100% rename from posts/2014-09-15-Rust-1.0.md rename to posts/Rust-1.0@0.md diff --git a/posts/2015-05-15-Rust-1.0.md b/posts/Rust-1.0@1.md similarity index 100% rename from posts/2015-05-15-Rust-1.0.md rename to posts/Rust-1.0@1.md diff --git a/posts/2015-06-25-Rust-1.1.md b/posts/Rust-1.1.md similarity index 100% rename from posts/2015-06-25-Rust-1.1.md rename to posts/Rust-1.1.md diff --git a/posts/2016-07-07-Rust-1.10.md b/posts/Rust-1.10.md similarity index 100% rename from posts/2016-07-07-Rust-1.10.md rename to posts/Rust-1.10.md diff --git a/posts/2016-08-18-Rust-1.11.md b/posts/Rust-1.11.md similarity index 100% rename from posts/2016-08-18-Rust-1.11.md rename to posts/Rust-1.11.md diff --git a/posts/2016-10-20-Rust-1.12.1.md b/posts/Rust-1.12.1.md similarity index 100% rename from posts/2016-10-20-Rust-1.12.1.md rename to posts/Rust-1.12.1.md diff --git a/posts/2016-09-29-Rust-1.12.md b/posts/Rust-1.12.md similarity index 100% rename from posts/2016-09-29-Rust-1.12.md rename to posts/Rust-1.12.md diff --git a/posts/2016-11-10-Rust-1.13.md b/posts/Rust-1.13.md similarity index 100% rename from posts/2016-11-10-Rust-1.13.md rename to posts/Rust-1.13.md diff --git a/posts/2016-12-22-Rust-1.14.md b/posts/Rust-1.14.md similarity index 100% rename from posts/2016-12-22-Rust-1.14.md rename to posts/Rust-1.14.md diff --git a/posts/2017-02-09-Rust-1.15.1.md b/posts/Rust-1.15.1.md similarity index 100% rename from posts/2017-02-09-Rust-1.15.1.md rename to posts/Rust-1.15.1.md diff --git a/posts/2017-02-02-Rust-1.15.md b/posts/Rust-1.15.md similarity index 100% rename from posts/2017-02-02-Rust-1.15.md rename to posts/Rust-1.15.md diff --git a/posts/2017-03-16-Rust-1.16.md b/posts/Rust-1.16.md similarity index 100% rename from posts/2017-03-16-Rust-1.16.md rename to posts/Rust-1.16.md diff --git a/posts/2017-04-27-Rust-1.17.md b/posts/Rust-1.17.md similarity index 100% rename from posts/2017-04-27-Rust-1.17.md rename to posts/Rust-1.17.md diff --git a/posts/2017-06-08-Rust-1.18.md b/posts/Rust-1.18.md similarity index 100% rename from posts/2017-06-08-Rust-1.18.md rename to posts/Rust-1.18.md diff --git a/posts/2017-07-20-Rust-1.19.md b/posts/Rust-1.19.md similarity index 100% rename from posts/2017-07-20-Rust-1.19.md rename to posts/Rust-1.19.md diff --git a/posts/2015-08-06-Rust-1.2.md b/posts/Rust-1.2.md similarity index 100% rename from posts/2015-08-06-Rust-1.2.md rename to posts/Rust-1.2.md diff --git a/posts/2017-08-31-Rust-1.20.md b/posts/Rust-1.20.md similarity index 100% rename from posts/2017-08-31-Rust-1.20.md rename to posts/Rust-1.20.md diff --git a/posts/2017-10-12-Rust-1.21.md b/posts/Rust-1.21.md similarity index 100% rename from posts/2017-10-12-Rust-1.21.md rename to posts/Rust-1.21.md diff --git a/posts/2017-11-22-Rust-1.22.md b/posts/Rust-1.22.md similarity index 100% rename from posts/2017-11-22-Rust-1.22.md rename to posts/Rust-1.22.md diff --git a/posts/2018-01-04-Rust-1.23.md b/posts/Rust-1.23.md similarity index 100% rename from posts/2018-01-04-Rust-1.23.md rename to posts/Rust-1.23.md diff --git a/posts/2018-03-01-Rust-1.24.1.md b/posts/Rust-1.24.1.md similarity index 100% rename from posts/2018-03-01-Rust-1.24.1.md rename to posts/Rust-1.24.1.md diff --git a/posts/2018-02-15-Rust-1.24.md b/posts/Rust-1.24.md similarity index 100% rename from posts/2018-02-15-Rust-1.24.md rename to posts/Rust-1.24.md diff --git a/posts/2018-03-29-Rust-1.25.md b/posts/Rust-1.25.md similarity index 100% rename from posts/2018-03-29-Rust-1.25.md rename to posts/Rust-1.25.md diff --git a/posts/2018-05-29-Rust-1.26.1.md b/posts/Rust-1.26.1.md similarity index 100% rename from posts/2018-05-29-Rust-1.26.1.md rename to posts/Rust-1.26.1.md diff --git a/posts/2018-06-05-Rust-1.26.2.md b/posts/Rust-1.26.2.md similarity index 100% rename from posts/2018-06-05-Rust-1.26.2.md rename to posts/Rust-1.26.2.md diff --git a/posts/2018-05-10-Rust-1.26.md b/posts/Rust-1.26.md similarity index 100% rename from posts/2018-05-10-Rust-1.26.md rename to posts/Rust-1.26.md diff --git a/posts/2018-07-10-Rust-1.27.1.md b/posts/Rust-1.27.1.md similarity index 100% rename from posts/2018-07-10-Rust-1.27.1.md rename to posts/Rust-1.27.1.md diff --git a/posts/2018-07-20-Rust-1.27.2.md b/posts/Rust-1.27.2.md similarity index 100% rename from posts/2018-07-20-Rust-1.27.2.md rename to posts/Rust-1.27.2.md diff --git a/posts/2018-06-21-Rust-1.27.md b/posts/Rust-1.27.md similarity index 100% rename from posts/2018-06-21-Rust-1.27.md rename to posts/Rust-1.27.md diff --git a/posts/2018-08-02-Rust-1.28.md b/posts/Rust-1.28.md similarity index 100% rename from posts/2018-08-02-Rust-1.28.md rename to posts/Rust-1.28.md diff --git a/posts/2018-09-25-Rust-1.29.1.md b/posts/Rust-1.29.1.md similarity index 100% rename from posts/2018-09-25-Rust-1.29.1.md rename to posts/Rust-1.29.1.md diff --git a/posts/2018-10-12-Rust-1.29.2.md b/posts/Rust-1.29.2.md similarity index 100% rename from posts/2018-10-12-Rust-1.29.2.md rename to posts/Rust-1.29.2.md diff --git a/posts/2018-09-13-Rust-1.29.md b/posts/Rust-1.29.md similarity index 100% rename from posts/2018-09-13-Rust-1.29.md rename to posts/Rust-1.29.md diff --git a/posts/2015-09-17-Rust-1.3.md b/posts/Rust-1.3.md similarity index 100% rename from posts/2015-09-17-Rust-1.3.md rename to posts/Rust-1.3.md diff --git a/posts/2018-10-25-Rust-1.30.0.md b/posts/Rust-1.30.0.md similarity index 100% rename from posts/2018-10-25-Rust-1.30.0.md rename to posts/Rust-1.30.0.md diff --git a/posts/2018-11-08-Rust-1.30.1.md b/posts/Rust-1.30.1.md similarity index 100% rename from posts/2018-11-08-Rust-1.30.1.md rename to posts/Rust-1.30.1.md diff --git a/posts/2018-12-06-Rust-1.31-and-rust-2018.md b/posts/Rust-1.31-and-rust-2018.md similarity index 100% rename from posts/2018-12-06-Rust-1.31-and-rust-2018.md rename to posts/Rust-1.31-and-rust-2018.md diff --git a/posts/2018-12-20-Rust-1.31.1.md b/posts/Rust-1.31.1.md similarity index 100% rename from posts/2018-12-20-Rust-1.31.1.md rename to posts/Rust-1.31.1.md diff --git a/posts/2019-01-17-Rust-1.32.0.md b/posts/Rust-1.32.0.md similarity index 100% rename from posts/2019-01-17-Rust-1.32.0.md rename to posts/Rust-1.32.0.md diff --git a/posts/2019-02-28-Rust-1.33.0.md b/posts/Rust-1.33.0.md similarity index 100% rename from posts/2019-02-28-Rust-1.33.0.md rename to posts/Rust-1.33.0.md diff --git a/posts/2019-04-11-Rust-1.34.0.md b/posts/Rust-1.34.0.md similarity index 100% rename from posts/2019-04-11-Rust-1.34.0.md rename to posts/Rust-1.34.0.md diff --git a/posts/2019-04-25-Rust-1.34.1.md b/posts/Rust-1.34.1.md similarity index 100% rename from posts/2019-04-25-Rust-1.34.1.md rename to posts/Rust-1.34.1.md diff --git a/posts/2019-05-14-Rust-1.34.2.md b/posts/Rust-1.34.2.md similarity index 100% rename from posts/2019-05-14-Rust-1.34.2.md rename to posts/Rust-1.34.2.md diff --git a/posts/2019-05-23-Rust-1.35.0.md b/posts/Rust-1.35.0.md similarity index 100% rename from posts/2019-05-23-Rust-1.35.0.md rename to posts/Rust-1.35.0.md diff --git a/posts/2019-07-04-Rust-1.36.0.md b/posts/Rust-1.36.0.md similarity index 100% rename from posts/2019-07-04-Rust-1.36.0.md rename to posts/Rust-1.36.0.md diff --git a/posts/2019-08-15-Rust-1.37.0.md b/posts/Rust-1.37.0.md similarity index 100% rename from posts/2019-08-15-Rust-1.37.0.md rename to posts/Rust-1.37.0.md diff --git a/posts/2019-09-26-Rust-1.38.0.md b/posts/Rust-1.38.0.md similarity index 100% rename from posts/2019-09-26-Rust-1.38.0.md rename to posts/Rust-1.38.0.md diff --git a/posts/2019-11-07-Rust-1.39.0.md b/posts/Rust-1.39.0.md similarity index 100% rename from posts/2019-11-07-Rust-1.39.0.md rename to posts/Rust-1.39.0.md diff --git a/posts/2015-10-29-Rust-1.4.md b/posts/Rust-1.4.md similarity index 100% rename from posts/2015-10-29-Rust-1.4.md rename to posts/Rust-1.4.md diff --git a/posts/2019-12-19-Rust-1.40.0.md b/posts/Rust-1.40.0.md similarity index 100% rename from posts/2019-12-19-Rust-1.40.0.md rename to posts/Rust-1.40.0.md diff --git a/posts/2020-01-30-Rust-1.41.0.md b/posts/Rust-1.41.0.md similarity index 100% rename from posts/2020-01-30-Rust-1.41.0.md rename to posts/Rust-1.41.0.md diff --git a/posts/2020-02-27-Rust-1.41.1.md b/posts/Rust-1.41.1.md similarity index 100% rename from posts/2020-02-27-Rust-1.41.1.md rename to posts/Rust-1.41.1.md diff --git a/posts/2020-03-12-Rust-1.42.md b/posts/Rust-1.42.md similarity index 100% rename from posts/2020-03-12-Rust-1.42.md rename to posts/Rust-1.42.md diff --git a/posts/2020-04-23-Rust-1.43.0.md b/posts/Rust-1.43.0.md similarity index 100% rename from posts/2020-04-23-Rust-1.43.0.md rename to posts/Rust-1.43.0.md diff --git a/posts/2020-06-04-Rust-1.44.0.md b/posts/Rust-1.44.0.md similarity index 100% rename from posts/2020-06-04-Rust-1.44.0.md rename to posts/Rust-1.44.0.md diff --git a/posts/2020-07-16-Rust-1.45.0.md b/posts/Rust-1.45.0.md similarity index 100% rename from posts/2020-07-16-Rust-1.45.0.md rename to posts/Rust-1.45.0.md diff --git a/posts/2020-07-30-Rust-1.45.1.md b/posts/Rust-1.45.1.md similarity index 100% rename from posts/2020-07-30-Rust-1.45.1.md rename to posts/Rust-1.45.1.md diff --git a/posts/2020-08-03-Rust-1.45.2.md b/posts/Rust-1.45.2.md similarity index 100% rename from posts/2020-08-03-Rust-1.45.2.md rename to posts/Rust-1.45.2.md diff --git a/posts/2020-08-27-Rust-1.46.0.md b/posts/Rust-1.46.0.md similarity index 100% rename from posts/2020-08-27-Rust-1.46.0.md rename to posts/Rust-1.46.0.md diff --git a/posts/2020-10-08-Rust-1.47.md b/posts/Rust-1.47.md similarity index 100% rename from posts/2020-10-08-Rust-1.47.md rename to posts/Rust-1.47.md diff --git a/posts/2020-11-19-Rust-1.48.md b/posts/Rust-1.48.md similarity index 100% rename from posts/2020-11-19-Rust-1.48.md rename to posts/Rust-1.48.md diff --git a/posts/2020-12-31-Rust-1.49.0.md b/posts/Rust-1.49.0.md similarity index 100% rename from posts/2020-12-31-Rust-1.49.0.md rename to posts/Rust-1.49.0.md diff --git a/posts/2015-12-10-Rust-1.5.md b/posts/Rust-1.5.md similarity index 100% rename from posts/2015-12-10-Rust-1.5.md rename to posts/Rust-1.5.md diff --git a/posts/2021-02-11-Rust-1.50.0.md b/posts/Rust-1.50.0.md similarity index 100% rename from posts/2021-02-11-Rust-1.50.0.md rename to posts/Rust-1.50.0.md diff --git a/posts/2021-03-25-Rust-1.51.0.md b/posts/Rust-1.51.0.md similarity index 100% rename from posts/2021-03-25-Rust-1.51.0.md rename to posts/Rust-1.51.0.md diff --git a/posts/2021-05-06-Rust-1.52.0.md b/posts/Rust-1.52.0.md similarity index 100% rename from posts/2021-05-06-Rust-1.52.0.md rename to posts/Rust-1.52.0.md diff --git a/posts/2021-05-10-Rust-1.52.1.md b/posts/Rust-1.52.1.md similarity index 100% rename from posts/2021-05-10-Rust-1.52.1.md rename to posts/Rust-1.52.1.md diff --git a/posts/2021-06-17-Rust-1.53.0.md b/posts/Rust-1.53.0.md similarity index 100% rename from posts/2021-06-17-Rust-1.53.0.md rename to posts/Rust-1.53.0.md diff --git a/posts/2021-07-29-Rust-1.54.0.md b/posts/Rust-1.54.0.md similarity index 100% rename from posts/2021-07-29-Rust-1.54.0.md rename to posts/Rust-1.54.0.md diff --git a/posts/2021-09-09-Rust-1.55.0.md b/posts/Rust-1.55.0.md similarity index 100% rename from posts/2021-09-09-Rust-1.55.0.md rename to posts/Rust-1.55.0.md diff --git a/posts/2021-10-21-Rust-1.56.0.md b/posts/Rust-1.56.0.md similarity index 100% rename from posts/2021-10-21-Rust-1.56.0.md rename to posts/Rust-1.56.0.md diff --git a/posts/2021-11-01-Rust-1.56.1.md b/posts/Rust-1.56.1.md similarity index 100% rename from posts/2021-11-01-Rust-1.56.1.md rename to posts/Rust-1.56.1.md diff --git a/posts/2021-12-02-Rust-1.57.0.md b/posts/Rust-1.57.0.md similarity index 100% rename from posts/2021-12-02-Rust-1.57.0.md rename to posts/Rust-1.57.0.md diff --git a/posts/2022-01-13-Rust-1.58.0.md b/posts/Rust-1.58.0.md similarity index 100% rename from posts/2022-01-13-Rust-1.58.0.md rename to posts/Rust-1.58.0.md diff --git a/posts/2022-01-20-Rust-1.58.1.md b/posts/Rust-1.58.1.md similarity index 100% rename from posts/2022-01-20-Rust-1.58.1.md rename to posts/Rust-1.58.1.md diff --git a/posts/2022-02-24-Rust-1.59.0.md b/posts/Rust-1.59.0.md similarity index 100% rename from posts/2022-02-24-Rust-1.59.0.md rename to posts/Rust-1.59.0.md diff --git a/posts/2016-01-21-Rust-1.6.md b/posts/Rust-1.6.md similarity index 100% rename from posts/2016-01-21-Rust-1.6.md rename to posts/Rust-1.6.md diff --git a/posts/2022-04-07-Rust-1.60.0.md b/posts/Rust-1.60.0.md similarity index 100% rename from posts/2022-04-07-Rust-1.60.0.md rename to posts/Rust-1.60.0.md diff --git a/posts/2022-05-19-Rust-1.61.0.md b/posts/Rust-1.61.0.md similarity index 100% rename from posts/2022-05-19-Rust-1.61.0.md rename to posts/Rust-1.61.0.md diff --git a/posts/2022-06-30-Rust-1.62.0.md b/posts/Rust-1.62.0.md similarity index 100% rename from posts/2022-06-30-Rust-1.62.0.md rename to posts/Rust-1.62.0.md diff --git a/posts/2022-07-19-Rust-1.62.1.md b/posts/Rust-1.62.1.md similarity index 100% rename from posts/2022-07-19-Rust-1.62.1.md rename to posts/Rust-1.62.1.md diff --git a/posts/2022-08-11-Rust-1.63.0.md b/posts/Rust-1.63.0.md similarity index 100% rename from posts/2022-08-11-Rust-1.63.0.md rename to posts/Rust-1.63.0.md diff --git a/posts/2022-09-22-Rust-1.64.0.md b/posts/Rust-1.64.0.md similarity index 100% rename from posts/2022-09-22-Rust-1.64.0.md rename to posts/Rust-1.64.0.md diff --git a/posts/2022-11-03-Rust-1.65.0.md b/posts/Rust-1.65.0.md similarity index 100% rename from posts/2022-11-03-Rust-1.65.0.md rename to posts/Rust-1.65.0.md diff --git a/posts/2022-12-15-Rust-1.66.0.md b/posts/Rust-1.66.0.md similarity index 100% rename from posts/2022-12-15-Rust-1.66.0.md rename to posts/Rust-1.66.0.md diff --git a/posts/2023-01-10-Rust-1.66.1.md b/posts/Rust-1.66.1.md similarity index 100% rename from posts/2023-01-10-Rust-1.66.1.md rename to posts/Rust-1.66.1.md diff --git a/posts/2023-01-26-Rust-1.67.0.md b/posts/Rust-1.67.0.md similarity index 100% rename from posts/2023-01-26-Rust-1.67.0.md rename to posts/Rust-1.67.0.md diff --git a/posts/2023-02-09-Rust-1.67.1.md b/posts/Rust-1.67.1.md similarity index 100% rename from posts/2023-02-09-Rust-1.67.1.md rename to posts/Rust-1.67.1.md diff --git a/posts/2023-03-09-Rust-1.68.0.md b/posts/Rust-1.68.0.md similarity index 100% rename from posts/2023-03-09-Rust-1.68.0.md rename to posts/Rust-1.68.0.md diff --git a/posts/2023-03-23-Rust-1.68.1.md b/posts/Rust-1.68.1.md similarity index 100% rename from posts/2023-03-23-Rust-1.68.1.md rename to posts/Rust-1.68.1.md diff --git a/posts/2023-03-28-Rust-1.68.2.md b/posts/Rust-1.68.2.md similarity index 100% rename from posts/2023-03-28-Rust-1.68.2.md rename to posts/Rust-1.68.2.md diff --git a/posts/2023-04-20-Rust-1.69.0.md b/posts/Rust-1.69.0.md similarity index 100% rename from posts/2023-04-20-Rust-1.69.0.md rename to posts/Rust-1.69.0.md diff --git a/posts/2016-03-02-Rust-1.7.md b/posts/Rust-1.7.md similarity index 100% rename from posts/2016-03-02-Rust-1.7.md rename to posts/Rust-1.7.md diff --git a/posts/2023-06-01-Rust-1.70.0.md b/posts/Rust-1.70.0.md similarity index 100% rename from posts/2023-06-01-Rust-1.70.0.md rename to posts/Rust-1.70.0.md diff --git a/posts/2023-07-13-Rust-1.71.0.md b/posts/Rust-1.71.0.md similarity index 100% rename from posts/2023-07-13-Rust-1.71.0.md rename to posts/Rust-1.71.0.md diff --git a/posts/2023-08-03-Rust-1.71.1.md b/posts/Rust-1.71.1.md similarity index 100% rename from posts/2023-08-03-Rust-1.71.1.md rename to posts/Rust-1.71.1.md diff --git a/posts/2023-08-24-Rust-1.72.0.md b/posts/Rust-1.72.0.md similarity index 100% rename from posts/2023-08-24-Rust-1.72.0.md rename to posts/Rust-1.72.0.md diff --git a/posts/2023-09-19-Rust-1.72.1.md b/posts/Rust-1.72.1.md similarity index 100% rename from posts/2023-09-19-Rust-1.72.1.md rename to posts/Rust-1.72.1.md diff --git a/posts/2023-10-05-Rust-1.73.0.md b/posts/Rust-1.73.0.md similarity index 100% rename from posts/2023-10-05-Rust-1.73.0.md rename to posts/Rust-1.73.0.md diff --git a/posts/2023-11-16-Rust-1.74.0.md b/posts/Rust-1.74.0.md similarity index 100% rename from posts/2023-11-16-Rust-1.74.0.md rename to posts/Rust-1.74.0.md diff --git a/posts/2023-12-07-Rust-1.74.1.md b/posts/Rust-1.74.1.md similarity index 100% rename from posts/2023-12-07-Rust-1.74.1.md rename to posts/Rust-1.74.1.md diff --git a/posts/2023-12-28-Rust-1.75.0.md b/posts/Rust-1.75.0.md similarity index 100% rename from posts/2023-12-28-Rust-1.75.0.md rename to posts/Rust-1.75.0.md diff --git a/posts/2024-02-08-Rust-1.76.0.md b/posts/Rust-1.76.0.md similarity index 100% rename from posts/2024-02-08-Rust-1.76.0.md rename to posts/Rust-1.76.0.md diff --git a/posts/2024-03-21-Rust-1.77.0.md b/posts/Rust-1.77.0.md similarity index 100% rename from posts/2024-03-21-Rust-1.77.0.md rename to posts/Rust-1.77.0.md diff --git a/posts/2024-03-28-Rust-1.77.1.md b/posts/Rust-1.77.1.md similarity index 100% rename from posts/2024-03-28-Rust-1.77.1.md rename to posts/Rust-1.77.1.md diff --git a/posts/2024-04-09-Rust-1.77.2.md b/posts/Rust-1.77.2.md similarity index 100% rename from posts/2024-04-09-Rust-1.77.2.md rename to posts/Rust-1.77.2.md diff --git a/posts/2024-05-02-Rust-1.78.0.md b/posts/Rust-1.78.0.md similarity index 100% rename from posts/2024-05-02-Rust-1.78.0.md rename to posts/Rust-1.78.0.md diff --git a/posts/2024-06-13-Rust-1.79.0.md b/posts/Rust-1.79.0.md similarity index 100% rename from posts/2024-06-13-Rust-1.79.0.md rename to posts/Rust-1.79.0.md diff --git a/posts/2016-04-14-Rust-1.8.md b/posts/Rust-1.8.md similarity index 100% rename from posts/2016-04-14-Rust-1.8.md rename to posts/Rust-1.8.md diff --git a/posts/2024-07-25-Rust-1.80.0.md b/posts/Rust-1.80.0.md similarity index 100% rename from posts/2024-07-25-Rust-1.80.0.md rename to posts/Rust-1.80.0.md diff --git a/posts/2024-08-08-Rust-1.80.1.md b/posts/Rust-1.80.1.md similarity index 100% rename from posts/2024-08-08-Rust-1.80.1.md rename to posts/Rust-1.80.1.md diff --git a/posts/2024-09-05-Rust-1.81.0.md b/posts/Rust-1.81.0.md similarity index 100% rename from posts/2024-09-05-Rust-1.81.0.md rename to posts/Rust-1.81.0.md diff --git a/posts/2024-10-17-Rust-1.82.0.md b/posts/Rust-1.82.0.md similarity index 100% rename from posts/2024-10-17-Rust-1.82.0.md rename to posts/Rust-1.82.0.md diff --git a/posts/2024-11-28-Rust-1.83.0.md b/posts/Rust-1.83.0.md similarity index 100% rename from posts/2024-11-28-Rust-1.83.0.md rename to posts/Rust-1.83.0.md diff --git a/posts/2025-01-09-Rust-1.84.0.md b/posts/Rust-1.84.0.md similarity index 100% rename from posts/2025-01-09-Rust-1.84.0.md rename to posts/Rust-1.84.0.md diff --git a/posts/2025-01-30-Rust-1.84.1.md b/posts/Rust-1.84.1.md similarity index 100% rename from posts/2025-01-30-Rust-1.84.1.md rename to posts/Rust-1.84.1.md diff --git a/posts/2025-02-20-Rust-1.85.0.md b/posts/Rust-1.85.0.md similarity index 100% rename from posts/2025-02-20-Rust-1.85.0.md rename to posts/Rust-1.85.0.md diff --git a/posts/2016-05-26-Rust-1.9.md b/posts/Rust-1.9.md similarity index 100% rename from posts/2016-05-26-Rust-1.9.md rename to posts/Rust-1.9.md diff --git a/posts/2017-09-05-Rust-2017-Survey-Results.md b/posts/Rust-2017-Survey-Results.md similarity index 100% rename from posts/2017-09-05-Rust-2017-Survey-Results.md rename to posts/Rust-2017-Survey-Results.md diff --git a/posts/2018-12-17-Rust-2018-dev-tools.md b/posts/Rust-2018-dev-tools.md similarity index 100% rename from posts/2018-12-17-Rust-2018-dev-tools.md rename to posts/Rust-2018-dev-tools.md diff --git a/posts/2021-07-21-Rust-2021-public-testing.md b/posts/Rust-2021-public-testing.md similarity index 100% rename from posts/2021-07-21-Rust-2021-public-testing.md rename to posts/Rust-2021-public-testing.md diff --git a/posts/2024-11-27-Rust-2024-public-testing.md b/posts/Rust-2024-public-testing.md similarity index 100% rename from posts/2024-11-27-Rust-2024-public-testing.md rename to posts/Rust-2024-public-testing.md diff --git a/posts/2015-04-24-Rust-Once-Run-Everywhere.md b/posts/Rust-Once-Run-Everywhere.md similarity index 100% rename from posts/2015-04-24-Rust-Once-Run-Everywhere.md rename to posts/Rust-Once-Run-Everywhere.md diff --git a/posts/2017-07-05-Rust-Roadmap-Update.md b/posts/Rust-Roadmap-Update.md similarity index 100% rename from posts/2017-07-05-Rust-Roadmap-Update.md rename to posts/Rust-Roadmap-Update.md diff --git a/posts/2022-02-15-Rust-Survey-2021.md b/posts/Rust-Survey-2021.md similarity index 100% rename from posts/2022-02-15-Rust-Survey-2021.md rename to posts/Rust-Survey-2021.md diff --git a/posts/2023-08-07-Rust-Survey-2023-Results.md b/posts/Rust-Survey-2023-Results.md similarity index 100% rename from posts/2023-08-07-Rust-Survey-2023-Results.md rename to posts/Rust-Survey-2023-Results.md diff --git a/posts/2024-02-21-Rust-participates-in-GSoC-2024.md b/posts/Rust-participates-in-GSoC-2024.md similarity index 100% rename from posts/2024-02-21-Rust-participates-in-GSoC-2024.md rename to posts/Rust-participates-in-GSoC-2024.md diff --git a/posts/2025-03-03-Rust-participates-in-GSoC-2025.md b/posts/Rust-participates-in-GSoC-2025.md similarity index 100% rename from posts/2025-03-03-Rust-participates-in-GSoC-2025.md rename to posts/Rust-participates-in-GSoC-2025.md diff --git a/posts/2018-11-27-Rust-survey-2018.md b/posts/Rust-survey-2018.md similarity index 100% rename from posts/2018-11-27-Rust-survey-2018.md rename to posts/Rust-survey-2018.md diff --git a/posts/2020-04-17-Rust-survey-2019.md b/posts/Rust-survey-2019.md similarity index 100% rename from posts/2020-04-17-Rust-survey-2019.md rename to posts/Rust-survey-2019.md diff --git a/posts/2018-05-15-Rust-turns-three.md b/posts/Rust-turns-three.md similarity index 100% rename from posts/2018-05-15-Rust-turns-three.md rename to posts/Rust-turns-three.md diff --git a/posts/2020-05-07-Rust.1.43.1.md b/posts/Rust.1.43.1.md similarity index 100% rename from posts/2020-05-07-Rust.1.43.1.md rename to posts/Rust.1.43.1.md diff --git a/posts/2020-06-18-Rust.1.44.1.md b/posts/Rust.1.44.1.md similarity index 100% rename from posts/2020-06-18-Rust.1.44.1.md rename to posts/Rust.1.44.1.md diff --git a/posts/2023-05-29-RustConf.md b/posts/RustConf.md similarity index 100% rename from posts/2023-05-29-RustConf.md rename to posts/RustConf.md diff --git a/posts/2019-10-15-Rustup-1.20.0.md b/posts/Rustup-1.20.0.md similarity index 100% rename from posts/2019-10-15-Rustup-1.20.0.md rename to posts/Rustup-1.20.0.md diff --git a/posts/2020-07-06-Rustup-1.22.0.md b/posts/Rustup-1.22.0.md similarity index 100% rename from posts/2020-07-06-Rustup-1.22.0.md rename to posts/Rustup-1.22.0.md diff --git a/posts/2020-07-08-Rustup-1.22.1.md b/posts/Rustup-1.22.1.md similarity index 100% rename from posts/2020-07-08-Rustup-1.22.1.md rename to posts/Rustup-1.22.1.md diff --git a/posts/2020-11-27-Rustup-1.23.0.md b/posts/Rustup-1.23.0.md similarity index 100% rename from posts/2020-11-27-Rustup-1.23.0.md rename to posts/Rustup-1.23.0.md diff --git a/posts/2021-04-27-Rustup-1.24.0.md b/posts/Rustup-1.24.0.md similarity index 100% rename from posts/2021-04-27-Rustup-1.24.0.md rename to posts/Rustup-1.24.0.md diff --git a/posts/2021-04-29-Rustup-1.24.1.md b/posts/Rustup-1.24.1.md similarity index 100% rename from posts/2021-04-29-Rustup-1.24.1.md rename to posts/Rustup-1.24.1.md diff --git a/posts/2021-05-17-Rustup-1.24.2.md b/posts/Rustup-1.24.2.md similarity index 100% rename from posts/2021-05-17-Rustup-1.24.2.md rename to posts/Rustup-1.24.2.md diff --git a/posts/2021-06-08-Rustup-1.24.3.md b/posts/Rustup-1.24.3.md similarity index 100% rename from posts/2021-06-08-Rustup-1.24.3.md rename to posts/Rustup-1.24.3.md diff --git a/posts/2022-07-11-Rustup-1.25.0.md b/posts/Rustup-1.25.0.md similarity index 100% rename from posts/2022-07-11-Rustup-1.25.0.md rename to posts/Rustup-1.25.0.md diff --git a/posts/2022-07-12-Rustup-1.25.1.md b/posts/Rustup-1.25.1.md similarity index 100% rename from posts/2022-07-12-Rustup-1.25.1.md rename to posts/Rustup-1.25.1.md diff --git a/posts/2023-02-01-Rustup-1.25.2.md b/posts/Rustup-1.25.2.md similarity index 100% rename from posts/2023-02-01-Rustup-1.25.2.md rename to posts/Rustup-1.25.2.md diff --git a/posts/2023-04-25-Rustup-1.26.0.md b/posts/Rustup-1.26.0.md similarity index 100% rename from posts/2023-04-25-Rustup-1.26.0.md rename to posts/Rustup-1.26.0.md diff --git a/posts/2024-03-11-Rustup-1.27.0.md b/posts/Rustup-1.27.0.md similarity index 100% rename from posts/2024-03-11-Rustup-1.27.0.md rename to posts/Rustup-1.27.0.md diff --git a/posts/2024-05-06-Rustup-1.27.1.md b/posts/Rustup-1.27.1.md similarity index 100% rename from posts/2024-05-06-Rustup-1.27.1.md rename to posts/Rustup-1.27.1.md diff --git a/posts/2025-03-02-Rustup-1.28.0.md b/posts/Rustup-1.28.0.md similarity index 100% rename from posts/2025-03-02-Rustup-1.28.0.md rename to posts/Rustup-1.28.0.md diff --git a/posts/2025-03-04-Rustup-1.28.1.md b/posts/Rustup-1.28.1.md similarity index 100% rename from posts/2025-03-04-Rustup-1.28.1.md rename to posts/Rustup-1.28.1.md diff --git a/posts/2020-09-21-Scheduling-2021-Roadmap.md b/posts/Scheduling-2021-Roadmap.md similarity index 100% rename from posts/2020-09-21-Scheduling-2021-Roadmap.md rename to posts/Scheduling-2021-Roadmap.md diff --git a/posts/2019-09-30-Security-advisory-for-cargo.md b/posts/Security-advisory-for-cargo.md similarity index 100% rename from posts/2019-09-30-Security-advisory-for-cargo.md rename to posts/Security-advisory-for-cargo.md diff --git a/posts/2018-09-21-Security-advisory-for-std.md b/posts/Security-advisory-for-std.md similarity index 100% rename from posts/2018-09-21-Security-advisory-for-std.md rename to posts/Security-advisory-for-std.md diff --git a/posts/2019-05-13-Security-advisory.md b/posts/Security-advisory.md similarity index 100% rename from posts/2019-05-13-Security-advisory.md rename to posts/Security-advisory.md diff --git a/posts/2016-08-10-Shape-of-errors-to-come.md b/posts/Shape-of-errors-to-come.md similarity index 100% rename from posts/2016-08-10-Shape-of-errors-to-come.md rename to posts/Shape-of-errors-to-come.md diff --git a/posts/2014-10-30-Stability.md b/posts/Stability.md similarity index 100% rename from posts/2014-10-30-Stability.md rename to posts/Stability.md diff --git a/posts/2016-06-30-State-of-Rust-Survey-2016.md b/posts/State-of-Rust-Survey-2016.md similarity index 100% rename from posts/2016-06-30-State-of-Rust-Survey-2016.md rename to posts/State-of-Rust-Survey-2016.md diff --git a/posts/2018-01-31-The-2018-Rust-Event-Lineup.md b/posts/The-2018-Rust-Event-Lineup.md similarity index 100% rename from posts/2018-01-31-The-2018-Rust-Event-Lineup.md rename to posts/The-2018-Rust-Event-Lineup.md diff --git a/posts/2019-05-20-The-2019-Rust-Event-Lineup.md b/posts/The-2019-Rust-Event-Lineup.md similarity index 100% rename from posts/2019-05-20-The-2019-Rust-Event-Lineup.md rename to posts/The-2019-Rust-Event-Lineup.md diff --git a/posts/2016-12-15-Underhanded-Rust.md b/posts/Underhanded-Rust.md similarity index 100% rename from posts/2016-12-15-Underhanded-Rust.md rename to posts/Underhanded-Rust.md diff --git a/posts/2018-10-19-Update-on-crates.io-incident.md b/posts/Update-on-crates.io-incident.md similarity index 100% rename from posts/2018-10-19-Update-on-crates.io-incident.md rename to posts/Update-on-crates.io-incident.md diff --git a/posts/2023-05-09-Updating-musl-targets.md b/posts/Updating-musl-targets.md similarity index 100% rename from posts/2023-05-09-Updating-musl-targets.md rename to posts/Updating-musl-targets.md diff --git a/posts/2024-02-26-Windows-7.md b/posts/Windows-7.md similarity index 100% rename from posts/2024-02-26-Windows-7.md rename to posts/Windows-7.md diff --git a/posts/2018-11-29-a-new-look-for-rust-lang-org.md b/posts/a-new-look-for-rust-lang-org.md similarity index 100% rename from posts/2018-11-29-a-new-look-for-rust-lang-org.md rename to posts/a-new-look-for-rust-lang-org.md diff --git a/posts/2018-04-06-all-hands.md b/posts/all-hands.md similarity index 100% rename from posts/2018-04-06-all-hands.md rename to posts/all-hands.md diff --git a/posts/2023-01-09-android-ndk-update-r25.md b/posts/android-ndk-update-r25.md similarity index 100% rename from posts/2023-01-09-android-ndk-update-r25.md rename to posts/android-ndk-update-r25.md diff --git a/posts/2023-10-19-announcing-the-new-rust-project-directors.md b/posts/announcing-the-new-rust-project-directors.md similarity index 100% rename from posts/2023-10-19-announcing-the-new-rust-project-directors.md rename to posts/announcing-the-new-rust-project-directors.md diff --git a/posts/2024-12-05-annual-survey-2024-launch.md b/posts/annual-survey-2024-launch.md similarity index 100% rename from posts/2024-12-05-annual-survey-2024-launch.md rename to posts/annual-survey-2024-launch.md diff --git a/posts/2023-12-21-async-fn-rpit-in-traits.md b/posts/async-fn-rpit-in-traits.md similarity index 100% rename from posts/2023-12-21-async-fn-rpit-in-traits.md rename to posts/async-fn-rpit-in-traits.md diff --git a/posts/2021-04-14-async-vision-doc-shiny-future.md b/posts/async-vision-doc-shiny-future.md similarity index 100% rename from posts/2021-04-14-async-vision-doc-shiny-future.md rename to posts/async-vision-doc-shiny-future.md diff --git a/posts/2021-03-18-async-vision-doc.md b/posts/async-vision-doc.md similarity index 100% rename from posts/2021-03-18-async-vision-doc.md rename to posts/async-vision-doc.md diff --git a/posts/2023-10-26-broken-badges-and-23k-keywords.md b/posts/broken-badges-and-23k-keywords.md similarity index 100% rename from posts/2023-10-26-broken-badges-and-23k-keywords.md rename to posts/broken-badges-and-23k-keywords.md diff --git a/posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md b/posts/call-for-rust-2019-roadmap-blogposts.md similarity index 100% rename from posts/2018-12-06-call-for-rust-2019-roadmap-blogposts.md rename to posts/call-for-rust-2019-roadmap-blogposts.md diff --git a/posts/2023-12-11-cargo-cache-cleaning.md b/posts/cargo-cache-cleaning.md similarity index 100% rename from posts/2023-12-11-cargo-cache-cleaning.md rename to posts/cargo-cache-cleaning.md diff --git a/posts/2022-09-14-cargo-cves.md b/posts/cargo-cves.md similarity index 100% rename from posts/2022-09-14-cargo-cves.md rename to posts/cargo-cves.md diff --git a/posts/2016-05-05-cargo-pillars.md b/posts/cargo-pillars.md similarity index 100% rename from posts/2016-05-05-cargo-pillars.md rename to posts/cargo-pillars.md diff --git a/posts/2022-01-31-changes-in-the-core-team.md b/posts/changes-in-the-core-team@0.md similarity index 100% rename from posts/2022-01-31-changes-in-the-core-team.md rename to posts/changes-in-the-core-team@0.md diff --git a/posts/2022-07-12-changes-in-the-core-team.md b/posts/changes-in-the-core-team@1.md similarity index 100% rename from posts/2022-07-12-changes-in-the-core-team.md rename to posts/changes-in-the-core-team@1.md diff --git a/posts/2024-05-06-check-cfg.md b/posts/check-cfg.md similarity index 100% rename from posts/2024-05-06-check-cfg.md rename to posts/check-cfg.md diff --git a/posts/2023-08-29-committing-lockfiles.md b/posts/committing-lockfiles.md similarity index 100% rename from posts/2023-08-29-committing-lockfiles.md rename to posts/committing-lockfiles.md diff --git a/posts/2016-07-25-conf-lineup.md b/posts/conf-lineup@0.md similarity index 100% rename from posts/2016-07-25-conf-lineup.md rename to posts/conf-lineup@0.md diff --git a/posts/2017-07-18-conf-lineup.md b/posts/conf-lineup@1.md similarity index 100% rename from posts/2017-07-18-conf-lineup.md rename to posts/conf-lineup@1.md diff --git a/posts/2020-01-31-conf-lineup.md b/posts/conf-lineup@2.md similarity index 100% rename from posts/2020-01-31-conf-lineup.md rename to posts/conf-lineup@2.md diff --git a/posts/2022-09-15-const-eval-safety-rule-revision.md b/posts/const-eval-safety-rule-revision.md similarity index 100% rename from posts/2022-09-15-const-eval-safety-rule-revision.md rename to posts/const-eval-safety-rule-revision.md diff --git a/posts/2021-02-26-const-generics-mvp-beta.md b/posts/const-generics-mvp-beta.md similarity index 100% rename from posts/2021-02-26-const-generics-mvp-beta.md rename to posts/const-generics-mvp-beta.md diff --git a/posts/2024-08-26-council-survey.md b/posts/council-survey.md similarity index 100% rename from posts/2024-08-26-council-survey.md rename to posts/council-survey.md diff --git a/posts/2024-07-29-crates-io-development-update.md b/posts/crates-io-development-update@0.md similarity index 100% rename from posts/2024-07-29-crates-io-development-update.md rename to posts/crates-io-development-update@0.md diff --git a/posts/2025-02-05-crates-io-development-update.md b/posts/crates-io-development-update@1.md similarity index 100% rename from posts/2025-02-05-crates-io-development-update.md rename to posts/crates-io-development-update@1.md diff --git a/posts/2024-03-11-crates-io-download-changes.md b/posts/crates-io-download-changes.md similarity index 100% rename from posts/2024-03-11-crates-io-download-changes.md rename to posts/crates-io-download-changes.md diff --git a/posts/2023-10-27-crates-io-non-canonical-downloads.md b/posts/crates-io-non-canonical-downloads.md similarity index 100% rename from posts/2023-10-27-crates-io-non-canonical-downloads.md rename to posts/crates-io-non-canonical-downloads.md diff --git a/posts/2020-07-14-crates-io-security-advisory.md b/posts/crates-io-security-advisory.md similarity index 100% rename from posts/2020-07-14-crates-io-security-advisory.md rename to posts/crates-io-security-advisory.md diff --git a/posts/2022-02-14-crates-io-snapshot-branches.md b/posts/crates-io-snapshot-branches.md similarity index 100% rename from posts/2022-02-14-crates-io-snapshot-branches.md rename to posts/crates-io-snapshot-branches.md diff --git a/posts/2024-02-06-crates-io-status-codes.md b/posts/crates-io-status-codes.md similarity index 100% rename from posts/2024-02-06-crates-io-status-codes.md rename to posts/crates-io-status-codes.md diff --git a/posts/2023-09-22-crates-io-usage-policy-rfc.md b/posts/crates-io-usage-policy-rfc.md similarity index 100% rename from posts/2023-09-22-crates-io-usage-policy-rfc.md rename to posts/crates-io-usage-policy-rfc.md diff --git a/posts/2021-11-01-cve-2021-42574.md b/posts/cve-2021-42574.md similarity index 100% rename from posts/2021-11-01-cve-2021-42574.md rename to posts/cve-2021-42574.md diff --git a/posts/2022-01-20-cve-2022-21658.md b/posts/cve-2022-21658.md similarity index 100% rename from posts/2022-01-20-cve-2022-21658.md rename to posts/cve-2022-21658.md diff --git a/posts/2022-03-08-cve-2022-24713.md b/posts/cve-2022-24713.md similarity index 100% rename from posts/2022-03-08-cve-2022-24713.md rename to posts/cve-2022-24713.md diff --git a/posts/2023-01-10-cve-2022-46176.md b/posts/cve-2022-46176.md similarity index 100% rename from posts/2023-01-10-cve-2022-46176.md rename to posts/cve-2022-46176.md diff --git a/posts/2023-08-03-cve-2023-38497.md b/posts/cve-2023-38497.md similarity index 100% rename from posts/2023-08-03-cve-2023-38497.md rename to posts/cve-2023-38497.md diff --git a/posts/2024-04-09-cve-2024-24576.md b/posts/cve-2024-24576.md similarity index 100% rename from posts/2024-04-09-cve-2024-24576.md rename to posts/cve-2024-24576.md diff --git a/posts/2024-09-04-cve-2024-43402.md b/posts/cve-2024-43402.md similarity index 100% rename from posts/2024-09-04-cve-2024-43402.md rename to posts/cve-2024-43402.md diff --git a/posts/2020-03-15-docs-rs-opt-into-fewer-targets.md b/posts/docs-rs-opt-into-fewer-targets.md similarity index 100% rename from posts/2020-03-15-docs-rs-opt-into-fewer-targets.md rename to posts/docs-rs-opt-into-fewer-targets.md diff --git a/posts/2021-05-11-edition-2021.md b/posts/edition-2021.md similarity index 100% rename from posts/2021-05-11-edition-2021.md rename to posts/edition-2021.md diff --git a/posts/2023-08-30-electing-new-project-directors.md b/posts/electing-new-project-directors.md similarity index 100% rename from posts/2023-08-30-electing-new-project-directors.md rename to posts/electing-new-project-directors.md diff --git a/posts/2024-05-17-enabling-rust-lld-on-linux.md b/posts/enabling-rust-lld-on-linux.md similarity index 100% rename from posts/2024-05-17-enabling-rust-lld-on-linux.md rename to posts/enabling-rust-lld-on-linux.md diff --git a/posts/2020-06-10-event-lineup-update.md b/posts/event-lineup-update.md similarity index 100% rename from posts/2020-06-10-event-lineup-update.md rename to posts/event-lineup-update.md diff --git a/posts/2020-05-15-five-years-of-rust.md b/posts/five-years-of-rust.md similarity index 100% rename from posts/2020-05-15-five-years-of-rust.md rename to posts/five-years-of-rust.md diff --git a/posts/2022-10-28-gats-stabilization.md b/posts/gats-stabilization.md similarity index 100% rename from posts/2022-10-28-gats-stabilization.md rename to posts/gats-stabilization.md diff --git a/posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md b/posts/gccrs-an-alternative-compiler-for-rust.md similarity index 100% rename from posts/2024-11-07-gccrs-an-alternative-compiler-for-rust.md rename to posts/gccrs-an-alternative-compiler-for-rust.md diff --git a/posts/2019-06-03-governance-wg-announcement.md b/posts/governance-wg-announcement.md similarity index 100% rename from posts/2019-06-03-governance-wg-announcement.md rename to posts/governance-wg-announcement.md diff --git a/posts/2024-11-07-gsoc-2024-results.md b/posts/gsoc-2024-results.md similarity index 100% rename from posts/2024-11-07-gsoc-2024-results.md rename to posts/gsoc-2024-results.md diff --git a/posts/2024-05-01-gsoc-2024-selected-projects.md b/posts/gsoc-2024-selected-projects.md similarity index 100% rename from posts/2024-05-01-gsoc-2024-selected-projects.md rename to posts/gsoc-2024-selected-projects.md diff --git a/posts/2018-10-30-help-test-rust-2018.md b/posts/help-test-rust-2018.md similarity index 100% rename from posts/2018-10-30-help-test-rust-2018.md rename to posts/help-test-rust-2018.md diff --git a/posts/2024-03-30-i128-layout-update.md b/posts/i128-layout-update.md similarity index 100% rename from posts/2024-03-30-i128-layout-update.md rename to posts/i128-layout-update.md diff --git a/posts/2017-09-18-impl-future-for-rust.md b/posts/impl-future-for-rust.md similarity index 100% rename from posts/2017-09-18-impl-future-for-rust.md rename to posts/impl-future-for-rust.md diff --git a/posts/2024-09-05-impl-trait-capture-rules.md b/posts/impl-trait-capture-rules.md similarity index 100% rename from posts/2024-09-05-impl-trait-capture-rules.md rename to posts/impl-trait-capture-rules.md diff --git a/posts/2023-06-23-improved-api-tokens-for-crates-io.md b/posts/improved-api-tokens-for-crates-io.md similarity index 100% rename from posts/2023-06-23-improved-api-tokens-for-crates-io.md rename to posts/improved-api-tokens-for-crates-io.md diff --git a/posts/2016-09-08-incremental.md b/posts/incremental.md similarity index 100% rename from posts/2016-09-08-incremental.md rename to posts/incremental.md diff --git a/posts/2019-10-03-inside-rust-blog.md b/posts/inside-rust-blog.md similarity index 100% rename from posts/2019-10-03-inside-rust-blog.md rename to posts/inside-rust-blog.md diff --git a/posts/inside-rust/2020-07-27-1.45.1-prerelease.md b/posts/inside-rust/1.45.1-prerelease.md similarity index 100% rename from posts/inside-rust/2020-07-27-1.45.1-prerelease.md rename to posts/inside-rust/1.45.1-prerelease.md diff --git a/posts/inside-rust/2020-08-24-1.46.0-prerelease.md b/posts/inside-rust/1.46.0-prerelease.md similarity index 100% rename from posts/inside-rust/2020-08-24-1.46.0-prerelease.md rename to posts/inside-rust/1.46.0-prerelease.md diff --git a/posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md b/posts/inside-rust/1.47.0-prerelease-2.md similarity index 100% rename from posts/inside-rust/2020-10-07-1.47.0-prerelease-2.md rename to posts/inside-rust/1.47.0-prerelease-2.md diff --git a/posts/inside-rust/2020-10-06-1.47.0-prerelease.md b/posts/inside-rust/1.47.0-prerelease.md similarity index 100% rename from posts/inside-rust/2020-10-06-1.47.0-prerelease.md rename to posts/inside-rust/1.47.0-prerelease.md diff --git a/posts/inside-rust/2020-11-16-1.48.0-prerelease.md b/posts/inside-rust/1.48.0-prerelease.md similarity index 100% rename from posts/inside-rust/2020-11-16-1.48.0-prerelease.md rename to posts/inside-rust/1.48.0-prerelease.md diff --git a/posts/inside-rust/2020-12-29-1.49.0-prerelease.md b/posts/inside-rust/1.49.0-prerelease.md similarity index 100% rename from posts/inside-rust/2020-12-29-1.49.0-prerelease.md rename to posts/inside-rust/1.49.0-prerelease.md diff --git a/posts/inside-rust/2021-02-09-1.50.0-prerelease.md b/posts/inside-rust/1.50.0-prerelease.md similarity index 100% rename from posts/inside-rust/2021-02-09-1.50.0-prerelease.md rename to posts/inside-rust/1.50.0-prerelease.md diff --git a/posts/inside-rust/2021-03-23-1.51.0-prerelease.md b/posts/inside-rust/1.51.0-prerelease.md similarity index 100% rename from posts/inside-rust/2021-03-23-1.51.0-prerelease.md rename to posts/inside-rust/1.51.0-prerelease.md diff --git a/posts/inside-rust/2021-05-04-1.52.0-prerelease.md b/posts/inside-rust/1.52.0-prerelease.md similarity index 100% rename from posts/inside-rust/2021-05-04-1.52.0-prerelease.md rename to posts/inside-rust/1.52.0-prerelease.md diff --git a/posts/inside-rust/2021-06-15-1.53.0-prelease.md b/posts/inside-rust/1.53.0-prelease.md similarity index 100% rename from posts/inside-rust/2021-06-15-1.53.0-prelease.md rename to posts/inside-rust/1.53.0-prelease.md diff --git a/posts/inside-rust/2021-07-26-1.54.0-prerelease.md b/posts/inside-rust/1.54.0-prerelease.md similarity index 100% rename from posts/inside-rust/2021-07-26-1.54.0-prerelease.md rename to posts/inside-rust/1.54.0-prerelease.md diff --git a/posts/inside-rust/2021-09-07-1.55.0-prerelease.md b/posts/inside-rust/1.55.0-prerelease.md similarity index 100% rename from posts/inside-rust/2021-09-07-1.55.0-prerelease.md rename to posts/inside-rust/1.55.0-prerelease.md diff --git a/posts/inside-rust/2021-10-18-1.56.0-prerelease.md b/posts/inside-rust/1.56.0-prerelease.md similarity index 100% rename from posts/inside-rust/2021-10-18-1.56.0-prerelease.md rename to posts/inside-rust/1.56.0-prerelease.md diff --git a/posts/inside-rust/2021-11-30-1.57.0-prerelease.md b/posts/inside-rust/1.57.0-prerelease.md similarity index 100% rename from posts/inside-rust/2021-11-30-1.57.0-prerelease.md rename to posts/inside-rust/1.57.0-prerelease.md diff --git a/posts/inside-rust/2022-01-11-1.58.0-prerelease.md b/posts/inside-rust/1.58.0-prerelease.md similarity index 100% rename from posts/inside-rust/2022-01-11-1.58.0-prerelease.md rename to posts/inside-rust/1.58.0-prerelease.md diff --git a/posts/inside-rust/2022-02-22-1.59.0-prerelease.md b/posts/inside-rust/1.59.0-prerelease.md similarity index 100% rename from posts/inside-rust/2022-02-22-1.59.0-prerelease.md rename to posts/inside-rust/1.59.0-prerelease.md diff --git a/posts/inside-rust/2022-04-04-1.60.0-prerelease.md b/posts/inside-rust/1.60.0-prerelease.md similarity index 100% rename from posts/inside-rust/2022-04-04-1.60.0-prerelease.md rename to posts/inside-rust/1.60.0-prerelease.md diff --git a/posts/inside-rust/2022-05-16-1.61.0-prerelease.md b/posts/inside-rust/1.61.0-prerelease.md similarity index 100% rename from posts/inside-rust/2022-05-16-1.61.0-prerelease.md rename to posts/inside-rust/1.61.0-prerelease.md diff --git a/posts/inside-rust/2022-06-28-1.62.0-prerelease.md b/posts/inside-rust/1.62.0-prerelease.md similarity index 100% rename from posts/inside-rust/2022-06-28-1.62.0-prerelease.md rename to posts/inside-rust/1.62.0-prerelease.md diff --git a/posts/inside-rust/2022-07-16-1.62.1-prerelease.md b/posts/inside-rust/1.62.1-prerelease.md similarity index 100% rename from posts/inside-rust/2022-07-16-1.62.1-prerelease.md rename to posts/inside-rust/1.62.1-prerelease.md diff --git a/posts/inside-rust/2022-08-09-1.63.0-prerelease.md b/posts/inside-rust/1.63.0-prerelease.md similarity index 100% rename from posts/inside-rust/2022-08-09-1.63.0-prerelease.md rename to posts/inside-rust/1.63.0-prerelease.md diff --git a/posts/inside-rust/2022-09-19-1.64.0-prerelease.md b/posts/inside-rust/1.64.0-prerelease.md similarity index 100% rename from posts/inside-rust/2022-09-19-1.64.0-prerelease.md rename to posts/inside-rust/1.64.0-prerelease.md diff --git a/posts/inside-rust/2022-10-31-1.65.0-prerelease.md b/posts/inside-rust/1.65.0-prerelease.md similarity index 100% rename from posts/inside-rust/2022-10-31-1.65.0-prerelease.md rename to posts/inside-rust/1.65.0-prerelease.md diff --git a/posts/inside-rust/2022-12-12-1.66.0-prerelease.md b/posts/inside-rust/1.66.0-prerelease.md similarity index 100% rename from posts/inside-rust/2022-12-12-1.66.0-prerelease.md rename to posts/inside-rust/1.66.0-prerelease.md diff --git a/posts/inside-rust/2023-01-25-1.67.0-prerelease.md b/posts/inside-rust/1.67.0-prerelease.md similarity index 100% rename from posts/inside-rust/2023-01-25-1.67.0-prerelease.md rename to posts/inside-rust/1.67.0-prerelease.md diff --git a/posts/inside-rust/2023-02-07-1.67.1-prerelease.md b/posts/inside-rust/1.67.1-prerelease.md similarity index 100% rename from posts/inside-rust/2023-02-07-1.67.1-prerelease.md rename to posts/inside-rust/1.67.1-prerelease.md diff --git a/posts/inside-rust/2023-03-06-1.68.0-prerelease.md b/posts/inside-rust/1.68.0-prerelease.md similarity index 100% rename from posts/inside-rust/2023-03-06-1.68.0-prerelease.md rename to posts/inside-rust/1.68.0-prerelease.md diff --git a/posts/inside-rust/2023-03-20-1.68.1-prerelease.md b/posts/inside-rust/1.68.1-prerelease.md similarity index 100% rename from posts/inside-rust/2023-03-20-1.68.1-prerelease.md rename to posts/inside-rust/1.68.1-prerelease.md diff --git a/posts/inside-rust/2023-03-27-1.68.2-prerelease.md b/posts/inside-rust/1.68.2-prerelease.md similarity index 100% rename from posts/inside-rust/2023-03-27-1.68.2-prerelease.md rename to posts/inside-rust/1.68.2-prerelease.md diff --git a/posts/inside-rust/2023-04-17-1.69.0-prerelease.md b/posts/inside-rust/1.69.0-prerelease.md similarity index 100% rename from posts/inside-rust/2023-04-17-1.69.0-prerelease.md rename to posts/inside-rust/1.69.0-prerelease.md diff --git a/posts/inside-rust/2023-05-29-1.70.0-prerelease.md b/posts/inside-rust/1.70.0-prerelease.md similarity index 100% rename from posts/inside-rust/2023-05-29-1.70.0-prerelease.md rename to posts/inside-rust/1.70.0-prerelease.md diff --git a/posts/inside-rust/2023-07-10-1.71.0-prerelease.md b/posts/inside-rust/1.71.0-prerelease.md similarity index 100% rename from posts/inside-rust/2023-07-10-1.71.0-prerelease.md rename to posts/inside-rust/1.71.0-prerelease.md diff --git a/posts/inside-rust/2023-08-01-1.71.1-prerelease.md b/posts/inside-rust/1.71.1-prerelease.md similarity index 100% rename from posts/inside-rust/2023-08-01-1.71.1-prerelease.md rename to posts/inside-rust/1.71.1-prerelease.md diff --git a/posts/inside-rust/2023-08-21-1.72.0-prerelease.md b/posts/inside-rust/1.72.0-prerelease.md similarity index 100% rename from posts/inside-rust/2023-08-21-1.72.0-prerelease.md rename to posts/inside-rust/1.72.0-prerelease.md diff --git a/posts/inside-rust/2023-09-14-1.72.1-prerelease.md b/posts/inside-rust/1.72.1-prerelease.md similarity index 100% rename from posts/inside-rust/2023-09-14-1.72.1-prerelease.md rename to posts/inside-rust/1.72.1-prerelease.md diff --git a/posts/inside-rust/2023-10-03-1.73.0-prerelease.md b/posts/inside-rust/1.73.0-prerelease.md similarity index 100% rename from posts/inside-rust/2023-10-03-1.73.0-prerelease.md rename to posts/inside-rust/1.73.0-prerelease.md diff --git a/posts/inside-rust/2023-11-13-1.74.0-prerelease.md b/posts/inside-rust/1.74.0-prerelease.md similarity index 100% rename from posts/inside-rust/2023-11-13-1.74.0-prerelease.md rename to posts/inside-rust/1.74.0-prerelease.md diff --git a/posts/inside-rust/2023-12-05-1.74.1-prerelease.md b/posts/inside-rust/1.74.1-prerelease.md similarity index 100% rename from posts/inside-rust/2023-12-05-1.74.1-prerelease.md rename to posts/inside-rust/1.74.1-prerelease.md diff --git a/posts/inside-rust/2023-12-21-1.75.0-prerelease.md b/posts/inside-rust/1.75.0-prerelease.md similarity index 100% rename from posts/inside-rust/2023-12-21-1.75.0-prerelease.md rename to posts/inside-rust/1.75.0-prerelease.md diff --git a/posts/inside-rust/2024-02-04-1.76.0-prerelease.md b/posts/inside-rust/1.76.0-prerelease.md similarity index 100% rename from posts/inside-rust/2024-02-04-1.76.0-prerelease.md rename to posts/inside-rust/1.76.0-prerelease.md diff --git a/posts/inside-rust/2024-03-17-1.77.0-prerelease.md b/posts/inside-rust/1.77.0-prerelease.md similarity index 100% rename from posts/inside-rust/2024-03-17-1.77.0-prerelease.md rename to posts/inside-rust/1.77.0-prerelease.md diff --git a/posts/inside-rust/2024-03-27-1.77.1-prerelease.md b/posts/inside-rust/1.77.1-prerelease.md similarity index 100% rename from posts/inside-rust/2024-03-27-1.77.1-prerelease.md rename to posts/inside-rust/1.77.1-prerelease.md diff --git a/posts/inside-rust/2024-03-22-2024-edition-update.md b/posts/inside-rust/2024-edition-update.md similarity index 100% rename from posts/inside-rust/2024-03-22-2024-edition-update.md rename to posts/inside-rust/2024-edition-update.md diff --git a/posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md b/posts/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md similarity index 100% rename from posts/inside-rust/2019-10-11-AsyncAwait-Not-Send-Error-Improvements.md rename to posts/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md diff --git a/posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md b/posts/inside-rust/AsyncAwait-WG-Focus-Issues.md similarity index 100% rename from posts/inside-rust/2019-10-07-AsyncAwait-WG-Focus-Issues.md rename to posts/inside-rust/AsyncAwait-WG-Focus-Issues.md diff --git a/posts/inside-rust/2020-10-16-Backlog-Bonanza.md b/posts/inside-rust/Backlog-Bonanza.md similarity index 100% rename from posts/inside-rust/2020-10-16-Backlog-Bonanza.md rename to posts/inside-rust/Backlog-Bonanza.md diff --git a/posts/inside-rust/2022-04-12-CTCFT-april.md b/posts/inside-rust/CTCFT-april.md similarity index 100% rename from posts/inside-rust/2022-04-12-CTCFT-april.md rename to posts/inside-rust/CTCFT-april.md diff --git a/posts/inside-rust/2022-02-11-CTCFT-february.md b/posts/inside-rust/CTCFT-february.md similarity index 100% rename from posts/inside-rust/2022-02-11-CTCFT-february.md rename to posts/inside-rust/CTCFT-february.md diff --git a/posts/inside-rust/2022-03-16-CTCFT-march.md b/posts/inside-rust/CTCFT-march.md similarity index 100% rename from posts/inside-rust/2022-03-16-CTCFT-march.md rename to posts/inside-rust/CTCFT-march.md diff --git a/posts/inside-rust/2022-05-10-CTCFT-may.md b/posts/inside-rust/CTCFT-may.md similarity index 100% rename from posts/inside-rust/2022-05-10-CTCFT-may.md rename to posts/inside-rust/CTCFT-may.md diff --git a/posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md b/posts/inside-rust/Cleanup-Crew-ICE-breakers.md similarity index 100% rename from posts/inside-rust/2020-02-06-Cleanup-Crew-ICE-breakers.md rename to posts/inside-rust/Cleanup-Crew-ICE-breakers.md diff --git a/posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md b/posts/inside-rust/Clippy-removes-plugin-interface.md similarity index 100% rename from posts/inside-rust/2019-11-04-Clippy-removes-plugin-interface.md rename to posts/inside-rust/Clippy-removes-plugin-interface.md diff --git a/posts/inside-rust/2022-05-26-Concluding-events-mods.md b/posts/inside-rust/Concluding-events-mods.md similarity index 100% rename from posts/inside-rust/2022-05-26-Concluding-events-mods.md rename to posts/inside-rust/Concluding-events-mods.md diff --git a/posts/inside-rust/2020-10-23-Core-team-membership.md b/posts/inside-rust/Core-team-membership.md similarity index 100% rename from posts/inside-rust/2020-10-23-Core-team-membership.md rename to posts/inside-rust/Core-team-membership.md diff --git a/posts/inside-rust/2020-01-14-Goverance-wg-cfp.md b/posts/inside-rust/Goverance-wg-cfp.md similarity index 100% rename from posts/inside-rust/2020-01-14-Goverance-wg-cfp.md rename to posts/inside-rust/Goverance-wg-cfp.md diff --git a/posts/inside-rust/2020-02-11-Goverance-wg.md b/posts/inside-rust/Goverance-wg@0.md similarity index 100% rename from posts/inside-rust/2020-02-11-Goverance-wg.md rename to posts/inside-rust/Goverance-wg@0.md diff --git a/posts/inside-rust/2020-02-27-Goverance-wg.md b/posts/inside-rust/Goverance-wg@1.md similarity index 100% rename from posts/inside-rust/2020-02-27-Goverance-wg.md rename to posts/inside-rust/Goverance-wg@1.md diff --git a/posts/inside-rust/2020-04-14-Governance-WG-updated.md b/posts/inside-rust/Governance-WG-updated.md similarity index 100% rename from posts/inside-rust/2020-04-14-Governance-WG-updated.md rename to posts/inside-rust/Governance-WG-updated.md diff --git a/posts/inside-rust/2020-04-23-Governance-wg.md b/posts/inside-rust/Governance-wg.md similarity index 100% rename from posts/inside-rust/2020-04-23-Governance-wg.md rename to posts/inside-rust/Governance-wg.md diff --git a/posts/inside-rust/2020-01-23-Introducing-cargo-audit-fix-and-more.md b/posts/inside-rust/Introducing-cargo-audit-fix-and-more.md similarity index 100% rename from posts/inside-rust/2020-01-23-Introducing-cargo-audit-fix-and-more.md rename to posts/inside-rust/Introducing-cargo-audit-fix-and-more.md diff --git a/posts/inside-rust/2019-10-03-Keeping-secure-with-cargo-audit-0.9.md b/posts/inside-rust/Keeping-secure-with-cargo-audit-0.9.md similarity index 100% rename from posts/inside-rust/2019-10-03-Keeping-secure-with-cargo-audit-0.9.md rename to posts/inside-rust/Keeping-secure-with-cargo-audit-0.9.md diff --git a/posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md b/posts/inside-rust/LLVM-ICE-breakers.md similarity index 100% rename from posts/inside-rust/2019-10-22-LLVM-ICE-breakers.md rename to posts/inside-rust/LLVM-ICE-breakers.md diff --git a/posts/inside-rust/2019-10-11-Lang-Team-Meeting.md b/posts/inside-rust/Lang-Team-Meeting.md similarity index 100% rename from posts/inside-rust/2019-10-11-Lang-Team-Meeting.md rename to posts/inside-rust/Lang-Team-Meeting.md diff --git a/posts/inside-rust/2021-10-08-Lang-team-Oct-update.md b/posts/inside-rust/Lang-team-Oct-update.md similarity index 100% rename from posts/inside-rust/2021-10-08-Lang-team-Oct-update.md rename to posts/inside-rust/Lang-team-Oct-update.md diff --git a/posts/inside-rust/2021-07-12-Lang-team-july-update.md b/posts/inside-rust/Lang-team-july-update.md similarity index 100% rename from posts/inside-rust/2021-07-12-Lang-team-july-update.md rename to posts/inside-rust/Lang-team-july-update.md diff --git a/posts/inside-rust/2019-11-22-Lang-team-meeting.md b/posts/inside-rust/Lang-team-meeting.md similarity index 100% rename from posts/inside-rust/2019-11-22-Lang-team-meeting.md rename to posts/inside-rust/Lang-team-meeting.md diff --git a/posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md b/posts/inside-rust/Ownership-Std-Implementation.md similarity index 100% rename from posts/inside-rust/2020-07-02-Ownership-Std-Implementation.md rename to posts/inside-rust/Ownership-Std-Implementation.md diff --git a/posts/inside-rust/2020-09-29-Portable-SIMD-PG.md b/posts/inside-rust/Portable-SIMD-PG.md similarity index 100% rename from posts/inside-rust/2020-09-29-Portable-SIMD-PG.md rename to posts/inside-rust/Portable-SIMD-PG.md diff --git a/posts/inside-rust/2021-09-06-Splitting-const-generics.md b/posts/inside-rust/Splitting-const-generics.md similarity index 100% rename from posts/inside-rust/2021-09-06-Splitting-const-generics.md rename to posts/inside-rust/Splitting-const-generics.md diff --git a/posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md b/posts/inside-rust/Using-rustc_codegen_cranelift.md similarity index 100% rename from posts/inside-rust/2020-11-15-Using-rustc_codegen_cranelift.md rename to posts/inside-rust/Using-rustc_codegen_cranelift.md diff --git a/posts/inside-rust/2019-09-25-Welcome.md b/posts/inside-rust/Welcome.md similarity index 100% rename from posts/inside-rust/2019-09-25-Welcome.md rename to posts/inside-rust/Welcome.md diff --git a/posts/inside-rust/2020-11-23-What-the-error-handling-project-group-is-working-on.md b/posts/inside-rust/What-the-error-handling-project-group-is-working-on.md similarity index 100% rename from posts/inside-rust/2020-11-23-What-the-error-handling-project-group-is-working-on.md rename to posts/inside-rust/What-the-error-handling-project-group-is-working-on.md diff --git a/posts/inside-rust/2021-07-01-What-the-error-handling-project-group-is-working-towards.md b/posts/inside-rust/What-the-error-handling-project-group-is-working-towards.md similarity index 100% rename from posts/inside-rust/2021-07-01-What-the-error-handling-project-group-is-working-towards.md rename to posts/inside-rust/What-the-error-handling-project-group-is-working-towards.md diff --git a/posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md b/posts/inside-rust/aaron-hill-compiler-team.md similarity index 100% rename from posts/inside-rust/2021-04-26-aaron-hill-compiler-team.md rename to posts/inside-rust/aaron-hill-compiler-team.md diff --git a/posts/inside-rust/2020-03-18-all-hands-retrospective.md b/posts/inside-rust/all-hands-retrospective.md similarity index 100% rename from posts/inside-rust/2020-03-18-all-hands-retrospective.md rename to posts/inside-rust/all-hands-retrospective.md diff --git a/posts/inside-rust/2024-09-02-all-hands.md b/posts/inside-rust/all-hands.md similarity index 100% rename from posts/inside-rust/2024-09-02-all-hands.md rename to posts/inside-rust/all-hands.md diff --git a/posts/inside-rust/2024-05-07-announcing-project-goals.md b/posts/inside-rust/announcing-project-goals.md similarity index 100% rename from posts/inside-rust/2024-05-07-announcing-project-goals.md rename to posts/inside-rust/announcing-project-goals.md diff --git a/posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md b/posts/inside-rust/announcing-the-docsrs-team.md similarity index 100% rename from posts/inside-rust/2019-12-09-announcing-the-docsrs-team.md rename to posts/inside-rust/announcing-the-docsrs-team.md diff --git a/posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md b/posts/inside-rust/announcing-the-rust-style-team.md similarity index 100% rename from posts/inside-rust/2022-09-29-announcing-the-rust-style-team.md rename to posts/inside-rust/announcing-the-rust-style-team.md diff --git a/posts/inside-rust/2023-05-09-api-token-scopes.md b/posts/inside-rust/api-token-scopes.md similarity index 100% rename from posts/inside-rust/2023-05-09-api-token-scopes.md rename to posts/inside-rust/api-token-scopes.md diff --git a/posts/inside-rust/2022-04-15-apr-steering-cycle.md b/posts/inside-rust/apr-steering-cycle.md similarity index 100% rename from posts/inside-rust/2022-04-15-apr-steering-cycle.md rename to posts/inside-rust/apr-steering-cycle.md diff --git a/posts/inside-rust/2024-08-09-async-closures-call-for-testing.md b/posts/inside-rust/async-closures-call-for-testing.md similarity index 100% rename from posts/inside-rust/2024-08-09-async-closures-call-for-testing.md rename to posts/inside-rust/async-closures-call-for-testing.md diff --git a/posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md b/posts/inside-rust/async-fn-in-trait-nightly.md similarity index 100% rename from posts/inside-rust/2022-11-17-async-fn-in-trait-nightly.md rename to posts/inside-rust/async-fn-in-trait-nightly.md diff --git a/posts/inside-rust/2022-02-03-async-in-2022.md b/posts/inside-rust/async-in-2022.md similarity index 100% rename from posts/inside-rust/2022-02-03-async-in-2022.md rename to posts/inside-rust/async-in-2022.md diff --git a/posts/inside-rust/2019-12-18-bisecting-rust-compiler.md b/posts/inside-rust/bisecting-rust-compiler.md similarity index 100% rename from posts/inside-rust/2019-12-18-bisecting-rust-compiler.md rename to posts/inside-rust/bisecting-rust-compiler.md diff --git a/posts/inside-rust/2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md b/posts/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md similarity index 100% rename from posts/inside-rust/2021-06-15-boxyuwu-leseulartichaut-the8472-compiler-contributors.md rename to posts/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md diff --git a/posts/inside-rust/2023-08-24-cargo-config-merging.md b/posts/inside-rust/cargo-config-merging.md similarity index 100% rename from posts/inside-rust/2023-08-24-cargo-config-merging.md rename to posts/inside-rust/cargo-config-merging.md diff --git a/posts/inside-rust/2020-01-10-cargo-in-2020.md b/posts/inside-rust/cargo-in-2020.md similarity index 100% rename from posts/inside-rust/2020-01-10-cargo-in-2020.md rename to posts/inside-rust/cargo-in-2020.md diff --git a/posts/inside-rust/2023-04-06-cargo-new-members.md b/posts/inside-rust/cargo-new-members.md similarity index 100% rename from posts/inside-rust/2023-04-06-cargo-new-members.md rename to posts/inside-rust/cargo-new-members.md diff --git a/posts/inside-rust/2023-05-01-cargo-postmortem.md b/posts/inside-rust/cargo-postmortem.md similarity index 100% rename from posts/inside-rust/2023-05-01-cargo-postmortem.md rename to posts/inside-rust/cargo-postmortem.md diff --git a/posts/inside-rust/2023-01-30-cargo-sparse-protocol.md b/posts/inside-rust/cargo-sparse-protocol.md similarity index 100% rename from posts/inside-rust/2023-01-30-cargo-sparse-protocol.md rename to posts/inside-rust/cargo-sparse-protocol.md diff --git a/posts/inside-rust/2022-03-31-cargo-team-changes.md b/posts/inside-rust/cargo-team-changes.md similarity index 100% rename from posts/inside-rust/2022-03-31-cargo-team-changes.md rename to posts/inside-rust/cargo-team-changes.md diff --git a/posts/inside-rust/2020-12-14-changes-to-compiler-team.md b/posts/inside-rust/changes-to-compiler-team.md similarity index 100% rename from posts/inside-rust/2020-12-14-changes-to-compiler-team.md rename to posts/inside-rust/changes-to-compiler-team.md diff --git a/posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md b/posts/inside-rust/changes-to-rustdoc-team.md similarity index 100% rename from posts/inside-rust/2021-01-19-changes-to-rustdoc-team.md rename to posts/inside-rust/changes-to-rustdoc-team.md diff --git a/posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md b/posts/inside-rust/changes-to-x-py-defaults.md similarity index 100% rename from posts/inside-rust/2020-08-30-changes-to-x-py-defaults.md rename to posts/inside-rust/changes-to-x-py-defaults.md diff --git a/posts/inside-rust/2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md b/posts/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md similarity index 100% rename from posts/inside-rust/2020-12-28-cjgillot-and-nadrieril-for-compiler-contributors.md rename to posts/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md diff --git a/posts/inside-rust/2022-07-13-clippy-team-changes.md b/posts/inside-rust/clippy-team-changes.md similarity index 100% rename from posts/inside-rust/2022-07-13-clippy-team-changes.md rename to posts/inside-rust/clippy-team-changes.md diff --git a/posts/inside-rust/2022-08-08-compiler-team-2022-midyear-report.md b/posts/inside-rust/compiler-team-2022-midyear-report.md similarity index 100% rename from posts/inside-rust/2022-08-08-compiler-team-2022-midyear-report.md rename to posts/inside-rust/compiler-team-2022-midyear-report.md diff --git a/posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md b/posts/inside-rust/compiler-team-ambitions-2022.md similarity index 100% rename from posts/inside-rust/2022-02-22-compiler-team-ambitions-2022.md rename to posts/inside-rust/compiler-team-ambitions-2022.md diff --git a/posts/inside-rust/2021-04-15-compiler-team-april-steering-cycle.md b/posts/inside-rust/compiler-team-april-steering-cycle.md similarity index 100% rename from posts/inside-rust/2021-04-15-compiler-team-april-steering-cycle.md rename to posts/inside-rust/compiler-team-april-steering-cycle.md diff --git a/posts/inside-rust/2021-07-30-compiler-team-august-steering-cycle.md b/posts/inside-rust/compiler-team-august-steering-cycle.md similarity index 100% rename from posts/inside-rust/2021-07-30-compiler-team-august-steering-cycle.md rename to posts/inside-rust/compiler-team-august-steering-cycle.md diff --git a/posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md b/posts/inside-rust/compiler-team-feb-steering-cycle.md similarity index 100% rename from posts/inside-rust/2023-02-10-compiler-team-feb-steering-cycle.md rename to posts/inside-rust/compiler-team-feb-steering-cycle.md diff --git a/posts/inside-rust/2021-07-02-compiler-team-july-steering-cycle.md b/posts/inside-rust/compiler-team-july-steering-cycle.md similarity index 100% rename from posts/inside-rust/2021-07-02-compiler-team-july-steering-cycle.md rename to posts/inside-rust/compiler-team-july-steering-cycle.md diff --git a/posts/inside-rust/2021-06-23-compiler-team-june-steering-cycle.md b/posts/inside-rust/compiler-team-june-steering-cycle.md similarity index 100% rename from posts/inside-rust/2021-06-23-compiler-team-june-steering-cycle.md rename to posts/inside-rust/compiler-team-june-steering-cycle.md diff --git a/posts/inside-rust/2019-10-15-compiler-team-meeting.md b/posts/inside-rust/compiler-team-meeting@0.md similarity index 100% rename from posts/inside-rust/2019-10-15-compiler-team-meeting.md rename to posts/inside-rust/compiler-team-meeting@0.md diff --git a/posts/inside-rust/2019-10-21-compiler-team-meeting.md b/posts/inside-rust/compiler-team-meeting@1.md similarity index 100% rename from posts/inside-rust/2019-10-21-compiler-team-meeting.md rename to posts/inside-rust/compiler-team-meeting@1.md diff --git a/posts/inside-rust/2019-10-30-compiler-team-meeting.md b/posts/inside-rust/compiler-team-meeting@2.md similarity index 100% rename from posts/inside-rust/2019-10-30-compiler-team-meeting.md rename to posts/inside-rust/compiler-team-meeting@2.md diff --git a/posts/inside-rust/2019-11-07-compiler-team-meeting.md b/posts/inside-rust/compiler-team-meeting@3.md similarity index 100% rename from posts/inside-rust/2019-11-07-compiler-team-meeting.md rename to posts/inside-rust/compiler-team-meeting@3.md diff --git a/posts/inside-rust/2019-11-11-compiler-team-meeting.md b/posts/inside-rust/compiler-team-meeting@4.md similarity index 100% rename from posts/inside-rust/2019-11-11-compiler-team-meeting.md rename to posts/inside-rust/compiler-team-meeting@4.md diff --git a/posts/inside-rust/2019-11-19-compiler-team-meeting.md b/posts/inside-rust/compiler-team-meeting@5.md similarity index 100% rename from posts/inside-rust/2019-11-19-compiler-team-meeting.md rename to posts/inside-rust/compiler-team-meeting@5.md diff --git a/posts/inside-rust/2020-02-07-compiler-team-meeting.md b/posts/inside-rust/compiler-team-meeting@6.md similarity index 100% rename from posts/inside-rust/2020-02-07-compiler-team-meeting.md rename to posts/inside-rust/compiler-team-meeting@6.md diff --git a/posts/inside-rust/2024-11-12-compiler-team-new-members.md b/posts/inside-rust/compiler-team-new-members.md similarity index 100% rename from posts/inside-rust/2024-11-12-compiler-team-new-members.md rename to posts/inside-rust/compiler-team-new-members.md diff --git a/posts/inside-rust/2024-11-01-compiler-team-reorg.md b/posts/inside-rust/compiler-team-reorg.md similarity index 100% rename from posts/inside-rust/2024-11-01-compiler-team-reorg.md rename to posts/inside-rust/compiler-team-reorg.md diff --git a/posts/inside-rust/2022-09-23-compiler-team-sep-oct-steering-cycle.md b/posts/inside-rust/compiler-team-sep-oct-steering-cycle.md similarity index 100% rename from posts/inside-rust/2022-09-23-compiler-team-sep-oct-steering-cycle.md rename to posts/inside-rust/compiler-team-sep-oct-steering-cycle.md diff --git a/posts/inside-rust/2019-11-25-const-if-match.md b/posts/inside-rust/const-if-match.md similarity index 100% rename from posts/inside-rust/2019-11-25-const-if-match.md rename to posts/inside-rust/const-if-match.md diff --git a/posts/inside-rust/2019-12-02-const-prop-on-by-default.md b/posts/inside-rust/const-prop-on-by-default.md similarity index 100% rename from posts/inside-rust/2019-12-02-const-prop-on-by-default.md rename to posts/inside-rust/const-prop-on-by-default.md diff --git a/posts/inside-rust/2023-01-24-content-delivery-networks.md b/posts/inside-rust/content-delivery-networks.md similarity index 100% rename from posts/inside-rust/2023-01-24-content-delivery-networks.md rename to posts/inside-rust/content-delivery-networks.md diff --git a/posts/inside-rust/2020-05-27-contributor-survey.md b/posts/inside-rust/contributor-survey.md similarity index 100% rename from posts/inside-rust/2020-05-27-contributor-survey.md rename to posts/inside-rust/contributor-survey.md diff --git a/posts/inside-rust/2021-05-04-core-team-update.md b/posts/inside-rust/core-team-update.md similarity index 100% rename from posts/inside-rust/2021-05-04-core-team-update.md rename to posts/inside-rust/core-team-update.md diff --git a/posts/inside-rust/2021-04-03-core-team-updates.md b/posts/inside-rust/core-team-updates.md similarity index 100% rename from posts/inside-rust/2021-04-03-core-team-updates.md rename to posts/inside-rust/core-team-updates.md diff --git a/posts/inside-rust/2023-10-23-coroutines.md b/posts/inside-rust/coroutines.md similarity index 100% rename from posts/inside-rust/2023-10-23-coroutines.md rename to posts/inside-rust/coroutines.md diff --git a/posts/inside-rust/2020-02-26-crates-io-incident-report.md b/posts/inside-rust/crates-io-incident-report.md similarity index 100% rename from posts/inside-rust/2020-02-26-crates-io-incident-report.md rename to posts/inside-rust/crates-io-incident-report.md diff --git a/posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md b/posts/inside-rust/crates-io-malware-postmortem.md similarity index 100% rename from posts/inside-rust/2023-09-01-crates-io-malware-postmortem.md rename to posts/inside-rust/crates-io-malware-postmortem.md diff --git a/posts/inside-rust/2023-07-21-crates-io-postmortem.md b/posts/inside-rust/crates-io-postmortem.md similarity index 100% rename from posts/inside-rust/2023-07-21-crates-io-postmortem.md rename to posts/inside-rust/crates-io-postmortem.md diff --git a/posts/inside-rust/2021-02-01-davidtwco-jackhuey-compiler-members.md b/posts/inside-rust/davidtwco-jackhuey-compiler-members.md similarity index 100% rename from posts/inside-rust/2021-02-01-davidtwco-jackhuey-compiler-members.md rename to posts/inside-rust/davidtwco-jackhuey-compiler-members.md diff --git a/posts/inside-rust/2022-08-16-diagnostic-effort.md b/posts/inside-rust/diagnostic-effort.md similarity index 100% rename from posts/inside-rust/2022-08-16-diagnostic-effort.md rename to posts/inside-rust/diagnostic-effort.md diff --git a/posts/inside-rust/2023-02-08-dns-outage-portmortem.md b/posts/inside-rust/dns-outage-portmortem.md similarity index 100% rename from posts/inside-rust/2023-02-08-dns-outage-portmortem.md rename to posts/inside-rust/dns-outage-portmortem.md diff --git a/posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md b/posts/inside-rust/docsrs-outage-postmortem.md similarity index 100% rename from posts/inside-rust/2019-10-24-docsrs-outage-postmortem.md rename to posts/inside-rust/docsrs-outage-postmortem.md diff --git a/posts/inside-rust/2019-10-17-ecstatic-morse-for-compiler-contributors.md b/posts/inside-rust/ecstatic-morse-for-compiler-contributors.md similarity index 100% rename from posts/inside-rust/2019-10-17-ecstatic-morse-for-compiler-contributors.md rename to posts/inside-rust/ecstatic-morse-for-compiler-contributors.md diff --git a/posts/inside-rust/2024-09-06-electing-new-project-directors.md b/posts/inside-rust/electing-new-project-directors.md similarity index 100% rename from posts/inside-rust/2024-09-06-electing-new-project-directors.md rename to posts/inside-rust/electing-new-project-directors.md diff --git a/posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md b/posts/inside-rust/embedded-wg-micro-survey.md similarity index 100% rename from posts/inside-rust/2024-08-22-embedded-wg-micro-survey.md rename to posts/inside-rust/embedded-wg-micro-survey.md diff --git a/posts/inside-rust/2020-09-18-error-handling-wg-announcement.md b/posts/inside-rust/error-handling-wg-announcement.md similarity index 100% rename from posts/inside-rust/2020-09-18-error-handling-wg-announcement.md rename to posts/inside-rust/error-handling-wg-announcement.md diff --git a/posts/inside-rust/2019-11-14-evaluating-github-actions.md b/posts/inside-rust/evaluating-github-actions.md similarity index 100% rename from posts/inside-rust/2019-11-14-evaluating-github-actions.md rename to posts/inside-rust/evaluating-github-actions.md diff --git a/posts/inside-rust/2020-11-11-exploring-pgo-for-the-rust-compiler.md b/posts/inside-rust/exploring-pgo-for-the-rust-compiler.md similarity index 100% rename from posts/inside-rust/2020-11-11-exploring-pgo-for-the-rust-compiler.md rename to posts/inside-rust/exploring-pgo-for-the-rust-compiler.md diff --git a/posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md b/posts/inside-rust/feb-lang-team-design-meetings.md similarity index 100% rename from posts/inside-rust/2020-01-24-feb-lang-team-design-meetings.md rename to posts/inside-rust/feb-lang-team-design-meetings.md diff --git a/posts/inside-rust/2022-02-17-feb-steering-cycle.md b/posts/inside-rust/feb-steering-cycle.md similarity index 100% rename from posts/inside-rust/2022-02-17-feb-steering-cycle.md rename to posts/inside-rust/feb-steering-cycle.md diff --git a/posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md b/posts/inside-rust/ffi-unwind-design-meeting.md similarity index 100% rename from posts/inside-rust/2020-02-27-ffi-unwind-design-meeting.md rename to posts/inside-rust/ffi-unwind-design-meeting.md diff --git a/posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md b/posts/inside-rust/ffi-unwind-longjmp.md similarity index 100% rename from posts/inside-rust/2021-01-26-ffi-unwind-longjmp.md rename to posts/inside-rust/ffi-unwind-longjmp.md diff --git a/posts/inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md b/posts/inside-rust/follow-up-on-the-moderation-issue.md similarity index 100% rename from posts/inside-rust/2021-12-17-follow-up-on-the-moderation-issue.md rename to posts/inside-rust/follow-up-on-the-moderation-issue.md diff --git a/posts/inside-rust/2019-12-23-formatting-the-compiler.md b/posts/inside-rust/formatting-the-compiler.md similarity index 100% rename from posts/inside-rust/2019-12-23-formatting-the-compiler.md rename to posts/inside-rust/formatting-the-compiler.md diff --git a/posts/inside-rust/2020-03-27-goodbye-docs-team.md b/posts/inside-rust/goodbye-docs-team.md similarity index 100% rename from posts/inside-rust/2020-03-27-goodbye-docs-team.md rename to posts/inside-rust/goodbye-docs-team.md diff --git a/posts/inside-rust/2019-11-13-goverance-wg-cfp.md b/posts/inside-rust/goverance-wg-cfp.md similarity index 100% rename from posts/inside-rust/2019-11-13-goverance-wg-cfp.md rename to posts/inside-rust/goverance-wg-cfp.md diff --git a/posts/inside-rust/2023-02-22-governance-reform-rfc.md b/posts/inside-rust/governance-reform-rfc.md similarity index 100% rename from posts/inside-rust/2023-02-22-governance-reform-rfc.md rename to posts/inside-rust/governance-reform-rfc.md diff --git a/posts/inside-rust/2022-05-19-governance-update.md b/posts/inside-rust/governance-update@0.md similarity index 100% rename from posts/inside-rust/2022-05-19-governance-update.md rename to posts/inside-rust/governance-update@0.md diff --git a/posts/inside-rust/2022-10-06-governance-update.md b/posts/inside-rust/governance-update@1.md similarity index 100% rename from posts/inside-rust/2022-10-06-governance-update.md rename to posts/inside-rust/governance-update@1.md diff --git a/posts/inside-rust/2019-12-03-governance-wg-meeting.md b/posts/inside-rust/governance-wg-meeting@0.md similarity index 100% rename from posts/inside-rust/2019-12-03-governance-wg-meeting.md rename to posts/inside-rust/governance-wg-meeting@0.md diff --git a/posts/inside-rust/2019-12-10-governance-wg-meeting.md b/posts/inside-rust/governance-wg-meeting@1.md similarity index 100% rename from posts/inside-rust/2019-12-10-governance-wg-meeting.md rename to posts/inside-rust/governance-wg-meeting@1.md diff --git a/posts/inside-rust/2019-12-20-governance-wg-meeting.md b/posts/inside-rust/governance-wg-meeting@2.md similarity index 100% rename from posts/inside-rust/2019-12-20-governance-wg-meeting.md rename to posts/inside-rust/governance-wg-meeting@2.md diff --git a/posts/inside-rust/2020-03-17-governance-wg.md b/posts/inside-rust/governance-wg.md similarity index 100% rename from posts/inside-rust/2020-03-17-governance-wg.md rename to posts/inside-rust/governance-wg.md diff --git a/posts/inside-rust/2019-12-04-ide-future.md b/posts/inside-rust/ide-future.md similarity index 100% rename from posts/inside-rust/2019-12-04-ide-future.md rename to posts/inside-rust/ide-future.md diff --git a/posts/inside-rust/2022-04-19-imposter-syndrome.md b/posts/inside-rust/imposter-syndrome.md similarity index 100% rename from posts/inside-rust/2022-04-19-imposter-syndrome.md rename to posts/inside-rust/imposter-syndrome.md diff --git a/posts/inside-rust/2021-11-25-in-response-to-the-moderation-team-resignation.md b/posts/inside-rust/in-response-to-the-moderation-team-resignation.md similarity index 100% rename from posts/inside-rust/2021-11-25-in-response-to-the-moderation-team-resignation.md rename to posts/inside-rust/in-response-to-the-moderation-team-resignation.md diff --git a/posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md b/posts/inside-rust/inferred-const-generic-arguments.md similarity index 100% rename from posts/inside-rust/2025-03-05-inferred-const-generic-arguments.md rename to posts/inside-rust/inferred-const-generic-arguments.md diff --git a/posts/inside-rust/2023-09-08-infra-team-leadership-change.md b/posts/inside-rust/infra-team-leadership-change.md similarity index 100% rename from posts/inside-rust/2023-09-08-infra-team-leadership-change.md rename to posts/inside-rust/infra-team-leadership-change.md diff --git a/posts/inside-rust/2019-10-15-infra-team-meeting.md b/posts/inside-rust/infra-team-meeting@0.md similarity index 100% rename from posts/inside-rust/2019-10-15-infra-team-meeting.md rename to posts/inside-rust/infra-team-meeting@0.md diff --git a/posts/inside-rust/2019-10-22-infra-team-meeting.md b/posts/inside-rust/infra-team-meeting@1.md similarity index 100% rename from posts/inside-rust/2019-10-22-infra-team-meeting.md rename to posts/inside-rust/infra-team-meeting@1.md diff --git a/posts/inside-rust/2019-10-29-infra-team-meeting.md b/posts/inside-rust/infra-team-meeting@2.md similarity index 100% rename from posts/inside-rust/2019-10-29-infra-team-meeting.md rename to posts/inside-rust/infra-team-meeting@2.md diff --git a/posts/inside-rust/2019-11-06-infra-team-meeting.md b/posts/inside-rust/infra-team-meeting@3.md similarity index 100% rename from posts/inside-rust/2019-11-06-infra-team-meeting.md rename to posts/inside-rust/infra-team-meeting@3.md diff --git a/posts/inside-rust/2019-11-18-infra-team-meeting.md b/posts/inside-rust/infra-team-meeting@4.md similarity index 100% rename from posts/inside-rust/2019-11-18-infra-team-meeting.md rename to posts/inside-rust/infra-team-meeting@4.md diff --git a/posts/inside-rust/2019-11-19-infra-team-meeting.md b/posts/inside-rust/infra-team-meeting@5.md similarity index 100% rename from posts/inside-rust/2019-11-19-infra-team-meeting.md rename to posts/inside-rust/infra-team-meeting@5.md diff --git a/posts/inside-rust/2019-12-11-infra-team-meeting.md b/posts/inside-rust/infra-team-meeting@6.md similarity index 100% rename from posts/inside-rust/2019-12-11-infra-team-meeting.md rename to posts/inside-rust/infra-team-meeting@6.md diff --git a/posts/inside-rust/2019-12-20-infra-team-meeting.md b/posts/inside-rust/infra-team-meeting@7.md similarity index 100% rename from posts/inside-rust/2019-12-20-infra-team-meeting.md rename to posts/inside-rust/infra-team-meeting@7.md diff --git a/posts/inside-rust/2020-02-25-intro-rustc-self-profile.md b/posts/inside-rust/intro-rustc-self-profile.md similarity index 100% rename from posts/inside-rust/2020-02-25-intro-rustc-self-profile.md rename to posts/inside-rust/intro-rustc-self-profile.md diff --git a/posts/inside-rust/2022-01-18-jan-steering-cycle.md b/posts/inside-rust/jan-steering-cycle.md similarity index 100% rename from posts/inside-rust/2022-01-18-jan-steering-cycle.md rename to posts/inside-rust/jan-steering-cycle.md diff --git a/posts/inside-rust/2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md b/posts/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md similarity index 100% rename from posts/inside-rust/2019-12-19-jasper-and-wiser-full-members-of-compiler-team.md rename to posts/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md diff --git a/posts/inside-rust/2021-04-20-jsha-rustdoc-member.md b/posts/inside-rust/jsha-rustdoc-member.md similarity index 100% rename from posts/inside-rust/2021-04-20-jsha-rustdoc-member.md rename to posts/inside-rust/jsha-rustdoc-member.md diff --git a/posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md b/posts/inside-rust/jtgeibel-crates-io-co-lead.md similarity index 100% rename from posts/inside-rust/2020-02-20-jtgeibel-crates-io-co-lead.md rename to posts/inside-rust/jtgeibel-crates-io-co-lead.md diff --git a/posts/inside-rust/2022-06-03-jun-steering-cycle.md b/posts/inside-rust/jun-steering-cycle.md similarity index 100% rename from posts/inside-rust/2022-06-03-jun-steering-cycle.md rename to posts/inside-rust/jun-steering-cycle.md diff --git a/posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md b/posts/inside-rust/keeping-secure-with-cargo-audit-0.18.md similarity index 100% rename from posts/inside-rust/2023-09-04-keeping-secure-with-cargo-audit-0.18.md rename to posts/inside-rust/keeping-secure-with-cargo-audit-0.18.md diff --git a/posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md b/posts/inside-rust/keyword-generics-progress-report-feb-2023.md similarity index 100% rename from posts/inside-rust/2023-02-23-keyword-generics-progress-report-feb-2023.md rename to posts/inside-rust/keyword-generics-progress-report-feb-2023.md diff --git a/posts/inside-rust/2022-07-27-keyword-generics.md b/posts/inside-rust/keyword-generics.md similarity index 100% rename from posts/inside-rust/2022-07-27-keyword-generics.md rename to posts/inside-rust/keyword-generics.md diff --git a/posts/inside-rust/2023-02-14-lang-advisors.md b/posts/inside-rust/lang-advisors.md similarity index 100% rename from posts/inside-rust/2023-02-14-lang-advisors.md rename to posts/inside-rust/lang-advisors.md diff --git a/posts/inside-rust/2022-04-04-lang-roadmap-2024.md b/posts/inside-rust/lang-roadmap-2024.md similarity index 100% rename from posts/inside-rust/2022-04-04-lang-roadmap-2024.md rename to posts/inside-rust/lang-roadmap-2024.md diff --git a/posts/inside-rust/2021-04-17-lang-team-apr-update.md b/posts/inside-rust/lang-team-apr-update.md similarity index 100% rename from posts/inside-rust/2021-04-17-lang-team-apr-update.md rename to posts/inside-rust/lang-team-apr-update.md diff --git a/posts/inside-rust/2022-04-06-lang-team-april-update.md b/posts/inside-rust/lang-team-april-update.md similarity index 100% rename from posts/inside-rust/2022-04-06-lang-team-april-update.md rename to posts/inside-rust/lang-team-april-update.md diff --git a/posts/inside-rust/2021-08-04-lang-team-aug-update.md b/posts/inside-rust/lang-team-aug-update.md similarity index 100% rename from posts/inside-rust/2021-08-04-lang-team-aug-update.md rename to posts/inside-rust/lang-team-aug-update.md diff --git a/posts/inside-rust/2024-02-13-lang-team-colead.md b/posts/inside-rust/lang-team-colead.md similarity index 100% rename from posts/inside-rust/2024-02-13-lang-team-colead.md rename to posts/inside-rust/lang-team-colead.md diff --git a/posts/inside-rust/2020-07-29-lang-team-design-meeting-min-const-generics.md b/posts/inside-rust/lang-team-design-meeting-min-const-generics.md similarity index 100% rename from posts/inside-rust/2020-07-29-lang-team-design-meeting-min-const-generics.md rename to posts/inside-rust/lang-team-design-meeting-min-const-generics.md diff --git a/posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md b/posts/inside-rust/lang-team-design-meeting-update.md similarity index 100% rename from posts/inside-rust/2020-07-08-lang-team-design-meeting-update.md rename to posts/inside-rust/lang-team-design-meeting-update.md diff --git a/posts/inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md b/posts/inside-rust/lang-team-design-meeting-wf-types.md similarity index 100% rename from posts/inside-rust/2020-07-29-lang-team-design-meeting-wf-types.md rename to posts/inside-rust/lang-team-design-meeting-wf-types.md diff --git a/posts/inside-rust/2020-01-10-lang-team-design-meetings.md b/posts/inside-rust/lang-team-design-meetings@0.md similarity index 100% rename from posts/inside-rust/2020-01-10-lang-team-design-meetings.md rename to posts/inside-rust/lang-team-design-meetings@0.md diff --git a/posts/inside-rust/2020-03-11-lang-team-design-meetings.md b/posts/inside-rust/lang-team-design-meetings@1.md similarity index 100% rename from posts/inside-rust/2020-03-11-lang-team-design-meetings.md rename to posts/inside-rust/lang-team-design-meetings@1.md diff --git a/posts/inside-rust/2020-04-10-lang-team-design-meetings.md b/posts/inside-rust/lang-team-design-meetings@2.md similarity index 100% rename from posts/inside-rust/2020-04-10-lang-team-design-meetings.md rename to posts/inside-rust/lang-team-design-meetings@2.md diff --git a/posts/inside-rust/2021-02-03-lang-team-feb-update.md b/posts/inside-rust/lang-team-feb-update@0.md similarity index 100% rename from posts/inside-rust/2021-02-03-lang-team-feb-update.md rename to posts/inside-rust/lang-team-feb-update@0.md diff --git a/posts/inside-rust/2022-02-18-lang-team-feb-update.md b/posts/inside-rust/lang-team-feb-update@1.md similarity index 100% rename from posts/inside-rust/2022-02-18-lang-team-feb-update.md rename to posts/inside-rust/lang-team-feb-update@1.md diff --git a/posts/inside-rust/2021-03-03-lang-team-mar-update.md b/posts/inside-rust/lang-team-mar-update@0.md similarity index 100% rename from posts/inside-rust/2021-03-03-lang-team-mar-update.md rename to posts/inside-rust/lang-team-mar-update@0.md diff --git a/posts/inside-rust/2022-03-09-lang-team-mar-update.md b/posts/inside-rust/lang-team-mar-update@1.md similarity index 100% rename from posts/inside-rust/2022-03-09-lang-team-mar-update.md rename to posts/inside-rust/lang-team-mar-update@1.md diff --git a/posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md b/posts/inside-rust/lang-team-meetings-rescheduled.md similarity index 100% rename from posts/inside-rust/2020-05-08-lang-team-meetings-rescheduled.md rename to posts/inside-rust/lang-team-meetings-rescheduled.md diff --git a/posts/inside-rust/2023-02-14-lang-team-membership-update.md b/posts/inside-rust/lang-team-membership-update.md similarity index 100% rename from posts/inside-rust/2023-02-14-lang-team-membership-update.md rename to posts/inside-rust/lang-team-membership-update.md diff --git a/posts/inside-rust/2020-07-09-lang-team-path-to-membership.md b/posts/inside-rust/lang-team-path-to-membership.md similarity index 100% rename from posts/inside-rust/2020-07-09-lang-team-path-to-membership.md rename to posts/inside-rust/lang-team-path-to-membership.md diff --git a/posts/inside-rust/2024-05-28-launching-pad-representative.md b/posts/inside-rust/launching-pad-representative.md similarity index 100% rename from posts/inside-rust/2024-05-28-launching-pad-representative.md rename to posts/inside-rust/launching-pad-representative.md diff --git a/posts/inside-rust/2023-08-29-leadership-council-membership-changes.md b/posts/inside-rust/leadership-council-membership-changes.md similarity index 100% rename from posts/inside-rust/2023-08-29-leadership-council-membership-changes.md rename to posts/inside-rust/leadership-council-membership-changes.md diff --git a/posts/inside-rust/2024-02-19-leadership-council-repr-selection.md b/posts/inside-rust/leadership-council-repr-selection@0.md similarity index 100% rename from posts/inside-rust/2024-02-19-leadership-council-repr-selection.md rename to posts/inside-rust/leadership-council-repr-selection@0.md diff --git a/posts/inside-rust/2024-04-01-leadership-council-repr-selection.md b/posts/inside-rust/leadership-council-repr-selection@1.md similarity index 100% rename from posts/inside-rust/2024-04-01-leadership-council-repr-selection.md rename to posts/inside-rust/leadership-council-repr-selection@1.md diff --git a/posts/inside-rust/2024-08-20-leadership-council-repr-selection.md b/posts/inside-rust/leadership-council-repr-selection@2.md similarity index 100% rename from posts/inside-rust/2024-08-20-leadership-council-repr-selection.md rename to posts/inside-rust/leadership-council-repr-selection@2.md diff --git a/posts/inside-rust/2024-09-27-leadership-council-repr-selection.md b/posts/inside-rust/leadership-council-repr-selection@3.md similarity index 100% rename from posts/inside-rust/2024-09-27-leadership-council-repr-selection.md rename to posts/inside-rust/leadership-council-repr-selection@3.md diff --git a/posts/inside-rust/2025-02-14-leadership-council-repr-selection.md b/posts/inside-rust/leadership-council-repr-selection@4.md similarity index 100% rename from posts/inside-rust/2025-02-14-leadership-council-repr-selection.md rename to posts/inside-rust/leadership-council-repr-selection@4.md diff --git a/posts/inside-rust/2023-07-25-leadership-council-update.md b/posts/inside-rust/leadership-council-update@0.md similarity index 100% rename from posts/inside-rust/2023-07-25-leadership-council-update.md rename to posts/inside-rust/leadership-council-update@0.md diff --git a/posts/inside-rust/2023-11-13-leadership-council-update.md b/posts/inside-rust/leadership-council-update@1.md similarity index 100% rename from posts/inside-rust/2023-11-13-leadership-council-update.md rename to posts/inside-rust/leadership-council-update@1.md diff --git a/posts/inside-rust/2024-02-13-leadership-council-update.md b/posts/inside-rust/leadership-council-update@2.md similarity index 100% rename from posts/inside-rust/2024-02-13-leadership-council-update.md rename to posts/inside-rust/leadership-council-update@2.md diff --git a/posts/inside-rust/2024-05-14-leadership-council-update.md b/posts/inside-rust/leadership-council-update@3.md similarity index 100% rename from posts/inside-rust/2024-05-14-leadership-council-update.md rename to posts/inside-rust/leadership-council-update@3.md diff --git a/posts/inside-rust/2024-09-06-leadership-council-update.md b/posts/inside-rust/leadership-council-update@4.md similarity index 100% rename from posts/inside-rust/2024-09-06-leadership-council-update.md rename to posts/inside-rust/leadership-council-update@4.md diff --git a/posts/inside-rust/2024-12-09-leadership-council-update.md b/posts/inside-rust/leadership-council-update@5.md similarity index 100% rename from posts/inside-rust/2024-12-09-leadership-council-update.md rename to posts/inside-rust/leadership-council-update@5.md diff --git a/posts/inside-rust/2023-08-25-leadership-initiatives.md b/posts/inside-rust/leadership-initiatives.md similarity index 100% rename from posts/inside-rust/2023-08-25-leadership-initiatives.md rename to posts/inside-rust/leadership-initiatives.md diff --git a/posts/inside-rust/2022-04-20-libs-aspirations.md b/posts/inside-rust/libs-aspirations.md similarity index 100% rename from posts/inside-rust/2022-04-20-libs-aspirations.md rename to posts/inside-rust/libs-aspirations.md diff --git a/posts/inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md b/posts/inside-rust/libs-contributors-the8472-kodraus.md similarity index 100% rename from posts/inside-rust/2021-11-15-libs-contributors-the8472-kodraus.md rename to posts/inside-rust/libs-contributors-the8472-kodraus.md diff --git a/posts/inside-rust/2022-04-18-libs-contributors.md b/posts/inside-rust/libs-contributors@0.md similarity index 100% rename from posts/inside-rust/2022-04-18-libs-contributors.md rename to posts/inside-rust/libs-contributors@0.md diff --git a/posts/inside-rust/2022-08-10-libs-contributors.md b/posts/inside-rust/libs-contributors@1.md similarity index 100% rename from posts/inside-rust/2022-08-10-libs-contributors.md rename to posts/inside-rust/libs-contributors@1.md diff --git a/posts/inside-rust/2022-11-29-libs-member.md b/posts/inside-rust/libs-member.md similarity index 100% rename from posts/inside-rust/2022-11-29-libs-member.md rename to posts/inside-rust/libs-member.md diff --git a/posts/inside-rust/2020-06-29-lto-improvements.md b/posts/inside-rust/lto-improvements.md similarity index 100% rename from posts/inside-rust/2020-06-29-lto-improvements.md rename to posts/inside-rust/lto-improvements.md diff --git a/posts/inside-rust/2022-03-11-mar-steering-cycle.md b/posts/inside-rust/mar-steering-cycle.md similarity index 100% rename from posts/inside-rust/2022-03-11-mar-steering-cycle.md rename to posts/inside-rust/mar-steering-cycle.md diff --git a/posts/inside-rust/2020-06-08-new-inline-asm.md b/posts/inside-rust/new-inline-asm.md similarity index 100% rename from posts/inside-rust/2020-06-08-new-inline-asm.md rename to posts/inside-rust/new-inline-asm.md diff --git a/posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md b/posts/inside-rust/opening-up-the-core-team-agenda.md similarity index 100% rename from posts/inside-rust/2020-07-27-opening-up-the-core-team-agenda.md rename to posts/inside-rust/opening-up-the-core-team-agenda.md diff --git a/posts/inside-rust/2020-02-27-pietro-joins-core-team.md b/posts/inside-rust/pietro-joins-core-team.md similarity index 100% rename from posts/inside-rust/2020-02-27-pietro-joins-core-team.md rename to posts/inside-rust/pietro-joins-core-team.md diff --git a/posts/inside-rust/2019-10-25-planning-meeting-update.md b/posts/inside-rust/planning-meeting-update.md similarity index 100% rename from posts/inside-rust/2019-10-25-planning-meeting-update.md rename to posts/inside-rust/planning-meeting-update.md diff --git a/posts/inside-rust/2021-03-04-planning-rust-2021.md b/posts/inside-rust/planning-rust-2021.md similarity index 100% rename from posts/inside-rust/2021-03-04-planning-rust-2021.md rename to posts/inside-rust/planning-rust-2021.md diff --git a/posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md b/posts/inside-rust/pnkfelix-compiler-team-co-lead.md similarity index 100% rename from posts/inside-rust/2019-10-24-pnkfelix-compiler-team-co-lead.md rename to posts/inside-rust/pnkfelix-compiler-team-co-lead.md diff --git a/posts/inside-rust/2023-10-06-polonius-update.md b/posts/inside-rust/polonius-update.md similarity index 100% rename from posts/inside-rust/2023-10-06-polonius-update.md rename to posts/inside-rust/polonius-update.md diff --git a/posts/inside-rust/2023-09-22-project-director-nominees.md b/posts/inside-rust/project-director-nominees.md similarity index 100% rename from posts/inside-rust/2023-09-22-project-director-nominees.md rename to posts/inside-rust/project-director-nominees.md diff --git a/posts/inside-rust/2024-12-17-project-director-update.md b/posts/inside-rust/project-director-update@0.md similarity index 100% rename from posts/inside-rust/2024-12-17-project-director-update.md rename to posts/inside-rust/project-director-update@0.md diff --git a/posts/inside-rust/2025-01-30-project-director-update.md b/posts/inside-rust/project-director-update@1.md similarity index 100% rename from posts/inside-rust/2025-01-30-project-director-update.md rename to posts/inside-rust/project-director-update@1.md diff --git a/posts/inside-rust/2025-02-24-project-director-update.md b/posts/inside-rust/project-director-update@2.md similarity index 100% rename from posts/inside-rust/2025-02-24-project-director-update.md rename to posts/inside-rust/project-director-update@2.md diff --git a/posts/inside-rust/2024-11-04-project-goals-2025h1-call-for-proposals.md b/posts/inside-rust/project-goals-2025h1-call-for-proposals.md similarity index 100% rename from posts/inside-rust/2024-11-04-project-goals-2025h1-call-for-proposals.md rename to posts/inside-rust/project-goals-2025h1-call-for-proposals.md diff --git a/posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md b/posts/inside-rust/recent-future-pattern-matching-improvements.md similarity index 100% rename from posts/inside-rust/2020-03-04-recent-future-pattern-matching-improvements.md rename to posts/inside-rust/recent-future-pattern-matching-improvements.md diff --git a/posts/inside-rust/2025-02-27-relnotes-interest-group.md b/posts/inside-rust/relnotes-interest-group.md similarity index 100% rename from posts/inside-rust/2025-02-27-relnotes-interest-group.md rename to posts/inside-rust/relnotes-interest-group.md diff --git a/posts/inside-rust/2020-03-13-rename-rustc-guide.md b/posts/inside-rust/rename-rustc-guide.md similarity index 100% rename from posts/inside-rust/2020-03-13-rename-rustc-guide.md rename to posts/inside-rust/rename-rustc-guide.md diff --git a/posts/inside-rust/2023-08-02-rotating-compiler-leads.md b/posts/inside-rust/rotating-compiler-leads.md similarity index 100% rename from posts/inside-rust/2023-08-02-rotating-compiler-leads.md rename to posts/inside-rust/rotating-compiler-leads.md diff --git a/posts/inside-rust/2024-09-26-rtn-call-for-testing.md b/posts/inside-rust/rtn-call-for-testing.md similarity index 100% rename from posts/inside-rust/2024-09-26-rtn-call-for-testing.md rename to posts/inside-rust/rtn-call-for-testing.md diff --git a/posts/inside-rust/2020-07-23-rust-ci-is-moving-to-github-actions.md b/posts/inside-rust/rust-ci-is-moving-to-github-actions.md similarity index 100% rename from posts/inside-rust/2020-07-23-rust-ci-is-moving-to-github-actions.md rename to posts/inside-rust/rust-ci-is-moving-to-github-actions.md diff --git a/posts/inside-rust/2024-05-09-rust-leads-summit.md b/posts/inside-rust/rust-leads-summit.md similarity index 100% rename from posts/inside-rust/2024-05-09-rust-leads-summit.md rename to posts/inside-rust/rust-leads-summit.md diff --git a/posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md b/posts/inside-rust/rustc-dev-guide-overview.md similarity index 100% rename from posts/inside-rust/2020-03-26-rustc-dev-guide-overview.md rename to posts/inside-rust/rustc-dev-guide-overview.md diff --git a/posts/inside-rust/2019-10-28-rustc-learning-working-group-introduction.md b/posts/inside-rust/rustc-learning-working-group-introduction.md similarity index 100% rename from posts/inside-rust/2019-10-28-rustc-learning-working-group-introduction.md rename to posts/inside-rust/rustc-learning-working-group-introduction.md diff --git a/posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md b/posts/inside-rust/rustdoc-performance-improvements.md similarity index 100% rename from posts/inside-rust/2021-01-15-rustdoc-performance-improvements.md rename to posts/inside-rust/rustdoc-performance-improvements.md diff --git a/posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md b/posts/inside-rust/rustup-1.24.0-incident-report.md similarity index 100% rename from posts/inside-rust/2021-04-28-rustup-1.24.0-incident-report.md rename to posts/inside-rust/rustup-1.24.0-incident-report.md diff --git a/posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md b/posts/inside-rust/shrinkmem-rustc-sprint.md similarity index 100% rename from posts/inside-rust/2021-02-15-shrinkmem-rustc-sprint.md rename to posts/inside-rust/shrinkmem-rustc-sprint.md diff --git a/posts/inside-rust/2020-11-12-source-based-code-coverage.md b/posts/inside-rust/source-based-code-coverage.md similarity index 100% rename from posts/inside-rust/2020-11-12-source-based-code-coverage.md rename to posts/inside-rust/source-based-code-coverage.md diff --git a/posts/inside-rust/2023-11-15-spec-vision.md b/posts/inside-rust/spec-vision.md similarity index 100% rename from posts/inside-rust/2023-11-15-spec-vision.md rename to posts/inside-rust/spec-vision.md diff --git a/posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md b/posts/inside-rust/stabilizing-async-fn-in-trait.md similarity index 100% rename from posts/inside-rust/2023-05-03-stabilizing-async-fn-in-trait.md rename to posts/inside-rust/stabilizing-async-fn-in-trait.md diff --git a/posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md b/posts/inside-rust/stabilizing-intra-doc-links.md similarity index 100% rename from posts/inside-rust/2020-09-17-stabilizing-intra-doc-links.md rename to posts/inside-rust/stabilizing-intra-doc-links.md diff --git a/posts/inside-rust/2022-06-21-survey-2021-report.md b/posts/inside-rust/survey-2021-report.md similarity index 100% rename from posts/inside-rust/2022-06-21-survey-2021-report.md rename to posts/inside-rust/survey-2021-report.md diff --git a/posts/inside-rust/2020-03-19-terminating-rust.md b/posts/inside-rust/terminating-rust.md similarity index 100% rename from posts/inside-rust/2020-03-19-terminating-rust.md rename to posts/inside-rust/terminating-rust.md diff --git a/posts/inside-rust/2025-01-10-test-infra-dec-2024.md b/posts/inside-rust/test-infra-dec-2024.md similarity index 100% rename from posts/inside-rust/2025-01-10-test-infra-dec-2024.md rename to posts/inside-rust/test-infra-dec-2024.md diff --git a/posts/inside-rust/2024-12-09-test-infra-nov-2024.md b/posts/inside-rust/test-infra-nov-2024.md similarity index 100% rename from posts/inside-rust/2024-12-09-test-infra-nov-2024.md rename to posts/inside-rust/test-infra-nov-2024.md diff --git a/posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md b/posts/inside-rust/test-infra-oct-2024-2.md similarity index 100% rename from posts/inside-rust/2024-11-04-test-infra-oct-2024-2.md rename to posts/inside-rust/test-infra-oct-2024-2.md diff --git a/posts/inside-rust/2024-10-10-test-infra-oct-2024.md b/posts/inside-rust/test-infra-oct-2024.md similarity index 100% rename from posts/inside-rust/2024-10-10-test-infra-oct-2024.md rename to posts/inside-rust/test-infra-oct-2024.md diff --git a/posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md b/posts/inside-rust/this-development-cycle-in-cargo-1-76.md similarity index 100% rename from posts/inside-rust/2024-01-03-this-development-cycle-in-cargo-1-76.md rename to posts/inside-rust/this-development-cycle-in-cargo-1-76.md diff --git a/posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md b/posts/inside-rust/this-development-cycle-in-cargo-1-77.md similarity index 100% rename from posts/inside-rust/2024-02-13-this-development-cycle-in-cargo-1-77.md rename to posts/inside-rust/this-development-cycle-in-cargo-1-77.md diff --git a/posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md b/posts/inside-rust/this-development-cycle-in-cargo-1.78.md similarity index 100% rename from posts/inside-rust/2024-03-26-this-development-cycle-in-cargo-1.78.md rename to posts/inside-rust/this-development-cycle-in-cargo-1.78.md diff --git a/posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md b/posts/inside-rust/this-development-cycle-in-cargo-1.79.md similarity index 100% rename from posts/inside-rust/2024-05-07-this-development-cycle-in-cargo-1.79.md rename to posts/inside-rust/this-development-cycle-in-cargo-1.79.md diff --git a/posts/inside-rust/2024-06-19-this-development-cycle-in-cargo-1.80.md b/posts/inside-rust/this-development-cycle-in-cargo-1.80.md similarity index 100% rename from posts/inside-rust/2024-06-19-this-development-cycle-in-cargo-1.80.md rename to posts/inside-rust/this-development-cycle-in-cargo-1.80.md diff --git a/posts/inside-rust/2024-08-15-this-development-cycle-in-cargo-1.81.md b/posts/inside-rust/this-development-cycle-in-cargo-1.81.md similarity index 100% rename from posts/inside-rust/2024-08-15-this-development-cycle-in-cargo-1.81.md rename to posts/inside-rust/this-development-cycle-in-cargo-1.81.md diff --git a/posts/inside-rust/2024-10-01-this-development-cycle-in-cargo-1.82.md b/posts/inside-rust/this-development-cycle-in-cargo-1.82.md similarity index 100% rename from posts/inside-rust/2024-10-01-this-development-cycle-in-cargo-1.82.md rename to posts/inside-rust/this-development-cycle-in-cargo-1.82.md diff --git a/posts/inside-rust/2024-10-31-this-development-cycle-in-cargo-1.83.md b/posts/inside-rust/this-development-cycle-in-cargo-1.83.md similarity index 100% rename from posts/inside-rust/2024-10-31-this-development-cycle-in-cargo-1.83.md rename to posts/inside-rust/this-development-cycle-in-cargo-1.83.md diff --git a/posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md b/posts/inside-rust/this-development-cycle-in-cargo-1.84.md similarity index 100% rename from posts/inside-rust/2024-12-13-this-development-cycle-in-cargo-1.84.md rename to posts/inside-rust/this-development-cycle-in-cargo-1.84.md diff --git a/posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md b/posts/inside-rust/this-development-cycle-in-cargo-1.85.md similarity index 100% rename from posts/inside-rust/2025-01-17-this-development-cycle-in-cargo-1.85.md rename to posts/inside-rust/this-development-cycle-in-cargo-1.85.md diff --git a/posts/inside-rust/2025-02-27-this-development-cycle-in-cargo-1.86.md b/posts/inside-rust/this-development-cycle-in-cargo-1.86.md similarity index 100% rename from posts/inside-rust/2025-02-27-this-development-cycle-in-cargo-1.86.md rename to posts/inside-rust/this-development-cycle-in-cargo-1.86.md diff --git a/posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md b/posts/inside-rust/trademark-policy-draft-feedback.md similarity index 100% rename from posts/inside-rust/2023-04-12-trademark-policy-draft-feedback.md rename to posts/inside-rust/trademark-policy-draft-feedback.md diff --git a/posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md b/posts/inside-rust/trait-system-refactor-initiative@0.md similarity index 100% rename from posts/inside-rust/2023-07-17-trait-system-refactor-initiative.md rename to posts/inside-rust/trait-system-refactor-initiative@0.md diff --git a/posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md b/posts/inside-rust/trait-system-refactor-initiative@1.md similarity index 100% rename from posts/inside-rust/2023-12-22-trait-system-refactor-initiative.md rename to posts/inside-rust/trait-system-refactor-initiative@1.md diff --git a/posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md b/posts/inside-rust/trait-system-refactor-initiative@2.md similarity index 100% rename from posts/inside-rust/2024-12-04-trait-system-refactor-initiative.md rename to posts/inside-rust/trait-system-refactor-initiative@2.md diff --git a/posts/inside-rust/2020-03-28-traits-sprint-1.md b/posts/inside-rust/traits-sprint-1.md similarity index 100% rename from posts/inside-rust/2020-03-28-traits-sprint-1.md rename to posts/inside-rust/traits-sprint-1.md diff --git a/posts/inside-rust/2020-05-18-traits-sprint-2.md b/posts/inside-rust/traits-sprint-2.md similarity index 100% rename from posts/inside-rust/2020-05-18-traits-sprint-2.md rename to posts/inside-rust/traits-sprint-2.md diff --git a/posts/inside-rust/2020-07-17-traits-sprint-3.md b/posts/inside-rust/traits-sprint-3.md similarity index 100% rename from posts/inside-rust/2020-07-17-traits-sprint-3.md rename to posts/inside-rust/traits-sprint-3.md diff --git a/posts/inside-rust/2020-03-13-twir-new-lead.md b/posts/inside-rust/twir-new-lead.md similarity index 100% rename from posts/inside-rust/2020-03-13-twir-new-lead.md rename to posts/inside-rust/twir-new-lead.md diff --git a/posts/inside-rust/2024-04-12-types-team-leadership.md b/posts/inside-rust/types-team-leadership.md similarity index 100% rename from posts/inside-rust/2024-04-12-types-team-leadership.md rename to posts/inside-rust/types-team-leadership.md diff --git a/posts/inside-rust/2020-04-10-upcoming-compiler-team-design-meeting.md b/posts/inside-rust/upcoming-compiler-team-design-meeting@0.md similarity index 100% rename from posts/inside-rust/2020-04-10-upcoming-compiler-team-design-meeting.md rename to posts/inside-rust/upcoming-compiler-team-design-meeting@0.md diff --git a/posts/inside-rust/2020-06-08-upcoming-compiler-team-design-meeting.md b/posts/inside-rust/upcoming-compiler-team-design-meeting@1.md similarity index 100% rename from posts/inside-rust/2020-06-08-upcoming-compiler-team-design-meeting.md rename to posts/inside-rust/upcoming-compiler-team-design-meeting@1.md diff --git a/posts/inside-rust/2019-11-22-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/upcoming-compiler-team-design-meetings@0.md similarity index 100% rename from posts/inside-rust/2019-11-22-upcoming-compiler-team-design-meetings.md rename to posts/inside-rust/upcoming-compiler-team-design-meetings@0.md diff --git a/posts/inside-rust/2020-01-24-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/upcoming-compiler-team-design-meetings@1.md similarity index 100% rename from posts/inside-rust/2020-01-24-upcoming-compiler-team-design-meetings.md rename to posts/inside-rust/upcoming-compiler-team-design-meetings@1.md diff --git a/posts/inside-rust/2020-02-14-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/upcoming-compiler-team-design-meetings@2.md similarity index 100% rename from posts/inside-rust/2020-02-14-upcoming-compiler-team-design-meetings.md rename to posts/inside-rust/upcoming-compiler-team-design-meetings@2.md diff --git a/posts/inside-rust/2020-03-13-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/upcoming-compiler-team-design-meetings@3.md similarity index 100% rename from posts/inside-rust/2020-03-13-upcoming-compiler-team-design-meetings.md rename to posts/inside-rust/upcoming-compiler-team-design-meetings@3.md diff --git a/posts/inside-rust/2020-08-28-upcoming-compiler-team-design-meetings.md b/posts/inside-rust/upcoming-compiler-team-design-meetings@4.md similarity index 100% rename from posts/inside-rust/2020-08-28-upcoming-compiler-team-design-meetings.md rename to posts/inside-rust/upcoming-compiler-team-design-meetings@4.md diff --git a/posts/inside-rust/2020-04-07-update-on-the-github-actions-evaluation.md b/posts/inside-rust/update-on-the-github-actions-evaluation.md similarity index 100% rename from posts/inside-rust/2020-04-07-update-on-the-github-actions-evaluation.md rename to posts/inside-rust/update-on-the-github-actions-evaluation.md diff --git a/posts/inside-rust/2020-05-26-website-retrospective.md b/posts/inside-rust/website-retrospective.md similarity index 100% rename from posts/inside-rust/2020-05-26-website-retrospective.md rename to posts/inside-rust/website-retrospective.md diff --git a/posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md b/posts/inside-rust/welcome-tc-to-the-lang-team.md similarity index 100% rename from posts/inside-rust/2024-08-01-welcome-tc-to-the-lang-team.md rename to posts/inside-rust/welcome-tc-to-the-lang-team.md diff --git a/posts/inside-rust/2019-12-20-wg-learning-update.md b/posts/inside-rust/wg-learning-update.md similarity index 100% rename from posts/inside-rust/2019-12-20-wg-learning-update.md rename to posts/inside-rust/wg-learning-update.md diff --git a/posts/inside-rust/2020-06-09-windows-notification-group.md b/posts/inside-rust/windows-notification-group.md similarity index 100% rename from posts/inside-rust/2020-06-09-windows-notification-group.md rename to posts/inside-rust/windows-notification-group.md diff --git a/posts/2023-06-20-introducing-leadership-council.md b/posts/introducing-leadership-council.md similarity index 100% rename from posts/2023-06-20-introducing-leadership-council.md rename to posts/introducing-leadership-council.md diff --git a/posts/2017-03-02-lang-ergonomics.md b/posts/lang-ergonomics.md similarity index 100% rename from posts/2017-03-02-lang-ergonomics.md rename to posts/lang-ergonomics.md diff --git a/posts/2020-08-18-laying-the-foundation-for-rusts-future.md b/posts/laying-the-foundation-for-rusts-future.md similarity index 100% rename from posts/2020-08-18-laying-the-foundation-for-rusts-future.md rename to posts/laying-the-foundation-for-rusts-future.md diff --git a/posts/2017-05-05-libz-blitz.md b/posts/libz-blitz.md similarity index 100% rename from posts/2017-05-05-libz-blitz.md rename to posts/libz-blitz.md diff --git a/posts/2020-12-11-lock-poisoning-survey.md b/posts/lock-poisoning-survey.md similarity index 100% rename from posts/2020-12-11-lock-poisoning-survey.md rename to posts/lock-poisoning-survey.md diff --git a/posts/2022-05-10-malicious-crate-rustdecimal.md b/posts/malicious-crate-rustdecimal.md similarity index 100% rename from posts/2022-05-10-malicious-crate-rustdecimal.md rename to posts/malicious-crate-rustdecimal.md diff --git a/posts/2021-01-04-mdbook-security-advisory.md b/posts/mdbook-security-advisory.md similarity index 100% rename from posts/2021-01-04-mdbook-security-advisory.md rename to posts/mdbook-security-advisory.md diff --git a/posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md b/posts/new-years-rust-a-call-for-community-blogposts.md similarity index 100% rename from posts/2018-01-03-new-years-rust-a-call-for-community-blogposts.md rename to posts/new-years-rust-a-call-for-community-blogposts.md diff --git a/posts/2022-08-05-nll-by-default.md b/posts/nll-by-default.md similarity index 100% rename from posts/2022-08-05-nll-by-default.md rename to posts/nll-by-default.md diff --git a/posts/2019-11-01-nll-hard-errors.md b/posts/nll-hard-errors.md similarity index 100% rename from posts/2019-11-01-nll-hard-errors.md rename to posts/nll-hard-errors.md diff --git a/posts/2023-11-09-parallel-rustc.md b/posts/parallel-rustc.md similarity index 100% rename from posts/2023-11-09-parallel-rustc.md rename to posts/parallel-rustc.md diff --git a/posts/2024-12-16-project-goals-nov-update.md b/posts/project-goals-nov-update.md similarity index 100% rename from posts/2024-12-16-project-goals-nov-update.md rename to posts/project-goals-nov-update.md diff --git a/posts/2024-10-31-project-goals-oct-update.md b/posts/project-goals-oct-update.md similarity index 100% rename from posts/2024-10-31-project-goals-oct-update.md rename to posts/project-goals-oct-update.md diff --git a/posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md b/posts/reducing-support-for-32-bit-apple-targets.md similarity index 100% rename from posts/2020-01-03-reducing-support-for-32-bit-apple-targets.md rename to posts/reducing-support-for-32-bit-apple-targets.md diff --git a/posts/2023-07-05-regex-1.9.md b/posts/regex-1.9.md similarity index 100% rename from posts/2023-07-05-regex-1.9.md rename to posts/regex-1.9.md diff --git a/posts/2020-10-20-regression-labels.md b/posts/regression-labels.md similarity index 100% rename from posts/2020-10-20-regression-labels.md rename to posts/regression-labels.md diff --git a/posts/2017-02-06-roadmap.md b/posts/roadmap@0.md similarity index 100% rename from posts/2017-02-06-roadmap.md rename to posts/roadmap@0.md diff --git a/posts/2018-03-12-roadmap.md b/posts/roadmap@1.md similarity index 100% rename from posts/2018-03-12-roadmap.md rename to posts/roadmap@1.md diff --git a/posts/2019-04-23-roadmap.md b/posts/roadmap@2.md similarity index 100% rename from posts/2019-04-23-roadmap.md rename to posts/roadmap@2.md diff --git a/posts/2025-01-22-rust-2024-beta.md b/posts/rust-2024-beta.md similarity index 100% rename from posts/2025-01-22-rust-2024-beta.md rename to posts/rust-2024-beta.md diff --git a/posts/2022-02-21-rust-analyzer-joins-rust-org.md b/posts/rust-analyzer-joins-rust-org.md similarity index 100% rename from posts/2022-02-21-rust-analyzer-joins-rust-org.md rename to posts/rust-analyzer-joins-rust-org.md diff --git a/posts/2016-05-16-rust-at-one-year.md b/posts/rust-at-one-year.md similarity index 100% rename from posts/2016-05-16-rust-at-one-year.md rename to posts/rust-at-one-year.md diff --git a/posts/2017-05-15-rust-at-two-years.md b/posts/rust-at-two-years.md similarity index 100% rename from posts/2017-05-15-rust-at-two-years.md rename to posts/rust-at-two-years.md diff --git a/posts/2017-12-21-rust-in-2017.md b/posts/rust-in-2017.md similarity index 100% rename from posts/2017-12-21-rust-in-2017.md rename to posts/rust-in-2017.md diff --git a/posts/2020-12-16-rust-survey-2020.md b/posts/rust-survey-2020.md similarity index 100% rename from posts/2020-12-16-rust-survey-2020.md rename to posts/rust-survey-2020.md diff --git a/posts/2022-06-28-rust-unconference.md b/posts/rust-unconference.md similarity index 100% rename from posts/2022-06-28-rust-unconference.md rename to posts/rust-unconference.md diff --git a/posts/2020-03-10-rustconf-cfp.md b/posts/rustconf-cfp.md similarity index 100% rename from posts/2020-03-10-rustconf-cfp.md rename to posts/rustconf-cfp.md diff --git a/posts/2023-07-01-rustfmt-supports-let-else-statements.md b/posts/rustfmt-supports-let-else-statements.md similarity index 100% rename from posts/2023-07-01-rustfmt-supports-let-else-statements.md rename to posts/rustfmt-supports-let-else-statements.md diff --git a/posts/2016-05-13-rustup.md b/posts/rustup.md similarity index 100% rename from posts/2016-05-13-rustup.md rename to posts/rustup.md diff --git a/posts/2018-07-06-security-advisory-for-rustdoc.md b/posts/security-advisory-for-rustdoc.md similarity index 100% rename from posts/2018-07-06-security-advisory-for-rustdoc.md rename to posts/security-advisory-for-rustdoc.md diff --git a/posts/2021-05-15-six-years-of-rust.md b/posts/six-years-of-rust.md similarity index 100% rename from posts/2021-05-15-six-years-of-rust.md rename to posts/six-years-of-rust.md diff --git a/posts/2022-06-22-sparse-registry-testing.md b/posts/sparse-registry-testing.md similarity index 100% rename from posts/2022-06-22-sparse-registry-testing.md rename to posts/sparse-registry-testing.md diff --git a/posts/2019-12-03-survey-launch.md b/posts/survey-launch@0.md similarity index 100% rename from posts/2019-12-03-survey-launch.md rename to posts/survey-launch@0.md diff --git a/posts/2020-09-10-survey-launch.md b/posts/survey-launch@1.md similarity index 100% rename from posts/2020-09-10-survey-launch.md rename to posts/survey-launch@1.md diff --git a/posts/2021-12-08-survey-launch.md b/posts/survey-launch@2.md similarity index 100% rename from posts/2021-12-08-survey-launch.md rename to posts/survey-launch@2.md diff --git a/posts/2022-12-05-survey-launch.md b/posts/survey-launch@3.md similarity index 100% rename from posts/2022-12-05-survey-launch.md rename to posts/survey-launch@3.md diff --git a/posts/2023-12-18-survey-launch.md b/posts/survey-launch@4.md similarity index 100% rename from posts/2023-12-18-survey-launch.md rename to posts/survey-launch@4.md diff --git a/posts/2016-05-09-survey.md b/posts/survey@0.md similarity index 100% rename from posts/2016-05-09-survey.md rename to posts/survey@0.md diff --git a/posts/2017-05-03-survey.md b/posts/survey@1.md similarity index 100% rename from posts/2017-05-03-survey.md rename to posts/survey@1.md diff --git a/posts/2018-08-08-survey.md b/posts/survey@2.md similarity index 100% rename from posts/2018-08-08-survey.md rename to posts/survey@2.md diff --git a/posts/2020-12-07-the-foundation-conversation.md b/posts/the-foundation-conversation.md similarity index 100% rename from posts/2020-12-07-the-foundation-conversation.md rename to posts/the-foundation-conversation.md diff --git a/posts/2024-11-06-trademark-update.md b/posts/trademark-update.md similarity index 100% rename from posts/2024-11-06-trademark-update.md rename to posts/trademark-update.md diff --git a/posts/2015-05-11-traits.md b/posts/traits.md similarity index 100% rename from posts/2015-05-11-traits.md rename to posts/traits.md diff --git a/posts/2023-01-20-types-announcement.md b/posts/types-announcement.md similarity index 100% rename from posts/2023-01-20-types-announcement.md rename to posts/types-announcement.md diff --git a/posts/2024-06-26-types-team-update.md b/posts/types-team-update.md similarity index 100% rename from posts/2024-06-26-types-team-update.md rename to posts/types-team-update.md diff --git a/posts/2019-09-18-upcoming-docsrs-changes.md b/posts/upcoming-docsrs-changes.md similarity index 100% rename from posts/2019-09-18-upcoming-docsrs-changes.md rename to posts/upcoming-docsrs-changes.md diff --git a/posts/2024-04-09-updates-to-rusts-wasi-targets.md b/posts/updates-to-rusts-wasi-targets.md similarity index 100% rename from posts/2024-04-09-updates-to-rusts-wasi-targets.md rename to posts/updates-to-rusts-wasi-targets.md diff --git a/posts/2024-11-26-wasip2-tier-2.md b/posts/wasip2-tier-2.md similarity index 100% rename from posts/2024-11-26-wasip2-tier-2.md rename to posts/wasip2-tier-2.md diff --git a/posts/2024-09-24-webassembly-targets-change-in-default-target-features.md b/posts/webassembly-targets-change-in-default-target-features.md similarity index 100% rename from posts/2024-09-24-webassembly-targets-change-in-default-target-features.md rename to posts/webassembly-targets-change-in-default-target-features.md diff --git a/posts/2020-09-14-wg-prio-call-for-contributors.md b/posts/wg-prio-call-for-contributors.md similarity index 100% rename from posts/2020-09-14-wg-prio-call-for-contributors.md rename to posts/wg-prio-call-for-contributors.md diff --git a/posts/2018-07-27-what-is-rust-2018.md b/posts/what-is-rust-2018.md similarity index 100% rename from posts/2018-07-27-what-is-rust-2018.md rename to posts/what-is-rust-2018.md From 415fac6e25f4ef986ed6aba43edc9ae5047d2cb0 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 21:52:22 +0100 Subject: [PATCH 0832/1024] Remove name disambiguator from post urls --- src/posts.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/posts.rs b/src/posts.rs index 39845dab2..0f27a8b6f 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -31,7 +31,17 @@ pub struct Post { impl Post { pub(crate) fn open(path: &Path, manifest: &Manifest) -> eyre::Result { // yeah this might blow up, but it won't - let filename = path.file_name().unwrap().to_str().unwrap().into(); + let filename = { + let filename = path.file_name().unwrap().to_str().unwrap().to_string(); + // '@' is used as a disambiguator between file names that were + // previously identical except for the date prefix (which was + // removed). The URL doesn't need the disambiguator, because it has + // the date in it. Also, we must remove it to preserve permalinks. + match filename.split_once('@') { + Some((pre, _)) => format!("{pre}.md"), + None => filename, + } + }; let contents = std::fs::read_to_string(path)?; From c60dbfab3aee679051e91fbf529f1ed52e049139 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 21:59:32 +0100 Subject: [PATCH 0833/1024] Prevent snapshots from picking up old junk If a previous run of the static site generator created new files, these will be left lying around, even if subsequent runs wouldn't generate that file anymore. This will lead to either a false negative or a false positive. - The file shouldn't be generated and isn't. Tests incorrectly fail because it's still there. - The file should be generated but isn't. Tests incorrectly pass because it's still there. --- src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib.rs b/src/lib.rs index 8415a4261..e12e8ebe5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -305,6 +305,7 @@ pub fn main() -> eyre::Result<()> { #[test] fn snapshot() { + std::fs::remove_dir_all(concat!(env!("CARGO_MANIFEST_DIR"), "/site")).unwrap(); main().unwrap(); let timestamped_files = ["releases.json", "feed.xml"]; let inexplicably_non_deterministic_files = ["images/2023-08-rust-survey-2022/experiences.png"]; From ff9ca6565b530efdc5ca0f759a9ce640111367aa Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 8 Mar 2025 22:34:41 +0100 Subject: [PATCH 0834/1024] Update front matter example in readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 3efaad88a..7e4baf291 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ When writing a new blog post, keep in mind the file headers: ```md +++ layout = "post" +date = 2015-03-15 title = "Title of the blog post" author = "Blog post author (or on behalf of which team)" release = true # (to be only used for official posts about Rust releases announcements) From 401c90fecb6cd68ecd99cc7b0ff911d182e98241 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sun, 9 Mar 2025 03:35:57 +0100 Subject: [PATCH 0835/1024] Link to stable docs in Rust 1.82 announcement --- posts/Rust-1.82.0.md | 138 +++++++++++++++++++++---------------------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/posts/Rust-1.82.0.md b/posts/Rust-1.82.0.md index 7d3703657..10e6ccb67 100644 --- a/posts/Rust-1.82.0.md +++ b/posts/Rust-1.82.0.md @@ -14,7 +14,7 @@ If you have a previous version of Rust installed via `rustup`, you can get 1.82. $ rustup update stable ``` -If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.82.0](https://doc.rust-lang.org/nightly/releases.html#version-1820-2024-10-17). +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.82.0](https://doc.rust-lang.org/stable/releases.html#version-1820-2024-10-17). If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! @@ -22,7 +22,7 @@ If you'd like to help us out by testing future releases, you might consider upda ### `cargo info` -Cargo now has an [`info` subcommand](https://doc.rust-lang.org/nightly/cargo/commands/cargo-info.html) to display information about a package in the registry, fulfilling a [long standing request](https://github.com/rust-lang/cargo/issues/948) just shy of its tenth anniversary! Several third-party extensions like this have been written over the years, and this implementation was developed as [cargo-information](https://crates.io/crates/cargo-information) before merging into Cargo itself. +Cargo now has an [`info` subcommand](https://doc.rust-lang.org/stable/cargo/commands/cargo-info.html) to display information about a package in the registry, fulfilling a [long standing request](https://github.com/rust-lang/cargo/issues/948) just shy of its tenth anniversary! Several third-party extensions like this have been written over the years, and this implementation was developed as [cargo-information](https://crates.io/crates/cargo-information) before merging into Cargo itself. For example, here's what you could see for `cargo info cc`: @@ -56,7 +56,7 @@ The Rust target `aarch64-apple-darwin` for macOS on 64-bit ARM (M1-family or lat [Mac Catalyst](https://developer.apple.com/mac-catalyst/) is a technology by Apple that allows running iOS applications natively on the Mac. This is especially useful when testing iOS-specific code, as `cargo test --target=aarch64-apple-ios-macabi --target=x86_64-apple-ios-macabi` mostly just works (in contrast to the usual iOS targets, which need to be bundled using external tooling before they can be run on a native device or in the simulator). -[The targets](https://doc.rust-lang.org/nightly/rustc/platform-support/apple-ios-macabi.html) are now tier 2, and can be downloaded with `rustup target add aarch64-apple-ios-macabi x86_64-apple-ios-macabi`, so now is an excellent time to update your CI pipeline to test that your code also runs in iOS-like environments. +[The targets](https://doc.rust-lang.org/stable/rustc/platform-support/apple-ios-macabi.html) are now tier 2, and can be downloaded with `rustup target add aarch64-apple-ios-macabi x86_64-apple-ios-macabi`, so now is an excellent time to update your CI pipeline to test that your code also runs in iOS-like environments. ### Precise capturing `use<..>` syntax @@ -133,7 +133,7 @@ There are some limitations to what we're stabilizing today. The `use<..>` synta Note that in Rust 2024, the examples above will "just work" without needing `use<..>` syntax (or any tricks). This is because in the new edition, opaque types will automatically capture all lifetime parameters in scope. This is a better default, and we've seen a lot of evidence about how this cleans up code. In Rust 2024, `use<..>` syntax will serve as an important way of opting-out of that default. -For more details about `use<..>` syntax, capturing, and how this applies to Rust 2024, see the ["RPIT lifetime capture rules"](https://doc.rust-lang.org/nightly/edition-guide/rust-2024/rpit-lifetime-capture.html) chapter of the edition guide. For details about the overall direction, see our recent blog post, ["Changes to `impl Trait` in Rust 2024"](https://blog.rust-lang.org/2024/09/05/impl-trait-capture-rules.html). +For more details about `use<..>` syntax, capturing, and how this applies to Rust 2024, see the ["RPIT lifetime capture rules"](https://doc.rust-lang.org/stable/edition-guide/rust-2024/rpit-lifetime-capture.html) chapter of the edition guide. For details about the overall direction, see our recent blog post, ["Changes to `impl Trait` in Rust 2024"](https://blog.rust-lang.org/2024/09/05/impl-trait-capture-rules.html). ### Native syntax for creating a raw pointer @@ -189,7 +189,7 @@ One benefit of this is that items within an `unsafe extern` block can be marked In future releases, we'll be encouraging the use of `unsafe extern` with lints. Starting in Rust 2024, using `unsafe extern` will be required. -For further details, see [RFC 3484](https://github.com/rust-lang/rfcs/blob/master/text/3484-unsafe-extern-blocks.md) and the ["Unsafe extern blocks"](https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-extern.html) chapter of the edition guide. +For further details, see [RFC 3484](https://github.com/rust-lang/rfcs/blob/master/text/3484-unsafe-extern-blocks.md) and the ["Unsafe extern blocks"](https://doc.rust-lang.org/stable/edition-guide/rust-2024/unsafe-extern.html) chapter of the edition guide. ### Unsafe attributes @@ -207,7 +207,7 @@ This affects the following attributes: - `link_section` - `export_name` -For further details, see the ["Unsafe attributes"](https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-attributes.html) chapter of the edition guide. +For further details, see the ["Unsafe attributes"](https://doc.rust-lang.org/stable/edition-guide/rust-2024/unsafe-attributes.html) chapter of the edition guide. ### Omitting empty types in pattern matching @@ -333,36 +333,36 @@ A future version of Rust is expected to generalize this to other expressions whi ### Stabilized APIs - [`std::thread::Builder::spawn_unchecked`](https://doc.rust-lang.org/stable/std/thread/struct.Builder.html#method.spawn_unchecked) -- [`std::str::CharIndices::offset`](https://doc.rust-lang.org/nightly/std/str/struct.CharIndices.html#method.offset) -- [`std::option::Option::is_none_or`](https://doc.rust-lang.org/nightly/std/option/enum.Option.html#method.is_none_or) -- [`[T]::is_sorted`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted) -- [`[T]::is_sorted_by`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted_by) -- [`[T]::is_sorted_by_key`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.is_sorted_by_key) -- [`Iterator::is_sorted`](https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted) -- [`Iterator::is_sorted_by`](https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted_by) -- [`Iterator::is_sorted_by_key`](https://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.is_sorted_by_key) -- [`std::future::Ready::into_inner`](https://doc.rust-lang.org/nightly/std/future/struct.Ready.html#method.into_inner) -- [`std::iter::repeat_n`](https://doc.rust-lang.org/nightly/std/iter/fn.repeat_n.html) -- [`impl DoubleEndedIterator for Take>`](https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-DoubleEndedIterator-for-Take%3CRepeat%3CT%3E%3E) -- [`impl ExactSizeIterator for Take>`](https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeat%3CT%3E%3E) -- [`impl ExactSizeIterator for Take>`](https://doc.rust-lang.org/nightly/std/iter/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeatWith%3CF%3E%3E) -- [`impl Default for std::collections::binary_heap::Iter`](https://doc.rust-lang.org/nightly/std/collections/binary_heap/struct.Iter.html#impl-Default-for-Iter%3C'_,+T%3E) -- [`impl Default for std::collections::btree_map::RangeMut`](https://doc.rust-lang.org/nightly/std/collections/btree_map/struct.RangeMut.html#impl-Default-for-RangeMut%3C'_,+K,+V%3E) -- [`impl Default for std::collections::btree_map::ValuesMut`](https://doc.rust-lang.org/nightly/std/collections/btree_map/struct.ValuesMut.html#impl-Default-for-ValuesMut%3C'_,+K,+V%3E) -- [`impl Default for std::collections::vec_deque::Iter`](https://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.Iter.html#impl-Default-for-Iter%3C'_,+T%3E) -- [`impl Default for std::collections::vec_deque::IterMut`](https://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.IterMut.html#impl-Default-for-IterMut%3C'_,+T%3E) -- [`Rc::new_uninit`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.new_uninit) -- [`Rc>::assume_init`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.assume_init) -- [`Rc<[T]>::new_uninit_slice`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.new_uninit_slice) -- [`Rc<[MaybeUninit]>::assume_init`](https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.assume_init-1) -- [`Arc::new_uninit`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.new_uninit) -- [`Arc>::assume_init`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.assume_init) -- [`Arc<[T]>::new_uninit_slice`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.new_uninit_slice) -- [`Arc<[MaybeUninit]>::assume_init`](https://doc.rust-lang.org/nightly/std/sync/struct.Arc.html#method.assume_init-1) -- [`Box::new_uninit`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.new_uninit) -- [`Box>::assume_init`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.assume_init) -- [`Box<[T]>::new_uninit_slice`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.new_uninit_slice) -- [`Box<[MaybeUninit]>::assume_init`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.assume_init-1) +- [`std::str::CharIndices::offset`](https://doc.rust-lang.org/stable/std/str/struct.CharIndices.html#method.offset) +- [`std::option::Option::is_none_or`](https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.is_none_or) +- [`[T]::is_sorted`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.is_sorted) +- [`[T]::is_sorted_by`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.is_sorted_by) +- [`[T]::is_sorted_by_key`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.is_sorted_by_key) +- [`Iterator::is_sorted`](https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.is_sorted) +- [`Iterator::is_sorted_by`](https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.is_sorted_by) +- [`Iterator::is_sorted_by_key`](https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.is_sorted_by_key) +- [`std::future::Ready::into_inner`](https://doc.rust-lang.org/stable/std/future/struct.Ready.html#method.into_inner) +- [`std::iter::repeat_n`](https://doc.rust-lang.org/stable/std/iter/fn.repeat_n.html) +- [`impl DoubleEndedIterator for Take>`](https://doc.rust-lang.org/stable/std/iter/struct.Take.html#impl-DoubleEndedIterator-for-Take%3CRepeat%3CT%3E%3E) +- [`impl ExactSizeIterator for Take>`](https://doc.rust-lang.org/stable/std/iter/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeat%3CT%3E%3E) +- [`impl ExactSizeIterator for Take>`](https://doc.rust-lang.org/stable/std/iter/struct.Take.html#impl-ExactSizeIterator-for-Take%3CRepeatWith%3CF%3E%3E) +- [`impl Default for std::collections::binary_heap::Iter`](https://doc.rust-lang.org/stable/std/collections/binary_heap/struct.Iter.html#impl-Default-for-Iter%3C'_,+T%3E) +- [`impl Default for std::collections::btree_map::RangeMut`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.RangeMut.html#impl-Default-for-RangeMut%3C'_,+K,+V%3E) +- [`impl Default for std::collections::btree_map::ValuesMut`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.ValuesMut.html#impl-Default-for-ValuesMut%3C'_,+K,+V%3E) +- [`impl Default for std::collections::vec_deque::Iter`](https://doc.rust-lang.org/stable/std/collections/vec_deque/struct.Iter.html#impl-Default-for-Iter%3C'_,+T%3E) +- [`impl Default for std::collections::vec_deque::IterMut`](https://doc.rust-lang.org/stable/std/collections/vec_deque/struct.IterMut.html#impl-Default-for-IterMut%3C'_,+T%3E) +- [`Rc::new_uninit`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.new_uninit) +- [`Rc>::assume_init`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.assume_init) +- [`Rc<[T]>::new_uninit_slice`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.new_uninit_slice) +- [`Rc<[MaybeUninit]>::assume_init`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.assume_init-1) +- [`Arc::new_uninit`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.new_uninit) +- [`Arc>::assume_init`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.assume_init) +- [`Arc<[T]>::new_uninit_slice`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.new_uninit_slice) +- [`Arc<[MaybeUninit]>::assume_init`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.assume_init-1) +- [`Box::new_uninit`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.new_uninit) +- [`Box>::assume_init`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.assume_init) +- [`Box<[T]>::new_uninit_slice`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.new_uninit_slice) +- [`Box<[MaybeUninit]>::assume_init`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.assume_init-1) - [`core::arch::x86_64::_bextri_u64`](https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bextri_u64.html) - [`core::arch::x86_64::_bextri_u32`](https://doc.rust-lang.org/stable/core/arch/x86_64/fn._bextri_u32.html) - [`core::arch::x86::_mm_broadcastsi128_si256`](https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_broadcastsi128_si256.html) @@ -375,42 +375,42 @@ A future version of Rust is expected to generalize this to other expressions whi - [`core::arch::x86::_mm_storeu_si64`](https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_storeu_si64.html) - [`core::arch::x86::_mm_loadu_si16`](https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_loadu_si16.html) - [`core::arch::x86::_mm_loadu_si32`](https://doc.rust-lang.org/stable/core/arch/x86/fn._mm_loadu_si32.html) -- [`core::arch::wasm32::u8x16_relaxed_swizzle`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u8x16_relaxed_swizzle.html) -- [`core::arch::wasm32::i8x16_relaxed_swizzle`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i8x16_relaxed_swizzle.html) -- [`core::arch::wasm32::i32x4_relaxed_trunc_f32x4`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4_relaxed_trunc_f32x4.html) -- [`core::arch::wasm32::u32x4_relaxed_trunc_f32x4`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4_relaxed_trunc_f32x4.html) -- [`core::arch::wasm32::i32x4_relaxed_trunc_f64x2_zero`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4_relaxed_trunc_f64x2_zero.html) -- [`core::arch::wasm32::u32x4_relaxed_trunc_f64x2_zero`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4_relaxed_trunc_f64x2_zero.html) -- [`core::arch::wasm32::f32x4_relaxed_madd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4_relaxed_madd.html) -- [`core::arch::wasm32::f32x4_relaxed_nmadd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4_relaxed_nmadd.html) -- [`core::arch::wasm32::f64x2_relaxed_madd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2_relaxed_madd.html) -- [`core::arch::wasm32::f64x2_relaxed_nmadd`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2_relaxed_nmadd.html) -- [`core::arch::wasm32::i8x16_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i8x16_relaxed_laneselect.html) -- [`core::arch::wasm32::u8x16_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u8x16_relaxed_laneselect.html) -- [`core::arch::wasm32::i16x8_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i16x8_relaxed_laneselect.html) -- [`core::arch::wasm32::u16x8_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u16x8_relaxed_laneselect.html) -- [`core::arch::wasm32::i32x4_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4_relaxed_laneselect.html) -- [`core::arch::wasm32::u32x4_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4_relaxed_laneselect.html) -- [`core::arch::wasm32::i64x2_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i64x2_relaxed_laneselect.html) -- [`core::arch::wasm32::u64x2_relaxed_laneselect`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u64x2_relaxed_laneselect.html) -- [`core::arch::wasm32::f32x4_relaxed_min`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4_relaxed_min.html) -- [`core::arch::wasm32::f32x4_relaxed_max`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f32x4_relaxed_max.html) -- [`core::arch::wasm32::f64x2_relaxed_min`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2_relaxed_min.html) -- [`core::arch::wasm32::f64x2_relaxed_max`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.f64x2_relaxed_max.html) -- [`core::arch::wasm32::i16x8_relaxed_q15mulr`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i16x8_relaxed_q15mulr.html) -- [`core::arch::wasm32::u16x8_relaxed_q15mulr`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u16x8_relaxed_q15mulr.html) -- [`core::arch::wasm32::i16x8_relaxed_dot_i8x16_i7x16`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i16x8_relaxed_dot_i8x16_i7x16.html) -- [`core::arch::wasm32::u16x8_relaxed_dot_i8x16_i7x16`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u16x8_relaxed_dot_i8x16_i7x16.html) -- [`core::arch::wasm32::i32x4_relaxed_dot_i8x16_i7x16_add`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.i32x4_relaxed_dot_i8x16_i7x16_add.html) -- [`core::arch::wasm32::u32x4_relaxed_dot_i8x16_i7x16_add`](https://doc.rust-lang.org/nightly/core/arch/wasm32/fn.u32x4_relaxed_dot_i8x16_i7x16_add.html) +- [`core::arch::wasm32::u8x16_relaxed_swizzle`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.u8x16_relaxed_swizzle.html) +- [`core::arch::wasm32::i8x16_relaxed_swizzle`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.i8x16_relaxed_swizzle.html) +- [`core::arch::wasm32::i32x4_relaxed_trunc_f32x4`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.i32x4_relaxed_trunc_f32x4.html) +- [`core::arch::wasm32::u32x4_relaxed_trunc_f32x4`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.u32x4_relaxed_trunc_f32x4.html) +- [`core::arch::wasm32::i32x4_relaxed_trunc_f64x2_zero`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.i32x4_relaxed_trunc_f64x2_zero.html) +- [`core::arch::wasm32::u32x4_relaxed_trunc_f64x2_zero`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.u32x4_relaxed_trunc_f64x2_zero.html) +- [`core::arch::wasm32::f32x4_relaxed_madd`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.f32x4_relaxed_madd.html) +- [`core::arch::wasm32::f32x4_relaxed_nmadd`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.f32x4_relaxed_nmadd.html) +- [`core::arch::wasm32::f64x2_relaxed_madd`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.f64x2_relaxed_madd.html) +- [`core::arch::wasm32::f64x2_relaxed_nmadd`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.f64x2_relaxed_nmadd.html) +- [`core::arch::wasm32::i8x16_relaxed_laneselect`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.i8x16_relaxed_laneselect.html) +- [`core::arch::wasm32::u8x16_relaxed_laneselect`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.u8x16_relaxed_laneselect.html) +- [`core::arch::wasm32::i16x8_relaxed_laneselect`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.i16x8_relaxed_laneselect.html) +- [`core::arch::wasm32::u16x8_relaxed_laneselect`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.u16x8_relaxed_laneselect.html) +- [`core::arch::wasm32::i32x4_relaxed_laneselect`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.i32x4_relaxed_laneselect.html) +- [`core::arch::wasm32::u32x4_relaxed_laneselect`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.u32x4_relaxed_laneselect.html) +- [`core::arch::wasm32::i64x2_relaxed_laneselect`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.i64x2_relaxed_laneselect.html) +- [`core::arch::wasm32::u64x2_relaxed_laneselect`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.u64x2_relaxed_laneselect.html) +- [`core::arch::wasm32::f32x4_relaxed_min`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.f32x4_relaxed_min.html) +- [`core::arch::wasm32::f32x4_relaxed_max`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.f32x4_relaxed_max.html) +- [`core::arch::wasm32::f64x2_relaxed_min`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.f64x2_relaxed_min.html) +- [`core::arch::wasm32::f64x2_relaxed_max`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.f64x2_relaxed_max.html) +- [`core::arch::wasm32::i16x8_relaxed_q15mulr`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.i16x8_relaxed_q15mulr.html) +- [`core::arch::wasm32::u16x8_relaxed_q15mulr`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.u16x8_relaxed_q15mulr.html) +- [`core::arch::wasm32::i16x8_relaxed_dot_i8x16_i7x16`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.i16x8_relaxed_dot_i8x16_i7x16.html) +- [`core::arch::wasm32::u16x8_relaxed_dot_i8x16_i7x16`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.u16x8_relaxed_dot_i8x16_i7x16.html) +- [`core::arch::wasm32::i32x4_relaxed_dot_i8x16_i7x16_add`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.i32x4_relaxed_dot_i8x16_i7x16_add.html) +- [`core::arch::wasm32::u32x4_relaxed_dot_i8x16_i7x16_add`](https://doc.rust-lang.org/stable/core/arch/wasm32/fn.u32x4_relaxed_dot_i8x16_i7x16_add.html) These APIs are now stable in const contexts: -- [`std::task::Waker::from_raw`](https://doc.rust-lang.org/nightly/std/task/struct.Waker.html#method.from_raw) -- [`std::task::Context::from_waker`](https://doc.rust-lang.org/nightly/std/task/struct.Context.html#method.from_waker) -- [`std::task::Context::waker`](https://doc.rust-lang.org/nightly/std/task/struct.Context.html#method.waker) -- [`$integer::from_str_radix`](https://doc.rust-lang.org/nightly/std/primitive.u32.html#method.from_str_radix) -- [`std::num::ParseIntError::kind`](https://doc.rust-lang.org/nightly/std/num/struct.ParseIntError.html#method.kind) +- [`std::task::Waker::from_raw`](https://doc.rust-lang.org/stable/std/task/struct.Waker.html#method.from_raw) +- [`std::task::Context::from_waker`](https://doc.rust-lang.org/stable/std/task/struct.Context.html#method.from_waker) +- [`std::task::Context::waker`](https://doc.rust-lang.org/stable/std/task/struct.Context.html#method.waker) +- [`$integer::from_str_radix`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.from_str_radix) +- [`std::num::ParseIntError::kind`](https://doc.rust-lang.org/stable/std/num/struct.ParseIntError.html#method.kind) ### Other changes From 5119a6249010cb68cb6cc10af5bfe3828724a83c Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sun, 9 Mar 2025 11:10:21 +0100 Subject: [PATCH 0836/1024] Replace lost videos with plain text --- posts/rustup.md | 88 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 68 insertions(+), 20 deletions(-) diff --git a/posts/rustup.md b/posts/rustup.md index d7ed6815f..6aaf417f7 100644 --- a/posts/rustup.md +++ b/posts/rustup.md @@ -86,25 +86,55 @@ Let's start with something simple: installing multiple Rust toolchains. In this example I create a new library, 'hello', then test it using rustc 1.8, then use rustup to install and test that same crate on the 1.9 beta. -
    - -
    - - That's an easy way to verify your code works on the next Rust release. That's good Rust citizenship! @@ -112,14 +142,32 @@ good Rust citizenship! We can use `rustup show` to show us the installed toolchains, and `rustup update` to keep them up to date with Rust's releases. -
    - -
    +```console +$ rustup show +Default host: x86_64-unknown-linux-gnu +rustup home: /home/user/.rustup + +installed toolchains +-------------------- + +stable-x86_64-unknown-linux-gnu (default) +beta-x86_64-unknown-linux-gnu + +active toolchain +---------------- + +stable-x86_64-unknown-linux-gnu (default) +rustc 1.8.0 (db2939409 2016-04-11) + +$ rustup update +info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu' +info: syncing channel updates for 'beta-x86_64-unknown-linux-gnu' + + stable-x86_64-unknown-linux-gnu unchanged - rustc 1.8.0 (db2939409 2016-04-11) + beta-x86_64-unknown-linux-gnu unchanged - rustc 1.9.0-beta (e4e8b6668 2016-04-11) + +info: cleaning up downloads & tmp directories +``` Finally, rustup can also change the default toolchain with `rustup default`: From 6dff2092a107b40e1b1f89473d24ec7f456e560e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 9 Mar 2025 23:58:13 +0100 Subject: [PATCH 0837/1024] Update Rust crate serde to v1.0.219 (#1514) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9885a96ce..ac805e8a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1924,18 +1924,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.218" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.218" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 4842b7fbc..f22e318aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ rayon = "=1.10.0" regex = "=1.11.1" sass-rs = "=0.2.2" serde_json = "=1.0.140" -serde = "=1.0.218" +serde = "=1.0.219" tera = "=1.20.0" tokio = "=1.44.0" toml = "=0.8.20" From 6a417497f12dcff2b32ca88b66bce9cb854721bb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 10:07:22 +0100 Subject: [PATCH 0838/1024] Lock file maintenance (#1515) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 178 +++++++++++++++++++++++++++++------------------------ 1 file changed, 98 insertions(+), 80 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ac805e8a7..1e798b811 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -216,9 +216,9 @@ dependencies = [ [[package]] name = "bon" -version = "3.3.2" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7acc34ff59877422326db7d6f2d845a582b16396b6b08194942bf34c6528ab" +checksum = "8a8a41e51fda5f7d87152d00f50d08ce24bf5cee8a962facf7f2526a66f8a5fa" dependencies = [ "bon-macros", "rustversion", @@ -226,9 +226,9 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.3.2" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4159dd617a7fbc9be6a692fe69dc2954f8e6bb6bb5e4d7578467441390d77fd0" +checksum = "6b592add4016ac26ca340298fed5cc2524abe8bacae78ebca3780286da588304" dependencies = [ "darling", "ident_case", @@ -236,7 +236,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -269,9 +269,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "caseless" @@ -380,7 +380,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -511,7 +511,7 @@ dependencies = [ "bitflags 2.9.0", "crossterm_winapi", "parking_lot", - "rustix", + "rustix 0.38.44", "winapi", ] @@ -555,7 +555,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -566,7 +566,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -608,14 +608,14 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "either" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7914353092ddf589ad78f25c5c1c21b7f80b0ff8621e7c814c3485b5306da9d" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "encode_unicode" @@ -938,9 +938,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.10.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -1125,7 +1125,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -1211,9 +1211,9 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" @@ -1255,6 +1255,12 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +[[package]] +name = "linux-raw-sys" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" + [[package]] name = "litemap" version = "0.7.5" @@ -1475,7 +1481,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b7cafe60d6cf8e62e1b9b2ea516a089c008945bb5a275416789e7db0bc199dc" dependencies = [ "memchr", - "thiserror 2.0.11", + "thiserror 2.0.12", "ucd-trie", ] @@ -1499,7 +1505,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -1553,22 +1559,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -1585,9 +1591,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plist" @@ -1610,21 +1616,21 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ "zerocopy", ] [[package]] name = "prettyplease" -version = "0.2.29" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" +checksum = "f1ccf34da56fc294e7d4ccf69a85992b7dfb826b7cf57bac6a70bba3494cc08a" dependencies = [ "proc-macro2", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -1653,9 +1659,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] @@ -1687,9 +1693,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.38" +version = "1.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" dependencies = [ "proc-macro2", ] @@ -1758,9 +1764,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b568323e98e49e2a0899dcee453dd679fae22d69adf9b11dd508d1549b7e2f" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" dependencies = [ "bitflags 2.9.0", ] @@ -1823,7 +1829,20 @@ dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dade4812df5c384711475be5fcd8c162555352945401aed22a35bffeab61f657" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.9.2", "windows-sys 0.59.0", ] @@ -1869,15 +1888,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "ryu" -version = "1.0.19" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "same-file" @@ -1939,7 +1958,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2150,9 +2169,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.98" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -2167,7 +2186,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2217,11 +2236,11 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix", + "rustix 1.0.1", "windows-sys 0.59.0", ] @@ -2245,11 +2264,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl 2.0.11", + "thiserror-impl 2.0.12", ] [[package]] @@ -2260,18 +2279,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "thiserror-impl" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2286,9 +2305,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.37" +version = "0.3.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21" +checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" dependencies = [ "deranged", "itoa", @@ -2301,15 +2320,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" [[package]] name = "time-macros" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de" +checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c" dependencies = [ "num-conv", "time-core", @@ -2327,9 +2346,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -2365,7 +2384,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -2587,9 +2606,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00e2473a93778eb0bad35909dff6a10d28e63f792f16ed15e404fca9d5eeedbe" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-normalization" @@ -2773,7 +2792,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "wasm-bindgen-shared", ] @@ -2795,7 +2814,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3002,29 +3021,28 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "synstructure", ] [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" dependencies = [ - "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] @@ -3044,7 +3062,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", "synstructure", ] @@ -3073,5 +3091,5 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] From a553a50ad6cd06fe7a7233707a2bff34a9ba3f8d Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Mon, 10 Mar 2025 14:42:25 -0700 Subject: [PATCH 0839/1024] Add post for March 2025 Leadership Council Update --- .../leadership-council-update@6.md | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 posts/inside-rust/leadership-council-update@6.md diff --git a/posts/inside-rust/leadership-council-update@6.md b/posts/inside-rust/leadership-council-update@6.md new file mode 100644 index 000000000..a5133b2a9 --- /dev/null +++ b/posts/inside-rust/leadership-council-update@6.md @@ -0,0 +1,86 @@ ++++ +layout = "post" +date = 2025-03-17 +title = "March 2025 Leadership Council Update" +author = "Eric Huss" +team = "Leadership Council " ++++ + +Hello again from the Rust Leadership Council! +We wanted to share an update on what the Council has been working on since [our last update][update]. + +[update]: https://blog.rust-lang.org/inside-rust/2024/12/09/leadership-council-update.html + +## Accomplishments so far + +### Team structure updates + +There have been several updated and new teams added. Some of this is part of the ongoing work described in the [Shape of Rust](#shape-of-rust) section below. + +The book team (which is responsible for [The Rust Programming Language book](https://doc.rust-lang.org/book/)) and the [Rust By Example](https://doc.rust-lang.org/rust-by-example/) team have been moved from the Launching Pad to subteams of the [lang-docs](https://www.rust-lang.org/governance/teams/lang#team-lang-docs) team. This is in effort to clean up the organization of the Launching Pad. [leadership-council#123](https://github.com/rust-lang/leadership-council/issues/123), [leadership-council#139](https://github.com/rust-lang/leadership-council/issues/139). + +The Edition 2024 Project Group has been converted to the Edition Team as part of the Launching Pad. This new team has a charter of clearer responsibilities for running the edition process on an ongoing basis. [leadership-council#149](https://github.com/rust-lang/leadership-council/issues/149). + +We approved the creation of the Mentorship Programs team as a subteam of the Launching Pad. This new team is responsible for the Rust organization's participation in programs like [Google Summer of Code](https://summerofcode.withgoogle.com/). Details about Rust's participation in GSoC 2025 was [recently announced](https://blog.rust-lang.org/2025/03/03/Rust-participates-in-GSoC-2025.html). [leadership-council#153](https://github.com/rust-lang/leadership-council/issues/153), [leadership-council#146](https://github.com/rust-lang/leadership-council/issues/146). + +We approved the creation of the [Project Goals team](https://rust-lang.github.io/rust-project-goals/admin/team.html) as a subteam of the Launching Pad. This team is responsible for running the project goals program. [leadership-council#150](https://github.com/rust-lang/leadership-council/issues/150) + +### Program management + +We approved reserving $200k (USD) of the Council's budget to hire for the [Program Management position](https://hackmd.io/VGauVVEyTN2M7pS6d9YTEA) ([leadership-council#151](https://github.com/rust-lang/leadership-council/issues/151)). This is initially intended to support the Program Goals and Edition programs. The Foundation is assisting with this process, and initial steps for advertising the position have started. + +### All hands + +Work continues to for preparation of the all-hands event in May 2025 at [RustWeek 2025] which corresponds with Rust's 10-year anniversary. We discussed and approved several requests: + +- Setting up the invitations. [leadership-council#135](https://github.com/rust-lang/leadership-council/issues/135) +- We agreed to raise the cap for travel grants that the Foundation may automatically accept due to the expected higher costs of this event. [leadership-council#148](https://github.com/rust-lang/leadership-council/issues/148) +- We agreed that COVID safety should be a priority, and set up several expectations for the event. [leadership-council#147](https://github.com/rust-lang/leadership-council/issues/147) +- Approved guidelines for guest invites to the all-hands [leadership-council#158](https://github.com/rust-lang/leadership-council/issues/158) + +[RustWeek 2025]: https://rustweek.org/ + +### Additional items + +And a few other items: + +- Approved the removal of the "experimental" status of the travel grant program [leadership-council#122](https://github.com/rust-lang/leadership-council/pull/122) +- Approved the changes for how license/copyright information is included in the Rust distributions [leadership-council#120](https://github.com/rust-lang/leadership-council/issues/120) +- Started the [March 2025 representative selection process](https://blog.rust-lang.org/inside-rust/2025/02/14/leadership-council-repr-selection.html) +- Finalized removal of core team infrastructure pieces [leadership-council#29](https://github.com/rust-lang/leadership-council/issues/29) +- Added clarifications for the Project Director selection process [leadership-council#121](https://github.com/rust-lang/leadership-council/pull/121), [leadership-council#134](https://github.com/rust-lang/leadership-council/pull/134) +- Approved the council's ask in the [cryptographic verification and mirroring goal](https://rust-lang.github.io/rust-project-goals/2025h1/verification-and-mirroring.html) and the [all-hands goal](https://rust-lang.github.io/rust-project-goals/2025h1/all-hands.html). + +## Ongoing work + +There are various efforts underway on projects that have had significant discussions since the last update, but have not concluded with any decisions, yet. +They are: + +### Shape of Rust + +Work into the shape of Rust discussion has recently been centered around the Launching Pad. In particular, we have been discussing how to organize teams such as the [Security Response Working Group](https://github.com/rust-lang/leadership-council/issues/141) which have cross-cutting concerns across all teams in the organization. James Munns (Launching Pad representative) has been working on [a proposal](https://gist.github.com/jamesmunns/cb93f9577a4c99d7f5f319bb22b4a28f) which would reframe the Launching Pad into more of a permanent structure that would house teams with cross-cutting concerns across the organization. This proposal also includes the concept of a "Rust Society" ([leadership-council#159](https://github.com/rust-lang/leadership-council/issues/159)) [previously proposed](https://thejpster.org.uk/blog/blog-2024-02-09/) by Jonathan Pallant. The Rust Society would take on the role of housing community-oriented groups. James is continuing to work on and refine these ideas with the Council. + +We have also recently received a request for a [GPU Working Group](https://github.com/rust-lang/leadership-council/issues/155) which we broke down into three separate concerns. First, project-focused work includes things like changes to the compiler and the language. Second, project collaboration with the community of developers interested in GPU support, and is something more akin to what we classify as "domain working groups" like the embedded working group. And third, industry collaboration which involves collaboration with industry partners where the Foundation may be more suited to support. + +### Foundation budget + +In addition to the [program management](#program-management) role discussed above, we also discussed ways we could potentially focus some of our funding on project inward-facing infrastructure support ([leadership-council#136](https://github.com/rust-lang/leadership-council/issues/136)). We noted that we do not have a good understanding of what the needs are of the project members when it comes to internal tooling and infrastructure. We also noted that funding this kind of role could be difficult since it would somehow need to be integrated into the project without adding burden to the project itself. + +### Additional items + +- We have been discussing more about the issue of communication and connection with the project directors and the Foundation. We previously had Mark Rousskov sharing a seat on both the Council and the Project Directors which provided a bridge to easily communicate between the groups. However, now the Mark is no longer a Director, we have lost that bridge. [leadership-council#41](https://github.com/rust-lang/leadership-council/issues/41#issuecomment-2587685025) +- We realized the website team is in a bit of limbo with understanding the responsibility about the content of the website, which had some expectations that this would get addressed at the Council level. [website production usages](https://rust-lang.zulipchat.com/#narrow/channel/392734-council/topic/website.20production.20usages) +- Project members have been discussing an [AI policy](https://rust-lang.zulipchat.com/#narrow/channel/392734-council/topic/AI.20policy) for the Rust org as a whole, but no specific proposal has arisen, yet. + +## Meeting minutes + +We publish minutes from all Council meetings to the [Leadership Council repo][minutes]. +Links to the minutes since our last update are: + +* [December 20, 2024](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2024-12-20.md) +* [January 17, 2025](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-01-17.md) +* [January 31, 2025](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-01-31.md) +* [February 14, 2025](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-02-14.md) +* [February 28, 2025](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-02-28.md) + +[minutes]: https://github.com/rust-lang/leadership-council/tree/main/minutes From a27eea5a496f9c83bc93679279dcc1324a530ac6 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Mon, 10 Mar 2025 22:41:28 +0100 Subject: [PATCH 0840/1024] Fix file name conflict on case-insensitive FS --- posts/inside-rust/{Goverance-wg-cfp.md => Goverance-wg-cfp@0.md} | 0 posts/inside-rust/{Governance-wg.md => Governance-wg@0.md} | 0 .../inside-rust/{Lang-Team-Meeting.md => Lang-Team-Meeting@0.md} | 0 .../inside-rust/{Lang-team-meeting.md => Lang-team-meeting@1.md} | 0 posts/inside-rust/{goverance-wg-cfp.md => goverance-wg-cfp@1.md} | 0 posts/inside-rust/{governance-wg.md => governance-wg@1.md} | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename posts/inside-rust/{Goverance-wg-cfp.md => Goverance-wg-cfp@0.md} (100%) rename posts/inside-rust/{Governance-wg.md => Governance-wg@0.md} (100%) rename posts/inside-rust/{Lang-Team-Meeting.md => Lang-Team-Meeting@0.md} (100%) rename posts/inside-rust/{Lang-team-meeting.md => Lang-team-meeting@1.md} (100%) rename posts/inside-rust/{goverance-wg-cfp.md => goverance-wg-cfp@1.md} (100%) rename posts/inside-rust/{governance-wg.md => governance-wg@1.md} (100%) diff --git a/posts/inside-rust/Goverance-wg-cfp.md b/posts/inside-rust/Goverance-wg-cfp@0.md similarity index 100% rename from posts/inside-rust/Goverance-wg-cfp.md rename to posts/inside-rust/Goverance-wg-cfp@0.md diff --git a/posts/inside-rust/Governance-wg.md b/posts/inside-rust/Governance-wg@0.md similarity index 100% rename from posts/inside-rust/Governance-wg.md rename to posts/inside-rust/Governance-wg@0.md diff --git a/posts/inside-rust/Lang-Team-Meeting.md b/posts/inside-rust/Lang-Team-Meeting@0.md similarity index 100% rename from posts/inside-rust/Lang-Team-Meeting.md rename to posts/inside-rust/Lang-Team-Meeting@0.md diff --git a/posts/inside-rust/Lang-team-meeting.md b/posts/inside-rust/Lang-team-meeting@1.md similarity index 100% rename from posts/inside-rust/Lang-team-meeting.md rename to posts/inside-rust/Lang-team-meeting@1.md diff --git a/posts/inside-rust/goverance-wg-cfp.md b/posts/inside-rust/goverance-wg-cfp@1.md similarity index 100% rename from posts/inside-rust/goverance-wg-cfp.md rename to posts/inside-rust/goverance-wg-cfp@1.md diff --git a/posts/inside-rust/governance-wg.md b/posts/inside-rust/governance-wg@1.md similarity index 100% rename from posts/inside-rust/governance-wg.md rename to posts/inside-rust/governance-wg@1.md From 17a68190c28a6699c3f617fd4f977680d55cca46 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Mon, 10 Mar 2025 23:01:29 +0100 Subject: [PATCH 0841/1024] Improve error message for bad front matter --- front_matter/src/lib.rs | 10 ++++++---- src/posts.rs | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs index 8861d20e9..28cd98e3f 100644 --- a/front_matter/src/lib.rs +++ b/front_matter/src/lib.rs @@ -1,4 +1,4 @@ -use eyre::bail; +use eyre::{ContextCompat, bail}; use serde::{Deserialize, Serialize}; use toml::value::Date; @@ -21,12 +21,12 @@ pub struct FrontMatter { /// the tuple. pub fn parse(markdown: &str) -> eyre::Result<(FrontMatter, &str)> { if !markdown.starts_with("+++\n") { - bail!("markdown file must start with the line `+++`"); + bail!("missing start of TOML front matter (+++)"); } let (front_matter, content) = markdown .trim_start_matches("+++\n") .split_once("\n+++\n") - .expect("couldn't find the end of the front matter: `+++`"); + .context("missing end of TOML front matter (+++)")?; Ok((toml::from_str(front_matter)?, content)) } @@ -63,7 +63,9 @@ mod tests { for post in posts { let content = fs::read_to_string(&post).unwrap(); - let normalized = normalize(&content).unwrap(); + let normalized = normalize(&content).unwrap_or_else(|err| { + panic!("failed to normalize {:?}: {err}", post.file_name().unwrap()); + }); if content != normalized { if env::var("FIX_FRONT_MATTER").is_ok() { diff --git a/src/posts.rs b/src/posts.rs index 0f27a8b6f..8b7f996bf 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -1,4 +1,5 @@ use super::blogs::Manifest; +use eyre::Context; use front_matter::FrontMatter; use regex::Regex; use serde::Serialize; @@ -56,7 +57,8 @@ impl Post { .. }, contents, - ) = front_matter::parse(&contents)?; + ) = front_matter::parse(&contents) + .with_context(|| format!("failed to parse {filename}"))?; let options = comrak::Options { render: comrak::RenderOptions::builder().unsafe_(true).build(), From 4db7bbf1299d28d7c711afc97d8e1fa1e96d71ba Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Tue, 11 Mar 2025 06:26:20 -0700 Subject: [PATCH 0842/1024] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Travis Cross Co-authored-by: Rémy Rakic --- posts/inside-rust/leadership-council-update@6.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/posts/inside-rust/leadership-council-update@6.md b/posts/inside-rust/leadership-council-update@6.md index a5133b2a9..abd645156 100644 --- a/posts/inside-rust/leadership-council-update@6.md +++ b/posts/inside-rust/leadership-council-update@6.md @@ -15,28 +15,28 @@ We wanted to share an update on what the Council has been working on since [our ### Team structure updates -There have been several updated and new teams added. Some of this is part of the ongoing work described in the [Shape of Rust](#shape-of-rust) section below. +We have moved several teams and added some new ones. Some of this is part of the ongoing work described in the [Shape of Rust](#shape-of-rust) section below. The book team (which is responsible for [The Rust Programming Language book](https://doc.rust-lang.org/book/)) and the [Rust By Example](https://doc.rust-lang.org/rust-by-example/) team have been moved from the Launching Pad to subteams of the [lang-docs](https://www.rust-lang.org/governance/teams/lang#team-lang-docs) team. This is in effort to clean up the organization of the Launching Pad. [leadership-council#123](https://github.com/rust-lang/leadership-council/issues/123), [leadership-council#139](https://github.com/rust-lang/leadership-council/issues/139). The Edition 2024 Project Group has been converted to the Edition Team as part of the Launching Pad. This new team has a charter of clearer responsibilities for running the edition process on an ongoing basis. [leadership-council#149](https://github.com/rust-lang/leadership-council/issues/149). -We approved the creation of the Mentorship Programs team as a subteam of the Launching Pad. This new team is responsible for the Rust organization's participation in programs like [Google Summer of Code](https://summerofcode.withgoogle.com/). Details about Rust's participation in GSoC 2025 was [recently announced](https://blog.rust-lang.org/2025/03/03/Rust-participates-in-GSoC-2025.html). [leadership-council#153](https://github.com/rust-lang/leadership-council/issues/153), [leadership-council#146](https://github.com/rust-lang/leadership-council/issues/146). +We approved the creation of the Mentorship team as a subteam of the Launching Pad. This new team is responsible for the Rust organization's participation in programs like [Google Summer of Code](https://summerofcode.withgoogle.com/). Details about Rust's participation in GSoC 2025 was [recently announced](https://blog.rust-lang.org/2025/03/03/Rust-participates-in-GSoC-2025.html). [leadership-council#153](https://github.com/rust-lang/leadership-council/issues/153), [leadership-council#146](https://github.com/rust-lang/leadership-council/issues/146). -We approved the creation of the [Project Goals team](https://rust-lang.github.io/rust-project-goals/admin/team.html) as a subteam of the Launching Pad. This team is responsible for running the project goals program. [leadership-council#150](https://github.com/rust-lang/leadership-council/issues/150) +We approved the creation of the [Goals team](https://rust-lang.github.io/rust-project-goals/admin/team.html) as a subteam of the Launching Pad. This team is responsible for running the project goals program. [leadership-council#150](https://github.com/rust-lang/leadership-council/issues/150) ### Program management -We approved reserving $200k (USD) of the Council's budget to hire for the [Program Management position](https://hackmd.io/VGauVVEyTN2M7pS6d9YTEA) ([leadership-council#151](https://github.com/rust-lang/leadership-council/issues/151)). This is initially intended to support the Program Goals and Edition programs. The Foundation is assisting with this process, and initial steps for advertising the position have started. +We approved reserving $200k (USD) of the Council's budget to hire for the [Program Management position](https://hackmd.io/VGauVVEyTN2M7pS6d9YTEA) ([leadership-council#151](https://github.com/rust-lang/leadership-council/issues/151)). This is initially intended to support the Goals and Edition programs. The Foundation is assisting with this process, and initial steps for advertising the position have started. ### All hands -Work continues to for preparation of the all-hands event in May 2025 at [RustWeek 2025] which corresponds with Rust's 10-year anniversary. We discussed and approved several requests: +Work continues for preparation of the all-hands event in May 2025 at [RustWeek 2025] which corresponds with Rust's 10-year anniversary. We discussed and approved several requests: -- Setting up the invitations. [leadership-council#135](https://github.com/rust-lang/leadership-council/issues/135) +- We approved how to handle the invitations. [leadership-council#135](https://github.com/rust-lang/leadership-council/issues/135) - We agreed to raise the cap for travel grants that the Foundation may automatically accept due to the expected higher costs of this event. [leadership-council#148](https://github.com/rust-lang/leadership-council/issues/148) - We agreed that COVID safety should be a priority, and set up several expectations for the event. [leadership-council#147](https://github.com/rust-lang/leadership-council/issues/147) -- Approved guidelines for guest invites to the all-hands [leadership-council#158](https://github.com/rust-lang/leadership-council/issues/158) +- We approved guidelines for guest invites to the all-hands [leadership-council#158](https://github.com/rust-lang/leadership-council/issues/158) [RustWeek 2025]: https://rustweek.org/ @@ -49,7 +49,7 @@ And a few other items: - Started the [March 2025 representative selection process](https://blog.rust-lang.org/inside-rust/2025/02/14/leadership-council-repr-selection.html) - Finalized removal of core team infrastructure pieces [leadership-council#29](https://github.com/rust-lang/leadership-council/issues/29) - Added clarifications for the Project Director selection process [leadership-council#121](https://github.com/rust-lang/leadership-council/pull/121), [leadership-council#134](https://github.com/rust-lang/leadership-council/pull/134) -- Approved the council's ask in the [cryptographic verification and mirroring goal](https://rust-lang.github.io/rust-project-goals/2025h1/verification-and-mirroring.html) and the [all-hands goal](https://rust-lang.github.io/rust-project-goals/2025h1/all-hands.html). +- Clarified and approved the ask of the council in the [cryptographic verification and mirroring goal](https://rust-lang.github.io/rust-project-goals/2025h1/verification-and-mirroring.html) and the [all-hands goal](https://rust-lang.github.io/rust-project-goals/2025h1/all-hands.html). ## Ongoing work From 24b439cf1cc211ddbce76a8f513599ebb5566828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Tue, 11 Mar 2025 17:55:01 +0800 Subject: [PATCH 0843/1024] Add This Month In Our Test Infra Jan+Feb 2025 combined issue Date range: 2025-01-06 to 2025-03-11. --- posts/inside-rust/test-infra-jan-feb-2025.md | 208 ++++++++++++++++++ .../example-ci-job-summary.png | Bin 0 -> 252449 bytes 2 files changed, 208 insertions(+) create mode 100644 posts/inside-rust/test-infra-jan-feb-2025.md create mode 100644 static/images/inside-rust/2025-03-11-test-infra-jan-feb-2025/example-ci-job-summary.png diff --git a/posts/inside-rust/test-infra-jan-feb-2025.md b/posts/inside-rust/test-infra-jan-feb-2025.md new file mode 100644 index 000000000..efcecb5b1 --- /dev/null +++ b/posts/inside-rust/test-infra-jan-feb-2025.md @@ -0,0 +1,208 @@ ++++ +layout = "post" +date = 2025-03-11 +title = "This Month in Our Test Infra: January and February 2025" +author = "Jieyou Xu" +team = "the Bootstrap Team " ++++ + +# This Month in Our Test Infra: January and February 2025 + + + +This is a quick summary of the changes in the test infrastructure for the [rust-lang/rust] repository[^scope] for **January and February 2025**[^forgot]. + +[^forgot]: I may or may not have forgotten about the January issue last month. Oops. + +[^scope]: The test infra here refers to the test harness [compiletest] and supporting components in our build system [bootstrap]. This test infra is used mainly by rustc and rustdoc. Other tools like cargo, miri or rustfmt maintain their own test infra. + +As usual, if you encounter bugs or UX issues when using our test infrastructure, please [file an issue][new-issue]. Bugs and papercuts can't be fixed if we don't know about them! + +**Thanks to everyone who contributed to our test infra!** + +## Highlights + +### `ci.py` is now a proper `citool` Rust crate + +The old `ci.py` Python script used to orchestrate CI jobs was unmaintainable. Any changes to the python script risked bringing down the entire queue or bypass testing entirely. There was practically no test coverage. CI UX improvements were hard to implement and difficult to review. + +So, Jakub decided enough was enough and [rewritten `src/ci/github-actions/ci.py` as `src/ci/citool`](https://github.com/rust-lang/rust/pull/136864), a proper Rust CLI tool. This allowed the job definitions to be properly parsed and handled, and also enabled adding unit tests. It also allowed improving some error messages. Furthermore, it improved the UX of running the CI jobs locally (on Linux). Consult the [`rustc-dev-guide` docs in `rust-lang/rust`](https://github.com/rust-lang/rust/blob/master/src/doc/rustc-dev-guide/src/tests/ci.md#docker) for updated running instructions (at the time of writing, this hasn't been synced back to [rust-lang/rustc-dev-guide] yet). + +### `try-job`s now supports glob patterns for job names + +As part of CI efficiency efforts, many CI jobs have been split into multiple jobs (e.g. `x86_64-apple-{1,2}`) to balance between runner capability and build/test times. This had an unfortunate side effect of making it more difficult to know which job name you need to specify to run the tests you want in custom try jobs. + + permits the contributor to write **glob patterns** to match on job names (up to 20 matching jobs, see next highlight). For instance, if you wanted to run *all* `msvc`-related jobs as part of `try-job`s, you no longer have to specify a whole bunch of e.g. `try-job: x86_64-msvc-1`, `try-job: x86_64-msvc-2`, `try-job: dist-x86_64-msvc`, `try-job: i686-msvc-1`, `try-job: i686-msvc-2`. Instead, you are now able to write + +```text +try-job: `*msvc*` +``` + +Which will expand to match against (and thus run) all of `x86_64-msvc-{1,2}`, `i686-msvc-{1,2}` and `dist-x86_64-msvc`. + +Note the backticks (`` ` ``) surrounding the glob pattern. This is needed to prevent GitHub UI from interpreting the glob pattern as (possibly mismatched) markdown italics markup. The backticks will be ignored by CI tooling. + +### Max custom `try-job` job limit is now 20 (instead of 10) + +You can now run up to 20 custom `try-job`s instead of the previous limit of 10. + +### The `Makefile`-based `run-make` test infrastructure has been retired + +Almost 8 years ago, astute early contributors noticed that the `Makefile`-based `run-make` tests were both hard-to-run and hard-to-write. It was proposed that we [switch run-make tests from `Makefile` to rust](https://github.com/rust-lang/rust/issues/40713) for multiple motivations, such as: + +- Make it more accessible for contributors. `Makefile` syntax (with bash intertwined) and semantics is its own source of bugs and footguns, and is a frequent source of frustrations. +- Reduce dependency on external tools (especially external bin tools) where feasible and beneficial. +- Become *less* platform-dependent. +- Avoid having to deal with *different flavors* of `make`s (GNU make of various versions, `nmake`) that are (subtly) incompatible with each other[^grep]. +- Make it possible to *not* have to use some kind of Unix-compatibility layer (e.g. MSYS) to run the test suite on Windows natively (be it MSVC or mingw). + +In 2023, after consultation with multiple contributors, we converged on a new [`run-make` test infrastructure][run-make-v2] that has two key components: + +1. Each `run-make` test consists of a *test recipe*, `rmake.rs`. This is the main test file. +2. The test recipe has access to a *test support library* called [`run-make-support`][run-make-support]. The support library centralizes common helpers that different `run-make` tests use. It also allows re-exporting useful ecosystem crates for use by tests, such as [`object`] or [`regex`]. Ecosystem crates make it possible for `rmake.rs` tests to perform more precise checks than the text-based manipulations most `Makefile`-based tests use. + +The most important difference here is perhaps improved *accessibility* to Rust contributors. The `rmake.rs` tests are just ordinary Rust programs. This means the contributor does not need to be constantly fighting all the `Makefile` and shell syntax quirks (the multitude of quoting styles, interpolation, etc.) or behavioral quirks (e.g. pipefail)[^broken]. + +There are 200+ `run-make` tests, so we couldn't port them *all* in one go. Instead, the approach taken was: + +- The legacy `Makefile`-based `run-make` test infra co-existed with the new `rmake.rs`-based `run-make` test infra. Which test infra was used depended upon whether the test directory contained `Makefile` or `rmake.rs`. +- We maintained a [quest-like tracking issue][run-make-port] that exhaustively listed all the `Makefile`-based `run-make` tests that needed to be ported, and tracked their migration progress. Contributors were invited to claim specific tests that they wanted to help port. + - This divided the workload between many contributors to make this migration possible. This is still mentored if the contributor needed assistance or wanted to discuss the approach, such as if they wanted to run the test against specific [`try-job`]s. + - Through a [mentored Google Summer of Code (GSoC) 2024 project][gsoc-2024], [@Oneirical][Oneirical] worked on porting a majority of the `run-make` tests. You can read their [final GSoC report here][gsoc-final]. + - Many maintainers also helped with infrastructure, reviews, testing and providing suggestions, and also authoring migration PRs themselves. + - **Thanks to everyone who helped in this effort!** +- Adopt a migration process that was *not* a naive 1-to-1 port. *Where possible*, contributors tried to improve the tests to: + - Become well documented, by linking to relevant context, references, discussions, implementation history and issues where suitable. Many `Makefile` versions of the tests did not have *any* test descriptions. There was *a lot* of git archaeology involved in figuring out what the tests were trying to test in the first place. + - Actually test what the test wanted to test. For example, `tests/run-make/translation` [did not test what it wanted to test](https://github.com/rust-lang/rust/issues/135817) because the `Makefile` didn't set `SHELL=/bin/bash -o pipefail`. + - Become more precise and less fragile. Quite a few of `run-make` tests were able to make use of the excellent [`object`] crate to perform structured analysis on binaries (for symbols and debuginfo), as opposed trying to do text grepping on human-readable textual output of bin tools (like `objdump` or `nm`, where the CLI interface and textual output format can also be different between platforms). + +The migration effort took around a year, until we were finally able to declare all `Makefile`-based `run-make` tests ported, and thus we were able to [retire the legacy `Makefile`-based test infrastructure in early 2025][retirement]. + +*Of course*, the new test infrastructure isn't all sunshine and rainbows. There are still issues, desired improvements and test UX papercuts that await to be addressed. However, like the overall test infra, they can be and will be improved over time. + +[^grep]: The test suite even had to maintain behavioral tests for `grep` because there are *different* flavors of `grep` that are incompatible with each other and had different CLI interfaces / behavior. +[^broken]: During the porting process, we found multiple tests that had varying degree of brokenness due to hard to notice `Makefile` and shell quirks. + +[run-make-v2]: https://github.com/rust-lang/rust/pull/113026 +[`object`]: https://crates.io/crates/object +[`regex`]: https://crates.io/crates/regex +[run-make-port]: https://github.com/rust-lang/rust/issues/121876 +[`try-job`]: https://rustc-dev-guide.rust-lang.org/tests/ci.html#try-builds +[gsoc-2024]: https://summerofcode.withgoogle.com/archive/2024/projects/P5BC91Hr +[Oneirical]: https://github.com/oneirical +[gsoc-final]: https://oneirical.github.io/gsocfinal/ +[retirement]: https://github.com/rust-lang/rust/pull/136581 + +### Bootstrap test and build step metrics are now available in GitHub job summaries + + implemented postprocessing logic for bootstrap test and build metrics to convert them into [GitHub job summaries][github-job-summaries]. + +![Sample job summary](../../../../images/2025-03-11-test-infra-jan-feb-2025/example-ci-job-summary.png) + +[github-job-summaries]: https://github.blog/news-insights/product-news/supercharging-github-actions-with-job-summaries/ + + +## Notable changes + +This section is intended to be like "compatibility notes" but for human test writers. + +### `rustc`-based (`ToolRustc`) tools have unified staging handling + +Tools that wants to use a locally built `rustc` previously inconsistently implemented their own staging logic in their tool and test steps. This caused a lot of confusion as different `ToolRustc` tools (and their tests) handled the staging differently; some had unnecessarily builds while others were seemingly "off by one stage". There were hacks in various places to "chop off" or "increment" stages separately. To make this situation more maintainable, unifies `ToolRustc` tool staging logic. + +Notably, `./x test` without args and `./x test src/tools/{cargo,clippy}`, where possible, now default to stage 2. Previously, `./x test src/tools/{cargo,clippy}` without explicit test stage configuration corresponded to `--stage 1` but they actually required building stage 2 rustc *anyway*. Bootstrap will now warn if you try to specify a test stage < 2 when testing these two tools (that they don't necessarily work against stage 1 rustc is an pre-existing issue). + +Additionally, the *previous* `./x build $rustc_tool --stage 0` invocation (not std or bootstrap tools) is *now* equivalent to `./x build $rustc_tool --stage 1`. Before , stages for rustc tools in build flows were incremented by inconsistent adjustments, and when `--stage N` was specified on the `./x build $rustc_tool` invocation it would build stage `N+1` rustc. Now, `./x build $rustc_tool --stage N` will produce a rustc-tool using stage `N` rustc. + +Consult the new [Writing tools in Bootstrap](https://github.com/rust-lang/rust/blob/master/src/doc/rustc-dev-guide/src/building/bootstrapping/writing-tools-in-bootstrap.md) chapter for further clarification on picking a correct bootstrap tool mode. + +### `run-make-support` and `rmake.rs` is now fixed to be built with stage 0 compiler + +See and . + +Previously, `run-make-support` and `rmake.rs` was mistakenly built with top-stage compiler, but this was wrong. `run-make-support` and `rmake.rs` should be built with the *stage 0* compiler (they are test *infra* and needs to be reliable regardless of the possibly broken stage > 0 compiler under test). This caused a few `rmake.rs` tests to accidentally be using unstable features in the test recipes themselves, which will cause issues for beta/stable backports/bumps, and will also cause issues for out-of-tree codegen backends like `rustc_codegen_cranelift` that needs to run `run-make` tests at stage 0. + +The docs are also updated to explicitly clarify that `run-make-support` and `rmake.rs` *may not use unstable features*. + +### `core` and `alloc` unit tests are now located in separate `coretests` and `alloctests` packages respectively + +Having std tests in the same package as a std crate has issues such as + +> causing the test to have a dependency on a locally built standard library crate, while also indirectly depending on it through `libtest` + + moves `core` tests and moves `alloc` tests into separate packages that *does not* depend on `core` to prevent the duplicate crates problem, even when compiler flags don't match between sysroot build and test build. + +Other parts of std still has this problem. This is part of an on-going effort to make std tests more robust and more buildable by custom codegen backends. + + +## PR listing + +### Improvements + +- [compiletest] and test suites: [Implement `needs-subprocess` directive, and cleanup a bunch of tests to use `needs-{subprocess,threads}`](https://github.com/rust-lang/rust/pull/135926) +- [compiletest]: [Add directives to ignore `arm-unknown-*` targets](https://github.com/rust-lang/rust/pull/136339) +- [compiletest]: [Add `{ignore,only}-rustc_abi-x86-sse2` directives](https://github.com/rust-lang/rust/pull/137074) +- [run-make]: [Port `split-debuginfo` to rmake.rs](https://github.com/rust-lang/rust/pull/135572) +- [library] tests: [Put the `core` unit tests in a separate `coretests` package](https://github.com/rust-lang/rust/pull/135937) +- [library] tests: [Put the `alloc` unit tests in a separate `alloctests` package](https://github.com/rust-lang/rust/pull/136642) +- [bootstrap], [library] tests: [Various `coretests` improvements](https://github.com/rust-lang/rust/pull/137679) +- CI: [Rewrite the `ci.py` script in Rust](https://github.com/rust-lang/rust/pull/136864) +- [bootstrap]: [Stabilize stage management for rustc tools](https://github.com/rust-lang/rust/pull/137215) +- CI, [citool]: [Add post-merge analysis CI workflow](https://github.com/rust-lang/rust/pull/138013) +- CI, [citool]: [Postprocess bootstrap metrics into GitHub job summary](https://github.com/rust-lang/rust/pull/137077) +- CI, [citool]: [Increase the max. custom try jobs requested to `20`](https://github.com/rust-lang/rust/pull/138053) +- CI, [citool]: [Allow specifying glob patterns for try jobs](https://github.com/rust-lang/rust/pull/138307) + +### Fixes + +- [compiletest]: [Remove a footgun-y feature / relic of the past from the compiletest DSL](https://github.com/rust-lang/rust/pull/136404).[^goober] +- [compiletest]: [Perform deeper compiletest path normalization for `$TEST_BUILD_DIR` to account for compare-mode/debugger cases, and normalize long type file filename hashes](https://github.com/rust-lang/rust/pull/136865) +- [compiletest]: [compiletest should not inherit all host `RUSTFLAGS`](https://github.com/rust-lang/rust/pull/136960) +- [bootstrap], [compiletest], [run-make-support] and [run-make] tests: [Compile `run-make-support` and `run-make` tests with the bootstrap compiler](https://github.com/rust-lang/rust/pull/137373) +- [compiletest] and [run-make] tests: [Prevent `rmake.rs` from using unstable features, and fix 3 run-make tests that currently do](https://github.com/rust-lang/rust/pull/137537) +- [compiletest] and [run-make] tests: [Include `stage0-sysroot` libstd dylib in recipe dylib search path](https://github.com/rust-lang/rust/pull/135389) +- [bootstrap]: [Fix `x test --stage 1 ui-fulldeps` on macOS (until the next beta bump)](https://github.com/rust-lang/rust/pull/136973) +- [bootstrap]: [Add build step log for `run-make-support`](https://github.com/rust-lang/rust/pull/137362) +- [bootstrap]: [Use stage 2 on `cargo` and `clippy` tests when possible](https://github.com/rust-lang/rust/pull/137522) +- CI, [citool]: [Handle empty test suites in GitHub job summary report](https://github.com/rust-lang/rust/pull/138268) + +[^goober]: [this person](https://github.com/jieyouxu) is a goober who left a `FIXME` comment to remind themselves to fix this in a follow-up but forgot to follow-up. + +### Cleanups + +- [compiletest]: [Add erroneous variant to `string_enum`s conversions error](https://github.com/rust-lang/rust/pull/135397) +- [compiletest]: [Cleanup `is_rustdoc` logic and remove a useless path join in `rustdoc-json` runtest logic](https://github.com/rust-lang/rust/pull/136441) +- [compiletest]: [Feed stage number to compiletest directly](https://github.com/rust-lang/rust/pull/136472) +- [compiletest]: [Make the distinction between sources root vs test suite sources root in compiletest less confusing](https://github.com/rust-lang/rust/pull/136474) +- [compiletest]: [Make the distinction between root build directory vs test suite specific build directory in compiletest less confusing](https://github.com/rust-lang/rust/pull/136542) +- [compiletest]: [Retire the legacy `Makefile`-based `run-make` test infra](https://github.com/rust-lang/rust/pull/136581) +- [bootstrap] and [compiletest]: [Use `size_of_val` from the prelude instead of imported](https://github.com/rust-lang/rust/pull/138041) +- [bootstrap]: [Clean up code related to the `rustdoc-js` test suite](https://github.com/rust-lang/rust/pull/135386) +- tests: [Remove generic `//@ ignore-{wasm,wasm32,emscripten}` in tests](https://github.com/rust-lang/rust/pull/136476) + + +### Documentation updates + +Note that since rustc-dev-guide became a josh subtree in [rust-lang/rust], some doc updates are made alongside the [rust-lang/rust] PR themselves. + +- CI, [citool]: [Fix docker run-local docs](https://github.com/rust-lang/rust/pull/137946) +- [rustc-dev-guide]: [Document how to find the configuration used in CI](https://github.com/rust-lang/rustc-dev-guide/pull/2205) +- [rustc-dev-guide]: [Fix outdated `rustdoc-js` test suite name](https://github.com/rust-lang/rustc-dev-guide/pull/2212) +- [rustc-dev-guide]: [Rewrite section on executing Docker tests](https://github.com/rust-lang/rustc-dev-guide/pull/2235) +- [rustc-dev-guide]: [Remove "Port run-make tests from Make to Rust" tracking issue from Recurring work](https://github.com/rust-lang/rustc-dev-guide/pull/2242) +- [rustc-dev-guide]: [compiletest directives: `ignore-stage0` and `only-stage0` do not exist](https://github.com/rust-lang/rustc-dev-guide/pull/2272) +- [rustc-dev-guide]: [Clean `--bless` text](https://github.com/rust-lang/rustc-dev-guide/pull/2276) + + +[rust-lang/rust]: https://github.com/rust-lang/rust +[rustc-dev-guide]: https://github.com/rust-lang/rustc-dev-guide +[compiletest]: https://github.com/rust-lang/rust/tree/master/src/tools/compiletest +[run-make-support]: https://github.com/rust-lang/rust/tree/master/src/tools/run-make-support +[bootstrap]: https://github.com/rust-lang/rust/tree/master/src/bootstrap +[libtest]: https://github.com/rust-lang/rust/tree/master/library/test +[new-issue]: https://github.com/rust-lang/rust/issues/new +[filecheck]: https://llvm.org/docs/CommandGuide/FileCheck.html +[run-make]: https://github.com/rust-lang/rust/tree/master/tests/run-make +[tidy]: https://github.com/rust-lang/rust/tree/master/src/tools/tidy +[library]: https://github.com/rust-lang/rust/tree/master/library +[citool]: https://github.com/rust-lang/rust/tree/master/src/ci/citool diff --git a/static/images/inside-rust/2025-03-11-test-infra-jan-feb-2025/example-ci-job-summary.png b/static/images/inside-rust/2025-03-11-test-infra-jan-feb-2025/example-ci-job-summary.png new file mode 100644 index 0000000000000000000000000000000000000000..a27f7e91e4d617352c99b0ff4de2144d551e1f0c GIT binary patch literal 252449 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%0A>Er(XuR*B!BG+S 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 SA&-Y7M90SJ^7%?jc Date: Thu, 13 Mar 2025 07:01:31 +0800 Subject: [PATCH 0844/1024] Fix broken image and link --- posts/inside-rust/test-infra-jan-feb-2025.md | 4 ++-- .../example-ci-job-summary.png | Bin 2 files changed, 2 insertions(+), 2 deletions(-) rename static/images/inside-rust/{2025-03-11-test-infra-jan-feb-2025 => test-infra-jan-feb-2025}/example-ci-job-summary.png (100%) diff --git a/posts/inside-rust/test-infra-jan-feb-2025.md b/posts/inside-rust/test-infra-jan-feb-2025.md index efcecb5b1..417a85952 100644 --- a/posts/inside-rust/test-infra-jan-feb-2025.md +++ b/posts/inside-rust/test-infra-jan-feb-2025.md @@ -26,7 +26,7 @@ As usual, if you encounter bugs or UX issues when using our test infrastructure, The old `ci.py` Python script used to orchestrate CI jobs was unmaintainable. Any changes to the python script risked bringing down the entire queue or bypass testing entirely. There was practically no test coverage. CI UX improvements were hard to implement and difficult to review. -So, Jakub decided enough was enough and [rewritten `src/ci/github-actions/ci.py` as `src/ci/citool`](https://github.com/rust-lang/rust/pull/136864), a proper Rust CLI tool. This allowed the job definitions to be properly parsed and handled, and also enabled adding unit tests. It also allowed improving some error messages. Furthermore, it improved the UX of running the CI jobs locally (on Linux). Consult the [`rustc-dev-guide` docs in `rust-lang/rust`](https://github.com/rust-lang/rust/blob/master/src/doc/rustc-dev-guide/src/tests/ci.md#docker) for updated running instructions (at the time of writing, this hasn't been synced back to [rust-lang/rustc-dev-guide] yet). +So, Jakub decided enough was enough and [rewritten `src/ci/github-actions/ci.py` as `src/ci/citool`](https://github.com/rust-lang/rust/pull/136864), a proper Rust CLI tool. This allowed the job definitions to be properly parsed and handled, and also enabled adding unit tests. It also allowed improving some error messages. Furthermore, it improved the UX of running the CI jobs locally (on Linux). Consult the [`rustc-dev-guide` docs in `rust-lang/rust`](https://github.com/rust-lang/rust/blob/master/src/doc/rustc-dev-guide/src/tests/ci.md#docker) for updated running instructions (at the time of writing, this hasn't been synced back to [rustc-dev-guide] yet). ### `try-job`s now supports glob patterns for job names @@ -97,7 +97,7 @@ The migration effort took around a year, until we were finally able to declare a implemented postprocessing logic for bootstrap test and build metrics to convert them into [GitHub job summaries][github-job-summaries]. -![Sample job summary](../../../../images/2025-03-11-test-infra-jan-feb-2025/example-ci-job-summary.png) +![Sample job summary](../../../../images/inside-rust/test-infra-jan-feb-2025/example-ci-job-summary.png) [github-job-summaries]: https://github.blog/news-insights/product-news/supercharging-github-actions-with-job-summaries/ diff --git a/static/images/inside-rust/2025-03-11-test-infra-jan-feb-2025/example-ci-job-summary.png b/static/images/inside-rust/test-infra-jan-feb-2025/example-ci-job-summary.png similarity index 100% rename from static/images/inside-rust/2025-03-11-test-infra-jan-feb-2025/example-ci-job-summary.png rename to static/images/inside-rust/test-infra-jan-feb-2025/example-ci-job-summary.png From a6fc2e3b8560d69020df47a5e931413d9b0cab24 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Mar 2025 12:34:42 +0100 Subject: [PATCH 0845/1024] Update Rust crate tokio to v1.44.1 (#1525) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1e798b811..b0a361075 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2361,9 +2361,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.0" +version = "1.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9975ea0f48b5aa3972bf2d888c238182458437cc2a19374b81b25cdf1023fb3a" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" dependencies = [ "backtrace", "bytes", diff --git a/Cargo.toml b/Cargo.toml index f22e318aa..2371c77b6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ sass-rs = "=0.2.2" serde_json = "=1.0.140" serde = "=1.0.219" tera = "=1.20.0" -tokio = "=1.44.0" +tokio = "=1.44.1" toml = "=0.8.20" warpy = "=0.3.68" From 7c7bb3eea3a7a45575ce10af3e08752728dd7f89 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 17 Mar 2025 11:08:33 -0700 Subject: [PATCH 0846/1024] Announcing Rust 1.85.1 --- posts/Rust-1.85.1.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 posts/Rust-1.85.1.md diff --git a/posts/Rust-1.85.1.md b/posts/Rust-1.85.1.md new file mode 100644 index 000000000..f6736a0da --- /dev/null +++ b/posts/Rust-1.85.1.md @@ -0,0 +1,36 @@ ++++ +layout = "post" +date = 2025-03-18 +title = "Announcing Rust 1.85.1" +author = "The Rust Release Team" +release = true ++++ + +The Rust team has published a new point release of Rust, 1.85.1. Rust is a +programming language that is empowering everyone to build reliable and +efficient software. + +If you have a previous version of Rust installed via rustup, getting Rust +1.85.1 is as easy as: + +``` +rustup update stable +``` + +If you don't have it already, you can [get `rustup`][rustup] from the +appropriate page on our website. + +[rustup]: https://www.rust-lang.org/install.html + +## What's in 1.85.1 + +- [Fix the doctest-merging feature of the 2024 Edition.](https://github.com/rust-lang/rust/pull/137899/) +- [Relax some `target_feature` checks when generating docs.](https://github.com/rust-lang/rust/pull/137632/) +- [Fix errors in `std::fs::rename` on Windows 1607.](https://github.com/rust-lang/rust/pull/137528/) +- [Downgrade bootstrap `cc` to fix custom targets.](https://github.com/rust-lang/rust/pull/137460/) +- [Skip submodule updates when building Rust from a source tarball.](https://github.com/rust-lang/rust/pull/137338/) + +### Contributors to 1.85.1 + +Many people came together to create Rust 1.85.1. We couldn't have done it +without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.85.1/) From 437dbaf99efbc47e8d3865f38759defda9cbc573 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 17 Mar 2025 17:29:10 -0700 Subject: [PATCH 0847/1024] Expand on 1.85.1 merged doctests --- posts/Rust-1.85.1.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/posts/Rust-1.85.1.md b/posts/Rust-1.85.1.md index f6736a0da..34fbb516e 100644 --- a/posts/Rust-1.85.1.md +++ b/posts/Rust-1.85.1.md @@ -24,7 +24,16 @@ appropriate page on our website. ## What's in 1.85.1 -- [Fix the doctest-merging feature of the 2024 Edition.](https://github.com/rust-lang/rust/pull/137899/) +### Fixed 2024 Edition doctests + +Due to a bug in the implementation, [combined doctests](https://doc.rust-lang.org/edition-guide/rust-2024/rustdoc-doctests.html) did not work as intended in the stable 2024 Edition. Internal errors with feature stability caused rustdoc to automatically use its "unmerged" fallback method instead, like previous editions. + +Those errors are now fixed in 1.85.1, realizing the performance improvement of combined doctest compilation as intended! See the [backport issue](https://github.com/rust-lang/rust/issues/138418) for more details, including the risk analysis of making this behavioral change in a point release. + +### Other fixes + +1.85.1 also resolves a few regressions introduced in 1.85.0: + - [Relax some `target_feature` checks when generating docs.](https://github.com/rust-lang/rust/pull/137632/) - [Fix errors in `std::fs::rename` on Windows 1607.](https://github.com/rust-lang/rust/pull/137528/) - [Downgrade bootstrap `cc` to fix custom targets.](https://github.com/rust-lang/rust/pull/137460/) From 429be0627412ffe1a48176a4a535d2c050dbfd56 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 18 Mar 2025 08:35:07 -0700 Subject: [PATCH 0848/1024] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Kevin Reid Co-authored-by: Jakub Beránek --- posts/Rust-1.85.1.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/posts/Rust-1.85.1.md b/posts/Rust-1.85.1.md index 34fbb516e..0ed335ed2 100644 --- a/posts/Rust-1.85.1.md +++ b/posts/Rust-1.85.1.md @@ -24,9 +24,9 @@ appropriate page on our website. ## What's in 1.85.1 -### Fixed 2024 Edition doctests +### Fixed combined doctest compilation -Due to a bug in the implementation, [combined doctests](https://doc.rust-lang.org/edition-guide/rust-2024/rustdoc-doctests.html) did not work as intended in the stable 2024 Edition. Internal errors with feature stability caused rustdoc to automatically use its "unmerged" fallback method instead, like previous editions. +Due to a bug in the implementation, [combined doctests](https://doc.rust-lang.org/edition-guide/rust-2024/rustdoc-doctests.html) did not work as intended in the stable 2024 Edition. Internal errors with feature stability caused rustdoc to automatically use its "unmerged" fallback method instead, like in previous editions. Those errors are now fixed in 1.85.1, realizing the performance improvement of combined doctest compilation as intended! See the [backport issue](https://github.com/rust-lang/rust/issues/138418) for more details, including the risk analysis of making this behavioral change in a point release. From 06f3ec2645ccfddcdcf73402c7fa618c7ffdaa8b Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Tue, 18 Mar 2025 18:48:47 +0000 Subject: [PATCH 0849/1024] Add post about hiring for program management We're looking to hire in support of program management for the Rust Project. Let's add a post to let people know about this. --- .../hiring-for-program-management.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 posts/inside-rust/hiring-for-program-management.md diff --git a/posts/inside-rust/hiring-for-program-management.md b/posts/inside-rust/hiring-for-program-management.md new file mode 100644 index 000000000..d33f7d501 --- /dev/null +++ b/posts/inside-rust/hiring-for-program-management.md @@ -0,0 +1,21 @@ ++++ +layout = "post" +date = 2025-03-18 +title = "Hiring for Rust program management" +author = "TC" +team = "the Edition & Goals teams " ++++ + +# Hiring for Rust program management + +Within the Rust Project, we've recently been doing more explicit program management. This work supports our efforts on [Editions] and on [Project Goals], and in particular, it was critical for the recent successful release of [Rust 2024]. Better program management helps teams within the project better effect their priorities, and it helps ensure that contributors who are trying to get work done get the resources that they need. + +We've seen a lot of value from this work, and we want to expand our capacity for it. In support of that, we're looking to hire one or more people to help in doing this work. For details on the role and how to contact us about it, see this document: + +- [Role: Rust program manager](https://hackmd.io/VGauVVEyTN2M7pS6d9YTEA) + +If you know of someone who might be great for this, please encourage that person to reach out, and please reach out to us with your experiences in working with the person. + +[Editions]: https://doc.rust-lang.org/nightly/edition-guide/ +[Project Goals]: https://rust-lang.github.io/rust-project-goals/ +[Rust 2024]: ../../../../2025/02/20/Rust-1.85.0.html From dd4ff8952a3288c2047f205b36758eab7e9c9a6c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Mar 2025 00:35:57 +0100 Subject: [PATCH 0850/1024] Update dependency rust to v1.85.1 (#1528) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bba60eac3..e02a28038 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.85.0 + RUST_VERSION: 1.85.1 jobs: lint: From 09d6c248e2821213bb763dae367a01c75ec2f77c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Mar 2025 00:47:22 +0100 Subject: [PATCH 0851/1024] Lock file maintenance (#1526) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 127 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 80 insertions(+), 47 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b0a361075..df34e1599 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -216,9 +216,9 @@ dependencies = [ [[package]] name = "bon" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a8a41e51fda5f7d87152d00f50d08ce24bf5cee8a962facf7f2526a66f8a5fa" +checksum = "625e90403736670c971aad50573b7db42e131970d60a14f215b61fdf24e0aa84" dependencies = [ "bon-macros", "rustversion", @@ -226,9 +226,9 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b592add4016ac26ca340298fed5cc2524abe8bacae78ebca3780286da588304" +checksum = "fa915c54d505ca9b9b7ac056df7797508c3b817e51609d0ed19949dd0925b872" dependencies = [ "darling", "ident_case", @@ -350,9 +350,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.31" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" +checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" dependencies = [ "clap_builder", "clap_derive", @@ -360,9 +360,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.31" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" +checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" dependencies = [ "anstream", "anstyle", @@ -373,9 +373,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.28" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -430,7 +430,7 @@ checksum = "5afa2702ef2fecc5bd7ca605f37e875a6be3fc8138c4633e711a945b70351550" dependencies = [ "bon", "caseless", - "clap 4.5.31", + "clap 4.5.32", "entities", "memchr", "shell-words", @@ -586,9 +586,9 @@ dependencies = [ [[package]] name = "deunicode" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00" +checksum = "dc55fe0d1f6c107595572ec8b107c0999bb1a2e0b75e37429a4fb0d6474a0e7d" [[package]] name = "digest" @@ -650,14 +650,14 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.6" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" +checksum = "c3716d7a920fb4fac5d84e9d4bce8ceb321e9414b4409da61b07b75c1e3d0697" dependencies = [ "anstream", "anstyle", "env_filter", - "humantime", + "jiff", "log", ] @@ -916,9 +916,9 @@ dependencies = [ [[package]] name = "http" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -957,12 +957,6 @@ dependencies = [ "libm", ] -[[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.32" @@ -1179,9 +1173,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.7.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" dependencies = [ "equivalent", "hashbrown", @@ -1215,6 +1209,30 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jiff" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d699bc6dfc879fb1bf9bdff0d4c56f0884fc6f0d0eb0fba397a6d00cd9a6b85e" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", +] + +[[package]] +name = "jiff-static" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d16e75759ee0aa64c57a56acbf43916987b20c77373cb7e808979e02b93c9f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "js-sys" version = "0.3.77" @@ -1233,9 +1251,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.170" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libm" @@ -1257,9 +1275,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" [[package]] name = "litemap" @@ -1394,9 +1412,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" [[package]] name = "onig" @@ -1608,6 +1626,21 @@ dependencies = [ "time", ] +[[package]] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -1625,9 +1658,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.30" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1ccf34da56fc294e7d4ccf69a85992b7dfb826b7cf57bac6a70bba3494cc08a" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" dependencies = [ "proc-macro2", "syn 2.0.100", @@ -1693,9 +1726,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -1802,9 +1835,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "ring" -version = "0.17.13" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", @@ -1835,14 +1868,14 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dade4812df5c384711475be5fcd8c162555352945401aed22a35bffeab61f657" +checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.9.2", + "linux-raw-sys 0.9.3", "windows-sys 0.59.0", ] @@ -2240,7 +2273,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix 1.0.1", + "rustix 1.0.2", "windows-sys 0.59.0", ] @@ -2412,9 +2445,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ "bytes", "futures-core", @@ -2520,7 +2553,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 1.2.0", + "http 1.3.1", "httparse", "log", "rand", @@ -2958,9 +2991,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" dependencies = [ "memchr", ] From 450523cf99c0fdf035da67110396e7be5900486e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Mar 2025 13:08:26 +0100 Subject: [PATCH 0852/1024] Update Swatinem/rust-cache action to v2.7.8 (#1530) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e02a28038..eeab6d6e3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,7 +18,7 @@ jobs: - run: rustup override set ${{ env.RUST_VERSION }} - run: rustup component add clippy - run: rustup component add rustfmt - - uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2.7.7 + - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 - run: cargo clippy --workspace -- -D warnings - run: cargo fmt --check --all @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - run: rustup override set ${{ env.RUST_VERSION }} - - uses: Swatinem/rust-cache@f0deed1e0edfc6a9be95417288c0e1099b1eeec3 # v2.7.7 + - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 - run: cargo run - run: cp CNAME ./site/ From 248102a419ee0e803dd3bb42b85c9a832a732bea Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Mar 2025 04:25:10 +0100 Subject: [PATCH 0853/1024] Lock file maintenance (#1532) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index df34e1599..de4af6bd5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -216,9 +216,9 @@ dependencies = [ [[package]] name = "bon" -version = "3.5.0" +version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625e90403736670c971aad50573b7db42e131970d60a14f215b61fdf24e0aa84" +checksum = "65268237be94042665b92034f979c42d431d2fd998b49809543afe3e66abad1c" dependencies = [ "bon-macros", "rustversion", @@ -226,9 +226,9 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.5.0" +version = "3.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa915c54d505ca9b9b7ac056df7797508c3b817e51609d0ed19949dd0925b872" +checksum = "803c95b2ecf650eb10b5f87dda6b9f6a1b758cee53245e2b7b825c9b3803a443" dependencies = [ "darling", "ident_case", @@ -284,9 +284,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.16" +version = "1.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" dependencies = [ "shlex", ] @@ -577,9 +577,9 @@ checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" [[package]] name = "deranged" -version = "0.3.11" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058" dependencies = [ "powerfmt", ] @@ -1211,9 +1211,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jiff" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d699bc6dfc879fb1bf9bdff0d4c56f0884fc6f0d0eb0fba397a6d00cd9a6b85e" +checksum = "c102670231191d07d37a35af3eb77f1f0dbf7a71be51a962dcd57ea607be7260" dependencies = [ "jiff-static", "log", @@ -1224,9 +1224,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d16e75759ee0aa64c57a56acbf43916987b20c77373cb7e808979e02b93c9f9" +checksum = "4cdde31a9d349f1b1f51a0b3714a5940ac022976f4b49485fc04be052b183b4c" dependencies = [ "proc-macro2", "quote", @@ -1868,9 +1868,9 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825" +checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" dependencies = [ "bitflags 2.9.0", "errno", @@ -2273,7 +2273,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix 1.0.2", + "rustix 1.0.3", "windows-sys 0.59.0", ] @@ -2338,9 +2338,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.39" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", @@ -2353,15 +2353,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8093bc3e81c3bc5f7879de09619d06c9a5a5e45ca44dfeeb7225bae38005c5c" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ "num-conv", "time-core", @@ -2903,9 +2903,9 @@ dependencies = [ [[package]] name = "windows-link" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" [[package]] name = "windows-sys" @@ -3060,18 +3060,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.23" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.23" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" dependencies = [ "proc-macro2", "quote", From b51e3467de8528d45b2409f82d91679420fc56a2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 11:05:55 +0100 Subject: [PATCH 0854/1024] Update Rust crate comrak to v0.37.0 (#1533) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index de4af6bd5..12f838488 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -424,9 +424,9 @@ checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "comrak" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5afa2702ef2fecc5bd7ca605f37e875a6be3fc8138c4633e711a945b70351550" +checksum = "2a4f05e73ca9a30af27bebc13600f91fd1651b2ec7d139ca82a89df7ca583af1" dependencies = [ "bon", "caseless", diff --git a/Cargo.toml b/Cargo.toml index 2371c77b6..ca98c23eb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ edition = "2024" blog = { path = "." } chrono = "=0.4.40" color-eyre = "=0.6.3" -comrak = "=0.36.0" +comrak = "=0.37.0" eyre = "=0.6.12" front_matter = { path = "front_matter" } insta = "=1.42.2" From c239f2d41352bd57e93d2486e6f372685d00a0a5 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Tue, 25 Mar 2025 11:14:42 -0700 Subject: [PATCH 0855/1024] Add post for March 2025 council selections --- .../leadership-council-repr-selection@5.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 posts/inside-rust/leadership-council-repr-selection@5.md diff --git a/posts/inside-rust/leadership-council-repr-selection@5.md b/posts/inside-rust/leadership-council-repr-selection@5.md new file mode 100644 index 000000000..785b65f06 --- /dev/null +++ b/posts/inside-rust/leadership-council-repr-selection@5.md @@ -0,0 +1,22 @@ ++++ +layout = "post" +date = 2025-03-25 +title = "Leadership Council March 2025 Representative Selections" +author = "Eric Huss" +team = "Leadership Council " ++++ + +The March 2025 selections for [Leadership Council] representatives have been finalized. The compiler team has chosen [Josh Stone] as their new representative. [Eric Huss] and [James Munns] will continue to represent [Devtools] and [Launching Pad] respectively. + +We'd like to give our thanks to the outgoing representative [Eric Holk] for his many substantial and valuable contributions. + +[Leadership Council]: https://www.rust-lang.org/governance/teams/leadership-council +[compiler]: https://www.rust-lang.org/governance/teams/compiler +[devtools]: https://www.rust-lang.org/governance/teams/dev-tools +[launching pad]: https://forge.rust-lang.org/governance/council.html#the-launching-pad-top-level-team +[Eric Huss]: https://github.com/ehuss +[Josh Stone]: https://github.com/cuviper +[James Munns]: https://github.com/jamesmunns +[Eric Holk]: https://github.com/eholk + +Thanks to everyone who participated in the process! The next representative selections will be in September 2025 for the other half of the Council. From 370c3073903e671794ce8114c3129687c6e8a789 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Tue, 25 Mar 2025 00:26:25 +0000 Subject: [PATCH 0856/1024] Add post about adopting the FLS We're adopting the FLS within the Project. This has been made possible by the generous donation of the FLS by Ferrous Systems and by the efforts of the Foundation to facilitate this donation. Let's describe this, announce the adoption, and answer some likely questions about it. --- posts/adopting-the-fls.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 posts/adopting-the-fls.md diff --git a/posts/adopting-the-fls.md b/posts/adopting-the-fls.md new file mode 100644 index 000000000..51f539007 --- /dev/null +++ b/posts/adopting-the-fls.md @@ -0,0 +1,37 @@ ++++ +layout = "post" +date = 2025-03-26 +title = "Adopting the FLS" +author = "TC" +team = "the Spec Team " ++++ + +# Adopting the FLS + +Some years ago, Ferrous Systems assembled a description of Rust called the FLS[^fls]. They've since been faithfully maintaining and updating this document for new versions of Rust, and they've successfully used it to qualify toolchains based on Rust for use in safety-critical industries. Seeing this success, others have also begun to rely on the FLS for their own qualification efforts when building with Rust. + +[^fls]: The FLS stood for the "Ferrocene Language Specification". The minimal fork of Rust that Ferrous Systems qualifies and ships to their customers is called "Ferrocene", hence the name. We'll be dropping the expansion and just calling it the FLS within the Project. + +The members of the Rust Project are passionate about shipping high quality tools that enable people to build reliable software at scale. Such software is exactly the kind needed by those in safety-critical industries, and consequently we've become increasingly interested in better understanding and serving the needs of these customers of our language and of our tools. + +It's in that light that we're pleased to announce that we'll be adopting the FLS into the Rust Project as part of our ongoing specification efforts. This adoption is being made possible by the gracious donation of the FLS by Ferrous Systems. We're grateful to them for the work they've done in assembling the FLS, in making it fit for qualification purposes, in promoting its use and the use of Rust generally in safety-critical industries, and now, for working with us to take the next step and to bring the FLS into the Project. + +With this adoption, we look forward to better integrating the FLS with the processes of the Project and to providing ongoing and increased assurances to all those who use Rust in safety-critical industries and, in particular, to those who use the FLS as part of their qualification efforts. + +This adoption and donation would not have been possible without the efforts of the Rust Foundation, and in particular of Joel Marcey, the Director of Technology at the Foundation, who has worked tirelessly to facilitate this on our behalf. We're grateful to him and to the Foundation for this support. The Foundation has published its own [post] about this adoption. + +[post]: https://rustfoundation.org/media/ferrous-systems-donates-ferrocene-language-specification-to-rust-project/ + +## I'm relying on the FLS today; what should I expect? + +We'll be bringing the FLS within the Project, so expect some URLs to change. We plan to release updates to the FLS in much the same way as they have been happening up until now. + +We're sensitive to the fact that big changes to this document can result in costs for those using it for qualification purposes, and we don't have any immediate plans for big changes here. + +## What's this mean for the Rust Reference? + +The [Reference] is still the Reference. Adopting the FLS does not change the status of the Reference, and we plan to continue to improve and expand the Reference as we've been doing. + +We'll of course be looking for ways that the Reference can support the FLS, and that the FLS can support the Reference, and in the long term, we're hopeful we can find ways to bring these two documents closer together. + +[Reference]: https://github.com/rust-lang/reference From fec6e704bc8c8ffac32fbe808d69d4b7d273115a Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Wed, 26 Mar 2025 09:40:30 -0700 Subject: [PATCH 0857/1024] Add some more about Eric's contributions --- posts/inside-rust/leadership-council-repr-selection@5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/leadership-council-repr-selection@5.md b/posts/inside-rust/leadership-council-repr-selection@5.md index 785b65f06..421805e8b 100644 --- a/posts/inside-rust/leadership-council-repr-selection@5.md +++ b/posts/inside-rust/leadership-council-repr-selection@5.md @@ -8,7 +8,7 @@ team = "Leadership Council Date: Wed, 26 Mar 2025 09:41:12 -0700 Subject: [PATCH 0858/1024] Update to today's date --- posts/inside-rust/leadership-council-repr-selection@5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/inside-rust/leadership-council-repr-selection@5.md b/posts/inside-rust/leadership-council-repr-selection@5.md index 421805e8b..ee1dbe461 100644 --- a/posts/inside-rust/leadership-council-repr-selection@5.md +++ b/posts/inside-rust/leadership-council-repr-selection@5.md @@ -1,6 +1,6 @@ +++ layout = "post" -date = 2025-03-25 +date = 2025-03-26 title = "Leadership Council March 2025 Representative Selections" author = "Eric Huss" team = "Leadership Council " From 2cec825e324798ff5fefda2109f83688f194dfb4 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 26 Mar 2025 23:43:20 +0100 Subject: [PATCH 0859/1024] Fix initial run of snapshot tests --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index e12e8ebe5..6ce5086c9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -305,7 +305,7 @@ pub fn main() -> eyre::Result<()> { #[test] fn snapshot() { - std::fs::remove_dir_all(concat!(env!("CARGO_MANIFEST_DIR"), "/site")).unwrap(); + let _ = std::fs::remove_dir_all(concat!(env!("CARGO_MANIFEST_DIR"), "/site")); main().unwrap(); let timestamped_files = ["releases.json", "feed.xml"]; let inexplicably_non_deterministic_files = ["images/2023-08-rust-survey-2022/experiences.png"]; From ebf880a861ddae6367b3f32522a373bdbd1574ee Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 26 Mar 2025 23:47:04 +0100 Subject: [PATCH 0860/1024] Add snapshot tests in CI --- .github/workflows/snapshot_tests.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/snapshot_tests.yml diff --git a/.github/workflows/snapshot_tests.yml b/.github/workflows/snapshot_tests.yml new file mode 100644 index 000000000..1b8ee3a88 --- /dev/null +++ b/.github/workflows/snapshot_tests.yml @@ -0,0 +1,23 @@ +name: Snapshot tests +on: + pull_request + +env: + # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust + RUST_VERSION: 1.85.1 + +jobs: + snapshot-tests: + runs-on: ubuntu-latest + if: contains(github.event.pull_request.body, 'RUN_SNAPSHOT_TESTS') + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - run: rustup override set ${{ env.RUST_VERSION }} + - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 + + - run: git fetch --depth 2 + - run: git checkout origin/master + - name: Generate good snapshots + run: INSTA_OUTPUT=none INSTA_UPDATE=always cargo test -- --include-ignored + - run: git checkout $GITHUB_SHA # merge of master+branch + - run: cargo test -- --include-ignored From 32d6ed8f3daa7466620d5dd6e9dfa785eff04e9b Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 27 Mar 2025 00:23:57 +0100 Subject: [PATCH 0861/1024] Update readme --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7e4baf291..7dbbd7c97 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,9 @@ release = true # (to be only used for official posts about Rust releases announc If you're making changes to how the site is generated, you may want to check the impact your changes have on the output. For this purpose, there is a setup to do snapshot testing over the entire output directory. -It's not run in CI, because the number of snapshots is too large. -But you can run these tests locally as needed. + +To run these tests in CI, add the string `RUN_SNAPSHOT_TESTS` to the PR description. +You can also run these tests locally for a faster feedback cycle: - Make sure you have [cargo-insta](https://insta.rs/docs/quickstart/) installed. From 9fe957ebf6803b6cec6d8c4d9db4524d189e572c Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 27 Mar 2025 17:03:43 +0100 Subject: [PATCH 0862/1024] Move posts/ to content/ --- {posts => content}/1.0-Timeline.md | 0 {posts => content}/2023-Rust-Annual-Survey-2023-results.md | 0 {posts => content}/2024-Edition-CFP.md | 0 {posts => content}/2024-State-Of-Rust-Survey-results.md | 0 {posts => content}/4-Years-Of-Rust.md | 0 {posts => content}/A-call-for-blogs-2020.md | 0 {posts => content}/Async-await-hits-beta.md | 0 {posts => content}/Async-await-stable.md | 0 {posts => content}/Cargo.md | 0 {posts => content}/Clippy-deprecating-feature-cargo-clippy.md | 0 {posts => content}/Core-Team.md | 0 {posts => content}/Core-team-changes.md | 0 {posts => content}/Core-team-membership-updates.md | 0 {posts => content}/Enums-match-mutation-and-moves.md | 0 {posts => content}/Fearless-Concurrency-In-Firefox-Quantum.md | 0 {posts => content}/Fearless-Concurrency.md | 0 {posts => content}/Final-1.0-timeline.md | 0 {posts => content}/GATs-stabilization-push.md | 0 {posts => content}/Increasing-Apple-Version-Requirements.md | 0 {posts => content}/Increasing-Rusts-Reach-2018.md | 0 {posts => content}/Increasing-Rusts-Reach.md | 0 {posts => content}/Increasing-glibc-kernel-requirements.md | 0 {posts => content}/MIR.md | 0 {posts => content}/Mozilla-IRC-Sunset-and-the-Rust-Channel.md | 0 .../Next-steps-for-the-foundation-conversation.md | 0 {posts => content}/Next-year.md | 0 {posts => content}/OSPP-2024.md | 0 {posts => content}/Planning-2021-Roadmap.md | 0 {posts => content}/Procedural-Macros-in-Rust-2018.md | 0 {posts => content}/Project-Goals-Dec-Update.md | 0 {posts => content}/Project-Goals-Feb-Update.md | 0 {posts => content}/Project-Goals-Sep-Update.md | 0 {posts => content}/Project-goals.md | 0 {posts => content}/RLS-deprecation.md | 0 {posts => content}/Rust-1.0-alpha.md | 0 {posts => content}/Rust-1.0-alpha2.md | 0 {posts => content}/Rust-1.0-beta.md | 0 {posts => content}/Rust-1.0@0.md | 0 {posts => content}/Rust-1.0@1.md | 0 {posts => content}/Rust-1.1.md | 0 {posts => content}/Rust-1.10.md | 0 {posts => content}/Rust-1.11.md | 0 {posts => content}/Rust-1.12.1.md | 0 {posts => content}/Rust-1.12.md | 0 {posts => content}/Rust-1.13.md | 0 {posts => content}/Rust-1.14.md | 0 {posts => content}/Rust-1.15.1.md | 0 {posts => content}/Rust-1.15.md | 0 {posts => content}/Rust-1.16.md | 0 {posts => content}/Rust-1.17.md | 0 {posts => content}/Rust-1.18.md | 0 {posts => content}/Rust-1.19.md | 0 {posts => content}/Rust-1.2.md | 0 {posts => content}/Rust-1.20.md | 0 {posts => content}/Rust-1.21.md | 0 {posts => content}/Rust-1.22.md | 0 {posts => content}/Rust-1.23.md | 0 {posts => content}/Rust-1.24.1.md | 0 {posts => content}/Rust-1.24.md | 0 {posts => content}/Rust-1.25.md | 0 {posts => content}/Rust-1.26.1.md | 0 {posts => content}/Rust-1.26.2.md | 0 {posts => content}/Rust-1.26.md | 0 {posts => content}/Rust-1.27.1.md | 0 {posts => content}/Rust-1.27.2.md | 0 {posts => content}/Rust-1.27.md | 0 {posts => content}/Rust-1.28.md | 0 {posts => content}/Rust-1.29.1.md | 0 {posts => content}/Rust-1.29.2.md | 0 {posts => content}/Rust-1.29.md | 0 {posts => content}/Rust-1.3.md | 0 {posts => content}/Rust-1.30.0.md | 0 {posts => content}/Rust-1.30.1.md | 0 {posts => content}/Rust-1.31-and-rust-2018.md | 0 {posts => content}/Rust-1.31.1.md | 0 {posts => content}/Rust-1.32.0.md | 0 {posts => content}/Rust-1.33.0.md | 0 {posts => content}/Rust-1.34.0.md | 0 {posts => content}/Rust-1.34.1.md | 0 {posts => content}/Rust-1.34.2.md | 0 {posts => content}/Rust-1.35.0.md | 0 {posts => content}/Rust-1.36.0.md | 0 {posts => content}/Rust-1.37.0.md | 0 {posts => content}/Rust-1.38.0.md | 0 {posts => content}/Rust-1.39.0.md | 0 {posts => content}/Rust-1.4.md | 0 {posts => content}/Rust-1.40.0.md | 0 {posts => content}/Rust-1.41.0.md | 0 {posts => content}/Rust-1.41.1.md | 0 {posts => content}/Rust-1.42.md | 0 {posts => content}/Rust-1.43.0.md | 0 {posts => content}/Rust-1.44.0.md | 0 {posts => content}/Rust-1.45.0.md | 0 {posts => content}/Rust-1.45.1.md | 0 {posts => content}/Rust-1.45.2.md | 0 {posts => content}/Rust-1.46.0.md | 0 {posts => content}/Rust-1.47.md | 0 {posts => content}/Rust-1.48.md | 0 {posts => content}/Rust-1.49.0.md | 0 {posts => content}/Rust-1.5.md | 0 {posts => content}/Rust-1.50.0.md | 0 {posts => content}/Rust-1.51.0.md | 0 {posts => content}/Rust-1.52.0.md | 0 {posts => content}/Rust-1.52.1.md | 0 {posts => content}/Rust-1.53.0.md | 0 {posts => content}/Rust-1.54.0.md | 0 {posts => content}/Rust-1.55.0.md | 0 {posts => content}/Rust-1.56.0.md | 0 {posts => content}/Rust-1.56.1.md | 0 {posts => content}/Rust-1.57.0.md | 0 {posts => content}/Rust-1.58.0.md | 0 {posts => content}/Rust-1.58.1.md | 0 {posts => content}/Rust-1.59.0.md | 0 {posts => content}/Rust-1.6.md | 0 {posts => content}/Rust-1.60.0.md | 0 {posts => content}/Rust-1.61.0.md | 0 {posts => content}/Rust-1.62.0.md | 0 {posts => content}/Rust-1.62.1.md | 0 {posts => content}/Rust-1.63.0.md | 0 {posts => content}/Rust-1.64.0.md | 0 {posts => content}/Rust-1.65.0.md | 0 {posts => content}/Rust-1.66.0.md | 0 {posts => content}/Rust-1.66.1.md | 0 {posts => content}/Rust-1.67.0.md | 0 {posts => content}/Rust-1.67.1.md | 0 {posts => content}/Rust-1.68.0.md | 0 {posts => content}/Rust-1.68.1.md | 0 {posts => content}/Rust-1.68.2.md | 0 {posts => content}/Rust-1.69.0.md | 0 {posts => content}/Rust-1.7.md | 0 {posts => content}/Rust-1.70.0.md | 0 {posts => content}/Rust-1.71.0.md | 0 {posts => content}/Rust-1.71.1.md | 0 {posts => content}/Rust-1.72.0.md | 0 {posts => content}/Rust-1.72.1.md | 0 {posts => content}/Rust-1.73.0.md | 0 {posts => content}/Rust-1.74.0.md | 0 {posts => content}/Rust-1.74.1.md | 0 {posts => content}/Rust-1.75.0.md | 0 {posts => content}/Rust-1.76.0.md | 0 {posts => content}/Rust-1.77.0.md | 0 {posts => content}/Rust-1.77.1.md | 0 {posts => content}/Rust-1.77.2.md | 0 {posts => content}/Rust-1.78.0.md | 0 {posts => content}/Rust-1.79.0.md | 0 {posts => content}/Rust-1.8.md | 0 {posts => content}/Rust-1.80.0.md | 0 {posts => content}/Rust-1.80.1.md | 0 {posts => content}/Rust-1.81.0.md | 0 {posts => content}/Rust-1.82.0.md | 0 {posts => content}/Rust-1.83.0.md | 0 {posts => content}/Rust-1.84.0.md | 0 {posts => content}/Rust-1.84.1.md | 0 {posts => content}/Rust-1.85.0.md | 0 {posts => content}/Rust-1.85.1.md | 0 {posts => content}/Rust-1.9.md | 0 {posts => content}/Rust-2017-Survey-Results.md | 0 {posts => content}/Rust-2018-dev-tools.md | 0 {posts => content}/Rust-2021-public-testing.md | 0 {posts => content}/Rust-2024-public-testing.md | 0 {posts => content}/Rust-Once-Run-Everywhere.md | 0 {posts => content}/Rust-Roadmap-Update.md | 0 {posts => content}/Rust-Survey-2021.md | 0 {posts => content}/Rust-Survey-2023-Results.md | 0 {posts => content}/Rust-participates-in-GSoC-2024.md | 0 {posts => content}/Rust-participates-in-GSoC-2025.md | 0 {posts => content}/Rust-survey-2018.md | 0 {posts => content}/Rust-survey-2019.md | 0 {posts => content}/Rust-turns-three.md | 0 {posts => content}/Rust.1.43.1.md | 0 {posts => content}/Rust.1.44.1.md | 0 {posts => content}/RustConf.md | 0 {posts => content}/Rustup-1.20.0.md | 0 {posts => content}/Rustup-1.22.0.md | 0 {posts => content}/Rustup-1.22.1.md | 0 {posts => content}/Rustup-1.23.0.md | 0 {posts => content}/Rustup-1.24.0.md | 0 {posts => content}/Rustup-1.24.1.md | 0 {posts => content}/Rustup-1.24.2.md | 0 {posts => content}/Rustup-1.24.3.md | 0 {posts => content}/Rustup-1.25.0.md | 0 {posts => content}/Rustup-1.25.1.md | 0 {posts => content}/Rustup-1.25.2.md | 0 {posts => content}/Rustup-1.26.0.md | 0 {posts => content}/Rustup-1.27.0.md | 0 {posts => content}/Rustup-1.27.1.md | 0 {posts => content}/Rustup-1.28.0.md | 0 {posts => content}/Rustup-1.28.1.md | 0 {posts => content}/Scheduling-2021-Roadmap.md | 0 {posts => content}/Security-advisory-for-cargo.md | 0 {posts => content}/Security-advisory-for-std.md | 0 {posts => content}/Security-advisory.md | 0 {posts => content}/Shape-of-errors-to-come.md | 0 {posts => content}/Stability.md | 0 {posts => content}/State-of-Rust-Survey-2016.md | 0 {posts => content}/The-2018-Rust-Event-Lineup.md | 0 {posts => content}/The-2019-Rust-Event-Lineup.md | 0 {posts => content}/Underhanded-Rust.md | 0 {posts => content}/Update-on-crates.io-incident.md | 0 {posts => content}/Updating-musl-targets.md | 0 {posts => content}/Windows-7.md | 0 {posts => content}/a-new-look-for-rust-lang-org.md | 0 {posts => content}/adopting-the-fls.md | 0 {posts => content}/all-hands.md | 0 {posts => content}/android-ndk-update-r25.md | 0 .../announcing-the-new-rust-project-directors.md | 0 {posts => content}/annual-survey-2024-launch.md | 0 {posts => content}/async-fn-rpit-in-traits.md | 0 {posts => content}/async-vision-doc-shiny-future.md | 0 {posts => content}/async-vision-doc.md | 0 {posts => content}/blog.toml | 0 {posts => content}/broken-badges-and-23k-keywords.md | 0 {posts => content}/call-for-rust-2019-roadmap-blogposts.md | 0 {posts => content}/cargo-cache-cleaning.md | 0 {posts => content}/cargo-cves.md | 0 {posts => content}/cargo-pillars.md | 0 {posts => content}/changes-in-the-core-team@0.md | 0 {posts => content}/changes-in-the-core-team@1.md | 0 {posts => content}/check-cfg.md | 0 {posts => content}/committing-lockfiles.md | 0 {posts => content}/conf-lineup@0.md | 0 {posts => content}/conf-lineup@1.md | 0 {posts => content}/conf-lineup@2.md | 0 {posts => content}/const-eval-safety-rule-revision.md | 0 {posts => content}/const-generics-mvp-beta.md | 0 {posts => content}/council-survey.md | 0 {posts => content}/crates-io-development-update@0.md | 0 {posts => content}/crates-io-development-update@1.md | 0 {posts => content}/crates-io-download-changes.md | 0 {posts => content}/crates-io-non-canonical-downloads.md | 0 {posts => content}/crates-io-security-advisory.md | 0 {posts => content}/crates-io-snapshot-branches.md | 0 {posts => content}/crates-io-status-codes.md | 0 {posts => content}/crates-io-usage-policy-rfc.md | 0 {posts => content}/cve-2021-42574.md | 0 {posts => content}/cve-2022-21658.md | 0 {posts => content}/cve-2022-24713.md | 0 {posts => content}/cve-2022-46176.md | 0 {posts => content}/cve-2023-38497.md | 0 {posts => content}/cve-2024-24576.md | 0 {posts => content}/cve-2024-43402.md | 0 {posts => content}/docs-rs-opt-into-fewer-targets.md | 0 {posts => content}/edition-2021.md | 0 {posts => content}/electing-new-project-directors.md | 0 {posts => content}/enabling-rust-lld-on-linux.md | 0 {posts => content}/event-lineup-update.md | 0 {posts => content}/five-years-of-rust.md | 0 {posts => content}/gats-stabilization.md | 0 {posts => content}/gccrs-an-alternative-compiler-for-rust.md | 0 {posts => content}/governance-wg-announcement.md | 0 {posts => content}/gsoc-2024-results.md | 0 {posts => content}/gsoc-2024-selected-projects.md | 0 {posts => content}/help-test-rust-2018.md | 0 {posts => content}/i128-layout-update.md | 0 {posts => content}/impl-future-for-rust.md | 0 {posts => content}/impl-trait-capture-rules.md | 0 {posts => content}/improved-api-tokens-for-crates-io.md | 0 {posts => content}/incremental.md | 0 {posts => content}/inside-rust-blog.md | 0 {posts => content}/inside-rust/1.45.1-prerelease.md | 0 {posts => content}/inside-rust/1.46.0-prerelease.md | 0 {posts => content}/inside-rust/1.47.0-prerelease-2.md | 0 {posts => content}/inside-rust/1.47.0-prerelease.md | 0 {posts => content}/inside-rust/1.48.0-prerelease.md | 0 {posts => content}/inside-rust/1.49.0-prerelease.md | 0 {posts => content}/inside-rust/1.50.0-prerelease.md | 0 {posts => content}/inside-rust/1.51.0-prerelease.md | 0 {posts => content}/inside-rust/1.52.0-prerelease.md | 0 {posts => content}/inside-rust/1.53.0-prelease.md | 0 {posts => content}/inside-rust/1.54.0-prerelease.md | 0 {posts => content}/inside-rust/1.55.0-prerelease.md | 0 {posts => content}/inside-rust/1.56.0-prerelease.md | 0 {posts => content}/inside-rust/1.57.0-prerelease.md | 0 {posts => content}/inside-rust/1.58.0-prerelease.md | 0 {posts => content}/inside-rust/1.59.0-prerelease.md | 0 {posts => content}/inside-rust/1.60.0-prerelease.md | 0 {posts => content}/inside-rust/1.61.0-prerelease.md | 0 {posts => content}/inside-rust/1.62.0-prerelease.md | 0 {posts => content}/inside-rust/1.62.1-prerelease.md | 0 {posts => content}/inside-rust/1.63.0-prerelease.md | 0 {posts => content}/inside-rust/1.64.0-prerelease.md | 0 {posts => content}/inside-rust/1.65.0-prerelease.md | 0 {posts => content}/inside-rust/1.66.0-prerelease.md | 0 {posts => content}/inside-rust/1.67.0-prerelease.md | 0 {posts => content}/inside-rust/1.67.1-prerelease.md | 0 {posts => content}/inside-rust/1.68.0-prerelease.md | 0 {posts => content}/inside-rust/1.68.1-prerelease.md | 0 {posts => content}/inside-rust/1.68.2-prerelease.md | 0 {posts => content}/inside-rust/1.69.0-prerelease.md | 0 {posts => content}/inside-rust/1.70.0-prerelease.md | 0 {posts => content}/inside-rust/1.71.0-prerelease.md | 0 {posts => content}/inside-rust/1.71.1-prerelease.md | 0 {posts => content}/inside-rust/1.72.0-prerelease.md | 0 {posts => content}/inside-rust/1.72.1-prerelease.md | 0 {posts => content}/inside-rust/1.73.0-prerelease.md | 0 {posts => content}/inside-rust/1.74.0-prerelease.md | 0 {posts => content}/inside-rust/1.74.1-prerelease.md | 0 {posts => content}/inside-rust/1.75.0-prerelease.md | 0 {posts => content}/inside-rust/1.76.0-prerelease.md | 0 {posts => content}/inside-rust/1.77.0-prerelease.md | 0 {posts => content}/inside-rust/1.77.1-prerelease.md | 0 {posts => content}/inside-rust/2020-05-21-governance-wg | 0 {posts => content}/inside-rust/2024-edition-update.md | 0 .../inside-rust/AsyncAwait-Not-Send-Error-Improvements.md | 0 {posts => content}/inside-rust/AsyncAwait-WG-Focus-Issues.md | 0 {posts => content}/inside-rust/Backlog-Bonanza.md | 0 {posts => content}/inside-rust/CTCFT-april.md | 0 {posts => content}/inside-rust/CTCFT-february.md | 0 {posts => content}/inside-rust/CTCFT-march.md | 0 {posts => content}/inside-rust/CTCFT-may.md | 0 {posts => content}/inside-rust/Cleanup-Crew-ICE-breakers.md | 0 .../inside-rust/Clippy-removes-plugin-interface.md | 0 {posts => content}/inside-rust/Concluding-events-mods.md | 0 {posts => content}/inside-rust/Core-team-membership.md | 0 {posts => content}/inside-rust/Goverance-wg-cfp@0.md | 0 {posts => content}/inside-rust/Goverance-wg@0.md | 0 {posts => content}/inside-rust/Goverance-wg@1.md | 0 {posts => content}/inside-rust/Governance-WG-updated.md | 0 {posts => content}/inside-rust/Governance-wg@0.md | 0 .../inside-rust/Introducing-cargo-audit-fix-and-more.md | 0 .../inside-rust/Keeping-secure-with-cargo-audit-0.9.md | 0 {posts => content}/inside-rust/LLVM-ICE-breakers.md | 0 {posts => content}/inside-rust/Lang-Team-Meeting@0.md | 0 {posts => content}/inside-rust/Lang-team-Oct-update.md | 0 {posts => content}/inside-rust/Lang-team-july-update.md | 0 {posts => content}/inside-rust/Lang-team-meeting@1.md | 0 .../inside-rust/Ownership-Std-Implementation.md | 0 {posts => content}/inside-rust/Portable-SIMD-PG.md | 0 {posts => content}/inside-rust/Splitting-const-generics.md | 0 .../inside-rust/Using-rustc_codegen_cranelift.md | 0 {posts => content}/inside-rust/Welcome.md | 0 .../What-the-error-handling-project-group-is-working-on.md | 0 ...hat-the-error-handling-project-group-is-working-towards.md | 0 {posts => content}/inside-rust/aaron-hill-compiler-team.md | 0 {posts => content}/inside-rust/all-hands-retrospective.md | 0 {posts => content}/inside-rust/all-hands.md | 0 {posts => content}/inside-rust/announcing-project-goals.md | 0 {posts => content}/inside-rust/announcing-the-docsrs-team.md | 0 .../inside-rust/announcing-the-rust-style-team.md | 0 {posts => content}/inside-rust/api-token-scopes.md | 0 {posts => content}/inside-rust/apr-steering-cycle.md | 0 .../inside-rust/async-closures-call-for-testing.md | 0 {posts => content}/inside-rust/async-fn-in-trait-nightly.md | 0 {posts => content}/inside-rust/async-in-2022.md | 0 {posts => content}/inside-rust/bisecting-rust-compiler.md | 0 {posts => content}/inside-rust/blog.toml | 0 .../boxyuwu-leseulartichaut-the8472-compiler-contributors.md | 0 {posts => content}/inside-rust/cargo-config-merging.md | 0 {posts => content}/inside-rust/cargo-in-2020.md | 0 {posts => content}/inside-rust/cargo-new-members.md | 0 {posts => content}/inside-rust/cargo-postmortem.md | 0 {posts => content}/inside-rust/cargo-sparse-protocol.md | 0 {posts => content}/inside-rust/cargo-team-changes.md | 0 {posts => content}/inside-rust/changes-to-compiler-team.md | 0 {posts => content}/inside-rust/changes-to-rustdoc-team.md | 0 {posts => content}/inside-rust/changes-to-x-py-defaults.md | 0 .../cjgillot-and-nadrieril-for-compiler-contributors.md | 0 {posts => content}/inside-rust/clippy-team-changes.md | 0 .../inside-rust/compiler-team-2022-midyear-report.md | 0 .../inside-rust/compiler-team-ambitions-2022.md | 0 .../inside-rust/compiler-team-april-steering-cycle.md | 0 .../inside-rust/compiler-team-august-steering-cycle.md | 0 .../inside-rust/compiler-team-feb-steering-cycle.md | 0 .../inside-rust/compiler-team-july-steering-cycle.md | 0 .../inside-rust/compiler-team-june-steering-cycle.md | 0 {posts => content}/inside-rust/compiler-team-meeting@0.md | 0 {posts => content}/inside-rust/compiler-team-meeting@1.md | 0 {posts => content}/inside-rust/compiler-team-meeting@2.md | 0 {posts => content}/inside-rust/compiler-team-meeting@3.md | 0 {posts => content}/inside-rust/compiler-team-meeting@4.md | 0 {posts => content}/inside-rust/compiler-team-meeting@5.md | 0 {posts => content}/inside-rust/compiler-team-meeting@6.md | 0 {posts => content}/inside-rust/compiler-team-new-members.md | 0 {posts => content}/inside-rust/compiler-team-reorg.md | 0 .../inside-rust/compiler-team-sep-oct-steering-cycle.md | 0 {posts => content}/inside-rust/const-if-match.md | 0 {posts => content}/inside-rust/const-prop-on-by-default.md | 0 {posts => content}/inside-rust/content-delivery-networks.md | 0 {posts => content}/inside-rust/contributor-survey.md | 0 {posts => content}/inside-rust/core-team-update.md | 0 {posts => content}/inside-rust/core-team-updates.md | 0 {posts => content}/inside-rust/coroutines.md | 0 {posts => content}/inside-rust/crates-io-incident-report.md | 0 .../inside-rust/crates-io-malware-postmortem.md | 0 {posts => content}/inside-rust/crates-io-postmortem.md | 0 .../inside-rust/davidtwco-jackhuey-compiler-members.md | 0 {posts => content}/inside-rust/diagnostic-effort.md | 0 {posts => content}/inside-rust/dns-outage-portmortem.md | 0 {posts => content}/inside-rust/docsrs-outage-postmortem.md | 0 .../inside-rust/ecstatic-morse-for-compiler-contributors.md | 0 .../inside-rust/electing-new-project-directors.md | 0 {posts => content}/inside-rust/embedded-wg-micro-survey.md | 0 .../inside-rust/error-handling-wg-announcement.md | 0 {posts => content}/inside-rust/evaluating-github-actions.md | 0 .../inside-rust/exploring-pgo-for-the-rust-compiler.md | 0 .../inside-rust/feb-lang-team-design-meetings.md | 0 {posts => content}/inside-rust/feb-steering-cycle.md | 0 {posts => content}/inside-rust/ffi-unwind-design-meeting.md | 0 {posts => content}/inside-rust/ffi-unwind-longjmp.md | 0 .../inside-rust/follow-up-on-the-moderation-issue.md | 0 {posts => content}/inside-rust/formatting-the-compiler.md | 0 {posts => content}/inside-rust/goodbye-docs-team.md | 0 {posts => content}/inside-rust/goverance-wg-cfp@1.md | 0 {posts => content}/inside-rust/governance-reform-rfc.md | 0 {posts => content}/inside-rust/governance-update@0.md | 0 {posts => content}/inside-rust/governance-update@1.md | 0 {posts => content}/inside-rust/governance-wg-meeting@0.md | 0 {posts => content}/inside-rust/governance-wg-meeting@1.md | 0 {posts => content}/inside-rust/governance-wg-meeting@2.md | 0 {posts => content}/inside-rust/governance-wg@1.md | 0 .../inside-rust/hiring-for-program-management.md | 0 {posts => content}/inside-rust/ide-future.md | 0 {posts => content}/inside-rust/imposter-syndrome.md | 0 .../in-response-to-the-moderation-team-resignation.md | 0 .../inside-rust/inferred-const-generic-arguments.md | 0 .../inside-rust/infra-team-leadership-change.md | 0 {posts => content}/inside-rust/infra-team-meeting@0.md | 0 {posts => content}/inside-rust/infra-team-meeting@1.md | 0 {posts => content}/inside-rust/infra-team-meeting@2.md | 0 {posts => content}/inside-rust/infra-team-meeting@3.md | 0 {posts => content}/inside-rust/infra-team-meeting@4.md | 0 {posts => content}/inside-rust/infra-team-meeting@5.md | 0 {posts => content}/inside-rust/infra-team-meeting@6.md | 0 {posts => content}/inside-rust/infra-team-meeting@7.md | 0 {posts => content}/inside-rust/intro-rustc-self-profile.md | 0 {posts => content}/inside-rust/jan-steering-cycle.md | 0 .../jasper-and-wiser-full-members-of-compiler-team.md | 0 {posts => content}/inside-rust/jsha-rustdoc-member.md | 0 {posts => content}/inside-rust/jtgeibel-crates-io-co-lead.md | 0 {posts => content}/inside-rust/jun-steering-cycle.md | 0 .../inside-rust/keeping-secure-with-cargo-audit-0.18.md | 0 .../inside-rust/keyword-generics-progress-report-feb-2023.md | 0 {posts => content}/inside-rust/keyword-generics.md | 0 {posts => content}/inside-rust/lang-advisors.md | 0 {posts => content}/inside-rust/lang-roadmap-2024.md | 0 {posts => content}/inside-rust/lang-team-apr-update.md | 0 {posts => content}/inside-rust/lang-team-april-update.md | 0 {posts => content}/inside-rust/lang-team-aug-update.md | 0 {posts => content}/inside-rust/lang-team-colead.md | 0 .../lang-team-design-meeting-min-const-generics.md | 0 .../inside-rust/lang-team-design-meeting-update.md | 0 .../inside-rust/lang-team-design-meeting-wf-types.md | 0 {posts => content}/inside-rust/lang-team-design-meetings@0.md | 0 {posts => content}/inside-rust/lang-team-design-meetings@1.md | 0 {posts => content}/inside-rust/lang-team-design-meetings@2.md | 0 {posts => content}/inside-rust/lang-team-feb-update@0.md | 0 {posts => content}/inside-rust/lang-team-feb-update@1.md | 0 {posts => content}/inside-rust/lang-team-mar-update@0.md | 0 {posts => content}/inside-rust/lang-team-mar-update@1.md | 0 .../inside-rust/lang-team-meetings-rescheduled.md | 0 {posts => content}/inside-rust/lang-team-membership-update.md | 0 .../inside-rust/lang-team-path-to-membership.md | 0 .../inside-rust/launching-pad-representative.md | 0 .../inside-rust/leadership-council-membership-changes.md | 0 .../inside-rust/leadership-council-repr-selection@0.md | 0 .../inside-rust/leadership-council-repr-selection@1.md | 0 .../inside-rust/leadership-council-repr-selection@2.md | 0 .../inside-rust/leadership-council-repr-selection@3.md | 0 .../inside-rust/leadership-council-repr-selection@4.md | 0 .../inside-rust/leadership-council-repr-selection@5.md | 0 {posts => content}/inside-rust/leadership-council-update@0.md | 0 {posts => content}/inside-rust/leadership-council-update@1.md | 0 {posts => content}/inside-rust/leadership-council-update@2.md | 0 {posts => content}/inside-rust/leadership-council-update@3.md | 0 {posts => content}/inside-rust/leadership-council-update@4.md | 0 {posts => content}/inside-rust/leadership-council-update@5.md | 0 {posts => content}/inside-rust/leadership-council-update@6.md | 0 {posts => content}/inside-rust/leadership-initiatives.md | 0 {posts => content}/inside-rust/libs-aspirations.md | 0 .../inside-rust/libs-contributors-the8472-kodraus.md | 0 {posts => content}/inside-rust/libs-contributors@0.md | 0 {posts => content}/inside-rust/libs-contributors@1.md | 0 {posts => content}/inside-rust/libs-member.md | 0 {posts => content}/inside-rust/lto-improvements.md | 0 {posts => content}/inside-rust/mar-steering-cycle.md | 0 {posts => content}/inside-rust/new-inline-asm.md | 0 .../inside-rust/opening-up-the-core-team-agenda.md | 0 {posts => content}/inside-rust/pietro-joins-core-team.md | 0 {posts => content}/inside-rust/planning-meeting-update.md | 0 {posts => content}/inside-rust/planning-rust-2021.md | 0 .../inside-rust/pnkfelix-compiler-team-co-lead.md | 0 {posts => content}/inside-rust/polonius-update.md | 0 {posts => content}/inside-rust/project-director-nominees.md | 0 {posts => content}/inside-rust/project-director-update@0.md | 0 {posts => content}/inside-rust/project-director-update@1.md | 0 {posts => content}/inside-rust/project-director-update@2.md | 0 .../inside-rust/project-goals-2025h1-call-for-proposals.md | 0 .../recent-future-pattern-matching-improvements.md | 0 {posts => content}/inside-rust/relnotes-interest-group.md | 0 {posts => content}/inside-rust/rename-rustc-guide.md | 0 {posts => content}/inside-rust/rotating-compiler-leads.md | 0 {posts => content}/inside-rust/rtn-call-for-testing.md | 0 .../inside-rust/rust-ci-is-moving-to-github-actions.md | 0 {posts => content}/inside-rust/rust-leads-summit.md | 0 {posts => content}/inside-rust/rustc-dev-guide-overview.md | 0 .../inside-rust/rustc-learning-working-group-introduction.md | 0 .../inside-rust/rustdoc-performance-improvements.md | 0 .../inside-rust/rustup-1.24.0-incident-report.md | 0 {posts => content}/inside-rust/shrinkmem-rustc-sprint.md | 0 {posts => content}/inside-rust/source-based-code-coverage.md | 0 {posts => content}/inside-rust/spec-vision.md | 0 .../inside-rust/stabilizing-async-fn-in-trait.md | 0 {posts => content}/inside-rust/stabilizing-intra-doc-links.md | 0 {posts => content}/inside-rust/survey-2021-report.md | 0 {posts => content}/inside-rust/terminating-rust.md | 0 {posts => content}/inside-rust/test-infra-dec-2024.md | 0 {posts => content}/inside-rust/test-infra-jan-feb-2025.md | 0 {posts => content}/inside-rust/test-infra-nov-2024.md | 0 {posts => content}/inside-rust/test-infra-oct-2024-2.md | 0 {posts => content}/inside-rust/test-infra-oct-2024.md | 0 .../inside-rust/this-development-cycle-in-cargo-1-76.md | 0 .../inside-rust/this-development-cycle-in-cargo-1-77.md | 0 .../inside-rust/this-development-cycle-in-cargo-1.78.md | 0 .../inside-rust/this-development-cycle-in-cargo-1.79.md | 0 .../inside-rust/this-development-cycle-in-cargo-1.80.md | 0 .../inside-rust/this-development-cycle-in-cargo-1.81.md | 0 .../inside-rust/this-development-cycle-in-cargo-1.82.md | 0 .../inside-rust/this-development-cycle-in-cargo-1.83.md | 0 .../inside-rust/this-development-cycle-in-cargo-1.84.md | 0 .../inside-rust/this-development-cycle-in-cargo-1.85.md | 0 .../inside-rust/this-development-cycle-in-cargo-1.86.md | 0 .../inside-rust/trademark-policy-draft-feedback.md | 0 .../inside-rust/trait-system-refactor-initiative@0.md | 0 .../inside-rust/trait-system-refactor-initiative@1.md | 0 .../inside-rust/trait-system-refactor-initiative@2.md | 0 {posts => content}/inside-rust/traits-sprint-1.md | 0 {posts => content}/inside-rust/traits-sprint-2.md | 0 {posts => content}/inside-rust/traits-sprint-3.md | 0 {posts => content}/inside-rust/twir-new-lead.md | 0 {posts => content}/inside-rust/types-team-leadership.md | 0 .../inside-rust/upcoming-compiler-team-design-meeting@0.md | 0 .../inside-rust/upcoming-compiler-team-design-meeting@1.md | 0 .../inside-rust/upcoming-compiler-team-design-meetings@0.md | 0 .../inside-rust/upcoming-compiler-team-design-meetings@1.md | 0 .../inside-rust/upcoming-compiler-team-design-meetings@2.md | 0 .../inside-rust/upcoming-compiler-team-design-meetings@3.md | 0 .../inside-rust/upcoming-compiler-team-design-meetings@4.md | 0 .../inside-rust/update-on-the-github-actions-evaluation.md | 0 {posts => content}/inside-rust/website-retrospective.md | 0 {posts => content}/inside-rust/welcome-tc-to-the-lang-team.md | 0 {posts => content}/inside-rust/wg-learning-update.md | 0 {posts => content}/inside-rust/windows-notification-group.md | 0 {posts => content}/introducing-leadership-council.md | 0 {posts => content}/lang-ergonomics.md | 0 {posts => content}/laying-the-foundation-for-rusts-future.md | 0 {posts => content}/libz-blitz.md | 0 {posts => content}/lock-poisoning-survey.md | 0 {posts => content}/malicious-crate-rustdecimal.md | 0 {posts => content}/mdbook-security-advisory.md | 0 .../new-years-rust-a-call-for-community-blogposts.md | 0 {posts => content}/nll-by-default.md | 0 {posts => content}/nll-hard-errors.md | 0 {posts => content}/parallel-rustc.md | 0 {posts => content}/project-goals-nov-update.md | 0 {posts => content}/project-goals-oct-update.md | 0 .../reducing-support-for-32-bit-apple-targets.md | 0 {posts => content}/regex-1.9.md | 0 {posts => content}/regression-labels.md | 0 {posts => content}/roadmap@0.md | 0 {posts => content}/roadmap@1.md | 0 {posts => content}/roadmap@2.md | 0 {posts => content}/rust-2024-beta.md | 0 {posts => content}/rust-analyzer-joins-rust-org.md | 0 {posts => content}/rust-at-one-year.md | 0 {posts => content}/rust-at-two-years.md | 0 {posts => content}/rust-in-2017.md | 0 {posts => content}/rust-survey-2020.md | 0 {posts => content}/rust-unconference.md | 0 {posts => content}/rustconf-cfp.md | 0 {posts => content}/rustfmt-supports-let-else-statements.md | 0 {posts => content}/rustup.md | 0 {posts => content}/security-advisory-for-rustdoc.md | 0 {posts => content}/six-years-of-rust.md | 0 {posts => content}/sparse-registry-testing.md | 0 {posts => content}/survey-launch@0.md | 0 {posts => content}/survey-launch@1.md | 0 {posts => content}/survey-launch@2.md | 0 {posts => content}/survey-launch@3.md | 0 {posts => content}/survey-launch@4.md | 0 {posts => content}/survey@0.md | 0 {posts => content}/survey@1.md | 0 {posts => content}/survey@2.md | 0 {posts => content}/the-foundation-conversation.md | 0 {posts => content}/trademark-update.md | 0 {posts => content}/traits.md | 0 {posts => content}/types-announcement.md | 0 {posts => content}/types-team-update.md | 0 {posts => content}/upcoming-docsrs-changes.md | 0 {posts => content}/updates-to-rusts-wasi-targets.md | 0 {posts => content}/wasip2-tier-2.md | 0 .../webassembly-targets-change-in-default-target-features.md | 0 {posts => content}/wg-prio-call-for-contributors.md | 0 {posts => content}/what-is-rust-2018.md | 0 front_matter/src/lib.rs | 4 ++-- src/lib.rs | 2 +- triagebot.toml | 2 +- 596 files changed, 4 insertions(+), 4 deletions(-) rename {posts => content}/1.0-Timeline.md (100%) rename {posts => content}/2023-Rust-Annual-Survey-2023-results.md (100%) rename {posts => content}/2024-Edition-CFP.md (100%) rename {posts => content}/2024-State-Of-Rust-Survey-results.md (100%) rename {posts => content}/4-Years-Of-Rust.md (100%) rename {posts => content}/A-call-for-blogs-2020.md (100%) rename {posts => content}/Async-await-hits-beta.md (100%) rename {posts => content}/Async-await-stable.md (100%) rename {posts => content}/Cargo.md (100%) rename {posts => content}/Clippy-deprecating-feature-cargo-clippy.md (100%) rename {posts => content}/Core-Team.md (100%) rename {posts => content}/Core-team-changes.md (100%) rename {posts => content}/Core-team-membership-updates.md (100%) rename {posts => content}/Enums-match-mutation-and-moves.md (100%) rename {posts => content}/Fearless-Concurrency-In-Firefox-Quantum.md (100%) rename {posts => content}/Fearless-Concurrency.md (100%) rename {posts => content}/Final-1.0-timeline.md (100%) rename {posts => content}/GATs-stabilization-push.md (100%) rename {posts => content}/Increasing-Apple-Version-Requirements.md (100%) rename {posts => content}/Increasing-Rusts-Reach-2018.md (100%) rename {posts => content}/Increasing-Rusts-Reach.md (100%) rename {posts => content}/Increasing-glibc-kernel-requirements.md (100%) rename {posts => content}/MIR.md (100%) rename {posts => content}/Mozilla-IRC-Sunset-and-the-Rust-Channel.md (100%) rename {posts => content}/Next-steps-for-the-foundation-conversation.md (100%) rename {posts => content}/Next-year.md (100%) rename {posts => content}/OSPP-2024.md (100%) rename {posts => content}/Planning-2021-Roadmap.md (100%) rename {posts => content}/Procedural-Macros-in-Rust-2018.md (100%) rename {posts => content}/Project-Goals-Dec-Update.md (100%) rename {posts => content}/Project-Goals-Feb-Update.md (100%) rename {posts => content}/Project-Goals-Sep-Update.md (100%) rename {posts => content}/Project-goals.md (100%) rename {posts => content}/RLS-deprecation.md (100%) rename {posts => content}/Rust-1.0-alpha.md (100%) rename {posts => content}/Rust-1.0-alpha2.md (100%) rename {posts => content}/Rust-1.0-beta.md (100%) rename {posts => content}/Rust-1.0@0.md (100%) rename {posts => content}/Rust-1.0@1.md (100%) rename {posts => content}/Rust-1.1.md (100%) rename {posts => content}/Rust-1.10.md (100%) rename {posts => content}/Rust-1.11.md (100%) rename {posts => content}/Rust-1.12.1.md (100%) rename {posts => content}/Rust-1.12.md (100%) rename {posts => content}/Rust-1.13.md (100%) rename {posts => content}/Rust-1.14.md (100%) rename {posts => content}/Rust-1.15.1.md (100%) rename {posts => content}/Rust-1.15.md (100%) rename {posts => content}/Rust-1.16.md (100%) rename {posts => content}/Rust-1.17.md (100%) rename {posts => content}/Rust-1.18.md (100%) rename {posts => content}/Rust-1.19.md (100%) rename {posts => content}/Rust-1.2.md (100%) rename {posts => content}/Rust-1.20.md (100%) rename {posts => content}/Rust-1.21.md (100%) rename {posts => content}/Rust-1.22.md (100%) rename {posts => content}/Rust-1.23.md (100%) rename {posts => content}/Rust-1.24.1.md (100%) rename {posts => content}/Rust-1.24.md (100%) rename {posts => content}/Rust-1.25.md (100%) rename {posts => content}/Rust-1.26.1.md (100%) rename {posts => content}/Rust-1.26.2.md (100%) rename {posts => content}/Rust-1.26.md (100%) rename {posts => content}/Rust-1.27.1.md (100%) rename {posts => content}/Rust-1.27.2.md (100%) rename {posts => content}/Rust-1.27.md (100%) rename {posts => content}/Rust-1.28.md (100%) rename {posts => content}/Rust-1.29.1.md (100%) rename {posts => content}/Rust-1.29.2.md (100%) rename {posts => content}/Rust-1.29.md (100%) rename {posts => content}/Rust-1.3.md (100%) rename {posts => content}/Rust-1.30.0.md (100%) rename {posts => content}/Rust-1.30.1.md (100%) rename {posts => content}/Rust-1.31-and-rust-2018.md (100%) rename {posts => content}/Rust-1.31.1.md (100%) rename {posts => content}/Rust-1.32.0.md (100%) rename {posts => content}/Rust-1.33.0.md (100%) rename {posts => content}/Rust-1.34.0.md (100%) rename {posts => content}/Rust-1.34.1.md (100%) rename {posts => content}/Rust-1.34.2.md (100%) rename {posts => content}/Rust-1.35.0.md (100%) rename {posts => content}/Rust-1.36.0.md (100%) rename {posts => content}/Rust-1.37.0.md (100%) rename {posts => content}/Rust-1.38.0.md (100%) rename {posts => content}/Rust-1.39.0.md (100%) rename {posts => content}/Rust-1.4.md (100%) rename {posts => content}/Rust-1.40.0.md (100%) rename {posts => content}/Rust-1.41.0.md (100%) rename {posts => content}/Rust-1.41.1.md (100%) rename {posts => content}/Rust-1.42.md (100%) rename {posts => content}/Rust-1.43.0.md (100%) rename {posts => content}/Rust-1.44.0.md (100%) rename {posts => content}/Rust-1.45.0.md (100%) rename {posts => content}/Rust-1.45.1.md (100%) rename {posts => content}/Rust-1.45.2.md (100%) rename {posts => content}/Rust-1.46.0.md (100%) rename {posts => content}/Rust-1.47.md (100%) rename {posts => content}/Rust-1.48.md (100%) rename {posts => content}/Rust-1.49.0.md (100%) rename {posts => content}/Rust-1.5.md (100%) rename {posts => content}/Rust-1.50.0.md (100%) rename {posts => content}/Rust-1.51.0.md (100%) rename {posts => content}/Rust-1.52.0.md (100%) rename {posts => content}/Rust-1.52.1.md (100%) rename {posts => content}/Rust-1.53.0.md (100%) rename {posts => content}/Rust-1.54.0.md (100%) rename {posts => content}/Rust-1.55.0.md (100%) rename {posts => content}/Rust-1.56.0.md (100%) rename {posts => content}/Rust-1.56.1.md (100%) rename {posts => content}/Rust-1.57.0.md (100%) rename {posts => content}/Rust-1.58.0.md (100%) rename {posts => content}/Rust-1.58.1.md (100%) rename {posts => content}/Rust-1.59.0.md (100%) rename {posts => content}/Rust-1.6.md (100%) rename {posts => content}/Rust-1.60.0.md (100%) rename {posts => content}/Rust-1.61.0.md (100%) rename {posts => content}/Rust-1.62.0.md (100%) rename {posts => content}/Rust-1.62.1.md (100%) rename {posts => content}/Rust-1.63.0.md (100%) rename {posts => content}/Rust-1.64.0.md (100%) rename {posts => content}/Rust-1.65.0.md (100%) rename {posts => content}/Rust-1.66.0.md (100%) rename {posts => content}/Rust-1.66.1.md (100%) rename {posts => content}/Rust-1.67.0.md (100%) rename {posts => content}/Rust-1.67.1.md (100%) rename {posts => content}/Rust-1.68.0.md (100%) rename {posts => content}/Rust-1.68.1.md (100%) rename {posts => content}/Rust-1.68.2.md (100%) rename {posts => content}/Rust-1.69.0.md (100%) rename {posts => content}/Rust-1.7.md (100%) rename {posts => content}/Rust-1.70.0.md (100%) rename {posts => content}/Rust-1.71.0.md (100%) rename {posts => content}/Rust-1.71.1.md (100%) rename {posts => content}/Rust-1.72.0.md (100%) rename {posts => content}/Rust-1.72.1.md (100%) rename {posts => content}/Rust-1.73.0.md (100%) rename {posts => content}/Rust-1.74.0.md (100%) rename {posts => content}/Rust-1.74.1.md (100%) rename {posts => content}/Rust-1.75.0.md (100%) rename {posts => content}/Rust-1.76.0.md (100%) rename {posts => content}/Rust-1.77.0.md (100%) rename {posts => content}/Rust-1.77.1.md (100%) rename {posts => content}/Rust-1.77.2.md (100%) rename {posts => content}/Rust-1.78.0.md (100%) rename {posts => content}/Rust-1.79.0.md (100%) rename {posts => content}/Rust-1.8.md (100%) rename {posts => content}/Rust-1.80.0.md (100%) rename {posts => content}/Rust-1.80.1.md (100%) rename {posts => content}/Rust-1.81.0.md (100%) rename {posts => content}/Rust-1.82.0.md (100%) rename {posts => content}/Rust-1.83.0.md (100%) rename {posts => content}/Rust-1.84.0.md (100%) rename {posts => content}/Rust-1.84.1.md (100%) rename {posts => content}/Rust-1.85.0.md (100%) rename {posts => content}/Rust-1.85.1.md (100%) rename {posts => content}/Rust-1.9.md (100%) rename {posts => content}/Rust-2017-Survey-Results.md (100%) rename {posts => content}/Rust-2018-dev-tools.md (100%) rename {posts => content}/Rust-2021-public-testing.md (100%) rename {posts => content}/Rust-2024-public-testing.md (100%) rename {posts => content}/Rust-Once-Run-Everywhere.md (100%) rename {posts => content}/Rust-Roadmap-Update.md (100%) rename {posts => content}/Rust-Survey-2021.md (100%) rename {posts => content}/Rust-Survey-2023-Results.md (100%) rename {posts => content}/Rust-participates-in-GSoC-2024.md (100%) rename {posts => content}/Rust-participates-in-GSoC-2025.md (100%) rename {posts => content}/Rust-survey-2018.md (100%) rename {posts => content}/Rust-survey-2019.md (100%) rename {posts => content}/Rust-turns-three.md (100%) rename {posts => content}/Rust.1.43.1.md (100%) rename {posts => content}/Rust.1.44.1.md (100%) rename {posts => content}/RustConf.md (100%) rename {posts => content}/Rustup-1.20.0.md (100%) rename {posts => content}/Rustup-1.22.0.md (100%) rename {posts => content}/Rustup-1.22.1.md (100%) rename {posts => content}/Rustup-1.23.0.md (100%) rename {posts => content}/Rustup-1.24.0.md (100%) rename {posts => content}/Rustup-1.24.1.md (100%) rename {posts => content}/Rustup-1.24.2.md (100%) rename {posts => content}/Rustup-1.24.3.md (100%) rename {posts => content}/Rustup-1.25.0.md (100%) rename {posts => content}/Rustup-1.25.1.md (100%) rename {posts => content}/Rustup-1.25.2.md (100%) rename {posts => content}/Rustup-1.26.0.md (100%) rename {posts => content}/Rustup-1.27.0.md (100%) rename {posts => content}/Rustup-1.27.1.md (100%) rename {posts => content}/Rustup-1.28.0.md (100%) rename {posts => content}/Rustup-1.28.1.md (100%) rename {posts => content}/Scheduling-2021-Roadmap.md (100%) rename {posts => content}/Security-advisory-for-cargo.md (100%) rename {posts => content}/Security-advisory-for-std.md (100%) rename {posts => content}/Security-advisory.md (100%) rename {posts => content}/Shape-of-errors-to-come.md (100%) rename {posts => content}/Stability.md (100%) rename {posts => content}/State-of-Rust-Survey-2016.md (100%) rename {posts => content}/The-2018-Rust-Event-Lineup.md (100%) rename {posts => content}/The-2019-Rust-Event-Lineup.md (100%) rename {posts => content}/Underhanded-Rust.md (100%) rename {posts => content}/Update-on-crates.io-incident.md (100%) rename {posts => content}/Updating-musl-targets.md (100%) rename {posts => content}/Windows-7.md (100%) rename {posts => content}/a-new-look-for-rust-lang-org.md (100%) rename {posts => content}/adopting-the-fls.md (100%) rename {posts => content}/all-hands.md (100%) rename {posts => content}/android-ndk-update-r25.md (100%) rename {posts => content}/announcing-the-new-rust-project-directors.md (100%) rename {posts => content}/annual-survey-2024-launch.md (100%) rename {posts => content}/async-fn-rpit-in-traits.md (100%) rename {posts => content}/async-vision-doc-shiny-future.md (100%) rename {posts => content}/async-vision-doc.md (100%) rename {posts => content}/blog.toml (100%) rename {posts => content}/broken-badges-and-23k-keywords.md (100%) rename {posts => content}/call-for-rust-2019-roadmap-blogposts.md (100%) rename {posts => content}/cargo-cache-cleaning.md (100%) rename {posts => content}/cargo-cves.md (100%) rename {posts => content}/cargo-pillars.md (100%) rename {posts => content}/changes-in-the-core-team@0.md (100%) rename {posts => content}/changes-in-the-core-team@1.md (100%) rename {posts => content}/check-cfg.md (100%) rename {posts => content}/committing-lockfiles.md (100%) rename {posts => content}/conf-lineup@0.md (100%) rename {posts => content}/conf-lineup@1.md (100%) rename {posts => content}/conf-lineup@2.md (100%) rename {posts => content}/const-eval-safety-rule-revision.md (100%) rename {posts => content}/const-generics-mvp-beta.md (100%) rename {posts => content}/council-survey.md (100%) rename {posts => content}/crates-io-development-update@0.md (100%) rename {posts => content}/crates-io-development-update@1.md (100%) rename {posts => content}/crates-io-download-changes.md (100%) rename {posts => content}/crates-io-non-canonical-downloads.md (100%) rename {posts => content}/crates-io-security-advisory.md (100%) rename {posts => content}/crates-io-snapshot-branches.md (100%) rename {posts => content}/crates-io-status-codes.md (100%) rename {posts => content}/crates-io-usage-policy-rfc.md (100%) rename {posts => content}/cve-2021-42574.md (100%) rename {posts => content}/cve-2022-21658.md (100%) rename {posts => content}/cve-2022-24713.md (100%) rename {posts => content}/cve-2022-46176.md (100%) rename {posts => content}/cve-2023-38497.md (100%) rename {posts => content}/cve-2024-24576.md (100%) rename {posts => content}/cve-2024-43402.md (100%) rename {posts => content}/docs-rs-opt-into-fewer-targets.md (100%) rename {posts => content}/edition-2021.md (100%) rename {posts => content}/electing-new-project-directors.md (100%) rename {posts => content}/enabling-rust-lld-on-linux.md (100%) rename {posts => content}/event-lineup-update.md (100%) rename {posts => content}/five-years-of-rust.md (100%) rename {posts => content}/gats-stabilization.md (100%) rename {posts => content}/gccrs-an-alternative-compiler-for-rust.md (100%) rename {posts => content}/governance-wg-announcement.md (100%) rename {posts => content}/gsoc-2024-results.md (100%) rename {posts => content}/gsoc-2024-selected-projects.md (100%) rename {posts => content}/help-test-rust-2018.md (100%) rename {posts => content}/i128-layout-update.md (100%) rename {posts => content}/impl-future-for-rust.md (100%) rename {posts => content}/impl-trait-capture-rules.md (100%) rename {posts => content}/improved-api-tokens-for-crates-io.md (100%) rename {posts => content}/incremental.md (100%) rename {posts => content}/inside-rust-blog.md (100%) rename {posts => content}/inside-rust/1.45.1-prerelease.md (100%) rename {posts => content}/inside-rust/1.46.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.47.0-prerelease-2.md (100%) rename {posts => content}/inside-rust/1.47.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.48.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.49.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.50.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.51.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.52.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.53.0-prelease.md (100%) rename {posts => content}/inside-rust/1.54.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.55.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.56.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.57.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.58.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.59.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.60.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.61.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.62.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.62.1-prerelease.md (100%) rename {posts => content}/inside-rust/1.63.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.64.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.65.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.66.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.67.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.67.1-prerelease.md (100%) rename {posts => content}/inside-rust/1.68.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.68.1-prerelease.md (100%) rename {posts => content}/inside-rust/1.68.2-prerelease.md (100%) rename {posts => content}/inside-rust/1.69.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.70.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.71.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.71.1-prerelease.md (100%) rename {posts => content}/inside-rust/1.72.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.72.1-prerelease.md (100%) rename {posts => content}/inside-rust/1.73.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.74.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.74.1-prerelease.md (100%) rename {posts => content}/inside-rust/1.75.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.76.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.77.0-prerelease.md (100%) rename {posts => content}/inside-rust/1.77.1-prerelease.md (100%) rename {posts => content}/inside-rust/2020-05-21-governance-wg (100%) rename {posts => content}/inside-rust/2024-edition-update.md (100%) rename {posts => content}/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md (100%) rename {posts => content}/inside-rust/AsyncAwait-WG-Focus-Issues.md (100%) rename {posts => content}/inside-rust/Backlog-Bonanza.md (100%) rename {posts => content}/inside-rust/CTCFT-april.md (100%) rename {posts => content}/inside-rust/CTCFT-february.md (100%) rename {posts => content}/inside-rust/CTCFT-march.md (100%) rename {posts => content}/inside-rust/CTCFT-may.md (100%) rename {posts => content}/inside-rust/Cleanup-Crew-ICE-breakers.md (100%) rename {posts => content}/inside-rust/Clippy-removes-plugin-interface.md (100%) rename {posts => content}/inside-rust/Concluding-events-mods.md (100%) rename {posts => content}/inside-rust/Core-team-membership.md (100%) rename {posts => content}/inside-rust/Goverance-wg-cfp@0.md (100%) rename {posts => content}/inside-rust/Goverance-wg@0.md (100%) rename {posts => content}/inside-rust/Goverance-wg@1.md (100%) rename {posts => content}/inside-rust/Governance-WG-updated.md (100%) rename {posts => content}/inside-rust/Governance-wg@0.md (100%) rename {posts => content}/inside-rust/Introducing-cargo-audit-fix-and-more.md (100%) rename {posts => content}/inside-rust/Keeping-secure-with-cargo-audit-0.9.md (100%) rename {posts => content}/inside-rust/LLVM-ICE-breakers.md (100%) rename {posts => content}/inside-rust/Lang-Team-Meeting@0.md (100%) rename {posts => content}/inside-rust/Lang-team-Oct-update.md (100%) rename {posts => content}/inside-rust/Lang-team-july-update.md (100%) rename {posts => content}/inside-rust/Lang-team-meeting@1.md (100%) rename {posts => content}/inside-rust/Ownership-Std-Implementation.md (100%) rename {posts => content}/inside-rust/Portable-SIMD-PG.md (100%) rename {posts => content}/inside-rust/Splitting-const-generics.md (100%) rename {posts => content}/inside-rust/Using-rustc_codegen_cranelift.md (100%) rename {posts => content}/inside-rust/Welcome.md (100%) rename {posts => content}/inside-rust/What-the-error-handling-project-group-is-working-on.md (100%) rename {posts => content}/inside-rust/What-the-error-handling-project-group-is-working-towards.md (100%) rename {posts => content}/inside-rust/aaron-hill-compiler-team.md (100%) rename {posts => content}/inside-rust/all-hands-retrospective.md (100%) rename {posts => content}/inside-rust/all-hands.md (100%) rename {posts => content}/inside-rust/announcing-project-goals.md (100%) rename {posts => content}/inside-rust/announcing-the-docsrs-team.md (100%) rename {posts => content}/inside-rust/announcing-the-rust-style-team.md (100%) rename {posts => content}/inside-rust/api-token-scopes.md (100%) rename {posts => content}/inside-rust/apr-steering-cycle.md (100%) rename {posts => content}/inside-rust/async-closures-call-for-testing.md (100%) rename {posts => content}/inside-rust/async-fn-in-trait-nightly.md (100%) rename {posts => content}/inside-rust/async-in-2022.md (100%) rename {posts => content}/inside-rust/bisecting-rust-compiler.md (100%) rename {posts => content}/inside-rust/blog.toml (100%) rename {posts => content}/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md (100%) rename {posts => content}/inside-rust/cargo-config-merging.md (100%) rename {posts => content}/inside-rust/cargo-in-2020.md (100%) rename {posts => content}/inside-rust/cargo-new-members.md (100%) rename {posts => content}/inside-rust/cargo-postmortem.md (100%) rename {posts => content}/inside-rust/cargo-sparse-protocol.md (100%) rename {posts => content}/inside-rust/cargo-team-changes.md (100%) rename {posts => content}/inside-rust/changes-to-compiler-team.md (100%) rename {posts => content}/inside-rust/changes-to-rustdoc-team.md (100%) rename {posts => content}/inside-rust/changes-to-x-py-defaults.md (100%) rename {posts => content}/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md (100%) rename {posts => content}/inside-rust/clippy-team-changes.md (100%) rename {posts => content}/inside-rust/compiler-team-2022-midyear-report.md (100%) rename {posts => content}/inside-rust/compiler-team-ambitions-2022.md (100%) rename {posts => content}/inside-rust/compiler-team-april-steering-cycle.md (100%) rename {posts => content}/inside-rust/compiler-team-august-steering-cycle.md (100%) rename {posts => content}/inside-rust/compiler-team-feb-steering-cycle.md (100%) rename {posts => content}/inside-rust/compiler-team-july-steering-cycle.md (100%) rename {posts => content}/inside-rust/compiler-team-june-steering-cycle.md (100%) rename {posts => content}/inside-rust/compiler-team-meeting@0.md (100%) rename {posts => content}/inside-rust/compiler-team-meeting@1.md (100%) rename {posts => content}/inside-rust/compiler-team-meeting@2.md (100%) rename {posts => content}/inside-rust/compiler-team-meeting@3.md (100%) rename {posts => content}/inside-rust/compiler-team-meeting@4.md (100%) rename {posts => content}/inside-rust/compiler-team-meeting@5.md (100%) rename {posts => content}/inside-rust/compiler-team-meeting@6.md (100%) rename {posts => content}/inside-rust/compiler-team-new-members.md (100%) rename {posts => content}/inside-rust/compiler-team-reorg.md (100%) rename {posts => content}/inside-rust/compiler-team-sep-oct-steering-cycle.md (100%) rename {posts => content}/inside-rust/const-if-match.md (100%) rename {posts => content}/inside-rust/const-prop-on-by-default.md (100%) rename {posts => content}/inside-rust/content-delivery-networks.md (100%) rename {posts => content}/inside-rust/contributor-survey.md (100%) rename {posts => content}/inside-rust/core-team-update.md (100%) rename {posts => content}/inside-rust/core-team-updates.md (100%) rename {posts => content}/inside-rust/coroutines.md (100%) rename {posts => content}/inside-rust/crates-io-incident-report.md (100%) rename {posts => content}/inside-rust/crates-io-malware-postmortem.md (100%) rename {posts => content}/inside-rust/crates-io-postmortem.md (100%) rename {posts => content}/inside-rust/davidtwco-jackhuey-compiler-members.md (100%) rename {posts => content}/inside-rust/diagnostic-effort.md (100%) rename {posts => content}/inside-rust/dns-outage-portmortem.md (100%) rename {posts => content}/inside-rust/docsrs-outage-postmortem.md (100%) rename {posts => content}/inside-rust/ecstatic-morse-for-compiler-contributors.md (100%) rename {posts => content}/inside-rust/electing-new-project-directors.md (100%) rename {posts => content}/inside-rust/embedded-wg-micro-survey.md (100%) rename {posts => content}/inside-rust/error-handling-wg-announcement.md (100%) rename {posts => content}/inside-rust/evaluating-github-actions.md (100%) rename {posts => content}/inside-rust/exploring-pgo-for-the-rust-compiler.md (100%) rename {posts => content}/inside-rust/feb-lang-team-design-meetings.md (100%) rename {posts => content}/inside-rust/feb-steering-cycle.md (100%) rename {posts => content}/inside-rust/ffi-unwind-design-meeting.md (100%) rename {posts => content}/inside-rust/ffi-unwind-longjmp.md (100%) rename {posts => content}/inside-rust/follow-up-on-the-moderation-issue.md (100%) rename {posts => content}/inside-rust/formatting-the-compiler.md (100%) rename {posts => content}/inside-rust/goodbye-docs-team.md (100%) rename {posts => content}/inside-rust/goverance-wg-cfp@1.md (100%) rename {posts => content}/inside-rust/governance-reform-rfc.md (100%) rename {posts => content}/inside-rust/governance-update@0.md (100%) rename {posts => content}/inside-rust/governance-update@1.md (100%) rename {posts => content}/inside-rust/governance-wg-meeting@0.md (100%) rename {posts => content}/inside-rust/governance-wg-meeting@1.md (100%) rename {posts => content}/inside-rust/governance-wg-meeting@2.md (100%) rename {posts => content}/inside-rust/governance-wg@1.md (100%) rename {posts => content}/inside-rust/hiring-for-program-management.md (100%) rename {posts => content}/inside-rust/ide-future.md (100%) rename {posts => content}/inside-rust/imposter-syndrome.md (100%) rename {posts => content}/inside-rust/in-response-to-the-moderation-team-resignation.md (100%) rename {posts => content}/inside-rust/inferred-const-generic-arguments.md (100%) rename {posts => content}/inside-rust/infra-team-leadership-change.md (100%) rename {posts => content}/inside-rust/infra-team-meeting@0.md (100%) rename {posts => content}/inside-rust/infra-team-meeting@1.md (100%) rename {posts => content}/inside-rust/infra-team-meeting@2.md (100%) rename {posts => content}/inside-rust/infra-team-meeting@3.md (100%) rename {posts => content}/inside-rust/infra-team-meeting@4.md (100%) rename {posts => content}/inside-rust/infra-team-meeting@5.md (100%) rename {posts => content}/inside-rust/infra-team-meeting@6.md (100%) rename {posts => content}/inside-rust/infra-team-meeting@7.md (100%) rename {posts => content}/inside-rust/intro-rustc-self-profile.md (100%) rename {posts => content}/inside-rust/jan-steering-cycle.md (100%) rename {posts => content}/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md (100%) rename {posts => content}/inside-rust/jsha-rustdoc-member.md (100%) rename {posts => content}/inside-rust/jtgeibel-crates-io-co-lead.md (100%) rename {posts => content}/inside-rust/jun-steering-cycle.md (100%) rename {posts => content}/inside-rust/keeping-secure-with-cargo-audit-0.18.md (100%) rename {posts => content}/inside-rust/keyword-generics-progress-report-feb-2023.md (100%) rename {posts => content}/inside-rust/keyword-generics.md (100%) rename {posts => content}/inside-rust/lang-advisors.md (100%) rename {posts => content}/inside-rust/lang-roadmap-2024.md (100%) rename {posts => content}/inside-rust/lang-team-apr-update.md (100%) rename {posts => content}/inside-rust/lang-team-april-update.md (100%) rename {posts => content}/inside-rust/lang-team-aug-update.md (100%) rename {posts => content}/inside-rust/lang-team-colead.md (100%) rename {posts => content}/inside-rust/lang-team-design-meeting-min-const-generics.md (100%) rename {posts => content}/inside-rust/lang-team-design-meeting-update.md (100%) rename {posts => content}/inside-rust/lang-team-design-meeting-wf-types.md (100%) rename {posts => content}/inside-rust/lang-team-design-meetings@0.md (100%) rename {posts => content}/inside-rust/lang-team-design-meetings@1.md (100%) rename {posts => content}/inside-rust/lang-team-design-meetings@2.md (100%) rename {posts => content}/inside-rust/lang-team-feb-update@0.md (100%) rename {posts => content}/inside-rust/lang-team-feb-update@1.md (100%) rename {posts => content}/inside-rust/lang-team-mar-update@0.md (100%) rename {posts => content}/inside-rust/lang-team-mar-update@1.md (100%) rename {posts => content}/inside-rust/lang-team-meetings-rescheduled.md (100%) rename {posts => content}/inside-rust/lang-team-membership-update.md (100%) rename {posts => content}/inside-rust/lang-team-path-to-membership.md (100%) rename {posts => content}/inside-rust/launching-pad-representative.md (100%) rename {posts => content}/inside-rust/leadership-council-membership-changes.md (100%) rename {posts => content}/inside-rust/leadership-council-repr-selection@0.md (100%) rename {posts => content}/inside-rust/leadership-council-repr-selection@1.md (100%) rename {posts => content}/inside-rust/leadership-council-repr-selection@2.md (100%) rename {posts => content}/inside-rust/leadership-council-repr-selection@3.md (100%) rename {posts => content}/inside-rust/leadership-council-repr-selection@4.md (100%) rename {posts => content}/inside-rust/leadership-council-repr-selection@5.md (100%) rename {posts => content}/inside-rust/leadership-council-update@0.md (100%) rename {posts => content}/inside-rust/leadership-council-update@1.md (100%) rename {posts => content}/inside-rust/leadership-council-update@2.md (100%) rename {posts => content}/inside-rust/leadership-council-update@3.md (100%) rename {posts => content}/inside-rust/leadership-council-update@4.md (100%) rename {posts => content}/inside-rust/leadership-council-update@5.md (100%) rename {posts => content}/inside-rust/leadership-council-update@6.md (100%) rename {posts => content}/inside-rust/leadership-initiatives.md (100%) rename {posts => content}/inside-rust/libs-aspirations.md (100%) rename {posts => content}/inside-rust/libs-contributors-the8472-kodraus.md (100%) rename {posts => content}/inside-rust/libs-contributors@0.md (100%) rename {posts => content}/inside-rust/libs-contributors@1.md (100%) rename {posts => content}/inside-rust/libs-member.md (100%) rename {posts => content}/inside-rust/lto-improvements.md (100%) rename {posts => content}/inside-rust/mar-steering-cycle.md (100%) rename {posts => content}/inside-rust/new-inline-asm.md (100%) rename {posts => content}/inside-rust/opening-up-the-core-team-agenda.md (100%) rename {posts => content}/inside-rust/pietro-joins-core-team.md (100%) rename {posts => content}/inside-rust/planning-meeting-update.md (100%) rename {posts => content}/inside-rust/planning-rust-2021.md (100%) rename {posts => content}/inside-rust/pnkfelix-compiler-team-co-lead.md (100%) rename {posts => content}/inside-rust/polonius-update.md (100%) rename {posts => content}/inside-rust/project-director-nominees.md (100%) rename {posts => content}/inside-rust/project-director-update@0.md (100%) rename {posts => content}/inside-rust/project-director-update@1.md (100%) rename {posts => content}/inside-rust/project-director-update@2.md (100%) rename {posts => content}/inside-rust/project-goals-2025h1-call-for-proposals.md (100%) rename {posts => content}/inside-rust/recent-future-pattern-matching-improvements.md (100%) rename {posts => content}/inside-rust/relnotes-interest-group.md (100%) rename {posts => content}/inside-rust/rename-rustc-guide.md (100%) rename {posts => content}/inside-rust/rotating-compiler-leads.md (100%) rename {posts => content}/inside-rust/rtn-call-for-testing.md (100%) rename {posts => content}/inside-rust/rust-ci-is-moving-to-github-actions.md (100%) rename {posts => content}/inside-rust/rust-leads-summit.md (100%) rename {posts => content}/inside-rust/rustc-dev-guide-overview.md (100%) rename {posts => content}/inside-rust/rustc-learning-working-group-introduction.md (100%) rename {posts => content}/inside-rust/rustdoc-performance-improvements.md (100%) rename {posts => content}/inside-rust/rustup-1.24.0-incident-report.md (100%) rename {posts => content}/inside-rust/shrinkmem-rustc-sprint.md (100%) rename {posts => content}/inside-rust/source-based-code-coverage.md (100%) rename {posts => content}/inside-rust/spec-vision.md (100%) rename {posts => content}/inside-rust/stabilizing-async-fn-in-trait.md (100%) rename {posts => content}/inside-rust/stabilizing-intra-doc-links.md (100%) rename {posts => content}/inside-rust/survey-2021-report.md (100%) rename {posts => content}/inside-rust/terminating-rust.md (100%) rename {posts => content}/inside-rust/test-infra-dec-2024.md (100%) rename {posts => content}/inside-rust/test-infra-jan-feb-2025.md (100%) rename {posts => content}/inside-rust/test-infra-nov-2024.md (100%) rename {posts => content}/inside-rust/test-infra-oct-2024-2.md (100%) rename {posts => content}/inside-rust/test-infra-oct-2024.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1-76.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1-77.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1.78.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1.79.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1.80.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1.81.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1.82.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1.83.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1.84.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1.85.md (100%) rename {posts => content}/inside-rust/this-development-cycle-in-cargo-1.86.md (100%) rename {posts => content}/inside-rust/trademark-policy-draft-feedback.md (100%) rename {posts => content}/inside-rust/trait-system-refactor-initiative@0.md (100%) rename {posts => content}/inside-rust/trait-system-refactor-initiative@1.md (100%) rename {posts => content}/inside-rust/trait-system-refactor-initiative@2.md (100%) rename {posts => content}/inside-rust/traits-sprint-1.md (100%) rename {posts => content}/inside-rust/traits-sprint-2.md (100%) rename {posts => content}/inside-rust/traits-sprint-3.md (100%) rename {posts => content}/inside-rust/twir-new-lead.md (100%) rename {posts => content}/inside-rust/types-team-leadership.md (100%) rename {posts => content}/inside-rust/upcoming-compiler-team-design-meeting@0.md (100%) rename {posts => content}/inside-rust/upcoming-compiler-team-design-meeting@1.md (100%) rename {posts => content}/inside-rust/upcoming-compiler-team-design-meetings@0.md (100%) rename {posts => content}/inside-rust/upcoming-compiler-team-design-meetings@1.md (100%) rename {posts => content}/inside-rust/upcoming-compiler-team-design-meetings@2.md (100%) rename {posts => content}/inside-rust/upcoming-compiler-team-design-meetings@3.md (100%) rename {posts => content}/inside-rust/upcoming-compiler-team-design-meetings@4.md (100%) rename {posts => content}/inside-rust/update-on-the-github-actions-evaluation.md (100%) rename {posts => content}/inside-rust/website-retrospective.md (100%) rename {posts => content}/inside-rust/welcome-tc-to-the-lang-team.md (100%) rename {posts => content}/inside-rust/wg-learning-update.md (100%) rename {posts => content}/inside-rust/windows-notification-group.md (100%) rename {posts => content}/introducing-leadership-council.md (100%) rename {posts => content}/lang-ergonomics.md (100%) rename {posts => content}/laying-the-foundation-for-rusts-future.md (100%) rename {posts => content}/libz-blitz.md (100%) rename {posts => content}/lock-poisoning-survey.md (100%) rename {posts => content}/malicious-crate-rustdecimal.md (100%) rename {posts => content}/mdbook-security-advisory.md (100%) rename {posts => content}/new-years-rust-a-call-for-community-blogposts.md (100%) rename {posts => content}/nll-by-default.md (100%) rename {posts => content}/nll-hard-errors.md (100%) rename {posts => content}/parallel-rustc.md (100%) rename {posts => content}/project-goals-nov-update.md (100%) rename {posts => content}/project-goals-oct-update.md (100%) rename {posts => content}/reducing-support-for-32-bit-apple-targets.md (100%) rename {posts => content}/regex-1.9.md (100%) rename {posts => content}/regression-labels.md (100%) rename {posts => content}/roadmap@0.md (100%) rename {posts => content}/roadmap@1.md (100%) rename {posts => content}/roadmap@2.md (100%) rename {posts => content}/rust-2024-beta.md (100%) rename {posts => content}/rust-analyzer-joins-rust-org.md (100%) rename {posts => content}/rust-at-one-year.md (100%) rename {posts => content}/rust-at-two-years.md (100%) rename {posts => content}/rust-in-2017.md (100%) rename {posts => content}/rust-survey-2020.md (100%) rename {posts => content}/rust-unconference.md (100%) rename {posts => content}/rustconf-cfp.md (100%) rename {posts => content}/rustfmt-supports-let-else-statements.md (100%) rename {posts => content}/rustup.md (100%) rename {posts => content}/security-advisory-for-rustdoc.md (100%) rename {posts => content}/six-years-of-rust.md (100%) rename {posts => content}/sparse-registry-testing.md (100%) rename {posts => content}/survey-launch@0.md (100%) rename {posts => content}/survey-launch@1.md (100%) rename {posts => content}/survey-launch@2.md (100%) rename {posts => content}/survey-launch@3.md (100%) rename {posts => content}/survey-launch@4.md (100%) rename {posts => content}/survey@0.md (100%) rename {posts => content}/survey@1.md (100%) rename {posts => content}/survey@2.md (100%) rename {posts => content}/the-foundation-conversation.md (100%) rename {posts => content}/trademark-update.md (100%) rename {posts => content}/traits.md (100%) rename {posts => content}/types-announcement.md (100%) rename {posts => content}/types-team-update.md (100%) rename {posts => content}/upcoming-docsrs-changes.md (100%) rename {posts => content}/updates-to-rusts-wasi-targets.md (100%) rename {posts => content}/wasip2-tier-2.md (100%) rename {posts => content}/webassembly-targets-change-in-default-target-features.md (100%) rename {posts => content}/wg-prio-call-for-contributors.md (100%) rename {posts => content}/what-is-rust-2018.md (100%) diff --git a/posts/1.0-Timeline.md b/content/1.0-Timeline.md similarity index 100% rename from posts/1.0-Timeline.md rename to content/1.0-Timeline.md diff --git a/posts/2023-Rust-Annual-Survey-2023-results.md b/content/2023-Rust-Annual-Survey-2023-results.md similarity index 100% rename from posts/2023-Rust-Annual-Survey-2023-results.md rename to content/2023-Rust-Annual-Survey-2023-results.md diff --git a/posts/2024-Edition-CFP.md b/content/2024-Edition-CFP.md similarity index 100% rename from posts/2024-Edition-CFP.md rename to content/2024-Edition-CFP.md diff --git a/posts/2024-State-Of-Rust-Survey-results.md b/content/2024-State-Of-Rust-Survey-results.md similarity index 100% rename from posts/2024-State-Of-Rust-Survey-results.md rename to content/2024-State-Of-Rust-Survey-results.md diff --git a/posts/4-Years-Of-Rust.md b/content/4-Years-Of-Rust.md similarity index 100% rename from posts/4-Years-Of-Rust.md rename to content/4-Years-Of-Rust.md diff --git a/posts/A-call-for-blogs-2020.md b/content/A-call-for-blogs-2020.md similarity index 100% rename from posts/A-call-for-blogs-2020.md rename to content/A-call-for-blogs-2020.md diff --git a/posts/Async-await-hits-beta.md b/content/Async-await-hits-beta.md similarity index 100% rename from posts/Async-await-hits-beta.md rename to content/Async-await-hits-beta.md diff --git a/posts/Async-await-stable.md b/content/Async-await-stable.md similarity index 100% rename from posts/Async-await-stable.md rename to content/Async-await-stable.md diff --git a/posts/Cargo.md b/content/Cargo.md similarity index 100% rename from posts/Cargo.md rename to content/Cargo.md diff --git a/posts/Clippy-deprecating-feature-cargo-clippy.md b/content/Clippy-deprecating-feature-cargo-clippy.md similarity index 100% rename from posts/Clippy-deprecating-feature-cargo-clippy.md rename to content/Clippy-deprecating-feature-cargo-clippy.md diff --git a/posts/Core-Team.md b/content/Core-Team.md similarity index 100% rename from posts/Core-Team.md rename to content/Core-Team.md diff --git a/posts/Core-team-changes.md b/content/Core-team-changes.md similarity index 100% rename from posts/Core-team-changes.md rename to content/Core-team-changes.md diff --git a/posts/Core-team-membership-updates.md b/content/Core-team-membership-updates.md similarity index 100% rename from posts/Core-team-membership-updates.md rename to content/Core-team-membership-updates.md diff --git a/posts/Enums-match-mutation-and-moves.md b/content/Enums-match-mutation-and-moves.md similarity index 100% rename from posts/Enums-match-mutation-and-moves.md rename to content/Enums-match-mutation-and-moves.md diff --git a/posts/Fearless-Concurrency-In-Firefox-Quantum.md b/content/Fearless-Concurrency-In-Firefox-Quantum.md similarity index 100% rename from posts/Fearless-Concurrency-In-Firefox-Quantum.md rename to content/Fearless-Concurrency-In-Firefox-Quantum.md diff --git a/posts/Fearless-Concurrency.md b/content/Fearless-Concurrency.md similarity index 100% rename from posts/Fearless-Concurrency.md rename to content/Fearless-Concurrency.md diff --git a/posts/Final-1.0-timeline.md b/content/Final-1.0-timeline.md similarity index 100% rename from posts/Final-1.0-timeline.md rename to content/Final-1.0-timeline.md diff --git a/posts/GATs-stabilization-push.md b/content/GATs-stabilization-push.md similarity index 100% rename from posts/GATs-stabilization-push.md rename to content/GATs-stabilization-push.md diff --git a/posts/Increasing-Apple-Version-Requirements.md b/content/Increasing-Apple-Version-Requirements.md similarity index 100% rename from posts/Increasing-Apple-Version-Requirements.md rename to content/Increasing-Apple-Version-Requirements.md diff --git a/posts/Increasing-Rusts-Reach-2018.md b/content/Increasing-Rusts-Reach-2018.md similarity index 100% rename from posts/Increasing-Rusts-Reach-2018.md rename to content/Increasing-Rusts-Reach-2018.md diff --git a/posts/Increasing-Rusts-Reach.md b/content/Increasing-Rusts-Reach.md similarity index 100% rename from posts/Increasing-Rusts-Reach.md rename to content/Increasing-Rusts-Reach.md diff --git a/posts/Increasing-glibc-kernel-requirements.md b/content/Increasing-glibc-kernel-requirements.md similarity index 100% rename from posts/Increasing-glibc-kernel-requirements.md rename to content/Increasing-glibc-kernel-requirements.md diff --git a/posts/MIR.md b/content/MIR.md similarity index 100% rename from posts/MIR.md rename to content/MIR.md diff --git a/posts/Mozilla-IRC-Sunset-and-the-Rust-Channel.md b/content/Mozilla-IRC-Sunset-and-the-Rust-Channel.md similarity index 100% rename from posts/Mozilla-IRC-Sunset-and-the-Rust-Channel.md rename to content/Mozilla-IRC-Sunset-and-the-Rust-Channel.md diff --git a/posts/Next-steps-for-the-foundation-conversation.md b/content/Next-steps-for-the-foundation-conversation.md similarity index 100% rename from posts/Next-steps-for-the-foundation-conversation.md rename to content/Next-steps-for-the-foundation-conversation.md diff --git a/posts/Next-year.md b/content/Next-year.md similarity index 100% rename from posts/Next-year.md rename to content/Next-year.md diff --git a/posts/OSPP-2024.md b/content/OSPP-2024.md similarity index 100% rename from posts/OSPP-2024.md rename to content/OSPP-2024.md diff --git a/posts/Planning-2021-Roadmap.md b/content/Planning-2021-Roadmap.md similarity index 100% rename from posts/Planning-2021-Roadmap.md rename to content/Planning-2021-Roadmap.md diff --git a/posts/Procedural-Macros-in-Rust-2018.md b/content/Procedural-Macros-in-Rust-2018.md similarity index 100% rename from posts/Procedural-Macros-in-Rust-2018.md rename to content/Procedural-Macros-in-Rust-2018.md diff --git a/posts/Project-Goals-Dec-Update.md b/content/Project-Goals-Dec-Update.md similarity index 100% rename from posts/Project-Goals-Dec-Update.md rename to content/Project-Goals-Dec-Update.md diff --git a/posts/Project-Goals-Feb-Update.md b/content/Project-Goals-Feb-Update.md similarity index 100% rename from posts/Project-Goals-Feb-Update.md rename to content/Project-Goals-Feb-Update.md diff --git a/posts/Project-Goals-Sep-Update.md b/content/Project-Goals-Sep-Update.md similarity index 100% rename from posts/Project-Goals-Sep-Update.md rename to content/Project-Goals-Sep-Update.md diff --git a/posts/Project-goals.md b/content/Project-goals.md similarity index 100% rename from posts/Project-goals.md rename to content/Project-goals.md diff --git a/posts/RLS-deprecation.md b/content/RLS-deprecation.md similarity index 100% rename from posts/RLS-deprecation.md rename to content/RLS-deprecation.md diff --git a/posts/Rust-1.0-alpha.md b/content/Rust-1.0-alpha.md similarity index 100% rename from posts/Rust-1.0-alpha.md rename to content/Rust-1.0-alpha.md diff --git a/posts/Rust-1.0-alpha2.md b/content/Rust-1.0-alpha2.md similarity index 100% rename from posts/Rust-1.0-alpha2.md rename to content/Rust-1.0-alpha2.md diff --git a/posts/Rust-1.0-beta.md b/content/Rust-1.0-beta.md similarity index 100% rename from posts/Rust-1.0-beta.md rename to content/Rust-1.0-beta.md diff --git a/posts/Rust-1.0@0.md b/content/Rust-1.0@0.md similarity index 100% rename from posts/Rust-1.0@0.md rename to content/Rust-1.0@0.md diff --git a/posts/Rust-1.0@1.md b/content/Rust-1.0@1.md similarity index 100% rename from posts/Rust-1.0@1.md rename to content/Rust-1.0@1.md diff --git a/posts/Rust-1.1.md b/content/Rust-1.1.md similarity index 100% rename from posts/Rust-1.1.md rename to content/Rust-1.1.md diff --git a/posts/Rust-1.10.md b/content/Rust-1.10.md similarity index 100% rename from posts/Rust-1.10.md rename to content/Rust-1.10.md diff --git a/posts/Rust-1.11.md b/content/Rust-1.11.md similarity index 100% rename from posts/Rust-1.11.md rename to content/Rust-1.11.md diff --git a/posts/Rust-1.12.1.md b/content/Rust-1.12.1.md similarity index 100% rename from posts/Rust-1.12.1.md rename to content/Rust-1.12.1.md diff --git a/posts/Rust-1.12.md b/content/Rust-1.12.md similarity index 100% rename from posts/Rust-1.12.md rename to content/Rust-1.12.md diff --git a/posts/Rust-1.13.md b/content/Rust-1.13.md similarity index 100% rename from posts/Rust-1.13.md rename to content/Rust-1.13.md diff --git a/posts/Rust-1.14.md b/content/Rust-1.14.md similarity index 100% rename from posts/Rust-1.14.md rename to content/Rust-1.14.md diff --git a/posts/Rust-1.15.1.md b/content/Rust-1.15.1.md similarity index 100% rename from posts/Rust-1.15.1.md rename to content/Rust-1.15.1.md diff --git a/posts/Rust-1.15.md b/content/Rust-1.15.md similarity index 100% rename from posts/Rust-1.15.md rename to content/Rust-1.15.md diff --git a/posts/Rust-1.16.md b/content/Rust-1.16.md similarity index 100% rename from posts/Rust-1.16.md rename to content/Rust-1.16.md diff --git a/posts/Rust-1.17.md b/content/Rust-1.17.md similarity index 100% rename from posts/Rust-1.17.md rename to content/Rust-1.17.md diff --git a/posts/Rust-1.18.md b/content/Rust-1.18.md similarity index 100% rename from posts/Rust-1.18.md rename to content/Rust-1.18.md diff --git a/posts/Rust-1.19.md b/content/Rust-1.19.md similarity index 100% rename from posts/Rust-1.19.md rename to content/Rust-1.19.md diff --git a/posts/Rust-1.2.md b/content/Rust-1.2.md similarity index 100% rename from posts/Rust-1.2.md rename to content/Rust-1.2.md diff --git a/posts/Rust-1.20.md b/content/Rust-1.20.md similarity index 100% rename from posts/Rust-1.20.md rename to content/Rust-1.20.md diff --git a/posts/Rust-1.21.md b/content/Rust-1.21.md similarity index 100% rename from posts/Rust-1.21.md rename to content/Rust-1.21.md diff --git a/posts/Rust-1.22.md b/content/Rust-1.22.md similarity index 100% rename from posts/Rust-1.22.md rename to content/Rust-1.22.md diff --git a/posts/Rust-1.23.md b/content/Rust-1.23.md similarity index 100% rename from posts/Rust-1.23.md rename to content/Rust-1.23.md diff --git a/posts/Rust-1.24.1.md b/content/Rust-1.24.1.md similarity index 100% rename from posts/Rust-1.24.1.md rename to content/Rust-1.24.1.md diff --git a/posts/Rust-1.24.md b/content/Rust-1.24.md similarity index 100% rename from posts/Rust-1.24.md rename to content/Rust-1.24.md diff --git a/posts/Rust-1.25.md b/content/Rust-1.25.md similarity index 100% rename from posts/Rust-1.25.md rename to content/Rust-1.25.md diff --git a/posts/Rust-1.26.1.md b/content/Rust-1.26.1.md similarity index 100% rename from posts/Rust-1.26.1.md rename to content/Rust-1.26.1.md diff --git a/posts/Rust-1.26.2.md b/content/Rust-1.26.2.md similarity index 100% rename from posts/Rust-1.26.2.md rename to content/Rust-1.26.2.md diff --git a/posts/Rust-1.26.md b/content/Rust-1.26.md similarity index 100% rename from posts/Rust-1.26.md rename to content/Rust-1.26.md diff --git a/posts/Rust-1.27.1.md b/content/Rust-1.27.1.md similarity index 100% rename from posts/Rust-1.27.1.md rename to content/Rust-1.27.1.md diff --git a/posts/Rust-1.27.2.md b/content/Rust-1.27.2.md similarity index 100% rename from posts/Rust-1.27.2.md rename to content/Rust-1.27.2.md diff --git a/posts/Rust-1.27.md b/content/Rust-1.27.md similarity index 100% rename from posts/Rust-1.27.md rename to content/Rust-1.27.md diff --git a/posts/Rust-1.28.md b/content/Rust-1.28.md similarity index 100% rename from posts/Rust-1.28.md rename to content/Rust-1.28.md diff --git a/posts/Rust-1.29.1.md b/content/Rust-1.29.1.md similarity index 100% rename from posts/Rust-1.29.1.md rename to content/Rust-1.29.1.md diff --git a/posts/Rust-1.29.2.md b/content/Rust-1.29.2.md similarity index 100% rename from posts/Rust-1.29.2.md rename to content/Rust-1.29.2.md diff --git a/posts/Rust-1.29.md b/content/Rust-1.29.md similarity index 100% rename from posts/Rust-1.29.md rename to content/Rust-1.29.md diff --git a/posts/Rust-1.3.md b/content/Rust-1.3.md similarity index 100% rename from posts/Rust-1.3.md rename to content/Rust-1.3.md diff --git a/posts/Rust-1.30.0.md b/content/Rust-1.30.0.md similarity index 100% rename from posts/Rust-1.30.0.md rename to content/Rust-1.30.0.md diff --git a/posts/Rust-1.30.1.md b/content/Rust-1.30.1.md similarity index 100% rename from posts/Rust-1.30.1.md rename to content/Rust-1.30.1.md diff --git a/posts/Rust-1.31-and-rust-2018.md b/content/Rust-1.31-and-rust-2018.md similarity index 100% rename from posts/Rust-1.31-and-rust-2018.md rename to content/Rust-1.31-and-rust-2018.md diff --git a/posts/Rust-1.31.1.md b/content/Rust-1.31.1.md similarity index 100% rename from posts/Rust-1.31.1.md rename to content/Rust-1.31.1.md diff --git a/posts/Rust-1.32.0.md b/content/Rust-1.32.0.md similarity index 100% rename from posts/Rust-1.32.0.md rename to content/Rust-1.32.0.md diff --git a/posts/Rust-1.33.0.md b/content/Rust-1.33.0.md similarity index 100% rename from posts/Rust-1.33.0.md rename to content/Rust-1.33.0.md diff --git a/posts/Rust-1.34.0.md b/content/Rust-1.34.0.md similarity index 100% rename from posts/Rust-1.34.0.md rename to content/Rust-1.34.0.md diff --git a/posts/Rust-1.34.1.md b/content/Rust-1.34.1.md similarity index 100% rename from posts/Rust-1.34.1.md rename to content/Rust-1.34.1.md diff --git a/posts/Rust-1.34.2.md b/content/Rust-1.34.2.md similarity index 100% rename from posts/Rust-1.34.2.md rename to content/Rust-1.34.2.md diff --git a/posts/Rust-1.35.0.md b/content/Rust-1.35.0.md similarity index 100% rename from posts/Rust-1.35.0.md rename to content/Rust-1.35.0.md diff --git a/posts/Rust-1.36.0.md b/content/Rust-1.36.0.md similarity index 100% rename from posts/Rust-1.36.0.md rename to content/Rust-1.36.0.md diff --git a/posts/Rust-1.37.0.md b/content/Rust-1.37.0.md similarity index 100% rename from posts/Rust-1.37.0.md rename to content/Rust-1.37.0.md diff --git a/posts/Rust-1.38.0.md b/content/Rust-1.38.0.md similarity index 100% rename from posts/Rust-1.38.0.md rename to content/Rust-1.38.0.md diff --git a/posts/Rust-1.39.0.md b/content/Rust-1.39.0.md similarity index 100% rename from posts/Rust-1.39.0.md rename to content/Rust-1.39.0.md diff --git a/posts/Rust-1.4.md b/content/Rust-1.4.md similarity index 100% rename from posts/Rust-1.4.md rename to content/Rust-1.4.md diff --git a/posts/Rust-1.40.0.md b/content/Rust-1.40.0.md similarity index 100% rename from posts/Rust-1.40.0.md rename to content/Rust-1.40.0.md diff --git a/posts/Rust-1.41.0.md b/content/Rust-1.41.0.md similarity index 100% rename from posts/Rust-1.41.0.md rename to content/Rust-1.41.0.md diff --git a/posts/Rust-1.41.1.md b/content/Rust-1.41.1.md similarity index 100% rename from posts/Rust-1.41.1.md rename to content/Rust-1.41.1.md diff --git a/posts/Rust-1.42.md b/content/Rust-1.42.md similarity index 100% rename from posts/Rust-1.42.md rename to content/Rust-1.42.md diff --git a/posts/Rust-1.43.0.md b/content/Rust-1.43.0.md similarity index 100% rename from posts/Rust-1.43.0.md rename to content/Rust-1.43.0.md diff --git a/posts/Rust-1.44.0.md b/content/Rust-1.44.0.md similarity index 100% rename from posts/Rust-1.44.0.md rename to content/Rust-1.44.0.md diff --git a/posts/Rust-1.45.0.md b/content/Rust-1.45.0.md similarity index 100% rename from posts/Rust-1.45.0.md rename to content/Rust-1.45.0.md diff --git a/posts/Rust-1.45.1.md b/content/Rust-1.45.1.md similarity index 100% rename from posts/Rust-1.45.1.md rename to content/Rust-1.45.1.md diff --git a/posts/Rust-1.45.2.md b/content/Rust-1.45.2.md similarity index 100% rename from posts/Rust-1.45.2.md rename to content/Rust-1.45.2.md diff --git a/posts/Rust-1.46.0.md b/content/Rust-1.46.0.md similarity index 100% rename from posts/Rust-1.46.0.md rename to content/Rust-1.46.0.md diff --git a/posts/Rust-1.47.md b/content/Rust-1.47.md similarity index 100% rename from posts/Rust-1.47.md rename to content/Rust-1.47.md diff --git a/posts/Rust-1.48.md b/content/Rust-1.48.md similarity index 100% rename from posts/Rust-1.48.md rename to content/Rust-1.48.md diff --git a/posts/Rust-1.49.0.md b/content/Rust-1.49.0.md similarity index 100% rename from posts/Rust-1.49.0.md rename to content/Rust-1.49.0.md diff --git a/posts/Rust-1.5.md b/content/Rust-1.5.md similarity index 100% rename from posts/Rust-1.5.md rename to content/Rust-1.5.md diff --git a/posts/Rust-1.50.0.md b/content/Rust-1.50.0.md similarity index 100% rename from posts/Rust-1.50.0.md rename to content/Rust-1.50.0.md diff --git a/posts/Rust-1.51.0.md b/content/Rust-1.51.0.md similarity index 100% rename from posts/Rust-1.51.0.md rename to content/Rust-1.51.0.md diff --git a/posts/Rust-1.52.0.md b/content/Rust-1.52.0.md similarity index 100% rename from posts/Rust-1.52.0.md rename to content/Rust-1.52.0.md diff --git a/posts/Rust-1.52.1.md b/content/Rust-1.52.1.md similarity index 100% rename from posts/Rust-1.52.1.md rename to content/Rust-1.52.1.md diff --git a/posts/Rust-1.53.0.md b/content/Rust-1.53.0.md similarity index 100% rename from posts/Rust-1.53.0.md rename to content/Rust-1.53.0.md diff --git a/posts/Rust-1.54.0.md b/content/Rust-1.54.0.md similarity index 100% rename from posts/Rust-1.54.0.md rename to content/Rust-1.54.0.md diff --git a/posts/Rust-1.55.0.md b/content/Rust-1.55.0.md similarity index 100% rename from posts/Rust-1.55.0.md rename to content/Rust-1.55.0.md diff --git a/posts/Rust-1.56.0.md b/content/Rust-1.56.0.md similarity index 100% rename from posts/Rust-1.56.0.md rename to content/Rust-1.56.0.md diff --git a/posts/Rust-1.56.1.md b/content/Rust-1.56.1.md similarity index 100% rename from posts/Rust-1.56.1.md rename to content/Rust-1.56.1.md diff --git a/posts/Rust-1.57.0.md b/content/Rust-1.57.0.md similarity index 100% rename from posts/Rust-1.57.0.md rename to content/Rust-1.57.0.md diff --git a/posts/Rust-1.58.0.md b/content/Rust-1.58.0.md similarity index 100% rename from posts/Rust-1.58.0.md rename to content/Rust-1.58.0.md diff --git a/posts/Rust-1.58.1.md b/content/Rust-1.58.1.md similarity index 100% rename from posts/Rust-1.58.1.md rename to content/Rust-1.58.1.md diff --git a/posts/Rust-1.59.0.md b/content/Rust-1.59.0.md similarity index 100% rename from posts/Rust-1.59.0.md rename to content/Rust-1.59.0.md diff --git a/posts/Rust-1.6.md b/content/Rust-1.6.md similarity index 100% rename from posts/Rust-1.6.md rename to content/Rust-1.6.md diff --git a/posts/Rust-1.60.0.md b/content/Rust-1.60.0.md similarity index 100% rename from posts/Rust-1.60.0.md rename to content/Rust-1.60.0.md diff --git a/posts/Rust-1.61.0.md b/content/Rust-1.61.0.md similarity index 100% rename from posts/Rust-1.61.0.md rename to content/Rust-1.61.0.md diff --git a/posts/Rust-1.62.0.md b/content/Rust-1.62.0.md similarity index 100% rename from posts/Rust-1.62.0.md rename to content/Rust-1.62.0.md diff --git a/posts/Rust-1.62.1.md b/content/Rust-1.62.1.md similarity index 100% rename from posts/Rust-1.62.1.md rename to content/Rust-1.62.1.md diff --git a/posts/Rust-1.63.0.md b/content/Rust-1.63.0.md similarity index 100% rename from posts/Rust-1.63.0.md rename to content/Rust-1.63.0.md diff --git a/posts/Rust-1.64.0.md b/content/Rust-1.64.0.md similarity index 100% rename from posts/Rust-1.64.0.md rename to content/Rust-1.64.0.md diff --git a/posts/Rust-1.65.0.md b/content/Rust-1.65.0.md similarity index 100% rename from posts/Rust-1.65.0.md rename to content/Rust-1.65.0.md diff --git a/posts/Rust-1.66.0.md b/content/Rust-1.66.0.md similarity index 100% rename from posts/Rust-1.66.0.md rename to content/Rust-1.66.0.md diff --git a/posts/Rust-1.66.1.md b/content/Rust-1.66.1.md similarity index 100% rename from posts/Rust-1.66.1.md rename to content/Rust-1.66.1.md diff --git a/posts/Rust-1.67.0.md b/content/Rust-1.67.0.md similarity index 100% rename from posts/Rust-1.67.0.md rename to content/Rust-1.67.0.md diff --git a/posts/Rust-1.67.1.md b/content/Rust-1.67.1.md similarity index 100% rename from posts/Rust-1.67.1.md rename to content/Rust-1.67.1.md diff --git a/posts/Rust-1.68.0.md b/content/Rust-1.68.0.md similarity index 100% rename from posts/Rust-1.68.0.md rename to content/Rust-1.68.0.md diff --git a/posts/Rust-1.68.1.md b/content/Rust-1.68.1.md similarity index 100% rename from posts/Rust-1.68.1.md rename to content/Rust-1.68.1.md diff --git a/posts/Rust-1.68.2.md b/content/Rust-1.68.2.md similarity index 100% rename from posts/Rust-1.68.2.md rename to content/Rust-1.68.2.md diff --git a/posts/Rust-1.69.0.md b/content/Rust-1.69.0.md similarity index 100% rename from posts/Rust-1.69.0.md rename to content/Rust-1.69.0.md diff --git a/posts/Rust-1.7.md b/content/Rust-1.7.md similarity index 100% rename from posts/Rust-1.7.md rename to content/Rust-1.7.md diff --git a/posts/Rust-1.70.0.md b/content/Rust-1.70.0.md similarity index 100% rename from posts/Rust-1.70.0.md rename to content/Rust-1.70.0.md diff --git a/posts/Rust-1.71.0.md b/content/Rust-1.71.0.md similarity index 100% rename from posts/Rust-1.71.0.md rename to content/Rust-1.71.0.md diff --git a/posts/Rust-1.71.1.md b/content/Rust-1.71.1.md similarity index 100% rename from posts/Rust-1.71.1.md rename to content/Rust-1.71.1.md diff --git a/posts/Rust-1.72.0.md b/content/Rust-1.72.0.md similarity index 100% rename from posts/Rust-1.72.0.md rename to content/Rust-1.72.0.md diff --git a/posts/Rust-1.72.1.md b/content/Rust-1.72.1.md similarity index 100% rename from posts/Rust-1.72.1.md rename to content/Rust-1.72.1.md diff --git a/posts/Rust-1.73.0.md b/content/Rust-1.73.0.md similarity index 100% rename from posts/Rust-1.73.0.md rename to content/Rust-1.73.0.md diff --git a/posts/Rust-1.74.0.md b/content/Rust-1.74.0.md similarity index 100% rename from posts/Rust-1.74.0.md rename to content/Rust-1.74.0.md diff --git a/posts/Rust-1.74.1.md b/content/Rust-1.74.1.md similarity index 100% rename from posts/Rust-1.74.1.md rename to content/Rust-1.74.1.md diff --git a/posts/Rust-1.75.0.md b/content/Rust-1.75.0.md similarity index 100% rename from posts/Rust-1.75.0.md rename to content/Rust-1.75.0.md diff --git a/posts/Rust-1.76.0.md b/content/Rust-1.76.0.md similarity index 100% rename from posts/Rust-1.76.0.md rename to content/Rust-1.76.0.md diff --git a/posts/Rust-1.77.0.md b/content/Rust-1.77.0.md similarity index 100% rename from posts/Rust-1.77.0.md rename to content/Rust-1.77.0.md diff --git a/posts/Rust-1.77.1.md b/content/Rust-1.77.1.md similarity index 100% rename from posts/Rust-1.77.1.md rename to content/Rust-1.77.1.md diff --git a/posts/Rust-1.77.2.md b/content/Rust-1.77.2.md similarity index 100% rename from posts/Rust-1.77.2.md rename to content/Rust-1.77.2.md diff --git a/posts/Rust-1.78.0.md b/content/Rust-1.78.0.md similarity index 100% rename from posts/Rust-1.78.0.md rename to content/Rust-1.78.0.md diff --git a/posts/Rust-1.79.0.md b/content/Rust-1.79.0.md similarity index 100% rename from posts/Rust-1.79.0.md rename to content/Rust-1.79.0.md diff --git a/posts/Rust-1.8.md b/content/Rust-1.8.md similarity index 100% rename from posts/Rust-1.8.md rename to content/Rust-1.8.md diff --git a/posts/Rust-1.80.0.md b/content/Rust-1.80.0.md similarity index 100% rename from posts/Rust-1.80.0.md rename to content/Rust-1.80.0.md diff --git a/posts/Rust-1.80.1.md b/content/Rust-1.80.1.md similarity index 100% rename from posts/Rust-1.80.1.md rename to content/Rust-1.80.1.md diff --git a/posts/Rust-1.81.0.md b/content/Rust-1.81.0.md similarity index 100% rename from posts/Rust-1.81.0.md rename to content/Rust-1.81.0.md diff --git a/posts/Rust-1.82.0.md b/content/Rust-1.82.0.md similarity index 100% rename from posts/Rust-1.82.0.md rename to content/Rust-1.82.0.md diff --git a/posts/Rust-1.83.0.md b/content/Rust-1.83.0.md similarity index 100% rename from posts/Rust-1.83.0.md rename to content/Rust-1.83.0.md diff --git a/posts/Rust-1.84.0.md b/content/Rust-1.84.0.md similarity index 100% rename from posts/Rust-1.84.0.md rename to content/Rust-1.84.0.md diff --git a/posts/Rust-1.84.1.md b/content/Rust-1.84.1.md similarity index 100% rename from posts/Rust-1.84.1.md rename to content/Rust-1.84.1.md diff --git a/posts/Rust-1.85.0.md b/content/Rust-1.85.0.md similarity index 100% rename from posts/Rust-1.85.0.md rename to content/Rust-1.85.0.md diff --git a/posts/Rust-1.85.1.md b/content/Rust-1.85.1.md similarity index 100% rename from posts/Rust-1.85.1.md rename to content/Rust-1.85.1.md diff --git a/posts/Rust-1.9.md b/content/Rust-1.9.md similarity index 100% rename from posts/Rust-1.9.md rename to content/Rust-1.9.md diff --git a/posts/Rust-2017-Survey-Results.md b/content/Rust-2017-Survey-Results.md similarity index 100% rename from posts/Rust-2017-Survey-Results.md rename to content/Rust-2017-Survey-Results.md diff --git a/posts/Rust-2018-dev-tools.md b/content/Rust-2018-dev-tools.md similarity index 100% rename from posts/Rust-2018-dev-tools.md rename to content/Rust-2018-dev-tools.md diff --git a/posts/Rust-2021-public-testing.md b/content/Rust-2021-public-testing.md similarity index 100% rename from posts/Rust-2021-public-testing.md rename to content/Rust-2021-public-testing.md diff --git a/posts/Rust-2024-public-testing.md b/content/Rust-2024-public-testing.md similarity index 100% rename from posts/Rust-2024-public-testing.md rename to content/Rust-2024-public-testing.md diff --git a/posts/Rust-Once-Run-Everywhere.md b/content/Rust-Once-Run-Everywhere.md similarity index 100% rename from posts/Rust-Once-Run-Everywhere.md rename to content/Rust-Once-Run-Everywhere.md diff --git a/posts/Rust-Roadmap-Update.md b/content/Rust-Roadmap-Update.md similarity index 100% rename from posts/Rust-Roadmap-Update.md rename to content/Rust-Roadmap-Update.md diff --git a/posts/Rust-Survey-2021.md b/content/Rust-Survey-2021.md similarity index 100% rename from posts/Rust-Survey-2021.md rename to content/Rust-Survey-2021.md diff --git a/posts/Rust-Survey-2023-Results.md b/content/Rust-Survey-2023-Results.md similarity index 100% rename from posts/Rust-Survey-2023-Results.md rename to content/Rust-Survey-2023-Results.md diff --git a/posts/Rust-participates-in-GSoC-2024.md b/content/Rust-participates-in-GSoC-2024.md similarity index 100% rename from posts/Rust-participates-in-GSoC-2024.md rename to content/Rust-participates-in-GSoC-2024.md diff --git a/posts/Rust-participates-in-GSoC-2025.md b/content/Rust-participates-in-GSoC-2025.md similarity index 100% rename from posts/Rust-participates-in-GSoC-2025.md rename to content/Rust-participates-in-GSoC-2025.md diff --git a/posts/Rust-survey-2018.md b/content/Rust-survey-2018.md similarity index 100% rename from posts/Rust-survey-2018.md rename to content/Rust-survey-2018.md diff --git a/posts/Rust-survey-2019.md b/content/Rust-survey-2019.md similarity index 100% rename from posts/Rust-survey-2019.md rename to content/Rust-survey-2019.md diff --git a/posts/Rust-turns-three.md b/content/Rust-turns-three.md similarity index 100% rename from posts/Rust-turns-three.md rename to content/Rust-turns-three.md diff --git a/posts/Rust.1.43.1.md b/content/Rust.1.43.1.md similarity index 100% rename from posts/Rust.1.43.1.md rename to content/Rust.1.43.1.md diff --git a/posts/Rust.1.44.1.md b/content/Rust.1.44.1.md similarity index 100% rename from posts/Rust.1.44.1.md rename to content/Rust.1.44.1.md diff --git a/posts/RustConf.md b/content/RustConf.md similarity index 100% rename from posts/RustConf.md rename to content/RustConf.md diff --git a/posts/Rustup-1.20.0.md b/content/Rustup-1.20.0.md similarity index 100% rename from posts/Rustup-1.20.0.md rename to content/Rustup-1.20.0.md diff --git a/posts/Rustup-1.22.0.md b/content/Rustup-1.22.0.md similarity index 100% rename from posts/Rustup-1.22.0.md rename to content/Rustup-1.22.0.md diff --git a/posts/Rustup-1.22.1.md b/content/Rustup-1.22.1.md similarity index 100% rename from posts/Rustup-1.22.1.md rename to content/Rustup-1.22.1.md diff --git a/posts/Rustup-1.23.0.md b/content/Rustup-1.23.0.md similarity index 100% rename from posts/Rustup-1.23.0.md rename to content/Rustup-1.23.0.md diff --git a/posts/Rustup-1.24.0.md b/content/Rustup-1.24.0.md similarity index 100% rename from posts/Rustup-1.24.0.md rename to content/Rustup-1.24.0.md diff --git a/posts/Rustup-1.24.1.md b/content/Rustup-1.24.1.md similarity index 100% rename from posts/Rustup-1.24.1.md rename to content/Rustup-1.24.1.md diff --git a/posts/Rustup-1.24.2.md b/content/Rustup-1.24.2.md similarity index 100% rename from posts/Rustup-1.24.2.md rename to content/Rustup-1.24.2.md diff --git a/posts/Rustup-1.24.3.md b/content/Rustup-1.24.3.md similarity index 100% rename from posts/Rustup-1.24.3.md rename to content/Rustup-1.24.3.md diff --git a/posts/Rustup-1.25.0.md b/content/Rustup-1.25.0.md similarity index 100% rename from posts/Rustup-1.25.0.md rename to content/Rustup-1.25.0.md diff --git a/posts/Rustup-1.25.1.md b/content/Rustup-1.25.1.md similarity index 100% rename from posts/Rustup-1.25.1.md rename to content/Rustup-1.25.1.md diff --git a/posts/Rustup-1.25.2.md b/content/Rustup-1.25.2.md similarity index 100% rename from posts/Rustup-1.25.2.md rename to content/Rustup-1.25.2.md diff --git a/posts/Rustup-1.26.0.md b/content/Rustup-1.26.0.md similarity index 100% rename from posts/Rustup-1.26.0.md rename to content/Rustup-1.26.0.md diff --git a/posts/Rustup-1.27.0.md b/content/Rustup-1.27.0.md similarity index 100% rename from posts/Rustup-1.27.0.md rename to content/Rustup-1.27.0.md diff --git a/posts/Rustup-1.27.1.md b/content/Rustup-1.27.1.md similarity index 100% rename from posts/Rustup-1.27.1.md rename to content/Rustup-1.27.1.md diff --git a/posts/Rustup-1.28.0.md b/content/Rustup-1.28.0.md similarity index 100% rename from posts/Rustup-1.28.0.md rename to content/Rustup-1.28.0.md diff --git a/posts/Rustup-1.28.1.md b/content/Rustup-1.28.1.md similarity index 100% rename from posts/Rustup-1.28.1.md rename to content/Rustup-1.28.1.md diff --git a/posts/Scheduling-2021-Roadmap.md b/content/Scheduling-2021-Roadmap.md similarity index 100% rename from posts/Scheduling-2021-Roadmap.md rename to content/Scheduling-2021-Roadmap.md diff --git a/posts/Security-advisory-for-cargo.md b/content/Security-advisory-for-cargo.md similarity index 100% rename from posts/Security-advisory-for-cargo.md rename to content/Security-advisory-for-cargo.md diff --git a/posts/Security-advisory-for-std.md b/content/Security-advisory-for-std.md similarity index 100% rename from posts/Security-advisory-for-std.md rename to content/Security-advisory-for-std.md diff --git a/posts/Security-advisory.md b/content/Security-advisory.md similarity index 100% rename from posts/Security-advisory.md rename to content/Security-advisory.md diff --git a/posts/Shape-of-errors-to-come.md b/content/Shape-of-errors-to-come.md similarity index 100% rename from posts/Shape-of-errors-to-come.md rename to content/Shape-of-errors-to-come.md diff --git a/posts/Stability.md b/content/Stability.md similarity index 100% rename from posts/Stability.md rename to content/Stability.md diff --git a/posts/State-of-Rust-Survey-2016.md b/content/State-of-Rust-Survey-2016.md similarity index 100% rename from posts/State-of-Rust-Survey-2016.md rename to content/State-of-Rust-Survey-2016.md diff --git a/posts/The-2018-Rust-Event-Lineup.md b/content/The-2018-Rust-Event-Lineup.md similarity index 100% rename from posts/The-2018-Rust-Event-Lineup.md rename to content/The-2018-Rust-Event-Lineup.md diff --git a/posts/The-2019-Rust-Event-Lineup.md b/content/The-2019-Rust-Event-Lineup.md similarity index 100% rename from posts/The-2019-Rust-Event-Lineup.md rename to content/The-2019-Rust-Event-Lineup.md diff --git a/posts/Underhanded-Rust.md b/content/Underhanded-Rust.md similarity index 100% rename from posts/Underhanded-Rust.md rename to content/Underhanded-Rust.md diff --git a/posts/Update-on-crates.io-incident.md b/content/Update-on-crates.io-incident.md similarity index 100% rename from posts/Update-on-crates.io-incident.md rename to content/Update-on-crates.io-incident.md diff --git a/posts/Updating-musl-targets.md b/content/Updating-musl-targets.md similarity index 100% rename from posts/Updating-musl-targets.md rename to content/Updating-musl-targets.md diff --git a/posts/Windows-7.md b/content/Windows-7.md similarity index 100% rename from posts/Windows-7.md rename to content/Windows-7.md diff --git a/posts/a-new-look-for-rust-lang-org.md b/content/a-new-look-for-rust-lang-org.md similarity index 100% rename from posts/a-new-look-for-rust-lang-org.md rename to content/a-new-look-for-rust-lang-org.md diff --git a/posts/adopting-the-fls.md b/content/adopting-the-fls.md similarity index 100% rename from posts/adopting-the-fls.md rename to content/adopting-the-fls.md diff --git a/posts/all-hands.md b/content/all-hands.md similarity index 100% rename from posts/all-hands.md rename to content/all-hands.md diff --git a/posts/android-ndk-update-r25.md b/content/android-ndk-update-r25.md similarity index 100% rename from posts/android-ndk-update-r25.md rename to content/android-ndk-update-r25.md diff --git a/posts/announcing-the-new-rust-project-directors.md b/content/announcing-the-new-rust-project-directors.md similarity index 100% rename from posts/announcing-the-new-rust-project-directors.md rename to content/announcing-the-new-rust-project-directors.md diff --git a/posts/annual-survey-2024-launch.md b/content/annual-survey-2024-launch.md similarity index 100% rename from posts/annual-survey-2024-launch.md rename to content/annual-survey-2024-launch.md diff --git a/posts/async-fn-rpit-in-traits.md b/content/async-fn-rpit-in-traits.md similarity index 100% rename from posts/async-fn-rpit-in-traits.md rename to content/async-fn-rpit-in-traits.md diff --git a/posts/async-vision-doc-shiny-future.md b/content/async-vision-doc-shiny-future.md similarity index 100% rename from posts/async-vision-doc-shiny-future.md rename to content/async-vision-doc-shiny-future.md diff --git a/posts/async-vision-doc.md b/content/async-vision-doc.md similarity index 100% rename from posts/async-vision-doc.md rename to content/async-vision-doc.md diff --git a/posts/blog.toml b/content/blog.toml similarity index 100% rename from posts/blog.toml rename to content/blog.toml diff --git a/posts/broken-badges-and-23k-keywords.md b/content/broken-badges-and-23k-keywords.md similarity index 100% rename from posts/broken-badges-and-23k-keywords.md rename to content/broken-badges-and-23k-keywords.md diff --git a/posts/call-for-rust-2019-roadmap-blogposts.md b/content/call-for-rust-2019-roadmap-blogposts.md similarity index 100% rename from posts/call-for-rust-2019-roadmap-blogposts.md rename to content/call-for-rust-2019-roadmap-blogposts.md diff --git a/posts/cargo-cache-cleaning.md b/content/cargo-cache-cleaning.md similarity index 100% rename from posts/cargo-cache-cleaning.md rename to content/cargo-cache-cleaning.md diff --git a/posts/cargo-cves.md b/content/cargo-cves.md similarity index 100% rename from posts/cargo-cves.md rename to content/cargo-cves.md diff --git a/posts/cargo-pillars.md b/content/cargo-pillars.md similarity index 100% rename from posts/cargo-pillars.md rename to content/cargo-pillars.md diff --git a/posts/changes-in-the-core-team@0.md b/content/changes-in-the-core-team@0.md similarity index 100% rename from posts/changes-in-the-core-team@0.md rename to content/changes-in-the-core-team@0.md diff --git a/posts/changes-in-the-core-team@1.md b/content/changes-in-the-core-team@1.md similarity index 100% rename from posts/changes-in-the-core-team@1.md rename to content/changes-in-the-core-team@1.md diff --git a/posts/check-cfg.md b/content/check-cfg.md similarity index 100% rename from posts/check-cfg.md rename to content/check-cfg.md diff --git a/posts/committing-lockfiles.md b/content/committing-lockfiles.md similarity index 100% rename from posts/committing-lockfiles.md rename to content/committing-lockfiles.md diff --git a/posts/conf-lineup@0.md b/content/conf-lineup@0.md similarity index 100% rename from posts/conf-lineup@0.md rename to content/conf-lineup@0.md diff --git a/posts/conf-lineup@1.md b/content/conf-lineup@1.md similarity index 100% rename from posts/conf-lineup@1.md rename to content/conf-lineup@1.md diff --git a/posts/conf-lineup@2.md b/content/conf-lineup@2.md similarity index 100% rename from posts/conf-lineup@2.md rename to content/conf-lineup@2.md diff --git a/posts/const-eval-safety-rule-revision.md b/content/const-eval-safety-rule-revision.md similarity index 100% rename from posts/const-eval-safety-rule-revision.md rename to content/const-eval-safety-rule-revision.md diff --git a/posts/const-generics-mvp-beta.md b/content/const-generics-mvp-beta.md similarity index 100% rename from posts/const-generics-mvp-beta.md rename to content/const-generics-mvp-beta.md diff --git a/posts/council-survey.md b/content/council-survey.md similarity index 100% rename from posts/council-survey.md rename to content/council-survey.md diff --git a/posts/crates-io-development-update@0.md b/content/crates-io-development-update@0.md similarity index 100% rename from posts/crates-io-development-update@0.md rename to content/crates-io-development-update@0.md diff --git a/posts/crates-io-development-update@1.md b/content/crates-io-development-update@1.md similarity index 100% rename from posts/crates-io-development-update@1.md rename to content/crates-io-development-update@1.md diff --git a/posts/crates-io-download-changes.md b/content/crates-io-download-changes.md similarity index 100% rename from posts/crates-io-download-changes.md rename to content/crates-io-download-changes.md diff --git a/posts/crates-io-non-canonical-downloads.md b/content/crates-io-non-canonical-downloads.md similarity index 100% rename from posts/crates-io-non-canonical-downloads.md rename to content/crates-io-non-canonical-downloads.md diff --git a/posts/crates-io-security-advisory.md b/content/crates-io-security-advisory.md similarity index 100% rename from posts/crates-io-security-advisory.md rename to content/crates-io-security-advisory.md diff --git a/posts/crates-io-snapshot-branches.md b/content/crates-io-snapshot-branches.md similarity index 100% rename from posts/crates-io-snapshot-branches.md rename to content/crates-io-snapshot-branches.md diff --git a/posts/crates-io-status-codes.md b/content/crates-io-status-codes.md similarity index 100% rename from posts/crates-io-status-codes.md rename to content/crates-io-status-codes.md diff --git a/posts/crates-io-usage-policy-rfc.md b/content/crates-io-usage-policy-rfc.md similarity index 100% rename from posts/crates-io-usage-policy-rfc.md rename to content/crates-io-usage-policy-rfc.md diff --git a/posts/cve-2021-42574.md b/content/cve-2021-42574.md similarity index 100% rename from posts/cve-2021-42574.md rename to content/cve-2021-42574.md diff --git a/posts/cve-2022-21658.md b/content/cve-2022-21658.md similarity index 100% rename from posts/cve-2022-21658.md rename to content/cve-2022-21658.md diff --git a/posts/cve-2022-24713.md b/content/cve-2022-24713.md similarity index 100% rename from posts/cve-2022-24713.md rename to content/cve-2022-24713.md diff --git a/posts/cve-2022-46176.md b/content/cve-2022-46176.md similarity index 100% rename from posts/cve-2022-46176.md rename to content/cve-2022-46176.md diff --git a/posts/cve-2023-38497.md b/content/cve-2023-38497.md similarity index 100% rename from posts/cve-2023-38497.md rename to content/cve-2023-38497.md diff --git a/posts/cve-2024-24576.md b/content/cve-2024-24576.md similarity index 100% rename from posts/cve-2024-24576.md rename to content/cve-2024-24576.md diff --git a/posts/cve-2024-43402.md b/content/cve-2024-43402.md similarity index 100% rename from posts/cve-2024-43402.md rename to content/cve-2024-43402.md diff --git a/posts/docs-rs-opt-into-fewer-targets.md b/content/docs-rs-opt-into-fewer-targets.md similarity index 100% rename from posts/docs-rs-opt-into-fewer-targets.md rename to content/docs-rs-opt-into-fewer-targets.md diff --git a/posts/edition-2021.md b/content/edition-2021.md similarity index 100% rename from posts/edition-2021.md rename to content/edition-2021.md diff --git a/posts/electing-new-project-directors.md b/content/electing-new-project-directors.md similarity index 100% rename from posts/electing-new-project-directors.md rename to content/electing-new-project-directors.md diff --git a/posts/enabling-rust-lld-on-linux.md b/content/enabling-rust-lld-on-linux.md similarity index 100% rename from posts/enabling-rust-lld-on-linux.md rename to content/enabling-rust-lld-on-linux.md diff --git a/posts/event-lineup-update.md b/content/event-lineup-update.md similarity index 100% rename from posts/event-lineup-update.md rename to content/event-lineup-update.md diff --git a/posts/five-years-of-rust.md b/content/five-years-of-rust.md similarity index 100% rename from posts/five-years-of-rust.md rename to content/five-years-of-rust.md diff --git a/posts/gats-stabilization.md b/content/gats-stabilization.md similarity index 100% rename from posts/gats-stabilization.md rename to content/gats-stabilization.md diff --git a/posts/gccrs-an-alternative-compiler-for-rust.md b/content/gccrs-an-alternative-compiler-for-rust.md similarity index 100% rename from posts/gccrs-an-alternative-compiler-for-rust.md rename to content/gccrs-an-alternative-compiler-for-rust.md diff --git a/posts/governance-wg-announcement.md b/content/governance-wg-announcement.md similarity index 100% rename from posts/governance-wg-announcement.md rename to content/governance-wg-announcement.md diff --git a/posts/gsoc-2024-results.md b/content/gsoc-2024-results.md similarity index 100% rename from posts/gsoc-2024-results.md rename to content/gsoc-2024-results.md diff --git a/posts/gsoc-2024-selected-projects.md b/content/gsoc-2024-selected-projects.md similarity index 100% rename from posts/gsoc-2024-selected-projects.md rename to content/gsoc-2024-selected-projects.md diff --git a/posts/help-test-rust-2018.md b/content/help-test-rust-2018.md similarity index 100% rename from posts/help-test-rust-2018.md rename to content/help-test-rust-2018.md diff --git a/posts/i128-layout-update.md b/content/i128-layout-update.md similarity index 100% rename from posts/i128-layout-update.md rename to content/i128-layout-update.md diff --git a/posts/impl-future-for-rust.md b/content/impl-future-for-rust.md similarity index 100% rename from posts/impl-future-for-rust.md rename to content/impl-future-for-rust.md diff --git a/posts/impl-trait-capture-rules.md b/content/impl-trait-capture-rules.md similarity index 100% rename from posts/impl-trait-capture-rules.md rename to content/impl-trait-capture-rules.md diff --git a/posts/improved-api-tokens-for-crates-io.md b/content/improved-api-tokens-for-crates-io.md similarity index 100% rename from posts/improved-api-tokens-for-crates-io.md rename to content/improved-api-tokens-for-crates-io.md diff --git a/posts/incremental.md b/content/incremental.md similarity index 100% rename from posts/incremental.md rename to content/incremental.md diff --git a/posts/inside-rust-blog.md b/content/inside-rust-blog.md similarity index 100% rename from posts/inside-rust-blog.md rename to content/inside-rust-blog.md diff --git a/posts/inside-rust/1.45.1-prerelease.md b/content/inside-rust/1.45.1-prerelease.md similarity index 100% rename from posts/inside-rust/1.45.1-prerelease.md rename to content/inside-rust/1.45.1-prerelease.md diff --git a/posts/inside-rust/1.46.0-prerelease.md b/content/inside-rust/1.46.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.46.0-prerelease.md rename to content/inside-rust/1.46.0-prerelease.md diff --git a/posts/inside-rust/1.47.0-prerelease-2.md b/content/inside-rust/1.47.0-prerelease-2.md similarity index 100% rename from posts/inside-rust/1.47.0-prerelease-2.md rename to content/inside-rust/1.47.0-prerelease-2.md diff --git a/posts/inside-rust/1.47.0-prerelease.md b/content/inside-rust/1.47.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.47.0-prerelease.md rename to content/inside-rust/1.47.0-prerelease.md diff --git a/posts/inside-rust/1.48.0-prerelease.md b/content/inside-rust/1.48.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.48.0-prerelease.md rename to content/inside-rust/1.48.0-prerelease.md diff --git a/posts/inside-rust/1.49.0-prerelease.md b/content/inside-rust/1.49.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.49.0-prerelease.md rename to content/inside-rust/1.49.0-prerelease.md diff --git a/posts/inside-rust/1.50.0-prerelease.md b/content/inside-rust/1.50.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.50.0-prerelease.md rename to content/inside-rust/1.50.0-prerelease.md diff --git a/posts/inside-rust/1.51.0-prerelease.md b/content/inside-rust/1.51.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.51.0-prerelease.md rename to content/inside-rust/1.51.0-prerelease.md diff --git a/posts/inside-rust/1.52.0-prerelease.md b/content/inside-rust/1.52.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.52.0-prerelease.md rename to content/inside-rust/1.52.0-prerelease.md diff --git a/posts/inside-rust/1.53.0-prelease.md b/content/inside-rust/1.53.0-prelease.md similarity index 100% rename from posts/inside-rust/1.53.0-prelease.md rename to content/inside-rust/1.53.0-prelease.md diff --git a/posts/inside-rust/1.54.0-prerelease.md b/content/inside-rust/1.54.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.54.0-prerelease.md rename to content/inside-rust/1.54.0-prerelease.md diff --git a/posts/inside-rust/1.55.0-prerelease.md b/content/inside-rust/1.55.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.55.0-prerelease.md rename to content/inside-rust/1.55.0-prerelease.md diff --git a/posts/inside-rust/1.56.0-prerelease.md b/content/inside-rust/1.56.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.56.0-prerelease.md rename to content/inside-rust/1.56.0-prerelease.md diff --git a/posts/inside-rust/1.57.0-prerelease.md b/content/inside-rust/1.57.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.57.0-prerelease.md rename to content/inside-rust/1.57.0-prerelease.md diff --git a/posts/inside-rust/1.58.0-prerelease.md b/content/inside-rust/1.58.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.58.0-prerelease.md rename to content/inside-rust/1.58.0-prerelease.md diff --git a/posts/inside-rust/1.59.0-prerelease.md b/content/inside-rust/1.59.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.59.0-prerelease.md rename to content/inside-rust/1.59.0-prerelease.md diff --git a/posts/inside-rust/1.60.0-prerelease.md b/content/inside-rust/1.60.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.60.0-prerelease.md rename to content/inside-rust/1.60.0-prerelease.md diff --git a/posts/inside-rust/1.61.0-prerelease.md b/content/inside-rust/1.61.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.61.0-prerelease.md rename to content/inside-rust/1.61.0-prerelease.md diff --git a/posts/inside-rust/1.62.0-prerelease.md b/content/inside-rust/1.62.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.62.0-prerelease.md rename to content/inside-rust/1.62.0-prerelease.md diff --git a/posts/inside-rust/1.62.1-prerelease.md b/content/inside-rust/1.62.1-prerelease.md similarity index 100% rename from posts/inside-rust/1.62.1-prerelease.md rename to content/inside-rust/1.62.1-prerelease.md diff --git a/posts/inside-rust/1.63.0-prerelease.md b/content/inside-rust/1.63.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.63.0-prerelease.md rename to content/inside-rust/1.63.0-prerelease.md diff --git a/posts/inside-rust/1.64.0-prerelease.md b/content/inside-rust/1.64.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.64.0-prerelease.md rename to content/inside-rust/1.64.0-prerelease.md diff --git a/posts/inside-rust/1.65.0-prerelease.md b/content/inside-rust/1.65.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.65.0-prerelease.md rename to content/inside-rust/1.65.0-prerelease.md diff --git a/posts/inside-rust/1.66.0-prerelease.md b/content/inside-rust/1.66.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.66.0-prerelease.md rename to content/inside-rust/1.66.0-prerelease.md diff --git a/posts/inside-rust/1.67.0-prerelease.md b/content/inside-rust/1.67.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.67.0-prerelease.md rename to content/inside-rust/1.67.0-prerelease.md diff --git a/posts/inside-rust/1.67.1-prerelease.md b/content/inside-rust/1.67.1-prerelease.md similarity index 100% rename from posts/inside-rust/1.67.1-prerelease.md rename to content/inside-rust/1.67.1-prerelease.md diff --git a/posts/inside-rust/1.68.0-prerelease.md b/content/inside-rust/1.68.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.68.0-prerelease.md rename to content/inside-rust/1.68.0-prerelease.md diff --git a/posts/inside-rust/1.68.1-prerelease.md b/content/inside-rust/1.68.1-prerelease.md similarity index 100% rename from posts/inside-rust/1.68.1-prerelease.md rename to content/inside-rust/1.68.1-prerelease.md diff --git a/posts/inside-rust/1.68.2-prerelease.md b/content/inside-rust/1.68.2-prerelease.md similarity index 100% rename from posts/inside-rust/1.68.2-prerelease.md rename to content/inside-rust/1.68.2-prerelease.md diff --git a/posts/inside-rust/1.69.0-prerelease.md b/content/inside-rust/1.69.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.69.0-prerelease.md rename to content/inside-rust/1.69.0-prerelease.md diff --git a/posts/inside-rust/1.70.0-prerelease.md b/content/inside-rust/1.70.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.70.0-prerelease.md rename to content/inside-rust/1.70.0-prerelease.md diff --git a/posts/inside-rust/1.71.0-prerelease.md b/content/inside-rust/1.71.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.71.0-prerelease.md rename to content/inside-rust/1.71.0-prerelease.md diff --git a/posts/inside-rust/1.71.1-prerelease.md b/content/inside-rust/1.71.1-prerelease.md similarity index 100% rename from posts/inside-rust/1.71.1-prerelease.md rename to content/inside-rust/1.71.1-prerelease.md diff --git a/posts/inside-rust/1.72.0-prerelease.md b/content/inside-rust/1.72.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.72.0-prerelease.md rename to content/inside-rust/1.72.0-prerelease.md diff --git a/posts/inside-rust/1.72.1-prerelease.md b/content/inside-rust/1.72.1-prerelease.md similarity index 100% rename from posts/inside-rust/1.72.1-prerelease.md rename to content/inside-rust/1.72.1-prerelease.md diff --git a/posts/inside-rust/1.73.0-prerelease.md b/content/inside-rust/1.73.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.73.0-prerelease.md rename to content/inside-rust/1.73.0-prerelease.md diff --git a/posts/inside-rust/1.74.0-prerelease.md b/content/inside-rust/1.74.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.74.0-prerelease.md rename to content/inside-rust/1.74.0-prerelease.md diff --git a/posts/inside-rust/1.74.1-prerelease.md b/content/inside-rust/1.74.1-prerelease.md similarity index 100% rename from posts/inside-rust/1.74.1-prerelease.md rename to content/inside-rust/1.74.1-prerelease.md diff --git a/posts/inside-rust/1.75.0-prerelease.md b/content/inside-rust/1.75.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.75.0-prerelease.md rename to content/inside-rust/1.75.0-prerelease.md diff --git a/posts/inside-rust/1.76.0-prerelease.md b/content/inside-rust/1.76.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.76.0-prerelease.md rename to content/inside-rust/1.76.0-prerelease.md diff --git a/posts/inside-rust/1.77.0-prerelease.md b/content/inside-rust/1.77.0-prerelease.md similarity index 100% rename from posts/inside-rust/1.77.0-prerelease.md rename to content/inside-rust/1.77.0-prerelease.md diff --git a/posts/inside-rust/1.77.1-prerelease.md b/content/inside-rust/1.77.1-prerelease.md similarity index 100% rename from posts/inside-rust/1.77.1-prerelease.md rename to content/inside-rust/1.77.1-prerelease.md diff --git a/posts/inside-rust/2020-05-21-governance-wg b/content/inside-rust/2020-05-21-governance-wg similarity index 100% rename from posts/inside-rust/2020-05-21-governance-wg rename to content/inside-rust/2020-05-21-governance-wg diff --git a/posts/inside-rust/2024-edition-update.md b/content/inside-rust/2024-edition-update.md similarity index 100% rename from posts/inside-rust/2024-edition-update.md rename to content/inside-rust/2024-edition-update.md diff --git a/posts/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md b/content/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md similarity index 100% rename from posts/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md rename to content/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md diff --git a/posts/inside-rust/AsyncAwait-WG-Focus-Issues.md b/content/inside-rust/AsyncAwait-WG-Focus-Issues.md similarity index 100% rename from posts/inside-rust/AsyncAwait-WG-Focus-Issues.md rename to content/inside-rust/AsyncAwait-WG-Focus-Issues.md diff --git a/posts/inside-rust/Backlog-Bonanza.md b/content/inside-rust/Backlog-Bonanza.md similarity index 100% rename from posts/inside-rust/Backlog-Bonanza.md rename to content/inside-rust/Backlog-Bonanza.md diff --git a/posts/inside-rust/CTCFT-april.md b/content/inside-rust/CTCFT-april.md similarity index 100% rename from posts/inside-rust/CTCFT-april.md rename to content/inside-rust/CTCFT-april.md diff --git a/posts/inside-rust/CTCFT-february.md b/content/inside-rust/CTCFT-february.md similarity index 100% rename from posts/inside-rust/CTCFT-february.md rename to content/inside-rust/CTCFT-february.md diff --git a/posts/inside-rust/CTCFT-march.md b/content/inside-rust/CTCFT-march.md similarity index 100% rename from posts/inside-rust/CTCFT-march.md rename to content/inside-rust/CTCFT-march.md diff --git a/posts/inside-rust/CTCFT-may.md b/content/inside-rust/CTCFT-may.md similarity index 100% rename from posts/inside-rust/CTCFT-may.md rename to content/inside-rust/CTCFT-may.md diff --git a/posts/inside-rust/Cleanup-Crew-ICE-breakers.md b/content/inside-rust/Cleanup-Crew-ICE-breakers.md similarity index 100% rename from posts/inside-rust/Cleanup-Crew-ICE-breakers.md rename to content/inside-rust/Cleanup-Crew-ICE-breakers.md diff --git a/posts/inside-rust/Clippy-removes-plugin-interface.md b/content/inside-rust/Clippy-removes-plugin-interface.md similarity index 100% rename from posts/inside-rust/Clippy-removes-plugin-interface.md rename to content/inside-rust/Clippy-removes-plugin-interface.md diff --git a/posts/inside-rust/Concluding-events-mods.md b/content/inside-rust/Concluding-events-mods.md similarity index 100% rename from posts/inside-rust/Concluding-events-mods.md rename to content/inside-rust/Concluding-events-mods.md diff --git a/posts/inside-rust/Core-team-membership.md b/content/inside-rust/Core-team-membership.md similarity index 100% rename from posts/inside-rust/Core-team-membership.md rename to content/inside-rust/Core-team-membership.md diff --git a/posts/inside-rust/Goverance-wg-cfp@0.md b/content/inside-rust/Goverance-wg-cfp@0.md similarity index 100% rename from posts/inside-rust/Goverance-wg-cfp@0.md rename to content/inside-rust/Goverance-wg-cfp@0.md diff --git a/posts/inside-rust/Goverance-wg@0.md b/content/inside-rust/Goverance-wg@0.md similarity index 100% rename from posts/inside-rust/Goverance-wg@0.md rename to content/inside-rust/Goverance-wg@0.md diff --git a/posts/inside-rust/Goverance-wg@1.md b/content/inside-rust/Goverance-wg@1.md similarity index 100% rename from posts/inside-rust/Goverance-wg@1.md rename to content/inside-rust/Goverance-wg@1.md diff --git a/posts/inside-rust/Governance-WG-updated.md b/content/inside-rust/Governance-WG-updated.md similarity index 100% rename from posts/inside-rust/Governance-WG-updated.md rename to content/inside-rust/Governance-WG-updated.md diff --git a/posts/inside-rust/Governance-wg@0.md b/content/inside-rust/Governance-wg@0.md similarity index 100% rename from posts/inside-rust/Governance-wg@0.md rename to content/inside-rust/Governance-wg@0.md diff --git a/posts/inside-rust/Introducing-cargo-audit-fix-and-more.md b/content/inside-rust/Introducing-cargo-audit-fix-and-more.md similarity index 100% rename from posts/inside-rust/Introducing-cargo-audit-fix-and-more.md rename to content/inside-rust/Introducing-cargo-audit-fix-and-more.md diff --git a/posts/inside-rust/Keeping-secure-with-cargo-audit-0.9.md b/content/inside-rust/Keeping-secure-with-cargo-audit-0.9.md similarity index 100% rename from posts/inside-rust/Keeping-secure-with-cargo-audit-0.9.md rename to content/inside-rust/Keeping-secure-with-cargo-audit-0.9.md diff --git a/posts/inside-rust/LLVM-ICE-breakers.md b/content/inside-rust/LLVM-ICE-breakers.md similarity index 100% rename from posts/inside-rust/LLVM-ICE-breakers.md rename to content/inside-rust/LLVM-ICE-breakers.md diff --git a/posts/inside-rust/Lang-Team-Meeting@0.md b/content/inside-rust/Lang-Team-Meeting@0.md similarity index 100% rename from posts/inside-rust/Lang-Team-Meeting@0.md rename to content/inside-rust/Lang-Team-Meeting@0.md diff --git a/posts/inside-rust/Lang-team-Oct-update.md b/content/inside-rust/Lang-team-Oct-update.md similarity index 100% rename from posts/inside-rust/Lang-team-Oct-update.md rename to content/inside-rust/Lang-team-Oct-update.md diff --git a/posts/inside-rust/Lang-team-july-update.md b/content/inside-rust/Lang-team-july-update.md similarity index 100% rename from posts/inside-rust/Lang-team-july-update.md rename to content/inside-rust/Lang-team-july-update.md diff --git a/posts/inside-rust/Lang-team-meeting@1.md b/content/inside-rust/Lang-team-meeting@1.md similarity index 100% rename from posts/inside-rust/Lang-team-meeting@1.md rename to content/inside-rust/Lang-team-meeting@1.md diff --git a/posts/inside-rust/Ownership-Std-Implementation.md b/content/inside-rust/Ownership-Std-Implementation.md similarity index 100% rename from posts/inside-rust/Ownership-Std-Implementation.md rename to content/inside-rust/Ownership-Std-Implementation.md diff --git a/posts/inside-rust/Portable-SIMD-PG.md b/content/inside-rust/Portable-SIMD-PG.md similarity index 100% rename from posts/inside-rust/Portable-SIMD-PG.md rename to content/inside-rust/Portable-SIMD-PG.md diff --git a/posts/inside-rust/Splitting-const-generics.md b/content/inside-rust/Splitting-const-generics.md similarity index 100% rename from posts/inside-rust/Splitting-const-generics.md rename to content/inside-rust/Splitting-const-generics.md diff --git a/posts/inside-rust/Using-rustc_codegen_cranelift.md b/content/inside-rust/Using-rustc_codegen_cranelift.md similarity index 100% rename from posts/inside-rust/Using-rustc_codegen_cranelift.md rename to content/inside-rust/Using-rustc_codegen_cranelift.md diff --git a/posts/inside-rust/Welcome.md b/content/inside-rust/Welcome.md similarity index 100% rename from posts/inside-rust/Welcome.md rename to content/inside-rust/Welcome.md diff --git a/posts/inside-rust/What-the-error-handling-project-group-is-working-on.md b/content/inside-rust/What-the-error-handling-project-group-is-working-on.md similarity index 100% rename from posts/inside-rust/What-the-error-handling-project-group-is-working-on.md rename to content/inside-rust/What-the-error-handling-project-group-is-working-on.md diff --git a/posts/inside-rust/What-the-error-handling-project-group-is-working-towards.md b/content/inside-rust/What-the-error-handling-project-group-is-working-towards.md similarity index 100% rename from posts/inside-rust/What-the-error-handling-project-group-is-working-towards.md rename to content/inside-rust/What-the-error-handling-project-group-is-working-towards.md diff --git a/posts/inside-rust/aaron-hill-compiler-team.md b/content/inside-rust/aaron-hill-compiler-team.md similarity index 100% rename from posts/inside-rust/aaron-hill-compiler-team.md rename to content/inside-rust/aaron-hill-compiler-team.md diff --git a/posts/inside-rust/all-hands-retrospective.md b/content/inside-rust/all-hands-retrospective.md similarity index 100% rename from posts/inside-rust/all-hands-retrospective.md rename to content/inside-rust/all-hands-retrospective.md diff --git a/posts/inside-rust/all-hands.md b/content/inside-rust/all-hands.md similarity index 100% rename from posts/inside-rust/all-hands.md rename to content/inside-rust/all-hands.md diff --git a/posts/inside-rust/announcing-project-goals.md b/content/inside-rust/announcing-project-goals.md similarity index 100% rename from posts/inside-rust/announcing-project-goals.md rename to content/inside-rust/announcing-project-goals.md diff --git a/posts/inside-rust/announcing-the-docsrs-team.md b/content/inside-rust/announcing-the-docsrs-team.md similarity index 100% rename from posts/inside-rust/announcing-the-docsrs-team.md rename to content/inside-rust/announcing-the-docsrs-team.md diff --git a/posts/inside-rust/announcing-the-rust-style-team.md b/content/inside-rust/announcing-the-rust-style-team.md similarity index 100% rename from posts/inside-rust/announcing-the-rust-style-team.md rename to content/inside-rust/announcing-the-rust-style-team.md diff --git a/posts/inside-rust/api-token-scopes.md b/content/inside-rust/api-token-scopes.md similarity index 100% rename from posts/inside-rust/api-token-scopes.md rename to content/inside-rust/api-token-scopes.md diff --git a/posts/inside-rust/apr-steering-cycle.md b/content/inside-rust/apr-steering-cycle.md similarity index 100% rename from posts/inside-rust/apr-steering-cycle.md rename to content/inside-rust/apr-steering-cycle.md diff --git a/posts/inside-rust/async-closures-call-for-testing.md b/content/inside-rust/async-closures-call-for-testing.md similarity index 100% rename from posts/inside-rust/async-closures-call-for-testing.md rename to content/inside-rust/async-closures-call-for-testing.md diff --git a/posts/inside-rust/async-fn-in-trait-nightly.md b/content/inside-rust/async-fn-in-trait-nightly.md similarity index 100% rename from posts/inside-rust/async-fn-in-trait-nightly.md rename to content/inside-rust/async-fn-in-trait-nightly.md diff --git a/posts/inside-rust/async-in-2022.md b/content/inside-rust/async-in-2022.md similarity index 100% rename from posts/inside-rust/async-in-2022.md rename to content/inside-rust/async-in-2022.md diff --git a/posts/inside-rust/bisecting-rust-compiler.md b/content/inside-rust/bisecting-rust-compiler.md similarity index 100% rename from posts/inside-rust/bisecting-rust-compiler.md rename to content/inside-rust/bisecting-rust-compiler.md diff --git a/posts/inside-rust/blog.toml b/content/inside-rust/blog.toml similarity index 100% rename from posts/inside-rust/blog.toml rename to content/inside-rust/blog.toml diff --git a/posts/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md b/content/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md similarity index 100% rename from posts/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md rename to content/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md diff --git a/posts/inside-rust/cargo-config-merging.md b/content/inside-rust/cargo-config-merging.md similarity index 100% rename from posts/inside-rust/cargo-config-merging.md rename to content/inside-rust/cargo-config-merging.md diff --git a/posts/inside-rust/cargo-in-2020.md b/content/inside-rust/cargo-in-2020.md similarity index 100% rename from posts/inside-rust/cargo-in-2020.md rename to content/inside-rust/cargo-in-2020.md diff --git a/posts/inside-rust/cargo-new-members.md b/content/inside-rust/cargo-new-members.md similarity index 100% rename from posts/inside-rust/cargo-new-members.md rename to content/inside-rust/cargo-new-members.md diff --git a/posts/inside-rust/cargo-postmortem.md b/content/inside-rust/cargo-postmortem.md similarity index 100% rename from posts/inside-rust/cargo-postmortem.md rename to content/inside-rust/cargo-postmortem.md diff --git a/posts/inside-rust/cargo-sparse-protocol.md b/content/inside-rust/cargo-sparse-protocol.md similarity index 100% rename from posts/inside-rust/cargo-sparse-protocol.md rename to content/inside-rust/cargo-sparse-protocol.md diff --git a/posts/inside-rust/cargo-team-changes.md b/content/inside-rust/cargo-team-changes.md similarity index 100% rename from posts/inside-rust/cargo-team-changes.md rename to content/inside-rust/cargo-team-changes.md diff --git a/posts/inside-rust/changes-to-compiler-team.md b/content/inside-rust/changes-to-compiler-team.md similarity index 100% rename from posts/inside-rust/changes-to-compiler-team.md rename to content/inside-rust/changes-to-compiler-team.md diff --git a/posts/inside-rust/changes-to-rustdoc-team.md b/content/inside-rust/changes-to-rustdoc-team.md similarity index 100% rename from posts/inside-rust/changes-to-rustdoc-team.md rename to content/inside-rust/changes-to-rustdoc-team.md diff --git a/posts/inside-rust/changes-to-x-py-defaults.md b/content/inside-rust/changes-to-x-py-defaults.md similarity index 100% rename from posts/inside-rust/changes-to-x-py-defaults.md rename to content/inside-rust/changes-to-x-py-defaults.md diff --git a/posts/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md b/content/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md similarity index 100% rename from posts/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md rename to content/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md diff --git a/posts/inside-rust/clippy-team-changes.md b/content/inside-rust/clippy-team-changes.md similarity index 100% rename from posts/inside-rust/clippy-team-changes.md rename to content/inside-rust/clippy-team-changes.md diff --git a/posts/inside-rust/compiler-team-2022-midyear-report.md b/content/inside-rust/compiler-team-2022-midyear-report.md similarity index 100% rename from posts/inside-rust/compiler-team-2022-midyear-report.md rename to content/inside-rust/compiler-team-2022-midyear-report.md diff --git a/posts/inside-rust/compiler-team-ambitions-2022.md b/content/inside-rust/compiler-team-ambitions-2022.md similarity index 100% rename from posts/inside-rust/compiler-team-ambitions-2022.md rename to content/inside-rust/compiler-team-ambitions-2022.md diff --git a/posts/inside-rust/compiler-team-april-steering-cycle.md b/content/inside-rust/compiler-team-april-steering-cycle.md similarity index 100% rename from posts/inside-rust/compiler-team-april-steering-cycle.md rename to content/inside-rust/compiler-team-april-steering-cycle.md diff --git a/posts/inside-rust/compiler-team-august-steering-cycle.md b/content/inside-rust/compiler-team-august-steering-cycle.md similarity index 100% rename from posts/inside-rust/compiler-team-august-steering-cycle.md rename to content/inside-rust/compiler-team-august-steering-cycle.md diff --git a/posts/inside-rust/compiler-team-feb-steering-cycle.md b/content/inside-rust/compiler-team-feb-steering-cycle.md similarity index 100% rename from posts/inside-rust/compiler-team-feb-steering-cycle.md rename to content/inside-rust/compiler-team-feb-steering-cycle.md diff --git a/posts/inside-rust/compiler-team-july-steering-cycle.md b/content/inside-rust/compiler-team-july-steering-cycle.md similarity index 100% rename from posts/inside-rust/compiler-team-july-steering-cycle.md rename to content/inside-rust/compiler-team-july-steering-cycle.md diff --git a/posts/inside-rust/compiler-team-june-steering-cycle.md b/content/inside-rust/compiler-team-june-steering-cycle.md similarity index 100% rename from posts/inside-rust/compiler-team-june-steering-cycle.md rename to content/inside-rust/compiler-team-june-steering-cycle.md diff --git a/posts/inside-rust/compiler-team-meeting@0.md b/content/inside-rust/compiler-team-meeting@0.md similarity index 100% rename from posts/inside-rust/compiler-team-meeting@0.md rename to content/inside-rust/compiler-team-meeting@0.md diff --git a/posts/inside-rust/compiler-team-meeting@1.md b/content/inside-rust/compiler-team-meeting@1.md similarity index 100% rename from posts/inside-rust/compiler-team-meeting@1.md rename to content/inside-rust/compiler-team-meeting@1.md diff --git a/posts/inside-rust/compiler-team-meeting@2.md b/content/inside-rust/compiler-team-meeting@2.md similarity index 100% rename from posts/inside-rust/compiler-team-meeting@2.md rename to content/inside-rust/compiler-team-meeting@2.md diff --git a/posts/inside-rust/compiler-team-meeting@3.md b/content/inside-rust/compiler-team-meeting@3.md similarity index 100% rename from posts/inside-rust/compiler-team-meeting@3.md rename to content/inside-rust/compiler-team-meeting@3.md diff --git a/posts/inside-rust/compiler-team-meeting@4.md b/content/inside-rust/compiler-team-meeting@4.md similarity index 100% rename from posts/inside-rust/compiler-team-meeting@4.md rename to content/inside-rust/compiler-team-meeting@4.md diff --git a/posts/inside-rust/compiler-team-meeting@5.md b/content/inside-rust/compiler-team-meeting@5.md similarity index 100% rename from posts/inside-rust/compiler-team-meeting@5.md rename to content/inside-rust/compiler-team-meeting@5.md diff --git a/posts/inside-rust/compiler-team-meeting@6.md b/content/inside-rust/compiler-team-meeting@6.md similarity index 100% rename from posts/inside-rust/compiler-team-meeting@6.md rename to content/inside-rust/compiler-team-meeting@6.md diff --git a/posts/inside-rust/compiler-team-new-members.md b/content/inside-rust/compiler-team-new-members.md similarity index 100% rename from posts/inside-rust/compiler-team-new-members.md rename to content/inside-rust/compiler-team-new-members.md diff --git a/posts/inside-rust/compiler-team-reorg.md b/content/inside-rust/compiler-team-reorg.md similarity index 100% rename from posts/inside-rust/compiler-team-reorg.md rename to content/inside-rust/compiler-team-reorg.md diff --git a/posts/inside-rust/compiler-team-sep-oct-steering-cycle.md b/content/inside-rust/compiler-team-sep-oct-steering-cycle.md similarity index 100% rename from posts/inside-rust/compiler-team-sep-oct-steering-cycle.md rename to content/inside-rust/compiler-team-sep-oct-steering-cycle.md diff --git a/posts/inside-rust/const-if-match.md b/content/inside-rust/const-if-match.md similarity index 100% rename from posts/inside-rust/const-if-match.md rename to content/inside-rust/const-if-match.md diff --git a/posts/inside-rust/const-prop-on-by-default.md b/content/inside-rust/const-prop-on-by-default.md similarity index 100% rename from posts/inside-rust/const-prop-on-by-default.md rename to content/inside-rust/const-prop-on-by-default.md diff --git a/posts/inside-rust/content-delivery-networks.md b/content/inside-rust/content-delivery-networks.md similarity index 100% rename from posts/inside-rust/content-delivery-networks.md rename to content/inside-rust/content-delivery-networks.md diff --git a/posts/inside-rust/contributor-survey.md b/content/inside-rust/contributor-survey.md similarity index 100% rename from posts/inside-rust/contributor-survey.md rename to content/inside-rust/contributor-survey.md diff --git a/posts/inside-rust/core-team-update.md b/content/inside-rust/core-team-update.md similarity index 100% rename from posts/inside-rust/core-team-update.md rename to content/inside-rust/core-team-update.md diff --git a/posts/inside-rust/core-team-updates.md b/content/inside-rust/core-team-updates.md similarity index 100% rename from posts/inside-rust/core-team-updates.md rename to content/inside-rust/core-team-updates.md diff --git a/posts/inside-rust/coroutines.md b/content/inside-rust/coroutines.md similarity index 100% rename from posts/inside-rust/coroutines.md rename to content/inside-rust/coroutines.md diff --git a/posts/inside-rust/crates-io-incident-report.md b/content/inside-rust/crates-io-incident-report.md similarity index 100% rename from posts/inside-rust/crates-io-incident-report.md rename to content/inside-rust/crates-io-incident-report.md diff --git a/posts/inside-rust/crates-io-malware-postmortem.md b/content/inside-rust/crates-io-malware-postmortem.md similarity index 100% rename from posts/inside-rust/crates-io-malware-postmortem.md rename to content/inside-rust/crates-io-malware-postmortem.md diff --git a/posts/inside-rust/crates-io-postmortem.md b/content/inside-rust/crates-io-postmortem.md similarity index 100% rename from posts/inside-rust/crates-io-postmortem.md rename to content/inside-rust/crates-io-postmortem.md diff --git a/posts/inside-rust/davidtwco-jackhuey-compiler-members.md b/content/inside-rust/davidtwco-jackhuey-compiler-members.md similarity index 100% rename from posts/inside-rust/davidtwco-jackhuey-compiler-members.md rename to content/inside-rust/davidtwco-jackhuey-compiler-members.md diff --git a/posts/inside-rust/diagnostic-effort.md b/content/inside-rust/diagnostic-effort.md similarity index 100% rename from posts/inside-rust/diagnostic-effort.md rename to content/inside-rust/diagnostic-effort.md diff --git a/posts/inside-rust/dns-outage-portmortem.md b/content/inside-rust/dns-outage-portmortem.md similarity index 100% rename from posts/inside-rust/dns-outage-portmortem.md rename to content/inside-rust/dns-outage-portmortem.md diff --git a/posts/inside-rust/docsrs-outage-postmortem.md b/content/inside-rust/docsrs-outage-postmortem.md similarity index 100% rename from posts/inside-rust/docsrs-outage-postmortem.md rename to content/inside-rust/docsrs-outage-postmortem.md diff --git a/posts/inside-rust/ecstatic-morse-for-compiler-contributors.md b/content/inside-rust/ecstatic-morse-for-compiler-contributors.md similarity index 100% rename from posts/inside-rust/ecstatic-morse-for-compiler-contributors.md rename to content/inside-rust/ecstatic-morse-for-compiler-contributors.md diff --git a/posts/inside-rust/electing-new-project-directors.md b/content/inside-rust/electing-new-project-directors.md similarity index 100% rename from posts/inside-rust/electing-new-project-directors.md rename to content/inside-rust/electing-new-project-directors.md diff --git a/posts/inside-rust/embedded-wg-micro-survey.md b/content/inside-rust/embedded-wg-micro-survey.md similarity index 100% rename from posts/inside-rust/embedded-wg-micro-survey.md rename to content/inside-rust/embedded-wg-micro-survey.md diff --git a/posts/inside-rust/error-handling-wg-announcement.md b/content/inside-rust/error-handling-wg-announcement.md similarity index 100% rename from posts/inside-rust/error-handling-wg-announcement.md rename to content/inside-rust/error-handling-wg-announcement.md diff --git a/posts/inside-rust/evaluating-github-actions.md b/content/inside-rust/evaluating-github-actions.md similarity index 100% rename from posts/inside-rust/evaluating-github-actions.md rename to content/inside-rust/evaluating-github-actions.md diff --git a/posts/inside-rust/exploring-pgo-for-the-rust-compiler.md b/content/inside-rust/exploring-pgo-for-the-rust-compiler.md similarity index 100% rename from posts/inside-rust/exploring-pgo-for-the-rust-compiler.md rename to content/inside-rust/exploring-pgo-for-the-rust-compiler.md diff --git a/posts/inside-rust/feb-lang-team-design-meetings.md b/content/inside-rust/feb-lang-team-design-meetings.md similarity index 100% rename from posts/inside-rust/feb-lang-team-design-meetings.md rename to content/inside-rust/feb-lang-team-design-meetings.md diff --git a/posts/inside-rust/feb-steering-cycle.md b/content/inside-rust/feb-steering-cycle.md similarity index 100% rename from posts/inside-rust/feb-steering-cycle.md rename to content/inside-rust/feb-steering-cycle.md diff --git a/posts/inside-rust/ffi-unwind-design-meeting.md b/content/inside-rust/ffi-unwind-design-meeting.md similarity index 100% rename from posts/inside-rust/ffi-unwind-design-meeting.md rename to content/inside-rust/ffi-unwind-design-meeting.md diff --git a/posts/inside-rust/ffi-unwind-longjmp.md b/content/inside-rust/ffi-unwind-longjmp.md similarity index 100% rename from posts/inside-rust/ffi-unwind-longjmp.md rename to content/inside-rust/ffi-unwind-longjmp.md diff --git a/posts/inside-rust/follow-up-on-the-moderation-issue.md b/content/inside-rust/follow-up-on-the-moderation-issue.md similarity index 100% rename from posts/inside-rust/follow-up-on-the-moderation-issue.md rename to content/inside-rust/follow-up-on-the-moderation-issue.md diff --git a/posts/inside-rust/formatting-the-compiler.md b/content/inside-rust/formatting-the-compiler.md similarity index 100% rename from posts/inside-rust/formatting-the-compiler.md rename to content/inside-rust/formatting-the-compiler.md diff --git a/posts/inside-rust/goodbye-docs-team.md b/content/inside-rust/goodbye-docs-team.md similarity index 100% rename from posts/inside-rust/goodbye-docs-team.md rename to content/inside-rust/goodbye-docs-team.md diff --git a/posts/inside-rust/goverance-wg-cfp@1.md b/content/inside-rust/goverance-wg-cfp@1.md similarity index 100% rename from posts/inside-rust/goverance-wg-cfp@1.md rename to content/inside-rust/goverance-wg-cfp@1.md diff --git a/posts/inside-rust/governance-reform-rfc.md b/content/inside-rust/governance-reform-rfc.md similarity index 100% rename from posts/inside-rust/governance-reform-rfc.md rename to content/inside-rust/governance-reform-rfc.md diff --git a/posts/inside-rust/governance-update@0.md b/content/inside-rust/governance-update@0.md similarity index 100% rename from posts/inside-rust/governance-update@0.md rename to content/inside-rust/governance-update@0.md diff --git a/posts/inside-rust/governance-update@1.md b/content/inside-rust/governance-update@1.md similarity index 100% rename from posts/inside-rust/governance-update@1.md rename to content/inside-rust/governance-update@1.md diff --git a/posts/inside-rust/governance-wg-meeting@0.md b/content/inside-rust/governance-wg-meeting@0.md similarity index 100% rename from posts/inside-rust/governance-wg-meeting@0.md rename to content/inside-rust/governance-wg-meeting@0.md diff --git a/posts/inside-rust/governance-wg-meeting@1.md b/content/inside-rust/governance-wg-meeting@1.md similarity index 100% rename from posts/inside-rust/governance-wg-meeting@1.md rename to content/inside-rust/governance-wg-meeting@1.md diff --git a/posts/inside-rust/governance-wg-meeting@2.md b/content/inside-rust/governance-wg-meeting@2.md similarity index 100% rename from posts/inside-rust/governance-wg-meeting@2.md rename to content/inside-rust/governance-wg-meeting@2.md diff --git a/posts/inside-rust/governance-wg@1.md b/content/inside-rust/governance-wg@1.md similarity index 100% rename from posts/inside-rust/governance-wg@1.md rename to content/inside-rust/governance-wg@1.md diff --git a/posts/inside-rust/hiring-for-program-management.md b/content/inside-rust/hiring-for-program-management.md similarity index 100% rename from posts/inside-rust/hiring-for-program-management.md rename to content/inside-rust/hiring-for-program-management.md diff --git a/posts/inside-rust/ide-future.md b/content/inside-rust/ide-future.md similarity index 100% rename from posts/inside-rust/ide-future.md rename to content/inside-rust/ide-future.md diff --git a/posts/inside-rust/imposter-syndrome.md b/content/inside-rust/imposter-syndrome.md similarity index 100% rename from posts/inside-rust/imposter-syndrome.md rename to content/inside-rust/imposter-syndrome.md diff --git a/posts/inside-rust/in-response-to-the-moderation-team-resignation.md b/content/inside-rust/in-response-to-the-moderation-team-resignation.md similarity index 100% rename from posts/inside-rust/in-response-to-the-moderation-team-resignation.md rename to content/inside-rust/in-response-to-the-moderation-team-resignation.md diff --git a/posts/inside-rust/inferred-const-generic-arguments.md b/content/inside-rust/inferred-const-generic-arguments.md similarity index 100% rename from posts/inside-rust/inferred-const-generic-arguments.md rename to content/inside-rust/inferred-const-generic-arguments.md diff --git a/posts/inside-rust/infra-team-leadership-change.md b/content/inside-rust/infra-team-leadership-change.md similarity index 100% rename from posts/inside-rust/infra-team-leadership-change.md rename to content/inside-rust/infra-team-leadership-change.md diff --git a/posts/inside-rust/infra-team-meeting@0.md b/content/inside-rust/infra-team-meeting@0.md similarity index 100% rename from posts/inside-rust/infra-team-meeting@0.md rename to content/inside-rust/infra-team-meeting@0.md diff --git a/posts/inside-rust/infra-team-meeting@1.md b/content/inside-rust/infra-team-meeting@1.md similarity index 100% rename from posts/inside-rust/infra-team-meeting@1.md rename to content/inside-rust/infra-team-meeting@1.md diff --git a/posts/inside-rust/infra-team-meeting@2.md b/content/inside-rust/infra-team-meeting@2.md similarity index 100% rename from posts/inside-rust/infra-team-meeting@2.md rename to content/inside-rust/infra-team-meeting@2.md diff --git a/posts/inside-rust/infra-team-meeting@3.md b/content/inside-rust/infra-team-meeting@3.md similarity index 100% rename from posts/inside-rust/infra-team-meeting@3.md rename to content/inside-rust/infra-team-meeting@3.md diff --git a/posts/inside-rust/infra-team-meeting@4.md b/content/inside-rust/infra-team-meeting@4.md similarity index 100% rename from posts/inside-rust/infra-team-meeting@4.md rename to content/inside-rust/infra-team-meeting@4.md diff --git a/posts/inside-rust/infra-team-meeting@5.md b/content/inside-rust/infra-team-meeting@5.md similarity index 100% rename from posts/inside-rust/infra-team-meeting@5.md rename to content/inside-rust/infra-team-meeting@5.md diff --git a/posts/inside-rust/infra-team-meeting@6.md b/content/inside-rust/infra-team-meeting@6.md similarity index 100% rename from posts/inside-rust/infra-team-meeting@6.md rename to content/inside-rust/infra-team-meeting@6.md diff --git a/posts/inside-rust/infra-team-meeting@7.md b/content/inside-rust/infra-team-meeting@7.md similarity index 100% rename from posts/inside-rust/infra-team-meeting@7.md rename to content/inside-rust/infra-team-meeting@7.md diff --git a/posts/inside-rust/intro-rustc-self-profile.md b/content/inside-rust/intro-rustc-self-profile.md similarity index 100% rename from posts/inside-rust/intro-rustc-self-profile.md rename to content/inside-rust/intro-rustc-self-profile.md diff --git a/posts/inside-rust/jan-steering-cycle.md b/content/inside-rust/jan-steering-cycle.md similarity index 100% rename from posts/inside-rust/jan-steering-cycle.md rename to content/inside-rust/jan-steering-cycle.md diff --git a/posts/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md b/content/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md similarity index 100% rename from posts/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md rename to content/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md diff --git a/posts/inside-rust/jsha-rustdoc-member.md b/content/inside-rust/jsha-rustdoc-member.md similarity index 100% rename from posts/inside-rust/jsha-rustdoc-member.md rename to content/inside-rust/jsha-rustdoc-member.md diff --git a/posts/inside-rust/jtgeibel-crates-io-co-lead.md b/content/inside-rust/jtgeibel-crates-io-co-lead.md similarity index 100% rename from posts/inside-rust/jtgeibel-crates-io-co-lead.md rename to content/inside-rust/jtgeibel-crates-io-co-lead.md diff --git a/posts/inside-rust/jun-steering-cycle.md b/content/inside-rust/jun-steering-cycle.md similarity index 100% rename from posts/inside-rust/jun-steering-cycle.md rename to content/inside-rust/jun-steering-cycle.md diff --git a/posts/inside-rust/keeping-secure-with-cargo-audit-0.18.md b/content/inside-rust/keeping-secure-with-cargo-audit-0.18.md similarity index 100% rename from posts/inside-rust/keeping-secure-with-cargo-audit-0.18.md rename to content/inside-rust/keeping-secure-with-cargo-audit-0.18.md diff --git a/posts/inside-rust/keyword-generics-progress-report-feb-2023.md b/content/inside-rust/keyword-generics-progress-report-feb-2023.md similarity index 100% rename from posts/inside-rust/keyword-generics-progress-report-feb-2023.md rename to content/inside-rust/keyword-generics-progress-report-feb-2023.md diff --git a/posts/inside-rust/keyword-generics.md b/content/inside-rust/keyword-generics.md similarity index 100% rename from posts/inside-rust/keyword-generics.md rename to content/inside-rust/keyword-generics.md diff --git a/posts/inside-rust/lang-advisors.md b/content/inside-rust/lang-advisors.md similarity index 100% rename from posts/inside-rust/lang-advisors.md rename to content/inside-rust/lang-advisors.md diff --git a/posts/inside-rust/lang-roadmap-2024.md b/content/inside-rust/lang-roadmap-2024.md similarity index 100% rename from posts/inside-rust/lang-roadmap-2024.md rename to content/inside-rust/lang-roadmap-2024.md diff --git a/posts/inside-rust/lang-team-apr-update.md b/content/inside-rust/lang-team-apr-update.md similarity index 100% rename from posts/inside-rust/lang-team-apr-update.md rename to content/inside-rust/lang-team-apr-update.md diff --git a/posts/inside-rust/lang-team-april-update.md b/content/inside-rust/lang-team-april-update.md similarity index 100% rename from posts/inside-rust/lang-team-april-update.md rename to content/inside-rust/lang-team-april-update.md diff --git a/posts/inside-rust/lang-team-aug-update.md b/content/inside-rust/lang-team-aug-update.md similarity index 100% rename from posts/inside-rust/lang-team-aug-update.md rename to content/inside-rust/lang-team-aug-update.md diff --git a/posts/inside-rust/lang-team-colead.md b/content/inside-rust/lang-team-colead.md similarity index 100% rename from posts/inside-rust/lang-team-colead.md rename to content/inside-rust/lang-team-colead.md diff --git a/posts/inside-rust/lang-team-design-meeting-min-const-generics.md b/content/inside-rust/lang-team-design-meeting-min-const-generics.md similarity index 100% rename from posts/inside-rust/lang-team-design-meeting-min-const-generics.md rename to content/inside-rust/lang-team-design-meeting-min-const-generics.md diff --git a/posts/inside-rust/lang-team-design-meeting-update.md b/content/inside-rust/lang-team-design-meeting-update.md similarity index 100% rename from posts/inside-rust/lang-team-design-meeting-update.md rename to content/inside-rust/lang-team-design-meeting-update.md diff --git a/posts/inside-rust/lang-team-design-meeting-wf-types.md b/content/inside-rust/lang-team-design-meeting-wf-types.md similarity index 100% rename from posts/inside-rust/lang-team-design-meeting-wf-types.md rename to content/inside-rust/lang-team-design-meeting-wf-types.md diff --git a/posts/inside-rust/lang-team-design-meetings@0.md b/content/inside-rust/lang-team-design-meetings@0.md similarity index 100% rename from posts/inside-rust/lang-team-design-meetings@0.md rename to content/inside-rust/lang-team-design-meetings@0.md diff --git a/posts/inside-rust/lang-team-design-meetings@1.md b/content/inside-rust/lang-team-design-meetings@1.md similarity index 100% rename from posts/inside-rust/lang-team-design-meetings@1.md rename to content/inside-rust/lang-team-design-meetings@1.md diff --git a/posts/inside-rust/lang-team-design-meetings@2.md b/content/inside-rust/lang-team-design-meetings@2.md similarity index 100% rename from posts/inside-rust/lang-team-design-meetings@2.md rename to content/inside-rust/lang-team-design-meetings@2.md diff --git a/posts/inside-rust/lang-team-feb-update@0.md b/content/inside-rust/lang-team-feb-update@0.md similarity index 100% rename from posts/inside-rust/lang-team-feb-update@0.md rename to content/inside-rust/lang-team-feb-update@0.md diff --git a/posts/inside-rust/lang-team-feb-update@1.md b/content/inside-rust/lang-team-feb-update@1.md similarity index 100% rename from posts/inside-rust/lang-team-feb-update@1.md rename to content/inside-rust/lang-team-feb-update@1.md diff --git a/posts/inside-rust/lang-team-mar-update@0.md b/content/inside-rust/lang-team-mar-update@0.md similarity index 100% rename from posts/inside-rust/lang-team-mar-update@0.md rename to content/inside-rust/lang-team-mar-update@0.md diff --git a/posts/inside-rust/lang-team-mar-update@1.md b/content/inside-rust/lang-team-mar-update@1.md similarity index 100% rename from posts/inside-rust/lang-team-mar-update@1.md rename to content/inside-rust/lang-team-mar-update@1.md diff --git a/posts/inside-rust/lang-team-meetings-rescheduled.md b/content/inside-rust/lang-team-meetings-rescheduled.md similarity index 100% rename from posts/inside-rust/lang-team-meetings-rescheduled.md rename to content/inside-rust/lang-team-meetings-rescheduled.md diff --git a/posts/inside-rust/lang-team-membership-update.md b/content/inside-rust/lang-team-membership-update.md similarity index 100% rename from posts/inside-rust/lang-team-membership-update.md rename to content/inside-rust/lang-team-membership-update.md diff --git a/posts/inside-rust/lang-team-path-to-membership.md b/content/inside-rust/lang-team-path-to-membership.md similarity index 100% rename from posts/inside-rust/lang-team-path-to-membership.md rename to content/inside-rust/lang-team-path-to-membership.md diff --git a/posts/inside-rust/launching-pad-representative.md b/content/inside-rust/launching-pad-representative.md similarity index 100% rename from posts/inside-rust/launching-pad-representative.md rename to content/inside-rust/launching-pad-representative.md diff --git a/posts/inside-rust/leadership-council-membership-changes.md b/content/inside-rust/leadership-council-membership-changes.md similarity index 100% rename from posts/inside-rust/leadership-council-membership-changes.md rename to content/inside-rust/leadership-council-membership-changes.md diff --git a/posts/inside-rust/leadership-council-repr-selection@0.md b/content/inside-rust/leadership-council-repr-selection@0.md similarity index 100% rename from posts/inside-rust/leadership-council-repr-selection@0.md rename to content/inside-rust/leadership-council-repr-selection@0.md diff --git a/posts/inside-rust/leadership-council-repr-selection@1.md b/content/inside-rust/leadership-council-repr-selection@1.md similarity index 100% rename from posts/inside-rust/leadership-council-repr-selection@1.md rename to content/inside-rust/leadership-council-repr-selection@1.md diff --git a/posts/inside-rust/leadership-council-repr-selection@2.md b/content/inside-rust/leadership-council-repr-selection@2.md similarity index 100% rename from posts/inside-rust/leadership-council-repr-selection@2.md rename to content/inside-rust/leadership-council-repr-selection@2.md diff --git a/posts/inside-rust/leadership-council-repr-selection@3.md b/content/inside-rust/leadership-council-repr-selection@3.md similarity index 100% rename from posts/inside-rust/leadership-council-repr-selection@3.md rename to content/inside-rust/leadership-council-repr-selection@3.md diff --git a/posts/inside-rust/leadership-council-repr-selection@4.md b/content/inside-rust/leadership-council-repr-selection@4.md similarity index 100% rename from posts/inside-rust/leadership-council-repr-selection@4.md rename to content/inside-rust/leadership-council-repr-selection@4.md diff --git a/posts/inside-rust/leadership-council-repr-selection@5.md b/content/inside-rust/leadership-council-repr-selection@5.md similarity index 100% rename from posts/inside-rust/leadership-council-repr-selection@5.md rename to content/inside-rust/leadership-council-repr-selection@5.md diff --git a/posts/inside-rust/leadership-council-update@0.md b/content/inside-rust/leadership-council-update@0.md similarity index 100% rename from posts/inside-rust/leadership-council-update@0.md rename to content/inside-rust/leadership-council-update@0.md diff --git a/posts/inside-rust/leadership-council-update@1.md b/content/inside-rust/leadership-council-update@1.md similarity index 100% rename from posts/inside-rust/leadership-council-update@1.md rename to content/inside-rust/leadership-council-update@1.md diff --git a/posts/inside-rust/leadership-council-update@2.md b/content/inside-rust/leadership-council-update@2.md similarity index 100% rename from posts/inside-rust/leadership-council-update@2.md rename to content/inside-rust/leadership-council-update@2.md diff --git a/posts/inside-rust/leadership-council-update@3.md b/content/inside-rust/leadership-council-update@3.md similarity index 100% rename from posts/inside-rust/leadership-council-update@3.md rename to content/inside-rust/leadership-council-update@3.md diff --git a/posts/inside-rust/leadership-council-update@4.md b/content/inside-rust/leadership-council-update@4.md similarity index 100% rename from posts/inside-rust/leadership-council-update@4.md rename to content/inside-rust/leadership-council-update@4.md diff --git a/posts/inside-rust/leadership-council-update@5.md b/content/inside-rust/leadership-council-update@5.md similarity index 100% rename from posts/inside-rust/leadership-council-update@5.md rename to content/inside-rust/leadership-council-update@5.md diff --git a/posts/inside-rust/leadership-council-update@6.md b/content/inside-rust/leadership-council-update@6.md similarity index 100% rename from posts/inside-rust/leadership-council-update@6.md rename to content/inside-rust/leadership-council-update@6.md diff --git a/posts/inside-rust/leadership-initiatives.md b/content/inside-rust/leadership-initiatives.md similarity index 100% rename from posts/inside-rust/leadership-initiatives.md rename to content/inside-rust/leadership-initiatives.md diff --git a/posts/inside-rust/libs-aspirations.md b/content/inside-rust/libs-aspirations.md similarity index 100% rename from posts/inside-rust/libs-aspirations.md rename to content/inside-rust/libs-aspirations.md diff --git a/posts/inside-rust/libs-contributors-the8472-kodraus.md b/content/inside-rust/libs-contributors-the8472-kodraus.md similarity index 100% rename from posts/inside-rust/libs-contributors-the8472-kodraus.md rename to content/inside-rust/libs-contributors-the8472-kodraus.md diff --git a/posts/inside-rust/libs-contributors@0.md b/content/inside-rust/libs-contributors@0.md similarity index 100% rename from posts/inside-rust/libs-contributors@0.md rename to content/inside-rust/libs-contributors@0.md diff --git a/posts/inside-rust/libs-contributors@1.md b/content/inside-rust/libs-contributors@1.md similarity index 100% rename from posts/inside-rust/libs-contributors@1.md rename to content/inside-rust/libs-contributors@1.md diff --git a/posts/inside-rust/libs-member.md b/content/inside-rust/libs-member.md similarity index 100% rename from posts/inside-rust/libs-member.md rename to content/inside-rust/libs-member.md diff --git a/posts/inside-rust/lto-improvements.md b/content/inside-rust/lto-improvements.md similarity index 100% rename from posts/inside-rust/lto-improvements.md rename to content/inside-rust/lto-improvements.md diff --git a/posts/inside-rust/mar-steering-cycle.md b/content/inside-rust/mar-steering-cycle.md similarity index 100% rename from posts/inside-rust/mar-steering-cycle.md rename to content/inside-rust/mar-steering-cycle.md diff --git a/posts/inside-rust/new-inline-asm.md b/content/inside-rust/new-inline-asm.md similarity index 100% rename from posts/inside-rust/new-inline-asm.md rename to content/inside-rust/new-inline-asm.md diff --git a/posts/inside-rust/opening-up-the-core-team-agenda.md b/content/inside-rust/opening-up-the-core-team-agenda.md similarity index 100% rename from posts/inside-rust/opening-up-the-core-team-agenda.md rename to content/inside-rust/opening-up-the-core-team-agenda.md diff --git a/posts/inside-rust/pietro-joins-core-team.md b/content/inside-rust/pietro-joins-core-team.md similarity index 100% rename from posts/inside-rust/pietro-joins-core-team.md rename to content/inside-rust/pietro-joins-core-team.md diff --git a/posts/inside-rust/planning-meeting-update.md b/content/inside-rust/planning-meeting-update.md similarity index 100% rename from posts/inside-rust/planning-meeting-update.md rename to content/inside-rust/planning-meeting-update.md diff --git a/posts/inside-rust/planning-rust-2021.md b/content/inside-rust/planning-rust-2021.md similarity index 100% rename from posts/inside-rust/planning-rust-2021.md rename to content/inside-rust/planning-rust-2021.md diff --git a/posts/inside-rust/pnkfelix-compiler-team-co-lead.md b/content/inside-rust/pnkfelix-compiler-team-co-lead.md similarity index 100% rename from posts/inside-rust/pnkfelix-compiler-team-co-lead.md rename to content/inside-rust/pnkfelix-compiler-team-co-lead.md diff --git a/posts/inside-rust/polonius-update.md b/content/inside-rust/polonius-update.md similarity index 100% rename from posts/inside-rust/polonius-update.md rename to content/inside-rust/polonius-update.md diff --git a/posts/inside-rust/project-director-nominees.md b/content/inside-rust/project-director-nominees.md similarity index 100% rename from posts/inside-rust/project-director-nominees.md rename to content/inside-rust/project-director-nominees.md diff --git a/posts/inside-rust/project-director-update@0.md b/content/inside-rust/project-director-update@0.md similarity index 100% rename from posts/inside-rust/project-director-update@0.md rename to content/inside-rust/project-director-update@0.md diff --git a/posts/inside-rust/project-director-update@1.md b/content/inside-rust/project-director-update@1.md similarity index 100% rename from posts/inside-rust/project-director-update@1.md rename to content/inside-rust/project-director-update@1.md diff --git a/posts/inside-rust/project-director-update@2.md b/content/inside-rust/project-director-update@2.md similarity index 100% rename from posts/inside-rust/project-director-update@2.md rename to content/inside-rust/project-director-update@2.md diff --git a/posts/inside-rust/project-goals-2025h1-call-for-proposals.md b/content/inside-rust/project-goals-2025h1-call-for-proposals.md similarity index 100% rename from posts/inside-rust/project-goals-2025h1-call-for-proposals.md rename to content/inside-rust/project-goals-2025h1-call-for-proposals.md diff --git a/posts/inside-rust/recent-future-pattern-matching-improvements.md b/content/inside-rust/recent-future-pattern-matching-improvements.md similarity index 100% rename from posts/inside-rust/recent-future-pattern-matching-improvements.md rename to content/inside-rust/recent-future-pattern-matching-improvements.md diff --git a/posts/inside-rust/relnotes-interest-group.md b/content/inside-rust/relnotes-interest-group.md similarity index 100% rename from posts/inside-rust/relnotes-interest-group.md rename to content/inside-rust/relnotes-interest-group.md diff --git a/posts/inside-rust/rename-rustc-guide.md b/content/inside-rust/rename-rustc-guide.md similarity index 100% rename from posts/inside-rust/rename-rustc-guide.md rename to content/inside-rust/rename-rustc-guide.md diff --git a/posts/inside-rust/rotating-compiler-leads.md b/content/inside-rust/rotating-compiler-leads.md similarity index 100% rename from posts/inside-rust/rotating-compiler-leads.md rename to content/inside-rust/rotating-compiler-leads.md diff --git a/posts/inside-rust/rtn-call-for-testing.md b/content/inside-rust/rtn-call-for-testing.md similarity index 100% rename from posts/inside-rust/rtn-call-for-testing.md rename to content/inside-rust/rtn-call-for-testing.md diff --git a/posts/inside-rust/rust-ci-is-moving-to-github-actions.md b/content/inside-rust/rust-ci-is-moving-to-github-actions.md similarity index 100% rename from posts/inside-rust/rust-ci-is-moving-to-github-actions.md rename to content/inside-rust/rust-ci-is-moving-to-github-actions.md diff --git a/posts/inside-rust/rust-leads-summit.md b/content/inside-rust/rust-leads-summit.md similarity index 100% rename from posts/inside-rust/rust-leads-summit.md rename to content/inside-rust/rust-leads-summit.md diff --git a/posts/inside-rust/rustc-dev-guide-overview.md b/content/inside-rust/rustc-dev-guide-overview.md similarity index 100% rename from posts/inside-rust/rustc-dev-guide-overview.md rename to content/inside-rust/rustc-dev-guide-overview.md diff --git a/posts/inside-rust/rustc-learning-working-group-introduction.md b/content/inside-rust/rustc-learning-working-group-introduction.md similarity index 100% rename from posts/inside-rust/rustc-learning-working-group-introduction.md rename to content/inside-rust/rustc-learning-working-group-introduction.md diff --git a/posts/inside-rust/rustdoc-performance-improvements.md b/content/inside-rust/rustdoc-performance-improvements.md similarity index 100% rename from posts/inside-rust/rustdoc-performance-improvements.md rename to content/inside-rust/rustdoc-performance-improvements.md diff --git a/posts/inside-rust/rustup-1.24.0-incident-report.md b/content/inside-rust/rustup-1.24.0-incident-report.md similarity index 100% rename from posts/inside-rust/rustup-1.24.0-incident-report.md rename to content/inside-rust/rustup-1.24.0-incident-report.md diff --git a/posts/inside-rust/shrinkmem-rustc-sprint.md b/content/inside-rust/shrinkmem-rustc-sprint.md similarity index 100% rename from posts/inside-rust/shrinkmem-rustc-sprint.md rename to content/inside-rust/shrinkmem-rustc-sprint.md diff --git a/posts/inside-rust/source-based-code-coverage.md b/content/inside-rust/source-based-code-coverage.md similarity index 100% rename from posts/inside-rust/source-based-code-coverage.md rename to content/inside-rust/source-based-code-coverage.md diff --git a/posts/inside-rust/spec-vision.md b/content/inside-rust/spec-vision.md similarity index 100% rename from posts/inside-rust/spec-vision.md rename to content/inside-rust/spec-vision.md diff --git a/posts/inside-rust/stabilizing-async-fn-in-trait.md b/content/inside-rust/stabilizing-async-fn-in-trait.md similarity index 100% rename from posts/inside-rust/stabilizing-async-fn-in-trait.md rename to content/inside-rust/stabilizing-async-fn-in-trait.md diff --git a/posts/inside-rust/stabilizing-intra-doc-links.md b/content/inside-rust/stabilizing-intra-doc-links.md similarity index 100% rename from posts/inside-rust/stabilizing-intra-doc-links.md rename to content/inside-rust/stabilizing-intra-doc-links.md diff --git a/posts/inside-rust/survey-2021-report.md b/content/inside-rust/survey-2021-report.md similarity index 100% rename from posts/inside-rust/survey-2021-report.md rename to content/inside-rust/survey-2021-report.md diff --git a/posts/inside-rust/terminating-rust.md b/content/inside-rust/terminating-rust.md similarity index 100% rename from posts/inside-rust/terminating-rust.md rename to content/inside-rust/terminating-rust.md diff --git a/posts/inside-rust/test-infra-dec-2024.md b/content/inside-rust/test-infra-dec-2024.md similarity index 100% rename from posts/inside-rust/test-infra-dec-2024.md rename to content/inside-rust/test-infra-dec-2024.md diff --git a/posts/inside-rust/test-infra-jan-feb-2025.md b/content/inside-rust/test-infra-jan-feb-2025.md similarity index 100% rename from posts/inside-rust/test-infra-jan-feb-2025.md rename to content/inside-rust/test-infra-jan-feb-2025.md diff --git a/posts/inside-rust/test-infra-nov-2024.md b/content/inside-rust/test-infra-nov-2024.md similarity index 100% rename from posts/inside-rust/test-infra-nov-2024.md rename to content/inside-rust/test-infra-nov-2024.md diff --git a/posts/inside-rust/test-infra-oct-2024-2.md b/content/inside-rust/test-infra-oct-2024-2.md similarity index 100% rename from posts/inside-rust/test-infra-oct-2024-2.md rename to content/inside-rust/test-infra-oct-2024-2.md diff --git a/posts/inside-rust/test-infra-oct-2024.md b/content/inside-rust/test-infra-oct-2024.md similarity index 100% rename from posts/inside-rust/test-infra-oct-2024.md rename to content/inside-rust/test-infra-oct-2024.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1-76.md b/content/inside-rust/this-development-cycle-in-cargo-1-76.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1-76.md rename to content/inside-rust/this-development-cycle-in-cargo-1-76.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1-77.md b/content/inside-rust/this-development-cycle-in-cargo-1-77.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1-77.md rename to content/inside-rust/this-development-cycle-in-cargo-1-77.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1.78.md b/content/inside-rust/this-development-cycle-in-cargo-1.78.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1.78.md rename to content/inside-rust/this-development-cycle-in-cargo-1.78.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1.79.md b/content/inside-rust/this-development-cycle-in-cargo-1.79.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1.79.md rename to content/inside-rust/this-development-cycle-in-cargo-1.79.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1.80.md b/content/inside-rust/this-development-cycle-in-cargo-1.80.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1.80.md rename to content/inside-rust/this-development-cycle-in-cargo-1.80.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1.81.md b/content/inside-rust/this-development-cycle-in-cargo-1.81.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1.81.md rename to content/inside-rust/this-development-cycle-in-cargo-1.81.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1.82.md b/content/inside-rust/this-development-cycle-in-cargo-1.82.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1.82.md rename to content/inside-rust/this-development-cycle-in-cargo-1.82.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1.83.md b/content/inside-rust/this-development-cycle-in-cargo-1.83.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1.83.md rename to content/inside-rust/this-development-cycle-in-cargo-1.83.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1.84.md b/content/inside-rust/this-development-cycle-in-cargo-1.84.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1.84.md rename to content/inside-rust/this-development-cycle-in-cargo-1.84.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1.85.md b/content/inside-rust/this-development-cycle-in-cargo-1.85.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1.85.md rename to content/inside-rust/this-development-cycle-in-cargo-1.85.md diff --git a/posts/inside-rust/this-development-cycle-in-cargo-1.86.md b/content/inside-rust/this-development-cycle-in-cargo-1.86.md similarity index 100% rename from posts/inside-rust/this-development-cycle-in-cargo-1.86.md rename to content/inside-rust/this-development-cycle-in-cargo-1.86.md diff --git a/posts/inside-rust/trademark-policy-draft-feedback.md b/content/inside-rust/trademark-policy-draft-feedback.md similarity index 100% rename from posts/inside-rust/trademark-policy-draft-feedback.md rename to content/inside-rust/trademark-policy-draft-feedback.md diff --git a/posts/inside-rust/trait-system-refactor-initiative@0.md b/content/inside-rust/trait-system-refactor-initiative@0.md similarity index 100% rename from posts/inside-rust/trait-system-refactor-initiative@0.md rename to content/inside-rust/trait-system-refactor-initiative@0.md diff --git a/posts/inside-rust/trait-system-refactor-initiative@1.md b/content/inside-rust/trait-system-refactor-initiative@1.md similarity index 100% rename from posts/inside-rust/trait-system-refactor-initiative@1.md rename to content/inside-rust/trait-system-refactor-initiative@1.md diff --git a/posts/inside-rust/trait-system-refactor-initiative@2.md b/content/inside-rust/trait-system-refactor-initiative@2.md similarity index 100% rename from posts/inside-rust/trait-system-refactor-initiative@2.md rename to content/inside-rust/trait-system-refactor-initiative@2.md diff --git a/posts/inside-rust/traits-sprint-1.md b/content/inside-rust/traits-sprint-1.md similarity index 100% rename from posts/inside-rust/traits-sprint-1.md rename to content/inside-rust/traits-sprint-1.md diff --git a/posts/inside-rust/traits-sprint-2.md b/content/inside-rust/traits-sprint-2.md similarity index 100% rename from posts/inside-rust/traits-sprint-2.md rename to content/inside-rust/traits-sprint-2.md diff --git a/posts/inside-rust/traits-sprint-3.md b/content/inside-rust/traits-sprint-3.md similarity index 100% rename from posts/inside-rust/traits-sprint-3.md rename to content/inside-rust/traits-sprint-3.md diff --git a/posts/inside-rust/twir-new-lead.md b/content/inside-rust/twir-new-lead.md similarity index 100% rename from posts/inside-rust/twir-new-lead.md rename to content/inside-rust/twir-new-lead.md diff --git a/posts/inside-rust/types-team-leadership.md b/content/inside-rust/types-team-leadership.md similarity index 100% rename from posts/inside-rust/types-team-leadership.md rename to content/inside-rust/types-team-leadership.md diff --git a/posts/inside-rust/upcoming-compiler-team-design-meeting@0.md b/content/inside-rust/upcoming-compiler-team-design-meeting@0.md similarity index 100% rename from posts/inside-rust/upcoming-compiler-team-design-meeting@0.md rename to content/inside-rust/upcoming-compiler-team-design-meeting@0.md diff --git a/posts/inside-rust/upcoming-compiler-team-design-meeting@1.md b/content/inside-rust/upcoming-compiler-team-design-meeting@1.md similarity index 100% rename from posts/inside-rust/upcoming-compiler-team-design-meeting@1.md rename to content/inside-rust/upcoming-compiler-team-design-meeting@1.md diff --git a/posts/inside-rust/upcoming-compiler-team-design-meetings@0.md b/content/inside-rust/upcoming-compiler-team-design-meetings@0.md similarity index 100% rename from posts/inside-rust/upcoming-compiler-team-design-meetings@0.md rename to content/inside-rust/upcoming-compiler-team-design-meetings@0.md diff --git a/posts/inside-rust/upcoming-compiler-team-design-meetings@1.md b/content/inside-rust/upcoming-compiler-team-design-meetings@1.md similarity index 100% rename from posts/inside-rust/upcoming-compiler-team-design-meetings@1.md rename to content/inside-rust/upcoming-compiler-team-design-meetings@1.md diff --git a/posts/inside-rust/upcoming-compiler-team-design-meetings@2.md b/content/inside-rust/upcoming-compiler-team-design-meetings@2.md similarity index 100% rename from posts/inside-rust/upcoming-compiler-team-design-meetings@2.md rename to content/inside-rust/upcoming-compiler-team-design-meetings@2.md diff --git a/posts/inside-rust/upcoming-compiler-team-design-meetings@3.md b/content/inside-rust/upcoming-compiler-team-design-meetings@3.md similarity index 100% rename from posts/inside-rust/upcoming-compiler-team-design-meetings@3.md rename to content/inside-rust/upcoming-compiler-team-design-meetings@3.md diff --git a/posts/inside-rust/upcoming-compiler-team-design-meetings@4.md b/content/inside-rust/upcoming-compiler-team-design-meetings@4.md similarity index 100% rename from posts/inside-rust/upcoming-compiler-team-design-meetings@4.md rename to content/inside-rust/upcoming-compiler-team-design-meetings@4.md diff --git a/posts/inside-rust/update-on-the-github-actions-evaluation.md b/content/inside-rust/update-on-the-github-actions-evaluation.md similarity index 100% rename from posts/inside-rust/update-on-the-github-actions-evaluation.md rename to content/inside-rust/update-on-the-github-actions-evaluation.md diff --git a/posts/inside-rust/website-retrospective.md b/content/inside-rust/website-retrospective.md similarity index 100% rename from posts/inside-rust/website-retrospective.md rename to content/inside-rust/website-retrospective.md diff --git a/posts/inside-rust/welcome-tc-to-the-lang-team.md b/content/inside-rust/welcome-tc-to-the-lang-team.md similarity index 100% rename from posts/inside-rust/welcome-tc-to-the-lang-team.md rename to content/inside-rust/welcome-tc-to-the-lang-team.md diff --git a/posts/inside-rust/wg-learning-update.md b/content/inside-rust/wg-learning-update.md similarity index 100% rename from posts/inside-rust/wg-learning-update.md rename to content/inside-rust/wg-learning-update.md diff --git a/posts/inside-rust/windows-notification-group.md b/content/inside-rust/windows-notification-group.md similarity index 100% rename from posts/inside-rust/windows-notification-group.md rename to content/inside-rust/windows-notification-group.md diff --git a/posts/introducing-leadership-council.md b/content/introducing-leadership-council.md similarity index 100% rename from posts/introducing-leadership-council.md rename to content/introducing-leadership-council.md diff --git a/posts/lang-ergonomics.md b/content/lang-ergonomics.md similarity index 100% rename from posts/lang-ergonomics.md rename to content/lang-ergonomics.md diff --git a/posts/laying-the-foundation-for-rusts-future.md b/content/laying-the-foundation-for-rusts-future.md similarity index 100% rename from posts/laying-the-foundation-for-rusts-future.md rename to content/laying-the-foundation-for-rusts-future.md diff --git a/posts/libz-blitz.md b/content/libz-blitz.md similarity index 100% rename from posts/libz-blitz.md rename to content/libz-blitz.md diff --git a/posts/lock-poisoning-survey.md b/content/lock-poisoning-survey.md similarity index 100% rename from posts/lock-poisoning-survey.md rename to content/lock-poisoning-survey.md diff --git a/posts/malicious-crate-rustdecimal.md b/content/malicious-crate-rustdecimal.md similarity index 100% rename from posts/malicious-crate-rustdecimal.md rename to content/malicious-crate-rustdecimal.md diff --git a/posts/mdbook-security-advisory.md b/content/mdbook-security-advisory.md similarity index 100% rename from posts/mdbook-security-advisory.md rename to content/mdbook-security-advisory.md diff --git a/posts/new-years-rust-a-call-for-community-blogposts.md b/content/new-years-rust-a-call-for-community-blogposts.md similarity index 100% rename from posts/new-years-rust-a-call-for-community-blogposts.md rename to content/new-years-rust-a-call-for-community-blogposts.md diff --git a/posts/nll-by-default.md b/content/nll-by-default.md similarity index 100% rename from posts/nll-by-default.md rename to content/nll-by-default.md diff --git a/posts/nll-hard-errors.md b/content/nll-hard-errors.md similarity index 100% rename from posts/nll-hard-errors.md rename to content/nll-hard-errors.md diff --git a/posts/parallel-rustc.md b/content/parallel-rustc.md similarity index 100% rename from posts/parallel-rustc.md rename to content/parallel-rustc.md diff --git a/posts/project-goals-nov-update.md b/content/project-goals-nov-update.md similarity index 100% rename from posts/project-goals-nov-update.md rename to content/project-goals-nov-update.md diff --git a/posts/project-goals-oct-update.md b/content/project-goals-oct-update.md similarity index 100% rename from posts/project-goals-oct-update.md rename to content/project-goals-oct-update.md diff --git a/posts/reducing-support-for-32-bit-apple-targets.md b/content/reducing-support-for-32-bit-apple-targets.md similarity index 100% rename from posts/reducing-support-for-32-bit-apple-targets.md rename to content/reducing-support-for-32-bit-apple-targets.md diff --git a/posts/regex-1.9.md b/content/regex-1.9.md similarity index 100% rename from posts/regex-1.9.md rename to content/regex-1.9.md diff --git a/posts/regression-labels.md b/content/regression-labels.md similarity index 100% rename from posts/regression-labels.md rename to content/regression-labels.md diff --git a/posts/roadmap@0.md b/content/roadmap@0.md similarity index 100% rename from posts/roadmap@0.md rename to content/roadmap@0.md diff --git a/posts/roadmap@1.md b/content/roadmap@1.md similarity index 100% rename from posts/roadmap@1.md rename to content/roadmap@1.md diff --git a/posts/roadmap@2.md b/content/roadmap@2.md similarity index 100% rename from posts/roadmap@2.md rename to content/roadmap@2.md diff --git a/posts/rust-2024-beta.md b/content/rust-2024-beta.md similarity index 100% rename from posts/rust-2024-beta.md rename to content/rust-2024-beta.md diff --git a/posts/rust-analyzer-joins-rust-org.md b/content/rust-analyzer-joins-rust-org.md similarity index 100% rename from posts/rust-analyzer-joins-rust-org.md rename to content/rust-analyzer-joins-rust-org.md diff --git a/posts/rust-at-one-year.md b/content/rust-at-one-year.md similarity index 100% rename from posts/rust-at-one-year.md rename to content/rust-at-one-year.md diff --git a/posts/rust-at-two-years.md b/content/rust-at-two-years.md similarity index 100% rename from posts/rust-at-two-years.md rename to content/rust-at-two-years.md diff --git a/posts/rust-in-2017.md b/content/rust-in-2017.md similarity index 100% rename from posts/rust-in-2017.md rename to content/rust-in-2017.md diff --git a/posts/rust-survey-2020.md b/content/rust-survey-2020.md similarity index 100% rename from posts/rust-survey-2020.md rename to content/rust-survey-2020.md diff --git a/posts/rust-unconference.md b/content/rust-unconference.md similarity index 100% rename from posts/rust-unconference.md rename to content/rust-unconference.md diff --git a/posts/rustconf-cfp.md b/content/rustconf-cfp.md similarity index 100% rename from posts/rustconf-cfp.md rename to content/rustconf-cfp.md diff --git a/posts/rustfmt-supports-let-else-statements.md b/content/rustfmt-supports-let-else-statements.md similarity index 100% rename from posts/rustfmt-supports-let-else-statements.md rename to content/rustfmt-supports-let-else-statements.md diff --git a/posts/rustup.md b/content/rustup.md similarity index 100% rename from posts/rustup.md rename to content/rustup.md diff --git a/posts/security-advisory-for-rustdoc.md b/content/security-advisory-for-rustdoc.md similarity index 100% rename from posts/security-advisory-for-rustdoc.md rename to content/security-advisory-for-rustdoc.md diff --git a/posts/six-years-of-rust.md b/content/six-years-of-rust.md similarity index 100% rename from posts/six-years-of-rust.md rename to content/six-years-of-rust.md diff --git a/posts/sparse-registry-testing.md b/content/sparse-registry-testing.md similarity index 100% rename from posts/sparse-registry-testing.md rename to content/sparse-registry-testing.md diff --git a/posts/survey-launch@0.md b/content/survey-launch@0.md similarity index 100% rename from posts/survey-launch@0.md rename to content/survey-launch@0.md diff --git a/posts/survey-launch@1.md b/content/survey-launch@1.md similarity index 100% rename from posts/survey-launch@1.md rename to content/survey-launch@1.md diff --git a/posts/survey-launch@2.md b/content/survey-launch@2.md similarity index 100% rename from posts/survey-launch@2.md rename to content/survey-launch@2.md diff --git a/posts/survey-launch@3.md b/content/survey-launch@3.md similarity index 100% rename from posts/survey-launch@3.md rename to content/survey-launch@3.md diff --git a/posts/survey-launch@4.md b/content/survey-launch@4.md similarity index 100% rename from posts/survey-launch@4.md rename to content/survey-launch@4.md diff --git a/posts/survey@0.md b/content/survey@0.md similarity index 100% rename from posts/survey@0.md rename to content/survey@0.md diff --git a/posts/survey@1.md b/content/survey@1.md similarity index 100% rename from posts/survey@1.md rename to content/survey@1.md diff --git a/posts/survey@2.md b/content/survey@2.md similarity index 100% rename from posts/survey@2.md rename to content/survey@2.md diff --git a/posts/the-foundation-conversation.md b/content/the-foundation-conversation.md similarity index 100% rename from posts/the-foundation-conversation.md rename to content/the-foundation-conversation.md diff --git a/posts/trademark-update.md b/content/trademark-update.md similarity index 100% rename from posts/trademark-update.md rename to content/trademark-update.md diff --git a/posts/traits.md b/content/traits.md similarity index 100% rename from posts/traits.md rename to content/traits.md diff --git a/posts/types-announcement.md b/content/types-announcement.md similarity index 100% rename from posts/types-announcement.md rename to content/types-announcement.md diff --git a/posts/types-team-update.md b/content/types-team-update.md similarity index 100% rename from posts/types-team-update.md rename to content/types-team-update.md diff --git a/posts/upcoming-docsrs-changes.md b/content/upcoming-docsrs-changes.md similarity index 100% rename from posts/upcoming-docsrs-changes.md rename to content/upcoming-docsrs-changes.md diff --git a/posts/updates-to-rusts-wasi-targets.md b/content/updates-to-rusts-wasi-targets.md similarity index 100% rename from posts/updates-to-rusts-wasi-targets.md rename to content/updates-to-rusts-wasi-targets.md diff --git a/posts/wasip2-tier-2.md b/content/wasip2-tier-2.md similarity index 100% rename from posts/wasip2-tier-2.md rename to content/wasip2-tier-2.md diff --git a/posts/webassembly-targets-change-in-default-target-features.md b/content/webassembly-targets-change-in-default-target-features.md similarity index 100% rename from posts/webassembly-targets-change-in-default-target-features.md rename to content/webassembly-targets-change-in-default-target-features.md diff --git a/posts/wg-prio-call-for-contributors.md b/content/wg-prio-call-for-contributors.md similarity index 100% rename from posts/wg-prio-call-for-contributors.md rename to content/wg-prio-call-for-contributors.md diff --git a/posts/what-is-rust-2018.md b/content/what-is-rust-2018.md similarity index 100% rename from posts/what-is-rust-2018.md rename to content/what-is-rust-2018.md diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs index 28cd98e3f..7cbbe30a7 100644 --- a/front_matter/src/lib.rs +++ b/front_matter/src/lib.rs @@ -55,9 +55,9 @@ mod tests { fn front_matter_is_normalized() { let repo_root = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(".."); - let posts = fs::read_dir(repo_root.join("posts")) + let posts = fs::read_dir(repo_root.join("content")) .unwrap() - .chain(fs::read_dir(repo_root.join("posts/inside-rust")).unwrap()) + .chain(fs::read_dir(repo_root.join("content/inside-rust")).unwrap()) .map(|p| p.unwrap().path()) .filter(|p| p.extension() == Some("md".as_ref())); diff --git a/src/lib.rs b/src/lib.rs index 6ce5086c9..8af724bf7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -296,7 +296,7 @@ fn copy_dir(source: impl AsRef, dest: impl AsRef) -> Result<(), io:: } pub fn main() -> eyre::Result<()> { - let blog = Generator::new("site", "posts")?; + let blog = Generator::new("site", "content")?; blog.render()?; diff --git a/triagebot.toml b/triagebot.toml index 6964dd8d2..b447b161d 100644 --- a/triagebot.toml +++ b/triagebot.toml @@ -1,7 +1,7 @@ [assign] [rendered-link] -trigger-files = ["posts/"] +trigger-files = ["content/"] [ping.relnotes-interest-group] message = """\ From 6e1f817e5d1b563a7bddb1877af55efce32ff6db Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 27 Mar 2025 19:36:58 +0100 Subject: [PATCH 0863/1024] Move src/styles/ to sass/ --- {src/styles => sass}/_tachyons-ext.scss | 0 {src/styles => sass}/app.scss | 0 {src/styles => sass}/fonts.scss | 0 {src/styles => sass}/noscript.scss | 0 src/lib.rs | 2 +- 5 files changed, 1 insertion(+), 1 deletion(-) rename {src/styles => sass}/_tachyons-ext.scss (100%) rename {src/styles => sass}/app.scss (100%) rename {src/styles => sass}/fonts.scss (100%) rename {src/styles => sass}/noscript.scss (100%) diff --git a/src/styles/_tachyons-ext.scss b/sass/_tachyons-ext.scss similarity index 100% rename from src/styles/_tachyons-ext.scss rename to sass/_tachyons-ext.scss diff --git a/src/styles/app.scss b/sass/app.scss similarity index 100% rename from src/styles/app.scss rename to sass/app.scss diff --git a/src/styles/fonts.scss b/sass/fonts.scss similarity index 100% rename from src/styles/fonts.scss rename to sass/fonts.scss diff --git a/src/styles/noscript.scss b/sass/noscript.scss similarity index 100% rename from src/styles/noscript.scss rename to sass/noscript.scss diff --git a/src/lib.rs b/src/lib.rs index 8af724bf7..2ac61540d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -119,7 +119,7 @@ impl Generator { } fn compile_sass(&self, filename: &str) -> eyre::Result<()> { - let scss_file = format!("./src/styles/{filename}.scss"); + let scss_file = format!("./sass/{filename}.scss"); let css_file = format!("./static/styles/{filename}.css"); let css = compile_file(&scss_file, Options::default()) From 105f8db97cc634f7e3610ac594aba21503802e20 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 27 Mar 2025 20:24:15 +0100 Subject: [PATCH 0864/1024] Rename templates for zola --- src/lib.rs | 7 ++++--- templates/{feed.tera => feed.xml} | 0 templates/{footer.tera => footer.html} | 0 templates/{headers.tera => headers.html} | 0 templates/{index.tera => index.html} | 2 +- templates/{layout.tera => layout.html} | 6 +++--- templates/{nav.tera => nav.html} | 0 templates/{post.tera => post.html} | 2 +- 8 files changed, 9 insertions(+), 8 deletions(-) rename templates/{feed.tera => feed.xml} (100%) rename templates/{footer.tera => footer.html} (100%) rename templates/{headers.tera => headers.html} (100%) rename templates/{index.tera => index.html} (97%) rename templates/{layout.tera => layout.html} (85%) rename templates/{nav.tera => nav.html} (100%) rename templates/{post.tera => post.html} (95%) diff --git a/src/lib.rs b/src/lib.rs index 2ac61540d..8753fac7a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -80,6 +80,7 @@ impl Generator { let mut tera = Tera::new("templates/*")?; tera.register_filter("month_name", month_name); tera.register_filter("escape_hbs", escape_hbs); + tera.autoescape_on(vec![]); // disable auto-escape for .html templates Ok(Generator { tera, blogs: self::blogs::load(posts_directory.as_ref())?, @@ -188,7 +189,7 @@ impl Generator { "root": blog.path_back_to_root(), }); let path = blog.prefix().join("index.html"); - self.render_template(&path, "index.tera", data)?; + self.render_template(&path, "index.html", data)?; Ok(path) } @@ -212,7 +213,7 @@ impl Generator { }); let path = path.join(filename); - self.render_template(&path, &format!("{}.tera", post.layout), data)?; + self.render_template(&path, &format!("{}.html", post.layout), data)?; Ok(path) } @@ -224,7 +225,7 @@ impl Generator { "feed_updated": chrono::Utc::now().with_nanosecond(0).unwrap().to_rfc3339(), }); - self.render_template(blog.prefix().join("feed.xml"), "feed.tera", data)?; + self.render_template(blog.prefix().join("feed.xml"), "feed.xml", data)?; Ok(()) } diff --git a/templates/feed.tera b/templates/feed.xml similarity index 100% rename from templates/feed.tera rename to templates/feed.xml diff --git a/templates/footer.tera b/templates/footer.html similarity index 100% rename from templates/footer.tera rename to templates/footer.html diff --git a/templates/headers.tera b/templates/headers.html similarity index 100% rename from templates/headers.tera rename to templates/headers.html diff --git a/templates/index.tera b/templates/index.html similarity index 97% rename from templates/index.tera rename to templates/index.html index 442157c15..4dd3597ad 100644 --- a/templates/index.tera +++ b/templates/index.html @@ -1,4 +1,4 @@ -{% extends "layout.tera" %} +{% extends "layout.html" %} {% block page %}

    diff --git a/templates/layout.tera b/templates/layout.html similarity index 85% rename from templates/layout.tera rename to templates/layout.html index 48fe41342..b08f1e7b8 100644 --- a/templates/layout.tera +++ b/templates/layout.html @@ -1,6 +1,6 @@ -{% import "headers.tera" as headers %} -{% import "nav.tera" as nav %} -{% import "footer.tera" as footer %} +{% import "headers.html" as headers %} +{% import "nav.html" as nav %} +{% import "footer.html" as footer %} diff --git a/templates/nav.tera b/templates/nav.html similarity index 100% rename from templates/nav.tera rename to templates/nav.html diff --git a/templates/post.tera b/templates/post.html similarity index 95% rename from templates/post.tera rename to templates/post.html index abba02bd8..b28965865 100644 --- a/templates/post.tera +++ b/templates/post.html @@ -1,4 +1,4 @@ -{% extends "layout.tera" %} +{% extends "layout.html" %} {% block page %}
    From 21e066c49e581eecc5fd74fef6cf32f5b4055dae Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 27 Mar 2025 21:55:26 +0100 Subject: [PATCH 0865/1024] Output to public/ instead of site/ --- .github/workflows/main.yml | 6 +++--- .gitignore | 1 + README.md | 6 +++--- serve/src/main.rs | 2 +- src/bin/blog.rs | 4 ++-- src/lib.rs | 8 ++++---- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index eeab6d6e3..4091df90d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,12 +32,12 @@ jobs: - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 - run: cargo run - - run: cp CNAME ./site/ - - run: touch site/.nojekyll + - run: cp CNAME ./public/ + - run: touch public/.nojekyll - uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1 with: - path: site + path: public deploy: if: ${{ github.ref == 'refs/heads/master' }} diff --git a/.gitignore b/.gitignore index 054d96f75..dbef10ff1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /target/ **/*.rs.bk site +public static/styles/vendor.css static/styles/app.css static/styles/fonts.css diff --git a/README.md b/README.md index 7dbbd7c97..098082137 100644 --- a/README.md +++ b/README.md @@ -19,11 +19,11 @@ $ cargo run You could do it in release mode if you'd like, but it's pretty fast in debug. -From there, the generated HTML will be in a `site` directory. -Open `site/index.html` in your web browser to view the site. +From there, the generated HTML will be in a `public` directory. +Open `public/index.html` in your web browser to view the site. ```console -$ firefox site/index.html +$ firefox public/index.html ``` You can also run a server, if you need to preview your changes on a different machine: diff --git a/serve/src/main.rs b/serve/src/main.rs index 5547243e6..7fe0aa6a7 100644 --- a/serve/src/main.rs +++ b/serve/src/main.rs @@ -7,7 +7,7 @@ async fn main() -> Result<(), Box> { let footer = format!("{} {}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")); warpy::server::run( - format!("{}/../site", env!("CARGO_MANIFEST_DIR")), + format!("{}/../public", env!("CARGO_MANIFEST_DIR")), [0, 0, 0, 0], footer, Some(8000), diff --git a/src/bin/blog.rs b/src/bin/blog.rs index d3cbfa99e..2e11289a6 100644 --- a/src/bin/blog.rs +++ b/src/bin/blog.rs @@ -5,11 +5,11 @@ pub fn main() -> eyre::Result<()> { println!( "blog has been generated; you can now serve its content by running\n\ - {INDENT}python3 -m http.server --directory {ROOT}/site\n\ + {INDENT}python3 -m http.server --directory {ROOT}/public\n\ or running:\n\ {INDENT}cargo run -p serve\n\ or you can read it directly by opening a web browser on:\n\ - {INDENT}file:///{ROOT}/site/index.html", + {INDENT}file:///{ROOT}/public/index.html", ROOT = env!("CARGO_MANIFEST_DIR"), INDENT = " " ); diff --git a/src/lib.rs b/src/lib.rs index 8753fac7a..eb44c43e5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -297,7 +297,7 @@ fn copy_dir(source: impl AsRef, dest: impl AsRef) -> Result<(), io:: } pub fn main() -> eyre::Result<()> { - let blog = Generator::new("site", "content")?; + let blog = Generator::new("public", "content")?; blog.render()?; @@ -306,11 +306,11 @@ pub fn main() -> eyre::Result<()> { #[test] fn snapshot() { - let _ = std::fs::remove_dir_all(concat!(env!("CARGO_MANIFEST_DIR"), "/site")); + let _ = std::fs::remove_dir_all(concat!(env!("CARGO_MANIFEST_DIR"), "/public")); main().unwrap(); let timestamped_files = ["releases.json", "feed.xml"]; let inexplicably_non_deterministic_files = ["images/2023-08-rust-survey-2022/experiences.png"]; - insta::glob!("..", "site/**/*", |path| { + insta::glob!("..", "public/**/*", |path| { if path.is_dir() { return; } @@ -335,7 +335,7 @@ fn snapshot() { (r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}", "(filtered timestamp)"), ]}, { for file in timestamped_files { - let content = fs::read(format!("site/{file}")).unwrap(); + let content = fs::read(format!("public/{file}")).unwrap(); let content = String::from_utf8_lossy(&content).into_owned(); insta::assert_snapshot!(content); } From f057363ba326db09d8560b54464a005256fc813f Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Fri, 28 Mar 2025 21:23:17 +0100 Subject: [PATCH 0866/1024] Remove unneeded 'root' variable from templates --- src/blogs.rs | 4 ---- src/lib.rs | 2 -- templates/footer.html | 18 +++++++++--------- templates/headers.html | 26 +++++++++++++------------- templates/index.html | 2 +- templates/layout.html | 6 +++--- templates/nav.html | 8 ++++---- 7 files changed, 30 insertions(+), 36 deletions(-) diff --git a/src/blogs.rs b/src/blogs.rs index 280456ae4..9a06822fc 100644 --- a/src/blogs.rs +++ b/src/blogs.rs @@ -110,10 +110,6 @@ impl Blog { &self.prefix } - pub(crate) fn path_back_to_root(&self) -> PathBuf { - self.prefix.components().map(|_| Path::new("../")).collect() - } - pub(crate) fn posts(&self) -> &[Post] { &self.posts } diff --git a/src/lib.rs b/src/lib.rs index eb44c43e5..2ff5adb22 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -186,7 +186,6 @@ impl Generator { "title": blog.index_title(), "blog": blog, "other_blogs": other_blogs, - "root": blog.path_back_to_root(), }); let path = blog.prefix().join("index.html"); self.render_template(&path, "index.html", data)?; @@ -209,7 +208,6 @@ impl Generator { "title": format!("{} | {}", post.title, blog.title()), "blog": blog, "post": post, - "root": blog.path_back_to_root().join("../../../"), }); let path = path.join(filename); diff --git a/templates/footer.html b/templates/footer.html index e5bd89fdc..af5ff7c20 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -1,4 +1,4 @@ -{% macro footer(root) -%} +{% macro footer() -%} - + {% endmacro %} diff --git a/templates/headers.html b/templates/headers.html index 1edacedb0..dd5e0291c 100644 --- a/templates/headers.html +++ b/templates/headers.html @@ -1,4 +1,4 @@ -{% macro headers(root, title, blog) -%} +{% macro headers(title, blog) -%} @@ -15,23 +15,23 @@ - - - - + + + + - - - - - - + + + + + + @@ -39,5 +39,5 @@ - + {% endmacro %} diff --git a/templates/index.html b/templates/index.html index 4dd3597ad..fabccbf68 100644 --- a/templates/index.html +++ b/templates/index.html @@ -11,7 +11,7 @@

    See also: {%- for other in other_blogs %} - {{other.link_text | escape_hbs}} + {{other.link_text | escape_hbs}} {%- endfor %}

    diff --git a/templates/layout.html b/templates/layout.html index b08f1e7b8..5e8edd71b 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -8,11 +8,11 @@ {{ title | escape_hbs }} - {{ headers::headers(root=root, title=title, blog=blog) | indent(prefix=" ", blank=true) }} + {{ headers::headers(title=title, blog=blog) | indent(prefix=" ", blank=true) }} - {{ nav::nav(root=root, blog=blog) | indent(prefix=" ", blank=true) }} + {{ nav::nav(blog=blog) | indent(prefix=" ", blank=true) }} {%- block page %}{% endblock page %} - {{ footer::footer(root=root) | indent(prefix=" ", blank=true) }} + {{ footer::footer() | indent(prefix=" ", blank=true) }} diff --git a/templates/nav.html b/templates/nav.html index 843c29d1c..296974b7f 100644 --- a/templates/nav.html +++ b/templates/nav.html @@ -1,8 +1,8 @@ -{% macro nav(root, blog) -%} +{% macro nav(blog) -%} {% endmacro %} From a98611fc06650f2b71ba2e243e95625ab7497f5d Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 29 Mar 2025 00:22:05 +0100 Subject: [PATCH 0867/1024] Refactor blog manifests (#1541) - The 'requires-team' key is set to false for both blogs, so this enforcement is never active -> delete the key. - Snake case for the keys will lead to a smaller diff when migrating to zola. - Using _index.md instead of blog.toml also moves us closer to zola. --- content/{blog.toml => _index.md} | 11 +++++----- content/inside-rust/{blog.toml => _index.md} | 11 +++++----- src/blogs.rs | 23 ++++++++++++-------- src/posts.rs | 8 +------ 4 files changed, 27 insertions(+), 26 deletions(-) rename content/{blog.toml => _index.md} (63%) rename content/inside-rust/{blog.toml => _index.md} (74%) diff --git a/content/blog.toml b/content/_index.md similarity index 63% rename from content/blog.toml rename to content/_index.md index 889e663fb..3e926af75 100644 --- a/content/blog.toml +++ b/content/_index.md @@ -1,10 +1,11 @@ ++++ title = "Rust Blog" -index-title = "The Rust Programming Language Blog" -link-text = "the main Rust blog" +index_title = "The Rust Programming Language Blog" +link_text = "the main Rust blog" description = "Empowering everyone to build reliable and efficient software." -index-html = """ +index_html = """ This is the main Rust blog. \ Rust teams \ use this blog to announce major developments in the world of Rust.""" -maintained-by = "the Rust Teams" -requires-team = false +maintained_by = "the Rust Teams" ++++ diff --git a/content/inside-rust/blog.toml b/content/inside-rust/_index.md similarity index 74% rename from content/inside-rust/blog.toml rename to content/inside-rust/_index.md index 8014cd1f1..11ae3b7b0 100644 --- a/content/inside-rust/blog.toml +++ b/content/inside-rust/_index.md @@ -1,12 +1,13 @@ ++++ title = "Inside Rust Blog" -index-title = 'The "Inside Rust" Blog' -link-text = 'the "Inside Rust" blog' +index_title = 'The "Inside Rust" Blog' +link_text = 'the "Inside Rust" blog' description = "Want to follow along with Rust development? Curious how you might get involved? Take a look!" -index-html = """ +index_html = """ This is the "Inside Rust" blog. This blog is aimed at those who wish \ to follow along with Rust development. The various \ Rust teams and working groups \ use this blog to post status updates, calls for help, and other \ similar announcements.""" -maintained-by = "the Rust Teams" -requires-team = false +maintained_by = "the Rust Teams" ++++ diff --git a/src/blogs.rs b/src/blogs.rs index 9a06822fc..abb1f332a 100644 --- a/src/blogs.rs +++ b/src/blogs.rs @@ -2,11 +2,11 @@ use super::posts::Post; use serde::{Deserialize, Serialize}; use std::path::{Path, PathBuf}; -static MANIFEST_FILE: &str = "blog.toml"; +static MANIFEST_FILE: &str = "_index.md"; static POSTS_EXT: &str = "md"; #[derive(Deserialize)] -#[serde(rename_all = "kebab-case", deny_unknown_fields)] +#[serde(deny_unknown_fields)] pub struct Manifest { /// Title to display in the "top row". pub(crate) title: String, @@ -23,9 +23,6 @@ pub struct Manifest { /// Raw html describing the blog to insert into the index page. pub(crate) index_html: String, - /// If true, posts require a `team` in their metadata. - pub(crate) requires_team: bool, - /// What text to use when linking to this blog in the "see also" /// section from other blogs. pub(crate) link_text: String, @@ -46,15 +43,23 @@ pub struct Blog { impl Blog { fn load(prefix: PathBuf, dir: &Path) -> eyre::Result { - let manifest_content = std::fs::read_to_string(dir.join(MANIFEST_FILE))?; + let manifest_content = std::fs::read_to_string(dir.join(MANIFEST_FILE))? + .strip_prefix("+++\n") + .unwrap() + .strip_suffix("+++\n") + .unwrap() + .to_string(); let manifest: Manifest = toml::from_str(&manifest_content)?; let mut posts = Vec::new(); for entry in std::fs::read_dir(dir)? { let path = entry?.path(); + if path.ends_with("_index.md") { + continue; // blog manifest is not a post + } let ext = path.extension().and_then(|e| e.to_str()); if path.metadata()?.file_type().is_file() && ext == Some(POSTS_EXT) { - posts.push(Post::open(&path, &manifest)?); + posts.push(Post::open(&path)?); } } @@ -115,8 +120,8 @@ impl Blog { } } -/// Recursively load blogs in a directory. A blog is a directory with a `blog.toml` -/// file inside it. +/// Recursively load blogs in a directory. A blog is a directory with a +/// `_index.md` file inside it. pub fn load(base: &Path) -> eyre::Result> { let mut blogs = Vec::new(); load_recursive(base, base, &mut blogs)?; diff --git a/src/posts.rs b/src/posts.rs index 8b7f996bf..f94d8b8e9 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -1,4 +1,3 @@ -use super::blogs::Manifest; use eyre::Context; use front_matter::FrontMatter; use regex::Regex; @@ -30,7 +29,7 @@ pub struct Post { } impl Post { - pub(crate) fn open(path: &Path, manifest: &Manifest) -> eyre::Result { + pub(crate) fn open(path: &Path) -> eyre::Result { // yeah this might blow up, but it won't let filename = { let filename = path.file_name().unwrap().to_str().unwrap().to_string(); @@ -98,11 +97,6 @@ impl Post { ), }; - // Enforce extra conditions - if manifest.requires_team && team_string.is_none() { - panic!("blog post at path `{}` lacks team metadata", path.display()); - } - // If they supplied team, it should look like `team-text ` let (team, team_url) = team_string.map_or((None, None), |s| { static R: LazyLock = From a9e53ddaeae03707342a9b4751510f223f3583df Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Fri, 28 Mar 2025 23:23:12 +0100 Subject: [PATCH 0868/1024] Replace tera filters with macros Zola doesn't support adding custom filters, but macros will work. --- src/lib.rs | 42 ------------------------------------------ templates/feed.xml | 15 ++++++++------- templates/headers.html | 4 ++-- templates/index.html | 7 ++++--- templates/layout.html | 3 ++- templates/macros.html | 35 +++++++++++++++++++++++++++++++++++ templates/post.html | 7 ++++--- 7 files changed, 55 insertions(+), 58 deletions(-) create mode 100644 templates/macros.html diff --git a/src/lib.rs b/src/lib.rs index 2ff5adb22..8a9f4b494 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,7 +9,6 @@ use rayon::prelude::*; use sass_rs::{Options, compile_file}; use serde::Serialize; use serde_json::{Value, json}; -use std::collections::HashMap; use std::fs::{self, File}; use std::io::{self, Write}; use std::path::{Path, PathBuf}; @@ -33,53 +32,12 @@ struct ReleasePost { url: String, } -fn month_name(month_num: &Value, _args: &HashMap) -> tera::Result { - let month_num = month_num - .as_u64() - .expect("month_num should be an unsigned integer"); - let name = match month_num { - 1 => "Jan.", - 2 => "Feb.", - 3 => "Mar.", - 4 => "Apr.", - 5 => "May", - 6 => "June", - 7 => "July", - 8 => "Aug.", - 9 => "Sept.", - 10 => "Oct.", - 11 => "Nov.", - 12 => "Dec.", - _ => panic!("invalid month! ({month_num})"), - }; - Ok(name.into()) -} - -// Tera and Handlebars escape HTML differently by default. -// Tera: &<>"'/ -// Handlebars: &<>"'`= -// To make the transition testable, this function escapes just like Handlebars. -fn escape_hbs(input: &Value, _args: &HashMap) -> tera::Result { - let input = input.as_str().expect("input should be a string"); - Ok(input - .replace("&", "&") - .replace("<", "<") - .replace(">", ">") - .replace("\"", """) - .replace("'", "'") - .replace("`", "`") - .replace("=", "=") - .into()) -} - impl Generator { fn new( out_directory: impl AsRef, posts_directory: impl AsRef, ) -> eyre::Result { let mut tera = Tera::new("templates/*")?; - tera.register_filter("month_name", month_name); - tera.register_filter("escape_hbs", escape_hbs); tera.autoescape_on(vec![]); // disable auto-escape for .html templates Ok(Generator { tera, diff --git a/templates/feed.xml b/templates/feed.xml index 7adb07787..1d3d8f30b 100644 --- a/templates/feed.xml +++ b/templates/feed.xml @@ -1,3 +1,4 @@ +{% import "macros.html" as macros %} {{blog.title}} @@ -14,15 +15,15 @@ {% for post in posts %} - {{post.title | escape_hbs}} - - {{post.published | escape_hbs}} - {{post.updated | escape_hbs}} - https://blog.rust-lang.org/{{blog.prefix}}{{post.url | escape_hbs}} - {{post.contents | escape_hbs}} + {{ macros::escape_hbs(input=post.title) }} + + {{ macros::escape_hbs(input=post.published) }} + {{ macros::escape_hbs(input=post.updated) }} + https://blog.rust-lang.org/{{blog.prefix}}{{ macros::escape_hbs(input=post.url) }} + {{ macros::escape_hbs(input=post.contents) }} - {{post.author | escape_hbs}} + {{ macros::escape_hbs(input=post.author) }} {%- endfor %} diff --git a/templates/headers.html b/templates/headers.html index dd5e0291c..49ca76b8d 100644 --- a/templates/headers.html +++ b/templates/headers.html @@ -3,12 +3,12 @@ - + - + diff --git a/templates/index.html b/templates/index.html index fabccbf68..7005f5a16 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1,3 +1,4 @@ +{% import "macros.html" as macros %} {% extends "layout.html" %} {% block page %}
    @@ -11,7 +12,7 @@

    See also: {%- for other in other_blogs %} - {{other.link_text | escape_hbs}} + {{ macros::escape_hbs(input=other.link_text) }} {%- endfor %}

    @@ -28,8 +29,8 @@

    Posts in {{post.year}}

    {% endif %} - {{post.month | month_name}} {{post.day}} - {{post.title | escape_hbs}} + {{ macros::month_name(num=post.month) }} {{post.day}} + {{ macros::escape_hbs(input=post.title) }} {%- endfor %} diff --git a/templates/layout.html b/templates/layout.html index 5e8edd71b..350ffe716 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -1,3 +1,4 @@ +{% import "macros.html" as macros %} {% import "headers.html" as headers %} {% import "nav.html" as nav %} {% import "footer.html" as footer %} @@ -5,7 +6,7 @@ - {{ title | escape_hbs }} + {{ macros::escape_hbs(input=title) }} {{ headers::headers(title=title, blog=blog) | indent(prefix=" ", blank=true) }} diff --git a/templates/macros.html b/templates/macros.html new file mode 100644 index 000000000..d14cffea4 --- /dev/null +++ b/templates/macros.html @@ -0,0 +1,35 @@ +{% macro month_name(num) %} + {%- if num == 1 %}Jan. + {%- elif num == 2 %}Feb. + {%- elif num == 3 %}Mar. + {%- elif num == 4 %}Apr. + {%- elif num == 5 %}May + {%- elif num == 6 %}June + {%- elif num == 7 %}July + {%- elif num == 8 %}Aug. + {%- elif num == 9 %}Sept. + {%- elif num == 10 %}Oct. + {%- elif num == 11 %}Nov. + {%- elif num == 12 %}Dec. + {%- else %}{{ throw(message="invalid month! " ~ num) }} + {%- endif %} +{%- endmacro month_name %} + +{# + The blog templates used to be written in Handlebars, but Tera and Handlebars + escape HTML differently by default: + Tera: &<>"'/ + Handlebars: &<>"'`= + To keep the output identical, this macro matches the behavior of Handlebars. +#} +{% macro escape_hbs(input) -%} + {{ input + | replace(from="&", to="&") + | replace(from="<", to="<") + | replace(from=">", to=">") + | replace(from='"', to=""") + | replace(from="'", to="'") + | replace(from="`", to="`") + | replace(from="=", to="=") + }} +{%- endmacro escape_hbs %} diff --git a/templates/post.html b/templates/post.html index b28965865..9fd5aadcf 100644 --- a/templates/post.html +++ b/templates/post.html @@ -1,13 +1,14 @@ +{% import "macros.html" as macros %} {% extends "layout.html" %} {% block page %} -
    +
    -

    {{ post.title | escape_hbs }}

    +

    {{ macros::escape_hbs(input=post.title) }}

    -
    {{post.month | month_name}} {{post.day}}, {{post.year}} · {{post.author | escape_hbs}} +
    {{ macros::month_name(num=post.month) }} {{post.day}}, {{post.year}} · {{ macros::escape_hbs(input=post.author) }} {% if post.has_team %} on behalf of {{post.team}} {% endif %}
    From 2bf63b6163ee1ab1f489df41b1c6722415c8dbc7 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 29 Mar 2025 00:00:14 +0100 Subject: [PATCH 0869/1024] Rename template variables These variable names are more inline with zola's conventions. --- src/blogs.rs | 20 ++++++++++---------- src/lib.rs | 26 +++++++++++++------------- src/posts.rs | 4 ++-- templates/feed.xml | 30 +++++++++++++++--------------- templates/headers.html | 8 ++++---- templates/index.html | 12 ++++++------ templates/layout.html | 4 ++-- templates/nav.html | 6 +++--- templates/post.html | 10 +++++----- 9 files changed, 60 insertions(+), 60 deletions(-) diff --git a/src/blogs.rs b/src/blogs.rs index abb1f332a..69990888b 100644 --- a/src/blogs.rs +++ b/src/blogs.rs @@ -37,12 +37,12 @@ pub struct Blog { maintained_by: String, index_html: String, #[serde(serialize_with = "add_postfix_slash")] - prefix: PathBuf, - posts: Vec, + path: PathBuf, + pages: Vec, } impl Blog { - fn load(prefix: PathBuf, dir: &Path) -> eyre::Result { + fn load(path: PathBuf, dir: &Path) -> eyre::Result { let manifest_content = std::fs::read_to_string(dir.join(MANIFEST_FILE))? .strip_prefix("+++\n") .unwrap() @@ -94,8 +94,8 @@ impl Blog { maintained_by: manifest.maintained_by, index_html: manifest.index_html, link_text: manifest.link_text, - prefix, - posts, + path, + pages: posts, }) } @@ -111,12 +111,12 @@ impl Blog { &self.index_title } - pub(crate) fn prefix(&self) -> &Path { - &self.prefix + pub(crate) fn path(&self) -> &Path { + &self.path } pub(crate) fn posts(&self) -> &[Post] { - &self.posts + &self.pages } } @@ -139,10 +139,10 @@ fn load_recursive(base: &Path, current: &Path, blogs: &mut Vec) -> eyre::R let file_name = path.file_name().and_then(|n| n.to_str()); if let (Some(file_name), Some(parent)) = (file_name, path.parent()) { if file_name == MANIFEST_FILE { - let prefix = parent + let path = parent .strip_prefix(base) .map_or_else(|_| PathBuf::new(), Path::to_path_buf); - blogs.push(Blog::load(prefix, parent)?); + blogs.push(Blog::load(path, parent)?); } } } diff --git a/src/lib.rs b/src/lib.rs index 8a9f4b494..862165047 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -106,7 +106,7 @@ impl Generator { } fn render_blog(&self, blog: &Blog) -> eyre::Result<()> { - std::fs::create_dir_all(self.out_directory.join(blog.prefix()))?; + std::fs::create_dir_all(self.out_directory.join(blog.path()))?; let path = self.render_index(blog)?; @@ -135,24 +135,24 @@ impl Generator { .map(|other_blog| { json!({ "link_text": other_blog.link_text(), - "url": other_blog.prefix().join("index.html"), + "url": other_blog.path().join("index.html"), }) }) .collect(); let data = json!({ "title": blog.index_title(), - "blog": blog, + "section": blog, "other_blogs": other_blogs, }); - let path = blog.prefix().join("index.html"); + let path = blog.path().join("index.html"); self.render_template(&path, "index.html", data)?; Ok(path) } fn render_post(&self, blog: &Blog, post: &Post) -> eyre::Result { let path = blog - .prefix() + .path() .join(format!("{:04}", &post.year)) .join(format!("{:02}", &post.month)) .join(format!("{:02}", &post.day)); @@ -164,8 +164,8 @@ impl Generator { let data = json!({ "title": format!("{} | {}", post.title, blog.title()), - "blog": blog, - "post": post, + "section": blog, + "page": post, }); let path = path.join(filename); @@ -176,12 +176,12 @@ impl Generator { fn render_feed(&self, blog: &Blog) -> eyre::Result<()> { let posts: Vec<_> = blog.posts().iter().take(10).collect(); let data = json!({ - "blog": blog, - "posts": posts, + "section": blog, + "pages": posts, "feed_updated": chrono::Utc::now().with_nanosecond(0).unwrap().to_rfc3339(), }); - self.render_template(blog.prefix().join("feed.xml"), "feed.xml", data)?; + self.render_template(blog.path().join("feed.xml"), "feed.xml", data)?; Ok(()) } @@ -193,8 +193,8 @@ impl Generator { .map(|post| ReleasePost { title: post.title.clone(), url: blog - .prefix() - .join(post.url.clone()) + .path() + .join(post.path.clone()) .to_string_lossy() .to_string(), }) @@ -204,7 +204,7 @@ impl Generator { feed_updated: chrono::Utc::now().with_nanosecond(0).unwrap().to_rfc3339(), }; fs::write( - self.out_directory.join(blog.prefix()).join("releases.json"), + self.out_directory.join(blog.path()).join("releases.json"), serde_json::to_string(&data)?, )?; Ok(()) diff --git a/src/posts.rs b/src/posts.rs index f94d8b8e9..7d0090c32 100644 --- a/src/posts.rs +++ b/src/posts.rs @@ -19,7 +19,7 @@ pub struct Post { pub(crate) month: u8, pub(crate) day: u8, pub(crate) contents: String, - pub(crate) url: String, + pub(crate) path: String, pub(crate) published: String, pub(crate) updated: String, pub(crate) release: bool, @@ -122,7 +122,7 @@ impl Post { month, day, contents, - url, + path: url, published, updated, release, diff --git a/templates/feed.xml b/templates/feed.xml index 1d3d8f30b..6c43ebe29 100644 --- a/templates/feed.xml +++ b/templates/feed.xml @@ -1,29 +1,29 @@ {% import "macros.html" as macros %} - {{blog.title}} - - - https://blog.rust-lang.org/{{blog.prefix}} - {{blog.title}} - {{blog.description}} + {{ section.title }} + + + https://blog.rust-lang.org/{{ section.path }} + {{ section.title }} + {{ section.description }} - Maintained by {{blog.maintained_by}}. + Maintained by {{ section.maintained_by }}. https://github.com/rust-lang/blog.rust-lang.org/ {{feed_updated}} - {% for post in posts %} + {% for page in pages %} - {{ macros::escape_hbs(input=post.title) }} - - {{ macros::escape_hbs(input=post.published) }} - {{ macros::escape_hbs(input=post.updated) }} - https://blog.rust-lang.org/{{blog.prefix}}{{ macros::escape_hbs(input=post.url) }} - {{ macros::escape_hbs(input=post.contents) }} + {{ macros::escape_hbs(input=page.title) }} + + {{ macros::escape_hbs(input=page.published) }} + {{ macros::escape_hbs(input=page.updated) }} + https://blog.rust-lang.org/{{ section.path }}{{ macros::escape_hbs(input=page.path) }} + {{ macros::escape_hbs(input=page.contents) }} - {{ macros::escape_hbs(input=post.author) }} + {{ macros::escape_hbs(input=page.author) }} {%- endfor %} diff --git a/templates/headers.html b/templates/headers.html index 49ca76b8d..7be58147d 100644 --- a/templates/headers.html +++ b/templates/headers.html @@ -1,15 +1,15 @@ -{% macro headers(title, blog) -%} +{% macro headers(title, section) -%} - + - + @@ -36,7 +36,7 @@ - + diff --git a/templates/index.html b/templates/index.html index 7005f5a16..73d6e9266 100644 --- a/templates/index.html +++ b/templates/index.html @@ -4,7 +4,7 @@
    -

    {{blog.index_html}}

    +

    {{ section.index_html }}

    @@ -23,14 +23,14 @@
    - {%- for post in blog.posts %} - {% if post.show_year %} + {%- for page in section.pages %} + {% if page.show_year %} - + {% endif %} - - + + {%- endfor %}

    Posts in {{post.year}}

    Posts in {{ page.year }}

    {{ macros::month_name(num=post.month) }} {{post.day}}{{ macros::escape_hbs(input=post.title) }}{{ macros::month_name(num=page.month) }} {{ page.day }}{{ macros::escape_hbs(input=page.title) }}
    diff --git a/templates/layout.html b/templates/layout.html index 350ffe716..2488029cc 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -9,10 +9,10 @@ {{ macros::escape_hbs(input=title) }} - {{ headers::headers(title=title, blog=blog) | indent(prefix=" ", blank=true) }} + {{ headers::headers(title=title, section=section) | indent(prefix=" ", blank=true) }} - {{ nav::nav(blog=blog) | indent(prefix=" ", blank=true) }} + {{ nav::nav(section=section) | indent(prefix=" ", blank=true) }} {%- block page %}{% endblock page %} {{ footer::footer() | indent(prefix=" ", blank=true) }} diff --git a/templates/nav.html b/templates/nav.html index 296974b7f..8759904f4 100644 --- a/templates/nav.html +++ b/templates/nav.html @@ -1,9 +1,9 @@ -{% macro nav(blog) -%} +{% macro nav(section) -%}
    From 8ac1a0fbdf569052e9ec0e920abb61bba67cb818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 2 Apr 2025 15:12:45 +0000 Subject: [PATCH 0872/1024] import generated blog post template --- content/Project-Goals-2025-March-Update.md | 1683 ++++++++++++++++++++ 1 file changed, 1683 insertions(+) create mode 100644 content/Project-Goals-2025-March-Update.md diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md new file mode 100644 index 000000000..493bea026 --- /dev/null +++ b/content/Project-Goals-2025-March-Update.md @@ -0,0 +1,1683 @@ ++++ +layout = "post" +date = 2025-04-04 +title = "March Goals Update" +author = "Rémy Rakic" +team = "Goals Team " ++++ + +The Rust project is currently working towards a [slate of 40 project goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html), with 3 of them designed as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html#flagship-goals). This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated [tracking issue on the rust-project-goals repository](https://github.com/rust-lang/rust-project-goals/issues?q=is%3Aissue%20state%3Aopen%20label%3AC-tracking-issue). + +## Flagship goals + + + + +**Why this goal?** This work continues our drive to improve support for async programming in Rust. In 2024H2 we stabilized async closures; explored the generator design space; and began work on the `dynosaur` crate, an experimental proc-macro to provide dynamic dispatch for async functions in traits. In 2025H1 [our plan](https://rust-lang.github.io/rust-project-goals/2025h1/async.html) is to deliver (1) improved support for async-fn-in-traits, completely subsuming the functionality of the [`async-trait` crate](https://crates.io/crates/async-trait); (2) progress towards sync and async generators, simplifying the creation of iterators and async data streams; (3) and improve the ergonomics of `Pin`, making lower-level async coding more approachable. These items together start to unblock the creation of the next generation of async libraries in the wider ecosystem, as progress there has been blocked on a stable solution for async traits and streams. + +**What has happened?** **Generators.** Initial implementation work has started on an `iter!` macro experiment in https://github.com/rust-lang/rust/pull/137725. Discussions have centered around whether the macro should accept blocks in addition to closures, whether thunk closures with an empty arguments list should implement `IntoIterator`, and whether blocks should evaluate to a type that is `Iterator` as well as `IntoIterator`. See the [design meeting notes](https://hackmd.io/iQDQ_J3MTzaKBhq1FTbToQ?view) for more. + +**dynosaur.** We released [dynosaur v0.2.0](https://github.com/spastorino/dynosaur/releases/tag/0.2.0) with some critical bug fixes and one breaking change. We have several more breaking changes queued up for an 0.3 release line that we also use plan to use as a 1.0 candidate. + +**Pin ergonomics.** https://github.com/rust-lang/rust/pull/135733 landed to implement `&pin const self` and `&pin mut self` sugars as part of the ongoing pin ergonomics experiment. Another PR is open with an early implementation of applying this syntax to borrowing expressions. There has been some discussion within parts of the lang team on whether to prefer this `&pin mut T` syntax or `&mut pin T`, the latter of which applies equally well to `Box` but requires an edition. + + + + + + +
    +No detailed updates available. +
    + + + +
    + + + +**Why this goal?** May 15, 2025 marks the 10-year anniversary of Rust's 1.0 release; it also marks 10 years since the [creation of the Rust subteams](https://internals.rust-lang.org/t/announcing-the-subteams/2042). At the time [there were 6 Rust teams with 24 people in total](http://web.archive.org/web/20150517235608/http://www.rust-lang.org/team.html). There are now 57 teams with 166 people. In-person All Hands meetings are an effective way to help these maintainers get to know one another with high-bandwidth discussions. This year, the Rust project will be coming together for [RustWeek 2025](https://2025.rustweek.org), a joint event organized with [RustNL](https://2025.rustweek.org/about/). Participating project teams will use the time to share knowledge, make plans, or just get to know one another better. One particular goal for the All Hands is reviewing a draft of the [Rust Vision Doc](./rust-vision-doc.md), a document that aims to take stock of where Rust is and lay out high-level goals for the next few years. + +**What has happened?** > - Invite more guests, after deciding on who else to invite. (To be discussed today in the council meeting.) +> - Figure out if we can fund the travel+hotel costs for guests too. (To be discussed today in the council meeting.) + +I've asked all attendees for suggestions for guests to invite. Based on that, I've invited roughly 20 guests so far. Only two of them needed funding for their travel, which we can cover from the same travel budget. + +> - Open the call for proposals for talks for the Project Track (on wednesday) as part of the RustWeek conference. + +The Rust Project Track at RustWeek has been published: https://rustweek.org/schedule/wednesday/ + +This track is filled with talks that are relevant to folks attending the all-hands afterwards. + + + + +
    +1 detailed update available. + + + + + + +Comment by @m-ou-se posted on 2025-04-01:
    + +
    + + + +> - Invite more guests, after deciding on who else to invite. (To be discussed today in the council meeting.) +> - Figure out if we can fund the travel+hotel costs for guests too. (To be discussed today in the council meeting.) + +I've asked all attendees for suggestions for guests to invite. Based on that, I've invited roughly 20 guests so far. Only two of them needed funding for their travel, which we can cover from the same travel budget. + + + +
    + +
    + + + +
    + + + +**Why this goal?** This goal continues our work from 2024H2 in supporting the [experimental support for Rust development in the Linux kernel][RFL.com]. Whereas in 2024H2 we were focused on stabilizing required language features, our focus in 2025H1 is stabilizing compiler flags and tooling options. We will (1) implement [RFC #3716] which lays out a design for ABI-modifying flags; (2) take the first step towards stabilizing [`build-std`](https://doc.rust-lang.org/cargo/reference/unstable.html#build-std) by [creating a stable way to rebuild core with specific compiler options](https://rust-lang.github.io/rust-project-goals/2025h1/build-std.html); (3) extending rustdoc, clippy, and the compiler with features that extract metadata for integration into other build systems (in this case, the kernel's build system). + +[RFC #3716]: https://github.com/rust-lang/rfcs/pull/3716 +[RFL.com]: https://rust-for-linux.com/ +[RFL#2]: https://github.com/Rust-for-Linux/linux/issues/2 + +**What has happened?** Most of the major items are in an iteration phase. The rustdoc changes for exporting doctests are the furthest along, with a working prototype; the RFL project has been integrating that prototype and providing feedback. Clippy stabilization now has a pre-RFC and there is active iteration towards support for build-std. + +Other areas of progress: + +* We have an [open PR](https://github.com/rust-lang/rust/pull/136926) to stabilize `-Zdwarf-version`. +* The lang and types team have been discussing the best path forward to resolve [#136702](https://github.com/rust-lang/rust/issues/136702). This is a soundness concern that was raised around certain casts, specifically, casts from a type like `*mut dyn Foo + '_` (with some lifetime) to `*mut dyn Foo + 'static` (with a static lifetime). Rust's defaulting rules mean that the latter is more commonly written with a defaulted lifetime, i.e., just `*mut dyn Foo`, which makes this an easy footgun. This kind of cast has always been dubious, as it disregards the lifetime in a rather subtle way, but when combined with arbitrary self types it permits users to disregard safety invariants making it hard to enforce soundness (see [#136702](https://github.com/rust-lang/rust/issues/136702) for details). The current proposal under discussion in [#136776](https://github.com/rust-lang/rust/issues/136776) is to make this sort of cast a hard error at least outside of an unsafe block; we evaluated the feasibility of doing a future-compatibility-warning and found it was infeasible. Crater runs suggest very limited fallout from this soundness fix but discussion continues about the best set of rules to adopt so as to balance minimizing fallout with overall language simplicity. + + + + +
    +2 detailed updates available. + + + + + + +Comment by @nikomatsakis posted on 2025-03-13:
    + +
    + + + +Update from our 2025-03-12 meeting ([full minutes](https://hackmd.io/@rust-lang-team/S181TSknyl)): + +* RFL team requests someone to look at #138368 which is needed by kernel, @davidtwco to do so. +* `-Zbinary-dep-info` may not be needed; RFL may be able to emulate it. +* `rustdoc` changes for exporting doctests are being incorporated. @imperio is working on the kernel side of the feature too. @ojeda thinks it would be a good idea to do it in a way that does not tie both projects too much, so that `rustdoc` has more flexibility to change the output later on. +* [Pre-RFC](https://hackmd.io/@flip1995/By87NXIc1g) authored for clippy stabilization. +* Active iteration on the build-std design; feedback being provided by cargo team. +* @wesleywiser sent a [PR to stabilize `-Zdwarf-version`](https://github.com/rust-lang/rust/pull/136926). +* RfL doesn't use `cfg(no_global_oom_handling)` anymore. Soon, stable/LTS kernels that support several Rust versions will not use it either. Thus upstream Rust could potentially remove the `cfg` without breaking Linux, though other users like Windows may be still using it ([#**t-libs>no_global_oom_handling removal**](https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/no_global_oom_handling.20removal/with/498600545)). +* Some discussion about best way forward for disabling orphan rule to allow experimentation with no firm conclusion. + + + + +
    + + + + +Comment by @nikomatsakis posted on 2025-03-26:
    + +
    + + + +Updates from [today's meeting](https://hackmd.io/@rust-lang-team/H1hZmpW6ke): + +### Finalizing 2024h2 goals + +* asm-goto is now stabilized! will be released in 1.87. +* asm-const has a [preliminary impl](https://github.com/rust-lang/rust/pull/138618), gcc support is needed. +* While not used in RFL, `naked_asm` is not on the list but it will be moving forward for stabilization. It suffers from the same LLVM bug as `global_asm` forgetting target feature flags. + +### ABI-modifying compiler flags +* Andrew Zhogin has opened a draft PR (https://github.com/rust-lang/rust/pull/138736) following Alice's issue about which santisers should be modifiers (https://github.com/rust-lang/rust/issues/138453) + +### Extract dependency information, configure no-std externally (-Zcrate-attr) + +* We decided we don't need to be able to extract dependency information +* `-Zcrate-attr` has an RFC from jyn: https://github.com/rust-lang/rfcs/pull/3791 + +### Rustdoc features to extract doc tests + +* No update. + +### Clippy configuration + +* [Pre-RFC](https://hackmd.io/@flip1995/By87NXIc1g) was published but hasn't (to our knowledge) made progress. Would be good to sync up on next steps with @flip1995. + +### Build-std (https://github.com/rust-lang/rust-project-goals/issues/274) + +* No update. Progress will resume next week when the contributor working on this returns from holiday. + +### `-Zsanitize-kcfi-arity` + +* Added this as a new deliverable. These kind of "emerging codegen flag" requests can be expected from time to time. Notes available [here](https://clang.llvm.org/docs/ControlFlowIntegrity.html#fsanitize-kcfi-arity) and [here](https://lore.kernel.org/lkml/20250224123703.843199044@infradead.org/). +* The PR has been reviewed and is unblocked to land. + + + + +
    + +
    + + + + +## Goals looking for help + + + + + + + + +*Help wanted:* Help test the deadlock code in the [issue list](https://github.com/rust-lang/rust/labels/WG-compiler-parallel) and try to reproduce the issue + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @SparrowLii posted on 2025-03-18:
    + +
    + + + +* **Key developments:** Several deadlock issue that remain for more than a year were resolved by #137731 +The new test suit for parallel front end is being improved +* **Blockers:** null +* **Help wanted:** Help test the deadlock code in the [issue list](https://github.com/rust-lang/rust/labels/WG-compiler-parallel) and try to reproduce the issue + + + +
    + +
    + + +
    + + + + + + + +*Help wanted:* T-compiler people to work on those above issues. + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @epage posted on 2025-03-17:
    + +
    + + + +- Key developments: @tgross35 got rust-lang/rust#135501 merged which improved which made progress on rust-lang/rust#119428, one of the two main blockers. In rust-lang/rust#119428, we've further discussed further designs and trade offs. +- Blockers: Further work on rust-lang/rust#119428 and rust-lang/rust#71043 +- Help wanted: T-compiler people to work on those above issues. + + + + + +
    + +
    + + +
    + +## Other goal updates + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @BoxyUwU posted on 2025-03-17:
    + +
    + + + +camelids PR has been merged, we now correctly (to the best of my knowledge) lower const paths under mgca. I have a PR open to ensure that we handle evaluation of paths to consts with generics or inference variables correctly, and that we do not attempt to evaluate constants before they have been checked to be well formed. I'm also currently mentoring someone to implement proper handling of normalization of inherent associated constants under mgca. + + + +
    + +
    + + +
    + +
    +
    +
    + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @davidtwco posted on 2025-03-03:
    + +
    + + + +A small update, @adamgemmell shared [revisions to the aforementioned document](https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/build-std.20goal/near/502644552), further feedback to which is being addressed. + + + +
    + +
    + + + + + +Earlier this month, we completed one checkbox of the goal: `#[doc(hidden)]` in sealed trait analysis, live in `cargo-semver-checks` v0.40. We also made significant progress on type system modeling, which is part of two more checkboxes. +- We shipped method receiver types in our schema, enabling more than a dozen new lints. +- We have a draft schema for `?Sized` bounds, and are putting the finishing touches on `'static` and "outlives" bounds. More lints will follow here. +- We also have a draft schema for the new `use<>` precise capturing syntax. + +Additionally, `cargo-semver-checks` is participating in Google Summer of Code, so this month we had the privilege of merging many contributions from new contributors who are considering applying for GSoC with us! We're looking forward to this summer, and would like to wish the candidates good luck in the application process! + + + + +
    +1 detailed update available. + + + + + + +Comment by @obi1kenobi posted on 2025-03-08:
    + +
    + + + +**Key developments:** +- Sealed trait analysis correctly handles `#[doc(hidden)]` items. This completes one checkbox of this goal! +- We shipped a series of lints detecting breakage in generic types, lifetimes, and const generics. One of them has already caught accidental breakage in the real world! + +[`cargo-semver-checks` v0.40](https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.40.0), released today, includes a variety of improvements to sealed trait analysis. They can be summarized as "smarter, faster, more correct," and will have an immediate positive impact on popular crates such as `diesel` and `zerocopy`. + +While we [already shipped a series of lints](https://github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.39.0) detecting generics-related breakage, more work is needed to complete that checkbox. This, and the "special cases like `'static` and `?Sized`", will be the focus of upcoming work. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @tmandry posted on 2025-03-25:
    + +
    + + + +Since our last update, there has been talk of dedicating some time at the Rust All Hands for interop discussion; @baumanj and @tmandry are going to work on fleshing out an agenda. @cramertj and @tmandry brainstormed with @oli-obk (who was very helpful) about ways of supporting a more ambitious "template instantiation from Rust" goal, and this may get turned into a prototype at some point. + + + +
    + +
    + + + + + +There is now an early prototype available that allows you to write `x.use`; if the type of `X` implements `UseCloned`, then this is equivalent to `x.clone()`, else it is equivalent to a move. This is not the desired end semantics in a few ways, just a step along the road. Nothing to see here (yet). + + + + +
    +1 detailed update available. + + + + + + +Comment by @nikomatsakis posted on 2025-03-17:
    + +
    + + + +Update: rust-lang/rust#134797 has landed. + +Semantics as implemented in the PR: + +* [x] Introduced a trait `UseCloned` implemented for `Rc` and `Arc` types. +* [x] `x.use` checks whether `x`'s type `X` implements the `UseCloned` trait; if so, then `x.use` is equivalent to `x.clone()`, otherwise it is a copy/move of `x`; +* [x] `use || ...x...` closures act like `move` closures but respect the `UseCloned` trait, so they will either `clone`, copy, or move `x` as appropriate. + +Next steps: + +* [ ] Modify codegen so that we guarantee that `x.use` will do a copy if `X: Copy` is true after monomorphization. Right now the desugaring to `clone` occurs before monomorphization and hence it will call the `clone` method even for those instances where `X` is a `Copy` type. +* [ ] Convert `x.use` to a move rather than a clone if this is a last-use. +* [ ] Make `x` equivalent to `x.use` but with an (allow-by-default) lint to signal that something special is happened. + +Notable decisions made and discussions: + +* Opted to name the trait that controls whether `x.use` does a clone or a move `UseCloned` rather than `Use`. This is because the trait does not control whether or not you can use something but rather controls what happens when you do. +* [Question was raised on Zulip](https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/.60ergonomic_clones.60.20does.20not.20deref/near/505889669) as to whether `x.use` should auto-deref. After thinking it over, reached the conclusion that [it should not](https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/.60ergonomic_clones.60.20does.20not.20deref/near/506157506), because `x` and `x.use` should eventually behave the same modulo lints, but that (as ever) a `&T -> T` coercion would be useful for ergonomic reasons. + + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @ZuseZ4 posted on 2025-03-25:
    + +
    + + + +I just noticed that I missed my February update, so I'll keep this update a bit more high-level, to not make it too long. + +**Key developments:** +1) All key autodiff PRs got merged. So after building `rust-lang/rust` with the autodiff feature enabled, users can now use it, without the need for any custom fork. +2) std::autodiff received the first PRs from new contributors, which have not been previously involved in rustc development! My plan is to grow a team to maintain this feature, so that's a great start. The PRs are [here](https://github.com/rust-lang/rust/pull/137713), [here](https://github.com/rust-lang/rust/pull/138231) and [here](https://github.com/rust-lang/rust/pull/138314). Over time I hope to hand over increasingly larger issues. +3) I received an offer to join the Rust compiler team, so now I can also officially review and approve PRs! For now I'll focus on reviewing PRs in the fields I'm most comfortable with, so autodiff, batching, and soon GPU offload. +4) I implemented a standalone batching feature. It was a bit larger (~2k LoC) and needed some (back then unmerged) autodiff PRs, since they both use the same underlying Enzyme infrastructure. I therefore did not push for merging it. +5) I recently implemented batching as part of the autodiff macro, for people who want to use both together. I subsequently split out a first set of code improvements and refactorings, which already [got merged](https://github.com/rust-lang/rust/pull/138627). The remaining autodiff feature [PR](https://github.com/rust-lang/rust/pull/137880) is only 600 loc, so I'm currently cleaning it up for review. +6) I spend time preparing an MCP to enable autodiff in CI (and therefore nightly). I also spend a lot of time discussing a potential MLIR backend for rustc. Please reach out if you want to be involved! + +**Help wanted: ** +We want to support autodiff in lib builds, instead of only binaries. oli-obk and I recently figured out the underlying bug, and I started with a PR in https://github.com/rust-lang/rust/pull/137570. The problem is that autodiff assumes fat-lto builds, but lib builds compile some of the library code using thin-lto, even if users specify `lto=fat` in their Cargo.toml. We'd want to move every thing to fat-lto if we enable Autodiff as a temporary solution, and later move towards embed-bc as a longer-term solution. If you have some time to help please reach out! Some of us have already looked into it a little but got side-tracked, so it's better to talk first about which code to re-use, rather than starting from scratch. + + +I also booked my RustWeek ticket, so I'm happy to talk about all types of Scientific Computing, HPC, ML, or cursed Rust(c) and LLVM internals! Please feel free to dm me if you're also going and want to meet. + + + + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @Eh2406 posted on 2025-03-14:
    + +
    + + + +Progress continues to be stalled by high priority tasks for $DAY_JOB. It continues to be unclear when the demands of work will allow me to return focus to this project. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @epage posted on 2025-03-17:
    + +
    + + + +- Key developments: + - Between tasks on #92, I've started to refresh myself on the libtest-next code base +- Blockers: +- Help wanted: + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + +We've started work on implementing `#[loop_match]` on [this branch](https://github.com/trifectatechfoundation/rust/tree/loop_match_attr). For the time being integer and enum patterns are supported. The [benchmarks](https://github.com/rust-lang/rust-project-goals/issues/258#issuecomment-2732965199), are extremely encouraging, showing large improvements over the status quo, and significant improvements versus `-Cllvm-args=-enable-dfa-jump-thread`. + +Our next steps can be found in the [todo file](https://github.com/trifectatechfoundation/rust/blob/loop_match_attr/loop_match_todo.md), and focus mostly on improving the code quality and robustness. + + + + +
    +3 detailed updates available. + + + + + + +Comment by @folkertdev posted on 2025-03-18:
    + +
    + + + +@traviscross how would we make progress on that? So far we've mostly been talking to @joshtriplett, under the assumption that a `#[loop_match]` attribute on loops combined with a `#[const_continue]` attribute on "jumps to the next iteration" will be acceptable as a language experiment. + +Our current implementation handles the following + +```rust +#![feature(loop_match)] + +enum State { + A, + B, +} + +fn main() { + let mut state = State::A; + #[loop_match] + 'outer: loop { + state = 'blk: { + match state { + State::A => + { + #[const_continue] + break 'blk State::B + } + State::B => break 'outer, + } + } + } +} +``` + +Crucially, this does not add syntax, only the attributes and internal logic in MIR lowering for statically performing the pattern match to pick the right branch to jump to. + +The main challenge is then to implement this in the compiler itself, which we've been working on (I'll post our tl;dr update shortly) + + + +
    + + + + +Comment by @folkertdev posted on 2025-03-18:
    + +
    + + + +Some benchmarks (as of march 18th) + +A benchmark of https://github.com/bjorn3/comrak/blob/loop_match_attr/autolink_email.rs, basically a big state machine that is a perfect fit for loop match + +``` +Benchmark 1: ./autolink_email + Time (mean ± σ): 1.126 s ± 0.012 s [User: 1.126 s, System: 0.000 s] + Range (min … max): 1.105 s … 1.141 s 10 runs + +Benchmark 2: ./autolink_email_llvm_dfa + Time (mean ± σ): 583.9 ms ± 6.9 ms [User: 581.8 ms, System: 2.0 ms] + Range (min … max): 575.4 ms … 591.3 ms 10 runs + +Benchmark 3: ./autolink_email_loop_match + Time (mean ± σ): 411.4 ms ± 8.8 ms [User: 410.1 ms, System: 1.3 ms] + Range (min … max): 403.2 ms … 430.4 ms 10 runs + +Summary + ./autolink_email_loop_match ran + 1.42 ± 0.03 times faster than ./autolink_email_llvm_dfa + 2.74 ± 0.07 times faster than ./autolink_email +``` + +`#[loop_match]` beats the status quo, but also beats the llvm flag by a large margin. + +--- + +A benchmark of zlib decompression with chunks of 16 bytes (this makes the impact of `loop_match` more visible) + +``` +Benchmark 1 (65 runs): target/release/examples/uncompress-baseline rs-chunked 4 + measurement mean ± σ min … max outliers delta + wall_time 77.7ms ± 3.04ms 74.6ms … 88.9ms 9 (14%) 0% + peak_rss 24.1MB ± 64.6KB 24.0MB … 24.2MB 0 ( 0%) 0% + cpu_cycles 303M ± 11.8M 293M … 348M 9 (14%) 0% + instructions 833M ± 266 833M … 833M 0 ( 0%) 0% + cache_references 3.62M ± 310K 3.19M … 4.93M 1 ( 2%) 0% + cache_misses 209K ± 34.2K 143K … 325K 1 ( 2%) 0% + branch_misses 4.09M ± 10.0K 4.08M … 4.13M 5 ( 8%) 0% +Benchmark 2 (68 runs): target/release/examples/uncompress-llvm-dfa rs-chunked 4 + measurement mean ± σ min … max outliers delta + wall_time 74.0ms ± 3.24ms 70.6ms … 85.0ms 4 ( 6%) 🚀- 4.8% ± 1.4% + peak_rss 24.1MB ± 27.1KB 24.0MB … 24.1MB 3 ( 4%) - 0.1% ± 0.1% + cpu_cycles 287M ± 12.7M 277M … 330M 4 ( 6%) 🚀- 5.4% ± 1.4% + instructions 797M ± 235 797M … 797M 0 ( 0%) 🚀- 4.3% ± 0.0% + cache_references 3.56M ± 439K 3.08M … 5.93M 2 ( 3%) - 1.8% ± 3.6% + cache_misses 144K ± 32.5K 83.7K … 249K 2 ( 3%) 🚀- 31.2% ± 5.4% + branch_misses 4.09M ± 9.62K 4.07M … 4.12M 1 ( 1%) - 0.1% ± 0.1% +Benchmark 3 (70 runs): target/release/examples/uncompress-loop-match rs-chunked 4 + measurement mean ± σ min … max outliers delta + wall_time 71.6ms ± 2.43ms 69.3ms … 78.8ms 6 ( 9%) 🚀- 7.8% ± 1.2% + peak_rss 24.1MB ± 72.8KB 23.9MB … 24.2MB 20 (29%) - 0.0% ± 0.1% + cpu_cycles 278M ± 9.59M 270M … 305M 7 (10%) 🚀- 8.5% ± 1.2% + instructions 779M ± 277 779M … 779M 0 ( 0%) 🚀- 6.6% ± 0.0% + cache_references 3.49M ± 270K 3.15M … 4.17M 4 ( 6%) 🚀- 3.8% ± 2.7% + cache_misses 142K ± 25.6K 86.0K … 197K 0 ( 0%) 🚀- 32.0% ± 4.8% + branch_misses 4.09M ± 7.83K 4.08M … 4.12M 1 ( 1%) + 0.0% ± 0.1% +Benchmark 4 (69 runs): target/release/examples/uncompress-llvm-dfa-loop-match rs-chunked 4 + measurement mean ± σ min … max outliers delta + wall_time 72.8ms ± 2.57ms 69.7ms … 80.0ms 7 (10%) 🚀- 6.3% ± 1.2% + peak_rss 24.1MB ± 35.1KB 23.9MB … 24.1MB 2 ( 3%) - 0.1% ± 0.1% + cpu_cycles 281M ± 10.1M 269M … 312M 5 ( 7%) 🚀- 7.5% ± 1.2% + instructions 778M ± 243 778M … 778M 0 ( 0%) 🚀- 6.7% ± 0.0% + cache_references 3.45M ± 277K 2.95M … 4.14M 0 ( 0%) 🚀- 4.7% ± 2.7% + cache_misses 176K ± 43.4K 106K … 301K 0 ( 0%) 🚀- 15.8% ± 6.3% + branch_misses 4.16M ± 96.0K 4.08M … 4.37M 0 ( 0%) 💩+ 1.7% ± 0.6% +``` + +The important points: `loop-match` is faster than `llfm-dfa`, and when combined performance is worse than when using `loop-match` on its own. + + + + +
    + + + + +Comment by @traviscross posted on 2025-03-18:
    + +
    + + + +Thanks for that update. Have reached out separately. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @celinval posted on 2025-03-17:
    + +
    + + + +We have been able to merge the initial support for contracts in the Rust compiler under the `contracts` unstable feature. @tautschnig has created the first PR to incorporate contracts in the standard library and uncovered a few limitations that we've been working on. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @jieyouxu posted on 2025-03-15:
    + +
    + + + +Update (2025-03-15): + +- Doing a survey pass on compiletest to make sure I have the full picture. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @yaahc posted on 2025-03-03:
    + +
    + + + +After further review I've decided to limit scope initially and not get ahead of myself so I can make sure the schemas I'm working with can support the kind of queries and charts we're going to eventually want in the final version of the unstable feature usage metric. I'm hoping that by limiting scope I can have most of the items currently outlined in this project goal done ahead of schedule so I can move onto building the proper foundations based on the proof of concept and start to design more permanent components. As such I've opted for the following: + +* minimal change to the current JSON format I need, which is including the timestamp +* Gain clarity on exactly what questions I should be answering with the unstable feature usage metrics, the desired graphs and tables, and how this influences what information I need to gather and how to construct the appropriate queries within graphana +* gathering a sample dataset from docs.rs rather than viewing it as the long term integration, since there are definitely some sampleset bias issues in that dataset from initial conversations with docs.rs + * Figure out proper hash/id to use in the metrics file names to avoid collisions with different conditional compilation variants of the same crate with different feature enabled. + +For the second item above I need to have more detailed conversations with both @rust-lang/libs-api and @rust-lang/lang + + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @nikomatsakis posted on 2025-03-17:
    + +
    + + + +Update: + +@tiif has been working on integrating const-generic effects into a-mir-formality and making good progress. + +I have begun exploring integration of the [MiniRust](https://github.com/minirust/minirust/blob/9ae11cc202d040f08bc13ec5254d3d41d5f3cc25/spec/lang/syntax.md#statements-terminators) definition of MIR. This doesn't directly work towards the goal of modeling coherence but it will be needed for const generic work to be effective. + +I am considering some simplification and cleanup work as well. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @lcnr posted on 2025-03-17:
    + +
    + + + +The two cycle handling PRs mentioned in the previous update have been merged, allowing `nalgebra` to compile with the new solver enabled. I have now started to work on opaque types in borrowck again. This is a quite involved issue and will likely take a few more weeks until it's fully implemented. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @veluca93 posted on 2025-03-17:
    + +
    + + + +Key developments: Started investigating how the proposed SIMD multiversioning options might fit in the context of the efforts for formalizing a Rust effect system + + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @blyxyas posted on 2025-03-17:
    + +
    + + + +Monthly update! + +- https://github.com/rust-lang/rust-clippy/issues/13821 has been merged. This has succesfully optimized the MSRV extraction from the source code. + +On the old MSRV extraction,`Symbol::intern` use was sky high being about 3.5 times higher than the rest of the compilation combined. Now, it's at normal levels. Note that `Symbol::intern` is a very expensive and locking function, so this is very notable. Thanks to @Alexendoo for this incredible work! + +As a general note on the month, I'd say that we've experimented a lot. + +- Starting efforts on parallelizing the lint system. +- https://github.com/rust-lang/rust-clippy/issues/14423 Started taking a deeper look into our dependence on `libLLVM.so` and heavy relocation problems. +- I took a look into heap allocation optimization, seems that we are fine. For the moment, rust-clippy#14423 is the priority. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @oli-obk posted on 2025-03-20:
    + +
    + + + +I opened an RFC (https://github.com/rust-lang/rfcs/pull/3762) and we had a lang team meeting about it. Some design exploration and bikeshedding later we have settled on using (const)instead of ~const along with some more annotations for explicitness and some fewer annotations in other places. The RFC has been updated accordingly. There is still ongoing discussions about reintroducing the "fewer annotations" for redundancy and easier processing by humans. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +2 detailed updates available. + + + + + + +Comment by @JoelMarcey posted on 2025-03-14:
    + +
    + + + +Key Developments: Working on a public announcement of Ferrous' contribution of the FLS. Goal is to have that released soon. Also working out the technical details of the contribution, particularly around how to initially integrate the FLS into the Project itself. + +Blockers: None yet. + + + +
    + + + + +Comment by @JoelMarcey posted on 2025-04-01:
    + +
    + + + +Key Developments: Public [announcement](https://rustfoundation.org/media/ferrous-systems-donates-ferrocene-language-specification-to-rust-project/) of the FLS donation to the Rust [Project](https://blog.rust-lang.org/2025/03/26/adopting-the-fls.html). + +Blockers: None + + + +
    + +
    + + + + + + + + + + +
    +2 detailed updates available. + + + + + + +Comment by @celinval posted on 2025-03-20:
    + +
    + + + +We have proposed a project idea to Google Summer of Code to implement the refactoring and infrastructure improvements needed for this project. I'm working on breaking down the work into smaller tasks so they can be implemented incrementally. + + + +
    + + + + +Comment by @celinval posted on 2025-03-20:
    + +
    + + + +I am also happy to share that @makai410 is joining us in this effort! 🥳 + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +2 detailed updates available. + + + + + + +Comment by @nikomatsakis posted on 2025-03-03:
    + +
    + + + +Update: February goal update [has been posted](https://blog.rust-lang.org/2025/03/03/Project-Goals-Feb-Update.html). We made significant revisions to the way that goal updates are prepared. If you are a goal owner, it's worth reading the directions for [how to report your status](https://rust-lang.github.io/rust-project-goals/how_to/report_status.html), especially the part about [help wanted](https://rust-lang.github.io/rust-project-goals/how_to/report_status.html#help-wanted-comments) and [summary](https://rust-lang.github.io/rust-project-goals/how_to/report_status.html#summary-comments) comments. + + + +
    + + + + +Comment by @nikomatsakis posted on 2025-03-17:
    + +
    + + + +Update: We sent out the first round of pings for the March update. The plan is to create the document on **March 25th**, so @rust-lang/goal-owners please get your updates in by then. Note that you can create a [TL;DR comment](https://rust-lang.github.io/rust-project-goals/how_to/report_status.html#summary-comments) if you want to add 2-3 bullet points that will be embedded directly into the final blog post. + +In terms of goal planning: + +* @nandsh is planning to do a detailed retrospective on the goals program in conjunction with her research at CMU. Please reach out to her on Zulip (**Nandini**) if you are interested in participating. +* We are planning to overhaul the ping process as [described in this hackmd](https://hackmd.io/@spastorino/BJjZ0gf2Je). In short, pings will come on the 2nd/3rd Monday of the month. No pings will be sent if you've posted a comment that month. The blog post will be prepared on the 3rd Friday. +* We've been discussing how to structure 2025H2 goals and are thinking of making a few changes. We'll break out three categories of goals (Flagship / Core / Stretch), with "Core" goals being those deemed most important. We'll also have a 'pre-read' before the RFC opens with team leads to look for cross-team collaborative opportunities. At least that's the *current* plan. + + + +
    + +
    + + + + + +* We drafted a [Rust Vision Doc Action Plan](https://hackmd.io/5hKhzllDQYmOiw5uogybZg?both). +* We expect to publish our announcement blog post by end of Month including a survey requesting volunteers to speak with us. We are also creating plans for interviews with company contacts, global community groups, and Rust maintainers. + + + + +
    +1 detailed update available. + + + + + + +Comment by @nikomatsakis posted on 2025-03-17:
    + +
    + + + +Update: + +I've asked @jackh726 to co-lead the team with me. Together we pulled together a [Rust Vision Doc action plan](https://hackmd.io/5hKhzllDQYmOiw5uogybZg?both). + +The plan begins by posting a blog post ([draft available here](https://hackmd.io/@rust-vision-doc/S1p_UNIoye)) announcing the effort. We are coordinating with the Foundation to create a survey which will be linked from the blog post. The [survey questions](https://hackmd.io/@rust-vision-doc/r1cqDGMn1x) ask about user's experience but also look for volunteers we can speak with. + +We are pulling together the team that will perform the interviewing. We've been in touch with UX reseearchers who will brief us on some of the basics of UX research. We're finalizing team membership now plus the set of focus areas, we expect to cover at least users/companies, Rust project maintainers, and Rust global communities. See the [Rust Vision Doc action plan](https://hackmd.io/5hKhzllDQYmOiw5uogybZg?both) for more details. + + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @davidtwco posted on 2025-03-03:
    + +
    + + + +A small update, @Jamesbarford aligned with @kobzol on a high-level architecture and will begin fleshing out the details and making some small patches to rustc-perf to gain familiarity with the codebase. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @lqd posted on 2025-03-24:
    + +
    + + + +Here are the key developments for this update. + +Amanda has continued on the placeholder removal task. In particular on the remaining issues with rewritten type tests. The in-progress work caused incorrect errors to be emitted under the rewrite scheme, and a new strategy to handle these was discussed. This has been implemented in the PR, and seems to work as hoped. So the PR should now be in a state that is ready for more in-depth review pass, and should hopefully land soon. + +Tage has started his master's thesis with a focus on the earliest parts of the borrow checking process, in order to experiment with graded borrow-checking, incrementalism, avoiding work that's not needed for loans that are not invalidated, and so on. A lot of great progress has been made on these parts already, and more are being discussed even in the later areas (live and active loans). + +I have focused on taking care of the remaining diagnostics and test failures of the location-sensitive analysis. For diagnostics in particular, the PRs mentioned in the previous updates have landed, and I've fixed a handful of NLL spans, all the remaining differences under the compare-mode, and blessed differences that were improvements. For the test failures, handling liveness differently in traversal fixed most of the remaining failures, while a couple are due to the friction with mid-points avoidance scheme. For these, we have a few different paths forward, but with different trade-offs and we'll be discussing and evaluation these in the very near future. Another two are still left to analyze in-depth to see what's going on. + +Our near future focus will be to continue down the path to correctness while also expanding test coverage that feels lacking in certain very niche areas, and that we want to improve. At the same time, we'll also work on a figuring out a better architecture to streamline the entire end-to-end process, to allow early outs, avoid work that is not needed, etc. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @lqd posted on 2025-03-26:
    + +
    + + + +This project goal was actually carried over from 2024h2, in https://github.com/rust-lang/rust-project-goals/pull/294 + + + +
    + +
    + + + + + + + + + + +
    +2 detailed updates available. + + + + + + +Comment by @davidtwco posted on 2025-03-03:
    + +
    + + + +A small update, we've opened a draft PR for the initial implementation of this - rust-lang/rust#137944. Otherwise, just continued to address feedback on the RFCs. + + + +
    + + + + +Comment by @davidtwco posted on 2025-03-18:
    + +
    + + + +- We've been resolving review feedback on the implementation of the Sized Hierarchy RFC on rust-lang/rust#137944. We're also working on reducing the performance regression in the PR, by avoiding unnecessary elaboration of sizedness supertraits and extending the existing `Sized` case in `type_op_prove_predicate` query's fast path. +- There's not been any changes to the RFC, there's minor feedback that has yet to be responded to, but it's otherwise just waiting on t-lang. +- We've been experimenting with rebasing rust-lang/rust#118917 on top of rust-lang/rust#137944 to confirm that const sizedness allows us to remove the type system exceptions that the SVE implementation previously relied on. We're happy to confirm that it does. + + + +
    + +
    + + +
    + +
    +
    +
    + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @Muscraft posted on 2025-03-31:
    + +
    + + + +While my time was limited these past few months, lots of progress was made! I was able to align `annotate-snippets` internals with `rustc`'s [`HumanEmitter`](https://github.com/rust-lang/rust/blob/5cc60728e7ee10eb2ae5f61f7d412d9805b22f0c/compiler/rustc_errors/src/emitter.rs#L629) and get the new API implemented. These changes have not been merged yet, but [they can be found here](https://github.com/Muscraft/annotate-snippets-rs/tree/feedback). As part of this work, I got `rustc` using `annotate-snippets` as its only renderer. During all of this, I started working on making `rustc` use `annotate-snippets` as its only renderer, which turned out to be a huge benefit. I was able to get a feel for the new API while addressing rendering divergences. As of the time of writing, all but ~30 tests of the roughly 18,000 UI tests are passing. + +``` +test result: FAILED. 18432 passed; 29 failed; 193 ignored; 0 measured; 0 filtered out; finished in 102.32s +``` + +Most of the failing tests are caused by a few things: +- `annotate-snippets` right aligns numbers, whereas `rustc` left aligns +- `annotate-snippets` doesn't handle multiple suggestions for the same span very well +- Problems with handling `FailureNote` +- `annotate-snippets` doesn't currently support colored labels and titles, i.e., the magenta highlight `rustc` uses +- `rustc` wants to pass titles similar to `error: internal compiler error[E0080]`, but `annotate-snippets` doesn't support that well +- differences in how `rustc` and `annotate-snippets` handle term width during tests + - When testing, `rustc` uses `DEFAULT_COLUMN_WIDTH` and does not subtract the code offset, while `annotate-snippets` does +- Slight differences in how "newline"/end of line highlighting is handled +- JSON output rendering contains color escapes + + + + +
    + +
    From e8bd717e81ca7542d136c98e5940e6e11b297395 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 2 Apr 2025 15:16:53 +0000 Subject: [PATCH 0873/1024] make author more discoverable and linkify mara's profile --- content/Project-Goals-2025-March-Update.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index 493bea026..1ea48437c 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -49,7 +49,7 @@ The Rust project is currently working towards a [slate of 40 project goals](http **What has happened?** > - Invite more guests, after deciding on who else to invite. (To be discussed today in the council meeting.) > - Figure out if we can fund the travel+hotel costs for guests too. (To be discussed today in the council meeting.) -I've asked all attendees for suggestions for guests to invite. Based on that, I've invited roughly 20 guests so far. Only two of them needed funding for their travel, which we can cover from the same travel budget. +[Mara] has asked all attendees for suggestions for guests to invite. Based on that, [Mara] has invited roughly 20 guests so far. Only two of them needed funding for their travel, which we can cover from the same travel budget. > - Open the call for proposals for talks for the Project Track (on wednesday) as part of the RustWeek conference. @@ -57,6 +57,8 @@ The Rust Project Track at RustWeek has been published: https://rustweek.org/sche This track is filled with talks that are relevant to folks attending the all-hands afterwards. +[Mara]: https://github.com/m-ou-se + From 782669a7d768ad1c40d2b9da5b96a6993c4f3817 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 2 Apr 2025 15:53:38 +0000 Subject: [PATCH 0874/1024] fix All Hands update - quote separator - make link linkified --- content/Project-Goals-2025-March-Update.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index 1ea48437c..a993a15cf 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -46,14 +46,15 @@ The Rust project is currently working towards a [slate of 40 project goals](http **Why this goal?** May 15, 2025 marks the 10-year anniversary of Rust's 1.0 release; it also marks 10 years since the [creation of the Rust subteams](https://internals.rust-lang.org/t/announcing-the-subteams/2042). At the time [there were 6 Rust teams with 24 people in total](http://web.archive.org/web/20150517235608/http://www.rust-lang.org/team.html). There are now 57 teams with 166 people. In-person All Hands meetings are an effective way to help these maintainers get to know one another with high-bandwidth discussions. This year, the Rust project will be coming together for [RustWeek 2025](https://2025.rustweek.org), a joint event organized with [RustNL](https://2025.rustweek.org/about/). Participating project teams will use the time to share knowledge, make plans, or just get to know one another better. One particular goal for the All Hands is reviewing a draft of the [Rust Vision Doc](./rust-vision-doc.md), a document that aims to take stock of where Rust is and lay out high-level goals for the next few years. -**What has happened?** > - Invite more guests, after deciding on who else to invite. (To be discussed today in the council meeting.) +**What has happened?** +> - Invite more guests, after deciding on who else to invite. (To be discussed today in the council meeting.) > - Figure out if we can fund the travel+hotel costs for guests too. (To be discussed today in the council meeting.) [Mara] has asked all attendees for suggestions for guests to invite. Based on that, [Mara] has invited roughly 20 guests so far. Only two of them needed funding for their travel, which we can cover from the same travel budget. > - Open the call for proposals for talks for the Project Track (on wednesday) as part of the RustWeek conference. -The Rust Project Track at RustWeek has been published: https://rustweek.org/schedule/wednesday/ +The Rust Project Track at RustWeek has been published: This track is filled with talks that are relevant to folks attending the all-hands afterwards. From 0b26f531e21469c3d20e1d68860f440add3adc2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 2 Apr 2025 16:04:13 +0000 Subject: [PATCH 0875/1024] fix linkification in async flagship goal --- content/Project-Goals-2025-March-Update.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index a993a15cf..01d194d82 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -19,11 +19,11 @@ The Rust project is currently working towards a [slate of 40 project goals](http **Why this goal?** This work continues our drive to improve support for async programming in Rust. In 2024H2 we stabilized async closures; explored the generator design space; and began work on the `dynosaur` crate, an experimental proc-macro to provide dynamic dispatch for async functions in traits. In 2025H1 [our plan](https://rust-lang.github.io/rust-project-goals/2025h1/async.html) is to deliver (1) improved support for async-fn-in-traits, completely subsuming the functionality of the [`async-trait` crate](https://crates.io/crates/async-trait); (2) progress towards sync and async generators, simplifying the creation of iterators and async data streams; (3) and improve the ergonomics of `Pin`, making lower-level async coding more approachable. These items together start to unblock the creation of the next generation of async libraries in the wider ecosystem, as progress there has been blocked on a stable solution for async traits and streams. -**What has happened?** **Generators.** Initial implementation work has started on an `iter!` macro experiment in https://github.com/rust-lang/rust/pull/137725. Discussions have centered around whether the macro should accept blocks in addition to closures, whether thunk closures with an empty arguments list should implement `IntoIterator`, and whether blocks should evaluate to a type that is `Iterator` as well as `IntoIterator`. See the [design meeting notes](https://hackmd.io/iQDQ_J3MTzaKBhq1FTbToQ?view) for more. +**What has happened?** **Generators.** Initial implementation work has started on an `iter!` macro experiment in . Discussions have centered around whether the macro should accept blocks in addition to closures, whether thunk closures with an empty arguments list should implement `IntoIterator`, and whether blocks should evaluate to a type that is `Iterator` as well as `IntoIterator`. See the [design meeting notes](https://hackmd.io/iQDQ_J3MTzaKBhq1FTbToQ?view) for more. **dynosaur.** We released [dynosaur v0.2.0](https://github.com/spastorino/dynosaur/releases/tag/0.2.0) with some critical bug fixes and one breaking change. We have several more breaking changes queued up for an 0.3 release line that we also use plan to use as a 1.0 candidate. -**Pin ergonomics.** https://github.com/rust-lang/rust/pull/135733 landed to implement `&pin const self` and `&pin mut self` sugars as part of the ongoing pin ergonomics experiment. Another PR is open with an early implementation of applying this syntax to borrowing expressions. There has been some discussion within parts of the lang team on whether to prefer this `&pin mut T` syntax or `&mut pin T`, the latter of which applies equally well to `Box` but requires an edition. +**Pin ergonomics.** landed to implement `&pin const self` and `&pin mut self` sugars as part of the ongoing pin ergonomics experiment. Another PR is open with an early implementation of applying this syntax to borrowing expressions. There has been some discussion within parts of the lang team on whether to prefer this `&pin mut T` syntax or `&mut pin T`, the latter of which applies equally well to `Box` but requires an edition. From 5bc47363008b0f6832a7e87eff71aade727d7fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 2 Apr 2025 16:04:43 +0000 Subject: [PATCH 0876/1024] fix linkification in RFL flagship goal --- content/Project-Goals-2025-March-Update.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index 01d194d82..fbd3a8d33 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -130,15 +130,19 @@ Other areas of progress: Update from our 2025-03-12 meeting ([full minutes](https://hackmd.io/@rust-lang-team/S181TSknyl)): -* RFL team requests someone to look at #138368 which is needed by kernel, @davidtwco to do so. +* RFL team requests someone to look at [#138368](https://github.com/rust-lang/rust/pull/138368) which is needed by kernel, [@davidtwco] to do so. * `-Zbinary-dep-info` may not be needed; RFL may be able to emulate it. -* `rustdoc` changes for exporting doctests are being incorporated. @imperio is working on the kernel side of the feature too. @ojeda thinks it would be a good idea to do it in a way that does not tie both projects too much, so that `rustdoc` has more flexibility to change the output later on. +* `rustdoc` changes for exporting doctests are being incorporated. [@GuillaumeGomez] is working on the kernel side of the feature too. [@ojeda] thinks it would be a good idea to do it in a way that does not tie both projects too much, so that `rustdoc` has more flexibility to change the output later on. * [Pre-RFC](https://hackmd.io/@flip1995/By87NXIc1g) authored for clippy stabilization. * Active iteration on the build-std design; feedback being provided by cargo team. -* @wesleywiser sent a [PR to stabilize `-Zdwarf-version`](https://github.com/rust-lang/rust/pull/136926). +* [@wesleywiser] sent a [PR to stabilize `-Zdwarf-version`](https://github.com/rust-lang/rust/pull/136926). * RfL doesn't use `cfg(no_global_oom_handling)` anymore. Soon, stable/LTS kernels that support several Rust versions will not use it either. Thus upstream Rust could potentially remove the `cfg` without breaking Linux, though other users like Windows may be still using it ([#**t-libs>no_global_oom_handling removal**](https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/no_global_oom_handling.20removal/with/498600545)). * Some discussion about best way forward for disabling orphan rule to allow experimentation with no firm conclusion. +[@davidtwco]: https://github.com/davidtwco +[@GuillaumeGomez]: https://github.com/GuillaumeGomez +[@ojeda]: https://github.com/ojeda +[@wesleywiser]: https://github.com/wesleywiser @@ -162,12 +166,12 @@ Updates from [today's meeting](https://hackmd.io/@rust-lang-team/H1hZmpW6ke): * While not used in RFL, `naked_asm` is not on the list but it will be moving forward for stabilization. It suffers from the same LLVM bug as `global_asm` forgetting target feature flags. ### ABI-modifying compiler flags -* Andrew Zhogin has opened a draft PR (https://github.com/rust-lang/rust/pull/138736) following Alice's issue about which santisers should be modifiers (https://github.com/rust-lang/rust/issues/138453) +* Andrew Zhogin has opened a draft PR () following Alice's issue about which santisers should be modifiers () ### Extract dependency information, configure no-std externally (-Zcrate-attr) * We decided we don't need to be able to extract dependency information -* `-Zcrate-attr` has an RFC from jyn: https://github.com/rust-lang/rfcs/pull/3791 +* `-Zcrate-attr` has an RFC from jyn: ### Rustdoc features to extract doc tests @@ -175,9 +179,9 @@ Updates from [today's meeting](https://hackmd.io/@rust-lang-team/H1hZmpW6ke): ### Clippy configuration -* [Pre-RFC](https://hackmd.io/@flip1995/By87NXIc1g) was published but hasn't (to our knowledge) made progress. Would be good to sync up on next steps with @flip1995. +* [Pre-RFC](https://hackmd.io/@flip1995/By87NXIc1g) was published but hasn't (to our knowledge) made progress. Would be good to sync up on next steps with [@flip1995](https://github.com/flip1995). -### Build-std (https://github.com/rust-lang/rust-project-goals/issues/274) +### [Build-std](https://github.com/rust-lang/rust-project-goals/issues/274) * No update. Progress will resume next week when the contributor working on this returns from holiday. From 7e2fb4f7f77656f32335dde75c0869a00cdbdf66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 2 Apr 2025 16:04:58 +0000 Subject: [PATCH 0877/1024] fix Goals that need help layout --- content/Project-Goals-2025-March-Update.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index fbd3a8d33..2b155d26e 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -197,8 +197,7 @@ Updates from [today's meeting](https://hackmd.io/@rust-lang-team/H1hZmpW6ke):
    - - +
    ## Goals looking for help From 06a54e75ece6b7e36f2ae4152ac96df7aa4e5fee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 2 Apr 2025 16:11:20 +0000 Subject: [PATCH 0878/1024] expand the Help Needed section --- content/Project-Goals-2025-March-Update.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index 2b155d26e..4011dc31a 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -212,7 +212,7 @@ Updates from [today's meeting](https://hackmd.io/@rust-lang-team/H1hZmpW6ke): -*Help wanted:* Help test the deadlock code in the [issue list](https://github.com/rust-lang/rust/labels/WG-compiler-parallel) and try to reproduce the issue +*Help wanted:* Help test the deadlock code in the [issue list](https://github.com/rust-lang/rust/labels/WG-compiler-parallel) and try to reproduce the issues. If you'd like to help, please post in [this goal's dedicated zulip topic](https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Promoting.20Parallel.20Front.20End.20.28goals.23121.29/with/506292058). @@ -257,7 +257,7 @@ The new test suit for parallel front end is being improved -*Help wanted:* T-compiler people to work on those above issues. +*Help wanted:* T-compiler people to work on the blocking issues [#119428](https://github.com/rust-lang/rust/issues/119428) and [#71043](https://github.com/rust-lang/rust/issues/71043). If you'd like to help, please post in [this goal's dedicated zulip topic](https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Stabilize.20public.2Fprivate.20dependencies.20.28goals.23272.29). From cb84f3384f189a8a14199e6adca1a6d708e52847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 2 Apr 2025 16:13:19 +0000 Subject: [PATCH 0879/1024] fix typo in update --- content/Project-Goals-2025-March-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index 4011dc31a..566734577 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -1142,7 +1142,7 @@ Key developments: Started investigating how the proposed SIMD multiversioning op Monthly update! -- https://github.com/rust-lang/rust-clippy/issues/13821 has been merged. This has succesfully optimized the MSRV extraction from the source code. +- https://github.com/rust-lang/rust-clippy/issues/13821 has been merged. This has successfully optimized the MSRV extraction from the source code. On the old MSRV extraction,`Symbol::intern` use was sky high being about 3.5 times higher than the rest of the compilation combined. Now, it's at normal levels. Note that `Symbol::intern` is a very expensive and locking function, so this is very notable. Thanks to @Alexendoo for this incredible work! From f77fd1c99842464fd513337c85759a03fa98ea8e Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Wed, 2 Apr 2025 20:28:08 +0000 Subject: [PATCH 0880/1024] Mention AdaCore regarding FLS and strike "donation" There was some relationship between Ferrous Systems and AdaCore when they worked together to create the FLS. Apparently that relationship ceased in July 2023, according to the Foundation's blog post, but I don't think we need to go into those details. Still, it seems worth mentioning AdaCore here, regarding the creation, so let's do that. In discussion with various people, there's some preference to not use the word "donation". It's awkward, then, that word is part of the headline on the Foundation's post which has now been widely quoted and reported on, so it seems too late to change that. But the Foundation has struck that word from the remainder of their post. In our case, we weren't leaning on the word heavily anyway. Looking at it from a Project perspective, our primary focus is that we're "adopting" the FLS, and that's still right of course. We'd used the word "donation" in a more limited way to contextualize what we're thanking Ferrous Systems for doing. But looking at the text now, we can without any real loss surgically strike that word and replace it with... nothing. So let's do that. --- content/adopting-the-fls.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/adopting-the-fls.md b/content/adopting-the-fls.md index 51f539007..7127d2cb9 100644 --- a/content/adopting-the-fls.md +++ b/content/adopting-the-fls.md @@ -8,17 +8,17 @@ team = "the Spec Team Date: Thu, 3 Apr 2025 01:58:38 +0200 Subject: [PATCH 0881/1024] Restore 2020-05-21-governance-wg post This post was originally submitted in the following PR: https://github.com/rust-lang/blog.rust-lang.org/pull/606 Since it didn't have a .md extension from the beginning, it was never actually posted. --- ...0-05-21-governance-wg => governance-wg@2.md} | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) rename content/inside-rust/{2020-05-21-governance-wg => governance-wg@2.md} (83%) diff --git a/content/inside-rust/2020-05-21-governance-wg b/content/inside-rust/governance-wg@2.md similarity index 83% rename from content/inside-rust/2020-05-21-governance-wg rename to content/inside-rust/governance-wg@2.md index a18711b87..d4424570c 100644 --- a/content/inside-rust/2020-05-21-governance-wg +++ b/content/inside-rust/governance-wg@2.md @@ -1,9 +1,10 @@ ---- -layout: post -title: "Governance Working Group Update: Meeting 21 May 2020" -author: Val Grimm -team: The Governance WG ---- ++++ +layout = "post" +date = 2020-05-21 +title = "Governance Working Group Update: Meeting 21 May 2020" +author = "Val Grimm" +team = "The Governance WG " ++++ Hello everyone! @@ -25,7 +26,7 @@ on the [wg-governance](https://github.com/rust-lang/wg-governance) repository, b ## Next meeting * Our next meeting will be 4 June 2020 via [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/223182-wg-governance) 18-19 CET / 1pm-2pm EST / 10-11am PST. -* In 2020 the agenda is always at https://hackmd.io/ATj1rZJaRimaIfIWfAOYfQ +* In 2020 the agenda is always at * Current agenda is: 1. Domain Working Group changes 2. Pre-RFC RFC @@ -33,5 +34,3 @@ on the [wg-governance](https://github.com/rust-lang/wg-governance) repository, b [wg-governance]: https://github.com/rust-lang/wg-governance/ [detailed minutes]: https://github.com/rust-lang/wg-governance/blob/master/minutes/2020.03.12.md [Zulip thread]: https://rust-lang.zulipchat.com/#narrow/stream/223182-wg-governance/topic/meeting.202020-03-12 - - From dc2c6d085c796ecde4aff797af895eb586427e10 Mon Sep 17 00:00:00 2001 From: Boxy Date: Thu, 3 Apr 2025 10:44:25 +0100 Subject: [PATCH 0882/1024] Announce rust 1.86.0 (#1534) --- posts/Rust-1.86.0.md | 174 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 posts/Rust-1.86.0.md diff --git a/posts/Rust-1.86.0.md b/posts/Rust-1.86.0.md new file mode 100644 index 000000000..c49c45db8 --- /dev/null +++ b/posts/Rust-1.86.0.md @@ -0,0 +1,174 @@ ++++ +layout = "post" +date = 2025-04-03 +title = "Announcing Rust 1.86.0" +author = "The Rust Release Team" +release = true ++++ + +The Rust team is happy to announce a new version of Rust, 1.86.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via `rustup`, you can get 1.86.0 with: + +```console +$ rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.86.0](https://doc.rust-lang.org/stable/releases.html#version-1860-2025-04-03). + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.86.0 stable + +### Trait upcasting + +This release includes a long awaited feature — the ability to upcast trait objects. +If a trait has a [supertrait](https://doc.rust-lang.org/reference/items/traits.html#supertraits) you can coerce a reference to said trait object to a reference to a trait object of the supertrait: + +```rust +trait Trait: Supertrait {} +trait Supertrait {} + +fn upcast(x: &dyn Trait) -> &dyn Supertrait { + x +} +``` + +The same would work with any other kind of (smart-)pointer, like `Arc -> Arc` or `*const dyn Trait -> *const dyn Supertrait`. + +Previously this would have required a workaround in the form of an `upcast` method in the `Trait` itself, for example `fn as_supertrait(&self) -> &dyn Supertrait`, and this would work only for one kind of reference/pointer. Such workarounds are not necessary anymore. + +Note that this means that raw pointers to trait objects carry a non-trivial invariant: "leaking" a raw pointer to a trait object with an invalid vtable into safe code may lead to undefined behavior. It is not decided yet whether creating such a raw pointer temporarily in well-controlled circumstances causes immediate undefined behavior, so code should refrain from creating such pointers under any conditions (and Miri enforces that). + +Trait upcasting may be especially useful with the `Any` trait, as it allows upcasting your trait object to `dyn Any` to call `Any`'s downcast methods, without adding any trait methods or using external crates. + +```rust +use std::any::Any; + +trait MyAny: Any {} + +impl dyn MyAny { + fn downcast_ref(&self) -> Option<&T> { + (self as &dyn Any).downcast_ref() + } +} +``` + +You can [learn more about trait upcasting in the Rust reference](https://doc.rust-lang.org/reference/type-coercions.html#unsized-coercions). + +### `HashMap`s and slices now support indexing multiple elements mutably + +The borrow checker prevents simultaneous usage of references obtained from repeated calls to `get_mut` methods. To safely support this pattern the standard library now provides a `get_disjoint_mut` helper on slices and `HashMap` to retrieve mutable references to multiple elements simultaneously. See the following example taken from the API docs of [`slice::get_disjoint_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_mut): +```rust +let v = &mut [1, 2, 3]; +if let Ok([a, b]) = v.get_disjoint_mut([0, 2]) { + *a = 413; + *b = 612; +} +assert_eq!(v, &[413, 2, 612]); + +if let Ok([a, b]) = v.get_disjoint_mut([0..1, 1..3]) { + a[0] = 8; + b[0] = 88; + b[1] = 888; +} +assert_eq!(v, &[8, 88, 888]); + +if let Ok([a, b]) = v.get_disjoint_mut([1..=2, 0..=0]) { + a[0] = 11; + a[1] = 111; + b[0] = 1; +} +assert_eq!(v, &[1, 11, 111]); +``` + +### Allow safe functions to be marked with the `#[target_feature]` attribute. + +Previously only `unsafe` functions could be marked with the `#[target_feature]` attribute as it is unsound to call such functions without the target feature being enabled. This release stabilizes the `target_feature_11` feature, allowing *safe* functions to be marked with the `#[target_feature]` attribute. + +Safe functions marked with the target feature attribute can only be safely called from other functions marked with the target feature attribute. However, they cannot be passed to functions accepting generics bounded by the `Fn*` traits and only support being coerced to function pointers inside of functions marked with the `target_feature` attribute. + +Inside of functions not marked with the target feature attribute they can be called inside of an `unsafe` block, however it is the callers responsibility to ensure that the target feature is available. + +```rust +#[target_feature(enable = "avx2")] +fn requires_avx2() { + // ... snip +} + +#[target_feature(enable = "avx2")] +fn safe_callsite() { + // Calling `requires_avx2` here is safe as `bar` + // requires the `avx2` feature itself. + requires_avx2(); +} + +fn unsafe_callsite() { + // Calling `requires_avx2` here is unsafe, as we must + // ensure that the `avx2` feature is available first. + if is_x86_feature_detected!("avx2") { + unsafe { requires_avx2() }; + } +} +``` + +You can check the [`target_features_11`](https://github.com/rust-lang/rfcs/blob/master/text/2396-target-feature-1.1.md) RFC for more information. + +### Debug assertions that pointers are non-null when required for soundness + +The compiler will now insert debug assertions that a pointer is not null upon non-zero-sized reads and writes, and also when the pointer is reborrowed into a reference. For example, the following code will now produce a non-unwinding panic when debug assertions are enabled: +```rust +let _x = *std::ptr::null::(); +let _x = &*std::ptr::null::(); +``` +Trivial examples like this have produced a warning since Rust 1.53.0, the new runtime check will detect these scenarios regardless of complexity. + +These assertions only take place when debug assertions are enabled which means that they **must not** be relied upon for soundness. This also means that dependencies which have been compiled with debug assertions disabled (e.g. the standard library) will not trigger the assertions even when called by code with debug assertions enabled. + +### Make `missing_abi` lint warn by default + +Omitting the ABI in extern blocks and functions (e.g. `extern {}` and `extern fn`) will now result in a warning (via the `missing_abi` lint). Omitting the ABI after the `extern` keyword has always implicitly resulted in the `"C"` ABI. It is now recommended to explicitly specify the `"C"` ABI (e.g. `extern "C" {}` and `extern "C" fn`). + +You can check the [Explicit Extern ABIs RFC](https://rust-lang.github.io/rfcs/3722-explicit-extern-abis.html) for more information. + +### Target deprecation warning for 1.87.0 + +The tier-2 target `i586-pc-windows-msvc` will be removed in the next version of Rust, 1.87.0. Its difference to the much more popular `i686-pc-windows-msvc` is that it does not require SSE2 instruction support, but Windows 10, the minimum required OS version of all `windows` targets (except the `win7` targets), requires SSE2 instructions itself. + +All users currently targeting `i586-pc-windows-msvc` should migrate to `i686-pc-windows-msvc` before the `1.87.0` release. + +You can check the [Major Change Proposal](https://github.com/rust-lang/compiler-team/issues/840) for more information. + +### Stabilized APIs + +- [`{float}::next_down`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_down) +- [`{float}::next_up`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_up) +- [`<[_]>::get_disjoint_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_mut) +- [`<[_]>::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_unchecked_mut) +- [`slice::GetDisjointMutError`](https://doc.rust-lang.org/stable/std/slice/enum.GetDisjointMutError.html) +- [`HashMap::get_disjoint_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_mut) +- [`HashMap::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_unchecked_mut) +- [`NonZero::count_ones`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.count_ones) +- [`Vec::pop_if`](https://doc.rust-lang.org/std/vec/struct.Vec.html#method.pop_if) +- [`sync::Once::wait`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait) +- [`sync::Once::wait_force`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait_force) +- [`sync::OnceLock::wait`](https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html#method.wait) + +These APIs are now stable in const contexts: + +- [`hint::black_box`](https://doc.rust-lang.org/stable/std/hint/fn.black_box.html) +- [`io::Cursor::get_mut`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.get_mut) +- [`io::Cursor::set_position`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.set_position) +- [`str::is_char_boundary`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.is_char_boundary) +- [`str::split_at`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at) +- [`str::split_at_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_checked) +- [`str::split_at_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut) +- [`str::split_at_mut_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut_checked) + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.86.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-186-2025-04-03), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-186). + +## Contributors to 1.86.0 + +Many people came together to create Rust 1.86.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.86.0/) \ No newline at end of file From 4b354b5e40dd0db636bd44e5de4c3284066e8716 Mon Sep 17 00:00:00 2001 From: Boxy Date: Thu, 3 Apr 2025 10:55:54 +0100 Subject: [PATCH 0883/1024] the directory got moved --- {posts => content}/Rust-1.86.0.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {posts => content}/Rust-1.86.0.md (100%) diff --git a/posts/Rust-1.86.0.md b/content/Rust-1.86.0.md similarity index 100% rename from posts/Rust-1.86.0.md rename to content/Rust-1.86.0.md From f9a34df8455facb9aa99f169f3c896bb59e2ae76 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 11:59:53 +0200 Subject: [PATCH 0884/1024] Update dependency rust to v1.86.0 (#1551) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- .github/workflows/snapshot_tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4091df90d..072693e9e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.85.1 + RUST_VERSION: 1.86.0 jobs: lint: diff --git a/.github/workflows/snapshot_tests.yml b/.github/workflows/snapshot_tests.yml index 1b8ee3a88..139597967 100644 --- a/.github/workflows/snapshot_tests.yml +++ b/.github/workflows/snapshot_tests.yml @@ -4,7 +4,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.85.1 + RUST_VERSION: 1.86.0 jobs: snapshot-tests: From cf30bb5c6932eb366142597f35a14261b1761694 Mon Sep 17 00:00:00 2001 From: Slanterns Date: Thu, 3 Apr 2025 21:09:20 +0800 Subject: [PATCH 0885/1024] typo in Rust-1.86.0.md (#1552) --- content/Rust-1.86.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/Rust-1.86.0.md b/content/Rust-1.86.0.md index c49c45db8..d573d4211 100644 --- a/content/Rust-1.86.0.md +++ b/content/Rust-1.86.0.md @@ -98,7 +98,7 @@ fn requires_avx2() { #[target_feature(enable = "avx2")] fn safe_callsite() { - // Calling `requires_avx2` here is safe as `bar` + // Calling `requires_avx2` here is safe as `safe_callsite` // requires the `avx2` feature itself. requires_avx2(); } @@ -171,4 +171,4 @@ Check out everything that changed in [Rust](https://github.com/rust-lang/rust/re ## Contributors to 1.86.0 -Many people came together to create Rust 1.86.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.86.0/) \ No newline at end of file +Many people came together to create Rust 1.86.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.86.0/) From 445b6a265e91207a6a5358a0cec28fc368583417 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Thu, 27 Mar 2025 11:11:16 -0400 Subject: [PATCH 0886/1024] Project director update on Feb's board meeting --- .../inside-rust/project-director-update@3.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 content/inside-rust/project-director-update@3.md diff --git a/content/inside-rust/project-director-update@3.md b/content/inside-rust/project-director-update@3.md new file mode 100644 index 000000000..787fbefd9 --- /dev/null +++ b/content/inside-rust/project-director-update@3.md @@ -0,0 +1,37 @@ ++++ +layout = "post" +date = 2025-03-27 +title = "March 2025 Project Director Update" +author = "Carol Nichols" +team = "Rust Foundation Project Directors " ++++ + +This is the fourth blog post in [the series started December +2024](https://blog.rust-lang.org/inside-rust/2024/12/17/project-director-update.html) where us Rust +Foundation Project Directors will be sharing the highlights from last month’s Rust Foundation Board +meeting. You’ll find the [full February 2025 +minutes](https://rustfoundation.org/resource/february-2025-board-meeting/) on the Rust Foundation’s +site! + +Highlights from the February meeting include: + +* It was Eli Gild’s first meeting; he’s the new Member Director for Google replacing Lars Bergstrom. +* Paul Lenz, the Foundation’s Director of Finance & Funding, announced he’s planning to retire at + the end of September. The Foundation is considering creating a slightly different role on the + senior management team and will be getting feedback from project leadership before starting the + recruitment process. +* The Foundation presented the 2025 budget, which was a “business as usual” budget without any + large changes from previous years. The board approved the budget. +* Gracie announced the Foundation is planning on increasing its social media presence on Mastodon + and Bluesky in the near future. +* RustConf 2025’s location and dates were announced, and the RustConf team is looking at non-US + venues for RustConf 2026. +* Project Director Ryan Levick was elected Vice Chair of the Board. Congrats, Ryan! + +As always, if you have any comments, questions, or suggestions, please +email all of the project directors via project-directors at rust-lang.org or join us in [the +#foundation channel on the Rust Zulip][foundation-zulip]. + +[foundation-zulip]: https://rust-lang.zulipchat.com/#narrow/channel/335408-foundation + + From 8107ff3bb287e256a99f17fcdab4ee549caf4ad2 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Thu, 3 Apr 2025 20:34:17 -0400 Subject: [PATCH 0887/1024] Update date to today --- content/inside-rust/project-director-update@3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/inside-rust/project-director-update@3.md b/content/inside-rust/project-director-update@3.md index 787fbefd9..7a00effcc 100644 --- a/content/inside-rust/project-director-update@3.md +++ b/content/inside-rust/project-director-update@3.md @@ -1,6 +1,6 @@ +++ layout = "post" -date = 2025-03-27 +date = 2025-04-03 title = "March 2025 Project Director Update" author = "Carol Nichols" team = "Rust Foundation Project Directors " From 13cefbfda1889ea398f020eccdb93f00e3986976 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Fri, 4 Apr 2025 07:21:54 +0200 Subject: [PATCH 0888/1024] Fix development build without server (#1554) This is basically a revert of f057363ba326db09d8560b54464a005256fc813f --- content/_index.md | 2 +- src/blogs.rs | 4 ++++ src/lib.rs | 2 ++ templates/footer.html | 18 +++++++++--------- templates/headers.html | 26 +++++++++++++------------- templates/layout.html | 6 +++--- templates/nav.html | 8 ++++---- 7 files changed, 36 insertions(+), 30 deletions(-) diff --git a/content/_index.md b/content/_index.md index f166b082e..2ab9e38d7 100644 --- a/content/_index.md +++ b/content/_index.md @@ -7,5 +7,5 @@ This is the main Rust blog. \ Rust teams \ use this blog to announce major developments in the world of Rust.""" maintained_by = "the Rust Teams" -see_also_html = """the "Inside Rust" blog""" +see_also_html = """the "Inside Rust" blog""" +++ diff --git a/src/blogs.rs b/src/blogs.rs index afaef2eb8..26d7ef4e3 100644 --- a/src/blogs.rs +++ b/src/blogs.rs @@ -110,6 +110,10 @@ impl Blog { &self.path } + pub(crate) fn path_back_to_root(&self) -> PathBuf { + self.path.components().map(|_| Path::new("../")).collect() + } + pub(crate) fn posts(&self) -> &[Post] { &self.pages } diff --git a/src/lib.rs b/src/lib.rs index 2db10f173..f591108f5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -131,6 +131,7 @@ impl Generator { let data = json!({ "title": blog.index_title(), "section": blog, + "root": blog.path_back_to_root(), }); let path = blog.path().join("index.html"); self.render_template(&path, "index.html", data)?; @@ -153,6 +154,7 @@ impl Generator { "title": format!("{} | {}", post.title, blog.title()), "section": blog, "page": post, + "root": blog.path_back_to_root().join("../../../"), }); let path = path.join(filename); diff --git a/templates/footer.html b/templates/footer.html index af5ff7c20..5e6e8145a 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -1,4 +1,4 @@ -{% macro footer() -%} +{% macro footer(root) -%} - + {% endmacro %} diff --git a/templates/headers.html b/templates/headers.html index 7be58147d..80194c04c 100644 --- a/templates/headers.html +++ b/templates/headers.html @@ -1,4 +1,4 @@ -{% macro headers(title, section) -%} +{% macro headers(title, section, root) -%} @@ -15,23 +15,23 @@ - - - - + + + + - - - - - - + + + + + + @@ -39,5 +39,5 @@ - + {% endmacro %} diff --git a/templates/layout.html b/templates/layout.html index 2488029cc..dfaa0a464 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -9,11 +9,11 @@ {{ macros::escape_hbs(input=title) }} - {{ headers::headers(title=title, section=section) | indent(prefix=" ", blank=true) }} + {{ headers::headers(title=title, section=section, root=root) | indent(prefix=" ", blank=true) }} - {{ nav::nav(section=section) | indent(prefix=" ", blank=true) }} + {{ nav::nav(section=section, root=root) | indent(prefix=" ", blank=true) }} {%- block page %}{% endblock page %} - {{ footer::footer() | indent(prefix=" ", blank=true) }} + {{ footer::footer(root=root) | indent(prefix=" ", blank=true) }} diff --git a/templates/nav.html b/templates/nav.html index 8759904f4..e8dfd9ea1 100644 --- a/templates/nav.html +++ b/templates/nav.html @@ -1,8 +1,8 @@ -{% macro nav(section) -%} +{% macro nav(section, root) -%} {% endmacro %} From 0e2fed98d128bde61b037c7a2b9e2cddbe516aca Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Fri, 4 Apr 2025 04:10:14 -0500 Subject: [PATCH 0889/1024] Merge pull request #1531 from alexcrichton/wasm-c-abi-changes C ABI Changes for `wasm32-unknown-unknown` --- ...-abi-changes-for-wasm32-unknown-unknown.md | 273 ++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 content/c-abi-changes-for-wasm32-unknown-unknown.md diff --git a/content/c-abi-changes-for-wasm32-unknown-unknown.md b/content/c-abi-changes-for-wasm32-unknown-unknown.md new file mode 100644 index 000000000..926fbb1ca --- /dev/null +++ b/content/c-abi-changes-for-wasm32-unknown-unknown.md @@ -0,0 +1,273 @@ ++++ +layout = "post" +date = 2025-04-04 +title = "C ABI Changes for `wasm32-unknown-unknown`" +author = "Alex Crichton" ++++ + +The `extern "C"` ABI for the `wasm32-unknown-unknown` target has been using a +non-standard definition since the inception of the target in that it does not +implement the [official C ABI of WebAssembly][tool-conventions] and it +additionally [leaks internal compiler implementation details][leak-details] of +both the Rust compiler and LLVM. This will change in a future version of the +Rust compiler and the [official C ABI][tool-conventions] will be used instead. + +This post details some history behind this change and the rationale for why it's +being announced here, but you can skip straight to ["Am I +affected?"](#am-i-affected) as well. + +[tool-conventions]: https://github.com/WebAssembly/tool-conventions/blob/main/BasicCABI.md +[leak-details]: https://github.com/rust-lang/rust/issues/115666 + +## History of `wasm32-unknown-unknown`'s C ABI + +When the `wasm32-unknown-unknown` target [was originally added][inception] in +2017, not much care was given to the exact definition of the `extern "C"` ABI at +the time. In 2018 [an ABI definition was added just for wasm][orig-abi] and the +target is still using this definition [to this day][current-abi]. This +definitions has become more and more problematic over time and while some issues +have been fixed, the root cause still remains. + +Notably this ABI definition does not match the [tool-conventions] definition of +the C API, which is the current standard for how WebAssembly toolchains should +talk to one another. Originally this non-standard definition was used for all +WebAssembly based targets except Emscripten, but [this changed in 2021][fix-wasi] +where the WASI targets for Rust use a corrected ABI definition. Still, however, +the non-standard definition remained in use for `wasm32-unknown-unknown`. + +The time has now come to correct this historical mistake and the Rust compiler +will soon be using a correct ABI definition for the `wasm32-unknown-unknown` +target. This means, however, that generated WebAssembly binaries will be +different than before. + +## What is a WebAssembly C ABI? + +The definition of an ABI answers questions along the lines of: + +* What registers are arguments passed in? +* What registers are results passed in? +* How is a 128-bit integers passed as an argument? +* How is a `union` passed as a return value? +* When are parameters passed through memory instead of registers? +* What is the size and alignment of a type in memory? + +For WebAssembly these answers are a little different than native platforms. +For example, WebAssembly does not have physical registers and functions must all +be annotated with a type. What WebAssembly does have is types such as `i32`, +`i64`, `f32`, and `f64`. This means that for WebAssembly an ABI needs to define +how to represent values in these types. + +This is where the [tool-conventions] document comes in. That document provides a +definition for how to represent primitives in C in the WebAssembly format, and +additionally how function signatures in C are mapped to function signatures in +WebAssembly. For example a Rust `u32` is represented by a WebAssembly `i32` and +is passed directly as a parameter as a function argument. If the Rust structure +`#[repr(C)] struct Pair(f32, f64)` is returned from a function then a return +pointer is used which must have alignment 8 and size of 16 bytes. + +In essence, the WebAssembly C ABI is acting as a bridge between C's type system +and the WebAssembly type system. This includes details such as in-memory layouts +and translations of a C function signature to a WebAssembly function signature. + +## How is `wasm32-unknown-unknown` non-standard? + +Despite the ABI definition today being non-standard, many aspects of it are +still the same as what [tool-conventions] specifies. For example, size/alignment +of types is the same as it is in C. The main difference is how function +signatures are calculated. An example (where you can follow along on [godbolt]) +is: + +```rust +#[repr(C)] +pub struct Pair { + x: u32, + y: u32, +} + +#[unsafe(no_mangle)] +pub extern "C" fn pair_add(pair: Pair) -> u32 { + pair.x + pair.y +} +``` + +This will generate the following WebAssembly function: + +```wasm +(func $pair_add (param i32 i32) (result i32) + local.get 1 + local.get 0 + i32.add +) +``` + +Notably you can see here that the struct `Pair` was "splatted" into its two +components so the actual `$pair_add` function takes two arguments, the `x` and +`y` fields. The [tool-conventions], however specifically says that "other +struct[s] or union[s]" are passed indirectly, notably through memory. We can see +this by compiling this C code: + +```c +struct Pair { + unsigned x; + unsigned y; +}; + +unsigned pair_add(struct Pair pair) { + return pair.x + pair.y; +} +``` + +which yields the generated function: + +```wasm +(func (param i32) (result i32) + local.get 0 + i32.load offset=4 + local.get 0 + i32.load + i32.add +) +``` + +Here we can see, sure enough, that `pair` is passed in linear memory and this +function only has a single argument, not two. This argument is a pointer into +linear memory which stores the `x` and `y` fields. + +The Diplomat project has [compiled a much more comprehensive overview][quirks] +than this and it's recommended to check that out if you're curious for an even +deeper dive. + +## Why hasn't this been fixed long ago already? + +For `wasm32-unknown-unknown` it was well-known at the time in 2021 when WASI's +ABI was updated that the ABI was non-standard. Why then has the ABI not been +fixed like with WASI? +The main reason originally for this was the [wasm-bindgen +project][wasm-bindgen]. + +In `wasm-bindgen` the goal is to make it easy to integrate Rust into a web +browser with WebAssembly. JavaScript is used to interact with host APIs and the +Rust module itself. Naturally, this communication touches on a lot of ABI +details! The problem was that `wasm-bindgen` relied on the above example, +specifically having `Pair` "splatted" across arguments instead of passed +indirectly. The generated JS wouldn't work correctly if the argument was passed +in-memory. + +At the time this was discovered it was found to be significantly difficult to +fix `wasm-bindgen` to not rely on this splatting behavior. At the time it also +wasn't thought to be a widespread issue nor was it costly for the compiler to +have a non-standard ABI. Over the years though the pressure has mounted. The +Rust compiler is carrying an [ever-growing list of hacks][leak-details] to work +around the non-standard C ABI on `wasm32-unknown-unknown`. Additionally more +projects have started to rely on this "splatting" behavior and the risk has +gotten greater that there are more unknown projects relying on the non-standard +behavior. + +In late 2023 [the wasm-bindgen project fixed bindings generation][wbgfix] to be +unaffected by the transition to the standard definition of `extern "C"`. In the following months +a [future-incompat lint was added to rustc][fcw1] to specifically migrate users +of old `wasm-bindgen` versions to a "fixed" version. This was in anticipation of +changing the ABI of `wasm32-unknown-unknown` once enough time had passed. Since +early 2025 users of old `wasm-bindgen` versions [will now receive a hard +error][hard-error] asking them to upgrade. + +Despite all this heroic effort done by contributors, however, it has now come to +light that there are more projects than `wasm-bindgen` relying on this +non-standard ABI definition. Consequently this blog post is intended to serve as +a notice to other users on `wasm32-unknown-unknown` that the ABI break is +upcoming and projects may need to be changed. + +## Am I affected? + +If you don't use the `wasm32-unknown-unknown` target, you are not affected by +this change. If you don't use `extern "C"` on the `wasm32-unknown-unknown` +target, you are also not affected. If you fall into this bucket, however, you +may be affected! + +To determine the impact to your project there are a few tools at your disposal: + +* A new [future-incompat warning][fcw2] has been added to the Rust compiler + which will issue a warning if it detects a signature that will change when the + ABI is changed. +* In 2023 a [`-Zwasm-c-abi=(legacy|spec)` flag was added][specflag] to the Rust + compiler. This defaults to `-Zwasm-c-abi=legacy`, the non-standard definition. + Code can use `-Zwasm-c-abi=spec` to use the standard definition of the C ABI + for a crate to test out if changes work. + +The best way to test your crate is to compile with `nightly-2025-03-27` +or later, ensure there are no warnings, and then test your project still works +with `-Zwasm-c-abi=spec`. If all that passes then you're good to go and the +upcoming change to the C ABI will not affect your project. + +## I'm affected, now what? + +So you're using `wasm32-unknown-unknown`, you're using `extern "C"`, and the +nightly compiler is giving you warnings. Additionally your project is broken +when compiled with` -Zwasm-c-abi=spec`. What now? + +At this time this will unfortunately be a somewhat rough transition period for +you. There are a few options at your disposal but they all have their downsides: + +1. Pin your Rust compiler version to the current stable, don't update until the + ABI has changed. This means that you won't get any compiler warnings (as old + compilers don't warn) and additionally you won't get broken when the ABI + changes (as you're not changing compilers). Eventually when you update to a + stable compiler with `-Zwasm-c-abi=spec` as the default you'll have to port + your JS or bindings to work with the new ABI. + +2. Update to Rust nightly as your compiler and pass `-Zwasm-c-abi=spec`. This is + front-loading the work required in (1) for your target. You can get your + project compatible with `-Zwasm-c-abi=spec` today. The downside of this + approach is that your project will only work with a nightly compiler and + `-Zwasm-c-abi=spec` and you won't be able to use stable until the default is + switched. + +3. Update your project to not rely on the non-standard behavior of + `-Zwasm-c-abi=legacy`. This involves, for example, not passing + structs-by-value in parameters. You can pass `&Pair` above, for example, + instead of `Pair`. This is similar to (2) above where the work is done + immediately to update a project but has the benefit of continuing to work on + stable Rust. The downside of this, however, is that you may not be able to + easily change or update your C ABI in some situations. + +4. Update to Rust nightly as your compiler and pass `-Zwasm-c-abi=legacy`. This + will silence compiler warnings for now but be aware that the ABI will still + change in the future and the `-Zwasm-c-abi=legacy` option will be removed + entirely. When the `-Zwasm-c-abi=legacy` option is removed the only option + will be the standard C ABI, what `-Zwasm-c-abi=spec` today enables. + +If you have uncertainties, questions, or difficulties, feel free to reach out on +[the tracking issue for the future-incompat warning][tracking] or on Zulip. + +## Timeline of ABI changes + +At this time there is not an exact timeline of how the default ABI is going to +change. It's expected to take on the order of 3-6 months, however, and will look +something roughly like this: + +* 2025 March: (soon) - a [future-incompat warning][fcw2] will be added to the + compiler to warn projects if they're affected by this ABI change. +* 2025-05-15: this future-incompat warning will reach the stable Rust channel as + 1.87.0. +* 2025 Summer: (ish) - the `-Zwasm-c-abi` flag will be removed from the compiler + and the `legacy` option will be entirely removed. + +Exactly when `-Zwasm-c-abi` is removed will depend on feedback from the +community and whether the future-incompat warning triggers much. It's hoped that +soon after the Rust 1.87.0 is stable, though, that the old legacy ABI behavior +can be removed. + +[wbgfix]: https://github.com/rustwasm/wasm-bindgen/pull/3595 +[specflag]: https://github.com/rust-lang/rust/pull/117919 +[fcw1]: https://github.com/rust-lang/rust/pull/117918 +[fcw2]: https://github.com/rust-lang/rust/pull/138601 +[hard-error]: https://github.com/rust-lang/rust/pull/133951 +[inception]: https://github.com/rust-lang/rust/pull/45905 +[orig-abi]: https://github.com/rust-lang/rust/pull/48959 +[current-abi]: https://github.com/rust-lang/rust/blob/78948ac259253ce89effca1e8bb64d16f4684aa4/compiler/rustc_target/src/callconv/wasm.rs#L76-L114 +[fix-wasi]: https://github.com/rust-lang/rust/pull/79998 +[godbolt]: https://godbolt.org/z/fExj4M4no +[conventions-struct]: https://github.com/WebAssembly/tool-conventions/blob/main/BasicCABI.md#function-arguments-and-return-values +[wasm-bindgen]: https://github.com/rustwasm/wasm-bindgen +[tracking]: https://github.com/rust-lang/rust/issues/138762 +[quirks]: https://github.com/rust-diplomat/diplomat/blob/main/docs/wasm_abi_quirks.md From 8efd0b2dbe9847d20215462979464895eb07bbfe Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Fri, 4 Apr 2025 11:29:28 +0200 Subject: [PATCH 0890/1024] Rust 1.86: minor typo fix (#1555) --- content/Rust-1.86.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Rust-1.86.0.md b/content/Rust-1.86.0.md index d573d4211..c56fd17ba 100644 --- a/content/Rust-1.86.0.md +++ b/content/Rust-1.86.0.md @@ -88,7 +88,7 @@ Previously only `unsafe` functions could be marked with the `#[target_feature]` Safe functions marked with the target feature attribute can only be safely called from other functions marked with the target feature attribute. However, they cannot be passed to functions accepting generics bounded by the `Fn*` traits and only support being coerced to function pointers inside of functions marked with the `target_feature` attribute. -Inside of functions not marked with the target feature attribute they can be called inside of an `unsafe` block, however it is the callers responsibility to ensure that the target feature is available. +Inside of functions not marked with the target feature attribute they can be called inside of an `unsafe` block, however it is the caller's responsibility to ensure that the target feature is available. ```rust #[target_feature(enable = "avx2")] From bc497a4998901fe06fefe2ca2e08e81f8608c21c Mon Sep 17 00:00:00 2001 From: jackh726 Date: Wed, 2 Apr 2025 21:38:04 +0000 Subject: [PATCH 0891/1024] Add blog post for vision doc survey --- content/vision-doc-survey.md | 68 ++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 content/vision-doc-survey.md diff --git a/content/vision-doc-survey.md b/content/vision-doc-survey.md new file mode 100644 index 000000000..faf9015c6 --- /dev/null +++ b/content/vision-doc-survey.md @@ -0,0 +1,68 @@ ++++ +layout = "post" +date = 2025-04-04 +title = "Help us create a vision for Rust's future" +author = "Jack Huey" +team = "Vision Doc Team " ++++ + +tl;dr: Please take our [survey here][survey] + +Rust turns 10 this year. It's a good time to step back and assess where we are at and to get aligned around where we should be going. Where is Rust succeeding at *empowering everyone to build reliable, efficient software* (as it says on our webpage)? Where are there opportunities to do better? To that end, we have taken on the [goal of authoring a Rust Vision RFC](https://rust-lang.github.io/rust-project-goals/2025h1/rust-vision-doc.html), with the first milestone being to prepare a draft for review at the upcoming Rust All Hands. + +### Goals and non-goals + +The vision RFC has **two goals** + +* to build a shared understanding of **where we are** and +* to identify **where we should be going** at a high-level. + +The vision RFC also has a **non-goal**, which is to provide specific designs or feature recommendations. We'll have plenty of time to write detailed RFCs for that. The vision RFC will instead focus more on higher-level recommendations and on understanding what people need and want from Rust in various domains. + +We hope that by answering the above questions, we will then be able to evolve Rust with more confidence. It will also help Rust users (and would-be users) to understand what Rust is for and where it is going. + +### Community *and* technology are both in scope + +The scope of the vision RFC is not limited to the technical design of Rust. It will also cover topics like + +* the experience of open-source maintainers and contributors, both for the Rust project and for Rust crates; +* integrating global Rust communities across the world; +* and building momentum and core libraries for particular domains, like embedded, CLI, or gamedev. + +### Gathering data + +To answer the questions we have set, we need to gather data - we want to do our best *not* to speculate. This is going to come in two main formats: + +1) **A [survey]** about peoples' experiences with Rust (see below). Unlike the Annual Rust survey, the questions are open-ended and free-form, and cover somewhat different topics. This also us to gather a list of people to potentially interview: +2) **Interviews** of people from various backgrounds and domains. In an ideal world, we would interview everyone who wants to be interviewed, but in reality we're going to try to interview as many people as we can to form a diverse and representative set. + +While we have some idea of who we want to talk to, we may be missing some! We're hoping that the survey will not only help us connect to the people that we want to talk to, but also potentially help us uncover people we haven't yet thought of. We are currently planning to talk to + +* Rust users, novice to expert; +* Rust non-users (considering or not); +* Companies using (or considering) Rust, from startup to enterprise; +* Global or language-based Rust affinity groups; +* Domain-specific groups; +* Crate maintainers, big and small; +* Project maintainers and contributors, volunteer or professional; +* Rust Foundation staff. + +### Our roadmap and timeline + +Our current "end goal" is to author and open a vision RFC sometime during the second half of the year, likely in the fall. For this kind of RFC, though, the journey is really more important than the destination. We plan to author several drafts along the way and take feedback, both from Rust community members and from the public at large. The first milestone we are targeting is to prepare an **initial report for review at the [Rust All Hands](https://blog.rust-lang.org/inside-rust/2024/09/02/all-hands.html) in May**. To that end, the data gathering process starts *now* with the [survey][survey], but we intend to spend the month of April conducting interviews (and more after that). + +### How you can help + +For starters, fill out our [survey here][survey]. This survey has three sections + +1. To put the remaining responses into context, the survey asks a few demographic questions to allow us to ensure we are getting good representation across domains, experience, and backgrounds. +1. It asks a series of questions about your experiences with Rust. As mentioned before, this survey is quite different from the Annual Rust survey. If you have experiences in the context of a company or organization, please feel free to share those (submitting this separately is best)! +2. It asks for recommendations as to whom we ought to speak to. Please only recommend yourself or people/companies/groups for which you have a specific contact. + +*Note: **The first part of the survey will only be shared publicly in aggregate, the second may be made public directly, and the third section will not be made public.** For interviews, we can be more flexible with what information is shared publicly or not.* + +Of course, other than taking the survey, you can also *share* it with people. We *really* want to reach people that may not otherwise see it through our typical channels. So, even better if you can help us do that! + +Finally, if you are active in the Rust maintainer community, feel free to join the [`#vision-doc-2025`](https://rust-lang.zulipchat.com/#narrow/channel/486265-vision-doc-2025) channel on Zulip and say hello. + +[survey]: https://www.surveyhero.com/c/fuznhxp3 From 222b2d930ef0f2f62c1e71fe1c209a8b5bed8dab Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Sat, 5 Apr 2025 00:57:18 +0200 Subject: [PATCH 0892/1024] vision-doc-survey.md: add missing word (#1556) --- content/vision-doc-survey.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/vision-doc-survey.md b/content/vision-doc-survey.md index faf9015c6..12ac40e79 100644 --- a/content/vision-doc-survey.md +++ b/content/vision-doc-survey.md @@ -33,7 +33,7 @@ The scope of the vision RFC is not limited to the technical design of Rust. It w To answer the questions we have set, we need to gather data - we want to do our best *not* to speculate. This is going to come in two main formats: -1) **A [survey]** about peoples' experiences with Rust (see below). Unlike the Annual Rust survey, the questions are open-ended and free-form, and cover somewhat different topics. This also us to gather a list of people to potentially interview: +1) **A [survey]** about peoples' experiences with Rust (see below). Unlike the Annual Rust survey, the questions are open-ended and free-form, and cover somewhat different topics. This also allows us to gather a list of people to potentially interview. 2) **Interviews** of people from various backgrounds and domains. In an ideal world, we would interview everyone who wants to be interviewed, but in reality we're going to try to interview as many people as we can to form a diverse and representative set. While we have some idea of who we want to talk to, we may be missing some! We're hoping that the survey will not only help us connect to the people that we want to talk to, but also potentially help us uncover people we haven't yet thought of. We are currently planning to talk to From 5661f3effbb5bc827e016fbf914ec86db56f2905 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Sat, 5 Apr 2025 13:36:50 +0200 Subject: [PATCH 0893/1024] Social media links: twitter -> bluesky. --- templates/footer.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/footer.html b/templates/footer.html index 5e6e8145a..d727fa74f 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -23,7 +23,7 @@

    Terms and policies

    Social

    mastodon logo - twitter logo + Bluesky logo youtube logo discord logo github logo From 0bf88f3d572445463bfb9a7f77a9d792e3834b5c Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Sat, 5 Apr 2025 14:03:33 +0200 Subject: [PATCH 0894/1024] Add missing Bluesky logo. --- static/images/bluesky.svg | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 static/images/bluesky.svg diff --git a/static/images/bluesky.svg b/static/images/bluesky.svg new file mode 100644 index 000000000..619941764 --- /dev/null +++ b/static/images/bluesky.svg @@ -0,0 +1,16 @@ + + + + + From 4c65846e07e77dfa928967ee62e878be9dabb5cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Tue, 8 Apr 2025 17:10:57 +0200 Subject: [PATCH 0895/1024] fix designated typo Co-authored-by: Niko Matsakis --- content/Project-Goals-2025-March-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index 566734577..b17561b3c 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -6,7 +6,7 @@ author = "Rémy Rakic" team = "Goals Team " +++ -The Rust project is currently working towards a [slate of 40 project goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html), with 3 of them designed as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html#flagship-goals). This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated [tracking issue on the rust-project-goals repository](https://github.com/rust-lang/rust-project-goals/issues?q=is%3Aissue%20state%3Aopen%20label%3AC-tracking-issue). +The Rust project is currently working towards a [slate of 40 project goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html), with 3 of them designated as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html#flagship-goals). This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated [tracking issue on the rust-project-goals repository](https://github.com/rust-lang/rust-project-goals/issues?q=is%3Aissue%20state%3Aopen%20label%3AC-tracking-issue). ## Flagship goals From 88b28b7ed996ffee22bc20e729d92a21f125923f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Tue, 8 Apr 2025 17:13:52 +0200 Subject: [PATCH 0896/1024] update publication date Co-authored-by: Niko Matsakis --- content/Project-Goals-2025-March-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index b17561b3c..3f90b5f16 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -1,6 +1,6 @@ +++ layout = "post" -date = 2025-04-04 +date = 2025-04-08 title = "March Goals Update" author = "Rémy Rakic" team = "Goals Team " From 97d09eb02b4a40af0909d997d73118e1f4d6e8f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Tue, 8 Apr 2025 15:16:30 +0000 Subject: [PATCH 0897/1024] fix post title --- content/Project-Goals-2025-March-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index 3f90b5f16..8df46bd92 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -1,7 +1,7 @@ +++ layout = "post" date = 2025-04-08 -title = "March Goals Update" +title = "March Project Goals Update" author = "Rémy Rakic" team = "Goals Team " +++ From 70e650290b527ef6e28e8b2ef8f1aac998029839 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Fri, 11 Apr 2025 12:37:58 -0700 Subject: [PATCH 0898/1024] Add today's crates.io security notice about session cookies. --- content/crates-io-security-session-cookies.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 content/crates-io-security-session-cookies.md diff --git a/content/crates-io-security-session-cookies.md b/content/crates-io-security-session-cookies.md new file mode 100644 index 000000000..a4a54ec23 --- /dev/null +++ b/content/crates-io-security-session-cookies.md @@ -0,0 +1,37 @@ ++++ +layout = "post" +date = 2025-04-11 +title = "crates.io security incident: improperly stored session cookies" +author = "Adam Harvey" +team = "the crates.io team " ++++ + +Today the crates.io team discovered that the contents of the `cargo_session` +cookie were being persisted to our error monitoring service, +[Sentry](https://sentry.io/welcome/), as part of event payloads sent when an +error occurs in the crates.io backend. The value of this cookie is a signed +value that identifies the currently logged in user, and therefore these cookie +values could be used to impersonate any logged in user. + +Sentry access is limited to a trusted subset of the crates.io team, Rust +infrastructure team, and the crates.io on-call rotation team, who already have +access to the production environment of crates.io. There is no evidence that +these values were ever accessed or used. + +Nevertheless, out of an abundance of caution, we have taken these actions +today: + +1. We have [merged and deployed a change to redact all cookie values from all + Sentry events](https://github.com/rust-lang/crates.io/pull/10991). +2. We have invalidated all logged in sessions, thus making the cookies stored + in Sentry useless. In effect, this means that every crates.io user has been + logged out of their browser session(s). + +Note that API tokens are **not** affected by this: they are transmitted using +the `Authorization` HTTP header, and were already properly redacted before +events were stored in Sentry. All existing API tokens will continue to work. + +We apologise for the inconvenience. If you have any further questions, please +contact us on +[Zulip](https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io) or +[GitHub](https://github.com/rust-lang/crates.io/discussions). From 63a1799b4b238eacaf72e879bf001fb573cc8cf9 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Mon, 31 Mar 2025 22:15:19 +0200 Subject: [PATCH 0899/1024] Fix front matter test for renamed blog files --- front_matter/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs index 7cbbe30a7..948dd1b32 100644 --- a/front_matter/src/lib.rs +++ b/front_matter/src/lib.rs @@ -59,7 +59,7 @@ mod tests { .unwrap() .chain(fs::read_dir(repo_root.join("content/inside-rust")).unwrap()) .map(|p| p.unwrap().path()) - .filter(|p| p.extension() == Some("md".as_ref())); + .filter(|p| p.is_file() && p.file_name() != Some("_index.md".as_ref())); for post in posts { let content = fs::read_to_string(&post).unwrap(); From d2beba8ca655c923b3b817a83911e70538a178d0 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Mon, 31 Mar 2025 22:22:22 +0200 Subject: [PATCH 0900/1024] Add Zola migration for front matter The front matter is defined in such a way that it can parse both the previous and the new format that's required for Zola. An automatic migration can be triggered with: FIX_FRONT_MATTER=1 cargo test -p front_matter which will be done in a separate commit. --- README.md | 10 ++-- content/_index.md | 3 +- content/inside-rust/_index.md | 3 +- front_matter/src/lib.rs | 97 ++++++++++++++++++++++++++++++++--- 4 files changed, 101 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 098082137..fc1707841 100644 --- a/README.md +++ b/README.md @@ -48,10 +48,14 @@ that it's something that will eventually be accepted. When writing a new blog post, keep in mind the file headers: ```md +++ -layout = "post" -date = 2015-03-15 +path = "2015/03/15/some-slug" title = "Title of the blog post" -author = "Blog post author (or on behalf of which team)" +authors = ["Blog post author (or on behalf of which team)"] +description = "(optional)" + +[extra] # optional section +team = "Team Name" # if post is made on behalf of a team +team_url = "https://www.rust-lang.org/governance/teams/..." # required if team is set release = true # (to be only used for official posts about Rust releases announcements) +++ ``` diff --git a/content/_index.md b/content/_index.md index 2ab9e38d7..1ca91d974 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,7 +1,8 @@ +++ title = "Rust Blog" -index_title = "The Rust Programming Language Blog" description = "Empowering everyone to build reliable and efficient software." +[extra] +index_title = "The Rust Programming Language Blog" index_html = """ This is the main Rust blog. \ Rust teams \ diff --git a/content/inside-rust/_index.md b/content/inside-rust/_index.md index a2c2d0579..7b4a474c0 100644 --- a/content/inside-rust/_index.md +++ b/content/inside-rust/_index.md @@ -1,7 +1,8 @@ +++ title = "Inside Rust Blog" -index_title = 'The "Inside Rust" Blog' description = "Want to follow along with Rust development? Curious how you might get involved? Take a look!" +[extra] +index_title = 'The "Inside Rust" Blog' index_html = """ This is the "Inside Rust" blog. This blog is aimed at those who wish \ to follow along with Rust development. The various \ diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs index 948dd1b32..3b4b8f666 100644 --- a/front_matter/src/lib.rs +++ b/front_matter/src/lib.rs @@ -5,14 +5,55 @@ use toml::value::Date; /// The front matter of a markdown blog post. #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct FrontMatter { - pub layout: String, - pub date: Date, + /// Deprecated. The plan was probably to have more specialized templates + /// at some point. That didn't materialize, all posts are rendered with the + /// same template. Once we migrate to Zola, this can be achieved with the + /// "template" key. + #[serde(default, skip_serializing)] + pub layout: Option, + /// Deprecated. Zola doesn't do any path templating based on things like + /// the date. So, in order to preserve our URL structure (YYYY/MM/DD/...) + /// we have to set the path explicitly. Duplicating the date would + /// be inconvenient for content authors who need to keep the date of + /// publication updated. + #[serde(default, skip_serializing)] + pub date: Option, + #[serde(default)] + pub path: String, pub title: String, - pub author: String, + /// Deprecated. Zola uses an "authors" key with an array instead. The front + /// matter tests can do the migration automatically. + #[serde(default, skip_serializing)] + pub author: Option, + #[serde(default)] + pub authors: Vec, pub description: Option, + /// Used to generate redirects from the old URL scheme to preserve + /// permalinks. + #[serde(default)] + pub aliases: Vec, + /// Moved to the `extra` table. + #[serde(default, skip_serializing)] pub team: Option, + /// Moved to the `extra` table. #[serde(default, skip_serializing_if = "std::ops::Not::not")] pub release: bool, + #[serde(default, skip_serializing_if = "Extra::is_empty")] + pub extra: Extra, +} + +#[derive(Debug, Default, PartialEq, Serialize, Deserialize)] +pub struct Extra { + pub team: Option, + pub team_url: Option, + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + pub release: bool, +} + +impl Extra { + fn is_empty(&self) -> bool { + self.team.is_none() && !self.release + } } /// Extracts the front matter from a markdown file. @@ -32,8 +73,42 @@ pub fn parse(markdown: &str) -> eyre::Result<(FrontMatter, &str)> { } /// Normalizes the front matter of a markdown file. -pub fn normalize(markdown: &str) -> eyre::Result { - let (front_matter, content) = parse(markdown)?; +pub fn normalize(markdown: &str, slug: &str, inside_rust: bool) -> eyre::Result { + let (mut front_matter, content) = parse(markdown)?; + + // migrate "author" to "authors" key + if let Some(author) = front_matter.author.take() { + front_matter.authors = vec![author]; + } + // migrate "team" to "extra" section + if let Some(team) = front_matter.team.take() { + let (team, url) = team.split_once(" <").unwrap(); + let url = url.strip_suffix('>').unwrap(); + front_matter.extra.team = Some(team.into()); + front_matter.extra.team_url = Some(url.into()); + } + // migrate "release" to "extra" section + if front_matter.release { + front_matter.release = false; + front_matter.extra.release = true; + } + // migrate "date" to "path" key + if let Some(date) = front_matter.date.take() { + front_matter.path = format!( + "{inside_rust}{year}/{month:02}/{day:02}/{slug}", + inside_rust = if inside_rust { "inside-rust/" } else { "" }, + year = date.year, + month = date.month, + day = date.day, + // remove @ suffix, used for disambiguation only in the source + slug = slug.split_once('@').map(|(s, _)| s).unwrap_or(slug), + ); + } + front_matter.aliases = vec![format!("{}.html", front_matter.path)]; + + if front_matter.extra.team.is_some() ^ front_matter.extra.team_url.is_some() { + bail!("extra.team and extra.team_url must always come in a pair"); + } Ok(format!( "\ @@ -62,8 +137,16 @@ mod tests { .filter(|p| p.is_file() && p.file_name() != Some("_index.md".as_ref())); for post in posts { + let slug = post.file_stem().unwrap().to_str().unwrap(); + + let inside_rust = post + .as_os_str() + .to_str() + .unwrap() + .contains("content/inside-rust/"); + let content = fs::read_to_string(&post).unwrap(); - let normalized = normalize(&content).unwrap_or_else(|err| { + let normalized = normalize(&content, slug, inside_rust).unwrap_or_else(|err| { panic!("failed to normalize {:?}: {err}", post.file_name().unwrap()); }); @@ -98,7 +181,7 @@ The post {post} has abnormal front matter. │ │ │ You can fix this automatically by running: │ │ │ - │ FIX_FRONT_MATTER=1 cargo test --all front_matter_is_normalized │ + │ FIX_FRONT_MATTER=1 cargo test -p front_matter │ │ │ └──────────────────────────────────────────────────────────────────────────┘ ", From 705d69480fd19e1b63078280fedae85350e2cd58 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Tue, 1 Apr 2025 23:23:04 +0200 Subject: [PATCH 0901/1024] Auto-migrate front matter to Zola This patch was generated by running: FIX_FRONT_MATTER=1 cargo test -p front_matter --- content/1.0-Timeline.md | 6 +++--- content/2023-Rust-Annual-Survey-2023-results.md | 6 +++--- content/2024-Edition-CFP.md | 6 +++--- content/2024-State-Of-Rust-Survey-results.md | 6 +++--- content/4-Years-Of-Rust.md | 6 +++--- content/A-call-for-blogs-2020.md | 6 +++--- content/Async-await-hits-beta.md | 6 +++--- content/Async-await-stable.md | 6 +++--- content/Cargo.md | 6 +++--- content/Clippy-deprecating-feature-cargo-clippy.md | 6 +++--- content/Core-Team.md | 6 +++--- content/Core-team-changes.md | 6 +++--- content/Core-team-membership-updates.md | 6 +++--- content/Enums-match-mutation-and-moves.md | 6 +++--- content/Fearless-Concurrency-In-Firefox-Quantum.md | 6 +++--- content/Fearless-Concurrency.md | 6 +++--- content/Final-1.0-timeline.md | 6 +++--- content/GATs-stabilization-push.md | 11 +++++++---- content/Increasing-Apple-Version-Requirements.md | 6 +++--- content/Increasing-Rusts-Reach-2018.md | 6 +++--- content/Increasing-Rusts-Reach.md | 6 +++--- content/Increasing-glibc-kernel-requirements.md | 6 +++--- content/MIR.md | 6 +++--- content/Mozilla-IRC-Sunset-and-the-Rust-Channel.md | 6 +++--- content/Next-steps-for-the-foundation-conversation.md | 6 +++--- content/Next-year.md | 6 +++--- content/OSPP-2024.md | 6 +++--- content/Planning-2021-Roadmap.md | 6 +++--- content/Procedural-Macros-in-Rust-2018.md | 6 +++--- content/Project-Goals-2025-March-Update.md | 11 +++++++---- content/Project-Goals-Dec-Update.md | 11 +++++++---- content/Project-Goals-Feb-Update.md | 11 +++++++---- content/Project-Goals-Sep-Update.md | 11 +++++++---- content/Project-goals.md | 11 +++++++---- content/RLS-deprecation.md | 6 +++--- content/Rust-1.0-alpha.md | 6 +++--- content/Rust-1.0-alpha2.md | 6 +++--- content/Rust-1.0-beta.md | 6 +++--- content/Rust-1.0@0.md | 6 +++--- content/Rust-1.0@1.md | 8 +++++--- content/Rust-1.1.md | 8 +++++--- content/Rust-1.10.md | 8 +++++--- content/Rust-1.11.md | 8 +++++--- content/Rust-1.12.1.md | 8 +++++--- content/Rust-1.12.md | 8 +++++--- content/Rust-1.13.md | 8 +++++--- content/Rust-1.14.md | 8 +++++--- content/Rust-1.15.1.md | 8 +++++--- content/Rust-1.15.md | 8 +++++--- content/Rust-1.16.md | 8 +++++--- content/Rust-1.17.md | 8 +++++--- content/Rust-1.18.md | 8 +++++--- content/Rust-1.19.md | 8 +++++--- content/Rust-1.2.md | 8 +++++--- content/Rust-1.20.md | 8 +++++--- content/Rust-1.21.md | 8 +++++--- content/Rust-1.22.md | 8 +++++--- content/Rust-1.23.md | 8 +++++--- content/Rust-1.24.1.md | 8 +++++--- content/Rust-1.24.md | 8 +++++--- content/Rust-1.25.md | 8 +++++--- content/Rust-1.26.1.md | 8 +++++--- content/Rust-1.26.2.md | 8 +++++--- content/Rust-1.26.md | 8 +++++--- content/Rust-1.27.1.md | 8 +++++--- content/Rust-1.27.2.md | 8 +++++--- content/Rust-1.27.md | 8 +++++--- content/Rust-1.28.md | 8 +++++--- content/Rust-1.29.1.md | 8 +++++--- content/Rust-1.29.2.md | 8 +++++--- content/Rust-1.29.md | 8 +++++--- content/Rust-1.3.md | 8 +++++--- content/Rust-1.30.0.md | 8 +++++--- content/Rust-1.30.1.md | 8 +++++--- content/Rust-1.31-and-rust-2018.md | 8 +++++--- content/Rust-1.31.1.md | 8 +++++--- content/Rust-1.32.0.md | 8 +++++--- content/Rust-1.33.0.md | 8 +++++--- content/Rust-1.34.0.md | 8 +++++--- content/Rust-1.34.1.md | 8 +++++--- content/Rust-1.34.2.md | 8 +++++--- content/Rust-1.35.0.md | 8 +++++--- content/Rust-1.36.0.md | 8 +++++--- content/Rust-1.37.0.md | 8 +++++--- content/Rust-1.38.0.md | 8 +++++--- content/Rust-1.39.0.md | 8 +++++--- content/Rust-1.4.md | 8 +++++--- content/Rust-1.40.0.md | 8 +++++--- content/Rust-1.41.0.md | 8 +++++--- content/Rust-1.41.1.md | 8 +++++--- content/Rust-1.42.md | 8 +++++--- content/Rust-1.43.0.md | 8 +++++--- content/Rust-1.44.0.md | 8 +++++--- content/Rust-1.45.0.md | 8 +++++--- content/Rust-1.45.1.md | 8 +++++--- content/Rust-1.45.2.md | 8 +++++--- content/Rust-1.46.0.md | 8 +++++--- content/Rust-1.47.md | 8 +++++--- content/Rust-1.48.md | 8 +++++--- content/Rust-1.49.0.md | 8 +++++--- content/Rust-1.5.md | 8 +++++--- content/Rust-1.50.0.md | 8 +++++--- content/Rust-1.51.0.md | 8 +++++--- content/Rust-1.52.0.md | 8 +++++--- content/Rust-1.52.1.md | 11 +++++++---- content/Rust-1.53.0.md | 8 +++++--- content/Rust-1.54.0.md | 8 +++++--- content/Rust-1.55.0.md | 8 +++++--- content/Rust-1.56.0.md | 8 +++++--- content/Rust-1.56.1.md | 8 +++++--- content/Rust-1.57.0.md | 8 +++++--- content/Rust-1.58.0.md | 8 +++++--- content/Rust-1.58.1.md | 8 +++++--- content/Rust-1.59.0.md | 8 +++++--- content/Rust-1.6.md | 8 +++++--- content/Rust-1.60.0.md | 8 +++++--- content/Rust-1.61.0.md | 8 +++++--- content/Rust-1.62.0.md | 8 +++++--- content/Rust-1.62.1.md | 8 +++++--- content/Rust-1.63.0.md | 8 +++++--- content/Rust-1.64.0.md | 8 +++++--- content/Rust-1.65.0.md | 8 +++++--- content/Rust-1.66.0.md | 8 +++++--- content/Rust-1.66.1.md | 8 +++++--- content/Rust-1.67.0.md | 8 +++++--- content/Rust-1.67.1.md | 8 +++++--- content/Rust-1.68.0.md | 8 +++++--- content/Rust-1.68.1.md | 8 +++++--- content/Rust-1.68.2.md | 8 +++++--- content/Rust-1.69.0.md | 8 +++++--- content/Rust-1.7.md | 8 +++++--- content/Rust-1.70.0.md | 8 +++++--- content/Rust-1.71.0.md | 8 +++++--- content/Rust-1.71.1.md | 8 +++++--- content/Rust-1.72.0.md | 8 +++++--- content/Rust-1.72.1.md | 8 +++++--- content/Rust-1.73.0.md | 8 +++++--- content/Rust-1.74.0.md | 8 +++++--- content/Rust-1.74.1.md | 8 +++++--- content/Rust-1.75.0.md | 8 +++++--- content/Rust-1.76.0.md | 8 +++++--- content/Rust-1.77.0.md | 8 +++++--- content/Rust-1.77.1.md | 8 +++++--- content/Rust-1.77.2.md | 8 +++++--- content/Rust-1.78.0.md | 8 +++++--- content/Rust-1.79.0.md | 8 +++++--- content/Rust-1.8.md | 8 +++++--- content/Rust-1.80.0.md | 8 +++++--- content/Rust-1.80.1.md | 8 +++++--- content/Rust-1.81.0.md | 8 +++++--- content/Rust-1.82.0.md | 8 +++++--- content/Rust-1.83.0.md | 8 +++++--- content/Rust-1.84.0.md | 8 +++++--- content/Rust-1.84.1.md | 8 +++++--- content/Rust-1.85.0.md | 8 +++++--- content/Rust-1.85.1.md | 8 +++++--- content/Rust-1.86.0.md | 8 +++++--- content/Rust-1.9.md | 8 +++++--- content/Rust-2017-Survey-Results.md | 6 +++--- content/Rust-2018-dev-tools.md | 6 +++--- content/Rust-2021-public-testing.md | 11 +++++++---- content/Rust-2024-public-testing.md | 11 +++++++---- content/Rust-Once-Run-Everywhere.md | 6 +++--- content/Rust-Roadmap-Update.md | 6 +++--- content/Rust-Survey-2021.md | 6 +++--- content/Rust-Survey-2023-Results.md | 6 +++--- content/Rust-participates-in-GSoC-2024.md | 6 +++--- content/Rust-participates-in-GSoC-2025.md | 6 +++--- content/Rust-survey-2018.md | 6 +++--- content/Rust-survey-2019.md | 6 +++--- content/Rust-turns-three.md | 6 +++--- content/Rust.1.43.1.md | 8 +++++--- content/Rust.1.44.1.md | 8 +++++--- content/RustConf.md | 11 +++++++---- content/Rustup-1.20.0.md | 6 +++--- content/Rustup-1.22.0.md | 6 +++--- content/Rustup-1.22.1.md | 6 +++--- content/Rustup-1.23.0.md | 6 +++--- content/Rustup-1.24.0.md | 6 +++--- content/Rustup-1.24.1.md | 6 +++--- content/Rustup-1.24.2.md | 6 +++--- content/Rustup-1.24.3.md | 6 +++--- content/Rustup-1.25.0.md | 6 +++--- content/Rustup-1.25.1.md | 6 +++--- content/Rustup-1.25.2.md | 6 +++--- content/Rustup-1.26.0.md | 6 +++--- content/Rustup-1.27.0.md | 6 +++--- content/Rustup-1.27.1.md | 6 +++--- content/Rustup-1.28.0.md | 6 +++--- content/Rustup-1.28.1.md | 6 +++--- content/Scheduling-2021-Roadmap.md | 6 +++--- content/Security-advisory-for-cargo.md | 6 +++--- content/Security-advisory-for-std.md | 6 +++--- content/Security-advisory.md | 6 +++--- content/Shape-of-errors-to-come.md | 6 +++--- content/Stability.md | 6 +++--- content/State-of-Rust-Survey-2016.md | 6 +++--- content/The-2018-Rust-Event-Lineup.md | 6 +++--- content/The-2019-Rust-Event-Lineup.md | 6 +++--- content/Underhanded-Rust.md | 6 +++--- content/Update-on-crates.io-incident.md | 6 +++--- content/Updating-musl-targets.md | 11 +++++++---- content/Windows-7.md | 6 +++--- content/a-new-look-for-rust-lang-org.md | 6 +++--- content/adopting-the-fls.md | 11 +++++++---- content/all-hands.md | 6 +++--- content/android-ndk-update-r25.md | 6 +++--- content/announcing-the-new-rust-project-directors.md | 11 +++++++---- content/annual-survey-2024-launch.md | 6 +++--- content/async-fn-rpit-in-traits.md | 11 +++++++---- content/async-vision-doc-shiny-future.md | 11 +++++++---- content/async-vision-doc.md | 11 +++++++---- content/broken-badges-and-23k-keywords.md | 11 +++++++---- content/c-abi-changes-for-wasm32-unknown-unknown.md | 6 +++--- content/call-for-rust-2019-roadmap-blogposts.md | 6 +++--- content/cargo-cache-cleaning.md | 11 +++++++---- content/cargo-cves.md | 6 +++--- content/cargo-pillars.md | 6 +++--- content/changes-in-the-core-team@0.md | 6 +++--- content/changes-in-the-core-team@1.md | 6 +++--- content/check-cfg.md | 11 +++++++---- content/committing-lockfiles.md | 11 +++++++---- content/conf-lineup@0.md | 6 +++--- content/conf-lineup@1.md | 6 +++--- content/conf-lineup@2.md | 6 +++--- content/const-eval-safety-rule-revision.md | 11 +++++++---- content/const-generics-mvp-beta.md | 6 +++--- content/council-survey.md | 6 +++--- content/crates-io-development-update@0.md | 11 +++++++---- content/crates-io-development-update@1.md | 11 +++++++---- content/crates-io-download-changes.md | 11 +++++++---- content/crates-io-non-canonical-downloads.md | 11 +++++++---- content/crates-io-security-advisory.md | 6 +++--- content/crates-io-security-session-cookies.md | 11 +++++++---- content/crates-io-snapshot-branches.md | 6 +++--- content/crates-io-status-codes.md | 11 +++++++---- content/crates-io-usage-policy-rfc.md | 11 +++++++---- content/cve-2021-42574.md | 6 +++--- content/cve-2022-21658.md | 6 +++--- content/cve-2022-24713.md | 6 +++--- content/cve-2022-46176.md | 6 +++--- content/cve-2023-38497.md | 6 +++--- content/cve-2024-24576.md | 6 +++--- content/cve-2024-43402.md | 6 +++--- content/docs-rs-opt-into-fewer-targets.md | 11 +++++++---- content/edition-2021.md | 11 +++++++---- content/electing-new-project-directors.md | 11 +++++++---- content/enabling-rust-lld-on-linux.md | 11 +++++++---- content/event-lineup-update.md | 6 +++--- content/five-years-of-rust.md | 6 +++--- content/gats-stabilization.md | 11 +++++++---- content/gccrs-an-alternative-compiler-for-rust.md | 6 +++--- content/governance-wg-announcement.md | 6 +++--- content/gsoc-2024-results.md | 6 +++--- content/gsoc-2024-selected-projects.md | 6 +++--- content/help-test-rust-2018.md | 6 +++--- content/i128-layout-update.md | 11 +++++++---- content/impl-future-for-rust.md | 6 +++--- content/impl-trait-capture-rules.md | 11 +++++++---- content/improved-api-tokens-for-crates-io.md | 11 +++++++---- content/incremental.md | 6 +++--- content/inside-rust-blog.md | 6 +++--- content/inside-rust/1.45.1-prerelease.md | 11 +++++++---- content/inside-rust/1.46.0-prerelease.md | 11 +++++++---- content/inside-rust/1.47.0-prerelease-2.md | 11 +++++++---- content/inside-rust/1.47.0-prerelease.md | 11 +++++++---- content/inside-rust/1.48.0-prerelease.md | 11 +++++++---- content/inside-rust/1.49.0-prerelease.md | 11 +++++++---- content/inside-rust/1.50.0-prerelease.md | 11 +++++++---- content/inside-rust/1.51.0-prerelease.md | 11 +++++++---- content/inside-rust/1.52.0-prerelease.md | 11 +++++++---- content/inside-rust/1.53.0-prelease.md | 11 +++++++---- content/inside-rust/1.54.0-prerelease.md | 11 +++++++---- content/inside-rust/1.55.0-prerelease.md | 11 +++++++---- content/inside-rust/1.56.0-prerelease.md | 11 +++++++---- content/inside-rust/1.57.0-prerelease.md | 11 +++++++---- content/inside-rust/1.58.0-prerelease.md | 11 +++++++---- content/inside-rust/1.59.0-prerelease.md | 11 +++++++---- content/inside-rust/1.60.0-prerelease.md | 11 +++++++---- content/inside-rust/1.61.0-prerelease.md | 11 +++++++---- content/inside-rust/1.62.0-prerelease.md | 11 +++++++---- content/inside-rust/1.62.1-prerelease.md | 11 +++++++---- content/inside-rust/1.63.0-prerelease.md | 11 +++++++---- content/inside-rust/1.64.0-prerelease.md | 11 +++++++---- content/inside-rust/1.65.0-prerelease.md | 11 +++++++---- content/inside-rust/1.66.0-prerelease.md | 11 +++++++---- content/inside-rust/1.67.0-prerelease.md | 11 +++++++---- content/inside-rust/1.67.1-prerelease.md | 11 +++++++---- content/inside-rust/1.68.0-prerelease.md | 11 +++++++---- content/inside-rust/1.68.1-prerelease.md | 11 +++++++---- content/inside-rust/1.68.2-prerelease.md | 11 +++++++---- content/inside-rust/1.69.0-prerelease.md | 11 +++++++---- content/inside-rust/1.70.0-prerelease.md | 11 +++++++---- content/inside-rust/1.71.0-prerelease.md | 11 +++++++---- content/inside-rust/1.71.1-prerelease.md | 11 +++++++---- content/inside-rust/1.72.0-prerelease.md | 11 +++++++---- content/inside-rust/1.72.1-prerelease.md | 11 +++++++---- content/inside-rust/1.73.0-prerelease.md | 11 +++++++---- content/inside-rust/1.74.0-prerelease.md | 11 +++++++---- content/inside-rust/1.74.1-prerelease.md | 11 +++++++---- content/inside-rust/1.75.0-prerelease.md | 11 +++++++---- content/inside-rust/1.76.0-prerelease.md | 11 +++++++---- content/inside-rust/1.77.0-prerelease.md | 11 +++++++---- content/inside-rust/1.77.1-prerelease.md | 11 +++++++---- content/inside-rust/2024-edition-update.md | 11 +++++++---- .../AsyncAwait-Not-Send-Error-Improvements.md | 11 +++++++---- content/inside-rust/AsyncAwait-WG-Focus-Issues.md | 11 +++++++---- content/inside-rust/Backlog-Bonanza.md | 11 +++++++---- content/inside-rust/CTCFT-april.md | 6 +++--- content/inside-rust/CTCFT-february.md | 6 +++--- content/inside-rust/CTCFT-march.md | 6 +++--- content/inside-rust/CTCFT-may.md | 6 +++--- content/inside-rust/Cleanup-Crew-ICE-breakers.md | 11 +++++++---- .../inside-rust/Clippy-removes-plugin-interface.md | 11 +++++++---- content/inside-rust/Concluding-events-mods.md | 11 +++++++---- content/inside-rust/Core-team-membership.md | 11 +++++++---- content/inside-rust/Goverance-wg-cfp@0.md | 11 +++++++---- content/inside-rust/Goverance-wg@0.md | 11 +++++++---- content/inside-rust/Goverance-wg@1.md | 11 +++++++---- content/inside-rust/Governance-WG-updated.md | 11 +++++++---- content/inside-rust/Governance-wg@0.md | 11 +++++++---- .../Introducing-cargo-audit-fix-and-more.md | 11 +++++++---- .../Keeping-secure-with-cargo-audit-0.9.md | 11 +++++++---- content/inside-rust/LLVM-ICE-breakers.md | 11 +++++++---- content/inside-rust/Lang-Team-Meeting@0.md | 11 +++++++---- content/inside-rust/Lang-team-Oct-update.md | 11 +++++++---- content/inside-rust/Lang-team-july-update.md | 11 +++++++---- content/inside-rust/Lang-team-meeting@1.md | 11 +++++++---- content/inside-rust/Ownership-Std-Implementation.md | 11 +++++++---- content/inside-rust/Portable-SIMD-PG.md | 11 +++++++---- content/inside-rust/Splitting-const-generics.md | 11 +++++++---- content/inside-rust/Using-rustc_codegen_cranelift.md | 11 +++++++---- content/inside-rust/Welcome.md | 11 +++++++---- ...-the-error-handling-project-group-is-working-on.md | 11 +++++++---- ...error-handling-project-group-is-working-towards.md | 11 +++++++---- content/inside-rust/aaron-hill-compiler-team.md | 11 +++++++---- content/inside-rust/all-hands-retrospective.md | 11 +++++++---- content/inside-rust/all-hands.md | 11 +++++++---- content/inside-rust/announcing-project-goals.md | 11 +++++++---- content/inside-rust/announcing-the-docsrs-team.md | 11 +++++++---- content/inside-rust/announcing-the-rust-style-team.md | 11 +++++++---- content/inside-rust/api-token-scopes.md | 11 +++++++---- content/inside-rust/apr-steering-cycle.md | 11 +++++++---- .../inside-rust/async-closures-call-for-testing.md | 11 +++++++---- content/inside-rust/async-fn-in-trait-nightly.md | 11 +++++++---- content/inside-rust/async-in-2022.md | 11 +++++++---- content/inside-rust/bisecting-rust-compiler.md | 11 +++++++---- ...u-leseulartichaut-the8472-compiler-contributors.md | 11 +++++++---- content/inside-rust/cargo-config-merging.md | 11 +++++++---- content/inside-rust/cargo-in-2020.md | 11 +++++++---- content/inside-rust/cargo-new-members.md | 11 +++++++---- content/inside-rust/cargo-postmortem.md | 11 +++++++---- content/inside-rust/cargo-sparse-protocol.md | 11 +++++++---- content/inside-rust/cargo-team-changes.md | 11 +++++++---- content/inside-rust/changes-to-compiler-team.md | 11 +++++++---- content/inside-rust/changes-to-rustdoc-team.md | 11 +++++++---- content/inside-rust/changes-to-x-py-defaults.md | 11 +++++++---- ...jgillot-and-nadrieril-for-compiler-contributors.md | 11 +++++++---- content/inside-rust/clippy-team-changes.md | 11 +++++++---- .../inside-rust/compiler-team-2022-midyear-report.md | 11 +++++++---- content/inside-rust/compiler-team-ambitions-2022.md | 11 +++++++---- .../inside-rust/compiler-team-april-steering-cycle.md | 11 +++++++---- .../compiler-team-august-steering-cycle.md | 11 +++++++---- .../inside-rust/compiler-team-feb-steering-cycle.md | 11 +++++++---- .../inside-rust/compiler-team-july-steering-cycle.md | 11 +++++++---- .../inside-rust/compiler-team-june-steering-cycle.md | 11 +++++++---- content/inside-rust/compiler-team-meeting@0.md | 11 +++++++---- content/inside-rust/compiler-team-meeting@1.md | 11 +++++++---- content/inside-rust/compiler-team-meeting@2.md | 11 +++++++---- content/inside-rust/compiler-team-meeting@3.md | 11 +++++++---- content/inside-rust/compiler-team-meeting@4.md | 11 +++++++---- content/inside-rust/compiler-team-meeting@5.md | 11 +++++++---- content/inside-rust/compiler-team-meeting@6.md | 11 +++++++---- content/inside-rust/compiler-team-new-members.md | 11 +++++++---- content/inside-rust/compiler-team-reorg.md | 11 +++++++---- .../compiler-team-sep-oct-steering-cycle.md | 11 +++++++---- content/inside-rust/const-if-match.md | 11 +++++++---- content/inside-rust/const-prop-on-by-default.md | 11 +++++++---- content/inside-rust/content-delivery-networks.md | 11 +++++++---- content/inside-rust/contributor-survey.md | 11 +++++++---- content/inside-rust/core-team-update.md | 11 +++++++---- content/inside-rust/core-team-updates.md | 11 +++++++---- content/inside-rust/coroutines.md | 6 +++--- content/inside-rust/crates-io-incident-report.md | 11 +++++++---- content/inside-rust/crates-io-malware-postmortem.md | 11 +++++++---- content/inside-rust/crates-io-postmortem.md | 11 +++++++---- .../davidtwco-jackhuey-compiler-members.md | 11 +++++++---- content/inside-rust/diagnostic-effort.md | 11 +++++++---- content/inside-rust/dns-outage-portmortem.md | 11 +++++++---- content/inside-rust/docsrs-outage-postmortem.md | 11 +++++++---- .../ecstatic-morse-for-compiler-contributors.md | 11 +++++++---- content/inside-rust/electing-new-project-directors.md | 11 +++++++---- content/inside-rust/embedded-wg-micro-survey.md | 11 +++++++---- content/inside-rust/error-handling-wg-announcement.md | 11 +++++++---- content/inside-rust/evaluating-github-actions.md | 11 +++++++---- .../exploring-pgo-for-the-rust-compiler.md | 11 +++++++---- content/inside-rust/feb-lang-team-design-meetings.md | 11 +++++++---- content/inside-rust/feb-steering-cycle.md | 11 +++++++---- content/inside-rust/ffi-unwind-design-meeting.md | 11 +++++++---- content/inside-rust/ffi-unwind-longjmp.md | 11 +++++++---- .../inside-rust/follow-up-on-the-moderation-issue.md | 11 +++++++---- content/inside-rust/formatting-the-compiler.md | 11 +++++++---- content/inside-rust/goodbye-docs-team.md | 11 +++++++---- content/inside-rust/goverance-wg-cfp@1.md | 11 +++++++---- content/inside-rust/governance-reform-rfc.md | 11 +++++++---- content/inside-rust/governance-update@0.md | 6 +++--- content/inside-rust/governance-update@1.md | 11 +++++++---- content/inside-rust/governance-wg-meeting@0.md | 11 +++++++---- content/inside-rust/governance-wg-meeting@1.md | 11 +++++++---- content/inside-rust/governance-wg-meeting@2.md | 11 +++++++---- content/inside-rust/governance-wg@1.md | 11 +++++++---- content/inside-rust/governance-wg@2.md | 11 +++++++---- content/inside-rust/hiring-for-program-management.md | 11 +++++++---- content/inside-rust/ide-future.md | 11 +++++++---- content/inside-rust/imposter-syndrome.md | 11 +++++++---- .../in-response-to-the-moderation-team-resignation.md | 6 +++--- .../inside-rust/inferred-const-generic-arguments.md | 11 +++++++---- content/inside-rust/infra-team-leadership-change.md | 11 +++++++---- content/inside-rust/infra-team-meeting@0.md | 11 +++++++---- content/inside-rust/infra-team-meeting@1.md | 11 +++++++---- content/inside-rust/infra-team-meeting@2.md | 11 +++++++---- content/inside-rust/infra-team-meeting@3.md | 11 +++++++---- content/inside-rust/infra-team-meeting@4.md | 11 +++++++---- content/inside-rust/infra-team-meeting@5.md | 11 +++++++---- content/inside-rust/infra-team-meeting@6.md | 11 +++++++---- content/inside-rust/infra-team-meeting@7.md | 11 +++++++---- content/inside-rust/intro-rustc-self-profile.md | 11 +++++++---- content/inside-rust/jan-steering-cycle.md | 11 +++++++---- .../jasper-and-wiser-full-members-of-compiler-team.md | 11 +++++++---- content/inside-rust/jsha-rustdoc-member.md | 11 +++++++---- content/inside-rust/jtgeibel-crates-io-co-lead.md | 11 +++++++---- content/inside-rust/jun-steering-cycle.md | 11 +++++++---- .../keeping-secure-with-cargo-audit-0.18.md | 11 +++++++---- .../keyword-generics-progress-report-feb-2023.md | 11 +++++++---- content/inside-rust/keyword-generics.md | 11 +++++++---- content/inside-rust/lang-advisors.md | 11 +++++++---- content/inside-rust/lang-roadmap-2024.md | 11 +++++++---- content/inside-rust/lang-team-apr-update.md | 11 +++++++---- content/inside-rust/lang-team-april-update.md | 11 +++++++---- content/inside-rust/lang-team-aug-update.md | 11 +++++++---- content/inside-rust/lang-team-colead.md | 11 +++++++---- .../lang-team-design-meeting-min-const-generics.md | 11 +++++++---- .../inside-rust/lang-team-design-meeting-update.md | 11 +++++++---- .../inside-rust/lang-team-design-meeting-wf-types.md | 11 +++++++---- content/inside-rust/lang-team-design-meetings@0.md | 11 +++++++---- content/inside-rust/lang-team-design-meetings@1.md | 11 +++++++---- content/inside-rust/lang-team-design-meetings@2.md | 11 +++++++---- content/inside-rust/lang-team-feb-update@0.md | 11 +++++++---- content/inside-rust/lang-team-feb-update@1.md | 11 +++++++---- content/inside-rust/lang-team-mar-update@0.md | 11 +++++++---- content/inside-rust/lang-team-mar-update@1.md | 11 +++++++---- content/inside-rust/lang-team-meetings-rescheduled.md | 11 +++++++---- content/inside-rust/lang-team-membership-update.md | 11 +++++++---- content/inside-rust/lang-team-path-to-membership.md | 11 +++++++---- content/inside-rust/launching-pad-representative.md | 11 +++++++---- .../leadership-council-membership-changes.md | 11 +++++++---- .../leadership-council-repr-selection@0.md | 11 +++++++---- .../leadership-council-repr-selection@1.md | 11 +++++++---- .../leadership-council-repr-selection@2.md | 11 +++++++---- .../leadership-council-repr-selection@3.md | 11 +++++++---- .../leadership-council-repr-selection@4.md | 11 +++++++---- .../leadership-council-repr-selection@5.md | 11 +++++++---- content/inside-rust/leadership-council-update@0.md | 11 +++++++---- content/inside-rust/leadership-council-update@1.md | 11 +++++++---- content/inside-rust/leadership-council-update@2.md | 11 +++++++---- content/inside-rust/leadership-council-update@3.md | 11 +++++++---- content/inside-rust/leadership-council-update@4.md | 11 +++++++---- content/inside-rust/leadership-council-update@5.md | 11 +++++++---- content/inside-rust/leadership-council-update@6.md | 11 +++++++---- content/inside-rust/leadership-initiatives.md | 11 +++++++---- content/inside-rust/libs-aspirations.md | 11 +++++++---- .../inside-rust/libs-contributors-the8472-kodraus.md | 11 +++++++---- content/inside-rust/libs-contributors@0.md | 11 +++++++---- content/inside-rust/libs-contributors@1.md | 11 +++++++---- content/inside-rust/libs-member.md | 11 +++++++---- content/inside-rust/lto-improvements.md | 11 +++++++---- content/inside-rust/mar-steering-cycle.md | 11 +++++++---- content/inside-rust/new-inline-asm.md | 11 +++++++---- .../inside-rust/opening-up-the-core-team-agenda.md | 11 +++++++---- content/inside-rust/pietro-joins-core-team.md | 11 +++++++---- content/inside-rust/planning-meeting-update.md | 11 +++++++---- content/inside-rust/planning-rust-2021.md | 11 +++++++---- content/inside-rust/pnkfelix-compiler-team-co-lead.md | 11 +++++++---- content/inside-rust/polonius-update.md | 11 +++++++---- content/inside-rust/project-director-nominees.md | 11 +++++++---- content/inside-rust/project-director-update@0.md | 11 +++++++---- content/inside-rust/project-director-update@1.md | 11 +++++++---- content/inside-rust/project-director-update@2.md | 11 +++++++---- content/inside-rust/project-director-update@3.md | 11 +++++++---- .../project-goals-2025h1-call-for-proposals.md | 11 +++++++---- .../recent-future-pattern-matching-improvements.md | 11 +++++++---- content/inside-rust/relnotes-interest-group.md | 11 +++++++---- content/inside-rust/rename-rustc-guide.md | 11 +++++++---- content/inside-rust/rotating-compiler-leads.md | 11 +++++++---- content/inside-rust/rtn-call-for-testing.md | 11 +++++++---- .../rust-ci-is-moving-to-github-actions.md | 11 +++++++---- content/inside-rust/rust-leads-summit.md | 6 +++--- content/inside-rust/rustc-dev-guide-overview.md | 11 +++++++---- .../rustc-learning-working-group-introduction.md | 11 +++++++---- .../inside-rust/rustdoc-performance-improvements.md | 11 +++++++---- content/inside-rust/rustup-1.24.0-incident-report.md | 11 +++++++---- content/inside-rust/shrinkmem-rustc-sprint.md | 11 +++++++---- content/inside-rust/source-based-code-coverage.md | 11 +++++++---- content/inside-rust/spec-vision.md | 11 +++++++---- content/inside-rust/stabilizing-async-fn-in-trait.md | 11 +++++++---- content/inside-rust/stabilizing-intra-doc-links.md | 11 +++++++---- content/inside-rust/survey-2021-report.md | 11 +++++++---- content/inside-rust/terminating-rust.md | 11 +++++++---- content/inside-rust/test-infra-dec-2024.md | 11 +++++++---- content/inside-rust/test-infra-jan-feb-2025.md | 11 +++++++---- content/inside-rust/test-infra-nov-2024.md | 11 +++++++---- content/inside-rust/test-infra-oct-2024-2.md | 11 +++++++---- content/inside-rust/test-infra-oct-2024.md | 11 +++++++---- .../this-development-cycle-in-cargo-1-76.md | 11 +++++++---- .../this-development-cycle-in-cargo-1-77.md | 11 +++++++---- .../this-development-cycle-in-cargo-1.78.md | 11 +++++++---- .../this-development-cycle-in-cargo-1.79.md | 11 +++++++---- .../this-development-cycle-in-cargo-1.80.md | 11 +++++++---- .../this-development-cycle-in-cargo-1.81.md | 11 +++++++---- .../this-development-cycle-in-cargo-1.82.md | 11 +++++++---- .../this-development-cycle-in-cargo-1.83.md | 11 +++++++---- .../this-development-cycle-in-cargo-1.84.md | 11 +++++++---- .../this-development-cycle-in-cargo-1.85.md | 11 +++++++---- .../this-development-cycle-in-cargo-1.86.md | 11 +++++++---- .../inside-rust/trademark-policy-draft-feedback.md | 6 +++--- .../inside-rust/trait-system-refactor-initiative@0.md | 11 +++++++---- .../inside-rust/trait-system-refactor-initiative@1.md | 11 +++++++---- .../inside-rust/trait-system-refactor-initiative@2.md | 11 +++++++---- content/inside-rust/traits-sprint-1.md | 11 +++++++---- content/inside-rust/traits-sprint-2.md | 11 +++++++---- content/inside-rust/traits-sprint-3.md | 11 +++++++---- content/inside-rust/twir-new-lead.md | 11 +++++++---- content/inside-rust/types-team-leadership.md | 11 +++++++---- .../upcoming-compiler-team-design-meeting@0.md | 11 +++++++---- .../upcoming-compiler-team-design-meeting@1.md | 11 +++++++---- .../upcoming-compiler-team-design-meetings@0.md | 11 +++++++---- .../upcoming-compiler-team-design-meetings@1.md | 11 +++++++---- .../upcoming-compiler-team-design-meetings@2.md | 11 +++++++---- .../upcoming-compiler-team-design-meetings@3.md | 11 +++++++---- .../upcoming-compiler-team-design-meetings@4.md | 11 +++++++---- .../update-on-the-github-actions-evaluation.md | 11 +++++++---- content/inside-rust/website-retrospective.md | 11 +++++++---- content/inside-rust/welcome-tc-to-the-lang-team.md | 11 +++++++---- content/inside-rust/wg-learning-update.md | 11 +++++++---- content/inside-rust/windows-notification-group.md | 11 +++++++---- content/introducing-leadership-council.md | 11 +++++++---- content/lang-ergonomics.md | 6 +++--- content/laying-the-foundation-for-rusts-future.md | 6 +++--- content/libz-blitz.md | 6 +++--- content/lock-poisoning-survey.md | 11 +++++++---- content/malicious-crate-rustdecimal.md | 6 +++--- content/mdbook-security-advisory.md | 6 +++--- .../new-years-rust-a-call-for-community-blogposts.md | 6 +++--- content/nll-by-default.md | 11 +++++++---- content/nll-hard-errors.md | 6 +++--- content/parallel-rustc.md | 11 +++++++---- content/project-goals-nov-update.md | 11 +++++++---- content/project-goals-oct-update.md | 11 +++++++---- content/reducing-support-for-32-bit-apple-targets.md | 6 +++--- content/regex-1.9.md | 11 +++++++---- content/regression-labels.md | 11 +++++++---- content/roadmap@0.md | 6 +++--- content/roadmap@1.md | 6 +++--- content/roadmap@2.md | 6 +++--- content/rust-2024-beta.md | 11 +++++++---- content/rust-analyzer-joins-rust-org.md | 6 +++--- content/rust-at-one-year.md | 6 +++--- content/rust-at-two-years.md | 6 +++--- content/rust-in-2017.md | 6 +++--- content/rust-survey-2020.md | 6 +++--- content/rust-unconference.md | 6 +++--- content/rustconf-cfp.md | 6 +++--- content/rustfmt-supports-let-else-statements.md | 11 +++++++---- content/rustup.md | 6 +++--- content/security-advisory-for-rustdoc.md | 6 +++--- content/six-years-of-rust.md | 6 +++--- content/sparse-registry-testing.md | 11 +++++++---- content/survey-launch@0.md | 6 +++--- content/survey-launch@1.md | 6 +++--- content/survey-launch@2.md | 6 +++--- content/survey-launch@3.md | 6 +++--- content/survey-launch@4.md | 6 +++--- content/survey@0.md | 6 +++--- content/survey@1.md | 6 +++--- content/survey@2.md | 6 +++--- content/the-foundation-conversation.md | 6 +++--- content/trademark-update.md | 6 +++--- content/traits.md | 6 +++--- content/types-announcement.md | 11 +++++++---- content/types-team-update.md | 11 +++++++---- content/upcoming-docsrs-changes.md | 6 +++--- content/updates-to-rusts-wasi-targets.md | 6 +++--- content/vision-doc-survey.md | 11 +++++++---- content/wasip2-tier-2.md | 6 +++--- ...embly-targets-change-in-default-target-features.md | 11 +++++++---- content/wg-prio-call-for-contributors.md | 6 +++--- content/what-is-rust-2018.md | 6 +++--- 597 files changed, 3331 insertions(+), 2116 deletions(-) diff --git a/content/1.0-Timeline.md b/content/1.0-Timeline.md index 97e613572..86fb87464 100644 --- a/content/1.0-Timeline.md +++ b/content/1.0-Timeline.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2014-12-12 +path = "2014/12/12/1.0-Timeline" title = "Rust 1.0: Scheduling the trains" -author = "Aaron Turon" +authors = ["Aaron Turon"] description = "As 2014 is drawing to a close, it's time to begin the Rust 1.0 release cycle!" +aliases = ["2014/12/12/1.0-Timeline.html"] +++ As 2014 is drawing to a close, it's time to begin the Rust 1.0 release cycle! diff --git a/content/2023-Rust-Annual-Survey-2023-results.md b/content/2023-Rust-Annual-Survey-2023-results.md index d83d5dbe7..5d73cc1b5 100644 --- a/content/2023-Rust-Annual-Survey-2023-results.md +++ b/content/2023-Rust-Annual-Survey-2023-results.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-02-19 +path = "2024/02/19/2023-Rust-Annual-Survey-2023-results" title = "2023 Annual Rust Survey Results" -author = "The Rust Survey Team" +authors = ["The Rust Survey Team"] +aliases = ["2024/02/19/2023-Rust-Annual-Survey-2023-results.html"] +++ Hello, Rustaceans! diff --git a/content/2024-Edition-CFP.md b/content/2024-Edition-CFP.md index 7b45ceb88..0da1bce71 100644 --- a/content/2024-Edition-CFP.md +++ b/content/2024-Edition-CFP.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2023-12-15 +path = "2023/12/15/2024-Edition-CFP" title = "A Call for Proposals for the Rust 2024 Edition" -author = "Ben Striegel on behalf of the Edition 2024 Project Group" +authors = ["Ben Striegel on behalf of the Edition 2024 Project Group"] +aliases = ["2023/12/15/2024-Edition-CFP.html"] +++ The year 2024 is soon to be upon us, and as long-time Rust aficionados know, diff --git a/content/2024-State-Of-Rust-Survey-results.md b/content/2024-State-Of-Rust-Survey-results.md index fe7644c8f..e9071d8ca 100644 --- a/content/2024-State-Of-Rust-Survey-results.md +++ b/content/2024-State-Of-Rust-Survey-results.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2025-02-13 +path = "2025/02/13/2024-State-Of-Rust-Survey-results" title = "2024 State of Rust Survey Results" -author = "The Rust Survey Team" +authors = ["The Rust Survey Team"] +aliases = ["2025/02/13/2024-State-Of-Rust-Survey-results.html"] +++ Hello, Rustaceans! diff --git a/content/4-Years-Of-Rust.md b/content/4-Years-Of-Rust.md index 72c69fb5c..652d0a87c 100644 --- a/content/4-Years-Of-Rust.md +++ b/content/4-Years-Of-Rust.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-05-15 +path = "2019/05/15/4-Years-Of-Rust" title = "4 years of Rust" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2019/05/15/4-Years-Of-Rust.html"] +++ On May 15th, 2015, [Rust][rust-release] was released to the world! After 5 years of open development (and a couple of years of sketching before that), we finally hit the button on making the attempt to create a new systems programming language a serious effort! diff --git a/content/A-call-for-blogs-2020.md b/content/A-call-for-blogs-2020.md index 931495ff7..552b5d1a5 100644 --- a/content/A-call-for-blogs-2020.md +++ b/content/A-call-for-blogs-2020.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-10-29 +path = "2019/10/29/A-call-for-blogs-2020" title = "A call for blogs 2020" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2019/10/29/A-call-for-blogs-2020.html"] +++ What will Rust development look like in 2020? That's partially up to you! Here's how it works: diff --git a/content/Async-await-hits-beta.md b/content/Async-await-hits-beta.md index 534e73b5b..7aeafa4c2 100644 --- a/content/Async-await-hits-beta.md +++ b/content/Async-await-hits-beta.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-09-30 +path = "2019/09/30/Async-await-hits-beta" title = "Async-await hits beta!" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] +aliases = ["2019/09/30/Async-await-hits-beta.html"] +++ Big news! As of this writing, **syntactic support for async-await is diff --git a/content/Async-await-stable.md b/content/Async-await-stable.md index daadbe0a5..a9290fb38 100644 --- a/content/Async-await-stable.md +++ b/content/Async-await-stable.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-11-07 +path = "2019/11/07/Async-await-stable" title = "Async-await on stable Rust!" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] +aliases = ["2019/11/07/Async-await-stable.html"] +++ **On this coming Thursday, November 7, async-await syntax hits stable diff --git a/content/Cargo.md b/content/Cargo.md index 9a1dd5d72..daffd465b 100644 --- a/content/Cargo.md +++ b/content/Cargo.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2014-11-20 +path = "2014/11/20/Cargo" title = "Cargo: Rust's community crate host" -author = "Alex Crichton" +authors = ["Alex Crichton"] description = "Today it is my pleasure to announce that crates.io is online and ready for action." +aliases = ["2014/11/20/Cargo.html"] +++ Today it is my pleasure to announce that [crates.io](https://crates.io/) is diff --git a/content/Clippy-deprecating-feature-cargo-clippy.md b/content/Clippy-deprecating-feature-cargo-clippy.md index da747ca2e..330a4992c 100644 --- a/content/Clippy-deprecating-feature-cargo-clippy.md +++ b/content/Clippy-deprecating-feature-cargo-clippy.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-02-28 +path = "2024/02/28/Clippy-deprecating-feature-cargo-clippy" title = 'Clippy: Deprecating `feature = "cargo-clippy"`' -author = "The Clippy Team" +authors = ["The Clippy Team"] +aliases = ["2024/02/28/Clippy-deprecating-feature-cargo-clippy.html"] +++ Since Clippy [`v0.0.97`] and before it was shipped with `rustup`, Clippy diff --git a/content/Core-Team.md b/content/Core-Team.md index 59271b140..aaa292d03 100644 --- a/content/Core-Team.md +++ b/content/Core-Team.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2014-12-12 +path = "2014/12/12/Core-Team" title = "Yehuda Katz and Steve Klabnik are joining the Rust Core Team" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "I'm pleased to announce that Yehuda Katz and Steve Klabnik are joining the Rust core team." +aliases = ["2014/12/12/Core-Team.html"] +++ I'm pleased to announce that Yehuda Katz and Steve Klabnik are joining diff --git a/content/Core-team-changes.md b/content/Core-team-changes.md index 03b77abe6..458e07bc5 100644 --- a/content/Core-team-changes.md +++ b/content/Core-team-changes.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-02-22 +path = "2019/02/22/Core-team-changes" title = "Changes in the core team" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2019/02/22/Core-team-changes.html"] +++ Just a quick update: You may have noticed that, in the last month or diff --git a/content/Core-team-membership-updates.md b/content/Core-team-membership-updates.md index d62ba995a..8072775f9 100644 --- a/content/Core-team-membership-updates.md +++ b/content/Core-team-membership-updates.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2021-09-27 +path = "2021/09/27/Core-team-membership-updates" title = "Core team membership updates" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2021/09/27/Core-team-membership-updates.html"] +++ The Rust Core team is excited to announce the first of a series of changes to diff --git a/content/Enums-match-mutation-and-moves.md b/content/Enums-match-mutation-and-moves.md index f8da05510..51830769e 100644 --- a/content/Enums-match-mutation-and-moves.md +++ b/content/Enums-match-mutation-and-moves.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2015-04-17 +path = "2015/04/17/Enums-match-mutation-and-moves" title = "Mixing matching, mutation, and moves in Rust" -author = "Felix S. Klock II" +authors = ["Felix S. Klock II"] description = "A tour of matching and enums in Rust." +aliases = ["2015/04/17/Enums-match-mutation-and-moves.html"] +++ One of the primary goals of the Rust project is to enable safe systems diff --git a/content/Fearless-Concurrency-In-Firefox-Quantum.md b/content/Fearless-Concurrency-In-Firefox-Quantum.md index a3c6b4715..3509006b9 100644 --- a/content/Fearless-Concurrency-In-Firefox-Quantum.md +++ b/content/Fearless-Concurrency-In-Firefox-Quantum.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2017-11-14 +path = "2017/11/14/Fearless-Concurrency-In-Firefox-Quantum" title = "Fearless Concurrency in Firefox Quantum" -author = "Manish Goregaokar" +authors = ["Manish Goregaokar"] +aliases = ["2017/11/14/Fearless-Concurrency-In-Firefox-Quantum.html"] +++ These days, Rust is used for [all kinds of things][friends]. But its founding application was diff --git a/content/Fearless-Concurrency.md b/content/Fearless-Concurrency.md index 23600a2cb..e469e4fbd 100644 --- a/content/Fearless-Concurrency.md +++ b/content/Fearless-Concurrency.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2015-04-10 +path = "2015/04/10/Fearless-Concurrency" title = "Fearless Concurrency with Rust" -author = "Aaron Turon" +authors = ["Aaron Turon"] description = "Rust's vision for concurrency" +aliases = ["2015/04/10/Fearless-Concurrency.html"] +++ The Rust project was initiated to solve two thorny problems: diff --git a/content/Final-1.0-timeline.md b/content/Final-1.0-timeline.md index e88dc7676..19caa7b85 100644 --- a/content/Final-1.0-timeline.md +++ b/content/Final-1.0-timeline.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2015-02-13 +path = "2015/02/13/Final-1.0-timeline" title = "Rust 1.0: status report and final timeline" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2015/02/13/Final-1.0-timeline.html"] +++ It's been five weeks since we released Rust 1.0-alpha! Before this diff --git a/content/GATs-stabilization-push.md b/content/GATs-stabilization-push.md index 7a3805dbe..3183ced4f 100644 --- a/content/GATs-stabilization-push.md +++ b/content/GATs-stabilization-push.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-08-03 +path = "2021/08/03/GATs-stabilization-push" title = "The push for GATs stabilization" -author = "Jack Huey" -team = "the Traits Working Group " +authors = ["Jack Huey"] +aliases = ["2021/08/03/GATs-stabilization-push.html"] + +[extra] +team = "the Traits Working Group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#wg-traits" +++ # The push for GATs stabilization diff --git a/content/Increasing-Apple-Version-Requirements.md b/content/Increasing-Apple-Version-Requirements.md index cd080ae9c..da9f9efb2 100644 --- a/content/Increasing-Apple-Version-Requirements.md +++ b/content/Increasing-Apple-Version-Requirements.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2023-09-25 +path = "2023/09/25/Increasing-Apple-Version-Requirements" title = "Increasing the minimum supported Apple platform versions" -author = "BlackHoleFox" +authors = ["BlackHoleFox"] description = "Modernizing and improving Apple platform support for Rust" +aliases = ["2023/09/25/Increasing-Apple-Version-Requirements.html"] +++ As of Rust 1.74 (to be released on November 16th, 2023), the minimum version of Apple's platforms (iOS, macOS, and tvOS) that the Rust toolchain supports will be [increased](https://github.com/rust-lang/rust/pull/104385) to newer baselines. These changes affect both the Rust compiler itself (`rustc`), other host tooling, and most importantly, the standard library and any binaries produced that use it. With these changes in place, any binaries produced will stop loading on older versions or exhibit other, unspecified, behavior. diff --git a/content/Increasing-Rusts-Reach-2018.md b/content/Increasing-Rusts-Reach-2018.md index eac87cef2..6f026cf54 100644 --- a/content/Increasing-Rusts-Reach-2018.md +++ b/content/Increasing-Rusts-Reach-2018.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-04-02 +path = "2018/04/02/Increasing-Rusts-Reach-2018" title = "Increasing Rust’s Reach 2018" -author = "Ashley Williams" +authors = ["Ashley Williams"] +aliases = ["2018/04/02/Increasing-Rusts-Reach-2018.html"] +++ The Rust team is happy to announce that we're running our Increasing Rust's Reach diff --git a/content/Increasing-Rusts-Reach.md b/content/Increasing-Rusts-Reach.md index 2c1e446fe..a8aa48352 100644 --- a/content/Increasing-Rusts-Reach.md +++ b/content/Increasing-Rusts-Reach.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2017-06-27 +path = "2017/06/27/Increasing-Rusts-Reach" title = "Increasing Rust’s Reach" -author = "Carol Nichols" +authors = ["Carol Nichols"] +aliases = ["2017/06/27/Increasing-Rusts-Reach.html"] +++ **EDIT: We've heard that Google Forms is not easily accessible in all countries; if that applies to you, please find the [application's questions in this text file](../../../images/2017-06-Increasing-Rusts-Reach/application.txt) and send the answers via email to carol.nichols@gmail.com.** diff --git a/content/Increasing-glibc-kernel-requirements.md b/content/Increasing-glibc-kernel-requirements.md index 6d03e1a69..6b73c5140 100644 --- a/content/Increasing-glibc-kernel-requirements.md +++ b/content/Increasing-glibc-kernel-requirements.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-08-01 +path = "2022/08/01/Increasing-glibc-kernel-requirements" title = "Increasing the glibc and Linux kernel requirements" -author = "Nikita Popov" +authors = ["Nikita Popov"] +aliases = ["2022/08/01/Increasing-glibc-kernel-requirements.html"] +++ The minimum requirements for Rust toolchains targeting Linux will [increase][PR] with the diff --git a/content/MIR.md b/content/MIR.md index 52574d30c..312b7122d 100644 --- a/content/MIR.md +++ b/content/MIR.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2016-04-19 +path = "2016/04/19/MIR" title = "Introducing MIR" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "The shift to use MIR in the compiler should unlock many exciting improvements." +aliases = ["2016/04/19/MIR.html"] +++ We are in the final stages of a grand transformation on the Rust diff --git a/content/Mozilla-IRC-Sunset-and-the-Rust-Channel.md b/content/Mozilla-IRC-Sunset-and-the-Rust-Channel.md index a87aa564d..8689b1194 100644 --- a/content/Mozilla-IRC-Sunset-and-the-Rust-Channel.md +++ b/content/Mozilla-IRC-Sunset-and-the-Rust-Channel.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-04-26 +path = "2019/04/26/Mozilla-IRC-Sunset-and-the-Rust-Channel" title = "Mozilla IRC Sunset and the Rust Channel" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2019/04/26/Mozilla-IRC-Sunset-and-the-Rust-Channel.html"] +++ The Rust community has had a presence on Mozilla’s IRC network almost since Rust’s inception. Over time, the single channel grew into a set of pretty active channels where folks would come to ask Rust questions, coordinate work on Rust itself, and just in general chat about Rust. diff --git a/content/Next-steps-for-the-foundation-conversation.md b/content/Next-steps-for-the-foundation-conversation.md index c17f87a51..2854a83c2 100644 --- a/content/Next-steps-for-the-foundation-conversation.md +++ b/content/Next-steps-for-the-foundation-conversation.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-12-14 +path = "2020/12/14/Next-steps-for-the-foundation-conversation" title = "Next steps for the Foundation Conversation" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2020/12/14/Next-steps-for-the-foundation-conversation.html"] +++ Last week we kicked off the [Foundation Conversation](https://blog.rust-lang.org/2020/12/07/the-foundation-conversation.html), a week-long period of Q&A forums and live broadcasts with the goal of explaining our vision for the Foundation and finding out what sorts of questions people had. We used those questions to help build a [draft Foundation FAQ](https://github.com/rust-lang/foundation-faq-2020/blob/main/FAQ.md), and if you’ve not seen it yet, you should definitely take a look -- it’s chock full of good information. Thanks to everyone for asking such great questions! diff --git a/content/Next-year.md b/content/Next-year.md index b289babc6..dd61ef91c 100644 --- a/content/Next-year.md +++ b/content/Next-year.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2015-08-14 +path = "2015/08/14/Next-year" title = "Rust in 2016" -author = "Nicholas Matsakis and Aaron Turon" +authors = ["Nicholas Matsakis and Aaron Turon"] description = "Our vision for Rust's next year" +aliases = ["2015/08/14/Next-year.html"] +++ This week marks three months since Rust 1.0 was released. As we're starting to diff --git a/content/OSPP-2024.md b/content/OSPP-2024.md index 7ce2923e5..286d0cd83 100644 --- a/content/OSPP-2024.md +++ b/content/OSPP-2024.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-05-07 +path = "2024/05/07/OSPP-2024" title = "Rust participates in OSPP 2024" -author = "Amanieu d'Antras, Jack Huey, and Jakub Beránek" +authors = ["Amanieu d'Antras, Jack Huey, and Jakub Beránek"] +aliases = ["2024/05/07/OSPP-2024.html"] +++ Similar to our [previous][gsoc-announcement] [announcements][gsoc-project-announcement] of the Rust Project's participation in Google Summer of Code (GSoC), we are now announcing our participation in [Open Source Promotion Plan (OSPP) 2024][ospp]. diff --git a/content/Planning-2021-Roadmap.md b/content/Planning-2021-Roadmap.md index 3d6274fd8..5467027be 100644 --- a/content/Planning-2021-Roadmap.md +++ b/content/Planning-2021-Roadmap.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-09-03 +path = "2020/09/03/Planning-2021-Roadmap" title = "Planning the 2021 Roadmap" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2020/09/03/Planning-2021-Roadmap.html"] +++ The core team is beginning to think about the 2021 Roadmap, and we want to hear from the community. We’re going to be running two parallel efforts over the next several weeks: the 2020 Rust Survey, to be announced next week, and a call for blog posts. diff --git a/content/Procedural-Macros-in-Rust-2018.md b/content/Procedural-Macros-in-Rust-2018.md index 243b57f71..5fa9000b8 100644 --- a/content/Procedural-Macros-in-Rust-2018.md +++ b/content/Procedural-Macros-in-Rust-2018.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-12-21 +path = "2018/12/21/Procedural-Macros-in-Rust-2018" title = "Procedural Macros in Rust 2018" -author = "Alex Crichton" +authors = ["Alex Crichton"] +aliases = ["2018/12/21/Procedural-Macros-in-Rust-2018.html"] +++ Perhaps my favorite feature in the Rust 2018 edition is [procedural macros]. diff --git a/content/Project-Goals-2025-March-Update.md b/content/Project-Goals-2025-March-Update.md index 8df46bd92..2ff17b9f6 100644 --- a/content/Project-Goals-2025-March-Update.md +++ b/content/Project-Goals-2025-March-Update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-04-08 +path = "2025/04/08/Project-Goals-2025-March-Update" title = "March Project Goals Update" -author = "Rémy Rakic" -team = "Goals Team " +authors = ["Rémy Rakic"] +aliases = ["2025/04/08/Project-Goals-2025-March-Update.html"] + +[extra] +team = "Goals Team" +team_url = "https://www.rust-lang.org/governance/teams/goals" +++ The Rust project is currently working towards a [slate of 40 project goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html), with 3 of them designated as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html#flagship-goals). This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated [tracking issue on the rust-project-goals repository](https://github.com/rust-lang/rust-project-goals/issues?q=is%3Aissue%20state%3Aopen%20label%3AC-tracking-issue). diff --git a/content/Project-Goals-Dec-Update.md b/content/Project-Goals-Dec-Update.md index 3479b220e..031f9d4ed 100644 --- a/content/Project-Goals-Dec-Update.md +++ b/content/Project-Goals-Dec-Update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-01-23 +path = "2025/01/23/Project-Goals-Dec-Update" title = "December Project Goals Update" -author = "David Wood and Niko Matsakis" -team = "Leadership Council " +authors = ["David Wood and Niko Matsakis"] +aliases = ["2025/01/23/Project-Goals-Dec-Update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Over the last six months, the Rust project has been working towards a [slate of 26 project diff --git a/content/Project-Goals-Feb-Update.md b/content/Project-Goals-Feb-Update.md index d5323d7b2..9f8b9717a 100644 --- a/content/Project-Goals-Feb-Update.md +++ b/content/Project-Goals-Feb-Update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-03-03 +path = "2025/03/03/Project-Goals-Feb-Update" title = "February Project Goals Update" -author = "Rémy Rakic, Niko Matsakis, Santiago Pastorino" -team = "Goals Team " +authors = ["Rémy Rakic, Niko Matsakis, Santiago Pastorino"] +aliases = ["2025/03/03/Project-Goals-Feb-Update.html"] + +[extra] +team = "Goals Team" +team_url = "https://www.rust-lang.org/governance/teams/goals" +++ This is the first Project Goals update for the new 2025h1 period. For the first 6 months of 2025, the Rust project will work towards a [slate of 39 project goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html), with 3 of them designed as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html#flagship-goals). This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated [tracking issue on the rust-project-goals repository](https://github.com/rust-lang/rust-project-goals/issues?q=is%3Aissue%20state%3Aopen%20label%3AC-tracking-issue). diff --git a/content/Project-Goals-Sep-Update.md b/content/Project-Goals-Sep-Update.md index c1c0dcb74..669c721f9 100644 --- a/content/Project-Goals-Sep-Update.md +++ b/content/Project-Goals-Sep-Update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-09-23 +path = "2024/09/23/Project-Goals-Sep-Update" title = "September Project Goals Update" -author = "Niko Matsakis" -team = "Leadership Council " +authors = ["Niko Matsakis"] +aliases = ["2024/09/23/Project-Goals-Sep-Update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ The Rust project is currently working towards a [slate of 26 project goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html), with 3 of them designed as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html#flagship-goals). This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated [tracking issue on the rust-project-goals repository](https://github.com/rust-lang/rust-project-goals/milestone/2). diff --git a/content/Project-goals.md b/content/Project-goals.md index 713b1ddf6..b0a3b8bab 100644 --- a/content/Project-goals.md +++ b/content/Project-goals.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-08-12 +path = "2024/08/12/Project-goals" title = "Rust Project goals for 2024" -author = "Niko Matsakis" -team = "Leadership Council " +authors = ["Niko Matsakis"] +aliases = ["2024/08/12/Project-goals.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ With the merging of [RFC #3672][], the Rust project has selected a **slate of 26 Project Goals** for the second half of 2024 (2024H2). This is our first time running an [experimental new roadmapping process][RFC #3614]; assuming all goes well, we expect to be running the process roughly every six months. Of these goals, we have designated three of them as our **flagship goals**, representing our most ambitious and most impactful efforts: (1) finalize preparations for the Rust 2024 edition; (2) bring the Async Rust experience closer to parity with sync Rust; and (3) resolve the biggest blockers to the Linux kernel building on stable Rust. As the year progresses we'll be posting regular updates on these 3 flagship goals along with the 23 others. diff --git a/content/RLS-deprecation.md b/content/RLS-deprecation.md index 6f3fae720..f4e40fd83 100644 --- a/content/RLS-deprecation.md +++ b/content/RLS-deprecation.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-07-01 +path = "2022/07/01/RLS-deprecation" title = "RLS Deprecation" -author = "The Rust Dev Tools Team" +authors = ["The Rust Dev Tools Team"] +aliases = ["2022/07/01/RLS-deprecation.html"] +++ The Rust Language Server (RLS) is being deprecated in favor of [rust-analyzer](https://rust-analyzer.github.io/). diff --git a/content/Rust-1.0-alpha.md b/content/Rust-1.0-alpha.md index f6e32c15e..85c06398c 100644 --- a/content/Rust-1.0-alpha.md +++ b/content/Rust-1.0-alpha.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2015-01-09 +path = "2015/01/09/Rust-1.0-alpha" title = "Announcing Rust 1.0 Alpha" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2015/01/09/Rust-1.0-alpha.html"] +++ Today, we're excited to [release](https://www.rust-lang.org/install.html) the alpha version of Rust 1.0, a systems programming language with a focus on safety, performance and concurrency. diff --git a/content/Rust-1.0-alpha2.md b/content/Rust-1.0-alpha2.md index 8f1ea635c..9c8e40bc5 100644 --- a/content/Rust-1.0-alpha2.md +++ b/content/Rust-1.0-alpha2.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2015-02-20 +path = "2015/02/20/Rust-1.0-alpha2" title = "Announcing Rust 1.0.0.alpha.2" -author = "Steve Klabnik" +authors = ["Steve Klabnik"] description = "Rust 1.0.0.alpha.2 has been released." +aliases = ["2015/02/20/Rust-1.0-alpha2.html"] +++ Today, we are happy to announce the release of Rust 1.0.0.alpha.2! Rust is a diff --git a/content/Rust-1.0-beta.md b/content/Rust-1.0-beta.md index 53622d93d..90f2d768a 100644 --- a/content/Rust-1.0-beta.md +++ b/content/Rust-1.0-beta.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2015-04-03 +path = "2015/04/03/Rust-1.0-beta" title = "Announcing Rust 1.0 Beta" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2015/04/03/Rust-1.0-beta.html"] +++ Today we are excited to announce the [release of Rust 1.0 beta][ru]! diff --git a/content/Rust-1.0@0.md b/content/Rust-1.0@0.md index 6fff70359..2b37a8688 100644 --- a/content/Rust-1.0@0.md +++ b/content/Rust-1.0@0.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2014-09-15 +path = "2014/09/15/Rust-1.0" title = "Road to Rust 1.0" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Rust 1.0 is on its way! We have nailed down a concrete list of features and are hard at work on implementing them." +aliases = ["2014/09/15/Rust-1.0.html"] +++ Rust 1.0 is on its way! We have nailed down a concrete list of diff --git a/content/Rust-1.0@1.md b/content/Rust-1.0@1.md index 2d55fe50d..88316030f 100644 --- a/content/Rust-1.0@1.md +++ b/content/Rust-1.0@1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2015-05-15 +path = "2015/05/15/Rust-1.0" title = "Announcing Rust 1.0" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2015/05/15/Rust-1.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.1.md b/content/Rust-1.1.md index a3c5f9fe1..db4bb8294 100644 --- a/content/Rust-1.1.md +++ b/content/Rust-1.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2015-06-25 +path = "2015/06/25/Rust-1.1" title = "Rust 1.1 stable, the Community Subteam, and RustCamp" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2015/06/25/Rust-1.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.10.md b/content/Rust-1.10.md index 4d22961a9..1471b54f3 100644 --- a/content/Rust-1.10.md +++ b/content/Rust-1.10.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2016-07-07 +path = "2016/07/07/Rust-1.10" title = "Announcing Rust 1.10" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2016/07/07/Rust-1.10.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.11.md b/content/Rust-1.11.md index bd2aa4dc5..e3ec6f2fd 100644 --- a/content/Rust-1.11.md +++ b/content/Rust-1.11.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2016-08-18 +path = "2016/08/18/Rust-1.11" title = "Announcing Rust 1.11" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2016/08/18/Rust-1.11.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.12.1.md b/content/Rust-1.12.1.md index 68f109ec8..6be64395a 100644 --- a/content/Rust-1.12.1.md +++ b/content/Rust-1.12.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2016-10-20 +path = "2016/10/20/Rust-1.12.1" title = "Announcing Rust 1.12.1" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2016/10/20/Rust-1.12.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.12.md b/content/Rust-1.12.md index 1d3b20df2..0272935a2 100644 --- a/content/Rust-1.12.md +++ b/content/Rust-1.12.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2016-09-29 +path = "2016/09/29/Rust-1.12" title = "Announcing Rust 1.12" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2016/09/29/Rust-1.12.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.13.md b/content/Rust-1.13.md index fd9739675..fee59f9d9 100644 --- a/content/Rust-1.13.md +++ b/content/Rust-1.13.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2016-11-10 +path = "2016/11/10/Rust-1.13" title = "Announcing Rust 1.13" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2016/11/10/Rust-1.13.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.14.md b/content/Rust-1.14.md index 02141011f..fac2135f1 100644 --- a/content/Rust-1.14.md +++ b/content/Rust-1.14.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2016-12-22 +path = "2016/12/22/Rust-1.14" title = "Announcing Rust 1.14" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2016/12/22/Rust-1.14.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.15.1.md b/content/Rust-1.15.1.md index 80aeef0bf..8dd18f7f3 100644 --- a/content/Rust-1.15.1.md +++ b/content/Rust-1.15.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2017-02-09 +path = "2017/02/09/Rust-1.15.1" title = "Announcing Rust 1.15.1" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2017/02/09/Rust-1.15.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.15.md b/content/Rust-1.15.md index 23fd6bce8..2a6f6a0fc 100644 --- a/content/Rust-1.15.md +++ b/content/Rust-1.15.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2017-02-02 +path = "2017/02/02/Rust-1.15" title = "Announcing Rust 1.15" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2017/02/02/Rust-1.15.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.16.md b/content/Rust-1.16.md index b48fa9e6f..e8a3cb174 100644 --- a/content/Rust-1.16.md +++ b/content/Rust-1.16.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2017-03-16 +path = "2017/03/16/Rust-1.16" title = "Announcing Rust 1.16" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2017/03/16/Rust-1.16.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.17.md b/content/Rust-1.17.md index cb48f5f4b..e78afb486 100644 --- a/content/Rust-1.17.md +++ b/content/Rust-1.17.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2017-04-27 +path = "2017/04/27/Rust-1.17" title = "Announcing Rust 1.17" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2017/04/27/Rust-1.17.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.18.md b/content/Rust-1.18.md index a58dce5cf..8afd1cca8 100644 --- a/content/Rust-1.18.md +++ b/content/Rust-1.18.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2017-06-08 +path = "2017/06/08/Rust-1.18" title = "Announcing Rust 1.18" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2017/06/08/Rust-1.18.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.19.md b/content/Rust-1.19.md index 125936c2c..67ca61196 100644 --- a/content/Rust-1.19.md +++ b/content/Rust-1.19.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2017-07-20 +path = "2017/07/20/Rust-1.19" title = "Announcing Rust 1.19" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2017/07/20/Rust-1.19.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.2.md b/content/Rust-1.2.md index 30dc12e4a..557d54947 100644 --- a/content/Rust-1.2.md +++ b/content/Rust-1.2.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2015-08-06 +path = "2015/08/06/Rust-1.2" title = "Announcing Rust 1.2" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2015/08/06/Rust-1.2.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.20.md b/content/Rust-1.20.md index 468e4c710..2236ab1c9 100644 --- a/content/Rust-1.20.md +++ b/content/Rust-1.20.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2017-08-31 +path = "2017/08/31/Rust-1.20" title = "Announcing Rust 1.20" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2017/08/31/Rust-1.20.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.21.md b/content/Rust-1.21.md index eb6ec3014..08c721498 100644 --- a/content/Rust-1.21.md +++ b/content/Rust-1.21.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2017-10-12 +path = "2017/10/12/Rust-1.21" title = "Announcing Rust 1.21" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2017/10/12/Rust-1.21.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.22.md b/content/Rust-1.22.md index 1ba2ec3ac..46d6a6888 100644 --- a/content/Rust-1.22.md +++ b/content/Rust-1.22.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2017-11-22 +path = "2017/11/22/Rust-1.22" title = "Announcing Rust 1.22 (and 1.22.1)" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2017/11/22/Rust-1.22.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.23.md b/content/Rust-1.23.md index c9e2a9baf..888c22739 100644 --- a/content/Rust-1.23.md +++ b/content/Rust-1.23.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-01-04 +path = "2018/01/04/Rust-1.23" title = "Announcing Rust 1.23" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/01/04/Rust-1.23.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.24.1.md b/content/Rust-1.24.1.md index 7ac16ff74..a3004930e 100644 --- a/content/Rust-1.24.1.md +++ b/content/Rust-1.24.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-03-01 +path = "2018/03/01/Rust-1.24.1" title = "Announcing Rust 1.24.1" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/03/01/Rust-1.24.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.24.md b/content/Rust-1.24.md index b2bb8bd15..9449dd3b1 100644 --- a/content/Rust-1.24.md +++ b/content/Rust-1.24.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-02-15 +path = "2018/02/15/Rust-1.24" title = "Announcing Rust 1.24" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/02/15/Rust-1.24.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.25.md b/content/Rust-1.25.md index daab60edf..d464c1ba8 100644 --- a/content/Rust-1.25.md +++ b/content/Rust-1.25.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-03-29 +path = "2018/03/29/Rust-1.25" title = "Announcing Rust 1.25" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/03/29/Rust-1.25.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.26.1.md b/content/Rust-1.26.1.md index 26e5ace23..898029162 100644 --- a/content/Rust-1.26.1.md +++ b/content/Rust-1.26.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-05-29 +path = "2018/05/29/Rust-1.26.1" title = "Announcing Rust 1.26.1" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/05/29/Rust-1.26.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.26.2.md b/content/Rust-1.26.2.md index dd9d9fe63..61729c7ca 100644 --- a/content/Rust-1.26.2.md +++ b/content/Rust-1.26.2.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-06-05 +path = "2018/06/05/Rust-1.26.2" title = "Announcing Rust 1.26.2" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/06/05/Rust-1.26.2.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.26.md b/content/Rust-1.26.md index 2b23321ac..0f1deb737 100644 --- a/content/Rust-1.26.md +++ b/content/Rust-1.26.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-05-10 +path = "2018/05/10/Rust-1.26" title = "Announcing Rust 1.26" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/05/10/Rust-1.26.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.27.1.md b/content/Rust-1.27.1.md index 680863d89..f7087bc37 100644 --- a/content/Rust-1.27.1.md +++ b/content/Rust-1.27.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-07-10 +path = "2018/07/10/Rust-1.27.1" title = "Announcing Rust 1.27.1" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/07/10/Rust-1.27.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.27.2.md b/content/Rust-1.27.2.md index df9abccf6..94f103f2e 100644 --- a/content/Rust-1.27.2.md +++ b/content/Rust-1.27.2.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-07-20 +path = "2018/07/20/Rust-1.27.2" title = "Announcing Rust 1.27.2" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/07/20/Rust-1.27.2.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.27.md b/content/Rust-1.27.md index 85366af75..69960560a 100644 --- a/content/Rust-1.27.md +++ b/content/Rust-1.27.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-06-21 +path = "2018/06/21/Rust-1.27" title = "Announcing Rust 1.27" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/06/21/Rust-1.27.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.28.md b/content/Rust-1.28.md index 97932d9f5..8b5cf3adb 100644 --- a/content/Rust-1.28.md +++ b/content/Rust-1.28.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-08-02 +path = "2018/08/02/Rust-1.28" title = "Announcing Rust 1.28" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/08/02/Rust-1.28.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.29.1.md b/content/Rust-1.29.1.md index 8a8d875b4..ce46d68c2 100644 --- a/content/Rust-1.29.1.md +++ b/content/Rust-1.29.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-09-25 +path = "2018/09/25/Rust-1.29.1" title = "Announcing Rust 1.29.1" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/09/25/Rust-1.29.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.29.2.md b/content/Rust-1.29.2.md index 01a82f2a1..c72dc119c 100644 --- a/content/Rust-1.29.2.md +++ b/content/Rust-1.29.2.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-10-12 +path = "2018/10/12/Rust-1.29.2" title = "Announcing Rust 1.29.2" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2018/10/12/Rust-1.29.2.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.29.md b/content/Rust-1.29.md index d4d8c4104..beef35f95 100644 --- a/content/Rust-1.29.md +++ b/content/Rust-1.29.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-09-13 +path = "2018/09/13/Rust-1.29" title = "Announcing Rust 1.29" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/09/13/Rust-1.29.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.3.md b/content/Rust-1.3.md index f86858cc1..a90cb4661 100644 --- a/content/Rust-1.3.md +++ b/content/Rust-1.3.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2015-09-17 +path = "2015/09/17/Rust-1.3" title = "Announcing Rust 1.3" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2015/09/17/Rust-1.3.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.30.0.md b/content/Rust-1.30.0.md index 351c0eb94..057f708a8 100644 --- a/content/Rust-1.30.0.md +++ b/content/Rust-1.30.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-10-25 +path = "2018/10/25/Rust-1.30.0" title = "Announcing Rust 1.30" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/10/25/Rust-1.30.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.30.1.md b/content/Rust-1.30.1.md index 20b6afa85..669f27748 100644 --- a/content/Rust-1.30.1.md +++ b/content/Rust-1.30.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-11-08 +path = "2018/11/08/Rust-1.30.1" title = "Announcing Rust 1.30.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2018/11/08/Rust-1.30.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.31-and-rust-2018.md b/content/Rust-1.31-and-rust-2018.md index 169fed0c5..a6fec0d4f 100644 --- a/content/Rust-1.31-and-rust-2018.md +++ b/content/Rust-1.31-and-rust-2018.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-12-06 +path = "2018/12/06/Rust-1.31-and-rust-2018" title = "Announcing Rust 1.31 and Rust 2018" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/12/06/Rust-1.31-and-rust-2018.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.31.1.md b/content/Rust-1.31.1.md index 924a52f21..a0b0fb9a4 100644 --- a/content/Rust-1.31.1.md +++ b/content/Rust-1.31.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2018-12-20 +path = "2018/12/20/Rust-1.31.1" title = "Announcing Rust 1.31.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2018/12/20/Rust-1.31.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.32.0.md b/content/Rust-1.32.0.md index 426341d3b..516a5fd22 100644 --- a/content/Rust-1.32.0.md +++ b/content/Rust-1.32.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-01-17 +path = "2019/01/17/Rust-1.32.0" title = "Announcing Rust 1.32.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/01/17/Rust-1.32.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.33.0.md b/content/Rust-1.33.0.md index 6bb038c95..ed0d2e002 100644 --- a/content/Rust-1.33.0.md +++ b/content/Rust-1.33.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-02-28 +path = "2019/02/28/Rust-1.33.0" title = "Announcing Rust 1.33.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/02/28/Rust-1.33.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.34.0.md b/content/Rust-1.34.0.md index 28b9dacc9..731d3ff74 100644 --- a/content/Rust-1.34.0.md +++ b/content/Rust-1.34.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-04-11 +path = "2019/04/11/Rust-1.34.0" title = "Announcing Rust 1.34.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/04/11/Rust-1.34.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.34.1.md b/content/Rust-1.34.1.md index 4c11c0a00..11648af2b 100644 --- a/content/Rust-1.34.1.md +++ b/content/Rust-1.34.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-04-25 +path = "2019/04/25/Rust-1.34.1" title = "Announcing Rust 1.34.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/04/25/Rust-1.34.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.34.2.md b/content/Rust-1.34.2.md index cda5d82af..a23812c3a 100644 --- a/content/Rust-1.34.2.md +++ b/content/Rust-1.34.2.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-05-14 +path = "2019/05/14/Rust-1.34.2" title = "Announcing Rust 1.34.2" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/05/14/Rust-1.34.2.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.35.0.md b/content/Rust-1.35.0.md index 1e4019f1f..6612ff655 100644 --- a/content/Rust-1.35.0.md +++ b/content/Rust-1.35.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-05-23 +path = "2019/05/23/Rust-1.35.0" title = "Announcing Rust 1.35.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/05/23/Rust-1.35.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.36.0.md b/content/Rust-1.36.0.md index 79d934273..0836db6ce 100644 --- a/content/Rust-1.36.0.md +++ b/content/Rust-1.36.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-07-04 +path = "2019/07/04/Rust-1.36.0" title = "Announcing Rust 1.36.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/07/04/Rust-1.36.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.37.0.md b/content/Rust-1.37.0.md index 928b74d21..43bb6fc00 100644 --- a/content/Rust-1.37.0.md +++ b/content/Rust-1.37.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-08-15 +path = "2019/08/15/Rust-1.37.0" title = "Announcing Rust 1.37.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/08/15/Rust-1.37.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.38.0.md b/content/Rust-1.38.0.md index 8714fb410..e8a536f37 100644 --- a/content/Rust-1.38.0.md +++ b/content/Rust-1.38.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-09-26 +path = "2019/09/26/Rust-1.38.0" title = "Announcing Rust 1.38.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/09/26/Rust-1.38.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.39.0.md b/content/Rust-1.39.0.md index 5c6f93280..8b4c3ebfe 100644 --- a/content/Rust-1.39.0.md +++ b/content/Rust-1.39.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-11-07 +path = "2019/11/07/Rust-1.39.0" title = "Announcing Rust 1.39.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/11/07/Rust-1.39.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.4.md b/content/Rust-1.4.md index 7b5596f43..fc1da8f43 100644 --- a/content/Rust-1.4.md +++ b/content/Rust-1.4.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2015-10-29 +path = "2015/10/29/Rust-1.4" title = "Announcing Rust 1.4" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2015/10/29/Rust-1.4.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.40.0.md b/content/Rust-1.40.0.md index 0c18b8027..d8cfba949 100644 --- a/content/Rust-1.40.0.md +++ b/content/Rust-1.40.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2019-12-19 +path = "2019/12/19/Rust-1.40.0" title = "Announcing Rust 1.40.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2019/12/19/Rust-1.40.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.41.0.md b/content/Rust-1.41.0.md index 6f62bac18..f4f4dcca5 100644 --- a/content/Rust-1.41.0.md +++ b/content/Rust-1.41.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-01-30 +path = "2020/01/30/Rust-1.41.0" title = "Announcing Rust 1.41.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/01/30/Rust-1.41.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.41.1.md b/content/Rust-1.41.1.md index d0dbe7015..d24ae93ba 100644 --- a/content/Rust-1.41.1.md +++ b/content/Rust-1.41.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-02-27 +path = "2020/02/27/Rust-1.41.1" title = "Announcing Rust 1.41.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/02/27/Rust-1.41.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.42.md b/content/Rust-1.42.md index c7997436d..4d5ac7d38 100644 --- a/content/Rust-1.42.md +++ b/content/Rust-1.42.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-03-12 +path = "2020/03/12/Rust-1.42" title = "Announcing Rust 1.42.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/03/12/Rust-1.42.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.43.0.md b/content/Rust-1.43.0.md index ef887685a..7bad1c81f 100644 --- a/content/Rust-1.43.0.md +++ b/content/Rust-1.43.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-04-23 +path = "2020/04/23/Rust-1.43.0" title = "Announcing Rust 1.43.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/04/23/Rust-1.43.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.44.0.md b/content/Rust-1.44.0.md index d4f672188..d290bb5d4 100644 --- a/content/Rust-1.44.0.md +++ b/content/Rust-1.44.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-06-04 +path = "2020/06/04/Rust-1.44.0" title = "Announcing Rust 1.44.0" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2020/06/04/Rust-1.44.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.45.0.md b/content/Rust-1.45.0.md index 396a4d9cb..5cc55dfc8 100644 --- a/content/Rust-1.45.0.md +++ b/content/Rust-1.45.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-07-16 +path = "2020/07/16/Rust-1.45.0" title = "Announcing Rust 1.45.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/07/16/Rust-1.45.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.45.1.md b/content/Rust-1.45.1.md index 8ff0a3ee9..9b1849142 100644 --- a/content/Rust-1.45.1.md +++ b/content/Rust-1.45.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-07-30 +path = "2020/07/30/Rust-1.45.1" title = "Announcing Rust 1.45.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/07/30/Rust-1.45.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.45.2.md b/content/Rust-1.45.2.md index ba2df28cb..df29c0b43 100644 --- a/content/Rust-1.45.2.md +++ b/content/Rust-1.45.2.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-08-03 +path = "2020/08/03/Rust-1.45.2" title = "Announcing Rust 1.45.2" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/08/03/Rust-1.45.2.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.46.0.md b/content/Rust-1.46.0.md index ae6ce6728..260b20eec 100644 --- a/content/Rust-1.46.0.md +++ b/content/Rust-1.46.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-08-27 +path = "2020/08/27/Rust-1.46.0" title = "Announcing Rust 1.46.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/08/27/Rust-1.46.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.47.md b/content/Rust-1.47.md index 3581716e5..be447f965 100644 --- a/content/Rust-1.47.md +++ b/content/Rust-1.47.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-10-08 +path = "2020/10/08/Rust-1.47" title = "Announcing Rust 1.47.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/10/08/Rust-1.47.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.48.md b/content/Rust-1.48.md index ec3e40660..24dc9b421 100644 --- a/content/Rust-1.48.md +++ b/content/Rust-1.48.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-11-19 +path = "2020/11/19/Rust-1.48" title = "Announcing Rust 1.48.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/11/19/Rust-1.48.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.49.0.md b/content/Rust-1.49.0.md index b8e8f5e26..97d2668e6 100644 --- a/content/Rust-1.49.0.md +++ b/content/Rust-1.49.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-12-31 +path = "2020/12/31/Rust-1.49.0" title = "Announcing Rust 1.49.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/12/31/Rust-1.49.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.5.md b/content/Rust-1.5.md index 4c96aa5f9..74f3a050f 100644 --- a/content/Rust-1.5.md +++ b/content/Rust-1.5.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2015-12-10 +path = "2015/12/10/Rust-1.5" title = "Announcing Rust 1.5" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2015/12/10/Rust-1.5.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.50.0.md b/content/Rust-1.50.0.md index f51b61d7c..c558a3c8d 100644 --- a/content/Rust-1.50.0.md +++ b/content/Rust-1.50.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2021-02-11 +path = "2021/02/11/Rust-1.50.0" title = "Announcing Rust 1.50.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2021/02/11/Rust-1.50.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.51.0.md b/content/Rust-1.51.0.md index cc6728113..ff99240bf 100644 --- a/content/Rust-1.51.0.md +++ b/content/Rust-1.51.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2021-03-25 +path = "2021/03/25/Rust-1.51.0" title = "Announcing Rust 1.51.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2021/03/25/Rust-1.51.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.52.0.md b/content/Rust-1.52.0.md index 77b002acd..c5ef495b0 100644 --- a/content/Rust-1.52.0.md +++ b/content/Rust-1.52.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2021-05-06 +path = "2021/05/06/Rust-1.52.0" title = "Announcing Rust 1.52.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2021/05/06/Rust-1.52.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.52.1.md b/content/Rust-1.52.1.md index 63a84a492..2e77cab0e 100644 --- a/content/Rust-1.52.1.md +++ b/content/Rust-1.52.1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-05-10 +path = "2021/05/10/Rust-1.52.1" title = "Announcing Rust 1.52.1" -author = "Felix Klock, Mark Rousskov" -team = "the compiler team " +authors = ["Felix Klock, Mark Rousskov"] +aliases = ["2021/05/10/Rust-1.52.1.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" release = true +++ diff --git a/content/Rust-1.53.0.md b/content/Rust-1.53.0.md index 29dd336da..cb84b8a67 100644 --- a/content/Rust-1.53.0.md +++ b/content/Rust-1.53.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2021-06-17 +path = "2021/06/17/Rust-1.53.0" title = "Announcing Rust 1.53.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2021/06/17/Rust-1.53.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.54.0.md b/content/Rust-1.54.0.md index fdd69dc37..30beb9619 100644 --- a/content/Rust-1.54.0.md +++ b/content/Rust-1.54.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2021-07-29 +path = "2021/07/29/Rust-1.54.0" title = "Announcing Rust 1.54.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2021/07/29/Rust-1.54.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.55.0.md b/content/Rust-1.55.0.md index 4bb617b20..47c9b05b6 100644 --- a/content/Rust-1.55.0.md +++ b/content/Rust-1.55.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2021-09-09 +path = "2021/09/09/Rust-1.55.0" title = "Announcing Rust 1.55.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2021/09/09/Rust-1.55.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.56.0.md b/content/Rust-1.56.0.md index beabd1423..24d8fe153 100644 --- a/content/Rust-1.56.0.md +++ b/content/Rust-1.56.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2021-10-21 +path = "2021/10/21/Rust-1.56.0" title = "Announcing Rust 1.56.0 and Rust 2021" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2021/10/21/Rust-1.56.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.56.1.md b/content/Rust-1.56.1.md index bebf00092..9faf09f06 100644 --- a/content/Rust-1.56.1.md +++ b/content/Rust-1.56.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2021-11-01 +path = "2021/11/01/Rust-1.56.1" title = "Announcing Rust 1.56.1" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2021/11/01/Rust-1.56.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.57.0.md b/content/Rust-1.57.0.md index 08c58c040..3fce0e218 100644 --- a/content/Rust-1.57.0.md +++ b/content/Rust-1.57.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2021-12-02 +path = "2021/12/02/Rust-1.57.0" title = "Announcing Rust 1.57.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2021/12/02/Rust-1.57.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.58.0.md b/content/Rust-1.58.0.md index 14145cfdf..cd4929cd4 100644 --- a/content/Rust-1.58.0.md +++ b/content/Rust-1.58.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-01-13 +path = "2022/01/13/Rust-1.58.0" title = "Announcing Rust 1.58.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2022/01/13/Rust-1.58.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.58.1.md b/content/Rust-1.58.1.md index cb8b95788..57cc406c8 100644 --- a/content/Rust-1.58.1.md +++ b/content/Rust-1.58.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-01-20 +path = "2022/01/20/Rust-1.58.1" title = "Announcing Rust 1.58.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2022/01/20/Rust-1.58.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.59.0.md b/content/Rust-1.59.0.md index 197c389d7..48a2aa711 100644 --- a/content/Rust-1.59.0.md +++ b/content/Rust-1.59.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-02-24 +path = "2022/02/24/Rust-1.59.0" title = "Announcing Rust 1.59.0" -author = "The Rust Team" +authors = ["The Rust Team"] +aliases = ["2022/02/24/Rust-1.59.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.6.md b/content/Rust-1.6.md index 0f0804769..611adb3ed 100644 --- a/content/Rust-1.6.md +++ b/content/Rust-1.6.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2016-01-21 +path = "2016/01/21/Rust-1.6" title = "Announcing Rust 1.6" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2016/01/21/Rust-1.6.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.60.0.md b/content/Rust-1.60.0.md index ad1e6f2cf..02ffb0073 100644 --- a/content/Rust-1.60.0.md +++ b/content/Rust-1.60.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-04-07 +path = "2022/04/07/Rust-1.60.0" title = "Announcing Rust 1.60.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2022/04/07/Rust-1.60.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.61.0.md b/content/Rust-1.61.0.md index 67f62a2cd..d4687bd1a 100644 --- a/content/Rust-1.61.0.md +++ b/content/Rust-1.61.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-05-19 +path = "2022/05/19/Rust-1.61.0" title = "Announcing Rust 1.61.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2022/05/19/Rust-1.61.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.62.0.md b/content/Rust-1.62.0.md index 4a6eea59d..d3f5d486a 100644 --- a/content/Rust-1.62.0.md +++ b/content/Rust-1.62.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-06-30 +path = "2022/06/30/Rust-1.62.0" title = "Announcing Rust 1.62.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2022/06/30/Rust-1.62.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.62.1.md b/content/Rust-1.62.1.md index c24216458..6fa7f4ad0 100644 --- a/content/Rust-1.62.1.md +++ b/content/Rust-1.62.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-07-19 +path = "2022/07/19/Rust-1.62.1" title = "Announcing Rust 1.62.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2022/07/19/Rust-1.62.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.63.0.md b/content/Rust-1.63.0.md index da79c1be8..3f18c663e 100644 --- a/content/Rust-1.63.0.md +++ b/content/Rust-1.63.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-08-11 +path = "2022/08/11/Rust-1.63.0" title = "Announcing Rust 1.63.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2022/08/11/Rust-1.63.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.64.0.md b/content/Rust-1.64.0.md index 42b5b644a..b90f35031 100644 --- a/content/Rust-1.64.0.md +++ b/content/Rust-1.64.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-09-22 +path = "2022/09/22/Rust-1.64.0" title = "Announcing Rust 1.64.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2022/09/22/Rust-1.64.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.65.0.md b/content/Rust-1.65.0.md index da39c47e6..17ed66d25 100644 --- a/content/Rust-1.65.0.md +++ b/content/Rust-1.65.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-11-03 +path = "2022/11/03/Rust-1.65.0" title = "Announcing Rust 1.65.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2022/11/03/Rust-1.65.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.66.0.md b/content/Rust-1.66.0.md index cfae68bf9..2147cd101 100644 --- a/content/Rust-1.66.0.md +++ b/content/Rust-1.66.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2022-12-15 +path = "2022/12/15/Rust-1.66.0" title = "Announcing Rust 1.66.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2022/12/15/Rust-1.66.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.66.1.md b/content/Rust-1.66.1.md index 32ef2dfa6..cf1585026 100644 --- a/content/Rust-1.66.1.md +++ b/content/Rust-1.66.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-01-10 +path = "2023/01/10/Rust-1.66.1" title = "Announcing Rust 1.66.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/01/10/Rust-1.66.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.67.0.md b/content/Rust-1.67.0.md index 6de8aea3e..6d3a48b44 100644 --- a/content/Rust-1.67.0.md +++ b/content/Rust-1.67.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-01-26 +path = "2023/01/26/Rust-1.67.0" title = "Announcing Rust 1.67.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/01/26/Rust-1.67.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.67.1.md b/content/Rust-1.67.1.md index f9fe7ff55..398964381 100644 --- a/content/Rust-1.67.1.md +++ b/content/Rust-1.67.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-02-09 +path = "2023/02/09/Rust-1.67.1" title = "Announcing Rust 1.67.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/02/09/Rust-1.67.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.68.0.md b/content/Rust-1.68.0.md index ed571e4db..2f8f8a84f 100644 --- a/content/Rust-1.68.0.md +++ b/content/Rust-1.68.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-03-09 +path = "2023/03/09/Rust-1.68.0" title = "Announcing Rust 1.68.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/03/09/Rust-1.68.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.68.1.md b/content/Rust-1.68.1.md index 68fa78e7f..fc84fbbd5 100644 --- a/content/Rust-1.68.1.md +++ b/content/Rust-1.68.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-03-23 +path = "2023/03/23/Rust-1.68.1" title = "Announcing Rust 1.68.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/03/23/Rust-1.68.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.68.2.md b/content/Rust-1.68.2.md index be65c7062..b8f60bcb4 100644 --- a/content/Rust-1.68.2.md +++ b/content/Rust-1.68.2.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-03-28 +path = "2023/03/28/Rust-1.68.2" title = "Announcing Rust 1.68.2" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/03/28/Rust-1.68.2.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.69.0.md b/content/Rust-1.69.0.md index ac4d98a7c..2c427ccf9 100644 --- a/content/Rust-1.69.0.md +++ b/content/Rust-1.69.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-04-20 +path = "2023/04/20/Rust-1.69.0" title = "Announcing Rust 1.69.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/04/20/Rust-1.69.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.7.md b/content/Rust-1.7.md index 9098a857f..00990d14c 100644 --- a/content/Rust-1.7.md +++ b/content/Rust-1.7.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2016-03-02 +path = "2016/03/02/Rust-1.7" title = "Announcing Rust 1.7" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2016/03/02/Rust-1.7.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.70.0.md b/content/Rust-1.70.0.md index 14ccfbc0f..ed2c0b295 100644 --- a/content/Rust-1.70.0.md +++ b/content/Rust-1.70.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-06-01 +path = "2023/06/01/Rust-1.70.0" title = "Announcing Rust 1.70.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/06/01/Rust-1.70.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.71.0.md b/content/Rust-1.71.0.md index 3a083616f..a747310a2 100644 --- a/content/Rust-1.71.0.md +++ b/content/Rust-1.71.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-07-13 +path = "2023/07/13/Rust-1.71.0" title = "Announcing Rust 1.71.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/07/13/Rust-1.71.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.71.1.md b/content/Rust-1.71.1.md index 64d78db60..7fe332199 100644 --- a/content/Rust-1.71.1.md +++ b/content/Rust-1.71.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-08-03 +path = "2023/08/03/Rust-1.71.1" title = "Announcing Rust 1.71.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/08/03/Rust-1.71.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.72.0.md b/content/Rust-1.72.0.md index acdae1748..58a0956d8 100644 --- a/content/Rust-1.72.0.md +++ b/content/Rust-1.72.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-08-24 +path = "2023/08/24/Rust-1.72.0" title = "Announcing Rust 1.72.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/08/24/Rust-1.72.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.72.1.md b/content/Rust-1.72.1.md index f3ddaedd0..498f0b176 100644 --- a/content/Rust-1.72.1.md +++ b/content/Rust-1.72.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-09-19 +path = "2023/09/19/Rust-1.72.1" title = "Announcing Rust 1.72.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/09/19/Rust-1.72.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.73.0.md b/content/Rust-1.73.0.md index 3efe5b5d3..dad930140 100644 --- a/content/Rust-1.73.0.md +++ b/content/Rust-1.73.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-10-05 +path = "2023/10/05/Rust-1.73.0" title = "Announcing Rust 1.73.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/10/05/Rust-1.73.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.74.0.md b/content/Rust-1.74.0.md index 57cfd35fa..ba7965328 100644 --- a/content/Rust-1.74.0.md +++ b/content/Rust-1.74.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-11-16 +path = "2023/11/16/Rust-1.74.0" title = "Announcing Rust 1.74.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/11/16/Rust-1.74.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.74.1.md b/content/Rust-1.74.1.md index 35d9026ea..5db2492c5 100644 --- a/content/Rust-1.74.1.md +++ b/content/Rust-1.74.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-12-07 +path = "2023/12/07/Rust-1.74.1" title = "Announcing Rust 1.74.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/12/07/Rust-1.74.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.75.0.md b/content/Rust-1.75.0.md index 16839e752..e064730ad 100644 --- a/content/Rust-1.75.0.md +++ b/content/Rust-1.75.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2023-12-28 +path = "2023/12/28/Rust-1.75.0" title = "Announcing Rust 1.75.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2023/12/28/Rust-1.75.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.76.0.md b/content/Rust-1.76.0.md index 002e0746b..916eb8ded 100644 --- a/content/Rust-1.76.0.md +++ b/content/Rust-1.76.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-02-08 +path = "2024/02/08/Rust-1.76.0" title = "Announcing Rust 1.76.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2024/02/08/Rust-1.76.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.77.0.md b/content/Rust-1.77.0.md index 37790290b..4ad7417fc 100644 --- a/content/Rust-1.77.0.md +++ b/content/Rust-1.77.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-03-21 +path = "2024/03/21/Rust-1.77.0" title = "Announcing Rust 1.77.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2024/03/21/Rust-1.77.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.77.1.md b/content/Rust-1.77.1.md index 7f42ed1bc..e0984a9f6 100644 --- a/content/Rust-1.77.1.md +++ b/content/Rust-1.77.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-03-28 +path = "2024/03/28/Rust-1.77.1" title = "Announcing Rust 1.77.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2024/03/28/Rust-1.77.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.77.2.md b/content/Rust-1.77.2.md index be27f1393..6035f8ccd 100644 --- a/content/Rust-1.77.2.md +++ b/content/Rust-1.77.2.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-04-09 +path = "2024/04/09/Rust-1.77.2" title = "Announcing Rust 1.77.2" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2024/04/09/Rust-1.77.2.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.78.0.md b/content/Rust-1.78.0.md index 4a654acef..69dd37d68 100644 --- a/content/Rust-1.78.0.md +++ b/content/Rust-1.78.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-05-02 +path = "2024/05/02/Rust-1.78.0" title = "Announcing Rust 1.78.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2024/05/02/Rust-1.78.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.79.0.md b/content/Rust-1.79.0.md index f548f8fcc..e2066a608 100644 --- a/content/Rust-1.79.0.md +++ b/content/Rust-1.79.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-06-13 +path = "2024/06/13/Rust-1.79.0" title = "Announcing Rust 1.79.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2024/06/13/Rust-1.79.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.8.md b/content/Rust-1.8.md index ea8b20913..b47271e6c 100644 --- a/content/Rust-1.8.md +++ b/content/Rust-1.8.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2016-04-14 +path = "2016/04/14/Rust-1.8" title = "Announcing Rust 1.8" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2016/04/14/Rust-1.8.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.80.0.md b/content/Rust-1.80.0.md index f248bab8d..cb8e7818c 100644 --- a/content/Rust-1.80.0.md +++ b/content/Rust-1.80.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-07-25 +path = "2024/07/25/Rust-1.80.0" title = "Announcing Rust 1.80.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2024/07/25/Rust-1.80.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.80.1.md b/content/Rust-1.80.1.md index c04216f9e..4b68e7429 100644 --- a/content/Rust-1.80.1.md +++ b/content/Rust-1.80.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-08-08 +path = "2024/08/08/Rust-1.80.1" title = "Announcing Rust 1.80.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2024/08/08/Rust-1.80.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.81.0.md b/content/Rust-1.81.0.md index 24894af1b..457d574e8 100644 --- a/content/Rust-1.81.0.md +++ b/content/Rust-1.81.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-09-05 +path = "2024/09/05/Rust-1.81.0" title = "Announcing Rust 1.81.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2024/09/05/Rust-1.81.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.82.0.md b/content/Rust-1.82.0.md index 10e6ccb67..fbe05cffe 100644 --- a/content/Rust-1.82.0.md +++ b/content/Rust-1.82.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-10-17 +path = "2024/10/17/Rust-1.82.0" title = "Announcing Rust 1.82.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2024/10/17/Rust-1.82.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.83.0.md b/content/Rust-1.83.0.md index bec4e8242..ff1429eca 100644 --- a/content/Rust-1.83.0.md +++ b/content/Rust-1.83.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2024-11-28 +path = "2024/11/28/Rust-1.83.0" title = "Announcing Rust 1.83.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2024/11/28/Rust-1.83.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.84.0.md b/content/Rust-1.84.0.md index 4ac18cb87..8c18c00bb 100644 --- a/content/Rust-1.84.0.md +++ b/content/Rust-1.84.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2025-01-09 +path = "2025/01/09/Rust-1.84.0" title = "Announcing Rust 1.84.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2025/01/09/Rust-1.84.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.84.1.md b/content/Rust-1.84.1.md index b873bf611..590497d46 100644 --- a/content/Rust-1.84.1.md +++ b/content/Rust-1.84.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2025-01-30 +path = "2025/01/30/Rust-1.84.1" title = "Announcing Rust 1.84.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2025/01/30/Rust-1.84.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.85.0.md b/content/Rust-1.85.0.md index d002cf831..2ca9a3937 100644 --- a/content/Rust-1.85.0.md +++ b/content/Rust-1.85.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2025-02-20 +path = "2025/02/20/Rust-1.85.0" title = "Announcing Rust 1.85.0 and Rust 2024" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2025/02/20/Rust-1.85.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.85.1.md b/content/Rust-1.85.1.md index 0ed335ed2..daad8d600 100644 --- a/content/Rust-1.85.1.md +++ b/content/Rust-1.85.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2025-03-18 +path = "2025/03/18/Rust-1.85.1" title = "Announcing Rust 1.85.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2025/03/18/Rust-1.85.1.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.86.0.md b/content/Rust-1.86.0.md index c56fd17ba..d0ecc7417 100644 --- a/content/Rust-1.86.0.md +++ b/content/Rust-1.86.0.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2025-04-03 +path = "2025/04/03/Rust-1.86.0" title = "Announcing Rust 1.86.0" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2025/04/03/Rust-1.86.0.html"] + +[extra] release = true +++ diff --git a/content/Rust-1.9.md b/content/Rust-1.9.md index 1781b8365..f327d4857 100644 --- a/content/Rust-1.9.md +++ b/content/Rust-1.9.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2016-05-26 +path = "2016/05/26/Rust-1.9" title = "Announcing Rust 1.9" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2016/05/26/Rust-1.9.html"] + +[extra] release = true +++ diff --git a/content/Rust-2017-Survey-Results.md b/content/Rust-2017-Survey-Results.md index 4635be47a..9cc45ee20 100644 --- a/content/Rust-2017-Survey-Results.md +++ b/content/Rust-2017-Survey-Results.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2017-09-05 +path = "2017/09/05/Rust-2017-Survey-Results" title = "Rust 2017 Survey Results" -author = "Jonathan Turner" +authors = ["Jonathan Turner"] +aliases = ["2017/09/05/Rust-2017-Survey-Results.html"] +++ It's that time of the year, where we take a good look at how things are going by asking the community at large -- both Rust users and non-users. And wow, did you respond! diff --git a/content/Rust-2018-dev-tools.md b/content/Rust-2018-dev-tools.md index e5e6f6b8f..3a7aae9fa 100644 --- a/content/Rust-2018-dev-tools.md +++ b/content/Rust-2018-dev-tools.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-12-17 +path = "2018/12/17/Rust-2018-dev-tools" title = "Tools in the 2018 edition" -author = "The Dev-tools team" +authors = ["The Dev-tools team"] +aliases = ["2018/12/17/Rust-2018-dev-tools.html"] +++ Tooling is an important part of what makes a programming language practical and diff --git a/content/Rust-2021-public-testing.md b/content/Rust-2021-public-testing.md index 4381f6285..73ace9924 100644 --- a/content/Rust-2021-public-testing.md +++ b/content/Rust-2021-public-testing.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-07-21 +path = "2021/07/21/Rust-2021-public-testing" title = "Rust 2021 public testing period" -author = "Niko Matsakis" -team = "the Edition 2021 Project Group " +authors = ["Niko Matsakis"] +aliases = ["2021/07/21/Rust-2021-public-testing.html"] + +[extra] +team = "the Edition 2021 Project Group" +team_url = "https://www.rust-lang.org/governance/teams/core#project-edition-2021" +++ # Rust 2021 public testing period diff --git a/content/Rust-2024-public-testing.md b/content/Rust-2024-public-testing.md index 0aaeb973e..e605a06db 100644 --- a/content/Rust-2024-public-testing.md +++ b/content/Rust-2024-public-testing.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-11-27 +path = "2024/11/27/Rust-2024-public-testing" title = "Rust 2024 call for testing" -author = "Eric Huss & TC" -team = "the Edition 2024 Project Group " +authors = ["Eric Huss & TC"] +aliases = ["2024/11/27/Rust-2024-public-testing.html"] + +[extra] +team = "the Edition 2024 Project Group" +team_url = "https://doc.rust-lang.org/nightly/edition-guide/rust-2024/index.html" +++ # Rust 2024 call for testing diff --git a/content/Rust-Once-Run-Everywhere.md b/content/Rust-Once-Run-Everywhere.md index 1637e1252..4ce68a27e 100644 --- a/content/Rust-Once-Run-Everywhere.md +++ b/content/Rust-Once-Run-Everywhere.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2015-04-24 +path = "2015/04/24/Rust-Once-Run-Everywhere" title = "Rust Once, Run Everywhere" -author = "Alex Crichton" +authors = ["Alex Crichton"] description = "Zero-cost and safe FFI in Rust" +aliases = ["2015/04/24/Rust-Once-Run-Everywhere.html"] +++ Rust's quest for world domination was never destined to happen overnight, so diff --git a/content/Rust-Roadmap-Update.md b/content/Rust-Roadmap-Update.md index 69f26ba99..b36cf9f23 100644 --- a/content/Rust-Roadmap-Update.md +++ b/content/Rust-Roadmap-Update.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2017-07-05 +path = "2017/07/05/Rust-Roadmap-Update" title = "Rust's 2017 roadmap, six months in" -author = "Nicholas Matsakis" +authors = ["Nicholas Matsakis"] +aliases = ["2017/07/05/Rust-Roadmap-Update.html"] +++ In January of this year, we adopted the [2017 Rust Roadmap][rr], which diff --git a/content/Rust-Survey-2021.md b/content/Rust-Survey-2021.md index a0130db72..f68b8f97b 100644 --- a/content/Rust-Survey-2021.md +++ b/content/Rust-Survey-2021.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-02-15 +path = "2022/02/15/Rust-Survey-2021" title = "Rust Survey 2021 Results" -author = "The Rust Survey Team" +authors = ["The Rust Survey Team"] +aliases = ["2022/02/15/Rust-Survey-2021.html"] +++ Greetings Rustaceans! diff --git a/content/Rust-Survey-2023-Results.md b/content/Rust-Survey-2023-Results.md index ccdc5a37d..e4d8dc891 100644 --- a/content/Rust-Survey-2023-Results.md +++ b/content/Rust-Survey-2023-Results.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2023-08-07 +path = "2023/08/07/Rust-Survey-2023-Results" title = "2022 Annual Rust Survey Results" -author = "The Rust Survey Working Group in partnership with the Rust Foundation" +authors = ["The Rust Survey Working Group in partnership with the Rust Foundation"] +aliases = ["2023/08/07/Rust-Survey-2023-Results.html"] +++ Hello, Rustaceans! diff --git a/content/Rust-participates-in-GSoC-2024.md b/content/Rust-participates-in-GSoC-2024.md index a19584e71..f3e03bef0 100644 --- a/content/Rust-participates-in-GSoC-2024.md +++ b/content/Rust-participates-in-GSoC-2024.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-02-21 +path = "2024/02/21/Rust-participates-in-GSoC-2024" title = "Rust participates in Google Summer of Code 2024" -author = "Jakub Beránek, Jack Huey and Paul Lenz" +authors = ["Jakub Beránek, Jack Huey and Paul Lenz"] +aliases = ["2024/02/21/Rust-participates-in-GSoC-2024.html"] +++ We're writing this blog post to announce that the Rust Project will be participating in [Google Summer of Code (GSoC) 2024][gsoc]. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful information and links. diff --git a/content/Rust-participates-in-GSoC-2025.md b/content/Rust-participates-in-GSoC-2025.md index f2a9249a4..80b306ac7 100644 --- a/content/Rust-participates-in-GSoC-2025.md +++ b/content/Rust-participates-in-GSoC-2025.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2025-03-03 +path = "2025/03/03/Rust-participates-in-GSoC-2025" title = "Rust participates in Google Summer of Code 2025" -author = "Jakub Beránek, Jack Huey and Paul Lenz" +authors = ["Jakub Beránek, Jack Huey and Paul Lenz"] +aliases = ["2025/03/03/Rust-participates-in-GSoC-2025.html"] +++ We are happy to announce that the Rust Project will again be participating in [Google Summer of Code (GSoC) 2025][gsoc], same as [last year][gsoc announcement 2024]. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful information and links. diff --git a/content/Rust-survey-2018.md b/content/Rust-survey-2018.md index b7653427b..5eec5a4c3 100644 --- a/content/Rust-survey-2018.md +++ b/content/Rust-survey-2018.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-11-27 +path = "2018/11/27/Rust-survey-2018" title = "Rust Survey 2018 Results" -author = "The Rust Survey Team" +authors = ["The Rust Survey Team"] +aliases = ["2018/11/27/Rust-survey-2018.html"] +++ Another year means another Rust survey, and this year marks Rust's third annual survey. This year, the survey launched for the first time in multiple languages. In total **14** languages, in addition to English, were covered. The results from non-English languages totalled *25% of all responses* and helped pushed the number of responses to a new record of **5991 responses**. Before we begin the analysis, we just want to give a big "thank you!" to all the people who took the time to respond and give us your thoughts. It’s because of your help that Rust will continue to improve year after year. diff --git a/content/Rust-survey-2019.md b/content/Rust-survey-2019.md index f9fcdb221..1da5ac557 100644 --- a/content/Rust-survey-2019.md +++ b/content/Rust-survey-2019.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-04-17 +path = "2020/04/17/Rust-survey-2019" title = "Rust Survey 2019 Results" -author = "The Rust Survey Team" +authors = ["The Rust Survey Team"] +aliases = ["2020/04/17/Rust-survey-2019.html"] +++ > Translation available for [Chinese | 中文](https://web.archive.org/web/20200611004214/http://www.secondstate.info/blog/rust-2019) diff --git a/content/Rust-turns-three.md b/content/Rust-turns-three.md index de118de74..7a7a8dbe1 100644 --- a/content/Rust-turns-three.md +++ b/content/Rust-turns-three.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2018-05-15 +path = "2018/05/15/Rust-turns-three" title = "Rust turns three" -author = "Aaron Turon" +authors = ["Aaron Turon"] description = "Three years ago today, the Rust community released Rust 1.0 to the world, with our initial vision of fearless systems programming." +aliases = ["2018/05/15/Rust-turns-three.html"] +++ Three years ago today, the Rust community released [Rust 1.0] to the world, with diff --git a/content/Rust.1.43.1.md b/content/Rust.1.43.1.md index 77129e9af..cdc45f327 100644 --- a/content/Rust.1.43.1.md +++ b/content/Rust.1.43.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-05-07 +path = "2020/05/07/Rust.1.43.1" title = "Announcing Rust 1.43.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/05/07/Rust.1.43.1.html"] + +[extra] release = true +++ diff --git a/content/Rust.1.44.1.md b/content/Rust.1.44.1.md index 6cc346933..a34cb28e0 100644 --- a/content/Rust.1.44.1.md +++ b/content/Rust.1.44.1.md @@ -1,8 +1,10 @@ +++ -layout = "post" -date = 2020-06-18 +path = "2020/06/18/Rust.1.44.1" title = "Announcing Rust 1.44.1" -author = "The Rust Release Team" +authors = ["The Rust Release Team"] +aliases = ["2020/06/18/Rust.1.44.1.html"] + +[extra] release = true +++ diff --git a/content/RustConf.md b/content/RustConf.md index 3372995b8..754ad8ee5 100644 --- a/content/RustConf.md +++ b/content/RustConf.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-05-29 +path = "2023/05/29/RustConf" title = "On the RustConf keynote" -author = "leadership chat membership" -team = "leadership chat " +authors = ["leadership chat membership"] +aliases = ["2023/05/29/RustConf.html"] + +[extra] +team = "leadership chat" +team_url = "https://github.com/rust-lang/team//blob/2cea9916903fffafbfae6c78882d0924ce3c3a8a/teams/interim-leadership-chat.toml#L1" +++ On May 26th 2023, [JeanHeyd Meneide](https://thephd.dev/about/) announced they [would not speak at RustConf 2023 anymore](https://thephd.dev/i-am-no-longer-speaking-at-rustconf-2023). They were invited to give a keynote at the conference, only to be told two weeks later the keynote would be demoted to a normal talk, due to a decision made within the Rust project leadership. diff --git a/content/Rustup-1.20.0.md b/content/Rustup-1.20.0.md index 66b5920bf..09f898728 100644 --- a/content/Rustup-1.20.0.md +++ b/content/Rustup-1.20.0.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-10-15 +path = "2019/10/15/Rustup-1.20.0" title = "Announcing Rustup 1.20.0" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2019/10/15/Rustup-1.20.0.html"] +++ The rustup working group is happy to announce the release of rustup version 1.20.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/content/Rustup-1.22.0.md b/content/Rustup-1.22.0.md index 92b73c267..e7ce9365a 100644 --- a/content/Rustup-1.22.0.md +++ b/content/Rustup-1.22.0.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-07-06 +path = "2020/07/06/Rustup-1.22.0" title = "Announcing Rustup 1.22.0" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2020/07/06/Rustup-1.22.0.html"] +++ The rustup working group is happy to announce the release of rustup version 1.22.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/content/Rustup-1.22.1.md b/content/Rustup-1.22.1.md index b637958b7..8c071bf9e 100644 --- a/content/Rustup-1.22.1.md +++ b/content/Rustup-1.22.1.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-07-08 +path = "2020/07/08/Rustup-1.22.1" title = "Announcing Rustup 1.22.1" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2020/07/08/Rustup-1.22.1.html"] +++ The rustup working group is happy to announce the release of rustup version 1.22.1. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/content/Rustup-1.23.0.md b/content/Rustup-1.23.0.md index 24cf9a35a..5e9160470 100644 --- a/content/Rustup-1.23.0.md +++ b/content/Rustup-1.23.0.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-11-27 +path = "2020/11/27/Rustup-1.23.0" title = "Announcing Rustup 1.23.0" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2020/11/27/Rustup-1.23.0.html"] +++ The rustup working group is happy to announce the release of rustup version 1.23.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/content/Rustup-1.24.0.md b/content/Rustup-1.24.0.md index 3ef4423ca..6c2a034fb 100644 --- a/content/Rustup-1.24.0.md +++ b/content/Rustup-1.24.0.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2021-04-27 +path = "2021/04/27/Rustup-1.24.0" title = "Announcing Rustup 1.24.0" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2021/04/27/Rustup-1.24.0.html"] +++ > Shortly after publishing the release we got reports of [a regression][2737] diff --git a/content/Rustup-1.24.1.md b/content/Rustup-1.24.1.md index 6f0e0f4b5..d45092b95 100644 --- a/content/Rustup-1.24.1.md +++ b/content/Rustup-1.24.1.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2021-04-29 +path = "2021/04/29/Rustup-1.24.1" title = "Announcing Rustup 1.24.1" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2021/04/29/Rustup-1.24.1.html"] +++ The rustup working group is happy to announce the release of rustup version 1.24.1. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/content/Rustup-1.24.2.md b/content/Rustup-1.24.2.md index 8cef5f5ea..82d8585a7 100644 --- a/content/Rustup-1.24.2.md +++ b/content/Rustup-1.24.2.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2021-05-17 +path = "2021/05/17/Rustup-1.24.2" title = "Announcing Rustup 1.24.2" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2021/05/17/Rustup-1.24.2.html"] +++ The rustup working group is happy to announce the release of rustup version 1.24.2. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/content/Rustup-1.24.3.md b/content/Rustup-1.24.3.md index f2eb46677..ac73fa736 100644 --- a/content/Rustup-1.24.3.md +++ b/content/Rustup-1.24.3.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2021-06-08 +path = "2021/06/08/Rustup-1.24.3" title = "Announcing Rustup 1.24.3" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2021/06/08/Rustup-1.24.3.html"] +++ The rustup working group is happy to announce the release of rustup version 1.24.3. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/content/Rustup-1.25.0.md b/content/Rustup-1.25.0.md index 351bc30cb..15102e8b0 100644 --- a/content/Rustup-1.25.0.md +++ b/content/Rustup-1.25.0.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-07-11 +path = "2022/07/11/Rustup-1.25.0" title = "Announcing Rustup 1.25.0" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2022/07/11/Rustup-1.25.0.html"] +++ The rustup working group is happy to announce the release of rustup version 1.25.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/content/Rustup-1.25.1.md b/content/Rustup-1.25.1.md index df76edcfc..374cddfa0 100644 --- a/content/Rustup-1.25.1.md +++ b/content/Rustup-1.25.1.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-07-12 +path = "2022/07/12/Rustup-1.25.1" title = "Announcing Rustup 1.25.1" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2022/07/12/Rustup-1.25.1.html"] +++ The rustup working group is announcing the release of rustup version 1.25.1. diff --git a/content/Rustup-1.25.2.md b/content/Rustup-1.25.2.md index ce4db99f6..496cd785a 100644 --- a/content/Rustup-1.25.2.md +++ b/content/Rustup-1.25.2.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2023-02-01 +path = "2023/02/01/Rustup-1.25.2" title = "Announcing Rustup 1.25.2" -author = "The rustup working group" +authors = ["The rustup working group"] +aliases = ["2023/02/01/Rustup-1.25.2.html"] +++ The rustup working group is announcing the release of rustup version 1.25.2. diff --git a/content/Rustup-1.26.0.md b/content/Rustup-1.26.0.md index 70f9a5cb9..161f60a81 100644 --- a/content/Rustup-1.26.0.md +++ b/content/Rustup-1.26.0.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2023-04-25 +path = "2023/04/25/Rustup-1.26.0" title = "Announcing Rustup 1.26.0" -author = "The Rustup Working Group" +authors = ["The Rustup Working Group"] +aliases = ["2023/04/25/Rustup-1.26.0.html"] +++ The rustup working group is happy to announce the release of rustup version 1.26.0. [Rustup][install] is the recommended tool to install [Rust][rust], a programming language that is empowering everyone to build reliable and efficient software. diff --git a/content/Rustup-1.27.0.md b/content/Rustup-1.27.0.md index d27506c04..0b1a218b7 100644 --- a/content/Rustup-1.27.0.md +++ b/content/Rustup-1.27.0.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-03-11 +path = "2024/03/11/Rustup-1.27.0" title = "Announcing Rustup 1.27.0" -author = "The Rustup Team" +authors = ["The Rustup Team"] +aliases = ["2024/03/11/Rustup-1.27.0.html"] +++ The rustup team is happy to announce the release of rustup version 1.27.0. diff --git a/content/Rustup-1.27.1.md b/content/Rustup-1.27.1.md index 25cd9d05f..dabac8272 100644 --- a/content/Rustup-1.27.1.md +++ b/content/Rustup-1.27.1.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-05-06 +path = "2024/05/06/Rustup-1.27.1" title = "Announcing Rustup 1.27.1" -author = "The Rustup Team" +authors = ["The Rustup Team"] +aliases = ["2024/05/06/Rustup-1.27.1.html"] +++ The Rustup team is happy to announce the release of Rustup version 1.27.1. diff --git a/content/Rustup-1.28.0.md b/content/Rustup-1.28.0.md index f0bd05608..b763e94f7 100644 --- a/content/Rustup-1.28.0.md +++ b/content/Rustup-1.28.0.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2025-03-02 +path = "2025/03/02/Rustup-1.28.0" title = "Announcing Rustup 1.28.0" -author = "The Rustup Team" +authors = ["The Rustup Team"] +aliases = ["2025/03/02/Rustup-1.28.0.html"] +++ The rustup team is happy to announce the release of rustup version 1.28.0. diff --git a/content/Rustup-1.28.1.md b/content/Rustup-1.28.1.md index 7109333ea..35601d2af 100644 --- a/content/Rustup-1.28.1.md +++ b/content/Rustup-1.28.1.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2025-03-04 +path = "2025/03/04/Rustup-1.28.1" title = "Announcing rustup 1.28.1" -author = "The Rustup Team" +authors = ["The Rustup Team"] +aliases = ["2025/03/04/Rustup-1.28.1.html"] +++ The rustup team is happy to announce the release of rustup version 1.28.1. diff --git a/content/Scheduling-2021-Roadmap.md b/content/Scheduling-2021-Roadmap.md index 39249e45c..bff6d9f72 100644 --- a/content/Scheduling-2021-Roadmap.md +++ b/content/Scheduling-2021-Roadmap.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-09-21 +path = "2020/09/21/Scheduling-2021-Roadmap" title = "Call for 2021 Roadmap Blogs Ending Soon" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2020/09/21/Scheduling-2021-Roadmap.html"] +++ We will be closing the collection of blog posts on **October 5th**. As a reminder, we plan to close the [survey](https://blog.rust-lang.org/2020/09/10/survey-launch.html) on **September 24th**, later this week. diff --git a/content/Security-advisory-for-cargo.md b/content/Security-advisory-for-cargo.md index 9c7bd9b03..782dc7099 100644 --- a/content/Security-advisory-for-cargo.md +++ b/content/Security-advisory-for-cargo.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-09-30 +path = "2019/09/30/Security-advisory-for-cargo" title = "Security advisory for Cargo" -author = "The Rust Security Team" +authors = ["The Rust Security Team"] +aliases = ["2019/09/30/Security-advisory-for-cargo.html"] +++ > **Note**: This is a cross-post of the [official security advisory]. The official diff --git a/content/Security-advisory-for-std.md b/content/Security-advisory-for-std.md index db2acbd93..993a8f4c1 100644 --- a/content/Security-advisory-for-std.md +++ b/content/Security-advisory-for-std.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-09-21 +path = "2018/09/21/Security-advisory-for-std" title = "Security advisory for the standard library" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/09/21/Security-advisory-for-std.html"] +++ The Rust team was recently notified of a security vulnerability affecting diff --git a/content/Security-advisory.md b/content/Security-advisory.md index 3493057b7..bb6ed9fef 100644 --- a/content/Security-advisory.md +++ b/content/Security-advisory.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-05-13 +path = "2019/05/13/Security-advisory" title = "Security advisory for the standard library" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2019/05/13/Security-advisory.html"] +++ This is a cross-post of the [official security advisory][official]. The diff --git a/content/Shape-of-errors-to-come.md b/content/Shape-of-errors-to-come.md index 62684b15f..6d23398a1 100644 --- a/content/Shape-of-errors-to-come.md +++ b/content/Shape-of-errors-to-come.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2016-08-10 +path = "2016/08/10/Shape-of-errors-to-come" title = "Shape of errors to come" -author = "Sophia June Turner" +authors = ["Sophia June Turner"] +aliases = ["2016/08/10/Shape-of-errors-to-come.html"] +++ There are changes afoot in the Rust world. If you've tried out the latest nightly, you'll notice diff --git a/content/Stability.md b/content/Stability.md index 7650226a8..edb2dc86f 100644 --- a/content/Stability.md +++ b/content/Stability.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2014-10-30 +path = "2014/10/30/Stability" title = "Stability as a Deliverable" -author = "Aaron Turon and Niko Matsakis" +authors = ["Aaron Turon and Niko Matsakis"] description = "The upcoming Rust 1.0 release means a lot, but most fundamentally it is a commitment to stability, alongside our long-running commitment to safety." +aliases = ["2014/10/30/Stability.html"] +++ The upcoming Rust 1.0 release means diff --git a/content/State-of-Rust-Survey-2016.md b/content/State-of-Rust-Survey-2016.md index 4d11f8668..e3d09cf89 100644 --- a/content/State-of-Rust-Survey-2016.md +++ b/content/State-of-Rust-Survey-2016.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2016-06-30 +path = "2016/06/30/State-of-Rust-Survey-2016" title = "State of Rust Survey 2016" -author = "Jonathan Turner" +authors = ["Jonathan Turner"] +aliases = ["2016/06/30/State-of-Rust-Survey-2016.html"] +++ We recently wrapped up with a survey for the Rust community. Little did we know that it would grow to be one of the largest language community surveys. A *huge* thank you to the **3,086** people who responded! We're humbled by the response, and we're thankful for all the great feedback. diff --git a/content/The-2018-Rust-Event-Lineup.md b/content/The-2018-Rust-Event-Lineup.md index d66c51717..941305ac3 100644 --- a/content/The-2018-Rust-Event-Lineup.md +++ b/content/The-2018-Rust-Event-Lineup.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2018-01-31 +path = "2018/01/31/The-2018-Rust-Event-Lineup" title = "The 2018 Rust Event Lineup" -author = "Rust Community" +authors = ["Rust Community"] description = "Lots of Rust events are happening this year; join us at one near you!" +aliases = ["2018/01/31/The-2018-Rust-Event-Lineup.html"] +++ Every year there are multiple Rust events around the world, bringing together the community. diff --git a/content/The-2019-Rust-Event-Lineup.md b/content/The-2019-Rust-Event-Lineup.md index 9bc3e7a38..c2bbe6df6 100644 --- a/content/The-2019-Rust-Event-Lineup.md +++ b/content/The-2019-Rust-Event-Lineup.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2019-05-20 +path = "2019/05/20/The-2019-Rust-Event-Lineup" title = "The 2019 Rust Event Lineup" -author = "Rust Community Team" +authors = ["Rust Community Team"] description = "Lots of Rust events are happening this year; join us at one near you!" +aliases = ["2019/05/20/The-2019-Rust-Event-Lineup.html"] +++ We're excited for the 2019 conference season, which we're actually late in writing up. Some diff --git a/content/Underhanded-Rust.md b/content/Underhanded-Rust.md index 9e10df017..970e059ec 100644 --- a/content/Underhanded-Rust.md +++ b/content/Underhanded-Rust.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2016-12-15 +path = "2016/12/15/Underhanded-Rust" title = "Announcing the First Underhanded Rust Contest" -author = "The Rust Community Team" +authors = ["The Rust Community Team"] +aliases = ["2016/12/15/Underhanded-Rust.html"] +++ The [Rust Community Team](https://community.rs) is pleased to announce the diff --git a/content/Update-on-crates.io-incident.md b/content/Update-on-crates.io-incident.md index 61bbcafc9..1dadc467c 100644 --- a/content/Update-on-crates.io-incident.md +++ b/content/Update-on-crates.io-incident.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-10-19 +path = "2018/10/19/Update-on-crates.io-incident" title = "Update on the October 15, 2018 incident on crates.io" -author = "The Crates.io Team" +authors = ["The Crates.io Team"] +aliases = ["2018/10/19/Update-on-crates.io-incident.html"] +++ On Monday, Oct 15, starting at approximately 20:00 UTC, crates.io sustained diff --git a/content/Updating-musl-targets.md b/content/Updating-musl-targets.md index 2ad8ca65b..b4ae2e5dc 100644 --- a/content/Updating-musl-targets.md +++ b/content/Updating-musl-targets.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2023-05-09 +path = "2023/05/09/Updating-musl-targets" title = "Updating Rust's Linux musl targets" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "musl targets will soon ship with musl 1.2" -team = "The Compiler Team " +aliases = ["2023/05/09/Updating-musl-targets.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Beginning with Rust 1.71 (slated for stable release on 2023-07-13), the various `*-linux-musl` targets will [ship][PR] with musl 1.2.3. diff --git a/content/Windows-7.md b/content/Windows-7.md index 031a7f437..46a9f326c 100644 --- a/content/Windows-7.md +++ b/content/Windows-7.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-02-26 +path = "2024/02/26/Windows-7" title = "Updated baseline standards for Windows targets" -author = "Chris Denton on behalf of the Compiler Team" +authors = ["Chris Denton on behalf of the Compiler Team"] +aliases = ["2024/02/26/Windows-7.html"] +++ The minimum requirements for Tier 1 toolchains targeting Windows will increase with the 1.78 release (scheduled for May 02, 2024). diff --git a/content/a-new-look-for-rust-lang-org.md b/content/a-new-look-for-rust-lang-org.md index 1ea8161a6..c36ae225b 100644 --- a/content/a-new-look-for-rust-lang-org.md +++ b/content/a-new-look-for-rust-lang-org.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-11-29 +path = "2018/11/29/a-new-look-for-rust-lang-org" title = "A new look for rust-lang.org" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/11/29/a-new-look-for-rust-lang-org.html"] +++ Before 1.0, Rust had a reputation for changing the language on a near-daily diff --git a/content/adopting-the-fls.md b/content/adopting-the-fls.md index 7127d2cb9..9f1bd49a9 100644 --- a/content/adopting-the-fls.md +++ b/content/adopting-the-fls.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-03-26 +path = "2025/03/26/adopting-the-fls" title = "Adopting the FLS" -author = "TC" -team = "the Spec Team " +authors = ["TC"] +aliases = ["2025/03/26/adopting-the-fls.html"] + +[extra] +team = "the Spec Team" +team_url = "https://www.rust-lang.org/governance/teams/lang#team-spec" +++ # Adopting the FLS diff --git a/content/all-hands.md b/content/all-hands.md index ee3e7221a..1811951fa 100644 --- a/content/all-hands.md +++ b/content/all-hands.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-04-06 +path = "2018/04/06/all-hands" title = "The Rust Team All Hands in Berlin: a Recap" -author = "Aaron Turon" +authors = ["Aaron Turon"] +aliases = ["2018/04/06/all-hands.html"] +++ Last week we held an "All Hands" event in Berlin, which drew more than 50 people diff --git a/content/android-ndk-update-r25.md b/content/android-ndk-update-r25.md index a4c184444..7305cd723 100644 --- a/content/android-ndk-update-r25.md +++ b/content/android-ndk-update-r25.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2023-01-09 +path = "2023/01/09/android-ndk-update-r25" title = "Updating the Android NDK in Rust 1.68" -author = "Android Platform Team" +authors = ["Android Platform Team"] description = "Modernizing Android support in Rust" +aliases = ["2023/01/09/android-ndk-update-r25.html"] +++ We are pleased to announce that Android platform support in Rust will be diff --git a/content/announcing-the-new-rust-project-directors.md b/content/announcing-the-new-rust-project-directors.md index ab5d5a799..c4dd4c227 100644 --- a/content/announcing-the-new-rust-project-directors.md +++ b/content/announcing-the-new-rust-project-directors.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-10-19 +path = "2023/10/19/announcing-the-new-rust-project-directors" title = "Announcing the New Rust Project Directors" -author = "Leadership Council" -team = "Leadership Council " +authors = ["Leadership Council"] +aliases = ["2023/10/19/announcing-the-new-rust-project-directors.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ We are happy to announce that we have completed the process to elect new Project Directors. diff --git a/content/annual-survey-2024-launch.md b/content/annual-survey-2024-launch.md index d05161353..b507f6737 100644 --- a/content/annual-survey-2024-launch.md +++ b/content/annual-survey-2024-launch.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2024-12-05 +path = "2024/12/05/annual-survey-2024-launch" title = "Launching the 2024 State of Rust Survey" -author = "The Rust Survey Working Group" +authors = ["The Rust Survey Working Group"] description = "Share your experience using Rust in the ninth edition of the State of Rust Survey" +aliases = ["2024/12/05/annual-survey-2024-launch.html"] +++ It’s time for the [2024 State of Rust Survey][survey-link]! diff --git a/content/async-fn-rpit-in-traits.md b/content/async-fn-rpit-in-traits.md index 8b02e1bf4..620b9a26a 100644 --- a/content/async-fn-rpit-in-traits.md +++ b/content/async-fn-rpit-in-traits.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-12-21 +path = "2023/12/21/async-fn-rpit-in-traits" title = "Announcing `async fn` and return-position `impl Trait` in traits" -author = "Tyler Mandry" -team = "The Async Working Group " +authors = ["Tyler Mandry"] +aliases = ["2023/12/21/async-fn-rpit-in-traits.html"] + +[extra] +team = "The Async Working Group" +team_url = "https://www.rust-lang.org/governance/wgs/wg-async" +++ The Rust Async Working Group is excited to announce major progress towards our goal of enabling the use of `async fn` in traits. Rust 1.75, which hits stable next week, will include support for both `-> impl Trait` notation and `async fn` in traits. diff --git a/content/async-vision-doc-shiny-future.md b/content/async-vision-doc-shiny-future.md index c9867ff74..8274b316e 100644 --- a/content/async-vision-doc-shiny-future.md +++ b/content/async-vision-doc-shiny-future.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-04-14 +path = "2021/04/14/async-vision-doc-shiny-future" title = "Brainstorming Async Rust's Shiny Future" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Brainstorming Async Rust's Shiny Future" -team = "the Async Foundations Working Group " +aliases = ["2021/04/14/async-vision-doc-shiny-future.html"] + +[extra] +team = "the Async Foundations Working Group" +team_url = "https://rust-lang.github.io/wg-async-foundations/" +++ On March 18th, we [announced the start of the Async Vision Doc][announce] process. Since then, we've landed [24 "status quo" stories][sq] and we have [4 more stories in open PRs][prs]; [Ryan Levick] and [I] have also hosted more than ten collaborative writing sessions over the course of the last few weeks, and we have [more scheduled for this week][cws]. diff --git a/content/async-vision-doc.md b/content/async-vision-doc.md index d6988a816..1bbcf070f 100644 --- a/content/async-vision-doc.md +++ b/content/async-vision-doc.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-03-18 +path = "2021/03/18/async-vision-doc" title = "Building a shared vision for Async Rust" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Building a shared vision for Async Rust" -team = "the Async Foundations Working Group " +aliases = ["2021/03/18/async-vision-doc.html"] + +[extra] +team = "the Async Foundations Working Group" +team_url = "https://rust-lang.github.io/wg-async-foundations/" +++ [wg]: https://rust-lang.github.io/wg-async-foundations/ diff --git a/content/broken-badges-and-23k-keywords.md b/content/broken-badges-and-23k-keywords.md index 9c4165db5..1b493ca87 100644 --- a/content/broken-badges-and-23k-keywords.md +++ b/content/broken-badges-and-23k-keywords.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-10-26 +path = "2023/10/26/broken-badges-and-23k-keywords" title = "A tale of broken badges and 23,000 features" -author = "Tobias Bieniek" -team = "the crates.io team " +authors = ["Tobias Bieniek"] +aliases = ["2023/10/26/broken-badges-and-23k-keywords.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ Around mid-October of 2023 the crates.io team was [notified](https://github.com/rust-lang/crates.io/issues/7269) by one of our users that a [shields.io](https://shields.io) badge for their crate stopped working. The issue reporter was kind enough to already debug the problem and figured out that the API request that shields.io sends to crates.io was most likely the problem. Here is a quote from the original issue: diff --git a/content/c-abi-changes-for-wasm32-unknown-unknown.md b/content/c-abi-changes-for-wasm32-unknown-unknown.md index 926fbb1ca..2659a6512 100644 --- a/content/c-abi-changes-for-wasm32-unknown-unknown.md +++ b/content/c-abi-changes-for-wasm32-unknown-unknown.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2025-04-04 +path = "2025/04/04/c-abi-changes-for-wasm32-unknown-unknown" title = "C ABI Changes for `wasm32-unknown-unknown`" -author = "Alex Crichton" +authors = ["Alex Crichton"] +aliases = ["2025/04/04/c-abi-changes-for-wasm32-unknown-unknown.html"] +++ The `extern "C"` ABI for the `wasm32-unknown-unknown` target has been using a diff --git a/content/call-for-rust-2019-roadmap-blogposts.md b/content/call-for-rust-2019-roadmap-blogposts.md index 9fc8e7ae1..9aa351f94 100644 --- a/content/call-for-rust-2019-roadmap-blogposts.md +++ b/content/call-for-rust-2019-roadmap-blogposts.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-12-06 +path = "2018/12/06/call-for-rust-2019-roadmap-blogposts" title = "A call for Rust 2019 Roadmap blog posts" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/12/06/call-for-rust-2019-roadmap-blogposts.html"] +++ It's almost 2019! As such, the Rust team needs to create a roadmap for Rust's diff --git a/content/cargo-cache-cleaning.md b/content/cargo-cache-cleaning.md index e944717f2..26cd76926 100644 --- a/content/cargo-cache-cleaning.md +++ b/content/cargo-cache-cleaning.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-12-11 +path = "2023/12/11/cargo-cache-cleaning" title = "Cargo cache cleaning" -author = "Eric Huss" -team = "The Cargo Team " +authors = ["Eric Huss"] +aliases = ["2023/12/11/cargo-cache-cleaning.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ Cargo has recently gained an unstable feature on the nightly channel (starting with nightly-2023-11-17) to perform automatic cleaning of cache content within Cargo's home directory. diff --git a/content/cargo-cves.md b/content/cargo-cves.md index 05f3f8d2d..673c4f414 100644 --- a/content/cargo-cves.md +++ b/content/cargo-cves.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-09-14 +path = "2022/09/14/cargo-cves" title = "Security advisories for Cargo (CVE-2022-36113, CVE-2022-36114)" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2022/09/14/cargo-cves.html"] +++ > This is a cross-post of [the official security advisory][advisory]. The diff --git a/content/cargo-pillars.md b/content/cargo-pillars.md index e183b0bbb..3cf7d034d 100644 --- a/content/cargo-pillars.md +++ b/content/cargo-pillars.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2016-05-05 +path = "2016/05/05/cargo-pillars" title = "Cargo: predictable dependency management" -author = "Yehuda Katz" +authors = ["Yehuda Katz"] description = "Cargo makes dependency management in Rust easy and predictable" +aliases = ["2016/05/05/cargo-pillars.html"] +++ Cargo's goal is to make modern application package management a core value of diff --git a/content/changes-in-the-core-team@0.md b/content/changes-in-the-core-team@0.md index 0e0575f8a..b8135a53d 100644 --- a/content/changes-in-the-core-team@0.md +++ b/content/changes-in-the-core-team@0.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-01-31 +path = "2022/01/31/changes-in-the-core-team" title = "Changes in the Core Team" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2022/01/31/changes-in-the-core-team.html"] +++ We want to say thanks to three people who recently have decided to step back from the Core Team: diff --git a/content/changes-in-the-core-team@1.md b/content/changes-in-the-core-team@1.md index 2410846fa..6c212fb8b 100644 --- a/content/changes-in-the-core-team@1.md +++ b/content/changes-in-the-core-team@1.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-07-12 +path = "2022/07/12/changes-in-the-core-team" title = "Changes in the Core Team" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2022/07/12/changes-in-the-core-team.html"] +++ We want to say farewell and thanks to a couple of people who are stepping back from the Core Team: diff --git a/content/check-cfg.md b/content/check-cfg.md index 91918c825..f7914df9a 100644 --- a/content/check-cfg.md +++ b/content/check-cfg.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-05-06 +path = "2024/05/06/check-cfg" title = "Automatic checking of cfgs at compile-time" -author = "Urgau" -team = "The Cargo Team " +authors = ["Urgau"] +aliases = ["2024/05/06/check-cfg.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ The Cargo and Compiler team are delighted to announce that starting with Rust 1.80 (or nightly-2024-05-05) every _reachable_ `#[cfg]` will be **automatically checked** that they match the **expected config names and values**. diff --git a/content/committing-lockfiles.md b/content/committing-lockfiles.md index ec33d648e..a7e50244c 100644 --- a/content/committing-lockfiles.md +++ b/content/committing-lockfiles.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-08-29 +path = "2023/08/29/committing-lockfiles" title = "Change in Guidance on Committing Lockfiles" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["2023/08/29/committing-lockfiles.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ For years, the Cargo team has encouraged Rust developers to diff --git a/content/conf-lineup@0.md b/content/conf-lineup@0.md index 01f43213b..bb5bbcd0e 100644 --- a/content/conf-lineup@0.md +++ b/content/conf-lineup@0.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2016-07-25 +path = "2016/07/25/conf-lineup" title = "The 2016 Rust Conference Lineup" -author = "Rust Community" +authors = ["Rust Community"] description = "Three Rust conferences are coming up soon; join us at one near you!" +aliases = ["2016/07/25/conf-lineup.html"] +++ The Rust Community is holding three major conferences in the near future, and we diff --git a/content/conf-lineup@1.md b/content/conf-lineup@1.md index cbea58493..e14188f4b 100644 --- a/content/conf-lineup@1.md +++ b/content/conf-lineup@1.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2017-07-18 +path = "2017/07/18/conf-lineup" title = "The 2017 Rust Conference Lineup" -author = "Rust Community" +authors = ["Rust Community"] description = "Three Rust conferences are coming up soon; join us at one near you!" +aliases = ["2017/07/18/conf-lineup.html"] +++ The Rust Community is holding three major conferences in the near future! diff --git a/content/conf-lineup@2.md b/content/conf-lineup@2.md index e382d1414..f237a2a42 100644 --- a/content/conf-lineup@2.md +++ b/content/conf-lineup@2.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2020-01-31 +path = "2020/01/31/conf-lineup" title = "The 2020 Rust Event Lineup" -author = "Rust Community" +authors = ["Rust Community"] description = "Welcome to 2020; We are excited about the Rust conferences coming up; join us at one near you!" +aliases = ["2020/01/31/conf-lineup.html"] +++ diff --git a/content/const-eval-safety-rule-revision.md b/content/const-eval-safety-rule-revision.md index c5d8e8eb1..664db7196 100644 --- a/content/const-eval-safety-rule-revision.md +++ b/content/const-eval-safety-rule-revision.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-09-15 +path = "2022/09/15/const-eval-safety-rule-revision" title = "Const Eval (Un)Safety Rules" -author = "Felix Klock" +authors = ["Felix Klock"] description = "Various ways const-eval can change between Rust versions" -team = "The Compiler Team " +aliases = ["2022/09/15/const-eval-safety-rule-revision.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ In a recent Rust issue ([#99923][]), a developer noted that the upcoming diff --git a/content/const-generics-mvp-beta.md b/content/const-generics-mvp-beta.md index e92c58e25..ceb9c8642 100644 --- a/content/const-generics-mvp-beta.md +++ b/content/const-generics-mvp-beta.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2021-02-26 +path = "2021/02/26/const-generics-mvp-beta" title = "Const generics MVP hits beta!" -author = "The const generics project group" +authors = ["The const generics project group"] +aliases = ["2021/02/26/const-generics-mvp-beta.html"] +++ After more than 3 years since the [original RFC for const generics](https://github.com/rust-lang/rfcs/blob/master/text/2000-const-generics.md) was accepted, **the first version of const generics is now available in the Rust beta channel!** It will be available in the 1.51 release, which is expected to be released on **March 25th, 2021**. Const generics is one of the [most highly anticipated](https://blog.rust-lang.org/2020/12/16/rust-survey-2020.html) features coming to Rust, and we're excited for people to start taking advantage of the increased power of the language following this addition. diff --git a/content/council-survey.md b/content/council-survey.md index b506c3462..eb64c347a 100644 --- a/content/council-survey.md +++ b/content/council-survey.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-08-26 +path = "2024/08/26/council-survey" title = "2024 Leadership Council Survey" -author = "The Leadership Council" +authors = ["The Leadership Council"] +aliases = ["2024/08/26/council-survey.html"] +++ One of the responsibilities of the [leadership council](https://www.rust-lang.org/governance/teams/leadership-council), diff --git a/content/crates-io-development-update@0.md b/content/crates-io-development-update@0.md index f9bba6e3c..1f2039f7d 100644 --- a/content/crates-io-development-update@0.md +++ b/content/crates-io-development-update@0.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-07-29 +path = "2024/07/29/crates-io-development-update" title = "crates.io: development update" -author = "Tobias Bieniek" -team = "the crates.io team " +authors = ["Tobias Bieniek"] +aliases = ["2024/07/29/crates-io-development-update.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ Since crates.io does not have releases in the classical sense, there are no release notes either. However, the crates.io team still wants to keep you all updated about the ongoing development of crates.io. This blog post is a summary of the most significant changes that we have made to crates.io in the past months. diff --git a/content/crates-io-development-update@1.md b/content/crates-io-development-update@1.md index 80cec9aaa..11967e8ec 100644 --- a/content/crates-io-development-update@1.md +++ b/content/crates-io-development-update@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-02-05 +path = "2025/02/05/crates-io-development-update" title = "crates.io: development update" -author = "Tobias Bieniek" -team = "the crates.io team " +authors = ["Tobias Bieniek"] +aliases = ["2025/02/05/crates-io-development-update.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ Back in July 2024, we published a [blog post](https://blog.rust-lang.org/2024/07/29/crates-io-development-update.html) about the ongoing development of crates.io. Since then, we have made a lot of progress and shipped a few new features. In this blog post, we want to give you an update on the latest changes that we have made to crates.io. diff --git a/content/crates-io-download-changes.md b/content/crates-io-download-changes.md index 9473ce23e..828d0ea82 100644 --- a/content/crates-io-download-changes.md +++ b/content/crates-io-download-changes.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-03-11 +path = "2024/03/11/crates-io-download-changes" title = "crates.io: Download changes" -author = "Tobias Bieniek" -team = "the crates.io team " +authors = ["Tobias Bieniek"] +aliases = ["2024/03/11/crates-io-download-changes.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ Like the rest of the Rust community, [crates.io](https://crates.io) has been growing rapidly, with download and package counts increasing 2-3x year-on-year. This growth doesn't come without problems, and we have made some changes to download handling on crates.io to ensure we can keep providing crates for a long time to come. diff --git a/content/crates-io-non-canonical-downloads.md b/content/crates-io-non-canonical-downloads.md index a0d297c9f..9506110b2 100644 --- a/content/crates-io-non-canonical-downloads.md +++ b/content/crates-io-non-canonical-downloads.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-10-27 +path = "2023/10/27/crates-io-non-canonical-downloads" title = "crates.io: Dropping support for non-canonical downloads" -author = "Tobias Bieniek" -team = "the crates.io team " +authors = ["Tobias Bieniek"] +aliases = ["2023/10/27/crates-io-non-canonical-downloads.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ ## TL;DR diff --git a/content/crates-io-security-advisory.md b/content/crates-io-security-advisory.md index 52c10765d..dee1dd087 100644 --- a/content/crates-io-security-advisory.md +++ b/content/crates-io-security-advisory.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-07-14 +path = "2020/07/14/crates-io-security-advisory" title = "crates.io security advisory" -author = "Rust Security Response WG" +authors = ["Rust Security Response WG"] +aliases = ["2020/07/14/crates-io-security-advisory.html"] +++ This is a cross-post of [the official security advisory][ml]. The official post diff --git a/content/crates-io-security-session-cookies.md b/content/crates-io-security-session-cookies.md index a4a54ec23..f6ad2b709 100644 --- a/content/crates-io-security-session-cookies.md +++ b/content/crates-io-security-session-cookies.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-04-11 +path = "2025/04/11/crates-io-security-session-cookies" title = "crates.io security incident: improperly stored session cookies" -author = "Adam Harvey" -team = "the crates.io team " +authors = ["Adam Harvey"] +aliases = ["2025/04/11/crates-io-security-session-cookies.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ Today the crates.io team discovered that the contents of the `cargo_session` diff --git a/content/crates-io-snapshot-branches.md b/content/crates-io-snapshot-branches.md index 4280632c4..b2261d248 100644 --- a/content/crates-io-snapshot-branches.md +++ b/content/crates-io-snapshot-branches.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-02-14 +path = "2022/02/14/crates-io-snapshot-branches" title = "Crates.io Index Snapshot Branches Moving" -author = "The Crates.io Team" +authors = ["The Crates.io Team"] +aliases = ["2022/02/14/crates-io-snapshot-branches.html"] +++ Every so often, the [crates.io index](https://github.com/rust-lang/crates.io-index)'s Git history diff --git a/content/crates-io-status-codes.md b/content/crates-io-status-codes.md index fa44e1d0d..a08c5515f 100644 --- a/content/crates-io-status-codes.md +++ b/content/crates-io-status-codes.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-02-06 +path = "2024/02/06/crates-io-status-codes" title = "crates.io: API status code changes" -author = "Tobias Bieniek" -team = "the crates.io team " +authors = ["Tobias Bieniek"] +aliases = ["2024/02/06/crates-io-status-codes.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ Cargo and crates.io were developed in the rush leading up to the Rust 1.0 release to fill the needs for a tool to manage dependencies and a registry that people could use to share code. This rapid work resulted in these tools being connected with an API that initially didn't return the correct [HTTP response status codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status). After the Rust 1.0 release, Rust's stability guarantees around backward compatibility made this non-trivial to fix, as we wanted older versions of Cargo to continue working with the current crates.io API. diff --git a/content/crates-io-usage-policy-rfc.md b/content/crates-io-usage-policy-rfc.md index 895fd94bc..4357ca3db 100644 --- a/content/crates-io-usage-policy-rfc.md +++ b/content/crates-io-usage-policy-rfc.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-09-22 +path = "2023/09/22/crates-io-usage-policy-rfc" title = "crates.io Policy Update RFC" -author = "Tobias Bieniek" -team = "the crates.io team " +authors = ["Tobias Bieniek"] +aliases = ["2023/09/22/crates-io-usage-policy-rfc.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ Around the end of July the crates.io team opened an [RFC](https://github.com/rust-lang/rfcs/pull/3463) to update the current crates.io usage policies. This policy update addresses operational concerns of the crates.io community service that have arisen since the last significant policy update in 2017, particularly related to name squatting and spam. The RFC has caused considerable discussion, and most of the suggested improvements have since been integrated into the proposal. diff --git a/content/cve-2021-42574.md b/content/cve-2021-42574.md index d73db3ea7..52beb7b2c 100644 --- a/content/cve-2021-42574.md +++ b/content/cve-2021-42574.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2021-11-01 +path = "2021/11/01/cve-2021-42574" title = "Security advisory for rustc (CVE-2021-42574)" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2021/11/01/cve-2021-42574.html"] +++ > This is a lightly edited cross-post of [the official security advisory][advisory]. The diff --git a/content/cve-2022-21658.md b/content/cve-2022-21658.md index 306b9e169..d7bdc9256 100644 --- a/content/cve-2022-21658.md +++ b/content/cve-2022-21658.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-01-20 +path = "2022/01/20/cve-2022-21658" title = "Security advisory for the standard library (CVE-2022-21658)" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2022/01/20/cve-2022-21658.html"] +++ > This is a cross-post of [the official security advisory][advisory]. The diff --git a/content/cve-2022-24713.md b/content/cve-2022-24713.md index 9e8df828b..02a7bdbb8 100644 --- a/content/cve-2022-24713.md +++ b/content/cve-2022-24713.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-03-08 +path = "2022/03/08/cve-2022-24713" title = "Security advisory for the regex crate (CVE-2022-24713)" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2022/03/08/cve-2022-24713.html"] +++ > This is a cross-post of [the official security advisory][advisory]. The diff --git a/content/cve-2022-46176.md b/content/cve-2022-46176.md index 93404dccb..deb5d17d6 100644 --- a/content/cve-2022-46176.md +++ b/content/cve-2022-46176.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2023-01-10 +path = "2023/01/10/cve-2022-46176" title = "Security advisory for Cargo (CVE-2022-46176)" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2023/01/10/cve-2022-46176.html"] +++ > This is a cross-post of [the official security advisory][advisory]. The diff --git a/content/cve-2023-38497.md b/content/cve-2023-38497.md index 997fc3651..29bfd6679 100644 --- a/content/cve-2023-38497.md +++ b/content/cve-2023-38497.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2023-08-03 +path = "2023/08/03/cve-2023-38497" title = "Security advisory for Cargo (CVE-2023-38497)" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2023/08/03/cve-2023-38497.html"] +++ > This is a cross-post of [the official security advisory][advisory]. The diff --git a/content/cve-2024-24576.md b/content/cve-2024-24576.md index 9d3fcdb51..47c827e07 100644 --- a/content/cve-2024-24576.md +++ b/content/cve-2024-24576.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-04-09 +path = "2024/04/09/cve-2024-24576" title = "Security advisory for the standard library (CVE-2024-24576)" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2024/04/09/cve-2024-24576.html"] +++ The Rust Security Response WG was notified that the Rust standard library did diff --git a/content/cve-2024-43402.md b/content/cve-2024-43402.md index 03b021594..7c65c3a79 100644 --- a/content/cve-2024-43402.md +++ b/content/cve-2024-43402.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-09-04 +path = "2024/09/04/cve-2024-43402" title = "Security advisory for the standard library (CVE-2024-43402)" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2024/09/04/cve-2024-43402.html"] +++ On April 9th, 2024, the Rust Security Response WG disclosed [CVE-2024-24576][1], diff --git a/content/docs-rs-opt-into-fewer-targets.md b/content/docs-rs-opt-into-fewer-targets.md index b6daec3ec..af0dab5ed 100644 --- a/content/docs-rs-opt-into-fewer-targets.md +++ b/content/docs-rs-opt-into-fewer-targets.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-03-15 +path = "2020/03/15/docs-rs-opt-into-fewer-targets" title = "docs.rs now allows you to choose your build targets" -author = "Jynn Nelson" -team = "the docs.rs team " +authors = ["Jynn Nelson"] +aliases = ["2020/03/15/docs-rs-opt-into-fewer-targets.html"] + +[extra] +team = "the docs.rs team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#docs-rs" +++ Recently, [docs.rs] added a feature that allows crates to opt-out of building on all targets. diff --git a/content/edition-2021.md b/content/edition-2021.md index f518464eb..ac6b1955d 100644 --- a/content/edition-2021.md +++ b/content/edition-2021.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-05-11 +path = "2021/05/11/edition-2021" title = "The Plan for the Rust 2021 Edition" -author = "Mara Bos" -team = "The Rust 2021 Edition Working Group " +authors = ["Mara Bos"] +aliases = ["2021/05/11/edition-2021.html"] + +[extra] +team = "The Rust 2021 Edition Working Group" +team_url = "https://www.rust-lang.org/governance/teams/core#project-edition-2021" +++ We are happy to announce that the third edition of the Rust language, Rust 2021, diff --git a/content/electing-new-project-directors.md b/content/electing-new-project-directors.md index 864a968ec..ddffc7b5b 100644 --- a/content/electing-new-project-directors.md +++ b/content/electing-new-project-directors.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-08-30 +path = "2023/08/30/electing-new-project-directors" title = "Electing New Project Directors" -author = "Leadership Council" -team = "Leadership Council " +authors = ["Leadership Council"] +aliases = ["2023/08/30/electing-new-project-directors.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Today we are launching the process to elect new Project Directors to the Rust Foundation Board of Directors. diff --git a/content/enabling-rust-lld-on-linux.md b/content/enabling-rust-lld-on-linux.md index 659e9d66e..cb9d1dad5 100644 --- a/content/enabling-rust-lld-on-linux.md +++ b/content/enabling-rust-lld-on-linux.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-05-17 +path = "2024/05/17/enabling-rust-lld-on-linux" title = "Faster linking times on nightly on Linux using `rust-lld`" -author = "Rémy Rakic" -team = "the compiler performance working group " +authors = ["Rémy Rakic"] +aliases = ["2024/05/17/enabling-rust-lld-on-linux.html"] + +[extra] +team = "the compiler performance working group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#team-wg-compiler-performance" +++ TL;DR: rustc will use `rust-lld` by default on `x86_64-unknown-linux-gnu` on nightly to diff --git a/content/event-lineup-update.md b/content/event-lineup-update.md index d8f2739cd..b14dc8ab1 100644 --- a/content/event-lineup-update.md +++ b/content/event-lineup-update.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2020-06-10 +path = "2020/06/10/event-lineup-update" title = "2020 Event Lineup - Update" -author = "The Rust Community Team" +authors = ["The Rust Community Team"] description = "Join Rust events online" +aliases = ["2020/06/10/event-lineup-update.html"] +++ In 2020 the way we can do events suddenly changed. diff --git a/content/five-years-of-rust.md b/content/five-years-of-rust.md index 654bc12b4..ff34fb329 100644 --- a/content/five-years-of-rust.md +++ b/content/five-years-of-rust.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-05-15 +path = "2020/05/15/five-years-of-rust" title = "Five Years of Rust" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2020/05/15/five-years-of-rust.html"] +++ With all that's going on in the world you'd be forgiven for forgetting that as diff --git a/content/gats-stabilization.md b/content/gats-stabilization.md index 1510584d7..5418d5725 100644 --- a/content/gats-stabilization.md +++ b/content/gats-stabilization.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-10-28 +path = "2022/10/28/gats-stabilization" title = "Generic associated types to be stable in Rust 1.65" -author = "Jack Huey" +authors = ["Jack Huey"] description = "Generic associated types will stabilize in Rust 1.65" -team = "The Types Team " +aliases = ["2022/10/28/gats-stabilization.html"] + +[extra] +team = "The Types Team" +team_url = "https://github.com/rust-lang/types-team" +++ As of Rust 1.65, which is set to release on November 3rd, generic associated types (GATs) will be stable — over six and a half years after the original [RFC] was opened. This is truly a monumental achievement; however, as with a few of the other monumental features of Rust, like `async` or const generics, there are limitations in the initial stabilization that we plan to remove in the future. diff --git a/content/gccrs-an-alternative-compiler-for-rust.md b/content/gccrs-an-alternative-compiler-for-rust.md index fbedb22b2..82f88fc6c 100644 --- a/content/gccrs-an-alternative-compiler-for-rust.md +++ b/content/gccrs-an-alternative-compiler-for-rust.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-11-07 +path = "2024/11/07/gccrs-an-alternative-compiler-for-rust" title = "gccrs: An alternative compiler for Rust" -author = "Arthur Cohen on behalf of the gccrs project" +authors = ["Arthur Cohen on behalf of the gccrs project"] +aliases = ["2024/11/07/gccrs-an-alternative-compiler-for-rust.html"] +++ *This is a guest post from the gccrs project, at the invitation of the Rust Project, to clarify the relationship with the Rust Project and the opportunities for collaboration.* diff --git a/content/governance-wg-announcement.md b/content/governance-wg-announcement.md index c0c16394f..acd7dcd3d 100644 --- a/content/governance-wg-announcement.md +++ b/content/governance-wg-announcement.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-06-03 +path = "2019/06/03/governance-wg-announcement" title = "The Governance WG is going public" -author = "The Rust Governance WG" +authors = ["The Rust Governance WG"] +aliases = ["2019/06/03/governance-wg-announcement.html"] +++ diff --git a/content/gsoc-2024-results.md b/content/gsoc-2024-results.md index b0afd1244..3b7771633 100644 --- a/content/gsoc-2024-results.md +++ b/content/gsoc-2024-results.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-11-07 +path = "2024/11/07/gsoc-2024-results" title = "Google Summer of Code 2024 results" -author = "Jakub Beránek, Jack Huey and Paul Lenz" +authors = ["Jakub Beránek, Jack Huey and Paul Lenz"] +aliases = ["2024/11/07/gsoc-2024-results.html"] +++ As we have previously [announced][gsoc-blog-post], the Rust Project participated diff --git a/content/gsoc-2024-selected-projects.md b/content/gsoc-2024-selected-projects.md index 8840ee699..ec39d14a8 100644 --- a/content/gsoc-2024-selected-projects.md +++ b/content/gsoc-2024-selected-projects.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-05-01 +path = "2024/05/01/gsoc-2024-selected-projects" title = "Announcing Google Summer of Code 2024 selected projects" -author = "Jakub Beránek, Jack Huey and Paul Lenz" +authors = ["Jakub Beránek, Jack Huey and Paul Lenz"] +aliases = ["2024/05/01/gsoc-2024-selected-projects.html"] +++ The Rust Project is [participating][gsoc blog post] in [Google Summer of Code (GSoC) 2024][gsoc], a global program organized by Google which is designed to bring new contributors to the world of open-source. diff --git a/content/help-test-rust-2018.md b/content/help-test-rust-2018.md index 772c096ba..288846f4e 100644 --- a/content/help-test-rust-2018.md +++ b/content/help-test-rust-2018.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-10-30 +path = "2018/10/30/help-test-rust-2018" title = "Help test Rust 2018" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/10/30/help-test-rust-2018.html"] +++ Back in July, we talked about ["Rust 2018"]. In short, we are launching a diff --git a/content/i128-layout-update.md b/content/i128-layout-update.md index 1392ffda0..170d957ae 100644 --- a/content/i128-layout-update.md +++ b/content/i128-layout-update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-03-30 +path = "2024/03/30/i128-layout-update" title = "Changes to `u128`/`i128` layout in 1.77 and 1.78" -author = "Trevor Gross" -team = "The Rust Lang Team " +authors = ["Trevor Gross"] +aliases = ["2024/03/30/i128-layout-update.html"] + +[extra] +team = "The Rust Lang Team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ Rust has long had an inconsistency with C regarding the alignment of 128-bit integers diff --git a/content/impl-future-for-rust.md b/content/impl-future-for-rust.md index 2df1561ca..58148355b 100644 --- a/content/impl-future-for-rust.md +++ b/content/impl-future-for-rust.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2017-09-18 +path = "2017/09/18/impl-future-for-rust" title = "impl Future for Rust" -author = "Aaron Turon" +authors = ["Aaron Turon"] description = "The Rust community is going to finish out its 2017 roadmap with a bang—and we want your help!" +aliases = ["2017/09/18/impl-future-for-rust.html"] +++ The Rust community has been hard at work on our [2017 roadmap], but as we come diff --git a/content/impl-trait-capture-rules.md b/content/impl-trait-capture-rules.md index ba7e03eda..9a9a2bddf 100644 --- a/content/impl-trait-capture-rules.md +++ b/content/impl-trait-capture-rules.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-09-05 +path = "2024/09/05/impl-trait-capture-rules" title = "Changes to `impl Trait` in Rust 2024" -author = "Niko Matsakis" -team = "the language team " +authors = ["Niko Matsakis"] +aliases = ["2024/09/05/impl-trait-capture-rules.html"] + +[extra] +team = "the language team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ The default way `impl Trait` works in return position is changing in Rust 2024. These changes are meant to simplify `impl Trait` to better match what people want most of the time. We're also adding a flexible syntax that gives you full control when you need it. diff --git a/content/improved-api-tokens-for-crates-io.md b/content/improved-api-tokens-for-crates-io.md index fced5457d..401af5456 100644 --- a/content/improved-api-tokens-for-crates-io.md +++ b/content/improved-api-tokens-for-crates-io.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-06-23 +path = "2023/06/23/improved-api-tokens-for-crates-io" title = "Improved API tokens for crates.io" -author = "Tobias Bieniek" -team = "the crates.io team " +authors = ["Tobias Bieniek"] +aliases = ["2023/06/23/improved-api-tokens-for-crates-io.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ If you recently generated a new API token on crates.io, you might have noticed diff --git a/content/incremental.md b/content/incremental.md index c083e1163..269463828 100644 --- a/content/incremental.md +++ b/content/incremental.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2016-09-08 +path = "2016/09/08/incremental" title = "Incremental Compilation" -author = "Michael Woerister" +authors = ["Michael Woerister"] description = "Incremental compilation for exponential joy and happiness." +aliases = ["2016/09/08/incremental.html"] +++ I remember when, during the 1.0 anniversary presentation at the diff --git a/content/inside-rust-blog.md b/content/inside-rust-blog.md index 0092faced..631ad1506 100644 --- a/content/inside-rust-blog.md +++ b/content/inside-rust-blog.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-10-03 +path = "2019/10/03/inside-rust-blog" title = "Announcing the Inside Rust blog" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] +aliases = ["2019/10/03/inside-rust-blog.html"] +++ Today we're happy to announce that we're starting a second blog, the diff --git a/content/inside-rust/1.45.1-prerelease.md b/content/inside-rust/1.45.1-prerelease.md index a783596d4..e247cc46d 100644 --- a/content/inside-rust/1.45.1-prerelease.md +++ b/content/inside-rust/1.45.1-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-07-27 +path = "inside-rust/2020/07/27/1.45.1-prerelease" title = "1.45.1 prerelease testing" -author = "Mark Rousskov" -team = "The Release Team " +authors = ["Mark Rousskov"] +aliases = ["inside-rust/2020/07/27/1.45.1-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/operations#release" +++ The 1.45.1 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.46.0-prerelease.md b/content/inside-rust/1.46.0-prerelease.md index 584e7e29d..71a35b3bd 100644 --- a/content/inside-rust/1.46.0-prerelease.md +++ b/content/inside-rust/1.46.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-08-24 +path = "inside-rust/2020/08/24/1.46.0-prerelease" title = "1.46.0 pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2020/08/24/1.46.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/operations#release" +++ The 1.46.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.47.0-prerelease-2.md b/content/inside-rust/1.47.0-prerelease-2.md index 40a44fa84..e84bd7ca2 100644 --- a/content/inside-rust/1.47.0-prerelease-2.md +++ b/content/inside-rust/1.47.0-prerelease-2.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-10-07 +path = "inside-rust/2020/10/07/1.47.0-prerelease-2" title = "1.47.0 second pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2020/10/07/1.47.0-prerelease-2.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/operations#release" +++ The second pre-release for 1.47.0 is ready for testing. The release is diff --git a/content/inside-rust/1.47.0-prerelease.md b/content/inside-rust/1.47.0-prerelease.md index ad184660c..432ede21c 100644 --- a/content/inside-rust/1.47.0-prerelease.md +++ b/content/inside-rust/1.47.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-10-06 +path = "inside-rust/2020/10/06/1.47.0-prerelease" title = "1.47.0 pre-release testing" -author = "Mark Rousskov" -team = "The Release Team " +authors = ["Mark Rousskov"] +aliases = ["inside-rust/2020/10/06/1.47.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/operations#release" +++ The 1.47.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.48.0-prerelease.md b/content/inside-rust/1.48.0-prerelease.md index 84d144676..7ce7a4515 100644 --- a/content/inside-rust/1.48.0-prerelease.md +++ b/content/inside-rust/1.48.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-11-16 +path = "inside-rust/2020/11/16/1.48.0-prerelease" title = "1.48.0 pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2020/11/16/1.48.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.48.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.49.0-prerelease.md b/content/inside-rust/1.49.0-prerelease.md index 4a51dcdbc..058c111af 100644 --- a/content/inside-rust/1.49.0-prerelease.md +++ b/content/inside-rust/1.49.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-12-29 +path = "inside-rust/2020/12/29/1.49.0-prerelease" title = "1.49.0 pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2020/12/29/1.49.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.49.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.50.0-prerelease.md b/content/inside-rust/1.50.0-prerelease.md index 12d1cb1a9..7048c1096 100644 --- a/content/inside-rust/1.50.0-prerelease.md +++ b/content/inside-rust/1.50.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-02-09 +path = "inside-rust/2021/02/09/1.50.0-prerelease" title = "1.50.0 pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2021/02/09/1.50.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.50.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.51.0-prerelease.md b/content/inside-rust/1.51.0-prerelease.md index 3599e0c10..8ee574bcd 100644 --- a/content/inside-rust/1.51.0-prerelease.md +++ b/content/inside-rust/1.51.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-03-23 +path = "inside-rust/2021/03/23/1.51.0-prerelease" title = "1.51.0 pre-release testing" -author = "Mark Rousskov" -team = "The Release Team " +authors = ["Mark Rousskov"] +aliases = ["inside-rust/2021/03/23/1.51.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.51.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.52.0-prerelease.md b/content/inside-rust/1.52.0-prerelease.md index c7229049e..683b08d4c 100644 --- a/content/inside-rust/1.52.0-prerelease.md +++ b/content/inside-rust/1.52.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-05-04 +path = "inside-rust/2021/05/04/1.52.0-prerelease" title = "1.52.0 pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2021/05/04/1.52.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.52.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.53.0-prelease.md b/content/inside-rust/1.53.0-prelease.md index cc608bc03..f53033e78 100644 --- a/content/inside-rust/1.53.0-prelease.md +++ b/content/inside-rust/1.53.0-prelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-06-15 +path = "inside-rust/2021/06/15/1.53.0-prelease" title = "1.53.0 pre-release testing" -author = "Mark Rousskov" -team = "The Release Team " +authors = ["Mark Rousskov"] +aliases = ["inside-rust/2021/06/15/1.53.0-prelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.53.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.54.0-prerelease.md b/content/inside-rust/1.54.0-prerelease.md index 204efbc23..ad9de42f7 100644 --- a/content/inside-rust/1.54.0-prerelease.md +++ b/content/inside-rust/1.54.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-07-26 +path = "inside-rust/2021/07/26/1.54.0-prerelease" title = "1.54.0 pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2021/07/26/1.54.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.54.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.55.0-prerelease.md b/content/inside-rust/1.55.0-prerelease.md index ff7788b1b..90be67c55 100644 --- a/content/inside-rust/1.55.0-prerelease.md +++ b/content/inside-rust/1.55.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-09-07 +path = "inside-rust/2021/09/07/1.55.0-prerelease" title = "1.55.0 pre-release testing" -author = "Mark Rousskov" -team = "The Release Team " +authors = ["Mark Rousskov"] +aliases = ["inside-rust/2021/09/07/1.55.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.55.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.56.0-prerelease.md b/content/inside-rust/1.56.0-prerelease.md index cc0b2d179..8923de99f 100644 --- a/content/inside-rust/1.56.0-prerelease.md +++ b/content/inside-rust/1.56.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-10-18 +path = "inside-rust/2021/10/18/1.56.0-prerelease" title = "1.56.0 pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2021/10/18/1.56.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.56.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.57.0-prerelease.md b/content/inside-rust/1.57.0-prerelease.md index 53fe1e463..4c86b2f4d 100644 --- a/content/inside-rust/1.57.0-prerelease.md +++ b/content/inside-rust/1.57.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-11-30 +path = "inside-rust/2021/11/30/1.57.0-prerelease" title = "1.57.0 pre-release testing" -author = "Mark Rousskov" -team = "The Release Team " +authors = ["Mark Rousskov"] +aliases = ["inside-rust/2021/11/30/1.57.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.57.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.58.0-prerelease.md b/content/inside-rust/1.58.0-prerelease.md index 8ddddfc9a..af26e1c64 100644 --- a/content/inside-rust/1.58.0-prerelease.md +++ b/content/inside-rust/1.58.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-01-11 +path = "inside-rust/2022/01/11/1.58.0-prerelease" title = "1.58.0 pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2022/01/11/1.58.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.58.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.59.0-prerelease.md b/content/inside-rust/1.59.0-prerelease.md index 16feb9985..a03504174 100644 --- a/content/inside-rust/1.59.0-prerelease.md +++ b/content/inside-rust/1.59.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-02-22 +path = "inside-rust/2022/02/22/1.59.0-prerelease" title = "1.59.0 pre-release testing" -author = "Mark Rousskov" -team = "The Release Team " +authors = ["Mark Rousskov"] +aliases = ["inside-rust/2022/02/22/1.59.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.59.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.60.0-prerelease.md b/content/inside-rust/1.60.0-prerelease.md index 752aa0a0d..0ebf73ad1 100644 --- a/content/inside-rust/1.60.0-prerelease.md +++ b/content/inside-rust/1.60.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-04-04 +path = "inside-rust/2022/04/04/1.60.0-prerelease" title = "1.60.0 pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2022/04/04/1.60.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.60.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.61.0-prerelease.md b/content/inside-rust/1.61.0-prerelease.md index 86ef47590..bed4fd4f4 100644 --- a/content/inside-rust/1.61.0-prerelease.md +++ b/content/inside-rust/1.61.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-05-16 +path = "inside-rust/2022/05/16/1.61.0-prerelease" title = "1.61.0 pre-release testing" -author = "Mark Rousskov" -team = "The Release Team " +authors = ["Mark Rousskov"] +aliases = ["inside-rust/2022/05/16/1.61.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.61.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.62.0-prerelease.md b/content/inside-rust/1.62.0-prerelease.md index c4117f516..ce8c7c2e0 100644 --- a/content/inside-rust/1.62.0-prerelease.md +++ b/content/inside-rust/1.62.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-06-28 +path = "inside-rust/2022/06/28/1.62.0-prerelease" title = "1.62.0 pre-release testing" -author = "Pietro Albini" -team = "The Release Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2022/06/28/1.62.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.62.0 pre-release is ready for testing. The release is scheduled for this diff --git a/content/inside-rust/1.62.1-prerelease.md b/content/inside-rust/1.62.1-prerelease.md index 548e91138..0797a2c09 100644 --- a/content/inside-rust/1.62.1-prerelease.md +++ b/content/inside-rust/1.62.1-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-07-16 +path = "inside-rust/2022/07/16/1.62.1-prerelease" title = "1.62.1 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2022/07/16/1.62.1-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.62.1 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.63.0-prerelease.md b/content/inside-rust/1.63.0-prerelease.md index 2a51c3159..0b58ea03b 100644 --- a/content/inside-rust/1.63.0-prerelease.md +++ b/content/inside-rust/1.63.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-08-09 +path = "inside-rust/2022/08/09/1.63.0-prerelease" title = "1.63.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2022/08/09/1.63.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.63.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.64.0-prerelease.md b/content/inside-rust/1.64.0-prerelease.md index 040d8bd9a..b3e67bbad 100644 --- a/content/inside-rust/1.64.0-prerelease.md +++ b/content/inside-rust/1.64.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-09-19 +path = "inside-rust/2022/09/19/1.64.0-prerelease" title = "1.64.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2022/09/19/1.64.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.64.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.65.0-prerelease.md b/content/inside-rust/1.65.0-prerelease.md index 29f1eedf9..460a87ad4 100644 --- a/content/inside-rust/1.65.0-prerelease.md +++ b/content/inside-rust/1.65.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-10-31 +path = "inside-rust/2022/10/31/1.65.0-prerelease" title = "1.65.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2022/10/31/1.65.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.65.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.66.0-prerelease.md b/content/inside-rust/1.66.0-prerelease.md index daba13b1b..b15b538a5 100644 --- a/content/inside-rust/1.66.0-prerelease.md +++ b/content/inside-rust/1.66.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-12-12 +path = "inside-rust/2022/12/12/1.66.0-prerelease" title = "1.66.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2022/12/12/1.66.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.66.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.67.0-prerelease.md b/content/inside-rust/1.67.0-prerelease.md index 34d510128..b2bba5bbf 100644 --- a/content/inside-rust/1.67.0-prerelease.md +++ b/content/inside-rust/1.67.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-01-25 +path = "inside-rust/2023/01/25/1.67.0-prerelease" title = "1.67.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/01/25/1.67.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.67.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.67.1-prerelease.md b/content/inside-rust/1.67.1-prerelease.md index b821515d7..a58477b2d 100644 --- a/content/inside-rust/1.67.1-prerelease.md +++ b/content/inside-rust/1.67.1-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-02-07 +path = "inside-rust/2023/02/07/1.67.1-prerelease" title = "1.67.1 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/02/07/1.67.1-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.67.1 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.68.0-prerelease.md b/content/inside-rust/1.68.0-prerelease.md index 7a47532a0..c5ff88361 100644 --- a/content/inside-rust/1.68.0-prerelease.md +++ b/content/inside-rust/1.68.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-03-06 +path = "inside-rust/2023/03/06/1.68.0-prerelease" title = "1.68.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/03/06/1.68.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.68.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.68.1-prerelease.md b/content/inside-rust/1.68.1-prerelease.md index 3778ec46a..e291464ee 100644 --- a/content/inside-rust/1.68.1-prerelease.md +++ b/content/inside-rust/1.68.1-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-03-20 +path = "inside-rust/2023/03/20/1.68.1-prerelease" title = "1.68.1 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/03/20/1.68.1-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.68.1 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.68.2-prerelease.md b/content/inside-rust/1.68.2-prerelease.md index c3ec5adb7..569a749c0 100644 --- a/content/inside-rust/1.68.2-prerelease.md +++ b/content/inside-rust/1.68.2-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-03-27 +path = "inside-rust/2023/03/27/1.68.2-prerelease" title = "1.68.2 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/03/27/1.68.2-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.68.2 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.69.0-prerelease.md b/content/inside-rust/1.69.0-prerelease.md index 9a4fac531..3cf0a9c5a 100644 --- a/content/inside-rust/1.69.0-prerelease.md +++ b/content/inside-rust/1.69.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-04-17 +path = "inside-rust/2023/04/17/1.69.0-prerelease" title = "1.69.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/04/17/1.69.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.69.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.70.0-prerelease.md b/content/inside-rust/1.70.0-prerelease.md index 7fcfa8ff0..bf6a7c49d 100644 --- a/content/inside-rust/1.70.0-prerelease.md +++ b/content/inside-rust/1.70.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-05-29 +path = "inside-rust/2023/05/29/1.70.0-prerelease" title = "1.70.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/05/29/1.70.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.70.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.71.0-prerelease.md b/content/inside-rust/1.71.0-prerelease.md index f1df2b644..9541b6579 100644 --- a/content/inside-rust/1.71.0-prerelease.md +++ b/content/inside-rust/1.71.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-07-10 +path = "inside-rust/2023/07/10/1.71.0-prerelease" title = "1.71.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/07/10/1.71.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.71.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.71.1-prerelease.md b/content/inside-rust/1.71.1-prerelease.md index 5ef380a5f..9e9ef159a 100644 --- a/content/inside-rust/1.71.1-prerelease.md +++ b/content/inside-rust/1.71.1-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-08-01 +path = "inside-rust/2023/08/01/1.71.1-prerelease" title = "1.71.1 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/08/01/1.71.1-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.71.1 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.72.0-prerelease.md b/content/inside-rust/1.72.0-prerelease.md index abe1b4d8e..4bc90591a 100644 --- a/content/inside-rust/1.72.0-prerelease.md +++ b/content/inside-rust/1.72.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-08-21 +path = "inside-rust/2023/08/21/1.72.0-prerelease" title = "1.72.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/08/21/1.72.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.72.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.72.1-prerelease.md b/content/inside-rust/1.72.1-prerelease.md index 305eb02ed..30652ebef 100644 --- a/content/inside-rust/1.72.1-prerelease.md +++ b/content/inside-rust/1.72.1-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-09-14 +path = "inside-rust/2023/09/14/1.72.1-prerelease" title = "1.72.1 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/09/14/1.72.1-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.72.1 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.73.0-prerelease.md b/content/inside-rust/1.73.0-prerelease.md index 50224b658..5075dd115 100644 --- a/content/inside-rust/1.73.0-prerelease.md +++ b/content/inside-rust/1.73.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-10-03 +path = "inside-rust/2023/10/03/1.73.0-prerelease" title = "1.73.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/10/03/1.73.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.73.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.74.0-prerelease.md b/content/inside-rust/1.74.0-prerelease.md index 7fab4046f..aeae0a965 100644 --- a/content/inside-rust/1.74.0-prerelease.md +++ b/content/inside-rust/1.74.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-11-13 +path = "inside-rust/2023/11/13/1.74.0-prerelease" title = "1.74.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/11/13/1.74.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.74.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.74.1-prerelease.md b/content/inside-rust/1.74.1-prerelease.md index e9b7b0d35..7c632ef75 100644 --- a/content/inside-rust/1.74.1-prerelease.md +++ b/content/inside-rust/1.74.1-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-12-05 +path = "inside-rust/2023/12/05/1.74.1-prerelease" title = "1.74.1 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/12/05/1.74.1-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.74.1 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.75.0-prerelease.md b/content/inside-rust/1.75.0-prerelease.md index 13ba53c15..47e41a0a7 100644 --- a/content/inside-rust/1.75.0-prerelease.md +++ b/content/inside-rust/1.75.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-12-21 +path = "inside-rust/2023/12/21/1.75.0-prerelease" title = "1.75.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2023/12/21/1.75.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.75.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.76.0-prerelease.md b/content/inside-rust/1.76.0-prerelease.md index 359e974e6..c82c7c69d 100644 --- a/content/inside-rust/1.76.0-prerelease.md +++ b/content/inside-rust/1.76.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-02-04 +path = "inside-rust/2024/02/04/1.76.0-prerelease" title = "1.76.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2024/02/04/1.76.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.76.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.77.0-prerelease.md b/content/inside-rust/1.77.0-prerelease.md index 23cad0afa..719df01df 100644 --- a/content/inside-rust/1.77.0-prerelease.md +++ b/content/inside-rust/1.77.0-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-03-17 +path = "inside-rust/2024/03/17/1.77.0-prerelease" title = "1.77.0 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2024/03/17/1.77.0-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.77.0 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/1.77.1-prerelease.md b/content/inside-rust/1.77.1-prerelease.md index 0ecd430e2..a76992291 100644 --- a/content/inside-rust/1.77.1-prerelease.md +++ b/content/inside-rust/1.77.1-prerelease.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-03-27 +path = "inside-rust/2024/03/27/1.77.1-prerelease" title = "1.77.1 pre-release testing" -author = "Release automation" -team = "The Release Team " +authors = ["Release automation"] +aliases = ["inside-rust/2024/03/27/1.77.1-prerelease.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/release" +++ The 1.77.1 pre-release is ready for testing. The release is scheduled for diff --git a/content/inside-rust/2024-edition-update.md b/content/inside-rust/2024-edition-update.md index ebcda4dd5..e9138dfd0 100644 --- a/content/inside-rust/2024-edition-update.md +++ b/content/inside-rust/2024-edition-update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-03-22 +path = "inside-rust/2024/03/22/2024-edition-update" title = "2024 Edition Update" -author = "Eric Huss" -team = "Edition 2024 Project Group " +authors = ["Eric Huss"] +aliases = ["inside-rust/2024/03/22/2024-edition-update.html"] + +[extra] +team = "Edition 2024 Project Group" +team_url = "https://github.com/rust-lang/team/blob/15e99829ee2124b07f740b8befd41c55a46fee91/teams/project-edition-2024.toml" +++ This is a reminder to the teams working on the 2024 Edition that implementation work should be **finished by the end of May**. If you have any questions, please let us know on the [`#edition`][zulip] Zulip stream. diff --git a/content/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md b/content/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md index 57c7ec099..ef1f755f2 100644 --- a/content/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md +++ b/content/inside-rust/AsyncAwait-Not-Send-Error-Improvements.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-11 +path = "inside-rust/2019/10/11/AsyncAwait-Not-Send-Error-Improvements" title = '''Improving async-await's "Future is not Send" diagnostic''' -author = "David Wood" +authors = ["David Wood"] description = "Highlighting a diagnostic improvement for async-await" -team = "the Async Foundations WG " +aliases = ["inside-rust/2019/10/11/AsyncAwait-Not-Send-Error-Improvements.html"] + +[extra] +team = "the Async Foundations WG" +team_url = "https://rust-lang.github.io/compiler-team/working-groups/async-await/" +++ Async-await is due to hit stable in the 1.39 release (only a month away!), and as announced in the diff --git a/content/inside-rust/AsyncAwait-WG-Focus-Issues.md b/content/inside-rust/AsyncAwait-WG-Focus-Issues.md index 7305ca228..9b592bcf8 100644 --- a/content/inside-rust/AsyncAwait-WG-Focus-Issues.md +++ b/content/inside-rust/AsyncAwait-WG-Focus-Issues.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-07 +path = "inside-rust/2019/10/07/AsyncAwait-WG-Focus-Issues" title = "Async Foundations Update: Time for polish!" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "A new blog where the Rust team can post updates on the latest developments" -team = "the Async Foundations WG " +aliases = ["inside-rust/2019/10/07/AsyncAwait-WG-Focus-Issues.html"] + +[extra] +team = "the Async Foundations WG" +team_url = "https://rust-lang.github.io/compiler-team/working-groups/async-await/" +++ As you've perhaps heard, recently the async-await feature [landed on diff --git a/content/inside-rust/Backlog-Bonanza.md b/content/inside-rust/Backlog-Bonanza.md index 3988f5abc..48a8f9649 100644 --- a/content/inside-rust/Backlog-Bonanza.md +++ b/content/inside-rust/Backlog-Bonanza.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-10-16 +path = "inside-rust/2020/10/16/Backlog-Bonanza" title = "Lang team Backlog Bonanza and Project Proposals" -author = "Nicholas Matsakis" -team = "the lang team " +authors = ["Nicholas Matsakis"] +aliases = ["inside-rust/2020/10/16/Backlog-Bonanza.html"] + +[extra] +team = "the lang team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ A month or two back, the lang team embarked on a new initiative that diff --git a/content/inside-rust/CTCFT-april.md b/content/inside-rust/CTCFT-april.md index c657f3984..ac34f9067 100644 --- a/content/inside-rust/CTCFT-april.md +++ b/content/inside-rust/CTCFT-april.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-04-12 +path = "inside-rust/2022/04/12/CTCFT-april" title = "CTCFT 2022-04-18 Agenda" -author = "Rust CTCFT Team" +authors = ["Rust CTCFT Team"] +aliases = ["inside-rust/2022/04/12/CTCFT-april.html"] +++ The next ["Cross Team Collaboration Fun Times" (CTCFT)][CTCFT] meeting will take diff --git a/content/inside-rust/CTCFT-february.md b/content/inside-rust/CTCFT-february.md index 88f09091c..c87bcba8e 100644 --- a/content/inside-rust/CTCFT-february.md +++ b/content/inside-rust/CTCFT-february.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-02-11 +path = "inside-rust/2022/02/11/CTCFT-february" title = "CTCFT 2022-02-21 Agenda" -author = "Rust CTCFT Team" +authors = ["Rust CTCFT Team"] +aliases = ["inside-rust/2022/02/11/CTCFT-february.html"] +++ The next ["Cross Team Collaboration Fun Times" (CTCFT)][CTCFT] meeting will take diff --git a/content/inside-rust/CTCFT-march.md b/content/inside-rust/CTCFT-march.md index 6dec7e6a5..5d5d4da7e 100644 --- a/content/inside-rust/CTCFT-march.md +++ b/content/inside-rust/CTCFT-march.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-03-16 +path = "inside-rust/2022/03/16/CTCFT-march" title = "CTCFT 2022-03-21 Agenda" -author = "Rust CTCFT Team" +authors = ["Rust CTCFT Team"] +aliases = ["inside-rust/2022/03/16/CTCFT-march.html"] +++ The next ["Cross Team Collaboration Fun Times" (CTCFT)][CTCFT] meeting will take diff --git a/content/inside-rust/CTCFT-may.md b/content/inside-rust/CTCFT-may.md index 7016dd611..06ac0f30d 100644 --- a/content/inside-rust/CTCFT-may.md +++ b/content/inside-rust/CTCFT-may.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-05-10 +path = "inside-rust/2022/05/10/CTCFT-may" title = "CTCFT 2022-05-16 Agenda" -author = "Rust CTCFT Team" +authors = ["Rust CTCFT Team"] +aliases = ["inside-rust/2022/05/10/CTCFT-may.html"] +++ The next ["Cross Team Collaboration Fun Times" (CTCFT)][CTCFT] meeting will take diff --git a/content/inside-rust/Cleanup-Crew-ICE-breakers.md b/content/inside-rust/Cleanup-Crew-ICE-breakers.md index 6f7d47c05..dd418253c 100644 --- a/content/inside-rust/Cleanup-Crew-ICE-breakers.md +++ b/content/inside-rust/Cleanup-Crew-ICE-breakers.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-02-06 +path = "inside-rust/2020/02/06/Cleanup-Crew-ICE-breakers" title = "Announcing the Cleanup Crew ICE-breaker group" -author = "Santiago Pastorino" +authors = ["Santiago Pastorino"] description = "A new blog where the Rust team can post updates on the latest developments" -team = "the compiler team " +aliases = ["inside-rust/2020/02/06/Cleanup-Crew-ICE-breakers.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Following Niko Matsakis' announcement of the [**LLVM ICE-breaker diff --git a/content/inside-rust/Clippy-removes-plugin-interface.md b/content/inside-rust/Clippy-removes-plugin-interface.md index 61654c3c9..d272cb92c 100644 --- a/content/inside-rust/Clippy-removes-plugin-interface.md +++ b/content/inside-rust/Clippy-removes-plugin-interface.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-11-04 +path = "inside-rust/2019/11/04/Clippy-removes-plugin-interface" title = "Clippy is removing its plugin interface" -author = "Philipp Krones" +authors = ["Philipp Krones"] description = "Now that compiler plugins are deprecated, Clippy is removing its deprecated plugin interface" -team = "the Dev tools team (Clippy) " +aliases = ["inside-rust/2019/11/04/Clippy-removes-plugin-interface.html"] + +[extra] +team = "the Dev tools team (Clippy)" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#clippy" +++ Today, we're announcing that Clippy will completely remove its plugin interface. diff --git a/content/inside-rust/Concluding-events-mods.md b/content/inside-rust/Concluding-events-mods.md index e074c4b5e..b4aa85cb6 100644 --- a/content/inside-rust/Concluding-events-mods.md +++ b/content/inside-rust/Concluding-events-mods.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-05-26 +path = "inside-rust/2022/05/26/Concluding-events-mods" title = "Concluding the events of last November" -author = "Khionu Sybiern" -team = "The Moderation Team " +authors = ["Khionu Sybiern"] +aliases = ["inside-rust/2022/05/26/Concluding-events-mods.html"] + +[extra] +team = "The Moderation Team" +team_url = "https://www.rust-lang.org/governance/teams/moderation" +++ [With the moderators' resignation in November](https://blog.rust-lang.org/inside-rust/2021/11/25/in-response-to-the-moderation-team-resignation.html), we (Josh Gould and Khionu Sybiern) had the mantle of the Moderation Team offered to us, and we caught up to speed on what led up to this conflict. Their resignation became a catalyst, and we commited with the rest of the project leadership to do our best to solve the issues present and going forward. diff --git a/content/inside-rust/Core-team-membership.md b/content/inside-rust/Core-team-membership.md index 8ec9cfcfa..f49b2779e 100644 --- a/content/inside-rust/Core-team-membership.md +++ b/content/inside-rust/Core-team-membership.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-10-23 +path = "inside-rust/2020/10/23/Core-team-membership" title = "Core team membership changes" -author = "Mark Rousskov" -team = "The Core Team " +authors = ["Mark Rousskov"] +aliases = ["inside-rust/2020/10/23/Core-team-membership.html"] + +[extra] +team = "The Core Team" +team_url = "https://www.rust-lang.org/governance/teams/core" +++ The core team has had a few membership updates in the last month, and we wanted to provide an update. diff --git a/content/inside-rust/Goverance-wg-cfp@0.md b/content/inside-rust/Goverance-wg-cfp@0.md index a661ffe1d..05d97ba36 100644 --- a/content/inside-rust/Goverance-wg-cfp@0.md +++ b/content/inside-rust/Goverance-wg-cfp@0.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-01-14 +path = "inside-rust/2020/01/14/Goverance-wg-cfp" title = "Governance Working Group Update: Meeting 14 January 2020" -author = "Val Grimm" -team = "The Governance WG " +authors = ["Val Grimm"] +aliases = ["inside-rust/2020/01/14/Goverance-wg-cfp.html"] + +[extra] +team = "The Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Hello everyone! diff --git a/content/inside-rust/Goverance-wg@0.md b/content/inside-rust/Goverance-wg@0.md index 80f2ba229..a5d786904 100644 --- a/content/inside-rust/Goverance-wg@0.md +++ b/content/inside-rust/Goverance-wg@0.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-02-11 +path = "inside-rust/2020/02/11/Goverance-wg" title = "Governance Working Group Update: Meeting 11 February 2020" -author = "Val Grimm" -team = "The Governance WG " +authors = ["Val Grimm"] +aliases = ["inside-rust/2020/02/11/Goverance-wg.html"] + +[extra] +team = "The Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Hello everyone! diff --git a/content/inside-rust/Goverance-wg@1.md b/content/inside-rust/Goverance-wg@1.md index 13da05c8e..145f80a12 100644 --- a/content/inside-rust/Goverance-wg@1.md +++ b/content/inside-rust/Goverance-wg@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-02-27 +path = "inside-rust/2020/02/27/Goverance-wg" title = "Governance Working Group Update: Meeting 27 February 2020" -author = "Val Grimm" -team = "The Governance WG " +authors = ["Val Grimm"] +aliases = ["inside-rust/2020/02/27/Goverance-wg.html"] + +[extra] +team = "The Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Hello everyone! diff --git a/content/inside-rust/Governance-WG-updated.md b/content/inside-rust/Governance-WG-updated.md index 9e02e62c2..01ce47f0a 100644 --- a/content/inside-rust/Governance-WG-updated.md +++ b/content/inside-rust/Governance-WG-updated.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-04-14 +path = "inside-rust/2020/04/14/Governance-WG-updated" title = "Governance Working Group Update: Meeting 09 April 2020" -author = "Nell Shamrell-Harrington" -team = "The Governance WG " +authors = ["Nell Shamrell-Harrington"] +aliases = ["inside-rust/2020/04/14/Governance-WG-updated.html"] + +[extra] +team = "The Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Greetings Rustaceans! diff --git a/content/inside-rust/Governance-wg@0.md b/content/inside-rust/Governance-wg@0.md index 23e36d86a..a38893561 100644 --- a/content/inside-rust/Governance-wg@0.md +++ b/content/inside-rust/Governance-wg@0.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-04-23 +path = "inside-rust/2020/04/23/Governance-wg" title = "Governance Working Group Update: Meeting 23 April 2020" -author = "Val Grimm" -team = "The Governance WG " +authors = ["Val Grimm"] +aliases = ["inside-rust/2020/04/23/Governance-wg.html"] + +[extra] +team = "The Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Greetings Rustaceans! diff --git a/content/inside-rust/Introducing-cargo-audit-fix-and-more.md b/content/inside-rust/Introducing-cargo-audit-fix-and-more.md index 3aaf533cf..43f394d12 100644 --- a/content/inside-rust/Introducing-cargo-audit-fix-and-more.md +++ b/content/inside-rust/Introducing-cargo-audit-fix-and-more.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-01-23 +path = "inside-rust/2020/01/23/Introducing-cargo-audit-fix-and-more" title = "cargo-audit v0.11: Introducing the `fix` feature, yanked crate detection, and more" -author = "Tony Arcieri" +authors = ["Tony Arcieri"] description = "Release announcement for cargo-audit v0.11 describing the new features" -team = "the Secure Code WG " +aliases = ["inside-rust/2020/01/23/Introducing-cargo-audit-fix-and-more.html"] + +[extra] +team = "the Secure Code WG" +team_url = "https://www.rust-lang.org/governance/wgs/wg-secure-code" +++ [cargo-audit](https://github.com/rustsec/cargo-audit) is a command-line utility which inspects `Cargo.lock` files and compares them against the [RustSec Advisory Database](https://rustsec.org), a community database of security vulnerabilities maintained by the [Rust Secure Code Working Group](https://github.com/rust-secure-code/wg). diff --git a/content/inside-rust/Keeping-secure-with-cargo-audit-0.9.md b/content/inside-rust/Keeping-secure-with-cargo-audit-0.9.md index 6b7cf47d7..7e6c26027 100644 --- a/content/inside-rust/Keeping-secure-with-cargo-audit-0.9.md +++ b/content/inside-rust/Keeping-secure-with-cargo-audit-0.9.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-03 +path = "inside-rust/2019/10/03/Keeping-secure-with-cargo-audit-0.9" title = "Keeping Rust projects secure with cargo-audit 0.9: dependency trees, core advisories, unmaintained crates" -author = "Tony Arcieri" +authors = ["Tony Arcieri"] description = "A look at the new features in cargo-audit 0.9 for ensuring dependencies are free of security advisories" -team = "the Secure Code WG " +aliases = ["inside-rust/2019/10/03/Keeping-secure-with-cargo-audit-0.9.html"] + +[extra] +team = "the Secure Code WG" +team_url = "https://www.rust-lang.org/governance/wgs/wg-secure-code" +++ [cargo-audit](https://github.com/rustsec/cargo-audit) is a command-line utility which inspects `Cargo.lock` files and compares them against the [RustSec Advisory Database](https://rustsec.org), a community database of security vulnerabilities maintained by the [Rust Secure Code Working Group](https://github.com/rust-secure-code/wg). diff --git a/content/inside-rust/LLVM-ICE-breakers.md b/content/inside-rust/LLVM-ICE-breakers.md index f2574708d..a2eb35206 100644 --- a/content/inside-rust/LLVM-ICE-breakers.md +++ b/content/inside-rust/LLVM-ICE-breakers.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-22 +path = "inside-rust/2019/10/22/LLVM-ICE-breakers" title = "Announcing the LLVM ICE-breaker group" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "A new blog where the Rust team can post updates on the latest developments" -team = "the compiler team " +aliases = ["inside-rust/2019/10/22/LLVM-ICE-breakers.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Today I'm announcing a new experiment in the compiler team, the **LLVM ICE-breaker group**. If you're familiar with LLVM and would like to contribute to rustc -- but without taking on a large commitment -- then the LLVM ICE-breaker group might well be for you! diff --git a/content/inside-rust/Lang-Team-Meeting@0.md b/content/inside-rust/Lang-Team-Meeting@0.md index 16debbcb7..013bdd0bd 100644 --- a/content/inside-rust/Lang-Team-Meeting@0.md +++ b/content/inside-rust/Lang-Team-Meeting@0.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-11 +path = "inside-rust/2019/10/11/Lang-Team-Meeting" title = "2019-10-10 Lang Team Triage Meeting" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "2019-10-10 Lang Team Triage Meeting" -team = "the lang team " +aliases = ["inside-rust/2019/10/11/Lang-Team-Meeting.html"] + +[extra] +team = "the lang team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ We had our [weekly triage meeting] on 2019-10-10. You can find the diff --git a/content/inside-rust/Lang-team-Oct-update.md b/content/inside-rust/Lang-team-Oct-update.md index 046a8430a..8320161cc 100644 --- a/content/inside-rust/Lang-team-Oct-update.md +++ b/content/inside-rust/Lang-team-Oct-update.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-10-08 +path = "inside-rust/2021/10/08/Lang-team-Oct-update" title = "Lang team October update" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Lang team October update" -team = "the lang team " +aliases = ["inside-rust/2021/10/08/Lang-team-Oct-update.html"] + +[extra] +team = "the lang team" +team_url = "https://lang-team.rust-lang.org/" +++ This week the lang team held its October planning meeting ([minutes]). We hold these meetings on the first Wednesday of every month. diff --git a/content/inside-rust/Lang-team-july-update.md b/content/inside-rust/Lang-team-july-update.md index 77a982b92..ebfdac762 100644 --- a/content/inside-rust/Lang-team-july-update.md +++ b/content/inside-rust/Lang-team-july-update.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-07-12 +path = "inside-rust/2021/07/12/Lang-team-july-update" title = "Lang team July update" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Lang team July update" -team = "the lang team " +aliases = ["inside-rust/2021/07/12/Lang-team-july-update.html"] + +[extra] +team = "the lang team" +team_url = "https://lang-team.rust-lang.org/" +++ On 2021-07-07, the lang team held its July planning meeting ([minutes]). These meetings are tyically held the first Wednesday of every month. diff --git a/content/inside-rust/Lang-team-meeting@1.md b/content/inside-rust/Lang-team-meeting@1.md index affb6b90c..f2878805a 100644 --- a/content/inside-rust/Lang-team-meeting@1.md +++ b/content/inside-rust/Lang-team-meeting@1.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-11-22 +path = "inside-rust/2019/11/22/Lang-team-meeting" title = "2019-11-14 and 2019-11-21 Lang Team Triage Meetings" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "2019-11-14 and 2019-11-21 Lang Team Triage Meetings" -team = "the lang team " +aliases = ["inside-rust/2019/11/22/Lang-team-meeting.html"] + +[extra] +team = "the lang team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ Since I apparently forgot to post a blog post last week, this blog diff --git a/content/inside-rust/Ownership-Std-Implementation.md b/content/inside-rust/Ownership-Std-Implementation.md index 7044c8a63..bf67da626 100644 --- a/content/inside-rust/Ownership-Std-Implementation.md +++ b/content/inside-rust/Ownership-Std-Implementation.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-07-02 +path = "inside-rust/2020/07/02/Ownership-Std-Implementation" title = "Ownership of the standard library implementation" -author = "Ashley Mannix" -team = "The Libs team " +authors = ["Ashley Mannix"] +aliases = ["inside-rust/2020/07/02/Ownership-Std-Implementation.html"] + +[extra] +team = "The Libs team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ Our Rust project is a large and diverse one. Its activities are broadly coordinated by teams that give the community space to find and contribute to the things that matter to them. diff --git a/content/inside-rust/Portable-SIMD-PG.md b/content/inside-rust/Portable-SIMD-PG.md index 44346383b..8a3a7139a 100644 --- a/content/inside-rust/Portable-SIMD-PG.md +++ b/content/inside-rust/Portable-SIMD-PG.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-09-29 +path = "inside-rust/2020/09/29/Portable-SIMD-PG" title = "Announcing the Portable SIMD Project Group" -author = "Jubilee and Lokathor" +authors = ["Jubilee and Lokathor"] description = "Announcing the Portable SIMD Project Group" -team = "the library team " +aliases = ["inside-rust/2020/09/29/Portable-SIMD-PG.html"] + +[extra] +team = "the library team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ We're announcing the start of the _Portable SIMD Project Group_ within the Libs team. This group is dedicated to making a portable SIMD API available to stable Rust users. diff --git a/content/inside-rust/Splitting-const-generics.md b/content/inside-rust/Splitting-const-generics.md index 483bf65d5..ac1e09e1b 100644 --- a/content/inside-rust/Splitting-const-generics.md +++ b/content/inside-rust/Splitting-const-generics.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-09-06 +path = "inside-rust/2021/09/06/Splitting-const-generics" title = "Splitting the const generics features" -author = "lcnr" +authors = ["lcnr"] description = "Splitting the const generics features" -team = "The Const Generics Project Group " +aliases = ["inside-rust/2021/09/06/Splitting-const-generics.html"] + +[extra] +team = "The Const Generics Project Group" +team_url = "https://rust-lang.github.io/project-const-generics/" +++ After the stabilization of the const generics MVP in version 1.51, the const generics project group has continued to diff --git a/content/inside-rust/Using-rustc_codegen_cranelift.md b/content/inside-rust/Using-rustc_codegen_cranelift.md index ff52e2ee7..f9c577a50 100644 --- a/content/inside-rust/Using-rustc_codegen_cranelift.md +++ b/content/inside-rust/Using-rustc_codegen_cranelift.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-11-15 +path = "inside-rust/2020/11/15/Using-rustc_codegen_cranelift" title = "Using rustc_codegen_cranelift for debug builds" -author = "Jynn Nelson" -team = "The Compiler Team " +authors = ["Jynn Nelson"] +aliases = ["inside-rust/2020/11/15/Using-rustc_codegen_cranelift.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ ## What is `rustc_codegen_cranelift`? diff --git a/content/inside-rust/Welcome.md b/content/inside-rust/Welcome.md index ad9c1352a..e697bd593 100644 --- a/content/inside-rust/Welcome.md +++ b/content/inside-rust/Welcome.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-09-25 +path = "inside-rust/2019/09/25/Welcome" title = "Welcome to the Inside Rust blog!" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "A new blog where the Rust team can post updates on the latest developments" -team = "the core team " +aliases = ["inside-rust/2019/09/25/Welcome.html"] + +[extra] +team = "the core team" +team_url = "https://www.rust-lang.org/governance/teams/core" +++ Welcome to the inaugural post of the **Inside Rust** blog! This is a diff --git a/content/inside-rust/What-the-error-handling-project-group-is-working-on.md b/content/inside-rust/What-the-error-handling-project-group-is-working-on.md index 79b429659..195fc1e08 100644 --- a/content/inside-rust/What-the-error-handling-project-group-is-working-on.md +++ b/content/inside-rust/What-the-error-handling-project-group-is-working-on.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-11-23 +path = "inside-rust/2020/11/23/What-the-error-handling-project-group-is-working-on" title = "What the Error Handling Project Group is Working On" -author = "Sean Chen" -team = "the library team " +authors = ["Sean Chen"] +aliases = ["inside-rust/2020/11/23/What-the-error-handling-project-group-is-working-on.html"] + +[extra] +team = "the library team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ The Rust community takes its error handling seriously. There’s already a strong culture in place for emphasizing helpful error handling and reporting, with multiple libraries each offering their own take (see Jane Lusby’s thorough [survey][error_ecosystem_vid] of Rust error handling/reporting libraries). diff --git a/content/inside-rust/What-the-error-handling-project-group-is-working-towards.md b/content/inside-rust/What-the-error-handling-project-group-is-working-towards.md index 96cc42177..e3d606ca4 100644 --- a/content/inside-rust/What-the-error-handling-project-group-is-working-towards.md +++ b/content/inside-rust/What-the-error-handling-project-group-is-working-towards.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-07-01 +path = "inside-rust/2021/07/01/What-the-error-handling-project-group-is-working-towards" title = "What the Error Handling Project Group is Working Towards" -author = "Jane Lusby" -team = "the library team " +authors = ["Jane Lusby"] +aliases = ["inside-rust/2021/07/01/What-the-error-handling-project-group-is-working-towards.html"] + +[extra] +team = "the library team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ This blog post is a follow up of our [previous](https://blog.rust-lang.org/inside-rust/2020/11/23/What-the-error-handling-project-group-is-working-on.html) post detailing what we're working on now. We've been iterating for a while now on some of the challenges that we see with error handling today and have reached the point where we want to describe some of the new changes we're working towards. But first we need to describe the main challenges we've identified. diff --git a/content/inside-rust/aaron-hill-compiler-team.md b/content/inside-rust/aaron-hill-compiler-team.md index dd8970f13..38c84ad31 100644 --- a/content/inside-rust/aaron-hill-compiler-team.md +++ b/content/inside-rust/aaron-hill-compiler-team.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-04-26 +path = "inside-rust/2021/04/26/aaron-hill-compiler-team" title = "Congrats to compiler team member Aaron Hill" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "Congrats to compiler team member Aaron Hill" -team = "the compiler team " +aliases = ["inside-rust/2021/04/26/aaron-hill-compiler-team.html"] + +[extra] +team = "the compiler team" +team_url = "https://rust-lang.org/governance/teams/compiler" +++ I am pleased to announce that [Aaron Hill] has been made a full member of the [compiler team]. diff --git a/content/inside-rust/all-hands-retrospective.md b/content/inside-rust/all-hands-retrospective.md index a86da530f..8e9888eff 100644 --- a/content/inside-rust/all-hands-retrospective.md +++ b/content/inside-rust/all-hands-retrospective.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-03-18 +path = "inside-rust/2020/03/18/all-hands-retrospective" title = "All Hands Retrospective" -author = "Erin Power" -team = "The All Hands Organisers " +authors = ["Erin Power"] +aliases = ["inside-rust/2020/03/18/all-hands-retrospective.html"] + +[extra] +team = "The All Hands Organisers" +team_url = "https://www.rust-lang.org/governance/teams/core" +++ If you're not already aware, the Rust All Hands event, originally scheduled for diff --git a/content/inside-rust/all-hands.md b/content/inside-rust/all-hands.md index 0257e464b..6de924f4f 100644 --- a/content/inside-rust/all-hands.md +++ b/content/inside-rust/all-hands.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-09-02 +path = "inside-rust/2024/09/02/all-hands" title = "Save the Date: Rust All Hands 2025" -author = "Mara Bos" -team = "Leadership Council " +authors = ["Mara Bos"] +aliases = ["inside-rust/2024/09/02/all-hands.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ We are very excited to announce that, after six years, we will finally have another Rust All Hands event in 2025! diff --git a/content/inside-rust/announcing-project-goals.md b/content/inside-rust/announcing-project-goals.md index 0af54f457..f63366a0a 100644 --- a/content/inside-rust/announcing-project-goals.md +++ b/content/inside-rust/announcing-project-goals.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-05-07 +path = "inside-rust/2024/05/07/announcing-project-goals" title = "Rust Project Goals Submission Period" -author = "Niko Matsakis and Josh Triplett" -team = "Leadership Council " +authors = ["Niko Matsakis and Josh Triplett"] +aliases = ["inside-rust/2024/05/07/announcing-project-goals.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ We're happy to announce the start of an experimental roadmapping effort dubbed **Rust project goals**. As described in [RFC 3614][], the plan is to establish a slate of **project goals** for the second half of 2024 (2024H2). **We need your help!** We are currently seeking ideas for project goals, particularly those that have motivated owners who have time and resources to drive the goal to completion. [If you'd like to propose a goal, read more about the process here!][propose] diff --git a/content/inside-rust/announcing-the-docsrs-team.md b/content/inside-rust/announcing-the-docsrs-team.md index b0dc69b12..768b64f03 100644 --- a/content/inside-rust/announcing-the-docsrs-team.md +++ b/content/inside-rust/announcing-the-docsrs-team.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-12-09 +path = "inside-rust/2019/12/09/announcing-the-docsrs-team" title = "Announcing the Docs.rs Team" -author = "QuietMisdreavus" -team = "The Rustdoc Team " +authors = ["QuietMisdreavus"] +aliases = ["inside-rust/2019/12/09/announcing-the-docsrs-team.html"] + +[extra] +team = "The Rustdoc Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#rustdoc" +++ Today we're announcing a brand new team: The Docs.rs Team! diff --git a/content/inside-rust/announcing-the-rust-style-team.md b/content/inside-rust/announcing-the-rust-style-team.md index 2bbf079bd..3b80f5252 100644 --- a/content/inside-rust/announcing-the-rust-style-team.md +++ b/content/inside-rust/announcing-the-rust-style-team.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-09-29 +path = "inside-rust/2022/09/29/announcing-the-rust-style-team" title = "Announcing the Rust Style Team" -author = "Josh Triplett" -team = "The Rust Style Team " +authors = ["Josh Triplett"] +aliases = ["inside-rust/2022/09/29/announcing-the-rust-style-team.html"] + +[extra] +team = "The Rust Style Team" +team_url = "https://www.rust-lang.org/governance/teams/lang#Style team" +++ Rust has a standardized style, and an implementation of that style in the diff --git a/content/inside-rust/api-token-scopes.md b/content/inside-rust/api-token-scopes.md index d1c708fad..ea1368022 100644 --- a/content/inside-rust/api-token-scopes.md +++ b/content/inside-rust/api-token-scopes.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-05-09 +path = "inside-rust/2023/05/09/api-token-scopes" title = "API token scopes" -author = "Tobias Bieniek" -team = "the crates.io team " +authors = ["Tobias Bieniek"] +aliases = ["inside-rust/2023/05/09/api-token-scopes.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ Roughly three years ago [Pietro Albini](https://github.com/pietroalbini) opened an RFC called ["crates.io token scopes"](https://github.com/rust-lang/rfcs/pull/2947). This RFC described an improvement to the existing API tokens, that everyone is using to publish crates to the [crates.io](https://crates.io/) package registry. The proposal was to make it possible to restrict API tokens to 1) certain operations and 2) certain crates. diff --git a/content/inside-rust/apr-steering-cycle.md b/content/inside-rust/apr-steering-cycle.md index 0763eac0a..de288ecff 100644 --- a/content/inside-rust/apr-steering-cycle.md +++ b/content/inside-rust/apr-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-04-15 +path = "inside-rust/2022/04/15/apr-steering-cycle" title = "Rust Compiler April 2022 Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's April 2022 steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2022/04/15/apr-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, April 8th][apr-08-zulip-archive], the Rust Compiler team had a planning meeting for the April 2022 steering cycle. diff --git a/content/inside-rust/async-closures-call-for-testing.md b/content/inside-rust/async-closures-call-for-testing.md index 3f9cf1c9b..0db326cdc 100644 --- a/content/inside-rust/async-closures-call-for-testing.md +++ b/content/inside-rust/async-closures-call-for-testing.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-08-09 +path = "inside-rust/2024/08/09/async-closures-call-for-testing" title = "Async Closures MVP: Call for Testing!" -author = "Michael Goulet" -team = "The Async Working Group " +authors = ["Michael Goulet"] +aliases = ["inside-rust/2024/08/09/async-closures-call-for-testing.html"] + +[extra] +team = "The Async Working Group" +team_url = "https://www.rust-lang.org/governance/wgs/wg-async" +++ The async working group is excited to announce that [RFC 3668] "Async Closures" was recently approved by the Lang team. In this post, we want to briefly motivate why async closures exist, explain their current shortcomings, and most importantly, announce a call for testing them on nightly Rust. diff --git a/content/inside-rust/async-fn-in-trait-nightly.md b/content/inside-rust/async-fn-in-trait-nightly.md index 1876626ac..5971c3d56 100644 --- a/content/inside-rust/async-fn-in-trait-nightly.md +++ b/content/inside-rust/async-fn-in-trait-nightly.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-11-17 +path = "inside-rust/2022/11/17/async-fn-in-trait-nightly" title = "Async fn in trait MVP comes to nightly" -author = "Tyler Mandry" -team = "The Rust Async Working Group " +authors = ["Tyler Mandry"] +aliases = ["inside-rust/2022/11/17/async-fn-in-trait-nightly.html"] + +[extra] +team = "The Rust Async Working Group" +team_url = "https://www.rust-lang.org/governance/wgs/wg-async" +++ The async working group is excited to announce that `async fn` can now be used in traits in the nightly compiler. You can now write code like this: diff --git a/content/inside-rust/async-in-2022.md b/content/inside-rust/async-in-2022.md index 813a276c2..04962f4ee 100644 --- a/content/inside-rust/async-in-2022.md +++ b/content/inside-rust/async-in-2022.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-02-03 +path = "inside-rust/2022/02/03/async-in-2022" title = "Async Rust in 2022" -author = "Niko Matsakis and Tyler Mandry" +authors = ["Niko Matsakis and Tyler Mandry"] description = "The async working group's goals in 2022" -team = "Async Working Group " +aliases = ["inside-rust/2022/02/03/async-in-2022.html"] + +[extra] +team = "Async Working Group" +team_url = "https://www.rust-lang.org/governance/wgs/wg-async" +++ Almost a year ago, the Async Working Group[^name] [embarked on a collaborative effort][ce] to write a [shared async vision document][avd]. As we enter 2022, we wanted to give an update on the results from that process along with the progress we are making towards realizing that vision. diff --git a/content/inside-rust/bisecting-rust-compiler.md b/content/inside-rust/bisecting-rust-compiler.md index eded446a7..3d91214df 100644 --- a/content/inside-rust/bisecting-rust-compiler.md +++ b/content/inside-rust/bisecting-rust-compiler.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-12-18 +path = "inside-rust/2019/12/18/bisecting-rust-compiler" title = "Bisecting Rust Compiler Regressions with cargo-bisect-rustc" -author = "Santiago Pastorino" -team = "the compiler team " +authors = ["Santiago Pastorino"] +aliases = ["inside-rust/2019/12/18/bisecting-rust-compiler.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Let's say that you've just updated the Rust compiler version and have diff --git a/content/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md b/content/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md index 242cb98f5..fe97da642 100644 --- a/content/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md +++ b/content/inside-rust/boxyuwu-leseulartichaut-the8472-compiler-contributors.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-06-15 +path = "inside-rust/2021/06/15/boxyuwu-leseulartichaut-the8472-compiler-contributors" title = "Please welcome Boxy, Léo Lanteri Thauvin and the8472 to compiler-contributors" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "Please welcome Boxy, Léo Lanteri Thauvin and the8472 to compiler-contributors" -team = "the compiler team " +aliases = ["inside-rust/2021/06/15/boxyuwu-leseulartichaut-the8472-compiler-contributors.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Please welcome [Boxy], [Léo Lanteri Thauvin] and [the8472] to the [compiler-contributors] group! diff --git a/content/inside-rust/cargo-config-merging.md b/content/inside-rust/cargo-config-merging.md index 2b161cf87..d9b1c02cf 100644 --- a/content/inside-rust/cargo-config-merging.md +++ b/content/inside-rust/cargo-config-merging.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-08-24 +path = "inside-rust/2023/08/24/cargo-config-merging" title = "Cargo changes how arrays in config are merged" -author = "Arlo Siemsen" -team = "the Cargo team " +authors = ["Arlo Siemsen"] +aliases = ["inside-rust/2023/08/24/cargo-config-merging.html"] + +[extra] +team = "the Cargo team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ Cargo will be changing the order of merged configuration arrays, and we are looking for people to help test this change and provide feedback. diff --git a/content/inside-rust/cargo-in-2020.md b/content/inside-rust/cargo-in-2020.md index 9d2eab276..e441e507c 100644 --- a/content/inside-rust/cargo-in-2020.md +++ b/content/inside-rust/cargo-in-2020.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-01-10 +path = "inside-rust/2020/01/10/cargo-in-2020" title = "Cargo in 2020" -author = "Eric Huss" +authors = ["Eric Huss"] description = "Roadmap for Cargo in 2020" -team = "the Cargo team " +aliases = ["inside-rust/2020/01/10/cargo-in-2020.html"] + +[extra] +team = "the Cargo team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ This post is an overview of the major projects the Cargo team is interested in diff --git a/content/inside-rust/cargo-new-members.md b/content/inside-rust/cargo-new-members.md index 0c664df95..eb77069a1 100644 --- a/content/inside-rust/cargo-new-members.md +++ b/content/inside-rust/cargo-new-members.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-04-06 +path = "inside-rust/2023/04/06/cargo-new-members" title = "Welcome Arlo and Scott to the Cargo Team" -author = "Eric Huss" -team = "The Cargo Team " +authors = ["Eric Huss"] +aliases = ["inside-rust/2023/04/06/cargo-new-members.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ We are excited to welcome [Arlo Siemsen](https://github.com/arlosi) and [Scott Schafer](https://github.com/Muscraft) as new members to the Cargo Team! diff --git a/content/inside-rust/cargo-postmortem.md b/content/inside-rust/cargo-postmortem.md index 161d4797b..365984347 100644 --- a/content/inside-rust/cargo-postmortem.md +++ b/content/inside-rust/cargo-postmortem.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-05-01 +path = "inside-rust/2023/05/01/cargo-postmortem" title = "Postmortem Analysis in Cargo" -author = "Jon Gjengset and Weihang Lo" -team = "The Cargo Team " +authors = ["Jon Gjengset and Weihang Lo"] +aliases = ["inside-rust/2023/05/01/cargo-postmortem.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ At 01:52 UTC, 2022-10-28, [rust-lang/cargo#11183] was merged into the Cargo master branch. It introduced a bug that caused Cargo to fail to build packages that use a particular, but very common, dependency setup. The change nearly made its way into the next nightly release. If it had, it would have rendered any of the 30k crates with `serde_derive` as a dependency (one of the most popular crate on crates.io) unbuildable for anyone using the resulting nightly release. diff --git a/content/inside-rust/cargo-sparse-protocol.md b/content/inside-rust/cargo-sparse-protocol.md index 084e13005..b904ec3d6 100644 --- a/content/inside-rust/cargo-sparse-protocol.md +++ b/content/inside-rust/cargo-sparse-protocol.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-01-30 +path = "inside-rust/2023/01/30/cargo-sparse-protocol" title = "Help test Cargo's new index protocol" -author = "Eric Huss" -team = "The Cargo Team " +authors = ["Eric Huss"] +aliases = ["inside-rust/2023/01/30/cargo-sparse-protocol.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ Cargo's new index protocol will be available starting in Rust 1.68, which will be released on 2023-03-09. diff --git a/content/inside-rust/cargo-team-changes.md b/content/inside-rust/cargo-team-changes.md index 4d655f98f..2323467d0 100644 --- a/content/inside-rust/cargo-team-changes.md +++ b/content/inside-rust/cargo-team-changes.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-03-31 +path = "inside-rust/2022/03/31/cargo-team-changes" title = "Changes at the Cargo Team" -author = "Eric Huss" -team = "The Cargo Team " +authors = ["Eric Huss"] +aliases = ["inside-rust/2022/03/31/cargo-team-changes.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ We are thrilled to publicly announce that [Weihang diff --git a/content/inside-rust/changes-to-compiler-team.md b/content/inside-rust/changes-to-compiler-team.md index 03866ca7c..2ff7b5f9f 100644 --- a/content/inside-rust/changes-to-compiler-team.md +++ b/content/inside-rust/changes-to-compiler-team.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-12-14 +path = "inside-rust/2020/12/14/changes-to-compiler-team" title = "Changes to Rust compiler team" -author = "Felix S. Klock II" +authors = ["Felix S. Klock II"] description = "recent leadership and membership changes" -team = "the compiler team " +aliases = ["inside-rust/2020/12/14/changes-to-compiler-team.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ There have been important changes recently to the Rust compiler team. diff --git a/content/inside-rust/changes-to-rustdoc-team.md b/content/inside-rust/changes-to-rustdoc-team.md index f78662fa8..84550a3fa 100644 --- a/content/inside-rust/changes-to-rustdoc-team.md +++ b/content/inside-rust/changes-to-rustdoc-team.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-01-19 +path = "inside-rust/2021/01/19/changes-to-rustdoc-team" title = "Changes to the Rustdoc team" -author = "Guillaume Gomez" +authors = ["Guillaume Gomez"] description = "leadership and membership additions" -team = "the rustdoc team " +aliases = ["inside-rust/2021/01/19/changes-to-rustdoc-team.html"] + +[extra] +team = "the rustdoc team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#rustdoc" +++ Recently, there have been a lot of improvements in rustdoc. It was possible thanks to our new contributors. In light of these recent contributions, a few changes were made in the rustdoc team. diff --git a/content/inside-rust/changes-to-x-py-defaults.md b/content/inside-rust/changes-to-x-py-defaults.md index c2cd04646..d8dbc56a7 100644 --- a/content/inside-rust/changes-to-x-py-defaults.md +++ b/content/inside-rust/changes-to-x-py-defaults.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-08-30 +path = "inside-rust/2020/08/30/changes-to-x-py-defaults" title = "Changes to x.py defaults" -author = "Jynn Nelson" -team = "the compiler team " +authors = ["Jynn Nelson"] +aliases = ["inside-rust/2020/08/30/changes-to-x-py-defaults.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Recently, the defaults for [`x.py`], the tool used to [bootstrap] the Rust compiler from source, changed. If you regularly contribute to Rust, this might affect your workflow. diff --git a/content/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md b/content/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md index 2e44b0af4..8923a9bd3 100644 --- a/content/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md +++ b/content/inside-rust/cjgillot-and-nadrieril-for-compiler-contributors.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-12-28 +path = "inside-rust/2020/12/28/cjgillot-and-nadrieril-for-compiler-contributors" title = "Please welcome cjgillot and Nadrieril to compiler-contributors" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "Please welcome cjgillot and Nadrieril to compiler-contributors" -team = "the compiler team " +aliases = ["inside-rust/2020/12/28/cjgillot-and-nadrieril-for-compiler-contributors.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Please welcome [@cjgillot] and [@Nadrieril] to the [compiler-contributors] group! diff --git a/content/inside-rust/clippy-team-changes.md b/content/inside-rust/clippy-team-changes.md index 0fa2394c0..e0bcc5200 100644 --- a/content/inside-rust/clippy-team-changes.md +++ b/content/inside-rust/clippy-team-changes.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-07-13 +path = "inside-rust/2022/07/13/clippy-team-changes" title = "Changes at the Clippy Team" -author = "Philipp Krones" -team = "The Clippy Team " +authors = ["Philipp Krones"] +aliases = ["inside-rust/2022/07/13/clippy-team-changes.html"] + +[extra] +team = "The Clippy Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#clippy" +++ ## New Members diff --git a/content/inside-rust/compiler-team-2022-midyear-report.md b/content/inside-rust/compiler-team-2022-midyear-report.md index 2448c6c71..b4c1a84d6 100644 --- a/content/inside-rust/compiler-team-2022-midyear-report.md +++ b/content/inside-rust/compiler-team-2022-midyear-report.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-08-08 +path = "inside-rust/2022/08/08/compiler-team-2022-midyear-report" title = "Rust Compiler Midyear Report for 2022" -author = "Felix Klock, Wesley Wiser" +authors = ["Felix Klock, Wesley Wiser"] description = "The compiler team's midyear report on its ambitions for 2022." -team = "The Compiler Team " +aliases = ["inside-rust/2022/08/08/compiler-team-2022-midyear-report.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ # Rust Compiler Midyear Report for 2022 diff --git a/content/inside-rust/compiler-team-ambitions-2022.md b/content/inside-rust/compiler-team-ambitions-2022.md index 1c39467a0..743b24670 100644 --- a/content/inside-rust/compiler-team-ambitions-2022.md +++ b/content/inside-rust/compiler-team-ambitions-2022.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-02-22 +path = "inside-rust/2022/02/22/compiler-team-ambitions-2022" title = "Rust Compiler Ambitions for 2022" -author = "Felix Klock, Wesley Wiser" +authors = ["Felix Klock, Wesley Wiser"] description = "The compiler team's concrete initiatives and hopeful aspirations for this year." -team = "The Compiler Team " +aliases = ["inside-rust/2022/02/22/compiler-team-ambitions-2022.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ # Rust Compiler Ambitions for 2022 diff --git a/content/inside-rust/compiler-team-april-steering-cycle.md b/content/inside-rust/compiler-team-april-steering-cycle.md index 52af5535d..598c1377c 100644 --- a/content/inside-rust/compiler-team-april-steering-cycle.md +++ b/content/inside-rust/compiler-team-april-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-04-15 +path = "inside-rust/2021/04/15/compiler-team-april-steering-cycle" title = "Rust Compiler April Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's April steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2021/04/15/compiler-team-april-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, April 9th][apr-9-zulip-archive], the Rust Compiler team had a planning meeting for the April steering cycle. diff --git a/content/inside-rust/compiler-team-august-steering-cycle.md b/content/inside-rust/compiler-team-august-steering-cycle.md index 47c99176e..7b04c007b 100644 --- a/content/inside-rust/compiler-team-august-steering-cycle.md +++ b/content/inside-rust/compiler-team-august-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-07-30 +path = "inside-rust/2021/07/30/compiler-team-august-steering-cycle" title = "Rust Compiler August Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's August steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2021/07/30/compiler-team-august-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, July 30th][jul-30-zulip-archive], the Rust Compiler team had a planning meeting for the August steering cycle. diff --git a/content/inside-rust/compiler-team-feb-steering-cycle.md b/content/inside-rust/compiler-team-feb-steering-cycle.md index d29ca7814..208a2774f 100644 --- a/content/inside-rust/compiler-team-feb-steering-cycle.md +++ b/content/inside-rust/compiler-team-feb-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2023-02-10 +path = "inside-rust/2023/02/10/compiler-team-feb-steering-cycle" title = "Rust Compiler February 2023 Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's Feburary 2023 steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2023/02/10/compiler-team-feb-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, February 10th][feb-10-zulip-archive], the Rust Compiler team had a planning meeting for the February 2023 steering cycle. diff --git a/content/inside-rust/compiler-team-july-steering-cycle.md b/content/inside-rust/compiler-team-july-steering-cycle.md index 5f565664c..b3ce78662 100644 --- a/content/inside-rust/compiler-team-july-steering-cycle.md +++ b/content/inside-rust/compiler-team-july-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-07-02 +path = "inside-rust/2021/07/02/compiler-team-july-steering-cycle" title = "Rust Compiler July Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's July steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2021/07/02/compiler-team-july-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, July 2nd][jul-02-zulip-archive], the Rust Compiler team had a planning meeting for the July steering cycle, followed by a continuation of an ongoing discussion of the 1.52.0 fingerprint event. diff --git a/content/inside-rust/compiler-team-june-steering-cycle.md b/content/inside-rust/compiler-team-june-steering-cycle.md index 5ce19105c..c40a1440b 100644 --- a/content/inside-rust/compiler-team-june-steering-cycle.md +++ b/content/inside-rust/compiler-team-june-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-06-23 +path = "inside-rust/2021/06/23/compiler-team-june-steering-cycle" title = "Rust Compiler June Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's June steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2021/06/23/compiler-team-june-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, June 4th][jun-4-zulip-archive], the Rust Compiler team had a planning meeting for the June steering cycle. diff --git a/content/inside-rust/compiler-team-meeting@0.md b/content/inside-rust/compiler-team-meeting@0.md index efe6edaff..760ad4c8c 100644 --- a/content/inside-rust/compiler-team-meeting@0.md +++ b/content/inside-rust/compiler-team-meeting@0.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-15 +path = "inside-rust/2019/10/15/compiler-team-meeting" title = "2019-10-10 Compiler Team Triage Meeting" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "2019-10-10 Compiler Team Triage Meeting" -team = "the compiler team " +aliases = ["inside-rust/2019/10/15/compiler-team-meeting.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ The compiler team had our weekly triage meeting on 2019-10-10. diff --git a/content/inside-rust/compiler-team-meeting@1.md b/content/inside-rust/compiler-team-meeting@1.md index 8bc7bcae3..ecad3b3e0 100644 --- a/content/inside-rust/compiler-team-meeting@1.md +++ b/content/inside-rust/compiler-team-meeting@1.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-21 +path = "inside-rust/2019/10/21/compiler-team-meeting" title = "2019-10-17 Compiler Team Triage Meeting" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "2019-10-17 Compiler Team Triage Meeting" -team = "the compiler team " +aliases = ["inside-rust/2019/10/21/compiler-team-meeting.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ The compiler team had our weekly triage meeting on 2019-10-17. diff --git a/content/inside-rust/compiler-team-meeting@2.md b/content/inside-rust/compiler-team-meeting@2.md index d10de84c5..7ad4f6591 100644 --- a/content/inside-rust/compiler-team-meeting@2.md +++ b/content/inside-rust/compiler-team-meeting@2.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-30 +path = "inside-rust/2019/10/30/compiler-team-meeting" title = "2019-10-24 Compiler Team Triage Meeting" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "2019-10-24 Compiler Team Triage Meeting" -team = "the compiler team " +aliases = ["inside-rust/2019/10/30/compiler-team-meeting.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ The compiler team had our weekly triage meeting on 2019-10-24. diff --git a/content/inside-rust/compiler-team-meeting@3.md b/content/inside-rust/compiler-team-meeting@3.md index 58196b0f1..0b0fc3810 100644 --- a/content/inside-rust/compiler-team-meeting@3.md +++ b/content/inside-rust/compiler-team-meeting@3.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-11-07 +path = "inside-rust/2019/11/07/compiler-team-meeting" title = "2019-10-31 Compiler Team Triage Meeting" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "2019-10-31 Compiler Team Triage Meeting" -team = "the compiler team " +aliases = ["inside-rust/2019/11/07/compiler-team-meeting.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ The compiler team had our weekly triage meeting on 2019-10-31. diff --git a/content/inside-rust/compiler-team-meeting@4.md b/content/inside-rust/compiler-team-meeting@4.md index 9fa21d66c..7f114a779 100644 --- a/content/inside-rust/compiler-team-meeting@4.md +++ b/content/inside-rust/compiler-team-meeting@4.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-11-11 +path = "inside-rust/2019/11/11/compiler-team-meeting" title = "2019-11-07 Compiler Team Triage Meeting" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "2019-11-07 Compiler Team Triage Meeting" -team = "the compiler team " +aliases = ["inside-rust/2019/11/11/compiler-team-meeting.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ The compiler team had our weekly triage meeting on 2019-11-07. diff --git a/content/inside-rust/compiler-team-meeting@5.md b/content/inside-rust/compiler-team-meeting@5.md index deea5fa4e..a3f9674c7 100644 --- a/content/inside-rust/compiler-team-meeting@5.md +++ b/content/inside-rust/compiler-team-meeting@5.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-11-19 +path = "inside-rust/2019/11/19/compiler-team-meeting" title = "2019-11-14 Compiler Team Triage Meeting" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "2019-11-14 Compiler Team Triage Meeting" -team = "the compiler team " +aliases = ["inside-rust/2019/11/19/compiler-team-meeting.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ The compiler team had our weekly triage meeting on 2019-11-14. diff --git a/content/inside-rust/compiler-team-meeting@6.md b/content/inside-rust/compiler-team-meeting@6.md index 130d3e952..3b6ac839f 100644 --- a/content/inside-rust/compiler-team-meeting@6.md +++ b/content/inside-rust/compiler-team-meeting@6.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-02-07 +path = "inside-rust/2020/02/07/compiler-team-meeting" title = "2020-02-06 Compiler Team Triage Meeting" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "2019-02-06 Compiler Team Triage Meeting" -team = "the compiler team " +aliases = ["inside-rust/2020/02/07/compiler-team-meeting.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ The compiler team had our weekly triage meeting on 2020-02-06. diff --git a/content/inside-rust/compiler-team-new-members.md b/content/inside-rust/compiler-team-new-members.md index 65a649f56..9631eab8e 100644 --- a/content/inside-rust/compiler-team-new-members.md +++ b/content/inside-rust/compiler-team-new-members.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-11-12 +path = "inside-rust/2024/11/12/compiler-team-new-members" title = "Announcing four new members of the compiler team" -author = "davidtwco and wesleywiser" -team = "the compiler team " +authors = ["davidtwco and wesleywiser"] +aliases = ["inside-rust/2024/11/12/compiler-team-new-members.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Its been no time at all since [we restructured the team and recognised our existing and new members][blog_reorg], but we've already got new compiler team members to announce and recognise: diff --git a/content/inside-rust/compiler-team-reorg.md b/content/inside-rust/compiler-team-reorg.md index 9ebaf4ab8..ac3c841ca 100644 --- a/content/inside-rust/compiler-team-reorg.md +++ b/content/inside-rust/compiler-team-reorg.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-11-01 +path = "inside-rust/2024/11/01/compiler-team-reorg" title = "Re-organising the compiler team and recognising our team members" -author = "davidtwco and wesleywiser" -team = "the compiler team " +authors = ["davidtwco and wesleywiser"] +aliases = ["inside-rust/2024/11/01/compiler-team-reorg.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Back in June, the compiler team merged [RFC 3599][rfc] which re-structured the team to ensure the team's policies and processes can support the maintenance of the Rust compiler going forward. diff --git a/content/inside-rust/compiler-team-sep-oct-steering-cycle.md b/content/inside-rust/compiler-team-sep-oct-steering-cycle.md index 033cb09de..fd3d80c78 100644 --- a/content/inside-rust/compiler-team-sep-oct-steering-cycle.md +++ b/content/inside-rust/compiler-team-sep-oct-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-09-23 +path = "inside-rust/2022/09/23/compiler-team-sep-oct-steering-cycle" title = "Rust Compiler Early October 2022 Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's early October 2022 steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2022/09/23/compiler-team-sep-oct-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, September 23rd][sep-23-zulip-archive], the Rust Compiler team had a planning meeting for the September/October 2022 steering cycle. diff --git a/content/inside-rust/const-if-match.md b/content/inside-rust/const-if-match.md index 786e6c518..96f0201e1 100644 --- a/content/inside-rust/const-if-match.md +++ b/content/inside-rust/const-if-match.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-11-25 +path = "inside-rust/2019/11/25/const-if-match" title = "`if` and `match` in constants on nightly rust" -author = "Dylan MacKenzie" -team = "WG const-eval " +authors = ["Dylan MacKenzie"] +aliases = ["inside-rust/2019/11/25/const-if-match.html"] + +[extra] +team = "WG const-eval" +team_url = "https://github.com/rust-lang/const-eval" +++ **TLDR; `if` and `match` are now usable in constants on the latest nightly.** diff --git a/content/inside-rust/const-prop-on-by-default.md b/content/inside-rust/const-prop-on-by-default.md index a78627712..003a3b218 100644 --- a/content/inside-rust/const-prop-on-by-default.md +++ b/content/inside-rust/const-prop-on-by-default.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-12-02 +path = "inside-rust/2019/12/02/const-prop-on-by-default" title = "Constant propagation is now on by default in nightly" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "Constant propagation is now on by default in nightly" -team = "the MIR Optimizations WG " +aliases = ["inside-rust/2019/12/02/const-prop-on-by-default.html"] + +[extra] +team = "the MIR Optimizations WG" +team_url = "https://rust-lang.github.io/compiler-team/working-groups/mir-opt/" +++ I'm pleased to announce that the [Mid-level IR][mir] (MIR) constant propagation pass has been [switched on][pr] by default on Rust nightly which will eventually become Rust 1.41! diff --git a/content/inside-rust/content-delivery-networks.md b/content/inside-rust/content-delivery-networks.md index bb2217653..93e206edc 100644 --- a/content/inside-rust/content-delivery-networks.md +++ b/content/inside-rust/content-delivery-networks.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-01-24 +path = "inside-rust/2023/01/24/content-delivery-networks" title = "Diversifying our Content Delivery Networks" -author = "Jan David Nose" -team = "The Rust Infrastructure Team " +authors = ["Jan David Nose"] +aliases = ["inside-rust/2023/01/24/content-delivery-networks.html"] + +[extra] +team = "The Rust Infrastructure Team" +team_url = "https://www.rust-lang.org/governance/teams/infra" +++ Over the past few weeks, the [Infrastructure Team] has been working on setting diff --git a/content/inside-rust/contributor-survey.md b/content/inside-rust/contributor-survey.md index 066b71be9..f9973dd09 100644 --- a/content/inside-rust/contributor-survey.md +++ b/content/inside-rust/contributor-survey.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-05-27 +path = "inside-rust/2020/05/27/contributor-survey" title = "2020 Contributor Survey" -author = "Niko Matsakis and @mark-i-m" +authors = ["Niko Matsakis and @mark-i-m"] description = "We announce a new survey about the code contribution experience." -team = "the compiler team " +aliases = ["inside-rust/2020/05/27/contributor-survey.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ diff --git a/content/inside-rust/core-team-update.md b/content/inside-rust/core-team-update.md index 61e82d114..b497c7a12 100644 --- a/content/inside-rust/core-team-update.md +++ b/content/inside-rust/core-team-update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-05-04 +path = "inside-rust/2021/05/04/core-team-update" title = "Core Team Update: May 2021" -author = "Steve Klabnik" -team = "The Core Team " +authors = ["Steve Klabnik"] +aliases = ["inside-rust/2021/05/04/core-team-update.html"] + +[extra] +team = "The Core Team" +team_url = "https://www.rust-lang.org/governance/teams/core" +++ Hey everyone! Back in August of last year, the core team wrote a blog post diff --git a/content/inside-rust/core-team-updates.md b/content/inside-rust/core-team-updates.md index c9290d2f5..2daabd011 100644 --- a/content/inside-rust/core-team-updates.md +++ b/content/inside-rust/core-team-updates.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-04-03 +path = "inside-rust/2021/04/03/core-team-updates" title = "Core Team updates" -author = "Pietro Albini" -team = "the Rust Core Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2021/04/03/core-team-updates.html"] + +[extra] +team = "the Rust Core Team" +team_url = "https://www.rust-lang.org/governance/teams/core" +++ Niko Matsakis is [stepping back][niko-blog] from the [Core Team][team-core], diff --git a/content/inside-rust/coroutines.md b/content/inside-rust/coroutines.md index 20f696c0d..a31a0d88b 100644 --- a/content/inside-rust/coroutines.md +++ b/content/inside-rust/coroutines.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2023-10-23 +path = "inside-rust/2023/10/23/coroutines" title = "Generators are dead, long live coroutines, generators are back" -author = "oli-obk" +authors = ["oli-obk"] +aliases = ["inside-rust/2023/10/23/coroutines.html"] +++ We have renamed the unstable `Generator` trait to `Coroutine` and adjusted all terminology accordingly. diff --git a/content/inside-rust/crates-io-incident-report.md b/content/inside-rust/crates-io-incident-report.md index 8de0903c1..b718b6628 100644 --- a/content/inside-rust/crates-io-incident-report.md +++ b/content/inside-rust/crates-io-incident-report.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-02-26 +path = "inside-rust/2020/02/26/crates-io-incident-report" title = "crates.io incident report for 2020-02-20" -author = "Pietro Albini" -team = "the crates.io team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2020/02/26/crates-io-incident-report.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ On 2020-02-20 at 21:28 UTC we received a report from a user of crates.io that diff --git a/content/inside-rust/crates-io-malware-postmortem.md b/content/inside-rust/crates-io-malware-postmortem.md index c3d567dd9..c220ae012 100644 --- a/content/inside-rust/crates-io-malware-postmortem.md +++ b/content/inside-rust/crates-io-malware-postmortem.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-09-01 +path = "inside-rust/2023/09/01/crates-io-malware-postmortem" title = "crates.io Postmortem: User Uploaded Malware" -author = "Adam Harvey" -team = "the crates.io team " +authors = ["Adam Harvey"] +aliases = ["inside-rust/2023/09/01/crates-io-malware-postmortem.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ ## Summary diff --git a/content/inside-rust/crates-io-postmortem.md b/content/inside-rust/crates-io-postmortem.md index 84e254983..c0bd70c1a 100644 --- a/content/inside-rust/crates-io-postmortem.md +++ b/content/inside-rust/crates-io-postmortem.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-07-21 +path = "inside-rust/2023/07/21/crates-io-postmortem" title = "crates.io Postmortem: Broken Crate Downloads" -author = "Tobias Bieniek" -team = "the crates.io team " +authors = ["Tobias Bieniek"] +aliases = ["inside-rust/2023/07/21/crates-io-postmortem.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ (based on https://www.atlassian.com/incident-management/postmortem/templates) diff --git a/content/inside-rust/davidtwco-jackhuey-compiler-members.md b/content/inside-rust/davidtwco-jackhuey-compiler-members.md index d7e403fe6..770dace3f 100644 --- a/content/inside-rust/davidtwco-jackhuey-compiler-members.md +++ b/content/inside-rust/davidtwco-jackhuey-compiler-members.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-02-01 +path = "inside-rust/2021/02/01/davidtwco-jackhuey-compiler-members" title = "Welcoming David Wood to compiler team and Jack Huey to compiler-contributors" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "Please welcome David Wood to the compiler team and Jack Huey to compiler-contributors" -team = "the compiler team " +aliases = ["inside-rust/2021/02/01/davidtwco-jackhuey-compiler-members.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Please welcome [David Wood] to the compiler team and [Jack Huey] to the [compiler-contributors] group! diff --git a/content/inside-rust/diagnostic-effort.md b/content/inside-rust/diagnostic-effort.md index e8645b6ad..8847c7fc5 100644 --- a/content/inside-rust/diagnostic-effort.md +++ b/content/inside-rust/diagnostic-effort.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-08-16 +path = "inside-rust/2022/08/16/diagnostic-effort" title = "Contribute to the diagnostic translation effort!" -author = "David Wood" -team = "the compiler team " +authors = ["David Wood"] +aliases = ["inside-rust/2022/08/16/diagnostic-effort.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ The Rust Diagnostics working group is leading an effort to add support for diff --git a/content/inside-rust/dns-outage-portmortem.md b/content/inside-rust/dns-outage-portmortem.md index 79e2c26f1..6902684f5 100644 --- a/content/inside-rust/dns-outage-portmortem.md +++ b/content/inside-rust/dns-outage-portmortem.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-02-08 +path = "inside-rust/2023/02/08/dns-outage-portmortem" title = "DNS Outage on 2023-01-25" -author = "Jan David Nose" -team = "The Rust Infrastructure Team " +authors = ["Jan David Nose"] +aliases = ["inside-rust/2023/02/08/dns-outage-portmortem.html"] + +[extra] +team = "The Rust Infrastructure Team" +team_url = "https://www.rust-lang.org/governance/teams/infra" +++ On Wednesday, 2023-01-25 at 09:15 UTC, we deployed changes to the production diff --git a/content/inside-rust/docsrs-outage-postmortem.md b/content/inside-rust/docsrs-outage-postmortem.md index a7f393452..ef46af981 100644 --- a/content/inside-rust/docsrs-outage-postmortem.md +++ b/content/inside-rust/docsrs-outage-postmortem.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-10-24 +path = "inside-rust/2019/10/24/docsrs-outage-postmortem" title = "docs.rs outage postmortem" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2019/10/24/docsrs-outage-postmortem.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ At 2019-10-21 01:38 UTC the docs.rs website went down because no available disk diff --git a/content/inside-rust/ecstatic-morse-for-compiler-contributors.md b/content/inside-rust/ecstatic-morse-for-compiler-contributors.md index 294419378..97b881e0e 100644 --- a/content/inside-rust/ecstatic-morse-for-compiler-contributors.md +++ b/content/inside-rust/ecstatic-morse-for-compiler-contributors.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-17 +path = "inside-rust/2019/10/17/ecstatic-morse-for-compiler-contributors" title = "Please welcome ecstatic-morse to compiler-contributors" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Please welcome ecstatic-morse to compiler-contributors" -team = "the compiler team " +aliases = ["inside-rust/2019/10/17/ecstatic-morse-for-compiler-contributors.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ Please welcome [@ecstatic-morse] to the [compiler contributors] group! diff --git a/content/inside-rust/electing-new-project-directors.md b/content/inside-rust/electing-new-project-directors.md index 3802443ae..45bbe1c30 100644 --- a/content/inside-rust/electing-new-project-directors.md +++ b/content/inside-rust/electing-new-project-directors.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-09-06 +path = "inside-rust/2024/09/06/electing-new-project-directors" title = "Electing New Project Directors 2024" -author = "Leadership Council" -team = "Leadership Council " +authors = ["Leadership Council"] +aliases = ["inside-rust/2024/09/06/electing-new-project-directors.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Today we are launching the process to elect two Project Directors to the Rust Foundation Board of Directors. This is the second round of slots, following from [last year's election](https://blog.rust-lang.org/2023/08/30/electing-new-project-directors.html). diff --git a/content/inside-rust/embedded-wg-micro-survey.md b/content/inside-rust/embedded-wg-micro-survey.md index 68d56f184..b3cc054b7 100644 --- a/content/inside-rust/embedded-wg-micro-survey.md +++ b/content/inside-rust/embedded-wg-micro-survey.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-08-22 +path = "inside-rust/2024/08/22/embedded-wg-micro-survey" title = "Embedded Working Group Community Micro Survey" -author = "James Munns" -team = "Embedded Devices Working Group " +authors = ["James Munns"] +aliases = ["inside-rust/2024/08/22/embedded-wg-micro-survey.html"] + +[extra] +team = "Embedded Devices Working Group" +team_url = "https://www.rust-lang.org/governance/wgs/embedded" +++ The [Embedded devices working group] has launched the [2024 Embedded Community Micro Survey] starting diff --git a/content/inside-rust/error-handling-wg-announcement.md b/content/inside-rust/error-handling-wg-announcement.md index 9b1ed172b..74a5398e4 100644 --- a/content/inside-rust/error-handling-wg-announcement.md +++ b/content/inside-rust/error-handling-wg-announcement.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-09-18 +path = "inside-rust/2020/09/18/error-handling-wg-announcement" title = "Announcing the Error Handling Project Group" -author = "Sean Chen" +authors = ["Sean Chen"] description = "Announcing the Error Handling Project Group" -team = "the library team " +aliases = ["inside-rust/2020/09/18/error-handling-wg-announcement.html"] + +[extra] +team = "the library team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ Today we are announcing the formation of a new project group under diff --git a/content/inside-rust/evaluating-github-actions.md b/content/inside-rust/evaluating-github-actions.md index 7b33b4e4f..a7401e7a2 100644 --- a/content/inside-rust/evaluating-github-actions.md +++ b/content/inside-rust/evaluating-github-actions.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-11-14 +path = "inside-rust/2019/11/14/evaluating-github-actions" title = "Evaluating GitHub Actions" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2019/11/14/evaluating-github-actions.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ The Rust Infrastructure team is happy to announce that we’re starting an diff --git a/content/inside-rust/exploring-pgo-for-the-rust-compiler.md b/content/inside-rust/exploring-pgo-for-the-rust-compiler.md index ddff4587e..aa8318158 100644 --- a/content/inside-rust/exploring-pgo-for-the-rust-compiler.md +++ b/content/inside-rust/exploring-pgo-for-the-rust-compiler.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-11-11 +path = "inside-rust/2020/11/11/exploring-pgo-for-the-rust-compiler" title = "Exploring PGO for the Rust compiler" -author = "Michael Woerister" +authors = ["Michael Woerister"] description = "Investigate the effects that profile guided optimization has on rustc's performance" -team = "the compiler team " +aliases = ["inside-rust/2020/11/11/exploring-pgo-for-the-rust-compiler.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ **TLDR** -- PGO makes the compiler [faster](#final-numbers-and-a-benchmarking-plot-twist) but is [not straightforward](#where-to-go-from-here) to realize in CI. diff --git a/content/inside-rust/feb-lang-team-design-meetings.md b/content/inside-rust/feb-lang-team-design-meetings.md index ddb11d034..1a05abe18 100644 --- a/content/inside-rust/feb-lang-team-design-meetings.md +++ b/content/inside-rust/feb-lang-team-design-meetings.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-01-24 +path = "inside-rust/2020/01/24/feb-lang-team-design-meetings" title = "February Lang Team Design Meetings" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Lang Team Design Meetings scheduled for February" -team = "the language team " +aliases = ["inside-rust/2020/01/24/feb-lang-team-design-meetings.html"] + +[extra] +team = "the language team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ We've scheduled our **language team design meetings** for February. The current plans are as follows: diff --git a/content/inside-rust/feb-steering-cycle.md b/content/inside-rust/feb-steering-cycle.md index d96429413..455353e73 100644 --- a/content/inside-rust/feb-steering-cycle.md +++ b/content/inside-rust/feb-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-02-17 +path = "inside-rust/2022/02/17/feb-steering-cycle" title = "Rust Compiler February 2022 Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's February 2022 steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2022/02/17/feb-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, February 11th][feb-11-zulip-archive], the Rust Compiler team had a planning meeting for the February steering cycle. diff --git a/content/inside-rust/ffi-unwind-design-meeting.md b/content/inside-rust/ffi-unwind-design-meeting.md index f8b217cd1..e663e0567 100644 --- a/content/inside-rust/ffi-unwind-design-meeting.md +++ b/content/inside-rust/ffi-unwind-design-meeting.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-02-27 +path = "inside-rust/2020/02/27/ffi-unwind-design-meeting" title = "Announcing the first FFI-unwind project design meeting" -author = "Kyle Strand, Niko Matsakis, and Amanieu d'Antras" +authors = ["Kyle Strand, Niko Matsakis, and Amanieu d'Antras"] description = "First design meeting for the FFI-unwind project" -team = "the FFI-unwind project group " +aliases = ["inside-rust/2020/02/27/ffi-unwind-design-meeting.html"] + +[extra] +team = "the FFI-unwind project group" +team_url = "https://www.rust-lang.org/governance/teams/lang#wg-ffi-unwind" +++ The FFI-unwind project group, announced in [this RFC][rfc-announcement], is diff --git a/content/inside-rust/ffi-unwind-longjmp.md b/content/inside-rust/ffi-unwind-longjmp.md index c3533afa3..d049ab0ab 100644 --- a/content/inside-rust/ffi-unwind-longjmp.md +++ b/content/inside-rust/ffi-unwind-longjmp.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-01-26 +path = "inside-rust/2021/01/26/ffi-unwind-longjmp" title = "Rust & the case of the disappearing stack frames" -author = "Kyle Strand" +authors = ["Kyle Strand"] description = "introducing an exploration of how `longjmp` and similar functions can be handled in Rust" -team = "the FFI-unwind project group " +aliases = ["inside-rust/2021/01/26/ffi-unwind-longjmp.html"] + +[extra] +team = "the FFI-unwind project group" +team_url = "https://www.rust-lang.org/governance/teams/lang#wg-ffi-unwind" +++ Now that the [FFI-unwind Project Group][proj-group-gh] has merged [an diff --git a/content/inside-rust/follow-up-on-the-moderation-issue.md b/content/inside-rust/follow-up-on-the-moderation-issue.md index f0c7d9236..652e3d5ef 100644 --- a/content/inside-rust/follow-up-on-the-moderation-issue.md +++ b/content/inside-rust/follow-up-on-the-moderation-issue.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-12-17 +path = "inside-rust/2021/12/17/follow-up-on-the-moderation-issue" title = "Follow-up on the moderation issue" -author = "Ryan Levick and Mara Bos" -team = "the Rust Project " +authors = ["Ryan Levick and Mara Bos"] +aliases = ["inside-rust/2021/12/17/follow-up-on-the-moderation-issue.html"] + +[extra] +team = "the Rust Project" +team_url = "https://www.rust-lang.org/" +++ Last week, the following e-mail was sent to all members of the Rust project diff --git a/content/inside-rust/formatting-the-compiler.md b/content/inside-rust/formatting-the-compiler.md index 9e6914d4e..d0f5a2b7a 100644 --- a/content/inside-rust/formatting-the-compiler.md +++ b/content/inside-rust/formatting-the-compiler.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-12-23 +path = "inside-rust/2019/12/23/formatting-the-compiler" title = "Formatting the compiler tree" -author = "Mark Rousskov" +authors = ["Mark Rousskov"] description = "How to rebase and what happened" -team = "the compiler team " +aliases = ["inside-rust/2019/12/23/formatting-the-compiler.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ ## What happened diff --git a/content/inside-rust/goodbye-docs-team.md b/content/inside-rust/goodbye-docs-team.md index b9554e639..0791acc01 100644 --- a/content/inside-rust/goodbye-docs-team.md +++ b/content/inside-rust/goodbye-docs-team.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-03-27 +path = "inside-rust/2020/03/27/goodbye-docs-team" title = "Goodbye, docs team" -author = "Steve Klabnik" +authors = ["Steve Klabnik"] description = "The docs team is winding down" -team = "the core team " +aliases = ["inside-rust/2020/03/27/goodbye-docs-team.html"] + +[extra] +team = "the core team" +team_url = "https://www.rust-lang.org/governance/teams/core" +++ I'll cut right to the chase: the docs team no longer exists. diff --git a/content/inside-rust/goverance-wg-cfp@1.md b/content/inside-rust/goverance-wg-cfp@1.md index 47b94cbc1..e1fa6d5c1 100644 --- a/content/inside-rust/goverance-wg-cfp@1.md +++ b/content/inside-rust/goverance-wg-cfp@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-11-13 +path = "inside-rust/2019/11/13/goverance-wg-cfp" title = "Governance WG Call For Participation" -author = "Erin Power" -team = "The Governance WG " +authors = ["Erin Power"] +aliases = ["inside-rust/2019/11/13/goverance-wg-cfp.html"] + +[extra] +team = "The Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Hello everyone, the governance working group has been working a few efforts, but diff --git a/content/inside-rust/governance-reform-rfc.md b/content/inside-rust/governance-reform-rfc.md index 57b832b6a..71d778caf 100644 --- a/content/inside-rust/governance-reform-rfc.md +++ b/content/inside-rust/governance-reform-rfc.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-02-22 +path = "inside-rust/2023/02/22/governance-reform-rfc" title = "Governance Reform RFC Announcement" -author = "Jane Losare-Lusby and the Governance Reform WG" -team = "leadership chat " +authors = ["Jane Losare-Lusby and the Governance Reform WG"] +aliases = ["inside-rust/2023/02/22/governance-reform-rfc.html"] + +[extra] +team = "leadership chat" +team_url = "https://www.rust-lang.org/governance" +++ As part of [ongoing work on governance](https://blog.rust-lang.org/inside-rust/2022/10/06/governance-update.html), the "leadership chat" established a smaller "governance reform" working group to create an RFC to establish new project wide governance. This RFC is now live and can found on the RFCs repo: diff --git a/content/inside-rust/governance-update@0.md b/content/inside-rust/governance-update@0.md index 031481521..c5231b83f 100644 --- a/content/inside-rust/governance-update@0.md +++ b/content/inside-rust/governance-update@0.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-05-19 +path = "inside-rust/2022/05/19/governance-update" title = "Governance Update" -author = "Ryan Levick and Mara Bos" +authors = ["Ryan Levick and Mara Bos"] +aliases = ["inside-rust/2022/05/19/governance-update.html"] +++ Last month, the core team, all the leads of top-level teams, the moderators, and the project representatives on the Rust Foundation board jointly sent out an update to all Rust project members on investigations happening into improvements to the governance of the Rust project. diff --git a/content/inside-rust/governance-update@1.md b/content/inside-rust/governance-update@1.md index 490a4e666..da590e792 100644 --- a/content/inside-rust/governance-update@1.md +++ b/content/inside-rust/governance-update@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-10-06 +path = "inside-rust/2022/10/06/governance-update" title = "Governance Update" -author = "Ryan Levick" -team = "leadership chat " +authors = ["Ryan Levick"] +aliases = ["inside-rust/2022/10/06/governance-update.html"] + +[extra] +team = "leadership chat" +team_url = "https://www.rust-lang.org/governance" +++ As part of ongoing work on governance, Rust leadership jointly established a group, "leadership chat", consisting of the Core team, leads of all teams on the [governance page], the Moderation team, and the project directors on the Rust Foundation board. This group has been serving as an interim governing body while efforts to establish the next evolution of Rust project-wide governance are underway. diff --git a/content/inside-rust/governance-wg-meeting@0.md b/content/inside-rust/governance-wg-meeting@0.md index 53c5909de..b9632ae5b 100644 --- a/content/inside-rust/governance-wg-meeting@0.md +++ b/content/inside-rust/governance-wg-meeting@0.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-12-03 +path = "inside-rust/2019/12/03/governance-wg-meeting" title = "Governance Working Group Update" -author = "Nell Shamrell-Harrington" -team = "the Governance WG " +authors = ["Nell Shamrell-Harrington"] +aliases = ["inside-rust/2019/12/03/governance-wg-meeting.html"] + +[extra] +team = "the Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Hello everyone! Two weeks ago the governance working group met. Here are the large issues we discussed and information on our next meeting. diff --git a/content/inside-rust/governance-wg-meeting@1.md b/content/inside-rust/governance-wg-meeting@1.md index c3445ca5c..eea20ec2b 100644 --- a/content/inside-rust/governance-wg-meeting@1.md +++ b/content/inside-rust/governance-wg-meeting@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-12-10 +path = "inside-rust/2019/12/10/governance-wg-meeting" title = "Governance Working Group Update" -author = "Niko Matsakis" -team = "the Governance WG " +authors = ["Niko Matsakis"] +aliases = ["inside-rust/2019/12/10/governance-wg-meeting.html"] + +[extra] +team = "the Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Hello everyone! The governance working group met last week to discuss diff --git a/content/inside-rust/governance-wg-meeting@2.md b/content/inside-rust/governance-wg-meeting@2.md index 5adc96559..ec6abbbeb 100644 --- a/content/inside-rust/governance-wg-meeting@2.md +++ b/content/inside-rust/governance-wg-meeting@2.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-12-20 +path = "inside-rust/2019/12/20/governance-wg-meeting" title = "Governance Working Group Update: Meeting 17 December 2019" -author = "Val Grimm" -team = "The Governance WG " +authors = ["Val Grimm"] +aliases = ["inside-rust/2019/12/20/governance-wg-meeting.html"] + +[extra] +team = "The Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Hello everyone! diff --git a/content/inside-rust/governance-wg@1.md b/content/inside-rust/governance-wg@1.md index 193700860..f0c185e11 100644 --- a/content/inside-rust/governance-wg@1.md +++ b/content/inside-rust/governance-wg@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-03-17 +path = "inside-rust/2020/03/17/governance-wg" title = "Governance Working Group Update: Meeting 12 March 2020" -author = "Nell Shamrell-Harrington" -team = "The Governance WG " +authors = ["Nell Shamrell-Harrington"] +aliases = ["inside-rust/2020/03/17/governance-wg.html"] + +[extra] +team = "The Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Hello everyone! diff --git a/content/inside-rust/governance-wg@2.md b/content/inside-rust/governance-wg@2.md index d4424570c..824499fa0 100644 --- a/content/inside-rust/governance-wg@2.md +++ b/content/inside-rust/governance-wg@2.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-05-21 +path = "inside-rust/2020/05/21/governance-wg" title = "Governance Working Group Update: Meeting 21 May 2020" -author = "Val Grimm" -team = "The Governance WG " +authors = ["Val Grimm"] +aliases = ["inside-rust/2020/05/21/governance-wg.html"] + +[extra] +team = "The Governance WG" +team_url = "https://github.com/rust-lang/wg-governance" +++ Hello everyone! diff --git a/content/inside-rust/hiring-for-program-management.md b/content/inside-rust/hiring-for-program-management.md index d33f7d501..23371bc10 100644 --- a/content/inside-rust/hiring-for-program-management.md +++ b/content/inside-rust/hiring-for-program-management.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-03-18 +path = "inside-rust/2025/03/18/hiring-for-program-management" title = "Hiring for Rust program management" -author = "TC" -team = "the Edition & Goals teams " +authors = ["TC"] +aliases = ["inside-rust/2025/03/18/hiring-for-program-management.html"] + +[extra] +team = "the Edition & Goals teams" +team_url = "https://www.rust-lang.org/governance#teams" +++ # Hiring for Rust program management diff --git a/content/inside-rust/ide-future.md b/content/inside-rust/ide-future.md index 70b44772d..a7d98a72d 100644 --- a/content/inside-rust/ide-future.md +++ b/content/inside-rust/ide-future.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-12-04 +path = "inside-rust/2019/12/04/ide-future" title = "2019-11-18 IDE team meeting" -author = "Aleksey Kladov, Igor Matuszewski" -team = "the IDE team " +authors = ["Aleksey Kladov, Igor Matuszewski"] +aliases = ["inside-rust/2019/12/04/ide-future.html"] + +[extra] +team = "the IDE team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#ides" +++ Meeting run by nikomatsakis. Minutes written by nikomatsakis. diff --git a/content/inside-rust/imposter-syndrome.md b/content/inside-rust/imposter-syndrome.md index ffaa9c8ce..f7f9f98c1 100644 --- a/content/inside-rust/imposter-syndrome.md +++ b/content/inside-rust/imposter-syndrome.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-04-19 +path = "inside-rust/2022/04/19/imposter-syndrome" title = "Imposter Syndrome" -author = "Jane Lusby, Project Director of Collaboration" -team = "Rust Foundation Project Directors " +authors = ["Jane Lusby, Project Director of Collaboration"] +aliases = ["inside-rust/2022/04/19/imposter-syndrome.html"] + +[extra] +team = "Rust Foundation Project Directors" +team_url = "https://foundation.rust-lang.org/about/" +++ *Preface: This is in response to some feedback the project directors received diff --git a/content/inside-rust/in-response-to-the-moderation-team-resignation.md b/content/inside-rust/in-response-to-the-moderation-team-resignation.md index f4be272cb..65b10fb53 100644 --- a/content/inside-rust/in-response-to-the-moderation-team-resignation.md +++ b/content/inside-rust/in-response-to-the-moderation-team-resignation.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2021-11-25 +path = "inside-rust/2021/11/25/in-response-to-the-moderation-team-resignation" title = "In response to the moderation team resignation" -author = "The undersigned" +authors = ["The undersigned"] +aliases = ["inside-rust/2021/11/25/in-response-to-the-moderation-team-resignation.html"] +++ As top-level team leads, project directors to the Foundation, and core team diff --git a/content/inside-rust/inferred-const-generic-arguments.md b/content/inside-rust/inferred-const-generic-arguments.md index a546ef2d7..f49a3f832 100644 --- a/content/inside-rust/inferred-const-generic-arguments.md +++ b/content/inside-rust/inferred-const-generic-arguments.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-03-05 +path = "inside-rust/2025/03/05/inferred-const-generic-arguments" title = "Inferred const generic arguments: Call for Testing!" -author = "BoxyUwU" -team = "The Const Generics Project Group " +authors = ["BoxyUwU"] +aliases = ["inside-rust/2025/03/05/inferred-const-generic-arguments.html"] + +[extra] +team = "The Const Generics Project Group" +team_url = "https://rust-lang.github.io/project-const-generics/" +++ We are excited to announce that `feature(generic_arg_infer)` is nearing the point of stabilization. In this post we'd like to talk a bit about what this feature does, and what comes next for it. diff --git a/content/inside-rust/infra-team-leadership-change.md b/content/inside-rust/infra-team-leadership-change.md index f212af020..8bdacdee8 100644 --- a/content/inside-rust/infra-team-leadership-change.md +++ b/content/inside-rust/infra-team-leadership-change.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-09-08 +path = "inside-rust/2023/09/08/infra-team-leadership-change" title = "Leadership change in the Rust Infrastructure Team" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2023/09/08/infra-team-leadership-change.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/infra" +++ After almost four years leading the Rust Infrastructure Team, in late July I diff --git a/content/inside-rust/infra-team-meeting@0.md b/content/inside-rust/infra-team-meeting@0.md index 97767b71f..408d1f811 100644 --- a/content/inside-rust/infra-team-meeting@0.md +++ b/content/inside-rust/infra-team-meeting@0.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-10-15 +path = "inside-rust/2019/10/15/infra-team-meeting" title = "2019-10-10 Infrastructure Team Meeting" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2019/10/15/infra-team-meeting.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ Meeting run by kennytm. Minutes written by pietroalbini. diff --git a/content/inside-rust/infra-team-meeting@1.md b/content/inside-rust/infra-team-meeting@1.md index 328cb33db..f13ac58ed 100644 --- a/content/inside-rust/infra-team-meeting@1.md +++ b/content/inside-rust/infra-team-meeting@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-10-22 +path = "inside-rust/2019/10/22/infra-team-meeting" title = "2019-10-22 Infrastructure Team Meeting" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2019/10/22/infra-team-meeting.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ Meeting run by pietroalbini. Mintues written by pietroalbini. diff --git a/content/inside-rust/infra-team-meeting@2.md b/content/inside-rust/infra-team-meeting@2.md index 3ad031ecb..0cf45efb5 100644 --- a/content/inside-rust/infra-team-meeting@2.md +++ b/content/inside-rust/infra-team-meeting@2.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-10-29 +path = "inside-rust/2019/10/29/infra-team-meeting" title = "2019-10-29 Infrastructure Team Meeting" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2019/10/29/infra-team-meeting.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ Meeting run by Mark-Simulacrum. Minutes written by pietroalbini. diff --git a/content/inside-rust/infra-team-meeting@3.md b/content/inside-rust/infra-team-meeting@3.md index 12220ac72..2b83045a4 100644 --- a/content/inside-rust/infra-team-meeting@3.md +++ b/content/inside-rust/infra-team-meeting@3.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-11-06 +path = "inside-rust/2019/11/06/infra-team-meeting" title = "2019-11-05 Infrastructure Team Meeting" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2019/11/06/infra-team-meeting.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ Meeting run by shepmaster. Minutes written by pietroalbini. diff --git a/content/inside-rust/infra-team-meeting@4.md b/content/inside-rust/infra-team-meeting@4.md index d5c567029..ae4ba715c 100644 --- a/content/inside-rust/infra-team-meeting@4.md +++ b/content/inside-rust/infra-team-meeting@4.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-11-18 +path = "inside-rust/2019/11/18/infra-team-meeting" title = "2019-11-12 Infrastructure Team Meeting" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2019/11/18/infra-team-meeting.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ Meeting run by pietroalbini. Minutes written by pietroalbini. diff --git a/content/inside-rust/infra-team-meeting@5.md b/content/inside-rust/infra-team-meeting@5.md index 7af6ff795..b87bf68fa 100644 --- a/content/inside-rust/infra-team-meeting@5.md +++ b/content/inside-rust/infra-team-meeting@5.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-11-19 +path = "inside-rust/2019/11/19/infra-team-meeting" title = "2019-11-19 Infrastructure Team Meeting" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2019/11/19/infra-team-meeting.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ Meeting run by pietroalbini. Minutes written by pietroalbini. diff --git a/content/inside-rust/infra-team-meeting@6.md b/content/inside-rust/infra-team-meeting@6.md index 7e0f5166b..ced8c6602 100644 --- a/content/inside-rust/infra-team-meeting@6.md +++ b/content/inside-rust/infra-team-meeting@6.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-12-11 +path = "inside-rust/2019/12/11/infra-team-meeting" title = "2019-12-10 Infrastructure Team Meeting" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2019/12/11/infra-team-meeting.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ Meeting run by pietroalbini. Minutes written by pietroalbini. diff --git a/content/inside-rust/infra-team-meeting@7.md b/content/inside-rust/infra-team-meeting@7.md index 1f8e09269..c67aed55b 100644 --- a/content/inside-rust/infra-team-meeting@7.md +++ b/content/inside-rust/infra-team-meeting@7.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-12-20 +path = "inside-rust/2019/12/20/infra-team-meeting" title = "2019-12-17 Infrastructure Team Meeting" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2019/12/20/infra-team-meeting.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ Meeting run by pietroalbini. Minutes written by pietroalbini. diff --git a/content/inside-rust/intro-rustc-self-profile.md b/content/inside-rust/intro-rustc-self-profile.md index 9dac2a0fa..9bc276c53 100644 --- a/content/inside-rust/intro-rustc-self-profile.md +++ b/content/inside-rust/intro-rustc-self-profile.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-02-25 +path = "inside-rust/2020/02/25/intro-rustc-self-profile" title = "Intro to rustc's self profiler" -author = "Wesley Wiser" +authors = ["Wesley Wiser"] description = "Learn how to use the -Zself-profile rustc flag" -team = "the self-profile working group " +aliases = ["inside-rust/2020/02/25/intro-rustc-self-profile.html"] + +[extra] +team = "the self-profile working group" +team_url = "https://rust-lang.github.io/compiler-team/working-groups/self-profile/" +++ Over the last year, the [Self-Profile Working Group] has been building tools to profile `rustc` because we often hear requests to know where compilation time is being spent. diff --git a/content/inside-rust/jan-steering-cycle.md b/content/inside-rust/jan-steering-cycle.md index 4d0f0a2b8..f675c250f 100644 --- a/content/inside-rust/jan-steering-cycle.md +++ b/content/inside-rust/jan-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-01-18 +path = "inside-rust/2022/01/18/jan-steering-cycle" title = "Rust Compiler January 2022 Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's January 2022 steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2022/01/18/jan-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, January 14th][jan-14-zulip-archive], the Rust Compiler team had a planning meeting for the January steering cycle. diff --git a/content/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md b/content/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md index 59f98bd5d..585b58bfb 100644 --- a/content/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md +++ b/content/inside-rust/jasper-and-wiser-full-members-of-compiler-team.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-12-19 +path = "inside-rust/2019/12/19/jasper-and-wiser-full-members-of-compiler-team" title = "Congrats to compiler team members matthewjasper and wesleywiser" -author = "Felix S. Klock II" +authors = ["Felix S. Klock II"] description = "Congrats to compiler team members matthewjasper and wesleywiser" -team = "the compiler team " +aliases = ["inside-rust/2019/12/19/jasper-and-wiser-full-members-of-compiler-team.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ I am pleased to announce that [@matthewjasper][] and [@wesleywiser][] diff --git a/content/inside-rust/jsha-rustdoc-member.md b/content/inside-rust/jsha-rustdoc-member.md index f85240269..900ba218f 100644 --- a/content/inside-rust/jsha-rustdoc-member.md +++ b/content/inside-rust/jsha-rustdoc-member.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-04-20 +path = "inside-rust/2021/04/20/jsha-rustdoc-member" title = "Jacob Hoffman-Andrews joins the Rustdoc team" -author = "Guillaume Gomez" +authors = ["Guillaume Gomez"] description = "new rustdoc team member" -team = "the rustdoc team " +aliases = ["inside-rust/2021/04/20/jsha-rustdoc-member.html"] + +[extra] +team = "the rustdoc team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#rustdoc" +++ Hello everyone, please welcome [Jacob Hoffman-Andrews][@jsha] to the rustdoc team! diff --git a/content/inside-rust/jtgeibel-crates-io-co-lead.md b/content/inside-rust/jtgeibel-crates-io-co-lead.md index 7bda121c8..49fd5c88f 100644 --- a/content/inside-rust/jtgeibel-crates-io-co-lead.md +++ b/content/inside-rust/jtgeibel-crates-io-co-lead.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-02-20 +path = "inside-rust/2020/02/20/jtgeibel-crates-io-co-lead" title = "Please welcome jtgeibel as crates.io team co-lead!" -author = "Sean Griffin" +authors = ["Sean Griffin"] description = "jtgeibel added as crates.io team co-lead" -team = "the crates.io team " +aliases = ["inside-rust/2020/02/20/jtgeibel-crates-io-co-lead.html"] + +[extra] +team = "the crates.io team" +team_url = "https://www.rust-lang.org/governance/teams/crates-io" +++ I'm happy to announce some changes in the leadership of the crates.io diff --git a/content/inside-rust/jun-steering-cycle.md b/content/inside-rust/jun-steering-cycle.md index 79a0a0811..4afc106ab 100644 --- a/content/inside-rust/jun-steering-cycle.md +++ b/content/inside-rust/jun-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-06-03 +path = "inside-rust/2022/06/03/jun-steering-cycle" title = "Rust Compiler June 2022 Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's June 2022 steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2022/06/03/jun-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, June 3rd][jun-03-zulip-archive], the Rust Compiler team had a planning meeting for the June 2022 steering cycle. diff --git a/content/inside-rust/keeping-secure-with-cargo-audit-0.18.md b/content/inside-rust/keeping-secure-with-cargo-audit-0.18.md index 633170b99..3a4e8d2da 100644 --- a/content/inside-rust/keeping-secure-with-cargo-audit-0.18.md +++ b/content/inside-rust/keeping-secure-with-cargo-audit-0.18.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2023-09-04 +path = "inside-rust/2023/09/04/keeping-secure-with-cargo-audit-0.18" title = "Keeping Rust projects secure with cargo-audit 0.18: performance, compatibility and security improvements" -author = 'Sergey "Shnatsel" Davidoff' +authors = ['Sergey "Shnatsel" Davidoff'] description = "A look at the new features in cargo-audit 0.18 for ensuring dependencies are free of known vulnerabilities" -team = "the Secure Code WG " +aliases = ["inside-rust/2023/09/04/keeping-secure-with-cargo-audit-0.18.html"] + +[extra] +team = "the Secure Code WG" +team_url = "https://www.rust-lang.org/governance/wgs/wg-secure-code" +++ [`cargo audit`](https://crates.io/crates/cargo-audit) checks your project's dependencies for known security vulnerabilites. diff --git a/content/inside-rust/keyword-generics-progress-report-feb-2023.md b/content/inside-rust/keyword-generics-progress-report-feb-2023.md index feb8b26d3..7a9938b02 100644 --- a/content/inside-rust/keyword-generics-progress-report-feb-2023.md +++ b/content/inside-rust/keyword-generics-progress-report-feb-2023.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-02-23 +path = "inside-rust/2023/02/23/keyword-generics-progress-report-feb-2023" title = "Keyword Generics Progress Report: February 2023" -author = "Yoshua Wuyts" -team = "The Keyword Generics Initiative " +authors = ["Yoshua Wuyts"] +aliases = ["inside-rust/2023/02/23/keyword-generics-progress-report-feb-2023.html"] + +[extra] +team = "The Keyword Generics Initiative" +team_url = "https://github.com/rust-lang/keyword-generics-initiative" +++ ## Introduction diff --git a/content/inside-rust/keyword-generics.md b/content/inside-rust/keyword-generics.md index 11eac9c01..6b2bbbe6b 100644 --- a/content/inside-rust/keyword-generics.md +++ b/content/inside-rust/keyword-generics.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-07-27 +path = "inside-rust/2022/07/27/keyword-generics" title = "Announcing the Keyword Generics Initiative" -author = "Yoshua Wuyts" -team = "The Keyword Generics Initiative " +authors = ["Yoshua Wuyts"] +aliases = ["inside-rust/2022/07/27/keyword-generics.html"] + +[extra] +team = "The Keyword Generics Initiative" +team_url = "https://github.com/rust-lang/keyword-generics-initiative" +++ We ([Oli], [Niko], and [Yosh]) are excited to announce the start of the [Keyword diff --git a/content/inside-rust/lang-advisors.md b/content/inside-rust/lang-advisors.md index 3f850b931..3c59547f5 100644 --- a/content/inside-rust/lang-advisors.md +++ b/content/inside-rust/lang-advisors.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-02-14 +path = "inside-rust/2023/02/14/lang-advisors" title = "Language team advisors" -author = "Josh Triplett, Niko Matsakis" -team = "The Rust Lang Team " +authors = ["Josh Triplett, Niko Matsakis"] +aliases = ["inside-rust/2023/02/14/lang-advisors.html"] + +[extra] +team = "The Rust Lang Team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ [RFC #3327](https://github.com/rust-lang/rfcs/pull/3327) created a new lang-team subteam, the lang team advisors. The advisors team recognizes people who regularly aid the Rust community and the lang team in particular in language design decisions. We already value their input highly and treat their concerns as blocking on features or proposals. The advisors team gives us a way to acknowledge them officially. diff --git a/content/inside-rust/lang-roadmap-2024.md b/content/inside-rust/lang-roadmap-2024.md index 2edadc60f..708478205 100644 --- a/content/inside-rust/lang-roadmap-2024.md +++ b/content/inside-rust/lang-roadmap-2024.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-04-04 +path = "inside-rust/2022/04/04/lang-roadmap-2024" title = "Rust Lang Roadmap for 2024" -author = "Josh Triplett, Niko Matsakis" +authors = ["Josh Triplett, Niko Matsakis"] description = "The language team's concrete initiatives and hopeful aspirations for the Rust 2024 edition." -team = "The Rust Lang Team " +aliases = ["inside-rust/2022/04/04/lang-roadmap-2024.html"] + +[extra] +team = "The Rust Lang Team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ Note: this blog post is a snapshot of the living roadmap at diff --git a/content/inside-rust/lang-team-apr-update.md b/content/inside-rust/lang-team-apr-update.md index 7eb2b8f4d..e9d2c4612 100644 --- a/content/inside-rust/lang-team-apr-update.md +++ b/content/inside-rust/lang-team-apr-update.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-04-17 +path = "inside-rust/2021/04/17/lang-team-apr-update" title = "Lang team April update" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Lang team April update" -team = "the lang team " +aliases = ["inside-rust/2021/04/17/lang-team-apr-update.html"] + +[extra] +team = "the lang team" +team_url = "https://lang-team.rust-lang.org/" +++ This week the lang team held its April planning meeting ([minutes]). We normally hold these meetings on the first Wednesday of every month, but this month we were delayed by one week due to scheduling conflicts. diff --git a/content/inside-rust/lang-team-april-update.md b/content/inside-rust/lang-team-april-update.md index 8fdb60a6f..3a4f3052b 100644 --- a/content/inside-rust/lang-team-april-update.md +++ b/content/inside-rust/lang-team-april-update.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-04-06 +path = "inside-rust/2022/04/06/lang-team-april-update" title = "Lang team April update" -author = "Josh Triplett" +authors = ["Josh Triplett"] description = "Lang team April update" -team = "The Rust Lang Team " +aliases = ["inside-rust/2022/04/06/lang-team-april-update.html"] + +[extra] +team = "The Rust Lang Team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ Today, the lang team held its April planning meeting. We hold these meetings on the first Wednesday of every month, and we use them to schedule [design meetings](https://lang-team.rust-lang.org/meetings/design.html) for the remainder of the month. diff --git a/content/inside-rust/lang-team-aug-update.md b/content/inside-rust/lang-team-aug-update.md index 0fcf0f185..a482a2a4d 100644 --- a/content/inside-rust/lang-team-aug-update.md +++ b/content/inside-rust/lang-team-aug-update.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-08-04 +path = "inside-rust/2021/08/04/lang-team-aug-update" title = "Lang team August update" -author = "Josh Triplett" +authors = ["Josh Triplett"] description = "Lang team August update" -team = "the lang team " +aliases = ["inside-rust/2021/08/04/lang-team-aug-update.html"] + +[extra] +team = "the lang team" +team_url = "https://lang-team.rust-lang.org/" +++ This week the lang team held its August planning meeting. We normally hold diff --git a/content/inside-rust/lang-team-colead.md b/content/inside-rust/lang-team-colead.md index 1b5caab98..af1ab694f 100644 --- a/content/inside-rust/lang-team-colead.md +++ b/content/inside-rust/lang-team-colead.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-02-13 +path = "inside-rust/2024/02/13/lang-team-colead" title = "Announcing Tyler Mandry as Lang Team co-lead" -author = "Niko Matsakis" -team = "the lang design team " +authors = ["Niko Matsakis"] +aliases = ["inside-rust/2024/02/13/lang-team-colead.html"] + +[extra] +team = "the lang design team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ It gives me great pleasure to announce (rather belatedly[^b]) that Tyler Mandry has been chosen as the new lang-team co-lead. Tyler is a great choice for lead, as he always brings a balanced, thoughtful perspective to discussions, but is also willing to take strong positions when he believes he knows the right path forward. And he usually does. diff --git a/content/inside-rust/lang-team-design-meeting-min-const-generics.md b/content/inside-rust/lang-team-design-meeting-min-const-generics.md index 31a0f2e4e..760635a8d 100644 --- a/content/inside-rust/lang-team-design-meeting-min-const-generics.md +++ b/content/inside-rust/lang-team-design-meeting-min-const-generics.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-07-29 +path = "inside-rust/2020/07/29/lang-team-design-meeting-min-const-generics" title = "Lang team design meeting: minimal const generics" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Minimal const generics meeting report" -team = "the lang team " +aliases = ["inside-rust/2020/07/29/lang-team-design-meeting-min-const-generics.html"] + +[extra] +team = "the lang team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ Hello! Did you know that the [lang team] now has regular design diff --git a/content/inside-rust/lang-team-design-meeting-update.md b/content/inside-rust/lang-team-design-meeting-update.md index ea47b1497..520218e4f 100644 --- a/content/inside-rust/lang-team-design-meeting-update.md +++ b/content/inside-rust/lang-team-design-meeting-update.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-07-08 +path = "inside-rust/2020/07/08/lang-team-design-meeting-update" title = "Lang team design meeting update" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Summary of some of the recent lang team design meetings" -team = "the lang team " +aliases = ["inside-rust/2020/07/08/lang-team-design-meeting-update.html"] + +[extra] +team = "the lang team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ Hello! Did you know that the [lang team] now has regular design diff --git a/content/inside-rust/lang-team-design-meeting-wf-types.md b/content/inside-rust/lang-team-design-meeting-wf-types.md index c0644c727..a7cce43ad 100644 --- a/content/inside-rust/lang-team-design-meeting-wf-types.md +++ b/content/inside-rust/lang-team-design-meeting-wf-types.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-07-29 +path = "inside-rust/2020/07/29/lang-team-design-meeting-wf-types" title = "Lang team design meeting: well-formedness and type aliases" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Well-formedness and type aliases meeting report" -team = "the lang team " +aliases = ["inside-rust/2020/07/29/lang-team-design-meeting-wf-types.html"] + +[extra] +team = "the lang team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ Hello! Did you know that the [lang team] now has regular design diff --git a/content/inside-rust/lang-team-design-meetings@0.md b/content/inside-rust/lang-team-design-meetings@0.md index 5ca4702cd..40201e051 100644 --- a/content/inside-rust/lang-team-design-meetings@0.md +++ b/content/inside-rust/lang-team-design-meetings@0.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-01-10 +path = "inside-rust/2020/01/10/lang-team-design-meetings" title = "Lang Team Design Meetings" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Lang Team Design Meetings" -team = "the language team " +aliases = ["inside-rust/2020/01/10/lang-team-design-meetings.html"] + +[extra] +team = "the language team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ Hi all! I wanted to give a quick update about the lang team. We're diff --git a/content/inside-rust/lang-team-design-meetings@1.md b/content/inside-rust/lang-team-design-meetings@1.md index 62f1faadf..1fea7a384 100644 --- a/content/inside-rust/lang-team-design-meetings@1.md +++ b/content/inside-rust/lang-team-design-meetings@1.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-03-11 +path = "inside-rust/2020/03/11/lang-team-design-meetings" title = "March Lang Team Design Meetings" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Lang Team Design Meetings scheduled for March" -team = "the language team " +aliases = ["inside-rust/2020/03/11/lang-team-design-meetings.html"] + +[extra] +team = "the language team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ We've scheduled our **language team design meetings** for March. We have plans for two meetings: diff --git a/content/inside-rust/lang-team-design-meetings@2.md b/content/inside-rust/lang-team-design-meetings@2.md index 7edeec4ff..8e8c570f4 100644 --- a/content/inside-rust/lang-team-design-meetings@2.md +++ b/content/inside-rust/lang-team-design-meetings@2.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-04-10 +path = "inside-rust/2020/04/10/lang-team-design-meetings" title = "April Lang Team Design Meetings" -author = "Josh Triplett" +authors = ["Josh Triplett"] description = "Lang Team Design Meetings scheduled for April" -team = "the language team " +aliases = ["inside-rust/2020/04/10/lang-team-design-meetings.html"] + +[extra] +team = "the language team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ We've scheduled our **language team design meetings** for April. We have plans diff --git a/content/inside-rust/lang-team-feb-update@0.md b/content/inside-rust/lang-team-feb-update@0.md index 58d928e17..11712cbac 100644 --- a/content/inside-rust/lang-team-feb-update@0.md +++ b/content/inside-rust/lang-team-feb-update@0.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-02-03 +path = "inside-rust/2021/02/03/lang-team-feb-update" title = "Lang team February update" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Lang team February update" -team = "the lang team " +aliases = ["inside-rust/2021/02/03/lang-team-feb-update.html"] + +[extra] +team = "the lang team" +team_url = "https://lang-team.rust-lang.org/" +++ Today the lang team held its first planning meeting ([minutes]). From now on, we're going to hold these meetings on the first Wednesday of every month. diff --git a/content/inside-rust/lang-team-feb-update@1.md b/content/inside-rust/lang-team-feb-update@1.md index 8017521b4..c3539a754 100644 --- a/content/inside-rust/lang-team-feb-update@1.md +++ b/content/inside-rust/lang-team-feb-update@1.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-02-18 +path = "inside-rust/2022/02/18/lang-team-feb-update" title = "Lang team February update" -author = "Sean Chen" +authors = ["Sean Chen"] description = "Lang team February update" -team = "the lang team " +aliases = ["inside-rust/2022/02/18/lang-team-feb-update.html"] + +[extra] +team = "the lang team" +team_url = "https://lang-team.rust-lang.org/" +++ Two weeks ago, the lang team held its February planning meeting ([minutes]). We hold these meetings on the first Wednesday of every month. diff --git a/content/inside-rust/lang-team-mar-update@0.md b/content/inside-rust/lang-team-mar-update@0.md index c6ea14be4..6c9cb69b5 100644 --- a/content/inside-rust/lang-team-mar-update@0.md +++ b/content/inside-rust/lang-team-mar-update@0.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-03-03 +path = "inside-rust/2021/03/03/lang-team-mar-update" title = "Lang team March update" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Lang team March update" -team = "the lang team " +aliases = ["inside-rust/2021/03/03/lang-team-mar-update.html"] + +[extra] +team = "the lang team" +team_url = "https://lang-team.rust-lang.org/" +++ Today the lang team held its March planning meeting ([minutes]). We hold these meetings on the first Wednesday of every month. diff --git a/content/inside-rust/lang-team-mar-update@1.md b/content/inside-rust/lang-team-mar-update@1.md index 4584522e8..409ccd994 100644 --- a/content/inside-rust/lang-team-mar-update@1.md +++ b/content/inside-rust/lang-team-mar-update@1.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-03-09 +path = "inside-rust/2022/03/09/lang-team-mar-update" title = "Lang team March update" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Lang team March update" -team = "the lang team " +aliases = ["inside-rust/2022/03/09/lang-team-mar-update.html"] + +[extra] +team = "the lang team" +team_url = "https://lang-team.rust-lang.org/" +++ Two weeks ago, the lang team held its March planning meeting ([minutes]). We hold these meetings on the first Wednesday of every month and we use them to schedule [design meetings] for the remainder of the month. diff --git a/content/inside-rust/lang-team-meetings-rescheduled.md b/content/inside-rust/lang-team-meetings-rescheduled.md index 728d723c3..3fe690263 100644 --- a/content/inside-rust/lang-team-meetings-rescheduled.md +++ b/content/inside-rust/lang-team-meetings-rescheduled.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-05-08 +path = "inside-rust/2020/05/08/lang-team-meetings-rescheduled" title = "Lang Team meetings moving to new time slots" -author = "Josh Triplett" +authors = ["Josh Triplett"] description = "The Rust language team design and triage meetings have moved to new time slots" -team = "the language team " +aliases = ["inside-rust/2020/05/08/lang-team-meetings-rescheduled.html"] + +[extra] +team = "the language team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ The Rust language team holds two weekly meetings: diff --git a/content/inside-rust/lang-team-membership-update.md b/content/inside-rust/lang-team-membership-update.md index 94c16b095..3674a9489 100644 --- a/content/inside-rust/lang-team-membership-update.md +++ b/content/inside-rust/lang-team-membership-update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-02-14 +path = "inside-rust/2023/02/14/lang-team-membership-update" title = "Welcome Tyler Mandry to the Rust language team!" -author = "Josh Triplett, Niko Matsakis" -team = "The Rust Lang Team " +authors = ["Josh Triplett, Niko Matsakis"] +aliases = ["inside-rust/2023/02/14/lang-team-membership-update.html"] + +[extra] +team = "The Rust Lang Team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ We are happy to announce that [Tyler Mandry][tmandry] is joining the Rust language design team as a full member! diff --git a/content/inside-rust/lang-team-path-to-membership.md b/content/inside-rust/lang-team-path-to-membership.md index 21d29072e..0bd63742c 100644 --- a/content/inside-rust/lang-team-path-to-membership.md +++ b/content/inside-rust/lang-team-path-to-membership.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-07-09 +path = "inside-rust/2020/07/09/lang-team-path-to-membership" title = "Lang team design meeting: path to membership" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Lang team design meeting: path to membership" -team = "the lang team " +aliases = ["inside-rust/2020/07/09/lang-team-path-to-membership.html"] + +[extra] +team = "the lang team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ This week the [lang team] design meeting was on the topic of the "path to diff --git a/content/inside-rust/launching-pad-representative.md b/content/inside-rust/launching-pad-representative.md index 8b5694d29..c58b2d3fc 100644 --- a/content/inside-rust/launching-pad-representative.md +++ b/content/inside-rust/launching-pad-representative.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-05-28 +path = "inside-rust/2024/05/28/launching-pad-representative" title = "Welcome James Munns to the Leadership Council" -author = "Eric Huss" -team = "Leadership Council " +authors = ["Eric Huss"] +aliases = ["inside-rust/2024/05/28/launching-pad-representative.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ The Leadership Council would like to welcome [James Munns] as the new representative of the Launching Pad. [JP] will be stepping down for personal reasons. We are very grateful for JP being a part of the Leadership Council since its beginning. diff --git a/content/inside-rust/leadership-council-membership-changes.md b/content/inside-rust/leadership-council-membership-changes.md index 5225f6370..202c27d62 100644 --- a/content/inside-rust/leadership-council-membership-changes.md +++ b/content/inside-rust/leadership-council-membership-changes.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-08-29 +path = "inside-rust/2023/08/29/leadership-council-membership-changes" title = "Leadership Council Membership Changes" -author = "Carol Nichols" -team = "the leadership council " +authors = ["Carol Nichols"] +aliases = ["inside-rust/2023/08/29/leadership-council-membership-changes.html"] + +[extra] +team = "the leadership council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ As of today, Khionu Sybiern will no longer be the representative of the Moderation team on the diff --git a/content/inside-rust/leadership-council-repr-selection@0.md b/content/inside-rust/leadership-council-repr-selection@0.md index 7a38bb27d..735874ee2 100644 --- a/content/inside-rust/leadership-council-repr-selection@0.md +++ b/content/inside-rust/leadership-council-repr-selection@0.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-02-19 +path = "inside-rust/2024/02/19/leadership-council-repr-selection" title = "Leadership Council March Representative Selections" -author = "Leadership Council" -team = "Leadership Council " +authors = ["Leadership Council"] +aliases = ["inside-rust/2024/02/19/leadership-council-repr-selection.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ The selection process for representatives on the [Leadership Council] is starting today. diff --git a/content/inside-rust/leadership-council-repr-selection@1.md b/content/inside-rust/leadership-council-repr-selection@1.md index d64c30400..4889a688d 100644 --- a/content/inside-rust/leadership-council-repr-selection@1.md +++ b/content/inside-rust/leadership-council-repr-selection@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-04-01 +path = "inside-rust/2024/04/01/leadership-council-repr-selection" title = "Leadership Council March Representative Selections" -author = "Eric Huss" -team = "Leadership Council " +authors = ["Eric Huss"] +aliases = ["inside-rust/2024/04/01/leadership-council-repr-selection.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ The March 2024 selections for [Leadership Council] representatives have been finalized. All teams chose their existing representatives to continue for a second term. The representatives are: diff --git a/content/inside-rust/leadership-council-repr-selection@2.md b/content/inside-rust/leadership-council-repr-selection@2.md index 257b99e1f..4ecb5602b 100644 --- a/content/inside-rust/leadership-council-repr-selection@2.md +++ b/content/inside-rust/leadership-council-repr-selection@2.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-08-20 +path = "inside-rust/2024/08/20/leadership-council-repr-selection" title = "Leadership Council September Representative Selections" -author = "Eric Huss" -team = "Leadership Council " +authors = ["Eric Huss"] +aliases = ["inside-rust/2024/08/20/leadership-council-repr-selection.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ The selection process for representatives on the [Leadership Council] is starting today. diff --git a/content/inside-rust/leadership-council-repr-selection@3.md b/content/inside-rust/leadership-council-repr-selection@3.md index 98d3ffb9e..641533753 100644 --- a/content/inside-rust/leadership-council-repr-selection@3.md +++ b/content/inside-rust/leadership-council-repr-selection@3.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-09-27 +path = "inside-rust/2024/09/27/leadership-council-repr-selection" title = "Leadership Council September 2024 Representative Selections" -author = "Eric Huss" -team = "Leadership Council " +authors = ["Eric Huss"] +aliases = ["inside-rust/2024/09/27/leadership-council-repr-selection.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ The September 2024 selections for [Leadership Council] representatives have been finalized. The Lang Team has chosen [TC] as their new representative, and the Moderation Team has chosen [Oliver Scherer]. Oli is currently on leave, so the current representative, [Josh Gould], will substitute until he returns. Thank you to the outgoing representatives [Jack Huey] and [Josh Gould] for your amazing support on the Council. diff --git a/content/inside-rust/leadership-council-repr-selection@4.md b/content/inside-rust/leadership-council-repr-selection@4.md index 7a28226e0..ac83ff71e 100644 --- a/content/inside-rust/leadership-council-repr-selection@4.md +++ b/content/inside-rust/leadership-council-repr-selection@4.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-02-14 +path = "inside-rust/2025/02/14/leadership-council-repr-selection" title = "Leadership Council March 2025 Representative Selections" -author = "Eric Huss" -team = "Leadership Council " +authors = ["Eric Huss"] +aliases = ["inside-rust/2025/02/14/leadership-council-repr-selection.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ The selection process for representatives on the [Leadership Council] is starting today. diff --git a/content/inside-rust/leadership-council-repr-selection@5.md b/content/inside-rust/leadership-council-repr-selection@5.md index ee1dbe461..4db943480 100644 --- a/content/inside-rust/leadership-council-repr-selection@5.md +++ b/content/inside-rust/leadership-council-repr-selection@5.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-03-26 +path = "inside-rust/2025/03/26/leadership-council-repr-selection" title = "Leadership Council March 2025 Representative Selections" -author = "Eric Huss" -team = "Leadership Council " +authors = ["Eric Huss"] +aliases = ["inside-rust/2025/03/26/leadership-council-repr-selection.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ The March 2025 selections for [Leadership Council] representatives have been finalized. The compiler team has chosen [Josh Stone] as their new representative. [Eric Huss] and [James Munns] will continue to represent [Devtools] and [Launching Pad] respectively. diff --git a/content/inside-rust/leadership-council-update@0.md b/content/inside-rust/leadership-council-update@0.md index ae74e9692..50f0f4c46 100644 --- a/content/inside-rust/leadership-council-update@0.md +++ b/content/inside-rust/leadership-council-update@0.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-07-25 +path = "inside-rust/2023/07/25/leadership-council-update" title = "July 2023 Leadership Council Update" -author = "Leadership Council" -team = "Leadership Council " +authors = ["Leadership Council"] +aliases = ["inside-rust/2023/07/25/leadership-council-update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Hello again from the Rust Leadership Council. In our [first blog post][first post], we laid out several immediate goals for the council and promised to report back on their progress. It has been about a month since our first update so we wanted to share how it's going and what we're working on now. diff --git a/content/inside-rust/leadership-council-update@1.md b/content/inside-rust/leadership-council-update@1.md index 6695228c2..9a13707eb 100644 --- a/content/inside-rust/leadership-council-update@1.md +++ b/content/inside-rust/leadership-council-update@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-11-13 +path = "inside-rust/2023/11/13/leadership-council-update" title = "November 2023 Leadership Council Update" -author = "Leadership Council" -team = "Leadership Council " +authors = ["Leadership Council"] +aliases = ["inside-rust/2023/11/13/leadership-council-update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Hello again from the Rust Leadership Council! diff --git a/content/inside-rust/leadership-council-update@2.md b/content/inside-rust/leadership-council-update@2.md index 532990d03..065c1b6dc 100644 --- a/content/inside-rust/leadership-council-update@2.md +++ b/content/inside-rust/leadership-council-update@2.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-02-13 +path = "inside-rust/2024/02/13/leadership-council-update" title = "February 2024 Leadership Council Update" -author = "Leadership Council" -team = "Leadership Council " +authors = ["Leadership Council"] +aliases = ["inside-rust/2024/02/13/leadership-council-update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Hello again from the Rust Leadership Council! diff --git a/content/inside-rust/leadership-council-update@3.md b/content/inside-rust/leadership-council-update@3.md index 707add30b..69c4608a7 100644 --- a/content/inside-rust/leadership-council-update@3.md +++ b/content/inside-rust/leadership-council-update@3.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-05-14 +path = "inside-rust/2024/05/14/leadership-council-update" title = "May 2024 Leadership Council Update" -author = "Eric Huss" -team = "Leadership Council " +authors = ["Eric Huss"] +aliases = ["inside-rust/2024/05/14/leadership-council-update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Hello again from the Rust Leadership Council! diff --git a/content/inside-rust/leadership-council-update@4.md b/content/inside-rust/leadership-council-update@4.md index dd8a2fce0..6e149bee9 100644 --- a/content/inside-rust/leadership-council-update@4.md +++ b/content/inside-rust/leadership-council-update@4.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-09-06 +path = "inside-rust/2024/09/06/leadership-council-update" title = "September 2024 Leadership Council Update" -author = "Eric Huss" -team = "Leadership Council " +authors = ["Eric Huss"] +aliases = ["inside-rust/2024/09/06/leadership-council-update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Hello again from the Rust Leadership Council! diff --git a/content/inside-rust/leadership-council-update@5.md b/content/inside-rust/leadership-council-update@5.md index 8bfd82a4a..3562c2818 100644 --- a/content/inside-rust/leadership-council-update@5.md +++ b/content/inside-rust/leadership-council-update@5.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-12-09 +path = "inside-rust/2024/12/09/leadership-council-update" title = "December 2024 Leadership Council Update" -author = "Eric Huss" -team = "Leadership Council " +authors = ["Eric Huss"] +aliases = ["inside-rust/2024/12/09/leadership-council-update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Hello again from the Rust Leadership Council! diff --git a/content/inside-rust/leadership-council-update@6.md b/content/inside-rust/leadership-council-update@6.md index abd645156..d32af0169 100644 --- a/content/inside-rust/leadership-council-update@6.md +++ b/content/inside-rust/leadership-council-update@6.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-03-17 +path = "inside-rust/2025/03/17/leadership-council-update" title = "March 2025 Leadership Council Update" -author = "Eric Huss" -team = "Leadership Council " +authors = ["Eric Huss"] +aliases = ["inside-rust/2025/03/17/leadership-council-update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Hello again from the Rust Leadership Council! diff --git a/content/inside-rust/leadership-initiatives.md b/content/inside-rust/leadership-initiatives.md index 46b283a6f..dfe0722c8 100644 --- a/content/inside-rust/leadership-initiatives.md +++ b/content/inside-rust/leadership-initiatives.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-08-25 +path = "inside-rust/2023/08/25/leadership-initiatives" title = "Seeking help for initial Leadership Council initiatives" -author = "Mark Rousskov" -team = "the leadership council " +authors = ["Mark Rousskov"] +aliases = ["inside-rust/2023/08/25/leadership-initiatives.html"] + +[extra] +team = "the leadership council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ Having not heard any significant disagreement with the first set of [proposed priorities], diff --git a/content/inside-rust/libs-aspirations.md b/content/inside-rust/libs-aspirations.md index c74034de9..5744b6eb5 100644 --- a/content/inside-rust/libs-aspirations.md +++ b/content/inside-rust/libs-aspirations.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-04-20 +path = "inside-rust/2022/04/20/libs-aspirations" title = "Rust Library Team Aspirations" -author = "Mara Bos" +authors = ["Mara Bos"] description = "Rust Library Team Aspirations" -team = "The Rust Library Team " +aliases = ["inside-rust/2022/04/20/libs-aspirations.html"] + +[extra] +team = "The Rust Library Team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ Over the past years, Rust has grown from a language used by a few dedicated users diff --git a/content/inside-rust/libs-contributors-the8472-kodraus.md b/content/inside-rust/libs-contributors-the8472-kodraus.md index fcf3949f8..c47936f1d 100644 --- a/content/inside-rust/libs-contributors-the8472-kodraus.md +++ b/content/inside-rust/libs-contributors-the8472-kodraus.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2021-11-15 +path = "inside-rust/2021/11/15/libs-contributors-the8472-kodraus" title = "Please welcome The 8472 and Ashley Mannix to Library Contributors" -author = "Mara Bos" +authors = ["Mara Bos"] description = "Please welcome The 8472 and Ashley Mannix to Library Contributors" -team = "the library team " +aliases = ["inside-rust/2021/11/15/libs-contributors-the8472-kodraus.html"] + +[extra] +team = "the library team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ Please welcome The 8472 and Ashley Mannix to the diff --git a/content/inside-rust/libs-contributors@0.md b/content/inside-rust/libs-contributors@0.md index 9449d7a9b..cab34a20f 100644 --- a/content/inside-rust/libs-contributors@0.md +++ b/content/inside-rust/libs-contributors@0.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-04-18 +path = "inside-rust/2022/04/18/libs-contributors" title = "Please welcome Thom and Chris to Library Contributors" -author = "Mara Bos" +authors = ["Mara Bos"] description = "Please welcome Thom and Chris to Library Contributors" -team = "the library team " +aliases = ["inside-rust/2022/04/18/libs-contributors.html"] + +[extra] +team = "the library team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ Please welcome Thom Chiovoloni and Chris Denton to the diff --git a/content/inside-rust/libs-contributors@1.md b/content/inside-rust/libs-contributors@1.md index dfe4e253f..b296477c1 100644 --- a/content/inside-rust/libs-contributors@1.md +++ b/content/inside-rust/libs-contributors@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-08-10 +path = "inside-rust/2022/08/10/libs-contributors" title = "Please welcome Dan to Library Contributors" -author = "Mara Bos" -team = "the library team " +authors = ["Mara Bos"] +aliases = ["inside-rust/2022/08/10/libs-contributors.html"] + +[extra] +team = "the library team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ Please welcome [Dan Gohman](https://github.com/sunfishcode) to the diff --git a/content/inside-rust/libs-member.md b/content/inside-rust/libs-member.md index d0b7ce47c..1c8bfccca 100644 --- a/content/inside-rust/libs-member.md +++ b/content/inside-rust/libs-member.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-11-29 +path = "inside-rust/2022/11/29/libs-member" title = "Please welcome The 8472 to the Library team" -author = "Mara Bos" -team = "the library team " +authors = ["Mara Bos"] +aliases = ["inside-rust/2022/11/29/libs-member.html"] + +[extra] +team = "the library team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ We're very excited to announce that [The 8472](https://github.com/the8472) diff --git a/content/inside-rust/lto-improvements.md b/content/inside-rust/lto-improvements.md index 03ad2b48f..5266ef371 100644 --- a/content/inside-rust/lto-improvements.md +++ b/content/inside-rust/lto-improvements.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-06-29 +path = "inside-rust/2020/06/29/lto-improvements" title = "Disk space and LTO improvements" -author = "Eric Huss" +authors = ["Eric Huss"] description = "Disk space and LTO improvements" -team = "the Cargo team " +aliases = ["inside-rust/2020/06/29/lto-improvements.html"] + +[extra] +team = "the Cargo team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ Thanks to the work of [Nicholas Nethercote] and [Alex Crichton], there have been some recent improvements that reduce the size of compiled libraries, and improves the compile-time performance, particularly when using LTO. This post dives into some of the details of what changed, and an estimation of the benefits. diff --git a/content/inside-rust/mar-steering-cycle.md b/content/inside-rust/mar-steering-cycle.md index f243c65e9..89d8b1d9e 100644 --- a/content/inside-rust/mar-steering-cycle.md +++ b/content/inside-rust/mar-steering-cycle.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-03-11 +path = "inside-rust/2022/03/11/mar-steering-cycle" title = "Rust Compiler March 2022 Steering Cycle" -author = "Felix Klock" +authors = ["Felix Klock"] description = "The compiler team's March 2022 steering cycle" -team = "The Compiler Team " +aliases = ["inside-rust/2022/03/11/mar-steering-cycle.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ On [Friday, March 11th][mar-11-zulip-archive], the Rust Compiler team had a planning meeting for the March steering cycle. diff --git a/content/inside-rust/new-inline-asm.md b/content/inside-rust/new-inline-asm.md index c7bb21bed..5e92cb84b 100644 --- a/content/inside-rust/new-inline-asm.md +++ b/content/inside-rust/new-inline-asm.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-06-08 +path = "inside-rust/2020/06/08/new-inline-asm" title = "New inline assembly syntax available in nightly" -author = "Josh Triplett" +authors = ["Josh Triplett"] description = "Rust has a new inline assembly syntax in nightly, please test" -team = "the language team " +aliases = ["inside-rust/2020/06/08/new-inline-asm.html"] + +[extra] +team = "the language team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ In the course of optimization, OS or embedded development, or other kinds of diff --git a/content/inside-rust/opening-up-the-core-team-agenda.md b/content/inside-rust/opening-up-the-core-team-agenda.md index 66db38be5..5f6d9b254 100644 --- a/content/inside-rust/opening-up-the-core-team-agenda.md +++ b/content/inside-rust/opening-up-the-core-team-agenda.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-07-27 +path = "inside-rust/2020/07/27/opening-up-the-core-team-agenda" title = "Opening up the Core Team agenda" -author = "Pietro Albini" -team = "the Core Team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2020/07/27/opening-up-the-core-team-agenda.html"] + +[extra] +team = "the Core Team" +team_url = "https://www.rust-lang.org/governance/teams/core" +++ The Core Team works on project-wide policy questions on all sorts of matters, diff --git a/content/inside-rust/pietro-joins-core-team.md b/content/inside-rust/pietro-joins-core-team.md index 9f6f9fd06..134688040 100644 --- a/content/inside-rust/pietro-joins-core-team.md +++ b/content/inside-rust/pietro-joins-core-team.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-02-27 +path = "inside-rust/2020/02/27/pietro-joins-core-team" title = "Pietro Albini has joined the core team" -author = "Nick Cameron" -team = "the core team " +authors = ["Nick Cameron"] +aliases = ["inside-rust/2020/02/27/pietro-joins-core-team.html"] + +[extra] +team = "the core team" +team_url = "https://www.rust-lang.org/governance/teams/core" +++ We are very happy to announce that [Pietro Albini](https://github.com/pietroalbini) has joined the core team. Pietro joined us back on December 24th 2019 (a Christmas present for the core team!), but we have been a bit late in announcing it (sorry Pietro!). diff --git a/content/inside-rust/planning-meeting-update.md b/content/inside-rust/planning-meeting-update.md index e9c1511cb..64d8ea2a1 100644 --- a/content/inside-rust/planning-meeting-update.md +++ b/content/inside-rust/planning-meeting-update.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-25 +path = "inside-rust/2019/10/25/planning-meeting-update" title = "Planning meeting update" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Planning meeting update" -team = "the compiler team " +aliases = ["inside-rust/2019/10/25/planning-meeting-update.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ In our planning meeting today, the compiler team has scheduled our diff --git a/content/inside-rust/planning-rust-2021.md b/content/inside-rust/planning-rust-2021.md index cbb1ea347..7a33bc4bc 100644 --- a/content/inside-rust/planning-rust-2021.md +++ b/content/inside-rust/planning-rust-2021.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-03-04 +path = "inside-rust/2021/03/04/planning-rust-2021" title = "Planning the Rust 2021 Edition" -author = "Ryan Levick" -team = "The Rust 2021 Edition Working Group " +authors = ["Ryan Levick"] +aliases = ["inside-rust/2021/03/04/planning-rust-2021.html"] + +[extra] +team = "The Rust 2021 Edition Working Group" +team_url = "https://www.rust-lang.org/governance/teams/core#project-edition-2021" +++ The Rust 2021 Edition working group is happy to announce that the next edition of Rust, Rust 2021, is scheduled for release later this year. While the [RFC](https://github.com/rust-lang/rfcs/pull/3085) formally introducing this edition is still open, we expect it to be merged soon. Planning and preparation have already begun, and we're on schedule! diff --git a/content/inside-rust/pnkfelix-compiler-team-co-lead.md b/content/inside-rust/pnkfelix-compiler-team-co-lead.md index 5c8ba7804..b8fa7c8bf 100644 --- a/content/inside-rust/pnkfelix-compiler-team-co-lead.md +++ b/content/inside-rust/pnkfelix-compiler-team-co-lead.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-24 +path = "inside-rust/2019/10/24/pnkfelix-compiler-team-co-lead" title = "Please welcome pnkfelix as compiler team co-lead!" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "pnkfelix added as compiler-team co-lead" -team = "the compiler team " +aliases = ["inside-rust/2019/10/24/pnkfelix-compiler-team-co-lead.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ I'm happy to announce that [pnkfelix] will be joining me as compiler diff --git a/content/inside-rust/polonius-update.md b/content/inside-rust/polonius-update.md index 9a7593662..8fae228d7 100644 --- a/content/inside-rust/polonius-update.md +++ b/content/inside-rust/polonius-update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-10-06 +path = "inside-rust/2023/10/06/polonius-update" title = "Polonius update" -author = "Rémy Rakic and Niko Matsakis" -team = "The Polonius Working Group " +authors = ["Rémy Rakic and Niko Matsakis"] +aliases = ["inside-rust/2023/10/06/polonius-update.html"] + +[extra] +team = "The Polonius Working Group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#Polonius%20working%20group" +++ This post lays out a roadmap to try to get Polonius on stable by Rust 2024. It identifies some high-level milestones and summarizes the key goals, as well as the recent progress. diff --git a/content/inside-rust/project-director-nominees.md b/content/inside-rust/project-director-nominees.md index 54cb8a416..f83560607 100644 --- a/content/inside-rust/project-director-nominees.md +++ b/content/inside-rust/project-director-nominees.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-09-22 +path = "inside-rust/2023/09/22/project-director-nominees" title = "Announcing the Project Director Nominees" -author = "Leadership Council" -team = "Leadership Council " +authors = ["Leadership Council"] +aliases = ["inside-rust/2023/09/22/project-director-nominees.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ # Announcing the Project Director Nominees diff --git a/content/inside-rust/project-director-update@0.md b/content/inside-rust/project-director-update@0.md index 6cf54e285..6fd3520d1 100644 --- a/content/inside-rust/project-director-update@0.md +++ b/content/inside-rust/project-director-update@0.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-12-17 +path = "inside-rust/2024/12/17/project-director-update" title = "December 2024 Project Director Update" -author = "Carol Nichols" -team = "Rust Foundation Project Directors " +authors = ["Carol Nichols"] +aliases = ["inside-rust/2024/12/17/project-director-update.html"] + +[extra] +team = "Rust Foundation Project Directors" +team_url = "https://foundation.rust-lang.org/about/" +++ Hello and welcome to the inaugural Rust Foundation Project Director update! I’m Carol Nichols, I’m diff --git a/content/inside-rust/project-director-update@1.md b/content/inside-rust/project-director-update@1.md index 4f779e66e..7bccda8b8 100644 --- a/content/inside-rust/project-director-update@1.md +++ b/content/inside-rust/project-director-update@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-01-30 +path = "inside-rust/2025/01/30/project-director-update" title = "January 2025 Project Director Update" -author = "Carol Nichols" -team = "Rust Foundation Project Directors " +authors = ["Carol Nichols"] +aliases = ["inside-rust/2025/01/30/project-director-update.html"] + +[extra] +team = "Rust Foundation Project Directors" +team_url = "https://foundation.rust-lang.org/about/" +++ Happy New Year everyone! Welcome to the second blog post in [the series started last month](https://blog.rust-lang.org/inside-rust/2024/12/17/project-director-update.html) where us Rust Foundation Project Directors will be sharing the highlights from last month’s Rust Foundation Board meeting. You’ll find the [full December 2024 meeting minutes](https://rustfoundation.org/resource/december-board-minutes/) on the Rust Foundation’s [beautiful new site](https://rustfoundation.org/policies-resources/#minutes)! diff --git a/content/inside-rust/project-director-update@2.md b/content/inside-rust/project-director-update@2.md index 6bd55048a..b87be5981 100644 --- a/content/inside-rust/project-director-update@2.md +++ b/content/inside-rust/project-director-update@2.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-02-24 +path = "inside-rust/2025/02/24/project-director-update" title = "February 2025 Project Director Update" -author = "Carol Nichols" -team = "Rust Foundation Project Directors " +authors = ["Carol Nichols"] +aliases = ["inside-rust/2025/02/24/project-director-update.html"] + +[extra] +team = "Rust Foundation Project Directors" +team_url = "https://foundation.rust-lang.org/about/" +++ This is the third blog post in [the series started December 2024](https://blog.rust-lang.org/inside-rust/2024/12/17/project-director-update.html) where us Rust Foundation Project Directors will be sharing the highlights from last month’s Rust Foundation Board meeting. You’ll find the [full January 2025 meeting minutes](https://rustfoundation.org/resource/january-2025-board-meeting/) on the Rust Foundation’s [beautiful new site](https://rustfoundation.org/policies-resources/#minutes)! diff --git a/content/inside-rust/project-director-update@3.md b/content/inside-rust/project-director-update@3.md index 7a00effcc..ca6729e9c 100644 --- a/content/inside-rust/project-director-update@3.md +++ b/content/inside-rust/project-director-update@3.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-04-03 +path = "inside-rust/2025/04/03/project-director-update" title = "March 2025 Project Director Update" -author = "Carol Nichols" -team = "Rust Foundation Project Directors " +authors = ["Carol Nichols"] +aliases = ["inside-rust/2025/04/03/project-director-update.html"] + +[extra] +team = "Rust Foundation Project Directors" +team_url = "https://foundation.rust-lang.org/about/" +++ This is the fourth blog post in [the series started December diff --git a/content/inside-rust/project-goals-2025h1-call-for-proposals.md b/content/inside-rust/project-goals-2025h1-call-for-proposals.md index 498bfe8e4..c7bacc7a6 100644 --- a/content/inside-rust/project-goals-2025h1-call-for-proposals.md +++ b/content/inside-rust/project-goals-2025h1-call-for-proposals.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-11-04 +path = "inside-rust/2024/11/04/project-goals-2025h1-call-for-proposals" title = "Call for proposals: Rust 2025h1 project goals" -author = "Niko Matsakis" -team = "Leadership Council " +authors = ["Niko Matsakis"] +aliases = ["inside-rust/2024/11/04/project-goals-2025h1-call-for-proposals.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ **As of today, we are officially accepting proposals for Rust Project Goals targeting 2025H1 (the first half of 2025).** If you'd like to participate in the process, or just to follow along, please check out the [2025h1 goal page][2025h1]. It includes listings of the goals currently under consideration, more details about the goals program, and instructions for how to submit a goal. diff --git a/content/inside-rust/recent-future-pattern-matching-improvements.md b/content/inside-rust/recent-future-pattern-matching-improvements.md index 783762ff7..6cbe3f84f 100644 --- a/content/inside-rust/recent-future-pattern-matching-improvements.md +++ b/content/inside-rust/recent-future-pattern-matching-improvements.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-03-04 +path = "inside-rust/2020/03/04/recent-future-pattern-matching-improvements" title = "Recent and future pattern matching improvements" -author = 'Mazdak "Centril" Farrokhzad' +authors = ['Mazdak "Centril" Farrokhzad'] description = "Reviewing recent pattern matching improvements" -team = "the language team " +aliases = ["inside-rust/2020/03/04/recent-future-pattern-matching-improvements.html"] + +[extra] +team = "the language team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ [ch_6]: https://doc.rust-lang.org/book/ch06-00-enums.html diff --git a/content/inside-rust/relnotes-interest-group.md b/content/inside-rust/relnotes-interest-group.md index a398d10c2..68e8c5e0c 100644 --- a/content/inside-rust/relnotes-interest-group.md +++ b/content/inside-rust/relnotes-interest-group.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-02-27 +path = "inside-rust/2025/02/27/relnotes-interest-group" title = "Relnotes PR and release blog post ping group" -author = "Jieyou Xu" -team = "The Release Team " +authors = ["Jieyou Xu"] +aliases = ["inside-rust/2025/02/27/relnotes-interest-group.html"] + +[extra] +team = "The Release Team" +team_url = "https://www.rust-lang.org/governance/teams/infra#team-release" +++ # Relnotes PR and release blog post ping group is now available diff --git a/content/inside-rust/rename-rustc-guide.md b/content/inside-rust/rename-rustc-guide.md index 42f1166ee..de17355c8 100644 --- a/content/inside-rust/rename-rustc-guide.md +++ b/content/inside-rust/rename-rustc-guide.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-03-13 +path = "inside-rust/2020/03/13/rename-rustc-guide" title = "The rustc-guide is now rustc-dev-guide" -author = "mark-i-m" +authors = ["mark-i-m"] description = "the guide has been renamed" -team = "the rustc dev guide working group " +aliases = ["inside-rust/2020/03/13/rename-rustc-guide.html"] + +[extra] +team = "the rustc dev guide working group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#wg-rustc-dev-guide" +++ You may or may not be aware of two similarly named resources: diff --git a/content/inside-rust/rotating-compiler-leads.md b/content/inside-rust/rotating-compiler-leads.md index 4f5ed4210..22dfea407 100644 --- a/content/inside-rust/rotating-compiler-leads.md +++ b/content/inside-rust/rotating-compiler-leads.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-08-02 +path = "inside-rust/2023/08/02/rotating-compiler-leads" title = "Rotating Rust compiler team leadership" -author = "Wesley Wiser" -team = "the compiler team " +authors = ["Wesley Wiser"] +aliases = ["inside-rust/2023/08/02/rotating-compiler-leads.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ As initiated in [late 2020] and ratified by [RFC 3262], the Rust compiler team uses a rotating system of co-leads. diff --git a/content/inside-rust/rtn-call-for-testing.md b/content/inside-rust/rtn-call-for-testing.md index 46bb57489..7d18e4a0f 100644 --- a/content/inside-rust/rtn-call-for-testing.md +++ b/content/inside-rust/rtn-call-for-testing.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-09-26 +path = "inside-rust/2024/09/26/rtn-call-for-testing" title = "Return type notation MVP: Call for testing!" -author = "Michael Goulet" -team = "The Async Working Group " +authors = ["Michael Goulet"] +aliases = ["inside-rust/2024/09/26/rtn-call-for-testing.html"] + +[extra] +team = "The Async Working Group" +team_url = "https://www.rust-lang.org/governance/wgs/wg-async" +++ The async working group is excited to announce that [RFC 3654] return type notation (RTN) is ready for testing on nightly Rust. In this post, we'll briefly describe the feature. diff --git a/content/inside-rust/rust-ci-is-moving-to-github-actions.md b/content/inside-rust/rust-ci-is-moving-to-github-actions.md index 49062a093..f056d1754 100644 --- a/content/inside-rust/rust-ci-is-moving-to-github-actions.md +++ b/content/inside-rust/rust-ci-is-moving-to-github-actions.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-07-23 +path = "inside-rust/2020/07/23/rust-ci-is-moving-to-github-actions" title = "Rust's CI is moving to GitHub Actions" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2020/07/23/rust-ci-is-moving-to-github-actions.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ The Rust Infrastructure Team is happy to announce that, as part of the diff --git a/content/inside-rust/rust-leads-summit.md b/content/inside-rust/rust-leads-summit.md index 57f8f6098..0c2d18067 100644 --- a/content/inside-rust/rust-leads-summit.md +++ b/content/inside-rust/rust-leads-summit.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-05-09 +path = "inside-rust/2024/05/09/rust-leads-summit" title = "Recap: Rust Leads Summit 2024" -author = "Tyler Mandry and Eric Holk" +authors = ["Tyler Mandry and Eric Holk"] +aliases = ["inside-rust/2024/05/09/rust-leads-summit.html"] +++ ## What happened? diff --git a/content/inside-rust/rustc-dev-guide-overview.md b/content/inside-rust/rustc-dev-guide-overview.md index f49014652..e73e1494d 100644 --- a/content/inside-rust/rustc-dev-guide-overview.md +++ b/content/inside-rust/rustc-dev-guide-overview.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-03-26 +path = "inside-rust/2020/03/26/rustc-dev-guide-overview" title = "rustc-dev-guide Overview" -author = "Chris Simpkins" +authors = ["Chris Simpkins"] description = "2020-03-26 rustc-dev-guide Overview" -team = "the Rustc Dev Guide Working Group " +aliases = ["inside-rust/2020/03/26/rustc-dev-guide-overview.html"] + +[extra] +team = "the Rustc Dev Guide Working Group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#wg-rustc-dev-guide" +++ The `rustc` compiler includes over 380,000 lines of source across more than 40 crates1 to support the lexing through binary linking stages of the Rust compile process. It is daunting for newcomers, and we recognize that a high-level survey of the pipeline is warranted. diff --git a/content/inside-rust/rustc-learning-working-group-introduction.md b/content/inside-rust/rustc-learning-working-group-introduction.md index 6deedbfea..beca0839f 100644 --- a/content/inside-rust/rustc-learning-working-group-introduction.md +++ b/content/inside-rust/rustc-learning-working-group-introduction.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-10-28 +path = "inside-rust/2019/10/28/rustc-learning-working-group-introduction" title = "The Rustc Dev Guide Working Group - An Introduction" -author = "Amanjeev Sethi" +authors = ["Amanjeev Sethi"] description = "introduction rustc dev guide working group useful links" -team = "the rustc dev guide working group " +aliases = ["inside-rust/2019/10/28/rustc-learning-working-group-introduction.html"] + +[extra] +team = "the rustc dev guide working group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#wg-rustc-dev-guide" +++ The [Rustc Dev Guide Working Group], formed in April 2019, is focused on making the diff --git a/content/inside-rust/rustdoc-performance-improvements.md b/content/inside-rust/rustdoc-performance-improvements.md index 9dd55e33e..3ed965fbd 100644 --- a/content/inside-rust/rustdoc-performance-improvements.md +++ b/content/inside-rust/rustdoc-performance-improvements.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-01-15 +path = "inside-rust/2021/01/15/rustdoc-performance-improvements" title = "Rustdoc performance improvements" -author = "Jynn Nelson and Guillaume Gomez" -team = "The Rustdoc Team " +authors = ["Jynn Nelson and Guillaume Gomez"] +aliases = ["inside-rust/2021/01/15/rustdoc-performance-improvements.html"] + +[extra] +team = "The Rustdoc Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#rustdoc" +++ Hi everyone! [**@GuillaumeGomez**] recently tweeted about the rustdoc performance improvements and suggested that we write a blog post about it: diff --git a/content/inside-rust/rustup-1.24.0-incident-report.md b/content/inside-rust/rustup-1.24.0-incident-report.md index d502d737a..d7e9aa49c 100644 --- a/content/inside-rust/rustup-1.24.0-incident-report.md +++ b/content/inside-rust/rustup-1.24.0-incident-report.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-04-28 +path = "inside-rust/2021/04/28/rustup-1.24.0-incident-report" title = "Rustup 1.24.0 release incident report for 2021-04-27" -author = "Daniel Silverstone" -team = "the Rustup team " +authors = ["Daniel Silverstone"] +aliases = ["inside-rust/2021/04/28/rustup-1.24.0-incident-report.html"] + +[extra] +team = "the Rustup team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#wg-rustup" +++ On 2021-04-27 at 15:09 UTC we released a new version of Rustup (1.24.0). At diff --git a/content/inside-rust/shrinkmem-rustc-sprint.md b/content/inside-rust/shrinkmem-rustc-sprint.md index 5f55b1c49..300d5ac0c 100644 --- a/content/inside-rust/shrinkmem-rustc-sprint.md +++ b/content/inside-rust/shrinkmem-rustc-sprint.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2021-02-15 +path = "inside-rust/2021/02/15/shrinkmem-rustc-sprint" title = "March Sprint for rustc: Shrink Memory Usage" -author = "Felix Klock" -team = "The Compiler Team " +authors = ["Felix Klock"] +aliases = ["inside-rust/2021/02/15/shrinkmem-rustc-sprint.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ I am very excited about the compiler team's upcoming sprint, and diff --git a/content/inside-rust/source-based-code-coverage.md b/content/inside-rust/source-based-code-coverage.md index e32a83044..9f743b031 100644 --- a/content/inside-rust/source-based-code-coverage.md +++ b/content/inside-rust/source-based-code-coverage.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-11-12 +path = "inside-rust/2020/11/12/source-based-code-coverage" title = "Source-based code coverage in nightly" -author = "Tyler Mandry" -team = "The Compiler Team " +authors = ["Tyler Mandry"] +aliases = ["inside-rust/2020/11/12/source-based-code-coverage.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ diff --git a/content/inside-rust/spec-vision.md b/content/inside-rust/spec-vision.md index 351515a82..3fada4dd3 100644 --- a/content/inside-rust/spec-vision.md +++ b/content/inside-rust/spec-vision.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-11-15 +path = "inside-rust/2023/11/15/spec-vision" title = "Our Vision for the Rust Specification" -author = "Eric, Felix, Joel and Mara" -team = "the specification team " +authors = ["Eric, Felix, Joel and Mara"] +aliases = ["inside-rust/2023/11/15/spec-vision.html"] + +[extra] +team = "the specification team" +team_url = "https://www.rust-lang.org/governance/teams/lang#Specification%20team" +++ A few months ago, by accepting [RFC 3355](https://rust-lang.github.io/rfcs/3355-rust-spec.html), the decision was made to start working on an official specification for the Rust language. Eric (maintainer of the Rust Reference), Felix (Rust language team), Joel (Rust Foundation) and Mara (author of the RFC) have been working together to get this effort started. diff --git a/content/inside-rust/stabilizing-async-fn-in-trait.md b/content/inside-rust/stabilizing-async-fn-in-trait.md index 66e0211ce..3c898168c 100644 --- a/content/inside-rust/stabilizing-async-fn-in-trait.md +++ b/content/inside-rust/stabilizing-async-fn-in-trait.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-05-03 +path = "inside-rust/2023/05/03/stabilizing-async-fn-in-trait" title = "Stabilizing async fn in traits in 2023" -author = "Niko Matsakis and Tyler Mandry" -team = "The Rust Async Working Group " +authors = ["Niko Matsakis and Tyler Mandry"] +aliases = ["inside-rust/2023/05/03/stabilizing-async-fn-in-trait.html"] + +[extra] +team = "The Rust Async Working Group" +team_url = "https://www.rust-lang.org/governance/wgs/wg-async" +++ The async working group's headline goal for 2023 is to stabilize a "minimum viable product" (MVP) version of async functions in traits. We are currently targeting Rust 1.74 for stabilization. This post lays out the features we plan to ship and the status of each one. diff --git a/content/inside-rust/stabilizing-intra-doc-links.md b/content/inside-rust/stabilizing-intra-doc-links.md index e7a1b8c98..fdfe5b491 100644 --- a/content/inside-rust/stabilizing-intra-doc-links.md +++ b/content/inside-rust/stabilizing-intra-doc-links.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-09-17 +path = "inside-rust/2020/09/17/stabilizing-intra-doc-links" title = "Intra-doc links close to stabilization" -author = "Manish Goregaokar and Jynn Nelson" -team = "the rustdoc team " +authors = ["Manish Goregaokar and Jynn Nelson"] +aliases = ["inside-rust/2020/09/17/stabilizing-intra-doc-links.html"] + +[extra] +team = "the rustdoc team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#rustdoc" +++ We're excited to share that intra-doc links are stabilizing soon! diff --git a/content/inside-rust/survey-2021-report.md b/content/inside-rust/survey-2021-report.md index d43f0aebd..ee73646a9 100644 --- a/content/inside-rust/survey-2021-report.md +++ b/content/inside-rust/survey-2021-report.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2022-06-21 +path = "inside-rust/2022/06/21/survey-2021-report" title = "2021 Annual Survey Report" -author = "Nick Cameron" +authors = ["Nick Cameron"] description = "Download a data report on the 2021 annual community survey." -team = "The Survey Working Group " +aliases = ["inside-rust/2022/06/21/survey-2021-report.html"] + +[extra] +team = "The Survey Working Group" +team_url = "https://www.rust-lang.org/governance/teams/community#Survey%20team" +++ As usual, we conducted an annual community survey in 2021. We previously shared some some highlights and charts in a [blog post](https://blog.rust-lang.org/2022/02/15/Rust-Survey-2021.html). This year we would also like to diff --git a/content/inside-rust/terminating-rust.md b/content/inside-rust/terminating-rust.md index ac20a4dde..a0ea648c4 100644 --- a/content/inside-rust/terminating-rust.md +++ b/content/inside-rust/terminating-rust.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-03-19 +path = "inside-rust/2020/03/19/terminating-rust" title = "Resolving Rust's forward progress guarantees" -author = "Mark Rousskov" +authors = ["Mark Rousskov"] description = "Should side-effect be the fix?" -team = "the compiler team " +aliases = ["inside-rust/2020/03/19/terminating-rust.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ There has been a longstanding miscompilation in Rust: programs that do not make diff --git a/content/inside-rust/test-infra-dec-2024.md b/content/inside-rust/test-infra-dec-2024.md index fdad47bd1..7ba2feb98 100644 --- a/content/inside-rust/test-infra-dec-2024.md +++ b/content/inside-rust/test-infra-dec-2024.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-01-10 +path = "inside-rust/2025/01/10/test-infra-dec-2024" title = "This Month in Our Test Infra: December 2024" -author = "Jieyou Xu" -team = "the Bootstrap Team " +authors = ["Jieyou Xu"] +aliases = ["inside-rust/2025/01/10/test-infra-dec-2024.html"] + +[extra] +team = "the Bootstrap Team" +team_url = "https://www.rust-lang.org/governance/teams/infra#team-bootstrap" +++ # This Month in Our Test Infra: December 2024 diff --git a/content/inside-rust/test-infra-jan-feb-2025.md b/content/inside-rust/test-infra-jan-feb-2025.md index 417a85952..dea97687d 100644 --- a/content/inside-rust/test-infra-jan-feb-2025.md +++ b/content/inside-rust/test-infra-jan-feb-2025.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-03-11 +path = "inside-rust/2025/03/11/test-infra-jan-feb-2025" title = "This Month in Our Test Infra: January and February 2025" -author = "Jieyou Xu" -team = "the Bootstrap Team " +authors = ["Jieyou Xu"] +aliases = ["inside-rust/2025/03/11/test-infra-jan-feb-2025.html"] + +[extra] +team = "the Bootstrap Team" +team_url = "https://www.rust-lang.org/governance/teams/infra#team-bootstrap" +++ # This Month in Our Test Infra: January and February 2025 diff --git a/content/inside-rust/test-infra-nov-2024.md b/content/inside-rust/test-infra-nov-2024.md index bf47dad2c..ec47dcc26 100644 --- a/content/inside-rust/test-infra-nov-2024.md +++ b/content/inside-rust/test-infra-nov-2024.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-12-09 +path = "inside-rust/2024/12/09/test-infra-nov-2024" title = "This Month in Our Test Infra: November 2024" -author = "Jieyou Xu" -team = "the Bootstrap Team " +authors = ["Jieyou Xu"] +aliases = ["inside-rust/2024/12/09/test-infra-nov-2024.html"] + +[extra] +team = "the Bootstrap Team" +team_url = "https://www.rust-lang.org/governance/teams/infra#team-bootstrap" +++ # This Month in Our Test Infra: November 2024 diff --git a/content/inside-rust/test-infra-oct-2024-2.md b/content/inside-rust/test-infra-oct-2024-2.md index ce7a3cec2..b2e086f08 100644 --- a/content/inside-rust/test-infra-oct-2024-2.md +++ b/content/inside-rust/test-infra-oct-2024-2.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-11-04 +path = "inside-rust/2024/11/04/test-infra-oct-2024-2" title = "This Month in Our Test Infra: October 2024" -author = "Jieyou Xu" -team = "the Bootstrap Team " +authors = ["Jieyou Xu"] +aliases = ["inside-rust/2024/11/04/test-infra-oct-2024-2.html"] + +[extra] +team = "the Bootstrap Team" +team_url = "https://www.rust-lang.org/governance/teams/infra#team-bootstrap" +++ # This Month in Our Test Infra: October 2024 diff --git a/content/inside-rust/test-infra-oct-2024.md b/content/inside-rust/test-infra-oct-2024.md index 280bf9ad3..a9fd6c658 100644 --- a/content/inside-rust/test-infra-oct-2024.md +++ b/content/inside-rust/test-infra-oct-2024.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-10-10 +path = "inside-rust/2024/10/10/test-infra-oct-2024" title = "This Month in Our Test Infra: September 2024" -author = "Jieyou Xu" -team = "the Bootstrap Team " +authors = ["Jieyou Xu"] +aliases = ["inside-rust/2024/10/10/test-infra-oct-2024.html"] + +[extra] +team = "the Bootstrap Team" +team_url = "https://www.rust-lang.org/governance/teams/infra#team-bootstrap" +++ # This Month in Our Test Infra: September 2024 diff --git a/content/inside-rust/this-development-cycle-in-cargo-1-76.md b/content/inside-rust/this-development-cycle-in-cargo-1-76.md index d565a3f31..ddbca685c 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1-76.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1-76.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-01-03 +path = "inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76" title = "This Development-cycle in Cargo: 1.76" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2024/01/03/this-development-cycle-in-cargo-1-76.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ We wanted to share what has been happening for the last 6 weeks to better keep the community informed and involved. diff --git a/content/inside-rust/this-development-cycle-in-cargo-1-77.md b/content/inside-rust/this-development-cycle-in-cargo-1-77.md index 6c32e01eb..117ed5944 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1-77.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1-77.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-02-13 +path = "inside-rust/2024/02/13/this-development-cycle-in-cargo-1-77" title = "This Development-cycle in Cargo: 1.77" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2024/02/13/this-development-cycle-in-cargo-1-77.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ # This Development-cycle in Cargo: 1.77 diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.78.md b/content/inside-rust/this-development-cycle-in-cargo-1.78.md index a84a13f0c..02a3ef2bb 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.78.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.78.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-03-26 +path = "inside-rust/2024/03/26/this-development-cycle-in-cargo-1.78" title = "This Development-cycle in Cargo: 1.78" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2024/03/26/this-development-cycle-in-cargo-1.78.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ # This Development-cycle in Cargo: 1.78 diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.79.md b/content/inside-rust/this-development-cycle-in-cargo-1.79.md index 8d69520d1..a422d9574 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.79.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.79.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-05-07 +path = "inside-rust/2024/05/07/this-development-cycle-in-cargo-1.79" title = "This Development-cycle in Cargo: 1.79" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2024/05/07/this-development-cycle-in-cargo-1.79.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ # This Development-cycle in Cargo: 1.79 diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.80.md b/content/inside-rust/this-development-cycle-in-cargo-1.80.md index 98e3f5173..e082dfd10 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.80.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.80.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-06-19 +path = "inside-rust/2024/06/19/this-development-cycle-in-cargo-1.80" title = "This Development-cycle in Cargo: 1.80" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2024/06/19/this-development-cycle-in-cargo-1.80.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ # This Development-cycle in Cargo: 1.80 diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.81.md b/content/inside-rust/this-development-cycle-in-cargo-1.81.md index 449d66c0e..58f8b3081 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.81.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.81.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-08-15 +path = "inside-rust/2024/08/15/this-development-cycle-in-cargo-1.81" title = "This Development-cycle in Cargo: 1.81" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2024/08/15/this-development-cycle-in-cargo-1.81.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ # This Development-cycle in Cargo: 1.81 diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.82.md b/content/inside-rust/this-development-cycle-in-cargo-1.82.md index ad134e5df..09af03f57 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.82.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.82.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-10-01 +path = "inside-rust/2024/10/01/this-development-cycle-in-cargo-1.82" title = "This Development-cycle in Cargo: 1.82" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2024/10/01/this-development-cycle-in-cargo-1.82.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ # This Development-cycle in Cargo: 1.82 diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.83.md b/content/inside-rust/this-development-cycle-in-cargo-1.83.md index 7c367e91b..616446adb 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.83.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.83.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-10-31 +path = "inside-rust/2024/10/31/this-development-cycle-in-cargo-1.83" title = "This Development-cycle in Cargo: 1.83" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2024/10/31/this-development-cycle-in-cargo-1.83.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ # This Development-cycle in Cargo: 1.83 diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.84.md b/content/inside-rust/this-development-cycle-in-cargo-1.84.md index eed76c524..400fed174 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.84.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.84.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-12-13 +path = "inside-rust/2024/12/13/this-development-cycle-in-cargo-1.84" title = "This Development-cycle in Cargo: 1.84" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2024/12/13/this-development-cycle-in-cargo-1.84.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ # This Development-cycle in Cargo: 1.84 diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.85.md b/content/inside-rust/this-development-cycle-in-cargo-1.85.md index 06a70f7cb..f424320ab 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.85.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.85.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-01-17 +path = "inside-rust/2025/01/17/this-development-cycle-in-cargo-1.85" title = "This Development-cycle in Cargo: 1.85" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2025/01/17/this-development-cycle-in-cargo-1.85.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ # This Development-cycle in Cargo: 1.85 diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.86.md b/content/inside-rust/this-development-cycle-in-cargo-1.86.md index eda5adec6..02d027a49 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.86.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.86.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-02-27 +path = "inside-rust/2025/02/27/this-development-cycle-in-cargo-1.86" title = "This Development-cycle in Cargo: 1.86" -author = "Ed Page" -team = "The Cargo Team " +authors = ["Ed Page"] +aliases = ["inside-rust/2025/02/27/this-development-cycle-in-cargo-1.86.html"] + +[extra] +team = "The Cargo Team" +team_url = "https://www.rust-lang.org/governance/teams/dev-tools#cargo" +++ # This Development-cycle in Cargo: 1.86 diff --git a/content/inside-rust/trademark-policy-draft-feedback.md b/content/inside-rust/trademark-policy-draft-feedback.md index e9db93485..186532c73 100644 --- a/content/inside-rust/trademark-policy-draft-feedback.md +++ b/content/inside-rust/trademark-policy-draft-feedback.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2023-04-12 +path = "inside-rust/2023/04/12/trademark-policy-draft-feedback" title = "A note on the Trademark Policy Draft" -author = "Ryan Levick, Jane Losare-Lusby, Tyler Mandry, Mark Rousskov, Josh Stone, and Josh Triplett" +authors = ["Ryan Levick, Jane Losare-Lusby, Tyler Mandry, Mark Rousskov, Josh Stone, and Josh Triplett"] +aliases = ["inside-rust/2023/04/12/trademark-policy-draft-feedback.html"] +++ # A note on the Trademark Policy Draft diff --git a/content/inside-rust/trait-system-refactor-initiative@0.md b/content/inside-rust/trait-system-refactor-initiative@0.md index da221f36a..9bbff6d47 100644 --- a/content/inside-rust/trait-system-refactor-initiative@0.md +++ b/content/inside-rust/trait-system-refactor-initiative@0.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-07-17 +path = "inside-rust/2023/07/17/trait-system-refactor-initiative" title = "Rustc Trait System Refactor Initiative Update" -author = "lcnr" -team = "The Rustc Trait System Refactor Initiative " +authors = ["lcnr"] +aliases = ["inside-rust/2023/07/17/trait-system-refactor-initiative.html"] + +[extra] +team = "The Rustc Trait System Refactor Initiative" +team_url = "https://github.com/rust-lang/trait-system-refactor-initiative/" +++ As announced in the [Types Team announcement post](https://blog.rust-lang.org/2023/01/20/types-announcement.html) at the start of this year, the Types Team has started to reimplement the trait solver of rustc. This refactor is similar to [Chalk](https://github.com/rust-lang/chalk/), but directly integrated into the existing codebase using the experience gathered over the last few years. Unlike Chalk, the new trait solver has the sole goal of replacing the existing implementation. We are separately working on formalizing the type system in [a-mir-formality](https://github.com/rust-lang/a-mir-formality). It has now been half a year since that announcement which matches the first step of [our roadmap][roadmap]. diff --git a/content/inside-rust/trait-system-refactor-initiative@1.md b/content/inside-rust/trait-system-refactor-initiative@1.md index 9656afd2d..ccb1951f6 100644 --- a/content/inside-rust/trait-system-refactor-initiative@1.md +++ b/content/inside-rust/trait-system-refactor-initiative@1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-12-22 +path = "inside-rust/2023/12/22/trait-system-refactor-initiative" title = "Rustc Trait System Refactor Initiative Update: A call for testing" -author = "lcnr" -team = "The Rustc Trait System Refactor Initiative " +authors = ["lcnr"] +aliases = ["inside-rust/2023/12/22/trait-system-refactor-initiative.html"] + +[extra] +team = "The Rustc Trait System Refactor Initiative" +team_url = "https://github.com/rust-lang/trait-system-refactor-initiative/" +++ It has been nearly half a year since [our last update][prev]. We are reimplementing the trait solver of rustc with the goal of completely replacing the existing systems. This should allow us to fix some long-standing bugs, enable future type system improvements, and reduce compile times. See the previous update for a more detailed introduction. We have continued to make big progress on the new solver, mostly focusing on getting the solver ready for use in coherence. We changed the unstable compiler flag to enable the new solver: you can now use `-Znext-solver=globally` to enable it everywhere and `-Znext-solver=coherence` to enable the new solver only for coherence checking. diff --git a/content/inside-rust/trait-system-refactor-initiative@2.md b/content/inside-rust/trait-system-refactor-initiative@2.md index 479280d02..4a5569838 100644 --- a/content/inside-rust/trait-system-refactor-initiative@2.md +++ b/content/inside-rust/trait-system-refactor-initiative@2.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-12-04 +path = "inside-rust/2024/12/04/trait-system-refactor-initiative" title = "Rustc Trait System Refactor Initiative Update: Stabilizing `-Znext-solver=coherence`" -author = "lcnr" -team = "The Rustc Trait System Refactor Initiative " +authors = ["lcnr"] +aliases = ["inside-rust/2024/12/04/trait-system-refactor-initiative.html"] + +[extra] +team = "The Rustc Trait System Refactor Initiative" +team_url = "https://github.com/rust-lang/trait-system-refactor-initiative/" +++ It's been half a year since we last summarized our progress in the [Types Team update blog post](https://blog.rust-lang.org/2024/06/26/types-team-update.html). With the next-generation trait solver now getting used by default in coherence checking on beta[^2], it's time for another update. The next-generation trait solver is intended to fully replace the existing type system components responsible for proving trait bounds, normalizing associated types, and much more. This should fix many long-standing (soundness) bugs, enable future type system improvements, and improve compile-times. See [this previous blog post](https://blog.rust-lang.org/inside-rust/2023/07/17/trait-system-refactor-initiative.html) for more details. diff --git a/content/inside-rust/traits-sprint-1.md b/content/inside-rust/traits-sprint-1.md index 1db7ebdff..3da370558 100644 --- a/content/inside-rust/traits-sprint-1.md +++ b/content/inside-rust/traits-sprint-1.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-03-28 +path = "inside-rust/2020/03/28/traits-sprint-1" title = "Traits working group 2020 sprint 1 summary" -author = "Jack Huey" -team = "The Traits WG " +authors = ["Jack Huey"] +aliases = ["inside-rust/2020/03/28/traits-sprint-1.html"] + +[extra] +team = "The Traits WG" +team_url = "https://rust-lang.github.io/wg-traits/" +++ This Tuesday, the traits working group finished our first sprint of 2020, last 6 weeks from February 11th through March 24th. The last sprint was about a year ago, but we decided to resurrect the format in order to help push forward traits-related work in [Chalk] and rustc. diff --git a/content/inside-rust/traits-sprint-2.md b/content/inside-rust/traits-sprint-2.md index 1a95ded76..08f617451 100644 --- a/content/inside-rust/traits-sprint-2.md +++ b/content/inside-rust/traits-sprint-2.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-05-18 +path = "inside-rust/2020/05/18/traits-sprint-2" title = "Traits working group 2020 sprint 2 summary" -author = "Jack Huey" -team = "The Traits WG " +authors = ["Jack Huey"] +aliases = ["inside-rust/2020/05/18/traits-sprint-2.html"] + +[extra] +team = "The Traits WG" +team_url = "https://rust-lang.github.io/wg-traits/" +++ It's that time of year again: another traits working group sprint summary. And ohh boy, it was a busy sprint. diff --git a/content/inside-rust/traits-sprint-3.md b/content/inside-rust/traits-sprint-3.md index 5d04b5c88..bd85dbe0f 100644 --- a/content/inside-rust/traits-sprint-3.md +++ b/content/inside-rust/traits-sprint-3.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-07-17 +path = "inside-rust/2020/07/17/traits-sprint-3" title = "Traits working group 2020 sprint 3 summary" -author = "Jack Huey" -team = "The Traits WG " +authors = ["Jack Huey"] +aliases = ["inside-rust/2020/07/17/traits-sprint-3.html"] + +[extra] +team = "The Traits WG" +team_url = "https://rust-lang.github.io/wg-traits/" +++ Again? It feels like we just had one of these...6 weeks ago 😉. Anyways, much of this sprint was a continuation of the previous two: working towards making Chalk feature-complete and eventually using it in rustc for trait solving. diff --git a/content/inside-rust/twir-new-lead.md b/content/inside-rust/twir-new-lead.md index 3fd6c1b78..a107f3b49 100644 --- a/content/inside-rust/twir-new-lead.md +++ b/content/inside-rust/twir-new-lead.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-03-13 +path = "inside-rust/2020/03/13/twir-new-lead" title = "This Week in Rust is looking for a new maintainer." -author = "Erin Power" -team = "the community team " +authors = ["Erin Power"] +aliases = ["inside-rust/2020/03/13/twir-new-lead.html"] + +[extra] +team = "the community team" +team_url = "https://www.rust-lang.org/governance/teams/community" +++ Vikrant Chaudhary ([@nasa42]) is retiring from [This Week in Rust][twir]. He joined This Week in Rust in June 2015 with issue 84 and has been part of Rust Community team since February 2018. We'd like to thank Vikrant for his stewardship of TWiR these past five years, and making TWiR one of the community's favourite newsletters. We wish him all the best in his future projects. diff --git a/content/inside-rust/types-team-leadership.md b/content/inside-rust/types-team-leadership.md index e2d4f3f5f..8263409da 100644 --- a/content/inside-rust/types-team-leadership.md +++ b/content/inside-rust/types-team-leadership.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-04-12 +path = "inside-rust/2024/04/12/types-team-leadership" title = "Announcing lcnr as Types Team co-lead" -author = "Niko Matsakis" -team = "the types team " +authors = ["Niko Matsakis"] +aliases = ["inside-rust/2024/04/12/types-team-leadership.html"] + +[extra] +team = "the types team" +team_url = "https://www.rust-lang.org/governance/teams/compiler#types-team" +++ It is my great privilege to announce that [lcnr][] will be serving as the new types team co-lead. The types team has adopted the ["rolling leadership" model](https://rust-lang.github.io/rfcs/3262-compiler-team-rolling-leads.html) pioneered by the compiler team, and so [lcnr][] is joining as the new "junior lead". The senior lead will be [Jack Huey][]. I ([Niko Matsakis][]) am going to be stepping back and I will continue to be active as a types team member. diff --git a/content/inside-rust/upcoming-compiler-team-design-meeting@0.md b/content/inside-rust/upcoming-compiler-team-design-meeting@0.md index b70cfaa65..92cc6f917 100644 --- a/content/inside-rust/upcoming-compiler-team-design-meeting@0.md +++ b/content/inside-rust/upcoming-compiler-team-design-meeting@0.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-04-10 +path = "inside-rust/2020/04/10/upcoming-compiler-team-design-meeting" title = "Upcoming compiler-team design meetings" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Upcoming compiler-team design meetings" -team = "the compiler team " +aliases = ["inside-rust/2020/04/10/upcoming-compiler-team-design-meeting.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ In our [planning meeting today], the [compiler team] has scheduled our diff --git a/content/inside-rust/upcoming-compiler-team-design-meeting@1.md b/content/inside-rust/upcoming-compiler-team-design-meeting@1.md index 26b8db5c3..43934cf95 100644 --- a/content/inside-rust/upcoming-compiler-team-design-meeting@1.md +++ b/content/inside-rust/upcoming-compiler-team-design-meeting@1.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-06-08 +path = "inside-rust/2020/06/08/upcoming-compiler-team-design-meeting" title = "Upcoming compiler-team design meetings" -author = "Felix Klock" +authors = ["Felix Klock"] description = "Upcoming compiler-team design meetings" -team = "the compiler team " +aliases = ["inside-rust/2020/06/08/upcoming-compiler-team-design-meeting.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ In our [planning meeting today], the [compiler team] has scheduled our diff --git a/content/inside-rust/upcoming-compiler-team-design-meetings@0.md b/content/inside-rust/upcoming-compiler-team-design-meetings@0.md index 1d9108ff1..10663890e 100644 --- a/content/inside-rust/upcoming-compiler-team-design-meetings@0.md +++ b/content/inside-rust/upcoming-compiler-team-design-meetings@0.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2019-11-22 +path = "inside-rust/2019/11/22/upcoming-compiler-team-design-meetings" title = "Upcoming compiler-team design meetings" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Upcoming compiler-team design meetings" -team = "the compiler team " +aliases = ["inside-rust/2019/11/22/upcoming-compiler-team-design-meetings.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ In our [planning meeting today], the [compiler team] has scheduled our diff --git a/content/inside-rust/upcoming-compiler-team-design-meetings@1.md b/content/inside-rust/upcoming-compiler-team-design-meetings@1.md index 53062718e..7920f0b90 100644 --- a/content/inside-rust/upcoming-compiler-team-design-meetings@1.md +++ b/content/inside-rust/upcoming-compiler-team-design-meetings@1.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-01-24 +path = "inside-rust/2020/01/24/upcoming-compiler-team-design-meetings" title = "Upcoming compiler-team design meetings" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Upcoming compiler-team design meetings" -team = "the compiler team " +aliases = ["inside-rust/2020/01/24/upcoming-compiler-team-design-meetings.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ In our [planning meeting on January 17], the [compiler team] has scheduled our diff --git a/content/inside-rust/upcoming-compiler-team-design-meetings@2.md b/content/inside-rust/upcoming-compiler-team-design-meetings@2.md index 497fd8050..2f58cb5ee 100644 --- a/content/inside-rust/upcoming-compiler-team-design-meetings@2.md +++ b/content/inside-rust/upcoming-compiler-team-design-meetings@2.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-02-14 +path = "inside-rust/2020/02/14/upcoming-compiler-team-design-meetings" title = "Upcoming compiler-team design meetings" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Upcoming compiler-team design meetings" -team = "the compiler team " +aliases = ["inside-rust/2020/02/14/upcoming-compiler-team-design-meetings.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ In our [planning meeting on February 14th][pm], the [compiler team] has scheduled our diff --git a/content/inside-rust/upcoming-compiler-team-design-meetings@3.md b/content/inside-rust/upcoming-compiler-team-design-meetings@3.md index fd1882f06..a17e85f93 100644 --- a/content/inside-rust/upcoming-compiler-team-design-meetings@3.md +++ b/content/inside-rust/upcoming-compiler-team-design-meetings@3.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-03-13 +path = "inside-rust/2020/03/13/upcoming-compiler-team-design-meetings" title = "Upcoming compiler-team design meetings" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Upcoming compiler-team design meetings" -team = "the compiler team " +aliases = ["inside-rust/2020/03/13/upcoming-compiler-team-design-meetings.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ In our [planning meeting today], the [compiler team] has scheduled our diff --git a/content/inside-rust/upcoming-compiler-team-design-meetings@4.md b/content/inside-rust/upcoming-compiler-team-design-meetings@4.md index c187d90d3..e4e002981 100644 --- a/content/inside-rust/upcoming-compiler-team-design-meetings@4.md +++ b/content/inside-rust/upcoming-compiler-team-design-meetings@4.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-08-28 +path = "inside-rust/2020/08/28/upcoming-compiler-team-design-meetings" title = "Upcoming compiler-team design meetings" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Upcoming compiler-team design meetings" -team = "the compiler team " +aliases = ["inside-rust/2020/08/28/upcoming-compiler-team-design-meetings.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ In our [planning meeting today], the [compiler team] has scheduled our diff --git a/content/inside-rust/update-on-the-github-actions-evaluation.md b/content/inside-rust/update-on-the-github-actions-evaluation.md index 54f02cc0a..24264963f 100644 --- a/content/inside-rust/update-on-the-github-actions-evaluation.md +++ b/content/inside-rust/update-on-the-github-actions-evaluation.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-04-07 +path = "inside-rust/2020/04/07/update-on-the-github-actions-evaluation" title = "Update on the GitHub Actions evaluation" -author = "Pietro Albini" -team = "the infrastructure team " +authors = ["Pietro Albini"] +aliases = ["inside-rust/2020/04/07/update-on-the-github-actions-evaluation.html"] + +[extra] +team = "the infrastructure team" +team_url = "https://www.rust-lang.org/governance/teams/operations#infra" +++ The infrastructure team is happy to report that [the evaluation we started last diff --git a/content/inside-rust/website-retrospective.md b/content/inside-rust/website-retrospective.md index 2779deb29..c9c08d400 100644 --- a/content/inside-rust/website-retrospective.md +++ b/content/inside-rust/website-retrospective.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-05-26 +path = "inside-rust/2020/05/26/website-retrospective" title = "A retrospective on the 2018 rust-lang.org redesign" -author = "Nick Cameron" -team = "the core team " +authors = ["Nick Cameron"] +aliases = ["inside-rust/2020/05/26/website-retrospective.html"] + +[extra] +team = "the core team" +team_url = "https://www.rust-lang.org/governance/teams/core" +++ We released our second 'edition' of Rust at the end of 2018. Part of that release was a revamp of the [Rust website](https://www.rust-lang.org). That work was completed on time, but there was some controversy when it was released, and the project itself was difficult and draining for those involved. This retrospective is an attempt to record the lessons learned from the project, and to put the project into context for those interested but not directly involved. diff --git a/content/inside-rust/welcome-tc-to-the-lang-team.md b/content/inside-rust/welcome-tc-to-the-lang-team.md index 03c4de9dd..0b8b96479 100644 --- a/content/inside-rust/welcome-tc-to-the-lang-team.md +++ b/content/inside-rust/welcome-tc-to-the-lang-team.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-08-01 +path = "inside-rust/2024/08/01/welcome-tc-to-the-lang-team" title = "Welcome TC to the Rust language design team!" -author = "Niko Matsakis and Tyler Mandry" -team = "The Rust Lang Team " +authors = ["Niko Matsakis and Tyler Mandry"] +aliases = ["inside-rust/2024/08/01/welcome-tc-to-the-lang-team.html"] + +[extra] +team = "The Rust Lang Team" +team_url = "https://www.rust-lang.org/governance/teams/lang" +++ Please join us in welcoming TC as a new member of the Rust language design team. TC has been a valuable contributor to the Rust project, serving as the lead of the lang-ops team and overseeing the Rust 2024 edition. diff --git a/content/inside-rust/wg-learning-update.md b/content/inside-rust/wg-learning-update.md index 5faea698d..ecf67eb47 100644 --- a/content/inside-rust/wg-learning-update.md +++ b/content/inside-rust/wg-learning-update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2019-12-20 +path = "inside-rust/2019/12/20/wg-learning-update" title = "An Update from WG-Learning" -author = "mark-i-m" -team = "the Rustc Dev Guide Working Group " +authors = ["mark-i-m"] +aliases = ["inside-rust/2019/12/20/wg-learning-update.html"] + +[extra] +team = "the Rustc Dev Guide Working Group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#wg-rustc-dev-guide" +++ # An update from WG-Learning diff --git a/content/inside-rust/windows-notification-group.md b/content/inside-rust/windows-notification-group.md index 3032abc2e..c9e26b52e 100644 --- a/content/inside-rust/windows-notification-group.md +++ b/content/inside-rust/windows-notification-group.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-06-09 +path = "inside-rust/2020/06/09/windows-notification-group" title = "Announcing the Windows and ARM notification groups" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] description = "Announcing the Windows and ARM notification groups" -team = "the compiler team " +aliases = ["inside-rust/2020/06/09/windows-notification-group.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ We are forming two new groups in the compiler team: diff --git a/content/introducing-leadership-council.md b/content/introducing-leadership-council.md index 8ccfdb5fb..d2a5a03da 100644 --- a/content/introducing-leadership-council.md +++ b/content/introducing-leadership-council.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-06-20 +path = "2023/06/20/introducing-leadership-council" title = "Introducing the Rust Leadership Council" -author = "Leadership Council" -team = "Leadership Council " +authors = ["Leadership Council"] +aliases = ["2023/06/20/introducing-leadership-council.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ As of today, [RFC 3392] has been merged, forming the new top level governance body of the Rust Project: the Leadership Council. The creation of this Council marks the end of both the Core Team and the interim Leadership Chat. diff --git a/content/lang-ergonomics.md b/content/lang-ergonomics.md index af835968d..a49230aa5 100644 --- a/content/lang-ergonomics.md +++ b/content/lang-ergonomics.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2017-03-02 +path = "2017/03/02/lang-ergonomics" title = "Rust's language ergonomics initiative" -author = "Aaron Turon" +authors = ["Aaron Turon"] description = "Ergonomics, learnability, and the fact that sometimes implicit is better" +aliases = ["2017/03/02/lang-ergonomics.html"] +++ To help bring our [2017 vision for Rust] to fruition, the Rust subteams are diff --git a/content/laying-the-foundation-for-rusts-future.md b/content/laying-the-foundation-for-rusts-future.md index 0a8a4885b..9990972f5 100644 --- a/content/laying-the-foundation-for-rusts-future.md +++ b/content/laying-the-foundation-for-rusts-future.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-08-18 +path = "2020/08/18/laying-the-foundation-for-rusts-future" title = "Laying the foundation for Rust's future" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2020/08/18/laying-the-foundation-for-rusts-future.html"] +++ The Rust project was originally [conceived in 2010][2010] (depending on how you count, you might even say [2006][2006]!) as a [Mozilla Research] project, but the long term goal has always been to establish Rust as a self-sustaining project. In 2015, [with the launch of Rust 1.0][onepointoh], Rust established its project direction and governance independent of the Mozilla organization. Since then, Rust has been operating as an autonomous organization, with Mozilla being a prominent and consistent financial and legal sponsor. diff --git a/content/libz-blitz.md b/content/libz-blitz.md index df507f48c..520ae07f0 100644 --- a/content/libz-blitz.md +++ b/content/libz-blitz.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2017-05-05 +path = "2017/05/05/libz-blitz" title = "The Rust Libz Blitz" -author = "Brian Anderson, David Tolnay, and Aaron Turon" +authors = ["Brian Anderson, David Tolnay, and Aaron Turon"] description = "Improving the quality and maturity of Rust's core ecosystem" +aliases = ["2017/05/05/libz-blitz.html"] +++ To help bring our [2017 vision for Rust] to fruition, the Rust subteams are diff --git a/content/lock-poisoning-survey.md b/content/lock-poisoning-survey.md index a8b0c10b8..6f4cb035a 100644 --- a/content/lock-poisoning-survey.md +++ b/content/lock-poisoning-survey.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2020-12-11 +path = "2020/12/11/lock-poisoning-survey" title = "Launching the Lock Poisoning Survey" -author = "Ashley Mannix" -team = "The Libs team " +authors = ["Ashley Mannix"] +aliases = ["2020/12/11/lock-poisoning-survey.html"] + +[extra] +team = "The Libs team" +team_url = "https://www.rust-lang.org/governance/teams/library" +++ The Libs team is looking at how we can improve the `std::sync` module, by potentially splitting it up into new modules and making some changes to APIs along the way. diff --git a/content/malicious-crate-rustdecimal.md b/content/malicious-crate-rustdecimal.md index 4ce4ef70e..a20cac508 100644 --- a/content/malicious-crate-rustdecimal.md +++ b/content/malicious-crate-rustdecimal.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-05-10 +path = "2022/05/10/malicious-crate-rustdecimal" title = "Security advisory: malicious crate rustdecimal" -author = "The Rust Security Response WG" +authors = ["The Rust Security Response WG"] +aliases = ["2022/05/10/malicious-crate-rustdecimal.html"] +++ > This is a cross-post of [the official security advisory][advisory]. The diff --git a/content/mdbook-security-advisory.md b/content/mdbook-security-advisory.md index 38ad934c4..c81b06f4b 100644 --- a/content/mdbook-security-advisory.md +++ b/content/mdbook-security-advisory.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2021-01-04 +path = "2021/01/04/mdbook-security-advisory" title = "mdBook security advisory" -author = "Rust Security Response WG" +authors = ["Rust Security Response WG"] +aliases = ["2021/01/04/mdbook-security-advisory.html"] +++ > This is a cross-post of [the official security advisory][ml]. The official post diff --git a/content/new-years-rust-a-call-for-community-blogposts.md b/content/new-years-rust-a-call-for-community-blogposts.md index b0c2d49f3..305cb46e7 100644 --- a/content/new-years-rust-a-call-for-community-blogposts.md +++ b/content/new-years-rust-a-call-for-community-blogposts.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-01-03 +path = "2018/01/03/new-years-rust-a-call-for-community-blogposts" title = "New Year's Rust: A Call for Community Blogposts" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/01/03/new-years-rust-a-call-for-community-blogposts.html"] +++ 'Tis the season for people and communities to reflect and set goals- and the Rust team is diff --git a/content/nll-by-default.md b/content/nll-by-default.md index 7cd8ff95c..a1d0735f7 100644 --- a/content/nll-by-default.md +++ b/content/nll-by-default.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2022-08-05 +path = "2022/08/05/nll-by-default" title = "Non-lexical lifetimes (NLL) fully stable" -author = "Niko Matsakis" -team = "the NLL working group " +authors = ["Niko Matsakis"] +aliases = ["2022/08/05/nll-by-default.html"] + +[extra] +team = "the NLL working group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#Non-Lexical%20Lifetimes%20(NLL)%20working%20group" +++ As of Rust 1.63 (releasing next week), the "non-lexical lifetimes" (NLL) work will be enabled by default. NLL is the second iteration of Rust's borrow checker. The [RFC] actually does quite a nice job of highlighting some of the motivating examples. "But," I hear you saying, "wasn't NLL included in [Rust 2018]?" And yes, yes it was! But at that time, NLL was only enabled for Rust 2018 code, while Rust 2015 code ran in "migration mode". When in "migration mode," the compiler would run both the old *and* the new borrow checker and compare the results. This way, we could give warnings for older code that should never have compiled in the first place; we could also limit the impact of any bugs in the new code. Over time, we have limited migration mode to be closer and closer to just running the new-style borrow checker: in the next release, that process completes, and all Rust code will be checked with NLL. diff --git a/content/nll-hard-errors.md b/content/nll-hard-errors.md index dba9dd2cc..325615da8 100644 --- a/content/nll-hard-errors.md +++ b/content/nll-hard-errors.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-11-01 +path = "2019/11/01/nll-hard-errors" title = "Completing the transition to the new borrow checker" -author = "Niko Matsakis" +authors = ["Niko Matsakis"] +aliases = ["2019/11/01/nll-hard-errors.html"] +++ For most of 2018, we've been issuing warnings about various bugs in the diff --git a/content/parallel-rustc.md b/content/parallel-rustc.md index a64944e1a..51359565e 100644 --- a/content/parallel-rustc.md +++ b/content/parallel-rustc.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-11-09 +path = "2023/11/09/parallel-rustc" title = "Faster compilation with the parallel front-end in nightly" -author = "Nicholas Nethercote" -team = "The Parallel Rustc Working Group " +authors = ["Nicholas Nethercote"] +aliases = ["2023/11/09/parallel-rustc.html"] + +[extra] +team = "The Parallel Rustc Working Group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#Parallel%20rustc%20working%20group" +++ The Rust compiler's front-end can now use parallel execution to significantly diff --git a/content/project-goals-nov-update.md b/content/project-goals-nov-update.md index 1c99df117..a9d904ded 100644 --- a/content/project-goals-nov-update.md +++ b/content/project-goals-nov-update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-12-16 +path = "2024/12/16/project-goals-nov-update" title = "November project goals update" -author = "Niko Matsakis" -team = "Leadership Council " +authors = ["Niko Matsakis"] +aliases = ["2024/12/16/project-goals-nov-update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ The Rust project is currently working towards a [slate of 26 project goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html), with 3 of them designed as [Flagship diff --git a/content/project-goals-oct-update.md b/content/project-goals-oct-update.md index 85674a804..620fa255d 100644 --- a/content/project-goals-oct-update.md +++ b/content/project-goals-oct-update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-10-31 +path = "2024/10/31/project-goals-oct-update" title = "October project goals update" -author = "Niko Matsakis" -team = "Leadership Council " +authors = ["Niko Matsakis"] +aliases = ["2024/10/31/project-goals-oct-update.html"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" +++ The Rust project is currently working towards a [slate of 26 project goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html), with 3 of them designed as [flagship diff --git a/content/reducing-support-for-32-bit-apple-targets.md b/content/reducing-support-for-32-bit-apple-targets.md index 28ffd0bac..65be7a9a4 100644 --- a/content/reducing-support-for-32-bit-apple-targets.md +++ b/content/reducing-support-for-32-bit-apple-targets.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-01-03 +path = "2020/01/03/reducing-support-for-32-bit-apple-targets" title = "Reducing support for 32-bit Apple targets" -author = "Pietro Albini" +authors = ["Pietro Albini"] +aliases = ["2020/01/03/reducing-support-for-32-bit-apple-targets.html"] +++ The Rust team regrets to announce that Rust 1.41.0 (to be released on January diff --git a/content/regex-1.9.md b/content/regex-1.9.md index cc1a5aee9..1c22a1e89 100644 --- a/content/regex-1.9.md +++ b/content/regex-1.9.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-07-05 +path = "2023/07/05/regex-1.9" title = "Announcing regex 1.9" -author = "Andrew Gallant" -team = "The regex crate team " +authors = ["Andrew Gallant"] +aliases = ["2023/07/05/regex-1.9.html"] + +[extra] +team = "The regex crate team" +team_url = "https://www.rust-lang.org/governance/teams/library#Regex%20crate%20team" +++ The regex sub-team is announcing the release of `regex 1.9`. The `regex` crate diff --git a/content/regression-labels.md b/content/regression-labels.md index 890cfc65f..ce1316d5b 100644 --- a/content/regression-labels.md +++ b/content/regression-labels.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2020-10-20 +path = "2020/10/20/regression-labels" title = "Marking issues as regressions" -author = "Camelid" +authors = ["Camelid"] description = "Now anyone can mark issues as regressions!" -team = "the release team " +aliases = ["2020/10/20/regression-labels.html"] + +[extra] +team = "the release team" +team_url = "https://www.rust-lang.org/governance/teams/operations#release" +++ The Rust project gets many issues filed every day, and we need to keep track diff --git a/content/roadmap@0.md b/content/roadmap@0.md index 797235f0d..363f6c554 100644 --- a/content/roadmap@0.md +++ b/content/roadmap@0.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2017-02-06 +path = "2017/02/06/roadmap" title = "Rust's 2017 roadmap" -author = "Aaron Turon" +authors = ["Aaron Turon"] description = "What the Rust community hopes to get done in 2017" +aliases = ["2017/02/06/roadmap.html"] +++ Starting with 2017, Rust is following an [open roadmap process] for setting our diff --git a/content/roadmap@1.md b/content/roadmap@1.md index 4f7009266..87acf8f4e 100644 --- a/content/roadmap@1.md +++ b/content/roadmap@1.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-03-12 +path = "2018/03/12/roadmap" title = "Rust's 2018 roadmap" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/03/12/roadmap.html"] +++ Each year the Rust community [comes together][roadmap-process] to set out a diff --git a/content/roadmap@2.md b/content/roadmap@2.md index 8d92c2a42..612e2bc9f 100644 --- a/content/roadmap@2.md +++ b/content/roadmap@2.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-04-23 +path = "2019/04/23/roadmap" title = "Rust's 2019 roadmap" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2019/04/23/roadmap.html"] +++ Each year the Rust community [comes together][roadmap-process] to set out a diff --git a/content/rust-2024-beta.md b/content/rust-2024-beta.md index c43d7185b..754006b4c 100644 --- a/content/rust-2024-beta.md +++ b/content/rust-2024-beta.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-01-22 +path = "2025/01/22/rust-2024-beta" title = "Rust 2024 in beta channel" -author = "TC & Eric Huss" -team = "the Edition 2024 Project Group " +authors = ["TC & Eric Huss"] +aliases = ["2025/01/22/rust-2024-beta.html"] + +[extra] +team = "the Edition 2024 Project Group" +team_url = "https://doc.rust-lang.org/nightly/edition-guide/rust-2024/index.html" +++ # Rust 2024 in beta channel diff --git a/content/rust-analyzer-joins-rust-org.md b/content/rust-analyzer-joins-rust-org.md index f0fe066da..e14ae26b7 100644 --- a/content/rust-analyzer-joins-rust-org.md +++ b/content/rust-analyzer-joins-rust-org.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-02-21 +path = "2022/02/21/rust-analyzer-joins-rust-org" title = "rust-analyzer joins the Rust organization!" -author = "The rust-analyzer Team on behalf of the entire Rust Team" +authors = ["The rust-analyzer Team on behalf of the entire Rust Team"] +aliases = ["2022/02/21/rust-analyzer-joins-rust-org.html"] +++ We have an exciting announcement to make! diff --git a/content/rust-at-one-year.md b/content/rust-at-one-year.md index 6ac566168..fcc0b7ab1 100644 --- a/content/rust-at-one-year.md +++ b/content/rust-at-one-year.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2016-05-16 +path = "2016/05/16/rust-at-one-year" title = "One year of Rust" -author = "Aaron Turon" +authors = ["Aaron Turon"] description = "Rust's trajectory one year after 1.0" +aliases = ["2016/05/16/rust-at-one-year.html"] +++ Rust is a language that gives you: diff --git a/content/rust-at-two-years.md b/content/rust-at-two-years.md index 429f80b85..7be69db46 100644 --- a/content/rust-at-two-years.md +++ b/content/rust-at-two-years.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2017-05-15 +path = "2017/05/15/rust-at-two-years" title = "Two years of Rust" -author = "Carol (Nichols || Goulding)" +authors = ["Carol (Nichols || Goulding)"] description = "Rust, two years after 1.0" +aliases = ["2017/05/15/rust-at-two-years.html"] +++ Rust is a language for confident, productive systems programming. It aims to diff --git a/content/rust-in-2017.md b/content/rust-in-2017.md index acd8038e6..dcd5f8b64 100644 --- a/content/rust-in-2017.md +++ b/content/rust-in-2017.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2017-12-21 +path = "2017/12/21/rust-in-2017" title = "Rust in 2017: what we achieved" -author = "Aaron Turon" +authors = ["Aaron Turon"] +aliases = ["2017/12/21/rust-in-2017.html"] +++ Rust’s development in 2017 fit into a single overarching theme: **increasing productivity, especially for newcomers to Rust**. From tooling to libraries to documentation to the core language, we wanted to make it easier to get things done with Rust. That desire led to [a roadmap](https://blog.rust-lang.org/2017/02/06/roadmap.html) for the year, setting out 8 high-level objectives that would guide the work of the team. diff --git a/content/rust-survey-2020.md b/content/rust-survey-2020.md index 7c86e929a..b5f9a3787 100644 --- a/content/rust-survey-2020.md +++ b/content/rust-survey-2020.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-12-16 +path = "2020/12/16/rust-survey-2020" title = "Rust Survey 2020 Results" -author = "The Rust Survey Team" +authors = ["The Rust Survey Team"] +aliases = ["2020/12/16/rust-survey-2020.html"] +++ Greetings Rustaceans! diff --git a/content/rust-unconference.md b/content/rust-unconference.md index 3cac65657..80788ec9b 100644 --- a/content/rust-unconference.md +++ b/content/rust-unconference.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2022-06-28 +path = "2022/06/28/rust-unconference" title = "Announcing The RustConf PostConf UnConf" -author = "Jane Lusby, on behalf of The Rust Project Teams" +authors = ["Jane Lusby, on behalf of The Rust Project Teams"] +aliases = ["2022/06/28/rust-unconference.html"] +++ Hello Rust community! diff --git a/content/rustconf-cfp.md b/content/rustconf-cfp.md index dde5c8971..a15e910ff 100644 --- a/content/rustconf-cfp.md +++ b/content/rustconf-cfp.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2020-03-10 +path = "2020/03/10/rustconf-cfp" title = "The 2020 RustConf CFP is Now Open!" -author = "Rust Community" +authors = ["Rust Community"] description = "The call for proposals for RustConf 202 is open; We want to hear from you!" +aliases = ["2020/03/10/rustconf-cfp.html"] +++ Greetings fellow Rustaceans! diff --git a/content/rustfmt-supports-let-else-statements.md b/content/rustfmt-supports-let-else-statements.md index 3f0e8143e..a640b62ee 100644 --- a/content/rustfmt-supports-let-else-statements.md +++ b/content/rustfmt-supports-let-else-statements.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2023-07-01 +path = "2023/07/01/rustfmt-supports-let-else-statements" title = "Rustfmt support for let-else statements" -author = "Caleb Cartwright" -team = "the style team and the rustfmt team " +authors = ["Caleb Cartwright"] +aliases = ["2023/07/01/rustfmt-supports-let-else-statements.html"] + +[extra] +team = "the style team" +team_url = "https://www.rust-lang.org/governance/teams/lang#Style%20team> and the rustfmt team Note: Sparse registry support has been stabilized for the 1.68 release. diff --git a/content/survey-launch@0.md b/content/survey-launch@0.md index f7f47c7ca..ce86ddc96 100644 --- a/content/survey-launch@0.md +++ b/content/survey-launch@0.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2019-12-03 +path = "2019/12/03/survey-launch" title = "Launching the 2019 State of Rust Survey" -author = "The Rust Community Team" +authors = ["The Rust Community Team"] description = "Hearing from you about the fourth year of Rust" +aliases = ["2019/12/03/survey-launch.html"] +++ It's that time again! Time for us to take a look at how the Rust project is doing, and what we should plan for the future. The Rust Community Team is pleased to announce our [2019 State of Rust Survey][survey]! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses and establish development priorities for the future. diff --git a/content/survey-launch@1.md b/content/survey-launch@1.md index c4ce3331b..925f047d4 100644 --- a/content/survey-launch@1.md +++ b/content/survey-launch@1.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2020-09-10 +path = "2020/09/10/survey-launch" title = "Launching the 2020 State of Rust Survey" -author = "The Rust Community Team" +authors = ["The Rust Community Team"] description = "Hearing from you about the fifth year of Rust" +aliases = ["2020/09/10/survey-launch.html"] +++ It's that time again! Time for us to take a look at how the Rust project is doing, and what we should plan for the future. The Rust Community Team is pleased to announce our [2020 State of Rust Survey][survey]! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses and establish development priorities for the future. (If you'd like to give longer form feedback on the Rust roadmap, [we're also collecting blog posts!](https://blog.rust-lang.org/2020/09/03/Planning-2021-Roadmap.html)) diff --git a/content/survey-launch@2.md b/content/survey-launch@2.md index 4b014d147..dced84876 100644 --- a/content/survey-launch@2.md +++ b/content/survey-launch@2.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2021-12-08 +path = "2021/12/08/survey-launch" title = "Launching the 2021 State of Rust Survey" -author = "The Rust Community Team" +authors = ["The Rust Community Team"] description = "Hearing from you about the sixth year of Rust" +aliases = ["2021/12/08/survey-launch.html"] +++ It's that time again! Time for us to take a look at who the Rust community is composed of, how the Rust project is doing, and how we can improve the Rust programming experience. The Rust Community Team is pleased to announce our [2021 State of Rust Survey][survey]! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses, and establish development priorities for the future. diff --git a/content/survey-launch@3.md b/content/survey-launch@3.md index a13cbf86c..b99319891 100644 --- a/content/survey-launch@3.md +++ b/content/survey-launch@3.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2022-12-05 +path = "2022/12/05/survey-launch" title = "Launching the 2022 State of Rust Survey" -author = "The Rust Survey Working Group" +authors = ["The Rust Survey Working Group"] description = "Hearing from you about the seventh year of Rust" +aliases = ["2022/12/05/survey-launch.html"] +++ The [2022 State of Rust Survey][survey] is here! diff --git a/content/survey-launch@4.md b/content/survey-launch@4.md index f83b08702..c5389b8c6 100644 --- a/content/survey-launch@4.md +++ b/content/survey-launch@4.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2023-12-18 +path = "2023/12/18/survey-launch" title = "Launching the 2023 State of Rust Survey" -author = "The Rust Survey Working Group" +authors = ["The Rust Survey Working Group"] description = "Share your experience using Rust in the eighth edition of the State of Rust Survey" +aliases = ["2023/12/18/survey-launch.html"] +++ It’s time for the [2023 State of Rust Survey](https://www.surveyhero.com/c/4vxempzc)! diff --git a/content/survey@0.md b/content/survey@0.md index 129d99aa8..db24c6b9b 100644 --- a/content/survey@0.md +++ b/content/survey@0.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2016-05-09 +path = "2016/05/09/survey" title = "Launching the 2016 State of Rust Survey" -author = "The Rust Community Team" +authors = ["The Rust Community Team"] description = "Hearing from you about the first year of Rust" +aliases = ["2016/05/09/survey.html"] +++ Rust's first birthday is upon us (on May 15th, 2016), and we want to take this diff --git a/content/survey@1.md b/content/survey@1.md index e7f561e61..c447abfe8 100644 --- a/content/survey@1.md +++ b/content/survey@1.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2017-05-03 +path = "2017/05/03/survey" title = "Launching the 2017 State of Rust Survey" -author = "The Rust Community Team" +authors = ["The Rust Community Team"] description = "Hearing from you about the second year of Rust" +aliases = ["2017/05/03/survey.html"] +++ Rust's second birthday is a little less than two weeks away (May 15th, 2017), so diff --git a/content/survey@2.md b/content/survey@2.md index 38bd2c4f7..a32ea0212 100644 --- a/content/survey@2.md +++ b/content/survey@2.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2018-08-08 +path = "2018/08/08/survey" title = "Launching the 2018 State of Rust Survey" -author = "The Rust Community Team" +authors = ["The Rust Community Team"] description = "Hearing from you about the third year of Rust" +aliases = ["2018/08/08/survey.html"] +++ It's that time again! Time for us to take a look at how the Rust project is doing, and what we should plan for the future. The Rust Community Team is pleased to announce our [2018 State of Rust Survey][survey]! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses and establish development priorities for the future. diff --git a/content/the-foundation-conversation.md b/content/the-foundation-conversation.md index c66e6d652..051d44897 100644 --- a/content/the-foundation-conversation.md +++ b/content/the-foundation-conversation.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-12-07 +path = "2020/12/07/the-foundation-conversation" title = "The Foundation Conversation" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2020/12/07/the-foundation-conversation.html"] +++ In August, we on the Core Team [announced our plans to create a Foundation](https://blog.rust-lang.org/2020/08/18/laying-the-foundation-for-rusts-future.html) by the end of the year. Since that time, we’ve been doing a lot of work but it has been difficult to share many details, and we know that a lot of you have questions. diff --git a/content/trademark-update.md b/content/trademark-update.md index a4b276049..b0aa3c227 100644 --- a/content/trademark-update.md +++ b/content/trademark-update.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-11-06 +path = "2024/11/06/trademark-update" title = "Next Steps on the Rust Trademark Policy" -author = "the Leadership Council" +authors = ["the Leadership Council"] +aliases = ["2024/11/06/trademark-update.html"] +++ As many of you know, the Rust language trademark policy has been the subject of diff --git a/content/traits.md b/content/traits.md index 64949217d..3e2fdcab9 100644 --- a/content/traits.md +++ b/content/traits.md @@ -1,9 +1,9 @@ +++ -layout = "post" -date = 2015-05-11 +path = "2015/05/11/traits" title = "Abstraction without overhead: traits in Rust" -author = "Aaron Turon" +authors = ["Aaron Turon"] description = "The vision of Rust's traits for zero-cost abstraction" +aliases = ["2015/05/11/traits.html"] +++ [Previous posts][fearless] have covered two pillars of Rust's design: diff --git a/content/types-announcement.md b/content/types-announcement.md index 962eaeb02..e8974564a 100644 --- a/content/types-announcement.md +++ b/content/types-announcement.md @@ -1,10 +1,13 @@ +++ -layout = "post" -date = 2023-01-20 +path = "2023/01/20/types-announcement" title = "Officially announcing the types team" -author = "Jack Huey" +authors = ["Jack Huey"] description = "An overview of the new types team" -team = "The Types Team " +aliases = ["2023/01/20/types-announcement.html"] + +[extra] +team = "The Types Team" +team_url = "https://github.com/rust-lang/types-team" +++ Oh hey, it's [another](https://blog.rust-lang.org/inside-rust/2022/09/29/announcing-the-rust-style-team.html) new team announcement. But I will admit: if you follow the [RFCs repository](https://github.com/rust-lang/rfcs/pull/3254), the [Rust zulip](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-types), or were particularly observant on the [GATs stabilization announcement post](https://blog.rust-lang.org/2022/10/28/gats-stabilization.html), then this *might* not be a surprise for you. In fact, this "new" team was officially established at the end of May last year. diff --git a/content/types-team-update.md b/content/types-team-update.md index 325cb1d70..b095dfc53 100644 --- a/content/types-team-update.md +++ b/content/types-team-update.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-06-26 +path = "2024/06/26/types-team-update" title = "Types Team Update and Roadmap" -author = "lcnr" -team = "The Types Team " +authors = ["lcnr"] +aliases = ["2024/06/26/types-team-update.html"] + +[extra] +team = "The Types Team" +team_url = "https://github.com/rust-lang/types-team" +++ It has been more than a year since [the initial blog post][TypesAnnouncement] announcing the Types team, and our initial set of goals. For details on what the team is, why it was formed, or our previously-stated overarching goals, go check out that blog post. In short the Types team's purview extends to the parts of the Rust language and compiler that involve the type system, e.g. type checking, trait solving, and borrow checking. Our short and long term goals effectively work to make the type system sound, consistent, extensible, and fast. diff --git a/content/upcoming-docsrs-changes.md b/content/upcoming-docsrs-changes.md index d7d32e44b..377697ff4 100644 --- a/content/upcoming-docsrs-changes.md +++ b/content/upcoming-docsrs-changes.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2019-09-18 +path = "2019/09/18/upcoming-docsrs-changes" title = "Upcoming docs.rs changes" -author = "The Rust Infrastructure Team" +authors = ["The Rust Infrastructure Team"] +aliases = ["2019/09/18/upcoming-docsrs-changes.html"] +++ On September 30th breaking changes will be deployed to the [docs.rs] build diff --git a/content/updates-to-rusts-wasi-targets.md b/content/updates-to-rusts-wasi-targets.md index f1ef05c8c..199d65443 100644 --- a/content/updates-to-rusts-wasi-targets.md +++ b/content/updates-to-rusts-wasi-targets.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-04-09 +path = "2024/04/09/updates-to-rusts-wasi-targets" title = "Changes to Rust's WASI targets" -author = "Yosh Wuyts" +authors = ["Yosh Wuyts"] +aliases = ["2024/04/09/updates-to-rusts-wasi-targets.html"] +++ [WASI 0.2 was recently diff --git a/content/vision-doc-survey.md b/content/vision-doc-survey.md index 12ac40e79..57a270c49 100644 --- a/content/vision-doc-survey.md +++ b/content/vision-doc-survey.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2025-04-04 +path = "2025/04/04/vision-doc-survey" title = "Help us create a vision for Rust's future" -author = "Jack Huey" -team = "Vision Doc Team " +authors = ["Jack Huey"] +aliases = ["2025/04/04/vision-doc-survey.html"] + +[extra] +team = "Vision Doc Team" +team_url = "https://rust-lang.zulipchat.com/#narrow/channel/486265-vision-doc-2025" +++ tl;dr: Please take our [survey here][survey] diff --git a/content/wasip2-tier-2.md b/content/wasip2-tier-2.md index 0caf42b9e..023f3343c 100644 --- a/content/wasip2-tier-2.md +++ b/content/wasip2-tier-2.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2024-11-26 +path = "2024/11/26/wasip2-tier-2" title = "The wasm32-wasip2 Target Has Reached Tier 2 Support" -author = "Yosh Wuyts" +authors = ["Yosh Wuyts"] +aliases = ["2024/11/26/wasip2-tier-2.html"] +++ ## Introduction diff --git a/content/webassembly-targets-change-in-default-target-features.md b/content/webassembly-targets-change-in-default-target-features.md index 6682fdf7c..2156761c5 100644 --- a/content/webassembly-targets-change-in-default-target-features.md +++ b/content/webassembly-targets-change-in-default-target-features.md @@ -1,9 +1,12 @@ +++ -layout = "post" -date = 2024-09-24 +path = "2024/09/24/webassembly-targets-change-in-default-target-features" title = "WebAssembly targets: change in default target-features" -author = "Alex Crichton" -team = "The Compiler Team " +authors = ["Alex Crichton"] +aliases = ["2024/09/24/webassembly-targets-change-in-default-target-features.html"] + +[extra] +team = "The Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" +++ The Rust compiler has [recently upgraded to using LLVM 19][llvm19] and this diff --git a/content/wg-prio-call-for-contributors.md b/content/wg-prio-call-for-contributors.md index 489b1bff3..7f7023538 100644 --- a/content/wg-prio-call-for-contributors.md +++ b/content/wg-prio-call-for-contributors.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2020-09-14 +path = "2020/09/14/wg-prio-call-for-contributors" title = "A call for contributors from the WG-prioritization team" -author = "The Rust WG-Prioritization Team" +authors = ["The Rust WG-Prioritization Team"] +aliases = ["2020/09/14/wg-prio-call-for-contributors.html"] +++ Are you looking for opportunities to contribute to the Rust community? Have some spare time to donate? And maybe learn something interesting along the way? diff --git a/content/what-is-rust-2018.md b/content/what-is-rust-2018.md index 07e083a3c..71d9cd023 100644 --- a/content/what-is-rust-2018.md +++ b/content/what-is-rust-2018.md @@ -1,8 +1,8 @@ +++ -layout = "post" -date = 2018-07-27 +path = "2018/07/27/what-is-rust-2018" title = "What is Rust 2018?" -author = "The Rust Core Team" +authors = ["The Rust Core Team"] +aliases = ["2018/07/27/what-is-rust-2018.html"] +++ Back in March, [we announced](https://blog.rust-lang.org/2018/03/12/roadmap.html) something new: From bdc338f1ba3ad40e7f8869aad08d84b026e63f68 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 27 Mar 2025 16:59:51 +0100 Subject: [PATCH 0902/1024] Add zola config --- config.toml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 config.toml diff --git a/config.toml b/config.toml new file mode 100644 index 000000000..a250fcb0b --- /dev/null +++ b/config.toml @@ -0,0 +1,13 @@ +# https://www.getzola.org/documentation/getting-started/configuration/ + +base_url = "https://blog.rust-lang.org" +compile_sass = true +build_search_index = false + +[markdown] +highlight_code = true +highlight_theme = "boron" +bottom_footnotes = true + +[extra] +# Put all your custom variables here From 0e3b11276b18d6378c70bc392f5942c61ce959e3 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 27 Mar 2025 19:53:24 +0100 Subject: [PATCH 0903/1024] Fix internal links --- content/Rust-1.31-and-rust-2018.md | 2 +- content/const-generics-mvp-beta.md | 2 +- content/gsoc-2024-results.md | 2 +- .../compiler-team-2022-midyear-report.md | 28 +++++++++---------- .../compiler-team-ambitions-2022.md | 28 +++++++++---------- ...nt-future-pattern-matching-improvements.md | 2 +- .../this-development-cycle-in-cargo-1-77.md | 10 +++---- .../this-development-cycle-in-cargo-1.78.md | 2 +- .../this-development-cycle-in-cargo-1.80.md | 8 +++--- .../this-development-cycle-in-cargo-1.81.md | 6 ++-- .../this-development-cycle-in-cargo-1.82.md | 10 +++---- .../this-development-cycle-in-cargo-1.83.md | 2 +- .../this-development-cycle-in-cargo-1.86.md | 4 +-- 13 files changed, 53 insertions(+), 53 deletions(-) diff --git a/content/Rust-1.31-and-rust-2018.md b/content/Rust-1.31-and-rust-2018.md index a6fec0d4f..861d4d5ec 100644 --- a/content/Rust-1.31-and-rust-2018.md +++ b/content/Rust-1.31-and-rust-2018.md @@ -44,7 +44,7 @@ post, so here's a table of contents: * [New website](#new-website) * [Library stabilizations](#library-stabilizations) * [Cargo features](#cargo-features) -* [Contributors](#contributors-to-131.0) +* [Contributors](#contributors-to-1-31-0) ### Rust 2018 diff --git a/content/const-generics-mvp-beta.md b/content/const-generics-mvp-beta.md index ceb9c8642..ad384a4d8 100644 --- a/content/const-generics-mvp-beta.md +++ b/content/const-generics-mvp-beta.md @@ -30,7 +30,7 @@ impl Debug for ArrayPair { ### Current restrictions -The first iteration of const generics has been deliberately constrained: in other words, this version is the MVP (minimal viable product) for const generics. This decision is motivated both by the additional complexity of general const generics (the implementation for general const generics is not yet complete, but we feel const generics in 1.51 are already very useful), as well as by the desire to introduce a large feature gradually, to gain experience with any potential shortcomings and difficulties. We intend to lift these in future versions of Rust: see [what's next](#whats-next). +The first iteration of const generics has been deliberately constrained: in other words, this version is the MVP (minimal viable product) for const generics. This decision is motivated both by the additional complexity of general const generics (the implementation for general const generics is not yet complete, but we feel const generics in 1.51 are already very useful), as well as by the desire to introduce a large feature gradually, to gain experience with any potential shortcomings and difficulties. We intend to lift these in future versions of Rust: see [what's next](#what-s-next). #### Only integral types are permitted for const generics diff --git a/content/gsoc-2024-results.md b/content/gsoc-2024-results.md index 3b7771633..219d87ff9 100644 --- a/content/gsoc-2024-results.md +++ b/content/gsoc-2024-results.md @@ -43,7 +43,7 @@ Great work, Max! - Mentors: [Chris Fallin](https://github.com/cfallin) and [Amanieu d'Antras](https://github.com/Amanieu) - [Final report](https://d-sonuga.netlify.app/gsoc/regalloc-iii/) -The Rust compiler can use various *backends* for generating executable code. The main one is of course the LLVM backend, but there are other backends, such as [GCC][gcc backend], [.NET](#rust-to-net-compiler---add-support-for-compiling--running-cargo-tests) or [Cranelift][clif backend]. Cranelift is a code generator for various hardware targets, essentially something similar to LLVM. The Cranelift backend uses Cranelift to compile Rust code into executable code, with the goal of improving compilation performance, especially for debug (unoptimized) builds. Even though this backend can already be faster than the LLVM backend, we have identified that it was slowed down by the register allocator used by Cranelift. +The Rust compiler can use various *backends* for generating executable code. The main one is of course the LLVM backend, but there are other backends, such as [GCC][gcc backend], [.NET](#rust-to-net-compiler-add-support-for-compiling-running-cargo-tests) or [Cranelift][clif backend]. Cranelift is a code generator for various hardware targets, essentially something similar to LLVM. The Cranelift backend uses Cranelift to compile Rust code into executable code, with the goal of improving compilation performance, especially for debug (unoptimized) builds. Even though this backend can already be faster than the LLVM backend, we have identified that it was slowed down by the register allocator used by Cranelift. Register allocation is a well-known compiler task where the compiler decides which registers should hold variables and temporary expressions of a program. Usually, the goal of register allocation is to perform the register assignment in a way that maximizes the runtime performance of the compiled program. However, for unoptimized builds, we often care more about the compilation speed instead. diff --git a/content/inside-rust/compiler-team-2022-midyear-report.md b/content/inside-rust/compiler-team-2022-midyear-report.md index b4c1a84d6..0adbe0e1e 100644 --- a/content/inside-rust/compiler-team-2022-midyear-report.md +++ b/content/inside-rust/compiler-team-2022-midyear-report.md @@ -53,22 +53,22 @@ Backend (🛠️, 👩‍💻) | | [Aspirations][Bac Diagnostics (👩‍💻) | | [Aspirations][Diagnostics Aspirations] [Concrete Initiatives]: #concrete-initiatives -[I-unsound Issues]: #i-unsound-issues- -[Async Initiatives]: #async-rust-initiatives-- -[Debugging Initiatives]: #debugging-initiatives- -[Faster Builds Initiatives]: #faster-builds-initiatives--%EF%B8%8F -[Expressiveness Initiatives]: #expressiveness-initiatives-- -[Librarification Initiatives]: #librarification-initiatives-%EF%B8%8F +[I-unsound Issues]: #i-unsound-issues-crab +[Async Initiatives]: #async-rust-initiatives-crab-woman-computer +[Debugging Initiatives]: #debugging-initiatives-crab +[Faster Builds Initiatives]: #faster-builds-initiatives-woman-computer-tools +[Expressiveness Initiatives]: #expressiveness-initiatives-woman-computer-crab +[Librarification Initiatives]: #librarification-initiatives-tools [Aspirations]: #aspirations -[P-high Aspirations]: #p-high-aspirations- -[Debugging Aspirations]: #debugging-aspirations- -[Faster Builds Aspirations]: #faster-builds-aspirations--%EF%B8%8F -[Expressiveness Aspirations]: #expressiveness-aspirations-- -[Librarification Aspirations]: #librarification-aspirations-%EF%B8%8F -[Team Operations]: #compiler-team-operations-aspirations-%EF%B8%8F -[Backend Aspirations]: #compiler-backend-aspirations-%EF%B8%8F- -[Diagnostics Aspirations]: #diagnostics-aspirations- +[P-high Aspirations]: #p-high-backlog-processing-aspirations-crab +[Debugging Aspirations]: #debugging-aspirations-woman-computer +[Faster Builds Aspirations]: #faster-builds-aspirations-woman-computer-tools +[Expressiveness Aspirations]: #expressiveness-aspirations-crab-woman-computer +[Librarification Aspirations]: #librarification-aspirations-tools +[Team Operations]: #compiler-team-operations-aspirations-tools +[Backend Aspirations]: #compiler-backend-aspirations-tools-woman-computer +[Diagnostics Aspirations]: #diagnostics-aspirations-woman-computer ## Overall Survey Results diff --git a/content/inside-rust/compiler-team-ambitions-2022.md b/content/inside-rust/compiler-team-ambitions-2022.md index 743b24670..b97355aa7 100644 --- a/content/inside-rust/compiler-team-ambitions-2022.md +++ b/content/inside-rust/compiler-team-ambitions-2022.md @@ -147,22 +147,22 @@ Backend (🛠️, 👩‍💻) | | [Aspirations][Bac Diagnostics (👩‍💻) | | [Aspirations][Diagnostics Aspirations] [Concrete Initiatives]: #concrete-initiatives -[I-unsound Issues]: #i-unsound-issues- -[Async Initiatives]: #async-rust-initiatives-- -[Debugging Initiatives]: #debugging-initiatives- -[Faster Builds Initiatives]: #faster-builds-initiatives--%EF%B8%8F -[Expressiveness Initiatives]: #expressiveness-initiatives-- -[Librarification Initiatives]: #librarification-initiatives-%EF%B8%8F +[I-unsound Issues]: #i-unsound-issues-crab +[Async Initiatives]: #async-rust-initiatives-crab-woman-computer +[Debugging Initiatives]: #debugging-initiatives-crab +[Faster Builds Initiatives]: #faster-builds-initiatives-woman-computer-tools +[Expressiveness Initiatives]: #expressiveness-initiatives-woman-computer-crab +[Librarification Initiatives]: #librarification-initiatives-tools [Aspirations]: #aspirations -[P-high Aspirations]: #p-high-aspirations- -[Debugging Aspirations]: #debugging-aspirations- -[Faster Builds Aspirations]: #faster-builds-aspirations--%EF%B8%8F -[Expressiveness Aspirations]: #expressiveness-aspirations-- -[Librarification Aspirations]: #librarification-aspirations-%EF%B8%8F -[Team Operations]: #compiler-team-operations-aspirations-%EF%B8%8F -[Backend Aspirations]: #compiler-backend-aspirations-%EF%B8%8F- -[Diagnostics Aspirations]: #diagnostics-aspirations- +[P-high Aspirations]: #p-high-aspirations-crab +[Debugging Aspirations]: #debugging-aspirations-woman-computer +[Faster Builds Aspirations]: #faster-builds-aspirations-woman-computer-tools +[Expressiveness Aspirations]: #expressiveness-aspirations-crab-woman-computer +[Librarification Aspirations]: #librarification-aspirations-tools +[Team Operations]: #compiler-team-operations-aspirations-tools +[Backend Aspirations]: #compiler-backend-aspirations-tools-woman-computer +[Diagnostics Aspirations]: #diagnostics-aspirations-woman-computer diff --git a/content/inside-rust/recent-future-pattern-matching-improvements.md b/content/inside-rust/recent-future-pattern-matching-improvements.md index 6cbe3f84f..8b73d9b8d 100644 --- a/content/inside-rust/recent-future-pattern-matching-improvements.md +++ b/content/inside-rust/recent-future-pattern-matching-improvements.md @@ -22,7 +22,7 @@ Much of writing software revolves around checking if some data has some shape (" Pattern matching in Rust works by checking if a [*place*][ref_place] in memory (the "data") matches a certain *pattern*. In this post, we will look at some recent improvements to patterns soon available in stable Rust as well as some more already available in nightly. -If you are familiar with the nightly features discussed and would like to help out with the efforts to drive them to stable, jump ahead to [*How can I help?](#how-can-i-help?). +If you are familiar with the nightly features discussed and would like to help out with the efforts to drive them to stable, jump ahead to [*How can I help?](#how-can-i-help). ## Subslice patterns, `[head, tail @ ..]` diff --git a/content/inside-rust/this-development-cycle-in-cargo-1-77.md b/content/inside-rust/this-development-cycle-in-cargo-1-77.md index 117ed5944..da2f59d5b 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1-77.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1-77.md @@ -19,17 +19,17 @@ This is a summary of what has been happening around Cargo development for the la - [Implementation](#implementation) - [Polishing `cargo new`](#polishing-cargo-new) - [Merging `cargo upgrade` into `cargo update`](#merging-cargo-upgrade-into-cargo-update) - - [`cargo update --precise `](#cargo-update---precise-yanked) - - [`-Zcheck-cfg`](#-zcheck-cfg) + - [`cargo update --precise `](#cargo-update-precise-yanked) + - [`-Zcheck-cfg`](#zcheck-cfg) - [User-controlled diagnostics](#user-controlled-cargo-diagnostics) - - [Strip `std`'s debuginfo when debuginfo is not requested](#strip-stds-debuginfo-when-debuginfo-is-not-requested) - - [Stabilizing `cargo metadata`'s `id` field](#stabilizing-cargo-metadatas-id-field) + - [Strip `std`'s debuginfo when debuginfo is not requested](#strip-std-s-debuginfo-when-debuginfo-is-not-requested) + - [Stabilizing `cargo metadata`'s `id` field](#stabilizing-cargo-metadata-s-id-field) - [Design discussions](#design-discussions) - [Being-less-surprising-when-people-benchmark-debug-builds](#being-less-surprising-when-people-benchmark-debug-builds) - [Cargo script](#cargo-script) - [When to use packages or workspaces?](#when-to-use-packages-or-workspaces) - [RFC #3537: Make Cargo respect minimum supported Rust version (MSRV) when selecting dependencies](#rfc-3537-make-cargo-respect-minimum-supported-rust-version-msrv-when-selecting-dependencies) - - [RFC #3516 (public/private dependencies)](#rfc-3516-publicprivate-dependencies) + - [RFC #3516 (public/private dependencies)](#rfc-3516-public-private-dependencies) - [Fallback dependencies](#fallback-dependencies) - [Build script directives](#build-script-directives) - [Cargo and rustup](#cargo-and-rustup) diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.78.md b/content/inside-rust/this-development-cycle-in-cargo-1.78.md index 02a3ef2bb..42428bc68 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.78.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.78.md @@ -32,7 +32,7 @@ This is an experiment in finding better ways to be engaged with the community an - [Default Edition](#default-edition) - [Open namespaces](#open-namespaces) - [Design discussions](#design-discussions) - - [Deprecated `Cargo.toml` fields](#deprecated-cargotoml-fields) + - [Deprecated `Cargo.toml` fields](#deprecated-cargo-toml-fields) - [RFC #3452: Nested packages](#rfc-3452-nested-packages) - [Why is this yanked?](#why-is-this-yanked) - [Weak feature syntax](#weak-feature-syntax) diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.80.md b/content/inside-rust/this-development-cycle-in-cargo-1.80.md index e082dfd10..738ce7b00 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.80.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.80.md @@ -17,19 +17,19 @@ This is a summary of what has been happening around Cargo development for the la - [Plugin of the cycle](#plugin-of-the-cycle) - [Implementation](#implementation) - - [`-Zcheck-cfg`](#-zcheck-cfg) + - [`-Zcheck-cfg`](#zcheck-cfg) - [User-controlled cargo diagnostics](#user-controlled-cargo-diagnostics) - - [`-Ztrim-paths`](#-ztrim-paths) + - [`-Ztrim-paths`](#ztrim-paths) - [MSRV-aware Cargo](#msrv-aware-cargo) - [Removing implicit features](#removing-implicit-features) - [Normalizing published manifest files](#normalizing-published-manifest-files) - [Merging `cargo upgrade` into `cargo update`](#merging-cargo-upgrade-into-cargo-update) - [`.crate` provenance](#crate-provenance) - - [`cargo publish --workspace`](#cargo-publish---workspace) + - [`cargo publish --workspace`](#cargo-publish-workspace) - [Snapshot testing](#snapshot-testing) - [Design discussions](#design-discussions) - [RFC triage](#rfc-triage) - - [Custom test harnesses and `panic = "abort"`](#custom-test-harnesses-and-panic--abort) + - [Custom test harnesses and `panic = "abort"`](#custom-test-harnesses-and-panic-abort) - [Short-hand manifest syntaxes](#short-hand-manifest-syntaxes) - [Leaky abstractions of rustc](#leaky-abstractions-of-rustc) - [Misc](#misc) diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.81.md b/content/inside-rust/this-development-cycle-in-cargo-1.81.md index 58f8b3081..4dac1bd91 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.81.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.81.md @@ -24,11 +24,11 @@ This is a summary of what has been happening around Cargo development for the me - [Garbage collection](#garbage-collection) - [Turn all warnings into errors](#turn-all-warnings-into-errors) - [Merging `cargo upgrade` into `cargo update`](#merging-cargo-upgrade-into-cargo-update) - - [`cargo publish --workspace`](#cargo-publish---workspace) + - [`cargo publish --workspace`](#cargo-publish-workspace) - [Fingerprinting builds](#fingerprinting-builds) - [`cargo info`](#cargo-info) - [Design discussions](#design-discussions) - - [`--lockfile-path`](#--lockfile-path) + - [`--lockfile-path`](#lockfile-path) - [`path-bases`](#path-bases) - [Misc](#misc) - [Focus areas without progress](#focus-areas-without-progress) @@ -242,7 +242,7 @@ Some of these are being worked out on those PRs while others are being left to t ##### `cargo publish --workspace` -*Update from [1.80](https://blog.rust-lang.org/inside-rust/2024/06/19/this-development-cycle-in-cargo-1.80.html#cargo-publish---workspace)* +*Update from [1.80](https://blog.rust-lang.org/inside-rust/2024/06/19/this-development-cycle-in-cargo-1.80.html#cargo-publish-workspace)* [jneem](https://github.com/jneem) continued work on `cargo package --workspace`. The first step was to switch `cargo package` to run in stages, first packaging the `.crate` files and then verifying them diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.82.md b/content/inside-rust/this-development-cycle-in-cargo-1.82.md index 09af03f57..55acd35dd 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.82.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.82.md @@ -20,17 +20,17 @@ This is a summary of what has been happening around Cargo development for the me - [`cargo info`](#cargo-info) - [Shell completions](#shell-completions) - [MSRV-aware Cargo](#msrv-aware-cargo) - - [`cargo publish --workspace`](#cargo-publish---workspace) - - [`cargo::error` build script directive](#cargoerror-build-script-directive) - - [`cargo update --precise `](#cargo-update---precise-prerelease) + - [`cargo publish --workspace`](#cargo-publish-workspace) + - [`cargo::error` build script directive](#cargo-error-build-script-directive) + - [`cargo update --precise `](#cargo-update-precise-prerelease) - [Snapshot testing](#snapshot-testing) - [Design discussions](#design-discussions) - [`time`](#time) - [Build probes](#build-probes) - [Detecting unused dependencies](#detecting-unused-dependencies) - - [`--all-targets` and doctests](#--all-targets-and-doc-tests) + - [`--all-targets` and doctests](#all-targets-and-doc-tests) - [`target-dir` and `artifact-dir`](#target-dir-and-artifact-dir) - - [`cargo update --save`](#cargo-update---save-and--zminimal-versions) + - [`cargo update --save`](#cargo-update-save-and-zminimal-versions) - [Misc](#misc) - [Focus areas without progress](#focus-areas-without-progress) diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.83.md b/content/inside-rust/this-development-cycle-in-cargo-1.83.md index 616446adb..bb94bbe7a 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.83.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.83.md @@ -19,7 +19,7 @@ This is a summary of what has been happening around Cargo development for the la - [Implementation](#implementation) - [MSRV-aware Cargo](#msrv-aware-cargo) - [Shell completions](#shell-completions) - - [Public/private dependencies](#publicprivate-dependencies) + - [Public/private dependencies](#public-private-dependencies) - [Optimizing cargo](#optimizing-cargo) - [Design discussions](#design-discussions) - [Target and target](#target-and-target) diff --git a/content/inside-rust/this-development-cycle-in-cargo-1.86.md b/content/inside-rust/this-development-cycle-in-cargo-1.86.md index 02d027a49..46ab60068 100644 --- a/content/inside-rust/this-development-cycle-in-cargo-1.86.md +++ b/content/inside-rust/this-development-cycle-in-cargo-1.86.md @@ -20,11 +20,11 @@ This is a summary of what has been happening around Cargo development for the la - [Polishing diagnostics](#polishing-diagnostics) - [`cargo package` VCS dirty checks](#cargo-package-vcs-dirty-checks) - [Cargo script](#cargo-script) - - [Identifying unused `#[test]`s](#identifying-unused-tests) + - [Identifying unused `#[test]`s](#identifying-unused-test-s) - [Design discussions](#design-discussions) - [`CARGO` environment variable](#cargo-environment-variable) - [Specifying supported platforms in packages](#specifying-supported-platforms-in-packages) - - [Implicitly insert workspace members into `workspace.dependencies`](#implicitly-insert-workspace-members-into-workspacedependencies) + - [Implicitly insert workspace members into `workspace.dependencies`](#implicitly-insert-workspace-members-into-workspace-dependencies) - [Misc](#misc) - [Focus areas without progress](#focus-areas-without-progress) From f605cc027ea667f5b38b5ac6b1b52c71333805b9 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Tue, 1 Apr 2025 22:26:07 +0200 Subject: [PATCH 0904/1024] Rename template post to page --- templates/{post.html => page.html} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename templates/{post.html => page.html} (100%) diff --git a/templates/post.html b/templates/page.html similarity index 100% rename from templates/post.html rename to templates/page.html From cc306a410ecebaea38baea8c67447c8453cf1fb7 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Fri, 28 Mar 2025 21:58:01 +0100 Subject: [PATCH 0905/1024] Migrate templates to Zola --- content/_index.md | 3 ++- content/inside-rust/_index.md | 3 ++- templates/footer.html | 18 +++++++++--------- templates/headers.html | 26 +++++++++++++------------- templates/index.html | 26 ++++++++++++++++++++------ templates/layout.html | 13 ++++++++++--- templates/macros.html | 8 ++++++++ templates/nav.html | 8 ++++---- templates/page.html | 9 ++++++--- templates/section.html | 1 + 10 files changed, 75 insertions(+), 40 deletions(-) create mode 100644 templates/section.html diff --git a/content/_index.md b/content/_index.md index 1ca91d974..601d86e01 100644 --- a/content/_index.md +++ b/content/_index.md @@ -8,5 +8,6 @@ This is the main Rust blog. \ Rust teams \ use this blog to announce major developments in the world of Rust.""" maintained_by = "the Rust Teams" -see_also_html = """the "Inside Rust" blog""" +see_also_path = "inside-rust/" +see_also_text = """the "Inside Rust" blog""" +++ diff --git a/content/inside-rust/_index.md b/content/inside-rust/_index.md index 7b4a474c0..ff8cc9ef3 100644 --- a/content/inside-rust/_index.md +++ b/content/inside-rust/_index.md @@ -10,5 +10,6 @@ to follow along with Rust development. The various \ use this blog to post status updates, calls for help, and other \ similar announcements.""" maintained_by = "the Rust Teams" -see_also_html = """the main Rust blog""" +see_also_path = "" +see_also_text = "the main Rust blog" +++ diff --git a/templates/footer.html b/templates/footer.html index d727fa74f..17d2278cb 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -1,4 +1,4 @@ -{% macro footer(root) -%} +{% macro footer() -%} - + {% endmacro %} diff --git a/templates/headers.html b/templates/headers.html index 80194c04c..28592d968 100644 --- a/templates/headers.html +++ b/templates/headers.html @@ -1,4 +1,4 @@ -{% macro headers(title, section, root) -%} +{% macro headers(title, section) -%} @@ -15,23 +15,23 @@ - - - - + + + + - - - - - - + + + + + + @@ -39,5 +39,5 @@ - + {% endmacro %} diff --git a/templates/index.html b/templates/index.html index 712101609..24a381055 100644 --- a/templates/index.html +++ b/templates/index.html @@ -4,14 +4,14 @@
    -

    {{ section.index_html }}

    +

    {{ section.extra.index_html | safe }}

    See also: - {{ section.see_also_html }} + {{ section.extra.see_also_text }}

    @@ -21,14 +21,28 @@
    - {%- for page in section.pages %} + {%- set rev_pages = section.pages | reverse %} + {%- for page in rev_pages %} + {%- set year = page.components[0] | int %} + {%- set month = page.components[1] | int %} + {%- set day = page.components[2] | int %} + + {%- if loop.index0 == 0 %} + {{ macros::show_year(year=year) }} + {%- else %} + {%- set prev_idx = loop.index0 - 1 %} + {%- set prev_year = rev_pages[prev_idx].components[0] | int %} + {%- if prev_year != year %} + {{ macros::show_year(year=year) }} + {%- endif %} + {%- endif %} {% if page.show_year %} - + {% endif %} - - + + {%- endfor %}

    Posts in {{ page.year }}

    Posts in {{ year }}

    {{ macros::month_name(num=page.month) }} {{ page.day }}{{ macros::escape_hbs(input=page.title) }}{{ macros::month_name(num=month) }} {{ day }}{{ macros::escape_hbs(input=page.title) }}
    diff --git a/templates/layout.html b/templates/layout.html index dfaa0a464..52c6cd5f3 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -2,6 +2,13 @@ {% import "headers.html" as headers %} {% import "nav.html" as nav %} {% import "footer.html" as footer %} + +{% if page %} + {% set section = get_section(path=(page.ancestors | last)) %} + {% set title = page.title ~ " | " ~ section.title %} +{% else %} + {% set title = section.extra.index_title %} +{% endif %} @@ -9,11 +16,11 @@ {{ macros::escape_hbs(input=title) }} - {{ headers::headers(title=title, section=section, root=root) | indent(prefix=" ", blank=true) }} + {{ headers::headers(title=title, section=section) | indent(prefix=" ", blank=true) | safe }} - {{ nav::nav(section=section, root=root) | indent(prefix=" ", blank=true) }} + {{ nav::nav(section=section) | indent(prefix=" ", blank=true) | safe }} {%- block page %}{% endblock page %} - {{ footer::footer(root=root) | indent(prefix=" ", blank=true) }} + {{ footer::footer() | indent(prefix=" ", blank=true) | safe }} diff --git a/templates/macros.html b/templates/macros.html index d14cffea4..c6713e5c2 100644 --- a/templates/macros.html +++ b/templates/macros.html @@ -31,5 +31,13 @@ | replace(from="'", to="'") | replace(from="`", to="`") | replace(from="=", to="=") + | safe }} {%- endmacro escape_hbs %} + +{% macro show_year(year) -%} + + +

    Posts in {{ year }}

    + +{%- endmacro show_year %} diff --git a/templates/nav.html b/templates/nav.html index e8dfd9ea1..cd56e0cee 100644 --- a/templates/nav.html +++ b/templates/nav.html @@ -1,8 +1,8 @@ -{% macro nav(section, root) -%} +{% macro nav(section) -%} {% endmacro %} diff --git a/templates/page.html b/templates/page.html index faa13e9b4..d90f8924d 100644 --- a/templates/page.html +++ b/templates/page.html @@ -1,6 +1,9 @@ {% import "macros.html" as macros %} {% extends "layout.html" %} {% block page %} +{% set year = page.components[0] | int -%} +{% set month = page.components[1] | int -%} +{% set day = page.components[2] | int -%}
    @@ -8,12 +11,12 @@

    {{ macros::escape_hbs(input=page.title) }}

    -
    {{ macros::month_name(num=page.month) }} {{ page.day }}, {{ page.year }} · {{ macros::escape_hbs(input=page.author) }} - {% if page.has_team %} on behalf of {{ page.team }} {% endif %} +
    {{ macros::month_name(num=month) }} {{ day }}, {{ year }} · {{ macros::escape_hbs(input=page.authors | join(sep=", ")) }} + {% if page.extra is containing("team") %} on behalf of {{ page.extra.team }} {% endif %}
    - {{ page.contents }} + {{ page.content | safe }}
    diff --git a/templates/section.html b/templates/section.html new file mode 100644 index 000000000..09763b9a0 --- /dev/null +++ b/templates/section.html @@ -0,0 +1 @@ +{% extends "index.html" %} From fe8ff0e506f1780ef2cfbb25b300df9303fb9ceb Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 5 Apr 2025 00:02:13 +0200 Subject: [PATCH 0906/1024] Remove old static site generator --- Cargo.lock | 3057 +++------------------------------------ Cargo.toml | 47 +- front_matter/Cargo.toml | 8 +- serve/Cargo.toml | 9 - serve/src/main.rs | 18 - snapshot/Cargo.toml | 7 + snapshot/src/lib.rs | 43 + src/bin/blog.rs | 18 - src/blogs.rs | 161 --- src/lib.rs | 288 ---- src/posts.rs | 145 -- 11 files changed, 228 insertions(+), 3573 deletions(-) delete mode 100644 serve/Cargo.toml delete mode 100644 serve/src/main.rs create mode 100644 snapshot/Cargo.toml create mode 100644 snapshot/src/lib.rs delete mode 100644 src/bin/blog.rs delete mode 100644 src/blogs.rs delete mode 100644 src/lib.rs delete mode 100644 src/posts.rs diff --git a/Cargo.lock b/Cargo.lock index f4d6e376c..2934abaab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,27 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - [[package]] name = "aho-corasick" version = "1.1.3" @@ -32,213 +11,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "anstream" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" - -[[package]] -name = "anstyle-parse" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" -dependencies = [ - "anstyle", - "once_cell", - "windows-sys 0.59.0", -] - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide 0.7.4", - "object", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blog" -version = "0.1.0" -dependencies = [ - "chrono", - "color-eyre", - "comrak", - "eyre", - "front_matter", - "insta", - "rayon", - "regex", - "sass-rs", - "serde", - "serde_json", - "tera", - "toml", -] - -[[package]] -name = "bon" -version = "3.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65268237be94042665b92034f979c42d431d2fd998b49809543afe3e66abad1c" -dependencies = [ - "bon-macros", - "rustversion", -] - -[[package]] -name = "bon-macros" -version = "3.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "803c95b2ecf650eb10b5f87dda6b9f6a1b758cee53245e2b7b825c9b3803a443" -dependencies = [ - "darling", - "ident_case", - "prettyplease", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.100", -] - [[package]] name = "bstr" version = "1.11.3" @@ -249,198 +21,6 @@ dependencies = [ "serde", ] -[[package]] -name = "build_html" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b01f54cbdd56298a506b086691594ded3b68dcbc9437adc87c616a35e7fc89" - -[[package]] -name = "bumpalo" -version = "3.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" - -[[package]] -name = "caseless" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6fd507454086c8edfd769ca6ada439193cdb209c7681712ef6275cccbfe5d8" -dependencies = [ - "unicode-normalization", -] - -[[package]] -name = "cc" -version = "1.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "wasm-bindgen", - "windows-link", -] - -[[package]] -name = "chrono-tz" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb" -dependencies = [ - "chrono", - "chrono-tz-build", - "phf", -] - -[[package]] -name = "chrono-tz-build" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1" -dependencies = [ - "parse-zoneinfo", - "phf", - "phf_codegen", -] - -[[package]] -name = "clap" -version = "2.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" -dependencies = [ - "ansi_term", - "atty", - "bitflags 1.3.2", - "strsim 0.8.0", - "textwrap", - "unicode-width", - "vec_map", -] - -[[package]] -name = "clap" -version = "4.5.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e958897981290da2a852763fe9cdb89cd36977a5d729023127095fa94d95e2ff" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b0f35019843db2160b5bb19ae09b4e6411ac33fc6a712003c33e03090e2489" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim 0.11.1", - "terminal_size", -] - -[[package]] -name = "clap_derive" -version = "4.5.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "clap_lex" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" - -[[package]] -name = "color-eyre" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" -dependencies = [ - "backtrace", - "color-spantrace", - "eyre", - "indenter", - "once_cell", - "owo-colors", - "tracing-error", -] - -[[package]] -name = "color-spantrace" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" -dependencies = [ - "once_cell", - "owo-colors", - "tracing-core", - "tracing-error", -] - -[[package]] -name = "colorchoice" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" - -[[package]] -name = "comrak" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4f05e73ca9a30af27bebc13600f91fd1651b2ec7d139ca82a89df7ca583af1" -dependencies = [ - "bon", - "caseless", - "clap 4.5.34", - "entities", - "memchr", - "shell-words", - "slug", - "syntect", - "typed-arena", - "unicode_categories", - "xdg", -] - [[package]] name = "console" version = "0.15.11" @@ -450,2471 +30,307 @@ dependencies = [ "encode_unicode", "libc", "once_cell", - "windows-sys 0.59.0", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crossterm" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d955a0bb380ef178a640b91779e3987da38c9aea133b20614cfed8cdea9c6" -dependencies = [ - "bitflags 2.9.0", - "crossterm_winapi", - "parking_lot", - "rustix 0.38.44", - "winapi", + "windows-sys", ] [[package]] -name = "crossterm_winapi" -version = "0.9.1" +name = "encode_unicode" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" -dependencies = [ - "winapi", -] +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] -name = "crypto-common" -version = "0.1.6" +name = "equivalent" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.11.1", - "syn 2.0.100", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "data-encoding" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" - -[[package]] -name = "deranged" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cfac68e08048ae1883171632c2aef3ebc555621ae56fbccce1cbf22dd7f058" -dependencies = [ - "powerfmt", -] - -[[package]] -name = "deunicode" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc55fe0d1f6c107595572ec8b107c0999bb1a2e0b75e37429a4fb0d6474a0e7d" - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "entities" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca" - -[[package]] -name = "env_filter" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3716d7a920fb4fac5d84e9d4bce8ceb321e9414b4409da61b07b75c1e3d0697" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "jiff", - "log", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "eyre" -version = "0.6.12" +name = "eyre" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fancy-regex" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" -dependencies = [ - "bit-set", - "regex", -] - -[[package]] -name = "flate2" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" -dependencies = [ - "crc32fast", - "miniz_oxide 0.8.5", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "front_matter" -version = "0.1.0" -dependencies = [ - "eyre", - "serde", - "toml", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-sink", - "futures-task", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[package]] -name = "globset" -version = "0.4.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" -dependencies = [ - "aho-corasick", - "bstr", - "log", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "globwalk" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf760ebf69878d9fd8f110c89703d90ce35095324d1f1edcb595c63945ee757" -dependencies = [ - "bitflags 2.9.0", - "ignore", - "walkdir", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "headers" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" -dependencies = [ - "base64 0.21.7", - "bytes", - "headers-core", - "http 0.2.12", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" -dependencies = [ - "http 0.2.12", -] - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humansize" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" -dependencies = [ - "libm", -] - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.62" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2fd658b06e56721792c5df4475705b6cda790e9298d19d2f8af083457bcd127" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "ignore" -version = "0.4.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" -dependencies = [ - "crossbeam-deque", - "globset", - "log", - "memchr", - "regex-automata", - "same-file", - "walkdir", - "winapi-util", -] - -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - -[[package]] -name = "indexmap" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "insta" -version = "1.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50259abbaa67d11d2bcafc7ba1d094ed7a0c70e3ce893f0d0997f73558cb3084" -dependencies = [ - "console", - "globset", - "linked-hash-map", - "once_cell", - "pin-project", - "regex", - "similar", - "walkdir", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "itoa" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "jiff" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c102670231191d07d37a35af3eb77f1f0dbf7a71be51a962dcd57ea607be7260" -dependencies = [ - "jiff-static", - "log", - "portable-atomic", - "portable-atomic-util", - "serde", -] - -[[package]] -name = "jiff-static" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cdde31a9d349f1b1f51a0b3714a5940ac022976f4b49485fc04be052b183b4c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "js-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "libc" -version = "0.2.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" - -[[package]] -name = "libm" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] -name = "linux-raw-sys" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" - -[[package]] -name = "litemap" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" - -[[package]] -name = "local_ipaddress" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6a104730949fbc4c78e4fa98ed769ca0faa02e9818936b61032d2d77526afa9" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - -[[package]] -name = "miniz_oxide" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "multer" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2" -dependencies = [ - "bytes", - "encoding_rs", - "futures-util", - "http 0.2.12", - "httparse", - "log", - "memchr", - "mime", - "spin", - "version_check", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi 0.3.9", - "libc", -] - -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" - -[[package]] -name = "onig" -version = "6.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" -dependencies = [ - "bitflags 1.3.2", - "libc", - "once_cell", - "onig_sys", -] - -[[package]] -name = "onig_sys" -version = "69.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "owo-colors" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets", -] - -[[package]] -name = "parse-zoneinfo" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24" -dependencies = [ - "regex", -] - -[[package]] -name = "pem" -version = "3.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" -dependencies = [ - "base64 0.22.1", - "serde", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" -dependencies = [ - "memchr", - "thiserror 2.0.12", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "pest_meta" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" -dependencies = [ - "once_cell", - "pest", - "sha2", -] - -[[package]] -name = "phf" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef8048c789fa5e851558d709946d6d79a8ff88c0440c587967f8e94bfb1216a" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" -dependencies = [ - "phf_shared", - "rand", -] - -[[package]] -name = "phf_shared" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[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.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "plist" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac26e981c03a6e53e0aee43c113e3202f5581d5360dae7bd2c70e800dd0451d" -dependencies = [ - "base64 0.22.1", - "indexmap", - "quick-xml", - "serde", - "time", -] - -[[package]] -name = "portable-atomic" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" - -[[package]] -name = "portable-atomic-util" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" -dependencies = [ - "portable-atomic", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "prettyplease" -version = "0.2.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" -dependencies = [ - "proc-macro2", - "syn 2.0.100", -] - -[[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 1.0.109", - "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.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "qr2term" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6867c60b38e9747a079a19614dbb5981a53f21b9a56c265f3bfdf6011a50a957" -dependencies = [ - "crossterm", - "qrcode", -] - -[[package]] -name = "qrcode" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68782463e408eb1e668cf6152704bd856c78c5b6417adaee3203d8f4c1fc9ec" - -[[package]] -name = "quick-xml" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" -dependencies = [ - "memchr", -] - -[[package]] -name = "quote" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "rcgen" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1" -dependencies = [ - "pem", - "ring", - "time", - "yasna", -] - -[[package]] -name = "redox_syscall" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" -dependencies = [ - "bitflags 2.9.0", -] - -[[package]] -name = "regex" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.9.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustix" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" -dependencies = [ - "bitflags 2.9.0", - "errno", - "libc", - "linux-raw-sys 0.9.3", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" - -[[package]] -name = "rustls-webpki" -version = "0.102.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[package]] -name = "rustversion" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "sass-rs" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cabcf7c6e55053f359911187ac401409aad2dc14338cae972dec266fee486abd" -dependencies = [ - "libc", - "sass-sys", -] - -[[package]] -name = "sass-sys" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "933bca23b402377f0ab71e79732a826deffc748013746ac3314f6abc7f9fc51c" -dependencies = [ - "cc", - "libc", - "num_cpus", - "pkg-config", -] - -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "serde" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "serde_json" -version = "1.0.140" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serve" -version = "0.1.0" -dependencies = [ - "blog", - "tokio", - "warpy", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shell-words" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "similar" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" - -[[package]] -name = "siphasher" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "slug" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" -dependencies = [ - "deunicode", - "wasm-bindgen", -] - -[[package]] -name = "smallvec" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" - -[[package]] -name = "socket2" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "structopt" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" -dependencies = [ - "clap 2.34.0", - "lazy_static", - "structopt-derive", -] - -[[package]] -name = "structopt-derive" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" -dependencies = [ - "heck 0.3.3", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "syntect" -version = "5.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1" -dependencies = [ - "bincode", - "bitflags 1.3.2", - "fancy-regex", - "flate2", - "fnv", - "once_cell", - "onig", - "plist", - "regex-syntax", - "serde", - "serde_derive", - "serde_json", - "thiserror 1.0.69", - "walkdir", - "yaml-rust", -] - -[[package]] -name = "tera" -version = "1.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab9d851b45e865f178319da0abdbfe6acbc4328759ff18dafc3a41c16b4cd2ee" -dependencies = [ - "chrono", - "chrono-tz", - "globwalk", - "humansize", - "lazy_static", - "percent-encoding", - "pest", - "pest_derive", - "rand", - "regex", - "serde", - "serde_json", - "slug", - "unic-segment", -] - -[[package]] -name = "terminal_size" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" -dependencies = [ - "rustix 1.0.3", - "windows-sys 0.59.0", -] - -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl 2.0.12", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "time" -version = "0.3.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" - -[[package]] -name = "time-macros" -version = "0.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.44.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-macros" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls", - "rustls-pki-types", - "tokio", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" -dependencies = [ - "futures-util", - "log", - "tokio", - "tungstenite", -] - -[[package]] -name = "tokio-util" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.22.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "log", - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-error" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" -dependencies = [ - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" -dependencies = [ - "sharded-slab", - "thread_local", - "tracing-core", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 1.3.1", - "httparse", - "log", - "rand", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", -] - -[[package]] -name = "typed-arena" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "unic-char-property" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" -dependencies = [ - "unic-char-range", -] - -[[package]] -name = "unic-char-range" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" - -[[package]] -name = "unic-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" - -[[package]] -name = "unic-segment" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23" -dependencies = [ - "unic-ucd-segment", -] - -[[package]] -name = "unic-ucd-segment" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-version" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" -dependencies = [ - "unic-common", -] - -[[package]] -name = "unicase" -version = "2.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" - -[[package]] -name = "unicode-ident" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +dependencies = [ + "indenter", + "once_cell", +] [[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +name = "front_matter" +version = "0.1.0" dependencies = [ - "tinyvec", + "eyre", + "serde", + "toml", ] [[package]] -name = "unicode-segmentation" -version = "1.12.0" +name = "globset" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata", + "regex-syntax", +] [[package]] -name = "unicode-width" -version = "0.1.14" +name = "hashbrown" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] -name = "unicode_categories" -version = "0.1.1" +name = "indenter" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] -name = "untrusted" -version = "0.9.0" +name = "indexmap" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +dependencies = [ + "equivalent", + "hashbrown", +] [[package]] -name = "url" -version = "2.5.4" +name = "insta" +version = "1.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "50259abbaa67d11d2bcafc7ba1d094ed7a0c70e3ce893f0d0997f73558cb3084" dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", + "console", + "globset", + "linked-hash-map", + "once_cell", + "pin-project", + "regex", + "similar", + "walkdir", ] [[package]] -name = "utf-8" -version = "0.7.6" +name = "libc" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] -name = "utf16_iter" -version = "1.0.5" +name = "linked-hash-map" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] -name = "utf8_iter" -version = "1.0.4" +name = "log" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] -name = "utf8parse" -version = "0.2.2" +name = "memchr" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] -name = "valuable" -version = "0.1.1" +name = "once_cell" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] -name = "vec_map" -version = "0.8.2" +name = "pin-project" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] [[package]] -name = "version_check" -version = "0.9.5" +name = "pin-project-internal" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] -name = "walkdir" -version = "2.5.0" +name = "proc-macro2" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ - "same-file", - "winapi-util", + "unicode-ident", ] [[package]] -name = "want" -version = "0.3.1" +name = "quote" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ - "try-lock", + "proc-macro2", ] [[package]] -name = "warp" -version = "0.3.7" +name = "regex" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "headers", - "http 0.2.12", - "hyper", - "log", - "mime", - "mime_guess", - "multer", - "percent-encoding", - "pin-project", - "rustls-pemfile", - "scoped-tls", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-rustls", - "tokio-tungstenite", - "tokio-util", - "tower-service", - "tracing", + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", ] [[package]] -name = "warpy" -version = "0.3.68" +name = "regex-automata" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41913caf12a0f0ca0ecb689fca9430c2abce1220b88787ab00d90e7efb6bf10c" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ - "build_html", - "chrono", - "env_logger", - "local_ipaddress", - "log", - "qr2term", - "rcgen", - "structopt", - "tokio", - "warp", + "aho-corasick", + "memchr", + "regex-syntax", ] [[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +name = "regex-syntax" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] -name = "wasm-bindgen" -version = "0.2.100" +name = "same-file" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", + "winapi-util", +] + +[[package]] +name = "serde" +version = "1.0.219" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +dependencies = [ + "serde_derive", ] [[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" +name = "serde_derive" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ - "bumpalo", - "log", "proc-macro2", "quote", - "syn 2.0.100", - "wasm-bindgen-shared", + "syn", ] [[package]] -name = "wasm-bindgen-macro" -version = "0.2.100" +name = "serde_spanned" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ - "quote", - "wasm-bindgen-macro-support", + "serde", ] [[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.100" +name = "similar" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" + +[[package]] +name = "snapshot" +version = "0.1.0" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", - "wasm-bindgen-backend", - "wasm-bindgen-shared", + "insta", ] [[package]] -name = "wasm-bindgen-shared" -version = "0.2.100" +name = "syn" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ + "proc-macro2", + "quote", "unicode-ident", ] [[package]] -name = "winapi" -version = "0.3.9" +name = "toml" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "toml_datetime" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] [[package]] -name = "winapi-util" -version = "0.1.9" +name = "toml_edit" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "windows-sys 0.59.0", + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "unicode-ident" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] -name = "windows-core" -version = "0.52.0" +name = "walkdir" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ - "windows-targets", + "same-file", + "winapi-util", ] [[package]] -name = "windows-link" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - -[[package]] -name = "windows-sys" -version = "0.52.0" +name = "winapi-util" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-targets", + "windows-sys", ] [[package]] @@ -2998,132 +414,3 @@ checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" dependencies = [ "memchr", ] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "xdg" -version = "2.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546" - -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "yasna" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" -dependencies = [ - "time", -] - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.8.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] diff --git a/Cargo.toml b/Cargo.toml index ca98c23eb..4650619f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,46 +1,3 @@ [workspace] -members = ["front_matter", "serve"] - -[workspace.package] -edition = "2024" - -[workspace.dependencies] -blog = { path = "." } -chrono = "=0.4.40" -color-eyre = "=0.6.3" -comrak = "=0.37.0" -eyre = "=0.6.12" -front_matter = { path = "front_matter" } -insta = "=1.42.2" -rayon = "=1.10.0" -regex = "=1.11.1" -sass-rs = "=0.2.2" -serde_json = "=1.0.140" -serde = "=1.0.219" -tera = "=1.20.0" -tokio = "=1.44.1" -toml = "=0.8.20" -warpy = "=0.3.68" - -[package] -name = "blog" -version = "0.1.0" -edition.workspace = true -authors = ["The Rust Project Developers"] - -[dependencies] -chrono.workspace = true -color-eyre.workspace = true -comrak = { workspace = true, features = ["bon"] } -eyre.workspace = true -front_matter.workspace = true -rayon.workspace = true -regex.workspace = true -sass-rs.workspace = true -serde_json.workspace = true -serde = { workspace = true, features = ["derive"] } -tera.workspace = true -toml.workspace = true - -[dev-dependencies] -insta = { workspace = true, features = ["filters", "glob"] } +resolver = "3" +members = ["front_matter", "snapshot"] diff --git a/front_matter/Cargo.toml b/front_matter/Cargo.toml index 9fb79f6c0..93120b784 100644 --- a/front_matter/Cargo.toml +++ b/front_matter/Cargo.toml @@ -1,9 +1,9 @@ [package] name = "front_matter" version = "0.1.0" -edition.workspace = true +edition = "2024" [dependencies] -eyre.workspace = true -serde = { workspace = true, features = ["derive"] } -toml.workspace = true +eyre = "=0.6.12" +serde = { version = "=1.0.219", features = ["derive"] } +toml = "=0.8.20" diff --git a/serve/Cargo.toml b/serve/Cargo.toml deleted file mode 100644 index 01c37725e..000000000 --- a/serve/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "serve" -version = "0.1.0" -edition.workspace = true - -[dependencies] -blog.workspace = true -warpy.workspace = true -tokio.workspace = true diff --git a/serve/src/main.rs b/serve/src/main.rs deleted file mode 100644 index 7fe0aa6a7..000000000 --- a/serve/src/main.rs +++ /dev/null @@ -1,18 +0,0 @@ -use std::error::Error; - -#[tokio::main] -async fn main() -> Result<(), Box> { - blog::main()?; - - let footer = format!("{} {}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION")); - - warpy::server::run( - format!("{}/../public", env!("CARGO_MANIFEST_DIR")), - [0, 0, 0, 0], - footer, - Some(8000), - false, - ) - .await?; - Ok(()) -} diff --git a/snapshot/Cargo.toml b/snapshot/Cargo.toml new file mode 100644 index 000000000..7249edfb2 --- /dev/null +++ b/snapshot/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "snapshot" +version = "0.1.0" +edition = "2024" + +[dev-dependencies] +insta = { version = "=1.42.2", features = ["filters", "glob"] } diff --git a/snapshot/src/lib.rs b/snapshot/src/lib.rs new file mode 100644 index 000000000..df76e35a2 --- /dev/null +++ b/snapshot/src/lib.rs @@ -0,0 +1,43 @@ +#[test] +fn snapshot() { + std::env::set_current_dir(concat!(env!("CARGO_MANIFEST_DIR"), "/..")).unwrap(); + let _ = std::fs::remove_dir_all("public"); + let status = std::process::Command::new("zola") + .arg("build") + .status() + .unwrap(); + assert!(status.success(), "failed to build site"); + + let timestamped_files = ["releases.json", "feed.xml"]; + let inexplicably_non_deterministic_files = ["images/2023-08-rust-survey-2022/experiences.png"]; + insta::glob!("../..", "public/**/*", |path| { + if path.is_dir() { + return; + } + let path = path.display().to_string(); + if timestamped_files + .into_iter() + .chain(inexplicably_non_deterministic_files) + .any(|f| path.ends_with(f)) + { + // Skip troublesome files, e.g. they might contain timestamps. + // If possible, they are tested separately below. + return; + } + let content = std::fs::read(path).unwrap(); + // insta can't deal with non-utf8 strings? + let content = String::from_utf8_lossy(&content).into_owned(); + insta::assert_snapshot!(content); + }); + + // test files with timestamps filtered + insta::with_settings!({filters => vec![ + (r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}", "(filtered timestamp)"), + ]}, { + for file in timestamped_files { + let content = std::fs::read(format!("public/{file}")).unwrap(); + let content = String::from_utf8_lossy(&content).into_owned(); + insta::assert_snapshot!(content); + } + }); +} diff --git a/src/bin/blog.rs b/src/bin/blog.rs deleted file mode 100644 index 2e11289a6..000000000 --- a/src/bin/blog.rs +++ /dev/null @@ -1,18 +0,0 @@ -pub fn main() -> eyre::Result<()> { - color_eyre::install()?; - - blog::main()?; - - println!( - "blog has been generated; you can now serve its content by running\n\ - {INDENT}python3 -m http.server --directory {ROOT}/public\n\ - or running:\n\ - {INDENT}cargo run -p serve\n\ - or you can read it directly by opening a web browser on:\n\ - {INDENT}file:///{ROOT}/public/index.html", - ROOT = env!("CARGO_MANIFEST_DIR"), - INDENT = " " - ); - - Ok(()) -} diff --git a/src/blogs.rs b/src/blogs.rs deleted file mode 100644 index 26d7ef4e3..000000000 --- a/src/blogs.rs +++ /dev/null @@ -1,161 +0,0 @@ -use super::posts::Post; -use serde::{Deserialize, Serialize}; -use std::path::{Path, PathBuf}; - -static MANIFEST_FILE: &str = "_index.md"; -static POSTS_EXT: &str = "md"; - -#[derive(Deserialize)] -#[serde(deny_unknown_fields)] -pub struct Manifest { - /// Title to display in the "top row". - pub(crate) title: String, - - /// Title to use in the html header. - pub(crate) index_title: String, - - /// Description for metadata - pub(crate) description: String, - - /// Who maintains this blog? Appears in the rss feed. - pub(crate) maintained_by: String, - - /// Raw html describing the blog to insert into the index page. - pub(crate) index_html: String, - - /// What to show in the "see also" section of this blog. - pub(crate) see_also_html: String, -} - -#[derive(Serialize)] -pub struct Blog { - title: String, - index_title: String, - see_also_html: String, - description: String, - maintained_by: String, - index_html: String, - #[serde(serialize_with = "add_postfix_slash")] - path: PathBuf, - pages: Vec, -} - -impl Blog { - fn load(path: PathBuf, dir: &Path) -> eyre::Result { - let manifest_content = std::fs::read_to_string(dir.join(MANIFEST_FILE))? - .strip_prefix("+++\n") - .unwrap() - .strip_suffix("+++\n") - .unwrap() - .to_string(); - let manifest: Manifest = toml::from_str(&manifest_content)?; - - let mut posts = Vec::new(); - for entry in std::fs::read_dir(dir)? { - let path = entry?.path(); - if path.ends_with("_index.md") { - continue; // blog manifest is not a post - } - let ext = path.extension().and_then(|e| e.to_str()); - if path.metadata()?.file_type().is_file() && ext == Some(POSTS_EXT) { - posts.push(Post::open(&path)?); - } - } - - posts.sort_by_key(|post| { - format!( - "{}-{:02}-{:02}-{}", - post.year, post.month, post.day, post.title - ) - }); - posts.reverse(); - - // Decide which posts should show the year in the index. - posts[0].show_year = true; - for i in 1..posts.len() { - posts[i].show_year = posts[i - 1].year != posts[i].year; - } - - // Make the updated time is unique, by incrementing seconds for duplicates - let mut last_matching_updated = 0; - for i in 1..posts.len() { - if posts[i].updated == posts[last_matching_updated].updated { - posts[i].set_updated((i - last_matching_updated) as u32); - } else { - last_matching_updated = i; - } - } - - Ok(Self { - title: manifest.title, - index_title: manifest.index_title, - description: manifest.description, - maintained_by: manifest.maintained_by, - index_html: manifest.index_html, - see_also_html: manifest.see_also_html, - path, - pages: posts, - }) - } - - pub(crate) fn title(&self) -> &str { - &self.title - } - - pub(crate) fn index_title(&self) -> &str { - &self.index_title - } - - pub(crate) fn path(&self) -> &Path { - &self.path - } - - pub(crate) fn path_back_to_root(&self) -> PathBuf { - self.path.components().map(|_| Path::new("../")).collect() - } - - pub(crate) fn posts(&self) -> &[Post] { - &self.pages - } -} - -/// Recursively load blogs in a directory. A blog is a directory with a -/// `_index.md` file inside it. -pub fn load(base: &Path) -> eyre::Result> { - let mut blogs = Vec::new(); - load_recursive(base, base, &mut blogs)?; - Ok(blogs) -} - -fn load_recursive(base: &Path, current: &Path, blogs: &mut Vec) -> eyre::Result<()> { - for entry in std::fs::read_dir(current)? { - let path = entry?.path(); - let file_type = path.metadata()?.file_type(); - - if file_type.is_dir() { - load_recursive(base, &path, blogs)?; - } else if file_type.is_file() { - let file_name = path.file_name().and_then(|n| n.to_str()); - if let (Some(file_name), Some(parent)) = (file_name, path.parent()) { - if file_name == MANIFEST_FILE { - let path = parent - .strip_prefix(base) - .map_or_else(|_| PathBuf::new(), Path::to_path_buf); - blogs.push(Blog::load(path, parent)?); - } - } - } - } - Ok(()) -} - -fn add_postfix_slash(path: &Path, serializer: S) -> Result -where - S: serde::Serializer, -{ - let mut str_repr = path.to_string_lossy().to_string(); - if !str_repr.is_empty() { - str_repr.push('/'); - } - serializer.serialize_str(&str_repr) -} diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index f591108f5..000000000 --- a/src/lib.rs +++ /dev/null @@ -1,288 +0,0 @@ -mod blogs; -mod posts; - -use self::blogs::Blog; -use self::posts::Post; -use chrono::Timelike; -use eyre::{WrapErr, eyre}; -use rayon::prelude::*; -use sass_rs::{Options, compile_file}; -use serde::Serialize; -use serde_json::{Value, json}; -use std::fs::{self, File}; -use std::io::{self, Write}; -use std::path::{Path, PathBuf}; -use tera::Tera; - -struct Generator { - tera: Tera, - blogs: Vec, - out_directory: PathBuf, -} - -#[derive(Debug, Serialize)] -struct Releases { - releases: Vec, - feed_updated: String, -} - -#[derive(Debug, Serialize)] -struct ReleasePost { - title: String, - url: String, -} - -impl Generator { - fn new( - out_directory: impl AsRef, - posts_directory: impl AsRef, - ) -> eyre::Result { - let mut tera = Tera::new("templates/*")?; - tera.autoescape_on(vec![]); // disable auto-escape for .html templates - Ok(Generator { - tera, - blogs: self::blogs::load(posts_directory.as_ref())?, - out_directory: out_directory.as_ref().into(), - }) - } - - fn file_url(&self, path: &Path) -> String { - format!( - "file:///{}/{}", - self.out_directory - .canonicalize() - .unwrap_or_else(|_| self.out_directory.to_owned()) - .display() - .to_string() - .trim_start_matches('/') - .replace(' ', "%20") - .replace("\\\\?\\", ""), - path.display() - ) - .replace(std::path::MAIN_SEPARATOR, "/") - } - - fn render(&self) -> eyre::Result<()> { - // make sure our output directory exists - fs::create_dir_all(&self.out_directory)?; - - for blog in &self.blogs { - self.render_blog(blog)?; - } - self.compile_sass("app")?; - self.compile_sass("noscript")?; - self.compile_sass("fonts")?; - self.concat_vendor_css(vec!["skeleton", "tachyons"])?; - self.copy_static_files()?; - Ok(()) - } - - fn compile_sass(&self, filename: &str) -> eyre::Result<()> { - let scss_file = format!("./sass/{filename}.scss"); - let css_file = format!("./static/styles/{filename}.css"); - - let css = compile_file(&scss_file, Options::default()) - .map_err(|error| eyre!(error)) - .wrap_err_with(|| format!("couldn't compile sass: {}", &scss_file))?; - let mut file = File::create(&css_file) - .wrap_err_with(|| format!("couldn't make css file: {}", &css_file))?; - file.write_all(&css.into_bytes()) - .wrap_err_with(|| format!("couldn't write css file: {}", &css_file))?; - - Ok(()) - } - - fn concat_vendor_css(&self, files: Vec<&str>) -> eyre::Result<()> { - let mut concatted = String::new(); - for filestem in files { - let vendor_path = format!("./static/styles/{filestem}.css"); - let contents = fs::read_to_string(vendor_path).wrap_err("couldn't read vendor css")?; - concatted.push_str(&contents); - } - fs::write("./static/styles/vendor.css", &concatted) - .wrap_err("couldn't write vendor css")?; - - Ok(()) - } - - fn render_blog(&self, blog: &Blog) -> eyre::Result<()> { - std::fs::create_dir_all(self.out_directory.join(blog.path()))?; - - let path = self.render_index(blog)?; - - println!("{}: {}", blog.title(), self.file_url(&path)); - - self.render_feed(blog)?; - self.render_releases_feed(blog)?; - - let paths = blog - .posts() - .par_iter() - .map(|post| self.render_post(blog, post)) - .collect::, _>>()?; - if let Some(path) = paths.first() { - println!("└─ Latest post: {}\n", self.file_url(path)); - } - - Ok(()) - } - - fn render_index(&self, blog: &Blog) -> eyre::Result { - let data = json!({ - "title": blog.index_title(), - "section": blog, - "root": blog.path_back_to_root(), - }); - let path = blog.path().join("index.html"); - self.render_template(&path, "index.html", data)?; - Ok(path) - } - - fn render_post(&self, blog: &Blog, post: &Post) -> eyre::Result { - let path = blog - .path() - .join(format!("{:04}", &post.year)) - .join(format!("{:02}", &post.month)) - .join(format!("{:02}", &post.day)); - fs::create_dir_all(self.out_directory.join(&path))?; - - // then, we render the page in that path - let mut filename = PathBuf::from(&post.filename); - filename.set_extension("html"); - - let data = json!({ - "title": format!("{} | {}", post.title, blog.title()), - "section": blog, - "page": post, - "root": blog.path_back_to_root().join("../../../"), - }); - - let path = path.join(filename); - self.render_template(&path, &format!("{}.html", post.layout), data)?; - Ok(path) - } - - fn render_feed(&self, blog: &Blog) -> eyre::Result<()> { - let posts: Vec<_> = blog.posts().iter().take(10).collect(); - let data = json!({ - "section": blog, - "pages": posts, - "feed_updated": chrono::Utc::now().with_nanosecond(0).unwrap().to_rfc3339(), - }); - - self.render_template(blog.path().join("feed.xml"), "feed.xml", data)?; - Ok(()) - } - - fn render_releases_feed(&self, blog: &Blog) -> eyre::Result<()> { - let posts = blog.posts().to_vec(); - let is_released: Vec<&Post> = posts.iter().filter(|post| post.release).collect(); - let releases: Vec = is_released - .iter() - .map(|post| ReleasePost { - title: post.title.clone(), - url: blog - .path() - .join(post.path.clone()) - .to_string_lossy() - .to_string(), - }) - .collect(); - let data = Releases { - releases, - feed_updated: chrono::Utc::now().with_nanosecond(0).unwrap().to_rfc3339(), - }; - fs::write( - self.out_directory.join(blog.path()).join("releases.json"), - serde_json::to_string(&data)?, - )?; - Ok(()) - } - - fn copy_static_files(&self) -> eyre::Result<()> { - copy_dir("static/fonts", &self.out_directory)?; - copy_dir("static/images", &self.out_directory)?; - copy_dir("static/styles", &self.out_directory)?; - copy_dir("static/scripts", &self.out_directory)?; - Ok(()) - } - - fn render_template( - &self, - name: impl AsRef, - template: &str, - data: Value, - ) -> eyre::Result<()> { - let out_file = self.out_directory.join(name.as_ref()); - let file = File::create(out_file)?; - self.tera - .render_to(template, &tera::Context::from_value(data)?, file)?; - Ok(()) - } -} - -fn copy_dir(source: impl AsRef, dest: impl AsRef) -> Result<(), io::Error> { - let source = source.as_ref(); - let dest = dest.as_ref().join(source.file_name().unwrap()); - assert!(source.is_dir()); - fn copy_inner(source: &Path, dest: &Path) -> Result<(), io::Error> { - fs::create_dir_all(dest)?; - for entry in fs::read_dir(source)? { - let entry = entry?; - let new_dest = dest.join(entry.file_name()); - if entry.file_type()?.is_dir() { - copy_inner(&entry.path(), &new_dest)?; - } else { - fs::copy(entry.path(), &new_dest)?; - } - } - Ok(()) - } - copy_inner(source, &dest) -} - -pub fn main() -> eyre::Result<()> { - let blog = Generator::new("public", "content")?; - - blog.render()?; - - Ok(()) -} - -#[test] -fn snapshot() { - let _ = std::fs::remove_dir_all(concat!(env!("CARGO_MANIFEST_DIR"), "/public")); - main().unwrap(); - let timestamped_files = ["releases.json", "feed.xml"]; - let inexplicably_non_deterministic_files = ["images/2023-08-rust-survey-2022/experiences.png"]; - insta::glob!("..", "public/**/*", |path| { - if path.is_dir() { - return; - } - let path = path.display().to_string(); - if timestamped_files - .into_iter() - .chain(inexplicably_non_deterministic_files) - .any(|f| path.ends_with(f)) - { - // Skip troublesome files, e.g. they might contain timestamps. - // If possible, they are tested separately below. - return; - } - let content = fs::read(path).unwrap(); - // insta can't deal with non-utf8 strings? - let content = String::from_utf8_lossy(&content).into_owned(); - insta::assert_snapshot!(content); - }); - - // test files with timestamps filtered - insta::with_settings!({filters => vec![ - (r"\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\+\d{2}:\d{2}", "(filtered timestamp)"), - ]}, { - for file in timestamped_files { - let content = fs::read(format!("public/{file}")).unwrap(); - let content = String::from_utf8_lossy(&content).into_owned(); - insta::assert_snapshot!(content); - } - }); -} diff --git a/src/posts.rs b/src/posts.rs deleted file mode 100644 index 7d0090c32..000000000 --- a/src/posts.rs +++ /dev/null @@ -1,145 +0,0 @@ -use eyre::Context; -use front_matter::FrontMatter; -use regex::Regex; -use serde::Serialize; -use std::{ - path::{Path, PathBuf}, - sync::LazyLock, -}; -use toml::value::Date; - -#[derive(Debug, Clone, Serialize)] -pub struct Post { - pub(crate) filename: String, - pub(crate) layout: String, - pub(crate) title: String, - pub(crate) author: String, - pub(crate) year: u16, - pub(crate) show_year: bool, - pub(crate) month: u8, - pub(crate) day: u8, - pub(crate) contents: String, - pub(crate) path: String, - pub(crate) published: String, - pub(crate) updated: String, - pub(crate) release: bool, - pub(crate) has_team: bool, - pub(crate) team: String, - pub(crate) team_url: String, -} - -impl Post { - pub(crate) fn open(path: &Path) -> eyre::Result { - // yeah this might blow up, but it won't - let filename = { - let filename = path.file_name().unwrap().to_str().unwrap().to_string(); - // '@' is used as a disambiguator between file names that were - // previously identical except for the date prefix (which was - // removed). The URL doesn't need the disambiguator, because it has - // the date in it. Also, we must remove it to preserve permalinks. - match filename.split_once('@') { - Some((pre, _)) => format!("{pre}.md"), - None => filename, - } - }; - - let contents = std::fs::read_to_string(path)?; - - let ( - FrontMatter { - author, - title, - release, - team: team_string, - layout, - date: Date { year, month, day }, - .. - }, - contents, - ) = front_matter::parse(&contents) - .with_context(|| format!("failed to parse {filename}"))?; - - let options = comrak::Options { - render: comrak::RenderOptions::builder().unsafe_(true).build(), - extension: comrak::ExtensionOptions::builder() - .header_ids(String::new()) - .strikethrough(true) - .footnotes(true) - .table(true) - .build(), - ..comrak::Options::default() - }; - - let contents = comrak::markdown_to_html(contents, &options); - - // finally, the url. - let mut url = PathBuf::from(&filename); - url.set_extension("html"); - - // this is fine - let url = format!( - "{:04}/{:02}/{:02}/{}", - year, - month, - day, - url.to_str().unwrap() - ); - - let published = build_post_time(year, month, day, 0); - let updated = published.clone(); - - // validate for now that the layout is specified as "post" - match &*layout { - "post" => (), - _ => panic!( - "blog post at path `{}` should have layout `post`", - path.display() - ), - }; - - // If they supplied team, it should look like `team-text ` - let (team, team_url) = team_string.map_or((None, None), |s| { - static R: LazyLock = - LazyLock::new(|| Regex::new(r"(?P[^<]*) <(?P[^>]+)>").unwrap()); - let Some(captures) = R.captures(&s) else { - panic!( - "team from path `{}` should have format `$name <$url>`", - path.display() - ) - }; - ( - Some(captures["name"].to_string()), - Some(captures["url"].to_string()), - ) - }); - - Ok(Self { - filename, - title, - author, - year, - show_year: false, - month, - day, - contents, - path: url, - published, - updated, - release, - layout, - has_team: team.is_some(), - team: team.unwrap_or_default(), - team_url: team_url.unwrap_or_default(), - }) - } - - pub fn set_updated(&mut self, seconds: u32) { - self.updated = build_post_time(self.year, self.month, self.day, seconds); - } -} - -fn build_post_time(year: u16, month: u8, day: u8, seconds: u32) -> String { - let date = chrono::NaiveDate::from_ymd_opt(year.into(), month.into(), day.into()).unwrap(); - let date_time = date.and_hms_opt(0, 0, seconds).unwrap(); - chrono::DateTime::::from_naive_utc_and_offset(date_time, chrono::Utc).to_rfc3339() -} From 3b47be013c195a2046884eaefe931c56c6c85312 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Sat, 5 Apr 2025 00:00:44 +0200 Subject: [PATCH 0907/1024] Update readme with Zola workflow --- .gitignore | 25 ++++++++++++++++--------- README.md | 35 +++++++++-------------------------- 2 files changed, 25 insertions(+), 35 deletions(-) diff --git a/.gitignore b/.gitignore index dbef10ff1..f9989794a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,17 @@ +# generated by MacOS .DS_Store -/target/ -**/*.rs.bk -site -public -static/styles/vendor.css -static/styles/app.css -static/styles/fonts.css -static/styles/noscript.css -src/snapshots + +# cargo output +/target + +# zola output (site is deprecated, but people might still have them lying around) +/site +/public + +# these are old compiled sass files, people might still have them lying arouynd +/static/styles/vendor.css +/static/styles/app.css +/static/styles/fonts.css +/static/styles/noscript.css + +/snapshot/src/snapshots diff --git a/README.md b/README.md index fc1707841..4e99a71dc 100644 --- a/README.md +++ b/README.md @@ -4,34 +4,19 @@ This is the blog of the Rust Programming Language. -It's implemented as a small static site generator, that's deployed to GitHub -Pages via GitHub Actions. +It uses [Zola](https://www.getzola.org/) and is deployed to GitHub Pages via GitHub Actions. ## Building -To build the site locally: +To serve the site locally, first install Zola: (takes a couple minutes) -```console -$ git clone https://github.com/rust-lang/blog.rust-lang.org -$ cd blog.rust-lang.org -$ cargo run +```sh +# using a fork because we rely on a few patches that haven't landed yet +cargo install --locked --git https://github.com/senekor/zola --rev 620bf3c46a39b41db30b1e91756a995bbff84d3a ``` -You could do it in release mode if you'd like, but it's pretty fast in debug. - -From there, the generated HTML will be in a `public` directory. -Open `public/index.html` in your web browser to view the site. - -```console -$ firefox public/index.html -``` - -You can also run a server, if you need to preview your changes on a different machine: - -```console -$ cargo run -p serve -Serving on: http://192.168.123.45:8000 -``` +Now run `zola serve --open`. +The site will be reloaded automatically when you make any changes. ## Contributing @@ -41,9 +26,7 @@ Like everything in Rust, the blog is licensed MIT/Apache 2.0. See the two `LICENSE-*` files for more details. We're also governed by the Rust Code of Conduct, see `CODE_OF_CONDUCT.md` for more. -Please send pull requests to the master branch. If you're trying to do -something big, please open an issue before working on it, so we can make sure -that it's something that will eventually be accepted. +### Writing a new blog post When writing a new blog post, keep in mind the file headers: ```md @@ -76,7 +59,7 @@ You can also run these tests locally for a faster feedback cycle: ``` Consider making a commit with these snapshots, so you can always check the diff of your changes with git: ```sh - git add --force src/snapshots # snapshots are ignored by default + git add --force snapshot/src/snapshots # snapshots are ignored by default git commit --message "WIP add good snapshots" ``` Since we can't merge the snapshots to main, don't forget to drop this commit when opening a pull request. From e4319a04e2f02d7f9a28291366d5e939310e4815 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Tue, 8 Apr 2025 22:01:01 +0200 Subject: [PATCH 0908/1024] Fix organization of stylesheets --- sass/{ => styles}/_tachyons-ext.scss | 0 sass/{ => styles}/app.scss | 0 sass/{ => styles}/fonts.scss | 0 sass/{ => styles}/noscript.scss | 0 templates/headers.html | 3 ++- 5 files changed, 2 insertions(+), 1 deletion(-) rename sass/{ => styles}/_tachyons-ext.scss (100%) rename sass/{ => styles}/app.scss (100%) rename sass/{ => styles}/fonts.scss (100%) rename sass/{ => styles}/noscript.scss (100%) diff --git a/sass/_tachyons-ext.scss b/sass/styles/_tachyons-ext.scss similarity index 100% rename from sass/_tachyons-ext.scss rename to sass/styles/_tachyons-ext.scss diff --git a/sass/app.scss b/sass/styles/app.scss similarity index 100% rename from sass/app.scss rename to sass/styles/app.scss diff --git a/sass/fonts.scss b/sass/styles/fonts.scss similarity index 100% rename from sass/fonts.scss rename to sass/styles/fonts.scss diff --git a/sass/noscript.scss b/sass/styles/noscript.scss similarity index 100% rename from sass/noscript.scss rename to sass/styles/noscript.scss diff --git a/templates/headers.html b/templates/headers.html index 28592d968..521bc4e74 100644 --- a/templates/headers.html +++ b/templates/headers.html @@ -15,7 +15,8 @@ - + + From 0f74926c3df4b119f28f8541a64c8397ebae22d7 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Tue, 8 Apr 2025 22:24:16 +0200 Subject: [PATCH 0909/1024] Fix styling of footnotes The custom site generator used comrak for markdown to html translation while Zola uses pulldown-cmark. One of them uses a
    while the other uses
    +{%- endblock page %} From f0b858fd6428a08fb3c05bd04bf6dbdb22d8b65e Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 16 Apr 2025 17:38:13 +0200 Subject: [PATCH 0938/1024] Point to /releases from main blog --- content/_index.md | 8 ++++++-- content/inside-rust/_index.md | 5 +++-- content/releases/_index.md | 5 +++-- templates/index.html | 5 ++++- templates/releases.html | 5 ++++- 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/content/_index.md b/content/_index.md index 8088b0844..348474b7d 100644 --- a/content/_index.md +++ b/content/_index.md @@ -9,6 +9,10 @@ This is the main Rust blog. \ Rust teams \ use this blog to announce major developments in the world of Rust.""" maintained_by = "the Rust Teams" -see_also_path = "/inside-rust/" -see_also_text = """the "Inside Rust" blog""" +[[extra.see_also]] +path = "/inside-rust/" +text = """the "Inside Rust" blog""" +[[extra.see_also]] +path = "/releases/" +text = "release announcements" +++ diff --git a/content/inside-rust/_index.md b/content/inside-rust/_index.md index adb088406..9cf9438c9 100644 --- a/content/inside-rust/_index.md +++ b/content/inside-rust/_index.md @@ -11,6 +11,7 @@ to follow along with Rust development. The various \ use this blog to post status updates, calls for help, and other \ similar announcements.""" maintained_by = "the Rust Teams" -see_also_path = "/" -see_also_text = "the main Rust blog" +[[extra.see_also]] +path = "/" +text = "the main Rust blog" +++ diff --git a/content/releases/_index.md b/content/releases/_index.md index 43eb13702..a5434660b 100644 --- a/content/releases/_index.md +++ b/content/releases/_index.md @@ -3,6 +3,7 @@ title = "Rust Release Announcements" template = "releases.html" [extra] index_title = "The Rust Release Announcements" -see_also_path = "/" -see_also_text = "the main Rust blog" +[[extra.see_also]] +path = "/" +text = "the main Rust blog" +++ diff --git a/templates/index.html b/templates/index.html index 016f7ad23..786910b4e 100644 --- a/templates/index.html +++ b/templates/index.html @@ -11,7 +11,10 @@

    See also: - {{ section.extra.see_also_text }} + {% for see_also in section.extra.see_also -%} + {% if loop.index0 != 0 %},{% endif %} + {{ see_also.text }} + {%- endfor -%}

    diff --git a/templates/releases.html b/templates/releases.html index 2d1da9c93..6d789db5f 100644 --- a/templates/releases.html +++ b/templates/releases.html @@ -20,7 +20,10 @@

    See also: - {{ section.extra.see_also_text }} + {% for see_also in section.extra.see_also -%} + {% if loop.index0 != 0 %},{% endif %} + {{ see_also.text }} + {%- endfor -%}

    From 4c7b5982a8c584427debea0caf89db146dc986ac Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 16 Apr 2025 17:54:56 +0200 Subject: [PATCH 0939/1024] Remove redundant backlink to main blog --- content/releases/_index.md | 3 --- templates/releases.html | 11 ----------- 2 files changed, 14 deletions(-) diff --git a/content/releases/_index.md b/content/releases/_index.md index a5434660b..e1b678eb2 100644 --- a/content/releases/_index.md +++ b/content/releases/_index.md @@ -3,7 +3,4 @@ title = "Rust Release Announcements" template = "releases.html" [extra] index_title = "The Rust Release Announcements" -[[extra.see_also]] -path = "/" -text = "the main Rust blog" +++ diff --git a/templates/releases.html b/templates/releases.html index 6d789db5f..fcfaa100b 100644 --- a/templates/releases.html +++ b/templates/releases.html @@ -16,17 +16,6 @@

    -
    -
    -

    - See also: - {% for see_also in section.extra.see_also -%} - {% if loop.index0 != 0 %},{% endif %} - {{ see_also.text }} - {%- endfor -%} -

    -
    -
    {% set section = get_section(path="_index.md") -%} From 5caa78983bd78e1cfa3390ebe8dd9a1808459656 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 17 Apr 2025 00:59:12 +0200 Subject: [PATCH 0940/1024] Reduce risk of publishing posts with wrong date (#1581) The date of publication often has to be adjusted at the last minute. This can easily be forgotten. In order to reduce the risk of posts with an incorrect date being published, this commit encourages authors to keep a placeholder date until shortly before publication. A CI check prevents the deployment if a placeholder date is detected. The placeholder date "9999/12/31" is chosen because it shows up at the top of the list of posts during development and it's clearly "invalid". --- .github/workflows/main.yml | 15 +++++++++++++- README.md | 6 +++++- front_matter/src/lib.rs | 42 ++++++++++++++++++++++++++++++-------- 3 files changed, 52 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cedca9cb7..77a70afd6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -42,10 +42,23 @@ jobs: with: path: public + pub_date: + name: Check publication date for placeholder + if: ${{ github.ref == 'refs/heads/master' }} + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + + - run: rustup override set ${{ env.RUST_VERSION }} + - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 + + - run: cargo test -p front_matter -- --include-ignored date_is_set + deploy: if: ${{ github.ref == 'refs/heads/master' }} - needs: build + needs: [pub_date, build] permissions: pages: write diff --git a/README.md b/README.md index 81e5f2fb1..bc2241fea 100644 --- a/README.md +++ b/README.md @@ -33,10 +33,14 @@ You can store your main blog post in `content//index.md`. Images go into the same directory: `content//my_image.png`. Now you can reference that image with a simple relative path: `![alt text](my_image.png)`. +A post's date of publication is embedded in the `path` key of the front matter. +Unless the exact date is known in advance, keep the placeholder (`9999/12/31`) until the post is about to be published. +Don't worry, there's a CI check to prevent a post with a placeholder date from being deployed. + Here is an example of the front matter format: ```md +++ -path = "2015/03/15/some-slug" +path = "9999/12/31/some-slug" title = "Title of the blog post" authors = ["Blog post author (or on behalf of which team)"] description = "(optional)" diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs index 9445d0562..cdf0f9df1 100644 --- a/front_matter/src/lib.rs +++ b/front_matter/src/lib.rs @@ -141,15 +141,7 @@ mod tests { #[test] fn front_matter_is_normalized() { - let repo_root = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(".."); - - let posts = fs::read_dir(repo_root.join("content")) - .unwrap() - .chain(fs::read_dir(repo_root.join("content/inside-rust")).unwrap()) - .map(|p| p.unwrap().path()) - .filter(|p| p.is_file() && p.file_name() != Some("_index.md".as_ref())); - - for post in posts { + for post in all_posts() { let slug = post.file_stem().unwrap().to_str().unwrap(); let inside_rust = post @@ -212,4 +204,36 @@ The post {post} has abnormal front matter. }; } } + + /// This test is run by the merge queue check to make sure a blog post isn't + /// merged before its date of publication is set. The date of a blog post + /// is usually a placeholder (path = "9999/12/31/...") until shortly before + /// it's published. + #[test] + #[ignore] + fn date_is_set() { + for post in all_posts() { + let content = fs::read_to_string(&post).unwrap(); + let (front_matter, _) = parse(&content).unwrap(); + + if front_matter.path.starts_with("9999/12/31") { + panic!( + "\n\ + The post {slug} has a placeholder publication date.\n\ + If you're about to publish it, please set it to today.\n\ + ", + slug = post.file_stem().unwrap().to_str().unwrap(), + ); + } + } + } + + fn all_posts() -> impl Iterator { + let repo_root = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(".."); + fs::read_dir(repo_root.join("content")) + .unwrap() + .chain(fs::read_dir(repo_root.join("content/inside-rust")).unwrap()) + .map(|p| p.unwrap().path()) + .filter(|p| p.is_file() && p.file_name() != Some("_index.md".as_ref())) + } } From f92092f4ac192d34bdb1a3ea2fa9bc587ed7cfe6 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 17 Apr 2025 10:20:03 +0200 Subject: [PATCH 0941/1024] Improve error message in case of invalid path Previously, if blog authors didn't set the path key in the front matter, the error message from Zola was: Filter `nth` received an incorrect type for arg `n`: got `-2` but expected a usize This is misleading, as it doesn't point out the cause of the problem. The new error message makes authors aware of the required path format. --- templates/feed.xml | 1 + templates/index.html | 1 + templates/page.html | 1 + templates/releases.html | 1 + 4 files changed, 4 insertions(+) diff --git a/templates/feed.xml b/templates/feed.xml index dc7b356b8..ae19e1e8f 100644 --- a/templates/feed.xml +++ b/templates/feed.xml @@ -20,6 +20,7 @@ {{ macros::escape_hbs(input=page.title) | safe }} {%- set num_comps = page.components | length %} + {%- if num_comps < 4 %}{{ throw(message="Missing date in 'path' key, required format: '[inside-rust/]YYYY/MM/DD/slug-of-your-choice'") }}{% endif %} {%- set year = page.components | nth(n=num_comps - 4) %} {%- set month = page.components | nth(n=num_comps - 3) %} {%- set day = page.components | nth(n=num_comps - 2) %} diff --git a/templates/index.html b/templates/index.html index 786910b4e..f6c79456c 100644 --- a/templates/index.html +++ b/templates/index.html @@ -27,6 +27,7 @@ {%- set rev_pages = section.pages | reverse %} {%- for page in rev_pages %} {%- set num_comps = page.components | length %} + {%- if num_comps < 4 %}{{ throw(message="Missing date in 'path' key, required format: '[inside-rust/]YYYY/MM/DD/slug-of-your-choice'") }}{% endif %} {%- set year = page.components | nth(n=num_comps - 4) | int %} {%- set month = page.components | nth(n=num_comps - 3) | int %} {%- set day = page.components | nth(n=num_comps - 2) | int %} diff --git a/templates/page.html b/templates/page.html index 76091ddf0..ae6c8e267 100644 --- a/templates/page.html +++ b/templates/page.html @@ -2,6 +2,7 @@ {% extends "layout.html" -%} {% block page -%} {% set num_comps = page.components | length -%} +{% if num_comps < 4 %}{{ throw(message="Missing date in 'path' key, required format: '[inside-rust/]YYYY/MM/DD/slug-of-your-choice'") }}{% endif -%} {% set year = page.components | nth(n=num_comps - 4) | int -%} {% set month = page.components | nth(n=num_comps - 3) | int -%} {% set day = page.components | nth(n=num_comps - 2) | int -%} diff --git a/templates/releases.html b/templates/releases.html index fcfaa100b..5cc1d55c2 100644 --- a/templates/releases.html +++ b/templates/releases.html @@ -26,6 +26,7 @@ {%- set rev_pages = section.pages | reverse %} {%- for page in rev_pages %} {%- set num_comps = page.components | length %} + {%- if num_comps < 4 %}{{ throw(message="Missing date in 'path' key, required format: '[inside-rust/]YYYY/MM/DD/slug-of-your-choice'") }}{% endif %} {%- set year = page.components | nth(n=num_comps - 4) | int %} {%- set month = page.components | nth(n=num_comps - 3) | int %} {%- set day = page.components | nth(n=num_comps - 2) | int %} From 634092d2180bcd86a5dd0c4352e738d097ab1b87 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 17 Apr 2025 10:40:47 +0200 Subject: [PATCH 0942/1024] Validate path format in CI --- front_matter/src/lib.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs index cdf0f9df1..9a4798efe 100644 --- a/front_matter/src/lib.rs +++ b/front_matter/src/lib.rs @@ -109,6 +109,30 @@ pub fn normalize( ); } + // validate format of 'path' + { + let mut path = front_matter.path.as_str(); + let mut rq_fmt = "YYYY/MM/DD/slug-of-your-choice"; + if inside_rust { + rq_fmt = "inside-rust/YYYY/MM/DD/slug-of-your-choice"; + if !path.starts_with("inside-rust/") { + bail!("the path of inside-rust posts must start with 'inside-rust/'"); + } + path = path.trim_start_matches("inside-rust/"); + } + let components = path.split('/').collect::>(); + if components.len() != 4 + || components[0].len() != 4 + || components[0].parse::().is_err() + || components[1].len() != 2 + || components[1].parse::().is_err() + || components[2].len() != 2 + || components[2].parse::().is_err() + { + bail!("invalid 'path' key in front matter, required format: {rq_fmt}"); + } + } + if front_matter.extra.team.is_some() ^ front_matter.extra.team_url.is_some() { bail!("extra.team and extra.team_url must always come in a pair"); } From 284ef6a30175aa096f2cb8434cd7598533bee5e6 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 17 Apr 2025 19:00:50 +0200 Subject: [PATCH 0943/1024] front_matter: fix traversal of content directory The previous approach that only looked for markdown files in content/ and content/inside-rust/ stopped working when we started using Zola's feature of colocating a blog post with its assets. In those cases, the markdown file might be located at content//index.md. --- Cargo.lock | 1 + front_matter/Cargo.toml | 3 +++ front_matter/src/lib.rs | 15 +++++++++------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 550c21469..fb89ce2e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -62,6 +62,7 @@ dependencies = [ "eyre", "serde", "toml", + "walkdir", ] [[package]] diff --git a/front_matter/Cargo.toml b/front_matter/Cargo.toml index 93120b784..4337313e7 100644 --- a/front_matter/Cargo.toml +++ b/front_matter/Cargo.toml @@ -7,3 +7,6 @@ edition = "2024" eyre = "=0.6.12" serde = { version = "=1.0.219", features = ["derive"] } toml = "=0.8.20" + +[dev-dependencies] +walkdir = "2.5.0" diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs index 9a4798efe..3d4c4ff4d 100644 --- a/front_matter/src/lib.rs +++ b/front_matter/src/lib.rs @@ -253,11 +253,14 @@ The post {post} has abnormal front matter. } fn all_posts() -> impl Iterator { - let repo_root = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join(".."); - fs::read_dir(repo_root.join("content")) - .unwrap() - .chain(fs::read_dir(repo_root.join("content/inside-rust")).unwrap()) - .map(|p| p.unwrap().path()) - .filter(|p| p.is_file() && p.file_name() != Some("_index.md".as_ref())) + walkdir::WalkDir::new(concat!(env!("CARGO_MANIFEST_DIR"), "/../content")) + .into_iter() + .filter_map(|e| e.ok().map(|e| e.into_path())) + .filter(|p| { + p.is_file() + && p.extension() == Some("md".as_ref()) + && p.file_name() != Some("_index.md".as_ref()) + && p.file_name() != Some("latest.md".as_ref()) + }) } } From 3fdd2ef1160558ec1dc473e64e13821550e2d7b5 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 17 Apr 2025 19:12:56 +0200 Subject: [PATCH 0944/1024] front_matter: improve error messages --- front_matter/src/lib.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/front_matter/src/lib.rs b/front_matter/src/lib.rs index 3d4c4ff4d..aba00fd10 100644 --- a/front_matter/src/lib.rs +++ b/front_matter/src/lib.rs @@ -175,9 +175,11 @@ mod tests { .contains("content/inside-rust/"); let content = fs::read_to_string(&post).unwrap(); - let (front_matter, rest) = parse(&content).unwrap(); + let (front_matter, rest) = parse(&content).unwrap_or_else(|err| { + panic!("failed to parse {:?}: {err}", post.display()); + }); let normalized = normalize(&front_matter, slug, inside_rust).unwrap_or_else(|err| { - panic!("failed to normalize {:?}: {err}", post.file_name().unwrap()); + panic!("failed to normalize {:?}: {err}", post.display()); }); if front_matter != normalized { From 42888510e0477379b05e28e23851624220bc9a72 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 17 Apr 2025 19:16:05 +0200 Subject: [PATCH 0945/1024] Add missing release aliases These were previously missed because the front matter validation tests did not descend into the individual directories of posts with colocated assets. --- content/Rust-1.12/index.md | 5 ++++- content/Rust-1.13/index.md | 5 ++++- content/Rust-1.30.0/index.md | 5 ++++- content/Rust-1.60.0/index.md | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/content/Rust-1.12/index.md b/content/Rust-1.12/index.md index 4870fff60..549e16abd 100644 --- a/content/Rust-1.12/index.md +++ b/content/Rust-1.12/index.md @@ -2,7 +2,10 @@ path = "2016/09/29/Rust-1.12" title = "Announcing Rust 1.12" authors = ["The Rust Core Team"] -aliases = ["2016/09/29/Rust-1.12.html"] +aliases = [ + "2016/09/29/Rust-1.12.html", + "releases/1.12.0", +] [extra] release = true diff --git a/content/Rust-1.13/index.md b/content/Rust-1.13/index.md index 42afc59cb..ea9175e04 100644 --- a/content/Rust-1.13/index.md +++ b/content/Rust-1.13/index.md @@ -2,7 +2,10 @@ path = "2016/11/10/Rust-1.13" title = "Announcing Rust 1.13" authors = ["The Rust Core Team"] -aliases = ["2016/11/10/Rust-1.13.html"] +aliases = [ + "2016/11/10/Rust-1.13.html", + "releases/1.13.0", +] [extra] release = true diff --git a/content/Rust-1.30.0/index.md b/content/Rust-1.30.0/index.md index 5d89e50ec..daaae637b 100644 --- a/content/Rust-1.30.0/index.md +++ b/content/Rust-1.30.0/index.md @@ -2,7 +2,10 @@ path = "2018/10/25/Rust-1.30.0" title = "Announcing Rust 1.30" authors = ["The Rust Core Team"] -aliases = ["2018/10/25/Rust-1.30.0.html"] +aliases = [ + "2018/10/25/Rust-1.30.0.html", + "releases/1.30.0", +] [extra] release = true diff --git a/content/Rust-1.60.0/index.md b/content/Rust-1.60.0/index.md index 63b3dc8d3..8485c37ed 100644 --- a/content/Rust-1.60.0/index.md +++ b/content/Rust-1.60.0/index.md @@ -2,7 +2,10 @@ path = "2022/04/07/Rust-1.60.0" title = "Announcing Rust 1.60.0" authors = ["The Rust Release Team"] -aliases = ["2022/04/07/Rust-1.60.0.html"] +aliases = [ + "2022/04/07/Rust-1.60.0.html", + "releases/1.60.0", +] [extra] release = true From 00b7b075db459bf597b8ada993104b8a19ec8cec Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Apr 2025 19:46:45 +0200 Subject: [PATCH 0946/1024] Pin Rust crate walkdir to =2.5.0 (#1587) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- front_matter/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/front_matter/Cargo.toml b/front_matter/Cargo.toml index 4337313e7..6528ec48d 100644 --- a/front_matter/Cargo.toml +++ b/front_matter/Cargo.toml @@ -9,4 +9,4 @@ serde = { version = "=1.0.219", features = ["derive"] } toml = "=0.8.20" [dev-dependencies] -walkdir = "2.5.0" +walkdir = "=2.5.0" From 1de8682dad021f8cfad9285f43d73cd633ceb83e Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 17 Apr 2025 10:51:28 +0200 Subject: [PATCH 0947/1024] Move tooling into crates/ directory This seems a little cleaner, especially if more tooling is added in the form of little one-off crates. --- .github/workflows/snapshot_tests.yml | 4 ++-- .gitignore | 2 +- Cargo.toml | 2 +- README.md | 6 +++--- {front_matter => crates/front_matter}/Cargo.toml | 0 {front_matter => crates/front_matter}/src/lib.rs | 2 +- {snapshot => crates/snapshot}/Cargo.toml | 0 {snapshot => crates/snapshot}/src/lib.rs | 4 ++-- 8 files changed, 10 insertions(+), 10 deletions(-) rename {front_matter => crates/front_matter}/Cargo.toml (100%) rename {front_matter => crates/front_matter}/src/lib.rs (99%) rename {snapshot => crates/snapshot}/Cargo.toml (100%) rename {snapshot => crates/snapshot}/src/lib.rs (95%) diff --git a/.github/workflows/snapshot_tests.yml b/.github/workflows/snapshot_tests.yml index f412a2ce3..7061875f4 100644 --- a/.github/workflows/snapshot_tests.yml +++ b/.github/workflows/snapshot_tests.yml @@ -20,6 +20,6 @@ jobs: - run: git fetch --depth 2 - run: git checkout origin/master - name: Generate good snapshots - run: INSTA_OUTPUT=none INSTA_UPDATE=always cargo test -- --include-ignored + run: INSTA_OUTPUT=none INSTA_UPDATE=always cargo test -p snapshot -- --include-ignored - run: git checkout $GITHUB_SHA # merge of master+branch - - run: cargo test -- --include-ignored + - run: INSTA_OUTPUT=none INSTA_UPDATE=no cargo test -p snapshot -- --include-ignored diff --git a/.gitignore b/.gitignore index c97e6b3e0..d0cd697ad 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,4 @@ /static/styles/fonts.css /static/styles/noscript.css -/snapshot/src/snapshots +/crates/snapshot/src/snapshots diff --git a/Cargo.toml b/Cargo.toml index 4650619f6..5f1f17f28 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,3 @@ [workspace] resolver = "3" -members = ["front_matter", "snapshot"] +members = ["crates/front_matter", "crates/snapshot"] diff --git a/README.md b/README.md index bc2241fea..95a7c5f11 100644 --- a/README.md +++ b/README.md @@ -65,16 +65,16 @@ You can also run these tests locally for a faster feedback cycle: - Generate the good snapshots to compare against, usually based off the master branch: ```sh - cargo insta test --accept --include-ignored + cargo insta test -p snapshot --accept --include-ignored ``` Consider making a commit with these snapshots, so you can always check the diff of your changes with git: ```sh - git add --force snapshot/src/snapshots # snapshots are ignored by default + git add --force crates/snapshot/src/snapshots # snapshots are ignored by default git commit --message "WIP add good snapshots" ``` Since we can't merge the snapshots to main, don't forget to drop this commit when opening a pull request. - Compare the output of the branch you're working on with the good snapshots: ```sh - cargo insta test --review --include-ignored + cargo insta test -p snapshot --review --include-ignored ``` diff --git a/front_matter/Cargo.toml b/crates/front_matter/Cargo.toml similarity index 100% rename from front_matter/Cargo.toml rename to crates/front_matter/Cargo.toml diff --git a/front_matter/src/lib.rs b/crates/front_matter/src/lib.rs similarity index 99% rename from front_matter/src/lib.rs rename to crates/front_matter/src/lib.rs index aba00fd10..67bb17220 100644 --- a/front_matter/src/lib.rs +++ b/crates/front_matter/src/lib.rs @@ -255,7 +255,7 @@ The post {post} has abnormal front matter. } fn all_posts() -> impl Iterator { - walkdir::WalkDir::new(concat!(env!("CARGO_MANIFEST_DIR"), "/../content")) + walkdir::WalkDir::new(concat!(env!("CARGO_MANIFEST_DIR"), "/../../content")) .into_iter() .filter_map(|e| e.ok().map(|e| e.into_path())) .filter(|p| { diff --git a/snapshot/Cargo.toml b/crates/snapshot/Cargo.toml similarity index 100% rename from snapshot/Cargo.toml rename to crates/snapshot/Cargo.toml diff --git a/snapshot/src/lib.rs b/crates/snapshot/src/lib.rs similarity index 95% rename from snapshot/src/lib.rs rename to crates/snapshot/src/lib.rs index ccca9eb55..44a78be29 100644 --- a/snapshot/src/lib.rs +++ b/crates/snapshot/src/lib.rs @@ -1,6 +1,6 @@ #[test] fn snapshot() { - std::env::set_current_dir(concat!(env!("CARGO_MANIFEST_DIR"), "/..")).unwrap(); + std::env::set_current_dir(concat!(env!("CARGO_MANIFEST_DIR"), "/../..")).unwrap(); let _ = std::fs::remove_dir_all("public"); let status = std::process::Command::new("zola") .arg("build") @@ -11,7 +11,7 @@ fn snapshot() { let timestamped_files = ["releases.json", "feed.xml"]; let inexplicably_non_deterministic_files = ["2023/08/07/Rust-Survey-2023-Results/experiences.png"]; - insta::glob!("../..", "public/**/*", |path| { + insta::glob!("../../..", "public/**/*", |path| { if path.is_dir() { return; } From 384b4ff2beb6e0cdb4ef7de349ed325422a1052b Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Fri, 18 Apr 2025 17:14:12 +0200 Subject: [PATCH 0948/1024] Document deprecated post description I presume the templates where changed at some point to not use the post description anymore, but I haven't actually looked when and why that happened. --- crates/front_matter/src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/crates/front_matter/src/lib.rs b/crates/front_matter/src/lib.rs index 67bb17220..db169a1a3 100644 --- a/crates/front_matter/src/lib.rs +++ b/crates/front_matter/src/lib.rs @@ -27,6 +27,8 @@ pub struct FrontMatter { pub author: Option, #[serde(default)] pub authors: Vec, + /// Deprecated. Post descriptions are not used anywhere in the templates. + /// (only section descriptions) pub description: Option, /// Used for `releases/X.XX.X` redirects and ones from the old URL scheme to /// preserve permalinks (e.g. slug.html => slug/). From 7c8c7f2114035eb2ad48b29bc3d82b14299af6c7 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 17 Apr 2025 11:05:13 +0200 Subject: [PATCH 0949/1024] front_matter: skip serializing empty aliases --- crates/front_matter/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/front_matter/src/lib.rs b/crates/front_matter/src/lib.rs index db169a1a3..396ccb2d8 100644 --- a/crates/front_matter/src/lib.rs +++ b/crates/front_matter/src/lib.rs @@ -32,7 +32,7 @@ pub struct FrontMatter { pub description: Option, /// Used for `releases/X.XX.X` redirects and ones from the old URL scheme to /// preserve permalinks (e.g. slug.html => slug/). - #[serde(default)] + #[serde(default, skip_serializing_if = "Vec::is_empty")] pub aliases: Vec, /// Moved to the `extra` table. #[serde(default, skip_serializing)] From 8d5ab1ab73a869d371dea33762db2cf148faf350 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Fri, 18 Apr 2025 22:33:41 +0200 Subject: [PATCH 0950/1024] Add blog post generator This makes it easier for blog authors to get started without having to figure out the front matter format first. All they have to do is run `cargo blog`. The generator asks all relevant questions to generate valid and complete front matter. --- .cargo/config.toml | 2 + Cargo.lock | 347 ++++++++++++++++++++++++++++++- Cargo.toml | 2 +- README.md | 28 +-- crates/front_matter/src/lib.rs | 7 +- crates/generate_blog/Cargo.toml | 10 + crates/generate_blog/src/main.rs | 221 ++++++++++++++++++++ 7 files changed, 582 insertions(+), 35 deletions(-) create mode 100644 .cargo/config.toml create mode 100644 crates/generate_blog/Cargo.toml create mode 100644 crates/generate_blog/src/main.rs diff --git a/.cargo/config.toml b/.cargo/config.toml new file mode 100644 index 000000000..a9b0b23cc --- /dev/null +++ b/.cargo/config.toml @@ -0,0 +1,2 @@ +[alias] +blog = ["run", "--package", "generate_blog"] diff --git a/Cargo.lock b/Cargo.lock index fb89ce2e0..b7e83d09b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,6 +11,24 @@ dependencies = [ "memchr", ] +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + [[package]] name = "bstr" version = "1.12.0" @@ -21,6 +39,18 @@ dependencies = [ "serde", ] +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + [[package]] name = "console" version = "0.15.11" @@ -30,9 +60,40 @@ dependencies = [ "encode_unicode", "libc", "once_cell", - "windows-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags 1.3.2", + "crossterm_winapi", + "libc", + "mio", + "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi", ] +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "dyn-clone" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" + [[package]] name = "encode_unicode" version = "1.0.0" @@ -65,6 +126,34 @@ dependencies = [ "walkdir", ] +[[package]] +name = "fuzzy-matcher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94" +dependencies = [ + "thread_local", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generate_blog" +version = "0.1.0" +dependencies = [ + "front_matter", + "inquire", + "serde", + "toml", +] + [[package]] name = "globset" version = "0.4.16" @@ -100,6 +189,23 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "inquire" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fddf93031af70e75410a2511ec04d49e758ed2f26dad3404a934e0fb45cc12a" +dependencies = [ + "bitflags 2.9.0", + "crossterm", + "dyn-clone", + "fuzzy-matcher", + "fxhash", + "newline-converter", + "once_cell", + "unicode-segmentation", + "unicode-width", +] + [[package]] name = "insta" version = "1.42.2" @@ -128,6 +234,16 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + [[package]] name = "log" version = "0.4.27" @@ -140,12 +256,56 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "newline-converter" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b6b097ecb1cbfed438542d16e84fd7ad9b0c76c8a65b7f9039212a3d14dc7f" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + [[package]] name = "pin-project" version = "1.1.10" @@ -184,6 +344,15 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "redox_syscall" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" +dependencies = [ + "bitflags 2.9.0", +] + [[package]] name = "regex" version = "1.11.1" @@ -222,6 +391,12 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "serde" version = "1.0.219" @@ -251,12 +426,48 @@ dependencies = [ "serde", ] +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + [[package]] name = "similar" version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" +[[package]] +name = "smallvec" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" + [[package]] name = "snapshot" version = "0.1.0" @@ -275,6 +486,16 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + [[package]] name = "toml" version = "0.8.20" @@ -315,6 +536,18 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + [[package]] name = "walkdir" version = "2.5.0" @@ -325,13 +558,50 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[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.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys", + "windows-sys 0.59.0", +] + +[[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.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", ] [[package]] @@ -340,7 +610,22 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -349,28 +634,46 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -383,24 +686,48 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" diff --git a/Cargo.toml b/Cargo.toml index 5f1f17f28..a534b4374 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,3 +1,3 @@ [workspace] resolver = "3" -members = ["crates/front_matter", "crates/snapshot"] +members = ["crates/front_matter", "crates/generate_blog", "crates/snapshot"] diff --git a/README.md b/README.md index 95a7c5f11..a3c310d8c 100644 --- a/README.md +++ b/README.md @@ -28,29 +28,11 @@ Code of Conduct, see `CODE_OF_CONDUCT.md` for more. ### Writing a new blog post -If you want to include images in your post, please store them in the repository. -You can store your main blog post in `content//index.md`. -Images go into the same directory: `content//my_image.png`. -Now you can reference that image with a simple relative path: `![alt text](my_image.png)`. - -A post's date of publication is embedded in the `path` key of the front matter. -Unless the exact date is known in advance, keep the placeholder (`9999/12/31`) until the post is about to be published. -Don't worry, there's a CI check to prevent a post with a placeholder date from being deployed. - -Here is an example of the front matter format: -```md -+++ -path = "9999/12/31/some-slug" -title = "Title of the blog post" -authors = ["Blog post author (or on behalf of which team)"] -description = "(optional)" -aliases = ["releases/X.XX.X"] # only if the post is a release - -[extra] # optional section -team = "Team Name" # if post is made on behalf of a team -team_url = "https://www.rust-lang.org/governance/teams/..." # required if team is set -release = true # (to be only used for official posts about Rust releases announcements) -+++ +There is an interactive blog post generator that takes care of some boilerplate for you. +To use it, run: + +``` +cargo blog ``` ### Snapshot testing diff --git a/crates/front_matter/src/lib.rs b/crates/front_matter/src/lib.rs index 396ccb2d8..f456c61ed 100644 --- a/crates/front_matter/src/lib.rs +++ b/crates/front_matter/src/lib.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; use toml::value::Date; /// The front matter of a markdown blog post. -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)] pub struct FrontMatter { /// Deprecated. The plan was probably to have more specialized templates /// at some point. That didn't materialize, all posts are rendered with the @@ -139,6 +139,11 @@ pub fn normalize( bail!("extra.team and extra.team_url must always come in a pair"); } + // the crate generate_blog may create this placeholder + if front_matter.aliases.iter().any(|a| a == "releases/?.??.?") { + bail!("invalid release alias: releases/?.??.?"); + } + if front_matter.extra.release && !front_matter.aliases.iter().any(|a| a.contains("releases")) { // Make sure release posts have a matching `releases/X.XX.X` alias. let version = guess_version_from_path(&front_matter.path).unwrap_or("?.??.?".into()); diff --git a/crates/generate_blog/Cargo.toml b/crates/generate_blog/Cargo.toml new file mode 100644 index 000000000..b5dc67b80 --- /dev/null +++ b/crates/generate_blog/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "generate_blog" +version = "0.1.0" +edition = "2024" + +[dependencies] +front_matter = { version = "0.1.0", path = "../front_matter" } +inquire = "0.7.5" +serde = "1.0.219" +toml = "0.8.20" diff --git a/crates/generate_blog/src/main.rs b/crates/generate_blog/src/main.rs new file mode 100644 index 000000000..19e517b8e --- /dev/null +++ b/crates/generate_blog/src/main.rs @@ -0,0 +1,221 @@ +use std::{error::Error, fmt::Display, fs, path::PathBuf, process::Command}; + +use front_matter::FrontMatter; +use inquire::{Confirm, Select, Text, validator::Validation}; + +fn main() -> Result<(), Box> { + println!("\nHi, thanks for writing a post for the Rust blog!\n"); + + let title = Text::new("What's the title of your post?") + .with_validator(|input: &str| { + if input.is_empty() { + return Ok(Validation::Invalid("Title cannot be empty".into())); + } + Ok(Validation::Valid) + }) + .prompt()?; + + let slug = title + .to_lowercase() + .replace(' ', "-") + .chars() + .filter(|c| c.is_ascii_alphanumeric() || ['-', '.'].contains(c)) + .collect::(); + let slug = slug.trim_matches('-').to_string(); + + let blog = Select::new( + "Which blog should the post belong to?", + vec![Blog::Main, Blog::InsideRust], + ) + .prompt()?; + let blog_path = blog.path(); + + let release = if blog == Blog::Main { + Confirm::new("Is this an official Rust release announcement post?") + .with_default(false) + .prompt()? + } else { + false + }; + + let aliases = if !release { + vec![] + } else { + // parse version from title (the front matter tests check against ?.??.?) + let version = try_parse_version_from_title(&title).unwrap_or_else(|| "?.??.?".into()); + vec![format!("releases/{version}")] + }; + + let author = if release { + "The Rust Release Team".into() + } else { + let author_prompt = Text::new("Who's the author of the post?").with_help_message( + "If the post is authored by a team as a whole, write the team name here", + ); + if let Some(git_user) = guess_author_from_git() { + author_prompt.with_initial_value(git_user.trim()).prompt()? + } else { + author_prompt.prompt()? + } + }; + + let (team, team_url) = 'team_prompt: { + if release { + // For official release annoucement posts, the whole + // "Rust Release Team" is usually the author. + break 'team_prompt (None, None); + } + if !Confirm::new("Is the post made on behalf of a team?") + .with_help_message( + "If the main author is already a team instead of an individual, answer No.", + ) + .prompt()? + { + break 'team_prompt (None, None); + } + let team = Text::new("What is the team?").prompt()?; + let url = Text::new("At what URL can people find the team?") + .with_initial_value("https://www.rust-lang.org/governance/teams/") + .prompt()?; + (Some(team), Some(url)) + }; + + let front_matter = FrontMatter { + path: format!("{blog_path}9999/12/31/{slug}"), + title, + authors: vec![author], + aliases, + extra: front_matter::Extra { + team, + team_url, + release, + }, + ..Default::default() + }; + + let contents = format!( + "+++\n{front_matter}+++\n{MARKDOWN_BOILERPLATE}", + front_matter = toml::to_string_pretty(&front_matter).unwrap(), + ); + + let colocate = Confirm::new("Are you planning to include images in the post?") + .with_help_message( + " + To include images in a post, the post will be stored in /index.md, + instead of the usualy .md. Images can then be stored in the directory + / right next to the post itself. They can be included with a relative + link, e.g. ![alt text](my_impage.png). +", + ) + .with_default(false) + .prompt()?; + + let base_path = format!("content/{blog_path}{slug}"); + + let path_ending = if colocate { "/index.md" } else { ".md" }; + + let mut path = PathBuf::from(format!("{base_path}{path_ending}")); + + 'try_write_file: { + if fs::create_dir_all(path.parent().unwrap()).is_ok() + && !path.exists() + && fs::write(&path, &contents).is_ok() + { + break 'try_write_file; + } + // A blog with that slug already exists. Generate an unambiguous path. + for i in 2.. { + path = PathBuf::from(format!("{base_path}@{i}{path_ending}")); + if fs::create_dir_all(path.parent().unwrap()).is_ok() + && !path.exists() + && fs::write(&path, &contents).is_ok() + { + break 'try_write_file; + } + } + } + + let path = path.display(); + println!( + " +Success! A new blog post has been generated at the following path: + +{path} + +Remember: A post's date of publication is embedded in the `path` key of the +front matter. Keep the generated placeholder (9999/12/31) until the exact date +of publication is known. This is to prevent a post with an incorrect date from +being published - CI checks against the placeholder. +" + ); + + Ok(()) +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +enum Blog { + #[default] + Main, + InsideRust, +} + +impl Blog { + fn path(&self) -> &'static str { + match self { + Blog::Main => "", + Blog::InsideRust => "inside-rust/", + } + } +} + +impl Display for Blog { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Blog::Main => write!(f, "The main Rust blog"), + Blog::InsideRust => write!(f, r#"The "Inside Rust" blog"#), + } + } +} + +fn try_parse_version_from_title(title: &str) -> Option { + // assuming there won't ever be a Rust 2.0 + let (_, rest) = title.split_once("1.")?; + let (minor, rest) = rest.split_once('.')?; + let patch = rest + .get(0..1) + .and_then(|c| c.parse::().ok()) + .unwrap_or_default(); + Some(format!("1.{minor}.{patch}")) +} + +fn guess_author_from_git() -> Option { + String::from_utf8( + Command::new("git") + .args(["config", "get", "user.name"]) + .output() + .ok()? + .stdout, + ) + .ok() +} + +const MARKDOWN_BOILERPLATE: &str = " +**insert your content here** + +If you're wondering about available Markdown features, the blog is rendered with [Zola]. +Here's an excerpt from its documentation: + +> Content is written in [CommonMark], a strongly defined, highly compatible specification of [Markdown]. +> Zola uses [pulldown-cmark] to parse markdown files. +> The goal of this library is 100% compliance with the CommonMark spec. +> It adds a few additional features such as parsing [footnotes], Github flavored [tables], Github flavored [task lists] and [strikethrough]. + +[Zola]: https://www.getzola.org/documentation/getting-started/overview/ +[CommonMark]: https://commonmark.org/ +[Markdown]: https://www.markdownguide.org/ +[pulldown-cmark]: https://github.com/raphlinus/pulldown-cmark#pulldown-cmark +[footnotes]: https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#footnotes +[tables]: https://github.github.com/gfm/#tables-extension- +[task lists]: https://github.github.com/gfm/#task-list-items-extension- +[strikethrough]: https://github.github.com/gfm/#strikethrough-extension- +"; From cacae9ba7e03ef27560b69be8a3e41c91e859bd1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Apr 2025 11:13:19 +0200 Subject: [PATCH 0951/1024] Lock file maintenance (#1590) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fb89ce2e0..c1440301a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -118,9 +118,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.171" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "linked-hash-map" @@ -168,9 +168,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] From 67c0421da7ccc8049ce28706360584c02d7251f2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Apr 2025 19:30:10 +0200 Subject: [PATCH 0952/1024] Pin dependencies (#1591) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- crates/generate_blog/Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/generate_blog/Cargo.toml b/crates/generate_blog/Cargo.toml index b5dc67b80..d53d40e6c 100644 --- a/crates/generate_blog/Cargo.toml +++ b/crates/generate_blog/Cargo.toml @@ -5,6 +5,6 @@ edition = "2024" [dependencies] front_matter = { version = "0.1.0", path = "../front_matter" } -inquire = "0.7.5" -serde = "1.0.219" -toml = "0.8.20" +inquire = "=0.7.5" +serde = "=1.0.219" +toml = "=0.8.20" From d8bd991e7d247e6860f927ea198571ff9ad14c58 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" Date: Tue, 22 Apr 2025 09:57:52 -0400 Subject: [PATCH 0953/1024] April Project Directors update --- .../inside-rust/project-director-update@4.md | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 content/inside-rust/project-director-update@4.md diff --git a/content/inside-rust/project-director-update@4.md b/content/inside-rust/project-director-update@4.md new file mode 100644 index 000000000..ba6ded58c --- /dev/null +++ b/content/inside-rust/project-director-update@4.md @@ -0,0 +1,38 @@ ++++ +path = "inside-rust/2025/04/22/project-director-update" +title = "April 2025 Project Director Update" +authors = ["Carol Nichols"] +aliases = ["inside-rust/2025/04/22/project-director-update.html"] + +[extra] +team = "Rust Foundation Project Directors" +team_url = "https://foundation.rust-lang.org/about/" ++++ + +This is the fifth blog post in [the series started December +2024](https://blog.rust-lang.org/inside-rust/2024/12/17/project-director-update.html) where us Rust +Foundation Project Directors will be sharing the highlights from last month’s Rust Foundation Board +meeting. You’ll find the [full March 2025 +minutes](https://rustfoundation.org/resource/march-2025-board-meeting/) on the Rust Foundation’s +site! + +Highlights from the March meeting include: + +* The 2025 Foundation budget is in good shape, but Bec and other Foundation staff are working on + ensuring the Foundation can continue funding efforts similarly in 2026 amidst the economic + uncertainty much of the world is also facing right now. The Foundation is always looking for more + members; if you’re reading this and the company you work for uses Rust and isn’t yet a member, + [please reach out](https://rustfoundation.org/get-involved/)! +* Jon Bauman attended the ISO C++ meeting as part of [his work on the C++ interoperability + initiative][cplusplus], and as a result, some C++ committee members will be attending [Rust + Week](https://rustweek.org/) in May to continue the collaboration! +* Speaking of Rust Week, the Foundation has awarded around 30 travel grants for Rust Project + members to attend. Thank you for this support! + +[cplusplus]: https://rustfoundation.org/media/welcoming-rust-c-interoperability-engineer-jon-bauman-to-the-rust-foundation-team/ + +As always, if you have any comments, questions, or suggestions, please +email all of the project directors via project-directors at rust-lang.org or join us in [the +#foundation channel on the Rust Zulip][foundation-zulip]. + +[foundation-zulip]: https://rust-lang.zulipchat.com/#narrow/channel/335408-foundation From e8c41d7917ad81c16d90219b00f92c28b12802c0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 26 Apr 2025 00:28:38 +0200 Subject: [PATCH 0954/1024] Update Rust crate toml to v0.8.21 (#1594) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 19 +++++++++++++------ crates/front_matter/Cargo.toml | 2 +- crates/generate_blog/Cargo.toml | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 676944b61..585625c43 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -498,9 +498,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.20" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +checksum = "900f6c86a685850b1bc9f6223b20125115ee3f31e01207d81655bbcc0aea9231" dependencies = [ "serde", "serde_spanned", @@ -510,26 +510,33 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "10558ed0bd2a1562e630926a2d1f0b98c827da99fabd3fe20920a59642504485" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", + "toml_write", "winnow", ] +[[package]] +name = "toml_write" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28391a4201ba7eb1984cfeb6862c0b3ea2cfe23332298967c749dddc0d6cd976" + [[package]] name = "unicode-ident" version = "1.0.18" diff --git a/crates/front_matter/Cargo.toml b/crates/front_matter/Cargo.toml index 6528ec48d..471a60552 100644 --- a/crates/front_matter/Cargo.toml +++ b/crates/front_matter/Cargo.toml @@ -6,7 +6,7 @@ edition = "2024" [dependencies] eyre = "=0.6.12" serde = { version = "=1.0.219", features = ["derive"] } -toml = "=0.8.20" +toml = "=0.8.21" [dev-dependencies] walkdir = "=2.5.0" diff --git a/crates/generate_blog/Cargo.toml b/crates/generate_blog/Cargo.toml index d53d40e6c..3e7bd22d3 100644 --- a/crates/generate_blog/Cargo.toml +++ b/crates/generate_blog/Cargo.toml @@ -7,4 +7,4 @@ edition = "2024" front_matter = { version = "0.1.0", path = "../front_matter" } inquire = "=0.7.5" serde = "=1.0.219" -toml = "=0.8.20" +toml = "=0.8.21" From 4ebe8c1843c1259c5ef25ff4c8f136ebae89c087 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 26 Apr 2025 00:31:34 +0200 Subject: [PATCH 0955/1024] Update Rust crate insta to v1.43.0 (#1595) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 32 ++------------------------------ crates/snapshot/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 585625c43..d41e299f0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -208,15 +208,13 @@ dependencies = [ [[package]] name = "insta" -version = "1.42.2" +version = "1.43.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50259abbaa67d11d2bcafc7ba1d094ed7a0c70e3ce893f0d0997f73558cb3084" +checksum = "ab2d11b2f17a45095b8c3603928ba29d7d918d7129d0d0641a36ba73cf07daa6" dependencies = [ "console", "globset", - "linked-hash-map", "once_cell", - "pin-project", "regex", "similar", "walkdir", @@ -228,12 +226,6 @@ version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "lock_api" version = "0.4.12" @@ -306,26 +298,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "proc-macro2" version = "1.0.95" diff --git a/crates/snapshot/Cargo.toml b/crates/snapshot/Cargo.toml index 7249edfb2..96dd3a95d 100644 --- a/crates/snapshot/Cargo.toml +++ b/crates/snapshot/Cargo.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024" [dev-dependencies] -insta = { version = "=1.42.2", features = ["filters", "glob"] } +insta = { version = "=1.43.0", features = ["filters", "glob"] } From 0b154c11ba056337a423398e42c618b0c61bdb0a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 29 Apr 2025 01:31:40 +0200 Subject: [PATCH 0956/1024] Update Rust crate toml to v0.8.22 (#1597) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 12 ++++++------ crates/front_matter/Cargo.toml | 2 +- crates/generate_blog/Cargo.toml | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d41e299f0..b37f784fd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -470,9 +470,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.21" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900f6c86a685850b1bc9f6223b20125115ee3f31e01207d81655bbcc0aea9231" +checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" dependencies = [ "serde", "serde_spanned", @@ -491,9 +491,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.25" +version = "0.22.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10558ed0bd2a1562e630926a2d1f0b98c827da99fabd3fe20920a59642504485" +checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" dependencies = [ "indexmap", "serde", @@ -505,9 +505,9 @@ dependencies = [ [[package]] name = "toml_write" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28391a4201ba7eb1984cfeb6862c0b3ea2cfe23332298967c749dddc0d6cd976" +checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" [[package]] name = "unicode-ident" diff --git a/crates/front_matter/Cargo.toml b/crates/front_matter/Cargo.toml index 471a60552..77c5b4d65 100644 --- a/crates/front_matter/Cargo.toml +++ b/crates/front_matter/Cargo.toml @@ -6,7 +6,7 @@ edition = "2024" [dependencies] eyre = "=0.6.12" serde = { version = "=1.0.219", features = ["derive"] } -toml = "=0.8.21" +toml = "=0.8.22" [dev-dependencies] walkdir = "=2.5.0" diff --git a/crates/generate_blog/Cargo.toml b/crates/generate_blog/Cargo.toml index 3e7bd22d3..f93180fae 100644 --- a/crates/generate_blog/Cargo.toml +++ b/crates/generate_blog/Cargo.toml @@ -7,4 +7,4 @@ edition = "2024" front_matter = { version = "0.1.0", path = "../front_matter" } inquire = "=0.7.5" serde = "=1.0.219" -toml = "=0.8.21" +toml = "=0.8.22" From aedb9b97d3788f43174d4718a40a187661b92709 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 29 Apr 2025 18:37:30 +0200 Subject: [PATCH 0957/1024] Lock file maintenance (#1596) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b37f784fd..49f40c6ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -421,9 +421,9 @@ dependencies = [ [[package]] name = "signal-hook-registry" -version = "1.4.2" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" dependencies = [ "libc", ] @@ -449,9 +449,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.100" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", @@ -715,9 +715,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" +checksum = "6cb8234a863ea0e8cd7284fcdd4f145233eb00fee02bbdd9861aec44e6477bc5" dependencies = [ "memchr", ] From a9456bcf576f804aa897fe39a41e67243262521c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 30 Apr 2025 10:44:19 +0200 Subject: [PATCH 0958/1024] Add GSoC 2025 selected projects blog post --- content/gsoc-2025-selected-projects.md | 42 ++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 content/gsoc-2025-selected-projects.md diff --git a/content/gsoc-2025-selected-projects.md b/content/gsoc-2025-selected-projects.md new file mode 100644 index 000000000..3d792726f --- /dev/null +++ b/content/gsoc-2025-selected-projects.md @@ -0,0 +1,42 @@ ++++ +path = "2025/05/08/gsoc-2025-selected-projects" +title = "Announcing Google Summer of Code 2025 selected projects" +authors = ["Jakub Beránek"] + +[extra] +team = "the mentorship team" +team_url = "https://www.rust-lang.org/governance/teams/launching-pad#team-mentorship" ++++ + +The Rust Project is [participating][gsoc blog post] in [Google Summer of Code (GSoC) 2025][gsoc] again this year. GSoC is a global program organized by Google that is designed to bring new contributors to the world of open-source. + +In March, we published a list of [GSoC project ideas][project idea list], and started discussing these projects with potential GSoC applicants on our [Zulip][zulip gsoc]. We had many interesting discussions with the potential contributors, and even saw some of them making non-trivial contributions to various Rust Project repositories, even before GSoC officially started! + +After the initial discussions, GSoC applicants prepared and submitted their project proposals. We received 64 proposals this year, almost exactly the same number as last year. We are happy to see that there was again so much interest in our projects. + +A team of mentors primarily composed of Rust Project contributors then thoroughly examined the submitted proposals. GSoC required us to produce a ranked list of the best proposals, which was a challenging task in itself since Rust is a big project with many priorities! Same as last year, we went through several rounds of discussions and considered many factors, such as prior conversations with the given applicant, the quality of their proposal, the importance of the proposed project for the Rust Project and its wider community, but also the availability of mentors, who are often volunteers and thus have limited time available for mentoring. This year, we also took into account if the project topics were related to the [Rust Project Goals][rust project goals]. + +As is usual in GSoC, even though some project topics received multiple proposals[^most-popular], we had to pick only one proposal per project topic. We also had to choose between great proposals targeting different work to avoid overloading a single mentor with multiple projects. + +[^most-popular]: The most popular project topic received seven different proposals! + +In the end, we narrowed the list down to TODO best proposals, which we felt was the maximum amount that we could realistically support with our available mentor pool. We submitted this list and eagerly awaited how many of these TODO proposals would be accepted into GSoC. + +## Selected projects +On the 8th of May, Google has announced the accepted projects. We are happy to announce that TODO proposals out of the TODO that we have submitted were accepted by Google, and will thus participate in Google Summer of Code 2025! Below you can find the list of accepted proposals (in alphabetical order), along with the names of their authors and the assigned mentor(s): + +- **[TODO](TODO)** by TODO, mentored by TODO + +**Congratulations to all applicants whose project was selected!** The mentors are looking forward to working with you on these exciting projects to improve the Rust ecosystem. You can expect to hear from us soon, so that we can start coordinating the work on your GSoC projects. + +We would also like to thank all the applicants whose proposal was sadly not accepted, for their interactions with the Rust community and contributions to various Rust projects. There were some great proposals that did not make the cut, in large part because of limited review capacity. However, even if your proposal was not accepted, we would be happy if you would consider contributing to the projects that got you interested, even outside GSoC! Our [project idea list][project idea list] is still actual and could serve as a general entry point for contributors that would like to work on projects that would help the Rust Project maintainers and the Rust ecosystem. Some of the [Rust Project Goals][rust project goals] are also looking for help. + +There is also a good chance we'll participate in GSoC next year as well (though we can't promise anything at this moment), so we hope to receive your proposals again in the future! + +The accepted GSoC projects will run for several months. After GSoC 2025 finishes (in autumn of 2025), we will publish a blog post in which we will summarize the outcome of the accepted projects. + +[gsoc]: https://summerofcode.withgoogle.com +[gsoc blog post]: https://blog.rust-lang.org/2025/03/03/Rust-participates-in-GSoC-2025.html +[zulip gsoc]: https://rust-lang.zulipchat.com/#narrow/stream/421156-gsoc +[project idea list]: https://github.com/rust-lang/google-summer-of-code +[rust project goals]: https://rust-lang.github.io/rust-project-goals/2025h1/goals.html From f86ab5548a4ffb10668a13b5dd8c8a6e001a5f2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 30 Apr 2025 12:00:07 +0200 Subject: [PATCH 0959/1024] Fix auto completion of username from git (#1600) --- crates/generate_blog/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/generate_blog/src/main.rs b/crates/generate_blog/src/main.rs index 19e517b8e..a691c201d 100644 --- a/crates/generate_blog/src/main.rs +++ b/crates/generate_blog/src/main.rs @@ -191,7 +191,7 @@ fn try_parse_version_from_title(title: &str) -> Option { fn guess_author_from_git() -> Option { String::from_utf8( Command::new("git") - .args(["config", "get", "user.name"]) + .args(["config", "user.name"]) .output() .ok()? .stdout, From 989b65816b200084b3d52de3b2b0030cb51ff2c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 30 Apr 2025 12:10:44 +0200 Subject: [PATCH 0960/1024] Add auto-completion for team names and URLs --- Cargo.lock | 663 +++++++++++++++++++++++++++++++ crates/generate_blog/Cargo.toml | 2 + crates/generate_blog/src/main.rs | 91 ++++- 3 files changed, 753 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 49f40c6ee..2ebd3482f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + [[package]] name = "aho-corasick" version = "1.1.3" @@ -17,6 +23,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "bitflags" version = "1.3.2" @@ -45,6 +57,21 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "cc" +version = "1.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04da6a0d40b948dfc4fa8f5bbf402b0fc1a64a28dbf7d12ffd683550f2c1b63a" +dependencies = [ + "shlex", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -63,6 +90,44 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "cookie" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eac901828f88a5241ee0600950ab981148a18f2f756900ffba1b125ca6a3ef9" +dependencies = [ + "cookie", + "document-features", + "idna", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "time", + "url", +] + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + [[package]] name = "crossterm" version = "0.25.0" @@ -88,6 +153,35 @@ dependencies = [ "winapi", ] +[[package]] +name = "deranged" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "document-features" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" +dependencies = [ + "litrs", +] + [[package]] name = "dyn-clone" version = "1.0.19" @@ -116,6 +210,31 @@ dependencies = [ "once_cell", ] +[[package]] +name = "flate2" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + [[package]] name = "front_matter" version = "0.1.0" @@ -150,8 +269,21 @@ version = "0.1.0" dependencies = [ "front_matter", "inquire", + "rust_team_data", "serde", "toml", + "ureq", +] + +[[package]] +name = "getrandom" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +dependencies = [ + "cfg-if", + "libc", + "wasi", ] [[package]] @@ -173,6 +305,162 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +[[package]] +name = "http" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + [[package]] name = "indenter" version = "0.3.3" @@ -187,6 +475,7 @@ checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", "hashbrown", + "serde", ] [[package]] @@ -220,12 +509,30 @@ dependencies = [ "walkdir", ] +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + [[package]] name = "libc" version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +[[package]] +name = "litemap" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" + +[[package]] +name = "litrs" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" + [[package]] name = "lock_api" version = "0.4.12" @@ -248,6 +555,15 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "miniz_oxide" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +dependencies = [ + "adler2", +] + [[package]] name = "mio" version = "0.8.11" @@ -269,6 +585,12 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "once_cell" version = "1.21.3" @@ -298,6 +620,18 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "proc-macro2" version = "1.0.95" @@ -354,6 +688,76 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "rust_team_data" +version = "1.0.0" +source = "git+https://github.com/rust-lang/team#1dee4c930b063818dd8efa5518059af2fdc920a5" +dependencies = [ + "indexmap", + "serde", +] + +[[package]] +name = "rustls" +version = "0.23.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" +dependencies = [ + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" + +[[package]] +name = "rustls-webpki" +version = "0.103.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + [[package]] name = "same-file" version = "1.0.6" @@ -389,6 +793,18 @@ dependencies = [ "syn", ] +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + [[package]] name = "serde_spanned" version = "0.6.8" @@ -398,6 +814,12 @@ dependencies = [ "serde", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook" version = "0.3.17" @@ -447,6 +869,18 @@ dependencies = [ "insta", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + [[package]] name = "syn" version = "2.0.101" @@ -458,6 +892,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "thread_local" version = "1.1.8" @@ -468,6 +913,47 @@ dependencies = [ "once_cell", ] +[[package]] +name = "time" +version = "0.3.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" + +[[package]] +name = "time-macros" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "toml" version = "0.8.22" @@ -527,6 +1013,80 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "ureq" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7a3e9af6113ecd57b8c63d3cd76a385b2e3881365f1f489e54f49801d0c83ea" +dependencies = [ + "base64", + "cookie_store", + "flate2", + "log", + "percent-encoding", + "rustls", + "rustls-pemfile", + "rustls-pki-types", + "serde", + "serde_json", + "ureq-proto", + "utf-8", + "webpki-roots", +] + +[[package]] +name = "ureq-proto" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fadf18427d33828c311234884b7ba2afb57143e6e7e69fda7ee883b624661e36" +dependencies = [ + "base64", + "http", + "httparse", + "log", +] + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + [[package]] name = "walkdir" version = "2.5.0" @@ -543,6 +1103,15 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "webpki-roots" +version = "0.26.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29aad86cec885cafd03e8305fd727c418e970a521322c91688414d5b8efba16b" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "winapi" version = "0.3.9" @@ -583,6 +1152,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.59.0" @@ -721,3 +1299,88 @@ checksum = "6cb8234a863ea0e8cd7284fcdd4f145233eb00fee02bbdd9861aec44e6477bc5" dependencies = [ "memchr", ] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] diff --git a/crates/generate_blog/Cargo.toml b/crates/generate_blog/Cargo.toml index f93180fae..92343c879 100644 --- a/crates/generate_blog/Cargo.toml +++ b/crates/generate_blog/Cargo.toml @@ -8,3 +8,5 @@ front_matter = { version = "0.1.0", path = "../front_matter" } inquire = "=0.7.5" serde = "=1.0.219" toml = "=0.8.22" +rust_team_data = { git = "https://github.com/rust-lang/team" } +ureq = { version = "3", features = ["rustls", "json"] } diff --git a/crates/generate_blog/src/main.rs b/crates/generate_blog/src/main.rs index 19e517b8e..70a0be49c 100644 --- a/crates/generate_blog/src/main.rs +++ b/crates/generate_blog/src/main.rs @@ -1,11 +1,25 @@ use std::{error::Error, fmt::Display, fs, path::PathBuf, process::Command}; use front_matter::FrontMatter; -use inquire::{Confirm, Select, Text, validator::Validation}; +use inquire::autocompletion::Replacement; +use inquire::{Autocomplete, Confirm, CustomUserError, Select, Text, validator::Validation}; +use rust_team_data::v1::{Team, Teams}; + +const BASE_TEAM_WEBSITE_URL: &str = "https://www.rust-lang.org/governance/teams/"; fn main() -> Result<(), Box> { println!("\nHi, thanks for writing a post for the Rust blog!\n"); + // If we cannot load teams, we won't provide any autocompletion, but the generate + // command should still work. + let team_data = match load_teams() { + Ok(teams) => Some(teams), + Err(error) => { + eprintln!("Cannot download team data: {error}"); + None + } + }; + let title = Text::new("What's the title of your post?") .with_validator(|input: &str| { if input.is_empty() { @@ -73,9 +87,20 @@ fn main() -> Result<(), Box> { { break 'team_prompt (None, None); } - let team = Text::new("What is the team?").prompt()?; + let mut team_prompt = Text::new("What is the team?"); + if let Some(ref teams) = team_data { + team_prompt = team_prompt.with_autocomplete(TeamNames::from_teams(teams)); + } + + let team = team_prompt.prompt()?; + + let prefilled_url = team_data + .as_ref() + .and_then(|teams| find_team_url(teams, &team)) + .unwrap_or_else(|| BASE_TEAM_WEBSITE_URL.to_string()); + let url = Text::new("At what URL can people find the team?") - .with_initial_value("https://www.rust-lang.org/governance/teams/") + .with_initial_value(&prefilled_url) .prompt()?; (Some(team), Some(url)) }; @@ -152,6 +177,66 @@ being published - CI checks against the placeholder. Ok(()) } +fn load_teams() -> Result { + let url = format!("{}/teams.json", rust_team_data::v1::BASE_URL); + let response = ureq::get(url).call().map_err(|e| e.to_string())?; + if response.status() != 200 { + return Err(format!("Cannot download teams data: {}", response.status())); + } + let teams: Teams = response + .into_body() + .read_json() + .map_err(|e| e.to_string())?; + Ok(teams) +} + +fn find_team_url(teams: &Teams, team_name: &str) -> Option { + let team = teams.teams.get(team_name)?; + let top_level_team = find_top_level_team(teams, team); + + // E.g. compiler#team-miri + Some(format!( + "{}{}#team-{team_name}", + BASE_TEAM_WEBSITE_URL, top_level_team.name + )) +} + +fn find_top_level_team<'a>(teams: &'a Teams, team: &'a Team) -> &'a Team { + if team.top_level.unwrap_or(false) { + return team; + } + if let Some(parent) = team.subteam_of.as_ref().and_then(|t| teams.teams.get(t)) { + return find_top_level_team(teams, parent); + } + team +} + +#[derive(Clone)] +struct TeamNames(Vec); + +impl TeamNames { + fn from_teams(teams: &Teams) -> Self { + let names = teams.teams.keys().cloned().collect(); + Self(names) + } +} + +impl Autocomplete for TeamNames { + fn get_suggestions(&mut self, input: &str) -> Result, CustomUserError> { + let mut names = self.0.clone(); + names.retain(|n| n.contains(input)); + Ok(names) + } + + fn get_completion( + &mut self, + _input: &str, + highlighted_suggestion: Option, + ) -> Result { + Ok(highlighted_suggestion) + } +} + #[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] enum Blog { #[default] From 2a8bfaffac6a0a8eafab8c30210c68412eb01ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 30 Apr 2025 12:28:02 +0200 Subject: [PATCH 0961/1024] Print team download error before welcoming the user --- crates/generate_blog/src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/generate_blog/src/main.rs b/crates/generate_blog/src/main.rs index 70a0be49c..8ecdc4d15 100644 --- a/crates/generate_blog/src/main.rs +++ b/crates/generate_blog/src/main.rs @@ -8,8 +8,6 @@ use rust_team_data::v1::{Team, Teams}; const BASE_TEAM_WEBSITE_URL: &str = "https://www.rust-lang.org/governance/teams/"; fn main() -> Result<(), Box> { - println!("\nHi, thanks for writing a post for the Rust blog!\n"); - // If we cannot load teams, we won't provide any autocompletion, but the generate // command should still work. let team_data = match load_teams() { @@ -20,6 +18,8 @@ fn main() -> Result<(), Box> { } }; + println!("\nHi, thanks for writing a post for the Rust blog!\n"); + let title = Text::new("What's the title of your post?") .with_validator(|input: &str| { if input.is_empty() { From 45736bb672405fdd3cfe9e24ce8fd616d48ba129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 30 Apr 2025 13:46:04 +0200 Subject: [PATCH 0962/1024] Do not prompt the user if the team URL was predetermined --- crates/generate_blog/src/main.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/crates/generate_blog/src/main.rs b/crates/generate_blog/src/main.rs index 8ecdc4d15..2331756f1 100644 --- a/crates/generate_blog/src/main.rs +++ b/crates/generate_blog/src/main.rs @@ -94,14 +94,15 @@ fn main() -> Result<(), Box> { let team = team_prompt.prompt()?; - let prefilled_url = team_data + let url = if let Some(url) = team_data .as_ref() - .and_then(|teams| find_team_url(teams, &team)) - .unwrap_or_else(|| BASE_TEAM_WEBSITE_URL.to_string()); - - let url = Text::new("At what URL can people find the team?") - .with_initial_value(&prefilled_url) - .prompt()?; + .and_then(|teams| find_team_url(teams, &team)) { + url + } else { + Text::new("At what URL can people find the team?") + .with_initial_value(&BASE_TEAM_WEBSITE_URL) + .prompt()? + }; (Some(team), Some(url)) }; From 3009fe2f659d855f10bc04b3b9699c1852425145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Wed, 30 Apr 2025 13:48:37 +0200 Subject: [PATCH 0963/1024] Fix lookup of top level team URL Some teams have a custom URL on the website. --- crates/generate_blog/src/main.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/crates/generate_blog/src/main.rs b/crates/generate_blog/src/main.rs index 2331756f1..214e95cf5 100644 --- a/crates/generate_blog/src/main.rs +++ b/crates/generate_blog/src/main.rs @@ -96,11 +96,12 @@ fn main() -> Result<(), Box> { let url = if let Some(url) = team_data .as_ref() - .and_then(|teams| find_team_url(teams, &team)) { + .and_then(|teams| find_team_url(teams, &team)) + { url } else { Text::new("At what URL can people find the team?") - .with_initial_value(&BASE_TEAM_WEBSITE_URL) + .with_initial_value(BASE_TEAM_WEBSITE_URL) .prompt()? }; (Some(team), Some(url)) @@ -194,11 +195,15 @@ fn load_teams() -> Result { fn find_team_url(teams: &Teams, team_name: &str) -> Option { let team = teams.teams.get(team_name)?; let top_level_team = find_top_level_team(teams, team); + let top_level_page = top_level_team + .website_data + .as_ref() + .map(|w| w.page.as_str()) + .unwrap_or_else(|| top_level_team.name.as_str()); // E.g. compiler#team-miri Some(format!( - "{}{}#team-{team_name}", - BASE_TEAM_WEBSITE_URL, top_level_team.name + "{BASE_TEAM_WEBSITE_URL}{top_level_page}#team-{team_name}" )) } From 2b4c1d5cb6d6590638c9d973812e867ea8f2d14f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Thu, 1 May 2025 09:37:59 +0200 Subject: [PATCH 0964/1024] Change review to mentorship Co-authored-by: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com> --- content/gsoc-2025-selected-projects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/gsoc-2025-selected-projects.md b/content/gsoc-2025-selected-projects.md index 3d792726f..2b8ccdc7d 100644 --- a/content/gsoc-2025-selected-projects.md +++ b/content/gsoc-2025-selected-projects.md @@ -29,7 +29,7 @@ On the 8th of May, Google has announced the accepted projects. We are happy to a **Congratulations to all applicants whose project was selected!** The mentors are looking forward to working with you on these exciting projects to improve the Rust ecosystem. You can expect to hear from us soon, so that we can start coordinating the work on your GSoC projects. -We would also like to thank all the applicants whose proposal was sadly not accepted, for their interactions with the Rust community and contributions to various Rust projects. There were some great proposals that did not make the cut, in large part because of limited review capacity. However, even if your proposal was not accepted, we would be happy if you would consider contributing to the projects that got you interested, even outside GSoC! Our [project idea list][project idea list] is still actual and could serve as a general entry point for contributors that would like to work on projects that would help the Rust Project maintainers and the Rust ecosystem. Some of the [Rust Project Goals][rust project goals] are also looking for help. +We would also like to thank all the applicants whose proposal was sadly not accepted, for their interactions with the Rust community and contributions to various Rust projects. There were some great proposals that did not make the cut, in large part because of limited mentorship capacity. However, even if your proposal was not accepted, we would be happy if you would consider contributing to the projects that got you interested, even outside GSoC! Our [project idea list][project idea list] is still actual and could serve as a general entry point for contributors that would like to work on projects that would help the Rust Project maintainers and the Rust ecosystem. Some of the [Rust Project Goals][rust project goals] are also looking for help. There is also a good chance we'll participate in GSoC next year as well (though we can't promise anything at this moment), so we hope to receive your proposals again in the future! From bae17a12e28f2c4bd22170dbbff86ac76588b0d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Thu, 1 May 2025 09:40:22 +0200 Subject: [PATCH 0965/1024] Update text --- content/gsoc-2025-selected-projects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/gsoc-2025-selected-projects.md b/content/gsoc-2025-selected-projects.md index 2b8ccdc7d..900b80694 100644 --- a/content/gsoc-2025-selected-projects.md +++ b/content/gsoc-2025-selected-projects.md @@ -14,7 +14,7 @@ In March, we published a list of [GSoC project ideas][project idea list], and st After the initial discussions, GSoC applicants prepared and submitted their project proposals. We received 64 proposals this year, almost exactly the same number as last year. We are happy to see that there was again so much interest in our projects. -A team of mentors primarily composed of Rust Project contributors then thoroughly examined the submitted proposals. GSoC required us to produce a ranked list of the best proposals, which was a challenging task in itself since Rust is a big project with many priorities! Same as last year, we went through several rounds of discussions and considered many factors, such as prior conversations with the given applicant, the quality of their proposal, the importance of the proposed project for the Rust Project and its wider community, but also the availability of mentors, who are often volunteers and thus have limited time available for mentoring. This year, we also took into account if the project topics were related to the [Rust Project Goals][rust project goals]. +A team of mentors primarily composed of Rust Project contributors then thoroughly examined the submitted proposals. GSoC required us to produce a ranked list of the best proposals, which was a challenging task in itself since Rust is a big project with many priorities! Same as last year, we went through several rounds of discussions and considered many factors, such as prior conversations with the given applicant, the quality of their proposal, the importance of the proposed project for the Rust Project and its wider community, but also the availability of mentors, who are often volunteers and thus have limited time available for mentoring. As is usual in GSoC, even though some project topics received multiple proposals[^most-popular], we had to pick only one proposal per project topic. We also had to choose between great proposals targeting different work to avoid overloading a single mentor with multiple projects. From 5b614095892e78a24ad07c29c31910cd9caebc99 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 12:30:19 +0200 Subject: [PATCH 0966/1024] Pin Rust crate ureq to =3.0.11 (#1602) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- crates/generate_blog/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/generate_blog/Cargo.toml b/crates/generate_blog/Cargo.toml index 92343c879..7fc9607ca 100644 --- a/crates/generate_blog/Cargo.toml +++ b/crates/generate_blog/Cargo.toml @@ -9,4 +9,4 @@ inquire = "=0.7.5" serde = "=1.0.219" toml = "=0.8.22" rust_team_data = { git = "https://github.com/rust-lang/team" } -ureq = { version = "3", features = ["rustls", "json"] } +ureq = { version = "=3.0.11", features = ["rustls", "json"] } From 70ccb6ec4276d4d0c7c1bd92ad7ad7bf099748c2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 May 2025 19:30:19 +0200 Subject: [PATCH 0967/1024] Update Rust crate insta to v1.43.1 (#1598) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- crates/snapshot/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ebd3482f..8a92f44f1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -497,9 +497,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.43.0" +version = "1.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2d11b2f17a45095b8c3603928ba29d7d918d7129d0d0641a36ba73cf07daa6" +checksum = "154934ea70c58054b556dd430b99a98c2a7ff5309ac9891597e339b5c28f4371" dependencies = [ "console", "globset", diff --git a/crates/snapshot/Cargo.toml b/crates/snapshot/Cargo.toml index 96dd3a95d..fbf8abe8f 100644 --- a/crates/snapshot/Cargo.toml +++ b/crates/snapshot/Cargo.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024" [dev-dependencies] -insta = { version = "=1.43.0", features = ["filters", "glob"] } +insta = { version = "=1.43.1", features = ["filters", "glob"] } From 13434fcdb300b3db7a0b9ca2962d27864487a3af Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 1 May 2025 19:50:26 +0200 Subject: [PATCH 0968/1024] Update fork of Zola (#1603) The new version contains a workaround for an issue which is temporarily preventing Zola from compiling in some environments. --- .github/workflows/main.yml | 2 +- .github/workflows/snapshot_tests.yml | 2 +- README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 77a70afd6..8fb737687 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,7 +33,7 @@ jobs: - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 - name: Install Zola - run: cargo install --locked --git https://github.com/senekor/zola --rev 620bf3c46a39b41db30b1e91756a995bbff84d3a + run: cargo install --locked --git https://github.com/senekor/zola --rev 79410eea82f837e4de9b1e4c3905287060b69255 - run: zola build - run: cp CNAME ./public/ - run: touch public/.nojekyll diff --git a/.github/workflows/snapshot_tests.yml b/.github/workflows/snapshot_tests.yml index 7061875f4..d19df8d1f 100644 --- a/.github/workflows/snapshot_tests.yml +++ b/.github/workflows/snapshot_tests.yml @@ -15,7 +15,7 @@ jobs: - run: rustup override set ${{ env.RUST_VERSION }} - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 - name: Install Zola - run: cargo install --locked --git https://github.com/senekor/zola --rev 620bf3c46a39b41db30b1e91756a995bbff84d3a + run: cargo install --locked --git https://github.com/senekor/zola --rev 79410eea82f837e4de9b1e4c3905287060b69255 - run: git fetch --depth 2 - run: git checkout origin/master diff --git a/README.md b/README.md index a3c310d8c..324be0b89 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ To serve the site locally, first install Zola: (takes a couple minutes) ```sh # using a fork because we rely on a few patches that haven't landed yet -cargo install --locked --git https://github.com/senekor/zola --rev 620bf3c46a39b41db30b1e91756a995bbff84d3a +cargo install --locked --git https://github.com/senekor/zola --rev 79410eea82f837e4de9b1e4c3905287060b69255 ``` Now run `zola serve --open`. From 37c317d6195568fc4a103f98a56e7e10caa97c65 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 4 May 2025 14:13:04 -0400 Subject: [PATCH 0969/1024] 1.87.0 announcement --- content/Rust-1.87.0.md | 252 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 content/Rust-1.87.0.md diff --git a/content/Rust-1.87.0.md b/content/Rust-1.87.0.md new file mode 100644 index 000000000..5bb2c9c8c --- /dev/null +++ b/content/Rust-1.87.0.md @@ -0,0 +1,252 @@ ++++ +path = "2025/05/15/Rust-1.87.0" +title = "Announcing Rust 1.87.0" +authors = ["The Rust Release Team"] +aliases = [ + "2025/05/15/Rust-1.87.0.html", + "releases/1.87.0", +] + +[extra] +release = true ++++ + +The Rust team is happy to announce a new version of Rust, 1.87.0. Rust is a programming language empowering everyone to build reliable and efficient software. + +If you have a previous version of Rust installed via `rustup`, you can get 1.87.0 with: + +``` +$ rustup update stable +``` + +If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.87.0](https://doc.rust-lang.org/stable/releases.html#version-1870-2025-04-03). + +If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across! + +## What's in 1.87.0 stable + +### Anonymous pipes + +1.87 adds access to anonymous pipes to the standard library. This includes +integration with `std::process::Command`'s input/output methods. + +As a toy example, this program uses pipes to stream data into `cat` and read the output: + +```rust +use std::process::Command; +use std::io::{pipe, Read, Write}; + +let (ping_rx, mut ping_tx) = pipe()?; +let (mut pong_rx, pong_tx) = pipe()?; + +// Spawn a process that echoes its input. +let mut echo_server = Command::new("cat").stdin(ping_rx).stdout(pong_tx).spawn()?; + +ping_tx.write_all(b"hello")?; +// Close to unblock echo_server's reader. +drop(ping_tx); + +let mut buf = String::new(); +// Block until echo_server's writer is closed. +pong_rx.read_to_string(&mut buf)?; +assert_eq!(&buf, "hello"); + +echo_server.wait()?; +``` + +### Safe architecture intrinsics + +Most `std::arch` intrinsics that are unsafe only due to requiring target +features to be enabled are now callable in safe code that has those features +enabled. For example, the following toy program which implements summing an array using +manual intrinsics can now use safe code for the core loop. + +```rust +#![forbid(unsafe_op_in_unsafe_fn)] + +use std::arch::x86_64::*; + +fn sum(slice: &[u32]) -> u32 { + #[cfg(target_arch = "x86_64")] + { + if is_x86_feature_detected!("avx2") { + // SAFETY: We have detected the feature is enabled at runtime, + // so it's safe to call this function. + return unsafe { sum_avx2(slice) }; + } + } + + slice.iter().sum() +} + +#[target_feature(enable = "avx2")] +#[cfg(target_arch = "x86_64")] +fn sum_avx2(slice: &[u32]) -> u32 { + // SAFETY: __m256i and u32 have the same validity. + let (prefix, middle, tail) = unsafe { slice.align_to::<__m256i>() }; + + let mut sum = prefix.iter().sum::(); + sum += tail.iter().sum::(); + + // Core loop is now fully safe code in 1.87, because the intrinsics require + // matching target features (avx2) to the function definition. + let mut base = _mm256_setzero_si256(); + for e in middle.iter() { + base = _mm256_add_epi32(base, *e); + } + + // SAFETY: __m256i and u32 have the same validity. + let base: [u32; 8] = unsafe { std::mem::transmute(base) }; + sum += base.iter().sum::(); + + sum +} +``` + +### `asm!` jumps to Rust code + +Inline assembly (`asm!`) can now jump to labeled blocks within Rust code. This +enables more flexible low-level programming, such as implementing optimized +control flow in OS kernels or interacting with hardware more efficiently. + +- The `asm!` macro now supports a label operand, which acts as a jump target. +- The label must be a block expression with a return type of `()` or `!`. +- The block executes when jumped to, and execution continues after the `asm!` block. +- Using output and label operands in the same `asm!` invocation remains [unstable](https://github.com/rust-lang/rust/issues/119364). + +```rust +unsafe { + asm!( + "jmp {}", + label { + println!("Jumped from asm!"); + } + ); +} +``` + +For more details, please consult the [reference](https://doc.rust-lang.org/nightly/reference/inline-assembly.html#r-asm.operand-type.supported-operands.label). + +### Precise capturing (`+ use<...>`) in `impl Trait` in trait definitions + +This release stabilizes specifying the specific captured generic types and +lifetimes in trait definitions using `impl Trait` return types. This allows +using this feature in trait definitions, expanding on the stabilization for +non-trait functions in +[1.82](https://blog.rust-lang.org/2024/10/17/Rust-1.82.0/#precise-capturing-use-syntax). + +Some example desugarings: + +```rust +trait Foo { + fn method<'a>(&'a self) -> impl Sized; + + // ... desugars to something like: + type Implicit1<'a>: Sized; + fn method_desugared<'a>(&'a self) -> Self::Implicit1<'a>; + + // ... whereas with precise capturing ... + fn precise<'a>(&'a self) -> impl Sized + use; + + // ... desugars to something like: + type Implicit2: Sized; + fn precise_desugared<'a>(&'a self) -> Self::Implicit2; +} +``` + +### Stabilized APIs + +- [`Vec::extract_if`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.extract_if) +- [`vec::ExtractIf`](https://doc.rust-lang.org/nightly/std/vec/struct.ExtractIf.html) +- [`LinkedList::extract_if`](https://doc.rust-lang.org/nightly/std/collections/struct.LinkedList.html#method.extract_if) +- [`linked_list::ExtractIf`](https://doc.rust-lang.org/nightly/std/collections/linked_list/struct.ExtractIf.html) +- [`<[T]>::split_off`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off) +- [`<[T]>::split_off_mut`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off_mut) +- [`<[T]>::split_off_first`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off_first) +- [`<[T]>::split_off_first_mut`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off_first_mut) +- [`<[T]>::split_off_last`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off_last) +- [`<[T]>::split_off_last_mut`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off_last_mut) +- [`String::extend_from_within`](https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.extend_from_within) +- [`os_str::Display`](https://doc.rust-lang.org/nightly/std/ffi/os_str/struct.Display.html) +- [`OsString::display`](https://doc.rust-lang.org/nightly/std/ffi/struct.OsString.html#method.display) +- [`OsStr::display`](https://doc.rust-lang.org/nightly/std/ffi/struct.OsStr.html#method.display) +- [`io::pipe`](https://doc.rust-lang.org/nightly/std/io/fn.pipe.html) +- [`io::PipeReader`](https://doc.rust-lang.org/nightly/std/io/struct.PipeReader.html) +- [`io::PipeWriter`](https://doc.rust-lang.org/nightly/std/io/struct.PipeWriter.html) +- [`impl From for OwnedHandle`](https://doc.rust-lang.org/nightly/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle) +- [`impl From for OwnedHandle`](https://doc.rust-lang.org/nightly/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle) +- [`impl From for Stdio`](https://doc.rust-lang.org/nightly/std/process/struct.Stdio.html) +- [`impl From for Stdio`](https://doc.rust-lang.org/nightly/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio) +- [`impl From for OwnedFd`](https://doc.rust-lang.org/nightly/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd) +- [`impl From for OwnedFd`](https://doc.rust-lang.org/nightly/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd) +- [`Box>::write`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.write) +- [`impl TryFrom> for String`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#impl-TryFrom%3CVec%3Cu8%3E%3E-for-String) + +These APIs are now stable in const contexts: + +- [`<*const T>::offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.offset_from_unsigned) +- [`<*const T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.byte_offset_from_unsigned) +- [`<*mut T>::offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.offset_from_unsigned-1) +- [`<*mut T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.byte_offset_from_unsigned-1) +- [`NonNull::offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/ptr/struct.NonNull.html#method.offset_from_unsigned) +- [`NonNull::byte_offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/ptr/struct.NonNull.html#method.byte_offset_from_unsigned) +- [`::cast_signed`](https://doc.rust-lang.org/nightly/std/primitive.usize.html#method.cast_signed) +- [`NonZero::::cast_signed`](https://doc.rust-lang.org/nightly/std/num/struct.NonZero.html#method.cast_signed-5). +- [`::cast_signed`](https://doc.rust-lang.org/nightly/std/primitive.isize.html#method.cast_signed). +- [`NonZero::::cast_unsigned`](https://doc.rust-lang.org/nightly/std/num/struct.NonZero.html#method.cast_unsigned-5). +- [`::is_multiple_of`](https://doc.rust-lang.org/nightly/std/primitive.usize.html#method.is_multiple_of) +- [`::unbounded_shl`](https://doc.rust-lang.org/nightly/std/primitive.usize.html#method.unbounded_shl) +- [`::unbounded_shr`](https://doc.rust-lang.org/nightly/std/primitive.usize.html#method.unbounded_shr) +- [`::unbounded_shl`](https://doc.rust-lang.org/nightly/std/primitive.isize.html#method.unbounded_shl) +- [`::unbounded_shr`](https://doc.rust-lang.org/nightly/std/primitive.isize.html#method.unbounded_shr) +- [`::from_utf8`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8) +- [`::from_utf8_mut`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_mut) +- [`::from_utf8_unchecked`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_unchecked) +- [`::from_utf8_unchecked_mut`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_unchecked_mut) +- [`<[T]>::copy_from_slice`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.copy_from_slice) +- [`SocketAddr::set_ip`](https://doc.rust-lang.org/nightly/std/net/enum.SocketAddr.html#method.set_ip) +- [`SocketAddr::set_port`](https://doc.rust-lang.org/nightly/std/net/enum.SocketAddr.html#method.set_port), +- [`SocketAddrV4::set_ip`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV4.html#method.set_ip) +- [`SocketAddrV4::set_port`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV4.html#method.set_port), +- [`SocketAddrV6::set_ip`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_ip) +- [`SocketAddrV6::set_port`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_port) +- [`SocketAddrV6::set_flowinfo`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_flowinfo) +- [`SocketAddrV6::set_scope_id`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_scope_id) +- [`char::is_digit`](https://doc.rust-lang.org/nightly/std/primitive.char.html#method.is_digit) +- [`char::is_whitespace`](https://doc.rust-lang.org/nightly/std/primitive.char.html#method.is_whitespace) +- [`:midpoint`](https://doc.rust-lang.org/std/primitive.isize.html#method.midpoint) +- [`<[[T; N]]>::as_flattened`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.as_flattened) +- [`<[[T; N]]>::as_flattened_mut`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.as_flattened_mut) +- [`::from_utf8_mut`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_mut) +- [`core::str::from_utf8_mut`](https://doc.rust-lang.org/nightly/std/str/fn.from_utf8_mut.html) +- [`String::into_bytes`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.into_bytes) +- [`String::as_str`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_str) +- [`String::capacity`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.capacity) +- [`String::as_bytes`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_bytes) +- [`String::len`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.len) +- [`String::is_empty`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.is_empty) +- [`String::as_mut_str`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_mut_str) +- [`String::as_mut_vec`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_mut_vec) +- [`Vec::as_ptr`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_ptr-1) +- [`Vec::as_slice`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_slice) +- [`Vec::capacity`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.capacity) +- [`Vec::len`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.len) +- [`Vec::is_empty`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.is_empty) +- [`Vec::as_mut_slice`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_mut_slice) +- [`Vec::as_mut_ptr`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_mut_ptr) + +### `i586-pc-windows-msvc` target removal + +The tier-2 target `i586-pc-windows-msvc` has been removed. Its difference to the much more popular `i686-pc-windows-msvc` is that it does not require SSE2 instruction support, but Windows 10, the minimum required OS version of all `windows` targets (except the `win7` targets), requires SSE2 instructions itself. + +All users currently targeting `i586-pc-windows-msvc` should migrate to `i686-pc-windows-msvc`. + +You can check the [Major Change Proposal](https://github.com/rust-lang/compiler-team/issues/840) for more information. + +### Other changes + +Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.87.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-187-2025-05-15), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-187). + +## Contributors to 1.87.0 + +Many people came together to create Rust 1.87.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.87.0/) From 3f11cdd662976cd547a1290f21f4ea623eb2f94e Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 4 May 2025 15:37:43 -0400 Subject: [PATCH 0970/1024] Stdout/stderr merging example --- content/Rust-1.87.0.md | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/content/Rust-1.87.0.md b/content/Rust-1.87.0.md index 5bb2c9c8c..562651186 100644 --- a/content/Rust-1.87.0.md +++ b/content/Rust-1.87.0.md @@ -28,30 +28,29 @@ If you'd like to help us out by testing future releases, you might consider upda ### Anonymous pipes 1.87 adds access to anonymous pipes to the standard library. This includes -integration with `std::process::Command`'s input/output methods. - -As a toy example, this program uses pipes to stream data into `cat` and read the output: +integration with `std::process::Command`'s input/output methods. For example, +joining the stdout and stderr streams into one is now relatively +straightforward, as shown below, while it used to require either extra threads +or platform-specific functions. ```rust use std::process::Command; -use std::io::{pipe, Read, Write}; - -let (ping_rx, mut ping_tx) = pipe()?; -let (mut pong_rx, pong_tx) = pipe()?; +use std::io::Read; -// Spawn a process that echoes its input. -let mut echo_server = Command::new("cat").stdin(ping_rx).stdout(pong_tx).spawn()?; +let (mut recv, send) = std::io::pipe()?; -ping_tx.write_all(b"hello")?; -// Close to unblock echo_server's reader. -drop(ping_tx); +let mut command = Command::new("path/to/bin") + // Both stdout and stderr will write to the same pipe, combining the two. + .stdout(send.try_clone()?) + .stderr(send) + .spawn()?; -let mut buf = String::new(); -// Block until echo_server's writer is closed. -pong_rx.read_to_string(&mut buf)?; -assert_eq!(&buf, "hello"); +let mut output = Vec::new(); +recv.read_to_end(&mut output)?; -echo_server.wait()?; +// It's important that we read from the pipe before the process exits, to avoid +// filling the OS buffers if the program emits too much output. +assert!(command.wait()?.success()); ``` ### Safe architecture intrinsics From ae452c70a94f44743f4f521e78f8fc3d56b08a2d Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 4 May 2025 15:38:44 -0400 Subject: [PATCH 0971/1024] Update content/Rust-1.87.0.md Co-authored-by: alexey semenyuk --- content/Rust-1.87.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Rust-1.87.0.md b/content/Rust-1.87.0.md index 562651186..4b6a5de59 100644 --- a/content/Rust-1.87.0.md +++ b/content/Rust-1.87.0.md @@ -226,7 +226,7 @@ These APIs are now stable in const contexts: - [`String::is_empty`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.is_empty) - [`String::as_mut_str`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_mut_str) - [`String::as_mut_vec`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_mut_vec) -- [`Vec::as_ptr`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_ptr-1) +- [`Vec::as_ptr`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_ptr) - [`Vec::as_slice`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_slice) - [`Vec::capacity`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.capacity) - [`Vec::len`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.len) From 90603c8b8fa48201144e03ef6248f09cc150358e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 May 2025 12:03:21 +0200 Subject: [PATCH 0972/1024] Lock file maintenance (#1605) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8a92f44f1..4b7348e6b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -65,9 +65,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.20" +version = "1.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04da6a0d40b948dfc4fa8f5bbf402b0fc1a64a28dbf7d12ffd683550f2c1b63a" +checksum = "8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0" dependencies = [ "shlex", ] @@ -301,9 +301,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" [[package]] name = "http" @@ -652,9 +652,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" +checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ "bitflags 2.9.0", ] @@ -705,7 +705,7 @@ dependencies = [ [[package]] name = "rust_team_data" version = "1.0.0" -source = "git+https://github.com/rust-lang/team#1dee4c930b063818dd8efa5518059af2fdc920a5" +source = "git+https://github.com/rust-lang/team#60c6c4083e615ba753557cbd4999a3cf2a725587" dependencies = [ "indexmap", "serde", @@ -894,9 +894,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", @@ -1105,9 +1105,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "webpki-roots" -version = "0.26.9" +version = "0.26.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29aad86cec885cafd03e8305fd727c418e970a521322c91688414d5b8efba16b" +checksum = "37493cadf42a2a939ed404698ded7fb378bf301b5011f973361779a3a74f8c93" dependencies = [ "rustls-pki-types", ] @@ -1293,9 +1293,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.7" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb8234a863ea0e8cd7284fcdd4f145233eb00fee02bbdd9861aec44e6477bc5" +checksum = "d9fb597c990f03753e08d3c29efbfcf2019a003b4bf4ba19225c158e1549f0f3" dependencies = [ "memchr", ] From 8576ac503a18856ef8d5cd0e11a392860fc7e6d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Mon, 5 May 2025 12:06:21 +0200 Subject: [PATCH 0973/1024] Let people choose team label in blog generation (#1606) --- crates/generate_blog/src/main.rs | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/crates/generate_blog/src/main.rs b/crates/generate_blog/src/main.rs index 499502f39..8063c061c 100644 --- a/crates/generate_blog/src/main.rs +++ b/crates/generate_blog/src/main.rs @@ -92,12 +92,23 @@ fn main() -> Result<(), Box> { team_prompt = team_prompt.with_autocomplete(TeamNames::from_teams(teams)); } - let team = team_prompt.prompt()?; + let mut team = team_prompt.prompt()?; let url = if let Some(url) = team_data .as_ref() .and_then(|teams| find_team_url(teams, &team)) { + // At this point, a canonical team has been selected, and we have a URL for it. + // This should be the common "happy path". + // However, displaying the canonical team name in the blog heading is not ideal, usually + // users will want to modify it slightly, so give them the option. + let normalized = normalize_team_name(team); + let team_label = format!("the {normalized} team"); + let team_label = Text::new("What text should be used after 'on behalf of'?") + .with_initial_value(&team_label) + .prompt()?; + team = team_label; + url } else { Text::new("At what URL can people find the team?") @@ -179,6 +190,22 @@ being published - CI checks against the placeholder. Ok(()) } +/// Normalizes team name to be human readable, e.g. `leadership-council` => `Leadership Council`. +fn normalize_team_name(name: String) -> String { + name.split("-") + .map(|part| { + // Capitalize the string + part.chars() + .next() + .into_iter() + .flat_map(|c| c.to_uppercase()) + .chain(part.chars().skip(1)) + .collect::() + }) + .collect::>() + .join(" ") +} + fn load_teams() -> Result { let url = format!("{}/teams.json", rust_team_data::v1::BASE_URL); let response = ureq::get(url).call().map_err(|e| e.to_string())?; From 62bb29588fd06612118e941c52d3a77c306d6373 Mon Sep 17 00:00:00 2001 From: rami3l Date: Mon, 5 May 2025 21:03:17 +0800 Subject: [PATCH 0974/1024] posts: announce rustup 1.28.2 (#1593) * posts: announce rustup 1.28.2 * Update publish date --------- Co-authored-by: Mark Rousskov --- content/Rustup-1.28.2.md | 85 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 content/Rustup-1.28.2.md diff --git a/content/Rustup-1.28.2.md b/content/Rustup-1.28.2.md new file mode 100644 index 000000000..f10535f88 --- /dev/null +++ b/content/Rustup-1.28.2.md @@ -0,0 +1,85 @@ ++++ +path = "2025/05/05/Rustup-1.28.2" +title = "Announcing rustup 1.28.2" +authors = ["The Rustup Team"] +aliases = ["2025/05/05/Rustup-1.28.2.html"] ++++ + +The rustup team is happy to announce the release of rustup version 1.28.2. +[Rustup][install] is the recommended tool to install [Rust][rust], a programming language that +empowers everyone to build reliable and efficient software. + +## What's new in rustup 1.28.2 + +The headlines of this release are: + +- The cURL download backend and the native-tls TLS backend are now officially deprecated and + a warning will start to show up when they are used. [pr#4277] + + - While rustup predates reqwest and rustls, the rustup team has long wanted to standardize on + an HTTP + TLS stack with more components in Rust, which should increase security, potentially + improve performance, and simplify maintenance of the project. + With the default download backend already switched to reqwest since [2019][pr#1660], the team + thinks it is time to focus maintenance on the default stack powered by these two libraries. + + - For people who have set `RUSTUP_USE_CURL=1` or `RUSTUP_USE_RUSTLS=0` in their environment to + work around issues with rustup, please try to unset these after upgrading to 1.28.2 and file + [an issue][issue tracker] if you still encounter problems. + +- The version of `rustup` can be pinned when installing via `rustup-init.sh`, and + `rustup self update` can be used to upgrade/downgrade rustup 1.28.2+ to a given version. + To do so, set the `RUSTUP_VERSION` environment variable to the desired version (for example `1.28.2`). + [pr#4259] + +- `rustup set auto-install disable` can now be used to disable automatic installation of the toolchain. + This is similar to the `RUSTUP_AUTO_INSTALL` environment variable introduced in 1.28.1 but with a + lower priority. [pr#4254] + +- Fixed a bug in Nushell integration that might generate invalid commands in the shell configuration. + Reinstalling rustup might be required for the fix to work. [pr#4265] + +[pr#1660]: https://github.com/rust-lang/rustup/pull/1660 +[pr#4254]: https://github.com/rust-lang/rustup/pull/4254 +[pr#4259]: https://github.com/rust-lang/rustup/pull/4259 +[pr#4265]: https://github.com/rust-lang/rustup/pull/4265 +[pr#4277]: https://github.com/rust-lang/rustup/pull/4277 +[issue tracker]: https://github.com/rust-lang/rustup/issues/ + +## How to update + +If you have a previous version of rustup installed, getting the new one is as easy as stopping +any programs which may be using rustup (e.g. closing your IDE) and running: + +``` +$ rustup self update +``` + +Rustup will also automatically update itself at the end of a normal toolchain update: + +``` +$ rustup update +``` + +If you don't have it already, you can [get rustup][install] from the appropriate page on our website. + +Rustup's documentation is also available in [the rustup book][book]. + +## Caveats + +Rustup releases can come with problems not caused by rustup itself but just due to having a new release. + +In particular, anti-malware scanners might block rustup or stop it from creating or copying +files, especially when installing `rust-docs` which contains many small files. + +Issues like this should be automatically resolved in a few weeks when the anti-malware scanners are updated +to be aware of the new rustup release. + +## Thanks + +Thanks again to all the [contributors] who made this rustup release possible! + +[book]: https://rust-lang.github.io/rustup/ +[changelog]: https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md +[contributors]: https://github.com/rust-lang/rustup/blob/stable/CHANGELOG.md#detailed-changes +[install]: https://rustup.rs +[rust]: https://www.rust-lang.org From f38c5d36271b34eafad9b5aa4610e96eb0f59cb3 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 7 May 2025 22:15:27 +0200 Subject: [PATCH 0975/1024] Link to edit page directly (#1607) Contributors may click on the "fix a typo" link while reading a specific post. When that only leads to the repo, it takes extra effort to find the specific file to edit. Linking to that file directly is more convenient. Even if contributors don't want to use the GitHub editor, it at least tells them the exact path of the file in the repo. --- templates/footer.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/footer.html b/templates/footer.html index 4047b46d2..7dbeda7fb 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -38,7 +38,7 @@

    RSS

    Maintained by the Rust Team. See a typo? - Send a fix here! + Send a fix here!
    From cd6f2388f093b5e6e047e0f37375f580c6583b81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Thu, 8 May 2025 14:35:11 +0200 Subject: [PATCH 0976/1024] Add accepted projects --- content/gsoc-2025-selected-projects.md | 30 +++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/content/gsoc-2025-selected-projects.md b/content/gsoc-2025-selected-projects.md index 900b80694..f127bf7af 100644 --- a/content/gsoc-2025-selected-projects.md +++ b/content/gsoc-2025-selected-projects.md @@ -8,7 +8,7 @@ team = "the mentorship team" team_url = "https://www.rust-lang.org/governance/teams/launching-pad#team-mentorship" +++ -The Rust Project is [participating][gsoc blog post] in [Google Summer of Code (GSoC) 2025][gsoc] again this year. GSoC is a global program organized by Google that is designed to bring new contributors to the world of open-source. +The Rust Project is [participating][gsoc blog post] in [Google Summer of Code (GSoC)][gsoc] again this year. GSoC is a global program organized by Google that is designed to bring new contributors to the world of open-source. In March, we published a list of [GSoC project ideas][project idea list], and started discussing these projects with potential GSoC applicants on our [Zulip][zulip gsoc]. We had many interesting discussions with the potential contributors, and even saw some of them making non-trivial contributions to various Rust Project repositories, even before GSoC officially started! @@ -20,12 +20,32 @@ As is usual in GSoC, even though some project topics received multiple proposals [^most-popular]: The most popular project topic received seven different proposals! -In the end, we narrowed the list down to TODO best proposals, which we felt was the maximum amount that we could realistically support with our available mentor pool. We submitted this list and eagerly awaited how many of these TODO proposals would be accepted into GSoC. +In the end, we narrowed the list down to a smaller number of the best proposals that we could still realistically support with our available mentor pool. We submitted this list and eagerly awaited how many of them would be accepted into GSoC. ## Selected projects -On the 8th of May, Google has announced the accepted projects. We are happy to announce that TODO proposals out of the TODO that we have submitted were accepted by Google, and will thus participate in Google Summer of Code 2025! Below you can find the list of accepted proposals (in alphabetical order), along with the names of their authors and the assigned mentor(s): - -- **[TODO](TODO)** by TODO, mentored by TODO +On the 8th of May, Google has announced the accepted projects. We are happy to share that **19** Rust Project proposals were accepted by Google for Google Summer of Code 2025. That's a lot of projects, which makes us super excited about GSoC 2025! + +Below you can find the list of accepted proposals (in alphabetical order), along with the names of their authors and the assigned mentor(s): + +- **[ABI/Layout handling for the automatic differentiation feature](https://summerofcode.withgoogle.com/programs/2025/projects/USQvru7i)** by [Marcelo Domínguez](https://github.com/sa4dus), mentored by [Manuel Drehwald](https://github.com/ZuseZ4) and [Oli Scherer](https://github.com/oli-obk) +- **[Add safety contracts](https://summerofcode.withgoogle.com/programs/2025/projects/UYWEKUkd)** by [Dawid Lachowicz](https://github.com/dawidl022), mentored by [Michael Tautschnig](https://github.com/tautschnig) +- **[Bootstrap of rustc with rustc_codegen_gcc](https://summerofcode.withgoogle.com/programs/2025/projects/KmfCY0i6)** by [Michał Kostrubiec](https://github.com/FractalFir), mentored by [antoyo](https://github.com/antoyo) +- **[Cargo: Build script delegation](https://summerofcode.withgoogle.com/programs/2025/projects/nUt4PdAA)** by [Naman Garg](https://github.com/namanlp), mentored by [Ed Page](https://github.com/epage) +- **[Distributed and resource-efficient verification](https://summerofcode.withgoogle.com/programs/2025/projects/5677hd6S)** by [Zhou Jiping](https://github.com/zjp-CN), mentored by [Michael Tautschnig](https://github.com/tautschnig) +- **[Enable Witness Generation in cargo-semver-checks](https://summerofcode.withgoogle.com/programs/2025/projects/MMRSG9WU)** by [Talyn Veugelers](https://github.com/GlitchlessCode), mentored by [Predrag Gruevski](https://github.com/obi1kenobi) +- **[Extend behavioural testing of std::arch intrinsics](https://summerofcode.withgoogle.com/programs/2025/projects/DeMQAjwi)** by [Madhav Madhusoodanan](https://github.com/madhav-madhusoodanan), mentored by [Amanieu d'Antras](https://github.com/amanieu) +- **[Implement merge functionality in bors](https://summerofcode.withgoogle.com/programs/2025/projects/HlR12jqX)** by [Sakibul Islam](https://github.com/Sakib25800), mentored by [Jakub Beránek](https://github.com/kobzol) +- **[Improve bootstrap](https://summerofcode.withgoogle.com/programs/2025/projects/2KNHAlKz)** by [Shourya Sharma](https://github.com/Shourya742), mentored by [Jakub Beránek](https://github.com/kobzol), [Jieyou Xu](https://github.com/jieyouxu) and [Onur Özkan](https://github.com/onur-ozkan) +- **[Improve Wild linker test suites](https://summerofcode.withgoogle.com/programs/2025/projects/ps99Kaqk)** by [Kei Akiyama](https://github.com/lapla-cogito), mentored by [David Lattimore](https://github.com/davidlattimore) +- **[Improving the Rustc Parallel Frontend: Parallel Macro Expansion](https://summerofcode.withgoogle.com/programs/2025/projects/SBW3GMno)** by [Lorrens](https://github.com/LorrensP-2158466), mentored by [Sparrow Li](https://github.com/sparrowlii) +- **[Make cargo-semver-checks faster](https://summerofcode.withgoogle.com/programs/2025/projects/qs2rDLG4)** by [JosephC](https://github.com/CLIDragon), mentored by [Predrag Gruevski](https://github.com/obi1kenobi) +- **[Make Rustup Concurrent](https://summerofcode.withgoogle.com/programs/2025/projects/CpXV4kzH)** by [Francisco Gouveia](https://github.com/FranciscoTGouveia), mentored by [rami3l](https://github.com/rami3l) +- **[Mapping the Maze of Rust's UI Test Suite with Established Continuous Integration Practices](https://summerofcode.withgoogle.com/programs/2025/projects/KP02lKL4)** by [Julien Robert](https://github.com/oneirical), mentored by [Jieyou Xu](https://github.com/jieyouxu) +- **[Modernising the libc Crate](https://summerofcode.withgoogle.com/programs/2025/projects/r3LkZkOy)** by [Abdul Muiz](https://github.com/mbyx), mentored by [Trevor Gross](https://github.com/tgross35) +- **[New proc-macro Server API for Rust-Analyzer](https://summerofcode.withgoogle.com/programs/2025/projects/76ekEjd1)** by [Neil Wang](https://github.com/DriedYellowPeach), mentored by [Lukas Wirth](https://github.com/veykril) +- **[Prepare stable_mir crate for publishing](https://summerofcode.withgoogle.com/programs/2025/projects/3y9x5X8O)** by [Makai](https://github.com/makai410), mentored by [Celina Val](https://github.com/celinval) +- **[Prototype an alternative architecture for cargo fix using cargo check](https://summerofcode.withgoogle.com/programs/2025/projects/fBOCR2Sp)** by [Glen Thalakottur](https://github.com/Pyr0de), mentored by [Ed Page](https://github.com/epage) +- **[Prototype Cargo Plumbing Commands](https://summerofcode.withgoogle.com/programs/2025/projects/fTDzc0sk)** by [Vito Secona](https://github.com/secona), mentored by [Cassaundra](https://github.com/cassaundra) **Congratulations to all applicants whose project was selected!** The mentors are looking forward to working with you on these exciting projects to improve the Rust ecosystem. You can expect to hear from us soon, so that we can start coordinating the work on your GSoC projects. From 4368c49fe154e96cc80eec333f2c258d04664f31 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Fri, 9 May 2025 11:45:00 -0400 Subject: [PATCH 0977/1024] Refresh stabilized APIs --- content/Rust-1.87.0.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/content/Rust-1.87.0.md b/content/Rust-1.87.0.md index 4b6a5de59..b70909fe6 100644 --- a/content/Rust-1.87.0.md +++ b/content/Rust-1.87.0.md @@ -202,6 +202,7 @@ These APIs are now stable in const contexts: - [`::from_utf8_mut`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_mut) - [`::from_utf8_unchecked`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_unchecked) - [`::from_utf8_unchecked_mut`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_unchecked_mut) +- [`core::str::from_utf8_mut`](https://doc.rust-lang.org/nightly/std/str/fn.from_utf8_mut.html) - [`<[T]>::copy_from_slice`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.copy_from_slice) - [`SocketAddr::set_ip`](https://doc.rust-lang.org/nightly/std/net/enum.SocketAddr.html#method.set_ip) - [`SocketAddr::set_port`](https://doc.rust-lang.org/nightly/std/net/enum.SocketAddr.html#method.set_port), @@ -213,11 +214,9 @@ These APIs are now stable in const contexts: - [`SocketAddrV6::set_scope_id`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_scope_id) - [`char::is_digit`](https://doc.rust-lang.org/nightly/std/primitive.char.html#method.is_digit) - [`char::is_whitespace`](https://doc.rust-lang.org/nightly/std/primitive.char.html#method.is_whitespace) -- [`:midpoint`](https://doc.rust-lang.org/std/primitive.isize.html#method.midpoint) +- [`::midpoint`](https://doc.rust-lang.org/std/primitive.isize.html#method.midpoint) - [`<[[T; N]]>::as_flattened`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.as_flattened) - [`<[[T; N]]>::as_flattened_mut`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.as_flattened_mut) -- [`::from_utf8_mut`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_mut) -- [`core::str::from_utf8_mut`](https://doc.rust-lang.org/nightly/std/str/fn.from_utf8_mut.html) - [`String::into_bytes`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.into_bytes) - [`String::as_str`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_str) - [`String::capacity`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.capacity) From a736a45b24fe50d987f83439dab3ea110ad8b64a Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 11 May 2025 10:19:54 -0400 Subject: [PATCH 0978/1024] Sync stabilized APIs --- content/Rust-1.87.0.md | 153 +++++++++++++++++++++-------------------- 1 file changed, 77 insertions(+), 76 deletions(-) diff --git a/content/Rust-1.87.0.md b/content/Rust-1.87.0.md index b70909fe6..69461e754 100644 --- a/content/Rust-1.87.0.md +++ b/content/Rust-1.87.0.md @@ -155,83 +155,84 @@ trait Foo { ### Stabilized APIs -- [`Vec::extract_if`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.extract_if) -- [`vec::ExtractIf`](https://doc.rust-lang.org/nightly/std/vec/struct.ExtractIf.html) -- [`LinkedList::extract_if`](https://doc.rust-lang.org/nightly/std/collections/struct.LinkedList.html#method.extract_if) -- [`linked_list::ExtractIf`](https://doc.rust-lang.org/nightly/std/collections/linked_list/struct.ExtractIf.html) -- [`<[T]>::split_off`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off) -- [`<[T]>::split_off_mut`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off_mut) -- [`<[T]>::split_off_first`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off_first) -- [`<[T]>::split_off_first_mut`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off_first_mut) -- [`<[T]>::split_off_last`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off_last) -- [`<[T]>::split_off_last_mut`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.split_off_last_mut) + +- [`Vec::extract_if`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.extract_if) +- [`vec::ExtractIf`](https://doc.rust-lang.org/stable/std/vec/struct.ExtractIf.html) +- [`LinkedList::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.LinkedList.html#method.extract_if) +- [`linked_list::ExtractIf`](https://doc.rust-lang.org/stable/std/collections/linked_list/struct.ExtractIf.html) +- [`<[T]>::split_off`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off) +- [`<[T]>::split_off_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_mut) +- [`<[T]>::split_off_first`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first) +- [`<[T]>::split_off_first_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first_mut) +- [`<[T]>::split_off_last`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last) +- [`<[T]>::split_off_last_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last_mut) - [`String::extend_from_within`](https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.extend_from_within) -- [`os_str::Display`](https://doc.rust-lang.org/nightly/std/ffi/os_str/struct.Display.html) -- [`OsString::display`](https://doc.rust-lang.org/nightly/std/ffi/struct.OsString.html#method.display) -- [`OsStr::display`](https://doc.rust-lang.org/nightly/std/ffi/struct.OsStr.html#method.display) -- [`io::pipe`](https://doc.rust-lang.org/nightly/std/io/fn.pipe.html) -- [`io::PipeReader`](https://doc.rust-lang.org/nightly/std/io/struct.PipeReader.html) -- [`io::PipeWriter`](https://doc.rust-lang.org/nightly/std/io/struct.PipeWriter.html) -- [`impl From for OwnedHandle`](https://doc.rust-lang.org/nightly/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle) -- [`impl From for OwnedHandle`](https://doc.rust-lang.org/nightly/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle) -- [`impl From for Stdio`](https://doc.rust-lang.org/nightly/std/process/struct.Stdio.html) -- [`impl From for Stdio`](https://doc.rust-lang.org/nightly/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio) -- [`impl From for OwnedFd`](https://doc.rust-lang.org/nightly/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd) -- [`impl From for OwnedFd`](https://doc.rust-lang.org/nightly/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd) -- [`Box>::write`](https://doc.rust-lang.org/nightly/std/boxed/struct.Box.html#method.write) -- [`impl TryFrom> for String`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#impl-TryFrom%3CVec%3Cu8%3E%3E-for-String) - -These APIs are now stable in const contexts: - -- [`<*const T>::offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.offset_from_unsigned) -- [`<*const T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.byte_offset_from_unsigned) -- [`<*mut T>::offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.offset_from_unsigned-1) -- [`<*mut T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.byte_offset_from_unsigned-1) -- [`NonNull::offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/ptr/struct.NonNull.html#method.offset_from_unsigned) -- [`NonNull::byte_offset_from_unsigned`](https://doc.rust-lang.org/nightly/std/ptr/struct.NonNull.html#method.byte_offset_from_unsigned) -- [`::cast_signed`](https://doc.rust-lang.org/nightly/std/primitive.usize.html#method.cast_signed) -- [`NonZero::::cast_signed`](https://doc.rust-lang.org/nightly/std/num/struct.NonZero.html#method.cast_signed-5). -- [`::cast_signed`](https://doc.rust-lang.org/nightly/std/primitive.isize.html#method.cast_signed). -- [`NonZero::::cast_unsigned`](https://doc.rust-lang.org/nightly/std/num/struct.NonZero.html#method.cast_unsigned-5). -- [`::is_multiple_of`](https://doc.rust-lang.org/nightly/std/primitive.usize.html#method.is_multiple_of) -- [`::unbounded_shl`](https://doc.rust-lang.org/nightly/std/primitive.usize.html#method.unbounded_shl) -- [`::unbounded_shr`](https://doc.rust-lang.org/nightly/std/primitive.usize.html#method.unbounded_shr) -- [`::unbounded_shl`](https://doc.rust-lang.org/nightly/std/primitive.isize.html#method.unbounded_shl) -- [`::unbounded_shr`](https://doc.rust-lang.org/nightly/std/primitive.isize.html#method.unbounded_shr) -- [`::from_utf8`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8) -- [`::from_utf8_mut`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_mut) -- [`::from_utf8_unchecked`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_unchecked) -- [`::from_utf8_unchecked_mut`](https://doc.rust-lang.org/nightly/std/primitive.str.html#method.from_utf8_unchecked_mut) -- [`core::str::from_utf8_mut`](https://doc.rust-lang.org/nightly/std/str/fn.from_utf8_mut.html) -- [`<[T]>::copy_from_slice`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.copy_from_slice) -- [`SocketAddr::set_ip`](https://doc.rust-lang.org/nightly/std/net/enum.SocketAddr.html#method.set_ip) -- [`SocketAddr::set_port`](https://doc.rust-lang.org/nightly/std/net/enum.SocketAddr.html#method.set_port), -- [`SocketAddrV4::set_ip`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV4.html#method.set_ip) -- [`SocketAddrV4::set_port`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV4.html#method.set_port), -- [`SocketAddrV6::set_ip`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_ip) -- [`SocketAddrV6::set_port`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_port) -- [`SocketAddrV6::set_flowinfo`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_flowinfo) -- [`SocketAddrV6::set_scope_id`](https://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_scope_id) -- [`char::is_digit`](https://doc.rust-lang.org/nightly/std/primitive.char.html#method.is_digit) -- [`char::is_whitespace`](https://doc.rust-lang.org/nightly/std/primitive.char.html#method.is_whitespace) -- [`::midpoint`](https://doc.rust-lang.org/std/primitive.isize.html#method.midpoint) -- [`<[[T; N]]>::as_flattened`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.as_flattened) -- [`<[[T; N]]>::as_flattened_mut`](https://doc.rust-lang.org/nightly/std/primitive.slice.html#method.as_flattened_mut) -- [`String::into_bytes`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.into_bytes) -- [`String::as_str`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_str) -- [`String::capacity`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.capacity) -- [`String::as_bytes`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_bytes) -- [`String::len`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.len) -- [`String::is_empty`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.is_empty) -- [`String::as_mut_str`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_mut_str) -- [`String::as_mut_vec`](https://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_mut_vec) -- [`Vec::as_ptr`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_ptr) -- [`Vec::as_slice`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_slice) -- [`Vec::capacity`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.capacity) -- [`Vec::len`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.len) -- [`Vec::is_empty`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.is_empty) -- [`Vec::as_mut_slice`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_mut_slice) -- [`Vec::as_mut_ptr`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_mut_ptr) +- [`os_str::Display`](https://doc.rust-lang.org/stable/std/ffi/os_str/struct.Display.html) +- [`OsString::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.display) +- [`OsStr::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.display) +- [`io::pipe`](https://doc.rust-lang.org/stable/std/io/fn.pipe.html) +- [`io::PipeReader`](https://doc.rust-lang.org/stable/std/io/struct.PipeReader.html) +- [`io::PipeWriter`](https://doc.rust-lang.org/stable/std/io/struct.PipeWriter.html) +- [`impl From for OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle) +- [`impl From for OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle) +- [`impl From for Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html) +- [`impl From for Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio) +- [`impl From for OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd) +- [`impl From for OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd) +- [`Box>::write`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.write) +- [`impl TryFrom> for String`](https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-TryFrom%3CVec%3Cu8%3E%3E-for-String) +- [`<*const T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned) +- [`<*const T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned) +- [`<*mut T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned-1) +- [`<*mut T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned-1) +- [`NonNull::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.offset_from_unsigned) +- [`NonNull::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.byte_offset_from_unsigned) +- [`::cast_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.cast_signed) +- [`NonZero::::cast_signed`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_signed-5). +- [`::cast_unsigned`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.cast_unsigned). +- [`NonZero::::cast_unsigned`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_unsigned-5). +- [`::is_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.is_multiple_of) +- [`::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shl) +- [`::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shr) +- [`::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shl) +- [`::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shr) +- [`::midpoint`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.midpoint) +- [`::from_utf8`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8) +- [`::from_utf8_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_mut) +- [`::from_utf8_unchecked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_unchecked) +- [`::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_unchecked_mut) + +These previously stable APIs are now stable in const contexts: + +- [`core::str::from_utf8_mut`](https://doc.rust-lang.org/stable/std/str/fn.from_utf8_mut.html) +- [`<[T]>::copy_from_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.copy_from_slice) +- [`SocketAddr::set_ip`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_ip) +- [`SocketAddr::set_port`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_port), +- [`SocketAddrV4::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_ip) +- [`SocketAddrV4::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_port), +- [`SocketAddrV6::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_ip) +- [`SocketAddrV6::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_port) +- [`SocketAddrV6::set_flowinfo`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_flowinfo) +- [`SocketAddrV6::set_scope_id`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_scope_id) +- [`char::is_digit`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_digit) +- [`char::is_whitespace`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_whitespace) +- [`<[[T; N]]>::as_flattened`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened) +- [`<[[T; N]]>::as_flattened_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened_mut) +- [`String::into_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_bytes) +- [`String::as_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_str) +- [`String::capacity`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.capacity) +- [`String::as_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_bytes) +- [`String::len`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.len) +- [`String::is_empty`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.is_empty) +- [`String::as_mut_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_str) +- [`String::as_mut_vec`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_vec) +- [`Vec::as_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_ptr) +- [`Vec::as_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_slice) +- [`Vec::capacity`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.capacity) +- [`Vec::len`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.len) +- [`Vec::is_empty`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.is_empty) +- [`Vec::as_mut_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_slice) +- [`Vec::as_mut_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_ptr) ### `i586-pc-windows-msvc` target removal From 8996e91deb33d2c878dfa6f78077b05a797c5812 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Sun, 11 May 2025 10:20:55 -0400 Subject: [PATCH 0979/1024] Update tier 2 text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com> --- content/Rust-1.87.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Rust-1.87.0.md b/content/Rust-1.87.0.md index 69461e754..a22dfcb21 100644 --- a/content/Rust-1.87.0.md +++ b/content/Rust-1.87.0.md @@ -236,7 +236,7 @@ These previously stable APIs are now stable in const contexts: ### `i586-pc-windows-msvc` target removal -The tier-2 target `i586-pc-windows-msvc` has been removed. Its difference to the much more popular `i686-pc-windows-msvc` is that it does not require SSE2 instruction support, but Windows 10, the minimum required OS version of all `windows` targets (except the `win7` targets), requires SSE2 instructions itself. +The Tier 2 target `i586-pc-windows-msvc` has been removed. `i586-pc-windows-msvc`'s difference to the much more popular Tier 1 target `i686-pc-windows-msvc` is that `i586-pc-windows-msvc` does not require SSE2 instruction support. But Windows 10, the minimum required OS version of all `windows` targets (except the `win7` targets), requires SSE2 instructions itself. All users currently targeting `i586-pc-windows-msvc` should migrate to `i686-pc-windows-msvc`. From 14370215e869cfbcfaeb1005018dc22be501f468 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 11:58:45 +0200 Subject: [PATCH 0980/1024] Lock file maintenance (#1608) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 182 +++++++++++++++++++++++++---------------------------- 1 file changed, 85 insertions(+), 97 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4b7348e6b..90cb819af 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -65,9 +65,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.21" +version = "1.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0" +checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" dependencies = [ "shlex", ] @@ -324,21 +324,22 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -347,31 +348,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -379,67 +360,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" +checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "idna" version = "1.0.3" @@ -453,9 +421,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -523,9 +491,9 @@ checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "litemap" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "litrs" @@ -626,6 +594,15 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -705,7 +682,7 @@ dependencies = [ [[package]] name = "rust_team_data" version = "1.0.0" -source = "git+https://github.com/rust-lang/team#60c6c4083e615ba753557cbd4999a3cf2a725587" +source = "git+https://github.com/rust-lang/team#5262b6ba63e0bb3378897f9705c524c83aeac278" dependencies = [ "indexmap", "serde", @@ -713,9 +690,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.26" +version = "0.23.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" +checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" dependencies = [ "log", "once_cell", @@ -737,15 +714,18 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] [[package]] name = "rustls-webpki" -version = "0.103.1" +version = "0.103.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" dependencies = [ "ring", "rustls-pki-types", @@ -822,9 +802,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" dependencies = [ "libc", "signal-hook-registry", @@ -946,9 +926,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -1037,7 +1017,7 @@ dependencies = [ "serde_json", "ureq-proto", "utf-8", - "webpki-roots", + "webpki-roots 0.26.11", ] [[package]] @@ -1069,12 +1049,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -1105,9 +1079,18 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "webpki-roots" -version = "0.26.10" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.0", +] + +[[package]] +name = "webpki-roots" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37493cadf42a2a939ed404698ded7fb378bf301b5011f973361779a3a74f8c93" +checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" dependencies = [ "rustls-pki-types", ] @@ -1293,30 +1276,24 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9fb597c990f03753e08d3c29efbfcf2019a003b4bf4ba19225c158e1549f0f3" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -1326,9 +1303,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", @@ -1363,11 +1340,22 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" dependencies = [ "yoke", "zerofrom", @@ -1376,9 +1364,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", From 99641a46f93cdf2b677717b9953bb9702246b6b9 Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Thu, 15 May 2025 15:04:40 +0200 Subject: [PATCH 0981/1024] Add 10 years of Rust announcement to release blog. --- content/Rust-1.87.0.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/content/Rust-1.87.0.md b/content/Rust-1.87.0.md index a22dfcb21..f57d4746a 100644 --- a/content/Rust-1.87.0.md +++ b/content/Rust-1.87.0.md @@ -1,6 +1,6 @@ +++ path = "2025/05/15/Rust-1.87.0" -title = "Announcing Rust 1.87.0" +title = "Announcing Rust 1.87.0 and ten years of Rust!" authors = ["The Rust Release Team"] aliases = [ "2025/05/15/Rust-1.87.0.html", @@ -11,7 +11,21 @@ aliases = [ release = true +++ -The Rust team is happy to announce a new version of Rust, 1.87.0. Rust is a programming language empowering everyone to build reliable and efficient software. +Live from the [10 Years of Rust celebration](https://2025.rustweek.org/celebration/) in Utrecht, Netherlands, +the Rust team is happy to announce a new version of Rust, 1.87.0! + +![placeholder](https://placehold.co/800x500) + +Today's release day happens to fall exactly on the 10 year anniversary of +[Rust 1.0](https://blog.rust-lang.org/2015/05/15/Rust-1.0/)! + +Thank you to the myriad contributors who have worked on Rust, past and present. +Here's to many more decades of Rust! 🎉 + +--- + +As usual, the new version includes all the changes that have been part of the beta version in the +past six weeks, following the consistent regular release cycle that we have followed since Rust 1.0. If you have a previous version of Rust installed via `rustup`, you can get 1.87.0 with: From 2736a6abb1b2d71dd2d41f9e55d6b46ef3f9590c Mon Sep 17 00:00:00 2001 From: Mara Bos Date: Thu, 15 May 2025 18:28:30 +0200 Subject: [PATCH 0982/1024] Add picture to release post. --- .../{Rust-1.87.0.md => Rust-1.87.0/index.md} | 2 +- content/Rust-1.87.0/party.jpg | Bin 0 -> 254554 bytes 2 files changed, 1 insertion(+), 1 deletion(-) rename content/{Rust-1.87.0.md => Rust-1.87.0/index.md} (99%) create mode 100644 content/Rust-1.87.0/party.jpg diff --git a/content/Rust-1.87.0.md b/content/Rust-1.87.0/index.md similarity index 99% rename from content/Rust-1.87.0.md rename to content/Rust-1.87.0/index.md index f57d4746a..f8aee6878 100644 --- a/content/Rust-1.87.0.md +++ b/content/Rust-1.87.0/index.md @@ -14,7 +14,7 @@ release = true Live from the [10 Years of Rust celebration](https://2025.rustweek.org/celebration/) in Utrecht, Netherlands, the Rust team is happy to announce a new version of Rust, 1.87.0! -![placeholder](https://placehold.co/800x500) +![picture of Rustaceans at the release party](party.jpg) Today's release day happens to fall exactly on the 10 year anniversary of [Rust 1.0](https://blog.rust-lang.org/2015/05/15/Rust-1.0/)! diff --git a/content/Rust-1.87.0/party.jpg b/content/Rust-1.87.0/party.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4dfd268431dfffd308e53ae5e8d7b927194f604 GIT binary patch literal 254554 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�FD&jLxYvZ} zzJWd_W(yr8uJ#)x?d>7_pviqO)*}~)H*xH^Bg<4JoX4SRQFd=U{FNWU5N=BjDpDHC zD&U!UMo3y%nj3hHzTF}BGvCqQ86tU*hjOkN&qWSdFN6kR%F*kk!dx5f+LUoz`pXa2yBtyO0H<6O2fxXtdNz0$1*dJUb_A<>R?ao^a5jjf^zGAH( zOEWZh1vhEBD03wJ6g4|_F5B~7hJ(!YV2Fp{Ecy)3nTNg#f!Im&tB$6mv$jpRqukN z?P0Ni7V=v0?kZ|$rw`c=rnLJPUYV&sBkU$c{!!rX6Qtl*+A59FHQIt77xJ%v1upRI zBi8sKc9*TSa`=(~iGA`z4&Pb7yfI-u%o58(+<2|y)F{EZj9Da%i#l9Xi>^H7zD2pP zlgD5AQbR>C3R%>NQsphIV+@XDBVaFEF@-4p4}@o!u#0*Kd}&5A7pGRxE7zFT?dGot zYuK2Hisr0^y73IxFJL8@sG=yrD-zg7DZ;Smvs@B`59?b1z%yseFeS#bPepz|1BRDx z7Mk)ks}Wqc-@lY$d-I_BS#gex4KLZI+_6iyhul&O?D#gbS}8lZe<=xSI4lXBS){M_2Hj`vv`b5O!qm zHr4$fi_7gF)|`EASqwoj7Vp@`Lba5QZ>3p`u&r%vTG$&AjbN4-eh*fgKxdJ3j;kq_ z^F4WPCf4NLjGPgVhzIde`5jVKf{`@C5Or$U>Qw#6H5V-3)PwwW+xT%kP^JeAtZ$N1 zDHLj_Lim2)GHhVNm9uCW5{9}v^u0iC`{OHtgTrdg5>cCt;=T)Hg;c^m+g}UsVdTN< zK`yt}djDie5U#W5BD1Ypdq0H913%~AV=I1>d@D0N26_s;oW-vslQt!Ds}%WZx=prG zC%gSY!l3QNwsSD+CG-nNp5ebVsR08DO@7^=7J|q;G7~>wqkU~B3rR>T=`v|ox32?Q zbIuUnbmFnc6D}Wt1;b&qVhMdU2^P<3y2ug)Ek7j*Po6<=+LpqcZg6@Y!sou^ztr(b z^RBZx)Nd5P6h{I%_+OoN_@*lvv-BZ@(pyX3W`E6h(6YBsf!KL2y|@|BQUw>B z%(55HLBmMq@V55hNB^2flzrfYet@<3_DRcw+EEU}(KhF3{2;Jb@jQi%`2cy!uJFy) z?-utYRsX22NfY$jR@WDC@-zhQsP4?H!~^goMnlwN4ph?gG0Oph-0RVFxf~3u?0Jac zJv1FfTr|5(|0$}8malI+x2Ylz81gLr7u*Kr#e*=RIIa&W!J-X864i{h)Ei*C?(v^z zd6Q+qA#dnbi!AoO0_OZ8f<1`XZp+}7*E@x39~SlO*ksx|)ILjOm`(^%e3G`rMxB(71GG4Iyr#=rAJVufxU}?s8U1gBe8(r8W8J)pJ}uQJiw} z6T;PsP&H%SwjfH$I_EkA9h5RNkb@9DzSde|d?%Qu-b}T=aLZ&vn%9c+F0!+HVfmlVf|8?E(OicrtLOdj+1C zQ!0<9$t*6`_o7vXXDaRr59OC&?zPey2Z)CNTiWc9#g1NXo0YU05u(7q3YgaeGoQ!W zg{yd)OLe}>8j#EPCe;{Y8sFkHwHQw4R49L9s(SXH z(u1?5{=foZ;(n7C_Ka(1RgRD#?~3*-pPEC)Nb3HD8Lu0RYAG%0D!Gx${^=uEPV|L{ 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%0AIEp%2({#dX`vr4zc3Uin}11Q-H)dWVu3y? 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%0D=@P^-EuH|$ca&w>IqvZ` z;S1rtwlBdr8hH)B?l{5ltsje^A+c@_+nj`4E_KAr4sB--hW1}zS{DHlo?ExzbWQk2 z4cZNb4Pkj$d2wmwxC!~Ub;iUsp*(AqfKD5PsnO(5{XvU1;PEQXX5kQ+3Er03bD4~K zgg2Ny;@RMkXf0YXA#jIe*Umo>X(00-P5~PZ1i!c%K#ny1 zkj9TvZ^9ckt1Rqb^9HlPN*c8zIXUJdIaY2!+Jn1LEa(s08Qzz^L}P+k@NIT^Bg75l z%J#MsBc|bn?NEKWpRTby^(;~0C*3+F_?(mm`1-nI5Tt2FGkkA~*q(g-$kC4pJtwY7 zl4+s!$eNt~+03?V^6C7{)^_9H#m5i>={m>rWIJ_poh`Fs@uk3+#vIGQa9TL|+t`Kr zUja?h;Yutxe3rmjN6LKv08k~cCxu+PnBxv=gLs5}o5Km|=6-r0b}}4eW+=Ek*470s%N!S@2u+*c*N(YT{Y45H+&)+=S}H{nfayDT(^qwJ!zs zmb(Tg$;R3=vAL9S6T&mn;X zxJZfcWtH*~{7&x;p?Eec^R_+aiph_YvJ7nh0CL_tz)SJX%O?S5%S8+MjrPM)&oKw* z0#xPZP0r#7>RckVEwJg60IP88kXnrH$Xkt%(>wDWQRXT;00buu9&Nxl=v*{5F_)9x z_mlQdiHRGZV7FFFat9b$QE6dij{?GF=+ z*rnodB8BCVzBGQz9@#%k;Woh<?>OkZcKPlpFx_kjI+iKH}t|$GPUf&IJ7tUPTuqPsNWLSxtG*1?`WN%dYTnIqE@VX+E=ti##B}Y=&!MjgL|BGK4+Ml1%yYmL1P!B zexn--52@4aU!gJ~86}|G_RVxAa3(Ruq$7)6`HKT$%6hqx(m9274u9Exxe^w!fJQJwq=7yd;?Bn09%Zb_#~}M-`sY_;=uw}^4@2TK^i^M3Oh7FiF9bf3Z3m1< zBih+f9mjtxgtK{m)?QBX){Zd0WG)zZ3@r(54tXYC=%{;^%b>F!k(y{94T9yFJmL0a z@}3vw$aXJaxeulpXS^0aD_59_z+9zp23v`A`7UN?#_E}yF&wi7IkUk0vk1L`4!FS@ zH||v>^!uKH(=gajQJ5Qbc$iT^9ANGs#vd>^uZxu=h#kPgWDX4^7A{7|Bp;bnXMaKA zEtXTo#!-vGPgtl;<9yy-Ny2ADLwB=di=6jyi#|EaFKqxG?1)HNj2!Wic)3pvaM*IB zuJaHt1l#vkmwlP_VzB2;bDb>?Cs}k7LjpvRPypqFI2!#>{Bd-4<^&nyCxnzYw-L7) zm*P2wdIvWaR-DWSYF^7Kt*;z%F`0pcn&RClYUeP8u4x_8-Ehm=&2A)IxMP;b@D3j^ zab<{L%ys*IdE&9X^ilK9U2MIuypb-c-IWZ@f_OY3um=DdjDsFAipY0N@XYJ9o24WM z5JJ@!;u9{wH!ZjF!rz<}ex6oB1i1!eI$|aH4TTN7__ppu1DOX6heI4w`FcAm{)oCq zHSIV#K1t8OZ0JwraVvh--Vyz#`pzGR^iQhB?Lt7Tv)qEjBrW66Vfh)*eY=P*{4qbZ z%x5K`_Od9DsOOJCCPgtgFt%4P1oraVYi3Ky_&iHPhcC$oVVw;uNpKgrFKJ(cVh6$z zaWj{gLTKbl_pqMN@dMsQu|`m1J8h@(zBW=+;$6z+nd$-dPG~2~89@#p9t(6iWpb=h z$Z@xfyFV^k-^$(lpWWc}bsD8R<(Px!1W!7#58H@pJ1;NKrA`MICCrZyW;xFx@{`&T z{r5kD#apQR4ThQNo)Mz|0Pl=cQJPp@U=J~5h?NV=b7Ahe5}drb2^TuqDfetA1ZnvO6+lkJ&bgcqSOf^p@Eme&*#Y z$!obVQz{rMc+sj!t3af%O^JQ%fQ7@2u?jv5VV)%|CtnhY_&P0HW~dAxUK#PtgZ4rTQhUni;09^K^C@47nzk8R-{i2 zv&ZWstaji*fWHa4;+yXV;}@jEv2ZNl2T867eyl}0uk6pW3lWfiPEz3=`NlNtwzVd^KtUw#1klrnEOFn8{7KkMMpF@nZV`~NgJjRN%g);~)-WBibJz)z zyQEWorlQ9q#is-&C1t>Z!{>=VRqgCZf%&)dvW`2Fb3?dqGYDamm5KAmQc)%7lHFjGr*!o6B(L z-x2nQC>$x{LBN&JlN_CJgDumLD!bKDdJa1IM+4OjhI_>Yy;@FR|H`=nG%=Z zxDv+uxAS8M8-AFBTk_&N!rVa{Mv}22y0jZ`v(Yvl<_YOTC;tG;+dSkS%YTk!55SLW zKlA2Ma0@En0$w@3XDc`XW(F#pKLpxC10K zuulXBi0>GCvN*iGK0T&E&_Vc+_x#QmFG+#!vT#rnkV^j9fv|+AY`g-7yri-l+4?r# zu1hoV!Iz=L(f;Fz<38_u>AJr@@EB(o>E(4}4mY1Rfj5#*1(TBG1H)tH-#MAQ$GL#W zl+m=1s5nWyG6yV%p@;J~I1S^(;{Do4R>0EPHJD7s$Az6O9n$7DuU9D$6Dxr+vKAi~ z=FoQ$p^FNG;wo=?Znku(AyjW zIKS>VUzs?uiur9r+2+VbMz9wE=?IJpqrRgU zL%(Tbkb@UzC*H^$V8_Q9aC5CcP!jVCH*99N()odQ%ENG>;0Ke)iaI_|DpEWp%;wkR z%$>C^RNeK^8!slyRC|Y8GicukIS33Hu7%n69lote?Gn25Mh?VJKXACu z6XaMwDI*Nb7Z{&ljqzo2+bNn>Fnhwi z$L|y;j$37JO}Yei`Hli_cBi&5K{lm5K_6VJ;bhpyxZds?-PhPpF%L4j>2^kVOj-e_ z>R}ucfx~$KPImmx$8#5E399)sm`8=b#Vob*Ryq6U9)$V8 zf*4{D^l>a?&Vsn$Uq3Mrpago~5CA3>{7SBe=){W74j9BoY=`;{IJfO5^o zLH+T?@5C76nHZG&i63F{Ch5>0qT)X1y-SkMc5)5K{{Sz(9$w8mKJn6ZxKd7G5w@^e|a+TPjMTk;y@>z!|BKt zY&=_z2$YU_6J{K+UsKr@legR)q>;xvpK2C5<*&RvF545@hiPdx#%o8p3OWS2xwm0@ zHfDK6^6`x@+rLqi#O@C4?wr3g_<1KSePpwQO<_8Mh&va_c2Qq;Pu8=)69%0;Oz4Fe z*au`J4~EHu%uGh#10Z9_`M5yb;yK$4JH^PjAT~_cK-EH-OOO{C7=o~IpOF#>H9UL` zzT2h**+KT0%{h6x8-&G)j2D*d zfw1ARp^Q=y!X8kBx$u{MYm;85w*6SqPF=G!T(Fp|uiWurCu;sK0Ni8`wWf14Zz~>i zvQjmpXy)u)7)#VdJSEC;p9MKR50?3&?Hm{qC(t5|Fl~xG#e^lJE9bDe98AnCrwA9o z&IjH902+to5GFp06SGV^7{D&4pEv&i&1K*9aDEm2%#+A-@G??&{U7@RI=`=GA!iRH z0Xx(AZovWNhB9)WmCTp0&C$fG#*SXa!b~yvfg48U-theqg&QxDU`W4$Ubeq$jYPOf z<(*hx^hiLHG$MfPa6ZV^X87s)i#TC^{{RuZxO7Bl;ou?wHbdN_Fua(!kT_oxI5{0B zpq5KG2XSWxGIE29#cb!_>w*mqj#u4dA#ES~Jj-I>oN&K zWF4`O!)S2o6QN=q8wUC#hUK{CId6w8{{VZL^^q|FG(no4V3hrZ!R)chG2Roe@UyTy z46wrnhU0tLs>0TG#IhfuR!x0cn}mKbVFPIS@P+%^u;}6&=mR%4f#lrLod(*Wh;mxa zA3oR4ye7BIQZayMSbu?oGOBrahwm8E$e2*@CE|kd9LQ^&{lMr}$EIY@4hRM@#}`Y0 z@Y*(CYV%==G_`_e#uJ-due{Zf;3WbG$e*}%CZYcT5ZzIb?**WggU}P)&m;3(xgHcc z)3z^CjjiRPzAWZnIAZ&gp!rN&wP!e)XM={t50&3?_FT1j zh0lwZHtGwFOMsOU9COnJqwg?T%@*W`P;k%euo|hX_iu5WyF&22*}LN;{fTmrwZk7Z znRG`h%i(}}&ZBNULG0I%)mfk<-ixrmJWA<){LW*@s!1xx41g_5^^AW)S4CnZ_8g_p=@SLHjM+ zHJ>hvjPr@G9?XRasq~R>L+>sM_kHA@S^mfpb69wg;84hB(EtJ&7<*arx&mUH&)LGk zjk5~|4U~C0J>q~|zlnarKPBH`^ZQIS)d%IWE$6(l*pguUBrzTUkptA}CUx|1qtWc* zTmbSw8uo$@lbf{h0EBX#u%}c?D`vh}hngQPvDW+l0AvA+l4%2go>1=3h>L_N!R4Ey za;n0Bi_EYCk|wUllX8t?Q2EwgQwNd`e(XlU%3l5n)Yn;ag`(4*_$}fEU3h`MNESpH zj0p1It8hfV9kp$E`1C%97O|6Q%$-RmV7z_G^pG&=xKb^^9EH$!@z~mb>?|(Bt-} zHZmJc_a*y#z8DQUPtylCw9ckTu}m&g=-zHgG)#-;e&GaQ)(0%Hp^G}ic?H1LETwxq zFj<`#-)o*lL2ej*?g99OMoy;)3Sk_bf;Bq;J=uYsTRh$~>w5OI*t+^z5eBwVOh#Ve ze8h6Ht+-^Gjuwv=4&QN{oHi~ zc(K6q50`Hc=lNsMUs~pQY-_TyTzg69fqZ#t_dLeE5m@m&1^h^S!+=WbUEc%<-A~LsxgVEA$M9OyoPN{CDOZ(gK5=!7=doxu0OfL@oDmKr)nLNf>?<*m6$gY`3wh=?T_$Z+Hz z5`6jvxVN20FQbc4Iu|}=JoN3jxmxl`3CQW!J=U8<{#j;^9)degHXx6fPXv~_;zGNI zpVVq{V8j$@;u@%Ou|_=#fZI1C_jCu~w?)Sc-ZhmX^2zMEtXD{PHz~QIy6lR4xi^cB zov+}U34l(MXYxsL@0ku@cLGBti9Upy(qqIgN(j}q;BCK~IG2EjbB&tf4#czM^A0DK zUm`N{;|B3a5xPZhxdzGXT@vmW+IFMucmf^9@^h!Pmu3)7vxh$HI?Qhud`6ap{X9=Q znldlS@FUTKf$mG2?<`_|1ZW%tsacId2xI8vVhKK7Irwe0A(E7n&~qyzC@oEYwpHhg z<7>lVc9#WMOU~Tz<%qBxEWMc>XL%*D8?T#kPIMpdzwQm9b>#4^4t}x97Xl}C=5_x7 zYITCH44Xi<8=s)W32N7b^JIPAY%%mqPc@M``Ve33wl}%`7sdh|?mQ7`;E!X2gZ2{| z!Efw1V4Of-o0z*`E0g(rqt_jf$VX+tqU>h_N0-~S724yAJOMM~AdBaz_3dHv%Li*= z`50L|uO}8)aOw4P2~z#CPT&XFM^A!xxQ1LTz_cgEq+II5bl&&LEEO2g_b0}6mK61p zc}^@RcS&0G-peq~4vc|aMfee;hZFU4r==y=wuHQL{%m)_`ZqyFK~vSOM4dMD>md@XJHLH?^d{mo>$#8Ot`%v<^2Knn|D~oeEAGVCxhk7-o@s zot#<^<}-3}^%0y$Pq=XMCI&F2_K&j7+hC2KVf4(#@Xv(gZXY@)BaPu1$;GGVJ*|pP zKNe|G!|F9Ac7%novB1Mw@}11ql)nb)pzKne3mey!gW^2w_;cWtMfGRO;(0Ci4a~BF z8O@_=&rU{O0mKue-^|nbe-Ea_=;t_@>dlf)TbH8~%6$#~BrY6E9m|0%nL&~RxVC$l zHNv=Coc{n)A?(b&XNAfC0P2YY z@xPuelbgggY`RNcB6xsjZ=&WU#QE;V=sJZ*W&3O^@BCLQ?w`ay=>8cw!&qxYH;=Mf zPZ)nWHok^{{uuZJe+9H5>?}jK+Tl!PJ-x|9vKUJ$7=5$xA8;NmX|{&SauI2Dua2PL zBRrk5G$ZEdx=;@Vf+4!G!jgxJVREUXynW+|B=+JphVyo0I*Xg+n0mfa3_53bS(@!- zzUe0uw-RjdQn-%-Okak7GNs-+2GABwg7jbJ-FO<>w+Ep4Wh{}A;3cumye*D=O;{C` z2y8?L%t)T{Y=LqMmY9?S+pi zAS)jA4-9}Aa%2P32hE&$@Xxg01{UX3RpR7J=;QUAl%J#{=9$#q7(nAU7X+2QE1sgQPk6fHGF(;~lfTP3IfbNkA z2wZl2gzLoean58BoZF6jvj-&9SklUa@Ik=U<>GqIF)td@%rX@Bb(pZ-A0P<=PQE$< z+t#`wenLFH=ecYHqe4_cndgPtInVV~W8V2Hzl*2@+pJ*Prb}~ASYX~$;U!2V$DABK zrVHODT5^RI6!GX#}2}cS};UE}E`D1D?qjnR* z7mo11p{_Fl@}K087u=4k(9pLa@zA*b6U@W3fWwdkfylWFy-S>I>Lc$oB#YCeIBsTn zXP^@N^*MCw(Ma>SY~0RfMc{5c1~bLDoW1XRvGKXyrI$$=+rhE`Hip30`m-fl%mN4i zeG}X1$J?6v9;R%|2{)oWLU3Fe<(3Q<14~w42;y-3U1%N40nu?jq_O#)EpgV&d4c_t zxEsl4+ziXPt_W(taJWAO$_`l|?AG_#!MN^B*sXNm$!I?9sED=r>f8@6baL}^FpDG6 zlgO8I0Cqr$ze$lZ?Y#T!r^Sxr=^)M{3tDOTOp!7yd%j=rRq2TgSUuY(1XDMbz}fH( z{{R9Oku>lykZCV=f%{7;sIS>MT5AoT!A+6Zpus#+C*VJ#AQEheJw0{~Y_`RGF))yE z4okQbkKjMnq+{}@?Ee6hK4G)H?tZMJoJXgeXHNtBDaW3*-2+u%LylQzxCsSQ^8<@4F~W969OEYZ7(S)Nz?SacKz4T)i3@uTjha9iqr-Gz z+ha$%vBN?O<7WLgWs7!M;3I%MMn052S1y1K-=cqVXMi-ZIK)GO?}V3WNmW)w!>>m; z*y?nY4V zP1jG}L~yxv4d61+I!ca{oD$fP!Sczlzq(gE+7p?D^CSr4m|7b3U>1DbnDicx6Q?(u zt}X_iB>V(kRHByimL7qzPs}_Aplr5M#~zNd_=f3iA8=d;glV}dZhoA!`;!bv1(!ay z8{-6qY(%`T=ZUtRmU2M)F&$WWVv~iLt<8Po;YL#fF+3i9r`a?WkPiO3Z&VuKNwhtuoteE53#7hy|>_x1`nr5f3bk0+gxaynCK+$5M*Pqv44C4F3SOId&g(EBADx!S_2%SF z*WH_0#{NSTUk$j7<3@4EQe9qc$7k|dJjBei&j)aQ*qGo?!$FCopQSH9!vn7EbY^Yj z{^TLV!1#xswYi_N`W8S+8^vje)>bzB=w;i{zZm2Z?DQc^+di3jYYT-hKGTR!m_qPR zhe?BUL*SDMcQ&fGEN#g?hkLIO2~Ff<$(}k{Pb%5yg-&nI{z7Lg^nEf0$a;Qmal?L- z2pks-jf(beF}>U{&MpAR{l1d-4M=z)9`$0A9+Co0GJYq9jImy1jfG9TwaErsKATV) zKs9(mtT}F7LI;Po&?|z(4hzREnHEHPgmh%GtMt}o^7VG>EDIDe+hGqj;Jm^X?YU~e zK9u)`%{wIYwdA!K?2`11FV7#~L8(Li4bP2m`gw#PUk|2{?5!j*KB?d`BPl8!t}cG8 zJ^XRwh!)6bKU~jaTt$mH2zwY#3TJ2X%=rcUT_Sl7J*OO@%L}#A#yAr-{gc1Ayjgo@ zrs{8Ei7r+?FmMQrJVsh9_?OQR^(26g5t&Sjgz(Cf(#jPPeM`cc<>-Zx=TMx#OwH^r zd2zNy@-M?6BM42ND^|+$TPKV!JH@OufzEiQ2V+o)ChlQ{&_|$-H${`2B7XsO%)=J^ za<{It4%h1c081rtrNG-<-h%mgybC#uNZ1nWMlO(x9vVNBW1LtVl@pB{O~rCrsqRM! zt{$XOC)kzEO1^X3^)sdo`-Qo=hn{#|JNfL3>Z@R~Ojy*Q-t2vGg{{R_%D?OzL`b%>>bhB-0g=qca{Qx{;2=i+7e3a8t?wFBS(@xQ9+q zpXU!HjNJ6YB*!nP^d{1H#zY3E$Kh>v!NF^+iGk^mSr)OxINGaELh-hcw+j{o@Qyz1 z$I*W*v2)qH55gu|Hr`y1&?g6|>cn@~m-RXV7o|od{40?J5y~(g51d~D@d6(`Pvn`g zBO8sj^zpAlwUf;oe!AKyRA8@fDT zm2T=^K?ZZna`os;FDQ(7WYW}KQhYo|6BB-;IbO2sM~lMlJz=3f#-GVB_e&*~zOp^{ z7_BJwxl8WsFbi+px&}+MHHJf72#E|)vj1mqI+vJQVgL{#j{%xFbvZMSA zzg$?M&z8uFN=5212QT$NXM0&P%N?Gf9-YbP>BPhM z4Z1^t?glp5L!#x0kq`~UdJ=(l`e8QeEsQV$zl*SoS6!QRqZS<{tL6UteHq^Xw*`!n zOR_%wsj%`ebDSR~it%z#_2Kq7VH}@32hIq64QFRjSGvJN$kq++YJP;pOI|J|3D~z+ z8-HsWIgSmp=FAc)HwrZ_8V{C4OfioHj?a|z)gxmhKfo^=;~!!+D&@7-lZMhm^o$Mn z`LZ(lxI++60X9yc3BOpgyBOUsC7xbqE5g6TOrsQ84q&66{-WfTv_>snrY}e(B zHn^#ecYww>la>v8Jp3^&lUrX{##RuO!WZ-EfIZxYA3*u~1%iPaE$ewZcPOUqz9g~Inio(Q0_Thh4u zj$)?A1+muD{lB6{$N+Y%LQof1l=pL~8+h&z2Bpt(OQKJMX5-JMZMmH@@RE-i2g$G{ z9w~9YCrGu}!y$4B>A7-ZB*&v0cj$%01ve)h<6O7zWH#IATk1zEm8==*#q06u;8g|Y z;GWFLcx4B$U;#5y6% z-Iun+VXKl81!>k zZ9bxRDtOsWUg13RFK#X%EP0IU4P^LGMb7>1;pT0VzqQ@Aa|0x2*tK|r<1PVaCGUdv zVC!oKEI$FG>@qmDFfG_e>SU045IUof93weAn7G`X7(Cb`@FlApleHN4?lXK|VQ&s+ z)G=*0(a1QAdFEUMr@JoUpDJD$gkTzO3hneY^dPXjHii?(k~rrd%r-2ple|Xc+?(6b zaoNnB^AzHnFWTHv=HFAN?$RIs02zHI&;y1)-z+>Jx+Lq`ZL@PYxx~kq`^z=T$(D0A ze>ZJ)jt|7komaqHBO30+=zk1LWPBV2$bW+KIl<7`V~N_%eF*;m22hdZ=;!2)1>(+a zLL0w<9Rb?1$RM)DSaSd+=)Fc+;}$Q-N6oQaH<#@eY3Y~kv4Qu8FE6P44<1u@nPto@lN0sAaFL(3;H z$j>h!8F**14)l3nV#mj@`7@?>SJHSRcJFM?UNyelPwHH<<}=Vfu$b`Y8$ z#cJp8=lHepf!~`}DcJB@aB^ZG1_l}ZtBE^WoMI#;QzNgLl+n0|DEVV+8@>zK1IN?| zh7NuRZeBtU=0`dlTubV6uP27;PI{cl&(g;4cR1GU4bT>Lh}ioq%&`-GY;g3lizLw?_wj_?>!myxwk{#naOtONFZg zTYKKx3{2=ogXd72-ru1Ec5x51MjhN?h2`Y<##B2M`|~+WBBpkhA;{o5_KB0xA=Kw^ zBRY7HJajhLItj!^?!NZK#5_y0c;4xSU$!ogR^`zKMqWWKSeJ_wYza`dd#3qIO@@NZ zCt!SRB~M|DM-18Oa;dng{p?LoQ9!OXl z?(s0kmnVIL+ha+i^(i+FF3U)E;D2|^*JdJYvm#o-p8Z9<_>ZFV5&*}ahXQt2dA{!Q zV#o8$;|WV17;PtMj*-Xi1ZMpWnB;vnW4k9@t;OMn_MWirJ;q#|cZ(a#4F__bTRR)T z{$=9ne!KZ+_7IW<9X@4r;N^E_cD=_CAwvN9eg6Q0An@`_k-GcWnRrZt=ZNEf4Fm5F z%a9z{>RtN=#KK$HExES>rv8)G1WMWd2ft{gJ3#hFd)xbMSc$1S8IGhcq^(D7w=o-u~M8xm|jlD6CJ z2yYX|u6-_$S@bC#IA5~7^~zxRVCaJda7zXk8omf~w3&iv*(jDZbMfF~YY{d_O|gxa zyPd_`S!YvKUvIBSP};L~wjJK;=AI2`wc{8M-!1#09fjlsUdZSMFw z#3Zu}dF;7Tv!lVV>d0i%ZgC3X&>Hx%o`(X_T#rl#D4_C{5%kIslDG1R=;V?pD<(%W`S0~_p{!tUsZJFCs2=(X@wiby$J|KnH z*t4+TdD|K9<*>P+Sbl4Lg>v=vR9Juv0@^<{xcrC;&ZBe3lk5^krKDVqRDDWfSC-wSO#854!}T`?fhc=OL}BwawbSr6J?84+-4!?={>pyQzzqXlsyOPdEv(9$FK3kIR0q&&V@P38N zAX#~YcL(;1koYcrv2(XS7iN>Xpt`gOn+>*rd>e46E<1*mPknclp2c{PtHV8xLCOOz&aROrz zf_WP{)`k{^d`Iq8L12w$0z&~|QNelq&F15ceZtH+kKQ*x<6?QTXkW6-HR9zSZHKoW zpEg;M&$Kh-u2&c3?nc=OEwJOnYvTBS&wm2jBNN?i=DZVSamRAzT$a&UM)L7&FK6z? zjt!PO4rc;e$X*uj<>)3)b-JW^U_%*4VtB)s^otgrNPmxbHjQ{*!6?4lc$rh;YkB5R z@Cj=VR=$KEG(AvU9x#v^^1)q6=>4Bi=L9Xc4-znNVaDz47$;q=JT}|HQ})R(6zD9_ zaYz!5T(UHmF}^uBN!``#`{kM~o$}A!?g-smr@J;xJj~)CFP2$DL=^XfzX~j!!2MR6 zvA>kl{Y-9u+02C!Rc@5J`_F5SPo;3L3G_FH5ava17;Xt@@hQP1@r(~)o;*&S2V~^t ztPpcoqt~YY0E)hug5D)g07r3yVO?w(?&F+%u9z^ceqSDe%EJ=`=jVX6Y?4TNJ<9~K z-=nL!$I!DsEIW09Vu2pR#c#Wfd0r&;K34!B4Z{BPQ`yUXj8uYA+(^wQ>)X0(8)9|% z%cL2r=dVPm-hIXNFjl|dYLHv!kpT0`!FwxgBCasWxO(G)v=j#3l%0B z@Wcq>#HWeO)3kf8uvU2fsj+~(kIlHb57`M%mOD)eJ|GZ!h``LT>9F0A-tH2TdU9N) z($Nm};>|n;c7}b%S3k8sjszK;64_w!Kgh=Gw4M9d<#t|e6!2y~;~I;H;e>{`j!V0! zhI^Lp0*UTgM_Inzp`7Kg1Br+BBVi9>YERF~RiNJ%=gpUCyg?J5CESKaah4_7w4t0P z+b(V5_`4CegEcQJ8EJB!0TGxpj4`}I`g&Rz?jd0tHpGM!9>U1#_|iM9$!vk zn-Kp1ZIw33hFQFze$ckApM@sF zm#45@m~VAiOHrdS>keh^$%)Yp8SM(=h!Bg@b~E@-4X`&$J`mE(9sMxY0i65H$F-kC zdJm}rtjDO#JQD8O4>o=){wo<)HH`H+Wa-dPnP~0lvcGaVplRU=Bjvh%GNXuhn5YL( zv*%$8a_`eHT#0auL&8Cvtd1t+bmZBcIR_fMyBVRUPFzOt$*DIHz_Ge?$XI!ZbIWMm z(=Fk==*xoff`sK^+%VUowiV+b+8dyIcD=x?mXW3WOyf>W6P0DBcKU3`+jHy^$v+Ee%kEM)1!9^9-2BgjZC$HMS^ zqoH}aJvaOb)b=jY-^B&@A^g*9%8tG9V@j#+T@FA(z2hn9eO z`oN9eW9}K5VjLP=?>(o$TxL4Kurs(2Ii3QHe1<}i9DT^A{371-2S&45@d$?qkcl&& zd@_gK(->~Rqs@_4?nH=r%qQT4^ErPk4{-kgLdR?7Oh0x}2Cpxfd^v7;)r>wz2J+A3 z64>xRQrUVSIoR?nECq|qd)T~;BLgB5UJ!SOPqOPW7lxO=1nFlbob%+V7QsFjNHIV5 zQ3ul)Zbw~*_*dPjO7qHePo!oR;TYD-&y_A~0B3}i;PYeHnK&?KxwqbDPM#ToIT0dD z?K^_TUUT~pQf3HG(@pOYcq=lE^N;fmy+6y1GV1l^VSE=woA&L`-HINKby4w5D3 zJx+qvduQ!V0nfa;UU`l8wnpw`<~SNdz$VaG;~8Clj>2R-88i6!Syy;1(BfzxQqtq` z1+nJGIrFv#UJE{C!lpMj7c96sh6L_+0MO^1l_uruGu}R&Em(waml+At&(5Xl4>Nhz z1;lWWHu#-&=;wJ1dE#r_OIt*oz3NY-x{mw3Pk?lF{7cs=PqsGfNarDuh%wG_Orj&@ zh{Uc+JV;TeN#=IjfR8VU)0g=QA-xjl?QnZ_*bhkz(DX5mE-n@QQ%Po!-mWy>MI^<= ztHK)-ewK?2VR7JEA4m2OV(SOtzv3Q@G!rIbf?mn`_Pkq_0O1}P0jtEDkvDVU%M-$m zKY45=S_>rq01nyoZn42L9)gf4`v^c`|EkOr^?Pqgj0I?k+b7mrT^JtrLN&JPuJ-?z_e!={)zyAOZ zLP8%gfbCD)E@P|%-voj&75O$_KY2dxc>G25#rO6ox{MCewtE|CtP-8?2IMK=KqmSK zqpg~!WS%i^L?qvU^n-Tvq`QtdKm)EK zIJk4Gr(pTyP6@-fN0d(!H06nKQuX$P_Dhmid~veuAoMe~>rd|cbCSm2JOi~tyUB*E z1Q>momqy#_V>}0R^JL!#1;rj_iIiF4@jvy%K4SnP2@8*3)nc!}e{*4T0Y1682gDxd zAIjVhn}>7~`Q2iP{v@Z=dS4cLXP}!9dBe;Z;hrmAE&b8v14z;xHZa(5c(Gv|mG5(w zxfo_lm8XFv9c_+N;@p&YAI5B@$mW>Lholc2IkPnDgr*05g!5LvbxcHfEKSX|!fO3W zoKJ*x+bIqVK$khO-7?N^Ia^-h;qYAZAqX&VJ~|=h9G@(jaTp%#-}=B#%;z(4Q)bPF zxO0#}co&#A;Xk;NM8nxn5ES0uqnP5&we@q*pP2>;-%w{3SrEwd`TqbZy=ByW>a8OhMGqiYSDtlL3&%2)D?7y38&3KwJ^v@5z*oBHd{Sr0sf5a+1 z2$k?G4uIG0?w!wk0{+mw&(y!;PUi{?R&Ihl3HG6R`tyDUK4!tOo86GOH9rHn?HWDx znUDh@NNdsMk0&lXjqX(CjniS^Pwa&OdmX1|M2<(eYc+(3I;PWLwz(9pM@MhWZ9tYb1k!>$6w+r{1B@Nwd4|QO&%(RwR ze|^68&t?sLL%z7#BezASPT+DeeLCp*wJ)9U2MNd+dCoTFv$2c{4nTZ4BHd0tOKwN0 z=LGuZGsc5%FJsvJ#nXe2qT^gg+sj~GJAQ(mT%nz4%0~v?*hJ+xLG~^J_fb6`F&N>H zWFs9Vq2epcb~fU{r^LlJT_Rk`4-19|7cl~LATbAKMzuWN=XjEV&jd;YKW;3gYgxv~ zo-|WTc!0qfGnFrO9O;48dG|Xv&-x$>KP-E?4W2|j?BY%IXApWB_+(xHjQ5h9L;Gc# zC!1gxBzP_wlY0!E9~lV4){OVLkuW{nf%B*J$EjqIF5wP*&PM~(+ic<6fpZX0`H+Md z&b_>U_;`n*6ESVle6vT`4&~8QKP%kxb3SME+>xWvBh{u}uvj-%HargF%ADQT|8xlVTKQ`g;>`S?n`m~Vpk93^yJV;D~ z%f`PEmrvmhgYW=cc3Nob?(vy`!`{bVg_^1F0m;LB-Jdz+8TyW3^ypRP#r%=zmnzxi zF(mf?0Gux~0d7F~FZRt%^1gJNK|&EZ3)9&n|9Hb=eQZdHQ3eIQjczT(4_rJ=*?k4U2OxfQ^&RM2DR* z;yx}MzGP9mF6Y57+a>4;zFKF4gVS$#e7>djZnEMeA~Ls27lUVGnlHd5;H*!eU|u9B zGnh63zPK>AXsNEECV>EaGTlc%7z3Nk2WIF%mpy~TcSrd}v#?})wZP{@y{?Q|(Ayk{ zJRU6m0r43)ns+GzHd}q}Ne2?hLSa`q5T`c;4&KQ#Lb;J}Qcbh}0JMb!jC?>(ubUWU zKhSIw-(&3{Mk;9}kRER^T_8$S(d4*c=?md9dP416Xog zGQ512V>!}88`w*nBM|h#J^+9|bdB6KeYYEOT8-F$4#~d(tNHhlhmTYlYs+i{H!=opMKZ6)QOm#Wuxf%RK zFQs1qN7i8HXzSVF`UI5G&!W5@$k^Zkcnv`N!?62#F%$WUPYXIkgY3C^U4+QwzIt@r zw(SRUT<#x~{mOF(p7z6Y;%prb<#1pDIwQ_qH#zCHS@GdQ7vRENC$*8XNlBYIgEM+Y zeSeoX74Dyqu6mDs%RdA9*J*DMSV4_)Le*p(-*Di$&N&vd_#q zk^&%6+Qp1+Ypl z4WlOF9IIBA&(a@u(&9O?gNSPlTIJ^;4`$&c8}#!XuJS$^FJ$Ls7~($!)EzJ6LUMD1 z?STj~`?)YQSMS>8cYp`WZQz)EJg?af^Kkgs+k%PX!sAUbEI7i?#5Dd`W4}))qYZxB zvRuXI(E9A3{tvGw(f>O$5&^}S7k>R(Be6jmQji~r12cCW^!{|~z-ka_AXQqz3 zxz0HnHgv&|s^9!K~aDYN}MBCt+}e)i|QVJTK%z~L`B8+?s5I_xNppN(FtOR2cEM0X#&t2@5q}#)Gfd} z2k6oUDn1+M*vuCPPi2tw-bVib7X25nXYeHYiN{1z;4akrNOnnq@dSpT1j}{DyKneN znpzg{-V5b!S#UPP*b-VSS-iJX8`)RzLnTLlf%x_p;2R z=rQzM#RbV>zBJs=^+vja7Q4@JlcC1 ztQ+>b393Fl9zy2(iWS<lYmn3ogY)pTk$9Nb1$y=^R zxy;9V*X#%mhfw?z3>rRoY%Lh1`_?m_KW)$Zgqb4vQy5IZFG}Uxciq)OFlI784bzD&_e?;p6M=oZv>x6cpIaRb&B>*uQ2gG z*>X>IaqcaD3>!1k>R9}~C!P`xb<-ToSPMeU$dj2ShaDqn+h$wdPAmaJ*5{1&MrE3$ zC$V6E4e}MccMR{%@r_5qL(Q|Vx%BqpB40vR5%%UhzK5eSN$a2I=6JW#dKmRN^>gw- z!4`}OdPwU{Q_(8}eEFrByZ1UmbXTva&G){{a!i%+jwA*M2fIH&ep5V49k-d$+!A3k zUppIdA@*pAfg!!(@=}NFv%{TFz>VL^wdi}cMIIBw$K`4lP|5&r4)M)iEDV@WsC5Kp!+r`0li{a=ZFw_le5LaPumNnxaQsTS(xD> zLvV>`LX#71_4f|t?65yjVeSv%kAg+tME$(mxroOn&ofO)yk&!Z7~{v=;&fqy#E8S> zdK5dchpCJ-UkkB=c5V-b&x_(HeKEP&e4aN5vD$uYFP0C){_bCxEGm}gpxg(~$aWB^ z)_x3=i}(+DWA7{UAVq5kI?h4<_DIF<`RA1x5aPVbkIR@`XOwuCiZbv_{!)3)@An6f zGlaXWIEw&Hqt+Zq^0aOoDUrB2pPem;Th{CJLBr$1{Qg$kvWy-M7Kl56+DQ}xiH+y- z!7006_(%cFA-%!7+l_YT7QDXl6p|W_dt@;i^y!EJ;x8{MGl82X@W@k{G2og08(b`a zl00ODjZZx0$nZ+-WdjoJxgG3sdEpA5lb2jA}z)~g;h zwA9xvtIg2#JqZU3v*(F3(bIP_N$8%b{zqq^^dIEn9q{`k?2nT7c|?4U#5k;b_i%^4 zTspjmxOHe2`*^kRQ%pQLVQr1$7bhbn&D zp@)D!qB3_T_kO(Ntj%hz)+ovFZa=yS*R@#TcaMy{(ZL zQ6qQ^9X!e4;f@e`FD%ku1&DFx9~J>{Pdv>#&KsZ1vd_xmp|Jk|fZ=XH9I!pvq%3WT zVAzQxGjZJrBO3U9$THWgh}8hyAq}I$$72p|3!*R<*AI_n+aE6l(3ubBQ<(2oU;y*( zGjpsQ$=`S`x~e?yFP9PJVhPBTV0_ z+QXuAu5g~s{pSTs5%z8-tpsoavL)W;1!t}It$a1`SiTVZZ3XRODDgJ=&~!x28Ge@= z!J*8G008;Rg#0v+6bL54!{|7k?9W2cS?}x6^D_Sc1f8EjpYb~;BJiK7=&R$w_DVFz zGvM%+`(O5u5yCHRpG5Kaotcg8c3s_p8!m7WC_K~ICx+t~UGeIfb0-{rTC{%2h8u6BX&bD!@0g;fI&Xc z=j?@&96T6qL%K<~;r>)k=$`eF2fulkM0+LY=!VWUM)SSv8svyW@_z~>Oh!Nlgs-x| z!$Dt6f2pqV?mz;o9*AV~`v%5L@?qz>CW^(Tp$-us{O9r$9E>nA&Kfym&r!o$xIZPH zRNisqNWr}fjfa<+m>p~kzSxS3ne-;ht9&?k@Q#<|Gf@B?d=Ul8J}5ZUSaXfsaej*b z08E5CTJlVImc$Oq{`fpNVo}5ceEV8(C zuW^@rSS;`nh|1Z0yT+y$l^5zziO%oPs*0H?AxkAb!Z z0iDjIFlDzc2Rz&I76avC=vd*7>aH}C>x&mt?t zIdXVG(yWED^L0RxHyckF9eqwZHoL$l;UY{I<1B=c_z!RBg^p-G79YVp1EcR8$dN=l z{TXy%K(603h`%HsWEaS%ywh|OV~-`Yc#pEJ!`cLW{LA63v)D3#Aan5=Ij{C3K|gTh z;HN#d)!nt}#3i$*2Rt8%4iPu@UQ$hc?1jLI?nIch{;eyobO67>H=jX=Hm%=8i)Ys? zpHu!F=hWT*0LA0T$+7tXr}n|U@svX&+VpgEhgzi`&hk#l_vH93^U*#Acb=TY@@w2NypQllGJnk(ZINawU3cu z2f-&UJ$Mgfi`_xzJy{pa&_ev9Bkmk9KDnAtjIiGhXO2KxK1qC*K1<54lW=*@)BQi2!0?JuJdw<+1)vEBa|4?(%3eZ=a96CH}3?r7=0cvXM`gyx6@c# zv_WyF*=Q0TW=IU0%=e8Wy0~Y+MEA2JRel0w3WRn%DLrl|_-{PV7hMTaiM7G2gZP+} zBhwOA3p3OOe#bIS2LOCWK8!-B%w(TnzqlUMVV(!OU&0j#>OR&ZkA~lEg+l>k z<<63a-R9`nO_p0s^>f9~vV9V2`iE1)4H9-eS&}mb8xY(l;3tv(7tyu+m~BQ`n0*^< zEhI{Rmv8Y`__rgqgb<-Le2D`b{0(@N2at}D{vqPI3_bUwze9sphALCJkDL<-#qHu5 zG@L(KV8PG8-b*==WjyS@QQP$vK8VIp_~;msR&l?Ku=qdi$zwS{{IMAHck^4l9lf7XuzJ;HMvM0^)?l>G-aaz-E@yPGsWg7#4x8N>XE$4XmeTge};2esznLEV$ZR1F*?nB9%WP{_{gIOzw24ZGp zDTXud=6jiI*fw5Hz6M#z_$;R;%a4&AA>u1R$0W?pha8O6NYA`+Eo?ck@Hyf|%;RJo zk-P-C`tOS$W7qCy5lx5#z+@b`a$Hf{0~cMA_BrimYlh3**aJjwLDmjXT| zWtno9c7k*;I6g5uuan2PLBM5x@tWp`0M0pr_;`z(!dj2HVEtX0?0!8Ra!>f|pH6GT z4j?eFY2Ofi1D$tR$b-|K*2R_JHe!&5?YNCOd-$9OfPwZ%bUGn+_il!;w6=rGOpxO^ z!3fm>tlm<1!*(~KX5C9AEvL&W+M***p0^KbaGEVKT7 zy-yGG9G=Hv>q!1(gx9gbaJ~FR$-3_D$0O!?GcRYpN2KIgu=us7@qlp|mW&hdH$`rB z;&~PyCjxS@b8O|9*N4i;#pixYnR1QAvq;H#A~e8%)~5ycW>j{tjKGf$4@u<>vz<97 ztRW!bFrT<0DQm*Khp=PP-uG(TA^CpM_MpylVg}$BJgh+rYjiO!3^eZv5ATQ49-s=! zKHa`OMEMmy)PNPk%LW+}gt3}}a$^m`X-K2tB>>K$Fv@&5aUUozVrM?1L+4@U)Nh#! zR8)F*!hvSdR|^Mbz*f?jJsGZ`!f=CJX@J_iUnFq-^j%*=%0l^H3%RErM!3 znI3xj8nJ4+fUx5mNdz6fJY&QsH(=BJz?$Hs5*&#j|4>9mouPzFnVRA8asL3i`>_jPN9!Cd{oY{85HfAAMwzp}JQ`obRIBsz23xM?u(Ts>NPtZQowo~}I&I!Z-JQ*3} z3A|bu&UG`}j(J1LKd^B+xh@ZgH-JAvT{(o#mz=yP_93C;_4ig5QT~(tpp(am`aifu zhTuK8Lu`1svIjy7Wu6c1vA|*Z?nq(TuKe8tN5zqL!ova$0wfC~7NDnoo9%}5fXGUKZqi+5eBfjN#zB`q3aC#27{uXq3W5dy& zju6MWvMWC9*wKYl_cq;wPfHKin-{pxVaVBC;DieRMtUd6;{KmNo!H=cQp*Y80G9pu z>|H)XizrS%IC-riT^|_zvu%T`o4_zL(|E2%3o@B3B0obJ z;2ISCnt#f zj|MeEuYgU(4qtY%91hn8`;ZLx(KyNP35Y(!NeC7ua28}tZdbWR3s)|r*zQT@UZnTY z0G%mg^?>9N9?XDYG~T%#t#V$_BnTE`8m7l`yo=z+IOG?eqxrOQC|(>*vJK5MRFgbaGcBS59^q|RLJNKAF$2HalBQg@3Yyk zB8&1m4aV=lOk4njVE+K?B09c{%4N;MeKP@X*j+^7kQ?}X!1tGlWSoaA1^2Vp%5rHJ zkbawoyX1-7Vq;)b@DFptE{Pt-Swsu20FB7Whk`+8C@*`MaUx{+2$Rih@_9s_FD~+H z`cvoK9}v^?X{ER@CwvfW57`518SP>CA4wIUp5?lC$D-FHVag6{eTBo>P4ka`)Zve} z@RayvAijXj46XSXk$haf~=Vu11mWZY*{` zbu-oh{2)lBA9dz=@R9O!0%P7$JJ|_(kuNhAkIWkll{BHv&QEc(%iw3+Ht;?s=;OjY zR*`tc?%2c3a0w3fVbL=i9$ZT(WA{&?pc{28`aj|~;O0lu&PfEQ_hVs+===T!%8&bp zn;7G@+zId!ofBLztGGl0r#LX=d!Ig}I@=;LlZ~`!WuYvE<=#plm*S4YO}>qt#2GLO zJrJvK2lB;u7*BGKf(;LhjiaxxJK}E#5b=`H&Yxm(z&8dXp0Sud<%=%g%Trk{@fcx@ zyhi77u^mbn7e3jBT)XiCSdS&5_@_W>-=fWd-+AcE09H2*#OCEUnfO>Yz5|H8*Cez? zEHJoE%Wb}!ZMNEaKmH}KQ*+IR-SMndTD*g zfB`5EYctRSoGV^5e_*Cq18+g({dCxR=wr*1as@w9>Gm=WE$0B@`@z7((jAuD>wHDW z=mEjUiM36)9ywfv3ZnZE10f%1G6T5;4R@Va1w)DELld%o5o5?=4-CP1;gU}d0DlWy zz_SOe59nM{P3hypegH@x44KE)f4*$cIA3{eE%Q9K!DJMRVB7-cbX_4RWf0Tc{oHQz zq*}T!?TfH7x>)jI$(i*g5H`Sh{J~O37l!0!IvbYV_wdHR9!3?=kmVj_ zSlCh3%DUO}^K-#qGmDdeVg~*LZohNf{CaHX`S*QGiJYUVF31yBb0XXb*bj~ww1b(q zUzm>%5&UegStj(s^O8+MNX#w^TzgKA?=UWBP;g!)*6`SLZwWdW{kMk9pKR9K9}4iF zo0kq7KO9|bQ=V_KA##WBa8R+nBkzU$j)^_h`Z>|S6ZbT5s&%MXy^S&+C`yNpQ&6bO=g>3=RXF@IX0dH3P`7PSCy_=`BEJ<|A* zuZG$T7X^J68vYpXR-}UHfg3$GULhGIeSG@w_&@#|#okAzPx$LB&Krnr;n{x`x}JSM zjGTs(mJRmVlS@5#KBZv&2=BKaFAviuN7$5X(;KTT^ab$8hQqvv+(Im`;zyM>WiPZn(ISS|7CeD^Y64Y`YXzVN-shF<#HStoho&@bSNK239g68sUco#+gJN3HFMD*HbCJYoxZZhf`Janyu{k~n z9=7(r_Ca1QTpV=-0})^zc_Q3^dT}6NMxP6#0jN*bL-CSa&~SU^#7AD^=6@>(=hNsB zJOXdvb7V)^{VtY$ntgEF8@&*D{sf%2nKTY2bq6XC{FgOEkCDhLfa2%vXP-;~Jdrsr zq_@$ZTw{1yr1Z;zz$Y0DCkM0;@4A06!OiA0-#P}!203{qtJny61RlxMv<2|be*30b z@)oJqqnGf#$@Dot{6=fv)Mtnp1-iA3;_l+=)nf~fS8^c1*BEZ#2MxZ2(?UVo;1*;8 zP1sBW2iXN+^rR+oayq-iXmo*wE^i<1{{VjW=Y2u#o3b6m88Pk!u@PL$MdVGE_%HVn zhv^gGS^RWBc*)J0?LLU+*&o$1R5>@U9>jwxy*bn5`P31iihcXc!L)ik` z4e7?r$S6Mm=IUM#yWj4KdJF9T0Cs+!A&`MsbHZFW7~~cgpG8;E@6);JX2rw_m=gN! zw*LV6M%Lbc!yFmtB(IQ?_jLS=82r!A%1P+}4=XehhI?;W?M?!~4D2hraBvifBPy!@`Z}ofM-}}$DnK@@? z&a?a5opa_qqjUEbcOs$H#3>Zw$gk` z>NFv9yhLCBgnG_v(y~Lmzf9iQ6`7No6N>m#6>oGp>|6ElNf5@Z7MJA?eO3Gw zy(mHU(M26~z!5&^oBGaL0MUIaL8q}rG*J@abJF?wyw%ywo#`%}qnP?M1~uMn6Lb;!9AnX91yT*98`+-S!>!Ht)y8~cJ!c(W?i;7w7fIXM^E zdQ~TyNO^MUN&!_b8P)OpGk)dvg?e!#u3sMWRIie`P(3Vp&hq$7NDR!gYW>(en^dPY zy>0(OzkM$wu>jN4nOl|gQI|&in4e_TZe|jr=Vu>^F+qN;zfkX{ybwhX)-Rq_>c!9$ zx`(KB3X!*3FK{@UJ-eEXZ3zner<7!!w%D>N`Yxr&kdK6Ag$17B`s?zp-_?{vFER4Z ziKe!-&yIItbr5mj1F)7QMC&mtT6|4 zxFRe#(?sqq&-CLt<6Ck_6O~mI4*$h{EnswW&5<0DjqOXS95?{!eZH;5{(FFmh)D>1 z0bM{c0wrII*6}dDl@B(Xt6ByP;?foJ#)C>o-KLd{$DwN51>+OtwQ-a8+dcR4b6CrHjwUd|Fp7%|<~^ zH*32-J31p(YrvR0u4kXYYImS%AF9G%;1L}_0Fg3^(9AAQ`YU!Pm#y6Lax#GB3QYk;OX4N=%H~^0NT^G-AO|g zeneQ7G2Im)hRe!n%t0U1+I>1E&ye-tgfAR>mYEkJohYsP2(@&I%LHmGTV5+{k!Ey4 zzD(XH(~T*{qt?zNB_SIS4a`|8ig;Z79zIIBi7vcw<__}9Y2UEx81j3Z&~2Py!XP$K zSS=?)&D-nCmJEKfCokAJs<&QXe(9%s0KMZ#fpv8FRR?;cxZxHTG0{-F)T!#dP3p<^ zWzAAs1j%ZebAagnOT%i)a{Iw5Ap!D9G6(pA&BFBS#RAkIlL3`eu@9JD`LHMG zm}UgA*+>;1ZcL*Z+!aH!Y6XjL<@slatjpv{Hi3l(Zo~Xn&qG&)zeZ9SRkc%Wfoq#4 z)$GuY@Oa}#*CMLcJ_ByGT(1~h*UHf6l-{d@B`!)E6M9Es=0;CWi*{csxWIYiT8nSo zib9!zvR~z%mHSfo3!~odUyS>HAzk1~i^M#AgnrU|03ySD&I^gjX_; z&Uo>UHO0bCu%@(XLNSuG2;D8HzZVxuIljqBx<$-ZDEF9_OrqFd>^Wya{1` zw|kRRQ{og5IM+6DJ_Wa35!5X%aIL0M7dvgb)-hhz_u1yHrME_Zffgpo8#&Oi8RMMC z^PJFd{*(d;MwKxc$6LWcRc*|vB5417MNU=^FfLjr1$Ikpr<<)H$jXM=efnNF_$rq=JWy(r6Ap@cnRrAdVT-7F=+n2Ms-CvkO=J!*BhD`gQPQTHQK z%Ah$qr)Lpb+z|qnH9vVC&H6{f?5~Cjw%!}ZJ@2cyq!vd8MRhw5Z0G zOLbfdu7>=0R?j&+*k*2T%iZiyp72BHtXuU;g9Ptm*GbS4;Ym?!ywwYidGAoJ8!Hwb8y`IU+gQZ4a z*K80wRJ*J{Jo%kXP0AKqX0OHwyptMP%BKkp-$svNEv8Xt8R^hdCI!mNx>Wo~`@61n zKOdzZZLE(BP&_RYdd`%`Ho{bzrz$EOWx$Dc_Vc+Hw(&02t0EzC4WXy722;-$OyvBe zGjYTO8ntg;82%&bzSs|9SbSf4#@3PN91;E8OFtzFdbDCbk4!|We$97inOb_-nF_P% z>539)x}WdA1U+FWJOH({rM+!t;|QPC5Sja9aM~BUNcAi8w&rL@u6DnEkL*v&qZWF1 z_(ekH;m^0qJ?}KS#jOSfR|bFcD{-uqsD~#c*vT7>jp~~k11o71?1E>bMf*o=+unz$ zbI*KxqxP<|^V*47|NEpNOD{)s$Ig>J!RK|R-GMJNQYn%)GOm!x%D{I|Arl+l+-5Si zC*Zjet*3=Sl0T+h9P?D##>V$lwG%7eCrBAMFdJ$HO@C%PDOqbh5@pD#xo<4qHxxYp z;R81*09}xQXEwIA-g?a80JL4x;x6h^CeiPzi}kK0n3dHx^%8aKChyc^o)~oKMzz-- zTiN5&2m(@`)XRUEGy2MtUi$A$FO0>$^N;wgS9@Pd73^Ng<2%+Qjp{sFToYPrgpEed z$hnEr6R_$Qvl#Cx>@$f3V{L+UN1qe8Ct8oceJweiq)EU(WOZbu{tS72j`Qa!Ri zYm~tz2Xu(j%P#*-gT*YAoYTS=!$vhzQjz3Gv4-mqj_LE{g`CSe$;@a6eDvSVf`x>& zSj2;ujIe^6$7#!1&ovG}0zeD_p)W61Lw7bvS#)7_z)sb}InO%y^di?ysxzgpskF<=Bg5y2v)(9f=>S9gH^~2gX`oJom zAlf`D8x;?axYwE92Q7`Y_{H$2>&1AwIn=td#C19=uN#tu^q8+H)6p;m0r&HC`JpQT zfdxl74vmak7XmQ~riERc@`!-d2 zd40z#FIkn=Tv^1J<#cjAd6n1q)YUwx0=LuSzMJ&g+n8&NMwA%g$=al@hICAZOvzd} zaPRV-&v!yEDsaP_0M5Wsv5YwM>ID&-s7224wNkaKp-OT)pM|r}lE%7I6gQ#lq^?%N z%Z1}Z)tK*zdxPBo$=4>d)k!5>I+=s?+i)dw2Qy);sv3- z0Ij@nEZ_AG)pG+nz8O5lL{nM$O)f7*G8Cy+WU_9AFMh&(f@qf;#hzi?1_B|6tgJB% zayJlLPTb@M(mzTZfJ&Vxs{nt8ACc*)LE5-5B^@&^Vp!SK;(SwE=I@I%Ngnr+h~|IL z1p3g)OmAAGtI2WbSH*LM5iHY5nE8;0NJ6=5Jz`I(K*M-oSM@s}T*zw`Fehl!vew!ynt27-0~T7uF4Y!F*S;OrN+eoGpJC$dKrL*vb8C$B@?Y?9@*9v5`E9COOlfdIaeQ0wx$Q}}gDm^SI*82@6E0G$r z?(Oq|4ElF|MEjgukXvBLGyNH7YX%4;<8r97>d4y;L*)qakG`rO(sL{AkZmBuiZ_BM zJN)CVaEmt3sK{;SwWb~>T4(|OKBF>d-AL_R%Y<#?nCw$Ncmk7q;Y)aI$+qA~#=GcG z8HuOwYW1d343qK;{t92nDm2l2)MdbP>665iZUGj>MzTi%BNbQfB4$A|FgWoW6_bpZ z4dP-E=%*=T*xnmo8Hl+9(6M$;tX!7Q_0Jit`#4rTcIvlzT(AJq0tGSK3E+mf*Uc(` z{Wd)?cxtXqz_{D9H`ta3pjwtWWeG8d1KRyI5RA$9XAc2vd;rQW#I&=`k$}BC@FUn> z+v$A*UG_@-3br=`K%0X>Hyzu98v%eUK>%bYsDk0F7>kM1^?YE!qN;ZRh=%=vncSvp z2HP?O&_UQYW1BB9V01?SjIR4!Y@`$*9l-$a0)VUnumZ3@sEH$OlZS%FC z?=P^ji9nYWfrADh68->`ejSkTAB=)`VN464gI=tB;s~}!l^FB~*7iUx!ZLw=b_S5I n2t2E%ge4Wqs@lFZpkQC`w-)LFNG{|za#!)Y0oW$u!RY@1+^s{K literal 0 HcmV?d00001 From b6fa01cc52e9ec0e0cc188554080de3c39192577 Mon Sep 17 00:00:00 2001 From: Kirill Rudakov Date: Thu, 15 May 2025 23:37:30 +0300 Subject: [PATCH 0983/1024] fix link to `impl From for Stdio` --- content/Rust-1.87.0/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Rust-1.87.0/index.md b/content/Rust-1.87.0/index.md index f8aee6878..aa92c16f5 100644 --- a/content/Rust-1.87.0/index.md +++ b/content/Rust-1.87.0/index.md @@ -189,7 +189,7 @@ trait Foo { - [`io::PipeWriter`](https://doc.rust-lang.org/stable/std/io/struct.PipeWriter.html) - [`impl From for OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle) - [`impl From for OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle) -- [`impl From for Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html) +- [`impl From for Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CPipeReader%3E-for-Stdio) - [`impl From for Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio) - [`impl From for OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd) - [`impl From for OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd) From d45b9d094a2f9bed277b648478f7fcba45c12a93 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 May 2025 16:35:51 +0200 Subject: [PATCH 0984/1024] Update dependency rust to v1.87.0 (#1610) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/main.yml | 2 +- .github/workflows/snapshot_tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8fb737687..ab6585843 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -7,7 +7,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.86.0 + RUST_VERSION: 1.87.0 jobs: lint: diff --git a/.github/workflows/snapshot_tests.yml b/.github/workflows/snapshot_tests.yml index d19df8d1f..1c40abd68 100644 --- a/.github/workflows/snapshot_tests.yml +++ b/.github/workflows/snapshot_tests.yml @@ -4,7 +4,7 @@ on: env: # renovate: datasource=github-tags depName=rust lookupName=rust-lang/rust - RUST_VERSION: 1.86.0 + RUST_VERSION: 1.87.0 jobs: snapshot-tests: From f0c950456149c17ea5251e99af0fda13d290ddac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 May 2025 12:26:30 +0200 Subject: [PATCH 0985/1024] Lock file maintenance (#1612) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 90cb819af..b581d7757 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,9 +37,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "bstr" @@ -65,9 +65,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.22" +version = "1.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" +checksum = "5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766" dependencies = [ "shlex", ] @@ -452,7 +452,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fddf93031af70e75410a2511ec04d49e758ed2f26dad3404a934e0fb45cc12a" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "crossterm", "dyn-clone", "fuzzy-matcher", @@ -633,7 +633,7 @@ version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -682,7 +682,7 @@ dependencies = [ [[package]] name = "rust_team_data" version = "1.0.0" -source = "git+https://github.com/rust-lang/team#5262b6ba63e0bb3378897f9705c524c83aeac278" +source = "git+https://github.com/rust-lang/team#b4c5a3e8ddb3ba553079ed4714921e467207c55c" dependencies = [ "indexmap", "serde", From 00ead23cc2f9c064739c0e1297ec9166432ecad4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 21 May 2025 19:23:29 +0000 Subject: [PATCH 0986/1024] import generated blog post template --- content/Project-Goals-2025-April-Update.md | 1496 ++++++++++++++++++++ 1 file changed, 1496 insertions(+) create mode 100644 content/Project-Goals-2025-April-Update.md diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md new file mode 100644 index 000000000..54ee31f97 --- /dev/null +++ b/content/Project-Goals-2025-April-Update.md @@ -0,0 +1,1496 @@ ++++ +path = "9999/12/31/april-project-goals-update" +title = "April Project Goals Update" +authors = ["Rémy Rakic"] + +[extra] +team = "the Goals team" +team_url = "https://www.rust-lang.org/governance/teams/launching-pad#team-goals" ++++ + +The Rust project is currently working towards a [slate of 40 project goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html), with 3 of them designated as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2025h1/goals.html#flagship-goals). This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated [tracking issue on the rust-project-goals repository](https://github.com/rust-lang/rust-project-goals/issues?q=is%3Aissue%20state%3Aopen%20label%3AC-tracking-issue). + +## Flagship goals + + + + +**Why this goal?** This work continues our drive to improve support for async programming in Rust. In 2024H2 we stabilized async closures; explored the generator design space; and began work on the `dynosaur` crate, an experimental proc-macro to provide dynamic dispatch for async functions in traits. In 2025H1 [our plan](https://rust-lang.github.io/rust-project-goals/2025h1/async.html) is to deliver (1) improved support for async-fn-in-traits, completely subsuming the functionality of the [`async-trait` crate](https://crates.io/crates/async-trait); (2) progress towards sync and async generators, simplifying the creation of iterators and async data streams; (3) and improve the ergonomics of `Pin`, making lower-level async coding more approachable. These items together start to unblock the creation of the next generation of async libraries in the wider ecosystem, as progress there has been blocked on a stable solution for async traits and streams. + +**What has happened?** + + + + +
    +1 detailed update available. + + + + + + +Comment by @tmandry posted on 2025-05-20:
    + +
    + + + +**Async fn in traits.** An FCP proposal to stabilize return type notation was started in https://github.com/rust-lang/rust/pull/138424. However, it is currently blocked on concerns that stabilizing it now will make it more difficult to ship Rust's next-generation trait solver. + +**Async fn in dyn trait.** There have been discussions around next steps to support this in the language. More experimentation is needed, along with an initial RFC. + +**dynosaur.** More breaking changes have landed and we expect to release v0.3 soon. + + + +
    + +
    + + + +
    + + + +**Why this goal?** May 15, 2025 marks the 10-year anniversary of Rust's 1.0 release; it also marks 10 years since the [creation of the Rust subteams](https://internals.rust-lang.org/t/announcing-the-subteams/2042). At the time [there were 6 Rust teams with 24 people in total](http://web.archive.org/web/20150517235608/http://www.rust-lang.org/team.html). There are now 57 teams with 166 people. In-person All Hands meetings are an effective way to help these maintainers get to know one another with high-bandwidth discussions. This year, the Rust project will be coming together for [RustWeek 2025](https://2025.rustweek.org), a joint event organized with [RustNL](https://2025.rustweek.org/about/). Participating project teams will use the time to share knowledge, make plans, or just get to know one another better. One particular goal for the All Hands is reviewing a draft of the [Rust Vision Doc](./rust-vision-doc.md), a document that aims to take stock of where Rust is and lay out high-level goals for the next few years. + +**What has happened?** + + + + +
    +3 detailed updates available. + + + + + + +Comment by @m-ou-se posted on 2025-04-23:
    + +
    + + + +Update: + +Below is the preliminary schedule for the "pre all hands" and all hands: + +![Image](https://github.com/user-attachments/assets/9dd9aa14-1b37-478b-9071-3865ebac3994) + +![Image](https://github.com/user-attachments/assets/4849caa8-c7af-4a9e-b1ee-75c1fafc7a6c) + +![Image](https://github.com/user-attachments/assets/5888677e-3319-453c-9758-f8014954ebe6) + +The last day has a lot of empty slots for now. I'm still working on filling those, but I'll leave a few empty slots to allow for flexibility during the event itself. + + + +
    + + + + +Comment by @m-ou-se posted on 2025-04-23:
    + +
    + + + +I published our covid policy: https://rustweek.org/covid-policy-all-hands-and-unconf/ + +And got us a ton of covid self-tests and Aranet4 CO₂ sensors: + +![Image](https://github.com/user-attachments/assets/09f53af5-785b-4871-b7be-06f58b1b786d) +![Image](https://github.com/user-attachments/assets/fdd79c8f-94bb-40b2-9cf9-ab949ebeb4e8) + + + +
    + + + + +Comment by @m-ou-se posted on 2025-04-23:
    + +
    + + + +For remote attendance, I got us a bunch of Jabra Speak2 75 conferencing speaker-microphones. They are battery powered and work out-of-the-box both over USB and Bluetooth on any platform. + +I'll put them near the entrance for anyone to borrow for any of the meeting rooms. + +![Image](https://github.com/user-attachments/assets/1669b50d-a60c-4ba0-8e82-9f403820d0a7) + + + +
    + +
    + + + +
    + + + +**Why this goal?** This goal continues our work from 2024H2 in supporting the [experimental support for Rust development in the Linux kernel][RFL.com]. Whereas in 2024H2 we were focused on stabilizing required language features, our focus in 2025H1 is stabilizing compiler flags and tooling options. We will (1) implement [RFC #3716] which lays out a design for ABI-modifying flags; (2) take the first step towards stabilizing [`build-std`](https://doc.rust-lang.org/cargo/reference/unstable.html#build-std) by [creating a stable way to rebuild core with specific compiler options](https://rust-lang.github.io/rust-project-goals/2025h1/build-std.html); (3) extending rustdoc, clippy, and the compiler with features that extract metadata for integration into other build systems (in this case, the kernel's build system). + +[RFC #3716]: https://github.com/rust-lang/rfcs/pull/3716 +[RFL.com]: https://rust-for-linux.com/ +[RFL#2]: https://github.com/Rust-for-Linux/linux/issues/2 + +**What has happened?** The primary focus for this year is compiled flags, and we are continuing to push on the various compiler flags and things that are needed to support building RFL on stable (e.g., RFC #3791 proposed adding `--crate-attr`, which permits injecting attributes into crates externally to allow the Kernel's build process to add things like `#![no_std]` so they don't have to be inserted manually into every file; MCPs for ABI flags like [`retpoline`](https://github.com/rust-lang/compiler-team/issues/868) and [`harden-sls`](https://github.com/rust-lang/compiler-team/issues/869) and [implementation of `-Zindirect-branch-cs-prefix`](https://github.com/rust-lang/rust/pull/140740)). A number of issues had minor design questions (how to manage clippy configuration; best approach for rustdoc tests) and we plan to use the RustWeek time to hash those out. + +We are also finishing up some of the work on language items. We have had two stabilizations of lang features needed by Rust for Linux ([naked functions](https://github.com/rust-lang/rust/pull/134213), [`asm_goto` syntax](https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/#asm-jumps-to-rust-code)). The trickiest bit here is arbitrary self types, where we encountered a concern relating to pin and are still [discussing the best resolution](https://rust-lang.zulipchat.com/#narrow/channel/425075-rust-for-linux/topic/2025-05-07.20meeting/near/516734641). + + + + +
    +3 detailed updates available. + + + + + + +Comment by @ojeda posted on 2025-05-20:
    + +
    + + + +Update from our 2025-04-09 meeting ([full minutes](https://hackmd.io/@rust-lang-team/rkqdLEER1l)): + + - Some progress on `arbitrary_self_types`. In particular, decided to do with respect to pin and other related cases. + + - `asm_goto` is solved, apart from output operands. For `asm_const`, https://github.com/rust-lang/rust/pull/138618 is nominated. + + - ABI-modifying compiler flags: some PRs waiting review, e.g. https://github.com/rust-lang/rust/pull/138736. + + - `--crate-attr` RFC is up: https://github.com/rust-lang/rfcs/pull/3791. + + - `-Zsanitize-kcfi-arity`'s implementation PR got merged: https://github.com/rust-lang/rust/pull/138368. If all is good from the Linux side, a stabilization PR will be sent. + + - CFI `core::fmt` issue: https://github.com/rust-lang/rust/issues/115199. + + - Discussion around `bindgen`, `repr(align)` and packed types. RFC nominated for lang discussion: https://github.com/rust-lang/rfcs/pull/3718#issuecomment-2790654254. + + + +
    + + + + +Comment by @ojeda posted on 2025-05-20:
    + +
    + + + +Update from our 2025-04-23 meeting ([full minutes](https://hackmd.io/@rust-lang-team/BJZ69jLkgx)): + + - Naked functions were stabilized, which could see some use in the kernel. + + - Lang discussed `#[repr(align)]` (the kernel is interested in, at least, the global one, i.e. `-Zmin-function-alignment=N`). + + - `asm_const`: @nbdd0121 will reply on the latest review comments in the implementation PR: https://github.com/rust-lang/rust/issues/128464. + + - `--crate-attr`: the author of the RFC (https://github.com/rust-lang/rfcs/pull/3791) is looking for a new owner. The RFC is in proposed FCP. Small updates to the text may be needed. Otherwise compiler probably wants to merge it. @Mark-Simulacrum to be pinged. + + - Clippy configuration etc.: @flip1995 will be at RustWeek, the plan is to discuss it there. + + - `rustdoc` extract doctests: @GuillaumeGomez and @ojeda plan to discuss it at RustWeek. + + - `-Zsanitize-kcfi-arity`: waiting on the kernel side (`tc-build` support sent). + + - CFI `core::fmt` issue: PR submitted: https://github.com/rust-lang/rust/pull/139632. + + + +
    + + + + +Comment by @ojeda posted on 2025-05-20:
    + +
    + + + +Update from our 2025-05-07 meeting ([full minutes](https://hackmd.io/@rust-lang-team/S1Y3l7Kxel)): + + - Enthusiasm and plans for RustWeek. + + - `arbitrary_self_types`: update from @dingxiangfei2009 at https://rust-lang.zulipchat.com/#narrow/channel/425075-rust-for-linux/topic/2025-05-07.20meeting/near/516734641 -- he plans to talk to types in order to find a solution. @davidtwco will ping @petrochenkov about `rustc_resolve`. + + - Sanitizer support and `#[sanitize(off)]`: discussed by lang at https://github.com/rust-lang/rust/pull/123617#issuecomment-2859621119. Discussion about allowing to disable particular sanitizers. Older concern from compiler at https://github.com/rust-lang/rust/pull/123617#issuecomment-2192330122. + + - `asm_const` with pointers support: lang talked about it -- lang will want an RFC: https://github.com/rust-lang/rust/issues/128464#issuecomment-2861515372. + + - ABI-modifying compiler flags: two MCPs filled: https://github.com/rust-lang/compiler-team/issues/868 (`-Zretpoline` and `-Zretpoline-external-thunk`) and https://github.com/rust-lang/compiler-team/issues/869 (`-Zharden-sls`). + + Implementation PR for `-Zindirect-branch-cs-prefix` at https://github.com/rust-lang/rust/pull/140740 that goes on top of https://github.com/rust-lang/rust/pull/135927. + + @davidtwco agreed there is likely no need for a separate MCP for this last one, i.e. it could go into the `-Zretpoline*` one. @azhogin pinged about this at https://github.com/rust-lang/rust/pull/135927#issuecomment-2859906060. + + - `--crate-attr`: @Mark-Simulacrum was pinged and he is OK to adopt the RFC (https://github.com/rust-lang/rfcs/pull/3791). + + + +
    + +
    + + + + +## Goals looking for help + + +## Other goal updates + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @BoxyUwU posted on 2025-04-30:
    + +
    + + + +I've a PR open to make resolving inherent assoc terms in item signatures not result in query cycles, this will be necessary for uses of inherent assoc consts in the type system under mgca. camelid is currently working on representing const items as aliases to type system consts rather than bodies like they currently are, this is necessary to implement normalization of const const aliases under mgca, it will also allow us to implement the core mgca check of const aliases in the type system being equal to valid const arguments, and also we'll be able to split out a full gca feature gate *without* that restriction. + +The PR mentioned in the previous update to handle const aliases with inference variables correctly has turned into a bit of a rabbit hole. It turned out that there were *stable* issues around const evaluation and illformed constants resulting in ICEs so I've wound up trying to get those fixed and have been writing up a document explaining justification for a breaking change there. + + + +
    + +
    + + +
    + +
    +
    +
    + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @davidtwco posted on 2025-05-07:
    + +
    + + + +- We've started a regular biweekly sync call with upstream stakeholders in build-std from the lang, compiler and cargo teams where we discuss aspects of our tentative design or clarify constraints. +- @adamgemmell has continued to draft our proposal for build-std, which we're discussing in our regular sync calls. +- We're hosting a session at the All Hands next week to discuss build-std. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @obi1kenobi posted on 2025-05-03:
    + +
    + + + +We encountered some speedbumps this month. + +TL;DR: +- While working on `'static` and "outlives" bounds, we discovered Rust's ability to _imply_ bounds that are not stated explicitly at the definition site. +- Implied bounds are load-bearing for SemVer; failure to take them into account will produce _both_ false-positives _and_ false-negatives. +- While technical limitations make it infeasible for `cargo-semver-checks` to correctly deduce implied bounds, `rustc` has this capability internally. +- We have [asked the rustdoc team](https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/Show.20implied.20bounds.20in.20rustdoc.20JSON/near/515146429) to expose implied bounds in rustdoc JSON by using those `rustc` internal APIs. + +There are some good news as well, though! While looking at the `#[target_feature]` attribute: +- We discovered previously-undocumented SemVer hazards. +- We [discovered a case of unsoundness](https://github.com/rust-lang/rust/issues/139368) when that attribute is used on trait methods. +- With the help of contributors and the rustdoc team, rustdoc JSON began including additional information that will help future `cargo-semver-checks` versions catch those SemVer hazards. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +2 detailed updates available. + + + + + + +Comment by @nikomatsakis posted on 2025-04-08:
    + +
    + + + +In reviewing https://github.com/rust-lang/rust/pull/138628, we realized that the tests were not behaving as expected because they were running in Rust 2015 which had distinct capture rules. My [suggestion](https://github.com/rust-lang/rust/pull/138628#pullrequestreview-2750344682) was to limit the `use` keyword (or at least use closures...) to Rust 2021 so as to avoid having to think about how it interacts with earlier capture rules (as well as potential migrations). I believe this follows from the Edition axiom that [Editions are meant to be adopted](https://rust-lang.github.io/rfcs/3085-edition-2021.html#editions-are-meant-to-be-adopted). + +There is an interesting tension with [Rust should feel like one language](https://rust-lang.github.io/rfcs/3085-edition-2021.html#rust-should-feel-like-one-language). My feeling is that there is a missing tenet: the reason we do editions and not fine-grained features is because we wish to avoid combianotoric explosion, where odd combinations of features can lead to untested scenarios. But that is exactly what would be happening here if we allow `use` on older editions. So I think the rule should be that you make new features available on older editions *up until the point where they interact with something that changed* -- in this case, `use` closures interact with the closure capture rules which changed in Rust 2021, so we should limit this feature to Rust 2021 and newer. + +Put another way, you should never have to go back and modify an edition migration to work differently. That suggestions you are attempting to push the feature too far back. + + + +
    + + + + +Comment by @spastorino posted on 2025-04-30:
    + +
    + + + +We've modified codegen so that we guarantee that `x.use` will do a copy if `X: Copy` is true after monomorphization. Before this change the desugaring to `clone` occured only before monomorphization and hence it would call the `clone` method even for those instances where `X` is a `Copy` type. So with this modification we avoid such situation. + +We are not working on convert `x.use` to a move rather than a clone if this is a last-use. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @Eh2406 posted on 2025-05-03:
    + +
    + + + +I will be giving [a talk at Rust-Week](https://rustweek.org/talks/jacob/) about the history that brought us to this project/goal. Aside from preparing for that talk I have not had time for this effort. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @epage posted on 2025-04-30:
    + +
    + + + +- Key developments: + - Continued efforts to clean up the existing code + - t-testing-devex has been working out where the crates should live in preparation for publishing them ([#t-testing-devex > crate ownership @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/404371-t-testing-devex/topic/crate.20ownership/near/513724212)) + - Looking to build on the work done for `test-r` and `rustest` crates as they align with the long term vision +- Blockers: +- Help wanted: + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @eholk posted on 2025-04-30:
    + +
    + + + +@b-naber and I have been working on the rustc side of the implementation for this feature. + +I merged https://github.com/rust-lang/rust/pull/139647, which adds the unstables `-Z namespaced-crates` option to the compiler and enables parsing of externs like `--extern foo::bar=libbar.rlib`. @b-naber has led the resolver changes and has a draft PR up at https://github.com/rust-lang/rust/pull/140271. + +The implementation work has raised some [new concerns](https://github.com/rust-lang/rust/issues/122349#issuecomment-2832241624) about the overall direction, so work is ongoing to resolve those while continuing to make progress in the meantime. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @celinval posted on 2025-04-30:
    + +
    + + + +We fixed issue https://github.com/rust-lang/rust/issues/136925 that was blocking contract annotations on constant functions, which unblocks the initial PR to add some contract annotations in the standard library (https://github.com/rust-lang/rust/pull/136578). The PR currently triggers a CI failure which we are investigating. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @jieyouxu posted on 2025-05-01:
    + +
    + + + +Update (2025-05-01): + +- Not much updates, recent compiletest changes were surrounding error annotation strictness/canonicalization and landing a new executor that doesn't depend on libtest, and I've mostly been involved in reviewing those. +- Next planned changes are first to introduce some discipline into compiletest's error handling and contributor-facing diagnostics, because configuration and directive handling currently still has a ton of random panics all over the place. + + + +
    + +
    + + + + + + + + + + +
    +2 detailed updates available. + + + + + + +Comment by @yaahc posted on 2025-04-16:
    + +
    + + + +Small progress update: + +following the plan mentioned above plus some extra bits, I've implemented the following changes + +* changed the json output to include the timestamp +* changed the file naming to ensure uniqueness and not overwrite metrics for the same crate when built with different configurations + * previously I was piggybacking on the hash used to name artifacts in the `.cargo` or `build` directories, which in the compiler is known as `extra_filename` and is configured by cargo, but it turns out this doesn't guarantee uniqueness + * I've replaced this with the ["Strict Version Hash"](https://rustc-dev-guide.rust-lang.org/backend/libs-and-metadata.html?highlight=stable%20version%20hash#strict-version-hash) (SVH) + * Doing so introduced an ICE when compiling some crates with incremental compilation enabled. I've since resolved this in https://github.com/rust-lang/rust/pull/139502 and tested this version against the top 100 crates in the ecosystem and their dependencies to verify its working +* I've been working with the infra team and they've setup a cloud instance of influxdb 3.0 and grafana, influxdb is setup, grafana in progress +* I met with both libs and lang to discuss their needs related to the unstable feature usage metrics and metrics in general + +Next Steps: +* I've got everything setup for the docs.rs team to start gathering a sample dataset for which I will then upload to the server the infra team setup +* update locally hosted PoC impl to work with recent changes to metrics files and naming and validate that it's working as expected +* work on the queries for the grafana instance to setup a graph per feature showing usage over time + * probably going to create fake usage data to with for this +* on the side I'm also looking into how much work it would be to track relative usage of various library APIs under a single feature flag (e.g. https://github.com/rust-lang/rust/issues/139911 tracking the specific functions used) +* develop a better understanding of the expected cost of running an influxdb server + + + +
    + + + + +Comment by @yaahc posted on 2025-04-22:
    + +
    + + + +posting this here so I can link to it in other places, I've setup the basic usage over time chart using some synthesized data that just emulates quadraticly (is that a word?) increasing feature usage for my given feature over the course of a week (the generated data starts at 0 usages per day and ends at 1000 usages per day). This chart counts the usage over each day long period and charts those counts over a week. The dip at the end is the difference between when I generated the data, after which there is zero usage data, and when I queried it. + +With this I should be ready to just upload the data once we've gathered it from docs.rs, all I need to do is polish and export the dashboards I've made from grafana to the rust-lang grafana instance, connect that instance to the rust-lang influxdb instance, and upload the data to influxdb once we've gathered it. + +![Image](https://github.com/user-attachments/assets/4d3db7cf-04bc-400c-8791-ac10c402ccdf) + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @lcnr posted on 2025-05-01:
    + +
    + + + +We've made a lot of progress over the last 1.5 months. My change to opaque types in borrowck is pretty much done now: https://github.com/rust-lang/rust/pull/139587. It still needs some cleanup and an FCP to actually merge. We've already merged multiple cleanups on the way here. + +We then started to test crater with the `-Znext-solver=globally`. @compiler-errors and me encountered and merged the fixes for 13 issues since then: https://github.com/rust-lang/rust/pull/139791 https://github.com/rust-lang/rust/pull/139798 https://github.com/rust-lang/rust/pull/140236 https://github.com/rust-lang/rust/pull/139900 https://github.com/rust-lang/rust/pull/139828 https://github.com/rust-lang/rust/pull/139774 https://github.com/rust-lang/rust/pull/139762 https://github.com/rust-lang/rust/pull/139789 https://github.com/rust-lang/rust/pull/138845 https://github.com/rust-lang/rust/pull/140306 https://github.com/rust-lang/rust/pull/140305 https://github.com/rust-lang/rust/pull/140276 https://github.com/rust-lang/rust/pull/140302. @Nadrieril was also helpful by minimizing an encountered issue. + +With these improvements and multiple in-flight changes we're now at significantly less than 100 remaining regressions in the top 10000 crates and have started the first complete crater run today. We are using a single PR for all crater runs. Check out https://github.com/rust-lang/rust/pull/133502 for the current status and the stack of in-flight changes. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @veluca93 posted on 2025-04-30:
    + +
    + + + +Key developments: nothing substantial. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @blyxyas posted on 2025-04-29:
    + +
    + + + +Monthly update! + +- In [the last monthly update](https://github.com/rust-lang/rust-project-goals/issues/114#issuecomment-2730435572) we saw the impact that [interning symbols](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_span/symbol/struct.Symbol.html#method.intern) had on the program's performance. An effort to minimize this via a pre-interning symbol mechanism has been implemented in https://github.com/rust-lang/rust-clippy/pull/14650 and https://github.com/rust-lang/rust/pull/138682 + +- We're phasing out the old ["str path"](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.match_def_path.html) infrastructure into a new lazy alternative. https://github.com/rust-lang/rust-clippy/pull/14705 + +- We're currently in the effort to optimize some documentation lints that took up to 15% of the Clippy runtime (depending on how much documentation for each line of code you had.) See https://github.com/rust-lang/rust-clippy/pull/14693 + +- We've also been experimenting with lots of new possibilities, mainly on parallel lints. Althought they currently are not performance improvements, there are some great hope put into them. + +- Memory consumption and branch mispredictions are being monitored, they do not seem out of the ordinary. + +- Monitoring cache misses and references, turns out that about 31% of cache references (792m found) are cache misses (253m found) in some benchmarks. We will check what's behind those numbers and if they can be improved. + +This has been a great month for performance! + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @oli-obk posted on 2025-04-30:
    + +
    + + + +No updates + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +3 detailed updates available. + + + + + + +Comment by @epage posted on 2025-04-30:
    + +
    + + + +- Key developments: + - The [cargo-plumbing repo](https://github.com/crate-ci/cargo-plumbing) was created to serve as the central place for collaboration on this effort + - @ashiskumarnaik posted crate-ci/cargo-plumbing#5 for the first plumbing command +- Blockers: +- Help wanted: + + + + + +
    + + + + +Comment by @ojuschugh1 posted on 2025-05-05:
    + +
    + + + +Hi @epage , I am interested in working on this project. If you are still looking for someone. + + + +
    + + + + +Comment by @epage posted on 2025-05-05:
    + +
    + + + +@ojuschugh1 iirc there is a GSoC proposal for this and we are waiting to hear whether it was accepted. If it was, it would likely involve coordinating with them on tasks. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @JoelMarcey posted on 2025-05-02:
    + +
    + + + +Key Developments: The FLS repo has officially been transferred from Ferrous to the Rust Project. https://github.com/rust-lang/fls is now live. + +Next step: Integrate the FLS with the Rust build system in order to support publishing within project processes. + +Blockers: None yet. The build system integration could create some support requests, however. + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @celinval posted on 2025-04-30:
    + +
    + + + +We have started the refactoring. @makai410 has moved all the existing code into a single crate and they have started moving things around. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @davidtwco posted on 2025-05-07:
    + +
    + + + +- @Jamesbarford has been working with @Kobzol to implement a database-backed job queueing mechanism, which will better scale to support multiple collectors and ends up being the key part of rustc-perf needing adapted to support multiple collectors. +- @Jamesbarford has also upstreamed tests for the existing queue ordering (rust-lang/rustc-perf#2072). + + + +
    + +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @lqd posted on 2025-05-05:
    + +
    + + + +Here are the key developments for the month of April + +- @amandasystems + - extracted a handful of PRs out of the gigantic placeholder rewrite PR, to make it easier to review and land + - https://github.com/rust-lang/rust/pull/139960, https://github.com/rust-lang/rust/pull/139965, and https://github.com/rust-lang/rust/pull/140466 +- Tage + - continued experimenting and making progress with the early phase of the process, and making building constraints, and traversing them per loan, lazy + - started extracting some of that work for discussion, review, PRs, as well as writing reports for his masters thesis +- @lqd + - continued on improving the algorithm. We're now at a point where we have an approximation of the datalog algorithm, which handles our UI tests -- except one where control flow in a loop connects to regions that are live before and after the loop: this causes a false positive that our datalog implementation used to accept (via a more comprehensive but slower approach). + - we're currently discussing whether we can cut scope *here*, as this formulation accepts NLL problem case 3. We'll need to evaluate what limits this formulation imposes on expressiveness outside NLL problem case 3 and streaming iterators -- and whether it indeed has an easier path to becoming production ready. We'll also still try to see if it's possible to still improve the algorithm and avoid emitting errors on [issue 46589](https://github.com/rust-lang/rust/issues/46589), since we initially hoped to fix this one as well. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @epage posted on 2025-04-30:
    + +
    + + + +Key developments: +- @fee1-dead posted rust-lang/rust#140035 for compiler support for frontmatters (which supersedes rust-lang/rust#137193) + +Blockers: + +Help wanted: + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + + + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @davidtwco posted on 2025-05-07:
    + +
    + + + +- We've resolved a handful of rounds of feedback on rust-lang/rust#137944 from @oli-obk, @lcnr and @fee1-dead; resolved issues from a crater run (bar one); and worked to decrease the performance regression. + - We've removed the constness parts of the patch to make it smaller and easier to review. Constness will come in a Part II. + - There's currently a -1% mean regression (min 0.1%, max 5.3%) that we're working to improve, but starting to run out of ideas. Regressions are just a consequence of the compiler having to prove more things with the addition of `MetaSized` bounds, rather than hot spots in newly introduced code. + - Given the large impact of the change, we ran a crater run and found three distinct issues, two have been fixed. The remaining issue is a overflow in a single niche crate which we're working out how we can resolve. + - We're largely just waiting on hearing from our reviewers what would be needed to see this change land. +- We've not made any changes to the Sized Hierarchy RFC, there's a small amount of discussion which will be responded to once the implementation has landed. +- We're working on changes to the SVE RFC which further clarifies that the language changes are decided by the Sized RFC and that the SVE RFC is only proposing the forever-unstable `repr(scalable)` attribute which are non-`const Sized` and lower to `vscale` in LLVM. + + + +
    + +
    + + +
    + +
    +
    +
    + + + + + + + +
    +1 detailed update available. + + + + + + +Comment by @jswrenn posted on 2025-04-18:
    + +
    + + + +**Key developments:** After the last lang team meeting, Ralf observed that the additive/subtractive dichotomy (and its attendant design concerns w.r.t. `Drop`) could be sidestepped, since a field type *already* cannot be put into an unsound-to-drop state without unsafe code. With this observation, we can reduce field safety tooling to two rules: + +1. a field should be marked unsafe if it carries a safety invariant (of any kind) +2. a field marked `unsafe` is unsafe to use + +The RFC now reflects this design and has more or less reached a fixed point. Ongoing discussion on the RFC is now mostly limited to weighing this design against a proposed alternative that mixes syntactically knobs and wrapper types. The RFC would benefit from formal review by @rust-lang/lang. + + + +
    + +
    + + + + + + + + + + + + +
    +No detailed updates available. +
    + + From 7187713e37c39e6082aba8f4fbce6d0e350a89df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 21 May 2025 19:26:57 +0000 Subject: [PATCH 0987/1024] make async goal update the TL;DR --- content/Project-Goals-2025-April-Update.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md index 54ee31f97..a0066ff4b 100644 --- a/content/Project-Goals-2025-April-Update.md +++ b/content/Project-Goals-2025-April-Update.md @@ -23,6 +23,12 @@ The Rust project is currently working towards a [slate of 40 project goals](http **What has happened?** +**Async fn in traits.** An FCP proposal to stabilize return type notation was started in . However, it is currently blocked on concerns that stabilizing it now will make it more difficult to ship Rust's next-generation trait solver. + +**Async fn in dyn trait.** There have been discussions around next steps to support this in the language. More experimentation is needed, along with an initial RFC. + +**dynosaur.** More breaking changes have landed and we expect to release v0.3 soon. + From e3ee560a069fce9bd1e8f6653dc737df38795476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 21 May 2025 19:32:29 +0000 Subject: [PATCH 0988/1024] summarize all hands updates as TL;DR --- content/Project-Goals-2025-April-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md index a0066ff4b..d7664dce5 100644 --- a/content/Project-Goals-2025-April-Update.md +++ b/content/Project-Goals-2025-April-Update.md @@ -70,7 +70,7 @@ The Rust project is currently working towards a [slate of 40 project goals](http **Why this goal?** May 15, 2025 marks the 10-year anniversary of Rust's 1.0 release; it also marks 10 years since the [creation of the Rust subteams](https://internals.rust-lang.org/t/announcing-the-subteams/2042). At the time [there were 6 Rust teams with 24 people in total](http://web.archive.org/web/20150517235608/http://www.rust-lang.org/team.html). There are now 57 teams with 166 people. In-person All Hands meetings are an effective way to help these maintainers get to know one another with high-bandwidth discussions. This year, the Rust project will be coming together for [RustWeek 2025](https://2025.rustweek.org), a joint event organized with [RustNL](https://2025.rustweek.org/about/). Participating project teams will use the time to share knowledge, make plans, or just get to know one another better. One particular goal for the All Hands is reviewing a draft of the [Rust Vision Doc](./rust-vision-doc.md), a document that aims to take stock of where Rust is and lay out high-level goals for the next few years. -**What has happened?** +**What has happened?** Things have been progressing smoothly. The work to prepare the schedule for the "pre all hands" and all hands has started with the teams. The COVID policy has been posted. Self-tests and CO₂ sensors have been received, as well as speaker-microphones to allow for remote participation. From f2fcb243c97a7e72feb04e815a44fe9961a79050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 21 May 2025 19:49:04 +0000 Subject: [PATCH 0989/1024] fix goals looking for help section --- content/Project-Goals-2025-April-Update.md | 34 +++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md index d7664dce5..b3c679b63 100644 --- a/content/Project-Goals-2025-April-Update.md +++ b/content/Project-Goals-2025-April-Update.md @@ -268,10 +268,42 @@ Update from our 2025-05-07 meeting ([full minutes](https://hackmd.io/@rust-lang-
    - +
    ## Goals looking for help + + + + + + +*Help wanted:* Help test the deadlock code in the [issue list](https://github.com/rust-lang/rust/labels/WG-compiler-parallel) and try to reproduce the issues. If you'd like to help, please post in [this goal's dedicated zulip topic](https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Promoting.20Parallel.20Front.20End.20.28goals.23121.29/with/506292058). + + + + + +
    + + + + + + +*Help wanted:* T-compiler people to work on the blocking issues [#119428](https://github.com/rust-lang/rust/issues/119428) and [#71043](https://github.com/rust-lang/rust/issues/71043). If you'd like to help, please post in [this goal's dedicated zulip topic](https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Stabilize.20public.2Fprivate.20dependencies.20.28goals.23272.29). + + + + ## Other goal updates From d696bd56604b7fab475c7c13cf0b18e082319659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 21 May 2025 19:50:53 +0000 Subject: [PATCH 0990/1024] fix RFL section about naked functions --- content/Project-Goals-2025-April-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md index b3c679b63..be6c4b893 100644 --- a/content/Project-Goals-2025-April-Update.md +++ b/content/Project-Goals-2025-April-Update.md @@ -164,7 +164,7 @@ I'll put them near the entrance for anyone to borrow for any of the meeting room **What has happened?** The primary focus for this year is compiled flags, and we are continuing to push on the various compiler flags and things that are needed to support building RFL on stable (e.g., RFC #3791 proposed adding `--crate-attr`, which permits injecting attributes into crates externally to allow the Kernel's build process to add things like `#![no_std]` so they don't have to be inserted manually into every file; MCPs for ABI flags like [`retpoline`](https://github.com/rust-lang/compiler-team/issues/868) and [`harden-sls`](https://github.com/rust-lang/compiler-team/issues/869) and [implementation of `-Zindirect-branch-cs-prefix`](https://github.com/rust-lang/rust/pull/140740)). A number of issues had minor design questions (how to manage clippy configuration; best approach for rustdoc tests) and we plan to use the RustWeek time to hash those out. -We are also finishing up some of the work on language items. We have had two stabilizations of lang features needed by Rust for Linux ([naked functions](https://github.com/rust-lang/rust/pull/134213), [`asm_goto` syntax](https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/#asm-jumps-to-rust-code)). The trickiest bit here is arbitrary self types, where we encountered a concern relating to pin and are still [discussing the best resolution](https://rust-lang.zulipchat.com/#narrow/channel/425075-rust-for-linux/topic/2025-05-07.20meeting/near/516734641). +We are also finishing up some of the work on language items. We have had one stabilization of lang features needed by Rust for Linux ([`asm_goto` syntax](https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/#asm-jumps-to-rust-code)). The trickiest bit here is arbitrary self types, where we encountered a concern relating to pin and are still [discussing the best resolution](https://rust-lang.zulipchat.com/#narrow/channel/425075-rust-for-linux/topic/2025-05-07.20meeting/near/516734641). From b943dea69401c5738a4958751b275f27a4571901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 21 May 2025 20:02:28 +0000 Subject: [PATCH 0991/1024] remove May update from RFL section --- content/Project-Goals-2025-April-Update.md | 33 +--------------------- 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md index be6c4b893..526e709f9 100644 --- a/content/Project-Goals-2025-April-Update.md +++ b/content/Project-Goals-2025-April-Update.md @@ -170,7 +170,7 @@ We are also finishing up some of the work on language items. We have had one sta
    -3 detailed updates available. +2 detailed updates available. @@ -234,37 +234,6 @@ Update from our 2025-04-23 meeting ([full minutes](https://hackmd.io/@rust-lang- - - - -Comment by @ojeda posted on 2025-05-20:
    - -
    - - - -Update from our 2025-05-07 meeting ([full minutes](https://hackmd.io/@rust-lang-team/S1Y3l7Kxel)): - - - Enthusiasm and plans for RustWeek. - - - `arbitrary_self_types`: update from @dingxiangfei2009 at https://rust-lang.zulipchat.com/#narrow/channel/425075-rust-for-linux/topic/2025-05-07.20meeting/near/516734641 -- he plans to talk to types in order to find a solution. @davidtwco will ping @petrochenkov about `rustc_resolve`. - - - Sanitizer support and `#[sanitize(off)]`: discussed by lang at https://github.com/rust-lang/rust/pull/123617#issuecomment-2859621119. Discussion about allowing to disable particular sanitizers. Older concern from compiler at https://github.com/rust-lang/rust/pull/123617#issuecomment-2192330122. - - - `asm_const` with pointers support: lang talked about it -- lang will want an RFC: https://github.com/rust-lang/rust/issues/128464#issuecomment-2861515372. - - - ABI-modifying compiler flags: two MCPs filled: https://github.com/rust-lang/compiler-team/issues/868 (`-Zretpoline` and `-Zretpoline-external-thunk`) and https://github.com/rust-lang/compiler-team/issues/869 (`-Zharden-sls`). - - Implementation PR for `-Zindirect-branch-cs-prefix` at https://github.com/rust-lang/rust/pull/140740 that goes on top of https://github.com/rust-lang/rust/pull/135927. - - @davidtwco agreed there is likely no need for a separate MCP for this last one, i.e. it could go into the `-Zretpoline*` one. @azhogin pinged about this at https://github.com/rust-lang/rust/pull/135927#issuecomment-2859906060. - - - `--crate-attr`: @Mark-Simulacrum was pinged and he is OK to adopt the RFC (https://github.com/rust-lang/rfcs/pull/3791). - - - -
    -
    From 5a0a123224a2d07f676cccee420e2059838b4426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Wed, 21 May 2025 20:13:56 +0000 Subject: [PATCH 0992/1024] linkify --- content/Project-Goals-2025-April-Update.md | 52 +++++++++++----------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md index 526e709f9..d79272672 100644 --- a/content/Project-Goals-2025-April-Update.md +++ b/content/Project-Goals-2025-April-Update.md @@ -46,7 +46,7 @@ The Rust project is currently working towards a [slate of 40 project goals](http -**Async fn in traits.** An FCP proposal to stabilize return type notation was started in https://github.com/rust-lang/rust/pull/138424. However, it is currently blocked on concerns that stabilizing it now will make it more difficult to ship Rust's next-generation trait solver. +**Async fn in traits.** An FCP proposal to stabilize return type notation was started in . However, it is currently blocked on concerns that stabilizing it now will make it more difficult to ship Rust's next-generation trait solver. **Async fn in dyn trait.** There have been discussions around next steps to support this in the language. More experimentation is needed, along with an initial RFC. @@ -114,7 +114,7 @@ The last day has a lot of empty slots for now. I'm still working on filling thos -I published our covid policy: https://rustweek.org/covid-policy-all-hands-and-unconf/ +I published our covid policy: And got us a ton of covid self-tests and Aranet4 CO₂ sensors: @@ -162,10 +162,12 @@ I'll put them near the entrance for anyone to borrow for any of the meeting room [RFL.com]: https://rust-for-linux.com/ [RFL#2]: https://github.com/Rust-for-Linux/linux/issues/2 -**What has happened?** The primary focus for this year is compiled flags, and we are continuing to push on the various compiler flags and things that are needed to support building RFL on stable (e.g., RFC #3791 proposed adding `--crate-attr`, which permits injecting attributes into crates externally to allow the Kernel's build process to add things like `#![no_std]` so they don't have to be inserted manually into every file; MCPs for ABI flags like [`retpoline`](https://github.com/rust-lang/compiler-team/issues/868) and [`harden-sls`](https://github.com/rust-lang/compiler-team/issues/869) and [implementation of `-Zindirect-branch-cs-prefix`](https://github.com/rust-lang/rust/pull/140740)). A number of issues had minor design questions (how to manage clippy configuration; best approach for rustdoc tests) and we plan to use the RustWeek time to hash those out. +**What has happened?** The primary focus for this year is compiled flags, and we are continuing to push on the various compiler flags and things that are needed to support building RFL on stable (e.g., [RFC #3791] proposed adding `--crate-attr`, which permits injecting attributes into crates externally to allow the Kernel's build process to add things like `#![no_std]` so they don't have to be inserted manually into every file; MCPs for ABI flags like [`retpoline`](https://github.com/rust-lang/compiler-team/issues/868) and [`harden-sls`](https://github.com/rust-lang/compiler-team/issues/869) and [implementation of `-Zindirect-branch-cs-prefix`](https://github.com/rust-lang/rust/pull/140740)). A number of issues had minor design questions (how to manage clippy configuration; best approach for rustdoc tests) and we plan to use the RustWeek time to hash those out. We are also finishing up some of the work on language items. We have had one stabilization of lang features needed by Rust for Linux ([`asm_goto` syntax](https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/#asm-jumps-to-rust-code)). The trickiest bit here is arbitrary self types, where we encountered a concern relating to pin and are still [discussing the best resolution](https://rust-lang.zulipchat.com/#narrow/channel/425075-rust-for-linux/topic/2025-05-07.20meeting/near/516734641). +[RFC #3791]: https://github.com/rust-lang/rfcs/pull/3791 + @@ -187,17 +189,17 @@ Update from our 2025-04-09 meeting ([full minutes](https://hackmd.io/@rust-lang- - Some progress on `arbitrary_self_types`. In particular, decided to do with respect to pin and other related cases. - - `asm_goto` is solved, apart from output operands. For `asm_const`, https://github.com/rust-lang/rust/pull/138618 is nominated. + - `asm_goto` is solved, apart from output operands. For `asm_const`, is nominated. - - ABI-modifying compiler flags: some PRs waiting review, e.g. https://github.com/rust-lang/rust/pull/138736. + - ABI-modifying compiler flags: some PRs waiting review, e.g. . - - `--crate-attr` RFC is up: https://github.com/rust-lang/rfcs/pull/3791. + - `--crate-attr` RFC is up: . - - `-Zsanitize-kcfi-arity`'s implementation PR got merged: https://github.com/rust-lang/rust/pull/138368. If all is good from the Linux side, a stabilization PR will be sent. + - `-Zsanitize-kcfi-arity`'s implementation PR got merged: . If all is good from the Linux side, a stabilization PR will be sent. - - CFI `core::fmt` issue: https://github.com/rust-lang/rust/issues/115199. + - CFI `core::fmt` issue: . - - Discussion around `bindgen`, `repr(align)` and packed types. RFC nominated for lang discussion: https://github.com/rust-lang/rfcs/pull/3718#issuecomment-2790654254. + - Discussion around `bindgen`, `repr(align)` and packed types. RFC nominated for lang discussion: . @@ -218,9 +220,9 @@ Update from our 2025-04-23 meeting ([full minutes](https://hackmd.io/@rust-lang- - Lang discussed `#[repr(align)]` (the kernel is interested in, at least, the global one, i.e. `-Zmin-function-alignment=N`). - - `asm_const`: @nbdd0121 will reply on the latest review comments in the implementation PR: https://github.com/rust-lang/rust/issues/128464. + - `asm_const`: @nbdd0121 will reply on the latest review comments in the implementation PR: . - - `--crate-attr`: the author of the RFC (https://github.com/rust-lang/rfcs/pull/3791) is looking for a new owner. The RFC is in proposed FCP. Small updates to the text may be needed. Otherwise compiler probably wants to merge it. @Mark-Simulacrum to be pinged. + - `--crate-attr`: the author of the RFC () is looking for a new owner. The RFC is in proposed FCP. Small updates to the text may be needed. Otherwise compiler probably wants to merge it. @Mark-Simulacrum to be pinged. - Clippy configuration etc.: @flip1995 will be at RustWeek, the plan is to discuss it there. @@ -228,7 +230,7 @@ Update from our 2025-04-23 meeting ([full minutes](https://hackmd.io/@rust-lang- - `-Zsanitize-kcfi-arity`: waiting on the kernel side (`tc-build` support sent). - - CFI `core::fmt` issue: PR submitted: https://github.com/rust-lang/rust/pull/139632. + - CFI `core::fmt` issue: PR submitted: . @@ -460,7 +462,7 @@ There are some good news as well, though! While looking at the `#[target_feature -In reviewing https://github.com/rust-lang/rust/pull/138628, we realized that the tests were not behaving as expected because they were running in Rust 2015 which had distinct capture rules. My [suggestion](https://github.com/rust-lang/rust/pull/138628#pullrequestreview-2750344682) was to limit the `use` keyword (or at least use closures...) to Rust 2021 so as to avoid having to think about how it interacts with earlier capture rules (as well as potential migrations). I believe this follows from the Edition axiom that [Editions are meant to be adopted](https://rust-lang.github.io/rfcs/3085-edition-2021.html#editions-are-meant-to-be-adopted). +In reviewing , we realized that the tests were not behaving as expected because they were running in Rust 2015 which had distinct capture rules. My [suggestion](https://github.com/rust-lang/rust/pull/138628#pullrequestreview-2750344682) was to limit the `use` keyword (or at least use closures...) to Rust 2021 so as to avoid having to think about how it interacts with earlier capture rules (as well as potential migrations). I believe this follows from the Edition axiom that [Editions are meant to be adopted](https://rust-lang.github.io/rfcs/3085-edition-2021.html#editions-are-meant-to-be-adopted). There is an interesting tension with [Rust should feel like one language](https://rust-lang.github.io/rfcs/3085-edition-2021.html#rust-should-feel-like-one-language). My feeling is that there is a missing tenet: the reason we do editions and not fine-grained features is because we wish to avoid combianotoric explosion, where odd combinations of features can lead to untested scenarios. But that is exactly what would be happening here if we allow `use` on older editions. So I think the rule should be that you make new features available on older editions *up until the point where they interact with something that changed* -- in this case, `use` closures interact with the closure capture rules which changed in Rust 2021, so we should limit this feature to Rust 2021 and newer. @@ -631,7 +633,7 @@ I will be giving [a talk at Rust-Week](https://rustweek.org/talks/jacob/) about @b-naber and I have been working on the rustc side of the implementation for this feature. -I merged https://github.com/rust-lang/rust/pull/139647, which adds the unstables `-Z namespaced-crates` option to the compiler and enables parsing of externs like `--extern foo::bar=libbar.rlib`. @b-naber has led the resolver changes and has a draft PR up at https://github.com/rust-lang/rust/pull/140271. +I merged , which adds the unstables `-Z namespaced-crates` option to the compiler and enables parsing of externs like `--extern foo::bar=libbar.rlib`. @b-naber has led the resolver changes and has a draft PR up at . The implementation work has raised some [new concerns](https://github.com/rust-lang/rust/issues/122349#issuecomment-2832241624) about the overall direction, so work is ongoing to resolve those while continuing to make progress in the meantime. @@ -706,7 +708,7 @@ The implementation work has raised some [new concerns](https://github.com/rust-l -We fixed issue https://github.com/rust-lang/rust/issues/136925 that was blocking contract annotations on constant functions, which unblocks the initial PR to add some contract annotations in the standard library (https://github.com/rust-lang/rust/pull/136578). The PR currently triggers a CI failure which we are investigating. +We fixed issue that was blocking contract annotations on constant functions, which unblocks the initial PR to add some contract annotations in the standard library (). The PR currently triggers a CI failure which we are investigating. @@ -787,7 +789,7 @@ following the plan mentioned above plus some extra bits, I've implemented the fo * changed the file naming to ensure uniqueness and not overwrite metrics for the same crate when built with different configurations * previously I was piggybacking on the hash used to name artifacts in the `.cargo` or `build` directories, which in the compiler is known as `extra_filename` and is configured by cargo, but it turns out this doesn't guarantee uniqueness * I've replaced this with the ["Strict Version Hash"](https://rustc-dev-guide.rust-lang.org/backend/libs-and-metadata.html?highlight=stable%20version%20hash#strict-version-hash) (SVH) - * Doing so introduced an ICE when compiling some crates with incremental compilation enabled. I've since resolved this in https://github.com/rust-lang/rust/pull/139502 and tested this version against the top 100 crates in the ecosystem and their dependencies to verify its working + * Doing so introduced an ICE when compiling some crates with incremental compilation enabled. I've since resolved this in and tested this version against the top 100 crates in the ecosystem and their dependencies to verify its working * I've been working with the infra team and they've setup a cloud instance of influxdb 3.0 and grafana, influxdb is setup, grafana in progress * I met with both libs and lang to discuss their needs related to the unstable feature usage metrics and metrics in general @@ -796,7 +798,7 @@ Next Steps: * update locally hosted PoC impl to work with recent changes to metrics files and naming and validate that it's working as expected * work on the queries for the grafana instance to setup a graph per feature showing usage over time * probably going to create fake usage data to with for this -* on the side I'm also looking into how much work it would be to track relative usage of various library APIs under a single feature flag (e.g. https://github.com/rust-lang/rust/issues/139911 tracking the specific functions used) +* on the side I'm also looking into how much work it would be to track relative usage of various library APIs under a single feature flag (e.g. tracking the specific functions used) * develop a better understanding of the expected cost of running an influxdb server @@ -870,11 +872,11 @@ With this I should be ready to just upload the data once we've gathered it from -We've made a lot of progress over the last 1.5 months. My change to opaque types in borrowck is pretty much done now: https://github.com/rust-lang/rust/pull/139587. It still needs some cleanup and an FCP to actually merge. We've already merged multiple cleanups on the way here. +We've made a lot of progress over the last 1.5 months. My change to opaque types in borrowck is pretty much done now: . It still needs some cleanup and an FCP to actually merge. We've already merged multiple cleanups on the way here. -We then started to test crater with the `-Znext-solver=globally`. @compiler-errors and me encountered and merged the fixes for 13 issues since then: https://github.com/rust-lang/rust/pull/139791 https://github.com/rust-lang/rust/pull/139798 https://github.com/rust-lang/rust/pull/140236 https://github.com/rust-lang/rust/pull/139900 https://github.com/rust-lang/rust/pull/139828 https://github.com/rust-lang/rust/pull/139774 https://github.com/rust-lang/rust/pull/139762 https://github.com/rust-lang/rust/pull/139789 https://github.com/rust-lang/rust/pull/138845 https://github.com/rust-lang/rust/pull/140306 https://github.com/rust-lang/rust/pull/140305 https://github.com/rust-lang/rust/pull/140276 https://github.com/rust-lang/rust/pull/140302. @Nadrieril was also helpful by minimizing an encountered issue. +We then started to test crater with the `-Znext-solver=globally`. @compiler-errors and me encountered and merged the fixes for 13 issues since then: . @Nadrieril was also helpful by minimizing an encountered issue. -With these improvements and multiple in-flight changes we're now at significantly less than 100 remaining regressions in the top 10000 crates and have started the first complete crater run today. We are using a single PR for all crater runs. Check out https://github.com/rust-lang/rust/pull/133502 for the current status and the stack of in-flight changes. +With these improvements and multiple in-flight changes we're now at significantly less than 100 remaining regressions in the top 10000 crates and have started the first complete crater run today. We are using a single PR for all crater runs. Check out for the current status and the stack of in-flight changes. @@ -965,11 +967,11 @@ Key developments: nothing substantial. Monthly update! -- In [the last monthly update](https://github.com/rust-lang/rust-project-goals/issues/114#issuecomment-2730435572) we saw the impact that [interning symbols](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_span/symbol/struct.Symbol.html#method.intern) had on the program's performance. An effort to minimize this via a pre-interning symbol mechanism has been implemented in https://github.com/rust-lang/rust-clippy/pull/14650 and https://github.com/rust-lang/rust/pull/138682 +- In [the last monthly update](https://github.com/rust-lang/rust-project-goals/issues/114#issuecomment-2730435572) we saw the impact that [interning symbols](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_span/symbol/struct.Symbol.html#method.intern) had on the program's performance. An effort to minimize this via a pre-interning symbol mechanism has been implemented in and -- We're phasing out the old ["str path"](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.match_def_path.html) infrastructure into a new lazy alternative. https://github.com/rust-lang/rust-clippy/pull/14705 +- We're phasing out the old ["str path"](https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/fn.match_def_path.html) infrastructure into a new lazy alternative. -- We're currently in the effort to optimize some documentation lints that took up to 15% of the Clippy runtime (depending on how much documentation for each line of code you had.) See https://github.com/rust-lang/rust-clippy/pull/14693 +- We're currently in the effort to optimize some documentation lints that took up to 15% of the Clippy runtime (depending on how much documentation for each line of code you had.) See - We've also been experimenting with lots of new possibilities, mainly on parallel lints. Althought they currently are not performance improvements, there are some great hope put into them. @@ -1137,7 +1139,7 @@ Hi @epage , I am interested in working on this project. If you are still lookin -Key Developments: The FLS repo has officially been transferred from Ferrous to the Rust Project. https://github.com/rust-lang/fls is now live. +Key Developments: The FLS repo has officially been transferred from Ferrous to the Rust Project. is now live. Next step: Integrate the FLS with the Rust build system in order to support publishing within project processes. @@ -1308,7 +1310,7 @@ Here are the key developments for the month of April - @amandasystems - extracted a handful of PRs out of the gigantic placeholder rewrite PR, to make it easier to review and land - - https://github.com/rust-lang/rust/pull/139960, https://github.com/rust-lang/rust/pull/139965, and https://github.com/rust-lang/rust/pull/140466 + - , , and - Tage - continued experimenting and making progress with the early phase of the process, and making building constraints, and traversing them per loan, lazy - started extracting some of that work for discussion, review, PRs, as well as writing reports for his masters thesis From 7e5c614b8d04528bbac5c95efe73075c0eabdb28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Thu, 22 May 2025 17:54:39 +0200 Subject: [PATCH 0993/1024] Update content/Project-Goals-2025-April-Update.md Co-authored-by: apiraino --- content/Project-Goals-2025-April-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md index d79272672..a80586c54 100644 --- a/content/Project-Goals-2025-April-Update.md +++ b/content/Project-Goals-2025-April-Update.md @@ -481,7 +481,7 @@ Put another way, you should never have to go back and modify an edition migratio -We've modified codegen so that we guarantee that `x.use` will do a copy if `X: Copy` is true after monomorphization. Before this change the desugaring to `clone` occured only before monomorphization and hence it would call the `clone` method even for those instances where `X` is a `Copy` type. So with this modification we avoid such situation. +We've modified codegen so that we guarantee that `x.use` will do a copy if `X: Copy` is true after monomorphization. Before this change the desugaring to `clone` occurred only before monomorphization and hence it would call the `clone` method even for those instances where `X` is a `Copy` type. So with this modification we avoid such situation. We are not working on convert `x.use` to a move rather than a clone if this is a last-use. From 4b6919163da4a36411b8230b256303b9dbe35df8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Thu, 22 May 2025 17:54:55 +0200 Subject: [PATCH 0994/1024] Update content/Project-Goals-2025-April-Update.md Co-authored-by: apiraino --- content/Project-Goals-2025-April-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md index a80586c54..04c760041 100644 --- a/content/Project-Goals-2025-April-Update.md +++ b/content/Project-Goals-2025-April-Update.md @@ -973,7 +973,7 @@ Monthly update! - We're currently in the effort to optimize some documentation lints that took up to 15% of the Clippy runtime (depending on how much documentation for each line of code you had.) See -- We've also been experimenting with lots of new possibilities, mainly on parallel lints. Althought they currently are not performance improvements, there are some great hope put into them. +- We've also been experimenting with lots of new possibilities, mainly on parallel lints. Although they currently are not performance improvements, there are some great hope put into them. - Memory consumption and branch mispredictions are being monitored, they do not seem out of the ordinary. From 6ab4ffd8757282e05fb4fda83d59949e7e31107a Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 22 May 2025 23:22:39 +0200 Subject: [PATCH 0995/1024] Fix year delimiters in releases page (#1615) The previous approach to detect if a release is the last one in a year was incorrect. It checked if the following post was in the next year. However, the following post doesn't have to be a release, so the check could fail. The result was missing year delimiters "Releases in YYYY". A mutable variable makes it easier to track the actual year of the last rendered release post. --- templates/releases.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/releases.html b/templates/releases.html index 5cc1d55c2..600948858 100644 --- a/templates/releases.html +++ b/templates/releases.html @@ -32,14 +32,14 @@ {%- set day = page.components | nth(n=num_comps - 2) | int %} {%- if loop.index0 == 0 %} {{ macros::show_year(year=year, post_name="Releases") }} + {%- set_global prev_year = year %} {%- endif %} {%- if page.extra is containing("release") %} {%- if loop.index0 != 0 %} - {%- set prev_idx = loop.index0 - 1 %} - {%- set prev_year = rev_pages[prev_idx].components | nth(n=num_comps - 4) | int %} {%- if prev_year != year %} {{ macros::show_year(year=year, post_name="Releases") }} + {%- set_global prev_year = year %} {%- endif %} {%- endif %} {% if page.show_year %} From 52c05faf7919daf9a7ad76f51ccecf205bb670ce Mon Sep 17 00:00:00 2001 From: Noratrieb <48135649+Noratrieb@users.noreply.github.com> Date: Wed, 12 Mar 2025 20:40:38 +0100 Subject: [PATCH 0996/1024] Add blog post about i686-pc-windows-gnu demotion --- content/demoting-i686-pc-windows-gnu.md | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 content/demoting-i686-pc-windows-gnu.md diff --git a/content/demoting-i686-pc-windows-gnu.md b/content/demoting-i686-pc-windows-gnu.md new file mode 100644 index 000000000..2f4014b10 --- /dev/null +++ b/content/demoting-i686-pc-windows-gnu.md @@ -0,0 +1,46 @@ ++++ +path = "2025/05/26/demoting-i686-pc-windows-gnu" +title = "Demoting i686-pc-windows-gnu to Tier 2" +authors = ["Noratrieb"] +aliases = [] + +[extra] +team = "Compiler Team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" ++++ + +In Rust 1.88.0, the Tier 1 target `i686-pc-windows-gnu` will be demoted to Tier 2. +As a Tier 2 Target, builds will continue to be distributed for both the standard library and the compiler. + +## Background + +Rust has supported Windows for a long time, with two different flavors of Windows targets: MSVC-based and GNU-based. MSVC-based targets (for example the most popular Windows target `x86_64-pc-windows-msvc`) use Microsoft’s native linker and libraries, while GNU-based targets (like `i686-pc-windows-gnu`) are built entirely from free software components like `gcc`, `ld`, and mingw-w64. + +The major reason to use a GNU-based toolchain instead of the native MSVC-based one is cross-compilation and licensing. `link.exe` only runs on Windows (barring Wine hacks) and requires a license for commercial usage. + +`x86_64-pc-windows-gnu` and `i686-pc-windows-gnu` are currently both Tier 1 with host tools. +The [Target Tier Policy] contains more details on what this entails, but the most important part is that tests for these targets are being run on every merged PR. +This is the highest level of support we have, and is only used for the most high value targets (the most popular Linux, Windows, and Apple targets). + +The `*-windows-gnu` targets currently do not have any dedicated target maintainers. +We do not have a lot of expertise for this toolchain, and issues often aren't fixed and cause problems in CI that we have a hard time to debug. + +The 32-bit version of this target is especially problematic and has significantly less usage than `x86_64-pc-windows-gnu`, which is why `i686-pc-windows-gnu` is being demoted to Tier 2. + +## What is changed? + +After Rust 1.88.0, `i686-pc-windows-gnu` will now be Tier 2 with host tools. +For users, nothing will change immediately. Builds of both the standard library and the compiler will still be distributed by the Rust Project for use via `rustup` or alternative installation methods. + +This does mean that in the future, this target will likely accumulate bugs faster because of the reduced testing. + +## Future + +If no maintainers are found and the `*-windows-gnu` targets continue causing problems, they may be demoted further. +No concrete plans about this have been made yet. + +If you rely on the `*-windows-gnu` targets and have expertise in this area, we would be very happy to have you as a target maintainer. You can check the [Target Tier Policy] for what exactly that would entail. + +For more details on the motivation of the demotion, see [RFC 3771](https://rust-lang.github.io/rfcs/3771-demote-i686-pc-windows-gnu.html) which proposed this change. + +[Target Tier Policy]: https://doc.rust-lang.org/nightly/rustc/target-tier-policy.html From c65edf704de73ef3fe038663cf0d344b6ce10cbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Mon, 26 May 2025 04:16:03 +0800 Subject: [PATCH 0997/1024] style: don't default-italicize blockquote text (#1618) Default italicizing blockquote text prevents `*italics*` markdown from having an observable effect. --- sass/styles/app.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/sass/styles/app.scss b/sass/styles/app.scss index 78a1b479f..adec28297 100644 --- a/sass/styles/app.scss +++ b/sass/styles/app.scss @@ -86,7 +86,6 @@ body { } blockquote { - font-style: italic; position: relative; background-color: var(--blockquote-bg-color); border-left: 8px solid var(--blockquote-left-border-color); From 40dc890c4116b14f244b4c3fa9d7927a9432849f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20Rakic?= Date: Mon, 26 May 2025 09:06:46 +0000 Subject: [PATCH 0998/1024] set publication date --- content/Project-Goals-2025-April-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md index 04c760041..194486a51 100644 --- a/content/Project-Goals-2025-April-Update.md +++ b/content/Project-Goals-2025-April-Update.md @@ -1,5 +1,5 @@ +++ -path = "9999/12/31/april-project-goals-update" +path = "2025/05/26/april-project-goals-update" title = "April Project Goals Update" authors = ["Rémy Rakic"] From de97b4c7c3c1294ca8465c67c0922b4866f60c23 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 May 2025 12:13:36 +0200 Subject: [PATCH 0999/1024] Lock file maintenance (#1619) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b581d7757..45babb50d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -65,9 +65,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.23" +version = "1.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4ac86a9e5bc1e2b3449ab9d7d3a6a405e3d1bb28d7b9be8614f55846ae3766" +checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7" dependencies = [ "shlex", ] @@ -371,9 +371,9 @@ checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", @@ -387,9 +387,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" @@ -682,7 +682,7 @@ dependencies = [ [[package]] name = "rust_team_data" version = "1.0.0" -source = "git+https://github.com/rust-lang/team#b4c5a3e8ddb3ba553079ed4714921e467207c55c" +source = "git+https://github.com/rust-lang/team#42268233f219de6965e38585e4e2eb18264684b8" dependencies = [ "indexmap", "serde", From 4a9d65c2f0c80a121ff11ca82566127b5049b878 Mon Sep 17 00:00:00 2001 From: nora <48135649+Noratrieb@users.noreply.github.com> Date: Mon, 26 May 2025 16:10:30 +0200 Subject: [PATCH 1000/1024] Improve grammar of i686 demotion These parts felt a bit wrong while reading it again. --- content/demoting-i686-pc-windows-gnu.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/demoting-i686-pc-windows-gnu.md b/content/demoting-i686-pc-windows-gnu.md index 2f4014b10..9e806a57e 100644 --- a/content/demoting-i686-pc-windows-gnu.md +++ b/content/demoting-i686-pc-windows-gnu.md @@ -27,12 +27,12 @@ We do not have a lot of expertise for this toolchain, and issues often aren't fi The 32-bit version of this target is especially problematic and has significantly less usage than `x86_64-pc-windows-gnu`, which is why `i686-pc-windows-gnu` is being demoted to Tier 2. -## What is changed? +## What changes? After Rust 1.88.0, `i686-pc-windows-gnu` will now be Tier 2 with host tools. For users, nothing will change immediately. Builds of both the standard library and the compiler will still be distributed by the Rust Project for use via `rustup` or alternative installation methods. -This does mean that in the future, this target will likely accumulate bugs faster because of the reduced testing. +This does mean that this target will likely accumulate bugs faster in the future because of the reduced testing. ## Future From 18d999fa0e91360a01793df69087fbe21078964e Mon Sep 17 00:00:00 2001 From: David Wood Date: Tue, 27 May 2025 15:26:33 +0000 Subject: [PATCH 1001/1024] announce new compiler team members --- .../compiler-team-new-members-may-2025.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 content/inside-rust/compiler-team-new-members-may-2025.md diff --git a/content/inside-rust/compiler-team-new-members-may-2025.md b/content/inside-rust/compiler-team-new-members-may-2025.md new file mode 100644 index 000000000..754e4afd9 --- /dev/null +++ b/content/inside-rust/compiler-team-new-members-may-2025.md @@ -0,0 +1,33 @@ ++++ +path = "inside-rust/2025/05/27/compiler-team-new-members" +title = "Announcing five new members of the compiler team" +authors = ["davidtwco and wesleywiser"] +aliases = ["inside-rust/2025/05/27/compiler-team-new-members.html"] + +[extra] +team = "the compiler team" +team_url = "https://www.rust-lang.org/governance/teams/compiler" ++++ +It's been around six months since [we last announced new members of the compiler +team][blog_prev_addition] and there's already new members to announce: + +- [Kobzol](https://github.com/Kobzol), team member + - Kobzol is a prolific member of the infrastructure team and has also been making great + contributions to the team's performance triaging, our transition to lld as well as many varied + improvements to the compiler itself. +- [ZuseZ4](https://github.com/ZuseZ4), team member + - ZuseZ4 is the maintainer of the [Enzyme](https://enzyme.mit.edu/) logic in our LLVM backend and + our new automatic differentiation support. +- [jdonszelmann](https://github.com/jdonszelmann), team member + - jdonszelmann has been making significant contributions to how we represent attributes in the HIR + and helped organise the Rust All Hands this year, enabling the team to meet in person. +- [madsmtm](https://github.com/madsmtm), team member + - madsmtm is our Apple and iOS target maintainer and expert on the issues and regressions that + come up with these targets. +- [mati865](https://github.com/mati865), team member + - mati865 is likewise our maintainer of the Windows GNULLVM targets and has been instrumental in + doing reviews and fixes in support of these targets. + +Thanks to all of our new members for their contributions! + +[blog_prev_addition]: https://blog.rust-lang.org/inside-rust/2024/11/12/compiler-team-new-members/ From 8564c2a957303c1b2c15140d41d1ec99306560be Mon Sep 17 00:00:00 2001 From: Jieyou Xu Date: Thu, 17 Apr 2025 15:11:24 +0800 Subject: [PATCH 1002/1024] Add a blog post for stage 0 std redesign Co-authored-by: jyn Co-authored-by: Noratrieb <48135649+Noratrieb@users.noreply.github.com> Co-authored-by: Mark Rousskov --- content/inside-rust/stage0-redesign/index.md | 142 ++++++++++++++++++ ...ive-bootstrap-stage-bootstrap-sequence.svg | 3 + .../stage0-redesign/naive-bootstrap-stage.svg | 3 + .../stage0-redesign/stage0-current.svg | 3 + .../stage0-redesign/stage0-next.svg | 3 + 5 files changed, 154 insertions(+) create mode 100644 content/inside-rust/stage0-redesign/index.md create mode 100644 content/inside-rust/stage0-redesign/naive-bootstrap-stage-bootstrap-sequence.svg create mode 100644 content/inside-rust/stage0-redesign/naive-bootstrap-stage.svg create mode 100644 content/inside-rust/stage0-redesign/stage0-current.svg create mode 100644 content/inside-rust/stage0-redesign/stage0-next.svg diff --git a/content/inside-rust/stage0-redesign/index.md b/content/inside-rust/stage0-redesign/index.md new file mode 100644 index 000000000..5c7f51a4a --- /dev/null +++ b/content/inside-rust/stage0-redesign/index.md @@ -0,0 +1,142 @@ ++++ +path = "inside-rust/2025/05/29/redesigning-the-initial-bootstrap-sequence" +title = "Redesigning the Initial Bootstrap Sequence" +authors = ["Jieyou Xu"] + +[extra] +team = "the Bootstrap team" +team_url = "https://www.rust-lang.org/governance/teams/infra#team-bootstrap" ++++ + +This blog post accompanies an [upcoming major change to the `rust-lang/rust` build system][stage0-redesign-pr] (see also [Major Change Proposal 619][redesign-stage0-mcp]). This will have no impact on the distributed artifacts from [rust-lang/rust], but the way we build those artifacts is changing. + +This blog post focuses on motivation for the change and attempts to build a mental model for how the system works, rather than deep diving on workflow changes. See the [rustc-dev-guide](https://rustc-dev-guide.rust-lang.org/building/bootstrapping/what-bootstrapping-does.html) for details on how you might need to change your workflow with these changes. Note that rustc-dev-guide pages will have updated content once the implementation PR merges. + +# TL;DR: What is being changed? + +We are [redesigning the bootstrap sequence for the Rust toolchain][stage0-redesign-pr]. The standard library will move from supporting being built by both the previous toolchain version and the current version to only supporting the current version. This does not change the artifacts we distribute to end users of Rust. + +**Current bootstrap sequence** + +![Current stage 0 bootstrap sequence](./stage0-current.svg) + +**Redesigned bootstrap sequence** + +![Redesigned stage 0 bootstrap sequence](./stage0-next.svg) + +The following section is a quick primer on the concept of bootstrapping and the terminology we use in this blog post. + +# A quick primer on bootstrapping and terminology used in this blog post {#preliminary} + +This section is intended to explain some basic bootstrapping concepts to make it easier for contributors to understand the upcoming bootstrap changes. You can [skip this section](#motivation) if you are already familiar with [the `bootstrap` build system][bootstrap] itself. + +## What is bootstrapping? {#intro-to-bootstrapping} + +[*Bootstrapping*][compiler-bootstrapping] is the process of producing a newer version of a compiler with an older version of itself. Usually, bootstrap processes involve the concept of *stages*, where a compiler and associated artifacts from a stage is used to build the compiler of the next stage. For example, a stage 2 compiler is built from a stage 1 compiler and associated stage 1 artifacts. The stage number is named after the compiler in question. + +## Bootstrapping `rustc` {#bootstrapping-rust} + +Building a C++ compiler toolchain like [`gcc`][gcc-bootstrap] or [`clang`][clang-bootstrap] doesn't usually involving building their standard libraries from source, but instead will link against a pre-built standard library across all bootstrap stages. Typically, this specified standard library is the system standard library.[^adapted] + +The Rust toolchain as a whole, both currently and after this change, supports being built with just two minor versions of Rust: the previous version and its own version. For example, Rust 1.85.1 requires one of 1.84.0, 1.85.0, or 1.85.1 toolchains to build its source code into the 1.85.1 distributed artifacts. + +Rust has historically always built the majority of in-tree source code against the in-tree standard library's API. This meant that the in-tree copy of the standard library had to support being built with both the previous release (e.g., 1.84) and the new release (e.g., 1.85), requiring extensive `cfg(bootstrap)` annotations to be compatible with the unstable API of the compiler (primarily changes in intrinsics and lang items). + +The choice to require std to be built with two different compiler toolchains is largely historical. We don't have specific rationale available, but expect it to have made more sense when the standard library API was rapidly evolving and the compiler was unable to use crates.io dependencies for functionality. + +## Terminology {#terminology} + +![Naive bootstrap stage](./naive-bootstrap-stage.svg) + +Let us call these *intra*-stage steps of stage `N - 1` compiler building stage `N - 1` standard library a **bootstrap sequence**, i.e. the sequence of intra-stage steps involved in producing stage `N - 1` artifacts required to build the stage `N` compiler. + +![Bootstrap sequence](./naive-bootstrap-stage-bootstrap-sequence.svg) + +We must also have a base case, a starting compiler, to build newer compilers with. Indeed, the *initial* compiler is also called the *stage 0 compiler*. The *initial* bootstrap stage is called *stage 0*. + +# Motivation {#motivation} + +But the naive model we presented above isn't complete. + +*Rust* has elected a design choice where the compiler, `rustc`, and the standard library ("std") are tightly coupled. *Intrinsics* and *lang items* form a broad interface between the compiler and the standard library. When intrinsics or lang items are modified, both sides need to be adjusted. + +Currently, the standard library currently must support being built with two different compilers, the in-tree compiler and the initial stage 0 compiler[^initial-compiler]. All such changes to intrinsics and lang items thus need to use `cfg(bootstrap)` to gate code that can be built by the in-tree compiler vs the stage 0 compiler. This causes a lot of churn for contributors wanting to introduce, modify or remove intrinsics and lang items (particularly when creating new releases). + +The [stage 0 bootstrap sequence redesign][stage0-redesign-pr] aims to mitigate such churn and implementation complexity in the standard library by having the standard library only support *one* version of the compiler. + +To better understand this redesign, we will: + +1. [Explain how the current stage 0 bootstrapping sequence works](#current-model), and +2. [Explain how the new stage 0 bootstrapping sequence works after the redesign](#new-model), and +3. [Explain the benefits of the redesigned stage 0 bootstrapping sequence is more preferable](#better). + +# The current stage 0 bootstrap sequence {#current-model} + +![Current stage 0 bootstrap sequence](./stage0-current.svg) + +Currently, [bootstrap] downloads a pre-built beta rustc as the initial compiler (stage 0 rustc). + +- To produce a stage 1 rustc, we need to produce a stage 0 std. This stage 0 std is built from in-tree standard library sources with `cfg(bootstrap)` active. +- To produce a stage 2 rustc, we need to produce a stage 1 std. However, this is where things get weird. The stage 1 std is built from the *same* in-tree standard library sources (but with `cfg(bootstrap)` inactive). This is what we meant by "the standard library has to support being buildable by two compiler versions." + +# The redesigned stage 0 bootstrap sequence {#new-model} + +![Redesigned stage 0 bootstrap sequence](./stage0-next.svg) + +In the [redesigned stage 0 bootstrapping sequence][stage0-redesign-pr] we instead download *both* the pre-built beta rustc as the stage 0 compiler, and the pre-built beta std as the stage 0 std, *instead* of building stage 0 std from in-tree sources. + +- When producing a stage 1 rustc, we already have the stage 0 std (as it is the pre-built std). +- When producing a stage 2 rustc, the stage 1 std is then the std built from in-tree std sources with the stage 1 rustc. + +# Why is the redesigned stage 0 bootstrap sequence better? {#better} + +There are several benefits of the redesigned stage 0 bootstrap sequence: + +1. We no longer have to use `cfg(bootstrap)` in the standard library sources for intrinsics and lang items to distinguish when being built by the beta rustc vs the in-tree rustc, because the standard library now only has to be buildable by exactly one compiler version (the current stage rustc). +2. Rebasing no longer has to rebuild everything. As the standard library is now built *after* the compiler instead of before, all dependencies and compiler crates that are unmodified can be cached when switching `git` branches. It's only necessarily to rebuild everything after bootstrap bumps every 6 weeks as part of the release cycle. +3. Modifying the standard library no longer has to rebuild everything. After the redesign, it is now possible to add documentation comments to functions in the standard library without having to rebuild the compiler and then also rebuild std a second time. `--keep-stage-std=0` is no longer needed. +4. It aligns better with how other rust programs are built. We no longer have a "strange" setup where the stage 1 compiler was built from a *beta* rustc with an *in-tree* std. Now, the stage 1 compiler is built from a beta rustc and a beta std. + +# In terms of bootstrap invocations and bootstrap config, what does this redesign mean? + +The minimum stage to check, build and test the standard library is now stage 1. `./x {check,build,test} library --stage=0` are now no-ops; switch to `--stage 1` instead. `--keep-stage-std=0` is a no-op. + +For `profile = "library"` users, like aforementioned, the default check, build, and test stage are now bumped to 1. `download-rustc = "if-unchanged"` is enabled by default, which downloads a pre-built CI rustc instead of building the compiler if there are no compiler changes, allowing you to build the standard library without building the compiler. + +# What does this mean for contributors working on the standard library and the compiler? + +- Contributors will now no longer need to use `cfg(bootstrap)` for intrinsics and lang items. +- Contributors may (rarely) need to use `cfg(bootstrap)` in compiler code if they wish to experiment with unstable library features [^dogfood-unstable-lib-features] + +# Frequently asked questions (FAQs) {#faqs} + +## Doesn't this just shift `cfg(bootstrap)` from library code to compiler code? {#faqs-shift-cfg-bootstrap} + +Not quite. `cfg(bootstrap)` usage in standard library code for using new intrinsics / lang items (as in the current bootstrap sequence) is much more common than potential `cfg(bootstrap)` usage in compiler code for experimenting with unstable library features (as in the redesigned bootstrap sequence). This is because the standard library must be changed for new compiler-provided lang items and intrinsics, but the compiler does not (need to) depend on recently added standard library APIs. + +Additionally, the compiler only needs to add `cfg(bootstrap)` for anything in the standard library that has changed its unstable API and which is used in the compiler. + +> *Example: Implementing a trait solving feature which requires adding core lang items* +> +> This will involve adding a new lang item in the compiler (e.g. [`compiler/rustc_hir/src/lang_items.rs`](https://github.com/rust-lang/rust/blob/5af801b687e6e8b860ae970e725c8b9a3820d0ce/compiler/rustc_hir/src/lang_items.rs#L165)) and the standard library. Prior to the redesign, the usage of the lang item in the standard library requires `cfg(not(bootstrap))` since the beta compiler does not know about the new lang item. Recall that the standard library has to support being built by both the beta compiler and the in-tree compiler! After the redesign, `cfg(not(bootstrap))` usage of the lang item in the standard library is not needed since the standard library is only buildable by the in-tree compiler that adds the new lang item. +> +> A stage 2 compiler is **not** required to test the new feature, as the stage 1 library using the lang item is built by the stage 1 compiler, which is the compiler where the new lang item is added! + +# Questions, feedback, bugs? + +You can leave a comment in the [zulip support thread for the initial bootstrap sequence redesign effort][zulip-support-thread] + + +[^initial-compiler]: For the vast majority of contributors, the stage 0 "initial" compiler is going to be the beta compiler. However, it is possible to override the initial compiler, such as when further optimizing a compiler through PGO/BOLT. In this blog post, we make a simplifying assumption that the stage 0 compiler is the beta compiler, even though this is not universally true. +[^dogfood-unstable-lib-features]: Newly added unstable library feature may need to wait until a beta bump before it is usable by the compiler. +[^adapted]: Much of this is adapted from jyn's excellent blog post [*Why is Rust's build system uniquely hard to use?*][hard-to-use-blog-post]. + +[rust-lang/rust]: https://github.com/rust-lang/rust +[bootstrap]: https://rustc-dev-guide.rust-lang.org/building/bootstrapping/intro.html +[compiler-bootstrapping]: https://en.wikipedia.org/wiki/Bootstrapping_(compilers) +[redesign-stage0-mcp]: https://github.com/rust-lang/compiler-team/issues/619 +[hard-to-use-blog-post]: https://jyn.dev/bootstrapping-rust-in-2023/ +[gcc-bootstrap]: https://gcc.gnu.org/install/build.html +[clang-bootstrap]: https://llvm.org/docs/AdvancedBuilds.html#bootstrap-builds +[zulip-support-thread]: https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Stage.200.20std.20redesign.20support.20thread/with/515096924 +[stage0-redesign-pr]: https://github.com/rust-lang/rust/pull/119899 diff --git a/content/inside-rust/stage0-redesign/naive-bootstrap-stage-bootstrap-sequence.svg b/content/inside-rust/stage0-redesign/naive-bootstrap-stage-bootstrap-sequence.svg new file mode 100644 index 000000000..aac4321ff --- /dev/null +++ b/content/inside-rust/stage0-redesign/naive-bootstrap-stage-bootstrap-sequence.svg @@ -0,0 +1,3 @@ + + +
    used to build
    used to build
    Text
    Text
    used to build
    used to build
    stage (N - 1) rustc
    stage (N - 1) rustc
    used to build
    used to build
    stage (N - 1) standard library
    stage (N - 1) standard library
    stage N rustc
    stage N rustc
    stage (N - 1)
    stage (N -...
    stage N
    stage N
    The stage (N - 1) bootstrap sequence
    The stage (N - 1) bo...
    \ No newline at end of file diff --git a/content/inside-rust/stage0-redesign/naive-bootstrap-stage.svg b/content/inside-rust/stage0-redesign/naive-bootstrap-stage.svg new file mode 100644 index 000000000..fc4d1ca05 --- /dev/null +++ b/content/inside-rust/stage0-redesign/naive-bootstrap-stage.svg @@ -0,0 +1,3 @@ + + +
    used to build
    used to build
    Text
    Text
    used to build
    used to build
    stage (N - 1) rustc
    stage (N - 1) rustc
    used to build
    used to build
    stage (N - 1) standard library
    stage (N - 1) standard library
    stage N rustc
    stage N rustc
    stage (N - 1)
    stage (N -...
    stage N
    stage N
    \ No newline at end of file diff --git a/content/inside-rust/stage0-redesign/stage0-current.svg b/content/inside-rust/stage0-redesign/stage0-current.svg new file mode 100644 index 000000000..adc1f7abd --- /dev/null +++ b/content/inside-rust/stage0-redesign/stage0-current.svg @@ -0,0 +1,3 @@ + + +
    std sources
    std sources
    stage 0 rustc
    stage 0 rustc
    built
    from
    built...
    stage 0 std
    stage 0 std
    stage 1 rustc
    stage 1 rustc
    built
    from
    built...
    stage 1 std
    stage 1 std
    stage 2 rustc
    stage 2 rustc
    Downloaded, pre-built
    Downloaded, p...
    cfg(bootstrap)
    cfg(bootstrap)
    cfg(not(bootstrap))
    cfg(not(bootstrap))
    Same standard library sources
    Same standard library sources
    \ No newline at end of file diff --git a/content/inside-rust/stage0-redesign/stage0-next.svg b/content/inside-rust/stage0-redesign/stage0-next.svg new file mode 100644 index 000000000..62c75cffe --- /dev/null +++ b/content/inside-rust/stage0-redesign/stage0-next.svg @@ -0,0 +1,3 @@ + + +
    std sources
    std sources
    stage 0 rustc
    stage 0 rustc
    stage 0 std
    stage 0 std
    stage 1 rustc
    stage 1 rustc
    built
    from
    built...
    stage 1 std
    stage 1 std
    stage 2 rustc
    stage 2 rustc
    Downloaded, pre-built
    Downloaded, p...
    Standard library supports only one compiler version
    Standard library supports only one compiler version
    \ No newline at end of file From 83cceec2469ea1ca7eaf254d4fa8a67217a9c1f7 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 29 May 2025 21:44:48 +0200 Subject: [PATCH 1003/1024] Fix link (#1624) --- content/Project-Goals-2025-April-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/Project-Goals-2025-April-Update.md b/content/Project-Goals-2025-April-Update.md index 194486a51..e5a683183 100644 --- a/content/Project-Goals-2025-April-Update.md +++ b/content/Project-Goals-2025-April-Update.md @@ -253,7 +253,7 @@ Update from our 2025-04-23 meeting ([full minutes](https://hackmd.io/@rust-lang- -*Help wanted:* Help test the deadlock code in the [issue list](https://github.com/rust-lang/rust/labels/WG-compiler-parallel) and try to reproduce the issues. If you'd like to help, please post in [this goal's dedicated zulip topic](https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Promoting.20Parallel.20Front.20End.20.28goals.23121.29/with/506292058). +*Help wanted:* Help test the deadlock code in the [issue list](https://github.com/rust-lang/rust/issues?q=is%3Aopen%20label%3AA-parallel-compiler) and try to reproduce the issues. If you'd like to help, please post in [this goal's dedicated zulip topic](https://rust-lang.zulipchat.com/#narrow/channel/435869-project-goals/topic/Promoting.20Parallel.20Front.20End.20.28goals.23121.29/with/506292058). From d2b85f243e5f04c5a159b9b3017c1b0c883f0b14 Mon Sep 17 00:00:00 2001 From: Jieyou Xu Date: Fri, 30 May 2025 09:04:54 +0800 Subject: [PATCH 1004/1024] style: adjust blockquote list styles To avoid strange extraneous bottom margins. --- sass/styles/app.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sass/styles/app.scss b/sass/styles/app.scss index adec28297..35a40e699 100644 --- a/sass/styles/app.scss +++ b/sass/styles/app.scss @@ -104,6 +104,11 @@ blockquote { p:last-of-type { margin-bottom: 0; } + + ol, ul { + margin-block-start: 1em; + margin-block-end: 0em; + } } details > summary { From ed715ddb758998d71ee377934275dddae5b944e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=9D=B0=E5=8F=8B=20Jieyou=20Xu=20=28Joe=29?= <39484203+jieyouxu@users.noreply.github.com> Date: Fri, 30 May 2025 10:00:38 +0800 Subject: [PATCH 1005/1024] Revise bootstrap sequence redesign blog post (#1626) To clarify no observable impact are expected for distribution packagers. --- content/inside-rust/stage0-redesign/index.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/content/inside-rust/stage0-redesign/index.md b/content/inside-rust/stage0-redesign/index.md index 5c7f51a4a..c67363d9e 100644 --- a/content/inside-rust/stage0-redesign/index.md +++ b/content/inside-rust/stage0-redesign/index.md @@ -8,6 +8,10 @@ team = "the Bootstrap team" team_url = "https://www.rust-lang.org/governance/teams/infra#team-bootstrap" +++ +> Revisions: +> +> - (2025-05-30) This blog post was edited to clarify distribution packagers will not be observably impacted (i.e. distribution packages will still be able to build `N + 1` version of Rust using version `N` of Rust). + This blog post accompanies an [upcoming major change to the `rust-lang/rust` build system][stage0-redesign-pr] (see also [Major Change Proposal 619][redesign-stage0-mcp]). This will have no impact on the distributed artifacts from [rust-lang/rust], but the way we build those artifacts is changing. This blog post focuses on motivation for the change and attempts to build a mental model for how the system works, rather than deep diving on workflow changes. See the [rustc-dev-guide](https://rustc-dev-guide.rust-lang.org/building/bootstrapping/what-bootstrapping-does.html) for details on how you might need to change your workflow with these changes. Note that rustc-dev-guide pages will have updated content once the implementation PR merges. @@ -16,6 +20,10 @@ This blog post focuses on motivation for the change and attempts to build a ment We are [redesigning the bootstrap sequence for the Rust toolchain][stage0-redesign-pr]. The standard library will move from supporting being built by both the previous toolchain version and the current version to only supporting the current version. This does not change the artifacts we distribute to end users of Rust. +> The Rust toolchain as a whole, both currently and after this change, supports being built with just two minor versions of Rust: the previous version and its own version. For example, Rust 1.85.1 requires one of 1.84.0, 1.85.0, or 1.85.1 toolchains to build its source code into the 1.85.1 distributed artifacts. +> +> In other words, distribution packagers are not observably affected, it is only the workflows of contributors who work on the compiler and standard library that will be impacted. + **Current bootstrap sequence** ![Current stage 0 bootstrap sequence](./stage0-current.svg) @@ -122,6 +130,10 @@ Additionally, the compiler only needs to add `cfg(bootstrap)` for anything in th > > A stage 2 compiler is **not** required to test the new feature, as the stage 1 library using the lang item is built by the stage 1 compiler, which is the compiler where the new lang item is added! +## Will this affect distribution packagers? + +No, this change will not have observable changes for distribution packagers. Distribution packagers will still be able to build e.g. 1.85.0 distribution artifacts with a 1.84.0, 1.84.1 or 1.85.0 toolchain. + # Questions, feedback, bugs? You can leave a comment in the [zulip support thread for the initial bootstrap sequence redesign effort][zulip-support-thread] From d1089a90bc29395da13f86daa4fc1f8769e7a318 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Fri, 30 May 2025 09:53:57 +0200 Subject: [PATCH 1006/1024] stage0 redesign: fix typo --- content/inside-rust/stage0-redesign/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/inside-rust/stage0-redesign/index.md b/content/inside-rust/stage0-redesign/index.md index c67363d9e..bce26d00a 100644 --- a/content/inside-rust/stage0-redesign/index.md +++ b/content/inside-rust/stage0-redesign/index.md @@ -68,7 +68,7 @@ But the naive model we presented above isn't complete. *Rust* has elected a design choice where the compiler, `rustc`, and the standard library ("std") are tightly coupled. *Intrinsics* and *lang items* form a broad interface between the compiler and the standard library. When intrinsics or lang items are modified, both sides need to be adjusted. -Currently, the standard library currently must support being built with two different compilers, the in-tree compiler and the initial stage 0 compiler[^initial-compiler]. All such changes to intrinsics and lang items thus need to use `cfg(bootstrap)` to gate code that can be built by the in-tree compiler vs the stage 0 compiler. This causes a lot of churn for contributors wanting to introduce, modify or remove intrinsics and lang items (particularly when creating new releases). +Currently, the standard library must support being built with two different compilers, the in-tree compiler and the initial stage 0 compiler[^initial-compiler]. All such changes to intrinsics and lang items thus need to use `cfg(bootstrap)` to gate code that can be built by the in-tree compiler vs the stage 0 compiler. This causes a lot of churn for contributors wanting to introduce, modify or remove intrinsics and lang items (particularly when creating new releases). The [stage 0 bootstrap sequence redesign][stage0-redesign-pr] aims to mitigate such churn and implementation complexity in the standard library by having the standard library only support *one* version of the compiler. From 7fee38f4169b82dfd7da266f869ca7675c56a3c8 Mon Sep 17 00:00:00 2001 From: Wesley Wiser Date: Fri, 30 May 2025 10:04:51 -0500 Subject: [PATCH 1007/1024] Update content/inside-rust/compiler-team-new-members-may-2025.md --- content/inside-rust/compiler-team-new-members-may-2025.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/inside-rust/compiler-team-new-members-may-2025.md b/content/inside-rust/compiler-team-new-members-may-2025.md index 754e4afd9..e841fc4b1 100644 --- a/content/inside-rust/compiler-team-new-members-may-2025.md +++ b/content/inside-rust/compiler-team-new-members-may-2025.md @@ -2,7 +2,7 @@ path = "inside-rust/2025/05/27/compiler-team-new-members" title = "Announcing five new members of the compiler team" authors = ["davidtwco and wesleywiser"] -aliases = ["inside-rust/2025/05/27/compiler-team-new-members.html"] +aliases = ["inside-rust/2025/05/30/compiler-team-new-members.html"] [extra] team = "the compiler team" From 36597418bf8dd35911a5fe8094c8600348c5fb7e Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Fri, 30 May 2025 17:27:22 +0200 Subject: [PATCH 1008/1024] Fix date of publication --- content/inside-rust/compiler-team-new-members-may-2025.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/inside-rust/compiler-team-new-members-may-2025.md b/content/inside-rust/compiler-team-new-members-may-2025.md index e841fc4b1..4b921ca49 100644 --- a/content/inside-rust/compiler-team-new-members-may-2025.md +++ b/content/inside-rust/compiler-team-new-members-may-2025.md @@ -1,5 +1,5 @@ +++ -path = "inside-rust/2025/05/27/compiler-team-new-members" +path = "inside-rust/2025/05/30/compiler-team-new-members" title = "Announcing five new members of the compiler team" authors = ["davidtwco and wesleywiser"] aliases = ["inside-rust/2025/05/30/compiler-team-new-members.html"] From bca2dadf5bac00dadaacdcf8967f9412c4bf0853 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Fri, 30 May 2025 18:32:21 +0200 Subject: [PATCH 1009/1024] Forbid migration alias in new posts (#1629) --- content/Rust-1.87.0/index.md | 5 +--- content/Rustup-1.28.2.md | 1 - .../compiler-team-new-members-may-2025.md | 1 - .../inside-rust/project-director-update@4.md | 1 - crates/front_matter/src/lib.rs | 25 +++++++++++++++++++ 5 files changed, 26 insertions(+), 7 deletions(-) diff --git a/content/Rust-1.87.0/index.md b/content/Rust-1.87.0/index.md index aa92c16f5..cc39b698f 100644 --- a/content/Rust-1.87.0/index.md +++ b/content/Rust-1.87.0/index.md @@ -2,10 +2,7 @@ path = "2025/05/15/Rust-1.87.0" title = "Announcing Rust 1.87.0 and ten years of Rust!" authors = ["The Rust Release Team"] -aliases = [ - "2025/05/15/Rust-1.87.0.html", - "releases/1.87.0", -] +aliases = ["releases/1.87.0"] [extra] release = true diff --git a/content/Rustup-1.28.2.md b/content/Rustup-1.28.2.md index f10535f88..3976b21d6 100644 --- a/content/Rustup-1.28.2.md +++ b/content/Rustup-1.28.2.md @@ -2,7 +2,6 @@ path = "2025/05/05/Rustup-1.28.2" title = "Announcing rustup 1.28.2" authors = ["The Rustup Team"] -aliases = ["2025/05/05/Rustup-1.28.2.html"] +++ The rustup team is happy to announce the release of rustup version 1.28.2. diff --git a/content/inside-rust/compiler-team-new-members-may-2025.md b/content/inside-rust/compiler-team-new-members-may-2025.md index e841fc4b1..9cb2b5524 100644 --- a/content/inside-rust/compiler-team-new-members-may-2025.md +++ b/content/inside-rust/compiler-team-new-members-may-2025.md @@ -2,7 +2,6 @@ path = "inside-rust/2025/05/27/compiler-team-new-members" title = "Announcing five new members of the compiler team" authors = ["davidtwco and wesleywiser"] -aliases = ["inside-rust/2025/05/30/compiler-team-new-members.html"] [extra] team = "the compiler team" diff --git a/content/inside-rust/project-director-update@4.md b/content/inside-rust/project-director-update@4.md index ba6ded58c..74d5642f0 100644 --- a/content/inside-rust/project-director-update@4.md +++ b/content/inside-rust/project-director-update@4.md @@ -2,7 +2,6 @@ path = "inside-rust/2025/04/22/project-director-update" title = "April 2025 Project Director Update" authors = ["Carol Nichols"] -aliases = ["inside-rust/2025/04/22/project-director-update.html"] [extra] team = "Rust Foundation Project Directors" diff --git a/crates/front_matter/src/lib.rs b/crates/front_matter/src/lib.rs index f456c61ed..3ec65f009 100644 --- a/crates/front_matter/src/lib.rs +++ b/crates/front_matter/src/lib.rs @@ -135,6 +135,31 @@ pub fn normalize( } } + let path = front_matter.path.as_str(); + let date = path.strip_prefix("inside-rust/").unwrap_or(path); + if date > "2025/04/14" { + // Make sure that posts created after the migration to Zola don't have + // the alias for preserving permalinks. + // + // Blog authors would often copy-paste an old post, reusing the + // boilerplate for a new one. In that process, they'd usually preserve + // that alias as well, probably not knowing what it's for. Technically + // such an alias doesn't hurt much, it's just a redirect that isn't + // referenced anywhere. So these aliases were allowed, preferring not to + // bother blog authors with such unimportant stuff. + // + // However, there was a situation where a blog post was merged with + // the wrong publication date because of this. Shortly before merging, + // the date was updated, but it was accidentally changed in the useless + // alias instead of the authoritative `path` key. Because of this + // footgun, we don't allow creating these new aliases anymore. + // + // Blog authors who copy-paste old boilerplate will run into failed CI + // and have to fix it by removing the alias. It's annoying, but better + // than publishing a post with the wrong publication date. + front_matter.aliases.retain(|a| !a.contains(".html")); + } + if front_matter.extra.team.is_some() ^ front_matter.extra.team_url.is_some() { bail!("extra.team and extra.team_url must always come in a pair"); } From 469b9e8eaa4bd7712a37c8ef5af89591ce4da9c3 Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Sat, 31 May 2025 21:50:48 +0200 Subject: [PATCH 1010/1024] remove extraneous words --- content/inside-rust/stage0-redesign/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/inside-rust/stage0-redesign/index.md b/content/inside-rust/stage0-redesign/index.md index bce26d00a..e11c5f52b 100644 --- a/content/inside-rust/stage0-redesign/index.md +++ b/content/inside-rust/stage0-redesign/index.md @@ -76,7 +76,7 @@ To better understand this redesign, we will: 1. [Explain how the current stage 0 bootstrapping sequence works](#current-model), and 2. [Explain how the new stage 0 bootstrapping sequence works after the redesign](#new-model), and -3. [Explain the benefits of the redesigned stage 0 bootstrapping sequence is more preferable](#better). +3. [Explain the benefits of the redesigned stage 0 bootstrapping sequence](#better). # The current stage 0 bootstrap sequence {#current-model} From 096a1b04d94bf7bce49edff81b0a32df127af744 Mon Sep 17 00:00:00 2001 From: Tshepang Mbambo Date: Sat, 31 May 2025 22:02:26 +0200 Subject: [PATCH 1011/1024] typo --- content/inside-rust/stage0-redesign/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/inside-rust/stage0-redesign/index.md b/content/inside-rust/stage0-redesign/index.md index bce26d00a..fb436c376 100644 --- a/content/inside-rust/stage0-redesign/index.md +++ b/content/inside-rust/stage0-redesign/index.md @@ -101,7 +101,7 @@ In the [redesigned stage 0 bootstrapping sequence][stage0-redesign-pr] we instea There are several benefits of the redesigned stage 0 bootstrap sequence: 1. We no longer have to use `cfg(bootstrap)` in the standard library sources for intrinsics and lang items to distinguish when being built by the beta rustc vs the in-tree rustc, because the standard library now only has to be buildable by exactly one compiler version (the current stage rustc). -2. Rebasing no longer has to rebuild everything. As the standard library is now built *after* the compiler instead of before, all dependencies and compiler crates that are unmodified can be cached when switching `git` branches. It's only necessarily to rebuild everything after bootstrap bumps every 6 weeks as part of the release cycle. +2. Rebasing no longer has to rebuild everything. As the standard library is now built *after* the compiler instead of before, all dependencies and compiler crates that are unmodified can be cached when switching `git` branches. It's only necessary to rebuild everything after bootstrap bumps every 6 weeks as part of the release cycle. 3. Modifying the standard library no longer has to rebuild everything. After the redesign, it is now possible to add documentation comments to functions in the standard library without having to rebuild the compiler and then also rebuild std a second time. `--keep-stage-std=0` is no longer needed. 4. It aligns better with how other rust programs are built. We no longer have a "strange" setup where the stage 1 compiler was built from a *beta* rustc with an *in-tree* std. Now, the stage 1 compiler is built from a beta rustc and a beta std. From 0252beff212ee9b72af0aaaf6f1d0b570dac0059 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 2 Jun 2025 11:20:57 +0200 Subject: [PATCH 1012/1024] Lock file maintenance (#1633) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 45babb50d..3b330556e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -65,9 +65,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.24" +version = "1.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16595d3be041c03b09d08d0858631facccee9221e579704070e6e9e4915d3bc7" +checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" dependencies = [ "shlex", ] @@ -503,9 +503,9 @@ checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -567,9 +567,9 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -577,9 +577,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", @@ -682,7 +682,7 @@ dependencies = [ [[package]] name = "rust_team_data" version = "1.0.0" -source = "git+https://github.com/rust-lang/team#42268233f219de6965e38585e4e2eb18264684b8" +source = "git+https://github.com/rust-lang/team#a54224a782200281cd44591daf60189188cc6331" dependencies = [ "indexmap", "serde", From 55de40eac80c1ab7bd33d9e92106e16759231c49 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Wed, 4 Jun 2025 04:58:15 +0200 Subject: [PATCH 1013/1024] Switch to upstream Zola (#1632) * Add Zola as submodule * Add cargo alias to run Zola in submodule * Switch to upstream Zola All of the patches we needed for the migration have been merged upstream (with some modifications, hence the `sort_by = "permalink"` diff). We use a submodule of Zola so we can better control the version of Zola that blog authors are running locally. --- .cargo/config.toml | 1 + .github/workflows/main.yml | 6 +++--- .github/workflows/snapshot_tests.yml | 4 ++-- .gitmodules | 3 +++ README.md | 8 ++++---- content/_index.md | 1 + content/inside-rust/_index.md | 1 + crates/snapshot/src/lib.rs | 4 ++-- zola | 1 + 9 files changed, 18 insertions(+), 11 deletions(-) create mode 100644 .gitmodules create mode 160000 zola diff --git a/.cargo/config.toml b/.cargo/config.toml index a9b0b23cc..3fe4469e5 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,2 +1,3 @@ [alias] blog = ["run", "--package", "generate_blog"] +zola = ["run", "--manifest-path", "zola/Cargo.toml", "--"] diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ab6585843..b4404b79a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,13 +28,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + submodules: true - run: rustup override set ${{ env.RUST_VERSION }} - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 - - name: Install Zola - run: cargo install --locked --git https://github.com/senekor/zola --rev 79410eea82f837e4de9b1e4c3905287060b69255 - - run: zola build + - run: cargo zola build - run: cp CNAME ./public/ - run: touch public/.nojekyll diff --git a/.github/workflows/snapshot_tests.yml b/.github/workflows/snapshot_tests.yml index 1c40abd68..0768ca982 100644 --- a/.github/workflows/snapshot_tests.yml +++ b/.github/workflows/snapshot_tests.yml @@ -12,10 +12,10 @@ jobs: if: contains(github.event.pull_request.body, 'RUN_SNAPSHOT_TESTS') steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + with: + submodules: true - run: rustup override set ${{ env.RUST_VERSION }} - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 - - name: Install Zola - run: cargo install --locked --git https://github.com/senekor/zola --rev 79410eea82f837e4de9b1e4c3905287060b69255 - run: git fetch --depth 2 - run: git checkout origin/master diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..f538c9306 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "zola"] + path = zola + url = https://github.com/getzola/zola diff --git a/README.md b/README.md index 324be0b89..4977df4a7 100644 --- a/README.md +++ b/README.md @@ -8,14 +8,14 @@ It uses [Zola](https://www.getzola.org/) and is deployed to GitHub Pages via Git ## Building -To serve the site locally, first install Zola: (takes a couple minutes) +To serve the site locally, first make sure the zola submodule is initialized: ```sh -# using a fork because we rely on a few patches that haven't landed yet -cargo install --locked --git https://github.com/senekor/zola --rev 79410eea82f837e4de9b1e4c3905287060b69255 +git submodule update --init --recursive ``` -Now run `zola serve --open`. +Now run `cargo zola serve --open`. +(The first run takes a while to compile Zola.) The site will be reloaded automatically when you make any changes. ## Contributing diff --git a/content/_index.md b/content/_index.md index 348474b7d..1db41e9d8 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,6 +1,7 @@ +++ title = "Rust Blog" description = "Empowering everyone to build reliable and efficient software." +sort_by = "permalink" generate_feeds = true [extra] index_title = "The Rust Programming Language Blog" diff --git a/content/inside-rust/_index.md b/content/inside-rust/_index.md index 9cf9438c9..8231cb9ef 100644 --- a/content/inside-rust/_index.md +++ b/content/inside-rust/_index.md @@ -1,6 +1,7 @@ +++ title = "Inside Rust Blog" description = "Want to follow along with Rust development? Curious how you might get involved? Take a look!" +sort_by = "permalink" generate_feeds = true [extra] index_title = 'The "Inside Rust" Blog' diff --git a/crates/snapshot/src/lib.rs b/crates/snapshot/src/lib.rs index 44a78be29..1989a68e8 100644 --- a/crates/snapshot/src/lib.rs +++ b/crates/snapshot/src/lib.rs @@ -2,8 +2,8 @@ fn snapshot() { std::env::set_current_dir(concat!(env!("CARGO_MANIFEST_DIR"), "/../..")).unwrap(); let _ = std::fs::remove_dir_all("public"); - let status = std::process::Command::new("zola") - .arg("build") + let status = std::process::Command::new("cargo") + .args(["zola", "build"]) .status() .unwrap(); assert!(status.success(), "failed to build site"); diff --git a/zola b/zola new file mode 160000 index 000000000..4cc4dedff --- /dev/null +++ b/zola @@ -0,0 +1 @@ +Subproject commit 4cc4dedff832c8fdccd3185d19696435141998b3 From 09a56dec65eaf0b0964a6db6cbaae0fc31c9ac0c Mon Sep 17 00:00:00 2001 From: Tomas Sedovic Date: Thu, 5 Jun 2025 19:58:06 +0200 Subject: [PATCH 1014/1024] Add the Compiler Ops update post This is an overview of the Compiler Ops team, the history and what it achieved in the last six months. Written by: apiraino --- ...-glance-at-the-team-compiler-operations.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 content/inside-rust/a-glance-at-the-team-compiler-operations.md diff --git a/content/inside-rust/a-glance-at-the-team-compiler-operations.md b/content/inside-rust/a-glance-at-the-team-compiler-operations.md new file mode 100644 index 000000000..a045940fe --- /dev/null +++ b/content/inside-rust/a-glance-at-the-team-compiler-operations.md @@ -0,0 +1,63 @@ ++++ +path = "inside-rust/9999/12/31/a-glance-at-the-team-compiler-operations" +title = "A glance at the Team Compiler operations" +authors = ["apiraino"] + +[extra] +team = "the Compiler Ops team" +team_url = "https://www.rust-lang.org/governance/teams/compiler#team-compiler-ops" ++++ + +Hello everyone! This blog post will probably be a bit different, I will outline the work of a perhaps less visible structure in the Compiler Team: [The "Operations" team][compiler-ops]. + +I am Antonio, I've been helping the Rust project for a couple of years and recently I gave a short talk at the RustWeek '25 about my experience. Since then I received encouraging feedback and suggestions to expand a little more about it. + +It all started with the "Prioritization" Working Group (which some on you [may remember][wg-prio-call-for-contributors]), this core work was - and is still - to stay on top of the regressions filed in the main [Rust project git repository][rust-git] and do some first triaging to assess priority, bisecting where they originated, pinging relevant people: high priority regressions should be fixed by the next release (following our six-weekly cadence). We want to do our best to release stable compilers and libraries, without unexpected breaking changes. Prioritizing regressions often require technical context and the contribution of the Compiler Team members is essential for this work: thanks to everyone! + +Gradually this work grew up organically, there was room to freely explore a relatively young space: improving the organization and workflows of the Compiler team. In hindsight, [Niko][niko] and [Santiago][santi] had a great intuition and planted the seeds. I am the gardener that is looking after these young but robust trees. + +[compiler-ops]: https://www.rust-lang.org/governance/teams/compiler#team-compiler-ops +[rust-git]: https://github.com/rust-lang/rust/issues + +## Expanding the work and formalizing the Compiler Team Operations ("Ops") + +Today this work has expanded quite a bit and articulated in multiple branches. All this is made possible by creating and funding the "Operations" role, which allowed us to take time and focus on these improvements. + +- **Follow decisional processes**: the Compiler Team (not dissimilar from other teams) formalized some decisional processes ([MCP], [FCP] and [RFC]) to provide tools for contributors to make proposals. Process itself can only do so much when you everyone is doing 10 things at the same time, so someone needs to ensure that these processes move forward and ask questions if they are blocked. +- **Monitoring pull request reviews**: Compiler Team members have a finite amount of time and are fencing off an *infinite* amount of incoming contributions to review, follow-up and help bring to completions. The Rust project is a community work, so it is fundamental that contributions are not abandoned or forgotten. Staying on top of these contributions, sending reminders and ensuring that they don't get stale is part of the basic machinery that keeps the project rolling. +- **Organization of design/triage meetings**: the Compiler team meets every week to review the most important things, sometimes it is asked for some dedicated time to help design a specific feature. Doing the minutiae around these meetings takes a non-negligible amount of time! +- **Improve tooling and documentation**: the Compiler Team wouldn't go far without some ancillary tooling to help with any of the above points. These tools need maintenance and evolution, like every piece of software. Documentation, goes without saying, is never enough and it's part of our "Welcome flyer" when a contributor shows at the door. + +All this sounds like after all there is a lot more than *just* looking at regressions! So it was time to evolve what was a seminal Working Group and build the foundation for a more formal structure in charge of the "Operations", a field that for me encompasses a lot of that is not hacking into the compiler or designing features. The idea of the "Operations" comes from the Language Team (see [team#1091](https://github.com/rust-lang/team/pull/1091)) and I happily "stole" it: having homogeneous structures across the project is a good thing. + +The scope of "Operations" expands as the Compiler Team itself expands (almost 60 members and counting!) and all this puts a premium on coordination work. The Rust project (that celebrated the [10th anniversary of the 1.0 release][10-years-of-crabs]) is entering a new phase and the organizational part must keep up. If we squint enough, there is a lot of work ahead. + +During the last months we re-organized the Compiler Team into a single entity, closed all the old Working Groups that were not active anymore, unified all the documentation in the same place, the [Forge documentation][forge.r-l.org] website. We are constantly working on small quality of life improvements and automation bits that reduce to contributors. + +Every team in the Rust project has their own workflows, so I can only speak for the Compiler Team, but we are implementing more automation around processes. At the RustWeek '25 there were discussions around possible "joint" points for teams, more inter-team communication, shared processes: we are moving in a direction where we can make some "assumptions" about how a team works and where things are. For example every team cranking out code use the same process to handle regressions and backports. + +In the future we would like to tackle further common frictions points, such as the first onboarding for new contributors. A recurrent question is "who should I talk to, to learn more about X?" and the answer to this requires work in multiple areas (documentation, website, our Zulip chat, etc.). + +[MCP]: https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#how-do-i-submit-an-mcp +[FCP]: https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#targets +[RFC]: https://forge.rust-lang.org/libs/maintaining-std.html#when-is-an-rfc-needed +[10-years-of-crabs]: https://rustweek.org/celebration/ +[forge.r-l.org]: https://forge.rust-lang.org/libs/maintaining-std.html#when-is-an-rfc-needed + +## Collaboration + +The word "team" appears 28 times in this blog post, so I leave the most important thing to the last: nothing would be possible without the great help and initiative of other enthusiastic project members that in the true spirit of FOSS, figure out how to experiment and improve things. Among others, I want to especially acknowledge the work of [Urgau], [Jieyou Xu], [Jack Huey] and [Jakub Beránek], people on whose shoulders I stand, and [Wesley Wiser] and [David Wood] for being the best team leads one could wish for. + +## Conclusions + +In this blog post I've tried to shed light on some work that is perhaps less visible outside of the Rust project. The Compiler Team Ops is needed, it makes things work better for everyone in many small ways and - looking ahead - will help the whole Rust Project grow sustainably. + +[wg-prio-call-for-contributors]: https://blog.rust-lang.org/2020/09/14/wg-prio-call-for-contributors +[niko]: https://smallcultfollowing.com/babysteps/ +[santi]: https://santiagopastorino.com +[Jieyou Xu]: https://github.com/jieyouxu +[Urgau]: https://github.com/urgau +[Jack Huey]: https://github.com/jackh726 +[Jakub Beránek]: https://github.com/kobzol +[Wesley Wiser]: https://github.com/wesleywiser +[David Wood]: https://github.com/davidtwco From bad87d556d234d242f510145c5905ad9ab323a9b Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Thu, 5 Jun 2025 19:10:04 +0000 Subject: [PATCH 1015/1024] Date the compiler-ops post and revise editorially Let's give the post about the work of compiler-ops a date, and let's fix and improve various editorial points. --- ...-glance-at-the-team-compiler-operations.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/content/inside-rust/a-glance-at-the-team-compiler-operations.md b/content/inside-rust/a-glance-at-the-team-compiler-operations.md index a045940fe..5e6869a34 100644 --- a/content/inside-rust/a-glance-at-the-team-compiler-operations.md +++ b/content/inside-rust/a-glance-at-the-team-compiler-operations.md @@ -1,6 +1,6 @@ +++ -path = "inside-rust/9999/12/31/a-glance-at-the-team-compiler-operations" -title = "A glance at the Team Compiler operations" +path = "inside-rust/2025/06/05/a-glance-at-the-team-compiler-operations" +title = "A glance at compiler team operations" authors = ["apiraino"] [extra] @@ -8,49 +8,49 @@ team = "the Compiler Ops team" team_url = "https://www.rust-lang.org/governance/teams/compiler#team-compiler-ops" +++ -Hello everyone! This blog post will probably be a bit different, I will outline the work of a perhaps less visible structure in the Compiler Team: [The "Operations" team][compiler-ops]. +Hello everyone! This blog post will probably be a bit different. I will outline the work of a perhaps less visible structure in the Compiler Team: [the "operations" team][compiler-ops]. -I am Antonio, I've been helping the Rust project for a couple of years and recently I gave a short talk at the RustWeek '25 about my experience. Since then I received encouraging feedback and suggestions to expand a little more about it. +I am Antonio. I've been helping the Rust Project for a couple of years, and recently I gave a short talk at RustWeek 2025 about my experience. Since then I received encouragement to expand a little more about it. -It all started with the "Prioritization" Working Group (which some on you [may remember][wg-prio-call-for-contributors]), this core work was - and is still - to stay on top of the regressions filed in the main [Rust project git repository][rust-git] and do some first triaging to assess priority, bisecting where they originated, pinging relevant people: high priority regressions should be fixed by the next release (following our six-weekly cadence). We want to do our best to release stable compilers and libraries, without unexpected breaking changes. Prioritizing regressions often require technical context and the contribution of the Compiler Team members is essential for this work: thanks to everyone! +It all started with the "prioritization" working group (which some of you [may remember][wg-prio-call-for-contributors]). This core work was — and is still — to stay on top of the regressions filed in the main [Rust Project git repository][rust-git] and do initial triage to assess priority, bisect, and ping relevant people. High priority regressions should be fixed by the next release (following our six-week cadence). We want to do our best to release stable compilers and libraries without unexpected breaking changes. Prioritizing regressions often requires technical context, and the continued support of Compiler Team members is essential to this work. Thanks to everyone! -Gradually this work grew up organically, there was room to freely explore a relatively young space: improving the organization and workflows of the Compiler team. In hindsight, [Niko][niko] and [Santiago][santi] had a great intuition and planted the seeds. I am the gardener that is looking after these young but robust trees. +Gradually this work organically grew. There was room to freely explore a relatively young space: improving the organization and workflows of the Compiler Team. In hindsight, [Niko][niko] and [Santiago][santi] had great intuition and planted these seeds. I am the gardener that is looking after these young but robust trees. [compiler-ops]: https://www.rust-lang.org/governance/teams/compiler#team-compiler-ops [rust-git]: https://github.com/rust-lang/rust/issues -## Expanding the work and formalizing the Compiler Team Operations ("Ops") +## Expanding the work and formalizing Compiler Team Operations ("Ops") -Today this work has expanded quite a bit and articulated in multiple branches. All this is made possible by creating and funding the "Operations" role, which allowed us to take time and focus on these improvements. +Today this work has expanded quite a bit and forked multiple branches. All this is made possible by creating and funding the "operations" role, which allowed us to focus on these improvements. -- **Follow decisional processes**: the Compiler Team (not dissimilar from other teams) formalized some decisional processes ([MCP], [FCP] and [RFC]) to provide tools for contributors to make proposals. Process itself can only do so much when you everyone is doing 10 things at the same time, so someone needs to ensure that these processes move forward and ask questions if they are blocked. -- **Monitoring pull request reviews**: Compiler Team members have a finite amount of time and are fencing off an *infinite* amount of incoming contributions to review, follow-up and help bring to completions. The Rust project is a community work, so it is fundamental that contributions are not abandoned or forgotten. Staying on top of these contributions, sending reminders and ensuring that they don't get stale is part of the basic machinery that keeps the project rolling. -- **Organization of design/triage meetings**: the Compiler team meets every week to review the most important things, sometimes it is asked for some dedicated time to help design a specific feature. Doing the minutiae around these meetings takes a non-negligible amount of time! -- **Improve tooling and documentation**: the Compiler Team wouldn't go far without some ancillary tooling to help with any of the above points. These tools need maintenance and evolution, like every piece of software. Documentation, goes without saying, is never enough and it's part of our "Welcome flyer" when a contributor shows at the door. +- **Follow decisional processes**: the Compiler Team (not dissimilar to other teams) formalized some decisional processes ([MCPs], [FCPs], and [RFCs]) to provide tools for contributors to make proposals. Process itself can only do so much when everyone is doing 10 things at the same time, so someone needs to ensure that these processes move forward and ask questions if things are blocked. +- **Monitoring pull request reviews**: Compiler Team members have a finite amount of time and are fending off an *infinite* amount of incoming contributions to review, follow-up on, and help bring to completion. The Rust Project is a community work, so it is fundamental to ensure that contributions are not abandoned or forgotten. Staying on top of these contributions, sending reminders, and ensuring that they don't get stale is part of the basic machinery that keeps the project rolling. +- **Organization of design/triage meetings**: the Compiler Team meets every week to review the most important things. Sometimes it is asked for dedicated time to help design a specific feature. Doing the minutiae around organizing these meetings takes a non-negligible amount of time! +- **Improve tooling and documentation**: the Compiler Team wouldn't go far without some ancillary tooling to help with these tasks. These tools need maintenance and evolution, like every piece of software. Documentation — it goes without saying — can always be improved, and it's part of our "welcome flyer" when a contributor shows at the door. -All this sounds like after all there is a lot more than *just* looking at regressions! So it was time to evolve what was a seminal Working Group and build the foundation for a more formal structure in charge of the "Operations", a field that for me encompasses a lot of that is not hacking into the compiler or designing features. The idea of the "Operations" comes from the Language Team (see [team#1091](https://github.com/rust-lang/team/pull/1091)) and I happily "stole" it: having homogeneous structures across the project is a good thing. +All this sounds like, after all, there is a lot more than *just* looking at regressions! So it was time to evolve what was a seminal working group and build the foundation for a more formal structure in charge of the "operations" of the compiler team — a field that for me encompasses a lot that is not hacking on the compiler or designing features. The idea of "operations" comes from the Language Team (see [team#1091](https://github.com/rust-lang/team/pull/1091)) and I happily "stole" it. Having homogeneous structures across the Project is a good thing. -The scope of "Operations" expands as the Compiler Team itself expands (almost 60 members and counting!) and all this puts a premium on coordination work. The Rust project (that celebrated the [10th anniversary of the 1.0 release][10-years-of-crabs]) is entering a new phase and the organizational part must keep up. If we squint enough, there is a lot of work ahead. +The scope of "operations" expands as the Compiler Team itself expands (it now has almost 60 members and counting!) and all this puts a premium on coordination work. The Rust Project (that celebrated its [10th anniversary of the 1.0 release][10-years-of-crabs]) is entering a new phase, and the organizational part must keep up. If we squint enough, there is a lot of work ahead. -During the last months we re-organized the Compiler Team into a single entity, closed all the old Working Groups that were not active anymore, unified all the documentation in the same place, the [Forge documentation][forge.r-l.org] website. We are constantly working on small quality of life improvements and automation bits that reduce to contributors. +During the last many months, we reorganized the Compiler Team into a single entity, closed all the old working groups that were no longer active, and unified all the documentation into the same place (the [Forge][forge.r-l.org]). We are constantly working on small quality of life improvements and automation bits that reduce the burden on contributors. -Every team in the Rust project has their own workflows, so I can only speak for the Compiler Team, but we are implementing more automation around processes. At the RustWeek '25 there were discussions around possible "joint" points for teams, more inter-team communication, shared processes: we are moving in a direction where we can make some "assumptions" about how a team works and where things are. For example every team cranking out code use the same process to handle regressions and backports. +Every team in the Rust Project has its own workflows, so I can only speak for the Compiler Team, but we are implementing more automation around processes. At RustWeek 2025 there were discussions around possible "joint" points for teams — more inter-team communication, shared processes, etc. — we are moving in a direction where we can make some "assumptions" about how a team works and where things are. For example every team cranking out code uses the same process to handle regressions and backports. -In the future we would like to tackle further common frictions points, such as the first onboarding for new contributors. A recurrent question is "who should I talk to, to learn more about X?" and the answer to this requires work in multiple areas (documentation, website, our Zulip chat, etc.). +In the future we would like to tackle further common frictions points, such as the onboarding of new contributors. A recurring question is "who should I talk to in order to learn more about X?", and the answer to this requires work in multiple areas (documentation, the website, our Zulip instance, etc.). -[MCP]: https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#how-do-i-submit-an-mcp -[FCP]: https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#targets -[RFC]: https://forge.rust-lang.org/libs/maintaining-std.html#when-is-an-rfc-needed -[10-years-of-crabs]: https://rustweek.org/celebration/ -[forge.r-l.org]: https://forge.rust-lang.org/libs/maintaining-std.html#when-is-an-rfc-needed +[MCPs]: https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#how-do-i-submit-an-mcp +[FCPs]: https://forge.rust-lang.org/compiler/proposals-and-stabilization.html#targets +[RFCs]: https://forge.rust-lang.org/libs/maintaining-std.html#when-is-an-rfc-needed +[10-years-of-crabs]: https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/ +[forge.r-l.org]: https://forge.rust-lang.org/compiler/ ## Collaboration -The word "team" appears 28 times in this blog post, so I leave the most important thing to the last: nothing would be possible without the great help and initiative of other enthusiastic project members that in the true spirit of FOSS, figure out how to experiment and improve things. Among others, I want to especially acknowledge the work of [Urgau], [Jieyou Xu], [Jack Huey] and [Jakub Beránek], people on whose shoulders I stand, and [Wesley Wiser] and [David Wood] for being the best team leads one could wish for. +The word "team" appears many times in this blog post, so I leave the most important thing to the last. Nothing would be possible without the great help and initiative of other enthusiastic Project members that, in the true spirit of F/OSS, figure out how to experiment and improve things. Among others, I want to especially acknowledge the work of [Urgau], [Jieyou Xu], [Jack Huey], and [Jakub Beránek] — people on whose shoulders I stand — and [Wesley Wiser] and [David Wood] for being the best team leads one could wish for. -## Conclusions +## Conclusion -In this blog post I've tried to shed light on some work that is perhaps less visible outside of the Rust project. The Compiler Team Ops is needed, it makes things work better for everyone in many small ways and - looking ahead - will help the whole Rust Project grow sustainably. +In this blog post I've tried to shed light on work that is perhaps less visible outside of the Rust Project. The work of Compiler Team Ops is needed. It makes things work better for everyone, and — looking ahead — will help the whole Rust Project grow sustainably. [wg-prio-call-for-contributors]: https://blog.rust-lang.org/2020/09/14/wg-prio-call-for-contributors [niko]: https://smallcultfollowing.com/babysteps/ From b3bd6484d67dd8992f803dcf3e3b7bd234434ba7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 7 Jun 2025 06:55:26 +0200 Subject: [PATCH 1016/1024] Update Rust crate toml to v0.8.23 (#1635) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 20 ++++++++++---------- crates/front_matter/Cargo.toml | 2 +- crates/generate_blog/Cargo.toml | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3b330556e..6583ead07 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -787,9 +787,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -936,9 +936,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", @@ -948,18 +948,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.9" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.26" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", "serde", @@ -971,9 +971,9 @@ dependencies = [ [[package]] name = "toml_write" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "unicode-ident" diff --git a/crates/front_matter/Cargo.toml b/crates/front_matter/Cargo.toml index 77c5b4d65..9132201db 100644 --- a/crates/front_matter/Cargo.toml +++ b/crates/front_matter/Cargo.toml @@ -6,7 +6,7 @@ edition = "2024" [dependencies] eyre = "=0.6.12" serde = { version = "=1.0.219", features = ["derive"] } -toml = "=0.8.22" +toml = "=0.8.23" [dev-dependencies] walkdir = "=2.5.0" diff --git a/crates/generate_blog/Cargo.toml b/crates/generate_blog/Cargo.toml index 7fc9607ca..699d17587 100644 --- a/crates/generate_blog/Cargo.toml +++ b/crates/generate_blog/Cargo.toml @@ -7,6 +7,6 @@ edition = "2024" front_matter = { version = "0.1.0", path = "../front_matter" } inquire = "=0.7.5" serde = "=1.0.219" -toml = "=0.8.22" +toml = "=0.8.23" rust_team_data = { git = "https://github.com/rust-lang/team" } ureq = { version = "=3.0.11", features = ["rustls", "json"] } From 99cff82f6c416ad3b2dd1583a51e87388b1d4ff2 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Sat, 7 Jun 2025 13:32:59 -0700 Subject: [PATCH 1017/1024] Post for June 2025 Leadership Council Update --- .../leadership-council-update@7.md | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 content/inside-rust/leadership-council-update@7.md diff --git a/content/inside-rust/leadership-council-update@7.md b/content/inside-rust/leadership-council-update@7.md new file mode 100644 index 000000000..fab0ba9f7 --- /dev/null +++ b/content/inside-rust/leadership-council-update@7.md @@ -0,0 +1,98 @@ ++++ +path = "inside-rust/2025/06/11/leadership-council-update" +title = "June 2025 Leadership Council Update" +authors = ["Eric Huss"] + +[extra] +team = "Leadership Council" +team_url = "https://www.rust-lang.org/governance/teams/leadership-council" ++++ + +Hello again from the Rust Leadership Council! +We wanted to share an update on what the Council has been working on since [our last update][update]. + +[update]: https://blog.rust-lang.org/inside-rust/2025/03/17/leadership-council-update/ + +## Accomplishments so far + +### Welcome Josh Stone to the Council + +As [announced in March](https://blog.rust-lang.org/inside-rust/2025/03/26/leadership-council-repr-selection/), Josh Stone joined the Council representing the compiler team. + +### Program manager + +We've seen a lot of returns from good Project-directed program management. In support of this valuable work — so that we can do more with it while making it more sustainable — we allocated funds to the Edition and Goals teams to hire a program manager. TC and Joel interviewed a large number of candidates, and we're excited to announce that the Project, with logistical support from the Foundation, has brought on [Tomas Sedovic]. He's hit the ground running, joining many team calls in the past week, and supporting the teams with record keeping and communication — which is good for the transparency and effective functioning of our work — and with logistics such as the coordination of meetings and follow-up with contributors. Going forward, we're expecting this work to help us and our teams across the Project better manage the many ongoing initiatives that are of importance to us. + +[Tomas Sedovic]: https://github.com/tomassedovic + +### All-hands + +More than 150 people attended the all-hands event in May at [RustWeek 2025] in the Netherlands. We've received a lot of positive feedback about the event, as it was a great opportunity to get people from across the org to have focused discussions. + +The project was able to sponsor this event with $100,000 in funding for the event, with an additional $117,000 for travel and tickets. We are looking to see if we can secure funding to be able to continue these events in the future. + +Many thanks to [Mara Bos] who was instrumental in organizing this event and making it a success. + +[RustWeek 2025]: https://rustweek.org/ +[Mara Bos]: https://github.com/m-ou-se/ + +### Additional items + +And a few other items: +- [Josh Stone] has volunteered to be on the RustConf Program Committee to help select talks for [RustConf 2025](https://rustconf.com/). [leadership-council#163](https://github.com/rust-lang/leadership-council/issues/163) +- [TC] has volunteered to be a substitute for the June Foundation board meeting. [leadership-council#176](https://github.com/rust-lang/leadership-council/issues/176) +- Approved creating the Vision Doc team, which is working to create a document that identifies key opportunities for Rust over the next 3-5 years. [leadership-council#165](https://github.com/rust-lang/leadership-council/issues/165) +- Approved placing the Rust logo in the RISC-V landscape page. [leadership-council#164](https://github.com/rust-lang/leadership-council/issues/164) +- Approved a clarification of the definition of "expatriated crates" as part of our crate publishing policy. [rust-forge#840](https://github.com/rust-lang/rust-forge/pull/840) +- The social media team set up a [Bluesky account](https://bsky.app/profile/rust-lang.org) for posting official announcements. The Rust Project also has an official [Mastodon account](https://social.rust-lang.org/@rust) as well. +- Added the Foundation directors as a "team" in the team database. [team#1786](https://github.com/rust-lang/team/pull/1786) +- Approved the infra team to set it up so that team leads can directly approve modifications to their team files. [leadership-council#171](https://github.com/rust-lang/leadership-council/issues/171) +- Added some clarification on the approval process for posting on the official Rust blog. [leadership-council#173](https://github.com/rust-lang/leadership-council/issues/173). +- Added some basic onboarding documentation for the project as a whole. [rust-forge#846](https://github.com/rust-lang/rust-forge/pull/846) +- Clarified that the council does not need to be involved with transferring the Docker team out of the launching pad and into the infra team. [leadership-council#124](https://github.com/rust-lang/leadership-council/issues/124) + +[Josh Stone]: https://github.com/cuviper +[TC]: https://github.com/traviscross + +## Ongoing work + +There are various efforts underway on projects that have had significant discussions since the last update, but have not concluded with any decisions, yet. +They are: + +### Shape of Rust + +[James Munns] has continued to develop his ideas for a "Rust Society" to find a home for certain kinds of community groups and special interest groups. We've received great feedback during the all-hands to help further refine these ideas, and James is continuing to work on how this might be structured. [leadership-council#159](https://github.com/rust-lang/leadership-council/issues/159) + +One idea for how this might shape up is to re-charter the launching pad to be something more permanent for cross-cutting, long-lived teams (like the [Security Response Working Group](https://github.com/rust-lang/leadership-council/issues/141)). [leadership-council#170](https://github.com/rust-lang/leadership-council/issues/170) + +[James Munns]: https://github.com/jamesmunns + +### Foundation budget + +As part of [Microsoft's donation], the Council has had $650k available to spend at its discretion. There are three recent budget items that the Council has been considering: + +- Renewing the Compiler Ops contract for another six months. In the past six months we have spent about $20k out of the initial $30k that we reserved for this position. [leadership-council#181](https://github.com/rust-lang/leadership-council/issues/181) +- Planning for spending of the [travel budget]. We reserved $75k per year for travel expenses and event tickets. In 2024 we only spent about $16k, but due to the larger all-hands event this year we have spent $117k in the first half of the year. Combining those means there is only about $17k left for the remainder of the year. We'll need to decide if we want to stick to our budgeted cap, or if we want to consider extending it. Additionally we are considering whether or not we want to reserve what remains for 2026. [leadership-council#182](https://github.com/rust-lang/leadership-council/issues/182) +- Planning for 2026. At present the Council only has about $67k left unreserved. We could consider holding that for the travel budget next year, or to fund other things. We'll be having some discussions with the Foundation about other funding possibilities. + +[Microsoft's donation]: https://rustfoundation.org/media/1m-microsoft-donation-to-fund-key-rust-foundation-project-priorities/ +[travel budget]: https://github.com/rust-lang/leadership-council/blob/main/policies/spending/travel.md + +### Additional items + +- We have continued to have discussions on how to have better communication between the Council, Foundation directors, and the Foundation staff. +- A question came to the Council about the possibility of having explicit team membership durations. This came out of some discussions about how to address burnout, and would have other benefits such as having clearer team structures. [leadership-council#175](https://github.com/rust-lang/leadership-council/issues/175) + +## Meeting minutes + +We publish minutes from all Council meetings to the [Leadership Council repo][minutes]. +Links to the minutes since our last update are: + +* [March 14, 2025](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-03-14.md) +* [March 28, 2025](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-03-28.md) +* [April 11, 2025](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-04-11.md) +* [April 25, 2025](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-04-25.md) +* [May 9, 2025](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-05-09.md) +* [May 23, 2025](https://github.com/rust-lang/leadership-council/blob/main/minutes/sync-meeting/2025-05-23.md) + +[minutes]: https://github.com/rust-lang/leadership-council/tree/main/minutes From 120c075708402e8422c56a0047a7d60b79d7c229 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Jun 2025 09:09:07 +0200 Subject: [PATCH 1018/1024] Lock file maintenance (#1637) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6583ead07..d79ad55bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -65,9 +65,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.25" +version = "1.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0fc897dc1e865cc67c0e05a836d9d3f1df3cbe442aa4a9473b18e12624a4951" +checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac" dependencies = [ "shlex", ] @@ -212,9 +212,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -301,9 +301,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" [[package]] name = "http" @@ -682,7 +682,7 @@ dependencies = [ [[package]] name = "rust_team_data" version = "1.0.0" -source = "git+https://github.com/rust-lang/team#a54224a782200281cd44591daf60189188cc6331" +source = "git+https://github.com/rust-lang/team#e61c2109fe6a0b50d9f1870b4773189f29d88bbc" dependencies = [ "indexmap", "serde", @@ -838,9 +838,9 @@ checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa" [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "snapshot" From 9150174e1628b581e036bfed8fe43d96706bd400 Mon Sep 17 00:00:00 2001 From: Eric Huss Date: Wed, 11 Jun 2025 13:24:29 -0700 Subject: [PATCH 1019/1024] Fix some numbers --- content/inside-rust/leadership-council-update@7.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/inside-rust/leadership-council-update@7.md b/content/inside-rust/leadership-council-update@7.md index fab0ba9f7..b077219d1 100644 --- a/content/inside-rust/leadership-council-update@7.md +++ b/content/inside-rust/leadership-council-update@7.md @@ -29,7 +29,7 @@ We've seen a lot of returns from good Project-directed program management. In su More than 150 people attended the all-hands event in May at [RustWeek 2025] in the Netherlands. We've received a lot of positive feedback about the event, as it was a great opportunity to get people from across the org to have focused discussions. -The project was able to sponsor this event with $100,000 in funding for the event, with an additional $117,000 for travel and tickets. We are looking to see if we can secure funding to be able to continue these events in the future. +The project was able to sponsor this event with $100,000 in funding for the event, with an additional $90,000 for travel and tickets. We are looking to see if we can secure funding to be able to continue these events in the future. Many thanks to [Mara Bos] who was instrumental in organizing this event and making it a success. @@ -72,8 +72,8 @@ One idea for how this might shape up is to re-charter the launching pad to be so As part of [Microsoft's donation], the Council has had $650k available to spend at its discretion. There are three recent budget items that the Council has been considering: - Renewing the Compiler Ops contract for another six months. In the past six months we have spent about $20k out of the initial $30k that we reserved for this position. [leadership-council#181](https://github.com/rust-lang/leadership-council/issues/181) -- Planning for spending of the [travel budget]. We reserved $75k per year for travel expenses and event tickets. In 2024 we only spent about $16k, but due to the larger all-hands event this year we have spent $117k in the first half of the year. Combining those means there is only about $17k left for the remainder of the year. We'll need to decide if we want to stick to our budgeted cap, or if we want to consider extending it. Additionally we are considering whether or not we want to reserve what remains for 2026. [leadership-council#182](https://github.com/rust-lang/leadership-council/issues/182) -- Planning for 2026. At present the Council only has about $67k left unreserved. We could consider holding that for the travel budget next year, or to fund other things. We'll be having some discussions with the Foundation about other funding possibilities. +- Planning for spending of the [travel budget]. We reserved $75k per year for travel expenses and event tickets. In 2024 we only spent about $16k, but due to the larger all-hands event this year we have spent $90k in the first half of the year. Combining those means there is about $44k left for the remainder of the year. We are considering what this means for the rest of the year, and how we can plan for what we can reserve in 2026. [leadership-council#182](https://github.com/rust-lang/leadership-council/issues/182) +- Planning for 2026. At present the Council only has about $50k left unreserved. We could consider holding that for the travel budget next year, or to fund other things. We'll be having some discussions with the Foundation about other funding possibilities. [Microsoft's donation]: https://rustfoundation.org/media/1m-microsoft-donation-to-fund-key-rust-foundation-project-priorities/ [travel budget]: https://github.com/rust-lang/leadership-council/blob/main/policies/spending/travel.md From 9f80b23b2cb5f3d93962b2fe6396b441a7b68ac6 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Mon, 16 Jun 2025 12:24:25 +0200 Subject: [PATCH 1020/1024] renovate: Remove custom config for warpy We don't use warpy anymore. --- .github/renovate.json5 | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index b11428963..ff22db911 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -6,14 +6,4 @@ ':semanticCommitsDisabled', 'customManagers:githubActionsVersions', ], - packageRules: [ - { - matchPackageNames: [ - 'warpy', - ], - extends: [ - 'schedule:weekly', - ], - }, - ], } From 67e31af04b565058a35d121be43ab353d0b93491 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Mon, 16 Jun 2025 12:26:10 +0200 Subject: [PATCH 1021/1024] renovate: Don't update the lockfile The site is generated with Zola. All our regular Rust dependencies are essentially dev dependencies, used for testing and the blog post generator. Updating the lockfile weekly only causes frequent recompilation for no significant benefit. --- .github/renovate.json5 | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index ff22db911..bf9717a3c 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -2,7 +2,6 @@ extends: [ 'config:best-practices', ':pinAllExceptPeerDependencies', - ':maintainLockFilesWeekly', ':semanticCommitsDisabled', 'customManagers:githubActionsVersions', ], From 779c8ed0a42392bb638186d0017e1dc9ff7ac83c Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Mon, 16 Jun 2025 12:35:55 +0200 Subject: [PATCH 1022/1024] renovate: Unpin dependencies The site is generated with Zola. All our regular Rust dependencies are essentially dev dependencies, used for testing and the blog post generator. Pinning them to the patch release only causes frequent recompilation for no significant benefit. --- .github/renovate.json5 | 1 - crates/front_matter/Cargo.toml | 8 ++++---- crates/generate_blog/Cargo.toml | 8 ++++---- crates/snapshot/Cargo.toml | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index bf9717a3c..982ea26cc 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -1,7 +1,6 @@ { extends: [ 'config:best-practices', - ':pinAllExceptPeerDependencies', ':semanticCommitsDisabled', 'customManagers:githubActionsVersions', ], diff --git a/crates/front_matter/Cargo.toml b/crates/front_matter/Cargo.toml index 9132201db..3500aa1cf 100644 --- a/crates/front_matter/Cargo.toml +++ b/crates/front_matter/Cargo.toml @@ -4,9 +4,9 @@ version = "0.1.0" edition = "2024" [dependencies] -eyre = "=0.6.12" -serde = { version = "=1.0.219", features = ["derive"] } -toml = "=0.8.23" +eyre = "0.6.12" +serde = { version = "1.0.219", features = ["derive"] } +toml = "0.8.23" [dev-dependencies] -walkdir = "=2.5.0" +walkdir = "2.5.0" diff --git a/crates/generate_blog/Cargo.toml b/crates/generate_blog/Cargo.toml index 699d17587..d43d4982e 100644 --- a/crates/generate_blog/Cargo.toml +++ b/crates/generate_blog/Cargo.toml @@ -5,8 +5,8 @@ edition = "2024" [dependencies] front_matter = { version = "0.1.0", path = "../front_matter" } -inquire = "=0.7.5" -serde = "=1.0.219" -toml = "=0.8.23" +inquire = "0.7.5" +serde = "1.0.219" +toml = "0.8.23" rust_team_data = { git = "https://github.com/rust-lang/team" } -ureq = { version = "=3.0.11", features = ["rustls", "json"] } +ureq = { version = "3.0.11", features = ["rustls", "json"] } diff --git a/crates/snapshot/Cargo.toml b/crates/snapshot/Cargo.toml index fbf8abe8f..e39b7eef8 100644 --- a/crates/snapshot/Cargo.toml +++ b/crates/snapshot/Cargo.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2024" [dev-dependencies] -insta = { version = "=1.43.1", features = ["filters", "glob"] } +insta = { version = "1.43.1", features = ["filters", "glob"] } From 1a3525c35b9ffbd17cef3e4de44b629648014b5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Ber=C3=A1nek?= Date: Mon, 16 Jun 2025 15:14:28 +0200 Subject: [PATCH 1023/1024] Add Rust compiler performance 2025 survey blog post (#1622) --- .../rust-compiler-performance-survey-2025.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 content/rust-compiler-performance-survey-2025.md diff --git a/content/rust-compiler-performance-survey-2025.md b/content/rust-compiler-performance-survey-2025.md new file mode 100644 index 000000000..bcdcbb223 --- /dev/null +++ b/content/rust-compiler-performance-survey-2025.md @@ -0,0 +1,30 @@ ++++ +path = "2025/06/16/rust-compiler-performance-survey-2025" +title = "Rust compiler performance survey 2025" +authors = ["Jakub Beránek"] + +[extra] +team = "the Compiler Performance Working Group" +team_url = "https://www.rust-lang.org/governance/teams/compiler#team-wg-compiler-performance" ++++ + +We're launching a [Rust Compiler Performance Survey][survey-link]. + +Long compile times of Rust code are frequently being cited as one of the biggest [challenges][annual-survey] limiting the productivity of Rust developers. Rust compiler contributors are of course aware of that, and they are continuously working to improve the situation, by finding [new ways][how-to-speed-up-the-compiler] of speeding up the compiler, [triaging performance regressions][performance-triage] and [measuring][perf-dashboard] our long-term performance improvements. Recently, we also made progress on some [large changes][stabilize-lld] that have been in the making for a long time, which could significantly improve compiler performance by default. + +When we talk about compilation performance, it is important to note that it is not always so simple as determining how long does it take `rustc` to compile a crate. There are many diverse development workflows that might have competing trade-offs, and that can be bottlenecked by various factors, such as the integration of the compiler with the used build system. + +In order to better understand these workflows, we have prepared a [Rust Compiler Performance Survey][survey-link]. This survey is focused specifically on compilation performance, which allows us to get more detailed data than what we usually get from the annual State of Rust survey. The data from this survey will help us find areas where we should focus our efforts on improving the productivity of Rust developers. + +**You can fill out the survey [here][survey-link].** + +Filling the survey should take you approximately 10 minutes, and the survey is fully anonymous. We will accept submissions until Monday, July 7th, 2025. After the survey ends, we will evaluate the results and post key insights on this blog. + +We invite you to fill the survey, as your responses will help us improve Rust compilation performance. Thank you! + +[annual-survey]: https://blog.rust-lang.org/2025/02/13/2024-State-Of-Rust-Survey-results/#challenges +[survey-link]: https://www.surveyhero.com/c/rust-compiler-performance-2025 +[how-to-speed-up-the-compiler]: https://nnethercote.github.io/2025/03/19/how-to-speed-up-the-rust-compiler-in-march-2025.html +[performance-triage]: https://github.com/rust-lang/rustc-perf/blob/master/triage/README.md +[perf-dashboard]: https://perf.rust-lang.org/dashboard.html +[stabilize-lld]: https://github.com/rust-lang/rust/pull/140525 From 8cee6a71f44e7cdb137dc9876c588b1f805a0ff7 Mon Sep 17 00:00:00 2001 From: Remo Senekowitsch Date: Thu, 19 Jun 2025 21:43:49 +0200 Subject: [PATCH 1024/1024] ci: Fix caching of zola build (#1646) --- .github/workflows/main.yml | 2 ++ .github/workflows/snapshot_tests.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b4404b79a..f31c14b30 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,6 +33,8 @@ jobs: - run: rustup override set ${{ env.RUST_VERSION }} - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 + with: + workspaces: ".\nzola" # needed to cache build of zola in ./zola/target - run: cargo zola build - run: cp CNAME ./public/ diff --git a/.github/workflows/snapshot_tests.yml b/.github/workflows/snapshot_tests.yml index 0768ca982..e71b9063d 100644 --- a/.github/workflows/snapshot_tests.yml +++ b/.github/workflows/snapshot_tests.yml @@ -16,6 +16,8 @@ jobs: submodules: true - run: rustup override set ${{ env.RUST_VERSION }} - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 + with: + workspaces: ".\nzola" # needed to cache build of zola in ./zola/target - run: git fetch --depth 2 - run: git checkout origin/master

    f=vrzm_|B50!!sN zTfyWrrsGq%WVgOI(9Alh0)>a+P|(zyKgAl8m75X%VIw@C0ik&9{>ZHQwKpo6_vsp+ zzM=!E%6(hq3Y~B2WzXU9-3z&DZtpX!Yx3z2>@?B3H%IZ+H6p)IK6*rQV)G<8SpH-U zDUl$D4da(fYv8#B7!P2A7UK}>IH#Fkxk1YNA_m+9r}MpniJ>s|{+p_O z-v1?t5+}`74U_9nlwBVr9hg9L-;-h;i=I2pM~@G_IAhCDbu;gJf$^L5C$kgu-SvQe zZ+b(xq=vDl%>YLA2JLz%9tib17JhtuiWOIMmQI@ocZIo<7Q8Ma#PT}dTErH43o!;m z(q1mhR^qW?t=-QXG}NND!w@~O;5pfh7b_TZ+?+Av!1JU7In*rF2m;ayY)Y?wdn=0d z=Y(8eZABjPFZie`wh@G1jVDHTOUufQgVp-ZUuqXc@8Dw$O%@0h8M?+`7eDvV*sUr) z|2+5Kuv|F~9oCxN3tlnPcj2g*j;f9d$iJ|cUA&j;k^c)?H4C_CoWaOXWlA6Y{7vP% zhBB5UvxIs?v9O4@%QTHv2FKiK?v~P78UbmRF}e^MQpcxQ#8G1p@Hcj0OWVoc2;+a| z!6WlvG+1l?nREM9W#NCe!rIxCFwDJ~>>o9OPq0*eRb;EDIgIpZm%iB7IqiUb`uH8@ z`Z{37Di;%3z7o#wqJA{=<9yF%s3ViT2p@J3!Y?7XjhV6DYzZVMYC(>C)=dtRkuxS= z(s((AiLYkV9Lf`&UByCtzk*H=7+`ihV#L4SgBWq4>`?%R+F3DStr5NdX{h|h7t-Lv zj;Ks{h1o{RD&AlUSdinLk>W23%$BWB$z!;WSRZqh-u~aS@C!--lSKUwYuAI&7n9tE zc-T|L+MvP0^2{}RhnZN5N}Rxi{QZ9%a((|u22azIlGQMYy_lh@q@`G;U>*Md0O^&> A2><{9 literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/which-marginalized-group.svg b/static/images/2024-02-rust-survey-2023/which-marginalized-group.svg new file mode 100644 index 000000000..f95fa8f21 --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/which-marginalized-group.svg @@ -0,0 +1 @@ +10.4%15.2%41.5%16.3%12.9%49.5%18.2%17.2%16.4%20.0%8.8%31.4%25.8%4.8%Lesbian, gay, bisexual, queeror otherwise non-heterosexualNeurodivergentTransWoman or perceived as a womanRacial or ethnic minorityNon-binary genderOlder or younger than theaverage developers I knowPolitical beliefsEducational backgroundDisabled (physically,mentally, or otherwise)LanguageCultural beliefsReligious beliefsOther0%20%40%60%80%100%Which of the following underrepresented or marginalized groups intechnology do you consider yourself a part of?(total responses = 1322, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/which-os-do-you-target-wordcloud.png b/static/images/2024-02-rust-survey-2023/which-os-do-you-target-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..3adc31b04ef91b7931ca5b5b3714f1ccf602b93b GIT binary patch literal 53981 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 literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/which-os-do-you-target.svg b/static/images/2024-02-rust-survey-2023/which-os-do-you-target.svg new file mode 100644 index 000000000..ba02cedb5 --- /dev/null +++ b/static/images/2024-02-rust-survey-2023/which-os-do-you-target.svg @@ -0,0 +1 @@ +85.4%28.2%3.7%6.1%11.4%14.5%27.1%17.5%1.6%43.8%79.9%37.8%25.2%2.9%5.1%10.4%13.0%25.8%23.7%1.7%Linux (desktop or server)WindowsmacOSWebAssemblyExplicitly platform-independent (e.g., a librarywhich does not interact with the operating system)Embedded platforms (bare metal)Embedded platforms (with an operating system)AndroidiOSOther0%20%40%60%80%100%Year20232022Which operating systems or runtimes do you develop Rust software for?(total responses = 10433, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/which-os-do-you-use-wordcloud.png b/static/images/2024-02-rust-survey-2023/which-os-do-you-use-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba931cc3b24d7bf889c478a32b3417bf323d166 GIT binary patch literal 52811 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.7%13.8%33.5%1.2%31.9%68.0%30.0%15.0%32.8%1.1%LinuxmacOSWindowsWindows Subsystemfor LinuxOther0%20%40%60%80%100%Year20232022Which operating systems do you use regularly for Rust development?(total responses = 10500, multiple answers)Percent out of all responses (%) \ No newline at end of file diff --git a/static/images/2024-02-rust-survey-2023/which-problems-do-you-remember-encountering-wordcloud.png b/static/images/2024-02-rust-survey-2023/which-problems-do-you-remember-encountering-wordcloud.png new file mode 100644 index 0000000000000000000000000000000000000000..229e6b822d3cdf7d554a4a13b05142f49becc2db GIT binary patch literal 49398 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 Ao&W#< literal 0 HcmV?d00001 diff --git a/static/images/2024-02-rust-survey-2023/which-problems-do-you-remember-encountering.png b/static/images/2024-02-rust-survey-2023/which-problems-do-you-remember-encountering.png new file mode 100644 index 0000000000000000000000000000000000000000..a6670f241e43d2fa61638b3d779133aad11e93de GIT binary patch literal 37799 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