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



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require ement ement-room-list taxy taxy-magit-section] 2)
(defvar ement-directory-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\207" [make-sparse-keymap define-key "" ement-directory-RET [mouse-1] ement-directory-mouse-1 "+" ement-directory-next] 5))
(custom-declare-group 'ement-directory nil "Options for room directories." :group 'ement)
(defvar ement-directory-mode-hook nil)
(byte-code "\300\301N\204\f \302\300\301\303#\210\304\305!\204 \302\305\306\307#\210\300\207" [ement-directory-mode-hook variable-documentation put "Hook run after entering Ement-Directory mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" boundp ement-directory-mode-map definition-name ement-directory-mode] 4)
(defvar ement-directory-mode-map (make-sparse-keymap))
(byte-code "\301\302N\204 \303\301\302\304\305!#\210\306\307!\204* \303\307\310\311#\210\312\307\306\307!\203& \313\202( \314 \"\210\307\302N\2048 \303\307\302\304\315!#\210\306\300!\204X \303\300\310\311#\210\312\300\306\300!\203P \313\202V \316\300\313\"\210\"\210\300\302N\204f \303\300\302\304\317!#\210\303\311\320\321#\207" [ement-directory-mode-abbrev-table ement-directory-mode-map variable-documentation put purecopy "Keymap for `ement-directory-mode'." boundp ement-directory-mode-syntax-table definition-name ement-directory-mode defvar-1 nil make-syntax-table "Syntax table for `ement-directory-mode'." define-abbrev-table "Abbrev table for `ement-directory-mode'." derived-mode-parent magit-section-mode] 5)#@544 Major mode derived from `magit-section-mode' by `define-derived-mode'.
It inherits all of the parent's attributes, but has its own keymap,
abbrev table and syntax table:

  `ement-directory-mode-map', `ement-directory-mode-abbrev-table' and
`ement-directory-mode-syntax-table'

which more-or-less shadow magit-section-mode's corresponding tables.

In addition to any hooks its parent mode might have run, this mode runs the hook
`ement-directory-mode-hook', as the final or penultimate step during initialization.

\{ement-directory-mode-map}
(defalias 'ement-directory-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203 \314\311\313\310\313N#\210\315!\204' \316\317 \"\210\320\f!\211\2035 \211\321 =\203; \322\f\323 \"\210\210\324\325\"\204R =\204R \326\325C#\210\327!\210\330\f!\210)\331\332!\207" [delay-mode-hooks major-mode mode-name ement-directory-mode-map ement-directory-mode-syntax-table ement-directory-mode-abbrev-table make-local-variable t magit-section-mode ement-directory-mode "Ement-Directory" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table run-mode-hooks ement-directory-mode-hook local-abbrev-table] 5 (#$ . 1742) nil])#@57 Alist storing information in `ement-directory' buffers.
(defvar ement-directory-etc nil (#$ . 3078))
(byte-code "\301\302!\210\300\303\300\304\305#\210\306\307\310\311\312\"B\"\210\313\307\314\315#\210\316\307\317\320#\266\321\322M\210\32315 \324\325\321\304$0\210\202< \210\326\325\321#\327\330M\210\3311O \324\332\327\304$0\210\202V \210\326\332\327#\333\334M\210\3351i \324\336\333\304$0\210\202p \210\326\336\333#\337\340M\210\3411\203 \324\342\337\304$0\210\202\212 \210\326\342\337#\343\344\345\346\347DD\350\351\352%\207" [ement-directory-keys make-variable-buffer-local ement-directory-etc defvar-1 nil "Alist mapping key aliases to key functions.\nThis instance is defined with the macro:\n`ement-directory-define-key'." defalias ement-directory-define-key macro make-closure #[642 "\301\302\303\304#!\305\306\307BBBD\310\311\312DE\313\314\300\312\nDE\312DEE\207" [V0 intern format "%s-%s" "ement-directory-key" cl-function lambda item progn fset quote setf map-elt] 12 "FIXME: Docstring.\n\n(fn NAME ARGS &rest BODY)"] function-put lisp-indent-function defun put edebug-form-spec (&define symbolp listp &rest def-form) ement-directory-key-joined-p #[257 "\302!\210\303\304\"\302!\210\303\305\"\306\307!	>\204# \310\311\312D\"\210\313H\314\315\316\317&\2050 \320\207" [ement-directory-etc cl-struct-ement-session-tags mapp map-elt session room_id cl-find type-of signal wrong-type-argument ement-session 5 :key ement-room-id :test equal "Joined"] 11 "\n\n(fn ITEM)"] (map-not-inplace) map-put! joined-p map-insert ement-directory-key-size #[385 "\300\301\"A@\300\302\"A@\211\203B \211@\303>\203+ \211A\204# \304\305@\"\210\211AA\262\202 \306>A@\2039 \307\262\202 \304\310@\"\210\202 \210\311!\210\312\313\"\203Z \211W\203Z \314\315\"\207\205h \211V\205h \314\316\"\207" [plist-member :< :> (:< :> :allow-other-keys) error "Missing argument for %s" :allow-other-keys nil "Keyword argument %s not one of (:< :>)" mapp map-elt num_joined_members format "< %s members" "> %s members"] 8 "\n\n(fn ITEM &key < >)"] (map-not-inplace) size ement-directory-key-space-p #[257 "\300!\210\301\302\"\211\303\232\205 \304\207" [mapp map-elt room_type "m.space" "Spaces"] 4 "Groups rooms that are themselves spaces.\n\n(fn ITEM)"] (map-not-inplace) space-p ement-directory-key-people-p #[257 "\302!\210\303\304\"\302!\210\303\305\"\303\306\"\211\307\232?\205L \310\311!	>\204. \312\313\314D\"\210\315H\316\317\320\321&\211\205? \322\"\211\205J \323\324\325\326\327\326%\266\202\207" [ement-directory-etc cl-struct-ement-session-tags mapp map-elt session room_id room_type "m.space" cl-find type-of signal wrong-type-argument ement-session 5 :key ement-room-id :test equal ement--room-direct-p propertize "People" face ement-room-list-direct font-lock-face] 13 "\n\n(fn ITEM)"] (map-not-inplace) people-p custom-declare-variable ement-directory-default-keys funcall function #[0 "\300\207" [((joined-p (people-p) (and :name "Rooms" :keys ((not people-p)))) (space-p) ((size :> 10000)) ((size :> 1000)) ((size :> 100)) ((size :> 10)) ((size :< 11)))] 1 ""] "Default keys." :type sexp] 7)#@70 Hash table caching room avatars for the `ement-directory' room list.
(defvar ement-directory-room-avatar-cache (make-hash-table) (#$ . 6233))
(byte-code "\300\301!\210\302\303\304\305\306\307\310DD\311\312\313%\210\304\314\306\307\315DD\316\312\313%\210\317\302\320\321#\210\317\303\320\322#\210\323\324\325\326\327#B\"\210\330\324\331\332#\266\207" [make-variable-buffer-local ement-directory-room-avatar-cache ement-directory-columns ement-directory-column-formatters custom-declare-variable ement-directory-level-indent funcall function #[0 "\300\207" [2] 1 #1=""] "Indentation applied to each level of depth for `ement-directory' columns." :type integer ement-directory-item-indent #[0 "\300\207" [2] 1 #1#] "Indentation applied to each item for `ement-directory' columns." defvar-1 nil "Columns defined by `ement-directory-define-column'." "Column formatters defined by the macro:\n`ement-directory-define-column'." defalias ement-directory-define-column macro make-closure #[642 ";\204 \302\303\304\305E\"\210\306\307\227P!\310!\210\311\312\"\311\313\"\306\314\315Q!\316\317\"\320\321\313\"\205= \322\323BBBB\324\325\326\304\320BDC\320\n\205c \327\n\330\331\332\333\304\334BBBDD\335BBE\f\205\202 \f9\204w \302\303\336\337E\"\210\340\304\341\304\342\343DFE\327\344\345\346DE\330\347\350\351\352\353\354E\355E\356BBDC\357BBE\360BBBB\361BBBF\340\362\363\362\300\364BBBE\365\nDE\340\362\366\362\300\367BBBE\370\371\"E\372\373\374\343\301D\375BBE\340\374\343\301D\376BB\377\374\343\301D\201@ BB\201A DEEE\201B \374\343\301D\201C BB\201D BBB\257\207" [V0 V1 signal wrong-type-argument string name intern "ement-directory-column-format-" mapp map-elt :face :max-width "ement-directory-column-" "-max-width" format "Maximum width of the %s column." progn plist-member defcustom (:type '(choice (integer :tag "Maximum width") (const :tag "Unlimited width" nil))) defun (item depth) if-let when let (old-string string) new-string truncate-string-to-width (nil nil t) ((unless (equal old-string new-string) (put-text-property 0 (length new-string) 'help-echo old-string new-string) (setf string new-string))) ":face must be a face symbol" face setf propertize 'face quote equal car ement-directory-columns indentation make-string + * depth ement-directory-level-indent ement-directory-item-indent (32) ((setf string (concat indentation string))) (string) (#1#) alist-get 'formatter (nil nil #'equal) function 'align (nil nil #'equal) plist-get :align unless member get ('standard-value) ('standard-value) append ('standard-value) list cl-pushnew ('custom-type) (:test #'equal)] 27 "Define a column formatting function with NAME.\nNAME should be a string.  BODY should return a string or nil.  In\nthe BODY, `item' is bound to the item being formatted, and `depth' is\nbound to the item's depth in the hierarchy.\n\nPLIST may be a plist setting the following options:\n\n  `:align' may be `left' or `right' to align the column\n  accordingly.\n\n  `:face' is a face applied to the string.\n\n  `:max-width' defines a customization option for the column's\n  maximum width with the specified value as its default: an\n  integer limits the width, while nil does not.\n\n(fn NAME PLIST &rest BODY)"] function-put lisp-indent-function defun] 9)#@19 

(fn ITEM DEPTH)
(defalias 'ement-directory-column-format-✓ #[514 "\305!\210\306\307\"\305!\210\306\310\"\311\312!	>\204# \313\314\315D\"\210\316H\317\320\321\322&\2033 \323\2024 \324\262\262\262\211\203S \n@\325\232\203R \326_\f\\\327\"\211P\266\202\207\330\207" [ement-directory-etc cl-struct-ement-session-tags ement-directory-columns ement-directory-level-indent ement-directory-item-indent mapp map-elt session room_id cl-find type-of signal wrong-type-argument ement-session 5 :key ement-room-id :test equal "✓" " " #("✓" 0 1 (help-echo "Joined")) make-string 32 ""] 12 (#$ . 9523)])
(byte-code "\301\302\303#\304A\236\211\203 \211\305\241\266\2025 \304\305B\211\262AB\203* \241\266\2025 \302B\211\262B\266\301\302\303#\306A\236\211\203J \211\307\241\266\202i \306C\211\262AB\203^ \241\266\202i \302B\211\262B\266\302\310\311N\235\204} \312\310\311\313\310\311N\302C\"#\210\312\310\314\310\314N\302\235\203\215 \211\202\220 \302B\262#\210\315\316\317\320\321DD\322\323\324%\207" [ement-directory-column-formatters assoc #("✓" 0 1 (help-echo "Joined")) equal formatter ement-directory-column-format-✓ align nil ement-directory-columns standard-value put append custom-type custom-declare-variable ement-directory-column-Name-max-width funcall function #[0 "\300\207" [25] 1 ""] "Maximum width of the Name column." :type (choice (integer :tag "Maximum width") (const :tag "Unlimited width" nil))] 6)#@19 

(fn ITEM DEPTH)
(defalias 'ement-directory-column-format-name #[514 "\306!\210\307\310\"\307\311\"\307\312\"\307\313\"\306!\210\307\314\"\315\316\232\203' \317\202T \320\321!	>\2049 \322\323\324D\"\210\325H\326\327\330\331&\211\262\203S \332\"\203S \333\202T \334\335\206_ \206_ \336\337\340%\266\202\262\266\204\211\203\244 \n\203\217 \211\341\n\315\211\342%\232\204\215 \343\344G\345%\210\211\262\266@\346\232\203\243 \347\f_\\\350\"\211P\266\202\207\351\207" [ement-directory-etc cl-struct-ement-session-tags ement-directory-column-Name-max-width ement-directory-columns ement-directory-level-indent ement-directory-item-indent mapp map-elt name room_id room_type canonical_alias session nil "m.space" ement-room-list-space cl-find type-of signal wrong-type-argument ement-session 5 :key ement-room-id :test equal ement--room-direct-p ement-room-list-direct ement-room-list-name propertize "[unnamed]" face font-lock-face truncate-string-to-width t put-text-property 0 help-echo "Name" make-string 32 ""] 15 (#$ . 10992)])
(byte-code "\301\302\303#\304A\236\211\203 \211\305\241\266\2025 \304\305B\211\262AB\203* \241\266\2025 \302B\211\262B\266\301\302\303#\306A\236\211\203J \211\307\241\266\202i \306C\211\262AB\203^ \241\266\202i \302B\211\262B\266\302\310\311N\235\204} \312\310\311\313\310\311N\302C\"#\210\312\310\314\310\314N\302\235\203\215 \211\202\220 \302B\262#\210\315\316\317\320\321DD\322\323\324%\207" [ement-directory-column-formatters assoc "Name" equal formatter ement-directory-column-format-name align nil ement-directory-columns standard-value put append custom-type custom-declare-variable ement-directory-column-Alias-max-width funcall function #[0 "\300\207" [25] 1 ""] "Maximum width of the Alias column." :type (choice (integer :tag "Maximum width") (const :tag "Unlimited width" nil))] 6)#@19 

(fn ITEM DEPTH)
(defalias 'ement-directory-column-format-alias #[514 "\304!\210\305\306\"\211\206 \307\262\211\203I \2034 \211\310\311\211\312%\232\2042 \313\314G\315%\210\211\262\266	@\316\232\203H \317\n_\\\320\"\211P\266\202\207\307\207" [ement-directory-column-Alias-max-width ement-directory-columns ement-directory-level-indent ement-directory-item-indent mapp map-elt canonical_alias "" truncate-string-to-width nil t put-text-property 0 help-echo "Alias" make-string 32] 11 (#$ . 12887)])
(byte-code "\301\302\303#\304A\236\211\203 \211\305\241\266\2025 \304\305B\211\262AB\203* \241\266\2025 \302B\211\262B\266\301\302\303#\306A\236\211\203J \211\307\241\266\202i \306C\211\262AB\203^ \241\266\202i \302B\211\262B\266\302\310\311N\235\204} \312\310\311\313\310\311N\302C\"#\210\312\310\314\310\314N\302\235\203\215 \211\202\220 \302B\262#\207" [ement-directory-column-formatters assoc "Alias" equal formatter ement-directory-column-format-alias align nil ement-directory-columns standard-value put append custom-type] 6)#@19 

(fn ITEM DEPTH)
(defalias 'ement-directory-column-format-size #[514 "\303!\210\304\305\"\306!\262\211\203& @\307\232\203% \310	_\n\\\311\"\211P\266\202\207\312\207" [ement-directory-columns ement-directory-level-indent ement-directory-item-indent mapp map-elt num_joined_members number-to-string "Size" make-string 32 ""] 6 (#$ . 13974)])
(byte-code "\301\302\303#\304A\236\211\203 \211\305\241\266\2025 \304\305B\211\262AB\203* \241\266\2025 \302B\211\262B\266\301\302\303#\306A\236\211\203J \211\307\241\266\202j \306\307B\211\262AB\203_ \241\266\202j \302B\211\262B\266\302\310\311N\235\204~ \312\310\311\313\310\311N\302C\"#\210\312\310\314\310\314N\302\235\203\216 \211\202\221 \302B\262#\210\315\316\317\320\321DD\322\323\324%\207" [ement-directory-column-formatters assoc "Size" equal formatter ement-directory-column-format-size align right ement-directory-columns standard-value put append custom-type custom-declare-variable ement-directory-column-Topic-max-width funcall function #[0 "\300\207" [50] 1 ""] "Maximum width of the Topic column." :type (choice (integer :tag "Maximum width") (const :tag "Unlimited width" nil))] 6)#@19 

(fn ITEM DEPTH)
(defalias 'ement-directory-column-format-topic #[514 "\304!\210\305\306\"\211\203 \307\310\311\312\313%\202 \314\262\211\203S \203> \211\315\312\211\313%\232\204< \316\317G\320%\210\211\262\266	@\321\232\203R \322\n_\\\323\"\211P\266\202\207\314\207" [ement-directory-column-Topic-max-width ement-directory-columns ement-directory-level-indent ement-directory-item-indent mapp map-elt topic replace-regexp-in-string "\n" " | " nil t "" truncate-string-to-width put-text-property 0 help-echo "Topic" make-string 32] 11 (#$ . 15159)])
(byte-code "\301\302\303#\304A\236\211\203 \211\305\241\266\2025 \304\305B\211\262AB\203* \241\266\2025 \302B\211\262B\266\301\302\303#\306A\236\211\203J \211\307\241\266\202i \306C\211\262AB\203^ \241\266\202i \302B\211\262B\266\302\310\311N\235\204} \312\310\311\313\310\311N\302C\"#\210\312\310\314\310\314N\302\235\203\215 \211\202\220 \302B\262#\207" [ement-directory-column-formatters assoc "Topic" equal formatter ement-directory-column-format-topic align nil ement-directory-columns standard-value put append custom-type] 6)#@19 

(fn ITEM DEPTH)
(defalias 'ement-directory-column-format-id #[514 "\303!\210\304\305\"\211\203! @\306\232\203  \307	_\n\\\310\"\211P\266\202\207\311\207" [ement-directory-columns ement-directory-level-indent ement-directory-item-indent mapp map-elt room_id "ID" make-string 32 ""] 6 (#$ . 16300)])
(byte-code "\302\303\304#\305A\236\211\203 \211\306\241\266\2025 \305\306B\211\262AB\203* \241\266\2025 \303B\211\262B\266\302\303\304#\307A\236\211\203J \211\310\241\266\202i \307C\211\262AB\203^ \241\266\202i \303B\211\262B\266\303\301\311N\235\204} \312\301\311\313\301\311N\303C\"#\210\312\301\314\301\314N\303\235\203\215 \211\202\220 \303B\262#\210	\204\235 \315\301\316\"\210\310\207" [ement-directory-column-formatters ement-directory-columns assoc "ID" equal formatter ement-directory-column-format-id align nil standard-value put append custom-type set-default ("Name" "Alias" "Size" "Topic" "ID")] 6)#@216 View the public room directory on SERVER with SESSION.
Show up to LIMIT rooms.  Interactively, with prefix, prompt for
server and LIMIT.

SINCE may be a next-batch token.

(fn &key SERVER SESSION SINCE (LIMIT 100))
(defalias 'ement-directory #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"\206 \305A@\211\203S \211@\306>\203; \211A\2043 \307\310@\"\210\211AA\262\202 \311>A@\203J \312\262\202 \307\313@\"\210\202 \210\314\315$\316DC\203m \317\320DC\"\262\321\322\323\324\314\325	&&\210\326\327#\207" [plist-member :server :session :since :limit (nil 100) (:server :session :since :limit :allow-other-keys) error "Missing argument for %s" :allow-other-keys nil "Keyword argument %s not one of (:server :session :since :limit)" make-closure #[128 "\303\304\302\305\301\306\300&\207" [V0 V1 V2 ement-directory :server :session :limit] 8 "\n\n(fn &rest IGNORE)" nil] "limit" append "since" ement-api "publicRooms" :params :then #[257 "\305!\210\306\307\"\306\310\"\306\311\"\312\313\302\314\315\316\304\"\317\315\320\304\"\321\322\323\300\301\303\304&&	\207" [V0 V1 V2 V3 V4 mapp map-elt chunk next_batch total_room_count_estimate ement-directory--view :append-p :buffer-name format "*Ement Directory: %s*" :root-section-name "Ement Directory: %s" :init-fn make-closure #[0 "\306\236\211\203 \211\305\241\266\202 \306\305B\211\262B\210\307\236\211\203, \211\304\241\266\2028 \307\304B\211\262B\210\310\236\211\203H \211\301\241\266\202T \310\301B\211\262B\210\311\236\211\203d \211\303\241\266\202p \311\303B\211\262B\210\312\313!\210\302\300\205\201 \314\315\316!\300\"\207" [V0 V1 V2 V3 V4 V5 server session next-batch limit make-local-variable revert-buffer-function message substitute-command-keys "%s rooms remaining (use \\[ement-directory-next] to fetch more)" ement-directory-etc] 3]] 23 "\n\n(fn RESULTS)"] ement-message "Listing %s rooms on %s..."] 20 (#$ . 17255) (byte-code "\303\304\305\"\203[ \306\307\310\211\311\211!	>\204 \312\313\314D\"\210\315H!\n>\204B \312\313\316\311!	>\204; \312\313\314\nD\"\210\315HD\"\210\311!	>\204R \312\313\314D\"\210\315H\317H$\202\241 \311\211!	>\204k \312\313\314D\"\210\315H!\n>\204\215 \312\313\316\311!	>\204\207 \312\313\314D\"\210\315HD\"\210\311!	>\204\234 \312\313\314D\"\210\211\315H\317H\320\321F\203\264 \322\323\324\325\326\"#\262\207" [current-prefix-arg cl-struct-ement-session-tags cl-struct-ement-server-tags ement-complete-session :prompt "Search on session: " read-string "Search on server: " nil type-of signal wrong-type-argument ement-session 2 ement-server 1 :server :session plist-put :limit read-number "Limit number of rooms: " 100] 12)])#@138 View public rooms on SERVER matching QUERY.
QUERY is a string used to filter results.

(fn QUERY &key SERVER SESSION SINCE (LIMIT 1000))
(defalias 'ement-directory-search #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"\206 \305A@\211\203S \211@\306>\203; \211A\2043 \307\310@\"\210\211AA\262\202 \311>A@\203J \312\262\202 \307\313@\"\210\202 \210\314\315	$\316\312\317B\320\321BD\322BE\"\323\324\325\326\327\330!\331\314\332&&\210\333\334	#\207" [plist-member :server :session :since :limit (nil 1000) (:server :session :since :limit :allow-other-keys) error "Missing argument for %s" :allow-other-keys nil "Keyword argument %s not one of (:server :session :since :limit)" make-closure #[128 "\303\302\304\301\305\300%\207" [V0 V1 V2 ement-directory-search :server :session] 7 "\n\n(fn &rest IGNORE)" nil] rassq-delete-all "limit" "filter" "generic_search_term" "since" ement-api "publicRooms" :method post :data json-encode :then #[257 "\306!\210\307\310\"\307\311\"\307\312\"\313\314\302\315\316\317\305\304#\320\316\321\305\304#\322\323\324\300\301\303\304\305&&	\207" [V0 V1 V2 V3 V4 V5 mapp map-elt chunk next_batch total_room_count_estimate ement-directory--view :append-p :buffer-name format "*Ement Directory: \"%s\" on %s*" :root-section-name "Ement Directory: \"%s\" on %s" :init-fn make-closure #[0 "\307\236\211\203 \211\305\241\266\202 \307\305B\211\262B\210\310\236\211\203, \211\304\241\266\2028 \310\304B\211\262B\210\311\236\211\203H \211\301\241\266\202T \311\301B\211\262B\210\312\236\211\203d \211\303\241\266\202p \312\303B\211\262B\210\313\236\211\203\200 \211\306\241\266\202\214 \313\306B\211\262B\210\314\315!\210\302\300\205\235 \316\317\320!\300\"\207" [V0 V1 V2 V3 V4 V5 V6 server session next-batch limit query make-local-variable revert-buffer-function message substitute-command-keys "%s rooms remaining (use \\[ement-directory-next] to fetch more)" ement-directory-etc] 3]] 24 "\n\n(fn RESULTS)"] ement-message "Searching for %S on %s..."] 24 (#$ . 19995) (byte-code "\303\304\305\"\203[ \306\307\310\211\311\211!	>\204 \312\313\314D\"\210\315H!\n>\204B \312\313\316\311!	>\204; \312\313\314\nD\"\210\315HD\"\210\311!	>\204R \312\313\314D\"\210\315H\317H$\202\241 \311\211!	>\204k \312\313\314D\"\210\315H!\n>\204\215 \312\313\316\311!	>\204\207 \312\313\314D\"\210\315HD\"\210\311!	>\204\234 \312\313\314D\"\210\211\315H\317H\306\320\321\"!\211\322\323\257\203\277 \211\324A\325\326\327\330\"#\241\210\207" [current-prefix-arg cl-struct-ement-session-tags cl-struct-ement-server-tags ement-complete-session :prompt "Search on session: " read-string "Search on server: " nil type-of signal wrong-type-argument ement-session 2 ement-server 1 format "Search for rooms on %s matching: " :server :session plist-put :limit read-number "Limit number of rooms: " 1000] 12)])#@58 Fetch next batch of results in `ement-directory' buffer.
(defalias 'ement-directory-next #[0 "\301!\210\302\303\"\302\304\"\302\305\"\302\306\"\302\307\"\204  \310\311!\210\2033 \312\313\314\315	\316&	\207\317\313\314\315\316\f&\207" [ement-directory-etc mapp map-elt next-batch query limit server session user-error "No more results" ement-directory-search :server :session :limit :since ement-directory] 15 (#$ . 22938) nil])#@50 Call `ement-directory-RET' at EVENT.

(fn EVENT)
(defalias 'ement-directory-mouse-1 #[257 "\300!\210\301\302!\207" [mouse-set-point call-interactively ement-directory-RET] 3 (#$ . 23391) "e"])#@56 View or join room at point, or cycle section at point.
(defalias 'ement-directory-RET #[0 "\303\304 \305\"\211\204 \306\207\211<\203] \303\304 \305\"\307!\210\310\311\"\310\312\"\307!\210\310\313\"\314\315!	>\204: \316\317\320D\"\210\321H\322\323\324\325&\211\203L \326\"\207\327\330\331#!\205\\ \332\"\207\315!\n>\203i \333\334!\207\335\336\337#\205r \306\207" [ement-directory-etc cl-struct-ement-session-tags cl-struct-taxy-magit-section-tags eieio-oref magit-current-section value nil mapp map-elt name room_id session cl-find type-of signal wrong-type-argument ement-session 5 :key ement-room-id :test equal ement-view-room yes-or-no-p format "Join room \"%s\" <%s>? " ement-join-room call-interactively magit-section-cycle error "cl-etypecase failed: %s, %s" (null list taxy-magit-section)] 12 (#$ . 23590) nil])#@580 View ROOMS in an `ement-directory-mode' buffer.
ROOMS should be a list of rooms from an API request.  Calls
INIT-FN immediately after activating major mode.  Sets
BUFFER-NAME and ROOT-SECTION-NAME, and uses
DISPLAY-BUFFER-ACTION.  KEYS are a list of `taxy' keys.  If
APPEND-P, add ROOMS to buffer rather than replacing existing
contents.  To be called by `ement-directory-search'.

(fn ROOMS &key INIT-FN APPEND-P (BUFFER-NAME "*Ement Directory*") (ROOT-SECTION-NAME "Ement Directory") (KEYS ement-directory-default-keys) (DISPLAY-BUFFER-ACTION \='(display-buffer-same-window)))
(defalias 'ement-directory--view #[385 "\306\307\"A@\306\310\"A@\306\311\"\206 \312A@\306\313\"\206 \314A@\306\315\"\206* \316DA@\306\317\"\2065 \320A@\211\203o \211@\321>\203W \211A\204O \322\323@\"\210\211AA\262\2029 \324>A@\203f \316\262\2029 \322\325@\"\210\2029 \210\316\211\326\327\316\211\211C\211\330\331#\240\210r\332!q\210	\333=\204\221 \333 \210\f\203\232 \f \210\203\246 \334\335\n\"\202\262 \211\242\336\337\340\"$\316\341`\342 \205\300 \343\342 !\316\344\345\346\347\350\f\351\352\353\"\"##\262\335\n\236\211\203\344 \211\241\266\202\356 \335B\211\262\nB\210\354=>#\262\355\n\236@\203	\241\266\202\355B\211\262\nB\266\211A\262\356>\"?\357!\2030\360\357!!\2021\361\262\n\362 \210\363 \210\212\364\365\366\367\361%)\210b\210\203X\370!\203X\371\370!\372\"b\210+\266\373	\"\210\357!\203r\374\357\f!\"\210\nq\207" [ement-directory-default-keys major-mode ement-directory-etc ement-directory-keys taxy-magit-section-insert-indent-items inhibit-read-only plist-member :init-fn :append-p :buffer-name (nil "*Ement Directory*") :root-section-name (nil "Ement Directory") :keys nil :display-buffer-action (nil (display-buffer-same-window)) (:init-fn :append-p :buffer-name :root-section-name :keys :display-buffer-action :allow-other-keys) error "Missing argument for %s" :allow-other-keys "Keyword argument %s not one of (:init-fn :append-p :buffer-name :root-section-name :keys :display-buffer-action)" #[257 "\301\302\303\"\"\207" [ement-directory-etc gethash alist-get format-table] 6 "\n\n(fn ITEM)"] #[257 "\300!\210\301\302\"\207" [mapp map-elt num_joined_members] 4 "\n\n(fn ITEM)"] make-closure #[128 "\303\304\305\300\242\306\301\307\n\310\311\n&\n\207" [V0 V1 ement-room-list-level-indent apply make-taxy-magit-section :make :format-fn :level-indent :item-indent 2] 12 "\n\n(fn &rest ARGS)"] get-buffer-create ement-directory-mode alist-get taxy :name :take taxy-make-take-function t magit-current-section magit-section-ident taxy-sort* string> taxy-name taxy-sort > taxy-fill cl-coerce list taxy-magit-section-format-items format-table taxy-magit-section-format-header get-buffer-window window-start 0 delete-all-overlays erase-buffer taxy-magit-section-insert :items first :initial-depth magit-get-section eieio-oref start display-buffer set-window-start ement-directory-columns ement-directory-column-formatters header-line-format] 29 (#$ . 24436)])
(byte-code "\300\301\302\303#\300\207" [function-put ement-directory--view lisp-indent-function defun] 4)#@109 View child rooms in SPACE on SESSION.
SPACE may be a room ID or an `ement-room' struct.

(fn SPACE SESSION)
(defalias 'ement-view-space #[514 ";\203	 \202# \301!>\205# \301!>\204  \302\303\304D\"\210\305H\306\307\"\310\311#\312\313\314\315\310\316\f$&\207" [cl-struct-ement-room-tags type-of signal wrong-type-argument ement-room 1 format "rooms/%s/hierarchy" make-closure #[128 "\302\301\300\"\207" [V0 V1 ement-view-space] 4 "\n\n(fn &rest IGNORE)" nil] ement-api :version "v1" :then #[257 "\303!\210\304\305\"\304\306\"\211\307\310\311\312\313\302\301\"\"\314\311\315\316\317\320\321\322\321%\313\302\301\"#\323\324\325	\300\301\302%&\207" [V0 V1 V2 mapp map-elt rooms next_batch ement-directory--view :buffer-name format "*Ement Directory: space %s" ement--format-room :root-section-name "*Ement Directory: rooms in %s %s" propertize "space" face font-lock-type-face font-lock-face :init-fn make-closure #[0 "\306\f\236\211\203 \211\302\241\266\202 \306\302B\211\262\fB\210\307\f\236\211\203( \211\300\241\266\2022 \307\300B\211\262\fB\210\310\f\236\211\203A \211\303\241\266\202K \310\303B\211\262\fB\210\311\305!\210\301\211\207" [V0 V1 V2 V3 ement-directory-etc revert-buffer-function session next-batch space make-local-variable] 3]] 17 "\n\n(fn RESULTS)"]] 16 (#$ . 27591) (byte-code "\300\301\302\303\304$\207" [ement-complete-room :predicate ement--space-p :prompt "Space: "] 5)])
(provide 'ement-directory)
