;;;; -*- coding:utf-8 -*- ;;;;************************************************************************** ;;;;FILE: character-sets.lisp ;;;;LANGUAGE: Common-Lisp ;;;;SYSTEM: Common-Lisp ;;;;USER-INTERFACE: NONE ;;;;DESCRIPTION ;;;; ;;;; This package exports functions to manage character-sets, ;;;; character encodings, coding systems and external format. ;;;; It's all the same, but each everybody likes to have his own terms... ;;;; ;;;; The base character set repertoire will be the IANA one, published at: ;;;; http://www.iana.org/assignments/character-sets ;;;; ;;;;AUTHORS ;;;; Pascal Bourguignon ;;;;MODIFICATIONS ;;;; 2007-05-18 Merged with stuff from make-depend, and augmented. ;;;; 2005-08-31 Created (iana-character-sets.lisp). ;;;;BUGS ;;;;LEGAL ;;;; GPL ;;;; ;;;; Copyright Pascal Bourguignon 2005 - 2007 ;;;; ;;;; This program is free software; you can redistribute it and/or ;;;; modify it under the terms of the GNU General Public License ;;;; as published by the Free Software Foundation; either version ;;;; 2 of the License, or (at your option) any later version. ;;;; ;;;; This program is distributed in the hope that it will be ;;;; useful, but WITHOUT ANY WARRANTY; without even the implied ;;;; warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ;;;; PURPOSE. See the GNU General Public License for more details. ;;;; ;;;; You should have received a copy of the GNU General Public ;;;; License along with this program; if not, write to the Free ;;;; Software Foundation, Inc., 59 Temple Place, Suite 330, ;;;; Boston, MA 02111-1307 USA ;;;;************************************************************************** (IN-PACKAGE "COMMON-LISP-USER") ;; (DECLAIM (DECLARATION ALSO-USE-PACKAGES) ;; (ALSO-USE-PACKAGES "COM.INFORMATIMAGO.COMMON-LISP.HTML")) ;; (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE) ;; (COM.INFORMATIMAGO.COMMON-LISP.PACKAGE:ADD-NICKNAME ;; "COM.INFORMATIMAGO.COMMON-LISP.HTML" "HTML")) (DEFPACKAGE "COM.INFORMATIMAGO.COMMON-LISP.CHARACTER-SETS" (:USE "COMMON-LISP" "COM.INFORMATIMAGO.COMMON-LISP.STRING") (:EXPORT "CHARACTER-SET" "CS-MIB-ENUM" "CS-NAME" "CS-ALIASES" "CS-SOURCE" "CS-COMMENTS" "CS-REFERENCES" "CS-RANGES" "CS-LISP-ENCODING" "CS-EMACS-ENCODING" "CS-MIME-ENCODING" "READ-CHARACTER-SETS-FILE" "*CHARACTER-SETS*" "FIND-CHARACTER-SET" "CHARACTER-SET-TO-EMACS-ENCODING" "CHARACTER-SET-FROM-EMACS-ENCODING" "CHARACTER-SET-TO-LISP-ENCODING" "CHARACTER-SET-FROM-LISP-ENCODING" "CHARACTER-SET-TO-MIME-ENCODING" "EMACS-ENCODING-TO-LISP-EXTERNAL-FORMAT" "CHARACTER-IN-CHARACTER-SET-P") (:DOCUMENTATION "This package exports functions to manage character-sets, character encodings, coding systems and external format. It's all the same, but each everybody likes to have his own terms... Copyright Pascal J. Bourguignon 2005 - 2007 This package is provided under the GNU General Public Licence. See the source file for details.")) (IN-PACKAGE "COM.INFORMATIMAGO.COMMON-LISP.CHARACTER-SETS") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; Processing IANA charactet-sets file. ;;;; (defstruct (character-set (:conc-name cs-)) mib-enum name aliases ;; Comments and other human readable information: source comments references ;; We associate each IANA character set with the cl-encoding and ;; the emacs encoding. ;; ;; We keep only the current Common Lisp implementation encoding, to ;; promote standardization of implementation encoding names around ;; this IANA character set registry. (We don't want to manage cross ;; CL implementations encodings, let's go thru the IANA registry). lisp-encoding ;; However, we keep also here the emacs encoding for its important ;; application in reading source files edited with emacs. emacs-encoding ;; The preferred name for MIME is stored here, otherwise name is used. mime-encoding ;; Character ranges: a vector of pairs of unicode character codes: ;; [ (aref range (* 2 i)) (aref range (1+ (* 2 i))) ] ;; indicating which characters belong to the character set, ;; or NIL when unknown. ranges) (defun read-character-sets-file (file) " DO: Parse the http://www.iana.org/assignments/character-sets file, and extracts the character-sets defined there. RETURN: A list of character-set structures read from the file. " (let ((lines (with-open-file (in file) (loop :for line = (read-line in nil nil) :while (and line (not (prefixp "Character Set " line)))) (loop ;; join continuation lines. :with lines = '() :for line = (read-line in nil nil) :while (and line (not (prefixp "REFERENCES" line))) :do (if (and (<= 1 (length line)) (char= #\space (aref line 0)) lines) (setf (car lines) (concatenate 'string (car lines) " " (string-trim " " line))) (push line lines)) :finally (return (nreverse lines)))))) (flet ((trim (string start end) (declare (inline trim)) (string-trim " " (subseq string start end)))) (loop :with sets = '() :with cs = nil :for line :in lines :do (let ((spc (position #\space line)) (colon (position #\: line))) (if (and colon (or (not spc) (< colon spc))) (let ((name (subseq line 0 colon)) (value (string-trim " " (subseq line (1+ colon))))) (cond ((string-equal name "Name") (when cs (push cs sets)) (let ((left-bra (position #\[ value)) (spc (position #\space value)) name comment reference) (cond ((and left-bra (or (null spc) (< left-bra spc))) (setf name (trim value 0 left-bra) reference (trim value left-bra nil))) ((and left-bra spc (< spc left-bra)) (setf name (trim value 0 spc) comment (trim value spc left-bra) reference (trim value left-bra nil))) (spc (setf name (trim value 0 spc) comment (trim value spc nil))) (t (setf name (string-trim " " value)))) (setf cs (make-character-set :name name :references (when reference (list reference)))) (when comment (cond ((null comment)) ((search "preferred MIME " comment) (setf (cs-mime-encoding cs) name)) ((string/= "" comment) (push comment (cs-comments cs))))))) ((or (string-equal name "Alias") (string-equal name "Aliases")) (let ((spc (position #\space value)) alias comment) (if spc (setf alias (string-trim " " (subseq value 0 spc)) comment line) (setf alias value comment nil)) (when (search "preferred MIME " comment) (setf (cs-mime-encoding cs) alias)) (unless (string-equal "None" alias) (push alias (cs-aliases cs)) (when (and comment (string/= "" comment)) (push comment (cs-comments cs)))))) ((string-equal name "Source") (setf (cs-source cs) value)) ((string-equal name "MIBenum") (setf (cs-mib-enum cs) (parse-integer value))) ;; bug: ((string-equal name "http") (push line (cs-comments cs))))) (when cs (let ((comment (string-trim " " line))) (when (string/= "" comment) (push comment (cs-comments cs))))))) :finally (when cs (push cs sets)) (return sets))))) (defvar *CHARACTER-SETS* nil "The list of IANA Character Sets.") (defun find-character-set (name) " RETURN: The character-set in *CHARACTER-SETS* that has NAME as name or alias, or some variation of NAME (removing non alphanumeric characters and prefixing 'cs'. " (flet ((memb (item list) (declare (inline memb)) (member item list :test (function string-equal)))) (let* ((name (string name)) (result (find-if (lambda (cs) (or (string-equal name (cs-name cs)) (memb name (cs-aliases cs)) (memb name (cs-lisp-encoding cs)) (memb name (cs-emacs-encoding cs)) (memb (concatenate 'string "cs" (remove-if-not (function alphanumericp) name)) (cs-aliases cs)))) *character-sets*))) ;; We move the found character set in front of the list to speed next ;; searches, assuming the application will often search several times ;; the same few character sets. (when result (setf *character-sets* (cons result (delete result *character-sets*)))) result))) (defun character-in-character-set-p (character character-set) (let ((code (char-code character)) (ranges (cs-ranges character-set))) (if ranges (loop :for i :from 0 :below (length ranges) :by 2 :do (when (<= (aref ranges i) code (aref ranges (1+ i))) (return (values code :known))) :finally (return (values nil :known))) (values t :unknown)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; EMACS-ENCODINGS ;;; (defparameter *emacs-encodings* #+emacs (sort* (mapcar (lambda (sl) (mapcar (lambda (sym) (upcase (symbol-name sym))) sl)) (delete-duplicates (mapcar (lambda (coding-system) (or (coding-system-get coding-system 'alias-coding-systems) (list coding-system))) (let ((coding-system-list '())) (mapatoms (lambda (sym) (when (and sym (coding-system-p sym)) (push sym coding-system-list)))) coding-system-list)) :test (function equal))) (function string<) :key (function first)) #-emacs (quote (("CHINESE-BIG5" "BIG5" "CN-BIG5" "CP950") ("CHINESE-HZ" "HZ-GB-2312" "HZ") ("CHINESE-ISO-8BIT" "CN-GB-2312" "EUC-CHINA" "EUC-CN" "CN-GB" "GB2312" "CP936") ("CHINESE-ISO-8BIT-WITH-ESC") ("COMPOUND-TEXT" "X-CTEXT" "CTEXT") ("COMPOUND-TEXT-WITH-EXTENSIONS" "X-CTEXT-WITH-EXTENSIONS" "CTEXT-WITH-EXTENSIONS") ("CP1125" "RUSCII" "CP866U") ("CP437") ("CP720") ("CP737") ("CP775") ("CP850") ("CP851") ("CP852") ("CP855") ("CP857") ("CP860") ("CP861") ("CP862") ("CP863") ("CP864") ("CP865") ("CP866") ("CP869") ("CP874") ("CTEXT-NO-COMPOSITIONS") ("CYRILLIC-ALTERNATIVNYJ" "ALTERNATIVNYJ") ("CYRILLIC-ISO-8BIT" "ISO-8859-5") ("CYRILLIC-ISO-8BIT-WITH-ESC") ("CYRILLIC-KOI8" "KOI8-R" "KOI8" "CP878") ("EMACS-MULE") ("EUC-TW" "EUC-TAIWAN") ("GEORGIAN-PS") ("GREEK-ISO-8BIT" "ISO-8859-7") ("GREEK-ISO-8BIT-WITH-ESC") ("HEBREW-ISO-8BIT" "ISO-8859-8" "ISO-8859-8-E" "ISO-8859-8-I") ("HEBREW-ISO-8BIT-WITH-ESC") ("IN-IS13194" "DEVANAGARI") ("IN-IS13194-WITH-ESC") ("ISO-2022-7BIT") ("ISO-2022-7BIT-LOCK" "ISO-2022-INT-1") ("ISO-2022-7BIT-LOCK-SS2" "ISO-2022-CJK") ("ISO-2022-7BIT-SS2") ("ISO-2022-8BIT-SS2") ("ISO-2022-CN" "CHINESE-ISO-7BIT") ("ISO-2022-CN-EXT") ("ISO-2022-JP" "JUNET") ("ISO-2022-JP-2") ("ISO-2022-KR" "KOREAN-ISO-7BIT-LOCK") ("ISO-8859-11") ("ISO-8859-6" "ARABIC-ISO-8BIT") ("ISO-LATIN-1" "ISO-8859-1" "LATIN-1") ("ISO-LATIN-1-WITH-ESC") ("ISO-LATIN-10" "ISO-8859-16" "LATIN-10") ("ISO-LATIN-2" "ISO-8859-2" "LATIN-2") ("ISO-LATIN-2-WITH-ESC") ("ISO-LATIN-3" "ISO-8859-3" "LATIN-3") ("ISO-LATIN-3-WITH-ESC") ("ISO-LATIN-4" "ISO-8859-4" "LATIN-4") ("ISO-LATIN-4-WITH-ESC") ("ISO-LATIN-5" "ISO-8859-9" "LATIN-5") ("ISO-LATIN-5-WITH-ESC") ("ISO-LATIN-6" "ISO-8859-10" "LATIN-6") ("ISO-LATIN-7" "ISO-8859-13" "LATIN-7") ("ISO-LATIN-8" "ISO-8859-14" "LATIN-8") ("ISO-LATIN-8-WITH-ESC") ("ISO-LATIN-9" "ISO-8859-15" "LATIN-9" "LATIN-0") ("ISO-LATIN-9-WITH-ESC") ("ISO-SAFE" "US-ASCII") ("JAPANESE-ISO-7BIT-1978-IRV" "ISO-2022-JP-1978-IRV" "OLD-JIS") ("JAPANESE-ISO-8BIT" "EUC-JAPAN-1990" "EUC-JAPAN" "EUC-JP") ("JAPANESE-ISO-8BIT-WITH-ESC") ("JAPANESE-SHIFT-JIS" "SHIFT_JIS" "SJIS" "CP932") ("KOI8-T" "CYRILLIC-KOI8-T") ("KOI8-U") ("KOREAN-ISO-8BIT" "EUC-KR" "EUC-KOREA" "CP949") ("KOREAN-ISO-8BIT-WITH-ESC") ("LAO") ("LAO-WITH-ESC") ("MAC-ROMAN") ("MIK") ("MULE-UTF-16" "UTF-16") ("MULE-UTF-16BE" "UTF-16BE") ("MULE-UTF-16BE-WITH-SIGNATURE" "UTF-16BE-WITH-SIGNATURE" "MULE-UTF-16-BE" "UTF-16-BE") ("MULE-UTF-16LE" "UTF-16LE") ("MULE-UTF-16LE-WITH-SIGNATURE" "UTF-16LE-WITH-SIGNATURE" "MULE-UTF-16-LE" "UTF-16-LE") ("MULE-UTF-8" "UTF-8") ("NEXT") ("NO-CONVERSION") ("PT154") ("RAW-TEXT") ("THAI-TIS620" "TH-TIS620" "TIS620" "TIS-620") ("THAI-TIS620-WITH-ESC") ("TIBETAN-ISO-8BIT" "TIBETAN") ("TIBETAN-ISO-8BIT-WITH-ESC") ("UNDECIDED") ("UTF-7") ("VIETNAMESE-TCVN" "TCVN" "TCVN-5712") ("VIETNAMESE-VIQR" "VIQR") ("VIETNAMESE-VISCII" "VISCII") ("VIETNAMESE-VSCII" "VSCII") ("W3M-EUC-JAPAN") ("W3M-ISO-LATIN-1") ("WINDOWS-1250" "CP1250") ("WINDOWS-1251" "CP1251" "CP1251") ("WINDOWS-1252" "CP1252" "CP1252") ("WINDOWS-1253" "CP1253") ("WINDOWS-1254" "CP1254") ("WINDOWS-1255" "CP1255") ("WINDOWS-1256" "CP1256") ("WINDOWS-1257" "CP1257") ("WINDOWS-1258" "CP1258"))) "List of emacs encoding, grouped by aliases") (defun add-aliases-to-group (group aliases) (let ((alias (find-if (lambda (alias) (intersection group alias :test (function string-equal))) aliases))) (if alias (remove-duplicates (union group alias :test (function string-equal)) :test (function string-equal)) group))) (defparameter *aliases* '( ;; clisp, emacs: ("UNICODE-32-LITTLE-ENDIAN" "UTF-32-LE" "UTF-32LE") ("UNICODE-32-BIG-ENDIAN" "UTF-32-BE" "UTF-32BE") ("UNICODE-16-LITTLE-ENDIAN" "UTF-16-LE" "UTF-16LE") ("UNICODE-16-BIG-ENDIAN" "UTF-16-BE" "UTF-16BE") ;; clisp ("CP437-IBM" "CP437") ("CP852-IBM" "CP852") ("CP860-IBM" "CP860") ("CP861-IBM" "CP861") ("CP862-IBM" "CP862") ("CP863-IBM" "CP863") ("CP864-IBM" "CP864") ("CP865-IBM" "CP865") ("CP869-IBM" "CP869") ("CP874-IBM" "CP874") ;; emacs: ("VSCII" "VISCII") ;; TODO: Add aliases for other implementations if needed. )) (defun fill-character-set-emacs-encoding () (dolist (ecsl *emacs-encodings*) (let ((cs (some (function find-character-set) (add-aliases-to-group ecsl *aliases*)))) (when cs (setf (cs-emacs-encoding cs) ecsl))))) (defun character-set-to-emacs-encoding (cs &key (line-terminator :unix)) " RETURN: A string naming the emacs encoding for the given character-set and line-terminator. SIGNAL: An error if line-terminator is not (member :unix :mac :dos nil) or if cs has no emacs encoding. " (assert (member line-terminator '(:unix :mac :dos nil))) (unless (cs-emacs-encoding cs) (error "The character-set ~A has no corresponding emacs encoding" (cs-name cs))) (format nil "~(~A~:[~;~:*-~A~]~)" (first (cs-emacs-encoding cs)) line-terminator)) (defun character-set-from-emacs-encoding (ecs) " ECS: A string or symbol naming the emacs encoding, possibly suffixed by a line-terminator. RETURN: The character-set that correspond to this emacs-encoding ; the line-terminator. " (let ((line-terminator nil) (ecs (string ecs))) (cond ((suffixp "-unix" ecs :test (function char-equal)) (setf ecs (subseq ecs 0 (- (length ecs) 5)) line-terminator :unix)) ((suffixp "-dos" ecs :test (function char-equal)) (setf ecs (subseq ecs 0 (- (length ecs) 4)) line-terminator :dos)) ((suffixp "-mac" ecs :test (function char-equal)) (setf ecs (subseq ecs 0 (- (length ecs) 4)) line-terminator :mac))) (values (find (lambda (cs) (member ecs (cs-emacs-encoding cs) :test (function string-equal))) *character-sets*) line-terminator))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Lisp Encodings ;;; #+clisp (defun group-charset-aliases () " RETURN: A list of sublists grouping character set aliases, ie. charset encodings that have the same charset." (let ((h (make-hash-table))) (do-external-symbols (s "CHARSET") (push (string-upcase s) (gethash (EXT:ENCODING-CHARSET s) h))) (let ((r '())) (maphash (lambda (k v) (declare (ignore k)) (push v r)) h) r))) (defparameter *lisp-encodings* #+clisp (group-charset-aliases) #+sbcl (mapcar (lambda (x) (mapcar 'string-upcase (first x))) SB-IMPL::*EXTERNAL-FORMATS*) #+cmu '(("ISO-8859-1")) ; :iso-latin-1-unix ; what else? #-(or clisp sbcl cmu) (progn (warn "What are the available external formats in ~A ?" (lisp-implementation-type)) '(("US-ASCII")))) (defun fill-character-set-lisp-encoding () (dolist (lsl *lisp-encodings*) (let ((cs (some (function find-character-set) (add-aliases-to-group lsl *aliases*)))) (when cs (setf (cs-lisp-encoding cs) lsl))))) (defun character-set-to-lisp-encoding (cs &key (line-terminator :unix)) " RETURN: An implementation specific object representing the encoding for the given character-set and line-terminator. SIGNAL: An error if line-terminator is not (member :unix :mac :dos nil) or if cs has no emacs encoding. " (assert (member line-terminator '(:unix :mac :dos nil))) (unless (cs-lisp-encoding cs) (error "The character-set ~A has no corresponding lisp encoding" (cs-name cs))) #+clisp (let ((sym (find-symbol (first (cs-lisp-encoding cs)) "CHARSET"))) (if sym (ext:make-encoding :charset (symbol-value sym) :line-terminator line-terminator) :default #|should not occur|#)) #-clisp (warn "How should I handle the line-terminator in ~A?" (lisp-implementation-type)) #+sbcl (intern (first (cs-lisp-encoding cs)) "KEYWORD") #+cmu (if (string-equal (first (cs-lisp-encoding cs)) "ISO-8859-1") :iso-latin-1-unix (error "I don't know a charset for ~A in ~A" cs (lisp-implementation-type))) #-(or clisp sbcl cmu) (if (string-equal (first (cs-lisp-encoding cs)) "US-ASCII") :default (error "I don't know the coding systems of ~A" (lisp-implementation-type)))) (defun character-set-for-lisp-encoding (encoding) " ENCODIGN: An implementation specific object representing an encoding. possibly with line-terminator. RETURN: The character-set that correspond to this emacs-encoding ; the line-terminator. " #+clisp (values (EXT:ENCODING-charset encoding) (EXT:ENCODING-line-terminator encoding)) #-clisp (values (find (lambda (cs) (member encoding (cs-lisp-encoding cs) :test (function string-equal))) *character-sets*) :unix)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; (defun encodings-not-in-iana (encodings) " RETURN: a list of encoding groups that aren't in *CHARACTER-SETS*. " (let ((result '())) (dolist (enc encodings result) (let ((cs (some (function find-character-set) enc))) (unless cs (push enc result)))))) (defun CHARACTER-SET-TO-MIME-ENCODING (cs) (or (cs-mime-encoding cs) (cs-name cs))) (defun emacs-encoding-to-lisp-external-format (emacs-encoding) " RETURN: the external-format value corresponding to this EMACS-ENCODING. " (multiple-value-bind (charset line-terminator) (character-set-from-emacs-encoding emacs-encoding) (when charset (character-set-to-lisp-encoding charset :line-terminator line-terminator)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; #+clisp (defun compute-character-set-ranges () " DO: Read the character-set file and build the *character-sets* list, then update the character sets with emacs encodings, lisp encodings, and character set ranges (found in clisp). RETURN: *character-sets* " (setf *CHARACTER-SETS* (READ-CHARACTER-SETS-FILE "character-sets")) (fill-character-set-emacs-encoding) (fill-character-set-lisp-encoding) (dolist (cs *character-sets*) (when (cs-lisp-encoding cs) (let ((charset (find-symbol (first (cs-lisp-encoding cs)) "CHARSET"))) (setf (cs-ranges cs) #+#.(cl:if (cl:ignore-errors (cl:find-symbol "GET-CHARSET-RANGE" "SYSTEM")) '(:and) '(:or)) (map 'vector (function char-code) (SYSTEM::GET-CHARSET-RANGE charset)) #-#.(cl:if (cl:ignore-errors (cl:find-symbol "GET-CHARSET-RANGE" "SYSTEM")) '(:and) '(:or)) (coerce (loop :with charset = (symbol-value charset) :with i = 0 :for start = (loop :until (or (< char-code-limit i) (typep (code-char i) charset)) :do (incf i) :finally (return (when (<= i char-code-limit) i))) :while start :nconc (list start (loop :while (and (<= i char-code-limit) (typep (code-char i) charset)) :do (incf i) :finally (return (1- i))))) 'vector))))) *CHARACTER-SETS*) ;; Provide a default value for *CHARACTER-SETS* #-(and) (let ((*print-right-margin* 72)) (pprint `(setf *CHARACTER-SETS* (LIST ,@(mapcar (lambda (cs) `(make-character-set :mib-enum ,(cs-mib-enum cs) :name ,(cs-name cs) :aliases ',(cs-aliases cs) :mime-encoding ',(cs-mime-encoding cs) :source ',(cs-source cs) :comments ',(cs-comments cs) :references ',(cs-references cs) :ranges ,(cs-ranges cs))) (compute-character-set-ranges)))))) (SETF *CHARACTER-SETS* (LIST (MAKE-CHARACTER-SET :MIB-ENUM 2052 :NAME "IBM865" :ALIASES '("csIBM865" "865" "cp865") :MIME-ENCODING 'NIL :SOURCE '"IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987)" :COMMENTS 'NIL :REFERENCES '("[RFC1345,KXS2]") :RANGES #(0 127 160 161 163 164 170 172 176 178 181 181 183 183 186 186 188 189 191 191 196 199 201 201 209 209 214 214 216 216 220 220 223 226 228 239 241 244 246 252 255 255 402 402 915 915 920 920 931 931 934 934 937 937 945 945 948 949 960 960 963 964 966 966 8319 8319 8359 8359 8729 8730 8734 8734 8745 8745 8776 8776 8801 8801 8804 8805 8976 8976 8992 8993 9472 9472 9474 9474 9484 9484 9488 9488 9492 9492 9496 9496 9500 9500 9508 9508 9516 9516 9524 9524 9532 9532 9552 9580 9600 9600 9604 9604 9608 9608 9612 9612 9616 9619 9632 9632)) (MAKE-CHARACTER-SET :MIB-ENUM 2051 :NAME "IBM864" :ALIASES '("csIBM864" "cp864") :MIME-ENCODING 'NIL :SOURCE '"IBM Keyboard layouts and code pages, PN 07G4586 June 1991" :COMMENTS 'NIL :REFERENCES '("[RFC1345,KXS2]") :RANGES #(0 36 38 127 160 160 162 164 166 166 171 173 176 177 183 183 187 189 215 215 247 247 946 946 966 966 1548 1548 1563 1563 1567 1567 1600 1600 1617 1617 1632 1642 8729 8730 8734 8734 8776 8776 9472 9472 9474 9474 9484 9484 9488 9488 9492 9492 9496 9496 9500 9500 9508 9508 9516 9516 9524 9524 9532 9532 9618 9618 9632 9632 65149 65149 65152 65157 65163 65163 65165 65167 65169 65169 65171 65171 65173 65173 65175 65175 65177 65177 65179 65179 65181 65181 65183 65183 65185 65185 65187 65187 65189 65189 65191 65191 65193 65193 65195 65195 65197 65197 65199 65199 65201 65201 65203 65203 65205 65205 65207 65207 65209 65209 65211 65211 65213 65213 65215 65215 65217 65217 65221 65221 65225 65233 65235 65235 65237 65237 65239 65239 65241 65241 65243 65243 65245 65245 65247 65247 65249 65249 65251 65251 65253 65253 65255 65255 65257 65257 65259 65261 65263 65267 65269 65272 65275 65276)) (MAKE-CHARACTER-SET :MIB-ENUM 38 :NAME #1="EUC-KR" :ALIASES '("csEUCKR") :MIME-ENCODING '#1# :SOURCE '"RFC-1557 (see also KS_C_5861-1992)" :COMMENTS 'NIL :REFERENCES '("[RFC1557,Choi]") :RANGES #(0 127 161 161 164 164 167 168 170 170 173 174 176 180 182 186 188 191 198 198 208 208 215 216 222 223 230 230 240 240 247 248 254 254 273 273 294 295 305 307 312 312 319 322 329 331 338 339 358 359 711 711 720 720 728 731 733 733 913 929 931 937 945 961 963 969 1025 1025 1040 1103 1105 1105 8213 8213 8216 8217 8220 8221 8224 8225 8229 8230 8240 8240 8242 8243 8251 8251 8308 8308 8319 8319 8321 8324 8364 8364 8451 8451 8457 8457 8467 8467 8470 8470 8481 8482 8486 8486 8491 8491 8531 8532 8539 8542 8544 8553 8560 8569 8592 8601 8658 8658 8660 8660 8704 8704 8706 8707 8711 8712 8715 8715 8719 8719 8721 8721 8730 8730 8733 8734 8736 8736 8741 8741 8743 8748 8750 8750 8756 8757 8764 8765 8786 8786 8800 8801 8804 8805 8810 8811 8834 8835 8838 8839 8857 8857 8869 8869 8978 8978 9312 9326 9332 9346 9372 9397 9424 9449 9472 9475 9484 9547 9618 9618 9632 9633 9635 9641 9650 9651 9654 9655 9660 9661 9664 9665 9670 9672 9675 9675 9678 9681 9733 9734 9742 9743 9756 9756 9758 9758 9792 9792 9794 9794 9824 9825 9827 9829 9831 9834 9836 9837 12288 12291 12296 12305 12307 12309 12353 12435 12449 12534 12593 12686 12800 12828 12896 12923 12927 12927 13184 13188 13192 13258 13263 13264 13267 13267 13270 13270 13272 13272 13275 13277 19968 19969 19971 19971 19975 19979 19981 19981 19985 19985 19988 19990 19992 19993 19998 19998 20013 20013 20018 20018 20024 20025 20027 20027 20034 20035 20037 20037 20043 20043 20045 20047 20054 20054 20056 20057 20061 20063 20075 20075 20077 20077 20083 20083 20086 20087 20094 20094 20098 20098 20102 20102 20104 20104 20107 20108 20110 20110 20112 20114 20116 20117 20120 20120 20123 20123 20126 20126 20129 20130 20132 20134 20136 20136 20139 20142 20150 20150 20154 20154 20160 20161 20164 20164 20167 20167 20170 20171 20173 20173 20180 20185 20189 20189 20191 20191 20195 20197 20208 20208 20210 20210 20214 20215 20219 20219 20225 20225 20233 20235 20237 20241 20271 20271 20276 20276 20278 20278 20280 20280 20282 20282 20284 20285 20291 20291 20294 20296 20301 20305 20309 20309 20313 20316 20329 20329 20335 20336 20339 20339 20342 20342 20346 20346 20350 20351 20353 20353 20355 20356 20358 20358 20360 20360 20362 20363 20365 20365 20367 20367 20369 20369 20374 20374 20376 20376 20379 20379 20381 20381 20398 20399 20405 20406 20415 20415 20418 20420 20425 20426 20430 20430 20433 20433 20435 20436 20439 20439 20442 20442 20445 20445 20447 20449 20462 20463 20465 20465 20467 20467 20469 20469 20472 20472 20474 20474 20482 20482 20486 20486 20489 20489 20491 20491 20493 20493 20497 20498 20502 20502 20505 20506 20508 20508 20510 20511 20513 20513 20515 20516 20518 20520 20522 20525 20539 20539 20547 20547 20551 20553 20559 20559 20565 20565 20570 20570 20572 20572 20581 20581 20596 20598 20600 20600 20608 20608 20613 20613 20621 20621 20625 20625 20632 20633 20652 20653 20658 20659 20661 20661 20663 20663 20670 20670 20677 20677 20681 20682 20687 20687 20689 20689 20693 20694 20698 20698 20702 20702 20709 20709 20711 20711 20717 20717 20729 20729 20731 20731 20735 20737 20740 20740 20742 20742 20745 20745 20754 20754 20767 20767 20769 20769 20778 20778 20786 20786 20791 20791 20794 20794 20796 20796 20800 20801 20803 20809 20811 20814 20818 20818 20828 20828 20834 20834 20837 20837 20839 20846 20849 20849 20853 20856 20860 20860 20864 20864 20870 20870 20874 20874 20877 20877 20882 20882 20885 20885 20887 20887 20896 20896 20901 20901 20906 20906 20908 20908 20918 20919 20925 20925 20932 20932 20934 20934 20937 20937 20939 20941 20956 20958 20961 20961 20976 20977 20982 20982 20984 20986 20989 20989 20992 20992 20995 20995 20998 21000 21002 21002 21006 21006 21009 21009 21015 21015 21021 21021 21028 21029 21033 21034 21038 21038 21040 21040 21046 21051 21059 21059 21063 21063 21066 21069 21076 21076 21078 21078 21083 21083 21085 21085 21089 21089 21097 21098 21103 21103 21106 21106 21109 21109 21117 21117 21119 21119 21123 21123 21127 21129 21133 21133 21137 21138 21147 21147 21151 21152 21155 21156 21161 21163 21182 21182 21185 21185 21187 21187 21189 21189 21191 21191 21193 21193 21197 21197 21202 21202 21205 21206 21208 21209 21211 21211 21213 21215 21218 21220 21235 21235 21237 21237 21240 21240 21242 21243 21246 21247 21253 21253 21256 21256 21261 21261 21263 21264 21269 21271 21273 21273 21280 21281 21283 21283 21290 21290 21295 21295 21305 21305 21311 21313 21315 21316 21319 21322 21325 21325 21329 21332 21335 21335 21338 21338 21340 21340 21342 21342 21344 21344 21350 21350 21352 21352 21359 21361 21364 21365 21367 21367 21373 21373 21375 21375 21380 21380 21395 21395 21400 21400 21402 21402 21407 21408 21413 21414 21421 21421 21435 21435 21443 21443 21448 21451 21453 21453 21460 21460 21462 21463 21467 21467 21473 21477 21481 21485 21487 21491 21496 21496 21507 21508 21512 21514 21516 21521 21531 21531 21533 21533 21535 21536 21542 21542 21545 21545 21547 21547 21555 21555 21560 21561 21563 21564 21566 21566 21570 21570 21576 21576 21578 21578 21585 21585 21608 21608 21610 21610 21617 21617 21619 21619 21621 21621 21627 21629 21632 21632 21638 21638 21644 21644 21646 21646 21648 21648 21668 21668 21672 21672 21675 21676 21683 21683 21688 21688 21693 21693 21696 21697 21700 21700 21704 21705 21729 21729 21733 21733 21736 21736 21741 21742 21746 21746 21754 21754 21764 21764 21766 21767 21774 21774 21776 21776 21788 21788 21807 21807 21809 21809 21813 21813 21822 21822 21828 21828 21830 21830 21839 21839 21843 21843 21846 21846 21854 21854 21859 21859 21884 21884 21888 21888 21892 21892 21894 21895 21897 21898 21912 21914 21916 21917 21927 21927 21929 21932 21934 21934 21957 21957 21959 21959 21972 21972 21978 21978 21980 21980 21983 21983 21987 21988 22013 22014 22022 22022 22025 22025 22036 22036 22039 22039 22063 22063 22066 22066 22068 22068 22070 22070 22099 22099 22120 22120 22123 22123 22132 22132 22150 22150 22181 22181 22188 22188 22190 22190 22196 22196 22204 22204 22218 22218 22221 22221 22225 22225 22234 22235 22238 22238 22240 22240 22256 22256 22265 22266 22275 22276 22280 22280 22283 22283 22285 22285 22290 22291 22294 22294 22296 22296 22303 22303 22312 22312 22317 22317 22320 22320 22331 22331 22336 22336 22338 22338 22343 22343 22346 22346 22349 22350 22352 22353 22369 22369 22372 22372 22374 22374 22378 22378 22382 22382 22384 22384 22389 22389 22396 22396 22402 22402 22408 22408 22411 22411 22419 22419 22432 22432 22434 22435 22467 22467 22471 22472 22475 22475 22478 22478 22495 22496 22512 22512 22516 22516 22519 22519 22521 22522 22524 22524 22528 22528 22530 22530 22533 22534 22536 22538 22558 22558 22561 22561 22564 22564 22567 22567 22570 22570 22575 22577 22580 22581 22586 22586 22602 22603 22607 22607 22609 22609 22612 22612 22615 22616 22618 22618 22622 22622 22625 22626 22628 22628 22645 22645 22649 22649 22652 22652 22654 22654 22659 22659 22661 22661 22665 22665 22675 22675 22684 22684 22686 22687 22696 22697 22702 22702 22707 22707 22714 22715 22718 22718 22721 22721 22725 22725 22727 22727 22734 22734 22737 22737 22739 22739 22741 22741 22744 22745 22750 22751 22756 22756 22763 22764 22767 22767 22777 22779 22781 22781 22799 22799 22804 22806 22809 22810 22812 22812 22818 22818 22823 22823 22825 22827 22829 22830 22833 22833 22839 22839 22846 22846 22852 22852 22855 22857 22862 22865 22868 22869 22871 22871 22874 22874 22880 22880 22882 22882 22887 22887 22890 22894 22899 22900 22904 22904 22909 22909 22914 22916 22922 22922 22931 22931 22934 22935 22937 22937 22949 22949 22952 22952 22956 22956 22969 22969 22971 22971 22974 22974 22979 22979 22982 22982 22985 22985 22987 22987 22992 22993 22995 22996 23001 23002 23004 23005 23014 23014 23016 23016 23018 23018 23020 23020 23022 23022 23032 23032 23035 23035 23039 23039 23041 23041 23043 23043 23057 23057 23064 23064 23067 23068 23071 23072 23077 23077 23081 23081 23094 23094 23100 23100 23105 23105 23110 23110 23113 23113 23130 23130 23138 23138 23142 23142 23186 23186 23194 23195 23204 23204 23233 23234 23236 23236 23241 23241 23244 23244 23265 23265 23270 23270 23273 23273 23301 23301 23305 23305 23307 23308 23318 23318 23338 23338 23360 23360 23363 23363 23376 23377 23380 23381 23383 23384 23386 23386 23388 23389 23391 23391 23395 23396 23401 23401 23403 23403 23408 23409 23413 23413 23416 23416 23418 23418 23420 23420 23429 23429 23431 23433 23435 23436 23439 23439 23443 23443 23445 23452 23458 23462 23468 23468 23470 23470 23472 23472 23475 23478 23480 23481 23487 23488 23490 23495 23500 23500 23504 23504 23506 23508 23511 23511 23518 23519 23521 23522 23524 23529 23531 23532 23534 23535 23541 23542 23544 23544 23546 23546 23553 23553 23556 23556 23559 23563 23565 23567 23569 23569 23574 23574 23577 23577 23588 23588 23592 23592 23601 23601 23608 23612 23614 23616 23621 23622 23624 23624 23627 23627 23629 23630 23633 23633 23637 23637 23643 23643 23648 23648 23650 23650 23652 23653 23660 23660 23663 23663 23665 23665 23673 23673 23696 23697 23713 23713 23721 23721 23723 23724 23729 23729 23731 23731 23733 23733 23735 23736 23738 23738 23742 23742 23744 23744 23769 23769 23776 23776 23784 23784 23791 23792 23796 23796 23798 23798 23803 23803 23805 23805 23815 23815 23821 23822 23825 23825 23828 23828 23830 23831 23833 23833 23847 23847 23849 23849 23883 23884 23888 23888 23913 23913 23916 23916 23919 23919 23943 23943 23947 23947 23965 23965 23968 23968 23970 23970 23978 23978 23992 23992 23994 23994 23996 23997 24013 24013 24018 24018 24022 24022 24029 24030 24033 24034 24037 24040 24043 24043 24046 24046 24049 24052 24055 24055 24061 24062 24066 24067 24070 24070 24076 24076 24081 24081 24086 24086 24089 24089 24091 24091 24093 24093 24101 24101 24107 24107 24109 24109 24115 24115 24118 24118 24120 24120 24125 24125 24127 24128 24132 24133 24135 24135 24140 24140 24149 24149 24159 24159 24161 24163 24178 24180 24183 24185 24187 24190 24196 24196 24199 24199 24202 24202 24207 24207 24213 24213 24215 24215 24218 24218 24220 24220 24224 24224 24230 24231 24235 24235 24237 24237 24245 24248 24254 24254 24258 24258 24264 24266 24272 24272 24275 24275 24278 24278 24282 24283 24287 24288 24290 24291 24300 24300 24307 24307 24310 24311 24314 24315 24321 24321 24324 24324 24330 24330 24335 24335 24337 24337 24339 24341 24343 24344 24347 24347 24351 24351 24358 24359 24361 24361 24369 24369 24373 24373 24378 24378 24380 24380 24392 24392 24394 24394 24396 24396 24398 24398 24406 24407 24409 24409 24411 24411 24418 24418 24422 24423 24425 24429 24432 24433 24439 24439 24441 24441 24444 24444 24447 24449 24453 24453 24455 24455 24458 24460 24464 24466 24471 24473 24478 24478 24480 24481 24488 24490 24494 24494 24501 24501 24503 24503 24505 24505 24509 24509 24515 24515 24517 24517 24524 24525 24534 24537 24544 24544 24555 24555 24565 24565 24573 24573 24575 24575 24591 24591 24594 24594 24598 24598 24604 24605 24608 24609 24613 24613 24615 24616 24618 24618 24623 24623 24641 24643 24653 24653 24656 24656 24658 24658 24661 24661 24665 24665 24669 24669 24674 24677 24680 24682 24684 24685 24687 24688 24709 24709 24713 24713 24716 24717 24724 24724 24726 24726 24730 24731 24735 24736 24739 24740 24743 24743 24752 24752 24754 24756 24758 24758 24760 24760 24764 24765 24773 24773 24775 24775 24785 24785 24794 24794 24796 24796 24799 24801 24816 24817 24819 24819 24822 24822 24825 24827 24833 24833 24838 24838 24840 24841 24845 24847 24853 24853 24858 24859 24863 24863 24871 24871 24880 24880 24884 24884 24887 24887 24892 24892 24894 24895 24898 24898 24900 24900 24903 24904 24906 24908 24915 24915 24917 24917 24920 24921 24925 24925 24927 24927 24930 24932 24935 24936 24939 24939 24942 24942 24944 24944 24950 24951 24957 24958 24961 24962 24970 24970 24974 24974 24976 24977 24980 24980 24984 24986 24996 24996 24999 24999 25001 25001 25003 25004 25006 25006 25010 25010 25014 25014 25018 25018 25022 25022 25027 25027 25031 25035 25062 25062 25074 25074 25078 25080 25082 25082 25084 25084 25087 25088 25095 25096 25098 25098 25100 25102 25104 25106 25110 25110 25114 25114 25119 25119 25121 25121 25130 25130 25134 25134 25136 25137 25140 25140 25142 25142 25150 25153 25159 25161 25163 25163 25165 25165 25171 25171 25176 25176 25198 25198 25201 25201 25206 25206 25209 25209 25212 25212 25215 25216 25220 25220 25225 25226 25233 25234 25237 25237 25239 25240 25243 25243 25259 25259 25265 25265 25269 25269 25273 25273 25276 25277 25282 25282 25287 25289 25292 25293 25295 25296 25298 25300 25302 25305 25307 25308 25324 25327 25329 25329 25331 25331 25335 25335 25342 25343 25345 25345 25351 25351 25353 25353 25361 25361 25387 25387 25391 25391 25402 25403 25405 25406 25417 25417 25420 25420 25423 25424 25429 25429 25447 25448 25454 25454 25458 25458 25463 25463 25466 25467 25471 25471 25475 25475 25480 25481 25484 25484 25490 25490 25494 25494 25496 25496 25499 25499 25504 25506 25509 25509 25511 25514 25536 25536 25540 25540 25542 25542 25551 25552 25558 25558 25562 25563 25569 25569 25581 25582 25588 25588 25590 25591 25613 25613 25615 25615 25620 25620 25622 25623 25628 25628 25634 25634 25644 25645 25658 25658 25662 25662 25688 25688 25696 25696 25705 25705 25711 25711 25720 25722 25736 25736 25745 25747 25754 25754 25758 25758 25764 25765 25771 25771 25773 25774 25776 25776 25778 25778 25787 25787 25793 25793 25796 25797 25799 25799 25802 25802 25805 25806 25810 25810 25812 25812 25816 25816 25818 25818 25825 25826 25829 25831 25836 25836 25842 25842 25844 25844 25850 25850 25854 25854 25856 25856 25860 25860 25880 25880 25885 25885 25891 25891 25898 25900 25903 25903 25910 25913 25915 25915 25918 25919 25925 25925 25928 25928 25933 25935 25937 25937 25942 25943 25950 25950 25954 25955 25958 25958 25964 25965 25970 25970 25972 25973 25975 25976 25982 25982 25986 25987 25989 25989 25991 25991 25996 25996 26000 26001 26007 26007 26009 26009 26011 26012 26015 26015 26017 26017 26020 26021 26023 26023 26027 26028 26031 26032 26039 26039 26041 26041 26044 26045 26049 26049 26053 26053 26059 26060 26063 26063 26066 26066 26071 26071 26080 26080 26083 26083 26085 26086 26088 26089 26092 26093 26097 26097 26100 26100 26106 26109 26111 26111 26118 26119 26121 26122 26124 26124 26126 26129 26131 26133 26142 26144 26149 26149 26151 26152 26157 26157 26159 26161 26164 26164 26166 26166 26170 26171 26177 26180 26185 26185 26187 26187 26191 26191 26201 26201 26203 26203 26205 26207 26212 26217 26219 26219 26222 26223 26227 26228 26230 26232 26234 26234 26244 26244 26247 26249 26254 26254 26256 26257 26262 26264 26269 26269 26272 26272 26274 26274 26283 26283 26286 26286 26290 26292 26297 26297 26299 26299 26302 26302 26308 26308 26310 26311 26313 26313 26326 26326 26329 26329 26332 26333 26336 26336 26342 26342 26352 26352 26354 26356 26359 26362 26364 26364 26366 26368 26371 26371 26376 26377 26379 26379 26381 26381 26388 26389 26391 26391 26395 26395 26397 26399 26406 26408 26410 26414 26417 26417 26420 26420 26422 26422 26426 26426 26429 26429 26438 26438 26441 26441 26446 26449 26451 26451 26454 26454 26460 26460 26462 26463 26477 26477 26479 26481 26483 26483 26485 26485 26487 26487 26491 26491 26494 26495 26503 26503 26505 26505 26507 26507 26511 26512 26515 26515 26517 26517 26519 26519 26522 26522 26524 26525 26543 26544 26547 26547 26550 26552 26558 26558 26564 26564 26575 26580 26586 26586 26589 26589 26601 26601 26604 26604 26607 26609 26611 26614 26619 26619 26622 26622 26642 26643 26646 26647 26657 26658 26666 26666 26671 26671 26680 26681 26684 26685 26688 26691 26696 26696 26702 26702 26704 26705 26707 26708 26733 26733 26742 26742 26751 26751 26753 26753 26757 26757 26767 26767 26771 26772 26775 26775 26781 26781 26783 26783 26785 26786 26791 26792 26797 26797 26799 26801 26803 26803 26805 26806 26820 26821 26825 26825 26827 26827 26829 26829 26834 26834 26837 26837 26839 26840 26842 26842 26847 26848 26855 26856 26862 26862 26866 26866 26873 26874 26880 26880 26885 26885 26893 26894 26898 26898 26919 26919 26928 26928 26941 26941 26943 26943 26954 26954 26963 26965 26967 26967 26969 26970 26974 26974 26976 26979 26984 26984 26987 26987 26989 26991 26997 26997 26999 27001 27029 27029 27035 27036 27045 27045 27047 27047 27054 27054 27060 27060 27067 27067 27073 27073 27075 27075 27083 27085 27088 27088 27112 27112 27114 27114 27131 27131 27133 27133 27135 27135 27138 27138 27146 27146 27153 27153 27155 27155 27159 27159 27161 27161 27166 27167 27169 27169 27171 27171 27189 27189 27192 27194 27197 27197 27204 27204 27208 27208 27211 27211 27218 27219 27224 27225 27231 27231 27233 27233 27243 27243 27264 27264 27268 27268 27273 27273 27277 27278 27287 27287 27292 27292 27298 27299 27315 27315 27323 27323 27330 27331 27347 27347 27354 27355 27382 27382 27387 27387 27396 27396 27402 27402 27404 27404 27410 27410 27414 27414 27424 27425 27427 27427 27442 27442 27450 27450 27453 27454 27462 27463 27468 27468 27470 27470 27472 27472 27487 27487 27489 27494 27498 27498 27506 27506 27511 27512 27515 27515 27519 27519 27523 27524 27526 27526 27529 27530 27542 27542 27544 27544 27550 27550 27566 27567 27570 27570 27573 27573 27575 27575 27578 27578 27580 27580 27583 27583 27585 27585 27589 27590 27595 27595 27597 27597 27599 27599 27602 27604 27606 27608 27611 27611 27627 27628 27656 27656 27663 27663 27665 27665 27667 27667 27683 27683 27700 27700 27703 27704 27710 27710 27712 27714 27726 27726 27728 27728 27733 27733 27735 27735 27738 27738 27741 27744 27752 27752 27754 27754 27757 27757 27760 27760 27762 27762 27766 27766 27770 27770 27773 27774 27777 27779 27781 27784 27788 27788 27792 27792 27794 27798 27801 27803 27819 27819 27822 27822 27827 27827 27832 27833 27835 27839 27841 27842 27844 27844 27849 27850 27852 27852 27859 27859 27861 27861 27863 27863 27867 27867 27873 27875 27877 27877 27880 27880 27883 27883 27886 27888 27891 27891 27915 27916 27921 27921 27927 27927 27929 27929 27931 27931 27934 27934 27941 27941 27943 27943 27945 27946 27954 27954 27957 27958 27960 27961 27963 27963 27965 27966 27969 27969 27993 27994 27996 27996 28003 28003 28006 28006 28009 28010 28012 28012 28014 28014 28020 28020 28023 28025 28031 28031 28037 28037 28039 28041 28044 28046 28049 28049 28051 28051 28053 28053 28079 28079 28082 28082 28085 28085 28096 28096 28099 28103 28107 28107 28111 28111 28113 28113 28120 28122 28126 28126 28129 28129 28136 28136 28138 28139 28142 28142 28145 28145 28147 28147 28149 28149 28151 28155 28183 28183 28185 28187 28191 28193 28195 28198 28203 28205 28207 28207 28210 28210 28212 28212 28214 28214 28216 28216 28218 28218 28220 28222 28227 28228 28234 28234 28237 28237 28246 28246 28248 28248 28251 28252 28254 28255 28263 28263 28267 28267 28270 28271 28274 28275 28282 28282 28304 28304 28310 28310 28316 28317 28319 28319 28322 28322 28325 28325 28330 28331 28335 28335 28337 28337 28342 28342 28346 28346 28354 28354 28356 28357 28361 28361 28363 28364 28366 28366 28369 28369 28371 28372 28399 28399 28404 28404 28408 28408 28414 28415 28417 28418 28422 28422 28431 28431 28433 28433 28436 28437 28448 28448 28450 28451 28459 28460 28465 28466 28472 28472 28479 28479 28481 28481 28497 28497 28500 28500 28503 28504 28506 28507 28510 28511 28514 28514 28516 28516 28525 28526 28528 28528 28538 28538 28540 28542 28545 28545 28548 28548 28552 28552 28557 28558 28560 28560 28564 28564 28567 28567 28579 28580 28583 28583 28590 28591 28593 28593 28595 28595 28601 28601 28606 28606 28608 28611 28618 28618 28629 28629 28634 28634 28639 28641 28644 28644 28649 28649 28651 28652 28655 28655 28657 28657 28670 28670 28673 28673 28677 28678 28681 28681 28683 28683 28687 28687 28689 28689 28693 28693 28696 28696 28698 28703 28707 28707 28711 28712 28719 28719 28727 28727 28734 28734 28748 28748 28752 28753 28760 28760 28765 28765 28771 28771 28779 28779 28784 28784 28792 28792 28796 28797 28805 28805 28810 28810 28814 28814 28818 28818 28824 28826 28833 28833 28836 28836 28843 28845 28847 28847 28851 28851 28855 28857 28872 28872 28875 28875 28879 28879 28888 28889 28893 28893 28895 28895 28913 28913 28921 28921 28925 28925 28932 28932 28937 28937 28940 28940 28953 28954 28958 28958 28961 28961 28966 28966 28976 28976 28982 28982 28999 28999 29001 29002 29004 29004 29006 29006 29008 29008 29014 29014 29017 29017 29020 29020 29022 29022 29028 29031 29033 29033 29036 29036 29038 29038 29053 29053 29060 29060 29065 29066 29071 29071 29074 29074 29076 29076 29081 29081 29087 29087 29090 29090 29100 29100 29105 29105 29113 29114 29118 29118 29121 29121 29123 29123 29128 29129 29134 29134 29136 29136 29138 29138 29140 29141 29151 29151 29157 29159 29165 29166 29179 29180 29182 29184 29190 29190 29200 29200 29211 29211 29226 29226 29228 29229 29232 29232 29234 29234 29237 29238 29242 29243 29245 29246 29248 29248 29254 29256 29260 29260 29266 29266 29272 29273 29275 29275 29277 29277 29279 29279 29281 29282 29287 29287 29289 29289 29298 29298 29305 29305 29309 29309 29312 29313 29346 29346 29351 29351 29356 29356 29359 29359 29376 29376 29378 29378 29380 29380 29390 29390 29392 29392 29399 29399 29401 29401 29409 29409 29417 29417 29432 29433 29436 29437 29450 29450 29462 29462 29467 29469 29477 29477 29481 29483 29494 29495 29502 29503 29508 29509 29520 29520 29522 29522 29527 29527 29544 29544 29546 29546 29552 29552 29554 29554 29557 29557 29560 29560 29562 29563 29572 29572 29574 29575 29577 29577 29579 29579 29582 29582 29588 29588 29590 29592 29599 29599 29607 29607 29609 29609 29613 29613 29618 29619 29625 29625 29632 29632 29634 29634 29641 29642 29644 29645 29647 29647 29654 29654 29657 29657 29661 29662 29664 29664 29667 29670 29673 29674 29677 29677 29687 29687 29689 29689 29693 29694 29697 29697 29699 29699 29701 29703 29705 29705 29715 29715 29723 29723 29728 29730 29733 29734 29736 29736 29738 29740 29742 29744 29747 29750 29752 29752 29754 29754 29759 29761 29763 29764 29771 29771 29781 29781 29783 29783 29785 29788 29790 29792 29794 29794 29796 29797 29800 29802 29807 29807 29822 29822 29826 29827 29831 29831 29833 29833 29835 29835 29848 29848 29852 29852 29854 29855 29857 29857 29859 29859 29861 29861 29863 29864 29866 29866 29872 29872 29874 29874 29877 29877 29881 29881 29885 29885 29887 29887 29894 29894 29898 29898 29903 29903 29908 29908 29912 29912 29914 29914 29916 29916 29920 29920 29922 29923 29926 29926 29934 29934 29943 29943 29953 29953 29956 29956 29969 29969 29973 29973 29976 29976 29978 29979 29983 29983 29987 29987 29989 29990 29992 29992 29995 29996 30000 30003 30007 30008 30010 30010 30023 30023 30028 30028 30031 30031 30033 30033 30035 30036 30041 30041 30043 30045 30050 30050 30053 30054 30058 30058 30063 30064 30069 30070 30072 30072 30074 30074 30079 30079 30086 30087 30090 30091 30094 30095 30097 30097 30109 30109 30117 30117 30123 30123 30129 30131 30133 30133 30136 30137 30140 30142 30146 30146 30149 30149 30151 30151 30157 30157 30162 30162 30164 30165 30168 30169 30171 30171 30178 30178 30192 30192 30194 30194 30196 30196 30202 30202 30204 30204 30208 30208 30221 30221 30233 30233 30239 30242 30244 30244 30246 30246 30267 30267 30274 30274 30284 30284 30286 30286 30290 30290 30294 30294 30305 30305 30308 30308 30313 30313 30316 30316 30320 30320 30322 30322 30328 30328 30331 30334 30340 30340 30342 30343 30350 30350 30352 30352 30355 30355 30382 30382 30394 30394 30399 30399 30402 30403 30406 30406 30408 30408 30410 30410 30418 30418 30422 30422 30427 30428 30430 30431 30433 30433 30435 30436 30439 30439 30446 30446 30450 30450 30452 30452 30456 30456 30460 30460 30462 30462 30465 30465 30468 30468 30472 30473 30475 30475 30494 30494 30496 30496 30505 30505 30519 30520 30522 30522 30524 30524 30528 30528 30541 30541 30555 30555 30561 30561 30563 30563 30566 30566 30571 30571 30585 30585 30590 30591 30603 30603 30609 30609 30622 30622 30629 30629 30636 30637 30640 30640 30643 30643 30651 30652 30655 30655 30679 30679 30683 30684 30690 30691 30693 30693 30697 30697 30701 30703 30707 30707 30722 30722 30738 30738 30757 30759 30764 30764 30770 30770 30772 30772 30789 30789 30799 30799 30813 30813 30827 30828 30831 30831 30844 30844 30849 30849 30855 30855 30860 30862 30865 30865 30871 30871 30883 30883 30887 30887 30889 30889 30906 30908 30913 30913 30917 30917 30922 30923 30926 30926 30928 30928 30952 30952 30956 30956 30959 30959 30965 30965 30971 30971 30977 30977 30990 30990 30998 30998 31018 31020 31034 31034 31038 31038 31040 31041 31047 31049 31056 31056 31062 31063 31066 31070 31072 31072 31077 31077 31080 31080 31085 31085 31098 31098 31103 31103 31105 31105 31117 31119 31121 31121 31142 31143 31146 31146 31150 31150 31153 31153 31155 31155 31161 31161 31165 31169 31177 31179 31185 31186 31189 31189 31192 31192 31199 31199 31204 31204 31206 31207 31209 31209 31227 31227 31232 31232 31237 31237 31240 31240 31243 31243 31245 31245 31252 31252 31255 31255 31257 31258 31260 31260 31263 31264 31278 31278 31281 31281 31286 31287 31291 31293 31295 31296 31302 31302 31305 31305 31309 31310 31319 31319 31329 31330 31337 31337 31339 31339 31344 31344 31348 31348 31350 31350 31353 31354 31357 31357 31359 31359 31361 31361 31364 31364 31368 31368 31378 31379 31381 31381 31384 31384 31391 31391 31401 31402 31406 31407 31418 31418 31428 31429 31431 31431 31434 31435 31447 31447 31449 31449 31453 31453 31455 31456 31459 31459 31461 31461 31466 31466 31469 31469 31471 31471 31478 31478 31481 31482 31487 31487 31503 31503 31505 31505 31513 31513 31515 31515 31518 31518 31520 31520 31526 31526 31532 31533 31545 31545 31558 31558 31561 31561 31563 31565 31567 31570 31572 31572 31574 31574 31584 31584 31596 31596 31598 31598 31605 31605 31613 31613 31623 31623 31627 31627 31631 31631 31636 31637 31639 31639 31642 31642 31645 31645 31649 31649 31661 31661 31665 31665 31668 31668 31672 31672 31680 31681 31684 31684 31686 31687 31689 31689 31698 31698 31712 31712 31716 31716 31721 31721 31751 31751 31762 31762 31774 31774 31777 31777 31783 31783 31786 31787 31805 31807 31811 31811 31820 31821 31840 31840 31844 31844 31852 31852 31859 31859 31875 31875 31881 31881 31890 31890 31893 31893 31895 31896 31903 31903 31909 31909 31911 31911 31918 31918 31921 31923 31929 31929 31934 31934 31946 31946 31958 31958 31966 31968 31975 31975 31995 31995 31998 31998 32000 32000 32002 32002 32004 32008 32010 32011 32013 32013 32016 32016 32020 32020 32023 32027 32032 32034 32043 32044 32046 32048 32051 32051 32053 32053 32057 32058 32066 32070 32080 32080 32094 32094 32097 32098 32102 32102 32104 32104 32106 32106 32110 32110 32113 32115 32118 32118 32121 32121 32127 32127 32142 32143 32147 32147 32156 32156 32160 32160 32162 32162 32172 32173 32177 32178 32180 32181 32184 32184 32186 32187 32189 32191 32199 32199 32202 32203 32214 32214 32216 32216 32218 32218 32221 32222 32224 32225 32227 32227 32232 32233 32236 32236 32239 32239 32244 32244 32251 32251 32265 32266 32277 32277 32283 32283 32285 32287 32289 32289 32291 32291 32299 32299 32302 32303 32305 32305 32311 32311 32317 32318 32321 32321 32323 32323 32326 32327 32338 32338 32340 32341 32350 32350 32353 32353 32361 32363 32365 32365 32368 32368 32377 32377 32380 32380 32386 32386 32396 32396 32399 32399 32403 32403 32406 32406 32408 32408 32411 32412 32566 32566 32568 32568 32570 32570 32588 32588 32592 32592 32596 32597 32618 32619 32622 32622 32624 32624 32626 32626 32629 32629 32631 32631 32633 32633 32645 32645 32648 32648 32650 32650 32652 32652 32654 32654 32660 32660 32666 32666 32670 32670 32676 32676 32680 32681 32690 32690 32696 32697 32701 32701 32705 32705 32709 32709 32714 32714 32716 32716 32718 32718 32722 32722 32724 32725 32735 32737 32745 32745 32747 32747 32752 32752 32761 32761 32764 32764 32768 32769 32771 32771 32773 32774 32777 32777 32780 32780 32784 32784 32789 32789 32791 32792 32813 32813 32819 32819 32822 32822 32829 32829 32831 32831 32835 32835 32838 32838 32842 32842 32854 32854 32856 32856 32858 32858 32862 32862 32879 32880 32882 32883 32887 32887 32893 32895 32900 32903 32905 32905 32907 32908 32918 32918 32923 32923 32925 32925 32929 32930 32933 32933 32937 32938 32943 32943 32945 32946 32948 32948 32954 32954 32963 32964 32972 32972 32974 32974 32986 32987 32990 32990 32993 32993 32996 32997 33009 33009 33012 33012 33016 33016 33021 33021 33026 33026 33029 33032 33034 33034 33048 33048 33050 33051 33059 33059 33065 33065 33067 33067 33071 33071 33081 33081 33086 33086 33099 33099 33102 33102 33104 33105 33108 33109 33125 33126 33131 33131 33136 33137 33144 33146 33151 33152 33160 33160 33162 33162 33167 33167 33178 33178 33180 33181 33184 33184 33187 33187 33192 33192 33203 33203 33205 33205 33210 33210 33213 33216 33218 33218 33222 33222 33229 33229 33240 33240 33247 33247 33251 33251 33253 33253 33255 33256 33258 33258 33261 33261 33267 33268 33274 33276 33278 33278 33285 33285 33287 33288 33290 33290 33292 33293 33298 33298 33307 33308 33310 33311 33313 33313 33322 33324 33333 33335 33337 33337 33344 33344 33349 33349 33351 33351 33369 33369 33380 33380 33382 33382 33390 33391 33393 33394 33398 33398 33400 33400 33406 33406 33419 33419 33421 33422 33426 33426 33433 33434 33437 33437 33439 33439 33445 33446 33449 33449 33452 33455 33457 33457 33459 33459 33463 33465 33467 33469 33471 33471 33489 33490 33492 33493 33495 33495 33499 33499 33502 33503 33505 33505 33509 33511 33521 33521 33533 33534 33537 33541 33545 33545 33559 33559 33576 33576 33579 33579 33583 33583 33585 33585 33588 33590 33592 33593 33600 33600 33607 33607 33609 33610 33615 33615 33617 33618 33651 33651 33655 33655 33659 33659 33673 33674 33678 33678 33686 33686 33688 33688 33694 33694 33698 33698 33705 33707 33725 33725 33729 33729 33733 33733 33737 33738 33740 33740 33747 33747 33750 33750 33756 33756 33769 33769 33771 33771 33775 33778 33780 33780 33785 33785 33789 33789 33795 33796 33802 33802 33804 33806 33833 33833 33836 33836 33841 33841 33848 33848 33853 33853 33865 33865 33879 33879 33883 33883 33889 33889 33891 33891 33894 33894 33899 33900 33903 33903 33909 33909 33914 33914 33936 33936 33940 33940 33945 33945 33948 33948 33953 33953 33970 33970 33976 33976 33979 33980 33983 33984 33986 33986 33988 33988 33990 33990 33993 33993 33995 33995 33997 33997 34001 34001 34010 34010 34028 34028 34030 34030 34036 34036 34044 34044 34065 34065 34067 34068 34071 34072 34074 34074 34078 34078 34081 34081 34083 34083 34085 34085 34092 34093 34095 34095 34109 34109 34111 34111 34113 34113 34115 34115 34121 34121 34126 34126 34131 34131 34137 34137 34147 34147 34152 34154 34157 34157 34180 34180 34183 34183 34191 34191 34193 34193 34196 34196 34203 34203 34214 34214 34216 34218 34223 34224 34234 34234 34241 34241 34249 34249 34253 34255 34261 34261 34268 34269 34276 34277 34281 34282 34295 34295 34298 34299 34303 34303 34306 34306 34310 34311 34314 34314 34326 34327 34330 34330 34349 34349 34367 34367 34382 34382 34384 34384 34388 34389 34395 34396 34398 34399 34407 34407 34425 34425 34442 34442 34444 34444 34451 34451 34467 34468 34473 34473 34503 34503 34507 34507 34516 34516 34521 34521 34523 34523 34527 34527 34532 34532 34541 34541 34558 34558 34560 34560 34562 34563 34568 34568 34584 34584 34586 34586 34588 34588 34638 34638 34645 34645 34647 34647 34655 34655 34662 34662 34664 34664 34676 34676 34678 34678 34680 34680 34690 34690 34701 34701 34719 34719 34722 34722 34739 34739 34746 34746 34756 34756 34784 34784 34796 34796 34799 34799 34802 34802 34809 34809 34811 34811 34814 34814 34821 34821 34847 34847 34850 34851 34865 34865 34870 34870 34875 34875 34880 34880 34886 34886 34892 34893 34898 34899 34903 34903 34905 34905 34907 34907 34909 34909 34913 34915 34920 34920 34923 34923 34928 34928 34930 34930 34935 34935 34942 34943 34945 34946 34952 34952 34955 34955 34957 34957 34962 34962 34966 34967 34974 34974 34987 34987 34996 34996 35009 35010 35023 35023 35028 35029 35033 35033 35036 35037 35039 35039 35041 35041 35048 35048 35059 35061 35064 35064 35069 35069 35079 35079 35088 35088 35090 35091 35096 35097 35109 35109 35114 35114 35126 35126 35128 35128 35131 35131 35137 35137 35140 35140 35167 35167 35172 35172 35178 35178 35186 35186 35199 35199 35201 35201 35203 35203 35206 35207 35211 35211 35215 35215 35219 35219 35222 35222 35233 35233 35241 35242 35250 35250 35258 35258 35261 35261 35264 35264 35282 35282 35299 35299 35316 35316 35320 35320 35328 35328 35330 35331 35336 35336 35338 35338 35340 35340 35342 35342 35347 35347 35350 35352 35355 35355 35357 35357 35359 35359 35363 35363 35365 35365 35370 35370 35373 35373 35377 35377 35380 35380 35382 35382 35386 35387 35408 35408 35412 35413 35419 35419 35422 35422 35424 35424 35426 35427 35430 35430 35433 35433 35437 35438 35440 35443 35445 35445 35449 35449 35461 35461 35463 35463 35468 35469 35475 35475 35477 35477 35480 35480 35486 35486 35488 35489 35491 35494 35496 35496 35498 35498 35504 35504 35506 35506 35513 35513 35516 35516 35518 35519 35522 35522 35524 35524 35527 35527 35531 35531 35533 35533 35535 35535 35538 35538 35542 35542 35547 35548 35553 35553 35558 35559 35562 35563 35565 35566 35569 35569 35574 35576 35578 35578 35582 35582 35584 35586 35588 35588 35598 35598 35600 35600 35604 35604 35606 35607 35609 35611 35613 35613 35616 35616 35624 35624 35627 35628 35635 35635 35641 35641 35649 35649 35657 35657 35662 35663 35672 35672 35674 35674 35676 35676 35686 35686 35692 35692 35695 35696 35700 35700 35703 35703 35709 35709 35712 35712 35722 35722 35728 35728 35730 35731 35734 35734 35738 35738 35895 35895 35903 35903 35905 35905 35910 35910 35912 35912 35914 35914 35916 35916 35925 35925 35930 35930 35937 35937 35946 35947 35961 35962 35970 35970 35978 35978 35980 35980 35997 35998 36000 36002 36007 36012 36015 36016 36019 36020 36022 36024 36027 36029 36031 36036 36039 36040 36042 36042 36049 36049 36051 36051 36058 36058 36060 36060 36062 36062 36064 36064 36066 36068 36070 36070 36074 36074 36077 36077 36084 36084 36091 36093 36100 36101 36103 36104 36106 36106 36109 36109 36115 36115 36118 36118 36196 36196 36198 36198 36203 36203 36208 36208 36211 36212 36215 36215 36229 36229 36234 36234 36249 36249 36259 36259 36264 36264 36275 36275 36282 36282 36286 36286 36294 36294 36299 36300 36303 36303 36315 36315 36317 36317 36321 36321 36323 36323 36328 36328 36335 36335 36339 36339 36362 36362 36367 36368 36382 36382 36394 36394 36400 36400 36405 36405 36418 36418 36420 36420 36423 36426 36441 36441 36447 36448 36468 36468 36470 36470 36481 36481 36487 36487 36490 36490 36493 36493 36522 36524 36544 36544 36554 36557 36562 36562 36575 36575 36587 36587 36600 36600 36603 36603 36606 36606 36611 36611 36613 36613 36617 36617 36626 36629 36635 36639 36646 36647 36649 36650 36655 36655 36659 36659 36664 36665 36667 36667 36670 36671 36676 36677 36681 36681 36685 36686 36701 36701 36703 36703 36706 36706 36763 36764 36771 36771 36774 36774 36776 36776 36781 36781 36783 36786 36802 36802 36805 36805 36814 36814 36817 36817 36820 36820 36838 36838 36842 36843 36845 36845 36848 36848 36850 36850 36855 36855 36857 36857 36861 36861 36864 36867 36869 36870 36872 36872 36875 36875 36877 36877 36879 36881 36884 36885 36887 36887 36889 36890 36893 36899 36910 36910 36913 36914 36917 36917 36920 36920 36924 36924 36926 36926 36929 36930 36935 36935 36938 36939 36941 36942 36944 36945 36947 36949 36953 36953 36956 36958 36960 36961 36963 36963 36969 36969 36973 36975 36978 36978 36981 36981 36983 36984 36986 36986 36988 36989 36991 36996 36999 37000 37002 37002 37007 37007 37009 37009 37013 37013 37017 37017 37026 37027 37030 37030 37032 37032 37034 37034 37039 37041 37045 37045 37048 37048 37057 37057 37066 37066 37086 37086 37089 37089 37096 37096 37101 37101 37109 37109 37117 37117 37122 37122 37138 37138 37141 37141 37145 37145 37159 37159 37165 37165 37170 37170 37193 37198 37202 37202 37218 37218 37225 37226 37228 37228 37237 37237 37239 37240 37255 37255 37257 37257 37259 37259 37261 37261 37266 37266 37276 37276 37291 37292 37294 37295 37297 37297 37300 37301 37312 37312 37319 37319 37321 37321 37323 37329 37335 37336 37340 37341 37347 37347 37351 37351 37354 37354 37365 37365 37389 37389 37392 37394 37399 37399 37406 37406 37428 37428 37434 37434 37439 37440 37445 37445 37449 37449 37463 37463 37467 37467 37470 37470 37474 37474 37476 37478 37504 37504 37507 37507 37509 37509 37521 37521 37523 37523 37526 37526 37528 37528 37532 37532 37555 37555 37558 37559 37561 37561 37580 37580 37583 37583 37586 37586 37604 37604 37610 37610 37624 37624 37628 37628 37636 37636 37648 37648 37656 37656 37658 37658 37662 37666 37668 37668 37670 37670 37672 37672 37675 37675 37678 37679 37704 37704 37706 37707 37709 37709 37716 37716 37723 37723 37742 37742 37749 37749 37756 37756 37758 37758 37772 37772 37780 37780 37782 37782 37786 37786 37795 37795 37799 37799 37804 37805 37808 37808 37827 37827 37841 37841 37854 37854 37857 37857 37860 37860 37878 37878 37892 37892 37912 37912 37925 37925 37931 37931 37941 37941 37944 37944 37956 37956 37969 37970 37979 37979 38013 38013 38015 38015 38263 38263 38272 38272 38275 38275 38281 38281 38283 38283 38287 38287 38289 38292 38296 38296 38307 38309 38312 38312 38317 38317 38321 38321 38331 38332 38343 38343 38346 38346 38356 38358 38364 38364 38369 38370 38428 38428 38433 38433 38442 38442 38446 38446 38450 38450 38459 38459 38463 38464 38466 38466 38468 38468 38475 38477 38480 38480 38491 38495 38498 38500 38506 38506 38512 38512 38515 38515 38517 38520 38525 38525 38533 38534 38538 38539 38541 38542 38548 38549 38552 38553 38555 38556 38563 38563 38567 38568 38570 38570 38577 38577 38583 38583 38587 38587 38592 38593 38596 38599 38601 38601 38603 38606 38613 38614 38617 38617 38619 38620 38626 38627 38632 38634 38639 38640 38642 38642 38646 38647 38649 38649 38651 38651 38656 38656 38662 38663 38673 38673 38675 38675 38678 38678 38681 38681 38684 38684 38686 38686 38695 38695 38704 38704 38706 38706 38713 38713 38717 38717 38722 38722 38724 38724 38728 38728 38737 38737 38742 38742 38748 38748 38750 38750 38753 38754 38761 38761 38765 38765 38772 38772 38775 38775 38778 38778 38795 38795 38797 38797 38799 38799 38816 38816 38824 38824 38827 38827 38829 38829 38854 38854 38859 38859 38867 38867 38876 38876 38899 38899 38902 38902 38907 38907 38911 38915 38917 38918 38920 38920 38922 38922 38924 38924 38928 38931 38935 38936 38957 38957 38960 38960 38968 38969 38971 38971 38982 38982 38988 38990 38996 38996 39000 39000 39002 39002 39006 39006 39013 39013 39015 39015 39019 39019 39023 39023 39080 39080 39087 39087 39089 39089 39108 39108 39111 39111 39131 39132 39135 39135 39137 39138 39149 39151 39156 39156 39164 39166 39171 39171 39177 39178 39180 39180 39184 39184 39187 39187 39192 39192 39198 39198 39200 39200 39208 39208 39237 39237 39241 39241 39243 39245 39249 39250 39252 39252 39255 39255 39318 39318 39321 39321 39325 39325 39333 39333 39336 39336 39340 39342 39345 39345 39347 39348 39353 39353 39361 39361 39376 39378 39381 39381 39385 39385 39389 39389 39391 39391 39405 39405 39409 39409 39423 39423 39425 39425 39432 39432 39438 39439 39449 39449 39467 39467 39472 39472 39478 39479 39488 39488 39491 39491 39493 39493 39501 39501 39509 39509 39511 39511 39514 39515 39519 39519 39522 39522 39525 39525 39529 39530 39592 39592 39608 39608 39635 39636 39640 39640 39653 39653 39662 39662 39706 39706 39719 39719 39722 39722 39729 39729 39740 39740 39745 39749 39759 39759 39764 39764 39770 39770 39791 39791 39822 39822 39825 39825 39839 39839 39851 39851 39854 39854 39881 39881 39894 39894 39908 39908 39912 39912 39949 39949 39952 39952 39954 39954 39957 39957 39973 39973 39986 39986 39995 39995 40007 40007 40009 40009 40023 40023 40165 40165 40167 40167 40169 40169 40179 40180 40182 40182 40201 40201 40219 40219 40230 40230 40232 40232 40251 40251 40273 40273 40285 40285 40288 40289 40300 40300 40306 40306 40361 40361 40367 40367 40372 40372 40388 40388 40407 40407 40434 40434 40440 40442 40474 40474 40478 40478 40565 40565 40569 40569 40573 40573 40575 40575 40594 40595 40599 40599 40605 40605 40607 40607 40613 40613 40628 40629 40635 40635 40638 40638 40643 40643 40653 40654 40657 40657 40660 40660 40664 40664 40667 40668 40670 40670 40680 40680 40692 40692 40711 40712 40718 40718 40723 40723 40736 40736 40763 40763 40778 40779 40782 40782 40786 40786 40799 40799 40801 40801 40807 40807 40810 40810 40812 40812 40823 40823 40845 40845 40848 40848 40853 40853 40860 40860 44032 55203 63744 64011 65281 65374 65504 65507 65509 65510 917504 917631)) (MAKE-CHARACTER-SET :MIB-ENUM 2082 :NAME "VISCII" :ALIASES '("csVISCII") :MIME-ENCODING 'NIL :SOURCE '"RFC 1456" :COMMENTS 'NIL :REFERENCES '("[RFC1456]") :RANGES #(0 1 3 4 7 19 21 24 26 29 31 127 192 195 200 202 204 205 210 213 217 218 221 221 224 227 232 234 236 237 242 245 249 250 253 253 258 259 272 273 296 297 360 361 416 417 431 432 7840 7929 917504 917631)) (MAKE-CHARACTER-SET :MIB-ENUM 2084 :NAME #2="KOI8-R" :ALIASES '("csKOI8R") :MIME-ENCODING '#2# :SOURCE '"RFC 1489, based on GOST-19768-74, ISO-6937/8, INIS-Cyrillic, ISO-5427." :COMMENTS 'NIL :REFERENCES '("[RFC1489]") :RANGES #(0 127 160 160 169 169 176 176 178 178 183 183 247 247 1025 1025 1040 1103 1105 1105 8729 8730 8776 8776 8804 8805 8992 8993 9472 9472 9474 9474 9484 9484 9488 9488 9492 9492 9496 9496 9500 9500 9508 9508 9516 9516 9524 9524 9532 9532 9552 9580 9600 9600 9604 9604 9608 9608 9612 9612 9616 9619 9632 9632)) (MAKE-CHARACTER-SET :MIB-ENUM 2011 :NAME "IBM437" :ALIASES '("csPC8CodePage437" "437" "cp437") :MIME-ENCODING 'NIL :SOURCE '"IBM NLS RM Vol2 SE09-8002-01, March 1990" :COMMENTS 'NIL :REFERENCES '("[RFC1345,KXS2]") :RANGES #(0 127 160 163 165 165 170 172 176 178 183 183 186 189 191 191 196 199 201 201 209 209 214 214 220 220 223 226 228 239 241 244 246 247 249 252 255 255 402 402 915 915 920 920 931 931 934 934 937 937 945 945 948 949 956 956 960 960 963 964 966 966 8319 8319 8359 8359 8729 8730 8734 8734 8745 8745 8776 8776 8801 8801 8804 8805 8976 8976 8992 8993 9472 9472 9474 9474 9484 9484 9488 9488 9492 9492 9496 9496 9500 9500 9508 9508 9516 9516 9524 9524 9532 9532 9552 9580 9600 9600 9604 9604 9608 9608 9612 9612 9616 9619 9632 9632)) (MAKE-CHARACTER-SET :MIB-ENUM 113 :NAME "GBK" :ALIASES '("windows-936" "MS936" "CP936") :MIME-ENCODING 'NIL :SOURCE '"Chinese IT Standardization Technical Committee Please see: " :COMMENTS 'NIL :REFERENCES 'NIL :RANGES #(0 127 164 164 167 168 176 177 183 183 215 215 224 225 232 234 236 237 242 243 247 247 249 250 252 252 257 257 275 275 283 283 299 299 324 324 328 328 333 333 363 363 462 462 464 464 466 466 468 468 470 470 472 472 474 474 476 476 593 593 609 609 711 711 713 715 729 729 913 929 931 937 945 961 963 969 1025 1025 1040 1103 1105 1105 8208 8208 8211 8214 8216 8217 8220 8221 8229 8230 8240 8240 8242 8243 8245 8245 8251 8251 8451 8451 8453 8453 8457 8457 8470 8470 8481 8481 8544 8555 8560 8569 8592 8595 8598 8601 8712 8712 8719 8719 8721 8721 8725 8725 8730 8730 8733 8736 8739 8739 8741 8741 8743 8747 8750 8750 8756 8759 8765 8765 8776 8776 8780 8780 8786 8786 8800 8801 8804 8807 8814 8815 8853 8853 8857 8857 8869 8869 8895 8895 8978 8978 9312 9321 9332 9371 9472 9547 9552 9587 9601 9615 9619 9621 9632 9633 9650 9651 9660 9661 9670 9671 9675 9675 9678 9679 9698 9701 9733 9734 9737 9737 9792 9792 9794 9794 12288 12291 12293 12311 12317 12318 12321 12329 12353 12435 12443 12446 12449 12534 12540 12542 12549 12585 12832 12841 12849 12849 12963 12963 13198 13199 13212 13214 13217 13217 13252 13252 13262 13262 13265 13266 13269 13269 19968 40869 63788 63788 63865 63865 63893 63893 63975 63975 63985 63985 64012 64015 64017 64017 64019 64020 64024 64024 64031 64033 64035 64036 64039 64041 65072 65073 65075 65092 65097 65106 65108 65111 65113 65126 65128 65131 65281 65374 65504 65509 917504 917631)) (MAKE-CHARACTER-SET :MIB-ENUM 1014 :NAME "UTF-16LE" :ALIASES 'NIL :MIME-ENCODING 'NIL :SOURCE '"RFC 2781" :COMMENTS 'NIL :REFERENCES '("[RFC2781]") :RANGES #(0 65535)) (MAKE-CHARACTER-SET :MIB-ENUM 114 :NAME "GB18030" :ALIASES 'NIL :MIME-ENCODING 'NIL :SOURCE '"Chinese IT Standardization Technical Committee Please see: " :COMMENTS 'NIL :REFERENCES 'NIL :RANGES #(0 544 546 563 592 685 688 750 768 847 864 879 884 885 890 890 894 894 900 906 908 908 910 929 931 974 976 1014 1024 1158 1160 1230 1232 1269 1272 1273 1280 1295 1329 1366 1369 1375 1377 1415 1417 1418 1425 1441 1443 1465 1467 1476 1488 1514 1520 1524 1548 1548 1563 1563 1567 1567 1569 1594 1600 1621 1632 1773 1776 1790 1792 1805 1807 1836 1840 1866 1920 1969 2305 2307 2309 2361 2364 2381 2384 2388 2392 2416 2433 2435 2437 2444 2447 2448 2451 2472 2474 2480 2482 2482 2486 2489 2492 2492 2494 2500 2503 2504 2507 2509 2519 2519 2524 2525 2527 2531 2534 2554 2562 2562 2565 2570 2575 2576 2579 2600 2602 2608 2610 2611 2613 2614 2616 2617 2620 2620 2622 2626 2631 2632 2635 2637 2649 2652 2654 2654 2662 2676 2689 2691 2693 2699 2701 2701 2703 2705 2707 2728 2730 2736 2738 2739 2741 2745 2748 2757 2759 2761 2763 2765 2768 2768 2784 2784 2790 2799 2817 2819 2821 2828 2831 2832 2835 2856 2858 2864 2866 2867 2870 2873 2876 2883 2887 2888 2891 2893 2902 2903 2908 2909 2911 2913 2918 2928 2946 2947 2949 2954 2958 2960 2962 2965 2969 2970 2972 2972 2974 2975 2979 2980 2984 2986 2990 2997 2999 3001 3006 3010 3014 3016 3018 3021 3031 3031 3047 3058 3073 3075 3077 3084 3086 3088 3090 3112 3114 3123 3125 3129 3134 3140 3142 3144 3146 3149 3157 3158 3168 3169 3174 3183 3202 3203 3205 3212 3214 3216 3218 3240 3242 3251 3253 3257 3262 3268 3270 3272 3274 3277 3285 3286 3294 3294 3296 3297 3302 3311 3330 3331 3333 3340 3342 3344 3346 3368 3370 3385 3390 3395 3398 3400 3402 3405 3415 3415 3424 3425 3430 3439 3458 3459 3461 3478 3482 3505 3507 3515 3517 3517 3520 3526 3530 3530 3535 3540 3542 3542 3544 3551 3570 3572 3585 3642 3647 3675 3713 3714 3716 3716 3719 3720 3722 3722 3725 3725 3732 3735 3737 3743 3745 3747 3749 3749 3751 3751 3754 3755 3757 3769 3771 3773 3776 3780 3782 3782 3784 3789 3792 3801 3804 3805 3840 3911 3913 3946 3953 3979 3984 3991 3993 4028 4030 4044 4047 4047 4096 4129 4131 4135 4137 4138 4140 4146 4150 4153 4160 4185 4256 4293 4304 4344 4347 4347 4352 4441 4447 4514 4520 4601 4608 4614 4616 4678 4680 4680 4682 4685 4688 4694 4696 4696 4698 4701 4704 4742 4744 4744 4746 4749 4752 4782 4784 4784 4786 4789 4792 4798 4800 4800 4802 4805 4808 4814 4816 4822 4824 4846 4848 4878 4880 4880 4882 4885 4888 4894 4896 4934 4936 4954 4961 4988 5024 5108 5121 5750 5760 5788 5792 5872 5888 5900 5902 5908 5920 5942 5952 5971 5984 5996 5998 6000 6002 6003 6016 6108 6112 6121 6144 6158 6160 6169 6176 6263 6272 6313 7680 7835 7840 7929 7936 7957 7960 7965 7968 8005 8008 8013 8016 8023 8025 8025 8027 8027 8029 8029 8031 8061 8064 8116 8118 8132 8134 8147 8150 8155 8157 8175 8178 8180 8182 8190 8192 8274 8279 8279 8287 8291 8298 8305 8308 8334 8352 8369 8400 8426 8448 8506 8509 8523 8531 8579 8592 9166 9216 9254 9280 9290 9312 9470 9472 9747 9750 9751 9753 9853 9856 9865 9985 9988 9990 9993 9996 10023 10025 10059 10061 10061 10063 10066 10070 10070 10072 10078 10081 10132 10136 10159 10161 10174 10192 10219 10224 11007 11904 11929 11931 12019 12032 12245 12272 12283 12288 12351 12353 12438 12441 12543 12549 12588 12593 12686 12688 12727 12784 12828 12832 12867 12881 12923 12927 13003 13008 13054 13056 13174 13179 13277 13280 13310 13312 19893 19968 40869 40960 42124 42128 42182 44032 55203 57344 64045 64048 64106 64256 64262 64275 64279 64285 64310 64312 64316 64318 64318 64320 64321 64323 64324 64326 64433 64467 64831 64848 64911 64914 64967 65008 65020 65024 65039 65056 65059 65072 65094 65097 65106 65108 65126 65128 65131 65136 65140 65142 65276 65279 65279 65281 65470 65474 65479 65482 65487 65490 65495 65498 65500 65504 65510 65512 65518 65529 65533)) (MAKE-CHARACTER-SET :MIB-ENUM 2048 :NAME "IBM860" :ALIASES '("csIBM860" "860" "cp860") :MIME-ENCODING 'NIL :SOURCE '"IBM NLS RM Vol2 SE09-8002-01, March 1990" :COMMENTS 'NIL :REFERENCES '("[RFC1345,KXS2]") :RANGES #(0 127 160 163 170 172 176 178 183 183 186 189 191 195 199 202 204 205 209 213 217 218 220 220 223 227 231 234 236 237 241 245 247 247 249 250 252 252 915 915 920 920 931 931 934 934 937 937 945 945 948 949 956 956 960 960 963 964 966 966 8319 8319 8359 8359 8729 8730 8734 8734 8745 8745 8776 8776 8801 8801 8804 8805 8992 8993 9472 9472 9474 9474 9484 9484 9488 9488 9492 9492 9496 9496 9500 9500 9508 9508 9516 9516 9524 9524 9532 9532 9552 9580 9600 9600 9604 9604 9608 9608 9612 9612 9616 9619 9632 9632)) (MAKE-CHARACTER-SET :MIB-ENUM 1019 :NAME "UTF-32LE" :ALIASES 'NIL :MIME-ENCODING 'NIL :SOURCE '"" :COMMENTS 'NIL :REFERENCES '("[Davis]") :RANGES #(0 1114111)) (MAKE-CHARACTER-SET :MIB-ENUM 1001 :NAME "ISO-10646-UCS-4" :ALIASES '("csUCS4") :MIME-ENCODING 'NIL :SOURCE '"the full code space. (same comment about byte order, these are 31-bit numbers." :COMMENTS 'NIL :REFERENCES 'NIL :RANGES #(0 1114111)) (MAKE-CHARACTER-SET :MIB-ENUM 2087 :NAME "IBM775" :ALIASES '("csPC775Baltic" "cp775") :MIME-ENCODING 'NIL :SOURCE '"HP PCL 5 Comparison Guide (P/N 5021-0329) pp B-13, 1996" :COMMENTS 'NIL :REFERENCES '("[HP-PCL5]") :RANGES #(0 127 160 160 162 164 166 167 169 169 171 174 176 179 181 183 185 185 187 190 196 198 201 201 211 211 213 216 220 220 223 223 228 230 233 233 243 243 245 248 252 252 256 257 260 263 268 269 274 275 278 281 290 291 298 299 302 303 310 311 315 316 321 326 332 333 342 343 346 347 352 353 362 363 370 371 377 382 8217 8217 8220 8222 8729 8729 9472 9472 9474 9474 9484 9484 9488 9488 9492 9492 9496 9496 9500 9500 9508 9508 9516 9516 9524 9524 9532 9532 9552 9553 9556 9556 9559 9559 9562 9562 9565 9565 9568 9568 9571 9571 9574 9574 9577 9577 9580 9580 9600 9600 9604 9604 9608 9608 9612 9612 9616 9619 9632 9632)) (MAKE-CHARACTER-SET :MIB-ENUM 1013 :NAME "UTF-16BE" :ALIASES 'NIL :MIME-ENCODING 'NIL :SOURCE '"RFC 2781" :COMMENTS 'NIL :REFERENCES '("[RFC2781]") :RANGES #(0 65535)) (MAKE-CHARACTER-SET :MIB-ENUM 11 :NAME "ISO_8859-8:1988" :ALIASES '("csISOLatinHebrew" "hebrew" #3="ISO-8859-8" "ISO_8859-8" "iso-ir-138") :MIME-ENCODING '#3# :SOURCE '"ECMA registry" :COMMENTS '("Alias: ISO-8859-8 (preferred MIME name)") :REFERENCES '("[RFC1345,KXS2]") :RANGES #(0 160 162 169 171 185 187 190 215 215 247 247 1488 1514 8206 8207 8215 8215)) (MAKE-CHARACTER-SET :MIB-ENUM 2004 :NAME "hp-roman8" :ALIASES '("csHPRoman8" "r8" "roman8") :MIME-ENCODING 'NIL :SOURCE '"LaserJet IIP Printer User's Manual, HP part no 33471-90901, Hewlet-Packard, June 1989." :COMMENTS 'NIL :REFERENCES '("[HP-PCL5,RFC1345,KXS2]") :RANGES #(0 165 167 168 170 171 175 177 180 183 186 214 216 246 248 255 352 353 376 376 402 402 710 710 715 715 732 732 8212 8212 8356 8356 9632 9632)) (MAKE-CHARACTER-SET :MIB-ENUM 2010 :NAME "IBM852" :ALIASES '("csPCp852" "852" "cp852") :MIME-ENCODING 'NIL :SOURCE '"IBM NLS RM Vol2 SE09-8002-01, March 1990" :COMMENTS 'NIL :REFERENCES '("[RFC1345,KXS2]") :RANGES #(0 127 160 160 164 164 167 168 171 173 176 176 180 180 184 184 187 187 193 194 196 196 199 199 201 201 203 203 205 206 211 212 214 215 218 218 220 221 223 223 225 226 228 228 231 231 233 233 235 235 237 238 243 244 246 247 250 250 252 253 258 263 268 273 280 283 313 314 317 318 321 324 327 328 336 337 340 341 344 347 350 357 366 369 377 382 711 711 728 729 731 731 733 733 9472 9472 9474 9474 9484 9484 9488 9488 9492 9492 9496 9496 9500 9500 9508 9508 9516 9516 9524 9524 9532 9532 9552 9553 9556 9556 9559 9559 9562 9562 9565 9565 9568 9568 9571 9571 9574 9574 9577 9577 9580 9580 9600 9600 9604 9604 9608 9608 9617 9619 9632 9632)) (MAKE-CHARACTER-SET :MIB-ENUM 12 :NAME "ISO_8859-9:1989" :ALIASES '("csISOLatin5" "l5" "latin5" #4="ISO-8859-9" "ISO_8859-9" "iso-ir-148") :MIME-ENCODING '#4# :SOURCE '"ECMA registry" :COMMENTS '("Alias: ISO-8859-9 (preferred MIME name)") :REFERENCES '("[RFC1345,KXS2]") :RANGES #(0 207 209 220 223 239 241 252 255 255 286 287 304 305 350 351)) (MAKE-CHARACTER-SET :MIB-ENUM 2054 :NAME "IBM869" :ALIASES '("csIBM869" "cp-gr" "869" "cp869") :MIME-ENCODING 'NIL :SOURCE '"IBM Keyboard layouts and code pages, PN 07G4586 June 1991" :COMMENTS 'NIL :REFERENCES '("[RFC1345,KXS2]") :RANGES #(0 127 160 160 163 163 166 169 171 173 176 180 187 187 189 189 901 906 908 908 910 929 931 974 8213 8213 8216 8217 9472 9472 9474 9474 9484 9484 9488 9488 9492 9492 9496 9496 9500 9500 9508 9508 9516 9516 9524 9524 9532 9532 9552 9553 9556 9556 9559 9559 9562 9562 9565 9565 9568 9568 9571 9571 9574 9574 9577 9577 9580 9580 9600 9600 9604 9604 9608 9608 9617 9619 9632 9632)) (MAKE-CHARACTER-SET :MIB-ENUM 39 :NAME #5="ISO-2022-JP" :ALIASES '("csISO2022JP") :MIME-ENCODING '#5# :SOURCE '"RFC-1468 (see also RFC-2237)" :COMMENTS 'NIL :REFERENCES '("[RFC1468,Murai]") :RANGES #(0 127 162 163 165 165 167 168 172 172 176 177 180 180 182 182 215 215 247 247 913 929 931 937 945 961 963 969 1025 1025 1040 1103 1105 1105 8208 8208 8213 8214 8216 8217 8220 8221 8224 8225 8229 8230 8240 8240 8242 8243 8251 8251 8254 8254 8451 8451 8491 8491 8592 8595 8658 8658 8660 8660 8704 8704 8706 8707 8711 8712 8715 8715 8722 8722 8730 8730 8733 8734 8736 8736 8743 8748 8756 8757 8765 8765 8786 8786 8800 8801 8806 8807 8810 8811 8834 8835 8838 8839 8869 8869 8978 8978 9472 9475 9484 9484 9487 9488 9491 9492 9495 9496 9499 9501 9504 9504 9507 9509 9512 9512 9515 9516 9519 9520 9523 9524 9527 9528 9531 9532 9535 9535 9538 9538 9547 9547 9632 9633 9650 9651 9660 9661 9670 9671 9675 9675 9678 9679 9711 9711 9733 9734 9792 9792 9794 9794 9834 9834 9837 9837 9839 9839 12288 12291 12293 12309 12316 12316 12353 12435 12443 12446 12449 12534 12539 12542 19968 19969 19971 19971 19975 19979 19981 19982 19984 19985 19988 19993 19998 19998 20001 20001 20006 20006 20010 20010 20013 20013 20017 20018 20022 20022 20024 20025 20027 20028 20031 20031 20034 20035 20037 20037 20043 20043 20045 20047 20053 20057 20061 20063 20066 20066 20081 20081 20083 20083 20094 20094 20096 20096 20098 20098 20101 20102 20104 20108 20110 20110 20113 20114 20116 20117 20120 20121 20123 20124 20126 20130 20132 20134 20136 20136 20139 20142 20144 20144 20147 20147 20150 20150 20154 20154 20160 20162 20164 20164 20166 20167 20170 20171 20173 20175 20180 20185 20189 20191 20195 20197 20205 20206 20208 20208 20210 20210 20214 20215 20219 20219 20225 20225 20233 20234 20237 20241 20250 20250 20252 20253 20271 20272 20276 20276 20278 20278 20280 20280 20282 20282 20284 20285 20291 20291 20294 20295 20301 20305 20307 20307 20309 20309 20311 20311 20313 20318 20329 20329 20335 20336 20339 20339 20341 20342 20347 20348 20351 20351 20355 20355 20358 20358 20360 20360 20363 20363 20365 20365 20367 20367 20369 20369 20374 20374 20376 20376 20379 20379 20381 20381 20384 20385 20395 20395 20397 20399 20405 20406 20415 20415 20418 20420 20426 20426 20430 20430 20432 20433 20436 20436 20439 20440 20442 20443 20445 20445 20447 20447 20449 20449 20451 20453 20462 20463 20467 20467 20469 20470 20472 20472 20474 20474 20478 20478 20485 20486 20489 20489 20491 20491 20493 20493 20495 20495 20497 20498 20500 20500 20502 20502 20505 20506 20511 20511 20513 20513 20515 20518 20520 20525 20534 20534 20537 20537 20547 20547 20551 20553 20559 20560 20565 20566 20570 20570 20572 20572 20581 20581 20588 20588 20594 20594 20596 20598 20600 20600 20605 20605 20608 20608 20613 20613 20621 20621 20625 20625 20632 20634 20652 20653 20658 20661 20663 20663 20670 20670 20674 20674 20677 20677 20681 20682 20685 20685 20687 20687 20689 20689 20693 20694 20698 20698 20702 20702 20707 20707 20709 20709 20711 20711 20717 20718 20725 20725 20729 20729 20731 20731 20736 20738 20740 20740 20745 20745 20754 20754 20756 20758 20760 20760 20762 20762 20767 20767 20769 20769 20778 20778 20786 20786 20791 20791 20794 20796 20799 20801 20803 20809 20811 20814 20816 20816 20818 20818 20820 20820 20826 20826 20828 20828 20834 20834 20837 20837 20840 20846 20849 20849 20853 20856 20860 20860 20864 20864 20866 20866 20869 20870 20873 20874 20876 20877 20879 20883 20885 20887 20889 20889 20896 20896 20898 20898 20900 20902 20904 20908 20912 20919 20925 20925 20932 20934 20937 20937 20939 20941 20950 20950 20955 20957 20960 20961 20966 20967 20969 20970 20973 20973 20976 20977 20981 20982 20984 20986 20989 20990 20992 20992 20995 20996 20998 21000 21002 21003 21006 21006 21009 21009 21012 21012 21015 21015 21021 21021 21028 21029 21031 21031 21033 21034 21038 21038 21040 21040 21043 21043 21046 21051 21059 21060 21063 21063 21066 21069 21071 21071 21076 21076 21078 21078 21083 21083 21086 21086 21091 21093 21097 21098 21103 21109 21117 21117 21119 21119 21123 21123 21127 21129 21133 21133 21137 21138 21140 21140 21147 21147 21151 21152 21155 21155 21161 21165 21169 21169 21172 21173 21177 21177 21180 21180 21182 21182 21185 21185 21187 21187 21189 21189 21191 21191 21193 21193 21197 21197 21202 21202 21205 21205 21207 21209 21213 21216 21218 21220 21222 21223 21234 21235 21237 21237 21240 21242 21246 21247 21249 21250 21253 21254 21256 21256 21261 21261 21263 21264 21269 21271 21273 21274 21277 21277 21280 21281 21283 21283 21290 21290 21295 21295 21297 21297 21299 21299 21304 21307 21311 21313 21315 21315 21317 21322 21325 21325 21329 21332 21335 21336 21338 21338 21340 21340 21342 21342 21344 21344 21350 21350 21353 21353 21358 21361 21363 21365 21367 21368 21371 21371 21375 21375 21378 21378 21380 21380 21398 21398 21400 21400 21402 21402 21407 21408 21413 21414 21416 21417 21421 21422 21424 21424 21427 21427 21430 21430 21435 21435 21442 21443 21448 21454 21460 21460 21462 21463 21465 21465 21467 21467 21471 21471 21473 21477 21480 21491 21494 21496 21498 21498 21505 21505 21507 21508 21512 21521 21531 21531 21533 21533 21535 21536 21542 21542 21545 21545 21547 21550 21558 21558 21560 21561 21563 21566 21568 21568 21570 21570 21574 21574 21576 21578 21582 21582 21585 21585 21599 21599 21608 21608 21610 21610 21616 21617 21619 21619 21621 21623 21627 21629 21632 21632 21636 21636 21638 21638 21643 21644 21646 21648 21650 21650 21666 21666 21668 21669 21672 21672 21675 21676 21679 21679 21682 21683 21688 21688 21692 21694 21696 21698 21700 21700 21703 21705 21720 21720 21729 21730 21733 21734 21736 21737 21741 21742 21746 21746 21754 21754 21757 21757 21764 21764 21766 21767 21775 21776 21780 21780 21782 21782 21806 21807 21809 21809 21811 21811 21816 21817 21822 21822 21824 21824 21828 21830 21836 21836 21839 21839 21843 21843 21846 21847 21852 21853 21859 21859 21883 21884 21886 21886 21888 21888 21891 21892 21895 21895 21897 21899 21912 21914 21916 21919 21927 21932 21934 21934 21936 21936 21942 21942 21956 21957 21959 21959 21972 21972 21978 21978 21980 21980 21983 21983 21987 21988 22007 22007 22009 22009 22013 22014 22022 22022 22025 22025 22036 22036 22038 22040 22043 22043 22057 22057 22063 22063 22065 22066 22068 22068 22070 22070 22072 22072 22082 22082 22092 22092 22094 22094 22096 22096 22107 22107 22116 22116 22120 22120 22122 22124 22132 22132 22136 22136 22138 22138 22144 22144 22150 22151 22154 22154 22159 22159 22164 22164 22176 22176 22178 22178 22181 22181 22190 22190 22196 22196 22198 22198 22204 22204 22208 22211 22216 22216 22222 22222 22225 22225 22227 22227 22231 22232 22234 22235 22238 22238 22240 22240 22243 22243 22254 22254 22256 22256 22258 22259 22265 22266 22269 22269 22271 22272 22275 22276 22280 22281 22283 22283 22285 22285 22287 22287 22290 22291 22294 22294 22296 22296 22300 22300 22303 22303 22310 22312 22317 22317 22320 22320 22327 22328 22331 22331 22336 22336 22338 22338 22343 22343 22346 22346 22350 22353 22369 22369 22372 22372 22374 22374 22377 22378 22399 22399 22402 22402 22408 22409 22411 22411 22419 22419 22432 22432 22434 22436 22442 22442 22448 22448 22451 22451 22464 22464 22467 22467 22470 22470 22475 22475 22478 22478 22482 22484 22486 22486 22492 22492 22495 22496 22499 22499 22516 22516 22519 22519 22521 22522 22524 22524 22528 22528 22530 22530 22533 22534 22538 22539 22549 22549 22553 22553 22557 22557 22561 22561 22564 22564 22570 22570 22575 22577 22580 22581 22586 22586 22589 22589 22592 22593 22602 22603 22609 22610 22612 22612 22615 22618 22622 22622 22626 22626 22633 22633 22635 22635 22640 22640 22642 22642 22645 22645 22649 22649 22654 22654 22659 22659 22661 22661 22675 22675 22679 22679 22684 22684 22687 22687 22696 22696 22699 22699 22702 22702 22707 22707 22712 22715 22718 22718 22721 22721 22725 22725 22727 22727 22730 22730 22732 22732 22737 22737 22739 22739 22741 22741 22743 22745 22748 22748 22750 22751 22756 22757 22763 22764 22766 22770 22775 22775 22777 22781 22786 22786 22793 22794 22799 22800 22805 22806 22808 22812 22818 22818 22821 22821 22823 22823 22825 22830 22833 22834 22839 22840 22846 22846 22852 22852 22855 22857 22862 22865 22868 22869 22871 22872 22874 22874 22880 22880 22882 22882 22885 22885 22887 22890 22892 22892 22894 22894 22899 22900 22904 22904 22909 22909 22913 22916 22922 22922 22925 22925 22931 22931 22934 22934 22937 22937 22939 22939 22941 22941 22947 22947 22949 22949 22952 22952 22956 22956 22962 22962 22969 22969 22971 22971 22974 22974 22982 22982 22985 22985 22987 22987 22992 22993 22995 22996 23001 23002 23004 23004 23013 23014 23016 23016 23018 23019 23030 23030 23035 23035 23039 23039 23041 23041 23043 23043 23049 23049 23057 23057 23064 23064 23066 23066 23068 23068 23071 23072 23077 23077 23081 23081 23087 23087 23093 23094 23100 23100 23104 23105 23110 23110 23113 23113 23130 23130 23138 23138 23142 23142 23146 23146 23148 23148 23167 23167 23186 23186 23194 23195 23228 23230 23233 23234 23241 23241 23243 23244 23248 23248 23254 23255 23265 23265 23267 23267 23270 23270 23273 23273 23290 23291 23305 23305 23307 23308 23318 23318 23330 23330 23338 23338 23340 23340 23344 23344 23346 23346 23350 23350 23358 23358 23360 23360 23363 23363 23365 23365 23376 23377 23380 23381 23383 23384 23386 23389 23391 23391 23395 23398 23401 23401 23403 23403 23408 23409 23411 23411 23413 23413 23416 23416 23418 23418 23424 23424 23427 23427 23429 23429 23431 23433 23435 23437 23439 23439 23445 23445 23447 23453 23455 23455 23458 23462 23470 23470 23472 23472 23475 23478 23480 23481 23487 23487 23490 23495 23497 23497 23500 23500 23504 23504 23506 23508 23515 23515 23517 23519 23521 23522 23524 23529 23531 23531 23534 23534 23536 23536 23539 23539 23541 23542 23544 23544 23546 23546 23550 23551 23553 23554 23556 23563 23565 23567 23569 23569 23571 23571 23574 23574 23578 23578 23584 23584 23586 23586 23588 23588 23592 23592 23597 23597 23601 23601 23608 23617 23621 23622 23624 23624 23626 23627 23629 23633 23635 23635 23637 23637 23646 23646 23648 23649 23652 23653 23660 23660 23662 23663 23665 23665 23670 23670 23673 23673 23692 23692 23696 23697 23700 23700 23713 23713 23720 23721 23723 23724 23729 23729 23731 23731 23734 23736 23739 23740 23742 23742 23749 23749 23751 23751 23769 23769 23776 23777 23784 23786 23789 23789 23791 23792 23798 23798 23802 23803 23805 23805 23815 23815 23819 23819 23822 23822 23825 23825 23828 23835 23839 23839 23842 23842 23849 23849 23883 23884 23886 23886 23888 23888 23890 23890 23900 23900 23913 23913 23916 23916 23919 23919 23923 23923 23926 23926 23938 23938 23940 23940 23943 23943 23947 23948 23952 23952 23965 23965 23970 23970 23980 23980 23982 23982 23991 23991 23994 23994 23996 23997 24009 24009 24012 24013 24018 24019 24022 24022 24027 24027 24029 24030 24033 24033 24035 24035 24037 24040 24043 24043 24046 24046 24049 24053 24055 24055 24059 24059 24061 24062 24066 24067 24070 24070 24075 24076 24081 24081 24086 24086 24089 24091 24093 24093 24101 24101 24107 24107 24109 24109 24111 24112 24115 24115 24118 24120 24125 24125 24128 24128 24131 24133 24135 24135 24140 24140 24142 24142 24148 24149 24151 24151 24159 24159 24161 24164 24178 24182 24184 24191 24193 24193 24195 24196 24199 24199 24202 24202 24207 24207 24213 24215 24218 24218 24220 24220 24224 24224 24230 24231 24235 24235 24237 24237 24245 24248 24257 24259 24264 24266 24271 24272 24275 24275 24278 24278 24282 24283 24285 24285 24287 24291 24296 24297 24300 24300 24304 24305 24307 24308 24310 24312 24314 24316 24318 24319 24321 24321 24323 24324 24329 24333 24335 24337 24339 24344 24347 24347 24351 24351 24357 24359 24361 24361 24365 24365 24367 24367 24369 24369 24373 24373 24375 24376 24380 24380 24382 24382 24385 24385 24392 24392 24394 24394 24396 24396 24398 24398 24401 24401 24403 24403 24406 24407 24409 24409 24412 24413 24417 24418 24422 24422 24425 24429 24432 24433 24435 24435 24439 24439 24441 24441 24444 24444 24447 24453 24455 24456 24458 24460 24464 24467 24471 24473 24478 24478 24480 24481 24488 24490 24493 24494 24499 24500 24505 24505 24508 24509 24515 24515 24517 24517 24524 24525 24534 24537 24540 24541 24544 24544 24548 24548 24555 24555 24560 24561 24565 24565 24568 24568 24571 24571 24573 24573 24575 24575 24590 24592 24594 24594 24597 24598 24601 24601 24603 24605 24608 24609 24613 24619 24623 24623 24625 24625 24634 24634 24641 24643 24646 24646 24650 24651 24653 24653 24656 24656 24658 24658 24661 24661 24665 24666 24671 24672 24674 24677 24680 24685 24687 24688 24693 24693 24695 24695 24705 24705 24707 24708 24713 24713 24715 24717 24722 24722 24724 24724 24726 24727 24730 24731 24735 24736 24739 24739 24742 24743 24745 24746 24754 24758 24760 24760 24764 24765 24773 24775 24785 24785 24787 24787 24792 24792 24794 24794 24796 24796 24799 24801 24803 24803 24807 24808 24816 24817 24819 24820 24822 24823 24825 24827 24832 24833 24835 24835 24838 24838 24840 24841 24845 24847 24853 24853 24858 24859 24863 24863 24865 24865 24871 24872 24876 24876 24884 24884 24892 24895 24898 24898 24900 24900 24903 24904 24906 24910 24915 24915 24917 24917 24920 24922 24925 24925 24927 24927 24930 24931 24933 24933 24935 24936 24939 24939 24942 24945 24947 24951 24958 24958 24962 24962 24967 24967 24970 24970 24974 24974 24976 24977 24980 24980 24982 24982 24985 24986 24996 24996 24999 24999 25001 25001 25003 25004 25006 25006 25010 25010 25014 25014 25018 25018 25022 25022 25027 25027 25030 25037 25040 25040 25059 25059 25062 25062 25074 25074 25076 25076 25078 25080 25082 25082 25084 25088 25096 25098 25100 25102 25104 25106 25108 25108 25110 25110 25114 25115 25117 25119 25121 25121 25126 25126 25130 25130 25134 25136 25138 25140 25144 25144 25147 25147 25151 25153 25159 25161 25163 25163 25165 25166 25171 25171 25173 25173 25176 25176 25179 25179 25182 25182 25184 25184 25187 25187 25192 25192 25198 25198 25201 25201 25206 25206 25209 25209 25212 25212 25214 25216 25218 25220 25225 25226 25233 25240 25243 25244 25246 25246 25259 25260 25265 25265 25269 25269 25273 25273 25275 25277 25282 25282 25285 25290 25292 25293 25295 25300 25303 25305 25307 25309 25312 25313 25324 25327 25329 25329 25331 25331 25333 25335 25342 25343 25345 25346 25351 25353 25356 25356 25361 25361 25369 25369 25375 25375 25383 25384 25387 25387 25391 25391 25402 25402 25405 25407 25417 25417 25420 25421 25423 25424 25429 25429 25431 25431 25436 25436 25447 25449 25451 25451 25454 25454 25458 25458 25462 25463 25466 25467 25472 25472 25475 25475 25480 25481 25484 25484 25486 25487 25490 25490 25494 25494 25496 25496 25499 25499 25503 25507 25509 25509 25511 25516 25522 25522 25524 25525 25531 25531 25534 25534 25536 25536 25539 25540 25542 25542 25545 25545 25551 25552 25554 25554 25558 25558 25562 25563 25569 25569 25571 25571 25577 25577 25582 25582 25588 25588 25590 25590 25594 25594 25606 25606 25613 25613 25615 25615 25619 25619 25622 25623 25628 25628 25638 25638 25640 25640 25644 25645 25652 25652 25654 25654 25658 25658 25662 25662 25666 25666 25678 25678 25688 25688 25703 25703 25705 25705 25711 25711 25718 25718 25720 25720 25722 25722 25731 25731 25736 25736 25746 25747 25749 25749 25754 25754 25758 25758 25764 25765 25769 25769 25771 25771 25773 25774 25776 25776 25778 25778 25785 25785 25787 25788 25793 25794 25797 25797 25799 25799 25805 25805 25810 25810 25812 25812 25816 25816 25818 25818 25824 25827 25830 25831 25836 25836 25839 25839 25841 25842 25844 25844 25846 25846 25850 25850 25853 25854 25856 25856 25861 25861 25880 25880 25884 25885 25891 25892 25898 25900 25903 25903 25908 25913 25915 25915 25918 25919 25925 25925 25928 25928 25933 25933 25935 25935 25937 25937 25941 25945 25949 25950 25954 25955 25958 25958 25964 25964 25968 25968 25970 25970 25972 25973 25975 25976 25986 25987 25991 25993 25996 25996 25998 25998 26000 26001 26007 26007 26009 26009 26011 26012 26015 26015 26017 26017 26020 26021 26023 26023 26027 26029 26031 26032 26039 26039 26041 26041 26044 26045 26049 26049 26051 26054 26059 26060 26063 26063 26066 26066 26071 26071 26073 26073 26075 26075 26080 26082 26085 26089 26092 26093 26097 26097 26106 26107 26114 26115 26118 26119 26122 26122 26124 26124 26126 26127 26131 26132 26140 26140 26143 26144 26149 26149 26151 26152 26157 26157 26159 26159 26164 26166 26172 26172 26175 26175 26177 26180 26185 26185 26187 26187 26191 26191 26194 26194 26205 26207 26210 26210 26212 26212 26214 26217 26222 26224 26228 26228 26230 26230 26234 26234 26241 26241 26243 26244 26247 26249 26254 26254 26257 26257 26262 26264 26269 26269 26274 26274 26278 26278 26283 26283 26286 26286 26292 26292 26296 26297 26300 26300 26302 26302 26305 26305 26308 26308 26311 26311 26313 26313 26326 26326 26329 26330 26332 26333 26336 26336 26342 26342 26345 26345 26352 26352 26354 26357 26359 26361 26364 26368 26371 26371 26376 26377 26379 26379 26381 26381 26383 26383 26388 26391 26395 26395 26397 26399 26406 26408 26410 26414 26417 26417 26420 26420 26422 26424 26426 26426 26429 26429 26431 26431 26433 26433 26438 26438 26441 26441 26446 26449 26451 26451 26454 26454 26457 26457 26460 26460 26462 26469 26474 26474 26477 26477 26479 26483 26485 26485 26487 26487 26492 26492 26494 26495 26501 26501 26503 26503 26505 26505 26507 26508 26512 26512 26517 26517 26519 26519 26522 26522 26524 26525 26528 26530 26534 26534 26537 26537 26543 26543 26547 26548 26550 26553 26561 26561 26564 26564 26566 26566 26570 26570 26574 26577 26579 26580 26584 26584 26586 26586 26589 26590 26594 26594 26596 26596 26599 26599 26601 26601 26604 26604 26606 26607 26609 26609 26611 26613 26619 26619 26622 26623 26626 26628 26643 26643 26646 26647 26654 26654 26657 26658 26665 26667 26674 26674 26676 26676 26680 26681 26684 26685 26688 26691 26694 26694 26696 26696 26701 26702 26704 26705 26707 26708 26713 26713 26716 26717 26719 26719 26723 26723 26727 26727 26740 26740 26742 26743 26750 26751 26753 26753 26755 26755 26757 26757 26765 26765 26767 26767 26771 26772 26775 26775 26779 26779 26781 26781 26783 26784 26786 26786 26790 26792 26797 26797 26799 26801 26803 26803 26805 26806 26809 26810 26812 26812 26820 26820 26822 26822 26825 26827 26829 26829 26834 26834 26836 26837 26839 26840 26842 26842 26847 26849 26851 26851 26855 26855 26862 26863 26866 26866 26873 26874 26880 26881 26884 26885 26888 26888 26891 26895 26898 26898 26905 26908 26913 26915 26917 26918 26920 26920 26922 26922 26928 26928 26932 26932 26934 26934 26937 26937 26941 26941 26943 26943 26954 26954 26963 26965 26969 26970 26972 26974 26976 26978 26986 26987 26989 26991 26995 26997 26999 27001 27004 27006 27009 27010 27018 27018 27022 27022 27025 27025 27028 27029 27035 27036 27040 27040 27047 27047 27054 27054 27057 27058 27060 27060 27067 27067 27070 27071 27073 27073 27075 27075 27079 27079 27082 27086 27088 27088 27091 27091 27096 27097 27101 27102 27111 27112 27115 27115 27117 27117 27122 27122 27129 27129 27131 27131 27133 27133 27135 27135 27138 27138 27141 27141 27146 27148 27154 27156 27159 27159 27161 27161 27163 27163 27166 27167 27169 27171 27177 27179 27182 27182 27189 27190 27192 27194 27197 27197 27204 27204 27207 27208 27211 27211 27224 27225 27231 27231 27233 27234 27238 27238 27250 27250 27256 27256 27263 27264 27268 27268 27277 27278 27280 27280 27287 27287 27292 27292 27296 27296 27298 27299 27306 27306 27308 27308 27310 27310 27315 27315 27320 27320 27323 27323 27329 27331 27345 27345 27347 27347 27354 27355 27358 27359 27368 27368 27370 27370 27386 27387 27396 27397 27402 27402 27410 27410 27414 27414 27421 27421 27423 27425 27427 27427 27431 27431 27442 27442 27447 27450 27453 27454 27459 27459 27463 27463 27465 27465 27468 27468 27470 27470 27472 27472 27475 27476 27481 27481 27483 27483 27487 27487 27489 27492 27494 27494 27497 27498 27503 27503 27507 27508 27512 27513 27515 27515 27519 27520 27523 27524 27526 27526 27529 27531 27533 27533 27541 27542 27544 27544 27550 27550 27556 27556 27562 27563 27567 27567 27569 27573 27575 27575 27578 27580 27583 27584 27589 27590 27595 27595 27597 27598 27602 27604 27608 27608 27611 27611 27615 27615 27627 27628 27631 27631 27635 27635 27656 27656 27663 27663 27665 27665 27667 27668 27671 27671 27675 27675 27683 27684 27700 27700 27703 27704 27710 27710 27712 27714 27726 27726 27728 27728 27733 27733 27735 27735 27738 27738 27741 27744 27746 27746 27752 27752 27754 27754 27760 27760 27762 27763 27770 27770 27773 27774 27777 27779 27784 27784 27788 27789 27792 27792 27794 27795 27798 27798 27801 27803 27809 27810 27819 27819 27822 27822 27825 27825 27827 27827 27832 27839 27841 27841 27844 27845 27849 27850 27852 27852 27859 27859 27861 27861 27863 27863 27865 27865 27867 27867 27869 27869 27873 27875 27877 27877 27880 27880 27882 27882 27887 27889 27891 27891 27915 27916 27922 27922 27927 27927 27929 27929 27931 27931 27934 27935 27941 27941 27945 27947 27954 27955 27957 27958 27960 27960 27963 27963 27965 27966 27969 27969 27972 27973 27993 27994 27996 27996 28003 28004 28006 28006 28009 28010 28012 28012 28014 28014 28020 28020 28023 28025 28037 28037 28040 28040 28044 28044 28046 28046 28051 28051 28053 28053 28057 28057 28059 28060 28079 28079 28082 28082 28085 28085 28088 28088 28092 28092 28096 28096 28101 28103 28107 28108 28113 28114 28117 28117 28120 28121 28126 28126 28129 28129 28132 28132 28134 28134 28136 28136 28138 28140 28142 28142 28145 28145 28147 28147 28149 28149 28151 28151 28153 28155 28165 28165 28167 28171 28179 28179 28181 28181 28185 28187 28189 28189 28191 28193 28195 28198 28201 28201 28203 28207 28216 28216 28218 28218 28222 28222 28227 28227 28234 28234 28237 28238 28246 28246 28248 28248 28251 28251 28255 28255 28263 28263 28267 28267 28270 28271 28274 28274 28278 28278 28286 28288 28290 28290 28300 28300 28303 28304 28310 28310 28312 28312 28316 28317 28319 28319 28322 28322 28325 28325 28330 28330 28335 28335 28338 28338 28342 28343 28346 28346 28349 28349 28354 28354 28356 28357 28361 28361 28363 28364 28369 28369 28371 28373 28381 28382 28396 28396 28399 28399 28402 28402 28404 28404 28407 28408 28414 28415 28417 28418 28422 28422 28425 28425 28431 28431 28433 28433 28435 28437 28448 28448 28450 28451 28459 28460 28465 28466 28472 28472 28478 28479 28481 28481 28485 28485 28500 28500 28504 28504 28507 28508 28511 28511 28516 28516 28518 28518 28525 28528 28532 28532 28536 28536 28538 28538 28540 28540 28544 28546 28548 28548 28550 28550 28558 28558 28561 28561 28567 28567 28577 28577 28579 28580 28586 28586 28593 28593 28595 28595 28601 28601 28608 28611 28614 28614 28628 28629 28632 28632 28635 28635 28639 28641 28644 28644 28651 28652 28654 28655 28657 28657 28659 28659 28662 28662 28666 28666 28670 28670 28673 28673 28681 28681 28683 28683 28687 28687 28689 28689 28693 28693 28696 28696 28698 28699 28701 28703 28710 28711 28716 28716 28720 28720 28722 28722 28734 28734 28748 28748 28753 28753 28760 28760 28771 28771 28779 28779 28783 28784 28792 28792 28796 28797 28809 28810 28814 28814 28818 28818 28825 28825 28844 28847 28851 28851 28856 28858 28872 28872 28875 28875 28879 28879 28889 28889 28893 28893 28895 28895 28913 28913 28921 28921 28925 28925 28937 28937 28948 28948 28953 28954 28956 28956 28961 28961 28966 28966 28982 28982 28988 28988 29001 29001 29004 29004 29006 29006 29013 29014 29017 29017 29026 29026 29028 29031 29033 29033 29036 29036 29038 29038 29053 29053 29060 29060 29064 29064 29066 29066 29071 29071 29076 29077 29081 29081 29087 29087 29096 29096 29100 29100 29105 29105 29113 29113 29118 29118 29123 29123 29128 29129 29134 29134 29136 29136 29138 29138 29140 29141 29143 29143 29151 29152 29157 29159 29164 29166 29173 29173 29177 29177 29179 29180 29183 29183 29190 29190 29197 29197 29200 29200 29211 29211 29224 29224 29226 29226 29228 29229 29232 29232 29234 29234 29237 29238 29242 29248 29254 29256 29259 29260 29266 29266 29272 29273 29275 29275 29277 29277 29279 29279 29281 29282 29287 29287 29289 29289 29298 29298 29300 29300 29305 29305 29309 29310 29312 29314 29319 29319 29330 29330 29334 29334 29344 29344 29346 29346 29351 29351 29356 29356 29359 29359 29362 29362 29366 29366 29369 29369 29378 29380 29382 29382 29390 29390 29392 29392 29394 29394 29399 29399 29401 29401 29403 29403 29408 29410 29417 29417 29420 29421 29431 29433 29436 29437 29450 29450 29462 29463 29467 29469 29471 29471 29477 29477 29481 29483 29486 29487 29492 29492 29494 29495 29502 29503 29508 29509 29518 29519 29527 29527 29539 29539 29544 29544 29546 29546 29552 29552 29554 29554 29557 29557 29560 29560 29562 29563 29572 29572 29575 29575 29577 29577 29579 29579 29590 29590 29609 29609 29618 29619 29627 29627 29632 29632 29634 29634 29640 29640 29642 29642 29645 29646 29662 29662 29664 29664 29669 29669 29674 29674 29677 29678 29681 29681 29688 29688 29694 29694 29699 29699 29701 29702 29705 29705 29730 29730 29733 29733 29746 29750 29754 29754 29759 29759 29761 29761 29781 29781 29785 29788 29790 29792 29795 29796 29801 29802 29807 29808 29811 29811 29814 29814 29822 29822 29827 29827 29835 29835 29854 29854 29858 29858 29863 29863 29872 29872 29885 29885 29898 29898 29903 29903 29908 29908 29916 29916 29920 29920 29922 29923 29926 29927 29929 29929 29934 29934 29936 29938 29942 29944 29955 29957 29964 29966 29969 29969 29971 29971 29973 29973 29976 29976 29978 29978 29980 29980 29982 29983 29987 29987 29989 29990 29992 29992 29995 29996 30000 30003 30007 30008 30010 30012 30020 30020 30022 30022 30025 30029 30031 30031 30033 30033 30036 30036 30041 30045 30048 30048 30050 30050 30052 30055 30057 30059 30061 30061 30064 30064 30067 30068 30070 30072 30079 30079 30082 30082 30086 30087 30089 30091 30094 30095 30097 30097 30100 30100 30106 30106 30109 30109 30115 30115 30117 30117 30123 30123 30129 30131 30133 30133 30136 30137 30140 30142 30146 30147 30149 30149 30151 30151 30154 30154 30157 30157 30162 30162 30164 30165 30168 30169 30171 30171 30174 30174 30178 30179 30185 30185 30192 30192 30194 30196 30202 30202 30204 30204 30206 30207 30209 30209 30217 30217 30219 30219 30221 30221 30239 30242 30244 30244 30247 30247 30256 30256 30260 30260 30267 30267 30274 30274 30278 30280 30284 30284 30290 30290 30294 30294 30296 30296 30300 30300 30305 30306 30311 30314 30316 30316 30320 30320 30322 30322 30326 30326 30328 30328 30330 30334 30336 30336 30339 30340 30342 30344 30347 30347 30350 30350 30352 30352 30355 30355 30358 30358 30361 30362 30382 30382 30384 30384 30388 30388 30391 30394 30399 30399 30402 30403 30406 30406 30408 30408 30410 30410 30413 30413 30418 30418 30422 30423 30427 30428 30430 30431 30433 30433 30435 30437 30439 30439 30442 30442 30446 30446 30450 30450 30452 30452 30456 30456 30459 30459 30462 30462 30465 30465 30468 30468 30471 30473 30475 30476 30491 30491 30494 30496 30500 30502 30505 30505 30519 30520 30522 30522 30524 30524 30528 30528 30535 30535 30554 30555 30561 30561 30563 30563 30565 30566 30568 30568 30571 30571 30585 30585 30590 30591 30603 30603 30606 30606 30609 30609 30622 30622 30624 30624 30629 30629 30636 30637 30640 30640 30643 30643 30646 30646 30649 30649 30651 30653 30655 30655 30663 30663 30669 30669 30679 30679 30682 30684 30690 30691 30693 30693 30695 30695 30697 30697 30701 30703 30707 30707 30716 30716 30722 30722 30732 30732 30738 30738 30740 30741 30752 30752 30757 30759 30770 30770 30772 30772 30778 30778 30783 30783 30789 30789 30813 30813 30827 30828 30831 30831 30834 30834 30836 30836 30844 30844 30849 30849 30854 30855 30860 30862 30865 30865 30867 30867 30869 30869 30871 30871 30874 30874 30883 30883 30887 30887 30889 30890 30895 30895 30901 30901 30906 30906 30908 30908 30910 30910 30913 30913 30917 30918 30922 30923 30928 30929 30932 30932 30938 30938 30951 30952 30956 30956 30959 30959 30964 30964 30973 30973 30977 30977 30983 30983 30990 30990 30993 30994 31001 31001 31014 31014 31018 31020 31034 31034 31036 31036 31038 31038 31040 31041 31047 31049 31056 31056 31059 31059 31061 31063 31066 31066 31069 31072 31074 31074 31077 31077 31080 31080 31085 31085 31095 31095 31098 31098 31103 31105 31108 31109 31114 31114 31117 31119 31133 31133 31142 31143 31146 31146 31150 31150 31152 31152 31155 31155 31161 31162 31165 31169 31177 31177 31179 31179 31185 31186 31189 31189 31192 31192 31199 31199 31201 31201 31203 31204 31206 31207 31209 31209 31212 31212 31216 31216 31227 31227 31232 31232 31240 31240 31243 31243 31245 31246 31252 31252 31255 31258 31260 31260 31263 31264 31278 31278 31281 31282 31287 31287 31291 31296 31298 31299 31302 31302 31305 31305 31309 31312 31319 31319 31329 31331 31337 31337 31339 31339 31344 31344 31348 31348 31350 31350 31353 31354 31357 31357 31359 31359 31361 31361 31363 31364 31368 31368 31378 31379 31381 31384 31391 31391 31401 31402 31406 31408 31414 31414 31418 31418 31423 31423 31427 31429 31431 31432 31434 31435 31437 31437 31439 31439 31442 31443 31445 31445 31449 31450 31452 31453 31455 31459 31461 31462 31466 31466 31469 31469 31471 31472 31478 31478 31480 31482 31487 31487 31490 31490 31492 31492 31494 31494 31496 31496 31498 31499 31503 31503 31505 31505 31512 31513 31515 31515 31518 31518 31520 31520 31525 31526 31528 31528 31532 31532 31539 31539 31541 31542 31545 31545 31557 31558 31560 31561 31563 31565 31567 31570 31572 31572 31574 31574 31581 31581 31589 31589 31591 31591 31596 31596 31598 31598 31600 31601 31604 31605 31610 31610 31622 31623 31627 31627 31629 31629 31631 31631 31634 31634 31636 31637 31639 31642 31644 31645 31647 31647 31649 31649 31658 31658 31661 31661 31665 31665 31668 31668 31672 31672 31680 31681 31684 31684 31686 31687 31689 31689 31691 31692 31695 31695 31709 31709 31712 31712 31716 31718 31721 31721 31725 31725 31731 31731 31734 31735 31744 31744 31751 31751 31757 31757 31761 31764 31767 31767 31775 31775 31777 31777 31779 31779 31783 31783 31786 31787 31799 31800 31805 31808 31811 31811 31820 31821 31823 31824 31828 31828 31830 31830 31832 31832 31839 31840 31844 31845 31852 31852 31859 31859 31861 31861 31870 31870 31873 31875 31881 31881 31883 31883 31885 31885 31888 31888 31890 31890 31893 31893 31895 31896 31899 31899 31903 31903 31905 31906 31908 31909 31911 31912 31915 31915 31917 31918 31921 31923 31929 31929 31933 31934 31936 31936 31938 31938 31941 31941 31946 31946 31950 31950 31954 31954 31958 31958 31960 31960 31964 31964 31966 31968 31970 31970 31975 31975 31983 31983 31986 31986 31988 31988 31990 31990 31992 31992 31994 31995 31998 31998 32000 32000 32002 32002 32004 32006 32010 32011 32013 32013 32016 32016 32020 32021 32023 32028 32032 32034 32043 32044 32046 32048 32050 32051 32053 32053 32057 32058 32063 32063 32066 32070 32075 32076 32078 32080 32086 32086 32091 32091 32094 32094 32097 32099 32102 32102 32104 32104 32110 32110 32113 32115 32117 32118 32121 32121 32125 32125 32137 32137 32143 32143 32147 32147 32153 32156 32159 32159 32162 32163 32171 32178 32180 32181 32184 32184 32186 32187 32189 32191 32199 32199 32202 32203 32207 32207 32209 32210 32213 32213 32216 32216 32218 32218 32220 32222 32224 32225 32228 32228 32232 32233 32236 32236 32239 32239 32242 32242 32244 32244 32251 32251 32257 32257 32260 32261 32265 32267 32274 32274 32283 32283 32286 32287 32289 32291 32294 32294 32299 32299 32302 32302 32305 32306 32309 32309 32311 32311 32313 32315 32317 32318 32321 32321 32323 32323 32326 32326 32330 32331 32333 32333 32340 32342 32345 32346 32349 32350 32358 32359 32361 32362 32365 32365 32368 32368 32377 32377 32379 32381 32383 32383 32386 32387 32392 32393 32396 32396 32398 32400 32402 32404 32406 32406 32411 32412 32566 32566 32568 32568 32570 32570 32581 32581 32588 32590 32592 32593 32596 32597 32600 32600 32607 32608 32615 32619 32622 32622 32624 32624 32626 32626 32629 32629 32631 32633 32642 32643 32645 32648 32650 32650 32652 32652 32654 32654 32660 32660 32666 32666 32669 32670 32675 32676 32680 32681 32686 32687 32690 32690 32694 32694 32696 32697 32701 32701 32705 32705 32709 32710 32714 32714 32716 32716 32722 32722 32724 32725 32736 32737 32742 32742 32745 32745 32747 32747 32752 32752 32755 32755 32761 32761 32763 32764 32768 32769 32771 32774 32779 32780 32784 32784 32786 32786 32789 32789 32791 32793 32796 32796 32801 32801 32808 32808 32819 32819 32822 32822 32827 32827 32829 32829 32831 32831 32838 32838 32842 32842 32850 32850 32854 32854 32856 32856 32858 32858 32862 32863 32865 32866 32872 32872 32879 32880 32882 32884 32886 32887 32889 32889 32893 32895 32900 32903 32905 32905 32907 32908 32915 32915 32918 32918 32920 32920 32922 32923 32925 32925 32929 32930 32933 32933 32937 32938 32940 32941 32943 32943 32945 32946 32948 32948 32954 32954 32963 32964 32966 32966 32972 32972 32974 32974 32982 32982 32985 32987 32989 32990 32993 32993 32996 32997 33007 33007 33009 33009 33012 33012 33016 33016 33020 33021 33026 33026 33029 33034 33050 33051 33059 33059 33065 33065 33071 33071 33073 33073 33075 33075 33081 33081 33086 33086 33094 33094 33099 33099 33102 33102 33104 33105 33107 33109 33119 33119 33125 33126 33131 33131 33134 33134 33136 33137 33140 33140 33144 33146 33151 33152 33154 33155 33160 33160 33162 33162 33167 33167 33171 33171 33173 33173 33178 33178 33180 33181 33184 33184 33187 33188 33192 33193 33200 33200 33203 33203 33205 33205 33208 33208 33210 33210 33213 33216 33218 33218 33222 33222 33224 33225 33229 33229 33233 33233 33235 33235 33240 33242 33247 33248 33251 33251 33253 33253 33255 33256 33258 33258 33261 33261 33267 33268 33274 33276 33278 33278 33281 33282 33285 33285 33287 33290 33292 33294 33296 33296 33298 33298 33302 33304 33307 33308 33310 33311 33321 33324 33326 33326 33331 33331 33333 33337 33344 33344 33351 33351 33368 33370 33373 33373 33375 33375 33378 33378 33380 33380 33382 33382 33384 33384 33386 33387 33390 33391 33393 33394 33398 33400 33406 33406 33419 33419 33421 33421 33426 33426 33433 33433 33437 33437 33439 33439 33445 33446 33451 33453 33455 33455 33457 33457 33459 33459 33464 33465 33467 33467 33469 33469 33477 33477 33489 33492 33495 33495 33497 33497 33499 33500 33502 33503 33505 33505 33507 33507 33509 33511 33515 33515 33521 33521 33523 33524 33529 33531 33538 33542 33545 33545 33550 33550 33558 33560 33564 33564 33571 33571 33576 33576 33579 33579 33583 33583 33585 33586 33588 33590 33592 33593 33600 33600 33605 33605 33609 33610 33615 33616 33618 33618 33624 33624 33651 33651 33653 33653 33655 33655 33659 33660 33669 33669 33671 33671 33673 33674 33678 33678 33683 33683 33686 33686 33690 33690 33694 33696 33698 33698 33704 33704 33706 33707 33713 33713 33717 33717 33725 33725 33729 33729 33733 33733 33738 33738 33740 33740 33742 33742 33747 33747 33750 33750 33752 33752 33756 33756 33759 33760 33769 33769 33771 33771 33775 33778 33780 33780 33783 33783 33787 33787 33789 33789 33795 33796 33799 33799 33803 33806 33811 33811 33824 33824 33826 33826 33833 33834 33836 33836 33841 33841 33845 33845 33848 33848 33852 33853 33862 33862 33865 33865 33870 33870 33879 33879 33883 33883 33889 33891 33894 33894 33897 33897 33899 33903 33905 33905 33909 33909 33911 33911 33913 33914 33922 33922 33924 33924 33931 33931 33936 33936 33940 33940 33945 33945 33948 33948 33951 33951 33953 33953 33965 33965 33970 33970 33976 33977 33979 33980 33983 33983 33985 33985 33988 33988 33990 33990 33993 33995 33997 33997 34000 34001 34006 34006 34009 34010 34028 34028 34030 34030 34036 34036 34044 34044 34047 34048 34054 34054 34065 34065 34067 34069 34071 34072 34074 34074 34079 34079 34081 34081 34086 34086 34092 34093 34101 34101 34109 34109 34112 34113 34115 34115 34120 34123 34126 34126 34133 34133 34135 34136 34138 34138 34147 34147 34152 34154 34157 34157 34167 34167 34174 34174 34176 34176 34180 34180 34183 34184 34186 34186 34192 34193 34196 34196 34199 34199 34201 34201 34203 34204 34212 34212 34214 34214 34216 34220 34222 34223 34233 34234 34241 34241 34249 34249 34253 34253 34255 34256 34261 34261 34268 34269 34276 34277 34281 34282 34295 34295 34297 34299 34302 34302 34306 34306 34310 34311 34314 34315 34323 34323 34326 34327 34330 34330 34338 34338 34349 34349 34351 34352 34367 34367 34381 34382 34384 34384 34388 34389 34394 34394 34396 34396 34398 34399 34407 34407 34411 34411 34417 34417 34425 34425 34427 34427 34442 34444 34451 34451 34453 34453 34467 34468 34473 34475 34479 34480 34486 34486 34500 34500 34502 34503 34505 34505 34507 34507 34509 34510 34516 34516 34521 34521 34523 34523 34526 34527 34532 34532 34537 34537 34540 34543 34552 34553 34555 34555 34558 34558 34560 34560 34562 34563 34566 34566 34568 34570 34573 34573 34577 34578 34584 34584 34586 34586 34588 34588 34597 34597 34601 34601 34612 34612 34615 34615 34619 34619 34623 34623 34633 34633 34635 34636 34638 34638 34643 34643 34645 34645 34647 34647 34649 34649 34655 34656 34659 34659 34662 34662 34664 34664 34666 34666 34670 34670 34676 34676 34678 34678 34680 34680 34687 34687 34690 34690 34701 34701 34719 34719 34722 34722 34731 34731 34735 34735 34739 34739 34746 34747 34749 34749 34752 34752 34756 34756 34758 34759 34763 34763 34768 34768 34770 34770 34784 34784 34799 34799 34802 34802 34806 34807 34809 34809 34811 34811 34814 34814 34821 34821 34829 34831 34833 34833 34837 34838 34849 34851 34855 34855 34865 34865 34870 34870 34873 34873 34875 34875 34880 34880 34882 34882 34884 34884 34886 34886 34892 34893 34898 34899 34903 34903 34905 34905 34907 34907 34909 34910 34913 34915 34920 34920 34923 34923 34928 34928 34930 34930 34933 34933 34935 34935 34941 34943 34945 34946 34952 34952 34955 34955 34957 34957 34962 34962 34966 34967 34969 34969 34974 34974 34978 34978 34980 34980 34987 34987 34990 34990 34992 34993 34996 34997 34999 34999 35007 35007 35009 35013 35023 35023 35028 35029 35032 35033 35036 35037 35039 35039 35041 35041 35048 35048 35058 35060 35064 35065 35068 35070 35074 35074 35076 35076 35079 35079 35082 35082 35084 35084 35088 35088 35090 35091 35101 35102 35109 35109 35114 35115 35126 35126 35128 35128 35131 35131 35137 35137 35139 35140 35148 35149 35158 35158 35166 35168 35172 35172 35174 35174 35178 35178 35181 35181 35183 35183 35186 35186 35188 35188 35191 35191 35198 35199 35201 35201 35203 35203 35206 35208 35210 35211 35215 35215 35219 35219 35222 35224 35226 35226 35233 35233 35238 35239 35241 35242 35244 35244 35247 35247 35250 35251 35258 35258 35261 35261 35263 35264 35282 35282 35290 35290 35292 35293 35299 35299 35302 35303 35316 35316 35320 35320 35328 35328 35330 35331 35336 35336 35338 35338 35340 35340 35342 35342 35344 35344 35347 35347 35350 35352 35355 35355 35357 35357 35359 35359 35363 35363 35365 35365 35370 35370 35373 35373 35377 35377 35379 35380 35382 35382 35386 35388 35393 35393 35398 35398 35400 35400 35408 35410 35412 35413 35419 35419 35422 35422 35424 35424 35426 35427 35430 35430 35433 35433 35435 35438 35440 35443 35452 35452 35458 35458 35460 35461 35463 35463 35465 35465 35468 35469 35473 35473 35475 35475 35477 35477 35480 35480 35482 35482 35486 35486 35488 35489 35491 35494 35496 35496 35500 35501 35504 35504 35506 35506 35513 35513 35516 35516 35519 35519 35522 35522 35524 35524 35527 35527 35531 35533 35535 35535 35538 35538 35542 35542 35546 35548 35550 35550 35552 35554 35556 35556 35558 35559 35563 35563 35565 35566 35569 35569 35571 35571 35575 35576 35578 35578 35582 35582 35584 35586 35588 35588 35591 35591 35596 35596 35598 35598 35600 35600 35604 35604 35606 35607 35609 35611 35613 35613 35616 35617 35622 35622 35624 35624 35627 35628 35635 35635 35641 35641 35646 35646 35649 35649 35657 35657 35660 35660 35662 35663 35670 35670 35672 35672 35674 35676 35679 35679 35686 35686 35691 35692 35695 35698 35700 35700 35703 35703 35709 35709 35712 35712 35715 35715 35722 35722 35724 35724 35726 35726 35728 35728 35730 35731 35734 35734 35737 35738 35895 35895 35898 35898 35903 35903 35905 35905 35910 35910 35912 35912 35914 35914 35916 35916 35918 35918 35920 35920 35925 35925 35930 35930 35937 35938 35946 35948 35960 35962 35964 35964 35970 35970 35973 35973 35977 35978 35980 35982 35988 35988 35992 35992 35997 35998 36000 36002 36007 36016 36018 36020 36022 36024 36027 36029 36031 36036 36039 36040 36042 36042 36045 36046 36049 36049 36051 36051 36058 36060 36062 36062 36064 36064 36066 36068 36070 36070 36074 36074 36077 36077 36090 36093 36100 36101 36103 36104 36106 36107 36109 36109 36111 36112 36115 36116 36118 36118 36196 36196 36198 36199 36203 36203 36205 36205 36208 36209 36211 36212 36215 36215 36225 36225 36229 36229 36234 36234 36249 36249 36259 36259 36264 36264 36275 36275 36282 36282 36286 36286 36290 36290 36299 36300 36303 36303 36310 36310 36314 36315 36317 36317 36319 36319 36321 36321 36323 36323 36328 36328 36330 36331 36335 36335 36339 36339 36341 36341 36348 36348 36351 36351 36360 36362 36367 36368 36381 36383 36394 36394 36400 36400 36404 36405 36418 36418 36420 36420 36423 36426 36428 36428 36432 36432 36437 36437 36441 36441 36447 36448 36451 36452 36466 36466 36468 36468 36470 36470 36476 36476 36481 36481 36484 36485 36487 36487 36490 36491 36493 36493 36497 36497 36499 36500 36505 36505 36513 36513 36522 36524 36527 36529 36542 36542 36549 36550 36552 36552 36554 36557 36562 36562 36571 36571 36575 36575 36578 36579 36587 36587 36600 36600 36603 36606 36611 36611 36613 36613 36617 36618 36620 36620 36626 36629 36633 36633 36635 36637 36639 36639 36646 36646 36649 36650 36655 36655 36659 36659 36664 36665 36667 36667 36670 36671 36674 36674 36676 36678 36681 36681 36684 36686 36695 36695 36700 36700 36703 36703 36705 36708 36763 36764 36766 36767 36771 36771 36775 36776 36781 36786 36791 36791 36794 36796 36799 36799 36802 36802 36804 36805 36814 36814 36817 36817 36820 36820 36826 36826 36834 36834 36837 36838 36841 36843 36845 36845 36847 36848 36852 36852 36855 36858 36861 36861 36864 36865 36867 36867 36869 36870 36875 36875 36877 36881 36883 36887 36889 36890 36893 36899 36903 36903 36910 36910 36913 36914 36917 36918 36920 36921 36924 36924 36926 36926 36929 36930 36933 36933 36935 36935 36937 36939 36941 36950 36952 36953 36956 36956 36958 36958 36960 36961 36963 36963 36965 36965 36968 36969 36973 36975 36978 36978 36981 36984 36986 36986 36988 36989 36991 36996 36999 36999 37001 37002 37007 37007 37009 37009 37027 37027 37030 37030 37032 37032 37034 37034 37039 37039 37041 37041 37045 37045 37048 37048 37057 37057 37066 37066 37070 37070 37083 37083 37089 37090 37092 37092 37096 37096 37101 37101 37109 37109 37111 37111 37117 37117 37122 37122 37138 37138 37145 37145 37165 37165 37168 37168 37170 37170 37193 37198 37202 37202 37204 37204 37206 37206 37208 37208 37218 37219 37221 37221 37225 37226 37228 37228 37234 37235 37237 37237 37239 37240 37250 37250 37255 37255 37257 37257 37259 37259 37261 37261 37264 37264 37266 37266 37271 37271 37276 37276 37282 37282 37284 37284 37290 37291 37295 37295 37300 37301 37304 37304 37306 37306 37312 37313 37318 37321 37323 37329 37334 37334 37336 37336 37339 37341 37343 37343 37345 37345 37347 37347 37350 37351 37365 37366 37372 37372 37375 37375 37389 37390 37393 37393 37396 37397 37406 37406 37417 37417 37420 37420 37428 37428 37431 37431 37439 37439 37444 37445 37448 37449 37451 37451 37456 37456 37463 37463 37466 37467 37470 37470 37474 37474 37476 37476 37478 37478 37489 37489 37502 37502 37504 37504 37507 37507 37509 37509 37521 37521 37523 37523 37525 37526 37528 37528 37530 37532 37549 37549 37559 37559 37561 37561 37583 37583 37586 37586 37604 37604 37609 37610 37613 37613 37618 37619 37624 37624 37626 37626 37628 37628 37638 37638 37647 37648 37656 37658 37664 37664 37666 37667 37670 37670 37672 37672 37675 37676 37678 37679 37682 37682 37685 37685 37690 37691 37700 37700 37707 37707 37709 37709 37716 37716 37718 37718 37723 37724 37728 37728 37740 37740 37742 37742 37749 37749 37756 37756 37758 37758 37772 37772 37780 37780 37782 37783 37786 37786 37799 37799 37804 37806 37808 37808 37817 37817 37827 37827 37832 37832 37840 37841 37846 37848 37853 37853 37857 37857 37860 37861 37864 37864 37891 37891 37895 37895 37904 37904 37907 37908 37912 37914 37921 37921 37931 37931 37941 37942 37944 37944 37946 37946 37953 37953 37956 37956 37969 37971 37978 37979 37982 37982 37984 37984 37986 37986 37994 37994 38000 38000 38005 38005 38007 38007 38012 38015 38017 38017 38263 38263 38272 38272 38274 38275 3