SAB      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123 4 5 6 7 8 9 : ; < = > ? @ A  Safe%+1<>?AFQTVNone%+1<>?AFQTV*There is a separate G for each possible failure when interacting with the Git repository. Repositoryy is the central point of contact between user code and Git data objects. Every object must belong to some repository.A commit we may already haveThe commit we needInclude commit trees also?All the objects in between*)('&%$#"!  +-,10/.2<;:9876543=BA@?>CEDFJIHGKLNMOPSRQTU\[ZYXWV]_^`aihgfedcbjmklqponrstuxwvy}|{z~~yz{|}uvwxrstjklmnopq`abcdefghi]^_TUVWXYZ[\OPQRSKLMNFGHIJCDE=>?@AB23456789:;<+,-../01  !"#$%&'()**  !"#$%&'()*+,-../012 3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` abcdefghijklmnopqrstuvwxyz{|}None%+1<>?AFQTV&B\Perform a query action on a TreeBuilder using the supplied action kind and user function.xThis is a complex algorithm which has been rewritten many times, so I will try to guide you through it as best I can.C\Write out a tree to its repository. If it has already been written, nothing will happen.&]^_`abcdefghir&r`abcdefghi]^_DEFGNone%+1<>?AFQTV(None%+1<>?AFQTV)WNone%+1<>?AFQTV.5BGiven a list of objects (commit and top-level trees) return by P, expand it to include all subtrees and blobs as well. Ordering is preserved.A commit we may already haveThe commit we needInclude commit trees also?All the objects in betweenNone%+1<>?AFQTV/  !"#$%&'()  !"#$%&'()None%+1<>?AFQTV0*+,*+,None%+1<>?AFQTV2.0A commit we may already haveThe commit we needAll the objects in between-./012-./012 None%+1<>?AFQTV7Z3Fast-forward push a reference between repositories using a recursive copy. This can be extremely slow, but always works no matter which two backends are being used. It should be considered a matter of last resort, or for objects sets that are known to be small.3434None%+1<>?AFQTV8  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijlkmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./01234 None%+1<>?AFQTV= 567;:98<=> 6789:;5<=>6789:; None%+1<>?AFQTV@ @Create a new, empty tree.[Since empty trees cannot exist in Git, attempting to write out an empty tree is a no-op.?@?@Safe%+1<>?AFQTV@ None%+1<>?AFQTVAAAH !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^^_`abbcdefghijjkllmnopqrstuvuwxyz{||}~      !"#$%&'()*+,-./0123456 7 8 9 : : ; < = > ? @ A B C DEFGHIJK#gitlib-3.1.2-1d4uOumbdJI179lQ8wdhiB Git.TypesGit.Tree.BuilderGit.Repository Git.Reference Git.ObjectGit.BlobGit.Tree Git.CommitGit.Commit.PushGit.Tree.WorkingGit.Tree.Builder.Pure Git.Working Git.TutorialGit Git.Utils GitException BackendErrorGitErrorRepositoryNotExistRepositoryInvalidRepositoryCannotAccessBlobCreateFailedBlobEmptyCreateFailedBlobEncodingUnknownBlobLookupFailedDiffBlobFailedDiffPrintToPatchFailedDiffTreeToIndexFailedIndexAddFailedIndexCreateFailedPathEncodingErrorPushNotFastForwardTagLookupFailedTranslationExceptionTreeCreateFailedTreeBuilderCreateFailedTreeBuilderInsertFailedTreeBuilderRemoveFailedTreeBuilderWriteFailedTreeLookupFailedTreeCannotTraverseBlobTreeCannotTraverseCommitTreeEntryLookupFailedTreeUpdateFailedTreeWalkFailedTreeEmptyCreateFailedCommitCreateFailedCommitLookupFailedReferenceCreateFailedReferenceDeleteFailedRefCannotCreateFromPartialOidReferenceListingFailedReferenceLookupFailedObjectLookupFailedObjectRefRequiresFullOid OidCopyFailedOidParseFailedQuotaHardLimitExceeded MergeResult MergeSuccessMergeConflicted mergeCommit mergeHeadLeftmergeHeadRightmergeConflicts MergeStatus NoConflict BothModifiedLeftModifiedRightDeletedLeftDeletedRightModified BothAddedLeftModifiedRightTypeChangedLeftTypeChangedRightModifiedLeftDeletedRightTypeChangedLeftTypeChangedRightDeletedBothTypeChangedModificationKind UnchangedModifiedAddedDeleted TypeChanged RefTargetRefObj RefSymbolicObjectBlobObjTreeObj CommitObjTagObjTagtagOid tagCommit Signature signatureNamesignatureEmail signatureWhenCommit commitOid commitParents commitTree commitAuthorcommitCommitter commitLogcommitEncodingModifiedBuilderBuilderUnchanged TreeBuildermtbBaseTreeOidmtbPendingUpdates mtbNewBuildermtbWriteContentsmtbLookupEntry mtbEntryCount mtbPutEntry mtbDropEntry TreeEntry BlobEntry CommitEntry blobEntryOid blobEntryKind treeEntryOidcommitEntryOidTreeTrunTreeTBlobKind PlainBlobExecutableBlob SymlinkBlob BlobContents BlobStringBlobStringLazy BlobStreamBlobSizedStream ByteSourceBlobblobOid blobContentsSHAgetSHA ObjectOid BlobObjOid TreeObjOid CommitObjOid TagObjOidTagOid CommitOidTreeOidBlobOidIsOid renderOid renderObjOidRepositoryFactoryopenRepository runRepositoryRepositoryOptionsrepoPathrepoWorkingDir repoIsBarerepoAutoCreateMonadGitOidTreeOptionsfactsparseOid getRepositorycloseRepositorydeleteRepositorycreateReferencelookupReferenceupdateReferencedeleteReferencesourceReferences lookupObject existsObject sourceObjects lookupCommit lookupTree lookupBlob lookupTag readIndex writeIndexnewTreeBuildertreeOid treeEntrysourceTreeEntriesdiffContentsWithTree hashContents createBlob createCommit createTag TreeFilePath CommitMessage CommitEmail CommitAuthorRefNameRepositoryFactshasSymbolicReferences RawFilePathdefaultRepositoryOptions parseObjOidcopyOid shaToText textToShatreeEntryToOidfromBuilderModsourceCommitParentslookupCommitParentsdefaultSignature objectOid loadObjectobjectToObjOid untagObjOidcommitRefTarget mergeStatuscopyMergeResult $fHashableSHA $fShowSHA $fIsOidSHA$fEqBlobContents$fMonoidModifiedBuilder$fSemigroupModifiedBuilder$fExceptionGitException$fShowRepositoryFacts$fEqSHA$fOrdSHA $fReadSHA$fShowBlobKind $fEqBlobKind$fEnumBlobKind$fShowSignature$fEqModificationKind$fOrdModificationKind$fEnumModificationKind$fShowModificationKind$fReadModificationKind$fEqMergeStatus$fOrdMergeStatus$fEnumMergeStatus$fShowMergeStatus$fReadMergeStatus$fEqGitException$fShowGitExceptionModifyTreeResultTreeEntryNotFoundTreeEntryDeletedTreeEntryPersistentTreeEntryMutatedfromModifyTreeResulttoModifyTreeResult emptyTreeIdgetEntryputEntry dropEntryputBlob'putBlobputTree putCommitwithTree withTreeOid mutateTree mutateTreeOidcurrentTreeOid currentTree withNewTree createTree$fMonadIOTreeT$fMonadTransTreeT$fMonadFixTreeT$fMonadPlusTreeT$fAlternativeTreeT$fApplicativeTreeT $fMonadTreeT$fFunctorTreeT$fEqBuilderAction$fShowBuilderActionwithNewRepositorywithNewRepository'withRepository'withRepositorylistReferencesresolveReferencereferenceToOid listObjectstraverseObjectstraverseObjects_expandTreeObjectslistAllObjectscreateBlobUtf8catBlob catBlobLazy catBlobUtf8blobContentsToByteStringblobToByteStringblobContentsToLazyByteStringblobToLazyByteString writeBlobtreeBlobEntriessourceTreeBlobEntriescopyBloblistTreeEntries copyTreeEntrycopyTreecommitTreeEntry copyCommitOid copyCommit listCommitstraverseCommitstraverseCommits_ pushCommitcopyRepositoryFileTree FileEntry fileModTime fileBlobOid fileBlobKind fileChecksum readFileTree readFileTree' readModTime EntryHashMapnewPureTreeBuilder checkoutFilesqueryTreeBuilderwriteTreeBuilder BuilderActionGetEntryPutEntry DropEntry