PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB`Mini Shell

HOME


Mini Shell 1.0
DIR:/lib/python3/dist-packages/gyp/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/gyp/__pycache__/common.cpython-311.pyc
�

�"Kb�O���ddlmZddlZddlZddlZddlZddlZddlZddl	m
Z
Gd�de��ZGd�de
��Zd�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zed&d���Zed'd���Zd�Zd�Zejd��Zejd��Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$ifd�Z%d'd�Z&Gd �d!e
j'��Z(Gd"�d#e
��Z)d$�Z*d%�Z+dS)(�)�with_statementN)�collections_abcc��eZdZd�Zd�ZdS)�memoizec�"�||_i|_dS�N)�func�cache)�selfr	s  �,/usr/lib/python3/dist-packages/gyp/common.py�__init__zmemoize.__init__s���D�I��D�J�J�J�c�j�	|j|S#t$r|j|�}||j|<|cYSwxYwr)r
�KeyErrorr	)r�args�results   r�__call__zmemoize.__call__sR���
�Z��
��������t�y�$��f��d�j���
�m�m�m����s�� 2�2N)�__name__�
__module__�__qualname__r
r�rrrrs2�������������rrc��eZdZdZdS)�GypErrorz�Error class representing an error, which is to be presented
  to the user.  The main entry point will catch and display this.
  N)rrr�__doc__rrrrr s���������$rrc��|js
|f|_dSt|j��dkr(t|jd��dz|zf|_dSt|jd��dz|zf|jdd�z|_dS)z2Append a message to the given exception's message.�r� N)r�len�str)�e�msgs  r�ExceptionAppendr"'s���	
��8��V�A�F�F�F�
�1�6�{�{�a����!�&��)�n�n�s�"�S�(�
*�A�F�F�F��!�&��)�n�n�s�"�S�(�
*�Q�V�A�B�B�Z�
7�A�F�F�Frc� ���fd�|D��S)zc
  Given a list of qualified targets, return the qualified targets for the
  specified |target|.
  c�F��g|]}t|��d�k�|��S)r��ParseQualifiedTarget)�.0�t�targets  �r�
<listcomp>z(FindQualifiedTargets.<locals>.<listcomp>6s1���	L�	L�	L��';�A�'>�'>�q�'A�V�'K�'K�!�'K�'K�'Krr)r)�qualified_lists` r�FindQualifiedTargetsr,1s ���

M�	L�	L�	L�^�	L�	L�	L�Lrc���|�dd��}t|��dkr|\}}nd}|�dd��}t|��dkr|\}}nd}|||gS)N�:r��#)�rsplitr)r)�target_split�
build_file�toolsets    rr&r&9s�����s�A�&�&�,�����!���'��Z����J����s�A�&�&�,�����!���$��V�W�W��G�
�f�g�	&�&rc�Z�t|��\}}}|r�|r�tj�tj�tj�|��|����}tj�|��st|d��}n|}|r|}|||gS)N�.)r&�os�path�normpath�join�dirname�isabs�RelativePath)r3r)r4�parsed_build_file�parsed_toolsets     r�
ResolveTargetr@Ls���1E�V�0L�0L�-��f�n��%��
%��7�#�#�B�G�L�L������1L�1L�1B�%D�%D�E�E�j��W�]�]�:�
&�
&�3�!�*�c�2�2�
��$�j����G�
�f�g�	&�&rc�,�t|��dS�Nrr%)�fully_qualified_targets r�	BuildFilerDns��	�4�	5�	5�a�	8�8rc�T�|D]$}|tjvrtj|cS�%|S)zpLook up a key in the environment, with fallback to secondary keys
  and finally falling back to a default value.)r7�environ)�var_list�default�vars   r�GetEnvironFallbackrJss<�����c�
�b�j���
�Z��_�����	�.rc�*�|dz|z}|r|dz|z}|S)Nr.r0r)r3r)r4�fully_qualifieds    r�QualifiedTargetrM|s0����$�v�-�/��6�%��+�g�5�O�	�rTc�b�|r tj�|��}ntj�|��}tj�|��}tjdkrrtj�|��d���tj�|��d���kr|S|�tjj	��}|�tjj	��}ttj�||g����}tjjgt|��|z
z||d�z}t|��dkrdStjj
|�S)N�win32r�)r7r8�realpath�abspath�sys�platform�
splitdrive�lower�split�sepr�commonprefix�pardirr:)r8�relative_to�follow_path_symlink�
path_split�relative_to_split�
prefix_len�relative_splits       rr=r=�sb���!�
�7���D�!�!�D�D�
�7�?�?�4� � �D��� � ��-�-�+�	�\�W���
����4� � ��#�)�)�+�+�
����;�'�'��*�0�0�2�2�	3�	3�
�k��z�z�"�'�+�&�&�*�!�'�'����4�4���2�7�'�'��5F�(G�H�H�I�I�*��G�N�#�s�+<�'=�'=�
�'J�K��j�k�k�*�+�.�	����A���
�2�
���~�	&�&rc�r�|s|S|�dn|}t|tj�||����S)aGiven a path like foo/bar that is relative to toplevel_dir, return
  the inverse relative path back to the toplevel_dir.

  E.g. os.path.normpath(os.path.join(path, InvertRelativePath(path)))
  should always produce the empty string, unless the path contains symlinks.
  Nr6)r=r7r8r:)r8�toplevel_dirs  r�InvertRelativePathrc�s?��
���K�$�,���,�,�	�l�B�G�L�L��t�$D�$D�	E�	E�Erc�d�tj�|��r|St||��Sr)r7r8r<r=)r8r[s  r�FixIfRelativePathre�s-���W�]�]�4�����K�	�d�K�	(�	(�(rc��tj�|��}tj�tj�||����Sr)r7r8r;r9r:)r8r[�rel_dirs   r�UnrelativePathrh�s=��
�G�O�O�K�(�(�'�	��	�	�"�'�,�,�w��5�5�	6�	6�6rz[	
 #$%&'()*;<=>?[{|}~]|^$z(["\\`])c���t|t��st|��}t�|��rd}nd}|t	jtd|��z|z}|S)a�Encodes |argument| suitably for consumption by POSIX shells.

  argument may be quoted and escaped as necessary to ensure that POSIX shells
  treat the returned value as a literal representing the argument passed to
  this function.  Parameter (variable) expansions beginning with $ are allowed
  to remain intact without escaping the $, to allow the argument to contain
  references to variables to be expanded by the shell.
  �"rPz\\\1)�
isinstancer�_quote�search�re�sub�_escape)�argument�quote�encodeds   r�EncodePOSIXShellArgumentrtsc��
�H�c�	"�	"���8�}�}�H��]�]�8�����E�E��E��B�F�7�G�X�6�6�6��>�'�	�.rc�~�g}|D]$}|�t|�����%d�|��S)z�Encodes |list| suitably for consumption by POSIX shells.

  Returns EncodePOSIXShellArgument for each item in list, and joins them
  together using the space character as an argument separator.
  r)�appendrtr:)�list�encoded_argumentsrqs   r�EncodePOSIXShellListrysN�����A�A�h����5�h�?�?�@�@�@�@�	���#�	$�	$�$rc���t��}t|��}|r�|���}||vr�|�|��||}|�t|�dg������|�t|�dg������|��t|t|��z
��S)z2Returns the recursive list of target dependencies.�dependencies�dependencies_original)�set�pop�add�update�getrw)�target_dicts�rootsr{�pending�r�specs      r�DeepDependencyTargetsr�)s������,���J�J�'��?����
�
�A��L�������Q������?�D��N�N�3�t�x�x���3�3�4�4�5�5�5��N�N�3�t�x�x� 7��<�<�=�=�>�>�>�	�?�
�l�S��Z�Z�'�	(�	(�(rc� ���fd�|D��S)zHFrom a target_list, returns the subset from the specified build_file.
  c�:��g|]}t|���k�|��Sr)rD)r'�pr3s  �rr*z$BuildFileTargets.<locals>.<listcomp>?s)���	?�	?�	?��I�a�L�L�J�$>�$>�!�$>�$>�$>rr)�target_listr3s `r�BuildFileTargetsr�<s ���
@�	?�	?�	?�[�	?�	?�	?�?rc�L�t||��}t||��}||zS)zNReturns all targets (direct and dependencies) for the specified build_file.
  )r�r�)r�r�r3�	bftargets�
deptargetss     r�
AllTargetsr�Bs-���{�J�7�7�)�$�\�9�=�=�*�	�Z�	�rc�B��G�fd�dt��}|��S)z�Write to a file only if the new contents differ.

  Arguments:
    filename: name of the file to potentially write to.
  Returns:
    A file like object which will write to temporary file and only overwrite
    the target if it differs (on close).
  c�.��eZdZdZ�fd�Zd�Z�fd�ZdS)�WriteOnDiff.<locals>.Writerz?Wrapper around file which only covers the target if it differs.c�^��tjdtj����ddztj����d���\}|_	tj|d��|_dS#t$rtj	|j���wxYw)Nz.tmprz.gyp.r)�suffix�prefix�dir�w)
�tempfile�mkstempr7r8rW�tmp_path�fdopen�tmp_file�	Exception�unlink)r�tmp_fd�filenames  �rr
z$WriteOnDiff.<locals>.Writer.__init__Vs����&�.������x�(�(��+�g�5��g�m�m�H�%�%�a�(�*�*�*��f�d�m���	�&�#�.�.��
�
�
��
����
�	�$�-� � � �
����s�+B�%B,c�,�t|j|��Sr)�getattrr�)r�attrnames  r�__getattr__z'WriteOnDiff.<locals>.Writer.__getattr__cs��
�T�]�H�
-�
-�-rc���	|j���d}	tj|j�d��}n-#t
$r }|jtjkr�Yd}~nd}~wwxYw|rtj	|j��dStj
d��}tj
|��tj|jd|z��tj
dkr3tj����rtj���tj|j���dS#t$$rtj	|j���wxYw)NF�?i�rO)r��close�filecmp�cmpr��OSError�errno�ENOENTr7r��umask�chmodrSrTr8�exists�remove�renamer�)r�samer r�r�s    �rr�z!WriteOnDiff.<locals>.Writer.closegsU���&��
��������	���T�]�H�e�<�<�$�$���	�	�	�
�W���
$�
$��%�
$�
$�
$�
$�����	�����	-�
�)�D�M�
"�
"�
"�
"�
"��(�4�.�.�%�
�(�5�/�/�/�
�(�4�=�%�5�&�.�
1�
1�
1�
�\�W�
$�
$������)A�)A�
$�
�I�h����
�)�D�M�8�
,�
,�
,�
,�
,��
����
�	�$�-� � � �
����s8�D*�;�D*�
A%�A �D*� A%�%D*�B#D*�*%EN)rrrrr
r�r�)r�s�r�Writerr�Ts\�������I�I������.�.�.�'�'�'�'�'�'�'rr�)�object)r�r�s` r�WriteOnDiffr�JsE���:�:�:�:�:�:�:�v�:�:�:�x
����/rc��	tjtj�|����dS#t$rYdSwxYw)z*Make sure the directory for |path| exists.N)r7�makedirsr8r;r�)r8s r�EnsureDirExistsr��sM��	��K������%�%�&�&�&�&�&��	�	�	�	��D�D�	���s�15�
A�Ac�8�dddd�}d|vr|dStj|vr|tjStj�d��rdStj�d��rdStj�d��rdStj�d	��rd	Stj�d
��rd
Stj�d��rdStj�d��rdSd
S)zFReturns |params.flavor| if it's set, the system's default flavor else.�win�mac)�cygwinrO�darwin�flavor�sunos�solaris�freebsd�openbsd�netbsd�aix�zos�os390�linux)rSrT�
startswith)�params�flavorss  r�	GetFlavorr��s���
��
�
�'������(����\�W����3�<� � ��\���W�%�%���9��\���Y�'�'���9��\���Y�'�'���9��\���X�&�&���8��\���U�#�#���5��\���U�#�#���5��\���W�%�%���5�	�rc	��ddddd��|d��}|sdStj�tj�tj�t����d|z��}t|��5}|���}ddd��n#1swxYwYd}|�dd��}|dkr
|r|d	|zz
}tj�|d
|z��}	t|	d��5}
|
�	d�|d
|g|dd�z����ddd��n#1swxYwYtj
|	d��dS)zRFinds (flock|mac|win)_tool.gyp in the gyp directory and copies it
  to |out_path|.�flockr�r�)r�r�r�r�Nz
%s_tool.pyz!# Generated by gyp. Do not edit.
�mac_toolchain_dirz,import os;
os.environ['DEVELOPER_DIR']='%s'
zgyp-%s-toolr�rPrri�)r�r7r8r:r;rR�__file__�open�	readlines�writer�)r��out_path�generator_flagsr��source_path�source_file�source�headerr��	tool_path�	tool_files           r�CopyToolr��s����
�
�	��
	��F�D���	�
��
�F������g�o�o�b�g�o�o�h�/�/�0�0�,��2G�I�I�+��K���%�K�
�
"�
"�
$�
$�F�%�%�%�%�%�%�%�%�%�%�%����%�%�%�%�0�&�&�*�*�+>��E�E���u�_�_�*�_�
�>�
���F��g�l�l�8�]�V�%;�<�<�)��I�s���3�y�
�O�O�
������F�#�f�Q�R�R�j�0�1�1�3�3�3�3�3�3�3�3�3�3�3�3�3�3����3�3�3�3�
�(�9�e�����s$�B2�2B6�9B6�<E � E$�'E$c�v�|�d�}i}g}|D],}||��}||vr�d||<|�|���-|S)Nc��|Srr)�xs r�<lambda>zuniquer.<locals>.<lambda>�s��!�rr)rv)�seq�idfun�seenr�item�markers      r�uniquerr��sb���}����
�D�
�F�������t�����T�>�>�8���V���
�
�d������Mrc�T�eZdZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dd
�Z
d�Zd�Zd
�Z
dS)�
OrderedSetNc�H�gx|_}|d||gz
}i|_|�||z}dSdSr)�end�map)r�iterabler�s   rr
zOrderedSet.__init__�sB����D�H�s��D�#�s���C��D�H���
�h��d�d�d��rc�*�t|j��Sr)rr��rs r�__len__zOrderedSet.__len__�s���t�x�=�=�rc��||jvSr)r�)r�keys  r�__contains__zOrderedSet.__contains__�s���$�(�?�rc�h�||jvr(|j}|d}|||gx|d<x|d<|j|<dSdS)Nrr/)r�r�)rr�r��currs    rrzOrderedSet.addsO��
�$�(����H�c�
��V�d�*-�t�S�)9�9�d�1�g�9��A����#�����rc�l�||jvr*|j�|��\}}}||d<||d<dSdS)Nr/r)r�r~)rr��	prev_item�	next_items    r�discardzOrderedSet.discardsD��
�d�h���"&�(�,�,�s�"3�"3��c�9�i��i��l��i��l�l�l��rc#�`K�|j}|d}||ur|dV�|d}||u�dSdS)Nr/r�r��rr�r�s   r�__iter__zOrderedSet.__iter__�H����
�(�C��q�6�D�
�c�/�/���G�m�m�m�
�!�W�d��c�/�/�/�/�/�/rc#�`K�|j}|d}||ur|dV�|d}||u�dSdS)Nrrr�r�s   r�__reversed__zOrderedSet.__reversed__r�rTc��|std���|r|jddn|jdd}|�|��|S)Nzset is emptyrrr/)rr�r�)r�lastr�s   rr~zOrderedSet.popsQ���%��^�$�$�$� �
4�$�(�1�+�a�.�.�d�h�q�k�!�n�C��L�L������Jrc�b�|s|jj�d�S|jj�dt|���d�S)Nz()�(�))�	__class__rrwr�s r�__repr__zOrderedSet.__repr__"s>���1��~�.�.�.�
0�0��~�.�.�.��T�
�
�
�
�;�;rc���t|t��r@t|��t|��kot|��t|��kSt	|��t	|��kSr)rkr�rrwr})r�others  r�__eq__zOrderedSet.__eq__'sY���%��$�$�C�
��Y�Y�#�e�*�*�
$�
B��d���t�E�{�{�)B�B��t�9�9��E�
�
�"�"rc�B�|D]}||vr|�|���dSr)r)rr��is   rr�zOrderedSet.update-s4��
����	
�$������������rr�T)rrrr
r�r�rr�r�r�r~rr	r�rrrr�r��s�����������������:�:�:��������������<�<�<�
#�#�#�����rr�c��eZdZdZd�Zd�ZdS)�
CycleErrorz9An exception raised when an unexpected cycle is detected.c��||_dSr)�nodes)rrs  rr
zCycleError.__init__5s
���D�J�J�Jrc�0�dt|j��zS)NzCycleError: cycle involving: )rrr�s r�__str__zCycleError.__str__7s��*�S���_�_�<�<rN)rrrrr
rrrrrr3s8������A�A����=�=�=�=�=rrc�������t����t���t���g������fd��t|��D]
}�|����S)a�Topologically sort based on a user provided edge definition.

  Args:
    graph: A list of node names.
    get_edges: A function mapping from node name to a hashable collection
               of node names which this node has outgoing edges to.
  Returns:
    A list containing all of the node in graph in topological order.
    It is assumed that calling get_edges once for each node and caching is
    cheaper than repeatedly calling get_edges.
  Raises:
    CycleError in the event of a cycle.
  Example:
    graph = {'a': '$(b) $(c)', 'b': 'hi', 'c': '$(b)'}
    def GetEdges(node):
      return re.findall(r'\$\(([^))]\)', graph[node])
    print(TopologicallySorted(graph.keys(), GetEdges))
    ==>
    ['a', 'c', b']
  c���|�vrt����|�vrdS��|����|���|��D]
}�|�����|����d|��dSrB)rrr��insert)�node�neighbor�Visit�	get_edges�
ordered_nodes�visited�visitings  �����rrz"TopologicallySorted.<locals>.VisitTs�����x����x� � � ��w����f��K�K������L�L������I�d�O�O�����e�H�o�o�o�o��O�O�D��������D�!�!�!�!�!r)rr}�sorted)�graphrrrrrrs ` @@@@r�TopologicallySortedr;s��������*�i� � �)��E�E�'�
�U�U�(��-�
"�
"�
"�
"�
"�
"�
"�
"�
"��U�m�m���d�	�E�$�K�K�K�K�	�rc��tj�d��p�tj�d��p�tj�d��p{tj�d��p\tj�d��p=tj�d��ptj�d��S)N�GYP_CROSSCOMPILE�AR_host�CC_host�CXX_host�	AR_target�	CC_target�
CXX_target)r7rFr�rrr�CrossCompileRequestedr(cs���
�*�.�.�+�
,�
,�'�
�*�.�.��
#�
#�'�
�*�.�.��
#�
#�'�
�*�.�.��
$�
$�'�
�*�.�.��
%�
%�	'�

�*�.�.��
%�
%�'�
�*�.�.��
&�
&�
(rrr),�
__future__rr�r��os.pathr7rnr�rS�	six.movesrr�rr�rr"r,r&r@rDrJrMr=rcrerh�compilerlrprtryr�r�r�r�r�r�r�r��
MutableSetr�rrr(rrr�<module>r.s���
&�%�%�%�%�%�������������	�	�	�	�����
�
�
�
�%�%�%�%�%�%�

�
�
�
�
�f�
�
�
������y����8�8�8�M�M�M�'�'�'�&'�'�'�D9�9�9�
������	�('�('�('�	��('�V	�
F�
F�
F�	��
F�)�)�)�7�7�7�D
���3�	4�	4��4�"�*�[�
!�
!�����.
%�
%�
%�)�)�)�&@�@�@� � � �F�F�F�R	�	�	����<02�"�"�"�"�V
�
�
�
�>�>�>�>�>��+�>�>�>�B=�=�=�=�=��=�=�=�&�&�&�P	(�	(�	(�	(�	(r