;ELC   
;;; Compiled by buildd@lcy01-24.buildd on Tue Sep 19 22:19:03 2017
;;; from file /build/emacs24-8smh0b/emacs24-24.3+1/debian/build-x/lisp/net/tramp-cache.el
;;; in Emacs version 24.3.1
;;; 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!\210\302\303\304\"\207" [require tramp autoload time-stamp-string "time-stamp"] 3)
#@41 Hash table for remote files properties.
(defvar tramp-cache-data (make-hash-table :test 'equal) (#$ . 658))
#@60 File which keeps connection history for Tramp connections.
(custom-declare-variable 'tramp-persistency-file-name '(cond ((and (fboundp 'locate-user-emacs-file)) (expand-file-name (tramp-compat-funcall 'locate-user-emacs-file "tramp"))) ((and (boundp 'user-emacs-directory) (stringp (symbol-value 'user-emacs-directory)) (file-directory-p (symbol-value 'user-emacs-directory))) (expand-file-name "tramp" (symbol-value 'user-emacs-directory))) ((and (not (featurep 'xemacs)) (file-directory-p "~/.emacs.d/")) "~/.emacs.d/tramp") ((and (boundp 'user-init-directory) (stringp (symbol-value 'user-init-directory)) (file-directory-p (symbol-value 'user-init-directory))) (expand-file-name "tramp" (symbol-value 'user-init-directory))) ((and (featurep 'xemacs) (file-directory-p "~/.xemacs/")) "~/.xemacs/tramp") (t "~/.tramp")) '(#$ . 772) :group 'tramp :type 'file)
#@50 Whether persistent cache data have been changed.
(defvar tramp-cache-data-changed nil (#$ . 1639))
#@85 Get the PROPERTY of FILE from the cache context of VEC.
Returns DEFAULT if not set.
(defalias 'tramp-get-file-property #[(vec file property default) "\306!\211\307\310\311	C\"I\210\312\n\"\206 \313\314\315\316\"\n#\317!\205' \312\f\"\211:\203Y \203S \250\203D \320\321 @\"X\204S :\203Y \322@\"\203Y A\202\\ \323\324	\fE !\"#\325\326\327\217\210,$\330Y\203\221 \331\332\fP!%\325\333\334\217\206\207 \335&%&TL\210**\207" [vec file tramp-cache-data hash property value copy-sequence 3 tramp-run-real-handler directory-file-name gethash puthash make-hash-table :test equal hash-table-p tramp-time-diff current-time tramp-time-less-p 8 "%s %s %s" nil (byte-code "	X\203~ \306 \307\216\203; \310X\203; \311\312\313U\203! \314\2026 \315U\203+ \314\2026 \316U\2035 \317\2026 \320\fP#\210	\321Y\203} \203d \322!\203d \323\324!!\203d r\324!q\210\325!)\203} \326!\203} \311\327\330\331\"\fP$\210*\306\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) 10 intern "tramp-cache-get-count-" (symbol-value var) ((error)) 0 remote-file-name-inhibit-cache default args fmt-string level vec-or-proc tramp-verbose var val] 7 (#$ . 1744)])
#@80 Set the PROPERTY of FILE to VALUE, in the cache context of VEC.
Returns VALUE.
(defalias 'tramp-set-file-property #[(vec file property value) "\306!\211\307\310\311	C\"I\210\312\n\"\206 \313\314\315\316\"\n#\313\f\317 B#\210\320\321	\fE\322\323\324\217\210,\325Y\203[ \326\327\fP! \322\330\331\217\206Q \332! !TL\210*)\207" [vec file tramp-cache-data hash property value copy-sequence 3 tramp-run-real-handler directory-file-name gethash puthash make-hash-table :test equal current-time 8 "%s %s %s" nil (byte-code "	X\203~ \306 \307\216\203; \310X\203; \311\312\313U\203! \314\2026 \315U\203+ \314\2026 \316U\2035 \317\2026 \320\fP#\210	\321Y\203} \203d \322!\203d \323\324!!\203d r\324!q\210\325!)\203} \326!\203} \311\327\330\331\"\fP$\210*\306\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) 10 intern "tramp-cache-set-count-" (symbol-value var) ((error)) 0 args fmt-string level vec-or-proc tramp-verbose var val] 7 (#$ . 3273)])
#@60 Remove all properties of FILE in the cache context of VEC.
(defalias 'tramp-flush-file-property #[(vec file) "\306	\307\310$\211;\203 	\n\230\204 \311\n\"\210)\312!\211\313\314\315	C\"I\210\316\317	C\310\320\321\217\210,\322\"\207" [vec file truename args fmt-string level tramp-get-file-property "file-truename" nil tramp-flush-file-property copy-sequence 3 tramp-run-real-handler directory-file-name 8 "%s" (byte-code "	X\203~ \306 \307\216\203; \310X\203; \311\312\313U\203! \314\2026 \315U\203+ \314\2026 \316U\2035 \317\2026 \320\fP#\210	\321Y\203} \203d \322!\203d \323\324!!\203d r\324!q\210\325!)\203} \326!\203} \311\327\330\331\"\fP$\210*\306\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) remhash vec-or-proc tramp-cache-data] 6 (#$ . 4608)])
#@120 Remove all properties of DIRECTORY in the cache context of VEC.
Remove also properties of all files in subdirectories.
(defalias 'tramp-flush-directory-property #[(vec directory) "\306\307C\"	\310\311C\312\313\314\217\210,\315\316\")\207" [directory vec args fmt-string level vec-or-proc tramp-run-real-handler directory-file-name 8 "%s" nil (byte-code "	X\203~ \306 \307\216\203; \310X\203; \311\312\313U\203! \314\2026 \315U\203+ \314\2026 \316U\2035 \317\2026 \320\fP#\210	\321Y\203} \203d \322!\203d \323\324!!\203d r\324!q\210\325!)\203} \326!\203} \311\327\330\331\"\fP$\210*\306\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) maphash #[(key value) "\303!;\205 \304	\303!\"\205 \305\n\"\207" [key directory tramp-cache-data tramp-file-name-localname string-match remhash] 4] tramp-cache-data] 4 (#$ . 5755)])
#@59 Flush all Tramp cache properties from `buffer-file-name'.
(defalias 'tramp-flush-file-function #[nil "\306 ;\203 \306 \202\f \307	!\2054 \310	!\311\n!\312\n!\313\n!\314\n!\315\n!\316\n\".)\207" [default-directory bfn v method user host buffer-file-name tramp-tramp-file-p tramp-dissect-file-name tramp-file-name-method tramp-file-name-user tramp-file-name-host tramp-file-name-localname tramp-file-name-hop tramp-flush-file-property localname hop] 3 (#$ . 6960)])
(byte-code "\300\301\302\"\210\300\303\302\"\210\300\304\302\"\210\300\305\306\"\207" [add-hook before-revert-hook tramp-flush-file-function eshell-pre-command-hook kill-buffer-hook tramp-cache-unload-hook #[nil "\300\301\302\"\210\300\303\302\"\210\300\304\302\"\207" [remove-hook before-revert-hook tramp-flush-file-function eshell-pre-command-hook kill-buffer-hook] 3]] 3)
#@172 Get the named PROPERTY for the connection.
KEY identifies the connection, it is either a process or a vector.
If the value is not set for the connection, returns DEFAULT.
(defalias 'tramp-get-connection-property #[(key property default) "\306!\203 \307!\211\310\311I\210\312	\"\313\n!\203\" \312\n\f#\202# \f\314\315D\311\316\317\217\210,*\207" [key tramp-cache-data hash property default value vectorp copy-sequence 3 nil gethash hash-table-p 7 "%s %s" (byte-code "	X\203~ \306 \307\216\203; \310X\203; \311\312\313U\203! \314\2026 \315U\203+ \314\2026 \316U\2035 \317\2026 \320\fP#\210	\321Y\203} \203d \322!\203d \323\324!!\203d r\324!q\210\325!)\203} \326!\203} \311\327\330\331\"\fP$\210*\306\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) args fmt-string level vec-or-proc] 6 (#$ . 7821)])
#@166 Set the named PROPERTY of a connection to VALUE.
KEY identifies the connection, it is either a process or a vector.
PROPERTY is set persistent when KEY is a vector.
(defalias 'tramp-set-connection-property #[(key property value) "\306!\203 \307!\211\310\311I\210\312	\"\206 \313\314\315\316\"	#\313\f\n#\210\317\320\321\fD\311\322\323\217\210,\f)\207" [key tramp-cache-data hash property value tramp-cache-data-changed vectorp copy-sequence 3 nil gethash puthash make-hash-table :test equal t 7 "%s %s" (byte-code "	X\203~ \306 \307\216\203; \310X\203; \311\312\313U\203! \314\2026 \315U\203+ \314\2026 \316U\2035 \317\2026 \320\fP#\210	\321Y\203} \203d \322!\203d \323\324!!\203d r\324!q\210\325!)\203} \326!\203} \311\327\330\331\"\fP$\210*\306\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) args fmt-string level vec-or-proc] 6 (#$ . 9014)])
#@109 Remove all properties identified by KEY.
KEY identifies the connection, it is either a process or a vector.
(defalias 'tramp-flush-connection-property #[(key) "\306!\203 \307!\211\310\311I\210\312\313\314	\"\311\315!\203( \316\317\314	\"\"\210\n*D\311\320\321\217\210,\322\323	\"\207" [key tramp-cache-data properties hash args fmt-string vectorp copy-sequence 3 nil 7 "%s %s" gethash hash-table-p maphash #[(x y) "\301\302\303#\207" [x add-to-list properties append] 4] (byte-code "	X\203~ \306 \307\216\203; \310X\203; \311\312\313U\203! \314\2026 \315U\203+ \314\2026 \316U\2035 \317\2026 \320\fP#\210	\321Y\203} \203d \322!\203d \323\324!!\203d r\324!q\210\325!)\203} \326!\203} \311\327\330\331\"\fP$\210*\306\207" [level tramp-verbose save-match-data-internal tramp-message-show-message fmt-string args match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 3 apply message 0 "" 1 2 "Warning: " "Tramp: " 4 processp buffer-name process-buffer tramp-dissect-file-name vectorp tramp-debug-message format "(%d) # " vec-or-proc default-directory] 6) ((error)) t remhash level vec-or-proc tramp-cache-data-changed] 10 (#$ . 10256)])
#@25 Print hash table TABLE.
(defalias 'tramp-cache-print #[(table) "\302!\205 \303\304\305\"\210	)\207" [table result hash-table-p nil maphash #[(key value) "\304\305\306!\203 \307\211!!\202 \307!\310	!\203 \311	!\2020 \312	!\203- \307\211	!!\2020 \307	!#\203= \313\nQ\202> \n\211)\207" [key value tmp result format "(%s %s)" processp prin1-to-string hash-table-p tramp-cache-print bufferp " "] 6]] 3 (#$ . 11487)])
#@75 Return a list of all known connection vectors according to `tramp-cache'.
(defalias 'tramp-list-connections #[nil "\302\303\304	\"\210)\207" [result tramp-cache-data nil maphash #[(key value) "\301!\205 \302H?\205 \303\304\"\207" [key vectorp 3 add-to-list result] 3]] 3 (#$ . 11919)])
#@81 Write persistent connection properties into file `tramp-persistency-file-name'.
(defalias 'tramp-dump-connection-properties #[nil "\300\301\302\217\207" [nil (byte-code "\306!\205c \307\310!!?\205c 	\205c \n;\205c \311!\312\211\313\314\"\210\315\316! r q\210\317\216\320\312\321\322\217\323\324\325\326\327!!!\330\216!!\331\332\333\334\335!\"!!\210)r!q\210\336 +\261\210\337ed\n#.\207" [tramp-cache-data tramp-cache-data-changed tramp-persistency-file-name print-level print-length cache hash-table-p zerop hash-table-count copy-hash-table nil maphash #[(key value) "\303!\203\" \304!\204\" \305\306	\"\204\" \307\310	\"\210\307\311	\"\210\307\312	\"\207\307\n\"\207" [key value cache vectorp tramp-file-name-localname gethash "login-as" remhash "process-name" "process-buffer" "first-password-request"] 3] generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1=#:temp-buffer buffer-name kill-buffer] 2)) ";; -*- emacs-lisp -*-" (byte-code "\301\302\303\304!#\207" [tramp-persistency-file-name format " <%s %s>\n" time-stamp-string "%02y/%02m/%02d %02H:%02M:%02S"] 4) ((error "\n")) ";; Tramp connection history.  Don't change this file.\n" ";; You can delete it, forcing Tramp to reapply the checks.\n\n" get-buffer-create generate-new-buffer-name " *string-output*" ((kill-buffer standard-output)) pp read format "(%s)" tramp-cache-print buffer-string write-region #1# standard-output] 10) ((error))] 3 (#$ . 12218)])
(byte-code "\204	 \301\302\303\"\210\301\304\305\"\207" [noninteractive add-hook kill-emacs-hook tramp-dump-connection-properties tramp-cache-unload-hook #[nil "\300\301\302\"\207" [remove-hook kill-emacs-hook tramp-dump-connection-properties] 3]] 3)
#@202 Return a list of (user host) tuples allowed to access for METHOD.
This function is added always in `tramp-get-completion-function'
for all methods.  Resulting data are derived from connection history.
(defalias 'tramp-parse-connection-properties #[(method) "\302\303\304	\"\210)\207" [res tramp-cache-data nil maphash #[(key value) "\303!\205  	\304!\230\205  \305!?\205  \306!\307!D\nB\211\207" [key method res vectorp tramp-file-name-method tramp-file-name-localname tramp-file-name-user tramp-file-name-host] 3]] 3 (#$ . 13942)])
(byte-code ";\203( \302\303	!!\203( \304\305!\203 \305J\204# \304\306!\203( \306J\203( \307\310\311\217\210\312\313\314\"\210\315\316!\207" [tramp-persistency-file-name tramp-cache-data zerop hash-table-count boundp init-file-user site-run-file err (byte-code "\306\307!rq\210\310\216\311	!\210\312p!\313\211\211\211A@\211\203@ \f\211A@\f\211A@\211\203 \314\n\211A@\n@#\210\202( ,\313+\313\207" [#1=#:temp-buffer tramp-persistency-file-name item key element list generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) insert-file-contents read nil tramp-set-connection-property tramp-cache-data-changed] 4) ((file-error (clrhash tramp-cache-data)) (error (byte-code "\303\304\305	!#\210\306\n!\207" [tramp-persistency-file-name err tramp-cache-data message "Tramp persistency file '%s' is corrupted: %s" error-message-string clrhash] 5))) add-hook tramp-unload-hook #[nil "\300\301\302\"\207" [unload-feature tramp-cache force] 3] provide tramp-cache] 3)
