* [gentoo-commits] repo/proj/guru:dev commit in: gui-apps/eww/, gui-apps/eww/files/
@ 2024-09-05 19:50 Gonçalo Negrier Duarte
0 siblings, 0 replies; 2+ messages in thread
From: Gonçalo Negrier Duarte @ 2024-09-05 19:50 UTC (permalink / raw
To: gentoo-commits
commit: 606d347cbf9250ce0587a78fc8bf90d172ebea3b
Author: Gonçalo Negrier Duarte <gonegrier.duarte <AT> gmail <DOT> com>
AuthorDate: Thu Sep 5 19:48:37 2024 +0000
Commit: Gonçalo Negrier Duarte <gonegrier.duarte <AT> gmail <DOT> com>
CommitDate: Thu Sep 5 19:48:37 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=606d347c
gui-apps/eww: update all crates based on latest master (8661abf)
* cleanup 9999 ebuild
Closes: https://bugs.gentoo.org/939086
Closes: https://bugs.gentoo.org/938830
Signed-off-by: Gonçalo Negrier Duarte <gonegrier.duarte <AT> gmail.com>
gui-apps/eww/eww-0.6.0-r1.ebuild | 436 ++
gui-apps/eww/eww-0.6.0.ebuild | 454 --
gui-apps/eww/eww-9999.ebuild | 369 --
gui-apps/eww/files/eww-0.6.0-fix-version.patch | 35 -
gui-apps/eww/files/eww-0.6.0-update-crates.patch | 6019 ++++++++++++++++++++++
5 files changed, 6455 insertions(+), 858 deletions(-)
diff --git a/gui-apps/eww/eww-0.6.0-r1.ebuild b/gui-apps/eww/eww-0.6.0-r1.ebuild
new file mode 100644
index 000000000..fa16e66d8
--- /dev/null
+++ b/gui-apps/eww/eww-0.6.0-r1.ebuild
@@ -0,0 +1,436 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.22.0
+ adler@1.0.2
+ ahash@0.8.11
+ aho-corasick@1.1.3
+ allocator-api2@0.2.18
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.15
+ anstyle-parse@0.2.5
+ anstyle-query@1.1.1
+ anstyle-wincon@3.0.4
+ anstyle@1.0.8
+ anyhow@1.0.86
+ ascii-canvas@3.0.0
+ async-broadcast@0.7.1
+ async-channel@2.3.1
+ async-io@2.3.4
+ async-lock@3.4.0
+ async-process@2.2.4
+ async-recursion@1.1.1
+ async-signal@0.2.10
+ async-task@4.7.1
+ async-trait@0.1.81
+ atk-sys@0.18.0
+ atk@0.18.0
+ atomic-waker@1.1.2
+ autocfg@1.3.0
+ backtrace@0.3.73
+ base64@0.22.1
+ bincode@1.3.3
+ bit-set@0.5.3
+ bit-vec@0.6.3
+ bitflags@1.3.2
+ bitflags@2.6.0
+ block-buffer@0.10.4
+ blocking@1.6.1
+ bumpalo@3.16.0
+ byteorder@1.5.0
+ bytes@1.7.1
+ cached@0.53.1
+ cached_proc_macro@0.23.0
+ cached_proc_macro_types@0.1.1
+ cairo-rs@0.18.5
+ cairo-sys-rs@0.18.2
+ cc@1.1.14
+ cfg-expr@0.15.8
+ cfg-expr@0.16.0
+ cfg-if@1.0.0
+ cfg_aliases@0.2.1
+ chrono-tz-build@0.3.0
+ chrono-tz@0.9.0
+ chrono@0.4.38
+ chumsky@0.9.3
+ clap@4.5.16
+ clap_builder@4.5.15
+ clap_complete@4.5.23
+ clap_derive@4.5.13
+ clap_lex@0.7.2
+ codemap@0.1.3
+ codespan-reporting@0.11.1
+ colorchoice@1.0.2
+ concurrent-queue@2.5.0
+ console@0.15.8
+ core-foundation-sys@0.8.7
+ cpufeatures@0.2.13
+ crossbeam-channel@0.5.13
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.20
+ crunchy@0.2.2
+ crypto-common@0.1.6
+ darling@0.20.10
+ darling_core@0.20.10
+ darling_macro@0.20.10
+ dbusmenu-glib-sys@0.1.0
+ dbusmenu-glib@0.1.0
+ dbusmenu-gtk3-sys@0.1.0
+ dbusmenu-gtk3@0.1.0
+ derive_more-impl@1.0.0
+ derive_more@1.0.0
+ diff@0.1.13
+ digest@0.10.7
+ dirs-next@2.0.0
+ dirs-sys-next@0.1.2
+ dyn-clone@1.0.17
+ either@1.13.0
+ ena@0.14.3
+ encode_unicode@0.3.6
+ endi@1.1.0
+ enumflags2@0.7.10
+ enumflags2_derive@0.7.10
+ env_logger@0.10.2
+ equivalent@1.0.1
+ errno@0.3.9
+ event-listener-strategy@0.5.2
+ event-listener@5.3.1
+ extend@1.2.0
+ fastrand@2.1.1
+ field-offset@0.3.6
+ filetime@0.2.24
+ fixedbitset@0.4.2
+ fnv@1.0.7
+ fsevent-sys@4.1.0
+ futures-channel@0.3.30
+ futures-core@0.3.30
+ futures-executor@0.3.30
+ futures-io@0.3.30
+ futures-lite@2.3.0
+ futures-macro@0.3.30
+ futures-sink@0.3.30
+ futures-task@0.3.30
+ futures-util@0.3.30
+ futures@0.3.30
+ gdk-pixbuf-sys@0.18.0
+ gdk-pixbuf@0.18.5
+ gdk-sys@0.18.0
+ gdk@0.18.0
+ gdkx11-sys@0.18.0
+ gdkx11@0.18.0
+ generic-array@0.14.7
+ gethostname@0.4.3
+ getrandom@0.2.15
+ gimli@0.29.0
+ gio-sys@0.18.1
+ gio@0.18.4
+ glib-macros@0.18.5
+ glib-sys@0.18.1
+ glib@0.18.5
+ gobject-sys@0.18.0
+ grass@0.13.4
+ grass_compiler@0.13.4
+ gtk-layer-shell-sys@0.7.1
+ gtk-layer-shell@0.8.1
+ gtk-sys@0.18.0
+ gtk3-macros@0.18.0
+ gtk@0.18.1
+ hashbrown@0.14.5
+ heck@0.4.1
+ heck@0.5.0
+ hermit-abi@0.3.9
+ hermit-abi@0.4.0
+ hex@0.4.3
+ hifijson@0.2.2
+ humantime@2.1.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.60
+ ident_case@1.0.1
+ indexmap@2.4.0
+ inotify-sys@0.1.5
+ inotify@0.9.6
+ insta@1.39.0
+ is-terminal@0.4.13
+ is_terminal_polyfill@1.70.1
+ itertools@0.11.0
+ itertools@0.13.0
+ itoa@1.0.11
+ jaq-core@1.5.1
+ jaq-interpret@1.5.0
+ jaq-parse@1.0.3
+ jaq-std@1.6.0
+ jaq-syn@1.6.0
+ js-sys@0.3.70
+ kqueue-sys@1.0.4
+ kqueue@1.0.8
+ lalrpop-util@0.20.2
+ lalrpop@0.20.2
+ lasso@0.7.3
+ lazy_static@1.5.0
+ libc@0.2.158
+ libm@0.2.8
+ libredox@0.1.3
+ linked-hash-map@0.5.6
+ linux-raw-sys@0.4.14
+ lock_api@0.4.12
+ log@0.4.22
+ maplit@1.0.2
+ memchr@2.7.4
+ memoffset@0.9.1
+ miniz_oxide@0.7.4
+ mio@0.8.11
+ mio@1.0.2
+ new_debug_unreachable@1.0.6
+ nix@0.29.0
+ notify@6.1.1
+ ntapi@0.4.1
+ num-traits@0.2.19
+ object@0.36.3
+ once_cell@1.19.0
+ ordered-stream@0.2.0
+ pango-sys@0.18.0
+ pango@0.18.3
+ parking@2.2.0
+ parking_lot@0.12.3
+ parking_lot_core@0.9.10
+ parse-zoneinfo@0.3.1
+ petgraph@0.6.5
+ phf@0.11.2
+ phf_codegen@0.11.2
+ phf_generator@0.11.2
+ phf_macros@0.11.2
+ phf_shared@0.10.0
+ phf_shared@0.11.2
+ pico-args@0.5.0
+ pin-project-lite@0.2.14
+ pin-utils@0.1.0
+ piper@0.2.4
+ pkg-config@0.3.30
+ polling@3.7.3
+ ppv-lite86@0.2.20
+ precomputed-hash@0.1.1
+ pretty_assertions@1.4.0
+ pretty_env_logger@0.5.0
+ proc-macro-crate@1.3.1
+ proc-macro-crate@2.0.0
+ proc-macro-crate@3.1.0
+ proc-macro-error-attr@1.0.4
+ proc-macro-error@1.0.4
+ proc-macro2@1.0.86
+ pure-rust-locales@0.8.1
+ quote@1.0.37
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ rayon-core@1.12.1
+ rayon@1.10.0
+ redox_syscall@0.5.3
+ redox_users@0.4.6
+ ref-cast-impl@1.0.23
+ ref-cast@1.0.23
+ regex-automata@0.4.7
+ regex-syntax@0.8.4
+ regex@1.10.6
+ rustc-demangle@0.1.24
+ rustc_version@0.4.0
+ rustix@0.38.34
+ rustversion@1.0.17
+ ryu@1.0.18
+ same-file@1.0.6
+ scopeguard@1.2.0
+ semver@1.0.23
+ serde@1.0.209
+ serde_derive@1.0.209
+ serde_json@1.0.127
+ serde_repr@0.1.19
+ serde_spanned@0.6.7
+ sha1@0.10.6
+ shlex@1.3.0
+ signal-hook-registry@1.4.2
+ similar@2.6.0
+ simple-signal@1.1.1
+ siphasher@0.3.11
+ slab@0.4.9
+ smallvec@1.13.2
+ smart-default@0.7.1
+ socket2@0.5.7
+ static_assertions@1.1.0
+ string_cache@0.8.7
+ strsim@0.11.1
+ strum@0.26.3
+ strum_macros@0.26.4
+ syn@1.0.109
+ syn@2.0.76
+ sysinfo@0.31.3
+ system-deps@6.2.2
+ system-deps@7.0.2
+ target-lexicon@0.12.16
+ tempfile@3.12.0
+ term@0.7.0
+ termcolor@1.4.1
+ thiserror-impl@1.0.63
+ thiserror@1.0.63
+ tiny-keccak@2.0.2
+ tokio-macros@2.4.0
+ tokio-util@0.7.11
+ tokio@1.39.3
+ toml@0.8.19
+ toml_datetime@0.6.8
+ toml_edit@0.19.15
+ toml_edit@0.20.7
+ toml_edit@0.21.1
+ toml_edit@0.22.20
+ tracing-attributes@0.1.27
+ tracing-core@0.1.32
+ tracing@0.1.40
+ typenum@1.17.0
+ uds_windows@1.1.0
+ unescape@0.1.0
+ unicode-ident@1.0.12
+ unicode-width@0.1.13
+ unicode-xid@0.2.5
+ urlencoding@2.1.3
+ utf8parse@0.2.2
+ version-compare@0.2.0
+ version_check@0.9.5
+ wait-timeout@0.2.0
+ walkdir@2.5.0
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.93
+ wasm-bindgen-macro-support@0.2.93
+ wasm-bindgen-macro@0.2.93
+ wasm-bindgen-shared@0.2.93
+ wasm-bindgen@0.2.93
+ web-time@1.1.0
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.9
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-core@0.57.0
+ windows-implement@0.57.0
+ windows-interface@0.57.0
+ windows-result@0.1.2
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.48.5
+ windows-targets@0.52.6
+ windows@0.57.0
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.6
+ winnow@0.5.40
+ winnow@0.6.18
+ x11@2.21.0
+ x11rb-protocol@0.13.1
+ x11rb@0.13.1
+ xdg-home@1.3.0
+ yansi@0.5.1
+ zbus@4.4.0
+ zbus_macros@4.4.0
+ zbus_names@3.0.0
+ zerocopy-derive@0.7.35
+ zerocopy@0.7.35
+ zvariant@4.2.0
+ zvariant_derive@4.2.0
+ zvariant_utils@2.1.0
+"
+
+inherit cargo shell-completion
+
+DESCRIPTION="Elkowars Wacky Widgets is a standalone widget system made in Rust"
+HOMEPAGE="https://elkowar.github.io/eww/"
+SRC_URI="https://git.sr.ht/~antecrescent/gentoo-files/blob/main/gui-apps/eww/${P}-shellcomp.tar.xz"
+
+if [[ "${PV}" == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/elkowar/eww.git"
+else
+ SRC_URI+="
+ https://github.com/elkowar/eww/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+ "
+ KEYWORDS="~amd64"
+
+ PATCHES="${FILESDIR}/eww-0.6.0-update-crates.patch"
+fi
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD CC0-1.0 ISC LGPL-3
+ Unicode-DFS-2016
+"
+SLOT="0"
+IUSE="X wayland"
+REQUIRED_USE="|| ( X wayland )"
+
+RDEPEND="
+ dev-libs/glib:2
+ dev-libs/libdbusmenu[gtk3]
+ x11-libs/cairo[glib]
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X?,wayland?]
+ x11-libs/pango
+ wayland? ( gui-libs/gtk-layer-shell )
+"
+# transitively hard-depend on xorg-proto due to gdk-3.0.pc
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ virtual/pkgconfig
+ >=virtual/rust-1.74.0
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+src_unpack() {
+ if [[ "${PV}" == 9999 ]]; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ unpack ${P}-shellcomp.tar.xz
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_configure() {
+ local myfeatures=(
+ $(usev X x11)
+ $(usev wayland wayland)
+ )
+ cargo_src_configure --no-default-features
+}
+
+src_install() {
+ dobashcomp "${WORKDIR}"/eww
+ dofishcomp "${WORKDIR}"/eww.fish
+ dozshcomp "${WORKDIR}"/_eww
+
+ dodoc README.md CHANGELOG.md
+ cargo_src_install --path crates/eww
+}
+
+pkg_postinst() {
+ elog "Eww wont run without a config file (usually in ~/.config/eww)."
+ elog "For example configs visit https://github.com/elkowar/eww#examples"
+}
diff --git a/gui-apps/eww/eww-0.6.0.ebuild b/gui-apps/eww/eww-0.6.0.ebuild
deleted file mode 100644
index 45364f718..000000000
--- a/gui-apps/eww/eww-0.6.0.ebuild
+++ /dev/null
@@ -1,454 +0,0 @@
-# Copyright 2022-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- addr2line@0.20.0
- adler@1.0.2
- ahash@0.7.6
- ahash@0.8.9
- aho-corasick@1.0.4
- allocator-api2@0.2.16
- android-tzdata@0.1.1
- android_system_properties@0.1.5
- anstream@0.6.12
- anstyle-parse@0.2.1
- anstyle-query@1.0.0
- anstyle-wincon@3.0.2
- anstyle@1.0.1
- anyhow@1.0.80
- ascii-canvas@3.0.0
- async-broadcast@0.5.1
- async-channel@1.9.0
- async-io@1.13.0
- async-lock@2.8.0
- async-process@1.7.0
- async-recursion@1.0.4
- async-task@4.4.0
- async-trait@0.1.73
- atk-sys@0.17.0
- atk@0.17.1
- atomic-waker@1.1.1
- autocfg@1.1.0
- backtrace@0.3.68
- base64@0.21.7
- bincode@1.3.3
- bit-set@0.5.3
- bit-vec@0.6.3
- bitflags@1.3.2
- bitflags@2.4.0
- block-buffer@0.10.4
- blocking@1.3.1
- bumpalo@3.13.0
- byteorder@1.4.3
- bytes@1.4.0
- cached@0.48.1
- cached_proc_macro@0.19.1
- cached_proc_macro_types@0.1.1
- cairo-rs@0.17.10
- cairo-sys-rs@0.17.10
- cc@1.0.82
- cfg-expr@0.15.4
- cfg-if@1.0.0
- chrono-tz-build@0.2.0
- chrono-tz@0.8.3
- chrono@0.4.26
- chumsky@0.9.3
- clap@4.5.1
- clap_builder@4.5.1
- clap_complete@4.5.1
- clap_derive@4.5.0
- clap_lex@0.7.0
- codemap@0.1.3
- codespan-reporting@0.11.1
- colorchoice@1.0.0
- concurrent-queue@2.2.0
- console@0.15.7
- convert_case@0.4.0
- core-foundation-sys@0.8.4
- cpufeatures@0.2.9
- crossbeam-channel@0.5.8
- crossbeam-deque@0.8.3
- crossbeam-epoch@0.9.15
- crossbeam-utils@0.8.16
- crunchy@0.2.2
- crypto-common@0.1.6
- darling@0.14.4
- darling_core@0.14.4
- darling_macro@0.14.4
- dbusmenu-glib-sys@0.1.0
- dbusmenu-glib@0.1.0
- dbusmenu-gtk3-sys@0.1.0
- dbusmenu-gtk3@0.1.0
- deranged@0.3.11
- derivative@2.2.0
- derive_more@0.99.17
- diff@0.1.13
- digest@0.10.7
- dirs-next@2.0.0
- dirs-sys-next@0.1.2
- dyn-clone@1.0.12
- either@1.9.0
- ena@0.14.2
- encode_unicode@0.3.6
- enumflags2@0.7.7
- enumflags2_derive@0.7.7
- env_logger@0.10.0
- equivalent@1.0.1
- errno-dragonfly@0.1.2
- errno@0.3.2
- event-listener@2.5.3
- extend@1.2.0
- fastrand@1.9.0
- fastrand@2.0.0
- field-offset@0.3.6
- filetime@0.2.22
- fixedbitset@0.4.2
- fnv@1.0.7
- fsevent-sys@4.1.0
- futures-channel@0.3.28
- futures-core@0.3.28
- futures-executor@0.3.28
- futures-io@0.3.28
- futures-lite@1.13.0
- futures-macro@0.3.28
- futures-sink@0.3.28
- futures-task@0.3.28
- futures-util@0.3.28
- futures@0.3.28
- gdk-pixbuf-sys@0.17.10
- gdk-pixbuf@0.17.10
- gdk-sys@0.17.0
- gdk@0.17.1
- gdkx11-sys@0.17.0
- gdkx11@0.17.0
- generic-array@0.14.7
- gethostname@0.2.3
- getrandom@0.2.10
- gimli@0.27.3
- gio-sys@0.17.10
- gio@0.17.10
- glib-macros@0.17.10
- glib-sys@0.17.10
- glib@0.17.10
- gobject-sys@0.17.10
- grass@0.13.1
- grass_compiler@0.13.0
- gtk-layer-shell-sys@0.6.0
- gtk-layer-shell@0.6.1
- gtk-sys@0.17.0
- gtk3-macros@0.17.1
- gtk@0.17.1
- hashbrown@0.11.2
- hashbrown@0.12.3
- hashbrown@0.14.3
- heck@0.4.1
- hermit-abi@0.3.2
- hex@0.4.3
- hifijson@0.2.0
- humantime@2.1.0
- iana-time-zone-haiku@0.1.2
- iana-time-zone@0.1.57
- ident_case@1.0.1
- indexmap@1.9.3
- indexmap@2.0.0
- inotify-sys@0.1.5
- inotify@0.9.6
- insta@1.31.0
- instant@0.1.12
- io-lifetimes@1.0.11
- is-terminal@0.4.9
- itertools@0.10.5
- itertools@0.12.1
- itoa@1.0.9
- jaq-core@1.2.1
- jaq-interpret@1.2.1
- jaq-parse@1.0.2
- jaq-std@1.2.1
- jaq-syn@1.1.0
- js-sys@0.3.64
- kqueue-sys@1.0.4
- kqueue@1.0.8
- lalrpop-util@0.20.0
- lalrpop@0.20.0
- lasso@0.6.0
- lazy_static@1.4.0
- libc@0.2.153
- libm@0.2.8
- linked-hash-map@0.5.6
- linux-raw-sys@0.3.8
- linux-raw-sys@0.4.5
- lock_api@0.4.10
- log@0.4.20
- maplit@1.0.2
- memchr@2.7.1
- memoffset@0.6.5
- memoffset@0.7.1
- memoffset@0.9.0
- miniz_oxide@0.7.1
- mio@0.8.10
- new_debug_unreachable@1.0.4
- nix@0.25.1
- nix@0.26.2
- nix@0.27.1
- notify@6.1.1
- ntapi@0.4.1
- num-conv@0.1.0
- num-traits@0.2.16
- num_cpus@1.16.0
- object@0.31.1
- once_cell@1.19.0
- ordered-stream@0.2.0
- pango-sys@0.17.10
- pango@0.17.10
- parking@2.1.0
- parking_lot@0.12.1
- parking_lot_core@0.9.8
- parse-zoneinfo@0.3.0
- petgraph@0.6.3
- phf@0.10.1
- phf@0.11.2
- phf_codegen@0.11.2
- phf_generator@0.10.0
- phf_generator@0.11.2
- phf_macros@0.10.0
- phf_shared@0.10.0
- phf_shared@0.11.2
- pico-args@0.5.0
- pin-project-lite@0.2.12
- pin-utils@0.1.0
- pkg-config@0.3.27
- polling@2.8.0
- powerfmt@0.2.0
- ppv-lite86@0.2.17
- precomputed-hash@0.1.1
- pretty_assertions@1.4.0
- pretty_env_logger@0.5.0
- proc-macro-crate@1.3.1
- proc-macro-error-attr@1.0.4
- proc-macro-error@1.0.4
- proc-macro-hack@0.5.20+deprecated
- proc-macro2@1.0.78
- quote@1.0.35
- rand@0.8.5
- rand_chacha@0.3.1
- rand_core@0.6.4
- rayon-core@1.12.1
- rayon@1.8.1
- redox_syscall@0.2.16
- redox_syscall@0.3.5
- redox_users@0.4.3
- ref-cast-impl@1.0.22
- ref-cast@1.0.22
- regex-automata@0.4.5
- regex-syntax@0.7.4
- regex-syntax@0.8.2
- regex@1.10.3
- rustc-demangle@0.1.23
- rustc_version@0.4.0
- rustix@0.37.23
- rustix@0.38.8
- rustversion@1.0.14
- ryu@1.0.15
- same-file@1.0.6
- scopeguard@1.2.0
- semver@1.0.18
- serde@1.0.197
- serde_derive@1.0.197
- serde_json@1.0.105
- serde_repr@0.1.16
- serde_spanned@0.6.3
- sha1@0.10.5
- signal-hook-registry@1.4.1
- signal-hook@0.3.17
- similar@2.2.1
- simple-signal@1.1.1
- siphasher@0.3.10
- slab@0.4.8
- smallvec@1.11.0
- smart-default@0.7.1
- socket2@0.4.9
- socket2@0.5.6
- static_assertions@1.1.0
- string_cache@0.8.7
- strsim@0.10.0
- strsim@0.11.0
- strum@0.26.1
- strum_macros@0.26.1
- syn@1.0.109
- syn@2.0.50
- sysinfo@0.30.5
- system-deps@6.1.1
- target-lexicon@0.12.11
- tempfile@3.8.0
- term@0.7.0
- termcolor@1.2.0
- thiserror-impl@1.0.46
- thiserror@1.0.46
- time-core@0.1.2
- time-macros@0.2.17
- time@0.1.45
- time@0.3.34
- tiny-keccak@2.0.2
- tokio-macros@2.2.0
- tokio-util@0.7.8
- tokio@1.36.0
- toml@0.7.6
- toml_datetime@0.6.3
- toml_edit@0.19.14
- tracing-attributes@0.1.26
- tracing-core@0.1.31
- tracing@0.1.37
- typenum@1.16.0
- uds_windows@1.0.2
- unescape@0.1.0
- unicode-ident@1.0.11
- unicode-width@0.1.10
- unicode-xid@0.2.4
- urlencoding@2.1.3
- utf8parse@0.2.1
- version-compare@0.1.1
- version_check@0.9.4
- wait-timeout@0.2.0
- waker-fn@1.1.0
- walkdir@2.3.3
- wasi@0.10.0+wasi-snapshot-preview1
- wasi@0.11.0+wasi-snapshot-preview1
- wasm-bindgen-backend@0.2.87
- wasm-bindgen-macro-support@0.2.87
- wasm-bindgen-macro@0.2.87
- wasm-bindgen-shared@0.2.87
- wasm-bindgen@0.2.87
- winapi-i686-pc-windows-gnu@0.4.0
- winapi-util@0.1.5
- winapi-wsapoll@0.1.1
- winapi-x86_64-pc-windows-gnu@0.4.0
- winapi@0.3.9
- windows-core@0.52.0
- windows-sys@0.45.0
- windows-sys@0.48.0
- windows-sys@0.52.0
- windows-targets@0.42.2
- windows-targets@0.48.2
- windows-targets@0.52.3
- windows@0.48.0
- windows@0.52.0
- windows_aarch64_gnullvm@0.42.2
- windows_aarch64_gnullvm@0.48.2
- windows_aarch64_gnullvm@0.52.3
- windows_aarch64_msvc@0.42.2
- windows_aarch64_msvc@0.48.2
- windows_aarch64_msvc@0.52.3
- windows_i686_gnu@0.42.2
- windows_i686_gnu@0.48.2
- windows_i686_gnu@0.52.3
- windows_i686_msvc@0.42.2
- windows_i686_msvc@0.48.2
- windows_i686_msvc@0.52.3
- windows_x86_64_gnu@0.42.2
- windows_x86_64_gnu@0.48.2
- windows_x86_64_gnu@0.52.3
- windows_x86_64_gnullvm@0.42.2
- windows_x86_64_gnullvm@0.48.2
- windows_x86_64_gnullvm@0.52.3
- windows_x86_64_msvc@0.42.2
- windows_x86_64_msvc@0.48.2
- windows_x86_64_msvc@0.52.3
- winnow@0.5.11
- x11@2.21.0
- x11rb-protocol@0.11.1
- x11rb@0.11.1
- xdg-home@1.0.0
- yaml-rust@0.4.5
- yansi@0.5.1
- zbus@3.14.1
- zbus_macros@3.14.1
- zbus_names@2.6.0
- zerocopy-derive@0.7.32
- zerocopy@0.7.32
- zvariant@3.15.0
- zvariant_derive@3.15.0
- zvariant_utils@1.0.1
-"
-
-inherit cargo shell-completion
-
-DESCRIPTION="Elkowars Wacky Widgets is a standalone widget system made in Rust"
-HOMEPAGE="https://elkowar.github.io/eww/"
-SRC_URI="https://git.sr.ht/~antecrescent/gentoo-files/blob/main/gui-apps/eww/${P}-shellcomp.tar.xz"
-
-if [[ "${PV}" == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/elkowar/eww.git"
-else
- SRC_URI+="
- https://github.com/elkowar/eww/archive/v${PV}.tar.gz -> ${P}.tar.gz
- ${CARGO_CRATE_URIS}
- "
- KEYWORDS="~amd64"
-
- PATCHES="${FILESDIR}/eww-0.6.0-fix-version.patch"
-fi
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD CC0-1.0 ISC LGPL-3
- Unicode-DFS-2016
-"
-SLOT="0"
-IUSE="X wayland"
-REQUIRED_USE="|| ( X wayland )"
-
-RDEPEND="
- dev-libs/glib:2
- dev-libs/libdbusmenu[gtk3]
- x11-libs/cairo[glib]
- x11-libs/gdk-pixbuf:2
- x11-libs/gtk+:3[X?,wayland?]
- x11-libs/pango
- wayland? ( gui-libs/gtk-layer-shell )
-"
-# transitively hard-depend on xorg-proto due to gdk-3.0.pc
-DEPEND="${RDEPEND}
- x11-base/xorg-proto
-"
-BDEPEND="
- virtual/pkgconfig
- >=virtual/rust-1.74.0
-"
-
-QA_FLAGS_IGNORED="usr/bin/.*"
-
-src_unpack() {
- if [[ "${PV}" == 9999 ]]; then
- git-r3_src_unpack
- cargo_live_src_unpack
- unpack ${P}-shellcomp.tar.xz
- else
- cargo_src_unpack
- fi
-}
-
-src_configure() {
- local myfeatures=(
- $(usev X x11)
- $(usev wayland wayland)
- )
- cargo_src_configure --no-default-features
-}
-
-src_install() {
- dobashcomp "${WORKDIR}"/eww
- dofishcomp "${WORKDIR}"/eww.fish
- dozshcomp "${WORKDIR}"/_eww
-
- dodoc README.md CHANGELOG.md
- cargo_src_install --path crates/eww
-}
-
-pkg_postinst() {
- elog "Eww wont run without a config file (usually in ~/.config/eww)."
- elog "For example configs visit https://github.com/elkowar/eww#examples"
-}
diff --git a/gui-apps/eww/eww-9999.ebuild b/gui-apps/eww/eww-9999.ebuild
index 00c4650dc..ed4d039a9 100644
--- a/gui-apps/eww/eww-9999.ebuild
+++ b/gui-apps/eww/eww-9999.ebuild
@@ -3,375 +3,6 @@
EAPI=8
-CRATES="
- addr2line@0.20.0
- adler@1.0.2
- ahash@0.7.8
- ahash@0.8.9
- aho-corasick@1.0.4
- allocator-api2@0.2.16
- android-tzdata@0.1.1
- android_system_properties@0.1.5
- anstream@0.6.12
- anstyle-parse@0.2.1
- anstyle-query@1.0.0
- anstyle-wincon@3.0.2
- anstyle@1.0.1
- anyhow@1.0.80
- ascii-canvas@3.0.0
- async-broadcast@0.5.1
- async-channel@1.9.0
- async-io@1.13.0
- async-lock@2.8.0
- async-process@1.7.0
- async-recursion@1.0.4
- async-task@4.4.0
- async-trait@0.1.73
- atk-sys@0.17.0
- atk@0.17.1
- atomic-waker@1.1.1
- autocfg@1.1.0
- backtrace@0.3.68
- base64@0.21.7
- bincode@1.3.3
- bit-set@0.5.3
- bit-vec@0.6.3
- bitflags@1.3.2
- bitflags@2.4.0
- block-buffer@0.10.4
- blocking@1.3.1
- bumpalo@3.13.0
- byteorder@1.4.3
- bytes@1.4.0
- cached@0.48.1
- cached_proc_macro@0.19.1
- cached_proc_macro_types@0.1.1
- cairo-rs@0.17.10
- cairo-sys-rs@0.17.10
- cc@1.0.82
- cfg-expr@0.15.4
- cfg-if@1.0.0
- chrono-tz-build@0.2.0
- chrono-tz@0.8.3
- chrono@0.4.26
- chumsky@0.9.3
- clap@4.5.1
- clap_builder@4.5.1
- clap_complete@4.5.1
- clap_derive@4.5.0
- clap_lex@0.7.0
- codemap@0.1.3
- codespan-reporting@0.11.1
- colorchoice@1.0.0
- concurrent-queue@2.2.0
- console@0.15.7
- convert_case@0.4.0
- core-foundation-sys@0.8.4
- cpufeatures@0.2.9
- crossbeam-channel@0.5.8
- crossbeam-deque@0.8.3
- crossbeam-epoch@0.9.15
- crossbeam-utils@0.8.16
- crunchy@0.2.2
- crypto-common@0.1.6
- darling@0.14.4
- darling_core@0.14.4
- darling_macro@0.14.4
- dbusmenu-glib-sys@0.1.0
- dbusmenu-glib@0.1.0
- dbusmenu-gtk3-sys@0.1.0
- dbusmenu-gtk3@0.1.0
- deranged@0.3.11
- derivative@2.2.0
- derive_more@0.99.17
- diff@0.1.13
- digest@0.10.7
- dirs-next@2.0.0
- dirs-sys-next@0.1.2
- dyn-clone@1.0.12
- either@1.9.0
- ena@0.14.2
- encode_unicode@0.3.6
- enumflags2@0.7.7
- enumflags2_derive@0.7.7
- env_logger@0.10.0
- equivalent@1.0.1
- errno-dragonfly@0.1.2
- errno@0.3.2
- event-listener@2.5.3
- extend@1.2.0
- fastrand@1.9.0
- fastrand@2.0.0
- field-offset@0.3.6
- filetime@0.2.22
- fixedbitset@0.4.2
- fnv@1.0.7
- fsevent-sys@4.1.0
- futures-channel@0.3.28
- futures-core@0.3.28
- futures-executor@0.3.28
- futures-io@0.3.28
- futures-lite@1.13.0
- futures-macro@0.3.28
- futures-sink@0.3.28
- futures-task@0.3.28
- futures-util@0.3.28
- futures@0.3.28
- gdk-pixbuf-sys@0.17.10
- gdk-pixbuf@0.17.10
- gdk-sys@0.17.0
- gdk@0.17.1
- gdkx11-sys@0.17.0
- gdkx11@0.17.0
- generic-array@0.14.7
- gethostname@0.2.3
- getrandom@0.2.10
- gimli@0.27.3
- gio-sys@0.17.10
- gio@0.17.10
- glib-macros@0.17.10
- glib-sys@0.17.10
- glib@0.17.10
- gobject-sys@0.17.10
- grass@0.13.1
- grass_compiler@0.13.0
- gtk-layer-shell-sys@0.6.0
- gtk-layer-shell@0.6.1
- gtk-sys@0.17.0
- gtk3-macros@0.17.1
- gtk@0.17.1
- hashbrown@0.11.2
- hashbrown@0.12.3
- hashbrown@0.14.3
- heck@0.4.1
- hermit-abi@0.3.2
- hex@0.4.3
- hifijson@0.2.0
- humantime@2.1.0
- iana-time-zone-haiku@0.1.2
- iana-time-zone@0.1.57
- ident_case@1.0.1
- indexmap@1.9.3
- indexmap@2.0.0
- inotify-sys@0.1.5
- inotify@0.9.6
- insta@1.31.0
- instant@0.1.12
- io-lifetimes@1.0.11
- is-terminal@0.4.9
- itertools@0.10.5
- itertools@0.12.1
- itoa@1.0.9
- jaq-core@1.2.1
- jaq-interpret@1.2.1
- jaq-parse@1.0.2
- jaq-std@1.2.1
- jaq-syn@1.1.0
- js-sys@0.3.64
- kqueue-sys@1.0.4
- kqueue@1.0.8
- lalrpop-util@0.20.0
- lalrpop@0.20.0
- lasso@0.6.0
- lazy_static@1.4.0
- libc@0.2.153
- libm@0.2.8
- linked-hash-map@0.5.6
- linux-raw-sys@0.3.8
- linux-raw-sys@0.4.5
- lock_api@0.4.10
- log@0.4.20
- maplit@1.0.2
- memchr@2.7.1
- memoffset@0.6.5
- memoffset@0.7.1
- memoffset@0.9.0
- miniz_oxide@0.7.1
- mio@0.8.10
- new_debug_unreachable@1.0.4
- nix@0.25.1
- nix@0.26.2
- nix@0.27.1
- notify@6.1.1
- ntapi@0.4.1
- num-conv@0.1.0
- num-traits@0.2.16
- num_cpus@1.16.0
- object@0.31.1
- once_cell@1.19.0
- ordered-stream@0.2.0
- pango-sys@0.17.10
- pango@0.17.10
- parking@2.1.0
- parking_lot@0.12.1
- parking_lot_core@0.9.8
- parse-zoneinfo@0.3.0
- petgraph@0.6.3
- phf@0.10.1
- phf@0.11.2
- phf_codegen@0.11.2
- phf_generator@0.10.0
- phf_generator@0.11.2
- phf_macros@0.10.0
- phf_shared@0.10.0
- phf_shared@0.11.2
- pico-args@0.5.0
- pin-project-lite@0.2.12
- pin-utils@0.1.0
- pkg-config@0.3.27
- polling@2.8.0
- powerfmt@0.2.0
- ppv-lite86@0.2.17
- precomputed-hash@0.1.1
- pretty_assertions@1.4.0
- pretty_env_logger@0.5.0
- proc-macro-crate@1.3.1
- proc-macro-error-attr@1.0.4
- proc-macro-error@1.0.4
- proc-macro-hack@0.5.20+deprecated
- proc-macro2@1.0.78
- quote@1.0.35
- rand@0.8.5
- rand_chacha@0.3.1
- rand_core@0.6.4
- rayon-core@1.12.1
- rayon@1.8.1
- redox_syscall@0.2.16
- redox_syscall@0.3.5
- redox_users@0.4.3
- ref-cast-impl@1.0.22
- ref-cast@1.0.22
- regex-automata@0.4.5
- regex-syntax@0.7.4
- regex-syntax@0.8.2
- regex@1.10.3
- rustc-demangle@0.1.23
- rustc_version@0.4.0
- rustix@0.37.23
- rustix@0.38.8
- rustversion@1.0.14
- ryu@1.0.15
- same-file@1.0.6
- scopeguard@1.2.0
- semver@1.0.18
- serde@1.0.197
- serde_derive@1.0.197
- serde_json@1.0.105
- serde_repr@0.1.16
- serde_spanned@0.6.3
- sha1@0.10.5
- signal-hook-registry@1.4.1
- signal-hook@0.3.17
- similar@2.2.1
- simple-signal@1.1.1
- siphasher@0.3.10
- slab@0.4.8
- smallvec@1.11.0
- smart-default@0.7.1
- socket2@0.4.9
- socket2@0.5.6
- static_assertions@1.1.0
- string_cache@0.8.7
- strsim@0.10.0
- strsim@0.11.0
- strum@0.26.1
- strum_macros@0.26.1
- syn@1.0.109
- syn@2.0.50
- sysinfo@0.30.5
- system-deps@6.1.1
- target-lexicon@0.12.11
- tempfile@3.8.0
- term@0.7.0
- termcolor@1.2.0
- thiserror-impl@1.0.46
- thiserror@1.0.46
- time-core@0.1.2
- time-macros@0.2.17
- time@0.1.45
- time@0.3.34
- tiny-keccak@2.0.2
- tokio-macros@2.2.0
- tokio-util@0.7.8
- tokio@1.36.0
- toml@0.7.6
- toml_datetime@0.6.3
- toml_edit@0.19.14
- tracing-attributes@0.1.26
- tracing-core@0.1.31
- tracing@0.1.37
- typenum@1.16.0
- uds_windows@1.0.2
- unescape@0.1.0
- unicode-ident@1.0.11
- unicode-width@0.1.10
- unicode-xid@0.2.4
- urlencoding@2.1.3
- utf8parse@0.2.1
- version-compare@0.1.1
- version_check@0.9.4
- wait-timeout@0.2.0
- waker-fn@1.1.0
- walkdir@2.3.3
- wasi@0.10.0+wasi-snapshot-preview1
- wasi@0.11.0+wasi-snapshot-preview1
- wasm-bindgen-backend@0.2.87
- wasm-bindgen-macro-support@0.2.87
- wasm-bindgen-macro@0.2.87
- wasm-bindgen-shared@0.2.87
- wasm-bindgen@0.2.87
- winapi-i686-pc-windows-gnu@0.4.0
- winapi-util@0.1.5
- winapi-wsapoll@0.1.1
- winapi-x86_64-pc-windows-gnu@0.4.0
- winapi@0.3.9
- windows-core@0.52.0
- windows-sys@0.45.0
- windows-sys@0.48.0
- windows-sys@0.52.0
- windows-targets@0.42.2
- windows-targets@0.48.2
- windows-targets@0.52.3
- windows@0.48.0
- windows@0.52.0
- windows_aarch64_gnullvm@0.42.2
- windows_aarch64_gnullvm@0.48.2
- windows_aarch64_gnullvm@0.52.3
- windows_aarch64_msvc@0.42.2
- windows_aarch64_msvc@0.48.2
- windows_aarch64_msvc@0.52.3
- windows_i686_gnu@0.42.2
- windows_i686_gnu@0.48.2
- windows_i686_gnu@0.52.3
- windows_i686_msvc@0.42.2
- windows_i686_msvc@0.48.2
- windows_i686_msvc@0.52.3
- windows_x86_64_gnu@0.42.2
- windows_x86_64_gnu@0.48.2
- windows_x86_64_gnu@0.52.3
- windows_x86_64_gnullvm@0.42.2
- windows_x86_64_gnullvm@0.48.2
- windows_x86_64_gnullvm@0.52.3
- windows_x86_64_msvc@0.42.2
- windows_x86_64_msvc@0.48.2
- windows_x86_64_msvc@0.52.3
- winnow@0.5.11
- x11@2.21.0
- x11rb-protocol@0.11.1
- x11rb@0.11.1
- xdg-home@1.0.0
- yaml-rust@0.4.5
- yansi@0.5.1
- zbus@3.14.1
- zbus_macros@3.14.1
- zbus_names@2.6.0
- zerocopy-derive@0.7.32
- zerocopy@0.7.32
- zvariant@3.15.0
- zvariant_derive@3.15.0
- zvariant_utils@1.0.1
-"
-
inherit cargo shell-completion
DESCRIPTION="Elkowars Wacky Widgets is a standalone widget system made in Rust"
diff --git a/gui-apps/eww/files/eww-0.6.0-fix-version.patch b/gui-apps/eww/files/eww-0.6.0-fix-version.patch
deleted file mode 100644
index 6c46ee0e3..000000000
--- a/gui-apps/eww/files/eww-0.6.0-fix-version.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8397744f403c87ab39523b4bf9e0216ad444f1bb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?W=C3=B6lfchen?= <w-lfchen@posteo.net>
-Date: Sun, 21 Apr 2024 20:04:50 +0000
-Subject: [PATCH] fix: bump cargo version (#1080)
-
----
- Cargo.lock | 2 +-
- crates/eww/Cargo.toml | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Cargo.lock b/Cargo.lock
-index a3f59426..5d94bd4b 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -920,7 +920,7 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
-
- [[package]]
- name = "eww"
--version = "0.5.0"
-+version = "0.6.0"
- dependencies = [
- "anyhow",
- "bincode",
-diff --git a/crates/eww/Cargo.toml b/crates/eww/Cargo.toml
-index a5b62d9e..f916499c 100644
---- a/crates/eww/Cargo.toml
-+++ b/crates/eww/Cargo.toml
-@@ -1,6 +1,6 @@
- [package]
- name = "eww"
--version = "0.5.0"
-+version = "0.6.0"
- authors = ["elkowar <5300871+elkowar@users.noreply.github.com>"]
- description = "Widgets for everyone!"
- license = "MIT"
diff --git a/gui-apps/eww/files/eww-0.6.0-update-crates.patch b/gui-apps/eww/files/eww-0.6.0-update-crates.patch
new file mode 100644
index 000000000..d54657f86
--- /dev/null
+++ b/gui-apps/eww/files/eww-0.6.0-update-crates.patch
@@ -0,0 +1,6019 @@
+From bd00136f54421596842dc8515836fe85dff02938 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Gon=C3=A7alo=20Negrier=20Duarte?=
+ <gonegrier.duarte@gmail.com>
+Date: Thu, 5 Sep 2024 20:39:57 +0100
+Subject: [PATCH 1/1] eww-0.6.0-update-crates
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Gonçalo Negrier Duarte <gonegrier.duarte@gmail.com>
+---
+ Cargo.lock | 1934 ++++++++---------
+ Cargo.toml | 56 +-
+ crates/eww/Cargo.toml | 35 +-
+ crates/eww/src/app.rs | 33 +-
+ crates/eww/src/config/inbuilt.rs | 4 +-
+ crates/eww/src/config/system_stats.rs | 47 +-
+ crates/eww/src/display_backend.rs | 43 +-
+ crates/eww/src/geometry.rs | 4 +-
+ crates/eww/src/main.rs | 23 +-
+ crates/eww/src/server.rs | 17 +-
+ crates/eww/src/widgets/build_widget.rs | 2 +-
+ .../eww/src/widgets/circular_progressbar.rs | 9 +-
+ crates/eww/src/widgets/graph.rs | 47 +-
+ crates/eww/src/widgets/systray.rs | 33 +-
+ crates/eww/src/widgets/transform.rs | 37 +-
+ crates/eww/src/widgets/widget_definitions.rs | 170 +-
+ crates/eww/src/widgets/window.rs | 3 +-
+ crates/eww/src/window_arguments.rs | 4 +-
+ crates/eww/src/window_initiator.rs | 2 -
+ crates/eww_shared_util/Cargo.toml | 1 +
+ crates/eww_shared_util/src/lib.rs | 2 +
+ crates/eww_shared_util/src/locale.rs | 14 +
+ crates/eww_shared_util/src/wrappers.rs | 10 +-
+ crates/notifier_host/Cargo.toml | 5 +-
+ crates/notifier_host/src/host.rs | 4 +-
+ crates/notifier_host/src/icon.rs | 10 +-
+ crates/notifier_host/src/item.rs | 6 +-
+ .../src/proxy/dbus_status_notifier_item.rs | 69 +-
+ .../src/proxy/dbus_status_notifier_watcher.rs | 35 +-
+ crates/notifier_host/src/proxy/mod.rs | 12 +-
+ crates/notifier_host/src/watcher.rs | 20 +-
+ crates/simplexpr/Cargo.toml | 6 +-
+ crates/simplexpr/src/eval.rs | 26 +-
+ crates/yuck/src/parser/ast_iterator.rs | 2 +-
+ crates/yuck/src/value/coords.rs | 14 +-
+ 35 files changed, 1416 insertions(+), 1323 deletions(-)
+ create mode 100644 crates/eww_shared_util/src/locale.rs
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 8baf72e..6b5b3c9 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -4,9 +4,9 @@ version = 3
+
+ [[package]]
+ name = "addr2line"
+-version = "0.20.0"
++version = "0.22.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
++checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
+ dependencies = [
+ "gimli",
+ ]
+@@ -19,20 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+
+ [[package]]
+ name = "ahash"
+-version = "0.7.6"
++version = "0.8.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+-dependencies = [
+- "getrandom",
+- "once_cell",
+- "version_check",
+-]
+-
+-[[package]]
+-name = "ahash"
+-version = "0.8.9"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f"
++checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+ dependencies = [
+ "cfg-if",
+ "getrandom",
+@@ -43,18 +32,18 @@ dependencies = [
+
+ [[package]]
+ name = "aho-corasick"
+-version = "1.0.4"
++version = "1.1.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
++checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+ dependencies = [
+ "memchr",
+ ]
+
+ [[package]]
+ name = "allocator-api2"
+-version = "0.2.16"
++version = "0.2.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
++checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
+
+ [[package]]
+ name = "android-tzdata"
+@@ -73,47 +62,48 @@ dependencies = [
+
+ [[package]]
+ name = "anstream"
+-version = "0.6.12"
++version = "0.6.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540"
++checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526"
+ dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
++ "is_terminal_polyfill",
+ "utf8parse",
+ ]
+
+ [[package]]
+ name = "anstyle"
+-version = "1.0.1"
++version = "1.0.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
++checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
+
+ [[package]]
+ name = "anstyle-parse"
+-version = "0.2.1"
++version = "0.2.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
++checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb"
+ dependencies = [
+ "utf8parse",
+ ]
+
+ [[package]]
+ name = "anstyle-query"
+-version = "1.0.0"
++version = "1.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
++checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a"
+ dependencies = [
+- "windows-sys 0.48.0",
++ "windows-sys 0.52.0",
+ ]
+
+ [[package]]
+ name = "anstyle-wincon"
+-version = "3.0.2"
++version = "3.0.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
++checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8"
+ dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+@@ -121,9 +111,9 @@ dependencies = [
+
+ [[package]]
+ name = "anyhow"
+-version = "1.0.80"
++version = "1.0.86"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
++checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
+
+ [[package]]
+ name = "ascii-canvas"
+@@ -136,141 +126,164 @@ dependencies = [
+
+ [[package]]
+ name = "async-broadcast"
+-version = "0.5.1"
++version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b"
++checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e"
+ dependencies = [
+ "event-listener",
++ "event-listener-strategy",
+ "futures-core",
++ "pin-project-lite",
+ ]
+
+ [[package]]
+ name = "async-channel"
+-version = "1.9.0"
++version = "2.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
++checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
+ dependencies = [
+ "concurrent-queue",
+- "event-listener",
++ "event-listener-strategy",
+ "futures-core",
++ "pin-project-lite",
+ ]
+
+ [[package]]
+ name = "async-io"
+-version = "1.13.0"
++version = "2.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af"
++checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
+ dependencies = [
+ "async-lock",
+- "autocfg",
+ "cfg-if",
+ "concurrent-queue",
++ "futures-io",
+ "futures-lite",
+- "log",
+ "parking",
+ "polling",
+- "rustix 0.37.23",
++ "rustix",
+ "slab",
+- "socket2 0.4.9",
+- "waker-fn",
++ "tracing",
++ "windows-sys 0.59.0",
+ ]
+
+ [[package]]
+ name = "async-lock"
+-version = "2.8.0"
++version = "3.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b"
++checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
+ dependencies = [
+ "event-listener",
++ "event-listener-strategy",
++ "pin-project-lite",
+ ]
+
+ [[package]]
+ name = "async-process"
+-version = "1.7.0"
++version = "2.2.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7a9d28b1d97e08915212e2e45310d47854eafa69600756fc735fb788f75199c9"
++checksum = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374"
+ dependencies = [
++ "async-channel",
+ "async-io",
+ "async-lock",
+- "autocfg",
++ "async-signal",
++ "async-task",
+ "blocking",
+ "cfg-if",
+ "event-listener",
+ "futures-lite",
+- "rustix 0.37.23",
+- "signal-hook",
+- "windows-sys 0.48.0",
++ "rustix",
++ "tracing",
++ "windows-sys 0.59.0",
+ ]
+
+ [[package]]
+ name = "async-recursion"
+-version = "1.0.4"
++version = "1.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"
++checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
++]
++
++[[package]]
++name = "async-signal"
++version = "0.2.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3"
++dependencies = [
++ "async-io",
++ "async-lock",
++ "atomic-waker",
++ "cfg-if",
++ "futures-core",
++ "futures-io",
++ "rustix",
++ "signal-hook-registry",
++ "slab",
++ "windows-sys 0.59.0",
+ ]
+
+ [[package]]
+ name = "async-task"
+-version = "4.4.0"
++version = "4.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
++checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
+
+ [[package]]
+ name = "async-trait"
+-version = "0.1.73"
++version = "0.1.81"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0"
++checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "atk"
+-version = "0.17.1"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6ba16453d10c712284061a05f6510f75abeb92b56ba88dfeb48c74775020cc22"
++checksum = "b4af014b17dd80e8af9fa689b2d4a211ddba6eb583c1622f35d0cb543f6b17e4"
+ dependencies = [
+ "atk-sys",
+- "bitflags 1.3.2",
+ "glib",
+ "libc",
+ ]
+
+ [[package]]
+ name = "atk-sys"
+-version = "0.17.0"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e3bf0a7ca572fbd5762fd8f8cd65a581e06767bc1234913fe1f43e370cff6e90"
++checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009"
+ dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+- "system-deps",
++ "system-deps 6.2.2",
+ ]
+
+ [[package]]
+ name = "atomic-waker"
+-version = "1.1.1"
++version = "1.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3"
++checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+ [[package]]
+ name = "autocfg"
+-version = "1.1.0"
++version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
++checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+ [[package]]
+ name = "backtrace"
+-version = "0.3.68"
++version = "0.3.73"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
++checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a"
+ dependencies = [
+ "addr2line",
+ "cc",
+@@ -283,9 +296,9 @@ dependencies = [
+
+ [[package]]
+ name = "base64"
+-version = "0.21.7"
++version = "0.22.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
++checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+ [[package]]
+ name = "bincode"
+@@ -319,9 +332,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+ [[package]]
+ name = "bitflags"
+-version = "2.4.0"
++version = "2.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
++checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
+
+ [[package]]
+ name = "block-buffer"
+@@ -334,62 +347,60 @@ dependencies = [
+
+ [[package]]
+ name = "blocking"
+-version = "1.3.1"
++version = "1.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "77231a1c8f801696fc0123ec6150ce92cffb8e164a02afb9c8ddee0e9b65ad65"
++checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
+ dependencies = [
+ "async-channel",
+- "async-lock",
+ "async-task",
+- "atomic-waker",
+- "fastrand 1.9.0",
++ "futures-io",
+ "futures-lite",
+- "log",
++ "piper",
+ ]
+
+ [[package]]
+ name = "bumpalo"
+-version = "3.13.0"
++version = "3.16.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
++checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+
+ [[package]]
+ name = "byteorder"
+-version = "1.4.3"
++version = "1.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
++checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+ [[package]]
+ name = "bytes"
+-version = "1.4.0"
++version = "1.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
++checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
+
+ [[package]]
+ name = "cached"
+-version = "0.48.1"
++version = "0.53.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "355face540df58778b96814c48abb3c2ed67c4878a8087ab1819c1fedeec505f"
++checksum = "b4d73155ae6b28cf5de4cfc29aeb02b8a1c6dab883cb015d15cd514e42766846"
+ dependencies = [
+- "ahash 0.8.9",
++ "ahash",
+ "cached_proc_macro",
+ "cached_proc_macro_types",
+- "hashbrown 0.14.3",
+- "instant",
++ "hashbrown",
+ "once_cell",
+ "thiserror",
++ "web-time",
+ ]
+
+ [[package]]
+ name = "cached_proc_macro"
+-version = "0.19.1"
++version = "0.23.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9d52f526f7cbc875b296856ca8c964a9f6290556922c303a8a3883e3c676e6a1"
++checksum = "2f42a145ed2d10dce2191e1dcf30cfccfea9026660e143662ba5eec4017d5daa"
+ dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+- "syn 1.0.109",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+@@ -400,11 +411,11 @@ checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0"
+
+ [[package]]
+ name = "cairo-rs"
+-version = "0.17.10"
++version = "0.18.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ab3603c4028a5e368d09b51c8b624b9a46edcd7c3778284077a6125af73c9f0a"
++checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2"
+ dependencies = [
+- "bitflags 1.3.2",
++ "bitflags 2.6.0",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+@@ -414,29 +425,39 @@ dependencies = [
+
+ [[package]]
+ name = "cairo-sys-rs"
+-version = "0.17.10"
++version = "0.18.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "691d0c66b1fb4881be80a760cb8fe76ea97218312f9dfe2c9cc0f496ca279cb1"
++checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51"
+ dependencies = [
+ "glib-sys",
+ "libc",
+- "system-deps",
++ "system-deps 6.2.2",
+ ]
+
+ [[package]]
+ name = "cc"
+-version = "1.0.82"
++version = "1.1.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
++checksum = "50d2eb3cd3d1bf4529e31c215ee6f93ec5a3d536d9f578f93d9d33ee19562932"
+ dependencies = [
+- "libc",
++ "shlex",
+ ]
+
+ [[package]]
+ name = "cfg-expr"
+-version = "0.15.4"
++version = "0.15.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9"
++checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
++dependencies = [
++ "smallvec",
++ "target-lexicon",
++]
++
++[[package]]
++name = "cfg-expr"
++version = "0.16.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "345c78335be0624ed29012dc10c49102196c6882c12dde65d9f35b02da2aada8"
+ dependencies = [
+ "smallvec",
+ "target-lexicon",
+@@ -448,40 +469,46 @@ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
++[[package]]
++name = "cfg_aliases"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
++
+ [[package]]
+ name = "chrono"
+-version = "0.4.26"
++version = "0.4.38"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
++checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
+ dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+- "time 0.1.45",
++ "pure-rust-locales",
+ "wasm-bindgen",
+- "winapi",
++ "windows-targets 0.52.6",
+ ]
+
+ [[package]]
+ name = "chrono-tz"
+-version = "0.8.3"
++version = "0.9.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f1369bc6b9e9a7dfdae2055f6ec151fe9c554a9d23d357c0237cee2e25eaabb7"
++checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb"
+ dependencies = [
+ "chrono",
+ "chrono-tz-build",
+- "phf 0.11.2",
++ "phf",
+ ]
+
+ [[package]]
+ name = "chrono-tz-build"
+-version = "0.2.0"
++version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e2f5ebdc942f57ed96d560a6d1a459bae5851102a25d5bf89dc04ae453e31ecf"
++checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1"
+ dependencies = [
+ "parse-zoneinfo",
+- "phf 0.11.2",
++ "phf",
+ "phf_codegen",
+ ]
+
+@@ -491,14 +518,14 @@ version = "0.9.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9"
+ dependencies = [
+- "hashbrown 0.14.3",
++ "hashbrown",
+ ]
+
+ [[package]]
+ name = "clap"
+-version = "4.5.1"
++version = "4.5.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da"
++checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019"
+ dependencies = [
+ "clap_builder",
+ "clap_derive",
+@@ -506,42 +533,42 @@ dependencies = [
+
+ [[package]]
+ name = "clap_builder"
+-version = "4.5.1"
++version = "4.5.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb"
++checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6"
+ dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+- "strsim 0.11.0",
++ "strsim",
+ ]
+
+ [[package]]
+ name = "clap_complete"
+-version = "4.5.1"
++version = "4.5.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "885e4d7d5af40bfb99ae6f9433e292feac98d452dcb3ec3d25dfe7552b77da8c"
++checksum = "531d7959c5bbb6e266cecdd0f20213639c3a5c3e4d615f97db87661745f781ff"
+ dependencies = [
+ "clap",
+ ]
+
+ [[package]]
+ name = "clap_derive"
+-version = "4.5.0"
++version = "4.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
++checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0"
+ dependencies = [
+- "heck",
++ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "clap_lex"
+-version = "0.7.0"
++version = "0.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
++checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97"
+
+ [[package]]
+ name = "codemap"
+@@ -561,94 +588,79 @@ dependencies = [
+
+ [[package]]
+ name = "colorchoice"
+-version = "1.0.0"
++version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
++checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0"
+
+ [[package]]
+ name = "concurrent-queue"
+-version = "2.2.0"
++version = "2.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
++checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+ dependencies = [
+ "crossbeam-utils",
+ ]
+
+ [[package]]
+ name = "console"
+-version = "0.15.7"
++version = "0.15.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
++checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
+ dependencies = [
+ "encode_unicode",
+ "lazy_static",
+ "libc",
+- "windows-sys 0.45.0",
++ "windows-sys 0.52.0",
+ ]
+
+-[[package]]
+-name = "convert_case"
+-version = "0.4.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+-
+ [[package]]
+ name = "core-foundation-sys"
+-version = "0.8.4"
++version = "0.8.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
++checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
+
+ [[package]]
+ name = "cpufeatures"
+-version = "0.2.9"
++version = "0.2.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
++checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
+ dependencies = [
+ "libc",
+ ]
+
+ [[package]]
+ name = "crossbeam-channel"
+-version = "0.5.8"
++version = "0.5.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
++checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
+ dependencies = [
+- "cfg-if",
+ "crossbeam-utils",
+ ]
+
+ [[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 0.9.0",
+- "scopeguard",
+ ]
+
+ [[package]]
+ name = "crossbeam-utils"
+-version = "0.8.16"
++version = "0.8.20"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+-dependencies = [
+- "cfg-if",
+-]
++checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
+
+ [[package]]
+ name = "crunchy"
+@@ -668,9 +680,9 @@ dependencies = [
+
+ [[package]]
+ name = "darling"
+-version = "0.14.4"
++version = "0.20.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850"
++checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
+ dependencies = [
+ "darling_core",
+ "darling_macro",
+@@ -678,27 +690,27 @@ dependencies = [
+
+ [[package]]
+ name = "darling_core"
+-version = "0.14.4"
++version = "0.20.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0"
++checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
+ dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+- "strsim 0.10.0",
+- "syn 1.0.109",
++ "strsim",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "darling_macro"
+-version = "0.14.4"
++version = "0.20.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e"
++checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
+ dependencies = [
+ "darling_core",
+ "quote",
+- "syn 1.0.109",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+@@ -721,7 +733,7 @@ dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+- "system-deps",
++ "system-deps 6.2.2",
+ ]
+
+ [[package]]
+@@ -751,40 +763,28 @@ dependencies = [
+ "gobject-sys",
+ "gtk-sys",
+ "libc",
+- "system-deps",
+-]
+-
+-[[package]]
+-name = "deranged"
+-version = "0.3.11"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+-dependencies = [
+- "powerfmt",
++ "system-deps 6.2.2",
+ ]
+
+ [[package]]
+-name = "derivative"
+-version = "2.2.0"
++name = "derive_more"
++version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
++checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"
+ dependencies = [
+- "proc-macro2",
+- "quote",
+- "syn 1.0.109",
++ "derive_more-impl",
+ ]
+
+ [[package]]
+-name = "derive_more"
+-version = "0.99.17"
++name = "derive_more-impl"
++version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
++checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
+ dependencies = [
+- "convert_case",
+ "proc-macro2",
+ "quote",
+- "rustc_version",
+- "syn 1.0.109",
++ "syn 2.0.76",
++ "unicode-xid",
+ ]
+
+ [[package]]
+@@ -826,21 +826,21 @@ dependencies = [
+
+ [[package]]
+ name = "dyn-clone"
+-version = "1.0.12"
++version = "1.0.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "304e6508efa593091e97a9abbc10f90aa7ca635b6d2784feff3c89d41dd12272"
++checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
+
+ [[package]]
+ name = "either"
+-version = "1.9.0"
++version = "1.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
++checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
+
+ [[package]]
+ name = "ena"
+-version = "0.14.2"
++version = "0.14.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1"
++checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5"
+ dependencies = [
+ "log",
+ ]
+@@ -851,11 +851,17 @@ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+
++[[package]]
++name = "endi"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
++
+ [[package]]
+ name = "enumflags2"
+-version = "0.7.7"
++version = "0.7.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2"
++checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d"
+ dependencies = [
+ "enumflags2_derive",
+ "serde",
+@@ -863,20 +869,20 @@ dependencies = [
+
+ [[package]]
+ name = "enumflags2_derive"
+-version = "0.7.7"
++version = "0.7.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
++checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "env_logger"
+-version = "0.10.0"
++version = "0.10.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
++checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
+ dependencies = [
+ "humantime",
+ "is-terminal",
+@@ -893,39 +899,41 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+ [[package]]
+ name = "errno"
+-version = "0.3.2"
++version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
++checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+ dependencies = [
+- "errno-dragonfly",
+ "libc",
+- "windows-sys 0.48.0",
++ "windows-sys 0.52.0",
+ ]
+
+ [[package]]
+-name = "errno-dragonfly"
+-version = "0.1.2"
++name = "event-listener"
++version = "5.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
++checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
+ dependencies = [
+- "cc",
+- "libc",
++ "concurrent-queue",
++ "parking",
++ "pin-project-lite",
+ ]
+
+ [[package]]
+-name = "event-listener"
+-version = "2.5.3"
++name = "event-listener-strategy"
++version = "0.5.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
++checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
++dependencies = [
++ "event-listener",
++ "pin-project-lite",
++]
+
+ [[package]]
+ name = "eww"
+-version = "0.5.0"
++version = "0.6.0"
+ dependencies = [
+ "anyhow",
+ "bincode",
+- "cairo-rs",
+- "cairo-sys-rs",
+ "chrono",
+ "clap",
+ "clap_complete",
+@@ -934,24 +942,20 @@ dependencies = [
+ "eww_shared_util",
+ "extend",
+ "futures",
+- "gdk",
+- "gdk-pixbuf",
++ "gdk-sys",
+ "gdkx11",
+- "glib",
+- "glib-macros",
+ "grass",
+ "gtk",
+ "gtk-layer-shell",
+- "itertools 0.12.1",
++ "itertools 0.13.0",
+ "libc",
+ "log",
+ "maplit",
+- "nix 0.27.1",
++ "nix",
+ "notifier_host",
+ "notify",
+ "once_cell",
+ "ordered-stream",
+- "pango",
+ "pretty_env_logger",
+ "regex",
+ "serde",
+@@ -972,6 +976,7 @@ dependencies = [
+ name = "eww_shared_util"
+ version = "0.1.0"
+ dependencies = [
++ "chrono",
+ "derive_more",
+ "ref-cast",
+ "serde",
+@@ -985,23 +990,14 @@ checksum = "311a6d2f1f9d60bff73d2c78a0af97ed27f79672f15c238192a5bbb64db56d00"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
+-]
+-
+-[[package]]
+-name = "fastrand"
+-version = "1.9.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+-dependencies = [
+- "instant",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "fastrand"
+-version = "2.0.0"
++version = "2.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
++checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
+
+ [[package]]
+ name = "field-offset"
+@@ -1009,20 +1005,20 @@ version = "0.3.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+ dependencies = [
+- "memoffset 0.9.0",
++ "memoffset",
+ "rustc_version",
+ ]
+
+ [[package]]
+ name = "filetime"
+-version = "0.2.22"
++version = "0.2.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0"
++checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550"
+ dependencies = [
+ "cfg-if",
+ "libc",
+- "redox_syscall 0.3.5",
+- "windows-sys 0.48.0",
++ "libredox",
++ "windows-sys 0.59.0",
+ ]
+
+ [[package]]
+@@ -1048,9 +1044,9 @@ dependencies = [
+
+ [[package]]
+ name = "futures"
+-version = "0.3.28"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
++checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+ dependencies = [
+ "futures-channel",
+ "futures-core",
+@@ -1063,9 +1059,9 @@ dependencies = [
+
+ [[package]]
+ name = "futures-channel"
+-version = "0.3.28"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
++checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+ dependencies = [
+ "futures-core",
+ "futures-sink",
+@@ -1073,15 +1069,15 @@ dependencies = [
+
+ [[package]]
+ name = "futures-core"
+-version = "0.3.28"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
++checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+ [[package]]
+ name = "futures-executor"
+-version = "0.3.28"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
++checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+ dependencies = [
+ "futures-core",
+ "futures-task",
+@@ -1090,53 +1086,51 @@ dependencies = [
+
+ [[package]]
+ name = "futures-io"
+-version = "0.3.28"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
++checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+ [[package]]
+ name = "futures-lite"
+-version = "1.13.0"
++version = "2.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
++checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+ dependencies = [
+- "fastrand 1.9.0",
++ "fastrand",
+ "futures-core",
+ "futures-io",
+- "memchr",
+ "parking",
+ "pin-project-lite",
+- "waker-fn",
+ ]
+
+ [[package]]
+ name = "futures-macro"
+-version = "0.3.28"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
++checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "futures-sink"
+-version = "0.3.28"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
++checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+ [[package]]
+ name = "futures-task"
+-version = "0.3.28"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
++checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+ [[package]]
+ name = "futures-util"
+-version = "0.3.28"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
++checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+ dependencies = [
+ "futures-channel",
+ "futures-core",
+@@ -1152,11 +1146,10 @@ dependencies = [
+
+ [[package]]
+ name = "gdk"
+-version = "0.17.1"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "be1df5ea52cccd7e3a0897338b5564968274b52f5fd12601e0afa44f454c74d3"
++checksum = "f5ba081bdef3b75ebcdbfc953699ed2d7417d6bd853347a42a37d76406a33646"
+ dependencies = [
+- "bitflags 1.3.2",
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk-sys",
+@@ -1168,11 +1161,10 @@ dependencies = [
+
+ [[package]]
+ name = "gdk-pixbuf"
+-version = "0.17.10"
++version = "0.18.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "695d6bc846438c5708b07007537b9274d883373dd30858ca881d7d71b5540717"
++checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec"
+ dependencies = [
+- "bitflags 1.3.2",
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+@@ -1182,22 +1174,22 @@ dependencies = [
+
+ [[package]]
+ name = "gdk-pixbuf-sys"
+-version = "0.17.10"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9285ec3c113c66d7d0ab5676599176f1f42f4944ca1b581852215bf5694870cb"
++checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
+ dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+- "system-deps",
++ "system-deps 6.2.2",
+ ]
+
+ [[package]]
+ name = "gdk-sys"
+-version = "0.17.0"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2152de9d38bc67a17b3fe49dc0823af5bf874df59ea088c5f28f31cf103de703"
++checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2"
+ dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+@@ -1207,14 +1199,14 @@ dependencies = [
+ "libc",
+ "pango-sys",
+ "pkg-config",
+- "system-deps",
++ "system-deps 6.2.2",
+ ]
+
+ [[package]]
+ name = "gdkx11"
+-version = "0.17.0"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "08f9efc60ffeede8e3816d1e4ca54b62107c31b6560f967cd84583c8b23acccf"
++checksum = "db2ea8a4909d530f79921290389cbd7c34cb9d623bfe970eaae65ca5f9cd9cce"
+ dependencies = [
+ "gdk",
+ "gdkx11-sys",
+@@ -1226,14 +1218,14 @@ dependencies = [
+
+ [[package]]
+ name = "gdkx11-sys"
+-version = "0.17.0"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6aaa174c09165bb416717bf5cf3132a3dc617a069b09000ac0eae1b921a00740"
++checksum = "fee8f00f4ee46cad2939b8990f5c70c94ff882c3028f3cc5abf950fa4ab53043"
+ dependencies = [
+ "gdk-sys",
+ "glib-sys",
+ "libc",
+- "system-deps",
++ "system-deps 6.2.2",
+ "x11",
+ ]
+
+@@ -1249,38 +1241,39 @@ dependencies = [
+
+ [[package]]
+ name = "gethostname"
+-version = "0.2.3"
++version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
++checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
+ dependencies = [
+ "libc",
+- "winapi",
++ "windows-targets 0.48.5",
+ ]
+
+ [[package]]
+ name = "getrandom"
+-version = "0.2.10"
++version = "0.2.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
++checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
+ dependencies = [
+ "cfg-if",
++ "js-sys",
+ "libc",
+- "wasi 0.11.0+wasi-snapshot-preview1",
++ "wasi",
++ "wasm-bindgen",
+ ]
+
+ [[package]]
+ name = "gimli"
+-version = "0.27.3"
++version = "0.29.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
++checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+
+ [[package]]
+ name = "gio"
+-version = "0.17.10"
++version = "0.18.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a6973e92937cf98689b6a054a9e56c657ed4ff76de925e36fc331a15f0c5d30a"
++checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73"
+ dependencies = [
+- "bitflags 1.3.2",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+@@ -1296,24 +1289,24 @@ dependencies = [
+
+ [[package]]
+ name = "gio-sys"
+-version = "0.17.10"
++version = "0.18.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0ccf87c30a12c469b6d958950f6a9c09f2be20b7773f7e70d20b867fdf2628c3"
++checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
+ dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+- "system-deps",
++ "system-deps 6.2.2",
+ "winapi",
+ ]
+
+ [[package]]
+ name = "glib"
+-version = "0.17.10"
++version = "0.18.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d3fad45ba8d4d2cea612b432717e834f48031cd8853c8aaf43b2c79fec8d144b"
++checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5"
+ dependencies = [
+- "bitflags 1.3.2",
++ "bitflags 2.6.0",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+@@ -1332,70 +1325,71 @@ dependencies = [
+
+ [[package]]
+ name = "glib-macros"
+-version = "0.17.10"
++version = "0.18.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eca5c79337338391f1ab8058d6698125034ce8ef31b72a442437fa6c8580de26"
++checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc"
+ dependencies = [
+- "anyhow",
+- "heck",
+- "proc-macro-crate",
++ "heck 0.4.1",
++ "proc-macro-crate 2.0.0",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+- "syn 1.0.109",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "glib-sys"
+-version = "0.17.10"
++version = "0.18.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d80aa6ea7bba0baac79222204aa786a6293078c210abe69ef1336911d4bdc4f0"
++checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
+ dependencies = [
+ "libc",
+- "system-deps",
++ "system-deps 6.2.2",
+ ]
+
+ [[package]]
+ name = "gobject-sys"
+-version = "0.17.10"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062"
++checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
+ dependencies = [
+ "glib-sys",
+ "libc",
+- "system-deps",
++ "system-deps 6.2.2",
+ ]
+
+ [[package]]
+ name = "grass"
+-version = "0.13.1"
++version = "0.13.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7746cd9bf09f9bb7d98638774a70642000356f543898d9a352cd043f82744528"
++checksum = "f7a68216437ef68f0738e48d6c7bb9e6e6a92237e001b03d838314b068f33c94"
+ dependencies = [
++ "clap",
++ "getrandom",
+ "grass_compiler",
+ ]
+
+ [[package]]
+ name = "grass_compiler"
+-version = "0.13.0"
++version = "0.13.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "187adfc0b34289c7f8f3819453ce9da3177c3d73f40ac74bb17faba578813d45"
++checksum = "2d9e3df7f0222ce5184154973d247c591d9aadc28ce7a73c6cd31100c9facff6"
+ dependencies = [
+ "codemap",
+- "indexmap 1.9.3",
++ "indexmap",
+ "lasso",
+ "once_cell",
+- "phf 0.10.1",
++ "phf",
++ "rand",
+ ]
+
+ [[package]]
+ name = "gtk"
+-version = "0.17.1"
++version = "0.18.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b6c4222ab92b08d4d0bab90ddb6185b4e575ceeea8b8cdf00b938d7b6661d966"
++checksum = "93c4f5e0e20b60e10631a5f06da7fe3dda744b05ad0ea71fee2f47adf865890c"
+ dependencies = [
+ "atk",
+- "bitflags 1.3.2",
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+@@ -1406,18 +1400,17 @@ dependencies = [
+ "gtk-sys",
+ "gtk3-macros",
+ "libc",
+- "once_cell",
+ "pango",
+ "pkg-config",
+ ]
+
+ [[package]]
+ name = "gtk-layer-shell"
+-version = "0.6.1"
++version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "992f5fedb31835424a5280acd162bf348995f617d26969fde8d3dfd389b3ff5f"
++checksum = "adb41643070b55cdda5a4a10a338520cff4345395e342b754c02f341e4107383"
+ dependencies = [
+- "bitflags 2.4.0",
++ "bitflags 2.6.0",
+ "gdk",
+ "glib",
+ "glib-sys",
+@@ -1428,22 +1421,22 @@ dependencies = [
+
+ [[package]]
+ name = "gtk-layer-shell-sys"
+-version = "0.6.0"
++version = "0.7.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5754bcfaadfc3529116af6ae93559b267d88647f965382153a4b8ea9372be75a"
++checksum = "b9aa75cbb5bf5195d8be239b189f2a36cbea223777188c50f0bce124e291fe34"
+ dependencies = [
+ "gdk-sys",
+ "glib-sys",
+ "gtk-sys",
+ "libc",
+- "system-deps",
++ "system-deps 7.0.2",
+ ]
+
+ [[package]]
+ name = "gtk-sys"
+-version = "0.17.0"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4d8eb6a4b93e5a7e6980f7348d08c1cd93d31fae07cf97f20678c5ec41de3d7e"
++checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722"
+ dependencies = [
+ "atk-sys",
+ "cairo-sys-rs",
+@@ -1454,59 +1447,55 @@ dependencies = [
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+- "system-deps",
++ "system-deps 6.2.2",
+ ]
+
+ [[package]]
+ name = "gtk3-macros"
+-version = "0.17.1"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3efb84d682c9a39c10bd9f24f5a4b9c15cc8c7edc45c19cb2ca2c4fc38b2d95e"
++checksum = "c6063efb63db582968fb7df72e1ae68aa6360dcfb0a75143f34fc7d616bad75e"
+ dependencies = [
+- "anyhow",
+- "proc-macro-crate",
++ "proc-macro-crate 1.3.1",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+- "syn 1.0.109",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "hashbrown"
+-version = "0.11.2"
++version = "0.14.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
++checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+ dependencies = [
+- "ahash 0.7.6",
++ "ahash",
++ "allocator-api2",
+ ]
+
+ [[package]]
+-name = "hashbrown"
+-version = "0.12.3"
++name = "heck"
++version = "0.4.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
++checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+ [[package]]
+-name = "hashbrown"
+-version = "0.14.3"
++name = "heck"
++version = "0.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+-dependencies = [
+- "ahash 0.8.9",
+- "allocator-api2",
+-]
++checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+ [[package]]
+-name = "heck"
+-version = "0.4.1"
++name = "hermit-abi"
++version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
++checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+ [[package]]
+ name = "hermit-abi"
+-version = "0.3.2"
++version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
++checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+
+ [[package]]
+ name = "hex"
+@@ -1516,9 +1505,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+
+ [[package]]
+ name = "hifijson"
+-version = "0.2.0"
++version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "85ef6b41c333e6dd2a4aaa59125a19b633cd17e7aaf372b2260809777bcdef4a"
++checksum = "9958ab3ce3170c061a27679916bd9b969eceeb5e8b120438e6751d0987655c42"
+
+ [[package]]
+ name = "humantime"
+@@ -1528,16 +1517,16 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+ [[package]]
+ name = "iana-time-zone"
+-version = "0.1.57"
++version = "0.1.60"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
++checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+ dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+- "windows 0.48.0",
++ "windows-core 0.52.0",
+ ]
+
+ [[package]]
+@@ -1557,22 +1546,12 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+ [[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.0.0"
++version = "2.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
++checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
+ dependencies = [
+ "equivalent",
+- "hashbrown 0.14.3",
++ "hashbrown",
+ ]
+
+ [[package]]
+@@ -1597,99 +1576,84 @@ dependencies = [
+
+ [[package]]
+ name = "insta"
+-version = "1.31.0"
++version = "1.39.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a0770b0a3d4c70567f0d58331f3088b0e4c4f56c9b8d764efe654b4a5d46de3a"
++checksum = "810ae6042d48e2c9e9215043563a58a80b877bc863228a74cf10c49d4620a6f5"
+ dependencies = [
+ "console",
+ "lazy_static",
+ "linked-hash-map",
+ "similar",
+- "yaml-rust",
+ ]
+
+ [[package]]
+-name = "instant"
+-version = "0.1.12"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+-dependencies = [
+- "cfg-if",
+-]
+-
+-[[package]]
+-name = "io-lifetimes"
+-version = "1.0.11"
++name = "is-terminal"
++version = "0.4.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
++checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
+ dependencies = [
+- "hermit-abi",
++ "hermit-abi 0.4.0",
+ "libc",
+- "windows-sys 0.48.0",
++ "windows-sys 0.52.0",
+ ]
+
+ [[package]]
+-name = "is-terminal"
+-version = "0.4.9"
++name = "is_terminal_polyfill"
++version = "1.70.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+-dependencies = [
+- "hermit-abi",
+- "rustix 0.38.8",
+- "windows-sys 0.48.0",
+-]
++checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
+
+ [[package]]
+ name = "itertools"
+-version = "0.10.5"
++version = "0.11.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
++checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+ dependencies = [
+ "either",
+ ]
+
+ [[package]]
+ name = "itertools"
+-version = "0.12.1"
++version = "0.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
++checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+ dependencies = [
+ "either",
+ ]
+
+ [[package]]
+ name = "itoa"
+-version = "1.0.9"
++version = "1.0.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
++checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+ [[package]]
+ name = "jaq-core"
+-version = "1.2.1"
++version = "1.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "03d6a5713b8f33675abfac79d1db0022a3f28764b2a6b96a185c199ad8dab86d"
++checksum = "d6fda09ee08c84c81293fdf811d9ebaa87b327557b5391f290c926d728c2ddd4"
+ dependencies = [
+ "aho-corasick",
+ "base64",
++ "chrono",
+ "hifijson",
+ "jaq-interpret",
+ "libm",
+ "log",
+ "regex",
+- "time 0.3.34",
+ "urlencoding",
+ ]
+
+ [[package]]
+ name = "jaq-interpret"
+-version = "1.2.1"
++version = "1.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f569e38e5fc677db8dfda89ee0b4c25b3f53e811b16434fd14bdc5b43fc362ac"
++checksum = "2fe95ec3c24af3fd9f3dd1091593f5e49b003a66c496a8aa39d764d0a06ae17b"
+ dependencies = [
+- "ahash 0.8.9",
++ "ahash",
+ "dyn-clone",
+ "hifijson",
+- "indexmap 2.0.0",
++ "indexmap",
+ "jaq-syn",
+ "once_cell",
+ "serde_json",
+@@ -1697,9 +1661,9 @@ dependencies = [
+
+ [[package]]
+ name = "jaq-parse"
+-version = "1.0.2"
++version = "1.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ef6f8beb9f9922546419e774e24199e8a968f54c63a5a2323c8f3ef3321ace14"
++checksum = "0346d7d3146cdda8acd929581f3d6626a332356c74d5c95aeaffaac2eb6dee82"
+ dependencies = [
+ "chumsky",
+ "jaq-syn",
+@@ -1707,29 +1671,27 @@ dependencies = [
+
+ [[package]]
+ name = "jaq-std"
+-version = "1.2.1"
++version = "1.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5d7871c59297cbfdd18f6f1bbbafaad24e97fd555ee1e2a1be7a40a5a20f551a"
++checksum = "bfbaa55578fd3b70433b594a370741e0c364e4afff92cc0099623fce87311bc1"
+ dependencies = [
+- "bincode",
+- "jaq-parse",
+ "jaq-syn",
+ ]
+
+ [[package]]
+ name = "jaq-syn"
+-version = "1.1.0"
++version = "1.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a4d60101fb791b20c982731d848ed6e7d25363656497647c2093b68bd88398d6"
++checksum = "1ba44fe4428c71304604261ecbae047ee9cfb60c4f1a6bd222ebbb31726d3948"
+ dependencies = [
+ "serde",
+ ]
+
+ [[package]]
+ name = "js-sys"
+-version = "0.3.64"
++version = "0.3.70"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
++checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
+ dependencies = [
+ "wasm-bindgen",
+ ]
+@@ -1756,56 +1718,55 @@ dependencies = [
+
+ [[package]]
+ name = "lalrpop"
+-version = "0.20.0"
++version = "0.20.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8"
++checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca"
+ dependencies = [
+ "ascii-canvas",
+ "bit-set",
+- "diff",
+ "ena",
+- "is-terminal",
+- "itertools 0.10.5",
++ "itertools 0.11.0",
+ "lalrpop-util",
+ "petgraph",
+ "pico-args",
+ "regex",
+- "regex-syntax 0.7.4",
++ "regex-syntax",
+ "string_cache",
+ "term",
+ "tiny-keccak",
+ "unicode-xid",
++ "walkdir",
+ ]
+
+ [[package]]
+ name = "lalrpop-util"
+-version = "0.20.0"
++version = "0.20.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d"
++checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553"
+ dependencies = [
+- "regex",
++ "regex-automata",
+ ]
+
+ [[package]]
+ name = "lasso"
+-version = "0.6.0"
++version = "0.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "aeb7b21a526375c5ca55f1a6dfd4e1fad9fa4edd750f530252a718a44b2608f0"
++checksum = "6e14eda50a3494b3bf7b9ce51c52434a761e383d7238ce1dd5dcec2fbc13e9fb"
+ dependencies = [
+- "hashbrown 0.11.2",
++ "hashbrown",
+ ]
+
+ [[package]]
+ name = "lazy_static"
+-version = "1.4.0"
++version = "1.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
+
+ [[package]]
+ name = "libc"
+-version = "0.2.153"
++version = "0.2.158"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
++checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
+
+ [[package]]
+ name = "libm"
+@@ -1813,6 +1774,17 @@ version = "0.2.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+
++[[package]]
++name = "libredox"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
++dependencies = [
++ "bitflags 2.6.0",
++ "libc",
++ "redox_syscall",
++]
++
+ [[package]]
+ name = "linked-hash-map"
+ version = "0.5.6"
+@@ -1821,21 +1793,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+ [[package]]
+ name = "linux-raw-sys"
+-version = "0.3.8"
++version = "0.4.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
++checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
+
+ [[package]]
+-name = "linux-raw-sys"
+-version = "0.4.5"
++name = "lock_api"
++version = "0.4.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
+-
+-[[package]]
+-name = "lock_api"
+-version = "0.4.10"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
++checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+ dependencies = [
+ "autocfg",
+ "scopeguard",
+@@ -1843,9 +1809,9 @@ dependencies = [
+
+ [[package]]
+ name = "log"
+-version = "0.4.20"
++version = "0.4.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
++checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
+
+ [[package]]
+ name = "maplit"
+@@ -1855,99 +1821,69 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+
+ [[package]]
+ name = "memchr"
+-version = "2.7.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+-
+-[[package]]
+-name = "memoffset"
+-version = "0.6.5"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+-dependencies = [
+- "autocfg",
+-]
+-
+-[[package]]
+-name = "memoffset"
+-version = "0.7.1"
++version = "2.7.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
+-dependencies = [
+- "autocfg",
+-]
++checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+
+ [[package]]
+ name = "memoffset"
+-version = "0.9.0"
++version = "0.9.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
++checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+ dependencies = [
+ "autocfg",
+ ]
+
+ [[package]]
+ name = "miniz_oxide"
+-version = "0.7.1"
++version = "0.7.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
++checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08"
+ dependencies = [
+ "adler",
+ ]
+
+ [[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",
+- "wasi 0.11.0+wasi-snapshot-preview1",
++ "wasi",
+ "windows-sys 0.48.0",
+ ]
+
+ [[package]]
+-name = "new_debug_unreachable"
+-version = "1.0.4"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+-
+-[[package]]
+-name = "nix"
+-version = "0.25.1"
++name = "mio"
++version = "1.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
++checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
+ dependencies = [
+- "autocfg",
+- "bitflags 1.3.2",
+- "cfg-if",
++ "hermit-abi 0.3.9",
+ "libc",
+- "memoffset 0.6.5",
++ "wasi",
++ "windows-sys 0.52.0",
+ ]
+
+ [[package]]
+-name = "nix"
+-version = "0.26.2"
++name = "new_debug_unreachable"
++version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+-dependencies = [
+- "bitflags 1.3.2",
+- "cfg-if",
+- "libc",
+- "memoffset 0.7.1",
+- "static_assertions",
+-]
++checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
+
+ [[package]]
+ name = "nix"
+-version = "0.27.1"
++version = "0.29.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
++checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
+ dependencies = [
+- "bitflags 2.4.0",
++ "bitflags 2.6.0",
+ "cfg-if",
++ "cfg_aliases",
+ "libc",
++ "memoffset",
+ ]
+
+ [[package]]
+@@ -1955,7 +1891,6 @@ name = "notifier_host"
+ version = "0.1.0"
+ dependencies = [
+ "dbusmenu-gtk3",
+- "gdk",
+ "gtk",
+ "log",
+ "thiserror",
+@@ -1969,7 +1904,7 @@ version = "6.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
+ dependencies = [
+- "bitflags 2.4.0",
++ "bitflags 2.6.0",
+ "crossbeam-channel",
+ "filetime",
+ "fsevent-sys",
+@@ -1977,7 +1912,7 @@ dependencies = [
+ "kqueue",
+ "libc",
+ "log",
+- "mio",
++ "mio 0.8.11",
+ "walkdir",
+ "windows-sys 0.48.0",
+ ]
+@@ -1991,36 +1926,20 @@ dependencies = [
+ "winapi",
+ ]
+
+-[[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.16"
++version = "0.2.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
++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",
+- "libc",
+-]
+-
+ [[package]]
+ name = "object"
+-version = "0.31.1"
++version = "0.36.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
++checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
+ dependencies = [
+ "memchr",
+ ]
+@@ -2043,11 +1962,10 @@ dependencies = [
+
+ [[package]]
+ name = "pango"
+-version = "0.17.10"
++version = "0.18.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "35be456fc620e61f62dff7ff70fbd54dcbaf0a4b920c0f16de1107c47d921d48"
++checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4"
+ dependencies = [
+- "bitflags 1.3.2",
+ "gio",
+ "glib",
+ "libc",
+@@ -2057,27 +1975,27 @@ dependencies = [
+
+ [[package]]
+ name = "pango-sys"
+-version = "0.17.10"
++version = "0.18.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3da69f9f3850b0d8990d462f8c709561975e95f689c1cdf0fecdebde78b35195"
++checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
+ dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+- "system-deps",
++ "system-deps 6.2.2",
+ ]
+
+ [[package]]
+ name = "parking"
+-version = "2.1.0"
++version = "2.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e"
++checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+ [[package]]
+ name = "parking_lot"
+-version = "0.12.1"
++version = "0.12.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
++checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
+ dependencies = [
+ "lock_api",
+ "parking_lot_core",
+@@ -2085,45 +2003,34 @@ dependencies = [
+
+ [[package]]
+ name = "parking_lot_core"
+-version = "0.9.8"
++version = "0.9.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
++checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+ dependencies = [
+ "cfg-if",
+ "libc",
+- "redox_syscall 0.3.5",
++ "redox_syscall",
+ "smallvec",
+- "windows-targets 0.48.2",
++ "windows-targets 0.52.6",
+ ]
+
+ [[package]]
+ name = "parse-zoneinfo"
+-version = "0.3.0"
++version = "0.3.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
++checksum = "1f2a05b18d44e2957b88f96ba460715e295bc1d7510468a2f3d3b44535d26c24"
+ dependencies = [
+ "regex",
+ ]
+
+ [[package]]
+ name = "petgraph"
+-version = "0.6.3"
++version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4"
++checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
+ dependencies = [
+ "fixedbitset",
+- "indexmap 1.9.3",
+-]
+-
+-[[package]]
+-name = "phf"
+-version = "0.10.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
+-dependencies = [
+- "phf_macros",
+- "phf_shared 0.10.0",
+- "proc-macro-hack",
++ "indexmap",
+ ]
+
+ [[package]]
+@@ -2132,6 +2039,7 @@ version = "0.11.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+ dependencies = [
++ "phf_macros",
+ "phf_shared 0.11.2",
+ ]
+
+@@ -2141,20 +2049,10 @@ version = "0.11.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
+ dependencies = [
+- "phf_generator 0.11.2",
++ "phf_generator",
+ "phf_shared 0.11.2",
+ ]
+
+-[[package]]
+-name = "phf_generator"
+-version = "0.10.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+-dependencies = [
+- "phf_shared 0.10.0",
+- "rand",
+-]
+-
+ [[package]]
+ name = "phf_generator"
+ version = "0.11.2"
+@@ -2167,16 +2065,15 @@ dependencies = [
+
+ [[package]]
+ name = "phf_macros"
+-version = "0.10.0"
++version = "0.11.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
++checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
+ dependencies = [
+- "phf_generator 0.10.0",
+- "phf_shared 0.10.0",
+- "proc-macro-hack",
++ "phf_generator",
++ "phf_shared 0.11.2",
+ "proc-macro2",
+ "quote",
+- "syn 1.0.109",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+@@ -2205,9 +2102,9 @@ checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
+
+ [[package]]
+ name = "pin-project-lite"
+-version = "0.2.12"
++version = "0.2.14"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
++checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+ [[package]]
+ name = "pin-utils"
+@@ -2215,39 +2112,46 @@ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
++[[package]]
++name = "piper"
++version = "0.2.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
++dependencies = [
++ "atomic-waker",
++ "fastrand",
++ "futures-io",
++]
++
+ [[package]]
+ name = "pkg-config"
+-version = "0.3.27"
++version = "0.3.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
++checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+ [[package]]
+ name = "polling"
+-version = "2.8.0"
++version = "3.7.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
++checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511"
+ dependencies = [
+- "autocfg",
+- "bitflags 1.3.2",
+ "cfg-if",
+ "concurrent-queue",
+- "libc",
+- "log",
++ "hermit-abi 0.4.0",
+ "pin-project-lite",
+- "windows-sys 0.48.0",
++ "rustix",
++ "tracing",
++ "windows-sys 0.59.0",
+ ]
+
+-[[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"
++version = "0.2.20"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
++checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
++dependencies = [
++ "zerocopy",
++]
+
+ [[package]]
+ name = "precomputed-hash"
+@@ -2282,7 +2186,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+ dependencies = [
+ "once_cell",
+- "toml_edit",
++ "toml_edit 0.19.15",
++]
++
++[[package]]
++name = "proc-macro-crate"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8"
++dependencies = [
++ "toml_edit 0.20.7",
++]
++
++[[package]]
++name = "proc-macro-crate"
++version = "3.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
++dependencies = [
++ "toml_edit 0.21.1",
+ ]
+
+ [[package]]
+@@ -2309,26 +2231,26 @@ dependencies = [
+ "version_check",
+ ]
+
+-[[package]]
+-name = "proc-macro-hack"
+-version = "0.5.20+deprecated"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+-
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.78"
++version = "1.0.86"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
++checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+ dependencies = [
+ "unicode-ident",
+ ]
+
++[[package]]
++name = "pure-rust-locales"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a"
++
+ [[package]]
+ name = "quote"
+-version = "1.0.35"
++version = "1.0.37"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
++checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+ dependencies = [
+ "proc-macro2",
+ ]
+@@ -2365,9 +2287,9 @@ dependencies = [
+
+ [[package]]
+ name = "rayon"
+-version = "1.8.1"
++version = "1.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051"
++checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+ dependencies = [
+ "either",
+ "rayon-core",
+@@ -2385,93 +2307,78 @@ dependencies = [
+
+ [[package]]
+ name = "redox_syscall"
+-version = "0.2.16"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+-dependencies = [
+- "bitflags 1.3.2",
+-]
+-
+-[[package]]
+-name = "redox_syscall"
+-version = "0.3.5"
++version = "0.5.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
++checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
+ dependencies = [
+- "bitflags 1.3.2",
++ "bitflags 2.6.0",
+ ]
+
+ [[package]]
+ name = "redox_users"
+-version = "0.4.3"
++version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
++checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
+ dependencies = [
+ "getrandom",
+- "redox_syscall 0.2.16",
++ "libredox",
+ "thiserror",
+ ]
+
+ [[package]]
+ name = "ref-cast"
+-version = "1.0.22"
++version = "1.0.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f"
++checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931"
+ dependencies = [
+ "ref-cast-impl",
+ ]
+
+ [[package]]
+ name = "ref-cast-impl"
+-version = "1.0.22"
++version = "1.0.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc"
++checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "regex"
+-version = "1.10.3"
++version = "1.10.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
++checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
+ dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+- "regex-syntax 0.8.2",
++ "regex-syntax",
+ ]
+
+ [[package]]
+ name = "regex-automata"
+-version = "0.4.5"
++version = "0.4.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
++checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
+ dependencies = [
+ "aho-corasick",
+ "memchr",
+- "regex-syntax 0.8.2",
++ "regex-syntax",
+ ]
+
+ [[package]]
+ name = "regex-syntax"
+-version = "0.7.4"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+-
+-[[package]]
+-name = "regex-syntax"
+-version = "0.8.2"
++version = "0.8.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
++checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
+
+ [[package]]
+ name = "rustc-demangle"
+-version = "0.1.23"
++version = "0.1.24"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
++checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+ [[package]]
+ name = "rustc_version"
+@@ -2484,42 +2391,28 @@ dependencies = [
+
+ [[package]]
+ name = "rustix"
+-version = "0.37.23"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
+-dependencies = [
+- "bitflags 1.3.2",
+- "errno",
+- "io-lifetimes",
+- "libc",
+- "linux-raw-sys 0.3.8",
+- "windows-sys 0.48.0",
+-]
+-
+-[[package]]
+-name = "rustix"
+-version = "0.38.8"
++version = "0.38.34"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f"
++checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+ dependencies = [
+- "bitflags 2.4.0",
++ "bitflags 2.6.0",
+ "errno",
+ "libc",
+- "linux-raw-sys 0.4.5",
+- "windows-sys 0.48.0",
++ "linux-raw-sys",
++ "windows-sys 0.52.0",
+ ]
+
+ [[package]]
+ name = "rustversion"
+-version = "1.0.14"
++version = "1.0.17"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
++checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
+
+ [[package]]
+ name = "ryu"
+-version = "1.0.15"
++version = "1.0.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
++checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+
+ [[package]]
+ name = "same-file"
+@@ -2538,66 +2431,67 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+ [[package]]
+ name = "semver"
+-version = "1.0.18"
++version = "1.0.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
++checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+
+ [[package]]
+ name = "serde"
+-version = "1.0.197"
++version = "1.0.209"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
++checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
+ dependencies = [
+ "serde_derive",
+ ]
+
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.197"
++version = "1.0.209"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
++checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "serde_json"
+-version = "1.0.105"
++version = "1.0.127"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
++checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
+ dependencies = [
+ "itoa",
++ "memchr",
+ "ryu",
+ "serde",
+ ]
+
+ [[package]]
+ name = "serde_repr"
+-version = "0.1.16"
++version = "0.1.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8725e1dfadb3a50f7e5ce0b1a540466f6ed3fe7a0fca2ac2b8b831d31316bd00"
++checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "serde_spanned"
+-version = "0.6.3"
++version = "0.6.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
++checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
+ dependencies = [
+ "serde",
+ ]
+
+ [[package]]
+ name = "sha1"
+-version = "0.10.5"
++version = "0.10.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
++checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+ dependencies = [
+ "cfg-if",
+ "cpufeatures",
+@@ -2605,29 +2499,25 @@ dependencies = [
+ ]
+
+ [[package]]
+-name = "signal-hook"
+-version = "0.3.17"
++name = "shlex"
++version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
+-dependencies = [
+- "libc",
+- "signal-hook-registry",
+-]
++checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+ [[package]]
+ name = "signal-hook-registry"
+-version = "1.4.1"
++version = "1.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
++checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
+ dependencies = [
+ "libc",
+ ]
+
+ [[package]]
+ name = "similar"
+-version = "2.2.1"
++version = "2.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf"
++checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e"
+
+ [[package]]
+ name = "simple-signal"
+@@ -2648,7 +2538,7 @@ dependencies = [
+ "chrono-tz",
+ "eww_shared_util",
+ "insta",
+- "itertools 0.12.1",
++ "itertools 0.13.0",
+ "jaq-core",
+ "jaq-interpret",
+ "jaq-parse",
+@@ -2661,31 +2551,31 @@ dependencies = [
+ "serde",
+ "serde_json",
+ "static_assertions",
+- "strsim 0.11.0",
++ "strsim",
+ "strum",
+ "thiserror",
+ ]
+
+ [[package]]
+ name = "siphasher"
+-version = "0.3.10"
++version = "0.3.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
++checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+ [[package]]
+ name = "slab"
+-version = "0.4.8"
++version = "0.4.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
++checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+ dependencies = [
+ "autocfg",
+ ]
+
+ [[package]]
+ name = "smallvec"
+-version = "1.11.0"
++version = "1.13.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
++checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+ [[package]]
+ name = "smart-default"
+@@ -2695,24 +2585,14 @@ checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "socket2"
+-version = "0.4.9"
++version = "0.5.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+-dependencies = [
+- "libc",
+- "winapi",
+-]
+-
+-[[package]]
+-name = "socket2"
+-version = "0.5.6"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
++checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
+ dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+@@ -2739,36 +2619,30 @@ dependencies = [
+
+ [[package]]
+ name = "strsim"
+-version = "0.10.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-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 = "strum"
+-version = "0.26.1"
++version = "0.26.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f"
++checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
+ dependencies = [
+ "strum_macros",
+ ]
+
+ [[package]]
+ name = "strum_macros"
+-version = "0.26.1"
++version = "0.26.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
++checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
+ dependencies = [
+- "heck",
++ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+@@ -2778,15 +2652,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+ dependencies = [
+ "proc-macro2",
+- "quote",
+ "unicode-ident",
+ ]
+
+ [[package]]
+ name = "syn"
+-version = "2.0.50"
++version = "2.0.76"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb"
++checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+@@ -2795,27 +2668,39 @@ dependencies = [
+
+ [[package]]
+ name = "sysinfo"
+-version = "0.30.5"
++version = "0.31.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1fb4f3438c8f6389c864e61221cbc97e9bca98b4daf39a5beb7bea660f528bb2"
++checksum = "2b92e0bdf838cbc1c4c9ba14f9c97a7ec6cdcd1ae66b10e1e42775a25553f45d"
+ dependencies = [
+- "cfg-if",
+ "core-foundation-sys",
+ "libc",
++ "memchr",
+ "ntapi",
+- "once_cell",
+ "rayon",
+- "windows 0.52.0",
++ "windows",
+ ]
+
+ [[package]]
+ name = "system-deps"
+-version = "6.1.1"
++version = "6.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
++dependencies = [
++ "cfg-expr 0.15.8",
++ "heck 0.5.0",
++ "pkg-config",
++ "toml",
++ "version-compare",
++]
++
++[[package]]
++name = "system-deps"
++version = "7.0.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3"
++checksum = "070a0a5e7da2d24be457809c4b3baa57a835fd2829ad8b86f9a049052fe71031"
+ dependencies = [
+- "cfg-expr",
+- "heck",
++ "cfg-expr 0.16.0",
++ "heck 0.5.0",
+ "pkg-config",
+ "toml",
+ "version-compare",
+@@ -2823,21 +2708,21 @@ dependencies = [
+
+ [[package]]
+ name = "target-lexicon"
+-version = "0.12.11"
++version = "0.12.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
++checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
+
+ [[package]]
+ name = "tempfile"
+-version = "3.8.0"
++version = "3.12.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
++checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
+ dependencies = [
+ "cfg-if",
+- "fastrand 2.0.0",
+- "redox_syscall 0.3.5",
+- "rustix 0.38.8",
+- "windows-sys 0.48.0",
++ "fastrand",
++ "once_cell",
++ "rustix",
++ "windows-sys 0.59.0",
+ ]
+
+ [[package]]
+@@ -2853,73 +2738,31 @@ dependencies = [
+
+ [[package]]
+ name = "termcolor"
+-version = "1.2.0"
++version = "1.4.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
++checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
+ dependencies = [
+ "winapi-util",
+ ]
+
+ [[package]]
+ name = "thiserror"
+-version = "1.0.46"
++version = "1.0.63"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d9207952ae1a003f42d3d5e892dac3c6ba42aa6ac0c79a6a91a2b5cb4253e75c"
++checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
+ dependencies = [
+ "thiserror-impl",
+ ]
+
+ [[package]]
+ name = "thiserror-impl"
+-version = "1.0.46"
++version = "1.0.63"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f1728216d3244de4f14f14f8c15c79be1a7c67867d28d69b719690e2a19fb445"
++checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
+-]
+-
+-[[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.34"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
+-dependencies = [
+- "deranged",
+- "itoa",
+- "num-conv",
+- "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.17"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
+-dependencies = [
+- "num-conv",
+- "time-core",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+@@ -2933,40 +2776,39 @@ dependencies = [
+
+ [[package]]
+ name = "tokio"
+-version = "1.36.0"
++version = "1.39.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
++checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5"
+ dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+- "mio",
+- "num_cpus",
++ "mio 1.0.2",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+- "socket2 0.5.6",
++ "socket2",
+ "tokio-macros",
+ "tracing",
+- "windows-sys 0.48.0",
++ "windows-sys 0.52.0",
+ ]
+
+ [[package]]
+ name = "tokio-macros"
+-version = "2.2.0"
++version = "2.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
++checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "tokio-util"
+-version = "0.7.8"
++version = "0.7.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
++checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
+ dependencies = [
+ "bytes",
+ "futures-core",
+@@ -2977,45 +2819,77 @@ dependencies = [
+
+ [[package]]
+ name = "toml"
+-version = "0.7.6"
++version = "0.8.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
++checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
+ dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+- "toml_edit",
++ "toml_edit 0.22.20",
+ ]
+
+ [[package]]
+ name = "toml_datetime"
+-version = "0.6.3"
++version = "0.6.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
++checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
+ dependencies = [
+ "serde",
+ ]
+
+ [[package]]
+ name = "toml_edit"
+-version = "0.19.14"
++version = "0.19.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
++checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
+ dependencies = [
+- "indexmap 2.0.0",
++ "indexmap",
++ "toml_datetime",
++ "winnow 0.5.40",
++]
++
++[[package]]
++name = "toml_edit"
++version = "0.20.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81"
++dependencies = [
++ "indexmap",
++ "toml_datetime",
++ "winnow 0.5.40",
++]
++
++[[package]]
++name = "toml_edit"
++version = "0.21.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
++dependencies = [
++ "indexmap",
++ "toml_datetime",
++ "winnow 0.5.40",
++]
++
++[[package]]
++name = "toml_edit"
++version = "0.22.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
++dependencies = [
++ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+- "winnow",
++ "winnow 0.6.18",
+ ]
+
+ [[package]]
+ name = "tracing"
+-version = "0.1.37"
++version = "0.1.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
++checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+ dependencies = [
+- "cfg-if",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+@@ -3023,36 +2897,37 @@ dependencies = [
+
+ [[package]]
+ name = "tracing-attributes"
+-version = "0.1.26"
++version = "0.1.27"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
++checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "tracing-core"
+-version = "0.1.31"
++version = "0.1.32"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
++checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+ dependencies = [
+ "once_cell",
+ ]
+
+ [[package]]
+ name = "typenum"
+-version = "1.16.0"
++version = "1.17.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
++checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+ [[package]]
+ name = "uds_windows"
+-version = "1.0.2"
++version = "1.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d"
++checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
+ dependencies = [
++ "memoffset",
+ "tempfile",
+ "winapi",
+ ]
+@@ -3065,21 +2940,21 @@ checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e"
+
+ [[package]]
+ name = "unicode-ident"
+-version = "1.0.11"
++version = "1.0.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
++checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+ [[package]]
+ name = "unicode-width"
+-version = "0.1.10"
++version = "0.1.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
++checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d"
+
+ [[package]]
+ name = "unicode-xid"
+-version = "0.2.4"
++version = "0.2.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
++checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a"
+
+ [[package]]
+ name = "urlencoding"
+@@ -3089,21 +2964,21 @@ checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+ [[package]]
+ name = "utf8parse"
+-version = "0.2.1"
++version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
++checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
+
+ [[package]]
+ name = "version-compare"
+-version = "0.1.1"
++version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
++checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
+
+ [[package]]
+ name = "version_check"
+-version = "0.9.4"
++version = "0.9.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
++checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+
+ [[package]]
+ name = "wait-timeout"
+@@ -3114,28 +2989,16 @@ dependencies = [
+ "libc",
+ ]
+
+-[[package]]
+-name = "waker-fn"
+-version = "1.1.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+-
+ [[package]]
+ name = "walkdir"
+-version = "2.3.3"
++version = "2.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
++checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+ dependencies = [
+ "same-file",
+ "winapi-util",
+ ]
+
+-[[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"
+@@ -3144,34 +3007,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+ [[package]]
+ name = "wasm-bindgen"
+-version = "0.2.87"
++version = "0.2.93"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
++checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
+ dependencies = [
+ "cfg-if",
++ "once_cell",
+ "wasm-bindgen-macro",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-backend"
+-version = "0.2.87"
++version = "0.2.93"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
++checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
+ dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ "wasm-bindgen-shared",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-macro"
+-version = "0.2.87"
++version = "0.2.93"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
++checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
+ dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+@@ -3179,22 +3043,32 @@ dependencies = [
+
+ [[package]]
+ name = "wasm-bindgen-macro-support"
+-version = "0.2.87"
++version = "0.2.93"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
++checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+ ]
+
+ [[package]]
+ name = "wasm-bindgen-shared"
+-version = "0.2.87"
++version = "0.2.93"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
++checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
++
++[[package]]
++name = "web-time"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
++dependencies = [
++ "js-sys",
++ "wasm-bindgen",
++]
+
+ [[package]]
+ name = "winapi"
+@@ -3214,20 +3088,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+ [[package]]
+ name = "winapi-util"
+-version = "0.1.5"
++version = "0.1.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
++checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
+ dependencies = [
+- "winapi",
+-]
+-
+-[[package]]
+-name = "winapi-wsapoll"
+-version = "0.1.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e"
+-dependencies = [
+- "winapi",
++ "windows-sys 0.48.0",
+ ]
+
+ [[package]]
+@@ -3238,39 +3103,64 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+ [[package]]
+ name = "windows"
+-version = "0.48.0"
++version = "0.57.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
++checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143"
+ dependencies = [
+- "windows-targets 0.48.2",
++ "windows-core 0.57.0",
++ "windows-targets 0.52.6",
+ ]
+
+ [[package]]
+-name = "windows"
++name = "windows-core"
+ version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
++checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+ dependencies = [
+- "windows-core",
+- "windows-targets 0.52.3",
++ "windows-targets 0.52.6",
+ ]
+
+ [[package]]
+ name = "windows-core"
+-version = "0.52.0"
++version = "0.57.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
++checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d"
+ dependencies = [
+- "windows-targets 0.52.3",
++ "windows-implement",
++ "windows-interface",
++ "windows-result",
++ "windows-targets 0.52.6",
+ ]
+
+ [[package]]
+-name = "windows-sys"
+-version = "0.45.0"
++name = "windows-implement"
++version = "0.57.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn 2.0.76",
++]
++
++[[package]]
++name = "windows-interface"
++version = "0.57.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
++checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
+ dependencies = [
+- "windows-targets 0.42.2",
++ "proc-macro2",
++ "quote",
++ "syn 2.0.76",
++]
++
++[[package]]
++name = "windows-result"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8"
++dependencies = [
++ "windows-targets 0.52.6",
+ ]
+
+ [[package]]
+@@ -3279,7 +3169,7 @@ version = "0.48.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+ dependencies = [
+- "windows-targets 0.48.2",
++ "windows-targets 0.48.5",
+ ]
+
+ [[package]]
+@@ -3288,185 +3178,153 @@ version = "0.52.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+ dependencies = [
+- "windows-targets 0.52.3",
++ "windows-targets 0.52.6",
+ ]
+
+ [[package]]
+-name = "windows-targets"
+-version = "0.42.2"
++name = "windows-sys"
++version = "0.59.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
++checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+ dependencies = [
+- "windows_aarch64_gnullvm 0.42.2",
+- "windows_aarch64_msvc 0.42.2",
+- "windows_i686_gnu 0.42.2",
+- "windows_i686_msvc 0.42.2",
+- "windows_x86_64_gnu 0.42.2",
+- "windows_x86_64_gnullvm 0.42.2",
+- "windows_x86_64_msvc 0.42.2",
++ "windows-targets 0.52.6",
+ ]
+
+ [[package]]
+ name = "windows-targets"
+-version = "0.48.2"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d1eeca1c172a285ee6c2c84c341ccea837e7c01b12fbb2d0fe3c9e550ce49ec8"
++checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+ dependencies = [
+- "windows_aarch64_gnullvm 0.48.2",
+- "windows_aarch64_msvc 0.48.2",
+- "windows_i686_gnu 0.48.2",
+- "windows_i686_msvc 0.48.2",
+- "windows_x86_64_gnu 0.48.2",
+- "windows_x86_64_gnullvm 0.48.2",
+- "windows_x86_64_msvc 0.48.2",
++ "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.3"
++version = "0.52.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f"
++checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+ dependencies = [
+- "windows_aarch64_gnullvm 0.52.3",
+- "windows_aarch64_msvc 0.52.3",
+- "windows_i686_gnu 0.52.3",
+- "windows_i686_msvc 0.52.3",
+- "windows_x86_64_gnu 0.52.3",
+- "windows_x86_64_gnullvm 0.52.3",
+- "windows_x86_64_msvc 0.52.3",
++ "windows_aarch64_gnullvm 0.52.6",
++ "windows_aarch64_msvc 0.52.6",
++ "windows_i686_gnu 0.52.6",
++ "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",
+ ]
+
+ [[package]]
+ name = "windows_aarch64_gnullvm"
+-version = "0.42.2"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
++checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+ [[package]]
+ name = "windows_aarch64_gnullvm"
+-version = "0.48.2"
++version = "0.52.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b10d0c968ba7f6166195e13d593af609ec2e3d24f916f081690695cf5eaffb2f"
+-
+-[[package]]
+-name = "windows_aarch64_gnullvm"
+-version = "0.52.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6"
+-
+-[[package]]
+-name = "windows_aarch64_msvc"
+-version = "0.42.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
++checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+ [[package]]
+ name = "windows_aarch64_msvc"
+-version = "0.48.2"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "571d8d4e62f26d4932099a9efe89660e8bd5087775a2ab5cdd8b747b811f1058"
++checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+ [[package]]
+ name = "windows_aarch64_msvc"
+-version = "0.52.3"
++version = "0.52.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f"
++checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+ [[package]]
+ name = "windows_i686_gnu"
+-version = "0.42.2"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
++checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+ [[package]]
+ name = "windows_i686_gnu"
+-version = "0.48.2"
++version = "0.52.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2229ad223e178db5fbbc8bd8d3835e51e566b8474bfca58d2e6150c48bb723cd"
++checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+ [[package]]
+-name = "windows_i686_gnu"
+-version = "0.52.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb"
+-
+-[[package]]
+-name = "windows_i686_msvc"
+-version = "0.42.2"
++name = "windows_i686_gnullvm"
++version = "0.52.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
++checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+ [[package]]
+ name = "windows_i686_msvc"
+-version = "0.48.2"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "600956e2d840c194eedfc5d18f8242bc2e17c7775b6684488af3a9fff6fe3287"
++checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+ [[package]]
+ name = "windows_i686_msvc"
+-version = "0.52.3"
++version = "0.52.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58"
++checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+ [[package]]
+ name = "windows_x86_64_gnu"
+-version = "0.42.2"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
++checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+ [[package]]
+ name = "windows_x86_64_gnu"
+-version = "0.48.2"
++version = "0.52.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ea99ff3f8b49fb7a8e0d305e5aec485bd068c2ba691b6e277d29eaeac945868a"
+-
+-[[package]]
+-name = "windows_x86_64_gnu"
+-version = "0.52.3"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614"
+-
+-[[package]]
+-name = "windows_x86_64_gnullvm"
+-version = "0.42.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
++checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
+ [[package]]
+ name = "windows_x86_64_gnullvm"
+-version = "0.48.2"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8f1a05a1ece9a7a0d5a7ccf30ba2c33e3a61a30e042ffd247567d1de1d94120d"
++checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+ [[package]]
+ name = "windows_x86_64_gnullvm"
+-version = "0.52.3"
++version = "0.52.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c"
++checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+ [[package]]
+ name = "windows_x86_64_msvc"
+-version = "0.42.2"
++version = "0.48.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
++checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+ [[package]]
+ name = "windows_x86_64_msvc"
+-version = "0.48.2"
++version = "0.52.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d419259aba16b663966e29e6d7c6ecfa0bb8425818bb96f6f1f3c3eb71a6e7b9"
++checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
+
+ [[package]]
+-name = "windows_x86_64_msvc"
+-version = "0.52.3"
++name = "winnow"
++version = "0.5.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6"
++checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
++dependencies = [
++ "memchr",
++]
+
+ [[package]]
+ name = "winnow"
+-version = "0.5.11"
++version = "0.6.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1e461589e194280efaa97236b73623445efa195aa633fd7004f39805707a9d53"
++checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
+ dependencies = [
+ "memchr",
+ ]
+@@ -3483,43 +3341,29 @@ dependencies = [
+
+ [[package]]
+ name = "x11rb"
+-version = "0.11.1"
++version = "0.13.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cdf3c79412dd91bae7a7366b8ad1565a85e35dd049affc3a6a2c549e97419617"
++checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12"
+ dependencies = [
+ "gethostname",
+- "nix 0.25.1",
+- "winapi",
+- "winapi-wsapoll",
++ "rustix",
+ "x11rb-protocol",
+ ]
+
+ [[package]]
+ name = "x11rb-protocol"
+-version = "0.11.1"
++version = "0.13.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e0b1513b141123073ce54d5bb1d33f801f17508fbd61e02060b1214e96d39c56"
+-dependencies = [
+- "nix 0.25.1",
+-]
++checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d"
+
+ [[package]]
+ name = "xdg-home"
+-version = "1.0.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd"
+-dependencies = [
+- "nix 0.26.2",
+- "winapi",
+-]
+-
+-[[package]]
+-name = "yaml-rust"
+-version = "0.4.5"
++version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
++checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6"
+ dependencies = [
+- "linked-hash-map",
++ "libc",
++ "windows-sys 0.59.0",
+ ]
+
+ [[package]]
+@@ -3537,7 +3381,7 @@ dependencies = [
+ "derive_more",
+ "eww_shared_util",
+ "insta",
+- "itertools 0.12.1",
++ "itertools 0.13.0",
+ "lalrpop",
+ "lalrpop-util",
+ "maplit",
+@@ -3554,24 +3398,21 @@ dependencies = [
+
+ [[package]]
+ name = "zbus"
+-version = "3.14.1"
++version = "4.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "31de390a2d872e4cd04edd71b425e29853f786dc99317ed72d73d6fcf5ebb948"
++checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725"
+ dependencies = [
+ "async-broadcast",
+ "async-process",
+ "async-recursion",
+ "async-trait",
+- "byteorder",
+- "derivative",
+ "enumflags2",
+ "event-listener",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "hex",
+- "nix 0.26.2",
+- "once_cell",
++ "nix",
+ "ordered-stream",
+ "rand",
+ "serde",
+@@ -3581,7 +3422,7 @@ dependencies = [
+ "tokio",
+ "tracing",
+ "uds_windows",
+- "winapi",
++ "windows-sys 0.52.0",
+ "xdg-home",
+ "zbus_macros",
+ "zbus_names",
+@@ -3590,23 +3431,22 @@ dependencies = [
+
+ [[package]]
+ name = "zbus_macros"
+-version = "3.14.1"
++version = "4.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d"
++checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e"
+ dependencies = [
+- "proc-macro-crate",
++ "proc-macro-crate 3.1.0",
+ "proc-macro2",
+ "quote",
+- "regex",
+- "syn 1.0.109",
++ "syn 2.0.76",
+ "zvariant_utils",
+ ]
+
+ [[package]]
+ name = "zbus_names"
+-version = "2.6.0"
++version = "3.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fb80bb776dbda6e23d705cf0123c3b95df99c4ebeaec6c2599d4a5419902b4a9"
++checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c"
+ dependencies = [
+ "serde",
+ "static_assertions",
+@@ -3615,33 +3455,33 @@ dependencies = [
+
+ [[package]]
+ name = "zerocopy"
+-version = "0.7.32"
++version = "0.7.35"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
++checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
+ dependencies = [
++ "byteorder",
+ "zerocopy-derive",
+ ]
+
+ [[package]]
+ name = "zerocopy-derive"
+-version = "0.7.32"
++version = "0.7.35"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
++checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 2.0.50",
++ "syn 2.0.76",
+ ]
+
+ [[package]]
+ name = "zvariant"
+-version = "3.15.0"
++version = "4.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "44b291bee0d960c53170780af148dca5fa260a63cdd24f1962fa82e03e53338c"
++checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe"
+ dependencies = [
+- "byteorder",
++ "endi",
+ "enumflags2",
+- "libc",
+ "serde",
+ "static_assertions",
+ "zvariant_derive",
+@@ -3649,24 +3489,24 @@ dependencies = [
+
+ [[package]]
+ name = "zvariant_derive"
+-version = "3.15.0"
++version = "4.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd"
++checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449"
+ dependencies = [
+- "proc-macro-crate",
++ "proc-macro-crate 3.1.0",
+ "proc-macro2",
+ "quote",
+- "syn 1.0.109",
++ "syn 2.0.76",
+ "zvariant_utils",
+ ]
+
+ [[package]]
+ name = "zvariant_utils"
+-version = "1.0.1"
++version = "2.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7234f0d811589db492d16893e3f21e8e2fd282e6d01b0cddee310322062cc200"
++checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340"
+ dependencies = [
+ "proc-macro2",
+ "quote",
+- "syn 1.0.109",
++ "syn 2.0.76",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index c886a87..b457ed4 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -6,53 +6,61 @@ resolver = "2"
+
+ simplexpr = { version = "0.1.0", path = "crates/simplexpr" }
+ eww_shared_util = { version = "0.1.0", path = "crates/eww_shared_util" }
+-yuck = { version = "0.1.0", path = "crates/yuck", default-features = false}
++yuck = { version = "0.1.0", path = "crates/yuck", default-features = false }
+ notifier_host = { version = "0.1.0", path = "crates/notifier_host" }
+
+-anyhow = "1.0.79"
++anyhow = "1.0.86"
+ bincode = "1.3.3"
+-cached = "0.48.0"
+-chrono = "0.4.26"
+-chrono-tz = "0.8.2"
+-clap = {version = "4.5.1", features = ["derive"] }
+-clap_complete = "4.5.1"
++cached = "0.53.1"
++chrono = "0.4.38"
++chrono-tz = "0.9.0"
++clap = { version = "4.5.1", features = ["derive"] }
++clap_complete = "4.5.12"
+ codespan-reporting = "0.11"
+-derive_more = "0.99"
++derive_more = { version = "1", features = [
++ "as_ref",
++ "debug",
++ "display",
++ "from",
++ "from_str",
++] }
+ extend = "1.2"
+-futures = "0.3.28"
+-grass = {version = "0.13.1", default-features = false}
++futures = "0.3.30"
++grass = "0.13.4"
++gtk = "0.18.1"
+ insta = "1.7"
+-itertools = "0.12.1"
+-jaq-core = "1.2.1"
+-jaq-parse = "1.0.2"
+-jaq-std = {version = "1.2.1", features = ["bincode"]}
+-jaq-interpret = "1.2.1"
+-jaq-syn = "1.1.0"
+-lalrpop = { version = "0.20.0", features = ["unicode"] }
+-lalrpop-util = { version = "0.20.0", features = ["unicode"] }
++itertools = "0.13.0"
++jaq-core = "1.5.1"
++jaq-parse = "1.0.3"
++jaq-std = "1.6.0"
++jaq-interpret = "1.5.0"
++jaq-syn = "1.6.0"
++lalrpop = { version = "0.20.2", features = ["unicode"] }
++lalrpop-util = { version = "0.20.2", features = ["unicode"] }
+ libc = "0.2"
+ log = "0.4"
+ maplit = "1"
+-nix = "0.27.1"
++nix = "0.29.0"
+ notify = "6.1.1"
+ once_cell = "1.19"
+ pretty_assertions = "1.4.0"
+ pretty_env_logger = "0.5.0"
+ ref-cast = "1.0.22"
+-regex = "1.10.3"
++regex = "1.10.5"
+ serde_json = "1.0"
+-serde = {version = "1.0", features = ["derive"]}
++serde = { version = "1.0", features = ["derive"] }
+ simple-signal = "1.1"
+ smart-default = "0.7.1"
+ static_assertions = "1.1.0"
+ strsim = "0.11"
+ strum = { version = "0.26", features = ["derive"] }
+-sysinfo = "0.30.5"
++sysinfo = "0.31.2"
+ thiserror = "1.0"
+-tokio-util = "0.7.8"
+-tokio = { version = "1.36.0", features = ["full"] }
++tokio-util = "0.7.11"
++tokio = { version = "1.39.2", features = ["full"] }
+ unescape = "0.1"
+ wait-timeout = "0.2"
++zbus = { version = "4.4.0", default-features = false, features = ["tokio"] }
+
+ [profile.dev]
+ split-debuginfo = "unpacked"
+diff --git a/crates/eww/Cargo.toml b/crates/eww/Cargo.toml
+index a5b62d9..d934c45 100644
+--- a/crates/eww/Cargo.toml
++++ b/crates/eww/Cargo.toml
+@@ -1,6 +1,6 @@
+ [package]
+ name = "eww"
+-version = "0.5.0"
++version = "0.6.0"
+ authors = ["elkowar <5300871+elkowar@users.noreply.github.com>"]
+ description = "Widgets for everyone!"
+ license = "MIT"
+@@ -9,7 +9,6 @@ homepage = "https://github.com/elkowar/eww"
+ edition = "2021"
+
+
+-
+ [features]
+ default = ["x11", "wayland"]
+ x11 = ["gdkx11", "x11rb"]
+@@ -21,34 +20,25 @@ eww_shared_util.workspace = true
+ yuck.workspace = true
+ notifier_host.workspace = true
+
+-gtk = "0.17.1"
+-gdk = "0.17.1"
+-pango = "0.17.1"
+-glib = "0.17.8"
+-glib-macros = "0.17.8"
+-
+-cairo-rs = "0.17"
+-cairo-sys-rs = "0.17"
+-
+-gdk-pixbuf = "0.17"
++gtk-layer-shell = { version = "0.8.1", optional = true }
++gdkx11 = { version = "0.18", optional = true }
++x11rb = { version = "0.13.1", features = ["randr"], optional = true }
++gdk-sys = "0.18.0"
+
+-gtk-layer-shell = { version = "0.6.1", optional = true }
+-gdkx11 = { version = "0.17", optional = true }
+-x11rb = { version = "0.11.1", features = ["randr"], optional = true }
+-
+-zbus = { version = "3.7.0", default-features = false, features = ["tokio"] }
+ ordered-stream = "0.2.0"
+
+-anyhow.workspace = true
++
++grass.workspace = true
++anyhow.workspace = true
+ bincode.workspace = true
+ chrono.workspace = true
+-clap = {workspace = true, features = ["derive"] }
++clap = { workspace = true, features = ["derive"] }
+ clap_complete.workspace = true
+ codespan-reporting.workspace = true
+ derive_more.workspace = true
+ extend.workspace = true
+ futures.workspace = true
+-grass = {workspace = true, default-features = false}
++gtk.workspace = true
+ itertools.workspace = true
+ libc.workspace = true
+ log.workspace = true
+@@ -59,10 +49,11 @@ once_cell.workspace = true
+ pretty_env_logger.workspace = true
+ regex.workspace = true
+ serde_json.workspace = true
+-serde = {workspace = true, features = ["derive"]}
++serde = { workspace = true, features = ["derive"] }
+ simple-signal.workspace = true
+-sysinfo = { workspace = true, features = ["linux-netdevs"] }
++sysinfo = { workspace = true }
+ tokio-util.workspace = true
+ tokio = { workspace = true, features = ["full"] }
+ unescape.workspace = true
+ wait-timeout.workspace = true
++zbus = { workspace = true, default-features = false, features = ["tokio"] }
+diff --git a/crates/eww/src/app.rs b/crates/eww/src/app.rs
+index 41b3364..2da4ab2 100644
+--- a/crates/eww/src/app.rs
++++ b/crates/eww/src/app.rs
+@@ -1,5 +1,4 @@
+ use crate::{
+- config,
+ daemon_response::DaemonResponseSender,
+ display_backend::DisplayBackend,
+ error_handling_ctx,
+@@ -17,12 +16,14 @@ use codespan_reporting::files::Files;
+ use eww_shared_util::{Span, VarName};
+ use gdk::Monitor;
+ use glib::ObjectExt;
++use gtk::{gdk, glib};
+ use itertools::Itertools;
+ use once_cell::sync::Lazy;
+ use simplexpr::{dynval::DynVal, SimplExpr};
+ use std::{
+ cell::RefCell,
+ collections::{HashMap, HashSet},
++ marker::PhantomData,
+ rc::Rc,
+ };
+ use tokio::sync::mpsc::UnboundedSender;
+@@ -87,10 +88,6 @@ pub enum DaemonCommand {
+ /// An opened window.
+ #[derive(Debug)]
+ pub struct EwwWindow {
+- /// Every window has an id, uniquely identifying it.
+- /// If no specific ID was specified whilst starting the window,
+- /// this will be the same as the window name.
+- pub instance_id: String,
+ pub name: String,
+ pub scope_index: ScopeIndex,
+ pub gtk_window: Window,
+@@ -111,11 +108,13 @@ impl EwwWindow {
+ }
+ }
+
+-pub struct App<B> {
+- pub display_backend: B,
++pub struct App<B: DisplayBackend> {
+ pub scope_graph: Rc<RefCell<ScopeGraph>>,
+ pub eww_config: config::EwwConfig,
+- /// Map of all currently open windows by their IDs
++ /// Map of all currently open windows to their unique IDs
++ /// If no specific ID was specified whilst starting the window,
++ /// it will be the same as the window name.
++ /// Therefore, only one window of a given name can exist when not using IDs.
+ pub open_windows: HashMap<String, EwwWindow>,
+ pub instance_id_to_args: HashMap<String, WindowArguments>,
+ /// Window names that are supposed to be open, but failed.
+@@ -131,9 +130,10 @@ pub struct App<B> {
+ pub window_close_timer_abort_senders: HashMap<String, futures::channel::oneshot::Sender<()>>,
+
+ pub paths: EwwPaths,
++ pub phantom: PhantomData<B>,
+ }
+
+-impl<B> std::fmt::Debug for App<B> {
++impl<B: DisplayBackend> std::fmt::Debug for App<B> {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ f.debug_struct("App")
+ .field("scope_graph", &*self.scope_graph.borrow())
+@@ -572,7 +572,6 @@ fn initialize_window<B: DisplayBackend>(
+ window.show_all();
+
+ Ok(EwwWindow {
+- instance_id: window_init.id.clone(),
+ name: window_init.name.clone(),
+ gtk_window: window,
+ scope_index: window_scope,
+@@ -626,6 +625,18 @@ fn get_gdk_monitor(identifier: Option<MonitorIdentifier>) -> Result<Monitor> {
+ Ok(monitor)
+ }
+
++/// Get the name of monitor plug for given monitor number
++/// workaround gdk not providing this information on wayland in regular calls
++/// gdk_screen_get_monitor_plug_name is deprecated but works fine for that case
++fn get_monitor_plug_name(display: &gdk::Display, monitor_num: i32) -> Option<&str> {
++ unsafe {
++ use glib::translate::ToGlibPtr;
++ let plug_name_pointer = gdk_sys::gdk_screen_get_monitor_plug_name(display.default_screen().to_glib_none().0, monitor_num);
++ use std::ffi::CStr;
++ CStr::from_ptr(plug_name_pointer).to_str().ok()
++ }
++}
++
+ /// Returns the [Monitor][gdk::Monitor] structure corresponding to the identifer.
+ /// Outside of x11, only [MonitorIdentifier::Numeric] is supported
+ pub fn get_monitor_from_display(display: &gdk::Display, identifier: &MonitorIdentifier) -> Option<gdk::Monitor> {
+@@ -643,7 +654,7 @@ pub fn get_monitor_from_display(display: &gdk::Display, identifier: &MonitorIden
+ MonitorIdentifier::Name(name) => {
+ for m in 0..display.n_monitors() {
+ if let Some(model) = display.monitor(m).and_then(|x| x.model()) {
+- if model == *name {
++ if model == *name || Some(name.as_str()) == get_monitor_plug_name(display, m) {
+ return display.monitor(m);
+ }
+ }
+diff --git a/crates/eww/src/config/inbuilt.rs b/crates/eww/src/config/inbuilt.rs
+index 13cf1e6..ba29939 100644
+--- a/crates/eww/src/config/inbuilt.rs
++++ b/crates/eww/src/config/inbuilt.rs
+@@ -34,7 +34,7 @@ define_builtin_vars! {
+ // @prop { <name>: temperature }
+ "EWW_TEMPS" [2] => || Ok(DynVal::from(get_temperatures())),
+
+- // @desc EWW_RAM - Information on ram and swap usage in kB.
++ // @desc EWW_RAM - Information on ram and swap usage in bytes.
+ // @prop { total_mem, free_mem, total_swap, free_swap, available_mem, used_mem, used_mem_perc }
+ "EWW_RAM" [2] => || Ok(DynVal::from(get_ram())),
+
+@@ -42,7 +42,7 @@ define_builtin_vars! {
+ // @prop { <mount_point>: { name, total, free, used, used_perc } }
+ "EWW_DISK" [2] => || Ok(DynVal::from(get_disks())),
+
+- // @desc EWW_BATTERY - Battery capacity in procent of the main battery
++ // @desc EWW_BATTERY - Battery capacity in percent of the main battery
+ // @prop { <name>: { capacity, status } }
+ "EWW_BATTERY" [2] => || Ok(DynVal::from(
+ match get_battery_capacity() {
+diff --git a/crates/eww/src/config/system_stats.rs b/crates/eww/src/config/system_stats.rs
+index 995d7ad..787b3de 100644
+--- a/crates/eww/src/config/system_stats.rs
++++ b/crates/eww/src/config/system_stats.rs
+@@ -202,8 +202,54 @@ pub fn get_battery_capacity() -> Result<String> {
+ Ok(serde_json::to_string(&(Data { batteries, total_avg: (current / total) * 100_f64 })).unwrap())
+ }
+
++#[cfg(any(target_os = "netbsd", target_os = "freebsd", target_os = "openbsd"))]
++pub fn get_battery_capacity() -> Result<String> {
++ let batteries = String::from_utf8(
++ // I have only tested `apm` on FreeBSD, but it *should* work on all of the listed targets,
++ // based on what I can tell from their online man pages.
++ std::process::Command::new("apm")
++ .output()
++ .context("\nError while getting the battery values on bsd, with `apm`: ")?
++ .stdout,
++ )?;
++
++ // `apm` output should look something like this:
++ // $ apm
++ // ...
++ // Remaining battery life: 87%
++ // Remaining battery time: unknown
++ // Number of batteries: 1
++ // Battery 0
++ // Battery Status: charging
++ // Remaining battery life: 87%
++ // Remaining battery time: unknown
++ // ...
++ // last 4 lines are repeated for each battery.
++ // see also:
++ // https://www.freebsd.org/cgi/man.cgi?query=apm&manpath=FreeBSD+13.1-RELEASE+and+Ports
++ // https://man.openbsd.org/amd64/apm.8
++ // https://man.netbsd.org/apm.8
++ let mut json = String::from('{');
++ let re_total = regex!(r"(?m)^Remaining battery life: (\d+)%");
++ let re_single = regex!(r"(?sm)^Battery (\d+):.*?Status: (\w+).*?(\d+)%");
++ for bat in re_single.captures_iter(&batteries) {
++ json.push_str(&format!(
++ r#""BAT{}": {{ "status": "{}", "capacity": {} }}, "#,
++ bat.get(1).unwrap().as_str(),
++ bat.get(2).unwrap().as_str(),
++ bat.get(3).unwrap().as_str(),
++ ))
++ }
++
++ json.push_str(&format!(r#""total_avg": {}}}"#, re_total.captures(&batteries).unwrap().get(1).unwrap().as_str()));
++ Ok(json)
++}
++
+ #[cfg(not(target_os = "macos"))]
+ #[cfg(not(target_os = "linux"))]
++#[cfg(not(target_os = "netbsd"))]
++#[cfg(not(target_os = "freebsd"))]
++#[cfg(not(target_os = "openbsd"))]
+ pub fn get_battery_capacity() -> Result<String> {
+ Err(anyhow::anyhow!("Eww doesn't support your OS for getting the battery capacity"))
+ }
+@@ -212,7 +258,6 @@ pub fn net() -> String {
+ let (ref mut last_refresh, ref mut networks) = &mut *NETWORKS.lock().unwrap();
+
+ networks.refresh_list();
+- networks.refresh();
+ let elapsed = last_refresh.next_refresh();
+
+ networks
+diff --git a/crates/eww/src/display_backend.rs b/crates/eww/src/display_backend.rs
+index d416166..fe80dcb 100644
+--- a/crates/eww/src/display_backend.rs
++++ b/crates/eww/src/display_backend.rs
+@@ -1,5 +1,7 @@
+ use crate::{widgets::window::Window, window_initiator::WindowInitiator};
+
++use gtk::gdk;
++
+ #[cfg(feature = "wayland")]
+ pub use platform_wayland::WaylandBackend;
+
+@@ -8,6 +10,7 @@ pub use platform_x11::{set_xprops, X11Backend};
+
+ pub trait DisplayBackend: Send + Sync + 'static {
+ const IS_X11: bool;
++ const IS_WAYLAND: bool;
+
+ fn initialize_window(window_init: &WindowInitiator, monitor: gdk::Rectangle, x: i32, y: i32) -> Option<Window>;
+ }
+@@ -16,6 +19,7 @@ pub struct NoBackend;
+
+ impl DisplayBackend for NoBackend {
+ const IS_X11: bool = false;
++ const IS_WAYLAND: bool = false;
+
+ fn initialize_window(_window_init: &WindowInitiator, _monitor: gdk::Rectangle, x: i32, y: i32) -> Option<Window> {
+ Some(Window::new(gtk::WindowType::Toplevel, x, y))
+@@ -25,7 +29,9 @@ impl DisplayBackend for NoBackend {
+ #[cfg(feature = "wayland")]
+ mod platform_wayland {
+ use crate::{widgets::window::Window, window_initiator::WindowInitiator};
++ use gtk::gdk;
+ use gtk::prelude::*;
++ use gtk_layer_shell::LayerShell;
+ use yuck::config::{window_definition::WindowStacking, window_geometry::AnchorAlignment};
+
+ use super::DisplayBackend;
+@@ -34,16 +40,17 @@ mod platform_wayland {
+
+ impl DisplayBackend for WaylandBackend {
+ const IS_X11: bool = false;
++ const IS_WAYLAND: bool = true;
+
+ fn initialize_window(window_init: &WindowInitiator, monitor: gdk::Rectangle, x: i32, y: i32) -> Option<Window> {
+ let window = Window::new(gtk::WindowType::Toplevel, x, y);
+ // Initialising a layer shell surface
+- gtk_layer_shell::init_for_window(&window);
++ window.init_layer_shell();
+ // Sets the monitor where the surface is shown
+ if let Some(ident) = window_init.monitor.clone() {
+ let display = gdk::Display::default().expect("could not get default display");
+ if let Some(monitor) = crate::app::get_monitor_from_display(&display, &ident) {
+- gtk_layer_shell::set_monitor(&window, &monitor);
++ window.set_monitor(&monitor);
+ } else {
+ return None;
+ }
+@@ -52,18 +59,18 @@ mod platform_wayland {
+
+ // Sets the layer where the layer shell surface will spawn
+ match window_init.stacking {
+- WindowStacking::Foreground => gtk_layer_shell::set_layer(&window, gtk_layer_shell::Layer::Top),
+- WindowStacking::Background => gtk_layer_shell::set_layer(&window, gtk_layer_shell::Layer::Background),
+- WindowStacking::Bottom => gtk_layer_shell::set_layer(&window, gtk_layer_shell::Layer::Bottom),
+- WindowStacking::Overlay => gtk_layer_shell::set_layer(&window, gtk_layer_shell::Layer::Overlay),
++ WindowStacking::Foreground => window.set_layer(gtk_layer_shell::Layer::Top),
++ WindowStacking::Background => window.set_layer(gtk_layer_shell::Layer::Background),
++ WindowStacking::Bottom => window.set_layer(gtk_layer_shell::Layer::Bottom),
++ WindowStacking::Overlay => window.set_layer(gtk_layer_shell::Layer::Overlay),
+ }
+
+ if let Some(namespace) = &window_init.backend_options.wayland.namespace {
+- gtk_layer_shell::set_namespace(&window, namespace);
++ window.set_namespace(namespace);
+ }
+
+ // Sets the keyboard interactivity
+- gtk_layer_shell::set_keyboard_interactivity(&window, window_init.backend_options.wayland.focusable);
++ window.set_keyboard_interactivity(window_init.backend_options.wayland.focusable);
+
+ if let Some(geometry) = window_init.geometry {
+ // Positioning surface
+@@ -83,27 +90,27 @@ mod platform_wayland {
+ AnchorAlignment::END => bottom = true,
+ }
+
+- gtk_layer_shell::set_anchor(&window, gtk_layer_shell::Edge::Left, left);
+- gtk_layer_shell::set_anchor(&window, gtk_layer_shell::Edge::Right, right);
+- gtk_layer_shell::set_anchor(&window, gtk_layer_shell::Edge::Top, top);
+- gtk_layer_shell::set_anchor(&window, gtk_layer_shell::Edge::Bottom, bottom);
++ window.set_anchor(gtk_layer_shell::Edge::Left, left);
++ window.set_anchor(gtk_layer_shell::Edge::Right, right);
++ window.set_anchor(gtk_layer_shell::Edge::Top, top);
++ window.set_anchor(gtk_layer_shell::Edge::Bottom, bottom);
+
+ let xoffset = geometry.offset.x.pixels_relative_to(monitor.width());
+ let yoffset = geometry.offset.y.pixels_relative_to(monitor.height());
+
+ if left {
+- gtk_layer_shell::set_margin(&window, gtk_layer_shell::Edge::Left, xoffset);
++ window.set_layer_shell_margin(gtk_layer_shell::Edge::Left, xoffset);
+ } else {
+- gtk_layer_shell::set_margin(&window, gtk_layer_shell::Edge::Right, xoffset);
++ window.set_layer_shell_margin(gtk_layer_shell::Edge::Right, xoffset);
+ }
+ if bottom {
+- gtk_layer_shell::set_margin(&window, gtk_layer_shell::Edge::Bottom, yoffset);
++ window.set_layer_shell_margin(gtk_layer_shell::Edge::Bottom, yoffset);
+ } else {
+- gtk_layer_shell::set_margin(&window, gtk_layer_shell::Edge::Top, yoffset);
++ window.set_layer_shell_margin(gtk_layer_shell::Edge::Top, yoffset);
+ }
+ }
+ if window_init.backend_options.wayland.exclusive {
+- gtk_layer_shell::auto_exclusive_zone_enable(&window);
++ window.auto_exclusive_zone_enable();
+ }
+ Some(window)
+ }
+@@ -115,6 +122,7 @@ mod platform_x11 {
+ use crate::{widgets::window::Window, window_initiator::WindowInitiator};
+ use anyhow::{Context, Result};
+ use gdk::Monitor;
++ use gtk::gdk;
+ use gtk::{self, prelude::*};
+ use x11rb::protocol::xproto::ConnectionExt;
+
+@@ -134,6 +142,7 @@ mod platform_x11 {
+ pub struct X11Backend;
+ impl DisplayBackend for X11Backend {
+ const IS_X11: bool = true;
++ const IS_WAYLAND: bool = false;
+
+ fn initialize_window(window_init: &WindowInitiator, _monitor: gdk::Rectangle, x: i32, y: i32) -> Option<Window> {
+ let window_type =
+diff --git a/crates/eww/src/geometry.rs b/crates/eww/src/geometry.rs
+index bde5180..efe6352 100644
+--- a/crates/eww/src/geometry.rs
++++ b/crates/eww/src/geometry.rs
+@@ -1,7 +1,7 @@
+-use derive_more::*;
++use derive_more::{Debug, *};
+
+ #[derive(Debug, Copy, Clone, Eq, PartialEq, Display)]
+-#[display(fmt = ".x*.y:.width*.height")]
++#[display(".x*.y:.width*.height")]
+ pub struct Rect {
+ pub x: i32,
+ pub y: i32,
+diff --git a/crates/eww/src/main.rs b/crates/eww/src/main.rs
+index 0db2b97..853a8fb 100644
+--- a/crates/eww/src/main.rs
++++ b/crates/eww/src/main.rs
+@@ -53,28 +53,31 @@ fn main() {
+ return;
+ }
+
++ let detected_wayland = detect_wayland();
+ #[allow(unused)]
+- let use_wayland = opts.force_wayland || detect_wayland();
++ let use_wayland = opts.force_wayland || detected_wayland;
+ #[cfg(all(feature = "wayland", feature = "x11"))]
+ let result = if use_wayland {
+- run(opts, eww_binary_name, display_backend::WaylandBackend)
++ log::debug!("Running on wayland. force_wayland={}, detected_wayland={}", opts.force_wayland, detected_wayland);
++ run::<display_backend::WaylandBackend>(opts, eww_binary_name)
+ } else {
+- run(opts, eww_binary_name, display_backend::X11Backend)
++ log::debug!("Running on X11. force_wayland={}, detected_wayland={}", opts.force_wayland, detected_wayland);
++ run::<display_backend::X11Backend>(opts, eww_binary_name)
+ };
+
+ #[cfg(all(not(feature = "wayland"), feature = "x11"))]
+ let result = {
+ if use_wayland {
+- log::warn!("Eww compiled without wayland support. falling back to X11, eventhough wayland was requested.");
++ log::warn!("Eww compiled without wayland support. Falling back to X11, eventhough wayland was requested.");
+ }
+- run(opts, eww_binary_name, display_backend::X11Backend)
++ run::<display_backend::X11Backend>(opts, eww_binary_name)
+ };
+
+ #[cfg(all(feature = "wayland", not(feature = "x11")))]
+- let result = run(opts, eww_binary_name, display_backend::WaylandBackend);
++ let result = run::<display_backend::WaylandBackend>(opts, eww_binary_name);
+
+ #[cfg(not(any(feature = "wayland", feature = "x11")))]
+- let result = run(opts, eww_binary_name, display_backend::NoBackend);
++ let result = run::<display_backend::NoBackend>(opts, eww_binary_name);
+
+ if let Err(err) = result {
+ error_handling_ctx::print_error(err);
+@@ -88,7 +91,7 @@ fn detect_wayland() -> bool {
+ session_type.contains("wayland") || (!wayland_display.is_empty() && !session_type.contains("x11"))
+ }
+
+-fn run<B: DisplayBackend>(opts: opts::Opt, eww_binary_name: String, display_backend: B) -> Result<()> {
++fn run<B: DisplayBackend>(opts: opts::Opt, eww_binary_name: String) -> Result<()> {
+ let paths = opts
+ .config_path
+ .map(EwwPaths::from_config_dir)
+@@ -128,7 +131,7 @@ fn run<B: DisplayBackend>(opts: opts::Opt, eww_binary_name: String, display_back
+ if !opts.show_logs {
+ println!("Run `{} logs` to see any errors while editing your configuration.", eww_binary_name);
+ }
+- let fork_result = server::initialize_server(paths.clone(), None, display_backend, !opts.no_daemonize)?;
++ let fork_result = server::initialize_server::<B>(paths.clone(), None, !opts.no_daemonize)?;
+ opts.no_daemonize || fork_result == ForkResult::Parent
+ }
+
+@@ -160,7 +163,7 @@ fn run<B: DisplayBackend>(opts: opts::Opt, eww_binary_name: String, display_back
+
+ let (command, response_recv) = action.into_daemon_command();
+ // start the daemon and give it the command
+- let fork_result = server::initialize_server(paths.clone(), Some(command), display_backend, true)?;
++ let fork_result = server::initialize_server::<B>(paths.clone(), Some(command), true)?;
+ let is_parent = fork_result == ForkResult::Parent;
+ if let (Some(recv), true) = (response_recv, is_parent) {
+ listen_for_daemon_response(recv);
+diff --git a/crates/eww/src/server.rs b/crates/eww/src/server.rs
+index 50b24b2..8e22d3f 100644
+--- a/crates/eww/src/server.rs
++++ b/crates/eww/src/server.rs
+@@ -1,5 +1,5 @@
+ use crate::{
+- app::{self, DaemonCommand},
++ app::{self, App, DaemonCommand},
+ config, daemon_response,
+ display_backend::DisplayBackend,
+ error_handling_ctx, ipc_server, script_var_handler,
+@@ -12,6 +12,7 @@ use std::{
+ cell::RefCell,
+ collections::{HashMap, HashSet},
+ io::Write,
++ marker::PhantomData,
+ os::unix::io::AsRawFd,
+ path::Path,
+ rc::Rc,
+@@ -22,7 +23,6 @@ use tokio::sync::mpsc::*;
+ pub fn initialize_server<B: DisplayBackend>(
+ paths: EwwPaths,
+ action: Option<DaemonCommand>,
+- display_backend: B,
+ should_daemonize: bool,
+ ) -> Result<ForkResult> {
+ let (ui_send, mut ui_recv) = tokio::sync::mpsc::unbounded_channel();
+@@ -57,7 +57,7 @@ pub fn initialize_server<B: DisplayBackend>(
+ ┏━━━━━━━━━━━━━━━━━━━━━━━┓
+ ┃Initializing eww daemon┃
+ ┗━━━━━━━━━━━━━━━━━━━━━━━┛
+- "#
++"#
+ );
+
+ simple_signal::set_handler(&[simple_signal::Signal::Int, simple_signal::Signal::Term], move |_| {
+@@ -68,6 +68,9 @@ pub fn initialize_server<B: DisplayBackend>(
+ }
+ });
+
++ if B::IS_WAYLAND {
++ std::env::set_var("GDK_BACKEND", "wayland")
++ }
+ gtk::init()?;
+
+ log::debug!("Initializing script var handler");
+@@ -75,8 +78,7 @@ pub fn initialize_server<B: DisplayBackend>(
+
+ let (scope_graph_evt_send, mut scope_graph_evt_recv) = tokio::sync::mpsc::unbounded_channel();
+
+- let mut app = app::App {
+- display_backend,
++ let mut app: App<B> = app::App {
+ scope_graph: Rc::new(RefCell::new(ScopeGraph::from_global_vars(
+ eww_config.generate_initial_state()?,
+ scope_graph_evt_send,
+@@ -90,9 +92,10 @@ pub fn initialize_server<B: DisplayBackend>(
+ app_evt_send: ui_send.clone(),
+ window_close_timer_abort_senders: HashMap::new(),
+ paths,
++ phantom: PhantomData,
+ };
+
+- if let Some(screen) = gdk::Screen::default() {
++ if let Some(screen) = gtk::gdk::Screen::default() {
+ gtk::StyleContext::add_provider_for_screen(&screen, &app.css_provider, gtk::STYLE_PROVIDER_PRIORITY_APPLICATION);
+ }
+
+@@ -105,7 +108,7 @@ pub fn initialize_server<B: DisplayBackend>(
+ // initialize all the handlers and tasks running asyncronously
+ let tokio_handle = init_async_part(app.paths.clone(), ui_send);
+
+- glib::MainContext::default().spawn_local(async move {
++ gtk::glib::MainContext::default().spawn_local(async move {
+ // if an action was given to the daemon initially, execute it first.
+ if let Some(action) = action {
+ app.handle_command(action);
+diff --git a/crates/eww/src/widgets/build_widget.rs b/crates/eww/src/widgets/build_widget.rs
+index c3a1899..23e76ee 100644
+--- a/crates/eww/src/widgets/build_widget.rs
++++ b/crates/eww/src/widgets/build_widget.rs
+@@ -1,8 +1,8 @@
+ use anyhow::{Context, Result};
+ use codespan_reporting::diagnostic::Severity;
+ use eww_shared_util::{AttrName, Spanned};
+-use gdk::prelude::Cast;
+ use gtk::{
++ gdk::prelude::Cast,
+ prelude::{BoxExt, ContainerExt, WidgetExt},
+ Orientation,
+ };
+diff --git a/crates/eww/src/widgets/circular_progressbar.rs b/crates/eww/src/widgets/circular_progressbar.rs
+index 76861af..9e1baf6 100644
+--- a/crates/eww/src/widgets/circular_progressbar.rs
++++ b/crates/eww/src/widgets/circular_progressbar.rs
+@@ -1,7 +1,6 @@
+ use anyhow::{anyhow, Result};
+-use glib::{object_subclass, prelude::*, wrapper};
+-use glib_macros::Properties;
+-use gtk::{prelude::*, subclass::prelude::*};
++use gtk::glib::{self, object_subclass, prelude::*, wrapper, Properties};
++use gtk::{cairo, gdk, prelude::*, subclass::prelude::*};
+ use std::cell::RefCell;
+
+ use crate::error_handling_ctx;
+@@ -154,7 +153,7 @@ impl WidgetImpl for CircProgPriv {
+ self.preferred_height()
+ }
+
+- fn draw(&self, cr: &cairo::Context) -> Inhibit {
++ fn draw(&self, cr: &cairo::Context) -> glib::Propagation {
+ let res: Result<()> = (|| {
+ let value = *self.value.borrow();
+ let start_at = *self.start_at.borrow();
+@@ -226,7 +225,7 @@ impl WidgetImpl for CircProgPriv {
+ error_handling_ctx::print_error(error)
+ };
+
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }
+ }
+
+diff --git a/crates/eww/src/widgets/graph.rs b/crates/eww/src/widgets/graph.rs
+index a3a7713..0d5f46f 100644
+--- a/crates/eww/src/widgets/graph.rs
++++ b/crates/eww/src/widgets/graph.rs
+@@ -2,9 +2,8 @@ use std::{cell::RefCell, collections::VecDeque};
+ // https://www.figuiere.net/technotes/notes/tn002/
+ // https://github.com/gtk-rs/examples/blob/master/src/bin/listbox_model.rs
+ use anyhow::{anyhow, Result};
+-use glib::{object_subclass, wrapper};
+-use glib_macros::Properties;
+-use gtk::{prelude::*, subclass::prelude::*};
++use gtk::glib::{self, object_subclass, wrapper, Properties};
++use gtk::{cairo, gdk, prelude::*, subclass::prelude::*};
+
+ use crate::error_handling_ctx;
+
+@@ -39,6 +38,13 @@ pub struct GraphPriv {
+ #[property(get, set, nick = "Time Range", blurb = "The Time Range", minimum = 0u64, maximum = u64::MAX, default = 10u64)]
+ time_range: RefCell<u64>,
+
++ #[property(get, set, nick = "Flip X", blurb = "Flip the x axis", default = true)]
++ flip_x: RefCell<bool>,
++ #[property(get, set, nick = "Flip Y", blurb = "Flip the y axis", default = true)]
++ flip_y: RefCell<bool>,
++ #[property(get, set, nick = "Vertical", blurb = "Exchange the x and y axes", default = false)]
++ vertical: RefCell<bool>,
++
+ history: RefCell<VecDeque<(std::time::Instant, f64)>>,
+ extra_point: RefCell<Option<(std::time::Instant, f64)>>,
+ last_updated_at: RefCell<std::time::Instant>,
+@@ -54,6 +60,9 @@ impl Default for GraphPriv {
+ max: RefCell::new(100.0),
+ dynamic: RefCell::new(true),
+ time_range: RefCell::new(10),
++ flip_x: RefCell::new(true),
++ flip_y: RefCell::new(true),
++ vertical: RefCell::new(false),
+ history: RefCell::new(VecDeque::new()),
+ extra_point: RefCell::new(None),
+ last_updated_at: RefCell::new(std::time::Instant::now()),
+@@ -78,6 +87,16 @@ impl GraphPriv {
+ }
+ history.push_back(v);
+ }
++ /**
++ * Receives normalized (0-1) coordinates `x` and `y` and convert them to the
++ * point on the widget.
++ */
++ fn value_to_point(&self, width: f64, height: f64, x: f64, y: f64) -> (f64, f64) {
++ let x = if *self.flip_x.borrow() { 1.0 - x } else { x };
++ let y = if *self.flip_y.borrow() { 1.0 - y } else { y };
++ let (x, y) = if *self.vertical.borrow() { (y, x) } else { (x, y) };
++ (width * x, height * y)
++ }
+ }
+
+ impl ObjectImpl for GraphPriv {
+@@ -111,6 +130,15 @@ impl ObjectImpl for GraphPriv {
+ "line-style" => {
+ self.line_style.replace(value.get().unwrap());
+ }
++ "flip-x" => {
++ self.flip_x.replace(value.get().unwrap());
++ }
++ "flip-y" => {
++ self.flip_y.replace(value.get().unwrap());
++ }
++ "vertical" => {
++ self.vertical.replace(value.get().unwrap());
++ }
+ x => panic!("Tried to set inexistant property of Graph: {}", x,),
+ }
+ }
+@@ -170,7 +198,7 @@ impl WidgetImpl for GraphPriv {
+ (width, width)
+ }
+
+- fn draw(&self, cr: &cairo::Context) -> Inhibit {
++ fn draw(&self, cr: &cairo::Context) -> glib::Propagation {
+ let res: Result<()> = (|| {
+ let history = &*self.history.borrow();
+ let extra_point = *self.extra_point.borrow();
+@@ -215,18 +243,15 @@ impl WidgetImpl for GraphPriv {
+ .iter()
+ .map(|(instant, value)| {
+ let t = last_updated_at.duration_since(*instant).as_millis() as f64;
+- let x = width * (1.0 - (t / time_range));
+- let y = height * (1.0 - ((value - min) / value_range));
+- (x, y)
++ self.value_to_point(width, height, t / time_range, (value - min) / value_range)
+ })
+ .collect::<VecDeque<(f64, f64)>>();
+
+ // Aad an extra point outside of the graph to extend the line to the left
+ if let Some((instant, value)) = extra_point {
+ let t = last_updated_at.duration_since(instant).as_millis() as f64;
+- let x = -width * ((t - time_range) / time_range);
+- let y = height * (1.0 - ((value - min) / value_range));
+- points.push_front((x, y));
++ let (x, y) = self.value_to_point(width, height, (t - time_range) / time_range, (value - min) / value_range);
++ points.push_front(if *self.vertical.borrow() { (x, -y) } else { (-x, y) });
+ }
+ points
+ };
+@@ -276,7 +301,7 @@ impl WidgetImpl for GraphPriv {
+ error_handling_ctx::print_error(error)
+ };
+
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }
+ }
+
+diff --git a/crates/eww/src/widgets/systray.rs b/crates/eww/src/widgets/systray.rs
+index feab47e..bfd0aa8 100644
+--- a/crates/eww/src/widgets/systray.rs
++++ b/crates/eww/src/widgets/systray.rs
+@@ -1,7 +1,11 @@
+ use crate::widgets::window::Window;
+ use futures::StreamExt;
+-use gtk::{cairo::Surface, gdk::ffi::gdk_cairo_surface_create_from_pixbuf, prelude::*};
+-use notifier_host;
++use gtk::{
++ cairo::Surface,
++ gdk::{self, ffi::gdk_cairo_surface_create_from_pixbuf, NotifyType},
++ glib,
++ prelude::*,
++};
+ use std::{cell::RefCell, future::Future, rc::Rc};
+
+ // DBus state shared between systray instances, to avoid creating too many connections etc.
+@@ -105,6 +109,7 @@ impl notifier_host::Host for Tray {
+ fn remove_item(&mut self, id: &str) {
+ if let Some(item) = self.items.get(id) {
+ self.container.remove(&item.widget);
++ self.items.remove(id);
+ } else {
+ log::warn!("Tried to remove nonexistent item {:?} from systray", id);
+ }
+@@ -130,11 +135,27 @@ impl Drop for Item {
+
+ impl Item {
+ fn new(id: String, item: notifier_host::Item, icon_size: tokio::sync::watch::Receiver<i32>) -> Self {
+- let widget = gtk::EventBox::new();
+- let out_widget = widget.clone(); // copy so we can return it
++ let gtk_widget = gtk::EventBox::new();
++
++ // Support :hover selector
++ gtk_widget.connect_enter_notify_event(|gtk_widget, evt| {
++ if evt.detail() != NotifyType::Inferior {
++ gtk_widget.clone().set_state_flags(gtk::StateFlags::PRELIGHT, false);
++ }
++ glib::Propagation::Proceed
++ });
++
++ gtk_widget.connect_leave_notify_event(|gtk_widget, evt| {
++ if evt.detail() != NotifyType::Inferior {
++ gtk_widget.clone().unset_state_flags(gtk::StateFlags::PRELIGHT);
++ }
++ glib::Propagation::Proceed
++ });
++
++ let out_widget = gtk_widget.clone(); // copy so we can return it
+
+ let task = glib::MainContext::default().spawn_local(async move {
+- if let Err(e) = Item::maintain(widget.clone(), item, icon_size).await {
++ if let Err(e) = Item::maintain(gtk_widget.clone(), item, icon_size).await {
+ log::error!("error for systray item {}: {}", id, e);
+ }
+ });
+@@ -213,7 +234,7 @@ impl Item {
+ if let Err(result) = result {
+ log::error!("failed to handle mouse click {}: {}", evt.button(), result);
+ }
+- gtk::Inhibit(true)
++ glib::Propagation::Stop
+ }));
+
+ // updates
+diff --git a/crates/eww/src/widgets/transform.rs b/crates/eww/src/widgets/transform.rs
+index faa9aa4..5e184b6 100644
+--- a/crates/eww/src/widgets/transform.rs
++++ b/crates/eww/src/widgets/transform.rs
+@@ -1,6 +1,5 @@
+ use anyhow::{anyhow, Result};
+-use glib::{object_subclass, wrapper};
+-use glib_macros::Properties;
++use gtk::glib::{self, object_subclass, wrapper, Properties};
+ use gtk::{prelude::*, subclass::prelude::*};
+ use std::{cell::RefCell, str::FromStr};
+ use yuck::value::NumWithUnit;
+@@ -18,6 +17,12 @@ pub struct TransformPriv {
+ #[property(get, set, nick = "Rotate", blurb = "The Rotation", minimum = f64::MIN, maximum = f64::MAX, default = 0f64)]
+ rotate: RefCell<f64>,
+
++ #[property(get, set, nick = "Transform-Origin X", blurb = "X coordinate (%/px) for the Transform-Origin", default = None)]
++ transform_origin_x: RefCell<Option<String>>,
++
++ #[property(get, set, nick = "Transform-Origin Y", blurb = "Y coordinate (%/px) for the Transform-Origin", default = None)]
++ transform_origin_y: RefCell<Option<String>>,
++
+ #[property(get, set, nick = "Translate x", blurb = "The X Translation", default = None)]
+ translate_x: RefCell<Option<String>>,
+
+@@ -38,6 +43,8 @@ impl Default for TransformPriv {
+ fn default() -> Self {
+ TransformPriv {
+ rotate: RefCell::new(0.0),
++ transform_origin_x: RefCell::new(None),
++ transform_origin_y: RefCell::new(None),
+ translate_x: RefCell::new(None),
+ translate_y: RefCell::new(None),
+ scale_x: RefCell::new(None),
+@@ -58,6 +65,14 @@ impl ObjectImpl for TransformPriv {
+ self.rotate.replace(value.get().unwrap());
+ self.obj().queue_draw(); // Queue a draw call with the updated value
+ }
++ "transform-origin-x" => {
++ self.transform_origin_x.replace(value.get().unwrap());
++ self.obj().queue_draw(); // Queue a draw call with the updated value
++ }
++ "transform-origin-y" => {
++ self.transform_origin_y.replace(value.get().unwrap());
++ self.obj().queue_draw(); // Queue a draw call with the updated value
++ }
+ "translate-x" => {
+ self.translate_x.replace(value.get().unwrap());
+ self.obj().queue_draw(); // Queue a draw call with the updated value
+@@ -121,7 +136,7 @@ impl ContainerImpl for TransformPriv {
+
+ impl BinImpl for TransformPriv {}
+ impl WidgetImpl for TransformPriv {
+- fn draw(&self, cr: &cairo::Context) -> Inhibit {
++ fn draw(&self, cr: >k::cairo::Context) -> glib::Propagation {
+ let res: Result<()> = (|| {
+ let rotate = *self.rotate.borrow();
+ let total_width = self.obj().allocated_width() as f64;
+@@ -129,6 +144,15 @@ impl WidgetImpl for TransformPriv {
+
+ cr.save()?;
+
++ let transform_origin_x = match &*self.transform_origin_x.borrow() {
++ Some(rcx) => NumWithUnit::from_str(rcx)?.pixels_relative_to(total_width as i32) as f64,
++ None => 0.0,
++ };
++ let transform_origin_y = match &*self.transform_origin_y.borrow() {
++ Some(rcy) => NumWithUnit::from_str(rcy)?.pixels_relative_to(total_height as i32) as f64,
++ None => 0.0,
++ };
++
+ let translate_x = match &*self.translate_x.borrow() {
+ Some(tx) => NumWithUnit::from_str(tx)?.pixels_relative_to(total_width as i32) as f64,
+ None => 0.0,
+@@ -149,9 +173,10 @@ impl WidgetImpl for TransformPriv {
+ None => 1.0,
+ };
+
+- cr.scale(scale_x, scale_y);
++ cr.translate(transform_origin_x, transform_origin_y);
+ cr.rotate(perc_to_rad(rotate));
+- cr.translate(translate_x, translate_y);
++ cr.translate(translate_x - transform_origin_x, translate_y - transform_origin_y);
++ cr.scale(scale_x, scale_y);
+
+ // Children widget
+ if let Some(child) = &*self.content.borrow() {
+@@ -166,7 +191,7 @@ impl WidgetImpl for TransformPriv {
+ error_handling_ctx::print_error(error)
+ };
+
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }
+ }
+
+diff --git a/crates/eww/src/widgets/widget_definitions.rs b/crates/eww/src/widgets/widget_definitions.rs
+index 696a5bf..0fb88f1 100644
+--- a/crates/eww/src/widgets/widget_definitions.rs
++++ b/crates/eww/src/widgets/widget_definitions.rs
+@@ -8,10 +8,11 @@ use crate::{
+ use anyhow::{anyhow, Context, Result};
+ use codespan_reporting::diagnostic::Severity;
+ use eww_shared_util::Spanned;
+-use gdk::{ModifierType, NotifyType};
+
++use gdk::{ModifierType, NotifyType};
+ use glib::translate::FromGlib;
+ use gtk::{self, glib, prelude::*, DestDefaults, TargetEntry, TargetList};
++use gtk::{gdk, pango};
+ use itertools::Itertools;
+ use once_cell::sync::Lazy;
+
+@@ -208,10 +209,10 @@ pub(super) fn resolve_widget_attrs(bargs: &mut BuilderArgs, gtk_widget: >k::Wi
+ prop(visible: as_bool = true) {
+ if visible { gtk_widget.show(); } else { gtk_widget.hide(); }
+ },
+- // @prop style - inline css style applied to the widget
++ // @prop style - inline scss style applied to the widget
+ prop(style: as_string) {
+ gtk_widget.reset_style();
+- css_provider.load_from_data(format!("* {{ {} }}", style).as_bytes())?;
++ css_provider.load_from_data(grass::from_string(format!("* {{ {} }}", style), &grass::Options::default())?.as_bytes())?;
+ gtk_widget.style_context().add_provider(&css_provider, gtk::STYLE_PROVIDER_PRIORITY_APPLICATION)
+ },
+ // @prop css - scss code applied to the widget, i.e.: `button {color: red;}`
+@@ -232,11 +233,11 @@ pub(super) fn resolve_range_attrs(bargs: &mut BuilderArgs, gtk_widget: >k::Ran
+ let is_being_dragged = Rc::new(RefCell::new(false));
+ gtk_widget.connect_button_press_event(glib::clone!(@strong is_being_dragged => move |_, _| {
+ *is_being_dragged.borrow_mut() = true;
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }));
+ gtk_widget.connect_button_release_event(glib::clone!(@strong is_being_dragged => move |_, _| {
+ *is_being_dragged.borrow_mut() = false;
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }));
+
+ // We keep track of the last value that has been set via gtk_widget.set_value (by a change in the value property).
+@@ -314,12 +315,46 @@ const WIDGET_NAME_EXPANDER: &str = "expander";
+ /// @desc A widget that can expand and collapse, showing/hiding it's children.
+ fn build_gtk_expander(bargs: &mut BuilderArgs) -> Result<gtk::Expander> {
+ let gtk_widget = gtk::Expander::new(None);
++
++ match bargs.widget_use.children.len().cmp(&1) {
++ Ordering::Less => {
++ return Err(DiagError(gen_diagnostic!("expander must contain exactly one element", bargs.widget_use.span)).into());
++ }
++ Ordering::Greater => {
++ let (_, additional_children) = bargs.widget_use.children.split_at(1);
++ // we know that there is more than one child, so unwrapping on first and last here is fine.
++ let first_span = additional_children.first().unwrap().span();
++ let last_span = additional_children.last().unwrap().span();
++ return Err(DiagError(gen_diagnostic!(
++ "expander must contain exactly one element, but got more",
++ first_span.to(last_span)
++ ))
++ .into());
++ }
++ Ordering::Equal => {
++ let mut children = bargs.widget_use.children.iter().map(|child| {
++ build_gtk_widget(
++ bargs.scope_graph,
++ bargs.widget_defs.clone(),
++ bargs.calling_scope,
++ child.clone(),
++ bargs.custom_widget_invocation.clone(),
++ )
++ });
++ // we have exactly one child, we can unwrap
++ let child = children.next().unwrap()?;
++ gtk_widget.add(&child);
++ child.show();
++ }
++ }
++
+ def_widget!(bargs, _g, gtk_widget, {
+ // @prop name - name of the expander
+- prop(name: as_string) {gtk_widget.set_label(Some(&name));},
++ prop(name: as_string) { gtk_widget.set_label(Some(&name)); },
+ // @prop expanded - sets if the tree is expanded
+ prop(expanded: as_bool) { gtk_widget.set_expanded(expanded); }
+ });
++
+ Ok(gtk_widget)
+ }
+
+@@ -507,7 +542,7 @@ fn build_gtk_button(bargs: &mut BuilderArgs) -> Result<gtk::Button> {
+ 3 => run_command(timeout, &onrightclick, &[] as &[&str]),
+ _ => {},
+ }
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }));
+ }
+
+@@ -536,12 +571,35 @@ fn build_gtk_image(bargs: &mut BuilderArgs) -> Result<gtk::Image> {
+ // @prop path - path to the image file
+ // @prop image-width - width of the image
+ // @prop image-height - height of the image
+- prop(path: as_string, image_width: as_i32 = -1, image_height: as_i32 = -1) {
++ // @prop preserve-aspect-ratio - whether to keep the aspect ratio when resizing an image. Default: true, false doesn't work for all image types
++ // @prop fill-svg - sets the color of svg images
++ prop(path: as_string, image_width: as_i32 = -1, image_height: as_i32 = -1, preserve_aspect_ratio: as_bool = true, fill_svg: as_string = "") {
++ if !path.ends_with(".svg") && !fill_svg.is_empty() {
++ log::warn!("Fill attribute ignored, file is not an svg image");
++ }
++
+ if path.ends_with(".gif") {
+ let pixbuf_animation = gtk::gdk_pixbuf::PixbufAnimation::from_file(std::path::PathBuf::from(path))?;
+ gtk_widget.set_from_animation(&pixbuf_animation);
+ } else {
+- let pixbuf = gtk::gdk_pixbuf::Pixbuf::from_file_at_size(std::path::PathBuf::from(path), image_width, image_height)?;
++ let pixbuf;
++ // populate the pixel buffer
++ if path.ends_with(".svg") && !fill_svg.is_empty() {
++ let svg_data = std::fs::read_to_string(std::path::PathBuf::from(path.clone()))?;
++ // The fastest way to add/change fill color
++ let svg_data = if svg_data.contains("fill=") {
++ let reg = regex::Regex::new(r#"fill="[^"]*""#)?;
++ reg.replace(&svg_data, &format!("fill=\"{}\"", fill_svg))
++ } else {
++ let reg = regex::Regex::new(r"<svg")?;
++ reg.replace(&svg_data, &format!("<svg fill=\"{}\"", fill_svg))
++ };
++ let stream = gtk::gio::MemoryInputStream::from_bytes(>k::glib::Bytes::from(svg_data.as_bytes()));
++ pixbuf = gtk::gdk_pixbuf::Pixbuf::from_stream_at_scale(&stream, image_width, image_height, preserve_aspect_ratio, None::<>k::gio::Cancellable>)?;
++ stream.close(None::<>k::gio::Cancellable>)?;
++ } else {
++ pixbuf = gtk::gdk_pixbuf::Pixbuf::from_file_at_scale(std::path::PathBuf::from(path), image_width, image_height, preserve_aspect_ratio)?;
++ }
+ gtk_widget.set_from_pixbuf(Some(&pixbuf));
+ }
+ },
+@@ -729,25 +787,25 @@ fn build_gtk_event_box(bargs: &mut BuilderArgs) -> Result<gtk::EventBox> {
+ if evt.detail() != NotifyType::Inferior {
+ gtk_widget.clone().set_state_flags(gtk::StateFlags::PRELIGHT, false);
+ }
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ });
+
+ gtk_widget.connect_leave_notify_event(|gtk_widget, evt| {
+ if evt.detail() != NotifyType::Inferior {
+ gtk_widget.clone().unset_state_flags(gtk::StateFlags::PRELIGHT);
+ }
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ });
+
+ // Support :active selector
+ gtk_widget.connect_button_press_event(|gtk_widget, _| {
+ gtk_widget.clone().set_state_flags(gtk::StateFlags::ACTIVE, false);
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ });
+
+ gtk_widget.connect_button_release_event(|gtk_widget, _| {
+ gtk_widget.clone().unset_state_flags(gtk::StateFlags::ACTIVE);
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ });
+
+ def_widget!(bargs, _g, gtk_widget, {
+@@ -761,7 +819,7 @@ fn build_gtk_event_box(bargs: &mut BuilderArgs) -> Result<gtk::EventBox> {
+ if delta != 0f64 { // Ignore the first event https://bugzilla.gnome.org/show_bug.cgi?id=675959
+ run_command(timeout, &onscroll, &[if delta < 0f64 { "up" } else { "down" }]);
+ }
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }));
+ },
+ // @prop timeout - timeout of the command. Default: "200ms"
+@@ -772,7 +830,7 @@ fn build_gtk_event_box(bargs: &mut BuilderArgs) -> Result<gtk::EventBox> {
+ if evt.detail() != NotifyType::Inferior {
+ run_command(timeout, &onhover, &[evt.position().0, evt.position().1]);
+ }
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }));
+ },
+ // @prop timeout - timeout of the command. Default: "200ms"
+@@ -783,7 +841,7 @@ fn build_gtk_event_box(bargs: &mut BuilderArgs) -> Result<gtk::EventBox> {
+ if evt.detail() != NotifyType::Inferior {
+ run_command(timeout, &onhoverlost, &[evt.position().0, evt.position().1]);
+ }
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }));
+ },
+ // @prop cursor - Cursor to show while hovering (see [gtk3-cursors](https://docs.gtk.org/gdk3/ctor.Cursor.new_from_name.html) for possible names)
+@@ -799,7 +857,7 @@ fn build_gtk_event_box(bargs: &mut BuilderArgs) -> Result<gtk::EventBox> {
+ gdk_window.set_cursor(gdk::Cursor::from_name(&display, &cursor).as_ref());
+ }
+ }
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }));
+ connect_signal_handler!(gtk_widget, gtk_widget.connect_leave_notify_event(move |widget, _evt| {
+ if _evt.detail() != NotifyType::Inferior {
+@@ -808,7 +866,7 @@ fn build_gtk_event_box(bargs: &mut BuilderArgs) -> Result<gtk::EventBox> {
+ gdk_window.set_cursor(None);
+ }
+ }
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }));
+ },
+ // @prop timeout - timeout of the command. Default: "200ms"
+@@ -878,7 +936,7 @@ fn build_gtk_event_box(bargs: &mut BuilderArgs) -> Result<gtk::EventBox> {
+ 3 => run_command(timeout, &onrightclick, &[] as &[&str]),
+ _ => {},
+ }
+- gtk::Inhibit(false)
++ glib::Propagation::Proceed
+ }));
+ }
+ });
+@@ -894,11 +952,12 @@ fn build_gtk_label(bargs: &mut BuilderArgs) -> Result<gtk::Label> {
+
+ def_widget!(bargs, _g, gtk_widget, {
+ // @prop text - the text to display
++ // @prop truncate - whether to truncate text (or pango markup). If `show-truncated` is `false`, or if `limit-width` has a value, this property has no effect and truncation is enabled.
+ // @prop limit-width - maximum count of characters to display
+ // @prop truncate-left - whether to truncate on the left side
+ // @prop show-truncated - show whether the text was truncated. Disabling it will also disable dynamic truncation (the labels won't be truncated more than `limit-width`, even if there is not enough space for them), and will completly disable truncation on pango markup.
+ // @prop unindent - whether to remove leading spaces
+- prop(text: as_string, limit_width: as_i32 = i32::MAX, truncate_left: as_bool = false, show_truncated: as_bool = true, unindent: as_bool = true) {
++ prop(text: as_string, truncate: as_bool = false, limit_width: as_i32 = i32::MAX, truncate_left: as_bool = false, show_truncated: as_bool = true, unindent: as_bool = true) {
+ let text = if show_truncated {
+ // gtk does weird thing if we set max_width_chars to i32::MAX
+ if limit_width == i32::MAX {
+@@ -906,10 +965,14 @@ fn build_gtk_label(bargs: &mut BuilderArgs) -> Result<gtk::Label> {
+ } else {
+ gtk_widget.set_max_width_chars(limit_width);
+ }
+- if truncate_left {
+- gtk_widget.set_ellipsize(pango::EllipsizeMode::Start);
++ if truncate || limit_width != i32::MAX {
++ if truncate_left {
++ gtk_widget.set_ellipsize(pango::EllipsizeMode::Start);
++ } else {
++ gtk_widget.set_ellipsize(pango::EllipsizeMode::End);
++ }
+ } else {
+- gtk_widget.set_ellipsize(pango::EllipsizeMode::End);
++ gtk_widget.set_ellipsize(pango::EllipsizeMode::None);
+ }
+
+ text
+@@ -918,7 +981,7 @@ fn build_gtk_label(bargs: &mut BuilderArgs) -> Result<gtk::Label> {
+
+ let limit_width = limit_width as usize;
+ let char_count = text.chars().count();
+- if char_count > limit_width && !show_truncated {
++ if char_count > limit_width {
+ if truncate_left {
+ text.chars().skip(char_count - limit_width).collect()
+ } else {
+@@ -934,11 +997,12 @@ fn build_gtk_label(bargs: &mut BuilderArgs) -> Result<gtk::Label> {
+ gtk_widget.set_text(&text);
+ },
+ // @prop markup - Pango markup to display
++ // @prop truncate - whether to truncate text (or pango markup). If `show-truncated` is `false`, or if `limit-width` has a value, this property has no effect and truncation is enabled.
+ // @prop limit-width - maximum count of characters to display
+ // @prop truncate-left - whether to truncate on the left side
+ // @prop show-truncated - show whether the text was truncatedd. Disabling it will also disable dynamic truncation (the labels won't be truncated more than `limit-width`, even if there is not enough space for them), and will completly disable truncation on pango markup.
+- prop(markup: as_string, limit_width: as_i32 = i32::MAX, truncate_left: as_bool = false, show_truncated: as_bool = true) {
+- if show_truncated {
++ prop(markup: as_string, truncate: as_bool = false, limit_width: as_i32 = i32::MAX, truncate_left: as_bool = false, show_truncated: as_bool = true) {
++ if (truncate || limit_width != i32::MAX) && show_truncated {
+ // gtk does weird thing if we set max_width_chars to i32::MAX
+ if limit_width == i32::MAX {
+ gtk_widget.set_max_width_chars(-1);
+@@ -1082,6 +1146,27 @@ const WIDGET_NAME_STACK: &str = "stack";
+ /// @desc A widget that displays one of its children at a time
+ fn build_gtk_stack(bargs: &mut BuilderArgs) -> Result<gtk::Stack> {
+ let gtk_widget = gtk::Stack::new();
++
++ if bargs.widget_use.children.is_empty() {
++ return Err(DiagError(gen_diagnostic!("stack must contain at least one element", bargs.widget_use.span)).into());
++ }
++
++ let children = bargs.widget_use.children.iter().map(|child| {
++ build_gtk_widget(
++ bargs.scope_graph,
++ bargs.widget_defs.clone(),
++ bargs.calling_scope,
++ child.clone(),
++ bargs.custom_widget_invocation.clone(),
++ )
++ });
++
++ for (i, child) in children.enumerate() {
++ let child = child?;
++ gtk_widget.add_named(&child, &i.to_string());
++ child.show();
++ }
++
+ def_widget!(bargs, _g, gtk_widget, {
+ // @prop selected - index of child which should be shown
+ prop(selected: as_i32) { gtk_widget.set_visible_child_name(&selected.to_string()); },
+@@ -1091,28 +1176,7 @@ fn build_gtk_stack(bargs: &mut BuilderArgs) -> Result<gtk::Stack> {
+ prop(same_size: as_bool = false) { gtk_widget.set_homogeneous(same_size); }
+ });
+
+- match bargs.widget_use.children.len().cmp(&1) {
+- Ordering::Less => {
+- Err(DiagError(gen_diagnostic!("stack must contain at least one element", bargs.widget_use.span)).into())
+- }
+- Ordering::Greater | Ordering::Equal => {
+- let children = bargs.widget_use.children.iter().map(|child| {
+- build_gtk_widget(
+- bargs.scope_graph,
+- bargs.widget_defs.clone(),
+- bargs.calling_scope,
+- child.clone(),
+- bargs.custom_widget_invocation.clone(),
+- )
+- });
+- for (i, child) in children.enumerate() {
+- let child = child?;
+- gtk_widget.add_named(&child, &i.to_string());
+- child.show();
+- }
+- Ok(gtk_widget)
+- }
+- }
++ Ok(gtk_widget)
+ }
+
+ const WIDGET_NAME_TRANSFORM: &str = "transform";
+@@ -1124,6 +1188,10 @@ fn build_transform(bargs: &mut BuilderArgs) -> Result<Transform> {
+ def_widget!(bargs, _g, w, {
+ // @prop rotate - the percentage to rotate
+ prop(rotate: as_f64) { w.set_property("rotate", rotate); },
++ // @prop transform-origin-x - x coordinate of origin of transformation (px or %)
++ prop(transform_origin_x: as_string) { w.set_property("transform-origin-x", transform_origin_x) },
++ // @prop transform-origin-y - y coordinate of origin of transformation (px or %)
++ prop(transform_origin_y: as_string) { w.set_property("transform-origin-y", transform_origin_y) },
+ // @prop translate-x - the amount to translate in the x direction (px or %)
+ prop(translate_x: as_string) { w.set_property("translate-x", translate_x); },
+ // @prop translate-y - the amount to translate in the y direction (px or %)
+@@ -1182,6 +1250,12 @@ fn build_graph(bargs: &mut BuilderArgs) -> Result<super::graph::Graph> {
+ // @prop line-style - changes the look of the edges in the graph. Values: "miter" (default), "round",
+ // "bevel"
+ prop(line_style: as_string) { w.set_property("line-style", line_style); },
++ // @prop flip-x - whether the x axis should go from high to low
++ prop(flip_x: as_bool) { w.set_property("flip-x", flip_x); },
++ // @prop flip-y - whether the y axis should go from high to low
++ prop(flip_y: as_bool) { w.set_property("flip-y", flip_y); },
++ // @prop vertical - if set to true, the x and y axes will be exchanged
++ prop(vertical: as_bool) { w.set_property("vertical", vertical); },
+ });
+ Ok(w)
+ }
+diff --git a/crates/eww/src/widgets/window.rs b/crates/eww/src/widgets/window.rs
+index 4e6c0dc..1a7b861 100644
+--- a/crates/eww/src/widgets/window.rs
++++ b/crates/eww/src/widgets/window.rs
+@@ -1,5 +1,4 @@
+-use glib::{object_subclass, wrapper};
+-use glib_macros::Properties;
++use gtk::glib::{self, object_subclass, wrapper, Properties};
+ use gtk::{prelude::*, subclass::prelude::*};
+ use std::cell::RefCell;
+
+diff --git a/crates/eww/src/window_arguments.rs b/crates/eww/src/window_arguments.rs
+index 44681e9..5a07979 100644
+--- a/crates/eww/src/window_arguments.rs
++++ b/crates/eww/src/window_arguments.rs
+@@ -59,10 +59,10 @@ impl WindowArguments {
+
+ // Ensure that the arguments passed to the window that are already interpreted by eww (id, screen)
+ // are set to the correct values
+- if expected_args.contains(&"id".to_string()) {
++ if expected_args.contains(&String::from("id")) {
+ local_variables.insert(VarName::from("id"), DynVal::from(self.instance_id.clone()));
+ }
+- if self.monitor.is_some() && expected_args.contains(&"screen".to_string()) {
++ if self.monitor.is_some() && expected_args.contains(&String::from("screen")) {
+ let mon_dyn = DynVal::from(&self.monitor.clone().unwrap());
+ local_variables.insert(VarName::from("screen"), mon_dyn);
+ }
+diff --git a/crates/eww/src/window_initiator.rs b/crates/eww/src/window_initiator.rs
+index cb2cda0..f2dc559 100644
+--- a/crates/eww/src/window_initiator.rs
++++ b/crates/eww/src/window_initiator.rs
+@@ -17,7 +17,6 @@ use crate::window_arguments::WindowArguments;
+ pub struct WindowInitiator {
+ pub backend_options: BackendWindowOptions,
+ pub geometry: Option<WindowGeometry>,
+- pub id: String,
+ pub local_variables: HashMap<VarName, DynVal>,
+ pub monitor: Option<MonitorIdentifier>,
+ pub name: String,
+@@ -37,7 +36,6 @@ impl WindowInitiator {
+ Ok(WindowInitiator {
+ backend_options: window_def.backend_options.eval(&vars)?,
+ geometry,
+- id: args.instance_id.clone(),
+ monitor,
+ name: window_def.name.clone(),
+ resizable: window_def.eval_resizable(&vars)?,
+diff --git a/crates/eww_shared_util/Cargo.toml b/crates/eww_shared_util/Cargo.toml
+index 24a9108..45d26dc 100644
+--- a/crates/eww_shared_util/Cargo.toml
++++ b/crates/eww_shared_util/Cargo.toml
+@@ -12,3 +12,4 @@ homepage = "https://github.com/elkowar/eww"
+ serde.workspace = true
+ derive_more.workspace = true
+ ref-cast.workspace = true
++chrono = { workspace = true, features = ["unstable-locales"] }
+diff --git a/crates/eww_shared_util/src/lib.rs b/crates/eww_shared_util/src/lib.rs
+index 299f994..7161120 100644
+--- a/crates/eww_shared_util/src/lib.rs
++++ b/crates/eww_shared_util/src/lib.rs
+@@ -1,6 +1,8 @@
++pub mod locale;
+ pub mod span;
+ pub mod wrappers;
+
++pub use locale::*;
+ pub use span::*;
+ pub use wrappers::*;
+
+diff --git a/crates/eww_shared_util/src/locale.rs b/crates/eww_shared_util/src/locale.rs
+new file mode 100644
+index 0000000..028e84b
+--- /dev/null
++++ b/crates/eww_shared_util/src/locale.rs
+@@ -0,0 +1,14 @@
++use chrono::Locale;
++use std::env::var;
++
++/// Returns the `Locale` enum based on the `LC_TIME` environment variable.
++/// If the environment variable is not defined or is malformed use the POSIX locale.
++pub fn get_locale() -> Locale {
++ let locale_string: String =
++ var("LC_TIME").map_or_else(|_| "C".to_string(), |v| v.split(".").next().unwrap_or("C").to_string());
++
++ match (&*locale_string).try_into() {
++ Ok(x) => x,
++ Err(_) => Locale::POSIX,
++ }
++}
+diff --git a/crates/eww_shared_util/src/wrappers.rs b/crates/eww_shared_util/src/wrappers.rs
+index ef07c79..c9beb80 100644
+--- a/crates/eww_shared_util/src/wrappers.rs
++++ b/crates/eww_shared_util/src/wrappers.rs
+@@ -1,11 +1,11 @@
+-use derive_more::*;
++use derive_more::{Debug, *};
+ use ref_cast::RefCast;
+ use serde::{Deserialize, Serialize};
+
+ /// The name of a variable
+ #[repr(transparent)]
+-#[derive(Clone, Hash, PartialEq, Eq, Serialize, Deserialize, AsRef, From, FromStr, Display, DebugCustom, RefCast)]
+-#[debug(fmt = "VarName({})", .0)]
++#[derive(Clone, Hash, PartialEq, Eq, Serialize, Deserialize, AsRef, From, FromStr, Display, Debug, RefCast)]
++#[debug("VarName({})", _0)]
+ pub struct VarName(pub String);
+
+ impl std::borrow::Borrow<str> for VarName {
+@@ -34,8 +34,8 @@ impl From<AttrName> for VarName {
+
+ /// The name of an attribute
+ #[repr(transparent)]
+-#[derive(Clone, Hash, PartialEq, Eq, Serialize, Deserialize, AsRef, From, FromStr, Display, DebugCustom, RefCast)]
+-#[debug(fmt="AttrName({})", .0)]
++#[derive(Clone, Hash, PartialEq, Eq, Serialize, Deserialize, AsRef, From, FromStr, Display, Debug, RefCast)]
++#[debug("AttrName({})", _0)]
+ pub struct AttrName(pub String);
+
+ impl AttrName {
+diff --git a/crates/notifier_host/Cargo.toml b/crates/notifier_host/Cargo.toml
+index 10a7d6c..c4fd64f 100644
+--- a/crates/notifier_host/Cargo.toml
++++ b/crates/notifier_host/Cargo.toml
+@@ -9,11 +9,10 @@ repository = "https://github.com/elkowar/eww"
+ homepage = "https://github.com/elkowar/eww"
+
+ [dependencies]
+-gtk = "0.17.1"
+-gdk = "0.17.1"
+-zbus = { version = "3.7.0", default-features = false, features = ["tokio"] }
+ dbusmenu-gtk3 = "0.1.0"
+
++gtk.workspace = true
+ log.workspace = true
+ thiserror.workspace = true
+ tokio = { workspace = true, features = ["full"] }
++zbus = { workspace = true, default-features = false, features = ["tokio"] }
+diff --git a/crates/notifier_host/src/host.rs b/crates/notifier_host/src/host.rs
+index b937395..723322e 100644
+--- a/crates/notifier_host/src/host.rs
++++ b/crates/notifier_host/src/host.rs
+@@ -88,7 +88,7 @@ pub async fn run_host(host: &mut dyn Host, snw: &proxy::StatusNotifierWatcherPro
+
+ // initial items first
+ for svc in try_!(snw.registered_status_notifier_items().await) {
+- match Item::from_address(snw.connection(), &svc).await {
++ match Item::from_address(snw.inner().connection(), &svc).await {
+ Ok(item) => {
+ item_names.insert(svc.to_owned());
+ host.add_item(&svc, item);
+@@ -110,7 +110,7 @@ pub async fn run_host(host: &mut dyn Host, snw: &proxy::StatusNotifierWatcherPro
+ if item_names.contains(svc) {
+ log::info!("Got duplicate new item: {:?}", svc);
+ } else {
+- match Item::from_address(snw.connection(), svc).await {
++ match Item::from_address(snw.inner().connection(), svc).await {
+ Ok(item) => {
+ item_names.insert(svc.to_owned());
+ host.add_item(svc, item);
+diff --git a/crates/notifier_host/src/icon.rs b/crates/notifier_host/src/icon.rs
+index 45057e4..ad6fdb1 100644
+--- a/crates/notifier_host/src/icon.rs
++++ b/crates/notifier_host/src/icon.rs
+@@ -105,7 +105,7 @@ fn icon_from_name(
+ ) -> std::result::Result<gtk::gdk_pixbuf::Pixbuf, IconError> {
+ let theme = if let Some(path) = theme_path {
+ let theme = gtk::IconTheme::new();
+- theme.prepend_search_path(&path);
++ theme.prepend_search_path(path);
+ theme
+ } else {
+ gtk::IconTheme::default().expect("Could not get default gtk theme")
+@@ -136,7 +136,7 @@ pub async fn load_icon_from_sni(
+ let icon_from_name: std::result::Result<gtk::gdk_pixbuf::Pixbuf, IconError> = (async {
+ // fetch icon name
+ let icon_name = sni.icon_name().await;
+- log::debug!("dbus: {} icon_name -> {:?}", sni.destination(), icon_name);
++ log::debug!("dbus: {} icon_name -> {:?}", sni.inner().destination(), icon_name);
+ let icon_name = match icon_name {
+ Ok(s) if s.is_empty() => return Err(IconError::NotAvailable),
+ Ok(s) => s,
+@@ -152,7 +152,7 @@ pub async fn load_icon_from_sni(
+
+ // otherwise, fetch icon theme and lookup using icon_from_name
+ let icon_theme_path = sni.icon_theme_path().await;
+- log::debug!("dbus: {} icon_theme_path -> {:?}", sni.destination(), icon_theme_path);
++ log::debug!("dbus: {} icon_theme_path -> {:?}", sni.inner().destination(), icon_theme_path);
+ let icon_theme_path = match icon_theme_path {
+ Ok(p) if p.is_empty() => None,
+ Ok(p) => Some(p),
+@@ -179,7 +179,7 @@ pub async fn load_icon_from_sni(
+ match icon_from_name {
+ Ok(p) => return Some(p), // got an icon!
+ Err(IconError::NotAvailable) => {} // this error is expected, don't log
+- Err(e) => log::warn!("failed to get icon by name for {}: {}", sni.destination(), e),
++ Err(e) => log::warn!("failed to get icon by name for {}: {}", sni.inner().destination(), e),
+ };
+
+ // Can't get it from name + theme, try the pixmap
+@@ -199,7 +199,7 @@ pub async fn load_icon_from_sni(
+ match icon_from_pixmaps {
+ Ok(p) => return Some(p),
+ Err(IconError::NotAvailable) => {}
+- Err(e) => log::warn!("failed to get icon pixmap for {}: {}", sni.destination(), e),
++ Err(e) => log::warn!("failed to get icon pixmap for {}: {}", sni.inner().destination(), e),
+ };
+
+ // Tray didn't provide a valid icon so use the default fallback one.
+diff --git a/crates/notifier_host/src/item.rs b/crates/notifier_host/src/item.rs
+index 70317eb..ad63f34 100644
+--- a/crates/notifier_host/src/item.rs
++++ b/crates/notifier_host/src/item.rs
+@@ -82,15 +82,15 @@ impl Item {
+ }
+
+ pub async fn set_menu(&mut self, widget: >k::EventBox) -> zbus::Result<()> {
+- let menu = dbusmenu_gtk3::Menu::new(self.sni.destination(), &self.sni.menu().await?);
++ let menu = dbusmenu_gtk3::Menu::new(self.sni.inner().destination(), &self.sni.menu().await?);
+ menu.set_attach_widget(Some(widget));
+ self.gtk_menu = Some(menu);
+ Ok(())
+ }
+
+- pub async fn popup_menu(&self, event: &gdk::EventButton, x: i32, y: i32) -> zbus::Result<()> {
++ pub async fn popup_menu(&self, event: >k::gdk::EventButton, x: i32, y: i32) -> zbus::Result<()> {
+ if let Some(menu) = &self.gtk_menu {
+- menu.popup_at_pointer(event.downcast_ref::<gdk::Event>());
++ menu.popup_at_pointer(event.downcast_ref::<gtk::gdk::Event>());
+ Ok(())
+ } else {
+ self.sni.context_menu(x, y).await
+diff --git a/crates/notifier_host/src/proxy/dbus_status_notifier_item.rs b/crates/notifier_host/src/proxy/dbus_status_notifier_item.rs
+index 5c57b2a..051f180 100644
+--- a/crates/notifier_host/src/proxy/dbus_status_notifier_item.rs
++++ b/crates/notifier_host/src/proxy/dbus_status_notifier_item.rs
+@@ -1,20 +1,18 @@
+-//! # DBus interface proxy for: `org.kde.StatusNotifierItem`
++//! # D-Bus interface proxy for: `org.kde.StatusNotifierItem`
+ //!
+-//! This code was generated by `zbus-xmlgen` `3.1.0` from DBus introspection data.
+-//! Source: `dbus-status-notifier-item.xml`.
++//! This code was generated by `zbus-xmlgen` `4.1.0` from D-Bus introspection data.
++//! Source: `dbus_status_notifier_item.xml`.
+ //!
+ //! You may prefer to adapt it, instead of using it verbatim.
+ //!
+-//! More information can be found in the
+-//! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html)
+-//! section of the zbus documentation.
+-
+-// suppress warning from generated code
+-#![allow(clippy::type_complexity)]
+-
+-use zbus::dbus_proxy;
+-
+-#[dbus_proxy(interface = "org.kde.StatusNotifierItem", assume_defaults = true)]
++//! More information can be found in the [Writing a client proxy] section of the zbus
++//! documentation.
++//!
++//!
++//! [Writing a client proxy]: https://dbus2.github.io/zbus/client.html
++//! [D-Bus standard interfaces]: https://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces,
++use zbus::proxy;
++#[proxy(interface = "org.kde.StatusNotifierItem", assume_defaults = true)]
+ trait StatusNotifierItem {
+ /// Activate method
+ fn activate(&self, x: i32, y: i32) -> zbus::Result<()>;
+@@ -29,86 +27,87 @@ trait StatusNotifierItem {
+ fn secondary_activate(&self, x: i32, y: i32) -> zbus::Result<()>;
+
+ /// NewAttentionIcon signal
+- #[dbus_proxy(signal)]
++ #[zbus(signal)]
+ fn new_attention_icon(&self) -> zbus::Result<()>;
+
+ /// NewIcon signal
+- #[dbus_proxy(signal)]
++ #[zbus(signal)]
+ fn new_icon(&self) -> zbus::Result<()>;
+
+ /// NewOverlayIcon signal
+- #[dbus_proxy(signal)]
++ #[zbus(signal)]
+ fn new_overlay_icon(&self) -> zbus::Result<()>;
+
+ /// NewStatus signal
+- #[dbus_proxy(signal)]
++ #[zbus(signal)]
+ fn new_status(&self, status: &str) -> zbus::Result<()>;
+
+ /// NewTitle signal
+- #[dbus_proxy(signal)]
++ #[zbus(signal)]
+ fn new_title(&self) -> zbus::Result<()>;
+
+ /// NewToolTip signal
+- #[dbus_proxy(signal)]
++ #[zbus(signal)]
+ fn new_tool_tip(&self) -> zbus::Result<()>;
+
+ /// AttentionIconName property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn attention_icon_name(&self) -> zbus::Result<String>;
+
+ /// AttentionIconPixmap property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn attention_icon_pixmap(&self) -> zbus::Result<Vec<(i32, i32, Vec<u8>)>>;
+
+ /// AttentionMovieName property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn attention_movie_name(&self) -> zbus::Result<String>;
+
+ /// Category property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn category(&self) -> zbus::Result<String>;
+
+ /// IconName property
+- #[dbus_proxy(property(emits_changed_signal = "false"))]
++ #[zbus(property)]
+ fn icon_name(&self) -> zbus::Result<String>;
+
+ /// IconPixmap property
+- #[dbus_proxy(property(emits_changed_signal = "false"))]
++ #[zbus(property)]
+ fn icon_pixmap(&self) -> zbus::Result<Vec<(i32, i32, Vec<u8>)>>;
+
+ /// IconThemePath property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn icon_theme_path(&self) -> zbus::Result<String>;
+
+ /// Id property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn id(&self) -> zbus::Result<String>;
+
+ /// ItemIsMenu property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn item_is_menu(&self) -> zbus::Result<bool>;
+
+ /// Menu property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn menu(&self) -> zbus::Result<zbus::zvariant::OwnedObjectPath>;
+
+ /// OverlayIconName property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn overlay_icon_name(&self) -> zbus::Result<String>;
+
+ /// OverlayIconPixmap property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn overlay_icon_pixmap(&self) -> zbus::Result<Vec<(i32, i32, Vec<u8>)>>;
+
+ /// Status property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn status(&self) -> zbus::Result<String>;
+
+ /// Title property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn title(&self) -> zbus::Result<String>;
+
+ /// ToolTip property
+- #[dbus_proxy(property)]
+- fn tool_tip(&self) -> zbus::Result<(String, Vec<(i32, i32, Vec<u8>)>)>;
++ #[zbus(property)]
++ #[allow(clippy::type_complexity)]
++ fn tool_tip(&self) -> zbus::Result<(String, Vec<(i32, i32, Vec<u8>)>, String, String)>;
+ }
+diff --git a/crates/notifier_host/src/proxy/dbus_status_notifier_watcher.rs b/crates/notifier_host/src/proxy/dbus_status_notifier_watcher.rs
+index 9ac2eaa..4ffb98f 100644
+--- a/crates/notifier_host/src/proxy/dbus_status_notifier_watcher.rs
++++ b/crates/notifier_host/src/proxy/dbus_status_notifier_watcher.rs
+@@ -1,17 +1,18 @@
+-//! # DBus interface proxy for: `org.kde.StatusNotifierWatcher`
++//! # D-Bus interface proxy for: `org.kde.StatusNotifierWatcher`
+ //!
+-//! This code was generated by `zbus-xmlgen` `3.1.0` from DBus introspection data.
+-//! Source: `dbus-status-notifier-watcher.xml`.
++//! This code was generated by `zbus-xmlgen` `4.1.0` from D-Bus introspection data.
++//! Source: `dbus_status_notifier_watcher.xml`.
+ //!
+ //! You may prefer to adapt it, instead of using it verbatim.
+ //!
+-//! More information can be found in the
+-//! [Writing a client proxy](https://dbus.pages.freedesktop.org/zbus/client.html)
+-//! section of the zbus documentation.
+-
+-use zbus::dbus_proxy;
+-
+-#[dbus_proxy(
++//! More information can be found in the [Writing a client proxy] section of the zbus
++//! documentation.
++//!
++//!
++//! [Writing a client proxy]: https://dbus2.github.io/zbus/client.html
++//! [D-Bus standard interfaces]: https://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces,
++use zbus::proxy;
++#[proxy(
+ default_service = "org.kde.StatusNotifierWatcher",
+ interface = "org.kde.StatusNotifierWatcher",
+ default_path = "/StatusNotifierWatcher"
+@@ -24,30 +25,30 @@ trait StatusNotifierWatcher {
+ fn register_status_notifier_item(&self, service: &str) -> zbus::Result<()>;
+
+ /// StatusNotifierHostRegistered signal
+- #[dbus_proxy(signal)]
++ #[zbus(signal)]
+ fn status_notifier_host_registered(&self) -> zbus::Result<()>;
+
+ /// StatusNotifierHostUnregistered signal
+- #[dbus_proxy(signal)]
++ #[zbus(signal)]
+ fn status_notifier_host_unregistered(&self) -> zbus::Result<()>;
+
+ /// StatusNotifierItemRegistered signal
+- #[dbus_proxy(signal)]
++ #[zbus(signal)]
+ fn status_notifier_item_registered(&self, service: &str) -> zbus::Result<()>;
+
+ /// StatusNotifierItemUnregistered signal
+- #[dbus_proxy(signal)]
++ #[zbus(signal)]
+ fn status_notifier_item_unregistered(&self, service: &str) -> zbus::Result<()>;
+
+ /// IsStatusNotifierHostRegistered property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn is_status_notifier_host_registered(&self) -> zbus::Result<bool>;
+
+ /// ProtocolVersion property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn protocol_version(&self) -> zbus::Result<i32>;
+
+ /// RegisteredStatusNotifierItems property
+- #[dbus_proxy(property)]
++ #[zbus(property)]
+ fn registered_status_notifier_items(&self) -> zbus::Result<Vec<String>>;
+ }
+diff --git a/crates/notifier_host/src/proxy/mod.rs b/crates/notifier_host/src/proxy/mod.rs
+index 8c8e9df..deb98d4 100644
+--- a/crates/notifier_host/src/proxy/mod.rs
++++ b/crates/notifier_host/src/proxy/mod.rs
+@@ -2,9 +2,15 @@
+ //!
+ //! The interface XML files were taken from
+ //! [Waybar](https://github.com/Alexays/Waybar/tree/master/protocol), and the proxies were
+-//! generated with [zbus-xmlgen](https://docs.rs/crate/zbus_xmlgen/latest) by running `zbus-xmlgen
+-//! dbus_status_notifier_item.xml` and `zbus-xmlgen dbus_status_notifier_watcher.xml`. At the
+-//! moment, `dbus_menu.xml` isn't used.
++//! generated with [zbus-xmlgen](https://docs.rs/crate/zbus_xmlgen/latest) by running
++//! `zbus-xmlgen file crates/notifier_host/src/proxy/dbus_status_notifier_item.xml` and
++//! `zbus-xmlgen file crates/notifier_host/src/proxy/dbus_status_notifier_watcher.xml`.
++//!
++//! Note that the `dbus_status_notifier_watcher.rs` file has been slightly adjusted, the
++//! default arguments to the [proxy](https://docs.rs/zbus/4.4.0/zbus/attr.proxy.html)
++//! macro need some adjusting.
++//!
++//! At the moment, `dbus_menu.xml` isn't used.
+ //!
+ //! For more information, see ["Writing a client proxy" in the zbus
+ //! tutorial](https://dbus2.github.io/zbus/).
+diff --git a/crates/notifier_host/src/watcher.rs b/crates/notifier_host/src/watcher.rs
+index a0e7c13..677e378 100644
+--- a/crates/notifier_host/src/watcher.rs
++++ b/crates/notifier_host/src/watcher.rs
+@@ -1,5 +1,5 @@
+ use crate::names;
+-use zbus::{dbus_interface, export::ordered_stream::OrderedStreamExt, Interface};
++use zbus::{export::ordered_stream::OrderedStreamExt, interface, Interface};
+
+ /// An instance of [`org.kde.StatusNotifierWatcher`]. It only tracks what tray items and trays
+ /// exist, and doesn't have any logic for displaying items (for that, see [`Host`][`crate::Host`]).
+@@ -23,7 +23,7 @@ pub struct Watcher {
+ ///
+ /// Methods and properties correspond to methods and properties on the DBus service that can be
+ /// used by others, while signals are events that we generate that other services listen to.
+-#[dbus_interface(name = "org.kde.StatusNotifierWatcher")]
++#[interface(name = "org.kde.StatusNotifierWatcher")]
+ impl Watcher {
+ /// RegisterStatusNotifierHost method
+ async fn register_status_notifier_host(
+@@ -89,15 +89,15 @@ impl Watcher {
+ }
+
+ /// StatusNotifierHostRegistered signal.
+- #[dbus_interface(signal)]
++ #[zbus(signal)]
+ async fn status_notifier_host_registered(ctxt: &zbus::SignalContext<'_>) -> zbus::Result<()>;
+
+ /// StatusNotifierHostUnregistered signal
+- #[dbus_interface(signal)]
++ #[zbus(signal)]
+ async fn status_notifier_host_unregistered(ctxt: &zbus::SignalContext<'_>) -> zbus::Result<()>;
+
+ /// IsStatusNotifierHostRegistered property
+- #[dbus_interface(property)]
++ #[zbus(property)]
+ async fn is_status_notifier_host_registered(&self) -> bool {
+ let hosts = self.hosts.lock().unwrap(); // unwrap: mutex poisoning is okay
+ !hosts.is_empty()
+@@ -159,15 +159,15 @@ impl Watcher {
+ }
+
+ /// StatusNotifierItemRegistered signal
+- #[dbus_interface(signal)]
++ #[zbus(signal)]
+ async fn status_notifier_item_registered(ctxt: &zbus::SignalContext<'_>, service: &str) -> zbus::Result<()>;
+
+ /// StatusNotifierItemUnregistered signal
+- #[dbus_interface(signal)]
++ #[zbus(signal)]
+ async fn status_notifier_item_unregistered(ctxt: &zbus::SignalContext<'_>, service: &str) -> zbus::Result<()>;
+
+ /// RegisteredStatusNotifierItems property
+- #[dbus_interface(property)]
++ #[zbus(property)]
+ async fn registered_status_notifier_items(&self) -> Vec<String> {
+ let items = self.items.lock().unwrap(); // unwrap: mutex poisoning is okay
+ items.iter().cloned().collect()
+@@ -176,7 +176,7 @@ impl Watcher {
+ // ------------------------------------------------------------------------
+
+ /// ProtocolVersion property
+- #[dbus_interface(property)]
++ #[zbus(property)]
+ fn protocol_version(&self) -> i32 {
+ 0
+ }
+@@ -244,7 +244,7 @@ async fn parse_service<'a>(
+ ) -> zbus::fdo::Result<(zbus::names::UniqueName<'static>, &'a str)> {
+ if service.starts_with('/') {
+ // they sent us just the object path
+- if let Some(sender) = hdr.sender()? {
++ if let Some(sender) = hdr.sender() {
+ Ok((sender.to_owned(), service))
+ } else {
+ log::warn!("unknown sender");
+diff --git a/crates/simplexpr/Cargo.toml b/crates/simplexpr/Cargo.toml
+index 420c04d..2b94ae9 100644
+--- a/crates/simplexpr/Cargo.toml
++++ b/crates/simplexpr/Cargo.toml
+@@ -16,18 +16,18 @@ eww_shared_util.workspace = true
+
+ cached.workspace = true
+ chrono-tz.workspace = true
+-chrono.workspace = true
++chrono = { workspace = true, features = ["unstable-locales"] }
+ itertools.workspace = true
+ jaq-core.workspace = true
+ jaq-parse.workspace = true
+-jaq-std = {workspace = true, features = ["bincode"]}
++jaq-std.workspace = true
+ jaq-interpret.workspace = true
+ jaq-syn.workspace = true
+ lalrpop-util.workspace = true
+ once_cell.workspace = true
+ regex.workspace = true
+ serde_json.workspace = true
+-serde = {workspace = true, features = ["derive"]}
++serde = { workspace = true, features = ["derive"] }
+ static_assertions.workspace = true
+ strsim.workspace = true
+ strum = { workspace = true, features = ["derive"] }
+diff --git a/crates/simplexpr/src/eval.rs b/crates/simplexpr/src/eval.rs
+index cad180d..6325782 100644
+--- a/crates/simplexpr/src/eval.rs
++++ b/crates/simplexpr/src/eval.rs
+@@ -7,7 +7,7 @@ use crate::{
+ ast::{AccessType, BinOp, SimplExpr, UnaryOp},
+ dynval::{ConversionError, DynVal},
+ };
+-use eww_shared_util::{Span, Spanned, VarName};
++use eww_shared_util::{get_locale, Span, Spanned, VarName};
+ use std::{
+ collections::HashMap,
+ convert::{Infallible, TryFrom, TryInto},
+@@ -328,6 +328,22 @@ fn call_expr_function(name: &str, args: Vec<DynVal>) -> Result<DynVal, EvalError
+ }
+ _ => Err(EvalError::WrongArgCount(name.to_string())),
+ },
++ "min" => match args.as_slice() {
++ [a, b] => {
++ let a = a.as_f64()?;
++ let b = b.as_f64()?;
++ Ok(DynVal::from(f64::min(a, b)))
++ }
++ _ => Err(EvalError::WrongArgCount(name.to_string())),
++ },
++ "max" => match args.as_slice() {
++ [a, b] => {
++ let a = a.as_f64()?;
++ let b = b.as_f64()?;
++ Ok(DynVal::from(f64::max(a, b)))
++ }
++ _ => Err(EvalError::WrongArgCount(name.to_string())),
++ },
+ "sin" => match args.as_slice() {
+ [num] => {
+ let num = num.as_f64()?;
+@@ -451,12 +467,16 @@ fn call_expr_function(name: &str, args: Vec<DynVal>) -> Result<DynVal, EvalError
+ };
+
+ Ok(DynVal::from(match timezone.timestamp_opt(timestamp.as_i64()?, 0) {
+- LocalResult::Single(t) | LocalResult::Ambiguous(t, _) => t.format(&format.as_string()?).to_string(),
++ LocalResult::Single(t) | LocalResult::Ambiguous(t, _) => {
++ t.format_localized(&format.as_string()?, get_locale()).to_string()
++ }
+ LocalResult::None => return Err(EvalError::ChronoError("Invalid UNIX timestamp".to_string())),
+ }))
+ }
+ [timestamp, format] => Ok(DynVal::from(match Local.timestamp_opt(timestamp.as_i64()?, 0) {
+- LocalResult::Single(t) | LocalResult::Ambiguous(t, _) => t.format(&format.as_string()?).to_string(),
++ LocalResult::Single(t) | LocalResult::Ambiguous(t, _) => {
++ t.format_localized(&format.as_string()?, get_locale()).to_string()
++ }
+ LocalResult::None => return Err(EvalError::ChronoError("Invalid UNIX timestamp".to_string())),
+ })),
+ _ => Err(EvalError::WrongArgCount(name.to_string())),
+diff --git a/crates/yuck/src/parser/ast_iterator.rs b/crates/yuck/src/parser/ast_iterator.rs
+index 603fdca..4cb6c2f 100644
+--- a/crates/yuck/src/parser/ast_iterator.rs
++++ b/crates/yuck/src/parser/ast_iterator.rs
+@@ -90,7 +90,7 @@ impl<I: Iterator<Item = Ast>> AstIterator<I> {
+ parse_key_values(self, true)
+ }
+
+- pub fn put_back(&mut self, ast: Ast) {
++ pub fn put_back(&mut self, ast: Ast) -> Option<Ast> {
+ self.remaining_span.0 = ast.span().0;
+ self.iter.put_back(ast)
+ }
+diff --git a/crates/yuck/src/value/coords.rs b/crates/yuck/src/value/coords.rs
+index f500dff..4c999db 100644
+--- a/crates/yuck/src/value/coords.rs
++++ b/crates/yuck/src/value/coords.rs
+@@ -1,4 +1,4 @@
+-use derive_more::*;
++use derive_more::{Debug, *};
+ use once_cell::sync::Lazy;
+ use serde::{Deserialize, Serialize};
+ use smart_default::SmartDefault;
+@@ -14,13 +14,13 @@ pub enum Error {
+ MalformedCoords,
+ }
+
+-#[derive(Clone, Copy, PartialEq, Deserialize, Serialize, Display, DebugCustom, SmartDefault)]
++#[derive(Clone, Copy, PartialEq, Deserialize, Serialize, Display, Debug, SmartDefault)]
+ pub enum NumWithUnit {
+- #[display(fmt = "{}%", .0)]
+- #[debug(fmt = "{}%", .0)]
++ #[display("{}%", _0)]
++ #[debug("{}%", _0)]
+ Percent(f32),
+- #[display(fmt = "{}px", .0)]
+- #[debug(fmt = "{}px", .0)]
++ #[display("{}px", _0)]
++ #[debug("{}px", _0)]
+ #[default]
+ Pixels(i32),
+ }
+@@ -58,7 +58,7 @@ impl FromStr for NumWithUnit {
+ }
+
+ #[derive(Clone, Copy, PartialEq, Deserialize, Serialize, Display, Default)]
+-#[display(fmt = "{}*{}", x, y)]
++#[display("{}*{}", x, y)]
+ pub struct Coords {
+ pub x: NumWithUnit,
+ pub y: NumWithUnit,
+--
+2.46.0
+
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [gentoo-commits] repo/proj/guru:dev commit in: gui-apps/eww/, gui-apps/eww/files/
@ 2024-05-08 17:56 Lucio Sauer
0 siblings, 0 replies; 2+ messages in thread
From: Lucio Sauer @ 2024-05-08 17:56 UTC (permalink / raw
To: gentoo-commits
commit: fefe48016694f6e597e92569de7afb10293ed55b
Author: Lucio Sauer <watermanpaint <AT> posteo <DOT> net>
AuthorDate: Wed May 8 17:53:17 2024 +0000
Commit: Lucio Sauer <watermanpaint <AT> posteo <DOT> net>
CommitDate: Wed May 8 17:55:24 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=fefe4801
gui-apps/eww: add 0.6.0
Signed-off-by: Lucio Sauer <watermanpaint <AT> posteo.net>
gui-apps/eww/Manifest | 190 +++++++++++
gui-apps/eww/eww-0.6.0.ebuild | 451 +++++++++++++++++++++++++
gui-apps/eww/files/eww-0.6.0-fix-version.patch | 35 ++
3 files changed, 676 insertions(+)
diff --git a/gui-apps/eww/Manifest b/gui-apps/eww/Manifest
index 23044a26c0..f37fb9557f 100644
--- a/gui-apps/eww/Manifest
+++ b/gui-apps/eww/Manifest
@@ -1,39 +1,69 @@
+DIST addr2line-0.20.0.crate 39558 BLAKE2B 1f66fcb361161599a87f874a3bf28a05614e235488d02205d4c8e207ae193280949ad957fd0eb383a49f4c1bc287569454d3c6872ed6e31c081e6fd03f8d460e SHA512 f9794772a31dd01096b168b4b4ffe311d4850c69fd77dd72c1e532a94ef7b23c31cccb9033848822521510f1fcc2ad0fdd824cf7efb9ed43828dc0165165b319
DIST addr2line-0.21.0.crate 40807 BLAKE2B 9796b9a1177a299797902b7f64247d81d63d3f7e0dcc1256990628e84c5f92e3094ee8d753d9b72187b9aaa73b7ca67c0217899f2226ebd1076f8d25b458475b SHA512 afde7660dda30dee240e79df1fb5b92d4572520bf17a134ef3765e2a077af9e13713952d52e27fae420109b40f6e24dbce1056687dbcbead858ffc21cc7dc69b
DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e6465690787bbb831a1b9d53793cba1989793d0a5606d5d23ee20d36457923d451b1b3530c9ec7072a487aa3e55bbd SHA512 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1
+DIST ahash-0.7.6.crate 38030 BLAKE2B aca3661477fcd7822d6d10970151e05c28e1615f8cd7ddaac064b15102027e404b19b0f3f16dd76145048594ea1c22ae27dd08cc05c411efbae9ec7a1ef55ce9 SHA512 61354688b6fb096359faefb6f34be958cd2215d56b88c22c737d24183eaad433f811bc9e64f927e4852c87d2799c22fda82b55cfbef2ed6357ff74f0c4ffec68
DIST ahash-0.8.8.crate 43028 BLAKE2B 598a7f2ef74a9470913d2d4e46d1652a8ea7ccd9843778b7f2f4d9f41703ba4cae552aca8205fef6ff8f601d919a5f141391a942e13e5285c7e053cbbbe4afcc SHA512 b54c8c2cfde8115d2108dca36ab698d1b43eb015caa36e6d02288ff21a67ff54144affd406af704107689888f52548203731d3793e5b881bd267b2f803f478cb
+DIST ahash-0.8.9.crate 43050 BLAKE2B 81e2212602ced9e9cb7bd4a3d62fb5a9a3b382cf367c653907314f9a1870b20ec0de5ce6154e73941628daadac3f97322d4aa58b41e5d5d16592d6587321ac2e SHA512 54a338c08a42fb0da205eb82d23cf03ae7da3f4772f685f798e748dcfec1794a34f8104af27abc961b3e04d0ce5d79fc5b86d4249cd7a6f1b78f65bd44104814
+DIST aho-corasick-1.0.4.crate 171175 BLAKE2B b3d450533f0799a18fa6ceba41ce841573a3b9fe9bc66745aba9b5a1ef4d86b107aa68c049bd30df7bc86229c71264142e40da8e1d145e776017269a01aed86e SHA512 7cb8feb3289a508b1345b3cc04b59f2f730b80f561b17c7605ce23bf92780b5b3714ec84f5e3c5f4ba0c3abd47ac44fd0064a8bf4c5a7d00bd580774c6a3aee8
DIST aho-corasick-1.1.2.crate 183136 BLAKE2B 2d4306d8968061b9f7e50190be6a92b3f668169ba1b9f9691de08a57c96185f7a4288d20c64cb8488a260eb18d3ed4b0e8358b0cca47aa44759b2e448049cbaa SHA512 61ef5092673ab5a60bec4e92df28a91fe6171ba59d5829ffe41fc55aff3bfb755533a4ad53dc7bf827a0b789fcce593b17e69d1fcfb3694f06ed3b1bd535d40c
DIST allocator-api2-0.2.16.crate 59025 BLAKE2B fda69b52435a7243eb19bc55914a1961e59dbad5ac12c40db39cccdf7a99c742da59c3ef160350808698db24b91e0ce655cd1acedbbcbe20c717604aae23ea5e SHA512 e1eb0df6b44b62115795ebf772f81e9ac0b6d273afd81659dbddb7eb6628b6e5ef6a60ea21413e79ee638afb72e6872ba83a075f6324daf93f2f1eda48daff2f
DIST android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077
DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
DIST anstream-0.6.11.crate 30239 BLAKE2B 4ac585ec56a804239d32ad3e64d93936ef9d5c8e0f0e2df17f7b081b6a3b2c4c32ff4ebc09ec02507bbed22b025628029d859610aed90c024e19a3216de73c8b SHA512 f8dd65cc116a1495782a3bfc98edfdd0973ab22ea2fafd292fb4bd3495af7b5ea410f320d3fa05f7f812fa96c2a20f4cd2af9fc58869a1a306f32714cbe45163
+DIST anstream-0.6.12.crate 30769 BLAKE2B 7e1427a8d81ab52f74c5d25209ba2a410575958139ec5e6a94d0a7751c4a177285ece215222b16bffc0fb12b19014e9925e27a988a52e7dfa5139476bec4cf7b SHA512 47396e1617464188e7b4d7c931c5a6fafa918ca7aa39044a5b3dad1b8685ea96829ee87e7b70820bbe2efb35571fb331539f0fb8938d229034a9b9bb60700a70
+DIST anstyle-1.0.1.crate 13977 BLAKE2B 35be03a7de78737592528967e8ad4851436a74c7863cae9cf5cf7366d3cce9bbbd255b1a89401051f82fe8569a0ff029dcfe427c14a2e0677890453c6119d241 SHA512 2bf9b83ad9772c6a3ef28239cbb98bd667dc631fd1ef76ec5029825c128f6cb22756bb1548dd991e482f86eb9fd94fae5c648f91de2c0d71754b6dca4ec2362c
DIST anstyle-1.0.6.crate 14604 BLAKE2B 0716d0dbb62bf05c63c2bfe1c689896660073a423d26965ce2570f11e1925752a61209d78c2f2fe65ec4eb64ea4ffbb39669e789c0ba5d1b71e75de929153b20 SHA512 dc0e505465be54799b9faad70d0c6f7f0dcf9f5e1aaa43177b826c85dae626b054910244da0499862f066f6723a1560ad12100aec523f28c6198f1ea0d1b78fa
+DIST anstyle-parse-0.2.1.crate 24802 BLAKE2B 6304a56c6a9fbaf1bb4d1d177b2315684345dc9d71c35836f9544145364f8d6eb56e25c03076690c594ab7db5914501acb569f6c136952e59c93179ced527fb2 SHA512 5c8fc7d88ffc3a6e78340ffe0f3c2d72e865512030ade4509de9c673eba955c536bb1873dac11f6ba11cc8367fb30c67451ed65d19f81507c9e917c702bfd176
DIST anstyle-parse-0.2.3.crate 24699 BLAKE2B 17e8638187ccc1ca0174a8cec7f7daeee7e0d8b8c430f7e74f9b10d8de4b49fd1c6facfdafde305b7a3e55b1ebf2b4e8ec4975a0cce691514ddae9eb5b5e711e SHA512 4a6d0f706d75c9b3c5144f34efdef3ef8fcd075962c594a23a6209ed56112563a34b3c01e05a08a0868d59204272d06211b2585cb9d06ce075ea875bedb2f399
+DIST anstyle-query-1.0.0.crate 8620 BLAKE2B 2d296b5066fd6284a2410923215571e6df650c5ef892d6de7a7088a0996ca30608797feabc84f3c325ff4d07001dac80ac5067d2a9c9d15d9ba59a276b399f53 SHA512 2781be5c82293b7ae338ec5046fbeb130de9eb2dbf2e4dfaa73ca5233032e1e52c133e141b02f33d4bc36d996a0a3f680ac82d42d614a5305005f60547133c7a
DIST anstyle-query-1.0.2.crate 8739 BLAKE2B c06643e8616f1f4469a32f9c0512941ce53ac5db9ebfa7a5b2f19233040cd4438dd2ee69ab89ecbc1c239e92b674dea9df15ed673408c6f3fe21787cc17d76f3 SHA512 f409b624cbeecf58fd87c47f85be28cae1fe48f65d692195fb80854c514e38c40d0e0ffad3a5b388a3929c47bd2060302ebb635aa98dc57329f3a5ed7be3e2dc
DIST anstyle-wincon-3.0.2.crate 11272 BLAKE2B 73e124773f618a744b17017d4680ec6ccc84ff94fbe2e565073fbcc0facecd3cb65356cf27746d07f453bc917cbeb2ade3a618c6b8578d64cff4828c99569868 SHA512 4cc194faacffa01c6989354c1cadbf1134f0945250f67b7020ab5b475e30db34c799176bd335a6265386cb9c5e8b5bcbdf35894ec0c809b140ffe1c406751931
DIST anyhow-1.0.79.crate 44931 BLAKE2B 9270f04c6fbbecb535e3081f4275c3df28f6a893c1dfc0a9f7c009994de2deb8ebced04fe5e6f62931b33c3707f4fbfb0c3b28da1a611b413d40d27149d1fd2f SHA512 ecd6fb1367d494df18c0e274b336a133f3acf7b6a5487d20bdd06e08c7f1f729877086a0966e998221daff120504fadd2be2dc4219ed621f81b0a50c2bbc2011
+DIST anyhow-1.0.80.crate 45138 BLAKE2B 4985d3d8f1d5b5886fae5c7d1a61f921d3d64fb51e24710044b85dfadd2dae2b25b8995cab419cb7cdb5c8cb6b50ad0de93b9a942d34bc45014bd5fb9aecbd39 SHA512 481a3bc29de2af0b913d83cc79dacd559cf0bafecafcc707b921b91a732df953a2df582a54e5fca3f506f6441fd47379bd6bd006bcb1bd6f2615198f9903cc59
DIST ascii-canvas-3.0.0.crate 10575 BLAKE2B fc40c40551e3e1b2bec6ae5a85ee8b0a1ab1ef3425cdd19ec6dd47d849205004781a2c8f51470417fe7556cf8524cc63b84a532532c5081604adbcd92d286b44 SHA512 216056640604f5faba6d46e2c94ff75234fec83d3bc2dc7cf34dd279706362874e3a513c717b23bc591da07cc3088458913c4e9aa5f280550c93d261095c8703
+DIST async-broadcast-0.5.1.crate 20134 BLAKE2B a45a7ff0b05eaab687f0912b2fdd0c3d9379402d5ccb8269568fbf77e235b42db0f741b4743438511fc00e7e1c6ec09c7b2f6e37b4b9a4df07846ae582e9c812 SHA512 48de28fad3fa8258b61f1adc0f13e69698f0fc3e11c68eb6b6d2df11784dc5c1e09f6f2c03dd12679d9888171b87cff3362ee06b910833e55d278738ab7508ae
+DIST async-channel-1.9.0.crate 13664 BLAKE2B 52455c1c9f82bede902a96de0526ce4563184a9da303477110b556b4c877b563c21c32bfd9c6ded446ea0bad416af81a07e5df5a62e7c8f40c8183c1d09ac4f5 SHA512 cc624b87dbf34e4be4e219a82b96036396b92042025eeed2362d91f414ca17884365470fca5014b02659be44b77f20530ca33236dc427f0a2fcff2704c46c3dc
+DIST async-io-1.13.0.crate 37191 BLAKE2B ec27c5a49550f9a2cda66df0a6c54e5a64191e6c1ebade4e47a3164cd04fe7fff60d225788983f55e47a785dd57c74a22f2a3455349d2d451646e4d0e7f4ffcb SHA512 b37a13fdb1d29e2e8852ab6f24589718a88aa39bf532145ae7541d61c3f49f731f890764dd945845eef6c8b5af1042bac2c04cdabc00b36dc4350fa1c62ce54e
+DIST async-lock-2.8.0.crate 29944 BLAKE2B ebb35437caf6bc8db154b21fd17bbe1973490fec06cd34e7385d9028440b0960407d674beaa707a01becb227ef1107686165953658f490902e13d0732a4e80b4 SHA512 f48732dd8e5de0228f56780adb87e4d9870496ddbfe4cc7c6aace8d4cd7198627a05ff0358fb33ed57480c7ac886b57253fc73b2bbcd3e8cfe65624b51847ae1
+DIST async-process-1.7.0.crate 22861 BLAKE2B c833ff62ea17faa9f64da096da02cdbf1ce145a33d00fa4e222385fe9b172e947dbd0e37814502610b88a43c09f7ab9957e61080c827b86bd43a8023e95097ea SHA512 ff7ab4f61dd6ac7c7394e6b31aef6fdf14e78b823aec088ed398104ca44c6d635a0d87a13871073189b92dfb94bf9a6679b3082520e470c0d551a06e5f76e481
+DIST async-recursion-1.0.4.crate 11521 BLAKE2B 5ec9ea2c5cfefecd1f16170a00973fdd8b3a101680431348cfadbdc235163921a0ea4f04ba890d40c4f781f0c0be452ddcc119fe3539c24784baa67337a10c1e SHA512 2305ada4209501b53c2b9ce9255ad821975691d445234aab5a2c0855e442de4ef950c6ac3da832b5962a5a54565b184d16778993e0cf756b7a6d60b8b484839c
+DIST async-task-4.4.0.crate 35178 BLAKE2B 6dc05e0e121d42779e00914fbec5027a2f280acfb4a4c72c66f0ba8e5e9705ef8f0032a5452d9a90e1909e4f828c32cf1fbb1d686877893c7991334ce40566e1 SHA512 713620c4aa948f8da61b6587fa3c24e523c42268d59c77ed0481788066b543933e2e68df969315d3cef5d59ef1e9fc1b0f9f293e1a6af9ff31ea8ddd86a5a260
+DIST async-trait-0.1.73.crate 28654 BLAKE2B 07edf1e9cd92f389a7c05953200568dee887007b0233370ad55003cec40e8a310dc441c331c03df5a31681e033871958742f0a86955fb28a4bd05a95e01d2889 SHA512 f7739642fece168778f7c7c9077fef078e65943edb656399cbba27d4e37b0fb25cb7901c83dbe102b7c702a26f886f73a8240bc97ce14668013139a8814122eb
DIST atk-0.17.1.crate 34892 BLAKE2B ceb5d4fe598537597d6c5922ff85a7b9460d648d1ac48b898fa810cd8e220cbad478399e7adf83d7791aad8601268594b72655e6b533c60a045118c5e0f93b13 SHA512 41142bdc249f90d5c481e257779eddfdfb35a6052bfbd94cd929942308bc5d0c04f081206b40b50b0ca6eed4254c98f10d7a75c42f55f1144cf19771ba4af0b0
DIST atk-sys-0.17.0.crate 22807 BLAKE2B 7ff40aab14ab732b9df04e31542173d3d20a8da9f596c8bd29572dc93cf79a1c7ffe2d720658bbf338608971c867fe88aa255f48002773156b5409c4e50d2159 SHA512 d129636650feb7c249dab49949e2298f3f551c50b66b6145f72566c8d5923f11b3dc89895ea1c65106494d397ed3763eadec91153986aedbc7555cdf366a5d98
+DIST atomic-waker-1.1.1.crate 11551 BLAKE2B 83d329f1e95a2d859d842a3553464636c8000df359d03f7ee8e7c11ac6c14b7eddd176514c1b3405cac93c37ba50ba8d90f90b6ae1ea122589ae3cbafec554bc SHA512 a42d21849d9b4569b099eca63c9d0f383439e382a0c2b7d0bcc42af988db9c8cd77c941af7d6839b6b4445c95782739f07f526daef36b3f4d885410e260be0e3
DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
+DIST backtrace-0.3.68.crate 79891 BLAKE2B 38ec5881bdd8f2ee55db9da423e030603a6ad0b50edeb37e0899ca781bbc9f54fdd00e4f27f8589cc34ceaefac05f26fdcdf693cc08d9d06a2811783ba7c5c2a SHA512 4c4e5d47154e64d2192a6358d0861097e31b5a53d5863b03dd38562dccda7cbec584e006ce29563cadfd03b0031ed7a16fa43328f515cc66a296048c9a2f5d89
DIST backtrace-0.3.69.crate 77299 BLAKE2B 594358f1d9171fc369f50cacffab03b8a10a8fe3da5b915611cb74b0dbad0e048c7dc79c53569d89827db583e0f61fb7269147b6258781a1599a811e642414a8 SHA512 6e86de53e1c5003ef68b6a85479cde1e70bf416bdc50e6e32ead9f9f070fa30ad46de22574041c844ddfeabd5d15de01ef746f19f8cb7f257c491ef0bf071244
DIST base64-0.21.7.crate 82576 BLAKE2B 25cc8761c14220981ff4ed332058f6179948080cbfa2b225ec1d1602e4af14cd470c969e8b7049117e6fc51a5a24e06b1d27bab844486ecb76409d12e0581d5d SHA512 c6986d88dd9aa081d914f35b4174be4ba874848657ac4b5e63b9b45af765d973289c548ccb5a01584edfc0d8d79ff5be25b51365295d6e7a311bd7f0ae3c0cb9
DIST bincode-1.3.3.crate 28958 BLAKE2B ea01d2efd8149ecba5e240ed989268b683d542a5f369902d316a4fd1ae4b8edd94e2d4a8cbff0e96646eb29facb04a84b249d74f0781dc3d29c8797ac975aa9f SHA512 49e39d71214dbb623a18e3852f6f2f2a5c3f951b64107d66c8adaa95a442a3283fba978bca41b126c9879b12833b945f478d2c77d35482b3577fc1a894e8e5f3
DIST bit-set-0.5.3.crate 14470 BLAKE2B f6525500a494236103df2b27e964bae0b2caf718156879f972b9972fa509794bcc663c2130e3d872ecadb7ead0982b415dfa4468ef12523ee248fb1bbec2559e SHA512 c5ce7ef71559706d996505e138ce95d9f008ac3375928012a36339bfec48986ad935b384e2d21fa0d505d4cf98bd3e93be15955ecd9607d253b8a276351334c6
DIST bit-vec-0.6.3.crate 19927 BLAKE2B f5bd3bb9c87fdf3b206739b74df20cab50a1a45af3a58b2642a5a061c26207884be58ef8369a3cd06dfd3615bff0ce15915fdd4b6b6f03facc4a0f86c0b7e910 SHA512 b4b4a82c80d0ff13527ae4fff449ac9c1c7bc519c013af6ea3428348e0e5b9306b725c0a13a42d7d9dcf0f895a9eee0c63695a2503eb7fd2200083c9ea3a9aa8
DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+DIST bitflags-2.4.0.crate 36954 BLAKE2B 1d6cfeb0a17dc53a6249a83c8c7ad7c102985ffcfd7f7f76506889684235e78fe489d23b5a5f9018f0bd526a38d6b1449784c62322fb01f4bb507c0af8bd545c SHA512 0c3d6667abea48811a792749702136ee3db97518b33bc4c7d35737505bf56315e0e5810deeea28b7a1b540ec0e21bd319ba0b3c5c4aef0ba8ed5499ffdfd9b0c
DIST bitflags-2.4.2.crate 42602 BLAKE2B 768d4ca52aca73d8acf2f494a66957ed2603eefd5a04332ed0880d230c2cc6ef3bfdc0792fa6f288a0eb132913dbb256793e580bc34f4a40e8200e1fbafe97a9 SHA512 ef4c20e6e78a2ecee97e17189b7100a504d8176c7c15d7f17d62157a116d66f83f8b2bba472a4acf02cd3edbd94b20a7047af918c3f3b371e2e04f7474be0214
+DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
+DIST blocking-1.3.1.crate 19040 BLAKE2B 74bde93cf2ac1e626c1d721d83f3d9f65ea58f99295d788c53dae5f33f322572e1c67441c7fb13ab2357e54e8540ef200ffac5a4a123ea0dcc7746c12a63b624 SHA512 e2da1fd0b07153701ca8fd5a62a859e9bdd484b338aaaf8c59a211c298b9ae469f71386f8f4b7099a910de04900de88b51965ae79f4edf4fa8b2ebe0a6e78d41
+DIST bumpalo-3.13.0.crate 82114 BLAKE2B 62a930b165e853aeeb40558079f570c75ed13ff5e8436d99309dc6252aa28ae69d327c4b438913d6c7543bc156f2714f0c1e80d759ea0d44babe24ef0f268ac0 SHA512 419368d6ca37474c2867751fe5706d0c747326bebce323d571cfc07ee0f022d8e8a7ef5692091b0fa804995b081998dafc55da19a53e51135a767bc0afdb9605
DIST bumpalo-3.15.0.crate 83538 BLAKE2B d73df557717d15ede01c8ffccc889fd68259da62b46222862096960dfd6972696f4a62f31737b3821773f99794b2d751ae91569740cdea28245a92db447338c5 SHA512 18fa4284e955805618308898d633489401051d2f8f2113d3735137741d8bd0711306163f93abd77c80a1ddbc0f3458204afcc98cbf478121fe52730599e41e97
+DIST byteorder-1.4.3.crate 22512 BLAKE2B d39c546ba7346df315297fc53da4bfc77ecb1f38567ddb788549ee31cae2719a8bc0b7d1f1705abb3cff033aa57af004987d90748f5a31765273b3223a011c0d SHA512 8c8000eb8ecf40351c9ce36a3a8acd7a02f81786d1b11aab85adfeffa0f2267ed74df29b2ca5d1d38128484d1d3cad2b673aa0d0441dcd0620dfd3934bb888fa
+DIST bytes-1.4.0.crate 58080 BLAKE2B 99a9d343424e04649bd209bf2a6c3a089a6cc9fdb799968f8c3a711189328e4499df2e09cc6a2a8ce05d2cc668149b364cf30cb3b09e96e21d50a39519c2f49f SHA512 502c63b9fdcd36ed28ede55a63cd359dc7b28658ecd43020511d17d48d7c34e45aa8ff7e4b17770f12197451040c2b724fe68d2aa3ab4f81c9171d052f2aa000
DIST bytes-1.5.0.crate 58909 BLAKE2B 2931f19e813eff73be407677622fa29e45f9b49434d5b3a04104b56563fc0e941fd8c5f996258a1aa660000ef014668d70b683b751af8e48d28d0aea76890c92 SHA512 6654cf41d8f0d7e19b05fd95044b9a3bfccd81f469c797c6aa763a4dd29e1b34064bed2e094548d147045cca7bc4706059de5bcf9f6579189e6068fbbf1c29a3
DIST cached-0.48.1.crate 57238 BLAKE2B f0a78fd0092ec8e06c63caf7ac22645db290ec51d4df81959162f1fdc1c5a177f987b345865a6a0c5c258ffbba6df85f3bccf436f2683f0309dcf695798c2fe5 SHA512 815cada930efd6621ace3f0eb4367de72fecf16c4cd2a74e9a32379371b18f6bef2209eda4055c4f5edb989e2a9f068f427cb769d480f67658f9baf54eb8451c
DIST cached_proc_macro-0.19.1.crate 9843 BLAKE2B 5e43bc47f0675ee50f81ee406c2bacde881bede59ecc78e58d2310fc5a8a22bda37e602607ccecbc044b234835d9e935f0ffa721728837d908c2dcc1cce58ae3 SHA512 ce35a1f538d37b63af83a381a24e611e4d211f418027c8e3d07c8ca555513cf7eb6193ce2236e6775436b00c9f0a04ee6802a4aad2e864803715a184640d6a69
DIST cached_proc_macro_types-0.1.1.crate 1813 BLAKE2B fd6e4928bdc29eda867fb1c2e87c259d2f39637c4686c6581b3a06748f162397751fdaa181efc0d80d27e1e650feca863cd649cfe394b9a783f29d866fc8b130 SHA512 7c8e4f1a912fc7fe7b0550e31326c4441c676f4e86425e1bfc583a31497b0664d28a4d50077b2464ad35e1c7c2d2f502b19d6d6086d12b8ae41df74816458500
DIST cairo-rs-0.17.10.crate 53805 BLAKE2B b0aa6706f236e5a81476091d6687e2098d8fe71dcddb81bfc0d66ab9011aa48a3986a7e97064861cc2362387fdb4f7ce38d7f628c239635c9272b4110a947262 SHA512 c9f94bf95e67c8f6dcd00c3383f4bad685bfed634a25c9b1090e541332cedf0d1d96ddbd6af83c567c61ecbcda88555adb77afa0fc50f079ec57b28b1cce3b43
DIST cairo-sys-rs-0.17.10.crate 11646 BLAKE2B c354f7850370dd529eb0ceaa7963ff65b764abebed0a580bade5af7b7f986218de52f47d407b83261add08e46f8fac1c05d07608436b4e1b23da7bff6ec4ae7f SHA512 6e007a2a19b23d31b43734a0108101121e10f0e53fff981ef7fdee12557e38bd9eabb5d112284c3c0ade9cddcc6a27166d4d0ecca2e641af9b51c53032a2821e
+DIST cc-1.0.82.crate 67879 BLAKE2B 3b06cbe1516d4fe8291e1543b09d32d39a135c2352e545b64bc69fc82a40128a9b1291f20bd4cac6a3c37d9466093f8b63cae20663ad517bd7dbc380bfa87ee7 SHA512 27810ea12401635b0122e5b3a71367a52ca7040f196cb30f709e0b8ec0e717aeb8a89ef4e891b1c7c88f7cc8a1c35e55db132b728b0c499e0b683d5b803a671f
DIST cc-1.0.83.crate 68343 BLAKE2B 33245b33fa845ea2f36da36e3830ec835f937e4319865b357ee9d5ea29a0f9f8392eadb38bf1d95e3c15ed201e561acaa87aedcef744f8db3dabff87a96c7f02 SHA512 742a248c3a7547bb220a0b9c97b67a831fab9b4ac21daa08c85a3966b9fe576088def33e16132fcabec9a2828a6fc437088bb045bfc98b2cea829df6742565a7
+DIST cfg-expr-0.15.4.crate 41460 BLAKE2B ed09121cbbae52f91a5c65c56b162e7223a467b931f6a0b4c35b9b947cbe36bbc0778e58240864668002a3a6fa3c36cc10b406cce59a302edaea461bdcd3ebe8 SHA512 6370348665551fea37bc85ee444f302fc5890fee0620b365b03a27aebf2c366facfc73d3a6aa040b83dc39c463948dbe8a15e679c3e413566dfb506ba855cd33
DIST cfg-expr-0.15.7.crate 42003 BLAKE2B adbcc2498d6bfd4f3445ba2c406aee1d1f6e12f02496f3bf608f7002e74ce1eae81d32bccbf6da87178ada6ea889642f38daad7f8f96360cd2ef03fe572fbacf SHA512 3e803a741008147a5cc0bd3eeb101fb3e4f24396fd3086e8201c070230a0c92e4eb69e74546421c59e1f039dd8aa9d913df1e9bc76866583100c63063c94ed54
DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST chrono-0.4.26.crate 191501 BLAKE2B eae49ee247607995c28463b8c3e2119497141e69d19a756c408f2b72d94bea39397ea2d0d3cd2ccbf1348ef973dd8bae6d29a0d0590e8dd34633f365a9170adb SHA512 2b66faf4d8374cfb0485710ceb2c9c1ce63aa6f9670e405a0810af4aca01c57d8dcd198a1f4cad498d5efd89e00003ba1b4f0bab599422af4f9bd6fb74494c47
DIST chrono-0.4.34.crate 228932 BLAKE2B a2feab8d8b079209f8661fd8c5069f2a5fc3e5b0a6233187ace16f8f2ad8b4a147253e47af306cb31aacd82bdf490a8c8a171ad702b8dc22f9b934205d080c55 SHA512 2aaccde5e5ecaec744613429f807b3c34b92632973de7fdbdafd7ca510b917a23a0abc92a6497754d0d3368d684305648aec1fa2a0a61c88a100a20fab2348f1
+DIST chrono-tz-0.8.3.crate 614088 BLAKE2B 77c4387a499cbee16d910c57a6f49408beef0bae5f278bf006ccdbc522fb85ff69e122523815d4302a83eb883f69142185bf58889e5fc764289e78330931bd1d SHA512 85f1093edebe08515d0b8f11a9a5ab8b9fac57527cc404f5914dd5d1796e0007ca596d7057d158e915b85619bb80939c097ee4beaf6a76b9794cea1459f8d86e
DIST chrono-tz-0.8.6.crate 624830 BLAKE2B 9e81589c0ae960172407cd770554c2c8117db0cf3374ef458a3a501ef952b964975550959aab367f93a4c4e56e5a239923d0af500beb3baab693e0f7c1abe5c5 SHA512 a73dfb706513398562af86be2d14cfdba82a5ced46655b1c4f1ad177e432b06d9a6e50add6b0eb6631d6bee0cb86978faa9e77d7ec1efc89ab56f5a380eeecd6
+DIST chrono-tz-build-0.2.0.crate 10156 BLAKE2B a1a6faded483e8f55f4c1200778b449b6a942ef294110f67a38e5b65d9937b1fc8c869d2e696c8fc7d82c07f5369bfa96b332ce00e970304df8202fcb61922cf SHA512 f530438c9e68eea5b3b26f7bd47437eefbfb65d3bd6ce267575df9147498ab34b4b96dd7a3df883b6e35129fa350361d49fb89ff1a2c895c0ce3ee07b6809d74
DIST chrono-tz-build-0.2.1.crate 10421 BLAKE2B 21a1a7b9b8ef707f986cabd7cae83e15d74d0cad0ec883c5a463f2eca9d9fdcf441dac9a0e24c4046c88f875302ff3076f1bd3727625b53ebf7b7c4ade27f402 SHA512 bfdaf9255d6402c8c257bbca8e21de20c002362e60c7b73c59c29775076468a0223b5701d1f8273bb0ec61a31dccd7909d1ad8241001c8da2d65960fbe2d6241
DIST chumsky-0.9.3.crate 75112 BLAKE2B e74663dcf524513bf54494c62ad154fc3c3560910c429b91644f35327569df835c13645b148ec1b1339f78e9fe6ab3d5b83f10d53235a8e137756a548a9e6abc SHA512 f304bafa831c47fff4ede3b2e67628d7cf33d267559ff0f3eebba9355439f8bfbf08ed576aaaa1d51462114113ec1dc5d3593fa5a1510f6e2032da88d021423a
DIST clap-4.5.1.crate 55389 BLAKE2B ed23a9d14663a974b14c53b3abc91daae349cae6277664283c27ef201e53969b7ddde1cbd83dee796c9e248e88a622ab1753563ffe474a8b48c1351a7e21ad7b SHA512 b777ed43aea510e789ed76514825ca3a27fac7e386c58a88a1d5c74d0d72fd720e0d97777ddc49ae2e060d76af3ca554f3b9cf6a5f10b944f044d2554a7a4d35
@@ -44,44 +74,82 @@ DIST clap_lex-0.7.0.crate 11915 BLAKE2B 03287f02067f6cb33bb3889e8032b0848e9a9cc1
DIST codemap-0.1.3.crate 9483 BLAKE2B 457832f1df7ef1385daf677ad7e398408ba1022d9288b788783561b4ecd51f40ce1b7aa2cc0ac212933a525b2d305cdacf7aa360443ec84f1bddc24acebc9bba SHA512 58cf60c2161f4c208bc98e8377104be4ca4b2827444a8c1310f2d60cb13775d7158a6d30a88321b308938d635ae92c5a41c5d4fb73a3d86499c29ddf6f86eebb
DIST codespan-reporting-0.11.1.crate 48963 BLAKE2B 39deb717a853ffbe3585e20a67fd7a75b62e2d796a66b5004876501fd7476acde9f126804f2ef6220ebab66821a3ccf058d544d689a2705eae44285f34b510cb SHA512 0869789f5c50d3523d3ee16a8fe64756498a13704efbe82bb0845eaa87c7b6b1d075b3b6b80567cd9fce6cb09c5179e9c07e485fd17ce56c8139ade0f8bc6844
DIST colorchoice-1.0.0.crate 6857 BLAKE2B a0818be1299717461ffc1bcfb6fc53a0b3b645aa8c45fb72e045cf2d876fa207948610e58d6a837aad24838ea9616e80b0558ca3eae03fdf9bc4c03a8e5ba52f SHA512 53363f2889cd8e8a3b3ed10c48356896c0daa72f3c12c9c7804707ab0dbc07c0e34ef52fa4f0fb1647311ce5913168c1bf62c2407ff86a33f765a9e6fccad551
+DIST concurrent-queue-2.2.0.crate 19971 BLAKE2B 352eac954937dcdaf85de274125910abb9d338fc3b173ee2f3b800881209f9ab024428a615f2be15eef7112167cebdafd8d5d527e19d13cbeb412e0695337426 SHA512 0e5f69c188cda8e54a7236dddb3a92e929b906c3bbac3d3988b7b5a101001a21cf48ea3a4fa9abd52f395d20e2c04f822c39ae2ca25b287fbe823d5e665ae401
+DIST console-0.15.7.crate 35409 BLAKE2B b5e34b03a1c7d5fbffe5ae07182e28f6638e026a1dc2bd87bf47f67230ead612b37ce0c79b50d84619009753bb98dab661279b77c68760a0b75ce8303733abc7 SHA512 f37213812527bcad23baa8648cd949d8ec955e1be7589ecd36fee46637e77420c2561fc301f2562dd95bb66802b92ec1da5b85367bf16b793849913698a80576
DIST console-0.15.8.crate 36364 BLAKE2B 467de2c2fbfe31688cea20b338558ae9671e50ba1fd07983d21f32d7eacb73e565ebdd6ec5e78b2ae04446f09615c70983c0ee534e25ca5a28fd1b408acfdf34 SHA512 b05e49ed145785e29631d481885788f0cc5574d4d7c4d90280dfedaee7f8c1515072c9c4cfe6bd2e017230cd228157222af7e7d41a9fce697cd1888095df4de9
DIST convert_case-0.4.0.crate 8098 BLAKE2B cd038a7b0d52a9e183a96cbd548a8deefbe0c60d6aea15d7c6f92a4bbf991444d401b5cd3c944f3d37019e7e3db2a648e321402e13803768556f32c08ec00084 SHA512 e17e92b94b030e39f368ef0dd0288dbb45f77c8ce3034c1a6fd2fd43f38cf10a1af5aa7bebdfb447c335d9593c32dde7262e13f97c271c419c6106cf47dc01e1
+DIST core-foundation-sys-0.8.4.crate 17725 BLAKE2B 8afe47838dc91c8848c0d6a96a604149e5f0762228dbc10c17b85e4e9cd2c3928712bd0b28e1071f5fd6fd76d4ef972cb86c6c929246fb6e84577776933a8ac7 SHA512 15da472316d6decc213e4e5f08ecd22a108ebefe427b890741de4f9199614f19123e64329da76de5e8b4c9ff74ffc31738fd929acc1460fc757b4aa1fd3fdbb6
DIST core-foundation-sys-0.8.6.crate 37629 BLAKE2B 683d5a84b6a3816317f87359532a8339f08bb4043f1d70a8588636eb5dbe6ebb3843e2a12d9a7e5fd1637a912c52a5aefbb8d44796330b09593e7adefd3babd8 SHA512 24a8958cb16b081862a9000affb0147b8b3be1a664b834c3dbddbff03e709de3f4060ff4800e5a35453f4392ccf33168e8b864be71b17be38cb264a39b915100
+DIST cpufeatures-0.2.9.crate 11895 BLAKE2B 1e369466bce2ddf7be6bbe219997628223a3a114914e5ed44b44f3fb6d6a084fbb47cc50ecb109287b074e159c675ae89356cb68cd843b41b502ebe824febca0 SHA512 88235b7d7152f4578a321ebc4f83f69070206b2acaf0e6331b52e1a6633e96edc787f9a409ac2e2799106a259166a302150fa4ddc88352b7739d50ac6ca9038f
DIST crossbeam-channel-0.5.11.crate 90434 BLAKE2B 8666f039a0e4ac6f0f8be2d08ce3349d8ad4aa7d0f38c638dfa6dc6a7f30a1629e42f87757d9e054e836941dff6a8efa53b5337706bc5958d33dee61f38e7bcd SHA512 1d37bae1c946d402c1fce37f22a82037d68896770757aa91d209387f947d39c514df52e0ce94317141513784511ac626482f16099cc3b62ca28a52f387b69c71
+DIST crossbeam-channel-0.5.8.crate 90455 BLAKE2B 017132056f1b40e55fbc7a09b75509d72b0a6123a0e5ea5d6104fe822f73b3ccce670d711d3b84b5ce743dcab5f10445297a6701b71213b77c0d56e2c3fd7160 SHA512 47677d6fe63050c51393e4a0537a3c65d7055c9eae118ebe60c5d716b4f47f23c2b1947b1e1b66bfb34a57c4db3a44631d323e996dd545565fe4f58c25863ff4
+DIST crossbeam-deque-0.8.3.crate 21746 BLAKE2B c24025c65d7c1c98e442af95491749dd4f777af0509636ed66886dcf656359ec50dc2a5e26327559c6659f6b355d2b0b992dafa691a36571c99637cb47372d0f SHA512 f3201c9afef7d2d119702696f7e5e7997a104b8f7d67c7adebd1cbed84d3a3415636ff674f1ccdfd95d0dc162384e46c6138c8203ede69577b0d5359a4b44672
DIST crossbeam-deque-0.8.5.crate 21726 BLAKE2B d97b35e8e8858deaa7fa9a836e836d02914aad29e5c34ab121f52ed65e95213cb2574df82273277365889ea771f04eb40bb2439347c259979f1dd6d5e9853bcf SHA512 0f0c9745763ab156136227cf1415de514952a3f8282ffe413cc249f9f4b345b029940e6a6c87b3be8331a7c783655a35b89c7a2547360ea5ae10aa64ba7ae864
+DIST crossbeam-epoch-0.9.15.crate 48553 BLAKE2B 23aa0532d3126e22efc779859478098e505b4ec895c643530a3f7e8dba0543df3d8ffcb6825b1d3869a4418e17d798d464b3e1bb51522435d50f53ac224e22c8 SHA512 d9292c059ef1d156da52950137b2b3ea5eab66c4cc2f763d02078d0b0106980839ebed2ae2aec53e026ee7b3ddc37c4b51370d925ada1ad13d9981934daa7bde
DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+DIST crossbeam-utils-0.8.16.crate 42508 BLAKE2B dfaf9e7cade2cb5a2de90dc622e58a69c5b28fe9f69d3cbb945431683cf48fb409565190e3414a815563afb12631d990476919890fc482ce6b5792fdc25536a7 SHA512 4b8d599a8b93015eea2fd404cdf1526fbb94662fffc7c64d2f0659aeef349e4ad682f61b2b85d075c7f3fbbc4d8106cd7caf6e65dae117ba982f31262df3f831
DIST crossbeam-utils-0.8.19.crate 42328 BLAKE2B b2846f569555818fe7a3ef4aa29f68c638f933ee0251713c2c92624bee5f8013def5527027022963f572815991abb98d5e68d0fa00f478b2762133f84ffc84c0 SHA512 6e742fbb0d2a6371db87e81f8ac583259530a288237d0e8347394581c60004703a822318ec945936c410bb44001b115d8d986bb264e5b2d8091bb63a8edd93a9
DIST crunchy-0.2.2.crate 2995 BLAKE2B 74ddf8c5e0deb2ceab65c20a2743e1230739ac6aa3af60c9e867a7852270697a1278b7dee00df8949fc4268f9756a4a098df1211ab3b3e31a122652c3ba0a6fb SHA512 36dc0aebc41a3aac5f1b178a7e61b65bcd9bb5c8539b2024f79428200f7c62daa7098af55c6ab0765febd2f8969bd6c0ac8096f73cdc0958e5c4e4eb6a4f7025
+DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f
DIST darling-0.14.4.crate 25168 BLAKE2B bc48b27823a1a85a01a5daea47d87c2ac4b3ea48079249606aec912a4f417b72516004f17765e38f06048543708b758bf68afa63dc5e7415906de7940f02726d SHA512 1f236976cd291502229a49c2317fbcad94df54e2d7fbedebd9ac3173f9e51620ce8f2e37c78e86a63db8d9cd089e3eaedb990e58cc97847baa2cbaae58526aa6
DIST darling_core-0.14.4.crate 57485 BLAKE2B 3d284d6a5100f45228aef5e42f9de63b6cfe2b5d42f1224bb19ff5d262b0c293931ee99f3aaf1f0eb24e55bb7e04ae790389d73c624c5f00f17a280a4a496ebc SHA512 6df7e911a543e9cadd0810cd8bf6563e2f000b52bab875f7a34d229bb6c4fb7beb6ebbc4fb0e12b97f23616280a20f306210abdfd1dd094c53da35f97be27b96
DIST darling_macro-0.14.4.crate 1896 BLAKE2B e537b384c4c05103a962ff03be3da6c6c31d1c0cc25dedf5df1522c524e744446274a1696093d6f4479c0b6ddf02d27941fe959f517ede4b203bff3e20eeb294 SHA512 819fb85d8e324f4848669d32b2eecb2c2945a9891fa098eb9ca61d84588d26f0e0d1c7c482956935c7188e9c6feea0db5ae4c81bfe3d014f74fcebde80a204cf
+DIST dbusmenu-glib-0.1.0.crate 15844 BLAKE2B 7303528160d483b62c04e4c17e78b3ed3260f842765ac3337988383767718a34be49a7f3ddbffabf05548f9d3744f38a5a971a45d400f06bff7bc61ae3e50abe SHA512 2e537b3aea1e5de0aeeae6010a9a89bfe2c8c5a51649a7aadb4713ef56576fbe4c9d704dc8f6f20dd4890fc481f568cf7da2b58dc130d4edb038f711f9fe158a
+DIST dbusmenu-glib-sys-0.1.0.crate 8282 BLAKE2B 350ace91db770b4701348385e4a2845d9a1fd7b83fa174fc613a159c82d453e02bc86304ba2f77d024609b6151ac7a03b1803328646507c34a6f2ca1cb100f5e SHA512 efc915f9628b43ea58818cf046a07d94c27831cb0f8df18e7587e48be8f7e46c3325ab526474f2083ee8f249ddc65023aaf29aaa6d620c14528b3a8a4bae48f1
+DIST dbusmenu-gtk3-0.1.0.crate 6334 BLAKE2B 138f2947cfc23149b4258c147bfbb214136ac81569fe5eda545e633726546291bcabb0ef95406a753a8f65cb9fb20d3118cc4ee47cc710106bb52b3243e01b5d SHA512 78fb4f036350c6f2e066f96c77bc4a9a42b240f7d140b207552de30a0f926eb43291d3c97b7e00e15b687acc3269dcc66a8595c0f75c4c12b40b62adcbde3f72
+DIST dbusmenu-gtk3-sys-0.1.0.crate 5329 BLAKE2B a8102c413c8ab7d90e2cb059716d89d68a2dde8497bfdb7c840a1937f2f40cc8e8f54fdaf2df389942d372a475a330fe96e2c0e4892a6c8ab5d1659c08d96155 SHA512 665a348c46979c5603889c6fb1072acb4bb7e08dcdef27f8d54a8f0e8334d5bd704f4063629832baf220d8f29afc781c33b3c5b79d6bce1c11dd2f8b87388b0b
DIST deranged-0.3.11.crate 18043 BLAKE2B 738d5a88732e227bb0e0d33c04ab8248a699c7c499100666ffcd78673d1f38ad2d740222ab405e3eaa7a0a6f4596cfef90bd581a1baf77c954dca830c22e74f9 SHA512 48485666d3e50eb7976e91bed36bddbaea80fac4ac664723130069bd7d17893b6d1a2b82a4c3dd61677162e4305ba5ea8aec7bc2793d1b8b92dd1666c204fc43
+DIST derivative-2.2.0.crate 48076 BLAKE2B 56d27e27493c3b818ad45703efda607a0a0d9a48b0d43785b6a013443b8b964b67bb5b5284d242358415c5fb81b86b02079ee7c0595ec07bc658240eb114b887 SHA512 3c65ecdabd2dc202be3d83b06f96b6f68504fe542ede7e2285093c6d360a33ec76a3787c436c6e5ff8f59d430436a4b8ce2f908cf7b2b08cd8b0045de4e5d1da
DIST derive_more-0.99.17.crate 55771 BLAKE2B b290bfbf06119018206be0f8ad4c92508be4cbc443f1a937c38961e207fc3f433d8a87b2b5a17e72aa1735520799540557d9dd9e49e26b8eb7cc80289afd44bd SHA512 0bb5a94e56d35a17ff4deed61c437ba75c9063694032ba98b58be1b072d33f2fb170d51bd262a17ff1beed2110b334528de75d5315ac627202ccb13d8c490baf
DIST diff-0.1.13.crate 46216 BLAKE2B 27ceeafb7afd45eabbbe22d1f05667f513a6062762e6b77122e267282a8f2a0bf96384989508bf10c9e13af4856bc9f58f09b10055d6fc2c32681e288ffa9f9e SHA512 45e259c9fe7c23bd9e9454891b42d4aef6d681d35ee039d21fdb05ae9ed5856161a40f29889e7880ac2a2daf85f1b7d752d213b4a99a1a74ed2682c18a3ae7fb
+DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c
DIST dirs-next-2.0.0.crate 11689 BLAKE2B f5022bc51dd50bad4ad0fd05b159a4117aca47afbea66dc42c8306ca58f3a550165afbcf9f5f721ef5ad8d357eaff305c6f6e42789354a910d5f1d05d3b7b7c6 SHA512 6ccb732da8ccf7bf35952c22a3b0caa8238319feb0a6cd3b0957e6be12548a2ce507c69cb6d3cbd2adfb37e13e6521c6229da5999edb0e47a292a41c3ea1a766
DIST dirs-sys-next-0.1.2.crate 10681 BLAKE2B 71431533dbfd6016cc309c14a842ac8d43577abe768e69bd2caaf7d19d743f3ca95b9b0be1747077282089c64485f3d4e24bec8e56d4d883f25e494d328fbf3a SHA512 b3c40a8e93d4f9f4a890718076e14779aedd67a79da61b466788268c1eaea19aa493f043a7e410f5023a23d5509e639a6fc6681fbee30e252a601091cfffa2d5
+DIST dyn-clone-1.0.12.crate 11800 BLAKE2B a5690353fd20fb66d3feee7c6f568e795ffd67b5d92759619991c4649a1c8d521e4ef7143bf305a90c7cff4dc5aedfd956fde31c5882d5eff3f8bcfa9890948e SHA512 dfeba6756d8ef0bd4354899cd173a1d66ba4ee6b5d84fa0fe78fb1a038d993172549a18bb6005c58a35b970202ad97bdc0c720bcf9b1758566ffd92f5cfcc63c
DIST dyn-clone-1.0.16.crate 11766 BLAKE2B 00007d81ed18e86afaf542d2fdc048334aaa787fb3d97110183718f4240a0261e307d50fcba6bbe52cf1b4cb95743b6f03c80c664a8ba39ad72dfbed11b4a088 SHA512 7b0822f0f53b617d3598c033026e447a3d5d735e3087231ef4c7442e3c3eefbe690cf9fe1fc53a30b09dbd23e21bc1bc9a6a7990b70371bb99ee5e771b672012
DIST either-1.10.0.crate 18334 BLAKE2B ac5d81e0822132846e29f8959671b14ac6047330d54020ea7d4ad790ef985ecb4ddcb96ec7e327b1a66b9c89d37b112dae33c9ac35232c136f60ad9baab7d5a2 SHA512 2de38a37b7f3e61effa89648acadbf220eacfda1ca7c82fb77484e45577769b724f7dbaa297e73e3d355d6b1bd5109373c3e96e4c1a13a918176162b33ea2432
+DIST either-1.9.0.crate 16660 BLAKE2B ad61038bfacb16f678fff5dd9ccf8f345e1bef18bd7aa0aa9c99d44abf8428939362f32fc8dbb1b60ac56016e0096201071d0bf8c0431b660605d0dfa97da466 SHA512 4978d50842386f51e31a47ad037d5e491106a668bc701bb833e6ec3998afe3ebd80efddc47756b2f300f534b39b26fc01386dc878d3b02cc8c1fec6a474c2177
DIST ena-0.14.2.crate 22991 BLAKE2B b609831e2f5dfb6602293cc3260098bf0dac09afd516a8e6062453724d7d3f516bf14811e81ac3e11efd917087dbbf4f9a3524fd30ba79cca85cee2c0c63d77a SHA512 e66eea99484c2b7fa2df7c8b3df3a10dd185163b781fa03b1695900a148a7c1a1676f7e6dfe2c5d18b61a90a6756de0bc42e9c873fc7a53de3dac799b7c23c01
DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77
+DIST enumflags2-0.7.7.crate 15090 BLAKE2B 6533e0aadd1a85b410d14f6dfa140c33ad58e2e8cee7c446b4c27f7cf567f33f5f788da4c1f0fd6cc5c3d210dd6f9626434105b1cbd7275e2fbd86a9a073e392 SHA512 2519a25cad271d86b3195b29b0b75bc8792ef08816881aa9f3b403d7c63e6bc69b1b0d4fd565a62fdef3ee0f387157e331f8b3a17093e4374565125b1c9f080f
+DIST enumflags2_derive-0.7.7.crate 7903 BLAKE2B 0e8f4ad8558254a6e532868608c23f70f63abee3708ad7fd5c41c8791c33a8790c3fe2eeeed722d207fb75721cc37773b64baf2ce0a406dd465c016092e6caf2 SHA512 f4b0c3b1a731e83c7cf27765392baafb0f27555c0ab708a7a430f349c520df7333d4d926c348a15339b082c6d0335491fac41eba3e61d42c3522717acbf05df5
+DIST env_logger-0.10.0.crate 36574 BLAKE2B d2f387682059fe9b4566ab995be449c58c57b8df5e5d8bd5ffd153aec1648721d8a9606d3f9aa034263651f5182043e08b6cc08d2d29d0a10f6cc61df9949a06 SHA512 4dd02f9d333a1f15657167ef4bd403eda5426cad17e0a4a43fa20cc65449345eb4d3fae2d6b10a3480016b9e23497fac13ed7e70b40c9450ef430be9f910d3e4
DIST env_logger-0.10.2.crate 36402 BLAKE2B 34ef02d0f53fea474e7284fd7021ed3b44b11be2c0d0c9a66ace8792bac74d1a6b43997e0e7d043ef89e14903f6ab6d42c169bbb164f05cfe4e1688611639edb SHA512 c44131efb703eed984d8f4edcf18c77ef14036edf013e8bf445703c74a4386e4c3f4b55a272490da1ccb47a692ccde4670772c74d35c5723601c870416144b69
DIST equivalent-1.0.1.crate 6615 BLAKE2B 302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a SHA512 b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140
+DIST errno-0.3.2.crate 10424 BLAKE2B 3061d5a5abee015bf41c11ef31dd0f38a738c51992e3bf9f9ec98f67a87b88341c97901211718a5f103b8cf021c875f8fc799fb217ad69fd27371326b5aa40e7 SHA512 b728704f11cfb2bffd421ad39e7bab79b11e548e336e9dd1cfb902bdfbb78a8afb102ae5684fbd6ac4b01b12603a1011a1faa21cfd0702bb25a300364b17ff84
+DIST errno-dragonfly-0.1.2.crate 1810 BLAKE2B 781fc26dce5c33d83b9a1fd9be2b2ce9ac2559aaa858957ba6777e143b1e44cdfee48e1b47e3c91a95075a51921d1a421d0b45eb3d8de827cf4dd0ad744a7d8c SHA512 f853f1e1b8dd0f359a8f9a0399b3384c1103cd090d96e2b2204f91a40d40a9eb99383d4aa6a11e5470c51557afacf452d4be2049600d4235d27f59870fa3b916
+DIST event-listener-2.5.3.crate 15392 BLAKE2B c56ed5eafa64014141e869dcf952e86f755eb35ed1722f8139260cb502ba226351ed1bea301618e94c9ca7f3309747057eb5f7d7986cfcdb7f6b79d13d52b439 SHA512 ddd67c1139ffe2aba95d763b73db0e2a9985dd2e57cf8f72030047d53d46d833df4b4192730cf0af4e060ce52e4f2df23aab6509abb94a6cd02e0d8cc3559d22
DIST eww-0.5.0.tar.gz 331173 BLAKE2B b11f1166f8deb3a2a6c20deced4c1a016a058679c2ce5ba8499db4c5f07553c1886d15e074f1d96ca224448bc811bfa783864500a4a75e185c50302285aa2829 SHA512 68f75353d4a76a61c881956a6c9e0820d1b93f2db7503a8e37753b194effa250e0ce3d04f9cdcaee8b99417c4412c37203c1c5bcdc0950ccb1ad1bde057fdb1b
+DIST eww-0.6.0-shellcomp.tar.xz 5112 BLAKE2B e15c8989c1aa3b53bbf80d0a288cf5e4ba4e430f7dbd9a5d6b56fa6eb50dd8dab97e25b945b33cd71531695347d004676ea0df90c3bbff991ae24d10417039ed SHA512 dafac1d4d8122b1f1631a3b51e857e03c8936a565af856deabdcf7711550b681038260b424a957a030313572074420c97c4370d93271d4ba408bffbde09f49f1
+DIST eww-0.6.0.tar.gz 353440 BLAKE2B 6e806c263aae113cd8a1b430ee305f6514abbcddd7fc23b22b4d00709d4e74892a31ba1ee20a3705be5df2df8fe0573b5a4c9278292fbb4d3098f09633630880 SHA512 4a11f29ea665875a27af9b16ebbba7dfe7efb859e3fc3fdeac577e473de78bfb6e96b0ddc92c27052dcfb686ad1013c375e2273b17a758552ab62a866750a208
DIST eww-9999-shellcomp.tar.xz 5112 BLAKE2B e15c8989c1aa3b53bbf80d0a288cf5e4ba4e430f7dbd9a5d6b56fa6eb50dd8dab97e25b945b33cd71531695347d004676ea0df90c3bbff991ae24d10417039ed SHA512 dafac1d4d8122b1f1631a3b51e857e03c8936a565af856deabdcf7711550b681038260b424a957a030313572074420c97c4370d93271d4ba408bffbde09f49f1
DIST extend-1.2.0.crate 10581 BLAKE2B 89d9281b1c89ff03a08bfa58d669cff6eacaf9bfa2b514d11115f9686052ceae4ae77eba1f1e00d82cba47f439467090beb8b9231c3b842e2f47876ac5049338 SHA512 e6f4d8d11cdb742510e6c06d06b08f546ad01eacb0037b9c162abd19e55b327df1ab93563c173bdad42bbe57e3a9190c3195e093bb8f17998ae25fe80ae1493a
+DIST fastrand-1.9.0.crate 11910 BLAKE2B 570c66ec1d4ace08b9790299759e3b6f0394aca52c4ec2e02258229c198846cba7c0627807548bac3ef1f86c7e512c4bd105f1e18e35ac0ea6934f76a6838e1f SHA512 321567b5fad8552c0efc4393b1e77d1bce288b0a88c475d432f79e91b3457ee6eb5db9e4d65ac6381b9990c9916f4651b6a76250df44d51ea3e25bd8184bdc52
+DIST fastrand-2.0.0.crate 14402 BLAKE2B 8bf830151ec616dbc25f216265722e39f8a2cd9ae036b0904b73775a30497368aaf9bb7f49890c330024c3d9b8084749c91f601b60b53bc8cef2da8b0aa71322 SHA512 9449dd52e4b722d5747f68f127843c0d1a402765c2b6186b9526f8ae23293cb1f6b50adcbf18a8ea768292642184cb0eb42b1801d20f6815397903f9977f3cbc
DIST field-offset-0.3.6.crate 10032 BLAKE2B b4b43d35f793c55e8c521de7bc1648501cfe46494fc17d0b6135ba3456c8d72a11b422a16735c681c7c6542084652c119661372628096d61197f6e387b66143a SHA512 3ec99bf5e860dc68f3fcd0abd2b0de2ae0b3174eb177458506aabeee9dc7b0b8b58b925e2c6108a8f18ab95f2e1952dd9474650a639e1c1d50ec3f72bbd30077
+DIST filetime-0.2.22.crate 15029 BLAKE2B 068f4a84388d04d900bc5518a94895985ecba9c618a47b6483cabc31abd267e37ce69d78c51703ec5745307800d96ac801f37ac9959c60283c3c3d6ccd349c0a SHA512 d40d8baeb57ec85bb9ccf76ff0f898915c4e6cf384020121b53f4a2a1ef2840af5b4c9e8e1ff177034273f4f7a6bf81d2dd7a02cf498b61ea31ceaa30b877067
DIST filetime-0.2.23.crate 14942 BLAKE2B e4d2d9c11745dfa5592903f3c3c6a9871292a02f9862607b610ead7562b5d1fc3b64d37e779cad0630bde8012efda72d86af5e687cd2ef5d3627d8a89bca517c SHA512 8d5ac82482758577d1d0669abbe7b880efc44958687bba745c9ee4a5c16bddb44ec0fbe9c29cf424e7120905f3c3da607f3a7ca1e50287154c0475ddf2148bf3
DIST fixedbitset-0.4.2.crate 15954 BLAKE2B 91270883db5ad0e999ebbca1123d8729d3040eb936034ab8da3cda72a830e45fcb977b3fe3c2b94e870c1fbc366ee8602357bb77e8b9a40cc41a04afad1b266b SHA512 57c5d756b0a202b2506270f0d5e890f7617a1e0c015b6059ea23fab49cf7af47fd06927eb56feb03b37cb2b6c467e326b3f0da1e32cfcb6339cf11a130a3ccab
DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334
DIST fsevent-sys-4.1.0.crate 4620 BLAKE2B c203c774d5038d4c4abdd7bb9407a6b5f2b203a609bd92a7fde38afaa71248f4610e89c73eaf982a5d76560f9503081b7b10573046b1a91f09de4b642709417a SHA512 e702686629557b879efaccd37b03a7ec515eeea29d8f8ba46f82b8b68ad157ef9d6b188be031f806d8fd27d4e9d2689cdd6bfa14e4ff77493a7d0be3ef1238a7
+DIST futures-0.3.28.crate 53229 BLAKE2B fa4420594a8e261d2622715e5e40123d401b0a549b8eea9f72efe177c606b1fdb3743717a4826bc82479c1700e90a1b3bb3d0955d75e7eda84adbeabe0dddf89 SHA512 271c83c157de76b1c58db49d6f7aa0591c665551e60dbb260c3ad292a48138979b06e76b99a78cb4f3ea57cff3ec5884839cf6a0b807fa212d54ac28799c5e6d
DIST futures-0.3.30.crate 53828 BLAKE2B 4e595639500f7147ceb994359ef1656ed096ea679409a5721c05ff84ba439fe4e82563a7cf8dca9aed4cd16b03e89ba1385b0a34feed9d4923871225e131b91e SHA512 98fc67bf1047609c8bb0763c00ab9cb39b6a6d0cb7d993bce4966ddc2492a6578b789e98095981b207ddd73ac4b1dfcd5224b352a0e970eed347537c6fbea43e
+DIST futures-channel-0.3.28.crate 32281 BLAKE2B 128709ed9c3f275ee9365135426b626dab7d34a706cb9435a6ee45e2a28f7d2e6702b7bcd8b0788f7171ccc75917f287834a18c8af58b73ec07f46425aecdd97 SHA512 21bcae42859687538a3bbd4a4328b1a176bf8eec3b03f9d341f8ec08e796ada1638c0c3011246995d742e392a3ecf4446ccd2e92ea5426fe658c5f5ad8303b99
DIST futures-channel-0.3.30.crate 31736 BLAKE2B 57461dbb723fd53daa07b2fe6164125508cc3901e0138d2a60da5c814ade415a3611baa45c71487f1853812282ef358c132785ff40c630408e8544d57eee3483 SHA512 689531748821529c528772a6dd0f27362078ff5803d2e0b431ee5a0ecf8787b5a15262d65d52f48486ded46b88f7a9c477ad95cc2c5a3e8f5f9b9f53f367832c
+DIST futures-core-0.3.28.crate 14780 BLAKE2B 551327876d54a6ccd97382679d61afb3e344f7c8e26813ac85779a57850cbb1f54041c82d71a7bfe4a30d1c8d9aeb560d8d4bf5babe7010fb7cf3c36c8ebf3cf SHA512 a21900a68f1a9232c245b160e95896b109315f10719147b4f104e11edb5b59c862555e07aee37a7d4fbedf0f09a02d4ed329f92fa1ad4679db1d7c78ae2865e0
DIST futures-core-0.3.30.crate 14071 BLAKE2B 76a9fa5aedd0d4ae8dd9db9639839b6b342125759c1b9f9bbf58aacb4ecca316ff1f24ff8f3c15f559ffbf974e4c2cd02a5418cb4c4d7612dac8449c8234eeb8 SHA512 3c7259ddacbe02e47a84178b75e5f13523bd0c8f8bc0b2375f7ecca60b7075695ee0a5cc4e1c1de26665cf250271173be803661e2f2f53e2a3b96380a8efe7c4
+DIST futures-executor-0.3.28.crate 17743 BLAKE2B b192025f0838c924783090e7b0bd7806edae0502172e5f961d4cab5a4a5c074050ab6a707a50baa0ac2f505deb1e3ace4259349570beab0bff34b7bf6849e9ef SHA512 1404717a512f1968e3ac6c53bb6c428fa049b0f6c61565ddc4859407cf16c56735cddf7a2931b2816c6c8dc8809f76e7f98ff05d4f80e4567488c2aa7b424a50
DIST futures-executor-0.3.30.crate 17744 BLAKE2B 927abec40eab31251409149179baa95a8d025f9cdb848afa83f95439c4768abbf6da8e2163291a086ea0b83b0b650d1e19cb8e15f70369b70efdc70eb3121f6b SHA512 fa65c038e5eeee695b2673cd65cf7529713bef47da373290595b554bc287267ee5cd015ddeda5a22169cc8828717987364584a91a69685cdbfc0fc779abd764f
+DIST futures-io-0.3.28.crate 8910 BLAKE2B 5554e9dd8548be47e7195ae8b223288cc2e765dc9feb703092972ec9e19ade825bc9d7093625a77c7dd2213df59e2c70ada84a84446b5a940c3e62daeb9dd57d SHA512 805177f2677a09d94ce5f010af9244e0e0dc285937e355a836179297c4c912a762f8d96bce57af388502810dcb67a772b7a522f5c6b21be3aa4b7ee46372d402
DIST futures-io-0.3.30.crate 8910 BLAKE2B c9af4290f45a9fd0839e107fbdfa4abff4f9077ff45b61054670419076f1c4508d7d560d4d86f8cd7ce146e436e531b9f5e0abfed2c4f2406c57be209cfdd498 SHA512 077acf5eab1101917b5b4b4b83347d30d533110d9a34c2de6db1411ffae0f0530f457033c5a5c14249119e89375c9f12127790b46e486dcd003a12a6fad48bc2
+DIST futures-lite-1.13.0.crate 37058 BLAKE2B e1151b6263adfc96494ced26c377eb6582c4529f1c6347c1f920623400d317f6466d11e03c1ed70dd4172c57340b13b1fb1cfceedf430e3b95879bfa120d8e59 SHA512 2c007c62294c86108eba30a850a341e8fb369892bcbacfcd4b7ca39f949bc9a20624c3bb21630706d8240e27dcc402cec542480dbae8867ff933375e4be15fef
+DIST futures-macro-0.3.28.crate 11272 BLAKE2B 3f6bd63f402ab3348e1eae96897b4c18aad01b99a1f9ff555496fc6f3114cfb3334b1949604c21af251fdc4923c09e4412f40031ed92646a06ee05f6bee9a0d9 SHA512 accbe4f434b3704fea440e1fa7492c438068ac89798e3b2c85a2b251c55663ef2c65480f6da0884c8e80a9c5f5203aa6ae623059235f4a480a54d91bc5e9426a
DIST futures-macro-0.3.30.crate 11278 BLAKE2B 6311039db4bd31242e4f45bb7c581bec28eec9da850c47ffd9235c4baef5e5f1c72155f49573b2dc942a9cf246949b79c7d35200d04f91a13b0205cbd33d96c0 SHA512 220b5cc61c744617479d7e8ef9888785a17b9bc26c517c9c4445a39e8be21f111f77e53bfb3d143df18dfde23feccee17e349a84b897eb4d86f94d7ae4f714cc
+DIST futures-sink-0.3.28.crate 7852 BLAKE2B 752286cb15ff37e9bf4c6cc80c8ebfeb229dbaa4e8aea6fa505f1e145e5dec99c4818c8e7ba2bd8a03898350e05bc124a5ad83e28989e282dbc132ed13e7fbf3 SHA512 e3535aaffa42215448d78adcba72f1dc3131598169dbcc8b52b82fe3e74f4b0d5631ab3dd3ac5d4315be890b94d6fd8f53de274ee4815f9abb27d40982c96c07
DIST futures-sink-0.3.30.crate 7852 BLAKE2B dc768e4ec4c9f9dfb22a20c1c977401d859072b9222e6f77978332f495cbd0f764b175a679c9d7c77028d7b56cda5e2d86188ee979c7f323187defa6a0485ce3 SHA512 1c198da8f4118d9a9ab2b597e3f7b4e1ac7094dfa547bb81f3c4148c45216ef55b309255849174a517ebddba6c874283425f1df6e56e2ba5150af091bacf46a3
+DIST futures-task-0.3.28.crate 11848 BLAKE2B 79cd7b01d24a5274b0e564edf0f5d041414d9dee02c503f2303958e679db0db3c652c64352052d20bbad7bace078b553f77920e2ae21a948a1c884eeecc663ab SHA512 198f3efa51b1a8492a4151a6e4ef6e7abd09f2f537f5ffc2b8f2cf739718fb9714718226ee1cde7a58d41a2e623445ae64013f02e7f00489320c06292465fa82
DIST futures-task-0.3.30.crate 11126 BLAKE2B c2ded9b9b709fc10c44cfeaa72d4e7477e43331b14f3e72433b25126fef93f2812a09b4fdc3c246b7379d41d3764ba17fa87c3e9c131095864cbb5f54771a204 SHA512 c190fa0acf7ff15fa67fe172911cfae803b2a8c08168570a5518a40767d08134f147259a413ab25c45cac5dbf2f601a9753c77ab0eb2c180cad2fe48cfe3867d
+DIST futures-util-0.3.28.crate 158510 BLAKE2B 0721356a4947b39cd066dc8a88afa7686b832be269295af3ebff8cd74b42dffe5484399f66e3e11e2b54c2b8e04ee002a9d507eeb5259fbdc00b226e0f94b175 SHA512 0c7dd3701b7ab0a443a56aa64e6d9b6ba7bb9ccba4c05dfe17608df3e2bed1c2fa460a0cb4abb9fb25289d3a776128ffcc4fced75ca73a65d40b18ee2e9a46e4
DIST futures-util-0.3.30.crate 159977 BLAKE2B 9012edf76336952dab02cb61db48dfc74b6cfc17c137c36372709e8d575b306a4d7c4da89328067c9482a645aceb7b44ef57deb21a0c25964a5515e738a039d0 SHA512 7faae5aa35641d858d0f5430e4a69acd4ba9037852ad73c5a890bffeed411d28820883e18bad4ca8f7b0a765f9f4c5dbeaf5d0cfaaf90c2c69846434ae091951
DIST gdk-0.17.1.crate 86722 BLAKE2B 061104dc6bdfb2e0561d68f2b6a6ce852770837a67627146b2984cd70679ccf93f614a7111bf4ecce01dd4d76371c7001439696f8dde2f34b24cac355a48da1a SHA512 9f8aa33702f62d4bd754b0ff9a43b4e350acfbed92478ff8bb0d8f64f8c8a85c0ab92ea49e34ddb2e8dce428c189b429f06ecc98ad9f9f0be1472e3dc7f811c2
DIST gdk-pixbuf-0.17.10.crate 18097 BLAKE2B 864955df0557a04d9d3e734623f1fcffa42dca9ce4a52d6e8b31155f4d7f95905d5d9c7ffe3d4a7a712924a37b5f972e867c8449bdc2569ad85848f957f057c1 SHA512 92c83e0a0f519bcfffdbeec79cd23de55f32e56309cdd5eedf0b5041846640fc511a1afa9cf3e6e9c6e9b6992b246b5447725a6e5bafc37e4998818a2306b45e
@@ -89,8 +157,11 @@ DIST gdk-pixbuf-sys-0.17.10.crate 9689 BLAKE2B dcff5f4740591b80f4385162c9295471c
DIST gdk-sys-0.17.0.crate 73297 BLAKE2B 837c78bfca45f06328c61ff549be93b02084c7e3da8d44171e3951b46083f9ca36734a8028cebab983e746649fbf7f6bd4d471f28ce6e6e41d3bff317a073d23 SHA512 03edb4a8bd0dbdde3a9ea7aa51620e3dafc92252717440ba285d4d844e812d3efa39bebad8bae5c633c375bf8c9267428ee614e63662c652373451673202c1a8
DIST gdkx11-0.17.0.crate 9172 BLAKE2B 97d99c567abda02b21a1e930f50ec187bd81e3b371ba640789be775398a0cb39da51c5736f96ddccc794d656acbc993bf5fb2e0b833c43311abe96702e4054f6 SHA512 389ca831ce82983022ab54902f6a91ff47003ef9760afb5f53eeb1db4634075510ec08626bf44923886d96e22242a6ecc852aaae751ca41f3c4ea6293b0b8846
DIST gdkx11-sys-0.17.0.crate 4735 BLAKE2B 93e41b7d5d65944f8391ac75ae5eb8196fcf885d7aab10550b9f613721078bbdc1dd159f8daf8bc9a86e91711890dd442de79326fdea80a23c12de0d9c9a74f1 SHA512 61fd94a089a910b1023b2ea14a5c20c64aae45b4f2bcf58324d7d4d51d45276e2f7c1471223212defbb72adcd30bd954d6591a7422b79d47da116e3853986fa3
+DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
DIST gethostname-0.2.3.crate 8174 BLAKE2B a7579a33f8180729787d2489f0936191a911b2ab085d151e6bf6ff8dae1bda0d6707a69c1d6ba829b2b087042bdb6eb676b77fd722a61423eeb37fcb30554f81 SHA512 c3ce5187057ea09def22331d2f67a97cb53759e8c45179687a8bf9c67d16fac5f58d6c1e553b4f74b702bae0baa7c70eb5ed71f99ded3d508338a4b1e9f115fa
+DIST getrandom-0.2.10.crate 34955 BLAKE2B 8e7b8554ae360484ceca2a05f834c2664b08f41cbc6c955663e1f8f22fb5750481518bf1c7b49f49223a99a66914ef013347b9186acc97a20249f3222a13f9d4 SHA512 82af9e0417bff9272ed0478be4ac90426405ce210014b21899c6b95fde1b16893bf46295388ff5f13fa712a04c99c46b770fab83f41a1343af1590a86ca8da3b
DIST getrandom-0.2.12.crate 36163 BLAKE2B 0afef8504932ea0ea051cde1d14bd5b79edde68d6ebae6fe88fa4aaa532605a16f466d0d9c0d0aa619eaa105600b6d5ee4e191865a3fa041549a78f78ca82396 SHA512 dd97d7dae1a7ba653abdaf2db719e1a9c8eb721b08b4af0f1c45b1ed5079069d1b57e4f6d9d879e7fae3a890763f4b6aea9bc2d945392b98e811e7b348589bee
+DIST gimli-0.27.3.crate 287904 BLAKE2B 97ba399c72cde7b11f0a103598747b58b242ebb808c60c037292b992e30d8fc5e212e5620c233e485adbca61cfc433a4697de3ca76c183ed517a93cad4f75c25 SHA512 b3782d510bbfcbcfd8801b4343a6864b91cf954808e935745caaf1b7e7b3f2f94814f1543de9a36a8d4e5c29d08d69be9361aa2b31e7a261d5dc6e7b66ef4ccd
DIST gimli-0.28.1.crate 270497 BLAKE2B 4089e0f871295d464e548610ab5f0c2fd863825416109cf58ca827e482897f00eab23b795295758f1e3af16167b52c77c91df6f707f1f445984a6c4bcd68c6ef SHA512 695e46471fc07813dc4a47744458729b097f6efbfceeb57eb3db4165654e99bebb98dde2d73230b90bb5dd7c0ca0c6e77c7c3dc6f2abf70058b830a2fb386d25
DIST gio-0.17.10.crate 211583 BLAKE2B e324f5d0a52b251f854dd2d1ac23db6d5ee89821bdccfb4637f956a394d24ce3a7a97f289107a99a2a179fdffbf8c97d0721ea2e1ffee4462b70ad1fa7249457 SHA512 56ea1ed5f6e08a2c5ca197f921157cc9c750da079c3110e9c6c20f762bb14d18781ea47d4348883cb514d9e829e1a8ba4173e61b8b4c42f585ae94e14a692f98
DIST gio-sys-0.17.10.crate 81313 BLAKE2B 91681d4796462ba7699d1e5583b1a1059026bdb851e50157ad98d03745021de3ff6d6ff7a8f98bfa8d1dbb1f4e704faa4b5bcc2c9f835d60c1c628949faed211 SHA512 cf2a51fe0fd02b0d6f5e9de16d1d80bbeeb1ef54e89c48f9384e2fd82f79085ae6e636ea671223e0a45a15f32d3a05f92a89b900096c3e4fa5b86ab606835ce0
@@ -98,121 +169,178 @@ DIST glib-0.17.10.crate 259266 BLAKE2B a743e50a8f5922ba88785bcefd95255a0adf7eb9e
DIST glib-macros-0.17.10.crate 48038 BLAKE2B fb6e8ff4dff418544eea6091fcf67a0c799bf3ab41e4c23c7295bb591afa12d5b594aae281ba67f2f9abca9cf6490adb766ca5aa63090b881d5209159fb59a9f SHA512 84b84a059b3ff91b4a13e34d2728acf0be412e15d82adff34e7dd10cf3c1fe8669c6a00478bd7e1907c1ef5e490f18140bc957836d5133379edda2dad63e8d57
DIST glib-sys-0.17.10.crate 60124 BLAKE2B 712e3257ae3481474b8d0b885dd7ee16d5e1b817187ef4b6bf66a2247a74df5cc836a7bcb02459289da9f6358ad8f64c82f6d80744ac1e38b8d08ab05415eb86 SHA512 aedcc1538bd4b341aef4de4c1105941d95220d948d7f5ca84b3014ac3bb66ed9e2ba2a9c1f94c4230f89b4b641b74c725a888f26d8f1fb1d0d2eafcf941bad8f
DIST gobject-sys-0.17.10.crate 18631 BLAKE2B 79767d607f22861faffdc0afb7f013a2a6663462fea89faf7ea85bcb0e7f4335f63e8b4f60c63fb2612ad058f5d0a2a4d62903dc210e99d57b8a7260774c0094 SHA512 42aad910f418c4bfa61ab8db121519c24146eb0ffcfb0703949d1927a11bffbe30317c0eff480d989829049e123d69a1a9a4471c18aa8fe40783ea1177e491e2
+DIST grass-0.13.1.crate 11531 BLAKE2B 164d70334fcbc202a8e5de3a630c9cdfbd82d10c8b2955aa4cdd4a743e99a72bdd8f2300a430f82b89ac5339c98da7f09c1855fabe1db4ae6ab3ff33a5e04841 SHA512 3ee1904514fab5fb1943a6ff0a9f6f33dc59099eeb62a3c585d1d92968193d7e456e14d9b264c29165bf6f4cf3e06cb34d9f6a5b71f1a87fa991f9db921e8b7d
DIST grass-0.13.2.crate 10872 BLAKE2B 9bd961f968d7127c350a1eda9abb310a62774ce5568f76b8316d79885407d31d89ca12d981fc1c7b5dc47b0419548cd125035f262f86066d1febe9733d93a811 SHA512 274d2d227edf02c2a863130538234972a82c0c7a1b3a46890444ecf9980eba7ab12409c66c52368315fccfb7250f4c4c5559c474a3af5a7f4c4d5fd276da7111
+DIST grass_compiler-0.13.0.crate 165682 BLAKE2B 0f8dcad93f48670a6e32e48323cfb41f847962011009a7f2849b4e8e384a81f32f930ec7d459170db41582711ef38a4d66039c5f2d354ae03882bae68ea3ab65 SHA512 71a3309107be1674f466d0c3906916d58b9ef5e424e1ab06af8a707e4ec56edb01cbc8634c86a4c780996e166814b8aa01e5f44f734e6f3a8905375618f44c89
DIST grass_compiler-0.13.2.crate 165676 BLAKE2B f90e84986e473d60ba52072cd9b0fbda3afbda519b92a9cf53f317b520f50e59a88097e087c5a4004ebd4b3a2d59c655e5e4b66bc4f28fc67b0858e40496ed9a SHA512 dff51da446fd4d8f95bdf642ce8c72e094c46cee43fd82b6d5fccb355d28ee6ff2d49b5f7ab278bc7c37520ad362f337b8ef85ea48e84c82350ee38299970242
DIST gtk-0.17.1.crate 428849 BLAKE2B 3f2d5ea3ea896a7f3fa5de575b468bbf9c356a7b63ecd807fed10fffdec1a44746c90b9e6e83410967954ca2740c14246b479b41104f0c09432d41d68a7663e8 SHA512 9d5a13cfdda83777d6a4f42ddbb01e2ce43fb7ae54a8f09111a7e98aae45a9a1f083ea482075617662d6267f3669a411b1e4d93928c287a0aa388efa5b3f237c
DIST gtk-layer-shell-0.6.1.crate 12824 BLAKE2B bfbc58c049af646d9a2b66573dd4532e21f7573488a5600cc7da62e702ea6ed806bfb9d2acadc2341a57585cdb73bdd4066ee7095eeb6e73779dc6b750098937 SHA512 c803091737d6430ab2c7eb74c26a550a36a70d4ea9c952ff63d614617d131a34b7044a6c853ddbe54b133efd91c935ae6781e1f77abab569c8347e1a3b1b6f30
DIST gtk-layer-shell-sys-0.6.0.crate 6348 BLAKE2B 30f2f9b5086946b9e8d97d210357c55f459c8c12548225cc4c97cd8b2be3d83a0459333ba811696d4f86a522adbf8621c10f4cecd0c00777d212ea2c6fb52f32 SHA512 6b74a95756850e204fdd45ea62cf4ac4645042b6ed0117adfd2d8887df99c0654abbb886211db2ea2bae501b70c0c43a30bc11849eeb28bf6e026385bf4548d6
DIST gtk-sys-0.17.0.crate 137218 BLAKE2B 02933c37dac4745e851d26dc5e5406827c7f21ac6d3ba93d16df8c390cae9788df29213524730713141e91ffae17752a7348a324a1b032944f0cda231b466657 SHA512 acee965c0114c6d4880ae5529ee54db33d95d38b5fa6e505851b7a47a220d98ddfa57606a8c1822e51af64ef836abfa95764af35846336aff9ea432f9018a493
DIST gtk3-macros-0.17.1.crate 5668 BLAKE2B ea66e78d2e94d50bc5d1023c3efc0cdf4579d518c94d03cefc280808d3fa3b5bb0a587fdffcae7f1a96a9772844df5156efe81663578d9a8353ba0a2f1067225 SHA512 3a9df57eb1c9c240b26e2e78fba512b626f40eda385089fd31d52d2e23b2c1c4a9d572ea70934e0df91b6138f01d10af998846a0a50f852952348b723f13d2dc
+DIST hashbrown-0.11.2.crate 85713 BLAKE2B 402f9f1bdcb92631206f9b72923ee35e28db8623e87469c0f1496664bc7185077013ab3c8aea68268241e5b2504f10cddc613a350abd4291050deda6c112e559 SHA512 c21ca68fd49bbb741901f59fed04cc124b8da99e2a4dfc26e2e5e1140637872b344612a01691bd30cc771575c571be15f756c84dde225441699cd2322af2ad6c
+DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
DIST hashbrown-0.13.2.crate 105265 BLAKE2B e9ff7e6e753166ab3051a834df6f2da81a19ac6997ba269ab13a65e0abb9ce00839311785aefb451553284ad5ef3a0cda925dc2bc188d2a138a78578e530969c SHA512 21dae7a283326d21e16bb32ae0dd1481c4936939a32a06478a3351c2dec97941be532437b808e99ac40e7900a75433fe0efbd852158659a682461245e19d0e70
DIST hashbrown-0.14.3.crate 141425 BLAKE2B 23c63a99c6c6b7a6b9b9e8bbbc7f1e342e1eb9d7582fc9eb408d3eec50c99f34502d450170bcfef4da7f2b1e743e1d1619875ec879e4753dffcb84f3c10dc3b2 SHA512 4d344e5c89ce58e04668b80ef10e4e110a3a5daf4d610c52d980577795d0e2050c7d0b151d8ba97128117665e27b92ab0300f85b88bd6e1de943c62d49249356
DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
+DIST hermit-abi-0.3.2.crate 13783 BLAKE2B 43089507a5ca0731a9e9a54fdc8f4dd5f807244797eba5bdcc072c2c2b3761481df65b8cc65900769777d9d21f8345b502cb1915ec36747160e87f179469a661 SHA512 22901ec8976a7c96e93c9e07a2c5d3db49d7af60ce60c7ee6f61c3cbe93190d1f285e737c1c8b2236d540ab14e5d92e42828ec05f1b212332a862baf2b1b57f6
DIST hermit-abi-0.3.6.crate 14884 BLAKE2B e46434195f0cd710ad215bb740ae5a012a1cd9d9286f43b5922a90ded832d02f82812790a1682ca5211fd22998a86cf9a03d267d71c69fd302a0e3f0c9c55816 SHA512 ab920f843f7061949322597ccc3b6c64f2cd9be106deb71bade5848c379e0964892fe154ab89eda93d767298ad44db7c66604e6e0c065a8921089d873940e66d
+DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc7a4a19e57c2e662fff2cb046d4c5bd7618ddd523045f3d8c78754508f862f9a8ca29ca9247da6d6ec79 SHA512 fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6
DIST hifijson-0.2.0.crate 17534 BLAKE2B d0aadb9615c1fa3f84ed0a0a9b8397a8741fe2f1b550d727875a30d4ba2bc3d354ad28d3d30ec2e116fc55113c2b6331440fa9f037da49712727cb3172315a51 SHA512 d4f2298428f3c9b0701ad1f4bee881d1f205af72d8670a2ef671387169a413de5f93a3f7b3ea962adb507298f89d2e0ccfec4a1735177818a8124d27047598d2
DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c
+DIST iana-time-zone-0.1.57.crate 19785 BLAKE2B 2304a63e4d3a477125ed07fccd5a84832f775c4a0fbd60a995e6f1850aaf3f5047c6f70975c9f6334f96def12770d470677e1f536e9817f8ab1df8a312622cfe SHA512 79bc0fe559dce022cd3c15ffc3b6f870c14a40de6d5a61b4a5a6ad28fe7efce82a16ac5102073a3510f3ba683843475f7fb8a4029bbafbc1cc25e48b98ce2fe8
DIST iana-time-zone-0.1.60.crate 27074 BLAKE2B 6f534056e220e2f721fc7c7f3ed24152eea7f07d1f4cb3609ca734ade32a2d6b18fd0164ed831170cdff192cbe48653b2c4eb0903fb6f157292b3b5bf47299bb SHA512 5619b994d3277f56e65322a7903e4c5e03928a87bdb72831cbef88788aaf5573b8460abc0a4d5488c5df7052bb978531d973dd66002b0ec4a3af468928c9b722
DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
DIST ident_case-1.0.1.crate 3492 BLAKE2B bc79ebeefbb7e3ed1139e3f41d8d20fb175786bb123bdb9c1a92ea70effb4a0e5e798f24b068cd66a1bf20d53eea4bf24de495b5568c2d649ea804389a1327ab SHA512 81003a43f18da5997d644319274502e2066af9f9fd1400afda7cf2986b3ae0b7355b932302723cd3bda2d46b264340434d9279dea58425bad13785698d5808a9
+DIST indexmap-1.9.3.crate 54653 BLAKE2B 7bc1768589e74020dc15d3dd064009edaaef39b7aeb682d0ca8e49944e3f020b9c04d64feb102e88b22feb40863479dfaf4722d6a77b5d19e7ca553f4bf64c1b SHA512 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37
+DIST indexmap-2.0.0.crate 64038 BLAKE2B e7a1b2bbd790f1446f77262b5b0799c2a816a01295a9a4db66f10e6c0502f8970982fb808581472e840cc34dc70e7938b89408799ed0d91aa50d3dd0b4807995 SHA512 59bc19653436389e1408e21b0933e5ca6f9fe228f0f5fbe9a7e4fb461b9712ba82983cbf22c0581eaf7913298b9ef5842702946152b493c1dc651381d6bce1a3
DIST indexmap-2.2.3.crate 79019 BLAKE2B cc87bac104efd9aa565e3b8d6071f271b33501e2192b3a478120c41d015537e807bf3ae808ddab930aeb861f353022ac76522e5102e32f72722b93d36d5f2236 SHA512 ddc45ebcfb36d761d8c11b8f61bcef046a51eea71692d89495c897cf9b4cdb5e14287600285297c8a6aab543761d9f5ba3ab45442803837a810b945aa346d48a
DIST inotify-0.9.6.crate 22971 BLAKE2B 7a6cedd29b2503911fb42324fe3b4f4f20abb62a6b4370f8a7f634d9988f1b3053a70d69d6bbd7b850aae2590ded7548b73326a598d31e5b579e19ac3cc781d8 SHA512 39c3db1b6da620df9eaaa41cc20c2f22b9a372e181ed7d8ba0c7ad4e711ba4486bcec7ff86bb4d814d9c53e071cc4e43845567069e45b897c562cb677fc872b2
DIST inotify-sys-0.1.5.crate 6965 BLAKE2B d70124656ce3e6f5ea3f430e8e7100d0691003161234b40542ca86c407ecaac1785f3eca98e9fd2914dababbc3f47a0855c99c9f19245d1f2cd5312739c802af SHA512 dae749f32c533b0c9f99963d97a77dcbfcacf173ec8fd7a02f275804f9925e867b4dfdf6be52c3c3c3de136d64e6e7d6b30a3bf804a01608cf974b0cc2e346da
+DIST insta-1.31.0.crate 543861 BLAKE2B ffc38a8d375eec92a4463def66ed0709e2af7b8eb344647c41bce406ed9ec01efc777ea4a364e40205f8fb6a74854b3a7bb194ec671a0dcab7d2c8cb4f7ce18d SHA512 c16eb300628e7bab359c5515399b55eb7b60fb38e41e62f7bcf00d51fb016a82dd8c49f4e83095a7e94430af00d7d8e8bd9b1b3fd1735717f0b1f79c078f2fcd
DIST insta-1.34.0.crate 550760 BLAKE2B 56ef9742bf38cabfeb26226fcfbe70cb2372964711a9d5f6b9886afdc3134d272a827f77f858c29e7ef2b723e50a7da9030ebec3ffcfbc37db46a7540f848226 SHA512 792eff6de9d7d10212aad14566d0509ae66c0b43b2a38b187e8387ca131162daa097b92abfca801f3b4efa052a1adc1464a07f5e9c6d564832c2310b8a7f544a
DIST instant-0.1.12.crate 6128 BLAKE2B 728923f757c1ee4e4a7afb90e460eed81392068961240a538e5c6468e15a0b6491f590fb5f6cc46e6d78901ca232351f65abb9f2f230d8f4983c5e58c4011902 SHA512 fae494c00111c51c840f9dd6a10febe403e27ebb933dd16633a213e9c20f2bc11adeb431c71f8a6713bf88f270a010941e15d83df294e658791934f83a5d2407
+DIST io-lifetimes-1.0.11.crate 37346 BLAKE2B 7f278b7378a8569d3552c9b6d4be06d7908e05d77cdb964267f0b621ec4975a42fb6e48fc030a75ad5865681adf32ff747943ac559ab4ad73331a6611a1b10c6 SHA512 30c6e5ce6f5beabe0d7bee4f4522884d1316cf7d9b8d093ba0f952995997be3d0f10e1e77b9c20b7fe2b65429de0d2ec89bb35e939455795205206a3154ed544
DIST is-terminal-0.4.12.crate 7470 BLAKE2B 6d1db6148198299d0775539734dc62a3c7e453d621d69e01c3addeadbec4e88dde6082e4e12c7b7e8359cbd93b68c0af314d4a8df4600061a9534834699cc38a SHA512 9eb840a419f530c60d6acc52fdc9d6477818fb513bf9c3e8ab808ecd19087a52933e958a930e7a8c316d5e5a3e5beb56c34b560dddaa03c744ad37cfe6554a0f
+DIST is-terminal-0.4.9.crate 8109 BLAKE2B 0fa495da123f6fe5e3ba5f643f1ee097fc4f8e8aa54d9525b6108855a6a2e58556534a5e8dbfe7b5f8e2f1932003ac63f6aa3384317de7b385cf724bee294468 SHA512 0803ea53945715333d9b5fb18feec7230a49cb1a5f7308e2ea8d06a650e376794dd372be111e85622fd21320228706dd589423510dd010cd6ea112f185c46966
DIST itertools-0.10.5.crate 115354 BLAKE2B f24734bdfedf1dba48554e39b43669efcd4a43656eeb2c511096060daeaf049e1ad3eab232e757057750ce94aabad9fc8a0cf29a997edc6c4b167301c3443391 SHA512 d03c3cfba9841776913bbb6daad0c8945830c155f32ae4b48872e0f937c75a443f0ac9a0355f43b359ff75232f38b15f4f6d446b4be30b00b4209cf66ef770c3
DIST itertools-0.12.1.crate 137761 BLAKE2B d7db67feb7418d6a779dc17d8a2f33481114cd81a4d53a10cffe08e13f0d3cf4525a5ef43368fe979d5a3ce230872eaf993f7065885531aeb5a6479351857708 SHA512 0d9c1849dcc0ddf7555b0aeb7e4f2ef3b101cfc6f03310ce1b6072d70ac8c8d3387ef4c726146102012e75171e0b0bf13465704b6edfc02752e349dc6af7cf68
DIST itoa-1.0.10.crate 10534 BLAKE2B 8ffcb345d07070cc01651fd44c19f3e0659185eda733c407fd4be0955a301879ae1272dae7f425279dae8dcb7f7dc954465c9a09b5c521938a503d34fecfe2a7 SHA512 fc496be0873e31afa6ddf7f2958030f8fcb517cadb86a48280a0c50ce50460afda189af1e6c26e5ff6f85c750d772c21503864c32b526c4fe4bcdb5b07918538
+DIST itoa-1.0.9.crate 10492 BLAKE2B 0d5acef9ae72d3f4b5a387d231952e6025def69da81d38269b4882bc534be7acadc073e526fd8bebdca898a98b2c741735c541e0b6a35ed0f8f8799b906b65b1 SHA512 95f7906edb7d6a2690389167f8c4d01bc37827205bca87d527f2eb33722419ed2f2e8afaa559cc5a0a7e7fac76515c9c44c71c42b536aa34b0e2858c40946b6d
DIST jaq-core-1.2.1.crate 21580 BLAKE2B c14ba24f5369aad7064825f448485e13359fcd351672f161e9f345eb48cd2511418c197486eca7aa03222fc69cc280d79688d9c68025f9c746d4a3f0140ede15 SHA512 c580027999e68d9720929c0cd3fdf83c724e830c6d35f07d9ae5a6159d8968b376aa9b824dcafd31636f41ed1f01e42247a74079ed882af2b6cd334e31266f0d
DIST jaq-interpret-1.2.1.crate 38376 BLAKE2B cd6a6ada2a274d51b8773ac1a669e92a6d6f69d61687354d79ad5155fa782f9675ba2883542515f081b548717e3656583a7af917f451ea145238db2e4dd24a6f SHA512 3e2da56fbcdb7abadb09b8817c2a40614b60d5cd71734469fccd916b88d91adbdcb85140fba4beb38554434867bf9fdf660b6c6aff8157f9e474ade69d8da8b4
DIST jaq-parse-1.0.2.crate 17064 BLAKE2B e2b580d8e27bd7c7ec1511c426e23d043e7e491dfc8d1762d5eddbbfdb1a02abcfb5a84065f4778c914a9dd17070f2dfaa2e646fb92429dacaba9ae49ca155da SHA512 7305a63e77493d725923c669c3e199a2191f35f2e7e4ecc88da9ef6af9911e55f3393aeafeffdf82ab9bbf7def998668ce6a58caff4ca5ee41821694e7d1cde9
DIST jaq-std-1.2.1.crate 16732 BLAKE2B c35fbb82984ac442fe984ebbdeba575f1609b040aa12994039c994fb13f89dbe769a3db40c7ed65ef5b42c64290e473586c76971fb7eac7cdd49c6410cbd2709 SHA512 38e70cb6b971b3a873a9f978ec31975d459bcb62ab92743198e6377be59d54bb2d00b61fdbb1c0cf9917e7f06e2010815ef150385c8fc0bdd3b8e0dbabe63547
DIST jaq-syn-1.1.0.crate 15340 BLAKE2B 01433b1012899fd697a5e2e48aaafd1ad5f61569d05d8fa1ed1229ac144776d42a78cc7a5c51cb3007d8be2b1e7777561f6bac65c6641615cee7440c4cfd7ebd SHA512 44b518b3bccd90ef6bbe3cef8281552a050fc84bac4fcbadb91070776bcd48bf7fb0e48164c5dff1d32d40436fdd57297da49b41f07aa055b9b345a6177222ec
+DIST js-sys-0.3.64.crate 80313 BLAKE2B 7cf5dcb2b9e0b63cb82771c9e98518a4cda70372c5aed07866a07d2aa51274622357e4b5a665499328f5a3c38f7c515303da50421bad4a496fbb658e2132325f SHA512 a4f389a4eb45c2122e7bcf365dccdce8fcf14b1b521b8b839746bba8783296e2f1b959d73bdd874743f49c61a24c4077dec52f63cc7d594cd42e9cd6ea9c2e64
DIST js-sys-0.3.68.crate 80764 BLAKE2B 961f58c181f060af37c00e99f55906140a4c8f1729847d6dd7da7e29b715d69ff822853dc6affb185195347e3d3bfeed392b8969c9d15a5ee28e9f01febbc148 SHA512 9b1b59f1688f95f9bd5031f68c18c0bbb8c16519c7b09aa3042e08e57921a3807d86f15407bb4d9d63c49747ac4847aa963f83373fd0d778a7e7962ea6551b6b
DIST kqueue-1.0.8.crate 12642 BLAKE2B 93a0ee7484655045986d6d5ca800ca001d68bb327f841bff3e54b38beff09ff10c099b2432ebf90cf8213153370e4c4aeab9bb0eb3bb02b1bb494b461dfd2fa0 SHA512 c8734fa2cfbf8b8f173604acf5d13ad4cc2739c879387b548a1200f8383b81a1b72315449eb73844e4b82280a4c29901d20c12cdc746d48f9047db89849985f3
DIST kqueue-sys-1.0.4.crate 7160 BLAKE2B d75e152cfccbdf7ae000be14e0f84c6d1fd07290fe498349a8715061a83d8c02011b59578db2c451de011ac3eb4b218aeea73963a2a5cd82e7f5f49de0779632 SHA512 6650aef7efd7fbf4f9b6c8c6e4c1a91b79636423d46a0173dcb99de74e6f277cb02ada01cb62aa71c3f174a2c28db62a708b0aada9480fc5bde613204acb30a5
DIST lalrpop-0.20.0.crate 233201 BLAKE2B fcd533ec1faaf470c97a479e504da81d308da002209cbf48e0a62583d9eeeb481aad0f9afd9f4aeb412a1115aec17bf63d782a6d8b32315e4efd0a167bcf746b SHA512 78607f89874e8b17649af353760477ccb31e8f9d88f799119de686a198065163378a32d34c372e456bab184dad2a63ec62d651dd88d66914b5d8f42f3c28547a
DIST lalrpop-util-0.20.0.crate 10403 BLAKE2B 5600fecc9a5c843ddb355af13e3696089a00cc835779df201ecba4e6740ce955e2618dbd1e599045343a8af196b8c164b61db4e58368f0cc4ab4c8070873d4cd SHA512 478ada7c29bb983f9b37bfeb0ea3bd51b3e38ee2458daf546673f66f857ea70f2498f2efe2fc87acab2ea7a1c41529fbdd96f28297b7dfaa83405bc00a5cc82d
+DIST lasso-0.6.0.crate 65816 BLAKE2B a0659e2fc8b07ba54d7099844f34e6261de7f66a5acb60f1e9fd183ba14fee67507aac9344563885a1efff8d65dc210ac5b6acd9a2919c4c281beed887d40081 SHA512 c819ec63ebbdf0adc312ab572cfc0728ae8d66f4dc0ce716af9ddb5f6b5dbf5a55bdb36d05989cd586c687e1749b8d2cd1273bcaa597c4b78341e8ebd399f98b
DIST lasso-0.7.2.crate 78691 BLAKE2B c19fc977b2dc609477f1bd0ac1960f920cf64c4cc550a66020a436e38658af727aac2e920030787ae6b524fd7a4a50098356187e9c531db93be847afe252c034 SHA512 c3a14f9b65c3add25398eb69f6162e349866cf13bea0eb3fd85abe1d4f159d5ffe26b7890964dae696a9f7e1872b09085e8f7a57db2fef87418bade94188bd03
DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
DIST libc-0.2.153.crate 740614 BLAKE2B 523a41bc8cff4ebcba0edbbe9e6a2286ec7cb3ba5e90ca5926c972b68e4b34188bc077d20c22376238c3cd91b7455898a95c505ace4ededea88cc496edb4c5a7 SHA512 3f99e3a192974fffdc053ef21e9ad5fb54b7cdbd4755df176704a95dba38047138ccab76763e89c6b565f37f98fd549fe368749f84f6d1638b3209cb07eae9b4
DIST libm-0.2.8.crate 113450 BLAKE2B fc4a55ecc0d4a558b9014b58861341887679c696af6b6539c7cdb70c033c63219b24f6f30cb8d9b335d15e3af42be6f3a6bd719e189667ca0c43ac818730b674 SHA512 753df71bb2c838abbac360db2e4400c2d931185ecff993da51a979870f2c3f7ac017380fadee4622102fb4b37ebcc1960b0cbd295afc9cd1cb3307524e1f39c5
DIST libredox-0.0.1.crate 4212 BLAKE2B fecbb90e2842a69f3967bb2a09b0181dce1720b60c5d762a334a279b52c00a9b4b52de72c6484603981c0c3e1cd8e173ef5e15fa290ce8b8888739204956be92 SHA512 31a9234201f5128f1519e108f7424d1740a67699828265cc725304a70f6a51e139f1d0c0e626b487857a7b421f25ad93e81b95b65cf0d3e0ad912388deecfb41
DIST linked-hash-map-0.5.6.crate 15049 BLAKE2B 0f30e388633c60433dcbee353507f1c6857bd210f0b61a4d166a9b95067bdadaebe49d5fca4fa6ce13072e26037c6f75d46cc30cf8dc3c9cfcb3f33b33630093 SHA512 031a87645381c96beff33572e4bac1a9877e52fd2f99d39918fbede17d72291b35e2eb69e07edec20c3058554c35cc38fe85b8f175c2a3c69366136fcc71f707
+DIST linux-raw-sys-0.3.8.crate 1013776 BLAKE2B 375b29d2cc700e95d94ea8dc304cb711562952742f65c9664e33560a3da862aba74f2ad2ee66b1dface8cd5371ea9cbbc452ea953a6b6c656ade7d938b7d2ff2 SHA512 cb0e5c54870dacfa513ad05f7a84e9e90dc1a42f55685fe3e252fd25cffa4b875f1b65eaf4ad132ef0a19e6677c7763b360d71ff0060fe6ce5198f38b9956375
+DIST linux-raw-sys-0.4.5.crate 1274380 BLAKE2B e15ca5b63cb994e86a8161e3b6e4bd20da8f574d1a470128f9a209a729ff22c86470f4c2b2a8ccbc1e37d6284b026e0805902645ea4b742425fe34491e519638 SHA512 13c36e03cb5bdb2e9f17622e21eda608057fc9d908bc55a829fdeeb77785094769d4f4b4daf376c5509ceb3abfdb3936f668bd6d5b2fd48e21c5c28b6e597e78
+DIST lock_api-0.4.10.crate 26713 BLAKE2B 113adf8554c65e9782e8fd0360d0398567dfbfddb1fea4928cc152fbab98dbe086e42b81170f6f5c333d61dd3261e8a1ebfbaed786e6bf6378e6afde6d7f9e5c SHA512 ffe8cad8099bc382832181c1ff95e0935993491f247114604201be7d4ddf8402fd4db8fd6499c611f95fbce7d57dc3d3738eddfab31c52f50ab8709e549697db
DIST lock_api-0.4.11.crate 27487 BLAKE2B 87116cf908f7f1f9c300cedded989df305f855883e3df5a482de2c76814c48739582d3079d76a2bdd14a6999204b7fd31dcd8fd06d1dc7f9418f0e2f70a1450e SHA512 9946adf313a5c67a0dd87a1b679b7d9d16a86149fb95974d3f28aa57a9a1a3932e4a5ee1d332097559329c5e3b2295be2e4b655b115d9f75269f33a758b17fb3
DIST log-0.4.20.crate 38307 BLAKE2B cb9c9a401b49bd68c18d5e42f2ed94446f1aeb184caa23cefacad4ce54a2a357143af54a5595c45d6f3c3d20b054c451d9e6ccdc09c19cca99ffffdaf8bbfc72 SHA512 8661b0c71d3b7fc0d679aa3d7f06910e6d3da1c53862aa06526000e1bcaa0b0b068415a1a9ab317c318f00d15346dba8a4f5d2a60d8850790bed9cfaaf757b3e
DIST maplit-1.0.2.crate 8871 BLAKE2B 3cf975d35de2d2fbd50227a6d2c5e72227e99197b620c8f29be97bd3666ec162deeef0d9e6bd327a063f175201beeb73c4ed27272449b1df0b78238b2d36ca22 SHA512 917b5cf665e12b687035c895b60b2ae05622963f495f5693515fd24d56f49e95a06ffced68606d061bd20822c655100035930673fd4b0d4790168763b6961a9f
DIST memchr-2.7.1.crate 96307 BLAKE2B f1a008fbdbfe84852a8ae1d9d9574306b1bf120dd5087903adbcca6af342c9abbb296496eb9bf6cb58915c4444b3edd6ca4e27131ac7d8aed8849815df87a944 SHA512 5120496faa31fc427c8b4178461a262b3a34d70eddb7ad17a19d6db8b9969c9e113d3625b5e6dc677087fc80907377b00ba0421aba9a92cf73ca2849d932f473
DIST memoffset-0.6.5.crate 7686 BLAKE2B 9a797388702389076c426052c3d54dc62802d5db8bc5c9c83990429f2ffaec4fab4c7dd3f09cd0704d1ea555e87976563bb43408ba54b5e66ce7e406d4604009 SHA512 11bdd9185b99dfee8e659e051b09ee301c7142a372a8117864745a5085c015436d2efbb1478192886f09cbc562529e209d2e3325d94938a64bc75b1d91d2bf3f
+DIST memoffset-0.7.1.crate 8556 BLAKE2B 1ef270f1c8dba32e66cf47a1835f10c342024762c0e56953f16e82d575250028154054d4c42b1324c60f955a40fad3bbb1c5fced147c11c9a4ad62f6f0e948c3 SHA512 40ca3c4b1fb929bec75bfcde0135037f81a6c5aa80181bc7dd7bbcd9c0946288eea8d23fca95e296567ccb02155ed0f66c7c23644b5cb3e6d3932be9f9742157
DIST memoffset-0.9.0.crate 9033 BLAKE2B 19090c1af8b8cf54a2cf7593748aff4d3dc685ec7080aa476139c1721ef71555495e1bc513b1efaddc7e7702f83e0e1c2a8f71ff40009d266539484c9297e0ed SHA512 2f04f9b6fed31e94388c18162ad275897a835df7b9ac827f4df0f4b0ecf71064ef247f7ad11dbc27d7a6d448984a0f29d1c000e3c8d5fa6e121fa9571770ec55
+DIST miniz_oxide-0.7.1.crate 55194 BLAKE2B 56afbe0c0b3eca98105ae2d507493f365353cce29a6b04910ff26bc75899400fdbd067756cbda7b3d86f047fb8f3d737de00043a4a7348a813cc43e45824e33f SHA512 5eb6ffe34a866403273ff0267ff7838aeb50722ca57a03d5a1d842a5f19a3b4af570b133a3b9d64d78eafe49e4b9732b92dd63fd9c6b0ce59b3295daf10f6a3c
DIST miniz_oxide-0.7.2.crate 55731 BLAKE2B e3cbf5983025bee879b8a735fa2912db8975cb60f0499498a73ce4375e7d452c9ed62d4b0b6f6a4fa591aab55e5d7ff20033baa007fd6c839b9d74b31142c0b1 SHA512 2f8f09d7afdb9d78bfc80a228ded85a215fea05e577e907921f1808f84aae30ab118048d7b53295f11aeb5de70ab6cbdec892f3a2417bedf6f53a4576d095432
DIST mio-0.8.10.crate 102345 BLAKE2B 82bba95cfbb51a02efda75dc85d973825f038f7d23e7fd0a93a60293fbafd304ae064f395a1aeb63a1bc7bc664a0c0dfa3721ac8a553ea5161c0ab2862a6edcb SHA512 680371f7da07824fcdc1e8c10a6771a71b97308c47bb5b295e0338fbcb56e211dfd91e1b400a080984c57055f08db24ca675c167f298a3dd4842a185bde62fb2
DIST new_debug_unreachable-1.0.4.crate 2561 BLAKE2B 5c9831b04e2a44b2dd27816df0a331a8108991a84ebdfefe4e42f325ec3519ee50e89a99d490020a65a3d75acc371316c2253d2c6382453a0b15f4c3d5b96520 SHA512 6f964bb322aa8f2ff92078381dd720527600c6449e237b703278cbcf47b39a2581fddfc2f34ebb7cf31229e33d58de48bb5050e083fec6dad9aefddc1d771c85
DIST nix-0.25.1.crate 272312 BLAKE2B 5981fec66eb96dfeb4b380130c4f2927a1f904b10744690e361b480355be31ac625f52614f95a89ea19fa07cc383b0975b3985f743c64f6780800e64a2f11f14 SHA512 e80b3a4e38b26687ba39b52ebebc6415e9618ca41e037d571fcaa33638ef28d022be02e2265db0149088a927fb81935329e651e2cda5c29c92038eb07fe55538
+DIST nix-0.26.2.crate 277973 BLAKE2B 86adcbeda37edda784593196c390e92ee069761d283f706c0390bf8983ba8841a51486a98a1869f910fe4d518afba5572490e9c69a021e12c598d094b41361ad SHA512 abf2d0a4eb83cd4bd43836e8b533f0f07f07979619c86c11302a2df0800d569f33f0dda0bc2c4136d36c79789d175eaf5d3928ecf16286319aabf93c720a1704
DIST nix-0.27.1.crate 286494 BLAKE2B 63fbe347360ad4b7a86f30bf2f1b27ff1ec581145a90c34160f4d143e9c297a34a2ee72e9de3a48bd3418657fbc9bafd09b704ec15a42b16b3a4187d5304ce77 SHA512 7b35a0f87427eb1b5e1480d7daedafea4609b7f3a4fcf48ca99bdbc2f150865996539f2c51c7ae6a6a13169614681fc838efb306994b020d44b45735a7380010
DIST notify-6.1.1.crate 40117 BLAKE2B e8f2626841903b7cb261ece9ff7d42aa6655b439a2d613f43a0d518355af2842e8731a6a2a92fdb84d82f0f7cf7423f051ab529cd22248944a19b3338e5b0f29 SHA512 58a44759d96c3ec7c431a37d92e1c1a0f112d75fac9651e9fead7a3a1de46074d79a251320b0522891711879da4ab42dd008c5a28a994039890f8d434d215e69
DIST ntapi-0.4.1.crate 126552 BLAKE2B ef5291a32f5edab4b29648fcc73df30f993558e45ed862a62a4d7e85f963f195f0a74c9e61eecf928c8966799da45a23694d0c6a1ad5f7d9ab3a8bce86d6d2eb SHA512 8e32d45a508d20f0d3537e056f363270120980dc23564713306e36acbc12a6d379eb3857026fecc16ca75080431e06742e3806801d3e0a848a01f64a8dd4f2d7
DIST num-conv-0.1.0.crate 7444 BLAKE2B 4f5c4695006aa3ae77aaf5c55999a07d8ddfab294584fe10d73eb6abbb3f551846646156581599f966a28c74d80d3ac4373c49d2099991f7ed9edb56d36feec4 SHA512 7884c0c6599c66e40b9a79435e1bbcec60aa7e68b59686922dfab19ccbcac6a6e54f208cfb3d5a8a12e86e4dd67e09977d60b69ef6940e308a28256733f36100
+DIST num-traits-0.2.16.crate 50130 BLAKE2B 1101d28cb4dce477657684a068792b94c7008a965e655edbabfeff51cbe6f008450dc6d7e4fc5dc4fe9c3ee8623ed77a7bde83ce2f68e75d618295fe6cebe0a8 SHA512 2ef65e2f6275b1000f611cc4d019b2f4846a8964b54d9b96462da10e3ac9edbf3d1de82e40094c76f7f5205740361b0eb0ced414bcddbaba5955144f728c6f94
DIST num-traits-0.2.18.crate 51930 BLAKE2B 6c40e155d7a52267a7183d8030ef34245492d33f103cc24551b10da3eaa18e3db485062ff87057dc23e6b55e381e5c5d2a2633aaf6f4763c06677a0a0c524f02 SHA512 e395ad9f3b21b0dd1d3a94cefe0d68a42d1b1d429ddb2823696f9cd75042568a635d93d133ddb9497ed357e5b3be5caddb8e4a4af87b65882bbdc60b05c74ebc
DIST num_cpus-1.16.0.crate 15713 BLAKE2B 11b432fc7c7496d48918f09ed0954e0f1d0845596301266321293b374392898853fb7c313a0b0fd9d22d9dbfe3ccc5cc1e38f38407c89b2e5906eb76caa6ad68 SHA512 a75863afc4a563e63c64d06471c7921615355d98011ea9497b1f1a7dac2bdfc876509136018e8062ac38575ccf476a196d1fd9231e09e90017333bbf2df4615d
+DIST object-0.31.1.crate 272843 BLAKE2B 1f2e8ce0bfc2f428889df856bf8fcefcdc754d5c9a934a65b65903ed10c143daa1408e97a1f190996ea451541d215d4e4d7a53c5d2c8d9a6c9ffe4ac6513a56c SHA512 e9cc2eb5ba516e4a08cf3fd5f496d05bc74ddbf1846d6b6ad6fd25a689aa315652fc5710be6bc68fdd678673b7ec8d63b4ce999f1fcfd5b281154bc25a915e9c
DIST object-0.32.2.crate 286994 BLAKE2B b9085200fe0107ab0f8ddd5c5ac82bc681dc6266c6503e4a803ae4dbdec775ae84ca4a736754b770d858ebb058342af45d485d4c9a41f57966ca1466de40a4c5 SHA512 5d03d998f06dc592c3be141f7163bd72a0e73396f95d22ef1e0ffbfc66489bf727a6f6fb813a32739609b619b8e34a471974b2231dcfa23df8bff52007c25a96
DIST once_cell-1.19.0.crate 33046 BLAKE2B c14b374eaf4ac0f60acc2e02f7bba270a0e8e0a6978d749cd3cb0ab3eb26907e4fbea70dd5132982f90290381ed18ff8a87fd530f1415fabffac864f157ea380 SHA512 4154876afd34a699ee650d1a8a1c5ee5a25f0ebd9388b8bef2564e33629fae68f113d7507488c68abbe7ea1acf9bbc41813cbbf3ef3e464e3f3b9cc7a51d870c
+DIST ordered-stream-0.2.0.crate 19077 BLAKE2B 581285d32136bb9c2134f405c5a2d67c952a36eb3613912be029f2826b847919188e1b479506b46f20e0b63d371f476b99d9e7e1ee8d47ddef7b4f48451b0e3e SHA512 99976f90637f0daedeae05d4270d33bc03fad1c06a85bcf2cd7140b149f76c7560d5e60becf05a633a62dc82f7f65900eb8f510c62aea4e630b78c45dc76d83e
DIST pango-0.17.10.crate 47701 BLAKE2B 30a12c528812613ee69a83dbb26261bf5410c245b52985d0c7fcb5195f3a41dc40f4d811a9903cccec234dc4deab8d66e29c5726df1e5d9af958be05838d9401 SHA512 ccc73cb66b0d00396e01ee76dc5b2b6476219a8bc25a1770e8d9e419f33eb1b5fd6187fd1d0f32ac24fb36a2fb9fb2e98054c754d49de10e1035fb11be7aae87
DIST pango-sys-0.17.10.crate 24753 BLAKE2B b5e6f2ad31b7abf11f81ed08376759dda6d4e7ce64e9224ebfc4391274d183e129718d826189690b9764566faa2b232de3c0a517aa6ffbdb98b3e2add1671cc3 SHA512 f8d98059eb85bdb747db4ad7666e4a21cd5df2a05c34d824ae2e7bdf4157610bec161c8f97a2a5a57a4a8b925ddf2e9b9f7169bedf261e9ad7ff2e5822f28efb
+DIST parking-2.1.0.crate 9491 BLAKE2B c65653dbb00796d86bd6540e4d501f0a0e1ebc255c0fe5b5c96fc67ecfd6fdda5b3bd267dac31811ebe334603fc1a26622ea41dbe39621ce12e24e151ca4ebaa SHA512 2cf5741c137df3c7bcbc20208ccd9d1aa580ae25917766db1725a13b692ae7c6fcd212bd572cd7c00b7ed09f3f88ee303e8ecedf84b393c22b02239c3571baa4
DIST parking_lot-0.12.1.crate 40967 BLAKE2B 940a112a066e3cbd15e2f6df89bfff37e4ece2194118618a96fa14871813c91798f93181ab0f768d3e1f3d60805508f216724013afb7e3da95678d0d951a42d4 SHA512 07327d3b737a913508dffb66023766348ce7f9d555c224a099cabb05baefd16a28e15fec638e3a148a5169dbd980c4541b0f8820ae9d06dfe0704482838fbd5c
+DIST parking_lot_core-0.9.8.crate 32383 BLAKE2B 2f9666872894d1c85895437d1353f9e15be2bc8d004ffc8f0e5be95e9dd4b274797db3752eba1c0b5b6071c1b8a71e4857cae0b2aff1afdaa39e92e70be2e6fd SHA512 8d6dfdf661b0f7d0774cb9f61121f2daefd182ac8a2a0d24eab451febfbe1a664c815c163d34a7f3d15a54915a8e22e6c6cd10e89cb7d7598d48d81ad6a3c256
DIST parking_lot_core-0.9.9.crate 32445 BLAKE2B 811d8de671bf6e0911cf0df7dcaee4fb03a3b223173a3bb8cee65a28724eeb7bac87f62aa7b1df5ea3fc93af3cee3ef30b83d06c6773d6b856a7e6fa5fa197ea SHA512 7f0df70f9f1ca8d3da0b9dcc96e49daf05d95c3a995289266b5333f68818d686d32b0c733dfe3a0f62da78fa45caa843a963923b2d0c80899c33413dc749c032
DIST parse-zoneinfo-0.3.0.crate 76590 BLAKE2B 441e96b120e9bb4f666ace28f2999974e3bc6786a8b834b07601b4a13506505a93d2647e446f1871bb072b8a1d1c2075de259319c7c1699244dc4e0b89392017 SHA512 e87eb0feca1feda438bb44d92268779053feec9b0823a336ffc593f508fb6e918add1023d4abcb23fa334efe8a07ab41143f5fe841b4f62ac000feb23c6d840e
+DIST petgraph-0.6.3.crate 185740 BLAKE2B dc3d4a0c29662f761bfc107d9654619a3443b07890e0caea5851a6dfab2f071181ab94c521d641197e159098885363d7ed4e1c9c34333fd1339c7484c2237c4e SHA512 9b624ab93ebd06fcda716b1e79dd82c5594a11c71ea0ad806b6b708fee3f432ee174ac292c5af3bb0c84b411c26564ad11436624a52ac4e74ed40432778c21e8
DIST petgraph-0.6.4.crate 185895 BLAKE2B 9ddfb2796c461d2820db8227753113b02024e5dcb694a0bb2826bc1f375f028d8b98a3bd67555485db7fab88eb86043f5b768585dbe0c60703cc655976030a2c SHA512 b5a21572526387af3151dd4f864bd95c94f65eaf0612d96f99926faf646214df205bcc652b98d3b281f2e270779a4c1fdd6a32614ed60b3612e5d594b2bf3f20
+DIST phf-0.10.1.crate 5406 BLAKE2B 70532bb97a0089ef2a57a1bd43b4dd30f0289ffc1a15357ffd8a372d82374bd505f4e39d3bfd6bc2d3c2afca39703c89e3ed37ac41c364cee3759bf0cb609f82 SHA512 84568d6d1baa7c4e6faf5f3ee09133e736977286d7cb7630a59a53fc8ea15d0d41b9242f8929184667ce576cc9946da55d1e8bc06e98824f163c91c6aa05e073
DIST phf-0.11.2.crate 21569 BLAKE2B c809201298f1c5046874b3bbdd30e33f2bee2e4b977152a2c5faa91019ee5a1c8fe1d42cf91f6d0b0dd52015fc66f0a84c1b3ae014291ad7d5ba647a78debded SHA512 97752bfb44f3d1f9347b4ccfb6fa2fb80b3263d6f67aa703c52ae90d693c537a0db878acef828c79bd4c41e8f7ca0ea45588dee073d12c9bb0f2980c511b65b4
DIST phf_codegen-0.11.2.crate 12977 BLAKE2B 5ceceead850a45fb0f6ad706ca26e79267bba0ffc0870b8a31ee8a586b37dc421d31e5af3453d62eb85efada260a2eb9ceb12d2f76434dcbaaee2f71cd43d38d SHA512 0a11be13927f6d4303a2f10bc3a0c986dfcc4bc91c9e885e8912d077e434098f75ff4ed9633085ccfbeb052d573721750fb80c7a19ee1e75fc09660aac2a6c5d
+DIST phf_generator-0.10.0.crate 7525 BLAKE2B 1219f37d5699896f9dcdd367cfcbeb4ba19d3498c2e52acd02975b236ec3802f6ee57eaca40393a9742b5397809ef548923410768a727108c83139fc70562a43 SHA512 b6542d816b2e963c169df695d332f92237ba380f49bf919021514a16aef71de8f4f70b9612356db9f345f3f0d3656b2b39a4f34f8ffa8515510b81f1b19cb9f7
DIST phf_generator-0.11.2.crate 14190 BLAKE2B a20d6d3d815ca0eb5ef18780587b9963459887a3ddfe3408c99f5ad7c382da014cc0bbbdca24fe13c780460f3e4ec4580665004afbd300fa470a91d3becf1a5f SHA512 122ee5ddb1f65f386d35e438396eafb7c9f2b1254daa11aefe0a6a45aa0662190c0b7fce32b6e003b04d022e60c2af4e355f995d5ddbd1b58df93eedacb809b3
+DIST phf_macros-0.10.0.crate 3552 BLAKE2B e254526a4ef4868ed9b57f066f4715ea903cfc01717456da34fb2d18bc6c87d881c8d60d3ee08d40c9bc26984ba7d7012832e858c15600d2ccbd5f284db1e355 SHA512 edb5022e5735c5f6f78cd7774575049bc5fabe1cb444c97654135ef8cd90fc06c3f9ed94c1c0d8741f47888857e6b890ae27bb5ceb37c996cbaa90c7ddcb464a
DIST phf_macros-0.11.2.crate 4748 BLAKE2B 643942f8e83dcf5623f3479d677ee11c7e25a87e9e90f2aa3b43a75398e6d956613257046f5b307476f605b433c5ae443832223ff1319a918fcf3f9602ce291d SHA512 ea6acfc43491af1330d32860103ad60f29566f6c32d43bbef254f23da0f17cc3723b1d04153fa41f82c01d3865e0e16156b9d2dcbe6a52532b8f268f3a55df7c
DIST phf_shared-0.10.0.crate 4095 BLAKE2B 9155a2c145148f3c36ba6d6d8be86a526480b127f4af79b2b5855cb014a0080bec1ec45be466513bd57faa39c77cfde0d6ca02b6bb77d37a23d697603227da37 SHA512 f088a6836a28afca7a2ef5440d7aa953227785d52aa0b9fcb76c88d085fe7f0e68732f2354c9f8dfc0a90ab1b8ac214f28549780e6f32d857ff7e8963093d9e5
DIST phf_shared-0.11.2.crate 14284 BLAKE2B 3c3bbd24de77b032d194d0b0679a84a4e2848d41ceea5552f73e51e3ebddd5e61188393f126f668689dccbbfa92a8accd9c09a77de39eeaf72b8993dae280dcf SHA512 f2cf9e8ceabde75bb7548e5a47dece9a8fb7eea4a6c5568675e7bd735860c3e51181d749a26cd3dcad1476ec22d524ccb77a956dd267cd0f2b7dfb81db9abcbe
DIST pico-args-0.5.0.crate 11545 BLAKE2B d1247ad160bc37db36e05244772f506ee5e27c4bd75d2eb0c763c43ca304e5280350b24a818f5e470303167640a22f38ac7064afd6313fd65b14d0d3e5572817 SHA512 2d3dc5bf1ae11b0373e03698e7020c20b4e14c9aa482ff2d8e98e68ecacc5c0804152bf7d188779197da9464907bda60cf270cd6fe85e6b9fcbf29b1b82bf99e
+DIST pin-project-lite-0.2.12.crate 29073 BLAKE2B ab66a6dad606804eb6121fac25bfbca3ad00e8d80af2e7d1ab38add91c3f76761fd1864f0fb184cb305cd216cc92e81c2f73f0cd2e6f210ede3bde4cbdeff77c SHA512 9d2eb190169819fadece7fcf33d006863ebe2c298066ad97d97ba96ced6229892b4087ec1f364d5c6150cc80b0ded8f431d9d4285adceb5fc9ae1da8e1a6d82e
DIST pin-project-lite-0.2.13.crate 29141 BLAKE2B c434a336716c9cdd16ebc297fed393e9106ef167a693c4aa0b12c681e03141b8ba3cdf64c310916cb7d5cc43cbbfcaaeb39bb5fb1e8b3efb9e94a3f72af914eb SHA512 7f12595d751d315de6c0d380e2f501b74154661eb676987d2cab6fdc956091a68c9cac658df45dbff73615e982e6ae2ea138c09ebb708cd6c351f0d18dbbdbee
DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
+DIST pkg-config-0.3.27.crate 18838 BLAKE2B 1295eb4f08751b3663cb2c7c2753f29bf2ccd80f4e5856909fe10b6f006c37fb9672c9518b9b416546469faa18821512673a66543c0bd1e848bddabc456d0a90 SHA512 41e9b8d4fce6b8244c2ac8566318a001b481bd42a182f1a832c81ce93c6a023e18af03aa3500b134c30195219d35080433bdba69b2594e9665081debfbb4533a
DIST pkg-config-0.3.30.crate 20613 BLAKE2B e14dd544612f74b038bc7d279d629034237946c261e3e97621d6ac910a12f4fa4e75932dbd5d3339e62325d0ccf33002b07f04b0523f93d2bd3b1a919841ba66 SHA512 e4bce232e1e1cbb17d1c08c3de4dd12613f5a5238f831c2a765b6ede9b494e647d2416a7d9a0c926104e24066dd1b38df8df98a6c55d62f25060f80eb33d064d
+DIST polling-2.8.0.crate 43554 BLAKE2B 8fc5986db7c34989954bbe84bd69d1f61c59b890d4e5fd21a20f3861bad750aafe2d1a89b3181df97f3659f1a6c980a92e43dcb9ef9e1de3881518024caa6f58 SHA512 c22dc35f39f374f21483c987d43108472dbfc291508e3f5e1d76e2c466f40b396b1ba7c222db5e5a2c0e670e83b4c34e0fbb5c3e93d86435b8a2ebb0890471a2
DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029
+DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a
DIST precomputed-hash-0.1.1.crate 1640 BLAKE2B 64a37ef3edd317f771e833bb394f7c19bc9b8c844156c831d2b550692c7e2e36bce44ecf18dd9f2d0f0511346eaf0d2a0ebe792fc288ca0e94a93933f2051846 SHA512 a118a98286a47e2f0cf35d2678d0325c18b9b7d5bdf40ceadc16483b282307fd1498434d5bdfa25477a4f420d97c34d786e42e9fa70431b788b4b8fde9718e05
DIST pretty_assertions-1.4.0.crate 78846 BLAKE2B 68583c49f81ab0cf5b90f6de10ef3aae9b525288fec25f9d006f2eed0877c0fa742dad5f878fc78233b54c0cd32dda7ac1f7161bfb475288d8858e8e40aa9e1f SHA512 f76d38c787e91b3739272e3bebeb9763d312b85a43cda5e1311ba8d6b0e4da1ef25bd66208e772b1cf56a34553ee560482b5ad19c5290608b2aaf9c0d0f0e995
DIST pretty_env_logger-0.5.0.crate 9810 BLAKE2B 4ea2129303d12ba9c7eee1695ed2b6aec2123e203144bee8311dd2efc27e5725c9bf682e94e1f6599953f7b5fbbf993f15b9bd0f8ada8a7e8daf8a00bf69b1ae SHA512 fcfd3e8465fda1879083f9a3bb4f12bbb4c93d326a7db672226510e6cf9ac49ccfe469d16d7a00b9e25c9caec36a81ddaae28d7d1c4b423c76ee1e909a5d87d4
DIST proc-macro-crate-1.3.1.crate 9678 BLAKE2B ed617a1930bf28a26e865f6477229566a0c4ade7f2c1e8f70d628c5536985f03c7533c561490415e207c0f58b4885367e7f54ddcf10b058711829f78a34d68a9 SHA512 5306f017933ffa89eb6111ee00b0536179c5cfab56529440630a0bec86b62194ff16f57ebb471b233e88cd886b7b9871de8402ed29073b23e5ca98193e513659
DIST proc-macro-error-1.0.4.crate 25293 BLAKE2B ef918c5efaf2545ab38787c8d0c07315af00431139e4dff66346bf798e3a429f91d12a79776c150412fdda0b158a72badd5e1044ac4d6917f8482d4b5a7110b7 SHA512 8a47bc9d3e24e9561d1e384d8f5a633284c2cf9b5e6733c5f9d1dbfe1870ccc8e2152482852e50b551cecb68e009148585b910ffb0508a7b4875598eaf8657db
DIST proc-macro-error-attr-1.0.4.crate 7971 BLAKE2B 98e2925881c2be186e22c2c439697e91d43f807eb61a5d13e3b0b4321ed50a74f3d699942c04b89b6fea0f156bb5d19ebcf22f9cd4b98a7e6917c437600ed823 SHA512 2606afa9ec78d7dad4500c98d3a5ecbd02c6b53ab829c742bed7f57b322a95238ab4e01cf268746815f1424fd9b02eddfa30e72f98c66106f57765f3d3116495
+DIST proc-macro-hack-0.5.20+deprecated.crate 15045 BLAKE2B fb7b9fa57ad64f2920e801482bfccc762bb7b2c8c1db7da32f393c7b47414fab37234c8a408a4ca9d7072a541df22b07775fc509f76f352fb6be9fe822f84dfd SHA512 278e786f8e0c93e346de900666b3d55d366324167a2e5e553565870c4444bfe661cf8c151a29cbd3176a4905ec49d69cffb81ae1e4a129f30404f930972c4b43
DIST proc-macro2-1.0.78.crate 47158 BLAKE2B c56a24fce3faca9e04db7965cab552d2a976c3764df0a84179b5a89d1230ab355c777a82b4c982e3945414f1f0478473a88821dd176c32d6de394d73a26adb9a SHA512 11956fe03a2e77a925cdff2c3c8bc8804dffab4fa1de963a128fa23f4189976fd2e2102bd346b92c33524beae320b71dadaa5213695a3ec638404196e14fa769
DIST quote-1.0.35.crate 28136 BLAKE2B 81424245e1e2b94459df68bb3a9a866c6a364102b5e1d010ede9c5f8278f8406d7b651957d091c5914e936b494b0f6e9a6a1dd8b7d35cd7d7100f86dee4ec12e SHA512 f5314fb6af17cf36c228e1970c569c29ec248954a450a5f90ba9e2896d04f74904c9cec5a1f74325f2489295a94491eee4ce8fb461e22cd4b34e53f1f881efd2
DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
+DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
DIST rayon-1.8.1.crate 170448 BLAKE2B 982f7ba7d6a43956e6f438921fea2e40d3b398f4f72a4c89f55657aba6aa0d99912a7240b1c32c1dadafa9852adf440e3153a3f0cc56f6582867fa2794bb5144 SHA512 a83304be8334f5aa1c63468ddc749d8e8124c6947f1472320ba0bd4351c9ae582dba31ff369e9efdafdab439571fbf91b497c2370ec15406cfa810f5161cfb32
DIST rayon-core-1.12.1.crate 70701 BLAKE2B a32eb9ae9a71b4f0881f7bfd5375aa7db5681f20f7e0b25e6ecb3161f2aad36b93026c1691d02bf298a48ea07ec9475a237fba457ed0b0b8624aebab2b4988df SHA512 33d0297b682f131c50e1eabc3be583211a5abe790301cbca91bf510e43d6714b7564ca39fab7c4bf6f02aa0df6bb394f386a61320f21ddb6bd7aea1372b5e99e
+DIST redox_syscall-0.2.16.crate 24012 BLAKE2B 9497a52044458b1435ea16e86ee072e379b6b11ee31602ea72d6b6072a4a99426f409c2e58108a4e9c36dc193fa49c83951e71f4fd4e158eafff18c594dc01ad SHA512 63b5d876baaf99f5cf737679bc6ac7a9e3d8a41aa93f5c59416ce7e3841e2513bff678773553cfe62fb452707f82acc384ea63aec932a31bf94679cd1caddd27
+DIST redox_syscall-0.3.5.crate 23404 BLAKE2B 85aa4299d9816666bf576f523da5cdeae87b3c8fbb2af103e82258d23f73303c068a4b6c3ef4117ad67958cb31e41f836a9f59f2ce1bc52c23605e34399afcf1 SHA512 16f8f4766932bb54e4740cfdb4f0802f76246c0bf88c1d76c69c115949b124b625d8c3b85d8947073c2e9544f425aa16c10f71fabe3c03d29e424c47fe4ccdde
DIST redox_syscall-0.4.1.crate 24858 BLAKE2B c3301137a0b84e03b09d28dfa377ab3bea74d574a08cee21d35713b278d8b5b30ca2a1d73a0981baeb4644cbb88c86c8eb15ab3bb2692e38b93e6b35fab4e0da SHA512 073ed9d96090cf46eab9877742277a013c62d8da86d9caf2310b4fa868af306511936553579e01309f27067d344226cc8dc5e3aef01d9b900da2febd33848f8d
+DIST redox_users-0.4.3.crate 15353 BLAKE2B 5e3b4e902566620cee8856c092cac193366ddcd2f5aef787b1d485353a0da11486ae1359dc60f3c87a198cb68f93ef99ac7551cc2315412b93b10ffb10540633 SHA512 0d3366e23cf93e1b0e025a29025eaebfcd1145bd158e2663b94fd952dc2d8a25566819e3a03c4136ca16a6408d37396e2ead0814c3f0c2bb10334dfd0b838fda
DIST redox_users-0.4.4.crate 15438 BLAKE2B 5f44e9ef20f1a6c8b22239838f8f6a6648dbebd5b4386b3a2c417e39add8c4a0dc32e4369b8bb4e0ea17678140f596b9bc981b1d56f06de6a38a503600420481 SHA512 7c208116d1171b1f52f22aedcf8ad00076a3d1f062f4018f4a9f5fb2c38d7ed83258589062d1559f64e43f3e2a9ddf789799f57cf87a49ad8a37463ea09aa269
DIST ref-cast-1.0.22.crate 12664 BLAKE2B 1f763851dd98d4f640859a93da985df702eebc1064e91a75b06f4d184b60f076362587e405485ff4ea1a01e57f73277d18d476f6cb70aad5d0b4fe7da48d28d6 SHA512 eeab91cfdc68bd4f24ee3e3e89cd67c721763fe94c0746d220ea98504c0f9ef3ceb6341b48a90fd8701aa3150ac8b27af2078d00e7206fbd929dae6c35e8ff99
DIST ref-cast-impl-1.0.22.crate 9306 BLAKE2B 2ac8881c75b5c68a2c0fb78307dba82244847052f93398477b6e2cf7c0029c00262eb67bc5899827b72354f963ee09c9f165d4535fce90a6a0d106f8ca768685 SHA512 e9ec6b531c10ee3cab1033875dbc2f1b647ed079191820f23d351266b6791ee531f35730143fed716e2d28bf72d02f7143b20d580cd86aac5443bef653004223
DIST regex-1.10.3.crate 253101 BLAKE2B 390ebb00bf5430048412883b672d80737e783fd36f40895343cb38ef2e26e2713418c2fb4d66792bfd3be4c990b4518ba120de229a72cbeb7fd5c2af325fbcaf SHA512 d090898465013b0975a6de87fbdcdf76b4896578056f4da83424bd5e7832547a3d8ace643c379c4f14700a0a88dc95950a38645508d1675306c377879a90cf5d
DIST regex-automata-0.4.5.crate 617406 BLAKE2B 21826731ed5439a12cdda5a1ef217dc3239a0884d038170855985bf830f2782bdf4dbfd1b1a8812812db3a2399dadf8c173e75db635dfabc97382fda0561bba3 SHA512 0e9681d5c4529d49ff2555b7b73cf234b1f321a7fc634beccdf76c2bce5094e8501403e8caee2b3a16ac299cbe4701d891f1efa380b54f9dc2d92bbacd4de611
+DIST regex-syntax-0.7.4.crate 343365 BLAKE2B b50c01f02e08729496e8bcf023949d088463bf62348b4a1043fe5205650da37863b2ca51f683662a4df33bd56085e0501e50410106c9c471a0daec4c71dfe945 SHA512 b33713c71f6f753820ca6405e8415e5eeed457efd01e81b0b720e48c135b9bb0973962269587ddca31350233aec6d3f598596cb48310db0633bf67f8970f0e18
DIST regex-syntax-0.7.5.crate 343366 BLAKE2B af07596e45e3525ffd253d6070ddad08dffc8f0409ea14843a135646da8b37a7a568c12ede809d9fa47eec2329f68da7a3b3c0e0cabfa200de64affe6ecefee3 SHA512 6388dbf68c8c86d8a5bd8cfb13a86e9ab2da1a339fd607c1a16848f85dd21c85d744d694c7b918954ea27eeefc90b589926c9da464343fb78ab639a5e2925efd
DIST regex-syntax-0.8.2.crate 347228 BLAKE2B 211fd1c35ad0f28874d4b4d276e0fb0a27e5a1608f2f16ba2333641b154624e378419daf8d1c955f21ff5f40f6d49c89569b7e11ea5649850846d0fe447a675c SHA512 301dde555f300298f2594490ccd8b92033e4917fe9b8671b8a97db6c827793c73969be85a92999964dcaf3177edda51abeb576811ad6cab9772964dc0a77e728
DIST rustc-demangle-0.1.23.crate 28970 BLAKE2B 611d2e41a8a9799db2f8bcb8fc8fefcda361d055a417d2bfaaf2dedcce9d6f388c69d905a28c65e6691b4d408d7922ccdc97ce524c87c3cccb8467e314bc87b9 SHA512 8cd29800254b1305ad50f1fc008838c52d9659f97a51a68e9f2bd6d0a60126f3ebdd1c79760f96445b3bf998d0773526ddf663b174acca81babdc0b423247247
DIST rustc_version-0.4.0.crate 12175 BLAKE2B 6fda2ce03eab45d7193fa0d70175cc7ffb56b7be85fb1314092bdcfd3948ea145420569ace3a47218a4a2a6e44a818862cea6dd8cfb945475496f63b591c29da SHA512 f66da7c6efe431db06cd01180d84ba67fcd38f8cd6ef693762957c00ccc2211f23c08079d7f184776e08f28d2d6ca3bdb5f5016f7de245c6193d4722891ba1db
+DIST rustix-0.37.23.crate 328010 BLAKE2B 299ad4b521b1008b6e864e9e52e523e97319d4b976343dccfe9705273f92930bbf7ca21c3e243c90ff7424fe881b55f38a2840701ab75bdb381f31ca91b1d9ff SHA512 9dcc915b753b0ae9ea4d92d33f3a7c73e889ca0dc22abb95ec3d375e4188449d1bd6835c122598beb947fc8aaf884c59cc2cf55ab77f32480f5c17e789664988
+DIST rustix-0.38.8.crate 333258 BLAKE2B bea1e7ce55823650f8d3988c78d6668742230bb22e04c9f5122ef8497a9ca8c5454d48bd3d6e9765b90420ebc097b440968ce9c149d78bf201118630bc3fc17e SHA512 835d6ca0e8d3c95eb1f81f95a5edf3b12614bdffedcefe1c66ef47d6035215d2aafd7a45f12d96ecf7b1b7a0f9ba7e5445069060badbba7f1dcc036a40167c4b
DIST rustversion-1.0.14.crate 17261 BLAKE2B db30d01914059a893bdb4c448ed0bf04852085c2d948bfbed8819a1d2317c34133cf609abdd806ad628b86974a9c1ab9d09f79743cb8e13257ef32cd444f49c6 SHA512 466d753c28c4899ab3da3e9f3366f7ecc435d484f51e0c07acfa5f3367af0de27ea3bc75efda22159b4990c976b1466a27e7c31c834c72a87d8234318357454b
+DIST ryu-1.0.15.crate 46906 BLAKE2B 6d6949e43aaa27fba0ec6002fa11ba859af8d867f87c90d88413267186abbf6302b817985bca3d577ab3fab2e319e11756f144473a16330dfd8fc7b604cdc4b3 SHA512 4655b5647f919082a9b84b889539ae7fb23a1201057cf280efe79c58cb5f040864efb7812cda5021bf6d34838a15d173ac8bdb0fb9fa2dba85173d3efa5a826b
DIST ryu-1.0.16.crate 47351 BLAKE2B 13c72ec8aa608f6c53cf27c95d06b90839c5bec5e54b0441e9c4f779af3dece30d01a2276c717a733f92406a5a02b09c045b2b5f92714fe492d7263b6c6808e6 SHA512 89e3e18346ae6e4035787766f286a6eb62f5294e39ad902cc29e95c53781c4e5dd629f567f22ecc7e9fe9d1c273323da9b867aadc9cd8a066727c58330b51b10
DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c
DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
+DIST semver-1.0.18.crate 29703 BLAKE2B b1867f552ac87968d895c5e49123bcce0f8aa0ad384e421e5ac88bd04ae203ed6b731d5c77fb8488ec6601f1f02a8f2a207a9d21f1cc66d433032628f5d7beda SHA512 698dcd37b354cfd6ee452dce02d16051f23088ce53f0b4d099e1e4ad0f9350996f0b9b2e1c3ac7d5ed258accd92773266892e945fcae28055d4671c7ae5aac02
DIST semver-1.0.21.crate 30445 BLAKE2B 1c779c25576723ee7e44e7c831eacc5dc6bb33cbf051bd0748f688573e01595d05808cdef4ae48a6423df15e474cea58a0664ad7fa5cad490a61f89473f426d7 SHA512 bc3ceb11f2b729be086120c06ca2cefc34c5141d2d4af64279b0868456894eb9097b234b326249f2aa83d8b99086fcac4c5b7ef4a1e14b1198ae808fde245c35
DIST serde-1.0.196.crate 77097 BLAKE2B 22403615511a7621a9d8d54fd2dcc63878cd2de0e43bff6b7921db85e19f34ee5022eb1086890edb6987428cbb707a59277ae007d1536b5d80a7da615fc3f36a SHA512 0917aa36d855ca77726d538fb7fcfcf629722c784d747b3869c0d69444c447d7b1fab556a9eb9594ddf6cc508df636fdde051a1c3909f9c691e4921946ebda19
+DIST serde-1.0.197.crate 77087 BLAKE2B 4a4e04ededf5fefaabfcc4e17457db823239e8eeee7631a905ed47800ca10d26a93632e3a9d1b784b83f84168d0d649cfa2e6f5f1e68ab15a68e837cd5b6c699 SHA512 69e42825fce6a0a5d109979785daceacfd6afc5641e202fe83da32e2b1f968416557cce97fa014839e873e65f85c27494c8f8e20e6e9e4fbedf20d0291880410
DIST serde_derive-1.0.196.crate 55775 BLAKE2B 3d06b3896f0cdd1b1acdcd0046bdbfd1e8a298d6f07d12a2326ff144baaac07fcbd4af1d18b8b1188d4cc192e253fcd79860d1dbb2ecb148025449c0ac954c72 SHA512 f4df7f835e8416e4662c62a46d5f6e6d45ffd103812d681b220f8080310720e27f738a34a8e622df722fed55a1d8c654dd4abfbd78d1fdc871306bf3985baf22
+DIST serde_derive-1.0.197.crate 55771 BLAKE2B 73708908b6d1e104af4c63b498bd25c5a728e07e22afdf92f15754c0f17636efe44c0560c1f0df1b9a30708e8e8894a62f1ea57c234b6dd861cb9c8dc044eb4b SHA512 669376e248b76a5ee8b9c93fd9fe6d35372e7267fbabc14730539ef28a94e405ee5e9c2cc2846897d59d6153742cdc6799f9e2c87f20b9dad119bd3a86c28994
+DIST serde_json-1.0.105.crate 146316 BLAKE2B a40b99ac4b5e9aa31a61c4f49f9f4dd9fad94946267a47ac4ba7c1bf3af7122dc410c8984235281b19a917b1fea088615c8e95b4f1aead0957c9e31f2b222599 SHA512 d4203d93ee6e8ffa0d88c21d347196b8d1496d506841273e992c9996019175ed9a965e9401ba63d48589133b13ad9cac6246b7e0143545778b5a090a48a31452
DIST serde_json-1.0.113.crate 146970 BLAKE2B 8d80b0fc913ba4f008175c6b89955870af6476dc8bae0cd711b748cd0a2bf67b1299396bbd492a1ae5a4ff8050fddc85f0a0ab54f7b24e27529ead3e3d7c920e SHA512 82571b025cd598fca635f18881b52db2364e07eff1b961ca7e3b0591dd41f95503f7188ef1ee6fbc060b9a2360cacbc8a5b85c01fef7879ae3392b29c0004b34
+DIST serde_repr-0.1.16.crate 9629 BLAKE2B 0d017d4018be91dadcd124033f015e31460d54bbadf511d19c55c7fbb63376e705217d2d79376aeae5a54fb7a6bb07fbf982741e0dbac0273a7775d340c692e0 SHA512 a465f7c6bbf728150b4e6cc26d3b6ecc9b80dc1a303ff473308b57dcb898c832e7f89f825a9ad88997e50f18fad40ee2bd8afd455f92a68ebe2ab1728ecff5dd
+DIST serde_spanned-0.6.3.crate 7737 BLAKE2B 957352cb24d5cb1173613a48de7e411d768c61a73dd57572530490be0569e133e7c8eb62ec34e542a17010871562a53e37b296386c54dee8ea61d175dd0b05e3 SHA512 5c4f4a861dba2af7f0ad0c585859f845a7ea6c0a8ff8b63985503c9da27f313ba15b904b0aa56a59043c44a87c75fd317b23006a3804d332b84855189e436610
DIST serde_spanned-0.6.5.crate 8349 BLAKE2B f4f8f798ae3a02c0d5178aa12a94bd1bc08fef88b6a81d782ba07ba36fb0d89927ecf621087faf376b6e53de12f6a96e0880ce0cd01ecc31c5dab7dadc6f3ff4 SHA512 bffe2398629ae5a5a5bb6d5fc2fa0f4b94d02c96e25d1be2fb9ad95d8ca2fa9bfdeb3af11049ee9c050e497f3beca108f03020f88f6de29b208063c3898af354
+DIST sha1-0.10.5.crate 12146 BLAKE2B 476a0c365ab639a0ce427856787595865a60339fd6b81a45f879ff9b9112021d2c3a62e0a817b4555951131a7fe257d0c30988631ddddc3d217274c46c79ebe6 SHA512 1046b91a9ea64b90098ee6e16c63f0620dc7c2dc847d200972a3da3c8d1ac61fa9030682099a411cdd24717b64d488e0b1be1cbe8f7bfee26b8c15cf4f8e5e9b
+DIST signal-hook-0.3.17.crate 50296 BLAKE2B 5469a11485362b4a76f99c06071c69f6cc083bf4cceea93fce0b43385163ac3621b7a3c98d18ea1fb9e1439460ea37f470a29bfde9dea199e60a12b248be5d25 SHA512 045ac6268e504c5561d3884610a48c930dfd936086f793839f42602e92e4a8cef289955776e8eba8a5ca1a91b5f27ccb3724f49b32091f8f06c8bde984d82298
DIST signal-hook-registry-1.4.1.crate 17987 BLAKE2B f1df8bba55c72a506b9210347f9dcac4d158948e73f6d1e60f43340ddfae368aff1bbb6a109af326af47246d9738d49f76d380c52208efc3c6f79ea0acd31f0b SHA512 e83acec2b0083967555f6c659dfaacc32d851a9485c9f6f4b4cf257742ae3ffba8c14708c75f1a5520e9d132ea9e21d6eb65aba492eec481e8492af8b798c5d1
+DIST similar-2.2.1.crate 51147 BLAKE2B c86005ff69a14980db2cb90b13ed908448a711f09d1ee20a109d1dab2cc5bd839274f3803082721f1d81003c9011efdadcd190f4cb46eb09b26e338107546f45 SHA512 9a353bfbe495bab83e401314bb97c6605fa6283af06e03bad50bc429388c7abf44bb9cc68db781ef2b786840eb444907f35b70b17343b2cb993800536b4e36a2
DIST similar-2.4.0.crate 53147 BLAKE2B b30771e3c26300f9ad691566af22faf4592225de44dd55abb1231aa3641a32ca71c83fe9253dfcfb0c438b6f599c77358595fa03125d5f343cc617e99354dfbf SHA512 6c8f1cb194c165ff6ad64298d37deb6bab0abdd51921e29395e1c86268c65db1b4a67ac03ba37dbc69a0ea35c0f3770e894de7253f0e410be7bfc7845a45ce7a
DIST simple-signal-1.1.1.crate 3211 BLAKE2B 668062b987a64103916d76a186ed53f9f59400ff9c72e94ad24ff23de50c40a8b3b5bd40502c2f9e3752d5c7b7c10293717873fb59f9fa4ceadd5e91c3b396e0 SHA512 a8a0e9d8d0f1ca05e265182c1949bfe0b7131be12ad94c68927f824fa1cbca19554d516c6dec0c6520cfc6cff2938fe4d56f8a096fccbbc2bba9c0f0a1ce1583
+DIST siphasher-0.3.10.crate 9889 BLAKE2B e5dd6d265340b4c9e4266ab1ff3a20f1fb87fd493b2d7b5fba32d26421cc858b38929e4ab96941d0c055375b8acebbd04236d994cadca324500ed05064b9bfc9 SHA512 f90425a2cccc9575d377bb92a765d34653ddef1ac12b7c63dc6d700aaa74b525787e11609061c2d3e44ea56fe0e4b8f93f7b13f0279b5de2e0f710c5caffd4ce
DIST siphasher-0.3.11.crate 10442 BLAKE2B 771221614bbd56f609b9743da4352dc7a2cbd0f6257952fab0cd052e5e5b258a4c95a0461d6d1b579dec90b72d66a0e58e036899b3db8341ae753a421a4cd4d5 SHA512 601121bd41da896142dc6ccc74a6eec3ebee3e976857ab8b5d21e915fdc8bc6e979af66a489c406371fbbbfc7a13338cc4b3744aa981206e43c53998f3e1699b
+DIST slab-0.4.8.crate 16928 BLAKE2B f20603e1331a767c3f55b56d58bbdb9fc126794a116db128fce6d204122c420e9a65478f9f10a26f86c045dbd55a62556862f4339f3a41419f810bcfa9fd145d SHA512 1d713a217b3816a1e6c230d4bb52c32c90f600e64520f0c339ea8255ee8aefd887d969fa23497f1bd8b2b1f7dcb4b220957889746f04dc3453240b5f28517192
DIST slab-0.4.9.crate 17108 BLAKE2B 8e5288c4d00efa915e7be27b55f2204850968624f0d8101c091a357131106bceeea7a63c98007420c12f67893dd2228b15d3f23508108c3a0ceaa605474bc7a9 SHA512 b6b5423ae026472920f7c9a4abe0962314140a36dc562c0a9e3fa60725b2b8b7a8b343110d9d4c0e18fb318b0103e14c0ccbc9ae350d5563a5ac80c35f228c40
+DIST smallvec-1.11.0.crate 34680 BLAKE2B e54d56f6bbffbfa7ce5fe5f04e325b2e5cf19d290e4be278bc00a136e26284625b9c18c7c2b10b7fb8fad0ea7e3770f3cdbcfbaa913f5ac08d0a2f8b4e0de188 SHA512 41bfbecbc2c244497568a41724d65791ec3fd6d8057813d521367cca316c09c2b28fb3973826236b01c1f5d2f905d8d22b0c3c47f957a9ff5d7685591f15ccd7
DIST smallvec-1.13.1.crate 34952 BLAKE2B e0dcf1d26883564cd4f5d20a588562404e193075b1ae011f7f7542009a9466e5df3ade7768e1a8feb8806774b2cee5f15d31779928f83714e7d4b6ed46af9ab9 SHA512 1259ef947400470b8c9e74c5582dbc1a49753aa46420883c1f7d66f320f67bebe733a15a23cd57ba461020fad4ff337a5b298de82754602a78f5e6cec969652d
DIST smart-default-0.7.1.crate 8435 BLAKE2B 52951725b6ac1167cd8deba62ff92c475bbe0956ff4ebb20ff8e5ba812f2d94a5b0a6c4e0f4b65db7d6a0334a5cb6100ac38bc2076b6f885bb235ce2385e5fb0 SHA512 f9fdbf067568db78b13ab48b6373d432563a3293c74fe99532676d9980eafea1648b3b9aba46e82ffc2b9cb31d9b51eaadd088bce06be372b50c4471774a7fdc
+DIST socket2-0.4.9.crate 45421 BLAKE2B 19c296b1b42839086793a29234f604a6c94ed1b9d30c4eb1ec695a76acfa266840f482e64b4ee2d5b4520f70849fbaf88984020ac25ec393918b89b2682d2541 SHA512 6cb2aabc409fc7d9942afc2073a36ad8730c06dcdab1866b9d3d72dc55afc643be6a2ca1f38c2e19fbfe782ae584512a1ab357c0f4974f98967a4f489e65331f
DIST socket2-0.5.5.crate 54863 BLAKE2B 4237b540dfaa96d3f8a8b9178519e5ea37b6b96480a2aed5287f462845231427a18f5add26756c7b03c18d4d4aa617a5a36c5462258ebd8be326e8fed1c48641 SHA512 afa8df546234d4e8f89289622448aa42d8c2ba74a0a3a4b13c0ff7bc30fa435a7d6d6e8c9e2a6933cfa23ebdfb4908c865e82c657611defbc16e1f1bf66f9f8c
+DIST socket2-0.5.6.crate 55270 BLAKE2B 10eb32486b9a2908e05ab24620ad7a79243e59c2c2db5a7793f87f32765745b21746423d5b3896ef37d3dc9e76410fba97826cc64cafb7dd45adb485900c2282 SHA512 10f14ce7bcb9fabac56f98bd34ccd6368dcf4ca245ba2df80fe0f1157e177056eeffc6fcfb1d1fea6e89c0eaafb99d8056fbd10101031d3ccabb98950ec563dc
DIST static_assertions-1.1.0.crate 18480 BLAKE2B 358dd5ac413d06f62da0388e2016c5fcb8ec68fd7dceb0dbbcb97665c032b7509b7e083c20701648b6a9174485f117c02682ae4bde7ef037e80a85cdf6a0c86e SHA512 46d0e35f77941dee6f60f574c130472248063dc38494c1c4f84f7c048244cc2a58a86fe17c0990e3f0f01406b75ed385a13d00058612b27cf0e867c8d31c92ee
DIST string_cache-0.8.7.crate 16655 BLAKE2B 9a017f3248a3d5e7b8c1a05462a882862b20174c7ce5dda1568c3d3f61c422e84ba2ccd5d6dbd726d1c752f1eaa8062a179470927a80d5bdda0ce530d1ae2c17 SHA512 03f9cdd2c01c0f233284851f17eaefebd68a91ae2ed2b231fab2d6d6476bd19e0696d7d3a74fb6ecb2ec36b89e79ad966ab73051255c9e194bcf9c5029fb8479
DIST strsim-0.10.0.crate 11355 BLAKE2B bcb25ad0a7284e24e4f17ebe0ccb621bdc4118e499b50b094d98aa7e8fcc0b96716c9953c3516ce7ea78309d41d424892ded595259696a5bbffdcb07802b5c2f SHA512 78b318532addfcf5c1ccc1e14539e258aab9d3cd893cc45d82342549bde838c177d90f13c560671f8f32929af47d0b467db35e6876bd7697d8b3f9e055aeeac1
@@ -221,13 +349,21 @@ DIST strum-0.26.1.crate 5861 BLAKE2B dbcfb1e1ae7dd18e26cdcee4be8837a3e94bdc5d86b
DIST strum_macros-0.26.1.crate 25326 BLAKE2B 2f52389676e1581abf42995a54d7725b0ece50ba8da2ecba700c359a4bc3dfa3c48440908a57d8f25334a1ab6a844093e131dc351182ecec1cab9bff1b04c407 SHA512 f41fc17aaf84385437605ffa751a9f03d19d230780855f86d60b53de4bd1891519a3550c41a31d44312f44b59c3c184286d9181e40c3fdda3aec0c2806385455
DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d
DIST syn-2.0.49.crate 250652 BLAKE2B 989afeb8a654574dc2f56cc9b8f9a5ac6523cf4ccfb07fe9b7420624a45e36cbdf1343c9642e9a5e1073d9db58eba0d026d9e0441d31ecf697a4d49ebb06be1d SHA512 c9e35fa289476c8cc8349ca4850ea60abbb7c920b29c7b736bea210bf3d889c250dd664f44e2d02ed2d2533fd27073567257853e2541e440bb13ae9d5185da7f
+DIST syn-2.0.50.crate 254314 BLAKE2B a0aebb5fc4d84a6fc22cfd983bfe6f68d1fc6faa2c6878650ba387ae9432281308f188be693ca0b685d8bb2f488cac36d06afd05cb6f0a47615a4e4874cebbc4 SHA512 c09fcce91ba585d24bd6955399152a207b3f02176c02343ac5d079ae30c432d51cf13831278d98f3b614a907813bb0105d82d19798268245f8c280ac4a1a8a5c
DIST sysinfo-0.30.5.crate 169073 BLAKE2B a5a79133c3319f19b1b8ac62927e7a9f65ae86a55bb89fabcf5aa5642631f4597d923c4df35e2788a2c63514b7e30b4d072b6edbdbf577c95efe230abb3f60b2 SHA512 3d7d15d7e8129a53871bf24d1e72462f7e91721a39aadd29783d5b01be47b8c1cdd676f3b937ae630bb076320c37c6afa924f13c85774a7419b32f3b1bb1fea0
+DIST system-deps-6.1.1.crate 24171 BLAKE2B 40ec288648bda3c5370f78b7614621d3919589eedd19c86e542e4091066eaaf1d36258cf657a3e74bf2bde70dcedd14d335f4b7c89043b742b96d756df0c38e8 SHA512 14fc67e8a4447381bb5330ae6d579cafe7b1a1e62d3f528256217c18e07f6d0aa7095340b6c771eb62404b1e21771b627d77cdaadeb46cc80dc4fd6c789577d9
DIST system-deps-6.2.0.crate 24961 BLAKE2B de59a67e59aeb793dfc7f71aacf93303a4eaa3364aec69fabb7572c07120c447c0b3581ad62aa61292d7c78cda880557e1bc11a3a76bd1a6bd84dd3128c4fa2a SHA512 10bbc503b8f55560a607d764c2575c7b854ae07ed50470d7cededc1e0451e4c7f75e06a655eba90e5470d8c2d1f1911089cd4d82da378a2d15f8e718c8f794c4
+DIST target-lexicon-0.12.11.crate 24594 BLAKE2B cf06720caecb5b5758f05c6375fa600da9260aac04017458060406a042dc578d51a2c5b6f189345d45dacea42ba01fbe46853d07f70d7b37cba17d87aa101f9a SHA512 f38701a8e9dd17b7db591b1b4c82c3b75d317e003262bb7b09b9cabd3afab5ab79c02a7dd524910b6941ada3a8f1378ea9e199b2b5938f8f01ee75bb0eae8718
DIST target-lexicon-0.12.13.crate 25424 BLAKE2B 5fcac231c270a59b6589adb79c90cd3bb15ce024e3c5fa3fd267b3226e5514ce77387c57c86ca765b43ee593a55ec99fdc8fbfd464dc01afaa91ad10337b6278 SHA512 323331857bd3db9877a6c7304392e39d378439462ae4f6d6939c02d28914ecddec52696c94ceebfe8a0e7e93ce25c900099bb3922d7783643162e55c7a8769b7
+DIST tempfile-3.8.0.crate 31720 BLAKE2B ac975555bb4957f91e7d5733ef737bf25c62a738096457afa05079ed038de5e7144cbfd0e28bacd3eeb832de611616fb39ec07866481205c1f5c1005b2869d31 SHA512 8bc8e954bc0c6af46cf6e77d70f93583baea39fce54b111f4bba51fe5d5e5c184753ae2a2ea68a882b6ba5a157a57aeffeecc3e3cae86d78d952f3aa025fdf7f
DIST term-0.7.0.crate 37082 BLAKE2B cb7947c696f71fc68bab3b25cc6cbde74b92380fdde5447399b06de99534b0cb2160963792824ac74a350444ce41a4fa16d6a9792a68d84578a15ab37ab76ca2 SHA512 9de6e836f1fd205b3b58645ec880eaabfc0fd8991e3980ef90bc6184b370a14676edb688a2a75bce412dd8ebd97345aef742afe5b964250e2b6f84e6b15b486a
+DIST termcolor-1.2.0.crate 17917 BLAKE2B 5ca7802b0bd29495bcd2deaddcdb4c3ff964073a373eaf39964a24ed91a48c5c33e192d676099e2837064df3149fdd73aba7d241e9aeaad9887bf1bcae9d38f0 SHA512 cf1896523353390b2f90b2a8bf30f47da5fc7c2daa635bd0cd8059bdc73feb243e46e4279562fe45d5726f2840833b1e967c7de19ffc0c853592d9f86c0c1be7
DIST termcolor-1.4.1.crate 18773 BLAKE2B 34676efbde8e242415857d6d40a287ae3459678d8222f5144faefb8c84d635686f640e79588d98635c8f25b7628ec6663a01b16e1e462705b5cba7e8b8e61f44 SHA512 b66aad157c4fa2985f764321d157dfb1f0325fd633811870db7919b5579bf7bc19fefe99e1c706cdfa67504c37dc2ca3d283e11d1bb516edcfaf1eb7747a778a
+DIST thiserror-1.0.46.crate 18801 BLAKE2B 83656201a709f575662c64a51abe1581a0357260571f61eae4de16baa5440d5f0079a9fc6ce14840043e360d42e30237fdc9ec4e1c4127afe56817605d8cea77 SHA512 a1cd53c94600c8900192e272a3c6e1e4f32fb45af34d7a3eee50bc0eb5e0538b3475b05bf80a835509e60eeb3cc592ec7b4b37e80b8076136acfc51a13ef6dda
DIST thiserror-1.0.57.crate 20993 BLAKE2B 4eb90b8ee027e39102d6c030176db94510180f2bd2966503501ff89ca6b49afd61e6d9e1ebf18c08d374ff9de4e958dfcb3da8740fdfe31cceace5be456bfe4b SHA512 0ff7e48c3696f4f4c6af29f3142f0a7bb88a07b7a9877ec243e3ea15d89c48f1898b731311da5d4a7c88060628cae3eeea6a4eccf25bd851cb3075920cb1a936
+DIST thiserror-impl-1.0.46.crate 15076 BLAKE2B 979ac23b2ee8e7ff4131cd3c9cd354d540389db96507ea55440f396c7deb44d9020445184f5d1b1fa09bf007daed86f7afa550cbf2174ed1463e8adcbde8e5de SHA512 a61320499e54c995427d960f0895451d22f36379bdd45dfd478ce4d47cb29d0bb3df2be2489193725d2ae2ac4ae1181cecfe65c1805dec6309d2623aca74cd2f
DIST thiserror-impl-1.0.57.crate 15639 BLAKE2B 2838235c5536fcb16d19382fe286850d6fb882b1d77ca4ade6a62e1d4727ef89f69cf0383cf330996f9e2303226d5fd709557331a45c9a91393db1788fbf4422 SHA512 a850806f09b232546d1e0df5e35cd961a8aa32f1d8ac3b24df360981da53b75325a46dc788c994042c95a5887fdc77234b9f6ee5851242f734a613e579548e3c
+DIST time-0.1.45.crate 28911 BLAKE2B d43e2431752881f6885d572017f461b304d07ee5ef0d8b4898e62b47c8154268839c3bf69b141159090cfc0d90bd0113d6084fe99ea1f2b1e20668528ce21112 SHA512 e643fb8649f3efdaa1b0b6abc6a140d55ac550a55cad99d0cce9415dc51e155fb1ea240953eeaba5dc47ec73c49ab7f2962af79c693436289de0eb3ff60985ee
DIST time-0.3.34.crate 118430 BLAKE2B 6d04a20596c9b0961ca104748d9d360f07b16059719d7410fdf1a7a0d5f2aa02aaebf640999464835964bbded2d3257d79c4b0ca3080fbecf13dd2d0aa6962fc SHA512 3997e1b8d9be2f54184ebc9e1355d4b65f0b7bc9439b2b29e4a4acd86ad3a3aa019261112a24d998d76a7f66b266a86536fa50412279911b14d4d7aa7078c116
DIST time-core-0.1.2.crate 7191 BLAKE2B c477ad3410ff29f3bf4a38fc6ac4a043d49b6d2bdf5cf309ffcd2eec3bb6e4c4b62156ee7f069f0b37ea31c163bc75ccbf35abc1db2833cdd4912135e60ddfc9 SHA512 3861724c23cb806829a01186deb5217ae8252c20af622975264e6670cff528f42155039e4937756a9eb312a5580ffab07949437d5504d684a0e70755046cac52
DIST time-macros-0.2.17.crate 24443 BLAKE2B 5045af9352961db0c97cae2f6ca3e8d2c4f89a129c7ac2ec1d8d20804292aa9f2901a61f910a564954614b68f39311bd381deeb66fed8bdac423227d077f3d14 SHA512 c81747f0b74e68d3b3f36d378ac5911dece8c6b511e5ac793807f854cc31c812b927d0df941f55ff90d3d67512d0ac6a5f63f2de4322c81b05da42f46b4a661c
@@ -235,12 +371,23 @@ DIST tiny-keccak-2.0.2.crate 20129 BLAKE2B 105a2d2af36cc053cd95721ea563108f33b8a
DIST tokio-1.36.0.crate 757286 BLAKE2B be9fccb7c41fa6a48f500509ce7b7ce0e1c831a5ee51772ed10fdf054b5872395d0037864f10da4d8cd160d15e8dd8e2445446de75b8e8613debd01e530fd0b8 SHA512 0687980dd375965647c89cd6f569f74ded6400dbbf73318f02d8221e8f49a03151a4f023fced542cf63197d7bb150ca45417c10dfd91517d10bafe0d329d6848
DIST tokio-macros-2.2.0.crate 11520 BLAKE2B b688669f8bcb44967fe0d3db51fc5d5f86da3cd0c7eb7b5803feb250ea3444d134ecc7f79345f0b947cd3479a46659f3a158a04e0edaaa52deb8d343deac4761 SHA512 7e33fa62e0cf4b829638553a51f849242788d217264437444b3bf478fb40be26800d5cfd954b1bcdca1e5191b3c6c60879050f0f7e707461f7b090ae5025e0c6
DIST tokio-util-0.7.10.crate 110508 BLAKE2B 073b25e1484d54911bc15fc2a4b3fb7658f24f7f77a2382f9f84c5122871cf8c5d6097d5c784cd75b17a79aa63eca80644ff54bb496b52e53bb89650ce35cab0 SHA512 d77db36cfa5a2ace3090874d8996b9e94058ac31648308da8dd92a7bdc9b9b61adb703dbd2131adfef0b428cd61b4de76fbdb674f718e89b297f762af11ec50c
+DIST tokio-util-0.7.8.crate 101644 BLAKE2B bfd0b10b2ef7d1264262f78e406aaab07a1e060885dd7d9694b3cc34b6ae9f3d46946bbdc5aa3dbd0f6164973fc3305b20da04f37176250e874b3259860cfe51 SHA512 7b1501dd224b4a6749a5296751d83e6d57bae238a92430c32017813ab82c358086a555fd7d34537cc944c240ba73d4fb94864a5743dca05c138f834d45ee245e
+DIST toml-0.7.6.crate 49220 BLAKE2B 805bd9928fc3d05a1658188d4b858df62347cc93bf870a3846b9509c1dbdfc4123bc29a26019efa04e98699239ca7bb95ce63c802badffd86246266cebc65d7a SHA512 e51c49af63e37d1682892b84e74d48e171591c36dccb26e26bbf136385181ea9cbb94809b8900eae82b15e1cb79f844ae1cf0b00f0a6ac3afd5ebd02d554f9bc
DIST toml-0.8.10.crate 50667 BLAKE2B 815c850d4e2b8f107729c24ff82a6be81160649fff726f07a2c6e2af0283298fd5eadcc5811ba4ef20ce12914ecb43da79fa1840fea8d1572ca59f02f9e2c310 SHA512 24f3b44244d7e91ae50eaf20bde40c177352592aadd2dac697a831a5de9305ac1c93c8dc407579b9bbd8d9984fe34cfdc42c3243cd0057ad83db14bd899bb546
+DIST toml_datetime-0.6.3.crate 10770 BLAKE2B fc1754eb7c3a7073cfe41e5ccba152ff09891a8de8afe38991cf2dd7b93aacf07f1075fd24d7aa643238cf31e3df1fc3162335b2c475438178b4a4d8a2055471 SHA512 cabf5dce24ed3bf4674008743180a21e86286d999cdce79f934de48b1e1fe0f16a7f3d2498bf059acdb823b51bc01986faf47139f8100ae272e6bd19095cfa9b
DIST toml_datetime-0.6.5.crate 10910 BLAKE2B 93a21ab2784e96ee2e6b56c7b4f733f6ac4c68c1e7d7dac3fbd8aceedb3580e25b4a9c7d9c3f9b5ed152560353b3e80906e37824956dc4ea90bc6f039768f6cb SHA512 502bdedbcbd2ac9fbaa5f4b51f2e409af185f3633f01f8845de5e3b007f2400215ddeb82ac588bc915ed5a5f9d7251ccf93fe2a57cd40fca2927f4c0966357e6
+DIST toml_edit-0.19.14.crate 94875 BLAKE2B d11328357d66d4139ac23766ddc84985eb9e2ab7eb5ac5b3639be2098938596cb69c28150589f24bd404c10ec2fe06e0adc207b787c3dc869472eff15ec0fa2e SHA512 87f432e0f6870c2ff1476fd1dbafae8cfd736ab39436c1c60627d60511a65fece8c07bd9834d68a080f6969a256430acb20381f210b775c281764b183ec57411
DIST toml_edit-0.19.15.crate 95324 BLAKE2B f989f96d571693ff81572af6c05a6f51b673e478f22d20a6b166c45909902ac80280ea92ec5c3567327df90100a47fb7504845fc39bbcff6756af6c1a89e2221 SHA512 46d6bd2fea957392ae0ad7e687dad7743b76ee8e8ec76c80d6374ea294d3d09b6f73df0a82c821b9ee3b5268987a4136aa825034309f3cbc1947dbd1af1505dc
DIST toml_edit-0.22.6.crate 103304 BLAKE2B 93f14ec5e0765673b4621216707605d7c2afef82d0ad9fe1e0c660be62fb65a59e91db3144c7bf04c71cf5848dc970447b3b31255125d3a2be94ababb3d82692 SHA512 9816338008f2727fd53d34164c0be16621b61e22ac4838752839af4bd09e4d361f319bbd188c5732c1af140358d73d645e05faf4d655eb295d6c331293b7f2d2
+DIST tracing-0.1.37.crate 73888 BLAKE2B 60c74379bf84d7b152f0b4d5b4d4669a1227dce0f3b5c10210338193853ca332de7eed3cc3b6160ee3719da7fdfe565665a887f2f82fb1e1c716c421048a2e87 SHA512 2116045f51b35e90fc933cc136d045d09c0aaa33400a9056051d887fea2d2982b394830e4d4c3bcb4b831e62b9c19f6c751c2d216169f663aa18c4067aed7d75
+DIST tracing-attributes-0.1.26.crate 32060 BLAKE2B 80e96f77194d90c324867155a22ad4b6831551ace5832434eb83268cc1919b5aedd7d193e00ce7b8764724d446bbcf0f94d01a94e1347321df8eb6858c4132c3 SHA512 ddb9f5efb33627586cef49e3bd45d45b643cdc0e280c970a32f92c8ebe3bd51428ee395c43613911e23841ffab36daad322f2a874732491aaf6a95bd5035fb44
+DIST tracing-core-0.1.31.crate 61263 BLAKE2B feec046ddd3e04995bfe24defd6ae1187fd7ad78d80d69031178f67ed534e9aa6ab6aaea92dad509f57e220df5f6f025ab8f96bbc957834126f53dcad36580c3 SHA512 66fcd0b4f32de3816b1dcbeda1af26fae0a79d088894637984dc6a0ca65b609f5f166cea376601f6a75f8e3a281da6d4450dc796aa0a7177ad615330237e2bed
+DIST typenum-1.16.0.crate 42477 BLAKE2B acc6dcd4521493c438a8a3d997ab0456fdbff3db66aee9b81ba219714d47522c3ca8fe26f8ce84edfda416ff9a22747caf3ecc9cc4bcd1e7647ac351d5aef407 SHA512 93da3ed62573acbc9d5d31257fb72ae9cfc7d59e4040c1f32d93e8fec94795e1aa20a3bf76ddc64c4b383184306bb2a66e51fd61b64dd4ce46a1bca8238b57b2
+DIST uds_windows-1.0.2.crate 16206 BLAKE2B e895e97b5610c1402023b2b86daa5b248c4528f06fcbdb900cc996ff1f62a8234cbd6d8cfae84008345399f73363f9cdf62b1def60b782e06514b9d215236a30 SHA512 a58806bb9673f583d58ba2088c0dcb03808752bea6c0a502b717a541cb54c1b4cf70af8c8f3ae48437069c9017012c6e880a1e7c3c754835193e581849f28587
DIST unescape-0.1.0.crate 2412 BLAKE2B d373b1deeb116af0cdf177086bdfb2228cb9a1cdf56845a4fa37d92c700e1b71cc959617687d163e0f5d062f73ca48e9121dce56bc278374340189ecb8f110da SHA512 8900083c068fa12f719ac6a08436b22945a35ddddc61bba85fe47015e449026191f543c3ab15e436925f0799f8611acacb1d016646a1b0742a77617886533eac
+DIST unicode-ident-1.0.11.crate 42067 BLAKE2B 3c7cac3d2bf1cbf1cf04716a482f130123e8e6940f7a90a17bc62fca44ac0069688165538f5329b95a72f735b594cfb85e3250738393ffd1b53cb0cd95077d89 SHA512 9682bbee339fb987c9d0bb6a54406d37b28b5c3587372d406402e4341900fec97e3234cd03b5c98b90b6378fd533dc452cac3de90d3ade19c4b09657e4abf6df
DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
+DIST unicode-width-0.1.10.crate 18968 BLAKE2B 6174e307fd3ee290d0a5d1d31233baaa5315cdb73f19b8580718e9f9eb04cfd3aeaeb474af1e50c4b9fecc6fc777937dedc527c9dc9ed14ccf42af099e591f31 SHA512 9836a8d489d18ea1ecfe1957ed6d5da7dce825e138cd1848aef093fa8d2eb83fcf01eabb1a2446df4f5ede4e67316e9e81b5d58b59d4e8c5d67870e8fa5dca3b
DIST unicode-width-0.1.11.crate 19187 BLAKE2B 6baf7f3b32eb838925e591792abfe11968206d177facefb89ef51daf44c18f3fef1e41c19a47b88b81be50667af626af2024ccc540b240fb6e1d83fdea57076f SHA512 ee06f4144525424327a17578642565f396802f0eea539b3bebc8d9627376a8bc6c5376d83a6ee577068e99fe75815bd765e6d49fb9ab9b253d00594bb15a5ffe
DIST unicode-xid-0.2.4.crate 15352 BLAKE2B 80c327b39f3b8f2cdb5747cde968cfa1efe7b65b6bee9136adc881fa19f66aa5b1010d9d08de55a61b322d665b5b0cb0395e9ac471f6333c40d8dca5d97e123c SHA512 e67bd1258e1961807d9d5fe583a89ab5b82b2a529ecd32cadfc79aa5331380eb4a2db9fd96b74c8eace47f2f29021587d69bcdbf79f7e2650e92a25f7839d03c
DIST urlencoding-2.1.3.crate 6538 BLAKE2B 65777b0990aa6b3d27a47f36114da8622026ac8946b5ffb6e04172b666ec7244a55c250a7fb626472bb2b636eb32ee945599cee5ce7351c3cef2322366db15ff SHA512 035848d9243ed6a4528377b56edd7f8bcb5f824381b420dc8f5c4bfc3f1246655c54eaa7de0e4aaa7138e0b08fd796b9ace140ab919aed2d94f6952b577386ac
@@ -248,44 +395,87 @@ DIST utf8parse-0.2.1.crate 13435 BLAKE2B a1c111d7ffc60690f2aaa86f034c66ba1abe4e1
DIST version-compare-0.1.1.crate 13224 BLAKE2B 4bb1e7db6a4a5b30f4ef950234fa939bd562e8d5693aad42a5dadddde7caee01b4dc42b28d8ef61a769cf573440e57c0dc321f8a8b4b3dfc0cc035507bfed886 SHA512 efc9441440f702518867e2056c0ab066cd2fa6949112479e463802610f25a4d50c4411eb5fd0ba6ca9b187e358fce8d99579188e0ed9ba0297191172ab7af408
DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
DIST wait-timeout-0.2.0.crate 12441 BLAKE2B a99d3f57bc6e784ac06167f98b2dc2841f730dfab4fb9772b15e67707f756d6ba7daeb3e992d32291bed3daa85eaa8a8ddde64db5e1acf1cc4031fc9bdc82212 SHA512 db3b7aa2acfd44e64451042b8ba98eecab77a82aa5c58ed08dadb119ab36dee4e26d62baad7978ed56d5ad03019c96be5021455362290f56043981137bac8066
+DIST waker-fn-1.1.0.crate 7114 BLAKE2B e510eec0490f0caca3930000cecccde209ad387d1657c380f95122c68ccc15fcbe0684315d0aea28f094f2c65f7b7b08ae62f6ec95e0d67fc47e6af0ba4589e9 SHA512 80f612597534d9f8bdcd5e6bdff740805efe28242822bc6db360e114a23cb47ff88c74b8ab855bc764f0a73545e85a69d76bce1441e5899a36e41ca270695dc5
+DIST walkdir-2.3.3.crate 23125 BLAKE2B 3bd354b9796a31bd4c8f4ca695514101a7837ae2134fa1ffec20df1cc946a67b38c6b50affbc2cb79ffee0934474d8269378dab5ac49a4943ccf8c7aaa51db11 SHA512 2b6e1e27c16e310f636eb1c9ee58435509fb8f7a6c5beba4dd13d87aa1d91599a593bfe720a675d536ce63e217c31e240a57122455d8e18de1282a9e7fc3defe
DIST walkdir-2.4.0.crate 23550 BLAKE2B b4298c01cb38be0479b7ddfee627af01f889b6b6ff432e368bb67f65134c3958a4fe271a5a7dd61b19259ae88f5680e5ce8e12e50a872b05fcba68f59b7073ec SHA512 09e1bc852c01b452c95b26a369831a97bc5c9e0ada3111c73774570dd73bb5b9e4735317d5572304fb48dca44ce7b9f77bbd17c418b6b047b2ab17b8bb42d9d9
+DIST wasi-0.10.0+wasi-snapshot-preview1.crate 26964 BLAKE2B 525db01649a5981ee82ad80a1a4bab9baffd235262452675619f36a1b454017a74593c53c129f8c30b865994bbe30ef19cebaad9d245ccf54b9b07ef70d5d8ec SHA512 88e2da617f50d9ebfb1e0c5857321fb86b5ee88ae8a8d199d3cc092e0f39688a2cb68503f7c6bb09dd6bc50a9a03597a1eb2e032150fbd0d0b8afa02ad771c88
DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
+DIST wasm-bindgen-0.2.87.crate 175052 BLAKE2B bf8cf4aa1786ac5c2ba76e80500b5c54313adf9690ef370e60b894401bd1b81416da7bb46b90c014412c96f30f995bd1e52cf7f3a6be1111aea40866e8178396 SHA512 0c3099155ef079d2b91d2d5b135243d687bf865cdd9ae9d97d8cc2eb4c9bf7439b66b28d5b1d7e95048e53be63ed4909b6b3f2427951348de25ca7abb7a03705
DIST wasm-bindgen-0.2.91.crate 182689 BLAKE2B 4ee85709546462be3da2a6f1caa02448fa903c7411eb264894aac402979afae4a0d7f3dbb486266b05d8caa911893ae9bfe9921cd36e03eb5147a8d75d6c17d2 SHA512 80e91e5b6094eddadbafd842a4a1b3284de7bb51bbd795e8716a0adac354dc14ceee0593d7c33090de06aadc8bc61b8eeab8851d066cc4ef4661e64adff1988a
+DIST wasm-bindgen-backend-0.2.87.crate 26821 BLAKE2B e230aa256a1f681ab3ffd2c83c3f6a810c305bb79a5e1d806b8b2b9f54ef0babc83809f6153b9ca511faa4b122f80bd1cc9eb97e7ae3cb4cba9e2dc1c6bd0b51 SHA512 317ee2bdf85067cb7f4b4ed6ff475ff9e5063143e9b7c8a28572211c09025935815227c4afa8c92823ac92102562d4d34531aa4891d8c922048d37e27377ee94
DIST wasm-bindgen-backend-0.2.91.crate 28345 BLAKE2B 912a0471ac64d61f18d1c1749a3614ab70d08f330fd90b903ce5ef51f18288c7d4ef153f1d8100671c02de8fc499928cf925bdab4da4f0352789268dfae87457 SHA512 7d3c8db4503982fae9c86620c964e8f9a4ce542a79c56f21d9f82d26bb9418e78b7fa9922901663bf78516d58652dc3255ef48d1e1f042d8a3c69210f5804204
+DIST wasm-bindgen-macro-0.2.87.crate 13897 BLAKE2B 0926975b0328cdd5525820358795b7b68b4ab9dc460715ed84e5d276e76e936057140efb1ba875acf25f3d2862e680f9827bd05cc47560d54f7ec673f30244cb SHA512 af366d8d853b280014cdf5286f3b1f6d7fb0837ce6e359a81cb6f85161537c8e2cd06d7f893c957f5bf1548d34084d33a213670b471937782b56033a23cb15a6
DIST wasm-bindgen-macro-0.2.91.crate 13898 BLAKE2B dda8dd5d77dc57324b633f056805bf7892c39c5e70257b6d048c2f8cf885f7306f91f3f17de1b63dc740db66d52fe2250ba981077e03dcc731dcf7c80c047c9d SHA512 6b05e0a2657e7e4f313089787b52cc7f59f5a94be6f716ba007fcbc3bf7c38561225ba3f39245d779e28dd30630b2d4c6be12baa6ea1e6cb47e562ccff48372f
+DIST wasm-bindgen-macro-support-0.2.87.crate 20006 BLAKE2B d32dfc7231e4fbc226586e66063538208f9e299fbf803c4e2d1e1e61b4a22f51cc7509bdd269a44f072f9843a083ee84d2326408fb3211009ce93542c3fdc6ce SHA512 9390aa2767fed1027be168612c424d4c7cd4423addd83b79afd8c67886f66303ca4846e6454302ecc78b47bc62e8ee46849a4c0d3edb98849ce8476901424e33
DIST wasm-bindgen-macro-support-0.2.91.crate 20091 BLAKE2B 337b1b2a9e9e9c1350267df0d9f041291a847cf4faa3bcd6fcc8a96e66fda54685da72f6e64e57cde0d4609409ebdc7851e96781f599470f8b0545018bdc2166 SHA512 1277682520d88cb9529adbc054590a732a8890debe33d1d64ebce332c66c02f84065c0f643fa45c01de8b80534b2daf8333979601323b3ed50dc49553233c39c
+DIST wasm-bindgen-shared-0.2.87.crate 7248 BLAKE2B 0393ce9452119fd5f92836a76b28d3a697f91fb09de39d1af0a2a83e81d48bd4a17f39b48f15ae97edca3e361d4f8fedae8de04173c4ba1711decc73f64000d5 SHA512 cb9ff537554f56fd07052ddc4adc904a57ee64e13298df1dfca58b361ce163c34640e7dd9ed301ec1375f335dfa424230e22638ea7569ceb34aeca4505f6c008
DIST wasm-bindgen-shared-0.2.91.crate 7267 BLAKE2B a9dca2db84a33c650a7abbb6dc552bc4bab1446e66aace751d3709d2c63b878b127748a83cb174aae3ff8c5f5ec017b97623e5e9294e6ebf92d669efc618c357 SHA512 97072a8bdfadde104f6e9e760e1ac5ec665fdaff38a93a0bf601c95e652b35403e58a99fa8c0fefea6e47b38fb97f2e1ffcf52736f9ab890b0b9632efb26cb4b
DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd
DIST winapi-util-0.1.6.crate 12234 BLAKE2B b8db8ec9d7ada5532a22a2d070320174c32ece1f48890e9b028708e194fe72a04287b11910dc2ddc7f9c9674a9d8d39449b3e100725e1f59e59e3047a7e3650b SHA512 b1c949f9bcd34c1949a9d3a7bde6ce62fcf3d2cb66df60af41fe67a9d1acb24e571cdd5ac721be9f1ee4b3af5ef5149b5724ad6e02b558e124ef2a4412d12db9
DIST winapi-wsapoll-0.1.1.crate 2881 BLAKE2B 752a56fd63334b38528eca1bfaa4ba4e07de8b7b4f35aa71165038c70f7f6d482c994a9d8367fa5c8d17df48de746bdf773e32a1109b847d8998ab78c6fc33b9 SHA512 110bcb68119ce5848b9de19a9af0a752bb7f3bbb9c07f2e0d303b428166197d3525c8b4ca6afd56f132f14b4948054cf1dbcc7669c02775b66343e089488fba6
DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-0.48.0.crate 11864177 BLAKE2B 39c0e4f058f68a829ee08721818a0b04287af20dfe6e03a125b75566b4c8a58b56557d685600f1f9c215811154f9782f12368d42848445d54dcf9bfd6471349d SHA512 7c906f885fa0a730f1cb1ef4e62f5b602a49d44343febe1d38fcd4cbc28e0342766983796042585fe457aa229333558715b6270e378946faa8f398a7ecc2af8c
DIST windows-0.52.0.crate 11843715 BLAKE2B 0d35225f5d61f71b0cb768f03825031101e05c83d7f12e05cb17b14ba28e6bc6a3d5aaee5ba07e54c1a773b6eadde4ce3523ab87e8e313e5578e2de01a3dcdc7 SHA512 8a9d443cfae3b44ab50bdffd70b70ea3b3d536f464e4beb7cfa9e15eb4e4505cbac20266b44d589bb7231790a87f473ead6d2160b8cd18d62f31b78bf61417da
DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36
+DIST windows-sys-0.45.0.crate 2568659 BLAKE2B 6f2d634d121a9bf41e2887e277a73f33aee69b04c7fcfc6ff973d21902787997f1e186f530e9226cddc003ffc3f85a179c069c8a8688de459f617df92d33f94f SHA512 f239346c0141b95aa76e0771e2f4e38b9a592f3cd92c6001de353637cd65cd73b94cbf9917a4eaa9b0c0b2e6e2af920b9cf6b3fccb52770df5160254cffc1c47
DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed
DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-targets-0.42.2.crate 5492 BLAKE2B 42fc4a7d3e287fe2a70637e890304b49737776596f4a94a6d216668247092135e84322bd04caddd19c83b7700b0f27278e600ce8ed326957fabc21bffcae89b0 SHA512 84fbaffcad9a80beca77506aac26d0c5cb75aa0f21a5a70bcd3f6a16e71e8753ae00d3b89da9262c99756624163dcc0d6074fa9f99dfaae0dc098018209025f9
+DIST windows-targets-0.48.2.crate 6902 BLAKE2B 0b8f31d714e473e212949e1d4612ab914ef1e5e0496883e95c1c339d9c23a81a6cd26b30285e50fa1d8f534d8557f1a5e678222fb6c421fa6d9b10965e9cf3e8 SHA512 0cdb8b4937e85e765505964fd9dd7896168f1dc7cf5e0d3dbef8fdca39c7f0e1928063e542eb714cc4d52d674aa117ac49da58774b9ba9ad88240e00f0a615c5
DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709
DIST windows-targets-0.52.0.crate 6229 BLAKE2B 4b1efdd32202f112d3782b586ce60667f5d3b6f97ccae0d7da833aee2ae81ceece88b5ef4126db2448c9019de3f77e4fe66ed4286bb6275d9a5e8ab74725b804 SHA512 0ea09552d89b802ec0d419b640fa02d0af7af602704a0e88ba10f81d123dee0c907460f6ec91224177ec9a948970abd7414740eb219148a4d66c269c2362740e
+DIST windows-targets-0.52.3.crate 6312 BLAKE2B 187b5865f75c9a96c56ff9d1a70c83c5226fa94efa719b5f34dd7ef4cea9c9208a99284dd36f716d3731b1ef048a137d336db3029c3d8836b79ab42ffd2fbdce SHA512 ecaf55dac237fb8d5c717b76ece4dc7bc8d36feae50d9c8cf2fb5e0c5e41eef4984ecee87d325996195e99d7b5c4adcb7848fc58f5778e9c493105462e7f64b1
+DIST windows_aarch64_gnullvm-0.42.2.crate 364071 BLAKE2B 97c4e3b2a2dd3f936f9bfcdad23639c9c4c499eed220aec361d26d6013d798efa118e6b298f9cf841ac149d2ae5d58ca653731718450fcf2910bb5f6fa39159f SHA512 75cd7eb1def8ce9d0ff3d7468d2b1cc31cc76c08f981a2460c3d1eb09cff7100d7442863a3591621c1f5f3b3f4badf0b5c95285b6ed583e37283a8403f1095f1
+DIST windows_aarch64_gnullvm-0.48.2.crate 418490 BLAKE2B cba4b824e24de57d628e2158d1440aeda851a1b04bb5c3d8fdcf17b10d0fba71a62c5a39cfda47a97118bda2c1c80d74f1483467854018d4318ee767b846dc40 SHA512 fc5c3d08ea91e831b9a30fe9c9bf94b5b0e7fcad7a70bca4ca18dfac1b2be0fd7418c2cf2e1bfdd5bc58441e3138f39af951a0b3098d8eef9e8d0f77add4127d
DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996
DIST windows_aarch64_gnullvm-0.52.0.crate 430182 BLAKE2B f23370c62c4ab3fd885e3ee22e8ec2fb5a3a837a57044c1df3f9986dd4e7e9d0a44ec58be1648a41e1ea4d037afa3077f0f03de0204199a82fb8395731815a4a SHA512 b7c3fe0a2ad5149be0df48fc7a4d15879eb130bd9441c58c25fc71b8a91483f0b553fb1bf29a9302acd348e9083a547430a840b059b0cfe19867ecaffcae986f
+DIST windows_aarch64_gnullvm-0.52.3.crate 433375 BLAKE2B cd23ba430f0540e6e1c7487dad9af6edbe73d3dbf8abd5cf1901788dc202f92c22f48ffb5e314232fa7f06c89192f17210ae054e93ba4ef4277575858aae4da6 SHA512 7f29e4860fb98d47460462542761e185fa811dcf1ea52124c4b1463815cf57fbebf0f680b6fede92a7295873ffbdba8aec4f6d100a4e8546d4a7dbb984425623
+DIST windows_aarch64_msvc-0.42.2.crate 666981 BLAKE2B 9f3cc5592cdede08bcdc1e7c455325279e3b763d96942695e10dccf1dfc37a81c749b69a7d6de883d4c0fa6e8a0d2f578fe2a8d6c42ad8ef6282590bf8fc87b7 SHA512 d2dafa8c94d01c1b65ca1bd631d31f2ef842f1db7accb132ff78c3f8483221b991afd3391563e03dcec42bbc9cbdc0ebdab47b991d25af85b5ba2ac1bbf8db63
+DIST windows_aarch64_msvc-0.48.2.crate 798478 BLAKE2B 1b76087e8ba8f392fca64bc7da6bdb1c1c9229ecc50823eed3736ce8f722538b4877e64fc485740b3debb4baf0061053b5a129685bd0ddbc4555cbf2db5ef2e4 SHA512 6831644f41b86cc6827d6c9827b8787768a5961a723003fe4950bf7b47bef79562095682d688d9a6184d39f305da6477b6666229b9434e9f60093cf79d0925e8
DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff
DIST windows_aarch64_msvc-0.52.0.crate 821663 BLAKE2B e6f772858205f7cd871722136aec4d00daea4793ff9dcae53e6311e74526c46aa11c2b3df7a85e6c577757254cbfa5a713e68c694625ca274b64e7a1c5532c23 SHA512 8446bfe5b9fe538415762c8129ab3bf2fe45482e045bce367475747786602ad4ae1187c6e508dd9d7b6be81bfc8d430e0db9c624e35c7cc52e823023e46f5cf1
+DIST windows_aarch64_msvc-0.52.3.crate 828053 BLAKE2B d37851b56d01eb0358e2f37fb34ee1b32b58d094a380b02cd3de09a60983b72ac0b4e9064f0b1677bc192029faaefeae9823e2e13a1f7ce6cc3c835742fc2eda SHA512 94534489d1621b78d6eabaffdb614bb0f1bca1c37237d5154d3d6ddc79bd09211a0198f1f05a6aaf085299164a09ef42342a40cd82d66cc5c74fb79b3b44978c
+DIST windows_i686_gnu-0.42.2.crate 736236 BLAKE2B 4ef0496462afc73d9d72af7e5da1e6d3506a92f8172930e88ae64ab97596ffd31c4f97fb969e9b677e30159c27f00a8e756deb006b630fb98ce83f03c8b762e2 SHA512 ad09d650a05cb91cb6b40f59025c023a4c286bc1194586697c506016df2b9b0d5b02606b81687bc634795a0d9a9b8a73e486599328ae09c853e8e5ba662fc59c
+DIST windows_i686_gnu-0.48.2.crate 844890 BLAKE2B aa39109e2ecf796bba3f7e2e72ad27698778e0d05066c0bb05a43f6c579c527a14d1f339cfca1a77d50ad3cbd5b1bcd4e482fab7054e33759cce1e0a0dd53d97 SHA512 196a918a631e56eba0b1775ca4bea4cf95a86251e5211650a0ab9aa87194b2a7aaf10270f1b7d4d204e2dfd27611df4eab7ccc34234adc2298fa808c09c4820e
DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a
DIST windows_i686_gnu-0.52.0.crate 870285 BLAKE2B a7688062a128a1b1394b3978210334e4e2aaa10dce131457c4a11ce0cb3f551e7f4962d1ece1846d8e9526983ced0e0a3ee8c933858e9314b62e76381e086ef9 SHA512 fe993f5bb6e039c257be9b35337e0221f718d23866818bfd19c76aaae236aafc2de4bb5014fcdf919563b5901cdaa14a2136cd086eeed3c83e46a5d02f6aa77e
+DIST windows_i686_gnu-0.52.3.crate 875737 BLAKE2B 581f850b399dec5a6ebb2f8faf67fda5d2734cd68ccfe8455d40b175668225823019074483c28d42810a68ea925fd9e08340dae7aae411f779f5dc3b8b632a30 SHA512 8a80ef56b696485ed31ed54f1480bae5b11c619edcc6e71ce1c19b9b10ab52a0ebfd045674bcaeeb029234a5088435b9ba64328d5e6aa4418d5c6751b860040e
+DIST windows_i686_msvc-0.42.2.crate 724951 BLAKE2B b084286cd4927efd2889b149abf8a9fe9d3d777130db9e592982660dbf9a96a0f5e723ca121465787aa11877d2d29a5a7d7cf066cdc8fa7e90d7ca7dcb7677f1 SHA512 c1706fc36d4b157c020744a11b3eb5d7dfbf05a0b56775bc717e94b7fd725816b20154fdbcd69ac08dbfb8b8bbfa74fab72d7a9c10399aad6a1cc54cf597e804
+DIST windows_i686_msvc-0.48.2.crate 864299 BLAKE2B 1d2e1932c582015267e416cb5631f204b09aeec312add1b3c2c44c9696d35605fba1ade92d4e8941723107da75556b4a05f0369dc1ac9e6e8e06ddb75d1d780d SHA512 eeb55369bcde8ec90f16632ae352ade618a5a1a828637ef1630a5d6f6c72ea9f984331974e69ad5ecb123326ebe9b0eb9d1e4eccedc25f2174a7ddfb2308f3c0
DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e
DIST windows_i686_msvc-0.52.0.crate 888693 BLAKE2B 7a6e9d03e503c8f543e80a8c7bcf3f50cfa7eed462e487ae7b581746d7cc4d871b33e307110d3a3a75226d88e837f9452ac56bf3baf71b66cfab2626cc15558a SHA512 817ac796fd00bed51d80133ec873cf3d3d582ba41fec8a6f6407fbd7544f198e928aa5d710f70c13bbf74a1dde4c91c54e65eb9d3b7518a7f011ea42725eb671
+DIST windows_i686_msvc-0.52.3.crate 895534 BLAKE2B 8ad461fadaeff1649770fb647d9fa523d77e16b27f016fd9db99c4d6aa4016c6965c9b5432b8183d4bff7ef7564e5023a0673e5adb0b31d683b9ca0c9b05d60d SHA512 36cb0862777187e3f6728fbbfcc520f228594aaa49124a0f6a93e236325be4b9911b91f9b9d2181bbac60a50c0c996b52f56743542ffb4c0825b51160531a783
+DIST windows_x86_64_gnu-0.42.2.crate 699373 BLAKE2B 01c70809d564b16b268656e47295e99c992d8f9839fac8a51338a0e7c3b9cdcd0429c456ca8c1c139a8c687ed7ed6c43a82250889d881aadaa65bd037223e0a6 SHA512 5767af3c86e717f93137a89d442230e6b60a649057edb3ab104b1f82c0bcd64fe089dcdf2f4fd486a799bece1ddb5f0449641536b678211945e749ae24f35c1f
+DIST windows_x86_64_gnu-0.48.2.crate 801615 BLAKE2B 72529734ea7c0019025d6de7a083b3161d39725cce2994e5c16a9c5a0fde7b3a4667cb1a3a32ca86698c03fac5b535c5c2eb1dfc27b8385372731906c1c3eef9 SHA512 80975d01da78b45a44837d302e7110419a112088a8966648b8feba2a8450d753ba5e1daa5795374ddf4f5f9a3367482ed03a83f82221fa9177c47a35f5cbffb7
DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74
DIST windows_x86_64_gnu-0.52.0.crate 826213 BLAKE2B 3ca03285ef289fc844261142154e710e996c29940b1c0a7dc3016906ff6452fa50b24f8668fce0ca44bf169ab1228c217fece9f7bddac9ab8bdc54fddafaf8a8 SHA512 2d81af56ad0bc9536f6e066776642a546ce6c6d99551edc0603ffcafe6db15d5d5a32a642b204bbfadf34231daa3894ad7897a9c0c575c2b6bc1e3e58a9a3eb7
+DIST windows_x86_64_gnu-0.52.3.crate 831624 BLAKE2B 7de8ba0fa2a7f3280f2a4b0d505d3c900a5b6295ebed443e2e48ee1c46fe5a5df7edc2dc6eb5fc2117ac10ec0bfdc1dd7c5bbe3c7f0e5b7859a0eecd25b7523f SHA512 6421cf0a66beea3b7d843d56c6b46a49ea6d111fd4bf80d68bae8b42abd365fbce506e979b8a529b2b4ff229a2c37c337f13f9f11c713e5add464cb5a1995954
+DIST windows_x86_64_gnullvm-0.42.2.crate 364068 BLAKE2B 64bc53e98eb3fc649c9b43a6e734de4e65088e41edacabd49f7afcc5dc6e1065c563ecfc682747dda05978dea2dba4f45c16fcc18c3b00684c3d93681e5a7deb SHA512 d39a8bc948110fe612d3f8d6628b3f0d56620df11d8a49e0fabb6c90389ad407582b3af10e4eab46c79b3d11d2e10753d73d9e55963fbeac085f41e9749bdba3
+DIST windows_x86_64_gnullvm-0.48.2.crate 418482 BLAKE2B d51b983aa23ce467001493d909751866c5f6e4f3241f578a79aba56f6700cf210a0328a0b9bafaffbc331cbd1b843704a96610adae18b290f317ca351de684ee SHA512 10dc93b706b5c295e5fe54ad30277699b4491751baec30d9f57618eb083b850cddac4fd871bc4519aef74942127a4bbd637d6abcb16249ff8658dcd2c87dbd5d
DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa
DIST windows_x86_64_gnullvm-0.52.0.crate 430165 BLAKE2B af9345a1f6e0ed1392ca1534c68d23f3be0fbb6a42b3c5518cee14373e645038526da15e849d14abe45c53766a30c6c2042a626482ba4a05409f325eb6aa36b1 SHA512 e88af35fd1c694dc189783e5c81aafa61aeffbddce4d7130e1125d0ce3d932fafeb345990ffd98477c41b578b7f5090f4f9c0457b02146309b95549c9f8f44f0
+DIST windows_x86_64_gnullvm-0.52.3.crate 433359 BLAKE2B f949c9564d949d6fc59034b5c85bc77798254ee681f0087092a50541d62bc9aed62a581f319a39111ecca834f2e2af6ade162e2134c9febbf639a950d27b8efd SHA512 3b6c89243fb6a7d922a121fbc21ef2e0b6d55fc79ba34381d7675aa1f0fc754f3e023e1db345c0b526635291423d3c13abccf31619b58a3bad519db5c3ea596e
+DIST windows_x86_64_msvc-0.42.2.crate 666936 BLAKE2B bc3a456e7f8bc272f8978ec69506ec9d89f97b7582ebbe05d8bd57bdf8156ef62d0d2dc6137a97e81d54059d70db97a24af9a038adff357f5dfd28805d6193b5 SHA512 53a35f438903fceb59e36bd2ac331773fb8e6c8c5a6d984e79021761f91b3b4a23efe49d219667a4d0d23dcdbf906da9c24e74fb1cff93395b5c55ff524e3788
+DIST windows_x86_64_msvc-0.48.2.crate 798416 BLAKE2B 2e9b22359a1c61b8cf9b071cde74ca3382a82b7deffd96749a2353e9ea458b688772876149b54995ecef16df1890529412d78727966febd39afe69a9cd380011 SHA512 423de12304534f8cb54952d51e82abb6438c5c8e8d2e12d9573ef2209ed3be9976d825c1329bba9dd438d155c12688a23f33f48045f19891cea5ffc17545b722
DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0
DIST windows_x86_64_msvc-0.52.0.crate 821600 BLAKE2B cc448b65f98fc0fc4949ae622b7020d2dae927ae45310649f6ef71809740eda9d3db0fc035676c201fd9ab9639e9e7f21e2e992b4c789542f12b419d2c752179 SHA512 3aaee31533a1a48a6ab5cd15b3cadfbd906a93a153e53919d0aa74e440d11e29830554e4e014c215f5b88a475bb733fa8ba4ce9d773d3e23a40ea9ad37ddd0a7
+DIST windows_x86_64_msvc-0.52.3.crate 828013 BLAKE2B ac5f46bf73568bf066e7dd1c1d58dd9a18cae2cf58250e509430e0c014ce7a876eaec037d479e2907376fa0954f90100d5a14b4cc01caac4489c554a5225456f SHA512 b30c6a6505ba4c4878040a2fed445027c9778fa8e8554721f0316fb7c108a8886bdaedb27f772d550ac49d246feee9b5b0c216cceba9a24b47fd00a885bc6601
+DIST winnow-0.5.11.crate 144659 BLAKE2B d9818782225baa7af92a31cda720634cdefe8a7a9cef59c49bae7c643fcf36807d4ba6918d1cbaf623deb78082408b6dc2655c33ceae58d9d4704f70fc0cddd8 SHA512 0e21cc8901158cd740eef7c23682b58f3819167f3fd96623dbb16b777e7af5457285ffc783c04562bd996673b798ee97832adda35c94c48d4f7ed609fe952d25
DIST winnow-0.5.40.crate 159316 BLAKE2B aae5076d59b3459c901d918d8aaa97ba8bfcc993b8484344f52e45f1f37deb96d6cd3a1663a67f3c367be2b05d633286f270274c621bda9f3ab72b98bb652cc2 SHA512 525156f08514b0110697360be6e331a68d08f0cb65ee4ba3ac9d101dd2d42a8c89601e7409bdb5652c5b05145626506651010f58a854c47712065334c61ff39c
DIST winnow-0.6.1.crate 157139 BLAKE2B 51ff0d738ca8ee04cbda131bfa675e1bc2ec54f286a1cfa4748e08c78cff87b4579fd74bf788fb7971ba77986afb90054bdbf6ed49db0e2b632d0f76127943ac SHA512 b1d54a03caa35a07e5a869278e5ff396da8fbaf7256bffa4d82da206f6b91a103fdfcc2e3210b5b1fc153636fe687be5cfd4fb4ffbeb84ba240ffae58ed4300f
DIST x11-2.21.0.crate 67810 BLAKE2B 075a51fd5f20b700389625b7f582a1d946d810d08f559df6fc4a8214e9383817578079402394420a5591872c29fc7ba440b992b4ed792a3a4db836804f25cb3b SHA512 1586ba1c0e77e70075ccbb9f3b88ab5af862d7f76f7d8108d4fc95fa87cb316865b593ec62aae53ab7ea0b90541e2b2db8806ea1b3fe9306b98ff4ac69daf674
DIST x11rb-0.11.1.crate 209011 BLAKE2B 3132ff62a3d64feed5818e0c7f731c4c69e8992e80d0f093364e9ed0b43bf38c6d11b97ce56ef758dc67386b8b379213dfed2ac0834f3939ac104a3ca620175e SHA512 358820c434e2e677fc985e9a2cb5d88e64e8fe2ebdee6b9142b357c6ccd7903d3eaa005d94fc5f91fa7be05fd0bbde5b35c64a91ecb529e48486dd2485d94c4c
DIST x11rb-protocol-0.11.1.crate 467654 BLAKE2B 399dd67437017d37549bb6ea776cbcf5d4236553fb5f1fa3c36655200e55b1afe9c42e99c1a35963a17605110db77d633f34bbb433afa072f48e1bcbc10b19b4 SHA512 744bb6b622f31c18334aa5ab65523bbc018a876027edf82609270d9836454404d0c5a585944e881a67afa7637f40b8d7341519f4cbffad47f51a3f88af5de1af
+DIST xdg-home-1.0.0.crate 3310 BLAKE2B 9ca30a8daabf4e48aa3266f382c8d33313388057d7cc0b837130229b342df4da8b712831df6ed4b71f55014e0b6acef482849735c82957e71fffcdb4eb781f63 SHA512 943414b1238be9cb0785987e45e90412ea1df6f838ec845147555e09e2433966b2635b59884f9adc13f79820661062f13c1368fa959f785897a2617ffad0bc23
DIST yaml-rust-0.4.5.crate 47783 BLAKE2B 3e888c5cc7afb43eaf3aaab2b6f47b86df164a66eb54d4e166b965cc84b1e06cd17bd992a0d6ee175d9a73a76e2b44a13167246383ed054afcf3cc1710b309cb SHA512 7621dc8dfd5e7d4a7a8805b2a7e8319b63b852367655f2359d4e3e8fec6c4fad52d75c46ce1161e4c674eac0780b757ce9d34e664e304d8d2beec7afa0363ea0
DIST yansi-0.5.1.crate 16525 BLAKE2B 3b5a93b98293daae72f53bf3f13bfc05feba8d5b27921f79595f7448fbcb9a0dfa6cd70f467c5735b914c46b7d3592e6cce080c540a458a904308525eb3aa839 SHA512 7b33005a066cc612408a65df6533e8718d1de43efc0fd57416a19dc2b811497570e6e18f100fb26073565e395e711518c27de7d644ae64777713f1a102eb16d2
+DIST zbus-3.14.1.crate 148931 BLAKE2B 6fe6dccbe50d58302ca514ed703f2ae73d6042399c7cdf8bfd156b6c3b08c9f0e6cd47dab2995b5a5dd6217f8c657b31a72676bf7627ab94b7021c507bb272d2 SHA512 e972c93293ecad9b25adb2175a6960d2e7f94acdb300e3d887c807d9532aba4e604747543142a174955057fdcd082c4a3cb340a4398e31b491c44eaa92829c9b
+DIST zbus_macros-3.14.1.crate 25893 BLAKE2B 432742f4ca676bea1c97ead3089d912a238ff1e002e4650a80d1e4f10f75f8005bcb37e8d937e0e72c0879806b59ab4356e784e06bd66c2a5ea3f46beefc8de6 SHA512 1b6a4376e3b5e7b5f95a52026e7ccf48c459b816b210e6cca2b67ff47161f586590b8c68e7876573105f7892e1c4c33163b3679acae779feeaffe220f64eaa09
+DIST zbus_names-2.6.0.crate 9638 BLAKE2B 014004eda1335361f34101ab5715d457a0d6d7df8ba5c4262304c338ff16fd7723a9f9a47e088d8a949e3343d20c2a9a05e24fb3fa0e46a9c10c58399ff20042 SHA512 3d0e5fb5aab3d2955b4516168b19be5c86d04cf2cc7d7f83779ba1d0f637a5670f16bc2f34e57bef0692477c3e2c1821f820214424c45f0411c40be954e38741
DIST zerocopy-0.7.32.crate 151096 BLAKE2B 12c7c329ec0e0865467af08306ff4b55ce1e39fd77b094ee48ed9c6e266dfa807bda9ea72a3f7ea989916327f4d9e803d8868995728bfe2fb1c2dc1e5ecff78e SHA512 6729b05eb88029555b88c75feff4f8bc28ad9675edb02b07486381f775c8650c95e2e59612906bd9c34c5e390fd339857ca91573ee9f9ca7948572cff4171c82
DIST zerocopy-derive-0.7.32.crate 37623 BLAKE2B 8b583d39d7bf9c3dbbba578120751c664f87363c5ba3fc45f6506a4059b9e599c43d9fc7bd498a257ff7c9d872af77d39bebdb0e65fb8009eaa2ae9903dece46 SHA512 3ce8528871fd18d6abe92b98503927451d25791c9c4af0ba39a3b6ba2006030bdc137084d080e9b1ac8b5ddf5f2121e0a3ef34bb2033a040f2c72c8149a9fc0d
+DIST zvariant-3.15.0.crate 72221 BLAKE2B d2bea9c05edfda4a3c27a813a2d5274d3e7e35fa56d17bee91958c641e45b8c9bc7eb4f7787e099d712585e770012f364e244c4c1c30cc918886a688f666d642 SHA512 7acbeff6f717530ad771a415b5fd59804e6cff862c36ff4a7adee715d988a5ced8bcd47d3b41636a716239af8c0ac5b9dedaa663acc6f9f725b4a6072088341c
+DIST zvariant_derive-3.15.0.crate 10943 BLAKE2B e75d5feb9a76b74c7b77d0be8552c06a2323337884c5cae60827bf7c470d0875d2c3d40c393fc84c63789206650100b6726da7e57446958ae07d5c20605905c6 SHA512 262009179f7c5d6b559709be69c89697eccc0202fbe52575f116894390b4443986edf6bf51ad83177423d5713217ec8f0fb9ecd3382960120055666124afabf8
+DIST zvariant_utils-1.0.1.crate 6223 BLAKE2B ea304bac65493168f1be268192829d5a666a267b1f69533a9d2da2b2d2447d7a9f0f70164d60ab02afd90134e37060f86706bc7047c23aedb198d0834f987d15 SHA512 3cf364d53f1169d5274998c3f06ef1a9371071644b256223441deb004553d4eccbb564305ddc0693cf1b7a595e8c1b989df0f8b4eb8447a72782d7d200120f36
diff --git a/gui-apps/eww/eww-0.6.0.ebuild b/gui-apps/eww/eww-0.6.0.ebuild
new file mode 100644
index 0000000000..bbf4fc42a2
--- /dev/null
+++ b/gui-apps/eww/eww-0.6.0.ebuild
@@ -0,0 +1,451 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.20.0
+ adler@1.0.2
+ ahash@0.7.6
+ ahash@0.8.9
+ aho-corasick@1.0.4
+ allocator-api2@0.2.16
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.12
+ anstyle-parse@0.2.1
+ anstyle-query@1.0.0
+ anstyle-wincon@3.0.2
+ anstyle@1.0.1
+ anyhow@1.0.80
+ ascii-canvas@3.0.0
+ async-broadcast@0.5.1
+ async-channel@1.9.0
+ async-io@1.13.0
+ async-lock@2.8.0
+ async-process@1.7.0
+ async-recursion@1.0.4
+ async-task@4.4.0
+ async-trait@0.1.73
+ atk-sys@0.17.0
+ atk@0.17.1
+ atomic-waker@1.1.1
+ autocfg@1.1.0
+ backtrace@0.3.68
+ base64@0.21.7
+ bincode@1.3.3
+ bit-set@0.5.3
+ bit-vec@0.6.3
+ bitflags@1.3.2
+ bitflags@2.4.0
+ block-buffer@0.10.4
+ blocking@1.3.1
+ bumpalo@3.13.0
+ byteorder@1.4.3
+ bytes@1.4.0
+ cached@0.48.1
+ cached_proc_macro@0.19.1
+ cached_proc_macro_types@0.1.1
+ cairo-rs@0.17.10
+ cairo-sys-rs@0.17.10
+ cc@1.0.82
+ cfg-expr@0.15.4
+ cfg-if@1.0.0
+ chrono-tz-build@0.2.0
+ chrono-tz@0.8.3
+ chrono@0.4.26
+ chumsky@0.9.3
+ clap@4.5.1
+ clap_builder@4.5.1
+ clap_complete@4.5.1
+ clap_derive@4.5.0
+ clap_lex@0.7.0
+ codemap@0.1.3
+ codespan-reporting@0.11.1
+ colorchoice@1.0.0
+ concurrent-queue@2.2.0
+ console@0.15.7
+ convert_case@0.4.0
+ core-foundation-sys@0.8.4
+ cpufeatures@0.2.9
+ crossbeam-channel@0.5.8
+ crossbeam-deque@0.8.3
+ crossbeam-epoch@0.9.15
+ crossbeam-utils@0.8.16
+ crunchy@0.2.2
+ crypto-common@0.1.6
+ darling@0.14.4
+ darling_core@0.14.4
+ darling_macro@0.14.4
+ dbusmenu-glib-sys@0.1.0
+ dbusmenu-glib@0.1.0
+ dbusmenu-gtk3-sys@0.1.0
+ dbusmenu-gtk3@0.1.0
+ deranged@0.3.11
+ derivative@2.2.0
+ derive_more@0.99.17
+ diff@0.1.13
+ digest@0.10.7
+ dirs-next@2.0.0
+ dirs-sys-next@0.1.2
+ dyn-clone@1.0.12
+ either@1.9.0
+ ena@0.14.2
+ encode_unicode@0.3.6
+ enumflags2@0.7.7
+ enumflags2_derive@0.7.7
+ env_logger@0.10.0
+ equivalent@1.0.1
+ errno-dragonfly@0.1.2
+ errno@0.3.2
+ event-listener@2.5.3
+ extend@1.2.0
+ fastrand@1.9.0
+ fastrand@2.0.0
+ field-offset@0.3.6
+ filetime@0.2.22
+ fixedbitset@0.4.2
+ fnv@1.0.7
+ fsevent-sys@4.1.0
+ futures-channel@0.3.28
+ futures-core@0.3.28
+ futures-executor@0.3.28
+ futures-io@0.3.28
+ futures-lite@1.13.0
+ futures-macro@0.3.28
+ futures-sink@0.3.28
+ futures-task@0.3.28
+ futures-util@0.3.28
+ futures@0.3.28
+ gdk-pixbuf-sys@0.17.10
+ gdk-pixbuf@0.17.10
+ gdk-sys@0.17.0
+ gdk@0.17.1
+ gdkx11-sys@0.17.0
+ gdkx11@0.17.0
+ generic-array@0.14.7
+ gethostname@0.2.3
+ getrandom@0.2.10
+ gimli@0.27.3
+ gio-sys@0.17.10
+ gio@0.17.10
+ glib-macros@0.17.10
+ glib-sys@0.17.10
+ glib@0.17.10
+ gobject-sys@0.17.10
+ grass@0.13.1
+ grass_compiler@0.13.0
+ gtk-layer-shell-sys@0.6.0
+ gtk-layer-shell@0.6.1
+ gtk-sys@0.17.0
+ gtk3-macros@0.17.1
+ gtk@0.17.1
+ hashbrown@0.11.2
+ hashbrown@0.12.3
+ hashbrown@0.14.3
+ heck@0.4.1
+ hermit-abi@0.3.2
+ hex@0.4.3
+ hifijson@0.2.0
+ humantime@2.1.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.57
+ ident_case@1.0.1
+ indexmap@1.9.3
+ indexmap@2.0.0
+ inotify-sys@0.1.5
+ inotify@0.9.6
+ insta@1.31.0
+ instant@0.1.12
+ io-lifetimes@1.0.11
+ is-terminal@0.4.9
+ itertools@0.10.5
+ itertools@0.12.1
+ itoa@1.0.9
+ jaq-core@1.2.1
+ jaq-interpret@1.2.1
+ jaq-parse@1.0.2
+ jaq-std@1.2.1
+ jaq-syn@1.1.0
+ js-sys@0.3.64
+ kqueue-sys@1.0.4
+ kqueue@1.0.8
+ lalrpop-util@0.20.0
+ lalrpop@0.20.0
+ lasso@0.6.0
+ lazy_static@1.4.0
+ libc@0.2.153
+ libm@0.2.8
+ linked-hash-map@0.5.6
+ linux-raw-sys@0.3.8
+ linux-raw-sys@0.4.5
+ lock_api@0.4.10
+ log@0.4.20
+ maplit@1.0.2
+ memchr@2.7.1
+ memoffset@0.6.5
+ memoffset@0.7.1
+ memoffset@0.9.0
+ miniz_oxide@0.7.1
+ mio@0.8.10
+ new_debug_unreachable@1.0.4
+ nix@0.25.1
+ nix@0.26.2
+ nix@0.27.1
+ notify@6.1.1
+ ntapi@0.4.1
+ num-conv@0.1.0
+ num-traits@0.2.16
+ num_cpus@1.16.0
+ object@0.31.1
+ once_cell@1.19.0
+ ordered-stream@0.2.0
+ pango-sys@0.17.10
+ pango@0.17.10
+ parking@2.1.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.8
+ parse-zoneinfo@0.3.0
+ petgraph@0.6.3
+ phf@0.10.1
+ phf@0.11.2
+ phf_codegen@0.11.2
+ phf_generator@0.10.0
+ phf_generator@0.11.2
+ phf_macros@0.10.0
+ phf_shared@0.10.0
+ phf_shared@0.11.2
+ pico-args@0.5.0
+ pin-project-lite@0.2.12
+ pin-utils@0.1.0
+ pkg-config@0.3.27
+ polling@2.8.0
+ powerfmt@0.2.0
+ ppv-lite86@0.2.17
+ precomputed-hash@0.1.1
+ pretty_assertions@1.4.0
+ pretty_env_logger@0.5.0
+ proc-macro-crate@1.3.1
+ proc-macro-error-attr@1.0.4
+ proc-macro-error@1.0.4
+ proc-macro-hack@0.5.20+deprecated
+ proc-macro2@1.0.78
+ quote@1.0.35
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ rayon-core@1.12.1
+ rayon@1.8.1
+ redox_syscall@0.2.16
+ redox_syscall@0.3.5
+ redox_users@0.4.3
+ ref-cast-impl@1.0.22
+ ref-cast@1.0.22
+ regex-automata@0.4.5
+ regex-syntax@0.7.4
+ regex-syntax@0.8.2
+ regex@1.10.3
+ rustc-demangle@0.1.23
+ rustc_version@0.4.0
+ rustix@0.37.23
+ rustix@0.38.8
+ rustversion@1.0.14
+ ryu@1.0.15
+ same-file@1.0.6
+ scopeguard@1.2.0
+ semver@1.0.18
+ serde@1.0.197
+ serde_derive@1.0.197
+ serde_json@1.0.105
+ serde_repr@0.1.16
+ serde_spanned@0.6.3
+ sha1@0.10.5
+ signal-hook-registry@1.4.1
+ signal-hook@0.3.17
+ similar@2.2.1
+ simple-signal@1.1.1
+ siphasher@0.3.10
+ slab@0.4.8
+ smallvec@1.11.0
+ smart-default@0.7.1
+ socket2@0.4.9
+ socket2@0.5.6
+ static_assertions@1.1.0
+ string_cache@0.8.7
+ strsim@0.10.0
+ strsim@0.11.0
+ strum@0.26.1
+ strum_macros@0.26.1
+ syn@1.0.109
+ syn@2.0.50
+ sysinfo@0.30.5
+ system-deps@6.1.1
+ target-lexicon@0.12.11
+ tempfile@3.8.0
+ term@0.7.0
+ termcolor@1.2.0
+ thiserror-impl@1.0.46
+ thiserror@1.0.46
+ time-core@0.1.2
+ time-macros@0.2.17
+ time@0.1.45
+ time@0.3.34
+ tiny-keccak@2.0.2
+ tokio-macros@2.2.0
+ tokio-util@0.7.8
+ tokio@1.36.0
+ toml@0.7.6
+ toml_datetime@0.6.3
+ toml_edit@0.19.14
+ tracing-attributes@0.1.26
+ tracing-core@0.1.31
+ tracing@0.1.37
+ typenum@1.16.0
+ uds_windows@1.0.2
+ unescape@0.1.0
+ unicode-ident@1.0.11
+ unicode-width@0.1.10
+ unicode-xid@0.2.4
+ urlencoding@2.1.3
+ utf8parse@0.2.1
+ version-compare@0.1.1
+ version_check@0.9.4
+ wait-timeout@0.2.0
+ waker-fn@1.1.0
+ walkdir@2.3.3
+ wasi@0.10.0+wasi-snapshot-preview1
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.87
+ wasm-bindgen-macro-support@0.2.87
+ wasm-bindgen-macro@0.2.87
+ wasm-bindgen-shared@0.2.87
+ wasm-bindgen@0.2.87
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-wsapoll@0.1.1
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-sys@0.45.0
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-targets@0.42.2
+ windows-targets@0.48.2
+ windows-targets@0.52.3
+ windows@0.48.0
+ windows@0.52.0
+ windows_aarch64_gnullvm@0.42.2
+ windows_aarch64_gnullvm@0.48.2
+ windows_aarch64_gnullvm@0.52.3
+ windows_aarch64_msvc@0.42.2
+ windows_aarch64_msvc@0.48.2
+ windows_aarch64_msvc@0.52.3
+ windows_i686_gnu@0.42.2
+ windows_i686_gnu@0.48.2
+ windows_i686_gnu@0.52.3
+ windows_i686_msvc@0.42.2
+ windows_i686_msvc@0.48.2
+ windows_i686_msvc@0.52.3
+ windows_x86_64_gnu@0.42.2
+ windows_x86_64_gnu@0.48.2
+ windows_x86_64_gnu@0.52.3
+ windows_x86_64_gnullvm@0.42.2
+ windows_x86_64_gnullvm@0.48.2
+ windows_x86_64_gnullvm@0.52.3
+ windows_x86_64_msvc@0.42.2
+ windows_x86_64_msvc@0.48.2
+ windows_x86_64_msvc@0.52.3
+ winnow@0.5.11
+ x11@2.21.0
+ x11rb-protocol@0.11.1
+ x11rb@0.11.1
+ xdg-home@1.0.0
+ yaml-rust@0.4.5
+ yansi@0.5.1
+ zbus@3.14.1
+ zbus_macros@3.14.1
+ zbus_names@2.6.0
+ zerocopy-derive@0.7.32
+ zerocopy@0.7.32
+ zvariant@3.15.0
+ zvariant_derive@3.15.0
+ zvariant_utils@1.0.1
+"
+
+inherit cargo shell-completion
+
+DESCRIPTION="Elkowars Wacky Widgets is a standalone widget system made in Rust"
+HOMEPAGE="https://github.com/elkowar/eww/"
+SRC_URI="https://git.sr.ht/~antecrescent/gentoo-files/blob/main/gui-apps/eww/${P}-shellcomp.tar.xz"
+
+if [[ "${PV}" == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/elkowar/eww.git"
+else
+ SRC_URI+="
+ https://github.com/elkowar/eww/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+ "
+ KEYWORDS="~amd64"
+
+ PATCHES="${FILESDIR}/eww-0.6.0-fix-version.patch"
+fi
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD CC0-1.0 ISC LGPL-3
+ Unicode-DFS-2016
+"
+SLOT="0"
+IUSE="X wayland"
+REQUIRED_USE="|| ( X wayland )"
+
+RDEPEND="
+ dev-libs/glib:2
+ dev-libs/libdbusmenu[gtk3]
+ x11-libs/cairo[glib]
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X?,wayland?]
+ x11-libs/pango
+ wayland? ( gui-libs/gtk-layer-shell )
+"
+# transitively hard-depend on xorg-proto due to gdk-3.0.pc
+DEPEND="${RDEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ virtual/pkgconfig
+ >=virtual/rust-1.74.0
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+src_unpack() {
+ if [[ "${PV}" == 9999 ]]; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ unpack ${P}-shellcomp.tar.xz
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_configure() {
+ local myfeatures=(
+ $(usev X x11)
+ $(usev wayland wayland)
+ )
+ cargo_src_configure --no-default-features
+}
+
+src_install() {
+ dobashcomp "${WORKDIR}"/eww
+ dofishcomp "${WORKDIR}"/eww.fish
+ dozshcomp "${WORKDIR}"/_eww
+
+ dodoc README.md CHANGELOG.md
+ cargo_src_install --path crates/eww
+ elog "Eww wont run without a config file (usually in ~/.config/eww)."
+ elog "For example configs visit https://github.com/elkowar/eww#examples"
+}
diff --git a/gui-apps/eww/files/eww-0.6.0-fix-version.patch b/gui-apps/eww/files/eww-0.6.0-fix-version.patch
new file mode 100644
index 0000000000..6c46ee0e39
--- /dev/null
+++ b/gui-apps/eww/files/eww-0.6.0-fix-version.patch
@@ -0,0 +1,35 @@
+From 8397744f403c87ab39523b4bf9e0216ad444f1bb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?W=C3=B6lfchen?= <w-lfchen@posteo.net>
+Date: Sun, 21 Apr 2024 20:04:50 +0000
+Subject: [PATCH] fix: bump cargo version (#1080)
+
+---
+ Cargo.lock | 2 +-
+ crates/eww/Cargo.toml | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index a3f59426..5d94bd4b 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -920,7 +920,7 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+ [[package]]
+ name = "eww"
+-version = "0.5.0"
++version = "0.6.0"
+ dependencies = [
+ "anyhow",
+ "bincode",
+diff --git a/crates/eww/Cargo.toml b/crates/eww/Cargo.toml
+index a5b62d9e..f916499c 100644
+--- a/crates/eww/Cargo.toml
++++ b/crates/eww/Cargo.toml
+@@ -1,6 +1,6 @@
+ [package]
+ name = "eww"
+-version = "0.5.0"
++version = "0.6.0"
+ authors = ["elkowar <5300871+elkowar@users.noreply.github.com>"]
+ description = "Widgets for everyone!"
+ license = "MIT"
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-09-05 19:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-05 19:50 [gentoo-commits] repo/proj/guru:dev commit in: gui-apps/eww/, gui-apps/eww/files/ Gonçalo Negrier Duarte
-- strict thread matches above, loose matches on Subject: below --
2024-05-08 17:56 Lucio Sauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox