;ELC   
;;; Compiled
;;; in Emacs version 30.2
;;; with all optimizations.


#@128 Execute a motion and return the buffer positions.
The return value is a list (BEG END TYPE).

(fn MOTION &optional COUNT TYPE)
(byte-code "\301\302!\210\301\303!\210\301\304!\210\305\306\307\310#\210\305\306\311\312#\210\305\313\307\314#\210\305\313\311\315#\210\306>\203/ \210\2023 \306B\313>\203> \210\202B \313B\301\207" [debug-ignored-errors require evil-common evil-states evil-repeat put beginning-of-line error-conditions (beginning-of-line error) error-message "Beginning of line" end-of-line (end-of-line error) "End of line"] 4)
(defalias 'evil-motion-range #[769 "`\306\307!p\310 `\311\223\311\307\311\312\216\313 \210\314\315!\210\214edBB\316 \206' e\317 \206- d}\210\320\321$\216\206E \322	\323\324#\3251\214 \326!\327!\203Y \211\330!\210\3311k \311\332	!)\262\3070\202s \210\307/\333\334\307\"\204| \335 \210\307/\327!\205\205 \211\336!\2620\210\202\250 \335 \210\211@\337>\203\240 \340\341!!\266\202\250 \342@A\"\266\343!\204\324 \344 \203\272 \345 \262\202\324 \346 \203\313 \347\350 \351 \f#\262\202\324 \352\353`\f#!\262\203\353 \354!=\204\353 \355\"\210\352!\210\356\311\".	\210\207" [evil-motion-marker evil-transient-vals inhibit-quit evil-restriction-stack evil-this-type current-prefix-arg mark t make-marker nil #[0 "\300 \207" [evil-restore-transient-mark-mode] 1] evil-save-transient-mark-mode evil-transient-mark 1 field-beginning field-end make-closure #[0 "\204 \300q\210\305\301!\210\302b\210\f\306\211\223\207" [V0 V1 V2 evil-inhibit-operator evil-motion-marker evil-move-mark nil] 3] evil-get-command-property :type exclusive (error) evil--repeat-type functionp pre (quit) call-interactively eval (ignore nil) evil-repeat-abort post (end-of-line end-of-buffer) message error-message-string signal evil-range-p evil-visual-state-p evil-visual-range region-active-p evil-range region-beginning region-end evil-expand-range evil-normalize evil-type evil-set-type evil-set-range-properties quit-flag] 13 (#$ . 84)])#@608 Define a motion command MOTION.
ARGS is a list of arguments.  Motions can have any number of
arguments, but the first (if any) has the predefined meaning of
count.  BODY must execute the motion by moving point.

Optional keyword arguments are:
- `:type' - determines how the motion works after an operator (one of
  `inclusive', `line', `block' and `exclusive', or a self-defined
  motion type)
- `:jump' - if non-nil, the previous position is stored in the jump
  list, so that it can be restored with \<evil-motion-state-map>\[evil-jump-backward]

(fn MOTION (COUNT ARGS...) DOC [[KEY VALUE]...] BODY...)
(defalias 'evil-define-motion '(macro . #[642 "\300\211\211\211\211\203 \301\302\301	\"B\262\303\262G\304V\2033 @\242\305=\204+ @;\2033 \211A\262\242\262\306\300\307\310#\262\311@!\203] \211A\262\242\262\211A\262\242\262\306#\262\202: @\242\312=\203n \211A\262\242A\262\313\314\315\nD\316\317\315\320\321\322\315DDEDEE\323\n\n\324	\205\221 	C\325\326\312BE$BBBE\207" [nil &optional delq ("<c>") 1 format plist-put :repeat motion keywordp interactive progn when quote eval-after-load 'eldoc and (fboundp 'eldoc-add-command) eldoc-add-command evil-define-command append :keep-visual t] 20 (#$ . 2091)]))#@161 Narrow BODY to the current line.
BODY will signal `beginning-of-line' or `end-of-line' upon reaching
the beginning or end of the current line.

(fn &rest BODY)
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put evil-define-motion lisp-indent-function defun doc-string-elt 3 put edebug-form-spec (&define name lambda-list [&optional stringp] [&rest keywordp sexp] [&optional ("interactive" [&rest form])] def-body)] 6)
(defalias 'evil-narrow-to-line '(macro . #[128 "\300\301\302\303\304\305\306\307\310\311\312B\313BBBF\257\207" [cl-destructuring-bind (beg end &rest) (evil-line-expand (point) (point)) (when (save-excursion (goto-char end) (bolp)) (setq end (max beg (1- end)))) (or evil-move-beyond-eol (evil-visual-state-p) (evil-operator-state-p) (setq end (max beg (1- end)))) evil-with-restriction beg end condition-case err progn ((beginning-of-buffer (signal (if (= (point-min) beg) 'beginning-of-line (car err)) (cdr err))) (end-of-buffer (signal (if (= (point-max) end) 'end-of-line (car err)) (cdr err))))] 13 (#$ . 3349)]))#@83 Whether point is at end-of-buffer with regard to end-of-line.

(fn &optional POS)
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put evil-narrow-to-line lisp-indent-function defun put edebug-form-spec t] 5)
(defalias 'evil-eobp #[256 "\212\211\203 \211b\210m\206/ \300 \204 \301\202/ l\203  \301u\210m\202/ \301u\210m\206/ l\205/ \301u\210m)\207" [evil-normal-state-p nil] 2 (#$ . 4425)])#@329 Move to the beginning of the COUNT next object.
If COUNT is negative, move to the COUNT previous object.
FORWARD is a function which moves to the end of the object, and
BACKWARD is a function which moves to the beginning.
If one is unspecified, the other is used with a negative argument.

(fn COUNT FORWARD &optional BACKWARD)#@14 

(fn COUNT)
(defalias 'evil-move-beginning #[770 "\206 \300C\206 \301\302\"\206 \301\303\"`\242\304W\203Z o\203' \305\306\307\"\210\301\310\"\216\242\211\304W\210\307\304U\204U `\300!\210`U\204U \304W\203N T\202P S\262\2023 \240)\207\242\304V\203\266 \311 \203k \305\312\307\"\210\212\300!\210\300!\210`)X\203\201 \211\242T\240\210\301\313#\216\242\211\304W\210\307\304U\204\261 `\300!\210`U\204\261 \304W\203\252 T\202\254 S\262\202\217 \240)\207\242\207" [1 make-closure #[257 "\300[!\207" [V0] 3 (#$ . 5170)] #[257 "\300[!\207" [V0] 3 (#$ . 5170)] 0 signal beginning-of-buffer nil #[0 "\300\242\301U?\205\n eb\207" [V0 0] 2] evil-eobp end-of-buffer #[0 "\301\242\302U\203 \300\303!\207db\207" [V0 V1 0 1] 2]] 12 (#$ . 4837)])#@465 Move to the end of the COUNT next object.
If COUNT is negative, move to the COUNT previous object.
FORWARD is a function which moves to the end of the object, and
BACKWARD is a function which moves to the beginning.
If one is unspecified, the other is used with a negative argument.
If INCLUSIVE is non-nil, then point is placed at the last character
of the object; otherwise it is placed at the end of the object.

(fn COUNT FORWARD &optional BACKWARD INCLUSIVE)
(defalias 'evil-move-end #[1026 "\206 \300C\206 \301\302\"\206 \301\303\"`\242\304W\203} o\203' \305\306\307\"\210\212\300!\210\300!\210`)\203; T\202< Y\203F \211\242S\240\210\301\310$\216\242\211\304W\210\307\304U\204x `\300!\210`U\204x \304W\203q T\202s S\262\202V \240)\207\242\304V\203\312 \311 \203\216 \305\312\307\"\210\203\225 \307u\210\301\313#\216\242\211\304W\210\307\304U\204\305 `\300!\210`U\204\305 \304W\203\276 T\202\300 S\262\202\243 \240)\207\242\207" [1 make-closure #[257 "\300[!\207" [V0] 3 (#$ . 5170)] #[257 "\300[!\207" [V0] 3 (#$ . 5170)] 0 signal beginning-of-buffer nil #[0 "\301\242\303U\204\n eb\207\300\304!\210\302\203 o\204 \305u\210\306 \204# \307 \205% \310 \207" [V0 V1 V2 0 1 -1 evil-normal-state-p evil-motion-state-p evil-adjust-cursor] 2] evil-eobp end-of-buffer #[0 "\300\242\302U\204\n db\207\301\203 o\204 \303u\210\304 \204 \305 \205! \306 \207" [V0 V1 0 -1 evil-normal-state-p evil-motion-state-p evil-adjust-cursor] 2]] 13 (#$ . 5946)])#@272 Turn the text object selection RANGE to linewise.
The selection is adjusted in a sensible way so that the selected
lines match the user intent. In particular, whitespace-only parts
at the first and last lines are omitted. This function returns
the new range.

(fn RANGE)
(defalias 'evil-text-object-make-linewise #[257 "\300!\301=\203	 \207\302\303!\304\"\305\306\"\212\307!b\210\310\311w\210n\204+ l\203+ \312`T\"\210\313!b\210\310\311x\210l\204B n\203B \314`S\"\210\307!\313!V\203P \202Y \204X \315!\210\211)\207" [evil-type line plist-get evil-range-properties :expanded evil-expand-range t evil-range-beginning " 	" nil evil-set-range-beginning evil-range-end evil-set-range-end evil-contract-range] 6 (#$ . 7449)])#@532 Define a text object command OBJECT.
BODY should return a range (BEG END) to the right of point
if COUNT is positive, and to the left of it if negative.

Optional keyword arguments:
- `:type' - determines how the range applies after an operator
  (`inclusive', `line', `block', and `exclusive', or a self-defined
  motion type).
- `:extend-selection' - if non-nil (default), the text object always
  enlarges the current selection.  Otherwise, it replaces the current
  selection.

(fn OBJECT (COUNT) DOC [[KEY VALUE]...] BODY...)
(defalias 'evil-define-text-object '(macro . #[642 "\300\301\"\211A\262\242\206 \302\205 \301B\303\304\211@;\203( \211A\262\242\262\305\304\306\307#\262\310@!\203M \305\211A\262\n\242	\211A\262\242#\262\202/ @\242\311=\203_ \211A\262\242\262\312	B\313\205n C\314\f\315\316BBE\317\320\321BB\322\323\324\325D\326BBD\327\330\331\332\325D\306\325\333\306\"DFED\334BB\335\336\314\337\340\341\342BB\257\314\343\344BE\345BBB\307\314\343\344BE\346\347\314\350D\343\344B\257E\351BBBEEEE#BBB\207" [delq &optional count (interactive "<c><v>") nil plist-put :extend-selection t keywordp interactive evil-define-motion append setq or (1) when /= (0) let type evil-type quote (evil-visual-char) extend and (evil-visual-state-p) evil-get-command-property plist-get ((dir evil-visual-direction) mark point range selection) cond (and (evil-visual-state-p) (called-interactively-p 'any)) dir evil-visual-direction * (dir) range progn ((when (evil-range-p range) (setq range (evil-expand-range range)) (evil-set-type range (evil-type range type)) (setq range (evil-contract-range range)) (setq mark (evil-range-beginning range) point (evil-range-end range) type (evil-type (if evil-text-object-change-visual-type range (evil-visual-range)))) (when (and (eq type 'line) (not (eq type (evil-type range)))) (let ((newrange (evil-text-object-make-linewise range))) (setq mark (evil-range-beginning newrange) point (evil-range-end newrange)))) (when (< dir 0) (evil-swap mark point)) (evil-visual-make-selection mark point type))) unless (evil-range-p range) - ((when (evil-range-p range) (setq selection (evil-range (point) (point) type)) (if extend (setq range (evil-range-union range selection)) (evil-set-type range (evil-type range type))) (when (eq evil-this-type-modified 'line) (setq range (evil-text-object-make-linewise range))) (evil-set-range-properties range nil) range))] 33 (#$ . 8187)]))#@1132 Define an operator command OPERATOR.
The operator acts on the range of characters BEG through
END. BODY must execute the operator by potentially manipulating
the buffer contents, or otherwise causing side effects to happen.

Optional keyword arguments are:
- `:type' - force the input range to be of a given type (`inclusive',
  `line', `block', and `exclusive', or a self-defined motion type).
- `:motion' - use a predetermined motion instead of waiting for one
  from the keyboard.  This does not affect the behavior in visual
  state, where selection boundaries are always used.
- `:repeat' - if non-nil (default), then   \<evil-normal-state-map>\[evil-repeat] will repeat the
  operator.
- `:move-point' - if non-nil (default), the cursor will be moved to
  the beginning of the range before the body executes
- `:keep-visual' - if non-nil, the selection is not disabled when the
  operator is executed in visual state.  By default, visual state is
  exited automatically.
- `:restore-point' - if non-nil, point is restored when the
  operator is executed from ex.

(fn OPERATOR (BEG END ARGS...) DOC [[KEY VALUE]...] BODY...)
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put evil-define-text-object lisp-indent-function defun doc-string-elt 3 put edebug-form-spec (&define name lambda-list [&optional stringp] [&rest keywordp sexp] def-body)] 6)
(defalias 'evil-define-operator '(macro . #[642 "\300\301\"\211G\302V\203 \303\202 \304G\302V\203& @A@\301AABBB\202' \305\306!\307\211\211\211\211	G\310V\203P 	\242\242\311=\204G 	\242;\203P 	\211A\262\242\262\312\307\313\314#\262\315\n\242!\203\207 	\211A\262\242\262	\211A\262\242\262\316=\203| \210\202W \312#\262\202W 	\242\242\317=\203\232 	\211A\262\242\243\262\320\321	\"\262\322	\243\"\262\242\262\323\f\324\205\274 C\316\314\325\314\317\326\327\330\331DDD\332B\333\334\335\336\337BB\340BBBBFD\341\342\343\344BD\345A@E\346\347BB\350\351\352@\353BBE\350\354\355\352@\356BB\357\352\360D\361BBDEE\345\362BB\257\363BB\257#BBB\207" [delq &optional 2 ("<R>") ("<r>") make-symbol "end-marker" nil 1 format plist-put :move-point t keywordp :keep-visual interactive apply evil-interactive-form evil-concat-plists evil-define-command append :suppress-operator let* props evil-command-properties quote ((evil-operator-range-motion (let ((p (plist-member props :motion))) (when p (or (cadr p) #'undefined)))) (evil-operator-range-type (plist-get props :type)) evil-operator-range-beginning evil-operator-range-end evil-inhibit-operator) (setq evil-inhibit-operator-value nil evil-this-operator this-command evil-operator-start-col (current-column)) prog1 (setq evil-inhibit-operator-value evil-inhibit-operator) if ((when (evil-visual-state-p) (evil-visual-expand-region)) (setq deactivate-mark t)) ((cond ((evil-visual-state-p) (evil-visual-rotate 'upper-left)) ((plist-get props :move-point) (when evil-operator-range-beginning (goto-char evil-operator-range-beginning))))) unwind-protect let (evil-inhibit-operator evil-inhibit-operator-value) ((make-marker)) set-marker unless (and evil-inhibit-operator (called-interactively-p 'any)) evil-set-marker 91 or ((point-max)) 93 max ((point-max)) 1- marker-position ((point-max)) (nil) ((setq evil-inhibit-operator-value nil))] 37 (#$ . 10670)]))#@177 Read a motion from the keyboard and return its buffer positions.
The return value is a list (BEG END), or (BEG END TYPE) if
RETURN-TYPE is non-nil.

(fn &optional RETURN-TYPE)
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put evil-define-operator lisp-indent-function defun doc-string-elt 3 put edebug-form-spec (&define name lambda-list [&optional stringp] [&rest keywordp sexp] [&optional ("interactive" [&rest form])] def-body)] 6)
(defalias 'evil-operator-range #[256 "\206	 	\205	 \306\n\307\211\211	\203 \f\203 \f\262\2027	\204, \310 \203, \311 \262\2027	\204E \312 \203E \313\314 \315 \206? \316#\262\2027\317\307\211+,-\320 \210\321\216./\3220!1.\317p-10/.\323\324#\216\n\204\265 \325\326\327 !8\330\331!\210\332!\211:\203\233 \3332\334!\335#\210A\202\211 \266\336!\211@\262\f\211A@\262	\n\206\262 \3258\262\210\n\337=\203\307 \307\211D\262	\307\262\202\n\n\203\324 \340\341\"\203\346 \342 \210\3173\313``\"\262	\307\262\202\n4\203\365 4\262\3074\202\n\204\377 5\203\n\343!\3435!_\262\n\203 \331\3076.\344	\f#*\262	\n78\345	\"\262\n	.\n\266\203P\345!=\204P\346!\210\347\"\210\350!\210\351!9\352!:\345!A\205h\345!C\241\210\207" [evil-operator-range-motion evil-called-from-ex-p evil-operator-range-type evil-this-type-modified evil-ex-range evil-this-type evil-line nil evil-visual-state-p evil-visual-range region-active-p evil-range region-beginning region-end exclusive t evil-echo-area-save #[0 "\300 \207" [evil-echo-area-restore] 1] copy-tree make-closure #[0 "\302\300!\205 r\300q\210\303\301!)\207" [V0 V1 buffer-live-p evil-change-state] 2] 2 evil-extract-count this-command-keys evil-change-state operator listify-key-sequence define-key vconcat evil-line-or-visual-line evil-read-motion undefined evil-get-command-property :suppress-operator evil-repeat-abort prefix-numeric-value evil-motion-range evil-type evil-contract-range evil-set-range-type evil-expand-range evil-range-beginning evil-range-end evil-write-echo-area evil-echo-area-message inhibit-quit evil-state evil-previous-state evil-previous-state-alist evil-next-state evil-operator-shortcut-map quit-flag evil-repeat-count current-prefix-arg mark-active evil-this-motion evil-this-motion-count evil-operator-range-beginning evil-operator-range-end] 18 (#$ . 14027)])#@945 Define type TYPE.
DOC is a general description and shows up in all docstrings.

Optional keyword arguments:
- `:expand' - expansion function.  This function should accept two
  positions in the current buffer, BEG and END,and return a pair of
  expanded buffer positions.
- `:contract' - the opposite of `:expand'.  Optional.
- `:one-to-one' - non-nil if expansion is one-to-one.  This means that
  `:expand' followed by `:contract' always return the original range.
- `:normalize' - normalization function.  This function should accept
  two unexpanded positions and adjust them before expansion.  May be
  used to deal with buffer boundaries.
- `:string' - description function.  Takes two buffer positions and
  returns a human-readable string.  For example "2 lines"

If further keywords and functions are specified, they are assumed to
be transformations on buffer positions, like `:expand' and `:contract'.

(fn TYPE DOC [[KEY FUNC]...])
(defalias 'evil-define-type '(macro . #[642 "\300\301D\302\211\211\211\211\211\211\211\303\n\242!\203	\211A\262\242\262	\211A\262\262\242\304	\"\203: \305	#\262	\202 \211\262\306\307\310\311\312	!#!\262\306\313\314#!\262\243@\262\243A@\262;\203j \313\315\"\202k \311\262\305	\316D#\262	\317=\203\267 \320\321\313\322$\323\324\316DD\325B\326\327\330\331\332\333\334\335D\336\337\326G\340V\341BB\257\342BBEFE\257\202	\320\343\313\344	%\323\324\316DD\345B\326\346\347\331\326\350\351BB\352\353\305\353\354\355=FEE\352\356\333\334\335D\336\337\326G\340V\357BB\257\360BB\361BBB\362BBBFE\257B\262\202 \363	\355\"\203-\305	\300\363\f\364\"\205*\363\f\300\"#\262	\365\366\367\316D\370BF\371	\316DC\"BB\207" [:one-to-one t nil keywordp plist-member plist-put intern replace-regexp-in-string "^:" #1="" symbol-name format "evil-%s-%s" "%s\n\n" quote :string defun (beg end &rest properties) "Return size of %s from BEG to END with PROPERTIES.\n\n%s%s" let type (plist range) when (and beg end) (evil-sort beg end) save-excursion (unless (plist-get properties :expanded) (setq range (apply #'evil-expand beg end type properties) beg (evil-range-beginning range) end (evil-range-end range) type (evil-type range type) plist (evil-range-properties range)) (setq properties (evil-concat-plists properties plist))) or apply function beg end 2 (properties) (#1#) (beg end &rest properties) "Perform %s transformation on %s from BEG to END with PROPERTIES.\n\n%s%s" (plist range) (and beg end) (evil-sort beg end) memq ('(:expand :contract)) setq properties :expanded :expand range (properties) ((apply #'evil-range beg end type properties)) (beg (evil-range-beginning range) end (evil-range-end range) type (evil-type range type) plist (evil-range-properties range)) ((setq properties (evil-concat-plists properties plist)) (apply #'evil-range beg end type properties)) plist-get :contract progn evil--add-to-alist evil-type-properties list append] 33 (#$ . 16420)]))#@258 Define an interactive code.
PROMPT, if given, is the remainder of the interactive string
up to the next newline. Command properties may be specified
via KEY-VALUE pairs. BODY should evaluate to a list of values.

(fn CODE (PROMPT) [[KEY VALUE]...] BODY...)
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put evil-define-type lisp-indent-function defun doc-string-elt 2 put edebug-form-spec (&define name [&optional stringp] [&rest [keywordp function-form]])] 6)
(defalias 'evil-define-interactive-code '(macro . #[385 "\211G\300V\205 \211@<\205 \211A\262\242@;\205 \211A\262\242\301\302@!\203> \211A\262\242B\262\211A\262\242B\262\202  \237\203T \303\304\205L C\"BB\202Y \305\306!D\307\310\311\312\305DEFE\207" [1 nil keywordp lambda append quote macroexp-progn eval-and-compile evil--add-to-alist evil-interactive-alist cons] 14 (#$ . 19412)]))
(byte-code "\300\301\302\303#\304\305!\203 \305\306\307\"\210\310\311!\207" [function-put evil-define-interactive-code lisp-indent-function defun fboundp font-lock-add-keywords emacs-lisp-mode (("(\\(evil-\\(?:ex-\\)?define-\\(?:[^ k][^ e][^ y]\\|[-[:word:]]\\{4,\\}\\)\\)\\>[ \f	\n]*\\(\\(?:\\sw\\|\\s_\\)+\\)?" (1 'font-lock-keyword-face) (2 'font-lock-function-name-face nil t)) ("(\\(evil-\\(?:delay\\|narrow\\|signal\\|save\\|with\\(?:out\\)?\\)\\(?:-[-[:word:]]+\\)?\\)\\>[ \f	\n]+" 1 'font-lock-keyword-face) ("(\\(evil-\\(?:[-[:word:]]\\)*loop\\)\\>[ \f	\n]+" 1 'font-lock-keyword-face)) provide evil-macros] 4)
