h*)N"      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~1.0.21 Safe-Inferred "%&-4>*nix-diffA file path that may not exist on the true file system; needs to be looked up in a store, which may be relocated.:Unlike the (C++) Nix StorePath type, subpaths are allowed.nix-diffIf the store is relocated, its physical location is elsewhere, and this  won't resolve. Use .nix-diff Convert a  to a  for display purposes. The path may not exist at this physical location. Safe-Inferred "%&-4> nix-diffMany input derivations differ, but they've all already been compared.#nix-diff1Will be Nothing, if there is no extra input names)nix-diff2Will be Nothing, if any of source files not exists-nix-diff2Will be Nothing, if there is no extra source names8nix-diffMap from derivation name to its outputs. Will be Nothing, if 1 gives empty Maps for both new and old outputs9nix-diffDifference of outputs with the same name. Will be empty, if all outputs are equal.Gnix-diff,Will be Nothing, if Platform does not changeHnix-diff+Will be Nothing, if Builder does not changeInix-diff'Will be Nothing, if arguments are equalLnix-diff5Will be Nothing, if environment comparison is skippedMnix-diff%A set of Nix derivation output names. !$#"%*)('&+.-,/1025436987:=<;>LKJIHGFECBA@?DMONPQRSTVUWZYX[\]^_`WZYXTVUSRQPMON>LKJIHGFECBA@?D:=<;69872543/10+.-,%*)('&!$#" [\]^_` Safe-Inferred "%&-4>nix-diffIn large diffs there may be a lot of derivations that doesn't change at all, but changed some of its nested inputs, that was already compared. This case will produce "stairs" of useless reports: ``` @ The input derivation named a differs - nix;store/j1jmbxd74kzianaywml2nw1ja31a00r5-a.drv:{out} + nixstore/ww51c2dha7m5l5qjzh2rblicsamkrh62-a.drv:{out} @ The input derivation named b differs - nix=store/j1jmbxd74kzianaywml2nw1ja31a00r5-b.drv:{out} + nixstore/ww51c2dha7m5l5qjzh2rblicsamkrh62-b.drv:{out} @ The input derivation named c differs @ These two derivations have already been compared ``` This transformation will fold all these subtrees of diff into one OnlyAlreadyComparedBelow.nix-diffIf packages deep in the dependency graph have been changed, many other derivations will also change in an uninteresting manner. This can lead to hundreds or thousands of lines of output like this:``` @ The input derivation named `bash-5.2p32` differs @ These two derivations have already been compared @ The input derivation named `ensure-newer-sources-hook` differs @ These two derivations have already been compared @ The input derivation named `pypa-install-hook` differs @ These two derivations have already been compared ```+This transformation will fold sequences of  like this into a single .nix-diffThis transformation is most useful for --json output, because it will sqash a lot of `{"content":" ","type":Both },{"content":When,"type":Both},{"content":" ","type":Both},{"content":"in","type":Both},{"content":" ","type":Both4}` into one `{"content":" When in ","type":Both }` block.5To understand this problem clearer, see `golden-testsexpected-outputsjson` and `golden-testsexpected-outputsjson-squashed`._Warning_: this transformation can break some parts of printing in human readable mode. Safe-Inferred "%&-4>nix-diff?Extract the name of a derivation (i.e. the part after the hash)This is used to guess which derivations are related to one another, even though their hash might differ-Note that this assumes that the path name is: +/nix/store/${32_CHARACTER_HASH}-${NAME}.drvNix technically does not require that the Nix store is actually stored underneath `nix6store`, but this is the overwhelmingly common use casenix-diffGroup paths by their namenix-diff#Extract the name of a build product Similar to %, this assumes that the path name is: +/nix/store/${32_CHARACTER_HASH}-${NAME}.drvnix-diffLike  , but for snix-diffRead a file as utf-8 encoded string, replacing non-utf-8 characters with the unicode replacement character. This is necessary since derivations (and nix source code!) can in principle contain arbitrary bytes, but `nix-derivation` can only parse from .nix-diff'Read and parse a derivation from a filenix-diffRead and parse a derivation from a store path that can be a derivation (.drv) or a realized path, in which case the corresponding derivation is queried.nix-diff Join two s on shared keys, discarding keys which are not present in both snix-diffDiff two outputsnix-diffDiff two sets of outputsnix-diffSplit  into spans of < that alternatively fail and satisfy the given predicateThe first span (if present) does not satisfy the predicate (even if the span is empty)decomposeOn (== 'b') "aabbaa"["aa","bb","aa"]decomposeOn (== 'b') "bbaa"["","bb","aa"]decomposeOn (== 'b') ""[]nix-diff Diff two  valuesnix-diffDiff two environmentsnix-diffDiff input sourcesnix-diff Output namenix-diffLeft derivation outputsnix-diffRight derivation outputsnix-diffLeft derivation outputsnix-diffRight derivation outputsnix-diffLeft value to comparenix-diffRight value to comparenix-diffList of blocks of diffed textnix-diffLeft derivation outputsnix-diffRight derivation outputsnix-diffLeft environment to comparenix-diffRight environment to comparenix-diffLeft input sourcesnix-diffRight inputSourcesnix-diff,Is this the top-level call for a comparison?&If so, the diff will be more detailed.nix-diffStore path of left derivation.nix-diff Output names of left derivation.nix-diffStore path of right derivation.nix-diff!Output names of right derivation.nix-diff.Description of how the two derivations differ.++ Safe-Inferred "%&-4>"m nix-diff*This exists to improve compatibility with less -R. See: 2https://github.com/Gabriella439/nix-diff/issues/95nix-diffColor text rednix-diffColor text background rednix-diffColor text greennix-diffColor text background greennix-diffColor text greynix-diffFormat the left half of a diffnix-diffFormat the right half of a diffnix-diffFormat text explaining a diffnix-diffUtility to automate a common pattern of printing the two halves of a diff. This passes the correct formatting function to each halfnix-diffFormat the derivation outputsnix-diffBeginning of escape sequencenix-diffText to escape       !"#$%&''()*+,-./00123345567889:;;<=>?@ABC>DEFGHIJKLLMNOPQRRSTTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ &nix-diff-1.0.21-9upfo2llU6vKJbTes5Z7ckNix.Diff.StoreNix.Diff.TypesNix.Diff.TransformationsNix.DiffNix.Diff.Render.HumanReadablenix-diffData.Map difference StorePath"$sel:unsafeStorePathFile:StorePath doesFileExistreadFileUtf8LenienttoPhysicalPathtoText$fDataStorePath$fShowStorePath $fEqStorePath$fOrdStorePath$fToJSONStorePath$fFromJSONStorePath$fToJSONKeyStorePath$fFromJSONKeyStorePath$fArbitraryStorePath EnvVarDiff$sel:envKey:EnvVarDiff$sel:envValueDiff:EnvVarDiffEnvironmentDiffEnvironmentsAreEqual&$sel:extraEnvDiff:EnvironmentsAreEqual($sel:envContentDiff:EnvironmentsAreEqualInputDerivationsDiffOneDerivationDiffSomeDerivationsDiff"ManyDerivationsAlreadyComparedDiff$sel:drvName:OneDerivationDiff$sel:drvDiff:OneDerivationDiff%$sel:extraPartsDiff:OneDerivationDiff$sel:drvNames:OneDerivationDiff InputsDiff$sel:inputExtraNames:InputsDiff$$sel:inputDerivationDiffs:InputsDiffSourceFileDiffOneSourceFileDiffSomeSourceFileDiff$sel:srcName:OneSourceFileDiff%$sel:srcContentDiff:OneSourceFileDiff"$sel:srcFileDiff:OneSourceFileDiff SourcesDiff$sel:extraSrcNames:SourcesDiff$sel:srcFilesDiff:SourcesDiff ArgumentsDiff!$sel:unArgumetsDiff:ArgumentsDiff OutputDiff$sel:outputName:OutputDiff$sel:hashDifference:OutputDiff OutputsDiff$sel:extraOutputs:OutputsDiff$sel:outputHashDiff:OutputsDiffOutputStructure#$sel:derivationPath:OutputStructure&$sel:derivationOutputs:OutputStructureDerivationDiffDerivationsAreTheSameAlreadyComparedOnlyAlreadyComparedBelowNamesDontMatchOutputsDontMatch*$sel:outputStructure:DerivationsAreTheSame&$sel:outputsDiff:DerivationsAreTheSame'$sel:platformDiff:DerivationsAreTheSame&$sel:builderDiff:DerivationsAreTheSame($sel:argumentsDiff:DerivationsAreTheSame&$sel:sourcesDiff:DerivationsAreTheSame%$sel:inputsDiff:DerivationsAreTheSame"$sel:envDiff:DerivationsAreTheSame OutputNames$sel:unOutputNames:OutputNamesArgumentBuilderPlatform OutputHashTextDiff$sel:unTextDiff:TextDiffChanged$sel:before:Changed$sel:now:Changed changedToJSONchangedFromJSON itemToJSON itemFromJSON arbitraryItemarbitraryDerivationOutput$fFromJSONChanged$fToJSONChanged$fArbitraryChanged$fFromJSONTextDiff$fToJSONTextDiff$fArbitraryTextDiff$fFromJSONOutputsDiff$fToJSONOutputsDiff$fArbitraryOutputsDiff$fFromJSONArgumentsDiff$fToJSONArgumentsDiff$fArbitraryArgumentsDiff$fEqDerivationDiff$fShowDerivationDiff$fGenericDerivationDiff$fDataDerivationDiff$fToJSONDerivationDiff$fFromJSONDerivationDiff$fArbitraryDerivationDiff$fEqInputsDiff$fShowInputsDiff$fGenericInputsDiff$fDataInputsDiff$fToJSONInputsDiff$fFromJSONInputsDiff$fArbitraryInputsDiff$fEqInputDerivationsDiff$fShowInputDerivationsDiff$fGenericInputDerivationsDiff$fDataInputDerivationsDiff$fToJSONInputDerivationsDiff$fFromJSONInputDerivationsDiff$fArbitraryInputDerivationsDiff$fEqEnvironmentDiff$fShowEnvironmentDiff$fGenericEnvironmentDiff$fDataEnvironmentDiff$fToJSONEnvironmentDiff$fFromJSONEnvironmentDiff$fArbitraryEnvironmentDiff$fEqEnvVarDiff$fShowEnvVarDiff$fGenericEnvVarDiff$fDataEnvVarDiff$fToJSONEnvVarDiff$fFromJSONEnvVarDiff$fArbitraryEnvVarDiff$fEqSourcesDiff$fShowSourcesDiff$fGenericSourcesDiff$fDataSourcesDiff$fToJSONSourcesDiff$fFromJSONSourcesDiff$fArbitrarySourcesDiff$fEqSourceFileDiff$fShowSourceFileDiff$fGenericSourceFileDiff$fDataSourceFileDiff$fToJSONSourceFileDiff$fFromJSONSourceFileDiff$fArbitrarySourceFileDiff$fEqArgumentsDiff$fShowArgumentsDiff$fDataArgumentsDiff$fEqOutputsDiff$fShowOutputsDiff$fDataOutputsDiff$fEqOutputDiff$fShowOutputDiff$fGenericOutputDiff$fDataOutputDiff$fToJSONOutputDiff$fFromJSONOutputDiff$fArbitraryOutputDiff$fEqOutputStructure$fShowOutputStructure$fGenericOutputStructure$fDataOutputStructure$fToJSONOutputStructure$fFromJSONOutputStructure$fArbitraryOutputStructure$fEqOutputNames$fOrdOutputNames$fToJSONOutputNames$fFromJSONOutputNames$fShowOutputNames$fGenericOutputNames$fDataOutputNames$fArbitraryOutputNames $fEqTextDiff$fShowTextDiff$fDataTextDiff $fEqChanged $fShowChanged$fFunctorChanged$fFoldableChanged$fTraversableChanged$fGenericChanged $fDataChanged$fDataDerivationOutputfoldAlreadyComparedSubTrees'foldManyInputDerivationsAlreadyComparedsquashSourcesAndEnvsDifftransformNestedDerivationDiffsenvSkippedOrUnchangedalreadyComparedBelow transformIf Orientation CharacterWordLine DiffContext$sel:orientation:DiffContext$sel:environment:DiffContextDiff$sel:unDiff:DiffDiffed$sel:leftDerivation:Diffed$sel:leftOutput:Diffed$sel:rightDerivation:Diffed$sel:rightOutput:DiffedStatus$sel:visited:StatusunzipderivationName groupByNamebuildProductNamegroupSetsByNamestorepathParserreadDerivation readInput innerJoingetGroupedDiff diffOutput diffOutputs decomposeOn lineBoundary wordBoundarydiffTextdiffEnvdiffSrcs diffPlatform diffBuilderdiffArgsdiff $fFunctorDiff$fApplicativeDiff $fMonadDiff$fMonadReaderDiffContextDiff$fMonadStateStatusDiff $fMonadIODiff$fMonadFailDiff $fEqDiffed $fOrdDiffedTTYIsTTYNotTTYRender$sel:unRender:Render RenderContext$sel:orientation:RenderContext$sel:tty:RenderContext$sel:indent:RenderContext$sel:context:RenderContext runRender runRender'echoindentedescapered redBackgroundgreengreenBackgroundgreyminusplusexplain renderWith renderOutputsrenderDiffHumanReadablezippers$fFunctorRender$fApplicativeRender $fMonadRender $fMonadReaderRenderContextRender$fMonadWriterTextRenderbaseGHC.IOFilePath text-2.0.2Data.Text.InternalTextcontainers-0.6.7Data.Set.InternalSetData.Map.InternalMap