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/share/emacs/24.3/lisp
Viewing File: /usr/share/emacs/24.3/lisp/image.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 13:00:14 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/image.el ;;; in Emacs version 24.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301\302\303\304\305%\210\306\307\310\"\207" [custom-declare-group image nil "Image support." :group multimedia defalias image-refresh image-flush] 6) #@400 Alist of (REGEXP . IMAGE-TYPE) pairs used to auto-detect image types. When the first bytes of an image file match REGEXP, it is assumed to be of image type IMAGE-TYPE if IMAGE-TYPE is a symbol. If not a symbol, IMAGE-TYPE must be a pair (PREDICATE . TYPE). PREDICATE is called with one argument, a string containing the image data. If PREDICATE returns a non-nil value, TYPE is the image's type. (defconst image-type-header-regexps (byte-code "\302\303\304\305\306\307\310\311\312\313\314Q\315 \316\317 \320\321\260*\322B\257 \207" [incomment-re comment-re ("\\`/[ \n ]*\\*.*XPM.\\*/" . xpm) ("\\`P[1-6][[:space:]]+\\(?:#.*[[:space:]]+\\)*[0-9]+[[:space:]]+[0-9]+" . pbm) ("\\`GIF8[79]a" . gif) ("\\`\211PNG \n\n" . png) ("\\`[ \n ]*#define \\([a-z0-9_]+\\)_width [0-9]+\n#define \\1_height [0-9]+\n\\(#define \\1_x_hot [0-9]+\n#define \\1_y_hot [0-9]+\n\\)?static \\(unsigned \\)?char \\1_bits" . xbm) ("\\`\\(?:MM\\*\\|II\\*\\)" . tiff) ("\\`[ \n ]*%!PS" . postscript) ("\\`\377\330" . jpeg) "\\(?:[^-]\\|-[^-]\\)" "\\(?:!--" "*-->[ \n]*<\\)" "\\(?:<\\?xml[ \n]+[^>]*>\\)?[ \n]*<" "*" "\\(?:!DOCTYPE[ \n]+[^>]*>[ \n]*<[ \n]*" "*\\)?" "[Ss][Vv][Gg]" svg] 15) (#$ . 714)) #@159 Alist of (REGEXP . IMAGE-TYPE) pairs used to identify image files. When the name of an image file match REGEXP, it is assumed to be of image type IMAGE-TYPE. (defvar image-type-file-name-regexps '(("\\.png\\'" . png) ("\\.gif\\'" . gif) ("\\.jpe?g\\'" . jpeg) ("\\.bmp\\'" . bmp) ("\\.xpm\\'" . xpm) ("\\.pbm\\'" . pbm) ("\\.xbm\\'" . xbm) ("\\.ps\\'" . postscript) ("\\.tiff?\\'" . tiff) ("\\.svgz?\\'" . svg)) (#$ . 1918)) #@284 Alist of (IMAGE-TYPE . AUTODETECT) pairs used to auto-detect image files. (See `image-type-auto-detected-p'). AUTODETECT can be - t always auto-detect. - nil never auto-detect. - maybe auto-detect only if the image type is available (see `image-type-available-p'). (defvar image-type-auto-detectable '((pbm . t) (xbm) (bmp . maybe) (gif . maybe) (png . maybe) (xpm) (jpeg . maybe) (tiff . maybe) (svg . maybe) (postscript)) (#$ . 2350)) #@330 List of locations in which to search for image files. If an element is a string, it defines a directory to search. If an element is a variable symbol whose value is a string, that value defines a directory to search. If an element is a variable symbol whose value is a list, the value is used as a list of directories to search. (custom-declare-variable 'image-load-path '(list (file-name-as-directory (expand-file-name "images" data-directory)) 'data-directory 'load-path) '(#$ . 2812) :type '(repeat (choice directory variable)) :initialize 'custom-initialize-delay) #@1198 Return a suitable search path for images used by LIBRARY. It searches for IMAGE in `image-load-path' (excluding "`data-directory'/images") and `load-path', followed by a path suitable for LIBRARY, which includes "../../etc/images" and "../etc/images" relative to the library file itself, and then in "`data-directory'/images". Then this function returns a list of directories which contains first the directory in which IMAGE was found, followed by the value of `load-path'. If PATH is given, it is used instead of `load-path'. If NO-ERROR is non-nil and a suitable path can't be found, don't signal an error. Instead, return a list of directories as before, except that nil appears in place of the image directory. Here is an example that uses a common idiom to provide compatibility with versions of Emacs that lack the variable `image-load-path': ;; Shush compiler. (defvar image-load-path) (let* ((load-path (image-load-path-for-library "mh-e" "mh-logo.xpm")) (image-load-path (cons (car load-path) (when (boundp 'image-load-path) image-load-path)))) (mh-tool-bar-folder-buttons-init)) (defalias 'image-load-path-for-library #[(library image &optional path no-error) "\204\306\307!\210 \204\306\310!\210\311\211 \312 !\206\313 !\311 \203A\314 !\314!\211\203A\315\f!\316\317 \"\202+ +\n\203Y\n\320\316\321\"!\232\204Y\n\202\306\311\211\211\313!\211\204p\306\322\"\210\320\316\314!\323P!!\320\316\314!\324P!!\325\316 \"!\203\227\202\243\325\316 \"!\205\243\211+\204\306\n\203\262\n\202\306\203\300\326\327 #\210\202\306\306\327 #\210 C\330 \331 \206\322!!\"\244*\207" [library image image-directory-load-path image-directory parent dir error "No library specified" "No image specified" nil image-search-load-path locate-library file-name-directory directory-file-name expand-file-name "../" file-name-as-directory "images" "Cannot find library %s in load-path" "../../etc/images" "../etc/images" file-exists-p message "Could not find image %s for library %s" delete copy-sequence img data-directory d2ei d1ei library-name no-error path load-path] 6 (#$ . 3389)]) #@122 Value is non-nil if DATA, a string, consists of JFIF image data. We accept the tag Exif because that is the same format. (defalias 'image-jpeg-p #[(data) "\305\306\307\217\211\205\310\305\311\312 \n #,\205\313\314\215\207" [data start string regexp inhibit-changing-match-data nil (string-to-unibyte data) ((error)) "\\`\377\330" t string-match jfif (byte-code "G\306 \nW\205n H\307U\204\310\311\312\"\210 T\211\306\\\nY\203(\310\311\312\"\210\313 TH\314\" \306\\H\\ H \315Y\203d \316X\203d\310\311\317 \211\f\\\n^O\312\320\321 #,\"\210\322 \323\f#*\202*\207" [data i len code nbytes start 2 255 throw jfif nil lsh 8 224 239 "JFIF\\|Exif" t string-match + 1 string regexp inhibit-changing-match-data] 8)] 5 (#$ . 5642)]) #@129 Determine the image type from image data DATA. Value is a symbol specifying the image type or nil if type cannot be determined. (defalias 'image-type-from-data #[(data) "\306\n\203L\n@@\n@A 9\203+\f \306 \n\307 \310\f\n #,\204> :\203E @ !\203E A\211\203E \306\202H\nA*\202 *\207" [image-type-header-regexps type types image-type regexp data nil t string-match start string inhibit-changing-match-data] 4 (#$ . 6411)]) #@140 Determine the image type from data in the current buffer. Value is a symbol specifying the image type or nil if type cannot be determined. (defalias 'image-type-from-buffer #[nil "\306`eb\210 \203Y @@ @A\306\n 9\203,\n\n\307 \310\n!*\204K :\203R @\f\206@ede\311\\^{\211!\203R A\211\203R \306\202U A+\202 b\210\n\205h\n\f>\205h\n+\207" [image-type-header-regexps opoint type types data image-type nil t looking-at 256 regexp inhibit-changing-match-data image-types] 5 (#$ . 6860)]) #@147 Determine the type of image file FILE from its first few bytes. Value is a symbol specifying the image type, or nil if type cannot be determined. (defalias 'image-type-from-file-header #[(file) "\302!\204\303!\204\304!\2052\302!\2052\305\306!r q\210\307\216\310\311!\210\312\311\313\314$\210\315 +\207" [file #1=#:temp-buffer file-readable-p file-name-absolute-p image-search-load-path generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) set-buffer-multibyte nil insert-file-contents-literally 0 256 image-type-from-buffer] 5 (#$ . 7377)]) #@136 Determine the type of image file FILE from its name. Value is a symbol specifying the image type, or nil if type cannot be determined. (defalias 'image-type-from-file-name #[(file) "\302\211\303\304\215\206 *\207" [first type nil found (byte-code "\306\211\205B\n@\211@ \306\f\307 \310\f \f#,\203: A\204-\311!\203:\312\313\"\210\nA\211\204\306*\207" [image-type-file-name-regexps elem --dolist-tail-- file start string nil t string-match image-type-available-p throw found regexp inhibit-changing-match-data type first] 5)] 2 (#$ . 7996)]) #@391 Determine and return image type. SOURCE is an image file name or image data. Optional TYPE is a symbol describing the image type. If TYPE is omitted or nil, try to determine the image type from its first few bytes of image data. If that doesn't work, and SOURCE is a file name, use its file extension as image type. Optional DATA-P non-nil means SOURCE is a string containing image data. (defalias 'image-type #[(source &optional type data-p) "\204 ;\204\304\305 \"\210\n\204.\203\306 !\202%\307 !\206%\310 !\211\204.\304\311!\210\n\312\303!\2056 >\204?\304\313\n\"\210\n\207" [data-p source type image-types error "Invalid image file name `%s'" image-type-from-data image-type-from-file-header image-type-from-file-name "Cannot determine image type" boundp "Invalid image type `%s'"] 4 (#$ . 8575)]) (byte-code "\302\303!\203\304\305\303\306#\210\307\305\303\310#\210\311\312\313\306#\210\314\306\211\203> @\312N\2037\313N\2047\315\313\312N#\210 A\211\204 *\316\312\313\310#\207" [prop --dolist-tail-- fboundp image-metadata defalias image-extension-data nil make-obsolete "24.1" defvaralias image-library-alist dynamic-library-alist (saved-value saved-variable-comment) put make-obsolete-variable] 6) #@95 Return non-nil if image type TYPE is available. Image types are symbols like `xbm' or `jpeg'. (defalias 'image-type-available-p #[(type) "\301\302!\205 \302!\207" [type fboundp init-image-library] 2 (#$ . 9815)]) #@433 Return t if the current buffer contains an auto-detectable image. This function is intended to be used from `magic-fallback-mode-alist'. The buffer is considered to contain an auto-detectable image if its beginning matches an image type in `image-type-header-regexps', and that image type is present in `image-type-auto-detectable' with a non-nil value. If that value is non-nil, but not t, then the image type must be available. (defalias 'image-type-auto-detected-p #[nil "\303 \211\205  \236A\211\205\n\304=\206\305!*\207" [type image-type-auto-detectable auto image-type-from-buffer t image-type-available-p] 3 (#$ . 10037)]) #@780 Create an image. FILE-OR-DATA is an image file name or image data. Optional TYPE is a symbol describing the image type. If TYPE is omitted or nil, try to determine the image type from its first few bytes of image data. If that doesn't work, and FILE-OR-DATA is a file name, use its file extension as image type. Optional DATA-P non-nil means FILE-OR-DATA is a string containing image data. Optional PROPS are additional image attributes to assign to the image, like, e.g. `:mask MASK'. Value is the image created, or nil if images of type TYPE are not supported. Images should not be larger than specified by `max-image-size'. Image file names that are not absolute are searched for in the "images" sub-directory of `data-directory' and `x-bitmap-file-path' (in that order). (defalias 'create-image #[(file-or-data &optional type data-p &rest props) "\304 \n#\305 !\205\306\307\310 \n\203\311\202\312\257 \"\207" [file-or-data type data-p props image-type image-type-available-p append image :type :data :file] 6 (#$ . 10685)]) #@640 Put image IMAGE in front of POS in the current buffer. IMAGE must be an image created with `create-image' or `defimage'. IMAGE is displayed by putting an overlay into the current buffer with a `before-string' STRING that has a `display' property whose value is the image. STRING is defaulted if you omit it. The overlay created will have the `put-image' property set to t. POS may be an integer or marker. AREA is where to display the image. AREA nil or omitted means display it in the text area, a value of `left-margin' means display it in the left marginal area, a value of `right-margin' means display it in the right marginal area. (defalias 'put-image #[(image pos &optional string area) "\204\306p\n\242\302=\204\307\310\n\"\210 \203# \311>\204#\307\312 \"\210\313!\314\f\211 # \2044\n\2029\315 D\nD\316\317G\320 %\210\321\322\323#\210\321\324#\210+\207" [string buffer image area pos prop "x" error "Not an image: %s" (left-margin right-margin) "Invalid area %s" copy-sequence make-overlay margin put-text-property 0 display overlay-put put-image t before-string overlay] 6 (#$ . 11734)]) #@766 Insert IMAGE into current buffer at point. IMAGE is displayed by inserting STRING into the current buffer with a `display' property whose value is the image. STRING defaults to a single space if you omit it. AREA is where to display the image. AREA nil or omitted means display it in the text area, a value of `left-margin' means display it in the left marginal area, a value of `right-margin' means display it in the right marginal area. SLICE specifies slice of IMAGE to insert. SLICE nil or omitted means insert whole image. SLICE is a list (X Y WIDTH HEIGHT) specifying the X and Y positions and WIDTH and HEIGHT of image area to insert. A float value 0.0 - 1.0 means relative to the width or height of the image; integer values are taken as pixel values. (defalias 'insert-image #[(image &optional string area slice) "\204\305 \242\301=\204\306\307 \"\210\n\203!\n\310>\204!\306\311\n\"\210\n\203.\312\nD D\2023\301 AB`c\210\313 `\314\f\203H\304\fB D\202I \315BB#)\207" [string image area start slice " " error "Not an image: %s" (left-margin right-margin) "Invalid area %s" margin add-text-properties display (rear-nonsticky (display))] 6 (#$ . 12865)]) #@488 Insert IMAGE into current buffer at point. IMAGE is displayed by inserting STRING into the current buffer with a `display' property whose value is the image. The default STRING is a single space. AREA is where to display the image. AREA nil or omitted means display it in the text area, a value of `left-margin' means display it in the left marginal area, a value of `right-margin' means display it in the right marginal area. The image is automatically split into ROWS x COLS slices. (defalias 'insert-sliced-image #[(image &optional string area rows cols) "\204\306 \242\301=\204\307\310 \"\210\n\203!\n\311>\204!\307\312\n\"\210\n\203.\313\nD D\2023\301 AB\314\315 \206:\316\245\317\320\f\206B\316\245\321W\205\222\322W\203`c\210\323`\324\325 \257 D\326BB#\210\\)\202Q\327 \\\330\331\332\333#c\210\202J,\207" [string image area cols rows dy " " error "Not an image: %s" (left-margin right-margin) "Invalid area %s" margin 0.0 1.0001 1 0.0 1.0001 1.0 1.0 add-text-properties display slice (rear-nonsticky (display)) 0.0 propertize "\n" line-height t y dx x start] 9 (#$ . 14053)]) #@170 Remove images between START and END in BUFFER. Remove only images that were put in BUFFER with calls to `put-image'. BUFFER nil or omitted means use the current buffer. (defalias 'remove-images #[(start end &optional buffer) "\204p\305 \n\"\211\205& @\306\f\307\"\203\310\f!\210) A\211\204\311)\207" [buffer start end overlays overlay overlays-in overlay-get put-image delete-overlay nil] 4 (#$ . 15199)]) (defalias 'image-search-load-path #[(file &optional path) "\204 \306\211\211 \204^:\203^@\211;\203)\307\310 \f\"\211!\202X\f9\203X\311\f!\203X\fJ\211;\203H\307\310 \f\"\211!\202X\f:\203X\312 \f\"\211\203X\313A\202\f \205c\n+\207" [path image-load-path filename found element file nil file-readable-p expand-file-name boundp image-search-load-path t] 5]) #@774 Find an image, choosing one of a list of image specifications. SPECS is a list of image specifications. Each image specification in SPECS is a property list. The contents of a specification are image type dependent. All specifications must at least contain the properties `:type TYPE' and either `:file FILE' or `:data DATA', where TYPE is a symbol specifying the image type, e.g. `xbm', FILE is the file to load the image from, and DATA is a string containing the actual image data. The specification whose TYPE is supported, and FILE exists, is used to construct the image specification to be returned. Return nil if no specification is satisfied. The image is looked for in `image-load-path'. Image files should not be larger than specified by `max-image-size'. (defalias 'find-image #[(specs) "\306 \203P\204P @\307\n\310\"\307\n\311\"\307\n\312\"\306\313 !\203I ;\203A\314 !\211\203I\300\315\316\n!\312#B\202I\f\203I\300\nB A-\202)\207" [image specs spec type data file nil plist-get :type :data :file image-type-available-p image-search-load-path plist-put copy-sequence found] 5 (#$ . 16009)]) #@721 Define SYMBOL as an image. SPECS is a list of image specifications. DOC is an optional documentation string. Each image specification in SPECS is a property list. The contents of a specification are image type dependent. All specifications must at least contain the properties `:type TYPE' and either `:file FILE' or `:data DATA', where TYPE is a symbol specifying the image type, e.g. `xbm', FILE is the file to load the image from, and DATA is a string containing the actual image data. The first image specification whose TYPE is supported, and FILE exists, is used to define SYMBOL. Example: (defimage test-image ((:type xpm :file "~/test1.xpm") (:type xbm :file "~/test1.xbm"))) (defalias 'defimage '(macro . #[(symbol specs &optional doc) "\303\304\305 DD\nF\207" [symbol specs doc defvar find-image quote] 5 (#$ . 17150)])) (put 'defimage 'doc-string-elt 3) #@41 List of supported animated image types. (defconst image-animated-types '(gif) (#$ . 18058)) #@405 Return non-nil if IMAGE can be animated. To be capable of being animated, an image must be of a type listed in `image-animated-types', and contain more than one sub-image, with a specified animation delay. The actual return value is a cons (NIMAGES . DELAY), where NIMAGES is the number of sub-images in the animated image and DELAY is the delay in seconds until the next sub-image should be displayed. (defalias 'image-animated-p #[(image) "\305A\306\" >\2053\307!\305\n\310\"\305\n\304\" \2052 \311V\2052\f\247\2052\f\312W\203/\313 \fB+\207" [image image-animated-types metadata images delay plist-get :type image-metadata count 1 0 0.1] 3 (#$ . 18157)]) #@336 Start animating IMAGE. Animation occurs by destructively altering the IMAGE spec list. With optional INDEX, begin animating from that animation frame. LIMIT specifies how long to animate the image. If omitted or nil, play the animation until the end. If t, loop forever. If a number, play until that number of seconds has elapsed. (defalias 'image-animate #[(image &optional index limit) "\305!\306\211\205&\307!\211\203\310 !\210\311\312\306\313 \206 \314\n@\314\f&*\207" [image timer animation index limit image-animated-p nil image-animate-timer cancel-timer run-with-timer 0.2 image-animate-timeout 0] 10 (#$ . 18833)]) #@45 Return the animation timer for image IMAGE. (defalias 'image-animate-timer #[(image) "\304\n\203*\n@\nA \305H\306=\203% \307H\242 =\203%\304\211\202\304\202 *\207" [timer-list timer tail image nil 5 image-animate-timeout 6] 3 (#$ . 19478)]) #@438 Display animation frame N of IMAGE. N=0 refers to the initial animation frame. COUNT is the total number of frames in the animation. TIME-ELAPSED is the total time that has elapsed since `image-animate-start' was called. LIMIT determines when to stop. If t, loop forever. If nil, stop after displaying the last animation frame. Otherwise, stop after LIMIT seconds have elapsed. The minimum delay between successive frames is 0.01s. (defalias 'image-animate-timeout #[(image n count time-elapsed limit) "\306A\307 #\210\310 \210 T\311 \312!\313 A\n\311 [#\314]\315 Y\2034\2032\316\2024\317\f\\\247\203FY ?\205Y\320\f\315\321 &,\207" [image n time animation delay done plist-put :index force-window-update float-time image-animated-p + 0.01 nil 0 t run-with-timer image-animate-timeout count limit time-elapsed] 9 (#$ . 19740)]) #@225 Return a list of the ImageMagick types to be treated as images, or nil. This is the result of `imagemagick-types', including only elements that match `imagemagick-enabled-types' and do not match `imagemagick-types-inhibit'. (defalias 'imagemagick-filter-types #[nil "\302\303!\205\204\f\304\207 \305=\203\304\207\306\304\307\310\303 \"\"\207" [imagemagick-enabled-types imagemagick-types-inhibit fboundp imagemagick-types nil t delq mapcar #[(type) " >?\205\n\303=\203\207\304\305\215\207" [type imagemagick-types-inhibit imagemagick-enabled-types t found (byte-code "\304\211\2030\n@\2119\203 =\202! ;\203)\305 \306 !\"\203)\307\310 \"\210\nA\211\204\304*\304\207" [imagemagick-enabled-types enable --dolist-tail-- type nil string-match symbol-name throw found] 5)] 2]] 5 (#$ . 20616)]) #@177 File extension regexp for ImageMagick files, if any. This is the extension installed into `auto-mode-alist' and `image-type-file-name-regexps' by `imagemagick-register-types'. (defvar imagemagick--file-regexp nil (#$ . 21438)) #@513 Register file types that can be handled by ImageMagick. This function is called at startup, after loading the init file. It registers the ImageMagick types returned by `imagemagick-filter-types'. Registered image types are added to `auto-mode-alist', so that Emacs visits them in Image mode. They are also added to `image-type-file-name-regexps', so that the `image-type' function recognizes these files as having image type `imagemagick'. If Emacs is compiled without ImageMagick support, this does nothing. (defalias 'imagemagick-register-types #[nil "\306\307!\205b\310\311\312 \"\211\205\313\314!\315Q\n\316B \235@\n\317B \235@ \2048\320\f \"\320 \"\202^\f\203C\f \240\210\202I \316B B\203V \240\210\202^\321\305 \317B\322#\210 \211,\207" [types re imagemagick--file-regexp auto-mode-alist ama-elt image-type-file-name-regexps fboundp imagemagick-types mapcar #[(type) "\301!\227\207" [type symbol-name] 2] imagemagick-filter-types "\\." regexp-opt "\\'" image-mode imagemagick delete add-to-list t itfnr-elt] 5 (#$ . 21672)]) (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\315& \210\300\316\317\320\304\321\306\307\310\322\312\313\314\315& \210\323 \210\324\315!\207" [custom-declare-variable imagemagick-types-inhibit '(C HTML HTM INFO M TXT PDF) "List of ImageMagick types that should never be treated as images.\nThis should be a list of symbols, each of which should be one of\nthe ImageMagick types listed by `imagemagick-types'. The listed\nimage types are not registered by `imagemagick-register-types'.\n\nIf the value is t, inhibit the use of ImageMagick for images.\n\nIf you change this without using customize, you must call\n`imagemagick-register-types' afterwards.\n\nIf Emacs is compiled without ImageMagick support, this variable\nhas no effect." :type (choice (const :tag "Support all ImageMagick types" nil) (const :tag "Disable all ImageMagick types" t) (repeat symbol)) :initialize custom-initialize-default :set #[(symbol value) "\302 \"\210\303 \207" [symbol value set-default imagemagick-register-types] 3] :version "24.3" :group image imagemagick-enabled-types '(3FR ART ARW AVS BMP BMP2 BMP3 CAL CALS CMYK CMYKA CR2 CRW CUR CUT DCM DCR DCX DDS DJVU DNG DPX EXR FAX FITS GBR GIF GIF87 GRB HRZ ICB ICO ICON J2C JNG JP2 JPC JPEG JPG JPX K25 KDC MIFF MNG MRW MSL MSVG MTV NEF ORF OTB PBM PCD PCDS PCL PCT PCX PDB PEF PGM PICT PIX PJPEG PNG PNG24 PNG32 PNG8 PNM PPM PSD PTIF PWP RAF RAS RBG RGB RGBA RGBO RLA RLE SCR SCT SFW SGI SR2 SRF SUN SVG SVGZ TGA TIFF TIFF64 TILE TIM TTF UYVY VDA VICAR VID VIFF VST WBMP WPG X3F XBM XC XCF XPM XV XWD YCbCr YCbCrA YUV) "List of ImageMagick types to treat as images.\nEach list element should be a string or symbol, representing one\nof the image types returned by `imagemagick-types'. If the\nelement is a string, it is handled as a regexp that enables all\nmatching types.\n\nThe value of `imagemagick-enabled-types' may also be t, meaning\nto enable all types that ImageMagick supports.\n\nThe variable `imagemagick-types-inhibit' overrides this variable.\n\nIf you change this without using customize, you must call\n`imagemagick-register-types' afterwards.\n\nIf Emacs is compiled without ImageMagick support, this variable\nhas no effect." (choice (const :tag "Support all ImageMagick types" t) (const :tag "Disable all ImageMagick types" nil) (repeat :tag "List of types" (choice (symbol :tag "type") (regexp :tag "regexp")))) #[(symbol value) "\302 \"\210\303 \207" [symbol value set-default imagemagick-register-types] 3] imagemagick-register-types provide] 14)