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/lib/python2.7/site-packages
Viewing File: /usr/lib/python2.7/site-packages/virtualenv.pyc
� M0�ic@s�dZddlZddlmZddlZejjd�r�xUejD]IZejj ejj e ��ejj e�kr�ejj e�nqKWnddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZddlm Z yddl!Z!Wne"k r�ddl#Z!nXdZ$e$Z%ej&dd fkr�d ej'�d GHd GHej(d �nye)Wne*k r e+Z)nXdej&dej&d fZ,ej-j.d�Z/e0ed�Z1ej-dkZ2ej-dkZ3ej-dkZ4e5edd�Z6ejj7d�Z8e2r�ejj e8d�Z9nejj e8d�Z9ejj e9d�Z:e1r�dZ;ne/rdZ;ndZ;e2 rd�Z<n9yddl=Z=Wne"k rHddl>Z=nXd�Z<d d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4gZ?d5d6gZ@ej&d \ZAZBeAdkr eBd kr�e?jCd7d8d9d:g�neBd;kr e?jCd<g�nneAd=kr'e?jCd9d7d8d:d>d<d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOg�eBdkr�dPeAe@d<neBd=kr�ddlDZDeDjEdQ�ZFe@jGeF�e?jCdRdSdTdUdVdWdXg�neBdYkre?jCdZd[d\g�neBd kr$e?jCd]g�nne1r_e?jCd^d8g�eAd=kr\e?jGd_�nnd`eHfda��YZIeIeIjJdejKfg�aLdb�ZMeNdc�ZOeNdd�ZPeNde�ZQdf�ZRdg�ZSdh�ZTdi�ZUdjejVfdk��YZWdlejXfdm��YZYdn�ZZeNe[e[eNe[e[e[do�Z\dp�Z]dq�Z^e[e_dr�Z`e_e_e_e[e[e_e_e_e_eNds� Zadt�Zbdu�Zcdv�Zddw�Zedx�Zfdy�ZgeNdz�Zhe[d{�Zid|�Zje[d}�Zkd~�ZleNd�ZmeNd��Znd��Zod��Zpd��Zqdd�ejrd= d�d�d�d�d�gZsd��Ztd��Zue[d��Zvd��Zwd��ZxeNd��Zydd��Zzd��Z{e{d��Z|e{d��Z}e{d��Z~e{d��Ze{d��Z�e{d��Z�e{d��Z�e{d��Z�e{d��Z�e{d��Z�e{d��Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�d�Z�eAd=kohe5ed��pwe5ed��Z�d�eHfd���YZ�d d��Z�d��Z�e�d�kr�eZ�ndS(�s&Create a "virtual" Python installationi����N(tquotetVIRTUALENV_INTERPRETER_RUNNING(t strtobool(tjoins15.1.0iis ERROR: %sis2ERROR: this script requires Python 2.6 or greater.ies python%s.%sitjavatpypy_version_infotwin32tcygwintdarwintabiflagstt~t virtualenvs .virtualenvsvirtualenv.initpypytjythontpythoncCsiS(N((((s./usr/lib/python2.7/site-packages/virtualenv.pytget_installed_pythonsOscCsytjtjd�}Wntk r-iSXd}g}xFtr�y'|jtj||��|d}Wq=tk r~Pq=Xq=Wt�}xR|D]J}ytj|d|�}Wntk r�q�nXt |d�||<q�Wtj |�x&t |�D]}||||d<q�W|S(NsSoftware\Python\PythonCoreiis%s\InstallPaths python.exe( twinregt CreateKeytHKEY_LOCAL_MACHINEt WindowsErrortTruetappendtEnumKeytdictt QueryValueRtCloseKeytsorted(t python_coretitversionstexestvertpath((s./usr/lib/python2.7/site-packages/virtualenv.pyRWs0          tostposixt posixpathtnttntpatht genericpathtfnmatchtlocalet encodingstcodecststattUserDicttreadlinetcopy_regttypestretsret sre_parset sre_constantst sre_compiletzlibs lib-dynloadtconfigtwarningst linecachet_abcolltabcit _weakrefsetitiotcopyregttempfiletrandomt __future__t collectionstkeywordttarfiletshutiltstructtcopyttokenizettokent functoolstheapqtbisecttweakreftreprlibs config-%stPLATDIRtbase64t _dummy_threadthashlibthmactimpt importlibt rlcompleteritoperatort_collections_abct _bootlocaletenumt tracebackt _functoolstLoggercBs�eZdZejZejZejejdZejZZej Z ej Z eeeee e gZ d�Z d�Z d�Zd�Zd�Zd�Zd�Zd �Zd �Zd d �Zd �Zd�Zd�Zd�Zed��ZRS(s� Logging object for use in command-line script. Allows ranges of levels, to avoid some redundancy of displayed information. icCs(||_d|_d|_t|_dS(Ni(t consumerstindenttNonet in_progresstFalsetin_progress_hanging(tselfR^((s./usr/lib/python2.7/site-packages/virtualenv.pyt__init__�s   cOs|j|j|||�dS(N(tlogtDEBUG(Rdtmsgtargstkw((s./usr/lib/python2.7/site-packages/virtualenv.pytdebug�scOs|j|j|||�dS(N(RftINFO(RdRhRiRj((s./usr/lib/python2.7/site-packages/virtualenv.pytinfo�scOs|j|j|||�dS(N(RftNOTIFY(RdRhRiRj((s./usr/lib/python2.7/site-packages/virtualenv.pytnotify�scOs|j|j|||�dS(N(RftWARN(RdRhRiRj((s./usr/lib/python2.7/site-packages/virtualenv.pytwarn�scOs|j|j|||�dS(N(RftERROR(RdRhRiRj((s./usr/lib/python2.7/site-packages/virtualenv.pyterror�scOs|j|j|||�dS(N(RftFATAL(RdRhRiRj((s./usr/lib/python2.7/site-packages/virtualenv.pytfatal�scOs|r|rtd��qn|p'|}d}x�|jD]�\}}|j||�r:|jr�|tjtjfkr�t|_tjj d�tjj �n|dkr�|r�||}n|}d|j |}nt |d�r�|j |d�q ||�q:q:WdS(Ns6You may give positional or keyword arguments, not boths t twrite( t TypeErrorR`R^t level_matchesRctsyststdouttstderrRbRwtflushR_thasattr(RdtlevelRhRiRjtrenderedtconsumer_leveltconsumer((s./usr/lib/python2.7/site-packages/virtualenv.pyRf�s*     cCs}|j s#td||jf��|j|j|j��rgtjj|�tjj�t |_ n t |_ ||_dS(Ns0Tried to start_progress(%r) while in_progress %r( RatAssertionErrorRyRnt _stdout_levelRzR{RwR}RRcRb(RdRh((s./usr/lib/python2.7/site-packages/virtualenv.pytstart_progress�s    sdone.cCs�|jstd��|j|j�r�|js_tjjd|j|d�tjj�q�tjj|d�tjj�nd|_t |_dS(Ns,Tried to end_progress without start_progresss...s ( RaR�tstdout_level_matchesRnRcRzR{RwR}R`Rb(RdRh((s./usr/lib/python2.7/site-packages/virtualenv.pyt end_progress�s    cCs-|jr)tjjd�tjj�ndS(saIf we are in a progress scope, and no log messages have been shown, write out another '.'t.N(RcRzR{RwR}(Rd((s./usr/lib/python2.7/site-packages/virtualenv.pyt show_progresss cCs|j||j��S(s9Returns true if a message at this level will go to stdout(RyR�(RdR((s./usr/lib/python2.7/site-packages/virtualenv.pyR�scCs4x*|jD]\}}|tjkr |Sq W|jS(s%Returns the level that stdout runs at(R^RzR{Rt(RdRR�((s./usr/lib/python2.7/site-packages/virtualenv.pyR�scCslt|t�r^|j|j}}|dk r>||kr>tS|dk rZ||krZtStS||kSdS(so >>> l = Logger([]) >>> l.level_matches(3, 4) False >>> l.level_matches(3, 2) True >>> l.level_matches(slice(None, 3), 3) False >>> l.level_matches(slice(None, 3), 2) True >>> l.level_matches(slice(1, 3), 1) True >>> l.level_matches(slice(2, 3), 1) False N(t isinstancetslicetstarttstopR`RbR(RdRR�R�R�((s./usr/lib/python2.7/site-packages/virtualenv.pyRyscCs?|j}|dkr|dS|t|�kr7|dS||S(Nii����(tLEVELStlen(tclsRtlevels((s./usr/lib/python2.7/site-packages/virtualenv.pytlevel_for_integer4s   (t__name__t __module__t__doc__tloggingRgRlRpRntWARNINGRrRtR�ReRkRmRoRqRsRuRfR�R�R�R�R�Ryt classmethodR�(((s./usr/lib/python2.7/site-packages/virtualenv.pyR]�s.                  cCsFtjj|�s2tjd|�tj|�ntjd|�dS(Ns Creating %ssDirectory %s already exists(R"R!texiststloggerRmtmakedirs(R!((s./usr/lib/python2.7/site-packages/virtualenv.pytmkdirAscCs<tjj|�r(tj|||�ntj||�dS(N(R"R!tisdirREtcopytreetcopy2(tsrctdesttsymlink((s./usr/lib/python2.7/site-packages/virtualenv.pyt copyfileordirHscCsytjj|�s&tjd|�dStjj|�rLtjd|�dStjjtjj|��s�tjdtjj|��tjtjj|��ntjj |�s�tjj |�}ntj |�}|rUt td�rUt rUtjd|�ytj||�Wquttfk rQtjd|�t|||�quXn tjd|�t|||�dS(Ns!Cannot find file %s (bad symlink)sFile %s already existss"Creating parent directories for %sR�s Symlinking %ss Symlinking failed, copying to %ss Copying to %s(R"R!R�R�RqRktdirnameRmR�tislinktabspathtreadlinkR~tis_winR�tOSErrortNotImplementedErrorR�(R�R�R�tsrcpath((s./usr/lib/python2.7/site-packages/virtualenv.pytcopyfileNs*cCs�tjj|�sTtjd|�t|d��}|j|jd��WdQXdSt|d��}|j�}WdQX||jd�kr�|s�tj d|�dStj d|�t|d��}|j|jd��WdQXntjd|�dS(Ns Writing %stwbsutf-8trbs6File %s exists with different content; not overwritingsOverwriting %s with new contentsContent %s already in place( R"R!R�R�RmtopenRwtencodetreadRo(R�tcontentt overwritetftc((s./usr/lib/python2.7/site-packages/virtualenv.pyt writefilehscCsFtjj|�r2tjd|�tj|�ntjd|�dS(NsDeleting tree %ss&Do not need to delete %s; already gone(R"R!R�R�RoREtrmtreeRm(tdir((s./usr/lib/python2.7/site-packages/virtualenv.pyR�{scCscttd�r_tj|�jd@}|dBd@}tj||�tjd|t|��ndS(Ntchmodi�imsChanged mode of %s to %s(R~R"R,tst_modeR�R�Rmtoct(tfntoldmodetnewmode((s./usr/lib/python2.7/site-packages/virtualenv.pytmake_exe�s cCsix\t|�D]N}tjtjj||��}|r tjj|d�r t|dfSq Wt|fS(Ni(treversedtglobR"R!RtisfileRRb(tfilenametdirsR�tfiles((s./usr/lib/python2.7/site-packages/virtualenv.pyt _find_file�s cCs�tjjtjjt��}|t|d�g}tjjtjjt��ddkr�yddl}Wntk r~q�X|j tjjtjj|j�d��ng|D]}tjj |�r�|^q�S(Ntvirtualenv_supportiR i����( R"R!R�R�t__file__RtsplitextR t ImportErrorRR�(thereR�R td((s./usr/lib/python2.7/site-packages/virtualenv.pytfile_search_dirs�s( tUpdatingDefaultsHelpFormattercBseZdZd�ZRS(s� Custom help formatter for use in ConfigOptionParser that updates the defaults before expanding them, allowing them to show up correctly in the help listing cCs;|jdk r(|jj|jj�ntjj||�S(N(tparserR`tupdate_defaultstdefaultstoptparsetIndentedHelpFormattertexpand_default(Rdtoption((s./usr/lib/python2.7/site-packages/virtualenv.pyR��s(R�R�R�R�(((s./usr/lib/python2.7/site-packages/virtualenv.pyR��stConfigOptionParsercBsGeZdZd�Zd�Zd�Zd�Zdd�Zd�ZRS(s} Custom option parser which updates its defaults by checking the configuration files and environmental variables cOsKtj�|_|j�|_|jj|j�tjj|||�dS(N( t ConfigParsertRawConfigParserR7tget_config_filesR�R�R�t OptionParserRe(RdRitkwargs((s./usr/lib/python2.7/site-packages/virtualenv.pyRe�scCs;tjjdt�}|r4tjj|�r4|gStgS(NtVIRTUALENV_CONFIG_FILE(R"tenvirontgetRbR!R�tdefault_config_file(Rdt config_file((s./usr/lib/python2.7/site-packages/virtualenv.pyR��scCsxi}|jt|jd���|jt|j���x6|j�D](\}}|jdd�}|jd�s�d|}n|j|�}|d k rH|s�qHn|j dkr�|j �}n d|_ |j dkr�t |� }n|j dkr t |�}ny|j ||�}Wn:tjk r_tj�d}d |GHtjd �nX|||j<qHqHW|S(s� Updates the given defaults with values from the config files and the environ. Does a little special handling for certain types of options (lists). R t_t-s--s--%sRit store_falset store_truetcounts*An error occurred during configuration: %siN(R�scount(tupdateRtget_config_sectiontget_environ_varstitemstreplacet startswitht get_optionR`tactiontsplittnargsRt convert_valueR�tOptionValueErrorRztexc_infotexitR�(RdR�R7tkeytvalR�te((s./usr/lib/python2.7/site-packages/virtualenv.pyR��s4    cCs&|jj|�r"|jj|�SgS(s2 Get a section of a configuration (R7t has_sectionR�(Rdtname((s./usr/lib/python2.7/site-packages/virtualenv.pyR��st VIRTUALENV_ccsSxLtjj�D];\}}|j|�r|j|d�j�|fVqqWdS(sX Returns a generator with all environmental vars with prefix VIRTUALENV R N(R"R�R�R�R�tlower(RdtprefixR�R�((s./usr/lib/python2.7/site-packages/virtualenv.pyR��scCs�|jstj|j�S|j|jj��}x]|j�D]O}|j|j�}t |t �r>|j �}|j ||�||j<q>q>Wtj|�S(s� Overridding to make updating the defaults after instantiation of the option parser possible, update_defaults() does the dirty work. ( tprocess_default_valuesR�tValuesR�R�RGt_get_all_optionsR�R�R�t basestringtget_opt_stringt check_value(RdR�R�tdefaulttopt_str((s./usr/lib/python2.7/site-packages/virtualenv.pytget_default_values�s   ( R�R�R�ReR�R�R�R�R(((s./usr/lib/python2.7/site-packages/virtualenv.pyR��s   (  c Cs�tdtdddt��}|jddddd d d d d d�|jddddd dd d d d�|jddd dddd dtj�|jdd dddd d�|jdt�|jdd dddd d �|jd!d dddd d"�|jd#d d$ddd td d%�|jd&d d'ddd d(�|jd)d d*ddd d+�|jd,d d-ddd d.�|jd/d d0ddd d1�|jd2d d3ddd d4�t �}|jd5d d6dd7dd8d |d d9�|jd:d d;ddd d<�|jd=d>d d;ddd d?�|jd@d dAd dB�|jdCd dDddd dE�|jdFd dGddd dE�dHt �kr�t |�n|j �\}}dIt �kr�t ||�n|j|j}ttjdJ|�tjfg�a|jr�tjjdK� r�tjj�}t|j�}|tjkrotjdL|�q�tjdM|�dN|dK<t}|jdO�r�|dP }ntj||gtj dQdR|�}t!|j"���n|s dSGH|j#�tj$dJ�nt%|�dQkrJdTdUj&|�GH|j#�tj$dJ�n|d } tj'j(| �r�tj'j)| �r�tj*dV�tj*dW�tj$dX�ntjjdY�r�tj*dZ�tj*d[�tj$dX�nd\tjkrtjd]�tjd\=n|j+rt,| �dSt-| d^|j.d|j/d'|j0dA|j1d6|j2d;|j3d-|j4d0|j5d3|j6d$|j7� d_t �kr�t8|| �ndS(`Ntversiontusages%prog [OPTIONS] DEST_DIRt formatters-vs --verboseR�R�R�tverboseRithelpsIncrease verbosity.s-qs--quiettquietsDecrease verbosity.s-ps--pythonRtmetavart PYTHON_EXEs�The Python interpreter to use, e.g., --python=python2.5 will use the python2.5 interpreter to create the new environment. The default is the interpreter that virtualenv was installed with (%s)s--cleartclearR�s6Clear out the non-root install and start from scratch.tsystem_site_packagess--no-site-packagesR�s|DEPRECATED. Retained only for backward compatibility. Not having access to global site-packages is now the default behavior.s--system-site-packagess@Give the virtual environment access to the global site-packages.s --always-copyR�s)Always copy files rather than symlinking.s--unzip-setuptoolstunzip_setuptoolss$Unzip Setuptools when installing it.s --relocatablet relocatablesmMake an EXISTING virtualenv environment relocatable. This fixes up scripts and makes all .pth files relative.s--no-setuptoolst no_setuptoolss0Do not install setuptools in the new virtualenv.s--no-piptno_pips)Do not install pip in the new virtualenv.s --no-wheeltno_wheels+Do not install wheel in the new virtualenv.s--extra-search-dirt search_dirsRtDIRs^Directory to look for setuptools/pip distributions in. This option can be used multiple times.s --downloadtdownloads)Download preinstalled packages from PyPI.s --no-downloads--never-downloads0Do not download preinstalled packages from PyPI.s--prompttprompts;Provides an alternative prompt prefix for this environment.s --setuptoolst setuptoolssPDEPRECATED. Retained only for backward compatibility. This option has no effect.s --distributet distributet extend_parsertadjust_optionsiRsAlready using interpreter %ss&Running virtualenv with interpreter %sttrues.pyci����itenvsYou must provide a DEST_DIRs7There must be only one argument: DEST_DIR (you gave %s)Rvs2ERROR: File already exists and is not a directory.s3Please provide a different path or delete the file.it WORKING_ENVs6ERROR: you cannot run virtualenv while in a workingenvs:Please deactivate your workingenv, then re-run this scriptt PYTHONHOMEsFPYTHONHOME is set. You *must* activate the virtualenv before using itt site_packagest after_install(9R�tvirtualenv_versionR�t add_optionRzt executablet set_defaultsRbRR�tglobalsRt parse_argsRRR R]R�R{R�RR"R�R�RGtresolve_interpreterRqRoR�tendswitht subprocesstPopentargvt SystemExittwaitt print_helpR�R�RR!R�R�RuRtmake_environment_relocatabletcreate_environmentRR RRRRRRRR�R!( R�tdefault_search_dirstoptionsRit verbosityRt interpretertfiletpopenthome_dir((s./usr/lib/python2.7/site-packages/virtualenv.pytmains<       %  &   $                   c Cs�g}x�|D]�} t| �dkr>| d d| d} nd| ksnd| ksnd| ksnd| kr�d | jdd �} nt| d �r�y| jtj��} Wq�tk r�| jtj��} q�Xn|j| �q Wdj |�} |r d} n t j } t jd | �|s0|r�tjj�} |rU| j|�n|r�x!|D]} | j| d�qbWq�nd} yIt j|d t jd|dkr�dnt j d| d|d| �}Wn;tk rtj�d}t jd|| f��nXg}| dk rH|dk rM|jj|�|jj�n|j} tj�}tj�}x�| j�}y|j|�}Wn tk r�|j|�}nX|s�Pn|j�}|j|�|r5||�}t|t �r|\}}nt j!||�t j"|�sBt j#�qBqqt j$|�qqn |j%|�|j&�|j'r�|r�|r�t j(d| �t j(dj |�d�nt)d| |j'f��q�t j*d| |j'f�ndS(Ni-is...i��Rvs t"t's"%s"s\"tdecodesRunning command %sR|tstdinR{tcwdRis#Error %s while executing command %ss Complete output from command %s:s) ----------------------------------------s$Command %s failed with error code %ssCommand %s had error code %s(+R�R�R~R<RztgetdefaultencodingtUnicodeDecodeErrortgetfilesystemencodingRRR`R*tPIPER�RkR"R�RGR�tpopR+tSTDOUTt ExceptionR�RuR=RwtcloseR{R.trstripR�ttupleRfR�R�Rmt communicateR.t returncodeRoR�Rq(tcmdt show_stdoutt filter_stdoutR>traise_on_returncodet extra_envtremove_from_envR=t cmd_partstparttcmd_descR{RtvarnametprocR�t all_outputtencodingt fs_encodingtlineR((s./usr/lib/python2.7/site-packages/virtualenv.pytcall_subprocess�s� 0                   cCs#|j�jd�rtjStjS(Ntrunning(tstripR�R]RlRg(RY((s./usr/lib/python2.7/site-packages/virtualenv.pytfilter_install_output#scCs�g}x||D]t}xk|D]O}tjtjj||d��}|r|jtjj|d��PqqWtjd|f�q W|S(s�Find wheels from which we can import PROJECTS. Scan through SEARCH_DIRS for a wheel for each PROJECT in turn. Return a list of the first wheel found for each PROJECT s-*.whlisCannot find a wheel for %s(R�R"R!RRR�R�Ru(tprojectsRtwheelstprojectR�R�((s./usr/lib/python2.7/site-packages/virtualenv.pyt find_wheels(s  "c s�|dkrt�}ntddg|�}tjj|�}y$ddlm�ddlm �Wn1t k r�ddl m�ddl m �nX��fd��dj�fd�|D��}t jd �jd �}|d g|}tjd d j|��tjd7_i|d6|d6|d6dd6dd6dd6} |s\d| d<nz t|dtd| d|�Wdtjd8_tj�XdS(NRtpipi����(turljoin(t pathname2urlcs/d|kr|S�d�tjj|���S(NRvsfile:(R"R!R�(tp(RdRc(s./usr/lib/python2.7/site-packages/virtualenv.pytspace_path2urlRs Rvc3s|]}�|�VqdS(N((t.0R�(Rf(s./usr/lib/python2.7/site-packages/virtualenv.pys <genexpr>Vss import sys import pkgutil import tempfile import os import pip try: cert_data = pkgutil.get_data("pip._vendor.requests", "cacert.pem") except IOError: cert_data = None if cert_data is not None: cert_file = tempfile.NamedTemporaryFile(delete=False) cert_file.write(cert_data) cert_file.close() else: cert_file = None try: args = ["install", "--ignore-installed"] if cert_file is not None: args += ["--cert", cert_file.name] args += sys.argv[1:] sys.exit(pip.main(args)) finally: if cert_file is not None: os.remove(cert_file.name) tutf8R�sInstalling %s...s, it PYTHONPATHt JYTHONPATHtPIP_FIND_LINKSt1t PIP_USE_WHEELs:all:tPIP_ONLY_BINARYt0tPIP_USERt PIP_NO_INDEXRLROR=(R`R�RaR"tpathsepRturlparseRcturllibRdR�t urllib.parseturllib.requestttextwraptdedentR�R�R�R_RZRbR�( t project_namest py_executableRRR_t pythonpatht findlinkstSCRIPTRKR((RdRfRcs./usr/lib/python2.7/site-packages/virtualenv.pyt install_wheelBs<      c  Cs�t|�\}} } } tjjt|| | | d|d|d| ��}t|�g}|sq|jd�n|s�|jd�n| s�|jd�n|r�t|||d|�nt|| |�t || |�dS( s� Creates a new environment in ``home_dir``. If ``site_packages`` is true, then the global ``site-packages/`` directory will be on the path. If ``clear`` is true (default False) then the environment will first be cleared. R R R�RRbtwheelRN( tpath_locationsR"R!R�tinstall_pythontinstall_distutilsRR~tinstall_activatetinstall_python_config(R8R R RRRRRRRR�tlib_dirtinc_dirtbin_dirRzt to_install((s./usr/lib/python2.7/site-packages/virtualenv.pyR1�s(   cCs%tjj|�o$tj|tj�S(N(R"R!R�taccesstX_OK(tfpath((s./usr/lib/python2.7/site-packages/virtualenv.pytis_executable_file�sc Cs�tjj|�}trt|�d|kr�ddl}|jjj}t t |�dd�}|j |�}y t }Wnt k r�t}nX|||�||�}|s�d|GHdGHdGHtjd �nt|j�}nt|d �}t|d �}t|d �} ntrNt|d �}t|d �}t|d �} nmtr{|}t|d�}t|d �} n@ts�t|dt�}t|dtt�}t|d �} n|||| fS(s^Return the path locations for the environment (where libraries are, where scripts go, etc)Rvi����Niis&Error: the path "%s" has a space in its1We could not determine the short pathname for it.sExiting.itLibtIncludetScriptstbintincludetlib(R"R!R�R�R�tctypestwindlltkernel32tGetShortPathNameWtmaxR�tcreate_unicode_buffertunicodet NameErrortstrRzR�tvalueRt is_jythontis_pypyt py_versionR ( R8R�tGetShortPathNametsizetbuftutretR�R�R�((s./usr/lib/python2.7/site-packages/virtualenv.pyR��sF       c Cs�tjg}tr�|jtjjdtjd d�tjjtjddd�tjjddd tjd d�tjjdd ddtjd d�tjjddd tjd ddd�f�nttd �r�|j tj �nttd �r |j tj �nt t tjj|��}t t tjj|��}t|d tdt�}tjj|�}tr�|ddkr�|dj�|d}nxOt|�D]A\}}tr�|ddkr�|dj�|d||<q�q�Wxw|D]o}|j|�r�|j|d�\}}|tjkrX|dtjksKt�|d}nt||�Sq�Wts�td||f��dS(Ns/Library/Pythonis site-packagestExtrasR�RR tLibrarytPythons.localt real_prefixt base_prefixR�treverseitabcdefghijklmnopqrstuvwxyzis9Filename %s does not start with any of these prefixes: %s(RzR�t is_darwintextendR"R!RRR~RR�R�tlisttmapt expanduserR�RR�RR�tuppert enumerateR�R�tsepR�Rb(R�t dst_prefixtprefixesRR�t src_prefixR�trelpath((s./usr/lib/python2.7/site-packages/virtualenv.pyt change_prefix�s< "%2#   c Cs�ddl}xmtD]e}|tjkr?tjd|�qny|j|�\}}}Wn"tk rtjd|�qX|dk r�|j �n|dkr�tj dkr�t p�|j t dd�� r�t |dd tjd d�}n-|dkrtj d krnt||�}t|||�|j d �r|d }tjj|�rxt||d |�qxqqWdS( Ni����s&Ignoring built-in bootstrap module: %ss"Cannot import bootstrap module: %sR.Rs lib-dynloads readline.soR�spython%siRs.pyc(RTtREQUIRED_MODULESRztbuiltin_module_namesR�Rmt find_moduleR�R`RFtplatformR�R)RRR�R�R"R!R�( R�R�RTtmodnameR�R�R�t dst_filenametpyfile((s./usr/lib/python2.7/site-packages/virtualenv.pytcopy_required_moduless,     # cCs�x�dD]{}xrdD]j}t|d||�}t|d||�}tjj|�rtjj|� rt|||�qqWqWdS(s. copy tcl/tk libraries on Windows (issue #93) s8.5s8.6ttclttkN(s8.5s8.6(R�R�(RR"R!R�R�(R�R�R�t libversiontlibnametsrcdirtdestdir((s./usr/lib/python2.7/site-packages/virtualenv.pyt copy_tcltk0s   %cCsotjj|�}tjj|�}tjj|�}|j|�s\tjd||�dS|j||d�S(NsPath not in prefix %r %ri(R"R!tnormpathR�R�RqR�(t prefix_pathR�R8((s./usr/lib/python2.7/site-packages/virtualenv.pyt subst_path;sc7 Cstjj|�rdGHdS|r>t|�tjd|�nttd�rmtjdtj�tj}n8ttd�r�tjdtj�tj}n tj }t |�t ||�t j jt j�g}tr|jtt j j|d�d ��n#tr&|jt|dd ��ntt d �rEtjd �n tjd �tjd7_z�x�|D]�} t j j| �s�qknxjt j| �D]Y} t j j| �d} | d kr�| tkr�tt| | �t|| �|�q�q�WqkWt||�Wdtjd8_Xtr4t|||�nt t|d ��ddl} | j} | jd�sz| jd�r�| d } n$| jd�r�| jdd�} nt | |�}t j j|�}t!|t"�t!t|d�|�t|d�}|st!|d�nt#s tr2t|d�}nt|dt$t%�}t j j&|�rmt|||�ntj'd|�t(j)j*dd�}||kr�t(j)j*ddd|�}||kr�t+|||�}n|r�t|||�q�ntj,|kr�t# r�tr(ttj,d�}n0t-rCttj,d�}nttj,dt$�}x<t j|�D](} tt|| �t|| �|�qhWnt-rSxKdgD]C}t||�}t j j&|�r�t|t||�|�q�q�Wt|d!�}t j j&|�r+t|t|d!�d t.�ntt|d"�t|d"�d t.�nt |�t|t j j/tj��}d#|kr�t j0j1d$�r�t j0d$=nt2j3d%|�r�t j jt j j|�d&�}q�ntjd't4|�t j jtj�}t j j|d d(�}trst j j&t j j|d)��rstjd*|�tjd+�t!||�n9d}t j j&|�r�tjd,|�t j6|�ntj|kr� tj}t7j||�t8|�ts�t9rc t j jt j jtj�d-�}t j j&|�r[tjd.�t7j|t j jt j j|�d-��nt j jt j jtj�d/�}t j jt j j|�d/�}t j j&|�r�tjd0�t7j||�n/t j j&|�rtjd1�t j6|�nd2tj:dtj:df}d3tj:dtj:df}t j jt j jtj�|�} t j jt j jtj�|�}!t j jt j j|�|�}"t j j&| �r�tjd4|�t7j| t j jt j j|�|��nt j j&|!�r- tjd4|�t7j|!|"�qc t j j&|"�rc tjd5|"�t j6|"�qc nt#r� t j jt j j|�d&�}#tj;dhkr� |#d87}#ntjd9|#�t||#|�tr� xcd:d;d<d=d>d?d@dAgD]C}t||�}t j j&|�r� t|t||�|�q� q� Wx=tj D]}$|$jdB�r= Pq= q= Wtj<dC�t=dD��tjdE�t|$t j j|dB�|�q� q� nt j jt j j/|��dt4kr� t j jt j j|�t4�}%t j j|�d}&|&j>�d8kr& |%|&7}%nt j j&|%�rU tj?dFt4|%|f�q� tjdG|%�t7jtj|%�t8|%�ndH|kr� d#|kr� tj'dI�t j j|dJ�}'ndK|kr� tj'dL�t j j|dM�}'nt7j@|'|�t j j|dN�}(t j j&|(�r; t j6|(�ntt j j|dO�|(|�y#tA|t j j|dO�dP�Wq� tjB�d})tj?dQ|)�y,tCdRdSt j j|dO�dP|g�Wq� tj<dT��q� Xq� Xnts� dUtj:d}*dVtj:dtj:df}+d&},|,|*|+g}-t j j/|�}.|.|-kri |-jD|.�nxk|-D]`}/t||/�}0t j j&|0�r� t j6|0�n|r� t jE|.|0�qp t||0|�qp Wn|dWdXg}1tjdYtF|1��y.tGjH|1dZtGjI�}2|2jJ�\}3}4Wn`tKk r�tjB�d})|)jLtLjMkr�tj<d[||)f�tjNd\�q�|)�nX|3jO�jPd]�}3t j jQt j jR|3��}3t j jQt j jR|��}5t|5d^�r|5jPtjS��}5n|3|5krmtj<d_|�tj<d`|3|5f�tj<da�tr]tj<db�ntjNd\�ntjdc|3�t j jTdd�}6t j j&|6�r�tjde|6�ntU||�|r�t j j&|�r�tjdf|�t j6|�q�n|S(is;Install just the base environment, no distutils patches etcs1Please use the *system* python to run this scriptNsNot deleting %sR�sUsing real prefix %rR�sUsing base prefix %ritDLLss site-packagesR�s#Symlinking Python bootstrap moduless Copying Python bootstrap modulesii����s.pycs.pyos $py.classs.pysorig-prefix.txtsno-global-site-packages.txtR R�sNo include dir %st plat_specificiR�R�R�sjython-dev.jartjavalibs jython.jartregistrytcachedirsPython.frameworkt__PYVENV_LAUNCHER__s/Python(?:-32|-64)*$RsNew %s executable in %ssvirtualenv_builddir_pyd.pths build.bats/Detected python running from build directory %ss<Writing .pth file linking to build directory for *.pyd filess;Deleting %s (not Windows env or not build directory python)s pythonw.exesAlso created pythonw.exes python_d.exesAlso created python_d.exes5Removed python_d.exe as it is no longer at the sourcespython%s%s.dllspython%s%s_d.dllsAlso created %ss'Removed %s as the source does not existRRs.exesAlso created executable %ss libexpat.dlls libpypy.dlls libpypy-c.dlls libeay32.dlls ssleay32.dlls sqlite3.dlls tcl85.dllstk85.dlltlib_pypys#Could not find lib_pypy in sys.pathisCopying lib_pypys7Not overwriting existing %s script %s (you must use %s)sAlso creating executable in %ss .frameworks MacOSX Python framework detecteds*Resources/Python.app/Contents/MacOS/PythontEPDsEPD framework detecteds bin/pythons.PythonR�s@executable_path/../.PythonsKCould not call mach_o_change: %s. Trying to call install_name_tool instead.tinstall_name_tools-changesUCould not call install_name_tool -- you must have Apple's development tools installedspython%ss python%s.%ss-csWimport sys;out=sys.stdout;getattr(out, "buffer", out).write(sys.prefix.encode("utf-8"))s"Testing executable with %s %s "%s"R{s-ERROR: The executable %s could not be run: %sidsutf-8R<s+ERROR: The executable %s is not functionings0ERROR: It thinks sys.prefix is %r (should be %r)sBERROR: virtualenv is not compatible with this system or executables�Note: some Windows users have reported this error when they installed Python for "Only this user" or have multiple versions of Python installed. Copying the appropriate PythonXX.dll to the virtualenv Scripts/ directory may fix this problem.sGot sys.prefix result: %rs~/.pydistutils.cfgsHPlease make sure you remove any previous custom paths from your %s file.s Deleting %s(sjython-dev.jarR�s jython.jar(swin32scygwin(VRzR$R�R�R�RoR~R�R�R�R�t fix_lib64R"R!R�R�R�RRR�RmR_R�tlistdirR�tREQUIRED_FILESR�R�R�tsiteR)R�R�R�tSITE_PYR�R�R R�Rkt distutilst sysconfigtget_python_incR�t exec_prefixR�RbtbasenameR�R�R1tsearcht expected_exeR`tunlinkRER�t is_cygwint version_infoR�RuR-R�RqRGt mach_o_changeR�RZtremoveR�RHR*R+RBRIR�terrnotEACCESR�R\R<tnormcaseR�RAR�tfix_local_scheme(7R8R�R�R�R R R�R�t stdlib_dirst stdlib_dirR�tbnR�t site_filenametsite_filename_dsttsite_dirtsite_packages_filenamet stdinc_dirt platinc_dirt platinc_desttexec_dirR�R�Rzt pcbuild_dirtpyd_pthR$tpythonwtpython_dt python_d_desttpy_executable_dlltpy_executable_dll_dt pythondllt pythondll_dtpythondll_d_desttpython_executableR�t secondary_exetpy_executable_exttoriginal_pythont virtual_libR�tpy_exe_version_majortpy_exe_version_major_minortpy_exe_no_versiontrequired_symlinkstpy_executable_basetpthtfull_pthRKRUt proc_stdoutt proc_stderrt norm_home_dirt pydistutils((s./usr/lib/python2.7/site-packages/virtualenv.pyR�Es      )  -        )       '    $ .$!  $$!.!       ((                          c Cs�tstr�tjdkr�itd6td6td6}tjj|j tj d��\}}|ridpld|d |f}d ||f}t j d |�|d <n!it d 6}t |d <t |d <t|d<t||||�dS(NR%s activate.batsdeactivate.bats activate.ps1t/s/%s%ss%s%sisL$(if [ "$OSTYPE" "==" "cygwin" ]; then cygpath -u '%s'; else echo '%s'; fi;)t__VIRTUAL_ENV__tactivates activate.fishs activate.cshsactivate_this.py(R�R�R"t_namet ACTIVATE_BATtDEACTIVATE_BATt ACTIVATE_PSR!t splitdriveR�R�t ACTIVATE_SHt ACTIVATE_FISHt ACTIVATE_CSHt ACTIVATE_THISt install_files(R8R�RR�tdrivettailt home_dir_msyst home_dir_sh((s./usr/lib/python2.7/site-packages/virtualenv.pyR��s '      cCs(t|d�r'|jtj��}ntjj|�}x�|j�D]�\}}|d krgt}n d�}|j d||p�d��}|j d||p�d |��}|j d ||��}|j d ||��}|j d |tjj|���}t tjj ||�|�qFWdS(NR<Rs activate.cshs activate.fishcSs|S(N((ts((s./usr/lib/python2.7/site-packages/virtualenv.pyt<lambda>�st__VIRTUAL_PROMPT__R t__VIRTUAL_WINPROMPT__s(%s)Rt__VIRTUAL_NAME__t __BIN_NAME__(sactivates activate.cshs activate.fish( R~R<RzRAR"R!R�R�t _shell_quoteR�R�R(R8R�RR�tvnameR�R�R((s./usr/lib/python2.7/site-packages/virtualenv.pyR�s   "$cCs�tjdks$tr-tjdkr-i}n itd6}t||||�x3|j�D]%\}}ttj j ||��qZWdS(NRR%s python-config( RzR�R�R"Rt PYTHON_CONFIGRR�R�R!R(R8R�RR�R�R�((s./usr/lib/python2.7/site-packages/virtualenv.pyR��s $  cCstttjd|�}t|�tjj|�}ttjj|d�t �ttjj|d�t dt �dS(Nis __init__.pys distutils.cfgR�( R�R�t__path__R�R"R!R�R�RtDISTUTILS_INITt DISTUTILS_CFGRb(R8tdistutils_path((s./usr/lib/python2.7/site-packages/virtualenv.pyR��s  cCs�yddl}Wntk r#n�X|j�dkr�tjj|d�}tjj|�s�tj|�xftj|�D]R}|dkr�qznt tjj tjj||��tjj||�|�qzWq�ndS(s� Platforms that use the "posix_local" install scheme (like Ubuntu with Python 2.7) need to be given an additional "local" location, sigh. i����Nt posix_localtlocal( R�R�t_get_default_schemeR"R!RR�R�R�R�R�(R8R�R�t local_patht subdir_name((s./usr/lib/python2.7/site-packages/virtualenv.pyR��s   !cCsTtrtjd�dSgtjj�j�D]'}t|t�r-d|kr-|^q-s^dStjd�t j j |�dt j d ks�td|��t j j|�}t j j|�}t j j|d�}t j j|d�}t j j |�dkstd |��t j j|�r*dS|rCt jd|�n td|�dS( s� Some platforms (particularly Gentoo on x64) put things in lib64/pythonX.Y instead of lib/pythonX.Y. If this is such a platform we'll just create a symlink so lib64 points to lib s(PyPy detected, skipping lib64 symlinkingNtlib64s/This system uses lib64; symlinking lib64 to libspython%sisUnexpected python lib dir: %rR�sUnexpected parent dir: %r(R�R�RkR�R�tget_config_varstvaluesR�R�R"R!R�RzRR�R�RtlexistsR�R�(R�R�Ret lib_parentt top_levelt lib64_link((s./usr/lib/python2.7/site-packages/virtualenv.pyR��s( ' &  cCs|}t�}||kr(||}ntjj|�|kr�tjjdd�jtj�}x?|D]4}tjjt ||��rht ||�}PqhqhWntjj|�s�t j d||f�t d��nt |�s t j d||f�t d��n|S(sZ If the executable given isn't an absolute path, search $PATH for the interpreter tPATHR s-The path %s (from --python=%s) does not existis8The path %s (from --python=%s) is not an executable file(RR"R!R�R�R�R�RrR�RR�RuR-t is_executable(texetorig_exetpython_versionstpathsR!((s./usr/lib/python2.7/site-packages/virtualenv.pyR(s"   !   cCs%tjj|�o$tj|tj�S(sChecks a file is executable(R"R!R�R�R�(R:((s./usr/lib/python2.7/site-packages/virtualenv.pyR9)scCsnt|�\}}}}tjj|d�}tjj|�sStjd|�nt||�t|�dS(s� Makes the already-existing environment use relative paths, and takes out the #!-based environment selection in scripts. sactivate_this.pyscThe environment doesn't have a file %s -- please re-run virtualenv on this environment to update itN( R�R"R!RR�R�Rut fixup_scriptstfixup_pth_and_egg_link(R8R�R�R�t activate_this((s./usr/lib/python2.7/site-packages/virtualenv.pyR00s  spython%sRs activate.batsactivate_this.pys activate.fishs activate.cshc Cs^tr7dtjjtjjdd��ddf}ndtjd df}dtjjtjjtjj |�d |d ��}d |}x�tj |�D]�}tjj||�}tjj |�s�q�nd}t |d ��=}y|j�jd �j�}Wntk r w�nXWdQX|sDtjd|�q�n|dj�}|dd !tjj|d �}|j|�s�tjj|�tkr�tjd|�q�|dj�|kr�tjd|�q�tjd||f�q�ntjd|�t|g|d�} t |d��&}|jdj| �jd ��WdQXq�WdS(Ns%s /ctCOMSPECscmd.exeR s.exes /usr/bin/envis#!%sspython%sis#!%s python%s%sR�sutf-8sScript %s is an empty fileisCannot make script %s relatives(Script %s has already been made relativesPScript %s cannot be made relative (it's not a normal script that starts with %s)sMaking script %s relativeiR�s (R�R"R!R�R�R�RzRRR�R�R�R`R�R�R<t splitlinesR@R�RqR\R�R�tOK_ABS_SCRIPTSRkRmRotrelative_scriptRwR�( R8R�tnew_shebang_argstshebangt new_shebangR�tlinesR�t old_shebangtscript((s./usr/lib/python2.7/site-packages/virtualenv.pyR>CsD"$   ! cCs�d}d}xSttt|���D]9\}}|j�d dddgkr%|d}Pq%q%W|dkrwd}n|| d|dg||S( s:Return a script that'll work in a relocatable environment.s�import os; activate_this=os.path.join(os.path.dirname(os.path.realpath(__file__)), 'activate_this.py'); exec(compile(open(activate_this).read(), activate_this, 'exec'), dict(__file__=activate_this)); del os, activate_thisitfromRAtimportiR N(R`R�R�R�R�(RHRt activate_attidxRY((s./usr/lib/python2.7/site-packages/virtualenv.pyRDts%   cCsotjjtjj|��}|dkr6tj}nx2|D]*}|sRd}ntjj|�sjq=ntjjtjj|��}|j|�s�tj d|�q=nx�tj |�D]�}tjj ||�}|j d�rtj |tj�stjd|�qt|�n|j d�r�tj |tj�sVtjd|�qct|�q�q�Wq=WdS(s1Makes .pth and .egg-link files use relative pathsR�s.Skipping system (non-environment) directory %ss.pths#Cannot write .pth file %s, skippings .egg-links(Cannot write .egg-link file %s, skippingN(R"R!R�R�R`RzR�R�R�RkR�RR)R�tW_OKRqtfixup_pth_filetfixup_egg_link(R8tsys_pathR!R�((s./usr/lib/python2.7/site-packages/virtualenv.pyR?�s,     c CsDg}g}t|��}|j�}WdQXx�|D]�}|j�}| s�|jd�s�|jd�s�tjj|�|kr�|j|�q4t||�}||kr�t j d|||f�n|j|�q4W||kr�t j d|�dSt j d|�t|d��!}|j dj|�d�WdQXdS(Nt#simport sRewriting path %s as %s (in %s)sNo changes to .pth file %ss%Making paths in .pth file %s relativetws (R�t readlinesR\R�R"R!R�Rtmake_relative_pathR�RkRmRoRwR(R�RHt prev_linesR�RYt new_value((s./usr/lib/python2.7/site-packages/virtualenv.pyRP�s&  %  cCs�t|��}|j�j�}WdQXtjj|�|krTtjd|�dSt||�}tj d|||f�t|d��}|j |�WdQXdS(NsLink in %s already relativesRewriting link %s in %s as %sRT( R�R.R\R"R!R�R�RkRVRoRw(R�R�tlinktnew_link((s./usr/lib/python2.7/site-packages/virtualenv.pyRQ�scCsNtjj|�}|s?tjj|�}tjj|�}ntjjtjj|��}tjjtjj|��}|jtjj�jtjj�}|jtjj�jtjj�}x>|r|r|d|dkr|j d�|j d�q�Wdgt |�|}|s1|j |�n|s;dStjjj |�S(s* Make a filename relative, where the filename is dest, and it is being referred to from the filename source. >>> make_relative_path('/usr/share/something/a-file.pth', ... '/usr/share/another-place/src/Directory') '../another-place/src/Directory' >>> make_relative_path('/usr/share/something/a-file.pth', ... '/home/user/src/Directory') '../../../home/user/src/Directory' >>> make_relative_path('/usr/share/a-file.pth', '/usr/share/') './' is..s./( R"R!R�R�R�R�R\R�R�RCR�RR(tsourceR�tdest_is_directoryt dest_filenamet dest_partst source_partst full_parts((s./usr/lib/python2.7/site-packages/virtualenv.pyRV�s"$$# cCs{t}|jd�r"|d }ntj|ddd��}|j�}WdQXd|}d|d |}|jd |�S( s\ Creates a bootstrap script, which is like this script but with extend_parser, adjust_options, and after_install hooks. This returns a string that (written to disk of course) can be used as a bootstrap script with your own customizations. The script will be the standard virtualenv.py script, with your extra text added (your extra text should be Python code). If you include these functions, they will be called: ``extend_parser(optparse_parser)``: You can add or remove options from the parser here. ``adjust_options(options, args)``: You can change options here, or change the args (if you accept different kinds of arguments, be sure you modify ``args`` so it is only ``[DEST_DIR]``). ``after_install(options, home_dir)``: After everything is installed, this function is called. This is probably the function you are most likely to use. An example would be:: def after_install(options, home_dir): subprocess.call([join(home_dir, 'bin', 'easy_install'), 'MyPackage']) subprocess.call([join(home_dir, 'bin', 'my-package-script'), 'setup', home_dir]) This example immediately installs a package, and runs a setup script from that package. If you provide something like ``python_version='2.5'`` then the script will start with ``#!/usr/bin/env python2.5`` instead of ``#!/usr/bin/env python``. You can use this when the script must be run with a particular Python version. s.pyci����trRWsutf-8Nspython%ss#!/usr/bin/env %s s### WARNING: This file is generated s ##EXTEND##(R�R)R+R�R�R�(t extra_texttpython_versionR�R�R�tpy_exe((s./usr/lib/python2.7/site-packages/virtualenv.pytcreate_bootstrap_script�s(  cCs.tj|jd��}tj|�jd�S(Ntasciisutf-8(RPt b64decodeR�R6t decompressR<(Rtb((s./usr/lib/python2.7/site-packages/virtualenv.pytconvertss.* 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 AVijEPwfucjncQ== s eJytVd9v2kAMfs9fYQLq2m4MscdNVKMqEkgFKsKYtnW6HolpooULurvQ0h//+3xJCAlp2cOaB0ji z77P9menDlM/ULAIQoRlrDTMEWKFHtwF2gdbRbF0EeaBaHFXB2uu0YbThYyWMOfKP7XqsIlicLkQ kQYZCwg0eIFEV4cby/Jw6wXHJ/BoAV2xUKihuYDVxotcOGt5uG6JOAzh09lR20owdZBoUFHoAYp1 ICOxRKFhzWXA5yGqDFWDX9B8gMbjrDt5z57hN/npWAoFWsYIwQLIAJSfh27IJaXFNfAwTNzJmvnb jUc2vrxgs8Fk+q17ya660z6FsyneF9A+igRvLmPp2I0K2s4ReL+KpE6A+bs05YpTYl8E/yLzY9of j/rjYe8VSrm9Qiy3VOnlpoMkyyiimtU90Yzyo5j646GmbidyAC48eFD+B7jzA9cHn68ROP2RyY2W S2PWPrXAKC0LRXpzqSPUGh3BLTEgAdHdIpLmYcVJkpmr+gjwnVQZxToz60DcZmFKQFMgaJgSg+tz cYsK7kje3DM/GzBSpWNJYitijt62AVR+Ycp/3nX6zaTUT0/5y59On816E2cwHjVfakOSZFOSiHNB l4p2oMFO+5XOOu1KS512tZdO+2ATM/OWSArZWnuj2S79muHWNul1wBaR8FDRHJkJxj16dXAwXMAW UNsj0DSm7ehvT3+2aFuk9kBKDHHNSyNdWBblsy2rwLbDWOGJMSurQjEhqzJqVMd0TLOHArplM3Y+ GLFRd9hjzP6cAYtznPPeDYQpGL2xSm09NKqvDJYhtjem+0dZpnOpPJNTiulfDJzu+WWPXU3Gw6tp RZj7QjCnbRWURLTv7V090yCMQa0D9y/LsQouRMRQYVm8xze0FlDwJcJ1qejX9s0J7DyzJVgQtMm5 DkP+B0HFEs1KiAUPA66y7wbRD/Q7RdtcIvc2hqpEq4goTGLxK3N0VI5kWSk8/0CtNrRjBDSXWRy7 8dVOxfsma+8NVt5/rrv/WXUvrTnq1V8/+HEs sD eJyFVWFP2zAQ/Z5fcUuLCogG7eukaYLRiUpAq1KQpmlyTXKhnhw7s51Ap/342WmTOG0G/dCq9ru7 Z9975wEs10xDyjhCVmgDTwiFxsR+MfEMqwiemDinsWElNRilTK9XcPrCzJoJoKAKIRzOrcMxrI3J P52fu396jZxHsczgBDRqzaQ4jYIBXEkQ0rhAYAYSpjA2fBMFQVoIW0UKSLAuB+MERpNXiyuZMgXl KErIZIJARQIKTaEEGAlmjTapyigHi2BKigyFiUYB2M/AAjUakDzxd6GkitEnjrpCsRQM2uOPBYRD Mru5Io/TxfLh4obML5bXYYVxH5dp/PwKbhUOgV0cQj8ARRK8V/X78np2dz27nfTUbvb2GTQbb/Po wt5g8216f03mi9ntfElmj5PFYnrl8RnAvc1OBWCWmw1wGdsGrIau+6TuJsmpsYqxTaKcy5eqVQoz WVqoTGFVgXMlbYZVrbk6Vlvmq6h7FA6H6QOP0URRjZ5cRnqvxlY52kiFFRmp2DMTlLd1/PLgxfYB YiBWV8RDvReBBxG9veq7+W63dui6qZO7x24XwyFVz+WPjz9D+PAZRkKKxC6rwnkLR50m8nRc733o 55xvEhn3b7V2bfhVHAfwIBxHphRyLKlvuSjwTN5lFgS1zL2TASHeP0Ja0IHBYFjZrOPTcOhFn4eE XE7vyN3F7YSQHbxhuxq27li5u7SLUbD9hfFv2PNOPw3Pn3149LNUd9XMvvae841Z24Vxtl2Dqptb dOPTP92Tkavp/cXlzWSnm3A3/r7KfFNJPS5sK2wbuoZoalNrlX1t7uzXUbwv9gMtd+C9XrCCoyV2 CA21oabQZ5BK5cdoi6LukdA5pxv7XhwMA1d+G1wn8YfBfEtSlqgUs6+GzVra3+SLh5mm7j06g1/u 8csV5vaKK3L+WyFohm1tb062utx5lTSoqomKCZPC6Egf6VEPGI7tOUgsuT339gE7aeKRa/xPsuMj fQKjnmA4frLjz7HtKiP00tbzY3v8Rc8obK6yiYnXEkJ0D/GwvfEQ/oKWhYpbmr2jrTuxarP0Dbg9 0pXa/wHCpaUc s� eJx1U2FP2zAQ/e5fcZiKbhWUfabrtkKRhgQFoYI0bZNx4utiKbEr22nVf8/ZSVHbdP4Q2Xfv/Hwv 705hXmgPC10iVLUPkCHUHhWsdSiAe1u7HCHT5lLmQa9kwGHuCw6DhbMV0HYwZKfwy9aQS2NsAFcb 0AGUdpiHchOzNw6pTkG2galcaYUw1XBdSq/hq0oBlf34V0ldDnNbfRsyJkstPSjcckI/IL2t9108 3k/F693z/GVyL54m859wMoYvcHYGHgOaFaQY73VwPGJqQyjo5EbgsJC+GMFRlufHh6f5Lg8sqfdl GB/SJOB/iVJ21KTiS7eJ29lrS8z/nFwNeGTixhpFIVdHAbC9s6PKTnS5UTbvM1L7JXFr57DElTQB VtJpmZXoh2yndp+Bse6rQIidkxAJ01WPZEgCs/0/sFN6yYW4vpuJ2eThVgh+1eJp6QV8EgcSCZEU 4J8hFGgY0Iq8dLUwskIYQ7eCYenxGPQtkx7Tfu9F/I2hUXoR9bqxdami7bUBGWW50CagS0JhvEs7 ayo04ZzAhFkXOi/I7R7Podc4AWiCapJzoQ3ZXBqaHoR1vNf0A1Xl0iHIzNYh9tTah3CbtaQBiSKQ 6droQdtHPESCN1j+gWprSbbfvW33f+ED1vbauHKb305Zcg59Q2ENXFTNmbFmJBh7B2EDUT8= s� eJx9Ul9LhEAQfxf8DoOclI/dYyFkaCmcq4gZQTBUrincuZFbff12T133TM+nnd35/Zvxlr7XDFhV mUZHOVhFlOWP3g4DUriIWoVomYZpNBWUtGpaWgImO191pFkSpzlcmgaI70jVX7n2Qp8tuByg+46O CMHbMq64T+nmlJt082D1T44muCDk2prgEHF4mdI9RaS/QwSt3zSyIAaftRccvqVTBziD1x/WlPD5 xd729NDBb8Nr4DU9QNMKsJeH9pkhPedhQsIkDuCDCa6A+NF9IevVFAohkqizdHetg/tkWvPoftWJ MCqnOxv7/x7Np6yv9P2Ker5dmX8yNyCkkWnbZy3N5LarczlqL8htx2EM9rQ/2H5BvIsIEi8OEG8U +g8CsNTr s eJyFkN0KgkAUhO8F32EQpHqFQEjQUPAPMaErqVxzId3IrV6/XST/UDx3c86c4WMO5FYysKJQFVVp CEfqxsnJ9DI7SA25i20fFqs3HO+GYLsDZ7h8GM3xfLHrg1QNvpSX4CWpQGvokZk4uqrQAjXjyElB a5IjCz0r+2dHcehHCe5MZNmB5R7TdqMqECMptHZh6DN/utb7Zs6Cej8OXYE5J04YOKFvD4GkHuJ0 pilSd1jG6n87tDZ+BUwUOepI6CGSkFMYWf0ihvT33Qj1A+tCkSI= s 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 rKQDxR6N/rffXv+lROXet/9Q+l9I4D1U s� eJytV1uL4zYUfvevOE0ottuMW9q3gVDa3aUMXXbLMlDKMBiNrSTqOJKRlMxkf33PkXyRbGe7Dw2E UXTu37lpxLFV2oIyifAncxmOL0xLIfcG+gv80x9VW6maw7o/CANSWWBwFtqeWMPlGY6qPjV8A0bB C4eKSTgZ5LRgFeyErMEeOBhbN+Ipgeizhjtnhkn7DdyjuNLPoCS0l/ayQTG0djwZC08cLXozeMss aG5EzQ0IScpnWtHSTXuxByV/QCmxE7y+eS0uxWeoheaVVfqSJHiU7Mhhi6gULbOHorshkrEnKxpT 0n3A8Y8SMpuwZx6aoix3ouFlmW8gHRSkeSJ2g7hU+kiHLDaQw3bmRDaTGfTnty7gPm0FHbIBg9U9 oh1kZzAFLaue2R6htPCtAda2nGlDSUJ4PZBgCJBGVcwKTAMz/vJiLD+Oin5Z5QlvDPdulC6EsiyE NFzb7McNTKJzbJqzphx92VKRFY1idenzmq3K0emRcbWBD0ryqc4NZGmKOOOX9Pz5x+/l27tP797c f/z0d+4NruGNai8uAM0bfsYaw8itFk8ny41jsfpyO+BWlpqfhcG4yxLdi/0tQqoT4a8Vby382mt8 p7XSo7aWGdPBc+b6utaBmCQ7rQKQoWtAuthQCiold2KfJIPTT8xwg9blPumc+YDZC/wYGdAyHpJk vUbHbHWAp5No6pK/WhhLEWrFjUwtPEv1Agf8YmnsuXUQYkeZoHm8ogP16gt2uHoxcEMdf2C6pmbw hUMsWGhanboh4IzzmsIpWs134jVPqD/c74bZHdY69UKKSn/+KfVhxLgUlToemayLMYQOqfEC61bh cbhwaqoGUzIyZRFHPmau5juaWqwRn3mpWmoEA5nhzS5gog/5jbcFQqOZvmBasZtwYlG93k5GEiyw buHhMWLjDarEGpMGB2LFs5nIJkhp/nUmZneFaRth++lieJtHepIvKgx6PJqIlD9X2j6pG1i9x3pZ 5bHuCPFiirGHeO7McvoXkz786GaKVzC9DSpnOxJdc4xm6NSVq7lNEnKdVlnpu9BNYoKX2Iq3wvgh gGEUM66kK6j4NiyoneuPLSwaCWDxczgaolEWpiMyDVDb7dNuLAbriL8ig8mmeju31oNvQdpnvEPC 1vAXbWacGRVrGt/uXN/gU0CDDwgooKRrHfTBb1/s9lYZ8ZqOBU0yLvpuP6+K9hLFsvIjeNhBi0KL MlOuWRn3FRwx5oHXjl0YImUx0+gLzjGchrgzca026ETmYJzPD+IpuKzNi8AFn048Thd63OdD86M6 84zE8yQm0VqXdbbgvub2pKVnS76icBGdeTHHXTKspUmr4NYo/furFLKiMdQzFjHJNcdAnMhltBJK 0/IKX3DVFqvPJ2dLE7bDBkH0l/PJ29074+F0CsGYOxsb7U3myTUncYfXqnLLfa6sJybX4g+hmcjO kMRBfA1JellfRRKJcyRpxdS4rIl6FdmQCWjo/o9Qz7yKffoP4JHjOvABcRn4CZIT2RH4jnxmfpVG qgLaAvQBNfuO6X0/Ux02nb4FKx3vgP+XnkX0QW9pLy/NsXgdN24dD3LxO2Nwil7Zlc1dqtP3d7/h kzp1/+7hGBuY4pk0XD/0Ao/oTe/XGrfyM773aB7iUhgkpy+dwAMalxMP0DrBcsVw/6p25+/hobP9 GBknrWExDhLJ1bwt1NcCNblaFbMKCyvmX0PeRaQ= s� eJxNj00KwkAMhfc9xYNuxe4Ft57AjYiUtDO1wXSmNJnK3N5pdSEEAu8nH6lxHVlRhtDHMPATA4uH xJ4EFmGbvfJiicSHFRzUSISMY6hq3GLCRLnIvSTnEefN0FIjw5tF0Hkk9Q5dRunBsVoyFi24aaLg 9FDOlL0FPGluf4QjcInLlxd6f6rqkgPu/5nHLg0cXCscXoozRrP51DRT3j9QNl99AP53T2Q= s� eJyNU01v2zAMvetXEB4K21jnDOstQA4dMGCHbeihlyEIDMWmE62yJEiKE//7kXKdpEWLzYBt8evx kRSzLPs6wiEoswM8YdMpjUXcq1Dz6RZa1cSiTkJdr86GsoTRHuCotBayiWqQEYGtMCgfD1KjGYBe 5a3p0cRKiEe2NtLAFikftnDco0ko/SFEVgEZ8aRCZDIPY9xbA8pE9M4jfW/B2CjiHq9zbJVZuOQq siwTIvpxKYCembPAU4Muwi/Z4zfvrZ/MXipKeB8C+qisSZYiWfjJfs+0/MFMdWn1hJcO5U7G/SLa xVx8zU6VG/PXLXvfsyyzUqjeWR8hjGE+2iCE1W1tQ82hsCJN9dzKaoexyB/uH79TnjwvxcW0ntSb yZ8jq1Z5Q1UXsyy3gf9nbjTEj7NzQMfCJa/YSmrQ+2D/BqfiOi6sclrGzvoeVivIj8rcfcmnIQRF 7XCyeZI7DFe5/lhlCs5PRf5QW66VXT/NrlQ46oD/D6InkOmi3IQcbhKxAX2g4a+Xd5s3UtCtG2py m8eg6WYWqR6SL5OjKMGfSrYt/6kxxQtOpeAgj1LXBNmpE2ElmCSIy5H0zFd8gJ924HWijWhb2hRC 6wNEm1QdDZtuSZcEprIUBo/XRNcbQe1OUbQ/r3hPTaPJJDNtFLu8KHV5XoNr3Eo6h6YtOKw8e8yw VF5PnJ+ts3a9/Mz38RpG/AUSzYUW sp eJyNVV1P2zAUfc+v8ODBiSABxlulTipbO6p1LWqBgVhlhcZpPYUkctzSivHfd6+dpGloGH2Ja/ue e+65Hz78xNhtf3x90xmw7vCWsRPGLvpDNuz87MKfdKMWSWxZ4ilNpCLZJiuWc66SVFUOZkkcirll rfxIBAzOMtImDzSVPBRrekwoX/OZu/0r4lm0DHiG60g86u8sjPw5rCyy86NRkB8QuuBRSqfAKESn 3orLTCQxE3GYkC9tYp8fk89OSwNsmXgizrhUtnumeSgeo5GbLUMk49Rv+2nK48Cm/qMwfp333J2/ dVcAGE0CIQHBsgIeEr4Wij0LtWDLzJ9ze5YEvH2WI6CHTAVcSu9ZCsXtgxu81CIvp6/k4eXsdfo7 PvDCRD75yi41QitfzlcPp1OI7i/1/iQitqnr0iMgQ+A6wa+IKwwdxyk9IiXNAzgquTFU8NIxAVjM osm1Zz526e+shQ4hKRVci69nPC3Kw4NQEmkQ65E7OodxorSvxjvpBjQHDmWFIQ1mlmzlS5vedseT /mgIEsMJ7Lxz2bLAF9M5xeLEhdbHxpWOw0GdkJApMVBRF1y+a0z3c9WZPAXGFcFrJgCIB+024uad 0CrzmEoRa3Ub4swNIHPGf7QDV+2uj2OiFWsChgCwjKqN6rp5izpbH6Wc1O1TclQTP/XVwi6anTr1 1sbubjZLI1+VptPSdCfwnFBrB1jvebrTA9uUhU2/9gad7xPqeFkaQcnnLbCViZK8d7R1kxzFrIJV 8EaLYmKYpvGVkig+3C5HCXbM1jGCGekiM2pRCVPyRyXYdPf6kcbWEQ36F5V4Gq9N7icNNw+JHwRE LTgxRXACpvnQv/PuT0xCCAywY/K4hE6Now2qDwaSE5FB+1agsoUveYDepS83qFcF1NufvULD3fTl g6Hgf7WBt6lzMeiyyWVn3P1WVbwaczHmTzE9A5SyItTVgFYyvs/L/fXlaNgbw8v3azT+0eikVlWD /vBHbzQumP23uBCjsYdrL9OWARwxs/nuLOzeXbPJTa/Xv6sUmQir5pC1YRLz3eA+CD8Z0XpcW8v9 MZWF36ryyXXf3yBIz6nzqz8Muyz0m5Qj7OexfYo/Ph3LqvkHUg7AuA== l�z�}l�m�l�z�}l�m�l�:�t>t<i tmaxsizetmaxinttfileviewcBsYeZdZded�Zd�Zd�Zd�Zdd�Zd�Z ed�Z RS( sh A proxy for file-like objects that exposes a given view of a file. Modified from macholib. icCsJt|t�r|j|_n ||_||_|||_d|_dS(Ni(R�Rot_fileobjt_startt_endt_pos(RdtfileobjR�R�((s./usr/lib/python2.7/site-packages/virtualenv.pyRe�s    cCsd|j|j|jfS(Ns<fileview [%d, %d] %r>(RqRrRp(Rd((s./usr/lib/python2.7/site-packages/virtualenv.pyt__repr__�scCs|jS(N(Rs(Rd((s./usr/lib/python2.7/site-packages/virtualenv.pyttell�scCsK|j|ko|jknsGtd|||j|jf��ndS(Ns*%s to offset %d is outside window [%d, %d](RqRrtIOError(Rdtseektotop((s./usr/lib/python2.7/site-packages/virtualenv.pyt _checkwindow�s"cCs�|}|tjkr%||j7}nX|tjkrK||j|j7}n2|tjkrj||j7}ntd|f��|j|d�|j j |�||j|_dS(Ns#Invalid whence argument to seek: %rtseek( R"tSEEK_SETRqtSEEK_CURRstSEEK_ENDRrRwRzRpR{(RdtoffsettwhenceRx((s./usr/lib/python2.7/site-packages/virtualenv.pyR{�scCsy|j|j}|j|d�|j|t|�d�|jj|tj�|jj|�|jt|�7_dS(NRw( RqRsRzR�RpR{R"R|Rw(RdtbytesR�((s./usr/lib/python2.7/site-packages/virtualenv.pyRw�s cCs�|dkst�|j|j}|j|d�t||j|�}|jj|tj �|jj |�}|jt |�7_|S(NiR�( R�RqRsRztminRrRpR{R"R|R�R�(RdR�R�R�((s./usr/lib/python2.7/site-packages/virtualenv.pyR��s( R�R�R�RnReRuRvRzR{RwR�(((s./usr/lib/python2.7/site-packages/virtualenv.pyRo�s     cCsEtj|d||j|d��}t|�dkrA|dS|S(sm Read a given number of 32-bits unsigned integers from the given file with the given endianness. tLiii(RFtunpackR�R�(R6tendiantnumtres((s./usr/lib/python2.7/site-packages/virtualenv.pyt read_data�s'csn��fd��dt��fd��t��t��ksHt�t|d��}�|�WdQXdS(s� Replace a given name (what) in any LC_LOAD_DYLIB command found in the given binary with a new name (value), provided it's shorter. cs:t||d�\}}}}}}|dkr@t||�nx�t|�D]�} |j�} t||d�\} } | tkrt||�} |j| | tj�|j| | �j�}||j d� }|�kr|j| | tj�|j �j �dj ��qn|j| | tj�qMWdS(Nii@it( R�trangeRvt LC_LOAD_DYLIBR{R"R|R�R<tindexRwR�(R6tbitsR�tcputypet cpusubtypetfiletypetncmdst sizeofcmdstflagstntwhereRKtcmdsizet name_offsettload(R�twhat(s./usr/lib/python2.7/site-packages/virtualenv.pytdo_macho�s$    #ic st|||�}t|t�}|tkr�t|t�}x�t|�D]7}t|td�\}}}}}�|||�qIWn||tkr��|dt�n]|tkr��|dt�n>|tkr��|dt�n|t kr�|dt�ndS(Nii i@( RoR�t BIG_ENDIANt FAT_MAGICR�tMH_MAGICtMH_CIGAMt LITTLE_ENDIANt MH_MAGIC_64t MH_CIGAM_64( R6RR�tmagict nfat_archR�R�R�talign(tdo_fileR�(s./usr/lib/python2.7/site-packages/virtualenv.pyR� s !    sr+bN(RnR�R�R�(R!R�R�R�((R�R�R�R�s./usr/lib/python2.7/site-packages/virtualenv.pyR��s t__main__(�R�R"tpipesRR%RzR�R�R!trealpathR�R�R�RPR+R�R1RER�R6R�R�tdistutils.sysconfigR�RFR*tpkgutilR?Rwtdistutils.utilRtos.pathRR�R�t configparsert __version__R"R�R�R�R�R�R�R�R�R�R�R~R�R�R�R�tgetattrR R�tuser_dirtdefault_storage_dirR�R�RRt_winregR�R�tmajvertminverR�R�tget_config_vartplatdirRtobjectR]R�R{R�R�RR�R�R�R�R�R�R�R�R�R�R�R9R`RZR]RaRbR~R1R�R�R�R�R�R�R�R�RR�R�R�R�R(R9R0RRCR>RDR?RPRQRVReRjR�RRRRRRR)R*RR'R�R�R�R�R�R�R�R�RnRoR�R�R�(((s./usr/lib/python2.7/site-packages/virtualenv.pyt<module>s|  0                       !                �         [ �S   K   )  - &  �T    !      1    & 5 �      X     *< ;