RVV6Y7OIPXZ5AMS5LZNU2G3CGESOFLQRCGSGTWO4S5YBUI7HUX2QC KT5UYXGKEEXUHURNOYFVIG7WQ3Y3SJZMM2TP4OSW6NXSXQ5XXRHAC MJDGPSHGF62FTVWZBE7MFNJTUQD42OBVJEOSVPBT553UFJLTEMXQC ZVI4AWERNOTDJ3765HJXRBZT57XPNKVONQ6TGOGNPOL2VN42KMJQC QMAUTRB6R5R7ABWT2JIDEA7LMILZOS3PGPZIF3YUFKRVLW6HGKTQC 23SFYK4Q5NKBPJG53PQNPWQH6UOUU2YKJEL7RLXYBRLJOJYV7AWQC XSZZB47UXR6KGYFZZQFQR63X2LDKOH6TPNNBRRGHUCI5JJ4JIWVAC ACDXXAX26ZJJFKJDGRC2GOSJY5JHQWCSTP55SYI6D6LH5UIRYUBAC ESMM3FELOBYIX7FUNOU37FYKRJHFU2IMX6LY6EGJTVPTBDU3SEEQC WXQBBQ2ACNPKCTDF7OTBLP342324ZIOJK42PUO2KT2IYVJ2ETCMAC PTWZYQFRWWUOE2WMQT26CKZKFSHAIJVJS3QWHJFYUFDRRTVPHSUAC EJPSD5XO43DWUBBZGNQMY4TMCAXL5EWCGX3OEHUERQ5GRASGWQLQC 5O4FWCFP4ZPAS7WKSYPHN76ML3O2S4JUOYWOV2ETD4TF2H6KZ6AQC HPSOAD4RXHXU7TSVX2AD5ZDGHMS7HLYNRARWHJCXGGH5RWW7LH6QC 2SLTGWP6FTM7C7BMSYEI2EBD4YTVO2XCIVRPHBJH5XHVLLVR76TAC UPWS6J3BIHQKXSSWHD7CFLJOXWT3MRABFRVQ4T4NRYFALBAKJOOQC FU6P5QLG4GVLHVB4O5TCEPJF4X4FGDUBONQFRYP4U5KEPIYLUWJQC L6GEOWHOOOQE7HKUAFHGSGTQFG6U4S52G46DBIRMBW7M6XFTJCCQC PNRHMFDN4Y3WSCHU7UWNO35Y3NU2LTPYJ4L3EHYPLF54PI2MDRVQC SWWE2R6MVBX5CNM6X3WLXZTSRTU53PBJL7WJSFVF77XBPXDX4COAC VCNKFNUF7OWVSWC6I5D25KUZ3XZZICZ3LHWVPF2N5ZSP7LQ2JOUQC 6YZAVBWU6E5FYOI5JGEIPXGZLIKAW6LS2AOFIQWEE5DMOPPCD5PQC } => (path.clone(), ChangedFileDiff::Add),
} => {// TODO: This fn isn't public in upstream pijul, contriblet contents = if let Some(contents) = contents {let raw_contents = get_change_contents(&repo.changes,contents,&diff.contents,)?;let encoding = encoding::detect(&raw_contents);Some(try_decode_contents(raw_contents, &encoding))} else {None};(path.clone(), ChangedFileDiff::Add { contents })}
DiffWithContents::Add => el(text("Added")),
DiffWithContents::Add { contents } => {if let Some(contents) = contents {let line_num = 1;let lines = contents_to_lines(contents);let max_line_num = line_num + lines.len();let line_num_digits = max_line_num.to_string().len();let lines_view =lines.into_iter().enumerate().map(|(ix, line)| {line_view(LineKind::Added,line_num + ix,line_num_digits,line,)});el(column(lines_view))} else {el(text("Added"))}}
repo::ChangedFileDiff::Add => {with.push((DiffWithContents::Add, id_parts_hash(diff)));
repo::ChangedFileDiff::Add { contents } => {let contents = match contents {Some(repo::Contents::Decoded(lines) | repo::Contents::ShortBase64(lines)) => Some(lines.clone()),Some(repo::Contents::UnknownEncoding(_)) | None => None};with.push((DiffWithContents::Add { contents }, id_parts_hash(diff)));
DiffWithContents::Add | DiffWithContents::Undel => {
DiffWithContents::Add { contents } => {let added = contents.as_deref().map(trim_line_break_suffix).map(contents_to_lines).unwrap_or_default();let max_line_num = added.len();sections.push(Section::Changed {deleted: vec![],added,diff_id,});return Combined {sections,max_line_num,};}DiffWithContents::Undel => {