
    6h[                    v   % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJrJrJ	r	J
r
JrJr  S SKJr  S SKJrJrJrJrJrJr  S SKJr  SSKJrJrJrJrJrJrJrJr J!r!J"r"J#r#  \RH                  (       a  S S	KJ%r&  \RN                  r'\RP                  r(\RR                  r)\RT                  r*\RV                  r+\RX                  r,\RZ                  r-\R\                  r.\R^                  r/\ R`                  r0\ Rb                  r1\!Rd                  r2\"Rf                  r3\#Rh                  r4\#Rj                  r5S
q6S\7S'   S&S'S jjr8S(S jr9S)S jr:S\,S4S\-S4S\5S4S\1S4S\.S4S\2S4S\/S4S\+S4S\3S4/	r;S\04S\44/r<S*S jr=        S+S jr> " S S5      r? " S S 5      r@ " S! S"5      rA " S# S$5      rB S,     S-S% jjrCg).    )annotationsN)AnyStrDictListMappingOptionalUnion)_)encodingerrorhgpycompatscmutilutil)dateutil   )bzrcommoncvsdarcsfilemapgitgnuarchr   monotonep4
subversion)uis   asciibytesorig_encodingc           	     x   Uc  0 n[        US5       nU H  nUR                  5       nU(       a  UR                  S5      (       a  M2   UR                  SS5      u  pVUR                  5       nUR                  5       nUR                  U5      S U4;   a&  [        S5      nU R                  XuU4-  5        XbU'   M  [        S5      nU R                  XX%   U4-  5        M     S S S 5        U$ ! [         a3    [        S5      nU R                  XqUR                  5       4-  5         GM  f = f! , (       d  f       U$ = f)Nrb   #   =r   s,   ignoring bad line in author map file %s: %s
s   mapping author %s to %s
s5   overriding mapping for author %s, was %s, will be %s
)openstrip
startswithsplit
ValueErrorr
   warnrstripgetdebugstatus)	r   
authorfileauthorsafileline	srcauthor	dstauthormsgms	            7/usr/lib/python3/dist-packages/hgext/convert/convcmd.pyreadauthormapr7   K   s,   	j$	5D::<D4??400'+zz$':$	 ")I!)I{{9%$	)::459556%.	"KLAIIag&8)DDE+  
 . N  HI4;;=99: 
 	. Ns0   5D*C*BD**8D'"D*&D''D**
D9c                    [        U [        5      (       a*  U R                  [        R                  " [
        5      S5      $ U R                  S5      R                  [        R                  " [
        5      S5      $ )Nreplacezutf-8)
isinstancestrencoder   sysstrr   decode)ss    r6   recoder@   h   sS    !Sxx6	BBxx ''OOM*I
 	
    c                n    UR                  U =(       d    SU 5      n U (       d  UR                  SU 5      n U $ )a  
>>> bmap = {b'default': b'branch1'}
>>> for i in [b'', None]:
...     mapbranch(i, bmap)
'branch1'
'branch1'
>>> bmap = {b'None': b'branch2'}
>>> for i in [b'', None]:
...     mapbranch(i, bmap)
'branch2'
'branch2'
>>> bmap = {b'None': b'branch3', b'default': b'branch4'}
>>> for i in [b'None', b'', None, b'default', b'branch5']:
...     mapbranch(i, bmap)
'branch3'
'branch4'
'branch4'
'branch4'
'branch5'
s   defaults   None)r+   )branch	branchmaps     r6   	mapbranchrE   q   s3    4 ]]6/Z8F w/MrA   s   cvs
   branchsorts   gits   svns   hg
   sourcesorts   darcss   mtns   gnuarchs   bzrs   p4c                0   / nU(       a?  U[          Vs/ s H  oUS   PM	     sn;  a"  [        R                  " [        S5      U-  5      e[          H   u  pgn U(       a  Xb:X  a  U" XX5      U4s  $ M"     U R                  (       d>  U H8  n	U R                  S[        R                  " U	R                  S   5      -  5        M:     [        R                  " [        S5      U-  5      es  snf ! [        [
        4 a  n	UR                  U	5         S n	A	M  S n	A	ff = f)Nr   s"   %s: invalid source repository type   %s
s%   %s: missing or unsupported repository)source_convertersr   Abortr
   NoRepoMissingToolappendquietwriter   bytestrargs)
r   pathtyperevs
exceptionsr?   namesourcesortmodeinsts
             r6   convertsourcer[      s    J+<=+<aqT+<==kk!ABTIJJ"3h	$4<b3X== ( #4 88DHHWx//		!==> 
++a@ADH
II > $ 	$d##	$s   C$C))D9DDc                   U(       a?  U[          Vs/ s H  o3S   PM	     sn;  a"  [        R                  " [        S5      U-  5      e[          H  u  pE U(       a  XB:X  a  U" XU5      s  $ M     [        R                  " [        S5      U-  5      es  snf ! [         a(  nU R                  [        S5      U-  5         S nAMu  S nAf[         a  n[        R                  " SU-  5      eS nAff = f)Nr   s'   %s: invalid destination repository types   convert: %s
rI   s   %s: unknown repository type)sink_convertersr   rK   r
   rL   noterM   )r   rS   rT   r?   rW   sinkrZ   s          r6   convertsinkr`      s     ?;?aqT?;;kk!FG$NOO%
	.4<Bd++ ( & ++a67$>
?? <  	0GGA&'$.// 	.++gn--	.s)   BB
C-CC-C((C-c                  6    \ rS rSrS	S jrS rS rS rS rSr	g)
progresssource   c                l    Xl         X l        UR                  [        S5      [        S5      US9U l        g )Ns   getting filess   filesunittotal)r   rX   makeprogressr
   progress)selfr   rX   	filecounts       r6   __init__progresssource.__init__   s2    ak ( 
rA   c                j    U R                   R                  US9  U R                  R                  X5      $ )N)item)ri   	incrementrX   getfile)rj   filerevs      r6   rq   progresssource.getfile   s,    T*{{""4--rA   c                8    U R                   R                  U5      $ N)rX   targetfilebelongstosource)rj   targetfilenames     r6   rw   (progresssource.targetfilebelongstosource   s    {{44^DDrA   c                8    U R                   R                  U5      $ rv   )rX   	lookuprev)rj   rs   s     r6   r{   progresssource.lookuprev   s    {{$$S))rA   c                8    U R                   R                  5         g rv   )ri   completerj   s    r6   closeprogresssource.close   s     rA   )ri   rX   r   N)r   uimod.uirk   zOptional[int]returnNone)
__name__
__module____qualname____firstlineno__rl   rq   rw   r{   r   __static_attributes__ rA   r6   rb   rb      s    
.E*!rA   rb   c                  0    \ rS rSrSrS rS rS rS rSr	g)	branchsorter   zIf the previously converted revision has a child in the
eligible revisions list, pick it. Return the list head
otherwise. Branch sort attempts to minimize branch
switching, which is harmful for Mercurial backend
compression.
c                ,    / U l         Xl        S U l        g rv   nodesparentsprev)rj   r   s     r6   rl   branchsorter.__init__   s    
	rA   c                    U R                   S   nU R                    H$  nU R                  U R                  U   ;   d  M"  Un  O   Xl        U R                   R                  U5        U$ Nr   )r   r   r   remove)rj   nextns      r6   picknextbranchsorter.picknext   sW    zz!}AyyDLLO+  	

$rA   c                <    U R                   R                  SU5        g r   )r   insert)rj   nodes     r6   r   branchsorter.insert   s    

!T"rA   c                6    U R                   R                  5       $ rv   )r   __len__r   s    r6   r   branchsorter.__len__   s    zz!!##rA   r   N
r   r   r   r   __doc__rl   r   r   r   r   r   rA   r6   r   r      s    
#$rA   r   c                  0    \ rS rSrSrS rS rS rS rSr	g)		keysorter   z.Key-based sort, ties broken by insertion orderc                ,    / U l         Xl        SU l        g r   )heapkeyfncounter)rj   r   s     r6   rl   keysorter.__init__   s    	
rA   c                H    [         R                  " U R                  5      S   $ )N   )heapqheappopr   r   s    r6   r   keysorter.picknext  s    }}TYY'**rA   c                    U R                   nUS-   U l         U R                  U5      n[        R                  " U R                  X2U45        g )Nr   )r   r   r   heappushr   )rj   r   r   keys       r6   r   keysorter.insert  s;    ,,{jjtyy3"67rA   c                6    U R                   R                  5       $ rv   )r   r   r   s    r6   r   keysorter.__len__  s    yy  ""rA   )r   r   r   Nr   r   rA   r6   r   r      s    8
+8#rA   r   c                  v    \ rS rSrSS jrSS jrS rSS jrS rSS jr	SS jr
S	 rSS
 jrSS jrSS jrSrg)	converteri  c                \   X l         X0l        Xl        XPl        0 U l        0 U l        S U l        [        X5      U l        U R                  R                  5       nU(       a5  [        R                  R                  U5      (       a  U R                  U5        UR                  S5      (       a?  U R                  UR                  S5      5        U R                  R                  5       U l        U R                  UR                  S5      5      U l        [        XR                  S5      5      U l        g )N	   authormaps	   splicemaps	   branchmap)rX   destr   optscommitcacher/   r.   mapfilemaposrS   existsr7   r+   parsesplicemap	splicemaprD   )rj   r   rX   r   
revmapfiler   r.   s          r6   rl   converter.__init__  s    		
 2* YY))+
"''..44z*88L!!txx56"ii224DO,,TXXl-CD XXl%;<rA   c                   U(       d  0 $ 0 n [        US5       n[        U5       H  u  pEUR                  5       S   R                  5       nU(       d  M/  [        R
                  " USS9n[        U5      nS[        U5      s=::  a  S::  d(  O  [        R                  " [        S5      XS-   4-  5      eU H  nU R                  R                  U5        M      US   USS USS	 pnX:X  a  XU'   M  X-   X('   M     S	S	S	5        U$ ! , (       d  f       U$ = f! [         a#    [        R                  " [        S
5      U-  5      ef = f)ab  check and validate the splicemap format and
return a child/parents dictionary.
Format checking has two parts.
1. generic format which is same across all source types
2. specific format checking which may be different for
   different source type.  This logic is implemented in
   checkrevformat function in source files like
   hg.py, subversion.py etc.
r!   r      ,)data
whitespacer      s8   syntax error in %s(%d): child parent1[,parent2] expectedr   Ns-   splicemap file not found or error reading %s:)r$   	enumerate
splitlinesr*   r   shlexerlistlenr   rK   r
   rX   checkrevformatOSError)rj   rS   r5   fpir1   lexpartchildp1p2s              r6   r   converter.parsesplicemap+  sC    I	dD!R(}GA??,Q/668D  ..dtDC9DT/a/#kk!7  $Um	,  !%2248 !%$(GT!AYQRrEx#%%#%7/  - "< = "!< 	  	++BCdJ 	s)   D C D9D 
DD D -Ec                   [        U5      n[        5       n0 nU R                  R                  5       nU R                  R                  [        S5      [        S5      US9nU(       a  UR                  S5      nXs;   a  M  XpR                  ;   a;  U R                  U   nU[        :X  d   U R                  R                  U5      (       a  Mi  UR                  U5        UR                  [        U5      5        U R                  U5      n	/ XG'   U	R                    H'  n
XG   R#                  U
5        UR#                  U
5        M)     U(       a  M  UR%                  5         U$ )zXReturn a mapping that identifies the uncommitted parents of every
uncommitted changeset.s   scanning	   revisionsre   r   )r   setrX   
numcommitsr   rh   r
   popr   SKIPREVr   hascommitfrommapaddupdater   cachecommitr   rN   r~   )rj   headsvisitknownr   r   ri   r   r5   commitps              r6   walktreeconverter.walktreeZ  s    U[[++-
77''kN<
 ( 
 		!AzHH}HHQK<499#=#=a#@#@IIaLOOCJ'%%a(FGJ^^
!!!$Q $ e 	rA   c                   [        U5       H  nX1;  ab  U R                  R                  U R                  R	                  X35      5      (       d'  U R
                  R                  [        S5      U-  5        Mj  / nX#    Hv  nU R                  R                  U R                  R	                  XU5      5      (       a  M>  XQ;  a"  [        R                  " [        S5      U-  5      eUR                  U5        Mx     XAU'   M     g)zA splicemap redefines child/parent relationships. Check the
map contains valid revision identifiers and merge the new
links in the source graph.
s8   splice map revision %s is not being converted, ignoring
s   unknown splice map parent: %sN)sortedr   hascommitforsplicemapr   r+   r   r)   r
   r   rK   rN   )rj   r   r   cpcr   s         r6   mergesplicemapconverter.mergesplicemapw  s    
 	"Ayy66txx||A7IJJGGLL5 	 B\9922488<<3EFF#++a(H&IA&MNN		! " AJ+ #rA   c           	       ^  U 4S jnU 4S jnU 4S jnU 4S jnUS:X  a  [        U5      nOLUS:X  a  U" 5       nO>US:X  a  U" 5       nO0US:X  a  U" 5       nO"[        R                  " [        S	5      U-  5      eU" U5      u  pU	 H  n
UR	                  U
5        M     / n0 nU(       a  UR                  5       nUR                  U5        UR                  U/ 5       Hd  nX;  a(  X    Vs/ s H  oT R                  ;  d  M  UPM     snX'    X   R                  U5        X   (       a  MO  UR	                  U5        SX'   Mf     U(       a  M  [        U5      [        U5      :w  a  [        R                  " [        S5      5      eU$ s  snf ! [         a7    [        R                  " [        S
5      [        U5      [        U5      4-  5      ef = f)zfReturn an ordering such that every uncommitted changeset is
preceded by all its uncommitted ancestors.c                  > [         R                  " [        U 5      5      n[        5       n0 n/ nU(       a  UR	                  5       nXR;   a  M  UR                  U5        UR                  U/ 5        SnX    HG  nUTR                  ;  a  UR                  U5        SnUR                  U/ 5      R                  U5        MI     U(       d  UR                  U5        U(       a  M  X44$ )zReturn a (children, roots) tuple where 'children' maps parent
revision identifiers to children ones, and 'roots' is the list of
revisions without parents. 'parents' must be a mapping of revision
identifier to its parents ones.
FT)	collectionsdequer   r   popleftr   
setdefaultr   rN   )	r   r   seenchildrenrootsr   	hasparentr   rj   s	           r6   mapchildren'converter.toposort.<locals>.mapchildren  s      %%fWo6E5DHEMMO9 ##Ar*!	 A(Q$(	''2.55a8	 $
 !LLO %" ?"rA   c                 &   > U4S jn [        U 5      $ )zSource specific sort.c                6   > TR                   U    R                  $ rv   )r   sortkeyr   rj   s    r6   <lambda>>converter.toposort.<locals>.makesourcesorter.<locals>.<lambda>  s    d..q199rA   r   r   rj   s    r6   makesourcesorter,converter.toposort.<locals>.makesourcesorter  s    9EU##rA   c                 &   > U4S jn [        U 5      $ )zClose order sort.c                n   > STR                   U    R                  ;  TR                   U    R                  4$ )Ns   close)r   extrar   r  s    r6   r  =converter.toposort.<locals>.makeclosesorter.<locals>.<lambda>  s5     0 0 3 9 99  #++rA   r  r  s    r6   makeclosesorter+converter.toposort.<locals>.makeclosesorter  s    E U##rA   c                 &   > U4S jn [        U 5      $ )zSort revisions by date.c                   > TR                   U    n[        R                  " UR                  5      UR                  UR
                  4$ rv   )r   r   	parsedatedaters   rC   )r   r   rj   s     r6   getdate;converter.toposort.<locals>.makedatesorter.<locals>.getdate  s?    ))!, &&v{{3JJMM rA   r  )r  rj   s    r6   makedatesorter*converter.toposort.<locals>.makedatesorter  s     W%%rA   rF      datesortrG   	   closesorts   unknown sort mode: %ss    cycle detected between %s and %sNs   not all revisions were sorted)r   r   rK   r
   r   r   rN   r+   r   r   r(   r@   r   )rj   r   rY   r   r  r  r  sorterr   r   r   r?   pendingsr   r   r   s   `               r6   toposortconverter.toposort  s   	#<	$
	$	& }$!'*F$#%F&%'F%$&F++a 89HDEE%g.DMM$  !AHHQK \\!R($.5j"NjTXX<M1j"NHKK&&q)  {{MM!$"&HK ) f( q6S\!++a @ABB! #O " ++=>!!9fQi01 s   (F?FF		AG
c           
     X   U R                   nU(       a  U R                  R                  [        S5      U-  5        [	        US5       nU R
                   H9  nUR                  [        R                  " SX0R
                  U   4-  5      5        M;     S S S 5        g g ! , (       d  f       g = f)Ns   writing author map file %s
zwb+s   %s=%s
)	r.   r   r-   r
   r$   r/   rP   r   tonativeeol)rj   r.   ofileauthors       r6   writeauthormapconverter.writeauthormap  s    __
GGNN1<=
JKj%(E"llFKK((&&,,v2F)GG + )( ((s   A
B
B)c                N    [        U R                  XR                  5      U l        g rv   )r7   r   r/   )rj   r.   s     r6   r7   converter.readauthormap  s    $TWWj,,GrA   c                   U R                   R                  U5      nU R                  R                  UR                  UR                  5      Ul        [        UR                  U R                  5      Ul        X R                  U'   U$ rv   )	rX   	getcommitr/   r+   r  rE   rC   rD   r   )rj   rs   r   s      r6   r   converter.cachecommit
  s_    &&s+((F!&--@ &rA   c           
       ^  T R                   U   nT R                  R                  S5      nT R                  R	                  X5      n[        U[        5      (       a0  U[        :X  a  [        nOT R                  U   nUT R                  U'   g Uu  pgn/ n	UR                  (       ak  UR                   H[  n
U
T R                   ;  a  T R                  U
5        U	R                  T R                  U
   T R                   U
   R                  45        M]     T R                  R                  UR                  U	5         T R                  U   nT R                   R#                  [%        S5      [%        S5      R'                  U5      U4-  5        U Vs/ s H  nT R                  R                  X5      PM      nn[/        U	5      S:w  a
  [1        5       n[/        U5      S:  a+  [3        T R                   T R                  [/        U5      5      nO9[3        T R                   T R                  [/        U5      [/        U5      S-
  -  5      nT R                  R5                  XgXUT R                  X85      nUR7                  5         T R                  R9                  X5        UT R                  U'   g s  snf ! [(         aC    U	 Vs/ s H  oS   PM	     Os  snf nnUR+                  U 4S jUR,                   5       5         GNAf = f)	Ns   fulls   spliced in %s as parents of %s
s    and r   c              3  d   >#    U  H%  oTR                   ;   d  M  TR                   U   v   M'     g 7frv   )r   ).0xrj   s     r6   	<genexpr>!converter.copy.<locals>.<genexpr>/  s'      %6txx-%6s   00r   r   r   )r   r   r+   rX   
getchangesr:   r   r   r   r   r   rN   rC   r   	setbranchr   r   r-   r
   joinKeyErrorextend
optparentsr   r   rb   	putcommitr   	converted)rj   rs   r   fullchangesr   filescopiescleanp2	pbranchesr   r   r   brX   newnodes   `               r6   copyconverter.copy  sh   !!#&yy}}W%++((3gu%%'!xx( DHHSM!(w	>>t///$$T*  XXd^T%5%5d%;%B%BC ' 			FMM95	nnS)GGGNN56X;##G,c23 4;;7atxx||A)7G; y>QeGw<!#DGGT[[#e*EF $c%jCL14D&EF ))%%7FDHHd
 	c+/ < 	%./YtY/G/NN %+%6%6 	s1   6AJ& 
%J!/J& !J& &K34K-K32K3c                    U R                   R                  5         U R                  R                  5         U R                   R                  U R                  5        U R
                  R                  [        S5      5        U R                   R                  5       nU R                  U5      nU R                  X0R                  5        U R
                  R                  [        S5      5        U R                  X15      n[        U5      nS nU R
                  R                  [        S5      5        U R
                  R                  [        S5      [        S5      [        U5      S9n[        U5       H  u  pUS-  nU R                   U   R"                  n	SU	;   a  U	R%                  5       S	   n	U R
                  R                  S
U['        U	5      4-  5        U R
                  R)                  [        S5      ['        U5      -  5        UR+                  U5        U R-                  U5        M     UR/                  5         U R
                  R1                  SS5      (       d  U R                   R3                  5       n
0 nU
 HB  nX   nU R                  R5                  U[6        5      [6        :w  d  M1  U R                  U   X'   MD     U(       a  U(       a{  U R                  R9                  U5      u  pU(       aW  U(       aP  U R                  R;                  5        Vs/ s H  nUS   U:X  d  M  UPM     nnU(       a  XR                  US	   S	   '   U R                   R=                  5       n0 nU HD  nUU   nU R                  R5                  U[6        5      [6        :w  d  M2  U R                  U   UU'   MF     U(       a"  U(       a  U R                  R?                  U5        U RA                  5         U RC                  5         g s  snf ! U RC                  5         f = f)Ns   scanning source...
s   sorting...
s   converting...
s
   convertingr   re   r      
r   s   %d %s
s   source: %s
s   converts   skiptags)"rX   beforer   	setrevmapr   r   r-   r
   getheadsr   r   r   r  r   rh   r   r   descr   r@   r^   r   r=  r~   
configboolgettagsr+   r   puttagsitemsgetbookmarksputbookmarksr   cleanup)rj   rY   r   r   tnumr   ri   r   rD  tagsctagskvnrev
tagsparentetagsparents	bookmarks
cbookmarkss                       r6   convertconverter.convertE  s   >	KK IIKK!!$((+GGNN1456KK((*EmmE*G8GGNN1_-.g0Aa&CAGGNN1/01ww++- qc!f , H "!q''*//D=??,Q/D zS&,,??@Q/&);<"		! % 77%%j+>>{{**,AAxx||Aw/7:#'88A; 
 '+yy'8'8'?$D
 (,xx~~'7''7!1Q4:;MA'7 $ ' ':>HH[^A%67002IJaL88<<7+w6$(HHQKJqM 
 Z		&&z2!LLN%'$ LLNs3   J!O: 'A*O: O5"O5(A)O: AO: 5O: :Pc                     U R                   R                  5         U R                  R                  5         U R                  R	                  5         g ! U R                  R                  5         f = frv   )r   afterrX   r   r   r   s    r6   rK  converter.cleanup  sG    	 IIOOKK KKs   A A-)
r.   r/   rD   r   r   r   r   rX   r   r   N)r   r   r   r   )rS   r   r   zDict[bytes, List[bytes]])r   r   )r   r   r   r   rl   r   r   r   r  r   r7   r   r=  rX  rK  r   r   rA   r6   r   r     s?    =4-^:8fP
H2 h?BrA   r   c                   [         R                  " U5      n[        R                  qS[        l        UR	                  S5      (       d  UR	                  S5      US'   U(       d6  [
        R                  " U5      S-   nU R                  [        S5      U-  5        [        XUR	                  S5      5      n[        R                  " U5      n [        XUR	                  S5      UR	                  S5      5      u  pgS
n	U	 V
s/ s H  oR	                  U
5      (       d  M  U
PM     nn
[#        U5      S:  a  [$        R&                  " [        S5      5      eU(       a  US   nOUnUS:X  a4  UR)                  5       (       d  [$        R&                  " [        S5      5      eUS:X  a4  UR+                  5       (       d  [$        R&                  " [        S5      5      eUR	                  S5      nU(       a(  [,        R.                  " XU5      nUR1                  S	5        U(       d  UR3                  5       n[5        XXSU5      nUR7                  U5        g ! [         a,    UR                   H  n[        R                   " US	5        M     e f = fs  sn
f )Ns   UTF-8r   s   authorss   -hgs   assuming destination %s
s	   dest_types   source_types   revT)rF   r  rG   r  r   s!   more than one sort mode specifiedr   rG   s1   --sourcesort is not supported by this data sourcer  s0   --closesort is not supported by this data sources   filemap)r   byteskwargsr   r   r+   r   defaultdestr-   r
   r`   r   wrapconvertsinkr[   	Exceptioncreatedshutilrmtreer   r   rK   hasnativeorderhasnativecloser   filemap_sourcesetfilemapmoder   r   rX  )r   srcr   r   r   destcsrccdefaultsortrS   	sortmodesr5   rY   fmapr   s                 r6   rX  rX    s    %D%%M H 88L!!!XXj1\~~c"V+
		!01D89$((<"89E##E*E)TXXn-txx/?
 JI$49a9H4
8}qkk!@ABBA;= )<)<)>)>kkBC
 	
 <(;(;(=(=kkAB
 	
 88JD%%b5T"%%'
"Et4AIIhA  MMDMM$% " 5s   -I
 >JJ
6J rv   )r   r   )r?   r   r   r   )rC   r   rD   zMapping[bytes, bytes]r   r   )r   r   rS   r   rT   r   )r   r   rS   r   rT   r   r   z4Union[hgconvert.mercurial_sink, subversion.svn_sink])NN)r   r   r   zOptional[bytes]r   r   )D
__future__r   r   r   r   rc  typingr   r   r   r   r   r	   mercurial.i18nr
   	mercurialr   r   r   r   r   r   mercurial.utilsr    r   r   r   r   r   r   r   	hgconvertr   r   r   TYPE_CHECKINGr   uimodr   rM   rL   r   
bzr_sourceconvert_cvsconvert_gitdarcs_sourcegnuarch_sourcemercurial_sinkmercurial_sourcemonotone_source	p4_sourcesvn_sink
svn_sourcer   __annotations__r7   r@   rE   rJ   r]   r[   r`   rb   r   r   r   rX  r   rA   r6   <module>r     s   #   	      %    
 ..  	
..^^
oooo!!''))-- **LL	""
u :
F [-([-(Z'
m,|]+_m,/Z'
I}%
  NXJ @@@%*@9@ ! !0$ $<# #*{ {~ AE77,7	7rA   