;ELC   
;;; Compiled by buildd@akateko.buildd on Fri Oct 25 13:50:49 2013
;;; from file /build/buildd/emacs23-23.4+1/debian/build-x/lisp/gnus/gnus-range.el
;;; in Emacs version 23.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@87 Normalize RANGE.
If RANGE is a single range, return (RANGE). Otherwise, return RANGE.
(defalias 'gnus-range-normalize #[(range) "\243<\203 \207C\207" [range] 1 (#$ . 545)])
(put 'gnus-range-normalize 'byte-optimizer 'byte-compile-inline-expand)
#@30 Return last element of LIST.
(defalias 'gnus-last-element #[(list) "A\203\f A\211\202 @\207" [list] 2 (#$ . 800)])
#@38 Do a complete, total copy of a list.
(defalias 'gnus-copy-sequence #[(list) "\302	:\203% 	@:\203 \303	\211A@!B\202 	\211A@B\202 	\2030 \237	\244\2022 \237)\207" [out list nil gnus-copy-sequence] 3 (#$ . 926)])
#@65 Return a list of elements of LIST1 that do not appear in LIST2.
(defalias 'gnus-set-difference #[(list1 list2) "\302!	\203 \303	@\"	A\211\204 )\207" [list1 list2 copy-sequence delq] 4 (#$ . 1154)])
#@110 Return the range of elements in RANGE1 that do not appear in RANGE2.
Both ranges must be in ascending order.
(defalias 'gnus-range-difference #[(range1 range2) "\211\243<\203\f 	\202 	C)\n\211\243<\203 	\202 	C)\306\307!B\211\310\fA\203\f\211	A@)\n\n@\n\247\203G \n\202J \n@\f\n\247\203W \n\202Z \nA\247\203g \202j @\247\203w \202z A\fV\203\221 \f\211	\211AA)\241\210\202	\fU\203\250 \n<\203\250 \fA\f\240\210\202	\204\262 \306\202	W\203\303 \f\211A@\210\202	\fW\203\324 \n\211A@\210\202	\fX\203\361 X\203\361 \f\211	\211AA)\241\210\202	\f\fSBTBD\f\211	AA)\244\241\210.\202* A+\207" [range1 range range2 new-range r safe nil copy-sequence t x r1 r2 min1 max1 min2 max2] 5 (#$ . 1367)])
#@135 Return a list of elements of LIST1 that do not appear in LIST2.
Both lists have to be sorted over <.
The tail of LIST1 is not copied.
(defalias 'gnus-sorted-difference #[(list1 list2) "\303	\2035 \n\2035 	@\n@U\203 	A\nA\202 	@\n@W\203/ 	@B	A\211\202 \nA\202 \237	\244)\207" [out list1 list2 nil] 3 (#$ . 2148)])
#@121 Return a list of elements of LIST1 that do not appear in LIST2.
Both lists have to be sorted over <.
LIST1 is modified.
(defalias 'gnus-sorted-ndifference #[(list1 list2) "\304B\211\203; \203; @@U\203$ \nA\241\210AA\202 @@W\2035 A\211\202 A\202 	A*\207" [list1 top prev list2 nil] 3 (#$ . 2480)])
#@105 Return a list of elements that are in LIST1 or LIST2 but not both.
Both lists have to be sorted over <.
(defalias 'gnus-sorted-complement #[(list1 list2) "\303	\203\n \n\204 	\206R \n\202R 	\203J \n\203J 	@\n@U\203+ 	A\nA\202 	@\n@W\203? 	@B	A\211\202 \n@B\nA\202 \237	\206Q \n\244)\207" [out list1 list2 nil] 3 (#$ . 2807)])
(defalias 'gnus-intersection #[(list1 list2) "\303	\203 	@\n>\203 	@B	A\211\204 )\207" [result list2 list1 nil] 3])
#@83 Return intersection of LIST1 and LIST2.
LIST1 and LIST2 have to be sorted over <.
(defalias 'gnus-sorted-intersection #[(list1 list2) "\303	\2035 \n\2035 	@\n@U\203  	@B	A\nA\202 	@\n@W\203/ 	A\211\202 \nA\202 \237)\207" [out list1 list2 nil] 3 (#$ . 3277)])
#@87 Return intersection of RANGE1 and RANGE2.
RANGE1 and RANGE2 have to be sorted over <.
(defalias 'gnus-sorted-range-intersection #[(range1 range2) "\306	@\211\247\203 	A\247\203 	A\306\202  \n\202  \nA\n@\f@\211\247\203: \fA\247\2036 \fA\306\202? \202? A@	A\fA\n\203\322 \203\322 W\203] 	A\306\202\234 \nW\203l \fA\306\202\234 \n]^\211	U\203\205 	B\202\214 	BB*W\203\232 \306\202\234 \306\n\204\265 	@\211\247\203\254 \n\202\261 \nA\n@	A\204G \f@\211\247\203\305 \202\312 A@\fA\202G A\203\334 \237\202\350 @\247\203\346 \202\350 @-\207" [out range1 min1 max1 range2 min2 nil max2 max min] 4 (#$ . 3553)])
(defalias 'gnus-set-sorted-intersection 'gnus-sorted-nintersection)
#@118 Return intersection of LIST1 and LIST2 by modifying cdr pointers of LIST1.
LIST1 and LIST2 have to be sorted over <.
(defalias 'gnus-sorted-nintersection #[(list1 list2) "\304B\211\203; \203; @@U\203! AA\202 @@W\2035 \nA\241\210A\211\202 A\202 \n\304\241\210	A*\207" [list1 top prev list2 nil] 3 (#$ . 4297)])
#@76 Return union of LIST1 and LIST2.
LIST1 and LIST2 have to be sorted over <.
(defalias 'gnus-sorted-union #[(list1 list2) "\303	\203? \n\203? 	@\n@U\203  	@B	A\nA\202 	@\n@W\2034 	@B	A\211\202 \n@B\nA\202 	\203O 	@B	A\211\204C \n\203_ \n@B\nA\211\204S \237)\207" [out list1 list2 nil] 3 (#$ . 4636)])
#@111 Return union of LIST1 and LIST2 by modifying cdr pointers of LIST1.
LIST1 and LIST2 have to be sorted over <.
(defalias 'gnus-sorted-nunion #[(list1 list2) "\304B\211\203E \203E @@U\203! AA\202 @@W\2032 A\211\202 \n@C\241\210\nAA\n\241\210\202 \203Y \n@C\241\210\nAA\211\204I 	A*\207" [list1 top prev list2 nil] 3 (#$ . 4963)])
#@150 Convert sorted list of numbers to a list of ranges or a single range.
If ALWAYS-LIST is non-nil, this function will always release a list of
ranges.
(defalias 'gnus-compress-sequence #[(numbers &optional always-list) "@@\305\205u A<\204 \202u \203L \n@U\204E \nT@U\203/ @\202E 	\nU\2039 	\202< 	\nBB@@A\211\204 \f\204e \204e 	\nU\203_ 	C\202u 	\nB\202u 	\nU\203o 	\202r 	\nBB\237+\207" [numbers first last result always-list nil] 3 (#$ . 5330)])
(defalias 'gnus-uncompress-sequence 'gnus-uncompress-range)
#@134 Expand a list of ranges into a list of numbers.
RANGES is either a single range on the form `(num . num)' or a list of
these ranges.
(defalias 'gnus-uncompress-range #[(ranges) "\305\211\211\204 \305\202p A<\2040 @A\n	X\203+ \nB\nT\211\202 \237\202p \203n @:\204H @\247\203g @B\202g \211@@)\211@A)\n	X\203g \nB\nT\211\202W A\211\2044 \237+\207" [result last first ranges x nil] 4 (#$ . 5868)])
#@112 Return a list of ranges that has all articles from both RANGES and LIST.
Note: LIST has to be sorted over `<'.
(defalias 'gnus-add-to-range #[(ranges list) "\204	 \306	\307\"\207\310	!A<\204 C\311\211\211\211\f\203\237 	\203\237 	@:\2046 @\206= \211@@)	\203Z 	A\203Z 	\211A@)\fW\203Z 	A\211\204B @\fW\203s 		A\n\311\241\210\306\307\"\f\244\f@:\204~ @\206\205 \211@A)	\203\230 	@X\203\230 	A\211\204\212 A\211\204% 	\203\254 \306	\307\"\f\244\f\312\f\313\"\211\f\211\203\224@:\204(A\203\215\211A@):\204\367 @T\211A@)U\203\215\211@\211A@)B\240\210\211\211AA)\241\210\202\215@T\211A@)@U\203\215\211A@)@\240\210\211\211A@)\240\210\211\211AA)\241\210\202\215A\203\215\211A@):\204c\211@A)T\211A@)U\203\215@\211A@)\241\210\211\211AA)\241\210\202\215\211@A)T\211A@)@U\203\215@\211A@)A\241\210\211\211AA)\241\210A\211\204\271 \f-\207" [ranges list temp highest lowest ilist gnus-compress-sequence t copy-sequence nil sort #[(r1 r2) ":\204	 \206 @	:\204 	\206 	@W\207" [r1 r2] 2] out x] 6 (#$ . 6302)])
#@218 Return a range that has all articles from RANGE2 removed from RANGE1.
The returned range is always a list.  RANGE2 can also be a unsorted
list of articles.  RANGE1 is modified by side effects, RANGE2 is not
modified.
(defalias 'gnus-remove-from-range #[(range1 range2) "\203 	\204\n \207\306\211\211\211\211\211\211\307	!\n\fA<\203) \202+ C\310	A<\2037 	\2029 	C\311\"@	@\n:\203P @\202R :\203_ A\202a \n:\203n \n@\202p \n\n:\203} \nA\202 \n\2038	\2038\nW\203\267 	\210	A\211@\211\n:\203\242 \n@\202\244 \n\n:\203\261 \nA\202\263 \n\202\200 X\203\354 \f\nX\203\354 \210A\211@\211:\203\327 @\202\331 :\203\346 A\202\350 \202\200 X\203$\n\fX\203$	\210	A\nT	@\211\n:\203\n@\202\n\n:\203\nA\202 \n\202\200 X\203\244\n\fX\203\244S=\203@\fB\f\202ISB\fB\f	\210	A\n\fW\203Z\nT\202\200\210A\211@\211:\203n@\202p:\203}A\202	@\211\n:\203\217\n@\202\221\n\n:\203\236\nA\202\240\n\202\200 \fX\203\362\f\nX\203\362S=\203\300\fB\f\202\311SB\fB\f\210A\211@\211:\203\335@\202\337:\203\354A\202\356\202\200 \fW\203\200 \210A\f=\203\f\fB\f\202\fB\fB\f@\211:\203#@\202%:\2032A\2024\202\200 \203Y\f=\203L\fB\f\202T\fB\fB\f\210A\203j\211A@\fB\f\202Y\f\237.\207" [range1 range2 r2_max r2_min r1_max r1_min nil gnus-copy-sequence sort #[(e1 e2) ":\203\n @\202 	:\203 	@\202 	W\207" [e1 e2] 2] r2 r1 out] 10 (#$ . 7427)])
(defalias 'gnus-member-of-range #[(number ranges) "A<\204 	@Y\205c 	AX\207\304\203` @\247\203% 	@Y\202- 	\211@@)Y\203` \n\203` @\247\203A 	@U\202T 	\211@@)Y\203Y 	\211@A)X\203Y \305A\211\204 \n)?\207" [ranges number not-stop x t nil] 3])
#@85 Return a list of numbers in LIST that are members of RANGES.
LIST is a sorted list.
(defalias 'gnus-list-range-intersection #[(list ranges) "\211\243<\203\f 	\202 	C)\306\211\f\211A@\211\203d \203A @\247\203/ @W\2027 \211@A)W\203A A\211\204\" \203 @\247\203R @U\202Z \211@@)Y\203 \nB\202 \n\237*\207" [ranges range result number list x nil] 3 (#$ . 9235)])
(defalias 'gnus-inverse-list-range-intersection 'gnus-list-range-difference)
#@89 Return a list of numbers in LIST that are not members of RANGES.
LIST is a sorted list.
(defalias 'gnus-list-range-difference #[(list ranges) "\211\243<\203\f 	\202 	C)\306\211\f\211A@\211\203e \203A @\247\203/ @W\2027 \211@A)W\203A A\211\204\" \203^ @\247\203S @U?\202[ \211@@)W\203 \nB\202 \n\237*\207" [ranges range result number list x nil] 3 (#$ . 9704)])
#@53 Return the length RANGE would have if uncompressed.
(defalias 'gnus-range-length #[(range) "\204 \304\207A<\204 \305A@\306#\207\304\307\211\203; @	\n:\2031 \305\nA\n@\306#\2022 \310\\A\211\204 \307	+\207" [range sum x #1=#:--cl-dolist-temp-- 0 - -1 nil 1] 6 (#$ . 10099)])
#@59 Test whether all elements in SUBLIST are members of LIST.
(defalias 'gnus-sublist-p #[(list sublist) "\303	\203 	\211A@\n>\204 \304\211\211\204 )\207" [sublistp sublist list t nil] 3 (#$ . 10395)])
#@42 Add RANGE2 to RANGE1 (nondestructively).
(defalias 'gnus-range-add #[(range1 range2) "A<\204	 C	A<\204 	C\211A@	\211A@\306\211\211		\204. \203\276	\2047 \306\202r \204? \307\202r 	\247\203Q \247\203Q 	W\202r 	\247\203_ 	@W\202r \247\203l 	@W\202r 	@@W\n\203} 	\202~ \n\211\204\213 \n\202\217\n\204\225 \202\217\247\203\324 \n\247\203\324 \n=\203\256 \202\217T\n=\203\277 \nB\202\217\nT=\203\320 \nB\202\217\306\202\217\247\203\n@Y\203\361 \nAX\203\361 \n\202\217T\n@=\203\nAB\202\217S\nA=\203\n@B\202\217\306\202\217\n\247\203b\n@Y\2038\nAX\2038\202\217\nT@=\203K\nAB\202\217\nSA=\203^@\nB\202\217\306\202\217AT\n@W\203q\306\202\217\nAT@W\203\200\306\202\217@\n@^A\nA]B*\206\245\203\233\fB\n\203\244	\202\245\n\203\265\211A@\211	\202' 	\211A@\202% \203\306\fB\310\f!-\207" [range1 range2 selector item range item2 nil t reverse item1 tmp2 tmp1] 6 (#$ . 10607)])
#@42 Add NUM into sorted LIST by side effect.
(defalias 'gnus-add-to-sorted-list #[(list num) "\304B\211\203 @W\203 A\211\204\n @=\204' \nB\241\210	A*\207" [list top prev num nil] 4 (#$ . 11639)])
#@46 Apply FUNC to each value contained by RANGE.
(defalias 'gnus-range-map #[(func range) "\211\243<\203\f \202 C)\205B \211A@\211\247\203& \n	!\210\202> 	@	A\211X\203= \n\f!\210\fT\211\202- *)\202 \207" [range span func last first] 3 (#$ . 11853)])
(provide 'gnus-range)
