PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/lib64/python2.7/site-packages/mercurial
Viewing File: /usr/lib64/python2.7/site-packages/mercurial/revset.pyc
� Hq�Qc@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZ ddl m Z ddl Z ddl ZddlZd�Zd�Zd�Zidd�d�fd 6d dd�fd6d dd�d�fd6dd�d�fd6dd�d�d�fd6dd�d�d�fd6dd�d�d�fd!6d"d�fd#6d"d�fd$6ddd�fd%6ddd�fd&6d'dd�fd(6d'dd�fd)6d'dd�fd*6d+dd�fd-6d�d 6d.d�dfd/6d.d�dfd06d�d16Zed%d(d#g�Zd2�Zd3�Zd4�Zd5�Zd6�Zd7�Zd8�Zd9�Zd:�Zd;�Z d<�Z!d=�Z"d>�Z#d?�Z$d@�Z%dA�Z&dB�Z'e(dC�Z)dD�Z*dE�Z+dF�Z,dG�Z-dH�Z.dI�Z/dJ�Z0dK�Z1dL�Z2dM�Z3dN�Z4dO�Z5dP�Z6dQ�Z7dR�Z8dS�Z9dT�Z:dU�Z;e(dV�Z<dW�Z=dX�Z>dY�Z?dZ�Z@d[�ZAd\�ZBd]�ZCd^�ZDd_�ZEe(d`�ZFda�ZGdb�ZHdc�ZIdd�ZJde�ZKdf�ZLdg�ZMdh�ZNdi�ZOdj�ZPdk�ZQdl�ZRdm�ZSdn�ZTdo�ZUdp�ZVdq�ZWdr�ZXds�Z dt�ZYdu�ZZdv�Z[dw�Z\dx�Z]dy�Z^dz�Z_d{�Z`d|�Zad}�Zbd~�Zcd�Zdd��Zed��Zfd��Zgd��Zhd��Zid��Zjd��Zkd��Zld��Zmd��Znd��ZoiAe&d�6eId�6e'd 6e*d�6e+d�6e-d�6e.d�6e/d�6e0d�6e1d�6eUd�6e2d�6e3d�6e6d�6e7d�6e8d�6e9d�6e:d�6e;d�6e=d�6e>d�6e?d�6e@d�6eAd�6eBd�6eCd�6eLd�6eDd�6eEd�6eGd�6eHd�6eJd�6eMd�6eNd�6eOd�6eXd�6ePd�6eRd�6eQd�6eKd�6eSd�6eTd�6eVd�6eWd�6e d�6eYd�6eZd�6e[d�6e\d�6e]d�6e_d�6e`d�6ead�6ebd�6ecd�6eed�6efd�6ehd�6egd�6edd�6ekd�6eld�6end�6emd�6eod�6Zpi ed6e d6ed06ed/6e!d%6e"d(6e#d#6e$d,6e%d 6e,d 6e^d6e[d6Zqd��Zrd d�fZsd��Ztdd��Zud�evfd���YZwd��Zxd��Zyd��Zzd��Z{ejee�j|Z|d��Zd��Z}d��Z~epj�Z�dS(�i����N(t_ccs�|r dpd}|j}tj|�}ttjg�}x\|r�xO|j|j��| D]4}||kr_|j |�|j |�|Vq_q_Wq?WdS(s2Like revlog.ancestors(), but supports followfirst.iN( tNonet changelogtutiltdequetsettnodetnullrevt parentrevstpoplefttappendtadd(trepotrevst followfirsttcuttcltvisittseentparent((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _revancestorss      c cs�|r dpd}|j}t|�}tj}||krVx|D] }|VqCWdSt|�}xg|j|d�D]R}xI|j|�| D]4} | |kr�| |kr�|j|�|VPq�q�WqvWdS(s3Like revlog.descendants() but supports followfirst.iN( RRtminRRRR RR ( R R RRRtfirstRtiRtx((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_revdescendantss        c Cs$|s gS|jj}|}t�}i}t|�}t|�}x�|r�|j�}||kru|j|�n||�} | ||<x6| D].} | |kr�| |kr�|j| �q�q�WqGW|s�gSxEt|�D]7}x.||D]"} | |kr�|j|�q�q�Wq�Wt|�S(sNReturn all paths between roots and heads, inclusive of both endpoint sets.(RRRRtpopR R tsorted( R trootstheadsRRt reachableRtminroottrevtparentsR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _revsbetween3s0           itgroupit)tfunct(itancestort~Rt parentpostt^itnegateitminust-it dagrangepretdagranget dagrangeposts::s..itrangepretranget rangepostt:i tnott!tandt&itort|t+itlistt,itsymboltstringtendc cs dt|�}}x�||kr�||}|j�r;n�|dkry|||d!dkrydd|fV|d7}nr|dkr�|||d!dkr�dd|fV|d7}n4|dkr�|d|fVn|d ks|d kr�|||d!dkr�|d kr/|d7}||}d �}n d�}|d7}|}x�||kr�||}|dkr}|d7}qKn||kr�d||||!�|fVPn|d7}qKWtjtd�|��n|j�s�|dks�t|�dkr�|}|d7}x�||kr�||}|j�pK|dkpKt|�dksRPn|dkr�||ddkr�|d8}Pn|d7}qW|||!}|tkr�|d|fVnd||fV|d8}ntjtd�|��|d7}qWdd|fVdS(s� Parse a revset statement into a stream of tokens Check that @ is a valid unquoted token character (issue3686): >>> list(tokenize("@::")) [('symbol', '@', 0), ('::', None, 1), ('end', None, 3)] iR4is::it.s..s ():,-|&+!~^s"'trsr'sr"cSs|S(N((R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt<lambda>�scSs |jd�S(Ns string-escape(tdecode(R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC�ss\R?sunterminated strings._@is._/@R>s syntax errorR@N(sr'sr"( tlentisspaceRterrort ParseErrorRtisalnumtordtkeywords(tprogramtpostltcRDtstdtsym((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyttokenizeksf   # #            *  *     cCsA|r.|ddks&|ddkr.|dStj|��dS(NiR?R>i(RGRH(Rterr((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt getstring�s&cCs:|s gS|ddkr3t|d�|dgS|gS(NiR<ii(tgetlist(R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRV�s cCsRt|�}t|�|ks<|dkrNt|�|krNtj|��n|S(Ni(RVRERGRH(RRtmaxRTRN((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytgetargs�s 0cCs:|stjtd���nt|d|||d�S(Nsmissing argumentii(RGRHRtmethods(R tsubsetR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytgetset�scCsa||j�}xJdD]B}||kry|||j�SWqYtjk rUqYXqqWdS(Ntsourcettransplant_sourcet rebase_source(ssourceR]R^(textraR RGtRepoLookupErrorR(R RBR_tlabel((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _getrevsource�s   cCsj||j�}|dkr;t|�t|�kr;dgSt|�t|�ks_||krf|gSgS(Ni����(R RE(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt stringset�s $$cCs8|tkr(tjtd�|��nt|||�S(Nscan't use %s here(tsymbolsRGRHRRc(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt symbolset�s c Cs�|j}t|||�}t|||�}| s;| r?gS|d|d}}||krvt||d�}nt||dd�}t|�}g|D]}||kr�|^q�S(Nii����i(RR[R2R( R RZRtyRtmtnRBRP((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrangeset�s   cCset|�}t|t|||�t|||��}t|�}g|D]}||krI|^qIS(N(R<R"R[R(R RZRRfRBtxsRP((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR/�s * cCst|t|||�|�S(N(R[(R RZRRf((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytandset�scCsWt|||�}t|�}t|g|D]}||kr+|^q+|�}||S(N(R[R(R RZRRftxlRPRBtyl((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytorset�s 1cCs;tt|||��}g|D]}||kr|^qS(N(RR[(R RZRRPRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytnotset�scCstjtd���dS(Ns can't use a list in this context(RGRHR(R RZtatb((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytlistsetscCsY|ddkr8|dtkr8t|d|||�Stjtd�|d��dS(NiR>isnot a function: %s(RdRGRHR(R RZRpRq((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR%s cCs(t|td��}t|||d�S(sG``adds(pattern)`` Changesets that add a file matching pattern. sadds requires a patterni(RURt checkstatus(R RZRtpat((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytadds sc s�t|�}t���d}�jj}�jj}�jj}xh��fd�|D�D]M}xD|D]<} |dkr�| }qi||||�|| ���}qiWq\W|dk r�||kr�|gSgS(s�``ancestor(*changeset)`` Greatest common ancestor of the changesets. Accepts 0 or more changesets. Will return empty list when passed no args. Greatest common ancestor of a single changeset is that changeset. c3s!|]}t��|�VqdS(N(R[(t.0R(R trl(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr>&sN(RVR<RRR R'R( R RZRRNtancR R'RR RB((R Rws6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR's         )cCsgt|t|�|�}|s"gStt|||��t|�B}g|D]}||krK|^qKS(N(R[R<RR(R RZRRtargsRPRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _ancestors1s "cCst|||�S(sP``ancestors(set)`` Changesets that are ancestors of a changeset in set. (Rz(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt ancestors8scCst|||dt�S(NR(RztTrue(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_firstancestors>scCs�yt|d�}Wn,ttfk rBtjtd���nXt�}|j}xQt|||�D]=}x't |�D]}|j |�d}q{W|j |�qhWg|D]}||kr�|^q�S(sg``set~n`` Changesets that are the Nth ancestor (first parents only) of a changeset in set. is~ expects a numberi( tintt TypeErrort ValueErrorRGRHRRRR[R2RR (R RZRRhtpsRRBR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt ancestorspecCs  cCsitjt|td���}t|�\}}}g|D]+}|tj||j���r:|^q:S(s7``author(string)`` Alias for ``user(string)``. sauthor requires a string(tencodingtlowerRURt_substringmatchertuser(R RZRRhtkindtpatterntmatcherRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytauthorTscCsVt|td��j�}ttj||��}g|D]}||kr:|^q:S(s ``bisect(string)`` Changesets marked in the specified bisect status: - ``good``, ``bad``, ``skip``: csets explicitly marked as good/bad/skip - ``goods``, ``bads`` : csets topologically good/bad - ``range`` : csets taking part in the bisection - ``pruned`` : csets that are goods, bads or skipped - ``untested`` : csets whose fate is yet unknown - ``ignored`` : csets ignored due to DAG topology - ``current`` : the cset currently being bisected sbisect requires a string(RURR�Rthbisecttget(R RZRtstatuststateRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytbisect]s cCst|||�S(N(R�(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytbisectedpscCs�t|ddtd��}|r�t|dtd��}t|�\}}}|dkr�|jj|d�}|s�tjtd�|��n||j �}g|D]} | |kr�| ^q�St �} x9|jj �D](\} }|| �r�| j |�q�q�W| s,tjtd�|��nt �} x%| D]}| j ||j ��q<Wg|D]} | | krd| ^qdSnt g|jj �D]} || j �^q��} g|D]} | | kr�| ^q�S( s�``bookmark([name])`` The named bookmark or all bookmarks. If `name` starts with `re:`, the remainder of the name is treated as a regular expression. To match a bookmark that actually starts with `re:`, use the prefix `literal:`. iis"bookmark takes one or no argumentss)the argument to bookmark must be a stringtliteralsbookmark '%s' does not exists"no bookmarks exist that match '%s'N(RXRRUt_stringmatchert _bookmarksR�RRtAbortR Rt iteritemsR tvalues(R RZRRytbmR�R�R�tbmrevRBt matchrevstnametbmrevstbms((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytbookmarkss2   #     &,c CsHyt|d�}Wntjk r)n�Xt|�\}}}|dkr�||j�kr�g|D]"}|||j��rd|^qdSn-g|D]"}|||j��r�|^q�St|t|�|�}t�}x%|D]}|j ||j��q�Wt|�}g|D].}||ks>||j�|kr|^qS(s4``branch(string or set)`` All changesets belonging to the given branch or the branches of the given changesets. If `string` starts with `re:`, the remainder of the name is treated as a regular expression. To match a branch that actually starts with `re:`, use the prefix `literal:`. tR�( RURGRHR�t branchmaptbranchR[R<RR ( R RZRRqR�R�R�RBRP((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s  0-   cCsNt|ddtd��tj|d�}g|D]}||kr2|^q2S(s�``bumped()`` Mutable changesets marked as successors of public changesets. Only non-public and non-obsolete changesets can be `bumped`. isbumped takes no argumentstbumped(RXRtobsmodtgetrevs(R RZRR�RB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��scCs\y|jj}Wn&tk r8tjtd���nXg|D]}||kr@|^q@S(sZ``bundle()`` Changesets in the bundle. Bundle must be specified by the -R option.s$no bundle provided - specify with -R(Rt bundlerevstAttributeErrorRR�R(R RZRR�RB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytbundle�s  c Cs�d}g}tj|�dk}d}xY|D]Q}||} | sK|r�tj|j|j�|gd| �}|j� r�t|j��dkr�|j�d}q�n|dk r�|| j�kr�q.q�n*x'| j�D]} || �r�Pq�q�Wq.|j | j �j �| j ��|} |dk rQ|| kr|j |�qq.x+| D]#} || �rX|j |�PqXqXWq.W|S(NRtctxii( RtmatchmodtpatkindtmatchtroottgetcwdtanypatsREtfilesR�tp1RR ( R RZRttfieldRgRPthassettfnameRBROtfR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs�s4   '%   (      cCs�t�}|s|S|jj}t|�}xS|D]K}||krJq2nx0||�D]"}||krW|j|�qWqWWq2W|S(N(RRRRR (R tnarrowt parentsettcstprtminrevRBtp((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _children�s      cCsStt|t|�|��}t|||�}g|D]}||kr7|^q7S(sA``children(set)`` Child changesets of changesets in set. (RR[R<R�(R RZRRPR�RB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytchildren�scCs@t|ddtd��g|D]}||j�r |^q S(s*``closed()`` Changeset is closed. isclosed takes no arguments(RXRt closesbranch(R RZRRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytclosedsc Cs�t|td��}d}g}tj|�sdx�|D]&}|||kr7|j|�q7q7Wn�x�|D]�}||}| s�tj|�dkr�tj|j|j�|gd|�}nx1|j �D]#}||�r�|j|�Pq�q�WqkW|S(s�``contains(pattern)`` Revision contains a file matching pattern. See :hg:`help patterns` for information about file patterns. scontains requires a patternRR�N( RURRR�R�R R�R�R�tmanifest( R RZRRtRgRPRBROR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytcontains s    *   csxd�t|ddtd��}|rCt|dtd���n��fd�}g|D]}||�r\|^q\S(s�``converted([id])`` Changesets converted from the given identifier in the old repository if present, or all converted changesets if no identifier is specified. iis#converted takes one or no argumentssconverted requires a revisioncsA�|j�jdd�}|dk o@�dkp@|j��S(Ntconvert_revision(R_R�Rt startswith(RBR\(R R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _matchvalue4sN(RRXRRU(R RZRRNR�RB((R R s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt converted$s cCsUt|td��}tj|�}g|D]&}|||j�d�r+|^q+S(sQ``date(interval)`` Changesets within the interval, see :hg:`help dates`. sdate requires a stringi(RURRt matchdatetdate(R RZRtdstdmRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�:scCsntjt|td���}g}xC|D];}||}|tj|j��kr+|j|�q+q+W|S(sZ``desc(string)`` Search commit message for string. The match is case-insensitive. sdesc requires a string(R�R�RURt descriptionR (R RZRR�RNRBRO((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytdescCs  cCsgt|t|�|�}|s"gStt|||��t|�B}g|D]}||krK|^qKS(N(R[R<RR(R RZRRRyRPRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _descendantsPs "cCst|||�S(sT``descendants(set)`` Changesets which are descendants of changesets in set. (R�(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt descendantsWscCst|||dt�S(NR(R�R|(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_firstdescendants]scCs|dk r-tt|t|�|��}ntt|t|�|��}t�}x�|D]�}t||�}d}xs|dk r�|dkr�t�}n|j|�||ks�||kr�|j|�Pn|}t||�}qyWq[Wg|D]}||kr�|^q�S(s�``destination([set])`` Changesets that were created by a graft, transplant or rebase operation, with the given revisions specified as the source. Omitting the optional set is the same as passing all(). N(RRR[R<tgetallRbR tupdate(R RZRRytdestsRBtsrctlineage((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt destinationbs" !      cCsNt|ddtd��tj|d�}g|D]}||kr2|^q2S(sd``divergent()`` Final successors of changesets with an alternative set of final successors. isdivergent takes no argumentst divergent(RXRR�R�(R RZRR�RB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��scCsTt|ddtd��|j}g|D]'}|j||�tjkr)|^q)S(s)``draft()`` Changeset in draft phase.isdraft takes no arguments(RXRt _phasecachetphasetphasestdraft(R RZRtpcRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s cCsNt|ddtd��tj|d�}g|D]}||kr2|^q2S(sJ``extinct()`` Obsolete changesets with obsolete descendants only. isextinct takes no argumentstextinct(RXRR�R�(R RZRtextinctsRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��scs�t|ddtd��}t|dtd���d�t|�dkr}t|dtd���t��\}��n����fd�}g|D]}||�r�|^q�S( s3``extra(label, [value])`` Changesets with the given label in the extra metadata, with the given optional value. If `value` starts with `re:`, the remainder of the value is treated as a regular expression. To match a value that actually starts with `re:`, use the prefix `literal:`. iis.extra takes at least 1 and at most 2 argumentsis(first argument to extra must be a strings)second argument to extra must be a stringcs6�|j�}�|ko5�dkp5�|��S(N(R_R(RBR_(RaR�R tvalue(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��sN(RXRRURRER�(R RZRRNR�R�RB((RaR�R R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR_�s c Cs+t|td��}tj|j|j�|gddd|d�}t�}tj|�s�x�|j �D]<}|j |�}x$|D]}|j |j |��q�WqkWnZxW|dD]K}||�r�|j |�}x'|D]}|j |j |��q�Wq�q�Wg|D]} | |kr| ^qS(s``filelog(pattern)`` Changesets connected to the specified filelog. For performance reasons, ``filelog()`` does not show every changeset that affects the requested file(s). See :hg:`help log` for details. For a slower, more accurate result, use ``file()``. sfilelog requires a patterntdefaulttrelpathR�N( RURR�R�R�R�RRR�R�tfileR tlinkrev( R RZRRtRgRPR�tfltfrRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytfilelog�s $   !  !cCst|||�S(s2``first(set, [n])`` An alias for limit(). (tlimit(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�sc Cs�t|ddtd�|�}|d}|r�t|dtd�|�}||kr�||}td�|jd|�D��}|j|j��q�gSn4tt||j�g|��t|j�g�B}g|D]} | |kr�| ^q�S(Niis#%s takes no arguments or a filenameRAs%s expected a filenamecss|]}|j�VqdS(N(R (RvR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr>�sR( RXRRURR{R R�RR ( R RZRR�RRNROtcxRPRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_follow�s   "4cCst|||d�S(s�``follow([file])`` An alias for ``::.`` (ancestors of the working copy's first parent). If a filename is specified, the history of the given file is followed, including copies. tfollow(R�(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��scCst|||ddt�S(Nt _followfirstR(R�R|(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��scCst|ddtd��|S(s9``all()`` All changesets, the same as ``0:tip``. isall takes no arguments(RXR(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�scCs�y"tjt|td���}Wn/tjk rS}tjtd�|��nXg}xe|D]]}||}xJ|j�|j�|j�gD]&}|j |�r�|j |�Pq�q�WqaW|S(s�``grep(regex)`` Like ``keyword(string)`` but accepts a regex. Use ``grep(r'...')`` to ensure special escape characters are handled correctly. Unlike ``keyword(string)``, the match is case-sensitive. sgrep requires a stringsinvalid match pattern: %s( tretcompileRURRGRHR�R�R�tsearchR (R RZRtgrteRNRBRO((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytgrep s"  )  cCset|ddtd��}ggg}}}t}d\}} x<|D]4} t| td��} | d | d} } | dkr�|j| �n�| dkr�|j| �n�| dkr�|j| �n�| d kr|dk r�tjtd ���n| }nR| d kr>| dk r5tjtd ���n| } ntjtd �| ��| rHtj | �dkrHt }qHqHW| s�d} nd}g} x�|D]�}||}| s�|r)|dkr)|}|dk r�||p�d}ntj |j |j �|d|d|d|d| �}nx1|j�D]#}||�r6| j|�Pq6q6Wq�W| S(Nii����s*_matchfiles requires at least one arguments%_matchfiles requires string argumentsisp:si:sx:sr:s)_matchfiles expected at most one revisionsd:s-_matchfiles expected at most one default modesinvalid _matchfiles prefix: %sRtglobtincludetexcludeR�R�(NN(RXRtFalseRRUR RGRHR�R�R|R�R�R�R�(R RZRRNtpatstinctexcR�R R�targRPtprefixR�RgRBROR�R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _matchfiles!sR                !   cCs/t|td��}t||dd|f�S(s�``file(pattern)`` Changesets affecting files matched by pattern. For a faster but less accurate result, consider using ``filelog()`` instead. sfile requires a patternR?sp:(RURR�(R RZRRt((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pythasfile`scs�t|ddtd��t�}x=�j�j�D])\}}|j�fd�|D��q5Wg|D]}||kri|^qiS(s5``head()`` Changeset is a named branch head. ishead takes no argumentsc3s|]}�|j�VqdS(N(R (Rvth(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr>ss(RXRRR�R�R�(R RZRthsRqtlsRB((R s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytheadks  !cCsMt|||�}tt|||��}g|D]}||kr1|^q1S(s?``heads(set)`` Members of set with no children in set. (R[RR!(R RZRRPR�RB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRvscCsNt|ddtd��tj|d�}g|D]}||kr2|^q2S(s(``hidden()`` Hidden changesets. ishidden takes no argumentstvisible(RXRtrepoviewt filterrevs(R RZRt hiddenrevsRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pythidden~scCs�tjt|td���}g}xh|D]`}||}dj|j�|j�|j�g�}|tj|�kr+|j|�q+q+W|S(s�``keyword(string)`` Search commit message, user name, and names of changed files for string. The match is case-insensitive. skeyword requires a stringt ( R�R�RURtjoinR�R�R�R (R RZRtkwRNRBROtt((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytkeyword�s  +cCs�t|ddtd��}y>d}t|�dkrXtt|dtd���}nWn,ttfk r�tjtd���nXt |�}t |t |�|d�| }g|D]}||kr�|^q�S(sE``limit(set, [n])`` First n members of set, defaulting to 1. iis#limit requires one or two argumentsslimit requires a numberslimit expects a numberi( RXRRER~RURR�RGRHRR[R<(R RZRRNtlimtsstosRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s&  cCs�t|ddtd��}y>d}t|�dkrXtt|dtd���}nWn,ttfk r�tjtd���nXt |�}t |t |�|d�| }g|D]}||kr�|^q�S(sC``last(set, [n])`` Last n members of set, defaulting to 1. iis"last requires one or two argumentsslast requires a numberslast expects a numberi( RXRRER~RURR�RGRHRR[R<(R RZRRNRRR RB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytlast�s& !cCsDt|t|�|�}|r@t|�}||kr@|gSngS(sD``max(set)`` Changeset with highest revision number in set. (R[R<RW(R RZRR Rg((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmaxrev�s    cCsRt|ddtd��|j}g|D]%}|j|�ddkr)|^q)S(s4``merge()`` Changeset is a merge changeset. ismerge takes no argumentsii����(RXRRR(R RZRRRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmerge�s cCs�t|ddtd��|j}|s,gSt|�}dgt|�|}x[|jd|d�D]C}x:|j|�D])}||kr||||cd7<q|q|WqfWg|D] }|||dkr�|^q�S(s?``branchpoint()`` Changesets with more than one child. isbranchpoint takes no argumentststarti(RXRRRRER R(R RZRRtbaserevt parentscountRBR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt branchpoint�s   cCsDt|t|�|�}|r@t|�}||kr@|gSngS(sC``min(set)`` Changeset with lowest revision number in set. (R[R<R(R RZRR Rg((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s    cCs(t|td��}t|||d�S(sM``modifies(pattern)`` Changesets modifying files matched by pattern. smodifies requires a patterni(RURRs(R RZRRt((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmodifies�scCs�t|ddtd��}t|dtd��}t|�dkrY||j�}n9d}|jj|�}|dk r�|jj|�}ng|D]}||kr�|^q�S(sZ``id(string)`` Revision non-ambiguously specified by the given hex string prefix. isid requires one argumentisid requires a stringi(N(RXRRURER RRt _partialmatch(R RZRRNRhtrntpmRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytnode_�s cCsNt|ddtd��tj|d�}g|D]}||kr2|^q2S(s:``obsolete()`` Mutable changeset with a newer version.isobsolete takes no argumentstobsolete(RXRR�R�(R RZRt obsoletesRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRscs�|dk r-tt�t��|��}ntt�t��|��}�fd�}tg|D]}||�^qd�}g|D]}||kr�|^q�S(s``origin([set])`` Changesets that were specified as a source for the grafts, transplants or rebases that created the given revisions. Omitting the optional set is the same as passing all(). If a changeset created by these operations is itself specified as a source for one of these operations, only the source changeset for the first operation is selected. csUt�|�}|dkrdSx/trPt�|�}|dkrG|S|}q"WdS(N(RbRR|(R R�tprev(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _firstsrcs   N(RRR[R<R�(R RZRRyRRBto((R s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytorigin s  ! %c Csiddl}t|ddtd��}|rFt|dtd��pId}|jj|p^d|pgd �}|j|�\}}|j|||g�\}}|r�g|D]} |j| �^q�}n|j |i|�} |jj �t j || d |�} |jj �|j} tg| jD]} | j| �^q(�}g|D]} | |krM| ^qMS( s}``outgoing([path])`` Changesets not found in the specified destination repository, or the default push location. i����Niis"outgoing takes one or no argumentss#outgoing requires a repository pathR�s default-pushR�t onlyheads(thgRXRRUtuit expandpathtparseurlt addbranchrevstlookuptpeert pushbuffert discoverytfindcommonoutgoingt popbufferRRtmissingR (R RZRRRNtdesttbranchesR tcheckoutR tothertoutgoingRRBR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR-(s %!%   +cCs�|dkrE||j�j�}g|D]}||kr)|^q)St�}|j}x:t|t|�|�D] }|j|j|�d�qpWg|D]}||kr�|^q�S(sS``p1([set])`` First parent of changesets in set, or the working directory. iN( RR�R RRR[R<R R(R RZRR�RBR�R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�?s #  cCs�|dkrk||j�}y7|dj�}g|D]}||kr6|^q6SWqktk rggSXnt�}|j}x:t|t|�|�D] }|j|j |�d�q�Wg|D]}||kr�|^q�S(sT``p2([set])`` Second parent of changesets in set, or the working directory. iN( RR!R t IndexErrorRRR[R<R R(R RZRR�R�RBR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytp2Ms '   cCs�|dkrOtd�||j�D��}g|D]}||kr3|^q3St�}|j}x6t|t|�|�D]}|j|j|��qzWg|D]}||kr�|^q�S(sg``parents([set])`` The set of all parents for all changesets in set, or the working directory. css|]}|j�VqdS(N(R (RvR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr>dsN( RttupleR!RRR[R<R�R(R RZRR�RBR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR!_s  #  cCs3y)t|d�}|dkr(t�nWn,ttfk rWtjtd���nXt�}|j}x�t|||�D]�}|dkr�|j |�q}|dkr�|j |j |�d�q}|dkr}|j |�}t |�dkr |j |d�q q}q}Wg|D]}||kr|^qS(s�``set^0`` The set. ``set^1`` (or ``set^``), ``set^2`` First or second parent, respectively, of all changesets in set. iiis^ expects a number 0, 1, or 2(iii( R~R�RRGRHRRRR[R RRE(R RZRRhR�RRBR!((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt parentspecms$       cCs0yt|||�SWntjk r+gSXdS(s&``present(set)`` An empty set, if any revision in set isn't found; otherwise, all revisions in set. If any of specified revisions is not present in the local repository, the query is normally aborted. But this predicate allows the query to continue even in such cases. N(R[RGR`(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytpresent�s cCsTt|ddtd��|j}g|D]'}|j||�tjkr)|^q)S(s+``public()`` Changeset in public phase.ispublic takes no arguments(RXRR�R�R�tpublic(R RZRR�RB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR3�s cCs~ddl}t|ddtd��}d}t|�dkr[t|dtd��}n|dkrz|dj�}nd}t|�d kr�t|d td ��}n|jj|p�d �}|j|�\}}|j |||g�\}} |r$g|D]} |j | �^q}n|j |i|�} | j |�} | |krz|| j �} | |krz| gSngS( s�``remote([id [,path]])`` Local revision that corresponds to the given identifier in a remote repository, if present. Here, the '.' identifier is a synonym for the current local branch. i����Niis%remote takes one, two or no argumentsRAsremote requires a string idR�is!remote requires a repository pathR�( RRXRRERUR�RRR R!R"R#R (R RZRRRNtqR)R*R R+R R,RhRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytremote�s,  %   cCs(t|td��}t|||d�S(sM``removes(pattern)`` Changesets which remove files matching pattern. sremoves requires a patterni(RURRs(R RZRRt((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytremoves�scCs�t|ddtd��}y#tt|dtd���}Wn,ttfk rltjtd���nXg|D]}||krt|^qtS(sD``rev(number)`` Revision with the given numeric identifier. isrev requires one argumentisrev requires a numbersrev expects a number(RXRR~RURR�RGRH(R RZRRNRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR �s #c s4t|ddtd��}t��j|d�}dg}t|�dkrqt|dtd��j�}ng}xq|D]i}|dkr�|ddd g7}q~|d kr�|d d g7}q~|d kr�d}n|j|�q~Wt|�}d |krd|kr|j d �ndddd dd d ddd g ��fd�}t |�}|j d|�g�i �fd�d6�fd�d6�fd�d 6�fd�d6�fd�d 6�fd�d6�fd�d6�fd�d6�fd�d 6�fd�d 6} xU|D]M} | j | d �} | d kratjtd�| ��n�j| �q!W�fd�} t�} x�|D]|}| |�}xg|D]_}t}x:t��D],\}}||||�kr�t}Pq�q�W|r�| j|�q�q�Wq�Wg|D]}|| kr|^qS(!s``matching(revision [, field])`` Changesets in which a given set of fields match the set of fields in the selected revision or set. To match more than one field pass the list of fields to match separated by spaces (e.g. ``author description``). Valid fields are most regular revision fields and some special fields. Regular revision fields are ``description``, ``author``, ``branch``, ``date``, ``files``, ``phase``, ``parents``, ``substate``, ``user`` and ``diff``. Note that ``author`` and ``user`` are synonyms. ``diff`` refers to the contents of the revision. Two revisions matching their ``diff`` will also match their ``files``. Special fields are ``summary`` and ``metadata``: ``summary`` matches the first line of the description. ``metadata`` is equivalent to matching ``description user date`` (i.e. it matches the main metadata fields). ``metadata`` is the default field which is used when no fields are specified. You can match more than one field at a time. iismatching takes 1 or 2 argumentsitmetadatas1matching requires a string as its second argumentR�R�R�tdiffR�R�tsummaryR�R!R�tsubstatecs0y�j|�SWntk r+t��SXdS(N(tindexR�RE(R�(t fieldorder(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt fieldkeyfuncs tkeycs�|j�S(N(R�(RB(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC!scs�|j�S(N(R�(RB(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC"scs�|j�S(N(R�(RB(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC#scs�|j�S(N(R�(RB(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC$scs�|j�S(N(R�(RB(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC%scs�|j�S(N(R!(RB(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC&scs�|j�S(N(R�(RB(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC'scs �|jS(N(R:(RB(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC(scs�|j�j�dS(Ni(R�t splitlines(RB(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC)scst�|jdt��S(Ntgit(R<R8R|(RB(R (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC*ss,unexpected field name passed to matching: %scsg�D]}||�^qS(N((RBR�(t getfieldfuncs(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC6sN(RXRR[RRERUtsplitR RtdiscardR<tsortR�RRGRHR|t enumerateR�R (R RZRRNR t fieldlisttfieldsR�R=t_funcstinfotgetfieldtgetinfotmatchesR ttargetRBR�RhR�((R<RAR s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmatching�sl               cCs>t|||�}t|t�s0t|�}n|j�|S(s/``reverse(set)`` Reverse order of set. (R[t isinstanceR<treverse(R RZRRN((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRPEs  cCsutt||j|��}g|D]}||kr"|^q"}t|||�}g|D]}||krY|^qYS(sJ``roots(set)`` Changesets in set with no parent changeset in set. (RR[RR�(R RZRRPRBR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyROs%cCsTt|ddtd��|j}g|D]'}|j||�tjkr)|^q)S(s+``secret()`` Changeset in secret phase.issecret takes no arguments(RXRR�R�R�tsecret(R RZRR�RB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRQXs c Csnt|ddtd��}d}t|�dkrOt|dtd��}n|d}|j�}g}d�}x�t|||�D]�}||}g} x�|D]�} | dkr�| j|�q�| dkr�| j| �q�| d kr| j|j��q�| d kr-| j||j���q�| d krO| j|j��q�| d krw| j||j���q�| d kr�| j|j ��q�| dkr�| j||j ���q�| dkr�| j|j �d�q�| dkr| j|j �d �q�t j td�| ��q�W| j|�|j| �q�W|j �g|D]} | d^qZS(s�``sort(set[, [-]key...])`` Sort set by keys. The default sort order is ascending, specify a key as ``-key`` to sort in descending order. The keys can be: - ``rev`` for the revision number, - ``branch`` for the branch name, - ``desc`` for the commit message (description), - ``user`` for user name (``author`` can be used as an alias), - ``date`` for the commit date iis"sort requires one or two argumentsR ssort spec must be a stringicSsdjd�|D��S(NR�css%|]}tdt|��VqdS(i�N(tchrRJ(RvRO((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr>xs(R(RP((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytinvertwss-revR�s-branchR�s-descs user authors -user -authorR�s-datesunknown sort key %ri����(RXRRERURBR[R R�R�R�R�RGRHRD( R RZRRNtkeysRPRSRBROR�tk((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRD`sJ                 cCs�|jd�rn|d}ytj|�}Wn/tjk r]}tjtd�|��nXd||jfS|jd�r�|d}nd||jfS(s� accepts a string, possibly starting with 're:' or 'literal:' prefix. returns the matcher name, pattern, and matcher function. missing or unknown prefixes are treated as literal matches. helper for tests: >>> def test(pattern, *tests): ... kind, pattern, matcher = _stringmatcher(pattern) ... return (kind, pattern, [bool(matcher(t)) for t in tests]) exact matching (no prefix): >>> test('abcdefg', 'abc', 'def', 'abcdefg') ('literal', 'abcdefg', [False, False, True]) regex matching ('re:' prefix) >>> test('re:a.+b', 'nomatch', 'fooadef', 'fooadefbar') ('re', 'a.+b', [False, False, True]) force exact matches ('literal:' prefix) >>> test('literal:re:foobar', 'foobar', 're:foobar') ('literal', 're:foobar', [False, True]) unknown prefixes are ignored and treated as literals >>> test('foo:bar', 'foo', 'bar', 'foo:bar') ('literal', 'foo:bar', [False, False, True]) sre:isinvalid regular expression: %sR�sliteral:iR�(R�R�R�RGRHRR�t__eq__(R�tregexR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s  cs@t��\}�}|dkr3�fd�}n|�|fS(NR�cs �|kS(N((RP(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC�s(R�(R�R�R�((R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s c Csft|ddtd��}|j}|rt|dtd��}t|�\}}}|dkr�|jjj|d�}|dkr�t j td�|��nt ||j �g�} qCt g|j �D]'\} } || �r�|j | �^q��} n@t g|j �D]'\} } | dkr|j | �^q�} g|D]} | | krJ| ^qJS( s```tag([name])`` The specified tag by name, or all tagged revisions if no name is given. iistag takes one or no argumentss$the argument to tag must be a stringR�stag '%s' does not existttipN(RXRRRUR�t _tagscachettagsR�RRR�RR ttagslist( R RZRRyRR�R�R�ttnRPRRhRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyttag�s    C@cCst|||�S(N(R](R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyttagged�scCsNt|ddtd��tj|d�}g|D]}||kr2|^q2S(sH``unstable()`` Non-obsolete changesets with obsolete ancestors. isunstable takes no argumentstunstable(RXRR�R�(R RZRt unstablesRB((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR_�scCst|||�S(s``user(string)`` User name contains string. The match is case-insensitive. If `string` starts with `re:`, the remainder of the string is treated as a regular expression. To match a user that actually contains `re:`, use the prefix `literal:`. (R�(R RZR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��scCs�t|d�}|sgSt|t�s7t|�}ng|jd�D]}||j�^qG}g|D]}||krj|^qjS(Nsinternal errort(RURORRBR (R RZRRPRBR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_list�s,RutallR{R}R�R�R�R�R�RR�R�R�R�R�R�R�R�R�R�R�R�R�R�R_R�R�RR�R�R�R�RRtidRR R�R�RWR RRRRR-R�R/R!R2R3R5R6R RPRRDRQRNR]R^R�R_Rbc Cs�|dkrd|fSd}|r+d}n|d}|dkretd|dd|dff|�S|dkr�td d(|df|�S|d kr�td d)|df|�S|dkr�tdd*|df|�S|dkr�td|dd+f|�S|dkr3tddt|dtd��f|�S|dkrI||fS|dkr�t|dt�\}}t|dt�\}}t||�}||kr�||||ffS||||ffS|dkr>t|dt�\}}t|dt�\}}||kr"||}}nt||�|||ffS|dkrvt|d| �} | d|| dffS|dkr�t|d|�} | d|| dffS|dkr�t|d|�S|dkr�|dkrYd|df} |dddkr$td| |ddf|�S|dddkrYtd| |ddf|�Snt|d|�\}}t|d|�\}}|||||ffS|d kr�t|dtd��} t|d|�\}}| dkr�d }ns| d!kr d"}n^| d#krd$}nI| d%kr8d|}n0| d&krMd}n| d'krbd }nd}||||d|ffSd|fS(,Niig�?R,R7R5iR.R%R>R{R0R�R1R2R?t0R3RXR+R-scan't negate thatsstring symbol negateR9R)R#s'dagrange range list parent ancestorspecRR/s not a symbols>author branch closed date desc file grep keyword outgoing useri smodifies adds removesiR�idR'sreverse limit firstRD(ssymbols ancestors(ssymbols descendants(sstringRe(sstringstip(RtoptimizeRURR|RR�RW( Rtsmallt smallbonustoptwattatwbttbtwRtpostR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRfQs�     $     $           !             t _aliasargcCsFt|�dkrB|d tkrB|dddkrB|ddSdS(scIf tree matches ('func', ('symbol', '_aliasarg'), ('string', X)) return X, None otherwise. iiiR?iN(RERpR(ttree((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _getaliasarg�s" cCs{t|t�rwt|�}|dk rV| s:||krVtjtd�d��nx|D]}t||�q]WndS(s�Check tree contains no _aliasarg construct or only ones which value is in known. Used to avoid alias placeholders injection. snot a function: %sRpN(ROR0RrRRGRHRt_checkaliasarg(RqtknownR�R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs�s   t revsetaliascBs&eZejd�ZdZd�ZRS(s^([^(]+)\(([^)]+)\)$cCs|jj|�}|r�|jd�|_dd|jd�ff|_g|jd�jd�D]}|j�^qa|_xE|jD]}|j|d|f�}q�Wn||_d|f|_t |�\|_ }|t |�krt j td�|��nt|j |j�dS( seAliases like: h = heads(default) b($1) = ancestors($1) - ancestors(default) iR%R>iR=s _aliasarg(%r)s invalid tokenN(tfuncreR�R#R�RqRBtstripRytreplacetparset replacementRERGRHRRs(tselfR�R�RgRR�RM((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt__init__�s4  N(t__name__t __module__R�R�RvRRyR|(((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRu�sc Cst|t�r|r|ddkr{t|�dkr{|d}|j|�}|r{|jdkr{|j|kr{|Sn|ddkrt|�dkr|dddkrt|d�dkr|dd}|j|�}|r|jdk r|j|d kr|SqqndS(sRIf tree looks like an unexpanded alias, return it. Return None otherwise. iR>iiR%N(ROR0RER�RyRRq(taliasesRqR�talias((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _getalias�s" $"*( csU| st|t� r|St|�}|dk r;�|St�fd�|D��S(sgReplace _aliasarg instances with the substitution value of the same name in args, recursively. c3s|]}t|��VqdS(N(t _expandargs(RvR(Ry(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr>�sN(ROR0RrR(RqRyR�((Rys6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s   cst|t�s|St�|�}|dk rY|�krYtjtd�|j��n�j|�|j�kr�t �|j ����|j<n�|j}�j �|j dk r{t |d�}t|�t|j �kr tjtd�t|���ng|D]}t �|g��^q}t|tt|j |���}q{n"t���fd�|D��}|S(s�Expand aliases in tree, recursively. 'aliases' is a dictionary mapping user defined aliases to revsetalias objects. s0infinite expansion of revset alias "%s" detectedisinvalid number of arguments: %sc3s$|]}t�|���VqdS(N(t_expandaliases(RvR(Rtcachet expanding(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr> sN(ROR0R�RRGRHRR�R R�RzRRyRVRER�tdicttzip(RRqR�R�R�tresultRNRp((RR�R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s.      (' cCs_t|�i}x9|jd�D](\}}t||�}|||j<q Wt||gi�S(NRu(Rst configitemsRuR�R�(RRqRRUtvR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt findaliasess  cs�|stjtd���nt|�\�}|t|�kr]tjtd�|��n|rut|���nt�t�\}��fd�}|S(Ns empty querys invalid tokencst||��S(N(R[(R RZ(Rq(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmfunc!s(RGRHRRyRER�RfR|(RtspecRMtweightR�((Rqs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�scs@d���fd����fd��d}d}d}x�|t|�kr;||}|dkr$|d7}||}|dkr�||7}q.|dkr�|�|||�7}|d7}q.|d kr|d7}||}|�t||�|�7}|d7}q.tjd |��n ||7}|d7}q?W|S( s/ This is a convenience function for using revsets internally, and escapes arguments appropriately. Aliases are intentionally ignored so that intended expression behavior isn't accidentally subverted. Supported arguments: %r = revset expression, parenthesized %d = int(arg), no quoting %s = string(arg), escaped and single-quoted %b = arg.branch(), escaped and single-quoted %n = hex(arg), single-quoted %% = a literal '%' Prefixing the type with 'l' specifies a parenthesized list of that type. >>> formatspec('%r:: and %lr', '10 or 11', ("this()", "that()")) '(10 or 11):: and ((this()) or (that()))' >>> formatspec('%d:: and not %d::', 10, 20) '10:: and not 20::' >>> formatspec('%ld or %ld', [], [1]) "_list('') or 1" >>> formatspec('keyword(%s)', 'foo\xe9') "keyword('foo\\xe9')" >>> b = lambda: 'default' >>> b.branch = b >>> formatspec('branch(%b)', b) "branch('default')" >>> formatspec('root(%ls)', ['a', 'b', 'c', 'd']) "root(_list('a\x00b\x00c\x00d'))" cSstt|��S(N(treprtstr(RP((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytquoteFscs�|dkrtt|��S|dkr2�|�S|dkrPt|�d|S|dkro�tj|��S|dkr��|j��SdS(NRQRPRBs(%s)RhRq(R�R~RyRthexR�(ROR�(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytargtypeIs       cs�t|�}|dkrdS|dkr9�||d�S|dkr`ddjd�|D��S|dkr}ddj|�S|d kr�ddjd �|D��S|d kr�ddjd �|D��S|d }d�|| |��|||�fS(Nis _list('')iRQs _list('%s')Racss!|]}tt|��VqdS(N(R�R~(RvRp((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr>]sRPRhcss|]}tj|�VqdS(N(RR�(RvRp((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr>asRqcss|]}|j�VqdS(N(R�(RvRp((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr>csis (%s or %s)(RER(RPRRNRg(R�tlistexp(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�Vs        R�it%itdsnbrRNs&unexpected revspec format character %s(RER<RR�(texprRytretRMR�RORQ((R�R�R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt formatspec%s2!               csB�fd��g}�|d|�djd�|D��}|S(Ncs�t|t� s |ddkr<|j|t|�f�nk|j|d|df�x&|dD]}�||d|�qbW|dd|dddfg|d)dS( NiR?R>s(%sii����R$(sstringssymbol(ROR0R R�(RqtleveltlinesRP(t _prettyformat(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s  is css#|]\}}d||VqdS(s N((RvRNRP((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys <genexpr>�s(R(RqR�toutput((R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt prettyformat�s  (sgroupiR$(sfunciR$(sancestori(sparenti(s parentposti(snegatei(sminusi(s dagrangeprei(sdagrangei(s dagrangeposti(s dagrangeprei(sdagrangei(s dagrangeposti(srangeprei(srangei(s rangeposti(snoti (snoti (sandi(sandi(sori(sori(sori(slisti(iNN(ssymbol(sstring(iNN(ssymbols _aliasarg(�R�tparserRRGR%R�R�RR�R�ti18nRR�RR�R�RRR"RtelementsRRKRSRURVRXR[RbRcReRiR/RkRnRoRrR%RuR'R�RzR{R}R�R�R�R�R�R�R�R�RsR�R�R�R�R�R�R�R�R�R�R�R�R�R�R_R�RR�R�R�R�R�R�R�R�RRRR�R R R RR�RRRR-R�R/R!R1R2R3R5R6R RNRPRRQRDR�R�R]R^R_R�RbRdRYRfRpRrRstobjectRuR�R�R�R�RyR�R�R�t i18nfunctions(((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt<module>s� H               E                      &           ,          ?                 #   p  8 '       N     ^