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:/usr/lib/python3/dist-packages/gyp/generator/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/gyp/generator/__pycache__/analyzer.cpython-311.pyc
�

�"Kb�w���dZddlmZddlZddlmZddlZddlZddl	Z	ddl
Z
dZdZdZ
dZdZd	Zd
ZdZej���ZdZiZdD]Zd
ee<�dD]Zdee<�d�Zd�Zd�Zd�Zd�Zd�ZGd�de ��Z!Gd�de ��Z"d�Z#d�Z$d�Z%d�Z&d�Z'd�Z(d �Z)d!�Z*d"�Z+d#�Z,d$�Z-d%�Z.d&�Z/d'�Z0Gd(�d)e ��Z1d*�Z2dS)+a�
This script is intended for use as a GYP_GENERATOR. It takes as input (by way of
the generator flag config_path) the path of a json file that dictates the files
and targets to search for. The following keys are supported:
files: list of paths (relative) of the files to search for.
test_targets: unqualified target names to search for. Any target in this list
that depends upon a file in |files| is output regardless of the type of target
or chain of dependencies.
additional_compile_targets: Unqualified targets to search for in addition to
test_targets. Targets in the combined list that depend upon a file in |files|
are not necessarily output. For example, if the target is of type none then the
target is not output (but one of the descendants of the target will be).

The following is output:
error: only supplied if there is an error.
compile_targets: minimal set of targets that directly or indirectly (for
  targets of type none) depend on the files in |files| and is one of the
  supplied targets or a target that one of the supplied targets depends on.
  The expectation is this set of targets is passed into a build step. This list
  always contains the output of test_targets as well.
test_targets: set of targets from the supplied |test_targets| that either
  directly or indirectly depend upon a file in |files|. This list if useful
  if additional processing needs to be done for certain targets after the
  build, such as running tests.
status: outputs one of three values: none of the supplied files were found,
  one of the include files changed so that it should be assumed everything
  changed (in this case test_targets and compile_targets are not output) or at
  least one file was found.
invalid_targets: list of supplied targets that were not found.

Example:
Consider a graph like the following:
  A     D
 / B   C
A depends upon both B and C, A is of type none and B and C are executables.
D is an executable, has no dependencies and nothing depends on it.
If |additional_compile_targets| = ["A"], |test_targets| = ["B", "C"] and
files = ["b.cc", "d.cc"] (B depends upon b.cc and D depends upon d.cc), then
the following is output:
|compile_targets| = ["B"] B must built as it depends upon the changed file b.cc
and the supplied target A depends upon it. A is not output as a build_target
as it is of type none with no rules and actions.
|test_targets| = ["B"] B directly depends upon the change file b.cc.

Even though the file d.cc, which D depends upon, has changed D is not output
as it was not supplied by way of |additional_compile_targets| or |test_targets|.

If the generator flag analyzer_output_path is specified, output is written
there. Otherwise output is written to stdout.

In Gyp the "all" target is shorthand for the root targets in the files passed
to gyp. For example, if file "a.gyp" contains targets "a1" and
"a2", and file "b.gyp" contains targets "b1" and "b2" and "a2" has a dependency
on "b2" and gyp is supplied "a.gyp" then "all" consists of "a1" and "a2".
Notice that "b1" and "b2" are not in the "all" target as "b.gyp" was not
directly supplied to gyp. OTOH if both "a.gyp" and "b.gyp" are supplied to gyp
then the "all" target includes "b1" and "b2".
�)�print_functionNFzFound dependencyzNo dependencieszFound dependency (all)����)�INTERMEDIATE_DIR�SHARED_INTERMEDIATE_DIR�PRODUCT_DIR�LIB_DIR�SHARED_LIB_DIR�!!!)�RULE_INPUT_PATH�RULE_INPUT_ROOT�RULE_INPUT_NAME�RULE_INPUT_DIRNAME�RULE_INPUT_EXT�EXECUTABLE_PREFIX�EXECUTABLE_SUFFIX�STATIC_LIB_PREFIX�STATIC_LIB_SUFFIX�SHARED_LIB_PREFIX�SHARED_LIB_SUFFIX�CONFIGURATION_NAME�c�r�tjdkr&tjdkr|�dd��S|S)z*Converts a path to the format used by gyp.�\�/)�os�sep�altsep�replace)�paths �8/usr/lib/python3/dist-packages/gyp/generator/analyzer.py�
_ToGypPathr$rs2���V�t�^�^��	�S�(�(��<�<��c�"�"�"�	
�+�c�2�d}|�d��r$|dz
}|dd�}|�d���$|t|��krdS|t|��kr|Sd�|dt|��|z
���dz|zS)z�Resolves |path|, which starts with at least one '../'. Returns an empty
  string if the path shouldn't be considered. See _AddSources() for a
  description of |base_path_components|.r�../rrNrr)�
startswith�len�join)r"�base_path_components�depths   r#�_ResolveParentr-ys����%��������	�Q�J�E�����8�D�	
�������
�S�%�
&�
&�&�&�
�2�
�c�&�'�'�'�'��K�	���&�q��-A�)B�)B�U�)J�'J�K�	L�	L�	�

��
�r%c	��|D]�}t|��r*|�d��s|�d��r�<|}|d|dd��dd��z}|�d��r5t||��}t|��r|�|����|�||z��t
r't
d	||t|��dz
����dS)
a�Extracts valid sources from |sources| and adds them to |result|. Each
  source file is relative to |base_path|, but may contain '..'. To make
  resolving '..' easier |base_path_components| contains each of the
  directories in |base_path|. Additionally each source may contain variables.
  Such sources are ignored as it is assumed dependencies on them are expressed
  and tracked in some other means.r
�$rrNz//rr'�	AddSource)r)r(r!r-�append�debug�print)�sources�	base_pathr+�result�source�
org_sources      r#�_AddSourcesr9�s
���
>�
>�f��v�;�;��&�+�+�E�2�2��f�6G�6G��6L�6L����J�
�A�Y������+�+�D�#�6�6�
6�F�
��������f�&:�;�;�f�	�V�����
�
�f�����
�M�M�)�f�$�%�%�%��>��K��V�C��K�K�!�O�%<�=�=�=��
>�
>r%c�B�d|vrt|d|||��dSdS)N�inputs)r9)�actionr5r+�resultss    r#�_ExtractSourcesFromActionr>�s5��
������x� �)�-A�7�K�K�K�K�K��r%c��||krdS|�|dz��r'|t|��td��zd�S|S)z5Converts |path| to a path relative to |toplevel_dir|.rrN)r(r))�toplevel_dirr"s  r#�_ToLocalPathrA�sT��	�\���
�2�	�_�_�\�C�'�(�(�/���L�!�!�C��H�H�,�-�-�.�.�	
�+r%c��tjt|t|������}|�d��}t|��r|dz
}trtd||��g}d|vrt|d|||��d|vr|dD]}t||||���d|vr|dD]}t||||���|S)Nr�ExtractSourcesr4�actions�rules)
�	posixpath�dirnamerAr$�splitr)r2r3r9r>)�target�target_dictr@r5r+r=r<�rules        r#�_ExtractSourcesrL�s�����\�:�f�;M�;M� N� N�O�O�)�"����-�-��	��^�^��
���I�
�/�	�
�F�I�.�.�.��'��+�����I�&�	�3G������+����i�(�)�)����	�3G� '�)�)�)�)������G�$�P�P����i�1E�w�O�O�O�O�	�.r%c��eZdZdZd�ZdS)�TargetaAHolds information about a particular target:
  deps: set of Targets this Target depends upon. This is not recursive, only the
    direct dependent Targets.
  match_status: one of the MatchStatus values.
  back_deps: set of Targets that have a dependency on this Target.
  visited: used during iteration to indicate whether we've visited this target.
    This is used for two iterations, once in building the set of Targets and
    again in _GetBuildTargets().
  name: fully qualified name of the target.
  requires_build: True if the target type is such that it needs to be built.
    See _DoesTargetTypeRequireBuild for details.
  added_to_compile_targets: used when determining if the target was added to the
    set of targets that needs to be built.
  in_roots: true if this target is a descendant of one of the root nodes.
  is_executable: true if the type of target is executable.
  is_static_library: true if the type of target is static_library.
  is_or_has_linked_ancestor: true if the target does a link (eg executable), or
    if there is a target in back_deps that does a link.c���t��|_t|_t��|_||_d|_d|_d|_d|_	d|_
d|_d|_dS)NF)
�set�deps�MATCH_STATUS_TBD�match_status�	back_deps�name�visited�requires_build�added_to_compile_targets�in_roots�
is_executable�is_static_library�is_or_has_linked_ancestor)�selfrUs  r#�__init__zTarget.__init__�se�����D�I�(�D���U�U�D�N��D�I��D�L��D��$)�D�!��D�M��D��"�D��%*�D�"�"�"r%N)�__name__�
__module__�__qualname__�__doc__r^�r%r#rNrN�s-������;�;�$
+�
+�
+�
+�
+r%rNc��eZdZdZd�Zd�ZdS)�ConfigzoDetails what we're looking for
  files: set of files to search for
  targets: see file description for details.c��g|_t��|_t��|_t��|_dS�N)�filesrP�targets�additional_compile_target_names�test_target_names�r]s r#r^zConfig.__init__�s2���D�J��5�5�D�L�+.�5�5�D�(� �U�U�D���r%c��|�di��}|�dd��}|sdS	t|d��}tj|��}|���nO#t
$rt
d|z���t$r'}t
d|zt|��z���d}~wwxYwt|t��st
d���|�dg��|_t|�d	g����|_
t|�d
g����|_dS)zfInitializes Config. This is a separate method as it raises an exception
    if there is a parse error.�generator_flags�config_pathN�rzUnable to open file zUnable to parse config file z7config_path must be a JSON file containing a dictionaryrh�additional_compile_targets�test_targets)�get�open�json�load�close�IOError�	Exception�
ValueError�str�
isinstance�dictrhrPrjrk)r]�paramsrnro�f�config�es       r#�InitzConfig.Init�sR���j�j�!2�B�7�7�O�!�%�%�m�T�:�:�K��
��f�M�
�{�C�
 �
 �a��y��|�|�f��g�g�i�i�i�i���<�<�<��,�{�:�;�;�;��M�M�M��4�{�B�S��V�V�K�L�L�L�����M�����f�d�#�#�Q��O�P�P�P����G�R�(�(�D�J�+.��j�j�-�r�2�2�,4�,4�D�(� ����N�B�!?�!?�@�@�D���s�8A+�+%B7�"B2�2B7N)r_r`rarbr^r�rcr%r#rere�sA������0�0�#�#�#�A�A�A�A�Ar%rec��t|t|����|vrtrtd|��dSt	||d��dkrdS||ddd�D]]}tt
j�||����}t||��|vrtrtd|d|��dS�^dS)	z�Returns true if the build file |build_file| is either in |files| or
  one of the files included by |build_file| is in |files|. |toplevel_dir| is
  the root of the source tree.zgyp file modifiedT�included_filesrFNz%included gyp file modified, gyp_file=zincluded file=)rAr$r2r3r)�gyp�common�UnrelativePath)�
build_file�datarhr@�include_file�rel_include_files      r#�_WasBuildFileModifiedr�s����,�
�:� 6� 6�7�7�5�@�@��-����,�,�,��4�	��j�	�*�	+�,�,��1�1��5��:�&�'7�8����<���l�	�3�:�,�,�\�:�F�F�G�G���L�"2�3�3�u�<�<�	�0�
�5�z��.�	0�	0�	0�
�T�T�	=�

�r%c�N�||vr
d||fSt|��}|||<d|fS)z�Creates or returns the Target at targets[target_name]. If there is no
  Target for |target_name| one is created. Returns a tuple of whether a new
  Target was created and the Target.FT)rN)ri�target_namerIs   r#�_GetOrCreateTargetByNamer�.s@���G����'�+�&�&�&��+���&��'�+��	
�v��r%c��t|ddkp)|�d��p|�d����S)zBReturns true if the target type is such that it needs to be built.�type�nonerDrE)�boolrs)rJs r#�_DoesTargetTypeRequireBuildr�9sO��
�k�&�!�V�+�E��o�o�i�(�(�E�,7�O�O�G�,D�,D�
F�
F�Fr%c�8�i}g}|dd�}i}	t��}
t��}t|��dk�rS|���}t||��\}
}|
r|
�|��n|jr�[d|_t
||��|_||d}|dk|_|dk|_	|dkp|dk|_
tj�
|��d}||	vrt||||��|	|<||vr|�|��|	|r2td|��t |_|�|��nt'||||��}|D]e}t)t*j�|����|vr5td	|d
|��t |_|�|��n�f||�dg��D]u}|�|��t||��\}}|s|
�|��|j�|��|j�|���vt|��dk��S|||
|zfS)a�Returns a tuple of the following:
  . A dictionary mapping from fully qualified name to Target.
  . A list of the targets that have a source file in |files|.
  . Targets that constitute the 'all' target. See description at top of file
    for details on the 'all' target.
  This sets the |match_status| of the targets that contain any of the source
  files in |files| to MATCH_STATUS_MATCHES.
  |toplevel_dir| is the root of the source tree.NrTr��
executable�static_library�shared_libraryz(matching target from modified build filerI�matches�dependencies)rPr)�popr��addrVr�rWrZr[r\r�r��ParseQualifiedTargetr�r3�MATCH_STATUS_MATCHESrSr1rLr$rr"�normpathrs�discardrQrT)r��target_list�target_dictsr@rh�build_files�name_to_target�matching_targets�targets_to_visit�build_file_in_files�roots�build_file_targetsr��created_targetrI�target_typer�r4r7�dep�created_dep_target�
dep_targets                      r#�_GenerateTargetsr�@s
���.���!����^�����%�%�%��u�u�������!�!�"�&�&�(�(�K�5�n�6A�C�C��N�F����i�i������	�����F�N�7��[�!�#�#�F���{�+�F�3�K�&�,�6�F��*�.>�>�F��(3�|�(C�)H�(3�7G�(G��$���0�0��=�=�a�@�J��,�,�,�
�
�D�%��
F�
F��*�%��[� � ����V�$�$�$��:�&���6��D�D�D�0�f�����f�%�%�%�%���\�+�-F� ,�.�.�g����&��b�g�&�&�v�.�.�/�/�5�8�8�
��+�y�&�
9�
9�
9� 4�&�
�
�
!�
!�&�
)�
)�
)�
�%�	9��K�(�,�,�^�R�@�@�	'�	'�����c�"�"�"�'?��@C�(E�(E�$��*�
�"�
�
�
�j�!�!�!��k�o�o�j�!�!�!�����v�&�&�&�&�i	�����!�!�l
�)�5�3E�+E�	E�Er%c�Z�i}|sigfSt|��}|���D]r}tj�|��}t|��dkr>|d|vr4|�|d��||||d<|s|gfcS�s|d�|D��fS)z�Returns a tuple of the following:
  . mapping (dictionary) from unqualified name to Target for all the
    Targets in |to_find|.
  . any target names not found. If this is empty all targets were found.rc��g|]}|��Srcrc��.0�xs  r#�
<listcomp>z2_GetUnqualifiedToTargetMapping.<locals>.<listcomp>�s��%�%�%��!�%�%�%r%)rP�keysr�r�r�r)�remove)�all_targets�to_findr6r��	extracteds     r#�_GetUnqualifiedToTargetMappingr��s���
�&�	��
�r�6�M���L�L�'� �%�%�'�'���k��
�/�/��<�<�I�
�9�~�~����i��l�g�5�5�
�n�n�Y�q�\�"�"�"�(��5�f�Y�q�\��
���r�z�����	�%�%�W�%�%�%�	%�%r%c��|jtkrdS|jtks|jtkrdS|jD]<}t|��r+t|_t
d|jd|j��dS�=t|_dS)z�Returns true if |target| or any of its dependencies is one of the
  targets containing the files supplied as input to analyzer. This updates
  |matches| of the Targets as it recurses.
  target: the Target to look for.FT�	zmatches by dep)rS�MATCH_STATUS_DOESNT_MATCHr��"MATCH_STATUS_MATCHES_BY_DEPENDENCYrQ�"_DoesTargetDependOnMatchingTargetsr3rU)rIr�s  r#r�r��s���
��5�5�5��5���0�0�0���?�?�?��4�
�[���c�)�#�.�.��>�f���D�&�+�/���:�:�:�
�T�T��2�&��	�r%c�z�g}td��|D]&}t|��r|�|���'|S)z�Returns the list of Targets in |possible_targets| that depend (either
  directly on indirectly) on at least one of the targets containing the files
  supplied as input to analyzer.
  possible_targets: targets to search from.z#Targets that matched by dependency:)r3r�r1)�possible_targets�foundrIs   r#�%_GetTargetsDependingOnMatchingTargetsr��sO��

�%��-�.�.�.� ���f�)�&�1�1���l�l�6�����	�,r%c��|jrdSd|_||v|_|jD]S}t||d|��|xj|jzc_|xj|jzc_|xj|jzc_�T|jr|js |js	|s|js|jrc|rc|js^td|j
d|jd|jd|d|jd	|jd
|j��|�|��d|_dSdSdSdSdS)aaRecurses through all targets that depend on |target|, adding all targets
  that need to be built (and are in |roots|) to |result|.
  roots: set of root targets.
  add_if_no_ancestor: If true and there are no ancestors of |target| then add
  |target| to |result|. |target| must still be in |roots|.
  result: targets that need to be built are added here.NTFz		adding to compile targetsr�rX�add_if_no_ancestorrWr[r\)rVrYrT�_AddCompileTargetsrXr\rZrWr[r3rUr�)rIr�r�r6�back_dep_targets     r#r�r��s����^��
�F��&�.��e�O�&�/��)�1�1�o����u�f�=�=�=�
�#�#��'O�O�#�#�
�O�O��/�/�O�O�
�$�$��/�1�$�$�$��_�+�	�	�+��-�+��+�"(�!6�+��
"�	+�(:�	+�
�.�+�
�
)�6�;����!;��*�,@��/��1F��� 8�&��(H�
�
�
��J�J�v����&*�F�#�#�#�+�+�+�+�+�+�+�+r%c�z�t��}|D])}td|j��t||d|���*|S)z�Returns the set of Targets that require a build.
  matching_targets: targets that changed and need to be built.
  supplied_targets: set of targets supplied to analyzer to search from.z!finding compile targets for matchT)rPr3rUr�)r��supplied_targetsr6rIs    r#�_GetCompileTargetsr��sL���5�5�&� �?�?�f�	�
-�v�{�;�;�;��v�/��v�>�>�>�>�	�-r%c���d|vrtd|d��d|vrt|d��d|vrD|d���td��|dD]}td|���d|vrD|d���td��|dD]}td|���d	|vrD|d	���td
��|d	D]}td|���d|vrD|d���td��|dD]}td|���d
|vrD|d
���td��|d
D]}td|���|�di���dd��}|s#ttj|����dS	t|d��}|�tj|��dz��|���dS#t$r)}td|t|����Yd}~dSd}~wwxYw)z;Writes the output, either to stdout or a file is specified.�errorzError:�statusriz.Supplied targets that depend on changed files:r��invalid_targetsz%The following targets were not found:�
build_targetszTargets that require a build:�compile_targetszTargets that need to be built:rrz
Test targets:rn�analyzer_output_pathN�w�
zError writing to output file)
r3�sortrsru�dumpsrt�writerwrxr{)r~�valuesrI�output_pathrr�s      r#�_WriteOutputr��s�������	�(�F�7�O�$�$�$�
����	�&��
�����&���
�9�������	�
:�;�;�;���#�����D�&������&� � �
���"�"�$�$�$�	�
1�2�2�2��*�+�����D�&���������
�?�� � �"�"�"�	�
)�*�*�*���)�����D�&������&� � �
���"�"�$�$�$�	�
*�+�+�+��*�+�����D�&������v���
�>����!�!�!�	�/������(�����D�&������
�
�,�b�1�1�5�5��d�$�$�+�	��	�$�*�V�
�
����
�F�?��[�#���A��G�G�D�J�v����%�&�&�&��G�G�I�I�I�I�I��	�?�?�?�	�
(�+�s�1�v�v�>�>�>�>�>�>�>�>�>�����?���s�,AH<�<
I/�I*�*I/c���|djrQ|djD]C}ttj�|����|vrtd|��dS�DdS)zNReturns true if one of the files in |files| is in the set of included
  files.�optionsz+Include file modified, assuming all changedTF)�includesr$rr"r�r3)r~rh�includes   r#�_WasGypIncludeFileModifiedr�,sr���I�����)�$�-����	�B�G�$�$�W�-�-�	.�	.�%�	7�	7�
�;�W�E�E�E��t�t�
8�
�r%c� ���fd�|D��S)zBReturns a list of the values in |names| that are not in |mapping|.c���g|]}|�v�|��	Srcrc�r�rU�mappings  �r#r�z_NamesNotIn.<locals>.<listcomp>9s#���	8�	8�	8�4�D��$7�$7�$�$7�$7�$7r%rc��namesr�s `r#�_NamesNotInr�7s���	8�	8�	8�	8�5�	8�	8�	8�8r%c� ���fd�|D��S)zUReturns a list of the mapping[name] for each value in |names| that is in
  |mapping|.c�(��g|]}|�v��|��Srcrcr�s  �r#r�z"_LookupTargets.<locals>.<listcomp>?s"���	=�	=�	=�D�T�W�_�_�'�$�-�_�_�_r%rcr�s `r#�_LookupTargetsr�<s���
>�	=�	=�	=�E�	=�	=�	=�=r%c��tj�|��}|dkr|�dd��dS|dkrc|�dd��ddlmcm}t|dg��}t|dg��}tj�	||��dS|}|dkrd	}|�d|��dS)
zDCalculate additional variables for use in the build (called by gyp).�mac�OS�winrN�+generator_additional_non_configuration_keys�"generator_additional_path_sections�android�linux)
r�r��	GetFlavor�
setdefault�gyp.generator.msvs�	generator�msvs�getattr�msvs_emulation�CalculateCommonVariables)�default_variablesr~�flavor�msvs_generatorr�r��operating_systems       r#�CalculateVariablesr�Bs����:����'�'�&��u�_�_�� � ��u�-�-�-�-�-�
����� � ��u�-�-�-�0�/�/�/�/�/�/�/�/�29�.�5�r�3;�3;�/�)0��,�b�*2�*2�&���/�/�0A�6�J�J�J�J�J���
���� ��� � ��'7�8�8�8�8�8r%c�6�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�TargetCalculatorzBCalculates the matching test_targets and matching compile_targets.c		�&�t|��|_t|��|_t||||t	|��|��\|_|_|_t|j|�	����\|_
|_dSrg)rP� _additional_compile_target_names�_test_target_namesr��	frozenset�_name_to_target�_changed_targets�
_root_targetsr��_supplied_target_names_no_all�_unqualified_mappingr�)	r]rhrjrkr�r�r�r@r�s	         r#r^zTargetCalculator.__init__[s���,/�0O�,P�,P�D�)�!�"3�4�4�D���t�[�,�� ��'�'��6�6�D�D��$�/��1C�%�T�%9�%)�%G�%G�%I�%I�K�K�4�D��t�3�3�3r%c� �|j|jzSrg)rrrls r#�_supplied_target_namesz'TargetCalculator._supplied_target_namesfs���0�4�3J�J�Jr%c�X�|���}|�d��|S)z0Returns the supplied test targets without 'all'.�all)rr�)r]r6s  r#rz.TargetCalculator._supplied_target_names_no_allis*��
�
(�
(�
*�
*�F�
�N�N�5�����Mr%c��|jS)z;Returns true if the supplied files impact the build at all.)rrls r#�is_build_impactedz"TargetCalculator.is_build_impactedos��� � r%c�r�|���sJ�t|j��}|�d��t	||j��}d|jv}|r/d�t|��t|j��zD��}nd�|D��}td��|jD]}td|���td��|D]}td|j���td��t|��}|o#t|��t|j��z}|r)d�t|��t|��zD��}td	��|D]}td|j���d
�|D��}	|r$|	�
d��td��|	S)z'Returns the set of output test targets.r
c��g|]}|��Srcrcr�s  r#r�zDTargetCalculator.find_matching_test_target_names.<locals>.<listcomp>�s$��<�<�<�A�a�<�<�<r%c��g|]}|��Srcrcr�s  r#r�zDTargetCalculator.find_matching_test_target_names.<locals>.<listcomp>�s��5�5�5�A�a�5�5�5r%zsupplied test_targetsr�zfound test_targetsz#searching for matching test targetsc��g|]}|��Srcrcr�s  r#r�zDTargetCalculator.find_matching_test_target_names.<locals>.<listcomp>�s*��F�F�F�Q�q�F�F�Fr%zmatched test_targetsc�b�g|],}tj�|j��d��-S�r�r�r�r�rU�r�rIs  r#r�zDTargetCalculator.find_matching_test_target_names.<locals>.<listcomp>�sE��B�B�B�!'�!�Z�<�<�V�[�I�I�!�L�B�B�Br%z	all)rrPrr�r�r	rr3rUr�r1)
r]�test_target_names_no_all�test_targets_no_all�test_target_names_contains_allrrr�rI�matching_test_targets�"matching_test_targets_contains_all�matching_target_namess
          r#�find_matching_test_target_namesz0TargetCalculator.find_matching_test_target_namesssB���!�!�#�#�#�#�#�
 #�4�#:�;�;���$�$�U�+�+�+�(�)A�)-�)B�D�D��%*�d�.E�%E�"�%�6�<�<�#�&9�":�":�"%�d�&8�"9�"9�#:�<�<�<�l�l�6�5�!4�5�5�5�l�	�
!�"�"�"��.�����D�+�����	�
���������D�&�+�����	�
/�0�0�0�A�,�O�O��*H�+B�*-�.C�*D�*D�*-�d�.@�*A�*A�+B�'�*�F�F�F�3�/D�+E�+E�+.�/B�+C�+C�,D�F�F�F��	�
 �!�!�!�'�����D�&�+�����B�B�+@�B�B�B��)���"�"�5�)�)�)��G�n�n�n� � r%c��|���sJ�|j���D]	}d|_�
t	|���|j��}d|���vr.d�t|��t|j	��zD��}td��|D]}td|j���td��t|j
|��}d�|D��S)z*Returns the set of output compile targets.Fr
c��g|]}|��Srcrcr�s  r#r�zGTargetCalculator.find_matching_compile_target_names.<locals>.<listcomp>�s*��@�@�@��!�@�@�@r%z'Supplied test_targets & compile_targetsr�zFinding compile targetsc�b�g|],}tj�|j��d��-Srrrs  r#r�zGTargetCalculator.find_matching_compile_target_names.<locals>.<listcomp>�s?��+�+�+��
�J�+�+�F�K�8�8��;�+�+�+r%)rrr�rVr�rr	rrPrr3rUr�r)r]rIr�r�s    r#�"find_matching_compile_target_namesz3TargetCalculator.find_matching_compile_target_names�s9���!�!�#�#�#�#�#��&�-�-�/�/�����f�n�n�%�d�&H�&H�&J�&J�&*�&?�A�A����+�+�-�-�-�-�@�@�c�*:�&;�&;�&)�$�*<�&=�&=�'>�@�@�@��	�
3�4�4�4�"�����D�&�+�����	�
#�$�$�$�(��)>�)9�;�;�O�+�+�)�+�+�+�+r%N)
r_r`rarbr^rrrrr"rcr%r#rrYs{������J�J�	L�	L�	L�K�K�K����!�!�!�)!�)!�)!�V+�+�+�+�+r%rc��t��}	|�|��|jstd���t	t
j�|dj����}trtd|��t||j��rFtt|j��t|j|jz��d�}t!|fi|��dSt#|j|j|j|||||d��}|���s+t&ggd�}|jr
|j|d<t!|fi|��dS|���}|���}	|	p|}
||
rt.nt&tt1|	��t1|��z��d�}|jr
|j|d<t!|fi|��dS#t$r)}t!|t3|���	��Yd}~dSd}~wwxYw)
z2Called by gyp as the final stage. Outputs results.z<Must specify files to analyze via config_path generator flagr�r@)r�rrr�Nr�r�)rrr�r�)r�)rer�rhryr$rr"�abspathr@r2r3r��all_changed_string�listrkrjr�rr�no_dependency_stringr�rr"�found_dependency_stringrPr{)r�r�r�r~r�r@�result_dict�
calculatorrk�compile_target_names�found_at_least_one_targetr�s            r#�GenerateOutputr-�s{���8�8�&�0'�
�K�K������<����
�
���b�g�o�o�f�Y�.?�.L�M�M�N�N�L��*��N�L�)�)�)�!�&�&�,�7�7�
� 2�&*�6�+C�&D�&D�)-��>��0�1�*2�*2�4�4�k�
�6�)�)�[�)�)�)��f�!�&�,�"(�"H�"(�":�D�"-�|�\�"(��"7�	9�9�J�
�'�'�)�)�
� 4�&(�)+�.�.�k�
�	#�D�)3�)C��%�&��6�)�)�[�)�)�)��f�"�B�B�D�D��%�H�H�J�J�� 4� I�8I��$5�1�L�5�5�7K�'+��0�1�1��-�.�.�/�(0�(0�2�2�K��!�B�'1�'A�k�#�$���'�'�;�'�'�'�'�'��	�'�'�'���s�1�v�v�&�&�&�&�&�&�&�&�&�&�����'���s&�CG�$A(G�BG�
H�"H�H)3rb�
__future__r�
gyp.commonr��gyp.ninja_syntax�ninja_syntaxrurrF�sysr2r(r'r%r�r�r�rRr��CrossCompileRequested�$generator_supports_multiple_toolsets�4generator_wants_static_library_dependencies_adjusted�generator_default_variablesrG�unusedr$r-r9r>rArL�objectrNrer�r�r�r�r�r�r�r�r�r�r�r�r�r�rr-rcr%r#�<module>r9s���
:�:�x&�%�%�%�%�%�����'�'�'�'�'�'�����	�	�	�	�����
�
�
�
�
��,��(��-��
��&'�"�����'*�z�'G�'G�'I�'I�$�7<�4���-�/�/�G�).��g�&�&�%�+�+�F�)+��f�%�%�������$>�>�>�0L�L�L�������> +� +� +� +� +�V� +� +� +�FA�A�A�A�A�V�A�A�A�B���2���F�F�F�SF�SF�SF�l&�&�&�&���&
�
�
�(+�(+�(+�V���*?�*?�*?�Z���9�9�9�
>�>�>�9�9�9�.Y+�Y+�Y+�Y+�Y+�v�Y+�Y+�Y+�x3'�3'�3'�3'�3'r%