git: d79040c8dd38 - main - x11/hyprland-preview-share-picker: New port: Hyprland screen share picker with window and monitor previews

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Wed, 21 Oct 2026 09:24:56 UTC
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d79040c8dd3885a8e16d25b8978c32dec149b54a

commit d79040c8dd3885a8e16d25b8978c32dec149b54a
Author:     Jordan Hubbard <jkh@FreeBSD.org>
AuthorDate: 2026-10-01 18:38:17 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2026-10-21 09:24:27 +0000

    x11/hyprland-preview-share-picker: New port: Hyprland screen share picker with window and monitor previews
    
    hyprland-preview-share-picker is an alternative screen share picker for
    xdg-desktop-portal-hyprland. It shows live previews of windows and
    monitors in a GTK4 layer-shell dialog, supports region selection through
    an external tool such as slurp, and is styled with SCSS and configured
    through a YAML file described by an installed JSON schema.
    
    WWW: https://github.com/WhySoBad/hyprland-preview-share-picker
    
    Reported by:    jkh (new maintainer)
    Pull Request:   https://github.com/freebsd/freebsd-ports/pull/630
    Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
---
 x11/Makefile                                       |   1 +
 x11/hyprland-preview-share-picker/Makefile         |  32 ++
 x11/hyprland-preview-share-picker/Makefile.crates  | 260 ++++++++++
 x11/hyprland-preview-share-picker/distinfo         | 525 +++++++++++++++++++++
 .../files/patch-build.rs                           |  16 +
 .../files/patch-lib_src_buffer.rs                  |  78 +++
 x11/hyprland-preview-share-picker/pkg-descr        |   5 +
 7 files changed, 917 insertions(+)

diff --git a/x11/Makefile b/x11/Makefile
index fb60d464508e..50dee6ab2534 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -158,6 +158,7 @@
     SUBDIR += hyprcursor
     SUBDIR += hypridle
     SUBDIR += hyprland-guiutils
+    SUBDIR += hyprland-preview-share-picker
     SUBDIR += hyprlauncher
     SUBDIR += hyprlock
     SUBDIR += hyprls
diff --git a/x11/hyprland-preview-share-picker/Makefile b/x11/hyprland-preview-share-picker/Makefile
new file mode 100644
index 000000000000..e8539d8c2a2c
--- /dev/null
+++ b/x11/hyprland-preview-share-picker/Makefile
@@ -0,0 +1,32 @@
+PORTNAME=	hyprland-preview-share-picker
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.2.1
+CATEGORIES=	x11 wayland
+
+MAINTAINER=	jkh@FreeBSD.org
+COMMENT=	Hyprland screen share picker with window and monitor previews
+WWW=		https://github.com/WhySoBad/hyprland-preview-share-picker
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+LIB_DEPENDS=	libgtk4-layer-shell.so:x11-toolkits/gtk4-layer-shell
+RUN_DEPENDS=	xdg-desktop-portal-hyprland>0:x11/xdg-desktop-portal-hyprland
+
+USES=		cargo gnome pkgconfig
+USE_GITHUB=	yes
+GH_ACCOUNT=	WhySoBad
+GH_TUPLE=	hyprwm:hyprland-protocols:3a5c2bd:protocols/lib/hyprland-protocols
+USE_GNOME=	gdkpixbuf glib20 gtk40 pango
+
+CARGO_ENV+=	HPSP_GIT_VERSION="${DISTVERSION}-r0-release"
+
+PLIST_FILES=	bin/${PORTNAME} \
+		${DATADIR_REL}/schema.json
+
+post-install:
+	@${MKDIR} ${STAGEDIR}${DATADIR}
+	${STAGEDIR}${PREFIX}/bin/${PORTNAME} schema > \
+		${STAGEDIR}${DATADIR}/schema.json
+
+.include <bsd.port.mk>
diff --git a/x11/hyprland-preview-share-picker/Makefile.crates b/x11/hyprland-preview-share-picker/Makefile.crates
new file mode 100644
index 000000000000..fe42160b74a1
--- /dev/null
+++ b/x11/hyprland-preview-share-picker/Makefile.crates
@@ -0,0 +1,260 @@
+CARGO_CRATES=	addr2line-0.24.2 \
+		adler2-2.0.0 \
+		ahash-0.8.11 \
+		aho-corasick-1.1.3 \
+		aligned-vec-0.5.0 \
+		android-tzdata-0.1.1 \
+		android_system_properties-0.1.5 \
+		anstream-0.6.18 \
+		anstyle-1.0.10 \
+		anstyle-parse-0.2.6 \
+		anstyle-query-1.1.2 \
+		anstyle-wincon-3.0.7 \
+		anyhow-1.0.95 \
+		arbitrary-1.4.1 \
+		arc-swap-1.7.1 \
+		arg_enum_proc_macro-0.3.4 \
+		arrayvec-0.7.6 \
+		async-stream-0.3.6 \
+		async-stream-impl-0.3.6 \
+		autocfg-1.4.0 \
+		av1-grain-0.2.3 \
+		avif-serialize-0.8.2 \
+		backtrace-0.3.74 \
+		bit_field-0.10.2 \
+		bitflags-1.3.2 \
+		bitflags-2.8.0 \
+		bitstream-io-2.6.0 \
+		built-0.7.6 \
+		bumpalo-3.17.0 \
+		bytemuck-1.21.0 \
+		byteorder-1.5.0 \
+		byteorder-lite-0.1.0 \
+		bytes-1.10.0 \
+		cairo-rs-0.20.7 \
+		cairo-sys-rs-0.20.7 \
+		cc-1.2.13 \
+		cfg-expr-0.15.8 \
+		cfg-expr-0.17.2 \
+		cfg-if-1.0.0 \
+		chrono-0.4.39 \
+		clap-4.5.28 \
+		clap_builder-4.5.27 \
+		clap_derive-4.5.28 \
+		clap_lex-0.7.4 \
+		color_quant-1.1.0 \
+		colorchoice-1.0.3 \
+		core-foundation-sys-0.8.7 \
+		crc32fast-1.4.2 \
+		crossbeam-deque-0.8.6 \
+		crossbeam-epoch-0.9.18 \
+		crossbeam-utils-0.8.21 \
+		crunchy-0.2.3 \
+		derive_more-1.0.0 \
+		derive_more-impl-1.0.0 \
+		dirs-6.0.0 \
+		dirs-sys-0.5.0 \
+		downcast-rs-1.2.1 \
+		dyn-clone-1.0.18 \
+		either-1.13.0 \
+		env_filter-0.1.3 \
+		env_logger-0.11.6 \
+		equivalent-1.0.1 \
+		errno-0.3.10 \
+		exr-1.73.0 \
+		fastrand-2.3.0 \
+		fdeflate-0.3.7 \
+		field-offset-0.3.6 \
+		flate2-1.0.35 \
+		futures-channel-0.3.31 \
+		futures-core-0.3.31 \
+		futures-executor-0.3.31 \
+		futures-io-0.3.31 \
+		futures-lite-2.6.0 \
+		futures-macro-0.3.31 \
+		futures-task-0.3.31 \
+		futures-util-0.3.31 \
+		gdk-pixbuf-0.20.7 \
+		gdk-pixbuf-sys-0.20.7 \
+		gdk4-0.9.5 \
+		gdk4-sys-0.9.5 \
+		getrandom-0.2.15 \
+		gif-0.13.1 \
+		gimli-0.31.1 \
+		gio-0.20.7 \
+		gio-sys-0.20.8 \
+		gl-0.14.0 \
+		gl_generator-0.14.0 \
+		glib-0.20.7 \
+		glib-macros-0.20.7 \
+		glib-sys-0.20.7 \
+		gobject-sys-0.20.7 \
+		graphene-rs-0.20.7 \
+		graphene-sys-0.20.7 \
+		gsk4-0.9.5 \
+		gsk4-sys-0.9.5 \
+		gtk4-0.9.5 \
+		gtk4-layer-shell-0.4.0 \
+		gtk4-layer-shell-sys-0.3.0 \
+		gtk4-macros-0.9.5 \
+		gtk4-sys-0.9.5 \
+		half-2.4.1 \
+		hashbrown-0.15.2 \
+		heck-0.5.0 \
+		humantime-2.1.0 \
+		hyprland-0.4.0-beta.2 \
+		hyprland-macros-0.4.0-beta.2 \
+		iana-time-zone-0.1.61 \
+		iana-time-zone-haiku-0.1.2 \
+		image-0.25.5 \
+		image-webp-0.2.1 \
+		imgref-1.11.0 \
+		indexmap-2.7.1 \
+		interpolate_name-0.2.4 \
+		is_terminal_polyfill-1.70.1 \
+		itertools-0.12.1 \
+		itoa-1.0.14 \
+		jobserver-0.1.32 \
+		jpeg-decoder-0.3.1 \
+		js-sys-0.3.77 \
+		khronos_api-3.1.0 \
+		lazy_static-1.5.0 \
+		lebe-0.5.2 \
+		libc-0.2.169 \
+		libfuzzer-sys-0.4.9 \
+		libredox-0.1.3 \
+		linux-raw-sys-0.4.15 \
+		log-0.4.25 \
+		loop9-0.1.5 \
+		maybe-rayon-0.1.1 \
+		memchr-2.7.4 \
+		memfd-0.6.4 \
+		memoffset-0.9.1 \
+		minimal-lexical-0.2.1 \
+		miniz_oxide-0.8.3 \
+		mio-1.0.3 \
+		new_debug_unreachable-1.0.6 \
+		nom-7.1.3 \
+		nom-8.0.0 \
+		nom-language-0.1.0 \
+		noop_proc_macro-0.3.0 \
+		num-bigint-0.4.6 \
+		num-derive-0.4.2 \
+		num-integer-0.1.46 \
+		num-rational-0.4.2 \
+		num-traits-0.2.19 \
+		object-0.36.7 \
+		once_cell-1.20.3 \
+		option-ext-0.2.0 \
+		pango-0.20.7 \
+		pango-sys-0.20.7 \
+		paste-1.0.15 \
+		phf-0.11.3 \
+		phf_generator-0.11.3 \
+		phf_macros-0.11.3 \
+		phf_shared-0.11.3 \
+		pin-project-lite-0.2.16 \
+		pin-utils-0.1.0 \
+		pkg-config-0.3.31 \
+		png-0.17.16 \
+		ppv-lite86-0.2.20 \
+		proc-macro-crate-3.2.0 \
+		proc-macro2-1.0.93 \
+		profiling-1.0.16 \
+		profiling-procmacros-1.0.16 \
+		qoi-0.4.1 \
+		quick-error-2.0.1 \
+		quick-xml-0.37.2 \
+		quote-1.0.38 \
+		rand-0.8.5 \
+		rand_chacha-0.3.1 \
+		rand_core-0.6.4 \
+		rav1e-0.7.1 \
+		ravif-0.11.11 \
+		rayon-1.10.0 \
+		rayon-core-1.12.1 \
+		redox_users-0.5.0 \
+		regex-1.11.1 \
+		regex-automata-0.4.9 \
+		regex-syntax-0.8.5 \
+		rgb-0.8.50 \
+		rsass-0.29.0 \
+		rustc-demangle-0.1.24 \
+		rustc_version-0.4.1 \
+		rustix-0.38.44 \
+		rustversion-1.0.19 \
+		ryu-1.0.19 \
+		schemars-0.8.21 \
+		schemars_derive-0.8.21 \
+		semver-1.0.25 \
+		serde-1.0.217 \
+		serde_derive-1.0.217 \
+		serde_derive_internals-0.29.1 \
+		serde_json-1.0.138 \
+		serde_repr-0.1.19 \
+		serde_spanned-0.6.8 \
+		serde_yaml-0.9.34+deprecated \
+		shlex-1.3.0 \
+		simd-adler32-0.3.7 \
+		simd_helpers-0.1.0 \
+		siphasher-1.0.1 \
+		slab-0.4.9 \
+		smallvec-1.13.2 \
+		socket2-0.5.8 \
+		strsim-0.11.1 \
+		syn-2.0.98 \
+		system-deps-6.2.2 \
+		system-deps-7.0.3 \
+		target-lexicon-0.12.16 \
+		thiserror-1.0.69 \
+		thiserror-2.0.11 \
+		thiserror-impl-1.0.69 \
+		thiserror-impl-2.0.11 \
+		tiff-0.9.1 \
+		tokio-1.43.0 \
+		tokio-macros-2.5.0 \
+		toml-0.8.20 \
+		toml_datetime-0.6.8 \
+		toml_edit-0.22.24 \
+		tracing-0.1.41 \
+		tracing-attributes-0.1.28 \
+		tracing-core-0.1.33 \
+		unicode-ident-1.0.16 \
+		unicode-xid-0.2.6 \
+		unsafe-libyaml-0.2.11 \
+		utf8parse-0.2.2 \
+		v_frame-0.3.8 \
+		version-compare-0.2.0 \
+		version_check-0.9.5 \
+		wasi-0.11.0+wasi-snapshot-preview1 \
+		wasm-bindgen-0.2.100 \
+		wasm-bindgen-backend-0.2.100 \
+		wasm-bindgen-macro-0.2.100 \
+		wasm-bindgen-macro-support-0.2.100 \
+		wasm-bindgen-shared-0.2.100 \
+		wayland-backend-0.3.8 \
+		wayland-client-0.31.8 \
+		wayland-protocols-0.32.6 \
+		wayland-protocols-wlr-0.3.6 \
+		wayland-scanner-0.31.6 \
+		wayland-sys-0.31.6 \
+		weezl-0.1.8 \
+		windows-core-0.52.0 \
+		windows-sys-0.52.0 \
+		windows-sys-0.59.0 \
+		windows-targets-0.52.6 \
+		windows_aarch64_gnullvm-0.52.6 \
+		windows_aarch64_msvc-0.52.6 \
+		windows_i686_gnu-0.52.6 \
+		windows_i686_gnullvm-0.52.6 \
+		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 \
+		winnow-0.7.2 \
+		xml-rs-0.8.25 \
+		zerocopy-0.7.35 \
+		zerocopy-derive-0.7.35 \
+		zune-core-0.4.12 \
+		zune-inflate-0.2.54 \
+		zune-jpeg-0.4.14
diff --git a/x11/hyprland-preview-share-picker/distinfo b/x11/hyprland-preview-share-picker/distinfo
new file mode 100644
index 000000000000..01cbbb30f139
--- /dev/null
+++ b/x11/hyprland-preview-share-picker/distinfo
@@ -0,0 +1,525 @@
+TIMESTAMP = 1790688467
+SHA256 (rust/crates/addr2line-0.24.2.crate) = dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1
+SIZE (rust/crates/addr2line-0.24.2.crate) = 39015
+SHA256 (rust/crates/adler2-2.0.0.crate) = 512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627
+SIZE (rust/crates/adler2-2.0.0.crate) = 13529
+SHA256 (rust/crates/ahash-0.8.11.crate) = e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011
+SIZE (rust/crates/ahash-0.8.11.crate) = 43607
+SHA256 (rust/crates/aho-corasick-1.1.3.crate) = 8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916
+SIZE (rust/crates/aho-corasick-1.1.3.crate) = 183311
+SHA256 (rust/crates/aligned-vec-0.5.0.crate) = 4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1
+SIZE (rust/crates/aligned-vec-0.5.0.crate) = 8921
+SHA256 (rust/crates/android-tzdata-0.1.1.crate) = e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0
+SIZE (rust/crates/android-tzdata-0.1.1.crate) = 7674
+SHA256 (rust/crates/android_system_properties-0.1.5.crate) = 819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311
+SIZE (rust/crates/android_system_properties-0.1.5.crate) = 5243
+SHA256 (rust/crates/anstream-0.6.18.crate) = 8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b
+SIZE (rust/crates/anstream-0.6.18.crate) = 29681
+SHA256 (rust/crates/anstyle-1.0.10.crate) = 55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9
+SIZE (rust/crates/anstyle-1.0.10.crate) = 15725
+SHA256 (rust/crates/anstyle-parse-0.2.6.crate) = 3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9
+SIZE (rust/crates/anstyle-parse-0.2.6.crate) = 22343
+SHA256 (rust/crates/anstyle-query-1.1.2.crate) = 79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c
+SIZE (rust/crates/anstyle-query-1.1.2.crate) = 9969
+SHA256 (rust/crates/anstyle-wincon-3.0.7.crate) = ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e
+SIZE (rust/crates/anstyle-wincon-3.0.7.crate) = 12400
+SHA256 (rust/crates/anyhow-1.0.95.crate) = 34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04
+SIZE (rust/crates/anyhow-1.0.95.crate) = 52155
+SHA256 (rust/crates/arbitrary-1.4.1.crate) = dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223
+SIZE (rust/crates/arbitrary-1.4.1.crate) = 36816
+SHA256 (rust/crates/arc-swap-1.7.1.crate) = 69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457
+SIZE (rust/crates/arc-swap-1.7.1.crate) = 68512
+SHA256 (rust/crates/arg_enum_proc_macro-0.3.4.crate) = 0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea
+SIZE (rust/crates/arg_enum_proc_macro-0.3.4.crate) = 5102
+SHA256 (rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50
+SIZE (rust/crates/arrayvec-0.7.6.crate) = 31237
+SHA256 (rust/crates/async-stream-0.3.6.crate) = 0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476
+SIZE (rust/crates/async-stream-0.3.6.crate) = 13823
+SHA256 (rust/crates/async-stream-impl-0.3.6.crate) = c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d
+SIZE (rust/crates/async-stream-impl-0.3.6.crate) = 4312
+SHA256 (rust/crates/autocfg-1.4.0.crate) = ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26
+SIZE (rust/crates/autocfg-1.4.0.crate) = 17712
+SHA256 (rust/crates/av1-grain-0.2.3.crate) = 6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf
+SIZE (rust/crates/av1-grain-0.2.3.crate) = 34703
+SHA256 (rust/crates/avif-serialize-0.8.2.crate) = e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62
+SIZE (rust/crates/avif-serialize-0.8.2.crate) = 11985
+SHA256 (rust/crates/backtrace-0.3.74.crate) = 8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a
+SIZE (rust/crates/backtrace-0.3.74.crate) = 88516
+SHA256 (rust/crates/bit_field-0.10.2.crate) = dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61
+SIZE (rust/crates/bit_field-0.10.2.crate) = 10568
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/bitflags-2.8.0.crate) = 8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36
+SIZE (rust/crates/bitflags-2.8.0.crate) = 47482
+SHA256 (rust/crates/bitstream-io-2.6.0.crate) = 6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2
+SIZE (rust/crates/bitstream-io-2.6.0.crate) = 38256
+SHA256 (rust/crates/built-0.7.6.crate) = 73848a43c5d63a1251d17adf6c2bf78aa94830e60a335a95eeea45d6ba9e1e4d
+SIZE (rust/crates/built-0.7.6.crate) = 29455
+SHA256 (rust/crates/bumpalo-3.17.0.crate) = 1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf
+SIZE (rust/crates/bumpalo-3.17.0.crate) = 91975
+SHA256 (rust/crates/bytemuck-1.21.0.crate) = ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3
+SIZE (rust/crates/bytemuck-1.21.0.crate) = 51553
+SHA256 (rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
+SIZE (rust/crates/byteorder-1.5.0.crate) = 23288
+SHA256 (rust/crates/byteorder-lite-0.1.0.crate) = 8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495
+SIZE (rust/crates/byteorder-lite-0.1.0.crate) = 15909
+SHA256 (rust/crates/bytes-1.10.0.crate) = f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9
+SIZE (rust/crates/bytes-1.10.0.crate) = 76656
+SHA256 (rust/crates/cairo-rs-0.20.7.crate) = ae50b5510d86cf96ac2370e66d8dc960882f3df179d6a5a1e52bd94a1416c0f7
+SIZE (rust/crates/cairo-rs-0.20.7.crate) = 52722
+SHA256 (rust/crates/cairo-sys-rs-0.20.7.crate) = f18b6bb8e43c7eb0f2aac7976afe0c61b6f5fc2ab7bc4c139537ea56c92290df
+SIZE (rust/crates/cairo-sys-rs-0.20.7.crate) = 11934
+SHA256 (rust/crates/cc-1.2.13.crate) = c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda
+SIZE (rust/crates/cc-1.2.13.crate) = 102839
+SHA256 (rust/crates/cfg-expr-0.15.8.crate) = d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02
+SIZE (rust/crates/cfg-expr-0.15.8.crate) = 42108
+SHA256 (rust/crates/cfg-expr-0.17.2.crate) = 8d4ba6e40bd1184518716a6e1a781bf9160e286d219ccdb8ab2612e74cfe4789
+SIZE (rust/crates/cfg-expr-0.17.2.crate) = 44034
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/chrono-0.4.39.crate) = 7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825
+SIZE (rust/crates/chrono-0.4.39.crate) = 222248
+SHA256 (rust/crates/clap-4.5.28.crate) = 3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff
+SIZE (rust/crates/clap-4.5.28.crate) = 56073
+SHA256 (rust/crates/clap_builder-4.5.27.crate) = 1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7
+SIZE (rust/crates/clap_builder-4.5.27.crate) = 168024
+SHA256 (rust/crates/clap_derive-4.5.28.crate) = bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed
+SIZE (rust/crates/clap_derive-4.5.28.crate) = 33428
+SHA256 (rust/crates/clap_lex-0.7.4.crate) = f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6
+SIZE (rust/crates/clap_lex-0.7.4.crate) = 12858
+SHA256 (rust/crates/color_quant-1.1.0.crate) = 3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b
+SIZE (rust/crates/color_quant-1.1.0.crate) = 6649
+SHA256 (rust/crates/colorchoice-1.0.3.crate) = 5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990
+SIZE (rust/crates/colorchoice-1.0.3.crate) = 7923
+SHA256 (rust/crates/core-foundation-sys-0.8.7.crate) = 773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b
+SIZE (rust/crates/core-foundation-sys-0.8.7.crate) = 37712
+SHA256 (rust/crates/crc32fast-1.4.2.crate) = a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3
+SIZE (rust/crates/crc32fast-1.4.2.crate) = 38491
+SHA256 (rust/crates/crossbeam-deque-0.8.6.crate) = 9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51
+SIZE (rust/crates/crossbeam-deque-0.8.6.crate) = 22471
+SHA256 (rust/crates/crossbeam-epoch-0.9.18.crate) = 5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e
+SIZE (rust/crates/crossbeam-epoch-0.9.18.crate) = 46875
+SHA256 (rust/crates/crossbeam-utils-0.8.21.crate) = d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28
+SIZE (rust/crates/crossbeam-utils-0.8.21.crate) = 42691
+SHA256 (rust/crates/crunchy-0.2.3.crate) = 43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929
+SIZE (rust/crates/crunchy-0.2.3.crate) = 3775
+SHA256 (rust/crates/derive_more-1.0.0.crate) = 4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05
+SIZE (rust/crates/derive_more-1.0.0.crate) = 64854
+SHA256 (rust/crates/derive_more-impl-1.0.0.crate) = cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22
+SIZE (rust/crates/derive_more-impl-1.0.0.crate) = 76182
+SHA256 (rust/crates/dirs-6.0.0.crate) = c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e
+SIZE (rust/crates/dirs-6.0.0.crate) = 14190
+SHA256 (rust/crates/dirs-sys-0.5.0.crate) = e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab
+SIZE (rust/crates/dirs-sys-0.5.0.crate) = 10157
+SHA256 (rust/crates/downcast-rs-1.2.1.crate) = 75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2
+SIZE (rust/crates/downcast-rs-1.2.1.crate) = 11821
+SHA256 (rust/crates/dyn-clone-1.0.18.crate) = feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35
+SIZE (rust/crates/dyn-clone-1.0.18.crate) = 12871
+SHA256 (rust/crates/either-1.13.0.crate) = 60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0
+SIZE (rust/crates/either-1.13.0.crate) = 19169
+SHA256 (rust/crates/env_filter-0.1.3.crate) = 186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0
+SIZE (rust/crates/env_filter-0.1.3.crate) = 15191
+SHA256 (rust/crates/env_logger-0.11.6.crate) = dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0
+SIZE (rust/crates/env_logger-0.11.6.crate) = 31105
+SHA256 (rust/crates/equivalent-1.0.1.crate) = 5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5
+SIZE (rust/crates/equivalent-1.0.1.crate) = 6615
+SHA256 (rust/crates/errno-0.3.10.crate) = 33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d
+SIZE (rust/crates/errno-0.3.10.crate) = 11824
+SHA256 (rust/crates/exr-1.73.0.crate) = f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0
+SIZE (rust/crates/exr-1.73.0.crate) = 244371
+SHA256 (rust/crates/fastrand-2.3.0.crate) = 37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be
+SIZE (rust/crates/fastrand-2.3.0.crate) = 15076
+SHA256 (rust/crates/fdeflate-0.3.7.crate) = 1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c
+SIZE (rust/crates/fdeflate-0.3.7.crate) = 27188
+SHA256 (rust/crates/field-offset-0.3.6.crate) = 38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f
+SIZE (rust/crates/field-offset-0.3.6.crate) = 10032
+SHA256 (rust/crates/flate2-1.0.35.crate) = c936bfdafb507ebbf50b8074c54fa31c5be9a1e7e5f467dd659697041407d07c
+SIZE (rust/crates/flate2-1.0.35.crate) = 109188
+SHA256 (rust/crates/futures-channel-0.3.31.crate) = 2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10
+SIZE (rust/crates/futures-channel-0.3.31.crate) = 31971
+SHA256 (rust/crates/futures-core-0.3.31.crate) = 05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e
+SIZE (rust/crates/futures-core-0.3.31.crate) = 14318
+SHA256 (rust/crates/futures-executor-0.3.31.crate) = 1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f
+SIZE (rust/crates/futures-executor-0.3.31.crate) = 17965
+SHA256 (rust/crates/futures-io-0.3.31.crate) = 9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6
+SIZE (rust/crates/futures-io-0.3.31.crate) = 9047
+SHA256 (rust/crates/futures-lite-2.6.0.crate) = f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532
+SIZE (rust/crates/futures-lite-2.6.0.crate) = 45157
+SHA256 (rust/crates/futures-macro-0.3.31.crate) = 162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650
+SIZE (rust/crates/futures-macro-0.3.31.crate) = 11341
+SHA256 (rust/crates/futures-task-0.3.31.crate) = f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988
+SIZE (rust/crates/futures-task-0.3.31.crate) = 11217
+SHA256 (rust/crates/futures-util-0.3.31.crate) = 9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81
+SIZE (rust/crates/futures-util-0.3.31.crate) = 162124
+SHA256 (rust/crates/gdk-pixbuf-0.20.7.crate) = b6efc7705f7863d37b12ad6974cbb310d35d054f5108cdc1e69037742f573c4c
+SIZE (rust/crates/gdk-pixbuf-0.20.7.crate) = 17840
+SHA256 (rust/crates/gdk-pixbuf-sys-0.20.7.crate) = 67f2587c9202bf997476bbba6aaed4f78a11538a2567df002a5f57f5331d0b5c
+SIZE (rust/crates/gdk-pixbuf-sys-0.20.7.crate) = 9852
+SHA256 (rust/crates/gdk4-0.9.5.crate) = d0196720118f880f71fe7da971eff58cc43a89c9cf73f46076b7cb1e60889b15
+SIZE (rust/crates/gdk4-0.9.5.crate) = 92987
+SHA256 (rust/crates/gdk4-sys-0.9.5.crate) = 60b0e1340bd15e7a78810cf39fed9e5d85f0a8f80b1d999d384ca17dcc452b60
+SIZE (rust/crates/gdk4-sys-0.9.5.crate) = 67167
+SHA256 (rust/crates/getrandom-0.2.15.crate) = c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7
+SIZE (rust/crates/getrandom-0.2.15.crate) = 37163
+SHA256 (rust/crates/gif-0.13.1.crate) = 3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2
+SIZE (rust/crates/gif-0.13.1.crate) = 36408
+SHA256 (rust/crates/gimli-0.31.1.crate) = 07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f
+SIZE (rust/crates/gimli-0.31.1.crate) = 279515
+SHA256 (rust/crates/gio-0.20.7.crate) = a517657589a174be9f60c667f1fec8b7ac82ed5db4ebf56cf073a3b5955d8e2e
+SIZE (rust/crates/gio-0.20.7.crate) = 215199
+SHA256 (rust/crates/gio-sys-0.20.8.crate) = 8446d9b475730ebef81802c1738d972db42fde1c5a36a627ebc4d665fc87db04
+SIZE (rust/crates/gio-sys-0.20.8.crate) = 82617
+SHA256 (rust/crates/gl-0.14.0.crate) = a94edab108827d67608095e269cf862e60d920f144a5026d3dbcfd8b877fb404
+SIZE (rust/crates/gl-0.14.0.crate) = 10806
+SHA256 (rust/crates/gl_generator-0.14.0.crate) = 1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d
+SIZE (rust/crates/gl_generator-0.14.0.crate) = 22330
+SHA256 (rust/crates/glib-0.20.7.crate) = f969edf089188d821a30cde713b6f9eb08b20c63fc2e584aba2892a7984a8cc0
+SIZE (rust/crates/glib-0.20.7.crate) = 285650
+SHA256 (rust/crates/glib-macros-0.20.7.crate) = 715601f8f02e71baef9c1f94a657a9a77c192aea6097cf9ae7e5e177cd8cde68
+SIZE (rust/crates/glib-macros-0.20.7.crate) = 72089
+SHA256 (rust/crates/glib-sys-0.20.7.crate) = b360ff0f90d71de99095f79c526a5888c9c92fc9ee1b19da06c6f5e75f0c2a53
+SIZE (rust/crates/glib-sys-0.20.7.crate) = 64052
+SHA256 (rust/crates/gobject-sys-0.20.7.crate) = 67a56235e971a63bfd75abb13ef70064e1346388723422a68580d8a6fbac6423
+SIZE (rust/crates/gobject-sys-0.20.7.crate) = 19157
+SHA256 (rust/crates/graphene-rs-0.20.7.crate) = f39d3bcd2e24fd9c2874a56f277b72c03e728de9bdc95a8d4ef4c962f10ced98
+SIZE (rust/crates/graphene-rs-0.20.7.crate) = 17354
+SHA256 (rust/crates/graphene-sys-0.20.7.crate) = 11a68d39515bf340e879b72cecd4a25c1332557757ada6e8aba8654b4b81d23a
+SIZE (rust/crates/graphene-sys-0.20.7.crate) = 11684
+SHA256 (rust/crates/gsk4-0.9.5.crate) = 32b9188db0a6219e708b6b6e7225718e459def664023dbddb8395ca1486d8102
+SIZE (rust/crates/gsk4-0.9.5.crate) = 32662
+SHA256 (rust/crates/gsk4-sys-0.9.5.crate) = bca10fc65d68528a548efa3d8747934adcbe7058b73695c9a7f43a25352fce14
+SIZE (rust/crates/gsk4-sys-0.9.5.crate) = 15446
+SHA256 (rust/crates/gtk4-0.9.5.crate) = b697ff938136625f6acf75f01951220f47a45adcf0060ee55b4671cf734dac44
+SIZE (rust/crates/gtk4-0.9.5.crate) = 477363
+SHA256 (rust/crates/gtk4-layer-shell-0.4.0.crate) = f3e1e1b1516be3d7ca089dfa6a1e688e268c74aef50c0c25fe8c46b1ba8ed1cc
+SIZE (rust/crates/gtk4-layer-shell-0.4.0.crate) = 15703
+SHA256 (rust/crates/gtk4-layer-shell-sys-0.3.0.crate) = e3057dc117db2d664a9b45f1956568701914e80cf9f2c8cef0a755af4c1c8105
+SIZE (rust/crates/gtk4-layer-shell-sys-0.3.0.crate) = 6452
+SHA256 (rust/crates/gtk4-macros-0.9.5.crate) = 0ed1786c4703dd196baf7e103525ce0cf579b3a63a0570fe653b7ee6bac33999
+SIZE (rust/crates/gtk4-macros-0.9.5.crate) = 16721
+SHA256 (rust/crates/gtk4-sys-0.9.5.crate) = 3af4b680cee5d2f786a2f91f1c77e95ecf2254522f0ca4edf3a2dce6cb35cecf
+SIZE (rust/crates/gtk4-sys-0.9.5.crate) = 110382
+SHA256 (rust/crates/half-2.4.1.crate) = 6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888
+SIZE (rust/crates/half-2.4.1.crate) = 50892
+SHA256 (rust/crates/hashbrown-0.15.2.crate) = bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289
+SIZE (rust/crates/hashbrown-0.15.2.crate) = 138478
+SHA256 (rust/crates/heck-0.5.0.crate) = 2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea
+SIZE (rust/crates/heck-0.5.0.crate) = 11517
+SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4
+SIZE (rust/crates/humantime-2.1.0.crate) = 16749
+SHA256 (rust/crates/hyprland-0.4.0-beta.2.crate) = dc9c1413b6f0fd10b2e4463479490e30b2497ae4449f044da16053f5f2cb03b8
+SIZE (rust/crates/hyprland-0.4.0-beta.2.crate) = 49040
+SHA256 (rust/crates/hyprland-macros-0.4.0-beta.2.crate) = 69e3cbed6e560408051175d29a9ed6ad1e64a7ff443836addf797b0479f58983
+SIZE (rust/crates/hyprland-macros-0.4.0-beta.2.crate) = 2172
+SHA256 (rust/crates/iana-time-zone-0.1.61.crate) = 235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220
+SIZE (rust/crates/iana-time-zone-0.1.61.crate) = 27685
+SHA256 (rust/crates/iana-time-zone-haiku-0.1.2.crate) = f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f
+SIZE (rust/crates/iana-time-zone-haiku-0.1.2.crate) = 7185
+SHA256 (rust/crates/image-0.25.5.crate) = cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b
+SIZE (rust/crates/image-0.25.5.crate) = 241073
+SHA256 (rust/crates/image-webp-0.2.1.crate) = b77d01e822461baa8409e156015a1d91735549f0f2c17691bd2d996bef238f7f
+SIZE (rust/crates/image-webp-0.2.1.crate) = 60662
+SHA256 (rust/crates/imgref-1.11.0.crate) = d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408
+SIZE (rust/crates/imgref-1.11.0.crate) = 65943
+SHA256 (rust/crates/indexmap-2.7.1.crate) = 8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652
+SIZE (rust/crates/indexmap-2.7.1.crate) = 88644
+SHA256 (rust/crates/interpolate_name-0.2.4.crate) = c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60
+SIZE (rust/crates/interpolate_name-0.2.4.crate) = 4027
+SHA256 (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf
+SIZE (rust/crates/is_terminal_polyfill-1.70.1.crate) = 7492
+SHA256 (rust/crates/itertools-0.12.1.crate) = ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569
+SIZE (rust/crates/itertools-0.12.1.crate) = 137761
+SHA256 (rust/crates/itoa-1.0.14.crate) = d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674
+SIZE (rust/crates/itoa-1.0.14.crate) = 11210
+SHA256 (rust/crates/jobserver-0.1.32.crate) = 48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0
+SIZE (rust/crates/jobserver-0.1.32.crate) = 27549
+SHA256 (rust/crates/jpeg-decoder-0.3.1.crate) = f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0
+SIZE (rust/crates/jpeg-decoder-0.3.1.crate) = 744364
+SHA256 (rust/crates/js-sys-0.3.77.crate) = 1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f
+SIZE (rust/crates/js-sys-0.3.77.crate) = 55538
+SHA256 (rust/crates/khronos_api-3.1.0.crate) = e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc
+SIZE (rust/crates/khronos_api-3.1.0.crate) = 599718
+SHA256 (rust/crates/lazy_static-1.5.0.crate) = bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe
+SIZE (rust/crates/lazy_static-1.5.0.crate) = 14025
+SHA256 (rust/crates/lebe-0.5.2.crate) = 03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8
+SIZE (rust/crates/lebe-0.5.2.crate) = 8422
+SHA256 (rust/crates/libc-0.2.169.crate) = b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a
+SIZE (rust/crates/libc-0.2.169.crate) = 757901
+SHA256 (rust/crates/libfuzzer-sys-0.4.9.crate) = cf78f52d400cf2d84a3a973a78a592b4adc535739e0a5597a0da6f0c357adc75
+SIZE (rust/crates/libfuzzer-sys-0.4.9.crate) = 133299
+SHA256 (rust/crates/libredox-0.1.3.crate) = c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d
+SIZE (rust/crates/libredox-0.1.3.crate) = 6068
+SHA256 (rust/crates/linux-raw-sys-0.4.15.crate) = d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab
+SIZE (rust/crates/linux-raw-sys-0.4.15.crate) = 2150898
+SHA256 (rust/crates/log-0.4.25.crate) = 04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f
+SIZE (rust/crates/log-0.4.25.crate) = 44876
+SHA256 (rust/crates/loop9-0.1.5.crate) = 0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062
+SIZE (rust/crates/loop9-0.1.5.crate) = 3406
+SHA256 (rust/crates/maybe-rayon-0.1.1.crate) = 8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519
+SIZE (rust/crates/maybe-rayon-0.1.1.crate) = 2901
+SHA256 (rust/crates/memchr-2.7.4.crate) = 78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3
+SIZE (rust/crates/memchr-2.7.4.crate) = 96670
+SHA256 (rust/crates/memfd-0.6.4.crate) = b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64
+SIZE (rust/crates/memfd-0.6.4.crate) = 12820
+SHA256 (rust/crates/memoffset-0.9.1.crate) = 488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a
+SIZE (rust/crates/memoffset-0.9.1.crate) = 9032
+SHA256 (rust/crates/minimal-lexical-0.2.1.crate) = 68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a
+SIZE (rust/crates/minimal-lexical-0.2.1.crate) = 94841
+SHA256 (rust/crates/miniz_oxide-0.8.3.crate) = b8402cab7aefae129c6977bb0ff1b8fd9a04eb5b51efc50a70bea51cda0c7924
+SIZE (rust/crates/miniz_oxide-0.8.3.crate) = 61827
+SHA256 (rust/crates/mio-1.0.3.crate) = 2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd
+SIZE (rust/crates/mio-1.0.3.crate) = 103703
+SHA256 (rust/crates/new_debug_unreachable-1.0.6.crate) = 650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086
+SIZE (rust/crates/new_debug_unreachable-1.0.6.crate) = 2582
+SHA256 (rust/crates/nom-7.1.3.crate) = d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a
+SIZE (rust/crates/nom-7.1.3.crate) = 117570
+SHA256 (rust/crates/nom-8.0.0.crate) = df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405
+SIZE (rust/crates/nom-8.0.0.crate) = 135590
+SHA256 (rust/crates/nom-language-0.1.0.crate) = 2de2bc5b451bfedaef92c90b8939a8fff5770bdcc1fafd6239d086aab8fa6b29
+SIZE (rust/crates/nom-language-0.1.0.crate) = 7648
+SHA256 (rust/crates/noop_proc_macro-0.3.0.crate) = 0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8
+SIZE (rust/crates/noop_proc_macro-0.3.0.crate) = 2157
+SHA256 (rust/crates/num-bigint-0.4.6.crate) = a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9
+SIZE (rust/crates/num-bigint-0.4.6.crate) = 102801
+SHA256 (rust/crates/num-derive-0.4.2.crate) = ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202
+SIZE (rust/crates/num-derive-0.4.2.crate) = 14709
+SHA256 (rust/crates/num-integer-0.1.46.crate) = 7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f
+SIZE (rust/crates/num-integer-0.1.46.crate) = 22331
+SHA256 (rust/crates/num-rational-0.4.2.crate) = f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824
+SIZE (rust/crates/num-rational-0.4.2.crate) = 28159
+SHA256 (rust/crates/num-traits-0.2.19.crate) = 071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841
+SIZE (rust/crates/num-traits-0.2.19.crate) = 51631
+SHA256 (rust/crates/object-0.36.7.crate) = 62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87
+SIZE (rust/crates/object-0.36.7.crate) = 329938
+SHA256 (rust/crates/once_cell-1.20.3.crate) = 945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e
+SIZE (rust/crates/once_cell-1.20.3.crate) = 33456
+SHA256 (rust/crates/option-ext-0.2.0.crate) = 04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d
+SIZE (rust/crates/option-ext-0.2.0.crate) = 7345
+SHA256 (rust/crates/pango-0.20.7.crate) = 9e89bd74250a03a05cec047b43465469102af803be2bf5e5a1088f8b8455e087
+SIZE (rust/crates/pango-0.20.7.crate) = 45667
+SHA256 (rust/crates/pango-sys-0.20.7.crate) = 71787e0019b499a5eda889279e4adb455a4f3fdd6870cd5ab7f4a5aa25df6699
+SIZE (rust/crates/pango-sys-0.20.7.crate) = 25002
+SHA256 (rust/crates/paste-1.0.15.crate) = 57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a
+SIZE (rust/crates/paste-1.0.15.crate) = 18374
+SHA256 (rust/crates/phf-0.11.3.crate) = 1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078
+SIZE (rust/crates/phf-0.11.3.crate) = 23231
+SHA256 (rust/crates/phf_generator-0.11.3.crate) = 3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d
+SIZE (rust/crates/phf_generator-0.11.3.crate) = 15431
+SHA256 (rust/crates/phf_macros-0.11.3.crate) = f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216
+SIZE (rust/crates/phf_macros-0.11.3.crate) = 18436
+SHA256 (rust/crates/phf_shared-0.11.3.crate) = 67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5
+SIZE (rust/crates/phf_shared-0.11.3.crate) = 15199
+SHA256 (rust/crates/pin-project-lite-0.2.16.crate) = 3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b
+SIZE (rust/crates/pin-project-lite-0.2.16.crate) = 30504
+SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
+SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
+SHA256 (rust/crates/pkg-config-0.3.31.crate) = 953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2
+SIZE (rust/crates/pkg-config-0.3.31.crate) = 20880
+SHA256 (rust/crates/png-0.17.16.crate) = 82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526
+SIZE (rust/crates/png-0.17.16.crate) = 117975
+SHA256 (rust/crates/ppv-lite86-0.2.20.crate) = 77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04
+SIZE (rust/crates/ppv-lite86-0.2.20.crate) = 22478
+SHA256 (rust/crates/proc-macro-crate-3.2.0.crate) = 8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b
+SIZE (rust/crates/proc-macro-crate-3.2.0.crate) = 11164
+SHA256 (rust/crates/proc-macro2-1.0.93.crate) = 60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99
+SIZE (rust/crates/proc-macro2-1.0.93.crate) = 52388
+SHA256 (rust/crates/profiling-1.0.16.crate) = afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d
+SIZE (rust/crates/profiling-1.0.16.crate) = 12588
+SHA256 (rust/crates/profiling-procmacros-1.0.16.crate) = a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30
+SIZE (rust/crates/profiling-procmacros-1.0.16.crate) = 5893
+SHA256 (rust/crates/qoi-0.4.1.crate) = 7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001
+SIZE (rust/crates/qoi-0.4.1.crate) = 71135
+SHA256 (rust/crates/quick-error-2.0.1.crate) = a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3
+SIZE (rust/crates/quick-error-2.0.1.crate) = 14265
+SHA256 (rust/crates/quick-xml-0.37.2.crate) = 165859e9e55f79d67b96c5d96f4e88b6f2695a1972849c15a6a3f5c59fc2c003
+SIZE (rust/crates/quick-xml-0.37.2.crate) = 188017
+SHA256 (rust/crates/quote-1.0.38.crate) = 0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc
+SIZE (rust/crates/quote-1.0.38.crate) = 31252
+SHA256 (rust/crates/rand-0.8.5.crate) = 34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404
+SIZE (rust/crates/rand-0.8.5.crate) = 87113
+SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88
+SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251
+SHA256 (rust/crates/rand_core-0.6.4.crate) = ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c
+SIZE (rust/crates/rand_core-0.6.4.crate) = 22666
+SHA256 (rust/crates/rav1e-0.7.1.crate) = cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9
+SIZE (rust/crates/rav1e-0.7.1.crate) = 1472522
+SHA256 (rust/crates/ravif-0.11.11.crate) = 2413fd96bd0ea5cdeeb37eaf446a22e6ed7b981d792828721e74ded1980a45c6
+SIZE (rust/crates/ravif-0.11.11.crate) = 11362
+SHA256 (rust/crates/rayon-1.10.0.crate) = b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa
+SIZE (rust/crates/rayon-1.10.0.crate) = 180155
+SHA256 (rust/crates/rayon-core-1.12.1.crate) = 1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2
+SIZE (rust/crates/rayon-core-1.12.1.crate) = 70701
+SHA256 (rust/crates/redox_users-0.5.0.crate) = dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b
+SIZE (rust/crates/redox_users-0.5.0.crate) = 15586
+SHA256 (rust/crates/regex-1.11.1.crate) = b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191
+SIZE (rust/crates/regex-1.11.1.crate) = 254170
+SHA256 (rust/crates/regex-automata-0.4.9.crate) = 809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908
+SIZE (rust/crates/regex-automata-0.4.9.crate) = 618525
+SHA256 (rust/crates/regex-syntax-0.8.5.crate) = 2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c
+SIZE (rust/crates/regex-syntax-0.8.5.crate) = 357541
+SHA256 (rust/crates/rgb-0.8.50.crate) = 57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a
+SIZE (rust/crates/rgb-0.8.50.crate) = 21980
+SHA256 (rust/crates/rsass-0.29.0.crate) = 28d06219817a62e2fafbb45ff1ef7a64836cb235001e61526c247bd78eff4185
+SIZE (rust/crates/rsass-0.29.0.crate) = 732238
+SHA256 (rust/crates/rustc-demangle-0.1.24.crate) = 719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f
+SIZE (rust/crates/rustc-demangle-0.1.24.crate) = 29047
+SHA256 (rust/crates/rustc_version-0.4.1.crate) = cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92
+SIZE (rust/crates/rustc_version-0.4.1.crate) = 12245
+SHA256 (rust/crates/rustix-0.38.44.crate) = fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154
+SIZE (rust/crates/rustix-0.38.44.crate) = 379347
+SHA256 (rust/crates/rustversion-1.0.19.crate) = f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4
+SIZE (rust/crates/rustversion-1.0.19.crate) = 20616
+SHA256 (rust/crates/ryu-1.0.19.crate) = 6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd
+SIZE (rust/crates/ryu-1.0.19.crate) = 48770
+SHA256 (rust/crates/schemars-0.8.21.crate) = 09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92
+SIZE (rust/crates/schemars-0.8.21.crate) = 58475
+SHA256 (rust/crates/schemars_derive-0.8.21.crate) = b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e
+SIZE (rust/crates/schemars_derive-0.8.21.crate) = 18703
+SHA256 (rust/crates/semver-1.0.25.crate) = f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03
+SIZE (rust/crates/semver-1.0.25.crate) = 31291
+SHA256 (rust/crates/serde-1.0.217.crate) = 02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70
+SIZE (rust/crates/serde-1.0.217.crate) = 79019
+SHA256 (rust/crates/serde_derive-1.0.217.crate) = 5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0
+SIZE (rust/crates/serde_derive-1.0.217.crate) = 57749
+SHA256 (rust/crates/serde_derive_internals-0.29.1.crate) = 18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711
+SIZE (rust/crates/serde_derive_internals-0.29.1.crate) = 26189
+SHA256 (rust/crates/serde_json-1.0.138.crate) = d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949
+SIZE (rust/crates/serde_json-1.0.138.crate) = 154769
+SHA256 (rust/crates/serde_repr-0.1.19.crate) = 6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9
+SIZE (rust/crates/serde_repr-0.1.19.crate) = 9997
+SHA256 (rust/crates/serde_spanned-0.6.8.crate) = 87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1
+SIZE (rust/crates/serde_spanned-0.6.8.crate) = 9330
+SHA256 (rust/crates/serde_yaml-0.9.34+deprecated.crate) = 6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47
+SIZE (rust/crates/serde_yaml-0.9.34+deprecated.crate) = 65290
+SHA256 (rust/crates/shlex-1.3.0.crate) = 0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64
+SIZE (rust/crates/shlex-1.3.0.crate) = 18713
+SHA256 (rust/crates/simd-adler32-0.3.7.crate) = d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe
+SIZE (rust/crates/simd-adler32-0.3.7.crate) = 12086
+SHA256 (rust/crates/simd_helpers-0.1.0.crate) = 95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6
+SIZE (rust/crates/simd_helpers-0.1.0.crate) = 1527
+SHA256 (rust/crates/siphasher-1.0.1.crate) = 56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d
+SIZE (rust/crates/siphasher-1.0.1.crate) = 10351
+SHA256 (rust/crates/slab-0.4.9.crate) = 8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67
+SIZE (rust/crates/slab-0.4.9.crate) = 17108
+SHA256 (rust/crates/smallvec-1.13.2.crate) = 3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67
+SIZE (rust/crates/smallvec-1.13.2.crate) = 35216
+SHA256 (rust/crates/socket2-0.5.8.crate) = c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8
+SIZE (rust/crates/socket2-0.5.8.crate) = 56309
+SHA256 (rust/crates/strsim-0.11.1.crate) = 7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f
+SIZE (rust/crates/strsim-0.11.1.crate) = 14266
+SHA256 (rust/crates/syn-2.0.98.crate) = 36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1
+SIZE (rust/crates/syn-2.0.98.crate) = 297807
+SHA256 (rust/crates/system-deps-6.2.2.crate) = a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349
+SIZE (rust/crates/system-deps-6.2.2.crate) = 25546
+SHA256 (rust/crates/system-deps-7.0.3.crate) = 66d23aaf9f331227789a99e8de4c91bf46703add012bdfd45fdecdfb2975a005
+SIZE (rust/crates/system-deps-7.0.3.crate) = 26313
+SHA256 (rust/crates/target-lexicon-0.12.16.crate) = 61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1
+SIZE (rust/crates/target-lexicon-0.12.16.crate) = 26488
+SHA256 (rust/crates/thiserror-1.0.69.crate) = b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52
+SIZE (rust/crates/thiserror-1.0.69.crate) = 22198
+SHA256 (rust/crates/thiserror-2.0.11.crate) = d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc
+SIZE (rust/crates/thiserror-2.0.11.crate) = 28648
+SHA256 (rust/crates/thiserror-impl-1.0.69.crate) = 4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1
+SIZE (rust/crates/thiserror-impl-1.0.69.crate) = 18365
+SHA256 (rust/crates/thiserror-impl-2.0.11.crate) = 26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2
+SIZE (rust/crates/thiserror-impl-2.0.11.crate) = 21067
+SHA256 (rust/crates/tiff-0.9.1.crate) = ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e
+SIZE (rust/crates/tiff-0.9.1.crate) = 1423953
+SHA256 (rust/crates/tokio-1.43.0.crate) = 3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e
+SIZE (rust/crates/tokio-1.43.0.crate) = 817422
+SHA256 (rust/crates/tokio-macros-2.5.0.crate) = 6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8
+SIZE (rust/crates/tokio-macros-2.5.0.crate) = 12617
+SHA256 (rust/crates/toml-0.8.20.crate) = cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148
+SIZE (rust/crates/toml-0.8.20.crate) = 51095
+SHA256 (rust/crates/toml_datetime-0.6.8.crate) = 0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41
+SIZE (rust/crates/toml_datetime-0.6.8.crate) = 12028
+SHA256 (rust/crates/toml_edit-0.22.24.crate) = 17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474
+SIZE (rust/crates/toml_edit-0.22.24.crate) = 106399
+SHA256 (rust/crates/tracing-0.1.41.crate) = 784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0
+SIZE (rust/crates/tracing-0.1.41.crate) = 82448
+SHA256 (rust/crates/tracing-attributes-0.1.28.crate) = 395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d
+SIZE (rust/crates/tracing-attributes-0.1.28.crate) = 33280
+SHA256 (rust/crates/tracing-core-0.1.33.crate) = e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c
+SIZE (rust/crates/tracing-core-0.1.33.crate) = 63434
+SHA256 (rust/crates/unicode-ident-1.0.16.crate) = a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034
+SIZE (rust/crates/unicode-ident-1.0.16.crate) = 47684
+SHA256 (rust/crates/unicode-xid-0.2.6.crate) = ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853
+SIZE (rust/crates/unicode-xid-0.2.6.crate) = 15744
+SHA256 (rust/crates/unsafe-libyaml-0.2.11.crate) = 673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861
+SIZE (rust/crates/unsafe-libyaml-0.2.11.crate) = 62101
+SHA256 (rust/crates/utf8parse-0.2.2.crate) = 06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821
+SIZE (rust/crates/utf8parse-0.2.2.crate) = 13499
+SHA256 (rust/crates/v_frame-0.3.8.crate) = d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b
+SIZE (rust/crates/v_frame-0.3.8.crate) = 14967
+SHA256 (rust/crates/version-compare-0.2.0.crate) = 852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b
+SIZE (rust/crates/version-compare-0.2.0.crate) = 13942
+SHA256 (rust/crates/version_check-0.9.5.crate) = 0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a
+SIZE (rust/crates/version_check-0.9.5.crate) = 15554
+SHA256 (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423
+SIZE (rust/crates/wasi-0.11.0+wasi-snapshot-preview1.crate) = 28131
+SHA256 (rust/crates/wasm-bindgen-0.2.100.crate) = 1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5
+SIZE (rust/crates/wasm-bindgen-0.2.100.crate) = 48288
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6
+SIZE (rust/crates/wasm-bindgen-backend-0.2.100.crate) = 32111
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407
+SIZE (rust/crates/wasm-bindgen-macro-0.2.100.crate) = 9663
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.100.crate) = 26243
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d
+SIZE (rust/crates/wasm-bindgen-shared-0.2.100.crate) = 8570
+SHA256 (rust/crates/wayland-backend-0.3.8.crate) = b7208998eaa3870dad37ec8836979581506e0c5c64c20c9e79e9d2a10d6f47bf
+SIZE (rust/crates/wayland-backend-0.3.8.crate) = 75317
+SHA256 (rust/crates/wayland-client-0.31.8.crate) = c2120de3d33638aaef5b9f4472bff75f07c56379cf76ea320bd3a3d65ecaf73f
+SIZE (rust/crates/wayland-client-0.31.8.crate) = 64449
+SHA256 (rust/crates/wayland-protocols-0.32.6.crate) = 0781cf46869b37e36928f7b432273c0995aa8aed9552c556fb18754420541efc
+SIZE (rust/crates/wayland-protocols-0.32.6.crate) = 187909
+SHA256 (rust/crates/wayland-protocols-wlr-0.3.6.crate) = 248a02e6f595aad796561fa82d25601bd2c8c3b145b1c7453fc8f94c1a58f8b2
+SIZE (rust/crates/wayland-protocols-wlr-0.3.6.crate) = 28621
+SHA256 (rust/crates/wayland-scanner-0.31.6.crate) = 896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484
+SIZE (rust/crates/wayland-scanner-0.31.6.crate) = 36365
+SHA256 (rust/crates/wayland-sys-0.31.6.crate) = dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615
+SIZE (rust/crates/wayland-sys-0.31.6.crate) = 10049
+SHA256 (rust/crates/weezl-0.1.8.crate) = 53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082
+SIZE (rust/crates/weezl-0.1.8.crate) = 42175
+SHA256 (rust/crates/windows-core-0.52.0.crate) = 33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9
+SIZE (rust/crates/windows-core-0.52.0.crate) = 42154
+SHA256 (rust/crates/windows-sys-0.52.0.crate) = 282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d
+SIZE (rust/crates/windows-sys-0.52.0.crate) = 2576877
+SHA256 (rust/crates/windows-sys-0.59.0.crate) = 1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b
+SIZE (rust/crates/windows-sys-0.59.0.crate) = 2387323
+SHA256 (rust/crates/windows-targets-0.52.6.crate) = 9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973
+SIZE (rust/crates/windows-targets-0.52.6.crate) = 6403
+SHA256 (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3
+SIZE (rust/crates/windows_aarch64_gnullvm-0.52.6.crate) = 435718
+SHA256 (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469
+SIZE (rust/crates/windows_aarch64_msvc-0.52.6.crate) = 832615
+SHA256 (rust/crates/windows_i686_gnu-0.52.6.crate) = 8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b
+SIZE (rust/crates/windows_i686_gnu-0.52.6.crate) = 880402
+SHA256 (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66
+SIZE (rust/crates/windows_i686_gnullvm-0.52.6.crate) = 475940
+SHA256 (rust/crates/windows_i686_msvc-0.52.6.crate) = 240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66
+SIZE (rust/crates/windows_i686_msvc-0.52.6.crate) = 901163
+SHA256 (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78
+SIZE (rust/crates/windows_x86_64_gnu-0.52.6.crate) = 836363
+SHA256 (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d
+SIZE (rust/crates/windows_x86_64_gnullvm-0.52.6.crate) = 435707
+SHA256 (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec
+SIZE (rust/crates/windows_x86_64_msvc-0.52.6.crate) = 832564
+SHA256 (rust/crates/winnow-0.7.2.crate) = 59690dea168f2198d1a3b0cac23b8063efcd11012f10ae4698f284808c8ef603
+SIZE (rust/crates/winnow-0.7.2.crate) = 170989
+SHA256 (rust/crates/xml-rs-0.8.25.crate) = c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4
+SIZE (rust/crates/xml-rs-0.8.25.crate) = 54947
+SHA256 (rust/crates/zerocopy-0.7.35.crate) = 1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0
+SIZE (rust/crates/zerocopy-0.7.35.crate) = 152645
+SHA256 (rust/crates/zerocopy-derive-0.7.35.crate) = fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e
+SIZE (rust/crates/zerocopy-derive-0.7.35.crate) = 37829
+SHA256 (rust/crates/zune-core-0.4.12.crate) = 3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a
+SIZE (rust/crates/zune-core-0.4.12.crate) = 17355
+SHA256 (rust/crates/zune-inflate-0.2.54.crate) = 73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02
+SIZE (rust/crates/zune-inflate-0.2.54.crate) = 37973
+SHA256 (rust/crates/zune-jpeg-0.4.14.crate) = 99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028
+SIZE (rust/crates/zune-jpeg-0.4.14.crate) = 63388
+SHA256 (WhySoBad-hyprland-preview-share-picker-v0.2.1_GH0.tar.gz) = dfbd6773884c24bb300d756420cc540dda0c3518e910e20d1538e7dd6c0990da
+SIZE (WhySoBad-hyprland-preview-share-picker-v0.2.1_GH0.tar.gz) = 50475
+SHA256 (hyprwm-hyprland-protocols-3a5c2bd_GH0.tar.gz) = d3b42cb8ef42cd0ee130dfc2e3b80c1032f689e1d304f670ca80e8c3799e5307
+SIZE (hyprwm-hyprland-protocols-3a5c2bd_GH0.tar.gz) = 10446
diff --git a/x11/hyprland-preview-share-picker/files/patch-build.rs b/x11/hyprland-preview-share-picker/files/patch-build.rs
new file mode 100644
index 000000000000..1cba513761ae
--- /dev/null
+++ b/x11/hyprland-preview-share-picker/files/patch-build.rs
@@ -0,0 +1,16 @@
+--- build.rs.orig	2026-09-29 13:29:30 UTC
++++ build.rs
+@@ -1,4 +1,13 @@ fn main() {
+ fn main() {
++    // Packaged builds are not run from a git checkout (and may sit inside an
++    // unrelated repository such as the ports tree), so take the version from
++    // the environment when it is provided.
++    println!("cargo::rerun-if-env-changed=HPSP_GIT_VERSION");
++    if let Ok(version) = std::env::var("HPSP_GIT_VERSION") {
++        println!("cargo::rustc-env=GIT_VERSION={version}");
++        return;
++    }
++
+     let version =
+         match std::process::Command::new("git").arg("describe").arg("--long").arg("--abbrev=7").arg("--tags").output() {
+             Ok(output) => {
diff --git a/x11/hyprland-preview-share-picker/files/patch-lib_src_buffer.rs b/x11/hyprland-preview-share-picker/files/patch-lib_src_buffer.rs
new file mode 100644
index 000000000000..7f366e58ec2d
--- /dev/null
+++ b/x11/hyprland-preview-share-picker/files/patch-lib_src_buffer.rs
@@ -0,0 +1,78 @@
+--- lib/src/buffer.rs.orig	2026-09-29 14:42:38 UTC
++++ lib/src/buffer.rs
+@@ -11,6 +11,44 @@ use crate::error::Error;
+ 
+ use crate::error::Error;
+ 
++/// Anonymous shared-memory file backing a frame. The memfd crate only supports
++/// Linux and Android; FreeBSD (13.0 and later) provides memfd_create(2) in libc.
++#[cfg(not(target_os = "freebsd"))]
++type BufferFile = memfd::Memfd;
++#[cfg(target_os = "freebsd")]
++type BufferFile = std::fs::File;
++
++#[cfg(not(target_os = "freebsd"))]
++fn create_buffer_file() -> Result<BufferFile, Box<dyn std::error::Error + Sync + Send>> {
++    Ok(memfd::MemfdOptions::default().create("buffer")?)
++}
++
++#[cfg(target_os = "freebsd")]
++fn create_buffer_file() -> Result<BufferFile, Box<dyn std::error::Error + Sync + Send>> {
++    use std::os::fd::FromRawFd;
++
++    unsafe extern "C" {
++        fn memfd_create(name: *const std::ffi::c_char, flags: std::ffi::c_uint) -> std::ffi::c_int;
++    }
++    const MFD_CLOEXEC: std::ffi::c_uint = 0x0000_0001;
++    let fd = unsafe { memfd_create(c"buffer".as_ptr(), MFD_CLOEXEC) };
++    if fd < 0 {
++        return Err(std::io::Error::last_os_error().into());
++    }
++    // memfd_create returned a new descriptor that nothing else owns.
++    Ok(unsafe { std::fs::File::from_raw_fd(fd) })
++}
++
++#[cfg(not(target_os = "freebsd"))]
++fn buffer_file(fd: &BufferFile) -> &std::fs::File {
++    fd.as_file()
++}
++
++#[cfg(target_os = "freebsd")]
++fn buffer_file(fd: &BufferFile) -> &std::fs::File {
++    fd
++}
++
+ #[derive(Debug)]
+ pub struct Buffer {
+     pub buffer: WlBuffer,
+@@ -18,7 +56,7 @@ pub struct Buffer {
+     pub height: u32,
+     pub stride: u32,
+     pub format: Format,
+-    fd: memfd::Memfd,
++    fd: BufferFile,
+ }
+ 
+ impl Buffer {
+@@ -35,9 +73,9 @@ impl Buffer {
+         handle: &QueueHandle<T>,
+         udata: K,
+     ) -> Result<Self, Error> {
+-        let mfd = memfd::MemfdOptions::default().create("buffer").map_err(|err| Error::BufferCreate(err.into()))?;
+-        mfd.as_file().set_len((width * height * 4) as u64).map_err(|err| Error::BufferCreate(err.into()))?;
+-        let pool = shm.create_pool(mfd.as_file().as_fd(), (width * height * 4) as i32, handle, udata.clone());
++        let mfd = create_buffer_file().map_err(Error::BufferCreate)?;
++        buffer_file(&mfd).set_len((width * height * 4) as u64).map_err(|err| Error::BufferCreate(err.into()))?;
++        let pool = shm.create_pool(buffer_file(&mfd).as_fd(), (width * height * 4) as i32, handle, udata.clone());
+         let buffer = pool.create_buffer(0, width as i32, height as i32, stride as i32, format, handle, udata);
+ 
+         pool.destroy();
+@@ -48,7 +86,7 @@ impl Buffer {
+     pub fn get_bytes(&self) -> Result<Vec<u8>, Error> {
+         // let mut file = unsafe { File::from_raw_fd(self.fd) };
+         let mut bytes = Vec::new();
+-        self.fd.as_file().read_to_end(&mut bytes).map_err(|err| Error::BufferRead(err))?;
++        buffer_file(&self.fd).read_to_end(&mut bytes).map_err(|err| Error::BufferRead(err))?;
+         Ok(bytes)
+     }
+ 
*** 11 LINES SKIPPED ***