;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\306\307\310\311\312\303\313\314&\210\315\316\317\320\321DD\322\323\324%\210\315\325\317\320\326DD\327\323\330%\210\315\331\317\320\332DD\333\323\334%\207" [require cl-lib comint chess chess-network chess-pos custom-declare-group chess-ics nil "Engine for interacting with Internet Chess Servers." :group :link (custom-manual "(chess)Internet Chess Servers") custom-declare-variable chess-ics-server-list funcall function #[0 "\300\207" [(("freechess.org" 5000) ("chess.unix-ag.uni-kl.de" 5000) ("chessclub.com" 5000) ("chess.net" 5000) ("oics.olympuschess.com" 5000))] 1] "A list of servers to connect to.\nThe format of each entry is:\n\n (SERVER PORT [HANDLE] [PASSWORD-OR-FILENAME] [HELPER] [HELPER ARGS...])" :type (repeat (list (string :tag "Server") (integer :tag "Port") (choice (const :tag "Login as guest" nil) (string :tag "Handle")) (choice (const :tag "No password or ask" nil) (string :tag "Password") (file :tag "Filename")) (choice (const :tag "Direct connection" nil) (file :tag "Command")) (choice (const :tag "No arguments" nil) (repeat string)))) chess-ics-initial-commands #[0 "\301\302\303\304\"\305\306\307\310\257\311\303\312\"\313\314F\315\303\304\"\307\310FE\207" [chess-version "freechess.org" "iset defprompt 1" format "set interface emacs-chess %s" "iset seekremove 1" "iset startpos 1" "set style 12" "set bell 0" "chessclub.com" "/set-quietly interface emacs-chess %s" "/set-quietly style 12" "/set-quietly bell 0" nil] 7] "A list of commands to send automatically upon successful login.\nThe format is (SERVER COMMANDS...) where SERVER is either the server-name\n(see `chess-ics-server-list') or nil, which is the default to use for all\nservers which do not have a specialized entry in this list. COMMAND is a\nstring which should be sent (newline characters will be added automatically.)" (repeat (list :tag "Initialisation for" (choice (string :tag "Server Name") (const :tag "Default" nil)) (repeat :inline t (string :tag "Command")))) chess-ics-prompt-regexp #[0 "\300\207" [#1="\\(?:[0-2][0-9]:[0-6][0-9]_\\)?[af]ics% $"] 1 #1#] "Regexp which matches an ICS prompt." regexp] 8) #@41 The ICS server name of this connection. (defvar chess-ics-server nil (#$ . 2287)) (make-variable-buffer-local 'chess-ics-server) #@36 The ICS handle of this connection. (defvar chess-ics-handle nil (#$ . 2422)) (make-variable-buffer-local 'chess-ics-handle) #@44 Password to use to identify to the server. (defvar chess-ics-password nil (#$ . 2552)) (make-variable-buffer-local 'chess-ics-password) #@62 Non-nil if we are currently handling the ICS login sequence. (defvar chess-ics-handling-login nil (#$ . 2694)) (make-variable-buffer-local 'chess-ics-handling-login) #@132 The type of chss server we are about to connect too. Possible values are currently FICS (the default, and best supported) and ICC. (defvar chess-ics-server-type 'FICS (#$ . 2867)) (byte-code "\300\301!\210\302\303\304\305\306DD\307\310\311%\207" [make-variable-buffer-local chess-ics-server-type custom-declare-variable chess-ics-icc-datagrams funcall function #[0 "\300\207" [(22 23 26 33 50 51 56 110 111)] 1] "A list of datagrams to request when connecting to ICC." :type (repeat (choice (const :tag "DG_SEND_MOVES" 24) (const :tag "DG_KIBITZ" 26) (const :tag "DG_MOVE_ALGEBRAIC" 33) (const :tag "DG_SEEK" 50) (const :tag "DG_SEEK_REMOVED" 51) (const :tag "DG_MSEC" 56) (const :tag "DG_POSITION_BEGIN" 101) (const :tag "DG_POSITION_BEGIN2" 110) (const :tag "DG_PAST_MOVE" 111)))] 6) #@81 If we are about to receive a movelist, this variable is set to the game number. (defvar chess-ics-movelist-game-number nil (#$ . 3659)) (make-variable-buffer-local 'chess-ics-movelist-game-number) #@74 If we are receiving a movelist, this variable is set to the game object. (defvar chess-ics-movelist-game nil (#$ . 3862)) (make-variable-buffer-local 'chess-ics-movelist-game) #@334 The starting position to use upon receiving of a movelist. It is possible to configure certain servers to automatically send a style12 board before sending a movelist, to allow retrieval of the movelist for a non-standard game (one which does not start at the standard position). In those cases, this variable should be set to nil. (defvar chess-ics-movelist-start-position chess-starting-position (#$ . 4045)) (make-variable-buffer-local 'chess-ics-movelist-start-position) #@62 Send STRING to the ICS server. (fn STRING &optional BUFFER) (defalias 'chess-ics-send #[513 "\300\301\206p!\302P\"\207" [comint-send-string get-buffer-process "\n"] 6 (#$ . 4527)]) (byte-code "\300\301\302\303#\304\301\305\306#\210\307\310\311\"\207" [function-put chess-ics-send speed -1 put byte-optimizer byte-compile-inline-expand chess-message-catalog english ((ics-server-prompt . "Connect to chess server: ") (ics-connecting . "Connecting to Internet Chess Server '%s'...") (ics-connected . "Connecting to Internet Chess Server '%s'...done") (ics-anon-login . "Logging in on Internet Chess Server '%s' as anonymous user...") (ics-logging-in . "Logging in on Internet Chess Server '%s' as '%s'...") (ics-logged-in . "Logging in on Internet Chess Server '%s' as '%s'...done") (challenge-whom . "Whom would you like challenge? ") (failed-ics-parse . "Failed to parse ICS move string (%s): "))] 5) #@55 A regular expression matching a style12 board string. (defconst chess-ics-style12-regexp "<12> \\([BKNP-Rbknp-r-]\\{8\\}\\) \\([BKNP-Rbknp-r-]\\{8\\}\\) \\([BKNP-Rbknp-r-]\\{8\\}\\) \\([BKNP-Rbknp-r-]\\{8\\}\\) \\([BKNP-Rbknp-r-]\\{8\\}\\) \\([BKNP-Rbknp-r-]\\{8\\}\\) \\([BKNP-Rbknp-r-]\\{8\\}\\) \\([BKNP-Rbknp-r-]\\{8\\}\\) \\([BW]\\) \\(-?[0-7]\\) \\(-?[[:digit:]]\\) \\(-?[[:digit:]]\\) \\(-?[[:digit:]]\\) \\(-?[[:digit:]]\\) \\([[:digit:]]+\\) \\([[:digit:]]+\\) \\([^ ]+\\) \\([^ ]+\\) \\(-?[[:digit:]]\\) \\([[:digit:]]+\\) \\([[:digit:]]+\\) \\([[:digit:]]+\\) \\([[:digit:]]+\\) \\(-?[[:digit:]]+\\) \\(-?[[:digit:]]+\\) \\([[:digit:]]+\\) \\([^ ]+\\) (\\([^ )]+\\)) \\([^ ]+\\) \\(-?[[:digit:]]\\)\\(?: \\(-?[[:digit:]]\\) \\(-?[[:digit:]]+\\)\\)?" (#$ . 5439)) #@175 An alist of regular expressions to use to scan ICS server output. The car of each element is the regexp to try, and the cdr is a function to run whenever the regexp matches. (defvar chess-ics-matcher-alist (byte-code "\303\304B\305\306B\307\310B\311\312B\313\314B\315\316B\317\320B\321\322B\323P\324B\325\326B\327\330B\331\332B\333\334B \335B\336\337B\340\341B\342\343B\344\345B\346\n\347\n\350\260\351B\352\353B\354\355B\356\357B\360\361B\362\363B\364\365B\366\367B\370\371B\372\373B\257\207" [chess-algebraic-regexp-entire chess-ics-style12-regexp chess-algebraic-regexp "www.chessclub.com" #[0 "\203 \302\303\304\305\306\307$\210\310\207" [chess-ics-handling-login chess-ics-server-type ICC add-hook comint-preoutput-filter-functions chess-icc-preoutput-filter nil t once] 5] "\\(ogin\\|name\\):" #[0 "\304=\2038\305\306\307\310\311 \"T\312\" \211\203#\211@\313I\210A\266\202\202\262\262\"\314\315\316\2061p!\317P\"\266\n\320\230\203M\321 C\322\310\323#!\266\202Z\324 \nD\322\310\323#!\266\n\314\315\316\206cp!\317P\"\266\325\207" [chess-ics-server-type chess-ics-icc-datagrams chess-ics-handle chess-ics-server ICC format "level2settings=%s" make-string apply max 48 49 nil comint-send-string get-buffer-process #1="\n" "guest" ics-anon-login message chess-string ics-logging-in once] 8] "[Pp]assword:" #[0 "\203 \302\303\304\206 p!\305P\"\266\306\207" [chess-ics-handling-login chess-ics-password nil comint-send-string get-buffer-process #1# once] 6] "\\(Logging you in as\\|Your name for this session will be\\) \"\\([^\"]+\\)\"" #[0 "\301\302!\303\207" [chess-ics-handle match-string 2 once] 2] "Press return to enter the server as" #[0 "\300\301\302\303\206 p!\304P\"\266\305\207" [#2="" nil comint-send-string get-buffer-process #1# once] 6] "Press return to enter chess.net as \"\\([^\"]+\\)\":" #[0 "\301\302!\303\304\305\306\206 p!\307P\"\266\310\207" [chess-ics-handle match-string 1 #2# nil comint-send-string get-buffer-process #1# once] 6] "%\\s-*$" #[0 "\304\305\306 \"\206\f\307 \236A\310#\307\311\312\206p!\310P\"\266\307\313 D\314\315\316#!\266\317\207" [chess-ics-server chess-ics-initial-commands chess-ics-handling-login chess-ics-handle mapconcat identity assoc nil #1# comint-send-string get-buffer-process ics-logged-in message apply chess-string once] 7] "fics%\\s-+startpos set.$" #[0 "\301\302\207" [chess-ics-movelist-start-position nil once] 1] "^Game [0-9]+: \\S-+ moves: " #[0 "\212\301y\203\302\303!\204\302\304P!\203\305\224\305\225T|\210\202)\306\207" [chess-ics-prompt-regexp -1 looking-at "^[ ]*$" "^" 0 t] 3] "^\\([A-Za-z0-9]+\\)\\((\\*)\\|(B)\\|(CA?)\\|(H)\\|(DM)\\|(T[DM]?)\\|(SR)\\|(FM)\\|(W?[GI]M)\\|(U)\\|([0-9-]+)\\)*\\((\\([0-9]+\\))\\| tells you\\| s-shouts\\|\\[\\([0-9]+\\)\\] kibitzes\\): \\(.+\\)$" #[0 "\303\304\225\304\224Z\305\"\306\307!\310\224\311\224b\210\212\304y\203)\312\313!\203)\311\224S\311\225|\210\202)\203t\314\315!!\316\317 {D\204A\320\321!\210 ?\205r\322\211\204P\320\321!\210\211@\262\211\203m\211@\323@A$\262A\266\202\202T\262\262\266\317 \324 Z\nV\203\206\212\325`\317 \"\210)\212\326y\205\242\312\327!\204\230\312\330!\205\242\311\224\311\225T|\210\202\207*\207" [fill-prefix chess-game-inhibit-events fill-column make-string 1 32 match-string 5 6 0 looking-at "^\\\\\\s-+" chess-ics-game string-to-number kibitz line-end-position cl--assertion-failed game nil apply line-beginning-position fill-region -1 "^[ ]*$" "^[af]ics%\\s-*$"] 13] "{Game \\([0-9]+\\) (\\(\\S-+\\) vs\\. \\(\\S-+\\)) Creating [^ ]+ \\([^ ]+\\).*}" #[0 "\300\301\302!!\303\304!\303\305!\306\307$\210\310\311\312%\207" [string-to-number match-string 1 match-string-no-properties 2 3 message "Creating game %d (%s vs. %s)" chess-ics-game :White :Black] 9] "^<10>$" #[0 "\300\301\302\303\206 p!\304P\"\207" ["style 12\nrefresh" nil comint-send-string get-buffer-process #1#] 6] "^Game \\([0-9]+\\): \\S-+ backs up \\([0-9]+\\).$" #[0 "\300\301\302\303\304!!!\302\303\305!!\"\207" [chess-game-undo chess-ics-game string-to-number match-string 1 2] 5] chess-ics-handle-style12 "Removing game \\([0-9]+\\) from observation list.$" #[0 "\300\301\302\303!!!\207" [chess-ics-game-destroy string-to-number match-string 1] 4] "You are no longer examining game \\([0-9]+\\).$" #[0 "\300\301\302\303!!!\207" [chess-ics-game-destroy string-to-number match-string 1] 4] "^Movelist for game \\([0-9]+\\):$" #[0 "\204 \203\f\302\303!\207\304\305\306!!\211\207" [chess-ics-movelist-game-number chess-ics-movelist-game message "[movelist] left-over movelist-game[-number]" string-to-number match-string 1] 3] "^Move\\s-+\\*?\\(\\S-+\\)\\s-+\\*?\\(\\S-+\\)\\s-*$" #[0 "\204\304\224b\210\305c\210\202\243\306\307\310\311!\312\310\313!%\n\203\243 \n\204(\314\315!\210\316!\2042\314\317!\210\211\316!\205?\211G\320U\262\204L\321\322\323\324E\"\210\211C\262C\204Y\314\315!\210AA\205bC\241\210\325D\204p\314\315!\210 ?\205\241\326\211\204\314\315!\210\211@\262\211\203\234\211@\327@A$\262A\266\202\202\203\262\262\266\330\207" [chess-ics-movelist-game-number chess-ics-movelist-game chess-ics-movelist-start-position chess-game-inhibit-events 0 "(no game# known) " chess-ics-game :White match-string 1 :Black 2 cl--assertion-failed game vectorp (vectorp position) 75 signal wrong-type-argument chess-pos position setup-game nil apply t] 14] "^\\s-*\\([0-9]+\\)\\.\\s-+\\(" "\\)\\s-+\\(([0-9][0-9]?:[0-9][0-9])\\)\\s-*\\(\\(" "\\)\\s-+\\(([0-9][0-9]?:[0-9][0-9])\\)\\s-*\\)?$" chess-ics-handle-movelist-item "\\s-+{Still in progress}\\s-+\\*$" #[0 "\250\203 \302\211\211\207\303\304!\207" [chess-ics-movelist-game-number chess-ics-movelist-game nil message "[movelist] end of movelist seen where no game known about"] 3] "\\S-+ would like to take back \\([0-9]+\\) half move(s)." #[0 "\301\302\303\304!!\"\207" [chess-engine-response-handler undo string-to-number match-string 1] 5] "The game has been aborted on move [^.]+\\." #[0 "\302 \303!)\207" [chess-engine-pending-offer chess-engine-response-handler abort accept] 2] "\\S-+ accepts the takeback request\\." #[0 "\301!\207" [chess-engine-response-handler accept] 2] "{Game \\([0-9]+\\) (\\(\\S-+\\) vs\\. \\(\\S-+\\)) \\(\\S-+\\) resigns}" #[0 "\303\304\305!\230?\306\307\304\310!!\311\304\312!\313\304\314!%r\315\316\"q\210\203*\n\317!\210\202l\320!\204l\211\321\322\211\323\204>\324\325!\210\326\"\211\211:\205V\211@\327!\205T\211G\330U\262\262\204c\331\332\333\334E\"\210\211@\266\203D\"\266*\303\207" [chess-ics-handle chess-engine-handling-event chess-engine-response-handler t match-string 4 chess-ics-game string-to-number 1 :White 2 :Black 3 chess-game-data engine resign chess-game-status :resign chess-game-move nil cl--assertion-failed game chess-game-ply vectorp 75 signal wrong-type-argument chess-ply ply] 15] "\\(\\S-+\\) forfeits on time}" #[0 "\302\303!\230\203\f \304!\207 \305\306\"\207" [chess-engine-opponent-name chess-engine-response-handler match-string 1 flag-fell call-flag t] 3] "Illegal move (\\([^)]+\\))\\." #[0 "\301\302\303!\"\207" [chess-engine-response-handler illegal match-string 1] 4] "Challenge: \\(\\S-+\\) \\S-+ \\S-+ \\S-+ .+" #[0 "\300\301!\302\303\304\"!\203\305P\306\307\310\206p!\311P\"\207\312\306\307\310\206&p!\311P\"\207" [match-string 1 y-or-n-p chess-string want-to-play "accept " nil comint-send-string get-buffer-process #1# "decline match"] 7] "\"?\\(\\(https?\\|ftp\\)://[^ \n \"]+\\)\"?" #[0 "\300\301\224\301\225\302\303$\207" [make-button 1 action #[257 "\300\301!!\207" [browse-url button-label] 4 "\n\n(fn BUTTON)"]] 5]] 29) (#$ . 6220)) #@98 A list of chess-sessions spawned from an Internet Chess Server connection. See `chess-ics-game'. (defvar chess-ics-sessions nil (#$ . 13917)) (make-variable-buffer-local 'chess-ics-sessions) #@99 Either create, or retrieve an existing game object with GAME-NUMBER. (fn GAME-NUMBER &rest TAGS) (defalias 'chess-ics-game #[385 "\3032\211\205\304@@!\204\305\306!\210\202\375\307@@!\310\311\"U\203\373\2032@\312=\203;\313\303\"\266\202\375\211\203\366\314@!\315\316OA@\204S\317\320!\210\211\204[\317\321!\210\211\204d\317\320!\210\211A@\262\211\205r\322\"A\266\203\230\203\201AA\266\203\202;\204\213\317\320!\210\211\204\223\317\321!\210\211\204\234\317\320!\210\211A@\262\211\205\252\322\"A\266\203\323\230\204\346\305\324\204\302\317\320!\210\211\204\312\317\321!\210\211\204\323\317\320!\210\211A@\262\211\205\341\322\"A\266\203%\210\325#\210AA\262\266\202;\313\303\"\210\266\211A\262\202\2620\206O\211@\312=?\205O\316\326\327!)B\307@@!\330\311#\210\330\331p#\210\325\332\n#\210\203L\325\314@!\315\316OA@#\210AA\262\2022\211\262\207" [chess-ics-sessions chess-engine-handling-event chess-ics-server ics-game buffer-live-p message "Found dead engine session in `chess-ics-sessions'" chess-engine-game chess-game-data ics-game-number t throw symbol-name 1 nil cl--assertion-failed game tag assoc "?" "Game %d %s %s != %s" chess-game-set-tag chess-session chess-ics chess-game-set-data ics-buffer "Site"] 17 (#$ . 14114)]) #@31 (fn GAME-NUMBER &rest TAGS) (defalias 'chess-ics-game-destroy #[385 "\301\205\310\302@@!\204\303\304!\210\202\276\305@A@!\306\307\310\"U\203\274\204G\311@A@!\210\203?A\241\266\202\276A\266\202\276\203\231\211\203\231\312@!\313\301OA@\204c\314\315!\210\211\204k\314\316!\210\211\204t\314\315!\210\211A@\262\211\205\202\317\"A\266\203\230\203\223AA\262\266\202G\266\301\202G\211\204\245\320\321!\266\202\276\322@A@!\210\203\271A\241\266\202\276A\266\262A\262\202\207" [chess-ics-sessions nil buffer-live-p message "Found dead engine session in `chess-ics-sessions'" chess-display-game t chess-game-data ics-game-number chess-display-destroy symbol-name 1 cl--assertion-failed game tag assoc error "Game not found" chess-engine-destroy] 15 (#$ . 15444)]) (defalias 'chess-ics-handle-movelist-item #[0 "\302\303\304\305!!\304\306!\304\307!\211\203\211\211\204\310\311!\210\306\211\204&\310\311!\210\211\211\204/\310\311!\210\3128\262GS\262\\\306\245\262U\204O\313\224b\210\314\315\"c\210\202\211\316\204Y\310\311!\210\317\"\211\211:\205q\211@\320!\205o\211G\321U\262\262\204~\322\323\324\325E\"\210\211@\266\203\211\320!\205\215\211G\321U\262\204\232\322\323\326\327E\"\210\211\330H\262\203\331\332\316\204\257\310\311!\210\317\"\211\211:\205\307\211@\320!\205\305\211G\321U\262\262\204\324\322\323\324\325E\"\210\211@\266\203\"\"\210\203\331\332\316\204\356\310\311!\210\317\"\211\211:\205\211@\320!\205\211G\321U\262\262\204\322\323\324\325E\"\210\211@\266\203\"\"\210)\302\207" [chess-ics-movelist-game chess-engine-handling-event t string-to-number match-string 1 2 14 cl--assertion-failed game 3 0 format "SeqNr. unmatched (%d): " nil chess-game-ply vectorp 75 signal wrong-type-argument chess-ply ply chess-pos position 70 chess-game-move chess-algebraic-to-ply] 16]) #@37 Handle an ICS Style12 board string. (defalias 'chess-ics-handle-style12 #[0 "\303\304\224\304\225\303\211\203\305\306\307\310\"\311\"\262\202\201 \211\312!\205#\211G\313U\262\2040\314\315\316\317E\"\210\305!\211\320\211\312!\205A\211G\313U\262\204N\314\315\316\317E\"\210\211\321H\262!\312!\205_\211G\313U\262\204l\314\315\316\317E\"\210\211<\204y\314\315\322\323E\"\210\321I\266\266\202\324\304\211W\203\216\211\325T!\324\304\211W\203\205\211H\326U\204}\250\203\264\304Y\203\264\327X\204\274\314\315\330\331E\"\210\211\250\203\315\211\304Y\203\315\211\327X\204\325\314\315\332\333E\"\210\324_\\\266\202H\312!\205\352\211G\313U\262\204\367\314\315\316\317E\"\210\250\203\304Y\203\334X\204\314\315\335\336E\"\210\211\337>\204\314\315\340\341E\"\210I\210\211\342>\205{\343W\312!\2059\211G\313U\262\204F\314\315\316\317E\"\210\344>\204T\314\315\345\346E\"\210\211\250\203e\211\304Y\203e\211\334X\204m\314\315\347\336E\"\210\203v\350\202w\351I\266\203\266\210\211T\262\202\220\266\211T\262\202\203\266\211\325\352!\353\230\312!\205\241\211G\313U\262\204\256\314\315\316\317E\"\210\211\354>\204\274\314\315\355\346E\"\210\356I\266\357\325\360!!\211\304Y\203i\211\211\312!\205\332\211G\313U\262\204\347\314\315\316\317E\"\210\211\356H\262\203\363\361\202\364\362\250\203\304Y\203\327X\204\314\315\330\331E\"\210\211\250\203\211\304Y\203\211\327X\204'\314\315\332\333E\"\210\324_\\\266\202\312!\2059\211G\313U\262\204F\314\315\316\317E\"\210\211\203c\211\250\203[\211\304Y\203[\211\334X\204c\314\315\363\336E\"\210\307I\266\210\364\365\366\"\367\"\210\211\262\370 \365\371\"\216\372\357\325\373!!\374\325\375!\376\325\377!%)\262\357\325\201@!!\211\201AU\204\253\211\201BU\204\253\211\304U\203\322\201C\201D\211\312!\205\276\211G\313U\262\204\313\314\315\316\317E\"\210\211\356H\262#\210\201E\201F\201G\201H\325\201I!\325\201J!##\210\201K\357\325\201L!!\357\325\201M!!Z_\201N\201O\211\312!\205\211G\313U\262\204 \314\315\316\317E\"\210\211\356H\262\203,\202.[#\266\201C\201P\357\325\201Q!!#\210\201C\201R\357\325\201S!!#\210\357\325\201T!!\201A_\201U\201V\"\303=\203\224\211\312!\205u\211G\313U\262\204\202\314\315\316\317E\"\210\211\356H\262\203\216\361\202\276\201A\202\276\211\312!\205\240\211G\313U\262\204\255\314\315\316\317E\"\210\211\356H\262\203\273\201A\202\276\201WZ\325\201X!\201Y\230?\205s\325\201X!\325\201X!GSH\211\201Z\267\210\202n\201[\312!\205\361\211G\313U\262\204\376\314\315\316\317E\"\210\211\203\201\\!\204\314\315\201]\201^E\"\210\201_I\266\202n\201`\312!\2050\211G\313U\262\204=\314\315\316\317E\"\210\211\203U\201\\!\204U\314\315\201]\201^E\"\210\201_I\266\201N\201O\201a#\266\202n\210\325\201X!\201bC\365\201c  $\216\203\304\211\201d\240\210S\211\204\233\201e\201f!\210\211\211\204\250\201e\201f!\210\3618\262GS\262U\203f\211\201g\240\210\201h\201b\204\316\201e\201f!\210\201i\"\211\211:\205\350\211@\312!\205\346\211G\313U\262\262\204\371\314\315\201j\201kE\"\210\211@\266\203\303#\201l\240\210\211\312!\205\211G\313U\262\204 \314\315\316\317E\"\210\211\356H\262\201U\201D\"=\203;\201m\240\210\202A\201n\240\210\201o\201p #\210\201q\"\210\201r\"\210\201b\240\266\202(\211\204t\201e\201f!\210\211\211\204\201\201e\201f!\210\3618\262GS\262U\203\370\201s!\201s\201b\204\250\201e\201f!\210\201i\"\211\211:\205\302\211@\312!\205\300\211G\313U\262\262\204\323\314\315\201j\201kE\"\210\211@\266\203!\230\203\350\201b\240\266\202(\201G\201t#\240\266\202(\211\204\201e\201f!\210\211\211\204\201e\201f!\210\3618\262GS\262TV\203\222\211\204.\201e\201f!\210\201A\211\204>\201e\201f!\210\211\211\204K\201e\201f!\210\3618\262GS\262\\\201A\245\262\201WU\203\222\211\201b\240\210\201G\201u\201U\201v\"\"\201b\201w\201x\206\206p!\201yP\"\266\202(\211\201G\201z\211\204\250\201e\201f!\210\211\211\204\265\201e\201f!\210\3618\262GS\262#\240\210\202(\303\211\312!\205\322\211G\313U\262\204\337\314\315\316\317E\"\210\211\356H\262\201WU\204\366\201{U\203\201C\201D\201WU\203 \202 ?#\210\201C\201|\303#\210\201}\240\210\2040\201e\201f!\210\312!\204>\201e\201~!\210\211\312!\205K\211G\313U\262\204X\314\315\316\317E\"\210\211C\262C\204i\201e\201f!\210AA\205rC\241\210\201D\204\206\201e\201f!\210\n?\205\277\201b\211\204\233\201e\201f!\210\211@\262\211\203\272\211@\201\200@A$\262A\266\202\202\237\262\262\266\201C\201V?#\210)\266\211\201\201\240\210\201\202C\204\347\201e\201f!\210\n?\205 \201b\211\204\374\201e\201f!\210\211@\262\211\203\211@\201\200@A$\262A\266\202\202\262\262\266\211\201b\240\210)\266)\303\207" [chess-engine-handling-event chess-starting-position chess-game-inhibit-events t 0 vconcat make-vector 64 32 [nil nil nil nil nil nil t nil nil nil nil] vectorp 75 signal wrong-type-argument chess-pos position copy-alist 71 list annotations 8 match-string 45 7 (integer 0 7) rank (integer 0 7) file 63 (integer 0 63) index #1=(32 75 81 78 66 82 80 107 113 110 98 114 112) (member . #1#) piece (75 107) 97 #2=(nil t) (member . #2#) color (integer 0 63) 72 73 9 "W" #3=(nil t) (member . #3#) 70 string-to-number 10 3 4 (or null (integer 0 63)) mapc make-closure #[257 "\301A!\302\230\205g\300@\303\304!\205\211G\305U\262\204%\306\307\310\311E\"\210\312>\2043\306\307\313\314E\"\210\211\315>\204A\306\307\316\317E\"\210\320\321W\203W\305U\203S\322\202b\323\202b\324U\203a\325\202b\326\\I\266\203\207" [V0 match-string "1" t vectorp 75 signal wrong-type-argument chess-pos position #4=(75 81 107 113) (member . #4#) side #5=(nil t) (member . #5#) value 65 97 0 1 107 2 3] 9 "\n\n(fn INFO)"] ((75 . 11) (81 . 12) (107 . 13) (113 . 14)) match-data #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] chess-ics-game 16 :White 17 :Black 18 19 2 -2 chess-game-set-data my-color chess-game-set-tag "TimeControl" format "%s/%s" 20 21 100 22 23 chess-pos-set-epd ce white-remaining 24 black-remaining 25 26 chess-game-data black-moved-first 1 29 "none" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (43 994 35 1057)) :check keywordp (or null keyword) value 69 :checkmate 32767 nil #[0 "\300b\210\302\242\203\303\304\302\242\"c\207\300\301|\210\212\305y\203/\306\307!\204%\306\310!\203/\311\224\311\225T|\210\202)\305y\207" [V0 V1 V2 chess-string failed-ics-parse -1 looking-at "^[ ]*$" "^[^% \n ]+%\\s-*$" 0] 3] comparing-index cl--assertion-failed game converting-ply chess-algebraic-to-ply chess-game-ply chess-ply ply comparing-colors applying-opponent-move applying-my-move chess-ply-set-keyword :next-pos chess-pos-set-preceding-ply chess-game-move chess-pos-to-fen "comparing-position (%s != %s)" "moves %d" ics-game-number comint-send-string get-buffer-process "\n" "comparing-index (%d:%d)" -1 active setting-start-position (vectorp position) setup-game apply orienting-board orient] 24 (#$ . 17364)]) #@59 Contains the buffer from which this seektable originates. (defvar chess-ics-sought-parent-buffer nil (#$ . 24682)) (make-variable-buffer-local 'chess-ics-sought-parent-buffer) #@56 Perform the action specified by a BUTTON. (fn BUTTON) (defalias 'chess-ics-sought-accept #[257 "\300\301\"\300\302\"\303!\205$\211;\205$\211\304\305\206p!\306P\"\266\307\207" [button-get ics-buffer ics-command buffer-live-p comint-send-string get-buffer-process "\n" t] 9 (#$ . 24864)]) (byte-code "\300\301\302\303\304DD\305\306\307%\210\300\310\302\303\311DD\312\306\313%\207" [custom-declare-variable chess-ics-popup-sought funcall function #[0 "\300\207" [t] 1] "If non-nil, display the sought buffer automatically." :type boolean chess-ics-sought-buffer-name #[0 "\300\207" [#1="*chess-ics-sought*"] 1 #1#] "The name of the buffer which accumulates seek ads." string] 6) (defvar chess-ics-ads-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [chess-ics-ads-mode-hook variable-documentation put "Hook run after entering ICSAds mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp chess-ics-ads-mode-map definition-name chess-ics-ads-mode] 4) (defvar chess-ics-ads-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\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [chess-ics-ads-mode-abbrev-table chess-ics-ads-mode-map variable-documentation put purecopy "Keymap for `chess-ics-ads-mode'." boundp chess-ics-ads-mode-syntax-table definition-name chess-ics-ads-mode (lambda (#1=#:def-tmp-var) (defvar chess-ics-ads-mode-syntax-table #1#)) make-syntax-table "Syntax table for `chess-ics-ads-mode'." (lambda (#1#) (defvar chess-ics-ads-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `chess-ics-ads-mode'." derived-mode-parent tabulated-list-mode] 5) #@277 Mode for displaying sought games from Internet Chess Servers. In addition to any hooks its parent mode `tabulated-list-mode' might have run, this mode runs the hook `chess-ics-ads-mode-hook', as the final or penultimate step during initialization. \{chess-ics-ads-mode-map} (defalias 'chess-ics-ads-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 \325C#\210\327 !\210\330\f!\210 \331 \332!\333 \210\334 \210)\335\336!\207" [delay-mode-hooks major-mode mode-name chess-ics-ads-mode-map chess-ics-ads-mode-syntax-table chess-ics-ads-mode-abbrev-table make-local-variable t tabulated-list-mode chess-ics-ads-mode "ICSAds" 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 [("Player" 20 t) ("Rating" 10 t :right-align t) ("Rated" 5 nil :right-align t) ("Time" 4 t :right-align t) ("Inc" 4 t) ("Variant" 40 t)] nil tabulated-list-init-header tabulated-list-print run-mode-hooks chess-ics-ads-mode-hook local-abbrev-table tabulated-list-format tabulated-list-entries] 5 (#$ . 26805) nil]) #@61 (fn ID NAME RATING RATED TIME INC VARIANT ICS-BUFFER CMD) (defalias 'chess-ics-sought-add #[2313 "\304r\305 !\206r\306 !q\210\307 \210\n\203\310p!\210p)q\210\311\312\n\313 \314\315\316\317\257\320\f! \320\f!\320\f! &D\"\210\321 *\207" [inhibit-redisplay chess-ics-sought-buffer-name chess-ics-popup-sought chess-ics-sought-parent-buffer t get-buffer get-buffer-create chess-ics-ads-mode display-buffer add-to-list tabulated-list-entries vector ics-buffer ics-command action chess-ics-sought-accept number-to-string tabulated-list-revert] 20 (#$ . 28120)]) #@15 (fn STRING) (defalias 'chess-ics-seeking #[257 "\301\302P\"\203q\211\303\211\224O\303\225\304O\305\306\307\310\"\311\304O!\307\312\"\306\307\313\"!\307\314\"\315\230\2038\316\2029\317\306\307\320\n\"!\306\307\311 \"!\307\321 \"\203Y\307\321 \"\322P\202Z\323\307\324\f\"Pp\307\310 \"& \210P\266\203\202\207" [chess-ics-prompt-regexp string-match "[\n ]+\\(\\S-+\\) (\\([0-9+ -]+\\)) seeking \\([a-z]\\S-+ \\)?\\([0-9]+\\) \\([0-9]+\\) \\(\\(un\\)?rated\\) \\([^(]*\\)(\"\\([^\"]+\\)\" to respond)\\s-*[\n ]+" 0 nil chess-ics-sought-add string-to-number match-string 9 5 1 2 6 "rated" "yes" "no" 4 3 " " "" 8] 15 (#$ . 28704)]) #@143 Look for Seek ad removal announcements in the output stream. This function should be put on `comint-preoutput-filter-functions'. (fn STRING) (defalias 'chess-ics-ads-removed #[257 "\304C\305\306P\"\2037\211\307\310\311\312 \313\314\"\216\315\316\317 \"\320\")\262\"\242\"\240\210\321\211\224O\321\225\304OP\262\202\211\242\203c\322 !\323\324!\203ar\211q\210 G\325\313\326\" \"\211GU\204_\327 \210\210))\210\210\207" [chess-ics-prompt-regexp chess-ics-sought-buffer-name inhibit-redisplay tabulated-list-entries nil string-match "[\n ]+Ads removed: \\([0-9 ]+\\)\\s-*[\n ]+" append mapcar string-to-number match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] split-string match-string 1 " +" 0 get-buffer t buffer-live-p cl-remove-if #[257 "\211@\300\242\235\207" [V0] 3 "\n\n(fn ENTRY)"] tabulated-list-revert] 12 (#$ . 29365)]) #@119 Connect to an Internet Chess Server. (fn SERVER PORT &optional HANDLE PASSWORD-OR-FILENAME HELPER &rest HELPER-ARGS) (defalias 'chess-ics #[1410 "\204\306\262\307C\310\311\312#!\266\203\"\311\313\314\315%\202*\313\314B\"\316C\310\311\312#!\266\211q\210\203b\317!\203b\320\321\322\"r\211q\210\323\324\"\216\325!\210\326 *\262\202c\322\327\f!\330%\322&\331\332\333\322\211$\210\331\334\335\315\322$\210\331\334\336\315\322$\210\337 \203\237\211S\211\262\340V\203\237\341\342p!\340\343#\210\202\206\210\344!\207" [chess-ics-server chess-ics-handle chess-ics-password chess-ics-handling-login chess-ics-matcher-alist chess-engine-regexp-alist "guest" ics-connecting message apply chess-string make-comint "chess-ics" nil ics-connected file-readable-p generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents buffer-string copy-alist "^[^%\n]*% *" add-hook comint-output-filter-functions chess-engine-filter comint-preoutput-filter-functions chess-ics-seeking chess-ics-ads-removed 50 0 accept-process-output get-buffer-process 100 switch-to-buffer comint-prompt-regexp comint-scroll-show-maximum-output] 14 (#$ . 30251) (byte-code "G\301U\203\f@\202\302\303\304\305!\306\307@@%\"\3108\203=\3118\204=\312@A@\3108\313\314!\3158\257\316\233\"\207\207" [chess-ics-server-list 1 assoc completing-read chess-string ics-server-prompt nil t 2 3 append read-passwd "Password: " 4 5] 8)]) (define-key menu-bar-games-menu [chess-ics] '(menu-item "Internet Chess Servers" chess-ics :help "Play Chess on the Internet")) (defvar chess-icc-unprocessed nil) #@15 (fn STRING) (defalias 'chess-icc-datagram-handler #[257 "\304\305\"\204\f\306\307\"\207\310\311\312\313\"!\312\314\"\315U\204%\316U\203A\304\317\"\203A\320\321\311\312\313\"!!\311\312\314\"!\"\210\322\202\310\323U\204M\324U\203\352\304\325\"\203\352\326\312\314\"!\321\311\312\313\"!!\204k\327\330!\210\331!\204u\327\332!\210\211\331!\205\202\211G\333U\262\204\217\334\335\336\337E\"\210\211C\262C\204\234\327\330!\210AA\205\245C\241\210\340D\204\263\327\330!\210 ?\205\344\341\211\204\302\327\330!\210\211@\262\211\203\337\211@\342@A$\262A\266\202\202\306\262\262\266\322\202\310\343U\204\366\344U\203J\304\345\"\203J\312\314\"\321\311\312\313\"!!\211\341\204\327\330!\210\346\"\211\211:\205+\211@\331!\205)\211G\333U\262\262\2048\334\335\347\350E\"\210\211@\266\203\351\"\352\"\266\322\202\310\353U\203\220\304\354\"\203\220\312\313\"\312\355\"\356\230\203h\357\202i\360\312\314\"\312\361\"\312\362\"\363\364\365\366\"\322#P\262\306\367%\266\205\202\310\370U\203\307\304\371\"\203\307\311\312\361\"!\372\245\312\314\"\373\230\203\262\374\202\263\375\321\311\312\313\"!!\376#\266\322\202\310\377U\203\205\304\201@\"\203\205\201A\311\312\313\"!\312\314\"\312\361\"\322\230\204\371\306\201B\312\361\"\"\202\372\322P\311\312\355\"!\312\201C\"\356\230\203\201D\202\201E\311\312\201F\"!\311\312\201G \"!\312\201H \"\312\201I\n\"\201J\230\204J\366\312\201I \"P\202K\322\312\201K \"\201J\230\203_\201L\202`\322\312\201M\f\"\356\230\203r\201N\202s\322Rp\201O\312\313\f\"P& \210\322\202\310\201PU\203\301\311\365\201Q\"@!\201R\n!\201S!\203\273r\211q\210\201T\201U\201V\" \"\201W \210)\266\322\202\310\306\201X#)\207" [chess-engine-handling-event chess-game-inhibit-events chess-ics-sought-buffer-name tabulated-list-entries string-match "^\\([0-9]+\\) \\(.*\\)$" format "\nUnknown datagram format: %s\n" t string-to-number match-string 1 2 22 23 "\\([0-9]+\\) \\([1-9][0-9]*\\)" chess-game-undo chess-ics-game "" 101 110 "\\([0-9]+\\) {\\(.+\\) \\(?:[0-9]+\\) \\(?:[0-9]+\\)} \\([0-9]+\\)" chess-fen-to-pos cl--assertion-failed game vectorp (vectorp position) 75 signal wrong-type-argument chess-pos position setup-game nil apply 24 111 "^\\([0-9]+\\) \\(.+\\)$" chess-game-ply chess-ply ply chess-algebraic-to-ply chess-game-move 26 "^\\([0-9]+\\) \\(\\S-+\\) {\\([^}]*\\)} \\([01]\\) {\\(.*\\)}" 4 "1" "kibitzes" "whispers" 3 5 mapconcat #[257 "\300\301Q\207" ["(" ")"] 4 "\n\n(fn TITLE)"] split-string " " "\n%s[%s] %s: %s\n" 56 "^\\([0-9]+\\) \\([WB]\\) \\([0-9]+\\) \\([01]\\)" 1000 "W" white-remaining black-remaining chess-game-set-data 50 "^\\([0-9]+\\) \\(\\S-+\\) {\\([^}]*\\)} \\([0-9]+\\) \\([0-2]\\) \\([0-9]+\\) \\(\\S-+\\) \\([0-9]+\\) \\([0-9]+\\) \\([01]\\) \\(-?[01]\\) \\([0-9]+\\) \\([0-9]+\\) \\([01]\\) \\([01]\\) {\\([^}]*\\)}" chess-ics-sought-add "(%s)" 10 "yes" "no" 8 9 7 6 "0" 14 " m" 15 " f" "play " 51 " +" get-buffer buffer-live-p cl-remove-if make-closure #[257 "\211@\300\232\207" [V0] 3 "\n\n(fn ENTRY)"] tabulated-list-revert "\nIgnoring unhandled datagram DG%03d: %s\n"] 19 (#$ . 31938)]) #@15 (fn STRING) (defalias 'chess-icc-preoutput-filter #[257 "\203*P\301\302\"\203&\303\216\304\305\211\224O!)\306\206\307\305\225\310OP!\207\211\307\207\301\311\"\203Y\211\305\211\224O\305\225\310O\301\302\"\203U\211\305\225\310O\304\305\211\224O!\306Q!\207\211\207\207" [chess-icc-unprocessed string-match ")" #[0 "\301\211\207" [chess-icc-unprocessed nil] 2] chess-icc-datagram-handler 0 chess-icc-preoutput-filter "" nil "("] 9 (#$ . 35168)]) #@15 (fn STRING) (defalias 'chess-ics-icc-preoutput-filter #[257 "\303\304\"\203\342\305\306\307\"!\306\310\"\311\211\224O\311\225\312O\313U\204'\314U\203\311\303\315\"\203\311\316\306\310\"!\317\305\306\307\"!!\204F\320\321!\210\322!\204P\320\323!\210\211\322!\205]\211G\324U\262\204j\325\326\327\330E\"\210\211C\262C\204w\320\321!\210AA\205\200C\241\210\331D\204\216\320\321!\210?\205\277\312\211\204\235\320\321!\210\211@\262\211\203\272\211@\332@A$\262A\266\202\202\241\262\262\266P\266\205\202\333U\204\325\334U\203B\303\335\"\203B\336\306\310\"\317\305\306\307\"!!\211\312\204\365\320\321!\210\337\"\211\211:\205 \211@\322!\205 \211G\324U\262\262\204\325\326\340\341E\"\210\211@\266\203\342\"\211\203.\343\"\210\2027\344\345#\262)\266P\266\205\202\346U\203\220\303\347\"\203\220\306\307\"\306\350\"\351\230\203`\352\202a\353\306\310\"\306\354\"\306\355\"\356\357\360\361\"\362#P\262\344\363\f&\266\212\202\364U\203\313\303\365\"\203\313\305\306\354\"!\366\245\306\310\"\367\230\203\262\370\202\263\371\317\305\306\307\"!!\372#\266P\266\205\202\373U\203\205\303\374\"\203\205\375\306\307\"\306\310\"\306\354\"\362\230\204\367\344\376\306\354 \"\"\202\370\362P\305\306\350\"!\306\377\"\351\230\203\201@\202\201A\305\306\201B\n\"!\305\306\201C \"!\306\201D \"\306\201E\f\"\201F\230\204F\361\306\201E \"P\202G\362\306\201G \"\201F\230\203[\201H\202\\\362\306\201I\"\351\230\203n\201J\202o\362Rp\201K\306\307\"P& \210P\266\205\202\201LU\203\320\360\361\"@\201M\n!\201N!\203\306r\211q\210`eb\210\201O\201P\361Q\312\336#\203\301\201Q \201R T|\210\211b\266)\266P\266\205\202\201S\201T#\210P\266\205\202\207" [chess-game-inhibit-events chess-engine-handling-event chess-ics-sought-buffer-name string-match "(\\([0-9]+\\) \\(.*?\\))" string-to-number match-string 1 2 0 nil 101 110 "\\([0-9]+\\) {\\(.+\\) \\(?:[0-9]+\\) \\(?:[0-9]+\\)} \\([0-9]+\\)" chess-fen-to-pos chess-ics-game cl--assertion-failed game vectorp (vectorp position) 75 signal wrong-type-argument chess-pos position setup-game apply 24 111 "\\([0-9]+\\) \\(.+\\)$" t chess-game-ply chess-ply ply chess-algebraic-to-ply chess-game-move format "%s\nunable to apply move %s\n" 26 "\\([0-9]+\\) \\(\\S-+\\) {\\([^}]*\\)} \\([01]\\) {\\(.*\\)}" 4 "1" "kibitzes" "whispers" 3 5 mapconcat #[257 "\300\301Q\207" ["(" ")"] 4 "\n\n(fn TITLE)"] split-string " " "" "%s\n%s[%s] %s: %s\n%s" 56 "\\([0-9]+\\) \\([WB]\\) \\([0-9]+\\) \\([01]\\)" 1000 "W" white-remaining black-remaining chess-game-set-data 50 "\\([0-9]+\\) \\(\\S-+\\) {\\([^}]*\\)} \\([0-9]+\\) \\([0-2]\\) \\([0-9]+\\) \\(\\S-+\\) \\([0-9]+\\) \\([0-9]+\\) \\([01]\\) \\(-?[01]\\) \\([0-9]+\\) \\([0-9]+\\) \\([01]\\) \\([01]\\) {\\([^}]*\\)}" chess-ics-sought-add "(%s)" 10 "yes" "no" 8 9 7 6 "0" 14 " m" 15 " f" "play " 51 get-buffer buffer-live-p re-search-forward "^" line-beginning-position line-end-position message "Ignoring Datagram %03d: %s"] 20 (#$ . 35644)]) #@30 (fn GAME EVENT &rest ARGS) (defalias 'chess-ics-handler #[642 "?\205\224\303=\206\224\304\267\202\214\305C\204\306\307!\210 ?\205M\310\211\204+\306\307!\210\211@\262\211\203H\211@\311@A$\262A\266\202\202/\262\262\207\312\207\313\314\310\315\316\317\320\321!!\"\"\207\211@\322\323\324#\203n\325!\202j\211\211\211:\205\203\211@\326!\205\201\211G\327U\262\262\204\220\330\331\332\333E\"\210\211\211\211:\205\245\211@\326!\205\243\211G\327U\262\262\204\262\330\331\332\333E\"\210\211A\262\211<\205\304\211@9?\205\304\211@\266\202\211\250\203\327\211\334Y\203\327\211\335X\204\337\330\331\336\337E\"\210\340\211\250\203\362\211\334Y\203\362\211\335X\204\372\330\331\341\337E\"\210\342\343\"\262\211\250\203\211\334Y\203\211\344X\204\330\331\345\346E\"\210\211\347\\\262\211\250\2030\211\334Y\2030\211\335X\2048\330\331\350\337E\"\210\211\343\245\262\211\250\203N\211\334Y\203N\211\344X\204V\330\331\351\352E\"\210\344Z\353\\\262\"\262\354\211\211:\205v\211@\326!\205t\211G\327U\262\262\204\203\330\331\332\333E\"\210\211\211\211:\205\230\211@\326!\205\226\211G\327U\262\262\204\245\330\331\332\333E\"\210\211A\262\211<\205\270\211@9?\205\270\211A@\266\202\211\250\203\313\211\334Y\203\313\211\335X\204\323\330\331\336\337E\"\210\340\211\250\203\346\211\334Y\203\346\211\335X\204\356\330\331\341\337E\"\210\342\343\"\262\211\250\203\211\334Y\203\211\344X\204 \330\331\345\346E\"\210\211\347\\\262\211\250\203$\211\334Y\203$\211\335X\204,\330\331\350\337E\"\210\211\343\245\262\211\250\203B\211\334Y\203B\211\344X\204J\330\331\351\352E\"\210\344Z\353\\\262\"\262\355\356\357\"!\203h\315\360\356\357\"\"\202i\361R\362\363\"\364\365\206up!\366P\"\266\211\204\205\306\307!\210\367\3708\371\"@\211\205\370\211\322\372\373\374\375\376\377&\206\366\211\211\211:\205\263\211@\326!\205\261\211G\327U\262\262\204\300\330\331\332\333E\"\210\211@\262\211\326!\205\317\211G\327U\262\204\340\330\331\201@\201AE\"\210\211\201BH\262\211\205\364\322\201C\201D#\262\262\266\202\205\224\201E\201F\310#\207\201G\201H\"\207\201I\362\363\"\364\365\206p!\366P\"\207\315\201J@\"\362\363\"\364\365\2066p!\366P\"\207\201K\362\363\"\364\365\206Jp!\366P\"\207\201L\362\363\"\364\365\206^p!\366P\"\207\201M\362\363\"\364\365\206rp!\366P\"\207\201N\362\363\"\364\365\206\206p!\366P\"\207\311\201O$\207" [chess-engine-handling-event chess-game-inhibit-events chess-engine-pending-offer initialize #s(hash-table size 11 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (ready 17 busy 78 match 80 move 94 flag-fell 775 forward 784 undo 804 abort 828 call-flag 848 draw 868 resign 888)) announce-autosave cl--assertion-failed game nil apply t match chess-engine-send format "match %s\n" read-string chess-string challenge-whom chess-ply-any-keyword :castle :long-castle chess-ply-to-algebraic vectorp 75 signal wrong-type-argument chess-ply ply 0 63 (integer 0 63) index string (integer 0 63) mod 8 7 (integer 0 7) file 97 (integer 0 63) (integer 0 7) rank 49 "-" characterp chess-ply-keyword :promote "=%c" "" chess-game-data ics-buffer comint-send-string get-buffer-process "\n" last 3 2 :drawn :perpetual :repetition :flag-fell :resign :aborted chess-pos position 74 :stalemate :checkmate chess-game-set-data active chess-common-handler flag-fell "forward" "takeback %d" "abort" "flag" "draw" "resign" chess-network-handler] 15 (#$ . 38770)]) (provide 'chess-ics)