
(defun vm-number-messages (&optional start-point end-point) (byte-code "
 
 
@HHJ' 
@HHJ@HH!T	=?D 	@H!IT	A( O S!Z \"*" [n message-list start-point vm-message-list end-point vm-ml-highest-message-number vm-summary-buffer 1 0 8 string-to-int int-to-string vm-copy-local-variables] 6))

(defun vm-do-needed-renumbering nil (byte-code " : 	\"" [vm-numbering-redo-start-point vm-numbering-redo-end-point nil vm-number-messages] 3))

(defun vm-reverse-link-messages nil (byte-code "	 @HH
LA *" [mp vm-message-list prev nil 0 8] 3))

(defun vm-match-visible-header (alist) (byte-code "" [match (byte-code " @@! @\"A  " [alist nil looking-at throw match] 5)] 2))

(defun vm-get-folder-type nil (byte-code " eb!! ł' !  ǂ' !' ))" [widen skip-chars-forward "
" looking-at "From " From_ "
" mmdf "^$"] 6))

(defun vm-build-message-list (&optional rebuild-markers) (byte-code " 	 
	=7 Չ
A ؉
	H ? 	ex @HHWm @HHAQ 
Zb	!* 	eb#! `b! @AH !#IHIHI HHLH !#IC	?	# 
!\\#@* HI@HIbHIHIA
}
C\"HH
L
AHHLC	H d#Iω.	)" [rebuild-markers vm-message-list tail-cons message prev-message case-fold-search list marker start-regexp sep-pattern trailer-length vm-folder-type separator-string mp end nil t vm-build-visible-header-alist mmdf "^
" "

" 6 "^From " "

From " 2 0 3 vm-last re-search-forward match-beginning looking-at set-marker make-marker 1 vm-make-message 8 search-forward setcdr] 25))

(defun vm-build-visible-header-alist nil (byte-code "B
% 
@BB\"A
A A+" [header-alist nil vheaders vm-visible-headers list vm-visible-header-alist setcdr] 5))

(defun vm-reorder-message-headers (message) (byte-code "HH HHbHH!#. H !#I\\ deZVN  e\"N  d\"ێ 
	HHb gU? ! !
!? ? ! 
b  A A`
\"P\" `
\"\" `
\"B`
\"u H I@A@Ac@\"A :!:@cA&!)!XH!!\"QI.)+)" [message t nil vm-sr-clip vm-sr-min vm-sr-max header-alist vm-visible-header-alist list buffer-read-only match-end-0 extras inhibit-quit buffer-file-name old-buffer-modified-p vm-generic-header-regexp vm-invisible-header-regexp 3 12 0 re-search-forward vm-text-of 1 set-marker make-marker match-beginning buffer-size ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) buffer-modified-p forward-line 10 looking-at match-end vm-match-visible-header setcdr buffer-substring delete-region point-marker nreverse set-buffer-modified-p "^" ":"] 35))

(defun vm-read-attributes nil (byte-code "	T@H Ƃ @HHb@!#@H I@HHb@!# !b؏!e ! @G	Ww @	\"\"A@G
W AA@
\"\"@@I@A@I  @!# !b@	\"I@!?#@
\"I @	\"I@#@
\"I@HH@HH	
T@HHTA 
E-)" [mp vm-message-list vm-new-count vm-unread-count vm-total-count data nil vm-attributes-header-regexp t vm-attributes-vector-length vm-cache-vector-length vm-berkeley-mail-compatibility vm-berkeley-mail-status-header-regexp vm-totals 0 2 search-forward "

" vm-text-end-of point-marker re-search-forward vm-text-of match-beginning (byte-code "p!" [data read] 3) ((error (byte-code "	\"\"D@I" [data vm-attributes-vector-length nil vm-cache-vector-length t make-vector 0] 5))) vectorp vm-convert-v4-attributes setcar vm-extend-vector 3 1 make-vector vm-set-unread-flag looking-at ".*R.*" vm-set-new-flag] 27))

(defun vm-convert-v4-attributes (data) (byte-code "!	GZ\"\"\"\"D" [data vm-attributes-vector-length nil vm-cache-vector-length apply vector nconc vm-vector-to-list make-list make-vector] 8))

(defun vm-gobble-bookmark nil (byte-code "  deZV	2  e\"2  d\"	Ў
 eb #`
eb 
#q !!\"!!!\"))+!
? Ă ߏ)-" [old-buffer-modified-p buffer-read-only n buffer-file-name nil inhibit-quit t vm-sr-clip vm-sr-min vm-sr-max lim vm-bookmark-header-regexp buffer-modified-p buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) widen forward-line search-forward "

" re-search-forward string-to-int buffer-substring match-beginning 1 match-end delete-region 0 set-buffer-modified-p (byte-code "!" [n vm-goto-message] 2) ((error (byte-code "" [nil] 1)))] 22))

(defun vm-check-header-variables nil (byte-code " deZV!  e\"!  d\"Վ eb #`eb #  
	!bߏ!!\" 
\"? \"? ! @HI@HIA )!.))+)" [vm-sr-clip vm-sr-min vm-sr-max lim nil t vm-vheader-header-regexp old-buffer-modified-p buffer-file-name buffer-read-only vis invis got inhibit-quit vm-visible-headers vm-invisible-header-regexp mp vm-message-list buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) widen forward-line search-forward "

" re-search-forward buffer-modified-p match-beginning 1 (byte-code "p!p!É" [vis invis got t read] 4) ((error (byte-code "" [nil] 1))) delete-region 0 match-end equal message "Discarding visible header info..." 3 12 set-buffer-modified-p] 22))

(defun vm-gobble-message-order nil (byte-code " G
	 deZV@  e\"@  d\"؎ eb #`eb 
# !!bp!	G]\"!!\"  @S@IAA \"\"@> )+)!.	" [old-buffer-modified-p buffer-read-only lim v order buffer-file-name nil mp vm-message-list list-length inhibit-quit t vm-sr-clip vm-sr-min vm-sr-max vm-message-order-header-regexp vm-message-order-changed vm-message-order-stuffed vm-numbering-redo-start-point vm-message-pointer buffer-modified-p buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) widen forward-line search-forward "

" re-search-forward message "Reordering messages..." match-beginning 1 read make-vector delete-region 0 match-end delq append vm-reverse-link-messages set-buffer-modified-p] 23))

(defun vm-stuff-attributes (m &optional suppress-delete) (byte-code " deZV!  e\"!  d\"׎  
HH	
H
H	Y Y \"
HHb 
!#y !!\"!)!)&
I 
HHb 
!# !!\"
HH? 
HH  #	  \"!.)+)" [vm-sr-clip vm-sr-min vm-sr-max old-buffer-modified-p attributes cache buffer-read-only buffer-file-name nil delflag m inhibit-quit t suppress-delete vm-attributes-header-regexp vm-attributes-header print-escape-newlines vm-berkeley-mail-compatibility vm-berkeley-mail-status-header-regexp vm-berkeley-mail-status-header buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) widen buffer-modified-p 2 3 vm-set-deleted-flag-in-vector 0 forward-line re-search-forward vm-text-of delete-region match-beginning match-end insert-before-markers " (" prin1-to-string "
	" ")
" 4 1 "" "R" "O
" set-buffer-modified-p] 27))

(defun vm-stuff-virtual-attributes (message) (byte-code "		HHJ=	H	HHJH=?    
1 	HH!q	!)*" [virtual message mirror 0 6 2 marker-buffer vm-stuff-attributes] 4))

(defun vm-stuff-bookmark nil (byte-code "w  deZV	%  e\"%  d\"Ў  	eb #`eb #b !!\"@HH$!-)+)" [vm-message-pointer vm-sr-clip vm-sr-min vm-sr-max old-buffer-modified-p buffer-file-name nil buffer-read-only lim inhibit-quit t vm-bookmark-header-regexp vm-bookmark-header buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) widen buffer-modified-p forward-line search-forward "

" re-search-forward delete-region match-beginning 0 match-end insert-before-markers " " 1 "
" set-buffer-modified-p] 19))

(defun vm-stuff-header-variables nil (byte-code "  deZV	%  e\"%  d\"ӎ  	eb #`eb #e !!\"!!&!.)+)" [vm-message-pointer vm-sr-clip vm-sr-min vm-sr-max old-buffer-modified-p print-escape-newlines t buffer-read-only lim buffer-file-name nil inhibit-quit vm-vheader-header-regexp vm-vheader-header vm-visible-headers vm-invisible-header-regexp buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) widen buffer-modified-p forward-line search-forward "

" re-search-forward delete-region match-beginning 0 match-end insert-before-markers " " prin1-to-string "
" set-buffer-modified-p] 23))

(defun vm-stuff-message-order nil (byte-code "A  deZV	&  e\"&  d\"ӎ  !
	
\"
eb #`eb #t !!\"\"߉	
 
@HH!	T	
A

 	\"! 炰 ! !̉!.)+)" [vm-message-list vm-sr-clip vm-sr-min vm-sr-max old-buffer-modified-p buffer-file-name nil buffer-read-only lim n mp inhibit-quit t vm-message-order-header-regexp vm-message-order-header vm-message-order-stuffed buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) widen buffer-modified-p copy-sequence sort (lambda (p q) (byte-code "HH	HHW" [p q 0] 3)) forward-line search-forward "

" re-search-forward delete-region match-beginning 0 match-end insert-before-markers "
	(" 1 zerop mod 15 "
	 " " " ")
" set-buffer-modified-p] 24))

(defun vm-change-all-new-to-unread nil (byte-code "	# @HH @\"@\"A )" [mp vm-message-list nil t 2 0 vm-set-new-flag vm-set-unread-flag] 5))

(defun vm-highlight-headers (message window) (byte-code " 	 	!
!X ɋ)" [vm-highlighted-header-regexp window message t vm-generic-header-regexp inverse-video nil window-start vm-text-of ((byte-code "!b	
!#R !b!I !be`\"!Éeb `!\"!Ɖ!bM !b) " [window vm-highlighted-header-regexp message t vm-generic-header-regexp inverse-video nil window-start re-search-forward vm-text-of match-beginning 0 looking-at 2 narrow-to-region sit-for widen match-end] 16))] 4))

(defun vm-unread-message (&optional count) "\
Set the `unread' attribute for the current message.  If the message is
already new or unread, then it left unchanged.

Numeric prefix argument N mans to unread the current message plus the
next N-1 messages.  A negative N means unread the current message and
the previous N-1 messages.

When invoked on marked messages (via vm-next-command-uses-marks),
all marked messages are affected, other messages are ignored." (interactive "p") (byte-code "È	 Ɖ 	 	! 	q
!* 
!?* É !X @HH?G @HH?O @\"A2 ) " [count vm-mail-buffer vm-summary-buffer nil mlist t 1 vm-follow-summary-cursor buffer-name bufferp vm-error-if-folder-empty vm-select-marked-or-prefixed-messages 2 0 vm-set-unread-flag vm-update-summary-and-mode-line] 10))

(defun vm-quit-no-change nil "\
Exit VM without saving changes made to the folder." (interactive) (byte-code "!" [t nil vm-quit] 2))

(defun vm-quit (&optional no-change) "\
Quit VM, saving changes and expunging deleted messages." (interactive) (byte-code "Ĉ ! q	>? 
\"!+ !?+ ĉ!7 !	=C  r  r !?r \"?r Un o #!?{ !    	 !? ! 	= !? !!? !   ? !  ? !p = !!q!p!*)" [vm-mail-buffer major-mode this-command vm-summary-buffer nil vm-virtual-buffers no-change vm-messages-not-on-disk vm-undo-record-list vm-confirm-quit t inhibit-quit vm-folder-read-only summary-buffer mail-buffer vm-mutable-windows buffer-name (vm-mode vm-virtual-mode) error "%s must be invoked from a VM buffer." bufferp vm-trim-dead-buffers "Can't execute command: folder is referenced virtually." vm-virtual-mode vm-virtual-quit buffer-modified-p zerop assq vm-set-buffer-modified-p y-or-n-p format "%d message%s have not been saved to disk, quit anyway? " 1 "" "s" "Aborted" "There are unsaved changes, quit anyway? " "Do you really want to quit? " message "Quitting..." vm-change-all-new-to-unread vm-save-folder delete-windows-on kill-buffer set-buffer-modified-p] 30))

(defun vm-checkpoint-prologue-hook nil (byte-code "	=
 + $ @H @!A )	Ň" [vm-checkpoint-modification-counter vm-modification-counter nil mp vm-message-list t 4 vm-stuff-attributes] 4))

(defun vm-checkpoint-epilogue-hook nil (byte-code "\"" [buffer-auto-save-file-name set-file-modes 384] 3))

(defun vm-flush-timer-function nil (byte-code "	\" ? \"" [current-timer vm-flush-interval nil set-timer-restart vm-flush-cached-data] 5))

(defun vm-flush-cached-data nil (byte-code "   ?` @q
=W É=?W 1  ?L @HA @!A) ?V )A f 	*)" [buf-list found-one major-mode t vm-modification-counter vm-flushed-modification-counter mp vm-message-list buffer-list nil input-pending-p vm-mode 4 vm-stuff-attributes] 8))

(defun vm-write-file-hook nil (byte-code "= 	?  deZV
+  e\"+  d\"ӎ	T @HI @!A7 o    o o  ډ qډ)+)+" [major-mode vm-inhibit-write-file-hook vm-sr-clip vm-sr-min vm-sr-max inhibit-quit t mp vm-message-list buffer-read-only nil vm-retain-message-order vm-message-order-changed vm-buffer-modified-p vm-summary-buffer vm-mode buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) 4 vm-stuff-attributes vm-do-needed-renumbering vm-stuff-bookmark vm-stuff-header-variables vm-stuff-message-order "--??-"] 12))

(defun vm-save-buffer (prefix) (interactive "P") (byte-code "ň ! q	= 
\"!ŉ " [vm-mail-buffer major-mode this-command prefix vm-block-new-mail nil vm-buffer-modified-p vm-message-order-changed buffer-name vm-virtual-mode error "%s cannot be applied to virtual folders." save-buffer vm-update-summary-and-mode-line] 5))

(defun vm-write-file nil (interactive) (byte-code "Ĉ ! q	= 
\"!ĉ " [vm-mail-buffer major-mode this-command vm-block-new-mail nil vm-buffer-modified-p vm-message-order-changed buffer-name vm-virtual-mode error "%s cannot be applied to virtual folders." call-interactively write-file vm-update-summary-and-mode-line] 5))

(defun vm-save-folder (&optional quitting prefix) "\
Save current folder to disk.
Prefix args are handled the same for the command save-buffer." (interactive (byte-code "	D" [nil current-prefix-arg] 2)) (byte-code "
 
! 
q !\" !?\" =- \"  !ݏ!	i @H^ @!AL 	    
   !!)\" !  쏈?     * !" [nil current-prefix-arg vm-mail-buffer vm-summary-buffer major-mode this-command inhibit-quit t mp vm-message-list vm-retain-message-order vm-message-order-changed vm-inhibit-write-file-hook prefix vm-messages-not-on-disk vm-block-new-mail vm-delete-empty-folders quitting vm-message-pointer buffer-name vm-sanity-check-modification-flag bufferp vm-virtual-mode error "%s cannot be applied to virtual folders." buffer-modified-p message "Expunging..." (byte-code "\"" [quitting t vm-expunge-folder] 3) ((error (byte-code "" [nil] 1))) "Stuffing attributes..." 4 vm-stuff-attributes vm-do-needed-renumbering vm-stuff-bookmark vm-stuff-header-variables vm-stuff-message-order "Saving..." save-buffer vm-set-buffer-modified-p 0 zerop buffer-size (byte-code "!\"" [buffer-file-name delete-file message "%s removed"] 4) ((error (byte-code "" [nil] 1))) vm-update-summary-and-mode-line vm-next-message "No changes need to be saved"] 22))

(defun vm-handle-file-recovery nil (byte-code "  = 	 	@HHU8 
! 
!' 
!ÉƉ!" [major-mode vm-message-list vm-summary-buffer nil vm-message-pointer vm-block-new-mail t buffer-file-name buffer-modified-p vm-mode 0 3 1 bufferp kill-buffer vm] 5))

(defun vm-handle-file-reversion nil (byte-code " ? = 	 	@HHUX 
# 
!) 
!)É!	?S !!!!É!X   " [major-mode vm-message-list vm-summary-buffer nil t vm-message-pointer buffer-file-name buffer-modified-p vm-mode 0 3 1 bufferp kill-buffer vm-build-message-list message "Partial revert failed; disk version of folder has too few messages..." sleep-for "Assuming file changed completely; rebuilding message list..." vm vm-assimilate-new-messages vm-preview-current-message] 12))

(defun vm-visit-folder (folder &optional read-only) "\
Visit a mail file.
VM will parse and present its messages to you in the usual way.

First arg FOLDER specifies the mail file to visit.  When this
command is called interactively the file name is read from the
minibuffer.

Prefix arg or optional second arg READ-ONLY non-nil indicates
that the folder should be considered read only.  No attribute
changes, messages additions or deletions will be allowed in the
visited folder." (interactive (byte-code "  ! q
 
! 	( ̂) 4 \"5 #	$D))" [vm-mail-buffer default-directory vm-folder-directory current-prefix-arg vm-last-save-folder t vm-session-initialization buffer-name expand-file-name read-file-name format "Visit%s folder:%s " " read only" "" " (default %s)"] 10)) (byte-code "ǈ  ! q!% !?% ǉ	\"" [vm-mail-buffer default-directory vm-folder-directory current-prefix-arg vm-last-save-folder t vm-summary-buffer nil folder read-only vm-session-initialization buffer-name bufferp vm] 7))

(defun vm-help nil "\
Display VM command and variable information." (interactive) (byte-code "ƈ	 ! q	 
==\"  < =. !< >: !<  )" [vm-mail-buffer pop-up-windows vm-mutable-windows t last-command vm-system-state nil get-buffer-window vm-help describe-mode previewing message "Type SPC to read message, n previews next message   (? gives more help)" (showing reading) "SPC and b scroll, (d)elete, (s)ave, (n)ext, (r)eply   (? gives more help)"] 6))

(defun vm-move-mail (source destination) (byte-code "
!!&
!\" !8\"% !" [vm-movemail-program nil source destination vm-athena-fake-spool-file call-process expand-file-name string= equal 0 7 file-attributes delete-file] 10))

(defun vm-gobble-crash-box nil (byte-code " deZV!  e\"!  d\"ώ d 	!dbԊq  )T#d
%׏!!ۏ-)+)" [vm-sr-clip vm-sr-min vm-sr-max opoint-max crash-buf buffer-read-only old-buffer-modified-p inhibit-local-variables t vm-crash-box buffer-file-name nil buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) widen buffer-modified-p find-file-noselect insert-buffer-substring 1 write-region (byte-code "\"" [buffer-file-name set-file-modes 384] 3) ((error (byte-code "" [nil] 1))) set-buffer-modified-p kill-buffer (byte-code "!" [vm-crash-box delete-file] 2) ((error (byte-code "" [nil] 1)))] 17))

(defun vm-compatible-folder-p (file) (byte-code "!\"? ň   !! Ăm !?] !?5 ĂZ ̎!	&	q !W 
 =)))m 	q !l 
 =)*" [file buffer type vm-folder-type t nil string= expand-file-name zerop buffer-size get-file-buffer file-exists-p ((byte-code " !" [buffer kill-buffer] 2)) generate-new-buffer " *vm work*" call-process "sed" "-n" "1p" vm-get-folder-type] 16))

(defun vm-check-for-spooled-mail nil (byte-code "	
 
 PCC\"? @!8\"?, @!, @!7 Ɖ; A *" [spool-files vm-spool-files vm-spool-directory vm-crash-box new-mail nil t append user-login-name equal 0 7 file-attributes file-readable-p vm-compatible-folder-p] 9))

(defun vm-get-spooled-mail nil (byte-code " !
  PC!- ! !ŉ	p 	@!8\"?J 	@!J 	@!g 	@\"	@\" 	@\"ŉ	A. +" [vm-block-new-mail spool-files vm-spool-files vm-spool-directory inhibit-quit t got-mail nil vm-crash-box error "Can't get new mail until you save this folder." user-login-name file-exists-p message "Recovering messages from crash box..." vm-gobble-crash-box "Recovering messages from crash box... done" equal 0 7 file-attributes file-readable-p vm-compatible-folder-p "Getting new mail from %s..." vm-move-mail "Getting new mail from %s... done"] 17))

(defun vm-get-new-mail (&optional arg) "\
Move any new mail that has arrived in the system mailbox into the
primary inbox.  New mail is appended to the disk and buffer copies of
the primary inbox.

Prefix arg means to gather mail from a user specified folder, instead of
the usual spool file(s).  The file name will be read from the minibuffer.
Unlike when getting mail from a spool file, in this case the folder is left
undisturbed after its messages have been copied." (interactive "P") (byte-code " ! q	! 	!? =* \"8 pC\"+ ?L ?L  L  f ![ !!=?f  ?  y  y  ? !!!  !   #
	#		!? 	\" deZV  e\"  d\" db	!)+)?  @
  ! @
Z\\\"!+" [vm-mail-buffer vm-summary-buffer nil major-mode this-command vm-folder-read-only arg vm-primary-inbox-p vm-primary-inbox folder mcount buffer-read-only vm-folder-directory t vm-sr-clip vm-sr-min vm-sr-max vm-totals vm-messages-not-on-disk buffer-name bufferp vm-virtual-mode error "%s cannot be applied to virtual folders." signal folder-read-only vm-athena-check-pop-mail vm-check-for-spooled-mail switch-to-buffer get-file-buffer find-file-noselect vm-mode vm-athena-make-fake-spool vm-get-spooled-mail vm-assimilate-new-messages message "No new mail." sit-for 4 "" vm-deferred-message vm-emit-totals-blurb vm-thoughtfully-select-message vm-update-summary-and-mode-line read-file-name "Gather mail from folder: " vm-compatible-folder-p "Folder %s is not the same format as this folder." buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) widen insert-file-contents vm-read-attributes "No messages gathered."] 39))

(defun vm-emit-totals-blurb nil (byte-code " ! q	?  	@	@U% ǂ& 	A@	AA@%)" [vm-mail-buffer vm-totals buffer-name vm-read-attributes message "%d message%s, %d new, %d unread." 1 "" "s"] 8))

(defun vm-assimilate-new-messages nil (byte-code "	!	? deZV(  e\"(  d\"Ў   
: A

I 
P ֏)+ˉ

)*" [tail-cons vm-message-list new-messages-p vm-sr-clip vm-sr-min vm-sr-max vm-numbering-redo-start-point vm-summary-redo-start-point vm-current-grouping nil vm-need-summary-pointer-update t vm-last buffer-size set-marker make-marker ((byte-code "  	
\"	\"
\"" [vm-sr-clip vm-sr-min vm-sr-max nil widen narrow-to-region set-marker] 6)) widen vm-build-message-list vm-read-attributes data (byte-code "!" [vm-current-grouping vm-group-messages] 2) ((error (byte-code "A@!!" [data message sleep-for 2] 3)))] 12))

(defun vm-select-marked-or-prefixed-messages (prefix) (byte-code "	=  S W ̂ !=?, !!?N @BS!?J 
!- +!)" [mlist last-command direction prefix count vm-message-pointer vm-circular-folders t nil vm-next-command-uses-marks vm-marked-messages 0 backward forward vm-abs vm-check-count zerop vm-move-message-pointer nreverse] 8))

(defun vm-display-startup-message nil (byte-code "!+ 	
\"ĉ! * @!!A )!" [lines vm-startup-message-lines vm-version vm-startup-message-displayed t sit-for 5 message "VM %s, Copyright (C) 1991 Kyle E. Jones; type ? for help" 4 substitute-command-keys ""] 8))

(defun vm-load-rc (&optional interactive) (interactive "p") (byte-code "È? 	 	?	?$" [vm-rc-loaded interactive t nil load "~/.vm"] 5))

(defun vm-session-initialization nil (byte-code "!? 2 ! 
. Ï# 
!. !É!É" [vm-session-beginning t vm-window-configuration-file nil boundp random vm-load-rc (byte-code "!" [t require screen] 2) vm-load-window-configurations message "can't support window configurations without the screen package... sorry." sleep-for 2] 8))

(defun vm (&optional folder read-only) "\
Read mail under Emacs.
Optional first arg FOLDER specifies the folder to visit.  It defaults
to the value of vm-primary-inbox.  The folder buffer is put into VM
mode, a major mode for reading mail.

Prefix arg or optional second arg READ-ONLY non-nil indicates
that the folder should be considered read only.  No attribute
changes, messages additions or deletions will be allowed in the
visited folder.

Visiting the primary inbox causes any contents of the system mailbox to
be moved and appended to the resulting buffer.

All the messages can be read by repeatedly pressing SPC.  Use `n'ext and
`p'revious to move about in the folder.  Messages are marked for
deletion with `d', and saved to another folder with `s'.  Quitting VM
with `q' expunges deleted messages and saves the buffered folder to
disk.

See the documentation for vm-mode for more information." (interactive (byte-code "	D" [nil current-prefix-arg] 2)) (byte-code " !?! X ' 	!!8 \"W !W K !P 

!))q !| !?|   =?  \" p!!!    ? ?      ? ) ?   !^!?[$=p!3!=D=DP!! =Z )ap!qm @ !A B C D E !?F E G $?H  I !J !K L !?M  N  ?!,," [nil current-prefix-arg inhibit-local-variables t full-startup folder mail-buffer already-existed file vm-primary-inbox default-directory vm-folder-directory vm-folder-read-only read-only vm-summary-buffer vm-messages-not-on-disk first-time major-mode auto-save-newer buffer-file-name inhibit-quit blurb vm-primary-inbox-p vm-message-list vm-startup-with-summary vm-mutable-windows pop-up-windows vm-flush-interval vm-inhibit-startup-message vm-startup-message-displayed vm-session-initialization bufferp expand-file-name file-directory-p error "%s is a directory" get-file-buffer find-file-noselect vm-sanity-check-modification-flag buffer-name buffer-modified-p 0 vm-mode file-newer-than-file-p make-auto-save-file-name buffer-flush-undo abbrev-mode auto-fill-mode vm-mode-internal vm-athena-make-fake-spool vm-get-spooled-mail ((byte-code "p!q	 	!q 
?% \" !9 1      )" [mail-buffer vm-summary-buffer vm-message-list full-startup first-time blurb delete-windows-on vm-assimilate-new-messages message "Folder is empty." vm-check-header-variables vm-gobble-message-order vm-gobble-bookmark vm-emit-totals-blurb vm-thoughtfully-select-message] 10)) vm-emit-totals-blurb vm-summarize message vm-set-window-configuration startup switch-to-buffer display-buffer select-window get-buffer-window delete-other-windows vm-proportion-windows vm-preview-current-message numberp data (byte-code "!" [t require timer] 2) ((error (byte-code "!!" [nil message "can't support numeric vm-flush-interval without interval timers... sorry." sleep-for 2] 3))) get-timer "vm-flush" start-timer vm-flush-timer-function discard-input "Not checking for new mail... auto save file is newer; consider M-x recover-file" "Auto save file is newer; consider M-x recover-file" sit-for 3 vm-display-startup-message input-pending-p] 44))

(defun vm-mode nil "\
Major mode for reading mail.

Commands:
   h - summarize folder contents
   j - discard cached information about the current message

   n - go to next message
   p - go to previous message
   N - like `n' but ignores skip-variable settings
   P - like `p' but ignores skip-variable settings
 M-n - go to next unread message
 M-p - go to previous unread message
 RET - go to numbered message (uses prefix arg or prompts in minibuffer)
 TAB - go to last message seen
 M-s - incremental search through the folder

   t - display hidden headers
 SPC - scroll forward a page (if at end of message, then display next message)
   b - scroll backward a page
   < - go to beginning of current message
   > - go to end of current message

   d - delete message, prefix arg deletes messages forward (flag as deleted)
 C-d - delete message, prefix arg deletes messages backward (flag as deleted)
   u - undelete
   k - flag for deletion all messages with same subject as the current message

   r - reply (only to the sender of the message)
   R - reply with included text for current message
 M-r - extract and resend bounced message
   f - followup (reply to all recipients of message)
   F - followup with included text from the current message
   z - forward the current message
   m - send a message
   B - resend the current message to another user.
   c - continue composing the most recent message you were composing

   @ - digestify and mail entire folder contents (the folder is not modified)
   * - burst a digest into individual messages, and append and assimilate these
       message into the current folder.

   G - group messages according to some criteria

   g - get any new mail that has arrived in the system mailbox
       (new mail is appended to the disk and buffer copies of the
       primary inbox.)
   v - visit another mail folder
   V - visit a virtual folder

   e - edit the current message

   s - save current message in a folder (appends if folder already exists)
   w - write current message to a file without its headers (appends if exists)
   S - save entire folder to disk, expunging deleted messages
   A - save unfiled messages to their vm-auto-folder-alist specified folders
   # - expunge deleted messages (without saving folder)
   q - quit VM, deleted messages are expunged, folder saved to disk
   x - exit VM with no change to the folder

 M N - use marks; the next vm command will affect only marked messages
       if it makes sense for the command to do so

       M M - mark the current message
       M U - unmark the current message
       M m - mark all messsages
       M u - unmark all messsages
       M ? - help for the mark commands

 W S - save the current window configuration to a name
 W D - delete a window configuration
 W W - apply a configuration
 W ? - help for the window configuration commands

 C-_ - undo, special undo that retracts the most recent
             changes in message attributes.  Expunges and saves
             cannot be undone.  C-x u is also bound to this
             command.

   L - reload your VM init file, ~/.vm

   ? - help

   ! - run a shell command
   | - run a shell command with the current message as input

 M-C - view conditions under which you may redistribute VM
 M-W - view the details of VM's lack of a warranty

Variables:
   vm-auto-center-summary
   vm-auto-folder-alist
   vm-auto-folder-case-fold-search
   vm-auto-next-message
   vm-berkeley-mail-compatibility
   vm-circular-folders
   vm-confirm-new-folders
   vm-confirm-quit
   vm-crash-box
   vm-delete-after-archiving
   vm-delete-after-bursting
   vm-delete-after-saving
   vm-delete-empty-folders
   vm-digest-center-preamble
   vm-digest-preamble-format
   vm-folder-directory
   vm-folder-read-only
   vm-follow-summary-cursor
   vm-forwarding-subject-format
   vm-gargle-uucp
   vm-group-by
   vm-highlighted-header-regexp
   vm-honor-page-delimiters
   vm-in-reply-to-format
   vm-included-text-attribution-format
   vm-included-text-prefix
   vm-inhibit-startup-message
   vm-invisible-header-regexp
   vm-keep-sent-messages
   vm-mail-header-from
   vm-mail-window-percentage
   vm-mode-hooks
   vm-move-after-deleting
   vm-move-after-undeleting
   vm-mutable-windows
   vm-preview-lines
   vm-preview-read-messages
   vm-primary-inbox
   vm-retain-message-order
   vm-reply-ignored-addresses
   vm-reply-subject-prefix
   vm-rfc934-forwarding
   vm-search-using-regexps
   vm-skip-deleted-messages
   vm-skip-read-messages
   vm-spool-files
   vm-startup-with-summary
   vm-strip-reply-headers
   vm-summary-format
   vm-virtual-folder-alist
   vm-virtual-mirror
   vm-visible-headers
   vm-visit-when-saving
   vm-window-configuration-file" (interactive) (byte-code "p!" [nil vm] 2))

(defun vm-mode-internal nil (byte-code " 	 !\"!!" [case-fold-search t checkpoint-direct-conversion-hooks checkpoint-epilogue-hooks major-mode mode-line-format vm-mode-line-format mode-name buffer-read-only vm-message-list nil vm-message-pointer vm-current-grouping vm-group-by vm-folder-type vm-primary-inbox-p buffer-file-name vm-primary-inbox vm-mode-map widen (vm-checkpoint-prologue-hook) (vm-checkpoint-epilogue-hook) vm-mode "VM" vm-get-folder-type equal expand-file-name use-local-map run-hooks vm-mode-hooks] 7))

(put (quote vm-mode) (quote mode-class) (quote special))

(if (not (memq (quote vm-write-file-hook) write-file-hooks)) (setq write-file-hooks (cons (quote vm-write-file-hook) write-file-hooks)))

(if (not (memq (quote vm-handle-file-recovery) find-file-hooks)) (setq find-file-hooks (nconc find-file-hooks (quote (vm-handle-file-recovery vm-handle-file-reversion)))))
