!GR8      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Noneniv:Efficiently prettify and serialize a JSON value as a lazy  and write it to a file.SafeNone;M_G   NoneNone%_nivTODO: Error instead of T.Text?nivTGet the latest revision for owner, repo and branch. TODO: explain no error handlingnivownernivreponivbranch !"#$% !"#$%None %&',4=?PSX_,nivKWhether the value is new or was retrieved (or derived) from old attributesJnivRun an <* and return the new attributes and result.Qniv'Runs an update, trying to evaluate the *es as little as possible. This is a hairy piece of code, apologies _(0)_/ In most cases I just picked the first implementation that compiledTnivRenders the template. Returns L if some of the attributes are missing. renderTemplate ("foo" -> "bar") " foo:" -> pure (Just "bar") renderTemplate ("foo" -> "bar") " baz" -> pure Nothing[nivLike Z but forces evaluation7&(')*+,-.0/132487659:;<HGEDBF?>@A=CIJKLMNOPQRSTUVWXYZ[\7I<HGEDBF?>@A=C:;JKLM948765132.0/N*+,-)OP&('QRSTUVWXYZ[\None;M_&[ kniv,All the released versions of nix/sources.nixnivWhere to find the sources.jsonniv"use the default (nix/sources.json)nivuse the specified file pathnivSimply discards the &nivnix/sources.json or pointed at by nivA user friendly versionniv6Find a version based on the md5 of the nix/sources.nixniv#The MD5 sum of a particular versionnivThe MD5 sum of .nix sources.nixniv nix/sources.nixniv&Glue code between nix and sources.jsonnivEmpty JSON map2k{zyxwvutsrqpnmol|}~2|}~k{zyxwvutsrqpnmolNone)GnivDEnsure that the sources.nix we ship is tracked as the latest version None%._,nivXThe GitHub update function TODO: fetchers for: * npm * hackage * docker * ... ?nivprefetchnivlatest revisionnivget repo None_,` NoneSX, None%P_h-nivThe IO (real) github update None%PX1nivThe "real" (IO) updatenivRun the "git" executableniv latest revnivlatest rev and default refnivthe repositorynivthe ref/branchnivthe repository None1NoneX2 None2Safe2None%;MP_7nivMonly used in shortcuts (niv add foo/bar ...) because PACKAGE is NOT optionalnivonly used in command (niv add  cmd! ...) because PACKAGE is optionalniv;Checks if content is different than default and if it does not contain a comment line with niv: no_update##  !"#$%&'()**+,-./0123456789:;<<=>?@AB?CADEFGHIJKLIMNOPQRSKTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        !niv-0.2.13-76sARsvwoaM4MD7LRypEP3Data.Aeson.ExtendedData.HashMap.Strict.Extended Niv.LoggerData.Text.ExtendedNiv.GitHub.API Niv.Update Niv.SourcesNiv.Sources.Test Niv.GitHubNiv.GitHub.TestNiv.CmdNiv.GitHub.Cmd Niv.Git.Cmd Niv.Git.TestNiv.Update.TestNiv.TestNiv.Cli Paths_nivencodeFilePretty forWithKeyM forWithKeyM_ mapWithKeyM mapWithKeyM_jobtsaysaygreentgreenyellowtyellowbluetblueredtredboldtboldfainttfaintbugtshowabort GithubReporepoDescription repoHomepagerepoDefaultBranch githubRepoabortCouldNotFetchGitHubRepodefaultRequestgithubLatestRevabortCouldNotGetRev githubHost githubApiPort githubApiHost githubSecure githubPathFreedomLockedFree BoxedAttrsBoxboxNewboxOp UpdateReady UpdateSuccess UpdateFailed UpdateResUpdateNeedMore FailNoSuchKeyFailZero FailCheck FailTemplateJSONComposeCompose'UpdateIdArrFirstZeroPlusCheckLoadUseOrSetRunTemplateAttrs runUpdate execUpdate evalUpdate tryEvalUpdaterunBox unboxAttrsboxAttrs runUpdate' decodeBox decodeValuerenderTemplatetemplatecheckloaduseOrSetupdaterunrun'dirty $fIsStringBox$fSemigroupBox$fApplicativeBox $fShowUpdate$fCategoryTYPEUpdate $fArrowUpdate$fArrowPlusUpdate$fArrowZeroUpdate$fShowUpdateFailed $fFunctorBox $fEqFreedom $fShowFreedom$fFunctorUpdateReady$fFunctorUpdateResSourcesNixVersionV1V2V3V4V5V6V7V8V9V10V11V12V13V14V15V16 PackageSpec unPackageSpec PackageName unPackageNameSources unSources SourcesErrorSourcesDoesntExistSourceIsntJSON SpecIsntAMapFindSourcesJsonAutoAtPathgetSourcesEither getSources setSources attrsToSpecpathNixSourcesJsonabortSourcesDoesntExistabortSourcesIsntJSONabortSpecIsntAMapsourcesVersionToTextlatestVersionMD5md5ToSourcesVersionsourcesVersionToMD5 sourcesNixMD5pathNixSourcesNixwarnIfOutdatedinitNixSourcesNixContentinitNixSourcesJsonContent$fEqPackageName$fHashablePackageName$fFromJSONKeyPackageName$fToJSONKeyPackageName$fShowPackageName$fFromJSONPackageSpec$fToJSONPackageSpec$fShowPackageSpec$fSemigroupPackageSpec$fMonoidPackageSpec$fFromJSONSources$fToJSONSources$fBoundedSourcesNixVersion$fEnumSourcesNixVersion$fEqSourcesNixVersiontest_shippedSourcesNixIsLatest githubUpdategithubURLTemplatetest_githubInitsProperlytest_githubUpdatestest_githubDoesntOverrideRevtest_githubURLFallbacktest_githubUpdatesOnceCmd descriptionparseCmdShortcutparsePackageSpec updateCmdname githubCmdgitCmdparseGitShortcutparseGitPackageSpec describeGit gitUpdate gitUpdate' latestRevdefaultRefAndHEAD abortNoRev abortNoRefrunGitisRevabortGitFailuretests simplyRuns picksFirstloadssurvivesChecks isNotTooEagerdirtyForcesUpdateshouldNotRunWhenNoChangestemplatesExpandconstBoxtestNIOrunNIOgetFindSourcesJsonlicli parseCommandparsePackageName parsePackage parseCmdInitcmdInit parseCmdAddparseShortcutArgs parseCmdArgscmdAdd parseCmdShowcmdShow showPackageparseCmdUpdatespecToFreeAttrsspecToLockedAttrs cmdUpdatepartitionEithersHMSparseCmdModify cmdModify parseCmdDropcmdDropshouldUpdateNixSourcesNixabortCannotAddPackageExistsabortCannotUpdateNoSuchPackageabortCannotModifyNoSuchPackageabortCannotDropNoSuchPackageabortCannotShowNoSuchPackage&abortCannotAttributesDropNoSuchPackageabortUpdateFailed$fMonadUnliftIONIO $fFunctorNIO$fApplicativeNIO $fMonadNIO $fMonadIONIO$fMonadReaderNIObytestring-0.10.8.2Data.ByteString.Lazy.Internal ByteStringbase GHC.MaybeNothing githubUpdate'version getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName