From 38d414912ce9565de102bed61047878d96f832cb Mon Sep 17 00:00:00 2001 From: Duncan Tourolle Date: Sat, 3 Oct 2026 10:39:20 -0400 Subject: [PATCH] Read baseline exposure and profile tone curves; carry the ACR3 curve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The decoding half of camera-profiles.md §11-§12. RawImage gains baseline_exposure: the file's BaselineExposure plus the chosen profile's BaselineExposureOffset, as the DNG SDK sums them (+0.25 for the library's 6D DNGs). A profile copied out of a DNG carries that DNG's baseline as its offset, so the body's CR2s, which have none, land at the same total. ProfileTables gains the profile's ProfileToneCurve, resampled at decode onto 1025 points with a natural cubic spline; an identity curve counts as none. dr-types now holds Camera Raw's ACR3 default curve, RawTherapee's adobe_camera_raw_default_curve copied value for value, for every raw whose profile has no curve. Nothing renders through either yet. --- core/dr-decode/src/dcp.rs | 49 +++- core/dr-decode/src/lib.rs | 8 + core/dr-gpu/src/adjust.rs | 4 + core/dr-gpu/src/demosaic.rs | 4 + core/dr-gpu/tests/camera_profile.rs | 2 + core/dr-gpu/tests/film_sim.rs | 1 + core/dr-gpu/tests/hot_pixels.rs | 1 + core/dr-gpu/tests/scene_referred.rs | 1 + core/dr-gpu/tests/source_window.rs | 1 + core/dr-gpu/tests/view_transform.rs | 1 + core/dr-pipeline/src/ops/camera_profile.rs | 1 + core/dr-types/src/hue_sat.rs | 7 +- core/dr-types/src/lib.rs | 1 + core/dr-types/src/tone.rs | 279 +++++++++++++++++++++ docs/dev/traceability.md | 66 ++--- ui/dr-ui/src/decoder_seam.rs | 1 + ui/dr-ui/src/develop/render.rs | 2 + ui/dr-ui/src/develop/session.rs | 3 + ui/dr-ui/src/develop/white_balance.rs | 3 + 19 files changed, 400 insertions(+), 35 deletions(-) create mode 100644 core/dr-types/src/tone.rs diff --git a/core/dr-decode/src/dcp.rs b/core/dr-decode/src/dcp.rs index af69d34..419fd5f 100644 --- a/core/dr-decode/src/dcp.rs +++ b/core/dr-decode/src/dcp.rs @@ -68,6 +68,11 @@ pub struct Dcp { /// `ProfileToneCurve`, as stored: input/output pairs. Carried so a copy /// keeps it, never applied — tone is the view transform's (D19, D20). pub tone_curve: Option>, + /// `BaselineExposureOffset`, in stops: the profile's correction to the + /// file's `BaselineExposure` (camera-profiles.md §11). A profile copied + /// out of a DNG carries that DNG's baseline here, so a raw with no + /// baseline of its own lands at the same brightness. + pub baseline_exposure_offset: f32, } impl Dcp { @@ -120,6 +125,7 @@ impl Dcp { .get_entry(DngTag::ProfileToneCurve) .and_then(|e| floats(&e.value)) .filter(|v| v.len() >= 4 && v.len() % 2 == 0), + baseline_exposure_offset: stops(ifd, DngTag::BaselineExposureOffset), }) } @@ -218,6 +224,10 @@ impl Dcp { origin, hue_sat: hue_sat.filter(|t| !t.is_identity()), look: self.look.clone().filter(|t| !t.is_identity()), + tone_curve: self + .tone_curve + .as_deref() + .and_then(dr_types::tone::resample_tone_curve), } } @@ -305,6 +315,15 @@ impl Dcp { if let Some(curve) = &self.tone_curve { dir.add_value(DngTag::ProfileToneCurve, Value::Float(curve.clone())); } + if self.baseline_exposure_offset != 0.0 { + dir.add_value( + DngTag::BaselineExposureOffset, + Value::SRational(vec![SRational::new( + (self.baseline_exposure_offset * 100.0).round() as i32, + 100, + )]), + ); + } writer.build(dir).map_err(|e| e.to_string())?; let mut bytes = cursor.into_inner(); // The writer stamps TIFF's 42 in its own byte order; a profile is the @@ -340,6 +359,15 @@ fn string(ifd: &IFD, tag: DngTag) -> Option { .filter(|s| !s.is_empty()) } +/// A single rational tag in stops, zero where absent or unreadable — the +/// DNG specification's default for both exposure tags. +fn stops(ifd: &IFD, tag: DngTag) -> f32 { + ifd.get_entry(tag) + .and_then(|e| e.value.get_f32(0).ok().flatten()) + .filter(|v| v.is_finite()) + .unwrap_or(0.0) +} + fn floats(value: &Value) -> Option> { (0..value.count()) .map(|i| value.get_f32(i).ok().flatten()) @@ -507,7 +535,12 @@ pub fn embedded_in(bytes: &[u8]) -> Option { .ifd(rawler::decoders::WellKnownIFD::Root) .ok() .flatten()?; - Dcp::from_ifd(&root) + // The copy carries the file's baseline as its offset, so a raw from the + // same body that has no baseline of its own — a CR2 — gets the total the + // DNG renders at (camera-profiles.md §11). + let mut profile = Dcp::from_ifd(&root)?; + profile.baseline_exposure_offset += stops(&root, DngTag::BaselineExposure); + Some(profile) } /// TRACES: FR-DEV-3e @@ -518,6 +551,9 @@ pub struct Resolved { pub profile: Option, pub tables: Option>, pub embedded: Option>, + /// Stops to add at render: the file's `BaselineExposure` plus the + /// chosen profile's `BaselineExposureOffset` (camera-profiles.md §11). + pub baseline_exposure: f32, } /// TRACES: FR-DEV-3e @@ -532,6 +568,7 @@ pub fn resolve( model: &str, ) -> Resolved { let embedded = root.and_then(Dcp::from_ifd).map(Arc::new); + let file_baseline = root.map_or(0.0, |r| stops(r, DngTag::BaselineExposure)); if let Some(dcp) = &embedded { let tables = matrices .as_ref() @@ -541,6 +578,7 @@ pub fn resolve( return Resolved { profile: matrices, tables, + baseline_exposure: file_baseline + dcp.baseline_exposure_offset, embedded, }; } @@ -553,6 +591,7 @@ pub fn resolve( tables: (!tables.is_empty()).then(|| Arc::new(tables)), profile: Some(own), embedded: None, + baseline_exposure: file_baseline + dcp.baseline_exposure_offset, }; } } @@ -560,6 +599,7 @@ pub fn resolve( profile: matrices, tables: None, embedded: None, + baseline_exposure: file_baseline, } } @@ -609,6 +649,7 @@ mod tests { ], look: Some(table(4, 2, 3, [0.0, 1.2, 0.95])), tone_curve: Some(vec![0.0, 0.0, 0.5, 0.6, 1.0, 1.0]), + baseline_exposure_offset: 0.25, } } @@ -627,6 +668,7 @@ mod tests { assert_eq!(back.unique_camera_model, original.unique_camera_model); assert_eq!(back.illuminants, original.illuminants); assert_eq!(back.tone_curve, original.tone_curve); + assert_eq!(back.baseline_exposure_offset, 0.25); assert_eq!( back.forward_matrix, original.forward_matrix, "four decimals, as the file has" @@ -746,6 +788,11 @@ mod tests { assert_eq!(tables.origin, ProfileOrigin::Embedded); assert_eq!(tables.name, "Adobe Standard"); assert!(tables.hue_sat.is_some() && tables.look.is_some()); + assert!( + tables.tone_curve.is_none(), + "Adobe Standard has no curve of its own" + ); + assert_eq!(raw.baseline_exposure, 0.25); } #[test] diff --git a/core/dr-decode/src/lib.rs b/core/dr-decode/src/lib.rs index 6fdc375..22ee361 100644 --- a/core/dr-decode/src/lib.rs +++ b/core/dr-decode/src/lib.rs @@ -147,6 +147,12 @@ pub struct RawImage { /// renders a decoded file renders it through the same profile without /// having to be told — see camera-profiles.md §3. pub profile_tables: Option>, + /// TRACES: FR-DEV-3e + /// Stops the render adds before anything else: the file's + /// `BaselineExposure` plus the profile's `BaselineExposureOffset` + /// (camera-profiles.md §11). Applied by the GPU side as a gain on the + /// camera matrix; `color_matrix` itself stays the file's. + pub baseline_exposure: f32, /// The body, as rawler cleans the names: what `Make`/`Model` say, and /// what a `.dcp`'s `UniqueCameraModel` is matched against. pub make: String, @@ -602,6 +608,7 @@ fn decode_unguarded(bytes: &[u8]) -> Result { let dcp::Resolved { profile, tables: profile_tables, + baseline_exposure, .. } = dcp::resolve( profile, @@ -700,6 +707,7 @@ fn decode_unguarded(bytes: &[u8]) -> Result { samples_per_pixel, profile, profile_tables, + baseline_exposure, make: image.camera.clean_make.clone(), model: image.camera.clean_model.clone(), }) diff --git a/core/dr-gpu/src/adjust.rs b/core/dr-gpu/src/adjust.rs index 5c0186a..228506a 100644 --- a/core/dr-gpu/src/adjust.rs +++ b/core/dr-gpu/src/adjust.rs @@ -1889,6 +1889,7 @@ mod tests { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { @@ -2093,6 +2094,7 @@ mod tests { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { @@ -2702,6 +2704,7 @@ mod tests { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { @@ -2806,6 +2809,7 @@ mod tests { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { diff --git a/core/dr-gpu/src/demosaic.rs b/core/dr-gpu/src/demosaic.rs index c1e74ca..09f3e6b 100644 --- a/core/dr-gpu/src/demosaic.rs +++ b/core/dr-gpu/src/demosaic.rs @@ -1610,6 +1610,7 @@ mod tests { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { @@ -1726,6 +1727,7 @@ mod tests { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { @@ -2023,6 +2025,7 @@ mod tests { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { @@ -2108,6 +2111,7 @@ mod tests { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { diff --git a/core/dr-gpu/tests/camera_profile.rs b/core/dr-gpu/tests/camera_profile.rs index 252da7f..3404be3 100644 --- a/core/dr-gpu/tests/camera_profile.rs +++ b/core/dr-gpu/tests/camera_profile.rs @@ -91,6 +91,7 @@ fn frame(tables: Option) -> RawImage { samples_per_pixel: 3, profile: None, profile_tables: tables.map(Arc::new), + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { @@ -133,6 +134,7 @@ fn strong_tables() -> ProfileTables { origin: ProfileOrigin::Embedded, hue_sat: Some(HueSatTable::new(hd, sd, 1, false, hue_sat).unwrap()), look: Some(look), + tone_curve: None, } } diff --git a/core/dr-gpu/tests/film_sim.rs b/core/dr-gpu/tests/film_sim.rs index f85f7c7..30e284c 100644 --- a/core/dr-gpu/tests/film_sim.rs +++ b/core/dr-gpu/tests/film_sim.rs @@ -51,6 +51,7 @@ fn flat_raw(level: u16) -> RawImage { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { diff --git a/core/dr-gpu/tests/hot_pixels.rs b/core/dr-gpu/tests/hot_pixels.rs index 39b8aa5..bb36874 100644 --- a/core/dr-gpu/tests/hot_pixels.rs +++ b/core/dr-gpu/tests/hot_pixels.rs @@ -35,6 +35,7 @@ fn frame(pattern: CfaPattern, level: u16, set: &[(u32, u32, u16)]) -> RawImage { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { diff --git a/core/dr-gpu/tests/scene_referred.rs b/core/dr-gpu/tests/scene_referred.rs index 6240a6b..0383a58 100644 --- a/core/dr-gpu/tests/scene_referred.rs +++ b/core/dr-gpu/tests/scene_referred.rs @@ -95,6 +95,7 @@ fn flat(ctx: &GpuContext, level: f32) -> dr_gpu::DemosaicedImage { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { diff --git a/core/dr-gpu/tests/source_window.rs b/core/dr-gpu/tests/source_window.rs index e5becd2..9ad42d2 100644 --- a/core/dr-gpu/tests/source_window.rs +++ b/core/dr-gpu/tests/source_window.rs @@ -59,6 +59,7 @@ fn linear_frame(w: u32, h: u32, noise: bool) -> RawImage { samples_per_pixel: 3, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { diff --git a/core/dr-gpu/tests/view_transform.rs b/core/dr-gpu/tests/view_transform.rs index 925dd8c..9d4575a 100644 --- a/core/dr-gpu/tests/view_transform.rs +++ b/core/dr-gpu/tests/view_transform.rs @@ -34,6 +34,7 @@ fn flat_raw(level: u16) -> RawImage { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: CropRect { diff --git a/core/dr-pipeline/src/ops/camera_profile.rs b/core/dr-pipeline/src/ops/camera_profile.rs index d0e11c1..d1c8495 100644 --- a/core/dr-pipeline/src/ops/camera_profile.rs +++ b/core/dr-pipeline/src/ops/camera_profile.rs @@ -536,6 +536,7 @@ mod tests { origin: ProfileOrigin::Embedded, hue_sat, look, + tone_curve: None, } } diff --git a/core/dr-types/src/hue_sat.rs b/core/dr-types/src/hue_sat.rs index c5e8f13..37cd1eb 100644 --- a/core/dr-types/src/hue_sat.rs +++ b/core/dr-types/src/hue_sat.rs @@ -115,6 +115,11 @@ pub struct ProfileTables { pub origin: ProfileOrigin, pub hue_sat: Option, pub look: Option, + /// The profile's `ProfileToneCurve`, resampled onto + /// [`crate::tone::TONE_SAMPLES`] points; `None` where it has none, and + /// the view transform's Camera Raw curve then uses + /// [`crate::tone::ACR3_DEFAULT`] (D21). + pub tone_curve: Option>, } /// Where a profile was found (camera-profiles.md §4). @@ -129,7 +134,7 @@ pub enum ProfileOrigin { impl ProfileTables { /// Whether there is anything to apply. pub fn is_empty(&self) -> bool { - self.hue_sat.is_none() && self.look.is_none() + self.hue_sat.is_none() && self.look.is_none() && self.tone_curve.is_none() } } diff --git a/core/dr-types/src/lib.rs b/core/dr-types/src/lib.rs index 87dece9..e89511d 100644 --- a/core/dr-types/src/lib.rs +++ b/core/dr-types/src/lib.rs @@ -14,6 +14,7 @@ pub mod place; pub mod selector; pub mod settings; pub mod time; +pub mod tone; pub use colour::{Chromaticities, Transfer}; pub use hue_sat::{HueSatTable, ProfileOrigin, ProfileTables}; diff --git a/core/dr-types/src/tone.rs b/core/dr-types/src/tone.rs new file mode 100644 index 0000000..643f3ab --- /dev/null +++ b/core/dr-types/src/tone.rs @@ -0,0 +1,279 @@ +//! TRACES: FR-DEV-3j | FR-DEV-3e +//! Camera Raw's tone curves, as data (D21). +//! +//! # Where the numbers come from +//! +//! [`ACR3_DEFAULT`] is the "ACR3 default" tone curve of Adobe's DNG SDK +//! (`dng_tone_curve_acr3_default`): what Camera Raw renders a raw through +//! when its camera profile carries no `ProfileToneCurve` of its own, which is +//! true of Adobe Standard. The values are RawTherapee's +//! `adobe_camera_raw_default_curve` (`rtengine/dcp.cc`, GPLv3), copied +//! digit for digit; `the_default_curve_is_rawtherapees` checks a sample of +//! them. +//! +//! It maps linear values to linear values, 1025 samples evenly over +//! `[0, 1]`, interpolated linearly between them. See +//! `docs/dev/camera-profiles.md` §12 for how it is applied — on the largest +//! and smallest channel, not on each — which is half of what it does. + +/// Samples in a resolved tone curve: the ACR3 table's own resolution, and +/// what a profile's curve is resampled onto. +pub const TONE_SAMPLES: usize = 1025; + +/// The ACR3 default tone curve, linear in, linear out. +#[rustfmt::skip] +pub const ACR3_DEFAULT: [f32; TONE_SAMPLES] = [ + 0.00000, 0.00078, 0.00160, 0.00242, 0.00314, 0.00385, 0.00460, 0.00539, + 0.00623, 0.00712, 0.00806, 0.00906, 0.01012, 0.01122, 0.01238, 0.01359, + 0.01485, 0.01616, 0.01751, 0.01890, 0.02033, 0.02180, 0.02331, 0.02485, + 0.02643, 0.02804, 0.02967, 0.03134, 0.03303, 0.03475, 0.03648, 0.03824, + 0.04002, 0.04181, 0.04362, 0.04545, 0.04730, 0.04916, 0.05103, 0.05292, + 0.05483, 0.05675, 0.05868, 0.06063, 0.06259, 0.06457, 0.06655, 0.06856, + 0.07057, 0.07259, 0.07463, 0.07668, 0.07874, 0.08081, 0.08290, 0.08499, + 0.08710, 0.08921, 0.09134, 0.09348, 0.09563, 0.09779, 0.09996, 0.10214, + 0.10433, 0.10652, 0.10873, 0.11095, 0.11318, 0.11541, 0.11766, 0.11991, + 0.12218, 0.12445, 0.12673, 0.12902, 0.13132, 0.13363, 0.13595, 0.13827, + 0.14061, 0.14295, 0.14530, 0.14765, 0.15002, 0.15239, 0.15477, 0.15716, + 0.15956, 0.16197, 0.16438, 0.16680, 0.16923, 0.17166, 0.17410, 0.17655, + 0.17901, 0.18148, 0.18395, 0.18643, 0.18891, 0.19141, 0.19391, 0.19641, + 0.19893, 0.20145, 0.20398, 0.20651, 0.20905, 0.21160, 0.21416, 0.21672, + 0.21929, 0.22185, 0.22440, 0.22696, 0.22950, 0.23204, 0.23458, 0.23711, + 0.23963, 0.24215, 0.24466, 0.24717, 0.24967, 0.25216, 0.25465, 0.25713, + 0.25961, 0.26208, 0.26454, 0.26700, 0.26945, 0.27189, 0.27433, 0.27676, + 0.27918, 0.28160, 0.28401, 0.28641, 0.28881, 0.29120, 0.29358, 0.29596, + 0.29833, 0.30069, 0.30305, 0.30540, 0.30774, 0.31008, 0.31241, 0.31473, + 0.31704, 0.31935, 0.32165, 0.32395, 0.32623, 0.32851, 0.33079, 0.33305, + 0.33531, 0.33756, 0.33981, 0.34205, 0.34428, 0.34650, 0.34872, 0.35093, + 0.35313, 0.35532, 0.35751, 0.35969, 0.36187, 0.36404, 0.36620, 0.36835, + 0.37050, 0.37264, 0.37477, 0.37689, 0.37901, 0.38112, 0.38323, 0.38533, + 0.38742, 0.38950, 0.39158, 0.39365, 0.39571, 0.39777, 0.39982, 0.40186, + 0.40389, 0.40592, 0.40794, 0.40996, 0.41197, 0.41397, 0.41596, 0.41795, + 0.41993, 0.42191, 0.42388, 0.42584, 0.42779, 0.42974, 0.43168, 0.43362, + 0.43554, 0.43747, 0.43938, 0.44129, 0.44319, 0.44509, 0.44698, 0.44886, + 0.45073, 0.45260, 0.45447, 0.45632, 0.45817, 0.46002, 0.46186, 0.46369, + 0.46551, 0.46733, 0.46914, 0.47095, 0.47275, 0.47454, 0.47633, 0.47811, + 0.47989, 0.48166, 0.48342, 0.48518, 0.48693, 0.48867, 0.49041, 0.49214, + 0.49387, 0.49559, 0.49730, 0.49901, 0.50072, 0.50241, 0.50410, 0.50579, + 0.50747, 0.50914, 0.51081, 0.51247, 0.51413, 0.51578, 0.51742, 0.51906, + 0.52069, 0.52232, 0.52394, 0.52556, 0.52717, 0.52878, 0.53038, 0.53197, + 0.53356, 0.53514, 0.53672, 0.53829, 0.53986, 0.54142, 0.54297, 0.54452, + 0.54607, 0.54761, 0.54914, 0.55067, 0.55220, 0.55371, 0.55523, 0.55673, + 0.55824, 0.55973, 0.56123, 0.56271, 0.56420, 0.56567, 0.56715, 0.56861, + 0.57007, 0.57153, 0.57298, 0.57443, 0.57587, 0.57731, 0.57874, 0.58017, + 0.58159, 0.58301, 0.58443, 0.58583, 0.58724, 0.58864, 0.59003, 0.59142, + 0.59281, 0.59419, 0.59556, 0.59694, 0.59830, 0.59966, 0.60102, 0.60238, + 0.60373, 0.60507, 0.60641, 0.60775, 0.60908, 0.61040, 0.61173, 0.61305, + 0.61436, 0.61567, 0.61698, 0.61828, 0.61957, 0.62087, 0.62216, 0.62344, + 0.62472, 0.62600, 0.62727, 0.62854, 0.62980, 0.63106, 0.63232, 0.63357, + 0.63482, 0.63606, 0.63730, 0.63854, 0.63977, 0.64100, 0.64222, 0.64344, + 0.64466, 0.64587, 0.64708, 0.64829, 0.64949, 0.65069, 0.65188, 0.65307, + 0.65426, 0.65544, 0.65662, 0.65779, 0.65897, 0.66013, 0.66130, 0.66246, + 0.66362, 0.66477, 0.66592, 0.66707, 0.66821, 0.66935, 0.67048, 0.67162, + 0.67275, 0.67387, 0.67499, 0.67611, 0.67723, 0.67834, 0.67945, 0.68055, + 0.68165, 0.68275, 0.68385, 0.68494, 0.68603, 0.68711, 0.68819, 0.68927, + 0.69035, 0.69142, 0.69249, 0.69355, 0.69461, 0.69567, 0.69673, 0.69778, + 0.69883, 0.69988, 0.70092, 0.70196, 0.70300, 0.70403, 0.70506, 0.70609, + 0.70711, 0.70813, 0.70915, 0.71017, 0.71118, 0.71219, 0.71319, 0.71420, + 0.71520, 0.71620, 0.71719, 0.71818, 0.71917, 0.72016, 0.72114, 0.72212, + 0.72309, 0.72407, 0.72504, 0.72601, 0.72697, 0.72794, 0.72890, 0.72985, + 0.73081, 0.73176, 0.73271, 0.73365, 0.73460, 0.73554, 0.73647, 0.73741, + 0.73834, 0.73927, 0.74020, 0.74112, 0.74204, 0.74296, 0.74388, 0.74479, + 0.74570, 0.74661, 0.74751, 0.74842, 0.74932, 0.75021, 0.75111, 0.75200, + 0.75289, 0.75378, 0.75466, 0.75555, 0.75643, 0.75730, 0.75818, 0.75905, + 0.75992, 0.76079, 0.76165, 0.76251, 0.76337, 0.76423, 0.76508, 0.76594, + 0.76679, 0.76763, 0.76848, 0.76932, 0.77016, 0.77100, 0.77183, 0.77267, + 0.77350, 0.77432, 0.77515, 0.77597, 0.77680, 0.77761, 0.77843, 0.77924, + 0.78006, 0.78087, 0.78167, 0.78248, 0.78328, 0.78408, 0.78488, 0.78568, + 0.78647, 0.78726, 0.78805, 0.78884, 0.78962, 0.79040, 0.79118, 0.79196, + 0.79274, 0.79351, 0.79428, 0.79505, 0.79582, 0.79658, 0.79735, 0.79811, + 0.79887, 0.79962, 0.80038, 0.80113, 0.80188, 0.80263, 0.80337, 0.80412, + 0.80486, 0.80560, 0.80634, 0.80707, 0.80780, 0.80854, 0.80926, 0.80999, + 0.81072, 0.81144, 0.81216, 0.81288, 0.81360, 0.81431, 0.81503, 0.81574, + 0.81645, 0.81715, 0.81786, 0.81856, 0.81926, 0.81996, 0.82066, 0.82135, + 0.82205, 0.82274, 0.82343, 0.82412, 0.82480, 0.82549, 0.82617, 0.82685, + 0.82753, 0.82820, 0.82888, 0.82955, 0.83022, 0.83089, 0.83155, 0.83222, + 0.83288, 0.83354, 0.83420, 0.83486, 0.83552, 0.83617, 0.83682, 0.83747, + 0.83812, 0.83877, 0.83941, 0.84005, 0.84069, 0.84133, 0.84197, 0.84261, + 0.84324, 0.84387, 0.84450, 0.84513, 0.84576, 0.84639, 0.84701, 0.84763, + 0.84825, 0.84887, 0.84949, 0.85010, 0.85071, 0.85132, 0.85193, 0.85254, + 0.85315, 0.85375, 0.85436, 0.85496, 0.85556, 0.85615, 0.85675, 0.85735, + 0.85794, 0.85853, 0.85912, 0.85971, 0.86029, 0.86088, 0.86146, 0.86204, + 0.86262, 0.86320, 0.86378, 0.86435, 0.86493, 0.86550, 0.86607, 0.86664, + 0.86720, 0.86777, 0.86833, 0.86889, 0.86945, 0.87001, 0.87057, 0.87113, + 0.87168, 0.87223, 0.87278, 0.87333, 0.87388, 0.87443, 0.87497, 0.87552, + 0.87606, 0.87660, 0.87714, 0.87768, 0.87821, 0.87875, 0.87928, 0.87981, + 0.88034, 0.88087, 0.88140, 0.88192, 0.88244, 0.88297, 0.88349, 0.88401, + 0.88453, 0.88504, 0.88556, 0.88607, 0.88658, 0.88709, 0.88760, 0.88811, + 0.88862, 0.88912, 0.88963, 0.89013, 0.89063, 0.89113, 0.89163, 0.89212, + 0.89262, 0.89311, 0.89360, 0.89409, 0.89458, 0.89507, 0.89556, 0.89604, + 0.89653, 0.89701, 0.89749, 0.89797, 0.89845, 0.89892, 0.89940, 0.89987, + 0.90035, 0.90082, 0.90129, 0.90176, 0.90222, 0.90269, 0.90316, 0.90362, + 0.90408, 0.90454, 0.90500, 0.90546, 0.90592, 0.90637, 0.90683, 0.90728, + 0.90773, 0.90818, 0.90863, 0.90908, 0.90952, 0.90997, 0.91041, 0.91085, + 0.91130, 0.91173, 0.91217, 0.91261, 0.91305, 0.91348, 0.91392, 0.91435, + 0.91478, 0.91521, 0.91564, 0.91606, 0.91649, 0.91691, 0.91734, 0.91776, + 0.91818, 0.91860, 0.91902, 0.91944, 0.91985, 0.92027, 0.92068, 0.92109, + 0.92150, 0.92191, 0.92232, 0.92273, 0.92314, 0.92354, 0.92395, 0.92435, + 0.92475, 0.92515, 0.92555, 0.92595, 0.92634, 0.92674, 0.92713, 0.92753, + 0.92792, 0.92831, 0.92870, 0.92909, 0.92947, 0.92986, 0.93025, 0.93063, + 0.93101, 0.93139, 0.93177, 0.93215, 0.93253, 0.93291, 0.93328, 0.93366, + 0.93403, 0.93440, 0.93478, 0.93515, 0.93551, 0.93588, 0.93625, 0.93661, + 0.93698, 0.93734, 0.93770, 0.93807, 0.93843, 0.93878, 0.93914, 0.93950, + 0.93986, 0.94021, 0.94056, 0.94092, 0.94127, 0.94162, 0.94197, 0.94231, + 0.94266, 0.94301, 0.94335, 0.94369, 0.94404, 0.94438, 0.94472, 0.94506, + 0.94540, 0.94573, 0.94607, 0.94641, 0.94674, 0.94707, 0.94740, 0.94774, + 0.94807, 0.94839, 0.94872, 0.94905, 0.94937, 0.94970, 0.95002, 0.95035, + 0.95067, 0.95099, 0.95131, 0.95163, 0.95194, 0.95226, 0.95257, 0.95289, + 0.95320, 0.95351, 0.95383, 0.95414, 0.95445, 0.95475, 0.95506, 0.95537, + 0.95567, 0.95598, 0.95628, 0.95658, 0.95688, 0.95718, 0.95748, 0.95778, + 0.95808, 0.95838, 0.95867, 0.95897, 0.95926, 0.95955, 0.95984, 0.96013, + 0.96042, 0.96071, 0.96100, 0.96129, 0.96157, 0.96186, 0.96214, 0.96242, + 0.96271, 0.96299, 0.96327, 0.96355, 0.96382, 0.96410, 0.96438, 0.96465, + 0.96493, 0.96520, 0.96547, 0.96574, 0.96602, 0.96629, 0.96655, 0.96682, + 0.96709, 0.96735, 0.96762, 0.96788, 0.96815, 0.96841, 0.96867, 0.96893, + 0.96919, 0.96945, 0.96971, 0.96996, 0.97022, 0.97047, 0.97073, 0.97098, + 0.97123, 0.97149, 0.97174, 0.97199, 0.97223, 0.97248, 0.97273, 0.97297, + 0.97322, 0.97346, 0.97371, 0.97395, 0.97419, 0.97443, 0.97467, 0.97491, + 0.97515, 0.97539, 0.97562, 0.97586, 0.97609, 0.97633, 0.97656, 0.97679, + 0.97702, 0.97725, 0.97748, 0.97771, 0.97794, 0.97817, 0.97839, 0.97862, + 0.97884, 0.97907, 0.97929, 0.97951, 0.97973, 0.97995, 0.98017, 0.98039, + 0.98061, 0.98082, 0.98104, 0.98125, 0.98147, 0.98168, 0.98189, 0.98211, + 0.98232, 0.98253, 0.98274, 0.98295, 0.98315, 0.98336, 0.98357, 0.98377, + 0.98398, 0.98418, 0.98438, 0.98458, 0.98478, 0.98498, 0.98518, 0.98538, + 0.98558, 0.98578, 0.98597, 0.98617, 0.98636, 0.98656, 0.98675, 0.98694, + 0.98714, 0.98733, 0.98752, 0.98771, 0.98789, 0.98808, 0.98827, 0.98845, + 0.98864, 0.98882, 0.98901, 0.98919, 0.98937, 0.98955, 0.98973, 0.98991, + 0.99009, 0.99027, 0.99045, 0.99063, 0.99080, 0.99098, 0.99115, 0.99133, + 0.99150, 0.99167, 0.99184, 0.99201, 0.99218, 0.99235, 0.99252, 0.99269, + 0.99285, 0.99302, 0.99319, 0.99335, 0.99351, 0.99368, 0.99384, 0.99400, + 0.99416, 0.99432, 0.99448, 0.99464, 0.99480, 0.99495, 0.99511, 0.99527, + 0.99542, 0.99558, 0.99573, 0.99588, 0.99603, 0.99619, 0.99634, 0.99649, + 0.99664, 0.99678, 0.99693, 0.99708, 0.99722, 0.99737, 0.99751, 0.99766, + 0.99780, 0.99794, 0.99809, 0.99823, 0.99837, 0.99851, 0.99865, 0.99879, + 0.99892, 0.99906, 0.99920, 0.99933, 0.99947, 0.99960, 0.99974, 0.99987, + 1.00000, +]; + +/// TRACES: FR-DEV-3e +/// A profile's `ProfileToneCurve` — `(x, y)` pairs in `[0, 1]` — resampled +/// onto [`TONE_SAMPLES`] even points with a natural cubic spline, the DNG +/// SDK's `dng_spline_solver`. +/// +/// `None` where the pairs do not describe a curve (fewer than two points, +/// x not increasing, values outside `[0, 1]`) or describe the identity, +/// which RawTherapee also treats as no curve. +pub fn resample_tone_curve(pairs: &[f32]) -> Option> { + if pairs.len() < 4 || pairs.len() % 2 != 0 { + return None; + } + let xs: Vec = pairs.iter().step_by(2).map(|&v| f64::from(v)).collect(); + let ys: Vec = pairs + .iter() + .skip(1) + .step_by(2) + .map(|&v| f64::from(v)) + .collect(); + let sane = xs.windows(2).all(|w| w[1] > w[0]) + && xs + .iter() + .chain(&ys) + .all(|v| v.is_finite() && (-1e-6..=1.0 + 1e-6).contains(v)); + if !sane { + return None; + } + if xs.iter().zip(&ys).all(|(x, y)| (x - y).abs() < 1e-6) { + return None; + } + let n = xs.len(); + // Natural cubic spline: second derivatives zero at both ends, solved by + // the tridiagonal (Thomas) algorithm. + let mut m = vec![0.0f64; n]; + if n > 2 { + let h: Vec = xs.windows(2).map(|w| w[1] - w[0]).collect(); + let mut a = vec![0.0; n]; + let mut b = vec![1.0; n]; + let mut c = vec![0.0; n]; + let mut d = vec![0.0; n]; + for i in 1..n - 1 { + a[i] = h[i - 1]; + b[i] = 2.0 * (h[i - 1] + h[i]); + c[i] = h[i]; + d[i] = 6.0 * ((ys[i + 1] - ys[i]) / h[i] - (ys[i] - ys[i - 1]) / h[i - 1]); + } + for i in 1..n { + let w = a[i] / b[i - 1]; + b[i] -= w * c[i - 1]; + d[i] -= w * d[i - 1]; + } + m[n - 1] = d[n - 1] / b[n - 1]; + for i in (0..n - 1).rev() { + m[i] = (d[i] - c[i] * m[i + 1]) / b[i]; + } + } + let eval = |x: f64| -> f64 { + if x <= xs[0] { + return ys[0]; + } + if x >= xs[n - 1] { + return ys[n - 1]; + } + let i = xs.windows(2).position(|w| x <= w[1]).unwrap_or(n - 2); + let h = xs[i + 1] - xs[i]; + let t = (x - xs[i]) / h; + let u = 1.0 - t; + u * ys[i] + + t * ys[i + 1] + + ((u * u * u - u) * m[i] + (t * t * t - t) * m[i + 1]) * h * h / 6.0 + }; + Some( + (0..TONE_SAMPLES) + .map(|k| eval(k as f64 / (TONE_SAMPLES - 1) as f64).clamp(0.0, 1.0) as f32) + .collect(), + ) +} + +/// A resolved curve at `x`, linear interpolation between samples, `x` +/// clamped to `[0, 1]` — the shader's lookup, for the CPU reference. +pub fn evaluate(curve: &[f32], x: f32) -> f32 { + let last = curve.len() - 1; + let s = x.clamp(0.0, 1.0) * last as f32; + let i = (s as usize).min(last - 1); + let f = s - i as f32; + curve[i] + (curve[i + 1] - curve[i]) * f +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn the_default_curve_is_rawtherapees() { + assert_eq!(ACR3_DEFAULT.len(), 1025); + assert_eq!(ACR3_DEFAULT[0], 0.0); + assert_eq!(ACR3_DEFAULT[1024], 1.0); + assert_eq!(ACR3_DEFAULT[1], 0.00078); + assert_eq!(ACR3_DEFAULT[256], 0.52069); + assert_eq!(ACR3_DEFAULT[512], 0.80486); + assert_eq!(ACR3_DEFAULT[768], 0.93986); + assert!(ACR3_DEFAULT.windows(2).all(|w| w[1] >= w[0]), "monotone"); + } + + #[test] + fn a_resampled_curve_passes_through_its_points() { + let c = resample_tone_curve(&[0.0, 0.0, 0.5, 0.6, 1.0, 1.0]).unwrap(); + assert_eq!(c.len(), TONE_SAMPLES); + assert!((evaluate(&c, 0.5) - 0.6).abs() < 1e-4); + assert!(evaluate(&c, 0.0).abs() < 1e-6 && (evaluate(&c, 1.0) - 1.0).abs() < 1e-6); + assert!( + evaluate(&c, 0.25) > 0.25, + "a lifted curve lifts between its points" + ); + } + + #[test] + fn an_identity_or_broken_curve_is_no_curve() { + assert!(resample_tone_curve(&[0.0, 0.0, 1.0, 1.0]).is_none()); + assert!(resample_tone_curve(&[0.0, 0.0, 0.5]).is_none()); + assert!(resample_tone_curve(&[0.0, 0.0, 0.6, 0.5, 0.4, 0.9, 1.0, 1.0]).is_none()); + } +} diff --git a/docs/dev/traceability.md b/docs/dev/traceability.md index 4913d4f..93439d1 100644 --- a/docs/dev/traceability.md +++ b/docs/dev/traceability.md @@ -9,8 +9,8 @@ Denominators are parsed from [`requirements.md`](requirements.md) at run time, n | Metric | Value | |---|---| -| Source files scanned | 497 | -| TRACES tags found | 2059 | +| Source files scanned | 498 | +| TRACES tags found | 2062 | | Requirements defined | 193 | | Requirements deferred (post-v1) | 24 | | Requirements covered | 166 | @@ -34,29 +34,29 @@ _None._ | ID | Tagged in | |---|---| -| FR-CAT-1 | [`core/dr-catalog/src/scan.rs:1`](../../core/dr-catalog/src/scan.rs#L1), [`core/dr-catalog/src/walk.rs:108`](../../core/dr-catalog/src/walk.rs#L108), [`core/dr-catalog/src/walk.rs:161`](../../core/dr-catalog/src/walk.rs#L161), [`core/dr-catalog/src/walk.rs:1`](../../core/dr-catalog/src/walk.rs#L1), [`core/dr-sync/src/scan.rs:129`](../../core/dr-sync/src/scan.rs#L129), [`core/dr-types/src/lib.rs:205`](../../core/dr-types/src/lib.rs#L205), [`core/dr-types/src/lib.rs:274`](../../core/dr-types/src/lib.rs#L274), [`core/dr-types/src/lib.rs:307`](../../core/dr-types/src/lib.rs#L307), [`platform/dr-plat/src/storage.rs:1`](../../platform/dr-plat/src/storage.rs#L1), [`platform/dr-plat/src/storage.rs:216`](../../platform/dr-plat/src/storage.rs#L216), [`ui/dr-ui/src/activity.rs:1`](../../ui/dr-ui/src/activity.rs#L1), [`ui/dr-ui/src/library/mod.rs:1`](../../ui/dr-ui/src/library/mod.rs#L1) | +| FR-CAT-1 | [`core/dr-catalog/src/scan.rs:1`](../../core/dr-catalog/src/scan.rs#L1), [`core/dr-catalog/src/walk.rs:108`](../../core/dr-catalog/src/walk.rs#L108), [`core/dr-catalog/src/walk.rs:161`](../../core/dr-catalog/src/walk.rs#L161), [`core/dr-catalog/src/walk.rs:1`](../../core/dr-catalog/src/walk.rs#L1), [`core/dr-sync/src/scan.rs:129`](../../core/dr-sync/src/scan.rs#L129), [`core/dr-types/src/lib.rs:206`](../../core/dr-types/src/lib.rs#L206), [`core/dr-types/src/lib.rs:275`](../../core/dr-types/src/lib.rs#L275), [`core/dr-types/src/lib.rs:308`](../../core/dr-types/src/lib.rs#L308), [`platform/dr-plat/src/storage.rs:1`](../../platform/dr-plat/src/storage.rs#L1), [`platform/dr-plat/src/storage.rs:216`](../../platform/dr-plat/src/storage.rs#L216), [`ui/dr-ui/src/activity.rs:1`](../../ui/dr-ui/src/activity.rs#L1), [`ui/dr-ui/src/library/mod.rs:1`](../../ui/dr-ui/src/library/mod.rs#L1) | | FR-CAT-10 | [`core/dr-ingest/src/layout.rs:1`](../../core/dr-ingest/src/layout.rs#L1), [`core/dr-ingest/src/lib.rs:1`](../../core/dr-ingest/src/lib.rs#L1), [`core/dr-ingest/src/lib.rs:733`](../../core/dr-ingest/src/lib.rs#L733), [`core/dr-types/src/settings.rs:377`](../../core/dr-types/src/settings.rs#L377), [`platform/dr-plat/src/storage.rs:287`](../../platform/dr-plat/src/storage.rs#L287), [`platform/dr-plat/src/storage.rs:586`](../../platform/dr-plat/src/storage.rs#L586), [`platform/dr-plat/src/volumes.rs:1`](../../platform/dr-plat/src/volumes.rs#L1), [`platform/dr-plat/src/volumes.rs:62`](../../platform/dr-plat/src/volumes.rs#L62), [`ui/dr-ui/src/cards.rs:1`](../../ui/dr-ui/src/cards.rs#L1), [`ui/dr-ui/src/import.rs:1`](../../ui/dr-ui/src/import.rs#L1), [`ui/dr-ui/src/import.rs:345`](../../ui/dr-ui/src/import.rs#L345), [`ui/dr-ui/src/import_ui.rs:1`](../../ui/dr-ui/src/import_ui.rs#L1), [`ui/dr-ui/src/lib.rs:1911`](../../ui/dr-ui/src/lib.rs#L1911), [`ui/dr-ui/ui/import.slint:6`](../../ui/dr-ui/ui/import.slint#L6), [`ui/dr-ui/ui/library.slint:1370`](../../ui/dr-ui/ui/library.slint#L1370), [`ui/dr-ui/ui/library.slint:1424`](../../ui/dr-ui/ui/library.slint#L1424), [`ui/dr-ui/ui/library.slint:1686`](../../ui/dr-ui/ui/library.slint#L1686) | | FR-CAT-11 | [`core/dr-catalog/src/dedup.rs:1`](../../core/dr-catalog/src/dedup.rs#L1), [`core/dr-ingest/src/lib.rs:1`](../../core/dr-ingest/src/lib.rs#L1), [`core/dr-ingest/src/lib.rs:392`](../../core/dr-ingest/src/lib.rs#L392), [`core/dr-sync/src/upload.rs:40`](../../core/dr-sync/src/upload.rs#L40), [`ui/dr-ui/src/import.rs:1`](../../ui/dr-ui/src/import.rs#L1), [`ui/dr-ui/src/import_ui.rs:1`](../../ui/dr-ui/src/import_ui.rs#L1), [`ui/dr-ui/src/lib.rs:1911`](../../ui/dr-ui/src/lib.rs#L1911), [`ui/dr-ui/src/library/filters.rs:12`](../../ui/dr-ui/src/library/filters.rs#L12), [`ui/dr-ui/src/library/thumbnails_gen.rs:526`](../../ui/dr-ui/src/library/thumbnails_gen.rs#L526), [`ui/dr-ui/ui/import.slint:6`](../../ui/dr-ui/ui/import.slint#L6) | | FR-CAT-11a | [`core/dr-catalog/src/duplicates.rs:1`](../../core/dr-catalog/src/duplicates.rs#L1), [`core/dr-catalog/src/error.rs:110`](../../core/dr-catalog/src/error.rs#L110), [`core/dr-catalog/src/faces.rs:1662`](../../core/dr-catalog/src/faces.rs#L1662), [`core/dr-catalog/src/faces.rs:1680`](../../core/dr-catalog/src/faces.rs#L1680), [`ui/dr-ui/src/duplicates.rs:1`](../../ui/dr-ui/src/duplicates.rs#L1), [`ui/dr-ui/src/duplicates_ui.rs:1`](../../ui/dr-ui/src/duplicates_ui.rs#L1), [`ui/dr-ui/src/duplicates_ui.rs:79`](../../ui/dr-ui/src/duplicates_ui.rs#L79), [`ui/dr-ui/src/lib.rs:1941`](../../ui/dr-ui/src/lib.rs#L1941), [`ui/dr-ui/src/lib.rs:3573`](../../ui/dr-ui/src/lib.rs#L3573), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:671`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L671), [`ui/dr-ui/ui/app.slint:83`](../../ui/dr-ui/ui/app.slint#L83), [`ui/dr-ui/ui/collections.slint:897`](../../ui/dr-ui/ui/collections.slint#L897), [`ui/dr-ui/ui/duplicates.slint:1`](../../ui/dr-ui/ui/duplicates.slint#L1), [`ui/dr-ui/ui/settings.slint:108`](../../ui/dr-ui/ui/settings.slint#L108), [`ui/dr-ui/ui/settings.slint:512`](../../ui/dr-ui/ui/settings.slint#L512) | | FR-CAT-12 | [`core/dr-pipeline/src/sidecar.rs:140`](../../core/dr-pipeline/src/sidecar.rs#L140) | | FR-CAT-13 | [`core/dr-catalog/src/rating.rs:276`](../../core/dr-catalog/src/rating.rs#L276), [`core/dr-catalog/src/schema.rs:875`](../../core/dr-catalog/src/schema.rs#L875), [`core/dr-sync/src/scan.rs:40`](../../core/dr-sync/src/scan.rs#L40), [`core/dr-sync/src/scan.rs:944`](../../core/dr-sync/src/scan.rs#L944), [`core/dr-types/src/settings.rs:92`](../../core/dr-types/src/settings.rs#L92), [`core/dr-xmp/src/lib.rs:1`](../../core/dr-xmp/src/lib.rs#L1), [`core/dr-xmp/src/lib.rs:331`](../../core/dr-xmp/src/lib.rs#L331), [`core/dr-xmp/src/lib.rs:442`](../../core/dr-xmp/src/lib.rs#L442), [`core/dr-xmp/src/lib.rs:535`](../../core/dr-xmp/src/lib.rs#L535), [`core/dr-xmp/src/lib.rs:733`](../../core/dr-xmp/src/lib.rs#L733), [`core/dr-xmp/src/lib.rs:746`](../../core/dr-xmp/src/lib.rs#L746), [`core/dr-xmp/src/read.rs:1`](../../core/dr-xmp/src/read.rs#L1), [`core/dr-xmp/src/write.rs:1`](../../core/dr-xmp/src/write.rs#L1), [`core/dr-xmp/tests/round_trip.rs:1`](../../core/dr-xmp/tests/round_trip.rs#L1), [`ui/dr-ui/src/library/scan.rs:336`](../../ui/dr-ui/src/library/scan.rs#L336), [`ui/dr-ui/src/library/xmp.rs:10`](../../ui/dr-ui/src/library/xmp.rs#L10), [`ui/dr-ui/src/library/xmp.rs:133`](../../ui/dr-ui/src/library/xmp.rs#L133), [`ui/dr-ui/src/library/xmp.rs:26`](../../ui/dr-ui/src/library/xmp.rs#L26), [`ui/dr-ui/src/library_ui/controller.rs:336`](../../ui/dr-ui/src/library_ui/controller.rs#L336), [`ui/dr-ui/src/library_ui/controller.rs:427`](../../ui/dr-ui/src/library_ui/controller.rs#L427), [`ui/dr-ui/src/library_ui/controller.rs:578`](../../ui/dr-ui/src/library_ui/controller.rs#L578), [`ui/dr-ui/src/library_ui/grid.rs:216`](../../ui/dr-ui/src/library_ui/grid.rs#L216), [`ui/dr-ui/src/library_ui/open.rs:502`](../../ui/dr-ui/src/library_ui/open.rs#L502), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:118`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L118), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:671`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L671), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:700`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L700), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:756`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L756), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:855`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L855), [`ui/dr-ui/src/settings_ui.rs:524`](../../ui/dr-ui/src/settings_ui.rs#L524), [`ui/dr-ui/src/xmp_sync.rs:1`](../../ui/dr-ui/src/xmp_sync.rs#L1), [`ui/dr-ui/src/xmp_sync.rs:250`](../../ui/dr-ui/src/xmp_sync.rs#L250), [`ui/dr-ui/src/xmp_sync.rs:287`](../../ui/dr-ui/src/xmp_sync.rs#L287), [`ui/dr-ui/src/xmp_sync.rs:324`](../../ui/dr-ui/src/xmp_sync.rs#L324), [`ui/dr-ui/ui/app.slint:664`](../../ui/dr-ui/ui/app.slint#L664), [`ui/dr-ui/ui/settings.slint:210`](../../ui/dr-ui/ui/settings.slint#L210), [`ui/dr-ui/ui/settings.slint:989`](../../ui/dr-ui/ui/settings.slint#L989) | | FR-CAT-15 | [`core/dr-catalog/src/schema.rs:1249`](../../core/dr-catalog/src/schema.rs#L1249), [`core/dr-catalog/src/trash.rs:1`](../../core/dr-catalog/src/trash.rs#L1), [`core/dr-sync-nextcloud/src/lib.rs:549`](../../core/dr-sync-nextcloud/src/lib.rs#L549), [`core/dr-sync/src/lib.rs:155`](../../core/dr-sync/src/lib.rs#L155), [`core/dr-sync/src/scan.rs:618`](../../core/dr-sync/src/scan.rs#L618), [`core/dr-sync/src/scan.rs:93`](../../core/dr-sync/src/scan.rs#L93), [`core/dr-thumbs/src/lib.rs:440`](../../core/dr-thumbs/src/lib.rs#L440), [`core/dr-types/src/place.rs:91`](../../core/dr-types/src/place.rs#L91), [`ui/dr-ui/src/collections_ui/trash.rs:84`](../../ui/dr-ui/src/collections_ui/trash.rs#L84), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:819`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L819), [`ui/dr-ui/src/duplicates.rs:1`](../../ui/dr-ui/src/duplicates.rs#L1), [`ui/dr-ui/src/duplicates_ui.rs:1`](../../ui/dr-ui/src/duplicates_ui.rs#L1), [`ui/dr-ui/src/library/cells.rs:154`](../../ui/dr-ui/src/library/cells.rs#L154), [`ui/dr-ui/src/library/cells.rs:188`](../../ui/dr-ui/src/library/cells.rs#L188), [`ui/dr-ui/src/library/filters.rs:12`](../../ui/dr-ui/src/library/filters.rs#L12), [`ui/dr-ui/src/library/filters.rs:29`](../../ui/dr-ui/src/library/filters.rs#L29), [`ui/dr-ui/src/library/filters.rs:59`](../../ui/dr-ui/src/library/filters.rs#L59), [`ui/dr-ui/src/library_ui/controller.rs:1025`](../../ui/dr-ui/src/library_ui/controller.rs#L1025), [`ui/dr-ui/src/library_ui/controller.rs:272`](../../ui/dr-ui/src/library_ui/controller.rs#L272), [`ui/dr-ui/src/trash.rs:1`](../../ui/dr-ui/src/trash.rs#L1), [`ui/dr-ui/ui/collections.slint:1283`](../../ui/dr-ui/ui/collections.slint#L1283), [`ui/dr-ui/ui/collections.slint:802`](../../ui/dr-ui/ui/collections.slint#L802), [`ui/dr-ui/ui/duplicates.slint:1`](../../ui/dr-ui/ui/duplicates.slint#L1) | -| FR-CAT-1a | [`core/dr-catalog/src/walk.rs:1`](../../core/dr-catalog/src/walk.rs#L1), [`core/dr-types/src/lib.rs:58`](../../core/dr-types/src/lib.rs#L58), [`platform/dr-plat/src/storage.rs:1`](../../platform/dr-plat/src/storage.rs#L1), [`platform/dr-plat/src/storage.rs:216`](../../platform/dr-plat/src/storage.rs#L216), [`platform/dr-plat/src/storage.rs:46`](../../platform/dr-plat/src/storage.rs#L46) | +| FR-CAT-1a | [`core/dr-catalog/src/walk.rs:1`](../../core/dr-catalog/src/walk.rs#L1), [`core/dr-types/src/lib.rs:59`](../../core/dr-types/src/lib.rs#L59), [`platform/dr-plat/src/storage.rs:1`](../../platform/dr-plat/src/storage.rs#L1), [`platform/dr-plat/src/storage.rs:216`](../../platform/dr-plat/src/storage.rs#L216), [`platform/dr-plat/src/storage.rs:46`](../../platform/dr-plat/src/storage.rs#L46) | | FR-CAT-2 | [`core/dr-catalog/src/lib.rs:1`](../../core/dr-catalog/src/lib.rs#L1), [`core/dr-catalog/src/schema.rs:1`](../../core/dr-catalog/src/schema.rs#L1) | | FR-CAT-3 | [`core/dr-catalog/src/jobs.rs:1`](../../core/dr-catalog/src/jobs.rs#L1), [`core/dr-catalog/src/walk.rs:65`](../../core/dr-catalog/src/walk.rs#L65), [`core/dr-sync/src/scan.rs:105`](../../core/dr-sync/src/scan.rs#L105), [`core/dr-thumbs/src/codec.rs:1`](../../core/dr-thumbs/src/codec.rs#L1), [`core/dr-thumbs/src/lib.rs:1`](../../core/dr-thumbs/src/lib.rs#L1), [`ui/dr-ui/src/derived_sync.rs:1`](../../ui/dr-ui/src/derived_sync.rs#L1), [`ui/dr-ui/src/import.rs:473`](../../ui/dr-ui/src/import.rs#L473), [`ui/dr-ui/src/import.rs:503`](../../ui/dr-ui/src/import.rs#L503), [`ui/dr-ui/src/library/sweep.rs:590`](../../ui/dr-ui/src/library/sweep.rs#L590), [`ui/dr-ui/src/library_ui/controller.rs:206`](../../ui/dr-ui/src/library_ui/controller.rs#L206), [`ui/dr-ui/src/library_ui/grid.rs:582`](../../ui/dr-ui/src/library_ui/grid.rs#L582), [`ui/dr-ui/src/library_ui/sync.rs:377`](../../ui/dr-ui/src/library_ui/sync.rs#L377), [`ui/dr-ui/src/repairs.rs:1`](../../ui/dr-ui/src/repairs.rs#L1), [`ui/dr-ui/src/repairs.rs:696`](../../ui/dr-ui/src/repairs.rs#L696), [`ui/dr-ui/ui/library.slint:495`](../../ui/dr-ui/ui/library.slint#L495), [`ui/dr-ui/ui/library.slint:803`](../../ui/dr-ui/ui/library.slint#L803), [`ui/dr-ui/ui/settings.slint:375`](../../ui/dr-ui/ui/settings.slint#L375), [`ui/dr-ui/ui/settings.slint:74`](../../ui/dr-ui/ui/settings.slint#L74) | | FR-CAT-4 | [`core/dr-catalog/src/lib.rs:1`](../../core/dr-catalog/src/lib.rs#L1), [`core/dr-catalog/src/query.rs:1`](../../core/dr-catalog/src/query.rs#L1), [`core/dr-catalog/src/schema.rs:603`](../../core/dr-catalog/src/schema.rs#L603), [`ui/dr-ui/src/library/filters.rs:39`](../../ui/dr-ui/src/library/filters.rs#L39), [`ui/dr-ui/src/library/mod.rs:1`](../../ui/dr-ui/src/library/mod.rs#L1), [`ui/dr-ui/src/library_ui/layout.rs:1`](../../ui/dr-ui/src/library_ui/layout.rs#L1), [`ui/dr-ui/src/library_ui/mod.rs:1`](../../ui/dr-ui/src/library_ui/mod.rs#L1), [`ui/dr-ui/ui/library.slint:495`](../../ui/dr-ui/ui/library.slint#L495) | -| FR-CAT-5 | [`core/dr-catalog/src/keywords.rs:1`](../../core/dr-catalog/src/keywords.rs#L1), [`core/dr-catalog/src/merge.rs:1`](../../core/dr-catalog/src/merge.rs#L1), [`core/dr-catalog/src/name_dates.rs:1`](../../core/dr-catalog/src/name_dates.rs#L1), [`core/dr-catalog/src/rating.rs:1`](../../core/dr-catalog/src/rating.rs#L1), [`core/dr-catalog/src/rating.rs:396`](../../core/dr-catalog/src/rating.rs#L396), [`core/dr-catalog/src/rating.rs:411`](../../core/dr-catalog/src/rating.rs#L411), [`core/dr-catalog/src/rating.rs:422`](../../core/dr-catalog/src/rating.rs#L422), [`core/dr-catalog/src/rating.rs:449`](../../core/dr-catalog/src/rating.rs#L449), [`core/dr-catalog/src/rating.rs:52`](../../core/dr-catalog/src/rating.rs#L52), [`core/dr-catalog/src/rating.rs:827`](../../core/dr-catalog/src/rating.rs#L827), [`core/dr-catalog/src/rating.rs:851`](../../core/dr-catalog/src/rating.rs#L851), [`core/dr-catalog/src/rating.rs:870`](../../core/dr-catalog/src/rating.rs#L870), [`core/dr-catalog/src/schema.rs:1164`](../../core/dr-catalog/src/schema.rs#L1164), [`core/dr-catalog/src/schema.rs:1751`](../../core/dr-catalog/src/schema.rs#L1751), [`core/dr-catalog/src/schema.rs:359`](../../core/dr-catalog/src/schema.rs#L359), [`core/dr-decode/src/lib.rs:302`](../../core/dr-decode/src/lib.rs#L302), [`core/dr-decode/src/lib.rs:308`](../../core/dr-decode/src/lib.rs#L308), [`core/dr-decode/src/lib.rs:318`](../../core/dr-decode/src/lib.rs#L318), [`core/dr-decode/src/lib.rs:445`](../../core/dr-decode/src/lib.rs#L445), [`core/dr-export/src/dng.rs:308`](../../core/dr-export/src/dng.rs#L308), [`core/dr-pipeline/src/sidecar.rs:1093`](../../core/dr-pipeline/src/sidecar.rs#L1093), [`core/dr-pipeline/src/sidecar.rs:174`](../../core/dr-pipeline/src/sidecar.rs#L174), [`core/dr-pipeline/src/sidecar.rs:193`](../../core/dr-pipeline/src/sidecar.rs#L193), [`core/dr-pipeline/src/sidecar.rs:2876`](../../core/dr-pipeline/src/sidecar.rs#L2876), [`core/dr-pipeline/src/sidecar.rs:2894`](../../core/dr-pipeline/src/sidecar.rs#L2894), [`core/dr-pipeline/src/sidecar.rs:590`](../../core/dr-pipeline/src/sidecar.rs#L590), [`ui/dr-ui/src/collections_ui/controller.rs:16`](../../ui/dr-ui/src/collections_ui/controller.rs#L16), [`ui/dr-ui/src/collections_ui/controller.rs:209`](../../ui/dr-ui/src/collections_ui/controller.rs#L209), [`ui/dr-ui/src/collections_ui/controller.rs:418`](../../ui/dr-ui/src/collections_ui/controller.rs#L418), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:150`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L150), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:264`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L264), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:323`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L323), [`ui/dr-ui/src/decoder_seam.rs:184`](../../ui/dr-ui/src/decoder_seam.rs#L184), [`ui/dr-ui/src/library/cells.rs:202`](../../ui/dr-ui/src/library/cells.rs#L202), [`ui/dr-ui/src/library/scan.rs:527`](../../ui/dr-ui/src/library/scan.rs#L527), [`ui/dr-ui/src/library/scan.rs:917`](../../ui/dr-ui/src/library/scan.rs#L917), [`ui/dr-ui/src/library_ui/controller.rs:858`](../../ui/dr-ui/src/library_ui/controller.rs#L858), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1154`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1154), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1178`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1178), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:118`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L118), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1195`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1195), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1401`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1401), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1412`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1412), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1425`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1425), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1440`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1440), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1449`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1449), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:97`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L97), [`ui/dr-ui/tests/status_is_not_colour_alone.rs:177`](../../ui/dr-ui/tests/status_is_not_colour_alone.rs#L177), [`ui/dr-ui/tests/status_is_not_colour_alone.rs:215`](../../ui/dr-ui/tests/status_is_not_colour_alone.rs#L215), [`ui/dr-ui/ui/app.slint:1678`](../../ui/dr-ui/ui/app.slint#L1678), [`ui/dr-ui/ui/app.slint:2877`](../../ui/dr-ui/ui/app.slint#L2877), [`ui/dr-ui/ui/develop.slint:142`](../../ui/dr-ui/ui/develop.slint#L142), [`ui/dr-ui/ui/develop.slint:48`](../../ui/dr-ui/ui/develop.slint#L48), [`ui/dr-ui/ui/labels.slint:19`](../../ui/dr-ui/ui/labels.slint#L19), [`ui/dr-ui/ui/labels.slint:1`](../../ui/dr-ui/ui/labels.slint#L1), [`ui/dr-ui/ui/labels.slint:40`](../../ui/dr-ui/ui/labels.slint#L40), [`ui/dr-ui/ui/labels.slint:74`](../../ui/dr-ui/ui/labels.slint#L74), [`ui/dr-ui/ui/library.slint:1640`](../../ui/dr-ui/ui/library.slint#L1640), [`ui/dr-ui/ui/library.slint:1643`](../../ui/dr-ui/ui/library.slint#L1643), [`ui/dr-ui/ui/library.slint:1794`](../../ui/dr-ui/ui/library.slint#L1794), [`ui/dr-ui/ui/library.slint:1818`](../../ui/dr-ui/ui/library.slint#L1818), [`ui/dr-ui/ui/library.slint:1875`](../../ui/dr-ui/ui/library.slint#L1875), [`ui/dr-ui/ui/library.slint:21`](../../ui/dr-ui/ui/library.slint#L21), [`ui/dr-ui/ui/library.slint:3235`](../../ui/dr-ui/ui/library.slint#L3235), [`ui/dr-ui/ui/library.slint:3242`](../../ui/dr-ui/ui/library.slint#L3242), [`ui/dr-ui/ui/library.slint:3262`](../../ui/dr-ui/ui/library.slint#L3262), [`ui/dr-ui/ui/library.slint:3351`](../../ui/dr-ui/ui/library.slint#L3351), [`ui/dr-ui/ui/library.slint:3967`](../../ui/dr-ui/ui/library.slint#L3967), [`ui/dr-ui/ui/library.slint:467`](../../ui/dr-ui/ui/library.slint#L467), [`ui/dr-ui/ui/library.slint:495`](../../ui/dr-ui/ui/library.slint#L495), [`ui/dr-ui/ui/library.slint:5095`](../../ui/dr-ui/ui/library.slint#L5095), [`ui/dr-ui/ui/library.slint:5111`](../../ui/dr-ui/ui/library.slint#L5111), [`ui/dr-ui/ui/library.slint:522`](../../ui/dr-ui/ui/library.slint#L522), [`ui/dr-ui/ui/library.slint:643`](../../ui/dr-ui/ui/library.slint#L643), [`ui/dr-ui/ui/library.slint:687`](../../ui/dr-ui/ui/library.slint#L687), [`ui/dr-ui/ui/library.slint:693`](../../ui/dr-ui/ui/library.slint#L693), [`ui/dr-ui/ui/library.slint:697`](../../ui/dr-ui/ui/library.slint#L697) | +| FR-CAT-5 | [`core/dr-catalog/src/keywords.rs:1`](../../core/dr-catalog/src/keywords.rs#L1), [`core/dr-catalog/src/merge.rs:1`](../../core/dr-catalog/src/merge.rs#L1), [`core/dr-catalog/src/name_dates.rs:1`](../../core/dr-catalog/src/name_dates.rs#L1), [`core/dr-catalog/src/rating.rs:1`](../../core/dr-catalog/src/rating.rs#L1), [`core/dr-catalog/src/rating.rs:396`](../../core/dr-catalog/src/rating.rs#L396), [`core/dr-catalog/src/rating.rs:411`](../../core/dr-catalog/src/rating.rs#L411), [`core/dr-catalog/src/rating.rs:422`](../../core/dr-catalog/src/rating.rs#L422), [`core/dr-catalog/src/rating.rs:449`](../../core/dr-catalog/src/rating.rs#L449), [`core/dr-catalog/src/rating.rs:52`](../../core/dr-catalog/src/rating.rs#L52), [`core/dr-catalog/src/rating.rs:827`](../../core/dr-catalog/src/rating.rs#L827), [`core/dr-catalog/src/rating.rs:851`](../../core/dr-catalog/src/rating.rs#L851), [`core/dr-catalog/src/rating.rs:870`](../../core/dr-catalog/src/rating.rs#L870), [`core/dr-catalog/src/schema.rs:1164`](../../core/dr-catalog/src/schema.rs#L1164), [`core/dr-catalog/src/schema.rs:1751`](../../core/dr-catalog/src/schema.rs#L1751), [`core/dr-catalog/src/schema.rs:359`](../../core/dr-catalog/src/schema.rs#L359), [`core/dr-decode/src/lib.rs:308`](../../core/dr-decode/src/lib.rs#L308), [`core/dr-decode/src/lib.rs:314`](../../core/dr-decode/src/lib.rs#L314), [`core/dr-decode/src/lib.rs:324`](../../core/dr-decode/src/lib.rs#L324), [`core/dr-decode/src/lib.rs:451`](../../core/dr-decode/src/lib.rs#L451), [`core/dr-export/src/dng.rs:308`](../../core/dr-export/src/dng.rs#L308), [`core/dr-pipeline/src/sidecar.rs:1093`](../../core/dr-pipeline/src/sidecar.rs#L1093), [`core/dr-pipeline/src/sidecar.rs:174`](../../core/dr-pipeline/src/sidecar.rs#L174), [`core/dr-pipeline/src/sidecar.rs:193`](../../core/dr-pipeline/src/sidecar.rs#L193), [`core/dr-pipeline/src/sidecar.rs:2876`](../../core/dr-pipeline/src/sidecar.rs#L2876), [`core/dr-pipeline/src/sidecar.rs:2894`](../../core/dr-pipeline/src/sidecar.rs#L2894), [`core/dr-pipeline/src/sidecar.rs:590`](../../core/dr-pipeline/src/sidecar.rs#L590), [`ui/dr-ui/src/collections_ui/controller.rs:16`](../../ui/dr-ui/src/collections_ui/controller.rs#L16), [`ui/dr-ui/src/collections_ui/controller.rs:209`](../../ui/dr-ui/src/collections_ui/controller.rs#L209), [`ui/dr-ui/src/collections_ui/controller.rs:418`](../../ui/dr-ui/src/collections_ui/controller.rs#L418), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:150`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L150), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:264`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L264), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:323`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L323), [`ui/dr-ui/src/decoder_seam.rs:185`](../../ui/dr-ui/src/decoder_seam.rs#L185), [`ui/dr-ui/src/library/cells.rs:202`](../../ui/dr-ui/src/library/cells.rs#L202), [`ui/dr-ui/src/library/scan.rs:527`](../../ui/dr-ui/src/library/scan.rs#L527), [`ui/dr-ui/src/library/scan.rs:917`](../../ui/dr-ui/src/library/scan.rs#L917), [`ui/dr-ui/src/library_ui/controller.rs:858`](../../ui/dr-ui/src/library_ui/controller.rs#L858), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1154`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1154), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1178`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1178), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:118`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L118), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1195`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1195), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1401`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1401), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1412`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1412), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1425`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1425), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1440`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1440), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1449`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1449), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:97`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L97), [`ui/dr-ui/tests/status_is_not_colour_alone.rs:177`](../../ui/dr-ui/tests/status_is_not_colour_alone.rs#L177), [`ui/dr-ui/tests/status_is_not_colour_alone.rs:215`](../../ui/dr-ui/tests/status_is_not_colour_alone.rs#L215), [`ui/dr-ui/ui/app.slint:1678`](../../ui/dr-ui/ui/app.slint#L1678), [`ui/dr-ui/ui/app.slint:2877`](../../ui/dr-ui/ui/app.slint#L2877), [`ui/dr-ui/ui/develop.slint:142`](../../ui/dr-ui/ui/develop.slint#L142), [`ui/dr-ui/ui/develop.slint:48`](../../ui/dr-ui/ui/develop.slint#L48), [`ui/dr-ui/ui/labels.slint:19`](../../ui/dr-ui/ui/labels.slint#L19), [`ui/dr-ui/ui/labels.slint:1`](../../ui/dr-ui/ui/labels.slint#L1), [`ui/dr-ui/ui/labels.slint:40`](../../ui/dr-ui/ui/labels.slint#L40), [`ui/dr-ui/ui/labels.slint:74`](../../ui/dr-ui/ui/labels.slint#L74), [`ui/dr-ui/ui/library.slint:1640`](../../ui/dr-ui/ui/library.slint#L1640), [`ui/dr-ui/ui/library.slint:1643`](../../ui/dr-ui/ui/library.slint#L1643), [`ui/dr-ui/ui/library.slint:1794`](../../ui/dr-ui/ui/library.slint#L1794), [`ui/dr-ui/ui/library.slint:1818`](../../ui/dr-ui/ui/library.slint#L1818), [`ui/dr-ui/ui/library.slint:1875`](../../ui/dr-ui/ui/library.slint#L1875), [`ui/dr-ui/ui/library.slint:21`](../../ui/dr-ui/ui/library.slint#L21), [`ui/dr-ui/ui/library.slint:3235`](../../ui/dr-ui/ui/library.slint#L3235), [`ui/dr-ui/ui/library.slint:3242`](../../ui/dr-ui/ui/library.slint#L3242), [`ui/dr-ui/ui/library.slint:3262`](../../ui/dr-ui/ui/library.slint#L3262), [`ui/dr-ui/ui/library.slint:3351`](../../ui/dr-ui/ui/library.slint#L3351), [`ui/dr-ui/ui/library.slint:3967`](../../ui/dr-ui/ui/library.slint#L3967), [`ui/dr-ui/ui/library.slint:467`](../../ui/dr-ui/ui/library.slint#L467), [`ui/dr-ui/ui/library.slint:495`](../../ui/dr-ui/ui/library.slint#L495), [`ui/dr-ui/ui/library.slint:5095`](../../ui/dr-ui/ui/library.slint#L5095), [`ui/dr-ui/ui/library.slint:5111`](../../ui/dr-ui/ui/library.slint#L5111), [`ui/dr-ui/ui/library.slint:522`](../../ui/dr-ui/ui/library.slint#L522), [`ui/dr-ui/ui/library.slint:643`](../../ui/dr-ui/ui/library.slint#L643), [`ui/dr-ui/ui/library.slint:687`](../../ui/dr-ui/ui/library.slint#L687), [`ui/dr-ui/ui/library.slint:693`](../../ui/dr-ui/ui/library.slint#L693), [`ui/dr-ui/ui/library.slint:697`](../../ui/dr-ui/ui/library.slint#L697) | | FR-CAT-6 | [`core/dr-catalog/src/collections.rs:1`](../../core/dr-catalog/src/collections.rs#L1), [`core/dr-catalog/src/keywords.rs:1`](../../core/dr-catalog/src/keywords.rs#L1), [`core/dr-catalog/src/lib.rs:1`](../../core/dr-catalog/src/lib.rs#L1), [`core/dr-catalog/src/query.rs:1`](../../core/dr-catalog/src/query.rs#L1), [`core/dr-catalog/src/rating.rs:1`](../../core/dr-catalog/src/rating.rs#L1), [`core/dr-catalog/src/rating.rs:449`](../../core/dr-catalog/src/rating.rs#L449), [`core/dr-catalog/src/rating.rs:880`](../../core/dr-catalog/src/rating.rs#L880), [`core/dr-catalog/src/schema.rs:1164`](../../core/dr-catalog/src/schema.rs#L1164), [`core/dr-types/src/place.rs:138`](../../core/dr-types/src/place.rs#L138), [`core/dr-types/src/place.rs:1`](../../core/dr-types/src/place.rs#L1), [`core/dr-types/src/selector.rs:1`](../../core/dr-types/src/selector.rs#L1), [`core/dr-types/src/settings.rs:64`](../../core/dr-types/src/settings.rs#L64), [`core/dr-types/src/time.rs:67`](../../core/dr-types/src/time.rs#L67), [`core/dr-types/src/time.rs:90`](../../core/dr-types/src/time.rs#L90), [`ui/dr-ui/src/library/filters.rs:156`](../../ui/dr-ui/src/library/filters.rs#L156), [`ui/dr-ui/src/library/filters.rs:357`](../../ui/dr-ui/src/library/filters.rs#L357), [`ui/dr-ui/src/library/filters.rs:442`](../../ui/dr-ui/src/library/filters.rs#L442), [`ui/dr-ui/src/library/filters.rs:64`](../../ui/dr-ui/src/library/filters.rs#L64), [`ui/dr-ui/src/library/spans.rs:262`](../../ui/dr-ui/src/library/spans.rs#L262), [`ui/dr-ui/src/library_ui/controller.rs:431`](../../ui/dr-ui/src/library_ui/controller.rs#L431), [`ui/dr-ui/src/library_ui/controller.rs:546`](../../ui/dr-ui/src/library_ui/controller.rs#L546), [`ui/dr-ui/src/library_ui/filter_bar.rs:256`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L256), [`ui/dr-ui/src/library_ui/filter_bar.rs:351`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L351), [`ui/dr-ui/src/library_ui/filter_bar.rs:406`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L406), [`ui/dr-ui/src/library_ui/filter_bar.rs:841`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L841), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:85`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L85), [`ui/dr-ui/ui/app.slint:660`](../../ui/dr-ui/ui/app.slint#L660), [`ui/dr-ui/ui/library.slint:113`](../../ui/dr-ui/ui/library.slint#L113), [`ui/dr-ui/ui/library.slint:1962`](../../ui/dr-ui/ui/library.slint#L1962), [`ui/dr-ui/ui/library.slint:1999`](../../ui/dr-ui/ui/library.slint#L1999), [`ui/dr-ui/ui/library.slint:2736`](../../ui/dr-ui/ui/library.slint#L2736), [`ui/dr-ui/ui/library.slint:3262`](../../ui/dr-ui/ui/library.slint#L3262), [`ui/dr-ui/ui/library.slint:495`](../../ui/dr-ui/ui/library.slint#L495), [`ui/dr-ui/ui/library.slint:5095`](../../ui/dr-ui/ui/library.slint#L5095), [`ui/dr-ui/ui/library.slint:643`](../../ui/dr-ui/ui/library.slint#L643), [`ui/dr-ui/ui/library.slint:701`](../../ui/dr-ui/ui/library.slint#L701), [`ui/dr-ui/ui/library.slint:723`](../../ui/dr-ui/ui/library.slint#L723), [`ui/dr-ui/ui/settings.slint:202`](../../ui/dr-ui/ui/settings.slint#L202), [`ui/dr-ui/ui/widgets.slint:271`](../../ui/dr-ui/ui/widgets.slint#L271) | | FR-CAT-7 | [`core/dr-catalog/src/albums.rs:1`](../../core/dr-catalog/src/albums.rs#L1), [`core/dr-catalog/src/collections.rs:1`](../../core/dr-catalog/src/collections.rs#L1), [`core/dr-catalog/src/dedup_people.rs:1`](../../core/dr-catalog/src/dedup_people.rs#L1), [`core/dr-catalog/src/merge.rs:1`](../../core/dr-catalog/src/merge.rs#L1), [`core/dr-catalog/src/sync.rs:1`](../../core/dr-catalog/src/sync.rs#L1), [`core/dr-types/src/selector.rs:1`](../../core/dr-types/src/selector.rs#L1), [`ui/dr-ui/src/collections_ui/controller.rs:263`](../../ui/dr-ui/src/collections_ui/controller.rs#L263), [`ui/dr-ui/src/collections_ui/controller.rs:273`](../../ui/dr-ui/src/collections_ui/controller.rs#L273), [`ui/dr-ui/src/collections_ui/controller.rs:296`](../../ui/dr-ui/src/collections_ui/controller.rs#L296), [`ui/dr-ui/src/collections_ui/controller.rs:317`](../../ui/dr-ui/src/collections_ui/controller.rs#L317), [`ui/dr-ui/src/collections_ui/controller.rs:46`](../../ui/dr-ui/src/collections_ui/controller.rs#L46), [`ui/dr-ui/src/collections_ui/drag.rs:274`](../../ui/dr-ui/src/collections_ui/drag.rs#L274), [`ui/dr-ui/src/collections_ui/mod.rs:1`](../../ui/dr-ui/src/collections_ui/mod.rs#L1), [`ui/dr-ui/src/collections_ui/press.rs:258`](../../ui/dr-ui/src/collections_ui/press.rs#L258), [`ui/dr-ui/src/collections_ui/press.rs:490`](../../ui/dr-ui/src/collections_ui/press.rs#L490), [`ui/dr-ui/src/collections_ui/press.rs:54`](../../ui/dr-ui/src/collections_ui/press.rs#L54), [`ui/dr-ui/src/collections_ui/rename_menu.rs:196`](../../ui/dr-ui/src/collections_ui/rename_menu.rs#L196), [`ui/dr-ui/src/collections_ui/rename_menu.rs:21`](../../ui/dr-ui/src/collections_ui/rename_menu.rs#L21), [`ui/dr-ui/src/collections_ui/tree_sync.rs:251`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L251), [`ui/dr-ui/src/collections_ui/tree_sync.rs:322`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L322), [`ui/dr-ui/src/collections_ui/tree_sync.rs:344`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L344), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:121`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L121), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:171`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L171), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:444`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L444), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:522`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L522), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:586`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L586), [`ui/dr-ui/src/collections_ui/wiring_tree.rs:287`](../../ui/dr-ui/src/collections_ui/wiring_tree.rs#L287), [`ui/dr-ui/src/collections_ui/wiring_tree.rs:344`](../../ui/dr-ui/src/collections_ui/wiring_tree.rs#L344), [`ui/dr-ui/src/collections_ui/wiring_tree.rs:394`](../../ui/dr-ui/src/collections_ui/wiring_tree.rs#L394), [`ui/dr-ui/src/collections_ui/wiring_tree.rs:517`](../../ui/dr-ui/src/collections_ui/wiring_tree.rs#L517), [`ui/dr-ui/src/collections_ui/wiring_tree.rs:581`](../../ui/dr-ui/src/collections_ui/wiring_tree.rs#L581), [`ui/dr-ui/src/derived_sync.rs:1`](../../ui/dr-ui/src/derived_sync.rs#L1), [`ui/dr-ui/src/library/spans.rs:131`](../../ui/dr-ui/src/library/spans.rs#L131), [`ui/dr-ui/src/library/spans.rs:50`](../../ui/dr-ui/src/library/spans.rs#L50), [`ui/dr-ui/src/library/spans.rs:76`](../../ui/dr-ui/src/library/spans.rs#L76), [`ui/dr-ui/src/library_ui/sync.rs:220`](../../ui/dr-ui/src/library_ui/sync.rs#L220), [`ui/dr-ui/src/library_ui/timeline.rs:510`](../../ui/dr-ui/src/library_ui/timeline.rs#L510), [`ui/dr-ui/src/library_ui/window.rs:388`](../../ui/dr-ui/src/library_ui/window.rs#L388), [`ui/dr-ui/src/library_ui/window.rs:424`](../../ui/dr-ui/src/library_ui/window.rs#L424), [`ui/dr-ui/ui/app.slint:3572`](../../ui/dr-ui/ui/app.slint#L3572), [`ui/dr-ui/ui/collections.slint:1283`](../../ui/dr-ui/ui/collections.slint#L1283), [`ui/dr-ui/ui/collections.slint:4`](../../ui/dr-ui/ui/collections.slint#L4), [`ui/dr-ui/ui/collections.slint:616`](../../ui/dr-ui/ui/collections.slint#L616), [`ui/dr-ui/ui/library.slint:1389`](../../ui/dr-ui/ui/library.slint#L1389), [`ui/dr-ui/ui/library.slint:1760`](../../ui/dr-ui/ui/library.slint#L1760), [`ui/dr-ui/ui/library.slint:3716`](../../ui/dr-ui/ui/library.slint#L3716), [`ui/dr-ui/ui/library.slint:495`](../../ui/dr-ui/ui/library.slint#L495), [`ui/dr-ui/ui/library.slint:5073`](../../ui/dr-ui/ui/library.slint#L5073), [`ui/dr-ui/ui/library.slint:5215`](../../ui/dr-ui/ui/library.slint#L5215), [`ui/dr-ui/ui/library.slint:525`](../../ui/dr-ui/ui/library.slint#L525), [`ui/dr-ui/ui/library.slint:581`](../../ui/dr-ui/ui/library.slint#L581), [`ui/dr-ui/ui/library.slint:591`](../../ui/dr-ui/ui/library.slint#L591) | | FR-CAT-8 | [`core/dr-catalog/src/schema.rs:779`](../../core/dr-catalog/src/schema.rs#L779), [`core/dr-pipeline/src/coverage.rs:1`](../../core/dr-pipeline/src/coverage.rs#L1), [`core/dr-pipeline/src/graph.rs:708`](../../core/dr-pipeline/src/graph.rs#L708), [`core/dr-pipeline/src/graph.rs:768`](../../core/dr-pipeline/src/graph.rs#L768), [`core/dr-pipeline/src/ops/curve.rs:137`](../../core/dr-pipeline/src/ops/curve.rs#L137), [`core/dr-pipeline/src/ops/curve.rs:690`](../../core/dr-pipeline/src/ops/curve.rs#L690), [`core/dr-pipeline/src/sidecar.rs:1433`](../../core/dr-pipeline/src/sidecar.rs#L1433), [`core/dr-pipeline/src/sidecar.rs:2275`](../../core/dr-pipeline/src/sidecar.rs#L2275), [`core/dr-pipeline/src/sidecar.rs:99`](../../core/dr-pipeline/src/sidecar.rs#L99), [`core/dr-pipeline/src/state.rs:1`](../../core/dr-pipeline/src/state.rs#L1), [`core/dr-pipeline/src/state.rs:75`](../../core/dr-pipeline/src/state.rs#L75), [`core/dr-pipeline/tests/tone_curve.rs:34`](../../core/dr-pipeline/tests/tone_curve.rs#L34), [`core/dr-sync/src/scan.rs:31`](../../core/dr-sync/src/scan.rs#L31), [`core/dr-sync/src/scan.rs:56`](../../core/dr-sync/src/scan.rs#L56), [`core/dr-sync/src/scan.rs:926`](../../core/dr-sync/src/scan.rs#L926), [`ui/dr-ui/src/develop/mask_ops.rs:1076`](../../ui/dr-ui/src/develop/mask_ops.rs#L1076), [`ui/dr-ui/src/develop/mask_ops.rs:1130`](../../ui/dr-ui/src/develop/mask_ops.rs#L1130), [`ui/dr-ui/src/develop/mask_ops.rs:178`](../../ui/dr-ui/src/develop/mask_ops.rs#L178), [`ui/dr-ui/src/develop/masks.rs:743`](../../ui/dr-ui/src/develop/masks.rs#L743), [`ui/dr-ui/src/develop/session.rs:705`](../../ui/dr-ui/src/develop/session.rs#L705), [`ui/dr-ui/src/develop/session.rs:739`](../../ui/dr-ui/src/develop/session.rs#L739), [`ui/dr-ui/src/export.rs:1312`](../../ui/dr-ui/src/export.rs#L1312), [`ui/dr-ui/src/lib.rs:1239`](../../ui/dr-ui/src/lib.rs#L1239), [`ui/dr-ui/src/lib.rs:1300`](../../ui/dr-ui/src/lib.rs#L1300), [`ui/dr-ui/src/lib.rs:2769`](../../ui/dr-ui/src/lib.rs#L2769), [`ui/dr-ui/src/lib.rs:2975`](../../ui/dr-ui/src/lib.rs#L2975), [`ui/dr-ui/src/lib.rs:806`](../../ui/dr-ui/src/lib.rs#L806), [`ui/dr-ui/src/library/scan.rs:227`](../../ui/dr-ui/src/library/scan.rs#L227), [`ui/dr-ui/src/library/scan.rs:262`](../../ui/dr-ui/src/library/scan.rs#L262), [`ui/dr-ui/src/library/scan.rs:35`](../../ui/dr-ui/src/library/scan.rs#L35), [`ui/dr-ui/src/library/sidecar.rs:103`](../../ui/dr-ui/src/library/sidecar.rs#L103), [`ui/dr-ui/src/library/sidecar.rs:12`](../../ui/dr-ui/src/library/sidecar.rs#L12), [`ui/dr-ui/src/library/sidecar.rs:381`](../../ui/dr-ui/src/library/sidecar.rs#L381), [`ui/dr-ui/src/library/sidecar.rs:66`](../../ui/dr-ui/src/library/sidecar.rs#L66), [`ui/dr-ui/src/library/thumbnails_fetch.rs:414`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L414), [`ui/dr-ui/src/library_ui/grid.rs:825`](../../ui/dr-ui/src/library_ui/grid.rs#L825), [`ui/dr-ui/src/library_ui/open.rs:519`](../../ui/dr-ui/src/library_ui/open.rs#L519), [`ui/dr-ui/src/sidecar_cache.rs:1`](../../ui/dr-ui/src/sidecar_cache.rs#L1) | -| FR-CAT-9 | [`core/dr-catalog/src/cache.rs:1`](../../core/dr-catalog/src/cache.rs#L1), [`core/dr-catalog/src/scan.rs:1`](../../core/dr-catalog/src/scan.rs#L1), [`core/dr-catalog/src/schema.rs:1221`](../../core/dr-catalog/src/schema.rs#L1221), [`core/dr-catalog/src/walk.rs:1000`](../../core/dr-catalog/src/walk.rs#L1000), [`core/dr-catalog/src/walk.rs:161`](../../core/dr-catalog/src/walk.rs#L161), [`core/dr-catalog/src/walk.rs:1`](../../core/dr-catalog/src/walk.rs#L1), [`core/dr-catalog/src/walk.rs:432`](../../core/dr-catalog/src/walk.rs#L432), [`core/dr-catalog/src/walk.rs:695`](../../core/dr-catalog/src/walk.rs#L695), [`core/dr-sync-nextcloud/src/desktop_client.rs:35`](../../core/dr-sync-nextcloud/src/desktop_client.rs#L35), [`core/dr-sync/src/error.rs:113`](../../core/dr-sync/src/error.rs#L113), [`core/dr-sync/src/reachability.rs:1`](../../core/dr-sync/src/reachability.rs#L1), [`core/dr-sync/src/scan.rs:211`](../../core/dr-sync/src/scan.rs#L211), [`core/dr-sync/src/scan.rs:519`](../../core/dr-sync/src/scan.rs#L519), [`core/dr-types/src/lib.rs:124`](../../core/dr-types/src/lib.rs#L124), [`ui/dr-ui/src/develop/render.rs:723`](../../ui/dr-ui/src/develop/render.rs#L723), [`ui/dr-ui/src/develop/render.rs:815`](../../ui/dr-ui/src/develop/render.rs#L815), [`ui/dr-ui/src/library/filters.rs:89`](../../ui/dr-ui/src/library/filters.rs#L89), [`ui/dr-ui/src/library/scan.rs:127`](../../ui/dr-ui/src/library/scan.rs#L127), [`ui/dr-ui/src/library/scan.rs:180`](../../ui/dr-ui/src/library/scan.rs#L180), [`ui/dr-ui/src/library/scan.rs:211`](../../ui/dr-ui/src/library/scan.rs#L211), [`ui/dr-ui/src/library/scan.rs:262`](../../ui/dr-ui/src/library/scan.rs#L262), [`ui/dr-ui/src/library/scan.rs:636`](../../ui/dr-ui/src/library/scan.rs#L636), [`ui/dr-ui/src/library/sidecar.rs:103`](../../ui/dr-ui/src/library/sidecar.rs#L103), [`ui/dr-ui/src/library/sidecar.rs:365`](../../ui/dr-ui/src/library/sidecar.rs#L365), [`ui/dr-ui/src/library/sidecar.rs:381`](../../ui/dr-ui/src/library/sidecar.rs#L381), [`ui/dr-ui/src/library/sidecar.rs:435`](../../ui/dr-ui/src/library/sidecar.rs#L435), [`ui/dr-ui/src/library/spans.rs:378`](../../ui/dr-ui/src/library/spans.rs#L378), [`ui/dr-ui/src/library/thumbnails_fetch.rs:394`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L394), [`ui/dr-ui/src/library/thumbnails_fetch.rs:450`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L450), [`ui/dr-ui/src/library/thumbnails_gen.rs:75`](../../ui/dr-ui/src/library/thumbnails_gen.rs#L75), [`ui/dr-ui/src/library_ui/controller.rs:319`](../../ui/dr-ui/src/library_ui/controller.rs#L319), [`ui/dr-ui/src/library_ui/controller.rs:355`](../../ui/dr-ui/src/library_ui/controller.rs#L355), [`ui/dr-ui/src/library_ui/controller.rs:363`](../../ui/dr-ui/src/library_ui/controller.rs#L363), [`ui/dr-ui/src/library_ui/controller.rs:614`](../../ui/dr-ui/src/library_ui/controller.rs#L614), [`ui/dr-ui/src/library_ui/controller.rs:731`](../../ui/dr-ui/src/library_ui/controller.rs#L731), [`ui/dr-ui/src/library_ui/filter_bar.rs:461`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L461), [`ui/dr-ui/src/library_ui/filter_bar.rs:547`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L547), [`ui/dr-ui/src/library_ui/offline.rs:561`](../../ui/dr-ui/src/library_ui/offline.rs#L561), [`ui/dr-ui/src/library_ui/offline.rs:607`](../../ui/dr-ui/src/library_ui/offline.rs#L607), [`ui/dr-ui/src/library_ui/offline.rs:623`](../../ui/dr-ui/src/library_ui/offline.rs#L623), [`ui/dr-ui/src/library_ui/open.rs:599`](../../ui/dr-ui/src/library_ui/open.rs#L599), [`ui/dr-ui/src/library_ui/open.rs:679`](../../ui/dr-ui/src/library_ui/open.rs#L679), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:75`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L75), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:890`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L890), [`ui/dr-ui/src/library_ui/sync.rs:272`](../../ui/dr-ui/src/library_ui/sync.rs#L272), [`ui/dr-ui/src/library_ui/sync.rs:406`](../../ui/dr-ui/src/library_ui/sync.rs#L406), [`ui/dr-ui/src/library_ui/sync.rs:84`](../../ui/dr-ui/src/library_ui/sync.rs#L84), [`ui/dr-ui/src/library_ui/window.rs:1107`](../../ui/dr-ui/src/library_ui/window.rs#L1107), [`ui/dr-ui/src/library_ui/window.rs:823`](../../ui/dr-ui/src/library_ui/window.rs#L823), [`ui/dr-ui/src/presets.rs:486`](../../ui/dr-ui/src/presets.rs#L486), [`ui/dr-ui/src/presets.rs:498`](../../ui/dr-ui/src/presets.rs#L498), [`ui/dr-ui/src/sidecar_cache.rs:1`](../../ui/dr-ui/src/sidecar_cache.rs#L1), [`ui/dr-ui/tests/export_ignores_the_viewport.rs:1`](../../ui/dr-ui/tests/export_ignores_the_viewport.rs#L1) | +| FR-CAT-9 | [`core/dr-catalog/src/cache.rs:1`](../../core/dr-catalog/src/cache.rs#L1), [`core/dr-catalog/src/scan.rs:1`](../../core/dr-catalog/src/scan.rs#L1), [`core/dr-catalog/src/schema.rs:1221`](../../core/dr-catalog/src/schema.rs#L1221), [`core/dr-catalog/src/walk.rs:1000`](../../core/dr-catalog/src/walk.rs#L1000), [`core/dr-catalog/src/walk.rs:161`](../../core/dr-catalog/src/walk.rs#L161), [`core/dr-catalog/src/walk.rs:1`](../../core/dr-catalog/src/walk.rs#L1), [`core/dr-catalog/src/walk.rs:432`](../../core/dr-catalog/src/walk.rs#L432), [`core/dr-catalog/src/walk.rs:695`](../../core/dr-catalog/src/walk.rs#L695), [`core/dr-sync-nextcloud/src/desktop_client.rs:35`](../../core/dr-sync-nextcloud/src/desktop_client.rs#L35), [`core/dr-sync/src/error.rs:113`](../../core/dr-sync/src/error.rs#L113), [`core/dr-sync/src/reachability.rs:1`](../../core/dr-sync/src/reachability.rs#L1), [`core/dr-sync/src/scan.rs:211`](../../core/dr-sync/src/scan.rs#L211), [`core/dr-sync/src/scan.rs:519`](../../core/dr-sync/src/scan.rs#L519), [`core/dr-types/src/lib.rs:125`](../../core/dr-types/src/lib.rs#L125), [`ui/dr-ui/src/develop/render.rs:723`](../../ui/dr-ui/src/develop/render.rs#L723), [`ui/dr-ui/src/develop/render.rs:815`](../../ui/dr-ui/src/develop/render.rs#L815), [`ui/dr-ui/src/library/filters.rs:89`](../../ui/dr-ui/src/library/filters.rs#L89), [`ui/dr-ui/src/library/scan.rs:127`](../../ui/dr-ui/src/library/scan.rs#L127), [`ui/dr-ui/src/library/scan.rs:180`](../../ui/dr-ui/src/library/scan.rs#L180), [`ui/dr-ui/src/library/scan.rs:211`](../../ui/dr-ui/src/library/scan.rs#L211), [`ui/dr-ui/src/library/scan.rs:262`](../../ui/dr-ui/src/library/scan.rs#L262), [`ui/dr-ui/src/library/scan.rs:636`](../../ui/dr-ui/src/library/scan.rs#L636), [`ui/dr-ui/src/library/sidecar.rs:103`](../../ui/dr-ui/src/library/sidecar.rs#L103), [`ui/dr-ui/src/library/sidecar.rs:365`](../../ui/dr-ui/src/library/sidecar.rs#L365), [`ui/dr-ui/src/library/sidecar.rs:381`](../../ui/dr-ui/src/library/sidecar.rs#L381), [`ui/dr-ui/src/library/sidecar.rs:435`](../../ui/dr-ui/src/library/sidecar.rs#L435), [`ui/dr-ui/src/library/spans.rs:378`](../../ui/dr-ui/src/library/spans.rs#L378), [`ui/dr-ui/src/library/thumbnails_fetch.rs:394`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L394), [`ui/dr-ui/src/library/thumbnails_fetch.rs:450`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L450), [`ui/dr-ui/src/library/thumbnails_gen.rs:75`](../../ui/dr-ui/src/library/thumbnails_gen.rs#L75), [`ui/dr-ui/src/library_ui/controller.rs:319`](../../ui/dr-ui/src/library_ui/controller.rs#L319), [`ui/dr-ui/src/library_ui/controller.rs:355`](../../ui/dr-ui/src/library_ui/controller.rs#L355), [`ui/dr-ui/src/library_ui/controller.rs:363`](../../ui/dr-ui/src/library_ui/controller.rs#L363), [`ui/dr-ui/src/library_ui/controller.rs:614`](../../ui/dr-ui/src/library_ui/controller.rs#L614), [`ui/dr-ui/src/library_ui/controller.rs:731`](../../ui/dr-ui/src/library_ui/controller.rs#L731), [`ui/dr-ui/src/library_ui/filter_bar.rs:461`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L461), [`ui/dr-ui/src/library_ui/filter_bar.rs:547`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L547), [`ui/dr-ui/src/library_ui/offline.rs:561`](../../ui/dr-ui/src/library_ui/offline.rs#L561), [`ui/dr-ui/src/library_ui/offline.rs:607`](../../ui/dr-ui/src/library_ui/offline.rs#L607), [`ui/dr-ui/src/library_ui/offline.rs:623`](../../ui/dr-ui/src/library_ui/offline.rs#L623), [`ui/dr-ui/src/library_ui/open.rs:599`](../../ui/dr-ui/src/library_ui/open.rs#L599), [`ui/dr-ui/src/library_ui/open.rs:679`](../../ui/dr-ui/src/library_ui/open.rs#L679), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:75`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L75), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:890`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L890), [`ui/dr-ui/src/library_ui/sync.rs:272`](../../ui/dr-ui/src/library_ui/sync.rs#L272), [`ui/dr-ui/src/library_ui/sync.rs:406`](../../ui/dr-ui/src/library_ui/sync.rs#L406), [`ui/dr-ui/src/library_ui/sync.rs:84`](../../ui/dr-ui/src/library_ui/sync.rs#L84), [`ui/dr-ui/src/library_ui/window.rs:1107`](../../ui/dr-ui/src/library_ui/window.rs#L1107), [`ui/dr-ui/src/library_ui/window.rs:823`](../../ui/dr-ui/src/library_ui/window.rs#L823), [`ui/dr-ui/src/presets.rs:486`](../../ui/dr-ui/src/presets.rs#L486), [`ui/dr-ui/src/presets.rs:498`](../../ui/dr-ui/src/presets.rs#L498), [`ui/dr-ui/src/sidecar_cache.rs:1`](../../ui/dr-ui/src/sidecar_cache.rs#L1), [`ui/dr-ui/tests/export_ignores_the_viewport.rs:1`](../../ui/dr-ui/tests/export_ignores_the_viewport.rs#L1) | | FR-CULL-1 | [`core/dr-decode/src/preview.rs:121`](../../core/dr-decode/src/preview.rs#L121) | | FR-CULL-10 | [`core/dr-catalog/src/dedup_people.rs:1`](../../core/dr-catalog/src/dedup_people.rs#L1), [`core/dr-catalog/src/faces.rs:1662`](../../core/dr-catalog/src/faces.rs#L1662), [`core/dr-catalog/src/faces.rs:1680`](../../core/dr-catalog/src/faces.rs#L1680), [`core/dr-catalog/src/faces.rs:1`](../../core/dr-catalog/src/faces.rs#L1), [`core/dr-catalog/src/schema.rs:1050`](../../core/dr-catalog/src/schema.rs#L1050), [`core/dr-catalog/src/schema.rs:642`](../../core/dr-catalog/src/schema.rs#L642), [`core/dr-catalog/src/schema.rs:820`](../../core/dr-catalog/src/schema.rs#L820), [`core/dr-face/src/assign.rs:1`](../../core/dr-face/src/assign.rs#L1), [`core/dr-face/src/neighbours.rs:1`](../../core/dr-face/src/neighbours.rs#L1), [`core/dr-face/src/references.rs:1`](../../core/dr-face/src/references.rs#L1), [`core/dr-types/src/settings.rs:129`](../../core/dr-types/src/settings.rs#L129), [`ui/dr-ui/src/develop/segmentation.rs:104`](../../ui/dr-ui/src/develop/segmentation.rs#L104), [`ui/dr-ui/src/develop/segmentation.rs:170`](../../ui/dr-ui/src/develop/segmentation.rs#L170), [`ui/dr-ui/src/develop/segmentation.rs:590`](../../ui/dr-ui/src/develop/segmentation.rs#L590), [`ui/dr-ui/src/develop/segmentation.rs:95`](../../ui/dr-ui/src/develop/segmentation.rs#L95), [`ui/dr-ui/src/develop/session.rs:23`](../../ui/dr-ui/src/develop/session.rs#L23), [`ui/dr-ui/src/faces.rs:1`](../../ui/dr-ui/src/faces.rs#L1), [`ui/dr-ui/src/identity.rs:1`](../../ui/dr-ui/src/identity.rs#L1), [`ui/dr-ui/src/identity_ui.rs:1472`](../../ui/dr-ui/src/identity_ui.rs#L1472), [`ui/dr-ui/src/identity_ui.rs:1`](../../ui/dr-ui/src/identity_ui.rs#L1), [`ui/dr-ui/src/lib.rs:2947`](../../ui/dr-ui/src/lib.rs#L2947), [`ui/dr-ui/src/repairs.rs:1`](../../ui/dr-ui/src/repairs.rs#L1), [`ui/dr-ui/ui/identity.slint:1`](../../ui/dr-ui/ui/identity.slint#L1), [`ui/dr-ui/ui/settings.slint:469`](../../ui/dr-ui/ui/settings.slint#L469), [`ui/dr-ui/ui/settings.slint:95`](../../ui/dr-ui/ui/settings.slint#L95) | | FR-CULL-11 | [`core/dr-catalog/src/faces.rs:1`](../../core/dr-catalog/src/faces.rs#L1), [`core/dr-catalog/src/schema.rs:1050`](../../core/dr-catalog/src/schema.rs#L1050), [`ui/dr-ui/src/identity.rs:1`](../../ui/dr-ui/src/identity.rs#L1), [`ui/dr-ui/src/identity_ui.rs:1`](../../ui/dr-ui/src/identity_ui.rs#L1), [`ui/dr-ui/src/library/filters.rs:110`](../../ui/dr-ui/src/library/filters.rs#L110), [`ui/dr-ui/src/library/filters.rs:164`](../../ui/dr-ui/src/library/filters.rs#L164), [`ui/dr-ui/ui/identity.slint:1`](../../ui/dr-ui/ui/identity.slint#L1) | | FR-CULL-12 | [`core/dr-catalog/src/dedup_people.rs:1`](../../core/dr-catalog/src/dedup_people.rs#L1), [`core/dr-catalog/src/faces.rs:1`](../../core/dr-catalog/src/faces.rs#L1), [`core/dr-catalog/src/schema.rs:1050`](../../core/dr-catalog/src/schema.rs#L1050), [`core/dr-catalog/src/schema.rs:642`](../../core/dr-catalog/src/schema.rs#L642), [`ui/dr-ui/src/identity.rs:1`](../../ui/dr-ui/src/identity.rs#L1), [`ui/dr-ui/ui/identity.slint:1`](../../ui/dr-ui/ui/identity.slint#L1) | | FR-CULL-13 | [`core/dr-catalog/src/schema.rs:956`](../../core/dr-catalog/src/schema.rs#L956), [`core/dr-types/src/place.rs:133`](../../core/dr-types/src/place.rs#L133), [`tools/traceability/src/verdicts.rs:1`](../../tools/traceability/src/verdicts.rs#L1), [`ui/dr-ui/src/identity.rs:104`](../../ui/dr-ui/src/identity.rs#L104), [`ui/dr-ui/src/library/filters.rs:136`](../../ui/dr-ui/src/library/filters.rs#L136), [`ui/dr-ui/src/library/filters.rs:763`](../../ui/dr-ui/src/library/filters.rs#L763), [`ui/dr-ui/src/library/filters.rs:806`](../../ui/dr-ui/src/library/filters.rs#L806), [`ui/dr-ui/src/library/filters.rs:844`](../../ui/dr-ui/src/library/filters.rs#L844), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1085`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1085), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:379`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L379), [`ui/dr-ui/ui/identity.slint:64`](../../ui/dr-ui/ui/identity.slint#L64), [`ui/dr-ui/ui/library.slint:1954`](../../ui/dr-ui/ui/library.slint#L1954), [`ui/dr-ui/ui/library.slint:757`](../../ui/dr-ui/ui/library.slint#L757) | -| FR-CULL-2 | [`core/dr-decode/src/locate.rs:1`](../../core/dr-decode/src/locate.rs#L1), [`core/dr-decode/src/preview.rs:148`](../../core/dr-decode/src/preview.rs#L148), [`ui/dr-ui/src/decoder_seam.rs:215`](../../ui/dr-ui/src/decoder_seam.rs#L215), [`ui/dr-ui/src/import.rs:473`](../../ui/dr-ui/src/import.rs#L473) | -| FR-CULL-3 | [`core/dr-gpu/src/focus.rs:154`](../../core/dr-gpu/src/focus.rs#L154), [`core/dr-gpu/src/focus.rs:186`](../../core/dr-gpu/src/focus.rs#L186), [`core/dr-gpu/src/focus.rs:1`](../../core/dr-gpu/src/focus.rs#L1), [`core/dr-gpu/src/focus.rs:317`](../../core/dr-gpu/src/focus.rs#L317), [`core/dr-gpu/src/raw_histogram.rs:129`](../../core/dr-gpu/src/raw_histogram.rs#L129), [`core/dr-gpu/src/raw_histogram.rs:1`](../../core/dr-gpu/src/raw_histogram.rs#L1), [`core/dr-gpu/src/raw_histogram.rs:272`](../../core/dr-gpu/src/raw_histogram.rs#L272), [`core/dr-gpu/src/raw_histogram.rs:407`](../../core/dr-gpu/src/raw_histogram.rs#L407), [`core/dr-gpu/src/shaders/focus_peak.wgsl:1`](../../core/dr-gpu/src/shaders/focus_peak.wgsl#L1), [`core/dr-gpu/src/shaders/raw_histogram.wgsl:1`](../../core/dr-gpu/src/shaders/raw_histogram.wgsl#L1), [`ui/dr-ui/src/develop/render.rs:1638`](../../ui/dr-ui/src/develop/render.rs#L1638), [`ui/dr-ui/src/develop/render.rs:1702`](../../ui/dr-ui/src/develop/render.rs#L1702), [`ui/dr-ui/src/develop/render.rs:1725`](../../ui/dr-ui/src/develop/render.rs#L1725), [`ui/dr-ui/src/develop/render.rs:410`](../../ui/dr-ui/src/develop/render.rs#L410), [`ui/dr-ui/src/develop/render.rs:423`](../../ui/dr-ui/src/develop/render.rs#L423), [`ui/dr-ui/src/develop/render.rs:468`](../../ui/dr-ui/src/develop/render.rs#L468), [`ui/dr-ui/src/develop/render.rs:479`](../../ui/dr-ui/src/develop/render.rs#L479), [`ui/dr-ui/src/develop/render.rs:485`](../../ui/dr-ui/src/develop/render.rs#L485), [`ui/dr-ui/src/develop/render.rs:502`](../../ui/dr-ui/src/develop/render.rs#L502), [`ui/dr-ui/src/develop/session.rs:145`](../../ui/dr-ui/src/develop/session.rs#L145), [`ui/dr-ui/src/develop/session.rs:165`](../../ui/dr-ui/src/develop/session.rs#L165), [`ui/dr-ui/src/develop/session.rs:171`](../../ui/dr-ui/src/develop/session.rs#L171), [`ui/dr-ui/src/develop_ui.rs:1509`](../../ui/dr-ui/src/develop_ui.rs#L1509), [`ui/dr-ui/src/histogram.rs:1`](../../ui/dr-ui/src/histogram.rs#L1), [`ui/dr-ui/src/histogram.rs:208`](../../ui/dr-ui/src/histogram.rs#L208), [`ui/dr-ui/src/histogram.rs:228`](../../ui/dr-ui/src/histogram.rs#L228), [`ui/dr-ui/src/histogram.rs:272`](../../ui/dr-ui/src/histogram.rs#L272), [`ui/dr-ui/src/histogram.rs:544`](../../ui/dr-ui/src/histogram.rs#L544), [`ui/dr-ui/src/histogram.rs:565`](../../ui/dr-ui/src/histogram.rs#L565), [`ui/dr-ui/src/histogram.rs:593`](../../ui/dr-ui/src/histogram.rs#L593), [`ui/dr-ui/src/histogram.rs:621`](../../ui/dr-ui/src/histogram.rs#L621), [`ui/dr-ui/src/histogram.rs:658`](../../ui/dr-ui/src/histogram.rs#L658), [`ui/dr-ui/src/lib.rs:1329`](../../ui/dr-ui/src/lib.rs#L1329), [`ui/dr-ui/src/lib.rs:2272`](../../ui/dr-ui/src/lib.rs#L2272), [`ui/dr-ui/src/lib.rs:2409`](../../ui/dr-ui/src/lib.rs#L2409), [`ui/dr-ui/src/lib.rs:2452`](../../ui/dr-ui/src/lib.rs#L2452), [`ui/dr-ui/src/lib.rs:492`](../../ui/dr-ui/src/lib.rs#L492), [`ui/dr-ui/src/peaking.rs:1`](../../ui/dr-ui/src/peaking.rs#L1), [`ui/dr-ui/ui/app.slint:182`](../../ui/dr-ui/ui/app.slint#L182), [`ui/dr-ui/ui/app.slint:1933`](../../ui/dr-ui/ui/app.slint#L1933), [`ui/dr-ui/ui/app.slint:3344`](../../ui/dr-ui/ui/app.slint#L3344), [`ui/dr-ui/ui/peaking.slint:1`](../../ui/dr-ui/ui/peaking.slint#L1), [`ui/dr-ui/ui/peaking.slint:25`](../../ui/dr-ui/ui/peaking.slint#L25), [`ui/dr-ui/ui/peaking.slint:56`](../../ui/dr-ui/ui/peaking.slint#L56), [`ui/dr-ui/ui/peaking.slint:91`](../../ui/dr-ui/ui/peaking.slint#L91) | +| FR-CULL-2 | [`core/dr-decode/src/locate.rs:1`](../../core/dr-decode/src/locate.rs#L1), [`core/dr-decode/src/preview.rs:148`](../../core/dr-decode/src/preview.rs#L148), [`ui/dr-ui/src/decoder_seam.rs:216`](../../ui/dr-ui/src/decoder_seam.rs#L216), [`ui/dr-ui/src/import.rs:473`](../../ui/dr-ui/src/import.rs#L473) | +| FR-CULL-3 | [`core/dr-gpu/src/focus.rs:154`](../../core/dr-gpu/src/focus.rs#L154), [`core/dr-gpu/src/focus.rs:186`](../../core/dr-gpu/src/focus.rs#L186), [`core/dr-gpu/src/focus.rs:1`](../../core/dr-gpu/src/focus.rs#L1), [`core/dr-gpu/src/focus.rs:317`](../../core/dr-gpu/src/focus.rs#L317), [`core/dr-gpu/src/raw_histogram.rs:129`](../../core/dr-gpu/src/raw_histogram.rs#L129), [`core/dr-gpu/src/raw_histogram.rs:1`](../../core/dr-gpu/src/raw_histogram.rs#L1), [`core/dr-gpu/src/raw_histogram.rs:272`](../../core/dr-gpu/src/raw_histogram.rs#L272), [`core/dr-gpu/src/raw_histogram.rs:407`](../../core/dr-gpu/src/raw_histogram.rs#L407), [`core/dr-gpu/src/shaders/focus_peak.wgsl:1`](../../core/dr-gpu/src/shaders/focus_peak.wgsl#L1), [`core/dr-gpu/src/shaders/raw_histogram.wgsl:1`](../../core/dr-gpu/src/shaders/raw_histogram.wgsl#L1), [`ui/dr-ui/src/develop/render.rs:1639`](../../ui/dr-ui/src/develop/render.rs#L1639), [`ui/dr-ui/src/develop/render.rs:1703`](../../ui/dr-ui/src/develop/render.rs#L1703), [`ui/dr-ui/src/develop/render.rs:1726`](../../ui/dr-ui/src/develop/render.rs#L1726), [`ui/dr-ui/src/develop/render.rs:410`](../../ui/dr-ui/src/develop/render.rs#L410), [`ui/dr-ui/src/develop/render.rs:423`](../../ui/dr-ui/src/develop/render.rs#L423), [`ui/dr-ui/src/develop/render.rs:468`](../../ui/dr-ui/src/develop/render.rs#L468), [`ui/dr-ui/src/develop/render.rs:479`](../../ui/dr-ui/src/develop/render.rs#L479), [`ui/dr-ui/src/develop/render.rs:485`](../../ui/dr-ui/src/develop/render.rs#L485), [`ui/dr-ui/src/develop/render.rs:502`](../../ui/dr-ui/src/develop/render.rs#L502), [`ui/dr-ui/src/develop/session.rs:145`](../../ui/dr-ui/src/develop/session.rs#L145), [`ui/dr-ui/src/develop/session.rs:165`](../../ui/dr-ui/src/develop/session.rs#L165), [`ui/dr-ui/src/develop/session.rs:171`](../../ui/dr-ui/src/develop/session.rs#L171), [`ui/dr-ui/src/develop_ui.rs:1509`](../../ui/dr-ui/src/develop_ui.rs#L1509), [`ui/dr-ui/src/histogram.rs:1`](../../ui/dr-ui/src/histogram.rs#L1), [`ui/dr-ui/src/histogram.rs:208`](../../ui/dr-ui/src/histogram.rs#L208), [`ui/dr-ui/src/histogram.rs:228`](../../ui/dr-ui/src/histogram.rs#L228), [`ui/dr-ui/src/histogram.rs:272`](../../ui/dr-ui/src/histogram.rs#L272), [`ui/dr-ui/src/histogram.rs:544`](../../ui/dr-ui/src/histogram.rs#L544), [`ui/dr-ui/src/histogram.rs:565`](../../ui/dr-ui/src/histogram.rs#L565), [`ui/dr-ui/src/histogram.rs:593`](../../ui/dr-ui/src/histogram.rs#L593), [`ui/dr-ui/src/histogram.rs:621`](../../ui/dr-ui/src/histogram.rs#L621), [`ui/dr-ui/src/histogram.rs:658`](../../ui/dr-ui/src/histogram.rs#L658), [`ui/dr-ui/src/lib.rs:1329`](../../ui/dr-ui/src/lib.rs#L1329), [`ui/dr-ui/src/lib.rs:2272`](../../ui/dr-ui/src/lib.rs#L2272), [`ui/dr-ui/src/lib.rs:2409`](../../ui/dr-ui/src/lib.rs#L2409), [`ui/dr-ui/src/lib.rs:2452`](../../ui/dr-ui/src/lib.rs#L2452), [`ui/dr-ui/src/lib.rs:492`](../../ui/dr-ui/src/lib.rs#L492), [`ui/dr-ui/src/peaking.rs:1`](../../ui/dr-ui/src/peaking.rs#L1), [`ui/dr-ui/ui/app.slint:182`](../../ui/dr-ui/ui/app.slint#L182), [`ui/dr-ui/ui/app.slint:1933`](../../ui/dr-ui/ui/app.slint#L1933), [`ui/dr-ui/ui/app.slint:3344`](../../ui/dr-ui/ui/app.slint#L3344), [`ui/dr-ui/ui/peaking.slint:1`](../../ui/dr-ui/ui/peaking.slint#L1), [`ui/dr-ui/ui/peaking.slint:25`](../../ui/dr-ui/ui/peaking.slint#L25), [`ui/dr-ui/ui/peaking.slint:56`](../../ui/dr-ui/ui/peaking.slint#L56), [`ui/dr-ui/ui/peaking.slint:91`](../../ui/dr-ui/ui/peaking.slint#L91) | | FR-CULL-4 | [`core/dr-catalog/src/rating.rs:1`](../../core/dr-catalog/src/rating.rs#L1), [`core/dr-pipeline/src/sidecar.rs:174`](../../core/dr-pipeline/src/sidecar.rs#L174), [`core/dr-xmp/src/lib.rs:442`](../../core/dr-xmp/src/lib.rs#L442), [`ui/dr-ui/src/library/filters.rs:64`](../../ui/dr-ui/src/library/filters.rs#L64), [`ui/dr-ui/src/library/sidecar.rs:12`](../../ui/dr-ui/src/library/sidecar.rs#L12), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1035`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1035), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1311`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1311), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:464`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L464), [`ui/dr-ui/ui/app.slint:1686`](../../ui/dr-ui/ui/app.slint#L1686), [`ui/dr-ui/ui/app.slint:2846`](../../ui/dr-ui/ui/app.slint#L2846), [`ui/dr-ui/ui/develop.slint:168`](../../ui/dr-ui/ui/develop.slint#L168), [`ui/dr-ui/ui/develop.slint:55`](../../ui/dr-ui/ui/develop.slint#L55), [`ui/dr-ui/ui/library.slint:1066`](../../ui/dr-ui/ui/library.slint#L1066), [`ui/dr-ui/ui/library.slint:1649`](../../ui/dr-ui/ui/library.slint#L1649), [`ui/dr-ui/ui/library.slint:495`](../../ui/dr-ui/ui/library.slint#L495), [`ui/dr-ui/ui/library.slint:5128`](../../ui/dr-ui/ui/library.slint#L5128), [`ui/dr-ui/ui/library.slint:669`](../../ui/dr-ui/ui/library.slint#L669) | | FR-CULL-5 | [`core/dr-catalog/src/bursts.rs:1`](../../core/dr-catalog/src/bursts.rs#L1), [`core/dr-catalog/src/schema.rs:685`](../../core/dr-catalog/src/schema.rs#L685), [`ui/dr-ui/src/bursts.rs:1`](../../ui/dr-ui/src/bursts.rs#L1), [`ui/dr-ui/src/library/cells.rs:21`](../../ui/dr-ui/src/library/cells.rs#L21), [`ui/dr-ui/src/library/cells.rs:872`](../../ui/dr-ui/src/library/cells.rs#L872), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:1085`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L1085), [`ui/dr-ui/ui/library.slint:495`](../../ui/dr-ui/ui/library.slint#L495) | | FR-CULL-8 | [`core/dr-catalog/src/face_shard.rs:1`](../../core/dr-catalog/src/face_shard.rs#L1), [`core/dr-catalog/src/faces.rs:1`](../../core/dr-catalog/src/faces.rs#L1), [`core/dr-catalog/src/schema.rs:1009`](../../core/dr-catalog/src/schema.rs#L1009), [`core/dr-catalog/src/schema.rs:1050`](../../core/dr-catalog/src/schema.rs#L1050), [`core/dr-catalog/src/schema.rs:753`](../../core/dr-catalog/src/schema.rs#L753), [`core/dr-face/src/align.rs:296`](../../core/dr-face/src/align.rs#L296), [`core/dr-types/src/settings.rs:176`](../../core/dr-types/src/settings.rs#L176), [`ui/dr-ui/examples/face_detectors.rs:1`](../../ui/dr-ui/examples/face_detectors.rs#L1), [`ui/dr-ui/examples/face_native.rs:1`](../../ui/dr-ui/examples/face_native.rs#L1), [`ui/dr-ui/src/derived_sync.rs:128`](../../ui/dr-ui/src/derived_sync.rs#L128), [`ui/dr-ui/src/faces.rs:1`](../../ui/dr-ui/src/faces.rs#L1), [`ui/dr-ui/src/faces.rs:447`](../../ui/dr-ui/src/faces.rs#L447), [`ui/dr-ui/src/faces.rs:463`](../../ui/dr-ui/src/faces.rs#L463), [`ui/dr-ui/src/faces.rs:585`](../../ui/dr-ui/src/faces.rs#L585), [`ui/dr-ui/src/identity_ui.rs:1472`](../../ui/dr-ui/src/identity_ui.rs#L1472), [`ui/dr-ui/src/identity_ui.rs:617`](../../ui/dr-ui/src/identity_ui.rs#L617), [`ui/dr-ui/src/lib.rs:1860`](../../ui/dr-ui/src/lib.rs#L1860), [`ui/dr-ui/src/lib.rs:3244`](../../ui/dr-ui/src/lib.rs#L3244), [`ui/dr-ui/src/library/sweep.rs:264`](../../ui/dr-ui/src/library/sweep.rs#L264), [`ui/dr-ui/src/library/sweep.rs:538`](../../ui/dr-ui/src/library/sweep.rs#L538), [`ui/dr-ui/src/library_ui/controller.rs:441`](../../ui/dr-ui/src/library_ui/controller.rs#L441), [`ui/dr-ui/src/library_ui/controller.rs:534`](../../ui/dr-ui/src/library_ui/controller.rs#L534), [`ui/dr-ui/src/repairs.rs:1`](../../ui/dr-ui/src/repairs.rs#L1), [`ui/dr-ui/src/settings_ui.rs:174`](../../ui/dr-ui/src/settings_ui.rs#L174), [`ui/dr-ui/src/settings_ui.rs:537`](../../ui/dr-ui/src/settings_ui.rs#L537), [`ui/dr-ui/ui/app.slint:677`](../../ui/dr-ui/ui/app.slint#L677), [`ui/dr-ui/ui/settings.slint:101`](../../ui/dr-ui/ui/settings.slint#L101), [`ui/dr-ui/ui/settings.slint:407`](../../ui/dr-ui/ui/settings.slint#L407), [`ui/dr-ui/ui/settings.slint:469`](../../ui/dr-ui/ui/settings.slint#L469), [`ui/dr-ui/ui/settings.slint:83`](../../ui/dr-ui/ui/settings.slint#L83), [`ui/dr-ui/ui/settings.slint:95`](../../ui/dr-ui/ui/settings.slint#L95) | @@ -72,48 +72,48 @@ _None._ | FR-DEV-19a | [`core/dr-gpu/src/mask.rs:655`](../../core/dr-gpu/src/mask.rs#L655), [`core/dr-gpu/src/mask.rs:773`](../../core/dr-gpu/src/mask.rs#L773), [`core/dr-gpu/tests/local_adjustments.rs:793`](../../core/dr-gpu/tests/local_adjustments.rs#L793), [`core/dr-gpu/tests/local_adjustments.rs:841`](../../core/dr-gpu/tests/local_adjustments.rs#L841), [`core/dr-pipeline/src/mask.rs:1022`](../../core/dr-pipeline/src/mask.rs#L1022), [`core/dr-pipeline/src/mask.rs:1635`](../../core/dr-pipeline/src/mask.rs#L1635), [`core/dr-pipeline/src/mask.rs:3282`](../../core/dr-pipeline/src/mask.rs#L3282), [`core/dr-pipeline/src/mask.rs:3403`](../../core/dr-pipeline/src/mask.rs#L3403), [`core/dr-pipeline/src/mask.rs:3438`](../../core/dr-pipeline/src/mask.rs#L3438), [`core/dr-pipeline/src/mask.rs:929`](../../core/dr-pipeline/src/mask.rs#L929), [`core/dr-pipeline/src/mask.rs:964`](../../core/dr-pipeline/src/mask.rs#L964), [`core/dr-pipeline/src/sidecar.rs:1259`](../../core/dr-pipeline/src/sidecar.rs#L1259), [`core/dr-pipeline/tests/mask_sidecar.rs:1347`](../../core/dr-pipeline/tests/mask_sidecar.rs#L1347), [`core/dr-pipeline/tests/mask_sidecar.rs:1369`](../../core/dr-pipeline/tests/mask_sidecar.rs#L1369), [`core/dr-pipeline/tests/mask_sidecar.rs:1395`](../../core/dr-pipeline/tests/mask_sidecar.rs#L1395), [`ui/dr-ui/src/develop/masks.rs:432`](../../ui/dr-ui/src/develop/masks.rs#L432), [`ui/dr-ui/src/develop/masks.rs:493`](../../ui/dr-ui/src/develop/masks.rs#L493), [`ui/dr-ui/src/develop/masks.rs:512`](../../ui/dr-ui/src/develop/masks.rs#L512), [`ui/dr-ui/src/develop/masks.rs:547`](../../ui/dr-ui/src/develop/masks.rs#L547), [`ui/dr-ui/src/develop/session.rs:215`](../../ui/dr-ui/src/develop/session.rs#L215), [`ui/dr-ui/src/labels.rs:73`](../../ui/dr-ui/src/labels.rs#L73), [`ui/dr-ui/src/masks_ui.rs:1083`](../../ui/dr-ui/src/masks_ui.rs#L1083), [`ui/dr-ui/src/masks_ui.rs:1140`](../../ui/dr-ui/src/masks_ui.rs#L1140), [`ui/dr-ui/src/masks_ui.rs:1196`](../../ui/dr-ui/src/masks_ui.rs#L1196), [`ui/dr-ui/src/masks_ui.rs:1555`](../../ui/dr-ui/src/masks_ui.rs#L1555), [`ui/dr-ui/src/masks_ui.rs:1578`](../../ui/dr-ui/src/masks_ui.rs#L1578), [`ui/dr-ui/src/masks_ui.rs:270`](../../ui/dr-ui/src/masks_ui.rs#L270), [`ui/dr-ui/ui/app.slint:2694`](../../ui/dr-ui/ui/app.slint#L2694), [`ui/dr-ui/ui/masks.slint:151`](../../ui/dr-ui/ui/masks.slint#L151), [`ui/dr-ui/ui/masks.slint:176`](../../ui/dr-ui/ui/masks.slint#L176), [`ui/dr-ui/ui/masks.slint:339`](../../ui/dr-ui/ui/masks.slint#L339), [`ui/dr-ui/ui/masks.slint:379`](../../ui/dr-ui/ui/masks.slint#L379), [`ui/dr-ui/ui/masks.slint:422`](../../ui/dr-ui/ui/masks.slint#L422), [`ui/dr-ui/ui/masks.slint:468`](../../ui/dr-ui/ui/masks.slint#L468), [`ui/dr-ui/ui/masks.slint:796`](../../ui/dr-ui/ui/masks.slint#L796), [`ui/dr-ui/ui/masks.slint:881`](../../ui/dr-ui/ui/masks.slint#L881) | | FR-DEV-19b | [`ui/dr-ui/src/develop/mask_ops.rs:606`](../../ui/dr-ui/src/develop/mask_ops.rs#L606), [`ui/dr-ui/src/develop/masks.rs:595`](../../ui/dr-ui/src/develop/masks.rs#L595), [`ui/dr-ui/src/develop/session.rs:224`](../../ui/dr-ui/src/develop/session.rs#L224), [`ui/dr-ui/src/develop/session.rs:231`](../../ui/dr-ui/src/develop/session.rs#L231), [`ui/dr-ui/src/labels.rs:67`](../../ui/dr-ui/src/labels.rs#L67), [`ui/dr-ui/src/masks_ui.rs:1229`](../../ui/dr-ui/src/masks_ui.rs#L1229), [`ui/dr-ui/src/masks_ui.rs:1448`](../../ui/dr-ui/src/masks_ui.rs#L1448), [`ui/dr-ui/src/masks_ui.rs:1476`](../../ui/dr-ui/src/masks_ui.rs#L1476), [`ui/dr-ui/src/masks_ui.rs:1849`](../../ui/dr-ui/src/masks_ui.rs#L1849), [`ui/dr-ui/src/masks_ui.rs:908`](../../ui/dr-ui/src/masks_ui.rs#L908), [`ui/dr-ui/ui/app.slint:2229`](../../ui/dr-ui/ui/app.slint#L2229), [`ui/dr-ui/ui/app.slint:861`](../../ui/dr-ui/ui/app.slint#L861), [`ui/dr-ui/ui/masks.slint:1156`](../../ui/dr-ui/ui/masks.slint#L1156), [`ui/dr-ui/ui/masks.slint:479`](../../ui/dr-ui/ui/masks.slint#L479), [`ui/dr-ui/ui/masks.slint:800`](../../ui/dr-ui/ui/masks.slint#L800), [`ui/dr-ui/ui/masks.slint:874`](../../ui/dr-ui/ui/masks.slint#L874), [`ui/dr-ui/ui/masks.slint:894`](../../ui/dr-ui/ui/masks.slint#L894) | | FR-DEV-19c | [`core/dr-gpu/src/mask.rs:727`](../../core/dr-gpu/src/mask.rs#L727), [`core/dr-gpu/tests/local_adjustments.rs:1000`](../../core/dr-gpu/tests/local_adjustments.rs#L1000), [`core/dr-gpu/tests/local_adjustments.rs:1035`](../../core/dr-gpu/tests/local_adjustments.rs#L1035), [`core/dr-gpu/tests/local_adjustments.rs:1080`](../../core/dr-gpu/tests/local_adjustments.rs#L1080), [`core/dr-gpu/tests/local_adjustments.rs:943`](../../core/dr-gpu/tests/local_adjustments.rs#L943), [`core/dr-pipeline/src/graph.rs:1048`](../../core/dr-pipeline/src/graph.rs#L1048), [`core/dr-pipeline/src/mask.rs:1843`](../../core/dr-pipeline/src/mask.rs#L1843), [`core/dr-pipeline/src/mask.rs:1869`](../../core/dr-pipeline/src/mask.rs#L1869), [`core/dr-pipeline/src/mask.rs:1884`](../../core/dr-pipeline/src/mask.rs#L1884), [`core/dr-pipeline/src/mask.rs:2006`](../../core/dr-pipeline/src/mask.rs#L2006), [`core/dr-pipeline/src/mask.rs:2065`](../../core/dr-pipeline/src/mask.rs#L2065), [`core/dr-pipeline/src/mask.rs:2309`](../../core/dr-pipeline/src/mask.rs#L2309), [`core/dr-pipeline/src/mask.rs:2621`](../../core/dr-pipeline/src/mask.rs#L2621), [`core/dr-pipeline/src/operation.rs:1103`](../../core/dr-pipeline/src/operation.rs#L1103), [`core/dr-pipeline/src/operation.rs:2140`](../../core/dr-pipeline/src/operation.rs#L2140), [`core/dr-pipeline/src/operation.rs:738`](../../core/dr-pipeline/src/operation.rs#L738), [`ui/dr-ui/src/develop/mask_ops.rs:1199`](../../ui/dr-ui/src/develop/mask_ops.rs#L1199), [`ui/dr-ui/src/develop/mask_ops.rs:1235`](../../ui/dr-ui/src/develop/mask_ops.rs#L1235), [`ui/dr-ui/src/develop/mask_ops.rs:318`](../../ui/dr-ui/src/develop/mask_ops.rs#L318), [`ui/dr-ui/src/develop/mask_ops.rs:58`](../../ui/dr-ui/src/develop/mask_ops.rs#L58), [`ui/dr-ui/src/develop/masks.rs:12`](../../ui/dr-ui/src/develop/masks.rs#L12), [`ui/dr-ui/src/develop/masks.rs:176`](../../ui/dr-ui/src/develop/masks.rs#L176), [`ui/dr-ui/src/develop/masks.rs:21`](../../ui/dr-ui/src/develop/masks.rs#L21), [`ui/dr-ui/src/develop/masks.rs:43`](../../ui/dr-ui/src/develop/masks.rs#L43), [`ui/dr-ui/src/develop/render.rs:358`](../../ui/dr-ui/src/develop/render.rs#L358), [`ui/dr-ui/src/develop/session.rs:250`](../../ui/dr-ui/src/develop/session.rs#L250), [`ui/dr-ui/src/develop/session.rs:259`](../../ui/dr-ui/src/develop/session.rs#L259), [`ui/dr-ui/src/masks_ui.rs:1024`](../../ui/dr-ui/src/masks_ui.rs#L1024), [`ui/dr-ui/src/masks_ui.rs:1448`](../../ui/dr-ui/src/masks_ui.rs#L1448), [`ui/dr-ui/src/masks_ui.rs:152`](../../ui/dr-ui/src/masks_ui.rs#L152), [`ui/dr-ui/src/masks_ui.rs:1849`](../../ui/dr-ui/src/masks_ui.rs#L1849), [`ui/dr-ui/src/masks_ui.rs:291`](../../ui/dr-ui/src/masks_ui.rs#L291), [`ui/dr-ui/src/masks_ui.rs:317`](../../ui/dr-ui/src/masks_ui.rs#L317), [`ui/dr-ui/src/masks_ui.rs:677`](../../ui/dr-ui/src/masks_ui.rs#L677), [`ui/dr-ui/src/masks_ui.rs:996`](../../ui/dr-ui/src/masks_ui.rs#L996), [`ui/dr-ui/ui/icons.slint:340`](../../ui/dr-ui/ui/icons.slint#L340), [`ui/dr-ui/ui/masks.slint:1121`](../../ui/dr-ui/ui/masks.slint#L1121), [`ui/dr-ui/ui/masks.slint:184`](../../ui/dr-ui/ui/masks.slint#L184), [`ui/dr-ui/ui/masks.slint:294`](../../ui/dr-ui/ui/masks.slint#L294), [`ui/dr-ui/ui/masks.slint:543`](../../ui/dr-ui/ui/masks.slint#L543), [`ui/dr-ui/ui/masks.slint:70`](../../ui/dr-ui/ui/masks.slint#L70), [`ui/dr-ui/ui/masks.slint:808`](../../ui/dr-ui/ui/masks.slint#L808), [`ui/dr-ui/ui/masks.slint:876`](../../ui/dr-ui/ui/masks.slint#L876), [`ui/dr-ui/ui/masks.slint:968`](../../ui/dr-ui/ui/masks.slint#L968) | -| FR-DEV-2 | [`core/dr-gpu/tests/scene_referred.rs:144`](../../core/dr-gpu/tests/scene_referred.rs#L144), [`core/dr-gpu/tests/scene_referred.rs:1`](../../core/dr-gpu/tests/scene_referred.rs#L1), [`core/dr-gpu/tests/view_transform.rs:153`](../../core/dr-gpu/tests/view_transform.rs#L153), [`core/dr-gpu/tests/view_transform.rs:1`](../../core/dr-gpu/tests/view_transform.rs#L1), [`core/dr-gpu/tests/view_transform.rs:89`](../../core/dr-gpu/tests/view_transform.rs#L89), [`core/dr-pipeline/src/declared/decl.rs:279`](../../core/dr-pipeline/src/declared/decl.rs#L279), [`core/dr-pipeline/src/operation.rs:2459`](../../core/dr-pipeline/src/operation.rs#L2459), [`core/dr-pipeline/src/operation.rs:2700`](../../core/dr-pipeline/src/operation.rs#L2700), [`core/dr-pipeline/src/operation.rs:369`](../../core/dr-pipeline/src/operation.rs#L369), [`core/dr-pipeline/src/operation.rs:443`](../../core/dr-pipeline/src/operation.rs#L443), [`core/dr-pipeline/src/operation.rs:463`](../../core/dr-pipeline/src/operation.rs#L463), [`core/dr-pipeline/src/operation.rs:505`](../../core/dr-pipeline/src/operation.rs#L505), [`core/dr-pipeline/src/ops/curve.rs:491`](../../core/dr-pipeline/src/ops/curve.rs#L491), [`core/dr-pipeline/src/view.rs:1`](../../core/dr-pipeline/src/view.rs#L1), [`core/dr-pipeline/src/view.rs:211`](../../core/dr-pipeline/src/view.rs#L211) | -| FR-DEV-20 | [`core/dr-gpu/src/adjust.rs:2336`](../../core/dr-gpu/src/adjust.rs#L2336), [`core/dr-pipeline/src/framing.rs:1377`](../../core/dr-pipeline/src/framing.rs#L1377), [`core/dr-pipeline/src/framing.rs:170`](../../core/dr-pipeline/src/framing.rs#L170), [`core/dr-pipeline/src/framing.rs:401`](../../core/dr-pipeline/src/framing.rs#L401), [`core/dr-pipeline/src/framing.rs:495`](../../core/dr-pipeline/src/framing.rs#L495), [`core/dr-pipeline/src/framing.rs:652`](../../core/dr-pipeline/src/framing.rs#L652), [`core/dr-pipeline/src/framing.rs:663`](../../core/dr-pipeline/src/framing.rs#L663), [`core/dr-pipeline/src/framing.rs:88`](../../core/dr-pipeline/src/framing.rs#L88), [`core/dr-pipeline/src/framing.rs:92`](../../core/dr-pipeline/src/framing.rs#L92), [`core/dr-pipeline/src/framing.rs:938`](../../core/dr-pipeline/src/framing.rs#L938), [`core/dr-pipeline/src/framing.rs:994`](../../core/dr-pipeline/src/framing.rs#L994), [`core/dr-pipeline/src/preset.rs:1001`](../../core/dr-pipeline/src/preset.rs#L1001), [`core/dr-pipeline/src/sidecar.rs:2197`](../../core/dr-pipeline/src/sidecar.rs#L2197), [`ui/dr-ui/src/develop/framing.rs:1185`](../../ui/dr-ui/src/develop/framing.rs#L1185), [`ui/dr-ui/src/develop/framing.rs:418`](../../ui/dr-ui/src/develop/framing.rs#L418), [`ui/dr-ui/src/develop/framing.rs:474`](../../ui/dr-ui/src/develop/framing.rs#L474), [`ui/dr-ui/src/develop/framing.rs:480`](../../ui/dr-ui/src/develop/framing.rs#L480), [`ui/dr-ui/src/develop/framing.rs:489`](../../ui/dr-ui/src/develop/framing.rs#L489), [`ui/dr-ui/src/develop_ui.rs:1390`](../../ui/dr-ui/src/develop_ui.rs#L1390), [`ui/dr-ui/src/develop_ui.rs:1423`](../../ui/dr-ui/src/develop_ui.rs#L1423), [`ui/dr-ui/src/labels.rs:295`](../../ui/dr-ui/src/labels.rs#L295), [`ui/dr-ui/ui/adjust.slint:646`](../../ui/dr-ui/ui/adjust.slint#L646), [`ui/dr-ui/ui/adjust.slint:688`](../../ui/dr-ui/ui/adjust.slint#L688), [`ui/dr-ui/ui/adjust.slint:831`](../../ui/dr-ui/ui/adjust.slint#L831), [`ui/dr-ui/ui/app.slint:2718`](../../ui/dr-ui/ui/app.slint#L2718), [`ui/dr-ui/ui/app.slint:727`](../../ui/dr-ui/ui/app.slint#L727), [`ui/dr-ui/ui/app.slint:750`](../../ui/dr-ui/ui/app.slint#L750) | -| FR-DEV-3 | [`core/dr-gpu/src/adjust.rs:1107`](../../core/dr-gpu/src/adjust.rs#L1107), [`core/dr-gpu/src/adjust.rs:2956`](../../core/dr-gpu/src/adjust.rs#L2956), [`core/dr-gpu/src/adjust.rs:82`](../../core/dr-gpu/src/adjust.rs#L82), [`core/dr-gpu/src/adjust.rs:969`](../../core/dr-gpu/src/adjust.rs#L969), [`core/dr-gpu/tests/tone_curve.rs:1`](../../core/dr-gpu/tests/tone_curve.rs#L1), [`core/dr-pipeline/src/coverage.rs:122`](../../core/dr-pipeline/src/coverage.rs#L122), [`core/dr-pipeline/src/coverage.rs:1`](../../core/dr-pipeline/src/coverage.rs#L1), [`core/dr-pipeline/src/detail.rs:491`](../../core/dr-pipeline/src/detail.rs#L491), [`core/dr-pipeline/src/detail.rs:592`](../../core/dr-pipeline/src/detail.rs#L592), [`core/dr-pipeline/src/framing.rs:1111`](../../core/dr-pipeline/src/framing.rs#L1111), [`core/dr-pipeline/src/framing.rs:251`](../../core/dr-pipeline/src/framing.rs#L251), [`core/dr-pipeline/src/framing.rs:321`](../../core/dr-pipeline/src/framing.rs#L321), [`core/dr-pipeline/src/framing.rs:481`](../../core/dr-pipeline/src/framing.rs#L481), [`core/dr-pipeline/src/framing.rs:717`](../../core/dr-pipeline/src/framing.rs#L717), [`core/dr-pipeline/src/graph.rs:1015`](../../core/dr-pipeline/src/graph.rs#L1015), [`core/dr-pipeline/src/graph.rs:1107`](../../core/dr-pipeline/src/graph.rs#L1107), [`core/dr-pipeline/src/graph.rs:1505`](../../core/dr-pipeline/src/graph.rs#L1505), [`core/dr-pipeline/src/graph.rs:1536`](../../core/dr-pipeline/src/graph.rs#L1536), [`core/dr-pipeline/src/graph.rs:1559`](../../core/dr-pipeline/src/graph.rs#L1559), [`core/dr-pipeline/src/graph.rs:1597`](../../core/dr-pipeline/src/graph.rs#L1597), [`core/dr-pipeline/src/graph.rs:1628`](../../core/dr-pipeline/src/graph.rs#L1628), [`core/dr-pipeline/src/graph.rs:247`](../../core/dr-pipeline/src/graph.rs#L247), [`core/dr-pipeline/src/graph.rs:379`](../../core/dr-pipeline/src/graph.rs#L379), [`core/dr-pipeline/src/graph.rs:437`](../../core/dr-pipeline/src/graph.rs#L437), [`core/dr-pipeline/src/graph.rs:443`](../../core/dr-pipeline/src/graph.rs#L443), [`core/dr-pipeline/src/lens.rs:93`](../../core/dr-pipeline/src/lens.rs#L93), [`core/dr-pipeline/src/mask.rs:205`](../../core/dr-pipeline/src/mask.rs#L205), [`core/dr-pipeline/src/mask.rs:558`](../../core/dr-pipeline/src/mask.rs#L558), [`core/dr-pipeline/src/neutral.rs:1`](../../core/dr-pipeline/src/neutral.rs#L1), [`core/dr-pipeline/src/neutral.rs:306`](../../core/dr-pipeline/src/neutral.rs#L306), [`core/dr-pipeline/src/neutral.rs:322`](../../core/dr-pipeline/src/neutral.rs#L322), [`core/dr-pipeline/src/neutral.rs:338`](../../core/dr-pipeline/src/neutral.rs#L338), [`core/dr-pipeline/src/neutral.rs:360`](../../core/dr-pipeline/src/neutral.rs#L360), [`core/dr-pipeline/src/neutral.rs:81`](../../core/dr-pipeline/src/neutral.rs#L81), [`core/dr-pipeline/src/operation.rs:334`](../../core/dr-pipeline/src/operation.rs#L334), [`core/dr-pipeline/src/operation.rs:377`](../../core/dr-pipeline/src/operation.rs#L377), [`core/dr-pipeline/src/operation.rs:714`](../../core/dr-pipeline/src/operation.rs#L714), [`core/dr-pipeline/src/operation.rs:787`](../../core/dr-pipeline/src/operation.rs#L787), [`core/dr-pipeline/src/operation.rs:969`](../../core/dr-pipeline/src/operation.rs#L969), [`core/dr-pipeline/src/ops/capture_sharpen.rs:1`](../../core/dr-pipeline/src/ops/capture_sharpen.rs#L1), [`core/dr-pipeline/src/ops/capture_sharpen.rs:210`](../../core/dr-pipeline/src/ops/capture_sharpen.rs#L210), [`core/dr-pipeline/src/ops/curve.rs:100`](../../core/dr-pipeline/src/ops/curve.rs#L100), [`core/dr-pipeline/src/ops/curve.rs:1`](../../core/dr-pipeline/src/ops/curve.rs#L1), [`core/dr-pipeline/src/ops/curve.rs:219`](../../core/dr-pipeline/src/ops/curve.rs#L219), [`core/dr-pipeline/src/ops/curve.rs:669`](../../core/dr-pipeline/src/ops/curve.rs#L669), [`core/dr-pipeline/src/ops/local_contrast.rs:1`](../../core/dr-pipeline/src/ops/local_contrast.rs#L1), [`core/dr-pipeline/src/ops/noise_reduction.rs:1`](../../core/dr-pipeline/src/ops/noise_reduction.rs#L1), [`core/dr-pipeline/src/ops/noise_reduction.rs:273`](../../core/dr-pipeline/src/ops/noise_reduction.rs#L273), [`core/dr-pipeline/src/preset.rs:927`](../../core/dr-pipeline/src/preset.rs#L927), [`core/dr-pipeline/src/sidecar.rs:1433`](../../core/dr-pipeline/src/sidecar.rs#L1433), [`core/dr-pipeline/src/sidecar.rs:206`](../../core/dr-pipeline/src/sidecar.rs#L206), [`core/dr-pipeline/src/sidecar.rs:2275`](../../core/dr-pipeline/src/sidecar.rs#L2275), [`core/dr-pipeline/src/sidecar.rs:2355`](../../core/dr-pipeline/src/sidecar.rs#L2355), [`core/dr-pipeline/tests/tone_curve.rs:1`](../../core/dr-pipeline/tests/tone_curve.rs#L1), [`core/dr-segment/src/refine.rs:937`](../../core/dr-segment/src/refine.rs#L937), [`ui/dr-ui/src/develop/curves.rs:163`](../../ui/dr-ui/src/develop/curves.rs#L163), [`ui/dr-ui/src/develop/framing.rs:10`](../../ui/dr-ui/src/develop/framing.rs#L10), [`ui/dr-ui/src/develop/framing.rs:298`](../../ui/dr-ui/src/develop/framing.rs#L298), [`ui/dr-ui/src/develop/framing.rs:328`](../../ui/dr-ui/src/develop/framing.rs#L328), [`ui/dr-ui/src/develop/framing.rs:394`](../../ui/dr-ui/src/develop/framing.rs#L394), [`ui/dr-ui/src/develop/framing.rs:408`](../../ui/dr-ui/src/develop/framing.rs#L408), [`ui/dr-ui/src/develop/framing.rs:690`](../../ui/dr-ui/src/develop/framing.rs#L690), [`ui/dr-ui/src/develop/framing.rs:71`](../../ui/dr-ui/src/develop/framing.rs#L71), [`ui/dr-ui/src/develop/mask_ops.rs:1076`](../../ui/dr-ui/src/develop/mask_ops.rs#L1076), [`ui/dr-ui/src/develop/mask_ops.rs:1340`](../../ui/dr-ui/src/develop/mask_ops.rs#L1340), [`ui/dr-ui/src/develop/mask_ops.rs:178`](../../ui/dr-ui/src/develop/mask_ops.rs#L178), [`ui/dr-ui/src/develop/mask_ops.rs:969`](../../ui/dr-ui/src/develop/mask_ops.rs#L969), [`ui/dr-ui/src/develop/masks.rs:263`](../../ui/dr-ui/src/develop/masks.rs#L263), [`ui/dr-ui/src/develop/masks.rs:361`](../../ui/dr-ui/src/develop/masks.rs#L361), [`ui/dr-ui/src/develop/masks.rs:743`](../../ui/dr-ui/src/develop/masks.rs#L743), [`ui/dr-ui/src/develop/masks.rs:773`](../../ui/dr-ui/src/develop/masks.rs#L773), [`ui/dr-ui/src/develop/render.rs:1390`](../../ui/dr-ui/src/develop/render.rs#L1390), [`ui/dr-ui/src/develop/rows.rs:106`](../../ui/dr-ui/src/develop/rows.rs#L106), [`ui/dr-ui/src/develop/rows.rs:195`](../../ui/dr-ui/src/develop/rows.rs#L195), [`ui/dr-ui/src/develop/rows.rs:231`](../../ui/dr-ui/src/develop/rows.rs#L231), [`ui/dr-ui/src/develop/rows.rs:679`](../../ui/dr-ui/src/develop/rows.rs#L679), [`ui/dr-ui/src/develop/segmentation.rs:139`](../../ui/dr-ui/src/develop/segmentation.rs#L139), [`ui/dr-ui/src/develop/segmentation.rs:302`](../../ui/dr-ui/src/develop/segmentation.rs#L302), [`ui/dr-ui/src/develop/segmentation.rs:339`](../../ui/dr-ui/src/develop/segmentation.rs#L339), [`ui/dr-ui/src/develop/segmentation.rs:572`](../../ui/dr-ui/src/develop/segmentation.rs#L572), [`ui/dr-ui/src/develop/segmentation.rs:590`](../../ui/dr-ui/src/develop/segmentation.rs#L590), [`ui/dr-ui/src/develop/segmentation.rs:604`](../../ui/dr-ui/src/develop/segmentation.rs#L604), [`ui/dr-ui/src/develop/segmentation.rs:626`](../../ui/dr-ui/src/develop/segmentation.rs#L626), [`ui/dr-ui/src/develop/segmentation.rs:77`](../../ui/dr-ui/src/develop/segmentation.rs#L77), [`ui/dr-ui/src/develop/segmentation.rs:806`](../../ui/dr-ui/src/develop/segmentation.rs#L806), [`ui/dr-ui/src/develop/session.rs:185`](../../ui/dr-ui/src/develop/session.rs#L185), [`ui/dr-ui/src/develop/session.rs:278`](../../ui/dr-ui/src/develop/session.rs#L278), [`ui/dr-ui/src/develop/session.rs:307`](../../ui/dr-ui/src/develop/session.rs#L307), [`ui/dr-ui/src/develop/session.rs:505`](../../ui/dr-ui/src/develop/session.rs#L505), [`ui/dr-ui/src/develop/session.rs:565`](../../ui/dr-ui/src/develop/session.rs#L565), [`ui/dr-ui/src/develop/session.rs:705`](../../ui/dr-ui/src/develop/session.rs#L705), [`ui/dr-ui/src/develop/session.rs:961`](../../ui/dr-ui/src/develop/session.rs#L961), [`ui/dr-ui/src/develop/white_balance.rs:11`](../../ui/dr-ui/src/develop/white_balance.rs#L11), [`ui/dr-ui/src/develop/white_balance.rs:162`](../../ui/dr-ui/src/develop/white_balance.rs#L162), [`ui/dr-ui/src/develop/white_balance.rs:193`](../../ui/dr-ui/src/develop/white_balance.rs#L193), [`ui/dr-ui/src/develop/white_balance.rs:276`](../../ui/dr-ui/src/develop/white_balance.rs#L276), [`ui/dr-ui/src/develop/white_balance.rs:338`](../../ui/dr-ui/src/develop/white_balance.rs#L338), [`ui/dr-ui/src/develop_ui.rs:118`](../../ui/dr-ui/src/develop_ui.rs#L118), [`ui/dr-ui/src/develop_ui.rs:1203`](../../ui/dr-ui/src/develop_ui.rs#L1203), [`ui/dr-ui/src/develop_ui.rs:1300`](../../ui/dr-ui/src/develop_ui.rs#L1300), [`ui/dr-ui/src/develop_ui.rs:1354`](../../ui/dr-ui/src/develop_ui.rs#L1354), [`ui/dr-ui/src/develop_ui.rs:601`](../../ui/dr-ui/src/develop_ui.rs#L601), [`ui/dr-ui/src/develop_ui.rs:821`](../../ui/dr-ui/src/develop_ui.rs#L821), [`ui/dr-ui/src/labels.rs:35`](../../ui/dr-ui/src/labels.rs#L35), [`ui/dr-ui/src/lib.rs:2253`](../../ui/dr-ui/src/lib.rs#L2253), [`ui/dr-ui/src/lib.rs:468`](../../ui/dr-ui/src/lib.rs#L468), [`ui/dr-ui/src/lib.rs:498`](../../ui/dr-ui/src/lib.rs#L498), [`ui/dr-ui/src/lib.rs:606`](../../ui/dr-ui/src/lib.rs#L606), [`ui/dr-ui/src/lib.rs:630`](../../ui/dr-ui/src/lib.rs#L630), [`ui/dr-ui/src/library/sidecar.rs:66`](../../ui/dr-ui/src/library/sidecar.rs#L66), [`ui/dr-ui/src/masks_ui.rs:1608`](../../ui/dr-ui/src/masks_ui.rs#L1608), [`ui/dr-ui/src/masks_ui.rs:1722`](../../ui/dr-ui/src/masks_ui.rs#L1722), [`ui/dr-ui/src/masks_ui.rs:339`](../../ui/dr-ui/src/masks_ui.rs#L339), [`ui/dr-ui/src/masks_ui.rs:44`](../../ui/dr-ui/src/masks_ui.rs#L44), [`ui/dr-ui/src/presets.rs:414`](../../ui/dr-ui/src/presets.rs#L414), [`ui/dr-ui/src/segmentation.rs:117`](../../ui/dr-ui/src/segmentation.rs#L117), [`ui/dr-ui/src/segmentation.rs:353`](../../ui/dr-ui/src/segmentation.rs#L353), [`ui/dr-ui/src/segmentation.rs:369`](../../ui/dr-ui/src/segmentation.rs#L369), [`ui/dr-ui/src/segmentation.rs:499`](../../ui/dr-ui/src/segmentation.rs#L499), [`ui/dr-ui/src/segmentation.rs:527`](../../ui/dr-ui/src/segmentation.rs#L527), [`ui/dr-ui/ui/adjust.slint:1050`](../../ui/dr-ui/ui/adjust.slint#L1050), [`ui/dr-ui/ui/adjust.slint:127`](../../ui/dr-ui/ui/adjust.slint#L127), [`ui/dr-ui/ui/adjust.slint:1658`](../../ui/dr-ui/ui/adjust.slint#L1658), [`ui/dr-ui/ui/adjust.slint:173`](../../ui/dr-ui/ui/adjust.slint#L173), [`ui/dr-ui/ui/adjust.slint:47`](../../ui/dr-ui/ui/adjust.slint#L47), [`ui/dr-ui/ui/adjust.slint:626`](../../ui/dr-ui/ui/adjust.slint#L626), [`ui/dr-ui/ui/adjust.slint:662`](../../ui/dr-ui/ui/adjust.slint#L662), [`ui/dr-ui/ui/adjust.slint:681`](../../ui/dr-ui/ui/adjust.slint#L681), [`ui/dr-ui/ui/adjust.slint:874`](../../ui/dr-ui/ui/adjust.slint#L874), [`ui/dr-ui/ui/adjust.slint:973`](../../ui/dr-ui/ui/adjust.slint#L973), [`ui/dr-ui/ui/app.slint:2294`](../../ui/dr-ui/ui/app.slint#L2294), [`ui/dr-ui/ui/app.slint:2356`](../../ui/dr-ui/ui/app.slint#L2356), [`ui/dr-ui/ui/app.slint:242`](../../ui/dr-ui/ui/app.slint#L242), [`ui/dr-ui/ui/develop.slint:375`](../../ui/dr-ui/ui/develop.slint#L375), [`ui/dr-ui/ui/masks.slint:1246`](../../ui/dr-ui/ui/masks.slint#L1246), [`ui/dr-ui/ui/masks.slint:779`](../../ui/dr-ui/ui/masks.slint#L779), [`ui/dr-ui/ui/masks.slint:838`](../../ui/dr-ui/ui/masks.slint#L838) | +| FR-DEV-2 | [`core/dr-gpu/tests/scene_referred.rs:145`](../../core/dr-gpu/tests/scene_referred.rs#L145), [`core/dr-gpu/tests/scene_referred.rs:1`](../../core/dr-gpu/tests/scene_referred.rs#L1), [`core/dr-gpu/tests/view_transform.rs:154`](../../core/dr-gpu/tests/view_transform.rs#L154), [`core/dr-gpu/tests/view_transform.rs:1`](../../core/dr-gpu/tests/view_transform.rs#L1), [`core/dr-gpu/tests/view_transform.rs:90`](../../core/dr-gpu/tests/view_transform.rs#L90), [`core/dr-pipeline/src/declared/decl.rs:279`](../../core/dr-pipeline/src/declared/decl.rs#L279), [`core/dr-pipeline/src/operation.rs:2459`](../../core/dr-pipeline/src/operation.rs#L2459), [`core/dr-pipeline/src/operation.rs:2700`](../../core/dr-pipeline/src/operation.rs#L2700), [`core/dr-pipeline/src/operation.rs:369`](../../core/dr-pipeline/src/operation.rs#L369), [`core/dr-pipeline/src/operation.rs:443`](../../core/dr-pipeline/src/operation.rs#L443), [`core/dr-pipeline/src/operation.rs:463`](../../core/dr-pipeline/src/operation.rs#L463), [`core/dr-pipeline/src/operation.rs:505`](../../core/dr-pipeline/src/operation.rs#L505), [`core/dr-pipeline/src/ops/curve.rs:491`](../../core/dr-pipeline/src/ops/curve.rs#L491), [`core/dr-pipeline/src/view.rs:1`](../../core/dr-pipeline/src/view.rs#L1), [`core/dr-pipeline/src/view.rs:211`](../../core/dr-pipeline/src/view.rs#L211) | +| FR-DEV-20 | [`core/dr-gpu/src/adjust.rs:2338`](../../core/dr-gpu/src/adjust.rs#L2338), [`core/dr-pipeline/src/framing.rs:1377`](../../core/dr-pipeline/src/framing.rs#L1377), [`core/dr-pipeline/src/framing.rs:170`](../../core/dr-pipeline/src/framing.rs#L170), [`core/dr-pipeline/src/framing.rs:401`](../../core/dr-pipeline/src/framing.rs#L401), [`core/dr-pipeline/src/framing.rs:495`](../../core/dr-pipeline/src/framing.rs#L495), [`core/dr-pipeline/src/framing.rs:652`](../../core/dr-pipeline/src/framing.rs#L652), [`core/dr-pipeline/src/framing.rs:663`](../../core/dr-pipeline/src/framing.rs#L663), [`core/dr-pipeline/src/framing.rs:88`](../../core/dr-pipeline/src/framing.rs#L88), [`core/dr-pipeline/src/framing.rs:92`](../../core/dr-pipeline/src/framing.rs#L92), [`core/dr-pipeline/src/framing.rs:938`](../../core/dr-pipeline/src/framing.rs#L938), [`core/dr-pipeline/src/framing.rs:994`](../../core/dr-pipeline/src/framing.rs#L994), [`core/dr-pipeline/src/preset.rs:1001`](../../core/dr-pipeline/src/preset.rs#L1001), [`core/dr-pipeline/src/sidecar.rs:2197`](../../core/dr-pipeline/src/sidecar.rs#L2197), [`ui/dr-ui/src/develop/framing.rs:1185`](../../ui/dr-ui/src/develop/framing.rs#L1185), [`ui/dr-ui/src/develop/framing.rs:418`](../../ui/dr-ui/src/develop/framing.rs#L418), [`ui/dr-ui/src/develop/framing.rs:474`](../../ui/dr-ui/src/develop/framing.rs#L474), [`ui/dr-ui/src/develop/framing.rs:480`](../../ui/dr-ui/src/develop/framing.rs#L480), [`ui/dr-ui/src/develop/framing.rs:489`](../../ui/dr-ui/src/develop/framing.rs#L489), [`ui/dr-ui/src/develop_ui.rs:1390`](../../ui/dr-ui/src/develop_ui.rs#L1390), [`ui/dr-ui/src/develop_ui.rs:1423`](../../ui/dr-ui/src/develop_ui.rs#L1423), [`ui/dr-ui/src/labels.rs:295`](../../ui/dr-ui/src/labels.rs#L295), [`ui/dr-ui/ui/adjust.slint:646`](../../ui/dr-ui/ui/adjust.slint#L646), [`ui/dr-ui/ui/adjust.slint:688`](../../ui/dr-ui/ui/adjust.slint#L688), [`ui/dr-ui/ui/adjust.slint:831`](../../ui/dr-ui/ui/adjust.slint#L831), [`ui/dr-ui/ui/app.slint:2718`](../../ui/dr-ui/ui/app.slint#L2718), [`ui/dr-ui/ui/app.slint:727`](../../ui/dr-ui/ui/app.slint#L727), [`ui/dr-ui/ui/app.slint:750`](../../ui/dr-ui/ui/app.slint#L750) | +| FR-DEV-3 | [`core/dr-gpu/src/adjust.rs:1107`](../../core/dr-gpu/src/adjust.rs#L1107), [`core/dr-gpu/src/adjust.rs:2960`](../../core/dr-gpu/src/adjust.rs#L2960), [`core/dr-gpu/src/adjust.rs:82`](../../core/dr-gpu/src/adjust.rs#L82), [`core/dr-gpu/src/adjust.rs:969`](../../core/dr-gpu/src/adjust.rs#L969), [`core/dr-gpu/tests/tone_curve.rs:1`](../../core/dr-gpu/tests/tone_curve.rs#L1), [`core/dr-pipeline/src/coverage.rs:122`](../../core/dr-pipeline/src/coverage.rs#L122), [`core/dr-pipeline/src/coverage.rs:1`](../../core/dr-pipeline/src/coverage.rs#L1), [`core/dr-pipeline/src/detail.rs:491`](../../core/dr-pipeline/src/detail.rs#L491), [`core/dr-pipeline/src/detail.rs:592`](../../core/dr-pipeline/src/detail.rs#L592), [`core/dr-pipeline/src/framing.rs:1111`](../../core/dr-pipeline/src/framing.rs#L1111), [`core/dr-pipeline/src/framing.rs:251`](../../core/dr-pipeline/src/framing.rs#L251), [`core/dr-pipeline/src/framing.rs:321`](../../core/dr-pipeline/src/framing.rs#L321), [`core/dr-pipeline/src/framing.rs:481`](../../core/dr-pipeline/src/framing.rs#L481), [`core/dr-pipeline/src/framing.rs:717`](../../core/dr-pipeline/src/framing.rs#L717), [`core/dr-pipeline/src/graph.rs:1015`](../../core/dr-pipeline/src/graph.rs#L1015), [`core/dr-pipeline/src/graph.rs:1107`](../../core/dr-pipeline/src/graph.rs#L1107), [`core/dr-pipeline/src/graph.rs:1505`](../../core/dr-pipeline/src/graph.rs#L1505), [`core/dr-pipeline/src/graph.rs:1536`](../../core/dr-pipeline/src/graph.rs#L1536), [`core/dr-pipeline/src/graph.rs:1559`](../../core/dr-pipeline/src/graph.rs#L1559), [`core/dr-pipeline/src/graph.rs:1597`](../../core/dr-pipeline/src/graph.rs#L1597), [`core/dr-pipeline/src/graph.rs:1628`](../../core/dr-pipeline/src/graph.rs#L1628), [`core/dr-pipeline/src/graph.rs:247`](../../core/dr-pipeline/src/graph.rs#L247), [`core/dr-pipeline/src/graph.rs:379`](../../core/dr-pipeline/src/graph.rs#L379), [`core/dr-pipeline/src/graph.rs:437`](../../core/dr-pipeline/src/graph.rs#L437), [`core/dr-pipeline/src/graph.rs:443`](../../core/dr-pipeline/src/graph.rs#L443), [`core/dr-pipeline/src/lens.rs:93`](../../core/dr-pipeline/src/lens.rs#L93), [`core/dr-pipeline/src/mask.rs:205`](../../core/dr-pipeline/src/mask.rs#L205), [`core/dr-pipeline/src/mask.rs:558`](../../core/dr-pipeline/src/mask.rs#L558), [`core/dr-pipeline/src/neutral.rs:1`](../../core/dr-pipeline/src/neutral.rs#L1), [`core/dr-pipeline/src/neutral.rs:306`](../../core/dr-pipeline/src/neutral.rs#L306), [`core/dr-pipeline/src/neutral.rs:322`](../../core/dr-pipeline/src/neutral.rs#L322), [`core/dr-pipeline/src/neutral.rs:338`](../../core/dr-pipeline/src/neutral.rs#L338), [`core/dr-pipeline/src/neutral.rs:360`](../../core/dr-pipeline/src/neutral.rs#L360), [`core/dr-pipeline/src/neutral.rs:81`](../../core/dr-pipeline/src/neutral.rs#L81), [`core/dr-pipeline/src/operation.rs:334`](../../core/dr-pipeline/src/operation.rs#L334), [`core/dr-pipeline/src/operation.rs:377`](../../core/dr-pipeline/src/operation.rs#L377), [`core/dr-pipeline/src/operation.rs:714`](../../core/dr-pipeline/src/operation.rs#L714), [`core/dr-pipeline/src/operation.rs:787`](../../core/dr-pipeline/src/operation.rs#L787), [`core/dr-pipeline/src/operation.rs:969`](../../core/dr-pipeline/src/operation.rs#L969), [`core/dr-pipeline/src/ops/capture_sharpen.rs:1`](../../core/dr-pipeline/src/ops/capture_sharpen.rs#L1), [`core/dr-pipeline/src/ops/capture_sharpen.rs:210`](../../core/dr-pipeline/src/ops/capture_sharpen.rs#L210), [`core/dr-pipeline/src/ops/curve.rs:100`](../../core/dr-pipeline/src/ops/curve.rs#L100), [`core/dr-pipeline/src/ops/curve.rs:1`](../../core/dr-pipeline/src/ops/curve.rs#L1), [`core/dr-pipeline/src/ops/curve.rs:219`](../../core/dr-pipeline/src/ops/curve.rs#L219), [`core/dr-pipeline/src/ops/curve.rs:669`](../../core/dr-pipeline/src/ops/curve.rs#L669), [`core/dr-pipeline/src/ops/local_contrast.rs:1`](../../core/dr-pipeline/src/ops/local_contrast.rs#L1), [`core/dr-pipeline/src/ops/noise_reduction.rs:1`](../../core/dr-pipeline/src/ops/noise_reduction.rs#L1), [`core/dr-pipeline/src/ops/noise_reduction.rs:273`](../../core/dr-pipeline/src/ops/noise_reduction.rs#L273), [`core/dr-pipeline/src/preset.rs:927`](../../core/dr-pipeline/src/preset.rs#L927), [`core/dr-pipeline/src/sidecar.rs:1433`](../../core/dr-pipeline/src/sidecar.rs#L1433), [`core/dr-pipeline/src/sidecar.rs:206`](../../core/dr-pipeline/src/sidecar.rs#L206), [`core/dr-pipeline/src/sidecar.rs:2275`](../../core/dr-pipeline/src/sidecar.rs#L2275), [`core/dr-pipeline/src/sidecar.rs:2355`](../../core/dr-pipeline/src/sidecar.rs#L2355), [`core/dr-pipeline/tests/tone_curve.rs:1`](../../core/dr-pipeline/tests/tone_curve.rs#L1), [`core/dr-segment/src/refine.rs:937`](../../core/dr-segment/src/refine.rs#L937), [`ui/dr-ui/src/develop/curves.rs:163`](../../ui/dr-ui/src/develop/curves.rs#L163), [`ui/dr-ui/src/develop/framing.rs:10`](../../ui/dr-ui/src/develop/framing.rs#L10), [`ui/dr-ui/src/develop/framing.rs:298`](../../ui/dr-ui/src/develop/framing.rs#L298), [`ui/dr-ui/src/develop/framing.rs:328`](../../ui/dr-ui/src/develop/framing.rs#L328), [`ui/dr-ui/src/develop/framing.rs:394`](../../ui/dr-ui/src/develop/framing.rs#L394), [`ui/dr-ui/src/develop/framing.rs:408`](../../ui/dr-ui/src/develop/framing.rs#L408), [`ui/dr-ui/src/develop/framing.rs:690`](../../ui/dr-ui/src/develop/framing.rs#L690), [`ui/dr-ui/src/develop/framing.rs:71`](../../ui/dr-ui/src/develop/framing.rs#L71), [`ui/dr-ui/src/develop/mask_ops.rs:1076`](../../ui/dr-ui/src/develop/mask_ops.rs#L1076), [`ui/dr-ui/src/develop/mask_ops.rs:1340`](../../ui/dr-ui/src/develop/mask_ops.rs#L1340), [`ui/dr-ui/src/develop/mask_ops.rs:178`](../../ui/dr-ui/src/develop/mask_ops.rs#L178), [`ui/dr-ui/src/develop/mask_ops.rs:969`](../../ui/dr-ui/src/develop/mask_ops.rs#L969), [`ui/dr-ui/src/develop/masks.rs:263`](../../ui/dr-ui/src/develop/masks.rs#L263), [`ui/dr-ui/src/develop/masks.rs:361`](../../ui/dr-ui/src/develop/masks.rs#L361), [`ui/dr-ui/src/develop/masks.rs:743`](../../ui/dr-ui/src/develop/masks.rs#L743), [`ui/dr-ui/src/develop/masks.rs:773`](../../ui/dr-ui/src/develop/masks.rs#L773), [`ui/dr-ui/src/develop/render.rs:1390`](../../ui/dr-ui/src/develop/render.rs#L1390), [`ui/dr-ui/src/develop/rows.rs:106`](../../ui/dr-ui/src/develop/rows.rs#L106), [`ui/dr-ui/src/develop/rows.rs:195`](../../ui/dr-ui/src/develop/rows.rs#L195), [`ui/dr-ui/src/develop/rows.rs:231`](../../ui/dr-ui/src/develop/rows.rs#L231), [`ui/dr-ui/src/develop/rows.rs:679`](../../ui/dr-ui/src/develop/rows.rs#L679), [`ui/dr-ui/src/develop/segmentation.rs:139`](../../ui/dr-ui/src/develop/segmentation.rs#L139), [`ui/dr-ui/src/develop/segmentation.rs:302`](../../ui/dr-ui/src/develop/segmentation.rs#L302), [`ui/dr-ui/src/develop/segmentation.rs:339`](../../ui/dr-ui/src/develop/segmentation.rs#L339), [`ui/dr-ui/src/develop/segmentation.rs:572`](../../ui/dr-ui/src/develop/segmentation.rs#L572), [`ui/dr-ui/src/develop/segmentation.rs:590`](../../ui/dr-ui/src/develop/segmentation.rs#L590), [`ui/dr-ui/src/develop/segmentation.rs:604`](../../ui/dr-ui/src/develop/segmentation.rs#L604), [`ui/dr-ui/src/develop/segmentation.rs:626`](../../ui/dr-ui/src/develop/segmentation.rs#L626), [`ui/dr-ui/src/develop/segmentation.rs:77`](../../ui/dr-ui/src/develop/segmentation.rs#L77), [`ui/dr-ui/src/develop/segmentation.rs:806`](../../ui/dr-ui/src/develop/segmentation.rs#L806), [`ui/dr-ui/src/develop/session.rs:185`](../../ui/dr-ui/src/develop/session.rs#L185), [`ui/dr-ui/src/develop/session.rs:278`](../../ui/dr-ui/src/develop/session.rs#L278), [`ui/dr-ui/src/develop/session.rs:307`](../../ui/dr-ui/src/develop/session.rs#L307), [`ui/dr-ui/src/develop/session.rs:505`](../../ui/dr-ui/src/develop/session.rs#L505), [`ui/dr-ui/src/develop/session.rs:565`](../../ui/dr-ui/src/develop/session.rs#L565), [`ui/dr-ui/src/develop/session.rs:705`](../../ui/dr-ui/src/develop/session.rs#L705), [`ui/dr-ui/src/develop/session.rs:964`](../../ui/dr-ui/src/develop/session.rs#L964), [`ui/dr-ui/src/develop/white_balance.rs:11`](../../ui/dr-ui/src/develop/white_balance.rs#L11), [`ui/dr-ui/src/develop/white_balance.rs:162`](../../ui/dr-ui/src/develop/white_balance.rs#L162), [`ui/dr-ui/src/develop/white_balance.rs:193`](../../ui/dr-ui/src/develop/white_balance.rs#L193), [`ui/dr-ui/src/develop/white_balance.rs:277`](../../ui/dr-ui/src/develop/white_balance.rs#L277), [`ui/dr-ui/src/develop/white_balance.rs:340`](../../ui/dr-ui/src/develop/white_balance.rs#L340), [`ui/dr-ui/src/develop_ui.rs:118`](../../ui/dr-ui/src/develop_ui.rs#L118), [`ui/dr-ui/src/develop_ui.rs:1203`](../../ui/dr-ui/src/develop_ui.rs#L1203), [`ui/dr-ui/src/develop_ui.rs:1300`](../../ui/dr-ui/src/develop_ui.rs#L1300), [`ui/dr-ui/src/develop_ui.rs:1354`](../../ui/dr-ui/src/develop_ui.rs#L1354), [`ui/dr-ui/src/develop_ui.rs:601`](../../ui/dr-ui/src/develop_ui.rs#L601), [`ui/dr-ui/src/develop_ui.rs:821`](../../ui/dr-ui/src/develop_ui.rs#L821), [`ui/dr-ui/src/labels.rs:35`](../../ui/dr-ui/src/labels.rs#L35), [`ui/dr-ui/src/lib.rs:2253`](../../ui/dr-ui/src/lib.rs#L2253), [`ui/dr-ui/src/lib.rs:468`](../../ui/dr-ui/src/lib.rs#L468), [`ui/dr-ui/src/lib.rs:498`](../../ui/dr-ui/src/lib.rs#L498), [`ui/dr-ui/src/lib.rs:606`](../../ui/dr-ui/src/lib.rs#L606), [`ui/dr-ui/src/lib.rs:630`](../../ui/dr-ui/src/lib.rs#L630), [`ui/dr-ui/src/library/sidecar.rs:66`](../../ui/dr-ui/src/library/sidecar.rs#L66), [`ui/dr-ui/src/masks_ui.rs:1608`](../../ui/dr-ui/src/masks_ui.rs#L1608), [`ui/dr-ui/src/masks_ui.rs:1722`](../../ui/dr-ui/src/masks_ui.rs#L1722), [`ui/dr-ui/src/masks_ui.rs:339`](../../ui/dr-ui/src/masks_ui.rs#L339), [`ui/dr-ui/src/masks_ui.rs:44`](../../ui/dr-ui/src/masks_ui.rs#L44), [`ui/dr-ui/src/presets.rs:414`](../../ui/dr-ui/src/presets.rs#L414), [`ui/dr-ui/src/segmentation.rs:117`](../../ui/dr-ui/src/segmentation.rs#L117), [`ui/dr-ui/src/segmentation.rs:353`](../../ui/dr-ui/src/segmentation.rs#L353), [`ui/dr-ui/src/segmentation.rs:369`](../../ui/dr-ui/src/segmentation.rs#L369), [`ui/dr-ui/src/segmentation.rs:499`](../../ui/dr-ui/src/segmentation.rs#L499), [`ui/dr-ui/src/segmentation.rs:527`](../../ui/dr-ui/src/segmentation.rs#L527), [`ui/dr-ui/ui/adjust.slint:1050`](../../ui/dr-ui/ui/adjust.slint#L1050), [`ui/dr-ui/ui/adjust.slint:127`](../../ui/dr-ui/ui/adjust.slint#L127), [`ui/dr-ui/ui/adjust.slint:1658`](../../ui/dr-ui/ui/adjust.slint#L1658), [`ui/dr-ui/ui/adjust.slint:173`](../../ui/dr-ui/ui/adjust.slint#L173), [`ui/dr-ui/ui/adjust.slint:47`](../../ui/dr-ui/ui/adjust.slint#L47), [`ui/dr-ui/ui/adjust.slint:626`](../../ui/dr-ui/ui/adjust.slint#L626), [`ui/dr-ui/ui/adjust.slint:662`](../../ui/dr-ui/ui/adjust.slint#L662), [`ui/dr-ui/ui/adjust.slint:681`](../../ui/dr-ui/ui/adjust.slint#L681), [`ui/dr-ui/ui/adjust.slint:874`](../../ui/dr-ui/ui/adjust.slint#L874), [`ui/dr-ui/ui/adjust.slint:973`](../../ui/dr-ui/ui/adjust.slint#L973), [`ui/dr-ui/ui/app.slint:2294`](../../ui/dr-ui/ui/app.slint#L2294), [`ui/dr-ui/ui/app.slint:2356`](../../ui/dr-ui/ui/app.slint#L2356), [`ui/dr-ui/ui/app.slint:242`](../../ui/dr-ui/ui/app.slint#L242), [`ui/dr-ui/ui/develop.slint:375`](../../ui/dr-ui/ui/develop.slint#L375), [`ui/dr-ui/ui/masks.slint:1246`](../../ui/dr-ui/ui/masks.slint#L1246), [`ui/dr-ui/ui/masks.slint:779`](../../ui/dr-ui/ui/masks.slint#L779), [`ui/dr-ui/ui/masks.slint:838`](../../ui/dr-ui/ui/masks.slint#L838) | | FR-DEV-3a | [`core/dr-pipeline/ops/exposure.yaml:1`](../../core/dr-pipeline/ops/exposure.yaml#L1), [`core/dr-pipeline/src/descriptor.rs:212`](../../core/dr-pipeline/src/descriptor.rs#L212), [`core/dr-pipeline/src/descriptor.rs:252`](../../core/dr-pipeline/src/descriptor.rs#L252), [`core/dr-pipeline/src/descriptor.rs:276`](../../core/dr-pipeline/src/descriptor.rs#L276), [`core/dr-pipeline/src/descriptor.rs:331`](../../core/dr-pipeline/src/descriptor.rs#L331), [`core/dr-pipeline/src/framing.rs:568`](../../core/dr-pipeline/src/framing.rs#L568), [`core/dr-pipeline/src/graph.rs:25`](../../core/dr-pipeline/src/graph.rs#L25), [`core/dr-pipeline/src/graph.rs:47`](../../core/dr-pipeline/src/graph.rs#L47), [`core/dr-pipeline/src/graph.rs:486`](../../core/dr-pipeline/src/graph.rs#L486), [`core/dr-pipeline/src/graph.rs:60`](../../core/dr-pipeline/src/graph.rs#L60), [`core/dr-pipeline/src/graph.rs:655`](../../core/dr-pipeline/src/graph.rs#L655), [`core/dr-pipeline/src/mask.rs:1746`](../../core/dr-pipeline/src/mask.rs#L1746), [`core/dr-pipeline/src/neutral.rs:1`](../../core/dr-pipeline/src/neutral.rs#L1), [`core/dr-pipeline/src/neutral.rs:378`](../../core/dr-pipeline/src/neutral.rs#L378), [`core/dr-pipeline/src/operation.rs:232`](../../core/dr-pipeline/src/operation.rs#L232), [`core/dr-pipeline/src/operation.rs:412`](../../core/dr-pipeline/src/operation.rs#L412), [`core/dr-pipeline/src/ops/curve.rs:319`](../../core/dr-pipeline/src/ops/curve.rs#L319), [`ui/dr-ui/src/develop/curves.rs:36`](../../ui/dr-ui/src/develop/curves.rs#L36), [`ui/dr-ui/src/develop/rows.rs:118`](../../ui/dr-ui/src/develop/rows.rs#L118), [`ui/dr-ui/src/develop/rows.rs:679`](../../ui/dr-ui/src/develop/rows.rs#L679), [`ui/dr-ui/src/develop/rows.rs:877`](../../ui/dr-ui/src/develop/rows.rs#L877), [`ui/dr-ui/src/lib.rs:955`](../../ui/dr-ui/src/lib.rs#L955), [`ui/dr-ui/tests/ui_names_no_operation.rs:1`](../../ui/dr-ui/tests/ui_names_no_operation.rs#L1), [`ui/dr-ui/ui/app.slint:2748`](../../ui/dr-ui/ui/app.slint#L2748) | | FR-DEV-3b | [`core/dr-pipeline/src/descriptor.rs:276`](../../core/dr-pipeline/src/descriptor.rs#L276), [`core/dr-pipeline/src/framing.rs:568`](../../core/dr-pipeline/src/framing.rs#L568), [`core/dr-pipeline/src/graph.rs:60`](../../core/dr-pipeline/src/graph.rs#L60), [`core/dr-pipeline/src/operation.rs:412`](../../core/dr-pipeline/src/operation.rs#L412), [`ui/dr-ui/ui/app.slint:3027`](../../ui/dr-ui/ui/app.slint#L3027) | | FR-DEV-3c | [`core/dr-pipeline/ops/exposure.yaml:1`](../../core/dr-pipeline/ops/exposure.yaml#L1), [`core/dr-pipeline/src/graph.rs:47`](../../core/dr-pipeline/src/graph.rs#L47), [`core/dr-pipeline/src/graph.rs:486`](../../core/dr-pipeline/src/graph.rs#L486), [`core/dr-pipeline/src/mask.rs:1746`](../../core/dr-pipeline/src/mask.rs#L1746), [`core/dr-pipeline/src/preset.rs:927`](../../core/dr-pipeline/src/preset.rs#L927), [`ui/dr-ui/src/develop/rows.rs:928`](../../ui/dr-ui/src/develop/rows.rs#L928) | | FR-DEV-3d | [`core/dr-gpu/src/adjust.rs:1107`](../../core/dr-gpu/src/adjust.rs#L1107), [`core/dr-gpu/src/adjust.rs:112`](../../core/dr-gpu/src/adjust.rs#L112), [`core/dr-gpu/src/adjust.rs:1429`](../../core/dr-gpu/src/adjust.rs#L1429), [`core/dr-gpu/src/adjust.rs:1523`](../../core/dr-gpu/src/adjust.rs#L1523), [`core/dr-gpu/src/adjust.rs:82`](../../core/dr-gpu/src/adjust.rs#L82), [`core/dr-gpu/tests/capture_sharpen.rs:433`](../../core/dr-gpu/tests/capture_sharpen.rs#L433), [`core/dr-gpu/tests/detail_stage.rs:241`](../../core/dr-gpu/tests/detail_stage.rs#L241), [`core/dr-gpu/tests/local_contrast.rs:557`](../../core/dr-gpu/tests/local_contrast.rs#L557), [`core/dr-gpu/tests/noise_reduction.rs:555`](../../core/dr-gpu/tests/noise_reduction.rs#L555), [`core/dr-pipeline/src/framing.rs:481`](../../core/dr-pipeline/src/framing.rs#L481), [`core/dr-pipeline/src/graph.rs:1135`](../../core/dr-pipeline/src/graph.rs#L1135), [`core/dr-pipeline/src/operation.rs:32`](../../core/dr-pipeline/src/operation.rs#L32), [`core/dr-pipeline/src/operation.rs:505`](../../core/dr-pipeline/src/operation.rs#L505), [`core/dr-pipeline/src/operation.rs:53`](../../core/dr-pipeline/src/operation.rs#L53), [`core/dr-pipeline/src/operation.rs:71`](../../core/dr-pipeline/src/operation.rs#L71) | -| FR-DEV-3e | [`core/dr-decode/src/dcp.rs:126`](../../core/dr-decode/src/dcp.rs#L126), [`core/dr-decode/src/dcp.rs:157`](../../core/dr-decode/src/dcp.rs#L157), [`core/dr-decode/src/dcp.rs:176`](../../core/dr-decode/src/dcp.rs#L176), [`core/dr-decode/src/dcp.rs:199`](../../core/dr-decode/src/dcp.rs#L199), [`core/dr-decode/src/dcp.rs:1`](../../core/dr-decode/src/dcp.rs#L1), [`core/dr-decode/src/dcp.rs:230`](../../core/dr-decode/src/dcp.rs#L230), [`core/dr-decode/src/dcp.rs:403`](../../core/dr-decode/src/dcp.rs#L403), [`core/dr-decode/src/dcp.rs:454`](../../core/dr-decode/src/dcp.rs#L454), [`core/dr-decode/src/dcp.rs:465`](../../core/dr-decode/src/dcp.rs#L465), [`core/dr-decode/src/dcp.rs:498`](../../core/dr-decode/src/dcp.rs#L498), [`core/dr-decode/src/dcp.rs:513`](../../core/dr-decode/src/dcp.rs#L513), [`core/dr-decode/src/dcp.rs:523`](../../core/dr-decode/src/dcp.rs#L523), [`core/dr-decode/src/dcp.rs:74`](../../core/dr-decode/src/dcp.rs#L74), [`core/dr-decode/src/lib.rs:126`](../../core/dr-decode/src/lib.rs#L126), [`core/dr-decode/src/lib.rs:141`](../../core/dr-decode/src/lib.rs#L141), [`core/dr-decode/src/lib.rs:595`](../../core/dr-decode/src/lib.rs#L595), [`core/dr-decode/src/lib.rs:791`](../../core/dr-decode/src/lib.rs#L791), [`core/dr-decode/src/lib.rs:831`](../../core/dr-decode/src/lib.rs#L831), [`core/dr-decode/src/profile.rs:104`](../../core/dr-decode/src/profile.rs#L104), [`core/dr-decode/src/profile.rs:153`](../../core/dr-decode/src/profile.rs#L153), [`core/dr-decode/src/profile.rs:1`](../../core/dr-decode/src/profile.rs#L1), [`core/dr-decode/src/profile.rs:237`](../../core/dr-decode/src/profile.rs#L237), [`core/dr-decode/src/profile.rs:288`](../../core/dr-decode/src/profile.rs#L288), [`core/dr-decode/src/profile.rs:345`](../../core/dr-decode/src/profile.rs#L345), [`core/dr-decode/src/profile.rs:475`](../../core/dr-decode/src/profile.rs#L475), [`core/dr-decode/src/profile.rs:509`](../../core/dr-decode/src/profile.rs#L509), [`core/dr-decode/src/profile.rs:680`](../../core/dr-decode/src/profile.rs#L680), [`core/dr-gpu/src/adjust.rs:523`](../../core/dr-gpu/src/adjust.rs#L523), [`core/dr-gpu/src/adjust.rs:536`](../../core/dr-gpu/src/adjust.rs#L536), [`core/dr-gpu/src/adjust.rs:74`](../../core/dr-gpu/src/adjust.rs#L74), [`core/dr-gpu/src/demosaic.rs:110`](../../core/dr-gpu/src/demosaic.rs#L110), [`core/dr-gpu/src/demosaic.rs:215`](../../core/dr-gpu/src/demosaic.rs#L215), [`core/dr-gpu/tests/camera_profile.rs:1`](../../core/dr-gpu/tests/camera_profile.rs#L1), [`core/dr-pipeline/src/declared/decl.rs:279`](../../core/dr-pipeline/src/declared/decl.rs#L279), [`core/dr-pipeline/src/operation.rs:2459`](../../core/dr-pipeline/src/operation.rs#L2459), [`core/dr-pipeline/src/operation.rs:2483`](../../core/dr-pipeline/src/operation.rs#L2483), [`core/dr-pipeline/src/operation.rs:273`](../../core/dr-pipeline/src/operation.rs#L273), [`core/dr-pipeline/src/operation.rs:349`](../../core/dr-pipeline/src/operation.rs#L349), [`core/dr-pipeline/src/operation.rs:369`](../../core/dr-pipeline/src/operation.rs#L369), [`core/dr-pipeline/src/operation.rs:443`](../../core/dr-pipeline/src/operation.rs#L443), [`core/dr-pipeline/src/operation.rs:463`](../../core/dr-pipeline/src/operation.rs#L463), [`core/dr-pipeline/src/ops/camera_profile.rs:1`](../../core/dr-pipeline/src/ops/camera_profile.rs#L1), [`core/dr-pipeline/src/ops/camera_profile.rs:355`](../../core/dr-pipeline/src/ops/camera_profile.rs#L355), [`core/dr-pipeline/src/ops/camera_profile.rs:381`](../../core/dr-pipeline/src/ops/camera_profile.rs#L381), [`core/dr-pipeline/src/view.rs:227`](../../core/dr-pipeline/src/view.rs#L227), [`core/dr-types/src/hue_sat.rs:1`](../../core/dr-types/src/hue_sat.rs#L1), [`ui/dr-ui/src/develop/session.rs:600`](../../ui/dr-ui/src/develop/session.rs#L600), [`ui/dr-ui/src/develop/session.rs:613`](../../ui/dr-ui/src/develop/session.rs#L613), [`ui/dr-ui/src/develop/session.rs:648`](../../ui/dr-ui/src/develop/session.rs#L648), [`ui/dr-ui/src/develop/session.rs:657`](../../ui/dr-ui/src/develop/session.rs#L657), [`ui/dr-ui/src/develop/session.rs:73`](../../ui/dr-ui/src/develop/session.rs#L73), [`ui/dr-ui/src/develop/session.rs:848`](../../ui/dr-ui/src/develop/session.rs#L848), [`ui/dr-ui/src/develop/session.rs:891`](../../ui/dr-ui/src/develop/session.rs#L891), [`ui/dr-ui/src/lib.rs:1208`](../../ui/dr-ui/src/lib.rs#L1208), [`ui/dr-ui/src/lib.rs:1506`](../../ui/dr-ui/src/lib.rs#L1506), [`ui/dr-ui/src/lib.rs:1524`](../../ui/dr-ui/src/lib.rs#L1524), [`ui/dr-ui/src/lib.rs:330`](../../ui/dr-ui/src/lib.rs#L330), [`ui/dr-ui/ui/develop.slint:386`](../../ui/dr-ui/ui/develop.slint#L386), [`ui/dr-ui/ui/develop.slint:395`](../../ui/dr-ui/ui/develop.slint#L395) | -| FR-DEV-3f | [`core/dr-film/src/bake.rs:161`](../../core/dr-film/src/bake.rs#L161), [`core/dr-film/src/bake.rs:384`](../../core/dr-film/src/bake.rs#L384), [`core/dr-film/src/bake.rs:52`](../../core/dr-film/src/bake.rs#L52), [`core/dr-film/src/bake.rs:662`](../../core/dr-film/src/bake.rs#L662), [`core/dr-film/src/bake.rs:689`](../../core/dr-film/src/bake.rs#L689), [`core/dr-film/src/bake.rs:710`](../../core/dr-film/src/bake.rs#L710), [`core/dr-film/src/bake.rs:747`](../../core/dr-film/src/bake.rs#L747), [`core/dr-film/src/bake.rs:95`](../../core/dr-film/src/bake.rs#L95), [`core/dr-film/src/boolean_grain.rs:1`](../../core/dr-film/src/boolean_grain.rs#L1), [`core/dr-film/src/boolean_grain.rs:78`](../../core/dr-film/src/boolean_grain.rs#L78), [`core/dr-film/src/grain.rs:140`](../../core/dr-film/src/grain.rs#L140), [`core/dr-film/src/grain.rs:1`](../../core/dr-film/src/grain.rs#L1), [`core/dr-film/src/grain.rs:302`](../../core/dr-film/src/grain.rs#L302), [`core/dr-film/src/grain.rs:79`](../../core/dr-film/src/grain.rs#L79), [`core/dr-film/src/lib.rs:160`](../../core/dr-film/src/lib.rs#L160), [`core/dr-film/src/lib.rs:1`](../../core/dr-film/src/lib.rs#L1), [`core/dr-film/src/profile.rs:100`](../../core/dr-film/src/profile.rs#L100), [`core/dr-film/src/profile.rs:142`](../../core/dr-film/src/profile.rs#L142), [`core/dr-film/src/profile.rs:182`](../../core/dr-film/src/profile.rs#L182), [`core/dr-film/src/profile.rs:259`](../../core/dr-film/src/profile.rs#L259), [`core/dr-film/src/profile.rs:502`](../../core/dr-film/src/profile.rs#L502), [`core/dr-film/src/profile.rs:73`](../../core/dr-film/src/profile.rs#L73), [`core/dr-gpu/src/adjust.rs:152`](../../core/dr-gpu/src/adjust.rs#L152), [`core/dr-gpu/src/adjust.rs:422`](../../core/dr-gpu/src/adjust.rs#L422), [`core/dr-gpu/src/adjust.rs:632`](../../core/dr-gpu/src/adjust.rs#L632), [`core/dr-gpu/src/adjust.rs:67`](../../core/dr-gpu/src/adjust.rs#L67), [`core/dr-gpu/src/adjust.rs:765`](../../core/dr-gpu/src/adjust.rs#L765), [`core/dr-gpu/tests/film_sim.rs:1`](../../core/dr-gpu/tests/film_sim.rs#L1), [`core/dr-gpu/tests/film_sim.rs:214`](../../core/dr-gpu/tests/film_sim.rs#L214), [`core/dr-gpu/tests/film_sim.rs:348`](../../core/dr-gpu/tests/film_sim.rs#L348), [`core/dr-gpu/tests/film_sim.rs:387`](../../core/dr-gpu/tests/film_sim.rs#L387), [`core/dr-gpu/tests/film_sim.rs:416`](../../core/dr-gpu/tests/film_sim.rs#L416), [`core/dr-gpu/tests/film_sim.rs:456`](../../core/dr-gpu/tests/film_sim.rs#L456), [`core/dr-pipeline/src/graph.rs:110`](../../core/dr-pipeline/src/graph.rs#L110), [`core/dr-pipeline/src/graph.rs:187`](../../core/dr-pipeline/src/graph.rs#L187), [`core/dr-pipeline/src/graph.rs:687`](../../core/dr-pipeline/src/graph.rs#L687), [`core/dr-pipeline/src/mask.rs:2452`](../../core/dr-pipeline/src/mask.rs#L2452), [`core/dr-pipeline/src/mask.rs:2485`](../../core/dr-pipeline/src/mask.rs#L2485), [`core/dr-pipeline/src/operation.rs:1086`](../../core/dr-pipeline/src/operation.rs#L1086), [`core/dr-pipeline/src/operation.rs:1436`](../../core/dr-pipeline/src/operation.rs#L1436), [`core/dr-pipeline/src/operation.rs:1670`](../../core/dr-pipeline/src/operation.rs#L1670), [`core/dr-pipeline/src/operation.rs:1698`](../../core/dr-pipeline/src/operation.rs#L1698), [`core/dr-pipeline/src/operation.rs:1750`](../../core/dr-pipeline/src/operation.rs#L1750), [`core/dr-pipeline/src/operation.rs:2377`](../../core/dr-pipeline/src/operation.rs#L2377), [`core/dr-pipeline/src/operation.rs:309`](../../core/dr-pipeline/src/operation.rs#L309), [`core/dr-pipeline/src/operation.rs:323`](../../core/dr-pipeline/src/operation.rs#L323), [`core/dr-pipeline/src/operation.rs:334`](../../core/dr-pipeline/src/operation.rs#L334), [`core/dr-pipeline/src/operation.rs:349`](../../core/dr-pipeline/src/operation.rs#L349), [`core/dr-pipeline/src/ops/film_sim.rs:129`](../../core/dr-pipeline/src/ops/film_sim.rs#L129), [`core/dr-pipeline/src/ops/film_sim.rs:134`](../../core/dr-pipeline/src/ops/film_sim.rs#L134), [`core/dr-pipeline/src/ops/film_sim.rs:186`](../../core/dr-pipeline/src/ops/film_sim.rs#L186), [`core/dr-pipeline/src/ops/film_sim.rs:1`](../../core/dr-pipeline/src/ops/film_sim.rs#L1), [`core/dr-pipeline/src/ops/film_sim.rs:233`](../../core/dr-pipeline/src/ops/film_sim.rs#L233), [`core/dr-pipeline/src/ops/film_sim.rs:315`](../../core/dr-pipeline/src/ops/film_sim.rs#L315), [`core/dr-pipeline/src/ops/film_sim.rs:329`](../../core/dr-pipeline/src/ops/film_sim.rs#L329), [`core/dr-pipeline/src/ops/film_sim.rs:438`](../../core/dr-pipeline/src/ops/film_sim.rs#L438), [`core/dr-pipeline/src/ops/film_sim.rs:48`](../../core/dr-pipeline/src/ops/film_sim.rs#L48), [`core/dr-pipeline/src/ops/film_sim.rs:736`](../../core/dr-pipeline/src/ops/film_sim.rs#L736), [`core/dr-pipeline/src/preset.rs:1293`](../../core/dr-pipeline/src/preset.rs#L1293), [`core/dr-pipeline/src/preset.rs:1303`](../../core/dr-pipeline/src/preset.rs#L1303), [`core/dr-pipeline/src/preset.rs:1312`](../../core/dr-pipeline/src/preset.rs#L1312), [`core/dr-pipeline/src/preset.rs:1328`](../../core/dr-pipeline/src/preset.rs#L1328), [`core/dr-pipeline/src/preset.rs:1340`](../../core/dr-pipeline/src/preset.rs#L1340), [`core/dr-pipeline/src/preset.rs:1356`](../../core/dr-pipeline/src/preset.rs#L1356), [`core/dr-pipeline/src/preset.rs:1529`](../../core/dr-pipeline/src/preset.rs#L1529), [`core/dr-pipeline/src/preset.rs:1544`](../../core/dr-pipeline/src/preset.rs#L1544), [`core/dr-pipeline/src/preset.rs:248`](../../core/dr-pipeline/src/preset.rs#L248), [`core/dr-pipeline/src/preset.rs:689`](../../core/dr-pipeline/src/preset.rs#L689), [`core/dr-pipeline/src/preset.rs:778`](../../core/dr-pipeline/src/preset.rs#L778), [`core/dr-pipeline/src/sidecar.rs:1077`](../../core/dr-pipeline/src/sidecar.rs#L1077), [`core/dr-pipeline/src/sidecar.rs:133`](../../core/dr-pipeline/src/sidecar.rs#L133), [`core/dr-pipeline/src/sidecar.rs:217`](../../core/dr-pipeline/src/sidecar.rs#L217), [`core/dr-pipeline/src/sidecar.rs:2724`](../../core/dr-pipeline/src/sidecar.rs#L2724), [`core/dr-pipeline/src/sidecar.rs:2800`](../../core/dr-pipeline/src/sidecar.rs#L2800), [`core/dr-pipeline/src/sidecar.rs:595`](../../core/dr-pipeline/src/sidecar.rs#L595), [`core/dr-pipeline/src/sidecar.rs:898`](../../core/dr-pipeline/src/sidecar.rs#L898), [`core/dr-pipeline/src/state.rs:100`](../../core/dr-pipeline/src/state.rs#L100), [`core/dr-pipeline/src/state.rs:115`](../../core/dr-pipeline/src/state.rs#L115), [`core/dr-pipeline/src/state.rs:60`](../../core/dr-pipeline/src/state.rs#L60), [`ui/dr-ui/src/develop/render.rs:1002`](../../ui/dr-ui/src/develop/render.rs#L1002), [`ui/dr-ui/src/develop/render.rs:1053`](../../ui/dr-ui/src/develop/render.rs#L1053), [`ui/dr-ui/src/develop/render.rs:1079`](../../ui/dr-ui/src/develop/render.rs#L1079), [`ui/dr-ui/src/develop/render.rs:1402`](../../ui/dr-ui/src/develop/render.rs#L1402), [`ui/dr-ui/src/develop/render.rs:1442`](../../ui/dr-ui/src/develop/render.rs#L1442), [`ui/dr-ui/src/develop/render.rs:1477`](../../ui/dr-ui/src/develop/render.rs#L1477), [`ui/dr-ui/src/develop/render.rs:830`](../../ui/dr-ui/src/develop/render.rs#L830), [`ui/dr-ui/src/develop/render.rs:847`](../../ui/dr-ui/src/develop/render.rs#L847), [`ui/dr-ui/src/develop/render.rs:859`](../../ui/dr-ui/src/develop/render.rs#L859), [`ui/dr-ui/src/develop/render.rs:897`](../../ui/dr-ui/src/develop/render.rs#L897), [`ui/dr-ui/src/develop/render.rs:934`](../../ui/dr-ui/src/develop/render.rs#L934), [`ui/dr-ui/src/develop/render.rs:945`](../../ui/dr-ui/src/develop/render.rs#L945), [`ui/dr-ui/src/develop/session.rs:727`](../../ui/dr-ui/src/develop/session.rs#L727), [`ui/dr-ui/src/develop/session.rs:747`](../../ui/dr-ui/src/develop/session.rs#L747), [`ui/dr-ui/src/develop/tabs.rs:80`](../../ui/dr-ui/src/develop/tabs.rs#L80), [`ui/dr-ui/src/develop_ui.rs:534`](../../ui/dr-ui/src/develop_ui.rs#L534), [`ui/dr-ui/src/lib.rs:881`](../../ui/dr-ui/src/lib.rs#L881), [`ui/dr-ui/src/lib.rs:946`](../../ui/dr-ui/src/lib.rs#L946), [`ui/dr-ui/src/library/sidecar.rs:325`](../../ui/dr-ui/src/library/sidecar.rs#L325), [`ui/dr-ui/src/library/sidecar.rs:50`](../../ui/dr-ui/src/library/sidecar.rs#L50), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:602`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L602), [`ui/dr-ui/src/presets.rs:1892`](../../ui/dr-ui/src/presets.rs#L1892), [`ui/dr-ui/src/presets.rs:422`](../../ui/dr-ui/src/presets.rs#L422), [`ui/dr-ui/tests/film_list_reaches_every_stock.rs:1`](../../ui/dr-ui/tests/film_list_reaches_every_stock.rs#L1), [`ui/dr-ui/ui/adjust.slint:1071`](../../ui/dr-ui/ui/adjust.slint#L1071), [`ui/dr-ui/ui/adjust.slint:1081`](../../ui/dr-ui/ui/adjust.slint#L1081), [`ui/dr-ui/ui/adjust.slint:1298`](../../ui/dr-ui/ui/adjust.slint#L1298) | -| FR-DEV-3g | [`core/dr-decode/src/lib.rs:547`](../../core/dr-decode/src/lib.rs#L547), [`core/dr-decode/src/profile.rs:743`](../../core/dr-decode/src/profile.rs#L743), [`core/dr-denoise/src/lib.rs:1`](../../core/dr-denoise/src/lib.rs#L1), [`core/dr-denoise/src/noise.rs:1`](../../core/dr-denoise/src/noise.rs#L1), [`core/dr-denoise/src/onnx.rs:1`](../../core/dr-denoise/src/onnx.rs#L1), [`core/dr-denoise/src/tile.rs:1`](../../core/dr-denoise/src/tile.rs#L1), [`core/dr-gpu/src/demosaic.rs:1046`](../../core/dr-gpu/src/demosaic.rs#L1046), [`core/dr-gpu/src/demosaic.rs:349`](../../core/dr-gpu/src/demosaic.rs#L349), [`core/dr-gpu/src/grain.rs:1`](../../core/dr-gpu/src/grain.rs#L1), [`core/dr-gpu/tests/grain.rs:1`](../../core/dr-gpu/tests/grain.rs#L1), [`core/dr-pipeline/src/graph.rs:173`](../../core/dr-pipeline/src/graph.rs#L173), [`core/dr-pipeline/src/graph.rs:417`](../../core/dr-pipeline/src/graph.rs#L417), [`core/dr-pipeline/src/graph.rs:423`](../../core/dr-pipeline/src/graph.rs#L423), [`core/dr-pipeline/src/graph.rs:431`](../../core/dr-pipeline/src/graph.rs#L431), [`core/dr-pipeline/src/graph.rs:619`](../../core/dr-pipeline/src/graph.rs#L619), [`core/dr-pipeline/src/learned_denoise.rs:1`](../../core/dr-pipeline/src/learned_denoise.rs#L1), [`ui/dr-ui/src/activity.rs:86`](../../ui/dr-ui/src/activity.rs#L86), [`ui/dr-ui/src/develop/denoise.rs:1`](../../ui/dr-ui/src/develop/denoise.rs#L1), [`ui/dr-ui/src/develop/render.rs:238`](../../ui/dr-ui/src/develop/render.rs#L238), [`ui/dr-ui/src/develop/render.rs:712`](../../ui/dr-ui/src/develop/render.rs#L712), [`ui/dr-ui/src/develop/session.rs:121`](../../ui/dr-ui/src/develop/session.rs#L121), [`ui/dr-ui/src/develop/session.rs:384`](../../ui/dr-ui/src/develop/session.rs#L384), [`ui/dr-ui/src/develop_ui.rs:139`](../../ui/dr-ui/src/develop_ui.rs#L139), [`ui/dr-ui/src/lib.rs:327`](../../ui/dr-ui/src/lib.rs#L327), [`ui/dr-ui/src/library/paths.rs:378`](../../ui/dr-ui/src/library/paths.rs#L378), [`ui/dr-ui/src/library/paths.rs:382`](../../ui/dr-ui/src/library/paths.rs#L382) | -| FR-DEV-3h | [`core/dr-decode/src/lib.rs:445`](../../core/dr-decode/src/lib.rs#L445), [`core/dr-decode/src/preview.rs:29`](../../core/dr-decode/src/preview.rs#L29), [`core/dr-pipeline/src/framing.rs:1492`](../../core/dr-pipeline/src/framing.rs#L1492), [`core/dr-pipeline/src/framing.rs:499`](../../core/dr-pipeline/src/framing.rs#L499), [`core/dr-pipeline/src/framing.rs:717`](../../core/dr-pipeline/src/framing.rs#L717), [`core/dr-types/src/lib.rs:341`](../../core/dr-types/src/lib.rs#L341), [`core/dr-types/src/lib.rs:449`](../../core/dr-types/src/lib.rs#L449), [`core/dr-types/src/lib.rs:461`](../../core/dr-types/src/lib.rs#L461), [`core/dr-types/src/lib.rs:477`](../../core/dr-types/src/lib.rs#L477), [`ui/dr-ui/src/develop/masks.rs:280`](../../ui/dr-ui/src/develop/masks.rs#L280), [`ui/dr-ui/src/develop/segmentation.rs:114`](../../ui/dr-ui/src/develop/segmentation.rs#L114), [`ui/dr-ui/src/segmentation.rs:499`](../../ui/dr-ui/src/segmentation.rs#L499) | +| FR-DEV-3e | [`core/dr-decode/src/dcp.rs:132`](../../core/dr-decode/src/dcp.rs#L132), [`core/dr-decode/src/dcp.rs:163`](../../core/dr-decode/src/dcp.rs#L163), [`core/dr-decode/src/dcp.rs:182`](../../core/dr-decode/src/dcp.rs#L182), [`core/dr-decode/src/dcp.rs:1`](../../core/dr-decode/src/dcp.rs#L1), [`core/dr-decode/src/dcp.rs:205`](../../core/dr-decode/src/dcp.rs#L205), [`core/dr-decode/src/dcp.rs:240`](../../core/dr-decode/src/dcp.rs#L240), [`core/dr-decode/src/dcp.rs:431`](../../core/dr-decode/src/dcp.rs#L431), [`core/dr-decode/src/dcp.rs:482`](../../core/dr-decode/src/dcp.rs#L482), [`core/dr-decode/src/dcp.rs:493`](../../core/dr-decode/src/dcp.rs#L493), [`core/dr-decode/src/dcp.rs:526`](../../core/dr-decode/src/dcp.rs#L526), [`core/dr-decode/src/dcp.rs:546`](../../core/dr-decode/src/dcp.rs#L546), [`core/dr-decode/src/dcp.rs:559`](../../core/dr-decode/src/dcp.rs#L559), [`core/dr-decode/src/dcp.rs:79`](../../core/dr-decode/src/dcp.rs#L79), [`core/dr-decode/src/lib.rs:126`](../../core/dr-decode/src/lib.rs#L126), [`core/dr-decode/src/lib.rs:141`](../../core/dr-decode/src/lib.rs#L141), [`core/dr-decode/src/lib.rs:150`](../../core/dr-decode/src/lib.rs#L150), [`core/dr-decode/src/lib.rs:601`](../../core/dr-decode/src/lib.rs#L601), [`core/dr-decode/src/lib.rs:799`](../../core/dr-decode/src/lib.rs#L799), [`core/dr-decode/src/lib.rs:839`](../../core/dr-decode/src/lib.rs#L839), [`core/dr-decode/src/profile.rs:104`](../../core/dr-decode/src/profile.rs#L104), [`core/dr-decode/src/profile.rs:153`](../../core/dr-decode/src/profile.rs#L153), [`core/dr-decode/src/profile.rs:1`](../../core/dr-decode/src/profile.rs#L1), [`core/dr-decode/src/profile.rs:237`](../../core/dr-decode/src/profile.rs#L237), [`core/dr-decode/src/profile.rs:288`](../../core/dr-decode/src/profile.rs#L288), [`core/dr-decode/src/profile.rs:345`](../../core/dr-decode/src/profile.rs#L345), [`core/dr-decode/src/profile.rs:475`](../../core/dr-decode/src/profile.rs#L475), [`core/dr-decode/src/profile.rs:509`](../../core/dr-decode/src/profile.rs#L509), [`core/dr-decode/src/profile.rs:680`](../../core/dr-decode/src/profile.rs#L680), [`core/dr-gpu/src/adjust.rs:523`](../../core/dr-gpu/src/adjust.rs#L523), [`core/dr-gpu/src/adjust.rs:536`](../../core/dr-gpu/src/adjust.rs#L536), [`core/dr-gpu/src/adjust.rs:74`](../../core/dr-gpu/src/adjust.rs#L74), [`core/dr-gpu/src/demosaic.rs:110`](../../core/dr-gpu/src/demosaic.rs#L110), [`core/dr-gpu/src/demosaic.rs:215`](../../core/dr-gpu/src/demosaic.rs#L215), [`core/dr-gpu/tests/camera_profile.rs:1`](../../core/dr-gpu/tests/camera_profile.rs#L1), [`core/dr-pipeline/src/declared/decl.rs:279`](../../core/dr-pipeline/src/declared/decl.rs#L279), [`core/dr-pipeline/src/operation.rs:2459`](../../core/dr-pipeline/src/operation.rs#L2459), [`core/dr-pipeline/src/operation.rs:2483`](../../core/dr-pipeline/src/operation.rs#L2483), [`core/dr-pipeline/src/operation.rs:273`](../../core/dr-pipeline/src/operation.rs#L273), [`core/dr-pipeline/src/operation.rs:349`](../../core/dr-pipeline/src/operation.rs#L349), [`core/dr-pipeline/src/operation.rs:369`](../../core/dr-pipeline/src/operation.rs#L369), [`core/dr-pipeline/src/operation.rs:443`](../../core/dr-pipeline/src/operation.rs#L443), [`core/dr-pipeline/src/operation.rs:463`](../../core/dr-pipeline/src/operation.rs#L463), [`core/dr-pipeline/src/ops/camera_profile.rs:1`](../../core/dr-pipeline/src/ops/camera_profile.rs#L1), [`core/dr-pipeline/src/ops/camera_profile.rs:355`](../../core/dr-pipeline/src/ops/camera_profile.rs#L355), [`core/dr-pipeline/src/ops/camera_profile.rs:381`](../../core/dr-pipeline/src/ops/camera_profile.rs#L381), [`core/dr-pipeline/src/view.rs:227`](../../core/dr-pipeline/src/view.rs#L227), [`core/dr-types/src/hue_sat.rs:1`](../../core/dr-types/src/hue_sat.rs#L1), [`core/dr-types/src/tone.rs:157`](../../core/dr-types/src/tone.rs#L157), [`core/dr-types/src/tone.rs:1`](../../core/dr-types/src/tone.rs#L1), [`ui/dr-ui/src/develop/session.rs:600`](../../ui/dr-ui/src/develop/session.rs#L600), [`ui/dr-ui/src/develop/session.rs:613`](../../ui/dr-ui/src/develop/session.rs#L613), [`ui/dr-ui/src/develop/session.rs:648`](../../ui/dr-ui/src/develop/session.rs#L648), [`ui/dr-ui/src/develop/session.rs:657`](../../ui/dr-ui/src/develop/session.rs#L657), [`ui/dr-ui/src/develop/session.rs:73`](../../ui/dr-ui/src/develop/session.rs#L73), [`ui/dr-ui/src/develop/session.rs:849`](../../ui/dr-ui/src/develop/session.rs#L849), [`ui/dr-ui/src/develop/session.rs:893`](../../ui/dr-ui/src/develop/session.rs#L893), [`ui/dr-ui/src/lib.rs:1208`](../../ui/dr-ui/src/lib.rs#L1208), [`ui/dr-ui/src/lib.rs:1506`](../../ui/dr-ui/src/lib.rs#L1506), [`ui/dr-ui/src/lib.rs:1524`](../../ui/dr-ui/src/lib.rs#L1524), [`ui/dr-ui/src/lib.rs:330`](../../ui/dr-ui/src/lib.rs#L330), [`ui/dr-ui/ui/develop.slint:386`](../../ui/dr-ui/ui/develop.slint#L386), [`ui/dr-ui/ui/develop.slint:395`](../../ui/dr-ui/ui/develop.slint#L395) | +| FR-DEV-3f | [`core/dr-film/src/bake.rs:161`](../../core/dr-film/src/bake.rs#L161), [`core/dr-film/src/bake.rs:384`](../../core/dr-film/src/bake.rs#L384), [`core/dr-film/src/bake.rs:52`](../../core/dr-film/src/bake.rs#L52), [`core/dr-film/src/bake.rs:662`](../../core/dr-film/src/bake.rs#L662), [`core/dr-film/src/bake.rs:689`](../../core/dr-film/src/bake.rs#L689), [`core/dr-film/src/bake.rs:710`](../../core/dr-film/src/bake.rs#L710), [`core/dr-film/src/bake.rs:747`](../../core/dr-film/src/bake.rs#L747), [`core/dr-film/src/bake.rs:95`](../../core/dr-film/src/bake.rs#L95), [`core/dr-film/src/boolean_grain.rs:1`](../../core/dr-film/src/boolean_grain.rs#L1), [`core/dr-film/src/boolean_grain.rs:78`](../../core/dr-film/src/boolean_grain.rs#L78), [`core/dr-film/src/grain.rs:140`](../../core/dr-film/src/grain.rs#L140), [`core/dr-film/src/grain.rs:1`](../../core/dr-film/src/grain.rs#L1), [`core/dr-film/src/grain.rs:302`](../../core/dr-film/src/grain.rs#L302), [`core/dr-film/src/grain.rs:79`](../../core/dr-film/src/grain.rs#L79), [`core/dr-film/src/lib.rs:160`](../../core/dr-film/src/lib.rs#L160), [`core/dr-film/src/lib.rs:1`](../../core/dr-film/src/lib.rs#L1), [`core/dr-film/src/profile.rs:100`](../../core/dr-film/src/profile.rs#L100), [`core/dr-film/src/profile.rs:142`](../../core/dr-film/src/profile.rs#L142), [`core/dr-film/src/profile.rs:182`](../../core/dr-film/src/profile.rs#L182), [`core/dr-film/src/profile.rs:259`](../../core/dr-film/src/profile.rs#L259), [`core/dr-film/src/profile.rs:502`](../../core/dr-film/src/profile.rs#L502), [`core/dr-film/src/profile.rs:73`](../../core/dr-film/src/profile.rs#L73), [`core/dr-gpu/src/adjust.rs:152`](../../core/dr-gpu/src/adjust.rs#L152), [`core/dr-gpu/src/adjust.rs:422`](../../core/dr-gpu/src/adjust.rs#L422), [`core/dr-gpu/src/adjust.rs:632`](../../core/dr-gpu/src/adjust.rs#L632), [`core/dr-gpu/src/adjust.rs:67`](../../core/dr-gpu/src/adjust.rs#L67), [`core/dr-gpu/src/adjust.rs:765`](../../core/dr-gpu/src/adjust.rs#L765), [`core/dr-gpu/tests/film_sim.rs:1`](../../core/dr-gpu/tests/film_sim.rs#L1), [`core/dr-gpu/tests/film_sim.rs:215`](../../core/dr-gpu/tests/film_sim.rs#L215), [`core/dr-gpu/tests/film_sim.rs:349`](../../core/dr-gpu/tests/film_sim.rs#L349), [`core/dr-gpu/tests/film_sim.rs:388`](../../core/dr-gpu/tests/film_sim.rs#L388), [`core/dr-gpu/tests/film_sim.rs:417`](../../core/dr-gpu/tests/film_sim.rs#L417), [`core/dr-gpu/tests/film_sim.rs:457`](../../core/dr-gpu/tests/film_sim.rs#L457), [`core/dr-pipeline/src/graph.rs:110`](../../core/dr-pipeline/src/graph.rs#L110), [`core/dr-pipeline/src/graph.rs:187`](../../core/dr-pipeline/src/graph.rs#L187), [`core/dr-pipeline/src/graph.rs:687`](../../core/dr-pipeline/src/graph.rs#L687), [`core/dr-pipeline/src/mask.rs:2452`](../../core/dr-pipeline/src/mask.rs#L2452), [`core/dr-pipeline/src/mask.rs:2485`](../../core/dr-pipeline/src/mask.rs#L2485), [`core/dr-pipeline/src/operation.rs:1086`](../../core/dr-pipeline/src/operation.rs#L1086), [`core/dr-pipeline/src/operation.rs:1436`](../../core/dr-pipeline/src/operation.rs#L1436), [`core/dr-pipeline/src/operation.rs:1670`](../../core/dr-pipeline/src/operation.rs#L1670), [`core/dr-pipeline/src/operation.rs:1698`](../../core/dr-pipeline/src/operation.rs#L1698), [`core/dr-pipeline/src/operation.rs:1750`](../../core/dr-pipeline/src/operation.rs#L1750), [`core/dr-pipeline/src/operation.rs:2377`](../../core/dr-pipeline/src/operation.rs#L2377), [`core/dr-pipeline/src/operation.rs:309`](../../core/dr-pipeline/src/operation.rs#L309), [`core/dr-pipeline/src/operation.rs:323`](../../core/dr-pipeline/src/operation.rs#L323), [`core/dr-pipeline/src/operation.rs:334`](../../core/dr-pipeline/src/operation.rs#L334), [`core/dr-pipeline/src/operation.rs:349`](../../core/dr-pipeline/src/operation.rs#L349), [`core/dr-pipeline/src/ops/film_sim.rs:129`](../../core/dr-pipeline/src/ops/film_sim.rs#L129), [`core/dr-pipeline/src/ops/film_sim.rs:134`](../../core/dr-pipeline/src/ops/film_sim.rs#L134), [`core/dr-pipeline/src/ops/film_sim.rs:186`](../../core/dr-pipeline/src/ops/film_sim.rs#L186), [`core/dr-pipeline/src/ops/film_sim.rs:1`](../../core/dr-pipeline/src/ops/film_sim.rs#L1), [`core/dr-pipeline/src/ops/film_sim.rs:233`](../../core/dr-pipeline/src/ops/film_sim.rs#L233), [`core/dr-pipeline/src/ops/film_sim.rs:315`](../../core/dr-pipeline/src/ops/film_sim.rs#L315), [`core/dr-pipeline/src/ops/film_sim.rs:329`](../../core/dr-pipeline/src/ops/film_sim.rs#L329), [`core/dr-pipeline/src/ops/film_sim.rs:438`](../../core/dr-pipeline/src/ops/film_sim.rs#L438), [`core/dr-pipeline/src/ops/film_sim.rs:48`](../../core/dr-pipeline/src/ops/film_sim.rs#L48), [`core/dr-pipeline/src/ops/film_sim.rs:736`](../../core/dr-pipeline/src/ops/film_sim.rs#L736), [`core/dr-pipeline/src/preset.rs:1293`](../../core/dr-pipeline/src/preset.rs#L1293), [`core/dr-pipeline/src/preset.rs:1303`](../../core/dr-pipeline/src/preset.rs#L1303), [`core/dr-pipeline/src/preset.rs:1312`](../../core/dr-pipeline/src/preset.rs#L1312), [`core/dr-pipeline/src/preset.rs:1328`](../../core/dr-pipeline/src/preset.rs#L1328), [`core/dr-pipeline/src/preset.rs:1340`](../../core/dr-pipeline/src/preset.rs#L1340), [`core/dr-pipeline/src/preset.rs:1356`](../../core/dr-pipeline/src/preset.rs#L1356), [`core/dr-pipeline/src/preset.rs:1529`](../../core/dr-pipeline/src/preset.rs#L1529), [`core/dr-pipeline/src/preset.rs:1544`](../../core/dr-pipeline/src/preset.rs#L1544), [`core/dr-pipeline/src/preset.rs:248`](../../core/dr-pipeline/src/preset.rs#L248), [`core/dr-pipeline/src/preset.rs:689`](../../core/dr-pipeline/src/preset.rs#L689), [`core/dr-pipeline/src/preset.rs:778`](../../core/dr-pipeline/src/preset.rs#L778), [`core/dr-pipeline/src/sidecar.rs:1077`](../../core/dr-pipeline/src/sidecar.rs#L1077), [`core/dr-pipeline/src/sidecar.rs:133`](../../core/dr-pipeline/src/sidecar.rs#L133), [`core/dr-pipeline/src/sidecar.rs:217`](../../core/dr-pipeline/src/sidecar.rs#L217), [`core/dr-pipeline/src/sidecar.rs:2724`](../../core/dr-pipeline/src/sidecar.rs#L2724), [`core/dr-pipeline/src/sidecar.rs:2800`](../../core/dr-pipeline/src/sidecar.rs#L2800), [`core/dr-pipeline/src/sidecar.rs:595`](../../core/dr-pipeline/src/sidecar.rs#L595), [`core/dr-pipeline/src/sidecar.rs:898`](../../core/dr-pipeline/src/sidecar.rs#L898), [`core/dr-pipeline/src/state.rs:100`](../../core/dr-pipeline/src/state.rs#L100), [`core/dr-pipeline/src/state.rs:115`](../../core/dr-pipeline/src/state.rs#L115), [`core/dr-pipeline/src/state.rs:60`](../../core/dr-pipeline/src/state.rs#L60), [`ui/dr-ui/src/develop/render.rs:1002`](../../ui/dr-ui/src/develop/render.rs#L1002), [`ui/dr-ui/src/develop/render.rs:1053`](../../ui/dr-ui/src/develop/render.rs#L1053), [`ui/dr-ui/src/develop/render.rs:1079`](../../ui/dr-ui/src/develop/render.rs#L1079), [`ui/dr-ui/src/develop/render.rs:1402`](../../ui/dr-ui/src/develop/render.rs#L1402), [`ui/dr-ui/src/develop/render.rs:1442`](../../ui/dr-ui/src/develop/render.rs#L1442), [`ui/dr-ui/src/develop/render.rs:1477`](../../ui/dr-ui/src/develop/render.rs#L1477), [`ui/dr-ui/src/develop/render.rs:830`](../../ui/dr-ui/src/develop/render.rs#L830), [`ui/dr-ui/src/develop/render.rs:847`](../../ui/dr-ui/src/develop/render.rs#L847), [`ui/dr-ui/src/develop/render.rs:859`](../../ui/dr-ui/src/develop/render.rs#L859), [`ui/dr-ui/src/develop/render.rs:897`](../../ui/dr-ui/src/develop/render.rs#L897), [`ui/dr-ui/src/develop/render.rs:934`](../../ui/dr-ui/src/develop/render.rs#L934), [`ui/dr-ui/src/develop/render.rs:945`](../../ui/dr-ui/src/develop/render.rs#L945), [`ui/dr-ui/src/develop/session.rs:727`](../../ui/dr-ui/src/develop/session.rs#L727), [`ui/dr-ui/src/develop/session.rs:747`](../../ui/dr-ui/src/develop/session.rs#L747), [`ui/dr-ui/src/develop/tabs.rs:80`](../../ui/dr-ui/src/develop/tabs.rs#L80), [`ui/dr-ui/src/develop_ui.rs:534`](../../ui/dr-ui/src/develop_ui.rs#L534), [`ui/dr-ui/src/lib.rs:881`](../../ui/dr-ui/src/lib.rs#L881), [`ui/dr-ui/src/lib.rs:946`](../../ui/dr-ui/src/lib.rs#L946), [`ui/dr-ui/src/library/sidecar.rs:325`](../../ui/dr-ui/src/library/sidecar.rs#L325), [`ui/dr-ui/src/library/sidecar.rs:50`](../../ui/dr-ui/src/library/sidecar.rs#L50), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:602`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L602), [`ui/dr-ui/src/presets.rs:1892`](../../ui/dr-ui/src/presets.rs#L1892), [`ui/dr-ui/src/presets.rs:422`](../../ui/dr-ui/src/presets.rs#L422), [`ui/dr-ui/tests/film_list_reaches_every_stock.rs:1`](../../ui/dr-ui/tests/film_list_reaches_every_stock.rs#L1), [`ui/dr-ui/ui/adjust.slint:1071`](../../ui/dr-ui/ui/adjust.slint#L1071), [`ui/dr-ui/ui/adjust.slint:1081`](../../ui/dr-ui/ui/adjust.slint#L1081), [`ui/dr-ui/ui/adjust.slint:1298`](../../ui/dr-ui/ui/adjust.slint#L1298) | +| FR-DEV-3g | [`core/dr-decode/src/lib.rs:553`](../../core/dr-decode/src/lib.rs#L553), [`core/dr-decode/src/profile.rs:743`](../../core/dr-decode/src/profile.rs#L743), [`core/dr-denoise/src/lib.rs:1`](../../core/dr-denoise/src/lib.rs#L1), [`core/dr-denoise/src/noise.rs:1`](../../core/dr-denoise/src/noise.rs#L1), [`core/dr-denoise/src/onnx.rs:1`](../../core/dr-denoise/src/onnx.rs#L1), [`core/dr-denoise/src/tile.rs:1`](../../core/dr-denoise/src/tile.rs#L1), [`core/dr-gpu/src/demosaic.rs:1046`](../../core/dr-gpu/src/demosaic.rs#L1046), [`core/dr-gpu/src/demosaic.rs:349`](../../core/dr-gpu/src/demosaic.rs#L349), [`core/dr-gpu/src/grain.rs:1`](../../core/dr-gpu/src/grain.rs#L1), [`core/dr-gpu/tests/grain.rs:1`](../../core/dr-gpu/tests/grain.rs#L1), [`core/dr-pipeline/src/graph.rs:173`](../../core/dr-pipeline/src/graph.rs#L173), [`core/dr-pipeline/src/graph.rs:417`](../../core/dr-pipeline/src/graph.rs#L417), [`core/dr-pipeline/src/graph.rs:423`](../../core/dr-pipeline/src/graph.rs#L423), [`core/dr-pipeline/src/graph.rs:431`](../../core/dr-pipeline/src/graph.rs#L431), [`core/dr-pipeline/src/graph.rs:619`](../../core/dr-pipeline/src/graph.rs#L619), [`core/dr-pipeline/src/learned_denoise.rs:1`](../../core/dr-pipeline/src/learned_denoise.rs#L1), [`ui/dr-ui/src/activity.rs:86`](../../ui/dr-ui/src/activity.rs#L86), [`ui/dr-ui/src/develop/denoise.rs:1`](../../ui/dr-ui/src/develop/denoise.rs#L1), [`ui/dr-ui/src/develop/render.rs:238`](../../ui/dr-ui/src/develop/render.rs#L238), [`ui/dr-ui/src/develop/render.rs:712`](../../ui/dr-ui/src/develop/render.rs#L712), [`ui/dr-ui/src/develop/session.rs:121`](../../ui/dr-ui/src/develop/session.rs#L121), [`ui/dr-ui/src/develop/session.rs:384`](../../ui/dr-ui/src/develop/session.rs#L384), [`ui/dr-ui/src/develop_ui.rs:139`](../../ui/dr-ui/src/develop_ui.rs#L139), [`ui/dr-ui/src/lib.rs:327`](../../ui/dr-ui/src/lib.rs#L327), [`ui/dr-ui/src/library/paths.rs:378`](../../ui/dr-ui/src/library/paths.rs#L378), [`ui/dr-ui/src/library/paths.rs:382`](../../ui/dr-ui/src/library/paths.rs#L382) | +| FR-DEV-3h | [`core/dr-decode/src/lib.rs:451`](../../core/dr-decode/src/lib.rs#L451), [`core/dr-decode/src/preview.rs:29`](../../core/dr-decode/src/preview.rs#L29), [`core/dr-pipeline/src/framing.rs:1492`](../../core/dr-pipeline/src/framing.rs#L1492), [`core/dr-pipeline/src/framing.rs:499`](../../core/dr-pipeline/src/framing.rs#L499), [`core/dr-pipeline/src/framing.rs:717`](../../core/dr-pipeline/src/framing.rs#L717), [`core/dr-types/src/lib.rs:342`](../../core/dr-types/src/lib.rs#L342), [`core/dr-types/src/lib.rs:450`](../../core/dr-types/src/lib.rs#L450), [`core/dr-types/src/lib.rs:462`](../../core/dr-types/src/lib.rs#L462), [`core/dr-types/src/lib.rs:478`](../../core/dr-types/src/lib.rs#L478), [`ui/dr-ui/src/develop/masks.rs:280`](../../ui/dr-ui/src/develop/masks.rs#L280), [`ui/dr-ui/src/develop/segmentation.rs:114`](../../ui/dr-ui/src/develop/segmentation.rs#L114), [`ui/dr-ui/src/segmentation.rs:499`](../../ui/dr-ui/src/segmentation.rs#L499) | | FR-DEV-3i | [`core/dr-pipeline/src/mask.rs:558`](../../core/dr-pipeline/src/mask.rs#L558), [`core/dr-segment/src/lib.rs:1`](../../core/dr-segment/src/lib.rs#L1), [`ui/dr-ui/src/segmentation.rs:1`](../../ui/dr-ui/src/segmentation.rs#L1) | -| FR-DEV-3j | [`core/dr-gpu/src/adjust.rs:1301`](../../core/dr-gpu/src/adjust.rs#L1301), [`core/dr-gpu/src/adjust.rs:1539`](../../core/dr-gpu/src/adjust.rs#L1539), [`core/dr-gpu/src/adjust.rs:3392`](../../core/dr-gpu/src/adjust.rs#L3392), [`core/dr-gpu/tests/scene_referred.rs:144`](../../core/dr-gpu/tests/scene_referred.rs#L144), [`core/dr-gpu/tests/scene_referred.rs:1`](../../core/dr-gpu/tests/scene_referred.rs#L1), [`core/dr-gpu/tests/view_transform.rs:115`](../../core/dr-gpu/tests/view_transform.rs#L115), [`core/dr-gpu/tests/view_transform.rs:153`](../../core/dr-gpu/tests/view_transform.rs#L153), [`core/dr-gpu/tests/view_transform.rs:1`](../../core/dr-gpu/tests/view_transform.rs#L1), [`core/dr-gpu/tests/view_transform.rs:66`](../../core/dr-gpu/tests/view_transform.rs#L66), [`core/dr-gpu/tests/view_transform.rs:89`](../../core/dr-gpu/tests/view_transform.rs#L89), [`core/dr-pipeline/src/operation.rs:1414`](../../core/dr-pipeline/src/operation.rs#L1414), [`core/dr-pipeline/src/operation.rs:2377`](../../core/dr-pipeline/src/operation.rs#L2377), [`core/dr-pipeline/src/operation.rs:2493`](../../core/dr-pipeline/src/operation.rs#L2493), [`core/dr-pipeline/src/operation.rs:2510`](../../core/dr-pipeline/src/operation.rs#L2510), [`core/dr-pipeline/src/operation.rs:2700`](../../core/dr-pipeline/src/operation.rs#L2700), [`core/dr-pipeline/src/operation.rs:2738`](../../core/dr-pipeline/src/operation.rs#L2738), [`core/dr-pipeline/src/operation.rs:580`](../../core/dr-pipeline/src/operation.rs#L580), [`core/dr-pipeline/src/operation.rs:880`](../../core/dr-pipeline/src/operation.rs#L880), [`core/dr-pipeline/src/operation.rs:930`](../../core/dr-pipeline/src/operation.rs#L930), [`core/dr-pipeline/src/ops/film_sim.rs:315`](../../core/dr-pipeline/src/ops/film_sim.rs#L315), [`core/dr-pipeline/src/ops/view_transform.rs:168`](../../core/dr-pipeline/src/ops/view_transform.rs#L168), [`core/dr-pipeline/src/ops/view_transform.rs:1`](../../core/dr-pipeline/src/ops/view_transform.rs#L1), [`core/dr-pipeline/src/view.rs:184`](../../core/dr-pipeline/src/view.rs#L184), [`core/dr-pipeline/src/view.rs:197`](../../core/dr-pipeline/src/view.rs#L197), [`core/dr-pipeline/src/view.rs:1`](../../core/dr-pipeline/src/view.rs#L1), [`core/dr-pipeline/src/view.rs:211`](../../core/dr-pipeline/src/view.rs#L211), [`core/dr-pipeline/src/view.rs:227`](../../core/dr-pipeline/src/view.rs#L227), [`core/dr-pipeline/src/view.rs:241`](../../core/dr-pipeline/src/view.rs#L241), [`core/dr-pipeline/src/view.rs:252`](../../core/dr-pipeline/src/view.rs#L252) | +| FR-DEV-3j | [`core/dr-gpu/src/adjust.rs:1301`](../../core/dr-gpu/src/adjust.rs#L1301), [`core/dr-gpu/src/adjust.rs:1539`](../../core/dr-gpu/src/adjust.rs#L1539), [`core/dr-gpu/src/adjust.rs:3396`](../../core/dr-gpu/src/adjust.rs#L3396), [`core/dr-gpu/tests/scene_referred.rs:145`](../../core/dr-gpu/tests/scene_referred.rs#L145), [`core/dr-gpu/tests/scene_referred.rs:1`](../../core/dr-gpu/tests/scene_referred.rs#L1), [`core/dr-gpu/tests/view_transform.rs:116`](../../core/dr-gpu/tests/view_transform.rs#L116), [`core/dr-gpu/tests/view_transform.rs:154`](../../core/dr-gpu/tests/view_transform.rs#L154), [`core/dr-gpu/tests/view_transform.rs:1`](../../core/dr-gpu/tests/view_transform.rs#L1), [`core/dr-gpu/tests/view_transform.rs:67`](../../core/dr-gpu/tests/view_transform.rs#L67), [`core/dr-gpu/tests/view_transform.rs:90`](../../core/dr-gpu/tests/view_transform.rs#L90), [`core/dr-pipeline/src/operation.rs:1414`](../../core/dr-pipeline/src/operation.rs#L1414), [`core/dr-pipeline/src/operation.rs:2377`](../../core/dr-pipeline/src/operation.rs#L2377), [`core/dr-pipeline/src/operation.rs:2493`](../../core/dr-pipeline/src/operation.rs#L2493), [`core/dr-pipeline/src/operation.rs:2510`](../../core/dr-pipeline/src/operation.rs#L2510), [`core/dr-pipeline/src/operation.rs:2700`](../../core/dr-pipeline/src/operation.rs#L2700), [`core/dr-pipeline/src/operation.rs:2738`](../../core/dr-pipeline/src/operation.rs#L2738), [`core/dr-pipeline/src/operation.rs:580`](../../core/dr-pipeline/src/operation.rs#L580), [`core/dr-pipeline/src/operation.rs:880`](../../core/dr-pipeline/src/operation.rs#L880), [`core/dr-pipeline/src/operation.rs:930`](../../core/dr-pipeline/src/operation.rs#L930), [`core/dr-pipeline/src/ops/film_sim.rs:315`](../../core/dr-pipeline/src/ops/film_sim.rs#L315), [`core/dr-pipeline/src/ops/view_transform.rs:168`](../../core/dr-pipeline/src/ops/view_transform.rs#L168), [`core/dr-pipeline/src/ops/view_transform.rs:1`](../../core/dr-pipeline/src/ops/view_transform.rs#L1), [`core/dr-pipeline/src/view.rs:184`](../../core/dr-pipeline/src/view.rs#L184), [`core/dr-pipeline/src/view.rs:197`](../../core/dr-pipeline/src/view.rs#L197), [`core/dr-pipeline/src/view.rs:1`](../../core/dr-pipeline/src/view.rs#L1), [`core/dr-pipeline/src/view.rs:211`](../../core/dr-pipeline/src/view.rs#L211), [`core/dr-pipeline/src/view.rs:227`](../../core/dr-pipeline/src/view.rs#L227), [`core/dr-pipeline/src/view.rs:241`](../../core/dr-pipeline/src/view.rs#L241), [`core/dr-pipeline/src/view.rs:252`](../../core/dr-pipeline/src/view.rs#L252), [`core/dr-types/src/tone.rs:1`](../../core/dr-types/src/tone.rs#L1) | | FR-DEV-4 | [`core/dr-gpu/src/adjust.rs:1107`](../../core/dr-gpu/src/adjust.rs#L1107), [`core/dr-gpu/src/lib.rs:370`](../../core/dr-gpu/src/lib.rs#L370), [`ui/dr-ui/ui/crop.slint:1`](../../ui/dr-ui/ui/crop.slint#L1) | | FR-DEV-5 | [`core/dr-pipeline/src/graph.rs:1597`](../../core/dr-pipeline/src/graph.rs#L1597), [`core/dr-pipeline/src/graph.rs:708`](../../core/dr-pipeline/src/graph.rs#L708), [`core/dr-pipeline/src/graph.rs:768`](../../core/dr-pipeline/src/graph.rs#L768), [`core/dr-pipeline/src/history.rs:102`](../../core/dr-pipeline/src/history.rs#L102), [`core/dr-pipeline/src/history.rs:110`](../../core/dr-pipeline/src/history.rs#L110), [`core/dr-pipeline/src/history.rs:127`](../../core/dr-pipeline/src/history.rs#L127), [`core/dr-pipeline/src/history.rs:184`](../../core/dr-pipeline/src/history.rs#L184), [`core/dr-pipeline/src/history.rs:1`](../../core/dr-pipeline/src/history.rs#L1), [`core/dr-pipeline/src/history.rs:214`](../../core/dr-pipeline/src/history.rs#L214), [`core/dr-pipeline/src/history.rs:234`](../../core/dr-pipeline/src/history.rs#L234), [`core/dr-pipeline/src/history.rs:293`](../../core/dr-pipeline/src/history.rs#L293), [`core/dr-pipeline/src/history.rs:479`](../../core/dr-pipeline/src/history.rs#L479), [`core/dr-pipeline/src/history.rs:489`](../../core/dr-pipeline/src/history.rs#L489), [`core/dr-pipeline/src/history.rs:499`](../../core/dr-pipeline/src/history.rs#L499), [`core/dr-pipeline/src/history.rs:526`](../../core/dr-pipeline/src/history.rs#L526), [`core/dr-pipeline/src/history.rs:86`](../../core/dr-pipeline/src/history.rs#L86), [`core/dr-pipeline/src/sidecar.rs:1067`](../../core/dr-pipeline/src/sidecar.rs#L1067), [`core/dr-pipeline/src/sidecar.rs:147`](../../core/dr-pipeline/src/sidecar.rs#L147), [`core/dr-pipeline/src/sidecar.rs:2515`](../../core/dr-pipeline/src/sidecar.rs#L2515), [`core/dr-pipeline/src/sidecar.rs:2551`](../../core/dr-pipeline/src/sidecar.rs#L2551), [`core/dr-pipeline/src/sidecar.rs:2563`](../../core/dr-pipeline/src/sidecar.rs#L2563), [`core/dr-pipeline/src/sidecar.rs:318`](../../core/dr-pipeline/src/sidecar.rs#L318), [`core/dr-pipeline/src/sidecar.rs:713`](../../core/dr-pipeline/src/sidecar.rs#L713), [`core/dr-pipeline/src/sidecar.rs:729`](../../core/dr-pipeline/src/sidecar.rs#L729), [`core/dr-pipeline/src/sidecar.rs:876`](../../core/dr-pipeline/src/sidecar.rs#L876), [`core/dr-pipeline/src/state.rs:1`](../../core/dr-pipeline/src/state.rs#L1), [`core/dr-pipeline/src/state.rs:75`](../../core/dr-pipeline/src/state.rs#L75), [`ui/dr-ui/src/develop/framing.rs:945`](../../ui/dr-ui/src/develop/framing.rs#L945), [`ui/dr-ui/src/develop/history.rs:11`](../../ui/dr-ui/src/develop/history.rs#L11), [`ui/dr-ui/src/develop/history.rs:152`](../../ui/dr-ui/src/develop/history.rs#L152), [`ui/dr-ui/src/develop/history.rs:165`](../../ui/dr-ui/src/develop/history.rs#L165), [`ui/dr-ui/src/develop/history.rs:178`](../../ui/dr-ui/src/develop/history.rs#L178), [`ui/dr-ui/src/develop/history.rs:190`](../../ui/dr-ui/src/develop/history.rs#L190), [`ui/dr-ui/src/develop/history.rs:206`](../../ui/dr-ui/src/develop/history.rs#L206), [`ui/dr-ui/src/develop/history.rs:238`](../../ui/dr-ui/src/develop/history.rs#L238), [`ui/dr-ui/src/develop/history.rs:242`](../../ui/dr-ui/src/develop/history.rs#L242), [`ui/dr-ui/src/develop/history.rs:261`](../../ui/dr-ui/src/develop/history.rs#L261), [`ui/dr-ui/src/develop/history.rs:277`](../../ui/dr-ui/src/develop/history.rs#L277), [`ui/dr-ui/src/develop/history.rs:299`](../../ui/dr-ui/src/develop/history.rs#L299), [`ui/dr-ui/src/develop/history.rs:29`](../../ui/dr-ui/src/develop/history.rs#L29), [`ui/dr-ui/src/develop/history.rs:359`](../../ui/dr-ui/src/develop/history.rs#L359), [`ui/dr-ui/src/develop/history.rs:68`](../../ui/dr-ui/src/develop/history.rs#L68), [`ui/dr-ui/src/develop/history.rs:82`](../../ui/dr-ui/src/develop/history.rs#L82), [`ui/dr-ui/src/develop/history.rs:93`](../../ui/dr-ui/src/develop/history.rs#L93), [`ui/dr-ui/src/develop/render.rs:1079`](../../ui/dr-ui/src/develop/render.rs#L1079), [`ui/dr-ui/src/develop/render.rs:1115`](../../ui/dr-ui/src/develop/render.rs#L1115), [`ui/dr-ui/src/develop/render.rs:859`](../../ui/dr-ui/src/develop/render.rs#L859), [`ui/dr-ui/src/develop/session.rs:86`](../../ui/dr-ui/src/develop/session.rs#L86), [`ui/dr-ui/src/develop/session.rs:95`](../../ui/dr-ui/src/develop/session.rs#L95), [`ui/dr-ui/src/develop/white_balance.rs:11`](../../ui/dr-ui/src/develop/white_balance.rs#L11), [`ui/dr-ui/src/develop/white_balance.rs:162`](../../ui/dr-ui/src/develop/white_balance.rs#L162), [`ui/dr-ui/src/develop_ui.rs:852`](../../ui/dr-ui/src/develop_ui.rs#L852), [`ui/dr-ui/src/develop_ui.rs:872`](../../ui/dr-ui/src/develop_ui.rs#L872), [`ui/dr-ui/src/labels.rs:12`](../../ui/dr-ui/src/labels.rs#L12), [`ui/dr-ui/src/labels.rs:302`](../../ui/dr-ui/src/labels.rs#L302), [`ui/dr-ui/src/labels.rs:31`](../../ui/dr-ui/src/labels.rs#L31), [`ui/dr-ui/src/lib.rs:2170`](../../ui/dr-ui/src/lib.rs#L2170), [`ui/dr-ui/src/lib.rs:2175`](../../ui/dr-ui/src/lib.rs#L2175), [`ui/dr-ui/src/lib.rs:2207`](../../ui/dr-ui/src/lib.rs#L2207), [`ui/dr-ui/src/lib.rs:2216`](../../ui/dr-ui/src/lib.rs#L2216), [`ui/dr-ui/src/lib.rs:2233`](../../ui/dr-ui/src/lib.rs#L2233), [`ui/dr-ui/src/library/sidecar.rs:351`](../../ui/dr-ui/src/library/sidecar.rs#L351), [`ui/dr-ui/src/library/sidecar.rs:61`](../../ui/dr-ui/src/library/sidecar.rs#L61), [`ui/dr-ui/src/presets.rs:2076`](../../ui/dr-ui/src/presets.rs#L2076), [`ui/dr-ui/src/presets.rs:373`](../../ui/dr-ui/src/presets.rs#L373), [`ui/dr-ui/src/presets.rs:437`](../../ui/dr-ui/src/presets.rs#L437), [`ui/dr-ui/src/presets.rs:557`](../../ui/dr-ui/src/presets.rs#L557), [`ui/dr-ui/ui/history.slint:192`](../../ui/dr-ui/ui/history.slint#L192), [`ui/dr-ui/ui/history.slint:1`](../../ui/dr-ui/ui/history.slint#L1), [`ui/dr-ui/ui/history.slint:219`](../../ui/dr-ui/ui/history.slint#L219), [`ui/dr-ui/ui/history.slint:304`](../../ui/dr-ui/ui/history.slint#L304), [`ui/dr-ui/ui/history.slint:43`](../../ui/dr-ui/ui/history.slint#L43), [`ui/dr-ui/ui/history.slint:53`](../../ui/dr-ui/ui/history.slint#L53) | | FR-DEV-6 | [`core/dr-pipeline/src/bundled.rs:1`](../../core/dr-pipeline/src/bundled.rs#L1), [`core/dr-pipeline/src/preset.rs:1293`](../../core/dr-pipeline/src/preset.rs#L1293), [`core/dr-pipeline/src/preset.rs:1303`](../../core/dr-pipeline/src/preset.rs#L1303), [`core/dr-pipeline/src/preset.rs:1312`](../../core/dr-pipeline/src/preset.rs#L1312), [`core/dr-pipeline/src/preset.rs:1328`](../../core/dr-pipeline/src/preset.rs#L1328), [`core/dr-pipeline/src/preset.rs:1340`](../../core/dr-pipeline/src/preset.rs#L1340), [`core/dr-pipeline/src/preset.rs:1356`](../../core/dr-pipeline/src/preset.rs#L1356), [`core/dr-pipeline/src/preset.rs:1382`](../../core/dr-pipeline/src/preset.rs#L1382), [`core/dr-pipeline/src/preset.rs:1404`](../../core/dr-pipeline/src/preset.rs#L1404), [`core/dr-pipeline/src/preset.rs:1418`](../../core/dr-pipeline/src/preset.rs#L1418), [`core/dr-pipeline/src/preset.rs:1436`](../../core/dr-pipeline/src/preset.rs#L1436), [`core/dr-pipeline/src/preset.rs:1529`](../../core/dr-pipeline/src/preset.rs#L1529), [`core/dr-pipeline/src/preset.rs:1544`](../../core/dr-pipeline/src/preset.rs#L1544), [`core/dr-pipeline/src/preset.rs:1`](../../core/dr-pipeline/src/preset.rs#L1), [`core/dr-pipeline/src/preset.rs:501`](../../core/dr-pipeline/src/preset.rs#L501), [`core/dr-pipeline/src/preset.rs:534`](../../core/dr-pipeline/src/preset.rs#L534), [`core/dr-preset-xmp/src/lib.rs:1`](../../core/dr-preset-xmp/src/lib.rs#L1), [`core/dr-preset-xmp/src/lib.rs:492`](../../core/dr-preset-xmp/src/lib.rs#L492), [`core/dr-types/src/settings.rs:443`](../../core/dr-types/src/settings.rs#L443), [`ui/dr-ui/src/develop/session.rs:699`](../../ui/dr-ui/src/develop/session.rs#L699), [`ui/dr-ui/src/develop/session.rs:720`](../../ui/dr-ui/src/develop/session.rs#L720), [`ui/dr-ui/src/develop_ui.rs:247`](../../ui/dr-ui/src/develop_ui.rs#L247), [`ui/dr-ui/src/develop_ui.rs:276`](../../ui/dr-ui/src/develop_ui.rs#L276), [`ui/dr-ui/src/lib.rs:1300`](../../ui/dr-ui/src/lib.rs#L1300), [`ui/dr-ui/src/library/sidecar.rs:12`](../../ui/dr-ui/src/library/sidecar.rs#L12), [`ui/dr-ui/src/library/sidecar.rs:40`](../../ui/dr-ui/src/library/sidecar.rs#L40), [`ui/dr-ui/src/library/thumbnails_fetch.rs:414`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L414), [`ui/dr-ui/src/library_ui/controller.rs:699`](../../ui/dr-ui/src/library_ui/controller.rs#L699), [`ui/dr-ui/src/library_ui/ratings_keywords.rs:495`](../../ui/dr-ui/src/library_ui/ratings_keywords.rs#L495), [`ui/dr-ui/src/library_ui/window.rs:823`](../../ui/dr-ui/src/library_ui/window.rs#L823), [`ui/dr-ui/src/preset_store.rs:1`](../../ui/dr-ui/src/preset_store.rs#L1), [`ui/dr-ui/src/presets.rs:1892`](../../ui/dr-ui/src/presets.rs#L1892), [`ui/dr-ui/src/presets.rs:1`](../../ui/dr-ui/src/presets.rs#L1), [`ui/dr-ui/src/presets.rs:707`](../../ui/dr-ui/src/presets.rs#L707), [`ui/dr-ui/src/presets.rs:746`](../../ui/dr-ui/src/presets.rs#L746), [`ui/dr-ui/src/presets.rs:996`](../../ui/dr-ui/src/presets.rs#L996), [`ui/dr-ui/ui/adjust.slint:937`](../../ui/dr-ui/ui/adjust.slint#L937), [`ui/dr-ui/ui/adjust.slint:962`](../../ui/dr-ui/ui/adjust.slint#L962), [`ui/dr-ui/ui/app.slint:1094`](../../ui/dr-ui/ui/app.slint#L1094), [`ui/dr-ui/ui/app.slint:1518`](../../ui/dr-ui/ui/app.slint#L1518), [`ui/dr-ui/ui/app.slint:1802`](../../ui/dr-ui/ui/app.slint#L1802), [`ui/dr-ui/ui/app.slint:2550`](../../ui/dr-ui/ui/app.slint#L2550), [`ui/dr-ui/ui/app.slint:3483`](../../ui/dr-ui/ui/app.slint#L3483), [`ui/dr-ui/ui/app.slint:3529`](../../ui/dr-ui/ui/app.slint#L3529), [`ui/dr-ui/ui/app.slint:527`](../../ui/dr-ui/ui/app.slint#L527), [`ui/dr-ui/ui/app.slint:538`](../../ui/dr-ui/ui/app.slint#L538), [`ui/dr-ui/ui/app.slint:698`](../../ui/dr-ui/ui/app.slint#L698), [`ui/dr-ui/ui/develop.slint:257`](../../ui/dr-ui/ui/develop.slint#L257), [`ui/dr-ui/ui/icons.slint:390`](../../ui/dr-ui/ui/icons.slint#L390), [`ui/dr-ui/ui/library.slint:2026`](../../ui/dr-ui/ui/library.slint#L2026), [`ui/dr-ui/ui/library.slint:2032`](../../ui/dr-ui/ui/library.slint#L2032), [`ui/dr-ui/ui/library.slint:3229`](../../ui/dr-ui/ui/library.slint#L3229), [`ui/dr-ui/ui/library.slint:5167`](../../ui/dr-ui/ui/library.slint#L5167), [`ui/dr-ui/ui/library.slint:5185`](../../ui/dr-ui/ui/library.slint#L5185), [`ui/dr-ui/ui/presets.slint:114`](../../ui/dr-ui/ui/presets.slint#L114), [`ui/dr-ui/ui/presets.slint:155`](../../ui/dr-ui/ui/presets.slint#L155), [`ui/dr-ui/ui/presets.slint:203`](../../ui/dr-ui/ui/presets.slint#L203), [`ui/dr-ui/ui/presets.slint:211`](../../ui/dr-ui/ui/presets.slint#L211), [`ui/dr-ui/ui/presets.slint:21`](../../ui/dr-ui/ui/presets.slint#L21), [`ui/dr-ui/ui/presets.slint:33`](../../ui/dr-ui/ui/presets.slint#L33), [`ui/dr-ui/ui/presets.slint:394`](../../ui/dr-ui/ui/presets.slint#L394), [`ui/dr-ui/ui/presets.slint:432`](../../ui/dr-ui/ui/presets.slint#L432), [`ui/dr-ui/ui/presets.slint:467`](../../ui/dr-ui/ui/presets.slint#L467), [`ui/dr-ui/ui/presets.slint:62`](../../ui/dr-ui/ui/presets.slint#L62), [`ui/dr-ui/ui/presets.slint:7`](../../ui/dr-ui/ui/presets.slint#L7), [`ui/dr-ui/ui/settings.slint:126`](../../ui/dr-ui/ui/settings.slint#L126), [`ui/dr-ui/ui/settings.slint:690`](../../ui/dr-ui/ui/settings.slint#L690), [`ui/dr-ui/ui/toolrail.slint:123`](../../ui/dr-ui/ui/toolrail.slint#L123), [`ui/dr-ui/ui/toolrail.slint:453`](../../ui/dr-ui/ui/toolrail.slint#L453) | | FR-DEV-7 | [`core/dr-pipeline/src/history.rs:214`](../../core/dr-pipeline/src/history.rs#L214), [`core/dr-pipeline/src/history.rs:499`](../../core/dr-pipeline/src/history.rs#L499), [`core/dr-pipeline/src/history.rs:526`](../../core/dr-pipeline/src/history.rs#L526), [`ui/dr-ui/src/develop/history.rs:107`](../../ui/dr-ui/src/develop/history.rs#L107), [`ui/dr-ui/src/develop/history.rs:124`](../../ui/dr-ui/src/develop/history.rs#L124), [`ui/dr-ui/src/develop/history.rs:206`](../../ui/dr-ui/src/develop/history.rs#L206), [`ui/dr-ui/src/develop/history.rs:238`](../../ui/dr-ui/src/develop/history.rs#L238), [`ui/dr-ui/src/develop/history.rs:359`](../../ui/dr-ui/src/develop/history.rs#L359), [`ui/dr-ui/src/develop/render.rs:1115`](../../ui/dr-ui/src/develop/render.rs#L1115), [`ui/dr-ui/src/develop/render.rs:586`](../../ui/dr-ui/src/develop/render.rs#L586), [`ui/dr-ui/src/develop/render.rs:627`](../../ui/dr-ui/src/develop/render.rs#L627), [`ui/dr-ui/src/develop/session.rs:111`](../../ui/dr-ui/src/develop/session.rs#L111), [`ui/dr-ui/src/develop_ui.rs:793`](../../ui/dr-ui/src/develop_ui.rs#L793), [`ui/dr-ui/src/develop_ui.rs:852`](../../ui/dr-ui/src/develop_ui.rs#L852), [`ui/dr-ui/src/develop_ui.rs:924`](../../ui/dr-ui/src/develop_ui.rs#L924), [`ui/dr-ui/src/lib.rs:2216`](../../ui/dr-ui/src/lib.rs#L2216), [`ui/dr-ui/src/lib.rs:2302`](../../ui/dr-ui/src/lib.rs#L2302), [`ui/dr-ui/src/lib.rs:2316`](../../ui/dr-ui/src/lib.rs#L2316), [`ui/dr-ui/src/lib.rs:460`](../../ui/dr-ui/src/lib.rs#L460), [`ui/dr-ui/ui/app.slint:224`](../../ui/dr-ui/ui/app.slint#L224), [`ui/dr-ui/ui/app.slint:2417`](../../ui/dr-ui/ui/app.slint#L2417), [`ui/dr-ui/ui/app.slint:2463`](../../ui/dr-ui/ui/app.slint#L2463), [`ui/dr-ui/ui/app.slint:3027`](../../ui/dr-ui/ui/app.slint#L3027), [`ui/dr-ui/ui/history.slint:103`](../../ui/dr-ui/ui/history.slint#L103), [`ui/dr-ui/ui/history.slint:1`](../../ui/dr-ui/ui/history.slint#L1), [`ui/dr-ui/ui/history.slint:227`](../../ui/dr-ui/ui/history.slint#L227), [`ui/dr-ui/ui/history.slint:53`](../../ui/dr-ui/ui/history.slint#L53), [`ui/dr-ui/ui/widgets.slint:72`](../../ui/dr-ui/ui/widgets.slint#L72) | | FR-DEV-8 | [`core/dr-gpu/src/detail.rs:397`](../../core/dr-gpu/src/detail.rs#L397), [`core/dr-gpu/src/detail.rs:609`](../../core/dr-gpu/src/detail.rs#L609), [`core/dr-gpu/tests/detail_instances.rs:1`](../../core/dr-gpu/tests/detail_instances.rs#L1), [`core/dr-gpu/tests/spot_removal.rs:1`](../../core/dr-gpu/tests/spot_removal.rs#L1), [`core/dr-pipeline/src/detail.rs:449`](../../core/dr-pipeline/src/detail.rs#L449), [`core/dr-pipeline/src/detail.rs:491`](../../core/dr-pipeline/src/detail.rs#L491), [`core/dr-pipeline/src/detail.rs:526`](../../core/dr-pipeline/src/detail.rs#L526), [`core/dr-pipeline/src/detail.rs:620`](../../core/dr-pipeline/src/detail.rs#L620), [`core/dr-pipeline/src/graph.rs:122`](../../core/dr-pipeline/src/graph.rs#L122), [`core/dr-pipeline/src/graph.rs:1236`](../../core/dr-pipeline/src/graph.rs#L1236), [`core/dr-pipeline/src/graph.rs:269`](../../core/dr-pipeline/src/graph.rs#L269), [`core/dr-pipeline/src/operation.rs:377`](../../core/dr-pipeline/src/operation.rs#L377), [`core/dr-pipeline/src/operation.rs:869`](../../core/dr-pipeline/src/operation.rs#L869), [`core/dr-pipeline/src/sidecar.rs:1104`](../../core/dr-pipeline/src/sidecar.rs#L1104), [`core/dr-pipeline/src/sidecar.rs:1158`](../../core/dr-pipeline/src/sidecar.rs#L1158), [`core/dr-pipeline/src/sidecar.rs:1188`](../../core/dr-pipeline/src/sidecar.rs#L1188), [`core/dr-pipeline/src/sidecar.rs:233`](../../core/dr-pipeline/src/sidecar.rs#L233), [`core/dr-pipeline/src/sidecar.rs:410`](../../core/dr-pipeline/src/sidecar.rs#L410), [`core/dr-pipeline/src/sidecar.rs:910`](../../core/dr-pipeline/src/sidecar.rs#L910), [`core/dr-pipeline/src/spot.rs:115`](../../core/dr-pipeline/src/spot.rs#L115), [`core/dr-pipeline/src/spot.rs:151`](../../core/dr-pipeline/src/spot.rs#L151), [`core/dr-pipeline/src/spot.rs:1`](../../core/dr-pipeline/src/spot.rs#L1), [`core/dr-pipeline/src/spot.rs:207`](../../core/dr-pipeline/src/spot.rs#L207), [`core/dr-pipeline/src/spot.rs:387`](../../core/dr-pipeline/src/spot.rs#L387), [`core/dr-pipeline/src/spot.rs:472`](../../core/dr-pipeline/src/spot.rs#L472), [`core/dr-pipeline/src/spot.rs:582`](../../core/dr-pipeline/src/spot.rs#L582), [`core/dr-pipeline/src/spot.rs:673`](../../core/dr-pipeline/src/spot.rs#L673), [`core/dr-pipeline/src/state.rs:103`](../../core/dr-pipeline/src/state.rs#L103), [`core/dr-pipeline/tests/spot_sidecar.rs:1`](../../core/dr-pipeline/tests/spot_sidecar.rs#L1), [`core/dr-pipeline/tests/spots.rs:1`](../../core/dr-pipeline/tests/spots.rs#L1), [`ui/dr-ui/src/develop/repairs.rs:114`](../../ui/dr-ui/src/develop/repairs.rs#L114), [`ui/dr-ui/src/develop/repairs.rs:11`](../../ui/dr-ui/src/develop/repairs.rs#L11), [`ui/dr-ui/src/develop/repairs.rs:197`](../../ui/dr-ui/src/develop/repairs.rs#L197), [`ui/dr-ui/src/develop/repairs.rs:211`](../../ui/dr-ui/src/develop/repairs.rs#L211), [`ui/dr-ui/src/develop/repairs.rs:49`](../../ui/dr-ui/src/develop/repairs.rs#L49), [`ui/dr-ui/src/develop/session.rs:239`](../../ui/dr-ui/src/develop/session.rs#L239), [`ui/dr-ui/src/develop_ui.rs:1081`](../../ui/dr-ui/src/develop_ui.rs#L1081), [`ui/dr-ui/src/labels.rs:80`](../../ui/dr-ui/src/labels.rs#L80), [`ui/dr-ui/src/lib.rs:2260`](../../ui/dr-ui/src/lib.rs#L2260), [`ui/dr-ui/src/lib.rs:503`](../../ui/dr-ui/src/lib.rs#L503), [`ui/dr-ui/src/spots_ui.rs:19`](../../ui/dr-ui/src/spots_ui.rs#L19), [`ui/dr-ui/src/spots_ui.rs:1`](../../ui/dr-ui/src/spots_ui.rs#L1), [`ui/dr-ui/src/spots_ui.rs:265`](../../ui/dr-ui/src/spots_ui.rs#L265), [`ui/dr-ui/ui/app.slint:2270`](../../ui/dr-ui/ui/app.slint#L2270), [`ui/dr-ui/ui/app.slint:2513`](../../ui/dr-ui/ui/app.slint#L2513), [`ui/dr-ui/ui/app.slint:3376`](../../ui/dr-ui/ui/app.slint#L3376), [`ui/dr-ui/ui/icons.slint:378`](../../ui/dr-ui/ui/icons.slint#L378), [`ui/dr-ui/ui/session.slint:102`](../../ui/dr-ui/ui/session.slint#L102), [`ui/dr-ui/ui/session.slint:52`](../../ui/dr-ui/ui/session.slint#L52), [`ui/dr-ui/ui/spots.slint:191`](../../ui/dr-ui/ui/spots.slint#L191), [`ui/dr-ui/ui/spots.slint:49`](../../ui/dr-ui/ui/spots.slint#L49), [`ui/dr-ui/ui/spots.slint:6`](../../ui/dr-ui/ui/spots.slint#L6), [`ui/dr-ui/ui/spots.slint:91`](../../ui/dr-ui/ui/spots.slint#L91) | -| FR-DSP-1 | [`core/dr-gpu/src/adjust.rs:1107`](../../core/dr-gpu/src/adjust.rs#L1107), [`core/dr-gpu/src/adjust.rs:2879`](../../core/dr-gpu/src/adjust.rs#L2879), [`core/dr-gpu/src/adjust.rs:2956`](../../core/dr-gpu/src/adjust.rs#L2956), [`core/dr-gpu/src/adjust.rs:3041`](../../core/dr-gpu/src/adjust.rs#L3041), [`core/dr-gpu/src/adjust.rs:44`](../../core/dr-gpu/src/adjust.rs#L44), [`core/dr-gpu/src/lib.rs:176`](../../core/dr-gpu/src/lib.rs#L176), [`core/dr-gpu/src/lib.rs:196`](../../core/dr-gpu/src/lib.rs#L196), [`core/dr-gpu/src/lib.rs:74`](../../core/dr-gpu/src/lib.rs#L74), [`core/dr-gpu/src/lib.rs:97`](../../core/dr-gpu/src/lib.rs#L97), [`core/dr-gpu/tests/capture_sharpen.rs:199`](../../core/dr-gpu/tests/capture_sharpen.rs#L199), [`core/dr-gpu/tests/detail_stage.rs:327`](../../core/dr-gpu/tests/detail_stage.rs#L327), [`core/dr-gpu/tests/local_contrast.rs:263`](../../core/dr-gpu/tests/local_contrast.rs#L263), [`core/dr-gpu/tests/noise_reduction.rs:377`](../../core/dr-gpu/tests/noise_reduction.rs#L377), [`core/dr-pipeline/src/detail.rs:142`](../../core/dr-pipeline/src/detail.rs#L142), [`core/dr-pipeline/src/detail.rs:231`](../../core/dr-pipeline/src/detail.rs#L231), [`core/dr-pipeline/src/detail.rs:592`](../../core/dr-pipeline/src/detail.rs#L592), [`core/dr-pipeline/src/detail.rs:980`](../../core/dr-pipeline/src/detail.rs#L980), [`core/dr-pipeline/src/graph.rs:1077`](../../core/dr-pipeline/src/graph.rs#L1077), [`core/dr-pipeline/src/graph.rs:1107`](../../core/dr-pipeline/src/graph.rs#L1107), [`core/dr-pipeline/src/ops/capture_sharpen.rs:1`](../../core/dr-pipeline/src/ops/capture_sharpen.rs#L1), [`core/dr-pipeline/src/ops/capture_sharpen.rs:628`](../../core/dr-pipeline/src/ops/capture_sharpen.rs#L628), [`core/dr-pipeline/src/ops/dehaze.rs:1`](../../core/dr-pipeline/src/ops/dehaze.rs#L1), [`core/dr-pipeline/src/ops/dehaze.rs:564`](../../core/dr-pipeline/src/ops/dehaze.rs#L564), [`core/dr-pipeline/src/ops/local_contrast.rs:1`](../../core/dr-pipeline/src/ops/local_contrast.rs#L1), [`core/dr-pipeline/src/ops/local_contrast.rs:970`](../../core/dr-pipeline/src/ops/local_contrast.rs#L970), [`core/dr-pipeline/src/ops/noise_reduction.rs:694`](../../core/dr-pipeline/src/ops/noise_reduction.rs#L694), [`core/dr-pipeline/src/spot.rs:673`](../../core/dr-pipeline/src/spot.rs#L673), [`ui/dr-ui/src/develop/framing.rs:640`](../../ui/dr-ui/src/develop/framing.rs#L640), [`ui/dr-ui/src/develop/mod.rs:57`](../../ui/dr-ui/src/develop/mod.rs#L57), [`ui/dr-ui/src/develop/render.rs:1172`](../../ui/dr-ui/src/develop/render.rs#L1172), [`ui/dr-ui/src/develop/render.rs:1206`](../../ui/dr-ui/src/develop/render.rs#L1206), [`ui/dr-ui/src/develop/render.rs:1344`](../../ui/dr-ui/src/develop/render.rs#L1344), [`ui/dr-ui/src/develop/render.rs:315`](../../ui/dr-ui/src/develop/render.rs#L315), [`ui/dr-ui/src/develop/render.rs:97`](../../ui/dr-ui/src/develop/render.rs#L97), [`ui/dr-ui/src/lib.rs:1102`](../../ui/dr-ui/src/lib.rs#L1102), [`ui/dr-ui/src/lib.rs:118`](../../ui/dr-ui/src/lib.rs#L118) | -| FR-DSP-2 | [`core/dr-gpu/src/adjust.rs:1419`](../../core/dr-gpu/src/adjust.rs#L1419), [`core/dr-gpu/src/demosaic.rs:122`](../../core/dr-gpu/src/demosaic.rs#L122), [`core/dr-gpu/src/demosaic.rs:169`](../../core/dr-gpu/src/demosaic.rs#L169), [`core/dr-gpu/src/demosaic.rs:451`](../../core/dr-gpu/src/demosaic.rs#L451), [`core/dr-gpu/tests/source_window.rs:1`](../../core/dr-gpu/tests/source_window.rs#L1), [`core/dr-pipeline/src/detail.rs:231`](../../core/dr-pipeline/src/detail.rs#L231), [`core/dr-pipeline/src/detail.rs:571`](../../core/dr-pipeline/src/detail.rs#L571), [`core/dr-pipeline/src/detail.rs:980`](../../core/dr-pipeline/src/detail.rs#L980), [`core/dr-pipeline/src/graph.rs:317`](../../core/dr-pipeline/src/graph.rs#L317), [`core/dr-pipeline/src/graph.rs:86`](../../core/dr-pipeline/src/graph.rs#L86), [`core/dr-pipeline/src/operation.rs:1794`](../../core/dr-pipeline/src/operation.rs#L1794), [`core/dr-pipeline/src/operation.rs:2522`](../../core/dr-pipeline/src/operation.rs#L2522), [`core/dr-pipeline/src/operation.rs:615`](../../core/dr-pipeline/src/operation.rs#L615), [`core/dr-pipeline/src/tiles.rs:1`](../../core/dr-pipeline/src/tiles.rs#L1), [`ui/dr-ui/src/develop/render.rs:1892`](../../ui/dr-ui/src/develop/render.rs#L1892), [`ui/dr-ui/src/develop/render.rs:1971`](../../ui/dr-ui/src/develop/render.rs#L1971), [`ui/dr-ui/src/develop/render.rs:216`](../../ui/dr-ui/src/develop/render.rs#L216), [`ui/dr-ui/src/develop/render.rs:23`](../../ui/dr-ui/src/develop/render.rs#L23), [`ui/dr-ui/src/develop/render.rs:770`](../../ui/dr-ui/src/develop/render.rs#L770), [`ui/dr-ui/src/develop/session.rs:125`](../../ui/dr-ui/src/develop/session.rs#L125), [`ui/dr-ui/src/develop/session.rs:338`](../../ui/dr-ui/src/develop/session.rs#L338), [`ui/dr-ui/src/develop/session.rs:365`](../../ui/dr-ui/src/develop/session.rs#L365) | +| FR-DSP-1 | [`core/dr-gpu/src/adjust.rs:1107`](../../core/dr-gpu/src/adjust.rs#L1107), [`core/dr-gpu/src/adjust.rs:2883`](../../core/dr-gpu/src/adjust.rs#L2883), [`core/dr-gpu/src/adjust.rs:2960`](../../core/dr-gpu/src/adjust.rs#L2960), [`core/dr-gpu/src/adjust.rs:3045`](../../core/dr-gpu/src/adjust.rs#L3045), [`core/dr-gpu/src/adjust.rs:44`](../../core/dr-gpu/src/adjust.rs#L44), [`core/dr-gpu/src/lib.rs:176`](../../core/dr-gpu/src/lib.rs#L176), [`core/dr-gpu/src/lib.rs:196`](../../core/dr-gpu/src/lib.rs#L196), [`core/dr-gpu/src/lib.rs:74`](../../core/dr-gpu/src/lib.rs#L74), [`core/dr-gpu/src/lib.rs:97`](../../core/dr-gpu/src/lib.rs#L97), [`core/dr-gpu/tests/capture_sharpen.rs:199`](../../core/dr-gpu/tests/capture_sharpen.rs#L199), [`core/dr-gpu/tests/detail_stage.rs:327`](../../core/dr-gpu/tests/detail_stage.rs#L327), [`core/dr-gpu/tests/local_contrast.rs:263`](../../core/dr-gpu/tests/local_contrast.rs#L263), [`core/dr-gpu/tests/noise_reduction.rs:377`](../../core/dr-gpu/tests/noise_reduction.rs#L377), [`core/dr-pipeline/src/detail.rs:142`](../../core/dr-pipeline/src/detail.rs#L142), [`core/dr-pipeline/src/detail.rs:231`](../../core/dr-pipeline/src/detail.rs#L231), [`core/dr-pipeline/src/detail.rs:592`](../../core/dr-pipeline/src/detail.rs#L592), [`core/dr-pipeline/src/detail.rs:980`](../../core/dr-pipeline/src/detail.rs#L980), [`core/dr-pipeline/src/graph.rs:1077`](../../core/dr-pipeline/src/graph.rs#L1077), [`core/dr-pipeline/src/graph.rs:1107`](../../core/dr-pipeline/src/graph.rs#L1107), [`core/dr-pipeline/src/ops/capture_sharpen.rs:1`](../../core/dr-pipeline/src/ops/capture_sharpen.rs#L1), [`core/dr-pipeline/src/ops/capture_sharpen.rs:628`](../../core/dr-pipeline/src/ops/capture_sharpen.rs#L628), [`core/dr-pipeline/src/ops/dehaze.rs:1`](../../core/dr-pipeline/src/ops/dehaze.rs#L1), [`core/dr-pipeline/src/ops/dehaze.rs:564`](../../core/dr-pipeline/src/ops/dehaze.rs#L564), [`core/dr-pipeline/src/ops/local_contrast.rs:1`](../../core/dr-pipeline/src/ops/local_contrast.rs#L1), [`core/dr-pipeline/src/ops/local_contrast.rs:970`](../../core/dr-pipeline/src/ops/local_contrast.rs#L970), [`core/dr-pipeline/src/ops/noise_reduction.rs:694`](../../core/dr-pipeline/src/ops/noise_reduction.rs#L694), [`core/dr-pipeline/src/spot.rs:673`](../../core/dr-pipeline/src/spot.rs#L673), [`ui/dr-ui/src/develop/framing.rs:640`](../../ui/dr-ui/src/develop/framing.rs#L640), [`ui/dr-ui/src/develop/mod.rs:57`](../../ui/dr-ui/src/develop/mod.rs#L57), [`ui/dr-ui/src/develop/render.rs:1172`](../../ui/dr-ui/src/develop/render.rs#L1172), [`ui/dr-ui/src/develop/render.rs:1206`](../../ui/dr-ui/src/develop/render.rs#L1206), [`ui/dr-ui/src/develop/render.rs:1344`](../../ui/dr-ui/src/develop/render.rs#L1344), [`ui/dr-ui/src/develop/render.rs:315`](../../ui/dr-ui/src/develop/render.rs#L315), [`ui/dr-ui/src/develop/render.rs:97`](../../ui/dr-ui/src/develop/render.rs#L97), [`ui/dr-ui/src/lib.rs:1102`](../../ui/dr-ui/src/lib.rs#L1102), [`ui/dr-ui/src/lib.rs:118`](../../ui/dr-ui/src/lib.rs#L118) | +| FR-DSP-2 | [`core/dr-gpu/src/adjust.rs:1419`](../../core/dr-gpu/src/adjust.rs#L1419), [`core/dr-gpu/src/demosaic.rs:122`](../../core/dr-gpu/src/demosaic.rs#L122), [`core/dr-gpu/src/demosaic.rs:169`](../../core/dr-gpu/src/demosaic.rs#L169), [`core/dr-gpu/src/demosaic.rs:451`](../../core/dr-gpu/src/demosaic.rs#L451), [`core/dr-gpu/tests/source_window.rs:1`](../../core/dr-gpu/tests/source_window.rs#L1), [`core/dr-pipeline/src/detail.rs:231`](../../core/dr-pipeline/src/detail.rs#L231), [`core/dr-pipeline/src/detail.rs:571`](../../core/dr-pipeline/src/detail.rs#L571), [`core/dr-pipeline/src/detail.rs:980`](../../core/dr-pipeline/src/detail.rs#L980), [`core/dr-pipeline/src/graph.rs:317`](../../core/dr-pipeline/src/graph.rs#L317), [`core/dr-pipeline/src/graph.rs:86`](../../core/dr-pipeline/src/graph.rs#L86), [`core/dr-pipeline/src/operation.rs:1794`](../../core/dr-pipeline/src/operation.rs#L1794), [`core/dr-pipeline/src/operation.rs:2522`](../../core/dr-pipeline/src/operation.rs#L2522), [`core/dr-pipeline/src/operation.rs:615`](../../core/dr-pipeline/src/operation.rs#L615), [`core/dr-pipeline/src/tiles.rs:1`](../../core/dr-pipeline/src/tiles.rs#L1), [`ui/dr-ui/src/develop/render.rs:1894`](../../ui/dr-ui/src/develop/render.rs#L1894), [`ui/dr-ui/src/develop/render.rs:1973`](../../ui/dr-ui/src/develop/render.rs#L1973), [`ui/dr-ui/src/develop/render.rs:216`](../../ui/dr-ui/src/develop/render.rs#L216), [`ui/dr-ui/src/develop/render.rs:23`](../../ui/dr-ui/src/develop/render.rs#L23), [`ui/dr-ui/src/develop/render.rs:770`](../../ui/dr-ui/src/develop/render.rs#L770), [`ui/dr-ui/src/develop/session.rs:125`](../../ui/dr-ui/src/develop/session.rs#L125), [`ui/dr-ui/src/develop/session.rs:338`](../../ui/dr-ui/src/develop/session.rs#L338), [`ui/dr-ui/src/develop/session.rs:365`](../../ui/dr-ui/src/develop/session.rs#L365) | | FR-DSP-3 | [`core/dr-gpu/tests/frame_budget.rs:101`](../../core/dr-gpu/tests/frame_budget.rs#L101), [`core/dr-gpu/tests/local_contrast.rs:328`](../../core/dr-gpu/tests/local_contrast.rs#L328), [`core/dr-pipeline/src/ops/local_contrast.rs:447`](../../core/dr-pipeline/src/ops/local_contrast.rs#L447) | | FR-DSP-4 | [`ui/dr-ui/src/lib.rs:2325`](../../ui/dr-ui/src/lib.rs#L2325), [`ui/dr-ui/src/lib.rs:2511`](../../ui/dr-ui/src/lib.rs#L2511), [`ui/dr-ui/src/refine.rs:1`](../../ui/dr-ui/src/refine.rs#L1), [`ui/dr-ui/ui/app.slint:112`](../../ui/dr-ui/ui/app.slint#L112), [`ui/dr-ui/ui/app.slint:1863`](../../ui/dr-ui/ui/app.slint#L1863), [`ui/dr-ui/ui/histogram.slint:182`](../../ui/dr-ui/ui/histogram.slint#L182), [`ui/dr-ui/ui/histogram.slint:250`](../../ui/dr-ui/ui/histogram.slint#L250) | | FR-DSP-5 | [`core/dr-gpu/tests/frame_budget.rs:101`](../../core/dr-gpu/tests/frame_budget.rs#L101), [`core/dr-gpu/tests/zoom_resolution.rs:135`](../../core/dr-gpu/tests/zoom_resolution.rs#L135), [`core/dr-gpu/tests/zoom_resolution.rs:166`](../../core/dr-gpu/tests/zoom_resolution.rs#L166), [`core/dr-gpu/tests/zoom_resolution.rs:1`](../../core/dr-gpu/tests/zoom_resolution.rs#L1), [`core/dr-gpu/tests/zoom_resolution.rs:216`](../../core/dr-gpu/tests/zoom_resolution.rs#L216) | -| FR-DSP-6 | [`core/dr-pipeline/src/operation.rs:676`](../../core/dr-pipeline/src/operation.rs#L676), [`core/dr-types/src/colour.rs:1`](../../core/dr-types/src/colour.rs#L1), [`ui/dr-ui/src/develop/render.rs:1751`](../../ui/dr-ui/src/develop/render.rs#L1751), [`ui/dr-ui/src/develop/render.rs:350`](../../ui/dr-ui/src/develop/render.rs#L350), [`ui/dr-ui/src/lib.rs:2192`](../../ui/dr-ui/src/lib.rs#L2192), [`ui/dr-ui/src/lib.rs:3075`](../../ui/dr-ui/src/lib.rs#L3075) | +| FR-DSP-6 | [`core/dr-pipeline/src/operation.rs:676`](../../core/dr-pipeline/src/operation.rs#L676), [`core/dr-types/src/colour.rs:1`](../../core/dr-types/src/colour.rs#L1), [`ui/dr-ui/src/develop/render.rs:1752`](../../ui/dr-ui/src/develop/render.rs#L1752), [`ui/dr-ui/src/develop/render.rs:350`](../../ui/dr-ui/src/develop/render.rs#L350), [`ui/dr-ui/src/lib.rs:2192`](../../ui/dr-ui/src/lib.rs#L2192), [`ui/dr-ui/src/lib.rs:3075`](../../ui/dr-ui/src/lib.rs#L3075) | | FR-DSP-7 | [`core/dr-gpu/src/histogram.rs:147`](../../core/dr-gpu/src/histogram.rs#L147), [`core/dr-gpu/src/histogram.rs:1`](../../core/dr-gpu/src/histogram.rs#L1), [`core/dr-gpu/src/histogram.rs:281`](../../core/dr-gpu/src/histogram.rs#L281), [`core/dr-gpu/src/histogram.rs:50`](../../core/dr-gpu/src/histogram.rs#L50), [`core/dr-gpu/src/shaders/histogram.wgsl:1`](../../core/dr-gpu/src/shaders/histogram.wgsl#L1), [`ui/dr-ui/src/develop/render.rs:1541`](../../ui/dr-ui/src/develop/render.rs#L1541), [`ui/dr-ui/src/develop/render.rs:1573`](../../ui/dr-ui/src/develop/render.rs#L1573), [`ui/dr-ui/src/develop/render.rs:378`](../../ui/dr-ui/src/develop/render.rs#L378), [`ui/dr-ui/src/develop/session.rs:139`](../../ui/dr-ui/src/develop/session.rs#L139), [`ui/dr-ui/src/histogram.rs:1`](../../ui/dr-ui/src/histogram.rs#L1), [`ui/dr-ui/src/lib.rs:2364`](../../ui/dr-ui/src/lib.rs#L2364), [`ui/dr-ui/src/lib.rs:480`](../../ui/dr-ui/src/lib.rs#L480), [`ui/dr-ui/ui/histogram.slint:191`](../../ui/dr-ui/ui/histogram.slint#L191), [`ui/dr-ui/ui/histogram.slint:1`](../../ui/dr-ui/ui/histogram.slint#L1) | -| FR-DSP-8 | [`platform/dr-plat/src/display.rs:1`](../../platform/dr-plat/src/display.rs#L1), [`platform/dr-plat/src/display/icc.rs:1`](../../platform/dr-plat/src/display/icc.rs#L1), [`platform/dr-plat/src/display/wayland.rs:1`](../../platform/dr-plat/src/display/wayland.rs#L1), [`platform/dr-plat/src/display/x11.rs:1`](../../platform/dr-plat/src/display/x11.rs#L1), [`ui/dr-ui/src/develop/render.rs:1305`](../../ui/dr-ui/src/develop/render.rs#L1305), [`ui/dr-ui/src/develop/render.rs:1751`](../../ui/dr-ui/src/develop/render.rs#L1751), [`ui/dr-ui/src/develop/render.rs:1797`](../../ui/dr-ui/src/develop/render.rs#L1797), [`ui/dr-ui/src/develop/render.rs:1816`](../../ui/dr-ui/src/develop/render.rs#L1816), [`ui/dr-ui/src/develop/render.rs:291`](../../ui/dr-ui/src/develop/render.rs#L291), [`ui/dr-ui/src/develop/render.rs:350`](../../ui/dr-ui/src/develop/render.rs#L350), [`ui/dr-ui/src/develop/render.rs:65`](../../ui/dr-ui/src/develop/render.rs#L65), [`ui/dr-ui/src/develop/session.rs:292`](../../ui/dr-ui/src/develop/session.rs#L292), [`ui/dr-ui/src/display_ui.rs:192`](../../ui/dr-ui/src/display_ui.rs#L192), [`ui/dr-ui/src/display_ui.rs:1`](../../ui/dr-ui/src/display_ui.rs#L1), [`ui/dr-ui/src/display_ui.rs:325`](../../ui/dr-ui/src/display_ui.rs#L325), [`ui/dr-ui/src/display_ui.rs:346`](../../ui/dr-ui/src/display_ui.rs#L346), [`ui/dr-ui/src/display_ui.rs:379`](../../ui/dr-ui/src/display_ui.rs#L379), [`ui/dr-ui/src/lib.rs:1322`](../../ui/dr-ui/src/lib.rs#L1322), [`ui/dr-ui/src/lib.rs:2192`](../../ui/dr-ui/src/lib.rs#L2192), [`ui/dr-ui/src/lib.rs:3052`](../../ui/dr-ui/src/lib.rs#L3052), [`ui/dr-ui/src/lib.rs:3075`](../../ui/dr-ui/src/lib.rs#L3075), [`ui/dr-ui/ui/app.slint:130`](../../ui/dr-ui/ui/app.slint#L130), [`ui/dr-ui/ui/app.slint:1849`](../../ui/dr-ui/ui/app.slint#L1849), [`ui/dr-ui/ui/settings.slint:176`](../../ui/dr-ui/ui/settings.slint#L176), [`ui/dr-ui/ui/settings.slint:864`](../../ui/dr-ui/ui/settings.slint#L864) | +| FR-DSP-8 | [`platform/dr-plat/src/display.rs:1`](../../platform/dr-plat/src/display.rs#L1), [`platform/dr-plat/src/display/icc.rs:1`](../../platform/dr-plat/src/display/icc.rs#L1), [`platform/dr-plat/src/display/wayland.rs:1`](../../platform/dr-plat/src/display/wayland.rs#L1), [`platform/dr-plat/src/display/x11.rs:1`](../../platform/dr-plat/src/display/x11.rs#L1), [`ui/dr-ui/src/develop/render.rs:1305`](../../ui/dr-ui/src/develop/render.rs#L1305), [`ui/dr-ui/src/develop/render.rs:1752`](../../ui/dr-ui/src/develop/render.rs#L1752), [`ui/dr-ui/src/develop/render.rs:1798`](../../ui/dr-ui/src/develop/render.rs#L1798), [`ui/dr-ui/src/develop/render.rs:1817`](../../ui/dr-ui/src/develop/render.rs#L1817), [`ui/dr-ui/src/develop/render.rs:291`](../../ui/dr-ui/src/develop/render.rs#L291), [`ui/dr-ui/src/develop/render.rs:350`](../../ui/dr-ui/src/develop/render.rs#L350), [`ui/dr-ui/src/develop/render.rs:65`](../../ui/dr-ui/src/develop/render.rs#L65), [`ui/dr-ui/src/develop/session.rs:292`](../../ui/dr-ui/src/develop/session.rs#L292), [`ui/dr-ui/src/display_ui.rs:192`](../../ui/dr-ui/src/display_ui.rs#L192), [`ui/dr-ui/src/display_ui.rs:1`](../../ui/dr-ui/src/display_ui.rs#L1), [`ui/dr-ui/src/display_ui.rs:325`](../../ui/dr-ui/src/display_ui.rs#L325), [`ui/dr-ui/src/display_ui.rs:346`](../../ui/dr-ui/src/display_ui.rs#L346), [`ui/dr-ui/src/display_ui.rs:379`](../../ui/dr-ui/src/display_ui.rs#L379), [`ui/dr-ui/src/lib.rs:1322`](../../ui/dr-ui/src/lib.rs#L1322), [`ui/dr-ui/src/lib.rs:2192`](../../ui/dr-ui/src/lib.rs#L2192), [`ui/dr-ui/src/lib.rs:3052`](../../ui/dr-ui/src/lib.rs#L3052), [`ui/dr-ui/src/lib.rs:3075`](../../ui/dr-ui/src/lib.rs#L3075), [`ui/dr-ui/ui/app.slint:130`](../../ui/dr-ui/ui/app.slint#L130), [`ui/dr-ui/ui/app.slint:1849`](../../ui/dr-ui/ui/app.slint#L1849), [`ui/dr-ui/ui/settings.slint:176`](../../ui/dr-ui/ui/settings.slint#L176), [`ui/dr-ui/ui/settings.slint:864`](../../ui/dr-ui/ui/settings.slint#L864) | | FR-EXP-1 | [`core/dr-export/src/encode.rs:1`](../../core/dr-export/src/encode.rs#L1), [`core/dr-export/src/lib.rs:1`](../../core/dr-export/src/lib.rs#L1), [`core/dr-types/src/settings.rs:1`](../../core/dr-types/src/settings.rs#L1), [`ui/dr-ui/src/settings_ui.rs:1`](../../ui/dr-ui/src/settings_ui.rs#L1) | | FR-EXP-10 | [`core/dr-catalog/src/albums.rs:1`](../../core/dr-catalog/src/albums.rs#L1), [`core/dr-types/src/settings.rs:731`](../../core/dr-types/src/settings.rs#L731), [`ui/dr-ui/src/albums_ui.rs:1`](../../ui/dr-ui/src/albums_ui.rs#L1), [`ui/dr-ui/src/collections_ui/controller.rs:129`](../../ui/dr-ui/src/collections_ui/controller.rs#L129), [`ui/dr-ui/src/collections_ui/controller.rs:432`](../../ui/dr-ui/src/collections_ui/controller.rs#L432), [`ui/dr-ui/src/develop_ui.rs:353`](../../ui/dr-ui/src/develop_ui.rs#L353), [`ui/dr-ui/src/export.rs:100`](../../ui/dr-ui/src/export.rs#L100), [`ui/dr-ui/src/export.rs:240`](../../ui/dr-ui/src/export.rs#L240), [`ui/dr-ui/src/export.rs:679`](../../ui/dr-ui/src/export.rs#L679), [`ui/dr-ui/src/export.rs:949`](../../ui/dr-ui/src/export.rs#L949), [`ui/dr-ui/src/lib.rs:1702`](../../ui/dr-ui/src/lib.rs#L1702), [`ui/dr-ui/src/library_ui/controller.rs:224`](../../ui/dr-ui/src/library_ui/controller.rs#L224), [`ui/dr-ui/src/library_ui/controller.rs:956`](../../ui/dr-ui/src/library_ui/controller.rs#L956), [`ui/dr-ui/src/library_ui/controller.rs:996`](../../ui/dr-ui/src/library_ui/controller.rs#L996), [`ui/dr-ui/src/library_ui/window.rs:388`](../../ui/dr-ui/src/library_ui/window.rs#L388), [`ui/dr-ui/src/saf.rs:1`](../../ui/dr-ui/src/saf.rs#L1), [`ui/dr-ui/ui/albums.slint:1`](../../ui/dr-ui/ui/albums.slint#L1), [`ui/dr-ui/ui/app.slint:3610`](../../ui/dr-ui/ui/app.slint#L3610), [`ui/dr-ui/ui/collections.slint:789`](../../ui/dr-ui/ui/collections.slint#L789), [`ui/dr-ui/ui/export.slint:204`](../../ui/dr-ui/ui/export.slint#L204) | -| FR-EXP-2 | [`core/dr-export/src/encode.rs:1`](../../core/dr-export/src/encode.rs#L1), [`core/dr-export/src/error.rs:26`](../../core/dr-export/src/error.rs#L26), [`core/dr-export/src/icc.rs:1`](../../core/dr-export/src/icc.rs#L1), [`core/dr-export/src/lib.rs:157`](../../core/dr-export/src/lib.rs#L157), [`core/dr-export/src/lib.rs:1`](../../core/dr-export/src/lib.rs#L1), [`core/dr-export/src/lib.rs:57`](../../core/dr-export/src/lib.rs#L57), [`core/dr-gpu/src/adjust.rs:3314`](../../core/dr-gpu/src/adjust.rs#L3314), [`core/dr-pipeline/src/graph.rs:990`](../../core/dr-pipeline/src/graph.rs#L990), [`core/dr-pipeline/src/operation.rs:676`](../../core/dr-pipeline/src/operation.rs#L676), [`core/dr-types/src/colour.rs:1`](../../core/dr-types/src/colour.rs#L1), [`core/dr-types/src/settings.rs:1`](../../core/dr-types/src/settings.rs#L1), [`core/dr-types/src/settings.rs:976`](../../core/dr-types/src/settings.rs#L976), [`ui/dr-ui/src/develop/render.rs:1816`](../../ui/dr-ui/src/develop/render.rs#L1816), [`ui/dr-ui/src/settings_ui.rs:1`](../../ui/dr-ui/src/settings_ui.rs#L1) | +| FR-EXP-2 | [`core/dr-export/src/encode.rs:1`](../../core/dr-export/src/encode.rs#L1), [`core/dr-export/src/error.rs:26`](../../core/dr-export/src/error.rs#L26), [`core/dr-export/src/icc.rs:1`](../../core/dr-export/src/icc.rs#L1), [`core/dr-export/src/lib.rs:157`](../../core/dr-export/src/lib.rs#L157), [`core/dr-export/src/lib.rs:1`](../../core/dr-export/src/lib.rs#L1), [`core/dr-export/src/lib.rs:57`](../../core/dr-export/src/lib.rs#L57), [`core/dr-gpu/src/adjust.rs:3318`](../../core/dr-gpu/src/adjust.rs#L3318), [`core/dr-pipeline/src/graph.rs:990`](../../core/dr-pipeline/src/graph.rs#L990), [`core/dr-pipeline/src/operation.rs:676`](../../core/dr-pipeline/src/operation.rs#L676), [`core/dr-types/src/colour.rs:1`](../../core/dr-types/src/colour.rs#L1), [`core/dr-types/src/settings.rs:1`](../../core/dr-types/src/settings.rs#L1), [`core/dr-types/src/settings.rs:976`](../../core/dr-types/src/settings.rs#L976), [`ui/dr-ui/src/develop/render.rs:1817`](../../ui/dr-ui/src/develop/render.rs#L1817), [`ui/dr-ui/src/settings_ui.rs:1`](../../ui/dr-ui/src/settings_ui.rs#L1) | | FR-EXP-3 | [`core/dr-export/src/lib.rs:186`](../../core/dr-export/src/lib.rs#L186), [`core/dr-export/src/lib.rs:1`](../../core/dr-export/src/lib.rs#L1), [`core/dr-export/src/size.rs:136`](../../core/dr-export/src/size.rs#L136), [`core/dr-export/src/size.rs:1`](../../core/dr-export/src/size.rs#L1), [`core/dr-export/src/size.rs:25`](../../core/dr-export/src/size.rs#L25), [`core/dr-export/src/size.rs:84`](../../core/dr-export/src/size.rs#L84), [`core/dr-types/src/settings.rs:1021`](../../core/dr-types/src/settings.rs#L1021), [`core/dr-types/src/settings.rs:1029`](../../core/dr-types/src/settings.rs#L1029), [`core/dr-types/src/settings.rs:1045`](../../core/dr-types/src/settings.rs#L1045), [`core/dr-types/src/settings.rs:1114`](../../core/dr-types/src/settings.rs#L1114), [`core/dr-types/src/settings.rs:1142`](../../core/dr-types/src/settings.rs#L1142), [`core/dr-types/src/settings.rs:1153`](../../core/dr-types/src/settings.rs#L1153), [`core/dr-types/src/settings.rs:1159`](../../core/dr-types/src/settings.rs#L1159), [`core/dr-types/src/settings.rs:1`](../../core/dr-types/src/settings.rs#L1), [`ui/dr-ui/src/settings_ui.rs:1`](../../ui/dr-ui/src/settings_ui.rs#L1), [`ui/dr-ui/src/settings_ui.rs:256`](../../ui/dr-ui/src/settings_ui.rs#L256), [`ui/dr-ui/src/settings_ui.rs:269`](../../ui/dr-ui/src/settings_ui.rs#L269), [`ui/dr-ui/src/settings_ui.rs:288`](../../ui/dr-ui/src/settings_ui.rs#L288), [`ui/dr-ui/src/settings_ui.rs:701`](../../ui/dr-ui/src/settings_ui.rs#L701), [`ui/dr-ui/ui/export.slint:138`](../../ui/dr-ui/ui/export.slint#L138), [`ui/dr-ui/ui/export.slint:148`](../../ui/dr-ui/ui/export.slint#L148) | | FR-EXP-4 | [`core/dr-export/src/lib.rs:1`](../../core/dr-export/src/lib.rs#L1), [`core/dr-export/src/sharpen.rs:1`](../../core/dr-export/src/sharpen.rs#L1), [`core/dr-export/src/size.rs:1`](../../core/dr-export/src/size.rs#L1), [`ui/dr-ui/src/settings_ui.rs:1`](../../ui/dr-ui/src/settings_ui.rs#L1) | | FR-EXP-5 | [`ui/dr-ui/src/settings_store.rs:1`](../../ui/dr-ui/src/settings_store.rs#L1) | | FR-EXP-6 | [`core/dr-catalog/src/albums.rs:1`](../../core/dr-catalog/src/albums.rs#L1), [`core/dr-export/src/lib.rs:1`](../../core/dr-export/src/lib.rs#L1), [`core/dr-export/src/name.rs:1`](../../core/dr-export/src/name.rs#L1), [`core/dr-types/src/settings.rs:1`](../../core/dr-types/src/settings.rs#L1), [`ui/dr-ui/src/albums_ui.rs:1`](../../ui/dr-ui/src/albums_ui.rs#L1), [`ui/dr-ui/src/export.rs:1`](../../ui/dr-ui/src/export.rs#L1), [`ui/dr-ui/src/export.rs:621`](../../ui/dr-ui/src/export.rs#L621), [`ui/dr-ui/src/export.rs:959`](../../ui/dr-ui/src/export.rs#L959), [`ui/dr-ui/src/lib.rs:664`](../../ui/dr-ui/src/lib.rs#L664), [`ui/dr-ui/src/settings_ui.rs:1`](../../ui/dr-ui/src/settings_ui.rs#L1), [`ui/dr-ui/ui/albums.slint:1`](../../ui/dr-ui/ui/albums.slint#L1) | | FR-EXP-7 | [`ui/dr-ui/src/activity.rs:83`](../../ui/dr-ui/src/activity.rs#L83), [`ui/dr-ui/src/develop_ui.rs:457`](../../ui/dr-ui/src/develop_ui.rs#L457), [`ui/dr-ui/src/export.rs:1513`](../../ui/dr-ui/src/export.rs#L1513), [`ui/dr-ui/src/export.rs:1`](../../ui/dr-ui/src/export.rs#L1), [`ui/dr-ui/src/lib.rs:295`](../../ui/dr-ui/src/lib.rs#L295), [`ui/dr-ui/src/lib.rs:664`](../../ui/dr-ui/src/lib.rs#L664), [`ui/dr-ui/src/lib.rs:710`](../../ui/dr-ui/src/lib.rs#L710), [`ui/dr-ui/src/lib.rs:740`](../../ui/dr-ui/src/lib.rs#L740), [`ui/dr-ui/src/library_ui/controller.rs:1121`](../../ui/dr-ui/src/library_ui/controller.rs#L1121), [`ui/dr-ui/src/library_ui/controller.rs:1133`](../../ui/dr-ui/src/library_ui/controller.rs#L1133), [`ui/dr-ui/src/library_ui/controller.rs:1145`](../../ui/dr-ui/src/library_ui/controller.rs#L1145), [`ui/dr-ui/src/library_ui/controller.rs:790`](../../ui/dr-ui/src/library_ui/controller.rs#L790), [`ui/dr-ui/src/library_ui/controller.rs:890`](../../ui/dr-ui/src/library_ui/controller.rs#L890), [`ui/dr-ui/src/library_ui/controller.rs:947`](../../ui/dr-ui/src/library_ui/controller.rs#L947), [`ui/dr-ui/src/library_ui/sync.rs:101`](../../ui/dr-ui/src/library_ui/sync.rs#L101), [`ui/dr-ui/src/settings_ui.rs:394`](../../ui/dr-ui/src/settings_ui.rs#L394), [`ui/dr-ui/ui/app.slint:1094`](../../ui/dr-ui/ui/app.slint#L1094), [`ui/dr-ui/ui/app.slint:1528`](../../ui/dr-ui/ui/app.slint#L1528), [`ui/dr-ui/ui/app.slint:2606`](../../ui/dr-ui/ui/app.slint#L2606), [`ui/dr-ui/ui/app.slint:3510`](../../ui/dr-ui/ui/app.slint#L3510), [`ui/dr-ui/ui/app.slint:691`](../../ui/dr-ui/ui/app.slint#L691), [`ui/dr-ui/ui/app.slint:708`](../../ui/dr-ui/ui/app.slint#L708), [`ui/dr-ui/ui/app.slint:944`](../../ui/dr-ui/ui/app.slint#L944), [`ui/dr-ui/ui/export.slint:1`](../../ui/dr-ui/ui/export.slint#L1), [`ui/dr-ui/ui/export.slint:246`](../../ui/dr-ui/ui/export.slint#L246), [`ui/dr-ui/ui/library.slint:2035`](../../ui/dr-ui/ui/library.slint#L2035), [`ui/dr-ui/ui/library.slint:2044`](../../ui/dr-ui/ui/library.slint#L2044), [`ui/dr-ui/ui/library.slint:3210`](../../ui/dr-ui/ui/library.slint#L3210), [`ui/dr-ui/ui/library.slint:5240`](../../ui/dr-ui/ui/library.slint#L5240) | -| FR-EXP-8 | [`core/dr-decode/src/lib.rs:367`](../../core/dr-decode/src/lib.rs#L367), [`core/dr-decode/src/lib.rs:391`](../../core/dr-decode/src/lib.rs#L391), [`core/dr-decode/src/lib.rs:405`](../../core/dr-decode/src/lib.rs#L405), [`core/dr-decode/src/lib.rs:76`](../../core/dr-decode/src/lib.rs#L76), [`core/dr-decode/src/lib.rs:84`](../../core/dr-decode/src/lib.rs#L84), [`core/dr-decode/src/lib.rs:87`](../../core/dr-decode/src/lib.rs#L87), [`core/dr-decode/src/locate.rs:1233`](../../core/dr-decode/src/locate.rs#L1233), [`core/dr-decode/src/locate.rs:1292`](../../core/dr-decode/src/locate.rs#L1292), [`core/dr-decode/src/locate.rs:359`](../../core/dr-decode/src/locate.rs#L359), [`core/dr-decode/src/locate.rs:556`](../../core/dr-decode/src/locate.rs#L556), [`core/dr-decode/src/locate.rs:640`](../../core/dr-decode/src/locate.rs#L640), [`core/dr-decode/src/locate.rs:653`](../../core/dr-decode/src/locate.rs#L653), [`core/dr-decode/src/locate.rs:736`](../../core/dr-decode/src/locate.rs#L736), [`core/dr-export/examples/export.rs:99`](../../core/dr-export/examples/export.rs#L99), [`core/dr-export/src/encode.rs:117`](../../core/dr-export/src/encode.rs#L117), [`core/dr-export/src/encode.rs:161`](../../core/dr-export/src/encode.rs#L161), [`core/dr-export/src/encode.rs:1`](../../core/dr-export/src/encode.rs#L1), [`core/dr-export/src/encode.rs:206`](../../core/dr-export/src/encode.rs#L206), [`core/dr-export/src/encode.rs:235`](../../core/dr-export/src/encode.rs#L235), [`core/dr-export/src/encode.rs:311`](../../core/dr-export/src/encode.rs#L311), [`core/dr-export/src/encode.rs:325`](../../core/dr-export/src/encode.rs#L325), [`core/dr-export/src/encode.rs:408`](../../core/dr-export/src/encode.rs#L408), [`core/dr-export/src/encode.rs:456`](../../core/dr-export/src/encode.rs#L456), [`core/dr-export/src/encode.rs:70`](../../core/dr-export/src/encode.rs#L70), [`core/dr-export/src/encode.rs:795`](../../core/dr-export/src/encode.rs#L795), [`core/dr-export/src/encode.rs:809`](../../core/dr-export/src/encode.rs#L809), [`core/dr-export/src/encode.rs:850`](../../core/dr-export/src/encode.rs#L850), [`core/dr-export/src/encode.rs:898`](../../core/dr-export/src/encode.rs#L898), [`core/dr-export/src/exif.rs:1`](../../core/dr-export/src/exif.rs#L1), [`core/dr-export/src/lib.rs:140`](../../core/dr-export/src/lib.rs#L140), [`core/dr-export/src/metadata.rs:1`](../../core/dr-export/src/metadata.rs#L1), [`core/dr-export/src/metadata.rs:41`](../../core/dr-export/src/metadata.rs#L41), [`core/dr-export/src/metadata.rs:74`](../../core/dr-export/src/metadata.rs#L74), [`core/dr-types/src/lib.rs:657`](../../core/dr-types/src/lib.rs#L657), [`core/dr-types/src/settings.rs:671`](../../core/dr-types/src/settings.rs#L671), [`ui/dr-ui/src/decoder_seam.rs:256`](../../ui/dr-ui/src/decoder_seam.rs#L256), [`ui/dr-ui/src/develop/session.rs:37`](../../ui/dr-ui/src/develop/session.rs#L37), [`ui/dr-ui/src/develop/session.rs:488`](../../ui/dr-ui/src/develop/session.rs#L488), [`ui/dr-ui/src/develop/session.rs:668`](../../ui/dr-ui/src/develop/session.rs#L668), [`ui/dr-ui/src/export.rs:1127`](../../ui/dr-ui/src/export.rs#L1127), [`ui/dr-ui/src/export.rs:1173`](../../ui/dr-ui/src/export.rs#L1173), [`ui/dr-ui/src/export.rs:1201`](../../ui/dr-ui/src/export.rs#L1201), [`ui/dr-ui/src/export.rs:1238`](../../ui/dr-ui/src/export.rs#L1238), [`ui/dr-ui/src/export.rs:1339`](../../ui/dr-ui/src/export.rs#L1339), [`ui/dr-ui/src/export.rs:1357`](../../ui/dr-ui/src/export.rs#L1357), [`ui/dr-ui/src/export.rs:916`](../../ui/dr-ui/src/export.rs#L916), [`ui/dr-ui/src/lib.rs:295`](../../ui/dr-ui/src/lib.rs#L295), [`ui/dr-ui/src/lib.rs:319`](../../ui/dr-ui/src/lib.rs#L319), [`ui/dr-ui/src/lib.rs:696`](../../ui/dr-ui/src/lib.rs#L696), [`ui/dr-ui/src/settings_ui.rs:1`](../../ui/dr-ui/src/settings_ui.rs#L1) | -| FR-EXP-9 | [`core/dr-decode/src/lib.rs:558`](../../core/dr-decode/src/lib.rs#L558), [`core/dr-export/src/lib.rs:132`](../../core/dr-export/src/lib.rs#L132), [`core/dr-export/src/lib.rs:1`](../../core/dr-export/src/lib.rs#L1), [`core/dr-gpu/src/adjust.rs:1557`](../../core/dr-gpu/src/adjust.rs#L1557), [`ui/dr-ui/examples/face_native.rs:1`](../../ui/dr-ui/examples/face_native.rs#L1), [`ui/dr-ui/src/decoder_seam.rs:256`](../../ui/dr-ui/src/decoder_seam.rs#L256), [`ui/dr-ui/src/develop/mask_ops.rs:1130`](../../ui/dr-ui/src/develop/mask_ops.rs#L1130), [`ui/dr-ui/src/develop/render.rs:681`](../../ui/dr-ui/src/develop/render.rs#L681), [`ui/dr-ui/src/develop/render.rs:723`](../../ui/dr-ui/src/develop/render.rs#L723), [`ui/dr-ui/src/lib.rs:664`](../../ui/dr-ui/src/lib.rs#L664), [`ui/dr-ui/src/library/sweep.rs:538`](../../ui/dr-ui/src/library/sweep.rs#L538), [`ui/dr-ui/tests/export_ignores_the_viewport.rs:1`](../../ui/dr-ui/tests/export_ignores_the_viewport.rs#L1) | +| FR-EXP-8 | [`core/dr-decode/src/lib.rs:373`](../../core/dr-decode/src/lib.rs#L373), [`core/dr-decode/src/lib.rs:397`](../../core/dr-decode/src/lib.rs#L397), [`core/dr-decode/src/lib.rs:411`](../../core/dr-decode/src/lib.rs#L411), [`core/dr-decode/src/lib.rs:76`](../../core/dr-decode/src/lib.rs#L76), [`core/dr-decode/src/lib.rs:84`](../../core/dr-decode/src/lib.rs#L84), [`core/dr-decode/src/lib.rs:87`](../../core/dr-decode/src/lib.rs#L87), [`core/dr-decode/src/locate.rs:1233`](../../core/dr-decode/src/locate.rs#L1233), [`core/dr-decode/src/locate.rs:1292`](../../core/dr-decode/src/locate.rs#L1292), [`core/dr-decode/src/locate.rs:359`](../../core/dr-decode/src/locate.rs#L359), [`core/dr-decode/src/locate.rs:556`](../../core/dr-decode/src/locate.rs#L556), [`core/dr-decode/src/locate.rs:640`](../../core/dr-decode/src/locate.rs#L640), [`core/dr-decode/src/locate.rs:653`](../../core/dr-decode/src/locate.rs#L653), [`core/dr-decode/src/locate.rs:736`](../../core/dr-decode/src/locate.rs#L736), [`core/dr-export/examples/export.rs:99`](../../core/dr-export/examples/export.rs#L99), [`core/dr-export/src/encode.rs:117`](../../core/dr-export/src/encode.rs#L117), [`core/dr-export/src/encode.rs:161`](../../core/dr-export/src/encode.rs#L161), [`core/dr-export/src/encode.rs:1`](../../core/dr-export/src/encode.rs#L1), [`core/dr-export/src/encode.rs:206`](../../core/dr-export/src/encode.rs#L206), [`core/dr-export/src/encode.rs:235`](../../core/dr-export/src/encode.rs#L235), [`core/dr-export/src/encode.rs:311`](../../core/dr-export/src/encode.rs#L311), [`core/dr-export/src/encode.rs:325`](../../core/dr-export/src/encode.rs#L325), [`core/dr-export/src/encode.rs:408`](../../core/dr-export/src/encode.rs#L408), [`core/dr-export/src/encode.rs:456`](../../core/dr-export/src/encode.rs#L456), [`core/dr-export/src/encode.rs:70`](../../core/dr-export/src/encode.rs#L70), [`core/dr-export/src/encode.rs:795`](../../core/dr-export/src/encode.rs#L795), [`core/dr-export/src/encode.rs:809`](../../core/dr-export/src/encode.rs#L809), [`core/dr-export/src/encode.rs:850`](../../core/dr-export/src/encode.rs#L850), [`core/dr-export/src/encode.rs:898`](../../core/dr-export/src/encode.rs#L898), [`core/dr-export/src/exif.rs:1`](../../core/dr-export/src/exif.rs#L1), [`core/dr-export/src/lib.rs:140`](../../core/dr-export/src/lib.rs#L140), [`core/dr-export/src/metadata.rs:1`](../../core/dr-export/src/metadata.rs#L1), [`core/dr-export/src/metadata.rs:41`](../../core/dr-export/src/metadata.rs#L41), [`core/dr-export/src/metadata.rs:74`](../../core/dr-export/src/metadata.rs#L74), [`core/dr-types/src/lib.rs:658`](../../core/dr-types/src/lib.rs#L658), [`core/dr-types/src/settings.rs:671`](../../core/dr-types/src/settings.rs#L671), [`ui/dr-ui/src/decoder_seam.rs:257`](../../ui/dr-ui/src/decoder_seam.rs#L257), [`ui/dr-ui/src/develop/session.rs:37`](../../ui/dr-ui/src/develop/session.rs#L37), [`ui/dr-ui/src/develop/session.rs:488`](../../ui/dr-ui/src/develop/session.rs#L488), [`ui/dr-ui/src/develop/session.rs:668`](../../ui/dr-ui/src/develop/session.rs#L668), [`ui/dr-ui/src/export.rs:1127`](../../ui/dr-ui/src/export.rs#L1127), [`ui/dr-ui/src/export.rs:1173`](../../ui/dr-ui/src/export.rs#L1173), [`ui/dr-ui/src/export.rs:1201`](../../ui/dr-ui/src/export.rs#L1201), [`ui/dr-ui/src/export.rs:1238`](../../ui/dr-ui/src/export.rs#L1238), [`ui/dr-ui/src/export.rs:1339`](../../ui/dr-ui/src/export.rs#L1339), [`ui/dr-ui/src/export.rs:1357`](../../ui/dr-ui/src/export.rs#L1357), [`ui/dr-ui/src/export.rs:916`](../../ui/dr-ui/src/export.rs#L916), [`ui/dr-ui/src/lib.rs:295`](../../ui/dr-ui/src/lib.rs#L295), [`ui/dr-ui/src/lib.rs:319`](../../ui/dr-ui/src/lib.rs#L319), [`ui/dr-ui/src/lib.rs:696`](../../ui/dr-ui/src/lib.rs#L696), [`ui/dr-ui/src/settings_ui.rs:1`](../../ui/dr-ui/src/settings_ui.rs#L1) | +| FR-EXP-9 | [`core/dr-decode/src/lib.rs:564`](../../core/dr-decode/src/lib.rs#L564), [`core/dr-export/src/lib.rs:132`](../../core/dr-export/src/lib.rs#L132), [`core/dr-export/src/lib.rs:1`](../../core/dr-export/src/lib.rs#L1), [`core/dr-gpu/src/adjust.rs:1557`](../../core/dr-gpu/src/adjust.rs#L1557), [`ui/dr-ui/examples/face_native.rs:1`](../../ui/dr-ui/examples/face_native.rs#L1), [`ui/dr-ui/src/decoder_seam.rs:257`](../../ui/dr-ui/src/decoder_seam.rs#L257), [`ui/dr-ui/src/develop/mask_ops.rs:1130`](../../ui/dr-ui/src/develop/mask_ops.rs#L1130), [`ui/dr-ui/src/develop/render.rs:681`](../../ui/dr-ui/src/develop/render.rs#L681), [`ui/dr-ui/src/develop/render.rs:723`](../../ui/dr-ui/src/develop/render.rs#L723), [`ui/dr-ui/src/lib.rs:664`](../../ui/dr-ui/src/lib.rs#L664), [`ui/dr-ui/src/library/sweep.rs:538`](../../ui/dr-ui/src/library/sweep.rs#L538), [`ui/dr-ui/tests/export_ignores_the_viewport.rs:1`](../../ui/dr-ui/tests/export_ignores_the_viewport.rs#L1) | | FR-INF-1 | [`ui/dr-ui/src/lib.rs:1502`](../../ui/dr-ui/src/lib.rs#L1502), [`ui/dr-ui/ui/settings.slint:824`](../../ui/dr-ui/ui/settings.slint#L824) | | FR-MRG-1 | [`core/dr-pano/src/align.rs:1`](../../core/dr-pano/src/align.rs#L1), [`core/dr-pano/src/lib.rs:1`](../../core/dr-pano/src/lib.rs#L1), [`ui/dr-ui/src/lib.rs:1965`](../../ui/dr-ui/src/lib.rs#L1965), [`ui/dr-ui/src/merge.rs:1`](../../ui/dr-ui/src/merge.rs#L1), [`ui/dr-ui/src/merge_ui.rs:1`](../../ui/dr-ui/src/merge_ui.rs#L1), [`ui/dr-ui/ui/app.slint:1533`](../../ui/dr-ui/ui/app.slint#L1533), [`ui/dr-ui/ui/app.slint:592`](../../ui/dr-ui/ui/app.slint#L592), [`ui/dr-ui/ui/library.slint:2049`](../../ui/dr-ui/ui/library.slint#L2049), [`ui/dr-ui/ui/library.slint:5197`](../../ui/dr-ui/ui/library.slint#L5197), [`ui/dr-ui/ui/merge.slint:1`](../../ui/dr-ui/ui/merge.slint#L1) | | FR-MRG-10 | [`core/dr-gpu/src/merge.rs:1`](../../core/dr-gpu/src/merge.rs#L1), [`core/dr-gpu/src/shaders/merge.wgsl:1`](../../core/dr-gpu/src/shaders/merge.wgsl#L1), [`core/dr-pano/src/lib.rs:1`](../../core/dr-pano/src/lib.rs#L1), [`core/dr-pano/src/seam.rs:1`](../../core/dr-pano/src/seam.rs#L1) | | FR-MRG-11 | [`core/dr-gpu/src/merge.rs:1`](../../core/dr-gpu/src/merge.rs#L1), [`core/dr-gpu/src/shaders/merge.wgsl:1`](../../core/dr-gpu/src/shaders/merge.wgsl#L1) | | FR-MRG-2 | [`core/dr-gpu/src/adjust.rs:102`](../../core/dr-gpu/src/adjust.rs#L102), [`core/dr-gpu/src/adjust.rs:1580`](../../core/dr-gpu/src/adjust.rs#L1580), [`core/dr-gpu/src/adjust.rs:1711`](../../core/dr-gpu/src/adjust.rs#L1711), [`core/dr-gpu/src/adjust.rs:567`](../../core/dr-gpu/src/adjust.rs#L567), [`core/dr-pipeline/src/graph.rs:1007`](../../core/dr-pipeline/src/graph.rs#L1007), [`core/dr-pipeline/src/operation.rs:1163`](../../core/dr-pipeline/src/operation.rs#L1163), [`core/dr-pipeline/src/operation.rs:2547`](../../core/dr-pipeline/src/operation.rs#L2547), [`core/dr-pipeline/src/operation.rs:2587`](../../core/dr-pipeline/src/operation.rs#L2587), [`core/dr-pipeline/src/operation.rs:529`](../../core/dr-pipeline/src/operation.rs#L529), [`core/dr-pipeline/src/operation.rs:762`](../../core/dr-pipeline/src/operation.rs#L762), [`ui/dr-ui/src/merge.rs:1`](../../ui/dr-ui/src/merge.rs#L1) | -| FR-MRG-3 | [`core/dr-decode/examples/linear_dng.rs:1`](../../core/dr-decode/examples/linear_dng.rs#L1), [`core/dr-decode/src/lib.rs:129`](../../core/dr-decode/src/lib.rs#L129), [`core/dr-decode/src/lib.rs:136`](../../core/dr-decode/src/lib.rs#L136), [`core/dr-decode/src/lib.rs:618`](../../core/dr-decode/src/lib.rs#L618), [`core/dr-decode/src/profile.rs:397`](../../core/dr-decode/src/profile.rs#L397), [`core/dr-export/src/dng.rs:1`](../../core/dr-export/src/dng.rs#L1), [`core/dr-gpu/src/demosaic.rs:438`](../../core/dr-gpu/src/demosaic.rs#L438), [`ui/dr-ui/src/merge.rs:1`](../../ui/dr-ui/src/merge.rs#L1) | +| FR-MRG-3 | [`core/dr-decode/examples/linear_dng.rs:1`](../../core/dr-decode/examples/linear_dng.rs#L1), [`core/dr-decode/src/lib.rs:129`](../../core/dr-decode/src/lib.rs#L129), [`core/dr-decode/src/lib.rs:136`](../../core/dr-decode/src/lib.rs#L136), [`core/dr-decode/src/lib.rs:625`](../../core/dr-decode/src/lib.rs#L625), [`core/dr-decode/src/profile.rs:397`](../../core/dr-decode/src/profile.rs#L397), [`core/dr-export/src/dng.rs:1`](../../core/dr-export/src/dng.rs#L1), [`core/dr-gpu/src/demosaic.rs:438`](../../core/dr-gpu/src/demosaic.rs#L438), [`ui/dr-ui/src/merge.rs:1`](../../ui/dr-ui/src/merge.rs#L1) | | FR-MRG-4 | [`core/dr-export/src/inscribed.rs:1`](../../core/dr-export/src/inscribed.rs#L1), [`core/dr-pano/src/fill.rs:1`](../../core/dr-pano/src/fill.rs#L1), [`core/dr-pano/src/migan.rs:1`](../../core/dr-pano/src/migan.rs#L1), [`core/dr-pano/src/projection.rs:1`](../../core/dr-pano/src/projection.rs#L1), [`ui/dr-ui/src/library/paths.rs:365`](../../ui/dr-ui/src/library/paths.rs#L365), [`ui/dr-ui/src/library/paths.rs:369`](../../ui/dr-ui/src/library/paths.rs#L369), [`ui/dr-ui/src/merge.rs:174`](../../ui/dr-ui/src/merge.rs#L174), [`ui/dr-ui/src/merge_ui.rs:1`](../../ui/dr-ui/src/merge_ui.rs#L1), [`ui/dr-ui/ui/merge.slint:1`](../../ui/dr-ui/ui/merge.slint#L1), [`ui/dr-ui/ui/merge.slint:50`](../../ui/dr-ui/ui/merge.slint#L50) | | FR-MRG-5 | [`core/dr-pano/src/align.rs:1`](../../core/dr-pano/src/align.rs#L1), [`ui/dr-ui/src/merge.rs:1`](../../ui/dr-ui/src/merge.rs#L1), [`ui/dr-ui/src/merge_ui.rs:1`](../../ui/dr-ui/src/merge_ui.rs#L1), [`ui/dr-ui/ui/merge.slint:1`](../../ui/dr-ui/ui/merge.slint#L1) | | FR-MRG-6 | [`core/dr-pipeline/src/sidecar.rs:1055`](../../core/dr-pipeline/src/sidecar.rs#L1055), [`core/dr-pipeline/src/sidecar.rs:116`](../../core/dr-pipeline/src/sidecar.rs#L116), [`core/dr-pipeline/src/sidecar.rs:126`](../../core/dr-pipeline/src/sidecar.rs#L126), [`core/dr-pipeline/src/sidecar.rs:2284`](../../core/dr-pipeline/src/sidecar.rs#L2284), [`core/dr-pipeline/src/sidecar.rs:860`](../../core/dr-pipeline/src/sidecar.rs#L860), [`core/dr-thumbs/src/lib.rs:75`](../../core/dr-thumbs/src/lib.rs#L75), [`ui/dr-ui/src/export.rs:156`](../../ui/dr-ui/src/export.rs#L156), [`ui/dr-ui/src/export.rs:370`](../../ui/dr-ui/src/export.rs#L370), [`ui/dr-ui/src/export.rs:694`](../../ui/dr-ui/src/export.rs#L694), [`ui/dr-ui/src/lib.rs:1994`](../../ui/dr-ui/src/lib.rs#L1994), [`ui/dr-ui/src/library/cells.rs:353`](../../ui/dr-ui/src/library/cells.rs#L353), [`ui/dr-ui/src/library/cells.rs:374`](../../ui/dr-ui/src/library/cells.rs#L374), [`ui/dr-ui/src/library/cells.rs:56`](../../ui/dr-ui/src/library/cells.rs#L56), [`ui/dr-ui/src/library/composite.rs:1`](../../ui/dr-ui/src/library/composite.rs#L1), [`ui/dr-ui/src/library/sweep.rs:31`](../../ui/dr-ui/src/library/sweep.rs#L31), [`ui/dr-ui/src/library_ui/controller.rs:116`](../../ui/dr-ui/src/library_ui/controller.rs#L116), [`ui/dr-ui/src/library_ui/controller.rs:126`](../../ui/dr-ui/src/library_ui/controller.rs#L126), [`ui/dr-ui/src/library_ui/grid.rs:422`](../../ui/dr-ui/src/library_ui/grid.rs#L422), [`ui/dr-ui/src/library_ui/layout.rs:1`](../../ui/dr-ui/src/library_ui/layout.rs#L1), [`ui/dr-ui/src/library_ui/layout.rs:51`](../../ui/dr-ui/src/library_ui/layout.rs#L51), [`ui/dr-ui/src/library_ui/open.rs:44`](../../ui/dr-ui/src/library_ui/open.rs#L44), [`ui/dr-ui/src/library_ui/window.rs:233`](../../ui/dr-ui/src/library_ui/window.rs#L233), [`ui/dr-ui/src/library_ui/window.rs:476`](../../ui/dr-ui/src/library_ui/window.rs#L476), [`ui/dr-ui/src/library_ui/window.rs:664`](../../ui/dr-ui/src/library_ui/window.rs#L664), [`ui/dr-ui/src/merge.rs:1015`](../../ui/dr-ui/src/merge.rs#L1015), [`ui/dr-ui/src/merge.rs:1058`](../../ui/dr-ui/src/merge.rs#L1058), [`ui/dr-ui/src/merge.rs:258`](../../ui/dr-ui/src/merge.rs#L258), [`ui/dr-ui/src/merge_thumbs.rs:1`](../../ui/dr-ui/src/merge_thumbs.rs#L1), [`ui/dr-ui/src/merge_ui.rs:52`](../../ui/dr-ui/src/merge_ui.rs#L52), [`ui/dr-ui/ui/library.slint:1486`](../../ui/dr-ui/ui/library.slint#L1486), [`ui/dr-ui/ui/library.slint:486`](../../ui/dr-ui/ui/library.slint#L486), [`ui/dr-ui/ui/library.slint:549`](../../ui/dr-ui/ui/library.slint#L549), [`ui/dr-ui/ui/library.slint:637`](../../ui/dr-ui/ui/library.slint#L637) | @@ -124,13 +124,13 @@ _None._ | FR-NC-12 | [`core/dr-sync-folder/src/lib.rs:1`](../../core/dr-sync-folder/src/lib.rs#L1), [`core/dr-sync-nextcloud/src/lib.rs:1124`](../../core/dr-sync-nextcloud/src/lib.rs#L1124), [`core/dr-sync-nextcloud/src/lib.rs:40`](../../core/dr-sync-nextcloud/src/lib.rs#L40), [`core/dr-sync-nextcloud/src/provider.rs:1`](../../core/dr-sync-nextcloud/src/provider.rs#L1), [`core/dr-sync/src/account.rs:1`](../../core/dr-sync/src/account.rs#L1), [`core/dr-sync/src/account.rs:87`](../../core/dr-sync/src/account.rs#L87), [`core/dr-sync/src/lib.rs:238`](../../core/dr-sync/src/lib.rs#L238), [`core/dr-sync/src/lib.rs:51`](../../core/dr-sync/src/lib.rs#L51), [`core/dr-sync/src/provider.rs:120`](../../core/dr-sync/src/provider.rs#L120), [`core/dr-sync/src/provider.rs:1`](../../core/dr-sync/src/provider.rs#L1), [`core/dr-sync/src/provider.rs:53`](../../core/dr-sync/src/provider.rs#L53), [`core/dr-sync/src/reachability.rs:1`](../../core/dr-sync/src/reachability.rs#L1), [`ui/dr-ui/src/remote.rs:1`](../../ui/dr-ui/src/remote.rs#L1) | | FR-NC-13 | [`core/dr-sync-folder/src/lib.rs:197`](../../core/dr-sync-folder/src/lib.rs#L197), [`core/dr-sync-folder/src/lib.rs:1`](../../core/dr-sync-folder/src/lib.rs#L1), [`core/dr-sync-folder/src/lib.rs:73`](../../core/dr-sync-folder/src/lib.rs#L73), [`core/dr-sync/src/provider.rs:120`](../../core/dr-sync/src/provider.rs#L120), [`ui/dr-ui/src/launch_ui.rs:425`](../../ui/dr-ui/src/launch_ui.rs#L425), [`ui/dr-ui/src/remote.rs:1`](../../ui/dr-ui/src/remote.rs#L1) | | FR-NC-2 | [`core/dr-sync/src/account.rs:1`](../../core/dr-sync/src/account.rs#L1), [`core/dr-sync/src/account.rs:318`](../../core/dr-sync/src/account.rs#L318), [`core/dr-sync/src/account.rs:375`](../../core/dr-sync/src/account.rs#L375), [`core/dr-sync/src/account.rs:59`](../../core/dr-sync/src/account.rs#L59), [`platform/dr-plat/src/secrets.rs:82`](../../platform/dr-plat/src/secrets.rs#L82) | -| FR-NC-3 | [`core/dr-decode/src/locate.rs:1`](../../core/dr-decode/src/locate.rs#L1), [`core/dr-decode/src/preview.rs:148`](../../core/dr-decode/src/preview.rs#L148), [`core/dr-sync/src/capability.rs:85`](../../core/dr-sync/src/capability.rs#L85), [`core/dr-thumbs/src/lib.rs:1`](../../core/dr-thumbs/src/lib.rs#L1), [`core/dr-types/src/place.rs:1`](../../core/dr-types/src/place.rs#L1), [`ui/dr-ui/src/decoder_seam.rs:215`](../../ui/dr-ui/src/decoder_seam.rs#L215), [`ui/dr-ui/src/library/mod.rs:1`](../../ui/dr-ui/src/library/mod.rs#L1), [`ui/dr-ui/src/library/sweep.rs:590`](../../ui/dr-ui/src/library/sweep.rs#L590), [`ui/dr-ui/src/library_ui/grid.rs:582`](../../ui/dr-ui/src/library_ui/grid.rs#L582), [`ui/dr-ui/src/library_ui/mod.rs:1`](../../ui/dr-ui/src/library_ui/mod.rs#L1), [`ui/dr-ui/src/library_ui/sync.rs:377`](../../ui/dr-ui/src/library_ui/sync.rs#L377), [`ui/dr-ui/ui/library.slint:803`](../../ui/dr-ui/ui/library.slint#L803), [`ui/dr-ui/ui/settings.slint:375`](../../ui/dr-ui/ui/settings.slint#L375), [`ui/dr-ui/ui/settings.slint:74`](../../ui/dr-ui/ui/settings.slint#L74) | +| FR-NC-3 | [`core/dr-decode/src/locate.rs:1`](../../core/dr-decode/src/locate.rs#L1), [`core/dr-decode/src/preview.rs:148`](../../core/dr-decode/src/preview.rs#L148), [`core/dr-sync/src/capability.rs:85`](../../core/dr-sync/src/capability.rs#L85), [`core/dr-thumbs/src/lib.rs:1`](../../core/dr-thumbs/src/lib.rs#L1), [`core/dr-types/src/place.rs:1`](../../core/dr-types/src/place.rs#L1), [`ui/dr-ui/src/decoder_seam.rs:216`](../../ui/dr-ui/src/decoder_seam.rs#L216), [`ui/dr-ui/src/library/mod.rs:1`](../../ui/dr-ui/src/library/mod.rs#L1), [`ui/dr-ui/src/library/sweep.rs:590`](../../ui/dr-ui/src/library/sweep.rs#L590), [`ui/dr-ui/src/library_ui/grid.rs:582`](../../ui/dr-ui/src/library_ui/grid.rs#L582), [`ui/dr-ui/src/library_ui/mod.rs:1`](../../ui/dr-ui/src/library_ui/mod.rs#L1), [`ui/dr-ui/src/library_ui/sync.rs:377`](../../ui/dr-ui/src/library_ui/sync.rs#L377), [`ui/dr-ui/ui/library.slint:803`](../../ui/dr-ui/ui/library.slint#L803), [`ui/dr-ui/ui/settings.slint:375`](../../ui/dr-ui/ui/settings.slint#L375), [`ui/dr-ui/ui/settings.slint:74`](../../ui/dr-ui/ui/settings.slint#L74) | | FR-NC-4 | [`core/dr-sync-folder/src/lib.rs:197`](../../core/dr-sync-folder/src/lib.rs#L197), [`core/dr-sync-nextcloud/src/propfind.rs:103`](../../core/dr-sync-nextcloud/src/propfind.rs#L103), [`core/dr-sync-nextcloud/src/propfind.rs:51`](../../core/dr-sync-nextcloud/src/propfind.rs#L51), [`core/dr-sync/src/capability.rs:6`](../../core/dr-sync/src/capability.rs#L6), [`core/dr-sync/src/lib.rs:238`](../../core/dr-sync/src/lib.rs#L238), [`core/dr-sync/src/scan.rs:129`](../../core/dr-sync/src/scan.rs#L129), [`ui/dr-ui/src/launch.rs:61`](../../ui/dr-ui/src/launch.rs#L61) | | FR-NC-5 | [`core/dr-sync-nextcloud/src/propfind.rs:51`](../../core/dr-sync-nextcloud/src/propfind.rs#L51), [`ui/dr-ui/src/import.rs:503`](../../ui/dr-ui/src/import.rs#L503) | | FR-NC-6 | [`ui/dr-ui/src/activity.rs:1`](../../ui/dr-ui/src/activity.rs#L1) | | FR-NC-6a | [`core/dr-catalog/src/cache.rs:1`](../../core/dr-catalog/src/cache.rs#L1), [`core/dr-catalog/src/cache.rs:225`](../../core/dr-catalog/src/cache.rs#L225), [`core/dr-catalog/src/schema.rs:1221`](../../core/dr-catalog/src/schema.rs#L1221), [`core/dr-catalog/src/schema.rs:1706`](../../core/dr-catalog/src/schema.rs#L1706), [`core/dr-sync-folder/src/borrow.rs:1`](../../core/dr-sync-folder/src/borrow.rs#L1), [`core/dr-types/src/selector.rs:1`](../../core/dr-types/src/selector.rs#L1), [`core/dr-types/src/settings.rs:1`](../../core/dr-types/src/settings.rs#L1), [`ui/dr-ui/src/activity.rs:423`](../../ui/dr-ui/src/activity.rs#L423), [`ui/dr-ui/src/collections_ui/rename_menu.rs:75`](../../ui/dr-ui/src/collections_ui/rename_menu.rs#L75), [`ui/dr-ui/src/collections_ui/tree_sync.rs:116`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L116), [`ui/dr-ui/src/collections_ui/tree_sync.rs:392`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L392), [`ui/dr-ui/src/collections_ui/tree_sync.rs:43`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L43), [`ui/dr-ui/src/collections_ui/wiring_tree.rs:560`](../../ui/dr-ui/src/collections_ui/wiring_tree.rs#L560), [`ui/dr-ui/src/lib.rs:1675`](../../ui/dr-ui/src/lib.rs#L1675), [`ui/dr-ui/src/lib.rs:2344`](../../ui/dr-ui/src/lib.rs#L2344), [`ui/dr-ui/src/lib.rs:2799`](../../ui/dr-ui/src/lib.rs#L2799), [`ui/dr-ui/src/lib.rs:2811`](../../ui/dr-ui/src/lib.rs#L2811), [`ui/dr-ui/src/lib.rs:2856`](../../ui/dr-ui/src/lib.rs#L2856), [`ui/dr-ui/src/lib.rs:2921`](../../ui/dr-ui/src/lib.rs#L2921), [`ui/dr-ui/src/lib.rs:3156`](../../ui/dr-ui/src/lib.rs#L3156), [`ui/dr-ui/src/lib.rs:3157`](../../ui/dr-ui/src/lib.rs#L3157), [`ui/dr-ui/src/lib.rs:3196`](../../ui/dr-ui/src/lib.rs#L3196), [`ui/dr-ui/src/library/thumbnails_fetch.rs:119`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L119), [`ui/dr-ui/src/library/thumbnails_fetch.rs:394`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L394), [`ui/dr-ui/src/library/thumbnails_fetch.rs:575`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L575), [`ui/dr-ui/src/library/thumbnails_fetch.rs:592`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L592), [`ui/dr-ui/src/library/thumbnails_fetch.rs:606`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L606), [`ui/dr-ui/src/library/thumbnails_fetch.rs:760`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L760), [`ui/dr-ui/src/library/thumbnails_fetch.rs:775`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L775), [`ui/dr-ui/src/library/thumbnails_fetch.rs:96`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L96), [`ui/dr-ui/src/library_ui/controller.rs:379`](../../ui/dr-ui/src/library_ui/controller.rs#L379), [`ui/dr-ui/src/library_ui/controller.rs:390`](../../ui/dr-ui/src/library_ui/controller.rs#L390), [`ui/dr-ui/src/library_ui/controller.rs:405`](../../ui/dr-ui/src/library_ui/controller.rs#L405), [`ui/dr-ui/src/library_ui/controller.rs:414`](../../ui/dr-ui/src/library_ui/controller.rs#L414), [`ui/dr-ui/src/library_ui/controller.rs:422`](../../ui/dr-ui/src/library_ui/controller.rs#L422), [`ui/dr-ui/src/library_ui/controller.rs:558`](../../ui/dr-ui/src/library_ui/controller.rs#L558), [`ui/dr-ui/src/library_ui/controller.rs:568`](../../ui/dr-ui/src/library_ui/controller.rs#L568), [`ui/dr-ui/src/library_ui/controller.rs:583`](../../ui/dr-ui/src/library_ui/controller.rs#L583), [`ui/dr-ui/src/library_ui/controller.rs:630`](../../ui/dr-ui/src/library_ui/controller.rs#L630), [`ui/dr-ui/src/library_ui/controller.rs:645`](../../ui/dr-ui/src/library_ui/controller.rs#L645), [`ui/dr-ui/src/library_ui/controller.rs:673`](../../ui/dr-ui/src/library_ui/controller.rs#L673), [`ui/dr-ui/src/library_ui/controller.rs:747`](../../ui/dr-ui/src/library_ui/controller.rs#L747), [`ui/dr-ui/src/library_ui/controller.rs:778`](../../ui/dr-ui/src/library_ui/controller.rs#L778), [`ui/dr-ui/src/library_ui/controller.rs:790`](../../ui/dr-ui/src/library_ui/controller.rs#L790), [`ui/dr-ui/src/library_ui/filter_bar.rs:480`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L480), [`ui/dr-ui/src/library_ui/filter_bar.rs:500`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L500), [`ui/dr-ui/src/library_ui/offline.rs:196`](../../ui/dr-ui/src/library_ui/offline.rs#L196), [`ui/dr-ui/src/library_ui/offline.rs:20`](../../ui/dr-ui/src/library_ui/offline.rs#L20), [`ui/dr-ui/src/library_ui/offline.rs:261`](../../ui/dr-ui/src/library_ui/offline.rs#L261), [`ui/dr-ui/src/library_ui/offline.rs:407`](../../ui/dr-ui/src/library_ui/offline.rs#L407), [`ui/dr-ui/src/library_ui/offline.rs:528`](../../ui/dr-ui/src/library_ui/offline.rs#L528), [`ui/dr-ui/src/library_ui/offline.rs:93`](../../ui/dr-ui/src/library_ui/offline.rs#L93), [`ui/dr-ui/src/library_ui/window.rs:360`](../../ui/dr-ui/src/library_ui/window.rs#L360), [`ui/dr-ui/src/settings_store.rs:1`](../../ui/dr-ui/src/settings_store.rs#L1), [`ui/dr-ui/src/settings_ui.rs:121`](../../ui/dr-ui/src/settings_ui.rs#L121), [`ui/dr-ui/src/settings_ui.rs:1`](../../ui/dr-ui/src/settings_ui.rs#L1), [`ui/dr-ui/src/settings_ui.rs:508`](../../ui/dr-ui/src/settings_ui.rs#L508), [`ui/dr-ui/ui/app.slint:1418`](../../ui/dr-ui/ui/app.slint#L1418), [`ui/dr-ui/ui/app.slint:156`](../../ui/dr-ui/ui/app.slint#L156), [`ui/dr-ui/ui/app.slint:2009`](../../ui/dr-ui/ui/app.slint#L2009), [`ui/dr-ui/ui/app.slint:3473`](../../ui/dr-ui/ui/app.slint#L3473), [`ui/dr-ui/ui/app.slint:483`](../../ui/dr-ui/ui/app.slint#L483), [`ui/dr-ui/ui/collections.slint:1138`](../../ui/dr-ui/ui/collections.slint#L1138), [`ui/dr-ui/ui/collections.slint:1149`](../../ui/dr-ui/ui/collections.slint#L1149), [`ui/dr-ui/ui/collections.slint:1228`](../../ui/dr-ui/ui/collections.slint#L1228), [`ui/dr-ui/ui/collections.slint:1329`](../../ui/dr-ui/ui/collections.slint#L1329), [`ui/dr-ui/ui/collections.slint:1337`](../../ui/dr-ui/ui/collections.slint#L1337), [`ui/dr-ui/ui/collections.slint:290`](../../ui/dr-ui/ui/collections.slint#L290), [`ui/dr-ui/ui/collections.slint:447`](../../ui/dr-ui/ui/collections.slint#L447), [`ui/dr-ui/ui/collections.slint:456`](../../ui/dr-ui/ui/collections.slint#L456), [`ui/dr-ui/ui/collections.slint:459`](../../ui/dr-ui/ui/collections.slint#L459), [`ui/dr-ui/ui/collections.slint:505`](../../ui/dr-ui/ui/collections.slint#L505), [`ui/dr-ui/ui/collections.slint:55`](../../ui/dr-ui/ui/collections.slint#L55), [`ui/dr-ui/ui/collections.slint:764`](../../ui/dr-ui/ui/collections.slint#L764), [`ui/dr-ui/ui/collections.slint:94`](../../ui/dr-ui/ui/collections.slint#L94), [`ui/dr-ui/ui/collections.slint:978`](../../ui/dr-ui/ui/collections.slint#L978), [`ui/dr-ui/ui/icons.slint:263`](../../ui/dr-ui/ui/icons.slint#L263), [`ui/dr-ui/ui/settings.slint:121`](../../ui/dr-ui/ui/settings.slint#L121), [`ui/dr-ui/ui/settings.slint:635`](../../ui/dr-ui/ui/settings.slint#L635) | | FR-NC-6b | [`ui/dr-ui/src/library_ui/offline.rs:261`](../../ui/dr-ui/src/library_ui/offline.rs#L261), [`ui/dr-ui/src/memory.rs:1`](../../ui/dr-ui/src/memory.rs#L1) | -| FR-NC-6c | [`core/dr-catalog/src/cache.rs:225`](../../core/dr-catalog/src/cache.rs#L225), [`core/dr-sync-folder/src/borrow.rs:1`](../../core/dr-sync-folder/src/borrow.rs#L1), [`core/dr-sync-folder/src/lib.rs:197`](../../core/dr-sync-folder/src/lib.rs#L197), [`core/dr-sync-folder/src/lib.rs:73`](../../core/dr-sync-folder/src/lib.rs#L73), [`core/dr-sync-folder/src/lib.rs:818`](../../core/dr-sync-folder/src/lib.rs#L818), [`core/dr-sync-folder/src/lib.rs:857`](../../core/dr-sync-folder/src/lib.rs#L857), [`core/dr-sync-folder/src/vfs.rs:1`](../../core/dr-sync-folder/src/vfs.rs#L1), [`core/dr-sync-nextcloud/src/desktop_client.rs:172`](../../core/dr-sync-nextcloud/src/desktop_client.rs#L172), [`core/dr-sync-nextcloud/src/desktop_client.rs:35`](../../core/dr-sync-nextcloud/src/desktop_client.rs#L35), [`core/dr-sync/src/capability.rs:41`](../../core/dr-sync/src/capability.rs#L41), [`core/dr-sync/src/error.rs:39`](../../core/dr-sync/src/error.rs#L39), [`core/dr-sync/src/lib.rs:178`](../../core/dr-sync/src/lib.rs#L178), [`core/dr-sync/src/types.rs:101`](../../core/dr-sync/src/types.rs#L101), [`core/dr-types/src/lib.rs:124`](../../core/dr-types/src/lib.rs#L124), [`core/dr-types/src/lib.rs:206`](../../core/dr-types/src/lib.rs#L206), [`ui/dr-ui/src/activity.rs:1`](../../ui/dr-ui/src/activity.rs#L1), [`ui/dr-ui/src/collections_ui/tree_sync.rs:116`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L116), [`ui/dr-ui/src/collections_ui/tree_sync.rs:392`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L392), [`ui/dr-ui/src/collections_ui/tree_sync.rs:43`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L43), [`ui/dr-ui/src/derived_sync.rs:1054`](../../ui/dr-ui/src/derived_sync.rs#L1054), [`ui/dr-ui/src/derived_sync.rs:653`](../../ui/dr-ui/src/derived_sync.rs#L653), [`ui/dr-ui/src/library/sidecar.rs:539`](../../ui/dr-ui/src/library/sidecar.rs#L539), [`ui/dr-ui/src/library/sweep.rs:713`](../../ui/dr-ui/src/library/sweep.rs#L713), [`ui/dr-ui/src/library/thumbnails_fetch.rs:216`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L216), [`ui/dr-ui/src/library/thumbnails_fetch.rs:306`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L306), [`ui/dr-ui/src/library_ui/offline.rs:20`](../../ui/dr-ui/src/library_ui/offline.rs#L20), [`ui/dr-ui/src/library_ui/offline.rs:310`](../../ui/dr-ui/src/library_ui/offline.rs#L310), [`ui/dr-ui/src/library_ui/offline.rs:93`](../../ui/dr-ui/src/library_ui/offline.rs#L93), [`ui/dr-ui/src/remote.rs:40`](../../ui/dr-ui/src/remote.rs#L40), [`ui/dr-ui/src/repairs.rs:1155`](../../ui/dr-ui/src/repairs.rs#L1155), [`ui/dr-ui/ui/collections.slint:290`](../../ui/dr-ui/ui/collections.slint#L290), [`ui/dr-ui/ui/collections.slint:978`](../../ui/dr-ui/ui/collections.slint#L978), [`ui/dr-ui/ui/icons.slint:263`](../../ui/dr-ui/ui/icons.slint#L263) | +| FR-NC-6c | [`core/dr-catalog/src/cache.rs:225`](../../core/dr-catalog/src/cache.rs#L225), [`core/dr-sync-folder/src/borrow.rs:1`](../../core/dr-sync-folder/src/borrow.rs#L1), [`core/dr-sync-folder/src/lib.rs:197`](../../core/dr-sync-folder/src/lib.rs#L197), [`core/dr-sync-folder/src/lib.rs:73`](../../core/dr-sync-folder/src/lib.rs#L73), [`core/dr-sync-folder/src/lib.rs:818`](../../core/dr-sync-folder/src/lib.rs#L818), [`core/dr-sync-folder/src/lib.rs:857`](../../core/dr-sync-folder/src/lib.rs#L857), [`core/dr-sync-folder/src/vfs.rs:1`](../../core/dr-sync-folder/src/vfs.rs#L1), [`core/dr-sync-nextcloud/src/desktop_client.rs:172`](../../core/dr-sync-nextcloud/src/desktop_client.rs#L172), [`core/dr-sync-nextcloud/src/desktop_client.rs:35`](../../core/dr-sync-nextcloud/src/desktop_client.rs#L35), [`core/dr-sync/src/capability.rs:41`](../../core/dr-sync/src/capability.rs#L41), [`core/dr-sync/src/error.rs:39`](../../core/dr-sync/src/error.rs#L39), [`core/dr-sync/src/lib.rs:178`](../../core/dr-sync/src/lib.rs#L178), [`core/dr-sync/src/types.rs:101`](../../core/dr-sync/src/types.rs#L101), [`core/dr-types/src/lib.rs:125`](../../core/dr-types/src/lib.rs#L125), [`core/dr-types/src/lib.rs:207`](../../core/dr-types/src/lib.rs#L207), [`ui/dr-ui/src/activity.rs:1`](../../ui/dr-ui/src/activity.rs#L1), [`ui/dr-ui/src/collections_ui/tree_sync.rs:116`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L116), [`ui/dr-ui/src/collections_ui/tree_sync.rs:392`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L392), [`ui/dr-ui/src/collections_ui/tree_sync.rs:43`](../../ui/dr-ui/src/collections_ui/tree_sync.rs#L43), [`ui/dr-ui/src/derived_sync.rs:1054`](../../ui/dr-ui/src/derived_sync.rs#L1054), [`ui/dr-ui/src/derived_sync.rs:653`](../../ui/dr-ui/src/derived_sync.rs#L653), [`ui/dr-ui/src/library/sidecar.rs:539`](../../ui/dr-ui/src/library/sidecar.rs#L539), [`ui/dr-ui/src/library/sweep.rs:713`](../../ui/dr-ui/src/library/sweep.rs#L713), [`ui/dr-ui/src/library/thumbnails_fetch.rs:216`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L216), [`ui/dr-ui/src/library/thumbnails_fetch.rs:306`](../../ui/dr-ui/src/library/thumbnails_fetch.rs#L306), [`ui/dr-ui/src/library_ui/offline.rs:20`](../../ui/dr-ui/src/library_ui/offline.rs#L20), [`ui/dr-ui/src/library_ui/offline.rs:310`](../../ui/dr-ui/src/library_ui/offline.rs#L310), [`ui/dr-ui/src/library_ui/offline.rs:93`](../../ui/dr-ui/src/library_ui/offline.rs#L93), [`ui/dr-ui/src/remote.rs:40`](../../ui/dr-ui/src/remote.rs#L40), [`ui/dr-ui/src/repairs.rs:1155`](../../ui/dr-ui/src/repairs.rs#L1155), [`ui/dr-ui/ui/collections.slint:290`](../../ui/dr-ui/ui/collections.slint#L290), [`ui/dr-ui/ui/collections.slint:978`](../../ui/dr-ui/ui/collections.slint#L978), [`ui/dr-ui/ui/icons.slint:263`](../../ui/dr-ui/ui/icons.slint#L263) | | FR-NC-6d | [`core/dr-sync-folder/src/borrow.rs:1`](../../core/dr-sync-folder/src/borrow.rs#L1), [`core/dr-sync-folder/src/lib.rs:1`](../../core/dr-sync-folder/src/lib.rs#L1), [`core/dr-sync-folder/src/vfs.rs:1`](../../core/dr-sync-folder/src/vfs.rs#L1) | | FR-NC-7 | [`core/dr-catalog/src/face_shard.rs:1`](../../core/dr-catalog/src/face_shard.rs#L1), [`core/dr-sync-nextcloud/src/lib.rs:120`](../../core/dr-sync-nextcloud/src/lib.rs#L120), [`ui/dr-ui/src/derived_sync.rs:1`](../../ui/dr-ui/src/derived_sync.rs#L1), [`ui/dr-ui/src/library/sweep.rs:590`](../../ui/dr-ui/src/library/sweep.rs#L590), [`ui/dr-ui/src/library_ui/sync.rs:377`](../../ui/dr-ui/src/library_ui/sync.rs#L377), [`ui/dr-ui/ui/settings.slint:375`](../../ui/dr-ui/ui/settings.slint#L375) | | FR-NC-7a | [`core/dr-ingest/src/layout.rs:1`](../../core/dr-ingest/src/layout.rs#L1), [`core/dr-sync/src/upload.rs:1`](../../core/dr-sync/src/upload.rs#L1), [`core/dr-sync/src/upload.rs:40`](../../core/dr-sync/src/upload.rs#L40), [`core/dr-types/src/settings.rs:377`](../../core/dr-types/src/settings.rs#L377), [`ui/dr-ui/src/import.rs:101`](../../ui/dr-ui/src/import.rs#L101), [`ui/dr-ui/src/import.rs:1`](../../ui/dr-ui/src/import.rs#L1), [`ui/dr-ui/src/import_ui.rs:1`](../../ui/dr-ui/src/import_ui.rs#L1), [`ui/dr-ui/src/lib.rs:1911`](../../ui/dr-ui/src/lib.rs#L1911), [`ui/dr-ui/ui/import.slint:6`](../../ui/dr-ui/ui/import.slint#L6) | @@ -147,11 +147,11 @@ _None._ | FR-PLAT-WIN-1 | [`platform/dr-plat/src/dirs.rs:1`](../../platform/dr-plat/src/dirs.rs#L1) | | FR-PLAT-WIN-2 | [`apps/darkroom-desktop/build.rs:1`](../../apps/darkroom-desktop/build.rs#L1), [`apps/darkroom-desktop/src/main.rs:6`](../../apps/darkroom-desktop/src/main.rs#L6), [`ui/dr-ui/src/launch_ui.rs:937`](../../ui/dr-ui/src/launch_ui.rs#L937) | | FR-PLAT-WIN-3 | [`apps/darkroom-desktop/src/main.rs:19`](../../apps/darkroom-desktop/src/main.rs#L19) | -| FR-RAW-1 | [`core/dr-decode/src/lib.rs:260`](../../core/dr-decode/src/lib.rs#L260), [`core/dr-types/src/lib.rs:134`](../../core/dr-types/src/lib.rs#L134), [`core/dr-types/src/lib.rs:205`](../../core/dr-types/src/lib.rs#L205) | -| FR-RAW-2 | [`core/dr-decode/src/decoder.rs:1`](../../core/dr-decode/src/decoder.rs#L1), [`core/dr-decode/src/decoder.rs:26`](../../core/dr-decode/src/decoder.rs#L26), [`core/dr-decode/src/decoder.rs:59`](../../core/dr-decode/src/decoder.rs#L59), [`core/dr-decode/src/decoder.rs:95`](../../core/dr-decode/src/decoder.rs#L95), [`ui/dr-ui/src/decoder_seam.rs:184`](../../ui/dr-ui/src/decoder_seam.rs#L184), [`ui/dr-ui/src/decoder_seam.rs:1`](../../ui/dr-ui/src/decoder_seam.rs#L1), [`ui/dr-ui/src/decoder_seam.rs:215`](../../ui/dr-ui/src/decoder_seam.rs#L215), [`ui/dr-ui/src/decoder_seam.rs:256`](../../ui/dr-ui/src/decoder_seam.rs#L256), [`ui/dr-ui/src/export.rs:1238`](../../ui/dr-ui/src/export.rs#L1238), [`ui/dr-ui/src/export.rs:973`](../../ui/dr-ui/src/export.rs#L973), [`ui/dr-ui/src/import.rs:96`](../../ui/dr-ui/src/import.rs#L96), [`ui/dr-ui/src/library/sweep.rs:301`](../../ui/dr-ui/src/library/sweep.rs#L301), [`ui/dr-ui/src/library/sweep.rs:629`](../../ui/dr-ui/src/library/sweep.rs#L629), [`ui/dr-ui/src/library/thumbnails_gen.rs:101`](../../ui/dr-ui/src/library/thumbnails_gen.rs#L101), [`ui/dr-ui/src/merge.rs:119`](../../ui/dr-ui/src/merge.rs#L119), [`ui/dr-ui/src/repairs.rs:243`](../../ui/dr-ui/src/repairs.rs#L243) | -| FR-RAW-3 | [`core/dr-decode/src/lib.rs:156`](../../core/dr-decode/src/lib.rs#L156), [`core/dr-decode/src/lib.rs:558`](../../core/dr-decode/src/lib.rs#L558), [`core/dr-decode/src/locate.rs:1435`](../../core/dr-decode/src/locate.rs#L1435), [`core/dr-gpu/src/demosaic.rs:1046`](../../core/dr-gpu/src/demosaic.rs#L1046), [`core/dr-gpu/src/demosaic.rs:1392`](../../core/dr-gpu/src/demosaic.rs#L1392), [`core/dr-gpu/src/demosaic.rs:851`](../../core/dr-gpu/src/demosaic.rs#L851), [`core/dr-gpu/tests/hot_pixels.rs:1`](../../core/dr-gpu/tests/hot_pixels.rs#L1) | +| FR-RAW-1 | [`core/dr-decode/src/lib.rs:266`](../../core/dr-decode/src/lib.rs#L266), [`core/dr-types/src/lib.rs:135`](../../core/dr-types/src/lib.rs#L135), [`core/dr-types/src/lib.rs:206`](../../core/dr-types/src/lib.rs#L206) | +| FR-RAW-2 | [`core/dr-decode/src/decoder.rs:1`](../../core/dr-decode/src/decoder.rs#L1), [`core/dr-decode/src/decoder.rs:26`](../../core/dr-decode/src/decoder.rs#L26), [`core/dr-decode/src/decoder.rs:59`](../../core/dr-decode/src/decoder.rs#L59), [`core/dr-decode/src/decoder.rs:95`](../../core/dr-decode/src/decoder.rs#L95), [`ui/dr-ui/src/decoder_seam.rs:185`](../../ui/dr-ui/src/decoder_seam.rs#L185), [`ui/dr-ui/src/decoder_seam.rs:1`](../../ui/dr-ui/src/decoder_seam.rs#L1), [`ui/dr-ui/src/decoder_seam.rs:216`](../../ui/dr-ui/src/decoder_seam.rs#L216), [`ui/dr-ui/src/decoder_seam.rs:257`](../../ui/dr-ui/src/decoder_seam.rs#L257), [`ui/dr-ui/src/export.rs:1238`](../../ui/dr-ui/src/export.rs#L1238), [`ui/dr-ui/src/export.rs:973`](../../ui/dr-ui/src/export.rs#L973), [`ui/dr-ui/src/import.rs:96`](../../ui/dr-ui/src/import.rs#L96), [`ui/dr-ui/src/library/sweep.rs:301`](../../ui/dr-ui/src/library/sweep.rs#L301), [`ui/dr-ui/src/library/sweep.rs:629`](../../ui/dr-ui/src/library/sweep.rs#L629), [`ui/dr-ui/src/library/thumbnails_gen.rs:101`](../../ui/dr-ui/src/library/thumbnails_gen.rs#L101), [`ui/dr-ui/src/merge.rs:119`](../../ui/dr-ui/src/merge.rs#L119), [`ui/dr-ui/src/repairs.rs:243`](../../ui/dr-ui/src/repairs.rs#L243) | +| FR-RAW-3 | [`core/dr-decode/src/lib.rs:162`](../../core/dr-decode/src/lib.rs#L162), [`core/dr-decode/src/lib.rs:564`](../../core/dr-decode/src/lib.rs#L564), [`core/dr-decode/src/locate.rs:1435`](../../core/dr-decode/src/locate.rs#L1435), [`core/dr-gpu/src/demosaic.rs:1046`](../../core/dr-gpu/src/demosaic.rs#L1046), [`core/dr-gpu/src/demosaic.rs:1392`](../../core/dr-gpu/src/demosaic.rs#L1392), [`core/dr-gpu/src/demosaic.rs:851`](../../core/dr-gpu/src/demosaic.rs#L851), [`core/dr-gpu/tests/hot_pixels.rs:1`](../../core/dr-gpu/tests/hot_pixels.rs#L1) | | FR-RAW-4 | [`core/dr-decode/src/error.rs:1`](../../core/dr-decode/src/error.rs#L1), [`core/dr-decode/src/error.rs:30`](../../core/dr-decode/src/error.rs#L30), [`ui/dr-ui/src/lib.rs:295`](../../ui/dr-ui/src/lib.rs#L295) | -| FR-RAW-5 | [`core/dr-decode/src/lib.rs:184`](../../core/dr-decode/src/lib.rs#L184), [`core/dr-gpu/src/demosaic.rs:1187`](../../core/dr-gpu/src/demosaic.rs#L1187), [`core/dr-gpu/src/demosaic.rs:1266`](../../core/dr-gpu/src/demosaic.rs#L1266), [`core/dr-gpu/src/demosaic.rs:1390`](../../core/dr-gpu/src/demosaic.rs#L1390), [`core/dr-gpu/src/demosaic.rs:34`](../../core/dr-gpu/src/demosaic.rs#L34) | +| FR-RAW-5 | [`core/dr-decode/src/lib.rs:190`](../../core/dr-decode/src/lib.rs#L190), [`core/dr-gpu/src/demosaic.rs:1187`](../../core/dr-gpu/src/demosaic.rs#L1187), [`core/dr-gpu/src/demosaic.rs:1266`](../../core/dr-gpu/src/demosaic.rs#L1266), [`core/dr-gpu/src/demosaic.rs:1390`](../../core/dr-gpu/src/demosaic.rs#L1390), [`core/dr-gpu/src/demosaic.rs:34`](../../core/dr-gpu/src/demosaic.rs#L34) | | FR-UI-1 | [`core/dr-types/src/settings.rs:1390`](../../core/dr-types/src/settings.rs#L1390), [`core/dr-types/src/settings.rs:492`](../../core/dr-types/src/settings.rs#L492), [`core/dr-types/src/settings.rs:512`](../../core/dr-types/src/settings.rs#L512), [`ui/dr-ui/src/develop_ui.rs:284`](../../ui/dr-ui/src/develop_ui.rs#L284), [`ui/dr-ui/src/lib.rs:126`](../../ui/dr-ui/src/lib.rs#L126), [`ui/dr-ui/src/lib.rs:141`](../../ui/dr-ui/src/lib.rs#L141), [`ui/dr-ui/src/lib.rs:163`](../../ui/dr-ui/src/lib.rs#L163), [`ui/dr-ui/src/lib.rs:3347`](../../ui/dr-ui/src/lib.rs#L3347), [`ui/dr-ui/src/lib.rs:3366`](../../ui/dr-ui/src/lib.rs#L3366), [`ui/dr-ui/src/lib.rs:3393`](../../ui/dr-ui/src/lib.rs#L3393), [`ui/dr-ui/src/lib.rs:3444`](../../ui/dr-ui/src/lib.rs#L3444), [`ui/dr-ui/src/lib.rs:3477`](../../ui/dr-ui/src/lib.rs#L3477), [`ui/dr-ui/src/library_ui/grid.rs:242`](../../ui/dr-ui/src/library_ui/grid.rs#L242), [`ui/dr-ui/src/masks_ui.rs:1608`](../../ui/dr-ui/src/masks_ui.rs#L1608), [`ui/dr-ui/src/settings_ui.rs:143`](../../ui/dr-ui/src/settings_ui.rs#L143), [`ui/dr-ui/ui/adjust.slint:1000`](../../ui/dr-ui/ui/adjust.slint#L1000), [`ui/dr-ui/ui/app.slint:3147`](../../ui/dr-ui/ui/app.slint#L3147), [`ui/dr-ui/ui/app.slint:670`](../../ui/dr-ui/ui/app.slint#L670), [`ui/dr-ui/ui/app.slint:815`](../../ui/dr-ui/ui/app.slint#L815), [`ui/dr-ui/ui/identity.slint:249`](../../ui/dr-ui/ui/identity.slint#L249), [`ui/dr-ui/ui/library.slint:1469`](../../ui/dr-ui/ui/library.slint#L1469), [`ui/dr-ui/ui/settings.slint:129`](../../ui/dr-ui/ui/settings.slint#L129), [`ui/dr-ui/ui/settings.slint:660`](../../ui/dr-ui/ui/settings.slint#L660), [`ui/dr-ui/ui/toolrail.slint:180`](../../ui/dr-ui/ui/toolrail.slint#L180), [`ui/dr-ui/ui/toolrail.slint:92`](../../ui/dr-ui/ui/toolrail.slint#L92), [`ui/dr-ui/ui/widgets.slint:1117`](../../ui/dr-ui/ui/widgets.slint#L1117) | | FR-UI-2 | [`ui/dr-ui/src/collections_ui/controller.rs:45`](../../ui/dr-ui/src/collections_ui/controller.rs#L45), [`ui/dr-ui/src/collections_ui/controller.rs:83`](../../ui/dr-ui/src/collections_ui/controller.rs#L83), [`ui/dr-ui/src/collections_ui/drag.rs:246`](../../ui/dr-ui/src/collections_ui/drag.rs#L246), [`ui/dr-ui/src/collections_ui/drag.rs:256`](../../ui/dr-ui/src/collections_ui/drag.rs#L256), [`ui/dr-ui/src/collections_ui/press.rs:453`](../../ui/dr-ui/src/collections_ui/press.rs#L453), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:121`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L121), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:138`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L138), [`ui/dr-ui/src/collections_ui/wiring_grid.rs:415`](../../ui/dr-ui/src/collections_ui/wiring_grid.rs#L415), [`ui/dr-ui/src/collections_ui/wiring_tree.rs:287`](../../ui/dr-ui/src/collections_ui/wiring_tree.rs#L287), [`ui/dr-ui/src/gestures.rs:1`](../../ui/dr-ui/src/gestures.rs#L1), [`ui/dr-ui/src/lib.rs:126`](../../ui/dr-ui/src/lib.rs#L126), [`ui/dr-ui/src/library_ui/filter_bar.rs:351`](../../ui/dr-ui/src/library_ui/filter_bar.rs#L351), [`ui/dr-ui/src/library_ui/grid.rs:242`](../../ui/dr-ui/src/library_ui/grid.rs#L242), [`ui/dr-ui/src/library_ui/window.rs:1149`](../../ui/dr-ui/src/library_ui/window.rs#L1149), [`ui/dr-ui/tests/scroll_cue.rs:1`](../../ui/dr-ui/tests/scroll_cue.rs#L1), [`ui/dr-ui/ui/app.slint:137`](../../ui/dr-ui/ui/app.slint#L137), [`ui/dr-ui/ui/app.slint:3545`](../../ui/dr-ui/ui/app.slint#L3545), [`ui/dr-ui/ui/app.slint:799`](../../ui/dr-ui/ui/app.slint#L799), [`ui/dr-ui/ui/collections.slint:1354`](../../ui/dr-ui/ui/collections.slint#L1354), [`ui/dr-ui/ui/controls.slint:626`](../../ui/dr-ui/ui/controls.slint#L626), [`ui/dr-ui/ui/gestures.slint:1`](../../ui/dr-ui/ui/gestures.slint#L1), [`ui/dr-ui/ui/library.slint:1356`](../../ui/dr-ui/ui/library.slint#L1356), [`ui/dr-ui/ui/library.slint:1389`](../../ui/dr-ui/ui/library.slint#L1389), [`ui/dr-ui/ui/library.slint:1717`](../../ui/dr-ui/ui/library.slint#L1717), [`ui/dr-ui/ui/library.slint:1724`](../../ui/dr-ui/ui/library.slint#L1724), [`ui/dr-ui/ui/library.slint:1825`](../../ui/dr-ui/ui/library.slint#L1825), [`ui/dr-ui/ui/library.slint:3168`](../../ui/dr-ui/ui/library.slint#L3168), [`ui/dr-ui/ui/library.slint:586`](../../ui/dr-ui/ui/library.slint#L586), [`ui/dr-ui/ui/presets.slint:114`](../../ui/dr-ui/ui/presets.slint#L114), [`ui/dr-ui/ui/settings.slint:143`](../../ui/dr-ui/ui/settings.slint#L143), [`ui/dr-ui/ui/widgets.slint:1117`](../../ui/dr-ui/ui/widgets.slint#L1117) | | FR-UI-3 | [`ui/dr-ui/src/collections_ui/controller.rs:143`](../../ui/dr-ui/src/collections_ui/controller.rs#L143), [`ui/dr-ui/src/collections_ui/controller.rs:348`](../../ui/dr-ui/src/collections_ui/controller.rs#L348), [`ui/dr-ui/src/collections_ui/controller.rs:361`](../../ui/dr-ui/src/collections_ui/controller.rs#L361), [`ui/dr-ui/src/collections_ui/wiring_tree.rs:287`](../../ui/dr-ui/src/collections_ui/wiring_tree.rs#L287), [`ui/dr-ui/src/develop/masks.rs:361`](../../ui/dr-ui/src/develop/masks.rs#L361), [`ui/dr-ui/src/develop/repairs.rs:49`](../../ui/dr-ui/src/develop/repairs.rs#L49), [`ui/dr-ui/src/library_ui/grid.rs:228`](../../ui/dr-ui/src/library_ui/grid.rs#L228), [`ui/dr-ui/src/masks_ui.rs:1700`](../../ui/dr-ui/src/masks_ui.rs#L1700), [`ui/dr-ui/src/masks_ui.rs:1722`](../../ui/dr-ui/src/masks_ui.rs#L1722), [`ui/dr-ui/src/masks_ui.rs:339`](../../ui/dr-ui/src/masks_ui.rs#L339), [`ui/dr-ui/src/spots_ui.rs:19`](../../ui/dr-ui/src/spots_ui.rs#L19), [`ui/dr-ui/ui/app.slint:2356`](../../ui/dr-ui/ui/app.slint#L2356), [`ui/dr-ui/ui/collections.slint:1228`](../../ui/dr-ui/ui/collections.slint#L1228), [`ui/dr-ui/ui/collections.slint:4`](../../ui/dr-ui/ui/collections.slint#L4), [`ui/dr-ui/ui/collections.slint:78`](../../ui/dr-ui/ui/collections.slint#L78), [`ui/dr-ui/ui/collections.slint:978`](../../ui/dr-ui/ui/collections.slint#L978), [`ui/dr-ui/ui/masks.slint:1246`](../../ui/dr-ui/ui/masks.slint#L1246), [`ui/dr-ui/ui/widgets.slint:72`](../../ui/dr-ui/ui/widgets.slint#L72) | @@ -174,9 +174,9 @@ _None._ | NFR-P13 | [`core/dr-decode/src/preview.rs:121`](../../core/dr-decode/src/preview.rs#L121) | | NFR-P14 | [`core/dr-gpu/src/focus.rs:186`](../../core/dr-gpu/src/focus.rs#L186), [`core/dr-gpu/src/focus.rs:1`](../../core/dr-gpu/src/focus.rs#L1), [`core/dr-gpu/src/focus.rs:317`](../../core/dr-gpu/src/focus.rs#L317), [`core/dr-gpu/src/shaders/focus_peak.wgsl:1`](../../core/dr-gpu/src/shaders/focus_peak.wgsl#L1), [`ui/dr-ui/src/develop/render.rs:502`](../../ui/dr-ui/src/develop/render.rs#L502), [`ui/dr-ui/src/lib.rs:2409`](../../ui/dr-ui/src/lib.rs#L2409) | | NFR-P3 | [`tools/bench/src/thumbnails.rs:1`](../../tools/bench/src/thumbnails.rs#L1) | -| NFR-P5 | [`core/dr-catalog/src/schema.rs:603`](../../core/dr-catalog/src/schema.rs#L603), [`core/dr-gpu/src/adjust.rs:176`](../../core/dr-gpu/src/adjust.rs#L176), [`core/dr-gpu/src/adjust.rs:3112`](../../core/dr-gpu/src/adjust.rs#L3112), [`core/dr-pipeline/src/detail.rs:1225`](../../core/dr-pipeline/src/detail.rs#L1225), [`core/dr-pipeline/src/detail.rs:681`](../../core/dr-pipeline/src/detail.rs#L681), [`ui/dr-ui/src/library/cells.rs:470`](../../ui/dr-ui/src/library/cells.rs#L470), [`ui/dr-ui/src/library/cells.rs:811`](../../ui/dr-ui/src/library/cells.rs#L811), [`ui/dr-ui/src/library_ui/controller.rs:58`](../../ui/dr-ui/src/library_ui/controller.rs#L58), [`ui/dr-ui/src/library_ui/timeline.rs:382`](../../ui/dr-ui/src/library_ui/timeline.rs#L382) | +| NFR-P5 | [`core/dr-catalog/src/schema.rs:603`](../../core/dr-catalog/src/schema.rs#L603), [`core/dr-gpu/src/adjust.rs:176`](../../core/dr-gpu/src/adjust.rs#L176), [`core/dr-gpu/src/adjust.rs:3116`](../../core/dr-gpu/src/adjust.rs#L3116), [`core/dr-pipeline/src/detail.rs:1225`](../../core/dr-pipeline/src/detail.rs#L1225), [`core/dr-pipeline/src/detail.rs:681`](../../core/dr-pipeline/src/detail.rs#L681), [`ui/dr-ui/src/library/cells.rs:470`](../../ui/dr-ui/src/library/cells.rs#L470), [`ui/dr-ui/src/library/cells.rs:811`](../../ui/dr-ui/src/library/cells.rs#L811), [`ui/dr-ui/src/library_ui/controller.rs:58`](../../ui/dr-ui/src/library_ui/controller.rs#L58), [`ui/dr-ui/src/library_ui/timeline.rs:382`](../../ui/dr-ui/src/library_ui/timeline.rs#L382) | | NFR-P9 | [`core/dr-catalog/src/backfilled.rs:1`](../../core/dr-catalog/src/backfilled.rs#L1), [`core/dr-catalog/src/schema.rs:956`](../../core/dr-catalog/src/schema.rs#L956), [`core/dr-face/src/references.rs:1`](../../core/dr-face/src/references.rs#L1), [`ui/dr-ui/src/collections_ui/mod.rs:1`](../../ui/dr-ui/src/collections_ui/mod.rs#L1), [`ui/dr-ui/src/duplicates.rs:1`](../../ui/dr-ui/src/duplicates.rs#L1), [`ui/dr-ui/src/duplicates_ui.rs:1`](../../ui/dr-ui/src/duplicates_ui.rs#L1), [`ui/dr-ui/src/executors.rs:136`](../../ui/dr-ui/src/executors.rs#L136), [`ui/dr-ui/src/executors.rs:220`](../../ui/dr-ui/src/executors.rs#L220), [`ui/dr-ui/src/export.rs:1513`](../../ui/dr-ui/src/export.rs#L1513), [`ui/dr-ui/src/library/mod.rs:1`](../../ui/dr-ui/src/library/mod.rs#L1), [`ui/dr-ui/src/library_ui/mod.rs:1`](../../ui/dr-ui/src/library_ui/mod.rs#L1), [`ui/dr-ui/src/net_runtime.rs:48`](../../ui/dr-ui/src/net_runtime.rs#L48), [`ui/dr-ui/src/trash.rs:1`](../../ui/dr-ui/src/trash.rs#L1) | -| NFR-PORT-1 | [`core/dr-catalog/src/walk.rs:1`](../../core/dr-catalog/src/walk.rs#L1), [`core/dr-types/src/lib.rs:274`](../../core/dr-types/src/lib.rs#L274), [`core/dr-types/src/lib.rs:307`](../../core/dr-types/src/lib.rs#L307), [`platform/dr-plat/src/dirs.rs:1`](../../platform/dr-plat/src/dirs.rs#L1), [`platform/dr-plat/src/display.rs:1`](../../platform/dr-plat/src/display.rs#L1), [`platform/dr-plat/src/storage.rs:1`](../../platform/dr-plat/src/storage.rs#L1), [`platform/dr-plat/src/storage.rs:216`](../../platform/dr-plat/src/storage.rs#L216), [`platform/dr-plat/src/storage.rs:287`](../../platform/dr-plat/src/storage.rs#L287), [`platform/dr-plat/src/storage.rs:344`](../../platform/dr-plat/src/storage.rs#L344), [`platform/dr-plat/src/volumes.rs:1`](../../platform/dr-plat/src/volumes.rs#L1), [`platform/dr-plat/src/volumes.rs:62`](../../platform/dr-plat/src/volumes.rs#L62), [`ui/dr-ui/src/cards.rs:1`](../../ui/dr-ui/src/cards.rs#L1) | +| NFR-PORT-1 | [`core/dr-catalog/src/walk.rs:1`](../../core/dr-catalog/src/walk.rs#L1), [`core/dr-types/src/lib.rs:275`](../../core/dr-types/src/lib.rs#L275), [`core/dr-types/src/lib.rs:308`](../../core/dr-types/src/lib.rs#L308), [`platform/dr-plat/src/dirs.rs:1`](../../platform/dr-plat/src/dirs.rs#L1), [`platform/dr-plat/src/display.rs:1`](../../platform/dr-plat/src/display.rs#L1), [`platform/dr-plat/src/storage.rs:1`](../../platform/dr-plat/src/storage.rs#L1), [`platform/dr-plat/src/storage.rs:216`](../../platform/dr-plat/src/storage.rs#L216), [`platform/dr-plat/src/storage.rs:287`](../../platform/dr-plat/src/storage.rs#L287), [`platform/dr-plat/src/storage.rs:344`](../../platform/dr-plat/src/storage.rs#L344), [`platform/dr-plat/src/volumes.rs:1`](../../platform/dr-plat/src/volumes.rs#L1), [`platform/dr-plat/src/volumes.rs:62`](../../platform/dr-plat/src/volumes.rs#L62), [`ui/dr-ui/src/cards.rs:1`](../../ui/dr-ui/src/cards.rs#L1) | | NFR-PORT-2 | [`core/dr-gpu/src/lib.rs:1`](../../core/dr-gpu/src/lib.rs#L1) | | NFR-PORT-3 | [`platform/dr-plat/src/storage.rs:1`](../../platform/dr-plat/src/storage.rs#L1) | | NFR-R1 | [`core/dr-catalog/src/schema.rs:373`](../../core/dr-catalog/src/schema.rs#L373), [`core/dr-catalog/src/sync.rs:1`](../../core/dr-catalog/src/sync.rs#L1), [`core/dr-gpu/src/lib.rs:196`](../../core/dr-gpu/src/lib.rs#L196), [`core/dr-sync/src/account.rs:240`](../../core/dr-sync/src/account.rs#L240), [`ui/dr-ui/src/library/paths.rs:69`](../../ui/dr-ui/src/library/paths.rs#L69) | @@ -188,7 +188,7 @@ _None._ | NFR-R7 | [`core/dr-gpu/src/error.rs:1`](../../core/dr-gpu/src/error.rs#L1) | | NFR-R8 | [`core/dr-gpu/src/error.rs:1`](../../core/dr-gpu/src/error.rs#L1) | | NFR-RES-1 | [`core/dr-gpu/src/adjust.rs:1472`](../../core/dr-gpu/src/adjust.rs#L1472), [`core/dr-pipeline/src/history.rs:86`](../../core/dr-pipeline/src/history.rs#L86), [`ui/dr-ui/src/develop/render.rs:654`](../../ui/dr-ui/src/develop/render.rs#L654), [`ui/dr-ui/src/identity_ui.rs:125`](../../ui/dr-ui/src/identity_ui.rs#L125), [`ui/dr-ui/src/lib.rs:118`](../../ui/dr-ui/src/lib.rs#L118), [`ui/dr-ui/src/memory.rs:1`](../../ui/dr-ui/src/memory.rs#L1) | -| NFR-RES-2 | [`core/dr-gpu/src/adjust.rs:1419`](../../core/dr-gpu/src/adjust.rs#L1419), [`core/dr-gpu/src/demosaic.rs:122`](../../core/dr-gpu/src/demosaic.rs#L122), [`core/dr-gpu/src/demosaic.rs:169`](../../core/dr-gpu/src/demosaic.rs#L169), [`core/dr-gpu/src/demosaic.rs:451`](../../core/dr-gpu/src/demosaic.rs#L451), [`core/dr-gpu/tests/source_window.rs:1`](../../core/dr-gpu/tests/source_window.rs#L1), [`core/dr-pipeline/src/graph.rs:317`](../../core/dr-pipeline/src/graph.rs#L317), [`core/dr-pipeline/src/operation.rs:1794`](../../core/dr-pipeline/src/operation.rs#L1794), [`core/dr-pipeline/src/operation.rs:615`](../../core/dr-pipeline/src/operation.rs#L615), [`core/dr-pipeline/src/tiles.rs:1`](../../core/dr-pipeline/src/tiles.rs#L1), [`ui/dr-ui/src/develop/render.rs:1892`](../../ui/dr-ui/src/develop/render.rs#L1892), [`ui/dr-ui/src/develop/render.rs:1971`](../../ui/dr-ui/src/develop/render.rs#L1971), [`ui/dr-ui/src/develop/render.rs:216`](../../ui/dr-ui/src/develop/render.rs#L216), [`ui/dr-ui/src/develop/render.rs:23`](../../ui/dr-ui/src/develop/render.rs#L23), [`ui/dr-ui/src/develop/render.rs:770`](../../ui/dr-ui/src/develop/render.rs#L770), [`ui/dr-ui/src/develop/session.rs:125`](../../ui/dr-ui/src/develop/session.rs#L125), [`ui/dr-ui/src/develop/session.rs:338`](../../ui/dr-ui/src/develop/session.rs#L338), [`ui/dr-ui/src/develop/session.rs:365`](../../ui/dr-ui/src/develop/session.rs#L365), [`ui/dr-ui/src/faces.rs:463`](../../ui/dr-ui/src/faces.rs#L463), [`ui/dr-ui/src/library/sweep.rs:264`](../../ui/dr-ui/src/library/sweep.rs#L264), [`ui/dr-ui/src/repairs.rs:1155`](../../ui/dr-ui/src/repairs.rs#L1155), [`ui/dr-ui/src/repairs.rs:1`](../../ui/dr-ui/src/repairs.rs#L1) | +| NFR-RES-2 | [`core/dr-gpu/src/adjust.rs:1419`](../../core/dr-gpu/src/adjust.rs#L1419), [`core/dr-gpu/src/demosaic.rs:122`](../../core/dr-gpu/src/demosaic.rs#L122), [`core/dr-gpu/src/demosaic.rs:169`](../../core/dr-gpu/src/demosaic.rs#L169), [`core/dr-gpu/src/demosaic.rs:451`](../../core/dr-gpu/src/demosaic.rs#L451), [`core/dr-gpu/tests/source_window.rs:1`](../../core/dr-gpu/tests/source_window.rs#L1), [`core/dr-pipeline/src/graph.rs:317`](../../core/dr-pipeline/src/graph.rs#L317), [`core/dr-pipeline/src/operation.rs:1794`](../../core/dr-pipeline/src/operation.rs#L1794), [`core/dr-pipeline/src/operation.rs:615`](../../core/dr-pipeline/src/operation.rs#L615), [`core/dr-pipeline/src/tiles.rs:1`](../../core/dr-pipeline/src/tiles.rs#L1), [`ui/dr-ui/src/develop/render.rs:1894`](../../ui/dr-ui/src/develop/render.rs#L1894), [`ui/dr-ui/src/develop/render.rs:1973`](../../ui/dr-ui/src/develop/render.rs#L1973), [`ui/dr-ui/src/develop/render.rs:216`](../../ui/dr-ui/src/develop/render.rs#L216), [`ui/dr-ui/src/develop/render.rs:23`](../../ui/dr-ui/src/develop/render.rs#L23), [`ui/dr-ui/src/develop/render.rs:770`](../../ui/dr-ui/src/develop/render.rs#L770), [`ui/dr-ui/src/develop/session.rs:125`](../../ui/dr-ui/src/develop/session.rs#L125), [`ui/dr-ui/src/develop/session.rs:338`](../../ui/dr-ui/src/develop/session.rs#L338), [`ui/dr-ui/src/develop/session.rs:365`](../../ui/dr-ui/src/develop/session.rs#L365), [`ui/dr-ui/src/faces.rs:463`](../../ui/dr-ui/src/faces.rs#L463), [`ui/dr-ui/src/library/sweep.rs:264`](../../ui/dr-ui/src/library/sweep.rs#L264), [`ui/dr-ui/src/repairs.rs:1155`](../../ui/dr-ui/src/repairs.rs#L1155), [`ui/dr-ui/src/repairs.rs:1`](../../ui/dr-ui/src/repairs.rs#L1) | | NFR-RES-4 | [`core/dr-catalog/src/cache.rs:1`](../../core/dr-catalog/src/cache.rs#L1), [`core/dr-catalog/src/face_shard.rs:1`](../../core/dr-catalog/src/face_shard.rs#L1), [`core/dr-catalog/src/schema.rs:1221`](../../core/dr-catalog/src/schema.rs#L1221), [`core/dr-gpu/src/lib.rs:97`](../../core/dr-gpu/src/lib.rs#L97), [`core/dr-thumbs/src/codec.rs:1`](../../core/dr-thumbs/src/codec.rs#L1), [`core/dr-thumbs/src/lib.rs:1`](../../core/dr-thumbs/src/lib.rs#L1), [`core/dr-thumbs/src/lib.rs:440`](../../core/dr-thumbs/src/lib.rs#L440) | | NFR-SEC-1 | [`core/dr-decode/src/error.rs:1`](../../core/dr-decode/src/error.rs#L1), [`core/dr-decode/src/error.rs:30`](../../core/dr-decode/src/error.rs#L30) | | NFR-SEC-2 | [`core/dr-sync/src/account.rs:318`](../../core/dr-sync/src/account.rs#L318), [`platform/dr-plat/src/crash.rs:1`](../../platform/dr-plat/src/crash.rs#L1), [`platform/dr-plat/src/diagnostics.rs:1`](../../platform/dr-plat/src/diagnostics.rs#L1), [`platform/dr-plat/src/diagnostics/bundle.rs:1`](../../platform/dr-plat/src/diagnostics/bundle.rs#L1), [`platform/dr-plat/src/diagnostics/redact.rs:1`](../../platform/dr-plat/src/diagnostics/redact.rs#L1), [`platform/dr-plat/src/secrets.rs:82`](../../platform/dr-plat/src/secrets.rs#L82) | diff --git a/ui/dr-ui/src/decoder_seam.rs b/ui/dr-ui/src/decoder_seam.rs index 9dc7bb6..f8fa749 100644 --- a/ui/dr-ui/src/decoder_seam.rs +++ b/ui/dr-ui/src/decoder_seam.rs @@ -130,6 +130,7 @@ impl Decoder for Stub { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: "Stubco".into(), model: "Stubco One".into(), }) diff --git a/ui/dr-ui/src/develop/render.rs b/ui/dr-ui/src/develop/render.rs index 12ef468..c603b03 100644 --- a/ui/dr-ui/src/develop/render.rs +++ b/ui/dr-ui/src/develop/render.rs @@ -1624,6 +1624,7 @@ mod tests { samples_per_pixel: 1, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: dr_decode::CropRect { @@ -1878,6 +1879,7 @@ mod tests { samples_per_pixel: 3, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: dr_decode::CropRect { diff --git a/ui/dr-ui/src/develop/session.rs b/ui/dr-ui/src/develop/session.rs index 6897e9a..35e10f9 100644 --- a/ui/dr-ui/src/develop/session.rs +++ b/ui/dr-ui/src/develop/session.rs @@ -832,6 +832,7 @@ mod tests { samples_per_pixel: 1, profile: None, profile_tables: tables.map(Arc::new), + baseline_exposure: 0.0, make: "Canon".into(), model: "EOS 6D".into(), crop: dr_decode::CropRect { @@ -852,6 +853,7 @@ mod tests { origin, hue_sat: None, look: dr_types::HueSatTable::new(2, 2, 1, false, vec![[5.0, 1.1, 1.0]; 4]), + tone_curve: None, }; let open = |t| { DevelopSession::open(&ctx, &raw_with(t), dr_types::Orientation::NORMAL) @@ -907,6 +909,7 @@ mod tests { hue_sat: [None, None], look: dr_types::HueSatTable::new(2, 2, 1, false, vec![[5.0, 1.1, 1.0]; 4]), tone_curve: None, + baseline_exposure_offset: 0.0, }; s.set_embedded_profile(Some(profile(0))); assert_eq!( diff --git a/ui/dr-ui/src/develop/white_balance.rs b/ui/dr-ui/src/develop/white_balance.rs index 5664bfa..eae1307 100644 --- a/ui/dr-ui/src/develop/white_balance.rs +++ b/ui/dr-ui/src/develop/white_balance.rs @@ -233,6 +233,7 @@ mod tests { samples_per_pixel: 3, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: dr_decode::CropRect { @@ -307,6 +308,7 @@ mod tests { samples_per_pixel: 3, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: dr_decode::CropRect { @@ -360,6 +362,7 @@ mod tests { samples_per_pixel: 3, profile: None, profile_tables: None, + baseline_exposure: 0.0, make: String::new(), model: String::new(), crop: dr_decode::CropRect {