+
    2j5                        R t ^ RIHt ^ RIHtHt ^RIHtHtH	t	 ]'       d   ^ RI
HtHtHt ^RIHtHt R.tR R ltR	# )
a  Build the final resolution result.

Per the PubGrub spec, a solution must not include packages that
aren't transitively reachable from the root.  This module owns the
BFS that walks the dependency graph from the root incompatibilities,
filters the partial solution's decisions down to that reachable set,
and keeps the edges the walk crossed.

Reference: https://github.com/dart-lang/pub/blob/master/doc/solver.md#result
)annotations)TYPE_CHECKINGAny)IncompatibilityCausePackageTypeVersionType)CallableIterableMapping)IncompatibilityRangeProtocolbuild_solution_datac          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )   	decisionsz!Mapping[PackageType, VersionType]incompatibilitiesz3Iterable[Incompatibility[PackageType, VersionType]]get_dependencieszVCallable[[PackageType, VersionType], Mapping[PackageType, RangeProtocol[VersionType]]]root_sentinelr   returnzktuple[dict[PackageType, VersionType], tuple[tuple[PackageType, PackageType], ...], tuple[PackageType, ...]] )formats   "^/home/user/billing-ledger-validation/.venv/lib/python3.14/site-packages/nab_resolver/result.py__annotate__r      s:     > >0>J>> >>    c                  \        V 4      pVP                  VR4       / pV FW  pVP                  \        P                  8w  d   K$  VP
                   F#  pVP                  VJg   K  RWWP                  &   K%  	  KY  	  . p\        4       p	\        V4      p
V
'       d   V
P                  ^ 4      pW9   d   K!  V	P                  V4       VP                  V4      pVf   RV: R2p\        V4      hV! W4       F.  pVP                  W34       W9  g   K  V
P                  V4       K0  	  K  VP                  4        UUu/ uF  w  rW9   g   K  WbK  	  upp\        V4      \        V4      3# u uppi )a  Return pins, edges, and roots for decisions reachable from the root.

``incompatibilities`` is scanned for clauses with cause ``ROOT``
to recover the user-specified root requirements.  ``get_dependencies``
is the provider's ``get_dependencies(package, version)`` method,
which is used to traverse the dependency graph.  Every dependency it
reports for a reachable package becomes an edge.
NzBug: reachable package z has no decision)dictpopcauser   ROOTtermspackagesetlistaddgetRuntimeErrorappenditemstuple)r   r   r   r   all_decisionsroot_requiredincompatibilitytermedges	reachablequeuer    versionunreachabledep_packages   &&&$           r   r   r      s^   * OMmT* .0M,  $8$=$==#))D||=0.2ll+ * - 46E"%%I#M2E
))A,g##G,?3G;>NOK{+++G=KLL'/0+[) > %2$7$7$9	
$9 # G$9	

 	em 	
s   <
E*E*N)__doc__
__future__r   typingr   r   typesr   r   r   collections.abcr   r	   r
   r   r   __all__r   r   r   r   <module>r9      s1   	 # % A A;;5 
!>r   