Mercurial > emacs
changeset 83533:02e39decdc84
Merged from emacs@sv.gnu.org
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-351
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-352
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-353
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-354
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-355
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-356
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-357
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-358
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-359
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-360
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-361
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-362
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-363
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-364
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-365
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-366
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-367
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-368
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-369
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-370
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-115
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-116
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-117
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-118
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-119
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-120
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-573
line wrap: on
line diff
--- a/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,9 @@ +2006-07-14 Eli Zaretskii <eliz@gnu.org> + + * configure.in (PKG_CHECK_MODULES): Redirect the output of + $PKG_CONFIG --exists "$2" to config.log. + * configure: Regenerated. + 2006-07-14 Kim F. Storm <storm@cua.dk> * AUTHORS: Regenerate.
--- a/admin/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/admin/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,11 @@ +2006-07-17 Reiner Steib <Reiner.Steib@gmx.de> + + * FOR-RELEASE: Update refcard section. + +2006-07-14 Kim F. Storm <storm@cua.dk> + + * FOR-RELEASE (BUGS): High cpu load on windows server sockets fixed. + 2006-07-09 Kim F. Storm <storm@cua.dk> * README: Use outline format. Add FOR-RELEASE. @@ -56,7 +64,7 @@ 2006-01-27 Chong Yidong <cyd@stupidchicken.com> - * FOR-RELEASE: string allocation bugs fixed. + * FOR-RELEASE: String allocation bugs fixed. 2005-12-13 Bill Wohler <wohler@newt.com>
--- a/admin/FOR-RELEASE Fri Jul 14 05:56:32 2006 +0000 +++ b/admin/FOR-RELEASE Sat Jul 29 09:59:12 2006 +0000 @@ -4,8 +4,6 @@ ** Update release dates of manuals. -** Get rid of overfull and underfull boxes in manuals. - ** Check for widow and orphan lines in manuals; make sure all the pages really look ok in the manual as formatted. @@ -18,12 +16,12 @@ Requests to have been sent out on 2006-05-23 (Reiner Steib). LANG Translator Status -cs Pavel JanÃk No response +cs Pavel JanÃk Can't work on it now. de Sven Joachim Done fr Eric Jacoboni Done (layout might be improved) pl WÅ‚odek Bzyl Done pt-br Rodrigo Real Done -ru Alex Ott Working +ru Alex Ott Done sk Miroslav VaÅ¡ko No response Reminders sent out on 2006-06-08. @@ -41,21 +39,12 @@ '(hscroll-step 1) ) -** TCP server processes do not work on Windows. - -TCP/IP server processes created with `make-network-process' consume -excesive CPU on some Windows environments. Usages of 50% and 100% -CPU time have been observed on different Window XP configurations. -Seems to be a problem in sys_select in w32proc.c. +** David Kastrup's report on strange scrolling of large images. -In its current form, it sys_select says the socket is ready, so we -call server_accept_connection which again calls accept() which returns --1 with errno == WSAEWOULDBLOCK (10035) indicating that there is no -pending connection to accept. +** Jorgen Schaefer <forcer@forcix.cx>'s June 18 bug report about + fields and invisible overlays needs attention from a field expert. -It seems that to fix this, w32 server sockets must use WSAAsyncSelect -+ FD_ACCEPT to request notifications of incoming connections... - +** Implement buffer-chars-modified-tick. * DOCUMENTATION @@ -69,16 +58,16 @@ SECTION READERS ---------------------------------- lispref/abbrevs.texi "Luc Teirlinck" Chong Yidong -lispref/advice.texi joakim@verona.se Chong Yidong -lispref/anti.texi Chong Yidong +lispref/advice.texi Joakim Verona Chong Yidong +lispref/anti.texi Chong Yidong Kim F. Storm lispref/backups.texi "Luc Teirlinck" Chong Yidong lispref/buffers.texi "Luc Teirlinck" Chong Yidong -lispref/calendar.texi Joakim Verona <joakim@verona.se> Chong Yidong +lispref/calendar.texi Joakim Verona Chong Yidong lispref/commands.texi "Luc Teirlinck" Chong Yidong lispref/compile.texi "Luc Teirlinck" Chong Yidong lispref/control.texi "Luc Teirlinck" Chong Yidong lispref/customize.texi Chong Yidong "Luc Teirlinck" -lispref/debugging.texi Joakim Verona <joakim@verona.se> Lute Kamstra +lispref/debugging.texi Joakim Verona Lute Kamstra lispref/display.texi Chong Yidong Jason Rumney lispref/edebug.texi Chong Yidong "Luc Teirlinck" lispref/elisp.texi "Luc Teirlinck" Lute Kamstra @@ -97,7 +86,7 @@ lispref/loading.texi "Luc Teirlinck" Chong Yidong lispref/locals.texi Chong Yidong Nick Roberts lispref/macros.texi "Luc Teirlinck" Chong Yidong -lispref/maps.texi Chong Yidong +lispref/maps.texi Chong Yidong Kim F. Storm lispref/markers.texi "Luc Teirlinck" Chong Yidong lispref/minibuf.texi "Luc Teirlinck" Chong Yidong lispref/modes.texi Chong Yidong
--- a/configure Fri Jul 14 05:56:32 2006 +0000 +++ b/configure Sat Jul 29 09:59:12 2006 +0000 @@ -5675,7 +5675,7 @@ echo "$as_me:$LINENO: checking for $ALSA_MODULES" >&5 echo $ECHO_N "checking for $ALSA_MODULES... $ECHO_C" >&6 - if $PKG_CONFIG --exists "$ALSA_MODULES" 2> /dev/null; then + if $PKG_CONFIG --exists "$ALSA_MODULES" 2>&5; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 succeeded=yes @@ -10319,7 +10319,7 @@ echo "$as_me:$LINENO: checking for $GTK_MODULES" >&5 echo $ECHO_N "checking for $GTK_MODULES... $ECHO_C" >&6 - if $PKG_CONFIG --exists "$GTK_MODULES" 2> /dev/null; then + if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 succeeded=yes
--- a/configure.in Fri Jul 14 05:56:32 2006 +0000 +++ b/configure.in Sat Jul 29 09:59:12 2006 +0000 @@ -1500,7 +1500,7 @@ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then AC_MSG_CHECKING(for $2) - if $PKG_CONFIG --exists "$2" 2> /dev/null; then + if $PKG_CONFIG --exists "$2" 2>&5; then AC_MSG_RESULT(yes) succeeded=yes
--- a/etc/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/etc/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,19 @@ +2006-07-17 Reiner Steib <Reiner.Steib@gmx.de> + + * ru-refcard.ps: Regenerate. + +2006-07-17 Alex Ott <alexott@gmail.com> + + * ru-refcard.tex: Update for Emacs 22. + +2006-07-14 Kim F. Storm <storm@cua.dk> + + * PROBLEMS: Emacs now requires ws2_32.dll on Windows. + +2006-07-14 K,Aa(Broly L,Bu(Brentey <lorentey@elte.hu> + + * HELLO: Update Hungarian sample. + 2006-07-12 Michael Olson <mwolson@gnu.org> * ERC-NEWS: Update for ERC 5.1.3.
--- a/etc/NEWS Fri Jul 14 05:56:32 2006 +0000 +++ b/etc/NEWS Sat Jul 29 09:59:12 2006 +0000 @@ -238,6 +238,11 @@ modified buffers, it saves the abbrevs too if they have changed. It can do this either silently or asking for confirmation first, according to the value of `save-abbrevs'. + ++++ +** If the environment variable EMAIL is defined, Emacs now uses its value +to compute the default value of `use-mail-address', in preference to +concatenation of `user-login-name' with the name of your host machine. * Incompatible Editing Changes in Emacs 22.1 @@ -2011,10 +2016,22 @@ - repaired retention of topic body hanging indent upon topic depth shifts - refuse to create "containment discontinuities", where a topic is shifted deeper than the offspring-depth of its' container + - auto-fill-mode is now left inactive when allout-mode starts, if it + already was inactive. also, `allout-inhibit-auto-fill' custom + configuration variable makes it easy to disable auto fill in allout + outlines in general or on a per-buffer basis. + - new hook `allout-mode-deactivate-hook', for coordinating with + deactivation of allout-mode. - bulleting variation is simpler and more accommodating, both in the default behavior and in ability to vary when creating new topics - - many internal fixes and refinements - - many module and function docstring clarifications + - mode deactivation now does cleans up effectively, more properly + restoring affected variables and hooks to former state, removing + overlays, etc. + - included a few unit-tests for interior functionality. developers can + have them automatically run at the end of module load by customizing + the option `allout-run-unit-tests-on-load'. + - many, many minor tweaks and fixes. many internal fixes and + refinements of docstrings. - version number incremented to 2.2 ** The variable `woman-topic-at-point' was renamed @@ -3828,6 +3845,12 @@ `string-or-null-p' returns non-nil iff OBJECT is a string or nil. `booleanp' returns non-nil iff OBJECT is a t or nil. ++++ +*** New hook `command-error-function'. + +By setting this variable to a function, you can control +how the editor command loop shows the user an error message. + ** Lisp code indentation features: +++ @@ -4386,6 +4409,12 @@ ** Input changes: +++ +*** The functions `read-event', `read-char', and `read-char-exclusive' +have a new optional argument SECONDS. If non-nil, this specifies a +maximum time to wait for input, in seconds. If no input arrives after +this time elapses, the functions stop waiting and return nil. + ++++ *** An interactive specification can now use the code letter 'U' to get the up-event that was discarded in case the last key sequence read for a previous `k' or `K' argument was a down-event; otherwise nil is used. @@ -4506,6 +4535,8 @@ (kbd "C-x C-f") => "\^x\^f" +Actually, this format has existed since Emacs 20.1. + *** Interactive commands can be remapped through keymaps. This is an alternative to using `defadvice' or `substitute-key-definition' @@ -4592,6 +4623,8 @@ keymap alist separate from `minor-mode-map-alist' by adding their keymap alist to this list. +*** The definition of a key-binding passed to define-key can use XEmacs-style +key-sequences, such as [(control a)]. ** Abbrev changes: +++
--- a/etc/PROBLEMS Fri Jul 14 05:56:32 2006 +0000 +++ b/etc/PROBLEMS Sat Jul 29 09:59:12 2006 +0000 @@ -929,12 +929,12 @@ + ;; The only way the function is used in this package is included + ;; in `mucs-package-definition-end-hook' value, where it must + ;; return (possibly empty) *list* of forms. Do this. Do not rely -+ ;; on byte compiler to remove extra `progn's in `(progn ...)' ++ ;; on byte compiler to remove extra `progn's in `(progn ...)' + ;; form. + `((setq mucs-ccl-facility-alist + (quote ,mucs-ccl-facility-alist)) + ,@result))) - + ;;; Add hook for embedding translation informations to a package. (add-hook 'mucs-package-definition-end-hook @@ -2023,6 +2023,15 @@ * Runtime problems specific to MS-Windows +** Windows 95 and networking. + +To support server sockets, Emacs 22.1 loads ws2_32.dll. If this file +is missing, all Emacs networking features are disabled. + +Old versions of Windows 95 may not have the required DLL. To use +Emacs' networking features on Windows 95, you must install the +"Windows Socket 2" update available from MicroSoft's support Web. + ** Emacs exits with "X protocol error" when run with an X server for MS-Windows. A certain X server for Windows had a bug which caused this. @@ -2463,7 +2472,7 @@ setarch i386 ./temacs --batch --load loadup [dump|bootstrap] - + *** Fedora Core 4 GNU/Linux: Segfault during dumping. In addition to exec-shield explained above "Linux: Segfault during @@ -2477,7 +2486,7 @@ or - setarch i386 -R make bootstrap + setarch i386 -R make bootstrap *** Fatal signal in the command temacs -l loadup inc dump.
--- a/etc/ru-refcard.ps Fri Jul 14 05:56:32 2006 +0000 +++ b/etc/ru-refcard.ps Sat Jul 29 09:59:12 2006 +0000 @@ -1,16 +1,18 @@ %!PS-Adobe-2.0 -%%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software +%%Creator: dvips(k) 5.95b Copyright 2005 Radical Eye Software %%Title: ru-refcard.dvi %%Pages: 6 %%PageOrder: Ascend -%%BoundingBox: 0 0 596 842 -%%DocumentFonts: CMSY10 CMMI10 CMSY8 +%%BoundingBox: 0 0 595 842 +%%DocumentFonts: SFRM1000 SFBX1440 SFTT1000 SFBX1000 SFTI1000 CMSY10 +%%+ CMMI10 SFRM0800 CMSY8 +%%DocumentPaperSizes: a4 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips ru-refcard.dvi -%DVIPSParameters: dpi=600, compressed -%DVIPSSource: TeX output 2004.05.16:0847 -%%BeginProcSet: texc.pro +%DVIPSParameters: dpi=600 +%DVIPSSource: TeX output 2006.07.17:1737 +%%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 @@ -29,22 +31,10 @@ definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr -1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 -1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx -0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx -sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ -rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp -gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B -/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ -/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ -A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy -get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} -ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp -fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 -{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add -chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ -1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} -forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn +1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S +/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy +setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask +restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A @@ -68,91 +58,300 @@ rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet -%%BeginProcSet: bbad153f.enc -% Thomas Esser, Dec 2002. public domain +%%BeginProcSet: cm-super-t2a.enc 0 0 +% This file is generated from `T2Auni.map' and `glyphlist.txt', `gl-other.txt' % -% Encoding for: -% cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9 +% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; +% LIGKERN quoteleft quoteleft =: quotedblleft ; +% LIGKERN quoteright quoteright =: quotedblright ; +% LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ; +% LIGKERN greater greater =: guillemotright ; +% LIGKERN f f =: ff ; f i =: fi ; f l =: fl ; ff i =: ffi ; ff l =: ffl ; +% +% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ; +% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ; +% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ; +% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ; +% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ; +% LIGKERN nine {} * ; * {} nine ; % -/TeXbbad153fEncoding [ -/minus /periodcentered /multiply /asteriskmath /divide /diamondmath -/plusminus /minusplus /circleplus /circleminus /circlemultiply -/circledivide /circledot /circlecopyrt /openbullet /bullet -/equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal -/greaterequal /precedesequal /followsequal /similar /approxequal -/propersubset /propersuperset /lessmuch /greatermuch /precedes /follows -/arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast -/arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup -/arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional -/prime /infinity /element /owner /triangle /triangleinv /negationslash -/mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur -/latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K -/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection -/unionmulti /logicaland /logicalor /turnstileleft /turnstileright -/floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright -/angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv -/backslash /wreathproduct /radical /coproduct /nabla /integral -/unionsq /intersectionsq /subsetsqequal /supersetsqequal /section -/dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/minus /periodcentered /multiply /asteriskmath /divide /diamondmath -/plusminus /minusplus /circleplus /circleminus /.notdef /.notdef -/circlemultiply /circledivide /circledot /circlecopyrt /openbullet -/bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset -/lessequal /greaterequal /precedesequal /followsequal /similar -/approxequal /propersubset /propersuperset /lessmuch /greatermuch -/precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/T2AEncoding [ +% 0x00 +/grave +/acute +/circumflex +/tilde +/dieresis +/hungarumlaut +/ring +/caron +/breve +/macron +/dotaccent +/cedilla +/ogonek +/uni04C0 +/angleleft +/angleright +% 0x10 +/quotedblleft +/quotedblright +/cyrflex +/dblgrave +/cyrbreve +/endash +/emdash.cyr % CYRILLIC EM DASH +/afii61664 +/perthousandzero % PERTHOUSAND ZERO +/dotlessi +/dotlessj +/ff +/fi +/fl +/ffi +/ffl +% 0x20 +/uni2423 +/exclam +/quotedbl +/numbersign +/dollar +/percent +/ampersand +/quoteright +/parenleft +/parenright +/asterisk +/plus +/comma +/hyphen +/period +/slash +% 0x30 +/zero +/one +/two +/three +/four +/five +/six +/seven +/eight +/nine +/colon +/semicolon +/less +/equal +/greater +/question +% 0x40 +/at +/A +/B +/C +/D +/E +/F +/G +/H +/I +/J +/K +/L +/M +/N +/O +% 0x50 +/P +/Q +/R +/S +/T +/U +/V +/W +/X +/Y +/Z +/bracketleft +/backslash +/bracketright +/asciicircum +/underscore +% 0x60 +/quoteleft +/a +/b +/c +/d +/e +/f +/g +/h +/i +/j +/k +/l +/m +/n +/o +% 0x70 +/p +/q +/r +/s +/t +/u +/v +/w +/x +/y +/z +/braceleft +/bar +/braceright +/asciitilde +/hyphen.alt % HANGING HYPHEN +% 0x80 +/afii10050 +/uni0492 +/afii10051 +/afii10060 +/uni04BA +/uni0496 +/uni0498 +/afii10058 +/afii10056 +/uni049A +/uni04A0 +/uni049C +/uni04D4 +/uni04A2 +/uni04A4 +/afii10054 +% 0x90 +/uni04E8 +/uni04AA +/afii10062 +/uni04AE +/uni04B0 +/uni04B2 +/afii10145 +/uni04B8 +/uni04B6 +/afii10053 +/uni04D8 +/afii10059 +/afii10023 +/afii61352 +/currency +/section +% 0xA0 +/afii10098 +/uni0493 +/afii10099 +/afii10108 +/uni04BB +/uni0497 +/uni0499 +/afii10106 +/afii10104 +/uni049B +/uni04A1 +/uni049D +/uni04D5 +/uni04A3 +/uni04A5 +/afii10102 +% 0xB0 +/uni04E9 +/uni04AB +/afii10110 +/uni04AF +/uni04B1 +/uni04B3 +/afii10193 +/uni04B9 +/uni04B7 +/afii10101 +/afii10846 +/afii10107 +/afii10071 +/quotedblbase +/guillemotleft.cyr +/guillemotright.cyr +% 0xC0 +/afii10017 +/afii10018 +/afii10019 +/afii10020 +/afii10021 +/afii10022 +/afii10024 +/afii10025 +/afii10026 +/afii10027 +/afii10028 +/afii10029 +/afii10030 +/afii10031 +/afii10032 +/afii10033 +% 0xD0 +/afii10034 +/afii10035 +/afii10036 +/afii10037 +/afii10038 +/afii10039 +/afii10040 +/afii10041 +/afii10042 +/afii10043 +/afii10044 +/afii10045 +/afii10046 +/afii10047 +/afii10048 +/afii10049 +% 0xE0 +/afii10065 +/afii10066 +/afii10067 +/afii10068 +/afii10069 +/afii10070 +/afii10072 +/afii10073 +/afii10074 +/afii10075 +/afii10076 +/afii10077 +/afii10078 +/afii10079 +/afii10080 +/afii10081 +% 0xF0 +/afii10082 +/afii10083 +/afii10084 +/afii10085 +/afii10086 +/afii10087 +/afii10088 +/afii10089 +/afii10090 +/afii10091 +/afii10092 +/afii10093 +/afii10094 +/afii10095 +/afii10096 +/afii10097 ] def %%EndProcSet -%%BeginProcSet: aae443f0.enc -% Thomas Esser, Dec 2002. public domain -% -% Encoding for: -% cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10 -% -/TeXaae443f0Encoding [ -/Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega -/alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa -/lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi -/omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf -/arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft -/arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle -/twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle -/sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash -/greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N -/O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow -/slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p -/q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector -/tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi -/.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta -/theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon -/phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef -/.notdef /.notdef /.notdef /.notdef /.notdef -] def - -%%EndProcSet -%%BeginProcSet: texps.pro +%%BeginProcSet: texps.pro 0 0 %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll @@ -189,10 +388,9 @@ /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 0 /.notdef put +dup 13 /circlecopyrt put readonly def /FontBBox{-30 -955 1185 779}readonly def -/UniqueID 5000818 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 @@ -226,6 +424,1058 @@ 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont +%%BeginFont: SFRM0800 +%!FontType1-1.0: SFRM0800 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich <vvv@vsu.ru>. +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecrm0800, tcrm0800, larm0800, lbrm0800, lcrm0800, rxrm0800. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Roman) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Medium) def +end readonly def +/FontName /SFRM0800 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-203 -320 1554 938}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6B55C6E47AD7A9A958A6E22E00FDD4D6492D53ADDC90ECD778346C06747 +57609FE8907DFFFED75E2CF963A64C7F72488F4A02372BE681E9BBF09A9CE5A9 +3894F6358C244FCD46C148F1EB60DE2137E6D3079D6AE03B3724F7D7BBA47BC4 +41C27FFFDFF9FB7B7738A8D88C27573A53E244723E07C995948DED2516B6044E +ADED62C496A56BC14483D307884467ADE985655A4712DD06ED00811F9A05BF9F +BF2AC66203817289FFB5BDCD0445293981AF6F55928C132E885ED009DE1B5FB0 +C230370EB5156A8B609E466F00F768F0A52ABCFBFCE3514C0FDDE31E601AD508 +2666AD26D9DB386B9FEC80AC197C9FE7447928C0C6A2858375F0A1D7AD3BE53C +9A926DDFBAC60D846783AA97CB86F804701BF53F7C4D18B925FD604F60231215 +EBDF4FAD73F2D13518E1901C3DA00ACE65647765106EFCA89D1CE1787EC5930A +CB162F5B9EAA313D307A0E184C13434C1BD022B99B5412C3C2CCB7E80D459D72 +6BD901DE4D3AB277B44856DA45D8E2155D76F424646B1BA2A4DD97877892544E +FDC803CBA09D705D43E883FDF9F79A6F8A3CEE49E2407F694112A0C8454F9289 +C328AFDD8890E2BB9C6AB0315D44440AA4F02E7DE2860008607D0237138D37F5 +E0A3F297B18B477AE21A280BFD3EB80E6AC595A0FFC1521A9A4A11FC2937DD74 +E0E81FFCF3EBC70EC3906FB4170A07926FECDEBC9BBCA5C4CA3CCFDDB392437E +B397A1B6F635A11085E9257B704C2493DCBB627AEB9DD147C72542E1B69F31E2 +A63866E965A1199F5BAD6C11DF3C2415B138E97EAE546C5FBD2819EF84822E71 +04E346196E4B796D7EBE41F2D952A20F347736433B140818D6124A14A8255758 +FF27AE2CE7928A38DCDA7488F5EFF44820F7BAFF46F01FB08E3BBFB5AC0E62AE +591050BF6E2E03F44DEDA8ADEBDE4C9DD2720E8BB2E7C89F80871A39CD4E9727 +784A87B911491BA13540746426543291BE73DA5FA01E47A5033DF15B5CFAEA9A +2FB4F86960E14829DCED39A2CDA20655EAE3D9A9FA3B75D97F81EBEBEC283DC8 +EFC417FDB1158C194B8C21EE962CAF2F3CEE9D5D3B7E0E068D8FB28434D54A22 +570A504018E35E5A5D1C6A8229A99A44D0C2556460DDC78775F03A6093BBFB42 +BCAA36262CCA0420EA3B963A5FD3753587DB2DF74C7E087631C219CD2FCECD1C +C91C552E195D2B9BF9896CC9853BE8714F7DB317EA3224199D021C57FB5F5020 +CDEDD97680DCC51FF73857F4DE131A37AF43FB1DF859AF41E9061111F3941D2B +D641B845836A57263ACB3A516326029734D7839347248D320852F5CCC677E953 +78A28E7EE1A472EB31BB93B946143A1ED8D930CF195D0445359AE31AE528FB13 +1D87EFEB0200CDBC35CAB95FEB55157A0115144EA5771B7639B4216AC1E9DE98 +AE6889CA0E236D265F815F8E6F6CFD416727119FDD7A16AD079A9D6269E3D47C +19623A9D31E27EB3689830029A77E8902838DC3B5C4F131C1D25A062672CD203 +4880F94B19FBAFCC9140BA35F54557DFBC3467DD4CE7F8000D71140AE1183D6E +D5C1D7BB98DB92519A8F57C668755A4A81F46A0C4A01F7BEC519652AFA5F3C85 +0C326082DA3A3003ACF66F2F79D42E2E0BA83FBE69DABD78E652C2F30BBE8FAC +323EF5A61C3C91A3A139F60B9020D1561D3EE22BBC33950B72719B354E67F57B +5F9EA0BBFADC0778035C26D33B1E958A5F53BBE99F6DCCF1D50321133EE1307F +8B58EE812475744CBD3C65762F194BAF8EF1405968330DBEFE8C3E172B5A8B48 +5A16A330F1A782BE7A11B64CA962A42E771F6773733744ABFED58E96F78C2E50 +23A96FA936D1071EBC6837AFBEEE6CCEFA7384F1616D325A4F1E267E79AD9FD6 +2A998F77DBA3A320DE1C232DE21D1C0B66CD9BFF71B8538459AC97D827C7F84B +66B6170F5272B7BA365964A12653F10A88E4A95E1716E3D1A202580A233574EB +2A2782F948787DC4FDE207F01D6D3B0C66F25E94F86F24A92A2602AFDB81E6D7 +CC034B232A0D74E8EFF35D7DB57AF27BA09A5F4C064B9BB83253A236A4D2864D +9B5B8FC933F97DADF735C6B7B778DC72CB1A1E42C71F16AAEA3274474B7B295C +1A0F09781A22DCC8B8EA7B18FD037257C110BDFD84304EEDA172A99BDDCDCBFC +3CFE4FB3E4D7D97069E9178CAD5205CF89589C565B8A2B647427475D16E6CD0F +CBA52E75B6516E19D7710CE3BCF2EE5A72718963EBE9CA74F3B0C9250C31EEDB +0736EFFA9A358EC45930779B7C9D69CF6BCB12D9C22F926E0F2D1C619E3BF64C +536F2D6E8E02476647E85C431CDD93F911D0A9AC867025B919C25AB8A2F999BF +8065FBEF2CAD38CE90C43D1908D5ED61CA4990F2B00074FD94A8B8862158C876 +6928604E5058FECC5E0F3040E33B3A028630AC0E2778C9F8B82591AA72971FF4 +C9F6D17EDD30DCA06F06577895783EA91A820A14D693E9391F6345EF715C5FAF +9982B447F2D5968DB14B3E8218F367505881414A43EBE15A0E494E11A2DF77B6 +00F65B9A7CBE85F9578FBA23B1A84BC329C53782F73CC58F848D679F04375B9C +FDC2C6A856666973F4594B6A9B2F03E11F3655959EEB4DDB3F7E7C0D6AACEF81 +F55C426E394175D4F7C895527B5C25240B5C3716E12A243C9BC54F4581C1D433 +65D2DC3E2476FF711265CAF4C37572FCB0D341ECCC7612DD60816E2359CE0FE3 +33FCA575AF040898840134B1E41216806B476A6F56A4614EDC35601E3AA6C0D7 +BAC635775A95703ECE3404FE13BB2DCF2B1E413DDEC853B3DC6D09D96C07FC93 +E96DBDED14F568946C078E41FF3A7C5A058192076D3D39705960D396E4C0A637 +397D08ABA6AECB50B75FE8B344D4237442FE1EE1671D327D3155C6C7E5D26CC5 +2AD6CF713CE61711E44C7592A4F88A8137188FFB9C981BA8C294958AC2048F22 +F444FB867F7FC0A39D60BE6CC01F861FE10D6693B1020F5B39E3958EFD88EC7C +9BF7316F3F299316809A62AE554D1874EA8F9CC95F26FFEB4EB4E5E0A922FF89 +60E5F9713407B087EAB33A3F768CD5A6F63A6239734C4B7E5AC5E9D63A3107AC +C1BA676430F0C5C492189D0393409CDCDA952861B3446D798258C632E7268213 +8EF5BCB006353594BBD7BE9385F5978CDA7A13B531AE44224664FAA4E23357B1 +0812E2B8DD05845147DF0967B287FBFE762B859879666549FC7650A0B973D413 +4D0136CA2DE0015CB0206A1CE8C80875B760A3F8FDEA267F6C015FC8EA05AB22 +6B2FDF7D9E62685CD4005000132921E636E9F3805372A2BE42F3D6F504A691CF +A9BC37EAEFBAA3F57514891FC67761C0F2A1DD706030BF20D49714B3BAC04612 +25359FAE96C1B4AC7858B02D0ADCABCECC56BE5767F216185055E36717092CA7 +8B984ADD891A991B2009B4DD384A4C293D71261F056DD1E351307D32EC613F3F +A299289B28EA48B83A1FD1E87AA060CEA042816BA7B43F3CC04D9613309C5A43 +E0A3FBA8A2871EC62679EDF0E9BAF8FC3B56C5E37E69EDFEBB6B24D65132203A +934884BAA87B0D5CCD3353432FAD28C3104E28F1B40621DC4981C49010267477 +63D2683A51D3AF2D6DA8D68E8C01DB68EFD8918344FE3D71BD64E59530B4C5C8 +5636E79B44E6346BE0AC571C31CA133567D66FE5A249CA1F398E66944DC2DF54 +5D0A6C526B1757B2A33BFE7C2212F1D8DB22470CC69C301094C3CC38998B6719 +E0EA158B8AA257AA5481C600B3B2B80B78914E1D232EC35DCC8588CDC4486639 +9877B3DDF7350A2D1E3D84C87C7BF119B71A4BA78303623728A8EDE4273BFF14 +BB7E08D5D985DDAE015BBCB27DC4189230B5771E456510B2AA4A5F5226E2AED0 +AC4101D0EF51C36B43FAFDB3135590951DAC29A65D9ECD9E12114C8E8AE1FF43 +37F8F8F140A361A9FD262DF82DD5E036FA36A2FCB2966E603304077B139B5F18 +1FF4FB2FAB3F70812510AC23802A8039FAAC38379F28EBA7D7C1162573F54297 +DEB65860CE160FC724A35D44D5C5419019CDED21DA0240C8E58FC086993242A8 +F3E97D7E71C8F6C3940B254C9585AFC8392A0F3AD37C946DE09D0FACFE96A27A +9F47B1BD06E56E03019A715C990C07D59B99FFC4C87D544B17E2A1673FD790F8 +C597FDDAAD58CF3E9F892D369B6F12BAD38D2BD275F52D2032CCA601F9616170 +C9F2F765BCD98F4483FE0BF0141BBD66BF824489624F7D704DC64C8FD286E358 +4BA8F9B3C73D34077A762913DD926E05A517978A13D9B3A0E8776D9D14B16CCC +772B792396A683BF9E6D882110D14D8CCA6B5D4ADC3474D0497793CD7A345633 +40F4C5D18E8E035185C3A6B25CBD51A7811E110C733FD4AC67CC6B4D451E2F8C +15F50D7E6BE0C38A556DA239A35712BE7FB03EC02F14F045C51AEDC2771321F8 +DC37266F6E98335E02FB736A5DEA95A929C10BA325299F3F8B3231A8FA2BB6F2 +648779D5FAB6F4C068C0F92E18ACECE3210433FD33A74B2AB42E0E55627C5ED7 +6A531AF2322A19A6C4BCE5D714E2ED794E4F789CFE3F18C589F8D5969A7E8A80 +10DE1F1D17CAFE9261EAB031DC3A6C7481AB5B7E8EDCB96BD0A129E45E3151C0 +68C4A3466D34DF751FDBEB2B123B0269F5D58746AD3511F899AD73546D90FF3C +889FA0C12535CF9BF81ED5D22C7D4488AB58231EDAD7FD489E95ED64025A6E56 +9079B19F4DAE58F4A81959C7F00B0C8DC36AAF162BA35CAD61832DB7FD0E3C47 +6FEF3616C3EDE4949F89257B8BC394FFB4123025C83DAAB2E41CA448F1A2A7AB +9F9C16115A546B05EF3E68182DCEA45E5BCA3828D480A07DFDF715B0AA065007 +7436CF8E9C7AD5CC2CB3A323908F04EF6C58A3EC9830DA6008CFCAECFCA51597 +9287566B045913228B9AF937E995DE25B164F92ECE2B20CA39C37DE8DFA27027 +48557459EB0ACDA237C2820AC7D469DFB04BE8629E396F7AA969DB6D8A7A8727 +A4ADF741F0A0CE065EA0CAA4C01A872FEA4D2366A41F749A4A0F3DBA016E91B0 +437AA1FFFB75C1502F623E4865D842640BBDA869DC79D81384246D8C9C333263 +ADAEADFBD4B2909199F3FDDF8A406D54E730263FBED4CF2B0DC261F7600746F7 +1F3104A0BF7795EE5AD69C09BB0E65DA90A6EAACC67DF5835A1564B7B8E7BE98 +428D5D83FFA1C9F60AD9B71E44E5D1F0F33BDAFB33725FFD2BFF11380DB62D8E +F40B50A4BC239A64B2BBA2850B923872199FA302572EECC7AD678C17BABBF100 +3A76077C2F2C646FEE56CA4C83717D5F912782D18DBB716F848DDA5CDE379CFA +A4246F698186DF6558A7D73A1A3115508AE417718F8E96EBE70EAFC48FFE9F6B +AD4E45069E37ABC2B016D44EB1D7C5E2B352E3D552B3DE731DCB114ECEB901FF +7212B8EF53ED117AC42C40E13EAD24FF248D6E1D4489388506EB42D43FFD22D0 +69C017D667BB9A7801E03AD41CD762C34A2D2D294D50C9511CE4AEAB1E4868B8 +F192141752BDD0DF44B76E01404DF023E59BB17F002EA5001C5F0026D1B964B9 +A39EBD2C0345683C7598991B7971AD959C8114374E49BF0E8147397C65FBEF84 +3969219FE11DC103C8A473FD7BCA303E026431BC89297BB7E463A1AC0DA1339B +26A213AD5635DC4274EC6E0EBF2F3DCE3172A31E9E8B0E8F028A09EF4454C3A8 +A2039CA50A868AE11D05F5D4C08C461346EFAA3A716151F6E7C12DBF7CE8DF3F +CC1E436036A002B9839348ECE1A1643925A919DDA56F30DCF88F5999DBB222FB +502BF42DEFE71EE90CF70EF4A2F176691D987177B4ACD7F70E20616F63B60836 +670B842013D42771E0482BEFB1750AF50DC5A509E50078B49AB90AF028658E67 +0A48BCDAE45C2EDF35C92C4A5E96679AB95ABF8B013698ACE11CABC3E81563C7 +BD442DBA7B5AE87EEC9585C1DD2DF76F3ECD59C0E937396599CCEC208E1D791F +330A89AEA2888BC36C94595CA615CB84755194506AC7A83AD19F7F19B58FBC36 +DA6EF5A42E268B80F6B6425373644C10714EEFDD6ABE83B981B1A28CD4CBF1BB +3D95A7B4F265303970278496B58FB9D855EC18AE2A2783A9B6A04D651FAD2DBC +264C5528CAAC1CC02764D6C138FAD877C8819C937980087C603273FD3BA5E383 +0CF794C8A21BD43EC2C275EEA8847678BF001B4794A52F7867C683D88F1E0541 +6088FE17CE3764D4B737D0DB9A5DCB66DF0F65EF55030C2CDFCB9D1D32F10757 +E7D4C6BF4B370BEC69C7EB84E9764345E0AC515004CF15320E474D48E58E0D11 +05BECDAF170FC211987093310CB0E76F4BC6D524397F787290D7FF8C6777057D +96CFB3D350CEBEC3F5C9C4AEE1C987556F5DAFB74B28726C5F214187552576BF +80A50BB8D3E118A48D07852E2B94339C5E0220FB8FDE941E8D74793648762A85 +120D97E46E70E403CA4324D3B14BEF58BB62086217DC4B458BD70438009C4FFF +4F67D4B68E9063DE5A12CBA6053E07838BA7E80EBD64092A555214F34411F968 +716E4F331166795ACC5DCB27EC72DE470B6199C520CD0A5FE74E649567B4255E +E18A915ABD4070E7C2A9F04C4DD5A9ED0D90124905E2515A3A522C2B09385BB1 +2AA42E87FD05BF715F47EBE8CD44F1FB810CE30F5A9149A77CF01347412F127C +C4E8432018559C0757C1ED0C5A1B5B3D53FBA5F534BB79BE22811CD7BAFF119E +F9DA7A6099E851E6312F5475669445A71FC40FC02BA0C651AF60E24140F72BE6 +15EEEF43E52454E7251BE2E0950E313AFF4BF6EE7EE405A09CF4893F756A35D6 +E9E687F69754A4FF7D6CFD5DA7A975FE3D85D758C54FD237547FF5816D46A9E4 +6BE339A32316087C7A7248392C8F8EC2D6F3E65C9F6BC48A4A4FA660526A6060 +944E43538A977C94968E61B67735D6B9D9782950B53AA7285727B0FCAFDF971C +4858BB002CDC644D4CCB2DC159EBDB6463B89101CDAD53E859EBDFE766B69B44 +8D51EBFAAFF141EE43367B2619CEABE1E9DF4262D5A5B92337009C13E8ABAAC1 +9350DE4CD0EF6309A8BB7F6E7846D73CFB02F1EB12E99D79F03FFA5B36CEF1F2 +3E2B38306DB5A76F1751EB37415182F40F523BC8373E9632DDC33A3845B6086C +41EBDADCCF9470B9A1A88679B764D82076C95BF61AA5E528F1FEB2954197D787 +E04A8BD482BEED92658B5C3580A6C8CF71B595868C28507F74C4AB27AA73050F +486B1F993002C707022951A73024B35D3C26129CB619B507577B90DF7A5E7B75 +AFE0E6F6982403D933863C32A326191A8CEDCFB195416FBEEA99D3773D2B6C47 +B1E99BB1A14514BD26F041E5D568AE5844558FC1C5B080C962D5D7BE9C836415 +B17059290C2404C78744582EEF247AD08B9EA98BAE5792511B0B0B2D33F0D37A +F96633EB1DE8AC98F91DF932DDED7A2F0320E1B6435230C8D6541D1D3A02FFCD +0916EA409A82FF79821365C7DBD28DDB39110C818F911E727EEE7B9EAC17AB85 +B1CF1EEC87BCB1F24646286CB6EF9356949ED5DA9C739D62C204556EA7B188AB +E3C8FF2810F37F0650F94223C4C5B485E3E420F0F6D841F7B6421C735A676809 +003E6D283D46B9487E82B2809B3DFD7CD9936C49BFBB74AF4DFBC37DE98AFFDD +E3815F5E4EEA8D2295EB84AB91522AD18FE2678DD9CE727EBA8B1474730FD83A +6927E9C86737AB82D182E9F0D61467DFC393BD3E7D1B6A9D5A0C7E7D959D3AA6 +1032D599D0582A2C89212832C6F0BA4D2F9316E80D3A72025A19848C2EE2DDF6 +A46CB96754DD6278AE4F45B40608B5B10AE8CF0E540B39DFFBBC8A0BF42461DD +5124AFB033C28C50E44029DC4365DC1D1509734C53F08258868624137187C94E +4665973A0B63A3E9A84C6DE68BB93B63EEB14E67D089193205D01792BCE5BDF0 +FBE0A0B014B4803B9F40377004955165076E6C293968556CC64556EC5DFA5DE3 +268925E472C1970DBAC2932B59607780612E3E67F979E9E43E8205E94B130DBB +2878D14C301A3CB6358559FE1ACBAD8DCC77C25BBBB53FF4363FC14A52EEC779 +4366F6F4FA2F411720469953DE4AEBAB2412EE03ADDFD883DC48B8A2E605AB55 +D9802B609A3F376AD9409DE3DA98910E662EB9EC3503C9F4D36F5639AADD67B3 +D33126389786CF1ABFB5DDD867C907DFB9EB86E852C109F5D74891C295A21DB1 +F239FA7504658B3960F98A4F749DB082D8640412C65E7F51C2D2114747EB3CF1 +87BD9B12730BB9EFDD4846E7627C4E51D9D95D8330F083721AF585C51796B885 +176476E3C46F4B4C4022093CE906E54F467864690F9FF4633E307B0AE4B4D3BA +AA326A787AE941EA13F26AFBDB79DC3DE6C212FBDA727DDC0F67D72C6D9F03AA +07329268F441F7B61230735CA8CDE44B9E0B0C4EDE1E7B3A8F24532F9B5B95B4 +FF6AD19614EB0F5846C3F39584F07395BDF0E94BDBA3E596943D4601767AC5FF +37E8A17D3B8FBC8E3A528977340401CCCFA08C2E7C903AE04590716B2B87C777 +AC73621B0CEE8D52BAE71F9B21E8B6FF7D706B3F8611EE3DBCA777AC4DD1A732 +29492316AF4A6179CA9B40078FA6D29085C9FD62AF625845BE576A8AE7707CC0 +109E907CCC13C08A5818D5A1793EB14070D0F21DACCBFEDD1373B405CEB46BE1 +1D5F9650C0F66BB492F0B4303966A802421547922E347AE7B86078D700614732 +F3FBAFE78126A83AA0054F2FCBFD9BA0526D38D2B62A63183AEFBB12601CDB62 +7AEFC03821B866DE2EEF671E9BB731D34333CA08BD3B59ABD343F57D447FBA3E +2E33939F289D74ACC66238E1670A9AFF90F36EA52B43BF83F3887DF04892347A +A30E30E0439AD51CA05FE182548BAC9A4E4779842E107AF605DA87B9B8EC5D78 +80A8BBC24B7A3CB1A0FF6AC6CF91D1438FCFF493D16C767057A1527179E6516F +2DA2F6F1EF7034B0B105989D2306690E731005702E16C267BAA850D9D9F47299 +71049E0713C1259E4452C67F4597929BD1F886EE2C401CAE4797DBBA90C6EE57 +61B51B33E1D3575B231CE23085742109B87E6267D6C72AE747100DEDE157E1E7 +6E88462A7B6EF995DC233FBDBC1AECD25C8320E8D6C7D9F0D92F0CC81BEBB8EC +36E7D75DD3D914D8665C70AE06F959153B40F83362570423EED2346532C37EE4 +D84080D073BC484C694C9E6AF299409D5DA769D152ED7195DEE9EA5858F641B9 +B205E9C04B52183462F00ABF0860E598A169B0DBF10EC37AE2049EA3D7D646DB +B6357102E2678F49A9828EEDB4E916F2E43A1420D8487C36611A9C173F501978 +063D5CB2BF0F32BA27284A5C2AAA6CCD4045199E1E658B3F8256A73D24FBFD85 +DCA2D990480AF3E10E463F32FAFD38D3EDDA08253115EF6AE4BB32AF9FDA5D89 +D8FDB4F30174DB0BE99A9EEDDC6102FECAE58D200A1F6839758EAB6FAB286A35 +24FCFB9E4119A186341CFB1AA8E3E68BF3AA81126A7DF90D0FA6D94A42165F8C +F0EBE41A6528A38D30855606E5038BD8E414F8FADACFD56F1858BD6A32858601 +7AD53A43E30046E876CF2AE38B7D280A9CE82E0F36283EB997E12511E74E53F6 +46497DB76ACB11DCFF1014DE5BEABB6133D42B6866ED2CAB51089E2AF32BFA54 +8FAA2DCD12570443FCD3BDC6D53520404E753034519C81A3E84C3E122D4CC1A9 +0AA2AE164475BE0E2AD6661334764F71C20FEC887BD8EF2B7271A67FA2F7EB9F +39255EEB4D22E5D7256DED2876CA7F7DF9CA683D412185E385437EDFDF32AE56 +3386A8DA8DB8A4CD28FB8076EA389AE2391E44BF680FAE50DF5E2EEAAAEAFE0A +2813A3537D1AD9DDCF50F0EF1CC8F8CABD064949F7DE5218BD668A0B46999BB1 +9AA4AAFB14003647CDFD6EF5ADB142F14D1A604F7E99414FCE97D03C016DAF74 +2B7C96ABE807EC5FDC5BC5C6B0CDCE45381BB160ABF82633F4C4B1E7C0B95AC1 +2570EA999477C368E35BB4BA0AD6FA78D3942107095FD062D11B7F47E7A4CB7E +F71F78BC09019DAAF0AFF6D80777EC6E0EBF2F3DCE3172A31E9E8B0E8DACA7BB +04D5A74A7A854E6F38BE2FD18650F9E4E501F0ECD4C674EF110B5E03A723CD62 +BD6A5358809C15CDC64BE255F808AD2A9BFEC49CD4CA623943F9D50078D11D6C +02F53F06905AB2BE3AFB8573FC804919E0EE4DCB39A498F35C5E3E94310F96B1 +8F190A1945C40D9AC30E4989EAEF8B4BB1CBB268FF2B28C1A77C92F2D29C78C5 +011191AAA5654639F0697807C78317A9408FA4D85B5B5386FF5D783A91D9202F +D513BF1821A66A17A74FB8E90B43C59F73DF237F7522F402A1318C4451865DAA +080162D25EB096A304B09FF6EB0F09A6759AB4016F34A84B9DBC034DD02A4AF6 +F20A3E1C9B59168843DCD4EA64FA10F2C451F1208BBC4B45150CC89090410289 +B7ACB44FE75ACBFDEE0097F82D37ABD2372CDC3559CAE8B6CB3A8CAF71B74574 +3AFAD713AD907BD89BE20D3890376550DABF8BD6E51017DB5FAA8A1AA52DAC77 +F76702320FA5C140B10E79BF83046010334476F8DE1DB73C290536312DAA72F7 +FDE1FFC42A8E20781E3A8A16C208878786250A2A5B0954E529BBBE321F440F8C +BDF2B8EFA26F820DBC1D7C6F0844A379C61C3A67973E2F4253A1F1A0DFCFAD4D +ACEDE777F2D2F7A733B3C4BBFE15A96C8D5ADCE25EF35156AB35544DB9AD54B6 +56E0FFE2322734D19C6ED66639946A5655D4AD9DF6BCF9D32438D63CEEF3B544 +E7D1FC006E8C4C3F2D155B13792823471BF6CB9B9C9B512A591D6BBD2DBA76A5 +BDA3A7FC8A9EB136AD0292B7A2D04B027F9895AF10705A7057302A95FD4FDC69 +5BD0ED514DDEE8A97443E951A14349B9684AB09A0216CA7EB282702007937C5F +C3B4915B96C0735F911FFFA39DB14BFCE5A17B2D1F1F6FE2968EA102843A33C4 +1A7ED4ACFCD87501895B4C12F6FF094944ACDA44DC93F0101BE268FFDFA70393 +8403CAEB1B1B2F9F239D53F6C5A70960A982D2FFD0E9015BAC8C6E053E1FFB29 +AB077D7C9C30DDC155FF78D7983E522685DFD13A9798F89A254547D0EA504FE8 +DD1550B21E3C8334DDB53A02CA4D48A609AD53CA578EAF162A453176DFBF3D57 +D7A6A1AE1DA613DD527C875A9B507D65A69195472A36DE2F8BFC733C09C2D2E6 +0E95DC0DDE5183DAA9D884A8798CEF1B25F77F2142710DE7B71FA982355B9673 +70A7D562FB29845025DE74A799168EDC8C3FE6A833E4F1138F534C15749E6448 +A0F7AE66099CEF20748BCE485A83A4EEC159C8DADC40A4C224C18346967ED516 +DDA389645D0597B03E2E467338DD786580B7F92E5D4AC255A4B6F12369BE1FB2 +7F0334405838C68FF0150A4059B0C6F18FECC7E5739AAC9EE1D540A4599C2C81 +1F1ED8DCDC2085F52A2D9587EDD34089D289A05C01E31D77A04A784DC764FF7D +5C7E8DD9DB7134F8CB8CE47391413F5D0E95D7FDF91A1C3D6D6A6377D9579857 +34A354911091A94ED990FB35ECDD21C3CCBE906FABAB6A8B86A55F2C22D9BCF0 +FA25B4200DFDD137447D344418740C7ECEC15E46A1E4117F05362A63C5894A93 +6090BE946598A7B75209AA4DB14E2B31021616D0CBE2AB0CC375A64D25DD775F +3281803F22BB0E250316916B563A6255648CA76FCB18087B9B5D4A33135AD0A7 +55FF956E5992A758A1FCAC3511A660F947EAE0662B629AB08E4B6E6F50966B57 +1D008A6354ED03FCC0229B82C90E71132EAEDA24FFEA7A4A1C1C422D565231E3 +FE9BE4A9B67E3D3B0831F0CE66CE8EE2BFE7B05B16CE039B8D3289187A6C9C19 +310EFC5E36BC61F687DAAA15BFEFDBC9937241C42219CD3616A5D11228208CC8 +7D5A04AD6C137F45365AF1CDBAD223910BD35BD2EB58AE599692D289182E8366 +7B0969D391FA8209D950AE914E3C26F50676D14A201A7943854EDD7F52833E7F +F56008284B979CEC35A117AFCF73F21E8C3591B38A540A0C4E8BD600D387A958 +8432E92AAA4B658651C5705B18F3F9E8FB440DDC598FB62B1FEA0094A55B4E45 +C53253484E7E91716700FD203DAF0FA1FC7A8F697A832BD25B063B730B9880BF +55333A6CE01F971CC5F7868A56ADCC26A319C9BB6A34CDF5E3387FC96653449E +E9722363DF0EE41B4D100FBF6D005EA0771D97F082C6EDE2BD31BFD64849832A +EC79257182DABEAC97904055A36CDCD11C026236C919FB9BBBC657E12E012A16 +98F904876922AF7804B9129CF2E8B1DE8F7AF1318DFBFCC20D8DC0B1604ACBD1 +63617B77D65D423ECCE8F6BEFACDB7133CC76213C0CCB254551EC5656ABD621A +93FEE100A012CE9760134D9D871BD38ACC4F3B3E50CE7B5DCCEE39982DCD39C2 +CAB8666DD40307F715DB7141EBEF90FF45C1568270892DA8E03F79D065067089 +A0100AF38CF7F85524EB9327D1B78219BA61C70B8A6E3055D5E09CDA43120DDD +426201D85654CEDB93BF85EED01AD9608AA5FD4F91EB43E2BA60664D2B3CFF2D +A641C65D559F045FC941E58159AD71A3EA6E5483E906ACBC70DD95CAF3E5AC0E +7921BE5815AFE6F78B047B69B01EDD51BDE9E852337EEB911B60BDCB54CDBEE9 +EFF00404DAFBAB588BB2761DDAC94C969BF0ABDA7CB9384161F986EA6F86EB1A +9796A0A60B69D92DDBAC1814E86EACD5FB6D70BFFA48734A112325C1A897E66E +70C4948FCBEB0923B97E2BB3D7FDDB44CBD2E46A288D9C33E400B1AF6CA3E3CD +BD4B895C63BEB7A0984388833E625269C99CD4FC0A790ED8BD50E7E64FE8209F +213BD7DE9CF746B2CB1440EAF9CD52B42F144B0017205DB99874CD62A1201224 +A6D8A3CADDF6758764EA8D08BF2738665ED1EA4736EDE4F70D29CB5478EB9745 +5F72F059602D8B973915A7C1F786DCCB6057256197D5794AB9EA2FEC41F92373 +7AF822EC3FE0391CD4458C278E08C1B92F418619E7390034503C71ACAD5790A4 +F95E540442693624FC17FEE33307AEC932F59D55EBEA90EA77370AA8F4036F1F +DEAA348233939F5607EF930D1492D31A8CD0151DCB3F2E5E9F3E62E1C35CF9F3 +5CE5CE88D17D4C36039AA6FCDC3889AB0112AABDB6CD26559BB8ADE544590F53 +347543911BD163518B55DD16A675565CF5D7D8FCFD3FE4F4BD5FE326BD8D582B +84B706E20415743D0DF6AD4178462197A88C1E113B90E82875230FFC3D39815E +541D394C7F082C8EF4D86D0A690F1E74C8D54A376C3995D0B3DCFDE691BC8842 +17598B64FDE8F8532F766B7C6A9B3D936216D3956B620507F47C18A5FE2A0A25 +D3BC9B76D241C6709E4877F9DDEA53717146AFE90ECACEC165897D8B62368913 +5A5537A585EF6A8A8FE7596CF2FC56D4FCE859643E2812ED117912BAF8525989 +CCFDBC9C202D88F6BA2845DFF2C1C1C9D9828F903A1E8CE2D951739BB8D026A5 +936720B633FAB3ED412C719A499C1047C6744CB0892425DD60AFD01BDADD8C7D +A24C22FC651EF3BAF2B8F2B508D1F2766519D340C1D0355E7F1B35DBBA430894 +6CAF8A0C46F2FA9C717122B0337EC089B991F4C6A8A57CAB93CE582C78D45CE0 +4A2141D8F088B8FAE6346EA8ADB8E2490CB460292AE0EBE73447B9970705FF8A +83B18986FF5B00FE98C28A090CA9326D2B50BC8CAC89359C4B7F903874E1565B +380CFC3F7C0B54BADC8412987114A59F9150D97CBA104445F674E322693F54A2 +B9A0A8C6E372580349F62493707EEC78F2599944404B7B0B79A979C28CAA156C +45671FB5B4F0460B13971D1CFA93D523E09977B2F9A3E312687B3BFA6DA70D7B +AF2BC5ECE2C1B198297E770D56F2D294CCE9815E786B7812BA06DC7D6D23E570 +9062979D1E3CEE6C21EA9663977FAD359575B9FFCE754572251698C73D2F79DB +E5829B25FD7977D644213D14B429F3794F213661F2D540CFDD8E485757694026 +0D69B3D22D9CDB0E7D6172EC63B0420817803DD790567258E34B481428336BB8 +8BFA0047BFFC49FE05B87FF208E0CE33921093F6584A826FC240B1C09BD5F86A +B267E5081D8792F7B595A923E703F053C1379F4479EAFE8298CE6525E588CD80 +C2CE885D80A5FA021D82019BD818FD2B3A23BD832382909C04C816C7281A6C34 +F6E4CB1B8533911531E5A78BA298E6F2CFA64D8635BC8BA99BE306A2FE66F68D +BE8367DA9CDD98220835DBC6AABB15EEC62319968B96989AD1803EA201601BA9 +63414EBE683208E5BAA9164DD4A185DF4DDD6F99441DADD217940B20CBD8405E +14009AFBB533EBEE1A84A1CC16ACB7092B8A67802E7057E6E943CE6E928BE352 +1024C4E4EE397DEF71DE6E44FDA017315077ACBD4059377935789BFFDB8444B6 +560E8F1540F4D60638A1B6AC0E3EBD9F7300F14D37179C411309FFFD39A68730 +3EE12F67EAB031DC3A6C7481AB5B7E8EDCB96F2F1C815196CB981CD9E774C89E +A5F5C6FE10406CEC405D7C9C636559B949E8EC26D42DCC883F4C98E8F1421D27 +E364F998698F5EF8153E9BDBFE859BFD0309F63FC38328AC14A974D380750414 +1E681F461DD52B50B47843EECE9B0D611D1417541EA6139091305BA7FBD8764F +3B8165F1D5BEE6EA025C8CE694EC1013EC7DA9906D6FE6BF97BC5E5DF7BA4E33 +07DD612C811D1F5EF4154E8517C9A6D1ADC46D04C670733B2C23FCEA7522156E +606E82C845394F756338384568830D74860E6F5DD9D2BFAE8C95BEACB5EB2C35 +151CBF5B4CEB8CFC307FE6B9688648C5D0FAC55A6E44BB517A2A46C308B15A58 +DB52D07D265C7C3E543008979A1C2B658D0FC9A088BC621561E6B322A2E3B359 +ED857F6E0865F7F174EBDE802A3E06D80034921111DDA60783D93F3D614565D4 +27CCD0DA4972CAA82B3BAF2492765568DF45E747C960CA867B2E61628FA5C021 +6748129E8EA2E2C0E9C5178533B46ED0C393645BD2A7E6A8D60F51DFCDDA6EBC +C6E808C26B9F11A2703F22C147175154CDBE30E4846980EC5C122E5C62E41C5A +37A6A184F781387785659D5749B03DFEE967A577C3029DA91CDD158284395277 +753F54F06B9F0575B401A1E45CAE9D7CBDD92563CBDA134FBD216D3ECEB60359 +676B3D5E37F6B17ACE851965E554349F4D724F0D03DFE331519283579B2C564F +6AD4B474718963EB8518DC88DF321590964525BDDB65D09D387A6859BB4B5754 +D6AD19A3D5CBFB3ABF8FA0A6B188786814127E692F78AEF3018B399D402AE7DB +2B5F5DF76EC7B0BFD28142BFC5658A0F18579FA9E2976F685A4FEA2FFED40032 +E5385748A6AB1B4B78F117B96D7FF4F776A87F5EB2D258C0C5C8FF044C5D51EE +944BD226D4263EEA7DFAF3BE09E104E15E8F50FD61EFD84E2F7BE36AFC600D90 +AA4AB24C8D70D7DD605CF2D6CAC857EF9039E0E40D94FC1EA50094338BB87DDA +95EE2C2CB3EE5241C75A3E484F89E43ED060DBE2C40BC1316BC6EEB5C03D87CD +0D47132C98C92112710CC7E4C777AD410D4FE76E8C19205BF20DCDDF2638DE42 +7873EFE74BD32E6F175E2041EA03E2F4883F2FC1150C71BBBE6ABA94387BC6A7 +A1493EA767EEC302D5FA50C4F9AA8DE190836B04F5A5A1C15373DA2417F560AA +D8F7A0F321E2AF047D326D9E8235BA1EEC1B49E10222B18281C85D674A07B0FC +1EC0418A953C5ECD1140F15A6CC35994BD493853D06D6B24303BEEFB9B13358C +49F992C7BAD1CA1B67D1E455A4D8FEF844FF846625D4B998C7A49EFC9BA7B9CF +C0F091D72980787CCACC9A300CC8C57A473B513D0547FD7753572D062A4F3306 +5C6855B4119BDD6B39E62FFA97EDD64670B853F37DBC2067EC814CC8EAF00E82 +A18E979900E45B554F6167ECC9FB3ABAD8AED202BDBC66750C0E1A7B078B3884 +F6EBC2F9C6B78BB2E238C84CE373C46F6B8D65DCB198028942FE2DEA69DF8236 +B7A0D87D4A147C8F6CAF3FF7C69B5883AD5ED8C90B5F8881BDD5C8B919F85B14 +ACC7F679B5E0663DE8B2FDAADC9C7C58A544F9B7B02C4AF59DE093BE7325B646 +D3235BC74A261844D5693B5B4D51E4F77D6F54DCBE33B54E85858C66967652BD +943BDBF66C0D6F1E120F630EC8D94DB19D986464CF1216850D9A2805A7B0A3BD +AD4296CEC91CE68FA4C154F2787DF155909FD15CD543C9E77FECB880DC544F69 +02887B4732C0DFF4F888CA1841FA3BE110DF05375A73B359AA659C0A03155636 +10FE6C3304E8FA02762E70BDD5A0248929CD231FA6F6DBF66EED768D77B63FA5 +EBCBC8635DCF6B1D57E13FFE99DEBD32B4F79A0245F7CFFE269A9019005B3147 +95B74CF2961F9A3134794C9DA6D1038DE6B43480FB5EE2544529C26ED6D62B24 +4FAF3CB42599EEDBC5B3019F45B91AEF08090DC5F5C74C085E02E341AD46C463 +BEF42E1508FD510807529017A115D3F7DFF7BDA21C9212688E3157241E5675EA +37BA5FECC46CC6CAE184B57FF286283A4A8816304D4D372D68B5C88A1927266A +C2D70049EA6B3ECFF6A9570EE528D5DAD8DE7FAE0570A198165D6103ABD39931 +4AE1462B55AE6781011A7F8DD8C009350DF5A0B1F1F8416FDD6FBE4C4CCC091A +D43E75946819F8F8F6979CEB210E41CD54E49CC3D05EEAD310D5497F6B79F694 +C12E2294B0FC893AC816C50817B81EEDEF8A16CC709242C8DB9FCEBFB0092E7C +C538FD53EEADFA0A7599C2FD99C7ED08E6DC49562502D9F906C7334F8CDD2106 +0D35F24B66D6EA6E9A9448041CA120B5BBD8541D72B9E4FB6B098A6974BF3AFB +78928BC794C012540C98EAC425179A193AFD7293BC86B961BD9462105BC864CE +15BF8CD37D9B695DAE2AD24C779823B3B68CB259F0DBBA44091627F82A2107ED +318919D17A6691E51A64CD6A4724202B676BEF8AC977C3D98F22E80F8F2A44AD +2A69E71605A02036FA8CC986D7978D5385EB3E98013BFAF63A4FD761EE98BDE0 +07F27329ED943F2612F7CB94A0D0218F3735DAAE8FDAD87E1DCC3CDA3AD6350E +BC037FFE4E5C435BBBB77BB00E9A42DF896943603FCB1F5029F7896994AF242E +4F815C06D0429017BDB5C63EF2880E068D61F2B88A0B988C95C23E250FAB1A65 +B10806DB00191FA15D133E43AC34CCDF00093EBC7666B6C313D91E792C2F57F8 +E5E3DF6D0AB7F073F2125CCA53E95B0432ED1D2D1E7D8E9E31A9F31E61867385 +CCC3EABC2E11AA696B307C0F917BEB0792EF74A8EDC509992BB43647973FE7E8 +EC1149BD86C9DE3F669EC1E43EE7F6550079955C6F050BFCF9BAAB9E7E886635 +BB25D2A1F860F99494554390A481B2FAB03F71564EF9483CF38C1F6ECCDB714B +8C7203ECC022D039ECA0E56DCC537CEDF368A8A589519566F2CF2EE2D2813671 +92AC38361E21F854ADE2B3C9339C7F2D5D5F1D4EC0051F70FA03DD920776126E +CE12840EE7E96F7C530602B5B8758C87D68C6556A313F6633C69F00DE7B605CD +2D29851B1DFF7B1977BFCAC4AF623DA5F51C801F28FF85B65AA64D0A0F0FCD32 +2693F94BD5B0C148358155098914090C94E75BF46534F22A0A879A6E0FB14291 +6EB455639AB72C00B2748BF2934AA97CFBE378C0EA28694A1F17110415FB578D +42458CA22E8CB9BAD86DC43503650971AA39EB97A6DF077449CCC2E54301ACB0 +3240C471B5F320965C5833822130BB667821A43528A4722E9ED04606324C1A57 +E233C21AB0545A4870EB8BD3975ABDE7082BD80EF4E68C091050DAB6DB518E52 +7024D7882EB6EB1D995CC1D43CC2A8C9BBB207D833D4AA8A26978E30D10F40F2 +7217A3DC389C4E4502F242872B2A0EAE2EF5B837AB2374CAF3D149C28E917935 +F900BCB267F265A4E0DDCFFC231A5483AB4716AF2F161714DFB69589777AAD8A +E5FFD07CDB692AB573379B1C2BDFB23580C36AE9665A682B3E70A0BD79B271CE +5EF9EC4396FB40835264156CBE6E45181D681F68882673E4226C6B8071F790AA +B877DDBCD883B765526C0DB03090391D0541318D849C05B43B0024BF4E4D11A3 +B4EF5BB7493CAA62376514740EA9B262DF772D45540E911E023E9DE938422898 +0FE79303FA08B26C706B7182E0ECECA6F1A5F28A3BDCC009AA087430E1CAD0C5 +CCA7AA0C8C69E446C5E9E947547AF94E4E92CC4FD0B8BDB826155ABFD0D6524C +5DEE8878906BE4B099EB919A1D92B1C28891E7E087164FC30DEFA88A0633B814 +D930BB66850360DE1EDD37514032F3FBAB92F4A9451EA11D2BF0761E13A5BA19 +D270E129C114CF11E3F7ECF0DA3B4FC19AC48283426DCDEF6C2D28B23B18083C +0AB82A8E1C8999F6509CB4B5D5D35511A5C1709C10AC3342C409728BEEBBC460 +F15933CEF659613B4FF9F233E0DA75BE2AB01B3054F3C9BFCEDF6D41356C45EC +5B4066A584FF5B17E2949D527990C138C1F04497C2BF64BA6446D5BF743DE7F6 +4CCB65987E1C20EF9F5BC4A756A5FB016AC1C16EA8067A159FF477531712CA53 +7EF27C0F787BA056116AF83D4A814C15985CA25AA8953D7C789983AEB0B8D1C2 +699A1C86D56C35889B7448D5E375AFA2D63A122AB374EC2F09C547E2499F82CB +0863CA1DEEE53FEA5A7EC6709615C2108B3D054CE68034C2A6D708A293DE05F3 +5F21D5ADFC6174D10CD5F096CFEA22775D900069B5DBF57DD6C9020D2B2F4717 +A30A1A61329DDF2702FDFE076E8A829F3AC56AA8919110929BA9D7AA624B0F38 +DA38F9D60A06AE7022A3333F152B0F95536F23C110900CF816B1D50F4DEA8081 +7F0584BA7971FC760DFF6B0C53A633B5548AAB20EF4FB76F9F28748902E0150B +15977EAEC2C3F420D0FB6099FA9323331CFB1AA87717F1937E11F51844C7CFF9 +CEAC489ABA9675F5F3B9C1493AD1584318B525F8729BF5A75CC740BCC8AFE654 +8467F1215E49EAA00EC86276E5EE27F1A31F0164FD638129B7AD090D5F1B4AF7 +9CED5A9E01AF160394A46573B762BC519E0381DCF47B7DA629D93C16425463AF +DDFC846DDA7598B052AB49A5028CB45B53A97E58D41FF2432A2B90961AAC898E +1EC35E0FA39B9C9A1D143BA01D7D0DDC12486083D63DB4BEBB436ADA07160EB8 +159DE52CACA71A5038C75C21261D2C8114A2D7D0DAA90A78BEA38FD84EDFF90F +BCADD4E255B966DB2921A91DAC9FF182D68984C3CB2D6E6D8EA17C952E76689E +15BA0AC4784C1265F2D5E1C853972821354ED4AF87297541C8D173328A525BDD +021509A8EEF039147DFE3DC0A791E0D3455CBDD171190EF2B0E7DEC2F27D8338 +894B268A8C63765C595EB4F94B50CAACB363C9B90560D4FC58B6755640D56BB0 +DA9A012FAA533533A8B61FA50AD2F0DBA6620A2A134EC9DBEC4065CD137700EF +893AA235E1EA0B2B5B3D0AFEC15249E9FE986CD9D4072082F3A7EBD9537B34B5 +261BEA38922F75D6450580110EA6EDAED269F4CD60146C464AF992111236F25A +7D6DA6DE13FC1CB9C9B08D902ACD8AEF10BF9D973E8BE85632FCDC5659BCB61E +A8737E15D4202AF42CC32C491CDE2B427018A2BBA26A2C45A0F04352CF0B3155 +23867AB76CAD6E53F54BAB7DDEAAAD55546EA51A95577ADCFDDC4A58479952D1 +9F81B21259FD46E4C6BBF7A072A4069B75E13F0102CC6B4B8646BF9D7732C91B +233C05C4EE16860D79BB42219DDBD23908972312AB03D983571659B463CB46D7 +27A6621D519E3F40873073022681554FF98A94D4DEA5549706E7B600E2FE7DD3 +4459EDA02F49FACB9646930CCAA606F4FF8D3B5789972B002720C95A2D5CEE2F +45485846D5A67E9187C31473E23A91DE40428A105067129E6446B95CAE1FB11F +0A54A9CEA0561550EBA70D9A44A04E343F00CF94FE622C081287AD00D2E8241A +799ADAFCBA0293A7E3AEA2007E8B62BB2B827B62CAB8CB0EC5569B2DB12CD196 +95D7A7FEB41FBFAA27D7B8976B201319A4CAA8F84A4D929A12C1C5D7D0C18917 +D607E588656BB3AD6D26D2BA11DCC78243F0216B2D085F23A3599B2D53386700 +11A7DAF4905EA41B92D984A86D4CB723B3506FE1734E7899FAC520ED33A28158 +AF7A3B99CF8192BD991F8911FC331C81B939FE798C7F002A6E40AE7078A95BDB +FACC554CEB9A3EAB48D2982AC6D77EDF092FEF3BB8A345D4C31821E9F1256189 +BF1382EF65A786679CFB5ABBB5DBA25B73A8B3C76F8827FBFCDF4F069C9E473D +E8CF8AB7FBA03FA8BEA26BEBE95BBFF7EE492FED29DE87F14739C514452AFEF9 +5753F94E4381611CD41A199C054097A39069AE5760000FB82BBDC79835F6A043 +C7526B5BCF7AF7545F473ACC165EF655F727051CD6C6C0B29CAE7D8530D4601B +C0E60666979449BF6C6569A6CF07310AA50B8EAAAA737EB43FE9405D7A38EF46 +7C870B1642FB03A5B8C4C1A2602430B8121C9AED3237FB2974ED556CABC84C95 +7FA4ACCE1DBEBC4BE3ED2D84B5CEA691A4A86F49BE122DC7D5ECD64755438C3F +B63E9A5F665DC054F07A295CA75750164CA685947A2F28A8BCC6313A6ED75C1D +24E60A2553E618FF5465628A07C98C4A2467D01B541CFECFBCB75E93B814DA4C +75991244E63C1C7EB591FC6D359BF6F2441A7D0F54599408F38754A1CC3D9F1A +4322044F33EC757B52F0106177F0F23BCE64E31685AF97354CC36262019E3476 +B1EF9A23349BDA7A0D40A2BF87EA87FF6E81832C56001493187415AC3EDD5866 +A57291B18B39E76363A4E5E257A35D40BCB27417EC261F7FC291A8D6487481EC +990A434FC53C17836585F6A9D0BA3560B03AD8C992268C3BFD216EFEEA627A6C +E24B848135D68881A996560BE0074056810896610148F4BF13E2B80090318249 +3BBA16E93050BC1296234E2C0357B669B3CF930F32F813655B8D03F409DEB009 +9129EFC2FD637B8258FC293CECC4D7C7375A7ACE08E5145D51851ABF7A52B3D1 +5468A0A94B2FE8ADF68891F1B4C9133596D02846F6DE8D407F18665E6C8D4FE9 +32F197A0A15F70138388B33AD5E6A3517B8E1F3987FCE1B042E9A1EE908E06C4 +661944B856AD10C675F1360599EB9944A0EF679771C6326D165EB73DF430289F +B00E5ACFE7C21733BDE367140A03532A10D271133D227B0A6C3A8355DD660C7D +E6FB054D5C2A7E4A560A0EE40868FE793D27B0BAF57CD3E3879B8A6C79FE24B7 +2B80A8DBB01865237DAE898315CEE46A6B9F75B1EB9C13A18DAEA267D2D0BCEB +FF371F994BAFB16A9EFC4A085DD627628FF636C1FB297B120CDA157C76215C21 +DC2E84527128624ACAE5653D54A26F1750A2379BDFBDEA0E9538A6DAE6EB0178 +018466DB240C8087EBF064D5A965CF29595BD5A8A00DC94A62D1038DB8FD8564 +12EFE0C12ECFCDFC701E4AC529026DACAFCC13B34B86F0674BC1A3A222556396 +7115894B5493450991FFA9415CC9728B291AA864A247BB25B13BBE6608AC17C8 +C32337397279F2A5006D8D6706AE3543A9003139A00BF6CDA8E6F47F4AF7E408 +833553A532812C0942746433D471B49C180B5CA3308B03E40CBB2214E4588E12 +39D377C60855563C6866D547E713A92EF72B48F0E43559C339A6E8441055FE2F +F591A28B7C0E1C069B9F9A97D64F85AB7F422BD776FACDFD31ACE6F1E8B1295C +D3DA706CAE5892E9C28D181385A8DEEA875AE819DCE128EF0EA527B3222B46B3 +E57B2D609823AFA49E43EED3C6A020F738731515C4FC62C42F16A9280870B95B +AE5DC1F680E6D075C2ADC885773DD9B5E82677A46B5CEF2E0D4C03A321C96B32 +D992E914CDEE573B1CFFE98979C9B5EAA328B5EB1AAFBEA5F5209F7A83B6CA80 +087E824D1AB3713754D4EC765C0C623B98752E1F536B2BCF82346B956F55704E +BD3FBDE0CA044B82C503D49FCD4062032E133A03DB0F1CA80EC1CCA065626473 +42D7714172F78B674A1A2FE0E8E9B59E2ADD8103447074EC1EAE57304FD5004A +41CB4F458C94BCA7DC6EA2CF8A1DF50B568A8983D858523953F9EA9D7066AD4E +54B817D0D677F19A8C689E45A11861E6E57261FE6443E04D616815B238C540F8 +FCF9704727EEF043C756A23822063B431332B0111FF23BB092357DFA5DDF16EE +569259AFB5A97A32CE7F64649BE083244677C9E67F6F58EE35FDFE0770F1CBC5 +9AF0A6E383F97CFCEAE634F1F770E20899B68CBB0E84909F10E6AB20AD629B8C +DB3B36D53CEDF0D75FF6A8861D1804686C70EF95949E4B1F89B9D749FEAD878D +CD1076B5D2A5E0C13FF6091D64837C745817CA28E72273A9AF45059EC4B2187E +3E5AF4654283920CD8191503E232CE93648185343BDFA7C76758639775B8E3FB +C1BE8F2E260434DF28B7F23D694364024F92586FEAFF2AF047F983EF4A455ECF +930727B44E0A07EE0942C47D90DDF5573EF77D36622682F728CC9C318F5FB0DA +550DF4E3FE6C566DE91910FBFB7FFBBF78E6EE37345196875A3706D05440CAF2 +074DAF626748053A51101B499AC82577C38F3C55A5DF192C32EE011BAD68CBDB +6571CF2A93C77CE392CDE3A0E93D890670B1B0272C619E6A2C21F3F3D4DC3CCB +DDECC187750C798B5DBD31CF98D22DC5F1C6DF4689C3BABF5DA280C2C237E497 +C4CE6D19C2FACE2FB850D00D10DE53F83F62958C8230C205B14615B9FADD984F +27AD672FA6C9427435D7D06BDCEBDED922D68614EF8BAFF8DC2932DDBB65431B +AB752564280289D1DECA67CF6155D768CEF28EB6DDF2C229901041722A0513DB +83632B5ABCF9F440C3E32EF365412B509BA54EB538A5A26374DF00301B8A75A0 +950BCE4D780CDE769503A5D8B8555EAC7D6217B2DE3D4FD234996D4DBE8E3F2D +A2F1A776A723E07319733165F9AE94E798A1DB6EC9E44D1AB2A79192EC03650A +5C697A6E5FD0ADBD14877ECD01B39360F9DDB768507DA2DF800342B9E5E56D88 +EB007AEE61B8403183BBA21D3B530E8F7AC8B9EF2B15FF13A4D2865EFC5983C2 +2F46B2786FFE54927511655AF37BEB2428FC6F61826C7C96F6F7A06D21A92DF5 +0153C14E14110095FAC7ADDE01FD05DA0F0329462D257D317BD727A79F76CFDE +32121CEC3C7ED88F3A382164E0102A87BF52ECEC7F32A6A7AFCFEDB62D976755 +4791B0CB6A3EE86561E0F1CD6BD53E98FDFBFAD3110FFD4459C787EE8B5F7B88 +ED8A03B769EA530CD6B73D3D72DD04443629AF93DD4F2BEBA37A5873F70B9AE6 +CBE03E60A6668BB9953FBAAFD8EB663BE5BD4C1FD21624B75589E4B6EB69128E +560E65150C6D1603097AD0122A05960C9FB80C3043F43E70D6DD772EDEAEDF89 +BD895CF65CEF5068E717611129208909B1597C8D6AB392D181D4775319A80CCC +E3EBB841BA61F5FE90E9F0BEA8BDB0802A32C3600A4D81F82F434ED577D0F5F4 +7106F104A4BF675C3F29D4677679610367CE4EB4962DDAAF34C1C1B8D4EAC9FD +4CF7CD1EC456A274647930E61CA8631B774730AB1B05AFA40DB774F03B47672A +382136D301953FB9524065A9B04885EA4378CE942D14EBD98C2E22D858D5CA30 +74E4FDB73552571D56000EB14777FD7D4D4CBDE5BC1FB3E8F0DF1FEB09D689D7 +A1FE918E814A200FFD1DB572F9CA81D2A44AB6E949A14EB60996D6F35D16838F +7DAF61336EDB7E5DFCAD6E0BAF8FA004CE56B5FCDF355AB4746F0788BD6EC326 +64D044295E4812E91CB9F50407B61AA86D6CA2656854239C6665D98AF27856F1 +69FC627591323CA7B36653712BD7B63348EAC9049ED1F1E511FFF5C9580B3E2E +7A5FF1B5694232569216567155154AD3030A2BE940F1C541BCA62E5366A9BB4F +D86BBCF8F2968868126430B2BAA8096D5D15D99CCEFFC24695F92690FC2E02F3 +C72F91FE5A7BB6D40702640C793B34018632B42602C7E7615581C53C8C57CCF0 +8CB709F40562DA786DA14CA697E7977A060830BE729498CCE79FF1654242E3BA +C76B44BA44B66A846F72D608463F9DC9A08E30FAA2B3B5DF5C47837374C2741D +9AF98CA2D6BAF878198E2392B1B63646393A214DDAC0CB6531BBADE768260E49 +F4BB5BDFD72CF231995D772337305CA8D261BE57692E244C0E7A0CE56424C532 +C76F4823178B71F7490D50CB35C742980A7ABDDB1231F72AEBF1B92EC67EC422 +7DE6BEA6E5EAB5D38FE09883E39712D02BB7E5D587DE6F4DAE11F247DDB57070 +60178105C278039076BAE300D1B6FDFEF4412F8D6DC8DF39C4E969F8A173487D +F644CC7D3E580D4770613039506507863C1EC7346A0D03A661BFF3FCE9D3C4E8 +B26C4AB8D9EE092CD1C0F8069E82BBC376BB9B2E55BA7128973BFFE6EC338C06 +2567033F263A93FF5A9AAC5A1025AAAE1EC0ED91632832683BA3F8F1E0D315BE +5C3BE1C67CD4F84ECC6EA7F95F1E3F3A52AA51265F3E8DBAAC8127CC18C1C11B +9F30D95805F328E7823E813F7BE2B243AD6BC607955DFF38A45647DE5980BDF5 +7CB889914B0B47907F08AF08FD95986F0C754851DA0A82B77210012EA35BC0A3 +14A39BE00ADC5ADE5F8D0EE1112BC33AEBAAA8D1C34E1114BB734038E34C9DB6 +2648DBB6357102E2678F49A9828EEDB4E2B5FB644C3719BCE7A46A6B1906D47C +257CCD8FE3C200741CC02E1468636CABA978DCB64752F71241F6446DD92A1105 +933646F632E07CC0EA72143F5F82A1A3D214AE275086823AA74F0471B6D69B9A +1B63AC5634E98884E125B9014610BA9F3CB67EBC2E6788126BBA513DB848EB8A +95703BCF515F36CFD6F9E109CBADB2525E5435E5A6FA4C97C9154BDD47FC9493 +CF67C524702A851BA45C4BF4B8128C9F67C2052F37A31831EC9C680590BF576A +4AF9D264B7CFFD26BD472F06308826728D3482FAD1DAEE7C7685D77458C7D78C +9CF75F1A1BCEB919F48A5EC283D22352DEE39DA54CEDD266C3CD4D31ACE2B562 +CD3A620BD8CBC5329D97AFDB3E66189B9E36F1715E22BADCA9D13C11D38C1921 +3D665D0B5BA11511BA9CAFD3ACCB5E5E19A45F49A8CDF6D24C88EF3E11F3B4EB +349737AA8C8AE9FE413A04D2CA895309C65CE071E625D44BBE7C7E02008C8E78 +D245B1A006319E6C4D9071E763A6D1E71520E0ED9CDA00CE5985B754CA38C6BF +ABD3FCFF3E61833B6ED678C8D1FE0FA2402F8A7548A0F87CAA5549F5A4265BFF +36301C9D89D9EF7E2F39CA2FB5D4A370D22E2E00B544890F4DB89FEA84C466F0 +BDF6AAFC42D93376454F1985FF992895772FC29132DE6676FD95641AC100752A +31EBE517DB61E1D3039E500F5726124BDCC670BD901614682E0D743A82E7D19C +BF609C323A0BA3BFE6E729430307EFD1994446295C076879B63866E552F0F225 +178BEE68D832FA9310B262738C3B1AF9F74131749538C7805F022D7A58792F43 +E1376A0B12B4A0B4725D440897927250E744D817E2B8E2106FFF649F753094D3 +46482607441E52B099D08B534992629646C228EA9EAAD051610BE21EE92FA7DD +B629A34733ECDFE98953DDCA6F6BBD44761813958267F5676D66C0661EB4A9BB +38C298B2D25A8A306BAFC22E13D70E9E490381406A6A0AE7190E88EC9EE9AD3F +2C217744E547BE20A48FB5F9332DE28A27F92472AF1A54FE8F681512C28FF0C3 +D9644250CAB98E4F74DE422010BA6186C7E8251D2D38483DF24C1A2DA9C76593 +2086953984C5F9BE47E398C00E2DE650DE7BE2BEC59D6785800C2AAE476FAFBB +C1293D25DA35A6259AE5B4E78D50991F9B45BAF0ABC51FCBA6005E737A777882 +C3A6D4F8BBEA8FA43A98760A584F0F19C7AB91209866A2DF316CBE4C5F6E2176 +0EE8CDB2433060A700AAFF7C1EF56AFF93D285E9A5E14A0B8181AA1745AED616 +B048135CA9CF45ABB3951B0166465BBB66DA36A56EF9FF5FE98CAF3E801A7F64 +CE14338943767EC89060359BCE5A4690852253975D7915F3E0952134DD6475C2 +8E7E3DD0B2409D6629BCEC3BE789C56CF79853DC1A61C48317ACD72DA2BF34C8 +1B7F2A85577FD61C7B1A017A9BC0C1F47385CC339F73B2241E58AA1C2FD38C88 +D047F8A95C9DC16D018DE4AA3D9A44EF59E529C025118B542888BC497B767614 +6467B05F8FDC46F8C49F738CE8E686759EA4C87DC66D11ACD5B5AAD0FC7872F4 +8FED658505C3547D6D62AE05BF0C17BD9301866B0E947815CA48217EF03C9A8B +91B9057A70EFB8642319BE02A2F59F2B7222B33970019592FC2CB6141D657C42 +AAC219BBF030B00633795273BEF944BCA8D3C9C560604F6D80D2831F91D29A5B +2FB69BCD78F3DE7516C7C42385048A738747EB936FA92CFB8D5E7339D0AF16E9 +ED6DF45D1FEDB26731D14016E0DF27ABED7158E2CADBAB7CFEDCEDAFFF1D7BAB +B751E5575A083E1B1EC95AEA27FAEA6ED7E10C3F5F0E14226345B12F46B0C27D +A442F562597F53C44FE45D74F8B756F9BF64F1FFE56AF2362A5061388B92A6E3 +93D35E45FFD0726F542EE02E1853473BB1241421A1547CE8DE865BD36C91B345 +53FA52C009DFA61A3E4DD48302D7E683BF12201E1B1038EC8D7CED573FD57E8E +BEF4ED0B403E60EBDFE9ADA568512DE96AA1571393D4CDF2B40D04DE8B32CA13 +87AC2CACF43D7122A7326EB51EF1326EDA521925BD4FD08CA710161CA661AB65 +CD62C2FCB8F10C36AE0F9B6B6B91DEFDD23A86E6541A3DB6AEBF5471381422A7 +47C5190A77B1AC66D2B928D0601739845B78F0007B8526F290F5E991DEFE3DD4 +2659633E64853844E903325D527AA087A30861991093A1BDAAFDFF5A7C8B85D0 +BB87589E8D20D71EFFAC02A91AD60FFEF0AFEE25C1A74933C0C3F6F96B20F14F +EC84DA9FD024FC5C21DCC84EB946AB4F026D595B21D407E159E0FAEAD1708AEE +42C5127F6800542AD54BB5AD7922BF5BB09B4374201DBF5848EAC03D8DFA1782 +82D911F772C4E66F7F9B8A3149BF7F3E93E768EED54CD1B901D961881B6BDE55 +C6640ABCA77CEAFC1ECEE17BE945EAAE5A65B22E68200202BF126C35FB522B0D +75F7809F3C777C61BEEC468CDED769F521571C6A90094CBAAEF8A2F62C1B30E2 +57E0FC19562D5C0EF6AF509DC385235B0B385EF20C2408E39D3D0C60E56AE4C3 +63C35198132570951103FFEADBC6D886500F28BE378FCC3A8318A93BC21F7BAB +B751E5575A083E1B1EC95AEA27F936AE8283306D13AB70D2E2CE7BBCBB707F74 +1E16C68A2F08FF9E3EFE930AC07EF8E06E1EB0AECCFCE97230A76C3229AB9712 +618BAE91ECFD67C4736B0FF2EBAD5EACDD53987B43D32393F164F52E157BE9B0 +17AD5C5E6A9DB5B2B562AC113019405B9CB4C946FDBBA95FE7561A0F6C6FC08D +06E40C508685186420ABE61F510C22B6B5399326C2B7DE4C7ECA54E95EA45ECB +AD1E993050B8FCCB457D18190AEEAE4AD2A892E8AC1E90BFA99D34B3F0C8587F +88FBF9D9FD45259E13F436A2A27845584168BC2A430D06DEEF720C2A4B7775DD +8180B8F67DFE48BF6D57D1B9E2FA148D62DF24597B0E0ACDF4549F41B90C5FD4 +01D13976B458A7E9FD538C4204709AAD1F75E4D5A1502CC2CC543AC0256DDBDB +5089BA3FD9A9AF7C7859A6D7316E7F3AAFB1F6E5152BA2DB39D6C3E8B60ACD52 +00D73F13DD53248456F5FE7580E909415AFD0F4D62BD0829DB4D1E7A70393F39 +60A8E49BD7AE2C4244979EB14BA8FFB8750F3C0B15BC34C21954FBECE4294E49 +F4B9985E304525252397B8C516A5074C31FFEC8DF303C02BCBE567071E250332 +9FA299DD94B3166DDC73E4D69A045A365DD3742E9A9B3EF969FBB1A1C89CD24F +B498E67FE4A9DEE1596B6CE165C9B7AFE20F344EFC8217D74CE9504531A6AA0D +4C54C358E25AAB98F555FE41A893408105F86983284256E7756C4225673D893C +04FE2FBB81024DA99E7651145F9F6A7917586CD4272637F2EFFB9A370FC5F685 +A8D52C7F290358AA9CD9E5A311B539ED10EDE77EEDCF560F52A92D0E01A054DA +0FFF4EDCDFCAE93B9876A2A536E40834E3033FE22F2496AFF7EA72EA1F8C5CED +D3BD22FC0D05F643C0BE6B4EA705F7F72FE94A5D2361B7C7880568C75286B8E5 +432A57197DFFAF472BA2F075BFF945955888D5394A4E220D4D0728FF95FB8515 +B293590B96F399693567B7223CF6D2B765E13449133EF6E94BB6C1DF9165F034 +13A9334659FB1B848AB8AF7AB51D2EC0C209AB2F31A131A36CA0FA480C85A7CF +F5E2C1D183E6492E434EAE1BA0936E19DA29AA77C08192EDCCA27AFB43FC96F2 +72D6CFE0F901FEAE217E4421D35B88BA2B4D3F6F088D0F9C391246268801A724 +28BC41869EE445C59D2E7F060E236F64E78BBFC912ED6BA4E8450EB4CD29EA16 +466250AF1955A7D8410598244D3D1B5A62907162B395AFF7D2F1551CB919E461 +71281F6615E9F77B8CA0DC0E20B1749EBBA97830506DE264B09359B8FF5E9064 +0C827C099C1AF8DEE7C73D21C577F5F78DE375BB7C0114ADD885B7054999E507 +8A8DF072F6743A4A36CC8EF06577BFFDDD06959CA7D6DE7EE2E57E1EF7679465 +62D76B38A71CCA202C629955EFC693152FE8233BBC3C6D4C990C040338A47C3D +5716C5FFC37C0BCC9D526C04C0E9B11D392B955915E160B6EA71FF8434677237 +C694DE103FD053880598442C19E74AF0306FF73C6348C6C0104FAAB95F43A934 +D7CFB6ACB5AA86203987018C30EDF9198DA3B295A52FEBA91F23C6A080503F95 +1267C814DA30660F5CBB05691126CBA8DCB4B2B8E745D05D92A5E89E143E6348 +1013B1B34382A9944207CFBB5178A2320DBFD2CAEC9B48E523BB9EF1768967EF +92BCDD01EDC7396510649E1B2937368D65BB5406668651177CB853BE259666CE +FE37424C1879C263F53833C574289E8CF6B6425373644C10714EEFDD6ABE83B0 +5B49897FF9750541B1C0E5EFFCA669C4F79E40DFA180E2035E5D135A65E21D49 +EA8DF28250FD321BE28AE3866F391864DF9B406DA10FF25100E4A7B55D10A241 +B70626C45A3FA81265C589F9566A0DE3D63C52431A65E478F6C60B6F0C6AB5F5 +90023B275307AF550F3C8C13E73BE444E65664EC42611931FEBB48E1D944D55E +5257B796091ADB5E11304823F59C0FEB78C3D60680790EA9A57DDBDA18159F64 +A0207F43EE94536CDADC68BD81E5F16BE5F1CAC4FC71AE40DD936C862424A0BA +C81570931316A6FD605E5D024B220DAA367F548020D1E44597BA2B8136F6B4C3 +9D72FB257822D94CD38DD33F020621C739A23460E15A24E346EBA615C4745640 +D56BB0DA9A012FAA533533A8B069923F9BC6C15C2B90F2B875C69FEDB4D616FC +08A3EDA1387100AB99012F5925C5DC14AD5AD10D7223B592C2A8A182282AC372 +524BC3EFC773AFBC1A0878CCEEFD3F19A075FF8715306AB45FF1BC2B95760307 +BC60159FBFF468ABD0D0DE65E308F66943CB484E59B5BF520B3690A473C03D8E +B75769699973F30339A97AD6C21ACA5730E20E928F74CDCF7596C4CD08477EA8 +A10AC0EDF889F685C6329CB34200253A9865682F4AF47518C14B00EDBAFC19F7 +EB1ED81B2D427CE3773057AABC817A74BFFE3909373E58065861CCDC04CA260D +FECA9314987E3C64A741F0573924ED453E7574D949072F84388B64B150164F45 +071FAB3A449E4ADE2B774D9A507C35B2DE0562B465FAEEB2946B704CFA85E9B8 +1C81D941119F6CACE20A956D46E24F00818C8B6C191BD6688F83543BFC3DB23F +65BB7F4D73B66A518C92F21E559AAD015A3BB9AA0163D375FC63A29AC7A63035 +395B7732702AB2FD0841A2984E41D6F1D1CAEDF7D87A8368B3645354674E9D05 +C2A2F21919F232567243DFC434EDE85D9E940C2DE6294C204F564C4875111084 +019DF1E1505BBA2D1762B7829081E452016C9C47C1EBB5A97CFF90F3A9BB46C3 +9AB4059C4C1E6475BE0BD506F7D93A732D49159533F0A776551EFDAF45F42DE4 +DF55EF5EB148060F15EC1B9269A78056FBBFA94CA8CE853D1669C8B78F6E0D7B +BD280FAA448CC5459DCABB85FC2BB9F82186C49854C81C529DAAC256C1113F18 +83DF375342B8752BB898FF54845EBE5A1051F54537269DF1B2469B2758113055 +1E50DE50A9294CBE4ACDBABF62A9C64E6B12A850C0B890ADB17448068F514C48 +F418F4FD664CF4A14B47910425E1C1A55181E2BD713FD508E71841FBA395E476 +0547CDED5FEF708BC0CAB941DB0F04E833D591665A8EECEE214953CD860E793E +991C966B7777ED705A8694E2A18BC898E9B2C39B564606B5A3EDAE9C07AEE310 +765477A8430DF7C4807966DCD0A083590D0EEA038CBC34921FD978D547A19202 +4C5900F8D4D19C5A8F90D0F4FFEC44169612E6863E2CBC25209AEF2CA999760B +4C21F07CE4A017188A7DCA2FA52586428602BEC3A2B52D070AED97512E482C10 +F29C0C9BF26AF416CCACEE7B7541E53B123F4C64EDBD8A47E2F0DD05B8EB4B11 +C559EBBF0C5793831F8079D606716AB49805DE8EE0BE989F253C99F70FEC44FC +6751FFB7784D8CE077BB143C350932D5090F88EBEE48C425FB6CF525A89980FF +27F779C22329FF3EF9736936BFA1677F9F159F56F311786004C781152C01A7DF +2E63C5CE55A43D1E883072265509C773504E9CD185FB68DD670054CC043964D0 +0CEE7E0EBF2972A42B4377965E2751A705D116805B15434A0198AF290273F1AE +C190131D8296B53D99DB83C3C8454E68E939C8180E393C3A59C0057187156D97 +B290681B74AFD960AC4D52164DEA4954BFE662832D6A288DA32B6A3727A8AE10 +C1DAB806F66DF64C752CAA4ACCBE63120324CB09647D099F37D57B0B774F5D11 +3689C1751FAA84E322D4D12B1C3AC4CE272A31A235CFC3847A20EB006A10EDE7 +446B6C20AFAD9B94D7D19DC903969D22D25C8BF83097668C1CD5A60B8BBD17B6 +F3FBEA2B02ADE6305BED5E3FA72E836C004888A9E3D1E1C084A314499D7969C3 +E1175CCC946DEFDC0211C72C553CFB252C766E145F7ED680C722D72B59FC8B72 +4D77D84042AD4F1BC759AC75EF0FFF8ADCDD0BC65CB5EFB3FA01075CBCA38F62 +F716A0D8D0709FF897D28D1A004B586D39934F9AF66E6A3A57133CF478E9F067 +1D80BDE5B721AEC981009946CB280D6B363AFE2E5A2BDC65218BA88536F39B91 +4E5A0227C67942E58265D3CAEB8042ED76611FC167CEE0E2289EDE846293F4F5 +6DE6FB10DA622DFB280F4449B2ECED8A0313F338CD6556FC81C0187AE54D66AD +FFC21A73701BE76559565CEACC05FB32ED9F3E77B8511B12315F712F77B0087B +C7F19D3F849A6C61544B9C3D02EDC9E8A17FFA5B8022B6BD7854AEFB0684920C +377C6146145BDF2BEF868FB889F5222353363B087C84A710814F12C04BDBEFE2 +C775A9E06AF693EFAB399C45696693A66A3BDEC5337E9D118179748A711091FC +6EB19B0D6A6859763F7B9A214DCBC47DC8D7AD29DC274A8649D5B4C2F0DE086C +AFAFCEF427EC3CA64FABFEF61523B758FDFDD3AF8FB4953A41094223A7DF2565 +F9FBC37CAD7A6041AF74FE079CB63A71E923150AAB3E846D158561BABC666376 +781E20D97E007795C893004F0FF6F864B4B4EC2FA91647D519943974CE6BC92C +9CFB50132566D97A3E9167F0336E74CB76158D3AA128E3F5A94B4F28882C7633 +22B8BD8C8971D38FCD48D970B5AC4817C3F4C930F466C8DA028A78151B3385A0 +419CB4BDB568A79C75BCA3587E2EE44BA0915A98382870E635E040ABF6290582 +EAD2D65F03B4F41F53C61527CA98C78F4C6A66BCAB41387510DE1F1D17CAFE90 +8333DA981F25F42CE4A508C64816AA53D20F70BEE9E7CC4E0102F440EF2178C4 +8656E7E1F90C99D7886336B100F563EAEDA1666DBE91C9FEE857CA24D639D1B6 +C0D11A36DF260B09F64791245396BD98D7150D912BDA36385ECB446B6A381E9A +E3EFA16E57CA8AB4A794E20F0F91DE57258E76E62A5EC2864AA97D995CFB5CF0 +8D51635906AE373215DA6BE2D42186EAC29304C335F5B925C040C9D0B9DC8BF2 +743A55803F83CDAB10D8E6C6AC093048BE1AF532FEA512C3F549800060786475 +340F4C4EE0AFE289E706863BE5CA703C7E9008569384E748CAE68EC429C1E873 +9CDC6B7CB99EAAA11CB03F520C4A6D93BBCCA0DBBDCEA8CD955399A4C6ED5F08 +3DB926C575C39B48EC426A65F9A209CB529C9FCD3573D3638C9DB5F9E35909B9 +9BE84C6B85C4F826BE36C5DD69E7D75C28F10E36B8102BCB41948176DA539116 +A823981C022DAA84FF4C34ADB130C45E53242A2E098C8EC311F3825D2F094D28 +B2D14BB4980CC07458A94A744A8CF85027613367CF38183CF1A91DBA89ED8B99 +5E769DB4970CE05412EA234C0A9685025A4FDDCD201B1758A3230D24D3B4FEBA +4C862A86B1E821F9D2DB75F392C1F50F74B56D7C138C43F2B48573C899604FE5 +ECA83E5498528A909BD1EBD3EFE90C52832C20F7A6B20B18AE9AD012FE58489A +CEC2AE2D8AFCBE2A4ACF3656C3B8F6F5BE260468792E754C5B34437B4D59F78B +BB257E4B6DC1EE172836B50D48FDE84C53DC7B7BB5BED5200C5A84D992093932 +B2A4AF29B1DADBAB29A3AD9548774801EC346775C1C58B0AA01505D8AF766A2C +669E5DEEDBC498A105A631C9029476EB5CF17AD92C3B17437723BE893CA4219E +DBC06050E75E10EE0CFBA12254E20A3AD95858C61FE91043392BF28AA3E81603 +552CAD7BEB03E3B1BD502BB121E1E63D96E03A3D80B7C9DE5BCD2F6C4916F886 +4C66B923534872346F9D77E785F0B9D6F18DD25B324FABD0332CE9F85AF33502 +B1CCD5C33D0A8CDCB8F364DB9CF4A50AFF8AF33E265466B0998803E2B471A603 +846D7D1D12D93E6F9A4842B58496DA11C4F3105DA1EAD121C1DAEFDAC451BBD5 +B3026F46A885C3075AC4F78FA9DD430FC052215D08B3827DB47D2F2A6101174D +977AFFA061C446BCC62482B4B2C438721443B85A8CD5F9053F3B0F0F67E5A323 +03AB89407C1F76976E42E4FABF2862CCBE4A792E069D3374A50CE6A910731A7F +C1148B92884265B7080CBC5D0A00663E3BAD9A3E5AC290267DE0EBCF4E8A9125 +C2C3AED7F28F1E960903F3F91AEB7D31425AACE0EE90FC8F7C5A8DF87E7B708C +54090B44A480BFACC1068F24F4D96949D25BE62A33E9D5D50F333312ED4E86BB +2D2D7B3C1E78EFDD9998F00C593AF355D01F62A1452100B2B2DC0BC6E8EC2D2E +54FB9FB9D98C5CD0F9CBC1807DB699B5BBCB8BD25DF64E2380F743CDD7A37B47 +558E0809189B1F0334050C2AC4BC5CA3B1130DD7881A8A45E3A889F0D94B141E +179739A968C1E8D2A16953F241D2B29CE1C264B240804392E39C0059349AFB7F +4DD2A97D1D2EDDA252F084AC1D366F313550FF12FF5112A4DE06D030921EF357 +77508A91CBCB78D1075447F1BF200C954546CEC71A8CF58015E90FEAA26ACC1A +82EADD5A9C5A0E2294620867A9EDE99D3E799A3444E30AF7E71E5C38E4836A25 +720AFFA396E67FBD60772ECF052D12071E3EE60ECF627820565FDD00685C3E9E +6240DF06FC04BE56C079644071EA53DA652B8DC47C5A2AC31EEB5D70D3037FA0 +AA5D19143C1686030CCED179A17096991A733B846E5229145BC09212571BDB87 +6AA0C3B4E88F35C6A3A1D05018E2990B2A0A5EAE6B3ED7DBAF8C7CA1CB6AADE5 +B6C0B6EB20AF9E9E93D0A8329B5C4B02F963685F485B4F6C0CAFAB3A7B26FF5C +71C5CA9FDAC213E8A421ADD0A860D8AB1FEF0A81B35823980852E3A177445357 +7ADC5EE8561EA5DA8AAF08224A765198DC8855D6211E35631E5DFDEF651275B0 +AB6F342A4C10ED6463C16D507B28AB8A72ACFB71C8870ABC0277F610F004CD38 +201FA97E452B299133A3035F4E8894E45F2D22BF10CC5A61D54EB584CF303E55 +3DD815FE141F62C97A9728A28243BCD4E21BE88C01A0B2210EEFF1947B4A363C +4FFD777EDDB3A4E56F24FDA05C7FE9F60D94755CFAFBA4022AF1DE152549EC2E +67AA08F39E679E63E859E81EE819AB583F35B45BEF6B083FCC2004F4360E15FF +F7D235CB837837EAFEA94DE5AD0278F8540A1AEB43A6BB67E2140467B4659ACA +C002635A6AC998BB3F5519D5A88831C4C74F2CD5B426B03370C287308A36D5C0 +B0ADE2FE7B9D4F0565AA9DF27743C46D3B1D21D42D518497E1B24581DF7AB1E2 +0ACB6222505FE5C83B03BC4B15F19988231B2C8399F89691BFAA0D969FFFD096 +FE6F622B800F0E072655B09FEF82F4FC83BB38C81787B9AEFB52BA1FFD1549C0 +C413CA99804164944A1D2219CD7A6640C3869B720107E1B419A31372FDAD3362 +4EC4F36C3C0754A0B4DD592546418C3BE1B694BE3DDEE519A4D0A2A62E6ECC23 +AEDADFF288C39378BA7BAD73FBA07B96330BE471385C6857F4C126357B0919F3 +904202F8E72CF54AD0AD0CFF2723351184FF8253357DA2A606F264C0FAC8B9D0 +07F81727C21BA8FE7530F15E7E70AC53DC25BB3381E6E2B76B90EADA49C06163 +DB92EA227BBE3E5C9A87BCCC01B572E646B9EB17782C2B48EF75784AEA114D4A +71BD7B1C6A09144D7F5085C1B6E2D85FB13DECD1F6C8FCD190BE2B90FA0CA867 +6489046D5D1AF1B815951D40BFD690BD03828E5DA36B7270ADCDD94BCFA853EE +7109134D1BFFB8F0EE0BF91EB2CEEE7BBD69175AA3EF7A2B8107874DD9AFE31E +06B982D00AF5739563BCB18307FA279100C62007C9AE47A86CD0CD5CB82CE229 +CEC433FC66F1521EB7EFA3B95510B2397DC0288F2CFB622E0C124545FD3F649D +69EAE69921CF1E7340E7C821C43F4173670C17D388FA26600DDC9DE060DCD50F +E01E0B5F51067DF45DFCE5748770FF36626B6D3CA792C4B8D7E456A255CA16CB +F85D772FFC5413E6D7C126A5524B3349BB77DE88FC465DBE4D4B2E4E3D29389D +4AB4EDF41B64F1EEFC8510587306CEE625CCB6DA4201769DD5E1AAF2F9B40D9D +2B0CD2708112BAB4652292ECFC1AF6B889417E594628F5ED214831E2B1DA3E87 +632BA0CC11D233AB142845621B7C3C9EE6289A02C1C010440AD2D26963560F79 +37B4FE2516EBC239623E2A9E0A0D8BB69EC82E846FE0C5F56933DCCE3575F053 +8953B5B80F08AAB57175C3848F1B9C3908041A710786F5475D47765EAA99726D +9BECE2641C252DBB20573F61EF4CECDA2A3D751F25FA921EB806C93543B3EE89 +1BFA4432687739383284265CAFDF623228C312692BCF5E233E8703A7F113FB6D +EE634DB4E4D1129C16ECFECCFFECC6011704610345B43711AB5DFACB0CFC7323 +EA3EE3399BA4A61057AACC02E0A6844A64423FA911D71B78806C3031DE22F546 +4D61357696B0F3EE4B5C41F69CEA685A825445AB53689EB05C4777C20162468B +B283DCDC1CCE7024850796A8448B76189D977C895C3A2C926762931AA5302489 +5F86490E21D0DBA19294B44563C55BF94925F8D07A16BCAFB8C797934C021123 +B88158BDC19F48B210467BC02952D612A863E1F1628F38E56C5BB73C10A179C7 +A2E5D03F7BDD11BC79EE16C54812C5B0FA1A4774B01DC7DEC115D7C4DC04891D +75DE7A19F45EE3EEF17C0400176C122F50879B409E635388BA61F67C6ADA3E92 +2CE941F15ADF0B43981360659E02E8A0FA57D13B295A2D3BFA4F098F9296AA4E +C8B98810B8AC75FA6659F3C28FB92D9F4BBC6C79741C471345C87672B8A4EE95 +CC7CDF7F6FD447A6AB04E55DC3D7422EB524A373B8435DA01C4E420249845DD9 +13C1E80E5EA0D68C819969EAA5F3CFF81A7B271261FB6CE7D1C1567759DA85E8 +96BFE3A1BDDD890ABA7FC5B0C44911B91D3953E6A33C1E69B7C58651A49CDD57 +E740AF490CAA0B3A9AFEADCDD57D640BB4E4C2BFFB2C0AF81972F72459D083D4 +FF2A18655ED1BF57336ECEE601932AC5B4F718006D144C86383D9CCBC659E831 +D4002D8F9D8047DE71FC4235575F1D03C0D12F5C047A9930460101E5330B4827 +E618877FC51051D8D1314DD09291C1ECAF9E16F3FA36D84E0389410D2920A8B3 +760B578D6C3E6686CD334508064D17F6351AF7C1865F2C4B197539B51293404F +B31283545AB983919A2A172D3798E835259766D94C9FB5F2DDF2B7A5F5EB4C51 +077066BB4BDAFFF8BB96DCDF35EC94A77EF533FEBC52F85CEF1AAA5C089A2939 +D17D7CA326FB78C1F9F42F4FA6328DB31D4B9D50C97AC52365DE7FC5A1729CBD +B9D3C78B677A9532BA3BBC08970570FE982B3B72B9585FA2F8CF585890B4AD71 +220E37A2C628C024FB9C7B7C12D26CF43DE7CC2A4BCF9103073157993B81B59F +529BFDF9560C05C6BC7FAA0977CF57A766C676DF4DA3B163B60D73BC1B3C0FEA +F6BDEE612FCDAB38DA30794F2CAA5D7652914325FEB8826321E6F474EFF718C3 +C76EA97B306D0A408CD94644D4CE6D06F6A3D24C03709C95810D88B38D3C85F6 +F4579146632D60955FFFFDDC25FA4E018D4047AE4540CF20D9F36A0FA0BA678C +A02173ED0E0D96033B84D23EDF250EF867163D5068A63C244BFEBCA03EEEFE6B +6BC4609A1F6F8107AA8B5AA1AE982ED8D67850CBDECDB7EF8FA7E61447867B5D +9E3B015635279DE022508F7B111AAE91B4D7431CCE2BA2D56CAFE71C54FFEBF0 +9B8F30AC3D4C7B00DED5E18583987D0657CE49412931B59F777DDE34C32B03EB +67CC64FD8A0D3DED8ABDAE904F21402A9BBE0773098DF09FD5378AF589A005B2 +E54C5B8F0223EFE41CF0AF78C7091D0C8B28AFBD271938F41982F06073BDA8F9 +39DBA4DC6590392F3BACE9820D1B0FE88969669E89573056504B8892FB407CC8 +EB296A870B529B7D9E6C6849BD64FEEDFDE6F82A3AF65B3A4555A111C42D083D +F7C6B09F7AD928C28A172F2B3929AA0038F02C440D35189FEF7797C4E8173117 +355A651CF4637FBACFEA5BEF2ECDAD0835F86D5DFEE8A0D59BAE4517077B1C04 +7FDEC85943101A2BE950BEA0402F71184D33388D59534E01F4422D28F2718258 +FFFCF6E247896C1A470E6D5821CC27C00B980A0763823134081719637A93E130 +1AC64EC572BD9F960C1B50B55948FDBAFCDC604E51BDC8C0C3B188FB0347BC6A +4F1B77A3708253BFFEFC7B674EF57F467B96793FBBA4D7672269491583929D66 +083116243107B26DA87EB8FEA9077B670FAD425F1508DA1BCE72BB1F702E969A +57DC0520930A222AB71D09383EF842543E6C9BD3ABFB1A864B8CE1F6B0018F49 +9894CF4826113BEF27B379C916A15C122E338ACADBAC6C5C1F4C730EF8387504 +252108EA4DACF23CBC0C05DF73046D9FBA59599E709CA04C92700233B4442E84 +A162CE13526CAAFA590FB0E2C40A9F307D3C48C94EE0C5EAFE0E6F09E073F0E5 +AFBFFB390276CF294671F5E747A7314EAB3F4A1D8F8AAA3908F3FEA68FC77AFD +FA0E64AFF2EB3B9036EAF8B9A79107507BF9A4FE20476F6641ADAD2D530ABC17 +4DD991FF20526265E37E4467DBE0CC01BF2C794B37397F3FD242040E11B31A68 +E40C1790200B7524593AA9D0EAB84A76B67E1D03877FC17F708E0A7AC8CC2291 +5CC200BCDC262825C608DFEFAAB22150E344E744DD2BAE8D23DDB32D99CDE6CA +B655FDF9BD1172C721F3B4B4FEEABE1B4F2F061631D79DB0A810917FB836AB26 +D89DB7CF2B44EEC77257571D873EEC3C16B138ADA8D89C26118A7857AAEA2406 +1EAA6D7341931C22AFD986C991661492A752ABD7A46FA6AF48FA63060E311850 +854401F0BE9C76396DD5CA7331BD3361B62258806ECDB608E4F41E5E57B95DC5 +D007A3DF73886E2CE3A6CC35739C3EC19DD66B382E4E99A28DBFCA1D556A72C3 +3669B28EFF355CE14273CA318A5F3A0A1074A6FCE263AEA08A4F7415D5244B29 +E9130A5A2D42DD31481C8424259688EF24E8075B8F05D5AC8EBD206E20AF5FF0 +5D4B2851247A70292C551E6EBC1BB19BEB6C13F7EC3D8FF9BEB56A8131CE6536 +E02AD75D553DF139858052C42F0051E3CFE89C7682FD118CEA45A0220FCFAFE5 +2F85B4972DC3824F3DC9E30276592D5AA9F2A8EE2369006515DFA3EDDE6BA960 +6EA9E06A9547DBC1B9323081E03E8F7E9B9B7BAE77926F8DC1D3A3E75E504AAE +A415CBFAFA73C4FA03DA023FE965109286906CDB5950B19B5C93B19E7F13EDAB +D4EA8EF4DD163A569DDE50AB8935968A187DBFF6126C9CD4A4A0037D43CFE4E1 +E64686F7797A9F889A6848E25B6BC6DC56421679FE5B5F50145DE56C8A7F5326 +72722E4B2F5F699F5607B659E62E0079926FC32DD941C8C30AB8044B02FF1333 +858346272BB8BE62E060ADF79880B8E49DEE95E3A9448234DBD0356256866FAC +A6320E2DE52A4701D75735AB7C74A141A0E756CD0911E17C15082078479CDED7 +7DA3284098D9EB7EB94C9334B9F828B64EFEDE90AAFB09BCA7EED54A97315114 +9E8374F142219812746B9471C47FEB1A91D72DD4C55EB328637FF82BF7B2BAB1 +782ADC4EF83F236F2FBF18B709032E82B4707E495957A0AC129607612C5C2FE5 +8D3C37A99B1A72ED892CB47D46DAA2D9B1C31D23BB70059C2AD1BA57363C1E65 +54E9F3A9579366A511ACB6D012C5288F7A044313EB0CDB62BBDBE443B693E420 +A819BB16E16F05005F83A19BA6F25289C7B97AA785B0E30467665B66E428D490 +F0816EAC535888EDBC2FB9963E681528CB1CE2FABCF540BC2D4835DA3824669C +EA23B51CD0BA683BB2F05CB974DE2B5D1D45D5EFDD9142347AF28EE43923FD44 +9AAF8959C65F4721E18CF74E648E29C14767FC1318844ED896CDA69E9FC3BF06 +2F0B6BC8D036012247886F35057F5F730C1C247454C8F079F49364CBCD0E428F +EB3F0F33EE6E814879CF6E1C77C4604088B0B1B7BC9A62A0CD5701E680970156 +FF9EA53A26ADDACC64F5E982017633F0F52C80C5F8DCBA6E5685661E138A169E +02EF58EAF37FFB230083EC44545C5B00BDEAE2FE48209BD7D3F104959A2EA005 +4C9D49652EDB0E9E33FE27B7C60E55C4EE9BCA5168480428D8AC31DF912DC4D2 +F9DE606B1C446AF764AC388FBC83F12A5A5D7694AC6EACAB408384D5BB44E3D2 +9E76767BD9F390AC855C4247DA1E0E85B407DF2A5E1C83309C1BC5A5D17A5AFE +D11E12BC74C54B689A62E76AC69A530306263FE922B60F8F40C0985BCD0A0C96 +9C9A9112312154840EA81291E6856D748035874577C95169FC5CBA4CFE871C46 +0C4CC83C226D77B22A181DF66C6BEE70CE2E4F80D43EDC2FC6682A824935EF44 +6067A5211DB2FCCF7E08C5BED8059DA8A48823B13B7F89B94646F3B19ECB7AAB +FBECC6A88639981D5A9D0C5C6597FC8603A5CF55AB12C9552259285A49CB8DE2 +41BA124F5560FF9370757FFEC238897167B6B53C0694F2F7AE51BFE24484F544 +311B394AD8AC70DE40D04A65D6E413F010E2594750908BB57A8D3B14F527499E +E50C191933339E2AD31682A947F73F2ABE9600EC2AEBE8E2BFD7984A0DE6FA14 +66979AFBCBC238912F1D9ED75263691E5B5D7FF53E89489DF2A913C5337E0D20 +B7C44727C0A235170C861616D09E47EAE84878FB85FC4AD451F4252459581A57 +925F0D5F3E7E8F58921F2C400538B964E31894FDB34D237F708E45173F822E8C +ED1D50EC067AB42B5E938BC87BD2ADC343A53CE7DDDA67B802F737450746CF9C +1998685EFDB9ED0E3BE1B53586A2982CA3083BAB8648B814F7557C6B804F7485 +5BF3F2CEFD04917DBBA375524990A995CD66810CB1ECE7EA958403E45590F1B9 +B5ACA8C745086DDF991DB49D71D62BF5B3EB7A94C56B3A50C66BBC0A3931AD07 +D1EC0F919228E607FC8C1AFFDF84421C6B07A5C451945560D1AD4BEB7405C033 +F783E36EFFF57DD7FD73B7F157F95F43238BC8471751E2F48B100E78F26D427A +F55A604F3C026C84622D9A333E6BF853A23C6BDA3E4EC5522E3FA87A556E8F6C +180BB34524DC5F88783193CFB97B52E2DD0CC729B9838314CFBB792589524D07 +CA95197B6ABC9C108FA596B986B986E8924C9549401E63687C75666AC3C9614F +C6D1A3A2B587C23E6442DFEE3DB6E217B07AF9B5366909EAF116B929134520CA +21B2F1AE51A2E86F9C9E63EA1A8D793222BFB7C14B734D93A9DDA0923CAE8BF3 +2869C735E2621B4504F56E95DEBF78945AA14FC3C71E67CA3A14F8E67EA97C4B +7FBEB8CCE9A8A5E175112BF492BC4676E65812B07AD3FA3602E348559804CF0D +7F2B7B2D04E1CD54C9EFA0111245D326031F9CD55CE35A9C97864D7D2343029B +F63CE981834FC6EDD8637276E75447288C9384C5EAB7221B3EBAC87ACD43A7AB +B59A0CED944D84151368D51D842410B8A31AF8FAC669EFA13AEA737A3A1EBC67 +84B5B4FC6CF7FE3B83FCE1FF87C74805066EF65F6ED21FF106648A0B93BC3509 +2C8A67319225BF42BC0E7C5C5EFA1FA1D1A14813FA065330D88465D62995B723 +4D3A5EA85EF4D64897C5DD3613EE8E823156C0DA75DF4C8C3F4B6CF90F4FD807 +18ECD1B542D02B04A2057D9E9813D75473763CE08011FB4B0AA1D677209CAC26 +ED8E7C2FE95590E9FC14BDC52B3D08FBEFF99C757EBE4C8F2A74A945FB384325 +EC722326C2A4140F1C069E67C5DFB3B11B9BBE123C76E1451F8F25CC79D8A65E +B58CF9668A6F4EF777A127217E16D9C7EBA02293A983A7B36C45D4B124B452B6 +5078234AFE81698ABA4D3F3C271ACD2DA371AD295518BF8E68EFF06703EB4146 +924776B618637610BCEE5C095F3F94027B142CD375615E110E5D26D4E87354FA +4F82B8F6690F586EFC0DF41111AE5FAC1DB414CED91061225D30B484D83ED94C +CDBE83A188B93133B22EC00CFC6DA0B99F78C27BD9B23BC1AEBE376C94C4F6EA +294ED84CB4511E8492B5BF73CED87400ABBF9DD98302C8ED1F40F5E8847B6ACF +6CABFE99AC65C1032FE30C8E33065C621E89B376C5F90998E7AC246E00368FDC +EF9E496A62EF6F273EAC41D3C5C5EE6F78E51F8DE92938A50AAE3CECBC6B297C +A6C8D8BEF1E781DCF6CFEBFB1330225A372081079133CED1EB680C0046345F44 +5FBFEDBFCBD163CEEE390C735C562B6F2037F2A1937702272D3B541B4C0DB44F +351A6589C1A68C32F5E165C2D75DAFDBB41A6466C6B31FC45A484331AC6B8E0E +DDE99F924BD26DB1A4E3508CAC4547445A444D997ABD0F4DD2A6A75E0E5C38C3 +AEAB391A6496381B12157AA9AA5DBD429DEFCC9E03721E32CB89D42AB2D1DC0B +884933739214DB66E632049672EB6493E94DFB7B928C1307D3B9080890CFE30A +6A201B4DC5EC38193083CDDF3350E8D4B76C0F112470CF896676B2334B7FD2FF +AD5E1361C20001217617FF6333D46BC09A688B5DED20CFE9BCAAF46E842E348B +24434581F35F8D6C275893DEE0328849BC6E3A1B032F8F994F2501977B517363 +9B27CB1D19892FD7B64C7A86AA0BE8E8FE330C4C2C692102688A4174D2ADA70A +01F8228E5FE55F5C93099AB75444D9DF32E2CD708D54A4F0570F8A264BF542E5 +8284FAA65C42960AC841CB16B017AA594B4BDD4E998629B96D3A4494BE0532FA +971F12AED1CD9EEBE6DAA5CBBFB29AD389E9F7C8DA1C32AB6EEB68873AEB3785 +9825B153779CDF820940D8EE3803DA8C19E21BC8EE7CE8C57B321A7F9C9CD2D8 +D8B9A9AAF795624C8C9397EE3EAC2EF8A94BF7F862A5B05D6DD962716BD61A7F +1C07EC9FECF339094D377E232E0B81C8C06EBA63D50BC0B64E71D2633683FF45 +365C146574F189A715AF191BD29FB01CFFD9D9C4C69EEE30BD144B102451CF77 +CD8D21258F237B1EF44853207D620E7FCCBD0D9F41FEAE8D704F64BA48E9E32F +A1615C6F8A18C8D34D8B73148AF6673A4723420C1874486D3B2C66734AC48443 +9EE21E0EBCBBC22C1ED7D5F08AC5AA1A3F22DA2054F4BB10CCD30D513A4454E3 +FA6CB25DBBEAA4540A2583F5025814C40F0116B4BB430497E519D5CC4E881EBE +57D9342AAD3FAB1142648CFD6299155D7D6833986BFD28688BD199D43D96C80B +5232E2B2877EA961FFA8E9DA7EC7F8A75FA0CFADA5B8A97A3A1D8F9D2CF3FD48 +FA818370F2E7AD2FE03B9F97ABBECF337C97161D2F123944C036BBCA9F983C00 +EF987631975194FCCBB708384DEB5ABE7C74B85F9D7916470C0740509C6E1422 +22D6417DC2ACE7A9F81196630DD8859F54521C715F370EF1BE899E09B90BD196 +0925B3352173C50B0A734F65ACD272FEE3F5F1D70B6640FBF1D16A4774AD8558 +7047AB50EE33276E7895D8FCA529D7CD3E7F5C944B3F67758335F4F89971214A +D4A8C5685A08EBAE962CCC8828AC07852CD86F73C2B29CAB113F30DD712B482E +7AF5861053B2DAF66D4435BD075F5846F3E4B3E280F4CB9E0D2527727E2717FB +FF3AD11BFC7D7CB8AD8FDE1176EB4C5716D326EC07CF6803CCB907F6245008E4 +918C582387E65AF3975E5A1C723565048F9535F588D2D95FD836ECD4206DD864 +EC0CA5781B75DDCD16C56F238D5DCE5E2DD5E98410AF9DB27C0FFB82734F0DCA +812129B1B4036804F9CE7732C6D8520BC605D08759B8934126C8B4D1E2925BB2 +03D7FABB36ADB0E37DDEEF17A4095EB414458C28EAE187B42330812233D66766 +DF00EF7269571D8F5B0B9DF4C75147288782A25A5242464BDD62369E5BABCBE0 +E941903441FEF0D27CCC90DB0B23227F6A6ECB4844B62F7D19EFEA6DAB6C15D4 +93C10ECF818A5371FBBA71990CE09DA9B84BA7A839BAA3DAF1B59DB1093D7892 +09268A57A7CA92AC65B665246981D165D8514BDD36BD083CC7B9548A8E18B2F6 +F520CE52DBB2AF50CAB62DC30670C55F06F176D0DF351A1C4D3B743CC70EDA78 +C9A4439521338C0626D62046D3C301AE9C551E952A945C5C7CFAF56590429AAD +BF1245E40501DB9C694526CC1D52CE9EA95EE6236812E8C7FA63E559C71275FC +FBDB0BED9EF4AF403075082F8E1EA5DFCC3C45575FE2F8163743DCBE275E251D +FD1243B28B40E5D435BEAE113036E783C7AB17E71687B0B161D4721D9C5FE168 +5D5DC9DE54915C2B00214318C9249C31294CE618B66C3DFD9ECF8EDF32CDDA2B +E9ED3712E48A17120BB7C66D811B88BE02FE18B6B502286781D394AE6057E519 +CD8D68F5EDAA2BFDEF3D266259ADC7AA1E5E9465A53D9E2ECFA1504C4AB2F944 +BF2C8967D76BE4B599E3E76A35CE06D51F30263E42764B3168A32B04AB2E001B +565911AAB607FA5B8F16F30E3415F82CADE3B1441406CECC125F4DD0D987E23B +14675EFD78CB464BC514293FBD9B67ED482C7D0B1BF9072C2F631C60E01B5BFA +88ECA463B4721EAA6E2B34C1E3F0F90A402DBFE03234837B6DAB7E0CD72CA065 +87FBA4C55A8DA3D6BA2A0B43145D46D914291003388940E0328A6CBB0D1E83DC +0DD20EC415ACEDB31539284B64F240A9D0C2DFD49533EDC6B678B46CA186027D +69DBBD6DB27B41728167F8152BFD18A07304EAA80D103B76DBE87B208577646C +0CCBA19118BCCC910212EFF7533BB8730BE292D247089CA71153BE22CBE2645C +01FB2B85FB39C969431729EB31EC454E429F8E6E1FF836B7343B45F5AEE2FE6B +AFC596060D18880375891730CB9072FD5A7D16C56A794C2A1D118DEEFF2CF857 +8CCF6F08242D1892E8DEFF85DD8B8B7BF47AEABDA115B282C27C7DF8F235B056 +213351D882CDDDF895D14F77E22CA5CC659BFB8B116B83781209B05037DDD0AE +0E32D8D425CCE833A30E00D2E733FEE802A7912157F5636E9EADB8CE012FB092 +BCC584613266C607F7E496F0A5A3CF850E821EEC233AD1112AE56956867D258E +D242CF1B1A4E3358ED9F50BCA552A1EEF71C496D65B570784A716950D286C187 +A1A71121B581EA267B569E0DEA8BED793C74DBE3AA2091713D3ACD49D65EE813 +B2A85B8EBCF6711105915BB3DA9E5FD2A5B5DCCBE823727356A4202746A374D7 +1ED14E687B95AB09340275699FAE367973C1A1B7DC1FFD9D5422E052C8AE2610 +1370314197F6C7631BAE6D1198D59B593C2A2C9CCBC200C83185E63999632B99 +CE7C5B28B5F02C539660C975B0A18898FAE8C8E906B86D0777D1854BC31988D3 +611F2302C9DBF6321AB5A4FDBBBAF575B94A167B3E31F8938CC1EAD88654C1CA +CBD3106EEE4598DFEDFFB9956BF6C00C6B29B945FE6B9142F8F0519CAC769742 +1FC3659A650CA49BA6D5500762CB2F6204936C52DC24BA48CB5920E51001BD25 +4A5251713D49A17245C219F2B38F87FACF01AFB402C83B84E03DBDF1F7325A93 +6C7D2392274296CEA3123F3CA7D73F6DD889C78929953CBFF4E74E23A02E6EA0 +60F49155C7CCF3C2CA079E7E3D804534C42938EBC7FF94C6129F74C28F527474 +1D1B32DD19E811CF73B39F300DEB78BA1BB953A0A938E9A9A5F2AE613D422F5E +5518DD630E209642D814D01417FB9EDCFD391436388925A9DB5D663EC84ADE2B +E087DCC33930AD2B76194DD4DF12F05BFBBF7100FBA22DEB809C67B46EA0943E +5D61B15B97B7894383EBBEEBADF5805822454C053DF5089ED484552C4E1D2900 +A7AFB5152D2CF2C501098AD8B2491CD733DB1A5818C636299FF98F96A7E9027F +9147FF5EE7A170D301A2A58A32121E64FB78669750EF65233156130BB51DA26C +C684CB4946E909544298F6B8EC328D6C7322E838CC41297F5A1E618FFE319124 +305DB0285964CE1DD0307F1B521E08B5F3C57168A538C2EA1DC3B64D986D9A43 +BF83C5FC9E6A9FCC2E6EE9D7C581480EA0A1E3BD3171F13D576E75A9C3479A67 +712DC0D52F47AD6296E5B488F9D3A6E3754C872C2DAA6A5B5FC0EB340F985E02 +3E44E07753BD36D431F4B3385CAFD82B7A593C44F4B090188189ABB97C593CD3 +7F6E41BA6B5EF6F9F7F0BD98236D8A2541D27111BE59C4664B361BC681B3D50E +28C97EDF51B365CEAA2B43B087B1B6333A27F1C1C01A9E974CD87EDDD7D184DA +02989F47F1188FC701E66B5306D74B2864397C7F3817DD6A40C5D26E098BB9BA +58D94EE5FF0BE890CBE7717D9042F405725D2C08AFE9AE6118C2D4024A13CA4F +4C3FBE1A6686290FBF812C0442FFB474421E4AF7377A106CE8818D4A70E91FEC +14F6E4493DF86996BEC392E47AEF1B21CF18673682BC666FE16F9A32F752CEF0 +F86E481067C9C83CFEDEDAC560D390167DE04B9EC0FF3E5FFDEB9CB00125829C +B3EED3E9668E4CC601DBA68AC54DE334E5D73CF78D12E4A0B4DD3C4AD8FFF573 +91998254E3C1735FABD53ACB450D03C9E090D57BB542CA8BED6CC382D6E65E89 +6C3D1B34F3ACFBE8A92488F5F5FC840BF7C75AD46945A56B3FA8FECC3EBADCA3 +D55CE1F07975B0A2D04DB2C3A00651D2C10E900F54372D638E40E90FA811EC19 +28E524F84432828BD8777D919F6C0D1C1AC623EAA258349CF2072AF11544AF25 +C93133D1D3D358BF8B71E94F367E5641148513CEEFCC461A328DE1A9C43A6DEA +123502E2F98A9FA8086198F911168AD85054AC753747E7348F964DF5D039E364 +20C3679FA4659C5F5CA2D3EB75A2620CCA0304AE592073D0C5FC57692235A37B +ED21009599AC22E2D2C3E83651B3FA45195BEC1396857546FD63391E28C6084F +36E782ABA8F7BCC01163DCD85523D0BFA9BC91DBEDAE9D7495E9DE5389A10299 +AD8EB3974638A05E322A58223D504E234FCEC89629C6FFC6C3790DAF7E6F81DF +C46DFC8AE53DE4D3676BD927F348EB7176ECB3CBBE7247775CF0723471EF3085 +3ABB677186121C901275360541EFAD48059105658C99366651C68B4EBFFEBBDC +5C2B79D537A9D193E041546C25F3FDEC2E760A5410571016F9EAFAAE8501693E +69D2CB3C2CC6CE248FEC8F1C98654F2A9DD5E0DECFB6913CB22A7B92682E3B32 +22D49ACC4A98E9508CA9BB539DEA589657D96E0E35A205C9AFB73C72CDD485CC +6E3C435EB51C9E6D50145A568A00F51ED4043D7F6055AF350BC4AF9C733476FA +675460F8584B8974D7061D351308F0055BFC3019AB79CBBCC8AC26D229D605B5 +45B1F5D7B506DDAC71F3775DF4BBD00E772BF1A857644E51BC31DAFBB48427BD +148C377C6DABE2BC17AE234EBDBF3060F7259A0FB6561B287D4AF864DE29D7F3 +0A7C9A2ED28C6446DA1A5D6F1C6E922A14D621179EB82978C85A49B718534A69 +895D0C53F03AC89BDFA9245F6903805203EB211499533BC29F5AEEFB01EE285B +DE97903C9F88E377AB6FE0D99AC2408C0C62BAE3FD818539DDEF5BCEC605A770 +7C730C9A7D97ADE411301454145B6401CABE6447ECACE2A613F2ADDE4DA61B40 +BCCC22CB08F7F5E516DB25B1B2291618619C380A67F628567F0495A9EBEC04C3 +3478111CBD51536386DF9E816148287196CD07E1EF1AF1E425E733019201BCFA +60D2004615986454AE2125A1993E56EE9C8A17C572B69F881D5ECC28E7FCF5B8 +645DFC1C47B263E7D6CF826708F40C19BA4E3C2085E502247198989AA7478A75 +E2039E37BE2C697C391587054CD67A9A07DE929BAA58F996BAC2A9158B52B363 +627582713C7AAF0928073799056084DB51A47D2CBDD1FD98BE64E732D74142D4 +5B0B124187FB0DC5B93602F064D3EE7F58E02209FD3167E9D85AC5DB9E306435 +609118474D16FA97DF7CE052934BF0443E0E013E5C8DF7FE2B8FB9D5B8E33892 +0286E51A7E3112B865B69AAFE571399750BA685ABD55E1958FC8FB8910EEA7A5 +C08EF52A8C543568EC4FB1E77ABBCEDD42266067EA264946D3AA4B54EB337D1D +C08988FF3CFB685FD00718D8E3399CFC29B26CEE6A4DF1EF624AAD58C1949779 +D32AD29E2292F7330AC690190FE6A1D9B9148ECD7F2D28F33446A783A4E0F5CE +395954048BB8DDA27AEB24D52E77227B64B86F5B806483DB10A7AB800079DC56 +6427EFB5B913236FAE3477C5A1DB97E6B85407AE86193366BAD0505E231F651C +91BD0B0724B13D8DA4 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont %%BeginFont: CMMI10 %!PS-AdobeFont-1.1: CMMI10 1.100 %%CreationDate: 1996 Jul 23 07:53:57 @@ -246,10 +1496,9 @@ /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 0 /.notdef put +dup 58 /period put readonly def /FontBBox{-32 -250 1048 750}readonly def -/UniqueID 5087385 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE @@ -313,10 +1562,10 @@ /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for -dup 0 /.notdef put +dup 106 /bar put +dup 110 /backslash put readonly def /FontBBox{-29 -960 1116 775}readonly def -/UniqueID 5000820 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 @@ -350,963 +1599,3498 @@ 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont -TeXDict begin 39158280 55380996 1000 600 600 (ru-refcard.dvi) -@start /Fa 242[71 13[{ TeXbbad153fEncoding ReEncodeFont }1 -66.4176 /CMSY8 rf -%DVIPSBitmapFont: Fb larm0800 8 56 -/Fb 56 241 df<123C127EB4FCA21380A2127F123D1201A312031300A25A1206120E5A5A -5A126009157A8714>44 D<B512C0A412047F9018>I<123C127E12FFA4127E123C08087A -8714>I<EB3FC0EBFFF03803E07C48487E48487E497E001EEB0780A2003E14C0A248EB03 -E0A500FC14F0B0007C14E0A3007E1307003E14C0A36CEB0F806C14006D5A3807C03E3803 -F0FC3800FFF0EB3FC01C2D7DAB23>48 D<130C133C137CEA03FC12FFEAFC7C1200B3B113 -FE387FFFFEA2172C7AAB23>I<EB7F803801FFF0380780FC380E003F48EB1F8048EB0FC0 -5A0060EB07E012F000FC14F07E1403A3007C1307C7FCA215E0140F15C0141F1580EC3F00 -147E147C5C495A495A495A495A011EC7FC5B5B4913305B485A4848136048C7FC000E14E0 -001FB5FC5A4814C0B6FCA21C2C7DAB23>I<EB3FC03801FFF03807C0FC380E007E487FEC -1F80003F14C0A2EB800F1300A2000C131FC7FC1580A2EC3F00143E5C5CEB03F0EBFFC014 -F0EB00FC143FEC1F8015C0140F15E0A2EC07F0A21238127C12FEA3EC0FE012F8006014C0 -0070131F6C1480001EEB3F00380780FC3801FFF038007FC01C2D7DAB23>I<000CEB0180 -380FC01F90B512005C5C14F014C0D80C7EC7FC90C8FCA8EB1FC0EB7FF8380DE07C380F80 -1F01001380000E130F000CEB07C0C713E0A2140315F0A4127812FCA448EB07E012E00060 -14C00070130F6C14806CEB1F006C133E380780F83801FFE038007F801C2D7DAB23>53 -D<1230123C003FB512F8A215F05A15E039700001C000601480140348EB0700140E140CC7 -121C5C143014705C495AA2495AA249C7FCA25B130E131EA2133EA3133C137CA413FCA913 -781D2E7CAC23>55 D<EB3F80EBFFF03803E0783807C03E48487E48487E003E1480140700 -7E14C0127C00FC14E01403A315F0A5007C1307127EA2003E130F7E6C131F3807803B3803 -E0F33800FFC390383F03E013001407A215C0A2140F001E1480003F14005C143E143C003E -5B001C5B380E03E03807FF80D801FEC7FC1C2D7DAB23>57 D<EE01C0EE0780EE1E001678 -ED01E0ED0780031EC7FC1578EC01E0EC0780021EC8FC1478EB01E0EB0780011EC9FC1378 -EA01E0EA0780001ECAFC127812E01278121EEA0780EA01E0EA0078131EEB0780EB01E0EB -0078141EEC0780EC01E0EC0078151EED0780ED01E0ED0078161EEE0780EE01C02A297AA4 -37>60 D<12E01278121EEA0780EA01E0EA0078131EEB0780EB01E0EB0078141EEC0780EC -01E0EC0078151EED0780ED01E0ED0078161EEE0780EE01C0EE0780EE1E001678ED01E0ED -0780031EC7FC1578EC01E0EC0780021EC8FC1478EB01E0EB0780011EC9FC1378EA01E0EA -0780001ECAFC127812E02A297AA437>62 D<4A7E4A7EA34A7EA24A7EA3EC1BF81419A2EC -30FCA2EC70FEEC607EA24A7EA349486C7EA2010380EC000FA201066D7EA3496D7EA2011F -B57EA29038180001496D7EA349147EA201E0147F4980A20001ED1F801203000716C0D80F -F0EC3FE0D8FFFC0103B5FCA2302F7EAE35>65 D<B612FCEDFF803A03F8000FC00001EC03 -F06F7E6F7E82167E167FA6167E16FE5E4B5A4B5AED0FE0ED7F8090B6C7FC16E09039F800 -03F0ED01FC6F7E167F821780161F17C0A61780163F17005E16FEED03FC0003EC0FF0B712 -C04BC7FC2A2D7DAC32>I<DA1FF013C09138FFFE01903903F00F8390390F8001E3013FC7 -1277017C143F4848141F4848140F48481407A248481403121F491401123F90C8FC481500 -A300FE1600AB127F17C0A27E7F001F15016D1580120F6C6C1403EE07006C6C14066C6C14 -0ED8007C5C013F147890390F8001E0903903F00FC0902600FFFEC7FCEC1FF02A2F7CAD33 ->I<B712FCA23903F800030001EC007C82161E160EA21606A31607821530A293C7FCA315 -70A2EC01F090B5FCA2EBF801EC0070A21530A217C0A39238000180A4160317005EA25E5E -167F0003EC01FEB7FCA22A2D7DAC30>69 D<B712FCA23903F800030001EC007C163E161E -160EA21606A3160716031518A21600A31538157815F890B5FCA2EBF800157815381518A5 -92C7FCAB487EB512F8A2282D7EAC2E>I<DA1FF013C09138FFFE01903903F00F8390390F -8001E3013FC71277017C143F4848141F4848140F48481407A248481403121F491401123F -90C8FC481500A300FE1600A992381FFFFEA2007F9138001FE0EE0FC0A27E7F121F7F120F -6C7EA26C7E6C6C141FEA007C013F143FD90F8013F3903903F007C10100B51200DA1FF813 -002F2F7CAD37>I<B512F0A23803FC006C5AB3B3A3487EB512F0A2142D7EAC19>73 -D<90387FFFF0A201001300147EB3AD123812FEA314FE5C1278387001F86C485A381E07E0 -3807FF80D801FCC7FC1C2E7DAC24>I<D8FFF8923807FFC06D5D0003EFF00000015F01BE -151BA2019F1533A3D98F801463A2D987C014C3A2D983E0EB0183A3D981F0EB0303A2D980 -F81306A3027C130CA26E1318A36E1330A291380F8060A2913807C0C0A3913803E180A291 -3801F300A3EC00FEA2157C487ED80FF04B7EB5D93801B512C0A23A2D7DAC41>77 -D<D8FFF8903803FFFC7F00019138003FC06DEC0F006D1406EBBF80A2EB9FC0EB8FE01387 -80EB83F8138180EB80FE147E147FEC3F80EC1FC0140F15E0EC07F0140315F8EC01FC1400 -15FE157FED3F86151F16C6ED0FE6150716F6ED03FE1501A21500167E163EA2486C141ED8 -0FF0140EB5FC16062E2D7DAC35>I<EC3FF0903801FFFE903907E01F8090391F8007E090 -393E0001F001FCEB00FC4848147E4848804848EC1F8049140F000F16C04848EC07E0A248 -C8EA03F0A24816F8A2007E1501A200FE16FCAA007FED03F8A36C16F06D1407001F16E0A2 -6C6CEC0FC06D141F000716806C6CEC3F006C6C147E6C6C5C017E495A90391F8007E09039 -07E01F80902601FFFEC7FC9038003FF02E2F7CAD37>I<B612F815FF3A03F8001FC00001 -EC07E0ED01F016F8ED00FC16FE167E167FA6167E16FE16FCED01F816F0ED07E0ED1FC090 -B6120015F801F8C8FCB2487EB512F0A2282D7DAC30>I<90383F80303901FFF0703807C0 -7C390F000EF0001E13074813034813011400127000F01470A315307EA26C1400127E127F -EA3FE013FE381FFFE06C13FC6C13FF00011480D8003F13E013039038003FF0EC07F81401 -140015FC157C12C0153CA37EA215787E6C14706C14F06CEB01E039F78003C039E3F00F00 -38E07FFE38C00FF01E2F7CAD27>83 D<007FB712F8A29039000FC003007C150000701638 -A200601618A200E0161CA248160CA5C71500B3A94A7E011FB512E0A22E2D7EAC33>I<B5 -39F003FFFCA2D803FCC7EA3FC06C48EC0F001606B3AB160E0000150C7F161C017C141801 -7E14386D5C6D146090390F8001E0903907E00380902601F80FC7FC9038007FFCEC0FF02E -2E7DAC35>I<13FF000713C0380F01F0381C00F8003F137C80A2143F001E7FC7FCA4EB07 -FF137F3801FE1FEA07F0EA1FC0EA3F80EA7F00127E00FE14065AA3143F7E007E137F007F -EBEF8C391F83C7FC390FFF03F83901FC01E01F207D9E23>97 D<EA07C012FFA2120F1207 -AC14FE9038C7FF809038CF03E09038DC01F09038F8007C49137E49133E497F1680A2150F -16C0A9ED1F80A216005D6D133E6D5B01B05B9038BC01F090380E07E0390607FF80260001 -FCC7FC222F7EAD27>I<EB1FE0EB7FFC3801F01E3803E0073907C01F80EA0F80EA1F005A -003EEB0F00007E90C7FCA2127C12FCA9127EA215C07E6C130101801380380FC0033907E0 -07003801F03E38007FF8EB1FC01A207E9E1F>I<15F8141FA214011400ACEB0FE0EB7FF8 -3801F81E3803E0073807C003380F8001EA1F00481300123E127EA25AA9127C127EA2003E -13017EEB8003000F13073903E00EFC3A01F03CFFC038007FF090391FC0F800222F7EAD27 ->I<EB1F80EBFFF03803E0783807C03E380F801E381F001FEC0F80123E007E130715C012 -7C12FCA3B6FCA200FCC8FCA5127EA2003E14C0123F6C1301390F80038001C013003803E0 -0F3801F03C38007FF8EB1FC01A207E9E1F>I<EB03F0EB0FFCEB3E1EEB7C3F13F8EA01F0 -A23803E00C1400AAB512E0A23803E000B3A6487E387FFF80A2182F7FAE16>I<013F13F8 -9038FFC3FE3903E1FF1E3807807C000F140C391F003E00A2003E7FA76C133EA26C6C5A00 -071378380FE1F0380CFFC0D81C3FC7FC90C8FCA3121E121F380FFFF814FF6C14C04814F0 -391E0007F848130048147C12F848143CA46C147C007C14F86CEB01F06CEB03E03907E01F -803901FFFE0038003FF01F2D7E9D23>I<EA07C012FFA2120F1207AC14FE9038C3FF8090 -38C703E09038DE01F013F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2222E7EAD27> -I<EA0780EA0FC0EA1FE0A4EA0FC0EA0780C7FCA8EA07C012FFA2120F1207B3A5EA0FE0EA -FFFCA20E2E7EAD14>I<EA07C012FFA2120F1207ADEC1FFEA2EC0FF0EC07C05D020EC7FC -5C5C5C5CEBC3C013C7EBCFE0EBDFF013F9EBF0F8497EEBC07E143E80816E7E14076E7E81 -6E7E486C487E3AFFFE07FF80A2212E7EAD25>107 D<EA07C012FFA2120F1207B3B3A3EA -0FE0EAFFFEA20F2E7EAD14>I<2607C07FEB07F03BFFC3FFC03FFC903AC783F0783F3C0F -CE01F8E01F803B07DC00F9C00F01F8D9FF8013C04990387F000749137EA249137CB2486C -01FEEB0FE03CFFFE0FFFE0FFFEA2371E7E9D3C>I<3807C0FE39FFC3FF809038C703E039 -0FDE01F0EA07F8496C7EA25BA25BB2486C487E3AFFFE1FFFC0A2221E7E9D27>I<EB1FE0 -EB7FF83801F03E3803C00F3907800780390F0003C04814E0003EEB01F0A248EB00F8A300 -FC14FCA9007C14F8A26CEB01F0A26CEB03E0A2390F8007C03907C00F803901F03E003800 -7FF8EB1FE01E207E9E23>I<3807C0FE39FFC7FF809038CF03E0390FDC01F03907F800FC -49137E49133E49133FED1F80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC -01F09038CE07E09038C7FF80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>I<38 -0781F038FF87FCEB9E7EEA0F98EA07B813B0EBF03CEBE000A35BB1487EB5FCA2171E7E9D -1B>114 D<3801FE183807FFB8381E01F8EA3C00481378481338A21418A27E7EB41300EA -7FF06CB4FC6C13C06C13F0000113F838001FFC130138C0007E143EA26C131EA27EA26C13 -3CA26C137838FF01F038E3FFC000C0130017207E9E1C>I<1360A413E0A312011203A212 -07121FB512F0A23803E000AF1418A714383801F03014703800F860EB3FE0EB0F80152A7F -A81B>I<D807C013F800FF131FA2000F130100071300B21401A314033803E007EC0EFC3A -01F81CFFC038007FF890391FE0F800221F7E9D27>I<3AFFFC01FFC0A23A0FE0007E0000 -07147C15380003143015706C6C1360A26C6C5BA390387C0180A26D48C7FCA2EB3F07EB1F -06A2EB0F8CA214DCEB07D8A2EB03F0A36D5AA26D5A221E7F9C25>I<3BFFFC3FFE07FFA2 -3B0FE003F001F801C09038E000F00007010114E0812603E00314C0A2913807F8012701F0 -06781380A29039F80E7C030000D90C3C1300A290397C181E06A2151F6D486C5AA2168C90 -391F600798A216D890390FC003F0A36D486C5AA36DC75A301E7F9C33>I<3AFFFC07FF80 -A23A0FF003FC000003EB01F0000114C06D485A000091C7FCEB7C06EB3E0E6D5A14B8EB0F -B0EB07E013036D7E497E1307EB067C497EEB1C1F01387FEB700F496C7E6E7ED803C07F00 -076D7E391FE003FC3AFFF007FFC0A2221D7F9C25>I<3AFFFC01FFC0A23A0FE0007E0000 -07147C1538000314306D137000011460A26C6C5BA2EBFC01017C5BEB7E03013E90C7FCA2 -EB1F06A2148EEB0F8CA2EB07D8A2EB03F0A36D5AA26D5AA2495AA2130391C8FC1278EAFC -06A25B131CEA7838EA7070EA3FE0EA0F80222B7F9C25>I<B9FCA2D803F8C7EA1FC00001 -1680B3B3A3486CEC3FC0B5D8F00FB5FCA2302D7DAC37>207 D<B512F814FF390FC01F80 -0007EB07E0140315F0A4EC07E0EC0FC0EC3F809038FFFC00809038C00F80EC03E0EC01F0 -EC00F815FCA5EC01F8A2EC03F0000FEB0FE0B61280ECFE001E1D7E9C23>226 -D<90B612E0A290390E007E00157C13061304130CAA5BA35BA21370136013E0485A485A00 -0FC7127E007FB612E0A2007CC7120300781401007014000060156000E01570A2481530A5 -24287F9C27>228 D<EB1F80EBFFF03803E0783807C03E380F801E381F001FEC0F80123E -007E130715C0127C12FCA3B6FCA200FCC8FCA5127EA2003E14C0123F6C1301390F800380 -01C013003803E00F3801F03C38007FF8EB1FC01A207E9E1F>I<EB1FE0EB7FF83801F03E -3803C00F3907800780390F0003C04814E0003EEB01F0A248EB00F8A300FC14FCA9007C14 -F8A26CEB01F0A26CEB03E0A2390F8007C03907C00F803901F03E0038007FF8EB1FE01E20 -7E9E23>238 D<3807C0FE39FFC7FF809038CF03E0390FDC01F03907F800FC49137E4913 -3E49133FED1F80A3ED0FC0A8151F1680A2ED3F00A26D137E6D137C5D9038FC01F09038CE -07E09038C7FF80D9C1FCC7FC01C0C8FCA9487EEAFFFEA2222B7E9D27>240 -D E -%EndDVIPSBitmapFont -/Fc 197[23 58[{ TeXaae443f0Encoding ReEncodeFont }1 83.022 -/CMMI10 rf /Fd 145[42 3[23 106[{ TeXbbad153fEncoding ReEncodeFont }2 -83.022 /CMSY10 rf -%DVIPSBitmapFont: Fe lati1000 10 6 -/Fe 6 115 df<14F8EB07FE90381F871C90383E03FE137CEBF801120148486C5A485A12 -0FEBC001001F5CA2EA3F801403007F5C1300A21407485C5AA2140F5D48ECC1C0A2141F15 -831680143F1587007C017F1300ECFF076C485B9038038F8E391F0F079E3907FE03FC3901 -F000F0222677A42A>97 D<147F903803FFC090380FC1E090381F0070017E137849133839 -01F801F83803F003120713E0120FD81FC013F091C7FC485AA2127F90C8FCA35A5AA45AA3 -153015381578007C14F0007EEB01E0003EEB03C0EC0F806CEB3E00380F81F83803FFE0C6 -90C7FC1D2677A426>99 D<EC07C0EC3FF09138FC38E0903901F01FF0EB03E0903807C00F -EB0F80011F1307D93F0013E05B017E130F13FE4914C01201151F1203491480A2153F1207 -491400A25DA249137EA215FEA25D00031301140314076C6C485A0000131FEB787BEB3FF3 -90380FC3F0EB00031407A25DA2140F5D121C007E131F5D00FE49C7FC147E5C387801F838 -7C07E0381FFF80D803FEC8FC24367CA426>103 D<EB03F0EA01FFA3EA00075CA3130F5C -A3131F5CA3133F91C8FCA35B90387E07F0EC1FFCEC783E9038FFE01F02C01380EC800F14 -00485A16C05B49EB1F8012035BA2153F000715005BA25D000F147E5B15FE5D121FD98001 -131C15F8163C003F01031338010013F0A216704814E0007E15F016E0EDE1C000FE903801 -E38048903800FF000038143C263B7BB92A>I<D801E013FE3A07F803FF803A0E3C0F07C0 -3A1E3E3C03E0261C1F787F39383FF00114E0007813C000708114804A485AEAF07FEAE07E -A20000140701FE5C5BA2150F00015D5B151F5E12034990383F8380160316070007027F13 -0049137EA2160E000F147C49141E161C5E001FEC3C7849EB1FE00007C7EA0780292679A4 -2F>110 D<3903C003F0390FF01FFC391E783C0F381C7C703A3C3EE03F8038383FC0EB7F -800078150000701300151CD8F07E90C7FCEAE0FE5BA2120012015BA312035BA312075BA3 -120F5BA3121F5BA3123F90C9FC120E212679A423>114 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Ff labx1000 10 36 -/Ff 36 256 df<B61280A819087F9620>45 D<EE7F80ED7FFFA4150381AF903801FF8101 -0F13F1013F13FD9038FFC07F0003EB001FD807FC1307000F8048487F5B123FA2485AA312 -FFAA127FA27F123FA26C6C5B000F5C6C6C5B6C6C4913C02701FF80FD13FE39007FFFF901 -1F13E1010113012F3A7DB935>100 D<903803FF80011F13F0017F13FC3901FF83FE3A03 -FE007F804848133F484814C0001FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FC -A301E0C8FCA4127FA36C7E1678121F6C6C14F86D14F000071403D801FFEB0FE06C9038C0 -7FC06DB51200010F13FC010113E025257DA42C>I<EC1FF0903801FFFC010713FF90391F -F87F8090383FE0FFD9FFC113C0A2481381A24813016E1380A2ED3E0092C7FCA8B6FCA400 -0390C8FCB3ABB512FEA4223A7DB91D>I<01FEEB7FC000FF903803FFF8020F13FE91381F -03FFDA3C011380000713780003497E6D4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430 -257DA435>110 D<01FFEC3FC0B5EB3FFFA4000714016C80B3A35DA25DA26C5C6E4813E0 -6CD9C03E13FF90387FFFFC011F13F00103138030257DA435>117 -D<EB3FFE0003B512E0000F14F8391FF00FFE003FEB03FF6D6C7F6E7FA26F7EA26C5A6C5A -EA0380C8FCA2EC3FFF010FB5FC137F3901FFF87F00071380380FFE00EA3FF85B485A12FF -5BA415FF6D5A127F263FF00713F83B1FFC1FBFFFC0390FFFFE1F0003EBF80F39003FE003 -2A257DA42E>224 D<163EED03FEEC01FF147F0107B5FC011F5C137F48B65A485D4815C0 -4802F8C7FC02C0C8FCD81FFCC9FC13F0485A5B5B90CAFC127EA2127C903801FFC0010F13 -F8D8787F13FF26F8FF807F3AFBFE003FE0B4486D7E496D7E496D7EA28249130382A31780 -A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C495A6C6C6CB45A6C6CB5 -C7FC011F13FC010113C0293A7DB930>I<B612FCEDFFC016F000039038001FF86F7E6F7E -A26F7EA44B5AA2ED1FFCED7FF091B512C093C7FC16E09138000FF86F7E6F7E6F7E178017 -C0A617805D17004B5AED1FFCB75A16E093C7FC2A257EA430>I<B712E0A30003EB003F15 -0F15071503150116F0A21500A51600B3B512FEA324257EA429>I<010FB712C0A3903B00 -7C003FF0001478AB1470A214F0A35C1301A25C1303A2495AA249C7FC5B133E5B5B485A00 -7FB812E0A301E0C8127F90C9120F007E1607007C1603A248EE01F0A3481600A5343280A4 -35>I<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F804848133F484814C000 -1FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678 -121F6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113 -E025257DA42C>I<D83FFF013FB5EB3FFFA3D803FE010001C0EB1FF0000019C0017F4D5A -D91FC004FEC7FC6D6C4B5A6D6C4B5AD901FCED0FE06D6C4B5A023F4BC8FCDA1FC014FE6E -6CEBC1FC6F13C303FC13CF4A6CEBDFFE4AB7FC4A82DAFFEF01FD7F4901E301F17F4901C1 -01E07F0380EBC07F49496E7E49486F7E49486F7E49486F7E017F844A8149486F7F48496F -7F4849707E4890C76F7E4885B5D8E03FD9FF01B512C0A34A257EA44F>I<38701FFF007C -B512F0007F14FE9038E00FFFD98001138090C713C0127E007CEC7FE0A21278A2C8EAFFC0 -5C4A1300EC0FFE90383FFFF815C015F89038000FFE913803FF80020013C0A2ED7FE016F0 -A412F07E007815E015FF007C15C06C01031380261FC00F13006CB512FC000314F0C66C90 -C7FC24257EA42A>I<B5D8FC3FB5FCA3000390C713C0A25D5DA25D5D5D151E5D157C1578 -5D4A5AA24A5A4A5AA24A5A141E143E143C5C14F85C5C5CA25C91C7FCA2B5D8FC3F13FFA3 -30257EA435>I<90390F8001F090391FE007F8496C487E017F80ECF81FA4ECF00F013F5C -ECE0076D486C5A6DB55A010314C0010091C7FCEC1FF891C9FCA4B5D8FC3FB5FCA3000390 -C713C0A25D5DA25D5D5D151E5D157C15785D4A5AA24A5A4A5AA24A5A141E143E143C5C14 -F85C5C5CA25C91C7FCA2B5D8FC3F13FFA330397EB835>I<B500FCEBFFFCA3000390C7EA -7FC0170016FEED03F84B5A4B5AED3F804BC7FC15FCEC03F84A5A140F143F4A7E4A7E81EC -F7FF02C77F02837F14016E7F6F7E6F7E6F7E82150F6F7E6F13806F13C06F13E017F0B5D8 -FC0713FFA330257EA435>I<011FB71280A3903B00F8007FE0005CB3A3EA1E01123F387F -81E0EAFFC113C3A2EBC7C0138F6CB45A6CD9001FB512806C5AEA0FF831257FA435>I<B5 -6C91387FFF806E91B5FC5E00036DEDE000A2EE03BFEBDFF0EE073FEBCFF8160EEBC7FC16 -1CA2EBC3FE1638EBC1FF167001C0138016E0EC7FC0EDC1C0A2EC3FE1EDE380EC1FF3EDF7 -006EB4FC5D1407A25D14035D3807E001B5D9F00FB51280140015E039257DA440>I<B5D8 -FC3FB5FCA3000390C713C0AC91B6FCA391C7FCB0B5D8FC3F13FFA330257EA435>I<9038 -01FFC0010F13F8017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7EA2003F -81491303007F81A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A -6C6C495A6C6C6CB45A6C6CB5C7FC011F13FC010113C029257DA430>I<B9FCA3000390C7 -13C0B3ADB5D8FC3F13FFA330257EA435>I<9039FF01FF80B5000F13F0023F13FC9138FE -07FFDAF00113800007496C13C06C0180EB7FE091C713F0EE3FF8A2EE1FFCA3EE0FFEAA17 -FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF00313809139FC07FE0091383FFFF8 -020F13E0020390C7FC91C9FCACB512FCA42F357EA435>I<903801FFC0010F13FC017F13 -FFD9FF8013802603FE0013C048485AEA0FF8121F13F0123F6E13804848EB7F00151C92C7 -FC12FFA9127FA27F123FED01E06C7E15036C6CEB07C06C6C14806C6C131FC69038C07E00 -6DB45A010F13F00101138023257DA42A>I<007FB612FEA301811381D87E01EB807E007C -153E0078151EA200F8151FA200F0150FA500001500B348B61280A328257EA42D>I<B539 -F001FFF8A3000790C7EA3F806CED1F00161E6E133E6C153C6E137C6C15786E13F8017F5C -ECF001013F5C14F8011F495AA2ECFC07010F5CECFE0F010791C7FC6E5A6D131E15BE6D13 -BC15FC6D5BA36E5AA26E5AA26E5AA26E5AA292C8FCA25C141E003F133E387F803C38FFC0 -7C147814F8EBC1F0EBC3E06C485A387D1F80D83FFFC9FCEA1FFCEA07F02D357EA432>I< -ED01FEEC01FFA4EC000F1507AFDAFF87EB1FF0010F01E7EB7FFF013F90B712C09026FFE0 -7F9038E07FF00003D9801F9038801FFC48496C496C7E48486D486D7E4848701380498200 -3F19C04982007F19E0A34848EF7FF0A96C6CEFFFE0A3003F19C06D5E001F19806D5E6C6C -496C4913006C6C4C5A6C6D486D485AC6D9E07F9038E07FF0013FB812C0010F9026E7FE7F -90C7FC01000187EB1FF0DA000790C9FCAC4AB512F8A4444A7DB94B>I<B539F01FFFF0A3 -000790390003FE006C90388001F06C6D485A6C1407D97FE05B6D6C485A6E48C7FC90381F -FC3E010F5B903807FEFC6D6C5A5D6D5B6D5B6E7E6E7E814A7EA24A7E903801F3FFD903E3 -7FD907C17FEB0FC049486C7E4A6C7E013E80496D7E49130F00016E7ED807FC80B5013F13 -F8A32D257EA432>I<B5D8FC3FB5FCA3000390C713C0B3ADB91280A3C91201EE003F171F -170FA2EF07C0A31703A532327EA435>I<B5D8FC3FB5FCA3000390C713C0AD6C6D5A6C14 -0F90387FC07F90383FFFFE010F13F00101138090C8FCAC033F13FFA330257EA435>I<B5 -D8FC3FB5000FB512C0A3000390C7903AC0003FF000B3ADBC12E0A3CD127F1A0F1A071A03 -A2F201F0A31A00A54C327EA44F>249 D<007FB512F0A301811380EA7E01127C1278A212 -F8A212F0A5000091B5FC17F017FC9238801FFEEE07FF7013807013C0A27013E0A64C13C0 -A24C13804C1300EE1FFE017F90B55A17F094C7FC33257EA439>I<B500FC023FB5FCA300 -0390C913C0ACECFFFEEDFFE016F89138003FFCED0FFE6F7E6F7FA26F7FA64B5BA24B5B4B -5AED3FFCB7D8F83F13FF16E0EDFE0040257EA445>I<B512FCA3000390C9FCACECFFFEED -FFE016F89138003FFCED0FFE6F7E6F1380A26F13C0A64B1380A24B13004B5AED3FFCB75A -16E04BC7FC2A257EA430>I<B500FCECFFE0040713FC043FEBFF80000390C7397FC07FC0 -923A01FF001FF04B486D7E4B486D7E4B486D7EA2031F814C7F033F1680A3037F16C091B5 -FCA3EC007FA5033F1680A3031F1600705B030F5DA26F6C495A6F6C495A6F6C495A6F9038 -C07FE0B500FC013FB51280040F49C7FC040013E042257EA448>254 -D<49B612F8133F90B7FC00039039C007FE003807FE00120F5B121FA5120F6C7E6C7E6C13 -E06C6CB5FC131F13004913E715C74913875B491307EB1FFE14FC133FEB7FF8EBFFF04813 -E0A24813C0481380121FB500F1B512F8A32D257EA432>I E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fg latt1000 10 75 -/Fg 75 126 df<130EEB3F80497E3801FFF0487F000F13FE381FFBFFD87FF113C039FFC0 -7FE0EB803F38FE000F007CEB07C0007813031B0D77B42D>2 D<007FB512F0B612F8A36C -14F01D0579942C>21 D<121FEA3F80EA7FC0EAFFE0B0EA7FC0AEEA1F00C7FCA7121FEA3F -80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B3470B32C>33 D<003C131E007F137F481480 -A66C1400A6007E7FA6003E133EA3003C131E001C131C191977B32C>I<0107131C90380F -803EA8011F137EEC007CA4003FB612E0B712F8A43A003E00F800A2EB7E01017C5BA8EBFC -0301F85BA2B712F8A4003F15E03A01F007C000A30003130F01E05BA86C486CC7FC25337D -B22C>I<EB01C0497EA6EB0FFC90387FFF8048B512E00007804880391FFBEFFC393FC3E1 -FE903803E07F007E80127C00FC158012F8157FA300FCEC3F00A2007E91C7FC127FEA3FC3 -13FBEA1FFF6C13FC6C13FF000114C06C6C7F011F13F801037F14E7ECE1FEECE07F810018 -80007E1580150F12FFA312FE151F1600007E5C007F143ED83F8313FE9038C3E1FC391FFB -EFF86CB55A6C5C6C5CC691C7FCEB1FF8EB03E0A66D5A21417BB92C>I<D807801307D81F -E0EB0F80151F487E486C133F1600007C5CD8FCFC137EEAF87C15FE5D14015DA21403D8FC -FC5BEA7CF8007F13075D383FF00FD81FE05BA23807801FC75B143F92C7FCA25C147E14FE -5CA213015CA213035C13075CA2130F5C131FEC800FED3FC0013FEB7FE0140049EBFFF001 -7E13F9A2D9FE0113F801FC13F0A2120113F8120313F015F90007010013F05B000F14FF49 -EB7FE0A20007EC3FC06C48EB0F0025417DB92C>I<EA0F80EA1FE0EA3FF0127F13F8A213 -FCA2123F121F120FEA007CA313FC13F8A2120113F01203EA07E0A2EA0FC0EA3F80127FEA -FF005A12F812700E1D71B22C>39 D<143814FC13011303EB07F8EB0FF0EB1FC0EB3F80EB -7F0013FE485A485A5B12075B120F5B485AA2123F90C7FCA25A127EA312FE5AAC7E127EA3 -127F7EA27F121FA26C7E7F12077F12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8EB -03FC130113001438164272B92C>I<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E6C7E -137F7F1480131F14C0130FEB07E0A214F01303A214F81301A314FC1300AC130114F8A313 -0314F0A2130714E0A2EB0FC0131F1480133F14005B13FE485A485A485A485AEA3FC0485A -48C7FC5A5A1270164279B92C>I<EB0380497EA60020140800F8143E00FE14FE00FF13C1 -EBC7C7EBE7CF003FB512F8000F14E0000314806C140038007FFCA248B5FC481480000F14 -E0003F14F839FFE7CFFEEBC7C7EB07C100FE13C000F8143E0020140800001400A66D5A1F -247AAA2C>I<147014F8AF003FB612E0B712F8A4C700F8C7FCB0147025267DAB2C>I<EA0F -80EA1FE0EA3FF0EA7FF8A213FCA3123F121F120F120013F8A21201EA03F01207EA1FE0EA -7FC0EAFF80130012FC12700E17718A2C>I<007FB512F0B612F8A36C14F01D0579942C>I< -121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507ED0F80A2151F -16005D153E157E157CA215FC5D14015D14035D14075D140F5D141F92C7FC5C143EA2147E -147C14FC5C13015C13035C13075C130F5C131F91C8FC5B133EA2137E137C13FC5B12015B -12035B12075B120F5B121F90C9FCA25A123E127E127C12FC5AA2127021417BB92C>I<EB -03F8EB0FFE90383FFF80497F90B57E3901FE0FF03903F803F848486C7EEBE0004848137E -A248487FA248C7EA1F80A2003E140F007E15C0A3007C140700FC15E0AC6C140F007E15C0 -A46CEC1F80A36C6CEB3F00A26C6C137E6D13FE00075CEBF0016C6C485A3901FE0FF06CB5 -5A6D5B6D5BD90FFEC7FCEB03F823357CB32C>I<1307497EA2131FA2133F137F13FF5A12 -07127FB5FC13DF139FEA7C1F1200B3AE007FB512E0B612F0A36C14E01C3477B32C>I<EB -0FF890387FFF8048B512E00007804814FC391FF80FFE393FE001FF903880007F48C7EA3F -80007E141F00FE15C0150F6C15E01507A3127E123CC8FCA2150F16C0151F1680153F1600 -5D15FE4A5A14034A5A4A5A4A5A4A5AECFF804948C7FC495A495A495AEB3FE0EB7F8049C8 -FC485A4848EB03C04848EB07E0EA1FE0485A48B6FCB7FCA36C15C023347CB32C>I<EB0F -FC90387FFF8048B512E0000714F84880391FF807FEEBC0004848137F6D7F1680151FA26C -5A6CC7FCC8FC153F16005D15FE14014A5AEC1FF890381FFFF0495BA215F86D7F90380007 -FEEC00FF81ED3F80ED1FC0150FA216E01507A2123C127EB4FC150F16C0A248141F007FEC -3F806DEB7F006C6C5B391FF807FE6CB55A6C5C6C14E0C66C1380D90FFCC7FC23357CB32C ->I<EC07F04A7E141F143FA2147EA214FCEB01F8A2EB03F0EB07E0A2EB0FC0EB1F80A2EB -3F00137EA25B485AA2485A5B1207485AA2485A48C7FCA2127E5AB712FC16FEA36C15FCC8 -EAF800AA91387FFFF091B512F8A36E13F027347EB32C>I<000FB512FE4880A35D0180C8 -FCADEB83FE90389FFF8090B512E015F8819038FE03FE9038F000FF01C07F49EB3F8090C7 -121F6C15C0C8120FA2ED07E0A4123C127EB4FC150F16C0A248141F007EEC3F80007FEC7F -006C6C5B6D485A391FF80FFC6CB55A6C5C000114C06C6C90C7FCEB0FF823347CB22C>I< -121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121FEA3F80EA7FC0EAFFE0A5 -EA7FC0EA3F80EA1F000B2470A32C>58 D<1502ED0F80151F157F15FF913803FE00EC0FFC -EC1FF0EC7FE0ECFF80D903FEC7FC495AEB1FF0495AEBFF80000390C8FCEA07FCEA1FF8EA -3FE0EAFF8090C9FCA27FEA3FE0EA1FF8EA07FC6CB4FCC67FEB3FE06D7EEB07FC6D7E9038 -00FF80EC7FE0EC1FF0EC0FFCEC03FE913800FF80157F151F150FED0200212A7BAD2C>60 -D<122012F87EB4FC7FEA3FE0EA1FF8EA07FC6CB4FCC67FEB3FE06D7EEB07FC6D7E903800 -FF80EC7FE0EC1FF0EC0FFCEC03FE913800FF80157FA215FF913803FE00EC0FFCEC1FF0EC -7FE0ECFF80D903FEC7FC495AEB1FF0495AEBFF80000390C8FCEA07FCEA1FF8EA3FE0EAFF -8090C9FC12FC5A1220212A7BAD2C>62 D<EB3FFE0003B512C0000F14F04814FC4880397F -E007FF90C7FC00FEEC3F806C141FA3153F007EEC7F00003C5CC7EA03FEEC0FFC4A5AEC3F -E04A5A4AC7FC495A495A5C13075C130F5CA76D5A90C9FCA8EB0380EB0FE0A2497EA36D5A -A2EB038021337BB22C>I<EC7F80903803FFE0010F7F013F7F497F9038FFC0FE3901FE00 -7FD803F87F4848EB1F809038E00FCF390FC03FFF48484813C091B5FCEA3F01393E03F87F -903907F03FE0007EEBE01F397C0FC00FEC8007A2EAFC1F00F8EB0003A900FCEB8007D87C -0F14C0A2ECC00F3A7E07E01F80003EEBF03F903903F87F00393F01FFFED81F805B6E5A6C -6C6C5A3907E00FC09039F00007C06C6CEB0FE0D801FE131F3900FFC0FF6DB512C06D1480 -010FEBFE00010313F89038007FC023337CB22C>I<14FE497EA4497FA214EFA2130781A2 -14C7A2010F7FA314C390381F83F0A590383F01F8A490387E00FCA549137E90B512FEA348 -80A29038F8003FA34848EB1F80A4000715C049130FD87FFEEBFFFC6D5AB514FE6C15FC49 -7E27347EB32C>I<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED07F01503A2 -ED01F8A6ED03F0A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039F0001FE0ED -07F0ED03F81501ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF0007FB612E016 -C0B712806CECFE0015F027337FB22C>I<02FF13700107EBE0F84913F9013F13FD4913FF -EBFF813901FE007F4848131FD807F0130F1507485A491303485A150148C7FCA25A007EEC -00F01600A212FE5AAB7E127EA3007F15F06CEC01F8A26C7EA26C6C13036D14F06C6C1307 -16E0D803FC131F6C6CEB3FC03A00FF81FF806DB512006D5B010F5B6D13F0010013802535 -7DB32C>I<007FB5FCB612C015F0816C803907E003FEEC00FFED7F80153FED1FC0ED0FE0 -A2150716F0150316F81501A4ED00FCACED01F8A3150316F0A2150716E0150FED1FC0153F -ED7F80EDFF00EC03FE007FB55AB65A5D15C06C91C7FC26337EB22C>I<007FB612F0B712 -F8A37E3903F00001A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA516 -3C167EA8007FB612FEB7FCA36C15FC27337EB22C>I<007FB612F8B712FCA37ED803F0C7 -FCA716781600A515F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5FC805C7E26 -337EB22C>I<903901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC0149 -7E4848137F4848133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5AA8 -913803FFF84A13FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D137F -6C7E6C6C13FF6D5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357DB3 -2C>I<387FFFE0B57EA36C5BD803F0C8FCB3AE16F0ED01F8A8007FB6FCB7FCA36C15F025 -337DB22C>76 D<D87FE0EB0FFC486CEB1FFEA26D133F007F15FC000F15E001BC137BA401 -9E13F3A3EB9F01A2018F13E3A21483A2018713C314C7A201831383A214EFA201811303A2 -14FFEB80FEA3147C14381400ACD87FF0EB1FFC486CEB3FFEA36C48EB1FFC27337EB22C> -I<007FB512C0B612F88115FF6C15802603F00013C0153FED0FE0ED07F0A2150316F81501 -A6150316F01507A2ED0FE0ED3FC015FF90B61280160015FC5D15C001F0C8FCB0387FFF80 -B57EA36C5B25337EB22C>80 D<387FFFFCB67E15E015F86C803907E007FE1401EC007F6F -7E151FA26F7EA64B5AA2153F4BC7FCEC01FE140790B55A5D15E081819038E007FCEC01FE -1400157F81A8160FEE1F80A5D87FFEEB1FBFB5ECFF00815E6C486D5AC8EA01F029347EB2 -2C>82 D<90381FF80790B5EA0F804814CF000714FF5A381FF01F383FC003497E48C7FC00 -7E147F00FE143F5A151FA46CEC0F00007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC00 -03EBFFC06C14F06C6C7F01077F9038007FFEEC07FF02001380153FED1FC0A2ED0FE0A200 -78140712FCA56CEC0FC0A26CEC1F806D133F01E0EB7F009038FE01FF90B55A5D00F914F0 -D8F83F13C0D8700790C7FC23357CB32C>I<007FB612FCB712FEA43AFC007E007EA70078 -153CC71400B3AF90383FFFFCA2497F6D5BA227337EB22C>I<D87FF0EB07FF486C491380 -A36C486D1300001FC8127CA46C6C5CA76C6C495AA4143E147FA33A03E0FF83E0A214F7A2 -01E113C3A3000101E35BA201F113C701F313E7A314C1A200005DA201F713F71480A301FF -13FF017F91C7FC4A7EA4013E133E29347FB22C>87 D<387FFFFCB512FEA314FC00FCC7FC -B3B3B3B512FC14FEA36C13FC17416FB92C>91 D<127012F8A27E127C127E123E123F7EA2 -7F120F7F12077F12037F12017F12007F137C137E133EA2133F7F80130F80130780130380 -130180130080147C147E143EA2143F8081140F81140781140381140181140081157CA215 -7E153E153F811680150FA2ED070021417BB92C>I<387FFFFCB512FEA37EC7127EB3B3B3 -387FFFFEB5FCA36C13FC17417DB92C>I<007FB6FCB71280A46C150021067B7D2C>95 -D<1338137CEA01FC1203EA07F813F0EA0FC0EA1F80A2EA3F00123E127E127CA212FC5AA3 -EAFFC013E013F013F8A2127FA2123F13F0EA1FE0EA07C00E1D72B82C>I<3801FFF00007 -13FE001F6D7E15E048809038C01FF81407EC01FC381F80000006C77EC8127EA3ECFFFE13 -1F90B5FC1203120F48EB807E383FF800EA7FC090C7FC12FE5AA47E007F14FEEB8003383F -E01F6CB612FC6C15FE6C14BF0001EBFE1F3A003FF007FC27247CA32C>I<EA7FF0487EA3 -127F1201AAEC1FE0ECFFF801FB13FE90B6FC16809138F07FC09138801FE091380007F049 -EB03F85BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138 -801FE09138E07FC091B51280160001FB5B01F813F83900F03FC027337FB22C>I<903803 -FFE0011F13F8017F13FE48B5FC48804848C6FCEA0FF0485A49137E4848131890C9FC5A12 -7EA25AA8127EA2127F6C140F6DEB1F806C7E6D133F6C6CEB7F003907FE03FF6CB55A6C5C -6C6C5B011F13E0010390C7FC21247AA32C>I<EC0FFE4A7EA380EC003FAAEB07F8EB3FFE -90B512BF4814FF5A3807FC0F380FF00348487E497E48487F90C7FC007E80A212FE5AA87E -007E5CA2007F5C6C7E5C6C6C5A380FF0073807FC1F6CB612FC6CECBFFE6C143FEB3FFC90 -390FF01FFC27337DB22C>I<EB03FE90381FFFC0017F13F048B57E48803907FE03FE390F -F800FFD81FE0EB3F805B4848EB1FC090C7120F5A007E15E015075AB7FCA416C000FCC9FC -7E127EA2127F6CEC03C06DEB07E06C7ED80FF0130F6C6CEB3FC001FF13FF000190B51280 -6C1500013F13FC010F13F00101138023247CA32C>I<EC0FF8EC3FFE91B5FC4914805B90 -3807FC7F14F090390FE03F0014C092C7FCA6007FB512FEB7FCA36C5C26000FC0C7FCB3A8 -003FB512F04880A36C5C21337DB22C>I<ED03F8903907F80FFC90391FFE3FFE017FB6FC -48B7FC48ECFE7F9038FC0FF82607F003133E3A0FE001FC1CD9C0001300001F8049137EA6 -6D13FE000F5CEBE0016C6C485A3903FC0FF048B5FC5D481480D99FFEC7FCEB87F80180C8 -FCA37F6C7E90B512F06C14FE48ECFF804815E04815F03A3FC0001FF848C7EA03FC007E14 -00007C157C00FC157E48153EA46C157E007E15FCD87F801303D83FE0EB0FF8D81FFCEB7F -F06CB612E0000315806C1500D8003F13F8010713C028387EA42C>I<EA7FF0487EA3127F -1201AAEC1FE0EC7FFC9038F9FFFE01FB7F90B6FC9138F03F80ECC01F02807FEC000F5B5B -A25BB3267FFFE0B5FCB500F11480A36C01E0140029337FB22C>I<1307EB1FC0A2497EA3 -6D5AA20107C7FC90C8FCA7387FFFC080B5FC7EA2EA0007B3A8007FB512FCB612FEA36C14 -FC1F3479B32C>I<140EEC3F80A2EC7FC0A3EC3F80A2EC0E0091C7FCA748B512804814C0 -A37EC7120FB3B3A2141F003C1480007E133FB414005CEB01FEEBFFFC6C5B5C001F5B0007 -90C7FC1A467CB32C>I<EA7FE0487EA3127F1201AA91381FFFF04A13F8A36E13F0913800 -FE004A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FEEBF1FC13F3EBF7FE90B5FCA2EC9F80EC0F -C001FE7FEBFC07496C7E496C7E811400157E811680151F3A7FFFC0FFFCB500E113FEA36C -01C013FC27337EB22C>I<387FFFE0B57EA37EEA0003B3B3A5007FB61280B712C0A36C15 -8022337BB22C>I<3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD87FFF13FF91B57E3A07 -FE1FFC3E01FCEBF83F496C487E01F013E001E013C0A301C01380B33B7FFC3FF87FF0027F -13FFD8FFFE6D13F8D87FFC4913F0023F137F2D2481A32C>I<397FF01FE039FFF87FFC90 -38F9FFFE01FB7F6CB6FC00019038F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5 -FCB500F11480A36C01E0140029247FA32C>I<EB07FCEB1FFF017F13C048B512F0488039 -07FC07FC390FF001FE48486C7E0180133F003F158090C7121F007EEC0FC0A348EC07E0A7 -6C140F007E15C0A2007F141F6C15806D133F6C6CEB7F006D5B6C6C485A3907FC07FC6CB5 -5A6C5C6C6C13C0011F90C7FCEB07FC23247CA32C>I<397FF01FE039FFF8FFF801FB13FE -90B6FC6C158000019038F07FC09138801FE091380007F049EB03F85BED01FC491300A216 -FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE09138E07FC091B51280 -160001FB5B01F813F8EC3FC091C8FCAD387FFFE0B57EA36C5B27367FA32C>I<903903FC -078090391FFF0FC0017F13CF48B512EF4814FF3807FE07380FF00148487E49137F484813 -3F90C7FC48141F127E150F5AA87E007E141FA26C143F7F6C6C137F6D13FF380FF0033807 -FC0F6CB6FC6C14EF6C6C138F6D130FEB07F890C7FCAD0203B5FC4A1480A36E140029367D -A32C>I<D87FFEEB3FC0B53801FFF0020713F8021F13FC6C5B39003F7FE1ECFF019138FC -00F84A13704A13005CA25C5CA391C8FCAF007FB512E0B67EA36C5C26247EA32C>I<9038 -7FF8700003B512F8120F5A5A387FC00F387E00034813015AA36CEB00F0007F140013F038 -3FFFC06C13FE6CEBFF80000314E0C66C13F8010113FCEB0007EC00FE0078147F00FC143F -151F7EA26C143F6D133E6D13FE9038F007FC90B5FC15F815E000F8148039701FFC002024 -7AA32C>I<131E133FA9007FB6FCB71280A36C1500D8003FC8FCB1ED03C0ED07E0A5EC80 -0F011FEB1FC0ECE07F6DB51280160001035B6D13F89038003FE0232E7EAD2C>I<3A7FF0 -03FF80486C487FA3007F7F0001EB000FB3A3151FA2153F6D137F3900FE03FF90B7FC6D15 -807F6D13CF902603FE07130029247FA32C>I<3A7FFF01FFFCB514FE148314016C15FC3A -03E0000F80A26D131F00011500A26D5B0000143EA26D137E017C137CA2017E13FC013E5B -A2EB3F01011F5BA21483010F5BA214C701075BA214EF01035BA214FF6D90C7FCA26D5A14 -7C27247EA32C>I<D87FFFEB7FFF6EB5FCB515806C16004A7ED807C0EB01F0A66C6C495A -A3143E147FA2D801F0495AECFF87A214F7A201F113C700005D9038F9E3CFA201FB13EFA3 -D97BC190C7FC017F13FFA21480A2013F5B90381F007C29247FA32C>I<3A3FFF03FFF048 -018713F8A36C010313F03A00FC007E005D90387E01F8013F5BEB1F83EC87E090380FCFC0 -903807EF80EB03FF6D90C7FC5C6D5A147C14FE130180903803EF80903807CFC0EB0FC7EC -83E090381F01F0013F7FEB7E00017C137C49137E0001803A7FFF01FFFC1483B514FE6C15 -FC140127247EA32C>I<3A7FFF01FFFCB5008113FE148314816C010113FC3A03E0000F80 -6C7E151F6D140012005D6D133E137C017E137E013E137CA2013F13FC6D5BA2EB0F815DA2 -EB07C1ECC3E0A2EB03E3ECE7C0130114F75DEB00FFA292C7FC80A2143EA2147E147CA214 -FC5CA2EA0C01003F5BEA7F83EB87E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA07E027 -367EA32C>I<003FB612E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C495A -C7485A4A5A4A5A4A5A4A5A4AC7FCEB01FC495AEB0FF0495A495A495A49C8FC4848EB01E0 -4848EB03F0485A485A485A485A485AB7FCA46C15E024247DA32C>I<15FF02071380141F -147F91B512004913C04AC7FCEB03F85CB31307EB1FE013FF007F5BB55A49C8FC6D7E6C7F -C67F131FEB07F01303B380EB01FEECFFC06D13FF6E1380141F14070200130021417BB92C ->I<127812FCB3B3B3A9127806416DB92C>I<EA7FC0EAFFF813FE6D7E6C7FC67F131FEB07 -F01303B380EB01FEECFFC06D13FF6E1380141F147F91B512004913C04AC7FCEB03F85CB3 -1307EB1FE013FF007F5BB55A49C8FC13F8EA7FC021417BB92C>I -E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fh labx1440 14.4 69 -/Fh 69 256 df<151E153E15FCEC01F8EC03F0EC07E0140FEC1FC0EC3F80EC7F005C5C49 -5A1303495AA2495A131F5C133F5C137F5C13FFA24890C7FCA25A5B1207A25B120FA3485A -A4123FA25BA2127FA65B12FFB3A3127F7FA6123FA27FA2121FA46C7EA312077FA212037F -7EA26C7FA2137F80133F80131F80130F6D7EA26D7E13016D7E8080EC3F80EC1FC0EC0FE0 -1407EC03F0EC01F8EC00FC153E151E1F7974D933>40 D<12F07E127E7E6C7E6C7E7F6C7E -6C7E6C7E7F1200137F806D7EA26D7E80130F80130780130380A26D7EA215807F15C0A214 -7F15E0A3EC3FF0A415F8A2141FA215FCA6140F15FEB3A315FC141FA615F8A2143FA215F0 -A4EC7FE0A315C014FFA215805B1500A2495AA25C13075C130F5C131F5C495AA2495A91C7 -FC13FE12015B485A485A485A5B485A48C8FC127E12F85A1F7979D933>I<EA07E0EA1FF0 -EA3FFC127F7FB5FCA31480A37EA27E7EEA07E7EA0007A3130F1400A35B131E133EA25BA2 -5BA2485A485A1207485A485A90C7FC121E120C1127768F25>44 D<913803FF80023F13F8 -49B6FC010715C04901017F903A3FFC007FF8D97FF0EB1FFC49486D7E48496D7E4A7F4817 -804890C76C13C0A248486E13E0A2001F17F0A3003F17F8A249157FA2007F17FCA600FF17 -FEB3A5007F17FCA6003F17F86D15FFA3001F17F0A3000F17E06D5C6C17C0A26C6D491380 -6C17006E5B6C6D495A6D6C495AD93FFCEB7FF8903A0FFF01FFE06D90B55A010192C7FCD9 -003F13F802031380374F7BCD42>48 D<151E153E15FE1403140F147FEB07FF0003B5FCB6 -FCA3EBF87FEAFC00C7FCB3B3B3A6007FB712FCA52E4E76CD42>I<EC1FFE49B512F0010F -14FC013FECFF804915E02701FF803F7F2703FC000713FCD807F001017F48486D7FD81F80 -6E138048C87E7013C0D87FE016E001F8806D16F000FF817F7013F8A56C5AA26C5A6C5AEA -0380C914F05EA218E05E18C05E18804C13005F4C5A4C5A5F4B5B4B5B4B5B94C7FCED0FFC -4B5A4B5AED7FC04B5A4A90C8FCEC03FC4A5A4A4814F84A5A4A5A4AC8FC02FEEC01F0495A -495A495A5CD90F80140349C8FC013E1507017FB7FC90B812E05A5A5A5A5A5A5AB9FC18C0 -A4354E7ACD42>I<913807FFC0027F13FC0103B67E010F15E090261FF80313F890267FC0 -007F01FEC7EA3FFE48488148486E138013FE486C6C6D13C0804817E080A66C5B18C06C5B -6C90C75AD80038168090C8FC4C1300A24C5A5F4C5A4B5B4B13C0030F5BDB7FFEC7FC9138 -7FFFF816C016FCEEFF80DA000313E09238007FF8EE3FFE707E70138018C07013E018F070 -13F8A218FC82A218FEA3EA03C0EA0FF0EA3FFC487EA2B5FCA218FCA25E18F8A26C4816F0 -495C4916E0D83FE04A13C06C485CD80FF04A1380D807FE91387FFE003B03FFE003FFFC6C -90B65A6C6C15E0010F92C7FC010114FCD9001F1380374F7BCD42>I<17FC1601A2160316 -07160FA2161F163F167FA216FF5D5DA25D5D5D167F153E157E15FC15F8EC01F01403EC07 -E015C0EC0F80141FEC3F00143E5C14FC495A5C495A1307495A5C49C7FC5B137E137C5B12 -01485A5B485A120F485A90C8FC123E127E5ABA1280A5C901FCC7FCAF021FB71280A5394F -7CCE42>I<486C150601F0153E01FEEC01FED9FFF0133F91B65A5F5F5F5F5F94C7FC16FC -5E16E093C8FC15FC01F0138091CAFCAC913807FF80023F13F891B512FE01F36E7E9026FF -FC0113E09139E0007FF891C76C7E496E7E01F86E7E5B7013804916C0C9FC18E08218F0A4 -18F8A31203EA0FE0EA3FF8487EA212FF7FA218F0A25B5E6C4816E05B01C016C06CC85A18 -806C6C4A13007FD80FF04A5A6C6CECFFFCD803FE4913F02701FFE00F5B6C6CB612806D92 -C7FC010F14F8010114C09026003FFCC8FC354F7ACD42>I<ED07FE92B512C0020314F002 -1F14FC91397FFC01FE9139FFE0007F01030180EB3F804990C7121F4948EC7FC0494814FF -4948010313E0495A49485B5A485BA2485BA2486F13C091C7FC4803001300177E94C7FC5A -A25B127FA2ED3FF04AB5FC020714C000FF4914F091391F807FF891393E001FFE02786D7E -4A6D13807013C06D5A4A6D13E018F05C7013F8A291C813FCA44916FEA3127FA6123FA37F -6C17FCA36C17F85E7E6E15F06C17E06C6D5B6E15C06C4B13806D6C491300D93FFC495A6D -B4EBFFFC010790B512F06D5D01001580021F01FCC7FC020313C0374F7BCD42>I<121F7F -7FEBFF8091B8FCA45A18FE18FC18F818F0A218E018C018804817000180C8123E007EC912 -7E5F007C4B5A4C5A5F16074C5A484B5A4CC7FC167E167CC912FC4B5A4B5AA24B5A150F4B -5AA24B5AA24BC8FC5DA25C5D1403A214075D140FA3141FA2143FA34A5AA414FFA65BAB6D -5B6E5A6E5A6E5A385279D042>I<913803FFC0023F13FC49B67E010715E090260FFC0013 -F8D93FE0EB1FFCD97F80EB07FE49C76C7E496E1380484880000317C049157F120718E017 -3F120FA27FA27F7F6E147F02E015C08002FC14FF6C01FF15806F481300EDE0036C9138F8 -07FE6F485A6C9138FF1FF06CEDFFE017806D4AC7FC7F010F6E7E6D81010115F06D810103 -15FE010F81D93FF71580D97FC115C02701FF807F14E048EB001F48486D14F04848010314 -F848481300496E13FC003F151F491407007F6F13FE491400177F00FF163F49151F170F17 -07A21703A218FCA27F127F6DED07F8A26C6CED0FF07F6C6CED1FE06C6CED3FC06C6CEDFF -806C01C0010313006C01FCEB3FFE6C6CB612F8011F15E001071580010002FCC7FC020F13 -C0374F7BCD42>I<913807FF80027F13F849B512FE01076E7E90261FFE0113E0903A7FF8 -003FF049486D7E48496D7E48496D7E484980486F138091C7FC486F13C05A18E0485A18F0 -A27013F812FFA318FCA618FEA35E127FA4003F5DA26C7E5E7E6C6D5B161E6C7F6C6D5B6C -6C6C13F890393FFC03F06DB55A01074A13FC01001400EC1FF891C8FCA218F85EA301FC16 -F0487E2607FF8015E05E486D15C0A24C1380A24C13005F4A131F6C4B5A49C7485A494A5A -6C48495B6D01075B2701FF803F90C7FC6C90B512FC013F5C6D14C0010791C8FC9038007F -F0374F7BCD42>I<BB12FEA5D8000F01E0C700077FF0007F191F190785858586A2F23F80 -A21A1FA31A0FA4DD01F014C01A07A497C7FCA21703A31707170F171F17FF92B6FCA5EDE0 -00171F170F17071703A317011BF8A3F201F0A394C8FCA21A03A21BE0A21A07A31A0F1BC0 -1A1F1A3FA21A7F1AFF4F13801907191F197F060FB5FCBCFCA21B00A34D527CD156>69 -D<B8D88007B712FCA5D8000701F0C9003FEB8000B3AE92BAFCA503F0C9123FB3B1B8D880 -07B712FCA55E527CD167>72 D<B81280A5D8000701F0C7FCB3B3B3B2B81280A529527DD1 -30>I<B812E0A5D8000F01E0CAFCB3B3A91AF8A419011AF0A51903A31907A2190F1AE019 -1FA2193F197F19FF60180760187F0503B5FCBB12C0A545527CD14F>76 -D<EC3FFE0107B512E0011F14FC017F14FF2701FFC00F13C02703FE00037F486C01007F6E -6D7E486D80707EA2707EA3707F6C5B6C90C7FC6C5AC9FCA60307B5FC0203B6FC147F0103 -B7FC011FEBF00F017F1300EBFFFC000313F04813C0485B4890C7FC5A5B485AF081F012FF -5BA35EA26D5C127F6D5C003F03F713C36DD901E314E06CD9C00714FF00079026F01F8114 -C06C90B5C61480C602FC6D1300011F01F0EB3FFC01010180EB07F03C387CB642>97 -D<913803FFE0023F13FE91B67E010315E0010F9038003FF8D93FFCEB07FC4948497E4948 -131F4849497E485B485BA24890C7FC5A5B003F6F5A705A705A007F92C8FC5BA312FFAD12 -7F7FA3123F7F6CEE0F80A26C6D141F18006C6D5C6C6D143E6C6D147E6C6D5C6D6C495A6D -B4EB07F0010F9038C01FE06D90B5128001014AC7FCD9003F13F80203138031387CB63A> -99 D<ED1FF8913803FFFE020FEBFF80023F14C09139FFF83FE001039038E0FFF0491380 -49010113F85BEB3FFEA2EB7FFCA26F13F0495AEE7FE0EE1F8093C7FCAEB712C0A5C601F8 -C8FCB3B3A7B612FEA52D547CD328>102 D<133FEBFFC0487F487FA2487FA66C5BA26C5B -6C5B013FC7FC90C8FCAEEB1FF8B5FCA512017EB3B3A6B612F0A51C547CD324>105 -D<D93FF0D91FF84AB47EB591B56C010F13F8030302E0013F13FE030F6E90B6FCDB3F8090 -27F803F80F7F922A7E007FFC07E0077F000302F890283FFE0F80037FC6D9F1F0011F4948 -7EDAF3E0DAFF3E814B153CDAF7805D92C76C496D7F14FF4A5EA24A5EA34A5EB3ADB6D8F8 -0FB66CB612F8A565367BB56E>109 D<D93FF0EB1FFCB591B57E030314E0030F14F89239 -1FC07FFC92397E003FFE000302F86D7EC6EBF1F04B6D7FECF3C0ECF78092C76C7F14FF5C -A25CA45CB3ACB6D8F807B612C0A542367CB549>I<913801FFC0023F13FE91B67E010315 -E0010F018013F8903A3FFC001FFED97FF0EB07FF49486D7F48496D7F48496D7F91C8127F -4883488349153F001F83A2003F8349151FA2007F83A400FF1880AC007F1800A3003F5F6D -153FA2001F5FA26C6C4B5AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB -1FFE6DB46CB45A010790B512F0010115C0D9003F49C8FC020313E039387CB642>I<D93F -F8EB7FF0B50107B5FC031F14C0037F14F09126F9FF0013FCDAFFF8EB3FFF000302E0010F -7FC602806D7F92C76C7F4A824A804A6E7F85187F85A2183F85A4721380AD4E1300A44E5A -A26118FF616E5C616E4A5B6E4A5B6F495B03E04990C7FC6FEB7FFE913AF9FE01FFF802F8 -B65A033F14C0030749C8FC030013E093CAFCB1B612F8A5414D7DB549>I<903903FFC00E -011FEBFC1E90B6127E000315FE3907FE003FD80FF0130F4848130348481301491300127F -90C8127EA248153EA27FA27F01F091C7FC13FCEBFF806C13FEECFFF06C14FE6F7E6C15E0 -6C816C15FC6C81C681133F010F15801301D9000F14C0EC003F030713E0150100F880167F -6C153FA2161F7EA217C07E6D143F17807F6DEC7F0001F85C6DEB03FE9039FF801FFC486C -B512F0D8F81F14C0D8F00791C7FC39E0007FF02B387CB634>115 -D<BB12FCA5D8000F01C0C7000F7F1800193F190F1907190319011900A21A7FA286A386A4 -1B801A0FA497C7FCA684047FB512E092B712FE737E1AE01AF89326E0007F13FE03E0C700 -077F4B02011480726C13C07313E07313F07313F8851BFC851BFE85A37313FFA91BFE61A3 -4F13FCA24F13F8A24F13F04F13E04F13C04F13804EB51200060F5BBB12F8621A804FC7FC -19C050527BD15D>193 D<B912FEF0FFF019FE737E1AE0D8000F01C0C7001F7F06037F72 -7F726C7E867313807313C0A27313E0A37313F0A94F13E0A34F13C01B80614F1300624F5A -06035B4E13E0063F5B92B8C7FC19F8A2F1FF8003C0C7001F13E0060113F89538007FFE73 -7E070F13C01BE07313F0851BF87313FCA27313FEA31BFFA91BFEA2611BFCA2614F13F81B -F0614F13E0077F13C04EB51280060FEBFE00BB5A1AF01AC04FC7FC19C050527BD15D>I< -0038EC3FFF003C0107B512F8003F013FECFF806DB712E001E316F801F7D9C00713FED9FF -FCC77F02E0023F7F02806E13E091C87E01FC6F7F496F7F496F7F5B717F5BA249838490CA -FCA3123EA395B5FCCB5BA24D5BA24D5B614D5B4D5B4D5B4D48C7FCEFFFF8040713E0020F -B612804A02FCC8FC5FEFFF8091C7001F13F0040013FE94381FFF80050713E0717F717F71 -13FE727E841A807213C0A21AE0841AF0A312F8A57E007C19E0A2007E5F1AC06C5F1A806C -6C5E6D93B512006C6C4B5B6C6C4B5BD803FC4B5B6CB44B5B6C01E0027F13C06DB40103B5 -5A011F90B648C7FC010716F8010116C0D9003F4AC8FC0200148044547AD250>199 -D<B8D88007B712FCA5D8000701F0C9003FEB80006297B5FCA261A26161A261611ABFF13F -3FA2197E19FE19FCF001F8A2F003F0F007E0A2F00FC0A2F01F80F03F00A2187EA2604D5A -A24D5A1707604D5AA24D5A173F95C7FC177EA25F4C5AA24C5AA24C5A4C5AA24C5AA24CC8 -FC167EA25E15F15EEDF3F0A2EDF7E015FF5E5EA293C9FC5DA25DA25D5DB8D88007B712FC -A55E527CD167>I<B86C0103B612E0A5D8000701F0C9000FEB8000E001FCC7FC505AF20F -F0505A505A50C8FC1AFE4F5A4F5A4F5A4F5AF13FC04F5A4FC9FCF001FC4E5A4E5A4E5A4E -5AF07F804ECAFC4D5AEF03F84D5A4D5A4D5A4D7E4D7EEE01FF4C7F4C7F4C7F5E4C7F4C80 -EEFE7FDBF3FC809226F7F83F7F9226FFF01F7FEEC00F0480804C6C7F4B7F4B814B6D7F4B -6D808486727F8486727F727F8486727F8487737F737F8587737F8587737F737F8588747F -97B57EB86C90B712F8A55D527CD167>202 D<B600F04EB612F06F606F60A3D800076D4E -49C7FCA2DADFFFF01F7FA202CF6D173EA302C76D177CA202C36D17F8A202C16DEE01F0A2 -02C06DEE03E0A36F6CEE07C0A26F6CEE0F80A26F6CEE1F00A36F6D153EA26F6D5DA26F6D -5DA36F6D4A5AA26F6D4A5AA2706C4A5AA3706C4A5AA2706C4AC7FCA2706D133EA3706D5B -A2706D5BA2706D485AA2706D485AA3716C485AA2716C485AA2716C48C8FCA37113BEA271 -13FCA2715BA3715BA2715BA2D91FF06F5AB600FE050FB712F0A2725AA272C7FC74527CD1 -7D>204 D<B8D88007B712FCA5D8000701F0C9003FEB8000B3AE92BAFCA503F0C9123FB3 -B1B8D88007B712FCA55E527CD167>I<93381FFF800303B512FC033FECFFC092B712F002 -07D9F80113FE021F903A80001FFF804A48C700077FDAFFF8020113F049496E7F4901C0ED -3FFC49496F7E4990C96C7E4948707F013F854948707F4948707F48864A8248864A177F48 -864849717EA3481B804A83481BC0A44890CB6C13E0A5B51AF0AF6C1BE06E5FA46C1BC0A2 -6E5F6C1B80A36C6D4D1300A26C6D4D5AA26C626C6D4C5B6E5E6C626D6C4C5B6E5E6D6D4B -5B6D6D4B5B6D6D4B90C7FC6D6D4B5A01016D4A13F86D01FE02075B91263FFFC0013F13C0 -6ED9F801B55A020790B648C8FC020116F8DA003F15C003074AC9FCDB001F1380545479D2 -63>I<BE12FCA5D8000701F0C9003FEB8000B3B3B3B2B8D88007B712FCA55E527CD167>I< -B912FCF0FFE019FE737E1AE0D8000F01E0C7003F7F060313FC06007F737E7313807313C0 -7313E0851BF0A21BF885A21BFCA91BF8A3611BF0A21BE04F13C0614F13804F13004F5A06 -0713F8063F5B92B812C097C7FC19F8198003E0CBFCB3AEB712FEA54E527CD15A>I<9326 -03FFF01407047F01FF140F0307B600E0131F033F03F8133F92B700FE137F02039126C003 -FF13FF020F01F8C7EA3FC1023F01C0EC0FE391B5C80003B5FC4901FC814949814901E082 -011F498249498292CA7E4948834948835A4A83485B4885A24849187FA2485B1B3FA2485B -1B1FA25AA21B0091CDFCA2B5FCAE7EA280A36C1A1FA36C7FA21B3F6C7F1B3E6C7F1B7E6C -6D187C6C1AFC6E18F86C19016D6CEF03F06D7E6FEE07E06D6DEE0FC001076DEE1F806D01 -F8EE3F006D6D16FE6D01FF4B5A023F01C0EC07F8020F01FCEC3FF00203903AFFC001FFC0 -020091B6C7FC033F15FC030715F0DB007F1480040301F0C8FC505479D25F>I<003FBB12 -FEA59126C0007FEB000101FCC7ED001FD87FF0F007FF49844984498490C883A2007E86A3 -007C86A500FC1B80481A0FA6C994C7FCB3B3AD49B912C0A551527BD15C>I<B700F8033F -B512F0A5D8001F01F0CA383FF0006DF10FC06F606D6D171F7F6F95C7FC6D616D6D173E70 -167E806E6D167C7016FC6E607015016E7F6E607015036E6D5E6E1707826E606F6D140F71 -5D6F161F6F7F7192C8FC6F5E71143E6F6D147E8171147C6F6D14FC6F5EF08001827001C0 -5BF0E003705D70EBF00718F8705DF0FC0F7001FE5B70141F18FF70029FC9FC7113BF19FE -83836183715BA283DA03805DDA0FF07FDA3FF86D5B4A7E6F6E5A02FF153F6F5D72CAFC60 -187EA24B5C4D5A6E48495A4B130FDA3FE0495A4BEBFFC091261FF80790CBFC6EB55A0203 -5C6E14F06E6C1380DB0FFCCCFC5C537DD163>I<92B812FCA592C701FCCAFCA74BB612FE -92B812FC020FEFFFC0027F18F849B500E0D9FC1F13FE010FD9FC000200EBFFC04901E004 -1F7F017F0180040713F84948C703017F4849717F4849727E484972138048497213C0A248 -497213E0A248497213F0A2481CF8A291C882A2B51BFCAB6C1CF8A26E60A26C1CF0A26C6D -4E13E0A26C6D4E13C0A26C6D4E13806C6D4E13006C6D4E5A6C6D4D5B6D6C6C04075B011F -01E0041F13E06D01FC93B55A0101D9FFE0021F49C7FC6D6C90B812F8020F18C0020005FC -C8FC03014BC9FC92C701FCCAFCAA92B812FCA55E5279D16D>I<EC3FFE0107B512E0011F -14FC017F14FF2701FFC00F13C02703FE00037F486C01007F6E6D7E486D80707EA2707EA3 -707F6C5B6C90C7FC6C5AC9FCA60307B5FC0203B6FC147F0103B7FC011FEBF00F017F1300 -EBFFFC000313F04813C0485B4890C7FC5A5B485AF081F012FF5BA35EA26D5C127F6D5C00 -3F03F713C36DD901E314E06CD9C00714FF00079026F01F8114C06C90B5C61480C602FC6D -1300011F01F0EB3FFC01010180EB07F03C387CB642>224 D<18FC170F17FF163F030FB5 -FC4AB6FC021F5D91B7FC01035E130F495E49168090B8C7FC17F04803E0C8FC4802C0C9FC -4801F8CAFC14E048138049CBFC5B485A5B5B123F5B5BA23A7F0001FFC0023F13FE91B67E -D87E0315E0010F018013F8903A3FFC001FFE267C7FF0EB07FF49486D7F00FD496D7FB548 -6D7F91C8127F848449153F84A28449151FA284A41980AC007F1800A3003F5F6D153FA200 -1F5FA26C6C4B5AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB1FFE6DB4 -6CB45A010790B512F0010115C0D9003F49C8FC020313E039547CD242>I<B712FEEEFFF0 -17FC17FFC69026F8001F7F040713E004017FA2707FA2717EA64D5AA24C5B4C5B4C5B041F -90C7FC91B612FC17F05F17FC9139F80007FF040113C07013F0717E717E84171F84A21980 -A61900A25F604D5A17FF04035B040F5BB912C095C7FC17FC17C039357CB442>I<B9FCA4 -C69038F8001F160382707EA283A2EF1F80A4170FA694C7FCB3AAB612FEA431357CB439> -I<91B912F8A4DA00FCC7EBF8005DAE5DA21401A55D1403A35D1407A34A5AA24AC8FCA25C -143E5CA25C1301495A495A495AEB3F8049C9FC003FBA12FCA491CAFC01F8171FD87FE0EF -07FE49170349170190CCFC1A7E127EA2007C193EA400FC193F48191FA5484880B449>I< -913807FF80027F13F849B512FE01076E7E011F010313E0903A3FFC007FF0D97FF06D7E49 -486D7E4849130F48496D7E48824890C77E1880485A82003F17C0A3485A18E082A212FFA2 -90B8FCA401FCCAFCA6127FA37F123FA2EF03E06C7E17076C17C06C6D140F18806C6D141F -6C6DEC3F006C6D147ED97FFC495AD91FFFEB07F86D9038E03FF0010390B512C001005D02 -3F01FCC7FC020113E033387CB63C>I<001FB50103B600E090387FFFFCA426007FFCD900 -0301E0C7001F90C7FCD90FF8F10FF8D903FCF11FE06D6C4F5A6D6C4F5ADA7FC04D48C8FC -DA1FE0EF03FC6E6C4D5ADA07FCEF1FF0DA01FEEF3FC06E6C4D5ADB7F804CC9FCDB1FE0ED -03FCDB0FF04B5ADB07F84B5ADB03FEED3FE004FF157F4B01834A7E4B01E301E37F4B01F3 -01E77F4B01FB01EF7F94B7FC4B834B486C023F7F4A496C496C7F4AD9F80FD9F80F7F4C6C -497E4A6E01E0804A01E06F7F4A01C06F7F4A01806F7F0400167F4A854A48717F4949717F -4949717F4949717FA24949717F4949717F4949717F4990C7717EA24948737F00036D4F13 -E0B6D8E003B6D8E003B61280A469357EB46E>I<0070EBFFFED87C0FEBFFF0D87E3F14FE -007FB77EDA801F13E09026F800037F4901007F01C06E7E5B707E90C8FC007E6F7EA3127C -A2C9FC4C5AA24C5A5F4B485A4B13C0030F5B49B500FCC7FC4914F0A216FE90C7381FFFC0 -03037F030013F8707E707E707EA2701380A218C0A412F8A36C1780007C5D007E17005E6C -4B5A6C6C4A5A01E001035BD80FFE011F5B0003B712C0C693C7FC013F14F8010391C8FC32 -387DB63A>I<B6D8F807B612C0A4C601F8C70007EBC000A25F5FA25F5FA294B5FCEE01F7 -A2EE03E7EE07C7A2EE0F87EE1F07163F163E167C16FC16F8ED01F0150316E0ED07C0150F -1680ED1F005D153E5D5DA2ECF9F0ECFBE0A2ECFFC05DA292C7FC5CA25C5CA2B6D8F807B6 -12C0A442357DB449>I<023E141FDAFF80EB7FC0496D497E496D487FA2496D487FA54B7E -6D5E4B7E6D496D5AA26D90B65A023F92C8FC6E5C020714F8020114E09126001FFEC9FC92 -CBFCA4B6D8F807B612C0A4C601F8C70007EBC000A25F5FA25F5FA294B5FCEE01F7A2EE03 -E7EE07C7A2EE0F87EE1F07163F163E167C16FC16F8ED01F0150316E0ED07C0150F1680ED -1F005D153E5D5DA2ECF9F0ECFBE0A2ECFFC05DA292C7FC5CA25C5CA2B6D8F807B612C0A4 -424E7DCD49>I<B600F8011FB5FCA4C601F8C7000713C07148C7FCEF07F84D5A4D5AEF7F -C04DC8FC4C5AEE07FCEE0FF04C5AEE7FC04CC9FC4B5A4B5AED0FF8151F4B7EEDFFFE02F9 -7F02FB8091B6FC8303CF7F03877FDAFE037F4A7E02F8806F7F707E707F8284707F707F70 -7F707FA2707F717E717F717FA2717F4D13F8B600F890B612E0A443357DB449>I<0103B9 -12E0A490280003F00003EBE0005DB3A914075DA4EA0F80EA1FC0383FE00FEA7FF0D8FFF8 -5BA2141FA292C7FC5CEBF07E387FE0FED9FFFC0103B612E06C5B6C5B6C5B0003018090CA -FCD80030CCFC43377EB449>I<B500FC93387FFFFE6E93B5FC8060C6F1FE0081F003DF01 -FB7FF0079F01F97FF00F1F01F87FA2181E6E7E183C6E7E18786E7E18F0A26E7EEF01E06E -1380EF03C06E13C0EF07806E13E0EF0F00A26E13F0171EED7FF85FED3FFC5FED1FFEA25F -ED0FFF5F815F815FA28194C7FCD807FF7FB500F849011FB512FE167E167C163C4F357CB4 -58>I<B6D8F807B612C0A4C601F8C70007EBC000B291B8FCA402F8C71207B3A5B6D8F807 -B612C0A442357DB449>I<913801FFC0023F13FE91B67E010315E0010F018013F8903A3F -FC001FFED97FF0EB07FF49486D7F48496D7F48496D7F91C8127F4883488349153F001F83 -A2003F8349151FA2007F83A400FF1880AC007F1800A3003F5F6D153FA2001F5FA26C6C4B -5AA26C6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB1FFE6DB46CB45A010790 -B512F0010115C0D9003F49C8FC020313E039387CB642>I<BB12C0A4C601F8C70007EBC0 -00B3B3A9B6D8F807B612C0A442357DB449>I<D93FF8EB7FF0B50107B5FC031F14C0037F -14F09126F9FF0013FCDAFFF8EB3FFF000302E0010F7FC602806D7F92C76C7F4A824A804A -6E7F85187F85A2183F85A4721380AD4E1300A44E5AA26118FF616E5C616E4A5B6E4A5B6F -495B03E04990C7FC6FEB7FFE913AF9FE01FFF802F8B65A033F14C0030749C8FC030013E0 -93CAFCB1B612F8A5414D7DB549>I<913803FFE0023F13FE91B67E010315E0010F903800 -3FF8D93FFCEB07FC4948497E4948131F4849497E485B485BA24890C7FC5A5B003F6F5A70 -5A705A007F92C8FC5BA312FFAD127F7FA3123F7F6CEE0F80A26C6D141F18006C6D5C6C6D -143E6C6D147E6C6D5C6D6C495A6DB4EB07F0010F9038C01FE06D90B5128001014AC7FCD9 -003F13F80203138031387CB63A>I<007FB812FCA4D9F807EBC03F01C015070180150301 -001501007E1600A2007C177C00FC177EA348173EA7C71600B3AA017FB612FCA437357DB4 -3E>I<B600E090381FFFFCA4000101F8C700011380943800FE006C177C6E15FC017F5E6E -1401013F5E8017036D6D5C17076D5E6F130F6D5E6F131F6D93C7FC815F6D6D133E177E6D -157C6F13FC027F5C811601DA3FFF5B16036E5C16876E5C16CF6E5C16EF16FF6E91C8FCA2 -6E5BA26E5BA26F5AA36F5AA26F5AA26F5AA35E151F93C9FC5D153E157ED81FC0137C487E -486C13FC486C5B14015D4A5A14074A5A6C48485A4948CAFC495A383F81FC6CB45A6C5B00 -0313C0C648CBFC3E4D7DB445>I<EF3FF893B5FCA516031600B3A4912603FF80EC0FFE02 -3F01F091387FFFE091B500FC01F9B512F801036E01FB14FE010FD9C03F903AFFE01FFF80 -013FD9000FDA800713E0D97FFC6DDA00017F49486D496D7F48496D496E7E48496D496E7E -4849727E481C804A84481CC091C882481CE0A248487313F0A448487313F8AD6C6C4F13F0 -A46C6C4F13E0A26C1CC06E606C1C806E606C1C006C6D496D4A5A6C6D4E5A6C6D496D4A5A -6D6C496D495B6DB449DA80075B010FD9C07FDAF01F13800103D9FFFE01FBB548C7FC0100 -02F801F814F8023F496E13E002010180DA0FFCC8FC91C891CAFCB193B612F8A55D6A7CD2 -66>I<B6D8F001B512FCA4C649C7381FFE00017FED0FF06D6C5D6D6D495A606D6D49C7FC -6D6D137E6D6D13FE6D6D485A4C5A6D01FC5B6E6C485A6E6C485A161F6EEBBF806E01FFC8 -FC6E5B5E6E5B806E7F6F7EA26F7E834B7F92B5FC83DA01FB7FDA03F17FDA07F07F4A5A4A -486C7E4B6C7E4A486C7F147E02FE6D7F49486D7F49486D7F4A8149487F49486D7F011F6F -7E013F6F7E48B47EB500FE0107B6FCA440357EB445>I<B6D8F807B612C0A4C601F8C700 -07EBC000B3B3A9BB12E0A4CB12071800F13FF0191F190F19071903A31901A41AF81900A5 -45487DB449>I<B6D8F807B612C0A4C601F8C70007EBC000B1137F80013F153F6E91B5FC -6D6C130F010790B512F7010115876D6CEBFC07020713C091C8FCB30407B612C0A442357D -B449>I<B6D8F81FB60003B612E0A4C601F8C7001F90C70003EBE000B3B3A9BF12E0A463 -357CB46C>I<B6D8F81FB60003B612E0A4C601F8C7001F90C70003EBE000B3B3A9BF12F0 -A4CF1203F4007FF51FF81D0F1D071D031D01A31D00A41EFC1E7CA566487CB46C>I<B600 -F8037FB512FCA4C601F8CA387FFC00B291B512F8EEFFF017FE717E9126F8001F13E00407 -7F04017F707F717EA2717EA2711380A74D1300A24D5AA24D5A4C5B04075B041F5BB9D8C0 -7FB512FC180017F8178056357CB45F>251 D<B612F8A4C601F8CAFCB291B512F8EEFFF0 -17FE717E9126F8001F13E004077F04017F707F717EA2717EA2711380A74D1300A24D5AA2 -4D5A4C5B04075B041F5BB95A95C7FC17F8178039357CB442>I<4AB712FE147F0103B8FC -130F013F903AC0003FFE004948C7FCEBFFF8485B5A5C5AA67E807E807EEB7FFE90381FFF -C0010790B6FC1301EB001F1401EEFC3F4A13F85C4A13F016E04A13C05C4A1380160091B5 -FC495B495B5D5B495B495BA2495B495B90B5C7FC5A1207B6D8F83FB512FEA43F357EB445 ->255 D E -%EndDVIPSBitmapFont -%DVIPSBitmapFont: Fi larm1000 10 86 -/Fi 86 256 df<486C1360000314E039070001C0000EEB038048EB070000181306003813 -0E0030130C0070131C00601318A200E01338481330A400CEEB338039FF803FE001C013F0 -A3007F131FA2393F800FE0390E0003801C1981B91C>16 D<001C1307007FEB1FC039FF80 -3FE0A201C013F0A3007F131F001CEB073000001300A400011470491360A2000314E090C7 -12C048130100061480000E130348EB070048130E485B006013181C1980B91C>I<B81280 -A2290280962A>21 D<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA2 -12075B120F90C7FCA25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F -1203A26C7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>40 -D<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7F -A21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A2 -5BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527CBD20>I<121C127FEAFF80A213C0 -A3127F121C1200A412011380A2120313005A1206120E5A5A5A12600A19798817>44 -D<B512FCA516057F941C>I<121C127FEAFF80A5EA7F00121C0909798817>I<1506A2150E -150CA2151C151815381530A215701560A215E015C0A214011580A2140315005C1406A214 -0E140CA2141C1418A214381430A21470146014E05CA213015CA2130391C7FCA25B1306A2 -130E130C131C1318A213381330A213701360A213E05BA212015B120390C8FCA25A1206A2 -120E120CA2121C1218A21238123012701260A212E05AA21F537BBD2A>I<EB01C0130313 -07131F13FFB5FCA2131F1200B3B3A7497E007FB512F0A31C3779B62A>49 -D<EB0FF0EB7FFE48B57E3903E03FE0390F000FF0001E6D7E001C6D7E486D7E5A6E7E1260 -12FE6CEC7F807FA56CC7FC121CC8FCEDFF00A25D14015D14035D4A5A4A5A5D4A5A4AC7FC -147E5C495A14E0495A495A49C8FC011EEB01805B5B49130348481400485A485A90C75A48 -B6FC5A5A485CB6FCA321377CB62A>I<EB07F8EB3FFF90B512C03901F80FF03903C007F8 -48486C7E390E0001FEEA0F80391FE000FF7FA56C5A6C5AC7485AA25D14035D4A5A5DEC0F -80027FC7FCEB1FFCECFF809038000FE06E7EEC01FC816E7EED7F80A216C0A2153F16E0A2 -121EEA7F80A2487EA316C0157F491480007EC7FC0070ECFF006C495A121E390F8003F839 -07F00FF00001B512C06C6C90C7FCEB0FF823397DB62A>I<1538A2157815F8A214011403 -1407A2140F141F141B14331473146314C313011483EB030313071306130C131C13181330 -1370136013C01201EA038013005A120E120C5A123812305A12E0B712F8A3C73803F800AA -4A7E0103B512F8A325387EB72A>I<0006140CD80780133C9038F003F890B5FC5D5D1580 -92C7FC14FC38067FE090C9FCAAEB07F8EB1FFE9038780F809038E007E03907C003F0496C -7E130000066D7E81C8FC8181A21680A4121C127F5A7FA390C713005D12FC00605C12704A -5A6C5C6C1303001E495A6C6C485A3907E03F800001B5C7FC38007FFCEB1FE021397CB62A ->I<EC3FC0903801FFF0010713FC90380FE03E90383F800790387E001F49EB3F80484813 -7F485A12075B000FEC3F0049131E001F91C7FC5B123FA3127F90C9FCEB01FC903807FF80 -39FF1E07E090383801F0496C7E01607F01E0137E497F16805BED1FC0A390C713E0A57EA4 -7F123F16C0A2001FEC3F807F000F15006D5B000714FE6C6C5B6C6C485A3900FE07F09038 -7FFFC0011F90C7FCEB03FC23397DB62A>I<EB03F8EB1FFF017F13C03901FC07E048486C -7E3907E001F8000F6D7E4848137E5B003F80A248C71380A25AED1FC0A516E0A56C143FA3 -6C7E157F121F6C6C13FF6C6C13DF000313013901F0039F3900FC0F1FD93FFC13C0EB07F0 -90C7FCA2153F1680A216005D120F486C137E486C5BA24A5A4A5A49485A381F000F001CEB -1F80260F807FC7FC3807FFFE000113F838003FC023397DB62A>57 -D<121C127FEAFF80A5EA7F00121CC7FCB2121C127FEAFF80A5EA7F00121C092479A317> -I<B712C016F816FE000190398001FF806C90C7EA3FE0EE0FF0EE03F8707E707E177FA2EF -3F8018C0171F18E0170F18F0A3EF07F8A418FCAC18F8A4EF0FF0A218E0A2171F18C0EF3F -80A2EF7F0017FE4C5A4C5AEE0FF0EE3FE0486DEBFF80B8C7FC16F816C036397DB83F>68 -D<B812FEA3000190388000076C90C8FC173F838383A383A31880170116C0A394C7FCA315 -01A21503150F91B5FCA3EC000F15031501A21500A21860A318E093C712C0A41701A3EF03 -80A21707A2170F173F177F486D903807FF00B9FCA333397EB838>I<DBFF8013C0020FEB -F001023F13FC9139FF803F03903A03FC000787D90FF0EB03CF4948EB00EF4948147F4948 -143F49C8121F485A4848150F48481507A248481503A2485A1701123F5B007F1600A44848 -1600AB93B6FCA26C7E9338007FE0EF3FC0A2123F7F121FA26C7EA26C7EA26C7E6C7E6C6C -157F6D7E6D6C14FF6D6C14EFD90FF8EB03C7D903FEEB0783903A00FFC03F0191393FFFFC -00020F01F0130002001380383D7CBA41>71 D<B648B512FEA30001902680000313006C90 -C76C5AB3A491B6FCA391C71201B3A6486D497EB648B512FEA337397DB83E>I<B612E0A3 -000101C0C8FC6C90C9FCB3AD1718A517381730A31770A317F0A216011603160FEE1FE048 -6D13FFB8FCA32D397DB834>76 D<B5933807FFF86E5DA20001F0FC002600DFC0ED1BF8A2 -D9CFE01533A3D9C7F01563A3D9C3F815C3A2D9C1FCEC0183A3D9C0FEEC0303A2027F1406 -A36E6C130CA36E6C1318A26E6C1330A36E6C1360A26E6C13C0A3913901FC0180A3913900 -FE0300A2ED7F06A3ED3F8CA2ED1FD8A3ED0FF0A3486C6D5A487ED80FFC6D48497EB500C0 -0203B512F8A2ED018045397DB84C>I<B5913807FFFE8080C69238007FE06EEC1F80D9DF -F0EC0F001706EBCFF8EBC7FCA2EBC3FEEBC1FFA201C07F6E7EA26E7E6E7E81140F6E7E81 -14036E7E168080ED7FC016E0153FED1FF0ED0FF8A2ED07FCED03FEA2ED01FF6F1386A2EE -7FC6EE3FE6A2EE1FF6EE0FFEA216071603A216011600A2177E486C153E487ED80FFC151E -B500C0140EA2170637397DB83E>I<B6903807FFFEA3000101809038007FE06C90C8EA1F -80EF0F001706B3B2170E6D150C80171C133F17186D6C14385F6D6C14F06D6C5C6D6C495A -6D6CEB07806D6C49C7FC91387F807E91381FFFF8020713E09138007F80373B7DB83E>85 -D<007FB590383FFFFCA3C601F801071380D97FE0D903FCC7FC013FEC01F06D6C5C5F6D6C -5C6D6C13034CC8FC6D6C1306160E6D6C5B6DEB8018163891387FC0306E6C5A16E06E6C5A -91380FF18015FB6EB4C9FC5D14036E7EA26E7F6F7EA24B7E15DF9138019FF09138038FF8 -150F91380607FC91380E03FE140C4A6C7EEC38000230804A6D7E14E04A6D7E49486D7E13 -0391C76C7E01066E7E130E010C6E7E011C1401013C8101FE822607FF80010713E0B500E0 -013FEBFF80A339397EB83E>88 D<EB1FE0EBFFFC3803E03F3907000F80390F8007E0486C -6C7E13E06E7EA26E7E6C5A6C5AC8FCA4147FEB07FFEB3FE0EBFE00EA03F8EA0FF0EA1FC0 -123F485A90C7FC160C12FEA31401A26C13036CEB077C903980063E18383FC01E3A0FE078 -1FF03A03FFF00FE03A007F8007C026277DA52A>97 D<EB03FC90381FFF8090387E03E039 -01F80070484813F83907E001FC380FC003A2EA1F80123F90380001F848EB00F01500A212 -7E12FEAA127E127FA26C14067F001F140E6D130C000F141C6C6C13386C6C13706C6C13E0 -39007C07C090381FFF00EB07F81F277DA525>99 D<ED0FC0EC03FFA3EC003F150FB0EB03 -F8EB1FFF90387E078F9038F801EF3903F0007F4848133F4848131FA24848130F123F90C7 -FC5AA2127E12FEAA127E127FA27EA26C6C131FA26C6C133F6C6C137F6C6CEBEFF03A01F8 -01CFFF39007C078F90381FFE0FD907F813C0283B7DB92E>I<EB07F8EB1FFF90387C0FC0 -3901F803E03903F001F0D807E013F8380FC0004848137CA248C7127E153E5A153F127E12 -FEA3B7FCA248C8FCA5127EA2127FA26C14037F001F14076C6C13060007140E6D131CD801 -F013386C6C137090387E03E090381FFF80903803FC0020277EA525>I<147E903803FF80 -90380FC1E0EB1F8790383F0FF0137EA213FCA23901F803C091C7FCADB512FCA3D801F8C7 -FCB3AB487E387FFFF8A31C3B7FBA19>I<ED03F090390FF00FF890393FFC3C3C9039F81F -707C3901F00FE03903E007C03A07C003E010000FECF000A248486C7EA86C6C485AA20007 -5C6C6C485A6D485A6D48C7FC38073FFC38060FF0000EC9FCA4120FA213C06CB512C015F8 -6C14FE6CECFF804815C03A0F80007FE048C7EA0FF0003E140348140116F8481400A56C14 -01007C15F06CEC03E0003F1407D80F80EB0F80D807E0EB3F003901FC01FC39007FFFF001 -0790C7FC26387EA52A>I<EA0380EA0FE0487EA56C5AEA0380C8FCAAEA03F012FFA31207 -1203B3AA487EB512C0A312387EB717>105 D<EA03F012FFA3120F1203B3B3AD487EB512 -C0A3123A7EB917>108 D<2703F00FF0EB1FE000FFD93FFCEB7FF8913AF03F01E07E903B -F1C01F83803F3D0FF3800FC7001F802603F70013CE01FE14DC49D907F8EB0FC0A2495CA3 -495CB3A3486C496CEB1FE0B500C1B50083B5FCA340257EA445>I<EB03FE90380FFF8090 -383E03E09038F800F84848137C48487F48487F4848EB0F80001F15C090C712074815E0A2 -007EEC03F0A400FE15F8A9007E15F0A2007F14076C15E0A26C6CEB0FC0000F15806D131F -6C6CEB3F006C6C137EC66C13F890387E03F090381FFFC0D903FEC7FC25277EA52A>111 -D<3903F01FE000FFEB7FF89038F1E07E9039F3801F803A0FF7000FC0D803FEEB07E049EB -03F04914F849130116FC150016FEA3167FAA16FEA3ED01FCA26DEB03F816F06D13076DEB -0FE001F614C09039F7803F009038F1E07E9038F0FFF8EC1FC091C8FCAB487EB512C0A328 -357EA42E>I<D903F813C090381FFE0190387E07819038FC01C33903F000E30007147748 -48133749133F001F141F485A150F48C7FCA312FEAA127FA37E6D131F121F6D133F120F6C -6C137F6C6C13EF3901F801CF39007E078F90381FFE0FEB07F890C7FCABED1FE00203B5FC -A328357DA42C>I<3807E01F00FFEB7FC09038E1E3E09038E387F0380FE707EA03E613EE -9038EC03E09038FC0080491300A45BB3A2487EB512F0A31C257EA421>I<EBFF03000313 -E7380F80FF381E003F487F487F00707F12F0A2807EA27EB490C7FCEA7FE013FF6C13E06C -13F86C7F00037FC67F01071380EB007F141F00C0EB0FC01407A26C1303A37E15806C1307 -7EEC0F00B4131E38F3C07C38E1FFF038C03F801A277DA521>I<1318A51338A31378A313 -F8120112031207001FB5FCB6FCA2D801F8C7FCB215C0A93800FC011580EB7C03017E1300 -6D5AEB0FFEEB01F81A347FB220>I<D803F0EB07E000FFEB01FFA3000FEB001F00031407 -B3A4150FA3151F12016D133F0000EC77F86D9038E7FF8090383F03C790381FFF87903A03 -FC07E00029267EA42E>I<B538807FFFA33A03FE003FF00001EC1F80000092C7FC017E13 -1C6D13186D6C5AECC070010F5B6D6C5AECF180EB03FB6DB4C8FC6D5AA2147F804A7E8114 -CF903801C7E090380383F090380703F8EB0601496C7E011C137E49137F01787F496D7E48 -6C80000FEC3FF0D8FFFE90B51280A329247FA32C>120 D<B538803FFEA33A0FF8000FF0 -6C48EB07C00003EC03806C7E16007F00001406A2017E5BA2137F6D5BA26D6C5AA2ECC070 -010F1360A26D6C5AA214F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A214 -701460A25CA2EA7C0100FE5B130391C8FC1306EAFC0EEA701C6C5AEA1FF0EA0FC027357E -A32C>I<B712E016FC16FF0001903980007FC06C90C7EA1FE0707E707E707EA2707EA283 -A75F16035F4C5A4C5A4C5A4C5AEEFF8091B500FCC7FCA291C7EA7F80EE1FE0EE07F0707E -707E83707EA21880177F18C0A7188017FFA24C13005F16034C5AEE1FF8486DEB7FF0B812 -C094C7FC16F832397DB83B>194 D<0103B812F8A3903C0003C0000FFC006E486D5AAD92 -C7FC5CA81406A55CA45CA35CA35CA25CA2495A130391C8FC1306130E5B5B137801F84B7E -003FB912FCA301E0C9120790CBFC007C183E0078181EA20070180EA200601806A400E018 -07481803A4404980B841>196 D<B812FEA3000190388000076C90C8FC173F838383A383 -A31880170116C0A394C7FCA31501A21503150F91B5FCA3EC000F15031501A21500A21860 -A318E093C712C0A41701A3EF0380A21707A2170F173F177F486D903807FF00B9FCA33339 -7EB838>I<0060EBFFC0D8700F13F8D8783F13FE3A7C7F00FF80D87FF0EB3FC001C06D7E -496D7E90C76C7E007E81007C6E7E12781501007081A41260A3C85B15035E15075E4B5A4B -5AED3F8003FEC7FC903807FFF85B90380001FF9138003FC0ED0FF06F7E6F7E6F7E6F7E17 -80EE7FC0A2EE3FE0A212C0A57E0060ED7FC0A2007016806C15FF4B13006C5D6C4A5A6C6C -EB0FF8D803E0495AD801FEEBFFC0D8007FB5C7FC011F13FC010113C02B3D7CBA33>199 -D<B649B5FCA3000101809038007FF06C90C8EA3F80053EC7FC173C17385F5F4C5A4C5A4C -C8FC160E5E5E5E5E4B5AED0780030EC9FC5D153E157E15FF5C4A7F4A6C7E140E4A6C7E4A -6C7E14704A6C7E4A6C7E14804A6C7E6F7EA26F7F707EA2707E707EA2707EA2707E707EA2 -707E707F8484486D497FB6011FEBFF80A339397DB841>202 D<B6013FB512C0A3000101 -809039007FE0006C90C86C5AB3A491B7FCA391C8123FB3A6486D4A7EB6013FB512C0A33A -397DB841>205 D<EC03FF021F13E09138FE01FC903901F8007ED907E0EB1F8049486D7E -D93F80EB07F049C76C7E01FE6E7E48486E7E49157E0003167F4848ED3F80A24848ED1FC0 -A2001F17E049150F003F17F0A3007F17F8491507A300FF17FCAC007F17F86D150FA3003F -17F0A26C6CED1FE0A36C6CED3FC0000717806D157F000317006C6C15FEA26C6C4A5A017F -4A5A6D6C495A6D6C495AD907E0EB1F80D903F8017FC7FC903900FE01FC91381FFFE00203 -90C8FC363D7BBA41>I<BA12C0A300010180C7387FE0006C90C86C5AB3B3AD486D4A7EB6 -013FB512C0A33A397DB841>I<913A01FF800180020FEBE003027F13F8903A01FF807E07 -903A03FC000F0FD90FF0EB039F4948EB01DFD93F80EB00FF49C8127F01FE153F12014848 -151F4848150FA248481507A2485A1703123F5B007F1601A35B00FF93C7FCAD127F6DED01 -80A3123F7F001F160318006C7E5F6C7E17066C6C150E6C6C5D00001618017F15386D6C5C -D91FE05C6D6CEB03C0D903FCEB0F80902701FF803FC7FC9039007FFFFC020F13F0020113 -80313D7BBA3C>209 D<49B612E0A3D9000101E0C8FC9138007F80A491381FFFFE0103B6 -12F0903A1FFC7F8FFED97FC0903880FF802601FF00EC3FE0D803FCED0FF048486F7E4848 -6F7E48486F7EA248486F7EA2007F188049167FA200FF18C0A9007F1880A26D16FF003F18 -00A26C6C4B5AA26C6C4B5A6C6C4B5A6C6C4B5A6CB4ED3FE026007FC0ECFF80D91FFCD98F -FEC7FC0103B612F0D9001F49C8FC9138007F80A6913801FFE049B612E0A33A397BB845> -212 D<EB1FE0EBFFFC3803E03F3907000F80390F8007E0486C6C7E13E06E7EA26E7E6C5A -6C5AC8FCA4147FEB07FFEB3FE0EBFE00EA03F8EA0FF0EA1FC0123F485A90C7FC160C12FE -A31401A26C13036CEB077C903980063E18383FC01E3A0FE0781FF03A03FFF00FE03A007F -8007C026277DA52A>224 D<16C01507153FEC07FF027F13800103B51200010F13FC013F -13F0D9FFFEC7FC4813C0D803FCC8FCEA07F0EA0FC05B48C9FC121E5AA212381278387003 -FE90380FFF8090383E03E03960F800F8D861F0137CD8E3E07FD8E7C07FD8EF80EB0F8000 -DF15C090C71207B415E0A248EC03F0A416F8A9007E15F0A2007F14076C15E0A26C6CEB0F -C0000F15806D131F6C6CEB3F006C6C137EC66C13F890387E03F090381FFFC0D903FEC7FC -253B7EB92A>I<B67E15F03907F801FC3903F0007E81ED1F8016C0A5ED3F80160015FEEC -03F890B512C0A29038F000F8153E81ED0FC016E0150716F0A516E0150F16C0151FED7F80 -486CEBFE00B65A15E024247EA32A>I<B612FEA23807F8006C48131E150EA215061507A2 -1503A51500B3EA07FCB512F0A220247EA325>I<013FB612E0A2903A01E003FC006D486C -5AAC14801301A5EB0300A31306A35B131C13185B13F0485A00074A7E007FB712F0A290C8 -1207007C15010070ED0070A20060163000E01638A3481618A52D3180A32E>I<EB07F8EB -1FFF90387C0FC03901F803E03903F001F0D807E013F8380FC0004848137CA248C7127E15 -3E5A153F127E12FEA3B7FCA248C8FCA5127EA2127FA26C14037F001F14076C6C13060007 -140E6D131CD801F013386C6C137090387E03E090381FFF80903803FC0020277EA525>I< -D83FFF90B538C03FFFA2D807FE903A07F8001FF8D801FC6D48EB0FE0D8007C1780011E04 -1EC7FC6D5ED907805DD901C015E0D900E04A5A02704A5A023C020FC8FC020E141C020F14 -3CDA1F83137E91393FE3F1FFEDF3F3913A7F3BF73F80913AFE1FFE1FC049486C486C7EED -03F0D903F86E7ED907F06E7ED90FE06E7EA2D91FC06E7ED93F80157FD97F006F7E017E16 -1F01FE834848707E000384000784000F4A6C80B590B539C03FFFC0A242247FA345>I<38 -C07FF000E3B5FC39FF803FC039FC000FE048EB03F04814F848130115FC5AA2C7FCA215F8 -EC03F0EC07E0EC0FC0EC3F00EB7FF8809038003F80EC0FE0EC03F0EC01F815FC140015FE -A312C0A315FC6C1301006014F80070EB03F0003CEB0FE0000FEB3FC00003B51200C613F0 -1F277EA525>I<B500C1B51280A23B07F8000FF0006C486D5AA4150F151F153F157715E7 -15C71401EC0387EC0707140E140C14181438147014E0EBF1C0148013F3EBF70013FE5B5B -5BA4486C497EB500C1B51280A229247EA32E>I<011E133C017F137F6E5A01FF80A46D48 -6CC7FC013E133E90381FFFFC010713F00100138091C9FCA4B500C1B51280A23B07F8000F -F0006C486D5AA4150F151F153F157715E715C71401EC0387EC0707140E140C1418143814 -7014E0EBF1C0148013F3EBF70013FE5B5B5BA4486C497EB500C1B51280A229347EB32E> -I<B538C03FFFA23A07F8001FF86C48EB0FE01680031EC7FC5D5D15E04A5A4A5A020FC8FC -141C143C147EEBF1FF13F39038F73F809038FE1FC0496C7E13F06E7E6E7E6E7EA26E7E15 -7F6F7E151F826F7E8282486C80B539C03FFFC0A22A247EA32E>I<90B712C0A2903A03C0 -07F8006D486C5AAF13031400A65B13061238127C12FE130E130C131CD8F818497ED87038 -90B512C0EA3FF0D81FC090C8FC2A257FA32E>I<D8FFF0EC0FFF6D5C000716E0000316C0 -017C1437A26D1467A36D14C7A290390F800187A3903907C00307A2903803E006A3903801 -F00CA2903800F818A3EC7C30A2EC3E60A3EC1FC0A23907800F80EA0FC0D81FE0EC0FE027 -FFFC0701B5FCA230247DA337>I<B500C1B51280A23B07F8000FF0006C486D5AAC90B6FC -A29038F00007B0486C497EB500C1B51280A229247EA32E>I<EB03FE90380FFF8090383E -03E09038F800F84848137C48487F48487F4848EB0F80001F15C090C712074815E0A2007E -EC03F0A400FE15F8A9007E15F0A2007F14076C15E0A26C6CEB0FC0000F15806D131F6C6C -EB3F006C6C137EC66C13F890387E03F090381FFFC0D903FEC7FC25277EA52A>I<B81280 -A23B07F8000FF0006C486D5AB3AC486C497EB500C1B51280A229247EA32E>I<3903F01F -E000FFEB7FF89038F1E07E9039F3801F803A0FF7000FC0D803FEEB07E049EB03F04914F8 -49130116FC150016FEA3167FAA16FEA3ED01FCA26DEB03F816F06D13076DEB0FE001F614 -C09039F7803F009038F1E07E9038F0FFF8EC1FC091C8FCAB487EB512C0A328357EA42E> -I<EB03FC90381FFF8090387E03E03901F80070484813F83907E001FC380FC003A2EA1F80 -123F90380001F848EB00F01500A2127E12FEAA127E127FA26C14067F001F140E6D130C00 -0F141C6C6C13386C6C13706C6C13E039007C07C090381FFF00EB07F81F277DA525>I<00 -7FB612E0A2397E03FC07397801F8010070140000601560A200E01570A200C01530A50000 -1500B3EB07FE0003B512FCA224247EA329>I<B538803FFEA23A0FF8000FF86C48EB07E0 -0003EC03C016806C7E16007F00001406A2017E5BA2137F6D5BA26D6C5AA2ECC070010F13 -60A26D6C5AA214F101035BA2D901FBC7FCA214FF6D5AA2147CA31438A21430A214701460 -A25CA2EA7C0100FE5B130391C8FC1306EAFC0EEA701C6C5AEA1FF0EA0FC027357EA32C> -I<153FEC0FFFA31400153FB0D903F8EB07F0D90FFEEB1FFC903B7F07BF783F80903BFC01 -FFE00FC048486C496C7ED807F090397F8003F848486F7E496DC7FC001F834848167FA248 -C7ED3F80A300FEEF1FC0AA007FEF3F80A36C6CEE7F00A26C6C16FE000F5F6D90387F8001 -6C6C496C485AD801F8ED07E06C6C486D485A903B7F07BF783F8090280FFE3F1FFCC7FCD9 -03F8EB07F090C790C9FCAB4B7E91380FFFFCA33A4A7DB941>I<B538807FFFA200079038 -003FF06C48EB1FC06C4891C7FC6C6C131E017E131C6D13186D6C5AECC070010F5B6D6C5A -ECF180EB03FB6DB4C8FC6D5AA2147F804A7E8114CF903801C7E090380383F090380703F8 -EB0601496C7E011C137E49137F01787F496D7E000181000381D81FF8EB3FF8D8FFFE90B5 -1280A229247FA32C>I<B500C1B51280A23B07F8000FF0006C486D5AB3AC486C497EB812 -C0A2C9121F16071601A2160017E0A31760A52B317EA32E>I<B500C1B51280A23B07F800 -0FF0006C486D5AAC6C7E0000141F017E13FF90383FFFE70107130790C7FCAD4B7E4AB512 -80A229247EA32E>I<B500C3B5380FFFFCA23D07F8001FE0007F806C486D48EB3F00B3AC -486C496CEB7F80BA12FCA23E247EA343>I<B500C3B5380FFFFCA23D07F8001FE0007F80 -6C486D48EB3F00B3AC486C496CEB7F80BA12FEA2CCFC193E190EA219061907A31903A540 -317EA343>I<007FB5FCA2387E03FC387801F812701260A212E0A212C0A5120091B512E0 -16FC9138F800FFEE3F80EE1FC0EE0FE0EE07F0A2EE03F8A5EE07F0A2EE0FE0EE1FC0EE3F -80496CEBFF00017FB512FC16E02D247EA333>I<B500C00107B5FCA2D807F8C8EA3FC06C -48151F1880AB90B512C015F89038F001FEEC007FED3F80ED1FC0ED0FE0A2ED07F0A5ED0F -E0A2ED1FC0ED3F80DB7F0013C02707F801FE133FB6D8F807B5FC15C038247EA33C>I<B5 -12C0A2D807F8C8FC6C5AAC90B512C015F89038F001FEEC007FED3F80ED1FC0ED0FE0A2ED -07F0A5ED0FE0A2ED1FC0ED3F80ED7F003907F801FEB612F815C024247EA32A>I<EB3F80 -38C1FFF038E7C0FC38FE003F48EB1F8048EB0FC048EB07E05AEC03F04814F8C7120115FC -A3140015FEEA03FE380FFF8014FFEA003FEB0FFCEB03C090C7FCA315FC1401A200C014F8 -14036C14F000601307007014E06CEB0FC06CEB1F806CEB3F003807C07C3801FFF038003F -C01F277EA525>I<EE1FE0EEFFFCB539C003F03F923907C00F803C07F8000F0003C06C48 -011E6D7E033E804B6D7E03FC804B147C0201157EA24A4880A302071680A290B5FCA2EBF0 -07A602031600A26F5C0201157EA26E6C5C037C5C037E1301033E5C6F495A486C903907C0 -0F80B527C003F03FC7FC923800FFFCC9EA1FE039277EA53E>I<49B61280131F903A7F00 -0FF00001FC6D5A485A485A1207A512037F1201EA00FEEB3F80010FB5FC1300ECFE0714FC -EB01F8EB03F0130714E0EB0FC0EB1F80133FEB7F00137E13FE485A485A1207001F4A7EB5 -48B51280A229247FA32D>I E -%EndDVIPSBitmapFont -end +%%BeginFont: SFTI1000 +%!FontType1-1.0: SFTI1000 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich <vvv@vsu.ru>. +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecti1000, tcti1000, lati1000, lbti1000, lcti1000, rxti1000. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Italic) def +/FamilyName (Computer Modern) def +/ItalicAngle -14.04 def +/isFixedPitch false def +/Weight (Medium) def +end readonly def +/FontName /SFTI1000 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-95 -321 1415 932}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6B55C6E47AD7A9A958A6E22E00FDD4D6492D53ADDC90ECD778346C06747 +57609FE8907DFFFED75E2CF963A64C7F72488F4A02372BE681E9BBF09A9CE5A9 +3894F6358C244FCD46C148F1EB60DE2137E6D3079D6AE03B3724F7D7BBA47BC4 +41C27FFFDFF9FB7B7738A8D88C27573A53E244723E07C995948DED2516B6044E +ADED62C496A56BC14483D307884467ADE985655A4712DD06ED00811F9A05BF9F +BF2AC66203817289FFB5BDCD0445293981AF6F55928C132E885ED009DE1B5FB0 +C230370EB5156A8B609E466F00F768F0A52ABCFBFCE3514C0FDDE31E601AD508 +2666AD26D9DB386B9FEC80AC197C9FE7447928C0C6A2858375F0A1D7AD3BE53C +9A926DDFBAC60D846783AA97CB86F804701BF53F7C4D18B925FD604F60231215 +EBDF4FAD73F2D13518E1901C3DA00ACE65647765106EFCA89D1D9658B03F6CA8 +B946CC6A042A9252DC769230F3BD7E28F4F053048B53BD212C59DA9014DC7AE0 +EC0B3CDA53F5E7841151CA72391E3A10D7516363D380459F088D76B89C3EF169 +B03C4766CA4B85355DB143022F211836E5D6305B246CFBE9FAA7BBC54FFF001A +2DB17495F48D6E54B6FA8A07F235DDB3A77888969BBDAE1805687208571A3504 +BB3369B5BA66993CB4F6637C6D78C2049B479579C840FD79266C063FC5C3E202 +CAD886763ACC659E21F8BD2E4BC8C80B3E38FECFD3B86DAFB461ED9E7E1A0A14 +95DEDF3EAF23A3841911D45492010C1EAB95BBD126557690A998052D72DBCE88 +490275B598CA2074F6F567E9FE9BF00422E28353DFB841E0E3C0022F349A558F +2BB17A2A6F7BDD8B6348996C73F5B17C75A64BDC52975EE709A13A78235AD9A8 +9D879EFBF0D6F37860D59ABC08F10D3367C5B7DAB76C265E687CE3B6352AD978 +9127D2DFFDC37BA11A4FD123BF2090C3A371D2D4BDA1683B0CDC42D90BFB853D +612B9764DA9E47D93BF2AD5A3AAA6CC25DDA316BF4B8A357E0BD8DBFD359041C +E30E763D97D07A2599B250E855837276A91317E68C073482D86B13EBD8AC1FB0 +84361E47E0529F4EE7ECF91C20AF7F8F0F3C50D555F0CE868F575CA4887169E9 +31886F602E3FC3ECE4C8C2A44F2756FCEF03AF7CC9DB3DFBCDF90E884AE2A1DF +7BACC3A3E210B235B7F548E43221D2B5492C8C2742F7E10B6AC4B028E2534A7C +B78CF6A4CABE55C1E5B193BA5A18C3CB83D520B4C370BA1F63FFABB2ACBC287D +AD13AEDEAFE9598B4393F13501807A827B6662A8AA22453875D179A3C519F5E0 +68809F9BADE016976113E3EC1E77C9D623DB208F4458A01D03FA3098878D8D6E +412F0E04466246A5C288DD481826334369F5B4853C7062D03CFA88A1DA6F6F50 +5CA0AF78EA1391B469859B00A7B0820096920ED9B916947493B04A964D732DC5 +F4084084A521945E1E080B0C9434404BF60D673AC6AC600FC03200B0EEEE8E1E +3138731AA734976342C0D7B4BCABC4A5526F66B4367215A14348C871E99BC247 +C7777A033F4A061B524B2B97D839C5CA258F772B60076B1FA827241F6AA77817 +DA31C00366C28046CB4A25F352611FE6FAEFADF138942E75D2BC26E84BAF5EC7 +E9A027D006A71F6165D6BA6C48B28A43277474966DCF750A6B28557C121308E5 +5D30AD9647EE836E7FEF2A6ED048289E359C54E9010A912ADD3BA1731919AFF2 +5C0E3D258B2D0132A4E068D1B3E46C78359A538D3F491EDAAC90F6C2EC51CAE9 +8971C101698A4D1DC0570D7F6C476707543F829126E86C981B1ABF777B11464F +13541B83DF22AEA6E178D5B630BCA75AF6C3954A58E620D561DE09809FB5AC47 +8F2E52FB517C878F1E7C9B0DF328C1284E4B259EBE17E067DC85486F43A5BF90 +F745659E1138A3DC9E486D4E8E040FB096D06A3FAF7C41FBE2C4749AB79EAAFA +A7490F5819E5AA671664772FF9981427AA7B9146CBF9F15521CEA6580851BD4E +642A4D1B0CFAC76C11AD5E3FB277FC745DAFCBBDB74C8CEEA8B64C7D8C3F99C5 +2B31B8590E76E4852F907802E624888AA3B545837B730AB4F5332D80C9E5B717 +12EC51B7ACE615B2B6F59CE6F11158F191CAA801ACD47CD16A19541272BFA69A +22C76302E47C25720D76B5CA6F55229C7436A0077B2EB8CDE617BF3E94A4327A +497A4E63244DE2E03A09A9FD459F6FBD5975E3CD0F4FDB90F2AEA7197E6D7685 +339221906C6F4ABAA86C60E5D1B682D98C99E38B0CFB140C1A8DA85A30FA6C8E +B90E8CD4B1B28B1193A9D86770164CEEEE38D7F23A84AD292F2AA9391866DC5F +E396C113B45485013DEF503E52442DC0D8BD0EB8DED6B7F93ED35538EA4D574B +5CFB96FC252707566F1E75D597AF192AFA801A097137A3C06457D8F1D82C084C +821BC367059E01E3EEE319902CD31BDF01CB939FE771F881F7FE31A4F18310B0 +820959855E9387EFD7AD553DFC13377E1A883568C7B98C4BE2651D1DBFA54667 +0BB0F545C53C146A467A2B1FE385E2F67117502589946B6CCD857646A77A99BA +356ADFF1FEF6F14DEED94625B0198777868BBC8E0539C7748BB7531E32995D3F +FD777D555B22CF936A844FF05750A856764ADC18854135BF8A74C56DFE1DC0F2 +29CDEF162FD7456EFD747DD6665600A4464C388256C0689EA93891C6F7E80F7B +8CA32EA57782592F15D28B49C5D78D509F6F6595F7435BC8AED00CC85086B55A +554D41378C0DBD9B4A5F59DA78CF4A345D495A7649FBB5C703BE9B12BAB4F088 +9980C4AADBE25C90D7096250DFE5F439639F339043DD02D1E7E91BB698E8712D +8D19CC888119EFC8D97C8B44F79C286288A1FD2251AFFA1A1729F12EE46D7546 +D91B7F0C2EF2318FBACF5F30AF2D23EBF2E564166A0FD31EB9C8E9E48CED8475 +882B9AFA057BCACEC4D91D6861625F254D66F6FC279902ABB867B3CD62F1135E +58FB7EAD2A047AD848A7363862C3B863D3C871DE8112D4A642C7461ED8C2AD3A +F0293FC8ED1C9996 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFBX1000 +%!FontType1-1.0: SFBX1000 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich <vvv@vsu.ru>. +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecbx1000, tcbx1000, labx1000, lbbx1000, lcbx1000, rxbx1000. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Bold Extended) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Bold) def +end readonly def +/FontName /SFBX1000 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-229 -316 1737 939}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6B55C6E47AD7A9A958A6E22E00FDD4D6492D53ADDC90ECD778346C06747 +57609FE8907DFFFED75E2CF963A64C7F72488F4A02372BE681E9BBF09A9CE5A9 +3894F6358C244FCD46C148F1EB60DE2137E6D3079D6AE03B3724F7D7BBA47BC4 +41C27FFFDFF9FB7B7738A8D88C27573A53E244723E07C995948DED2516B6044E +ADED62C496A56BC14483D307884467ADE985655A4712DD06ED00811F9A05BF9F +BF2AC66203817289FFB5BDCD0445293981AF6F55928C132E885ED009DE1B5FB0 +C230370EB5156A8B609E466F00F768F0A52ABCFBFCE3514C0FDDE31E601AD508 +2666AD26D9DB386B9FEC80AC197C9FE7447928C0C6A2858375F0A1D7AD3BE53C +9A926DDFBAC60D846783AA97CB86F804701BF53F7C4D18B925FD604F60231215 +EBDF4FAD73F2D13518E1901C3DA00ACE65647765106EFCA89D1D9F9A167BC064 +00BECB75078C40B8FE29E6169F9CA9EAD3C8CC4B31F33E66B30F4CA5F0F743EF +DC2B1859C37C4291C5D64419125B705ADDB0C085612F09D6AC7DC4CE8B35EBC8 +1CE8C5F6B0F8EF41A213445DA7BD05638DF2ED81B404B2C3CAB5F51C2A4263CD +B74F54D38C2B4C86A0D6E76212B7BEDF7FAE6334339A8A249C1AF2A51EF48DF3 +0FF609A25A0FA1EDCFE4A5DE9F3BD59C2DF4BC1D50B4BC3341CE01EB8BD39743 +8E79DAF3EC0D27ADDC68BD517E4225CF4C78D8A72E0683D6BC285C21EB4084CE +E8B4A08A05BF8EDE3D97CCEC74C9E9CB21D7A52D5F7CC453D2240D8168F765D3 +F7ADD78BC19857C2383EBE7036C9E7DD0883919C1649EE0B35396BB484568F68 +18EBFF229ED655CBB00D1D31F80BE718631475170BDC146470623E7F43790F3E +7E638F184A19FA7C41FB65C57F943116D297C764A50F6B2BA83E9DF429D8E4CC +2F9564E06F04E59567342AF2B1DE89B1A0960CD69C89E13E08C1063FC92078E1 +22523E41B1BC8519EFAAD6DCE266E951DEACD1EE1AB160F414C2BE609D0D902C +A8C73258346B52B14D43C252C9A3E7DA8EBF491EC59E07AF64E71172286098BA +3ED1AA95CDCF1B2D5E8CB973130E8C0188F9951C62F04404166720C341B35EDB +458654159220AD7BE5F195D5D1243B062CCDDB60BA4124D5F9BB1FB1585EE99F +D49D0BF36808DE251352DF811E9F039C1267B2FF5415DC581FAD73549E22E4F8 +0F05C1A852615B62AEF4155A50A03B5D6AD11645F38AB4EABF4E9F1245797ECF +DBEEB8A77D41960A13E886B36C8712E36D1C8D801BC81F3A92E9B9592E3C8F41 +66A6597472295C1A0F09781A22DCC8B8EA7B18FAF763F5BC9AA0B9676C4D3014 +05160F9B3B8FF7CE836FBE0F4C2A9D0DF3B6F3A3CC2CC70A2B10D3194194A4D7 +91F756E98E254A060C183C0FB485F0CBB97C471EB8B35536EEEA92E15404468F +F6A49FC7F0377F86B0E3DA3B83396DEAFC24FFC850E62EE33AC73EF5BF683D9A +332101D526C505AF1EDABF95E5BE758D2EB86322E992998AE060FB7403020E8C +BC71BF2164719CE2534E467DB93146EC76A522D02D32DCE37E9DFC2029CB2787 +20165615BB48132E0390C70E727962F446E9C589F052ECE51D1F3D2B48DCEAD8 +152BF74D5579B5A41C0A3D72F582C0BBEA7AEF0C210277AE0937E0D3C3425402 +77D26CC23934FB5CAA3D39A47EBE6BD5E3C4F6E4632F3D26725AF65FA8A79B5C +062C6CE5331219D3DB3DC54EE1EE6149F64F24049536EC80F2EA982104A9F80E +163B9464FA8F9A8F8FB04C9D0570259653C198D0616D77CFDCED41C91EDEBCCC +B299020527C9AE75AB220FF02ABC6F0AAE5F86D21C91800124336EBBD8289D0E +9A984A2C7920EBB2722067BA36A6F3AD360A8CC682D8612B8C468B6249A951CD +1AB6EACA1812BAB103BF99520448091D3187C8F9848D28E81242F2AA8C2A0EE0 +197FC501948A2F1E38D20B0C9A9C9873D4D6C551C870F2AD1C5FC479243BCBE2 +F0B5980980893DC68CFA0967A1F43D482CDF7EF767F8D869945B938C3DAF7520 +859209EAC736C703DA63FD0AC9E9F69B87DF1F84EFCB2997C5DB837A3A55ED7C +81B805FB95FB63AA3986D0FE5DCBA28CD7E94393452EC6876E901F2B3EADF02F +9C151E481AB18A39F7865FE0C33632490186FE8FABD0B28E0E1210793D00DB52 +40475705766CFEE36331C606B6A2107D6A48A8E0536E58C703FBE92C089C5574 +832207126FF29BC538452B9CA27973FF22A0D0A42FF0579CA53CDC9A3FCB8E51 +767F35D50073E17CDEEAE4A7F0959FFA480FF4A42B0C0E056593AEA52D3575DA +03DEDBC37B6E851DF1C389B1675ED8953E25AD53FEDC27FA986E5ED3585B4D9D +4BDBBC980E5BADA5784B94F5F0D320CC36B4125B2AFFB93523D9F15DF7FD8C17 +AE5C262337855AC2256A1F88C666D89289FA3EDB6AF6846262DA782903707483 +11C9CB87BA94275392766C0420610DBA35BE10A214F78F51E932E96201932071 +393EDE1269C402F737EC89A37A2BAC8A56474AD6EEC15BF22EA3718F127D165B +E6CB131EA68FA9F717F9D071D3C018B7321E63AA935B8626B683087751257E47 +D26E7AB250DE4A57B781D221C2E0C92CFF820CBAFCE2B2BB02924BE9E803A1F4 +E8CC696F5911BFEF3BE6E1025401A52997D43ADB30816C67D3E4137E2A444E89 +93B9C48680054245EB5498557F6A083C41506866793BD01D1049072AB4CE4775 +C2952BEA2FCFBC8BCCF95A937AD3BAFD9547DFBC86EB8EB27522EF0EDBC599AA +A09B236EAF9B48F5D366083E1E62D73A8A2F03F06BE539108CE3D7D6FDEAB359 +4E3B700F63A024D9A28646BD2778EDD7D7FBE6BCC0DDA25AD823EAEB81855292 +A77C4348F534CF6EC42AE08F9109D02CE66AB3DFD317C62A3DA4E58BD27EC19C +8D31C93A7047AA549D061FAF49EF1BEAB02D0ED88C388C055D3F67A2984AB0CB +15C1E3AEAFE213A2A6444AEB5EB47B2AE56319ABEC36DF0CF09FC63635387137 +F29D045F71BE529B96547A3AB2A9B42CAF3BC022AF92AB2D13A00167F4448962 +4F7D7045B69A39F2CD165C1C02EED17F9C23C6825C1BBD64429B42AA0E812EFB +5C64A45C9BDF83822F2CDBDAAE8A14B95868CFE747F700D5F4A778E8CE1BA6B9 +16B884A94C0B781D76E12A4496F04A93EDB7B6F041EB7D8BAB60F40809A1C563 +F00FB88D12C683D583639404958D708826E752C197F861A659E8251E5D7E34AC +430E1E2A35E4D405EF5506E704FE9646D327DA01637CEEE4F0A67D901A1D503D +6BF751CE7A783161342DFD0C1BE92E4EAA56A06C320B96A8CCB587B77E53A34D +B9AC1F2149B2D60169538D2A3932A06DD26EB6D15E65ECC5BFEEBEE7573D31F8 +E6DE1904EB35AD47AC9926A4E0DC847085CE787BBD813C15DA6BE2D42186EAC7 +93193AEE3A19AAEB1AD63991615A2F1C12F052EC3919FB92DBE1EDF020EE0461 +8B1C6F2780C6DDF4F26C1B143FF92C2644D45E4FF7148E5ED8DAB1355C50F246 +011C107F3E02689A186C8F15DDE7B3A9E18999CCFD551D3AEDEC14E81AE0336B +C012FD2E2BCBE4FB941D2BD6A3048172E176552EEE18CE2997C90C883A0A78EA +E913E04ED663EF2C63EA5CB9517AEA8268E3FCF67EA5E3C0CE42CD0E5D8CBAEA +2E083B0C396418447177FD548D2F87DEA7AD54F0A56D5902AFA79AD535A6A202 +F2052982D388DB7A0B4AB918A12C026CA39F58608A0360F9E92CE707E362648C +A69430AC00F3BAF2B8F2B50DC3B4359F2B3F7356BB8922EEA4D008B69D9F941B +A80871AB1512FFF6D54DC35284340CBF8A247B6CE16FEA63B75E6B1B69E4E114 +1811106954C59C45019557A4A5B85141F5DB1E66132420A36F92A6D278952CEC +57397B1B19CEFD61D46E8E6251748D3A5C51627595F5384641389D410DC113F8 +E414A2092E1F016894547B9180086F32282A9E5008BF0EC303D795D819315A07 +7A53626EC56D1A51A2D63B302BFA5BFE76725BFF2763DF7A1BE276D38F9E4900 +1347C36E5544A537340D3432C95C0CE6FB109AFAF835F63ABDFBFB87D7CAB309 +8DECB48D92918280061A3B508E3FE77B38DE70C08F2AEEFE4A95E744AC9F187B +5A56B299D19740758FD5F83FBF45E3CD135925471D708F074CB7052C84BE0880 +6D9BE9CC6CDE5123C540750977BD5C40C3A06C2C9635A3D185E483A0A0BCEBAA +98ED8F9E91F811CBA81DD774706285A5D764D47C6619BA577DEFBE2A8F4CFEE4 +5D4224C668D733858A9A2BC3165FCA696BFB81FB9F6D9525AF9142F7D9B88CC9 +3C4A04143EFE905C3A53DB1CBB576FA71515ACDC4E9FB046132DF4391BB1BD17 +9E3D9F1134A08BBC61E2FF7C22C5414848C2EF8EEA7EA0E3BEA00CAB58234DA4 +32D462D39FD27B6D7075490FA8F7A2CC0E61131FD16E4730C3E052517CEB7161 +54E39C02B4C1C5203AFC3DDF08F9AB41D6DB7BD688D8741907B93DE8D05746D2 +CFCA62853EF535C720963D87F6E98BD70CB0077361C63083CC9EB2AB48724F5A +C7C1EE072EAB1591DE9DF8FCF694C0A0D00897B267BEB94DB325318C02FE0EB8 +F2871ED36C458381955334B2DC5815FB50946F6F84387177D9E09E418B68C687 +17BA7EDCC0A431639DDED783A0838DB4FEFAC3A50B2DE33B535AFA7D8DD82309 +6C2AB536486916B2F335A8F897A5D340C636181FC9C7E2BAE55D9A65F4703045 +57D3C717030D55D70DAE34526ADDFDE4B3C92CE801EB0158E3A53936693B9D9F +FF23B80988CDDDB2F94164FABDEB6E90DCC5A7E098E41332AB4A1EA8E070198F +C4AE542B3B20A60CFC9EE2368B474D025F05D1F96032D0329F34EE5B5B450ECA +29655E724FDA6AF338DE98FA754629431BC1E44A567B1408D4DA1C592A0CC28D +D57201857C85A13D6280F1DD4EC25B0A494C9F21F04E2205464FDB78466EFF0B +B058752B8FFDBFF71174C12AFD587BAD4296FFE66EDD97F6A14AEF4FBDCB257B +E600F6AEEFB534AC1E1047CB60C39BA36E561B7BF7EB819155CC4339AC60BACA +20DF47D2D9E59EF22E588431EEFF2EB5EFFC3B585084E89E81DC0C24264F8009 +09EBB172D9C25C0D11FF699E670B493AC2EAC2358BD1B72028E00C36ADC9BA60 +732B3B26ED56BC82B3DBA957FB4C02E8E2DD90C2FCE345BF97D8FBE13ADCF5A1 +BE554DCBC49BC30D6E133BADF6D86FC17A341233109015CB52681426BAB5E93A +5E57AAF28A69A9FE2C849713EB0CF82D169006B74C02A1C1F6C380259388923D +66E40BCF28CF9DBF326C93ED85EEDF22A87FA8790A48774204D4563D51A0B5A7 +3A71F8E104CC29E7EF753321EBA17CA8283BA88341129513E928612BFB8EB983 +331A1D69E8BCCF9303EEB299C30FA51A66F061275483A96484F85AE27775672B +3C002AFE7109807FCC60D682BCBBD9984BA2BECB273EA14572ED74D9781C6E59 +501E063BEFB1DA90060CB80071B65CDE7FF58FB70849517FE7A0A9B5D572F1CA +E6C5B3F9578207D7E69A9F0B69B68517AA4845CE8D31CE3721C4C49FDEC385C5 +933B63098D91B4A33BFE7CB26C8E4D3D81D4D7CCA6305056344B396BFAEBB5C4 +DC13B15B757C5F8F182E8366EC4B3961EC8037F93EFB11E28CEA9B446793278B +612A84F26A47EDE9CAAA63F2D405BDC6B2CDEFF681BF007F9FC5F1FD29578B74 +EBDBE7A95014F86EE9E1BC3D775C1BC9A898B0917E087BF96EC6E82FDA152006 +7A79AAC0A1C3D0A762D9BA1E7944D50A817ECB31744987159A9F70A08CD713C8 +65A988A6E45CEA1A61C3941E1176C18EC8A91273B225348A9FF4DACA0B096148 +6DC314286F42513CD54741AE6F729DE20E79D59BB69C887F7AF3A7D3F8B0A1D3 +5D40B7522486BED30509528A4BBBBDD2A50A325CD0CA221529B26D1EDBB53985 +F718EB894E2A0D724F436FC98BF053D5067935EB118B733F58C0443DD3D64D76 +5F774F261FC14E5AA8471D287F1C04BDA0EADD20298237B2352D4E7FCD49F5AC +C93C65A71042892E2FCF538C3403E53291C6E7195967FCC6D767D2C0572B0416 +00A679A61D7B8261CC3B395287ADA6B899BE3DE48E1BE994C9BE0AB599DAF88D +0F8CF24A8C78A70B4591C6EFFCFD672E9A2D96030C8503CAD9B4EDF49999671E +9684077EF2068F18EBFF909D24102E3E79F997B5E7C5E4E070442AE0685DC67A +04535D97466722D32D8B1042DE5D37BF6BFCBE65A6B6720EA143169B3A34B5DF +C57857E636D4619D888315557DBE9DC603F451EC86343CC765CF32BF00E63640 +A7F2697F3D6B82A0614B44268DC41ED693C25C465471DFD0D90158B1ADEF3F2D +E761F2FF65C4467FECBFF43F3789D2BA336E083FF2EAE5F6BF7E234913241CE1 +D463338059E5DF714572CD9F552DC1788F746DB2285356FEFEF131296558DF6E +D37902E8508E69374508D392FBBA98189605B7114D71719C1184331DF27439F9 +C05F5AB76980EE92597F087828494F7882DC730771332BF01043B0C95CB562A1 +6D928920AABC474EE515FA6D3BB0415F05122BD6D0998EA189DF6749FE773621 +5CB19FAE8D4472207AF37E91749ADC4F1CD9752F903C1DD22A7E42C5EE6D200F +3EEAD0F2030166028F61D005072FEFF3FBB46549507E87F293E9D2A73843ED55 +64F7248CEF3435430F2AE7A106FC01ACB11B33677146306B414CB019ED2B6B84 +735840D0CC6DB88F59B5D71780BC8778545636337BD17728BB5C0314CEC937E6 +AD613635D1D8431DE6749FF3C632B9331B16AE96BBA47CA99C32FBCD23EDFE71 +1D06D699907B4E95B379B2939A4CF024C1D60D6C032E30DCFA044C4E7AB05ED8 +595448A85A13A14973415269767D225062845488B79685C54BB97866B13240B7 +BEF0688C4849D38B065DC55C2B6F86AB0A9BCA32146B352449FF4375C6549548 +16765A2EDB6A38E948C291C97C9ACAE35E92FC52FE171632E71CC6EDFD98057D +DA5E3513C61721BDC7694E0384BFE1860945EC1E66FC9392BD9D3C8AA735CE55 +19D94ACA804AE0BD2FF853717146AF0AAF6A5E3A2F218187C3F19216D05BA1F7 +F612BAE6AAA2FB8ABA276E87E4C85A2607441E52537DB089C63A580D43F03568 +6197B85C7E74DED9D79A91166245A8E53F483E7280D32632A289CD36634EFB88 +A2B0312681207357626DB7B9E3BC8FF68A9B57B781624CC2EA113D6A52C732CE +516270191CFACB8F0074C160B2FC703231C3D4A0DCF5DBAE33B706E31A25CF78 +7E35B985D05E5D449DCFE75FE74E519495BAF2A65D179D3D18196C7BA237365F +08D2A398429364E9EE56DE5377A28B11AE28E02041ECFF251F9C922F2A812FCD +B587912F783B3F36A48A079B930BF0B3F3342C6C829A41F9C61D65D72E5FDDB8 +A2B925D0E68AF6E969C54F0CD3FC764D2B9444BBF09C2EA1D6E53C51F72EB99C +52720227BCF80215A0FC71F453CFB1BA34B6168E8949905687194168E2825D38 +3A296122AD2AA61DF3EEDF2D8A778070BC8CCCF89D9BF92A47A29D76E5832907 +638BBE1689924AD5E9292726300E5374FF21BD3F460F15EBB8B971ECB356DF4B +5923FB10B677EE4FCC17498A44E119AFECF07F52EECBB7A09EE9E5E71ECE78FD +49FD299DBE8D4A381D96D8547DE7CCC235C4026E4E30C1F3DAD4A3E47A53217B +95BC6285CE787BBD62DB5CD545E3CA96832E21C57E912E718E1BB1B8ED4C182B +4ED6E6BE789B666F0E167E2200C056EE11F50146F3EB4B18067551FAA65BA2CF +35A4E0482BEFB17509CCA233B3A69F14B82DBBD9C22377152E913C34532E82BC +9F304C531B3AC32D0956C520A7F0516B4D0B294D31AD0F31B506F4B5E57FE4BD +32205CACB2605BEE33352421E79A5C0FE089EE3EBC3198DC157AAED8B8D8D9C3 +EDCB06BE895360FCB7C96BF078100DFE97263BD1BA047534FAFDA6AA4F349427 +2049781B4D3F4EAF9C324E6B383448BA7A5863F83A27D0241DDAC2F0E54D46BF +A6937AB38744D515394B702245B4E133B9D839D7474DD1AF70C243566CE2EFD4 +A2E9F96F4F828B5EFA48EF89EF801A4CD5FAF790DD8F83EE6966700636D6725B +911A1353727A87834B7FB91C66ECA1AB9CF110DB1D6824CF111FCA4FF54AB65C +8EAD822F11667A54986CFC03292292174887B55B27CAB5EA16F46B393A3AF253 +D5507E766A2E21A8C9D36C3AE2A4CF0D8804596DFEB7AE093BF3A6094DA80257 +BC6918172D2E3CDE44D64CBC082956DDA9D5E44340C03EEBA35D4EA21435D935 +0B0393DB1BE66733CCB58DFFD98B2EF3702218FA908C91AB0F45D4395F8B86A5 +3D3A7960305E7331D9436A41F1259FC7EEE9294875DD4504B1C5039597D8D57E +E7F238388CE1AF8834DAD635760D4BF1D98AD023A7C47B0998FD0576EBCC5CB1 +F7AFD52D4174ED125B5C40E904EFCA544DC1C79C1E897C545A48A8FC9783E5F5 +A2402F8A7548AB934FD107E63776442B0353DA7F2533BAB97F342FA42EE2BADC +32DE8520CC3C9C9235A7D55715527EC8761EE7C2143589684B5B12B4CF38E2E3 +13DE97D03B5FF43BBE3DE5FE94130B085992A0EC322112CEADDD60DA3A075A05 +F2BFE8BF9CE3B4EBC993D6CDFE3B8EB75065286397FF14640C6AB106ABEB773F +63831475D31E7BA92108CA7DC3E5A2859B20779044AF8D99296CD1BE362540A8 +FA6F0CD74BADDEFB530B5F294019BE157CA6968BDB97C00532DB86739389352F +C9D6F02E201D0307A5BB72C321B336DB5250CBB1042BAD9462C337471FAAA6A8 +C75ACD9F3829A1FC8042AA6A0E4640DBDA17DC17BC28174CD7DC6F714657AB24 +E8A364AD9EF93AAEC79F6C88FD11363CEAFACFEAFD29CE426F9016DD0D3FFCE4 +6787EF6C73B6DAD0E0AACF3B4C7B3FAA21E6ABCE10A6C77EF9DDEBA18B86189A +FDACB87D89C7DE5B6F007D2D886CB91CCD814A74054076ED61779957F878A707 +8F23FE16CCF1F3D4F03DA5188DB3C86BE4B0854C6B43CFE107F02A1C4FC6E211 +3698D6E345292701FA78EEDE4EC1A7FCB2519FBB2B7793C35FC597A24C398F8F +7778F6AFB0691A987F65E23912F5B7A56C0D58859EB49313BFB5237B7534FB7E +32EDE24078C8D01D6B2763FE80E2091B2D5370B7B993DA081DC875F9E3ADBBA6 +3A7CDAABB144133AC8D20F57EA85F58D1B7E72E773B24176C9184F8DAFF97ACB +D53BEC72B33670F2ACCA99724FC57DD1037C6C00DE7BCF6DBD32C2800D15C1FA +FEB6F051EF41ADA2F3F797D883FC87418DFC9DF3AEB72FEA8A4DE63DE27550A6 +759D7844CB8871CC776EEFCF2CE05493847880E395CB4F64FBA2A1D3B145718A +88BABD797A6154EEBA8AEC4D18FA06419D43D12E0B439E560E6DC28FA5E3E5D5 +E154937668F60AEF7F1E0BC67F303DC07FC8D62B62E8A423173D97119C98FD1D +3422E9C6092E964B5BB9DF70E9E4E278EE880D1F0CCA7F099DA7D5687182CF50 +F6C71C1F5FE888E504929E28F5FE875E86826ACE3E12340D6D9567586B290745 +9F4B8F1920EB0B6ADF80FE64A68CC6A5E45D6216D85DAB27885183D8BEFB8AB3 +34698392036C6D4FC06E57BCEA8B7C356131CC2B0EEEDC622E31A0B0D6450853 +BB473C3D4EC72A07B4F1DD4E042B673C33FCA0604E225B5B7AE9CD3117B29102 +A4EF91089B21D067CDD216DCA396EB26D3A93354B1EF9480ADFBF47302944B8E +689BF2A5577E685DD676900267F27D1F0D909E028A8230F1E78D0A5CEB315613 +7BCCE783AEC76A00528495C39288912795CA29E310F14D0254EAF189EC9F6B50 +DD11C600E830E8089FF6E8551D922108ED658D7532924122B25779F6249574DA +23335811A89F3F1BE93397BCBE567DA3FB55EC17EBF96D17351F2E91949BF461 +81BED82C96F3A8D3218A5ADC7636D91F8BE8815E2D87747CEDD0E2318114794C +5F9EDC14F93A499036AB8F86D87D8BF69CDA7D7FAF4D7DD01B15D0A65C97635A +B519714DC29C3E36FFDB7E29FB09BF477E32BE84816DC51182375E90AB1DBC36 +5E4D719259BDBD2A2E9DCB025613E537958ACB83B7A86D23B70CB104EF925650 +F5DA43B2A18812F4EBA0AB8DB6351BF489CF0A32511D4A1879437E3C226A101E +1F33FD0F1A5657B51B636BF520BE37193F2BA020B3DFF82D46462F98CB967589 +90DA46A5B65F52B78DA019EC900FE6CC2CB727B8B6F3B6640D49F4CE63A52624 +A2ED29D4C4A28C7B1D7470092EDF41101E6B628E18DD125773E7AE9426A3A529 +FBDD996A2DA46A21D720F2F49FBF611DBE110D2678D585115EDD9D5D5C22E4F9 +7F0E675E3023C23EFAC7D025DBF6D767A9012AED3418B583A55D565B5989A17E +D45885D63D8CFBFB16FBEDE6EDC39D706D2246483E21D63B6E43E1878F89853C +09C710D4F20F075E550DEDC0FC1B728E459206168BE1021125DCCABB86087F2D +E6F897157BB0FB6824B33C511CEB1DBE4BDEF507614B28AF0A59B028CCAA91FE +A4EE8A00821BD66A3678A4EB6C09A17BF57483FDD188645E6EAA31621CD5260E +54AC3512EEB1A57C4DA652E89C3792689724B632441BD194B68D9AF88E29C7BA +77F888E53B981F6AE9F5515E6D8A968619514F62BD91BD6807E02CFCCA694DC7 +CA9316809A62AE5174775235DCF9BEFB00592F1FF418499B3FECC4E42F652103 +36C015C0747BCAC97E12C8BD01C4E9D9D4889DB534E0B2B745E35D08691803F1 +F622D4DAC08C124C2C8F4A111166C0481C293E7DD2619A3E5307AE41EA7E04C0 +F55A7EB42F83BC3BFA8E8118AA580FF426C75B52EA68D34AC1A2F3FDF20CF272 +CB7A2E6246DCB25F3F870E7440A2520B5EAF59B61EC9FEDE3F2F2A79AB4F3DA8 +D3E9B9B99513FFC2C1B9555EEF08BC5570B6C1A046795C4CEAB187105607AB6E +A7623709DDE1E087F071105B611CDD52912F3D10EAA9A4BFB5B77E75FE6F2BF0 +458D283935100D526A913FE631A7C7E54F1CE6097795517E83CC396807ACF701 +5E2AF3C11A75F66D27DC1E84820428B9FAE88EAA0CF06C0F46A2518094058431 +1546612C37B6AD9F91449FB32BE62AB65C32F898D5F9FD416ADC59EA35E306BA +11635BBB6361D5378232B80D18BF45B5BE8C6F51F4A2DF04DBF511A468F1BF64 +F1A2EAD1FBD42EDFB9B35C8E53829E6D39256B54FFED92CE58F1F9695B073C27 +A51CD4EC20481BB25C6CA4081CEDEEE63FE726B8EC951A41FABFF83A7F1C70DE +FAFB8D10522CFA6C33DA23CC1ED63C1CC25003120BB9F3153553EBE6A2870BA9 +C8FBB4CD3A6ED75C1D24E60A2553E618FF546128BACDE6DC59A64B812DEAC61B +7606A35FB6F06EEC7FDDECB36AF0ADEE58F41316346D863CFD8E114F44FB9EED +950D41B8B1D9C9FE6321228CF171B560B8B129F80EA04A82B731C34AE9DC269A +EC08729BBB2824C1451EEFC851AFB32A5485A035E61015488EBE3A5354FF7951 +BF7F795196542F152AA344065C644AB515D95F1DC5471674E5EB3BFCAEBEB97C +F4D017377E3A136C63EADBAF7D4729FE78A82ABFDC02AB7DD4A49B269AEDE26D +5D04A0593A19E626595875789BC83535DD71C6829FF46F59BB1384DC2E6371DF +3E014F3C26AB00AA55B4CE9B93A645D4990CB2B32B9DD6E2C60D3FD6CD3D48CC +C662D724F7933A1C544B9C5F16C37FA27D3E028517A687FF469B5376A8EC5C9F +6156528B841DE6E4357CD98F9CF0363000573026FD561E1E7EB6BD2164C7A1CC +3032E4386A942085F76284F63F02B9FDC1B6B67463B36DF7FB39A7855B791D1C +4CC9A3A2B130711E646097D65D9F3980E432766C422B5470F1A281D167A5BA2C +3C15F6AED61CD52A7A12167DE46343604A2C24524AB64B360AFDC5DFD58DE801 +408055D36D4B314A80A66DD7BE1116EA32BB3C646A2EB3BA9E4ADEB587312C09 +44292F8F328F542E479BBF54177F19A7BA75562F5D36E7F9641535E9047E99AD +A579CF75788080388BC3CA8D2789A86A7F9FBDE90E8D9119DDCD2601FC8944C5 +855E13075943D2FCF133CE3EA0239624D8678DDFF50F1CA43F4595588906B39D +F0F8E92B891FAD86830D1127CA2EB3E81615A138B1F06BD4B59FC4DACE4ECD84 +ED9D41199B1309CBD5D498C18ADFCEF1F24B85304F54925DE840B4474E27AE9D +B4AC1959FEA2110989D7128076138353B81C08F99F19CAAE0B2ABA49609C95B9 +977E3A62B9DF6F39D245EBFD902B245EFA2CC601864F399D4748C1192B0FCBB6 +9A2BDC9FEE5D20F4E8415EDFE4800D86725417CEF973CC1D242A501B1BBFAC3F +E66CDA3FCFFE4474DF22648F56EA12FF1F5DF4F84430F2F5A787DE997CE19D36 +081B69E41897AF30965733C4064D8B664046940A735F7E0BCDC0F1758078BF65 +5B0562B7CBC32511D668E8B270F61DE04C9E99D7B2B6670A048E973E53096782 +9B3566BF079BDBA6C9E83ACA1165738C929000F8C2A849D1BA054D2895149FBC +463679A22F07B6E8E1F5E38E2A8418384853B4B7F685733716F42D49935073D8 +6FDE1AE59F5A0A26EBAB5607DA830C585CC1E8397872ED1E0FF20A7F526FFA42 +2193C1316CB7798708FDCD9E25138064E46C4EB3362970F7C8A6449F1C557E69 +F42F18E817359EC26FD7590199FB158B07DAAC0DFF4D6A55B5AFA1C3707F81D0 +BA0651B21F633DB33DF01FD605545BC99BC0CE3C2C846F47DDF7A259E0754BBE +8BC9FDBEC590EB756997F26C1556CA2249FBC9E56868A62B2D35462D110EE04B +8AAB34FE27F5F3A495FD1ECD64E0FD0679EBE6604F8E00670B60A229A29D9407 +B3554892E8239F92DE2647FD08B39FF2662369BD5CF140562AA3AA093F5143F4 +E234A7D47DB543ABD141B026792056178716D13A0CD10F830E008ADA04292E32 +E2324E1DBCBB84ED85D10ABE559BE9F13F343FE03052FD170A0CE2FD5F34A9AB +B81756931C612B54FFB7C48B8EFBF352E67A8A2CA6706E4EB29D402EE393F126 +1857F04A371B8BE53C392C58434E3250B40D0D58AAEE75B1500F7A02CE82C4C6 +4141DCD5474BE9E7ECC08F4724A6508B40890CCB768817174AD09B8CEBD087E7 +E26F3A57DCB97906E1C4AE759DEFB8E5B2CA22485735603DF495B087FF8E144B +F590AD3EA1E4162DDBF5A1D0E1C5B3989C995738A25BF8FB57ABBA26ABEAD61E +6F721C323236F71271AE347F880CF434F9D47FEFD2A56C190B26F3CA707933CD +98EF706460832D64B6B853DB3E53363FC62693FE340EBE8F03A38F4668525177 +B3F3F787B8476D86834FA113D4940F264922952353518FE7FA75593992BB7198 +5720CD02B9F0F9EE7E854D53B85807334FC9EFC84868BD70C437B55086E8EC8B +54C10D293C24C8FB674C65A36614A686D08EECE666928A10F29F26AF6E6B603C +0B230840D087C62CD2FA5377941C7D4C1A6A14840243C8DA1ED5E1FE7292D960 +B9D610F2C027418A23AA23F5C68A9EBBABB3D61CDDBB1D29EBCD13C0C591F2C2 +7230D296654674BF1B6547AE0E055DBCEBEBBBAAEA6203DE45C18B7DA973048E +DBEE43181ACD15D47341C8D173328A525BDD021509A8EEF2AE8AAF3B87B1634A +D3002E8F1BEEEF87F9754B58358B7615AB339565AC57D38A894C2896D235F5AE +C7BFA18C7FC1931C7FC6AAFCD9800AB858FAE8077F2C67E435D943355F9CB4B4 +E0BBB2665441CE3460EFD9A98F40CF83B7F46D35AF353EAA542CC2D5F3EF8BF3 +10D5A5422F4975082A24C769CACCF8A787B344491E3E4F6F79AED993627B44B8 +AB47398C0478B42E67E8799F33FC9278A545359002E94F19D01AC465BDEF5666 +2CCAD2C2BF89521C1664B08616B5F12FF470C14488E783C3A191547D6381252D +B48967E971CBE03C9BDA3387B36BA3612090F755F46FFAC5F91247BA7417F374 +2AEBFCD0C91057AF11DEDF31797AC1008A586429159B593124C8B71EC87C16EE +D7840A32481524A958DCC60D989A9E387BE96268611C1C54AA679B279A52F993 +32D188253ED0DAB9F7C98955E6118DCACA7CE701BB5D1CD5E70D0188C0CCE8A0 +142B83FC90A97FD06F2084234C078CB926A526B872DFDE42F5ED8508E453B12D +045277A3E76EBA27511B4CF0FF6FB3B4B41302DD5E2E25760E30B8BEAA3ACDEA +A2D701C039C111A83A46DCD201B947F52F25E1047AF10B5325561B8BAA0E7564 +DC31D8E8ED2A24847A146B824F2F7798E4461ADDB4C5E75DADE1C253DB22D4C9 +9AB28E31E5733B18E42B055A420D77BC98406E980BC92C77A3774555A1693011 +D0D22163A3D0042D2F8DB77722AFDB3403736F02F04DDE50CBDF379F434A8468 +A1E3BCCE78BE91C08004995477A27EDFCD93112678869F9EC08409B3CEBF9A8E +FC2F9B354A48713B4E2B9328F50C0090C82A06D04576A763849DE2479E5ACAAD +BE435CA9D4D06EAAD43B61B9CD7932CE46A69D6793D8FE7C245CA0CB4BE77059 +477C447F6FDE0013AC5E8C97D5131832ACA1B50E853E465AD8C50485E4291624 +1BF809A7397F05AD367EA3B7A971E14DD43DC9298BF52567ED56E189510DB574 +B5A6F70D7DF08890DC5D837B6A2D09BBB708F7A868A39EA54E733D0482FA9544 +7F807644F3FC336D78D22EAE12F48254753EFEA3B31F3090AFF572D7F3E77B5F +7ABCBA19D7D9C2EEE8ACA58C1E1770DD151E01EA0DFC7CCEB4141A00F85B5EE8 +18461F5A24D4E4B8B7F309F65E974C7F715C1CD466145F5A870F2F424CF33C13 +78E39A0430CB4BE748BD72E880031077F04EA32ABA3D359AAF79E225B41ECBC5 +A9C2944D5267D9FFC194C547D05D92A5E89E143E63481013B1B346260EC1EBAE +7BE17AA72035DF86B62F46E3849F42D43448BDD4F91DEB4C3F859B9D4E937CBD +C4D25170D2D80CAAB1CC0253731252CC051D729A6CD87D39C1EBF50C61D9A575 +4445F7F5E51607E97EAD6C933FF531967E6153181AB7D323E42C2CCC78803E2A +DBDB113309B5D75B045D3A5D180673D8917841CB9DC54EE19721A3AD436971C6 +DF9DD9FA78238D37179EC2E7B9BA528C485873F99D209AA53D38084B4BBFCB7E +C559FD3F939BEDF5BB9A75F11D2F853285E2626C0C6D79CCD2DF4486FDAD3A2F +898C348F4D3C6C29BAB02E9686C6DC99DCD203C94B4E8869BAB8083E62D7DBB6 +22173A97B3481C144B95134419188E297D2521223464418C83752328FD6C84FD +F910E26F8F20918AECCF86E937D69C708B4FBA5B94BB1F573274FD9EE6C2F26F +C657665EBE9ADA23BE2D4949F52FA4E30A3E9400B3226CE24C4D30807E262ECE +2D506BE02FDE8A0D4042F908324409E608F45FBF94E7ED12E99D56288A305A94 +7DE50958BBC47A2C7043F560F591B5AA209376AB2EB3E59C3C9A6748E429412E +1823CB5F64D80A93D96FE073F8507F07787499D1A439F2000604CBBD63DF31ED +4C6CD3915D933D0F98CA90FC983C29EDC92B7DF08334E9772A31683746DD4C9B +CF460446DC8541B503A3DD5EAB9E88107587A93092F201DEFE926F41E035F09B +CFA90B81E97D8AE484FDC96D5491574CC9884922176D121A3E274B94D239CD69 +6D545F87238BF05DAE40FBB7671BEB2AE967DACBAA528E66D57C5C8EC554B9E8 +972F83D668216F336A46C0FAC6F066E7776D199DF204E16D8E3E293882716BEC +B1DC6C9866404A2582D8A9D23F3081EDA0EF3731A8D94D8069D589EB4744B0EC +4866393C30F5A11AF6C0A3F48E7A5C1AAAB80CB6E20A84412802C2862AB121E2 +71F3C96A25C43C08DABAFA7C557DBEAF679AEBFB53B81D3A7E55710AF3860559 +45932079CC79BF6123FBD852D62C41B049A9A560226939F080E9EA5C72EBAD46 +EDD8390B57DCAC3B55A45C40CD0AD2D521C2BDF299899F52125F78B8477E6953 +DCA76BA5E2F7D0AB2A29CFB258573A3CF80998F3E6333CE19CEFB58C71D773E0 +C9C96C0C52DD189606B11A8128B97CA631271B28CC49D88070825BB5CD6D9CE2 +01BB269B0D0010845BE00197F7D0127A32602DDA051556B006DE0534B351F8DA +8728E60C223D8B759DEF450AF14078F4A393077A68D8B656F0ECC756D4D495E7 +AC0090A6C0D2C25B0C18D7144AF78C083374FAF761CDCD8E27044BD090A397CC +23025AF4C76C1507205EA91DC41FC1E660010AFD85F1DC2668317588E77F390C +6F2BE6E87E64F979C259EB35B9E06ACF5E86EB1EFA669BD9338DC1544221CC77 +7EF9430DE3E878E7D8686781443CC7A11F8DB43CC7EBD5743574E56DA0DAA6A8 +FC799ADCD91EBF7D279FAAE08D5683E0E2ADE9C2D1C9C1D35B354090D17BCF2D +9E16A48B1668F90634CA41EA3A5CA8D20ED0AC53022B3F1F3C9E17A02C00F379 +BBF61D1FF26823FF394BC9B669EC8A32D8C020D3C95AD058EBDE1B512FB8B6F5 +4645909503E6D8F0CA833C911766DE63D1E06A7D4DD37B6FB3EFF5AC003BB759 +5EF311D5B8930D775DB5C4F82E519A28488C93E011E22A468E268CF139412DE2 +11DB62A7748F9A643E4DFB264DD81A9509DF461FFF1D350396FE190DF9529224 +8C47FFCA391FCA5734666D533DC19E7F41BA0E3F7641681586FBAE859A50BF9F +EA343866CAB65326676EF5353273D42A4E8CFF92E11FD0FAF9E754547D2DC133 +1C5A676EF2B6647119CBF8A7FBCB965056D732D8EBCE0EE11D0D37B6625B27B4 +388D1DD60D642547BD6C5C6FAE9A72F4E68DA46757B662DE726985D46DA3215A +628B0128C0835685588239EF638D489FF9499DAC82F2144E361EB8FF5CCE80DF +5E1BA97782FA5E81821219387753CB8EAE7EFE65DEA82CFB784469ED32DF6E21 +D6D7E94392D8DAA5C62A88E0E7743A34F2C18BF01312B49C035E915E7A317B82 +B59504CFEBDF35DD368389D0C89A308843AB31595669E828463E26D5D6E78630 +8E455D9A6C3EB58E3F58056FA0A30CA961675B1E40AEEFC8F310314F49C513EF +ABF5101F59034D5318C1D9C70C3290434B65FD6D3148B8DAABA24F517EB3F070 +0DE19B389909B2DD5BB43BA3F6DDC2972B40A4DD13C7599C74AFC097175A05E5 +F2C307A59DC48A9C15354D57156ADA9009505A602D77C4E7AD4902D9B606B520 +52BB66B78FA21683FC98259E6A5A9E6027323FF2F879081C6465598E848D5031 +24DC83B7D18AD3BFAED378AED4F17C6CCBBD9EACE31B800E3174ABB020E32D48 +9CDDE69D160D630F790157BF4DA87B14151692DB846C1D96710AA7266A483346 +F7060060F10CE583F407B7430BCD1D5121FC9C270291F993538BC10D7A5F7868 +D7D434FE795AA707A63874ED9668F27F101A701BA9E43077A2EA1B7CD576CFA1 +B614BD1DA7EF3F9B0EA0AAB021B53BFC5D3C897DBFA7B6079EE99E66346B343F +140A350F1B9805485A30AB93486A217AC0CA663E654E533CC9197632A555AD60 +2B60047195877B3513FFB99E895F3EC3CD0BE0CF08901AFC3D79479C9DA36E85 +1D6DE801D3ED1C34256011B2035C52B73D98B8F12D707B876D25FB09EB5C1C02 +89856EFB3D8080F00922F338EC6FBE85CF57B160CF85B658881960A64CF065EC +B32D2BA2A1FE235C1AF87EAA4373F09AEC05A1C355F4C57E9259AC2BA4A8AD23 +2E0E3989DD45DFDCB54336D1F249650ECFB21433FA11A14A42141ABB516E3D85 +2887A97334AB91E4134576A74DA397826F6D4659F388F7B722C675BCA42C9338 +934F94B6321CB3885FFA7CD4C7A96E9D14E5A2A5DA68C5B5E11010EE38444B1F +30CEB6F0410EAB6EBBA097E482429763214E4DDE0DB2C004F735B032DB3045A6 +459DA48453CF6EDBC47CE46609AE01F9EC5433C85608B7D3E1E890E4A64CDA6C +BB94399EAC00F06908EC2870FCBA4044F93B016C91C28349EDB7C91C92236D4B +5347F2408F98D684BA1FC14C27809DA7DDAA414297DAEBFACDF70BDF412100C8 +A42C35797E48EFFBDEF5C2F593470234F75E3B0A4EFEFA74FEE6090B884DDD5E +EC0CA5F53E47917BE27CA2FA1054B232CE95A2CE2E8A70610FDEF00B38F03970 +3A00FC6C909CD0787D493EB5946352BB90F1C041899C334F7C155CD9B76DDBD1 +221FE505EA179D91727B44864AB6DC5E5F48DDD018BB4253600AC4D342CA65EC +D60A69959428025811042426F7059EC08EA28095BFF175B7A6ABA8BA52E88A32 +E42E18DB45D00C7A4FFB0BEDD837BF8049BA57DF31F1143DF780277D23C1E197 +3C59A001A97EAB93B4431906E598F0822AE35713D21645B43E13182EAC122EBD +2DFB477AA508D4184085BFC22D1FA6A8DF10D9A916E6179A2CCEBAEE35490CF6 +5BA6BE437D4D8EF01CAE05FB929861D2BEDF3E9B0053B776F4402CB9D063A71D +E0A1CA682AD69A5D9EA13C86997A779861EA71730FBEE1D9A4640983AF02B703 +CD7A85F0793C07EBB57FB9631A781EB54C8DA8ADB872D6A32DCBA78FB0AAF00C +D893FDD8E4981145CCD80A14DB6FBCBBBB03E7D23D492009B98B757F0044553E +BBEDD139EA52E664EF2A1D4531D16BBEA5EA29AB6491CBB85263B8BAB6D446F9 +F67AC3A247A29E4A0B081C8D811FE057667DB23F94441C74E11E7AAA6D9BA4C3 +854EDE23520C9C4548016DAFD3E791D599D94D6D61BB218BD00E232DA493015A +93751B5EE91F63F7B08E72EB6C15160BAFDCCD42D826AB7FD8A992555BBE5A44 +E6FD0C46DCD45FB959CCCF2EEFE037176FA202416441C59CF5A27D8354427AA1 +67C15E6F2E90B55B3C46B7B0F1410B17BCF452948252AD4C661864CB6CC39F03 +31AD003356A4C7C92BA73804C28B416C836D8D655790C53D3818E70C62C38D48 +6FA6C6CBA2ABE8AEDC125C8541B3B1FCCD73F4474560F5BE1A07A7D1A04D5ED9 +FFC20BE392021C08442619BAA93F499D6AE85D70F787BA03434DDC7B800D8146 +A14496AC947CD17252756D40F0465DD2D9161E344936C65A4CAF63B5C8EB9E34 +ABB1A6E2B6A76F7B91CC1AAA8903B86EF621F76E7606EAC8A8F0B63B704E102C +98C4185D33007D1B98246949B8BEEA380613E9B81D3E2FC3F894AA4F4C1DA876 +62E92D9FD8589A5C7A0E9D4D28733C08DFF7189A0232A8289FF537376AE13C08 +7D7E43CC83CE9DF0D6372A075AC8063CB89AF6EADAD6179F03F5D3898DCF51AD +0D8833EB69C68C0D6429CCA12C5E2D9182035B3F771A8D7A5FBFD40A44F12351 +E3F42D3A5BE0FB4D0AD2E899D289127D8EB4D8D4030784E884ECB9FE60B9DD9B +31F5190BF95FD48CC1CF0E50E61CA832589FB380F0AF14852C60EB4EBC0179F0 +455F3F48433DE6CFC41A89273B628219E57E88DF7AFDC72414AC323B89926A5A +0A06E29FBBF7EE9E3BE5562CE995096595EFE5F6CD7A2CACECBF2303753B8CB4 +3465F3922D3E963CDD093688F57330254883BF082BC72116ADE2D8E750992458 +47D8CE7A1529FF9983F6CD56A7575F0BB34AE438E6ECD37EE83D951A356B83C6 +AAE7234343325AE51BA0AA1E517669AA7B662C09A55AFF9910201E9B47C45B01 +DDB755242819FCB31941359CD47CB9B03A162C719DBBB92A4041B71B8D22B10C +597418225DF3DC20044D7A7FF360150AE91D9F6770BABE3D15B0AFB2151500BC +FFD6B5DA992A4B999A4E9C9460B76879998E2D4BEB467026B321E156B06716A1 +2C242A93F2239763CD4541C9C6AF7F2E1F956B9A484B254803C85B29D7543D20 +E40C07A636F07436935229401B071955A6C722387418F3D99E3389FD50ABCB5E +D61A9D0B26CCBD6DC47B8377C078DE3B0DB9462E0B1C8040B92E1994E44B5704 +425DD3348E5745B29A620FC3048456AAB6A24800CF394E13707B6FB778A0B4DB +1923DB961A83643CD1E70B5701C56564E061E2F46F9FA8C531BC01D01F937BB6 +2C4FB758B07E60B48338D26AA856702E68A92CA42AB1BFDDFB7953FDAF8133CD +AFCDC4D995020706DFB6CAF3E07EDC4AF9750E3253CB72C00FE6AF5765A61F39 +4ED724F4B0E4459B678F7E8CF774C7AB87AF78E38615F23ACC8EC71E0591B71F +254978D3DE271E2C182FDF190809E6551E7606C78492A7BA274DDB0CCAFA320F +89ADB50F35734028847A5A09473EEF19A11FF5597FE05A429A3C8DD312130032 +C4D64B5B02DDAF78A4C08C00BBDCAF6D72DBB7B636E4A9403E66A9AFD4FAE520 +A96367FE821B98B497AF9B86F31D90ACE82DCA3EB3A6636335EA4061E10E917E +BE2BDD1CAC5395B4679A7ED1E7319AB670CBA366DBCDC8FC5607A8DE17E59E44 +4E700E43F88C00B1EF4BAB74CEF90A9095C1B168F680E550CCFF2D480C070E27 +6D1347BEAD1A40A57CB502339C9827354732B1986FFDFEBF48160453A1F559BC +F6E83A71523A3BBE399DBC0B757082BE6CADBCAE340EE1331E4755D359AB9256 +32BF4E2B1E3BBB8EE25F2E0572807D082ED15829B0CCF054BCEC1378198AE033 +5802B209BB452DF331A8EC46FFF63358C7288B7C0F20D6FCF54398D7BCBB1493 +84217642755C6A8D56467866294B5D7E4B2E760A5075A7931F63DE69CCD47FBC +FD845CC09093DB75E3ED88CDBE9298089E6A1E663D934225B0023ABF54E95D10 +F614D3602CF4509215683F5B9773ED0F1EEA41E17454CF8503AF1BE23AA251DA +7874A62289A3983E6F95444B98A35BA3B8A45FE375FA58BCAEEF768EFEBD25AD +117A393B999B2B217C66EE4FF70F8A91B4153E771E19AFC195208215F9502DAD +945201A987E71FCC93B5B27976C77A53AB5F34CF1A6D2F2A4C8B3CC0941ECF70 +791BF425A729C9EA2C09C54FBBDAE3CBA84A89AC4BCF397EA1A028F5656DEFA8 +43FFF3553ED9D8FE19DB02DB297EAE11DC8D88C2EB0F1B89904537E99B360BD2 +0BE004711612CC9CE6F2BFEB4B8AC1DEE1079059BB5C5D6D5C19659988959053 +D1B4E9321AE28D8E7706929157078BE75D1234A03DDEFB8E636A6187703BCC63 +FF7FCC512EDC737EBE5AEED7D6080F061DF3E11664F736C22D88BBE00C61FCE7 +BCBC47AD3C84146019EE40FC356F70B68E05669879AEC46F561E891847EA5E80 +16562374B1565FCF6DBF4DEF8FF6A6D5D67B09FD32487B6BC502F3EC1533CB39 +A9BE9D7BD861C1272D48AB737B1A3B424894410A48C810447252ECBA3F738EAD +C29AFA3B3E2C150AFD5D5BA383EE691119F0B04C16FA47E1A15C0D6694FECD90 +3E3D710D92D8F623D19D6F13F87DF43986A4A3ABFF6952EDC7793A94933AC704 +AD4ED8729263AB7450219B0BF0A83B7FCA0E16DB6A9C249BD77E49EFF7EF1603 +4D9E34ACC2990C7F4DDB992B2101828CEA1116945990B0AB6750D72A1EF77409 +04930C8D7381295F022B1835EADB9886F5ACEC4E032303139719FB0B65E8DB0B +BCF2D520F59F3AA73EE4ABC2B26B0F0C911A88E9FA7691DC71D3ED030BE70CC9 +556B9D0D0F630A53008B29C8ACB54341178302F82D52358FC75943445AD091C3 +CB5893B1482357017AA5A68785AC8EE74DE29816B1BA3ACD8C715411256A34D3 +AF0F727E32EDAC4EB9B929EC85DA20566902F0EDBE49DBDD2D6DF571EE858268 +E76959766C9F890F86FF7249BCB77E0AB1762E4C41DEDC2692A8073992FF5FF7 +7D8FE0EB091A682A00A2D1F3E2C1478337ACD4AA713A0F9381DC407175A09FAA +830C3B7BAF6B9FA80B65C43349C3083704B67E445BD2F352B055A0ECDB6EC24F +70FACB80CBD977ABCA4500126F669B117455573E0B7B2876613CA5A8CFB9023F +482DD6A956F5C39236674BC75B59A713CEA196D7EE20897C89848DA95F5477CA +7B58559AC776CBD692D7752C1926FFBB82672464B26AACF44F3AC1A9E311FC60 +7C2342334EC63F9E082826600AA2789B974541766D3052AFA1AA42560EA78666 +3C82EDCC89B3BF8F9AEA3E0ACF605258A7D29FB862487FAF82C4624BEA65DEC7 +CD829E1C41D8769E07B6CCAB1ABF40FA83ECA22A5E8E3ECC88CD3079561AA3D7 +F56CAA4CC0C4BE4AAA3CEC37C5752A23CC5AD3684883D1970CEF660084A17E3D +EC6FDAE4815BA9F11CC1705A7F9963DD4BD0238B8C4BE251FD0B208A6672C465 +12DAFE3233FADF4561FA10FFA9A3996CF1EC24EA5F6EFA9CA0830B631247BAEF +1011C5F51850A1F05B7E0762B15A5EA06DA454569F30084FAD88A2A0B5D8D4A9 +2D81C477D6E73799848B6A009E52A51CD9489D571FA534D5BF163F338EB81195 +10000C2F8466F1B211CCB6BFAD21BD7E8411CFE75B7200EEF00CDD7EBEFF4A8F +1DDEEE82DF38693C9FEDBB1D0981E57B49B4EE8D1505ACAD76BCF07E46560F56 +A672F5C4F615521D851946EA0086F13A550BA75A7D42E032910DD366138D58A8 +2716B1BB741A539BB4F2211885E321470C26EBA3156DF3B2135BAF9337718E38 +8A5B516645B1EACEC6E71701DBB86940122975371B8C60D578A3686BBF6B3FD7 +A4FBAAD3E11A6C8A2B7985C9DFA85C082E656C708FF52752A82C012D7A19EEB9 +FB4D90A6BEA4E75B898D4408DFB91085163593C4082EF66A4644FFF02DE50E6A +0572D75884312C043840C7163D7694E45113B324B5C317B0AE18F2D3D361F4B1 +9DC531DBF5A21F286776E9D39A81E49B93622879450537902F71257FDA210C0C +44FF7C2706E38C88D6DF57EFCD3F62844D72ACC7C0584C4BFF6B60DB256AEF5A +73FFA790805D1018D173DA5C75FE525D4F01F40B6B382FEAC93772718AD2C69D +186CE9153A28A246243D9CD121911557C38B73C6CD3724E9481409B572F0F347 +413AE0FB9150D55679DE7DF297B238CB8DB93DA772F248100528EC959B80534D +23619F594217262B1220C9E7C1141605718A8E589F967C810E2B9ED6436040A0 +9E204EBC6397C6EEC571BCA43788624296A4179DB3D4976EC6D27B14EEF92349 +6EAD3716721F52EDBA5517EA740322327A62F96D0B9D4D715D64B4794384B410 +2BA9F8F442D1BE31B5C48761E44EB339F061EC3213D4EF1EC6D8F294C5B222C0 +02911E1D61B7D2663255BE13FCEAAD6E665829E79CA81DFD5627E22BE4B91D8C +839BFB35C7ACD48BBDFFC61A4811A4875061855934E445B60C9B5A965C636778 +888B0E87E60BC83018E4BC16F08EE8891BD3C56B8F7EB4C1B6A6BD11D79FF638 +9EFD2243A9E7CE1D2A492868EB148AD8D3CA2B939FF3CC36557464E71E64BE13 +133946D7BC1DED761EF1EDF4D8524650B9A02319DB72BF0B5321B7D9BF8C357F +0D8D66A54EE088E9C270FEEAFD68735B046E4CEE851A2D03C97AB895A6AE96B0 +1A29DA9A4C96698F319D8BD1D5087F36D5112AD45A9F059D291C5507563933D8 +5FF87C7DEE8FEDE23D505ED6F0A14383E2BFC7A2B020A8598453B16D2DD38D5D +A8BB4F0D5A4523E5FF4FCFB19DBBEB5B1E2AF5EE260AC450FDC82A6A92E61707 +2237B50DD36599D476225CBA112763A8A5DD3B1919A91A79B9F324BD30B990EC +A32C3828BC991F8F43CE31FC202A2690DABCB64F814CCE11309752251E7EE559 +80D162949E7E578498C0338C6EEF3546B5F938D08699711D635ADD67B81C2230 +FFF3B1C0FDCAC4FF5A625E9D56B0BC229E605681E46F18737C599F914DB1FA42 +C6FACD77380689C14646E71F2C5A6DC68B119262D433326B181CADE47B2D7DB9 +214740E622F3A06383234F46C28586121C64B10A5B1ACB8ED7AFCF5E0E653FBC +D3C5598CC6D21FF5C6BD24C114BCDCA63F8485BB592356115B32998E4DEFCEFA +D63CD51CB54A69FE5690999F41FA2106A76A27C194FB44568FC7268D1D40FFD4 +24E553F660C83FD34271347E987897650C93DF64EA0F9D41AD68A40908E42729 +E008565141930C48395703F5FB61A99D2B087C065744126AF226CA5EC2659BAE +AB0A9F3EEBF46796547B29CED71BE3EF5FDD8AC6594F482E5E01C1A4EA33F401 +0CFCA0798A5686A379E8603CA1AD7034764157987DA0901DEFC5AAA57E97329C +7F297A594169E6A3598C75AA98DF3FEC78AD50D50568DA02DBFDAD9695DFFF4A +4F88A68F986F657E2C5B7290ABDDBDDE38C80E98D7A97654662C9F19190E1444 +0E7ECBDF22F295E5A09E988979D581313C9B8CC19D96723FB0BAD1657D50FFFE +DA1CDFDF513E88D869598E6B396158BF9A35F49BC1810EC7CC6AD1C2374D66DD +061112B679739E3840DBCA3865E2AE5600C8DBEED513F4BCDB0B284E655A2DC1 +6A6E53F78760A4FA927C16B4771DC7084308640A43E87E6B4AFC7578E20848B2 +8F77803EFB46E7E7798DF886E113A37B7C1223EFEC68CF74DD5038CFC927E41F +82452EB90C565065B9B182920DA7F2FDC0CF13E00A9604B5BD1C51A3F2D938AB +1415CF0981B8A1ECBBFE6067358E5A480866728CCE529B799262E165CDB9A0D6 +97BAA5D4934879D6CFA9B881CB0569B38DADFA5AC8C3A3146E68B8D250CACD6E +E1BF0BFDCDCE70485D603ABED0151F454DCE7FFF60C72B532C42B2D1B7C70F35 +1848AC903E659691DF5D05A1FC3F8DC8269A2ACA77E1DC53C22F875FC62BC325 +AE4E9042CD3B9F3C231B8BDA0D4F37C7A84A8C79A48F3D926F5A4B1685B0BBE8 +93D2231A97FC39EEA3277BC29EEBA0CDAC4B77938051A9DAE8832CE9269807E7 +9017D8DF9DF20A500562B6E972F82B99B7081B21E6D444D2A50763D0DCCCEBF5 +D018D9E7561F50F7A20FD012F33363E821FE54E387A194034B5674F376EC373B +A22F533904D6B1B3539F1BC6737B49112866320385714601584D8E69C4042B67 +71BB7F3DEC4FB857B25A2CAB22746CA62C762CC64B341A435439564895335D26 +D3F2E02948F17BA8533C75D628A46F7B88D33ED5CCB75E54BB9147DB9E567E2B +29E73361C786B38F1DE733E52DF6997641D52C70786E4524C049194EE1DB9A6A +2D49CFE5C4A47998E043DF5ECE933482EF1CC57B21FA44A84F02F194A4D7284B +AC4D4DAE7E51D869D41DB4E35F95136E16149413FD1D3703553F601ABCAED979 +602F094A08297C2AB3F2A31E80985C819FACDAFA757DA43C9BDC811F2A425631 +D288E459CF99F6EF06B16724C0FEC9F2437FDBC7B9C85D55B418C6B8FFE40961 +57D94FEF03B5031B566D1FE3FB0C3CB87A873AAA83A7171B657B8997F834B17C +197F2083E048E1AD59C265C4CAA03BDD0535F8FE7D2B427F447BFAAEC0BD0D6A +4E4B208966DC35AA64E3421829069560D287D04DCE2463F7EC261A6F4E11F2A6 +809F98E311E174BB528EC1E6EA4A00C22DD62F6B3419DA8AE72615EE06C98ACC +5E3E4761B20252EA0AD0DA374306E234B808D13750FD60D4422F66E4720C57A9 +FC981D2FD198C2F51F1E7DEEB22E9E0427B57AC7A12031F1C5B5EC9A026FC2C7 +CB4F7D30B6C3FC5E1B19F55044A44C2BE1E9B622E8934C6B90222979861F1A89 +BE1F41D1E68910404F0E53851B8955C1BD99F92AF952E736E2FEF0AF768B9A2F +BDAC44D8167A705B9B91F17796BEBF45666F32714D158899CBB6818134829B35 +27EEA46B37916844A4ED6EA1DB6C3DAF66FEF84BC095C904BDA9CE9388E09D40 +80D8723585600F9C024996C01857F44F4C2F10EB24C5E4C99C1FB6BE46174FEB +0DA222EAED2D4CF261BE9EB24EE0EF1782E075A0ADD653F5E05BFF4C9E1D5A04 +5A821C376579B34D54BF28F55D967702C96A6C5A552D55C614B4B1689F7DDC97 +A940063425E330B9F154AB0ABC96641CA8B494509F72D6B9C3378DFBD88E2961 +C67751A36C59E77D930F1939D6B5861176423B69866E4389B9FD6EECF71887B4 +57DF13F2F86B5CE3F56665E376539E9F1B92256185A61E30A29393B95AE3404C +E1979DD13CAF1EA6B654E378EDB6A471CD09182F578D593ACD9FBA780682FD72 +D0B45CC90DCAB0D5CAED2EE39FAA5DA935820CF6DE4E77518C14859B3DB3A611 +AF2ADD391ADAB116D038872613C586E58A2E7CE0C387283E9E301FB7F61EAFC2 +2315EF6AE4BB9199B5B30A6ECC7BE93B393BDA0D565CB3B9CF2923F4C6D3626F +CEC8A7CE3441FCA79BB25987EEC36B78B6F18F87CB9C167EEF297866C7524EAA +CC8E5732D9E9D2D43792BE3EA5B7328AF20BAAA203F731B5CE600DF471C426B5 +88388F81F5F0BA6EBE6E4BE25C0862B6410507C6F44649521C831E794BF5084A +F11B3FFB2FC371B22589C174699892A622EBF13A62A5D21F95A11E28921CB346 +2A1A01E5D870664D158C97F177009385C76197231AB4D0E1C90FBC0C5AF9991B +689BF14CFA6C64E7B1258F4EEA28B543E2CA4E62F2D0A3FD773ECA +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFTT1000 +%!FontType1-1.0: SFTT1000 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich <vvv@vsu.ru>. +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ectt1000, tctt1000, latt1000, lbtt1000, lctt1000, rxtt1000. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Typewriter) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch true def +/Weight (Medium) def +end readonly def +/FontName /SFTT1000 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-208 -360 1374 838}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6B55C6E47AD7A9A958A6E22E00FDD4D6492D53ADDC90ECD778346C06747 +57609FE8907DFFFED75E2CF963A64C7F72488F4A02372BE681E9BBF09A9CE5A9 +3894F6358C244FCD46C148F1EB60DE2137E6D3079D6AE03B3724F7D7BBA47BC4 +41C27FFFDFF9FB7B7738A8D88C27573A53E244723E07C995948DED2516B6044E +ADED62C496A56BC14483D307884467ADE985655A4712DD06ED00811F9A05BF9F +BF2AC66203817289FFB5BDCD0445293981AF6F55928C132E885ED009DE1B5FB0 +C230370EB5156A8B609E466F00F768F0A52ABCFBFCE3514C0FDDE31E601AD508 +2666AD26D9DB386B9FEC80AC197C9FE7447928C0C6A2858375F0A1D7AD3BE53C +9A926DDFBAC60D846783AA97CB86F804701BF53F7C4D18B925FD604F60231215 +EBDF4FAD73F2D13518E1901C3DA00ACE65647765106EFCA89D1F7797042A1CE8 +F39E2475DC2936BFA24A71D879CF46FE753E2C63BEAFDC65589FD17B18155220 +1044C366077F0DEDA5BFC03931758CAD2A066BF49A7C1889BB0582A174CE59A2 +59693720FDAA7CA1BB8015F9BD51B468C01600BEA3AAB225F4B800EC1614FF01 +B5B9AA6122750A57EF7694D92C4128F15BC6AA1BFFF59BD99696A942A03329A4 +DA4A4BB6688CF1633E3631EFCC8BBC4E1E846D5B831E795053288965201B6D62 +C485D993C7676717C6F652970F8C71AA5948C43E2613965EA9CB1FDBEF39EA12 +9804EF497008E1665E769A11316D98C991D65B35E667629F1A83377B4440FEFA +2316C3143FAD6F4EFC2480E093CBBB3B0D57290ACBC802CE585B70BC89FD0400 +AB0D76CA8CE7E9E4B042C6F15C00A965B4CF8C986FC975B41877FD2F7B8991BE +92E4F228FCBF7E51CD29ED70C5236A59B5098A689930DEE73D114EC6414B19A8 +C51FCBA6005E793F7EF33A6AC89F8075C30DEC81BAB27F3973CF898C308445F2 +27C37CC99307E7D2EDDFB0073070337FB681F73F2E43061F1D2236B326103D10 +CE9957519DC15C5E6123AEB1AD8C87F74965E2326DC9E018F96DB9F031C527F1 +427DC1009F3020BBC82F52A7957E4674F4EA2232D4114834A511BD053DA38ED4 +9C619CBBD8B273A2A1D12D74B161A800FDF0B0B1A8C29D9CB9E207BE22F6378E +5764E59B1AF384D8654E21B4798087F2B70245683C7598991B7971AD959C8114 +374B2C5C17E2AB9130B642421543DC77566E0658A3230D2443A28CFE4BF80988 +B578C71908F2165D39E588AD8CD668493FCB46571A5E2DC20AB95C1E01F539C7 +495DCC3506D9665B38656B1C6735F2E4903C3D9A5CAE8580EEE684E5FC47B8C0 +72DCA309FC8C5B8AFFB5C5C8813CB052EFF2E73C4A53C193B3888D7F0A43DF8A +49D4EFBD56A6A7AFB5DB2C47C7A6B6CB3DB7D048B7EACBE1CA0F60F794E41D60 +CF5131DCE442BCA4E670B93B4B89397E91919EF8DF9A36F60320139D158B9CA2 +F8E93C1F0AE8CF59D623D090FCCF6D6AD66E47C4C503F5AD782ED4BA8FD6B959 +D5E5DCF2E781553AC903944A0D64CB893874114823A05F2A2F38A719C2373607 +49358DBC1FD1CFA6CC0B73C6CE231015DFDAF48360371D61B0D523C06678F931 +61CC97D03C016DAF742B7C96ABE807EC5FD9DDDB48BEF35922CB4CF649C3503F +09911C57F704575A2E3547481E6F365643205C90D1B145B394BAB0B56007BF7C +C7638FECA128568AF90469201E64134B6D968A2F1E38D20B0C9A9C9873D4D6C5 +56CE0B113B53DBA617C3277F59A41F129ADA297929914BA65AA45D2F0BFC9BCB +F13C49870D17368E6E655B321D70FBC7D0F1E12D309A24544D560CB3BCDCC053 +D86F455F45E4C4476C08318B70D386CEF4E20CE7CB4722090265C89C158A1BA9 +348730A9DAE214BDA6CA97DEC6FE4167A888FA70DEE5B1CE56815D212539DF21 +21531966A4FD7DDA9498F6710A4716E17C3829CE4FD4877180A3B8D2A1DEAB5F +005E49E79FB981B5CDAC4E05D5B7B7BD979DC57863EB039C8D9885DAF4095A1A +876A054D85D2C32FB58A5E3A0F8F21766DC58E46B447335B6ABC0C952107129C +6D2F7025AC3F86B32F0383A87B3D74498463B350075D682B7FD7B008602477E0 +E17679FFFF591DDB337A4C5CA16CA40041B87E1F0CB447DB5D69790A3CAD5161 +715BBE6577DA7B5642F97B047EF82E199099F4E035A443EB52D755CE80CFD3D5 +180D223C92CC05887A552AF39A3226A85688257A0ACAEE74CA2C60C50747A04C +E8B24764D050C43A37597B2A807669B37EADF65179AACF71809E2FE040F0603A +5125CC8749B0792422AE7DD3DE695AE830FEC7280100B7438A5DB747E46FEE92 +CF64E7E6A79BDF0F17F399854B5ADBCAE31AB4DDF4392C2D008D745D290CA44A +26EB148E00C2331B456E30F9B29425C2E6BBCE3B73DA666D16385BA6A4CF2F31 +031957018202E91FF38129A1DC67101691BA63C29C3A6225C428A72EBBBF5EDA +19D83869EFEE31289EC203D44D54EA89132B185D5F5010E54AF1B227F9FEE4E2 +953342626EF81DDA0F01CD4E367FB5BD58074443951308885DAAEB9A473ED328 +A9E1117E316216150FDA64CD94A8CB8582B36A070B070BE6573C82584E261A1C +4F6EAAB676E720F06A40B386A9E6968BF6DAA0E1A671EF99B1D587C464B806EC +E1DEEF5C791A36E49878E16F092EFF96B6BF4E1AEF672B7DCAFB475E1810CDC9 +ABB2E9415DC4E6071978BA7B86885799F51B86475F3CC24B135F82BA9F5DA055 +0808AE2CFDC476B635511344BCF63E09DAACD30A86AA97CAB22BE70E0BAF94BC +2D4F757FD2D92405876E5B62CD35B5F1224243A9295C84B5D2CFC66EDADA202E +F23086E3B533ABF7C79160207D979A968B940908D65F1D6FA995ABDB0DDB8D98 +B31DD25B1C97585581FE1ABDBA264899FD8BB1A26E4C283F7565A75FE0D8F0DD +3FC02D26B2766E577C4251D4853ABB17909E57392327DB9D09E35E4620D18B26 +A7B3C39D282B768E6D52D4E391FF23ABB06ECB9CF4F2318C5845C333FF05B9C0 +90DA827BF8D40B4D1A2C270E9F7012B8711E6F7285D5241ABF47EC404A81B6A9 +BB2D9C19FB99A2F6349C73D488961C0D203C995E7B4F9D76DC7093A2EDAD2B14 +6B0362656BF728154AB6B5C1F425673B34CA0E705F28A1EDE4273BFF14BB7E08 +D5D985DDAE01532CB7951416B89E3A4527472AA97B87775188ED740BB8936DE1 +867D7C5CFDF28F8A46CB87DED2564B9B7B6500ADBDD6ECA0DBDA155FA928DD54 +11849D2D1EBE4E3590D1D0C006DBED988E33B7D90D3BC021B9530B25897B461F +6F73384EEDA74A8F94FA5D65CBBF949F0B461AB7FFB7086E252C67924FBD9AA7 +D152C36BFEF08A6FCBE03A77CA2A9B790591C1B6BCE260A08980D4FF46FA16E5 +64810BDB02559E8B90B384D0F3BAB44FB8CD1C47F94C807C9FA1BD662287328D +D1C4FB30ACFFC018F46AA386EB1C7EC5148AB2B9A2D1449253111FAA6D5196A4 +7C66A781B70228D645BB02F7E34FC5413DF4043D7366CF3B738CF40765F3F0D5 +160260DD49DC31524A88C597DC8468A0097594875138D6E4ABAB99D719EF3819 +CE3C02690267D3DB7A027E2E9AD10EB2377642839F5BF88B037C97CDED504D10 +47440838DF57CDB61132BA4E9789E83139B2250D1AF45D7B3EAF0A0CCF457DCB +C891C937B5A8590223348E583B708ACA629AC90E5DDCE728DB55A59A2CD189DA +04381B8A89CCFFBFA86407A133C0550FC35102731CAF9E2E219188350856B1FF +333F0267B6CB8CA666215006C9511786D8A31D1748622483A20A40492CC4A8FB +539ADEAB500B13EFDD792DF12A7CC63B5B75FBE2AF8F77EF4A390FB6028AD884 +FC8A25BDF7A4AA59AAEDB2F3419C17C0C2BACDA129495A0DCBA462D58B23F405 +598AD9898017A55E9DBF2F34EBB244773D048AE37A8C0E86B138CB0E2E5874A3 +F32D7D55815DE48432BBAB96BF9C394E36E4551F17BE8A34B9B8DED5E017FB32 +B5CB9FAB426C90CF016B6AB8429D0486EE22E7E48F1DEAABF717F9D092DF600E +465C91C83961232C5005066F234A334480837D71F84D7A0176EDBF89C7C51FE3 +7A8D9A77D29CA666C46C7A182347BD7837CA4B2868279FA9CDD72ACA8195737C +7D1AA33274C3012431411F730F8F7B9F42B371DA95ED6F871F7EF9D23EC7B1E5 +0DAE5204700DBBB0040E5D7EF576D995A6053D2F6D7B66DA87A1533DB0EDA641 +E24CBBB11341F56826B6E811AADFCC865B260D204D0F9E6863D0A5BE19FA101B +88EBFC9AEB25654D7609FD9BDCAD47C282AD725F2115E4FF0D00EFB74ACA8AA3 +1889A372F349A80E6AB44D714042BE5459B26B502AA27CC38AFF357AE6A53900 +2A6F111DC0E1EC2955C1741CCF689B9936DF4BFC4169E55F7124D503B3FC8CAB +5BC735A8AC6CC6CD84B69089EDD9D9E9D4E9E1DCB2C2AA2FD0D42E5D595ACC5B +377A693D547C54662D56705BD350DB066AD3906E061403C4ACB7D926033F767B +7CF04E1878DEB73398289AC51FA285DD573AD8351FF5A2DF77B600F65C43FB9A +1170F87A7B93755951DAB75CDE41C9AB87FF4A3C0642DE3CFDE50FF58784936E +CAE75AB6621737D0038CDBD5145F0FAD8F48D2617C371AD2430706B3533DCA6D +53423007F10788F4CA8EB2E70F6C7F85853C81AE62A672AB1CD3BE9F8CBA6147 +E6650683D3506ADFC6B93221B94ABF2240E2A71CC79A3AAB0BD12641091F0437 +0196094CE0D6A735884B0FF9C7ECFE22AEFB771050062D3A32D368C2080CB82D +852C8994B9C760480F19C7AB91209866A2DF316CBE4C5F66AADDD91F5566C6E4 +54A9293E6098E23F8754F16EEDB301F732B2B8E0A0BB9CE60BCF90AF2219C2C6 +709E93564A44AE56F46397C1A13B9B8230B750CD8DED6CEAB6E2FFAA5EB8B704 +68B9C883251C000F8CA08911AE9F92D5C55721D5A3D4251446381F0BE1593DCB +D61A0098CA8DC95DB7D76DAFD1ADFBB7A95E614F2B3F382C3E3D889FDC79CAE7 +859B778969438652EC9FAB39D7E7229BF60D804CAB12CDBBE899E6428AD036B1 +6894D56733F80BE71815EA32A4464964CA6BAB229830CA86F446D702836418AE +EB3BABBAB53F489F6F40A677701401FB744D3FDDD905D1B917821BC4A3BEEA81 +EB1E25B8B7A26FF50CEB02308F1017345781971846BBB054A5ED96A85D73655E +D39839A29A59176CAF28B281CF2D539CF52CC6B6D3A523B80543E5C5BC117BAD +EE7AF4F435A714897CA1F692BE45D405B31E18DF51010B078F87BF7A118A9E95 +B32BE62AB65C32F898D5F9FD416ADE303432D46C7142AA024752680446F888A0 +49219F805C5234B34324EB8230F9DE24876C85EE6C874F1FC02F482D3C35939A +D5402B9FF25F128794E8251BAC9DF7903F684121B4E94812780E1B31CBF68174 +7FD266CF682FD125D77501D606D116DD87E53498554C02271DBAB03D03C86F3B +D362C41DD7FCF07A1BE52F1EFCFD28E53796831C17BD9FA5BA906BCDE88AFEB1 +28AC8277D947D080B9EBE459C27A9DADE26221A016066AFD35F3CBE6616842EB +764AA3D6A504892ABBFDB04B5EC7D3C8E69068F30CD463BC757AFBDD141A36D3 +6D7C8A8421237F5E84C46AF675002AFCF312E015A27EBAA026FA7A544D921800 +29E624F2ABE0AECC6D391FEAE0DCC445A5C53D8CEF3E46E4EF8F8F3488250939 +7573EDAF90A4DF18ABBEC8F6ABDCB407C71CA45EC8D45A2424561A6F9D36FB76 +A714B5E2F6E508F5C083AAA8A2C57AEDCC25C2A6CE7BA7EBECC4F9C2A0F1A167 +444F363854E70D2298B815068C58BCA91885E74104A683274642E06644521D0E +86A38C600346B06752666973F4CD5635455BD6FF14D50CB1DCCD2E56FCD72D9C +67D2ECF30C6D99EE6740095586AD5E67668D5E10B5ACD3A1F34ACAE923D009D2 +A88D0C730E9F51B7608CE98C2071B8EB9B760218116F1200912C0DF585CCEA93 +7D81A4C56E85C49E1046B825E6E51EC5C12CD1DEBEE93BB42BFA61E16923C8B0 +E9551CB7B408BEAB7B01E971293BF6B237DF6F81CD1B17E8E2FAFA616D1ACE96 +8363BFA08C5031B8BF2B867551BE8C78234B6ABA804AA79FBAED815CD13DB9EB +7D8664EC6F3CF2D7A37A8811D9ECD9008017A8EE5071BBBD6D42C75C2E333816 +A1331E7AE419A1D07C3F4BAB14F678725C804C8038216792799A76206DA6F8A8 +C0D0A0B7D6995AB4BF80641C1F340A1BF768DD25A05DF2E27D18D2C6FCDDCB35 +3F1D40E461C4859F5172B69E1AAEA8D0BF251C0573F0379E1A96FAF6E8D4EA87 +7B0E32D0191E418D036889E73D8F4082594C8EDC306F8753B6B05165C6BE3F89 +48E5A8C892AC942C12CF6F8C2BCBFF1CE76B4B0966C53E3A3B0D9FEB53EFC640 +D25B5C822A214878CEB4141A00F85B5EE818461F5A24D207238CE13E25AE2C9F +9850AEEB66D566CEC7FB666E7897473CAB6683BB18DF86BE795E1FF383AEDF5B +51EAD818B276D7DF579A394FD748651F735A15A38A79C8D06FE44D96DA3F4F4A +64F68FE714749A197A4731EB63E0FF2CB3CB4C20D8AA9050F3077109A452E9EB +4351D7CE4C8466D99A6B5E6703526C18F4FFEBEA04314EF677B432A407FC3C3D +09B51301F8DB6945841A7D57E124AA20048FDB60F5B7127CD910EF599E7195F5 +FE5336A8247990B75EB602AC8551147686B1F50867CA015D3978B9CFC3BFA870 +214856B16DE4DF92802CA429A4734AAA7A8E15F91D25EB006A10EDE7446B6C20 +AFAD9B94D447A1614B3636B6A7E621ADFF237E9135E28F1173E4C47654CA1ED2 +4F41481153D90B7371BFB1C4BA3248B8E9F566478C522E1C2760B064559D0503 +C4BB3ADF55F4C8A7A026DD0A69B38E393AC2C8110004057BF9DF430C851718FD +95B5504D4932479E48E7E85BBD023FC3D28ABC1F7C21BB8ABA0C945A3B9C06B0 +18DBD0CF1B46BDF91F6A2A22889FCBD730B54966DAAC3652475F29A5573CDC99 +A23EA5FF4BFDB666C49BE08571244EC8AA811E5EF31ECD781013A2AB8EE4213C +F001F5A2E89A41C2FD72D65B625F9BE81E9A3D106138C21F43EC284C0804B778 +6C224A88A9F81F469362528A78C899C531EFCDD69AA98D0317E182A20B24E56D +BB752A5F90F941B274D98C9CAA11D4B1B44670D943FB3A4B59EDA1F766D0FB2B +3B58543B3403BE46503E917A73197FEC953C79F6D0E430ABCB066F69FBA05327 +0FEB8A24B15286EF3157EE25826AF5AEBD9210ABD04515CF1566AA299D28776A +7D9127CDBC812A7A1BD9FBC456DD79E7F189A29616E96407A2967E6607678AFF +EACACD957127800C14210A12F526494FDDE7F1256189BF1382EF65A786679CFB +5FA5F058FA48F6F257F934737F41CD6C5D5B514ADC7E3D38D7DFB95A85F95EB9 +E16E2938C709DA68B180A7F6D08F1E6042DBCDBEC93B08EA55A8208B15B3999B +814D50658FC41593B994E844FA61DA13E2944C3A15D1983D8FF658B4E4B6E016 +4DC17B9B2D7A5C0CE7004E47D28984E3BB231F9B2BE823CA8ABB3BD0B0B339C1 +FE3EC4C064E66A2311BC9693F3D0489C50D8D3FD070C486BF3EFD0C036465D67 +0AFD502DF4C1AB403583C928AC4173A43A7B825C2C67623B12EA02AA67EA7E1A +60A26CED51F1B2F763A6371F05029340A32BB6477A05334C624F5882B92407F0 +D29D11AD06F3BAFC13D97E54A8BA33619EF88EDD1276660C3F6D10188FFB7C69 +1A75C3064BA8187484FD925439D79DEFE0B301053F9CB8CCBF3D9CFF436C37B3 +B40C4C9DE82D2B856EB27BBC2DA4075F9AA787E3AAB686093BBF1F6D6439CD63 +51047A85CACB17666FAC752200BAA227236AF985E13DC26F9CCC64406DE5D90A +0EC78EFB6F9D6E3F13BB1F1F73DB96EF2F43B98AE9B8AAFECF0386C2C12BF63A +091BDA8DC38B9E9BAB4CFD0414C1E26279776ABE590F7F2360A7322CB68667C4 +C42DDC9F719976FD548D2F87DEA7AD54F0A56D5902AC1E56E86951DEDC46FE8A +9875FB3AA771E57926A5FF95672766EFA6F78D5F6FA9E78578EA2EF20252A869 +A5D05695FC1F275B90BB4D110BBAD769E72D8B6D636E17D9385659B9224A0888 +F4BD685A9864F05F1EAB073215AA33A0B045FF4BABA91AF4CB1A21CB0D12C410 +11E99E553FA98F494A4E80FF15912E762AA915F9D0CCDA9D6D0AAC8815FDD47A +9A7B5889ADA2C89FE6F77C8B07CF300D39DCE33DB22C072CBADCFB1E70FAEC4A +0BCCC84A00033A28AA9ABC971AFDB87660AEE00DC098B3CDFE5B5AA49F923426 +DCA91BEA8D1C85E1DC21B21E89E4A8B625984095150CDCEB505AFB2077F3B799 +75EAD0E03F21DD780AE10B38AA356AE01C55CABC65EEC6EB4A48EB5AD41941E7 +FFE2E16A653DC385E8FDDA1B9EC3D923F68C15C23762E5080D4B96BDF3B99FE5 +3DDE41092EFBFE768BEA738A0340BD56FB5C86C115432E7EC81538FA1F7518FE +BA8B1DE9F90256F708E878B47AE7DE9F0339DAC4F30270C0ED8D059CD6E1A55F +28866AEB5DB0AB4365A84355FC7A0AC358010C359883C9873391EE640A47BE5F +D984D7B9102FE3B76F5D283D9EB5AF30A3F9941F4529C475E5D473CCA759DF74 +000D4AAA50E2C4B396D944701CB9EF8534AA6784E6594FC3D6B57700B115E4B1 +283FAE9E4BF83897DDCFD26F72EFA374935E68F7527488B25CA376EC614BEA4A +B849C2355AEDCFEAAF1B36A4B19F80378367D1C0C83854D45F2EE5368A9E6D98 +EE5DD441AFDE03D1D1275C361B1A766262D2B1A1AB776AD75E9AD7F3A170A87E +7A66931EC108559B53DD956C071723890FC7E35E829E2F8184A18CC89B89B019 +09EE55639B95B350455BD69E29B64E8C9FDC96111549EBF88CFB6F9D6E3F13BB +1F1F73DB96EF2F42F04792B4576BD85457D8F23A620060C06EAEB4A400109BA1 +95AE8F8FA23C07E45A72482896E0DCE82EE449EF82118F07B7C4CC5C063EE4F5 +5CD03A9295F44F79BFB78626CBD0CC4EF9443709A499321715A18BF8445DB96C +DB5E597C4C53AFE6E66913D3A897198CEDC1E9DAD766A096CDED882DB34E1265 +4BF5CE400B5E3DBF836072ED471DF04F8B764CF5DF96395076772A359FB2DF0A +D89A592F52198A6569C06585EF6D1A99402FBAB1AFC824E2B4185519D69D84A4 +8D7F94BEFF657959EF9750028DECD616F6D9A0E87C09440EC4067167E2F94439 +CD793871669471556217EAE80B0B15014882FEEC8C9515D8E5EA7326EA3A84A0 +AFAA3A3689003AF20FAA38D2FB319A42C704CDFA38D00DD181A881EC11A66834 +F578B65D50C22030ED28F8B08DBA25871C468685029B2462ED59C31B4CA1D152 +B689BBB4F12FD99B9DDA73263D25AF07F4EBA45699E4BB7662AAB7D35853A9A2 +2E7D0490827DEAB840559364C871FC632957E34C337ADEA7201CDD73F522BB21 +829737BFD4E9ADA1387512E98B21EE4E016B527EE20FFCEADD41FF95EF7C0937 +2F2C81E804FAF02E65184BBFB93CC260FC98F89D301A67FCCC3ADFF44DEF32FD +BE0C5D4FEBA843BAEF012940FCF6BAF7CFADB29320B06FB1BEBDB8D583A65FD8 +48EDE89EB679AAF16A6915909F2B67CA60F43724210924A7EE8CF146CA8985E1 +FE9D341D00CE4A3C20E7108D5BC85D7A354BFFC18E6A4309069B4D29B8780324 +620366F20EFAF3F49CC767C4ADD9AED4DD342F6BD1F58F44A32B4B69BE873FB9 +9E6B03BB06E190C786A258D699E6BFFFC94BEFA09929F74C066777C0EEE3F46D +5964CE8CE031D2246BFF5CEB95637073FC36964D5D235898F90A8F9EC168D8F3 +F0D19A5478BF8C7532201FBD807679F344E0B89DA7A1A94773BC1AA1F90888F9 +574E6263837E6C89C6B147D977BB0EE409B509D7884DA5EDEB4B417A21BAD240 +62D37A3B63B5106C16F763F5A74118585FD6336EB49D655B6C5724EA082C8B2D +DAE96AFDE134B1223D2A02F6922A1E6C0375F2C85A6C1F0C709611910A9CCF30 +7F6D71E889F3A3AEDBA377C49BD73551EE33D2181C5FCA0E5C1334331B00DF5B +0D0FB1E381BF7904A96D4DFD0595CB6D68524816961B459205A04DBB3106D8BA +DD31C832B487C1776543BC136CEDBC7768DA2E1E7D41D88DF6B71C6DCD3B7A3E +6DF18600E51B9CB6F5E40E6AB442D39B8DDF3117169AE6FABD5BEC5A6D4479CA +09754EC4FF5B5A012DE8E4D0FB41685ED114909B51B46F37163C30A3E6AAA64C +A50484708849FC2EA4BD68A4878D02E16C29E1B4D1EDD55535898FD82F8CDF99 +8D154DD37FD6DC5EB0C03DF892BD3CF68BDF8A180D498869E6DA7BF32FD8BF40 +FD9DF0F6197AECE4483E74C30C6B87C58C0F879CA6E6D86A6065AAC962D26847 +BA338048B5C0F4FF9B7A027A2F0C9B1B0E0E0A2758D703B135945389E00FDE71 +5A12BF0256ACC5EB54A166B0844F3E2B85300042F83D0FB78671CEAE34CA174E +99FDD2019DFBAB30D236C7E1AC683FD9D4AC55BFB5357C9B8AFA0B208A66C823 +D92F2190F679B4AA238E6997790715FF3A7D193D29AA6E064CE74632B9FCAB8F +08F414904BB943CBEF6C5A0E0F782934492BA0298D1F27766AE939908650C5D1 +43A29B56F5AD7ECACCDEC2C22F0116C1AE65B566EE84451C87587310AF1C459D +BC8383A2DDBEE9E91C51725CCB20B2DBA38FB775EA6381B18319141D0F640C23 +FE11241E5E5A735C0F03483314B5B66B1CFA2112A88D2EDB3CAE1DD1B07F793E +BF81AC8A49B118B30B722A9A239E9C090D34E7152B75D38846B1FCBADB2BBAEF +975DE30A4C54C358E25AAB98F555FE41A8934276B8DB71151A5223CABBE0A285 +32BB1E7CD5B961FE37D6C1FC7CB28D61FA5DE6B930337F59F1CDC9101ED5E553 +AB897E1D4B399C60C1D31764B442E0FD8FB0F64592C48ACF4502373E3A5348F7 +9AFD8ADD64A0A7A8E208EC630E1834E7884D372DAB56438F1ABD0AFA5C07CD9F +B7EF6D04ED4AB2CFDEDC6B66D1E0999B1F8587A8E6377DA1F5B665B438D0AFA4 +C6E7E81C1AD7B8FDAAA92A383826014909EEDEAB4FA1585EE041F16B13185158 +9C5427FC5AE2C80C3C6C6EE5F2571934B834C09F0382F957BAB8C4EAEC254BF9 +57FEB935764507DAD1D156FEF121AFDF84668426C4EAB2299AEA936CCBEF4183 +7673BD98B1CC22BC42E4C7CA56235F280A1B098A78B1E954A35EC2280593CCB4 +1A92B9761758DD36BA22A9A8AF83C0BAF60689956A45E64A4B4AC7C6D2E7CBCB +60046602A6FC6B851D58C07D20CB3ED1B6827637A805D8409FB7FB6329E44BA4 +BB7D31EFCD46CE22625C3F77FA97E827D07A1F1DEB1CA290E518A20604ADFDE3 +3354F37F2F1460A7619ADB0457A1F423302AAA7F1CCE1A08A96ADFD7A0D66FD6 +003BFA038693E420353870922B9DBA3658D26ED8804E63DBFD9635B4FA44FF9A +2DB58AEB208F005BC288840D93CE8B43CDC028313A7DA1487FBC4AB1C1842F0A +5266D5122D00C0C12130E00F6F434879B74127DBEB77437A408C35BFA7760367 +488AFB9DE892B1AEF2C3DBACD21613127F49B87DC3A2540B73E0EF4601DC0EDD +AF6ADA62C68879679485698934499738157FF184D20486B00BFD6ECBC7D80993 +5CA7CB827B4CFF9DE61704AE3E2FDFB5303979CE2E690FBE869A352FD3012372 +F5F50B62E4E1C751EC21A85C9EDD308EC0A3654EAC3D7F11E8AC439771701C8F +FAFD897BC9C6E093D11AC1B1BCB48BC643EAAA929A1D4FDEFDF0B037D4DB2FB8 +200E2D718595958A47E665A5AE0826ED4BA2E9F16E3C80DC2BD0517C37C5E66E +1A4AB402419224B691FB11A7769676912DC04F6EA1C569B6D3A3EAAEDD0BD057 +586AD16D5DB6039036132D39A440B46165FBFAB1531E6483CEFDE9D7A8A0D9EA +B462BD85C29B1BBE07864314B9EF98E3FD411C35CFAB4328FF9AFA383238F60A +BC7E57C953753548797FD1F408B1C5AD935A40D2BDE614D343A17EF3B666EB21 +52A3926B97DED6574A1A9C83F60A56BFAD8971B8758DCE3149285DDE1AAE1F4B +CB401296D15E5C6126E3443D41F16E97FF2A12FDAEB88773010B1F1AA68FBF03 +F004B65B0209209CDB01F49335D95DE480459AEA993B1A8E7152B690D8D57EE7 +11B0E98D8364936989F8DFD7C6BD029122E7DA3B1F8128ACF24B559DC47BFAEE +A5EA01803C0FF1033BE01128E284D81AB576C8D2E6E71EEAB6E93910414F0EA7 +5B223F0421D2F75EC6106C4A13E817D8FF5FA42DCBEA02FF29B64C360D5B8D07 +38D897A538D88D9B5E441590EB25F26840F533B9FFECAE81E0EEB35BCA1FF7E2 +5EEA35E306BA11635BBB6361D5378232BFD77DB099D52B2229CDA4E05B38314F +6AADB8564795031C2883F21A8F27FBA3E1DBDBB2D37FAEA29EA59C0F040CF9D0 +8057C9CEDD3F0083858C1BC2539B6CA23A8418AC968906C5A509E50078B49AB9 +0AF028658E621F55B331890A74C6A822AF7359BA3562E5BC15DB5E4120CB0A92 +E3F3370A0216FE0DE36E788D33CB2BFDCAC8C30DDEC0ED585E585C6126E3443D +41F16E97FF2A12FDAEB881454B8A4735F2C79F25B7930A9C69CE41441A14422E +D8EC630FD949B7EEC2606AB346F667E05D7DBF0043A84CD19EFED7D65BCCBF86 +6AE01EC417ECD42B8D1D6FE49724DC7BF38B98BC11B3A59C930053655C34F921 +332A5B15B7EE275BFE52845A80DD99643F1786082F7E85AE5161C3C3EBB3655E +E3F29EE24CD27CC0A4FB07CB3803C83FC4B2B3A78354D0E954278AFC74C77C98 +ED17D4D511BB3C28CE5379CF6E561B155C720BF9287911E93FFF1AAA67D0C3BE +D44A2D79E369B1D96AA5C41F946B9A294F6B673D04BD30A1FB997A7A26A7644F +0445359AE31AE03EA362A97855EABA676B6984520897A55A25BE65ED13BCEB2B +B0C86C036F2E0E5008B22AC502A96C815D6E15E1AF4CFA20F1D4F46F225BA8C8 +659792B456273B4422C594CD306613794A1D78B294AA85806BDBC521573B6865 +FC8ADBC92B86F62BE70941CC72F3CFCC098CAA2F521A2A640B1244D999ABE068 +A0201D628A9206F4691EDD31135B79628EB6261A861DE26CBB0AE63E6694438B +3D602190E7D58DAAFA82132FE1FFDDCADFD4C81377C8B8BBF22CF5443F03CF7C +7A4C656B329C751D9AACC110997A5CC84D1EF86C370EFA237E333A7E22BDD9F9 +A8223F7E3BE4A245B091707F5B73FB24648387F15FC584868DFC551050E958FA +CCBAF383B70B03E31ECF9296008E7E14A0C8FD4F4FCBB377CD4FCB267FB1E0F6 +8E315C56035A8FFEFF815AC6E2BA30C4DDE0218E6BB90C96ABE2D5ACFCD87501 +895B4C12F6FF094944AB2B8C6025E035338A53DCE6B389149BA88A6BD774E7BC +3D775CF8635908D0EAD76F745E145C98480B614B497A452DA716B05A622439D0 +C0DC565AFC9F86C40B618FA651F9BE192578F812E5286C24E7DAB522E1F4AA4F +717F6FC1A28D9ADEFE78899CE46B9008C808E2331F55F22AF8E6DE837F563BDA +8D554C43DD2CB687C00DF5FFB4E64A8D0B29796AF5C9812F2C6980F6082E7DB9 +AB152394A44733ECDFE98953DDCA6F6BBD4476158E308B6A4F413A567B1B47FF +0015EA3478504249B082DC068BDD21BBAAD7F22D53ED67A0EF44057BB1512B0E +59A0D741E384B6BA9B38874661DF5A96B4A62B2EF5319D08D8FF512FED3E63B7 +58FCD495A44E006FB412CB1D74FB02D446A8FC0C8133A84721DFAF10426E3110 +AF168E8A1A2CDECCBC03A0ED7B6510819F6D4430EDB088B45034BDCCD85181FE +A89AADFBBF1795BE768420D36F7472A72487D7BC29ECC169B466DAE292D82A29 +A1408073FBFA39CABD1D3E005374772B7BA2DC611215A54DF064498636F2E30D +B2F1CB3DBF5C9072F60FA592CBDEF437D74FC29AB096B64A94F46FCA7003A222 +51C2BEA0FC2704E7CB9FE42B02F1C5A129EED9910C3C63649FDC8CAF160FAA8A +00773A6FC77227BB9109CEEFC23CAA6AC4AC771A7A9122B0D9439184620D64E6 +2BBA8F01DFC0EBD21DDD87BB6FC299C48D3BF406A132E0C0C05EE36342942ABF +B7F8F252EC70527E2614E9390E31647B34FB4F4BF9DFDB49745C71EF9E01759D +ACC64DCDC7C5B7562B0B5B7D111AD8538E5C96B3C3483531E3DF9F0377CD2B1A +84A01C795AF1E6D48BD6778C227BA9788E48DDDF0DF942B87D3A7155DEA85128 +98CDA3AD587269922F3BF63F068AFF141145E9E3A5558C4202B4B61395653528 +E85CA52D6FF10DDDFA8675CC72516F8C50ED9620DDB62D651709E14D4201384F +2666A84518A2142AA88621D2D81176BA98D9A5895B8EEA6205215E4AE4456332 +0D69DEB7D901F49335D95DE480459AEA993B1A8F2272DA8844EB5425426DE443 +2AAAB19E4ABF72035EE6521D41BAF09A62BD8BCC4CDB858302400F780F84C78A +FD2FF6750E6A33A54BFBC084DE81466C56591BA554EF5D757446811AE3EF7F02 +3236D34C0000F2F3136C8B83FDA302999F0A1255E592C1AB0CB1D9948A2E2A59 +F8B1742AEB3CDEB3B476604DBB8C7BEEBD84C17B295C99C4EE2418D7069A3F8F +AC34BCE1640DAE78B9D00EA80BA14AB1E0B60DCCBA7F7CB2310E08D89635A472 +A2DF671C74B2791EA65773E679768B6CDE2E1239D5C4E70AB2B88B24D2A7E6A8 +D609BACAC74C18F6C99926FD7C3A3F37E15B750010CF1358C94266F6BB667061 +5D883FBCDEEF6F2D2FBD5E69FBC5ED80B4481836492D0A452AD422880BDAAFB1 +48FCE2FD8C7416636B23190C01E28D768768D62E3196DC56CF511C1740FF5DCB +FFE8F2DB95A06948135F748A5C51ED13422D16E9493A282C0416C7AC08B6A1A7 +45F83F1ACDE163362AC0E6635F833BDD50AC84EE8AAB6F15B42EEEF07A21D848 +8348B85E9355B1CA091B788D218E73286B897635CCE51A3A5197A1A5A28D242C +601D7156E2CAFFE9D75627B7F5E17E1975775B62121C9DD9C4208BDE99766E53 +E87681D0F6227CC9B19628F781B150860D0D01F1C5FCCC8270AF90627DC9C775 +F7BF9440D2631E1F1809A5FBD84954BB3505DCD659B2BF1621DFA6E584333C38 +C766AE282BD49866E13BC4ACD9224F0ADF973D8E905BE1D53EDFE9DAE60211B1 +54A5E95314EAFECB96469398711001ADE80BA875935F4B381B470F8EC3BA011E +B3FBCC801CF04261F97988E5FA87693B20BC52584238681B1FEDA48B197B0275 +DF2DF5977ED674C75A31D82802C0F04FCB4B9DD6CB1D746E055B9517B3BE8D4A +CE080DB5F5641CDE1F94CA36C0411FB479F8AED77C57E0A3DECE776F2DE35806 +43C2FF74532ED4CB1E9D646229D1F4732CB2357C711BC40FBE2DFD45B7CE6A03 +0BF267ADADEA3B09E1A3FA4C1ED8E6DFF061F3DAFB0F0857C29192867A14D1BA +0C8C10A5C0648AB8A1F7E68C35848C100815B82B72A98EE2D78AE5FDEE28D417 +FBF2A17C4F3DD614960CB5CC2DD64BDF00B9C5923C7F62D79CFA9222492F7617 +EAEF8A2E677760B57ABFC9D9B5BC3E26BF856F4CB223D90D64677C00BFC3E7B8 +C6FFAF9234946D3C60A0A3A977B37516886C28EF3CA2F75CEB9BCA1C35F319F7 +7A136CADA3BF2485F16EFD4335811D7615849FA8B3641AE4702706DB511000D9 +E1B4D14DCD6AD90B65B133189BD36F932442C0D55E062CDFDE27E0390034503C +71ACAD5790A4F95E54057A12D3CB0A2EDF34F1172E84955B590C7887F60DA4E3 +BCB74A19FB5C753FDBA67801BCF0DF8AB8B6025C64300079E65214FF6069BEEF +266573BAD749B169A312C95C6F22DE6FBA80EA8BB281E7AA88E0740F8195CBC9 +AD443F6E69C007FE1C06C98575E4DD443B01FD8DC906C03F12A77F12506C02F1 +A02E5804D38302E0FA81AA5CB2C343CA865E2210D2EE038C3F78BF402688366F +92ADDDD55F19349DAC523CFD7DBD4CDACD8E52AFE3CDAE38D07CC29CF6DF05E6 +3CA91A99D0A49FD8676CF7767315F1B315231BA851FECDCD0C0A4ABC2B46D019 +AE179E316C22CB30CF4FCDAB9568D28AF18CB636FFEE11D9FB220D6FF27AF9D5 +5A23559A57E9BC3E39112C3366F1A023D9A302B915FF910E63CD9EF6085A99C9 +D7CD8782E05C9EC0288EF48DE7E39BA940B07F9D5B204656BC172C25541107F9 +BE15F3263D2757CF5808E562AE237D04E629DD665E8DB14DAE5A39C14B11C295 +B0FA514300B8EA7D1536894DBD4663A1B50AB9C0FB3CE55AD1A8CCC3E6FB3DB2 +6C76DA3A623F60D70D0BB625E227C1394DAC31F739AAD64524308A83DB3E2C7F +AB24124A59E12F18EEC79A35C72A1C95BF082BD0954721494C407085E1D0EB52 +E57A53569CE8E37FB3DAE116CFBA0393321EC741425E063D5D3333E92AE5856D +B02D336DEFAF80280BE69864DDD8F313E448FB954363E91EDDDDD658AE358CEA +489977374C6F891DEA415DEED53F78B2C96E50DF4E50C83467B3ACB980EADE1E +D7641A5CFBC55DE441898A1FF2A46FCAEE3E46319FA22E72C0C52730A8BFC3CD +D927EF0DE76B31E059A7CA7B8FDD12E05379231BEACB696161BC77B245AC94E7 +C72D4E3355096B85EB2987B681097B77624C3941FEF32D760B94F04E7E98600B +39883A5C8BC421C93B70DAF8B686861E4561A057D452BDDB45FBF3990F78D693 +5706B6F40E423AE58475B7B83A70AA730E29EBCE084FEAC9C44F9ABC884EE745 +F76032B3DD7E1E345385838DD6C6F57D6D9CAAC29D32BADA33D5762A612CB8A6 +654F600384177D6AC008AD0256C66635B0554F26F62D4E912B80B497AD29762E +D3B68E1300629833F96DA4A210B9F1DAB53B3D24FCC49E480BD4A377910D0CB4 +0BBC38A2A33E8E4DE18CB57B816D4923B7921E10281F4D0A41D347A9A9E94359 +9AB6E7D87891D43882F1E6BDE85AD0EDA3C662DB95B03D4BFB080F96D362EE37 +2219E70F5A49FD44FF87F2389B9E35143EED4D9B6238C596181D514047E4BE25 +F323C2BFE6AE236DFE8F685E652A0518596249C5004013C1C4FB989BA4A7EC2F +20EAFB8A3EC255B1A3B63D2136661EF3CC66EC1EB8714D9A35763F965DDD347E +4A5AD0B2498D3F0A4D3871620A68AC317CC09B45B88C7AA8F0F18DA458C81515 +0659CDB421AE4D723FA5EBCBC8635EF65F73700A3262F94C34FBC8B052084E3F +ED683624FC17FEE33307AEC932F59D55E90C47AD5AF93DBBDC12F32BDBB44F3C +4C46E1C44A12AC14C9270FAA819DC341467C251FAFD0E455FB0E33C554BC3EB6 +9533374188F2E15C3F2940FEDEB21EDF5CFADB42D371CBD1211C195AE2A2C1DB +FEAC0256D2EDE6E14BEDB87C87E7677F0F09834F266D75297A5EA9E7664FE0C4 +5ACE4C06C4901851656B6CB6FDFF86A455712337397279F2A45CC5C37E3119B8 +301A63610A91FAACDE090CE8CD317805BF616A66AFD71DBD125526927DA8D3E5 +3FDF89C76833DEC9F84A7A0263D3265A7F01F2EE19E84AD94379D3ECCE690334 +8CF7A4D21DD718CB10253F3AEA499502E5FD0A803F755911A900FED35B6100FA +86E8A76DC062DAA42385E23E7BFB8DADB2ADE8FAB01E5DC7FA016CF35B353A16 +BFF6312093F1B6BAAD298CB839DFA7ACEBF9ECC3C3F4245A7F1062066CF520A1 +EA42110DF28ECED7E231BE9D5202D6A34B82FE309050DD97A3EDACB53C18F522 +8D9C350F56F4579FD3051FC3D211B2A16ADF483A79F5AD662FA1EDAC95994C16 +27D63C59F47F0A2A0818E65867B7161F83E14DFB03A64A85D62374278287AAAD +C2E4C11086C1F8EA9341C57558D1780E9629943100DC958C443BC43A2D385191 +8A0CC23A8013455DD6BCBCC78BD24BD0BA72F182910F9A54F39C3B3428C7344F +8F7C114743B853D7F77E37356AEF3A87A3AF643D025F05D1F96035671D1143B1 +0B4F2D2B2D68BDEA255789EEA9C7FA30B012030508228BBDECA4F73DB091E29F +973DA79B49BBDFD3366CBFCD58173FF078BB583C58A99395F56B969C8038FAA5 +BF1A184D08BA19717B6F2F761AE6941490D7A3D8A5413350D7F80E18DF0980B9 +4E6A76363ADB4A40DE137306109DA8B55B5820326F8753B6B05165C6BE3F8948 +E5A8CCEACFD49EF48ECDAEF8BD4D458D882F528A980B646847DBC2683798CB6F +A5EF4ED2D269A13BC8F6DEBC7B77A0BBCD01C3AEEB1487C07FC9540F4E6150D6 +2B8F1FD538A20BA1375E4E2D1A6B9A3063F127E4F23DBFEB60029DA19D2BE3EA +475F8365D2D6786863BAD98F52363C7D94FBA64A560A0EE40869A1D98B65DD28 +2E5E4E83E17B88AB50F1B6716D73D50077C1B18171DBE993CD1AA09238F08ED3 +2879F02F28E97C76A0C811390F9294FAD538373A242FB78ACB51BCEFC9021D2B +2299E1863D0F96396824DE103926BD4D8763F5ACF719E5F6F67F39C312730300 +2CF61000D206CFB809F4ED2686995EDCA2CD087E0D879E9D279B62A7D82A16D2 +AB62148D2A6EB3670C83FD026A2574748D297E014A42A55432D5EAA6104B726C +D2B9B1844E0458A81D478BF53F44409CFD7519C05FD392D7B05CFCBDE18F40C3 +F25AAAB3B0B47746FE43E19436021ADD192EFAA0B14F8C3365B83DA2B08A45C6 +EA594D46E0483414B9C232E07BE7DCEFBEA147451DACFEE99AFB8A47E53438E5 +BCB621172D6A36BECCF3785BB9A0216DCC76AAECD6E8B378BA7BAAA5F583DCEC +D8BEC310BD56FAB3C659E171B0BB525342F8FAB0D292F871F304B4DFCBAA0651 +C7A072E1BE2DB874998CBEA5DA5691672DB6F5382A471E5194C4E07EE9BFE298 +1B0CA5D6F239AA5DF6AE37E4830BDFE930E9E2A7743A49497AFDF2D8116FCC75 +A63F16F5B035511344BCF63E09DAACD30A86AA97C22C1A689BEF2A7BA65FA843 +6EDE35AD60150B758449C0D93B0DC0CD43322399787701A01986C83EA5FF16F6 +DB42EAF18494A4CDBE2917793A90FDF9C6E47200F0601ACA6FF6CE313CC90392 +EA44550A03D98CFC064B616C166234DAB848CCDCBD76D78C10C2B8696E5308B0 +B80C7190D1FAD81AA210A4E9E2CB5661475E1A02CD82D93D9AFE101F28C26AB3 +840A241FE593B475FCC1191961D0CBF0CE90AE74784F52CAEB87491AFC8668D4 +2113D07432DABD196340D32CF19140FF95FB63AA3986D0FE5DCBA28CD7E94391 +E5E9E8FECCFA6183E7A9A4340D67B1EE8BC15BDD8E82810A67B279EBF42D1767 +C2A7776CBFB97B90B5677553F37C495B95A559A31C24EE5D80ECFC1D340A12D5 +09E1A6257086DF3D8AC3B654C9B7522CCA662CFC62C1693E1E872F8367873609 +A7312EE7E49C963ECD9CCFEF19337B39725C13676E0978694ACAEA999DEA79E9 +4EAB8587031174CA5483548BB5D156DDA82B1A9CCC6587F9A25214DEF1E3DF49 +2E31AA77AD96270F0C267D6E166B55809E4CAAAD00969C92D66E125F9E5DDDE6 +8AE101F5BDA1A741023CFBE9F67C85E0CE7774D57D3B8930D7C3D779D8BECD88 +6D57BBC9598552B299BD66CEDB67D27677753704E4C38F455C59552906D8A1D1 +24F085347992F0A90BD6E7E017A42A6BCFFF5C07D6DF8B7B3732D86FD0CA9AB0 +011869B3670C83FD026A2574748D297E014B7B10CCDB7AEECE8DC7771718DBB0 +1E4B3E6CCCB6B1A41E8730B874BF14E532D888A1FDF43C439BEA165478DF6EA3 +5ABF5AC19769600F7B8C941284296E67936A72132D1CA61DA6B51C2B0A93CD1A +148B9E6F4CE18673A6B808DAAAC242D262024BD62DB3B00F44ADCB96480DE056 +D81DFBE22BFEBB308580E7F7E902C2C6A18FB7C0BE10B406C01A432DDE0CBF1A +C54019AD3E8183EF460A18EAF0655635E1B5711C32E17928D1B6DF670054CC04 +3964D00CEE7E0EBF297406D598C01DB574903BAA23F18EEAC5CB36F41E6DD1B7 +E12C321884C5D9C35184B130B2B81B4396442A7ECFC14B5F3F44C0A04F909D82 +D59CAD0D6F69314B2C1BE29ED3E6F129785A8F19C81EF24FFE681D2B4CC3FF07 +2F5A915AB8B0CA2414C2B1A4C8DF83ECF617AF17E598DCA2BB9F3FD72133E2C2 +14CE0D596D39460AD4D257DCDEA1A6706E851DF1C389B1675ED8953E25AD52C8 +EEEB464040B2C785D4A2BD238254DBF49A7B5D41AC27C13150D4ED8DD3F3E9F9 +6D496A48C71E27774623BCBFFF856FCECFD4BB43CA0CCB89524A7E1482AFE68A +C59109ED6A12325961ED29667AAB1980EB2CA0828D717D15A4514C96122B5317 +C1AC61864D22368C48000AE99A2BDACAE3C922AA636F38AAB3EE61D681403B3C +FE5AF7F85118BCA69CCE0FEA03DD5DD3F1A177F0D86E0DC7B0D373B6D8FE2218 +E26EBEB6A6D4E7C9DDEFD33B72309C45696670166CD8F39F442BDF5163D9CCAF +5E69D2389F643CF6D2EC9382C441D10989CBFB8ED964F7110A7AFEC7A30B04A7 +5885A54B561FD72427DBBE528FF8381B327BCEAB4376746DDA53FD1F267F5E2E +D65FEE8633BB86C3CDEEC6ABDAF38CA975030FAA951762C0B127C8D1B49232D8 +B077EDF0C89D0EB6A21EF3DB40EFD19B8557BC75D148B686A87D07B17B077EAA +C299C8E78F6025E035338A53DCE6B389149BA889B3620DFBF2089A0E6C4A8F35 +E8D451109E119AE3AB48507AB8BFEC54BEE42E887A285A61065A282A4AA2E870 +658CC6B6D44365CA23036C8A9C60E545B0D9222D8185DE4BBD34935C33D2AB8C +70640A3B07EF857768FA8460E895C7935B3927327D503B6481CF7F0F7B0B8158 +0F7A84034ED80CED0DF4AF79983D51707C258188D0A4B2BC685A4D900B71104E +372DD006C09D5BD8A615C1AAA83E8FEA614E03116AA3E53AC69535F016DE1959 +0722452B9E96CF0A9E18BC9FCC1BF0180333B6DC8505120B7C287D34A13C209F +57B300578FB2D6FA2C7672E337A837C07F22EE69CD649916C35773D079D26FFA +9827200E224E0FB6DC681B7A4DA6F3AB42129ADFE6CAFBB65DD5BEB334D5E337 +DB4644474B7F22C02B5527421785CC508450D6039B7EB158A5EF039C8EC45DC9 +9D12241F2AFA2AE929E7696D31CD8A1ED77D571FB57B9BF0AE25212A52D33A0D +D829600699FBF3B6096D0141213E6B67A4DA27CB17746D0DE7EC085A1D1ECD91 +6FC88CF8A8369C49B092A0A4E923DBB843CAF6F899F53C3380BC1F07AC4C818E +A103F170565DAD8DF42D54E4D439F1C0056BA48005B43F6940B4EAC49650049A +25249432DC74B09FF1640E1E4BDF8F4B6F8A5E3A74345E38D29FCC3E44C93804 +D115640EF9C73792C9E9DF233C10030731B2FE8FF49E753057359646924CCBB0 +AA354F1ABD3099FE129A576BC7E2B1650C7A47226C1B0D8ACDA775B785638667 +081E297D5436660D5056FFD0D3DEE7207889B1A7E131BD76E748078A8B045728 +6AC280D35634C288550DB20C261C0BD15FA3B7E7DDD25741803DB72B962DC65D +F1269FB36CEF3DEBF2AA4D0051D39A57B6212893BE7CEA7E4AC7694B7CFCEEC0 +74FE8447CB362A9A9513DCAB9DCE465C13768AE95D4CD1FD5D7177762C5D47A2 +26D0E16201E484DC939CE41D4A4AB1691081BC0D48CE7D358510F14A207D5A31 +B6271A50010E1AA336BD73133F6006D5667320A8F4E8B29E5130373D8517C72F +B2161C0D0C4459ABD8BD65029A9698D078C5052A1A75C736A723DFE0543AE32F +AC28AB8D540CF4BBAED697FEE5A08CF07ECD1927BD85A776D20558A8A1E0DDCF +FC57A6D8473B2957BEFF319D32180098AC3C1BAD394692FF9CDC1E32DD3A7B5D +320295697422AECD4652A881D50C9DF5BD1E25370499AAD99B2BF5FD6C097D90 +3E87B291F94D0DF9D4DFBAD4F365A705238728DAD394CB6AFA870A1B4B48EAD9 +4822B08D66902C80C45B2949B8D1B947EB79E90166D70429F89E4CC19AE91F43 +081B993FD24B99CD5B7F09CB0424C5EEE503AE51162A0A611190E892D1C3377A +4D9AC90E5053C20AE8C8D5AE084F120F523EAD11E87D3BF96987EC8E3DD4CCFB +50DBF6A58583363104120084A5B4DF5BED6475F467ECD47FC82672F4DF953813 +D97A5A57A70667A9DEA17233E545F186E375B2E7C66E8DEE2FD6CF5808C50411 +E3E995021BFF530EDF03F0F37DD81F84508FAC8B0C39574526207A9A15ADF33E +9562D6853E4634BCF507E7AD0376C57438BCEC02B710F47A1C83530D8209DC87 +A889789783D7BAF435D9D4424DEA71B30DEA52C8BE16216CB98B5BC6C000D783 +A35DA4ABB72A8A0CB3A0EF60A20EB9C3A14046A033A9127228D38514EA1ACE4E +1CABB39D662DF9AC5871E81DCDF0EB03E3E5D5C45087084FF5BCF2AD8DB66001 +90E9D17A10723D5092244E59DA1A31FDC7D428FDDEC90C0BBDB7D33C17E67AF5 +87343AB6A2F77A9B5610E99EE28760C893004F0FF6F1824C362DE0BD574ADFD0 +9199AB33E984B1932C2F37D72CE8E289BCE928D33FFE478A3D0579EF48C1B6B7 +D9D2C0CDD61043B7396BE6E1B31863BEB7A09843844F99739B2B395C1E1FCB5A +50C614A3CF4D2F074926073116CC0E21A6AB4CAA2CEDBA125816385BA6A4CF2F +31031957018202E7A279FA2684744B44E53995A57FFD2AF2902DC0E2D8D23222 +3135D6DC1CED640204057D5EFA1B959041FEDE65D99A38C4418DCC15832736C4 +41BCF3EA39F06B94C76B4627C85DD8D9A19C29C595C180FB895544396AD83BCA +3C3EE87B3B7DA0659DC9016C341D7281784F095CC3FB07990FCEE3EA3747D114 +B2291AB473A00400C0D2161C45AB7666C0543D1151199B867435D34DE4FB36D1 +11529F4CD2A906E6EB0E6B8BDA20700DB08EB09832F5AB8111BA022F3DE7D033 +481A58BEEDC9D18E6A4C4F010DCE7727E2C39A22DD8C32F8320AA4EF2448D307 +C029D465ACC69F29EA9E146E743FF23E464EEA52BAC94E8987B671EFFBDA7FED +F68C44148B894F0D317234E5B93A07705F6D5E131582375A39192FC7079E1AF3 +6527967B6029658F4A25AA6A3A2A31184D9E799F1A89AD23AC72100FAF00BC44 +4976F95E0D29F58A1F30CEA9589841761C3C4AEB59EC5B7CE530B7D9209A054F +AEC5DB7FD50BA11C7C8E75F60B96B3F32224BCD621FE8B60436A92E7810F4EF1 +A383EB5CC7C9D905FF68679CD1419595FD349D0426A06D8399D29D37034D5E32 +AD8B11FBD160CC6F35687A7C9329C32B26C0670E76028B6A0ED2EE5FCA0E5E5D +5495FED4BB91E5EF23184556FDD8D91AB1786629028DCA382465BB2E8E2F86C3 +AD61AB24AC4352EBB4032EF81E1E424444AB41624E57F1F0D632B10222361470 +C87235908D29FB5C111C70E20DD363C0E4E80AEFED2994F529E8FF5CB04C5F53 +BFFBB695A74B0CE299A184E5B456C0325CDE88001328D680E755908E37FAFE91 +72F99F316BD4E977C5AECE0148D5C1569CB76470E812371F2C85AFC224047588 +61A20861FE013FD244059FDF56DE90F179491EF5DC2BDC2E562B5D110F55204F +B97C7DE262534D9D78FC171C4E45C410CFCEE4D0F24DE9BD790EDFCCEEF428FA +C68C969A795F827F3CD34AF57DB2C2EE097802C73848ABB8A2DE9D61A86898BC +30968AB0F3815C1EFD9A5D5A5EAA5E69FC9990605BE8B25A0783950018B1D1BC +2B470727B8E5735180291E72CE3F05A96019464892E2148B22F73ABB8ADAE775 +D48C160373031EC17934534919D0CF112E98F0AB2D1660CA2E5FC05F132544A8 +0A3C8121C2D778EC5AB7389B6D2AE3E93BB2AAD079DB6B489C4D126C29073659 +71AB75F9FC3A7279A43F791661CCCE9F84CE854986B22A73DE85208B7E1CCF8D +430A55097F0247441D29E0473BBA287F9DCDA628378F55BEB25295679DE33656 +DE4A57B781D221C2E0C92CFF820CB5F52D08070481ED64C864407BB4F8412C99 +53514689FFAFEEB7EB9DB0B0B6AE73C7FDEACDC880CFEE01D42113A5362855E7 +6633C0371716F1C2E561BF468F25A14171E98AEE8C4EA2787A64FE298E93FF9F +EE194145CF213A79D737177B7CF395C28634677237C694DE103FD0538805984D +6AAE5FFBB8DB67B63131F6FA30DFE295B57F8F1835D1265B5A7E052A766636F5 +42479784B0449805D5F3D31C084ECEF4405FC13C1840B84D6AB848266C0BF823 +79048B1FCD8822EC75011790B2F773E4767C85BDA76030EDA4D7FD489E95ED6D +4B8BDB902B1BEBB98B09D75EB3C549DF9F96E8E43DE333691B46FD11AA5A0323 +1016B6213E8612D2E9E418AE44415555C1BF26A96D24DC6363A3B14E0B3AB195 +EAB86047652767F4EE0B1D25341EB5DC714A0AEA5431FCF44889EE69F967F3ED +0BFA9623AB0236098AB59593042533CD81AAD8A9C471EC6F606499F6B3A7AFB1 +235297260AC4EFB99EE5B4C8D47D3A66093CEB824B80E7F0A9205E6E3272B595 +7E5BD6DCBEC86456F4E8E3F12F16E6A5393669400982F75538BA7D723DC31930 +2977F80396CAA5B9B2786EF4F0118B9BC1B4387634BD356B6212A9591C3B528D +02B24C4F66A8B42A6863873B8FC2C23A3C4CC050B71418C1621225A259AC38AE +AF34019F352C728C91F2FE8158445F14F544470EE28AFA3499B8A9F747224C9F +7FE712328C23570BD17A64553B08E8D176F9854A6CB34369AD260BAA8A23BF5D +CBB68BC527D556455F2EE04826E7AABC974969B84B8B5ED945005796D6E5CE30 +B9FC75CBBE150489AC693C7DF6E18940558F0B55872E2A8FEAEE6F3EFE676529 +45517604ACBE3FDB2D9AEB2B491FF8476CB513596CC4CE074A404A45DACBC206 +4B8E5B3A05B911B89D67DFC33C7A3AF53D83724AC09702571F5CD690DF2B3904 +A6D968DD313F8B6620A91E59C279D9963FC18B01491576807C53E6376B190465 +789380E191267592709AABDC0CC32A09318A9C95D8F77E844A2DEBCF0EA68497 +581770F83952F5020238599613FCC511AD78A8EF3243D6377346E3C13B4E11BB +7DA45B6B2EC3CD85FFEFA5B1A5AD10FFBC85F554AD7B9F50285ABFD57B6078B5 +53AD3DE612AD0CCF5AFC45F7BD1AF11FE4F13A61BF776933E36F8009058113D7 +83D4BA20262CC542547DFFAFA5F98F5D00E4B188CDC731482BCA919A3A1F896A +19A2DADD4D86FF1A0F9F7F3BD2784B527526F940386ACA2DABCEB8C62C49061B +62F2D50B706D71E95F697AE8307A03BBF73E9C20D6C810852B208B14FE526225 +F24695B3525CF75CC7661DA8BB4E577282DAF0CD7567DB7B0CEE6A589E968CB4 +39BE739482947F1C6D1EB30E7BE6BF792852370A1E8F480BD4A37773E7E94D1C +E78A704905CEBB6BB5F416EE4D1761CC6A69F94C15CBAF6993C7C1320D17015A +62221E2CBE5373AA639F3E79E65C233D1FCEBB85B138839C183D51C008EC7521 +23B8F51C5FC6AC81C0BC54649D642C43D19C7F2CFD2FF2ECF25F01E4B8AD5E6A +7BF8AE22D7AFB4A1FB5E6BBF5CFEF55888C05C911E862BC7FC1D418EA1E169E3 +F8FF9ECF4E5CB80644208DC1FA98C478F58DD1B4887D39F4E68DB6BD275E1FD1 +11304A34AABECF0CEF5235E1EAD65EFCAF25A910309DE273147EA8EC4184591B +C3FA3ACD7D3D2C88DEEC558274FC74A6ACA1EECAE6AEAF1C0EEBCE74333650B0 +0B0165AE4C8A9BE5593DC6B1B6794C65035B1158CB8AF6B4ECBE34ECC1C42036 +F8176820D3BA2C3629B20D494FCA27B6D4C07BFD3B385B425A562F78DE222F62 +5A1691CE8CE57ADE018FBAB4888095E72D3BDAFCED350C75731470AA64535A61 +B226BA5DFED762812F048EBEFCA6F34D79C33B5DE9FE84CF9087B563B38255AC +32B2D894EED8B618B3695A3D6FB37C7A96309E02D86BFE14AFDCB4C2422AC330 +19E9583A08776779F286B56A27E4435BD7ED0F7E76FA03BAC080CEB7AFC4D525 +AFF12EDC7599454C8ECCAE5CAB7D23983538F5B8BC0F4D0E4ECF9FFD37B6146F +783A463CB52C3F987588EF1671A0A771A5920B527A69199B7DDE664F040B07B3 +C752CAB169C4DB746D708D0ACC9590B7DCA104DD9EA1DFB6039D2C59FF69B34D +18E0EDD3F8117581D1D2699F0BB1E027C2A2353B63C7154C219881FD13E554E9 +06513EE93A265EE65DD2585CA59320010A1363F72E2FB94D7604F659C42F46B0 +BB09A3BF5B224E83C822654CF5BC4D062322F2334343EC50F3BBA86B055407C8 +6CDB7C52B728791E55F013B9AEBD4395C36978583836894DFC08A2A1DA2BADBA +7EC0BCCEF106ED93EFE20AEF2504E5881A5749981A897E7EBE0136DA2990EF19 +AEA0AA9213089D45A24617FB1BD1465059E7002AECB3A497E39819D7241F3CAC +1E067BB075EC8BDF94C35AFF9972B28E627BDFBD753ECC7B5664999F24219B77 +A4969716151F1B3741D6DEE0C27F05220142226D8CBF2D503C8F0D77EBBF9D30 +9286264EC426283B7585C1CD855ED1F18D7D9BC60F6CA00F108D6D2683633F04 +2E15ACDBA49399844FF84BF593920F876CAB1BB06220CDF7309480B2D66A534A +A4D10E4716AF17AB6D274EC67FA6ECA9EF8BDD18912FD7D3740C6D85C5725607 +FCE37C111AD8538E5C96B3C3483531E3DF93B21D30F2014E2613B1ED8F550E96 +59338D922D770274B0A5459322547F1F829DCF455715EC94547193B9CD9840CF +87F65670BD7CB5E2283FA61818360A5DB870C2E63B923D7FE705AA7185CEB4BE +424923A196FF423742A1050102B840BD2BBC6E36608A56610F67CA49491CC1CA +4DD07180A8849721EC7395A7B8F1B3C54F9B3DFDABD7F3AE4C9AB94DDB066FEE +28F66CD402FB770916FBA1F1F958E0AEDB13CA76A19E5289872538A6CCFAD70E +3673C8BED4931027AECEDCFF854CC3AC19482CA681418BB883B4550C5B6CE6B1 +F3176B8003D25BA625C6A749C366609D095954AD206420C18C7AFDC4CE39D27B +0B0ADF02B146CA121A70050A18073850174435FA6F9E72C238B7A48CACB4AC69 +B3D1D6E1D3D17A3B106E635904F196627E241F253DE8D54756898AEF86B18CEE +8238655681B001971F293CF8EB6A54859C49042A008423964CB56DA11B02BFBD +BB6B95C298DD4689290BC979F03FB1E2A7451675B8F0D622758768A74278259D +2732EDA8600201A4250517F399854B5ADBCAE31AB4DDF43923E2969A8F4CC0D8 +924C90E2E028F14B685D483A849D29F1CC10D6CA809478563AFE463015807B51 +6444DF3D790E32BA259FC90335C2A77E83D1A804550EEE8C7E7C399B8D09DEB6 +46BE09DAD67B3496168CA488A7C61A08C6659ADBAD689ED3094CC31833BCE783 +C9C376BE3EBC327007F6F08731634F35CF7103EBD648B95EBC2300146F9D80E0 +B685671E2881895138C2DF073F9D118179748A711143B125418C68866DC4DD53 +6A07F238E7B27ADA83DD1AC8F18610FCC7CDFDBFC2A74E488E4F7C82023F6B53 +E7702EDFB5C56D031B0BC96C5A6A9B7EE808EA3C36CCE4069B1FCA4C93737280 +CFF37D45E848DDD7FF85285CFE4B72F5011977C4F4FC48C919B6867B1C0322F3 +C8F60100F20FE3D7C3D6F202369C03C964E130A6A3B33F40E2462B9D23EEDD23 +7344E597FC54638A67156C453F496263FC5B5B8227429E50D1FA9675AC21373A +0843EF4143E5FABF69310BCF766906A395AFC353ACEED85F6557B423C06C89DA +157F70DBA8CB5ED2E852BC19201CF22E5C169EBE06307F1ECC4F900F7E81EB26 +96AFCE64C1080F0DCBB5532A4F584E700049B3CC8FE919D55E03AB6A69A4B916 +82DB727263624B35D22FCA7CCE9A67D4504FC1BAFA1652D965E6E8ED6DB964A9 +A2C4867AB5F552E54DE92D9DF52CB8C6EBBBD5813BB11DB6B147F75D950DCDED +7405C1B49B48B94474AD10F88DAF3697A076A9D67EA899B19687E506BECF1947 +D2ACE1E45048A8FD7AAF81C1D5837392B1EB9E514580E6097FD825B080ADF0CB +46435431DEDC5096CCD5DEDA9B4EC965F20FD452DAF79E3CE3E32A46986D1902 +9F54CA543AF69D52E5EF1CA0E3F2D03F15752D5A8AC3A9BDAA9FD62A998F77DB +A3A320DE1C232DE70425A046A4A1C69698A882DA14ACAED323DEAFE079D8E7FB +4E4218D2AED884DC7088B6E37BFE194D145345D1F6D09757F728E56482127BA6 +54667224C5C327BA7C4059535C34BA975A756A4775529B87C76AB5FB9081462E +3701D485345FA762B5C47718214ADE09FE538B23688F844B44253958A76A0582 +998EBABC0D7584F171D99039326CE8EB82690E7CD815EF823F57EA5E29CA97C0 +747BA67335F672BA95A862AEBD5E357AE63F9A97A2C92AAD8041372C63A3E020 +6C9841236404728304F8447E9EA64B143CF6AF5C08136AA11496D880A38BF73F +4D12FCACF35DD8739E42C58FBFBE458C94707C825C53B327D89EF39C556012EE +5E31D9C11A0A60AEFE0E7079E7C04CEB52B02DCA88DE1B6EB0C1C47C8B7DC5D2 +E8AE95B1FA4C2F60D1F8DD87A889789783D7BAF435D9D4424DE3AB25CAC39266 +D3E4A190F18BAFF8145444A4B33DAF9D83A46EF9BC4210C3652D589681C49267 +97C5878337B23DE5DE7D508B5D2E4B9FFF872FA2EE85982E48BA5ECA86A3BEBF +3DDC5FB1D62336C6DC98BA3D193ABE5CAF809C6AF9CF31345A8EE0B0EF884808 +520A08D611AB049D38D79C6EF9F538A5B366063CE605C921BE7EFDD5865D649F +955FF368F3E3153D1BB6B398ABE3BEA00CAB58234DA432D462D39FD27EFD08D9 +C5B958F98C9705C655CFD1D12CB2857F376D4CE59261BAFF1A8A50279607C8C5 +0EFED335B0FD0EB25D58F5309529F24EB9BFDCAAFC4A23CC6FAB0DE4F8B78FCE +9BF97A624E689F4E593E15CA50F009E610CBF667B8F013E5BD513714707D5E75 +122E9BD66526CBA0ABC48E8AE6B1688FF8C25C464C8DE841813C3438080D2057 +E7B69F4345188CDF8229A2A9475D08CCC2A3B9A71C78D97D57AD16CCAB7AD48B +74BCEAD013AA352ED6369B602A6820FB41BE653402C988B1197DA58CAF8A510C +59E13F2A893DA448E31527E6085EC42BA53B144B8A437A0874F11E6E78FB33DB +0F0235D303D5186D6770D7E095A90349D3CC302E4E863FE63C4EE141EDCCACF1 +BAB40513F7D25384B0D340430A5F9B3F92EDBE20BBC686A00D258068BC1A62F0 +4404166720C341B35EDB4586541593F8536E8D473A35FE8BDA05362C779ADB80 +09BEEDA495FB7E96A9D101C6688152F65850E258E9545B720871B869DE025AEE +9FFAE558501E9D8BD94A35F727AA9A71C33D368CE03E7045BF99AAA7F7BA00F3 +C55757BAC2F85E6355C0A2EB388B751A404EBE1D6E4A85FA54648D55A6CC58E5 +99F5423B549EA4606DE426020F95E07A58B2B9F86769175F99F90508F5CE503B +44C533D473316168274219A3D52FDFD91F501260D47FB341FA124B395111FF22 +86AB9F162B86EABC2008C55DC2822D61D9FD8AF7C15086E5FD1820DDA9CB849E +06FC42AD1B381A7FC8F2074DAF626748053A51101B499AC140EA0AFCAC525A24 +2798E9AF66587D0F331BF14A5FAD8D01980777AF9FE9ED826DADA4972390EE80 +1E5FD7734D167AFACB2415433D3E55B504919FCB2BCDDC054CC91C85B3597B7D +BCBBE833C0916F666504245ABAA2635F3632B4CAB549BBF294D1BDC3AD51A118 +DB4E6B848DEB130A56DCDB935ABD3260FDCEC2B6116127D4313DCEE81AD1E409 +405895F8C6A43E375E4AC001F20E9FEA7872B3775E1FE556DB100BB5E216B775 +53198A68F75051096681B771253439471A25D61F2E91A96E16FDDB337474D437 +81699AFDAB98393605EB377F7EBD25E7B62C2DA82CF09948A46297D3DF65E84A +150AF97D63621D7887E6D25DAC343737B9E9E6D048D7E2D64F2604418C884641 +113D7FCC36B76034F37A3CBC3367DAACE9A220DFF0F6C95BFDF4909D9FB5B381 +82110BAAB191FF5B0389A77DA7110EF40898D7F2206E9C8751A1DCF4CE35B2F2 +3DB6068ADEA4771A6B5A94E01D479AC152C7B16B0DE4C97C1C2E379B2BECB9CE +C1E9CBD2182564CBC6D032FD49D5AB137C172E040482181D88EE923137013492 +BE918865CEB7D7904FBE0D6CE8EB82690E7CD815EF823EA6C2877253324B87A4 +C12A18D08F7EDFE563197C89A0100AF38CF7F85524EB9327D1B29FBBB07B8D31 +4CBB30FA57688C97CD7C7C9EC37930E27512B968ACD62F9C5DE49C03FB720403 +11E96719D178A8CD7EB7504A31AF3D78D061307879F2608CC69105C029BA8D4A +7B964A305F8A2101572777E59B3CB401C9A2671A7E019746C28E8CBB5DAF0430 +BF2B6039464E356B50BD9E3128227794FDA75C0305C968BD907D9138544B713E +F29426A30BD387E54F1BD6BD48B2DD3EEF0434EE61ED7C48B0F9D65B1B0697BA +4437173CC6A46EAF491CE04DFA281908DE892FACA4D1ABA93042CAD9B3058B16 +57B2C480D92CC613AC5B947AAF21CBD08A2E3B1BF6B7EC58FADEB7214E434723 +BB02264F53B52A9221A13865E8864E6F75D40A38ED471D2B68BFB683965CE95D +09719C82246C7F9AD6801A25C85FC14D3716B645EE3FF46B759E75EB57C655FB +CBEBA20E12A6B89D792D69041F008F36B9F5777C45F61CA7707EDED071FB0976 +1997C01E99C910D18C1DCBE9942830173961D1EE5F1403E30D3B9265ADF81528 +18A2DBD40C1365F2863F24E3D0E77D9071466ADD35EA17B49FC53E54F0180C3F +20BED95BABFA45C59BB87134F56F6DDC7CDD5B3D625DFE4BC40DCE69F4361E52 +73DA715BE8EBBBFC6365EEA16AEC84B561C94007AFB3B9D2B58A91DEE9802B6C +2B7EBCD0F0E28CC1198A84ECECE33D7A162F781736FCA7D87E54E2B1DD43A458 +C557E303C569492C3DCC7C3A1162682A719FF916E6BF859686F6F08A3CC07CEA +9151BB3C676519D0968C7F70B0E01D9569049031B0CB8D9271589795CB99777F +D2D8A4F18A6EEFA9BF9407D73C5BA42F50D139A2F87C2614D3548980353A6C53 +F47F0BC75FA49BE3FA0347CF24E7C89BAF56C8C376AE1E9568204D34D67FC196 +A380248F5F7C4DCA4A1AB06A04B309EA45653D1CB7231B90B4FBEF4BD42CE514 +8E2E8B29F7189FE0D4BEAE918F3B43E35DFDF3E388792697DDF193801C220F92 +14878C181A430FF6E45BFA39AF25EEE7CAD916AF093B9CFFF3DDC21C184C9124 +50DCE380331BA4ABC51615EE5D8441A99DF86E7BF7F4F19B865E66B2436238C2 +05B14615B9FADD984F27AD672FAF0AD31F3CC7F2ABFA021B56CC1B2283621D7F +3D46A5B576F5C3504555BA1C468685029B26DC46EC8C2071B8EB9B760218116F +1200912C057A90E5402A179F2CE4038057A8E54B86751CBD2C6F8FCB4C69B81B +83F3DE4BFF9AA2FDB171BB810200EA42792B05EE8604E044677CCEECF15A358A +6D9B701DAF00476083D7E55E62BDF3F1387A5765C889845BA3E641BFCD71BA0E +FFC60665EA8C7D1911675EB2AAE536E5981CF029D6044761F6AC4248B4DD0A85 +01455C630EA8B2FEDDC4ECD2E027CAA7E47CD79BA6590ABFE3D82563182ACE5F +26F28357151F0312297D4488AB58231EDAD7FD489E95ED6400E6C9E03ED38DCE +D8595FD2F0F24767A37905556DF8D9EA9F089E6255751DA6992A60954063C678 +0A5D0DD42AF1F80B7C41C28075ABD939AB3A0F6DC112020338A99EB84A014856 +86CC04EF6188FEC4340FC7724F9739E9BF73C80C90A98A4BFE80B440ED5BB438 +642E42FF7E89F7B7EC58FADEB7214E434723BB02264F53B0214DFE59BBC83093 +AA0097057E98511746178E03DD8016396A43CA64927852E3D9861C668F21F154 +4E638C756553C296724A240A89A859DE1890CB49909A2811CA7986436F225200 +A24D95F2ED54290D18669353307B572DC6669803A1FC4949AC98BF3A8F45BFB5 +024F2D915BDDF06338224565A9CD8CB62CF82CF9A610BC392B6F93AB77C10207 +D2C8B19311384F24598722F9B696D09272F8D6706CCC05401F995AB75AA569B6 +CAFAE547713D0F7BA5103FAFB49EF22CA8F00F055CD83E7D52E442EA02E581CA +D63F033B04D0A17BB868F8B54699D1CCB02E6143A0EFE51D2ABB47787AB8FF47 +08C6F40E3075D884212459C6D27DC1FFFC271547C1152EAF04B84479FE9FEF9B +EE08C93E676D71335A8E3751C29155B007398319845C28648410EDFB3F813E16 +648DA877C1E3EADC98DD86AC283210AFC93EA37CC2F783594DE6123338345A8E +E0B0EF884808520A08D611AB054EC0179769635EA058F2856281564D7EC944B1 +E2009223C277E6A0FC6158005511B081AF211EE4ECAB2CF1E1A7F12E6405D970 +EBE676CA582D1D69099DEA0FED70B3DC135B4F6BB07F45CBA6FBDB4418225E53 +8C9D8D83343E89075F5EAAEAB6F3F9CF07DFCD9B962A65F8E5AB88436BF64E3D +45BD2863327CCEB361EC854814F692C90E50531DD64039C230A6A9FE0071C240 +477F32573BD733E0DEE8A4F5B8BF91F528E8A014CFB8690DD38F18F77A31D381 +3FFB58E225C51FE22F794782F47EF717845F2D4F899C7F1323D614E16C7733BF +56AE6BA3F64F76691CA5A4833BC348A1E61CA45D557DA14428D1221FA8330AC2 +63BFC99EF7C10ADBFBFC2E8211676F375782CBDCB2E42C04E3ED3F1DA3AF6456 +E1F3CA3831A76F106E667F9E91865F8975FD450125C9EB1502D64929BFB8E89D +5313570AFC25B6FE29D40BCE62841432BB56EB8DFEC5E56EA980AF8A14F46FED +6BE897BAF99BD16EC9F360B9B976ED055189493B71486D921DF62EA1EC80DA59 +9184F48143580DF45B39230434930F24F928EAC244CAD6F9BF5528DCEEEFF00D +865999A09D5AD428839828542FA8FE12343741AD49384B9C069FBDB0831C6116 +9B250F1A80B8A883C5D2B3B78959EE59DE1CFFBC4EFFAFF00D29054A5911CEBE +02EC916BB486871FDACACD9F4BB11F629865683E164AE60471A6340C4308A3FE +3B2B5EC30A47C3FCD41E7BA921C341FE2DB804C2195EFD9817CD55AA40B796BF +F1833FCC9BA70E3A369E78E8AF00B974938842FD01B7ECAFC159A997FE183D49 +4EBD62F23805FED20C07398C16EAA2B2C822BA7A8048BADB860F1538363AC9D6 +7696EE9341D32AA35D91124EE5DCEAC78C8F28787EB15CF3E4F68CB4DB29E22F +72F6C86F41D02E5346CDEF765B7B097C8EDD95A5F9611B35D898DCF84D403B9C +082FEDFD718FAE8C7E66BB3E8D6817070CE96D322EE6880AA0CC336D1B5FD0E3 +3CCA75F5FB1507ECD236EB945506F442C105B236BD37E1C7C43CB9DA26F9D0FB +21C434FE2DE3BDFA26D24C4FCC92C1A8998026BDB99E910E615A5189A41081DE +B45DD711488E406853A5A013581A46DF8B9288C97C1AE272FE83AB5351D5C38F +ED668260EA8879EF78B4C92970F5F516904AC4A1A00EAF33C65CA58BA761AC62 +2EA8AA58FE0B5DEC627172D10DD0A55213B5F2404925368DCD3A257C29E84AD1 +386C6B61A5E15EF994AEAF8BF6853531B9436E94DDADAC273939DD770974B196 +CF4680521C166453070EFA5A968937157CAD1E44C4FC5F060A58A4B289F71E0A +7B6C57A9DE0839022947957AA9A1C98A74287704A56D2134BFCE5702C75743A1 +9EB312118BFF5A24E4FF1888ECEE4BECC76AE143C0B8F46598B144BC6FC56F4C +60915F5886B34D8B0E8770F45F08A49A1B5F33685187943C7B3EAE5F31C66313 +15532CC81E6B68697A78C0EA28694A184C9FC05A5C20CC812CACF7FF11B4B138 +F5B71737DEB70C29FAAE5CA8513697176088F976548B25494413A8E9A76EB90F +760875A07674C9E9886B199B3099B051B7D6BAF653662EFE131B5FAD9FFDCB5C +D1FBB4CDEB5D7E8002400221C12A9D9E4EBDAB441DD7633F7E773036AFC95EF5 +D66120A2E0DD954ABFE0C0A68306BF04D894FF7239C0727D31A47273D009FE3B +5BB0705A054BD4656A6FA42F3010A127B90553E52B30909144726492A9381FA2 +D444C8BA71E64046CA64B07041A32A2CD4E2DC961805C11F33D554529BBED98E +9B33E1A28F8FDC11342F692C47424F6E1F4059C474F38CCEE148B9BB0197602E +779D8721C358C413D885ACFDEFB9466A40768F3FBEE331237AA5651C685C892B +5CC6570CA4757961B6636831ECA0F8B87BE3549FE64C282F92BD7ADA0071AEA3 +37BE6580744556CEF3EDA3FBC4EB639ED805C1160DEE19259864EDA6D5958092 +060E1BBE06F336F9B31BC43A659B9224A277E39DAE4B1F4329D0578D921F431E +52D386C5C3C820C77B0614508AEC91C5BF1D9BC4BC86A0447DF2D2F8AED9616D +307713089224F1B957C12FC00B99594E3B7055A2E28E9E929720A9A8E40BC0AC +69332572834FC089732AB9257978765B08FD1933564A845F18148B481E89B057 +408A7366EEE0638C1B2A9C39C6C54F8DDB7817CE07AEC10D671EB0E1214231AA +D4743B196C108C4C08A13AB566167064AB08542DB96F22756F879171F49500C2 +CC2F349E947589A7119237DEFA4CB7D83522B1B066597E4C9CF54DE449335FEF +F104BA204536CA3D1F9C73EA6B21DE24A4633E8C4FD5A5026FB1A7687E22E6C1 +D5D4AF8B97E1BDA1B94A5B9CBCAF2550A9A909E205BEAB20B9C50F06EB219E9F +34BAD5A87B9D289C5F0228E28996554F6DBC2AB4E2B6673C79F5569843D01C9E +ECF3F8709EFC582D4B381136CF3EFF857D7E72529BF5E2B164936143663A1B48 +946531719C594B300DA573A543FA3813C8C501A9D40DE20885985399BC432FF8 +FDDA9AAF6701121CC345DA2CBC59C08B8DBC55042C8D7BD026B159A61E712E1C +BBA825B8DA3C2B95B40BA3B134DF7B43AE695E86255FA5EB839E2D73F12DCBEC +A349561889268551933B05EBEDA717EAE6F06D02F4B36052A66FC4ABAADEC307 +FF1D04E857F077C359419B32B4AD76E8E15929C11019F60055CAA3336A72D2E5 +046169FADF335767CC27E611C815D6B6DF63FE65E92A428C4351AFC8A18ACEE6 +9A16021B0A6188A69E24579291B94B09493CA7656DA2CD7661D66AEE53CB1F39 +B56EFDDF93A1E45B47724E41DB4205D1200CFCD7F510798D2EA69D685F8592F5 +59CBE379E1CBCDDEDA1B69FBBAFE27CEB5E868B2CE2113416A56856B2EC2B06C +5698FE079E7A564EEFD0487561C9049EF7D5DE455D3E2445D997DF463AEC9962 +91983B29F0773CA253CB694395FE40C7A582F443817A2DBA36F655B7864D8BE4 +02E67959A853734C237CC5C2AAEB4A8E0028DC3CC80D3BF33EA8DDAEB7ED807B +849BF7008A9B513D1958946B3105AF4F88FEE69EC2D3FF638042BC75D0876359 +AA48A4627A7B49F80E4E727703DEB6BAA91BDA86AE5CC081E2657740EF74D19A +425917974EF7A02C99A3FFF334625A47FC66EE11954463D6600A17ED4C028542 +25B42ADB4ACF269D70EBCCA996BD48AF33D63080218EF947F06F8CC552C9A6BD +C6F04A612DE0A010C16E27EDA16EAA18A7760E11E9873BB0EF9262F18A75D9EA +C932ED1B2FC469A51FDCB3692D818549BAA79C71FC44B61BCE2A53D14C9CD1B3 +69AA1D89B9BEFFB4D8C8D4CC21955C0BC8534A8D042A2892904AA055F13EFD67 +5747E1403BC46BF01EA715E0BE3C0B37FC5F13D9598FFEE4714DC6A4E85650AF +2902D1D4E796D3F9592975D46A86D4ACE66BD5B1E4895B24E34B9E7D5C4D3300 +6F55CEEF9DD439477DBE791957058A1BFF3D38510A8B1E8D692F82221C0D0228 +4F4E1A03F2CBE758744C4DC36BC0B3C1533E1AB95D2D5BAFA00555363CE9A004 +63422485CDB2BEB86B7BAA4DB298E92EDBA3B4CBE5DBCB63063E9CEF4190C3D6 +0DB8F69EC10ECF8C4350D1B42C3F463C91787BDB31D261AA410CA1F6033533B2 +7A95E93DACC191CDCA7B1B7E1BD2E7B169804610DDF6CBE34DC4B3669F9D55B8 +214ED5DE41244A94AEDF8B39312798C5CC828F8DA0799EF23F0E13B5C402119D +EC0E921DE7E75BFD5014A39D2820506253A21FC3F3DC447CE0ADFAF8AB10FED3 +202C5D70278D34189977217FEAE275E008BE2A9E46CD4E13586642088F523124 +089540F8F01858D08C9A11FD8478484519A21EEA38ECAACC578E6AFF2A78F0F2 +655E0D319A46AAA1AA99E374E08414CFBC44D28486B6BD2C8806D062834B5DD1 +7EF5AC689609C39ECD8878AC5033ED10E0124AA411C1D25C37E7DE50B54ACF35 +735C298A3C0B345FA3AB6C46E841B009890EB081211B28BD1BBA03E9F31528CC +992709DA92489200C8665A75BC8E80AD171B40042CCCA9C93A5C1D1196B2B5D5 +8422043C9E6FA5E03CBC0644D19F5DAA9DAE04D05B31B5252F16C538C76DA224 +B72B3FD6D176F819E31E7D3DF647E2D4999FE6A0DE6DF6DC47D17EC51B652DD5 +16B02507AE571FF88E0ED3D63F36691F13AC80D0F63AC8F58F8A66F6DB1D353D +F72592DD06C9E3B6642B88E3B9453AD8432E02EF88C5BFA8EBD9980E0D46B855 +BC68799E247A08C67F0553E9188FCEAE7175F58C41EAD02F1E04DBB79D433DC7 +C6EDEB9DAAD6B4B9EB4F58721FBA5678E67D28758503B8AF2F7D473969ACA8B3 +6D260178BBFB4E9085C76827CE47DB355BEA13D2F2EFE1FA920B455CBF179FFC +6332060F58DE7C7D9FCA742EB0F64D0BC20FF0C7A765ECA7433820D0AA0C416D +CE23B325E84440EE2576F50A9965537A2D8378AF8DA2DB25326B93F68807D6FE +251A45DBED45FE728E41AC313E09B1E98DDDE4534127DECDA30528589B23CABE +4D575F34346D0142B84AD90EE9C0C952BF67D04D706334D3BEE929AFE318F4E9 +42B5B7B9F5783ED140DD88C3CBA66FB93D605A16D0252822F78FCB375FE11CCB +A0BE6657101D19D38370AE8EE4C6CB3794B363E47536FFCBD994CECBC290E973 +1790E0C229E76B96F368D072A5411DBC3229305342B3654D962C496008320B46 +22FD094D0990BAF08FF7B8CD3B214C27E246BE731809425575B7B78FC6905EF7 +7F476C56DC2D466B3E37A8964E85F3E332599A6862C056CD8D6A6E5BE4A68D2F +BE01781FCB57630DA28784DD2C1ECA1B0F29D33EA21E1EC7D98753CC0B0DE8CE +2EBC01607F748CBF09BE6B304B6A7C8B20A4CCE1F21B70E9A72196619B2885F5 +3B5613FBB6AA7828EE0DE066DAA0F7B37584E69D3846E4CAB40F4C3363E7CC30 +F5C8497AF7F3CC55FF1E5E038185C219143116B1216E617CA3B4B2CD42E74283 +B405EC73C48682A684ED9C4C3C88D6C66595F801C53733B844B1FF523FEAE6DD +EFF36D20E721C0E2990EDB17BC7E7E6B47B44B6CFBAE1FC1EC2E37AF4EA714DF +2EE9258DB011C37A10167D70AE8E74941ED68BD2DC37A3A0CFE28993C9DB0149 +8C28EA049592F7FEF72BF3252CCCB4FE5D9E0395CC4A27E0AF50087CAE709C80 +E16198740B6C64682D60644CF6982E936026833D02357AFAF505BBB4399AF5B3 +9B571C9CBAB1CB76146F11DB9C67E171D02695507FB58C02AF64A3F9A3E44046 +215E511A29D9ED23A8DCE42E09F8AEC681D2BE52F45D126B05BF0774D61F8AAE +4F41599D4EA851F298FBBAF954DD2452740CE664E3AB4F0A3A1D23E3D7A1FF95 +A19E9F7C25618DF3FF44EA5130DD54CAD6771F05B8D8930F24CB7D51EC0FEA67 +A6F22E6C0ADC4A53ED2E67BEF5621FF6EC41A11BCFEDE3DFF1E55520432F60CB +F8DD4952BBB002F5BBE7B326CFFF9DC25A9FDBFF6DD130E12D453750B02CFB9D +A8F7DF6AC43C7BCFB5CBE8BEE5F43AFCBFE1DCFC843BEF122EC34136FF9604A2 +B187C515FE807F7501C0F79DD13A91E165B94E21F21F3EC5025979795A28D8EE +E8CF1F375E4072DB154BDF85D4A4DB6558C02F080607C5833A1234E63221E5EC +5198D3AA4E28734996C848D09B52B70D7014877C4B912431BCD6F322E71DBF12 +7ADCD2145D1E57AB7485F8424431724E17611AA60DBC04464FF1C1F0DF8A1798 +DBA973568222F20C665B28C93548C53FC4A80FA632845A15AB5EDDD225374A5E +E30CA81873184F97C0F359FB1633D9478DD42337023E6C31D3CF0BC861D5120D +ECA23E694C8920F87882A33EC2C796A816C32C8129151AE11F492142246E7760 +713FCE2AB36097A94D72BBEFC2437377995B71D79AF8ABA3C7DE20C23F80A9E7 +B596E2E89B18FFEF3E37771839E50C253D90E3AEF7BB4ABED3E92680242F1E85 +DBFFC65A6651FE8AF5306DB5BE81CE0678EC10D256B22869F66CE2AB8C64A7BA +D995D50787848CA545832F287EF1E894A6357A35CA5DF2E6CD14AD95400FE6E7 +CE4779C51FED4DB577E1133E2ACD0DE778F9F450777832650C685334E19449E8 +3388A7EDC1A2E8C45F11C10DF016A08A86EFD0417C0C368313C13C7CB6D860AC +6E3C4D2909609692CDC68CC32CD8F13DD25BF2E9FFF3798F8626849A475A4F8E +7D640B9AE1348ECE5AFA0CD99BA67E24211B729BE417329B705E0AD40D58A1B3 +60CA6264BE9A6BC3161A16DBC05025BE2365DADBE6C25A22E9503771B4E01844 +1737B8DB12AB27E665D176B23321BE58F4F60344746A140943A21BB8375FAD62 +D4880707D784D8B988AF4ADD547B5EA2130DAB02853A77B923BCCB1F2AF7F3E8 +CE9ED8CA8EE0764B91FE8E5EB90B0C17B107AF6A64FC51737FAC17A32FD0B699 +2AD0E4E5B9DD6F801ADBC455288F30774EA0F02618741F944B7E91828123EADD +4AC58810C5CB85EA6C4C52D2D613CD1E3138F8BDB1AF4950CE4F5336F7AD8703 +C0178F058CE9D7D762C3266F419E61B87FF82CD98E00D7650101A99921ADB106 +80BB85CBDE4E8BF9207852CCBE3E415E591B9AA7F51C630A6E818EFA57DF1EF3 +CC6133EE41523FEDB4761D52B2C2366C2188DCFDD17610FE2ECEB2BCE883590E +1DFBCA43E5C88EFB24788F19B1C893F3343331B8A03AB1076BC7C96F1DAFA16D +E4E2C5B0E12DB3115AD17D43453312DC576AF60E797F13DA12AB2BDDBF839F82 +FB4F4CCCEA3ED3A3C4C4CA336644E9CC92BD9173A222FE465954469BB637146C +6B98D3FB9952053804387743D390B807C5C16D6B26DEC3AA76EB39F6F520E0D8 +4D3CC188A9551F14B8C668988CC65134F561FA9ED6CCD6594F8E2B6DC8546C7F +6779095AA991D32FD25E5E7A133DBA1FCBD74BC7B0EAC0F718185FDE400C2C44 +8B59991C9C1DD018F3902727EC317F7B28D28ADAEEF244BC3B09E010C290C8D9 +0E83373E1EA2357EA3162D613396A11D1C38BE31430A9F883C87EBE445088684 +CD799FE721AC49AAEAC072130E8D2F2173C4E634CA6E69F5DC6E4E89E53E7C3C +FA380AFAF5115FB1000AA9A99791865EA1E194BBF52EB343933AE0A363697910 +1883D3BB3F2B5BCA74BF77AA0AE780748CC9DEB8F919594616FAF14CC038FB48 +6CDC991D5714E8CFAF29ED79F3D14B529CE8E3A72E8770C02C84221628AA110D +7D7F6FF3841D4A13E188538760F8C276B50C43FC3A5A440297582ADC8675B878 +90EF08FCA0A37F34C988401381B30225C18C5946D56866014A3FEB1BC623EF38 +3E7B0F8471CEB9022545F3D90F2F21057CE945980EE45965F7C6AACFB71A8FD0 +EE68B1078AC40E104ABF5FB58A5AE3DF8DFB99ACE094367928AAF1B85FBDE001 +FD299A2D3243D0D4E1F9BF5639BBD7A96D502C48A5932056DE708A7CB88A8CC5 +E352322A9E0E8ED6E05E963828E3D76B2ECEC872496754139B3697776C022DED +9FBB8B7BCA4C1BFC078B1B4BB7E3530FD2DC2FA1BE263801506F142B686C6879 +BB487A74B38968D07A02DFDD52AFD396E88CBB10933037B3211C57F25EE294E6 +EB777130AC311A0EE1FAF898ED8F7216070DA8C51892E04AC47E93A6D11B0364 +241AE3FB0674C4299EE3C4FD162F1E40E6425E3E11CA760A1AFB8D2E27CC70C5 +615BF53D9717E0332F020ABDBB793ECB04B7303F40685A0D8B29A4E2C6167BCD +AA4565873E4A7E1AC131303800BB7E84F79AA98B7E792B8157FA38292BCD8949 +5E15ACE436C8BE29834F524552D810D2FB67017734AD4C03C73BD7C9841CA31C +ACB7FB3464E39F61016235DA61ADA8710BCE5519767276D2242B757B3B0B5699 +935DAA1B4A0701AD24097B65D3769EA5E45508A6D2579A081F3173F0F32F1E28 +2EC97C05787A7BCADBEBC7A1E9504983E856E98145C3EA1296B9565998A60B37 +58BDA0A88ABF39136FD74EDD15DCF459489A567222871889DF6543CD1E90855B +ADC971A6640670D14D5A2C369EE753676755568A45CE78BEB75DE98FD6A6105C +81BD69680D82DBFC86A39F5EADEDF270D9757F982699F8A3ED83CD8F5E26374A +82CB21947A0DBB6D7A6FC4F6ADF6F8CE74B7895AEE7F0C951F6AC2DEABC3A5E2 +38EB6D4FB4CA828E7984B0758B60E93291FA65BDA41BDD1AD3C890860A1626F8 +CA0C11872CB7C9E628A78F2E7EAFA7BF167CCDEEBE829BD3BD1302C0E4E37870 +313601E5C5CF14454CA69B3B5F2A38DF8F352848ACEE5F1045004BDFC92F534C +6E00875001F682FBEEF952CD8DA111CA9DB3031DAB0D0D8A71F41AF4AE7E9BC8 +55BA6FF6FAC74294E1DC5F047600D3E9790A434F5AE586587E2355C6BC8F4122 +E46DA77C3BE64AC6535AEF02CA9A56C7D6A1525E565157FD5E981041BC4EF514 +CD2DFB705CFD64C9A237EB0C2EC52DE80DB36049C5921791852AA9761B870221 +75F9B6F780EA47027FEC5DC776DE29E6E446F8425969C2A1A772D0F80DB2ED3A +12B279D3CDE0A3FBD24BC2F2BC54D522EA256139EE9281C54924042C6EEC4564 +27B3EC40268A5A7CD4BA5D279A8AE7E20F3132D0AC3798367D6C65D20F3CF20F +E712E9D1C49EB2766BC242BA82FE2894B780773725B2BA465CE5EF5D246064DC +29797C23D1C37356A111BD205AFC8678BA8F2EC47B2A4EF8DA50D34F075DB648 +44B346FFE6E7DDDAABF4386BF3AB848D548B2CEDB7AE775C2274ABA1708EDB5E +3E67CDB15ACA37A8DE363BEDAB04E822A04436FBDA67C76A1A0BC48B71A1F3A9 +9EA7005A7F3939BA5B8C5272B7F11BA12CBE776981DDF6C614CE1A218973A98A +EB3147C5BEACC6D85C0218D399AB8E6EF8C7DA136FA18CC47DBB6C8F4CC905E4 +7EE6F5246B76FE94E16C95E92125BEE0E5977582FBC5321C4D1B50BFB6B8CB40 +6DA97DB9C7085D38A7371ACA81217AFE2066BE751EEA53269D66A21E9EB85A82 +F924B6908295B8D3C2CB66E32BF4BEC8E5F914FD03A0229BC6C22661CA09E790 +79FC30E2A564561EDF97155EC22B17FC8C0E24BF95EB84FED35F15729BA9E65E +EB7D617822F3759FC4BE5D26B8A81A86502CABCBEB2821F31C81289487A35B2C +6634F1915D079B2510CBAD6B8A8A310FFB89C3DBF54835E2440EF380D5CD044D +79C868C8E19833928C61A638C12B14764C2E1F3EBB7D53F6488CCA64BD46B121 +2EF4C820F77C36CD60881000957331905C3CAE890191646652584BDC25006454 +B7DD9D36CC5CE676CB05648FA49E0D4C40CF8A467DC3073F1BE6123231E4BFAA +29D020A47CFA392063172C2D39388118D2B97A4D0B0FE56E8F5C75D5DA0670A9 +8518B93771382B5C9CAB5171A9B7E7BE3EDA56FB6F46BCF1D8A8F55E5DEB25C3 +120AF42C35A47212F61223E0F5DD9EBBD071E0E454CEEAD5E1AED7FE401135FE +54FF2515FE7F2AC181F05681230F2ADFC21480178265377C0B863766F3A89EBA +D5FDA711B2F2F7D0AF305603E515611515C03CE0D497F7009B15FDD3CF7B9BBB +8774AF7295A5FB58326524CB2A5B2DACAEA5169D358F6DB97A059AF69368F85B +637689ABACE3C095B5B5ECBED19406A241F0968E82FFB4E8B2DD8895A7D05413 +35471E17B3121C46DFE1F3393302541C9589089632A939336ADD5B2CEC8DFA77 +31A2F8034EBB20A451830E33233330851DB80D558FE1945A08F977FD569A7097 +DDC256C3BB5E0335A4E9FF1F59E458A23F4A8CC81A4A545BD85F86CC1E7DBAED +BCF58249BE18C57546F2A2CA9BAEF5E8D0C5128307DE9698591DCBCFF4A45588 +3CD844FCF4D1B7D546D66B6E9A10F0475CF8A4425DB318762FB207AAD6A3AF2F +18F8B93F0922D3130F2F34E309B03F50AC68ABC8959061BB7B67C09A947D258A +5B5B318E80062317DEF35BD7ED949C408CC920CD22D36D7C6033DF960D539E2B +8EA682A180C37F04528FA5069858C80EF05FEE3158F8B16EA9C6D0008F27D0E4 +9301620F7B635E985141CBE37D546A349B9EB1F0C2EE079A0758FD2F034DEE63 +A77F4905E3202EBFCBF5D9AF53194AFE947CF122C02F0223FFCE52C30C13ECA7 +741D9FB2D337992C1200E011B9D2BE0292D632EA63AE091B937B00CA429CD6FB +D7E27B3C53133F3C860A0EFAC0C263822746022580664DA465C985EFA421D112 +25BD0B56DB824848F63412C8E26838415BE8840613DE90502764D49643990BF3 +913E895BC87FE2D45134910D9F2AED57E244FB907BA1EE1782EF6A1908D52EB8 +8A0E35712798D4AA803C95AA6A10E4A8F537C1A1B4BA4668D04DA0C3CB01EF27 +2D2FB81322FF42743B00A5B0A8D406DE4C93A10C73CA28FEA7E3D181886E708A +D9C71530EE481BDB0DC7D5635615D2EA224398D73AA957D193D8D310C85E8988 +4F34BBE83B0937CDB02C06F09FE30E9D32611D7BB552F8CAA973546B52B039D2 +13C8CD65DF3E9220E12C475B486DDC9D1AE4AF17AB2B8BEFA630187D3617B938 +41721617F7F316402A65DD78B644FE2D3EC762FEF2F33A9DE36076FFFF7EE562 +1E1A2AA33889B1371F37AB9D21782745B0638EBAE39A6A91573F271CD97B1F2A +F784155AC7B610456C284BB92C0F1B3BF42B112F0F069D15ADD414134EC80EAB +B4BF36A66A43F756B609A29029C1A9683204FEA9B86F461555D654FF76D6DDE2 +A4B043BFB9A74D49BCC0F7FF07AE0445B5000696547B96FFB3C200768DCD28CC +D168368EC0E5400710A8EB3320F0243E0F8A271FFE250A165AC3D0717EBE2572 +379F61940798C6BA81EB5B295150DE6AFE2CBDF32706C489203D1D0B99114063 +E3F46CC6F1E8D9885872A81C7D7ECE0E1D10B6A9C035557B9537EDC5D0012529 +4081E0FB641A94147642D1D1F09AC50BD39587C4FAAD1963151A42886F73CE86 +FF3E369046B5987DC6AC3FF490B2412614DAF252DF71C6382D9520EC24C6C80F +32038BB8EE6F1F0653D3FE87028748A822CAE716E3BD16B401D405F5C0ABB7CF +76209DFE817EC80AEFBB6AF4CDA68F1A9AEFC7093AD38E31106B54F878D34C36 +C05CFF435107489ACE0DC8F0669443BCBAD218BA35100DFC6967E8C5A5AE0FD4 +55A7B09E58547CDF8ECCF986BB4642E3DA6E5AAE8447CF15180CE44851BC5AB2 +AFDA9162E3F8EE5345A84AE8353F0ADB44AC1209AFF4D937B5B797B348429D95 +26AABACED222D29F01A36108B86F4B1B5BD8AA39DDCBFC834D684E3903F209ED +2573806438DAA3A2B46FCDB66AFF13047A4B1221D1759B6E69A80F09012F107F +154CB57D1FB3EBEDA7AA800F1A217B92A73A591A89DC43F2C58CC2D7A5CDF71D +1DAAC77CDF41C6B305DB18C3ABCB9B36DE8522EEC89DC3B7CCB35B0AA89D1C43 +9F67A1E01AD73F77BD202D4E2520E4CB014F8147E0C01A2528E674AE656F8E50 +73148827D3A5C9CEF2C3B7788A0914332687E1468DE710546C7FB46E9D9BEE25 +E6ABAB831ACE7B5B8CA4339C98476ABB2B51D6394C6C8DD3A394588828CD7FDC +4194B1EE61CDC06B1057E8BC62594F8F223167CA500F4FADDEEDCBC99778B482 +56DA1E7B5C09D1A6EBC77D7B527419A6235438CCCD2112D5536B80E3FB85839C +DAE6F186D3099AED4817EFA52B7F568F6940CA90EB18F12E17B1E6942A12438A +0E134923AE5F9ED242551FF8A746218BD100E7499EF45C0C873BE6AFBCFB2B21 +0D1355A6849EB0A3EDA9A5F7C7A1A42E1AE72CB34B7597D3EA0ED9348C49DE6D +CBD1F63D6FAE6E7D46CF0D67C4201CDF6BAD0E1EBB264644B90C4B0F670DD266 +2DFCD60C2B28F1CF139D373675F6F30799E4B355229AEA6486DED99CF690C0EF +A4DADA7E0E0AAD1CA0C6FB2F6FDC6E988EBAFCFD7A49DCB0AE7391EE980DEE6B +7E63947C86B0B274A510814E5153EA73DFA9341796C27F88F76ADCEC27438B5E +52E6A675FFECCF216D46716944628AF91F663E10A973F38507293C0D170B1F46 +5DB5158FE0288C667934D6F9574BA49DF45293D460A24A8DC1DC391ECBCF74DE +109B067AE2E26EF0B7E2D94D3B70C712A92531D9CB97FB8300D047FC81DFFC50 +C86A58A7322DD04647D972236BD4B9170EF93C2C1E6779F26285B7C594244684 +BA6C28A87ED95CB5AFEDD99E7035DB8AA7D50A1FDBC56507F2DB7A83E569F69F +97BC7B84626E6C5BFD743D5B333447BDD19B1D5E8581978E6184174D46652F64 +132CC85A954F7006FDB2E82A61E3625A18C067F82CEF40ED7574BE9C2688B25C +DC95E3203506A0A9CBB17125086E0F1098E3B79176E11BA65F055706568E9319 +4572DD5CAB0E4C50984910FEE5818FF78F92C2054A1B7C556135836E902BA3A2 +596AE6A0D4355F8CFF05DBBF3FA66B8A7AEDE8337A2026893E03E65BD561E68D +DA32592C403464C7CCAD732FC4F3E827891B4CC9D8D1C3D9829513A93A6B355B +B89DF9194143FC8AB686B945D6E6FE3FA7C5096AF68CF78D2CC516D36BA30374 +AFEA624B77D557F06DAD638DCA11ABD1839850FFE5CD135E28B939659F815DBB +465A8D53C87C8EDF1E9FEAAC316DB62E887D0F04ABE77F9A337855FB33E744E7 +373316512D9BEF04FBB2995E8AA887FCE7F0F7BDAB71C0CEA58E944D58AEE590 +E4DD89CEDA2EA32D8D99DDBD44567C9485F4BBA3540428CEFA9AC0F6BB177AE2 +6150A53365D9AA500F78DE6C04D5BD49B655A927FA217CD2DB0381CED30C03F2 +2912F274AFD2D3A219A71331FFB90DF76E0C24A157090BB8B3A9233E89E4AAF6 +3DB1591D03AA5200F0C73F534A1EB4484BFB861F323BE67330F9BAE3401FAA3D +AC07A2CD5D10816C4A88E4B31E6DC79D757062DF3B506DABE5BD33B319B7AB11 +B92BA9C1C4C3B40CE4A6020E7A6363D879ED0884E550BB5AFF11F7328B25237F +7CF530A97DC7EC462519E6D3EA80D32752FC08132F30DB72592F4520F10CEEF8 +185123CEF67B82E8604380D41BC0CC65BCE6DE08EEAAB28AF3D3311E405579AF +01077188CC85297C76D9341C4002C123C8F00362FF6478BFC4D1B7CABD23330F +77B2706BEDB00F3FA8C33BF5F21211AD68FF3AC9B4C34F6738F2D41A6BB8CBB7 +8AB0806A424C01997D029B9A3338BE99CF8FE6C39EA2FA98FB7BCFD7774085D6 +35BBABB6698D60C171CF51895DEE35F2C56694698A8301E86E93B19D02C3B5AB +D2DB7BBE132843259C816E8795A19FAA736C0EAC5C487CB6312AE9E0748CD117 +3CC93892BC103760CAD3E1BB7BB548A78DA576C742DAA725DAB163826914F029 +30FAAEA08463BFE61B6CF30EE8F3DBBB6656D451A7D3DC90F1DC7DE683B0A0AF +934E0587FC22B99D4ABE58B46919818D09F74389CFE25A3DF25B3ED6C21C3EB1 +538B282139B25CF35733F5840023E64C1662D2201F2875F0F08246A76ADB344F +530B619148A2BF8F7C6554EDCEAFE8498BD27518E2C7910EF47E5F9A85D4D8F4 +D9ACE62FBFE34477E0ADB4BEAAC4FAE1DB32E022F1C9AFF04979EC82C9988493 +D4A6FA585A2827A7399D8EE9E358376E67B9C9EFBA4ED3F30C98C4A2098C7441 +BA86101856C3A60E1D0B1842162748E15163076C1300B1A59A8EDFF026986451 +9856D5DB23DD10046A42824F3953C87A67EE2D2F3EE62E8CD1512A4D18D9ADA2 +46EC9F0A186AC7783791EDC690F34D6308C7477C2FB5006E5254312AF4AB964D +870E218598F552C0F26D7A1299982A0578090B984C1F11BB5D0C3A5386BDB016 +0BD5D2EDB71D3FB791FF33423C6B527FDFEA50DB07C4AA8F65B9AE2D7079EB58 +EDBFFFE5805D5E4D2D5DBE66F3B5F2EC864F69356976E51873EFD945DC5D33D4 +17842941F2861E93908852528BC23BD6FF56CF9094F9C80AFE957FA18225229B +149DC5C15F421799834DEA3260EC1D93CD18C4A75D20DD24CB58BDA9185A8199 +ACD6562679E296B37051DE676E374163601F79685390D147A8CAEFDAF22D0BFC +1858984471FF1690EA5916654BFBE10174B3CCC84F89805E609A61AC9C5CF960 +5BE2ECCD12E5DAE53FC55B77CDD2A9BA3592A007431F576C5DADF36D5C1427AD +6189B8F415FAA1E38F4D04F2E8C6386E25C3BF311761D95F8688B68B5BBC1FB7 +D91400CD00EAD6BF646785E094D3ECFB8100BA65B665D6F5E8E35D2F5C3B3A57 +DF49B89D9151ECFF486567D35132F830E59CF04B8F38F00E9BD8EC4149591B0B +26E4F598D58FB3315151A810C7109C8A77E9FDE6C0BF8C551437BFACB42464FE +842F6792EF99F600C66D1204F8FE6288F1F8259A8358B4CA21C1B82DFB5AA997 +9FD878D6864CA660BD89DBAE38ADF821769D9DFFDDB4946F2DAB422F33458D0B +999FE26D8023866BF38CC544129513D2B37665176E8B0F15C3554B699B59E1B5 +9EB0CB8A0CF137AF32A805821D2F5EF806D9DDE968CEA58B1DADFAF0BE960B68 +E124580F7C3BC4089D9865D0971CC45CE74868C8122CAE43B57E58A5A862D5B5 +751016CDCEC16222435B5E823F121DFF1D88245E745FD51F4E971DA916E6C8DB +CC1B15755F72F5692A2C47AD1967E812F21563CF2A0F8274289BF22405AB8158 +73B8BB9AAAF846691CF20B058B800FE1C75D8FC586FBF3BE85F1B87073565DBE +FC1DD2D7C3006FD775C2349DDF659D05224178173E8A7AF73F982C90750F8356 +BD2BC9AFA1DB2007B89D6387A97BA32AD4FC4BF559EA5FD2DC6412E8B460B251 +8A1CD242CE0BD3CE22A7F97834BBD4475E231794036D0040A8EAE9ACADFAAABD +83EA88CBF0BB9CD0C3C60F5379FEA1FF57255DFA6CD97042BCC0C9CFF68E71B9 +59E6080A165B650DE75BC264B113A3D00EB5BCAA2F4E7B2F5BAC3162CF23BA3B +E4C2D2AD908ABE5C63729DF4CAABB6B2987483B8BB39AB836B05E30B2AF3211A +65CD7280C50427159F00E27094F7DF1482A0F5C11ACD1FA25174C78BC44084FA +B83A8153875B85D1DED601875334A8F20819A018D1F05EE6D840331DE4CF5EA1 +9C1778E223D44F8F85D20C5D8B5B6EC8CC1773B7072122BDF4C41E0F66FD50D3 +0993E010D9DE243826BF3791DF41EF81B077C095BAF5A84D44AE4EF6AC3B5396 +32712CD96F96C4951D991765C2A80D4BBCFDCCBD87EC0677787C5DA8EA93F859 +8A0F9B2B2FDCEA5A22F19F0050EC0A6A4A1F164DE87F1F29B6D49A58D71EDB77 +A1E4D554685156F111E288F0CA0919364B7378DF77BBD2FF9EB451E106AF3279 +7982AA2A5A87C95D170F2CD52A37EE49193CCFFD6ADEDBB09A355B76C351DD5D +1A345EF1AEB6AE1E0F97F775214137797E433D351A6DB5B7111643C283D24181 +D0E270296D43E11375325C95765C3C5665260A6DDFAF7DF22D248190C525946F +B6B0ECF3175CB05B3FB54AA3629F910573037B8FA53F85FBCF6C702E36293661 +55E05060813F639DECA4E473CEC7B7542AF0ABC91F1A51B07EA37BBA4FF366F2 +88689B2414C8F2CC0E18C630B2DA735AAB8180F58A551535C34ABD8CCB1093F5 +D933E742D3B702572F06EBE5D60DA7AEE103E825868D663044338ADB3C9D1899 +D9974325D740DB84212971625B8E379471C5C90AADCF0A9AEB1D2D0C092373EE +25F02A57DBC7E2973CCA7A6BDD71B32D81E970731F6B46436EC5DF7971150881 +90B48748B0C9E9BF661E3BF9BF428254095BE013C649C2E99CBE108437E64185 +EE4EA13FAAF2C823049C9EDF27B5558B3D94E21A246CAC4EADBE7E31AA3BAF46 +15EBBEBA067037F1FD1EDC9F9488AC031AEAC11EE61D9ACAFDCFCB2451B7D944 +89F148028EE70BF5550474B8C34474A38404E53B10C0B770619502A2DB4138B2 +4BA812344D3D86C1DD1FDFC25507CA39CC10BA327B7188B30177D2B49DA94740 +8FC3EF502B0B535BDF4A81DCC8B0FB99E9117351523E1ABFA0C2879EBA5B374D +3CEE4C80264717EC5073908F8E60B704457C3F0C1D32A1B61E6F25D08C36C051 +2EA798E6BE78EDBAE978E9F41D87446F0D3F724F1BA22895465D091BFD8B6E7D +BB3D4EFC2E8D59FEA35263C964529F9E0F1CDB2AC0DCA9BA134461602D22AC2A +CFEE36E15CF4CE30D74BB5A98A96AB6D31E3D418797B2EBBBF0ABA03F20DDED0 +B437CF69A1066F5EDAD9C21DC18BC390E0DE088B82EEFC23BE67EC5EDD0BFAB4 +FBED26930AE2185C1FAF80B9596416522B0B615227330FA99659A375F261FFDC +FCA94B360DFF79BAA8E856DDCDFC95DFA4F0778A4F4BD99BC43EF344CCE1FA95 +F0E7C74A0E38AFAF9AF2F7A4613E8ECE116018437555CD00451A28946AE8196D +3CE6273620A0EB981DF43395E52FD05DE06C76AB5E8148BEE6A6AA07C945943A +06C90FE2F5EFA4EF1B6DE6BFEDB6B673460D4B55452EF438AA0ACF7E9DACF826 +BF1C7EFD78F501EF65D3A77750464EA1C36BAE51DFDB1F6ACFFDAB646297889D +EF18491F4BFAA9C2255D6D66D6E975C56436FA1291424C3A3FFB833285EB6118 +FE8AFE03F16A8C99DEAD2E987B97B9B6F5DEAEEB3418FBD95B0E0F8062D8B445 +7AF2917A3E50C1FD2CD917A4DCA5CEB841A393F12716FB067C4C431D3738C4CC +616FEAE739955EBBF2388AA113249FDD3CB65614972EA2ECA678858EF2FD5A95 +D0161F05EBB9F859D155E7FF70B567BE42FDEF8AC8FD584BD6F3848121E02397 +DA00A73E52025070CF6D6C44CA0FFAAAA6EDB678306A3CE8D469F94B4511E4F3 +3581CA8695A0E5BB64116D8DD899837931DBA3862B69B38FFB6CCBF1D6199DFA +4801D1007F9E4CF391406F0AB61352D6053A2C3A38BA40BDB894EB7EBC2DAB34 +BE2E082037DC7BCBCF8DED1852250412F6ECB9BEC20A04FC012D2F97159A979B +71E19442DBA788E65CBE9ECE846FD307CE7103323FD49AC37565FD450B5B4662 +4381EBEBB98186F7C6DFDAA22AD161B30A48D6C8B233158A1EC56BE74188ED67 +DD8937011B01FB6F690B6EFA7C9416561682ED59D6067CF28827291915878663 +A2CF19D86B2AAD2476F03A1786D6072E9E14321CB4643C3586D8D3378E12CCE7 +EEAC5BF5478783F5600A46BD929BF75E254F5B9991ECE829CC0DA99C2DE73C8E +A1438CFEC618F8239FCBFBA63C3CC68EF3C84D492EF39E428A4EF041FC7A034F +8DBF169C96C7AAD7EF572EA9D8E7995AE9B5820918604E0245A58196E870C92C +A4269B9F06A7945D516A8C1F571D2C658A9A95D02935628CF61C7E8E099E96A9 +A0CD9F497056AC91DBD40D589F463DFC63B665107EEDE9A7702B9002A4839612 +FD9B2CF0ED8B9E899B8A311435081E387998496097F860C70B0856217D31077F +0628139533B6B19973D86231548E6D47E7167B1475063B8970391B9D1622D8F1 +CB1B46509E78AED81B437787B47B8711712239D43F2ADE009EF927548DF663D2 +21E2CB3AEA75D642BA7BB2DA3AE9191BBB1534EA87AF0C8BD688A01C8AEFD429 +59453063E34CD9378EF7DC4517E5007FF110C2AE71504E3BDCD9EBA1694C4785 +5A4022233893F25684FB1B5FB3967FDCDA0E19CBDFBA7F4AD16E91B798F38A0D +0D9382A1A371236BEC93664BA5C5F96BF93FECF823D8F11D2BA4BD28396FEBE5 +5A65BFDA938F6D476F3D850A6A9E0576E82C72F0177076866FED31245B67B7D4 +2C09118B904D86972671B7F202EFA9FD9510419FC9589352E6004237B6140EE9 +5677B11B6F16C881CC0678BFC2A47F6F4EB7B86D424A28AF414D5D14AE8EB2B8 +CFBE634D951E20AF1C2E5461075CE0120C4C28AB55B3D1C7FA2C8DF5FDA22888 +3F91696288A283879D31036F9A7B0F1627BD7D3B1830DC3EA77BD4BEEBB66CDE +AB448B52C9B7E44DC1121A01CD198D6C53E84117BB796508B053D85567C8DD3F +2BA6C3EED05EF6CCC6FF9A6BFB1860B6E302982DDE2068781C15473CC0BA8C30 +10C7D99F3CCA2F31CBF0994DB5746F78021809AB116E7686907AF69AE07269C6 +3633795268FE168619CC3BD6CEEBCE16566E581FF7E2EED20253155807B7CC5F +E3C3CEB9B6610CAE9A6CB710B84DC00E6E7D4F53A0F82FA4E9C9240578DAD3BE +6FBC79391DBE1F06569C0D0DF69CEEB4C47C1C839041B828D6B8260C29009FAC +3A166A6D04B47E4EC4C57EFFAD93596D486FB21E8CCAE06BB3BC4CB8E191B3C3 +5925792FFD99715ADFAF58605AEC477934BB2DA781713B740D3ECFB6903B9D0F +BF0DDE2FBBC352312FECF74430C923C9E634CC8887973B949AD5232B0F674D52 +6500120AD24310F078117DCBC671F4C7885313A5F5579A639127C830A4BCD859 +832EAF9236FE60F0BBE3DE38F19E55F7CEF8D3CDB218A63A387A8B4F2B12380D +09D39DBFE2D8C471047B36549DF83B517DD57EADD7B34476DA3974DFEE987759 +AA1E2EB8F835BE740FDB2DB6D5118E9082302065CB6E91A2F3C7B5657F12F842 +89B702DEAEB322FF63C34FDF5293CFAED441F7692B5FA225EDCF155BF3105E48 +7E6A3A99F68C20F5499CB9B26B5D7E915175F17B6D9D2B012906BFE07EA38F28 +EBEDD8E34246A7C6184FEE0E4CC01F5C6F8970DDCF67D3F7AF3E64E2E0EC0F85 +363953AE8A29969D71357EB11AC7E21DE2BE5723E8416A639ECFEA20D0042D72 +87E92A6EF2027C1C8ADF7788A169E06F50268D1AD9012DCB7965F9173C4995A4 +C1264D0AFF2A649B8DB2F0EE7CB5F74E0FFF03AB75E2A32BE4B1D4261EA69B5A +7D0A4625CF33D5B9B13439BA2ABB30AB399211A7FAEACA25C721845795FCE18E +C752871F1D5B2E8F42FB13E785ADF1612802979C374F124F1FB8F85D328F3A09 +1987C577078D35BBD1892C84DAA254000DE099F7220375BA244025221D83AE07 +767160AEB66FD0D8A9D1D29A68836F837C8149C2402C6E42C7AA1E51DB4701C8 +FF47C9D9B89191E914C0B5E2D464201C987856B5C8347CB567E86F2B040B6B4F +15A09258EDC942844D997873259392890204CFCF0DDC475E846658E161204272 +2BD48A1032E05D73F49CF87C0B4AB361E0A8087D5BCBE2F1F4068B635BBFEA3A +6595BEF5DF4F34F0375C89AC1F42D264C16E61B4861250873B67ABF0CA8CA846 +ED91961EF609560C74746062DCAF92A8EC4010BC9FCD79D7DBA48753F02363A6 +1A6BE1BC087E48C334DADA1F21C5BEB5C169517D1ECA54FB284C9919532BEFFA +884961384205AC450A6329C27678C7AB2AE0BBDB3378F9F3CC026C48413B13D5 +EF8C2AEC6F34C44B7BA04D71971C62BE351560798D2FCA419BD75ED389044AC9 +E62AE8B3EBA2CB0826DFFD5D6270DD802CEE51E7C137217EB34094B44846EDBA +0FA5BDEAFE7DE979FAB20CF48B28543AF71AE789D3CD910BA237E6D292C9DBDD +078EE3101F557D5403ED2F73BA84E97541BAE26673D53250FBD8B67B16CE6682 +CCF3EB4DA7889B718063CED7EF8D4B97E12EF318DE2E0C9F5B439B85B038D979 +B442A57E96C0E0D3CFF2352361978F71ED74CF86738D0F8AD77ACD20CB9B305D +52DA163086C39FD967DE099AF9798F59006DD0BCC8508410C13A626838192AD2 +EA130256AD24CFE5A1605C1F679CB7D030D76945370A7C2E6B045608CFE10D55 +19C6C9A84788ADF3EEB12D9742E04CD0E4633FAD0EE1DBE291C13EF093FB4C8A +1BD8693178646959C4C9EEEA2EDCFBA5F31896B86636933A6F7DC43BA8196F28 +5487F3259CB21448E37B1708CEB1E1651C53BEAF0D09A17741E2B1B7870B431B +9AF492A59351A536E15167D5F5E26BE73D66405775B956653D2B5B23A0B29D43 +24A5507583E35056011CB334A7FA08FC5BFB50819FC146515A069EBFD291C5FC +E0AE26EA930F5DE0934EE1986AFC357FFEBF99CA22AD12086542E2DA9C2F3157 +39F1D7E591F392304DC264337262594A64B6EF4F9741D034B2C291AD19B7F13A +4EBFE6A338443914BC6B81625C7140C817D39436B6AC4C2908603CC8D4642E52 +CA7A0B9CD1D230BE607A5FE89771E21B897F0BFB8C7A1315B554A4F036F8F50B +4DB04A6FB17F9D6F86CA00F8621E2216683BD2BC4668091700BE1EDBF9377C7E +A94482C1251D227466ACB8BCE5AED8578F0A4CBF78BA3D909D9096B2CC7E48E7 +E346355C3455C20A80A93F1492C285C427581C7D10A5459FA997C96F9F51ABA4 +7D28A48CC9E59B8D8476F6A3AC1CBA05DEE690F33E5A75C2290CFBA105FE38F9 +1EB9E309AF3F7A1A44273B2BD0FFEEBEA9ECA9F60E4008F83ACD56078C698C8C +95BDA63B876CD63990B23F1EF7E4B6FCAFE47C62EE9AEF014071117FC1851F61 +2514BEB09DE651B7AEF1716B7D4C49609F125050559DCC289D410CD59B4AB0ED +554449BF070327E9822A863430F59444AD4B6B91C88A7DC58FF1701EB2CA81D7 +2DBA5B749716E09CCD9CB8DCF747546F24967985F4CC7B052FCE186DF5976864 +F465517D8F479192285345CF7401073D5DBB5878EC2C6DCD11E94A0649CB320A +61CDB0D6A0AE01F4CEDA46094F100F58B7F7BD9A1C40610B5B2C08193B3CB9AE +AD7BE2796D9B40A9602282EF0DF395FC8A27CE9B880C73A7AA7B9498324669B9 +9BCA199EBF63D883FDB77ED213A8FD450633D1DD9AAE6534E3672F4795F49713 +72C1D053F5BFFA6093FDAC3F7527426740B53193DBFA84375E2F697ECCC2AF76 +C8CA746B032C293989FB9ED210703244493EA7C3A01CADDF218D3FB543DFA5BD +0296333039C5AE67AF1D3FB1491E54B4631B65806A30B279AF8F82A8222BEDED +44A451B84EB62FF653AE3C3C1FAE373FDFCF5EC38F6736518BB69B250797FA03 +6D4843E535F9BB28830230482FC058A1001E061552B4E00386F048883BEB18AB +0F1799221D3AB37963487BDBD9B298500606512C282DAF37BAD73D5402252F47 +8F30C91E42B4A5D2F2DB3E750D3189CE6613EC3DD73B055C +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFBX1440 +%!FontType1-1.0: SFBX1440 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich <vvv@vsu.ru>. +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecbx1440, tcbx1440, labx1440, lbbx1440, lcbx1440, rxbx1440. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Bold Extended) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Bold) def +end readonly def +/FontName /SFBX1440 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-218 -316 1652 915}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6B55C6E47AD7A9A958A6E22E00FDD4D6492D53ADDC90ECD778346C06747 +57609FE8907DFFFED75E2CF963A64C7F72488F4A02372BE681E9BBF09A9CE5A9 +3894F6358C244FCD46C148F1EB60DE2137E6D3079D6AE03B3724F7D7BBA47BC4 +41C27FFFDFF9FB7B7738A8D88C27573A53E244723E07C995948DED2516B6044E +ADED62C496A56BC14483D307884467ADE985655A4712DD06ED00811F9A05BF9F +BF2AC66203817289FFB5BDCD0445293981AF6F55928C132E885ED009DE1B5FB0 +C230370EB5156A8B609E466F00F768F0A52ABCFBFCE3514C0FDDE31E601AD508 +2666AD26D9DB386B9FEC80AC197C9FE7447928C0C6A2858375F0A1D7AD3BE53C +9A926DDFBAC60D846783AA97CB86F804701BF53F7C4D18B925FD604F60231215 +EBDF4FAD73F2D13518E1901C3DA00ACE65647765106EFCA89D1D9F9948B28E5C +88B31806AF1433ACB13EE555D069E50649D3C93032500DE92DCEF42B7487E4A4 +1ABF7F6C8F177A4CF5776AFDE02721C8B9F69A7CA769B2466EB4501A7E5683FC +58FFB0982039E9154719C1C110840B2DC207902F8EE3E83464C763A03C52F60D +D7194DA5888BCAFEECA5C0AC8DE6DCA956F1D0E6AABAB6E20F7B64BBC9871543 +D62E73F596D732C3A412E916A3EDADAC745BED5D2176C14AF05DC28DBEF5C944 +FDFFD52D98A35990F8D5FE21D5DCF5C9900FAFFB698C14E56B6667CF8734534D +8698ABFC9B4BE68E86CC30704F0CE920EF1B2B0F3A73E6FB24B20F9702ED522D +C0854E870B8B81B62B48650AA5E74D2F06FC2BB2E06DAE38B8F0D829E2240B76 +CB76085648CBE820C02A50638D84251325835B79D82034373114FA691B029ED3 +7E265B00258A76B193EC155C0A4DE5338B95073EFD9CE428E8C7D9F8CA3819F6 +59291A239C1CBB8629179F79B794CC64ADDCC520647C90B2AC97E3129FFE6A47 +71E86300F2FB20F2CE0D6482A2F94630EBE822C060B15F1B57B51C82D4AC05CE +B552810FFF3EABE30E288BF601AE1003C0DCB4B555167DB1E6F4004684B76258 +726C1DE83C45C8CFF7EB05B68EEF717FB397BEC159B148060F15EC1B9269A780 +56FBBFA94D7E8333173E4BA3BFE2854107F555F08E9105A080F1DC512EDC2A15 +A74776E3A18FAB7C1F64921B8A976D7E279395659E0886ADFECDBFF558F1E4CA +70E9A40AEA239D0DA342BBCD975C13315C3951A6527B3BB9AD87064C0B4A3C2E +FE1FE92EF6EFE9DDA2D709D94E00EF85C03F169FF99CCABCE91F2140BA287866 +E237994F72E705AA7185CEB4BE424923A196FF49955CE55BE7066690E780E3B8 +76EACEA86F719D6327C049905B70F9F72252A06126C8B4A56669AE182EF98465 +4059FA3C23B13593FE6A5DB1C5C2E7B9BA528C4E0CB9D1B93019A8E265824344 +86947FDEE9A49733A27ED7F51ADE0FD2A113DD2612350DEBB93EFEDAF6F39C6F +ABA7F3D9349EDAE7EEFC31F9D510418FF169EE4D6B05905B96130EE6FA2DB817 +49EE49A4F4C49FDAF4F61073438D53D676F5D5ADA65791E20C3E433BE062BF8B +9D022DE963F8DDA6A8CA1A304AA20C31A589D07090EDDB762A308F74E12C8424 +24E029E5AA85A8D7039EB206F025EE75EF233DF666CBD0FE4F0C4106E016CCBC +73C481D62BE2CD71103CC54D60E4E66AF7CC62795466A3E7B1A94AB4E7D377F6 +B7BB47F307D72302B8F94274D83EF5C41C3C5F8114B46CCA0E57EB32802E5416 +2EED9743461D2D1A76E3AEEDCBB9185700010921FBE9A3BF6AFBF1942787A468 +FA39B093E080B08F124A61528B5C6434FFEF6D68C98B9F1C3F5C60ED024F57E8 +2DD0F836312FA51F866D49187B3E2A2915E0454A4AA688165089897077D8C442 +3D10F8A2CE50554183F312A7BC87D5C3EE7287DA937B474209957BD46971F5F6 +EF5B5ED47CD8B004B57C3F8810014C31481600E2BD4D7B418A019F3A92B7D92D +3BE4E7795410423165EB84744390FF2A6C0A69DB32F2039182AAB2696F59551E +A794895BA40F8AD7CEA83C899387E2A5C860D9EAD6AB9E2498BF607FC96D2ECF +92AD53351FA9A291FC9CC8C8B191298B1DE626D05C96A5EAC0693CE5DF610DBA +35BE10A0BDC92DE2D075CC9EA0B352F70D344305DE698B13F0EE51BB8C838848 +058B25DCA0273105F11543E86C215CE9B0DB507A58B5B98FC3BB678BEBCDFB46 +C68793400B20E042BA55E2A3356EAB836DAC4800C97EEA153A44CF4C4C0FA45C +5EB8C4C9824EF4E9CF895B8BF91443591A8845AA3D9E7850037241E18CC0FDE3 +14BC8E0ABDFEAD85B5A4BA814CA2B258558D55DB22566FCB135A4E492B3816CD +777C55A00BCE19F67E919617D5FE5382E07A0335AC8324405024951654F4D037 +DF90A94D5F72455ED72162D199CCC38215CE324D0488F9574E6263837E6C89C6 +B147D972BE838A53674134236CBBB25691DEE7635631DA60F55432929A1C0816 +9CB9C24E2062F345A33653C64546E560F1515876812BF0CDBB53AF8F8017D43C +472CC042D06C6CF00D11367B38D977823C021047D0CA9A4CCCB636E923D56791 +014712DD21E2AC4B36F2C44A99FEE02231973454E506A7EDA19FF225BA338890 +C5E4C89C600A19B44DAFBD70D9D22EB3E9292F3ED47688F7DDC03516C5EE15BD +E294CC18F968DCA42CEE062184CEFC151AC9B70B321CE632A9134E57DC364AEF +8D56EBB2809C91FF3FD1322AA99B6390DD9AA79B27397F787290D7FF8C677705 +7D96CFB98975BCEA1293C2D4F168426A80EB406A67AB1E075F05481E39E7D0C8 +B621DCD49E8597360265F1D80A2EEE072875ADA58EE90965EB0E987C0B3B7917 +BA23FE14C2AADE06B13BD007E3776FE26688D3AE88D250DC6A85C3FF736F7D09 +6DC25761E86AFDE134B1223D2A02F6922A1E6C0928734867CF629CE465DA20E5 +5FA2C6A6B1F946BCB7EF85045B2B1E29781C91E02F43C1D0E4C1A6F0FC474330 +D5548FC854AF646F86F1A125516E25FD221A20181680F53ED87DD09D744CBD3C +6576252E726D201916D593A35C00F1073FEBD4D4A0A76151A9471489A27E9CF6 +405EE4C86F34E7E66D3F9AF497C0E16231807435E72A74B9B5C4BA8889012BF8 +40FD65270EF8EB3A1425BDC5BCF4C85CCF00A1D59BA4667982D2224354EF7FE3 +F3841E13D4F36E015D90333A175C8D8DE89E25D510AB158618CFA2D579FC5C30 +27341ECBD768AE5844558FC1C5B080C962D5D7BDEACB02BDCF20465A8A79F72C +444B2D7915D902725939390051529D3A80BC3FBEFCE09EE1974F6CA604752952 +32BF2BBDD15216C57251A94A2E7348F3DFB5B8FA36670B1438E6A168F565A5CD +E781D8908FEC9886FA4B0072557C5EC4D1F91FB39541B8757874D2BE4842AA01 +2D8F4F735C79C8251FAF27472437EB991C97AB40F7A50968EF23A47A2494352A +4EBBE0BE0ACA51F2AF6CE3C6EC2110159D662590BA16F111B283D212732D8DAE +5A86550E0FC62990F3A8774A6880960BF2869E3CB846CC82BA6CA3B20B1E56A4 +6BDA417FE127C21585D66F95FAF7D1E9752C8D3B41E0A123FBBDE22F8187AF34 +646FEBD88F13134F93BF24ACB6FAAEAE69863F1B01521E754D9086BFA198297E +D08DD57201859FB92EA58FD6661205683F9BC9C74EE0BC58AC36C802A06B3A54 +5B9D3778C5DE154C7D677AD25547888AA4DA562C245D9611D6B9A0F43D1D2724 +3FCA3AC2A85AE8B0F4C743CCAA43EFD1439B4E4F0634451D086A7F44262EEDB1 +754D92D4FCF6767209C3DD2C4E988752AF6C7189714F48484F0C032E3F0B911B +A2946D40D26538C0A2FE6FF83B554B290734A845FEAB6923FA5B4BAAFB29F046 +14DDA7052FF516185055E36717092CA78B984ADD80D97CF969EBB7BE3D9AF57B +7CC30B6CE0F4A20B0352B2CB4C6D9B48624A4E81527F6BEB58814CAA58557A3B +331EA44FA926093CEB9775B5F46CB4228D472AE283F5507F6A97549A6281584F +024023060F377820DA5991797492318B4A7FB9BDB94221EF653D3B19FD733028 +1523A24D3FE3D8A87EC7D1C2012EFA8553B0ECA1E53FA0604F07F199DF340E05 +78AF13C8BB4B01F056552345D69417AF66307EA431D1DD4AC2CE36F0C62099F2 +29A909F8C89D2FD614D0A1C73129BA80F98D57358C5A6A2BE8F779FBFEC09764 +D216BE0194193F12F5586AD94A9B7A7F52C5226042107AAEEDC19442FBDD8350 +3D108C1D2A535C76F2015EACCDA0533E943977A5952997A76EE71BD8315FD944 +2C290FABA1C9270D3BA6137B67316819E3C86A6D4BC4D1CA6AB363C5B025F48C +20EA921AF6B8A0FE01D023CDFD9F2FF79929CAA374AA5BD5B16A244B6353F10B +AE5F4A5D720BBACB948F8A484DB1BA09AADF05EF93D978075598F37DF29454BB +F727ABA4802F0818924031DEBDAA8BACC3A9198798B7A3A82E3FEFCD34A540C8 +FB9616F9CFCB7E8EA5467758F590CF4C75851E8ACA14E5FD6BA44209BF5E3A4B +A9E7582D800DA6B4E644F5AFF9BDE1D94746B56099CF4C69DD98887B0558D80F +6AB73672D36BFF375543122059CCD4972FDD5A13226B636F31A9670EB8ED6BB2 +F154C62CC43CFC0992B53CED0B6E1698FDBA922439D31B485997AF2FA2172F2F +A52264F8F41A202FCFFF3D4F59EE2B52D2DF34CB3032D235AC8D305F677FF348 +E8ED022BC8896E1F0D19DA566E1A005AA9FF5890A3EF59251992896E2DACB179 +2DA8AA542CF25DC62707F8197943268BF6C4EE974A29E11E616206524AE42399 +5F527A2F37D55A4BA4FB7C83E095AE14BC3576B74813C32CAAE86DA2CCA4CA4B +67BDF25AD0563924032DB576103CE40DDC83CCF7770E6E7C59C4558FA322B3B7 +2F00014A634554C3C0157825F1BE1F15AA3302B07DB3D998AA3DF32558EBA96C +17EE5BFD98C6F798796C3B32AD100A7AABBF9CEDB3F956010D4F44273492DDC4 +3003C0E99AD88DCA692BB289A3160110CD44E8B9911569BBE5859C5D5E32E767 +BF3B2DCE86D087063159E197F46AAE7CE33A000E9606C7FFAE669141EEC6706E +FB1092E65F6D8D4DA45DE6FBF64947CFB2BE1DA039D5234B380545252B0FCF63 +F4D1AC55E1D63AD86FF3B1EDE08D8E0531224B173C3D95DDEEBEF6C21F32802E +7B644F74737BB4D418C8D726BD0069D63A29995C8F1A10B2C2DD83360B845F8F +777B7AB59559AC79BDA3CF37ECD8E5A8A722A37AA9E2BBAFD0DFF297412F05BE +0ED66AD153091804325EDBBB42CB75B6B0387037465E8326ACE6F0EE58D3E084 +1829EEF6296BD35F40ECD773CC32F9177051B66626037F2EF8F72D3E8810F44C +1F90A29F713C4B6784C28130E159196D62685E0BB74FA8D305566BAB9535BCEC +11888D480C4FFBAA2913871A921E3786DE1A12257A2F80BFB32FBF06EF866BDC +2078EDA35B3EF74B76F7BC2334609D8770C72038D2441924CC860D5D6ADE6ABA +C1A2B9F1957D2BC023287E0586C1DE490362FAF9F6F9DC2727A6C59FB2B5D964 +FE2285E31989960E6FF2AE617BD0942BCA05F9EC6EDDC6AEA463308DCF934F95 +47239ECB8F2E788BEBF2316DB4434CF4778BA8A08F81174FFBC7909AF179689B +20B21F6CC7A175FEABDA80C9F12A93F017BA002DC0100066E149089669FC652E +DC347D8345AD1FDCAFB9194886DE76368C58A3A0E2B7EE5C291BF7DC9D492ED2 +034880F94B19FBAFCC9140BA35F609878F63563690FB6616CF4F561C0F16F1B4 +0123114AF5F6119F3E31DF844B80FD932ECA2B1FEFDE6DF002F020CE5552EDD5 +96640576111071F9842E588E8A53FFE7F6E0C73B532238190F81728C8E84AA50 +34CA2A83C89317C2C12E0849D0730493F2B71BCF385A9A7F1371490BD74E5555 +4E8CF3E58A1F64F68659A329118D5AE4A04B529CC5FF1D10005BAD9127E3DF9F +89CD1DF2EFBC61DE2167A4EAC0BBB553D2E25F739057AE5FF0400536C96ED9B1 +3E2D62C6373B30B200B46E02CE575D7548424E8A62509515B1F8D4A203B55606 +3CABDEECA106FFADFC82AD0F108B53BA73F703D0EFA348DE07C687E6AA0A1A6E +8D7EABA86EC05EB9182E8CE99206EC7058C6E834DB285C80DB394CBBC16C8D8C +BF96C549535FF126795B4815AA6C81BB02BDAC98F463F9F2DB713F617DB098BC +D2C0A21B60BE57B6E9FC564DCEF51473A34B1180C87FDB21B1106FC1AB1434BE +0F486BEBD3ECCB35189CDD7CDE672342B98C8B6DF5674D6A259A56F4C16261D6 +2BF54A98653BC12D34082E154839D2D146296AA6AB6EE175A70D1B7E169CC492 +0ED7DD0EA7E721B24437AAD1B71850694AE73296A0548CD56785013A5C6A7C57 +8242F9C073D5C913A9DC12FE9C7A00AE3900BB5282962120BAAAE8825552418B +A6EF605546465D1D51CF44DEBB3177037AF0A01B8533E61CE4EDBF519D72A09A +9F65D4BE9EA9D8BE9CEABA2FA6652BAE2A60CC8E3DB2F96FD40D8CEFA73AB0C9 +2DE2D075CC9EA0B352F70D3443024DB75306E86948992EA2F55881B9BC5D665D +E316B46FA1C7B9BD37D974AC8B12D710E9F234815612041D65F7AB542C1FFFE3 +D303687A70056A21792FC0CAA7A490C010EF2354760171613751436F61169344 +F16D65F08323792D55018D00466D467D451A5EA9CDAA07C11E9848171A2060E1 +F47F0B7609CC7E46B115C9D6D6FBE5DB269D6C785041CF4C252DBB92F6103E5C +F27544A9A4DA9C733CBAA2104C13D509344199297288159243942BDB4B57EF7E +58F7B026929CA4D6209472C58851280518BBF10BC64AA63302CAECCC09C46AB1 +192DCEF6D7E7BD3D0CA4E480D6327B3A5608D50778A51145669DA65C070D9E60 +E0A797E0EFBF9FCA57130803563596ECE28F6C40CD614F18EAA944673BADB4E7 +20E5D872AAAA47A65D325F70930E8D7DA817AB20E2F5767F2497968B6F19CAE5 +CA70E18DDBED0789AC6FA67A329BFF8DC7D9233840841431FD101E684692AB6A +20102DE05AE4CF51C7AF1347F5A1C8768CBEE53402787A22BF5DA37F4B3EEAA7 +2C0E4537AA133EECCB6D285EAB4720FCF2FC99376EBBE20F6354928D3870F6E3 +07F7EEFB23493FFC0733B474B943DF0EA5ACCE8ADF6D1AEA39EE9FDC2A1223CA +6D6776B9E4A7AA577DBB49F1DC54CC0994D3927A26BCFC59BEE455F29C564B60 +FA5C65BF595737280992EA0CA133296F5544899E9BC19773B1F7C9FA10B3A52A +D51618595AB6D1FC6EAD553A520F2676A88DB50E260794595C7AFA244C9DB0E9 +9A3098954BBC19648EBDD8C739C68E778FCEB19755D84E02F4D57224CD9813AF +1D7FCCE72138258FE2EADCC25BFDFC9F6BC27D09621A5C5E9822E8CCF89283F2 +26681393A95422DC7897E3FD02939B72BE23C90B0192438832D2963055947FC1 +067D5EBBCC34A8424B1B7F820C3863CDA8AC53C3E9B70C22F4B2BE684B749A1D +5F47814A253DA746B96C3013D38EFB1B705ACD02BED2868524C4B7F7EBE4C9A8 +1AC251A26EF66A325D2590889763C0BB94D94C79362041DC8E6923B21CC19F58 +1EC026DE5DB104A8F2391DB2EC4704E4C7DB807BBCF3CC3A51C28763E7D96C7E +879EB79905E020B6A3F62B37E30213275A6BB5ADEA1F68825054C17452983D4D +DF9CF1A646DAF4C199AD347F880CF434F9D47FEFD2A56C190D816C4CFCD5941E +1ACF6A13BABB9017E6E32546DA2CBB3D700532353A0A09EAFD6CD4620F24BB20 +6B04189D3793748591978319C613B7CF53983E67FC1E1E54A9DEF9CE726F3EF4 +25D14BB8004C5D0272CFD969120081D57AF688617314B6294A8BD979D0E18AC3 +194C8A46D164857F29AC8DC0F34527ECA7D071B372032A0A2203C66B672C3C04 +B87D64AA24788C2DD47F3EEA2CAF5D87C2BF5A1360D3887EA695AC8D1190BA07 +19EE75F37FE348A344A81F1C9434AB91F771A43E794647CF42873A11216F1AB9 +FDAB2AB6C754BA721FCA3CDC3DD7E469B37CE1EB1D1369A4F7D86AF87683EB1C +5E2D089DEC3F27752170482765960AA313ACE31F06B8DF8A8717C41296075286 +EC52EC611FED9B67011D26A5B089D2FA6D5F95637897D9F07AC6BDC79702571F +5CD690DF2B3904A6D968D66BA2F252EAF13ED8DFED86DE9A50266375C4A16CA4 +5AD99C6F46F4FEA9D490254D0B8B890E332E065FC825D15C8042ABAE0FE6B7FF +C9E74AB677EF964F1B2C75F19ADCA0383AA86B2CE30AD8442D0D5BE930B51F65 +5D426F0258AD3AF3762B10F34C6E09398C197F4AED4B02C50A9C7BEC3EB7D8AF +04516D0A58BF46BDD0B08A487186EBD24ECEE90D6B327A49AAB860397BC02A2F +6319B8DC5410786F5F980817FB5C3DFD8EC23ABB784AE1B93C6BA9E500D12BD0 +9D01776436F2979F3EE368F0F87EBA74FFAC047CB1E113C4BB90C43C27E56990 +C6266654BE466F7F65FF8022545893B42918ACD45660016B2865C0D3E47B18B2 +A77609A5D2B18E3AA351B5A5BDB53A9752A2F8ACF2221AD60D8B22DB6384862E +6B822DB60B75370E3098DB08BE8A70B0B58FA824CB1132A858400E64626B6B18 +23B60F897C57D8C0C83854D45F2EE5368A9E6D98EE5C2FFADAA076D0238E90CE +57E74E9D32600C3B7ED4086C8FCC3A8318A9302FCF2021B83E6DA70C0C99CA2C +AC35CEE42814C9CB5EE2434F6D77319964639CAB6F918B521D4937B828C2FBC5 +D75A7FC59B06C2972A7A2C21BD5F26752BA385333CEAE62B18F8B7C2226896C5 +6FD93713226D0A59D3F62D908AD571BB330A7A81EA1D38E208A7DA5DBC09AD0D +8549341C97D75B3BFE1026819B52AAAD08987E79FF608A2575B8B4447857A30E +F5E29C75198B3502927A6357657E1EFA718B04F89D0C92DE6592FEC3A7904B25 +E8F13FFB675BDD72726715B7672296E2823BC2C72D57F5D625228E8899862082 +5E5DEB864CA08B2D4F08E7A6707AB7328908FFF44A8B6B3FD5F4AE9C33C6CE5B +1CA3D4F3A0DD6BC7FDA232425F6BC550EBC6F4D7157AC2B3C51C3B43EDB59353 +C3AD6E4ED6FF8D4B2054A8A2DCF72D6E53197F7BF6793C6C5F94E518AD693D9B +D825BA5E2E148DB8135259BE7A2B30104B9B29ED568DF576EE7F9745A93A475E +BFCEC10B11EE0303EBF47707ECA0EA73E1EA8C244C6F1FB0B2D4971F24421D15 +82EA2143BD718FBC25D1458F1D6454D0B1E18027FC4E025334A0B67127E4A11B +C3DE5341C6E2DC7689796749F1D31ED0007E952D15DC23F217A218623BF9A149 +3D6BBC92804715D15EAB09AA2066A46A548EC53C567618F86E1B2D41867F2125 +00FCF22375719E96286C44547C33373105AE0E871939D02873061B41E8800AB0 +0ACB4C4E8426E4A1D3745B85CF550FE0561561626D33617426738916FCE32FD0 +C0D0726F542EE02E1853473BBB13471F941EC4348F8A47251F5B90A8BD181B01 +D12E148B3C4F22C866D8A0180E5676683D488BD2B13810A80AC610FA22DA7709 +42EB0D3F839A019200746DA3FCE6BD16E0B71E4D72FC1ED751488FBCBC196D14 +CE1D4DBF68F87FF65D712369BE1FB27F04E1BF56BD94EE5A645BBA7813F98DBD +D94794794A08724F976D788157F92E6A39E5CDDB2C2BD14323C7511828EEDE84 +4A1F915890069ECFF80A655017ACF73F4900B22B2EA07EDD6AA349720177E3F5 +B4555EBD9C95B09208872E72AFBD70D9D22EB3E9292F3A8000D5EBC6BDC8417D +C9736A3A5009F8ADED7347DC1B49DA9005744BBF9CD44C4946901986D81A6703 +A43E43A8491373352251F2CC97EE45B95F25469CFC69F443133F64D3FE06D833 +6A7F8C73AC819FCD5879179D17CB5100F73620FC5E9646094C740B89626C2CA6 +A8D35E94283B20AF70088E031574FBC64F7EBB0D1CF4D0983BA3E2095F15EF46 +277703A7262419F77B452D11BCF43C8A30F8927D223D5752A6F6A7A22B1E79D2 +E6258C0A799F5D5F71E41E7FF4731BB6385AF7AC4A31660EE294C4EFFEF96961 +62D5E63BED7A26EBCC92748B548A1D0CE72227D78A20B22F15AF23BB70DB99A5 +79EC88E8BA13A7B8DBB6040E07D6CF5DFE97F0350980004263CC8877906845D2 +43DC0167B40150C337CD600BCEEA49E2AE83C19E45C3C94DF43F771986154128 +FF270D5C81BDA1A9E1302F69FD2FA841F2A90B208F4F0C823FEA1A509E8C911E +20C54625CC9E12C44829209E67A14CF35A06A1EEE241876108A66876E209818D +0CE088754032317DBACBF1F0E7E89F92C55E0DDB42EC76756BAF902B8D65A3C1 +83E6C3DFE282FDC5512B75228E70132B4B5FF051501F581F21AE095296988C32 +170ADEE55684051D476A5230FAFDEFA9CDDF1BA46083F1DAC8EA472D0BE425CB +951677D71E6B6C1C3405C4E97763B354C220227D765CDEDD65CD119F97268907 +AC9E31BEF927E571D90AF7E77D6924521843A12A491E774EB8849FA1775336E9 +A76DF04E27D2A8C4365BD1E7D40BFED18F51EC704293A2D38CC6490326117E11 +1B592701C02026181F8FB67C9AEF7F5F87F0ECA8AEC7F5FFFF60D2D3A2CF45C1 +8D1DE6E4357CD98F9CF0363000573026FD572C2591DADEBAC1ADA3DC26D77EA9 +BD91B1E6E6B7159D03943C0FEC7288B07A530E4E2AA8EB94830D582DAA0E393C +9CBBCC3304D5EBD32BFC296E9E2EC7D26069399999CF1CAF479526CEE1A51AF1 +286DB7DCE087C6E8F683B4D637C70514A3FE524F1D370B28DB6C7E6757E74C40 +3966D0FC1770164273B023CE921B27A0F732EEF21AF015CD502F8FAEB4AFA2DE +7A4F86CB3511004549A91A4D01D469B990F68784D5D76AECE35F32AE20D6FBE5 +5A867B35C3486D00A5941DAEC733E34F7EC597F9E51B8ADF515DCF95E1C1BCC3 +2B6E3D6C1D8D72028B38DD56DD19DB4920F0B8EDA4236F2140E3C7246BEFCA59 +058620D20DC9E964094F9572C6947FFE7F8A67E78A412846AAF99F6432BF22BD +8E38168FD327996198CA0BD62025B18894A854816928A70877FACFCBE01B479D +35FC6543A55AAE8B8E5DDE11742F3526336D19861EFDF62604F4459A725888D5 +40FF922F2E230880F9B4732D92BF326C93EF78A741F33C05B536E8A261D42541 +141BED166EA9972F0DA7E17EAD1438FBF0BD10A5EAE4F3AA6154776C04921FFE +C808630E4959DFCBF48583D0F506A80F6CE267095F20E0157EDE32F7306FC510 +9E9B82D49241BA31AA6FD2A3147460D6652EE135F41F3D4DF71C8733A6BDED1F +A6599D85EB7D3520187287FCFB9DE9652139BCFF47D5FF7EA0C9299D8264EF75 +B074C0D09FF870058252DCB98F0B82A22191BBF5E844D33992B77FD5465C5F86 +2365912A6F1A096B83DEE05DA44B14F667B66958B8607BCB4A3CD42FDFA83E04 +0D218B2ABF7415F0C8C7C42C5BE575F35FA041022BC39F96901E870F2A99727F +422B9DE8019687B6DA4FE510CBA51D8EFF47001442E1881576241C445EB8A775 +28DB431CC384CC3056213447475CB38C7A634F0F59DA5E42054ED0BFAF257293 +D1C97721CCD5B23C889833A9F19277013D89DC6BB13F37C3902F0EA39A778405 +729FA64B31BA789C5F12B6186491AC8F8E86E7ED3B5537732964C054592F4504 +28E8EF8D5806C643A8DD9562843B44CF9E118F8AE0E11915A9AC3A3E28660653 +E130D1B67B2952D41647F8AAB650AA5D6961A855BA0A223B94F37DB212B481BC +86FEADCEAF1B833AFDB4BBAFBB02C101F62C24FA2BDD8BB304DD76E088EB464D +DE4EAF62DA53E442A214481C40C737920F27AD208D73660A5E192DC2FD59AFE2 +BA5E3C41EC046CC3AF9BE96507102DE80EA9FE08D50A1618AF6D25ABA53D20CA +08E41336016AAFA30970124211829E7332C090BF144C4DF8A023A37D8C7CED05 +7A56657DE220EC3C7A4495E79EA70AB1288DEBCE8AAE26FC92FDB92492DC9FF9 +3B5B17B5785482A577FF8B9D7CA04798EB5270B89D4C10114DEA1E2280D53137 +2163C947A4585876A5FE591ECF97AAE832AE56F29DD74CADC12D2B0A1236A9A2 +3271148BE4C58BE707FD277A265473BFAF99632083D34FBF011B53CB86D76754 +EFCCB35F92C8E0FE3E1345C0B29C55D4AFEE09D23E4FA1D036E199AE43740CE4 +C68F4E30ED050A4DF59C547C662B898F653305C0A3A0EB26BEC9D164FABD6E0D +CEEDC405D5F4209598D1BF46C9D0986C34C08358A2C0AE6B18BC3B645F2882D0 +AA9A795BED8C35342DF7E95C56007922C46FE8971B81C555C9877459E17F88BD +1AC0D43F1AA6550592055A9B44EF7FDC49297465AF931B313168B5E91FEA3E81 +108B19009B3A8AC756F0843AA6CEB0C54FD6770499060FC8F91369FF3E6B4DC5 +A089CB7A1CD5A3E4CD9AF2A396F2F3C6AA6CC767360DB84D20BF831737E6C856 +B07350100C49C8F660952474944B025266C0705E278A51FB608112267C75E02B +E4192A75D90F43FF3340E34526A6639C45A949627DC528813437A0B89250FD36 +D0605470D52C1CF767595670D82F5E017BCA5A3E256F7339C0CFD82F9975D946 +F5C0721154CC2FC7E68C5434949A65C90F6C30E58DE3AE6D6062FF81CB388A15 +FAD5C938189870AB14F58909271C4BA31B68DC43875B3416729E4144860F483D +2CCA10261512EF7EFEE399F8DFB0D5F1B6381728B0445301771208D54EEF81B8 +C90E71F6DA858BB65821D74880A8B9D20BC2925DEC67311DBA920DCDA36F0BC8 +06F4206253C2DA56406FB0D0E5F67CAAA56F5F5AF989A1D8B01FAECB1596066A +358E0E25A0732B430D997E287E5C3D2929125EFB9B17F2D3ABC27D05B79BE843 +4DBE405F44ABB8C1529CD42158ED6F9E16660C8C03A111BD9BD87A1BE4D3CA0B +358B5E56BE56A6A7AF5936425746D90F6B7C040356E13E3986298B5F78F50FB7 +AA073453B24D191F700286BB68AAAE6D77E1529AAAA00D86FE40526E96273134 +E283864A2170296053C539A9D5870507804E1E2865C1F737A7BE978579C9829E +4B339205283CE90F6427F402AD9A67EADE1C6C34415FC36307D8A1A2A86A51D3 +98662F45140B3DB6E751F508634C04D9C36103A31288689D9A1CCE52D495FDA5 +57D1F221A883E6A86931370FF1C57833575EAA34BC2EB5039799BAB1D6B99860 +716466C2D0C37F3373021F966AF6EAA5DB28498FD290D0114241D47C520180CB +454D1F3BEC6F63AD2BCDA34F7503A6265C8AC3115688FB738B09E180F55C8935 +5A821A9FA5A598353C7EEF9A2C5428275184B22D22E0F60C0A0C1D1C43AE5F03 +01A06C16AB8144034EC715D55C8882930890FF5C1FB93E4AAA49D99D2C147C27 +EB3220A36FA8F9A611CE125A9831E1BD8A1409BC845D9FF89CE952EAC659EF8E +B2509CFA7CD4D5E918E1538E5F46D118F048C61334358D515339099932CE5476 +4556B808C39169EA6C55C5EDE0699EB9218B431353C15FAA6F7B4261C1333D9C +213A5625F088728150E0A2C212DAD07FDA7694AED68F9FA3ED9BEF89C393A15C +A7FBD8764F3B8165F1D5BEE6EA025DB8DE272269316208385F8BD4BFDA5D2D44 +27BF42005B10DFF2CA1C1701AECC58B5FD92E0D3EE02A8EA64170AC5F9A9A995 +5142860A85181C11CB1CB494AE4C7D41C3B93D94A7D5C8038529CB996463A2DD +0036C9CA06029A725F7F84530D75D9E1072D4D4BCCBDC25A56E4B7681BC2BE97 +B7151637D8B786A2B7FDF83ABAAF6D7A9042CE0AE98F7C3781CC2F8901E947B9 +6B4D31E8D6D5E8F7F66D11B3BC666376C284EC24C9D1D083F76C56D0221FFF60 +AA585F1C4FDE0541624C7D92EFFEBA06DAD2BF6148B60BCC727F901724AD97E0 +61B6C512E9D49917F01C5AA51EE291BA98527840293EB33C1C4257740B261FFC +C47F6BE71B96FA40713C2AE046AE59FB6653E874E1787E50F3CF3F625B87308D +D7D777588AFBD43F9038A3EC5210029FB97BA9CB2E5038BA520005A88CD39230 +CC2FA8D7EF81D7B872925482A267B4E0A71AC8A6025EE6E12A9AFDCEBCA19848 +81D91D8393DED88F3D182E922AE2A122A36D71C766EAC46F4B4C4022093CE906 +E54F4678628C782D4DACD64B60E411CF9FF433F53312C44D5E96101DFCFF50A7 +5DDCCA88D2BC7B7B97874A2179E9EB0381D66D058BE17FECD3BC681BA215ABA1 +5D2F7777624B250F7A9E77E98C2F07DFE6869C459C2392CC420B43C6861BD4EF +1EC66FF22F8337966F12D57691B4B85CE075FA01DB14F5613DDA0C47222A397B +BCA1AEC22D912D45893081D52B8E639E82956EEAF9797953DEDB23C805F59669 +20B9EB86E852C109F5D74891C295A4FE101038EC8D7CED573FD57E8EBEF4ED07 +0BD79563058F8653B31CC2BB74C92AC1A71F9537A854D3848E5B49B1C0AAE1F2 +A93C4ABBC0B93523D9F15DF7FD8C17AE5C2620A5BBB996C90D0A556D73ECBF08 +1EB27E2E40002C3205A1255A8E343EB23944236E551BED8AEFAAB5AE6016D941 +47F28C20CEB75AD6AF5FE7C52CD35133B97F3DBE73F5B14393C47A79E7B97B72 +638761994F100F98117860AD354A8BF649FB4ED2F640D9972ED5F152BD242CC5 +B02E3F967012DF37335ED9CD7011A15DC9333C10CE70D23A90373D4EA3F4ACE5 +EEFD0D203E01E164FE2634052ED21D0F948033FCA14776DCC03B779611E4B6E9 +1882518BC17AA8EF1CBAE9775E4F3DE0D556CD5D4A726F74D2930C1F354F5726 +4C15C7AD6CD21FB9C73B029888C8905DF2A02603E0306AB7AD095FE32595B2F9 +E65F068F498CDE2290ACDEE596993FF175FB8620931A3C680419B9CB7F8FD2D8 +33755466D111342F692C47424F6E1F4059C474F7CA53DE4C8F6EE60210F1ADE9 +83F653DD92E2C15A595D19EE15F60AC88518D2E33F83E83C303CA49A5C39F295 +D7D147B0AC82510AC0DFFDD6F8390A175066AF343CFFE077DBB0DD27F9B41AEC +19DD3115141F83FFE2575FC2676122F9ADC83E22555C164BB3A8122FCA8876DB +CC17324EE79571B219B385E5454C121D84A767D398EA0C5F34CF5783AF410B76 +991CF963530BED15BD9149141587FEAF5770DCC8A32C9FC7518B524263D56FE2 +9FC4876E46194F9BCB692B3A7FFFEB22CFBEC8405A8286DEA6533EFA1DBEB4DE +ADD8F906C7334F8CDD21060D35F24B66D53E3C4D2C37E9A6127C76F77F2A35EA +7D7BBB05C8BA583DD9A269D4B38CEDA90AFAE002A19B4EE957E47D5B75C2B3C5 +1C3B43EBDB21D843F29DE2CA844E6E1C6218C453A82F70A6C8848C67F2E63A79 +A37EC8F5AC92611404E5268DC2F1A70C0ED29B4BD7FF380B7544C88247386091 +B97D303A0733B90BD95C13228B9AF937E995DE25B164F92ECAD1B62B9C8623A4 +340C904D5178CC9EBDB7971E6839758EAB6FAB286A3524FCFB9E4735FBA867ED +FFE39A045F3841E352111EB5CF018CE47819A335D93508D544A070C12B251168 +6ABBE6D30D803DF8C414D751106EF919AA9CA0F59D9208A5085721D1A09931E9 +ED5A6CC3EAB277162366D2EDD758AB2F3175CFAE2312D2AE49E1E87614A9035E +7D8ADE1137E73AC45E6F9506369E8E8645AB4DBBE8388DBD8AF05BF0B8E4DFB2 +332F353941875FF0566E52F8B65FBCAAFC7EA12342B90C8D927DF8FEE42F4556 +0883B5A3B4D6FE2BF837D27982CC1133B810916A7AE03EFD3F47D393CDB4386D +F2FFB814E1A0E71BBCC475BA8BC06953FA5C8AF351C911935428ED22ABEF3822 +BBC0466F8151BFB286EF8275EFE5022D585805DD9838C5C286885BD5B17E6FE6 +9970133A14BC5CAC9AB898C57569EB8C39D367CFD48C7BD62F4D3D8EE1D306C0 +9D5BD8A615C1AAA83E8FEA614CA16688B07D6BE1DF5DC925E6C50D9EC45195EA +4A41EB8E78E6F68AED4CC8E4733788DA2636CA7EA16B5EDE02A53172B7D2FF25 +2DEDBBC24F63F407ED3A2BE7DB640FE0D2B5580AB196B1076F266483B8C867AF +2D6FAFB2A57DCEA9747723965BBFF9ADFBA707E5220277AE0937E0D3C3425402 +77D26CC49FB0E6B6301422543F0E771136153514EAA879E7F0B684E456BC80BC +0DFE56DEF44A300335D0703BBC2FCE8D020E555E6236DFD5243F9546BAF6E281 +BB02AA4A7562A64F902547069E8F4431148F69B40EA3E5BFEFB5881319F7AAC5 +EC4E0D04E7F5BEA1C0AC4932A5F654E1F944636D1F0A3B15C5702DCB79A765DC +EF6A50455566931C6FE5513D47CA245099A74DF9D29AE42FB802BF39752F7BE6 +BD64BE142E903C737091B799071AD3407D5AD671CC46D0B3D4FF116C73301F59 +B5AE136C368A2C7E38243846F12B91D1B0C15C1B10A90143231CDF75D63B04C6 +160F0CEA97D14C2E4D2CEC832D600437B3DB129E8196DC52965FF723B9E56881 +ECE08B6A933F02A7B755312E119B22530A22EB11E55111543027CF23A6620EE0 +45C29D0A1CEFBD8FF7C5D624B0655B73A98A39CCD624DCB0649B7328EFBB2606 +21A92EA19C1344CAF6F5A5D91D45AA9832FCCC5A41CF3B12DD35015FE337027A +AABFE5E503DBB9D4ECF793FC16B81EE8A12CF6EE2136877E9C2D4FD9B87AAEFC +97ED41FB430770C73FE1E61A47C73C9A99117DFF5DCE9A459F0286042ED80AE4 +C211364DBB9683475F6ED9F7793858CB5FF0A1F564E7AFE6C32351C12221FF5A +C4DDF536F4EDD1F3DAEA3D24AF7FF4ED05D3731759FFFC0F7E0A0FDC3161EB03 +0829C04E5B450B055CD784DAC694A4AA4C0D49C29C1346628CA40CE09357C127 +3147D5EFD093623F22F1DBECC416C1BD43DEA0D128AFD923A3939203D77C5ECB +49FEFB8D74EECE5FEE601D0E666EC8E4063A7BC2BD910C0C87314FC298428208 +16F61BF02FCC8193C050AEC765768A7640EBB3B873BFC4BDF0905CC7CAC4CA9C +CBF035E2A2B469CE530BA8EB46B1005255BEAB3A63FDE2070F840A7802A9FFD9 +5FB0035BA885A201C9A3343499A503624BB1D0F0AFA77133E13CFA4C0830CC48 +D8BD18A5525590F4C56A9F29B6EA82DA0786DE33D1919DD855EC6B588C2339CD +BC635FC1AB2ABB867B15E64840DCE1AA53373BE1722DF73AFF158125FCD6F66C +8FF756B566126D8320252E2244A82710082B7142B9BEADA2ABB8EF5DD7EF7998 +9BA81DB5C9CCF2FE8C3271385D29E5D4EF28FEC6854626A9D0A128C16E16F63E +E6D4E78C5745321549A0011C4B48A4DF9B463C5BCF1E1230D8D9B7E9905911A9 +0EE492CCAAD3CECB9C051BEA22C3839E3319274936057F666376A65F78060089 +BB721072E7F5DF2BC13134B6A3F95EFA914E404098FF8D2C69AAFBAE692AB402 +2C270E9F70B8265D39966B8F336C39C7A901E9E48058318C260AD2ECDF4316CE +6CA9191C42CD6A16AAC55CAF82592CCF64C1D5B6CF58810503B24F203AEF0F1D +48B91FA07509D782C441167205F96FACF1588CD956DC1320874DB1CB40FD961A +676654E3DAECA127F9C5A80092AF6827E0E2F2B31CB11ADDB5E5724856DBA60A +8ED4312EFC1591FB582AD4DC0390A5F8963C5B2B852082AE76BA29ACAFC624A0 +B268166077DBBF55392400E9C8160E25125CE6C4ADA29B83551623376FCD59A9 +89F1C64A1FA901CFAA20D063E103899CE96808BFEF9C3CF36BFEC63ACBEC2675 +93F27BF76686F9DA3E341D168D65A53F7D1220A13FF179912864E0C7F860F1A1 +AB3B1A045EAF52E4752FA0A6F1BAA8A2495983ED9D1EEDE32B19BECC7CCBD142 +2A19EC2A6E2CBAF5D0E525D6494D63A9C004B1D4A33C27848275C678F413674F +E0D464565FC16624590E085E26243740701F3D87D6D4F3765216FDD6783D571B +248D7F541869B4CC1785C29687880CA396B0C5B06EC910AF0568D802D0C81292 +9AFC214CF0BFE9A999965402E7BD676B552880C68197BB2E2FF5932155A907E0 +716E1B84C49B17C05C9A309BB6DDEE004808301EFBA46CCC5A571B50D254C940 +4DD4C43F17534450FCFDBB093EA68D2FC282B48F5C20B7F9EB2E099A3B4ACACB +181C5F37C9C6276E3049FD7E2F8C67A07E507A25CF1BA751294D9F5EFF4CFDB5 +0B837215EC6CA4347342488502D6F1B8BE446A3AE862A03E0A36402A4EB45264 +4567E3EEC5DB5F69EAD5B7522411DE7AC8AA9522B079A962286315C150EE549C +D5C1EEB3FC63B66929EEB6FDEF526BE7AAF06B4DF9F188705E0B2C851FD5AD29 +BA9F00BDCF9EF177DD7407BA10E5AB0C3A4F9F8DA48048A61C7CF873767870F6 +F66E669F6D2C36BC776D4B8EEF8581A9EE4E1DD3FB181D957111D0B74EB1362A +C5398FC8DCCCC14A6C2D755864DC8B2DB199B7FFA06EE2FC613E1A7D2B5D74EE +0EFF99E30FB56296D126A7D108387967167AFB5D2F5E0C0AFE7E26F464AACEC9 +7E6ECC700D6FE76A6D5D265E0A0BED62A1A0ABBFD7A3BA87CFC4F9162ED52266 +4DA164033110DDAD5A30B28DCF16E23C4C055B24FA9EAA2AEF953720C6039D1B +85402575844BE848F03CBF445CBF9593F1C2FFEB8BFD1F8CB78163EDD46BF1CC +704F60C6538BBDC15C2997BDC1939A52E63091F6F50F332538D19A917CEB60C2 +A8B575246A1F9A00418F7E4B9EA6F10DE15B91C2EF861CD35CAD1EF020E5497B +F806253012D440B3D3D0E2FF114C5BE5E011D8B603E7D02800AD5C0D3D505155 +6F5F1292B1C92CE55DF5F6BC891772AE09CBFACB0F06551B3BE274ADCC737DE9 +01B9C192D9FB3BC3FC0127D0CA32A8EF4C99E0BEA94D9B9A9721F6AADDBBA2E1 +18E5282105B05AC38E82CC63560AEAAD3A6023A03078CA6F4D7BA8E59D92AF84 +777002D0007ED4CBE93F81EADF695DDF9C9763E4B98700B54A969D7226602024 +883B5909F6A0056034B86E55C59347465898AED8A4C2A5D6A13B93FEF4FB66EC +201C79B5070116EA08E0B4246195E0E070442AC2C1F955A591E19474D21DEF78 +FF1DD6F8E90B1414C8A195BB6843098C33187A1FB662D6CA57A04CE2B97B495B +4EF86DFEFC97BEC5D2CE01E20590AB41FD07ED81799A722462439A3985EC7B0B +5E07C7687E2F76C93766EAD9B9F6274A23A4A655390CFE3870152FDCE07E39BF +4748C4AC86F8519F86E3450593BAECCD4EC66F3D083CDE2CEE85A18E41EA57ED +5511DC93E98B633F38F180F1A5E48F4DE97B62D0D91AFC5A14087F52FC166ACA +220F8E85398E3EE5B0971C052BC9C0A2D9092A09712403B8F4DBD3E999E3C036 +13302D5CBB0FCF3790196D5E38C87315AE202183C49A21741D1E2EA3CDECE786 +2AAA84AFA22F071FC98484B06E390DD0F5750A03091A3E9EE7556481EEFD734F +74D2ADD097F8D95F46C5C386EA0F842E393A5FA11BE51601ACB4832BB89EC037 +683F13C68618CB6F5E9363C317786FAF58B0F46F5F364E155D41A4561C193BF1 +F808A6C7152FE62A702FC13202F73F747C75C890DEC65A2459A698796E3A9CD5 +6AED0A64756FB43FB5321E3693DB6CCBD6720CC9815FBD9BD742BEE29E72F820 +E2ED969D138CB051EC3FCA2B82E22DD21B648BDC83FC2301C25D6AA7DBEDF65F +9E2699546274DFDB81451874B04ED3BADEFA126373955D64DF0B15F10C67EFF7 +30643BA1C7AA8089739BA8C779FC707BE1F681ABEC3C34F2A6284C264903255D +0A63D5EB37B977E9B00F3003CCB358AD48507587CE02341A0A226E30B35E3DE7 +3A3B0B396F3F1C2EBF42CBC55A195B47452791ACA9B9802FE687F3B994348A04 +90FC420D56AE7616C0EF0542F340380D492BB4B900C40F91AB57913A58CBDCB8 +480B6B525B4EC2D232DD997EEBB3600B73A39A2DD2A713DE7E69683B1766E7B6 +AD65B4EFD88C0D159A80B9BCFC033E4466CFC36CFB9F34014B0CF902F5F9A7D1 +566547928426ADBC9097A5F7842DBB10059678532856521034ADE873B55C3E06 +EC8C1D78334313CE2DFB1DE71FEEAA17710B4A9B3773D3225379756B979149FD +135D37B1022358386FBFCDEBD2B26D91C9EF0CCCA1B27ADA83C5F0CC48C04BBF +73BCC497ED5DB855296314CF8AA79DCD8AF08F1493F65426D72AA86D7DAF2F47 +551B35A525DDB19AABEED9C99CC89C2F0C6EAE7C60DFCE56C4F69C4CB5FCE33D +828E3B9F3CDC1ABA6CC6476C1156CFEFEBFB89815B800C0B06BF64825BE72678 +8C0AF76ED6F8E76D26A98CF7AE75AB109ACDE596FCF8F4A502911CD757354DD9 +57BB7795063FBC1C1AF4E1B567061B8A975316C0159038E34BCACA5BFF8EEB06 +5134B38146B3C5E01DA5E097B8F5DC9FCF7014B4A811AEF0EAE2E2977F6F50CE +E28156444214ED37532E40C23CD2F4A55AC0AD2943703B152CD3B22ADAA5FCA4 +D02AF7D8E2DBCE39A91C0FD0D0F540CF97A76F3FEF75E36DD33033C1A2331475 +3F2A8C610F2CD04070339637915738523110D80F6FA7AB8722DD6A06C975E6D8 +D5AA5DAF47C1B37D7B0B38A5734F4BBF05A68C5999A6E614786581B6AD202BEA +69AEC361C1BF58A5900C1E3D00C4BFC5596CA9A8522FEA0DDEC0B7EFC34F8DCF +3EDB2E29624A7FA8FA1A3474C7D919E1558AE84F3BBAB40AC30E5D405E523E70 +7FF71732C91D3C25126205F7E3A0E56BD61CEBC6F1CEBD520B1B93E0BFA17517 +7016303B83D18ECA1EFEAB621A38848F5408A41A0DC52319DEFF5931A506AF2D +23A017AC71738EA9CFD6439419CB2F094548586C22591429C24F179417386D6B +7422E76397F9BCADEAA0323ECBA854C07A158077EDD502B03C1CC1D29D1EE80D +91D58ED070BDA692ADAA98C08661F1F848836F856C78F9A7497E063FD7904D71 +64AE15B1BC14EED1A7E6717246CF2FD7235D2770753516FD9AD1DFFD399319BC +393209D3253310F10EDCA47E7BB81231EBECE4B3B64245F7894C4888CCFF45E1 +53F6DF629C8A33D73EF26EB4A7B2C94560F8B9F3EDF5B6E8FC3032C557539FC9 +14B2CD642B4459D613C65D97567F33C5BC96052BF155A25D0065E9BD1C3A6492 +8F0194EF29C0182D2A2E2A2591D792BE071B4B37587CE75F747ED760690D1CEF +12C1443F997CB68FB4921F929E88F19CAF7991870C124AFF94A5D2C768433D92 +7E053F8F96D142AAC303D1D114B6C52E2C6ACB257E47DF6863827915A854BCF5 +98FAF350F71D9BDF2F70CFF4378BFF0B13113C591626F01F8486B7FE64B88E7B +B7A345CBFD09CC9E048245D10714516508CC6AAF66A613E8563D2D8D5430FB69 +FE9F89E000847CD5CCCC73013953C50AA5FAF4068CFE756EB490ABBCAD7B5B22 +681476D1026CEEB22C9702209D92D7359E96239195769E009793E7B78E47E07A +9C378E37183C6C2BD11866717CFC0778E4ECF8E6E7C0E0950340E052AE8F4116 +22561FCB48DFE8D56AFE3A922DBBF60E5CBA7005D748AE1BA7863BA1AB290236 +25DEC1881C106CF4B457E9F69BBC0C6A2092FDD566B742C167987998A9041F86 +BB6D8A9ADC7947D4BA39C1600358609C90D1AE51A5E3BE9AB15A208A9817EDF8 +90175FC2C67139BBF9AF22010160FBD7CB032A1E078C53A64F948BCD855F6BCB +55B0DD46C6FE7A2F09CB814CEA71705F600F2B306EA9A0C06AF8E67413DFB694 +4749731403B81292D9FDB2F7F5C749C1623F854B2FBFB5A15ED4D3620592E9E2 +FA8FD26DF4D792893441CE3EA2987966AEB4AD527F395DC5128E494A5E0CD1D4 +9F9F01BE1BB170A75CD9D4557D055C485BE54C3447CCCFC90C5745150EEBD88C +8F3BE4E795AC9F4EE141C31CEC15D2A91735AFA894D0706178102537C2485D76 +E3B1D929E45C742411D004E77D2D8D2BA2632EEAF4C356633DA4CA20ADDBE1B1 +5B64EBA05CD5F8566CB10268C4F534B775415F8FE9A2FBFAF6AB880B0892C3DC +849522CBA30C08FBB753917347CE8BAE7B99EDBD3FF2895F0954DF907E64B531 +7B85E1DB2F4040E9088BAF2B2FB51CD757564165E8C660EDE3C88279EE790172 +68B73DE643527E75333759B02D7BF8621881B3CAFA2CDA69BF9F3102C983A252 +B16A35294703F2DF89A757B72F86E107CB90BDAC614F0A0C7612174445D87B72 +6F396D7BC86514691C3F8B04F9F2A61B44DE1E80CDB15E7F49BCA245501E3953 +205AAF574A8FAF5AE129614646706C9A11FD4531D45111A87138240CE39C7F6F +48FFA2EC3EF86B3D7152DA2C6093FF9000EA9CC9E571E13F65E1E39C7AC62B40 +25631747274A7CE9A68B9A47CED36586DB1D08A931161F011B5544781D32D90B +685F0313DCE4AAAECD2573587A412F0E7326DE5B5F83858809F956AC82477CCA +4FA06852CC31ABACDDFCDAD1D9B85647A713FF5ED8642B725664A2C369C33EA8 +B6F212D0FAA14BB54D881376CA91439197AC47153BBEC903A4D5D0F5D6F871E9 +B020FDCEBFCC521CC8E2187BE479CE9914F9D7D4519E9474D14EEE6699B03114 +06EED1B8403F02E7963A072366FA61CC46452D1619655A89710182107DE93375 +30C3EB937E9F0AE11EBA12F04386FCF004E72BA6A2B85B30B7AF3D015559ACE8 +130C3B90FDD4294EF0D78250B9738A7C99B117309754B5646BFE82E5B811DBF0 +101AE44042BBF22A0821235022416C6EF8E21BC9A2563E554F63CD3B4130D380 +298A29C3AFA8AE9CE1C78C77D6D493FAB5CAFD2D9547A72D13DCFE650373C46F +A28017FF48FEF310AA54120C199C6616B1DE3D45DC374F2C7B8FCFD11AFC7242 +CA94DEAC7454310AC71DD00933F5520F7B7776224AED667957C4131DACEBE83A +97D3C036775FEAB8E4C15686627D9CEAA50B891BE937F995D1BB72D2D4479C5E +BB29C15909565C86D6EB623FD067627674B9D636AF0E6AA2E3AF08185C91A87C +1DAAE7B207B75FC41232A1170A765AE4CE21208B49287C7753D652DDCA751C6E +68453CC16AA4AE7CC3808A6DCBAE191793B0047787419565757447E98B6461B4 +E6C2C0016BAA0BC279C6ABD2EBB32702E669A5F4E2B5F7B4EE5F53D83524E1DB +75F4532484BB396364F2F4514F91102A493315D70E2ADD132FB31906E8A23BD8 +E3121DC3AF7A196D2054698AAE898F65B6D0D84F65EA918CE1C6FC4B1E6CC23A +CC2FAE0FD96D36EDC5C50A0D6D7C4A1E36EB1399DB0E29D2D4964C058CAADCB7 +C19C5D25981FFE4BC66EFB316487608625D0DC726022772A661C0E69A5B6741A +CB3D37ED0852C328148527CEA461A92FB4698097E72244964AA9C69DDA2BF798 +3D125CB8B896EAC1AB0F16BA3A50DD34BB8B3529E9A7F37793A50E012E35BFE4 +7E8A70B289655BA976BBC5EEC0165653D00116A4FCACB1F49C427B0B6C7BFDFF +FF4AAEA93AB473305577D134C3240D970E17D42F407420461FE5125C3A03FD8E +04351E0314203320E51EAC86A74A3CC821DF3C70E3A6C678FC04133C5FCA2145 +A5153EE6548A340FB382A6ECEA394498EA1A041987F27817B36022F600E9CA57 +E338C98521C2DD649D05A1130B609FBC342EEFEC00D990DA97E8348E84623859 +0D01DFD10457A38102BA8F93C97640A4A143EA1ABF7A141EAA0D7535632158C2 +5F0D0FBAB8683C09EAFC8AE79DB8AF83FB7766EE83BDCD08917600D41B4BFB1B +B7A993B6809FBD7273A89D47086504E318FC677C635166D9F5DAEDA7207428BF +26781C40FA494292225F8FFAD4B29DEDFF234D66B5F1A945C31A8559AEE0F072 +6580BD40D977FFEC00A8EA73886A58D7EBDBCD099D5304735B08F7ECBED90270 +924DFCFCE0AA43130ED047F1161C564E16D6BEDD6B85B131BBA6C0BD2D2AB7A6 +2F0A31DE15C08015B82763A6E83E2682251C713F2CEC26DB1217A0606A4EFCFA +5C3DFF669F1E2412F14A23A8E132D7E183F0FEB3E872F784903A41176E4228E5 +B4747A475C7A05BCB99DF8DD0974BE2BD374FAC3C8FF1DBCA5D6F5EAF1943510 +6231E304573E7CAFDDFE2F2A5DFB5F7C441AE694F13C3F90F54A187E07000686 +E8554666AA962B433DC096AD033E73BCDC78788E352835A88CD054DC6E1F6E89 +95D1430EF5D91A510BD891FDCE152BE0DC3E331688CBBEA9459BEA0D12AC8AFE +3554737BBD944E0FE6973109B2777EA764F30B21625D4ACF425D3E463A46C670 +77534C69D0C456044E1AF87B7819DF303D13A8B88260C7D72BCBB4273D123A1A +209EB37512843398BDD13B04E649ADD0E0714DD33429D228984140630C8D982E +42D4E0EFAF96751775F9936C66836AE953DD2266A3477030B65707CE8429C662 +D6E4A9865B4B8C3716C4F6DC9B00D92F230CD90AF3586B47AFCAA4DCD3F5E76F +22F99D84EFA2F474D4C0AF342EE09992950988E269D3615915A3ACC187E568EA +EDEED2521392544E774D3C91AC688CBF7CAB911C6375F94166B8A8F432778604 +63944E7C3BCFE056A8631B89D2F21EEC2884A1D9974AD6C511331FD45FE7F51D +270C0362D808795F2F6C9B2661E1407DDFB94AA0568F0A53459C7CD395D0E240 +93744CFA9F4DB3800483459E08AA1AB49C569196B58F3C6B0089555C497ED7F6 +9CAABDC938BBF909E8AC4900C1F700D4C0ADCC1437143D8CD4486850C4A98F70 +3ED44B1B180DC8BA328618EE7B1BFA006D0C6F1BB121EA39CA4B1C961F3F83BC +174FE36B60A0F4DFD84E26CD9B17DB938D8D35312393CC3336F2393A61E612F4 +BCFA3077FF17C7ED3B01194A6527184FA0C38A8CA0EE84590A2CFA74267997F3 +35BE395D2BEDC4691B1F68BB9808EB0A8FA62E7CACE9289C9345320F475FE4DA +329DAA8D136E076411738169C37E9D6040DA5C1105A93FCDE630F8797A7BAFDD +15182536D44A40A27A1A17E932B247892517DDB143F1A22E05D23B09D6787FC6 +C7B2635083E1D333A3E3D5D1FF875BC7160135A9BC4DDA6D13A27F647C825724 +6CB21F7179E3F643A508822C1528A06BE1CF7A2F25D5E5D18EB6F73555681784 +9E901B128614560B8800FA6FA010DC0EA0CA726DB85854138EC839D520D122EE +5D990B29FEC8ECD9C31D6A740F7491AE02B51B1872A7DB7EDB851BACD2300D0A +01C97B022888A5EE25AF1FD9CDDB20A2E567E38C57B1D5EA2C27E2321264E885 +01DBE50E5A3C4590E992E61EB9008611F110C9396F3BCFCE936AD3E11D4918FC +B8DCA8F34BC936DDDF6EC7B3B449944B29ED6A3C6C3F9292E48F9EC5CF0F70C5 +60D8D671C3DBF64224108F741EDE19A60BE29D64871F726BF7ED1E02089CE2BB +4DC8F4D23E0CF34C3B7F6C90C4043DF2D8B85A13B0CAABBDD01C81EEB01041F4 +4980B5187BC8C1B08DF9C8C7AB70A337AA568B0F6714F74E4DDD88295CB99A8F +9D4CD756F1034D00C46C8DAA25DFDF3018EA67DD0E6E5374EE0D0586ACF095D1 +83B44831C0CFC5E7130F44D938B9EAB2B740216133854C417E05CEA62A49F2C2 +5FCF3455D9AA96945C01D73C814CE1F7CB9A54544F144B4883F4D8CB00AC5450 +6506F0F59DB5D9C144500012D4F41E8D1B8197581FF138CFC8CBA235FBEBE153 +1B6850C7D3C8CA2B79BE7BDE1EA748BE8ADF3FB09D187341199C84FC0CBF9453 +C238BCD1C4F82A8688A575F0B15F3F7D82565BA62A5F8F0F6363392FC3262A37 +8750900A22A9116C01BF4533DA211174072F34C21EEA44BF35B3D3C3BC8D6AE9 +BEA520E5EAC71304ED8CEDEFF92F93E7FC553A9168D41BCD5FD977A6CAEF584A +DCC74C50CB37968AE9C0C5BBAD0BBDFA9DA2B421DC89DC332C4C6C0426DB97E5 +81B170477DC4B6F62C6A4960030882C28F0B3FF50A08CF18E359D6E95BA2BD8A +8552F0338DF12E4DA843E3EAFC4444EC39269D61860704D722E422BA502C1633 +A23D5BAF15CD44CC22F67D2FBD8D855931558641255F1F2CB8DA3ADDD771CF6F +2D6C503C9C3BE2F593E475A16B0DB7570D142DD81549F099773BA5267BBCEB7C +C4CF66E68FE221970E61593EAE06013A9C790E542C820945D764D01C7F4D9EF9 +245A07C9304B784201D7D06566C91363B45CB5D6577F385456697575572276E6 +B310AFF7485325E5056F7123C839AF630CCC9A410FBB33C0636DA87C9A0B95C4 +BF0E8FE113F965BB23EB631F47AFAE6418D00C6F809B49E2DEB14828BFD11B7D +06CFA669102A6EF9D864A6230FD0AFE54A93A25EA70A53CC3CFE060E40A281E9 +07FD9CE479DDF79C5034C592B80010A289834350AF08EA9C1C6464EDB2C07695 +5D1327C7FA939CDCDE954662772C3A6B96FB1ECF5B2D63FE4266A67D4A806FAA +237B3ED16C85321764EB8F35523F79C016C50033784C3AAC9E5908EEDF249078 +8DADEB4EA95E674B598EA6A30DF9AB4740C4FF4439C023452B444585E6CA5707 +44A2CE2B3DEDBA44257870D42C8A02199C02569B71E8984041AEA872770760C6 +AA6297E946516A3FEE3EB0F2BD88226A11FA23A6D5A61F4AAD0F8E5CDD1B7F7D +169A04C8E460E0FEBC845D87AB60F69A85F8664C9E3373F3909A72B3967C6E7D +9E261C02FE726DA6D1D8D34D042B0024C63C532DC756763C4312E9F7759992AB +26861822BBB6BE290F1C377FAB01D8902FFC8F48288BA6DD0AE875ED602CE204 +A6B28360BAF0A5FF2BEA0875C8735270DCB7C22491FA9D1D8977E8973A4DE0D5 +A57A1D80E712B347A3E28FEAFF9C94BEE26A75C900504F958804263CFF2D6BF9 +66C661889332BED6D47D1B846A69E48AF64C32381A282C9E3FC6E116C2FCC8A9 +67D3E29EACE37661BA2BA4894BD25BCF2C5D241D8D949928151B006593CB212E +106E738462CA9F739D7A8EC6FB6F80C4E5CC436F0E6AA2823E3B83C58CB4B785 +AED595A4B0F32FD91835A8F039EC8D7CEDD667E0F5F15E9572BE2CC98D8EF6DE +21861EC36D3B67B5846F77E4C388130AD5A9EAF4B492FC29C669A6A19E3A5444 +64B3E7D88C8B5F776AF63F6F10CD7A4614B2B7EE47157E6AA4B8F9D65B10B4B1 +8813D4F973080740F233737AB7F02D5CA201015CBFBABBD54759726D51E8CCD7 +E3CBF2507AC8453DF0EA66191AF825FA2D3132C8A3B7CDA71BD0366214C0F30C +ABF5C6D70A3DDF63A6BD2E9DAB500B4F45A405B74DB1C83E20C49A2041258C47 +5AED28A9A49B78C09A26F0FE35C1A335C499DF22D581142015C3B1E27D35AC3D +541EE3895566BB73D53845FF46B2E15C4A56A136E20B0218A0987E8895551B9F +4EE133028547F1C2EF1BF327269854B54682345726C3BA64F900722E23E1B32E +84C56A843A1A2CB2B8CC1B9644A1DED4A0DD1AABE5B5FBF19A30668B0C37316C +E15373017428A860DE9AB9F07C89FC156FF537B7D768D22C7B1E5744CAECCD85 +FF5AAAF42104A71FBDC2CB06DE8500D4193CD9DA4CE0D54DC0113A64740CADE7 +F504414F21869B11F1E26B035FC36CE0DF91EB27378647EC234F989C87EBF296 +156471CD28F3188FA329E0923DC7AB3BDA4F786509B2B6E7F52F77EB95A3BB58 +CB41A58AAA15161710C72000839CED32FF315E86D952BF10E4EE28B6018A6D98 +EC796CA11E15826E961D0F425B1EBD9A21BD23FCE74E74C2D67717464CE9891C +285543C3D10E627DAE2D768417B081EBCC569B7ABF80FC581E2A2E5A86644711 +B23A61B5AE9C65B846B190A7856AF3D6C8C97A96B6B7B9DEC43E9B6A26AF6240 +579B9C80AEB704CAF7464F451ECCAF59A1863D0A66257649EF103D46F622E382 +A4C705292E23FAA9D3E23B11E90726406DB6215B55B74A71F7F66D54977AEF48 +D39911E099B51ACFCD72A9042ED5A6A5688B3ACE3B6D8775CF238579EEA7DF90 +198CA615034333503D4D5938CD789F063384BCDD5E52AFB69CBB3EDFEF8942AA +6D3AB76D2285A21B183FF2ED76DBD17E63BA58223183D9D672BA4C5A38DEBED1 +F710BD9FA9B75ECEFF35FDAF9A81C84336562ADF81D7A6E2DF956FB531BA83C9 +4C9BE454947D6CB9CBDDABF2119A1EB830533B33EEE3389276096503FEAC58F6 +64E11E68BE3B895B0B2EB353A8218938A9A8CA6D36270ECC0C8290D35B3AC0E5 +3401652E8AEAFD415E72A8B4D8F3C13882F78918AB86F66A305804775D31F053 +E947D0C97CF3C48550B2074BEACA87B9532A83C43B44DA8815BF1E7694AF202C +60E66AD2B22D13A21C05F441E0D5E11024568743F5664FDE68856BA289C9F6CC +EA29D561996F7FD4C8657BFAF84D2B51D9105A6B56DB485B74317C8965859786 +5B9483DD4F13DE44A8A5793123046206DCD6B4B8D7A366F9899CF8882B21EDAA +3041428849998362A954CAE8793A846B24F186D117E36844322EF158EEF4D1EA +7C594BD937757D94D165A51358DAE698DB5B0F3F5267DE03190FDD51C2B684C0 +E38799610E553E5A9B4FA27E3BD3726597634F456D0C61B51DBFADE1B7179DCA +4F8ADD2A8E7F2A0C12F7324EF1CD7DA47F3D5913029662FA9C6077F3C9902897 +D363984CFAF467296F72C3DDB15E6A8CC9B60C3DB7F15062D8F32ED1677C52F4 +7BD71768C5B14E9E8254B77D80203D61C7A46B18279866D219A24F1B23358E6D +11D2B7160BFA3393EB9D1794304A8C7D094D234F1424DE481F1F5DA9C1EC4FE7 +31D4229941A14B401F512EAA7C0C74A42E47741B03D1A78706470834ED36923B +C0A52AE6D31A08CCCE1AC02E994FCBB9218932F6CE8B0BF79EE393BDB4988244 +83C384FB3333E09DF0BBA34656623242AFE31B39F827BE534333A93C1D3CAD95 +CB3D9E1587FB694FCE9472358AB2A99A820DEB422A86A715B15CAFFFA1BAEE74 +475E99BF177ADED5E1A12ED5E3C662E2D3F26EFBE780DD045978D5965E89FFDF +0A5948E692CF7DE29E5B1A1D33A030D55E1D7BD6A0A717EEEE4D3EAD512DBF4A +3A8D6918D3396D326257D17386DB2BA6B55D5E8DE1D070A8D3E844D39E35BBF8 +2EDE74110186F43A09F751C485289D9BA0B7949E287BBE648DF618CE9A028358 +DD8E5F2758AC8358DBBDA07ECDB00B77407F5D09D87AFBCF20F02AC950C52FC7 +8DE7844C4C4AC8CF70EDA68E9BD55C00013DEDCA5C814D36B53FAC4064B8796A +EBFFA24DA2DDDA25D3738192BA50F2F12A68596A9D3AFF33CE3C040DC62FDDB7 +B8CBB3A5E878E6E9A0C52F970946D81E5C873186109D4777ADAC59F855A483B7 +D796DCF4FE6DD4D01CA9A3466BA843D4EC7D665B8719F669429CF0BDB4FAB6C1 +8F34DBEF53429D1A006BE23F1DE1BBAE68E53BBE40B4D979B6C0A09134C57853 +A385B9AB8D220BACCC1D8726417B838510BC1C5BCDBC81E62A18A54417DDBBB1 +80725F5499CA08CB1A01AECDEC7ABB36CC518A35435425CF3B4AA1BE49ADBC1B +17278DC8E698CD55316B57C1FEA461ADFED533808F009FE161813F5783FC76DC +6E3590BCD34C91DCE8B35F73BC42C44E5C477225FE02DBDA4F42F4A482E0E6CF +19EBF5F31E2D425E80C4FDC8FC06B57DD9AA060682A242F159C3B7EBC50A1832 +60DB7B5602085F119E471C805A89772FD6B97E9AF9749E2EF7DDF69D39E71153 +46BC2E75654757D539D23460E4AD8F2039080D61B412B37A6042C090A8939E33 +23A2CC49B48B72E6C59AE422EA56911399115816EF6EA7E4C0F75CAAC5AE9180 +AE852BEC0BA3D2D6CDE9DCB32E67E682AE5C115CAE3FCAB4570B6902B6B25E89 +59F4294FD6F4E8512EBFE752152DF26F9503A0754BC8ED48EE5F9FC492701314 +F9D38D2F5931DCBE8BD011BAC4EB016E116AFF7225BB06F9D7CCC047FE5B8995 +06CE92D0E1777D667C4145B015D726CE8AF0C560124DF89C95F58D6C6BF2D263 +7057FE497302D6DCC60064812AF0250DF9754B16B0840929349814DC489EDD37 +62475072F593EEB69745E85CC13A74F5B9D676440B64B757B2DB67B105054373 +F8F77BA303A993787AE579F7C16120818C4621FB69A359258FE74A93880B3ECC +65C6C091B4E3C4781039C7B4E5C60DF19954B5E16BA170111535184DF978A32F +C259E863DD2531BA6F7583C856842289DB822F21249C54669773215ABEC5ACB4 +B75B09618E9816398DF9F6441B06AA3CAAD7471371710648585E03830E4CFF79 +C2E132E9E3443E3181296AC32463EE77353B63E56202198ACAF00F6C3B18594D +ED45B5177BA8444BA0BA960186411576299AD0390A96038F9272533228E60579 +39DB6A07F76CBBDEB0771B212E6C115220DAD4F40A4D72580E7F4F35D7BACBAE +C85AAE2B5C19337E826B304B0F2275982B9E53E9197C104FDD31AE6CAE916076 +9D883898467FEDDB51926CAE802AAE1B0B854574DD225193C8B8175D5FC3698D +F91518F7E295C63A4E0CAF526BC5133528D08ACEAA51CF2EAA12F19BE72028B7 +BC0B9012A6399ECBE07D6C0A8A63F4FB16171E8144596F7E72E9212979FBFD51 +CB22E314BD0945C253AEB226F48C14B09D1E16994F4F998C6ED0FADEAF6FBCAB +928A9DFD791B0798336B167AE7DFAA142E7F66615DBFA5C60C9D648DF5C7CE0A +5EEEF5328AC3CF5DC8069F3FCF387B0AE5998EC6FDF6473735F09A01C134305D +A849A5CADAE3A5D75268336262DAA145FCDB8367C162F34FB2129D5B891D2834 +19D225B9AFA19B886A24E63347C8C3F6D18555A491CFE87FD375FAE4CCBD05F2 +068306B114F719C5F815325C816E544BB18B23EA3696AC428FA93EC820A0962F +4F87BBB1451B061EFFA4CCD006F824A2EAF335FBDBCE70364CB2B1B6A6536893 +B0898C620114F8EF0F1A08DC61EA905B21FC040BC94A876233382BD4A2240F58 +937DC70061DB2EB774DCBB5D8EB6AB0040C653DAC66BDAF02B475A325B15C68B +D84BAEC97D714EDC21B11DFA7DA5F61E9F8F3BAC60C831392BB2E06ED6D91A39 +E117056185DC97511DF6CB8A98E7082C61B8CAAE36F27C6A610181677A1F9D72 +33EF80D91BD0F2B243BD9B959250758E5EE8410E9BDFCC6A40A5D1BAA134531C +8C38CA61BA2F5BA9288F548690B54D6C3005F3510F008E56A5121EDD51FC3D7E +5851184867F203F69CFFD9F1652553DDE002AEA1B94F9671C2B4EB05105644DA +F94991928BBF13A68801BAE4D3BC27C289662E40799D5398416DC5FC110D5890 +BC3ED389E572F9070767E5DBD1B95EC0019C218CA73CD21BA7EE9460B7DA19FD +AC097C35D3ED5C31A263C03B748CBF5799DE41EF262CAA6D796E3E4BCA7D5BD1 +5C80F9C7BDD9C2D6480A00667B3CF26BC2CBEE260B3D3DC0BE0F9A0401354325 +854CE9D8F5B990D83CE7E7C1920924F6EFFA5361F9AEBE2F666048F67ECE58DE +6271401C9A585CA2EB43A70DD58768B76457A27BBEB4072994860266CF32A8A0 +0C4F99FAE668972FDB8A6CC60DE13DDA3D597255E4EE1E3ED43A91754F6B8513 +11202A7096A93C7846C2BE0BC9ACC628659FAE7B46502144CEC96BB97BF461F6 +A6835D550BD5220C8FF579F52BA42B32C76D624F9F2E7347C48622202B3BCA1D +366509F881A31D9C3FAF365F1C20975D5677A2ED441E169144F8D0B6925962A5 +AD92CE8338B8145122D55B938684A0056E8E9B09E20D8FD4C26CB0A8DFDE84A6 +A7778ACC28EF7DBA6FC1CDBC5705800A29FBF238AEC1763E0F9B02339FA6A8E4 +11D8C3E9DC97CDA9312D91A3A64E72ED65ACC8B9460E77688BE8C5315E31010D +1A2595442F58965BCC7AB3E245D7E82C869FF631D6B5154A178DE4C5C7CD0DEF +B5FE7A13BE0EDDB3478F24E9E415E0999936DAF4001200CB69010A27046EA11B +2C677F2F838885BBDE9F370E6D981EBE3814A6E26DF7398E71307C267E91CA52 +FC7E4039D45A538B225E1B285688E4CAA243E1A05ACAC6BD29DA173D99831049 +70C9EE5EDD31D644683A5458E9167AC38BA9EFD44923463298A683D449936D01 +DE6366E1369E9D1D37A68CAA3F379A012895980857A510A624C669CC103B71CF +E507EA75854F0ACAF25FF1B0AC5CAF338D21FFF0F7941D9FEA340A2AA9659F58 +3EBBBBF52469CECD979F4BD3FAA32763EC2304810EC2341F52678AD8F267385A +1FB9DAB00F1ADE83E37741CCACED5214460FD8A487F9B9C77A401095434AB8BF +2243497A1732510CBD90675E073BAE7CB2C4FA32028EAC040AD5B5B3FE4675D7 +D8CD9173A7486EDBF9FF59B02F42982CEA6E2E54CA12175E3065808CA54124F4 +33C0B1047BE03EF8550BB6D63FD312B9DB10713A6F4EDD439452083586A22172 +5D251910014D503B571862FC2B9A9F6818E5FC4D2BDC61B0BF3A65A8DB578C99 +A34263CC197B3E08AEFFC1A50AEF145004AFE122098FD5B31D98C1301FA9FF3C +7E5BA9160E88980715743756E34F840C6950023A6C9D6114348AEC5F4236D34A +14E80D884B0AC4D368AABBD7E4955F2818C157ACE66AAC950919ECDF8038A985 +0372A6DAC4548E8E17BB5CB06C20F08A9DA85132C20B91F5CF0D902190C25A44 +F045FFF129E607D49FD4B707D437E97A1B1303954636B4C541FFB0F8354C946B +E258179ADD8096A1AD49C11C81AFBB5564252BE349486A7AC8A26C20F7B5D404 +18A08B4412E0AC1FF8A18B687722041F3AC5A1F1E7567299CF906AB0E37143CB +A3703FCAAE846FA55B7FF43FF7EFE2AB34F3FDD9A66360D669459A54D96A23DA +B5BC73CE7DD9B433773D9F4F0FBB55BFDD6BC18EB47CFBDF3503E7C60CC785EC +F6D032CA9A9E8F9DFE7156F76ABFE4F2436BBD3F0C942C65D1E182F04FAFF45F +C6CDE75ADC8E0292D7EDE48FC45E9A6E35D5C45B87E4FF82BCFBCF95025C2976 +7901B6740EF3ABA5AA29111252003BCE13CD6A3E6C834FA0E4C01BD076E47962 +EF303BDE9DD09D6907D836CF9199E7C47416D24D24093317F5DCF5C833956031 +CDA4943283F99C0B308D5857856EF286F8E020F7EA923F17101A582806939AF9 +EC02BD1B9CDAB8373938B9BC961389D769642ADAADB26B39FE2DF0FB8E812655 +040F93A9C9C44BABB746F0CB51D8B2018B1F5620D60F624347123ED831268F35 +3F14CD8E693F35CA35F84478B68BAF34A519167202596E9A087583E56DC53AB3 +17B8C3B396453156E007DAA86D441AC8E874A987855928CF78D990B027C3F4AC +35B7CEBE10A5225B84AF0AF2FB814384986D5B50D624B7C2CEAAF3DB1C300AFD +5D492291111EE99F371CBD35B6B301F6F141B12148B9B48F2981261CEA0781F8 +2C6EAF4F78E03B8EF8FACDF79C2EF33FAFA7B3695D0F259005B896FAC44D34D6 +4C590D55E611C34A22E1F61D1A58251C0A962115D58E0695DF6A98F505DF44FA +7D7C21170D98D3A6652F8A8893CD739FA8A9DD73E6E26A3A3B6D7605C9F7AF75 +FC8A71DCD925BAC4BB99203BF81D2617C2E0C6E4BC21721299013D3B9644120B +4ECB846F77B3AF897F92813102E8004F14443BCBE6B81F15A9423994B749EF4B +C3737CE7791B0577BBC54D29EB458A841E6DF73FC36DBC2D6EF65DF0E53544DA +1CD9FABE29F7172EA3245EAA958D05ACD9B91E5BA30414DB41ADDF8317F5B7F5 +1FF06DE55AE1573A5D0FA138DE4D2F078DD7D7926C6E98374871586E6ED9F5FE +BE15D9433127FF0CBCE30846CE71E4D84704AF00F19FA0D4D54DC1CE2E4991FA +8ABE228220D150AF3211E672064B4E59FCAC1B48CF99306519C7C1053E422CE5 +2EFC96E981C5227BEA54F9651B59B9F3026AC34080355FD05CCF22871E0FB75A +BA05BBE538541922695F1D8FCE7D6D0D92FA5A11412203296890C83FC49EE6BE +FEFE63B3B3E868F92AD389ED479C04D76192DE6DC0D13DB91DEA4651C1936BC7 +49181A960FB872A8C68AC09A385A0EEB9C9C85654A208EB86B2173453292CA9E +634EA2944F64F96C259369AAA0B9EB07535352C25DDEA8E92D030BFC41D66670 +88F861BA06264496B2BFCB8DE46084CCFC4F3D3BB76E402E97980B08A9690DC3 +8FBDD6721961810D32E8626D528C704F7F1818FDEE1F91A4AB16A6B817A33CC6 +1AB08A2A36D424929872FDD701E83163DAF18B14B101A809E737C4137834A764 +607B4F416980EC7EBC542BD62DFB6CFD355EE815A64D14299B9656ADF85000C3 +AB5CF404FA4D3C771AD37E1CDBD3DE70687096790950C0E3EDF6A57FC60989C0 +A421A529E6C3AEB98A225704C97F5AFCFBB755C6C9FA193F5E89EE8D21A6E043 +29D48B6D90798E4B1B82AA0ABD368099962C339FB640CEC9CC1192C751EAD1AC +E1E450E56D503D7D091AEAF955B537116ADB479C90F16BD815AD592031DC85DF +06E0EB7AE0F5F35E69720B5BE8318F7033F49E92FD81CEB291720B3160C897B6 +74F5865F950CD8769A92DCAA6A45BCD37DA94DB12E5C12B942D1884E5D050891 +B24B82A650D059218A5DBFF61B6BF399C916A7E1D9134C1AC1ECA2D2EF33C249 +4A38B17EA1A050FE2D6F24F4B44D03633D37F84636B2035336C7DF456C23447C +CD73BA41C1D5A811D06EB84BBC21AB877DD9BC3FF1949DC783A184BDDAEC71CB +13FD629F24410728C2D96FE91493C54E70FB17F6B9FB28B1B6BD03A2610E09E7 +2B393DC0B4F138C003B3FB77177761E7B84BF343C940CA39B6C8E2B725C7F055 +D559E296F87AC291047F0068D3CD555D151C1EBC85 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +%%BeginFont: SFRM1000 +%!FontType1-1.0: SFRM1000 0.3 +%%CreationDate: Wed Sep 12 2001 +% Copyright (c) 2001 Vladimir Volovich <vvv@vsu.ru>. +% See the file COPYING (GNU General Public License) for license conditions. +% Converted from METAFONT EC/TC and LH fonts: +% ecrm1000, tcrm1000, larm1000, lbrm1000, lcrm1000, rxrm1000. +11 dict begin +/FontInfo 6 dict dup begin +/version (0.3) def +/FullName (Computer Modern Roman) def +/FamilyName (Computer Modern) def +/ItalicAngle 0 def +/isFixedPitch false def +/Weight (Medium) def +end readonly def +/FontName /SFRM1000 def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] def +/FontBBox{-189 -321 1456 937}readonly def +currentdict end +currentfile eexec +D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 +016CA6B55C6E47AD7A9A958A6E22E00FDD4D6492D53ADDC90ECD778346C06747 +57609FE8907DFFFED75E2CF963A64C7F72488F4A02372BE681E9BBF09A9CE5A9 +3894F6358C244FCD46C148F1EB60DE2137E6D3079D6AE03B3724F7D7BBA47BC4 +41C27FFFDFF9FB7B7738A8D88C27573A53E244723E07C995948DED2516B6044E +ADED62C496A56BC14483D307884467ADE985655A4712DD06ED00811F9A05BF9F +BF2AC66203817289FFB5BDCD0445293981AF6F55928C132E885ED009DE1B5FB0 +C230370EB5156A8B609E466F00F768F0A52ABCFBFCE3514C0FDDE31E601AD508 +2666AD26D9DB386B9FEC80AC197C9FE7447928C0C6A2858375F0A1D7AD3BE53C +9A926DDFBAC60D846783AA97CB86F804701BF53F7C4D18B925FD604F60231215 +EBDF4FAD73F2D13518E1901C3DA00ACE65647765106EFCA89D1CE17ADBB75815 +7BF819C45DA64CEAA10062501C3B0FE0387FD5406CBDB17A69376AFED2632E2A +C400D16CA3657327EBBCF7CAC55A62AC9AB3D07691C97D98ABFA2A4C85DB2345 +C8773110004A7812B031AB3F9B3AB9C7D0E5A2317931334466110BC5C95CE00C +E1CD16242B71CCB962978DB5B8FB03BB2FED25589D10F8B3861F73DAEE17BC59 +B909B17D2510F640D341330CCF08ADF9E3106B0C8BB0D04D5F939FAE21AFE501 +4614CBFE82CAEF30ECC2B6B47B373FAB1A828AA3CDF7B59BF013442EEFE267AA +AF153EE99EBE4743CA764DA09185666446630553F3D278E1953BFF08FE477C68 +4661A47656EC28B2039365CA017F4F1B6E9F85525565795336F7136A054E8C15 +A5DC42CFF335C364E4CE3AA6B2D994C06755AC8F47D2077CE2E78D55C139FF3A +8FB1AC9F23B06E08130D5636F60DD5462F796B9572D41602B364404046DBC3C1 +2810C5CB192F06CCD0DEBB630AB851F83DAA632969F031210CCAE081481BC26C +70241E3B6A9E5D5C9D03D0CB3894B67C56FC42B85256FD869D386F4E111424A8 +5440D6DD0F8339C5B26FF77B5369B85AEBCADDBF3B8F0497D01DBAB7D519ADBE +D96E0CEC25689C42CEDF7DF03D7E272CD37586B57E786E92070292E9C3E1D47E +0A6896FDBE0E928D5DB66C5EA2E6854382AA5CA5685B9153690C89F9054DDC6D +B3FD91105C0A009CEA600CFB92229B74CCE1D5CD54B5B98FC3BB678BEBCDFB46 +C6879344596FB5F8D06F944125CDF74583DD980518AE2D21CEFDC37035CD52B8 +F789FA9EFAE3616AD9FD1E3DE672487EEAB7641CB0BD529CFA779D760050C8CA +845F90A4A3C17D3345F693A399DCA2F57D33E98FF89327E11F4488C1178F7685 +90168A50018F480BD4A37773E7E94D1CE78A7042A09FB8FDFC8825307CBEBAC1 +70EF577F4FB5BFCF260A4A974D2819B6AB69628EE35FB5C9410C2DD7492E5B20 +ABE6A0B351A2C7848EDC71C154BEB335CB8D729783439C3C30F66E2B5A056986 +8C1976D07F0EB87DD9A66432ECCE06E3CC7AF6A949BC0F04038ADC737397AE47 +CD1B4DA2FA4D345E513FD2989E631538416DE27A398249225FBA2283D19DB053 +32FED3F58AF914AE91715B82C9609E21115B51A1BF84E206CE9AE237101EBE5A +D2A733DE210660CAEBCC0624FE053CD1BC4E240BAB92A63D02BB936FE3FC1B51 +4C17ABB4CFB6B5D336695D6564C4D558F15D8B8DF67E2DCFA2329B685FC7E54D +643F7C28AC6661022E895E2BAB631ACE06A9A9FF209EC740EB5778F383FAD114 +3830B37E5F85BBAF87266E04926AC28EE58208E5FF3A7F77691670E52EAD9547 +7C862FDCC7E38291F9D57A5CFC242C3A6CA52CA6F1FD70DCBD7775A922A82BF8 +FE45235B905B88AA1F57077E40DC39A24FD0F31FEF0E8AD8D232194435E1E46D +BAF38F0A1DF997F7BB595A7DD1FB0641EEAD89461E96EB0CA9B8F74507554EF5 +9D717625D44575E168799E96910161478FAB68C09FBEB2C71851C9A266D00F71 +935DED5BAF7ACF97F2903EC9F39DBFE5034F884D07B3DCBC37AFA1AD3FBEFEAB +15171D267262E0EE3A1B308928220DFC4ECF5B47D69E05FD209C78EB04C02E57 +BB179CB25CDBB9EED3113315449A91166245A8E296F5506423CB0976CFCDAFE4 +8A6325C7CC8C296ACA9F65445301BAED4B5C0741D4A6E842DAA661EDF41F56AB +44A01ECBF24084E8328724C6B96C4AA9861BFEDD8B868D0901C0F1A6D8DE936E +063A86D882388FFE83164D48F8ED5325D93A44718CCA766DB7E79308A424BB95 +96C01223258CE375CE848749E9776BAE09E9DE0B40A4E60CAB87F5DD44027A7E +8A840B4655DCC73B3605D2AA42440D81C64C56F274B3AB76DF147153A71361A2 +8CDF1B9EB3B7408A2061915D01EA2FF8FD0FCC2671D7598440AE0BB0BEF2B686 +CEC58565836FDADAB8AF8B41781E12C156A0C13ABF92BFD5D3AD648739B45BDA +63F1667EF43B5BFEC525CDCD5EBDF6055A56F8EFB0F344029B4FAE13F5F39D43 +D1BB90436218D25A2700E4F9FEC0024E40A9EEF27DAF0B9E8644F305289E2720 +0220E95F5B2C235A30D2F970486820AD219033ADF8EE59614415C725D247D1C1 +13A2A3E97AFF7A7C4754B34F0F887D0DA522E23CE4B53543EE23274A4E35AB90 +126937F05024AA805E0C9B1247F592823A4FD66516885AFF7D982BD9961E83CB +3A428737E1BAE9CE248E218B8F3C6BBD771BA744450ED82E0F6F47D14C8F37EA +53E0871C69C57E357DD91C6EE90FD8DDFFCCCF53675B9256CF5387097B94F548 +3928FFC038877FFBA23FDDA0BCD20A59239032099C1D4E81FA79D1B73F657FB6 +8AAA09DC49CF836758C3ABF74F86BAD5DEF2C0E27A67924722964C457907EF85 +7768FA8BCB78A942A6AC7E735519F76EE1819C62311CB7231B90B4FBEF4BD42C +E5148E272C6A07C62E44B634B80EAF77C4678AA003ADCCE107A62413223359F4 +5D49BE8F9E394D1706FA900038FB78A0042C6E34F9EB2430255451EA8BDBED24 +B33D2C321A8AC238508C65A7891ED5A200D311A5CCBB984CCFFF4984B6C973E2 +6B49D2DE75366CE29B7370714477487F7DB9B92AC6CDC752C1A8E9347AF4D8A6 +BA18F7E20D5266D5122D00C0C12130E00F6F4345E5ECBA9FA07AD34BC3736E7F +05D1DDF60397ACE0B3D05AF6B3539B9ACF4C51DD58485557CF0E93122F862442 +9EDBA0EC2349B037277B12C1FDB1A140C181447FFEBBFE1B129C727B97DE0CBE +BF6566D46CD929F59D56E5EDBD46C31DA97B354C30C957C8AC043A1A15ABD592 +8B0BE4AA2722B21DA5486F6C7E238C2B1D51D0941763DBCB00EB4AC62F92DAAA +C3BFFEDA5D2707EFB6C956FB2938A9F7692A0C7F53F0FD64B09DACC9C7369094 +236A028036BB2DBB9A8BAF17F2E1683E2CBBFAFF80AEDF853C4B6AE0029F09D6 +F82000FD6F9610EF405DCF2341ED099900F9CBF3D4A0DD4CCEB0A322FD64128A +A67682A05FE781364D5EFEC8F31FF038572A939790B6F8D8922E39B848EB8A79 +6774E35E6A9E4FAEEC157AB1E76F5F1FEB3C51EA2546A25390A0B65779A96176 +3DA072A2F7E6D9C645D2EA3E572DCEE4367E5C48C027D889C21EFD9CB662BCAC +06E1FC6AA5FEF8EDBDA26B381F1DC93BF9CA6308CD93E5C302B483BD8C5DC96A +E0A549D43F0F0FF3C26AD6F167A57E16AD3A4BABCB916C1DD38F7DE255AF984E +731FB5DCC43D4F092C1F2A7C4B66383E542DF5EA6C93D92EE11F97CF96D876E0 +0ABB14CA302180B5F195594927A440961CC682212B91C49A34CBB31C63BC213E +01333C8680E45C2E567244DD437C9DDA01C31989FD377E95446C12AD4B31AFA0 +36642676D7A11670C012ECB95A1698FA15591CE3DD9459D56F730021623FB950 +B5AD26DFF7B8875FF41E027995C83844A337AF36BFB304EE0B1474CAF944D3F3 +6F6578809A8C34F93467C904661E073277126B478167DA127541626E069F54DF +0487319E7372F40C4B5B596817F2352D88E60966020B1AC5069A272613C152B3 +67BDDA469E4AFD9A5C6CA5940C6CF164F5A879AA563F78644782FDAD4A040839 +172AE1B40D18E3EEAC3DE65FF1E36B990182A7C552DC797F9282E0058FB833A4 +1FCA23C93202D5E80E91968677B980DD72D4849AB7182B587234FAFDA66115E6 +7207A8E469C59D8D75BFA359D398EEEFF042E3039E13DD9EBA754B4F0E7EFCEA +598C4D5D03A83FE3E12ABAC555A090772904542194D0FA7B8DF087D28C520370 +0A1B0467A3410C344225461587359DE2D0ABA8AFCE946761C3C25E6DB3BA225C +7EBB46ACB75BF41ADE04A99CFA6F40A62A8DC06D1FB428CEE7220A24C4F710E9 +390E31647B34FB4F4BF9DFDB4970009E87181A28BECD9DDEF0AD7C4F17AA5DA7 +355D53A731F040A2E03562C91747F8D772202104E707F4E1A4BBECC58D564A2A +4AE1EB3766EF2447C59CEFBF4DBC586BB076ECD68865DF1005883DC31FB277C8 +A73DAA9C33F7584DBC29C1E854B6433ABB0C95B20A2D15E7B8783FAD53D6DBF4 +C0C7733A6C466E3F9957D7D204A06E5E8AF2CEED07C08939A3DDE2C62A9EBA62 +E260D893C887B93C492852AC88D4C0349125EA311F492951B2CF10C40502BE6F +43BA2AFD0CFB80D2FCFFAFBC9326373439B566F1D520AEEC90B1CE7814753631 +0A007016DC9436272D0F7D02F07E8865685360068A7324BB45C4E1B14AF5222E +8260659A7EC53FB6559ED82662A6A71040D5DC5218644D0B6E89C7B307B119A9 +2DD149B68AEB439BEB6004D3BEB951C5A77E2347719C840F9D80FEB166DB2921 +4561FDF5DEA9847290AE36776450A82E332578CD68E18C8694A3A112789DCB9E +BDE1370D442C2268BD02B689A06E3BF6A7D973D0558E38708EB224BA8532DDB5 +6F9B45F5A779188F573DC300C9881CA3FEA82759F805795998A134028BFEAC36 +8CA611C301EE8888A6B5E23A054BB979C3B2765A1A31039603476203DD8A41EE +4E5F2458E582904611C1E7D6A5D35DDCA32970271BFB1B21A18EF7A5064CB064 +0FE67FE477C08B31C99A1F412C57EC52F22DE68C10A032E2DB4E9EF0BF7E947C +AF49A788DEFA49953AC2CB3A80199AC5564A78467A0DE9653164C690E5E1A43A +A0934806C61442FBA48C3A72C6DE2DF791BF25A0818628A3A2D6846B3F80CCBA +0D8C4A73AF4A83C3A8A67B5B7C1105A8A616425C8C01430CD53B87B4453E661B +B5135F61CB43AE29A4BBECFB543F88A65BE5B62BD9292D3A8AD77E104D23A2FF +E0A8B42D8361F4F4AD697AA4113FC736C6BCE4AB5EC199BC38509DFD6F770F66 +3F30AD895A1755943936612438AEA57D95DF26492FFF58DB28F3E9D392EBCC63 +FBC6312A96DB7AC1828C9F348AC84AE11AEA0EF827A4990AC8B56F7291E33D92 +E4238E710DBF23765DE7F55E4CF0E5E3B1B7752ECEE67DEB3C4B8B5621EB3026 +B1B7D86DBB3CB49480D82EEE041AABAC78B9A0159066C9E1E1B3F0B609F7D6A8 +D961E40A742D4DEF88749B7866BF40BDB197273DBF932EAD731158AE8E59584B +F2C14FDB41055DF050AAA294962C772E462E596A2BC5859DF71FB76EE853DE28 +6F488D1911107F16D275CAB98E00218FA8EA1466420A6948354C4C2107BA9A66 +6A0419394BAB966F6F8438EBD7C3BF803B2AC884DFF567CFAC4F14127EF9F57C +9E871B94888726133B02EF8612DB5D9C59FA6753CD52FCAFA6EAD1547E674B9E +AC2F89769561942B30CD8F435656170684AD5F833A4FA58300298B11CCC10DC6 +8BD3C456E755A3C7659ABBE847174A74375CDB6AC5EF4370E07D7B3AF4B2CD1F +FD6E1BCCC6D554BA23AE35137D9179ABE05CD7F44E3EEEE83ADA9D54DF5BF992 +DF73B6ADABB828E32E0E5E776B6A4EE93F19E0C7CADE72564CB02A28FBD48EAC +90FF5D7101B9A16DAD8F0CB047B3AE8446D1FFBBB040C8D257870A08DE2618D6 +9C46649DDEEEE098F242169281079AD5F94F4D46106E917A6D8E5C341717EE4C +4E5B30C8EB8C34A6B1BA22E733B3FDA9F9B21E328A19BBF80843B2584EACDBA1 +3ED8C992268C3BFB41C1BF8699D1A13E6DB023FD71495D647DBB227A144719F4 +00805345777C502E4DD741CD96F9F3A2E9A8F1935AE395D789B19C45C34E00F9 +7E97D2DB43CFAF1B243B7AD72631B7A9EF583A03CBA575788EB9B9FC13053A7D +2ED3646C0C4EFD1B5BF8E9EC27CD83CC3E5EE9328797E9B2711285B001D05DD7 +F47A20ABEE6D518129A645176E1413548F70D8B645FCB5729D3E371B43BA4B41 +CCCBE44E4B57B7363E38006F628938193BAA442B075924607D035DBE1253BEC8 +68510AAEE4FF4165FE35E149F14A7ED8305E2C673A29D1F779DE999433EBEB76 +456B69DDC90A88CE30C854EABA1498CDEF8BD9F3DBA0A1C28AD58F4C24DDBDCA +E422301F9D4C7E84577468E2942E4627EEA57F01D7B319F8F498EB827FA3329C +744C038CA5E93FC02A160331EA4C88D993A41F182B7A47EE9CA676E7D19BBBCC +A0DB5E4D458BDF3DE1588DCFE5A854C998C7DCB12CA41F02EEE710E7AA734227 +DA8754202ECBFC7F94C8534E760D1EB092A16569B09343888C8BFCB4BA4D75FD +B0B027DBE706DC8A504273FDD95DAD898911647236459B07957983587B8F7265 +4188680A02D5CFA911032205BFB45CDE8FB95873D394AA7CE5EF8DA0E7F02425 +1BB0EC195873B5FD273B3093EF21DAC4222BAD0927B55FE301E0FCCAC9A7BE0D +F9C8123DDD1FE98240762DF9025D6C30DEB1309E95FCCDC39266D3E4A190F18B +AFF8145444A7DCDB5273C7511CB4676FAD01FFAC7B89E13A6F1745E4694A1E16 +6823D7AED054EEECB7711D6F0D5A93815ED9352CD15484C1411E018549DFDD11 +9754FFDA86DD1AA3B98D810436824DB68165D8994030FA0A897B4D235905878E +70CE626B47EE5C6C45364246A167EDDFD67AC003084D6BB74CAB963863B3D691 +578C22DA7FEB9E4F12937740FC7632D193CFEB06FC43C66D1201EC8C699C4F03 +FE04A62538384BF244A807198071847D6446F0DD57F541F3161074E3B41CD919 +5326E283FEC7943DB8616B89DD9632E1213A919DFDADFD2B6E55C511820062E8 +C72ABCE134A3479BF750E341F372EF0550084F40A06DCA1790E7DAD0CF58D396 +65E2C28B103AEE91740E2A3BF369ED246E697AC0ECBA84B0993E312892B18CC5 +1B2055286AC280D35634C288550DB20C2619F4C14BBFAD0EC565E737CF8477DD +9E6268868F98D03CF2BC22D2EEB9533447DF8C324BF709E951E6E688E7186D30 +0837F93F3BE85FFED7D5EC27E0388F551282032FBD3217F7EFE75804C70BB9AE +4309B34137B90E4417B0C5E9D85B02E60F4C6D5341C850C8AED4239A550A850D +AF7CA372A9C7C4FCF865F9A22253ED79C70534B5B76DCB93A22FB9658B4023F2 +CB37AEA49B6707443F7F882AE90FE5927569CB2EB20409F295F67DC7C58C0215 +FD9FFDF32CF460832254061A2E632AA48264F9A14CFACA295C846272F1FBF107 +7E786DB51FCD79924BD3CFBBE3A4BE19D82FBAFDAF96BA395D0F02753A2401D7 +26FCED7A6F36F438A5C0478BDEAAFFD1706040F93AAC1DD9A616421ECE4982A6 +E06F5F015987A8D0377B0A329BFAA39EB5F85BED22992E463158141E2B98A8D2 +C6AC693DCDD077425545D1A85B96F792FCC991DFF2A444F01AF5C5D0B311EFE6 +AF127E30074DFCF486F41B2D86C404C1BBE3AA3E9EF090367BAE451A303D6A41 +159F56CC2695CB214296C9100E09A751C10AD9809F58BF1F55B3EFF6084DADE6 +B065BD20BEEBCE9EBC2BEF084C26F81DC1CB69E49659140DADD4CA458F966944 +8E4F15861C21A44A7CD2DA1C3F466BF4E857E48A7AE87E62F7F3ABECBF57FAB4 +DA37992C12F98C614BF0BCF98668E3F24338AE9B7DD34F72BCC6858F1F68149E +4C7078836335CB3830C3B2E11A6248C4485AFEB935764507DAD1D156FEF121AF +DED848C1AACBD7A024C2FE254B67D6A21F2B50FBFDDECCF6193CBDCF1336F8E4 +D8E154C278108E93449AB8BB31789982D566148A8850A72D727146622E76B9EA +470066F36B30E7BD4A284E2E82D444573D6CB83D9A7BEA26F2BC85C2E56055C6 +1BF45C869DD22F3C72E98AF8910F5563FD678734863351A9658DEA635D04CB10 +803B3002C8A34C0A5D928469C8C8E6BA569DF26A74F7A8D5A62FBD9D6A89DAA8 +4D6638A415E49E919F3B1276071D81F9578FBA995DEA9DB194030ED94F94903E +C5185272635659CE152AE8FD1E3E418B1B83BAE915F099648D6FF77B12E4164D +577B2E68B3BB4D0707DF97F5BB698636E7B8920ED125D8D57C331FF687912D6B +FD8798D27394AF7F4F0012382AA3BBE0CC5384D1756478B78D2A4912465AA29E +75AED6891EC0E5A59156F005A297E7D0CCD7A756035987F6A5346041A936CEB3 +0C5D2010BDBD866DE57AA7A10C10DD37A377615FC761955E88A9E462426A9F04 +6987618DE9906C730EE8CDB2433060A700AAFF7C1EF561B5BD2B6C371C8BE8DC +A56E15D6E646EC32BA4FD02BCBF9146D5BDA14F53765437534FAA86A8E4D25E7 +A0751195B28CC547809329AECAEE551B608C8BCAABB224C18433977140446D2D +AE060B4D7C12AB3E3D1F7E6724ADE6D1D9E3E1A67BB68257AEB962FA85910498 +8C95C23E250FAB1A65B10806DB045CAE0D07C101288692191BCF9C3FF4D5ADDD +4E089905350C682DA4BC85BE0B5CB46EB73650F2640205DE8C16112ACB0A383A +F510EEA3B982B25AB0F93D296CAAB4BF0452C7BACC8D65B001332729CA1B913B +6C41741A8706EE125994271F0B5B3A5148DF78B2022F0BE413CEED24F5B8C579 +9479C0B57C8051B509168898F0A39FEFDF2C960468100A145D29180BC2878F89 +82639A22D4B5C215518A53BB54B02999698ABC09A67527FF711B3D85FE62F9DA +7DEA4ACCADF5182E7A12026AAD54821B1F41AA1A7A7519E343CBF0A3ABD99337 +A09AC0E24A1304B93408ABDCA9B2C1730401C35271F36704CAEC1A529C1A7B56 +EA04B8ED502534DD90080F5DAB27885183D9665CBD6EAA5B20C2BF4E401C1B6C +3B4FFAE53351B23B3F2564A9012AD2DFADAC4C372E4C019A9C4BD0698C165698 +4DB029444F6DE6DDB7E52D5CE34C08E8DF98C6DB6D919A4DBDD7DD4B8F205C30 +DF8D13F727ABA4802F0AF842531FBF5E0C9B1247F592823A4FD661C56D618EE0 +795577D5ED25EC385D5B226926FCB6434473B77A07B20C78DF99DCD01FD12112 +008036A7907A9DB3C16EB097563A4C92EFAEF890D326F10BF2A11281521268BB +5301EA6D07BC9BB8F9480F3AF8A3CD29D75FC977F1D5C1C5A4378F3E7135BA20 +0F79B1AB0948DCC35C3E6C2AFBC5585C31DA3FA5F356AADFC778254D8CDD4AA8 +165084651EC81A24201AF897B1D8302690CA150BC09B08A61AE9DF20F8083439 +CA6F46FA3B8D40A76F33EDB0DEE3AA7EFAF24577849E9CBA64AACE3F6D272193 +D709C5A9B8CAD7CB5E32D0FCA727506D064E8B324AF1D92A3ED4AD4B797C0CE9 +20DC63A01D1490C53B9A91E3F22BE45C2D6F1BA4570F9C2E4BB6CD489175DE3E +7FCCE905119830D82966E313281CF175BF4A02A4E4BD33A157D34E3A36070989 +EE94FCB35E3C0A16CEFDBB6560259437E0DB5D8E13419C36B655F11DAAA8D795 +1BE78517A0088804099D1AEDA76B839194716463616218D2CA3C534DD2A83DCE +E4B95082A10E8E04BE4073CD3360E850730A1086613A2FDF97981EB804B358D7 +2858D1D25120FF3149420784C4C7F3A235E86088B3BC53306E0C6E7DB595F7FB +95599C75FA4BE52C24C31581720F2C4FAD37A635BE422C1591ADDAFDB0B100AD +D37C1E564957ED7310E67438FFC63FEB697077B3801C21F18FCE12ABEB1C9949 +A52123E6333A0AB8699E2A1BD96042E480EE7CB17B98A3967CDD77B448449333 +6AB5E89D40F1B0C83C5BDE3B1B91161CF2F197157BB0FB6824B33C511CEB1DBE +4BDAA1224952E9325C1A491C31F98EF3E461051BB13C89FC4E59BCFF14F2559D +AF8ABEEBAC75E9F2E2CB4EC847B931D9857C3B16A31B399274458A9A8EA1ECCD +C25C60E8A164928EE967F7268C30C7B204597577BFF28F0565290B0827C19A46 +E567FEE4D90ADC53EBDA0EE7FB4414650A0311A0D89DF6A6DDDEB3E960E1FDFA +88E6AB0E385830AFA2263859644C302D4B0F7D629E27D5F96365F28F360936D9 +CDB35B049FD91C042AFC47494C9025BF6134E762AEDBA118ED153CF2CD73DFD0 +A97DD66320CCB3D57E6BE3EB4F59843AA5D748BAE9E2F7B45AC79C44C9C6E094 +849D6EE2900C4AAA0650C2CAF200E1F8948C114D16D8E04E5B37E88852235919 +4529FCCF947372ECB27BD2636287654006B368FC50488D4E5E6E335627F3FFBF +CCF21DFF345ACF67BFA7C3C3E2988DDAF1C1C8B655548A969D432D227A34FC33 +E497FC0401A88EC6C5EBAB2EB93AE45F43A20BDB91831CD7DDA151201C9120BE +4991B5DEEFFFF4DF109F46AE10AE5316F3CFA69EBD674FA754E7EAEA3B458443 +9D34DDD10C20B0E29BFE91C393F64A38BEB5A2A18AC8C48F7238152E496B4134 +C7E3E3368EC6EFF8B80E1A4FBCCF67BE85C01E69EE23261A0372C6F83E579F27 +6B4478FEE973646B6E717CE9A1DB92A7F896839267A93396495809C6B3B4BEE2 +521324C2BF474BF1DA8D317B2053BE6C071B55907ACB1A1E4257DF179671B533 +CE41F0FC1C372CFE35BF066C34DB109D3925CC15BDA9840B9B9CC28854DB2D25 +E958FD52B8B85F5F4C08682D632C6EFEF3EA9F91771F168792F7B595A923E703 +F053C1379F429CEDCCB1CFC850A30E51CFFF5F34F292CEB37EDBB7F0B90805FB +72DC6E795A18DDE81C99766134F0FE694BE854C3F6DB8A516B41B37B8731A157 +2344FA5F7265890DC8E107A624F0E3A9DA8242D507E267481CD15AFF67B2CF6C +EE942F67A0ABA8D0FF2FA9FC89057F26F5E4F613C4D50E879D955834D8B57860 +EB209E5D3A05649BF179DA515A288478CCDD5814AD3DF03ECA6EC567C589077B +E973B40D709C856EB500E8B0F68ECDFFDF65B4D74A7E48756142547DB43E1DB3 +08EE0AA452F417D274651C0A2290F147A4C1A34C26965CAAAC2C5026600A5584 +E6D37940939D2ED8069FB7CB9CA174D8A84F5D7914A2F3A209EC712949F1E2B6 +772F4BCE71D4A4B506A966D1242954A80600EE3ED05672B457D8FF1C5611F5B3 +42B1553FA2643DE22ECF8AAFA7F60D7D25E1D0E9B6F30672158A5779A6802E2D +FA6FDE2EFDB4C68AB115DBC45077B9BBEFF0E498AC4040D939A89C378B22176A +73620D97B5E4EA1CB56E1CCAC3F42B43B61F708BABA1C0C34B7AFD27F6D4652F +976633B7F566D32F1196F3C52F6957C31A3EB7D6B01CB47BCDCF769950AC8567 +7C29A9CAF1600662AA1244171EC66956E70153D62714A07ACD1FFC9D96703EB3 +0AA4F00C5D894D12CE8C51A971E34DDEAC3960039B6C949F611D1F4DE43BD9C0 +A148F4BF13E2B804E7AD2B882CF498FE6B3C7B9818D3B7D3B6F77A913B7DE079 +B27F8F9F8C86D8D507AC1FC45D541E1DA1C045F4FD8DBF4C824594E450D7416E +4B4AD35A717D2A8506E9720398830C106C342F853A8ADC462AA8FA3A05598229 +BD14C828AB255F860128995EB7C8D61F14F2A7137A0BC12E17A15C58FC473154 +F14440BBF863FB76057F4EBBBF2A1D8221F9E9A0C65B29FB3516285924E18F07 +27384F65035B1158CB8AF6B4ECBE34ECC1C92BD43122D50F769BF2635DB3A6B2 +809013C7F3BDFC734C4FE9BB0124492B397CAE8063F9DB7FBF04107A9732BBF1 +DE23785F7C93D8CF4EF71CF5AA2B15FCD672EB3B04BF0C20F2BF7DDC6C96DA05 +B51212FC3C15A1341DF03FEFDD72D3ABC34E8CCF7D3B607C058336EA3B39075B +5D33BBF0FB0D9F6D1007B5C863156EC1636E573FFF75376588223CB5CAE66BBB +DD2F28F62A6CAA01A20DC6ED5A1BBA09D3D2E2DFCE99155F8560A05501371B36 +C77B9CE789A7F1A25BB7E76970E14CC4D68E6A9F965AC81144B2C7A3AACE0F16 +B204918623195E9355B1CA091A4E7DA97C5C9B44EF7F4C684B6BB7195CE4CC15 +E287E6B9920195C092924B8AACE106D06861196230930C3BD9127C11C9FF2304 +428ACB7AAE7CD7E03F532CC982DF1C25E9AD6277642A8F3DA96322CF2F5D6E13 +C91D1370B77CF7193C0882B54AD63C130BC46B3F28D248C9EBA436D460355880 +DD260F8D71419DBF63E5440429CC98DC77C52DC3B8DE77120720FC8AA96D6A21 +30FAF109A22DE2C5B6BE985DAFF4DCA56A210552323E27BA7A6287353054CF3A +EDABDFAAADE9F324EFFD62189F1E95F04ACEF0E929AFB87CFB60A8276BF4F24D +3838D406A98E13C5BEC9B802419FC877272B644165D1DF5C73C752A5863A2DB4 +169AE81B73309EEDED85D8EA7F0DAD22346E6D7292084C9B54AFEAA96DC29BDE +65BC23762872730DECB549E68CACDEFCAF9C9D91EF5EDF6ED379E1DE2D6CB5FD +306F441CE0548CB861C8D7E3B2C742FD653E61560560C0F89453A945E332A36A +296F42C631B8D278A30243C88CA4B1E861486F0DC8961CD57059394C09E56B34 +F35885F657994EC8A1DAE33E25F9FF539D3BACF73444EF96E9B2D1D5EA98791C +83DDBBA89A6045A974E591706CA03D2EFCA2BB9E185D1DDF9A5EEAC158ECF8DF +24E56860EECEAD7885CDC00B3E21B3A43F18056F4B929F1D6B75D752E2785946 +B825FE322EA5D4C2395A33DAA0610011102B166D2E179046B511EC03D1F5A404 +FB627E610BBB972F36591F3CCF344D42512CAB0C290380675C45947463CE4143 +29500F0314F1A48D9A7778204143BE17E8AEDF446F747C7C364EB2DFDC09F907 +7349C960579FCDBD0DFAF5367DF13854712FDB8103894469BFF7A072A4BC1E8A +5DB3DE45991030E879CDA191CC5AF0F5AA4EAF9537010E9E59D7FC5A9E50D5D6 +FFB14E7A93AA0159E380CF5F0062593F64B1DF91A7D4664C8763BFD550A8D800 +48A00D9A295EA233C4642F336B38DDB19F5AED826805973D94A4EA9543566CC1 +6D3B423A5B99F34840B539410A0A5D8E3FD2F3966893386573FDB37DCD596508 +1E7638FFED5E34F70561F300FDCCE6DDA284C287D7F863E2B69CE5BF2C7F9DD8 +6354761166DBF57784BCD075E72C5317E27A4011C0DB293E503F892E2AD632C2 +9F98F3A63182E9A86CEC90A5A7090091ECCDDAF83672289EA7A2B57540F4BD87 +32D22447CC9DD97F3A620431903D20979303EAA16BAE50167B0DDF5BC57E563C +368FC2CD7A5EA5D9F773FD3D2E8D1832882148100051BE9A99A124C37F99DA8E +4B3F9DAE12DB3A65E948DBEB692D031F96A76025C00AC519BAAD5F369B6D4FB6 +9034EB7994DF1480A64BB598FE6F7090DE0D19C3220AFFEB9355DF4897412731 +8A206241AFFBB20E758129A7F35FF4A6752FC9E1DA5F8E11A5703CDE29DA1619 +E09C929AD4C3FACFA5909A4971A117518246B2ABA0253A688552D0590F4B765F +79E725EA40F375FBAFD4DAD73EBD3654AD70897CAFF2471EC2FE30D64D2E5C3B +F765B99291FD42FEB07E977B8ACFE7D2355E58BCBD94E02CF68E1D0497C5DD3C +99847FA65563015C802A996F133B5FBFC7A222E39A4B7ACC1C818272A97FADD0 +64206627AE413D164072E7C803D8ADDA2114723BE7AD318FE993D38DEC3AAA98 +5020BBCD6F870D8D390A83349B27672BE6D090E0479B4A0901D7C54A74BD8DFE +36E6D747C388FB658A5092178338F8659FB80001BCC025B40493AC5A76827726 +D334CCE482851C048EA5CAA13D93F66187FEFC42E3E7DB653EA0C47DC416F4A3 +C2B24B7CB4A08927877E724E70684465D34B23743B6453C7A02B9AA54AD0FB1B +6C846EFFE12104BEAFDA92A62AEF4C895A60296186938AD595D3E7EA6FCE8AF4 +814FB2B875C2380FA12EC3DAF09B58F3A0F0171850AD6D916C75CE5BE5F6BAFB +FC8A6B4AF68BB427D09E5FB2D47D5A303DC6981BEAB387453351F27C23AF8F03 +532D45517E7E6BB74C3DC7A1AD93C29A03FE6592242656C4A98F0A2E28EDF77D +D7A0B6FC1678B3031971AF047C29FBCD26DAB7E8923845AC28CA14A2D00CC01A +2243992ED937B3B774B6D5FD4A82F0D1D94AA1301FA12FC0D8B7D2789930DCAD +864E457136836EEB963D6ED1B46EF76C15708BBA6F90FA081E481BDA28A390D6 +5E9A37F8AB0B02DE5B852D4191BFA0C3F5554F0F8186CEF21EF8C4C383F1BF6E +1974834C58792A2B87DA951C2F0D52F8860C6A8D26A9873AF9561C2AACC8C899 +8B1FECCF491A1574DBB58A1C5F136D935B95F0A6E785B86F0FBC14613073C42D +B8D6FF8FA86578A22D63C06CFC2AC3BB100F1C883072DCEE52154377C2B9A8E9 +465D60A64C56FC19E61CFC45920FB27E112C34E23948D65BB3AC06B6382DB63A +E23F744BB1D936332AB3745769187AFB47A0133512C73F4D8EDBDD43B779EB6E +DC0E422BE6339A43C224954178698E838C5519A1D839BB41CF11EE97B2C26BF4 +7CA9C5D6E2CBCD435A92A1A427EE0F0BB3EA1BEC0D1E91C80D3A1D6E3FBCE208 +0FAA6C65303A45147DFA54F13132D662BC22FF5188E31FBB61E185C306FA4B8D +07A9407EB913B0CF46407B012F74B242EE91E49232CA891BB6F44013354C6F60 +8269BD1421DEFEE20BBDDC308A1594FADCD50C57443EB3E9DA038CE1AFBB215E +558CF8732A643A3E872B40D8F972995B8885560E5013507CD300C8097D0FA096 +B89593EF262C5951D69A325131D37F94D841BEA633834CF9119F9D32981F9F24 +B5F167AB828483A08488AC0EDF72BBE1B16BAFF6AA7C72A97F769CA412E3A1A3 +3A5137FAD91FB87C5ED4CBF4BE19E38C8F82FEFC3C0D86FDA37B588258B7FD69 +C96195ECAD77DAECBE37AA065E7FDABAADBBC2482A84A983B1D6FC6BEC6B66C2 +488AC43CAF218059F65BBFA205E9803908FB4FFA49248CE056296BEA7A56789C +0978CA8EDFDEED12B8CB85A01312AF855EC909FF285309DECDE04CEC2FADE907 +7970AB5551B3F3044F2672917989D1A1D235707F0218FD63FF71B313F10F88BF +77D9454E5B86C9586D5971176129D7A47939238549A75359DF402AB3D7B1E6F8 +90A0ACCC3787DA0A89646872315271054AF016B6DF90387CBEFAC608C9D9EEA8 +26AB565CCA3BF7042FC15259AC9009384088995A3D51C87F30096BF2677D2E69 +FCA08B573AF910E7BF3BFC68CEE469A5D43CB25A903E2D77A4AF7E431BE839E7 +2D4DE8488376C1312B32C1388C67B6BE84FD9C2F0379562523954D8A37E50D1B +FD1E53FEFD6709A3B7663213647A18FE44251A38D552E21571C41AB78C9E6CC6 +1352497E467B1898FFF92161293FA538599EA073CFC13A4C67B5BC2602D56D9D +34BBB9C4A5885970D4DB827C41CD812D659E49F6DD0D9CD6D9BD96737591F86A +7BAF41608E5FFEF7864F76265CDD3368BF096F85076B374E78D4336C9B0D786A +50CE8CB5E1D6862E2579C425D422B497DD0A61D6AD28F40B482710FC02034D43 +2B1890DB210CC277254FC9BD9501456B8225FEA8DF1C112295F596D6AE42F13E +EE59B7A725FE363FCB85AEA7AFA2860D420E064914DBF6F4D2013FB9749330BC +CB37E8950621262289B1B7BB265075AAE83FE40A166529EAEA7C04B32C077C1D +EDF5183668C9C42C319BFFFE729E6FF86D4DC989D50533A2EE41817B1B58CFD1 +B963954AFF54F04E22F0C3C724C2189075A9DACB00933383F00B21A098739BF2 +E2449E6B9EBCE2997498579A92B43B6480F4FA07A89D9643B63E1CF6DDADB36E +DF4CCAB0F285164F3F67F5BD1670A7F671750BF50F1E5D0064B35F1245DFE167 +DA31AF15610D612CF82741DAA87C9DA7A37EFCB2E5144B1E269A33394A1EF019 +74DC8777576F8BED09FCC38FE9A3D2085638CAC31CDDBC2CA8615ABE70E9FAC3 +3779D68F2B8B73C9CCA30266A231D674C44ED3FC017E955F43B9B5D780267BA7 +2FED48D96658269BD1E6EB164FDCE3055D2CC76B47003E47BE312543571F4CB0 +102FA8751F36521DDB32767C1B277589259BFC81BB97FFB0A41D485FAA543358 +6C59593C7978279C030154DFD4667A4F6C8E273CFE145A86EABF868487AB741B +19C602C0B03CDF0FDA0593B7C8673E3EAACBE78C4787AFC3BA3B12C759B8916F +017BC5D20C9A44079F6D498A1C25B94826B5333D18BC4B8C6ADEE04B65911FD6 +42896B0285ADF7F35C5EC1F50FE79DF97F8D2B3B71AA6F456BE3DAA660D34D02 +74D2BB73D36F4904788B2DD16BB226F98B4BD777E155738DEC48E943E61EEA3F +BDE79DF8345ADF83F6B6D3957621050FB9DFFEC6F9584BBA5F1E478A5B5DE778 +D2F1A4CEE58283C8AFDFB8E35F149FB8DC9FC2E16E72E28ED76A2A09BA282A1F +D0E49578EFA3EDFDE303C71FC21E9B96FD2FF08831244583176D584DCB1D2233 +C86A5AE43D621777B513932F82095BBE4F8762751022D37595B7DAB995F65199 +C0AA4C5E75B594AB52DE0FB02DC65AC91FF4346B4896FC3359EB3009B5C1419E +72ACA9198E1D466CE84EA09E097B990F5E466FDE2E891E7F8B0D13D40C311E9B +82BE678F4F785AB9BB1E7F576AD26956C9F857CAA625D457157665973CB8AAB8 +1FECA4F9221BD05FF8F8C4B89679147CC37681F368489D9ECA5EB6239F91E141 +037EB988BE2D06F88A17E5633E78DB9180012F0F5AEE29F15A5F117B6C954771 +55EE4443DED24466560091C6267F088C409BBD078E329CF3505FDF91EF714A69 +7C43CBEFB6679AFAFB68F0DD80AD2EDE4BE111A4CD7AC4119ADC27DDF293C981 +32EE548578983E7137939BB871239042968D517931A6F589330E4BAEA98ABD74 +3FEF957F2F46EF50D401E980EAB3FDD90CFEC312B9F0812E15E8288A540BCDF8 +15BBA03705A0ECA18074D48E15FDE6CC47AAA10BEC3CEC4ACF8B5550E537CE67 +90655A3AAD5F217E097178E4367E6931E63903A93217C68714F2D465C1A4C3C3 +B9B764B201D8D93A82BAF2EFE3D86A5DF79E381D28264FB88D912E1D77902ADB +21EA9D2219D153584E94F9FDFC2325E5F615A7E600C6691A54DA416ACCF5ED15 +1D53E2FF69910578BB1BF0B0EEC4F999F15176D71AE7537C87F9F800B5754CDE +E7BD92845C78AF1656610B36DA4DC0DBA53E19D5288394F54908863AB68E95BC +90052E32FCB6390957B06E5A42722F8DFACE67A03675B8698089E8152222401F +C9C8CFFBE0375715E4C30AC63845B23BDB4D840EAA8108A67FF7591642BF9B67 +325D3991167F89DFA624F1807A25E114B182E55D01CF6CA05BF8E259C5FBE4C5 +FD0FE95DA708294C72A38BAF210B354522DB91D286D266F6C81AFE11CD0709EB +BDFAF570ADBFC20A39D6FA8F8BEC6009B6785E7CB4CB5D7F7504653D6C52BE87 +CD426944523A30005209D41636C2BF62846EDDD45D13B463FDAFD4E23A849A40 +FDAE2096F1E621D4E37AADB4C39E6785812BC481598A270C5B9D581EECAEDD8C +78131C4EBE23798B9E58BDF8C74CE05CFFA998F65DB1A30D18EAF50C4751F85F +578FA29E32D03C428A1CE0F80C12B562F3B844624D72CB78010859F2CB54CEC1 +2F7E69FF6478BFAC05A041898A8385D0FB6BB1F69C5FFB7590804251C7C84ECC +327760A145A97673ECA9277DC026FBBFF0291055F564130BC875C5665A7B39EF +A1BE2084901B152495EBBD8A6F47A0552D553C23248F2B0009111656145E033A +ECE1F226E79CF2E061E9EA17CCDECF783B81E18B6D3E4937B0CE938108C4660E +3FD4B431378B84D43221BE9FC86D81C5D7F08AA10902A068936B8C1439700F25 +CBBBC8395643AC598F133DDC673827B5556711B6E34A554457147F43029E5F96 +5146E572064831FA3AFD7B1D2C4340933C0ABEFD8836BBD9CA6A0D11B76DFEBE +480CED36649148849EBC4244757F735E53096F608F33A5600A6E8D540EB6AD0C +20F4C6FD071BEBEFE1C4F405ED2355BC2EC089D18EC8D0328412DE548AE6C6ED +3D3B170635E9E18433600FE85386C2123732E0F48FAB34ADF478EF6A15BF0C7C +3A83AD9AAB014D1565AC521A29AE6717E57E3A201B32B88EBC7E8DC58EAC0913 +28682A1B36B62A57DF1E920CAA1CC32173E609C70AD9EF2B466A32A57BBA0E99 +2189E6AE9DB4A3809B5BE2691F103990FC64D8523D13EC813393222F59911045 +73257885DEBBDD8EC3F13BF531962BC50B7F83A6FE14047B4281BC2683DE2FE7 +F98813EDD87E65D129AA30DC8C7CFA636A933F7CF6C8148DD5D9B4B362911EEE +EF3FC22BDCDF68D998D6B22DB90EB63BB638C8B1C95CD991BD958E0693A02D86 +57D1589443DB506CE7001207F7B2CE7BFF543E1F5A9556776B02C6F2EB9D26C3 +2E68460D2D911B99BF28161BF454F328430D41BEF231BCD413E5B62C0B137606 +B331843027DA93FD6409D468E7F207C418D9F9B43878A271E765C171EFB44B17 +41083D56B45E57C9CDEA401AD81CFE5A7BB360D49C03A5CFEC272EB9DC4CB5BE +6D9EAFC2D428CAFC8151BAD609C48E75B40DB9C996BF99F6CCA12AF4801AFEB9 +0907D417E2537811E71E4C8ECEF9F2AAF6DCFD9F98562B77561280A5373F6A5B +11E9764A322EB673EB08E53ACBDA5BFFEF0796D41D04EC3CBBB6355A361A8C30 +B1C312C26950D4B3DCA3594A3BFFE53A5574EA5520FAF1EF6EEF7F1A1B3C62EB +400C1D3975E6E0A7EA95B7543797BCDC917C44BDAA8AF8842ADB73E6CD95826F +C496F73CE76501D712078FE6801D02D0E0E173DFA1D98C84E4285EBA15E962BB +23A7A4C5AA06BB88CB36186CA7E61192567CCE04AB5FF208C0A199712E2F1A2F +23162FE782A4EF4FC664DAEB734DF821FED6AAF92E29A45984DF2091905DA9BD +2F840C231FA9104AC77F1D95068093498AC1A00253B2115C9971DBE9E482C4AA +0FFF7B9A9926774BCD6DFEF484A3086199AD2A6A58F14D87CA346ED05A6F363D +EAE4CEE0E3082035879E4C9FEF9C02DEBFBDBD6B3C0935F1C0ACE06FC7E13A7A +06450092BE11DB0920581BEC4C011186A7F122F042E8FAAB14B6BCE226CD341E +83FAE799F59ED9090A70146803EB2F86E4F42B8B84E11BEFD1C2A9C8B61B2A43 +CF448822268F0A491A97F4F6C5DC5B43A9D8250EDAFE4FEB14F24F6303CC5971 +A711C098C81729F7F35B99DBD753C539B86ECB65AA2BAA55C75936E8CEF37E91 +95AF20D9F224F73427A9F000572D016CFFC77CEA8B9A0402C2C46567F9F816E2 +89319162F65A77A4E99FBD9802A63ACCC30F9AAE53636F6916D81C0A28A522D3 +1CF9A59E77E8982F47ED294A09AD1F2A250F4F5ADB0BA9DAC8DA18DF71714E98 +9395E968624ADBBDA27746B0D7CC1B603151002CD636A375584C6EE2FE2105B1 +039B51C1C39CBB5683C4E1BD4B14D0F175C2B873DF772EADF3AA1175D2500818 +80A2F57522D6CA59FB7225373007E2F2CBA005C270D09793011A5DA47959B628 +1B367CA1043A5971A45C6E3240E06C9A80756936BF6325EB6BDF91E97F36CCC9 +A5669B4D48852E840E65DA93221B917976439346EC6E7ABA0FD8541BA614E61B +E2E8F7BDB89B16505D3D7C47FD3C74B1E83D14C554904681FA19EC7E802098FA +1FF0631D7EBDC8011F81F8C5BFD29A9F108DFBADBEFFCABF7A7EBC86E44E9B25 +27523B31E0969354056B3704E8844E631F3972518FAE7C856C1918C3FF7E06DE +32915E48633EC500E54559595732842915FD9817C29CDE1BD68E4527CDA3A77E +AD9B363E69A665224EBEF23DB3C381A8B6FACFD444EA729A2EE211AAD61C900B +792ADE52D0DF52057FEAB8001BF8881B256E73D0C4C334054C8664EA864CC1C7 +A542E153768791D04D4223ED3AAE140684F92A9C72B3E6AAD4FB887E457EA578 +74109CEC10D1E60610B41D659DD71C4A2F8FD38951725CBBD1C133B67E947FAE +3A8AD0736B361807ED883E9567077E8A0DD343BC2B1C5BBC0BC051C8A53C444D +15D641059119EB18A99BE095CCA1150AB21602583117CD5C5E4AC9F857D00F37 +469AE7A0C9F4FE41FC0062D7E08EB8D8E9128B82DE5FA04593461EC01F440085 +CCC56A662F46A22D07FB50EEB071896D83F85B9BEF82A732ADB0C6BA37072A79 +0D4973A038E2853053DA8A45FB38177C1C1D7A888488A00688413CE0E02B05D2 +ECD672F7DD5A65260ED11711A8941B63BEFB346635C0747DFA0AD1F074B0114A +E0A65C17CD7BBE57E5543E6D67DF4A4EAD3D338A77F50E62AFF1A90DCA0725B4 +2793296A690D303A0AD24862BBF3B6733A07936598E990702AAE191A0F75E052 +57801DD80B8C342B8A8EA3249C19E0F276671738E2CDF73E9A433BA49A5C3948 +CF1BAE2C669A00619960E265E645C63B0057E5E140D2F0455D982A90D648CBE0 +5433B67EAB2BA27FF59FC74165954C05D77FD3445BA270CBDAB9D5FA7896A83F +F4D25B9FC040B67462C4DBE2D391983A40C2FAF7039DDF74329FF242C867FCF0 +E8111D8CFBD4881331CB71214D2F63B6F9EDDE7BCE10D108CC73443F4C427281 +70CB57B6B1019340AD05DCC150ECBCFE6E92EEB6FCA584545CFE4663648BE3F4 +6A3A9CD35F1DF7750F0918047DB04114039D4EF050A4C260292A2C758B7A47F1 +0ACF5426EBB0737916FB4F11BA621D7E8A278376DA1C14EF2C661121336D81B0 +037D3FF76E1B90193E7FF345B4CC6936125B998CBCBE15349F1894D1E20041B7 +48A6751B9FA7192F62F7F421E5FBA187188486D17849B5209CA0F8AFEAAD76C4 +E642485A6FE7810033A8ABE856B9E94C98425C60735132F1334A9652F3143BF5 +9D6D129AAC142E3EF0374F2E58BB6DEF36480BC2990BF8A21929AD4DB14B42CE +91A1B5E60587F84C709693FEDC3B816A260A2BBAB8CC350B082F154173E8AE31 +C92B50CBD0A3924BC6FBA9946E327705771B975D3FAFB0D8FB8AC745A6A91D67 +BE7395CB842DF341EF9B6D83563F2AC654EE9A65182C90D88AEAFA8EA1BE1854 +4BE31DAEDBBB59893F5E4B03964D8AD2E2837B404D44DCF4BFA700A051A82BC9 +8E7C8826FEB2967956F02F09D05D665FE4C26A4142A153D7A38937E3DFD06515 +F63CDEE0D89EB9C58350FF50694624D04AFE896DBFC51B5A4621F946EDF34547 +86169212677D2B1C2407B21B0B08119C4CE2BAD69C1193AA97753D75E2275DE3 +E7F6302DA95E3B53580F20727127FD7CFF5DF4E5CE5E272867EA5DC55566108A +9EC3705D2B91A1BCE32BB38C9F3B95D30DC7141B6779A86A8FEC66C3A11FF58D +B32D30E4ED92C8E016A6889FEFF22E6265CD4349B6D956C2E957814F954DB2DE +799BA1DD8E53945101C2C5952E3BF17D397E3EAA15B900D369F201925F8FC24B +0E37AC46EBE8E9F9A65680EFDE1F2B6238C5B2B80377121714610EAE0CACFDAF +6E3E74E0D412020222D476F1C89D2E12E13F6B1FE025B29E96B6349D4BEBD1DF +1DBD75B5D3016BA270D85895CAAC893C2FD780A00816002ADC3DC7B87B087252 +4BE70E24C4B26724D8B1DECF7FF8AA4F4BFEB5CCEC4E75D7E7326A17AC40EFA3 +8346207C2CDB1A90248A4A51150F79734286FAA1A778D5509148BFD638482978 +3E99A0F19E0AD62F9011EED4A9C200B10AB781CAE42617AB2B556D5B9C1C79A8 +DB31D6D1E2CF6FD906FE031C0555CEAB54A999079A92857F73ACDEFF8F10DC5C +737D0AB3226D238BC3D8D90F12DE65E3DBE6363E3C9C2CE711179B349733A2B1 +C3E8FED39817FC942A6E6F77D4C19F1242FF494556027BC01488E481D2665306 +3E2FB9869153DDA63695114A96208F3A8A40E0908597521E543B9605305A3554 +C65C1829BFBD44EE65AF78E1B47B1ECCEE9B863C0A050484E0A247332221455B +1791B8CE5D6BD9C823FB8F6C1F6E7DAE68AF6BD0F237E47A8091AC0FC2243EF4 +D4086A051A32B5F1493B68CA3195D4F379DE7C7A2EB721ADB457E5B7BA35AFFA +8B72D274749CFC33D9808F94D6B1CD50457F1A62B29EDF379204141F1F5E8704 +CCDBDD0DD514EAABBDF147F09064F334B7FA79C280C5E1CA75D53BF349DB87E6 +C33C5F9E960D8EF643325BFAD04686A2E1269DA228431D37423DC52D99D8D3AA +D12D50916BD9EF448CFFEDDC9CE27B33AC96F09CFB58A84831594F137AA7FCE9 +70A338782010C94F7EE70ECF37001EBBB6B907044AF6F572538BB9779806A2CF +DADFF8FD509DE21D04122957AA7837EA48C6C74EEA5A9113B8BF4054EEDD8653 +BFEE326920DCB736B762580CA96D533B36EACE82F90F059EBCA326D65AE6E522 +AB642CE6BB3F729C1BFAC98B0CE631D310BB17E7DC5600A708571FBB219E0216 +606FE121BEEED2F8F97D397DFE374111C19FA21AE47B055E55957C38EDBAC055 +454814D6E9988EBDF6CA74950F34B79DE2979AEA3B3FD43C18A7E19F0A43E94A +978C3548C21020BC615545AC9B75C6BB37A0C0CC7D7D8448A2CF9C89A25FB81D +A4FD219C47DF3B80E8F25FEB6EC541CF077BB1837B55B997A06747FD83BA1D24 +596515B43FCE88D00FDE476531F8B841D7FBC1F4B1A03636965913231158D060 +9532930BC7A2CC1FDF2215C20B5A8033B59F711C864B01762C06AB8722F61F57 +A491BB5C6776CB2ED341108C013242F5475D2F19676A8893BF85E733367414E1 +12478278355809D9497071C5BAD05ADA9CD15A32A0DACA6DA9CDEB7629B092B0 +4A6BB34EE05D2E789F9732C7ACB292EA5066188DEAF310FBCFEB02F99399AD30 +B7D97E0F9012FA1CE47B3947A824EEB39C28B1D89DD2BE6F57042EACF571FA47 +665D8A9079DC3510738F3FD185979BE657853F12F0EBD47724BC7C203E3F51C3 +E3DDD6C0AE7E8822CE7AE60662382B66F9FCCE607E3CAC3AF3612EBE2E3E083C +B2B2C1728A729AD4CBAE78C7104A3A362DA1A4F1981383E0D103A0BC8B3D62BE +1FB63D6A51AFFC15DEEA743C06614A3FCF40EFBD685D77E6AB48EE882846BB9E +E860E7B4A6202084871E7FF6300A8E5F8B16F2A86D75566D92780F0580B0CEE6 +D2B859860630AEF80A1FBDDC726BD6B30EA80A3265C3FFB578C4B1E39260C3A2 +389C5FF2E8FBE8EA43E4CD79E54F4D5B5B59FD8B2293242797F61F260A5B2ADE +0C0B4547EA3F7B0DD04AAB31244DAE58A91EDB297737457DFAD63F1B87BCB9FA +0AE1C1E82BD8D428720D5DAEE09B46EBEB2602A7349FF303BF69B56ADC05819D +14B0FDB8FC85A73B4F8EF524F3F7FF3AA39D7160A8E9DD4EAF62DAEC21FCDE1C +D23C570BEA16460403BEF4C196F74022EC0A24384F4CD05588BFA794B5E0C7B0 +B071E289EED906E7CEB2E3D1ED30D0FB125EF89E13486846FA5C81B128F932F1 +CBD0E31E24FD3F87C1EE2C7A0AAF68B5378C96DD454EFAD9C47ADCA3F1988077 +2660DA5AEE769F9089EE17A4178F58A64A403B519137AB2E5F90D63E155AE0D4 +02B5D9DAE5102946198107DB1720236D687D6D04A21C1DAEFE52DE1E5F2EF71D +C7EBE02A6C81BC7CEEE4A3326DDFFCE28DD5A858B1DB6013A4A488EFBDAC6C9F +544A8719FF0D02B6AE164937C952DA80EEC61AE1C7D1642C10F5AB314F767907 +E1D2FDA315D84A8CA30D7B0E15C68BA024EC1AA66A079BD129C457085DF51001 +08682A2306BC671D498B7D135C42C9B260E9EA44171B5234A49AD8FF367530C9 +C7DF39E95B7E302853AF3D99DF356EFE27B0F9862828B69B2B18962B5BD686B2 +ABF4C9D2E968354FE837109AEFEFD7578BCBB155ECFEB7CED3A48225DCCDF210 +8095DED73E54BA52D77B7FC47D6F330F0E9E84DB1D9B083D8423A1585E8C336D +D1DE7CECFF81F6775B3D71E7F4EBACAEFDFF837009C5E826776349F4D2F7E3BE +1D3A25B2C140BCFD02D0A728805989D0B396694433B21858E338824DF618A7E6 +CBDE101C5E311C471679B0D8CA27699DEE0C3A95FB003DF172358CA9C34293A7 +323A4D72A6DE8857874C91BEF80CC0584320BE481977BF7A359BA4249BCC5DC2 +D8A2DCD1E9B1555EB5EDC1894AB2400E63810510375E4C72848BBB8A2B4189FD +09CDF6FDD521DDDD14E4CF760BBA2A73303E53718B53262B2FA1867E5995C89C +6C47DCA3ED3EAB2EEFB82F121E31653127DA5213879B1A4F86A44D4038660CCA +09C4DBCF72409686B2406DC9B406D9BD2BFB134F7F2737C84B61184EE543242D +2D0E1581AB39C26D0E0AFB95623E918B06A4DDA9E79E287DB8682F299E71B2FE +A1F7B26B8A2EEE3E641A5C93D1CE20B7AECF7DB1776968879ACF768642A52D80 +21D0ABCF1E797A49FBE5A0C424B1DE19613C46C87E40950C64291CC080C3C832 +9C756112F945E72003AC34E90281379A3EE09D38BABFCC6DB2DED54ACE56D7F9 +90E1D9A3FEB42F07BB95F31D6C5845F477985B5BFDB5C6E52DCF62A84DAED840 +2F44C11313946A625875C5DA492867B0DA26FA4BB1A96D92237D1663D3CDADD7 +272F3F7634677AF947409848132D43E8E9860F3E42A1BD27656F3530CA23E6EF +48DA81778F5387183CB5DD3A59344F5DB6BF6405ADB42CDECB85CB48E4527FFC +D2A2458ADE0EAAC8ADA5506D8855890D8597BC8F4891D83E942E58BABA21F9BE +6CDB6C8BC17C2DB20DDE01223C514054CED58E68BE804D0C1472CA3CCA46839B +F07D4F6CA156EE2AF61CD359EC312456BB0B5C2320103A8A502E87A2C0CC468B +8E96B1F277CCC33BB475E3D3749F33B2F835CB591D3A80C6154C8889B4BD474C +A2852CD0004542ECE3F65501C8E3AD2223EDEEA592BA7315B3E9315857324987 +EDDFB0D51B7903E78CBD47FC1423EDB27E0AF64C5CD536513EB7179CCD32AB97 +9D7AB250E019510AD038621C110FC960664F12E2896E098914303524EEB86BBE +D4E81332710F387271A54656A3E43EBF02A1BEEB3FBD7ED3BE4ED7CB3036B88E +AFC5F0291249DBFD9B2072C3F1254554C9B1363EF1652DC266A9DD50BF1EB3DF +623D239EAAAB6333B2BF269D9B0BE3DB020B97ED6834404F5F92640E958A72CD +36116DA64327E126927467CE722674FB3E120D2185E9466757DE5F70420D719D +8E2673E0DA0544136FB80CB4C562B498EE18B39803B2B0B3AA834EF47780B5DA +79FB95FAC386FCB9F7D41851BF7A947B019A5D84558DD5D2D65F0D66FBAABDB9 +B84F04801861022F61ECBBBCB9E25C5EAA4B6440400AC4E21AEB7DBC209BBA02 +7A16B6C76EB5A9D91D1F8FBFE9322CCFA33617C57FDCA52D9923E32522273A4F +1617D2B9132B156AF2512C439DB118DC19861FCB61189153C099CB5BFF20A4D5 +5DCB4E2CC65C0573FEABFC0C7E21C6E866DBB1424D69F24C43176E44479CE006 +730FE4AE1B0237CBD990B50AAAD05B270E78E5CEA05020C6722F519C9A842F5A +BE6655B847AFE2A55000718BB9F4B270264A50D80FABEF3EEDD999A3A3D2BCE6 +802F13EBB6299CDA5A5AFE6076841A93ACD6935DCE3D4010C2A533084558BA1A +9B016D10457B99C50029E92896867A4E176FAEB2DCB99A3532EF4DE084CB1E96 +F4BE65BAD8F8C25AAAF3584932157FE9127A1D7835570CDA77B6F7D0229615B2 +AA21D3E3431778144B7EEEBB956B3595BAC07AB0D751FD62C9A6CECB950C3538 +BC6CD77C8533DDEC5C372AC27C6A2E9A79CCBE36864B8348ED91E9976785CBC4 +EF07FF48B49B29BF1206D7240DAC3A12F989DBB8CBE5F6FA91BC0EDEC04A2A7A +9A6299785CB40219C27824F58C55BCF547FA8DEE5654A43DAC8280B440662928 +0D4E4DC6EEEE1F0C0E35E9228E96B4F573153BAA1D35CF53D894A74C51BB6E4A +55E9B2FFB61F092B4F888065038B55D958BDEBE9598FA3DAD90E5709F0B0E0FF +DE79BE14618CF79A8662E5568F18A3CBC6D09B68DF0FB332D46C40F590987A61 +5E393DB2AB0477C10C8480F0B9A867BF6A02F20351EC59B2DEB1FE00B2EC860D +83E76D2CDF1F213F0497A12BB8AEF9CDC4D03EFFD0B8F3AA9D8ACDE4617960A2 +8EF4C506BE24F2A3B5CDE1B98368A88BDF59015F5349D81684340FC068D66765 +BB73373ECA89499B4F59A4927D2C570A2DFAB416448A04D8DB0A295AF120DA50 +30BE22C955705463FD41D6B601DFB5E620E8FB613286B36DEB36EC9490C2994E +D5435DFC3F0F0F4745A98A60611C5193F1388CD48A18F3E721A524C3F88D1CE6 +373050987B34D4ED2DCD8DA4D8DB16D00A1F0CF4F8CFEBD149EFA78E737B7230 +AF131677ABFC07306CE38120F2953D76A84E39565DFB324E8A5A923914E5E054 +687503DED4E80DE9AA25A7DB3F77364C6F12C00BD8F11C49F08BA70308F9A4DC +E509B0C1319FE1984FC01335AA5A0EC5E7309D2C1EC843575DFCE8B4C2375AEC +C92184932876BAB2367A5B5DB41242F7B409EA9EAD239AD00A804EEEA0787FD3 +2E43FE0F363EC52E5A15897B6075A85548FBD06638730EC69F38F338639319C0 +89809A3CDCB60FF8A60208022DF3468FD483C0B5BA43F46C1D39B5B2CE9B85DF +7A47299E90962361BE2D4AB7910FA184C2BC48AA3B20780D66B2B4EA0EDF5B05 +B6C48D4387773B6D67DF8A9A239475F84E70C0FB2D406020F48D1773913654F4 +45132D01525B3C7BB7AF17F19A8A039BE7F182C1EF0807E02CD76AA543A9E257 +E74BA7A4EF067A92BB470D39523E31F0FC152BCF85932F1C38DC41E67CF045C8 +9B4F7B909D35F1E602D3A3A229AD15F49F02342D7B0D3705679321E100A3407A +95DAF5081DF7D98B53CB97C9D51AC86EC7CCAE3927BF6AA5BACA993455D27408 +5931BFC2ED2F6B06AE0627DD2B697AF0355B2594DCAB53003EBCC39F7BF0C3CB +E299796249322787174180262E89DFED4E33DA5E5E6D60631BA92F43FED7E91D +08408B588D5EA4D42129518881043CD91EA3D8AB42F255007995DC970D1419D7 +67156C21B76893B61FDF55BBA4CD1FA7B4B90AA3F1C64B42CD4BE8714D61B9F9 +D1CB7BE88BC050CED54CCE63B075542943E73E87C2B2EBB941F899184B19C59D +931BAF7F53133948A9B4D302464486909D207BF5D135ECC528376E0FC7DB93DF +849C6F29F1673CD08EEAA67C80EC193D80E9B3502716061AB96442A15E76DFD8 +3A7B74968EFF508B62C4A4C2360095A74F9D039C9A66E5F0BCBF0ACFF1D43B69 +FD50C16DD6ABAB1B320E5463089D771FD4DB65D66129E61F29786C8C249DC8A5 +758EEF3DE93CD763698AE76267C1EAB9A5AF224892D3F743DEB40374E8D6C02D +1A7861E8531EB9918ED5FFF642293D93D41D08299EF196B58D5CD3A1BFAAA350 +A20D2111CFC616ADD3AFB71415FF98E30F5FFE957DEE5E9D803222C6C35D94BD +40A43FB3F565B462D1A8039BD181106EA03C38E1EF81FEF3601203B9F26CA2A5 +BB2EAF08608A52C7C19EF2704F9131312EBFEDED137F7A79C99D1095FF85E470 +B0F79637B3A6F6C45E2589143C070403B2466EFBEABDBDE0895E50379D7D1052 +4F2FC50ABF9EF4BF4483FB93683426701669C3F5E28199B8C87D858D6B1B25FA +D871DCF81CEAB71D3FB7AD2E1E2456A2792720EC91143FCF5B5DB15484E72F84 +FE2A10F5A726363A1F06362BB889E4FAD1A0AD2340E27C644B392A89D7D3484D +73F96123AE36D03FFFFFE633BF015C145A0B25B98CA7D524160379DF43CE3C36 +673F45FAC8A8D63CD03717ECA647F6A3B23634E33BC43B79CB2EEE95CB7E9F01 +4184D7C6B634B9873B04C179D355D829B77A52FF118A9C16D854D4F2E83CF7EA +1BD60244590A81536BD27FBBD5984B985BD6493D8CDEE4C84684A371CEB06102 +7E4D023F72BFE609D408AD65B4BA561365B2B355D5DA63482ED9807D20DD2427 +071139A2D1B1EDAC50899265FA12DDC0FF16568B460F6B3C526276D3966777EE +C6C21E5BFA32145F42081FFF25C70B0AD3230087863840FA43005C337EAA3BE9 +AF577E52D58A351845C91366AC7198B22D0C6019F6C63CEB8109EEED7DA89B24 +D9559DBCD40A9825D40F65BF01E0A8804ADB6B145B9B94AEE12FFD31F57FCD5A +1EA298C3BCBC1646F181516FFFD2FC43046B6BF503DEAF982B479315D5402E63 +8A02A7973465CFD2A7E1B17E20BCAF12B3B17676BC6BCB0DA42A5D339837B76B +ED1B51449B8EE8807D330015006402877FEE9027A263A257C40322A9048803C5 +ABF417D357B4461A99AEEA9AF74755E140986FC19AEFB15AA42AAD4FE9ACB5B5 +358EE6B0F472FF26792FF63664B18307DC2E0E5BAABD1C9C2DCD0524085885D0 +E7F7F8B4FF423B47C7364D615F43FF2E5C3FF57A3662F47418B2B03CE8BC7B2B +667A7F47C7A74E79FF634628D59569261A3A387B7B3FE7ED20E9D705EDE34756 +AEF02031C54E49C9D42A371738870E13B8137627218FD2703FA8FEB440CA4198 +F6A2A43CF219E144108B6CEDEECE86EFCE68A9BC1716B4712420298BA32C1453 +7E6D10684F386702583E55C3A94DB2388EE18EB35261AD61B08A7DA98AE9854C +332A64BA203123AAD3576BE2C635DC60D6B49D116AD99B59FB8CD87AB171AAC9 +ADD81250ED29A7F1F96D3482BEA33964C4AC4719ABC0F647DF5F908E73153610 +0133582A1C79A2D9DB8D643A79CEFE77615806C61DFFFC84C007E3CBF716D4A7 +7D83C8A04F24D096BD77F013440938BF95EFEB58F9AC3839D78F65C86B2CBC32 +53F47E432207E4126D05AA29FF693722863F82130BF90474670D60915279F001 +23408B2F6D821D4DD6EEFA54470DCC72D00F0A67BECB0D1215C461529BC37D20 +FB10CB7342B3EEB935184FB18E309DCF4761F4F69BF29C900534C016B93745FD +39F4B7A4B995597BE15E27ABE6E5A241EAC5F138251E38DADA82A3D2991AC97B +FB5CFA577644F19D176BAD9E33429B14063A8EC1DD93643A9F47AE6F3F5E7F7D +3B1B85C9EADFF3D1B9C015506DCED1166DBDDFBD25AF9A126A5FD97A3486AE49 +1D843BAD8865CF0123F45BE95B08141E270E448D4CC467A7FC3439686C0572E5 +2A9440B9680F6D0F4CF80A43447A4EF4DF2FDD399F3BFAEBD3DAC8B088DFDBE2 +58D27CAB82A1DBF2AECCD34307B873B6AAB6835BF678CC1C1B41E3C0249210D5 +0AF7DBEA28E57D520173E62D8CC1CE880211BB8A5AD7C7C7A9FA113B3D041845 +24E75396857842C00021719D0B458373D7E330036DD09EBA8BEC1CDC59726D59 +B42EEE1C45E26F90454973ACE698117140D912647F9B319651729A722C70E929 +F7D2B04709632AD5A599D0E1BAB38EFDA3BDCE499B01D36EBD12C83C4B3ED5B0 +0E4A2E88DEC143BE3D29A3BB4C833D4F660EA761CE84235CDFFC4A9E234CFE35 +9E1076EB2775DF5345F6A1BA1D40D76B79BD396ED1E83557B5F2FAED0196CE2C +C7611C67C44879CE1012F2A5107FCAE7E1320A267156993D8D0D5940C3FA3AC6 +86488587BCAB96B544F57033A493E6B57A0CF5C72A94DADD111B56D6415FF06C +D7B431EBBF62A745C5E547DA458F5F9A116C7A4C80CC6DBCDB687DEDD9FFCF04 +14B9AEBC57F35F59CEC7EAAD33BFEA3212118D133A71A5C06B665A85FA82E5A3 +0D505148263B59211572B1A3E2138969DB43F18138EE430AC2828566BB5AC27A +BF7E8F06B7CFFBC51E8CB1A41DC1530F29DA63A98BB237E1DBAA8B2DB802F927 +2BEB6DD48DCAD7FA334A3257263855A70D72AE577EB6B3A3D7DBD03BC2FCE5A2 +390387FF25EDBD9BA335F92208AC2BE0AA6928B0986082F65D8541DA9EA536F4 +FA80888DC2C7D0B2E99221F8E5D2E662839363315AC6E2450010438D4D4F4292 +0E5E1CA07E95CF3D5387B7248CFAFFF26BE33F257377364620D7B25AD3F89046 +E733BF97F99C3F73D972934C3E49A591B990DA34D349AED34F536F67D226056B +92A0297DD6D847F4FEBD58298A0A3F4098CB587C22B4A98FB853A5324E66974F +DB075C4B0356D7DA6BA14D11F52250CBA270E51A9132FA75B83755070BC3E8AC +CE3323F5930AD95B8C38722789C58FD2FB323DC4042F80220A7D6785FBA2F391 +78CD6E8DA8C5A6E73782B78412719F576767FC8FD32DB37A7A42188D67A0D11E +18D51E9828ACD95C92070AF1E3BEFC32350FAA0477023C88B2722AC43CFC4678 +544264E96CA849ABC0B49B050AE29C18BD1F81B9150A965B51AAB408E1F8E275 +410E7779A6E30B867100662C6E387F681E2AC94DF450B163710C5A6AB2AB2F7A +0E4E202A3F276AE9BB5685AEC43E0E9B24AACB6CF30DACC57CCB156A2FE5757F +D5060CFC388FF0CDAD86B2F175A17F1E16012D7507B49EF5A694D6B285E7590C +9278371F4FDE7DABBB21518DDF727117D06C8ED481024E3B54C9FE40B781881A +7B7A9E2EB81DA0504CEB7F6CF8369932E8C258EA7916DFD51E49FD93E2D9922C +FB2C2215B368E8FE85C2248C9593756C11AC52299404A93C2D2CF7E8E580FFFC +817B83140261CB056F1B6AB7FEDDC7CF955C77D906B289AF67864931141F5DD8 +6B9009FB2248940C916FFF9F46791F00FB64D50866C790ECA8B242FB54AB3745 +FB3BBE5355FE7B899F4CB013D43F5236FAB1AF707BE2F7B0D8CF4897F885EFC6 +434CF862AA4F638B71E9345C5EC197599B7CD674ED6C1ACFDFE8C2C84D1829E7 +FA741F877C54EF07D95C735711AA314D50B51FE139907AA8748898E2610750B3 +9EE46B01902C530E798CD7A8675C51B782ECEA51A3F152B600E92D2DCC1E1137 +CBF2657B5ACE3C4919E82A2A486BBF07A73D115DDD8373AB72A8ABA000155A1E +C02C7652E9D96EB87FAA286234F71A79197EAEC163AD6224FCEDCE51EAC4AB19 +1A775B623C4AC884B17575E6DDAF6AE55E64FA5C2F1CFDC3AD95B5B665C7C9F3 +82D20A58C6BFAD430C801F63B6C91709849FB4AA42F075A4D25D21F1D83C8391 +04C859D4F355BA56099653AF1D7F591C06423CB8BAC0EBB82E43AE0B7E061F7E +F6E29D8EABE89DA4630501FE2378B642A171BFA6F6F4F647489CFE85C25C2AB4 +3F963F2E52AAEAE8368BCA11A0123D406F78AFE1FFB4B87537429AE2B1611D6D +A8BAD3DBD8CADA2C66849D3E8BEC5CD6F0BA84304EB3F8D75EC1BC91383EAA57 +2363EC047B0ADC98B5DA2D44012C2367DA3A6D2B99C3323A0A6B15CCFF8B533D +BC4C76F76940967781AB6D1AF8C5C0CD16619C0FC295158A597000517D6EA409 +EBDEC75A9D06293588D595D8A72136D3FB97B64D2ADC86CAB5474BB8FE548E9B +DB41C23C4F5AD0655DD946774AD42213C7D49B45CC132F37CEEDF23E8D3B6FE7 +20589E789EAF0B5EFCAFCAA03A1B62A5BC96171C596FB110773FCFB0D990901D +60E06DB0CBF1395F0E90191E27D944F83BDE324122C5F4824681F03FD8B3F8E6 +BC46A595722E9280577251C0E31C0E693FACD76E0A6A212D34E4A8069E5DAA3F +13804E428A8CC22A51F754BF6B3D42DA997EC496492BEDD45C282EAB489A79D7 +2DE49123947BDCCA0C2DDCF8CE8781128E25289B9BC15D2F18F292A0E8B642F3 +D6F5B32DD53A5C578E9F39B2680F1CAB85A319B5F037710AB7968F1DCF08BE88 +5D2F8D1CDB27737332BE3520DE708B90481CFEB893BACCE3451FE5F3F6E734A3 +FD24BA5DB023A8BD03434BF30D9523C4CF7325E15D2A159B003B358057DCCEEF +605C461466437F7A6286ADFE9AFFB9B13BF24489814551B2AA2760AA1AEFC2F2 +722B8BE418B704E7D785705CD22865304D060B216D506C07E1059B2DD14B5AAB +D57A63B2957EAA3CDB10E48C37D66221BC05FFD7489DD7B6F19FB775AF6BA0A6 +CF5D12898D8C2A8EDDE1CCE54913EDF074ED1E35D7EF734BCF85D6C154F2DC90 +5478277243B3D7DC58674BB4608C95DDF7C8444C8B6AFD129541A6D9DF2A9903 +B4D251AC301ECF1042A857306EB3980BA89838253FA7644BA0CBFD4CC574CACB +77E33D64445C0A4A64EFA36037EA854EDA52E903EE14C251B8D73D4BFAAB4FD6 +F2D24373DFEEF7173099659B9855785C10060E8E26F005337F64D253DE9E85E7 +662E9D4D68F1B027252DF51AF44DC0DD7E6F05994A792B3CBE26C2BCF66F64FF +A752ECDFA0A802238C5DC3CA4AF92DA47E1A013D9F930437F677A55EC03EDB6C +B57F0B26378F7887F4C54C520F0DA3ABDE09D74BE8A3DE2236F1C1EFABD69C0C +D3EB0DA09BB16DD0376A0B77C3E28D2DD959BEF829B11EDAA1CF13C7F5F9BFB8 +1C231350208DD35DF45D7FCD20C242CAA437DD7E614E51E37BCFD47019D5608B +95173A100A3701F25FF43125C2AB17E17352B3E41466F51693451A986CD2C642 +40EA04ABFA6BDFBFC31AB307FA726E033D613031AF06E4C6EA569192B99070A2 +5D82A614648F304920496ABEC8502ABF45C0CBD754CE7EC7D57060E03B384538 +BF894FCF7EA07E746A94AFB5CDA77FF669953C174966BC2652FABB40EE00AB25 +337A06AA440580F4F6DC7400BFEC6AC5C58D5C73E87AAF5040ED64B588053864 +432F749B68D6AF46C091114958859BDB75DEFDB2CFC048E1AABCA0FE28113B27 +957AB07CAFE27BEC706BC62948C484A9A5333E8A392326C88A55D973D95DCC70 +92CD97A8EA3D66CE661E4ABAFD6D83229ECF69EE50888F6BEF924D5D63CADD11 +C4D7A21DA0675EA2BF15C9C4DE84998D0B69F5686D4C9B73F085DE5CB431B7D7 +D137CCA6203197EF104B1FAE6B3B7B4B6664F2364E69B1A96D70CC1D817EE595 +54A50F7F0C46F29A20A0BB9E11DA2CFF991921357FB4BC5656B67BA91C5A8243 +6C907AF6C9614230BE133595F665F3ECA8E5E4CD6F9B2006D428EB3BE7DE3397 +E33AAFBE50E2F1E6FEB83FEB404BE3899043ACADEBFFC78CE883BF26D14D84E5 +DAA3D87223393403FE12BD1CF8E6C16EE61427F28841576EB4C112D236981C4B +14A0B373C06015136FFCCEFA2B8ABCDF316265773A1FCE899A4E22D8245A7557 +46998F7D6FFD0BBF1AFCB7EFABE5403BC84CAC9EB3309B8966862B87415EA54A +CB99F5AFBE5037B030B0DC196974895C9EB75A12D5EDACC83F3EE4258B448D2A +167C4DF31B3546B0EAEEDCF31F61134DFC17A6063FCBE09FDA70F7CB8DF5C1F8 +09618DBB3B1FE9E33593AA2B9F4B0F5EEC9202C346B0F15C95D62D7914230F35 +42ACAE6ACE600DDF35F6CB1EC986B5763FC2CAFE50645CFA457AC1843A83B1B9 +45F2743ED899C19C931A852E56BF0BF69F0C433A9F9B45179654A65B4CE96CA9 +FA9F5037C967FCD6DE25880719BE90F58FBA561C3EC59DBFE3CA2A29E95A15AC +EA30AB69593AD005809B105B28C5CD980E8744F48F8B1EDD24E699655ED26D84 +B5629040FAC51F9CFD85D6321453A4294F0C890EF6E9ED7AB312F521C04AC1FF +950B02FE73C055BB10353DA73A25A6E38365B0DEF614B35507173F8D50508C07 +C3D07CA3382F12780D285F882BA433FF021A815380B3C0F16142BCFCB0BDFF7B +E01DB4582A7DA86602F8A6712A346941164F113D2691FCB96DFCCEEC226C3052 +784B1DCD80E20584997B037F581E422829E964D0244CC122EFAE87AE71CB2F9E +7DEA702C99C4FA29569650D150DD0895751A98C965E88764FEC259166FEE1E01 +2322B00834D35DF7500F95CA1A6230667CAF5C9DAD75C0236FE3F8DAED492D1A +AC9A77FD054D15A8F421C67966E5285F8F1A5F3081832718324C1645160BAE46 +7631243A007DEA8E5EC0B31F59AEBD54213F3B113E2C11192A6202BF726C609E +D7AB5FCE51A7BCFBEDC0953E78E669C27239380E74808EACEBE455152E0D20B3 +AD1521947D5035C0E1FEA838CE7A56C032275C12BC254934C49A519353E205CA +116E2E4EAC45278BE0BC8BE3D0668E0A818AAE007661A73CFBFE968C60E5923C +4D74BEA1587335CBB6770C6A319D0BB7F02DB3F01AC52ED574E006BC70E925D0 +97EBC2D8BBCA9E6719F26CFD5EA4BF25567B383C4627CC03490D9D1F95A18BC6 +7FEA0D5481CE6C856FCD37B8EF8FEAF0D3250CF4471ADEDC6073A5E003FD8602 +A890102EA5B9B94C845A4C3C77AED948C590E054B11B06DDFE55413E222308AC +DA972DE63E749FC0FC0548A91FA786359585078B7870002C54E27F81E360E965 +EE71DDC73025CFDB4089ADE1B259C00D2E6125E4C46995C638CCC0B98FE00F23 +A61B9DF8D38DFAEA0E2194AA27C74A1221688937B4AE747FD597244B5DC8BB3C +E8BC00BD0DE53D4A65DB275692F6BD0F99C7FFF99D5CA0394090A51EDBD8A75B +87D35EB07733862636D9E13A5D7CBD3B22FCC97710D52D157D7E5083E49381F4 +8D91CA4331B070A7D90C41D235056947C21C186A9110F31970DA20D2172ECA80 +B9B01B7C965CEA77C1B4C939133425FD0DE08055EB456F71072A77420EFDADAD +46E32BEEE986589FE9140678D83F1874B83D6F7C2D44CBF1A40B920A0FACEC2E +82A4A92EF9D32895C8E97BE6A743C75BA0DE734E669B051BE4443A084D04E679 +49B13B564C6F8C26E09A7F3B1B36A80C4AB6486111DD6B8BE2A73D3D96E8477D +FEF6703EC13578805F29F18D1AEFD56F4F6E6E786CE0636E87B7BBA3E49D58B1 +7F1DD67D7A514B14285BB3BB4CAFA2B493ED4A7990B413F8872EC4D06F43A07A +F7580AEEE11315D01E5E4483B5923B13CC62935561D3AE18D91ED0BF62FFEA21 +CD6FA372F614E4B9FDDDF8159C291DA08A694D9A81C05DA69D2E15CDB29A8A87 +D8C95EE615FF831C3CCDBA64EDA6CE6E1DB95C062E0DC3B301DB5CA1A9AABB6E +637D7DEF9E402CE90BAF65900FF480DBD9FE983FD3845737BB86DF197C087187 +657AAE6FF5F3091EFCBD689B +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndFont +TeXDict begin 39139632 55387786 1000 600 600 (ru-refcard.dvi) +@start /Fa 242[71 13[{}1 66.4176 /CMSY8 rf /Fb 15[39 +1[35 8[31 39 1[35 18[55 85[37 37 51 37 39 27 28 27 1[39 +35 39 59 20 37 1[20 39 35 22 31 39 31 39 35 11[53 1[39 +2[48 55 53 65 2[36 25 1[55 46 48 1[51 50 53 55 1[55 1[55 +5[35 35 1[35 35 35 35 1[20 24 20 44[{T2AEncoding ReEncodeFont}55 +66.4176 /SFRM0800 rf /Fc 197[23 58[{}1 83.022 /CMMI10 +rf /Fd 145[42 3[23 106[{}2 83.022 /CMSY10 rf /Fe 141[35 +3[47 5[42 38 3[38 1[42 97[{T2AEncoding ReEncodeFont}6 +83.022 /SFTI1000 rf /Ff 50 72 1[48 69 57 78 1[53 53 50 +74 50 45 42 53 53 48 53 64 53 53 53 53 42 80 44 53 41 +48 48 46 106[53 6[53 7[29 44 53 54[32 45[{T2AEncoding ReEncodeFont}36 +83.022 /SFBX1000 rf /Fg 130[44 44 44 44 44 44 44 44 44 +44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 +44 44 44 44 1[44 44 44 3[44 2[44 44 44 1[44 2[44 44 4[44 +44 44 44 44 44 44 44 44 44 1[44 1[44 4[44 44 44 44 44 +44 44 44 44 44 44 44 44 44 44 1[44 44 44 44 44 11[44 +18[44 2[{T2AEncoding ReEncodeFont}75 83.022 /SFTT1000 +rf /Fh 69 2[66 95 1[108 108 73 73 69 102 69 62 58 73 +73 66 73 88 73 73 73 73 58 110 60 73 57 66 66 66 11[110 +99 91 95 90 103 1[103 125 1[103 1[103 80 4[93 93 77[52 +2[73 66 73 110 3[37 2[40 2[58 1[66 20[79 2[48 103 2[86 +11[66 66 66 66 66 66 66 66 66 66 3[37 2[51 51 40[{ +T2AEncoding ReEncodeFont}68 119.552 /SFBX1440 rf /Fi +45 62 37 42 60 51 67 67 46 46 44 65 44 42 37 46 46 42 +46 55 46 46 46 46 37 69 37 46 37 42 42 42 14[60 1[65 +1[65 2[65 4[56 65 1[59 72[44 44 2[46 32 33 33 44 46 42 +1[69 23 2[23 1[42 25 37 46 37 1[42 8[62 2[62 6[62 76 +52 3[62 65 1[56 63 9[23 42 2[42 42 42 42 42 42 2[23 28 +23 2[32 32 18[42 3[28 28 16[{T2AEncoding ReEncodeFont}82 +83.022 /SFRM1000 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi @@ -1315,98 +5099,96 @@ end %%EndSetup %%Page: 1 1 -TeXDict begin 1 0 bop 1234 -45 a Fi -(\321\357\360\340\342\356\367\355\340\377)26 b(\352)n(\340\360\362)n -(\340)h(\357\356)g(GNU)i(Emacs)1583 55 y(\(\344\353\377)g -(\342\345\360\361\350\350)e(21\))-128 330 y Fh(1)132 +TeXDict begin 1 0 bop 1258 -45 a Fi +(\321\357\360\340\342\356\367\355\350\352)27 b(\352)n +(\356\354\340\355\344)g(GNU)h(Emacs)1583 55 y(\(\344\353\377)h +(\342\345\360\361\350\350)e(22\))-128 330 y Fh(1)132 b(\307\340\357\363)l(\361\352)45 b(Emacs)-128 511 y Fi(\304\353\377)28 -b(\347\340\357\363)n(\361\352)n(\340)e(GNU)i(Emacs)f(21,)g -(\357\360\356\361\362\356)g(\355\340\341\345\360\350\362\345)h -(\350\354\377)g(\357\360\356\343\360\340\354\354\373:)f -Fg(emacs)-128 611 y Fi(\316)h(\362\356\354,)g(\352)n(\340\352)f -(\356\362\352\360\373\342\340\362\374)g(\364\340\351\353\373,)g -(\367\350\362)n(\340\351\362\345)h(\344\340\353\345\345)f(\342)g -(\360\340\347\344\345\353\345)g(\324\340\351\353\373.)-128 -886 y Fh(2)132 b(\302\373\365)l(\356)l(\344)45 b(\350\347)f(Emacs)-78 -1065 y Fi(\317\360\350\356\361\362)n(\340\355\356\342\350\362\374)26 -b(\360\340\341\356\362\363)h(Emacs)g(\(\350\353\350)h -(\361\342\345\360\355\363\362\374)f(\342)g(\350\352)n(\356\355\352\363) -h(\357\360\350)g(\360\340\341\356\362\345)e(\342)h(X\))255 -b Fg(C-z)-78 1165 y Fi(\302\373\351\362\350)28 b(\350\347)g(Emacs)2307 -b Fg(C-x)42 b(C-c)-128 1410 y Fh(3)132 b(\324\340\351\353\373)-78 -1570 y Ff(\356\362\352\360\373\362\374)28 b Fi(\364\340\351\353)f(\342) -g(\341\363\364\345\360\345)f(Emacs)1717 b Fg(C-x)42 b(C-f)-78 -1670 y Ff(\361\356)m(\365\360\340\355\350\362\374)29 -b Fi(\364\340\351\353)e(\356\341\360\340\362\355\356)g(\355\340)g -(\344\350\361\352)1627 b Fg(C-x)42 b(C-s)-78 1770 y Fi(\361\356)n -(\365\360\340\355\350\362\374)27 b Ff(\342\361\345)g -Fi(\364\340\351\353\373)2104 b Fg(C-x)42 b(s)-78 1869 +b(\347\340\357\363)n(\361\352)n(\340)e(GNU)i(Emacs)f(22,)g +(\357\360\356\361\362\356)f(\355\340\341\345\360\350\362\345)h +(\350\354\377)h(\357\360\356\343\360\340\354\354\373:)f +Fg(emacs)-128 786 y Fh(2)132 b(\302\373\365)l(\356)l(\344)45 +b(\350\347)f(Emacs)-78 966 y Fi(\317\360\350\356\361\362)n +(\340\355\356\342\350\362\374)24 b(\360\340\341\356\362\363)i(Emacs)h +(\(\350\353\350)h(\361\342\345\360\355\363\362\374)e(\342)h(\350\352)n +(\356\355\352\363)h(\357\360\350)g(\360\340\341\356\362\345)d(\342)i +(X\))255 b Fg(C-z)-78 1065 y Fi(\302\373\351\362\350)27 +b(\350\347)h(Emacs)2307 b Fg(C-x)42 b(C-c)-128 1310 y +Fh(3)132 b(\324\340\351\353\373)-78 1471 y Ff +(\356\362\352\360\373\362\374)28 b Fi(\364\340\351\353)f(\342)g(Emacs) +2014 b Fg(C-x)42 b(C-f)-78 1570 y Ff(\361\356)m +(\365\360\340\355\350\362\374)29 b Fi(\364\340\351\353)e +(\356\341\360\340\362\355\356)f(\355\340)h(\344\350\361\352)1627 +b Fg(C-x)42 b(C-s)-78 1670 y Fi(\361\356)n +(\365\360\340\355\350\362\374)26 b Ff(\342\361\345)h +Fi(\364\340\351\353\373)2104 b Fg(C-x)42 b(s)-78 1770 y Ff(\342\361\362)m(\340\342\350\362\374)29 b Fi(\361\356)n (\344\345\360)n(\346\350\354\356\345)d(\344\360\363\343\356\343\356)h -(\364\340\351\353\340)f(\342)h(\362\345\352\363\371\350\351)h -(\341\363\364\345\360)809 b Fg(C-x)42 b(i)-78 1969 y -Fi(\356\362\352\360\373\362\374)28 b(\355\363\346\355\373\351)g -(\342\340\354)f(\364\340\351\353)g(\342\354\345\361\362\356)g -(\362\345\352\363\371\345\343\356)1226 b Fg(C-x)42 b(C-v)-78 -2068 y Fi(\361\356)n(\365\360\340\355\350\362\374)27 -b(\341\363\364\345\360)f(\342)h(\363\352)n +(\364\340\351\353\340)f(\342)h(\362\345\352\363\371\350\351)g +(\341\363\364\345\360)809 b Fg(C-x)42 b(i)-78 1869 y +Fi(\356\362\352\360\373\362\374)26 b(\355\363\346\355\373\351)i +(\342\340\354)f(\364\340\351\353)g(\342\354\345\361\362\356)f +(\362\345\352\363\371\345\343\356)1225 b Fg(C-x)42 b(C-v)-78 +1969 y Fi(\361\356)n(\365\360\340\355\350\362\374)26 +b(\341\363\364\345\360)g(\342)h(\363\352)n (\340\347\340\355\355\356\354)g(\364\340\351\353\345)1534 -b Fg(C-x)42 b(C-w)-78 2168 y Fi -(\302\352\353\376\367\350\362\374/\342\373\352\353\376\367\350\362\374) -28 b(\361\356\361\362\356)n(\377\355\350\345)f -(\341\363\364\345\360\340)f(\020\362\356\353\374\352)n(\356)g -(\344\353\377)i(\367\362\345\355\350\377\021)581 b Fg(C-x)42 -b(C-q)-128 2413 y Fh(4)132 b(\317\356\353\363\367\345\355\350\345)43 -b(\357\356\354\356\371\350)-128 2595 y Fi +b Fg(C-x)42 b(C-w)-78 2068 y Fi +(\317\345\360\345\352\353\376\367\350\362\374)27 b +(\361\356\361\362\356)n(\377\355\350\345)f(\341\363\364\345\360\340)g +(\020\362\356\353\374\352)n(\356)f(\344\353\377)j +(\367\362\345\355\350\377\021)927 b Fg(C-x)42 b(C-q)-128 +2314 y Fh(4)132 b(\317\356\353\363\367\345\355\350\345)43 +b(\357\356\354\356\371\350)-128 2496 y Fi (\321\357\360\340\342\356\367\355\340\377)19 b -(\361\350\361\362\345\354\340)i(\344\356\361\362)n -(\340\362\356\367\355\356)e(\357\360\356\361\362)n(\340.)h -(H\340\346\354\350\362\345)i Fg(C-h)d Fi(\(\350\353\350)i -Fg(F1)p Fi(\))f(\350)h(\361\353\345\344\363\351\362\345)g -(\350\355\361\362\360\363\352\366\350\377\354.)g(\305\361\353\350)h -(\342\373)d(\342)i(\357\345\360\342\373\351)-128 2695 -y(\360\340\347)28 b(\360\340\341\356\362)n(\340\345\362\345)e(\361)h -(Emacs,)h(\355\340\341\345\360\350\362\345)f Fg(C-u)43 -b(C-h)f(t)h(Russian)e(RET)26 b Fi(\344\353\377)i +(\361\350\361\362\345\354\340)h(\344\356\361\362)n +(\340\362\356\367\355\356)d(\357\360\356\361\362)n(\340.)i +(H\340\346\354\350\362\345)i Fg(C-h)e Fi(\(\350\353\350)i +Fg(F1)p Fi(\))f(\350)h(\361\353\345\344\363\351\362\345)f +(\350\355\361\362\360\363\352\366\350\377\354.)g(\305\361\353\350)i +(\342\373)d(\342)i(\357\345\360\342\373\351)-128 2595 +y(\360\340\347)28 b(\360\340\341\356\362)n(\340\345\362\345)c(\361)j +(Emacs,)h(\362\356)f(\355\340\341\345\360\350\362\345)f +Fg(C-u)42 b(C-h)g(t)i(Russian)c(RET)27 b Fi(\344\353\377)h (\342\373\347\356\342\340)d Ff(\363\367\345\341\355\350\352)m(\340)p -Fi(.)-78 2789 y(\307\340\352\360\373\362\374)i(\356\352\355\356)g -(\361\357\360\340\342\352\350)2072 b Fg(C-x)42 b(1)-78 -2889 y Fi(\317\360\356\352\360\363\362\350\362\374)28 -b(\356\352\355\356)f(\361\357\360\340\342\352\350)1940 -b Fg(C-M-v)-78 2988 y Fi(aprop)r(os:)26 b(\357\356\352)n -(\340\347\340\362\374)g(\352)n(\356\354\340\355\344\373,)h -(\361\356\356\362\342\345\362\361\362\342\363\376\371\350\345)g -(\361\362\360\356\352)n(\345)921 b Fg(C-h)42 b(a)-78 -3088 y Fi(\357\356\352)n(\340\347\340\362\374)26 b(\350\354\377)i -(\364\363\355\352\366\350\350,)g(\352)n(\356\362\356\360\340\377)f +Fi(.)-78 2689 y(\321\352\360\373\362\374)i(\356\352\355\356)g +(\361\357\360\340\342\352\350)2104 b Fg(C-x)42 b(1)-78 +2789 y Fi(\317\360\356\352\360\363\362\350\362\374)26 +b(\356\352\355\356)h(\361\357\360\340\342\352\350)1940 +b Fg(C-M-v)-78 2889 y Fi(aprop)r(os:)26 b(\357\356\352)n +(\340\347\340\362\374)f(\352)n(\356\354\340\355\344\373,)i +(\361\356\356\362\342\345\362\361\362\342\363\376\371\350\345)d +(\361\362\360\356\352)n(\345)920 b Fg(C-h)42 b(a)-78 +2988 y Fi(\357\356\352)n(\340\347\340\362\374)25 b(\350\354\377)j +(\364\363\355\352\366\350\350,)g(\352)n(\356\362\356\360\340\377)e (\347\340\357\363)n(\361\352)n(\340\345\362\361)n(\377)e -(\352\353\340\342\350\370\345\351)835 b Fg(C-h)42 b(c)-78 -3187 y Fi(\356\357\350\361\340\362\374)27 b -(\364\363\355\352\366\350\376)2257 b Fg(C-h)42 b(f)-78 -3287 y Fi(\357\356\353\363\367\350\362\374)28 b -(\350\355\364\356\360\354\340\366\350\376)f(\356)g -(\360\345\346\350\354\345)1672 b Fg(C-h)42 b(m)-128 3533 +(\352\353\340\342\350\370\345\351)835 b Fg(C-h)42 b(k)-78 +3088 y Fi(\357\356\353\363\367\350\362\374)27 b +(\350\355\364\356\360\354\340\366\350\376)g(\356)g +(\364\363\355\352\366\350\350)1623 b Fg(C-h)42 b(f)-78 +3187 y Fi(\357\356\353\363\367\350\362\374)27 b +(\350\355\364\356\360\354\340\366\350\376)g(\356)g +(\360\345\346\350\354\345)1672 b Fg(C-h)42 b(m)-128 3434 y Fh(5)132 b(\310\361\357\360\340\342\353\345\355\350\345)43 -b(\356\370\350\341\356\352)-78 3717 y Ff +b(\356\370\350\341\356\352)-78 3617 y Ff (\357\360\345\360\342\340\362\374)28 b Fi -(\367\340\361\362\350\367\355\356)f -(\355\340\341\360\340\355\355\363\376)g(\350\353\350)h +(\367\340\361\362\350\367\355\356)e +(\355\340\341\360\340\355\355\363\376)h(\350\353\350)h (\350\361\357\356\353\355\377\345\354\363\376)g(\352)n -(\356\354\340\355\344\363)682 b Fg(C-g)-78 3816 y Ff +(\356\354\340\355\344\363)682 b Fg(C-g)-78 3717 y Ff (\342\356\361\361\362)m(\340\355\356\342\350\362\374)29 -b Fi(\364\340\351\353,)e(\357\356\362\345\360)n(\377\355\355\373\351)g -(\357\360\350)h(\352\360\340\365)n(\345)f(\361\350\361\362\345\354\373) -895 b Fg(M-x)2857 3916 y(recover-file)-78 4016 y Ff +b Fi(\364\340\351\353,)e(\357\356\362\345\360)n(\377\355\355\373\351)f +(\357\360\350)i(\352\360\340\365)n(\345)f(\361\350\361\362\345\354\373) +894 b Fg(M-x)2857 3816 y(recover-file)-78 3916 y Ff (\356\362\354\345\355\350\362\374)27 b Fi(\355\345\346)n -(\345\353\340\362\345\353\374\355\373\345)g +(\345\353\340\362\345\353\374\355\373\345)f (\350\347\354\345\355\345\355\350\377)1502 b Fg(C-x)42 -b(u)h Fi(\350\353\350)h Fg(C-_)-78 4115 y Fi(\342\356\361\361\362)n -(\340\355\356\342\350\362\374)26 b(\341\363\364\345\360)g(\342)h -(\357\345\360\342\356\355\340)n(\367\340\353\374\355\356\345)e -(\361\356\361\362\356)n(\377\355\350\345)1086 b Fg(M-x)2857 -4215 y(revert-buffer)-78 4315 y Fi -(\357\345\360\345\360\350\361\356\342\340\362\374)27 -b(\347\340\357\356\353\355\345\355\355\373\351)g(\354\363)n +b(u,)h(C-_)2857 4016 y Fi(\350\353\350)g Fg(C-/)-78 4115 +y Fi(\342\356\361\361\362)n(\340\355\356\342\350\362\374)24 +b(\341\363\364\345\360)i(\342)h(\357\345\360\342\356\355\340)n +(\367\340\353\374\355\356\345)e(\361\356\361\362\356)n +(\377\355\350\345)1085 b Fg(M-x)2857 4215 y(revert-buffer)-78 +4315 y Fi(\357\345\360\345\360\350\361\356\342\340\362\374)26 +b(\347\340\357\356\353\355\345\355\355\373\351)h(\354\363)n (\361\356\360\356\354)f(\375\352\360\340\355)1321 b Fg(C-l)-128 4560 y Fh(6)132 b(H\340\360\340\371\350\342\340\345\354\373\351)41 b(\357\356\350\361\352)-78 4743 y Fi(\357\356\350\361\352)28 @@ -1414,50 +5196,50 @@ (\357\356\350\361\352)28 b(\355\340\347\340\344)2477 b Fg(C-r)-78 4943 y Fi(\357\356\350\361\352)28 b(\357\356)f (\360\345\343\363)-5 b(\353\377\360\355\356\354\363)28 -b(\342\373\360\340\346)n(\345\355\350\376)1616 b Fg(C-M-s)-78 -5042 y Fi(\357\356\350\361\352)28 b(\357\356)f(\360\345\343\363)-5 -b(\353\377\360\355\356\354\363)28 b(\342\373\360\340\346)n -(\345\355\350\376)f(\355\340\347\340\344)1376 b Fg(C-M-r)-78 -5142 y Fi(\342\373\341\360\340\362\374)26 b -(\357\360\345\344\373\344\363\371\363\376)i(\361\362\360\356\352\363)g +b(\342\373\360\340\346)n(\345\355\350\376)f(\342\357\345\360\345\344) +1335 b Fg(C-M-s)-78 5042 y Fi(\357\356\350\361\352)28 +b(\357\356)f(\360\345\343\363)-5 b(\353\377\360\355\356\354\363)28 +b(\342\373\360\340\346)n(\345\355\350\376)f(\355\340\347\340\344)1376 +b Fg(C-M-r)-78 5142 y Fi(\342\373\341\360\340\362\374)25 +b(\357\360\345\344\373\344\363\371\363\376)j(\361\362\360\356\352\363)f (\357\356\350\361\352)n(\340)1527 b Fg(M-p)-78 5241 y -Fi(\342\373\341\360\340\362\374)26 b -(\361\353\345\344\363\376\371\363\376)i(\361\362\360\356\352\363)g +Fi(\342\373\341\360\340\362\374)25 b +(\361\353\345\344\363\376\371\363\376)j(\361\362\360\356\352\363)f (\357\356\350\361\352)n(\340)1580 b Fg(M-n)-78 5341 y -Fi(\357\360\345\352\360\340\362\350\362\374)28 b -(\355\340\360\340\371\350\342\340\345\354\373\351)f +Fi(\357\360\345\352\360\340\362\350\362\374)26 b +(\355\340\360\340\371\350\342\340\345\354\373\351)h (\357\356\350\361\352)1659 b Fg(RET)-78 5441 y Fi -(\356\362\354\345\355\350\362\374)28 b(\375\364\364\345\352\362)g -(\342\342\356)n(\344\340)d(\357\356\361\353\345\344\355\345\343\356)i +(\356\362\354\345\355\350\362\374)26 b(\375\364\364\345\352\362)h +(\342\342\356)n(\344\340)e(\357\356\361\353\345\344\355\345\343\356)i (\361\350\354\342\356\353\340)1248 b Fg(DEL)-78 5540 -y Fi(\357\360\345\360\342\340\362\374)27 b +y Fi(\357\360\345\360\342\340\362\374)26 b (\362\345\352\363\371\350\351)h(\357\356\350\361\352)1994 b Fg(C-g)-128 5636 y Fi(\304\353\377)26 b(\357\356\342\362\356\360\340) -f(\357\356\350\361\352)n(\340)f(\342)i(\353\376\341\356\354)f +e(\357\356\350\361\352)n(\340)g(\342)i(\353\376\341\356\354)f (\355\340\357\360\340\342\353\345\355\350\350)h -(\350\361\357\356\353\374\347\363\351\362\345)f -(\352\353\340\342\350\370\350)g Fg(C-s)g Fi(\350\353\350)h +(\350\361\357\356\353\374\347\363\351\362\345)e +(\352\353\340\342\350\370\350)h Fg(C-s)g Fi(\350\353\350)h Fg(C-r)p Fi(.)f(\305\361\353\350)h(Emacs)g(\342\361\345)f(\345\371\345) -h(\357\360\356\350\347-)-128 5736 y(\342\356)n(\344\350\362)i -(\357\356\350\361\352,)f Fg(C-g)f Fi(\356\362\354\345\355\350\362)j -(\362\356\353\374\352)n(\356)e(\355\345\361)n -(\344\345\353\340\355\355\363\376)g(\367\340\361\362\374.)1860 -6192 y(1)p eop end +h(\357\360\356\350\347-)-128 5736 y(\342\356)n(\344\350\362)h +(\357\356\350\361\352,)g Fg(C-g)f Fi(\356\362\354\345\355\350\362)h +(\362\356\353\374\352)n(\356)f(\355\345)h +(\342\373\357\356\353\355\345\355\355\363\376)g(\367\340\361\362\374.) +1860 6192 y(1)p eop end %%Page: 2 2 TeXDict begin 2 1 bop -128 -45 a Fh(7)132 b (\317\345\360\345\354\345\371\345\355\350\345)-78 139 y Ff(\345\344\350\355\350\366\373)32 b -(\357\345\360\345\354\345\371\345\355\350\377)1944 b +(\357\345\360\345\354\345\371\345\355\350\377)1945 b (\355\340\347\340\344)450 b(\342\357\345\360\345\344)-78 239 y Fi(\361\350\354\342\356\353)2667 b Fg(C-b)558 b(C-f)-78 338 y Fi(\361\353\356\342\356)2726 b Fg(M-b)558 b(M-f)-78 -438 y Fi(\361\362\360\356\352)n(\340)2683 b Fg(C-p)558 +438 y Fi(\361\362\360\356\352)n(\340)2682 b Fg(C-p)558 b(C-n)-78 537 y Fi(\355\340)n(\367\340\353\356)26 b(\(\350\353\350)j -(\352)n(\356\355\345\366\))e(\361\362\360\356\352\350)1916 +(\352)n(\356\355\345\366\))e(\361\362\360\356\352\350)1915 b Fg(C-a)558 b(C-e)-78 637 y Fi(\357\360\345\344\353\356)n(\346)n (\345\355\350\345)2441 b Fg(M-a)558 b(M-e)-78 737 y Fi (\340\341\347\340\366)2726 b Fg(M-{)558 b(M-})-78 836 -y Fi(\361\362\360\340\355\350\366\340)2589 b Fg(C-x)42 +y Fi(\361\362\360\340\355\350\366\340)2588 b Fg(C-x)42 b([)472 b(C-x)42 b(])-78 936 y Fi(\342\373\360\340\346)n (\345\355\350\345)27 b(\(sexp\))2261 b Fg(C-M-b)470 b(C-M-f)-78 1036 y Fi(\364\363\355\352\366\350\377)2597 b Fg(C-M-a)470 @@ -1465,389 +5247,393 @@ b(\342)g(\355\340)n(\367\340\353\356)f(\(\350\353\350)i(\352)n (\356\355\345\366\))g(\341\363\364\345\360\340)1508 b Fg(M-<)558 b(M->)-78 1243 y Fi(\357\360\356\352\360\363\362\352)n(\340) -27 b(\375\352\360\340\355\340)g(\342\355\350\347)2054 -b Fg(C-v)-78 1343 y Fi(\357\360\356\352\360\363\362\352)n(\340)27 -b(\375\352\360\340\355\340)g(\342\342\345\360)n(\365)2016 -b Fg(M-v)-78 1442 y Fi(\357\360\356\352\360\363\362\352)n(\340)27 +26 b(\375\352\360\340\355\340)h(\342\355\350\347)2054 +b Fg(C-v)-78 1343 y Fi(\357\360\356\352\360\363\362\352)n(\340)26 +b(\375\352\360\340\355\340)h(\342\342\345\360)n(\365)2016 +b Fg(M-v)-78 1442 y Fi(\357\360\356\352\360\363\362\352)n(\340)26 b(\342\353\345\342\356)2302 b Fg(C-x)42 b(<)-78 1542 -y Fi(\357\360\356\352\360\363\362\352)n(\340)27 b +y Fi(\357\360\356\352\360\363\362\352)n(\340)26 b (\342\357\360\340\342\356)2251 b Fg(C-x)42 b(>)-78 1642 -y Fi(\357\360\356\352\360\363\362\352)n(\340)27 b -(\362\345\352\363\371\345\351)h(\361\362\360\356\352\350)g(\342)f -(\366\345\355\362\360)i(\375\352\360\340\355\340)1306 +y Fi(\363)n(\361\362)n(\340\355\356\342\352)n(\340)24 +b(\362\345\352\363\371\345\351)j(\361\362\360\356\352\350)g(\342)g +(\366\345\355\362\360)h(\375\352\360\340\355\340)1329 b Fg(C-u)42 b(C-l)-128 1887 y Fh(8)132 b(\323\355\350\367\362\356)l (\346)l(\345\355\350\345)44 b(\350)g(\363)-7 b (\344\340\353\345\355\350\345)-78 2070 y Ff(\363\355\350\367\362\356)m -(\346)m(\340\345\354\373\351)33 b(\356\341\372\345\352\362)1956 +(\346)m(\340\345\354\373\351)32 b(\356\341\372\345\352\362)1956 b(\355\340\347\340\344)450 b(\342\357\345\360\345\344)-78 2170 y Fi(\361\350\354\342\356\353)27 b(\(\363)-5 b (\344\340\353\345\355\350\345,)28 b(\340)f(\355\345)h -(\363\355\350\367\362\356)n(\346)n(\345\355\350\345\))1510 +(\363\355\350\367\362\356)n(\346)n(\345\355\350\345\))1509 b Fg(DEL)558 b(C-d)-78 2270 y Fi(\361\353\356\342\356)2726 -b Fg(M-DEL)470 b(M-d)-78 2369 y Fi(\361\362\360\356\352)n(\340)27 -b(\(\344\356)h(\352)n(\356\355\366\340)e(\361\362\360\356\352\350\)) -1972 b Fg(M-0)42 b(C-k)384 b(C-k)-78 2469 y Fi +b Fg(M-DEL)470 b(M-d)-78 2369 y Fi(\361\362\360\356\352)n(\340)26 +b(\(\344\356)i(\352)n(\356\355\366\340)e(\361\362\360\356\352\350\)) +1971 b Fg(M-0)42 b(C-k)384 b(C-k)-78 2469 y Fi (\357\360\345\344\353\356)n(\346)n(\345\355\350\345)2441 b Fg(C-x)42 b(DEL)384 b(M-k)-78 2569 y Fi(\342\373\360\340\346)n (\345\355\350\345)2512 b Fg(M\025)42 b(C-M-k)340 b(C-M-k)-78 -2676 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)28 +2676 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)26 b Ff(\356\341\353\340\361\362\374)2116 b Fg(C-w)-78 2776 -y Fi(\361\352)n(\356\357\350\360\356\342\340\362\374)26 -b(\356\341\353\340\361\362\374)g(\342)h(\361\357\350\361\356\352)h -(\363\355\350\367\362\356)n(\346)n(\345\355\350\351)1265 -b Fg(M-w)-78 2876 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)28 -b(\344\356)f(\361\353\345\344\363\376\371\345\343\356)g(\342\365)n +y Fi(\361\352)n(\356\357\350\360\356\342\340\362\374)25 +b(\356\341\353\340\361\362\374)g(\342)i(\361\357\350\361\356\352)h +(\363\355\350\367\362\356)n(\346)n(\345\355\350\351)1264 +b Fg(M-w)-78 2876 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)26 +b(\344\356)h(\361\353\345\344\363\376\371\345\343\356)g(\342\365)n (\356)n(\346\344\345\355\350\377)f(\361\350\354\342\356\353\340)h Fe(char)916 b Fg(M-z)42 b Fe(char)-78 2975 y Fi(\342\361\362)n -(\340\342\350\362\374)27 b(\357\356\361\353\345\344\355\350\351)g -(\363\355\350\367\362\356)n(\346)n(\345\355\355\373\351)h -(\356\341\372\345\352\362)1306 b Fg(C-y)-78 3075 y Fi -(\347\340\354\345\355\350\362\374)24 b(\362\356\353\374\352)n(\356)e +(\340\342\350\362\374)25 b(\357\356\361\353\345\344\355\350\351)i +(\363\355\350\367\362\356)n(\346)n(\345\355\355\373\351)g +(\356\341\372\345\352\362)1305 b Fg(C-y)-78 3075 y Fi +(\347\340\354\345\355\350\362\374)23 b(\362\356\353\374\352)n(\356)e (\367\362\356)i(\342\356\361\361\362)n -(\340\355\356\342\353\345\355\355\373\351)d(\362\345\352)n(\361\362)k -(\357\360\345\344\370\345\361\362\342\363\376\371\350\354)f +(\340\355\356\342\353\345\355\355\373\351)d(\362\345\352)n(\361\362)j +(\357\360\345\344\370\345\361\362\342\363\376\371\350\354)g (\363\355\350\367\362\356)n(\346)n(\345\355-)-78 3175 -y(\355\373\354)k(\362\345\352)n(\361\362\356\354)2857 +y(\355\373\354)28 b(\362\345\352)n(\361\362\356\354)2857 3075 y(M-y)-128 3420 y Fh(9)132 b(\317\356\354\345\362\352)l(\340)-78 -3580 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)26 -b(\357\356\354\345\362\352\350)2177 b Fg(C-@)42 b Fi(or)g -Fg(C-SPC)-78 3680 y Fi(\356\341\354\345\355\377\362\374)27 -b(\354\345\361\362)n(\340\354\350)h(\352\363\360\361\356\360)f(\350)h -(\357\356\354\345\362\352\363)1546 b Fg(C-x)42 b(C-x)-78 -3779 y Fi(\357\356\354\345\362\350\362\374)28 b Fe(ar)l(g)36 +3580 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)24 +b(\357\356\354\345\362\352\350)2176 b Fg(C-@)42 b Fi(\350\353\350)i +Fg(C-SPC)-78 3680 y Fi(\357\356\354\345\355\377\362\374)27 +b(\354\345\361\362)n(\340\354\350)g(\352\363\360\361\356\360)g(\350)h +(\357\356\354\345\362\352\363)1540 b Fg(C-x)42 b(C-x)-78 +3779 y Fi(\357\356\354\345\362\350\362\374)26 b Fe(ar)l(g)36 b Ff(\361\353\356\342)2219 b Fg(M-@)-78 3879 y Fi -(\357\356\354\345\362\350\362\374)28 b Ff -(\357\340\360\340\343\360\340\364)2144 b Fg(M-h)-78 3979 -y Fi(\357\356\354\345\362\350\362\374)28 b Ff +(\357\356\354\345\362\350\362\374)26 b Ff +(\357\340\360\340\343\360\340\364)2145 b Fg(M-h)-78 3979 +y Fi(\357\356\354\345\362\350\362\374)26 b Ff (\361\362\360\340\355\350\366\363)2162 b Fg(C-x)42 b(C-p)-78 -4078 y Fi(\357\356\354\345\362\350\362\374)28 b Ff -(\342\373\360\340\346)m(\345\355\350\345)2071 b Fg(C-M-@)-78 -4178 y Fi(\357\356\354\345\362\350\362\374)28 b Ff -(\364\363\355\352\366\350\376)2148 b Fg(C-M-h)-78 4277 -y Fi(\357\356\354\345\362\350\362\374)28 b(\342\345\361\374)f -Ff(\341\363\364\345\360)2102 b Fg(C-x)42 b(h)-128 4523 +4078 y Fi(\357\356\354\345\362\350\362\374)26 b Ff +(\342\373\360\340\346)m(\345\355\350\345)2070 b Fg(C-M-@)-78 +4178 y Fi(\357\356\354\345\362\350\362\374)26 b Ff +(\364\363\355\352\366\350\376)2149 b Fg(C-M-h)-78 4277 +y Fi(\357\356\354\345\362\350\362\374)26 b(\342\345\361\374)h +Ff(\341\363\364\345\360)2103 b Fg(C-x)42 b(h)-128 4523 y Fh(10)131 b(\307\340\354\345\355\340)44 b(\361)g (\347\340\357\360\356\361\356\354)-78 4706 y Fi -(\350\355\362\345\360\340\352\362\350\342\355\340\377)28 -b(\347\340\354\345\355\340)f(\362\345\352)n(\361\362\356\342\356\351)g -(\361\362\360\356\352\350)1398 b Fg(M-\045)-78 4806 y +(\350\355\362\345\360\340\352\362\350\342\355\340\377)26 +b(\347\340\354\345\355\340)h(\362\345\352)n(\361\362\356\342\356\351)e +(\361\362\360\356\352\350)1397 b Fg(M-\045)-78 4806 y Fi(\361)28 b(\350\361\357\356\353\374\347\356\342\340\355\350\345\354)e (\360\345\343\363)-5 b(\353\377\360\355\373\365)27 b (\342\373\360\340\346)n(\345\355\350\351)1333 b Fg(M-x)42 b(query-replace-r)o(ege)o(xp)-128 4901 y Fi(\302)28 b (\360\345\346\350\354\345)g -(\350\355\362\345\360\340\352\362\350\342\355\356\351)g -(\347\340\354\345\355\373)f -(\357\356\353\374\347\356\342\340\362\345\353\376)f +(\350\355\362\345\360\340\352\362\350\342\355\356\351)e +(\347\340\354\345\355\373)h +(\357\356\353\374\347\356\342\340\362\345\353\376)e (\344\356\361\362\363\357\355\373)i -(\361\353\345\344\363\376\371\350\345)g(\356\362\342\345\362\373:)-78 -4995 y Ff(\347\340\354\345\355\350\362\374)g Fi -(\344\340\355\355\356\345)f -(\361\356\356\362\342\345\362\361\362\342\350\345,)g -(\357\345\360\345\351\362\350)h(\352)g +(\361\353\345\344\363\376\371\350\345)h(\352)n +(\356\354\340\355\344\373:)-78 4995 y Ff +(\347\340\354\345\355\350\362\374)g Fi(\344\340\355\355\356\345)f +(\361\356\356\362\342\345\362\361\362\342\350\345,)d +(\357\345\360\345\351\362\350)j(\352)h (\361\353\345\344\363\376\371\345\354\363)815 b Fg(SPC)-78 -5095 y Fi(\347\340\354\345\355\350\362\374)28 b(\375\362\356)f -(\361\356\356\362\342\345\362\361\362\342\350\345,)g(\355\345)h -(\357\345\360\345\354\345\371\340\362\374\361)n(\377)1238 +5095 y Fi(\347\340\354\345\355\350\362\374)27 b(\375\362\356)f +(\361\356\356\362\342\345\362\361\362\342\350\345,)e(\355\345)k +(\357\345\360\345\354\345\371\340\362\374\361)n(\377)1237 b Fg(,)-78 5194 y Ff(\357\360\356\357\363)m(\361\362\350\362\374)29 -b Fi(\361\356\356\362\342\345\362\361\362\342\350\345)e(\341\345\347)g -(\347\340\354\345\355\373)1487 b Fg(DEL)-78 5294 y Fi -(\347\340\354\345\355\350\362\374)28 b(\342\361\345)f(\356\361\362)n -(\340\342\370\350\345\361)n(\377)e -(\361\356\356\362\342\345\362\361\362\342\350\377)1468 +b Fi(\361\356\356\362\342\345\362\361\362\342\350\345)24 +b(\341\345\347)j(\347\340\354\345\355\373)1487 b Fg(DEL)-78 +5294 y Fi(\347\340\354\345\355\350\362\374)27 b(\342\361\345)g +(\356\361\362)n(\340\342\370\350\345\361)n(\377)d +(\361\356\356\362\342\345\362\361\362\342\350\377)1465 b Fg(!)-78 5393 y Ff(\342\345\360\355\363\362\374\361)m(\377)29 b Fi(\352)f(\357\360\345\344\373\344\363\371\345\354\363)f -(\361\356\356\362\342\345\362\361\362\342\350\376)1337 +(\361\356\356\362\342\345\362\361\362\342\350\376)1334 b Fg(\002)-78 5493 y Ff(\342\373\351\362\350)28 b Fi(\350\347)g -(\360\345\346\350\354\340)f(\347\340\354\345\355\340)g(\361)h -(\347\340\357\360\356\361\356\354)1508 b Fg(RET)-78 5593 -y Fi(\342\356\351\362\350)38 b(\342)g(\360\345\346\350\354)h +(\360\345\346\350\354\340)f(\020\347\340\354\345\355\340)g(\361)g +(\347\340\357\360\356\361\356\354\021)1453 b Fg(RET)-78 +5593 y Fi(\342\356\351\362\350)37 b(\342)h(\360\345\346\350\354)h (\360\345\352\363\360\361\350\342\355\356\343\356)d -(\360\345\344\340\352\362\350\360\356\342\340\355\350\377)i -(\(\344\353\377)g(\342\373\365)n(\356)n(\344\340)e +(\360\345\344\340\352\362\350\360\356\342\340\355\350\377)h +(\(\344\353\377)h(\342\373\365)n(\356)n(\344\340)e (\350\361\357\356\353\374\347\363)n(\345\362\361)n(\377)-78 5692 y Fg(C-M-c)p Fi(\))2857 5593 y Fg(C-r)1860 6192 y Fi(2)p eop end %%Page: 3 3 -TeXDict begin 3 2 bop -128 -45 a Fh(11)131 b(\314\355\356)l(\346)l -(\345\361\362\342\356)44 b(\356\352)l(\356\355)-128 137 -y Fi(\312\356\354\340\355\344\373,)27 b -(\357\360\350\342\345\344\345\355\355\373\345)h(\342\356)e -(\342\362\356\360\356\354)h(\361\362\356\353\341\366\345,)h -(\357\360\350\354\345\355\377\376\362\361)n(\377)g(\352)g -(\344\360\363\343\356\354\363)f -(\(\355\345\340\352\362\350\342\355\356\354\363\))h(\356\352\355\363)-7 -b(.)-78 236 y(\363)i(\344\340\353\350\362\374)28 b(\342\361\345)f -(\356\361\362)n(\340\353\374\355\373\345)f(\356\352\355\340)1869 -b Fg(C-x)42 b(1)-78 344 y Fi(\360\340\347\341\350\362\374)27 -b(\356\352\355\356)g(\357\356)g(\343\356\360\350\347\356\355\362)n -(\340\353\350)1825 b Fg(C-x)42 b(2)472 b(C-x)42 b(5)h(2)-78 -444 y Fi(\363)-5 b(\344\340\353\350\362\374)28 b -(\344\340\355\355\356\345)f(\356\352\355\356)2143 b Fg(C-x)42 -b(0)472 b(C-x)42 b(5)h(0)-78 543 y Fi(\360\340\347\341\350\362\374)27 -b(\356\352\355\356)g(\357\356)g(\342\345\360\362\350\352)n -(\340\353\350)1904 b Fg(C-x)42 b(3)-78 643 y Fi -(\342\373\357\356\353\355\350\362\374)27 b -(\357\360\356\352\360\363\362\352\363)h(\342)f +TeXDict begin 3 2 bop -128 -45 a Fh(11)131 b +(\310\361\357\356\353\374\347\356\342\340\355\350\345)44 +b(\355\345\361\352)l(\356\353\374\352\350\365)g(\356\352)l(\356\355) +-128 137 y Fi(\312\356\354\340\355\344\373,)26 b +(\357\360\350\342\345\344\345\355\355\373\345)h(\342\356)f +(\342\362\356\360\356\354)f(\361\362\356\353\341\366\345,)g +(\357\360\350\354\345\355\377\376\362\361)n(\377)i(\352)g +(\344\360\363\343\356\354\363)f(\364\360\375\351\354\363)h +(\(\356\352\355\363)f(\350\361\357\356\353\374\347\363)n +(\345\354\356\351)g(\356\352)n(\356\355\355\356\351)-128 +237 y(\361\350\361\362\345\354\373\).)-78 336 y(\363)-5 +b(\344\340\353\350\362\374)27 b(\342\361\345)g(\356\361\362)n +(\340\353\374\355\373\345)e(\356\352\355\340)1869 b Fg(C-x)42 +b(1)-78 444 y Fi(\360\340\347\341\350\362\374)26 b(\356\352\355\356)h +(\357\356)g(\343\356\360\350\347\356\355\362)n(\340\353\350)1824 +b Fg(C-x)42 b(2)472 b(C-x)42 b(5)h(2)-78 543 y Fi(\363)-5 +b(\344\340\353\350\362\374)27 b(\344\340\355\355\356\345)g +(\356\352\355\356)2143 b Fg(C-x)42 b(0)472 b(C-x)42 b(5)h(0)-78 +643 y Fi(\360\340\347\341\350\362\374)26 b(\356\352\355\356)h(\357\356) +g(\342\345\360\362\350\352)n(\340\353\350)1903 b Fg(C-x)42 +b(3)-78 743 y Fi(\342\373\357\356\353\355\350\362\374)26 +b(\357\360\356\352\360\363\362\352\363)h(\342)g (\344\360\363\343\356\354)h(\356\352\355\345)1530 b Fg(C-M-v)-78 -751 y Fi(\357\345\360\345\354\345\361\362\350\362\374)29 -b(\352\363\360\361\356\360)e(\342)g(\344\360\363\343\356\345)g +850 y Fi(\357\345\360\345\354\345\361\362\350\362\374)27 +b(\352\363\360\361\356\360)g(\342)g(\344\360\363\343\356\345)g (\356\352\355\356)1629 b Fg(C-x)42 b(o)472 b(C-x)42 b(5)h(o)-78 -850 y Fi(\342\373\341\360\340\362\374)26 b(\341\363\364\345\360)h(\342) +950 y Fi(\342\373\341\360\340\362\374)25 b(\341\363\364\345\360)i(\342) g(\344\360\363\343\356\354)h(\356\352\355\345)1795 b -Fg(C-x)42 b(4)h(b)385 b(C-x)42 b(5)h(b)-78 950 y Fi(\357\356\352)n -(\340\347\340\362\374)26 b(\341\363\364\345\360)h(\342)g +Fg(C-x)42 b(4)h(b)385 b(C-x)42 b(5)h(b)-78 1050 y Fi(\357\356\352)n +(\340\347\340\362\374)25 b(\341\363\364\345\360)i(\342)g (\344\360\363\343\356\354)g(\356\352\355\345)1775 b Fg(C-x)42 -b(4)h(C-o)297 b(C-x)42 b(5)h(C-o)-78 1050 y Fi -(\347\340\343\360\363\347\350\362\374)27 b(\364\340\351\353)g(\342)g +b(4)h(C-o)297 b(C-x)42 b(5)h(C-o)-78 1149 y Fi +(\347\340\343\360\363\347\350\362\374)26 b(\364\340\351\353)h(\342)g (\344\360\363\343\356\345)g(\356\352\355\356)1786 b Fg(C-x)42 -b(4)h(f)385 b(C-x)42 b(5)h(f)-78 1149 y Fi -(\356\362\352\360\373\362\374)28 b(\364\340\351\353)f(\342)g -(\360\345\346\350\354\345)h(\367\362\345\355\350\377)h(\342)e +b(4)h(f)385 b(C-x)42 b(5)h(f)-78 1249 y Fi +(\356\362\352\360\373\362\374)26 b(\364\340\351\353)h(\342)g +(\360\345\346\350\354\345)h(\367\362\345\355\350\377)g(\342)f (\344\360\363\343\356\354)g(\356\352\355\345)1149 b Fg(C-x)42 -b(4)h(r)385 b(C-x)42 b(5)h(r)-78 1249 y Fi(\347\340\357\363)n -(\361\362\350\362\374)27 b(Dired)h(\342)f(\344\360\363\343\356\354)h +b(4)h(r)385 b(C-x)42 b(5)h(r)-78 1349 y Fi(\347\340\357\363)n +(\361\362\350\362\374)25 b(Dired)j(\342)f(\344\360\363\343\356\354)h (\356\352\355\345)1766 b Fg(C-x)42 b(4)h(d)385 b(C-x)42 -b(5)h(d)-78 1349 y Fi(\355\340\351\362\350)28 b(\362)n(\340\343)g(\342) -f(\344\360\363\343\356\354)g(\356\352\355\345)2003 b -Fg(C-x)42 b(4)h(.)385 b(C-x)42 b(5)h(.)-78 1457 y Fi -(\363\342\345\353\350\367\350\362\374)28 b(\342\373\361\356\362\363)e -(\356\352\355\340)2049 b Fg(C-x)42 b(\002)-78 1556 y -Fi(\361\363\347\350\362\374)28 b(\362\345\352\363\371\345\345)f -(\356\352\355\356)2148 b Fg(C-x)42 b({)-78 1656 y Fi -(\360\340\361\370\350\360\350\362\374)28 b +b(5)h(d)-78 1448 y Fi(\355\340\351\362\350)27 b(\362)n(\340\343)g(\342) +g(\344\360\363\343\356\354)g(\356\352\355\345)2003 b +Fg(C-x)42 b(4)h(.)385 b(C-x)42 b(5)h(.)-78 1556 y Fi +(\363\342\345\353\350\367\350\362\374)27 b(\342\373\361\356\362\363)e +(\356\352\355\340)2049 b Fg(C-x)42 b(\002)-78 1656 y +Fi(\361\363\347\350\362\374)27 b(\362\345\352\363\371\345\345)f +(\356\352\355\356)2148 b Fg(C-x)42 b({)-78 1755 y Fi +(\360\340\361\370\350\360\350\362\374)27 b (\362\345\352\363\371\345\345)f(\356\352\355\356)1982 -b Fg(C-x)42 b(})-128 1901 y Fh(12)131 b +b Fg(C-x)42 b(})-128 2001 y Fh(12)131 b (\324\356\360\354\340\362\350\360\356\342\340\355\350\345)-78 -2085 y Fi(\361)n(\344\345\353\340\362\374)27 b -(\356\362\361\362\363\357)h(\344\353\377)g -(\362\345\352\363\371\345\351)g Ff(\361\362\360\356\352\350)g -Fi(\(\342)f(\347\340\342\350\361\350\354\356\361\362\350)g(\356\362)h -(\360\345\346\350\354\340\))470 b Fg(TAB)-78 2184 y Fi(\361)n -(\344\345\353\340\362\374)27 b(\356\362\361\362\363\357)h(\344\353\377) -g Ff(\356\341\353\340\361\362\350)g Fi(\(\342)g -(\347\340\342\350\361\350\354\356\361\362\350)f(\356\362)g +2184 y Fi(\361)n(\344\345\353\340\362\374)26 b +(\356\362\361\362\363\357)g(\344\353\377)i +(\362\345\352\363\371\345\351)f Ff(\361\362\360\356\352\350)h +Fi(\(\342)f(\347\340\342\350\361\350\354\356\361\362\350)f(\356\362)h +(\360\345\346\350\354\340\))470 b Fg(TAB)-78 2284 y Fi(\361)n +(\344\345\353\340\362\374)26 b(\356\362\361\362\363\357)g(\344\353\377) +i Ff(\356\341\353\340\361\362\350)g Fi(\(\342)g +(\347\340\342\350\361\350\354\356\361\362\350)e(\356\362)g (\360\345\346\350\354\340\))775 b Fg(C-M-)p Fd(n)-78 -2284 y Fi(\361)n(\344\345\353\340\362\374)27 b -(\356\362\361\362\363\357)h(\344\353\377)g Ff(\342\373\360\340\346)m -(\345\355\350\377)h Fi(\(\342)e -(\347\340\342\350\361\350\354\356\361\362\350)g(\356\362)h -(\360\345\346\350\354\340\))617 b Fg(C-M-q)-78 2383 y -Fi(\361)n(\344\345\353\340\362\374)27 b(\356\362\361\362\363\357)h -(\352)g(\347\340\344\340\355\355\356\351)e Fe(ar)l(g)36 +2383 y Fi(\361)n(\344\345\353\340\362\374)26 b +(\356\362\361\362\363\357)g(\344\353\377)i Ff(\342\373\360\340\346)m +(\345\355\350\377)g Fi(\(\342)f +(\347\340\342\350\361\350\354\356\361\362\350)f(\356\362)h +(\360\345\346\350\354\340\))617 b Fg(C-M-q)-78 2483 y +Fi(\361)n(\344\345\353\340\362\374)26 b(\356\362\361\362\363\357)g +(\352)i(\347\340\344\340\355\355\356\351)e Fe(ar)l(g)36 b Fi(\352)n(\356\353\356\355\352)n(\345)1445 b Fg(C-x)42 -b(TAB)-78 2483 y Fi(\342\361\362)n(\340\342\350\362\374)27 -b(\355\356\342\363\376)f(\361\362\360\356\352\363)i -(\357\356\361\353\345)f(\352\363\360\361\356\360\340)1493 -b Fg(C-o)-78 2583 y Fi(\361)n(\344\342\350\355\363\362\374)27 -b(\356\361\362)n(\340\362\356\352)g(\361\362\360\356\352\350)h +b(TAB)-78 2583 y Fi(\342\361\362)n(\340\342\350\362\374)25 +b(\355\356\342\363\376)h(\361\362\360\356\352\363)h +(\357\356\361\353\345)g(\352\363\360\361\356\360\340)1493 +b Fg(C-o)-78 2682 y Fi(\361)n(\344\342\350\355\363\362\374)26 +b(\356\361\362)n(\340\362\356\352)f(\361\362\360\356\352\350)i (\342\345\360\362\350\352)n(\340\353\374\355\356)e(\342\355\350\347) -1293 b Fg(C-M-o)-78 2682 y Fi(\363)-5 b(\344\340\353\350\362\374)28 +1293 b Fg(C-M-o)-78 2782 y Fi(\363)-5 b(\344\340\353\350\362\374)27 b(\357\363)n(\361\362\373\345)f(\361\362\360\356\352\350)h -(\342\356\352\360\363\343)f(\352\363\360\361\356\360\340)1442 -b Fg(C-x)42 b(C-o)-78 2782 y Fi -(\356\341\372\345\344\350\355\350\362\374)27 b -(\361\362\360\356\352\363)h(\361)f +(\342\356\352\360\363\343)g(\352\363\360\361\356\360\340)1442 +b Fg(C-x)42 b(C-o)-78 2882 y Fi +(\356\341\372\345\344\350\355\350\362\374)26 b +(\361\362\360\356\352\363)h(\361)g (\357\360\345\344\373\344\363\371\345\351)h(\(\361\356)f (\361\353\345\344\363\376\371\350\354\350)h(arg\))817 -b Fg(M-\002)-78 2882 y Fi(\363)-5 b(\344\340\353\350\362\374)28 +b Fg(M-\002)-78 2981 y Fi(\363)-5 b(\344\340\353\350\362\374)27 b(\357\363)n(\361\362\356\345)f -(\357\360\356\361\362\360\340\355\361\362\342\356)g -(\342\356\352\360\363\343)g(\352\363\360\361\356\360\340)1211 -b Fg(M-)p Fd(n)-78 2981 y Fi(\357\356\354\345\361\362\350\362\374)28 -b(\362\356\353\374\352)n(\356)f(\356)n(\344\350\355)g +(\357\360\356\361\362\360\340\355\361\362\342\356)f +(\342\356\352\360\363\343)i(\352\363\360\361\356\360\340)1211 +b Fg(M-)p Fd(n)-78 3081 y Fi(\357\356\354\345\361\362\350\362\374)26 +b(\362\356\353\374\352)n(\356)g(\356)n(\344\350\355)h (\357\360\356\341\345\353)g(\342)g(\357\356\347\350\366\350\350)h -(\352\363\360\361\356\360\340)1036 b Fg(M-SPC)-78 3081 -y Fi(\347\340\357\356\353\355\350\362\374)27 b -(\362\345\352\363\371\350\351)h(\357\340\360\340\343\360\340\364)1799 -b Fg(M-q)-78 3180 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374) -26 b(\361\362\356\353\341\345\366)h +(\352\363\360\361\356\360\340)1036 b Fg(M-SPC)-78 3180 +y Fi(\356\362\364\356\360\354\340\362\350\360\356\342\340\362\374)23 +b(\362\345\352\363\371\350\351)k(\357\340\360\340\343\360\340\364)1513 +b Fg(M-q)-78 3280 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374) +24 b(\361\362\356\353\341\345\366)i (\347\340\357\356\353\355\345\355\350\377)1739 b Fg(C-x)42 -b(f)-78 3280 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)26 -b(\357\360\345\364\350\352)n(\361)h +b(f)-78 3380 y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)24 +b(\357\360\345\364\350\352)n(\361)j (\347\340\357\356\353\355\345\355\350\377)g(\352)n -(\340\346\344\356\351)g(\361\362\360\356\352\350)1108 -b Fg(C-x)42 b(.)-78 3380 y Fi(\363)n(\361\362)n -(\340\355\356\342\350\362\374)26 b(\355\340)n(\367\345\360\362)n -(\340\355\350\345)2065 b Fg(M-g)-128 3625 y Fh(13)131 -b(\310\347\354\345\355\345\355\350\345)44 b -(\360\345\343\350\361\362\360\340)-78 3808 y Fi(\361)n -(\344\345\353\340\362\374)27 b(\341\363\352\342\373)g +(\340\346\344\356\351)g(\361\362\360\356\352\350)1107 +b Fg(C-x)42 b(.)-78 3479 y Fi(\363)n(\361\362)n +(\340\355\356\342\350\362\374)24 b(\355\340)n(\367\345\360\362)n +(\340\355\350\345)i(\(face\))1833 b Fg(M-g)-128 3725 +y Fh(13)131 b(\310\347\354\345\355\345\355\350\345)44 +b(\360\345\343\350\361\362\360\340)-78 3908 y Fi(\361)n +(\344\345\353\340\362\374)26 b(\341\363\352\342\373)h (\361\353\356\342\340)f(\347\340\343)n(\353\340\342\355\373\354\350) -1672 b Fg(M-u)-78 3908 y Fi(\361)n(\344\345\353\340\362\374)27 -b(\341\363\352\342\373)g(\361\353\356\342\340)f -(\361\362\360\356\367\355\373\354\350)1704 b Fg(M-l)-78 -4008 y Fi(\361)n(\344\345\353\340\362\374)27 b -(\357\345\360\342\363\376)g(\341\363\352\342\363)g +1672 b Fg(M-u)-78 4008 y Fi(\361)n(\344\345\353\340\362\374)26 +b(\341\363\352\342\373)h(\361\353\356\342\340)f +(\361\362\360\356\367\355\373\354\350)1703 b Fg(M-l)-78 +4107 y Fi(\361)n(\344\345\353\340\362\374)26 b +(\357\345\360\342\363\376)h(\341\363\352\342\363)g (\361\353\356\342\340)f(\347\340\343)n(\353\340\342\355\356\351)1457 -b Fg(M-c)-78 4107 y Fi(\361)n(\344\345\353\340\362\374)27 -b(\341\363\352\342\373)g(\356\341\353\340\361\362\350)f(\347\340\343)n +b Fg(M-c)-78 4207 y Fi(\361)n(\344\345\353\340\362\374)26 +b(\341\363\352\342\373)h(\356\341\353\340\361\362\350)e(\347\340\343)n (\353\340\342\355\373\354\350)1585 b Fg(C-x)42 b(C-u)-78 -4207 y Fi(\361)n(\344\345\353\340\362\374)27 b(\341\363\352\342\373)g -(\356\341\353\340\361\362\350)f(\361\362\360\356\367\355\373\354\350) -1617 b Fg(C-x)42 b(C-l)-128 4453 y Fh(14)131 b -(\314\350\355\350\341\363\364\345\360)-128 4635 y Fi +4307 y Fi(\361)n(\344\345\353\340\362\374)26 b(\341\363\352\342\373)h +(\356\341\353\340\361\362\350)e(\361\362\360\356\367\355\373\354\350) +1616 b Fg(C-x)42 b(C-l)-128 4553 y Fh(14)131 b +(\314\350\355\350\341\363\364\345\360)-128 4735 y Fi (\321\353\345\344\363\376\371\350\345)28 b (\352\353\340\342\350\370\350)f(\(\352\353\376\367\350\))i (\356\357\360\345\344\345\353\345\355\373)e(\342)h -(\354\350\355\350\341\363\364\345\360\345.)-78 4734 y -(\344\356\357\356\353\355\350\362\374)f(\355\340\361\352)n -(\356\353\374\352)n(\356)f(\342\356\347\354\356)n(\346\355\356)1727 -b Fg(TAB)-78 4833 y Fi(\344\356\357\356\353\355\350\362\374)27 -b(\344\356)h(\356)n(\344\355\356\343\356)e(\361\353\356\342\340)1907 -b Fg(SPC)-78 4933 y Fi(\344\356\357\356\353\355\350\362\374)27 -b(\350)h(\342\373\357\356\353\355\350\362\374)2026 b -Fg(RET)-78 5033 y Fi(\357\356\352)n(\340\347\340\362\374)26 -b(\342\356\347\354\356)n(\346\355\373\345)g +(\354\350\355\350\341\363\364\345\360\345.)-78 4833 y +(\344\356\357\356\353\355\350\362\374)e(\355\340\361\352)n +(\356\353\374\352)n(\356)g(\342\356\347\354\356)n(\346\355\356)1727 +b Fg(TAB)-78 4933 y Fi(\344\356\357\356\353\355\350\362\374)26 +b(\344\356)i(\356)n(\344\355\356\343\356)e(\361\353\356\342\340)1907 +b Fg(SPC)-78 5033 y Fi(\344\356\357\356\353\355\350\362\374)26 +b(\350)i(\342\373\357\356\353\355\350\362\374)2025 b +Fg(RET)-78 5132 y Fi(\357\356\352)n(\340\347\340\362\374)25 +b(\342\356\347\354\356)n(\346\355\373\345)h (\344\356\357\356\353\355\345\355\350\377)1677 b Fg(?)-78 -5132 y Fi(\342\373\341\360\340\362\374)26 b -(\357\360\345\344\373\344\363\371\350\351)i(\342\342\356)n(\344)e(\342) -h(\354\350\355\350\341\363\364\345\360)1390 b Fg(M-p)-78 -5232 y Fi(\342\373\341\360\340\362\374)26 b -(\361\353\345\344\363\376\371\350\351)i(\342\342\356)n(\344)e(\342)h -(\354\350\355\350\341\363\364\345\360)1443 b Fg(M-n)-78 -5332 y Fi(\357\356\350\361\352)28 b(\342)f -(\350\361\362\356\360\350\350)h(\357\356)f(\360\345\343\363)-5 +5232 y Fi(\342\373\341\360\340\362\374)25 b +(\357\360\345\344\373\344\363\371\363\376)j(\361\362\360\356\352\363)f +(\350\347)g(\350\361\362\356\360\350\350)g(\342\342\356)n(\344\340)1130 +b Fg(M-p)-78 5332 y Fi(\342\373\341\360\340\362\374)25 +b(\361\353\345\344\363\376\371\363\376)j(\361\362\360\356\352\363)f +(\350\347)g(\350\361\362\356\360\350\350)g(\342\342\356)n(\344\340)1183 +b Fg(M-n)-78 5431 y Fi(\357\356\350\361\352)28 b(\342)f +(\350\361\362\356\360\350\350)g(\357\356)g(\360\345\343\363)-5 b(\353\377\360\355\356\354\363)28 b(\342\373\360\340\346)n -(\345\355\350\376)f(\342)g(\356\341\360\340\362\355\356\354)g +(\345\355\350\376)f(\342)g(\356\341\360\340\362\355\356\354)f (\355\340\357\360\342\353\345\355\350\350)293 b Fg(M-r)-78 -5431 y Fi(\357\356\350\361\352)28 b(\342)f -(\350\361\362\356\360\350\350)h(\357\356)f(\360\345\343\363)-5 +5531 y Fi(\357\356\350\361\352)28 b(\342)f +(\350\361\362\356\360\350\350)g(\357\356)g(\360\345\343\363)-5 b(\353\377\360\355\356\354\363)28 b(\342\373\360\340\346)n (\345\355\350\376)f(\342)g(\357\360)n(\377\354\356\354)h (\355\340\357\360\342\353\345\355\350\350)361 b Fg(M-s)-78 -5531 y Fi(\357\360\345\360\342\340\362\374)27 b(\352)n -(\356\354\340\355\344\363)2247 b Fg(C-g)-128 5627 y Fi -(\315\340\341\345\360\350\362\345)31 b Fg(C-x)42 b(ESC)g(ESC)30 +5630 y Fi(\357\360\345\360\342\340\362\374)26 b(\352)n +(\356\354\340\355\344\363)2247 b Fg(C-g)-128 5726 y Fi +(\315\340\341\345\360\350\362\345)30 b Fg(C-x)42 b(ESC)g(ESC)30 b Fi(\344\353\377)i -(\360\345\344\340\352\362\350\360\356\342\340\355\350\377)e(\350)h -(\357\356\342\362\356\360\345\355\350\377)g -(\357\356\361\353\345\344\355\345\351)g(\352)n +(\360\345\344\340\352\362\350\360\356\342\340\355\350\377)d(\350)i +(\357\356\342\362\356\360\345\355\350\377)f +(\357\356\361\353\345\344\355\345\351)h(\352)n (\356\354\340\355\344\373)f(\355\340\341\360\340\355\355\356\351)g (\342)h(\354\350\355\350\341\363\364\345\360\345.)-128 -5726 y(\315\340\341\345\360\350\362\345)c Fg(F10)p Fi(,)g -(\367\362\356\341\373)g(\360\340\341\356\362)n(\340\362\374)f(\361)h -(\357\363\355\352\362)n(\340\354\350)h(\354\345\355\376)h(\357\360\350) -f(\357\356\354\356\371\350)f(\352)n(\356\354\340\355\344)g -(\354\350\355\350\341\363\364\345\360\340.)1860 6192 +5826 y(\315\340\341\345\360\350\362\345)26 b Fg(F10)p +Fi(,)h(\367\362\356\341\373)f(\360\340\341\356\362)n(\340\362\374)e +(\361)j(\357\363\355\352\362)n(\340\354\350)g(\354\345\355\376)i +(\357\360\350)f(\357\356\354\356\371\350)f(\352)n(\356\354\340\355\344) +g(\354\350\355\350\341\363\364\345\360\340.)1860 6192 y(3)p eop end %%Page: 4 4 TeXDict begin 4 3 bop -128 -45 a Fh(15)131 b(\301\363\364\345\360\340) --78 139 y Fi(\342\373\341\360\340\362\374)26 b -(\344\360\363\343\356\351)i(\341\363\364\345\360)2071 -b Fg(C-x)42 b(b)-78 239 y Fi(\342\373\344\340\362\374)27 -b(\361\357\350\361\356\352)g(\342\361\345\365)g +-78 139 y Fi(\342\373\341\360\340\362\374)25 b +(\344\360\363\343\356\351)j(\341\363\364\345\360)2071 +b Fg(C-x)42 b(b)-78 239 y Fi(\342\373\344\340\362\374)26 +b(\361\357\350\361\356\352)h(\342\361\345\365)g (\341\363\364\345\360\356\342)1849 b Fg(C-x)42 b(C-b)-78 -338 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)28 -b(\341\363\364\345\360)2212 b Fg(C-x)42 b(k)-128 584 -y Fh(16)131 b(\316\341\354\345\355)43 b(\354\345\361\362)l -(\340\354\350)-78 745 y Fi(\356\341\354\345\355\377\362\374)27 -b(\354\345\361\362)n(\340\354\350)h Ff(\361\350\354\342\356\353\373) -1842 b Fg(C-t)-78 844 y Fi(\356\341\354\345\355\377\362\374)27 -b(\354\345\361\362)n(\340\354\350)h Ff(\361\353\356\342\340)1982 -b Fg(M-t)-78 944 y Fi(\356\341\354\345\355\377\362\374)27 -b(\354\345\361\362)n(\340\354\350)h Ff(\361\362\360\356\352\350)1925 -b Fg(C-x)42 b(C-t)-78 1044 y Fi(\356\341\354\345\355\377\362\374)27 +338 y Fi(\363\355\350\367\362\356)n(\346\350\362\374)26 +b(\341\363\364\345\360)2212 b Fg(C-x)42 b(k)-128 583 +y Fh(16)131 b(\317\345\360\345\361\362)l(\340\355\356\342\352)l(\340)44 +b(\344\340\355\355\373\365)-78 767 y Fi +(\356\341\354\345\355\377\362\374)26 b(\354\345\361\362)n(\340\354\350) +h Ff(\361\350\354\342\356\353\373)1842 b Fg(C-t)-78 867 +y Fi(\356\341\354\345\355\377\362\374)26 b(\354\345\361\362)n +(\340\354\350)h Ff(\361\353\356\342\340)1982 b Fg(M-t)-78 +966 y Fi(\356\341\354\345\355\377\362\374)26 b(\354\345\361\362)n +(\340\354\350)h Ff(\361\362\360\356\352\350)1925 b Fg(C-x)42 +b(C-t)-78 1066 y Fi(\356\341\354\345\355\377\362\374)26 b(\354\345\361\362)n(\340\354\350)h Ff(\342\373\360\340\346)m -(\345\355\350\377)1727 b Fg(C-M-t)-128 1289 y Fh(17)131 +(\345\355\350\377)1726 b Fg(C-M-t)-128 1311 y Fh(17)131 b(\317\360\356\342\345\360\352)l(\340)44 b -(\343\360\340\354\354\340\362\350\352\350)-78 1472 y -Fi(\357\360\356\342\345\360\350\362\374)27 b +(\357\360\340\342\356\357\350\361\340\355\350\377)-78 +1495 y Fi(\357\360\356\342\345\360\350\362\374)26 b (\362\345\352\363\371\345\345)h(\361\353\356\342\356)1974 -b Fg(M-$)-78 1572 y Fi(\357\360\356\342\345\360\350\362\374)27 -b(\342\361\345)g(\361\353\356\342\340)f(\342)i -(\356\341\353\340\361\362\350)1776 b Fg(M-x)42 b(ispell-region)-78 -1672 y Fi(\342\373\357\356\353\355\350\362\374)27 b -(\357\360\356\342\345\360\352\363)g(\342\361\345\343\356)f +b Fg(M-$)-78 1594 y Fi(\357\360\356\342\345\360\350\362\374)26 +b(\342\361\345)h(\361\353\356\342\340)f(\342)i +(\356\341\353\340\361\362\350)1775 b Fg(M-x)42 b(ispell-region)-78 +1694 y Fi(\342\373\357\356\353\355\350\362\374)26 b +(\357\360\356\342\345\360\352\363)h(\342\361\345\343\356)f (\341\363\364\345\360\340)1624 b Fg(M-x)42 b(ispell-buffer)-128 -1917 y Fh(18)131 b(\322)-11 b(\345\343\350)-78 2077 y -Fi(\355\340\351\362\350)28 b -(\356\357\360\345\344\345\353\345\355\350\345)g(\362\345\343)n(\340) -2037 b Fg(M-.)-78 2177 y Fi(\355\340\351\362\350)28 b -(\361\353\345\344\363\376\371\345\345)g(\342\365)n(\356)n -(\346\344\345\355\350\345)e(\362\345\343)n(\340)1659 -b Fg(C-u)42 b(M-.)-78 2276 y Fi(\363\352)n(\340\347\340\362\374)26 -b(\355\356\342\373\351)h(\364\340\351\353)g(\361)h(\362\345\343)n -(\340\354\350)1807 b Fg(M-x)42 b(visit-tags-tabl)o(e)-78 -2376 y Fi(\357\356\350\361\352)28 b(\357\356)f +1939 y Fh(18)131 b(\322)-11 b(\345\343\350)-78 2099 y +Fi(\355\340\351\362\350)27 b +(\356\357\360\345\344\345\353\345\355\350\345)h(\362\345\343)n(\340) +2036 b Fg(M-.)-78 2199 y Fi(\355\340\351\362\350)27 b +(\361\353\345\344\363\376\371\345\345)h(\342\365)n(\356)n +(\346\344\345\355\350\345)e(\362\345\343)n(\340)1658 +b Fg(C-u)42 b(M-.)-78 2299 y Fi +(\350\361\357\356\353\374\347\356\342\340\362\374)25 +b(\355\356\342\373\351)h(\364\340\351\353)h(\361)h(\362\345\343)n +(\340\354\350)1594 b Fg(M-x)42 b(visit-tags-tabl)o(e)-78 +2398 y Fi(\357\356\350\361\352)28 b(\357\356)f (\370\340\341\353\356\355\363)f(\357\356)h(\342\361\345\351)g(\362)n -(\340\341\353\350\366\345)g(\362\345\343\356\342)1392 -b Fg(M-x)42 b(tags-search)-78 2476 y Fi -(\342\373\357\356\353\355\350\362\374)27 b(query-replace)f +(\340\341\353\350\366\345)f(\362\345\343\356\342)1391 +b Fg(M-x)42 b(tags-search)-78 2498 y Fi +(\342\373\357\356\353\355\350\362\374)26 b(query-replace)g (\355\340\344)h(\342\361\345\354\350)g(\364\340\351\353\340\354\350) -1237 b Fg(M-x)42 b(tags-query-repl)o(ace)-78 2575 y Fi(\357\360\356)n -(\344\356\353\346\350\362\374)27 b(\357\356\350\361\352)h(\350\353\350) +1237 b Fg(M-x)42 b(tags-query-repl)o(ace)-78 2597 y Fi(\357\360\356)n +(\344\356\353\346\350\362\374)26 b(\357\356\350\361\352)i(\350\353\350) g(\357\356\350\361\352-\347\340\354\345\355\363)e(\362\345\343)n(\340) -1346 b Fg(M-,)-128 2820 y Fh(19)131 b +1345 b Fg(M-,)-128 2843 y Fh(19)131 b (\312\356\354\340\355\344\355\373\345)43 b -(\357\360\356\366\345\361\361\356\360\373)-78 3004 y -Fi(\302\373\357\356\353\355\350\362\374)28 b(\352)n -(\356\354\340\355\344\363)e(\352)n +(\357\360\356\366\345\361\361\356\360\373)-78 3026 y +Fi(\302\373\357\356\353\355\350\362\374)27 b(\352)n +(\356\354\340\355\344\363)f(\352)n (\356\354\340\355\344\355\356\343\356)g (\357\360\356\366\345\361\361\356\360\340)1245 b Fg(M-!)-78 -3104 y Fi(\342\373\357\356\353\355\350\362\374)27 b(\352)n -(\356\354\340\355\344\363)g(\352)n +3126 y Fi(\342\373\357\356\353\355\350\362\374)26 b(\352)n +(\356\354\340\355\344\363)h(\352)n (\356\354\340\355\344\355\356\343\356)f (\357\360\356\366\345\361\361\356\360\340)g(\355\340\344)i -(\356\341\353\340\361\362\374\376)720 b Fg(M-|)-78 3203 -y Fi(\357\360\356\357\363)n(\361\362\350\362\374)28 b(\361\356)n -(\344\345\360)n(\346\350\354\356\345)e(\356\341\353\340\361\362\350)h -(\367\345\360\345\347)h(\352)n(\356\354\340\355\344\363)f(\352)n +(\356\341\353\340\361\362\374\376)719 b Fg(M-|)-78 3225 +y Fi(\357\360\356\357\363)n(\361\362\350\362\374)26 b(\361\356)n +(\344\345\360)n(\346\350\354\356\345)g(\356\341\353\340\361\362\350)g +(\367\345\360\345\347)i(\352)n(\356\354\340\355\344\363)f(\352)n (\356\354\340\355\344\355\356\343\356)f (\357\360\356\366\345\361\361\356\360\340)210 b Fg(C-u)42 -b(M-|)-78 3303 y Fi(\347\340\357\363)n(\361\362\350\362\374)27 -b(\352)n(\356\354\340\355\344\355\373\351)h +b(M-|)-78 3325 y Fi(\347\340\357\363)n(\361\362\350\362\374)25 +b(\352)n(\356\354\340\355\344\355\373\351)j (\357\360\356\366\345\361\361\356\360)e(\342)i(\356\352\355\345)f -Fg(*shell*)1098 b(M-x)42 b(shell)-128 3549 y Fh(20)131 +Fg(*shell*)1098 b(M-x)42 b(shell)-128 3571 y Fh(20)131 b(\317\360)l(\377\354\356\363\343\356\353\374\355\373\345)44 -b(\356\341\353\340\361\362\350)-78 3733 y Fi(\361\352)n -(\356\357\350\360\356\342\340\362\374)26 b(\357\360)n +b(\356\341\353\340\361\362\350)-78 3755 y Fi(\361\352)n +(\356\357\350\360\356\342\340\362\374)25 b(\357\360)n +(\377\354\356\363\343\356\353\374\355\363\376)h +(\356\341\353\340\361\362\374)f(\342)j(\360\345\343\350\361\362\360) +1139 b Fg(C-x)42 b(r)h(r)-78 3854 y Fi(\363)-5 b +(\344\340\353\350\362\374)27 b(\357\360)n +(\377\354\356\363\343\356\353\374\355\363\376)f +(\356\341\353\340\361\362\374)1691 b Fg(C-x)42 b(r)h(k)-78 +3954 y Fi(\342\361\362)n(\340\342\350\362\374)25 b +(\357\356\361\353\345\344\355\363\376)i(\363\355\350\367\362\356)n +(\346)n(\345\355\355\363\376)g(\357\360)n +(\377\354\356\363\343\356\353\374\355\363\376)f +(\356\341\353\340\361\362\374)637 b Fg(C-x)42 b(r)h(y)-78 +4054 y Fi(\356\362\352\360\373\362\374)26 b(\357\360)n (\377\354\356\363\343\356\353\374\355\363\376)g -(\356\341\353\340\361\362\374)g(\342)i(\360\345\343\350\361\362\360) -1140 b Fg(C-x)42 b(r)h(r)-78 3832 y Fi(\363)-5 b -(\344\340\353\350\362\374)28 b(\357\360)n -(\377\354\356\363\343\356\353\374\355\363\376)e -(\356\341\353\340\361\362\374)1692 b Fg(C-x)42 b(r)h(k)-78 -3932 y Fi(\342\361\362)n(\340\342\350\362\374)27 b -(\357\356\361\353\345\344\355\363\376)g(\363\355\350\367\362\356)n -(\346)n(\345\355\355\363\376)h(\357\360)n -(\377\354\356\363\343\356\353\374\355\363\376)e -(\356\341\353\340\361\362\374)638 b Fg(C-x)42 b(r)h(y)-78 -4031 y Fi(\356\362\352\360\373\362\374)28 b(\357\360)n -(\377\354\356\363\343\356\353\374\355\363\376)e -(\356\341\353\340\361\362\374,)h(\361)n(\344\342\350\343)n(\340\377)f -(\362\345\352)n(\361\362)i(\342\357\360\340\342\356)821 -b Fg(C-x)42 b(r)h(o)-78 4131 y Fi(\356\367\350\361\362\350\362\374)28 -b(\357\360)n(\377\354\356\363\343\356\353\374\355\363\376)f -(\356\341\353\340\361\362\374)1652 b Fg(C-x)42 b(r)h(c)-78 -4231 y Fi(\357\360\345\344\342\340\360\350\362\374)27 -b(\352)n(\340\346\344\363\376)h(\361\362\360\356\352\363)f -(\361\362\360\356\352)n(\356\351)g(\362\345\352)n(\361\362)n(\340)1291 -b Fg(C-x)42 b(r)h(t)-128 4476 y Fh(21)131 b -(\321\356\352\360\340\371\345\355\350\377)-78 4659 y -Fi(\344\356\341\340\342\350\362\374)26 b(\343)n -(\353\356\341\340\353\374\355\356\345)f +(\356\341\353\340\361\362\374,)g(\361)n(\344\342\350\343)n(\340\377)g +(\362\345\352)n(\361\362)g(\342\357\360\340\342\356)821 +b Fg(C-x)42 b(r)h(o)-78 4153 y Fi(\356\367\350\361\362\350\362\374)26 +b(\357\360)n(\377\354\356\363\343\356\353\374\355\363\376)h +(\356\341\353\340\361\362\374)1651 b Fg(C-x)42 b(r)h(c)-78 +4253 y Fi(\357\360\345\344\342\340\360\350\362\374)26 +b(\352)n(\340\346\344\363\376)i(\361\362\360\356\352\363)e +(\361\362\360\356\352)n(\356\351)g(\362\345\352)n(\361\362)n(\340)1289 +b Fg(C-x)42 b(r)h(t)-128 4498 y Fh(21)131 b +(\321\356\352\360\340\371\345\355\350\377)-78 4682 y +Fi(\344\356\341\340\342\350\362\374)25 b(\343)n +(\353\356\341\340\353\374\355\356\345)g (\361\356\352\360\340\371\345\355\350\345)1675 b Fg(C-x)42 -b(a)h(g)-78 4759 y Fi(\344\356\341\340\342\350\362\374)26 -b(\353\356\352)n(\340\353\374\355\356\345)g(\344\353\377)i +b(a)h(g)-78 4781 y Fi(\344\356\341\340\342\350\362\374)25 +b(\353\356\352)n(\340\353\374\355\356\345)h(\344\353\377)i (\360\345\346\350\354\340)f(\361\356\352\360\340\371\345\355\350\345) -1220 b Fg(C-x)42 b(a)h(l)-78 4859 y Fi -(\344\356\341\340\342\350\362\374)26 b(\343)n -(\353\356\341\340\353\374\355\356\345)f(\347\355\340)n +1220 b Fg(C-x)42 b(a)h(l)-78 4881 y Fi +(\344\356\341\340\342\350\362\374)25 b(\343)n +(\353\356\341\340\353\374\355\356\345)g(\347\355\340)n (\367\345\355\350\345)i(\344\353\377)h(\344\340\355\355\356\343\356)e (\361\356\352\360\340\371\345\355\350\377)813 b Fg(C-x)42 -b(a)h(i)g(g)-78 4958 y Fi(\344\356\341\340\342\350\362\374)26 -b(\361\357\345\366\350\364\350\367\345\361\352)n(\356\345)h +b(a)h(i)g(g)-78 4981 y Fi(\344\356\341\340\342\350\362\374)25 +b(\361\357\345\366\350\364\350\367\345\361\352)n(\356\345)i (\344\353\377)h(\360\345\346\350\354\340)f(\347\355\340)n (\367\345\355\350\345)g(\344\340\355\355\356\343\356)g (\361\356\352\360\340\371\345\355\350\377)342 b Fg(C-x)42 -b(a)h(i)g(l)-78 5058 y Fi(\377\342\355\356)27 b(\342\361\362)n -(\340\342\350\362\374)f(\347\355\340)n(\367\345\355\350\345)h +b(a)h(i)g(l)-78 5080 y Fi(\377\342\355\356)27 b(\342\361\362)n +(\340\342\350\362\374)d(\347\355\340)n(\367\345\355\350\345)j (\344\353\377)h(\361\356\352\360\340\371\345\355\350\377)1395 -b Fg(C-x)42 b(a)h(e)-78 5158 y Fi +b Fg(C-x)42 b(a)h(e)-78 5180 y Fi (\344\350\355\340\354\350\367\345\361\352\350)28 b -(\344\356\357\356\353\355\350\362\374)g -(\357\360\345\344\373\344\363\371\345\345)f(\361\353\356\342\356)1287 +(\344\356\357\356\353\355\350\362\374)f +(\357\360\345\344\373\344\363\371\345\345)g(\361\353\356\342\356)1287 b Fg(M-/)1860 6192 y Fi(4)p eop end %%Page: 5 5 TeXDict begin 5 4 bop -128 -45 a Fh(22)131 b(\320)l(\345\343\363)-7 @@ -1856,22 +5642,22 @@ b(\356)n(\344\350\355\356\367\355\373\351)g(\361\350\354\342\356\353)g (\(\347\340)h(\350\361\352\353\376\367\345\355\350\345\354)g (\361\350\354\342\356\353\340)f(\355\356\342\356\351)f -(\361\362\360\356\352\350\))388 b Fg(.)43 b Fi(\(dot\))-78 +(\361\362\360\356\352\350\))387 b Fg(.)43 b Fi(\(dot\))-78 239 y(\355\356\353\374)27 b(\350\353\350)h(\341\356\353\345\345)f -(\357\356\342\362\356\360\345\355\350\351)1901 b Fg(*)-78 +(\357\356\342\362\356\360\345\355\350\351)1900 b Fg(*)-78 338 y Fi(\356)n(\344\355\356)27 b(\350\353\350)h(\341\356\353\345\345)e -(\357\356\342\362\356\360\345\355\350\351)1904 b Fg(+)-78 +(\357\356\342\362\356\360\345\355\350\351)1903 b Fg(+)-78 438 y Fi(\355\356\353\374)27 b(\350\353\350)h(\356)n(\344\355\356)f -(\357\356\342\362\356\360\345\355\350\345)1940 b Fg(?)-78 -537 y Fi(\375\352\360\340\355\350\360\356\342\340\362\374)26 -b(\361\357\345\366\350\340\353\374\355\373\351)h +(\357\356\342\362\356\360\345\355\350\345)1939 b Fg(?)-78 +537 y Fi(\375\352\360\340\355\350\360\356\342\340\362\374)25 +b(\361\357\345\366\350\340\353\374\355\373\351)i (\361\350\354\342\356\353)h Fe(c)1536 b Fd(n)p Fe(c)-78 637 y Fi(\342\373\341\356\360)26 b(\354\345\346\344\363)i(\340\353\374) -n(\362\345\360\355\340\362\350\342\340\354\350)f +n(\362\345\360\355\340\362\350\342\340\354\350)d (\(\020\350\353\350\021\))1501 b Fd(nj)-78 737 y Fi (\343\360\363\357\357\350\360\356\342\352)n(\340)2454 b Fd(n)p Fg(\()42 b Fc(:)14 b(:)g(:)44 b Fd(n)p Fg(\))-78 -836 y Fi(\362\345\352)n(\361\362)29 b(\342)e Fe(n)6 b +836 y Fi(\362\345\352)n(\361\362)27 b(\342)g Fe(n)6 b Fi(-\351)27 b(\343\360\363\357\357\345)2227 b Fd(n)p Fe(n)-78 936 y Fi(\343\360\340\355\350\366\340)27 b (\361\353\356\342\340)2394 b Fd(n)p Fg(b)-78 1036 y Fi(\355\345)28 @@ -1881,7 +5667,7 @@ 1243 y(\342\345\362\361\362\342\350\377)3547 1144 y(\352)m (\356\355\345\366)127 b(\361\356\356\362-)3547 1243 y (\342\345\362\361\362\342\350\377)-78 1343 y Fi(\361\362\360\356\352)n -(\340)2683 b Fg(\002)645 b($)-78 1442 y Fi(\361\353\356\342\356)2726 +(\340)2682 b Fg(\002)646 b($)-78 1442 y Fi(\361\353\356\342\356)2726 b Fd(n)p Fg(<)604 b Fd(n)p Fg(>)-78 1542 y Fi(\341\363\364\345\360)2701 b Fd(n)p Fg(`)604 b Fd(n)p Fg(')-78 1650 y Ff(\352\353\340\361\361)33 b(\361\350\354\342\356\353\356\342)2262 b @@ -1890,163 +5676,170 @@ 1750 y(\361\362\342\363)m(\345\362)131 b(\344\360\363-)3547 1849 y(\343\350\354)-78 1949 y Fi(\377\342\355\373\351)28 b(\355\340\341\356\360)2450 b Fg([)43 b Fc(:)14 b(:)g(:)43 -b Fg(])419 b([\002)p Fc(:)14 b(:)g(:)41 b Fg(])-78 2048 +b Fg(])419 b([\002)p Fc(:)14 b(:)g(:)42 b Fg(])-78 2048 y Fi(\361\350\354\342\356\353-\341\363\352\342\340)2423 b Fd(n)p Fg(w)604 b Fd(n)p Fg(W)-78 2148 y Fi(\361\350\354\342\356\353) -27 b(\361)h(\361\350\355\362)n(\340\352)n(\361\350\361\356\354)f +27 b(\361)h(\361\350\355\362)n(\340\352)n(\361\350\361\356\354)e Fe(c)2039 b Fd(n)p Fg(s)p Fe(c)566 b Fd(n)p Fg(S)p Fe(c)-128 2394 y Fh(23)131 b(\314\345\346\344\363\355\340\360\356)l (\344\355\373\345)43 b(\355\340\341\356\360\373)g (\361\350\354\342\356\353\356\342)-78 2578 y Fi -(\342\373\341\360\340\362\374)26 b(\377\347\373\352)2406 -b Fg(M-x)42 b(set-language-en)o(vir)o(on)o(me)o(nt)-78 -2677 y Fi(\357\356\352)n(\340\347\340\362\374)26 b(\342\361\345)h -(\342\356\347\354\356)n(\346\355\373\345)f(\354\345\362\356)n(\344\373) -i(\342\342\356)n(\344\340)1457 b Fg(M-x)42 b(list-input-meth)o(ods)-78 -2777 y Fi(\360\340\347\360\345\370\350\362\374)27 b(\350\353\350)h -(\347\340\357\360\345\362\350\362\374)g(\354\345\362\356)n(\344)g +(\342\373\341\360\340\362\374)25 b(\377\347\373\352)2406 +b Fg(C-x)42 b(RET)g(l)-78 2677 y Fi(\357\356\352)n +(\340\347\340\362\374)25 b(\342\361\345)i(\342\356\347\354\356)n +(\346\355\373\345)f(\354\345\362\356)n(\344\373)h(\342\342\356)n +(\344\340)1457 b Fg(M-x)42 b(list-input-meth)o(ods)-78 +2777 y Fi(\360\340\347\360\345\370\350\362\374)26 b(\350\353\350)i +(\347\340\357\360\345\362\350\362\374)e(\354\345\362\356)n(\344)h (\342\342\356)n(\344\340)1473 b Fg(C-)p Fd(n)-78 2877 -y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)26 -b(\361\350\361\362\345\354\363)i(\352)n(\356)n -(\344\350\360\356\342\340\355\350\377)e(\344\353\377)i +y Fi(\363)n(\361\362)n(\340\355\356\342\350\362\374)24 +b(\361\350\361\362\345\354\363)j(\352)n(\356)n +(\344\350\360\356\342\340\355\350\377)f(\344\353\377)i (\361\353\345\344\363\376\371\345\351)f(\352)n (\356\354\340\355\344\373)705 b Fg(C-x)42 b(RET)g(c)-78 -2976 y Fi(\357\356\352)n(\340\347\340\362\374)26 b -(\361\357\350\361\356\352)i(\342\361\345\365)e -(\361\350\361\362\345\354)j(\352)n(\356)n +2976 y Fi(\357\356\352)n(\340\347\340\362\374)25 b +(\361\357\350\361\356\352)j(\342\361\345\365)e +(\361\350\361\362\345\354)i(\352)n(\356)n (\344\350\360\356\342\340\355\350\377)1338 b Fg(M-x)42 b(list-coding-sys)o(tem)o(s)-78 3076 y Fi(\342\373\341\360\340\362\374) -26 b(\357\360\345\344\357\356\367\362\350\362\345\353\374\355\363\376)j -(\361\350\361\362\345\354\363)f(\352)n(\356)n +25 b(\357\360\345\344\357\356\367\362\350\362\345\353\374\355\363\376)i +(\361\350\361\362\345\354\363)g(\352)n(\356)n (\344\350\360\356\342\340\355\350\377)1041 b Fg(M-x)42 b(prefer-coding-s)o(yst)o(em)-128 3329 y Fh(24)131 b (\310\355\364\356\360\354\340\366\350\377)44 b (\(\361\350\361\362\345\354\340)g(Info\))-78 3519 y Fi -(\347\340\357\363)n(\361\362\350\362\374)27 b -(\361\350\361\362\345\354\363)i(\344\356\361\362\363\357\340)e(\352)g -(\344\356\352\363\354\345\355\362)n(\340\366\350\350)1275 -b Fg(C-h)42 b(i)-78 3619 y Fi(\355\340\351\362\350)28 -b(\363\352)n(\340\347\340\355\355\363\376)f +(\347\340\357\363)n(\361\362\350\362\374)25 b +(\361\350\361\362\345\354\363)j(\344\356\361\362\363\357\340)e(\352)h +(\344\356\352\363\354\345\355\362)n(\340\366\350\350)1274 +b Fg(C-h)42 b(i)-78 3619 y Fi(\355\340\351\362\350)27 +b(\363\352)n(\340\347\340\355\355\363\376)g (\364\363\355\352\366\350\376)g(\350\353\350)h (\357\345\360\345\354\345\355\355\363\376)h(\342)e -(\344\356\352\363\354\345\355\362)n(\340\366\350\350)615 -b Fg(C-h)42 b(C-i)-128 3719 y Fi +(\344\356\352\363\354\345\355\362)n(\340\366\350\350)614 +b Fg(C-h)42 b(S)-128 3719 y Fi (\317\345\360\345\354\345\371\345\355\350\345)28 b -(\342\355\363\362\360\350)f(\363\347\353\340)g(\(\355\356)n +(\342\355\363\362\360\350)e(\363\347\353\340)h(\(\355\356)n (\344\340\354\350\):)-78 3818 y(\357\360\356\352\360\363\362\352)n -(\340)g(\342\357\345\360\345\344)2257 b Fg(SPC)-78 3917 -y Fi(\357\360\356\352\360\363\362\352)n(\340)27 b(\355\340\347\340\344) -2298 b Fg(DEL)-78 4017 y Fi(\357\345\360\345\351\362\350)29 -b(\352)e(\355\340)n(\367\340\353\363)g(\363\347\353\340)2074 +(\340)f(\342\357\345\360\345\344)2257 b Fg(SPC)-78 3917 +y Fi(\357\360\356\352\360\363\362\352)n(\340)26 b(\355\340\347\340\344) +2298 b Fg(DEL)-78 4017 y Fi(\357\345\360\345\351\362\350)28 +b(\352)f(\355\340)n(\367\340\353\363)g(\363\347\353\340)2074 b Fg(.)43 b Fi(\(dot\))-128 4112 y (\317\345\360\345\354\345\371\345\355\350\345)28 b (\354\345\346\344\363)g(\363\347\353\340\354\350:)-78 -4206 y Ff(\361\353\345\344\363\376\371\350\351)f Fi(\363\347\345\353) -2245 b Fg(n)-78 4306 y Ff(\357\360\345\344\373\344\363\371\350\351)27 +4206 y Ff(\361\353\345\344\363\376\371\350\351)g Fi(\363\347\345\353) +2245 b Fg(n)-78 4306 y Ff(\357\360\345\344\373\344\363\371\350\351)28 b Fi(\363\347\345\353)2184 b Fg(p)-78 4405 y Fi -(\357\345\360\345\351\362\350)29 b(\352)e Ff(\342\345\360)m +(\357\345\360\345\351\362\350)28 b(\352)f Ff(\342\345\360)m (\365\355\345\354\363)h Fi(\363\347\353\363)1932 b Fg(u)-78 -4505 y Fi(\342\373\341\360\340\362\374)26 b(\354\345\355\376)j -(\357\356)e(\350\354\345\355\350)2020 b Fg(m)-78 4605 -y Fi(\342\373\341\360\340\362\374)26 b Fe(n)6 b Fi(-\351)28 -b(\357\363\355\352\362)g(\354\345\355\376)h(\357\356)e -(\355\356\354\345\360\363)g(\(1\0259\))1357 b Fe(n)-78 -4704 y Fi(\357\345\360\345\351\362\350)29 b(\357\356)e -(\361\361\373\353\352)n(\345)g(\(\342\356\347\342\360\340\362)g(\361)g -(\357\356\354\356\371\374\376)g Fg(l)p Fi(\))1330 b Fg(f)-78 -4804 y Fi(\342\356\347\342\360\340\362\350\362\361)n(\377)27 -b(\352)g(\357\356\361\353\345\344\355\345\354\363)h -(\357\360\356\361\354\356\362\360\345\355\355\356\354\363)f +4505 y Fi(\342\373\341\360\340\362\374)25 b(\357\363\355\352\362)j +(\354\345\355\376)g(\357\356)f(\350\354\345\355\350)1769 +b Fg(m)-78 4605 y Fi(\342\373\341\360\340\362\374)25 +b Fe(n)6 b Fi(-\351)28 b(\357\363\355\352\362)f(\354\345\355\376)i +(\357\356)e(\355\356\354\345\360\363)g(\(1\0259\))1357 +b Fe(n)-78 4704 y Fi(\357\345\360\345\351\362\350)28 +b(\357\356)f(\361\361\373\353\352)n(\345)g +(\(\342\356\347\342\360\340\362)f(\361)h(\357\356\354\356\371\374\376)g +Fg(l)p Fi(\))1330 b Fg(f)-78 4804 y Fi +(\342\356\347\342\360\340\362\350\362\361)n(\377)25 b(\352)i +(\357\356\361\353\345\344\355\345\354\363)h +(\357\360\356\361\354\356\362\360\345\355\355\356\354\363)e (\363\347\353\363)1089 b Fg(l)-78 4904 y Fi -(\342\356\347\342\360\340\362\350\362\361)n(\377)27 b(\352)g -(\363\347\353\363-\352)n(\340\362)n(\340\353\356\343\363)1841 -b Fg(d)-78 5003 y Fi(\357\345\360\345\351\362\350)29 -b(\352)e(\363\347\353\363)-7 b(,)28 b -(\347\340\344\340\355\355\356\354\363)e(\350\354\345\355\345\354)1617 -b Fg(g)-128 5098 y Fi(\304\360\363\343\350\345)27 b(\352)n -(\356\354\340\355\344\373:)-78 5192 y(\347\340\357\363)n -(\361\362\350\362\374)g Ff(\363\367\345\341\355\350\352)h -Fi(\357\356)f(\361\350\361\362\345\354\345)i -(\344\356\352\363\354\345\355\362)n(\340\366\350\350)1183 -b Fg(h)-78 5292 y Ff(\357\360\345\352\360\340\362\350\362\374)32 -b(\360\340\341\356\362\363)d Fi(\361)e -(\344\356\352\363\354\345\355\362)n(\340\366\350\345\351)1455 -b Fg(q)-78 5392 y Fi(\357\356\350\361\352)28 b(\342)f +(\342\356\347\342\360\340\362\350\362\361)n(\377)25 b(\352)i +(\363\347\353\363-\352)n(\340\362)n(\340\353\356\343\363)1840 +b Fg(d)-78 5003 y Fi(\317\345\360\345\351\362\350)27 +b(\352)h(\342\345\360)n(\365)n(\345\354\363)e(\363\347\353\363)i +(\364\340\351\353\340)1748 b Fg(t)-78 5103 y Fi +(\357\345\360\345\351\362\350)28 b(\352)f(\363\347\353\363)-7 +b(,)28 b(\347\340\344\340\355\355\356\354\363)e +(\350\354\345\355\345\354)1617 b Fg(g)-128 5198 y Fi +(\304\360\363\343\350\345)27 b(\352)n(\356\354\340\355\344\373:)-78 +5292 y(\347\340\357\363)n(\361\362\350\362\374)e Ff +(\363\367\345\341\355\350\352)j Fi(\357\356)f +(\361\350\361\362\345\354\345)h(\344\356\352\363\354\345\355\362)n +(\340\366\350\350)1182 b Fg(h)-78 5392 y Fi(\357\356\350\361\352)28 +b(\362\345\354\373)f(\342)g(\350\355\344\345\352)n(\361\345)2107 +b Fg(i)-78 5491 y Fi(\357\356\350\361\352)28 b(\342)f (\363\347\353\340\365)g(\361)g(\357\356\354\356\371\374\376)g (\360\345\343\363)-5 b(\353\377\360\355\373\365)28 b -(\342\373\360\340\346)n(\345\355\350\351)1028 b Fg(M-s)1860 -6192 y Fi(5)p eop end +(\342\373\360\340\346)n(\345\355\350\351)1028 b Fg(s)-78 +5591 y Ff(\357\360\345\352\360\340\362\350\362\374)32 +b(\360\340\341\356\362\363)d Fi(\361)e +(\344\356\352\363\354\345\355\362)n(\340\366\350\345\351)1454 +b Fg(q)1860 6192 y Fi(5)p eop end %%Page: 6 6 TeXDict begin 6 5 bop -128 -45 a Fh(25)131 b(\320)l (\345\343\350\361\362\360\373)-78 139 y Fi(\361\356)n -(\365\360\340\355\350\362\374)27 b(\356\341\353\340\361\362\374)f(\342) -h(\360\345\343\350\361\362\360\345)1810 b Fg(C-x)42 b(r)h(s)-78 -239 y Fi(\342\361\362)n(\340\342\350\362\374)27 b(\361\356)n -(\344\345\360)n(\346\350\354\356\345)f -(\360\345\343\350\361\362\360\340)i(\342)f(\341\363\364\345\360)1435 +(\365\360\340\355\350\362\374)26 b(\356\341\353\340\361\362\374)f(\342) +i(\360\345\343\350\361\362\360\345)1809 b Fg(C-x)42 b(r)h(s)-78 +239 y Fi(\342\361\362)n(\340\342\350\362\374)25 b(\361\356)n +(\344\345\360)n(\346\350\354\356\345)h +(\360\345\343\350\361\362\360\340)h(\342)g(\341\363\364\345\360)1435 b Fg(C-x)42 b(r)h(i)-78 338 y Fi(\361\356)n -(\365\360\340\355\350\362\374)27 b(\357\356\353\356)n(\346)n -(\345\355\350\345)f(\352\363\360\361\356\360\340)h(\342)g -(\360\345\343\350\361\362\360\345)1365 b Fg(C-x)42 b(r)h(SPC)-78 -438 y Fi(\357\345\360\345\351\362\350)29 b(\352)e(\357\356\353\356)n +(\365\360\340\355\350\362\374)26 b(\357\356\353\356)n(\346)n +(\345\355\350\345)g(\352\363\360\361\356\360\340)h(\342)g +(\360\345\343\350\361\362\360\345)1364 b Fg(C-x)42 b(r)h(SPC)-78 +438 y Fi(\357\345\360\345\351\362\350)28 b(\352)f(\357\356\353\356)n (\346)n(\345\355\350\376)g(\352\363\360\361\356\360\340,)g(\361\356)n (\365\360\340\355\345\355\355\356\354\363)f(\342)h -(\360\345\343\350\361\362\360\345)775 b Fg(C-x)42 b(r)h(j)-128 +(\360\345\343\350\361\362\360\345)774 b Fg(C-x)42 b(r)h(j)-128 683 y Fh(26)131 b(\312\353\340\342\350\340\362\363\360\355\373\345)44 b(\354\340\352\360\356\361\373)-78 867 y Ff(\355\340)m (\367\340\362\374)29 b Fi(\356\357\360\345\344\345\353\345\355\350\345) -e(\352\353\340\342\350\340\362\363\360\355\356\343\356)f +e(\352\353\340\342\350\340\362\363\360\355\356\343\356)e (\354\340\352\360\356\361\340)1227 b Fg(C-x)42 b(\()-78 966 y Ff(\347\340\352)m(\356\355\367\350\362\374)29 b Fi(\356\357\360\345\344\345\353\345\355\350\345)e -(\352\353\340\342\350\340\362\363\360\355\356\343\356)f +(\352\353\340\342\350\340\362\363\360\355\356\343\356)e (\354\340\352\360\356\361\340)1077 b Fg(C-x)42 b(\))-78 1066 y Ff(\342\373\357\356\353\355\350\362\374)27 b Fi (\357\356\361\353\345\344\355\350\351)h (\356\357\360\345\344\345\353\345\355\355\373\351)g (\354\340\352\360\356\361)1187 b Fg(C-x)42 b(e)-78 1165 -y Fi(\344\356\357\356\353\355\350\362\374)27 b -(\357\356\361\353\345\344\355\350\351)h +y Fi(\344\356\357\356\353\355\350\362\374)26 b +(\357\356\361\353\345\344\355\350\351)i (\356\357\360\345\344\345\353\345\355\355\373\351)g (\354\340\352\360\356\361)1260 b Fg(C-u)42 b(C-x)g(\()-78 -1265 y Fi(\347\340\344\340\362\374)27 b(\350\354\377)h(\344\353\377)g +1265 y Fi(\347\340\344\340\362\374)26 b(\350\354\377)i(\344\353\377)g (\357\356\361\353\345\344\355\345\343\356)f (\356\357\360\345\344\345\353\345\355\355\356\343\356)f (\354\340\352\360\356\361\340)990 b Fg(M-x)42 b(name-last-kbd-m)o(acr)o -(o)-78 1365 y Fi(\342\361\362)n(\340\342\350\362\374)27 -b(\342)g(\341\363\364\345\360)f +(o)-78 1365 y Fi(\342\361\362)n(\340\342\350\362\374)25 +b(\342)i(\341\363\364\345\360)f (\356\357\360\345\344\345\353\345\355\350\345)i (\354\340\352\360\356\361\340)e(\355\340)i(\377\347\373\352)n(\345)f (Lisp)898 b Fg(M-x)42 b(insert-kbd-macr)o(o)-128 1611 y Fh(27)131 b(\312\356\354\340\355\344\373,)43 b (\361\342\377\347\340\355\355\373\345)h(\361)h(Emacs)e(Lisp)-78 -1794 y Fi(\342\373\367\350\361\353\350\362\374)28 b Ff -(\342\373\360\340\346)m(\345\355\350\345)g Fi(\357\345\360\345\344)g +1794 y Fi(\342\373\367\350\361\353\350\362\374)27 b Ff +(\342\373\360\340\346)m(\345\355\350\345)g Fi(\357\345\360\345\344)h (\352\363\360\361\356\360\356\354)1389 b Fg(C-x)42 b(C-e)-78 -1894 y Fi(\342\373\367\350\361\353\350\362\374)28 b -(\362\345\352\363\371\363\376)g(\364\363\355\352\366\350\376)f +1894 y Fi(\342\373\367\350\361\353\350\362\374)27 b +(\362\345\352\363\371\363\376)g(\364\363\355\352\366\350\376)g Ff(defun)1518 b Fg(C-M-x)-78 1994 y Fi -(\342\373\367\350\361\353\350\362\374)28 b Ff -(\356\341\353\340\361\362\374)g Fi(\352)n(\340\352)f +(\342\373\367\350\361\353\350\362\374)27 b Ff +(\356\341\353\340\361\362\374)h Fi(\352)n(\340\352)f (\342\373\360\340\346)n(\345\355\350\345)1561 b Fg(M-x)42 -b(eval-region)-78 2093 y Fi(\361\367\350\362)n(\340\362\374)28 -b(\350)g(\342\373\367\350\361\353\350\362\374)f(\342\373\360\340\346)n -(\345\355\350\345)g(\350\347)g +b(eval-region)-78 2093 y Fi(\361\367\350\362)n(\340\362\374)26 +b(\350)i(\342\373\367\350\361\353\350\362\374)e(\342\373\360\340\346)n +(\345\355\350\345)h(\350\347)g (\354\350\355\350\341\363\364\345\360\340)1078 b Fg(M-:)-78 -2193 y Fi(\347\340\343\360\363\347\350\362\374)27 b(\350\347)h -(\361\362)n(\340\355\344\340\360\362\355\356\343\356)e -(\361\350\361\362\345\354\355\356\343\356)i(\352)n(\340\362)n -(\340\353\356\343)n(\340)1113 b Fg(M-x)42 b(load-library)-128 +2193 y Fi(\347\340\343\360\363\347\350\362\374)26 b(\350\347)i +(\361\362)n(\340\355\344\340\360\362\355\356\343\356)c +(\361\350\361\362\345\354\355\356\343\356)j(\352)n(\340\362)n +(\340\353\356\343)n(\340)1112 b Fg(M-x)42 b(load-library)-128 2438 y Fh(28)131 b(\317\360\356\361\362)l(\340\377)45 b(\355\340\361\362\360\356\351\352)l(\340)-78 2619 y -Fi(\355\340\361\362\360\356\350\362\374)28 b -(\357\345\360\345\354\345\355\355\373\345)g(\350)f +Fi(\355\340\361\362\360\356\350\362\374)26 b +(\357\345\360\345\354\345\355\355\373\345)i(\350)f (\356\364\356\360\354\353\345\355\350\345)g(\(faces\))1249 -b Fg(M-x)42 b(customize)-128 2720 y Fi(\321\356\347\344\340\362\374)27 -b(\343)n(\353\356\341\340\353\374\355\356\345)e(\355\340\347\355\340)n -(\367\345\355\350\345)i(\352\353\376\367\345\351)h(\355\340)f(Emacs)h -(Lisp)f(\(\357\360\350\354\345\360\):)-128 2902 y Fg(\(global-set-key) -38 b("\\C-cg")i('goto-line\))-128 3002 y(\(global-set-key)e("\\M-#")j +b Fg(M-x)42 b(customize)-128 2720 y Fi +(\321\356\347\344\340\355\350\345)27 b(\343)n +(\353\356\341\340\353\374\355\373\365)f +(\357\360\350\342\377\347\356\352)g(\352\353\340\342\350\370)h +(\(\352\353\376\367\345\351\))i(\355\340)e(Emacs)h(Lisp)f +(\(\357\360\350\354\345\360\373\):)-128 2902 y Fg(\(global-set-key)38 +b("\\C-cg")i('goto-line\))-128 3002 y(\(global-set-key)e("\\M-#")j ('query-replace-)o(re)o(gex)o(p\))-128 3276 y Fh(29)131 b(\315\340\357\350\361\340\355\350\345)44 b(\352)l (\356\354\340\355\344)-128 3458 y Fg(\(defun)d(<command-name>)d @@ -2059,28 +5852,28 @@ 4421 y(\(recenter)h(\(if)k(\(null)e(line\))570 4521 y(0)483 4621 y(\(prefix-numeric)o(-v)o(al)o(ue)c(line\)\)\)\))-128 4803 y Fi(\321\357\345\366\350\364\350\352)n(\340\366\350\377)30 -b Fg(interactive)25 b Fi(\361\356\356\341\371\340\345\362)j(\356)h -(\362\356\354,)h(\367\362\356)g(\340\360\343\363\354\345\355\362)g -(\355\340\344\356)e(\361\367\350\362\373\342\340\362\374)i -(\350\355\362\345\360\340\352\362\350\342\355\356.)g(\304\353\377)f +b Fg(interactive)25 b Fi(\361\356\356\341\371\340\345\362)i(\356)i +(\362\356\354,)g(\367\362\356)g(\340\360\343\363\354\345\355\362)g +(\355\340\344\356)f(\361\367\350\362\373\342\340\362\374)g +(\350\355\362\345\360\340\352\362\350\342\355\356.)g(\304\353\377)h (\344\356\357\356\353\355\350-)-128 4903 y -(\362\345\353\374\355\356\351)f -(\350\355\364\356\360\354\340\366\350\350)f -(\355\340\341\345\360\350\362\345)g Fg(C-h)43 b(f)g(interactive)p +(\362\345\353\374\355\356\351)e +(\350\355\364\356\360\354\340\366\350\350)g +(\355\340\341\345\360\350\362\345)f Fg(C-h)43 b(f)g(interactive)p Fi(.)1110 5391 y Fb(Cop)n(yrigh)n(t)1461 5389 y(c)1441 -5391 y Fa(\015)23 b Fb(1997)i(F)-6 b(ree)25 b(Soft)n(w)n(are)g(F)-6 -b(oundation,)25 b(Inc.)1214 5470 y(v2.2)f(for)g(GNU)g(Emacs)e(v)n -(ersion)j(21,)f(June)g(1997)1453 5549 y(designed)g(b)n(y)g(Stephen)i -(Gildea)1239 5628 y(\317\345\360\345\342\356)n(\344)f(Alex)e(Ott)h -(<ottalex)h(at)g(naro)r(d.ru>)-128 5707 y(P)n(ermission)31 -b(is)h(gran)n(ted)i(to)f(mak)n(e)e(and)i(distribute)g(copies)g(of)e -(this)h(card)i(pro)n(vided)f(the)g(cop)n(yrigh)n(t)h(notice)f(and)g -(this)f(p)r(ermission)f(notice)i(are)-128 5786 y(preserv)n(ed)27 -b(on)c(all)g(copies.)-128 5864 y(F)-6 b(or)33 b(copies)f(of)g(the)h -(GNU)e(Emacs)g(man)n(ual,)g(write)h(to)h(the)f(F)-6 b(ree)34 -b(Soft)n(w)n(are)f(F)-6 b(oundation,)33 b(Inc.,)f(59)g(T)-6 -b(emple)31 b(Place,)h(Suite)g(330,)g(Boston,)h(MA)-128 -5943 y(02111-1307)26 b(USA)1860 6192 y Fi(6)p eop end +5391 y Fa(\015)23 b Fb(2006)i(F)-6 b(ree)25 b(Soft)n(w)n(are)g(F)-6 +b(oundation,)25 b(Inc.)1214 5470 y(v2.3)f(for)g(GNU)g(Emacs)f(v)n +(ersion)i(22,)f(June)g(2006)1453 5549 y(designed)g(b)n(y)g(Stephen)i +(Gildea)1242 5628 y(\317\345\360\345\342\356)n(\344)f(Alex)e(Ott)h +(<alexott@gmail.com>)-128 5707 y(P)n(ermission)32 b(is)g(gran)n(ted)i +(to)f(mak)n(e)f(and)h(distribute)g(copies)g(of)e(this)h(card)i(pro)n +(vided)f(the)g(cop)n(yrigh)n(t)h(notice)f(and)g(this)f(p)r(ermission)g +(notice)h(are)-128 5786 y(preserv)n(ed)27 b(on)c(all)g(copies.)-128 +5864 y(F)-6 b(or)28 b(copies)f(of)f(the)h(GNU)f(Emacs)h(man)n(ual,)f +(write)h(to)g(the)h(F)-6 b(ree)27 b(Soft)n(w)n(are)h(F)-6 +b(oundation,)28 b(Inc.,)e(51)h(F)-6 b(ranklin)27 b(Street,)h(Fifth)e +(Flo)r(or,)h(Boston,)g(MA)-128 5943 y(02110-1301)f(USA)1860 +6192 y Fi(6)p eop end %%Trailer userdict /end-hook known{end-hook}if
--- a/etc/ru-refcard.tex Fri Jul 14 05:56:32 2006 +0000 +++ b/etc/ru-refcard.tex Sat Jul 29 09:59:12 2006 +0000 @@ -19,7 +19,7 @@ \newlength{\ColThreeWidth} \setlength{\ColThreeWidth}{25mm} -\newcommand{\versionnumber}[0]{2.2} +\newcommand{\versionnumber}[0]{2.3} \newcommand{\nyear}[0]{2006} \newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill @@ -29,9 +29,9 @@ \newcommand\copyrightnotice[0]{ \vskip 1ex plus 2 fill\begingroup\footnotesize \centerline{Copyright \copyright\ \nyear\ Free Software Foundation, Inc.} -\centerline{v\versionnumber{} for GNU Emacs version 21, June \nyear} +\centerline{v\versionnumber{} for GNU Emacs version 22, June \nyear} \centerline{designed by Stephen Gildea} -\centerline{ðÅÒÅ×ÏÄ Alex Ott <ottalex at narod.ru>} +\centerline{ðÅÒÅ×ÏÄ Alex Ott <alexott@gmail.com>} Permission is granted to make and distribute copies of this card provided the copyright notice and this permission notice @@ -53,14 +53,12 @@ %\begin{multicols}{3} -\centerline{óÐÒÁ×ÏÞÎÁÑ ËÁÒÔÁ ÐÏ GNU Emacs} -\centerline{(ÄÌÑ ×ÅÒÓÉÉ 21)} +\centerline{óÐÒÁ×ÏÞÎÉË ËÏÍÁÎÄ GNU Emacs} +\centerline{(ÄÌÑ ×ÅÒÓÉÉ 22)} \section{úÁÐÕÓË Emacs} -äÌÑ ÚÁÐÕÓËÁ GNU Emacs 21, ÐÒÏÓÔÏ ÎÁÂÅÒÉÔÅ ÉÍÑ ÐÒÏÇÒÁÍÍÙ: \kbd{emacs} - -ï ÔÏÍ, ËÁË ÏÔËÒÙ×ÁÔØ ÆÁÊÌÙ, ÞÉÔÁÊÔÅ ÄÁÌÅÅ × ÒÁÚÄÅÌÅ æÁÊÌÙ. +äÌÑ ÚÁÐÕÓËÁ GNU Emacs 22, ÐÒÏÓÔÏ ÎÁÂÅÒÉÔÅ ÉÍÑ ÐÒÏÇÒÁÍÍÙ: \kbd{emacs} \section{÷ÙÈÏÄ ÉÚ Emacs} @@ -72,28 +70,28 @@ \section{æÁÊÌÙ} \begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}} -{\bf ÏÔËÒÙÔØ} ÆÁÊÌ × ÂÕÆÅÒÅ Emacs & \kbd{C-x C-f} \\ +{\bf ÏÔËÒÙÔØ} ÆÁÊÌ × Emacs & \kbd{C-x C-f} \\ {\bf ÓÏÈÒÁÎÉÔØ} ÆÁÊÌ ÏÂÒÁÔÎÏ ÎÁ ÄÉÓË & \kbd{C-x C-s} \\ ÓÏÈÒÁÎÉÔØ {\bf ×ÓÅ} ÆÁÊÌÙ & \kbd{C-x s} \\ {\bf ×ÓÔÁ×ÉÔØ} ÓÏÄÅÒÖÉÍÏÅ ÄÒÕÇÏÇÏ ÆÁÊÌÁ × ÔÅËÕÝÉÊ ÂÕÆÅÒ & \kbd{C-x i} \\ ÏÔËÒÙÔØ ÎÕÖÎÙÊ ×ÁÍ ÆÁÊÌ ×ÍÅÓÔÏ ÔÅËÕÝÅÇÏ & \kbd{C-x C-v} \\ ÓÏÈÒÁÎÉÔØ ÂÕÆÅÒ × ÕËÁÚÁÎÎÏÍ ÆÁÊÌÅ & \kbd{C-x C-w} \\ -÷ËÌÀÞÉÔØ/×ÙËÌÀÞÉÔØ ÓÏÓÔÏÑÎÉÅ ÂÕÆÅÒÁ ``ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ'' & \kbd{C-x C-q} \\ +ðÅÒÅËÌÀÞÉÔØ ÓÏÓÔÏÑÎÉÅ ÂÕÆÅÒÁ ``ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ'' & \kbd{C-x C-q} \\ \end{tabular} \section{ðÏÌÕÞÅÎÉÅ ÐÏÍÏÝÉ} óÐÒÁ×ÏÞÎÁÑ ÓÉÓÔÅÍÁ ÄÏÓÔÁÔÏÞÎÏ ÐÒÏÓÔÁ. HÁÖÍÉÔÅ \kbd{C-h} (ÉÌÉ \kbd{F1}) É -ÓÌÅÄÕÊÔÅ ÉÎÓÔÒÕËÃÉÑÍ. åÓÌÉ ×Ù × ÐÅÒ×ÙÊ ÒÁÚ ÒÁÂÏÔÁÅÔÅ Ó Emacs, ÎÁÂÅÒÉÔÅ +ÓÌÅÄÕÊÔÅ ÉÎÓÔÒÕËÃÉÑÍ. åÓÌÉ ×Ù × ÐÅÒ×ÙÊ ÒÁÚ ÒÁÂÏÔÁÅÔÅ Ó Emacs, ÔÏ ÎÁÂÅÒÉÔÅ \kbd{C-u C-h t Russian RET} ÄÌÑ ×ÙÚÏ×Á {\bf ÕÞÅÂÎÉËÁ}. \begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}} -úÁËÒÙÔØ ÏËÎÏ ÓÐÒÁ×ËÉ & \kbd{C-x 1} \\ +óËÒÙÔØ ÏËÎÏ ÓÐÒÁ×ËÉ & \kbd{C-x 1} \\ ðÒÏËÒÕÔÉÔØ ÏËÎÏ ÓÐÒÁ×ËÉ & \kbd{C-M-v} \\ apropos: ÐÏËÁÚÁÔØ ËÏÍÁÎÄÙ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÓÔÒÏËÅ & \kbd{C-h a} \\ -ÐÏËÁÚÁÔØ ÉÍÑ ÆÕÎËÃÉÉ, ËÏÔÏÒÁÑ ÚÁÐÕÓËÁÅÔÓÑ ËÌÁ×ÉÛÅÊ & \kbd{C-h c} \\ -ÏÐÉÓÁÔØ ÆÕÎËÃÉÀ & \kbd{C-h f} \\ +ÐÏËÁÚÁÔØ ÉÍÑ ÆÕÎËÃÉÉ, ËÏÔÏÒÁÑ ÚÁÐÕÓËÁÅÔÓÑ ËÌÁ×ÉÛÅÊ & \kbd{C-h k} \\ +ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÆÕÎËÃÉÉ & \kbd{C-h f} \\ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÒÅÖÉÍÅ & \kbd{C-h m} \\ \end{tabular} @@ -102,7 +100,7 @@ \begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}} {\bf ÐÒÅÒ×ÁÔØ} ÞÁÓÔÉÞÎÏ ÎÁÂÒÁÎÎÕÀ ÉÌÉ ÉÓÐÏÌÎÑÅÍÕÀ ËÏÍÁÎÄÕ & \kbd{C-g} \\ {\bf ×ÏÓÓÔÁÎÏ×ÉÔØ} ÆÁÊÌ, ÐÏÔÅÒÑÎÎÙÊ ÐÒÉ ËÒÁÈÅ ÓÉÓÔÅÍÙ & \kbd{M-x recover-file} \\ -{\bf ÏÔÍÅÎÉÔØ} ÎÅÖÅÌÁÔÅÌØÎÙÅ ÉÚÍÅÎÅÎÉÑ & \kbd{C-x u {\rm ÉÌÉ} C-\_} \\ +{\bf ÏÔÍÅÎÉÔØ} ÎÅÖÅÌÁÔÅÌØÎÙÅ ÉÚÍÅÎÅÎÉÑ & \kbd{C-x u, C-\_ {\rm ÉÌÉ} C-/} \\ ×ÏÓÓÔÁÎÏ×ÉÔØ ÂÕÆÅÒ × ÐÅÒ×ÏÎÁÞÁÌØÎÏÅ ÓÏÓÔÏÑÎÉÅ & \kbd{M-x revert-buffer} \\ ÐÅÒÅÒÉÓÏ×ÁÔØ ÚÁÐÏÌÎÅÎÎÙÊ ÍÕÓÏÒÏÍ ÜËÒÁÎ & \kbd{C-l} \\ \end{tabular} @@ -112,7 +110,7 @@ \begin{tabular}{p{\ColWidth}p{\ColThreeWidth}p{\ColThreeWidth}} ÐÏÉÓË ×ÐÅÒÅÄ & \kbd{C-s} \\ ÐÏÉÓË ÎÁÚÁÄ & \kbd{C-r} \\ -ÐÏÉÓË ÐÏ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ & \kbd{C-M-s} \\ +ÐÏÉÓË ÐÏ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ ×ÐÅÒÅÄ & \kbd{C-M-s} \\ ÐÏÉÓË ÐÏ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ ÎÁÚÁÄ & \kbd{C-M-r} \\ ×ÙÂÒÁÔØ ÐÒÅÄÙÄÕÝÕÀ ÓÔÒÏËÕ ÐÏÉÓËÁ & \kbd{M-p} \\ @@ -124,7 +122,7 @@ äÌÑ ÐÏ×ÔÏÒÁ ÐÏÉÓËÁ × ÌÀÂÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ ÉÓÐÏÌØÚÕÊÔÅ ËÌÁ×ÉÛÉ \kbd{C-s} ÉÌÉ \kbd{C-r}. åÓÌÉ Emacs ×ÓÅ ÅÝÅ ÐÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË, \kbd{C-g} ÏÔÍÅÎÉÔ ÔÏÌØËÏ -ÎÅÓÄÅÌÁÎÎÕÀ ÞÁÓÔØ. +ÎÅ ×ÙÐÏÌÎÅÎÎÕÀ ÞÁÓÔØ. \section{ðÅÒÅÍÅÝÅÎÉÅ} @@ -148,7 +146,7 @@ ÐÒÏËÒÕÔËÁ ÜËÒÁÎÁ ××ÅÒÈ & \kbd{M-v} \\ ÐÒÏËÒÕÔËÁ ×ÌÅ×Ï & \kbd{C-x <} \\ ÐÒÏËÒÕÔËÁ ×ÐÒÁ×Ï & \kbd{C-x >} \\ -ÐÒÏËÒÕÔËÁ ÔÅËÕÝÅÊ ÓÔÒÏËÉ × ÃÅÎÔÒ ÜËÒÁÎÁ & \kbd{C-u C-l} \\ +ÕÓÔÁÎÏ×ËÁ ÔÅËÕÝÅÊ ÓÔÒÏËÉ × ÃÅÎÔÒ ÜËÒÁÎÁ & \kbd{C-u C-l} \\ \end{tabular} \section{õÎÉÞÔÏÖÅÎÉÅ É ÕÄÁÌÅÎÉÅ} @@ -175,8 +173,8 @@ \section{ðÏÍÅÔËÁ} \begin{tabular}{p{\ColWidth}l} -ÕÓÔÁÎÏ×ÉÔØ ÐÏÍÅÔËÉ & \kbd{C-@ {\rm or} C-SPC} \\ -ÏÂÍÅÎÑÔØ ÍÅÓÔÁÍÉ ËÕÒÓÏÒ É ÐÏÍÅÔËÕ & \kbd{C-x C-x} \\ +ÕÓÔÁÎÏ×ÉÔØ ÐÏÍÅÔËÉ & \kbd{C-@ {\rm ÉÌÉ} C-SPC} \\ +ÐÏÍÅÎÑÔØ ÍÅÓÔÁÍÉ ËÕÒÓÏÒ É ÐÏÍÅÔËÕ & \kbd{C-x C-x} \\ ÐÏÍÅÔÉÔØ {\it arg\/} {\bf ÓÌÏ×} & \kbd{M-@} \\ ÐÏÍÅÔÉÔØ {\bf ÐÁÒÁÇÒÁÆ} & \kbd{M-h} \\ @@ -193,7 +191,7 @@ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ & \kbd{M-x query-replace-regexp} \\ \end{tabular} -÷ ÒÅÖÉÍÅ ÉÎÔÅÒÁËÔÉ×ÎÏÊ ÚÁÍÅÎÙ ÐÏÌØÚÏ×ÁÔÅÌÀ ÄÏÓÔÕÐÎÙ ÓÌÅÄÕÀÝÉÅ ÏÔ×ÅÔÙ: +÷ ÒÅÖÉÍÅ ÉÎÔÅÒÁËÔÉ×ÎÏÊ ÚÁÍÅÎÙ ÐÏÌØÚÏ×ÁÔÅÌÀ ÄÏÓÔÕÐÎÙ ÓÌÅÄÕÀÝÉÅ ËÏÍÁÎÄÙ: \begin{tabular}{p{\ColWidth}l} {\bf ÚÁÍÅÎÉÔØ} ÄÁÎÎÏÅ ÓÏÏÔ×ÅÔÓÔ×ÉÅ, ÐÅÒÅÊÔÉ Ë ÓÌÅÄÕÀÝÅÍÕ & \kbd{SPC} \\ @@ -201,14 +199,14 @@ {\bf ÐÒÏÐÕÓÔÉÔØ} ÓÏÏÔ×ÅÔÓÔ×ÉÅ ÂÅÚ ÚÁÍÅÎÙ & \kbd{DEL} \\ ÚÁÍÅÎÉÔØ ×ÓÅ ÏÓÔÁ×ÛÉÅÓÑ ÓÏÏÔ×ÅÔÓÔ×ÉÑ & \kbd{!} \\ {\bf ×ÅÒÎÕÔØÓÑ} Ë ÐÒÅÄÙÄÕÝÅÍÕ ÓÏÏÔ×ÅÔÓÔ×ÉÀ & \kbd{\^} \\ -{\bf ×ÙÊÔÉ} ÉÚ ÒÅÖÉÍÁ ÚÁÍÅÎÁ Ó ÚÁÐÒÏÓÏÍ & \kbd{RET} \\ +{\bf ×ÙÊÔÉ} ÉÚ ÒÅÖÉÍÁ ``ÚÁÍÅÎÁ Ó ÚÁÐÒÏÓÏÍ'' & \kbd{RET} \\ ×ÏÊÔÉ × ÒÅÖÉÍ ÒÅËÕÒÓÉ×ÎÏÇÏ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ (ÄÌÑ ×ÙÈÏÄÁ ÉÓÐÏÌØÚÕÅÔÓÑ \kbd{C-M-c}) & \kbd{C-r} \\ \end{tabular} -\section{íÎÏÖÅÓÔ×Ï ÏËÏÎ} +\section{éÓÐÏÌØÚÏ×ÁÎÉÅ ÎÅÓËÏÌØËÉÈ ÏËÏÎ} ëÏÍÁÎÄÙ, ÐÒÉ×ÅÄÅÎÎÙÅ ×Ï ×ÔÏÒÏÍ ÓÔÏÌÂÃÅ, ÐÒÉÍÅÎÑÀÔÓÑ Ë ÄÒÕÇÏÍÕ -(ÎÅÁËÔÉ×ÎÏÍÕ) ÏËÎÕ. +ÆÒÜÊÍÕ (ÏËÎÕ ÉÓÐÏÌØÚÕÅÍÏÊ ÏËÏÎÎÏÊ ÓÉÓÔÅÍÙ). \begin{tabular}{p{\ColWidth}l} ÕÄÁÌÉÔØ ×ÓÅ ÏÓÔÁÌØÎÙÅ ÏËÎÁ & \kbd{C-x 1} \\ @@ -256,11 +254,11 @@ ÕÄÁÌÉÔØ ÐÕÓÔÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ×ÏËÒÕÇ ËÕÒÓÏÒÁ & \kbd{M-$\backslash$} \\ ÐÏÍÅÓÔÉÔØ ÔÏÌØËÏ ÏÄÉÎ ÐÒÏÂÅÌ × ÐÏÚÉÃÉÉ ËÕÒÓÏÒÁ & \kbd{M-SPC} \\ -ÚÁÐÏÌÎÉÔØ ÔÅËÕÝÉÊ ÐÁÒÁÇÒÁÆ & \kbd{M-q} \\ +ÏÔÆÏÒÍÁÔÉÒÏ×ÁÔØ ÔÅËÕÝÉÊ ÐÁÒÁÇÒÁÆ & \kbd{M-q} \\ ÕÓÔÁÎÏ×ÉÔØ ÓÔÏÌÂÅà ÚÁÐÏÌÎÅÎÉÑ & \kbd{C-x f} \\ ÕÓÔÁÎÏ×ÉÔØ ÐÒÅÆÉËÓ ÚÁÐÏÌÎÅÎÉÑ ËÁÖÄÏÊ ÓÔÒÏËÉ & \kbd{C-x .} \\ -ÕÓÔÁÎÏ×ÉÔØ ÎÁÞÅÒÔÁÎÉÅ & \kbd{M-g} \\ +ÕÓÔÁÎÏ×ÉÔØ ÎÁÞÅÒÔÁÎÉÅ (face) & \kbd{M-g} \\ \end{tabular} \section{éÚÍÅÎÅÎÉÅ ÒÅÇÉÓÔÒÁ} @@ -283,8 +281,8 @@ ÄÏÐÏÌÎÉÔØ ÄÏ ÏÄÎÏÇÏ ÓÌÏ×Á & \kbd{SPC} \\ ÄÏÐÏÌÎÉÔØ É ×ÙÐÏÌÎÉÔØ & \kbd{RET} \\ ÐÏËÁÚÁÔØ ×ÏÚÍÏÖÎÙÅ ÄÏÐÏÌÎÅÎÉÑ & \kbd{?} \\ -×ÙÂÒÁÔØ ÐÒÅÄÙÄÕÝÉÊ ××ÏÄ × ÍÉÎÉÂÕÆÅÒ & \kbd{M-p} \\ -×ÙÂÒÁÔØ ÓÌÅÄÕÀÝÉÊ ××ÏÄ × ÍÉÎÉÂÕÆÅÒ & \kbd{M-n} \\ +×ÙÂÒÁÔØ ÐÒÅÄÙÄÕÝÕÀ ÓÔÒÏËÕ ÉÚ ÉÓÔÏÒÉÉ ××ÏÄÁ & \kbd{M-p} \\ +×ÙÂÒÁÔØ ÓÌÅÄÕÀÝÕÀ ÓÔÒÏËÕ ÉÚ ÉÓÔÏÒÉÉ ××ÏÄÁ & \kbd{M-n} \\ ÐÏÉÓË × ÉÓÔÏÒÉÉ ÐÏ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ × ÏÂÒÁÔÎÏÍ ÎÁÐÒ×ÌÅÎÉÉ & \kbd{M-r} \\ ÐÏÉÓË × ÉÓÔÏÒÉÉ ÐÏ ÒÅÇÕÌÑÒÎÏÍÕ ×ÙÒÁÖÅÎÉÀ × ÐÒÑÍÏÍ ÎÁÐÒ×ÌÅÎÉÉ & \kbd{M-s} \\ ÐÒÅÒ×ÁÔØ ËÏÍÁÎÄÕ & \kbd{C-g} \\ @@ -302,7 +300,7 @@ ÕÎÉÞÔÏÖÉÔØ ÂÕÆÅÒ & \kbd{C-x k} \\ \end{tabular} -\section{ïÂÍÅÎ ÍÅÓÔÁÍÉ} +\section{ðÅÒÅÓÔÁÎÏ×ËÁ ÄÁÎÎÙÈ} \begin{tabular}{p{\ColWidth}l} ÏÂÍÅÎÑÔØ ÍÅÓÔÁÍÉ {\bf ÓÉÍ×ÏÌÙ} & \kbd{C-t} \\ @@ -311,7 +309,7 @@ ÏÂÍÅÎÑÔØ ÍÅÓÔÁÍÉ {\bf ×ÙÒÁÖÅÎÉÑ} & \kbd{C-M-t} \\ \end{tabular} -\section{ðÒÏ×ÅÒËÁ ÇÒÁÍÍÁÔÉËÉ} +\section{ðÒÏ×ÅÒËÁ ÐÒÁ×ÏÐÉÓÁÎÉÑ} \begin{tabular}{p{\ColWidth}l} ÐÒÏ×ÅÒÉÔØ ÔÅËÕÝÅÅ ÓÌÏ×Ï & \kbd{M-\$} \\ @@ -324,7 +322,7 @@ \begin{tabular}{p{\ColWidth}l} ÎÁÊÔÉ ÏÐÒÅÄÅÌÅÎÉÅ ÔÅÇÁ & \kbd{M-.} \\ ÎÁÊÔÉ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ ÔÅÇÁ & \kbd{C-u M-.} \\ -ÕËÁÚÁÔØ ÎÏ×ÙÊ ÆÁÊÌ Ó ÔÅÇÁÍÉ & \kbd{M-x visit-tags-table} \\ +ÉÓÐÏÌØÚÏ×ÁÔØ ÎÏ×ÙÊ ÆÁÊÌ Ó ÔÅÇÁÍÉ & \kbd{M-x visit-tags-table} \\ ÐÏÉÓË ÐÏ ÛÁÂÌÏÎÕ ÐÏ ×ÓÅÊ ÔÁÂÌÉÃÅ ÔÅÇÏ× & \kbd{M-x tags-search} \\ ×ÙÐÏÌÎÉÔØ query-replace ÎÁÄ ×ÓÅÍÉ ÆÁÊÌÁÍÉ & \kbd{M-x tags-query-replace} \\ @@ -395,7 +393,7 @@ \section{íÅÖÄÕÎÁÒÏÄÎÙÅ ÎÁÂÏÒÙ ÓÉÍ×ÏÌÏ×} \begin{tabular}{p{\ColWidth}l} -×ÙÂÒÁÔØ ÑÚÙË & \kbd{M-x set-language-environment} \\ +×ÙÂÒÁÔØ ÑÚÙË & \kbd{C-x RET l} \\ ÐÏËÁÚÁÔØ ×ÓÅ ×ÏÚÍÏÖÎÙÅ ÍÅÔÏÄÙ ××ÏÄÁ & \kbd{M-x list-input-methods} \\ ÒÁÚÒÅÛÉÔØ ÉÌÉ ÚÁÐÒÅÔÉÔØ ÍÅÔÏÄ ××ÏÄÁ & \kbd{C-$\backslash$} \\ ÕÓÔÁÎÏ×ÉÔØ ÓÉÓÔÅÍÕ ËÏÄÉÒÏ×ÁÎÉÑ ÄÌÑ ÓÌÅÄÕÀÝÅÊ ËÏÍÁÎÄÙ & \kbd{C-x RET c} \\ @@ -407,7 +405,7 @@ \begin{tabular}{p{\ColWidth}l} ÚÁÐÕÓÔÉÔØ ÓÉÓÔÅÍÕ ÄÏÓÔÕÐÁ Ë ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{C-h i} \\ -ÎÁÊÔÉ ÕËÁÚÁÎÎÕÀ ÆÕÎËÃÉÀ ÉÌÉ ÐÅÒÅÍÅÎÎÕÀ × ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{C-h C-i} \\ +ÎÁÊÔÉ ÕËÁÚÁÎÎÕÀ ÆÕÎËÃÉÀ ÉÌÉ ÐÅÒÅÍÅÎÎÕÀ × ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{C-h S} \\ \end{tabular} ðÅÒÅÍÅÝÅÎÉÅ ×ÎÕÔÒÉ ÕÚÌÁ (ÎÏÄÁÍÉ): @@ -424,11 +422,12 @@ {\bf ÓÌÅÄÕÀÝÉÊ} ÕÚÅÌ & \kbd{n} \\ {\bf ÐÒÅÄÙÄÕÝÉÊ} ÕÚÅÌ & \kbd{p} \\ ÐÅÒÅÊÔÉ Ë {\bf ×ÅÒÈÎÅÍÕ} ÕÚÌÕ & \kbd{u} \\ -×ÙÂÒÁÔØ ÍÅÎÀ ÐÏ ÉÍÅÎÉ & \kbd{m} \\ +×ÙÂÒÁÔØ ÐÕÎËÔ ÍÅÎÀ ÐÏ ÉÍÅÎÉ & \kbd{m} \\ ×ÙÂÒÁÔØ {\it n\/}-Ê ÐÕÎËÔ ÍÅÎÀ ÐÏ ÎÏÍÅÒÕ (1--9) & \kbd{{\it n}} \\ -ÐÅÒÅÊÔÉ ÐÏ ÓÓÙÌËÅ (×ÏÚ×ÒÁÔ Ó ÐÏÍÏÝØÀ \kbd{l}) & \kbd{f} \\ +ÐÅÒÅÊÔÉ ÐÏ ÓÓÙÌËÅ (×ÏÚ×ÒÁÔ Ó ÐÏÍÏÝØÀ \kbd{l}) & \kbd{f} \\ ×ÏÚ×ÒÁÔÉÔÓÑ Ë ÐÏÓÌÅÄÎÅÍÕ ÐÒÏÓÍÏÔÒÅÎÎÏÍÕ ÕÚÌÕ & \kbd{l} \\ ×ÏÚ×ÒÁÔÉÔÓÑ Ë ÕÚÌÕ-ËÁÔÁÌÏÇÕ & \kbd{d} \\ +ðÅÒÅÊÔÉ Ë ×ÅÒÈÅÍÕ ÕÚÌÕ ÆÁÊÌÁ & \kbd{t} \\ ÐÅÒÅÊÔÉ Ë ÕÚÌÕ, ÚÁÄÁÎÎÏÍÕ ÉÍÅÎÅÍ & \kbd{g} \\ \end{tabular} @@ -436,8 +435,8 @@ \begin{tabular}{p{\ColWidth}l} ÚÁÐÕÓÔÉÔØ {\bf ÕÞÅÂÎÉË} ÐÏ ÓÉÓÔÅÍÅ ÄÏËÕÍÅÎÔÁÃÉÉ & \kbd{h} \\ +ÐÏÉÓË ÔÅÍÙ × ÉÎÄÅËÓÅ & \kbd{i} \\ ÐÏÉÓË × ÕÚÌÁÈ Ó ÐÏÍÏÝØÀ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ & \kbd{s} \\ -% look up a subject in the indices & \kbd{i} % FIXME {\bf ÐÒÅËÒÁÔÉÔØ ÒÁÂÏÔÕ} Ó ÄÏËÕÍÅÎÔÁÃÉÅÊ & \kbd{q} \\ \end{tabular} @@ -481,7 +480,7 @@ % The intended audience here is the person who wants to make simple % customizations and knows Lisp syntax. -óÏÚÄÁÔØ ÇÌÏÂÁÌØÎÏÅ ÎÁÚÎÁÞÅÎÉÅ ËÌÀÞÅÊ ÎÁ Emacs Lisp (ÐÒÉÍÅÒ): +óÏÚÄÁÎÉÅ ÇÌÏÂÁÌØÎÙÈ ÐÒÉ×ÑÚÏË ËÌÁ×ÉÛ (ËÌÀÞÅÊ) ÎÁ Emacs Lisp (ÐÒÉÍÅÒÙ): \begin{verbatim} (global-set-key "\C-cg" 'goto-line)
--- a/lib-src/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/lib-src/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,14 @@ +2006-07-20 Andreas Schwab <schwab@suse.de> + + * fakemail.c (fatal): Drop second parameter and treat first + parameter as a plain string. Callers changed. + +2006-07-18 Dan Nicolaescu <dann@ics.uci.edu> + + * ebrowse.c (usage, version): Mark as NO_RETURN. + + * emacsclient.c (print_help_and_exit): Likewise. + 2006-07-10 Francesco Potort,Al(B <pot@gnu.org> * etags.c (absolute_filename): Free unused space (cosmetic change).
--- a/lib-src/ebrowse.c Fri Jul 14 05:56:32 2006 +0000 +++ b/lib-src/ebrowse.c Sat Jul 29 09:59:12 2006 +0000 @@ -533,6 +533,8 @@ void parse_qualified_param_ident_or_type P_ ((char **)); int globals P_ ((int)); void yyerror P_ ((char *, char *)); +void usage P_ ((int)) NO_RETURN; +void version P_ (()) NO_RETURN;
--- a/lib-src/emacsclient.c Fri Jul 14 05:56:32 2006 +0000 +++ b/lib-src/emacsclient.c Sat Jul 29 09:59:12 2006 +0000 @@ -106,7 +106,7 @@ /* If non-NULL, the filename of the UNIX socket. */ char *socket_name = NULL; -void print_help_and_exit (); +void print_help_and_exit () NO_RETURN; struct option longopts[] = {
--- a/lib-src/fakemail.c Fri Jul 14 05:56:32 2006 +0000 +++ b/lib-src/fakemail.c Sat Jul 29 09:59:12 2006 +0000 @@ -175,10 +175,10 @@ /* Print error message and exit. */ static void -fatal (s1, s2) - char *s1, *s2; +fatal (s1) + char *s1; { - error (s1, s2); + error ("%s", s1); exit (EXIT_FAILURE); } @@ -190,7 +190,7 @@ { long *result = (long *) malloc (((unsigned) size)); if (result == ((long *) NULL)) - fatal ("virtual memory exhausted", 0); + fatal ("virtual memory exhausted"); return result; } @@ -377,7 +377,7 @@ tm = localtime (&idiotic_interface); if (! (tm && TM_YEAR_IN_ASCTIME_RANGE (tm->tm_year) && (the_date = asctime (tm)))) - fatal ("current time is out of range", 0); + fatal ("current time is out of range"); /* the_date has an unwanted newline at the end */ date_length = strlen (the_date) - 1; the_date[date_length] = '\0';
--- a/lisp/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,393 @@ +2006-07-28 Nick Roberts <nickrob@snap.net.nz> + + * Makefile.in (recompile): Update comment to reflect change + on 2004-04-21. + +2006-07-27 Richard Stallman <rms@gnu.org> + + * cus-edit.el (customize-package-emacs-version-alist): Doc fix. + (customize-package-emacs-version): Change msg when pkg has no entry. + (custom-no-edit): On a button, do like widget-button-press. + +2006-07-27 Dan Nicolaescu <dann@ics.uci.edu> + + * term/xterm.el (terminal-init-xterm): Fix bindings for C-tab, + S-tab and C-S-tab. + +2006-07-28 Nick Roberts <nickrob@snap.net.nz> + + * progmodes/which-func.el (which-function): Fix documentation/ + comment typo. + +2006-07-26 Richard Stallman <rms@gnu.org> + + * textmodes/ispell.el (ispell-word): If we replace the word, + move point to the end. Insert before deleting. + +2006-07-26 Chong Yidong <cyd@stupidchicken.com> + + * subr.el (sit-for): Use new SECONDS arg of read-event instead of + a timer. + +2006-07-26 Mathias Dahl <mathias.dahl@gmail.com> + + * tumme.el (tumme-backward-image): Add prefix argument. Add error + when at first image. + (tumme-forward-image): Add prefix argument. Add error when at last + image. + +2006-07-25 Stefan Monnier <monnier@iro.umontreal.ca> + + * tabify.el (tabify-regexp): Use more specific regexps. + (tabify): Avoid modifying the buffer unnecessarily. + +2006-07-25 Mathias Dahl <mathias.dahl@gmail.com> + + * tumme.el (tumme-track-original-file): Add `buffer-live-p' check. + (tumme-format-properties-string): Handle empty `buf'. + (tumme-get-comment): Change variable names inside `let'. Add + missing `let' variable that cause font-lock problems. + (tumme-write-comments): Change variable names inside `let'. Add + missing `let' variable that cause font-lock problems. + (tumme-forward-image): Rename from `tumme-forward-char'. + (tumme-backward-image): Rename from `tumme-backward-char'. + +2006-07-25 Masatake YAMATO <jet@gyve.org> + + * progmodes/ld-script.el (ld-script-keywords) + (ld-script-font-lock-keywords, ld-script-builtins): Update keywords + and add comments. + +2006-07-25 Nick Roberts <nickrob@snap.net.nz> + + * progmodes/gdb-ui.el (gdb-set-gud-minor-mode-existing-buffers) + (gdb-resync, gdb-prompt, gdb-starting, gdb-exited, gdb-stopped) + (gdb-set-gud-minor-mode-existing-buffers-1): Use different faces + for status indicator. + +2006-07-24 Richard Stallman <rms@gnu.org> + + * xml.el (xml-parse-file): Clean up, and use with-temp-buffer. + + * subr.el (dolist, dotimes): Use interned symbols for locals. + (--dotimes-limit--, --dolist-tail--): New defvars. + (looking-back): Doc fix. + + * replace.el (replace-match-string-symbols): Handle dotted lists. + +2006-07-24 mathias <mathias@mattis> + + * tumme.el (tumme-write-tags): Add. + (tumme-write-comments): Add. + (tumme-tag-files): Change to use `tumme-write-tags'. + (tumme-tag-thumbnail): Change to use `tumme-write-tags'. + (tumme-dired-comment-files): Change to use `tumme-write-comments'. + (tumme-save-information-from-widgets): Change to use + `tumme-write-comments' and `tumme-write-tags'. + (tumme-comment-thumbnail): Change to use `tumme-write-comments'. + (tumme-write-tag): Remove. + (tumme-write-comment): Remove. + (tumme-display-previous-thumbnail-original): Remove empty line. + (tumme-widget-list): Add punctuation. + +2006-07-24 mathias <mathias.dahl@gmail.com> + + * tumme.el (tumme-line-up): Add an extra check for end of buffer. + +2006-07-24 Daiki Ueno <ueno@unixuser.org> + + * pgg-def.el (pgg-truncate-key-identifier): Truncate the key ID to 8 + letters from the end. Thanks to "David Smith" <davidsmith@acm.org> and + andreas@altroot.de (Andreas V,Av(Bgele) + +2006-07-23 Thien-Thi Nguyen <ttn@gnu.org> + + * mouse.el (mouse-on-link-p): Doc fix. + +2006-07-23 Nick Roberts <nickrob@snap.net.nz> + + * emacs-lisp/find-func.el (find-function-search-for-symbol): + Handle "C-h f `". + +2006-07-22 Dan Nicolaescu <dann@ics.uci.edu> + + * ibuffer.el (ibuffer-formats): Use left alignment for the mode + column. + +2006-07-22 Matt Hodges <MPHodges@member.fsf.org> + + * textmodes/table.el: Add move-beginning-of-line and + move-end-of-line to Point Motion Only Group. + +2006-07-22 Eric Hanchrow <offby1@blarg.net> + + * progmodes/delphi.el (delphi-fill-comment): Use save-restriction. + +2006-07-22 Micha,Ak(Bl Cadilhac <michael.cadilhac@lrde.org> + + * startup.el (user-mail-address): Initialize from the `EMAIL' + environment variable first. Document this. + (command-line): Ditto. + +2006-07-22 Nick Roberts <nickrob@snap.net.nz> + + * help-mode.el (help-function-def, help-variable-def) + (help-face-def): Print a message in the minibuffer. + +2006-07-21 Dan Nicolaescu <dann@ics.uci.edu> + + * term/xterm.el (terminal-init-xterm): Fix key bindings + syntax. Bind S-return, C-M-., C-TAB, S-TAB and C-S-TAB. + +2006-07-21 Eli Zaretskii <eliz@gnu.org> + + * dos-w32.el (find-buffer-file-type-coding-system): Support calls + where `(nth 1 command)' is a cons cell. Doc fix. + + * textmodes/po.el (po-find-charset): Doc fix. + +2006-07-21 Ken Manheimer <ken.manheimer@gmail.com> + + * allout.el (allout-unprotected, allout-e-o-prefix-p) + (allout-beginning-of-current-line, allout-end-of-current-line) + (allout-next-visible-heading, allout-open-topic) + (allout-kill-topic, allout-yank-processing, allout-resolve-xref) + (allout-flag-current-subtree, allout-show-to-offshoot) + (allout-hide-current-entry, allout-show-current-branches) + (allout-hide-region-body, allout-old-expose-topic) + (allout-listify-exposed, allout-latex-verbatim-quote-curr-line) + (allout-mark-topic, allout-adjust-file-variable): Enclose scopes + containing `beginning-of-line' and `end-of-line' with + `inhibit-field-text-motion' t. + +2006-07-21 Eli Zaretskii <eliz@gnu.org> + + * frame.el (focus-follows-mouse): Document that it doesn't have + any effect on MS-Windows. + +2006-07-20 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/sh-script.el (sh-quoted-subshell): Further fix last change. + +2006-07-20 Jay Belanger <belanger@truman.edu> + + * calc.el (calc-previous-alg-entry): Remove variable. + + * calc-aent.el (calc-alg-entry-history, calc-quick-calc-history): + New variables. + (calc-alg-entry): Use `calc-alg-entry-history'. + (calc-do-quick-calc): Use `calc-quick-calc-history'. + Remove reference to `calc-previous-alg-entry'. + (calcAlg-edit, calcAlg-enter): Remove reference to + `calc-previous-alg-entry'. + (calcAlg-previous): Use `previous-history-element' instead of + `calc-previous-alg-entry'. + (calc-do-alg-entry): Use history when calling `read-from-minibuffer'. + Change keybinding for `calcAlg-plus-minus', add keybindings for + `previous-history-element' and `next-history-element'. + + * calc-rewr.el (calc-match): Remove reference to + `calc-previous-alg-entry'. + + * calc-sel.el (calc-selection-history): New variable. + (calc-enter-selection, calc-sel-mult-both-sides) + (calc-sel-add-both-sides): Use `calc-selection-history'. + + * calc-map.el (calc-get-operator-history): New variable. + (calc-get-operator): Use `calc-get-operator-history'. + + * calcalg3.el (calc-curve-fit-history): New variable. + (calc-curve-fit): Use `calc-curve-fit-history'. + +2006-07-20 Kenichi Handa <handa@m17n.org> + + * international/mule-cmds.el (select-safe-coding-system): Fix the + way of deciding eol-type of the coding system. + +2006-07-20 Alan Mackenzie <acm@muc.de> + + * progmodes/cc-langs.el (c-emacs-variable-inits): New variable. + (c-lang-setvar): New macro. + (c-make-init-lang-vars-fun): Use the initialization forms in + c-emacs-variable-inits in addition to those in c-lang-variable-inits. + (comment-start, comment-end, comment-start-skip): Change these from + c-lang-defvar's to c-lang-setvar's. + + * progmodes/cc-mode.el (c-make-emacs-variables-local): New macro, + which calls make-local-variable on the elements of + c-emacs-variable-inits. + (c-init-language-vars-for): Call this new macro. + +2006-07-19 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/compile.el (compilation-error-regexp-alist-alist) <gnu>: + Try to rule out false positives due to time stamps. + (compilation-mode-font-lock-keywords): Remove rules made redundant + because of the above change. Add `segmentation fault' to the known and + highlighted compilation termination messages. + +2006-07-19 Kim F. Storm <storm@cua.dk> + + * progmodes/grep.el (grep-find-ignored-directories): + Add .svn and _darcs to list. + +2006-07-19 Mathias Dahl <mathias.dahl@gmail.com> + + * dired.el (dired-mode-map): Add key binding `C-te' for + `tumme-dired-edit-comment-and-tags'. + + * tumme.el (tumme-display-thumbnail-original-image): Make sure + image display buffer is displayed before call to + `tumme-display-image. + (tumme-dired-display-image): Make sure image display buffer is + displayed before call to `tumme-display-image. + (tumme-mouse-display-image): Make sure image display buffer is + displayed before call to `tumme-display-image. + (tumme-widget-list): Add. + (tumme-dired-edit-comment-and-tags): Add. + (tumme-save-information-from-widgets): Add. + +2006-07-19 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/sh-script.el (sh-quoted-subshell): Fix last change. + +2006-07-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * progmodes/sh-script.el (sh-font-lock-keywords-1): + Revert inadvertently installed patch hunk. + + * progmodes/compile.el (compilation-find-file): Handle the + cases where the user selects a non-existent file. + +2006-07-18 Stefan Monnier <monnier@iro.umontreal.ca> + + * bindings.el (minibuffer-local-map): Rebind TAB so it inserts a \t. + +2006-07-17 Chong Yidong <cyd@stupidchicken.com> + + * subr.el (sit-for): Just sleep-for if noninteractive. + +2006-07-17 Stefan Monnier <monnier@iro.umontreal.ca> + + * emacs-lisp/autoload.el (make-autoload): Use new arg. + + * custom.el (custom-autoload): Add `noset' argument. + (custom-push-theme): Don't autoload the variable, let callers do it. + (custom-theme-set-variables): Autoload the variable if necessary. + + * cus-edit.el (custom-variable-state-set): If the variable was + originally set outside custom, but to the same value as the default, + consider it to be standard. + + * Makefile.in (mh-loaddefs.el): Finish setting up the default empty + file *before* telling Emacs to add the autoloads, in case it fails. + + * progmodes/sh-script.el (sh-quoted-subshell): Don't match escaped `. + Use `cond', push', and `dolist'. + +2006-07-17 Richard Stallman <rms@gnu.org> + + * image-mode.el (tar-superior-buffer, archive-superior-buffer): + Add defvars to silence warnings. + +2006-07-17 Chong Yidong <cyd@stupidchicken.com> + + * progmodes/compile.el (compilation-mode-font-lock-keywords): + Don't highlight "Compiling file" messages as error. + + * dired-aux.el (dired-compress-file): Confirm again if gzipped + file already exists. + +2006-07-16 Thien-Thi Nguyen <ttn@gnu.org> + + * find-file.el (ff-special-constructs): Doc fix. Also, for C/C++ + entry, don't assign to free var; simply return the extracted filename. + (ff-treat-as-special): Incorporate common preamble from callers. + (ff-other-file-name, ff-find-the-other-file): + Update call to ff-treat-as-special. + + * progmodes/ada-mode.el (ada-mode): Rewrite ff-special-constructs init. + +2006-07-16 Mathias Dahl <mathias.dahl@gmail.com> + + * tumme.el (tumme-get-comment): Fix bug. + +2006-07-16 Stefan Monnier <monnier@iro.umontreal.ca> + + * files.el: Remove spurious * in docstrings. + +2006-07-14 Ken Manheimer <ken.manheimer@gmail.com> + + * allout.el (allout-run-unit-tests-on-load): Rectify docstring + grammar. + (allout-beginning-of-current-line): Beware beginning of buffer. + Also, a comment is simplified. + (allout-hotspot-key-handler): Only set allout-post-goto-bullet + when appropriate. (This fix enables use for other than + bullet-hotspot operation.) + (allout-hide-current-subtree): While escalating to sibling-close, + make sure to situate on a topic. + +2006-07-14 Kim F. Storm <storm@cua.dk> + + * emulation/cua-base.el (cua-delete-selection) + (cua-toggle-set-mark): New defcustoms. + (cua-rectangle-modifier-key): Add `alt' modifier. + (cua-replace-region): Don't delete if cua-delete-selection is nil. + (cua-set-mark): Don't clear mark if cua-toggle-set-mark is nil. + Suggested by Klaus Zeitler <kzeitler@lucent.com>. + + * emulation/cua-rect.el (cua-help-for-rectangle): Add `alt' modifier. + +2006-07-14 Ken Manheimer <ken.manheimer@gmail.com> + + * allout.el: Require 'cl during byte-compilation/interactive load, + for the `assert' macro. + (allout-mode-deactivate-hook): New hook, run when allout mode + deactivates. + (allout-developer): New allout customization subgroup. + (allout-run-unit-tests-on-load): New allout-developer + customization variable, when true allout unit tests are run towards + end of file load/eval. + (allout-inhibit-auto-fill): Disable auto-fill activity even during + auto-fill-mode. + (allout-resumptions): Remove, to be replaced by... + (allout-add-resumptions): Register variable settings to be + reinstated by `allout-do-resumptions'. The settings are made + buffer-local, but the locality/globality of the suspended setting + is restored on resumption. + (allout-do-resumptions): Reinstate all settings suspended using + `allout-add-resumptions'. + (allout-test-resumptions): Unit tests (and intermediate variables) + for resumptions. + (allout-tests-globally-unbound, allout-tests-globally-true) + (allout-tests-locally-true): Intermediate variables for + resumptions unit tests. + (allout-overlay-preparations): Replaces `allout-set-overlay-category'. + (allout-exposure-category): Replaces 'allout-overlay-category variable. + (allout-mode): Use `allout-add-resumptions' and `allout-do-resumptions' + instead of retired `allout-resumptions'. For hook functions, use + `local' parameter so hook settings are created and removed as + buffer-local settings. Revise (resumptions) setting + auto-fill-function so it is set only if already active. (The + related fill-function settings are all made in either case, so + that activating auto-fill-mode activity will have the custom + allout-mode behaviors (hanging indent on topics, if configured for it). + Remove all allout-exposure-category overlays on mode deactivation. + (allout-hotspot-key-handler): New function extracted from + `allout-pre-command-business', so the functionality can be used + for other purposes, eg as a binding in an overlay. + (allout-pre-command-business): Use new `allout-hotspot-key-handler'. + (allout-auto-fill): Respect new `allout-inhibit-auto-fill' + customization variable. + (allout-run-unit-tests): Run the (currently quite small) + repertoire of unit tests. Called just before the provide iff user + has customized `allout-run-unit-tests-on-load' non-nil. + +2006-07-14 K,Aa(Broly L,Bu(Brentey <lorentey@elte.hu> + + * emacs-lisp/authors.el (authors-aliases): Update. + 2006-07-14 Nick Roberts <nickrob@snap.net.nz> * progmodes/gdb-ui.el (gdb-display-buffer): Check for @@ -6,7 +396,7 @@ (gdb-display-breakpoints-buffer, gdb-display-stack-buffer) (gdb-display-threads-buffer, gdb-display-memory-buffer) (gdb-display-locals-buffer): Use it. - + * progmodes/gud.el (gud-display-line): Use gdb-display-buffer. Set gdb-source-window. @@ -51,10 +441,9 @@ 2006-07-12 Nick Roberts <nickrob@snap.net.nz> - * tumme.el (tumme-create-thumb) - (tumme-thumbnail-display-external, tumme-display-image) - (tumme-rotate-thumbnail, tumme-rotate-original) - (tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch. + * tumme.el (tumme-create-thumb, tumme-thumbnail-display-external) + (tumme-display-image, tumme-rotate-thumbnail, tumme-rotate-original) + (tumme-set-exif-data, tumme-get-exif-data): Use shell-command-switch. * thumbs.el (thumbs-call-convert): Use shell-command-switch. @@ -90,20 +479,16 @@ 2006-07-11 Nick Roberts <nickrob@snap.net.nz> - * tumme.el (tumme-create-thumb) - (tumme-thumbnail-display-external, tumme-display-image) - (tumme-rotate-thumbnail, tumme-rotate-original) + * tumme.el (tumme-create-thumb, tumme-thumbnail-display-external) + (tumme-display-image, tumme-rotate-thumbnail, tumme-rotate-original) (tumme-set-exif-data, tumme-get-exif-data): Use call-process instead of shell-command. - (tumme-create-thumbnail-buffer) - (tumme-create-display-image-buffer, tumme-display-thumbs) - (tumme-modify-mark-on-thumb-original-file, tumme-display-image) - (tumme-get-exif-data): Use with-current-buffer. - (tumme-display-properties-format) - (tumme-dired-insert-marked-thumbs, tumme-rotate-original) - (tumme-get-exif-file-name) - (tumme-thumbnail-set-image-description, tumme-gallery-generate): - Fit to 80 columns. + (tumme-create-thumbnail-buffer, tumme-create-display-image-buffer) + (tumme-display-thumbs, tumme-modify-mark-on-thumb-original-file) + (tumme-display-image, tumme-get-exif-data): Use with-current-buffer. + (tumme-display-properties-format, tumme-dired-insert-marked-thumbs) + (tumme-thumbnail-set-image-description, tumme-gallery-generate) + (tumme-rotate-original, tumme-get-exif-file-name): Fit to 80 columns. 2006-07-11 Kim F. Storm <storm@cua.dk> @@ -414,8 +799,8 @@ 2006-06-25 Michael Albinus <michael.albinus@gmx.de> * net/rcompile.el (remote-compile): Replace ange-ftp based - implementation by Tramp functions. Based on a patch published by - Marc Abramowitz <msabramo@gmail.com>. + implementation by Tramp functions. + Suggested by Marc Abramowitz <msabramo@gmail.com>. * net/tramp.el (tramp-unload-tramp): Provide a doc string. @@ -2090,8 +2475,6 @@ to `ispell-local-dictionary'. (ispell-internal-change-dictionary): Check for a change in personal dictionary use too. - Cosmetic changes from Agustin Martin - <agustin.martin@hispalinux.es>. 2006-05-05 Eli Zaretskii <eliz@gnu.org>
--- a/lisp/Makefile.in Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/Makefile.in Sat Jul 29 09:59:12 2006 +0000 @@ -204,9 +204,8 @@ compile-after-backup: backup-compiled-files compile-always -# Recompile all Lisp files which are newer than their .elc files. -# Note that this doesn't create .elc files. It only recompiles if an -# .elc is present. +# Recompile all Lisp files which are newer than their .elc files and compile +# new ones. recompile: doit mh-autoloads $(lisp)/progmodes/cc-mode.elc $(EMACS) $(EMACSOPT) --eval "(batch-byte-recompile-directory 0)" $(lisp) @@ -247,12 +246,6 @@ echo ";;; Commentary:" >> $@ echo ";;; Change Log:" >> $@ echo ";;; Code:" >> $@ - $(EMACS) $(EMACSOPT) \ - -l autoload \ - --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \ - --eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \ - --eval "(setq make-backup-files nil)" \ - -f batch-update-autoloads $(lisp)/mh-e echo "" >> $@ echo "(provide 'mh-loaddefs)" >> $@ echo ";; Local Variables:" >> $@ @@ -261,6 +254,12 @@ echo ";; no-update-autoloads: t" >> $@ echo ";; End:" >> $@ echo ";;; mh-loaddefs.el ends here" >> $@ + $(EMACS) $(EMACSOPT) \ + -l autoload \ + --eval "(setq generate-autoload-cookie \";;;###mh-autoload\")" \ + --eval "(setq generated-autoload-file \"$(lisp)/mh-e/mh-loaddefs.el\")" \ + --eval "(setq make-backup-files nil)" \ + -f batch-update-autoloads $(lisp)/mh-e # Prepare a bootstrap in the lisp subdirectory. #
--- a/lisp/allout.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/allout.el Sat Jul 29 09:59:12 2006 +0000 @@ -8,6 +8,7 @@ ;; Created: Dec 1991 - first release to usenet ;; Version: 2.2.1 ;; Keywords: outlines wp languages +;; Website: http://myriadicity.net/Sundry/EmacsAllout ;; This file is part of GNU Emacs. @@ -58,7 +59,9 @@ ;; and more. ;; ;; See the `allout-mode' function's docstring for an introduction to the -;; mode. The development version and helpful notes are available at +;; mode. +;; +;; The latest development version and helpful notes are available at ;; http://myriadicity.net/Sundry/EmacsAllout . ;; ;; The outline menubar additions provide quick reference to many of @@ -80,10 +83,19 @@ ;;;_* Dependency autoloads (require 'overlay) -(eval-when-compile (progn (require 'pgg) - (require 'pgg-gpg) - (require 'overlay) - )) +(eval-when-compile + ;; Most of the requires here are for stuff covered by autoloads. + ;; Since just byte-compiling doesn't trigger autoloads, so that + ;; "function not found" warnings would occur without these requires. + (progn + (require 'pgg) + (require 'pgg-gpg) + (require 'overlay) + ;; `cl' is required for `assert'. `assert' is not covered by a standard + ;; autoload, but it is a macro, so that eval-when-compile is sufficient + ;; to byte-compile it in, or to do the require when the buffer evalled. + (require 'cl) + )) ;;;_* USER CUSTOMIZATION VARIABLES: @@ -556,6 +568,25 @@ :group 'allout-encryption) (make-variable-buffer-local 'allout-encrypt-unencrypted-on-saves) +;;;_ + Developer +;;;_ = allout-developer group +(defgroup allout-developer nil + "Settings for topic encryption features of allout outliner." + :group 'allout) +;;;_ = allout-run-unit-tests-on-load +(defcustom allout-run-unit-tests-on-load nil + "*When non-nil, unit tests will be run at end of loading the allout module. + +Generally, allout code developers are the only ones who'll want to set this. + +\(If set, this makes it an even better practice to exercise changes by +doing byte-compilation with a repeat count, so the file is loaded after +compilation.) + +See `allout-run-unit-tests' to see what's run." + :type 'boolean + :group 'allout-developer) + ;;;_ + Miscellaneous customization ;;;_ = allout-command-prefix @@ -615,6 +646,23 @@ ("=t" allout-latexify-exposed) ("=p" allout-flatten-exposed-to-buffer))) +;;;_ = allout-inhibit-auto-fill +(defcustom allout-inhibit-auto-fill nil + "*If non-nil, auto-fill will be inhibited in the allout buffers. + +You can customize this setting to set it for all allout buffers, or set it +in individual buffers if you want to inhibit auto-fill only in particular +buffers. \(You could use a function on `allout-mode-hook' to inhibit +auto-fill according, eg, to the major mode.\) + +If you don't set this and auto-fill-mode is enabled, allout will use the +value that `normal-auto-fill-function', if any, when allout mode starts, or +else allout's special hanging-indent maintaining auto-fill function, +`allout-auto-fill'." + :type 'boolean + :group 'allout) +(make-variable-buffer-local 'allout-inhibit-auto-fill) + ;;;_ = allout-use-hanging-indents (defcustom allout-use-hanging-indents t "*If non-nil, topic body text auto-indent defaults to indent of the header. @@ -993,81 +1041,84 @@ "----" ["Set Header Lead" allout-reset-header-lead t] ["Set New Exposure" allout-expose-topic t]))) -;;;_ : Mode-Specific Variable Maintenance Utilities +;;;_ : Allout Modal-Variables Utilities ;;;_ = allout-mode-prior-settings (defvar allout-mode-prior-settings nil - "Internal `allout-mode' use; settings to be resumed on mode deactivation.") + "Internal `allout-mode' use; settings to be resumed on mode deactivation. + +See `allout-add-resumptions' and `allout-do-resumptions'.") (make-variable-buffer-local 'allout-mode-prior-settings) -;;;_ > allout-resumptions (name &optional value) -(defun allout-resumptions (name &optional value) - - "Registers or resumes settings over `allout-mode' activation/deactivation. - -First arg is NAME of variable affected. Optional second arg is list -containing allout-mode-specific VALUE to be imposed on named -variable, and to be registered. \(It's a list so you can specify -registrations of null values.) If no value is specified, the -registered value is returned (encapsulated in the list, so the caller -can distinguish nil vs no value), and the registration is popped -from the list." - - (let ((on-list (assq name allout-mode-prior-settings)) - prior-capsule ; By `capsule' i mean a list - ; containing a value, so we can - ; distinguish nil from no value. - ) - - (if value - - ;; Registering: - (progn - (if on-list - nil ; Already preserved prior value - don't mess with it. - ;; Register the old value, or nil if previously unbound: - (setq allout-mode-prior-settings - (cons (list name - (if (boundp name) (list (symbol-value name)))) - allout-mode-prior-settings))) - ; And impose the new value, locally: - (progn (make-local-variable name) - (set name (car value)))) - - ;; Relinquishing: - (if (not on-list) - - ;; Oops, not registered - leave it be: - nil - - ;; Some registration: - ; reestablish it: - (setq prior-capsule (car (cdr on-list))) - (if prior-capsule - (set name (car prior-capsule)) ; Some prior value - reestablish it. - (makunbound name)) ; Previously unbound - demolish var. - ; Remove registration: - (let (rebuild) - (while allout-mode-prior-settings - (if (not (eq (car allout-mode-prior-settings) - on-list)) - (setq rebuild - (cons (car allout-mode-prior-settings) - rebuild))) - (setq allout-mode-prior-settings - (cdr allout-mode-prior-settings))) - (setq allout-mode-prior-settings rebuild))))) - ) +;;;_ > allout-add-resumptions (&rest pairs) +(defun allout-add-resumptions (&rest pairs) + "Set name/value pairs. + +Old settings are preserved for later resumption using `allout-do-resumptions'. + +The pairs are lists whose car is the name of the variable and car of the +cdr is the new value: '(some-var some-value)'. + +The new value is set as a buffer local. + +If the variable was not previously buffer-local, then that is noted and the +`allout-do-resumptions' will just `kill-local-variable' of that binding. + +If it previously was buffer-local, the old value is noted and resurrected +by `allout-do-resumptions'. \(If the local value was previously void, then +it is left as nil on resumption.\) + +The settings are stored on `allout-mode-prior-settings'." + (while pairs + (let* ((pair (pop pairs)) + (name (car pair)) + (value (cadr pair))) + (if (not (symbolp name)) + (error "Pair's name, %S, must be a symbol, not %s" + name (type-of name))) + (when (not (assoc name allout-mode-prior-settings)) + ;; Not already added as a resumption, create the prior setting entry. + (if (local-variable-p name) + ;; is already local variable - preserve the prior value: + (push (list name (condition-case err + (symbol-value name) + (void-variable nil))) + allout-mode-prior-settings) + ;; wasn't local variable, indicate so for resumption by killing + ;; local value, and make it local: + (push (list name) allout-mode-prior-settings) + (make-local-variable name))) + (set name value)))) +;;;_ > allout-do-resumptions () +(defun allout-do-resumptions () + "Resume all name/value settings registered by `allout-add-resumptions'. + +This is used when concluding allout-mode, to resume selected variables to +their settings before allout-mode was started." + + (while allout-mode-prior-settings + (let* ((pair (pop allout-mode-prior-settings)) + (name (car pair)) + (value-cell (cdr pair))) + (if (not value-cell) + ;; Prior value was global: + (kill-local-variable name) + ;; Prior value was explicit: + (set name (car value-cell)))))) ;;;_ : Mode-specific incidentals ;;;_ > allout-unprotected (expr) (defmacro allout-unprotected (expr) "Enable internal outline operations to alter invisible text." - `(let ((inhibit-read-only t)) + `(let ((inhibit-read-only t) + (inhibit-field-text-motion t)) ,expr)) ;;;_ = allout-mode-hook (defvar allout-mode-hook nil "*Hook that's run when allout mode starts.") -;;;_ = allout-overlay-category -(defvar allout-overlay-category nil - "Symbol for use in allout invisible-text overlays as the category.") +;;;_ = allout-mode-deactivate-hook +(defvar allout-mode-deactivate-hook nil + "*Hook that's run when allout mode ends.") +;;;_ = allout-exposure-category +(defvar allout-exposure-category nil + "Symbol for use as allout invisible-text overlay category.") ;;;_ x allout-view-change-hook (defvar allout-view-change-hook nil "*\(Deprecated\) Hook that's run after allout outline exposure changes. @@ -1293,30 +1344,26 @@ (setq cur (car menus) menus (cdr menus)) (easy-menu-add cur)))) -;;;_ > allout-set-overlay-category -(defun allout-set-overlay-category () - "Set the properties of the allout invisible-text overlay." - (setplist 'allout-overlay-category nil) - (put 'allout-overlay-category 'invisible 'allout) - (put 'allout-overlay-category 'evaporate t) +;;;_ > allout-overlay-preparations +(defun allout-overlay-preparations () + "Set the properties of the allout invisible-text overlay and others." + (setplist 'allout-exposure-category nil) + (put 'allout-exposure-category 'invisible 'allout) + (put 'allout-exposure-category 'evaporate t) ;; XXX We use isearch-open-invisible *and* isearch-mode-end-hook. The ;; latter would be sufficient, but it seems that a separate behavior - ;; the _transient_ opening of invisible text during isearch - is keyed to ;; presence of the isearch-open-invisible property - even though this ;; property controls the isearch _arrival_ behavior. This is the case at ;; least in emacs 21, 22.0, and xemacs 21.4. - (put 'allout-overlay-category 'isearch-open-invisible + (put 'allout-exposure-category 'isearch-open-invisible 'allout-isearch-end-handler) (if (featurep 'xemacs) - (put 'allout-overlay-category 'start-open t) - (put 'allout-overlay-category 'insert-in-front-hooks + (put 'allout-exposure-category 'start-open t) + (put 'allout-exposure-category 'insert-in-front-hooks '(allout-overlay-insert-in-front-handler))) - (if (featurep 'xemacs) - (progn (make-variable-buffer-local 'before-change-functions) - (add-hook 'before-change-functions - 'allout-before-change-handler)) - (put 'allout-overlay-category 'modification-hooks - '(allout-overlay-interior-modification-handler)))) + (put 'allout-exposure-category 'modification-hooks + '(allout-overlay-interior-modification-handler))) ;;;_ > allout-mode (&optional toggle) ;;;_ : Defun: ;;;###autoload @@ -1575,118 +1622,92 @@ ; active state or *de*activation ; specifically requested: (setq allout-explicitly-deactivated t) - (if (string-match "^18\." emacs-version) - ; Revoke those keys that remain - ; as we set them: - (let ((curr-loc (current-local-map))) - (mapcar (function - (lambda (cell) - (if (eq (lookup-key curr-loc (car cell)) - (car (cdr cell))) - (define-key curr-loc (car cell) - (assq (car cell) allout-prior-bindings))))) - allout-added-bindings) - (allout-resumptions 'allout-added-bindings) - (allout-resumptions 'allout-prior-bindings))) - - (if allout-old-style-prefixes - (progn - (allout-resumptions 'allout-primary-bullet) - (allout-resumptions 'allout-old-style-prefixes))) - ;;(allout-resumptions 'selective-display) + + (allout-do-resumptions) + (remove-from-invisibility-spec '(allout . t)) - (set write-file-hook-var-name - (delq 'allout-write-file-hook-handler - (symbol-value write-file-hook-var-name))) - (setq auto-save-hook - (delq 'allout-auto-save-hook-handler - auto-save-hook)) - (allout-resumptions 'paragraph-start) - (allout-resumptions 'paragraph-separate) - (allout-resumptions 'auto-fill-function) - (allout-resumptions 'normal-auto-fill-function) - (allout-resumptions 'allout-former-auto-filler) + (remove-hook 'pre-command-hook 'allout-pre-command-business t) + (remove-hook 'post-command-hook 'allout-post-command-business t) + (when (featurep 'xemacs) + (remove-hook 'before-change-functions 'allout-before-change-handler t)) + (remove-hook 'isearch-mode-end-hook 'allout-isearch-end-handler t) + (remove-hook write-file-hook-var-name 'allout-write-file-hook-handler t) + (remove-hook 'auto-save-hook 'allout-auto-save-hook-handler t) + + (remove-overlays (point-min) (point-max) + 'category 'allout-exposure-category) + + (run-hooks 'allout-mode-deactivate-hook) (setq allout-mode nil)) ;; Activation: ((not active) (setq allout-explicitly-deactivated nil) (if allout-old-style-prefixes - (progn ; Inhibit all the fancy formatting: - (allout-resumptions 'allout-primary-bullet '("*")) - (allout-resumptions 'allout-old-style-prefixes '(())))) - - (allout-set-overlay-category) ; Doesn't hurt to redo this. + ;; Inhibit all the fancy formatting: + (allout-add-resumptions '((allout-primary-bullet "*") + (allout-old-style-prefixes ())))) + + (allout-overlay-preparations) ; Doesn't hurt to redo this. (allout-infer-header-lead) (allout-infer-body-reindent) (set-allout-regexp) - ; Produce map from current version - ; of allout-keybindings-list: - (if (boundp 'minor-mode-map-alist) - - (progn ; V19, and maybe lucid and - ; epoch, minor-mode key bindings: - (setq allout-mode-map - (produce-allout-mode-map allout-keybindings-list)) - (substitute-key-definition 'beginning-of-line - 'move-beginning-of-line - allout-mode-map global-map) - (substitute-key-definition 'end-of-line - 'move-end-of-line - allout-mode-map global-map) - (produce-allout-mode-menubar-entries) - (fset 'allout-mode-map allout-mode-map) - ; Include on minor-mode-map-alist, - ; if not already there: - (if (not (member '(allout-mode . allout-mode-map) - minor-mode-map-alist)) - (setq minor-mode-map-alist - (cons '(allout-mode . allout-mode-map) - minor-mode-map-alist)))) - - ; V18 minor-mode key bindings: - ; Stash record of added bindings - ; for later revocation: - (allout-resumptions 'allout-added-bindings - (list allout-keybindings-list)) - (allout-resumptions 'allout-prior-bindings - (list (current-local-map))) - ; and add them: - (use-local-map (produce-allout-mode-map allout-keybindings-list - (current-local-map))) - ) + ;; Produce map from current version of allout-keybindings-list: + (setq allout-mode-map + (produce-allout-mode-map allout-keybindings-list)) + (substitute-key-definition 'beginning-of-line + 'move-beginning-of-line + allout-mode-map global-map) + (substitute-key-definition 'end-of-line + 'move-end-of-line + allout-mode-map global-map) + (produce-allout-mode-menubar-entries) + (fset 'allout-mode-map allout-mode-map) + + ;; Include on minor-mode-map-alist, if not already there: + (if (not (member '(allout-mode . allout-mode-map) + minor-mode-map-alist)) + (setq minor-mode-map-alist + (cons '(allout-mode . allout-mode-map) + minor-mode-map-alist))) (add-to-invisibility-spec '(allout . t)) - (make-local-variable 'line-move-ignore-invisible) - (setq line-move-ignore-invisible t) - (add-hook 'pre-command-hook 'allout-pre-command-business) - (add-hook 'post-command-hook 'allout-post-command-business) - (add-hook 'isearch-mode-end-hook 'allout-isearch-end-handler) - (add-hook write-file-hook-var-name 'allout-write-file-hook-handler) - (add-hook 'auto-save-hook 'allout-auto-save-hook-handler) - ; Custom auto-fill func, to support - ; respect for topic headline, - ; hanging-indents, etc: - ;; Register prevailing fill func for use by allout-auto-fill: - (allout-resumptions 'allout-former-auto-filler (list auto-fill-function)) - ;; Register allout-auto-fill to be used if filling is active: - (allout-resumptions 'auto-fill-function '(allout-auto-fill)) - (allout-resumptions 'allout-outside-normal-auto-fill-function - (list normal-auto-fill-function)) - (allout-resumptions 'normal-auto-fill-function '(allout-auto-fill)) - ;; Paragraphs are broken by topic headlines. - (make-local-variable 'paragraph-start) - (allout-resumptions 'paragraph-start - (list (concat paragraph-start "\\|^\\(" - allout-regexp "\\)"))) - (make-local-variable 'paragraph-separate) - (allout-resumptions 'paragraph-separate - (list (concat paragraph-separate "\\|^\\(" - allout-regexp "\\)"))) - + (allout-add-resumptions '(line-move-ignore-invisible t)) + (add-hook 'pre-command-hook 'allout-pre-command-business nil t) + (add-hook 'post-command-hook 'allout-post-command-business nil t) + (when (featurep 'xemacs) + (add-hook 'before-change-functions 'allout-before-change-handler + nil t)) + (add-hook 'isearch-mode-end-hook 'allout-isearch-end-handler nil t) + (add-hook write-file-hook-var-name 'allout-write-file-hook-handler + nil t) + (add-hook 'auto-save-hook 'allout-auto-save-hook-handler + nil t) + + ;; Stash auto-fill settings and adjust so custom allout auto-fill + ;; func will be used if auto-fill is active or activated. (The + ;; custom func respects topic headline, maintains hanging-indents, + ;; etc.) + (if (and auto-fill-function (not allout-inhibit-auto-fill)) + ;; allout-auto-fill will use the stashed values and so forth. + (allout-add-resumptions '(auto-fill-function allout-auto-fill))) + (allout-add-resumptions (list 'allout-former-auto-filler + auto-fill-function) + ;; Register allout-auto-fill to be used if + ;; filling is active: + (list 'allout-outside-normal-auto-fill-function + normal-auto-fill-function) + '(normal-auto-fill-function allout-auto-fill) + ;; Paragraphs are broken by topic headlines. + (list 'paragraph-start + (concat paragraph-start "\\|^\\(" + allout-regexp "\\)")) + (list 'paragraph-separate + (concat paragraph-separate "\\|^\\(" + allout-regexp "\\)"))) (or (assq 'allout-mode minor-mode-alist) (setq minor-mode-alist (cons '(allout-mode " Allout") minor-mode-alist))) @@ -1702,8 +1723,9 @@ ;; Reactivation: ((setq do-layout t) (allout-infer-body-reindent)) - ) ; cond - + ) ;; end of activation-mode cases. + + ;; Do auto layout if warranted: (let ((use-layout (if (listp allout-layout) allout-layout allout-default-layout))) @@ -1802,9 +1824,14 @@ This before-change handler is used only where modification-hooks overlay property is not supported." - (if (not (allout-mode-p)) - nil - (allout-overlay-interior-modification-handler nil nil beg end nil))) + ;; allout-overlay-interior-modification-handler on an overlay handles + ;; this in other emacs, via `allout-exposure-category's 'modification-hooks. + (when (and (featurep 'xemacs) (allout-mode-p)) + ;; process all of the pending overlays: + (dolist (overlay (overlays-in beg end)) + (if (eq (overlay-get ol 'invisible) 'allout) + (allout-overlay-interior-modification-handler + overlay nil beg end nil))))) ;;;_ > allout-isearch-end-handler (&optional overlay) (defun allout-isearch-end-handler (&optional overlay) "Reconcile allout outline exposure on arriving in hidden text after isearch. @@ -1894,7 +1921,8 @@ ;;;_ > allout-e-o-prefix-p () (defun allout-e-o-prefix-p () "True if point is located where current topic prefix ends, heading begins." - (and (save-excursion (beginning-of-line) + (and (save-excursion (let ((inhibit-field-text-motion t)) + (beginning-of-line)) (looking-at allout-regexp)) (= (point)(save-excursion (allout-end-of-prefix)(point))))) ;;;_ : Location attributes @@ -1996,34 +2024,34 @@ (defun allout-beginning-of-current-line () "Like beginning of line, but to visible text." - ;; XXX We would use `(move-beginning-of-line 1)', but it gets - ;; stuck on some hidden newlines, eg at column 80, as of GNU Emacs 22.0.50. - ;; Conversely, `beginning-of-line' can make no progress in other - ;; situations. Both are necessary, in the order used below. - (move-beginning-of-line 1) - (beginning-of-line) - (while (or (not (bolp)) (allout-hidden-p)) + ;; This combination of move-beginning-of-line and beginning-of-line is + ;; deliberate, but the (beginning-of-line) may now be superfluous. + (let ((inhibit-field-text-motion t)) + (move-beginning-of-line 1) (beginning-of-line) - (if (or (allout-hidden-p) (not (bolp))) - (forward-char -1)))) + (while (and (not (bobp)) (or (not (bolp)) (allout-hidden-p))) + (beginning-of-line) + (if (or (allout-hidden-p) (not (bolp))) + (forward-char -1))))) ;;;_ > allout-end-of-current-line () (defun allout-end-of-current-line () "Move to the end of line, past concealed text if any." ;; XXX This is for symmetry with `allout-beginning-of-current-line' - ;; `move-end-of-line' doesn't suffer the same problem as ;; `move-beginning-of-line'. - (end-of-line) - (while (allout-hidden-p) + (let ((inhibit-field-text-motion t)) (end-of-line) - (if (allout-hidden-p) (forward-char 1)))) + (while (allout-hidden-p) + (end-of-line) + (if (allout-hidden-p) (forward-char 1))))) ;;;_ > allout-next-heading () (defsubst allout-next-heading () - "Move to the heading for the topic \(possibly invisible) before this one. + "Move to the heading for the topic \(possibly invisible) after this one. Returns the location of the heading, or nil if none found." - (if (and (bobp) (not (eobp))) - (forward-char 1)) + (if (and (bobp) (not (eobp)) (looking-at allout-regexp)) + (forward-char 1)) (if (re-search-forward allout-line-boundary-regexp nil 0) (allout-prefix-data ; Got valid location state - set vars: @@ -2553,7 +2581,8 @@ Move to buffer limit in indicated direction if headings are exhausted." (interactive "p") - (let* ((backward (if (< arg 0) (setq arg (* -1 arg)))) + (let* ((inhibit-field-text-motion t) + (backward (if (< arg 0) (setq arg (* -1 arg)))) (step (if backward -1 1)) prev got) @@ -2688,36 +2717,51 @@ (if (not (allout-mode-p)) nil - ;; Hot-spot navigation provisions: (if (and (eq this-command 'self-insert-command) (eq (point)(allout-current-bullet-pos))) - (let* ((this-key-num (cond - ((numberp last-command-char) - last-command-char) - ;; Only xemacs has characterp. - ((and (fboundp 'characterp) - (apply 'characterp - (list last-command-char))) - (apply 'char-to-int (list last-command-char))) - (t 0))) - mapped-binding) - (if (zerop this-key-num) - nil - ; Map upper-register literals - ; to lower register: - (if (<= 96 this-key-num) - (setq this-key-num (- this-key-num 32))) - ; Check if we have a literal: - (if (and (<= 64 this-key-num) - (>= 96 this-key-num)) - (setq mapped-binding - (lookup-key 'allout-mode-map - (concat allout-command-prefix - (char-to-string (- this-key-num - 64)))))) - (if mapped-binding - (setq allout-post-goto-bullet t - this-command mapped-binding))))))) + (allout-hotspot-key-handler)))) +;;;_ > allout-hotspot-key-handler () +(defun allout-hotspot-key-handler () + "Catchall handling of key bindings in hot-spots. + +Translates unmodified keystrokes to corresponding allout commands, when +they would qualify if prefixed with the allout-command-prefix, and sets +this-command accordingly. + +Returns the qualifying command, if any, else nil." + (interactive) + (let* ((key-num (cond ((numberp last-command-char) last-command-char) + ;; for XEmacs character type: + ((and (fboundp 'characterp) + (apply 'characterp (list last-command-char))) + (apply 'char-to-int (list last-command-char))) + (t 0))) + mapped-binding + (on-bullet (eq (point) (allout-current-bullet-pos)))) + + (if (zerop key-num) + nil + + (if (and (<= 33 key-num) + (setq mapped-binding + (key-binding (concat allout-command-prefix + (char-to-string + (if (and (<= 97 key-num) ; "a" + (>= 122 key-num)) ; "z" + (- key-num 96) key-num))) + t))) + ;; Qualified with the allout prefix - do hot-spot operation. + (setq allout-post-goto-bullet t) + ;; accept-defaults nil, or else we'll get allout-item-icon-key-handler. + (setq mapped-binding (key-binding (char-to-string key-num)))) + + (while (keymapp mapped-binding) + (setq mapped-binding + (lookup-key mapped-binding (read-key-sequence-vector nil t)))) + + (if mapped-binding + (setq this-command mapped-binding))))) + ;;;_ > allout-find-file-hook () (defun allout-find-file-hook () "Activate `allout-mode' on non-nil `allout-auto-activation', `allout-layout'. @@ -2969,7 +3013,8 @@ from there." (allout-beginning-of-current-line) - (let* ((depth (+ (allout-current-depth) relative-depth)) + (let* ((inhibit-field-text-motion t) + (depth (+ (allout-current-depth) relative-depth)) (opening-on-blank (if (looking-at "^\$") (not (setq before nil)))) ;; bunch o vars set while computing ref-topic @@ -3146,21 +3191,23 @@ Maintains outline hanging topic indentation if `allout-use-hanging-indents' is set." - (let ((fill-prefix (if allout-use-hanging-indents - ;; Check for topic header indentation: - (save-excursion - (beginning-of-line) - (if (looking-at allout-regexp) - ;; ... construct indentation to account for - ;; length of topic prefix: - (make-string (progn (allout-end-of-prefix) - (current-column)) - ?\ ))))) - (use-auto-fill-function (or allout-outside-normal-auto-fill-function - auto-fill-function - 'do-auto-fill))) - (if (or allout-former-auto-filler allout-use-hanging-indents) - (funcall use-auto-fill-function)))) + + (when (not allout-inhibit-auto-fill) + (let ((fill-prefix (if allout-use-hanging-indents + ;; Check for topic header indentation: + (save-excursion + (beginning-of-line) + (if (looking-at allout-regexp) + ;; ... construct indentation to account for + ;; length of topic prefix: + (make-string (progn (allout-end-of-prefix) + (current-column)) + ?\ ))))) + (use-auto-fill-function (or allout-outside-normal-auto-fill-function + auto-fill-function + 'do-auto-fill))) + (if (or allout-former-auto-filler allout-use-hanging-indents) + (funcall use-auto-fill-function))))) ;;;_ > allout-reindent-body (old-depth new-depth &optional number) (defun allout-reindent-body (old-depth new-depth &optional number) "Reindent body lines which were indented at OLD-DEPTH to NEW-DEPTH. @@ -3585,7 +3632,8 @@ ;; a lag *after* a kill has been performed. (interactive) - (let* ((collapsed (allout-current-topic-collapsed-p)) + (let* ((inhibit-field-text-motion t) + (collapsed (allout-current-topic-collapsed-p)) (beg (prog1 (allout-back-to-current-heading) (beginning-of-line))) (depth (allout-recent-depth))) (allout-end-of-current-subtree) @@ -3601,8 +3649,10 @@ (forward-char 1))) (if collapsed - (put-text-property beg (1+ beg) 'allout-was-collapsed t) - (remove-text-properties beg (1+ beg) '(allout-was-collapsed t))) + (allout-unprotected + (put-text-property beg (1+ beg) 'allout-was-collapsed t)) + (allout-unprotected + (remove-text-properties beg (1+ beg) '(allout-was-collapsed t)))) (allout-unprotected (kill-region beg (point))) (sit-for 0) (save-excursion @@ -3633,7 +3683,8 @@ ; region around subject: (if (< (allout-mark-marker t) (point)) (exchange-point-and-mark)) - (let* ((subj-beg (point)) + (let* ((inhibit-field-text-motion t) + (subj-beg (point)) (into-bol (bolp)) (subj-end (allout-mark-marker t)) (was-collapsed (get-text-property subj-beg 'allout-was-collapsed)) @@ -3802,7 +3853,8 @@ (if (not (string= (allout-current-bullet) allout-file-xref-bullet)) (error "Current heading lacks cross-reference bullet `%s'" allout-file-xref-bullet) - (let (file-name) + (let ((inhibit-field-text-motion t) + file-name) (save-excursion (let* ((text-start allout-recent-prefix-end) (heading-end (progn (end-of-line) (point)))) @@ -3834,12 +3886,12 @@ Text is shown if flag is nil and hidden otherwise." ;; We use outline invisibility spec. - (remove-overlays from to 'category 'allout-overlay-category) + (remove-overlays from to 'category 'allout-exposure-category) (when flag (let ((o (make-overlay from to))) - (overlay-put o 'category 'allout-overlay-category) + (overlay-put o 'category 'allout-exposure-category) (when (featurep 'xemacs) - (let ((props (symbol-plist 'allout-overlay-category))) + (let ((props (symbol-plist 'allout-exposure-category))) (while props (overlay-put o (pop props) (pop props))))))) (run-hooks 'allout-view-change-hook) @@ -3850,7 +3902,8 @@ (save-excursion (allout-back-to-current-heading) - (end-of-line) + (let ((inhibit-field-text-motion t)) + (end-of-line)) (allout-flag-region (point) ;; Exposing must not leave trailing blanks hidden, ;; but can leave them exposed when hiding, so we @@ -3860,9 +3913,9 @@ flag))) ;;;_ - Topic-specific -;;;_ > allout-show-entry (&optional inclusive) -(defun allout-show-entry (&optional inclusive) - "Like `allout-show-current-entry', reveals entries nested in hidden topics. +;;;_ > allout-show-entry () +(defun allout-show-entry () + "Like `allout-show-current-entry', but reveals entries in hidden topics. This is a way to give restricted peek at a concealed locality without the expense of exposing its context, but can leave the outline with aberrant @@ -3939,7 +3992,8 @@ Useful for coherently exposing to a random point in a hidden region." (interactive) (save-excursion - (let ((orig-pt (point)) + (let ((inhibit-field-text-motion t) + (orig-pt (point)) (orig-pref (allout-goto-prefix)) (last-at (point)) bag-it) @@ -3971,13 +4025,13 @@ (interactive) (allout-back-to-current-heading) (save-excursion - (end-of-line) + (let ((inhibit-field-text-motion t)) + (end-of-line)) (allout-flag-region (point) (progn (allout-end-of-entry) (point)) t))) ;;;_ > allout-show-current-entry (&optional arg) (defun allout-show-current-entry (&optional arg) - "Show body following current heading, or hide entry with universal argument." (interactive "P") @@ -4042,6 +4096,7 @@ ((allout-up-current-level 1 t) (allout-hide-current-subtree)) (t (goto-char 0) (message sibs-msg) + (allout-goto-prefix) (allout-expose-topic '(0 :)) (message (concat sibs-msg " Done.")))) (goto-char from))) @@ -4049,7 +4104,8 @@ (defun allout-show-current-branches () "Show all subheadings of this heading, but not their bodies." (interactive) - (beginning-of-line) + (let ((inhibit-field-text-motion t)) + (beginning-of-line)) (allout-show-children t)) ;;;_ > allout-hide-current-leaves () (defun allout-hide-current-leaves () @@ -4079,13 +4135,14 @@ (save-restriction (narrow-to-region start end) (goto-char (point-min)) - (while (not (eobp)) - (end-of-line) - (allout-flag-region (point) (allout-end-of-entry) t) - (if (not (eobp)) - (forward-char - (if (looking-at "\n\n") - 2 1))))))) + (let ((inhibit-field-text-motion t)) + (while (not (eobp)) + (end-of-line) + (allout-flag-region (point) (allout-end-of-entry) t) + (if (not (eobp)) + (forward-char + (if (looking-at "\n\n") + 2 1)))))))) ;;;_ > allout-expose-topic (spec) (defun allout-expose-topic (spec) @@ -4238,7 +4295,8 @@ Optional FOLLOWERS arguments dictate exposure for succeeding siblings." (interactive "xExposure spec: ") - (let ((depth (allout-current-depth)) + (let ((inhibit-field-text-motion t) + (depth (allout-current-depth)) max-pos) (cond ((null spec) nil) ((symbolp spec) @@ -4417,8 +4475,9 @@ (interactive "r") (save-excursion (let* - ;; state vars: - (strings prefix result depth new-depth out gone-out bullet beg + ((inhibit-field-text-motion t) + ;; state vars: + strings prefix result depth new-depth out gone-out bullet beg next done) (goto-char start) @@ -4697,18 +4756,19 @@ Adjust line contents so it is unaltered \(from the original line) across LaTeX processing, within the context of a `verbatim' environment. Leaves point at the end of the line." - (beginning-of-line) - (let ((beg (point)) - (end (progn (end-of-line)(point)))) - (goto-char beg) - (while (re-search-forward "\\\\" - ;;"\\\\\\|\\{\\|\\}\\|\\_\\|\\$\\|\\\"\\|\\&\\|\\^\\|\\-\\|\\*\\|#" - end ; bounded by end-of-line - 1) ; no matches, move to end & return nil - (goto-char (match-beginning 0)) - (insert "\\") - (setq end (1+ end)) - (goto-char (1+ (match-end 0)))))) + (let ((inhibit-field-text-motion t)) + (beginning-of-line) + (let ((beg (point)) + (end (progn (end-of-line)(point)))) + (goto-char beg) + (while (re-search-forward "\\\\" + ;;"\\\\\\|\\{\\|\\}\\|\\_\\|\\$\\|\\\"\\|\\&\\|\\^\\|\\-\\|\\*\\|#" + end ; bounded by end-of-line + 1) ; no matches, move to end & return nil + (goto-char (match-beginning 0)) + (insert "\\") + (setq end (1+ end)) + (goto-char (1+ (match-end 0))))))) ;;;_ > allout-insert-latex-header (buffer) (defun allout-insert-latex-header (buffer) "Insert initial LaTeX commands at point in BUFFER." @@ -5556,7 +5616,8 @@ (defun allout-mark-topic () "Put the region around topic currently containing point." (interactive) - (beginning-of-line) + (let ((inhibit-field-text-motion t)) + (beginning-of-line)) (allout-goto-prefix) (push-mark (point)) (allout-end-of-current-subtree) @@ -5631,7 +5692,8 @@ allout-enable-file-variable-adjustment)) nil (save-excursion - (let ((section-data (allout-file-vars-section-data)) + (let ((inhibit-field-text-motion t) + (section-data (allout-file-vars-section-data)) beg prefix suffix) (if section-data (setq beg (car section-data) @@ -5919,7 +5981,131 @@ (isearch-repeat 'forward) (isearch-mode t))) -;;;_ #11 Provide +;;;_ #11 Unit tests - this should be last item before "Provide" +;;;_ > allout-run-unit-tests () +(defun allout-run-unit-tests () + "Run the various allout unit tests." + (message "Running allout tests...") + (allout-test-resumptions) + (message "Running allout tests... Done.") + (sit-for .5)) +;;;_ : test resumptions: +;;;_ > allout-tests-obliterate-variable (name) +(defun allout-tests-obliterate-variable (name) + "Completely unbind variable with NAME." + (if (local-variable-p name) (kill-local-variable name)) + (while (boundp name) (makunbound name))) +;;;_ > allout-test-resumptions () +(defvar allout-tests-globally-unbound nil + "Fodder for allout resumptions tests - defvar just for byte compiler.") +(defvar allout-tests-globally-true nil + "Fodder for allout resumptions tests - defvar just just for byte compiler.") +(defvar allout-tests-locally-true nil + "Fodder for allout resumptions tests - defvar just for byte compiler.") +(defun allout-test-resumptions () + "Exercise allout resumptions." + ;; for each resumption case, we also test that the right local/global + ;; scopes are affected during resumption effects: + + ;; ensure that previously unbound variables return to the unbound state. + (with-temp-buffer + (allout-tests-obliterate-variable 'allout-tests-globally-unbound) + (allout-add-resumptions '(allout-tests-globally-unbound t)) + (assert (not (default-boundp 'allout-tests-globally-unbound))) + (assert (local-variable-p 'allout-tests-globally-unbound)) + (assert (boundp 'allout-tests-globally-unbound)) + (assert (equal allout-tests-globally-unbound t)) + (allout-do-resumptions) + (assert (not (local-variable-p 'allout-tests-globally-unbound))) + (assert (not (boundp 'allout-tests-globally-unbound)))) + + ;; ensure that variable with prior global value is resumed + (with-temp-buffer + (allout-tests-obliterate-variable 'allout-tests-globally-true) + (setq allout-tests-globally-true t) + (allout-add-resumptions '(allout-tests-globally-true nil)) + (assert (equal (default-value 'allout-tests-globally-true) t)) + (assert (local-variable-p 'allout-tests-globally-true)) + (assert (equal allout-tests-globally-true nil)) + (allout-do-resumptions) + (assert (not (local-variable-p 'allout-tests-globally-true))) + (assert (boundp 'allout-tests-globally-true)) + (assert (equal allout-tests-globally-true t))) + + ;; ensure that prior local value is resumed + (with-temp-buffer + (allout-tests-obliterate-variable 'allout-tests-locally-true) + (set (make-local-variable 'allout-tests-locally-true) t) + (assert (not (default-boundp 'allout-tests-locally-true)) + nil (concat "Test setup mistake - variable supposed to" + " not have global binding, but it does.")) + (assert (local-variable-p 'allout-tests-locally-true) + nil (concat "Test setup mistake - variable supposed to have" + " local binding, but it lacks one.")) + (allout-add-resumptions '(allout-tests-locally-true nil)) + (assert (not (default-boundp 'allout-tests-locally-true))) + (assert (local-variable-p 'allout-tests-locally-true)) + (assert (equal allout-tests-locally-true nil)) + (allout-do-resumptions) + (assert (boundp 'allout-tests-locally-true)) + (assert (local-variable-p 'allout-tests-locally-true)) + (assert (equal allout-tests-locally-true t)) + (assert (not (default-boundp 'allout-tests-locally-true)))) + + ;; ensure that last of multiple resumptions holds, for various scopes. + (with-temp-buffer + (allout-tests-obliterate-variable 'allout-tests-globally-unbound) + (allout-tests-obliterate-variable 'allout-tests-globally-true) + (setq allout-tests-globally-true t) + (allout-tests-obliterate-variable 'allout-tests-locally-true) + (set (make-local-variable 'allout-tests-locally-true) t) + (allout-add-resumptions '(allout-tests-globally-unbound t) + '(allout-tests-globally-true nil) + '(allout-tests-locally-true nil)) + (allout-add-resumptions '(allout-tests-globally-unbound 2) + '(allout-tests-globally-true 3) + '(allout-tests-locally-true 4)) + ;; reestablish many of the basic conditions are maintained after re-add: + (assert (not (default-boundp 'allout-tests-globally-unbound))) + (assert (local-variable-p 'allout-tests-globally-unbound)) + (assert (equal allout-tests-globally-unbound 2)) + (assert (default-boundp 'allout-tests-globally-true)) + (assert (local-variable-p 'allout-tests-globally-true)) + (assert (equal allout-tests-globally-true 3)) + (assert (not (default-boundp 'allout-tests-locally-true))) + (assert (local-variable-p 'allout-tests-locally-true)) + (assert (equal allout-tests-locally-true 4)) + (allout-do-resumptions) + (assert (not (local-variable-p 'allout-tests-globally-unbound))) + (assert (not (boundp 'allout-tests-globally-unbound))) + (assert (not (local-variable-p 'allout-tests-globally-true))) + (assert (boundp 'allout-tests-globally-true)) + (assert (equal allout-tests-globally-true t)) + (assert (boundp 'allout-tests-locally-true)) + (assert (local-variable-p 'allout-tests-locally-true)) + (assert (equal allout-tests-locally-true t)) + (assert (not (default-boundp 'allout-tests-locally-true)))) + + ;; ensure that deliberately unbinding registered variables doesn't foul things + (with-temp-buffer + (allout-tests-obliterate-variable 'allout-tests-globally-unbound) + (allout-tests-obliterate-variable 'allout-tests-globally-true) + (setq allout-tests-globally-true t) + (allout-tests-obliterate-variable 'allout-tests-locally-true) + (set (make-local-variable 'allout-tests-locally-true) t) + (allout-add-resumptions '(allout-tests-globally-unbound t) + '(allout-tests-globally-true nil) + '(allout-tests-locally-true nil)) + (allout-tests-obliterate-variable 'allout-tests-globally-unbound) + (allout-tests-obliterate-variable 'allout-tests-globally-true) + (allout-tests-obliterate-variable 'allout-tests-locally-true) + (allout-do-resumptions)) + ) +;;;_ % Run unit tests if `allout-run-unit-tests-after-load' is true: +(when allout-run-unit-tests-on-load + (allout-run-unit-tests)) + +;;;_ #12 Provide (provide 'allout) ;;;_* Local emacs vars.
--- a/lisp/arc-mode.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/arc-mode.el Sat Jul 29 09:59:12 2006 +0000 @@ -870,10 +870,14 @@ (save-excursion (funcall set-auto-coding-function filename (- (point-max) (point-min))))) - ;; dos-w32.el defines find-operation-coding-system for - ;; DOS/Windows systems which preserves the coding-system - ;; of existing files. We want it to act here as if the - ;; extracted file existed. + ;; dos-w32.el defines the function + ;; find-buffer-file-type-coding-system for DOS/Windows + ;; systems which preserves the coding-system of existing files. + ;; (That function is called via file-coding-system-alist.) + ;; Here, we want it to act as if the extracted file existed. + ;; The following let-binding of file-name-handler-alist forces + ;; find-file-not-found-set-buffer-file-coding-system to ignore + ;; the file's name (see dos-w32.el). (let ((file-name-handler-alist '(("" . archive-file-name-handler)))) (car (find-operation-coding-system
--- a/lisp/bindings.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/bindings.el Sat Jul 29 09:59:12 2006 +0000 @@ -683,7 +683,11 @@ (define-key map [prior] 'previous-history-element) (define-key map [up] 'previous-history-element) (define-key map "\es" 'next-matching-history-element) - (define-key map "\er" 'previous-matching-history-element)) + (define-key map "\er" 'previous-matching-history-element) + ;; Override the global binding (which calls indent-relative via + ;; indent-for-tab-command). The alignment that indent-relative tries to + ;; do doesn't make much sense here since the prompt messes it up. + (define-key map "\t" 'self-insert-command)) (define-key global-map "\C-u" 'universal-argument) (let ((i ?0))
--- a/lisp/calc/calc-aent.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/calc/calc-aent.el Sat Jul 29 09:59:12 2006 +0000 @@ -32,7 +32,11 @@ (require 'calc) (require 'calc-macs) +(defvar calc-quick-calc-history nil + "The history list for quick-calc.") + (defun calc-do-quick-calc () + (require 'calc-ext) (calc-check-defines) (if (eq major-mode 'calc-mode) (calc-algebraic-entry t) @@ -45,23 +49,12 @@ (enable-recursive-minibuffers t) (calc-language (if (memq calc-language '(nil big)) 'flat calc-language)) - (entry (calc-do-alg-entry "" "Quick calc: " t)) - (alg-exp (mapcar (function - (lambda (x) - (if (and (not (featurep 'calc-ext)) - calc-previous-alg-entry - (string-match - "\\`[-0-9._+*/^() ]+\\'" - calc-previous-alg-entry)) - (calc-normalize x) - (require 'calc-ext) - (math-evaluate-expr x)))) - entry))) + (entry (calc-do-alg-entry "" "Quick calc: " t 'calc-quick-calc-history)) + (alg-exp (mapcar 'math-evaluate-expr entry))) (when (and (= (length alg-exp) 1) (eq (car-safe (car alg-exp)) 'calcFunc-assign) (= (length (car alg-exp)) 3) (eq (car-safe (nth 1 (car alg-exp))) 'var)) - (require 'calc-ext) (set (nth 2 (nth 1 (car alg-exp))) (nth 2 (car alg-exp))) (calc-refresh-evaltos (nth 2 (nth 1 (car alg-exp)))) (setq alg-exp (list (nth 2 (car alg-exp))))) @@ -264,13 +257,16 @@ (math-expr-opers (if prefix math-standard-opers math-expr-opers))) (calc-alg-entry (and auto (char-to-string last-command-char)))))) +(defvar calc-alg-entry-history nil + "History for algebraic entry.") + (defun calc-alg-entry (&optional initial prompt) (let* ((sel-mode nil) (calc-dollar-values (mapcar 'calc-get-stack-element (nthcdr calc-stack-top calc-stack))) (calc-dollar-used 0) (calc-plain-entry t) - (alg-exp (calc-do-alg-entry initial prompt t))) + (alg-exp (calc-do-alg-entry initial prompt t 'calc-alg-entry-history))) (if (stringp alg-exp) (progn (require 'calc-ext) @@ -301,7 +297,7 @@ (defvar calc-alg-exp) -(defun calc-do-alg-entry (&optional initial prompt no-normalize) +(defun calc-do-alg-entry (&optional initial prompt no-normalize history) (let* ((calc-buffer (current-buffer)) (blink-paren-function 'calcAlg-blink-matching-open) (calc-alg-exp 'error)) @@ -319,15 +315,17 @@ (define-key calc-alg-ent-map "\e" nil) (if (eq calc-algebraic-mode 'total) (define-key calc-alg-ent-map "\e" calc-alg-ent-esc-map) - (define-key calc-alg-ent-map "\ep" 'calcAlg-plus-minus) + (define-key calc-alg-ent-map "\e+" 'calcAlg-plus-minus) (define-key calc-alg-ent-map "\em" 'calcAlg-mod) (define-key calc-alg-ent-map "\e=" 'calcAlg-equals) (define-key calc-alg-ent-map "\e\r" 'calcAlg-equals) + (define-key calc-alg-ent-map "\ep" 'previous-history-element) + (define-key calc-alg-ent-map "\en" 'next-history-element) (define-key calc-alg-ent-map "\e%" 'self-insert-command)) (setq calc-aborted-prefix nil) (let ((buf (read-from-minibuffer (or prompt "Algebraic: ") (or initial "") - calc-alg-ent-map nil))) + calc-alg-ent-map nil history))) (when (eq calc-alg-exp 'error) (when (eq (car-safe (setq calc-alg-exp (math-read-exprs buf))) 'error) (setq calc-alg-exp nil))) @@ -355,9 +353,7 @@ (defun calcAlg-previous () (interactive) (if (calc-minibuffer-contains "\\'") - (if calc-previous-alg-entry - (insert calc-previous-alg-entry) - (beep)) + (previous-history-element 1) (insert "'"))) (defun calcAlg-equals () @@ -384,7 +380,6 @@ "\\`\\([^\"]*\"[^\"]*\"\\)*[^\"]*\"[^\"]*\\'")) (insert "`") (setq calc-alg-exp (minibuffer-contents)) - (and (> (length calc-alg-exp) 0) (setq calc-previous-alg-entry calc-alg-exp)) (exit-minibuffer))) (defvar calc-buffer) @@ -407,7 +402,6 @@ (setq calc-alg-exp (if (calc-minibuffer-contains "\\` *\\[ *\\'") '((incomplete vec)) exp)) - (and (> (length str) 0) (setq calc-previous-alg-entry str)) (exit-minibuffer)))) (defun calcAlg-blink-matching-open ()
--- a/lisp/calc/calc-map.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/calc/calc-map.el Sat Jul 29 09:59:12 2006 +0000 @@ -498,6 +498,9 @@ ;;; Return a list of the form (nargs func name) +(defvar calc-get-operator-history nil + "History for calc-get-operator.") + (defun calc-get-operator (msg &optional nargs) (setq calc-aborted-prefix nil) (let ((inv nil) (hyp nil) (prefix nil) (forcenargs nil) @@ -583,7 +586,8 @@ (let* ((calc-dollar-values calc-arg-values) (calc-dollar-used 0) (calc-hashes-used 0) - (func (calc-do-alg-entry "" "Function: "))) + (func (calc-do-alg-entry "" "Function: " nil + 'calc-get-operator-history))) (setq record-entry t) (or (= (length func) 1) (error "Bad format"))
--- a/lisp/calc/calc-rewr.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/calc/calc-rewr.el Sat Jul 29 09:59:12 2006 +0000 @@ -154,7 +154,6 @@ (setq expr (calc-top-n 2) pat (calc-top-n 1) n 2) - (if interactive (setq calc-previous-alg-entry pat)) (setq pat (if (stringp pat) (math-read-expr pat) pat)) (if (eq (car-safe pat) 'error) (error "Bad format in expression: %s" (nth 1 pat)))
--- a/lisp/calc/calc-sel.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/calc/calc-sel.el Sat Jul 29 09:59:12 2006 +0000 @@ -633,6 +633,9 @@ (setcar (nthcdr 2 entry) (and (not (eq sel (car entry))) sel)) (calc-delete-selection num)))) +(defvar calc-selection-history nil + "History for calc selections.") + (defun calc-enter-selection () (interactive) (calc-wrapper @@ -645,7 +648,8 @@ alg) (let ((calc-dollar-values (list sel)) (calc-dollar-used 0)) - (setq alg (calc-do-alg-entry "" "Replace selection with: ")) + (setq alg (calc-do-alg-entry "" "Replace selection with: " nil + 'calc-selection-history)) (and alg (progn (setq alg (calc-encase-atoms (car alg))) @@ -765,7 +769,8 @@ (car (calc-do-alg-entry "" (if divide "Divide both sides by: " - "Multiply both sides by: "))))) + "Multiply both sides by: ") + nil 'calc-selection-history)))) (and alg (progn (if (and (or (eq func '/) @@ -830,7 +835,8 @@ (car (calc-do-alg-entry "" (if subtract "Subtract from both sides: " - "Add to both sides: "))))) + "Add to both sides: ") + nil 'calc-selection-history)))) (and alg (progn (if (and (assq func calc-tweak-eqn-table)
--- a/lisp/calc/calc.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/calc/calc.el Sat Jul 29 09:59:12 2006 +0000 @@ -886,7 +886,6 @@ "Formatting function used for non-decimal numbers.") (defvar calc-last-kill nil) ; Last number killed in calc-mode. -(defvar calc-previous-alg-entry nil) ; Previous algebraic entry. (defvar calc-dollar-values nil) ; Values to be used for '$'. (defvar calc-dollar-used nil) ; Highest order of '$' that occurred. (defvar calc-hashes-used nil) ; Highest order of '#' that occurred.
--- a/lisp/calc/calcalg3.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/calc/calcalg3.el Sat Jul 29 09:59:12 2006 +0000 @@ -103,6 +103,9 @@ (defvar calc-curve-model) (defvar calc-curve-coefnames) +(defvar calc-curve-fit-history nil + "History for calc-curve-fit.") + (defun calc-curve-fit (arg &optional calc-curve-model calc-curve-coefnames calc-curve-varnames) (interactive "P") @@ -259,7 +262,8 @@ (let* ((calc-dollar-values calc-arg-values) (calc-dollar-used 0) (calc-hashes-used 0)) - (setq calc-curve-model (calc-do-alg-entry "" "Model formula: ")) + (setq calc-curve-model (calc-do-alg-entry "" "Model formula: " + nil 'calc-curve-fit-history)) (if (/= (length calc-curve-model) 1) (error "Bad format")) (setq calc-curve-model (car calc-curve-model)
--- a/lisp/cus-edit.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/cus-edit.el Sat Jul 29 09:59:12 2006 +0000 @@ -1087,18 +1087,24 @@ ;; Packages will update this variable, so make it available. ;;;###autoload (defvar customize-package-emacs-version-alist nil - "Alist mapping versions of Emacs to versions of a package. -These package versions are listed in the :package-version -keyword used in `defcustom', `defgroup', and `defface'. Its -elements look like this: + "Alist mapping versions of a package to Emacs versions. +We use this for packages that have their own names, but are released +as part of Emacs itself. + +Each elements looks like this: (PACKAGE (PVERSION . EVERSION)...) -For each PACKAGE, which is a symbol, there are one or more -elements that contain a package version PVERSION with an -associated Emacs version EVERSION. These versions are strings. -For example, the MH-E package updates this alist with the -following: +Here PACKAGE is the name of a package, as a symbol. After +PACKAGE come one or more elements, each associating a +package version PVERSION with the first Emacs version +EVERSION in which it (or a subsequent version of PACKAGE) +was first released. Both PVERSION and EVERSION are strings. +PVERSION should be a string that this package used in +the :package-version keyword for `defcustom', `defgroup', +and `defface'. + +For example, the MH-E package updates this alist as follows: (add-to-list 'customize-package-emacs-version-alist '(MH-E (\"6.0\" . \"22.1\") (\"6.1\" . \"22.1\") @@ -1173,11 +1179,10 @@ since-version)))) (defun customize-package-emacs-version (symbol package-version) - "Return Emacs version of SYMBOL. -PACKAGE-VERSION has the form (PACKAGE . VERSION). The VERSION of -PACKAGE is looked up in the associated list + "Return the Emacs version in which SYMBOL's meaning last changed. +PACKAGE-VERSION has the form (PACKAGE . VERSION). We use `customize-package-emacs-version-alist' to find the version of -Emacs that is associated with it." +Emacs that is associated with version VERSION of PACKAGE." (let (package-versions emacs-version) ;; Use message instead of error since we want user to be able to ;; see the rest of the symbols even if a package author has @@ -1193,9 +1198,9 @@ (cdr package-version) "customize-package-emacs-version-alist"))) (t - (message "Package %s neglected to update %s" + (message "Package %s version %s lists no corresponding Emacs version" (car package-version) - "customize-package-emacs-version-alist"))) + (cdr package-version)))) emacs-version)) (defun customize-version-lessp (version1 version2) @@ -2668,7 +2673,18 @@ (error nil)) (cond ((eq (caar tmp) 'user) 'saved) - ((eq (caar tmp) 'changed) 'changed) + ((eq (caar tmp) 'changed) + (if (condition-case nil + (and (null comment) + (equal value + (eval + (car (get symbol 'standard-value))))) + (error nil)) + ;; The value was originally set outside + ;; custom, but it was set to the standard + ;; value (probably an autoloaded defcustom). + 'standard + 'changed)) (t 'themed)) 'changed)) ((setq tmp (get symbol 'standard-value)) @@ -4433,10 +4449,13 @@ map) "Keymap for `custom-mode'.") -(defun custom-no-edit () - "Refuse to allow editing of Custom buffer." - (interactive) - (error "You can't edit this part of the Custom buffer")) +(defun custom-no-edit (pos &optional event) + "Invoke button at POS, or refuse to allow editing of Custom buffer." + (interactive "@d") + (let ((button (get-char-property pos 'button))) + (if button + (widget-apply-action button event) + (error "You can't edit this part of the Custom buffer")))) (easy-menu-define Custom-mode-menu custom-mode-map
--- a/lisp/custom.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/custom.el Sat Jul 29 09:59:12 2006 +0000 @@ -558,9 +558,10 @@ (unless (member load loads) (put symbol 'custom-loads (cons (purecopy load) loads))))) -(defun custom-autoload (symbol load) - "Mark SYMBOL as autoloaded custom variable and add dependency LOAD." - (put symbol 'custom-autoload t) +(defun custom-autoload (symbol load &optional noset) + "Mark SYMBOL as autoloaded custom variable and add dependency LOAD. +If NOSET is non-nil, don't bother autoloading LOAD when setting the variable." + (put symbol 'custom-autoload (if noset 'noset t)) (custom-add-load symbol load)) ;; This test is also in the C code of `user-variable-p'. @@ -699,10 +700,10 @@ (customized (get symbol 'customized-value)) (old (or (get symbol 'saved-value) (get symbol 'standard-value)))) ;; Mark default value as set iff different from old value. - (if (or (null old) - (not (equal value (condition-case nil - (eval (car old)) - (error nil))))) + (if (not (and old + (equal value (condition-case nil + (eval (car old)) + (error nil))))) (progn (put symbol 'customized-value (list (custom-quote value))) (custom-push-theme 'theme-value symbol 'user 'set (custom-quote value))) @@ -827,13 +828,9 @@ (if (and (eq prop 'theme-value) (boundp symbol)) (let ((sv (get symbol 'standard-value))) - (when (and (null sv) (custom-variable-p symbol)) - (custom-load-symbol symbol) - (setq sv (get symbol 'standard-value))) - (if (or (null sv) - (not (equal (eval (car (get symbol 'standard-value))) - (symbol-value symbol)))) - (setq old (list (list 'changed (symbol-value symbol)))))) + (unless (and sv + (equal (eval (car sv)) (symbol-value symbol))) + (setq old (list (list 'changed (symbol-value symbol)))))) (if (and (facep symbol) (not (face-spec-match-p symbol (get symbol 'face-defface-spec)))) (setq old (list (list 'changed (list @@ -907,6 +904,10 @@ (when requests (put symbol 'custom-requests requests) (mapc 'require requests)) + (unless (or (get symbol 'standard-value) + (memq (get symbol 'custom-autoload) '(nil noset))) + ;; This symbol needs to be autoloaded, even just for a `set'. + (custom-load-symbol symbol)) (setq set (or (get symbol 'custom-set) 'custom-set-default)) (put symbol 'saved-value (list value)) (put symbol 'saved-variable-comment comment) @@ -926,6 +927,8 @@ (setq args (cdr args)) (and (or now (default-boundp symbol)) (put symbol 'variable-comment comment))) + ;; I believe this is dead-code, because the `sort' code above would + ;; have burped before we could get here. --Stef ;; Old format, a plist of SYMBOL VALUE pairs. (message "Warning: old format `custom-set-variables'") (ding)
--- a/lisp/dired-aux.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/dired-aux.el Sat Jul 29 09:59:12 2006 +0000 @@ -745,19 +745,22 @@ ;;; We don't recognize the file as compressed, so compress it. ;;; Try gzip; if we don't have that, use compress. (condition-case nil - (if (not (dired-check-process (concat "Compressing " file) - "gzip" "-f" file)) - (let ((out-name - (if (file-exists-p (concat file ".gz")) - (concat file ".gz") - (concat file ".z")))) - ;; Rename the compressed file to NEWNAME - ;; if it hasn't got that name already. - (if (and newname (not (equal newname out-name))) - (progn - (rename-file out-name newname t) - newname) - out-name))) + (let ((out-name (concat file ".gz"))) + (and (or (not (file-exists-p out-name)) + (y-or-n-p + (format "File %s already exists. Really compress? " + out-name))) + (not (dired-check-process (concat "Compressing " file) + "gzip" "-f" file)) + (or (file-exists-p out-name) + (setq out-name (concat file ".z"))) + ;; Rename the compressed file to NEWNAME + ;; if it hasn't got that name already. + (if (and newname (not (equal newname out-name))) + (progn + (rename-file out-name newname t) + newname) + out-name))) (file-error (if (not (dired-check-process (concat "Compressing " file) "compress" "-f" file))
--- a/lisp/dired.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/dired.el Sat Jul 29 09:59:12 2006 +0000 @@ -1260,6 +1260,7 @@ (define-key map "\C-tc" 'tumme-dired-comment-files) (define-key map "\C-tf" 'tumme-mark-tagged-files) (define-key map "\C-t\C-t" 'tumme-dired-insert-marked-thumbs) + (define-key map "\C-te" 'tumme-dired-edit-comment-and-tags) ;; Make menu bar items.
--- a/lisp/dos-w32.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/dos-w32.el Sat Jul 29 09:59:12 2006 +0000 @@ -88,10 +88,13 @@ (setq-default buffer-file-coding-system 'undecided-dos) (defun find-buffer-file-type-coding-system (command) - "Choose a coding system for a file operation. -If COMMAND is `insert-file-contents', the coding system is chosen based -upon the filename, the contents of `untranslated-filesystem-list' and -`file-name-buffer-file-type-alist', and whether the file exists: + "Choose a coding system for a file operation in COMMAND. +COMMAND is a list that specifies the operation, and I/O primitive as its +CAR, and the arguments that might be given to that operation as its CDR. +If operation is `insert-file-contents', the coding system is chosen based +upon the filename (the CAR of the arguments beyond the operation), the contents +of `untranslated-filesystem-list' and `file-name-buffer-file-type-alist', +and whether the file exists: If it matches in `untranslated-filesystem-list': If the file exists: `undecided' @@ -103,7 +106,7 @@ If the file exists: `undecided' If the file does not exist: default-buffer-file-coding-system -If COMMAND is `write-region', the coding system is chosen based upon +If operation is `write-region', the coding system is chosen based upon the value of `buffer-file-coding-system' and `buffer-file-type'. If `buffer-file-coding-system' is non-nil, its value is used. If it is nil and `buffer-file-type' is t, the coding system is `no-conversion'. @@ -126,6 +129,13 @@ (undecided nil) (undecided-unix nil)) (cond ((eq op 'insert-file-contents) (setq target (nth 1 command)) + ;; If TARGET is a cons cell, it has the form (FILENAME . BUFFER), + ;; where BUFFER is a buffer into which the file was already read, + ;; but its contents were not yet decoded. (This form of the + ;; arguments is used, e.g., in arc-mode.el.) This function + ;; doesn't care about the contents, it only looks at the file's + ;; name, which is the CAR of the cons cell. + (if (consp target) (setq target (car target))) ;; First check for a file name that indicates ;; it is truly binary. (setq binary (find-buffer-file-type target))
--- a/lisp/emacs-lisp/authors.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/emacs-lisp/authors.el Sat Jul 29 09:59:12 2006 +0000 @@ -92,6 +92,7 @@ "Kai.Grossjohann@Cs.Uni-Dortmund.De" "Kai.Grossjohann@Gmx.Net") ("Karl Berry" "K. Berry") + ("K,Aa(Broly L$,1 q(Brentey" "K,Aa(Broly L,Bu(Brentey" "L$,1 q(Brentey K,Aa(Broly") ("Kazushi Marukawa" "Kazushi") ("Ken Manheimer" "Kenneth Manheimer") ("Kenichi Handa" "Ken'ichi Handa" "Kenichi HANDA")
--- a/lisp/emacs-lisp/autoload.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/emacs-lisp/autoload.el Sat Jul 29 09:59:12 2006 +0000 @@ -124,7 +124,10 @@ ) `(progn (defvar ,varname ,init ,doc) - (custom-autoload ',varname ,file)))) + (custom-autoload ',varname ,file + ,(condition-case nil + (null (cadr (memq :set form))) + (error nil)))))) ((eq car 'defgroup) ;; In Emacs this is normally handled separately by cus-dep.el, but for
--- a/lisp/emacs-lisp/find-func.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/emacs-lisp/find-func.el Sat Jul 29 09:59:12 2006 +0000 @@ -226,7 +226,12 @@ (regexp-symbol (cdr (assq type find-function-regexp-alist)))) (with-current-buffer (find-file-noselect filename) (let ((regexp (format (symbol-value regexp-symbol) - (regexp-quote (symbol-name symbol)))) + ;; Entry for ` (backquote) macro in loaddefs.el, + ;; (defalias (quote \`)..., has a \ but + ;; (symbol-name symbol) doesn't. Add an + ;; optional \ to catch this. + (concat "\\\\?" + (regexp-quote (symbol-name symbol))))) (case-fold-search)) (with-syntax-table emacs-lisp-mode-syntax-table (goto-char (point-min))
--- a/lisp/emulation/cua-base.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/emulation/cua-base.el Sat Jul 29 09:59:12 2006 +0000 @@ -305,11 +305,23 @@ (const :tag "No delay" nil)) :group 'cua) +(defcustom cua-delete-selection t + "*If non-nil, typed text replaces text in the active selection." + :type '(choice (const :tag "Disabled" nil) + (other :tag "Enabled" t)) + :group 'cua) + (defcustom cua-keep-region-after-copy nil "If non-nil, don't deselect the region after copying." :type 'boolean :group 'cua) +(defcustom cua-toggle-set-mark t + "*In non-nil, the `cua-set-mark' command toggles the mark." + :type '(choice (const :tag "Disabled" nil) + (other :tag "Enabled" t)) + :group 'cua) + (defcustom cua-enable-register-prefix 'not-ctrl-u "*If non-nil, registers are supported via numeric prefix arg. If the value is t, any numeric prefix arg in the range 0 to 9 will be @@ -391,7 +403,8 @@ On non-window systems, always use the meta modifier. Must be set prior to enabling CUA." :type '(choice (const :tag "Meta key" meta) - (const :tag "Hyper key" hyper ) + (const :tag "Alt key" alt) + (const :tag "Hyper key" hyper) (const :tag "Super key" super)) :group 'cua) @@ -783,7 +796,7 @@ (defun cua-replace-region () "Replace the active region with the character you type." (interactive) - (let ((not-empty (cua-delete-region))) + (let ((not-empty (and cua-delete-selection (cua-delete-region)))) (unless (eq this-original-command this-command) (let ((overwrite-mode (and overwrite-mode @@ -1001,7 +1014,7 @@ (arg (setq this-command 'pop-to-mark-command) (pop-to-mark-command)) - (mark-active + ((and cua-toggle-set-mark mark-active) (cua--deactivate) (message "Mark Cleared")) (t
--- a/lisp/emulation/cua-rect.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/emulation/cua-rect.el Sat Jul 29 09:59:12 2006 +0000 @@ -1361,6 +1361,7 @@ (interactive) (let ((M (cond ((eq cua--rectangle-modifier-key 'hyper) " H-") ((eq cua--rectangle-modifier-key 'super) " s-") + ((eq cua--rectangle-modifier-key 'alt) " A-") (t " M-")))) (message (concat (if help "C-?:help" "")
--- a/lisp/files.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/files.el Sat Jul 29 09:59:12 2006 +0000 @@ -44,7 +44,7 @@ (defcustom delete-auto-save-files t - "*Non-nil means delete auto-save file when a buffer is saved or killed. + "Non-nil means delete auto-save file when a buffer is saved or killed. Note that the auto-save file will not be deleted if the buffer is killed when it has unsaved changes." @@ -53,7 +53,7 @@ (defcustom directory-abbrev-alist nil - "*Alist of abbreviations for file directories. + "Alist of abbreviations for file directories. A list of elements of the form (FROM . TO), each meaning to replace FROM with TO when it appears in a directory name. This replacement is done when setting up the default directory of a newly visited file. @@ -74,7 +74,7 @@ ;; Turn off backup files on VMS since it has version numbers. (defcustom make-backup-files (not (eq system-type 'vax-vms)) - "*Non-nil means make a backup of a file the first time it is saved. + "Non-nil means make a backup of a file the first time it is saved. This can be done by renaming the file or by copying. Renaming means that Emacs renames the existing file so that it is a @@ -103,20 +103,20 @@ (put 'backup-inhibited 'permanent-local t) (defcustom backup-by-copying nil - "*Non-nil means always use copying to create backup files. + "Non-nil means always use copying to create backup files. See documentation of variable `make-backup-files'." :type 'boolean :group 'backup) (defcustom backup-by-copying-when-linked nil - "*Non-nil means use copying to create backups for files with multiple names. + "Non-nil means use copying to create backups for files with multiple names. This causes the alternate names to refer to the latest version as edited. This variable is relevant only if `backup-by-copying' is nil." :type 'boolean :group 'backup) (defcustom backup-by-copying-when-mismatch nil - "*Non-nil means create backups by copying if this preserves owner or group. + "Non-nil means create backups by copying if this preserves owner or group. Renaming may still be used (subject to control of other variables) when it would not result in changing the owner or group of the file; that is, for files which are owned by you and whose group matches @@ -126,7 +126,7 @@ :group 'backup) (defcustom backup-by-copying-when-privileged-mismatch 200 - "*Non-nil means create backups by copying to preserve a privileged owner. + "Non-nil means create backups by copying to preserve a privileged owner. Renaming may still be used (subject to control of other variables) when it would not result in changing the owner of the file or if the owner has a user id greater than the value of this variable. This is useful @@ -142,7 +142,7 @@ Called with an absolute file name as argument, it returns t to enable backup.") (defcustom buffer-offer-save nil - "*Non-nil in a buffer means always offer to save buffer on exit. + "Non-nil in a buffer means always offer to save buffer on exit. Do so even if the buffer is not visiting a file. Automatically local in all buffers." :type 'boolean @@ -150,7 +150,7 @@ (make-variable-buffer-local 'buffer-offer-save) (defcustom find-file-existing-other-name t - "*Non-nil means find a file under alternative names, in existing buffers. + "Non-nil means find a file under alternative names, in existing buffers. This means if any existing buffer is visiting the file you want under another name, you get the existing buffer instead of a new buffer." :type 'boolean @@ -165,7 +165,7 @@ (put 'find-file-visit-truename 'safe-local-variable 'boolean) (defcustom revert-without-query nil - "*Specify which files should be reverted without query. + "Specify which files should be reverted without query. The value is a list of regular expressions. If the file name matches one of these regular expressions, then `revert-buffer' reverts the file without querying @@ -226,7 +226,7 @@ "Regexp recognizing file names which aren't allowed by the filesystem.") (defcustom file-precious-flag nil - "*Non-nil means protect against I/O errors while saving files. + "Non-nil means protect against I/O errors while saving files. Some modes set this non-nil in particular buffers. This feature works by writing the new contents into a temporary file @@ -241,7 +241,7 @@ :group 'backup) (defcustom version-control nil - "*Control use of version numbers for backup files. + "Control use of version numbers for backup files. t means make numeric backup versions unconditionally. nil means make them for files that have some already. `never' means do not make them." @@ -254,13 +254,13 @@ '(lambda (x) (or (booleanp x) (equal x 'never)))) (defcustom dired-kept-versions 2 - "*When cleaning directory, number of versions to keep." + "When cleaning directory, number of versions to keep." :type 'integer :group 'backup :group 'dired) (defcustom delete-old-versions nil - "*If t, delete excess backup versions silently. + "If t, delete excess backup versions silently. If nil, ask confirmation. Any other value prevents any trimming." :type '(choice (const :tag "Delete" t) (const :tag "Ask" nil) @@ -268,20 +268,20 @@ :group 'backup) (defcustom kept-old-versions 2 - "*Number of oldest versions to keep when a new numbered backup is made." + "Number of oldest versions to keep when a new numbered backup is made." :type 'integer :group 'backup) (put 'kept-old-versions 'safe-local-variable 'integerp) (defcustom kept-new-versions 2 - "*Number of newest versions to keep when a new numbered backup is made. + "Number of newest versions to keep when a new numbered backup is made. Includes the new backup. Must be > 0" :type 'integer :group 'backup) (put 'kept-new-versions 'safe-local-variable 'integerp) (defcustom require-final-newline nil - "*Whether to add a newline automatically at the end of the file. + "Whether to add a newline automatically at the end of the file. A value of t means do this only when the file is about to be saved. A value of `visit' means do this right after the file is visited. @@ -299,7 +299,7 @@ :group 'editing-basics) (defcustom mode-require-final-newline t - "*Whether to add a newline at end of file, in certain major modes. + "Whether to add a newline at end of file, in certain major modes. Those modes set `require-final-newline' to this value when you enable them. They do so because they are often used for files that are supposed to end in newlines, and the question is how to arrange that. @@ -322,12 +322,12 @@ :version "22.1") (defcustom auto-save-default t - "*Non-nil says by default do auto-saving of every file-visiting buffer." + "Non-nil says by default do auto-saving of every file-visiting buffer." :type 'boolean :group 'auto-save) (defcustom auto-save-visited-file-name nil - "*Non-nil says auto-save a buffer in the file it is visiting, when practical. + "Non-nil says auto-save a buffer in the file it is visiting, when practical. Normally auto-save files are written under other names." :type 'boolean :group 'auto-save) @@ -337,7 +337,7 @@ ;; Don't put "\\2" inside expand-file-name, since it will be ;; transformed to "/2" on DOS/Windows. ,(concat temporary-file-directory "\\2") t)) - "*Transforms to apply to buffer file name before making auto-save file name. + "Transforms to apply to buffer file name before making auto-save file name. Each transform is a list (REGEXP REPLACEMENT UNIQUIFY): REGEXP is a regular expression to match against the file name. If it matches, `replace-match' is used to replace the @@ -364,19 +364,19 @@ :version "21.1") (defcustom save-abbrevs t - "*Non-nil means save word abbrevs too when files are saved. + "Non-nil means save word abbrevs too when files are saved. If `silently', don't ask the user before saving." :type '(choice (const t) (const nil) (const silently)) :group 'abbrev) (defcustom find-file-run-dired t - "*Non-nil means allow `find-file' to visit directories. + "Non-nil means allow `find-file' to visit directories. To visit the directory, `find-file' runs `find-directory-functions'." :type 'boolean :group 'find-file) (defcustom find-directory-functions '(cvs-dired-noselect dired-noselect) - "*List of functions to try in sequence to visit a directory. + "List of functions to try in sequence to visit a directory. Each function is called with the directory name as the sole argument and should return either a buffer or nil." :type '(hook :options (cvs-dired-noselect dired-noselect)) @@ -448,7 +448,7 @@ 'write-contents-functions "22.1") (defcustom enable-local-variables t - "*Control use of local variables in files you visit. + "Control use of local variables in files you visit. The value can be t, nil, :safe, or something else. A value of t means file local variables specifications are obeyed @@ -506,7 +506,7 @@ (defalias 'file-locked-p 'ignore)) (defcustom view-read-only nil - "*Non-nil means buffers visiting files read-only do so in view mode. + "Non-nil means buffers visiting files read-only do so in view mode. In fact, this means that all read-only buffers normally have View mode enabled, including buffers that are read-only because you visit a file you cannot alter, and buffers you make read-only @@ -1324,7 +1324,7 @@ filename))) (defcustom find-file-not-true-dirname-list nil - "*List of logical names for which visiting shouldn't save the true dirname. + "List of logical names for which visiting shouldn't save the true dirname. On VMS, when you visit a file using a logical name that searches a path, you may or may not want the visited file name to record the specific directory where the file was found. If you *do not* want that, add the logical @@ -1373,7 +1373,7 @@ found)))) (defcustom find-file-wildcards t - "*Non-nil means file-visiting commands should handle wildcards. + "Non-nil means file-visiting commands should handle wildcards. For example, if you specify `*.c', that would visit all the files whose names match the pattern." :group 'files @@ -1381,7 +1381,7 @@ :type 'boolean) (defcustom find-file-suppress-same-file-warnings nil - "*Non-nil means suppress warning messages for symlinked files. + "Non-nil means suppress warning messages for symlinked files. When nil, Emacs prints a warning when visiting a file that is already visited, but with a different name. Setting this option to t suppresses this warning." @@ -2303,7 +2303,7 @@ :type 'alist) (defcustom safe-local-eval-forms nil - "*Expressions that are considered safe in an `eval:' local variable. + "Expressions that are considered safe in an `eval:' local variable. Add expressions to this list if you want Emacs to evaluate them, when they appear in an `eval' local variable specification, without first asking you for confirmation." @@ -2765,7 +2765,7 @@ (defcustom change-major-mode-with-file-name t - "*Non-nil means \\[write-file] should set the major mode from the file name. + "Non-nil means \\[write-file] should set the major mode from the file name. However, the mode will not be changed if \(1) a local variables list or the `-*-' line specifies a major mode, or \(2) the current major mode is a \"special\" mode, @@ -4500,7 +4500,7 @@ (defcustom list-directory-brief-switches (if (eq system-type 'vax-vms) "" "-CF") - "*Switches for `list-directory' to pass to `ls' for brief listing." + "Switches for `list-directory' to pass to `ls' for brief listing." :type 'string :group 'dired) @@ -4508,7 +4508,7 @@ (if (eq system-type 'vax-vms) "/PROTECTION/SIZE/DATE/OWNER/WIDTH=(OWNER:10)" "-l") - "*Switches for `list-directory' to pass to `ls' for verbose listing." + "Switches for `list-directory' to pass to `ls' for verbose listing." :type 'string :group 'dired) @@ -4639,7 +4639,7 @@ "Absolute or relative name of the `ls' program used by `insert-directory'.") (defcustom directory-free-space-program "df" - "*Program to get the amount of free space on a file system. + "Program to get the amount of free space on a file system. We assume the output has the format of `df'. The value of this variable must be just a command name or file name; if you want to specify options, use `directory-free-space-args'. @@ -4653,7 +4653,7 @@ (defcustom directory-free-space-args (if (eq system-type 'darwin) "-k" "-Pk") - "*Options to use when running `directory-free-space-program'." + "Options to use when running `directory-free-space-program'." :type 'string :group 'dired)
--- a/lisp/find-file.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/find-file.el Sat Jul 29 09:59:12 2006 +0000 @@ -189,12 +189,16 @@ ;; C/C++ include, for NeXTSTEP too ("^\#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]" . (lambda () - (setq fname (buffer-substring (match-beginning 2) (match-end 2))))) + (buffer-substring (match-beginning 2) (match-end 2)))) ) - "*A list of regular expressions for `ff-find-file'. -Specifies how to recognize special constructs such as include files -etc. and an associated method for extracting the filename from that -construct.") + ;; We include `ff-treat-as-special' documentation here so that autoload + ;; can make it available to be read prior to loading this file. + "*List of special constructs for `ff-treat-as-special' to recognize. +Each element, tried in order, has the form (REGEXP . EXTRACT). +If REGEXP matches the current line (from the beginning of the line), +`ff-treat-as-special' calls function EXTRACT with no args. +If EXTRACT returns nil, keep trying. Otherwise, return the +filename that EXTRACT returned.") (defvaralias 'ff-related-file-alist 'ff-other-file-alist) (defcustom ff-other-file-alist 'cc-other-file-alist @@ -405,9 +409,7 @@ (ff-list-replace-env-vars (symbol-value ff-search-directories)) (ff-list-replace-env-vars ff-search-directories))) - (save-excursion - (beginning-of-line 1) - (setq fname (ff-treat-as-special))) + (setq fname (ff-treat-as-special)) (cond ((and (not ff-ignore-include) fname) @@ -540,9 +542,7 @@ (ff-list-replace-env-vars (symbol-value ff-search-directories)) (ff-list-replace-env-vars ff-search-directories))) - (save-excursion - (beginning-of-line 1) - (setq fname (ff-treat-as-special))) + (setq fname (ff-treat-as-special)) (cond ((and (not ff-ignore-include) fname) @@ -771,20 +771,22 @@ (defun ff-treat-as-special () "Return the file to look for if the construct was special, else nil. -The construct is defined in the variable `ff-special-constructs'." - (let* (fname - (list ff-special-constructs) - (elem (car list)) - (regexp (car elem)) - (match (cdr elem))) - (while (and list (not fname)) - (if (and (looking-at regexp) match) - (setq fname (funcall match))) - (setq list (cdr list)) - (setq elem (car list)) - (setq regexp (car elem)) - (setq match (cdr elem))) - fname)) +See variable `ff-special-constructs'." + (save-excursion + (beginning-of-line 1) + (let* (fname + (list ff-special-constructs) + (elem (car list)) + (regexp (car elem)) + (match (cdr elem))) + (while (and list (not fname)) + (if (and (looking-at regexp) match) + (setq fname (funcall match))) + (setq list (cdr list)) + (setq elem (car list)) + (setq regexp (car elem)) + (setq match (cdr elem))) + fname))) (defun ff-basename (string) "Return the basename of pathname STRING."
--- a/lisp/frame.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/frame.el Sat Jul 29 09:59:12 2006 +0000 @@ -776,7 +776,9 @@ "*Non-nil if window system changes focus when you move the mouse. You should set this variable to tell Emacs how your window manager handles focus, since there is no way in general for Emacs to find out -automatically." +automatically. + +This variable does not have any effect on MS-Windows." :type 'boolean :group 'frames :version "20.3")
--- a/lisp/gnus/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/gnus/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,38 @@ +2006-07-19 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> + + * mm-url.el (mm-url-insert-file-contents): Inhibit Connection: close + workaround for the url package included with Emacs. + + * nnweb.el (nnweb-google-create-mapping): Update regexp. + +2006-07-18 Karl Fogel <kfogel@red-bean.com> + + * nnmail.el (nnmail-article-group): If splitting raises an error, give + some information about the error when saying that the `bogus' mail + group will be used. + +2006-07-18 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> + + [ Backported bug fixes from No Gnus. ] + + * nnweb.el (nnweb-google-parse-1): Update regexp for author and date. + (nnweb-google-search): Respect nnweb-max-hits as upper bound. + (nnweb-request-article): Do proper xwfu encoding when fetching articles + by message-id. + + * gnus-srvr.el (gnus-browse-unsubscribe-group): Don't subscribe + unsubscribed groups as if they were killed ones. It causes duplicate + entries in gnus-newsrc-alist. + +2006-07-17 Reiner Steib <Reiner.Steib@gmx.de> + + * gnus-sum.el (gnus-summary-delete-article): Don't use TAB in doc + string. + +2006-07-16 NAKAJI Hiroyuki <nakaji@heimat.jp> (tiny change) + + * mm-util.el (mm-charset-synonym-alist): Map windows-31j to cp932. + 2006-07-14 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de> * gnus-start.el (gnus-subscribe-options-newsgroup-method): Doc fix. @@ -131,8 +166,7 @@ (mm-display-part): Simplify. (mm-inlinable-p): Add optional arg `type'. - * gnus-art.el (gnus-mime-view-part-as-type): Add optional PRED - argument. + * gnus-art.el (gnus-mime-view-part-as-type): Add optional PRED arg. (gnus-mime-view-part-externally, gnus-mime-view-part-internally): Try harder to show the attachment internally or externally using gnus-mime-view-part-as-type. @@ -142,8 +176,7 @@ * gnus-art.el (gnus-mime-view-part-as-type-internal): Try to fetch `filename' from Content-Disposition if Content-Type doesn't provide `name'. - (gnus-mime-view-part-as-type): Set default instead of - initial-input. + (gnus-mime-view-part-as-type): Set default instead of initial-input. 2006-04-28 Katsumi Yamaoka <yamaoka@jpl.org> @@ -166,8 +199,8 @@ * mml-sec.el (mml-secure-method): New internal variable. (mml-secure-sign, mml-secure-encrypt, mml-secure-message-sign) - (mml-secure-message-sign-encrypt, mml-secure-message-encrypt): New - functions using mml-secure-method. Sync from the trunk. + (mml-secure-message-sign-encrypt, mml-secure-message-encrypt): + New functions using mml-secure-method. Sync from the trunk. * mml.el (mml-mode-map): Add key bindings for those functions. (mml-menu): Simplify security menu entries. Suggested by Jesper @@ -211,8 +244,8 @@ 2006-04-20 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-util.el (gnus-replace-in-string): Prefer - replace-regexp-in-string over of replace-in-string. + * gnus-util.el (gnus-replace-in-string): + Prefer replace-regexp-in-string over of replace-in-string. 2006-04-20 Katsumi Yamaoka <yamaoka@jpl.org> @@ -220,8 +253,8 @@ * gnus-sum.el: Ditto. - * gnus-util.el (gnus-select-frame-set-input-focus): Use - select-frame-set-input-focus if it is available in XEmacs; use + * gnus-util.el (gnus-select-frame-set-input-focus): + Use select-frame-set-input-focus if it is available in XEmacs; use definition defined in Emacs 22 for old Emacsen. 2006-04-17 Reiner Steib <Reiner.Steib@gmx.de> @@ -233,13 +266,13 @@ (mm-charset-to-coding-system): Use it. (mm-codepage-setup): New helper function. (mm-charset-eval-alist): New variable. - (mm-charset-to-coding-system): Use mm-charset-eval-alist. Warn - about unknown charsets. Add allow-override. Use - `mm-charset-override-alist' only when decoding. + (mm-charset-to-coding-system): Use mm-charset-eval-alist. + Warn about unknown charsets. Add allow-override. + Use `mm-charset-override-alist' only when decoding. (mm-detect-mime-charset-region): Use :mime-charset. - * mm-bodies.el (mm-decode-body, mm-decode-string): Call - `mm-charset-to-coding-system' with allow-override argument. + * mm-bodies.el (mm-decode-body, mm-decode-string): + Call `mm-charset-to-coding-system' with allow-override argument. * message.el (message-tool-bar-zap-list, message-tool-bar) (message-tool-bar-gnome, message-tool-bar-retro): New variables. @@ -255,8 +288,8 @@ `gmm-tool-bar-from-list'. * gnus-group.el (gnus-group-tool-bar, gnus-group-tool-bar-gnome) - (gnus-group-tool-bar-retro, gnus-group-tool-bar-zap-list): New - variables. + (gnus-group-tool-bar-retro, gnus-group-tool-bar-zap-list): + New variables. (gnus-group-make-tool-bar): Complete rewrite using `gmm-tool-bar-from-list'. (gnus-group-tool-bar-update): New function. @@ -270,8 +303,8 @@ 2006-04-12 Reiner Steib <Reiner.Steib@gmx.de> - * gnus-art.el (gnus-article-mode): Set - cursor-in-non-selected-windows to nil. + * gnus-art.el (gnus-article-mode): + Set cursor-in-non-selected-windows to nil. 2006-04-12 Katsumi Yamaoka <yamaoka@jpl.org> @@ -302,8 +335,7 @@ 2006-04-11 Lars Magne Ingebrigtsen <larsi@gnus.org> - * nnslashdot.el (nnslashdot-retrieve-headers-1): Fix up to new - layout. + * nnslashdot.el (nnslashdot-retrieve-headers-1): Fix up to new layout. * rfc2047.el (rfc2047-decode-encoded-words): Don't message about unknown charset. @@ -365,13 +397,12 @@ * gnus-agent.el (gnus-agent-queue-mail): Fix custom tag for `t'. - * spam.el (spam-mark-new-messages-in-spam-group-as-spam): Add - comment on version. + * spam.el (spam-mark-new-messages-in-spam-group-as-spam): + Add comment on version. 2006-03-20 Teodor Zlatanov <tzz@lifelogs.com> - * spam.el (spam-mark-new-messages-in-spam-group-as-spam): New - variable. + * spam.el (spam-mark-new-messages-in-spam-group-as-spam): New variable. (spam-mark-junk-as-spam-routine): Use it. Allow to disable assigning the spam-mark to new messages. @@ -402,14 +433,14 @@ * gnus-art.el (gnus-article-only-boring-p): Bind inhibit-point-motion-hooks to avoid infinite loop when entering - intangible text. Reported by Ralf Wachinger - <rwnewsmampfer@geekmail.de>. + intangible text. + Reported by Ralf Wachinger <rwnewsmampfer@geekmail.de>. 2006-03-14 Simon Josefsson <jas@extundo.com> * message.el (message-unique-id): Don't use message-number-base36 - if (user-uid) is a float. Reported by Bjorn Solberg - <bjorn_ding1@hekneby.org>. + if (user-uid) is a float. + Reported by Bjorn Solberg <bjorn_ding1@hekneby.org>. 2006-03-13 Katsumi Yamaoka <yamaoka@jpl.org>
--- a/lisp/gnus/gnus-srvr.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/gnus/gnus-srvr.el Sat Jul 29 09:59:12 2006 +0000 @@ -943,19 +943,23 @@ (progn ;; Make sure the group has been properly removed before we ;; subscribe to it. - (gnus-kill-ephemeral-group group) + (if (gnus-ephemeral-group-p group) + (gnus-kill-ephemeral-group group)) + ;; We need to discern between killed/zombie groups and + ;; just unsubscribed ones. (gnus-group-change-level - (list t group gnus-level-default-subscribed - nil nil (if (gnus-server-equal - gnus-browse-current-method "native") - nil - (gnus-method-simplify - gnus-browse-current-method))) + (or (gnus-group-entry group) + (list t group gnus-level-default-subscribed + nil nil (if (gnus-server-equal + gnus-browse-current-method "native") + nil + (gnus-method-simplify + gnus-browse-current-method)))) gnus-level-default-subscribed (gnus-group-level group) (and (car (nth 1 gnus-newsrc-alist)) (gnus-gethash (car (nth 1 gnus-newsrc-alist)) gnus-newsrc-hashtb)) - t) + (null (gnus-group-entry group))) (delete-char 1) (insert ? )) (gnus-group-change-level
--- a/lisp/gnus/gnus-sum.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/gnus/gnus-sum.el Sat Jul 29 09:59:12 2006 +0000 @@ -9510,7 +9510,7 @@ ;; Suggested by Jack Vinson <vinson@unagi.cis.upenn.edu>. (defun gnus-summary-delete-article (&optional n) "Delete the N next (mail) articles. -This command actually deletes articles. This is not a marking +This command actually deletes articles. This is not a marking command. The article will disappear forever from your life, never to return.
--- a/lisp/gnus/mm-url.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/gnus/mm-url.el Sat Jul 29 09:59:12 2006 +0000 @@ -301,7 +301,13 @@ (list url (buffer-size))) (mm-url-load-url) (let ((name buffer-file-name) - (url-request-extra-headers (list (cons "Connection" "Close"))) + (url-request-extra-headers + ;; ISTM setting a Connection header was a workaround for + ;; older versions of url included with w3, but it does more + ;; harm than good with the one shipped with Emacs. --ansel + (if (not (and (boundp 'url-version) + (equal url-version "Emacs"))) + (list (cons "Connection" "Close")))) (url-package-name (or mm-url-package-name url-package-name)) (url-package-version (or mm-url-package-version
--- a/lisp/gnus/mm-util.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/gnus/mm-util.el Sat Jul 29 09:59:12 2006 +0000 @@ -204,19 +204,19 @@ `( ;; Not in XEmacs, but it's not a proper MIME charset anyhow. ,@(unless (mm-coding-system-p 'x-ctext) - '((x-ctext . ctext))) + '((x-ctext . ctext))) ;; ISO-8859-15 is very similar to ISO-8859-1. But it's _different_! ,@(unless (mm-coding-system-p 'iso-8859-15) - '((iso-8859-15 . iso-8859-1))) + '((iso-8859-15 . iso-8859-1))) ;; BIG-5HKSCS is similar to, but different than, BIG-5. ,@(unless (mm-coding-system-p 'big5-hkscs) '((big5-hkscs . big5))) ;; Windows-1252 is actually a superset of Latin-1. See also ;; `gnus-article-dumbquotes-map'. ,@(unless (mm-coding-system-p 'windows-1252) - (if (mm-coding-system-p 'cp1252) - '((windows-1252 . cp1252)) - '((windows-1252 . iso-8859-1)))) + (if (mm-coding-system-p 'cp1252) + '((windows-1252 . cp1252)) + '((windows-1252 . iso-8859-1)))) ;; Windows-1250 is a variant of Latin-2 heavily used by Microsoft ;; Outlook users in Czech republic. Use this to allow reading of their ;; e-mails. cp1250 should be defined by M-x codepage-setup. @@ -232,6 +232,10 @@ (if (mm-coding-system-p 'cp949) '((ks_c_5601-1987 . cp949)) '((ks_c_5601-1987 . euc-kr)))) + ;; Windows-31J is Windows Codepage 932. + ,@(if (and (not (mm-coding-system-p 'windows-31j)) + (mm-coding-system-p 'cp932)) + '((windows-31j . cp932))) ) "A mapping from unknown or invalid charset names to the real charset names.")
--- a/lisp/gnus/nnmail.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/gnus/nnmail.el Sat Jul 29 09:59:12 2006 +0000 @@ -1131,7 +1131,7 @@ (if (and (symbolp nnmail-split-methods) (fboundp nnmail-split-methods)) (let ((split - (condition-case nil + (condition-case error-info ;; `nnmail-split-methods' is a function, so we ;; just call this function here and use the ;; result. @@ -1139,7 +1139,7 @@ '("bogus")) (error (nnheader-message - 5 "Error in `nnmail-split-methods'; using `bogus' mail group") + 5 "Error in `nnmail-split-methods'; using `bogus' mail group: %S" error-info) (sit-for 1) '("bogus"))))) (setq split (mm-delete-duplicates split))
--- a/lisp/gnus/nnweb.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/gnus/nnweb.el Sat Jul 29 09:59:12 2006 +0000 @@ -171,7 +171,8 @@ (when (string-match "^<\\(.*\\)>$" article) (setq art (match-string 1 article))) (when (and fetch art) - (setq url (format fetch art)) + (setq url (format fetch + (mm-url-form-encode-xwfu art))) (mm-with-unibyte-current-buffer (mm-url-insert url)) (if (nnweb-definition 'reference t) @@ -365,7 +366,7 @@ (mm-url-decode-entities) (search-backward " - ") (when (looking-at - " - \\([a-zA-Z]+\\) \\([0-9]+\\)\\(?: \\([0-9]\\{4\\}\\)\\)?, [^\n]+by \\([^<\n]+\\)\n") + " - \\([a-zA-Z]+\\) \\([0-9]+\\)\\(?: \\([0-9]\\{4\\}\\)\\)?[^\n]+by ?\n?\\([^<\n]+\\)\n") (setq From (match-string 4) Date (format "%s %s 00:00:00 %s" (match-string 1) @@ -415,7 +416,7 @@ (goto-char (point-min)) (incf i 100) (if (or (not (re-search-forward - "<a href=\"\n\\([^>\" \n\t]+\\)[^<]*<img src=[^>]+next" + "<a [^>]+href=\"\n?\\([^>\" \n\t]+\\)[^<]*<img[^>]+src=[^>]+next" nil t)) (>= i nnweb-max-hits)) (setq more nil) @@ -437,7 +438,8 @@ "?" (mm-url-encode-www-form-urlencoded `(("q" . ,search) - ("num" . "100") + ("num" . ,(number-to-string + (min 100 nnweb-max-hits))) ("hq" . "") ("hl" . "en") ("lr" . "")
--- a/lisp/help-mode.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/help-mode.el Sat Jul 29 09:59:12 2006 +0000 @@ -157,8 +157,9 @@ (let ((location (find-function-search-for-symbol fun nil file))) (pop-to-buffer (car location)) - (when (cdr location) - (goto-char (cdr location))))) + (if (cdr location) + (goto-char (cdr location)) + (message "Unable to find location in file")))) 'help-echo (purecopy "mouse-2, RET: find function's definition")) (define-button-type 'help-variable-def @@ -168,8 +169,9 @@ (setq file (help-C-file-name var 'var))) (let ((location (find-variable-noselect var file))) (pop-to-buffer (car location)) - (when (cdr location) - (goto-char (cdr location))))) + (if (cdr location) + (goto-char (cdr location)) + (message "Unable to find location in file")))) 'help-echo (purecopy "mouse-2, RET: find variable's definition")) (define-button-type 'help-face-def @@ -181,8 +183,9 @@ (let ((location (find-function-search-for-symbol fun 'defface file))) (pop-to-buffer (car location)) - (when (cdr location) - (goto-char (cdr location))))) + (if (cdr location) + (goto-char (cdr location)) + (message "Unable to find location in file")))) 'help-echo (purecopy "mouse-2, RET: find face's definition"))
--- a/lisp/ibuffer.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/ibuffer.el Sat Jul 29 09:59:12 2006 +0000 @@ -66,7 +66,7 @@ (defcustom ibuffer-formats '((mark modified read-only " " (name 18 18 :left :elide) " " (size 9 -1 :right) - " " (mode 16 16 :right :elide) " " filename-and-process) + " " (mode 16 16 :left :elide) " " filename-and-process) (mark " " (name 16 -1) " " filename)) "A list of ways to display buffer lines.
--- a/lisp/image-mode.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/image-mode.el Sat Jul 29 09:59:12 2006 +0000 @@ -118,6 +118,9 @@ (if (get-text-property (point-min) 'display) (image-toggle-display))) +(defvar archive-superior-buffer) +(defvar tar-superior-buffer) + (defun image-toggle-display () "Start or stop displaying an image file as the actual image. This command toggles between showing the text of the image file
--- a/lisp/international/mule-cmds.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/international/mule-cmds.el Sat Jul 29 09:59:12 2006 +0000 @@ -831,7 +831,7 @@ Optional 3rd arg DEFAULT-CODING-SYSTEM specifies a coding system or a list of coding systems to be prepended to the default coding system list. However, if DEFAULT-CODING-SYSTEM is a list and the first -element is t, the cdr part is used as the defualt coding system list, +element is t, the cdr part is used as the default coding system list, i.e. `buffer-file-coding-system', `default-buffer-file-coding-system', and the most preferred coding system are not used. @@ -898,9 +898,6 @@ (rassq base default-coding-system) (push (cons auto-cs base) default-coding-system)))) - ;; From now on, the list of defaults is reversed. - (setq default-coding-system (nreverse default-coding-system)) - (unless no-other-defaults ;; If buffer-file-coding-system is not nil nor undecided, append it ;; to the defaults. @@ -908,8 +905,9 @@ (let ((base (coding-system-base buffer-file-coding-system))) (or (eq base 'undecided) (rassq base default-coding-system) - (push (cons buffer-file-coding-system base) - default-coding-system)))) + (setq default-coding-system + (append default-coding-system + (list (cons buffer-file-coding-system base))))))) ;; If default-buffer-file-coding-system is not nil nor undecided, ;; append it to the defaults. @@ -917,8 +915,10 @@ (let ((base (coding-system-base default-buffer-file-coding-system))) (or (eq base 'undecided) (rassq base default-coding-system) - (push (cons default-buffer-file-coding-system base) - default-coding-system)))) + (setq default-coding-system + (append default-coding-system + (list (cons default-buffer-file-coding-system + base))))))) ;; If the most preferred coding system has the property mime-charset, ;; append it to the defaults. @@ -930,18 +930,40 @@ (setq base (coding-system-base preferred)) (coding-system-get preferred 'mime-charset) (not (rassq base default-coding-system)) - (push (cons preferred base) - default-coding-system)))) + (setq default-coding-system + (append default-coding-system + (list (cons preferred base))))))) (if select-safe-coding-system-accept-default-p (setq accept-default-p select-safe-coding-system-accept-default-p)) + ;; Decide the eol-type from the top of the default codings, + ;; buffer-file-coding-system, or + ;; default-buffer-file-coding-system. + (if default-coding-system + (let ((default-eol-type (coding-system-eol-type + (caar default-coding-system)))) + (if (and (vectorp default-eol-type) buffer-file-coding-system) + (setq default-eol-type (coding-system-eol-type + buffer-file-coding-system))) + (if (and (vectorp default-eol-type) default-buffer-file-coding-system) + (setq default-eol-type (coding-system-eol-type + default-buffer-file-coding-system))) + (if (and default-eol-type (not (vectorp default-eol-type))) + (dolist (elt default-coding-system) + (setcar elt (coding-system-change-eol-conversion + (car elt) default-eol-type)))))) + (let ((codings (find-coding-systems-region from to)) (coding-system nil) safe rejected unsafe) (if (eq (car codings) 'undecided) ;; Any coding system is ok. - (setq coding-system t) + (setq coding-system (caar default-coding-system)) + ;; Reverse the list so that elements are accumulated in safe, + ;; rejected, and unsafe in the correct order. + (setq default-coding-system (nreverse default-coding-system)) + ;; Classify the defaults into safe, rejected, and unsafe. (dolist (elt default-coding-system) (if (memq (cdr elt) codings) @@ -958,14 +980,6 @@ (setq coding-system (select-safe-coding-system-interactively from to codings unsafe rejected (car codings)))) - (if (vectorp (coding-system-eol-type coding-system)) - (let ((eol (coding-system-eol-type buffer-file-coding-system))) - (if (numberp eol) - (setq coding-system - (coding-system-change-eol-conversion coding-system eol))))) - - (if (eq coding-system t) - (setq coding-system buffer-file-coding-system)) ;; Check we're not inconsistent with what `coding:' spec &c would ;; give when file is re-read. ;; But don't do this if we explicitly ignored the cookie
--- a/lisp/mouse.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/mouse.el Sat Jul 29 09:59:12 2006 +0000 @@ -777,8 +777,8 @@ (defun mouse-on-link-p (pos) "Return non-nil if POS is on a link in the current buffer. -POS must be a buffer position in the current buffer or an mouse -event location in the selected window, see `event-start'. +POS must be a buffer position in the current buffer or a mouse +event location in the selected window (see `event-start'). However, if `mouse-1-click-in-non-selected-windows' is non-nil, POS may be a mouse event location in any window. @@ -798,7 +798,7 @@ - If the value is a function, FUNC, POS is inside a link if the call \(FUNC POS) returns non-nil. Return the return value -from that call. Arg is \(posn-point POS) if POS is a mouse event, +from that call. Arg is \(posn-point POS) if POS is a mouse event. - Otherwise, return the value itself.
--- a/lisp/pgg-def.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/pgg-def.el Sat Jul 29 09:59:12 2006 +0000 @@ -87,7 +87,7 @@ "If t, inform the recipient that the input is text.") (defmacro pgg-truncate-key-identifier (key) - `(if (> (length ,key) 8) (substring ,key 8) ,key)) + `(if (> (length ,key) 8) (substring ,key -8) ,key)) (provide 'pgg-def)
--- a/lisp/progmodes/ada-mode.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/ada-mode.el Sat Jul 29 09:59:12 2006 +0000 @@ -1208,60 +1208,36 @@ ff-file-created-hook 'ada-make-body) (add-hook 'ff-pre-load-hook 'ada-which-function-are-we-in) - ;; Some special constructs for find-file.el - ;; We do not need to add the construction for 'with', which is in the - ;; standard find-file.el + ;; Some special constructs for find-file.el. (make-local-variable 'ff-special-constructs) - - ;; Go to the parent package : - (add-to-list 'ff-special-constructs - (cons (eval-when-compile - (concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+" - "\\(body[ \t]+\\)?" - "\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is")) - (lambda () - (if (fboundp 'ff-get-file) - (if (boundp 'fname) - (set 'fname (ff-get-file - ada-search-directories-internal - (ada-make-filename-from-adaname - (match-string 3)) - ada-spec-suffixes))))))) - ;; Another special construct for find-file.el : when in a separate clause, - ;; go to the correct package. - (add-to-list 'ff-special-constructs - (cons "^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))" - (lambda () - (if (fboundp 'ff-get-file) - (if (boundp 'fname) - (setq fname (ff-get-file - ada-search-directories-internal - (ada-make-filename-from-adaname - (match-string 1)) - ada-spec-suffixes))))))) - - ;; Another special construct, that redefines the one in find-file.el. The - ;; old one can handle only one possible type of extension for Ada files - ;; remove from the list the standard "with..." that is put by find-file.el, - ;; since it uses the old ada-spec-suffix variable - ;; This one needs to replace the standard one defined in find-file.el (with - ;; Emacs <= 20.4), since that one uses the old variable ada-spec-suffix - (let ((old-construct - (assoc "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)" ff-special-constructs)) - (new-cdr - (lambda () - (if (fboundp 'ff-get-file) - (if (boundp 'fname) - (set 'fname (ff-get-file - ada-search-directories-internal - (ada-make-filename-from-adaname - (match-string 1)) - ada-spec-suffixes))))))) - (if old-construct - (setcdr old-construct new-cdr) - (add-to-list 'ff-special-constructs - (cons "^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)" - new-cdr)))) + (mapc (lambda (pair) + (add-to-list 'ff-special-constructs pair)) + `( + ;; Go to the parent package. + (,(eval-when-compile + (concat "^\\(private[ \t]\\)?[ \t]*package[ \t]+" + "\\(body[ \t]+\\)?" + "\\(\\(\\sw\\|[_.]\\)+\\)\\.\\(\\sw\\|_\\)+[ \t\n]+is")) + . ,(lambda () + (ff-get-file + ada-search-directories-internal + (ada-make-filename-from-adaname (match-string 3)) + ada-spec-suffixes))) + ;; A "separate" clause. + ("^separate[ \t\n]*(\\(\\(\\sw\\|[_.]\\)+\\))" + . ,(lambda () + (ff-get-file + ada-search-directories-internal + (ada-make-filename-from-adaname (match-string 1)) + ada-spec-suffixes))) + ;; A "with" clause. + ("^with[ \t]+\\([a-zA-Z0-9_\\.]+\\)" + . ,(lambda () + (ff-get-file + ada-search-directories-internal + (ada-make-filename-from-adaname (match-string 1)) + ada-spec-suffixes))) + )) ;; Support for outline-minor-mode (set (make-local-variable 'outline-regexp)
--- a/lisp/progmodes/cc-langs.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/cc-langs.el Sat Jul 29 09:59:12 2006 +0000 @@ -134,12 +134,18 @@ (eval-and-compile ;; These are used to collect the init forms from the subsequent - ;; `c-lang-defvar'. They are used to build the lambda in - ;; `c-make-init-lang-vars-fun' below. + ;; `c-lang-defvar' and `c-lang-setvar'. They are used to build the + ;; lambda in `c-make-init-lang-vars-fun' below, and to build `defvar's + ;; and `make-variable-buffer-local's in cc-engine and + ;; `make-local-variable's in `c-init-language-vars-for'. (defvar c-lang-variable-inits nil) (defvar c-lang-variable-inits-tail nil) (setq c-lang-variable-inits (list nil) - c-lang-variable-inits-tail c-lang-variable-inits)) + c-lang-variable-inits-tail c-lang-variable-inits) + (defvar c-emacs-variable-inits nil) + (defvar c-emacs-variable-inits-tail nil) + (setq c-emacs-variable-inits (list nil) + c-emacs-variable-inits-tail c-emacs-variable-inits)) (defmacro c-lang-defvar (var val &optional doc) "Declares the buffer local variable VAR to get the value VAL. VAL is @@ -172,6 +178,25 @@ ;; Return the symbol, like the other def* forms. `',var) +(defmacro c-lang-setvar (var val) + "Causes the variable VAR to be made buffer local and to get set to the +value VAL. VAL is evaluated and assigned at mode initialization. More +precisely, VAL is evaluated and bound to VAR when the result from the +macro `c-init-language-vars' is evaluated. VAR is typically a standard +Emacs variable like `comment-start'. + +`c-lang-const' is typically used in VAL to get the right value for the +language being initialized, and such calls will be macro expanded to +the evaluated constant value at compile time." + (let ((elem (assq var (cdr c-emacs-variable-inits)))) + (if elem + (setcdr elem (list val)) ; Maybe remove "list", sometime. 2006-07-19 + (setcdr c-emacs-variable-inits-tail (list (list var val))) + (setq c-emacs-variable-inits-tail (cdr c-emacs-variable-inits-tail)))) + + ;; Return the symbol, like the other def* forms. + `',var) + (put 'c-lang-defvar 'lisp-indent-function 'defun) ; (eval-after-load "edebug" ; 2006-07-09: def-edebug-spec is now in subr.el. ; ' @@ -1103,8 +1128,7 @@ ;; In C we still default to the block comment style since line ;; comments aren't entirely portable. c "/* ") -(c-lang-defvar comment-start (c-lang-const comment-start) - 'dont-doc) +(c-lang-setvar comment-start (c-lang-const comment-start)) (c-lang-defconst comment-end "String that ends comments inserted with M-; etc. @@ -1117,8 +1141,7 @@ (c-lang-const comment-start)) (concat " " (c-lang-const c-block-comment-ender)) "")) -(c-lang-defvar comment-end (c-lang-const comment-end) - 'dont-doc) +(c-lang-setvar comment-end (c-lang-const comment-end)) (c-lang-defconst comment-start-skip "Regexp to match the start of a comment plus everything up to its body. @@ -1134,8 +1157,7 @@ (c-lang-const c-block-comment-starter))) "\\|") "\\)\\s *")) -(c-lang-defvar comment-start-skip (c-lang-const comment-start-skip) - 'dont-doc) +(c-lang-setvar comment-start-skip (c-lang-const comment-start-skip)) (c-lang-defconst c-syntactic-ws-start ;; Regexp matching any sequence that can start syntactic whitespace. @@ -2806,9 +2828,10 @@ ;;; Wrap up the `c-lang-defvar' system. ;; Compile in the list of language variables that has been collected -;; with the `c-lang-defvar' macro. Note that the first element is -;; nil. +;; with the `c-lang-defvar' and `c-lang-setvar' macros. Note that the +;; first element of each is nil. (defconst c-lang-variable-inits (cc-eval-when-compile c-lang-variable-inits)) +(defconst c-emacs-variable-inits (cc-eval-when-compile c-emacs-variable-inits)) (defun c-make-init-lang-vars-fun (mode) "Create a function that initializes all the language dependent variables @@ -2841,12 +2864,16 @@ ;; `c-lang-const' will expand to the evaluated ;; constant immediately in `cl-macroexpand-all' ;; below. - (mapcan - (lambda (init) - `(current-var ',(car init) - ,(car init) ,(cl-macroexpand-all - (elt init 1)))) - (cdr c-lang-variable-inits)))) + (mapcan + (lambda (init) + `(current-var ',(car init) + ,(car init) ,(cl-macroexpand-all + (elt init 1)))) + ;; Note: The following `append' copies the + ;; first argument. That list is small, so + ;; this doesn't matter too much. + (append (cdr c-emacs-variable-inits) + (cdr c-lang-variable-inits))))) ;; This diagnostic message isn't useful for end ;; users, so it's disabled. @@ -2859,7 +2886,8 @@ (require 'cc-langs) (setq source-eval t) - (let ((init (cdr c-lang-variable-inits))) + (let ((init (append (cdr c-emacs-variable-inits) + (cdr c-lang-variable-inits)))) (while init (setq current-var (caar init)) (set (caar init) (eval (cadar init))) @@ -2867,7 +2895,7 @@ (error (if current-var - (message "Eval error in the `c-lang-defvar' for `%s'%s: %S" + (message "Eval error in the `c-lang-defvar' or `c-lang-setvar' for `%s'%s: %S" current-var (if source-eval (format "\ @@ -2883,7 +2911,8 @@ `(lambda () (require 'cc-langs) (let ((c-buffer-is-cc-mode ',mode) - (init (cdr c-lang-variable-inits)) + (init (append (cdr c-emacs-variable-inits) + (cdr c-lang-variable-inits))) current-var) (condition-case err @@ -2895,7 +2924,7 @@ (error (if current-var (message - "Eval error in the `c-lang-defvar' for `%s' (source eval): %S" + "Eval error in the `c-lang-defvar' or `c-lang-setver' for `%s' (source eval): %S" current-var err) (signal (car err) (cdr err))))))) ))
--- a/lisp/progmodes/cc-mode.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/cc-mode.el Sat Jul 29 09:59:12 2006 +0000 @@ -153,12 +153,21 @@ (defun c-leave-cc-mode-mode () (setq c-buffer-is-cc-mode nil)) +;; Make the `c-lang-setvar' variables buffer local in the current buffer. +;; These are typically standard emacs variables such as `comment-start'. +(defmacro c-make-emacs-variables-local () + `(progn + ,@(mapcan (lambda (init) + `((make-local-variable ',(car init)))) + (cdr c-emacs-variable-inits)))) + (defun c-init-language-vars-for (mode) "Initialize the language variables for one of the language modes directly supported by CC Mode. This can be used instead of the `c-init-language-vars' macro if the language you want to use is one of those, rather than a derived language defined through the language variable system (see \"cc-langs.el\")." + (c-make-emacs-variables-local) (cond ((eq mode 'c-mode) (c-init-language-vars c-mode)) ((eq mode 'c++-mode) (c-init-language-vars c++-mode)) ((eq mode 'objc-mode) (c-init-language-vars objc-mode))
--- a/lisp/progmodes/compile.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/compile.el Sat Jul 29 09:59:12 2006 +0000 @@ -226,14 +226,19 @@ ;; I have no idea what this first line is supposed to match, but it ;; makes things ambiguous with output such as "foo:344:50:blabla" since ;; the "foo" part can match this first line (in which case the file - ;; name as "344"). To avoid this, we disallow filenames exclusively - ;; composed of digits. --Stef + ;; name as "344"). To avoid this, the second line disallows filenames + ;; exclusively composed of digits. --Stef + ;; Similarly, we get lots of false positives with messages including + ;; times of the form "HH:MM:SS" where MM is taken as a line number, so + ;; the last line tries to rule out message where the info after the + ;; line number starts with "SS". --Stef "^\\(?:[[:alpha:]][-[:alnum:].]+: ?\\)?\ \\([0-9]*[^0-9\n].*?\\): ?\ \\([0-9]+\\)\\(?:\\([.:]\\)\\([0-9]+\\)\\)?\ \\(?:-\\([0-9]+\\)?\\(?:\\3\\([0-9]+\\)\\)?\\)?:\ \\(?: *\\(\\(?:Future\\|Runtime\\)?[Ww]arning\\|W:\\)\\|\ - *\\([Ii]nfo\\(?:\\>\\|rmationa?l?\\)\\|I:\\|instantiated from\\)\\)?" + *\\([Ii]nfo\\(?:\\>\\|rmationa?l?\\)\\|I:\\|instantiated from\\)\\|\ +\[0-9]?\\(?:[^0-9\n]\\|$\\)\\|[0-9][0-9][0-9]\\)" 1 (2 . 5) (4 . 6) (7 . 8)) (lcc @@ -405,10 +410,7 @@ "Value of `page-delimiter' in Compilation mode.") (defvar compilation-mode-font-lock-keywords - '(;; Don't highlight this as a compilation message. - ("^Compilation started at.*" - (0 '(face nil message nil help-echo nil mouse-face nil) t)) - ;; configure output lines. + '(;; configure output lines. ("^[Cc]hecking \\(?:[Ff]or \\|[Ii]f \\|[Ww]hether \\(?:to \\)?\\)?\\(.+\\)\\.\\.\\. *\\(?:(cached) *\\)?\\(\\(yes\\(?: .+\\)?\\)\\|no\\|\\(.*\\)\\)$" (1 font-lock-variable-name-face) (2 (compilation-face '(4 . 3)))) @@ -419,7 +421,7 @@ ("^Compilation \\(finished\\).*" (0 '(face nil message nil help-echo nil mouse-face nil) t) (1 compilation-info-face)) - ("^Compilation \\(exited abnormally\\|interrupt\\|killed\\|terminated\\)\\(?:.*with code \\([0-9]+\\)\\)?.*" + ("^Compilation \\(exited abnormally\\|interrupt\\|killed\\|terminated\\|segmentation fault\\)\\(?:.*with code \\([0-9]+\\)\\)?.*" (0 '(face nil message nil help-echo nil mouse-face nil) t) (1 compilation-error-face) (2 compilation-error-face nil t))) @@ -1823,28 +1825,44 @@ (find-file-noselect name)) fmts (cdr fmts))) (setq dirs (cdr dirs))) - (or buffer - ;; The file doesn't exist. Ask the user where to find it. - (save-excursion ;This save-excursion is probably not right. - (let ((pop-up-windows t)) - (compilation-set-window (display-buffer (marker-buffer marker)) - marker) - (let ((name (expand-file-name - (read-file-name - (format "Find this %s in (default %s): " - compilation-error filename) - spec-dir filename t)))) - (if (file-directory-p name) - (setq name (expand-file-name filename name))) - (setq buffer (and (file-exists-p name) - (find-file-noselect name))))))) + (while (null buffer) ;Repeat until the user selects an existing file. + ;; The file doesn't exist. Ask the user where to find it. + (save-excursion ;This save-excursion is probably not right. + (let ((pop-up-windows t)) + (compilation-set-window (display-buffer (marker-buffer marker)) + marker) + (let* ((name (read-file-name + (format "Find this %s in (default %s): " + compilation-error filename) + spec-dir filename t nil + ;; Try to make sure the user can only select + ;; a valid answer. This predicate may be ignored, + ;; tho, so we still have to double-check afterwards. + ;; TODO: We should probably fix read-file-name so + ;; that it never ignores this predicate, even when + ;; using popup dialog boxes. + (lambda (name) + (if (file-directory-p name) + (setq name (expand-file-name filename name))) + (file-exists-p name)))) + (origname name)) + (cond + ((not (file-exists-p name)) + (message "Cannot find file `%s'" name) + (ding) (sit-for 2)) + ((and (file-directory-p name) + (not (file-exists-p + (setq name (expand-file-name filename name))))) + (message "No `%s' in directory %s" filename origname) + (ding) (sit-for 2)) + (t + (setq buffer (find-file-noselect name)))))))) ;; Make intangible overlays tangible. - ;; This is very weird: it's not even clear which is the current buffer, - ;; so the code below can't be expected to DTRT here. --Stef - (mapcar (function (lambda (ov) - (when (overlay-get ov 'intangible) - (overlay-put ov 'intangible nil)))) - (overlays-in (point-min) (point-max))) + ;; This is weird: it's not even clear which is the current buffer, + ;; so the code below can't be expected to DTRT here. -- Stef + (dolist (ov (overlays-in (point-min) (point-max))) + (when (overlay-get ov 'intangible) + (overlay-put ov 'intangible nil))) buffer)) (defun compilation-get-file-structure (file &optional fmt)
--- a/lisp/progmodes/delphi.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/delphi.el Sat Jul 29 09:59:12 2006 +0000 @@ -1767,6 +1767,7 @@ An error is raised if not in a comment." (interactive) (save-excursion + (save-restriction (let* ((comment (delphi-current-token)) (comment-kind (delphi-token-kind comment))) (if (not (delphi-is comment-kind delphi-comments)) @@ -1845,7 +1846,7 @@ ;; React to the entire fill change as a whole. (delphi-progress-start) (delphi-parse-region comment-start comment-end) - (delphi-progress-done)))))) + (delphi-progress-done))))))) (defun delphi-new-comment-line () "If in a // comment, does a newline, indented such that one is still in the
--- a/lisp/progmodes/gdb-ui.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/gdb-ui.el Sat Jul 29 09:59:12 2006 +0000 @@ -434,7 +434,8 @@ (make-local-variable 'gdb-define-alist) (gdb-create-define-alist) (add-hook 'after-save-hook 'gdb-create-define-alist nil t)))))) - (gdb-force-mode-line-update "ready")) + (gdb-force-mode-line-update + (propertize "ready" 'face font-lock-variable-name-face))) (defun gdb-find-watch-expression () (let* ((var (nth (- (line-number-at-pos (point)) 2) gdb-var-list)) @@ -1209,7 +1210,8 @@ (defun gdb-resync() (setq gdb-flush-pending-output t) (setq gud-running nil) - (gdb-force-mode-line-update "stopped") + (gdb-force-mode-line-update + (propertize "stopped"'face font-lock-warning-face)) (setq gdb-output-sink 'user) (setq gdb-input-queue nil) (setq gdb-pending-triggers nil) @@ -1249,7 +1251,8 @@ "An annotation handler for `prompt'. This sends the next command (if any) to gdb." (when gdb-first-prompt - (gdb-force-mode-line-update "initializing...") + (gdb-force-mode-line-update + (propertize "initializing..." 'face font-lock-variable-name-face)) (gdb-init-1) (setq gdb-first-prompt nil)) (let ((sink gdb-output-sink)) @@ -1287,7 +1290,8 @@ (progn (setq gud-running t) (setq gdb-inferior-status "running") - (gdb-force-mode-line-update gdb-inferior-status) + (gdb-force-mode-line-update + (propertize gdb-inferior-status 'face font-lock-type-face)) (gdb-remove-text-properties) (setq gud-old-arrow gud-overlay-arrow-position) (setq gud-overlay-arrow-position nil) @@ -1300,7 +1304,8 @@ (defun gdb-signal (ignored) (setq gdb-inferior-status "signal") - (gdb-force-mode-line-update gdb-inferior-status) + (gdb-force-mode-line-update + (propertize gdb-inferior-status 'face font-lock-warning-face)) (gdb-stopping ignored)) (defun gdb-stopping (ignored) @@ -1327,7 +1332,8 @@ (setq gdb-overlay-arrow-position nil) (setq gud-old-arrow nil) (setq gdb-inferior-status "exited") - (gdb-force-mode-line-update gdb-inferior-status) + (gdb-force-mode-line-update + (propertize gdb-inferior-status 'face font-lock-warning-face)) (gdb-stopping ignored)) (defun gdb-signalled (ignored) @@ -1375,7 +1381,8 @@ 'delete))))) (unless (member gdb-inferior-status '("exited" "signal")) (setq gdb-inferior-status "stopped") - (gdb-force-mode-line-update gdb-inferior-status)) + (gdb-force-mode-line-update + (propertize gdb-inferior-status 'face font-lock-warning-face))) (let ((sink gdb-output-sink)) (cond ((eq sink 'inferior) @@ -3268,7 +3275,8 @@ (make-local-variable 'gdb-define-alist) (gdb-create-define-alist) (add-hook 'after-save-hook 'gdb-create-define-alist nil t))))) - (gdb-force-mode-line-update "ready")) + (gdb-force-mode-line-update + (propertize "ready" 'face font-lock-variable-name-face))) ; Uses "-var-list-children --all-values". Needs GDB 6.1 onwards. (defun gdb-var-list-children-1 (varnum)
--- a/lisp/progmodes/grep.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/grep.el Sat Jul 29 09:59:12 2006 +0000 @@ -155,7 +155,7 @@ :type 'alist :group 'grep) -(defcustom grep-find-ignored-directories '("CVS" ".hg" "{arch}") +(defcustom grep-find-ignored-directories '("CVS" ".svn" "{arch}" ".hg" "_darcs") "*List of names of sub-directories which `rgrep' shall not recurse into." :type '(repeat string) :group 'grep)
--- a/lisp/progmodes/idlw-shell.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/idlw-shell.el Sat Jul 29 09:59:12 2006 +0000 @@ -4384,7 +4384,7 @@ ["Edit Default Cmd" idlwave-shell-edit-default-command-line t]) ("Breakpoints" ["Set Breakpoint" idlwave-shell-break-here - :keys "C-c C-d C-c" :active (eq major-mode 'idlwave-mode)] + :keys "C-c C-d C-b" :active (eq major-mode 'idlwave-mode)] ("Set Special Breakpoint" ["Set After Count Breakpoint" (progn
--- a/lisp/progmodes/ld-script.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/ld-script.el Sat Jul 29 09:59:12 2006 +0000 @@ -74,25 +74,55 @@ "Syntax table used while in `ld-script-mode'.") ;; Font lock keywords +;; (The section number comes from ld's info.) (defvar ld-script-keywords - '("ENTRY" "INCLUDE" "INPUT" "GROUP" - "OUTPUT" "SEARCH_DIR" "STARTUP" + '( + ;; 3.4.1 Setting the Entry Point + "ENTRY" + ;; 3.4.2 Commands Dealing with Files + "INCLUDE" "INPUT" "GROUP" "AS_NEEDED" "OUTPUT" "SEARCH_DIR" "STARTUP" + ;; 3.4.3 Commands Dealing with Object File Formats "OUTPUT_FORMAT" "TARGET" - "ASSERT" "EXTERN" "FORCE_COMMON_ALLOCATION" "NOCROSSREFS" "OUTPUT_ARCH" + ;; 3.4.3 Other Linker Script Commands + "ASSERT" "EXTERN" "FORCE_COMMON_ALLOCATION" + "INHIBIT_COMMON_ALLOCATION" "NOCROSSREFS" "OUTPUT_ARCH" + ;; 3.5.2 PROVIDE "PROVIDE" - "SECTIONS" "SORT" "COMMON" "KEEP" - "BYTE" "SHORT" "LONG" "QUAD" "SQAD" - "FILL" - "CREATE_OBJECT_SYMBOLS" - "CONSTRUCTORS" + ;; 3.5.3 PROVIDE_HIDDEN + "PROVIDE_HIDEN" + ;; 3.6 SECTIONS Command + "SECTIONS" + ;; 3.6.4.2 Input Section Wildcard Patterns + "SORT" "SORT_BY_NAME" "SORT_BY_ALIGNMENT" + ;; 3.6.4.3 Input Section for Common Symbols + "COMMON" + ;; 3.6.4.4 Input Section and Garbage Collection + "KEEP" + ;; 3.6.5 Output Section Data + "BYTE" "SHORT" "LONG" "QUAD" "SQUAD" "FILL" + ;; 3.6.6 Output Section Keywords + "CREATE_OBJECT_SYMBOLS" "CONSTRUCTORS" + "__CTOR_LIST__" "__CTOR_END__" "__DTOR_LIST__" "__DTOR_END__" + ;; 3.6.7 Output Section Discarding + ;; See `ld-script-font-lock-keywords' + ;; 3.6.8.1 Output Section Type "NOLOAD" "DSECT" "COPY" "INFO" "OVERLAY" + ;; 3.6.8.2 Output Section LMA "AT" + ;; 3.6.8.4 Forced Input Alignment + "SUBALIGN" + ;; 3.6.8.6 Output Section Phdr + ":PHDR" + ;; 3.7 MEMORY Command "MEMORY" + ;; 3.8 PHDRS Command "PHDRS" "FILEHDR" "FLAGS" "PT_NULL" "PT_LOAD" "PT_DYNAMIC" "PT_INTERP" "PT_NONE" "PT_SHLIB" "PT_PHDR" + ;; 3.9 VERSION Command "VERSION") "Keywords used of GNU ld script.") +;; 3.10.8 Builtin Functions (defvar ld-script-builtins '("ABSOLUTE" "ADDR" @@ -102,12 +132,12 @@ "DATA_SEGMENT_END" "DATA_SEGMENT_RELRO_END" "DEFINED" - "LENGTH" + "LENGTH" "len" "l" "LOADADDR" "MAX" "MIN" "NEXT" - "ORIGIN" + "ORIGIN" "org" "o" "SEGMENT_START" "SIZEOF" "SIZEOF_HEADERS" @@ -120,7 +150,10 @@ 1 font-lock-keyword-face) (,(regexp-opt ld-script-builtins 'words) 1 font-lock-builtin-face) - ("/DISCARD/" . font-lock-warning-face) + ;; 3.6.7 Output Section Discarding + ;; 3.6.4.1 Input Section Basics + ;; 3.6.8.6 Output Section Phdr + ("/DISCARD/\\|EXCLUDE_FILE\\|:NONE" . font-lock-warning-face) ("\\W\\(\\.\\)\\W" 1 ld-script-location-counter-face) ) cpp-font-lock-keywords)
--- a/lisp/progmodes/sh-script.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/sh-script.el Sat Jul 29 09:59:12 2006 +0000 @@ -980,47 +980,55 @@ (re-search-forward sh-here-doc-re limit t)) (defun sh-quoted-subshell (limit) - "Search for a subshell embedded in a string. Find all the unescaped -\" characters within said subshell, remembering that subshells can nest." - (if (re-search-forward "\"\\(?:.\\|\n\\)*?\\(\\$(\\|`\\)" limit t) - ;; bingo we have a $( or a ` inside a "" - (let ((char (char-after (point))) - (continue t) - (pos (point)) - (data nil) ;; value to put into match-data (and return) - (last nil) ;; last char seen - (bq (equal (match-string 1) "`")) ;; ` state flip-flop - (seen nil) ;; list of important positions - (nest 1)) ;; subshell nesting level - (while (and continue char (<= pos limit)) - ;; unescaped " inside a $( ... ) construct. - ;; state machine time... - ;; \ => ignore next char; - ;; ` => increase or decrease nesting level based on bq flag - ;; ) [where nesting > 0] => decrease nesting - ;; ( [where nesting > 0] => increase nesting - ;; ( [preceeded by $ ] => increase nesting - ;; " [nesting <= 0 ] => terminate, we're done. - ;; " [nesting > 0 ] => remember this, it's not a proper " - (if (eq ?\\ last) nil - (if (eq ?\` char) (setq nest (+ nest (if bq -1 1)) bq (not bq)) - (if (and (> nest 0) (eq ?\) char)) (setq nest (1- nest)) - (if (and (eq ?$ last) (eq ?\( char)) (setq nest (1+ nest)) - (if (and (> nest 0) (eq ?\( char)) (setq nest (1+ nest)) - (if (eq char ?\") - (if (>= 0 nest) (setq continue nil) - (setq seen (cons pos seen)) ) )))))) - ;;(message "POS: %d [%d]" pos nest) - (setq last char - pos (1+ pos) - char (char-after pos)) ) - (when seen - ;;(message "SEEN: %S" seen) - (setq data (list (current-buffer))) - (mapc (lambda (P) - (setq data (cons P (cons (1+ P) data)) ) ) seen) - (store-match-data data)) - data) )) + "Search for a subshell embedded in a string. +Find all the unescaped \" characters within said subshell, remembering that +subshells can nest." + ;; FIXME: This can (and often does) match multiple lines, yet it makes no + ;; effort to handle multiline cases correctly, so it ends up being + ;; rather flakey. + (when (re-search-forward "\"\\(?:\\(?:.\\|\n\\)*?[^\\]\\(?:\\\\\\\\\\)*\\)??\\(\\$(\\|`\\)" limit t) + ;; bingo we have a $( or a ` inside a "" + (let ((char (char-after (point))) + (continue t) + (pos (point)) + (data nil) ;; value to put into match-data (and return) + (last nil) ;; last char seen + (bq (equal (match-string 1) "`")) ;; ` state flip-flop + (seen nil) ;; list of important positions + (nest 1)) ;; subshell nesting level + (while (and continue char (<= pos limit)) + ;; unescaped " inside a $( ... ) construct. + ;; state machine time... + ;; \ => ignore next char; + ;; ` => increase or decrease nesting level based on bq flag + ;; ) [where nesting > 0] => decrease nesting + ;; ( [where nesting > 0] => increase nesting + ;; ( [preceeded by $ ] => increase nesting + ;; " [nesting <= 0 ] => terminate, we're done. + ;; " [nesting > 0 ] => remember this, it's not a proper " + ;; FIXME: don't count parens that appear within quotes. + (cond + ((eq ?\\ last) nil) + ((eq ?\` char) (setq nest (+ nest (if bq -1 1)) bq (not bq))) + ((and (> nest 0) (eq ?\) char)) (setq nest (1- nest))) + ((and (eq ?$ last) (eq ?\( char)) (setq nest (1+ nest))) + ((and (> nest 0) (eq ?\( char)) (setq nest (1+ nest))) + ((eq char ?\") + (if (>= 0 nest) (setq continue nil) (push pos seen)))) + ;;(message "POS: %d [%d]" pos nest) + (setq last char + pos (1+ pos) + char (char-after pos)) ) + ;; FIXME: why construct a costly match data to pass to + ;; sh-apply-quoted-subshell rather than apply the highlight + ;; directly here? -- Stef + (when seen + ;;(message "SEEN: %S" seen) + (setq data (list (current-buffer))) + (dolist(P seen) + (setq data (cons P (cons (1+ P) data)))) + (store-match-data data)) + data) )) (defun sh-is-quoted-p (pos) (and (eq (char-before pos) ?\\)
--- a/lisp/progmodes/which-func.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/progmodes/which-func.el Sat Jul 29 09:59:12 2006 +0000 @@ -262,11 +262,11 @@ (defun which-function () "Return current function name based on point. -Uses `which-function-functions', `imenu--index-alist' +Uses `which-func-functions', `imenu--index-alist' or `add-log-current-defun-function'. If no function name is found, return nil." (let ((name - ;; Try the `which-function-functions' functions first. + ;; Try the `which-func-functions' functions first. (run-hook-with-args-until-success 'which-func-functions))) ;; If Imenu is loaded, try to make an index alist with it.
--- a/lisp/replace.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/replace.el Sat Jul 29 09:59:12 2006 +0000 @@ -1283,8 +1283,8 @@ # replace-count Note that these symbols must be preceeded by a backslash in order to -type them." - (while n +type them using Lisp syntax." + (while (consp n) (cond ((consp (car n)) (replace-match-string-symbols (car n))) ;Process sub-list
--- a/lisp/startup.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/startup.el Sat Jul 29 09:59:12 2006 +0000 @@ -254,14 +254,16 @@ :group 'mail) (defcustom user-mail-address (if command-line-processed - (concat (user-login-name) "@" - (or mail-host-address - (system-name))) + (or (getenv "EMAIL") + (concat (user-login-name) "@" + (or mail-host-address + (system-name)))) ;; Empty string means "not set yet". "") "*Full mailing address of this user. -This is initialized based on `mail-host-address', -after your init file is read, in case it sets `mail-host-address'." +This is initialized with environment variable `EMAIL' or, as a +fallback, using `mail-host-address'. This is done after your +init file is read, in case it sets `mail-host-address'." :type 'string :group 'mail) @@ -984,9 +986,10 @@ ;; Do this here in case the init file sets mail-host-address. (if (equal user-mail-address "") - (setq user-mail-address (concat (user-login-name) "@" - (or mail-host-address - (system-name))))) + (setq user-mail-address (or (getenv "EMAIL") + (concat (user-login-name) "@" + (or mail-host-address + (system-name)))))) ;; Originally face attributes were specified via ;; `font-lock-face-attributes'. Users then changed the default
--- a/lisp/subr.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/subr.el Sat Jul 29 09:59:12 2006 +0000 @@ -108,6 +108,9 @@ (declare (indent 1) (debug t)) (cons 'if (cons cond (cons nil body)))) +(defvar --dolist-tail-- nil + "Temporary variable used in `dolist' expansion.") + (defmacro dolist (spec &rest body) "Loop over a list. Evaluate BODY with VAR bound to each car from LIST, in turn. @@ -115,16 +118,22 @@ \(fn (VAR LIST [RESULT]) BODY...)" (declare (indent 1) (debug ((symbolp form &optional form) body))) - (let ((temp (make-symbol "--dolist-temp--"))) + ;; It would be cleaner to create an uninterned symbol, + ;; but that uses a lot more space when many functions in many files + ;; use dolist. + (let ((temp '--dolist-tail--)) `(let ((,temp ,(nth 1 spec)) ,(car spec)) (while ,temp (setq ,(car spec) (car ,temp)) - (setq ,temp (cdr ,temp)) - ,@body) + ,@body + (setq ,temp (cdr ,temp))) ,@(if (cdr (cdr spec)) `((setq ,(car spec) nil) ,@(cdr (cdr spec))))))) +(defvar --dotimes-limit-- nil + "Temporary variable used in `dotimes' expansion.") + (defmacro dotimes (spec &rest body) "Loop a certain number of times. Evaluate BODY with VAR bound to successive integers running from 0, @@ -133,7 +142,10 @@ \(fn (VAR COUNT [RESULT]) BODY...)" (declare (indent 1) (debug dolist)) - (let ((temp (make-symbol "--dotimes-temp--")) + ;; It would be cleaner to create an uninterned symbol, + ;; but that uses a lot more space when many functions in many files + ;; use dotimes. + (let ((temp '--dotimes-limit--) (start 0) (end (nth 1 spec))) `(let ((,temp ,end) @@ -1721,22 +1733,13 @@ (when (or obsolete (numberp nodisp)) (setq seconds (+ seconds (* 1e-3 nodisp))) (setq nodisp obsolete)) - (unless nodisp - (redisplay)) - (or (<= seconds 0) - (let ((timer (timer-create)) - (echo-keystrokes 0)) - (if (catch 'sit-for-timeout - (timer-set-time timer (timer-relative-time - (current-time) seconds)) - (timer-set-function timer 'with-timeout-handler - '(sit-for-timeout)) - (timer-activate timer) - (push (read-event) unread-command-events) - nil) - t - (cancel-timer timer) - nil)))) + (if noninteractive + (progn (sleep-for seconds) t) + (unless nodisp (redisplay)) + (or (<= seconds 0) + (let ((read (read-event nil nil seconds))) + (or (null read) + (progn (push read unread-command-events) nil)))))) ;;; Atomic change groups. @@ -2547,8 +2550,9 @@ (defun looking-back (regexp &optional limit greedy) "Return non-nil if text before point matches regular expression REGEXP. Like `looking-at' except matches before point, and is slower. -LIMIT if non-nil speeds up the search by specifying how far back the -match can start. +LIMIT if non-nil speeds up the search by specifying a minimum +starting position, to avoid checking matches that would start +before LIMIT. If GREEDY is non-nil, extend the match backwards as far as possible, stopping when a single additional previous character cannot be part
--- a/lisp/tabify.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/tabify.el Sat Jul 29 09:59:12 2006 +0000 @@ -50,10 +50,10 @@ (delete-region tab-beg (point)) (indent-to column)))))) -(defvar tabify-regexp "[ \t][ \t]+" +(defvar tabify-regexp " [ \t]+" "Regexp matching whitespace that tabify should consider. -Usually this will be \"[ \\t][ \\t]+\" to match two or more spaces or tabs. -\"^[ \\t]+\" is also useful, for tabifying only initial whitespace.") +Usually this will be \" [ \\t]+\" to match two or more spaces or tabs. +\"^\\t* [ \\t]+\" is also useful, for tabifying only initial whitespace.") ;;;###autoload (defun tabify (start end) @@ -72,13 +72,24 @@ (beginning-of-line) (narrow-to-region (point) end) (goto-char start) - (while (re-search-forward tabify-regexp nil t) - (let ((column (current-column)) - (indent-tabs-mode t)) - (delete-region (match-beginning 0) (point)) - (indent-to column)))))) + (let ((indent-tabs-mode t)) + (while (re-search-forward tabify-regexp nil t) + ;; The region between (match-beginning 0) and (match-end 0) is just + ;; spacing which we want to adjust to use TABs where possible. + (let ((end-col (current-column)) + (beg-col (save-excursion (goto-char (match-beginning 0)) + (skip-chars-forward "\t") + (current-column)))) + (if (= (/ end-col tab-width) (/ beg-col tab-width)) + ;; The spacing (after some leading TABs which we wouldn't + ;; want to touch anyway) does not straddle a TAB boundary, + ;; so it neither contains a TAB, nor will we be able to use + ;; a TAB here anyway: there's nothing to do. + nil + (delete-region (match-beginning 0) (point)) + (indent-to end-col)))))))) (provide 'tabify) -;;; arch-tag: c83893b1-e0cc-4e57-8a09-73fd03466416 +;; arch-tag: c83893b1-e0cc-4e57-8a09-73fd03466416 ;;; tabify.el ends here
--- a/lisp/term/xterm.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/term/xterm.el Sat Jul 29 09:59:12 2006 +0000 @@ -160,13 +160,21 @@ (define-key xterm-function-map "\e[29~" [print]) ;; These keys are available in xterm starting from version 214 -;; if the modifyOtherKeys resource is set. -(define-key xterm-function-map "\e[27;5;9~" [(control ?\t)]) +;; if the modifyOtherKeys resource is set to 1. +(define-key xterm-function-map "\e[27;5;9~" [C-tab]) (define-key xterm-function-map "\e[27;5;13~" [C-return]) -(define-key xterm-function-map "\e[27;5;44~" [(control ?\,)]) -(define-key xterm-function-map "\e[27;5;46~" [(control ?\.)]) -(define-key xterm-function-map "\e[27;5;47~" [(control ?\/)]) -(define-key xterm-function-map "\e[27;5;92~" [(control ?\\)]) +(define-key xterm-function-map "\e[27;5;44~" [?\C-,]) +(define-key xterm-function-map "\e[27;5;46~" [?\C-.]) +(define-key xterm-function-map "\e[27;5;47~" [?\C-/]) +(define-key xterm-function-map "\e[27;5;92~" [?\C-\\)]) + +(define-key xterm-function-map "\e[27;2;9~" [S-tab]) +(define-key xterm-function-map "\e[27;2;13~" [S-return]) + +(define-key xterm-function-map "\e[27;6;9~" [(C-S-tab)]) + +(define-key xterm-function-map "\e[27;13;46~" [?\C-\M-.]) + ;; Other versions of xterm might emit these. (define-key xterm-function-map "\e[A" [up])
--- a/lisp/textmodes/ispell.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/textmodes/ispell.el Sat Jul 29 09:59:12 2006 +0000 @@ -1650,9 +1650,15 @@ cursor-location)) (if (not (equal new-word (car poss))) (progn - (delete-region start end) - (setq start (point)) + (goto-char start) + ;; Insert first and then delete, + ;; to avoid collapsing markers before and after + ;; into a single place. (ispell-insert-word new-word) + (delete-region (point) (+ (point) (- end start))) + ;; It is meaningless to preserve the cursor position + ;; inside a word that has changed. + (setq cursor-location (point)) (setq end (point)))) (if (not (atom replace)) ;recheck spelling of replacement (progn
--- a/lisp/textmodes/po.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/textmodes/po.el Sat Jul 29 09:59:12 2006 +0000 @@ -42,7 +42,7 @@ (defun po-find-charset (filename) "Return PO charset value for FILENAME. -If FILENAME is a cons, the cdr part is a buffer that already contains +If FILENAME is a cons cell, its CDR is a buffer that already contains the PO file (but not yet decoded)." (let ((charset-regexp "^\"Content-Type:[ \t]*text/plain;[ \t]*charset=\\(.*\\)\\\\n\"")
--- a/lisp/textmodes/table.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/textmodes/table.el Sat Jul 29 09:59:12 2006 +0000 @@ -6,7 +6,7 @@ ;; Keywords: wp, convenience ;; Author: Takaaki Ota <Takaaki.Ota@am.sony.com> ;; Created: Sat Jul 08 2000 13:28:45 (PST) -;; Revised: Tue May 30 2006 10:01:43 (PDT) +;; Revised: Thu Jul 20 2006 17:30:09 (PDT) ;; This file is part of GNU Emacs. @@ -1394,7 +1394,9 @@ (setq table-command-remap-alist (cons (cons command func-symbol) table-command-remap-alist)))) - '(beginning-of-line + '(move-beginning-of-line + beginning-of-line + move-end-of-line end-of-line beginning-of-buffer end-of-buffer
--- a/lisp/tumme.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/tumme.el Sat Jul 29 09:59:12 2006 +0000 @@ -84,7 +84,7 @@ ;; USAGE ;; ===== ;; -;; This information has been moved to the manual. Type `C-h r' to open +;; This information has been moved to the manual. Type `C-h r' to open ;; the Emacs manual and go to the node Thumbnails by typing `g ;; Thumbnails RET'. ;; @@ -161,6 +161,10 @@ (require 'dired) (require 'format-spec) +(require 'widget) + +(eval-when-compile + (require 'wid-edit)) (defgroup tumme nil "Use dired to browse your images as thumbnails, and more." @@ -644,7 +648,7 @@ ;; Can't use (overlays-at (point)), BUG? (overlays-in (point) (1+ (point))))) (put-image thumb-file image-pos) - (setq + (setq overlay (car (delq nil (mapcar (lambda (o) (and (overlay-get o 'put-image) o)) (overlays-in (point) (1+ (point))))))) @@ -864,32 +868,27 @@ ;;;###autoload (defalias 'tumme 'tumme-show-all-from-dir) -(defun tumme-write-tag (files tag) - "For all FILES, writes TAG to the image database." - (save-excursion - (let (end buf) - (setq buf (find-file tumme-db-file)) - (if (not (listp files)) - (if (stringp files) - (setq files (list files)) - (error "Files must be a string or a list of strings!"))) - (mapcar - (lambda (file) - (goto-char (point-min)) - (if (search-forward-regexp - (format "^%s" file) nil t) - (progn - (end-of-line) - (setq end (point)) - (beginning-of-line) - (when (not (search-forward (format ";%s" tag) end t)) - (end-of-line) - (insert (format ";%s" tag)))) - (goto-char (point-max)) - (insert (format "\n%s;%s" file tag)))) - files) - (save-buffer) - (kill-buffer buf)))) +(defun tumme-write-tags (file-tags) + "Write file tags to database. +Write each file and tag in FILE-TAGS to the database. FILE-TAGS +is an alist in the following form: + ((FILE . TAG) ... )" + (let (end file tag) + (with-temp-file tumme-db-file + (insert-file-contents tumme-db-file) + (dolist (elt file-tags) + (setq file (car elt) + tag (cdr elt)) + (goto-char (point-min)) + (if (search-forward-regexp (format "^%s.*$" file) nil t) + (progn + (setq end (point)) + (beginning-of-line) + (when (not (search-forward (format ";%s" tag) end t)) + (end-of-line) + (insert (format ";%s" tag)))) + (goto-char (point-max)) + (insert (format "\n%s;%s" file tag))))))) (defun tumme-remove-tag (files tag) "For all FILES, remove TAG from the image database." @@ -951,15 +950,19 @@ (let ((tag (read-string "Tags to add (separate tags with a semicolon): ")) curr-file files) (if arg - (setq files (dired-get-filename)) + (setq files (list (dired-get-filename))) (setq files (dired-get-marked-files))) - (tumme-write-tag files tag))) + (tumme-write-tags + (mapcar + (lambda (x) + (cons x tag)) + files)))) (defun tumme-tag-thumbnail () "Tag current thumbnail." (interactive) (let ((tag (read-string "Tags to add (separate tags with a semicolon): "))) - (tumme-write-tag (tumme-original-file-name) tag)) + (tumme-write-tags (list (cons (tumme-original-file-name) tag)))) (tumme-update-property 'tags (tumme-list-tags (tumme-original-file-name)))) @@ -1006,7 +1009,7 @@ (let ((old-buf (current-buffer)) (dired-buf (tumme-associated-dired-buffer)) (file-name (tumme-original-file-name))) - (when (and dired-buf file-name) + (when (and (buffer-live-p dired-buf) file-name) (setq file-name (file-name-nondirectory file-name)) (set-buffer dired-buf) (goto-char (point-min)) @@ -1069,32 +1072,46 @@ (if tumme-track-movement (tumme-track-thumbnail))) -(defun tumme-forward-char () - "Move to next image and display properties." - (interactive) - ;; Before we move, make sure that there is an image two positions - ;; forward. - (when (save-excursion - (forward-char 2) - (tumme-image-at-point-p)) - (forward-char) - (while (and (not (eobp)) - (not (tumme-image-at-point-p))) - (forward-char)) - (if tumme-track-movement - (tumme-track-original-file))) +(defun tumme-forward-image (&optional arg) + "Move to next image and display properties. +Optional prefix ARG says how many images to move; default is one +image." + (interactive "p") + (let (pos (steps (or arg 1))) + (dotimes (i steps) + (if (and (not (eobp)) + (save-excursion + (forward-char) + (while (and (not (eobp)) + (not (tumme-image-at-point-p))) + (forward-char)) + (setq pos (point)) + (tumme-image-at-point-p))) + (goto-char pos) + (error "At last image")))) + (when tumme-track-movement + (tumme-track-original-file)) (tumme-display-thumb-properties)) -(defun tumme-backward-char () - "Move to previous image and display properties." - (interactive) - (when (not (bobp)) - (backward-char) - (while (and (not (bobp)) - (not (tumme-image-at-point-p))) - (backward-char)) - (if tumme-track-movement - (tumme-track-original-file))) +(defun tumme-backward-image (&optional arg) + "Move to previous image and display properties. +Optional prefix ARG says how many images to move; default is one +image." + (interactive "p") + (let (pos (steps (or arg 1))) + (dotimes (i steps) + (if (and (not (bobp)) + (save-excursion + (backward-char) + (while (and (not (bobp)) + (not (tumme-image-at-point-p))) + (backward-char)) + (setq pos (point)) + (tumme-image-at-point-p))) + (goto-char pos) + (error "At first image")))) + (when tumme-track-movement + (tumme-track-original-file)) (tumme-display-thumb-properties)) (defun tumme-next-line () @@ -1103,7 +1120,7 @@ (next-line 1) ;; If we end up in an empty spot, back up to the next thumbnail. (if (not (tumme-image-at-point-p)) - (tumme-backward-char)) + (tumme-backward-image)) (if tumme-track-movement (tumme-track-original-file)) (tumme-display-thumb-properties)) @@ -1118,7 +1135,7 @@ ;; thumbnail and did not refresh, so it is not very common. But we ;; can handle it in a good manner, so why not? (if (not (tumme-image-at-point-p)) - (tumme-backward-char)) + (tumme-backward-image)) (if tumme-track-movement (tumme-track-original-file)) (tumme-display-thumb-properties)) @@ -1131,7 +1148,7 @@ (format-spec tumme-display-properties-format (list - (cons ?b buf) + (cons ?b (or buf "")) (cons ?f file) (cons ?t (or (princ props) "")) (cons ?c (or comment ""))))) @@ -1187,19 +1204,19 @@ "Mark original image file in associated dired buffer." (interactive) (tumme-modify-mark-on-thumb-original-file 'mark) - (tumme-forward-char)) + (tumme-forward-image)) (defun tumme-unmark-thumb-original-file () "Unmark original image file in associated dired buffer." (interactive) (tumme-modify-mark-on-thumb-original-file 'unmark) - (tumme-forward-char)) + (tumme-forward-image)) (defun tumme-flag-thumb-original-file () "Flag original image file for deletion in associated dired buffer." (interactive) (tumme-modify-mark-on-thumb-original-file 'flag) - (tumme-forward-char)) + (tumme-forward-image)) (defun tumme-toggle-mark-thumb-original-file () "Toggle mark on original image file in associated dired buffer." @@ -1247,12 +1264,12 @@ "Define keymap for `tumme-thumbnail-mode'." ;; Keys - (define-key tumme-thumbnail-mode-map [right] 'tumme-forward-char) - (define-key tumme-thumbnail-mode-map [left] 'tumme-backward-char) + (define-key tumme-thumbnail-mode-map [right] 'tumme-forward-image) + (define-key tumme-thumbnail-mode-map [left] 'tumme-backward-image) (define-key tumme-thumbnail-mode-map [up] 'tumme-previous-line) (define-key tumme-thumbnail-mode-map [down] 'tumme-next-line) - (define-key tumme-thumbnail-mode-map "\C-f" 'tumme-forward-char) - (define-key tumme-thumbnail-mode-map "\C-b" 'tumme-backward-char) + (define-key tumme-thumbnail-mode-map "\C-f" 'tumme-forward-image) + (define-key tumme-thumbnail-mode-map "\C-b" 'tumme-backward-image) (define-key tumme-thumbnail-mode-map "\C-p" 'tumme-previous-line) (define-key tumme-thumbnail-mode-map "\C-n" 'tumme-next-line) @@ -1655,7 +1672,8 @@ (insert "\n") (insert " ") (setq count (1+ count)) - (when (= count (- tumme-thumbs-per-row 1)) + (when (and (= count (- tumme-thumbs-per-row 1)) + (not (eobp))) (forward-char) (insert "\n") (setq count 0))))) @@ -1798,8 +1816,10 @@ (message "No thumbnail at point") (if (not file) (message "No original file name found") - (tumme-display-image file arg) - (display-buffer tumme-display-image-buffer)))))) + (tumme-create-display-image-buffer) + (display-buffer tumme-display-image-buffer) + (tumme-display-image file arg)))))) + ;;;###autoload (defun tumme-dired-display-image (&optional arg) @@ -1807,8 +1827,9 @@ See documentation for `tumme-display-image' for more information. With prefix argument ARG, display image in its original size." (interactive "P") - (tumme-display-image (dired-get-filename) arg) - (display-buffer tumme-display-image-buffer)) + (tumme-create-display-image-buffer) + (display-buffer tumme-display-image-buffer) + (tumme-display-image (dired-get-filename) arg)) (defun tumme-image-at-point-p () "Return true if there is a tumme thumbnail at point." @@ -2000,49 +2021,49 @@ (defun tumme-display-next-thumbnail-original () "In thubnail buffer, move to next thumbnail and display the image." (interactive) - (tumme-forward-char) + (tumme-forward-image) (tumme-display-thumbnail-original-image)) (defun tumme-display-previous-thumbnail-original () "Move to previous thumbnail and display image." - (interactive) - (tumme-backward-char) + (tumme-backward-image) (tumme-display-thumbnail-original-image)) -(defun tumme-write-comment (file comment) - "For FILE, write comment COMMENT in database." - (save-excursion - (let (end buf comment-beg) - (setq buf (find-file tumme-db-file)) - (goto-char (point-min)) - (if (search-forward-regexp - (format "^%s" file) nil t) - (progn - (end-of-line) - (setq end (point)) - (beginning-of-line) - ;; Delete old comment, if any - (cond ((search-forward ";comment:" end t) - (setq comment-beg (match-beginning 0)) - ;; Any tags after the comment? - (if (search-forward ";" end t) - (setq comment-end (- (point) 1)) - (setq comment-end end)) - ;; Delete comment tag and comment - (delete-region comment-beg comment-end))) - ;; Insert new comment - (beginning-of-line) - (if (not (search-forward ";" end t)) - (progn - (end-of-line) - (insert ";"))) - (insert (format "comment:%s;" comment))) - ;; File does not exist in databse - add it. - (goto-char (point-max)) - (insert (format "\n%s;comment:%s" file comment))) - (save-buffer) - (kill-buffer buf)))) +(defun tumme-write-comments (file-comments) + "Write file comments to database. +Write file comments to one or more files. FILE-COMMENTS is an alist on +the following form: + ((FILE . COMMENT) ... )" + (let (end comment-beg-pos comment-end-pos file comment) + (with-temp-file tumme-db-file + (insert-file-contents tumme-db-file) + (dolist (elt file-comments) + (setq file (car elt) + comment (cdr elt)) + (goto-char (point-min)) + (if (search-forward-regexp (format "^%s.*$" file) nil t) + (progn + (setq end (point)) + (beginning-of-line) + ;; Delete old comment, if any + (when (search-forward ";comment:" end t) + (setq comment-beg-pos (match-beginning 0)) + ;; Any tags after the comment? + (if (search-forward ";" end t) + (setq comment-end-pos (- (point) 1)) + (setq comment-end-pos end)) + ;; Delete comment tag and comment + (delete-region comment-beg-pos comment-end-pos)) + ;; Insert new comment + (beginning-of-line) + (unless (search-forward ";" end t) + (end-of-line) + (insert ";")) + (insert (format "comment:%s;" comment))) + ;; File does not exist in database - add it. + (goto-char (point-max)) + (insert (format "\n%s;comment:%s" file comment))))))) (defun tumme-update-property (prop value) "Update text property PROP with value VALUE at point." @@ -2056,19 +2077,19 @@ (defun tumme-dired-comment-files () "Add comment to current or marked files in dired." (interactive) - (let ((files (dired-get-marked-files)) - (comment (tumme-read-comment))) - (mapcar - (lambda (curr-file) - (tumme-write-comment curr-file comment)) - files))) + (let ((comment (tumme-read-comment))) + (tumme-write-comments + (mapcar + (lambda (curr-file) + (cons curr-file comment)) + (dired-get-marked-files))))) (defun tumme-comment-thumbnail () "Add comment to current thumbnail in thumbnail buffer." (interactive) (let* ((file (tumme-original-file-name)) (comment (tumme-read-comment file))) - (tumme-write-comment file comment) + (tumme-write-comments (list (cons file comment))) (tumme-update-property 'comment comment)) (tumme-display-thumb-properties)) @@ -2085,21 +2106,21 @@ (defun tumme-get-comment (file) "Get comment for file FILE." (save-excursion - (let (end buf comment-beg comment (base-name (file-name-nondirectory file))) + (let (end buf comment-beg-pos comment-end-pos comment) (setq buf (find-file tumme-db-file)) (goto-char (point-min)) (when (search-forward-regexp - (format "^%s" base-name) nil t) + (format "^%s" file) nil t) (end-of-line) (setq end (point)) (beginning-of-line) (cond ((search-forward ";comment:" end t) - (setq comment-beg (point)) + (setq comment-beg-pos (point)) (if (search-forward ";" end t) - (setq comment-end (- (point) 1)) - (setq comment-end end)) + (setq comment-end-pos (- (point) 1)) + (setq comment-end-pos end)) (setq comment (buffer-substring - comment-beg comment-end))))) + comment-beg-pos comment-end-pos))))) (kill-buffer buf) comment))) @@ -2153,6 +2174,8 @@ (setq file (tumme-original-file-name)) (if tumme-track-movement (tumme-track-original-file)) + (tumme-create-display-image-buffer) + (display-buffer tumme-display-image-buffer) (tumme-display-image file))) (defun tumme-mouse-select-thumbnail (event) @@ -2421,6 +2444,107 @@ (error nil)) (kill-buffer buffer))) +(defvar tumme-widget-list nil + "List to keep track of meta data in edit buffer.") + +;;;###autoload +(defun tumme-dired-edit-comment-and-tags () + "Edit comment and tags of current or marked image files. +Edit comment and tags for all marked image files in an +easy-to-use form." + (interactive) + (setq tumme-widget-list nil) + ;; Setup buffer. + (let ((files (dired-get-marked-files))) + (switch-to-buffer "*Tumme Edit Meta Data*") + (kill-all-local-variables) + (make-local-variable 'widget-example-repeat) + (let ((inhibit-read-only t)) + (erase-buffer)) + (remove-overlays) + ;; Some help for the user. + (widget-insert +"\nEdit comments and tags for each image. Separate multiple tags +with a comma. Move forward between fields using TAB or RET. +Move to the previous field using backtab (S-TAB). Save by +activating the Save button at the bottom of the form or cancel +the operation by activating the Cancel button.\n\n") + ;; Here comes all images and a comment and tag field for each + ;; image. + (let (thumb-file img comment-widget tag-widget) + + (dolist (file files) + + (setq thumb-file (tumme-thumb-name file) + img (create-image thumb-file)) + + (insert-image img) + (widget-insert "\n\nComment: ") + (setq comment-widget + (widget-create 'editable-field + :size 60 + :format "%v " + :value (or (tumme-get-comment file) ""))) + (widget-insert "\nTags: ") + (setq tag-widget + (widget-create 'editable-field + :size 60 + :format "%v " + :value (or (mapconcat + (lambda (tag) + tag) + (tumme-list-tags file) + ",") ""))) + ;; Save information in all widgets so that we can use it when + ;; the user saves the form. + (setq tumme-widget-list + (append tumme-widget-list + (list (list file comment-widget tag-widget)))) + (widget-insert "\n\n"))) + + ;; Footer with Save and Cancel button. + (widget-insert "\n") + (widget-create 'push-button + :notify + (lambda (&rest ignore) + (tumme-save-information-from-widgets) + (bury-buffer) + (message "Done.")) + "Save") + (widget-insert " ") + (widget-create 'push-button + :notify + (lambda (&rest ignore) + (bury-buffer) + (message "Operation canceled.")) + "Cancel") + (widget-insert "\n") + (use-local-map widget-keymap) + (widget-setup) + ;; Jump to the first widget. + (widget-forward 1))) + +(defun tumme-save-information-from-widgets () + "Save information found in `tumme-widget-list'. +Use the information in `tumme-widget-list' to save comments and +tags to their respective image file. Internal function used by +`tumme-dired-edit-comment-and-tags'." + (let (file comment tag-string tag-list lst) + (tumme-write-comments + (mapcar + (lambda (widget) + (setq file (car widget) + comment (widget-value (cadr widget))) + (cons file comment)) + tumme-widget-list)) + (tumme-write-tags + (dolist (widget tumme-widget-list lst) + (setq file (car widget) + tag-string (widget-value (car (cddr widget))) + tag-list (split-string tag-string ",")) + (dolist (tag tag-list) + (push (cons file tag) lst)))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;; TEST-SECTION ;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
--- a/lisp/xml.el Fri Jul 14 05:56:32 2006 +0000 +++ b/lisp/xml.el Sat Jul 29 09:59:12 2006 +0000 @@ -165,22 +165,19 @@ Returns the top node with all its children. If PARSE-DTD is non-nil, the DTD is parsed rather than skipped. If PARSE-NS is non-nil, then QNAMES are expanded." - (let ((keep)) - (if (get-file-buffer file) - (progn - (set-buffer (get-file-buffer file)) - (setq keep (point))) - (let (auto-mode-alist) ; no need for xml-mode - (find-file file))) - - (let ((xml (xml-parse-region (point-min) - (point-max) - (current-buffer) - parse-dtd parse-ns))) - (if keep - (goto-char keep) - (kill-buffer (current-buffer))) - xml))) + (if (get-file-buffer file) + (with-current-buffer (get-file-buffer file) + (save-excursion + (xml-parse-region (point-min) + (point-max) + (current-buffer) + parse-dtd parse-ns))) + (with-temp-buffer + (insert-file-contents file) + (xml-parse-region (point-min) + (point-max) + (current-buffer) + parse-dtd parse-ns)))) (defvar xml-name-re)
--- a/lispref/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,130 @@ +2006-07-28 Kim F. Storm <storm@cua.dk> + + * commands.texi (Reading One Event): Fix last change. + +2006-07-26 Chong Yidong <cyd@stupidchicken.com> + + * commands.texi (Reading One Event): Document SECONDS argument for + read-event, read-char, and read-char-exclusive. + +2006-07-25 Stefan Monnier <monnier@iro.umontreal.ca> + + * modes.texi (Multiline Font Lock): Can't use jit-lock-defer-multiline + to ensure correct identification. + +2006-07-24 Richard Stallman <rms@gnu.org> + + * text.texi (Clickable Text): Clarify. + + * sequences.texi (Vector Functions): Delete duplicate xref. + + * objects.texi (Function Type): Clarify. + + * modes.texi (Keymaps and Minor Modes): List punct chars for minor + modes. + + * lists.texi (List Variables): New node. + Material moved from other nodes. + + * variables.texi (Setting Variables): add-to-list and + add-to-ordered-list moved to List Variables node. + +2006-07-23 Thien-Thi Nguyen <ttn@gnu.org> + + * text.texi (Links and Mouse-1): + For mouse-on-link-p, expand on arg POS. + +2006-07-21 Kim F. Storm <storm@cua.dk> + + * display.texi (Forcing Redisplay): Don't mention systems which + don't support sub-second timers for redisplay-preemption-period. + + * os.texi (Terminal Output): Clarify text vs graphical terminal. + +2006-07-21 Eli Zaretskii <eliz@gnu.org> + + * frames.texi (Input Focus): Document that focus-follows-mouse has + no effect on MS-Windows. + +2006-07-18 Richard Stallman <rms@gnu.org> + + * display.texi (Forcing Redisplay): Cleanups in previous change. + + * processes.texi (Low-Level Network): Make menu more convenient. + +2006-07-18 Kim F. Storm <storm@cua.dk> + + * display.texi (Forcing Redisplay): redisplay-preemption-period + only used on window systems. Add xref to Terminal Output. + + * os.texi (Terminal Output): baud-rate only controls preemption on + non-window systems. Add xref to Forcing Redisplay. + + * processes.texi (Low-Level Network): Rename node "Make Network" + to "Network Processes". + +2006-07-18 Karl Berry <karl@gnu.org> + + * variables.texi, functions.texi, customize.texi, loading.texi: + * edebug.texi, minibuf.texi: Fix page breaks through chapter 20. + +2006-07-17 Chong Yidong <cyd@stupidchicken.com> + + * commands.texi (Waiting): Document batch-mode sit-for behavior. + +2006-07-17 Richard Stallman <rms@gnu.org> + + * eval.texi, elisp.texi, text.texi: Use real doublequote inside menus. + Put period and comma inside quotes. + + * loading.texi, markers.texi: Use real doublequote inside menus. + + * windows.texi: Put point and comma inside quotes. + (Textual Scrolling): Use @samp for error message. + + * variables.texi, tips.texi, syntax.texi, symbols.texi: + * strings.texi, streams.texi, processes.texi, os.texi: + * objects.texi, numbers.texi, modes.texi, minibuf.texi: + * lists.texi, keymaps.texi, intro.texi, hash.texi, internals.texi: + * gpl.texi, functions.texi, files.texi, frames.texi, doclicense.texi: + * display.texi, control.texi, commands.texi, buffers.texi, anti.texi: + Put point and comma inside quotes. + + * control.texi (Processing of Errors): Add command-error-function. + + * variables.texi (File Local Variables): Clarify that + file local variables make buffer-local bindings. + + * modes.texi (Syntactic Font Lock): Give default for + font-lock-syntax-table. + +2006-07-17 Nick Roberts <nickrob@snap.net.nz> + + * text.texi (Special Properties): Clean up previous change. + +2006-07-16 Karl Berry <karl@gnu.org> + + * objects.texi, numbers.texi, strings.texi, lists.texi, hash.texi: + * control.texi: Fix bad page breaks through chapter 10 (control). + + * anti.texi (Antinews): Reorder face-attribute fns to avoid + underfull hbox. + +2006-07-15 Nick Roberts <nickrob@snap.net.nz> + + * text.texi (Special Properties): Describe fontified text property + in relation to a character (not text). + +2006-07-15 Kim F. Storm <storm@cua.dk> + + * maps.texi (Standard Keymaps): Add xref for minibuffer maps. + Add apropos-mode-map, custom-mode-map, esc-map, global-map, + grep-mode-map, help-map, help-mode-map, kmacro-map, and tool-bar-map. + + * anti.texi (Antinews): Mention redisplay function. + The kbd macro existed, but was not documented, before 22.x. + Function pos-visible-in-window-p is not new in 22.x, just enhanced. + 2006-07-14 Nick Roberts <nickrob@snap.net.nz> * display.texi (Displaying Messages): Add anchor.
--- a/lispref/anti.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/anti.texi Sat Jul 29 09:59:12 2006 +0000 @@ -24,6 +24,12 @@ @itemize @minus @item +The function @code{redisplay} has been removed. To update the display +without delay, call @code{(sit-for 0)}. Since it is generally +considered wasteful to update the display if there are any pending +input events, no replacement for @code{(redisplay t)} is provided. + +@item The function @code{force-window-update} has been removed. It shouldn't be needed, since changes in window contents are detected automatically. In case they aren't, call @code{redraw-display} to @@ -80,8 +86,8 @@ predicate is no longer supported. @item -@code{face-attribute-relative-p} and @code{merge-face-attribute} have -been removed. +The functions @code{merge-face-attribute} and +@code{face-attribute-relative-p} have been removed. @item The priority of faces in a list supplied by the @code{:inherit} face @@ -91,7 +97,7 @@ @item The @code{min-colors} face attribute, used for tailoring faces to limited-color displays, does not exist. If in doubt, use colors like -``white'' and ``black'', which ought to be defined everywhere. +``white'' and ``black,'' which ought to be defined everywhere. @item The @code{tty-color-mode} frame parameter does not exist. You should @@ -126,9 +132,9 @@ @itemize @minus @item -The @code{kbd} macro has been removed. It isn't that difficult to -write key sequences using the string and vector representations, and -we want to encourage users to learn. +The @code{kbd} macro is now obsolete and is no longer documented. +It isn't that difficult to write key sequences using the string and +vector representations, and we want to encourage users to learn. @item Emacs no longer supports key remapping. You can do pretty much the @@ -164,7 +170,7 @@ @item Many programming shortcuts have been deleted, to provide you with the -enjoyment of ``rolling your own''. The macros @code{while-no-input}, +enjoyment of ``rolling your own.'' The macros @code{while-no-input}, @code{with-local-quit}, and @code{with-selected-window}, along with @code{dynamic-completion-table} and @code{lazy-completion-table} no longer exist. Also, there are no built-in progress reporters; @@ -304,7 +310,7 @@ from the surrounding text. @item -@code{mode-line-format} no longer supports the @code{:propertize}, +The variable @code{mode-line-format} no longer supports the @code{:propertize}, @code{%i}, and @code{%I} constructs. The function @code{format-mode-line} has been removed. @@ -319,8 +325,9 @@ think in terms of lines and columns, not pixel coordinates. (Sometime in the distant past, we will do away with graphical terminals entirely, in favor of text terminals.) For similar reasons, the -functions @code{posn-at-point}, @code{posn-at-x-y}, and -@code{pos-visible-in-window-p} have been removed. +functions @code{posn-at-point} and @code{posn-at-x-y} have been removed, and +@code{pos-visible-in-window-p} no longer worries about partially +visible rows. @item The macro @code{save-selected-window} only saves the selected window
--- a/lispref/buffers.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/buffers.texi Sat Jul 29 09:59:12 2006 +0000 @@ -484,7 +484,7 @@ use. If @var{filename} is @code{nil} or the empty string, that stands for -``no visited file''. In this case, @code{set-visited-file-name} marks +``no visited file.'' In this case, @code{set-visited-file-name} marks the buffer as having no visited file, without changing the buffer's modified flag.
--- a/lispref/commands.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/commands.texi Sat Jul 29 09:59:12 2006 +0000 @@ -2165,7 +2165,7 @@ button and modifier keys. The information about the window part is kept elsewhere in the event---in the coordinates. But @code{read-key-sequence} translates this information into imaginary -``prefix keys'', all of which are symbols: @code{header-line}, +``prefix keys,'' all of which are symbols: @code{header-line}, @code{horizontal-scroll-bar}, @code{menu-bar}, @code{mode-line}, @code{vertical-line}, and @code{vertical-scroll-bar}. You can define meanings for mouse clicks in special window parts by defining key @@ -2199,7 +2199,7 @@ None of the three functions below suppresses quitting. -@defun read-event &optional prompt inherit-input-method +@defun read-event &optional prompt inherit-input-method seconds This function reads and returns the next event of command input, waiting if necessary until an event is available. Events can come directly from the user or from a keyboard macro. @@ -2220,6 +2220,15 @@ moves the cursor temporarily to the echo area, to the end of any message displayed there. Otherwise @code{read-event} does not move the cursor. +If @var{seconds} is non-@code{nil}, it should be a number specifying +the maximum time to wait for input, in seconds. If no input arrives +within that time, @code{read-event} stops waiting and returns +@code{nil}. A floating-point value for @var{seconds} means to wait +for a fractional number of seconds. Some systems support only a whole +number of seconds; on these systems, @var{seconds} is rounded down. +If @var{seconds} is @code{nil}, @code{read-event} waits as long as +necessary for input to arrive. + If @code{read-event} gets an event that is defined as a help character, then in some cases @code{read-event} processes the event directly without returning. @xref{Help Functions}. Certain other events, called @@ -2237,7 +2246,7 @@ @end example @end defun -@defun read-char &optional prompt inherit-input-method +@defun read-char &optional prompt inherit-input-method seconds This function reads and returns a character of command input. If the user generates an event which is not a character (i.e. a mouse click or function key event), @code{read-char} signals an error. The arguments @@ -2269,7 +2278,7 @@ @end example @end defun -@defun read-char-exclusive &optional prompt inherit-input-method +@defun read-char-exclusive &optional prompt inherit-input-method seconds This function reads and returns a character of command input. If the user generates an event which is not a character, @code{read-char-exclusive} ignores it and reads another event, until it @@ -2410,7 +2419,7 @@ @defvar unread-command-char This variable holds a character to be read as command input. -A value of -1 means ``empty''. +A value of -1 means ``empty.'' This variable is mostly obsolete now that you can use @code{unread-command-events} instead; it exists only to support programs @@ -2534,9 +2543,10 @@ @defun sit-for seconds &optional nodisp This function performs redisplay (provided there is no pending input from the user), then waits @var{seconds} seconds, or until input is -available. The value is @code{t} if @code{sit-for} waited the full -time with no input arriving (see @code{input-pending-p} in @ref{Event -Input Misc}). Otherwise, the value is @code{nil}. +available. The usual purpose of @code{sit-for} is to give the user +time to read text that you display. The value is @code{t} if +@code{sit-for} waited the full time with no input arriving +(@pxref{Event Input Misc}). Otherwise, the value is @code{nil}. The argument @var{seconds} need not be an integer. If it is a floating point number, @code{sit-for} waits for a fractional number of seconds. @@ -2551,8 +2561,9 @@ redisplay, but it still returns as soon as input is available (or when the timeout elapses). -The usual purpose of @code{sit-for} is to give the user time to read -text that you display. +In batch mode (@pxref{Batch Mode}), @code{sit-for} cannot be +interrupted, even by input from the standard input descriptor. It is +thus equivalent to @code{sleep-for}, which is described below. It is also possible to call @code{sit-for} with three arguments, as @code{(sit-for @var{seconds} @var{millisec} @var{nodisp})}, @@ -2898,7 +2909,7 @@ change the major mode of the current buffer temporarily to a special major mode, which should have a command to go back to the previous mode. (The @kbd{e} command in Rmail uses this technique.) Or, if you wish to -give the user different text to edit ``recursively'', create and select +give the user different text to edit ``recursively,'' create and select a new buffer in a special mode. In this mode, define a command to complete the processing and go back to the previous buffer. (The @kbd{m} command in Rmail does this.)
--- a/lispref/control.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/control.texi Sat Jul 29 09:59:12 2006 +0000 @@ -221,7 +221,7 @@ @var{body-forms}, and the value of the last of @var{body-forms} becomes the value of the @code{cond}. The remaining clauses are ignored. -If the value of @var{condition} is @code{nil}, the clause ``fails'', so +If the value of @var{condition} is @code{nil}, the clause ``fails,'' so the @code{cond} moves on to the following clause, trying its @var{condition}. @@ -623,7 +623,7 @@ @subsection Examples of @code{catch} and @code{throw} One way to use @code{catch} and @code{throw} is to exit from a doubly -nested loop. (In most languages, this would be done with a ``go to''.) +nested loop. (In most languages, this would be done with a ``go to.'') Here we compute @code{(foo @var{i} @var{j})} for @var{i} and @var{j} varying from 0 to 9: @@ -783,8 +783,11 @@ @end defun @defun signal error-symbol data +This @anchor{Definition of signal} -This function signals an error named by @var{error-symbol}. The +@c unfortunately, a page break is allowed if the anchor immediately +@c follows the @defun, due to hard-to-fix TeXnicalities. +function signals an error named by @var{error-symbol}. The argument @var{data} is a list of additional Lisp objects relevant to the circumstances of the error. @@ -846,11 +849,22 @@ established it; all functions called within that @code{condition-case} have already been exited, and the handler cannot return to them. -If there is no applicable handler for the error, the current command is -terminated and control returns to the editor command loop, because the -command loop has an implicit handler for all kinds of errors. The +If there is no applicable handler for the error, it terminates the +current command and returns control to the editor command loop. (The +command loop has an implicit handler for all kinds of errors.) The command loop's handler uses the error symbol and associated data to -print an error message. +print an error message. You can use the variable +@code{command-error-function} to control how this is done: + +@defvar command-error-function +This variable, if non-@code{nil}, specifies a function to use to +handle errors that return control to the Emacs command loop. The +function should take three arguments: @var{data}, a list of the same +form that @code{condition-case} would bind to its variable; +@var{context}, a string describing the situation in which the error +occurred, or (more often) @code{nil}; and @code{caller}, the Lisp +function which called the primitive that signaled the error. +@end defvar @cindex @code{debug-on-error} use An error that has no explicit handler may call the Lisp debugger. The
--- a/lispref/customize.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/customize.texi Sat Jul 29 09:59:12 2006 +0000 @@ -699,7 +699,7 @@ @item (list @var{element-types}@dots{}) The value must be a list with exactly as many elements as the -@var{element-types} you have specified; and each element must fit the +@var{element-types} given; and each element must fit the corresponding @var{element-type}. For example, @code{(list integer string function)} describes a list of @@ -718,7 +718,7 @@ For example, @code{(choice integer string)} allows either an integer or a string. -In the customization buffer, the user selects one of the alternatives +In the customization buffer, the user selects an alternative using a menu, and can then edit the value in the usual way for that alternative.
--- a/lispref/display.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/display.texi Sat Jul 29 09:59:12 2006 +0000 @@ -103,8 +103,8 @@ If this variable is @code{nil}, Emacs does not check for input during redisplay, and redisplay cannot be preempted by input. -@emph{Note} that this variable is only available if Emacs is built -with support for sub-second timers. +This variable is only obeyed on graphical terminals. For +text terminals, see @ref{Terminal Output}. @end defvar @defvar redisplay-dont-pause @@ -141,7 +141,7 @@ indicate truncated and continued lines (@pxref{Fringes}). On a text terminal, a @samp{$} in the rightmost column of the window indicates truncation; a @samp{\} on the rightmost column indicates a line that -``wraps''. (The display table can specify alternate characters to use +``wraps.'' (The display table can specify alternate characters to use for this; @pxref{Display Tables}). @defopt truncate-lines @@ -1189,7 +1189,7 @@ This is the only valid way to change the endpoints of an overlay. Do not try modifying the markers in the overlay by hand, as that fails to update other vital data structures and can cause some overlays to be -``lost''. +``lost.'' @end defun @defun remove-overlays &optional start end name value @@ -2013,7 +2013,7 @@ A non-@code{nil} value specifies an italic font. @end table - For compatibility, you can still set these ``attributes'', even + For compatibility, you can still set these ``attributes,'' even though they are not real face attributes. Here is what that does: @table @code @@ -3767,7 +3767,7 @@ @end ifnottex @item disabled -Specifies transforming the image so that it looks ``disabled''. +Specifies transforming the image so that it looks ``disabled.'' @end table @item :mask @var{mask} @@ -4804,7 +4804,7 @@ @subsection Abstract Display Example Here is a simple example using functions of the ewoc package to -implement a ``color components display'', an area in a buffer that +implement a ``color components display,'' an area in a buffer that represents a vector of three integers (itself representing a 24-bit RGB value) in various ways. @@ -5320,7 +5320,7 @@ @section Window Systems Emacs works with several window systems, most notably the X Window -System. Both Emacs and X use the term ``window'', but use it +System. Both Emacs and X use the term ``window,'' but use it differently. An Emacs frame is a single window as far as X is concerned; the individual Emacs windows are not known to X at all.
--- a/lispref/doclicense.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/doclicense.texi Sat Jul 29 09:59:12 2006 +0000 @@ -24,7 +24,7 @@ to get credit for their work, while not being considered responsible for modifications made by others. -This License is a kind of ``copyleft'', which means that derivative +This License is a kind of ``copyleft,'' which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. @@ -45,9 +45,9 @@ contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that -work under the conditions stated herein. The ``Document'', below, +work under the conditions stated herein. The ``Document,'' below, refers to any such manual or work. Any member of the public is a -licensee, and is addressed as ``you''. You accept the license if you +licensee, and is addressed as ``you.'' You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. @@ -114,8 +114,8 @@ A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a -specific section name mentioned below, such as ``Acknowledgements'', -``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' +specific section name mentioned below, such as ``Acknowledgements,'' +``Dedications,'' ``Endorsements,'' or ``History.'') To ``Preserve the Title'' of such a section when you modify the Document means that it remains a section ``Entitled XYZ'' according to this definition. @@ -211,7 +211,7 @@ G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.@* H. Include an unaltered copy of this License.@* -I. Preserve the section Entitled ``History'', Preserve its Title, and add +I. Preserve the section Entitled ``History,'' Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled ``History'' in the Document, create one @@ -225,7 +225,7 @@ You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.@* -K. For any section Entitled ``Acknowledgements'' or ``Dedications'', +K. For any section Entitled ``Acknowledgements'' or ``Dedications,'' Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.@* @@ -245,7 +245,7 @@ list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. -You may add a section Entitled ``Endorsements'', provided it contains +You may add a section Entitled ``Endorsements,'' provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a @@ -286,7 +286,7 @@ In the combination, you must combine any sections Entitled ``History'' in the various original documents, forming one section Entitled -``History''; likewise combine any sections Entitled ``Acknowledgements'', +``History''; likewise combine any sections Entitled ``Acknowledgements,'' and any sections Entitled ``Dedications.'' You must delete all sections Entitled ``Endorsements.'' @sp 1 @@ -340,8 +340,8 @@ the translation and the original version of this License or a notice or disclaimer, the original version will prevail. -If a section in the Document is Entitled ``Acknowledgements'', -``Dedications'', or ``History'', the requirement (section 4) to Preserve +If a section in the Document is Entitled ``Acknowledgements,'' +``Dedications,'' or ``History,'' the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. @sp 1 @@ -390,7 +390,7 @@ or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU -Free Documentation License''. +Free Documentation License.'' @end group @end smallexample
--- a/lispref/edebug.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/edebug.texi Sat Jul 29 09:59:12 2006 +0000 @@ -1541,12 +1541,10 @@ @end defopt @defopt edebug-trace -Non-@code{nil} means display a trace of function entry and exit. +If this is non-@code{nil}, trace each function entry and exit. Tracing output is displayed in a buffer named @samp{*edebug-trace*}, one function entry or exit per line, indented by the recursion level. -The default value is @code{nil}. - Also see @code{edebug-tracing}, in @ref{Trace Buffer}. @end defopt
--- a/lispref/elisp.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/elisp.texi Sat Jul 29 09:59:12 2006 +0000 @@ -47,10 +47,10 @@ Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the -Invariant Sections being ``GNU General Public License'', with the -Front-Cover texts being ``A GNU Manual'', and with the Back-Cover +Invariant Sections being ``GNU General Public License,'' with the +Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license is included in the -section entitled ``GNU Free Documentation License''. +section entitled ``GNU Free Documentation License.'' (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify this GNU Manual, like GNU software. Copies published by the Free @@ -338,7 +338,7 @@ we find the real function via the symbol. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. -* Special Forms:: ``Special forms'' are idiosyncratic primitives, +* Special Forms:: "Special forms" are idiosyncratic primitives, most of them extremely important. * Autoloading:: Functions set up to load files containing their real definitions. @@ -457,7 +457,7 @@ * Repeated Loading:: Precautions about loading a file twice. * Named Features:: Loading a library if it isn't already loaded. * Where Defined:: Finding which file defined a certain symbol. -* Unloading:: How to ``unload'' a library that was loaded. +* Unloading:: How to "unload" a library that was loaded. * Hooks for Loading:: Providing code to be run when particular libraries are loaded. @@ -741,7 +741,7 @@ is visited. * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. * Modification Time:: Determining whether the visited file was changed - ``behind Emacs's back''. + "behind Emacs's back". * Read Only Buffers:: Modifying text is not allowed in a read-only buffer. * The Buffer List:: How to look at all the existing buffers. @@ -830,8 +830,8 @@ * Marker Insertion Types:: Two ways a marker can relocate when you insert where it points. * Moving Markers:: Moving the marker to a new buffer or position. -* The Mark:: How ``the mark'' is implemented with a marker. -* The Region:: How to access ``the region''. +* The Mark:: How "the mark" is implemented with a marker. +* The Region:: How to access "the region". Text @@ -862,8 +862,8 @@ * Registers:: How registers are implemented. Accessing the text or position stored in a register. * Base 64:: Conversion to or from base 64 encoding. -* MD5 Checksum:: Compute the MD5 ``message digest''/``checksum''. -* Atomic Changes:: Installing several buffer changes ``atomically''. +* MD5 Checksum:: Compute the MD5 "message digest"/"checksum". +* Atomic Changes:: Installing several buffer changes "atomically". * Change Hooks:: Supplying functions to be run when text is changed. The Kill Ring
--- a/lispref/eval.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/eval.texi Sat Jul 29 09:59:12 2006 +0000 @@ -106,7 +106,7 @@ A Lisp object that is intended to be evaluated is called a @dfn{form}. How Emacs evaluates a form depends on its data type. Emacs has three different kinds of form that are evaluated differently: symbols, lists, -and ``all other types''. This section describes all three kinds, one by +and ``all other types.'' This section describes all three kinds, one by one, starting with the ``all other types'' which are self-evaluating forms. @@ -118,7 +118,7 @@ we find the real function via the symbol. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. -* Special Forms:: ``Special forms'' are idiosyncratic primitives, +* Special Forms:: "Special forms" are idiosyncratic primitives, most of them extremely important. * Autoloading:: Functions set up to load files containing their real definitions.
--- a/lispref/files.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/files.texi Sat Jul 29 09:59:12 2006 +0000 @@ -658,7 +658,7 @@ stored in the same directory as the file you are editing. When you access files using NFS, there may be a small probability that -you and another user will both lock the same file ``simultaneously''. +you and another user will both lock the same file ``simultaneously.'' If this happens, it is possible for the two users to make changes simultaneously, but Emacs will still warn the user who saves second. Also, the detection of modification of a buffer visiting a file changed @@ -1681,7 +1681,7 @@ @end defun @defun file-name-extension filename &optional period -This function returns @var{filename}'s final ``extension'', if any, +This function returns @var{filename}'s final ``extension,'' if any, after applying @code{file-name-sans-versions} to remove any version/backup part. The extension, in a file name, is the part that starts with the last @samp{.} in the last name component (minus @@ -2653,7 +2653,7 @@ possibly others to be added in the future. It need not implement all these operations itself---when it has nothing special to do for a certain operation, it can reinvoke the primitive, to handle the -operation ``in the usual way''. It should always reinvoke the primitive +operation ``in the usual way.'' It should always reinvoke the primitive for an operation it does not recognize. Here's one way to do this: @smallexample
--- a/lispref/frames.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/frames.texi Sat Jul 29 09:59:12 2006 +0000 @@ -641,7 +641,7 @@ form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor type equals @var{on-state} (comparing using @code{equal}), the corresponding @var{off-state} specifies what the cursor looks like -when it blinks ``off''. Both @var{on-state} and @var{off-state} +when it blinks ``off.'' Both @var{on-state} and @var{off-state} should be suitable values for the @code{cursor-type} frame parameter. There are various defaults for how to blink each type of cursor, if @@ -967,7 +967,7 @@ @defun visible-frame-list This function returns a list of just the currently visible frames. @xref{Visibility of Frames}. (Terminal frames always count as -``visible'', even though only the selected one is actually displayed.) +``visible,'' even though only the selected one is actually displayed.) @end defun @defun next-frame &optional frame minibuf @@ -1189,7 +1189,9 @@ This option is how you inform Emacs whether the window manager transfers focus when the user moves the mouse. Non-@code{nil} says that it does. When this is so, the command @code{other-frame} moves the mouse to a -position consistent with the new selected frame. +position consistent with the new selected frame. (This option has no +effect on MS-Windows, where the mouse pointer is always automatically +moved by the OS to the selected frame.) @end defopt @node Visibility of Frames @@ -1251,7 +1253,7 @@ Most window systems use a desktop metaphor. Part of this metaphor is the idea that windows are stacked in a notional third dimension perpendicular to the screen surface, and thus ordered from ``highest'' -to ``lowest''. Where two windows overlap, the one higher up covers +to ``lowest.'' Where two windows overlap, the one higher up covers the one underneath. Even a window at the bottom of the stack can be seen if no other window overlaps it. @@ -1259,7 +1261,7 @@ @cindex lowering a frame A window's place in this ordering is not fixed; in fact, users tend to change the order frequently. @dfn{Raising} a window means moving -it ``up'', to the top of the stack. @dfn{Lowering} a window means +it ``up,'' to the top of the stack. @dfn{Lowering} a window means moving it to the bottom of the stack. This motion is in the notional third dimension only, and does not change the position of the window on the screen. @@ -1519,7 +1521,7 @@ A dialog box is a variant of a pop-up menu---it looks a little different, it always appears in the center of a frame, and it has just one level and one or more buttons. The main use of dialog boxes is -for asking questions that the user can answer with ``yes'', ``no'', +for asking questions that the user can answer with ``yes,'' ``no,'' and a few other alternatives. With a single button, they can also force the user to acknowledge important information. The functions @code{y-or-n-p} and @code{yes-or-no-p} use dialog boxes instead of the @@ -1780,7 +1782,7 @@ These functions provide a way to determine which color names are valid, and what they look like. In some cases, the value depends on the @dfn{selected frame}, as described below; see @ref{Input Focus}, for the -meaning of the term ``selected frame''. +meaning of the term ``selected frame.'' @defun color-defined-p color &optional frame This function reports whether a color name is meaningful. It returns @@ -2150,7 +2152,7 @@ server. When the developers of X labelled software distributors as -``vendors'', they showed their false assumption that no system could +``vendors,'' they showed their false assumption that no system could ever be developed and distributed noncommercially. @end defun
--- a/lispref/functions.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/functions.texi Sat Jul 29 09:59:12 2006 +0000 @@ -485,7 +485,7 @@ practice). We often identify functions with the symbols used to name them. For -example, we often speak of ``the function @code{car}'', not +example, we often speak of ``the function @code{car},'' not distinguishing between the symbol @code{car} and the primitive subr-object that is its function definition. For most purposes, the distinction is not important. @@ -766,12 +766,10 @@ The argument @var{sequence} can be any kind of sequence except a char-table; that is, a list, a vector, a bool-vector, or a string. The result is always a list. The length of the result is the same as the -length of @var{sequence}. +length of @var{sequence}. For example: @smallexample @group -@exdent @r{For example:} - (mapcar 'car '((a b) (c d) (e f))) @result{} (a c e) (mapcar '1+ [1 2 3]) @@ -846,7 +844,7 @@ In Lisp, a function is a list that starts with @code{lambda}, a byte-code function compiled from such a list, or alternatively a -primitive subr-object; names are ``extra''. Although usually functions +primitive subr-object; names are ``extra.'' Although usually functions are defined with @code{defun} and given names at the same time, it is occasionally more concise to use an explicit lambda expression---an anonymous function. Such a list is valid wherever a function name is.
--- a/lispref/gpl.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/gpl.texi Sat Jul 29 09:59:12 2006 +0000 @@ -75,13 +75,13 @@ @item This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The ``Program'', below, +under the terms of this General Public License. The ``Program,'' below, refers to any such program or work, and a ``work based on the Program'' means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in -the term ``modification''.) Each licensee is addressed as ``you''. +the term ``modification.'') Each licensee is addressed as ``you.'' Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of @@ -274,7 +274,7 @@ Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and ``any -later version'', you have the option of following the terms and conditions +later version,'' you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software
--- a/lispref/hash.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/hash.texi Sat Jul 29 09:59:12 2006 +0000 @@ -79,13 +79,13 @@ Keys which are numbers are ``the same'' if they are @code{equal}, that is, if they are equal in value and either both are integers or both are floating point numbers; otherwise, two distinct objects are never -``the same''. +``the same.'' @item eq Any two distinct Lisp objects are ``different'' as keys. @item equal -Two Lisp objects are ``the same'', as keys, if they are equal +Two Lisp objects are ``the same,'' as keys, if they are equal according to @code{equal}. @end table @@ -269,7 +269,6 @@ @example (defun case-fold-string= (a b) (compare-strings a nil nil b nil nil t)) - (defun case-fold-string-hash (a) (sxhash (upcase a)))
--- a/lispref/internals.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/internals.texi Sat Jul 29 09:59:12 2006 +0000 @@ -1270,7 +1270,7 @@ when it was chosen. @item too_small_ok -Non-@code{nil} means don't delete this window for becoming ``too small''. +Non-@code{nil} means don't delete this window for becoming ``too small.'' @item height_fixed_p This field is temporarily set to 1 to fix the height of the selected
--- a/lispref/intro.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/intro.texi Sat Jul 29 09:59:12 2006 +0000 @@ -160,7 +160,7 @@ representations of Lisp objects into actual Lisp objects, and vice versa. @xref{Printed Representation}, for more details. You, the person reading this manual, are thought of as ``the programmer'' and are -addressed as ``you''. ``The user'' is the person who uses Lisp +addressed as ``you.'' ``The user'' is the person who uses Lisp programs, including those you write. @cindex fonts in this manual @@ -233,7 +233,7 @@ @end example @noindent -You can read this as ``@code{(car '(1 2))} evaluates to 1''. +You can read this as ``@code{(car '(1 2))} evaluates to 1.'' When a form is a macro call, it expands into a new form for Lisp to evaluate. We show the result of the expansion with
--- a/lispref/keymaps.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/keymaps.texi Sat Jul 29 09:59:12 2006 +0000 @@ -2232,7 +2232,7 @@ Note the symbols which the bindings are ``made for''; these appear inside square brackets, in the key sequence being defined. In some cases, this symbol is the same as the command name; sometimes it is -different. These symbols are treated as ``function keys'', but they are +different. These symbols are treated as ``function keys,'' but they are not real function keys on the keyboard. They do not affect the functioning of the menu itself, but they are ``echoed'' in the echo area when the user selects from the menu, and they appear in the output of
--- a/lispref/lists.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/lists.texi Sat Jul 29 09:59:12 2006 +0000 @@ -20,6 +20,7 @@ * List-related Predicates:: Is this object a list? Comparing two lists. * List Elements:: Extracting the pieces of a list. * Building Lists:: Creating list structure. +* List Variables:: Modifying lists stored in variables. * Modifying Lists:: Storing new pieces into an existing list. * Sets And Lists:: A list can represent a finite mathematical set. * Association Lists:: A list can represent a finite relation or mapping. @@ -431,20 +432,6 @@ any symbol can serve both purposes. @end defun -@defmac push newelt listname -This macro provides an alternative way to write -@code{(setq @var{listname} (cons @var{newelt} @var{listname}))}. - -@example -(setq l '(a b)) - @result{} (a b) -(push 'c l) - @result{} (c a b) -l - @result{} (c a b) -@end example -@end defmac - @defun list &rest objects This function creates a list with @var{objects} as its elements. The resulting list is always @code{nil}-terminated. If no @var{objects} @@ -704,6 +691,124 @@ @end example @end defun +@node List Variables +@section Modifying List Variables + + These functions, and one macro, provide convenient ways +to modify a list which is stored in a variable. + +@defmac push newelt listname +This macro provides an alternative way to write +@code{(setq @var{listname} (cons @var{newelt} @var{listname}))}. + +@example +(setq l '(a b)) + @result{} (a b) +(push 'c l) + @result{} (c a b) +l + @result{} (c a b) +@end example +@end defmac + + Two functions modify lists that are the values of variables. + +@defun add-to-list symbol element &optional append +This function sets the variable @var{symbol} by consing @var{element} +onto the old value, if @var{element} is not already a member of that +value. It returns the resulting list, whether updated or not. The +value of @var{symbol} had better be a list already before the call. +Membership is tested using @code{equal}. + +Normally, if @var{element} is added, it is added to the front of +@var{symbol}, but if the optional argument @var{append} is +non-@code{nil}, it is added at the end. + +The argument @var{symbol} is not implicitly quoted; @code{add-to-list} +is an ordinary function, like @code{set} and unlike @code{setq}. Quote +the argument yourself if that is what you want. +@end defun + +Here's a scenario showing how to use @code{add-to-list}: + +@example +(setq foo '(a b)) + @result{} (a b) + +(add-to-list 'foo 'c) ;; @r{Add @code{c}.} + @result{} (c a b) + +(add-to-list 'foo 'b) ;; @r{No effect.} + @result{} (c a b) + +foo ;; @r{@code{foo} was changed.} + @result{} (c a b) +@end example + + An equivalent expression for @code{(add-to-list '@var{var} +@var{value})} is this: + +@example +(or (member @var{value} @var{var}) + (setq @var{var} (cons @var{value} @var{var}))) +@end example + +@defun add-to-ordered-list symbol element &optional order +This function sets the variable @var{symbol} by inserting +@var{element} into the old value, which must be a list, at the +position specified by @var{order}. If @var{element} is already a +member of the list, its position in the list is adjusted according +to @var{order}. Membership is tested using @code{eq}. +This function returns the resulting list, whether updated or not. + +The @var{order} is typically a number (integer or float), and the +elements of the list are sorted in non-decreasing numerical order. + +@var{order} may also be omitted or @code{nil}. Then the numeric order +of @var{element} stays unchanged if it already has one; otherwise, +@var{element} has no numeric order. Elements without a numeric list +order are placed at the end of the list, in no particular order. + +Any other value for @var{order} removes the numeric order of @var{element} +if it already has one; otherwise, it is equivalent to @code{nil}. + +The argument @var{symbol} is not implicitly quoted; +@code{add-to-ordered-list} is an ordinary function, like @code{set} +and unlike @code{setq}. Quote the argument yourself if that is what +you want. + +The ordering information is stored in a hash table on @var{symbol}'s +@code{list-order} property. +@end defun + +Here's a scenario showing how to use @code{add-to-ordered-list}: + +@example +(setq foo '()) + @result{} nil + +(add-to-ordered-list 'foo 'a 1) ;; @r{Add @code{a}.} + @result{} (a) + +(add-to-ordered-list 'foo 'c 3) ;; @r{Add @code{c}.} + @result{} (a c) + +(add-to-ordered-list 'foo 'b 2) ;; @r{Add @code{b}.} + @result{} (a b c) + +(add-to-ordered-list 'foo 'b 4) ;; @r{Move @code{b}.} + @result{} (a c b) + +(add-to-ordered-list 'foo 'd) ;; @r{Append @code{d}.} + @result{} (a c b d) + +(add-to-ordered-list 'foo 'e) ;; @r{Add @code{e}}. + @result{} (a c b e d) + +foo ;; @r{@code{foo} was changed.} + @result{} (a c b e d) +@end example + @node Modifying Lists @section Modifying Existing List Structure @cindex destructive list operations @@ -1412,8 +1517,8 @@ @end group @end example - The associated values in an alist may be any Lisp objects; so may the -keys. For example, in the following alist, the symbol @code{a} is + Both the values and the keys in an alist may be any Lisp objects. +For example, in the following alist, the symbol @code{a} is associated with the number @code{1}, and the string @code{"b"} is associated with the @emph{list} @code{(2 3)}, which is the @sc{cdr} of the alist element: @@ -1439,7 +1544,7 @@ these considerations is important, the choice is a matter of taste, as long as you are consistent about it for any given alist. - Note that the same alist shown above could be regarded as having the + The same alist shown above could be regarded as having the associated value in the @sc{cdr} of the element; the value associated with @code{rose} would be the list @code{(red)}. @@ -1503,7 +1608,7 @@ @code{rassoc} is like @code{assoc} except that it compares the @sc{cdr} of each @var{alist} association instead of the @sc{car}. You can think of -this as ``reverse @code{assoc}'', finding the key for a given value. +this as ``reverse @code{assoc},'' finding the key for a given value. @end defun @defun assq key alist @@ -1544,7 +1649,7 @@ @code{rassq} is like @code{assq} except that it compares the @sc{cdr} of each @var{alist} association instead of the @sc{car}. You can think of -this as ``reverse @code{assq}'', finding the key for a given value. +this as ``reverse @code{assq},'' finding the key for a given value. For example: @@ -1557,7 +1662,7 @@ @result{} nil @end smallexample -Note that @code{rassq} cannot search for a value stored in the @sc{car} +@code{rassq} cannot search for a value stored in the @sc{car} of the @sc{cdr} of an element: @smallexample
--- a/lispref/loading.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/loading.texi Sat Jul 29 09:59:12 2006 +0000 @@ -43,7 +43,7 @@ * Repeated Loading:: Precautions about loading a file twice. * Named Features:: Loading a library if it isn't already loaded. * Where Defined:: Finding which file defined a certain symbol. -* Unloading:: How to ``unload'' a library that was loaded. +* Unloading:: How to "unload" a library that was loaded. * Hooks for Loading:: Providing code to be run when particular libraries are loaded. @end menu @@ -155,8 +155,10 @@ @end defvar @defvar load-read-function +This @anchor{Definition of load-read-function} -This variable specifies an alternate expression-reading function for +@c do not allow page break at anchor; work around Texinfo deficiency. +variable specifies an alternate expression-reading function for @code{load} and @code{eval-region} to use instead of @code{read}. The function should accept one argument, just as @code{read} does.
--- a/lispref/maps.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/maps.texi Sat Jul 29 09:59:12 2006 +0000 @@ -12,11 +12,17 @@ loaded only when their respective mode is used. This is not an exhaustive list. +Several keymaps are used in the minibuffer. @xref{Completion Commands}. + Almost all of these maps are used as local maps. Indeed, of the modes that presently exist, only Vip mode and Terminal mode ever change the global keymap. @table @code +@item apropos-mode-map +@vindex apropos-mode-map +A sparse keymap for @code{apropos} buffers. + @item Buffer-menu-mode-map @vindex Buffer-menu-mode-map A full keymap used by Buffer Menu mode. @@ -38,6 +44,9 @@ @item ctl-x-map A full keymap for @kbd{C-x} commands. +@item custom-mode-map +A full keymap for Custom mode. + @item debugger-mode-map @vindex debugger-mode-map A full keymap used by Debugger mode. @@ -66,6 +75,10 @@ @vindex emacs-lisp-mode-map A sparse keymap used by Emacs Lisp mode. +@item esc-map +@vindex esc-map +A full keymap for @kbd{ESC} (or @kbd{Meta}) commands. + @item facemenu-menu @vindex facemenu-menu The sparse keymap that displays the Text Properties menu. @@ -109,6 +122,21 @@ The sparse keymap for Fundamental mode.@* It is empty and should not be changed. +@item global-map +The full keymap containing default global key bindings.@* +Modes should not modify the Global map. + +@item grep-mode-map +@vindex grep-mode-map +The keymap for @code{grep-mode} buffers. + +@item help-map +The sparse keymap for the keys that follow the help character @kbd{C-h}. + +@item help-mode-map +@vindex help-mode-map +The sparse keymap for Help mode. + @item Helper-help-map @vindex Helper-help-map A full keymap used by the help utility package.@* @@ -132,6 +160,11 @@ A keymap for translating keys. This one overrides ordinary key bindings, unlike @code{function-key-map}. @xref{Translating Input}. +@item kmacro-map +@vindex kmacro-map +A sparse keymap for keys that follows the @kbd{C-x C-k} prefix +search. + @item lisp-interaction-mode-map @vindex lisp-interaction-mode-map A sparse keymap used by Lisp Interaction mode. @@ -184,6 +217,9 @@ @vindex text-mode-map A sparse keymap used by Text mode. +@item tool-bar-map +The keymap defining the contents of the tool bar. + @item view-mode-map @vindex view-mode-map A full keymap used by View mode.
--- a/lispref/markers.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/markers.texi Sat Jul 29 09:59:12 2006 +0000 @@ -21,8 +21,8 @@ * Marker Insertion Types:: Two ways a marker can relocate when you insert where it points. * Moving Markers:: Moving the marker to a new buffer or position. -* The Mark:: How ``the mark'' is implemented with a marker. -* The Region:: How to access ``the region''. +* The Mark:: How "the mark" is implemented with a marker. +* The Region:: How to access "the region". @end menu @node Overview of Markers
--- a/lispref/minibuf.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/minibuf.texi Sat Jul 29 09:59:12 2006 +0000 @@ -208,8 +208,10 @@ @end defvar @defvar minibuffer-local-map +This @anchor{Definition of minibuffer-local-map} -This is the default local keymap for reading from the minibuffer. By +@c avoid page break at anchor; work around Texinfo deficiency +is the default local keymap for reading from the minibuffer. By default, it makes the following bindings: @table @asis @@ -1509,7 +1511,7 @@ This function asks the user a question, expecting input in the echo area. It returns @code{t} if the user types @kbd{y}, @code{nil} if the user types @kbd{n}. This function also accepts @key{SPC} to mean yes -and @key{DEL} to mean no. It accepts @kbd{C-]} to mean ``quit'', like +and @key{DEL} to mean no. It accepts @kbd{C-]} to mean ``quit,'' like @kbd{C-g}, because the question might look like a minibuffer and for that reason the user might try to use @kbd{C-]} to get out. The answer is a single character, with no @key{RET} needed to terminate it. Upper @@ -1699,7 +1701,7 @@ When the user responds with @var{char}, @code{map-y-or-n-p} calls @var{function}. If it returns non-@code{nil}, the object is considered -``acted upon'', and @code{map-y-or-n-p} advances to the next object in +``acted upon,'' and @code{map-y-or-n-p} advances to the next object in @var{list}. If it returns @code{nil}, the prompt is repeated for the same object.
--- a/lispref/modes.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/modes.texi Sat Jul 29 09:59:12 2006 +0000 @@ -145,7 +145,7 @@ It is best to design your hook functions so that the order in which they are executed does not matter. Any dependence on the order is ``asking -for trouble''. However, the order is predictable: normally, +for trouble.'' However, the order is predictable: normally, @var{function} goes at the front of the hook list, so it will be executed first (barring another @code{add-hook} call). If the optional argument @var{append} is non-@code{nil}, the new hook function goes at @@ -1139,7 +1139,7 @@ When you defined a major mode using @code{define-derived-mode}, it automatically makes sure these conventions are followed. If you -define a major mode ``from scratch'', not using +define a major mode ``from scratch,'' not using @code{define-derived-mode}, make sure the major mode command follows these and other conventions. @xref{Major Mode Conventions}. You use these functions to do it properly. @@ -1354,9 +1354,8 @@ standard one. The editor command loop handles this function specially.) The key sequences bound in a minor mode should consist of @kbd{C-c} -followed by a punctuation character @emph{other than} @kbd{@{}, -@kbd{@}}, @kbd{<}, @kbd{>}, @kbd{:}, and @kbd{;}. (Those few punctuation -characters are reserved for major modes.) +followed by one of @kbd{.,/?`'"[]\|~!#$%^&*()-_+=}. (The other +punctuation characters are reserved for major modes.) @node Defining Minor Modes @subsection Defining Minor Modes @@ -1456,7 +1455,7 @@ @end smallexample @noindent -This defines a minor mode named ``Hungry mode'', a command named +This defines a minor mode named ``Hungry mode,'' a command named @code{hungry-mode} to toggle it, a variable named @code{hungry-mode} which indicates whether the mode is enabled, and a variable named @code{hungry-mode-map} which holds the keymap that is active when the @@ -2918,7 +2917,8 @@ @defvar font-lock-syntax-table This variable holds the syntax table to use for fontification of comments and strings. Specify it using @var{syntax-alist} in -@code{font-lock-defaults}. +@code{font-lock-defaults}. If this is @code{nil}, fontification uses +the buffer's syntax table. @end defvar @defvar font-lock-beginning-of-syntax-function @@ -3049,7 +3049,7 @@ @itemize @item -Place a @code{font-lock-multiline} or @code{jit-lock-defer-multiline} +Place a @code{font-lock-multiline} property on the construct when it is added to the buffer. @item Use @code{font-lock-fontify-region-function} hook to extend the scan @@ -3076,7 +3076,6 @@ Place a @code{jit-lock-defer-multiline} property on the construct. This works only if @code{jit-lock-contextually} is used, but it can handle the case where highlighting depends on subsequent lines. -@item @end itemize @menu
--- a/lispref/numbers.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/numbers.texi Sat Jul 29 09:59:12 2006 +0000 @@ -606,12 +606,11 @@ @result{} 2.5 (/ 25 3 2) @result{} 4 +@group (/ -17 6) - @result{} -2 + @result{} -2 @r{(could in theory be @minus{}3 on some machines)} +@end group @end example - -The result of @code{(/ -17 6)} could in principle be -3 on some -machines. @end defun @defun % dividend divisor @@ -738,7 +737,7 @@ sequence of @dfn{bits} (digits which are either zero or one). A bitwise operation acts on the individual bits of such a sequence. For example, @dfn{shifting} moves the whole sequence left or right one or more places, -reproducing the same pattern ``moved over''. +reproducing the same pattern ``moved over.'' The bitwise operations in Emacs Lisp apply only to integers.
--- a/lispref/objects.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/objects.texi Sat Jul 29 09:59:12 2006 +0000 @@ -632,7 +632,7 @@ @cindex atom Because cons cells are so central to Lisp, we also have a word for -``an object which is not a cons cell''. These objects are called +``an object which is not a cons cell.'' These objects are called @dfn{atoms}. @cindex parenthesis @@ -1195,18 +1195,19 @@ @node Function Type @subsection Function Type - Just as functions in other programming languages are executable, -@dfn{Lisp function} objects are pieces of executable code. However, -functions in Lisp are primarily Lisp objects, and only secondarily the -text which represents them. These Lisp objects are lambda expressions: -lists whose first element is the symbol @code{lambda} (@pxref{Lambda -Expressions}). + Lisp functions are executable code, just like functions in other +programming languages. In Lisp, unlike most languages, functions are +also Lisp objects. A non-compiled function in Lisp is a lambda +expression: that is, a list whose first element is the symbol +@code{lambda} (@pxref{Lambda Expressions}). In most programming languages, it is impossible to have a function without a name. In Lisp, a function has no intrinsic name. A lambda -expression is also called an @dfn{anonymous function} (@pxref{Anonymous -Functions}). A named function in Lisp is actually a symbol with a valid -function in its function cell (@pxref{Defining Functions}). +expression can be called as a function even though it has no name; to +emphasize this, we also call it an @dfn{anonymous function} +(@pxref{Anonymous Functions}). A named function in Lisp is just a +symbol with a valid function in its function cell (@pxref{Defining +Functions}). Most of the time, functions are called when their names are written in Lisp expressions in Lisp programs. However, you can construct or obtain @@ -1238,7 +1239,7 @@ A @dfn{primitive function} is a function callable from Lisp but written in the C programming language. Primitive functions are also called @dfn{subrs} or @dfn{built-in functions}. (The word ``subr'' is -derived from ``subroutine''.) Most primitive functions evaluate all +derived from ``subroutine.'') Most primitive functions evaluate all their arguments when they are called. A primitive function that does not evaluate all its arguments is called a @dfn{special form} (@pxref{Special Forms}).@refill @@ -1822,12 +1823,14 @@ @example (type-of 1) @result{} integer +@group (type-of 'nil) @result{} symbol (type-of '()) ; @r{@code{()} is @code{nil}.} @result{} symbol (type-of '(x)) @result{} cons +@end group @end example @end defun
--- a/lispref/os.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/os.texi Sat Jul 29 09:59:12 2006 +0000 @@ -1836,10 +1836,11 @@ This variable's value is the output speed of the terminal, as far as Emacs knows. Setting this variable does not change the speed of actual data transmission, but the value is used for calculations such as -padding. It also affects decisions about whether to scroll part of the -screen or repaint---even when using a window system. (We designed it -this way despite the fact that a window system has no true ``output -speed'', to give you a way to tune these decisions.) +padding. + + It also affects decisions about whether to scroll part of the +screen or repaint on text terminals. @xref{Forcing Redisplay}, +for the corresponding functionality on graphical terminals. The value is measured in baud. @end defvar
--- a/lispref/processes.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/processes.texi Sat Jul 29 09:59:12 2006 +0000 @@ -23,7 +23,7 @@ before continuing execution. When you create an asynchronous subprocess, it can run in parallel with the Lisp program. This kind of subprocess is represented within Emacs by a Lisp object which is also -called a ``process''. Lisp programs can use this object to communicate +called a ``process.'' Lisp programs can use this object to communicate with the subprocess or to control it. For example, you can send signals, obtain status information, receive output from the process, or send input to it. @@ -1724,13 +1724,14 @@ @code{make-network-process}. @menu -* Make Network:: Using @code{make-network-process}. -* Network Options:: Further control over network connections. -* Network Feature Testing:: Determining which network features work on +* Proc: Network Processes. Using @code{make-network-process}. +* Options: Network Options. Further control over network connections. +* Features: Network Feature Testing. + Determining which network features work on the machine you are using. @end menu -@node Make Network +@node Network Processes @subsection @code{make-network-process} The basic function for creating network connections and network @@ -2106,7 +2107,7 @@ that the field represents and, in the case of multibyte fields, how the bytes are ordered within the field. The two possible orderings are ``big endian'' (also known as ``network byte ordering'') and -``little endian''. For instance, the number @code{#x23cd} (decimal +``little endian.'' For instance, the number @code{#x23cd} (decimal 9165) in big endian would be the two bytes @code{#x23} @code{#xcd}; and in little endian, @code{#xcd} @code{#x23}. Here are the possible type values:
--- a/lispref/sequences.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/sequences.texi Sat Jul 29 09:59:12 2006 +0000 @@ -513,8 +513,8 @@ in @ref{Building Lists}. @end defun - The @code{append} function provides a way to convert a vector into a -list with the same elements (@pxref{Building Lists}): + The @code{append} function also provides a way to convert a vector into a +list with the same elements: @example @group
--- a/lispref/streams.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/streams.texi Sat Jul 29 09:59:12 2006 +0000 @@ -116,7 +116,7 @@ should save the argument and arrange to return it on the next call. This is called @dfn{unreading} the character; it happens when the Lisp reader reads one character too many and wants to ``put it back where it -came from''. In this case, it makes no difference what value +came from.'' In this case, it makes no difference what value @var{function} returns. @end itemize @@ -620,7 +620,7 @@ @defun terpri &optional stream @cindex newline in print This function outputs a newline to @var{stream}. The name stands -for ``terminate print''. +for ``terminate print.'' @end defun @defun write-char character &optional stream
--- a/lispref/strings.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/strings.texi Sat Jul 29 09:59:12 2006 +0000 @@ -285,7 +285,7 @@ whenever there are two consecutive matches for @var{separators}, or a match is adjacent to the beginning or end of @var{string}. If @var{omit-nulls} is @code{t}, these null strings are omitted from the -result list. +result. If @var{separators} is @code{nil} (or omitted), the default is the value of @code{split-string-default-separators}. @@ -544,10 +544,11 @@ @xref{Association Lists}. @end defun - See also @code{compare-buffer-substrings} in @ref{Comparing Text}, for -a way to compare text in buffers. The function @code{string-match}, -which matches a regular expression against a string, can be used -for a kind of string comparison; see @ref{Regexp Search}. + See also the @code{compare-buffer-substrings} function in +@ref{Comparing Text}, for a way to compare text in buffers. The +function @code{string-match}, which matches a regular expression +against a string, can be used for a kind of string comparison; see +@ref{Regexp Search}. @node String Conversion @comment node-name, next, previous, up @@ -566,7 +567,7 @@ @xref{Documentation}, for functions that produce textual descriptions of text characters and general input events (@code{single-key-description} and @code{text-char-description}). These -functions are used primarily for making help messages. +are used primarily for making help messages. @defun char-to-string character @cindex character to string @@ -809,7 +810,7 @@ @cindex field width @cindex padding - All the specification characters allow an optional ``width'', which + All the specification characters allow an optional ``width,'' which is a digit-string between the @samp{%} and the character. If the printed representation of the object contains fewer characters than this width, then it is padded. The padding is on the left if the @@ -880,7 +881,7 @@ nothing is inserted for positive numbers). This flag is ignored except for @samp{%d}, @samp{%e}, @samp{%f}, @samp{%g}. -The flag @samp{#} indicates ``alternate form''. For @samp{%o} it +The flag @samp{#} indicates ``alternate form.'' For @samp{%o} it ensures that the result begins with a 0. For @samp{%x} and @samp{%X} the result is prefixed with @samp{0x} or @samp{0X}. For @samp{%e}, @samp{%f}, and @samp{%g} a decimal point is always shown even if the
--- a/lispref/symbols.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/symbols.texi Sat Jul 29 09:59:12 2006 +0000 @@ -160,7 +160,7 @@ @code{defun} defines a symbol as a function, creating a lambda expression and storing it in the function cell of the symbol. This lambda expression thus becomes the function definition of the symbol. -(The term ``function definition'', meaning the contents of the function +(The term ``function definition,'' meaning the contents of the function cell, is derived from the idea that @code{defun} gives the symbol its definition as a function.) @code{defsubst} and @code{defalias} are two other ways of defining a function. @xref{Functions}.
--- a/lispref/syntax.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/syntax.texi Sat Jul 29 09:59:12 2006 +0000 @@ -332,8 +332,8 @@ table. This is for the sake of C++. Each style of comment syntax has its own comment-start sequence and its own comment-end sequence. Each comment must stick to one style or the other; thus, if it starts with -the comment-start sequence of style ``b'', it must also end with the -comment-end sequence of style ``b''. +the comment-start sequence of style ``b,'' it must also end with the +comment-end sequence of style ``b.'' The two comment-start sequences must begin with the same character; only the second character may differ. Mark the second character of the @@ -706,7 +706,7 @@ @item What kind of comment is active: @code{nil} for a comment of style ``a'' or when not inside a comment, @code{t} for a comment of style -``b'', and @code{syntax-table} for a comment that should be ended by a +``b,'' and @code{syntax-table} for a comment that should be ended by a generic comment delimiter character. @item
--- a/lispref/text.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/text.texi Sat Jul 29 09:59:12 2006 +0000 @@ -57,8 +57,8 @@ * Registers:: How registers are implemented. Accessing the text or position stored in a register. * Base 64:: Conversion to or from base 64 encoding. -* MD5 Checksum:: Compute the MD5 ``message digest''/``checksum''. -* Atomic Changes:: Installing several buffer changes ``atomically''. +* MD5 Checksum:: Compute the MD5 "message digest"/"checksum". +* Atomic Changes:: Installing several buffer changes "atomically". * Change Hooks:: Supplying functions to be run when text is changed. @end menu @@ -566,7 +566,7 @@ asking for any confirmation. It returns @code{nil}. Normally, deleting a large amount of text from a buffer inhibits further -auto-saving of that buffer ``because it has shrunk''. However, +auto-saving of that buffer ``because it has shrunk.'' However, @code{erase-buffer} does not do this, the idea being that the future text is not really related to the former text, and its size should not be compared with that of the former text. @@ -817,7 +817,7 @@ Some people think this use of the word ``kill'' is unfortunate, since it refers to operations that specifically @emph{do not} destroy the -entities ``killed''. This is in sharp contrast to ordinary life, in +entities ``killed.'' This is in sharp contrast to ordinary life, in which death is permanent and ``killed'' entities do not come back to life. Therefore, other metaphors have been proposed. For example, the term ``cut ring'' makes sense to people who, in pre-computer days, used @@ -1106,8 +1106,8 @@ @code{nil} or a function of no arguments. If the value is a function, @code{current-kill} calls it to get the -``most recent kill''. If the function returns a non-@code{nil} value, -then that value is used as the ``most recent kill''. If it returns +``most recent kill.'' If the function returns a non-@code{nil} value, +then that value is used as the ``most recent kill.'' If it returns @code{nil}, then the front of the kill ring is used. The normal use of this hook is to get the window system's primary @@ -3012,24 +3012,23 @@ @item fontified @kindex fontified @r{(text property)} -This property says whether the text has had faces assigned to it by -font locking. The display engine tests it to decide whether a buffer +This property says whether the character has a face assigned to it by font +locking. The display engine tests it to decide whether a buffer portion needs refontifying before display. @xref{Auto Faces}. It -takes one of these three values---other values are invalid: +takes one of three values: @table @asis @item @code{nil} -Font locking is disabled, or the @code{face} properties on the text, -if any, are invalid. - -@item The symbol @code{defer} -This value states that the text's @code{face} properties are invalid -and marks it for deferred fontification. It is used only when ``just -in time'' font locking is enabled. +Font locking is disabled, or the character's @code{face} property, if +any, is invalid. + +@item @code{defer} +This value is only used when ``just in time'' font locking is enabled +and it means that the character's @code{face} property is invalid and +needs deferred fontification. @item @code{t} -The @code{face} properties, or lack of them, on the text are currently -valid. +The character's @code{face} property, or absence of one, is valid. @end table @item display @@ -3058,16 +3057,14 @@ @itemize @bullet{} @item -If @var{object} is a buffer, @var{pos} is the position in the buffer -where the @code{help-echo} text property was found. +If @var{object} is a buffer, @var{pos} is the position in the buffer. @item If @var{object} is an overlay, that overlay has a @code{help-echo} -property, and @var{pos} is the position in the overlay's buffer under -the mouse. +property, and @var{pos} is the position in the overlay's buffer. @item If @var{object} is a string (an overlay string or a string displayed with the @code{display} property), @var{pos} is the position in that -string under the mouse. +string. @end itemize If the value of the @code{help-echo} property is neither a function nor @@ -3482,13 +3479,12 @@ @subsection Defining Clickable Text @cindex clickable text - There are two ways to set up @dfn{clickable text} in a buffer. -There are typically two parts of this: to make the text highlight -when the mouse is over it, and to make a mouse button do something -when you click it on that part of the text. - - Highlighting is done with the @code{mouse-face} text property. -Here is an example of how Dired does it: + There are two parts of setting up @dfn{clickable text} in a buffer: +(1) to make that text highlight when the mouse moves over it, and (2) +to make a mouse button do something when you click on that text. + + For highlighting, use the @code{mouse-face} text property. Here is +an example of how Dired does it: @smallexample (condition-case nil @@ -3666,7 +3662,8 @@ @defun mouse-on-link-p pos This function returns non-@code{nil} if position @var{pos} in the -current buffer is on a link. +current buffer is on a link. @var{pos} can also be a mouse event +location, as returned by @code{event-start} (@pxref{Accessing Events}). @end defun @node Fields
--- a/lispref/tips.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/tips.texi Sat Jul 29 09:59:12 2006 +0000 @@ -702,15 +702,15 @@ @item The documentation string for a variable that is a yes-or-no flag should -start with words such as ``Non-nil means@dots{}'', to make it clear that +start with words such as ``Non-nil means,'' to make it clear that all non-@code{nil} values are equivalent and indicate explicitly what @code{nil} and non-@code{nil} mean. @item The documentation string for a function that is a yes-or-no predicate -should start with words such as ``Return t if @dots{}'', to indicate -explicitly what constitutes ``truth''. The word ``return'' avoids -starting the sentence with lower-case ``t'', which is somewhat +should start with words such as ``Return t if,'' to indicate +explicitly what constitutes ``truth.'' The word ``return'' avoids +starting the sentence with lower-case ``t,'' which could be somewhat distracting. @item @@ -736,7 +736,7 @@ @item Never change the case of a Lisp symbol when you mention it in a doc -string. If the symbol's name is @code{foo}, write ``foo'', not +string. If the symbol's name is @code{foo}, write ``foo,'' not ``Foo'' (which is a different symbol). This might appear to contradict the policy of writing function
--- a/lispref/variables.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/variables.texi Sat Jul 29 09:59:12 2006 +0000 @@ -726,7 +726,7 @@ @end group @group -;; @r{Here the value of @code{abracadabra},} +;; @r{Here, the value of @code{abracadabra},} ;; @r{which is @code{foo},} ;; @r{is the symbol whose value is examined.} (let ((abracadabra 'foo)) @@ -858,105 +858,6 @@ @end quotation @end defun - One other function for setting a variable is designed to add -an element to a list if it is not already present in the list. - -@defun add-to-list symbol element &optional append -This function sets the variable @var{symbol} by consing @var{element} -onto the old value, if @var{element} is not already a member of that -value. It returns the resulting list, whether updated or not. The -value of @var{symbol} had better be a list already before the call. -Membership is tested using @code{equal}. - -Normally, if @var{element} is added, it is added to the front of -@var{symbol}, but if the optional argument @var{append} is -non-@code{nil}, it is added at the end. - -The argument @var{symbol} is not implicitly quoted; @code{add-to-list} -is an ordinary function, like @code{set} and unlike @code{setq}. Quote -the argument yourself if that is what you want. -@end defun - -Here's a scenario showing how to use @code{add-to-list}: - -@example -(setq foo '(a b)) - @result{} (a b) - -(add-to-list 'foo 'c) ;; @r{Add @code{c}.} - @result{} (c a b) - -(add-to-list 'foo 'b) ;; @r{No effect.} - @result{} (c a b) - -foo ;; @r{@code{foo} was changed.} - @result{} (c a b) -@end example - - An equivalent expression for @code{(add-to-list '@var{var} -@var{value})} is this: - -@example -(or (member @var{value} @var{var}) - (setq @var{var} (cons @var{value} @var{var}))) -@end example - -@defun add-to-ordered-list symbol element &optional order -This function sets the variable @var{symbol} by inserting -@var{element} into the old value, which must be a list, at the -position specified by @var{order}. If @var{element} is already a -member of the list, its position in the list is adjusted according -to @var{order}. Membership is tested using @code{eq}. -This function returns the resulting list, whether updated or not. - -The @var{order} is typically a number (integer or float), and the -elements of the list are sorted in non-decreasing numerical order. - -@var{order} may also be omitted or @code{nil}. Then the numeric order -of @var{element} stays unchanged if it already has one; otherwise, -@var{element} has no numeric order. Elements without a numeric list -order are placed at the end of the list, in no particular order. - -Any other value for @var{order} removes the numeric order of @var{element} -if it already has one; otherwise, it is equivalent to @code{nil}. - -The argument @var{symbol} is not implicitly quoted; -@code{add-to-ordered-list} is an ordinary function, like @code{set} -and unlike @code{setq}. Quote the argument yourself if that is what -you want. - -The ordering information is stored in a hash table on @var{symbol}'s -@code{list-order} property. -@end defun - -Here's a scenario showing how to use @code{add-to-ordered-list}: - -@example -(setq foo '()) - @result{} nil - -(add-to-ordered-list 'foo 'a 1) ;; @r{Add @code{a}.} - @result{} (a) - -(add-to-ordered-list 'foo 'c 3) ;; @r{Add @code{c}.} - @result{} (a c) - -(add-to-ordered-list 'foo 'b 2) ;; @r{Add @code{b}.} - @result{} (a b c) - -(add-to-ordered-list 'foo 'b 4) ;; @r{Move @code{b}.} - @result{} (a c b) - -(add-to-ordered-list 'foo 'd) ;; @r{Append @code{d}.} - @result{} (a c b d) - -(add-to-ordered-list 'foo 'e) ;; @r{Add @code{e}}. - @result{} (a c b e d) - -foo ;; @r{@code{foo} was changed.} - @result{} (a c b e d) -@end example - @node Variable Scoping @section Scoping Rules for Variable Bindings @@ -1096,7 +997,7 @@ @end example @cindex closures not available - Some Lisp dialects have ``closures'', objects that are like functions + Some Lisp dialects have ``closures,'' objects that are like functions but record additional variable bindings. Emacs Lisp does not have closures. @@ -1459,7 +1360,7 @@ @defun kill-all-local-variables This function eliminates all the buffer-local variable bindings of the -current buffer except for variables marked as ``permanent''. As a +current buffer except for variables marked as ``permanent.'' As a result, the buffer will see the default values of most variables. This function also resets certain other information pertaining to the @@ -1744,10 +1645,12 @@ @node File Local Variables @section File Local Variables - This section describes the functions and variables that affect -processing of file local variables. @xref{File variables, , -Local Variables in Files, emacs, The GNU Emacs Manual}, for basic -information about file local variables. + A file can specify local variable values; Emacs uses these to create +buffer-local bindings for those variables in the buffer visiting that +file. @xref{File variables, , Local Variables in Files, emacs, The +GNU Emacs Manual}, for basic information about file local variables. +This section describes the functions and variables that affect +processing of file local variables. @defopt enable-local-variables This variable controls whether to process file local variables. A
--- a/lispref/vol1.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/vol1.texi Sat Jul 29 09:59:12 2006 +0000 @@ -416,7 +416,7 @@ * Classifying Lists:: How to distinguish various sorts of list forms. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. -* Special Forms:: ``Special forms'' are idiosyncratic primitives, +* Special Forms:: "Special forms" are idiosyncratic primitives, most of them extremely important. * Autoloading:: Functions set up to load files containing their real definitions. @@ -709,7 +709,7 @@ is visited. * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. * Modification Time:: Determining whether the visited file was changed - ``behind Emacs's back''. + "behind Emacs's back". * Read Only Buffers:: Modifying text is not allowed in a read-only buffer. * The Buffer List:: How to look at all the existing buffers. @@ -788,8 +788,8 @@ * Information from Markers:: Finding the marker's buffer or character position. * Changing Markers:: Moving the marker to a new buffer or position. -* The Mark:: How ``the mark'' is implemented with a marker. -* The Region:: How to access ``the region''. +* The Mark:: How "the mark" is implemented with a marker. +* The Region:: How to access "the region". Text
--- a/lispref/vol2.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/vol2.texi Sat Jul 29 09:59:12 2006 +0000 @@ -417,7 +417,7 @@ * Classifying Lists:: How to distinguish various sorts of list forms. * Function Forms:: Forms that call functions. * Macro Forms:: Forms that call macros. -* Special Forms:: ``Special forms'' are idiosyncratic primitives, +* Special Forms:: "Special forms" are idiosyncratic primitives, most of them extremely important. * Autoloading:: Functions set up to load files containing their real definitions. @@ -710,7 +710,7 @@ is visited. * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. * Modification Time:: Determining whether the visited file was changed - ``behind Emacs's back''. + "behind Emacs's back". * Read Only Buffers:: Modifying text is not allowed in a read-only buffer. * The Buffer List:: How to look at all the existing buffers. @@ -789,8 +789,8 @@ * Information from Markers:: Finding the marker's buffer or character position. * Changing Markers:: Moving the marker to a new buffer or position. -* The Mark:: How ``the mark'' is implemented with a marker. -* The Region:: How to access ``the region''. +* The Mark:: How "the mark" is implemented with a marker. +* The Region:: How to access "the region". Text
--- a/lispref/windows.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/lispref/windows.texi Sat Jul 29 09:59:12 2006 +0000 @@ -1474,7 +1474,7 @@ @code{scroll-other-window} attempts to scroll the minibuffer. If the minibuffer contains just one line, it has nowhere to scroll to, so the line reappears after the echo area momentarily displays the message -``Beginning of buffer''. +@samp{Beginning of buffer}. @end deffn @c Emacs 19 feature @@ -1676,8 +1676,8 @@ disappear off to the left depends on their width, and could vary from line to line. - Because we read from side to side in the ``inner loop'', and from top -to bottom in the ``outer loop'', the effect of horizontal scrolling is + Because we read from side to side in the ``inner loop,'' and from top +to bottom in the ``outer loop,'' the effect of horizontal scrolling is not like that of textual or vertical scrolling. Textual scrolling involves selection of a portion of text to display, and vertical scrolling moves the window contents contiguously; but horizontal
--- a/mac/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/mac/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,8 @@ +2006-07-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * makefile.MPW (dired.c.x, editfns.c.x, fileio.c.x): Depend on + blockinput.h. + 2006-07-12 Kim F. Storm <storm@cua.dk> * INSTALL: More cleanup related to last change.
--- a/mac/makefile.MPW Fri Jul 14 05:56:32 2006 +0000 +++ b/mac/makefile.MPW Sat Jul 29 09:59:12 2006 +0000 @@ -373,7 +373,8 @@ "{Src}charset.h" ¶ "{Src}coding.h" ¶ "{Src}ccl.h" ¶ - "{Src}regex.h" + "{Src}regex.h" ¶ + "{Src}blockinput.h" {Src}dispnew.c.x Ä ¶ {CONFIG_H_GROUP} ¶ @@ -425,7 +426,8 @@ "{Src}ccl.h" ¶ {WINDOW_H_GROUP} ¶ "{Src}systime.h" ¶ - "{Includes}sys:time.h" + "{Includes}sys:time.h" ¶ + "{Src}blockinput.h" {Src}emacs.c.x Ä ¶ {CONFIG_H_GROUP} ¶ @@ -468,7 +470,8 @@ {WINDOW_H_GROUP} ¶ "{Src}systime.h" ¶ "{Includes}sys:time.h" ¶ - "{Src}commands.h" + "{Src}commands.h" ¶ + "{Src}blockinput.h" {Src}filemode.c.x Ä ¶ {CONFIG_H_GROUP} ¶
--- a/man/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/man/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,45 @@ +2006-07-27 Richard Stallman <rms@gnu.org> + + * search.texi (Non-ASCII Isearch): Clarify. Mention C-q. + +2006-07-24 Richard Stallman <rms@gnu.org> + + * xresources.texi (GTK styles): Fix texinfo usage. + + * pgg.texi, org.texi, info.texi, forms.texi, flymake.texi: + * faq.texi: Move periods and commas inside quotes. + + * commands.texi (User Input): Explain why we teach keyboard cmds. + + * xresources.texi, xresmini.texi, search.texi, programs.texi: + * misc.texi, kmacro.texi, killing.texi, glossary.texi: + * fortran-xtra.texi, files.texi, emacs.texi, emacs-xtra.texi: + * doclicense.texi, display.texi, dired.texi, basic.texi: + * anti.texi, ack.texi: Move periods and commas inside quotes. + +2006-07-22 Eli Zaretskii <eliz@gnu.org> + + * cmdargs.texi (General Variables): Document EMAIL. + +2006-07-21 Eli Zaretskii <eliz@gnu.org> + + * frames.texi (Frame Commands): Mention that focus-follows-mouse + doesn't have effect on MS-Windows. + +2006-07-20 Jay Belanger <belanger@truman.edu> + + * calc.texi (Error forms): Mention M-+ keybinding for + `calc-plus-minus'. + +2006-07-18 Chong Yidong <cyd@stupidchicken.com> + + * faq.texi (Security risks with Emacs): Document Emacs 22 + file-local-variable mechanism. + +2006-07-17 Richard Stallman <rms@gnu.org> + + * building.texi (Grep Searching): Explain about chaining grep commands. + 2006-07-12 Michael Olson <mwolson@gnu.org> * erc.texi: Update for ERC 5.1.3.
--- a/man/ack.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/ack.texi Sat Jul 29 09:59:12 2006 +0000 @@ -1242,7 +1242,7 @@ @item Jean-Philippe Theberge wrote @file{thumbs.el}, a package for viewing -image files as ``thumbnails''. +image files as ``thumbnails.'' @item Jens T.@: Berger Thielemann wrote @file{word-help.el}, which is
--- a/man/anti.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/anti.texi Sat Jul 29 09:59:12 2006 +0000 @@ -232,7 +232,7 @@ @item The input methods for Emacs are included in a separate distribution -called ``Leim''. To use this, you must extract the Leim tar file on +called ``Leim.'' To use this, you must extract the Leim tar file on top of the Emacs distribution, into the same directory, before you build Emacs.
--- a/man/basic.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/basic.texi Sat Jul 29 09:59:12 2006 +0000 @@ -736,7 +736,7 @@ @kbd{C-u}; for example, @kbd{C-u 6 4 C-u 1} does insert 64 copies of the character @samp{1}. - We use the term ``prefix argument'' as well as ``numeric argument'', + We use the term ``prefix argument'' as well as ``numeric argument,'' to emphasize that you type these argument before the command, and to distinguish them from minibuffer arguments that come after the command.
--- a/man/building.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/building.texi Sat Jul 29 09:59:12 2006 +0000 @@ -359,9 +359,17 @@ would give @code{grep} when running it normally: a @code{grep}-style regexp (usually in single-quotes to quote the shell's special characters) followed by file names, which may use wildcards. If you -specify a prefix argument for @kbd{M-x grep}, it detects the tag -(@pxref{Tags}) around point, and puts that into the default -@code{grep} command. +specify a prefix argument for @kbd{M-x grep}, it finds the tag +(@pxref{Tags}) in the buffer around point, and puts that into the +default @code{grep} command. + + Your command need not simply run @code{grep}; you can use any shell +command that produces output in the same format. For instance, you +can chain @code{grep} commands, like this: + +@example +grep -nH -e foo *.el | grep bar | grep toto +@end example The output from @code{grep} goes in the @samp{*grep*} buffer. You can find the corresponding lines in the original files using @w{@kbd{C-x
--- a/man/calc.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/calc.texi Sat Jul 29 09:59:12 2006 +0000 @@ -11635,7 +11635,7 @@ To enter an error form during regular numeric entry, use the @kbd{p} (``plus-or-minus'') key to type the @samp{+/-} symbol. (If you try actually typing @samp{+/-} the @kbd{+} key will be interpreted as the Calculator's -@kbd{+} command!) Within an algebraic formula, you can press @kbd{M-p} to +@kbd{+} command!) Within an algebraic formula, you can press @kbd{M-+} to type the @samp{+/-} symbol, or type it out by hand. Error forms and complex numbers can be mixed; the formulas shown above
--- a/man/cmdargs.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/cmdargs.texi Sat Jul 29 09:59:12 2006 +0000 @@ -470,6 +470,11 @@ @item EMACSPATH A colon-separated list of directories to search for executable files---used to initialize @code{exec-path}. +@item EMAIL +@vindex user-mail-address@r{, initialization} +Your email address; used to initialize the Lisp variable +@code{user-mail-address}, which the Emacs mail interface puts into +the @samp{From} header of outgoing messages (@pxref{Mail Headers}). @item ESHELL Used for shell-mode to override the @env{SHELL} environment variable. @item HISTFILE
--- a/man/commands.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/commands.texi Sat Jul 29 09:59:12 2006 +0000 @@ -25,9 +25,18 @@ @cindex Control @cindex control characters - GNU Emacs uses an extension of the @acronym{ASCII} character set for keyboard -input; it also accepts non-character input events including function -keys and mouse button actions. + GNU Emacs is designed for use with keyboard commands because that is +the most efficient way to edit. You can do editing with the mouse, as +in other editors, and you can give commands with the menu bar and tool +bar, and scroll with the scroll bar. But if you keep on editing that +way, you won't get the benefits of Emacs. Therefore, this manual +documents primarily how to edit with the keyboard. You can force +yourself to practice using the keyboard by using the shell command +@samp{emacs -nw} to start Emacs, so that the mouse won't work. + + Emacs uses an extension of the @acronym{ASCII} character set for +keyboard input; it also accepts non-character input events including +function keys and mouse button actions. @acronym{ASCII} consists of 128 character codes. Some of these codes are assigned graphic symbols such as @samp{a} and @samp{=}; the rest are
--- a/man/dired.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/dired.texi Sat Jul 29 09:59:12 2006 +0000 @@ -1141,7 +1141,7 @@ @findex wdired-change-to-wdired-mode Wdired is a special mode that allows you to perform file operations by editing the Dired buffer directly (the ``W'' in ``Wdired'' stands -for ``writable''.) To enter Wdired mode, type @kbd{M-x +for ``writable.'') To enter Wdired mode, type @kbd{M-x wdired-change-to-wdired-mode} while in a Dired buffer. Alternatively, use @samp{Edit File Names} in the @samp{Immediate} menu bar menu. @@ -1205,7 +1205,7 @@ The default comparison method (used if you type @key{RET} at the prompt) is to compare just the file names---each file name that does -not appear in the other directory is ``different''. You can specify +not appear in the other directory is ``different.'' You can specify more stringent comparisons by entering a Lisp expression, which can refer to the variables @code{size1} and @code{size2}, the respective file sizes; @code{mtime1} and @code{mtime2}, the last modification @@ -1213,7 +1213,7 @@ @code{fa2}, the respective file attribute lists (as returned by the function @code{file-attributes}). This expression is evaluated for each pair of like-named files, and if the expression's value is -non-@code{nil}, those files are considered ``different''. +non-@code{nil}, those files are considered ``different.'' For instance, the sequence @code{M-x dired-compare-directories @key{RET} (> mtime1 mtime2) @key{RET}} marks files newer in this
--- a/man/display.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/display.texi Sat Jul 29 09:59:12 2006 +0000 @@ -402,7 +402,7 @@ when @code{show-trailing-whitespace} is non-@code{nil}; see @ref{Useless Whitespace}. @item nobreak-space -The face for displaying the character ``nobreak space''. +The face for displaying the character ``nobreak space.'' @item escape-glyph The face for highlighting the @samp{\} or @samp{^} that indicates a control character. It's also used when @samp{\} indicates a @@ -1062,7 +1062,7 @@ @vindex cursor-in-non-selected-windows Normally, the cursor appears in non-selected windows in the ``off'' state, with the same appearance as when the blinking cursor blinks -``off''. For a box cursor, this is a hollow box; for a bar cursor, +``off.'' For a box cursor, this is a hollow box; for a bar cursor, this is a thinner bar. To turn off cursors in non-selected windows, customize the variable @code{cursor-in-non-selected-windows} and assign it a @code{nil} value.
--- a/man/doclicense.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/doclicense.texi Sat Jul 29 09:59:12 2006 +0000 @@ -23,7 +23,7 @@ to get credit for their work, while not being considered responsible for modifications made by others. -This License is a kind of ``copyleft'', which means that derivative +This License is a kind of ``copyleft,'' which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. @@ -44,9 +44,9 @@ contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that -work under the conditions stated herein. The ``Document'', below, +work under the conditions stated herein. The ``Document,'' below, refers to any such manual or work. Any member of the public is a -licensee, and is addressed as ``you''. You accept the license if you +licensee, and is addressed as ``you.'' You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. @@ -113,8 +113,8 @@ A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a -specific section name mentioned below, such as ``Acknowledgements'', -``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' +specific section name mentioned below, such as ``Acknowledgements,'' +``Dedications,'' ``Endorsements,'' or ``History.'') To ``Preserve the Title'' of such a section when you modify the Document means that it remains a section ``Entitled XYZ'' according to this definition. @@ -210,7 +210,7 @@ G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.@* H. Include an unaltered copy of this License.@* -I. Preserve the section Entitled ``History'', Preserve its Title, and add +I. Preserve the section Entitled ``History,'' Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled ``History'' in the Document, create one @@ -224,7 +224,7 @@ You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.@* -K. For any section Entitled ``Acknowledgements'' or ``Dedications'', +K. For any section Entitled ``Acknowledgements'' or ``Dedications,'' Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.@* @@ -244,7 +244,7 @@ list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. -You may add a section Entitled ``Endorsements'', provided it contains +You may add a section Entitled ``Endorsements,'' provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a @@ -285,7 +285,7 @@ In the combination, you must combine any sections Entitled ``History'' in the various original documents, forming one section Entitled -``History''; likewise combine any sections Entitled ``Acknowledgements'', +``History''; likewise combine any sections Entitled ``Acknowledgements,'' and any sections Entitled ``Dedications.'' You must delete all sections Entitled ``Endorsements.'' @sp 1 @@ -339,8 +339,8 @@ the translation and the original version of this License or a notice or disclaimer, the original version will prevail. -If a section in the Document is Entitled ``Acknowledgements'', -``Dedications'', or ``History'', the requirement (section 4) to Preserve +If a section in the Document is Entitled ``Acknowledgements,'' +``Dedications,'' or ``History,'' the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. @sp 1 @@ -389,7 +389,7 @@ or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU -Free Documentation License''. +Free Documentation License.'' @end group @end smallexample
--- a/man/emacs-xtra.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/emacs-xtra.texi Sat Jul 29 09:59:12 2006 +0000 @@ -17,7 +17,7 @@ under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU -Manual'', and with the Back-Cover Texts as in (a) below. A copy of the +Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License'' in the Emacs manual.
--- a/man/emacs.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/emacs.texi Sat Jul 29 09:59:12 2006 +0000 @@ -19,8 +19,8 @@ Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the -Invariant Sections being ``The GNU Manifesto'', ``Distribution'' and -``GNU GENERAL PUBLIC LICENSE'', with the Front-Cover texts being ``A GNU +Invariant Sections being ``The GNU Manifesto,'' ``Distribution'' and +``GNU GENERAL PUBLIC LICENSE,'' with the Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License.''
--- a/man/faq.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/faq.texi Sat Jul 29 09:59:12 2006 +0000 @@ -2481,7 +2481,7 @@ More detailed information---and more examples of how to create and modify menu options---are in the @cite{Emacs Lisp Reference Manual}, under -``Menu Keymaps''. (@xref{Emacs Lisp documentation}, for information on +``Menu Keymaps.'' (@xref{Emacs Lisp documentation}, for information on this manual.) @node Deleting menus and menu options, Turning on syntax highlighting, Modifying pull-down menus, Common requests @@ -3125,14 +3125,12 @@ Obviously, there is a potential for Trojan horses to exploit this feature. -Emacs 18 allowed this feature by default; users could disable it by -setting the variable @code{inhibit-local-variables} to a non-@code{nil} value. - -As of Emacs 19, Emacs has a list of local variables that create a -security risk. If a file tries to set one of them, it asks the user to -confirm whether the variables should be set. You can also tell Emacs -whether to allow the evaluation of Emacs Lisp code found at the bottom -of files by setting the variable @code{enable-local-eval}. +As of Emacs 22, Emacs has a list of local variables that are known to +be safe to set. If a file tries to set any variable outside this +list, it asks the user to confirm whether the variables should be set. +You can also tell Emacs whether to allow the evaluation of Emacs Lisp +code found at the bottom of files by setting the variable +@code{enable-local-eval}. For more information, @inforef{File Variables, File Variables, emacs}. @@ -3397,7 +3395,7 @@ ``OpenWindows Programmers'' optional software category from the CD-ROM. On HP-UX 8.0, you may need to run @code{update} again to load the -X11-PRG ``fileset''. This may be missing even if you specified ``all +X11-PRG ``fileset.'' This may be missing even if you specified ``all filesets'' the first time. If @file{libcurses.a} is missing, you may need to load the ``Berkeley Development Option.''
--- a/man/files.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/files.texi Sat Jul 29 09:59:12 2006 +0000 @@ -2334,7 +2334,7 @@ One general feature of Diff mode is that manual edits to the patch automatically correct line numbers, including those in the hunk header, so that you can actually apply the edited patch. Diff mode -treats each hunk location as an ``error message'', so that you can use +treats each hunk location as an ``error message,'' so that you can use commands such as @kbd{C-x '} to visit the corresponding source locations. It also provides the following commands to navigate, manipulate and apply parts of patches:
--- a/man/flymake.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/flymake.texi Sat Jul 29 09:59:12 2006 +0000 @@ -17,7 +17,7 @@ Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', +Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License'' in the Emacs manual.
--- a/man/forms.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/forms.texi Sat Jul 29 09:59:12 2006 +0000 @@ -26,7 +26,7 @@ under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU -Manual'', and with the Back-Cover Texts as in (a) below. A copy of the +Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License'' in the Emacs manual.
--- a/man/fortran-xtra.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/fortran-xtra.texi Sat Jul 29 09:59:12 2006 +0000 @@ -179,7 +179,7 @@ @code{fortran-continuation-string} specifies what character to put in column 5. A line that starts with a tab character followed by any digit except @samp{0} is also a continuation line. We call this style of -continuation @dfn{tab format}. (Fortran90 introduced ``free format'', +continuation @dfn{tab format}. (Fortran90 introduced ``free format,'' with another style of continuation lines). @vindex indent-tabs-mode @r{(Fortran mode)}
--- a/man/frames.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/frames.texi Sat Jul 29 09:59:12 2006 +0000 @@ -547,12 +547,18 @@ how the system (or the window manager) generally handles focus-switching between windows. There are two possibilities: either simply moving the mouse onto a window selects it (gives it focus), or -you have to click on it in a suitable way to do so. Unfortunately -there is no way Emacs can find out automatically which way the system -handles this, so you have to explicitly say, by setting the variable -@code{focus-follows-mouse}. If just moving the mouse onto a window -selects it, that variable should be @code{t}; if a click is necessary, -the variable should be @code{nil}. +you have to click on it in a suitable way to do so. On X, this focus +policy also affects whether the focus is given to a frame that Emacs +raises. Unfortunately there is no way Emacs can find out +automatically which way the system handles this, so you have to +explicitly say, by setting the variable @code{focus-follows-mouse}. +If just moving the mouse onto a window selects it, that variable +should be @code{t}; if a click is necessary, the variable should be +@code{nil}. + +The window manager that is part of MS-Windows always gives focus to a +frame that raises, so this variable has no effect in the native +MS-Windows build of Emacs. @node Speedbar @section Speedbar Frames
--- a/man/glossary.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/glossary.texi Sat Jul 29 09:59:12 2006 +0000 @@ -665,7 +665,7 @@ @item Keyboard Shortcut A keyboard shortcut is a key sequence (q.v.@:) which invokes a command. What some programs call ``assigning a keyboard shortcut,'' -Emacs calls ``binding a key sequence''. See `binding.' +Emacs calls ``binding a key sequence.'' See `binding.' @item Key Sequence A key sequence (key, for short) is a sequence of input events (q.v.@:)
--- a/man/info.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/info.texi Sat Jul 29 09:59:12 2006 +0000 @@ -22,7 +22,7 @@ under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover texts being ``A GNU -Manual'', and with the Back-Cover Texts as in (a) below. A copy of the +Manual,'' and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled ``GNU Free Documentation License'' in the Emacs manual. @@ -687,7 +687,7 @@ change its appearance (usually, its background color will change), and the shape of the mouse pointer will change if your platform supports that. After a while, if you leave the mouse on that spot, a small -window will pop up, saying ``Mouse-2: go to that node'', or the same +window will pop up, saying ``Mouse-2: go to that node,'' or the same message may appear at the bottom of the screen. @kbd{Mouse-2} is the second button of your mouse counting from the @@ -1002,8 +1002,8 @@ if you are not sure how they are spelled in the index. For example, suppose you want to find something that is pertinent to commands which complete partial input (e.g., when you type @key{TAB}). If you want -to catch index entries that refer to ``complete'', ``completion'', and -``completing'', you could type @kbd{icomplet@key{RET}}. +to catch index entries that refer to ``complete,'' ``completion,'' and +``completing,'' you could type @kbd{icomplet@key{RET}}. Info documents which describe programs should index the commands, options, and key sequences that the program provides. If you are @@ -1264,7 +1264,7 @@ what appears after the @samp{Node: } in that node's first line. For example, this node's name is @samp{Add}. A node in another file is named by @samp{(@var{filename})@var{node-within-file}}, as in -@samp{(info)Add} for this node. If the file name starts with ``./'', +@samp{(info)Add} for this node. If the file name starts with @samp{./}, then it is relative to the current directory; otherwise, it is relative starting from the standard directory for Info files of your site. The name @samp{(@var{filename})Top} can be abbreviated to just @@ -1322,7 +1322,7 @@ the beginning of each item name which is the minimum acceptable abbreviation for it (a long menu is more than 5 or so entries). - The nodes listed in a node's menu are called its ``subnodes'', and it + The nodes listed in a node's menu are called its ``subnodes,'' and it is their ``superior''. They should each have an @samp{Up:} pointing at the superior. It is often useful to arrange all or most of the subnodes in a sequence of @samp{Next} and @samp{Previous} pointers so that @@ -1336,7 +1336,7 @@ files in that directory are not automatically listed in the Info Directory node. - Also, although the Info node graph is claimed to be a ``hierarchy'', + Also, although the Info node graph is claimed to be a ``hierarchy,'' in fact it can be @emph{any} directed graph. Shared structures and pointer cycles are perfectly possible, and can be used if they are appropriate to the meaning to be expressed. There is no need for all
--- a/man/killing.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/killing.texi Sat Jul 29 09:59:12 2006 +0000 @@ -293,7 +293,7 @@ (@code{yank-pop}). @item M-w Save region as last killed text without actually killing it -(@code{kill-ring-save}). Some systems call this ``copying''. +(@code{kill-ring-save}). Some systems call this ``copying.'' @item C-M-w Append next kill to last batch of killed text (@code{append-next-kill}). @end table
--- a/man/kmacro.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/kmacro.texi Sat Jul 29 09:59:12 2006 +0000 @@ -173,7 +173,7 @@ @node Keyboard Macro Ring @section The Keyboard Macro Ring - All defined keyboard macros are recorded in the ``keyboard macro ring'', + All defined keyboard macros are recorded in the ``keyboard macro ring,'' a list of sequences of keys. There is only one keyboard macro ring, shared by all buffers.
--- a/man/misc.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/misc.texi Sat Jul 29 09:59:12 2006 +0000 @@ -2377,7 +2377,7 @@ To enter Tumme, type @kbd{M-x tumme}. It prompts for a directory; specify one that has images files. This creates thumbnails for all the images in that directory, and displays them all in the ``thumbnail -buffer''. This takes a long time if the directory contains many image +buffer.'' This takes a long time if the directory contains many image files, and it asks for confirmation if the number of image files exceeds @code{tumme-show-all-from-dir-max-files}.
--- a/man/org.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/org.texi Sat Jul 29 09:59:12 2006 +0000 @@ -2160,7 +2160,7 @@ The second possibility is to use TODO keywords to indicate different types of action items. For example, you might want to indicate that -items are for ``work'' or ``home''. If you are into David Allen's +items are for ``work'' or ``home.'' If you are into David Allen's @emph{Getting Things DONE}, you might want to use todo types @samp{NEXTACTION}, @samp{WAITING}, @samp{MAYBE}. Or, when you work with several people on a single project, you might want to assign
--- a/man/pgg.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/pgg.texi Sat Jul 29 09:59:12 2006 +0000 @@ -17,7 +17,7 @@ any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU -Free Documentation License''. +Free Documentation License.'' @end quotation @end copying
--- a/man/programs.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/programs.texi Sat Jul 29 09:59:12 2006 +0000 @@ -1117,7 +1117,7 @@ for a file name. If you use @kbd{C-h S} in a major mode that does not support it, -it asks you to specify the ``symbol help mode''. You should enter +it asks you to specify the ``symbol help mode.'' You should enter a command such as @code{c-mode} that would select a major mode which @kbd{C-h S} does support.
--- a/man/search.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/search.texi Sat Jul 29 09:59:12 2006 +0000 @@ -208,15 +208,15 @@ @node Non-ASCII Isearch @subsection Isearch for Non-@acronym{ASCII} Characters - @cindex searching for non-@acronym{ASCII} characters @cindex input method, during incremental search To enter non-@acronym{ASCII} characters in an incremental search, -you must use an input method (@pxref{Input Methods}). If an input -method is enabled in the current buffer when you start the search, you -can use it while you type the search string also. Emacs indicates -that by including the input method mnemonic in its prompt, like this: +you can use @kbd{C-q} (see the previous section), but it is easier to +use an input method (@pxref{Input Methods}). If an input method is +enabled in the current buffer when you start the search, you can use +it in the search string also. Emacs indicates that by including the +input method mnemonic in its prompt, like this: @example I-search [@var{im}]: @@ -225,10 +225,11 @@ @noindent @findex isearch-toggle-input-method @findex isearch-toggle-specified-input-method -where @var{im} is the mnemonic of the active input method. You can -toggle (enable or disable) the input method while you type the search -string with @kbd{C-\} (@code{isearch-toggle-input-method}). You can -turn on a certain (non-default) input method with @kbd{C-^} +where @var{im} is the mnemonic of the active input method. + + You can toggle (enable or disable) the input method while you type +the search string with @kbd{C-\} (@code{isearch-toggle-input-method}). +You can turn on a certain (non-default) input method with @kbd{C-^} (@code{isearch-toggle-specified-input-method}), which prompts for the name of the input method. The input method you enable during incremental search remains enabled in the current buffer afterwards. @@ -1010,7 +1011,7 @@ @samp{\&} in @var{newstring} stands for the entire match being replaced. @samp{\@var{d}} in @var{newstring}, where @var{d} is a digit, stands for whatever matched the @var{d}th parenthesized -grouping in @var{regexp}. (This is called a ``back reference''.) +grouping in @var{regexp}. (This is called a ``back reference.'') @samp{\#} refers to the count of replacements already made in this command, as a decimal number. In the first replacement, @samp{\#} stands for @samp{0}; in the second, for @samp{1}; and so on. For
--- a/man/xresmini.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/xresmini.texi Sat Jul 29 09:59:12 2006 +0000 @@ -11,12 +11,12 @@ @xref{MS-Windows Registry}. Likewise, Emacs on MacOS Carbon emulates X resources using the Preferences system. @xref{Mac Environment Variables}. - When Emacs is built using an ``X toolkit'', such as Lucid or + When Emacs is built using an ``X toolkit,'' such as Lucid or LessTif, you need to use X resources to customize the appearance of the widgets, including the menu-bar, scroll-bar, and dialog boxes. This is because the libraries that implement these don't provide for customization through Emacs. GTK+ widgets use a separate system of -``GTK resources''. In this chapter we describe the most commonly used +``GTK resources.'' In this chapter we describe the most commonly used resource specifications. For full documentation, see the online manual.
--- a/man/xresources.texi Fri Jul 14 05:56:32 2006 +0000 +++ b/man/xresources.texi Sat Jul 29 09:59:12 2006 +0000 @@ -951,7 +951,7 @@ 0-65535 or floats in the range 0.0-1.0. Pango font names have the form ``@var{family-list} @var{style-options} -@var{size}''. +@var{size}.'' @cindex Pango font name @noindent @var{family-list} is a comma separated list of font families optionally @@ -964,7 +964,7 @@ @end smallexample @noindent -the family name is ``times''. +the family name is @samp{times}. @noindent @var{style-options} is a whitespace separated list of words where each word
--- a/nt/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/nt/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,7 @@ +2006-07-27 Jason Rumney <jasonr@gnu.org> + + * INSTALL: Add notes about Cygwin make to impatient section. + 2006-06-02 Eli Zaretskii <eliz@gnu.org> * INSTALL: Add Make 3.81 to the list of Make & shell combinations
--- a/nt/INSTALL Fri Jul 14 05:56:32 2006 +0000 +++ b/nt/INSTALL Sat Jul 29 09:59:12 2006 +0000 @@ -31,16 +31,19 @@ nmake For the development environments based on GNU GCC (MinGW, MSYS, - Cygwin), depending on how Make is called, it could be: + Cygwin - but see notes about Cygwin make below), depending on how + Make is called, it could be: make or + mingw32-make + or gnumake or gmake (If you are building from CVS, say "make bootstrap" or "nmake - bootstrap" instead.) + bootstrap" instead and avoid using Cygwin make.) 4. Generate the Info manuals (only if you are building out of CVS, and if you have makeinfo.exe installed):
--- a/src/ChangeLog Fri Jul 14 05:56:32 2006 +0000 +++ b/src/ChangeLog Sat Jul 29 09:59:12 2006 +0000 @@ -1,3 +1,227 @@ +2006-07-26 Chong Yidong <cyd@stupidchicken.com> + + * keyboard.c (read_char): New arg END_TIME specifying timeout. + All callers changed. Turn off echoing if END_TIME is non-NULL. + (kbd_buffer_get_event): New arg END_TIME. + + * lread.c (read_filtered_event): New arg SECONDS to wait until. + (Fread_char, Fread_event, Fread_char_exclusive): New arg SECONDS. + + * lisp.h: Update read-char, read-event, and read_filtered_event + prototypes. + + * keyboard.h: Include systime.h. Update read_char prototype. + +2006-07-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * alloc.c (find_string_data_in_pure): New function. + (make_pure_string): Use it to reuse existing string data if possible. + + * puresize.h (BASE_PURESIZE): Decrease to 1102000. + +2006-07-22 Stefan Monnier <monnier@iro.umontreal.ca> + + * keymap.c (Fdefine_key): If the key binding definition looks like an + XEmacs-style key sequence, convert it to Emacs's format. + +2006-07-22 Ralf Angeli <angeli@caeruleus.net> + + * w32fns.c (w32_createwindow): If `left' and/or `top' frame + parameters are bound to some values, use that instead of + CW_USEDEFAULT. + +2006-07-21 Eli Zaretskii <eliz@gnu.org> + + * w32.c (convert_time): Use explicit long double constants to + ensure long double arithmetics is used throughout. + +2006-07-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp): New vars. + (init_alloc_once): Initialize them. + (pure_alloc): Allocate non-Lisp objects from the end of pure storage + without alignment. + + * puresize.h (BASE_PURESIZE): Decrease to 1141000. + +2006-07-18 Francis Litterio <franl@world.std.com> + + * w32term.c (x_calc_absolute_position): Fix frame positioning + with negative X/Y coordinates. + +2006-07-18 Dan Nicolaescu <dann@ics.uci.edu> + + * xterm.c (x_connection_closed, x_error_quitter): Mark as NO_RETURN. + + * textprop.c (text_read_only): Likewise. + + * lread.c (end_of_file_error): Likewise. + + * lisp.h (circular_list_error, memory_full, buffer_memory_full): + Likewise. + + * eval.c (unwind_to_catch): Likewise. + + * buffer.h (buffer_slot_type_mismatch): Likewise. + +2006-07-18 Kim F. Storm <storm@cua.dk> + + Cleanup Fsignal calls that never returns; now only use it for Qquit. + + * eval.c (xsignal): New func. Like Fsignal, but marked no-return. + (xsignal0, xsignal1, xsignal2, xsignal3): New no-return functions. + (signal_error): New no-return function (from xfaces.c). + (Fthrow): Use xsignal2 instead of Fsignal + abort. + (error): Use xsignal1 instead of Fsignal + abort. + (FletX, Flet, grow_specpdl): Use signal_error. + (Feval, Ffuncall, funcall_lambda): Use xsignal1, xsignal2. + + * alloc.c (buffer_memory_full, memory_full): Use xsignal. Remove loop. + (list1): New function. + + * lisp.h (list1): Add EXFUN. + (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error): + Add prototypes. Mark them as no-return. + + * buffer.c (Fbuffer_local_value, Fbarf_if_buffer_read_only): + Use xsignal1. + + * callint.c (check_mark): Use xsignal0. + + * casefiddle.c (casify_object): wrong_type_argument is no-return. + + * cmds.c (Fforward_char, Fdelete_char): Use xsignal0. + + * coding.c (Fcheck_coding_system): Use xsignal1. Remove loop. + (Fdefine_coding_system_internal): Use xsignal1. + + * data.c (circular_list_error): Use xsignal. + (wrong_type_argument): Use xsignal2. Don't care about return value. + (args_out_of_range, args_out_of_range_3): Use xsignal2, xsignal3. + Remove loop around Fsignal. + (indirect_variable, Fsymbol_value, set_internal, Fdefault_value) + (indirect_function, Findirect_function, Fstring_to_number) + (Fmakunbound, Ffmakunbound, Fsymbol_function, Ffset): Use xsignal1. + (arith_driver, float_arith_driver, Frem, Fmod, arith_error): + Use xsignal0. + + * doc.c (Fdocumentation): Use xsignal1. + + * editfns.c (region_limit, Fget_internal_run_time): Use xsignal0. + + * fileio.c (report_file_error): Use xsignal. + (barf_or_query_if_file_exists, Fcopy_file, Fdelete_file) + (Finsert_file_contents): Use xsignal2. + (syms_of_fileio): Use list2, list3. + + * floatfns.c (arith_error, range_error, domain_error): Use xsignal2. + (range_error2, domain_error2): Use xsignal3. + (rounding_driver, fmod_float): Use xsignal0. + (float_error): Use xsignal1. + (matherr): Use xsignal. + + * fns.c (Flength): wrong_type_argument is no-return. + (hashfn_user_defined, Fmake_hash_table): Use signal_error. + (Fmd5): Use xsignal1. + + * frame.c (x_set_line_spacing, x_set_screen_gamma): Use signal_error. + + * keyboard.c (recursive_edit_1): Use xsignal1. + + * keymap.c (Fmap_keymap): Use xsignal1. + + * lread.c (Fload): Use xsignal2, signal_error. + (end_of_file_error): Use xsignal0, xsignal1. + (read0): Use xsignal1. + (invalid_syntax): New error function marked no-return. + (read_integer, read1, read_list): Use it. + + * macselect.c (x_get_local_selection): Use signal_error. + + * msdos.c (Fmsdos_set_mouse_buttons): Use xsignal2. + + * search.c (compile_pattern_1): Use xsignal1. + (signal_failure): Remove (was only called once). + (search_command): Use xsignal1 instead of signal_failure. + + * syntax.c (scan_lists): Use xsignal3. + + * textprop.c (text_read_only): Use xsignal0, xsignal1. + + * unexsol.c (unexec): Use xsignal. + + * window.c (window_scroll_pixel_based, window_scroll_line_based): + Use xsignal0. + + * xfaces.c (signal_error): Move to eval.c. + (resolve_face_name): Use xsignal1. + + * xfns.c (x_decode_color): Use signal_error. + + * xselect.c (x_get_local_selection, copy_multiple_data) + (x_get_window_property_as_lisp_data) + (lisp_data_to_selection_data, CHECK_CUT_BUFFER) + (Fx_get_cut_buffer_internal): Use signal_error. + +2006-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * macterm.c (XTread_socket): Undo previous change. + +2006-07-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * macterm.c (keycode_to_xkeysym): Remove function. All uses now + directly lookup keycode_to_xkeysym_table. + [USE_MAC_TSM] (mac_handle_text_input_event): Don't construct + ASCII_KEYSTROKE_EVENT for non-zero keycode_to_xkeysym_table entries. + (XTread_socket): Use character codes to construct keypad key events. + (mac_initialize_display_info) [MAC_OSX]: Use CGDisplaySamplesPerPixel. + (x_delete_display): Apply 2006-07-04 change for xterm.c. + +2006-07-17 Kim F. Storm <storm@cua.dk> + + * xdisp.c (handle_single_display_spec): Ensure the right value of + it->position is saved by push_it. + (pop_it): Restore it->object for GET_FROM_BUFFER and GET_FROM_STRING. + (reseat_1): Don't setup it->object twice. + (set_iterator_to_next): No need to set it->object after pop_it. + (move_it_to): Explicitly check to see if last move reached to_charpos. + +2006-07-17 Thien-Thi Nguyen <ttn@gnu.org> + + * xdisp.c (display_mode_line): Preserve match data. + +2006-07-14 Kim F. Storm <storm@cua.dk> + + * w32.c (pfn_WSACreateEvent, pfn_WSACloseEvent): New func ptrs. + (init_winsock): Load them. Use ws2_32.dll. + (sys_listen): Undo last change. Just set FILE_LISTEN flag. + (sys_accept): Undo last change. Instead, set child status to + STATUS_READ_ACKNOWLEDGED and reset char_avail event so next + sys_select will wakeup the reader thread. + (_sys_wait_accept): New function used by reader thread to wait for + an incoming connection on a server socket. + + * w32.h (_sys_read_ahead, _sys_wait_accept): Add prototypes. + + * w32proc.c (reader_thread): Use _sys_wait_accept to wait on a + server socket (FILE_LISTEN flag). + +2006-07-14 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * sound.c (alsa_init): Call snd_pcm_close after successful snd_pcm_open. + +2006-07-14 Kim F. Storm <storm@cua.dk> + + * w32.c: Fix high cpu load for server sockets. + (pfn_WSAEventSelect): New function ptr. + (init_winsock): Load it. + (sys_listen): Set FILE_LISTEN flag. Set event mask for socket's + char_avail event object to FD_ACCEPT. + (sys_accept): Check FILE_LISTEN flag. Set event mask on new + socket's char_avail event object to FD_READ|FD_CLOSE. + + * w32.h (FILE_LISTEN): New filedesc flag value. + 2006-07-13 Kim F. Storm <storm@cua.dk> * bytecode.c (Fbyte_code): Use CAR, CDR for Bcar, Bcdr.
--- a/src/alloc.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/alloc.c Sat Jul 29 09:59:12 2006 +0000 @@ -289,10 +289,18 @@ && ((PNTR_COMPARISON_TYPE) (P) \ >= (PNTR_COMPARISON_TYPE) purebeg)) -/* Index in pure at which next pure object will be allocated.. */ +/* Total number of bytes allocated in pure storage. */ EMACS_INT pure_bytes_used; +/* Index in pure at which next pure Lisp object will be allocated.. */ + +static EMACS_INT pure_bytes_used_lisp; + +/* Number of bytes allocated for non-Lisp objects in pure storage. */ + +static EMACS_INT pure_bytes_used_non_lisp; + /* If nonzero, this is a warning delivered by malloc and not yet displayed. */ @@ -561,8 +569,7 @@ /* This used to call error, but if we've run out of memory, we could get infinite recursion trying to build the string. */ - while (1) - Fsignal (Qnil, Vmemory_signal_data); + xsignal (Qnil, Vmemory_signal_data); } @@ -2779,7 +2786,14 @@ #endif } -/* Make a list of 2, 3, 4 or 5 specified objects. */ +/* Make a list of 1, 2, 3, 4 or 5 specified objects. */ + +Lisp_Object +list1 (arg1) + Lisp_Object arg1; +{ + return Fcons (arg1, Qnil); +} Lisp_Object list2 (arg1, arg2) @@ -3495,8 +3509,7 @@ /* This used to call error, but if we've run out of memory, we could get infinite recursion trying to build the string. */ - while (1) - Fsignal (Qnil, Vmemory_signal_data); + xsignal (Qnil, Vmemory_signal_data); } /* If we released our reserve (due to running out of memory), @@ -4689,10 +4702,7 @@ /* Allocate room for SIZE bytes from pure Lisp storage and return a pointer to it. TYPE is the Lisp type for which the memory is - allocated. TYPE < 0 means it's not used for a Lisp object. - - If store_pure_type_info is set and TYPE is >= 0, the type of - the allocated object is recorded in pure_types. */ + allocated. TYPE < 0 means it's not used for a Lisp object. */ static POINTER_TYPE * pure_alloc (size, type) @@ -4717,8 +4727,21 @@ #endif again: - result = ALIGN (purebeg + pure_bytes_used, alignment); - pure_bytes_used = ((char *)result - (char *)purebeg) + size; + if (type >= 0) + { + /* Allocate space for a Lisp object from the beginning of the free + space with taking account of alignment. */ + result = ALIGN (purebeg + pure_bytes_used_lisp, alignment); + pure_bytes_used_lisp = ((char *)result - (char *)purebeg) + size; + } + else + { + /* Allocate space for a non-Lisp object from the end of the free + space. */ + pure_bytes_used_non_lisp += size; + result = purebeg + pure_size - pure_bytes_used_non_lisp; + } + pure_bytes_used = pure_bytes_used_lisp + pure_bytes_used_non_lisp; if (pure_bytes_used <= pure_size) return result; @@ -4730,6 +4753,7 @@ pure_size = 10000; pure_bytes_used_before_overflow += pure_bytes_used - size; pure_bytes_used = 0; + pure_bytes_used_lisp = pure_bytes_used_non_lisp = 0; goto again; } @@ -4745,6 +4769,73 @@ } +/* Find the byte sequence {DATA[0], ..., DATA[NBYTES-1], '\0'} from + the non-Lisp data pool of the pure storage, and return its start + address. Return NULL if not found. */ + +static char * +find_string_data_in_pure (data, nbytes) + char *data; + int nbytes; +{ + int i, skip, bm_skip[256], last_char_skip, infinity, start, start_max; + unsigned char *p; + char *non_lisp_beg; + + if (pure_bytes_used_non_lisp < nbytes + 1) + return NULL; + + /* Set up the Boyer-Moore table. */ + skip = nbytes + 1; + for (i = 0; i < 256; i++) + bm_skip[i] = skip; + + p = (unsigned char *) data; + while (--skip > 0) + bm_skip[*p++] = skip; + + last_char_skip = bm_skip['\0']; + + non_lisp_beg = purebeg + pure_size - pure_bytes_used_non_lisp; + start_max = pure_bytes_used_non_lisp - (nbytes + 1); + + /* See the comments in the function `boyer_moore' (search.c) for the + use of `infinity'. */ + infinity = pure_bytes_used_non_lisp + 1; + bm_skip['\0'] = infinity; + + p = (unsigned char *) non_lisp_beg + nbytes; + start = 0; + do + { + /* Check the last character (== '\0'). */ + do + { + start += bm_skip[*(p + start)]; + } + while (start <= start_max); + + if (start < infinity) + /* Couldn't find the last character. */ + return NULL; + + /* No less than `infinity' means we could find the last + character at `p[start - infinity]'. */ + start -= infinity; + + /* Check the remaining characters. */ + if (memcmp (data, non_lisp_beg + start, nbytes) == 0) + /* Found. */ + return non_lisp_beg + start; + + start += last_char_skip; + } + while (start <= start_max); + + return NULL; +} + + /* Return a string allocated in pure space. DATA is a buffer holding NCHARS characters, and NBYTES bytes of string data. MULTIBYTE non-zero means make the result string multibyte. @@ -4763,11 +4854,15 @@ struct Lisp_String *s; s = (struct Lisp_String *) pure_alloc (sizeof *s, Lisp_String); - s->data = (unsigned char *) pure_alloc (nbytes + 1, -1); + s->data = find_string_data_in_pure (data, nbytes); + if (s->data == NULL) + { + s->data = (unsigned char *) pure_alloc (nbytes + 1, -1); + bcopy (data, s->data, nbytes); + s->data[nbytes] = '\0'; + } s->size = nchars; s->size_byte = multibyte ? nbytes : -1; - bcopy (data, s->data, nbytes); - s->data[nbytes] = '\0'; s->intervals = NULL_INTERVAL; XSETSTRING (string, s); return string; @@ -6225,6 +6320,7 @@ purebeg = PUREBEG; pure_size = PURESIZE; pure_bytes_used = 0; + pure_bytes_used_lisp = pure_bytes_used_non_lisp = 0; pure_bytes_used_before_overflow = 0; /* Initialize the list of free aligned blocks. */
--- a/src/buffer.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/buffer.c Sat Jul 29 09:59:12 2006 +0000 @@ -951,10 +951,10 @@ result = XCDR (result); } - if (EQ (result, Qunbound)) - return Fsignal (Qvoid_variable, Fcons (variable, Qnil)); - - return result; + if (!EQ (result, Qunbound)) + return result; + + xsignal1 (Qvoid_variable, variable); } /* Return an alist of the Lisp-level buffer-local bindings of @@ -1991,7 +1991,7 @@ { if (!NILP (current_buffer->read_only) && NILP (Vinhibit_read_only)) - Fsignal (Qbuffer_read_only, (Fcons (Fcurrent_buffer (), Qnil))); + xsignal1 (Qbuffer_read_only, Fcurrent_buffer ()); return Qnil; }
--- a/src/buffer.h Fri Jul 14 05:56:32 2006 +0000 +++ b/src/buffer.h Sat Jul 29 09:59:12 2006 +0000 @@ -833,7 +833,7 @@ extern void set_buffer_internal_1 P_ ((struct buffer *)); extern void set_buffer_temp P_ ((struct buffer *)); extern void record_buffer P_ ((Lisp_Object)); -extern void buffer_slot_type_mismatch P_ ((int)); +extern void buffer_slot_type_mismatch P_ ((int)) NO_RETURN; extern void fix_overlays_before P_ ((struct buffer *, EMACS_INT, EMACS_INT)); extern void mmap_set_vars P_ ((int));
--- a/src/callint.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/callint.c Sat Jul 29 09:59:12 2006 +0000 @@ -174,7 +174,7 @@ : "The mark is not set now"); if (!NILP (Vtransient_mark_mode) && NILP (Vmark_even_if_inactive) && NILP (current_buffer->mark_active)) - Fsignal (Qmark_inactive, Qnil); + xsignal0 (Qmark_inactive); } /* If the list of args INPUT was produced with an explicit call to @@ -563,7 +563,7 @@ break; case 'c': /* Character */ - args[i] = Fread_char (build_string (callint_message), Qnil); + args[i] = Fread_char (build_string (callint_message), Qnil, Qnil); message1_nolog ((char *) 0); /* Passing args[i] directly stimulates compiler bug */ teml = args[i]; @@ -635,7 +635,7 @@ /* Ignore first element, which is the base key. */ tem2 = Fmemq (intern ("down"), Fcdr (teml)); if (! NILP (tem2)) - up_event = Fread_event (Qnil, Qnil); + up_event = Fread_event (Qnil, Qnil, Qnil); } } break; @@ -663,7 +663,7 @@ /* Ignore first element, which is the base key. */ tem2 = Fmemq (intern ("down"), Fcdr (teml)); if (! NILP (tem2)) - up_event = Fread_event (Qnil, Qnil); + up_event = Fread_event (Qnil, Qnil, Qnil); } } break;
--- a/src/casefiddle.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/casefiddle.c Sat Jul 29 09:59:12 2006 +0000 @@ -111,7 +111,7 @@ return obj; } - return wrong_type_argument (Qchar_or_string_p, obj); + wrong_type_argument (Qchar_or_string_p, obj); } DEFUN ("upcase", Fupcase, Supcase, 1, 1, 0,
--- a/src/cmds.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/cmds.c Sat Jul 29 09:59:12 2006 +0000 @@ -77,12 +77,12 @@ if (new_point < BEGV) { SET_PT (BEGV); - Fsignal (Qbeginning_of_buffer, Qnil); + xsignal0 (Qbeginning_of_buffer); } if (new_point > ZV) { SET_PT (ZV); - Fsignal (Qend_of_buffer, Qnil); + xsignal0 (Qend_of_buffer); } SET_PT (new_point); @@ -245,14 +245,14 @@ if (XINT (n) < 0) { if (pos < BEGV) - Fsignal (Qbeginning_of_buffer, Qnil); + xsignal0 (Qbeginning_of_buffer); else del_range (pos, PT); } else { if (pos > ZV) - Fsignal (Qend_of_buffer, Qnil); + xsignal0 (Qend_of_buffer); else del_range (PT, pos); }
--- a/src/coding.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/coding.c Sat Jul 29 09:59:12 2006 +0000 @@ -6068,7 +6068,7 @@ /* As we are already in the work buffer, we must generate a new buffer for the work. */ Lisp_Object name; - + name = Fgenerate_new_buffer_name (Vcode_conversion_workbuf_name, Qnil); buffer = buffer_to_kill = Fget_buffer_create (name); buf = XBUFFER (buffer); @@ -6591,8 +6591,7 @@ } if (!NILP (Fcoding_system_p (coding_system))) return coding_system; - while (1) - Fsignal (Qcoding_system_error, Fcons (coding_system, Qnil)); + xsignal1 (Qcoding_system_error, coding_system); } Lisp_Object @@ -7631,11 +7630,13 @@ Lisp_Object safe_chars, slot; if (NILP (Fcheck_coding_system (coding_system))) - Fsignal (Qcoding_system_error, Fcons (coding_system, Qnil)); + xsignal1 (Qcoding_system_error, coding_system); + safe_chars = coding_safe_chars (coding_system); if (! EQ (safe_chars, Qt) && ! CHAR_TABLE_P (safe_chars)) error ("No valid safe-chars property for %s", SDATA (SYMBOL_NAME (coding_system))); + if (EQ (safe_chars, Qt)) { if (NILP (Fmemq (coding_system, XCAR (Vcoding_system_safe_chars))))
--- a/src/data.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/data.c Sat Jul 29 09:59:12 2006 +0000 @@ -106,7 +106,7 @@ circular_list_error (list) Lisp_Object list; { - Fsignal (Qcircular_list, list); + xsignal (Qcircular_list, list); } @@ -119,16 +119,7 @@ if ((unsigned int) XGCTYPE (value) >= Lisp_Type_Limit) abort (); - Fsignal (Qwrong_type_argument, list2 (predicate, value)); - - /* This function is marked as NO_RETURN, gcc would warn if it has a - return statement or if falls off the function. Other compilers - warn if no return statement is present. */ -#ifndef __GNUC__ - return value; -#else - abort (); -#endif + xsignal2 (Qwrong_type_argument, predicate, value); } void @@ -141,16 +132,14 @@ args_out_of_range (a1, a2) Lisp_Object a1, a2; { - while (1) - Fsignal (Qargs_out_of_range, Fcons (a1, Fcons (a2, Qnil))); + xsignal2 (Qargs_out_of_range, a1, a2); } void args_out_of_range_3 (a1, a2, a3) Lisp_Object a1, a2, a3; { - while (1) - Fsignal (Qargs_out_of_range, Fcons (a1, Fcons (a2, Fcons (a3, Qnil)))); + xsignal3 (Qargs_out_of_range, a1, a2, a3); } /* On some machines, XINT needs a temporary location. @@ -619,7 +608,7 @@ { CHECK_SYMBOL (symbol); if (XSYMBOL (symbol)->constant) - return Fsignal (Qsetting_constant, Fcons (symbol, Qnil)); + xsignal1 (Qsetting_constant, symbol); Fset (symbol, Qunbound); return symbol; } @@ -632,7 +621,7 @@ { CHECK_SYMBOL (symbol); if (NILP (symbol) || EQ (symbol, Qt)) - return Fsignal (Qsetting_constant, Fcons (symbol, Qnil)); + xsignal1 (Qsetting_constant, symbol); XSYMBOL (symbol)->function = Qunbound; return symbol; } @@ -643,9 +632,9 @@ register Lisp_Object symbol; { CHECK_SYMBOL (symbol); - if (EQ (XSYMBOL (symbol)->function, Qunbound)) - return Fsignal (Qvoid_function, Fcons (symbol, Qnil)); - return XSYMBOL (symbol)->function; + if (!EQ (XSYMBOL (symbol)->function, Qunbound)) + return XSYMBOL (symbol)->function; + xsignal1 (Qvoid_function, symbol); } DEFUN ("symbol-plist", Fsymbol_plist, Ssymbol_plist, 1, 1, 0, @@ -676,7 +665,7 @@ { CHECK_SYMBOL (symbol); if (NILP (symbol) || EQ (symbol, Qt)) - return Fsignal (Qsetting_constant, Fcons (symbol, Qnil)); + xsignal1 (Qsetting_constant, symbol); if (!NILP (Vautoload_queue) && !EQ (XSYMBOL (symbol)->function, Qunbound)) Vautoload_queue = Fcons (Fcons (symbol, XSYMBOL (symbol)->function), Vautoload_queue); @@ -818,7 +807,7 @@ tortoise = XSYMBOL (tortoise)->value; if (EQ (hare, tortoise)) - Fsignal (Qcyclic_variable_indirection, Fcons (symbol, Qnil)); + xsignal1 (Qcyclic_variable_indirection, symbol); } return hare; @@ -1130,10 +1119,10 @@ Lisp_Object val; val = find_symbol_value (symbol); - if (EQ (val, Qunbound)) - return Fsignal (Qvoid_variable, Fcons (symbol, Qnil)); - else + if (!EQ (val, Qunbound)) return val; + + xsignal1 (Qvoid_variable, symbol); } DEFUN ("set", Fset, Sset, 2, 2, 0, @@ -1197,7 +1186,7 @@ if (SYMBOL_CONSTANT_P (symbol) && (NILP (Fkeywordp (symbol)) || !EQ (newval, SYMBOL_VALUE (symbol)))) - return Fsignal (Qsetting_constant, Fcons (symbol, Qnil)); + xsignal1 (Qsetting_constant, symbol); innercontents = valcontents = SYMBOL_VALUE (symbol); @@ -1391,9 +1380,10 @@ register Lisp_Object value; value = default_value (symbol); - if (EQ (value, Qunbound)) - return Fsignal (Qvoid_variable, Fcons (symbol, Qnil)); - return value; + if (!EQ (value, Qunbound)) + return value; + + xsignal1 (Qvoid_variable, symbol); } DEFUN ("set-default", Fset_default, Sset_default, 2, 2, 0, @@ -1950,7 +1940,7 @@ tortoise = XSYMBOL (tortoise)->function; if (EQ (hare, tortoise)) - Fsignal (Qcyclic_function_indirection, Fcons (object, Qnil)); + xsignal1 (Qcyclic_function_indirection, object); } return hare; @@ -1979,7 +1969,7 @@ return result; if (NILP (noerror)) - Fsignal (Qvoid_function, Fcons (object, Qnil)); + xsignal1 (Qvoid_function, object); return Qnil; } @@ -2519,7 +2509,7 @@ CHECK_NUMBER (base); b = XINT (base); if (b < 2 || b > 16) - Fsignal (Qargs_out_of_range, Fcons (base, Qnil)); + xsignal1 (Qargs_out_of_range, base); } /* Skip any whitespace at the front of the number. Some versions of @@ -2631,7 +2621,7 @@ else { if (next == 0) - Fsignal (Qarith_error, Qnil); + xsignal0 (Qarith_error); accum /= next; } break; @@ -2704,7 +2694,7 @@ else { if (! IEEE_FLOATING_POINT && next == 0) - Fsignal (Qarith_error, Qnil); + xsignal0 (Qarith_error); accum /= next; } break; @@ -2786,7 +2776,7 @@ CHECK_NUMBER_COERCE_MARKER (y); if (XFASTINT (y) == 0) - Fsignal (Qarith_error, Qnil); + xsignal0 (Qarith_error); XSETINT (val, XINT (x) % XINT (y)); return val; @@ -2835,7 +2825,7 @@ i2 = XINT (y); if (i2 == 0) - Fsignal (Qarith_error, Qnil); + xsignal0 (Qarith_error); i1 %= i2; @@ -3443,7 +3433,7 @@ #endif /* not BSD4_1 */ SIGNAL_THREAD_CHECK (signo); - Fsignal (Qarith_error, Qnil); + xsignal0 (Qarith_error); } void
--- a/src/dispnew.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/dispnew.c Sat Jul 29 09:59:12 2006 +0000 @@ -6866,9 +6866,15 @@ For types defined in VMS, use set term /device=TYPE.\n\ For types not defined in VMS, use define emacs_term \"TYPE\".\n\ \(The quotation marks are necessary since terminal types are lower case.)\n"); -#else - fprintf (stderr, "Please set the environment variable TERM; see tset(1).\n"); -#endif +#else /* not VMS */ + +#ifdef HAVE_WINDOW_SYSTEM + if (! inhibit_window_system) + fprintf (stderr, "Please set the environment variable DISPLAY or TERM (see `tset').\n"); + else +#endif /* HAVE_WINDOW_SYSTEM */ + fprintf (stderr, "Please set the environment variable TERM; see `tset'.\n"); +#endif /* not VMS */ exit (1); }
--- a/src/doc.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/doc.c Sat Jul 29 09:59:12 2006 +0000 @@ -416,7 +416,7 @@ { funcar = Fcar (fun); if (!SYMBOLP (funcar)) - return Fsignal (Qinvalid_function, Fcons (fun, Qnil)); + xsignal1 (Qinvalid_function, fun); else if (EQ (funcar, Qkeymap)) return build_string ("Prefix command (definition is a keymap associating keystrokes with commands)."); else if (EQ (funcar, Qlambda) @@ -443,7 +443,7 @@ else { oops: - Fsignal (Qinvalid_function, Fcons (fun, Qnil)); + xsignal1 (Qinvalid_function, fun); } /* If DOC is 0, it's typically because of a dumped file missing
--- a/src/editfns.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/editfns.c Sat Jul 29 09:59:12 2006 +0000 @@ -316,7 +316,7 @@ if (!NILP (Vtransient_mark_mode) && NILP (Vmark_even_if_inactive) && NILP (current_buffer->mark_active)) - Fsignal (Qmark_inactive, Qnil); + xsignal0 (Qmark_inactive); m = Fmarker_position (current_buffer->mark); if (NILP (m)) @@ -1480,7 +1480,7 @@ if (getrusage (RUSAGE_SELF, &usage) < 0) /* This shouldn't happen. What action is appropriate? */ - Fsignal (Qerror, Qnil); + xsignal0 (Qerror); /* Sum up user time and system time. */ secs = usage.ru_utime.tv_sec + usage.ru_stime.tv_sec;
--- a/src/eval.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/eval.c Sat Jul 29 09:59:12 2006 +0000 @@ -198,6 +198,7 @@ extern Lisp_Object Qrisky_local_variable; static Lisp_Object funcall_lambda P_ ((Lisp_Object, int, Lisp_Object*)); +static void unwind_to_catch P_ ((struct catchtag *, Lisp_Object)) NO_RETURN; void init_eval_once () @@ -983,9 +984,7 @@ if (SYMBOLP (elt)) specbind (elt, Qnil); else if (! NILP (Fcdr (Fcdr (elt)))) - Fsignal (Qerror, - Fcons (build_string ("`let' bindings can have only one value-form"), - elt)); + signal_error ("`let' bindings can have only one value-form", elt); else { val = Feval (Fcar (Fcdr (elt))); @@ -1032,9 +1031,7 @@ if (SYMBOLP (elt)) temps [argnum++] = Qnil; else if (! NILP (Fcdr (Fcdr (elt)))) - Fsignal (Qerror, - Fcons (build_string ("`let' bindings can have only one value-form"), - elt)); + signal_error ("`let' bindings can have only one value-form", elt); else temps [argnum++] = Feval (Fcar (Fcdr (elt))); gcpro2.nvars = argnum; @@ -1295,8 +1292,7 @@ if (EQ (c->tag, tag)) unwind_to_catch (c, value); } - Fsignal (Qno_catch, list2 (tag, value)); - abort (); + xsignal2 (Qno_catch, tag, value); } @@ -1704,6 +1700,78 @@ fatal ("%s", SDATA (string), 0); } +/* Internal version of Fsignal that never returns. + Used for anything but Qquit (which can return from Fsignal). */ + +void +xsignal (error_symbol, data) + Lisp_Object error_symbol, data; +{ + Fsignal (error_symbol, data); + abort (); +} + +/* Like xsignal, but takes 0, 1, 2, or 3 args instead of a list. */ + +void +xsignal0 (error_symbol) + Lisp_Object error_symbol; +{ + xsignal (error_symbol, Qnil); +} + +void +xsignal1 (error_symbol, arg) + Lisp_Object error_symbol, arg; +{ + xsignal (error_symbol, list1 (arg)); +} + +void +xsignal2 (error_symbol, arg1, arg2) + Lisp_Object error_symbol, arg1, arg2; +{ + xsignal (error_symbol, list2 (arg1, arg2)); +} + +void +xsignal3 (error_symbol, arg1, arg2, arg3) + Lisp_Object error_symbol, arg1, arg2, arg3; +{ + xsignal (error_symbol, list3 (arg1, arg2, arg3)); +} + +/* Signal `error' with message S, and additional arg ARG. + If ARG is not a genuine list, make it a one-element list. */ + +void +signal_error (s, arg) + char *s; + Lisp_Object arg; +{ + Lisp_Object tortoise, hare; + + hare = tortoise = arg; + while (CONSP (hare)) + { + hare = XCDR (hare); + if (!CONSP (hare)) + break; + + hare = XCDR (hare); + tortoise = XCDR (tortoise); + + if (EQ (hare, tortoise)) + break; + } + + if (!NILP (hare)) + arg = Fcons (arg, Qnil); /* Make it a list. */ + + xsignal (Qerror, Fcons (build_string (s), arg)); +} + + /* Return nonzero iff LIST is a non-nil atom or a list containing one of CONDITIONS. */ @@ -1918,8 +1986,7 @@ if (allocated) xfree (buffer); - Fsignal (Qerror, Fcons (string, Qnil)); - abort (); + xsignal1 (Qerror, string); } DEFUN ("commandp", Fcommandp, Scommandp, 1, 2, 0, @@ -2185,7 +2252,7 @@ if (XINT (numargs) < XSUBR (fun)->min_args || (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < XINT (numargs))) - Fsignal (Qwrong_number_of_arguments, list2 (original_fun, numargs)); + xsignal2 (Qwrong_number_of_arguments, original_fun, numargs); if (XSUBR (fun)->max_args == UNEVALLED) { @@ -2289,12 +2356,12 @@ else { if (EQ (fun, Qunbound)) - Fsignal (Qvoid_function, Fcons (original_fun, Qnil)); + xsignal1 (Qvoid_function, original_fun); if (!CONSP (fun)) - Fsignal (Qinvalid_function, Fcons (original_fun, Qnil)); - funcar = Fcar (fun); + xsignal1 (Qinvalid_function, original_fun); + funcar = XCAR (fun); if (!SYMBOLP (funcar)) - Fsignal (Qinvalid_function, Fcons (original_fun, Qnil)); + xsignal1 (Qinvalid_function, original_fun); if (EQ (funcar, Qautoload)) { do_autoload (fun, original_fun); @@ -2305,7 +2372,7 @@ else if (EQ (funcar, Qlambda)) val = apply_lambda (fun, original_args, 1); else - Fsignal (Qinvalid_function, Fcons (original_fun, Qnil)); + xsignal1 (Qinvalid_function, original_fun); } done: CHECK_CONS_LIST (); @@ -2885,11 +2952,11 @@ || (XSUBR (fun)->max_args >= 0 && XSUBR (fun)->max_args < numargs)) { XSETFASTINT (lisp_numargs, numargs); - Fsignal (Qwrong_number_of_arguments, list2 (original_fun, lisp_numargs)); + xsignal2 (Qwrong_number_of_arguments, original_fun, lisp_numargs); } if (XSUBR (fun)->max_args == UNEVALLED) - Fsignal (Qinvalid_function, Fcons (original_fun, Qnil)); + xsignal1 (Qinvalid_function, original_fun); if (XSUBR (fun)->max_args == MANY) { @@ -2962,12 +3029,12 @@ else { if (EQ (fun, Qunbound)) - Fsignal (Qvoid_function, Fcons (original_fun, Qnil)); + xsignal1 (Qvoid_function, original_fun); if (!CONSP (fun)) - Fsignal (Qinvalid_function, Fcons (original_fun, Qnil)); - funcar = Fcar (fun); + xsignal1 (Qinvalid_function, original_fun); + funcar = XCAR (fun); if (!SYMBOLP (funcar)) - Fsignal (Qinvalid_function, Fcons (original_fun, Qnil)); + xsignal1 (Qinvalid_function, original_fun); if (EQ (funcar, Qlambda)) val = funcall_lambda (fun, numargs, args + 1); else if (EQ (funcar, Qautoload)) @@ -2977,7 +3044,7 @@ goto retry; } else - Fsignal (Qinvalid_function, Fcons (original_fun, Qnil)); + xsignal1 (Qinvalid_function, original_fun); } done: CHECK_CONS_LIST (); @@ -3053,7 +3120,7 @@ if (CONSP (syms_left)) syms_left = XCAR (syms_left); else - Fsignal (Qinvalid_function, Fcons (fun, Qnil)); + xsignal1 (Qinvalid_function, fun); } else if (COMPILEDP (fun)) syms_left = AREF (fun, COMPILED_ARGLIST); @@ -3067,7 +3134,7 @@ next = XCAR (syms_left); if (!SYMBOLP (next)) - Fsignal (Qinvalid_function, Fcons (fun, Qnil)); + xsignal1 (Qinvalid_function, fun); if (EQ (next, Qand_rest)) rest = 1; @@ -3081,15 +3148,15 @@ else if (i < nargs) specbind (next, arg_vector[i++]); else if (!optional) - Fsignal (Qwrong_number_of_arguments, list2 (fun, make_number (nargs))); + xsignal2 (Qwrong_number_of_arguments, fun, make_number (nargs)); else specbind (next, Qnil); } if (!NILP (syms_left)) - Fsignal (Qinvalid_function, Fcons (fun, Qnil)); + xsignal1 (Qinvalid_function, fun); else if (i < nargs) - Fsignal (Qwrong_number_of_arguments, list2 (fun, make_number (nargs))); + xsignal2 (Qwrong_number_of_arguments, fun, make_number (nargs)); if (CONSP (fun)) val = Fprogn (XCDR (XCDR (fun))); @@ -3141,8 +3208,7 @@ if (max_specpdl_size < 400) max_specpdl_size = 400; if (specpdl_size >= max_specpdl_size) - Fsignal (Qerror, - Fcons (build_string ("Variable binding depth exceeds max-specpdl-size"), Qnil)); + signal_error ("Variable binding depth exceeds max-specpdl-size", Qnil); } specpdl_size *= 2; if (specpdl_size > max_specpdl_size)
--- a/src/fileio.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/fileio.c Sat Jul 29 09:59:12 2006 +0000 @@ -282,7 +282,7 @@ switch (errorno) { case EEXIST: - Fsignal (Qfile_already_exists, Fcons (errstring, data)); + xsignal (Qfile_already_exists, Fcons (errstring, data)); break; default: /* System error messages are capitalized. Downcase the initial @@ -290,7 +290,7 @@ if (SREF (errstring, 1) != '/') SSET (errstring, 0, DOWNCASE (SREF (errstring, 0))); - Fsignal (Qfile_error, + xsignal (Qfile_error, Fcons (build_string (string), Fcons (errstring, data))); } } @@ -2386,9 +2386,8 @@ if (lstat (SDATA (encoded_filename), &statbuf) >= 0) { if (! interactive) - Fsignal (Qfile_already_exists, - Fcons (build_string ("File already exists"), - Fcons (absname, Qnil))); + xsignal2 (Qfile_already_exists, + build_string ("File already exists"), absname); GCPRO1 (absname); tem = format2 ("File %s already exists; %s anyway? ", absname, build_string (querystring)); @@ -2398,9 +2397,8 @@ tem = do_yes_or_no_p (tem); UNGCPRO; if (NILP (tem)) - Fsignal (Qfile_already_exists, - Fcons (build_string ("File already exists"), - Fcons (absname, Qnil))); + xsignal2 (Qfile_already_exists, + build_string ("File already exists"), absname); if (statptr) *statptr = statbuf; } @@ -2502,9 +2500,8 @@ { /* Restore original attributes. */ SetFileAttributes (filename, attributes); - Fsignal (Qfile_date_error, - Fcons (build_string ("Cannot set file date"), - Fcons (newname, Qnil))); + xsignal2 (Qfile_date_error, + build_string ("Cannot set file date"), newname); } /* Restore original attributes. */ SetFileAttributes (filename, attributes); @@ -2600,9 +2597,8 @@ EMACS_SET_SECS_USECS (mtime, st.st_mtime, 0); if (set_file_times (SDATA (encoded_newname), atime, mtime)) - Fsignal (Qfile_date_error, - Fcons (build_string ("Cannot set file date"), - Fcons (newname, Qnil))); + xsignal2 (Qfile_date_error, + build_string ("Cannot set file date"), newname); } } @@ -2698,9 +2694,9 @@ GCPRO1 (filename); if (!NILP (Ffile_directory_p (filename)) && NILP (Ffile_symlink_p (filename))) - Fsignal (Qfile_error, - Fcons (build_string ("Removing old name: is a directory"), - Fcons (filename, Qnil))); + xsignal2 (Qfile_error, + build_string ("Removing old name: is a directory"), + filename); UNGCPRO; filename = Fexpand_file_name (filename, Qnil); @@ -3850,9 +3846,8 @@ goto notfound; if (! NILP (replace) || ! NILP (beg) || ! NILP (end)) - Fsignal (Qfile_error, - Fcons (build_string ("not a regular file"), - Fcons (orig_filename, Qnil))); + xsignal2 (Qfile_error, + build_string ("not a regular file"), orig_filename); } #endif @@ -4725,9 +4720,8 @@ } #endif /* CLASH_DETECTION */ if (not_regular) - Fsignal (Qfile_error, - Fcons (build_string ("not a regular file"), - Fcons (orig_filename, Qnil))); + xsignal2 (Qfile_error, + build_string ("not a regular file"), orig_filename); } if (set_coding_system) @@ -6632,19 +6626,17 @@ staticpro (&Qcar_less_than_car); Fput (Qfile_error, Qerror_conditions, - Fcons (Qfile_error, Fcons (Qerror, Qnil))); + list2 (Qfile_error, Qerror)); Fput (Qfile_error, Qerror_message, build_string ("File error")); Fput (Qfile_already_exists, Qerror_conditions, - Fcons (Qfile_already_exists, - Fcons (Qfile_error, Fcons (Qerror, Qnil)))); + list3 (Qfile_already_exists, Qfile_error, Qerror)); Fput (Qfile_already_exists, Qerror_message, build_string ("File already exists")); Fput (Qfile_date_error, Qerror_conditions, - Fcons (Qfile_date_error, - Fcons (Qfile_error, Fcons (Qerror, Qnil)))); + list3 (Qfile_date_error, Qfile_error, Qerror)); Fput (Qfile_date_error, Qerror_message, build_string ("Cannot set file date"));
--- a/src/floatfns.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/floatfns.c Sat Jul 29 09:59:12 2006 +0000 @@ -201,17 +201,15 @@ while (0) #define arith_error(op,arg) \ - Fsignal (Qarith_error, Fcons (build_string ((op)), Fcons ((arg), Qnil))) + xsignal2 (Qarith_error, build_string ((op)), (arg)) #define range_error(op,arg) \ - Fsignal (Qrange_error, Fcons (build_string ((op)), Fcons ((arg), Qnil))) + xsignal2 (Qrange_error, build_string ((op)), (arg)) #define range_error2(op,a1,a2) \ - Fsignal (Qrange_error, Fcons (build_string ((op)), \ - Fcons ((a1), Fcons ((a2), Qnil)))) + xsignal3 (Qrange_error, build_string ((op)), (a1), (a2)) #define domain_error(op,arg) \ - Fsignal (Qdomain_error, Fcons (build_string ((op)), Fcons ((arg), Qnil))) + xsignal2 (Qdomain_error, build_string ((op)), (arg)) #define domain_error2(op,a1,a2) \ - Fsignal (Qdomain_error, Fcons (build_string ((op)), \ - Fcons ((a1), Fcons ((a2), Qnil)))) + xsignal3 (Qdomain_error, build_string ((op)), (a1), (a2)) /* Extract a Lisp number as a `double', or signal an error. */ @@ -756,7 +754,7 @@ f1 = FLOATP (arg) ? XFLOAT_DATA (arg) : XINT (arg); f2 = (FLOATP (divisor) ? XFLOAT_DATA (divisor) : XINT (divisor)); if (! IEEE_FLOATING_POINT && f2 == 0) - Fsignal (Qarith_error, Qnil); + xsignal0 (Qarith_error); IN_FLOAT2 (f1 = (*double_round) (f1 / f2), name, arg, divisor); FLOAT_TO_INT2 (f1, arg, name, arg, divisor); @@ -767,7 +765,7 @@ i2 = XINT (divisor); if (i2 == 0) - Fsignal (Qarith_error, Qnil); + xsignal0 (Qarith_error); XSETINT (arg, (*int_round2) (i1, i2)); return arg; @@ -907,7 +905,7 @@ f2 = FLOATP (y) ? XFLOAT_DATA (y) : XINT (y); if (! IEEE_FLOATING_POINT && f2 == 0) - Fsignal (Qarith_error, Qnil); + xsignal0 (Qarith_error); /* If the "remainder" comes out with the wrong sign, fix it. */ IN_FLOAT2 ((f1 = fmod (f1, f2), @@ -986,7 +984,7 @@ SIGNAL_THREAD_CHECK (signo); in_float = 0; - Fsignal (Qarith_error, Fcons (float_error_arg, Qnil)); + xsignal1 (Qarith_error, float_error_arg); } /* Another idea was to replace the library function `infnan' @@ -1014,11 +1012,11 @@ : Qnil))); switch (x->type) { - case DOMAIN: Fsignal (Qdomain_error, args); break; - case SING: Fsignal (Qsingularity_error, args); break; - case OVERFLOW: Fsignal (Qoverflow_error, args); break; - case UNDERFLOW: Fsignal (Qunderflow_error, args); break; - default: Fsignal (Qarith_error, args); break; + case DOMAIN: xsignal (Qdomain_error, args); break; + case SING: xsignal (Qsingularity_error, args); break; + case OVERFLOW: xsignal (Qoverflow_error, args); break; + case UNDERFLOW: xsignal (Qunderflow_error, args); break; + default: xsignal (Qarith_error, args); break; } return (1); /* don't set errno or print a message */ }
--- a/src/fns.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/fns.c Sat Jul 29 09:59:12 2006 +0000 @@ -182,7 +182,7 @@ else if (NILP (sequence)) XSETFASTINT (val, 0); else - val = wrong_type_argument (Qsequencep, sequence); + wrong_type_argument (Qsequencep, sequence); return val; } @@ -3251,8 +3251,7 @@ } temporarily_switch_to_single_kboard (SELECTED_FRAME ()); - obj = read_filtered_event (1, 0, 0, 0); - + obj = read_filtered_event (1, 0, 0, 0, Qnil); cursor_in_echo_area = 0; /* If we need to quit, quit with cursor_in_echo_area = 0. */ QUIT; @@ -4491,10 +4490,7 @@ args[1] = key; hash = Ffuncall (2, args); if (!INTEGERP (hash)) - Fsignal (Qerror, - list2 (build_string ("Invalid hash code returned from \ -user-supplied hash function"), - hash)); + signal_error ("Invalid hash code returned from user-supplied hash function", hash); return XUINT (hash); } @@ -5250,8 +5246,7 @@ prop = Fget (test, Qhash_table_test); if (!CONSP (prop) || !CONSP (XCDR (prop))) - Fsignal (Qerror, list2 (build_string ("Invalid hash table test"), - test)); + signal_error ("Invalid hash table test", test); user_test = XCAR (prop); user_hash = XCAR (XCDR (prop)); } @@ -5264,9 +5259,7 @@ if (NILP (size)) size = make_number (DEFAULT_HASH_SIZE); else if (!INTEGERP (size) || XINT (size) < 0) - Fsignal (Qerror, - list2 (build_string ("Invalid hash table size"), - size)); + signal_error ("Invalid hash table size", size); /* Look for `:rehash-size SIZE'. */ i = get_key_arg (QCrehash_size, nargs, args, used); @@ -5274,9 +5267,7 @@ if (!NUMBERP (rehash_size) || (INTEGERP (rehash_size) && XINT (rehash_size) <= 0) || XFLOATINT (rehash_size) <= 1.0) - Fsignal (Qerror, - list2 (build_string ("Invalid hash table rehash size"), - rehash_size)); + signal_error ("Invalid hash table rehash size", rehash_size); /* Look for `:rehash-threshold THRESHOLD'. */ i = get_key_arg (QCrehash_threshold, nargs, args, used); @@ -5284,9 +5275,7 @@ if (!FLOATP (rehash_threshold) || XFLOATINT (rehash_threshold) <= 0.0 || XFLOATINT (rehash_threshold) > 1.0) - Fsignal (Qerror, - list2 (build_string ("Invalid hash table rehash threshold"), - rehash_threshold)); + signal_error ("Invalid hash table rehash threshold", rehash_threshold); /* Look for `:weakness WEAK'. */ i = get_key_arg (QCweakness, nargs, args, used); @@ -5298,14 +5287,12 @@ && !EQ (weak, Qvalue) && !EQ (weak, Qkey_or_value) && !EQ (weak, Qkey_and_value)) - Fsignal (Qerror, list2 (build_string ("Invalid hash table weakness"), - weak)); + signal_error ("Invalid hash table weakness", weak); /* Now, all args should have been used up, or there's a problem. */ for (i = 0; i < nargs; ++i) if (!used[i]) - Fsignal (Qerror, - list2 (build_string ("Invalid argument list"), args[i])); + signal_error ("Invalid argument list", args[i]); return make_hash_table (test, size, rehash_size, rehash_threshold, weak, user_test, user_hash); @@ -5556,8 +5543,7 @@ if (!NILP (noerror)) coding_system = Qraw_text; else - while (1) - Fsignal (Qcoding_system_error, Fcons (coding_system, Qnil)); + xsignal1 (Qcoding_system_error, coding_system); } if (STRING_MULTIBYTE (object)) @@ -5691,8 +5677,7 @@ if (!NILP (noerror)) coding_system = Qraw_text; else - while (1) - Fsignal (Qcoding_system_error, Fcons (coding_system, Qnil)); + xsignal1 (Qcoding_system_error, coding_system); } }
--- a/src/frame.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/frame.c Sat Jul 29 09:59:12 2006 +0000 @@ -3337,8 +3337,7 @@ else if (NATNUMP (new_value)) f->extra_line_spacing = XFASTINT (new_value); else - Fsignal (Qerror, Fcons (build_string ("Invalid line-spacing"), - Fcons (new_value, Qnil))); + signal_error ("Invalid line-spacing", new_value); if (FRAME_VISIBLE_P (f)) redraw_frame (f); } @@ -3358,8 +3357,7 @@ /* The value 0.4545 is the normal viewing gamma. */ f->gamma = 1.0 / (0.4545 * XFLOATINT (new_value)); else - Fsignal (Qerror, Fcons (build_string ("Invalid screen-gamma"), - Fcons (new_value, Qnil))); + signal_error ("Invalid screen-gamma", new_value); clear_face_cache (0); }
--- a/src/keyboard.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/keyboard.c Sat Jul 29 09:59:12 2006 +0000 @@ -238,6 +238,9 @@ /* Nonzero means C-g should cause immediate error-signal. */ int immediate_quit; +/* The user's hook function for outputting an error message. */ +Lisp_Object Vcommand_error_function; + /* The user's ERASE setting. */ Lisp_Object Vtty_erase_char; @@ -682,8 +685,6 @@ static void timer_stop_idle P_ ((void)); static void timer_resume_idle P_ ((void)); -Lisp_Object read_char P_ ((int, int, Lisp_Object *, Lisp_Object, int *)); - /* Nonzero means don't try to suspend even if the operating system seems to support it. */ static int cannot_suspend; @@ -990,7 +991,7 @@ /* Handle throw from read_minibuf when using minibuffer while it's active but we're in another window. */ if (STRINGP (val)) - Fsignal (Qerror, Fcons (val, Qnil)); + xsignal1 (Qerror, val); return unbind_to (count, Qnil); } @@ -1185,11 +1186,12 @@ { if (f != NULL && FRAME_KBOARD (f) != current_kboard) /* We can not switch keyboards while in single_kboard mode. - This can legally happen when Lisp code calls - `recursive-edit' (or `read-minibuffer' or `y-or-n-p') after - it switched to a locked frame. This kind of situation is - likely to happen when server.el connects to a new - terminal. */ + In rare cases, Lisp code may call `recursive-edit' (or + `read-minibuffer' or `y-or-n-p') after it switched to a + locked frame. For example, this is likely to happen + when server.el connects to a new terminal while Emacs is in + single_kboard mode. It is best to throw an error instead + of presenting the user with a frozen screen. */ error ("Terminal %d is locked, cannot read from it", FRAME_TERMINAL (f)->id); else @@ -1304,48 +1306,43 @@ Lisp_Object data; char *context; { - Lisp_Object stream; - int kill_emacs_p = 0; struct frame *sf = SELECTED_FRAME (); - Vquit_flag = Qnil; - Vinhibit_quit = Qt; - clear_message (1, 0); - - /* If the window system or terminal frame hasn't been initialized - yet, or we're not interactive, it's best to dump this message out - to stderr and exit. */ - if (!sf->glyphs_initialized_p - || FRAME_INITIAL_P (sf) - || noninteractive) - { - stream = Qexternal_debugging_output; - kill_emacs_p = 1; - } - else - { - Fdiscard_input (); - message_log_maybe_newline (); - bitch_at_user (); - stream = Qt; - } - /* The immediate context is not interesting for Quits, since they are asyncronous. */ if (EQ (XCAR (data), Qquit)) Vsignaling_function = Qnil; - print_error_message (data, stream, context, Vsignaling_function); + Vquit_flag = Qnil; + Vinhibit_quit = Qt; + + /* Use user's specified output function if any. */ + if (!NILP (Vcommand_error_function)) + call3 (Vcommand_error_function, data, + build_string (context ? context : ""), + Vsignaling_function); + /* If the window system or terminal frame hasn't been initialized + yet, or we're not interactive, write the message to stderr and exit. */ + else if (!sf->glyphs_initialized_p + || FRAME_INITIAL_P (sf) + || noninteractive) + { + print_error_message (data, Qexternal_debugging_output, + context, Vsignaling_function); + Fterpri (Qexternal_debugging_output); + Fkill_emacs (make_number (-1)); + } + else + { + clear_message (1, 0); + Fdiscard_input (); + message_log_maybe_newline (); + bitch_at_user (); + + print_error_message (data, Qt, context, Vsignaling_function); + } Vsignaling_function = Qnil; - - /* If the window system or terminal frame hasn't been initialized - yet, or we're in -batch mode, this error should cause Emacs to exit. */ - if (kill_emacs_p) - { - Fterpri (stream); - Fkill_emacs (make_number (-1)); - } } Lisp_Object command_loop_1 (); @@ -2470,15 +2467,20 @@ Value is -2 when we find input on another keyboard. A second call to read_char will read it. + If END_TIME is non-null, it is a pointer to an EMACS_TIME + specifying the maximum time to wait until. If no input arrives by + that time, stop waiting and return nil. + Value is t if we showed a menu and the user rejected it. */ Lisp_Object -read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu) +read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time) int commandflag; int nmaps; Lisp_Object *maps; Lisp_Object prev_event; int *used_mouse_menu; + EMACS_TIME *end_time; { volatile Lisp_Object c; int count; @@ -2764,6 +2766,7 @@ start echoing if enough time elapses. */ if (minibuf_level == 0 + && !end_time && !current_kboard->immediate_echo && this_command_key_count > 0 && ! noninteractive @@ -2959,11 +2962,19 @@ { KBOARD *kb; + if (end_time) + { + EMACS_TIME now; + EMACS_GET_TIME (now); + if (EMACS_TIME_GE (now, *end_time)) + goto exit; + } + /* Actually read a character, waiting if necessary. */ save_getcjmp (save_jump); restore_getcjmp (local_getcjmp); timer_start_idle (); - c = kbd_buffer_get_event (&kb, used_mouse_menu); + c = kbd_buffer_get_event (&kb, used_mouse_menu, end_time); restore_getcjmp (save_jump); #ifdef MULTI_KBOARD @@ -3307,7 +3318,7 @@ cancel_echoing (); do - c = read_char (0, 0, 0, Qnil, 0); + c = read_char (0, 0, 0, Qnil, 0, NULL); while (BUFFERP (c)); /* Remove the help from the frame */ unbind_to (count, Qnil); @@ -3317,7 +3328,7 @@ { cancel_echoing (); do - c = read_char (0, 0, 0, Qnil, 0); + c = read_char (0, 0, 0, Qnil, 0, NULL); while (BUFFERP (c)); } } @@ -3994,9 +4005,10 @@ We always read and discard one event. */ static Lisp_Object -kbd_buffer_get_event (kbp, used_mouse_menu) +kbd_buffer_get_event (kbp, used_mouse_menu, end_time) KBOARD **kbp; int *used_mouse_menu; + EMACS_TIME *end_time; { register int c; Lisp_Object obj; @@ -4040,13 +4052,24 @@ if (!NILP (do_mouse_tracking) && some_mouse_moved ()) break; #endif - { + if (end_time) + { + EMACS_TIME duration; + EMACS_GET_TIME (duration); + EMACS_SUB_TIME (duration, *end_time, duration); + if (EMACS_TIME_NEG_P (duration)) + return Qnil; + else + wait_reading_process_output (EMACS_SECS (duration), + EMACS_USECS (duration), + -1, 1, Qnil, NULL, 0); + } + else wait_reading_process_output (0, 0, -1, 1, Qnil, NULL, 0); - if (!interrupt_input && kbd_fetch_ptr == kbd_store_ptr) - /* Pass 1 for EXPECT since we just waited to have input. */ - read_avail_input (1); - } + if (!interrupt_input && kbd_fetch_ptr == kbd_store_ptr) + /* Pass 1 for EXPECT since we just waited to have input. */ + read_avail_input (1); #endif /* not VMS */ } @@ -8469,7 +8492,7 @@ orig_defn_macro = current_kboard->defining_kbd_macro; current_kboard->defining_kbd_macro = Qnil; do - obj = read_char (commandflag, 0, 0, Qt, 0); + obj = read_char (commandflag, 0, 0, Qt, 0, NULL); while (BUFFERP (obj)); current_kboard->defining_kbd_macro = orig_defn_macro; @@ -8839,7 +8862,7 @@ /* Read the first char of the sequence specially, before setting up any keymaps, in case a filter runs and switches buffers on us. */ first_event = read_char (NILP (prompt), 0, submaps, last_nonmenu_event, - &junk); + &junk, NULL); #endif /* GOBBLE_FIRST_EVENT */ orig_local_map = get_local_map (PT, current_buffer, Qlocal_map); @@ -9018,7 +9041,7 @@ #endif key = read_char (NILP (prompt), nmaps, (Lisp_Object *) submaps, last_nonmenu_event, - &used_mouse_menu); + &used_mouse_menu, NULL); #ifdef MULTI_KBOARD if (INTEGERP (key) && XINT (key) == -2) /* wrong_kboard_jmpbuf */ { @@ -11948,6 +11971,15 @@ peculiar kind of quitting. */); Vthrow_on_input = Qnil; + DEFVAR_LISP ("command-error-function", &Vcommand_error_function, + doc: /* If non-nil, function to output error messages. +The arguments are the error data, a list of the form + (SIGNALED-CONDITIONS . SIGNAL-DATA) +such as just as `condition-case' would bind its variable to, +the context (a string which normally goes at the start of the message), +and the Lisp function within which the error was signaled. */); + Vcommand_error_function = Qnil; + DEFVAR_LISP ("enable-disabled-menus-and-buttons", &Venable_disabled_menus_and_buttons, doc: /* If non-nil, don't ignore events produced by disabled menu items and tool-bar.
--- a/src/keyboard.h Fri Jul 14 05:56:32 2006 +0000 +++ b/src/keyboard.h Sat Jul 29 09:59:12 2006 +0000 @@ -19,6 +19,8 @@ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#include "systime.h" /* for EMACS_TIME */ + /* Length of echobuf field in each KBOARD. */ /* Each KBOARD represents one logical input stream from which Emacs @@ -305,6 +307,9 @@ extern Lisp_Object parse_modifiers P_ ((Lisp_Object)); extern Lisp_Object reorder_modifiers P_ ((Lisp_Object)); +extern Lisp_Object read_char P_ ((int, int, Lisp_Object *, Lisp_Object, + int *, EMACS_TIME *)); + /* Parent keymap of terminal-local function-key-map instances. */ extern Lisp_Object Vfunction_key_map;
--- a/src/keymap.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/keymap.c Sat Jul 29 09:59:12 2006 +0000 @@ -751,7 +751,7 @@ if (INTEGERP (function)) /* We have to stop integers early since map_keymap gives them special significance. */ - Fsignal (Qinvalid_function, Fcons (function, Qnil)); + xsignal1 (Qinvalid_function, function); if (! NILP (sort_first)) return call3 (intern ("map-keymap-internal"), function, keymap, Qt); @@ -1142,6 +1142,20 @@ meta_bit = VECTORP (key) ? meta_modifier : 0x80; + if (VECTORP (def) && ASIZE (def) > 0 && CONSP (AREF (def, make_number (0)))) + { /* DEF is apparently an XEmacs-style keyboard macro. */ + Lisp_Object tmp = Fmake_vector (make_number (ASIZE (def)), Qnil); + int i = ASIZE (def); + while (--i >= 0) + { + Lisp_Object c = AREF (def, i); + if (CONSP (c) && lucid_event_type_list_p (c)) + c = Fevent_convert_list (c); + ASET (tmp, i, c); + } + def = tmp; + } + idx = 0; while (1) {
--- a/src/lisp.h Fri Jul 14 05:56:32 2006 +0000 +++ b/src/lisp.h Sat Jul 29 09:59:12 2006 +0000 @@ -2174,7 +2174,7 @@ extern Lisp_Object Qinteger; -extern void circular_list_error P_ ((Lisp_Object)); +extern void circular_list_error P_ ((Lisp_Object)) NO_RETURN; EXFUN (Finteractive_form, 1); /* Defined in frame.c */ @@ -2549,13 +2549,14 @@ extern void reset_malloc_hooks P_ ((void)); extern void uninterrupt_malloc P_ ((void)); extern void malloc_warning P_ ((char *)); -extern void memory_full P_ ((void)); -extern void buffer_memory_full P_ ((void)); +extern void memory_full P_ ((void)) NO_RETURN; +extern void buffer_memory_full P_ ((void)) NO_RETURN; extern int survives_gc_p P_ ((Lisp_Object)); extern void mark_object P_ ((Lisp_Object)); extern Lisp_Object Vpurify_flag; extern Lisp_Object Vmemory_full; EXFUN (Fcons, 2); +EXFUN (list1, 1); EXFUN (list2, 2); EXFUN (list3, 3); EXFUN (list4, 4); @@ -2644,9 +2645,9 @@ EXFUN (Fload, 5); EXFUN (Fget_load_suffixes, 0); EXFUN (Fget_file_char, 0); -EXFUN (Fread_char, 2); -EXFUN (Fread_event, 2); -extern Lisp_Object read_filtered_event P_ ((int, int, int, int)); +EXFUN (Fread_char, 3); +EXFUN (Fread_event, 3); +extern Lisp_Object read_filtered_event P_ ((int, int, int, int, Lisp_Object)); EXFUN (Feval_region, 4); extern Lisp_Object intern P_ ((const char *)); extern Lisp_Object make_symbol P_ ((char *)); @@ -2708,6 +2709,12 @@ EXFUN (Funwind_protect, UNEVALLED); EXFUN (Fcondition_case, UNEVALLED); EXFUN (Fsignal, 2); +extern void xsignal P_ ((Lisp_Object, Lisp_Object)) NO_RETURN; +extern void xsignal0 P_ ((Lisp_Object)) NO_RETURN; +extern void xsignal1 P_ ((Lisp_Object, Lisp_Object)) NO_RETURN; +extern void xsignal2 P_ ((Lisp_Object, Lisp_Object, Lisp_Object)) NO_RETURN; +extern void xsignal3 P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object)) NO_RETURN; +extern void signal_error P_ ((char *, Lisp_Object)) NO_RETURN; EXFUN (Fautoload, 5); EXFUN (Fcommandp, 2); EXFUN (Feval, 1);
--- a/src/lread.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/lread.c Sat Jul 29 09:59:12 2006 +0000 @@ -216,6 +216,9 @@ static Lisp_Object load_unwind P_ ((Lisp_Object)); static Lisp_Object load_descriptor_unwind P_ ((Lisp_Object)); +static void invalid_syntax P_ ((const char *, int)) NO_RETURN; +static void end_of_file_error P_ (()) NO_RETURN; + /* Handle unreading and rereading of characters. Write READCHAR to read a character, @@ -436,8 +439,6 @@ /* Get a character from the tty. */ -extern Lisp_Object read_char P_ ((int, int, Lisp_Object *, Lisp_Object, int *)); - /* Read input events until we get one that's acceptable for our purposes. If NO_SWITCH_FRAME is non-zero, switch-frame events are stashed @@ -454,14 +455,19 @@ character. If INPUT_METHOD is nonzero, we invoke the current input method - if the character warrants that. */ + if the character warrants that. + + If SECONDS is a number, we wait that many seconds for input, and + return Qnil if no input arrives within that time. */ Lisp_Object read_filtered_event (no_switch_frame, ascii_required, error_nonascii, - input_method) + input_method, seconds) int no_switch_frame, ascii_required, error_nonascii, input_method; + Lisp_Object seconds; { Lisp_Object val, delayed_switch_frame; + EMACS_TIME end_time; #ifdef HAVE_WINDOW_SYSTEM if (display_hourglass_p) @@ -470,10 +476,25 @@ delayed_switch_frame = Qnil; - /* Read until we get an acceptable event. */ + /* Compute timeout. */ + if (NUMBERP (seconds)) + { + EMACS_TIME wait_time; + int sec, usec; + double duration = extract_float (seconds); + + sec = (int) duration; + usec = (duration - sec) * 1000000; + EMACS_GET_TIME (end_time); + EMACS_SET_SECS_USECS (wait_time, sec, usec); + EMACS_ADD_TIME (end_time, end_time, wait_time); + } + +/* Read until we get an acceptable event. */ retry: do - val = read_char (0, 0, 0, (input_method ? Qnil : Qt), 0); + val = read_char (0, 0, 0, (input_method ? Qnil : Qt), 0, + NUMBERP (seconds) ? &end_time : NULL); while (INTEGERP (val) && XINT (val) == -2); /* wrong_kboard_jmpbuf */ if (BUFFERP (val)) @@ -492,7 +513,7 @@ goto retry; } - if (ascii_required) + if (ascii_required && !(NUMBERP (seconds) && NILP (val))) { /* Convert certain symbols to their ASCII equivalents. */ if (SYMBOLP (val)) @@ -537,7 +558,7 @@ return val; } -DEFUN ("read-char", Fread_char, Sread_char, 0, 2, 0, +DEFUN ("read-char", Fread_char, Sread_char, 0, 3, 0, doc: /* Read a character from the command input (keyboard or macro). It is returned as a number. If the user generates an event which is not a character (i.e. a mouse @@ -550,43 +571,55 @@ If the optional argument PROMPT is non-nil, display that as a prompt. If the optional argument INHERIT-INPUT-METHOD is non-nil and some input method is turned on in the current buffer, that input method -is used for reading a character. */) - (prompt, inherit_input_method) - Lisp_Object prompt, inherit_input_method; +is used for reading a character. +If the optional argument SECONDS is non-nil, it should be a number +specifying the maximum number of seconds to wait for input. If no +input arrives in that time, return nil. SECONDS may be a +floating-point value. */) + (prompt, inherit_input_method, seconds) + Lisp_Object prompt, inherit_input_method, seconds; { if (! NILP (prompt)) message_with_string ("%s", prompt, 0); - return read_filtered_event (1, 1, 1, ! NILP (inherit_input_method)); + return read_filtered_event (1, 1, 1, ! NILP (inherit_input_method), seconds); } -DEFUN ("read-event", Fread_event, Sread_event, 0, 2, 0, +DEFUN ("read-event", Fread_event, Sread_event, 0, 3, 0, doc: /* Read an event object from the input stream. If the optional argument PROMPT is non-nil, display that as a prompt. If the optional argument INHERIT-INPUT-METHOD is non-nil and some input method is turned on in the current buffer, that input method -is used for reading a character. */) - (prompt, inherit_input_method) - Lisp_Object prompt, inherit_input_method; +is used for reading a character. +If the optional argument SECONDS is non-nil, it should be a number +specifying the maximum number of seconds to wait for input. If no +input arrives in that time, return nil. SECONDS may be a +floating-point value. */) + (prompt, inherit_input_method, seconds) + Lisp_Object prompt, inherit_input_method, seconds; { if (! NILP (prompt)) message_with_string ("%s", prompt, 0); - return read_filtered_event (0, 0, 0, ! NILP (inherit_input_method)); + return read_filtered_event (0, 0, 0, ! NILP (inherit_input_method), seconds); } -DEFUN ("read-char-exclusive", Fread_char_exclusive, Sread_char_exclusive, 0, 2, 0, +DEFUN ("read-char-exclusive", Fread_char_exclusive, Sread_char_exclusive, 0, 3, 0, doc: /* Read a character from the command input (keyboard or macro). It is returned as a number. Non-character events are ignored. If the optional argument PROMPT is non-nil, display that as a prompt. If the optional argument INHERIT-INPUT-METHOD is non-nil and some input method is turned on in the current buffer, that input method -is used for reading a character. */) - (prompt, inherit_input_method) - Lisp_Object prompt, inherit_input_method; +is used for reading a character. +If the optional argument SECONDS is non-nil, it should be a number +specifying the maximum number of seconds to wait for input. If no +input arrives in that time, return nil. SECONDS may be a +floating-point value. */) + (prompt, inherit_input_method, seconds) + Lisp_Object prompt, inherit_input_method, seconds; { if (! NILP (prompt)) message_with_string ("%s", prompt, 0); - return read_filtered_event (1, 1, 0, ! NILP (inherit_input_method)); + return read_filtered_event (1, 1, 0, ! NILP (inherit_input_method), seconds); } DEFUN ("get-file-char", Fget_file_char, Sget_file_char, 0, 0, 0, @@ -799,10 +832,8 @@ if (fd == -1) { if (NILP (noerror)) - Fsignal (Qfile_error, Fcons (build_string ("Cannot open load file"), - Fcons (file, Qnil))); - else - return Qnil; + xsignal2 (Qfile_error, build_string ("Cannot open load file"), file); + return Qnil; } /* Tell startup.el whether or not we found the user's init file. */ @@ -843,8 +874,7 @@ { if (fd >= 0) emacs_close (fd); - Fsignal (Qerror, Fcons (build_string ("Recursive load"), - Fcons (found, Vloads_in_progress))); + signal_error ("Recursive load", Fcons (found, Vloads_in_progress)); } record_unwind_protect (record_load_unwind, Vloads_in_progress); Vloads_in_progress = Fcons (found, Vloads_in_progress); @@ -1341,11 +1371,9 @@ Lisp_Object data; if (STRINGP (Vload_file_name)) - data = Fcons (Vload_file_name, Qnil); - else - data = Qnil; - - Fsignal (Qend_of_file, data); + xsignal1 (Qend_of_file, Vload_file_name); + + xsignal0 (Qend_of_file); } /* UNIBYTE specifies how to set load_convert_to_unibyte @@ -1696,6 +1724,21 @@ return retval; } + +/* Signal Qinvalid_read_syntax error. + S is error string of length N (if > 0) */ + +static void +invalid_syntax (s, n) + const char *s; + int n; +{ + if (!n) + n = strlen (s); + xsignal1 (Qinvalid_read_syntax, make_string (s, n)); +} + + /* Use this for recursive reads, in contexts where internal tokens are not allowed. */ @@ -1707,12 +1750,11 @@ int c; val = read1 (readcharfun, &c, 0); - if (c) - Fsignal (Qinvalid_read_syntax, Fcons (Fmake_string (make_number (1), - make_number (c)), - Qnil)); - - return val; + if (!c) + return val; + + xsignal1 (Qinvalid_read_syntax, + Fmake_string (make_number (1), make_number (c))); } static int read_buffer_size; @@ -1980,7 +2022,6 @@ } } - /* Read an integer in radix RADIX using READCHARFUN to read characters. RADIX must be in the interval [2..36]; if it isn't, a read error is signaled . Value is the integer read. Signals an @@ -2040,7 +2081,7 @@ { char buf[50]; sprintf (buf, "integer, radix %d", radix); - Fsignal (Qinvalid_read_syntax, Fcons (build_string (buf), Qnil)); + invalid_syntax (buf, 0); } return make_number (sign * number); @@ -2151,10 +2192,9 @@ XCHAR_TABLE (tmp)->top = Qnil; return tmp; } - Fsignal (Qinvalid_read_syntax, - Fcons (make_string ("#^^", 3), Qnil)); + invalid_syntax ("#^^", 3); } - Fsignal (Qinvalid_read_syntax, Fcons (make_string ("#^", 2), Qnil)); + invalid_syntax ("#^", 2); } if (c == '&') { @@ -2176,8 +2216,7 @@ Accept such input in case it came from an old version. */ && ! (XFASTINT (length) == (SCHARS (tmp) - 1) * BOOL_VECTOR_BITS_PER_CHAR)) - Fsignal (Qinvalid_read_syntax, - Fcons (make_string ("#&...", 5), Qnil)); + invalid_syntax ("#&...", 5); val = Fmake_bool_vector (length, Qnil); bcopy (SDATA (tmp), XBOOL_VECTOR (val)->data, @@ -2188,8 +2227,7 @@ &= (1 << (XINT (length) % BOOL_VECTOR_BITS_PER_CHAR)) - 1; return val; } - Fsignal (Qinvalid_read_syntax, Fcons (make_string ("#&...", 5), - Qnil)); + invalid_syntax ("#&...", 5); } if (c == '[') { @@ -2209,7 +2247,7 @@ /* Read the string itself. */ tmp = read1 (readcharfun, &ch, 0); if (ch != 0 || !STRINGP (tmp)) - Fsignal (Qinvalid_read_syntax, Fcons (make_string ("#", 1), Qnil)); + invalid_syntax ("#", 1); GCPRO1 (tmp); /* Read the intervals and their properties. */ while (1) @@ -2225,9 +2263,7 @@ if (ch == 0) plist = read1 (readcharfun, &ch, 0); if (ch) - Fsignal (Qinvalid_read_syntax, - Fcons (build_string ("invalid string property list"), - Qnil)); + invalid_syntax ("Invalid string property list", 0); Fset_text_properties (beg, end, plist, tmp); } UNGCPRO; @@ -2380,7 +2416,7 @@ return read_integer (readcharfun, 2); UNREAD (c); - Fsignal (Qinvalid_read_syntax, Fcons (make_string ("#", 1), Qnil)); + invalid_syntax ("#", 1); case ';': while ((c = READCHAR) >= 0 && c != '\n'); @@ -2474,10 +2510,10 @@ || (new_backquote_flag && next_char == ',')))); } UNREAD (next_char); - if (!ok) - Fsignal (Qinvalid_read_syntax, Fcons (make_string ("?", 1), Qnil)); - - return make_number (c); + if (ok) + return make_number (c); + + invalid_syntax ("?", 1); } case '"': @@ -3122,8 +3158,7 @@ { if (ch == ']') return val; - Fsignal (Qinvalid_read_syntax, - Fcons (make_string (") or . in a vector", 18), Qnil)); + invalid_syntax (") or . in a vector", 18); } if (ch == ')') return val; @@ -3216,9 +3251,9 @@ return val; } - return Fsignal (Qinvalid_read_syntax, Fcons (make_string (". in wrong context", 18), Qnil)); + invalid_syntax (". in wrong context", 18); } - return Fsignal (Qinvalid_read_syntax, Fcons (make_string ("] in a list", 11), Qnil)); + invalid_syntax ("] in a list", 11); } tem = (read_pure && flag <= 0 ? pure_cons (elt, Qnil)
--- a/src/macselect.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/macselect.c Sat Jul 29 09:59:12 2006 +0000 @@ -594,11 +594,9 @@ && INTEGERP (XCAR (XCDR (check))) && NILP (XCDR (XCDR (check)))))) return value; - else - return - Fsignal (Qerror, - Fcons (build_string ("invalid data returned by selection-conversion function"), - Fcons (handler_fn, Fcons (value, Qnil)))); + + signal_error ("Invalid data returned by selection-conversion function", + list2 (handler_fn, value)); }
--- a/src/macterm.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/macterm.c Sat Jul 29 09:59:12 2006 +0000 @@ -8587,6 +8587,81 @@ extern void initialize_applescript(); extern void terminate_applescript(); +/* Table for translating Mac keycode to X keysym values. Contributed + by Sudhir Shenoy. + Mapping for special keys is now identical to that in Apple X11 + except `clear' (-> <clear>) on the KeyPad, `enter' (-> <kp-enter>) + on the right of the Cmd key on laptops, and fn + `enter' (-> + <linefeed>). */ +static unsigned char keycode_to_xkeysym_table[] = { + /*0x00*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /*0x10*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /*0x20*/ 0, 0, 0, 0, 0x0d /*return*/, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + /*0x30*/ 0x09 /*tab*/, 0 /*0x0020 space*/, 0, 0x08 /*backspace*/, + /*0x34*/ 0x8d /*enter on laptops*/, 0x1b /*escape*/, 0, 0, + /*0x38*/ 0, 0, 0, 0, + /*0x3C*/ 0, 0, 0, 0, + + /*0x40*/ 0, 0xae /*kp-decimal*/, 0, 0xaa /*kp-multiply*/, + /*0x44*/ 0, 0xab /*kp-add*/, 0, 0x0b /*clear*/, + /*0x48*/ 0, 0, 0, 0xaf /*kp-divide*/, + /*0x4C*/ 0x8d /*kp-enter*/, 0, 0xad /*kp-subtract*/, 0, + + /*0x50*/ 0, 0xbd /*kp-equal*/, 0xb0 /*kp-0*/, 0xb1 /*kp-1*/, + /*0x54*/ 0xb2 /*kp-2*/, 0xb3 /*kp-3*/, 0xb4 /*kp-4*/, 0xb5 /*kp-5*/, + /*0x58*/ 0xb6 /*kp-6*/, 0xb7 /*kp-7*/, 0, 0xb8 /*kp-8*/, + /*0x5C*/ 0xb9 /*kp-9*/, 0, 0, 0, + + /*0x60*/ 0xc2 /*f5*/, 0xc3 /*f6*/, 0xc4 /*f7*/, 0xc0 /*f3*/, + /*0x64*/ 0xc5 /*f8*/, 0xc6 /*f9*/, 0, 0xc8 /*f11*/, + /*0x68*/ 0, 0xca /*f13*/, 0xcd /*f16*/, 0xcb /*f14*/, + /*0x6C*/ 0, 0xc7 /*f10*/, 0x0a /*fn+enter on laptops*/, 0xc9 /*f12*/, + + /*0x70*/ 0, 0xcc /*f15*/, 0x6a /*help*/, 0x50 /*home*/, + /*0x74*/ 0x55 /*pgup*/, 0xff /*delete*/, 0xc1 /*f4*/, 0x57 /*end*/, + /*0x78*/ 0xbf /*f2*/, 0x56 /*pgdown*/, 0xbe /*f1*/, 0x51 /*left*/, + /*0x7C*/ 0x53 /*right*/, 0x54 /*down*/, 0x52 /*up*/, 0 +}; + +#ifdef MAC_OSX +/* Table for translating Mac keycode with the laptop `fn' key to that + without it. Destination symbols in comments are keys on US + keyboard, and they may not be the same on other types of keyboards. + If the destination is identical to the source (f1 ... f12), it + doesn't map `fn' key to a modifier. */ +static unsigned char fn_keycode_to_keycode_table[] = { + /*0x00*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /*0x10*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /*0x20*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + /*0x30*/ 0, 0, 0, 0, + /*0x34*/ 0, 0, 0, 0, + /*0x38*/ 0, 0, 0, 0, + /*0x3C*/ 0, 0, 0, 0, + + /*0x40*/ 0, 0x2f /*kp-decimal -> '.'*/, 0, 0x23 /*kp-multiply -> 'p'*/, + /*0x44*/ 0, 0x2c /*kp-add -> '/'*/, 0, 0x16 /*clear -> '6'*/, + /*0x48*/ 0, 0, 0, 0x1d /*kp-/ -> '0'*/, + /*0x4C*/ 0x24 /*kp-enter -> return*/, 0, 0x29 /*kp-subtract -> ';'*/, 0, + + /*0x50*/ 0, 0x1b /*kp-equal -> '-'*/, 0x2e /*kp-0 -> 'm'*/, 0x26 /*kp-1 -> 'j'*/, + /*0x54*/ 0x28 /*kp-2 -> 'k'*/, 0x25 /*kp-3 -> 'l'*/, 0x20 /*kp-4 -> 'u'*/, 0x22 /*kp-5 ->'i'*/, + /*0x58*/ 0x1f /*kp-6 -> 'o'*/, 0x1a /*kp-7 -> '7'*/, 0, 0x1c /*kp-8 -> '8'*/, + /*0x5C*/ 0x19 /*kp-9 -> '9'*/, 0, 0, 0, + + /*0x60*/ 0x60 /*f5 = f5*/, 0x61 /*f6 = f6*/, 0x62 /*f7 = f7*/, 0x63 /*f3 = f3*/, + /*0x64*/ 0x64 /*f8 = f8*/, 0x65 /*f9 = f9*/, 0, 0x67 /*f11 = f11*/, + /*0x68*/ 0, 0, 0, 0, + /*0x6C*/ 0, 0x6d /*f10 = f10*/, 0, 0x6f /*f12 = f12*/, + + /*0x70*/ 0, 0, 0, 0x7b /*home -> left*/, + /*0x74*/ 0x7e /*pgup -> up*/, 0x33 /*delete -> backspace*/, 0x76 /*f4 = f4*/, 0x7c /*end -> right*/, + /*0x78*/ 0x78 /*f2 = f2*/, 0x7d /*pgdown -> down*/, 0x7a /*f1 = f1*/, 0, + /*0x7C*/ 0, 0, 0, 0 +}; +#endif /* MAC_OSX */ + static unsigned int #if USE_CARBON_EVENTS mac_to_emacs_modifiers (UInt32 mods) @@ -9650,7 +9725,6 @@ { EventRef kbd_event; UInt32 actual_size, modifiers, mapped_modifiers; - UniChar code; err = GetEventParameter (event, kEventParamTextInputSendKeyboardEvent, typeEventRef, NULL, sizeof (EventRef), NULL, @@ -9678,26 +9752,37 @@ err = GetEventParameter (kbd_event, kEventParamKeyUnicodes, typeUnicodeText, NULL, 0, &actual_size, NULL); - if (err == noErr) + if (err == noErr && actual_size == sizeof (UniChar)) { - if (actual_size == sizeof (UniChar)) - err = GetEventParameter (kbd_event, kEventParamKeyUnicodes, - typeUnicodeText, NULL, - sizeof (UniChar), NULL, &code); + UniChar code; + + err = GetEventParameter (kbd_event, kEventParamKeyUnicodes, + typeUnicodeText, NULL, + sizeof (UniChar), NULL, &code); if (err == noErr && code < 0x80) { /* ASCII character. Process it in XTread_socket. */ if (read_socket_inev && code >= 0x20 && code <= 0x7e) { - struct frame *f = mac_focus_frame (&one_mac_display_info); - - read_socket_inev->kind = ASCII_KEYSTROKE_EVENT; - read_socket_inev->code = code; - read_socket_inev->modifiers = - (extra_keyboard_modifiers - & (meta_modifier | alt_modifier - | hyper_modifier | super_modifier)); - XSETFRAME (read_socket_inev->frame_or_window, f); + UInt32 key_code; + + err = GetEventParameter (kbd_event, kEventParamKeyCode, + typeUInt32, NULL, sizeof (UInt32), + NULL, &key_code); + if (!(err == noErr && key_code <= 0x7f + && keycode_to_xkeysym_table [key_code])) + { + struct frame *f = + mac_focus_frame (&one_mac_display_info); + + read_socket_inev->kind = ASCII_KEYSTROKE_EVENT; + read_socket_inev->code = code; + read_socket_inev->modifiers = + (extra_keyboard_modifiers + & (meta_modifier | alt_modifier + | hyper_modifier | super_modifier)); + XSETFRAME (read_socket_inev->frame_or_window, f); + } } return eventNotHandledErr; } @@ -9970,89 +10055,6 @@ } #endif -/* Table for translating Mac keycode to X keysym values. Contributed - by Sudhir Shenoy. - Mapping for special keys is now identical to that in Apple X11 - except `clear' (-> <clear>) on the KeyPad, `enter' (-> <kp-enter>) - on the right of the Cmd key on laptops, and fn + `enter' (-> - <linefeed>). */ -static unsigned char keycode_to_xkeysym_table[] = { - /*0x00*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /*0x10*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /*0x20*/ 0, 0, 0, 0, 0x0d /*return*/, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - /*0x30*/ 0x09 /*tab*/, 0 /*0x0020 space*/, 0, 0x08 /*backspace*/, - /*0x34*/ 0x8d /*enter on laptops*/, 0x1b /*escape*/, 0, 0, - /*0x38*/ 0, 0, 0, 0, - /*0x3C*/ 0, 0, 0, 0, - - /*0x40*/ 0, 0xae /*kp-.*/, 0, 0xaa /*kp-**/, - /*0x44*/ 0, 0xab /*kp-+*/, 0, 0x0b /*clear*/, - /*0x48*/ 0, 0, 0, 0xaf /*kp-/*/, - /*0x4C*/ 0x8d /*kp-enter*/, 0, 0xad /*kp--*/, 0, - - /*0x50*/ 0, 0xbd /*kp-=*/, 0xb0 /*kp-0*/, 0xb1 /*kp-1*/, - /*0x54*/ 0xb2 /*kp-2*/, 0xb3 /*kp-3*/, 0xb4 /*kp-4*/, 0xb5 /*kp-5*/, - /*0x58*/ 0xb6 /*kp-6*/, 0xb7 /*kp-7*/, 0, 0xb8 /*kp-8*/, - /*0x5C*/ 0xb9 /*kp-9*/, 0, 0, 0, - - /*0x60*/ 0xc2 /*f5*/, 0xc3 /*f6*/, 0xc4 /*f7*/, 0xc0 /*f3*/, - /*0x64*/ 0xc5 /*f8*/, 0xc6 /*f9*/, 0, 0xc8 /*f11*/, - /*0x68*/ 0, 0xca /*f13*/, 0xcd /*f16*/, 0xcb /*f14*/, - /*0x6C*/ 0, 0xc7 /*f10*/, 0x0a /*fn+enter on laptops*/, 0xc9 /*f12*/, - - /*0x70*/ 0, 0xcc /*f15*/, 0x6a /*help*/, 0x50 /*home*/, - /*0x74*/ 0x55 /*pgup*/, 0xff /*delete*/, 0xc1 /*f4*/, 0x57 /*end*/, - /*0x78*/ 0xbf /*f2*/, 0x56 /*pgdown*/, 0xbe /*f1*/, 0x51 /*left*/, - /*0x7C*/ 0x53 /*right*/, 0x54 /*down*/, 0x52 /*up*/, 0 -}; - - -static int -keycode_to_xkeysym (int keyCode, int *xKeySym) -{ - *xKeySym = keycode_to_xkeysym_table [keyCode & 0x7f]; - return *xKeySym != 0; -} - -#ifdef MAC_OSX -/* Table for translating Mac keycode with the laptop `fn' key to that - without it. Destination symbols in comments are keys on US - keyboard, and they may not be the same on other types of keyboards. - If the destination is identical to the source (f1 ... f12), it - doesn't map `fn' key to a modifier. */ -static unsigned char fn_keycode_to_keycode_table[] = { - /*0x00*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /*0x10*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - /*0x20*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - /*0x30*/ 0, 0, 0, 0, - /*0x34*/ 0, 0, 0, 0, - /*0x38*/ 0, 0, 0, 0, - /*0x3C*/ 0, 0, 0, 0, - - /*0x40*/ 0, 0x2f /*kp-. -> '.'*/, 0, 0x23 /*kp-* -> 'p'*/, - /*0x44*/ 0, 0x2c /*kp-+ -> '/'*/, 0, 0x16 /*clear -> '6'*/, - /*0x48*/ 0, 0, 0, 0x1d /*kp-/ -> '0'*/, - /*0x4C*/ 0x24 /*kp-enter -> return*/, 0, 0x29 /*kp-- -> ';'*/, 0, - - /*0x50*/ 0, 0x1b /*kp-= -> '-'*/, 0x2e /*kp-0 -> 'm'*/, 0x26 /*kp-1 -> 'j'*/, - /*0x54*/ 0x28 /*kp-2 -> 'k'*/, 0x25 /*kp-3 -> 'l'*/, 0x20 /*kp-4 -> 'u'*/, 0x22 /*kp-5 ->'i'*/, - /*0x58*/ 0x1f /*kp-6 -> 'o'*/, 0x1a /*kp-7 -> '7'*/, 0, 0x1c /*kp-8 -> '8'*/, - /*0x5C*/ 0x19 /*kp-9 -> '9'*/, 0, 0, 0, - - /*0x60*/ 0x60 /*f5 = f5*/, 0x61 /*f6 = f6*/, 0x62 /*f7 = f7*/, 0x63 /*f3 = f3*/, - /*0x64*/ 0x64 /*f8 = f8*/, 0x65 /*f9 = f9*/, 0, 0x67 /*f11 = f11*/, - /*0x68*/ 0, 0, 0, 0, - /*0x6C*/ 0, 0x6d /*f10 = f10*/, 0, 0x6f /*f12 = f12*/, - - /*0x70*/ 0, 0, 0, 0x7b /*home -> left*/, - /*0x74*/ 0x7e /*pgup -> up*/, 0x33 /*delete -> backspace*/, 0x76 /*f4 = f4*/, 0x7c /*end -> right*/, - /*0x78*/ 0x78 /*f2 = f2*/, 0x7d /*pgdown -> down*/, 0x7a /*f1 = f1*/, 0, - /*0x7C*/ 0, 0, 0, 0 -}; -#endif /* MAC_OSX */ - #if !USE_CARBON_EVENTS static RgnHandle mouse_region = NULL; @@ -10679,7 +10681,6 @@ case autoKey: { int keycode = (er.message & keyCodeMask) >> 8; - int xkeysym; static SInt16 last_key_script = -1; SInt16 current_key_script; UInt32 modifiers = er.modifiers, mapped_modifiers; @@ -10758,10 +10759,10 @@ && fn_keycode_to_keycode_table[keycode]) keycode = fn_keycode_to_keycode_table[keycode]; #endif - if (keycode_to_xkeysym (keycode, &xkeysym)) + if (keycode <= 0x7f && keycode_to_xkeysym_table [keycode]) { inev.kind = NON_ASCII_KEYSTROKE_EVENT; - inev.code = 0xff00 | xkeysym; + inev.code = 0xff00 | keycode_to_xkeysym_table [keycode]; #ifdef MAC_OSX if (modifiers & kEventKeyModifierFnMask && keycode <= 0x7f @@ -11101,7 +11102,7 @@ #ifdef MAC_OSX /* HasDepth returns true if it is possible to have a 32 bit display, but this may not be what is actually used. Mac OSX can do better. */ - dpyinfo->color_p = 1; + dpyinfo->color_p = CGDisplaySamplesPerPixel (kCGDirectMainDisplay) > 1; dpyinfo->n_planes = CGDisplayBitsPerPixel (kCGDirectMainDisplay); dpyinfo->height = CGDisplayPixelsHigh (kCGDirectMainDisplay); dpyinfo->width = CGDisplayPixelsWide (kCGDirectMainDisplay); @@ -11232,11 +11233,14 @@ xfree (dpyinfo->font_table[i].name); } - if (dpyinfo->font_table->font_encoder) - xfree (dpyinfo->font_table->font_encoder); - - xfree (dpyinfo->font_table); - xfree (dpyinfo->mac_id_name); + if (dpyinfo->font_table) + { + if (dpyinfo->font_table->font_encoder) + xfree (dpyinfo->font_table->font_encoder); + xfree (dpyinfo->font_table); + } + if (dpyinfo->mac_id_name) + xfree (dpyinfo->mac_id_name); if (x_display_list == 0) {
--- a/src/msdos.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/msdos.c Sat Jul 29 09:59:12 2006 +0000 @@ -204,9 +204,9 @@ CHECK_NUMBER (nbuttons); n = XINT (nbuttons); if (n < 2 || n > 3) - Fsignal (Qargs_out_of_range, - Fcons (build_string ("only 2 or 3 mouse buttons are supported"), - Fcons (nbuttons, Qnil))); + xsignal2 (Qargs_out_of_range, + build_string ("only 2 or 3 mouse buttons are supported"), + nbuttons); mouse_setup_buttons (n); return Qnil; }
--- a/src/print.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/print.c Sat Jul 29 09:59:12 2006 +0000 @@ -1032,7 +1032,9 @@ } /* Print an error message for the error DATA onto Lisp output stream - STREAM (suitable for the print functions). */ + STREAM (suitable for the print functions). + CONTEXT is a C string describing the context of the error. + CALLER is the Lisp function inside which the error was signaled. */ void print_error_message (data, stream, context, caller)
--- a/src/puresize.h Fri Jul 14 05:56:32 2006 +0000 +++ b/src/puresize.h Sat Jul 29 09:59:12 2006 +0000 @@ -43,7 +43,7 @@ #endif #ifndef BASE_PURESIZE -#define BASE_PURESIZE (1240000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA) +#define BASE_PURESIZE (1124000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA) #endif /* Increase BASE_PURESIZE by a ratio depending on the machine's word size. */
--- a/src/search.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/search.c Sat Jul 29 09:59:12 2006 +0000 @@ -83,6 +83,9 @@ Lisp_Object Qinvalid_regexp; +/* Error condition used for failing searches */ +Lisp_Object Qsearch_failed; + Lisp_Object Vsearch_spaces_regexp; static void set_search_regs (); @@ -179,7 +182,7 @@ re_set_syntax (old); UNBLOCK_INPUT; if (val) - Fsignal (Qinvalid_regexp, Fcons (build_string (val), Qnil)); + xsignal1 (Qinvalid_regexp, build_string (val)); cp->regexp = Fcopy_sequence (pattern); } @@ -266,16 +269,6 @@ return &cp->buf; } -/* Error condition used for failing searches */ -Lisp_Object Qsearch_failed; - -Lisp_Object -signal_failure (arg) - Lisp_Object arg; -{ - Fsignal (Qsearch_failed, Fcons (arg, Qnil)); - return Qnil; -} static Lisp_Object looking_at_1 (string, posix) @@ -948,7 +941,8 @@ if (np <= 0) { if (NILP (noerror)) - return signal_failure (string); + xsignal1 (Qsearch_failed, string); + if (!EQ (noerror, Qt)) { if (lim < BEGV || lim > ZV)
--- a/src/sound.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/sound.c Sat Jul 29 09:59:12 2006 +0000 @@ -990,6 +990,7 @@ struct sound_device *sd; { int val, err, dir; + unsigned uval; struct alsa_params *p = (struct alsa_params *) sd->data; snd_pcm_uframes_t buffer_size; @@ -1017,8 +1018,8 @@ if (err < 0) alsa_sound_perror ("Could not set sound format", err); - val = sd->sample_rate; - err = snd_pcm_hw_params_set_rate_near (p->handle, p->hwparams, &val, 0); + uval = sd->sample_rate; + err = snd_pcm_hw_params_set_rate_near (p->handle, p->hwparams, &uval, 0); if (err < 0) alsa_sound_perror ("Could not set sample rate", err); @@ -1123,7 +1124,7 @@ snd_pcm_sw_params_free (p->swparams); if (p->handle) { - snd_pcm_drain(p->handle); + snd_pcm_drain (p->handle); snd_pcm_close (p->handle); } free (p); @@ -1269,7 +1270,8 @@ err = snd_pcm_open (&handle, file, SND_PCM_STREAM_PLAYBACK, 0); snd_lib_error_set_handler (NULL); if (err < 0) - return 0; + return 0; + snd_pcm_close (handle); sd->fd = -1; sd->open = alsa_open;
--- a/src/syntax.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/syntax.c Sat Jul 29 09:59:12 2006 +0000 @@ -2347,10 +2347,9 @@ close1: if (!--depth) goto done; if (depth < min_depth) - Fsignal (Qscan_error, - Fcons (build_string ("Containing expression ends prematurely"), - Fcons (make_number (last_good), - Fcons (make_number (from), Qnil)))); + xsignal3 (Qscan_error, + build_string ("Containing expression ends prematurely"), + make_number (last_good), make_number (from)); break; case Sstring: @@ -2499,10 +2498,9 @@ open2: if (!--depth) goto done2; if (depth < min_depth) - Fsignal (Qscan_error, - Fcons (build_string ("Containing expression ends prematurely"), - Fcons (make_number (last_good), - Fcons (make_number (from), Qnil)))); + xsignal3 (Qscan_error, + build_string ("Containing expression ends prematurely"), + make_number (last_good), make_number (from)); break; case Sendcomment: @@ -2571,12 +2569,9 @@ return val; lose: - Fsignal (Qscan_error, - Fcons (build_string ("Unbalanced parentheses"), - Fcons (make_number (last_good), - Fcons (make_number (from), Qnil)))); - abort (); - /* NOTREACHED */ + xsignal3 (Qscan_error, + build_string ("Unbalanced parentheses"), + make_number (last_good), make_number (from)); } DEFUN ("scan-lists", Fscan_lists, Sscan_lists, 3, 3, 0,
--- a/src/textprop.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/textprop.c Sat Jul 29 09:59:12 2006 +0000 @@ -78,6 +78,8 @@ Lisp_Object interval_insert_behind_hooks; Lisp_Object interval_insert_in_front_hooks; +static void text_read_only P_ ((Lisp_Object)) NO_RETURN; + /* Signal a `text-read-only' error. This function makes it easier to capture that error in GDB by putting a breakpoint on it. */ @@ -86,7 +88,10 @@ text_read_only (propval) Lisp_Object propval; { - Fsignal (Qtext_read_only, STRINGP (propval) ? Fcons (propval, Qnil) : Qnil); + if (STRINGP (propval)) + xsignal1 (Qtext_read_only, propval); + + xsignal0 (Qtext_read_only); }
--- a/src/unexsol.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/unexsol.c Sat Jul 29 09:59:12 2006 +0000 @@ -24,7 +24,7 @@ errstring = code_convert_string_norecord (build_string (dlerror ()), Vlocale_coding_system, 0); - Fsignal (Qfile_error, + xsignal (Qfile_error, Fcons (build_string ("Cannot unexec"), Fcons (errstring, data))); }
--- a/src/w32.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/w32.c Sat Jul 29 09:59:12 2006 +0000 @@ -2256,16 +2256,17 @@ SystemTimeToFileTime (&st, &utc_base_ft); utc_base = (long double) utc_base_ft.dwHighDateTime - * 4096 * 1024 * 1024 + utc_base_ft.dwLowDateTime; + * 4096.0L * 1024.0L * 1024.0L + utc_base_ft.dwLowDateTime; init = 1; } if (CompareFileTime (&ft, &utc_base_ft) < 0) return 0; - ret = (long double) ft.dwHighDateTime * 4096 * 1024 * 1024 + ft.dwLowDateTime; + ret = (long double) ft.dwHighDateTime + * 4096.0L * 1024.0L * 1024.0L + ft.dwLowDateTime; ret -= utc_base; - return (time_t) (ret * 1e-7); + return (time_t) (ret * 1e-7L); } void @@ -2700,6 +2701,9 @@ int (PASCAL *pfn_WSAStartup) (WORD wVersionRequired, LPWSADATA lpWSAData); void (PASCAL *pfn_WSASetLastError) (int iError); int (PASCAL *pfn_WSAGetLastError) (void); +int (PASCAL *pfn_WSAEventSelect) (SOCKET s, HANDLE hEventObject, long lNetworkEvents); +HANDLE (PASCAL *pfn_WSACreateEvent) (void); +int (PASCAL *pfn_WSACloseEvent) (HANDLE hEvent); int (PASCAL *pfn_socket) (int af, int type, int protocol); int (PASCAL *pfn_bind) (SOCKET s, const struct sockaddr *addr, int namelen); int (PASCAL *pfn_connect) (SOCKET s, const struct sockaddr *addr, int namelen); @@ -2769,7 +2773,7 @@ = (void *) GetProcAddress (GetModuleHandle ("kernel32.dll"), "SetHandleInformation"); - winsock_lib = LoadLibrary ("wsock32.dll"); + winsock_lib = LoadLibrary ("Ws2_32.dll"); if (winsock_lib != NULL) { @@ -2782,6 +2786,9 @@ LOAD_PROC( WSAStartup ); LOAD_PROC( WSASetLastError ); LOAD_PROC( WSAGetLastError ); + LOAD_PROC( WSAEventSelect ); + LOAD_PROC( WSACreateEvent ); + LOAD_PROC( WSACloseEvent ); LOAD_PROC( socket ); LOAD_PROC( bind ); LOAD_PROC( connect ); @@ -3295,6 +3302,8 @@ int rc = pfn_listen (SOCK_HANDLE (s), backlog); if (rc == SOCKET_ERROR) set_errno (); + else + fd_info[s].flags |= FILE_LISTEN; return rc; } h_errno = ENOTSOCK; @@ -3332,14 +3341,18 @@ } check_errno (); - if (fd_info[s].flags & FILE_SOCKET) + if (fd_info[s].flags & FILE_LISTEN) { SOCKET t = pfn_accept (SOCK_HANDLE (s), addr, addrlen); - if (t != INVALID_SOCKET) - return socket_to_fd (t); - - set_errno (); - return -1; + int fd = -1; + if (t == INVALID_SOCKET) + set_errno (); + else + fd = socket_to_fd (t); + + fd_info[s].cp->status = STATUS_READ_ACKNOWLEDGED; + ResetEvent (fd_info[s].cp->char_avail); + return fd; } h_errno = ENOTSOCK; return -1; @@ -3641,6 +3654,36 @@ return cp->status; } +int _sys_wait_accept (int fd) +{ + HANDLE hEv; + child_process * cp; + int rc; + + if (fd < 0 || fd >= MAXDESC) + return STATUS_READ_ERROR; + + cp = fd_info[fd].cp; + + if (cp == NULL || cp->fd != fd || cp->status != STATUS_READ_READY) + return STATUS_READ_ERROR; + + cp->status = STATUS_READ_FAILED; + + hEv = pfn_WSACreateEvent (); + rc = pfn_WSAEventSelect (SOCK_HANDLE (fd), hEv, FD_ACCEPT); + if (rc != SOCKET_ERROR) + { + rc = WaitForSingleObject (hEv, INFINITE); + pfn_WSAEventSelect (SOCK_HANDLE (fd), NULL, 0); + pfn_WSACloseEvent (hEv); + if (rc == WAIT_OBJECT_0) + cp->status = STATUS_READ_SUCCEEDED; + } + + return cp->status; +} + int sys_read (int fd, char * buffer, unsigned int count) {
--- a/src/w32.h Fri Jul 14 05:56:32 2006 +0000 +++ b/src/w32.h Sat Jul 29 09:59:12 2006 +0000 @@ -93,6 +93,7 @@ /* fd_info flag definitions */ #define FILE_READ 0x0001 #define FILE_WRITE 0x0002 +#define FILE_LISTEN 0x0004 #define FILE_BINARY 0x0010 #define FILE_LAST_CR 0x0020 #define FILE_AT_EOF 0x0040 @@ -136,6 +137,9 @@ extern void globals_of_w32menu (void); extern void syms_of_fontset (void); +extern int _sys_read_ahead (int fd); +extern int _sys_wait_accept (int fd); + #endif /* EMACS_W32_H */ /* arch-tag: 02c36b00-312b-4c4d-a1d9-f905c5e968f0
--- a/src/w32fns.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/w32fns.c Sat Jul 29 09:59:12 2006 +0000 @@ -2066,6 +2066,7 @@ { HWND hwnd; RECT rect; + Lisp_Object top, left; rect.left = rect.top = 0; rect.right = FRAME_PIXEL_WIDTH (f); @@ -2081,12 +2082,17 @@ w32_init_class (hinst); } + /* When called with RES_TYPE_NUMBER, w32_get_arg will return zero + for anything that is not a number and is not Qunbound. */ + left = w32_get_arg (Qnil, Qleft, "left", "Left", RES_TYPE_NUMBER); + top = w32_get_arg (Qnil, Qtop, "top", "Top", RES_TYPE_NUMBER); + FRAME_W32_WINDOW (f) = hwnd = CreateWindow (EMACS_CLASS, f->namebuf, f->output_data.w32->dwStyle | WS_CLIPCHILDREN, - CW_USEDEFAULT, - SW_SHOW, + EQ (left, Qunbound) ? CW_USEDEFAULT : XINT (left), + EQ (top, Qunbound) ? CW_USEDEFAULT : XINT (top), rect.right - rect.left, rect.bottom - rect.top, NULL,
--- a/src/w32proc.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/w32proc.c Sat Jul 29 09:59:12 2006 +0000 @@ -1,6 +1,6 @@ /* Process support for GNU Emacs on the Microsoft W32 API. Copyright (C) 1992, 1995, 1999, 2000, 2001, 2002, 2003, 2004, - 2005, 2006 Free Software Foundation, Inc. + 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -280,7 +280,10 @@ { int rc; - rc = _sys_read_ahead (cp->fd); + if (fd_info[cp->fd].flags & FILE_LISTEN) + rc = _sys_wait_accept (cp->fd); + else + rc = _sys_read_ahead (cp->fd); /* The name char_avail is a misnomer - it really just means the read-ahead has completed, whether successfully or not. */
--- a/src/w32term.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/w32term.c Sat Jul 29 09:59:12 2006 +0000 @@ -5312,20 +5312,52 @@ { int flags = f->size_hint_flags; - /* Treat negative positions as relative to the leftmost bottommost + /* The sum of the widths of the frame's left and right borders, and + the sum of the heights of the frame's top and bottom borders (in + pixels) drawn by Windows. */ + unsigned int left_right_borders_width, top_bottom_borders_height; + + /* Try to get the actual values of these two variables. We compute + the border width (height) by subtracting the width (height) of + the frame's client area from the width (height) of the frame's + entire window. */ + WINDOWPLACEMENT wp = { 0 }; + RECT client_rect = { 0 }; + + if (GetWindowPlacement (FRAME_W32_WINDOW (f), &wp) + && GetClientRect (FRAME_W32_WINDOW (f), &client_rect)) + { + left_right_borders_width = + (wp.rcNormalPosition.right - wp.rcNormalPosition.left) - + (client_rect.right - client_rect.left); + + top_bottom_borders_height = + (wp.rcNormalPosition.bottom - wp.rcNormalPosition.top) - + (client_rect.bottom - client_rect.top); + } + else + { + /* Use sensible default values. */ + left_right_borders_width = 8; + top_bottom_borders_height = 32; + } + + /* Treat negative positions as relative to the rightmost bottommost position that fits on the screen. */ if (flags & XNegative) f->left_pos = (FRAME_W32_DISPLAY_INFO (f)->width - FRAME_PIXEL_WIDTH (f) - + f->left_pos); + + f->left_pos + - (left_right_borders_width - 1)); if (flags & YNegative) f->top_pos = (FRAME_W32_DISPLAY_INFO (f)->height - FRAME_PIXEL_HEIGHT (f) - + f->top_pos); - /* The left_pos and top_pos - are now relative to the top and left screen edges, - so the flags should correspond. */ + + f->top_pos + - (top_bottom_borders_height - 1)); + + /* The left_pos and top_pos are now relative to the top and left + screen edges, so the flags should correspond. */ f->size_hint_flags &= ~ (XNegative | YNegative); }
--- a/src/window.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/window.c Sat Jul 29 09:59:12 2006 +0000 @@ -4961,9 +4961,9 @@ else if (noerror) return; else if (n < 0) /* could happen with empty buffers */ - Fsignal (Qbeginning_of_buffer, Qnil); + xsignal0 (Qbeginning_of_buffer); else - Fsignal (Qend_of_buffer, Qnil); + xsignal0 (Qend_of_buffer); } else { @@ -4974,7 +4974,7 @@ else if (noerror) return; else - Fsignal (Qbeginning_of_buffer, Qnil); + xsignal0 (Qbeginning_of_buffer); } /* If control gets here, then we vscrolled. */ @@ -5175,7 +5175,7 @@ if (noerror) return; else - Fsignal (Qbeginning_of_buffer, Qnil); + xsignal0 (Qbeginning_of_buffer); } if (pos < ZV) @@ -5261,7 +5261,7 @@ if (noerror) return; else - Fsignal (Qend_of_buffer, Qnil); + xsignal0 (Qend_of_buffer); } }
--- a/src/xdisp.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/xdisp.c Sat Jul 29 09:59:12 2006 +0000 @@ -3867,7 +3867,7 @@ { Lisp_Object form; Lisp_Object location, value; - struct text_pos start_pos; + struct text_pos start_pos, save_pos; int valid_p; /* If SPEC is a list of the form `(when FORM . VALUE)', evaluate FORM. @@ -4084,7 +4084,10 @@ /* Save current settings of IT so that we can restore them when we are finished with the glyph property value. */ + save_pos = it->position; + it->position = *position; push_it (it); + it->position = save_pos; it->area = TEXT_AREA; it->what = IT_IMAGE; @@ -4158,7 +4161,11 @@ { /* Save current settings of IT so that we can restore them when we are finished with the glyph property value. */ + save_pos = it->position; + it->position = *position; push_it (it); + it->position = save_pos; + if (NILP (location)) it->area = TEXT_AREA; else if (EQ (location, Qleft_margin)) @@ -4969,6 +4976,12 @@ case GET_FROM_STRETCH: it->object = p->u.comp.object; break; + case GET_FROM_BUFFER: + it->object = it->w->buffer; + break; + case GET_FROM_STRING: + it->object = it->string; + break; } it->end_charpos = p->end_charpos; it->string_nchars = p->string_nchars; @@ -5288,7 +5301,6 @@ xassert (CHARPOS (pos) >= BEGV && CHARPOS (pos) <= ZV); it->current.pos = it->position = pos; - XSETBUFFER (it->object, current_buffer); it->end_charpos = ZV; it->dpvec = NULL; it->current.dpvec_index = -1; @@ -5786,14 +5798,12 @@ { IT_STRING_BYTEPOS (*it) += it->len; IT_STRING_CHARPOS (*it) += it->cmp_len; - it->object = it->string; goto consider_string_end; } else if (it->method == GET_FROM_BUFFER) { IT_BYTEPOS (*it) += it->len; IT_CHARPOS (*it) += it->cmp_len; - it->object = it->w->buffer; } break; @@ -6033,9 +6043,7 @@ } } - /* Record what we have and where it came from. Note that we store a - buffer position in IT->position although it could arguably be a - string position. */ + /* Record what we have and where it came from. */ it->what = IT_CHARACTER; it->object = it->string; it->position = position; @@ -6750,6 +6758,10 @@ if (reached) break; } + else if (BUFFERP (it->object) + && it->method == GET_FROM_BUFFER + && IT_CHARPOS (*it) >= to_charpos) + skip = MOVE_POS_MATCH_OR_ZV; else skip = move_it_in_display_line_to (it, to_charpos, -1, MOVE_TO_POS); @@ -16553,6 +16565,7 @@ kboard-local variables in the mode_line_format will get the right values. */ push_kboard (FRAME_KBOARD (it.f)); + record_unwind_save_match_data (); display_mode_element (&it, 0, 0, 0, format, Qnil, 0); pop_kboard ();
--- a/src/xfaces.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/xfaces.c Sat Jul 29 09:59:12 2006 +0000 @@ -489,7 +489,6 @@ static int get_lface_attributes P_ ((struct frame *, Lisp_Object, Lisp_Object *, int)); static int load_pixmap P_ ((struct frame *, Lisp_Object, unsigned *, unsigned *)); static unsigned char *xstrlwr P_ ((unsigned char *)); -static void signal_error P_ ((char *, Lisp_Object)); static struct frame *frame_or_selected_frame P_ ((Lisp_Object, int)); static void load_face_font P_ ((struct frame *, struct face *, int)); static void load_face_colors P_ ((struct frame *, struct face *, Lisp_Object *)); @@ -858,17 +857,6 @@ } -/* Signal `error' with message S, and additional argument ARG. */ - -static void -signal_error (s, arg) - char *s; - Lisp_Object arg; -{ - Fsignal (Qerror, Fcons (build_string (s), Fcons (arg, Qnil))); -} - - /* If FRAME is nil, return a pointer to the selected frame. Otherwise, check that FRAME is a live frame, and return a pointer to it. NPARAM is the parameter number of FRAME, for @@ -3290,7 +3278,7 @@ if (EQ (hare, tortoise)) { if (signal_p) - Fsignal (Qcircular_list, Fcons (orig_face, Qnil)); + xsignal1 (Qcircular_list, orig_face); return Qdefault; } }
--- a/src/xfns.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/xfns.c Sat Jul 29 09:59:12 2006 +0000 @@ -770,9 +770,7 @@ if (x_defined_color (f, SDATA (color_name), &cdef, 1)) return cdef.pixel; - Fsignal (Qerror, Fcons (build_string ("Undefined color"), - Fcons (color_name, Qnil))); - return 0; + signal_error ("Undefined color", color_name); }
--- a/src/xselect.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/xselect.c Sat Jul 29 09:59:12 2006 +0000 @@ -562,11 +562,9 @@ && INTEGERP (XCAR (XCDR (check))) && NILP (XCDR (XCDR (check)))))) return value; - else - return - Fsignal (Qerror, - Fcons (build_string ("invalid data returned by selection-conversion function"), - Fcons (handler_fn, Fcons (value, Qnil)))); + + signal_error ("Invalid data returned by selection-conversion function", + list2 (handler_fn, value)); } /* Subroutines of x_reply_selection_request. */ @@ -1356,8 +1354,7 @@ CHECK_VECTOR (vec2); if (XVECTOR (vec2)->size != 2) /* ??? Confusing error message */ - Fsignal (Qerror, Fcons (build_string ("vectors must be of length 2"), - Fcons (vec2, Qnil))); + signal_error ("Vectors must be of length 2", vec2); XVECTOR (vec)->contents [i] = Fmake_vector (2, Qnil); XVECTOR (XVECTOR (vec)->contents [i])->contents [0] = XVECTOR (vec2)->contents [0]; @@ -1734,19 +1731,15 @@ there_is_a_selection_owner = XGetSelectionOwner (display, selection_atom); UNBLOCK_INPUT; - Fsignal (Qerror, - there_is_a_selection_owner - ? Fcons (build_string ("selection owner couldn't convert"), - actual_type - ? Fcons (target_type, - Fcons (x_atom_to_symbol (display, - actual_type), - Qnil)) - : Fcons (target_type, Qnil)) - : Fcons (build_string ("no selection"), - Fcons (x_atom_to_symbol (display, - selection_atom), - Qnil))); + if (there_is_a_selection_owner) + signal_error ("Selection owner couldn't convert", + actual_type + ? list2 (target_type, + x_atom_to_symbol (display, actual_type)) + : target_type); + else + signal_error ("No selection", + x_atom_to_symbol (display, selection_atom)); } if (actual_type == dpyinfo->Xatom_INCR) @@ -1946,10 +1939,7 @@ { if (SCHARS (obj) < SBYTES (obj)) /* OBJ is a multibyte string containing a non-ASCII char. */ - Fsignal (Qerror, /* Qselection_error */ - Fcons (build_string - ("Non-ASCII string must be encoded in advance"), - Fcons (obj, Qnil))); + signal_error ("Non-ASCII string must be encoded in advance", obj); if (NILP (type)) type = QSTRING; *format_ret = 8; @@ -2010,10 +2000,7 @@ (*(Atom **) data_ret) [i] = symbol_to_x_atom (dpyinfo, display, XVECTOR (obj)->contents [i]); else - Fsignal (Qerror, /* Qselection_error */ - Fcons (build_string - ("all elements of selection vector must have same type"), - Fcons (obj, Qnil))); + signal_error ("All elements of selection vector must have same type", obj); } #if 0 /* #### MULTIPLE doesn't work yet */ else if (VECTORP (XVECTOR (obj)->contents [0])) @@ -2029,10 +2016,9 @@ { Lisp_Object pair = XVECTOR (obj)->contents [i]; if (XVECTOR (pair)->size != 2) - Fsignal (Qerror, - Fcons (build_string - ("elements of the vector must be vectors of exactly two elements"), - Fcons (pair, Qnil))); + signal_error ( + "Elements of the vector must be vectors of exactly two elements", + pair); (*(Atom **) data_ret) [i * 2] = symbol_to_x_atom (dpyinfo, display, @@ -2042,10 +2028,8 @@ XVECTOR (pair)->contents [1]); } else - Fsignal (Qerror, - Fcons (build_string - ("all elements of the vector must be of the same type"), - Fcons (obj, Qnil))); + signal_error ("All elements of the vector must be of the same type", + obj); } #endif @@ -2060,10 +2044,9 @@ if (CONSP (XVECTOR (obj)->contents [i])) *format_ret = 32; else if (!INTEGERP (XVECTOR (obj)->contents [i])) - Fsignal (Qerror, /* Qselection_error */ - Fcons (build_string - ("elements of selection vector must be integers or conses of integers"), - Fcons (obj, Qnil))); + signal_error (/* Qselection_error */ + "Elements of selection vector must be integers or conses of integers", + obj); /* Use sizeof(long) even if it is more than 32 bits. See comment in x_get_window_property and x_fill_property_data. */ @@ -2080,9 +2063,7 @@ } } else - Fsignal (Qerror, /* Qselection_error */ - Fcons (build_string ("unrecognized selection data"), - Fcons (obj, Qnil))); + signal_error (/* Qselection_error */ "Unrecognized selection data", obj); *type_ret = symbol_to_x_atom (dpyinfo, display, type); } @@ -2371,15 +2352,13 @@ #define CHECK_CUT_BUFFER(symbol) \ - { CHECK_SYMBOL ((symbol)); \ + do { CHECK_SYMBOL ((symbol)); \ if (!EQ((symbol), QCUT_BUFFER0) && !EQ((symbol), QCUT_BUFFER1) \ && !EQ((symbol), QCUT_BUFFER2) && !EQ((symbol), QCUT_BUFFER3) \ && !EQ((symbol), QCUT_BUFFER4) && !EQ((symbol), QCUT_BUFFER5) \ && !EQ((symbol), QCUT_BUFFER6) && !EQ((symbol), QCUT_BUFFER7)) \ - Fsignal (Qerror, \ - Fcons (build_string ("doesn't name a cut buffer"), \ - Fcons ((symbol), Qnil))); \ - } + signal_error ("Doesn't name a cut buffer", (symbol)); \ + } while (0) DEFUN ("x-get-cut-buffer-internal", Fx_get_cut_buffer_internal, Sx_get_cut_buffer_internal, 1, 1, 0, @@ -2416,10 +2395,9 @@ return Qnil; if (format != 8 || type != XA_STRING) - Fsignal (Qerror, - Fcons (build_string ("cut buffer doesn't contain 8-bit data"), - Fcons (x_atom_to_symbol (display, type), - Fcons (make_number (format), Qnil)))); + signal_error ("Cut buffer doesn't contain 8-bit data", + list2 (x_atom_to_symbol (display, type), + make_number (format))); ret = (bytes ? make_unibyte_string ((char *) data, bytes) : Qnil); /* Use xfree, not XFree, because x_get_window_property
--- a/src/xterm.c Fri Jul 14 05:56:32 2006 +0000 +++ b/src/xterm.c Sat Jul 29 09:59:12 2006 +0000 @@ -363,7 +363,7 @@ static void x_sync_with_move P_ ((struct frame *, int, int, int)); static int handle_one_xevent P_ ((struct x_display_info *, XEvent *, int *, struct input_event *)); -static SIGTYPE x_connection_closed P_ ((Display *, char *)); +static SIGTYPE x_connection_closed P_ ((Display *, char *)) NO_RETURN; /* Flush display of frame F, or of all frames if F is null. */ @@ -7807,7 +7807,7 @@ /* We specifically use it before defining it, so that gcc doesn't inline it, otherwise gdb doesn't know how to properly put a breakpoint on it. */ -static void x_error_quitter (Display *display, XErrorEvent *error); +static void x_error_quitter P_ ((Display *, XErrorEvent *)) NO_RETURN; /* This is the first-level handler for X protocol errors. It calls x_error_quitter or x_error_catcher. */