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



(byte-code "\300\301!\210\300\302!\210\303\304\305\306#\207" [require eieio-core cl-generic put eieio--defalias byte-hunk-handler byte-compile-file-form-defalias] 4)
#@179 Like `defalias', but with less side-effects.
More specifically, it has no side-effects at all when the new function
definition is the same (`eq') as the old one.

(fn NAME BODY)
(defalias 'eieio--defalias #[514 "\2119\203	 \300\301!\210\302!\203 K9\203 K\262\202	 \302!\205& K=?\205. \303\"\207" [cl--assertion-failed (not (symbolp body)) fboundp defalias] 5 (#$ . 251)])
#@440 Create a generic function METHOD.
DOC-STRING is the base documentation for this class.  A generic
function has no body, as its purpose is to decide which method body
is appropriate to use.  Uses `defmethod' to create methods, and calls
`defgeneric' for you.  With this implementation the ARGS are
currently ignored.  You can use `defgeneric' to apply specialized
top level documentation to a method.

(fn METHOD ARGS &optional DOC-STRING)
(defalias 'defgeneric '(macro . #[770 "\300\301D\302\301D\205 \303\"EE\207" [eieio--defalias quote eieio--defgeneric-init-form help-add-fundoc-usage] 10 (#$ . 641)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put defgeneric doc-string-elt 3 make-obsolete cl-defgeneric "25.1"] 5)
#@1054 Create a new METHOD through `defgeneric' with ARGS.

The optional second argument KEY is a specifier that
modifies how the method is called, including:
   :before  - Method will be called before the :primary
   :primary - The default if not specified
   :after   - Method will be called after the :primary
   :static  - First arg could be an object or class
The next argument is the ARGLIST.  The ARGLIST specifies the arguments
to the method as with `defun'.  The first argument can have a type
specifier, such as:
  ((VARNAME CLASS) ARG2 ...)
where VARNAME is the name of the local variable for the method being
created.  The CLASS is a class symbol for a class made with `defclass'.
A DOCSTRING comes after the ARGLIST, and is optional.
All the rest of the args are the BODY of the method.  A method will
return the value of the last form in the BODY.

Summary:

 (defmethod mymethod [:before | :primary | :after | :static]
                     ((typearg class-name) arg2 &optional opt &rest rest)
    "doc-string"
     body)

(fn METHOD &rest ARGS)
(defalias 'defmethod '(macro . #[385 "\300@!\205 \211A\262\242@\211@\211:\203 \211@AB\202 :\205' A@\301ABB\302\303		E\304\305D\305\nD\305D\306D\257E\207" [keywordp lambda progn defgeneric eieio--defmethod quote function] 16 (#$ . 1396)]))
(byte-code "\300\301\302\303#\304\301\305\306#\210\307\301\310\311#\207" [function-put defmethod doc-string-elt 3 make-obsolete cl-defmethod "25.1" put edebug-form-spec (&define [&name sexp] [&optional symbolp] cl-generic-method-args [&optional stringp] def-body)] 5)
#@20 

(fn TAG &rest _)
(defalias 'eieio--generic-static-symbol-specializers #[385 "\203 \301!>\204 \302\303!\210\301!>\205= \304!\305\211\2038 \211@\211B\262\306A@DB\262A\266\202\202 \210\211\237\266\202\207" [cl-struct-eieio--class-tags type-of cl--assertion-failed (or (null tag) (eieio--class-p tag)) eieio--generic-subclass-specializers nil eieio--static] 8 (#$ . 2986)])
(defconst eieio--generic-static-symbol-generalizer (byte-code "\300\301\302\303\304\305%\207" [#[385 "\300\301D\302DE\207" [and symbolp cl--find-class] 6 "\n\n(fn NAME &rest _)"] record cl--generic-generalizer eieio--generic-static-symbol-generalizer 61 eieio--generic-static-symbol-specializers] 7))
(defconst eieio--generic-static-object-generalizer (byte-code "\300\301\302\303\304\305%\207" [#[385 "9\205M \301N\211\262\205M \302!>\205M \303!\304\211\203H \211@\302!>\2040 \305\306\307D\"\210\211\310H\262\211B\262\311DB\262A\266\202\202 \210\211\237\266\202\207" [cl-struct-eieio--class-tags cl--class type-of eieio--class-precedence-list nil signal wrong-type-argument eieio--class 1 eieio--static] 10 "\n\n(fn TAG &rest _)"] record cl--generic-generalizer eieio--generic-static-object-generalizer 51 cl--generic-struct-tag] 7))
(cl-generic-define-method 'cl-generic-generalizers nil '((_specializer (head eieio--static))) nil #[257 "	D\207" [eieio--generic-static-symbol-generalizer eieio--generic-static-object-generalizer] 3 "\n\n(fn SPECIALIZER)"])
#@26 

(fn METHOD DOC-STRING)
(defalias 'eieio--defgeneric-init-form #[514 "\211\203\n \301\302#\210\303>\203 K\207\304!\305!>\204% \306\307\310D\"\210\211\311HK\206/ \312!\207" [cl-struct-cl--generic-tags put function-documentation (no-next-method no-applicable-method) cl-generic-ensure-function type-of signal wrong-type-argument cl--generic 1 cl--generic-make-function] 7 (#$ . 4462)])
#@34 

(fn METHOD KIND ARGCLASS CODE)
(defalias 'eieio--defmethod #[1028 "\300\301!\227!\262\302=\204 \206 \303\202 \304\262\305D\306>?\307DC\310\267\202K \311\262\312\313BB\262\314\315\"\202L \316\262\312B\262\314\317\"\202L \320\321>?\205Z C\211\203\230 \322\323\"\324\325\"\205 \326\304\"\211\203| \211A\202} \262\327\330\331\332\333!\334\"\335\336\337	B\"%\266\203\202\231 %\210\340>\203\270 \341\304\342\343\"#\204\270 \320\304\303\344%\210\207" [intern symbol-name :static t nil eieio--static (:before :after) arg #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (no-next-method 43 no-applicable-method 60)) cl-no-next-method generic method make-closure #[642 "\301\300\"\207" [V0 apply] 6 "\n\n(fn GENERIC METHOD &rest ARGS)"] cl-no-applicable-method #[642 "\302\300\303!	>\204 \304\305\306D\"\210\307HB$\207" [V0 cl-struct-cl--generic-tags apply type-of signal wrong-type-argument cl--generic 1] 10 "\n\n(fn GENERIC ARG &rest ARGS)"] cl-generic-define-method (nil :primary) documentation raw help-function-arglist preserve-names help-split-fundoc make-byte-code 385 "\301\302\"\303K\304K\301\305#\216\303M\210\304M\210\306\300\")\207" vconcat vector [make-closure #[0 "\301\300!\207" [V0 cl--generic-isnot-nnm-p] 2] next-method-p call-next-method #[0 "\302\300M\210\303\301M\207" [V0 V1 next-method-p call-next-method] 2] apply] 9 help-add-fundoc-usage cl-cnm (:before :after) cl-find-method mapcar #[257 "\211:\203	 \211A@\207\300\207" [t] 2 "\n\n(fn ARG)"] #[385 "\300!\205\n \301\"\207" [cl--generic-isnot-nnm-p apply] 5 "\n\n(fn CNM &rest ARGS)"]] 25 (#$ . 4863)])
(byte-code "\300\301\302\303\301\302NB#\207" [put cl-no-applicable-method error-conditions no-method-definition] 6)
#@14 

(fn FNAME)
(defalias 'generic-p #[257 "\211\300N??\207" [cl--generic] 3 (#$ . 6669)])
#@19 

(fn &rest ARGS)
(defalias 'no-next-method #[128 "\300\301\302\303$\207" [apply cl-no-next-method unknown nil] 6 (#$ . 6763)])
(make-obsolete 'no-next-method 'cl-no-next-method "25.1")
#@33 

(fn OBJECT METHOD &rest ARGS)
(defalias 'no-applicable-method #[642 "\300\301$\207" [apply cl-no-applicable-method] 8 (#$ . 6956)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\210\300\305\306\303#\207" [make-obsolete no-applicable-method cl-no-applicable-method "25.1" defalias call-next-method cl-call-next-method nil] 4)
(defalias 'next-method-p #[0 "\300\301!\210\302\207" [message "next-method-p called outside of a primary or around method" nil] 2])
(make-obsolete 'next-method-p 'cl-next-method-p "25.1")
#@82 Obsolete work part of an old version of the `defmethod' macro.

(fn METHOD ARGS)
(defalias 'eieio-defmethod #[514 "\300\301BB!\210\207" [eval defmethod] 6 (#$ . 7485)])
(make-obsolete 'eieio-defmethod 'cl-defmethod "24.1")
#@89 Obsolete work part of an old version of the `defgeneric' macro.

(fn METHOD DOC-STRING)
(defalias 'eieio-defgeneric #[514 "\300\301\302\205\n CBBB!\210\303\207" [eval defgeneric (x) method] 7 (#$ . 7717)])
(make-obsolete 'eieio-defgeneric 'cl-defgeneric "24.1")
#@41 

(fn CNAME SUPERCLASSES SLOTS OPTIONS)
(defalias 'eieio-defclass #[1028 "\300\301BBBB!\207" [eval defclass] 10 (#$ . 7988)])
(byte-code "\300\301\302\303#\210\304\305!\207" [make-obsolete eieio-defclass eieio-defclass-internal "25.1" provide eieio-compat] 4)
