diff --git a/de_DE.ISO8859-1/articles/Makefile b/de_DE.ISO8859-1/articles/Makefile
index 7d45a87782..f03aafea75 100644
--- a/de_DE.ISO8859-1/articles/Makefile
+++ b/de_DE.ISO8859-1/articles/Makefile
@@ -3,7 +3,6 @@
 #    The FreeBSD German Documentation Project
 #
 #       $FreeBSD$
-#       $FreeBSDde: de-docproj/articles/Makefile,v 1.7 2010/09/18 13:58:33 bcr Exp $
 #       basiert auf:  1.42
 
 SUBDIR = contributing
@@ -11,6 +10,7 @@ SUBDIR+= contributing-ports
 SUBDIR+= explaining-bsd
 SUBDIR+= laptop
 SUBDIR+= linux-comparison
+SUBDIR+= nanobsd
 SUBDIR+= new-users
 SUBDIR+= port-mentor-guidelines
 SUBDIR+= solid-state
diff --git a/de_DE.ISO8859-1/articles/nanobsd/Makefile b/de_DE.ISO8859-1/articles/nanobsd/Makefile
new file mode 100644
index 0000000000..52a520f415
--- /dev/null
+++ b/de_DE.ISO8859-1/articles/nanobsd/Makefile
@@ -0,0 +1,29 @@
+#
+#    The FreeBSD Documentation Project
+#    The FreeBSD German Documentation Project
+#
+#    $FreeBSD$
+#    basiert auf: r39631
+#
+# Article: Einführung in NanoBSD
+
+DOC?= article
+
+FORMATS?= html
+WITH_ARTICLE_TOC?= YES
+
+INSTALL_COMPRESSED?=gz
+INSTALL_ONLY_COMPRESSED?=
+
+# Images from the cross-document image library
+IMAGES_LIB=  callouts/1.png
+IMAGES_LIB+= callouts/2.png
+IMAGES_LIB+= callouts/3.png
+IMAGES_LIB+= callouts/4.png
+
+SRCS=	article.xml
+
+URL_RELPREFIX?=../../../..
+DOC_PREFIX?= ${.CURDIR}/../../..
+
+.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/de_DE.ISO8859-1/articles/nanobsd/article.xml b/de_DE.ISO8859-1/articles/nanobsd/article.xml
new file mode 100644
index 0000000000..875d6c7214
--- /dev/null
+++ b/de_DE.ISO8859-1/articles/nanobsd/article.xml
@@ -0,0 +1,548 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
+	"../../../share/xml/freebsd45.dtd">
+
+<article lang="de">
+  <articleinfo>
+    <title>Einf&uuml;hrung in NanoBSD</title>
+
+    <authorgroup>
+      <author>
+	<firstname>Daniel</firstname>
+	<surname>Gerzo</surname>
+	<!-- 14 March 2006 -->
+      </author>
+    </authorgroup>
+
+    <pubdate>$FreeBSD$</pubdate>
+
+    <copyright>
+      <year>2006</year>
+      <holder>The FreeBSD Documentation Project</holder>
+    </copyright>
+
+    <legalnotice id="trademarks" role="trademarks">
+      &tm-attrib.freebsd;
+      &tm-attrib.general;
+    </legalnotice>
+
+    <abstract>
+      <para>Dieses Dokument stellt Informationen zu den
+	<application>NanoBSD</application> Werkzeugen bereit, die dazu
+	verwendet werden k&ouml;nnen ein &os; Abbild f&uuml;r eingebettete
+	Systeme zu erstellen, welche auf eine Compact Flash Karte
+	passen (oder andere Massenspeicher).</para>
+
+      <para><emphasis>&Uuml;bersetzt von Bj&ouml;rn
+	  Heidotting</emphasis>.</para>
+    </abstract>
+  </articleinfo>
+
+  <sect1 id="intro">
+    <title>Einf&uuml;hrung in NanoBSD</title>
+
+    <indexterm><primary>NanoBSD</primary></indexterm>
+
+    <para><application>NanoBSD</application> ist ein Werkzeug welches
+      derzeit von &a.phk; entwickelt wird.  Es erstellt ein &os;
+      Systemabbild f&uuml;r eingebettete Systeme, die auf eine Compact
+      Flash Karte passen (oder andere Massenspeicher).</para>
+
+    <para>Es kann dazu benutzt werden um spezialisierte
+      Installationsabbilder zu bauen, entworfen f&uuml;r die einfache
+      Installation und Wartung von Systemen die als "Computer
+      Appliances" bekannt sind.  Computer Appliances haben ihre Hard-
+      und Software fest verbaut, dass bedeutet alle Anwendungen sind
+      vorinstalliert.  Die Appliance wird an ein bestehendes Netzwerk
+      angeschlossen und kann mit der Arbeit (fast) sofort
+      beginnen.</para>
+
+    <para>Zu den Eigenschaften von <application>NanoBSD</application>
+      geh&ouml;ren:</para>
+
+    <itemizedlist>
+      <listitem>
+	<para>Ports und Pakete funktionieren wie in &os; &mdash; Jede
+	  einzelne Anwendung kann auf dem
+	  <application>NanoBSD</application> Abbild installiert und
+	  benutzt werden, auf die gleiche Weise wie Sie es aus &os;
+	  gewohnt sind.</para>
+      </listitem>
+
+      <listitem>
+	<para>Keine fehlende Funktionalit&auml;t &mdash; Wenn es m&ouml;glich
+	  ist, etwas mit &os; zu tun, ist es auch m&ouml;glich, die
+	  gleiche Sache mit <application>NanoBSD</application> zu tun,
+	  es sei denn, eine oder mehrere Funktionen wurden
+	  ausdr&uuml;cklich vor dem Bau des
+	  <application>NanoBSD</application> Abbilds entfernt.</para>
+      </listitem>
+
+      <listitem>
+	<para>Zur Laufzeit ist alles read-only  &mdash; Es ist sicher
+	  den Stromstecker zu ziehen.  Es besteht dann keine
+	  Notwendigkeit, einen &man.fsck.8; nach einem nicht
+	  ordnungsgem&auml;&szlig;em Herunterfahren des Systems
+	  auszuf&uuml;hren.</para>
+      </listitem>
+
+      <listitem>
+	<para>Einfach zu bauen und anzupassen &mdash; Unter Verwendung
+	  von nur einem Shell-Skript und einer Konfigurationsdatei ist
+	  es m&ouml;glich, ein reduziertes und angepasstes Abbild zu
+	  bauen, welches jegliche Reihe von Anforderungen
+	  erf&uuml;llt.</para>
+      </listitem>
+    </itemizedlist>
+  </sect1>
+
+  <sect1 id="howto">
+    <title>NanoBSD Anleitung</title>
+
+    <sect2 id="design">
+      <title>Das Design von NanoBSD</title>
+
+      <para>Sobald das Abbild auf dem Medium verf&uuml;gbar ist, kann
+	<application>NanoBSD</application> gebootet werden.  Der
+	Massenspeicher ist standardm&auml;&szlig;ig in drei Teile
+	unterteilt:</para>
+
+      <itemizedlist>
+	<listitem>
+	  <para>Zwei Abbild Partitionen: <literal>code#1</literal> und
+	    <literal>code#2</literal>.</para>
+	</listitem>
+
+	<listitem>
+	  <para>Die Partition der Konfigurationsdatei, welche zur
+	    Laufzeit unter dem <filename
+	      class="directory">/cfg</filename> Verzeichnis gemountet
+	    werden kann.</para>
+	</listitem>
+      </itemizedlist>
+
+      <para>Diese Partitionen sind im Allgemeinen read-only.</para>
+
+      <para>Die <filename class="directory">/etc</filename> und
+	<filename class="directory">/var</filename> Verzeichnisse sind
+	&man.md.4; (malloc) Speicher.</para>
+
+      <para>Die Partition der Konfigurationsdatei besteht unter dem
+	<filename class="directory">/cfg</filename> Verzeichnis.  Sie
+	enth&auml;lt Dateien f&uuml;r das <filename
+	  class="directory">/etc</filename> Verzeichnis und wird
+	direkt nach dem Botten read-only eingehangen, weshalb es
+	erforderlich ist ge&auml;nderte Dateien von <filename
+	  class="directory">/etc</filename> zur&uuml;ck nach <filename
+	  class="directory">/cfg</filename> zu kopieren falls die
+	&Auml;nderungen nach einem Neustart bestehen bleiben
+	sollen.</para>
+
+      <example>
+	<title>Dauerhafte &Auml;nderungen in
+	  <filename>/etc/resolv.conf</filename> vornehmen</title>
+
+	<screen>&prompt.root; <userinput>vi /etc/resolv.conf</userinput>
+[...]
+&prompt.root; <userinput>mount /cfg</userinput>
+&prompt.root; <userinput>cp /etc/resolv.conf /cfg</userinput>
+&prompt.root; <userinput>umount /cfg</userinput></screen>
+      </example>
+
+      <note>
+	<para>Die <filename class="directory">/cfg</filename>
+	  Partition sollte nur w&auml;hrend des Bootvorgangs und zu
+	  &Auml;nderungen an den Konfigurationsdateien gemountet
+	  werden.</para>
+
+	<para>Die <filename class="directory">/cfg</filename>
+	  Partition jederzeit gemountet zu haben ist keine gute Idee,
+	  besonders wenn das <application>NanoBSD</application> System
+	  auf einem Massenspeicher betrieben wird, der eventuell druch
+	  eine gro&szlig;e Anzahl von Schreiboperationen nachteilig
+	  beeintr&auml;chtigt wird (z. B. wenn der Dateisystem-Syncer den
+	  Speicher mit Daten &uuml;berflutet).</para>
+      </note>
+    </sect2>
+
+    <sect2>
+      <title>Ein NanoBSD Abbild erstellen</title>
+
+      <para>Ein <application>NanoBSD</application> Abbild wird &uuml;ber
+	ein einfaches <filename>nanobsd.sh</filename> Shell-Skript
+	gebaut, das sich unter <filename
+	  class="directory"><replaceable>/usr</replaceable>/src/tools/tools/nanobsd</filename>
+	befindet.  Das Skript erstellt ein Abbild, welches dann
+	mittels &man.dd.1; auf einen Massenspeicher kopiert werden
+	kann.</para>
+
+      <para>Die folgenden Kommandos sind notwendig um ein
+	<application>NanoBSD</application> Abbild zu erstellen:</para>
+
+      <screen>&prompt.root; <userinput>cd /usr/src/tools/tools/nanobsd</userinput> <co id="nbsd-cd"/>
+&prompt.root; <userinput>sh nanobsd.sh</userinput> <co id="nbsd-sh"/>
+&prompt.root; <userinput>cd /usr/obj/nanobsd.full</userinput> <co id="nbsd-cd2"/>
+&prompt.root; <userinput>dd if=_.disk.full of=/dev/da0 bs=64k</userinput> <co id="nbsd-dd"/></screen>
+
+      <calloutlist>
+	<callout arearefs="nbsd-cd">
+	  <para>Wechsel in das Basisverzeichnis des
+	    <application>NanoBSD</application> Skripts.</para>
+	</callout>
+
+	<callout arearefs="nbsd-sh">
+	  <para>Den Bauprozess starten.</para>
+	</callout>
+
+	<callout arearefs="nbsd-cd2">
+	  <para>Wechsel in das Verzeichnis, in dem  das gebaute Abbild
+	    liegt.</para>
+	</callout>
+
+	<callout arearefs="nbsd-dd">
+	  <para><application>NanoBSD</application> auf einem
+	    Massenspeicher installieren.</para>
+	</callout>
+      </calloutlist>
+    </sect2>
+
+    <sect2>
+      <title>Ein NanoBSD Abbild anpassen</title>
+
+      <para>Dies ist wahrscheinlich das wichtigste und interessanteste
+	Merkmal von <application>NanoBSD</application>.  Hierbei
+	werden Sie auch die meiste Zeit mit der Entwicklung von
+	<application>NanoBSD</application> verbringen.</para>
+
+      <para>Der Aufruf des folgenden Kommandos wird
+	<filename>nanobsd.sh</filename> dazu zwingen, seine
+	Konfiguration aus <filename>myconf.nano</filename> aus dem
+	aktuellen Verzeichnis zu lesen:</para>
+
+      <screen>&prompt.root; <userinput>sh nanobsd.sh -c myconf.nano</userinput></screen>
+
+      <para>Die Anpassung wird auf zwei Arten geschehen:</para>
+
+      <itemizedlist>
+	<listitem>
+	  <para>Konfigurations-Optionen</para>
+	</listitem>
+
+	<listitem>
+	  <para>Benutzerdefinierte Funktionen</para>
+	</listitem>
+      </itemizedlist>
+
+      <sect3>
+	<title>Konfigurations-Optionen</title>
+
+	<para>Durch Konfigurationseinstellungen ist es m&ouml;glich
+	  Optionen zu &uuml;bergeben, die sowohl die
+	  <maketarget>buildworld</maketarget> und
+	  <maketarget>installworld</maketarget> Phasen des
+	  <application>NanoBSD</application> Bauprozesses betreffen,
+	  sowie interne Optionen, die den Haupt-Bauprozess von
+	  <application>NanoBSD</application> beeinflussen. Durch diese
+	  Optionen ist es m&ouml;glich, das System so zu reduzieren, dass
+	  es mit wenig Platz, etwa 64 MB auskommt. Sie k&ouml;nnen die
+	  Konfigurationsdateien dazu nutzten &os; noch weiter zu
+	  trimmen, bis es nur noch aus dem Kernel und zwei oder drei
+	  Dateien im Userland besteht.</para>
+
+	<para>Die Konfigurationsdatei besteht aus
+	  Konfigurations-Optionen, welche die Standardwerte
+	  &uuml;berschreiben.</para>
+
+	<itemizedlist>
+	  <listitem>
+	    <para><literal>NANO_NAME</literal> &mdash; Name des Build
+	      (wird verwendet, um die workdir Namen zu
+	      konstruieren).</para>
+	  </listitem>
+
+	  <listitem>
+	    <para><literal>NANO_SRC</literal> &mdash; Pfad zum
+	      Quelltextverzeichnis, das f&uuml;r den Bau des Abbilds
+	      verwendet wird.</para>
+	  </listitem>
+
+	  <listitem>
+	    <para><literal>NANO_KERNEL</literal> &mdash; Name der
+	      Kernelkonfigurationsdatei, die f&uuml;r den Bau des Kernels
+	      verwendet wird.</para>
+	  </listitem>
+
+	  <listitem>
+	    <para><literal>CONF_BUILD</literal> &mdash; Optionen f&uuml;r
+	      die <maketarget>buildworld</maketarget> Phase des
+	      Bauprozesses.</para>
+	  </listitem>
+
+	  <listitem>
+	    <para><literal>CONF_INSTALL</literal> &mdash; Optionen
+	      f&uuml;r die <maketarget>installworld</maketarget> Phase
+	      des Bauprozesses.</para>
+	  </listitem>
+
+	  <listitem>
+	    <para><literal>CONF_WORLD</literal> &mdash; Optionen f&uuml;r
+	      die <maketarget>buildworld</maketarget> und
+	      <maketarget>installworld</maketarget> Phasen des
+	      Bauprozesses.</para>
+	  </listitem>
+
+	  <listitem>
+	    <para><literal>FlashDevice</literal> &mdash; Definiert den
+	      zu benutzenden Medientyp.  &Uuml;berpr&uuml;fen Sie die
+	      Datei <filename>FlashDevice.sub</filename> f&uuml;r
+	      weitere Informationen.</para>
+	  </listitem>
+	</itemizedlist>
+      </sect3>
+
+      <sect3>
+	<title>Benutzerdefinierte Funktionen</title>
+
+	<para>Mit Hilfe von Shell-Funktionen in der
+	  Konfigurationsdatei besteht die M&ouml;glichkeit zur
+	  Feinabstimmung von <application>NanoBSD</application>.  Das
+	  folgende Beispiel illustriert das Grundmodell von
+	  benutzerdefinierten Funktionen:</para>
+
+	  <programlisting>cust_foo () (
+	echo "bar=baz" &gt; \
+		&dollar;{NANO_WORLDDIR}/etc/foo
+)
+customize_cmd cust_foo</programlisting>
+
+	<para>Ein besseres Beispiel f&uuml;r eine Anpassung ist folgende,
+	  welche die Standardgr&ouml;&szlig;e des <filename
+	    class="directory">/etc</filename> Verzeichnisses von 5 MB
+	  auf 30 MB &auml;ndert:</para>
+
+	<programlisting>cust_etc_size () (
+	cd &dollar;{NANO_WORLDDIR}/conf
+	echo 30000 &gt; default/etc/md_size
+)
+customize_cmd cust_etc_size</programlisting>
+
+	<para>Es gibt ein paar vordefinierte Standardfunktionen die
+	  Sie nutzen k&ouml;nnen:</para>
+
+	<itemizedlist>
+	  <listitem>
+	    <para><literal>cust_comconsole</literal> &mdash;
+	      Deaktiviert &man.getty.8; auf den VGA Ger&auml;ten (den
+	      <filename>/dev/ttyv*</filename> Ger&auml;tedateien) und
+	      erm&ouml;glicht die Nutzung der seriellen Schnittstelle COM1
+	      als Systemkonsole.</para>
+	  </listitem>
+
+	  <listitem>
+	    <para><literal>cust_allow_ssh_root</literal> &mdash;
+	      Erlaubt es <username>root</username> sich &uuml;ber
+	      &man.sshd.8; anzumelden.</para>
+	  </listitem>
+
+	  <listitem>
+	    <para><literal>cust_install_files</literal> &mdash;
+	      Installiert Dateien aus dem <filename
+		class="directory">nanobsd/Files</filename>
+	      Verzeichnis, das einige n&uuml;tzliche Skripte f&uuml;r die
+	      Systemverwaltung enth&auml;lt.</para>
+	  </listitem>
+	</itemizedlist>
+      </sect3>
+
+      <sect3>
+	<title>Pakete hinzuf&uuml;gen</title>
+
+	<para>Durch benutzerdefinierte Funktionen k&ouml;nnen Pakete zum
+	  <application>NanoBSD</application> Abbild hinzugef&uuml;gt
+	  werden.  Die nachfolgende Funktion installiert alle Pakete
+	  aus
+	  <filename>/usr/src/tools/tools/nanobsd/packages</filename>:</para>
+
+	<programlisting>install_packages () (
+mkdir -p ${NANO_WORLDDIR}/packages
+cp /usr/src/tools/tools/nanobsd/packages/* ${NANO_WORLDDIR}/packages
+chroot ${NANO_WORLDDIR} sh -c 'cd packages; pkg_add -v *;cd ..;'
+rm -rf ${NANO_WORLDDIR}/packages
+)
+customize_cmd install_packages</programlisting>
+      </sect3>
+
+      <sect3>
+	<title>Beispiel einer Konfigurationsdatei</title>
+
+	<para>Ein komplettes Beispiel f&uuml;r eine Konfigurationsdatei
+	  zum Erstellen eines benutzerdefinierten
+	  <application>NanoBSD</application> Abbilds k&ouml;nnte folgende
+	  sein:</para>
+
+	<programlisting>NANO_NAME=custom
+NANO_SRC=/usr/src
+NANO_KERNEL=MYKERNEL
+NANO_IMAGES=2
+
+CONF_BUILD='
+NO_KLDLOAD=YES
+NO_NETGRAPH=YES
+NO_PAM=YES
+'
+
+CONF_INSTALL='
+NO_ACPI=YES
+NO_BLUETOOTH=YES
+NO_CVS=YES
+NO_FORTRAN=YES
+NO_HTML=YES
+NO_LPR=YES
+NO_MAN=YES
+NO_SENDMAIL=YES
+NO_SHAREDOCS=YES
+NO_EXAMPLES=YES
+NO_INSTALLLIB=YES
+NO_CALENDAR=YES
+NO_MISC=YES
+NO_SHARE=YES
+'
+
+CONF_WORLD='
+NO_BIND=YES
+NO_MODULES=YES
+NO_KERBEROS=YES
+NO_GAMES=YES
+NO_RESCUE=YES
+NO_LOCALES=YES
+NO_SYSCONS=YES
+NO_INFO=YES
+'
+
+FlashDevice SanDisk 1G
+
+cust_nobeastie() (
+	touch &dollar;{NANO_WORLDDIR}/boot/loader.conf
+	echo "beastie_disable=\"YES\"" &gt;&gt; &dollar;{NANO_WORLDDIR}/boot/loader.conf
+)
+
+customize_cmd cust_comconsole
+customize_cmd cust_install_files
+customize_cmd cust_allow_ssh_root
+customize_cmd cust_nobeastie</programlisting>
+      </sect3>
+    </sect2>
+
+    <sect2>
+      <title>NanoBSD aktualisieren</title>
+
+      <para>The Update-Prozess von <application>NanoBSD</application>
+	ist relativ einfach:</para>
+
+      <procedure>
+	<step>
+	  <para>Erstellen Sie ein neues
+	    <application>NanoBSD</application> Abbild.</para>
+	</step>
+
+	<step>
+	  <para>Laden Sie das neue Abbild in eine unbenutzte Partition
+	    eines laufenden <application>NanoBSD</application>
+	    Systems.</para>
+
+	  <para>Der wichtigste Unterschied dieses Schrittes zur ersten
+	    <application>NanoBSD</application> Installation besteht
+	    darin, das jetzt anstatt der Datei
+	    <filename>_.disk.full</filename> (enth&auml;lt ein Abbild der
+	    gesamten Platte) die Datei
+	    <filename>_.disk.image</filename> (enth&auml;lt ein Abbild
+	    einer einzelnen System-Partition) installiert wird.</para>
+	</step>
+
+	<step>
+	  <para>Neustart, um das System von der neu installierten
+	    Partition zu starten.</para>
+	</step>
+
+	<step>
+	  <para>Wenn alles gut geht, ist die Aktualisierung
+	    abgeschlossen.</para>
+	</step>
+
+	<step>
+	  <para>Wenn etwas schief l&auml;uft, starten Sie wieder in die
+	    vorherige Partition (die das alte, funktionierende Abbild
+	    enth&auml;lt) um die System-Funktionalit&auml;t so schnell wie
+	    m&ouml;glich wieder herzustellen. Beheben Sie alle Probleme
+	    des neu gebauten Abbilds, und wiederholen Sie den
+	    Vorgang.</para>
+	</step>
+      </procedure>
+
+      <para>Um das neue Abbild auf das laufende
+	<application>NanoBSD</application> System zu installieren, ist
+	es m&ouml;glich, entweder das <filename>updatep1</filename> oder
+	<filename>updatep2</filename> Skript im <filename
+	  class="directory">/root</filename> Verzeichnis zu verwenden,
+	je nachdem, von welcher Partition das aktuelle System
+	l&auml;uft.</para>
+
+      <para>In Abh&auml;ngigkeit davon welche Dienste der Host, der das
+	<application>NanoBSD</application> Abbild anbietet, und welche
+	Art von Transfer bevorzugt wird, bestehen eine von drei zu
+	pr&uuml;fenden M&ouml;glichkeiten:</para>
+
+      <sect3>
+	<title>Verwendung von &man.ftp.1;</title>
+
+	<para>Wenn die &Uuml;bertragungsgeschwindigkeit an erster
+	  Stelle steht, verwenden Sie dieses Beispiel:</para>
+
+	<screen>&prompt.root; <userinput>ftp myhost
+get _.disk.image "| sh updatep1"</userinput></screen>
+      </sect3>
+
+      <sect3>
+	<title>Verwendung von &man.ssh.1;</title>
+
+	<para>Wenn eine sichere &Uuml;bertragung bevorzugt wird,
+	  sollten Sie die Verwendung dieses Beispiels in Betracht
+	  ziehen:</para>
+
+	<screen>&prompt.root; <userinput>ssh myhost cat _.disk.image.gz | zcat | sh updatep1</userinput></screen>
+      </sect3>
+
+      <sect3>
+	<title>Verwendung von &man.nc.1;</title>
+
+	<para>Verwenden Sie dieses Beispiel, wenn auf dem Remote-Host
+	  kein &man.ftpd.8; oder &man.sshd.8; Dienst l&auml;uft:</para>
+
+	<procedure>
+	  <step>
+	    <para>Zun&auml;chst &ouml;ffnen Sie eine TCP-Listener auf dem Host
+	      der das Abbild bereitstellt und zum Client
+	      sendet:</para>
+
+	    <screen>myhost&prompt.root; <userinput>nc -l <replaceable>2222</replaceable> &lt; _.disk.image</userinput></screen>
+
+	    <note>
+	      <para>Stellen Sie sicher das der benutzte Port nicht
+		blockiert wird, um eingehende Verbindungen, vom
+		<application>NanoBSD</application> Host durch die
+		Firewall, zu erm&ouml;glichen.</para>
+	    </note>
+	  </step>
+
+	  <step>
+	    <para>Verbinden Sie sich zum Host der das Abbild
+	      bereitstellt und f&uuml;hren Sie das
+	      <filename>updatep1</filename> Skript aus:</para>
+
+	    <screen>&prompt.root; <userinput>nc myhost <replaceable>2222</replaceable> | sh updatep1</userinput></screen>
+	  </step>
+	</procedure>
+      </sect3>
+    </sect2>
+  </sect1>
+</article>
diff --git a/de_DE.ISO8859-1/books/fdp-primer/book.xml b/de_DE.ISO8859-1/books/fdp-primer/book.xml
index 47117f0cfb..4dd715903b 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/book.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/book.xml
@@ -36,7 +36,7 @@
 
      $FreeBSD$
      $FreeBSDde: de-docproj/books/fdp-primer/book.xml,v 1.24 2012/03/25 14:39:26 bcr Exp $
-     basiert auf: r38826
+     basiert auf: r40986
 -->
 
 <book lang="de">
@@ -140,7 +140,7 @@
 	    <row>
 	      <entry>Datei- und Verzeichnisnamen</entry>
 
-	      <entry>Bearbeiten Sie die Datei
+	      <entry>Bearbeiten Sie
 		<filename>.login</filename>.</entry>
 	    </row>
 
@@ -194,7 +194,7 @@
     </sect1>
 
     <sect1 id="preface-notes">
-      <title>Anmerkungen, Tips, wichtige Hinweise, Warnungen und
+      <title>Anmerkungen, Tipps, wichtige Hinweise, Warnungen und
         Beispiel</title>
 
       <para>An einigen Stellen innerhalb dieses Buchs werden
diff --git a/de_DE.ISO8859-1/books/fdp-primer/doc-build/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/doc-build/chapter.xml
index 0f59db4f4f..b98298a25f 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/doc-build/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/doc-build/chapter.xml
@@ -30,7 +30,7 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38845
+     basiert auf: r39631
 -->
 
 <chapter id="doc-build">
@@ -82,12 +82,12 @@
       Werkzeuge</title>
 
     <para>Zus�tzlich zu den im Kapitel <link
-      linkend="tools">SGML-Werkzeuge</link> beschriebenen
+      linkend="tools">XML-Werkzeuge</link> beschriebenen
       Werkzeugen ben�tigen Sie noch folgende Programme:</para>
 
     <itemizedlist>
       <listitem>
-	<para>Das wichtigste Werzeug zum Bau der Dokumentation ist
+	<para>Das wichtigste Werkzeug zum Bau der Dokumentation ist
 	  <application>make</application>, genauer
 	  <application>Berkeley Make</application>.</para>
       </listitem>
@@ -179,7 +179,7 @@ DOC_PREFIX?= ${.CURDIR}/..
 	Variable <makevar>SUBDIR</makevar> den Wert
 	<literal>articles books</literal>.</para>
 
-      <para>Die Anweisung <makevar>DOC_PREFIX</makevar> zweigt, wie
+      <para>Die Anweisung <makevar>DOC_PREFIX</makevar> zeigt, wie
 	man einer Variable einen Wert zuweist (vorausgesetzt, die
 	Variable ist nicht bereits definiert).  Eine derartige
 	Anweisung ist beispielsweise sinnvoll, wenn sich
@@ -304,7 +304,7 @@ DOC_PREFIX?= ${.CURDIR}/../../..
       <listitem>
 	<para><filename>doc.docbook.mk</filename> wird verwendet, wenn
 	  die Variable <makevar>DOCFORMAT</makevar> den Wert
-	  <literal>docbook</literal> hat und und die Variable
+	  <literal>docbook</literal> hat und die Variable
 	  <makevar>DOC</makevar> gesetzt ist.</para>
       </listitem>
     </itemizedlist>
@@ -502,7 +502,7 @@ PRI_LANG?=	en_US.ISO8859-1
 	<itemizedlist>
 	  <listitem>
 	    <para><literal>exists</literal> gibt "wahr" zur�ck, wenn
-	      wenn die angegebene Datei bereits existiert.</para>
+	      die angegebene Datei bereits existiert.</para>
 	  </listitem>
 
 	  <listitem>
diff --git a/de_DE.ISO8859-1/books/fdp-primer/examples/appendix.xml b/de_DE.ISO8859-1/books/fdp-primer/examples/appendix.xml
index 958bdb08f5..fcc9b34592 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/examples/appendix.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/examples/appendix.xml
@@ -30,13 +30,13 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38847
+     basiert auf: r39632
 -->
 
 <appendix id="examples">
   <title>Beispiele</title>
 
-  <para>In diesem Anhang sind SGML-Beispieldokumente und Befehle
+  <para>In diesem Anhang sind XML-Beispieldokumente und Befehle
     enthalten, die zeigen, wie man aus DocBook-Dokumenten verschiedene
     Ausgabeformate erzeugen kann. Sofern alle Werkzeuge f�r das
     Dokumentationsprojekt ordnungsgem�� installiert wurden,
@@ -51,7 +51,7 @@
     <application>svn</application> doc-Repository und online unter <ulink
     url="http://svnweb.FreeBSD.org/doc/"></ulink> verf�gbar.</para>
 
-  <para>Um Irritationen zu vermeiden, bauen die SGML-Beispiele auf der
+  <para>Um Irritationen zu vermeiden, bauen die XML-Beispiele auf der
     4.1er Standard-DocBook DTD anstatt auf der erweiterten
     FreeBSD-Variante auf. Ebenso werden die Standardstylesheets von
     Norman Welsh, anstatt der angepassten Stylesheets des
@@ -274,7 +274,7 @@
 	<title>Ein DocBook-Dokument nach Postscript umwandeln</title>
 
         <para>Um eine Postscript-Ausgabe zu erzeugen, muss zuerst
-          die SGML-Quelle in eine &tex;-Datei umgewandelt werden.</para>
+          die XML-Quelle in eine &tex;-Datei umgewandelt werden.</para>
 
 	<screen>&prompt.user; <userinput>jade -V tex-backend \ <co id="examples-co-jade-3-tex-backend"/>
     -c /usr/local/share/xml/docbook/dsssl/modular/catalog \ <co id="examples-co-jade-3-catalog"/>
diff --git a/de_DE.ISO8859-1/books/fdp-primer/overview/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/overview/chapter.xml
index f19ff6aa9f..dbfe39477b 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/overview/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/overview/chapter.xml
@@ -30,7 +30,7 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38854
+     basiert auf: r41125
 
 -->
 
@@ -55,7 +55,7 @@
     <primary>Mitgliedschaft</primary>
   </indexterm>
 
-  <para>Wie jedes Opensourceprojekt, ist auch das FDP auf die Mithilfe
+  <para>Wie jedes Open-Source-Projekt, ist auch das FDP auf die Mithilfe
     vieler angewiesen. Deshalb ist jeder herzlich eingeladen
     mitzuarbeiten. Die daf�r erforderlichen Voraussetzungen sind
     gering und es gibt keine Verpflichtung eine bestimmte Menge an
@@ -88,7 +88,7 @@
   <sect1 id="overview-doc">
     <title>Die FreeBSD-Dokumentationsreihe</title>
 
-    <para>Das FDP umfa�t vier verschiedene Kategorien:</para>
+    <para>Das FDP umfasst vier verschiedene Kategorien:</para>
 
     <variablelist>
       <varlistentry>
@@ -114,7 +114,7 @@
 
         <listitem>
           <para>Das Ziel der FAQ ist es, Fragen, die auf den
-            verschiedenen Maillinglisten und in Newsgruppen
+            verschiedenen Mailinglisten und in Newsgruppen
             regelm��ig diskutiert werden, nach einem
             einfachen  Frage- und Antwort-Muster zu behandeln. Das
             schlie�t nicht aus, das auf bestimmte Fragen
@@ -148,12 +148,12 @@
     <para>Die Quellen f�r die FreeBSD-Website, das &os; Handbuch
       sowie die &os; FAQ werden im <literal>doc/</literal>
       Subversion-Repository von &os; verwaltet, das Sie �ber
-      <literal>svn://svn.FreeBSD.org/doc/</literal> erreichen
+      <literal>https://svn.FreeBSD.org/doc/</literal> erreichen
       k�nnen.</para>
 
     <para>Manualpages werden im <literal>src/</literal>
       Subversion-Repository von &os; verwaltet, das Sie �ber
-      <literal>svn://svn.FreeBSD.org/base/</literal> erreichen
+      <literal>https://svn.FreeBSD.org/base/</literal> erreichen
       k�nnen.</para>
 
     <para>Das bedeutet, dass alle �nderungen an den
@@ -225,15 +225,26 @@
 
 	<screen>&prompt.user; <userinput>mkdir -p head/share</userinput>
 &prompt.user; <userinput>mkdir -p head/en_US.ISO8859-1/share</userinput>
-&prompt.user; <userinput>svn checkout svn://svn.FreeBSD.org/doc/head/share head/share</userinput>
-&prompt.user; <userinput>svn checkout svn://svn.FreeBSD.org/doc/head/en_US.ISO8859-1/share head/en_US.ISO8859-1/share</userinput></screen>
+&prompt.user; <userinput>svn checkout <replaceable>https://svn0.us-
+east.FreeBSD.org</replaceable>/doc/head/share head/share</userinput>
+&prompt.user; <userinput>svn checkout <replaceable>https://svn0.us-
+east.FreeBSD.org</replaceable>/doc/head/en_US.ISO8859-1/share head/en_US.ISO8859-1/share</userinput></screen>
 
         <para>F�r den Fall, dass ausreichend Platz auf der
-          Festplatte vorhanden ist, kann auch eine eine
+          Festplatte vorhanden ist, kann auch eine
           vollst�ndige Arbeitskopie des gesamten Subversion-Baumes
           anlegt werden.</para>
 
-	 <screen>&prompt.user; <userinput>svn checkout svn://svn.FreeBSD.org/doc/head head</userinput></screen>
+  <screen>&prompt.user; <userinput>svn checkout <replaceable>https://svn0.us-
+east.FreeBSD.org</replaceable>/doc/head head</userinput></screen>
+
+	<note>
+    	  <para><ulink url="https://svn0.us-east.FreeBSD.org/">svn0.us-east.FreeBSD.org</ulink>
+      	  ist ein �ffentlicher Server. W�hlen Sie einen Mirror
+          in Ihrer N�he und �berpr�fen Sie das Serverzertifikat
+          auf der Seite <ulink url="&url.books.handbook;/svn-mirrors.html">Subversion
+          mirror sites</ulink>.</para>
+	</note>	      
       </step>
 
       <step>
@@ -255,7 +266,8 @@
               <filename>articles</filename> aus dem FreeBSD-CVS-Archiv
               lokal angelegt:</para>
 
-	    <screen>&prompt.user; <userinput>svn checkout svn://svn.FreeBSD.org/doc/head/en_US.ISO8859-1/articles</userinput></screen>
+      <screen>&prompt.user; <userinput>svn checkout <replaceable>https://svn0.us-
+east.FreeBSD.org</replaceable>/doc/head/en_US.ISO8859-1/articles</userinput></screen>
 	  </step>
 
 	  <step>
@@ -269,13 +281,14 @@
 	  </step>
 	</procedure>
 
-	<para>Bereits exisitierende Dokumente, die ge�ndert
+	<para>Bereits existierende Dokumente, die ge�ndert
 	  werden sollen, k�nnen direkt aus dem CVS-Archiv
 	  geholt werden.  Das folgende Beispiel zeigt das
 	  f�r die FAQ aus dem Verzeichnis
           <filename>head/en_US.ISO8859-1/books/faq</filename>:</para>
 
-	<screen>&prompt.user; <userinput>svn checkout svn://svn.FreeBSD.org/doc/head/en_US.ISO8859-1/books/faq</userinput></screen>
+  <screen>&prompt.user; <userinput>svn checkout <replaceable>https://svn0.us-
+east.FreeBSD.org</replaceable>/doc/head/en_US.ISO8859-1/books/faq</userinput></screen>
       </step>
 
       <step>
@@ -339,7 +352,7 @@
       </step>
 
       <step>
-        <para>Zum Schlu� m�ssen die �nderungen an das
+        <para>Zum Schluss m�ssen die �nderungen an das
           FDP mittels &man.send-pr.1; eingesandt werden.</para>
       </step>
     </procedure>
diff --git a/de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml
index 8170263207..7c18f9e9da 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/psgml-mode/chapter.xml
@@ -30,7 +30,7 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38826
+     basiert auf: r39632
 
      Anmerkungen:
      Dieser Text wurde nach dem Lesen von "Technisches Schreiben
@@ -70,7 +70,7 @@
           Funktion Start- und Endtag des neuen Elements ein. Sofern
           das eingef�gte Element laut DTD andere Elemente
           enthalten mu�, werden diese ebenfalls
-          miteingef�gt.</para>
+          eingef�gt.</para>
 
         <para>Falls Sie unsicher sind, wie der Name des
           gew�nschten Elements lautet oder welche Elemente an der
diff --git a/de_DE.ISO8859-1/books/fdp-primer/see-also/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/see-also/chapter.xml
index cf7bd22aa9..d46df3d784 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/see-also/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/see-also/chapter.xml
@@ -30,14 +30,14 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38826
+     basiert auf: r39631
 -->
 
 <chapter id="see-also">
   <title>Weiterf�hrende Quellen</title>
 
   <para>In dieser Fibel werden absichtlich nicht alle Aspekte von
-    SGML, der erw�hnten DTDs und des
+    XML, der erw�hnten DTDs und des
     FreeBSD-Dokumentationsprojekts behandelt. Interessierten werden daher
     die nachfolgenden Quellen empfohlen.</para>
 
@@ -58,20 +58,14 @@
     </itemizedlist>
   </sect1>
 
-  <sect1 id="see-also-sgml">
-    <title>SGML</title>
+  <sect1 id="see-also-xml">
+    <title>XML</title>
 
     <itemizedlist>
       <listitem>
-	<para><ulink url="http://www.oasis-open.org/cover/">Die
-            SGML/XML-Webseite</ulink>, eine umfangreiche Quelle zu
-          SGML.</para>
-      </listitem>
-
-      <listitem>
-	<para><ulink
-            url="http://www-sul.stanford.edu/tools/tutorials/html2.0/gentle.html">Gentle
-            introduction to SGML</ulink></para>
+	<para><ulink url="http://www.w3.org/XML/">W3C's
+            XML-Webseite</ulink>, eine umfangreiche Quelle zu
+            XML.</para>
       </listitem>
     </itemizedlist>
   </sect1>
diff --git a/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.xml
index 6ad69cb4be..4f9e407ffd 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.xml
@@ -30,14 +30,14 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38851
+     basiert auf: r39632
 -->
 
-<chapter id="sgml-markup">
-  <title>SGML-Dokumente erstellen</title>
+<chapter id="xml-markup">
+  <title>XML-Dokumente erstellen</title>
 
-  <para>In diesem Kapitel werden die beiden vom FDP eingesetzen
-    Auszeichnungssprachen HTML und DocBook behandelt. Hierbei
+  <para>In diesem Kapitel werden die beiden vom FDP eingesetzten
+    Auszeichnungssprachen XHTML und DocBook behandelt. Hierbei
     beschr�nkt sich dieses Kapitel auf die Elemente, die bei der
     t�glichen Arbeit am ehesten zum Einsatz kommen werden.</para>
 
@@ -62,7 +62,7 @@
     Oliver Fischer
     -->
 
-    <para>Wenn im folgenden von
+    <para>Wenn im Folgenden von
       <emphasis>Flu�elementen</emphasis> die Rede ist, sind
       damit Elemente gemeint, die in einem Blockelement auftreten
       k�nnen und keinen Zeilenumbruch hervorrufen.
@@ -74,64 +74,64 @@
           �bersetzt.</para></footnote>.</para>
   </note>
 
-  <sect1 id="sgml-markup-html">
-    <title>HTML</title>
+  <sect1 id="xml-markup-xhtml">
+    <title>XHTML</title>
 
-    <para>HTML, die <foreignphrase>HyperText Markup
-      Language</foreignphrase>, ist die Auszeichnungssprache des
-      Internets.  Weitere Informationen zu HTML finden sich unter
+    <para>XHTML ist die XML Version der HyperText Markup Language,
+      der Auszeichnungssprache der Wahl im World Wide Web.
+      Weitere Informationen zu XHTML finden sich unter
       <ulink url="http://www.w3.org/"></ulink>.</para>
 
-    <para>Sie kommt bei der Erstellung der Webseiten des
+    <para>XHTML kommt bei der Erstellung der Webseiten des
       FreeBSD-Projektes zum Einsatz. F�r technische Dokumentationen
-      sollte HTML jedoch nicht eingesetzt werden, da DocBook eine
+      sollte XHTML jedoch nicht eingesetzt werden, da DocBook eine
       gr��ere und bessere Auswahl an Elementen bietet. Folglich
-      sollte HTML nur f�r die FreeBSD-Webseiten verwendet werden.</para>
+      sollte XHTML nur f�r die FreeBSD-Webseiten verwendet werden.</para>
 
     <para>Die HTML-Spezifikation liegt bis jetzt in mehreren Versionen
-      vor: 1, 2, 3.0, 3.2 und (die aktuelle) 4.0. Von letzterer
-      existieren zwei Varianten: <quote>streng</quote> (HTML 4.0
-      Strict) und <quote>locker</quote> (HTML 4.0
-      Transitional).</para>
+      vor: 1, 2, 3.0, 3.2, 4.0 sowie eine XML konforme Version namens
+      XHTML in seiner neuesten Version XHTML 1.0 (verf�gbar als 
+      <emphasis>strict</emphasis> und <emphasis>transitional</emphasis>
+      Variante.</para>
 
-    <para>Die HTML-DTDs  sind �ber den Port <filename
-        role="package">textproc/html</filename> verf�gbar und werden
+    <para>Die XHTML-DTDs sind �ber den Port <filename
+        role="package">textproc/xhtml</filename> verf�gbar und werden
       automatisch als Teil des Metaports <filename
         role="package">textproc/docproj</filename>
-      mitinstalliert.</para>
+      installiert.</para>
 
     <sect2>
       <title>Formale �ffentliche Bezeichner</title>
 
       <!--@todo  Optimierungskandidat. Oliver Fischer -->
-      <para>Da es mehrere Version von HTML gibt, existieren auch
-        mehrere F�Ps,  zu denen  ein HTML-Dokument konform
+      <para>Da es mehrere Version von XHTML gibt, existieren auch
+        mehrere F�Ps, zu denen ein XHTML-Dokument konform
         erkl�rt werden kann. Die Mehrzahl der sich auf der
-        FreeBSD-Webseite befindenen HTML-Seiten sind zu der lockeren
-        Version von HTML 4.0 konform.</para>
+        FreeBSD-Webseite befindenden XHTML-Seiten sind zu der lockeren
+        Version von XHTML 1.0 konform.</para>
 
-      <programlisting>PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"</programlisting>
+      <programlisting>PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"</programlisting>
     </sect2>
 
     <sect2>
       <title>Die Elemente <sgmltag>head</sgmltag> und
         <sgmltag>body</sgmltag></title>
 
-      <para>Ein HTML-Dokument unterteilt sich normalerweise in zwei
+      <para>Ein XHTML-Dokument unterteilt sich normalerweise in zwei
         Bereiche: <quote>head</quote> und <quote>body</quote>. Der
         Kopf (<foreignphrase>head</foreignphrase>) enth�lt  Metadaten
         wie den Dokumententitel und Angaben zum Autor. Der Rumpf
-        (<foreignphrase>body</foreignphrase>) umfa�t den eigentlichen
+        (<foreignphrase>body</foreignphrase>) umfasst den eigentlichen
         Dokumenteninhalt, der f�r den Leser bestimmt ist. In einem
-        HTML-Dokument werden diese Bereiche �ber die Elemente
+        XHTML-Dokument werden diese Bereiche �ber die Elemente
         <sgmltag>head</sgmltag> und <sgmltag>body</sgmltag>
         voneinander abgegrenzt. Beide sind Kinder des Wurzelelementes
         <sgmltag>html</sgmltag>.</para>
 
       <example>
-	<title>Die Struktur eines HTML-Dokumentes</title>
+	<title>Die Struktur eines XHTML-Dokumentes</title>
 
-	<programlisting>&lt;html>
+	<programlisting>&lt;html xmlns="http://www.w3.org/1999/xhtml">
   &lt;head>
     &lt;title><replaceable>Der Dokumententitel</replaceable>&lt;/title>
   &lt;/head>
@@ -151,7 +151,7 @@
       <sect3>
 	<title>�berschriften</title>
 
-        <para>HTML kennt sechs verschiedene Elemente, mit denen
+        <para>XHTML kennt sechs verschiedene Elemente, mit denen
           �berschriften ausgezeichnet werden k�nnen. Das  bekannteste
           Element ist <sgmltag>h1</sgmltag>, das sich am Anfang der
           �berschriftenhierarchie befindet. <sgmltag>h1</sgmltag>
@@ -182,7 +182,7 @@
 <!-- Hier steht der Inhalt des zweiten Kapitels -->]]></programlisting>
 	</example>
 
-        <para>Eine HTML-Seite sollte immer nur eine �berschrift
+        <para>Eine XHTML-Seite sollte immer nur eine �berschrift
           <sgmltag>h1</sgmltag> haben. Dieser �berschrift k�nnen
           beliebig viele Kapitel mit einer �berschrift
           <sgmltag>h2</sgmltag> folgen, die selbst wiederum eine
@@ -211,7 +211,7 @@
       <sect3>
 	<title>Abs�tze</title>
 
-	<para>Abs�tze k�nnen in HTML mit Hilfe des Elementes
+	<para>Abs�tze k�nnen in XHTML mit Hilfe des Elementes
           <sgmltag>p</sgmltag> ausgezeichnet werden.</para>
 
 	<example>
@@ -220,7 +220,7 @@
 	  <para>F�gen Sie in eine der existierenden �bungsdateien folgendes ein:</para>
 
 	  <programlisting><![CDATA[<p>Das hier, das ist ein Absatz. Abs�tze k�nnen
-  andere Elemente enhalten.</p>]]></programlisting>
+  andere Elemente enthalten.</p>]]></programlisting>
 	</example>
       </sect3>
 
@@ -266,7 +266,7 @@
       <sect3>
 	<title>Listen</title>
 
-        <para>HTML kennt drei Arten von Listen: sortierte, unsortierte
+        <para>XHTML kennt drei Arten von Listen: sortierte, unsortierte
           und Definitionslisten. Ein Eintrag in einer sortierten Liste
           wird �blicherweise mit einer Nummer versehen, Eintr�ge in
           unsortierten Listen hingegen mit einem Aufz�hlungspunkt.
@@ -361,10 +361,10 @@
         <para>In einigen F�llen ist es gewollt, dass die Formatierung
           eines Textes im Quelldokument erhalten bleibt, damit der
           Leser diesen genau so sieht, wie ihn der Autor erstellt hat.
-          In der HTML-Spezifikation ist daf�r das Element
+          In der XHTML-Spezifikation ist daf�r das Element
           <sgmltag>pre</sgmltag> vorgesehen, welches daf�r sorgt, dass
           Zeilenumbr�che erhalten bleiben und Leerzeichen nicht
-          zusammengefa�t werden. Browser verwenden f�r den
+          zusammengefasst werden. Browser verwenden f�r den
 	  Inhalt des Elementes <sgmltag>pre</sgmltag>
 	  �blicherweise eine Fixschrift.</para>
 
@@ -414,7 +414,7 @@
             eine angemessene Darstellung sicherzustellen.</para>
 	</note>
 
-        <para>Tabellen lassen sich in HTML mit Hilfe des Elements
+        <para>Tabellen lassen sich in XHTML mit Hilfe des Elements
           <sgmltag>table</sgmltag> auszeichnen. Eine Tabelle setzt
           sich aus einer oder mehreren Zeilen (<sgmltag>tr</sgmltag>)
           zusammen, von denen jede mindestens eine Zelle
@@ -446,10 +446,10 @@
   </tr>
 </table>]]></programlisting></example>
 
-        <para>HTML kennt die M�glichkeit, dass sich eine
+        <para>XHTML kennt die M�glichkeit, dass sich eine
           Zelle mehrere Zeilen und/oder Spalten erstrecken kann.
           Sollen beispielsweise mehrere Spalten zusammenfassen werden,
-          kann dies mit mit Hilfe des Attributes
+          kann dies mit Hilfe des Attributes
           <literal>colspan</literal> erreicht werden, indem man ihm
           die Anzahl der zusammenzufassenden Spalten zuweist.
           �hnliches gilt f�r die Zusammenfassung von Zeilen:
@@ -497,7 +497,7 @@
 	  <title>Gemeinsame Anwendung der Attrbute <literal>rowspan</literal> und
 	    <literal>colspan</literal></title>
 
-	  <programlisting><![CDATA[<p>Eine Tablle mit 3-mal-3 Zellen. Oben links
+	  <programlisting><![CDATA[<p>Eine Tabelle mit 3-mal-3 Zellen. Oben links
   werden 2 mal 2 Zelle zusammengezogen.</p>
 
 <table>
@@ -508,7 +508,7 @@
   </tr>
 
   <tr>
-    <!-- Da sich die zusammengefa�te Zelle �ber zwei Zeilen
+    <!-- Da sich die zusammengefasste Zelle �ber zwei Zeilen
          erstreckt, befindet sich das die durch dieses <td>
          definierte Zelle ganz rechts. -->
 
@@ -541,8 +541,13 @@
           wobei mit <sgmltag>strong</sgmltag> ausgezeichnete Elemente
           fett und mit <sgmltag>em</sgmltag> ausgezeichnete Elemente
           kursiv dargestellt werden. Allerdings ist diese Aussage
-          nicht verl��lich, da die Darstellung vom Browser
-          abh�ngig ist.</para>
+          nicht verl�sslich, da die Darstellung vom Browser
+	  abh�ngig ist. In der Praxis ist es so, dass Webseiten
+          nur strukturelle und semantische Informationen enthalten
+          und Stylesheets sp�ter auf diese Informationen
+          angewendet werden. Beachten Sie also die Semantik und
+          nicht die Formatierung wenn Sie mit diesen
+          Tags arbeiten.</para>
 
 	<example>
 	  <title>Text mit <sgmltag>em</sgmltag> und <sgmltag>strong</sgmltag>
@@ -553,28 +558,6 @@
         </example>
       </sect3>
 
-      <sect3>
-        <!--? Was ist typografisch richtig: schr�g oder kursiv?
-              Oliver Fischer -->
-        <title>Fett- und Schr�gschrift</title>
-
-        <para>Da mittels HTML auch Festlegungen �ber die
-          Darstellung getroffen werden k�nnen, gibt es die
-          M�glichkeit direkt zu bestimmen, dass bestimmte
-          Inhalte fett oder kursiv dargestellt werden sollen. Mit
-          <sgmltag>b</sgmltag> eingefa�te Inhalte werden fett
-          und mit <sgmltag>i</sgmltag> eingefa�te kursiv
-          dargestellt.</para>
-
-	<example>
-	  <title>Text mit <sgmltag>b</sgmltag> und <sgmltag>i</sgmltag>
-            formatieren</title>
-
-	  <programlisting><![CDATA[<p><b>Dieses</b> Wort wird fett dargestellt,
-w�hrend <i>dieses</i> kursiv dargestellt wird.</p>]]></programlisting>
-	</example>
-      </sect3>
-
       <sect3>
 	<title>Nicht-proportionale Schrift f�r Texte</title>
 
@@ -592,68 +575,6 @@ w
 
 	</example>
       </sect3>
-
-      <sect3>
-	<title>�nderung der Schriftgr��e</title>
-
-        <para>HTML bietet auch M�glichkeiten, um Einflu�
-          auf die Schriftgr��e zu nehmen, das hei�t,
-          zu bestimmen, ob die Schrift gr��er oder kleiner
-          als die Standardschrift dargestellt werden soll. Es gibt
-          drei verschiedene Wege, dies zu erreichen:</para>
-
-	<orderedlist>
-	  <listitem>
-            <para>Mittels der Tags <sgmltag>big</sgmltag> und
-              <sgmltag>small</sgmltag> kann die
-              Darstellungsgr��e des eingeschlossenen Textes
-              vergr��ert respektive verkleinert werden.
-              HTML erlaubt es zudem, diese Tags zu verschachteln, so
-              dass auch <literal>&lt;big&gt;&lt;big&gt;Das ist
-                wesentlich
-                gr��er.&lt;/big&gt;&lt;/big&gt;</literal>
-              geschrieben werden kann.</para>
-	  </listitem>
-
-	  <listitem>
-            <para>Das gleiche Ergebnis kann �ber die Zuweisung der
-              Werte <literal>1</literal> und <literal>-1</literal> an
-              das Attribut <sgmltag role="attribute">size</sgmltag>
-              des Tags <sgmltag>font</sgmltag> erreicht werden. Diese
-              Vorgehensweise sollte allerdings als veraltet betrachtet
-              werden, da der Einsatz eines CSS hierf�r die bessere
-              L�sung darstellt.</para>
-	  </listitem>
-
-	  <listitem>
-            <para>�ber die Zuweisung von absoluten Werten im Bereich
-              von <literal>1</literal> bis <literal>7</literal> an das
-              Attribut <literal>size</literal> des Tags
-              <sgmltag>font</sgmltag> <footnote>
-                <para>Der Standardwert f�r <literal>size</literal> ist
-                  <literal>3</literal>.</para></footnote>. Diese
-              Herangehensweise ist ebenfalls veraltet und sollte nicht
-              mehr angewandt werden.</para>
-	  </listitem>
-	</orderedlist>
-
-	<example>
-	  <title>Schriftgr��e �ndern mit
-            <sgmltag>big</sgmltag>, <sgmltag>small</sgmltag> und
-            <sgmltag>font</sgmltag></title>
-
-	  <para>Die folgenden HTML-Schnipsel bewirken alle das gleiche:</para>
-
-	  <programlisting><![CDATA[<p>Dieser Text ist <small>etwas kleiner</small>. Dieser
-  jedoch <big>ein wenig gr��er</big>.</p>
-
-<p>Dieser Text ist <font size="-1">etwas kleiner</font>. Dieser
-  jedoch <font size="+1">ein wenig gr��er</font>.</p>
-
-<p>Dieser Text ist <font size="2">etwas kleiner</font>. Dieser
-  jedoch <font size="4">ein wenig gr��er</font>.</p>]]></programlisting>
-	</example>
-      </sect3>
     </sect2>
 
     <sect2 id="links">
@@ -692,18 +613,18 @@ w
       <sect3>
 	<title>Auf bestimmte Dokumentenabschnitte verweisen</title>
 
-        <para>HTML unterst�tzt neben einfachen Links auch solche, die
+        <para>XHTML unterst�tzt neben einfachen Links auch solche, die
           auf einen bestimmten Abschnitt innerhalb eines Dokumentes
           verweisen. Dazu m�ssen die Abschnitte, auf die verwiesen
           werden soll, mit Hilfe von sogenannten <quote>Ankern</quote>
           markiert werden. Diese Anker k�nnen ebenfalls mit Hilfe des
           Tags <sgmltag>a</sgmltag> gesetzt werden, nur das anstelle
-          von <sgmltag role="attribute">href</sgmltag> das Attribut
-          <sgmltag role="attribute">name</sgmltag> gesetzt werden
+          von <literal>href</literal> das Attribut
+          <literal>name</literal> gesetzt werden
           muss.</para>
 
 	<example>
-	  <title>Anwendung von <literal>&lt;a name="..."&gt;</literal></title>
+	  <title>Anwendung von <literal>&lt;a id="..."&gt;</literal></title>
 
 	  <programlisting><![CDATA[<p><a name="absatz1">Auf</a> diesen Absatz kann mit
   Hilfe seines Namens (<tt>absatz1</tt>) verwiesen werden.</p>]]></programlisting>
@@ -720,7 +641,7 @@ w
 
           <para>F�r dieses Beispiel wird davon ausgegangen, dass der mit
             <literal>absatz1</literal> gekennzeichnete Absatz sich in
-            der HTML-Datei <filename>foo.html</filename>
+            der XHTML-Datei <filename>foo.html</filename>
             befindet.</para>
 
 	  <programlisting><![CDATA[<p>Weitere Informationen k�nnen im
@@ -732,10 +653,10 @@ w
     </sect2>
   </sect1>
 
-  <sect1 id="sgml-markup-docbook">
+  <sect1 id="xml-markup-docbook">
     <title>Die DocBook DTD</title>
 
-    <para>DocBook wurde urspr�glich von HaL Computer Systems and
+    <para>DocBook wurde urspr�nglich von HaL Computer Systems und
       O'Reilly &amp; Associates als DTD f�r das Erstellen von
       technischen Dokumenten entwickelt
 
@@ -749,7 +670,7 @@ w
       DocBook Technical Committee</ulink> gewartet.  DocBook ist sehr
       stark auf die Beschreibung von Inhalten, und nicht auf die
       Darstellung des Inhalts ausgerichtet.  Damit steht es im Gegensatz
-      zu LinuxDoc und HTML.</para>
+      zu LinuxDoc und XHTML.</para>
 
     <note>
       <title>Formelle und informelle Elemente</title>
@@ -758,7 +679,7 @@ w
         vorhanden: <emphasis>formell</emphasis> und
         <emphasis>informell</emphasis>. �blicherweise besitzt die
         formelle Variante einen Titel, dem der eigentliche
-        Elementeninhalt folgt. Die informelle Variante hingegen hat
+        Elementinhalt folgt. Die informelle Variante hingegen hat
         keinen Titel.</para>
     </note>
 
@@ -766,7 +687,7 @@ w
         role="package">textproc/docbook</filename> enthalten und wird
       bei der Installation des Metaports <filename
         role="package">textproc/docproj</filename> automatisch
-      mitinstalliert.</para>
+      installiert.</para>
 
     <sect2>
       <title>Die FreeBSD-Erweiterungen</title>
@@ -807,7 +728,7 @@ w
         Erstellung von Bezeichnern f�r DocBook-Erweiterungen lautet
         der Bezeichner der erweiterten FreeBSD-Variante:</para>
 
-      <programlisting>PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN"</programlisting>
+      <programlisting>PUBLIC "-//FreeBSD//DTD DocBook V4.2-Based Extension//EN"</programlisting>
     </sect2>
 
     <sect2 id="docbookstructure">
@@ -835,7 +756,7 @@ w
         dem Artikel oder Buch geht, wird unterhalb der hier genannten
         Elemente eingef�gt.</para>
 
-      <para>Vom Aufbau her ist ein Artikel ist einfacher strukturiert
+      <para>Vom Aufbau her ist ein Artikel einfacher strukturiert
         als ein Buch. So kann ein Artikel beispielsweise keine Kapitel
         (<sgmltag>chapter</sgmltag>) enthalten. Stattdessen kann der
         Inhalt eines Artikels nur durch die schon bekannten
@@ -854,11 +775,11 @@ w
         enthalten k�nnen.</para>
 
       <para>Alle <ulink url="&url.base;/de/docs.html">Tutorien von
-          FreeBSD</ulink> sind als Artikel verfa�t, w�hrend
+          FreeBSD</ulink> sind als Artikel verfasst, w�hrend
         hingegen die <ulink
         url="&url.books.faq;/index.html">FreeBSD-FAQ</ulink> und das <ulink
         url="&url.books.handbook;/index.html">FreeBSD-Handbuch</ulink> als
-        B�cher verfa�t wurden.</para>
+        B�cher verfasst wurden.</para>
 
       <sect3>
 	<title>B�cher schreiben</title>
@@ -975,7 +896,7 @@ w
 </chapter>]]></programlisting>
 	</example>
 
-        <para>Kapitel k�nnen nicht leer sein. Nebem einem
+        <para>Kapitel k�nnen nicht leer sein. Neben einem
           <sgmltag>title</sgmltag>-Element m�ssen sie weiteren Inhalt
           beinhalten. Falls ein leeres Kapitel ben�tig wird, kann dies
           durch das Einf�gen eines leeren Absatzes
@@ -1068,7 +989,7 @@ w
 	<title>B�cher mittels <sgmltag>part</sgmltag>
           unterteilen</title>
 
-        <para>In den F�llen, in denen die Unteilung eines Buches in
+        <para>In den F�llen, in denen die Unterteilung eines Buches in
           Kapitel nicht ausreichend ist, k�nnen mehrere
 	  Kapitel mit dem Element <sgmltag>part</sgmltag> zu
 	  einem Teil zusammengefasst werden.</para>
@@ -1212,7 +1133,7 @@ w
           Warnungen), <sgmltag>caution</sgmltag> (f�r besonders
           ernstzunehmende Warnungen) und <sgmltag>important</sgmltag>
           (f�r wichtige Anmerkungen) ausgezeichnet werden. Trifft
-          keines dieser Element f�r die auszuzeichnende Stelle
+          keines dieser Elemente f�r die auszuzeichnende Stelle
           zu, sollte diese mit dem Element <sgmltag>sidebar</sgmltag>
           ausgezeichnet werden.</para>
 
@@ -1659,7 +1580,7 @@ main(void)
 
 	    <listitem>
               <para>Eingabeaufforderungen des Rechners
-                (Betriebssysten, Shell oder Anwendung) sind ein h�ufig
+                (Betriebssystem, Shell oder Anwendung) sind ein h�ufig
                 auftretender Teil dessen, was der Benutzer auf dem
                 Bildschirm zu sehen bekommt. Sie sollten mit
                 <sgmltag>prompt</sgmltag> ausgezeichnet werden.</para>
@@ -1667,7 +1588,7 @@ main(void)
               <para>Ein Spezialfall sind die beiden
                 Eingabeaufforderungen der Shell f�r normale
                 Benutzer und den Superuser <username>root</username>.
-                Jedesmal wenn auf eine von diesen beiden Nutzerrollen
+                Jedes mal wenn auf eine von diesen beiden Nutzerrollen
                 hingewiesen werden soll, sollte entweder
                 <literal>&amp;prompt.root;</literal> oder
                 <literal>&amp;prompt.user;</literal> eingesetzt
@@ -1767,7 +1688,7 @@ This is the file called 'foo2'</screen>
 	  <title>Das Element <sgmltag>emphasis</sgmltag></title>
 
 	  <programlisting><![CDATA[<para>FreeBSD ist zweifelslos <emphasis>das</emphasis> f�hrende
-  Unix-artige Bestriebssystem f�r die Intel-Plattform.</para>]]></programlisting>
+  Unix-artige Betriebssystem f�r die Intel-Plattform.</para>]]></programlisting>
 
 	  <para>Darstellung:</para>
 
@@ -1887,7 +1808,7 @@ This is the file called 'foo2'</screen>
           von einem Programm (in einem bestimmten Fall)
           akzeptierten Optionen genannt werden m�ssen.</para>
 
-        <para>Schlu�endlich ist es oft gew�nscht, zu einem
+        <para>Schlussendlich ist es oft gew�nscht, zu einem
           Befehl dessen Abschnitt der Manualseiten im
           Unix-�blichen Stil <quote>Befehl(Zahl)</quote>
           anzugeben.</para>
@@ -1905,7 +1826,7 @@ This is the file called 'foo2'</screen>
 
         <para>Diese Art auf Befehle zu verweisen kann sehr
           erm�dent sein. Daher gibt es einen Satz von
-          <link linkend="sgml-primer-general-entities">Allgemeinen
+          <link linkend="xml-primer-general-entities">Allgemeinen
             Entit�ten</link>, der diese Arbeit erleichtert. Er
           ist in der  Datei
           <filename>doc/share/xml/man-refs.ent</filename> enhalten
@@ -1924,7 +1845,7 @@ This is the file called 'foo2'</screen>
 &lt;!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"&gt;
 %man; &hellip; ]&gt;</programlisting>
 
-        <para>Um Befehle innerhalb des Flie�textes auszuzeichen,
+        <para>Um Befehle innerhalb des Flie�textes auszuzeichnen,
           kann das Element <sgmltag>command</sgmltag> genutzt werden.
           Die Optionen eines Befehles k�nnen mit Hilfe von
           <sgmltag>option</sgmltag> ausgezeichnet werden.</para>
@@ -1946,7 +1867,7 @@ This is the file called 'foo2'</screen>
 	<example>
 	  <title>Anwendungen, Befehle und Optionen</title>
 
-	  <programlisting><![CDATA[<para><application>Sendmail</application> ist der verbreitetste
+	  <programlisting><![CDATA[<para><application>Sendmail</application> ist der verbreiteteste
   UNIX-Mailserver.</para>
 
 <para><application>Sendmail</application> besteht aus den Programmen
@@ -2092,7 +2013,7 @@ This is the file called 'foo2'</screen>
 
         <para>Allerdings besteht nicht immer diese
           Wahlm�glichkeit. Einige Ger�te, wie zum Beispiel
-          Netzwerkkartenm haben keinen Eintrag unter
+          Netzwerkkarten haben keinen Eintrag unter
           <filename>/dev</filename> oder werden anders
           dargestellt.</para>
 
@@ -2103,7 +2024,7 @@ This is the file called 'foo2'</screen>
 	  <programlisting><![CDATA[<para>Unter FreeBSD wird die serielle Daten�bertragung �ber
   <devicename>sio</devicename> abgewickelt, das unterhalb von
   <filename>/dev</filename> eine Reihe von Eintr�gen anlegt.
-  Zu diesen Eintr�gen beh�ren beispielsweise
+  Zu diesen Eintr�gen geh�ren beispielsweise
   <filename>/dev/ttyd0</filename> und
   <filename>/dev/cuaa0</filename>.</para>
 
@@ -2111,7 +2032,7 @@ This is the file called 'foo2'</screen>
     <devicename>ed0</devicename> nicht unterhalb von
     <filename>/dev</filename>.</para>
 
-  <para>Unter MS-DOS wird das erste Diskettelaufwerk als
+  <para>Unter MS-DOS wird das erste Diskettenlaufwerk als
     <devicename>a:</devicename> bezeichnet.  FreeBSD
      bezeichnet es als <filename>/dev/fd0</filename>.</para>]]></programlisting>
 
@@ -2162,7 +2083,7 @@ This is the file called 'foo2'</screen>
 
 	    <listitem>
               <para>Ohne Rollenattribut stellt der umschlossene Text
-                einen normlen Rechnernamen wie
+                einen normalen Rechnernamen wie
                 <literal>freefall</literal> oder
                 <literal>wcarchive</literal> dar. Wenn es
                 gew�nscht ist, kann mittels
@@ -2347,13 +2268,13 @@ This is the file called 'foo2'</screen>
 
 <para>�blicherweise wird, wenn das Ziel <maketarget>all</maketarget>
   aufgerufen wird, die gesamte Anwendung neu erstellt. Der Aufruf
-  des Zieles <maketarget>clean</maketarget> veranla�t das
+  des Zieles <maketarget>clean</maketarget> veranlasst das
   L�schen aller tempor�ren Dateien (zum Beispiel
   <filename>.o</filename>), die w�hrend der �bersetzung erzeugt
   wurden.</para>
 
 <para>Das genaue Verhalten von <maketarget>clean</maketarget>
-  kann von einer Reihe von Variablen beeinflu�t werden.
+  kann von einer Reihe von Variablen beeinflusst werden.
   Stellvertretend seien hier <makevar>CLOBBER</makevar> und
   <makevar>RECURSE</makevar> genannt.</para>]]></programlisting>
 
@@ -2374,7 +2295,7 @@ This is the file called 'foo2'</screen>
 
           <para>Das genaue Verhalten von
             <maketarget>clean</maketarget> kann von einer Reihe von
-            Variablen beeinflu�t werden. Stellvertretend seien
+            Variablen beeinflusst werden. Stellvertretend seien
             hier <makevar>CLOBBER</makevar> und
             <makevar>RECURSE</makevar> genannt.</para>
 	</example>
@@ -2403,7 +2324,7 @@ This is the file called 'foo2'</screen>
 	  <programlisting><![CDATA[<para>Die Zeile <literal>maxusers 10</literal> in der
   Kernelkonfigurationsdatei beeinflu�t die Gr��e vieler
   Systemtabellen und kann als ungef�hr als Richtwert daf�r
-  gelten, wie viele paralle Anmeldungen das System handhaben
+  gelten, wie viele parallele Anmeldungen das System handhaben
   kann.</para>]]></programlisting>
 
 	  <para>Darstellung:</para>
@@ -2609,7 +2530,7 @@ This is the file called 'foo2'</screen>
 	</itemizedlist>
 
         <para>Das folgende Beispiel soll das bisher geschriebene
-          illustrieren. Angenommen es liegt eine einzubindene Grafik
+          illustrieren. Angenommen es liegt eine einzubindende Grafik
           in der Datei <filename>bild1.png</filename> vor, die  die
           Darstellung eines As in einem Rechteck enth�lt. Die
           ASCII-Alternative k�nnte so ausgezeichnet werden:</para>
@@ -2651,7 +2572,7 @@ This is the file called 'foo2'</screen>
               stellen.</para>
 
             <para>Wichtig ist, dass die erste und die letzte
-              Zeile sich gleichauf mit dem �ffenden und dem
+              Zeile sich gleichauf mit dem �ffnenden und dem
               schlie�enden Tag befindet. Dadurch wird
               sichergestellt, dass keine unn�tigen
               Leerzeichen in die Ausgabe aufgenommen werden.</para>
@@ -2708,7 +2629,7 @@ IMAGES+= bild3.png
 
 	<para>Wenn Sie Ihre Dokumentation in mehrere kleine
 	  Dateien aufspalten (siehe
-	  <xref linkend="sgml-primer-include-using-gen-entities"/>),
+	  <xref linkend="xml-primer-include-using-gen-entities"/>),
 	  m�ssen Sie sorgf�ltig vorgehen.</para>
 
         <para>Angenommen es handelt sich um ein Buch, dessen drei
@@ -2721,7 +2642,7 @@ IMAGES+= bild3.png
           Falle gilt es jedoch zu beachten, dass die Pfade der
           Grafikdateien in der Variable <makevar>IMAGES</makevar> und
           in den <sgmltag>imagedata</sgmltag>-Elementen immer auch den
-          Verzeichnisnamen mitenthalten.</para>
+          Verzeichnisnamen enthalten.</para>
 
         <para>Soll beispielsweise die Datei
           <filename>kapitel1/bild1.png</filename> in das in
diff --git a/de_DE.ISO8859-1/books/fdp-primer/sgml-primer/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/sgml-primer/chapter.xml
index b46813fd41..e764116813 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/sgml-primer/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/sgml-primer/chapter.xml
@@ -40,12 +40,12 @@ Oliver Fischer
 
 -->
 
-<chapter id="sgml-primer">
-  <title>Die SGML-Fibel</title>
+<chapter id="xml-primer">
+  <title>Die XML-Fibel</title>
 
-  <para>Die Mehrzahl der Dokumente des FDPs sind in SGML geschrieben.
+  <para>Die Mehrzahl der Dokumente des FDPs sind in XML geschrieben.
     Ziel dieses Kapitels ist es, genau zu erkl�ren, was
-    das bedeutet und wie man die SGML-Quellen liest und versteht.
+    das bedeutet und wie man die XML-Quellen liest und versteht.
     Ebenso werden die in den Quellen genutzten Kniffe erkl�rt,
     auf die man beim Lesen der Dokumente sto�en wird.</para>
 
@@ -53,7 +53,7 @@ Oliver Fischer
     url="http://www.galassi.org/mark/mydocs/docbook-intro/docbook-intro.html">Get
     Going With DocBook</ulink></quote>.</para>
 
-  <sect1 id="sgml-primer-overview">
+  <sect1 id="xml-primer-overview">
     <title>�berblick</title>
 
     <para>In den guten alten Zeiten war der Umgang mit
@@ -64,7 +64,7 @@ Oliver Fischer
       Schnickschnack.</para>
 
     <para>F�r viele Zwecke war dies allerdings nicht ausreichend.
-      Von einem machinenlesbaren Text wird erwartet, dass er auch von
+      Von einem maschinenlesbaren Text wird erwartet, dass er auch von
       Maschinen gelesen und intelligent weiterverarbeitet werden kann.
       Einzelne Stellen sollen hervorgehoben werden, andere sollen in ein
       Glossar aufgenommen werden oder auf andere Textstellen
@@ -99,7 +99,7 @@ Oliver Fischer
       <quote>auszuzeichnen</quote>.</para>
 
     <para>Der Begriff <quote>Auszeichnung<footnote> <para>Im
-            angels�chischschen Sprachraum wird von
+            angels�chsischen Sprachraum wird von
             <quote>markup</quote>
             gesprochen.</para></footnote></quote> bedeutet, dass
       sich der Wert eines Textes erh�ht, aber auch seine Kosten.
@@ -156,11 +156,11 @@ Oliver Fischer
       unterscheiden. Die universelle L�sung ist eine
       Basissprache, mit deren Hilfe weitere Sprachen entwickelt werden
       k�nnen &ndash; eine
-      <emphasis>Meta-Auszeichungssprache</emphasis> also.</para>
+      <emphasis>Meta-Auszeichnungssprache</emphasis> also.</para>
 
     <para>Genau diese Anforderung wird von der Standard Generalized
       Markup Language (<abbrev>SGML</abbrev>) erf�llt. Mit ihrer
-      Hilfe wurden viele andere Auszeichungssprachen wie
+      Hilfe wurden viele andere Auszeichnungssprachen wie
       beispielsweise HTML und DocBook, welche beide von FDP genutzt
       werden, entwickelt.</para>
 
@@ -180,7 +180,7 @@ Oliver Fischer
       inside other markup) and related information.  A DTD is sometimes
       referred to as an <emphasis>application</emphasis> of SGML.</para>-->
 
-    <para id="sgml-primer-validating">Eine DTD ist eine
+    <para id="xml-primer-validating">Eine DTD ist eine
       <emphasis>vollst�ndige</emphasis> Definition aller
       m�glichen Sprachelemente, ihrer
       Reihenfolge<footnote><para>Bei nat�rlichen Sprachen spricht
@@ -217,7 +217,7 @@ Oliver Fischer
       nicht erkl�rt, wie eine DTD entwickelt wird.</para>
     </sect1>
 
-    <sect1 id="sgml-primer-elements">
+    <sect1 id="xml-primer-elements">
     <title>Von Elementen, Tags und Attributen</title>
 
     <!-- Bei der �bersetzung des ersten Satzes bin ich mir nicht
@@ -273,7 +273,7 @@ Oliver Fischer
 
     <para>Wenn man m�chte, kann man sich das als
       <quote>Unterteilung</quote><footnote><para>Im
-          angels�chsichen Sprachraum wird hier von
+          angels�chsischen Sprachraum wird hier von
           <quote>chunking</quote> gesprochen.</para></footnote> des
       Inhalts vorstellen. Auf der obersten Ebene gibt es ein Element:
       das Buch selbst. Schaut man ein wenig tiefer, findet man weitere
@@ -483,7 +483,7 @@ Oliver Fischer
                 werden.</simpara>
               </footnote> gesetzt werden.</para>
 
-            <example id="sgml-primer-envars">
+            <example id="xml-primer-envars">
               <title><filename>.profile</filename>, f�r &man.sh.1; und
                 &man.bash.1; Benutzer</title>
 
@@ -556,7 +556,7 @@ setenv SGML_CATALOG_FILES /usr/doc/de_DE.ISO8859-1/share/xml/catalog:$SGML_CATAL
 
           <para>Bestandteil von <filename role="package">textproc/docproj</filename>
             ist <command>onsgmls</command> - ein <link
-            linkend="sgml-primer-validating">validierender Parser</link>.
+            linkend="xml-primer-validating">validierender Parser</link>.
             <command>onsgmls</command> liest ein Dokument entsprechend einer SGML-DTD
             ein und gibt anschlie�end ein Element-Structure-Information-Set
             (ESIS) aus. Allerdings ist das an dieser Stelle nicht weiter
@@ -672,7 +672,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
         </step>
 
         <step>
-          <para>Zum Schlu� sollte der Tag
+		<para>Zum Schluss sollte der Tag
             <sgmltag>title</sgmltag> wieder in die Beispieldatei
             eingef�gt werden.</para>
           </step>
@@ -680,7 +680,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
     </sect2>
   </sect1>
 
-  <sect1 id="sgml-primer-doctype-declaration">
+  <sect1 id="xml-primer-doctype-declaration">
     <!--? Oliver Fischer: Man sollte mal feststellen, welche Bezeichung
     von w3c.de oder so hier verwendet wird.-->
     <title>Die DOCTYPE-Deklaration</title>
@@ -738,7 +738,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
 
         <listitem>
           <para>Nennt das erste <link
-              linkend="sgml-primer-elements">Element</link>, das im
+              linkend="xml-primer-elements">Element</link>, das im
             Dokument auftaucht.</para>
         </listitem>
       </varlistentry>
@@ -759,7 +759,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
             geh�rt nicht zum �ffentlichen Bezeichner,
             sondern legt fest, wie ein SGML-Parser die DTD finden
             kann. Alternative Wege eine DTD zu referenzieren werden
-            <link linkend="sgml-primer-fpi-alternatives">sp�ter
+            <link linkend="xml-primer-fpi-alternatives">sp�ter
               gezeigt</link>.</para>
         </listitem>
       </varlistentry>
@@ -803,7 +803,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
             <para>Nennt den Besitzer des �ffentlichen Bezeichners.</para>
 
             <para>Falls diese Zeichenkette mit <quote>ISO</quote>
-              beginnt, geh�rt der Bezeichner dem ISO-Kommitee.
+              beginnt, geh�rt der Bezeichner dem ISO-Komitee.
               Der Bezeichner <literal>"ISO 8879:1986//ENTITIES Greek
                 Symbols//EN"</literal> nennt <quote>ISO
                 8879:1986</quote> als den Besitzer des Satzes von
@@ -840,7 +840,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
               ISO-Publikationen, von ISBN-Nummern oder einer
               Organisationsbezeichnungen entsprechend ISO 6523
               abgeleitet werden. Antr�ge f�r neue offiziell
-              registrierte Bezeichner werden vom ISO-Kommitee an das
+              registrierte Bezeichner werden vom ISO-Komitee an das
               American National Standards Institute (ANSI)
               weitergeleitet.</para>
 
@@ -975,20 +975,20 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
         </itemizedlist>
 
         <para>Allerdings sollte das
-          <link linkend="sgml-primer-envars">schon geschehen
+          <link linkend="xml-primer-envars">schon geschehen
             sein</link>.</para>
 
       </sect3>
     </sect2>
 
-    <sect2 id="sgml-primer-fpi-alternatives">
+    <sect2 id="xml-primer-fpi-alternatives">
       <title>Alternativen zu Formalen �ffentlichen Bezeichnern</title>
 
       <para>Anstatt mit einem Bezeichner die zum Dokument
         geh�rende DTD zu referenzieren, kann auch explizit auf
         die Datei der DTD verwiesen werden.</para>
 
-      <para>Die Syntax des DOCTYPE-Deklaration ist in diesem Falle
+      <para>Die Syntax der DOCTYPE-Deklaration ist in diesem Falle
         anders:</para>
       <!--<para>The syntax for this is slightly different:</para>-->
 
@@ -1011,7 +1011,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
     </sect2>
   </sect1>
 
-  <sect1 id="sgml-primer-sgml-escape">
+  <sect1 id="xml-primer-xml-escape">
     <title>Die R�ckkehr zu SGML</title>
 
     <para>An einer fr�heren Stelle wurde erw�hnt, dass
@@ -1033,18 +1033,18 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
       werden kann.</para>
 
     <para>Demnach ist die <link
-        linkend="sgml-primer-doctype-declaration">DOCTYPE-Deklaration</link>
+        linkend="xml-primer-doctype-declaration">DOCTYPE-Deklaration</link>
       ein gutes Beispiel f�r SGML, das in Dokumenten verwendet
       werden muss&hellip;</para>
 
   </sect1>
 
-  <sect1 id="sgml-primer-comments">
+  <sect1 id="xml-primer-comments">
     <title>Kommentare</title>
 
     <para>Kommentare sind SGML-Konstrukte, die normalerweise nur
       in DTDs g�ltig sind. Dennoch ist es, wie in
-      <xref linkend="sgml-primer-sgml-escape"/> gezeigt,
+      <xref linkend="xml-primer-xml-escape"/> gezeigt,
       m�glich Fragmente mit SGML-Syntax in Dokumenten zu
       verwenden.</para>
 
@@ -1139,7 +1139,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
     </sect2>
   </sect1>
 
-  <sect1 id="sgml-primer-entities">
+  <sect1 id="xml-primer-entities">
     <title>Entit�ten</title>
 
     <para>Entit�ten stellen einen Mechanismus dar, mit dem
@@ -1158,14 +1158,14 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
       <emphasis>Allgemeine Entit�ten</emphasis> und
       <emphasis>Parameterentit�ten</emphasis>.</para>
 
-    <sect2 id="sgml-primer-general-entities">
+    <sect2 id="xml-primer-general-entities">
       <title>Allgemeine Entit�ten</title>
 
       <para>Allgemeine Entit�ten k�nnen nur in
 	Dokumenten benutzt werden.  Sie k�nnen zwar im
 	SGML-Kontext definiert aber dort nicht benutzt
 	werden.  Vergleichen Sie dies mit
-        Im <link linkend="sgml-primer-parameter-entities">Parameterentit�ten</link>.</para>
+        Im <link linkend="xml-primer-parameter-entities">Parameterentit�ten</link>.</para>
 
       <para>Jede allgemeine Entit�t hat einen Namen, �ber
         den sie angesprochen werden kann, um den von ihr
@@ -1245,16 +1245,16 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
       </example>
     </sect2>
 
-    <sect2 id="sgml-primer-parameter-entities">
+    <sect2 id="xml-primer-parameter-entities">
       <title>Parameterentit�ten</title>
 
       <para>Genau wie <link
-          linkend="sgml-primer-general-entities">Allgemeine
+          linkend="xml-primer-general-entities">Allgemeine
           Entit�ten</link> werden Parameterentit�ten
         eingesetzt um wiederverwendbare Inhaltsteile mit Namen zu
         versehen. Im Gegensatz zu Allgemeinen Entit�ten
         k�nnen sie aber nur innerhalb eines <link
-          linkend="sgml-primer-sgml-escape">SGML-Kontextes</link>
+          linkend="xml-primer-xml-escape">SGML-Kontextes</link>
         genutzt werden.</para>
 
       <para>Die Definition von Parameterentit�ten erfolgt
@@ -1381,7 +1381,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
     </sect2>
   </sect1>
 
-  <sect1 id="sgml-primer-include">
+  <sect1 id="xml-primer-include">
     <title>Dateien mit Entit�ten einbinden</title>
 
     <!--?
@@ -1390,13 +1390,13 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
     -->
 
     <para>Sowohl <link
-        linkend="sgml-primer-general-entities">Allgemeine</link> als
+        linkend="xml-primer-general-entities">Allgemeine</link> als
       auch <link
-        linkend="sgml-primer-parameter-entities">Parameterentit�ten</link>
+        linkend="xml-primer-parameter-entities">Parameterentit�ten</link>
       sind n�tzliche Helfer, wenn es darum geht, eine Datei in
       eine andere einzubinden.</para>
 
-    <sect2 id="sgml-primer-include-using-gen-entities">
+    <sect2 id="xml-primer-include-using-gen-entities">
       <title>Dateien mit Allgemeinen Entit�ten einbinden</title>
 
       <para>Angenommen man hat ein Buch geschrieben, dessen Inhalt
@@ -1634,7 +1634,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
     </sect2>
   </sect1>
 
-  <sect1 id="sgml-primer-marked-sections">
+  <sect1 id="xml-primer-marked-sections">
     <title>Markierte Bereiche</title>
 
     <para>SGML erlaubt es, dass bestimmte Dokumentabschnitte
@@ -1811,7 +1811,7 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
 
         <para>Kombiniert man <literal>IGNORE</literal> hingegen mit
           <link
-            linkend="sgml-primer-parameter-entities">Parameterentit�ten</link>,
+            linkend="xml-primer-parameter-entities">Parameterentit�ten</link>,
           steht so ein  Weg zur Verf�gung, um dessen Anwendung
           besser  steuern zu k�nnen. Zwar k�nnen
           Parameterentit�ten nur in einem SGML-Kontext einsetzt
@@ -1923,8 +1923,8 @@ onsgmls:beispiel.xml:6:8:E: end tag for "HEAD" which is not finished</screen>
     </sect2>
   </sect1>
 
-  <sect1 id="sgml-primer-conclusion">
-    <title>Schlu�bemerkung</title>
+  <sect1 id="xml-primer-conclusion">
+    <title>Schlussbemerkung</title>
 
     <para>Aus Platzgr�nden, und um der Verst�ndlichkeit
       Willen, wurden viele Gesichtspunkte nicht in aller Tiefe
diff --git a/de_DE.ISO8859-1/books/fdp-primer/structure/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/structure/chapter.xml
index 39c7607cf4..33915bf998 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/structure/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/structure/chapter.xml
@@ -30,7 +30,7 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38868
+     basiert auf: r39632
 -->
 
 <chapter id="structure">
@@ -216,7 +216,7 @@
 	  <title><filename>Makefile</filename></title>
 
 	  <para>Das <filename>Makefile</filename> definiert verschiedene
-	    Variablen zur Konvertierung der SGML-Quellen in andere
+	    Variablen zur Konvertierung der XML-Quellen in andere
 	    Formate.  Au�erdem listet es die verschiedenen Dateien
 	    auf, aus denen das Handbuch gebaut wird.  Zus�tzlich
 	    wird die Standard-<filename>doc.project.mk</filename>
@@ -228,17 +228,17 @@
 	  <title><filename>book.xml</filename></title>
 
 	  <para>Das Hauptdokument innerhalb des Handbuchs.  Neben der
-	    <link linkend="sgml-primer-doctype-declaration">
+	    <link linkend="xml-primer-doctype-declaration">
 	    DOCTYPE-Deklaration</link> des Handbuchs werden hier auch
 	    die Elemente aufgelistet, die die Struktur des Handbuchs
 	    definieren.</para>
 
 	  <para><filename>book.xml</filename> verwendet <link
-	    linkend="sgml-primer-parameter-entities">
+	    linkend="xml-primer-parameter-entities">
 	    Parameterentit�ten</link>, um Dateien mit der
 	    Endung <filename>.ent</filename> zu laden.  Diese
 	    Dateien definieren die <link
-	    linkend="sgml-primer-general-entities">allgemeinen
+	    linkend="xml-primer-general-entities">allgemeinen
 	    Entit�ten</link>, die innerhalb des Handbuchs
 	    verwendet werden.</para>
 	</sect4>
@@ -265,8 +265,8 @@
 	    <filename>kernelconfig</filename>.  Im Allgemeinen
 	    enth�lt diese Datei das komplette Kapitel.</para>
 
-	  <para>Wird die HTML-Version des Handbuchs gebaut, entsteht
-	    dadurch die HTML-Datei
+	  <para>Wird die XHTML-Version des Handbuchs gebaut, entsteht
+	    dadurch
 	    <filename>kernelconfig.html</filename>.  Der Grund
 	    daf�r ist allerdings der Wert des
 	    <literal>id</literal>-Attributs, und nicht der Name des
@@ -285,7 +285,7 @@
 	    werden zentral im Verzeichnis <filename
 	    class="directory">share/images/books/handbook</filename>
 	    gespeichert.  Existiert eine lokalisierte Version eines
-	    Bildes, wird diese hingegen gemeinsam mit dem SGML-Quellcode
+	    Bildes, wird diese hingegen gemeinsam mit dem XML-Quellcode
 	    im gleichen Verzeichnis gespeichert.  Ein Vorteil
 	    dieser Methode ist beispielsweise die Vermeidung von
 	    Namenskollisionen.  Au�erdem ist es
@@ -313,7 +313,7 @@
 	  </important>
 
 	  <para>Die Datei <filename>chapter.xml</filename> ist keine
-	    komplette SGML-Datei, da unter anderem die Zeilen mit
+	    komplette XML-Datei, da unter anderem die Zeilen mit
 	    der DOCTYPE-Deklaration am Beginn der Datei nicht
 	    vorhanden sind.</para>
 
diff --git a/de_DE.ISO8859-1/books/fdp-primer/stylesheets/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/stylesheets/chapter.xml
index c578236df5..7047aa418c 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/stylesheets/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/stylesheets/chapter.xml
@@ -30,7 +30,7 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38869
+     basiert auf: r39632
 -->
 
 <chapter id="stylesheets">
@@ -54,7 +54,7 @@
     beispielsweise DynaText, Panorama, SPICE, JSSS, FOSI, CSS, DSSSL
     und andere mehr.</para>
 
-  <para>DocBook verwendet in DSSSL geschriebene Stylesheets.  HTML
+  <para>DocBook verwendet in DSSSL geschriebene Stylesheets.  XHTML
     verwendet hingegen in CSS geschriebene Stylesheets.</para>
 
   <sect1 id="stylesheets-dsssl">
@@ -80,8 +80,8 @@
     <title>CSS</title>
 
     <para>Cascading Stylesheets (CSS) erlauben es, Elementen eines
-      HTML-Dokuments Formatangaben (wie Schriftart, Gr��e,
-      Schriftfarbe und andere mehr) zuzuweisen, ohne das HTML-Dokument
+      XHTML-Dokuments Formatangaben (wie Schriftart, Gr��e,
+      Schriftfarbe und andere mehr) zuzuweisen, ohne das XHTML-Dokument
       mit diesen Informationen zu �berfrachten.</para>
 
     <sect2>
@@ -89,10 +89,10 @@
 
       <para>The FreeBSD DSSSL-Stylesheets enthalten eine Referenz auf
         ein Stylesheet namens <filename>docbook.css</filename>, das sich
-        im gleichen Verzeichnis wie die HTML-Dateien befindet.  Diese
+        im gleichen Verzeichnis wie die XHTML-Dateien befindet.  Diese
         projektweite CSS-Datei wird automatisch von
         <filename>doc/share/misc/docbook.css</filename> kopiert und
-        installiert, wenn DocBook-Dokumente nach HTML konvertiert
+        installiert, wenn DocBook-Dokumente nach XHTML konvertiert
         werden.</para>
     </sect2>
   </sect1>
diff --git a/de_DE.ISO8859-1/books/fdp-primer/the-website/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/the-website/chapter.xml
index 76f757a07f..a1adb37ffe 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/the-website/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/the-website/chapter.xml
@@ -30,7 +30,7 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38870
+     basiert auf: r41125
 -->
 
 <chapter id="the-website">
@@ -83,7 +83,15 @@
       <para>Um alle zum Bau der Webseite ben�tigten Quellen
 	auszuchecken, f�hren Sie den folgenden Befehl aus:</para>
 
-      <screen>&prompt.root; <userinput><command>svn checkout svn://svn.FreeBSD.org/doc/head/ <replaceable>/usr/build</replaceable></command></userinput></screen>
+<screen>&prompt.root; <userinput><command>svn checkout <replaceable>https://svn0.us-
+east.FreeBSD.org</replaceable>/doc/head/ <replaceable>/usr/build</replaceable></command></userinput></screen>
+
+      <para><ulink
+	url="https://svn0.us-east.FreeBSD.org/">svn0.us-east.FreeBSD.org</ulink>
+	ist ein �ffentlicher Server. W�hlen Sie einen Mirror in Ihrer
+	N�he und �berpr�fen Sie das Serverzertifikat aus der Liste
+	<ulink url="&url.books.handbook;/svn-mirrors.html">Subversion
+	mirror sites</ulink>.</para>
 
       <tip>
 	<para>Falls Sie <command>svn</command> nicht als Benutzer
diff --git a/de_DE.ISO8859-1/books/fdp-primer/tools/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/tools/chapter.xml
index bcdcbd7d7e..5cad0b9773 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/tools/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/tools/chapter.xml
@@ -30,7 +30,7 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38826
+     basiert auf: r39631
 -->
 
 <chapter id="tools">
@@ -110,7 +110,7 @@
       <para>Die folgenden Programme sind notwendig, um sinnvoll
         an der FreeBSD-Dokumentation arbeiten und diese in andere
         Formate wie HTML, reinen Text und RTF umwandeln zu
-        k�nnen.  Sie m�ssen diese aber nicht seperat
+        k�nnen.  Sie m�ssen diese aber nicht separat
         installieren, da alle Programme automatisch durch den
         Metaport <filename
         role="package">textproc/docproj</filename> installiert
diff --git a/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.xml
index ed36ca7129..3ccb09e9c5 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.xml
@@ -30,7 +30,7 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38888
+     basiert auf: r41125
 -->
 
 <chapter id="translations">
@@ -154,7 +154,17 @@
 	  Subversion-Repository (als Minimum den Dokumentationsteil)
 	  anzulegen.  Dazu geben Sie den folgenden Befehl ein:</para>
 
-	<screen>&prompt.user; <userinput><command>svn</command> checkout svn://svn.FreeBSD.org/doc/head/ head</userinput></screen>
+  <screen>&prompt.user; <userinput><command>svn</command> checkout <replaceable>https://svn0.us-east.FreeBSD.org</replaceable>/doc/head/ head</userinput></screen>
+
+        <note>
+	  <para><ulink
+	    url="https://svn0.us-east.FreeBSD.org/">svn0.us-east.FreeBSD.org</ulink>
+	    ist ein �ffentlicher Server. W�hlen Sie einen Mirror in
+	    Ihrer N�he und �berpr�fen Sie das Serverzertifikat auf der
+	    Seite <ulink
+	    url="&url.books.handbook;/svn-mirrors.html">Subversion
+	    mirror sites</ulink>.</para>
+        </note>
 
 	<note>
 	  <para>Damit dieser Befehl funktioniert, muss der Port
diff --git a/de_DE.ISO8859-1/books/fdp-primer/writing-style/chapter.xml b/de_DE.ISO8859-1/books/fdp-primer/writing-style/chapter.xml
index 7739ae90bd..5dc80f2671 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/writing-style/chapter.xml
+++ b/de_DE.ISO8859-1/books/fdp-primer/writing-style/chapter.xml
@@ -30,7 +30,7 @@
 
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r38872
+     basiert auf: r40542
 -->
 
 <chapter id="writing-style">
@@ -131,12 +131,12 @@
 	  zweiten Beispiels.</para>
 
 	<informalexample>
-	  <para>Verwenden Sie den Befehl <command>cvsup</command>, um
+	  <para>Verwenden Sie den Befehl <command>svn</command>, um
 	    Ihre Quellen zu aktualisieren.</para>
 	</informalexample>
 
 	<informalexample>
-	  <para>Verwenden Sie <command>cvsup</command>, um Ihre Quellen
+	  <para>Verwenden Sie <command>svn</command>, um Ihre Quellen
 	    zu aktualisieren.</para>
 	</informalexample>
 
diff --git a/de_DE.ISO8859-1/htdocs/ports/Makefile b/de_DE.ISO8859-1/htdocs/ports/Makefile
index f5dea5f3d5..4c197e2dfc 100644
--- a/de_DE.ISO8859-1/htdocs/ports/Makefile
+++ b/de_DE.ISO8859-1/htdocs/ports/Makefile
@@ -27,7 +27,7 @@ ${INDEX}:
 .endif
 
 HOSTNAME!= hostname
-.if ${HOSTNAME} == "hub.freebsd.org" || ${HOSTNAME} == "freefall.freebsd.org" || ${HOSTNAME} == "www.freebsd.org"
+.if ${HOSTNAME} == "hub.freebsd.org" || ${HOSTNAME} == "freefall.freebsd.org" || ${HOSTNAME} == "www.freebsd.org" || ${HOSTNAME} == "build-web.stream.FreeBSD.org"
 CLUSTER_MACHINE=	YES
 .endif
 
diff --git a/de_DE.ISO8859-1/htdocs/where.xml b/de_DE.ISO8859-1/htdocs/where.xml
index ea5a390df7..010f8b84c5 100644
--- a/de_DE.ISO8859-1/htdocs/where.xml
+++ b/de_DE.ISO8859-1/htdocs/where.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE html PUBLIC "-//FreeBSD//DTD XHTML 1.0 Transitional-Based Extension//EN"
 "http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
 <!ENTITY dedate "$FreeBSDde$">
-<!ENTITY reference "basiert auf: r41232">
+<!ENTITY reference "basiert auf: r41269">
 <!ENTITY title "FreeBSD Bezugsquellen">
 <!ENTITY url.rel "ftp://ftp.FreeBSD.org/pub/FreeBSD/releases">
 ]>
@@ -76,7 +76,7 @@
         </tr>
         <tr>
           <td></td>
-          <td>amd64</td>
+          <td>amd64<br/>(x86-64, x64)</td>
           <td><a href="&url.rel;/amd64/amd64/&rel.current;-RELEASE">[Distribution]</a></td>
           <td><a href="&url.rel;/amd64/amd64/ISO-IMAGES/&rel.current;/">[ISO]</a></td>
         </tr>
@@ -122,7 +122,7 @@
         </tr>
         <tr>
           <td></td>
-          <td>amd64</td>
+          <td>amd64<br/>(x86-64, x64)</td>
           <td><a href="&url.rel;/amd64/&rel2.current;-RELEASE">[Distribution]</a></td>
           <td><a href="&url.rel;/amd64/ISO-IMAGES/&rel2.current;/">[ISO]</a></td>
         </tr>
@@ -157,7 +157,7 @@
 	</tr>
 	<tr>
 	  <td></td>
-	  <td>amd64</td>
+	  <td>amd64<br/>(x86-64, x64)</td>
 	  <td><a href="&url.rel;/amd64/&rel3.current;-RELEASE">[Distribution]</a></td>
 	  <td colspan="2" align="right"><a href="&url.rel;/amd64/ISO-IMAGES/&rel3.current;/">[ISO]</a></td>
 	</tr>
diff --git a/de_DE.ISO8859-1/share/xml/news.xml b/de_DE.ISO8859-1/share/xml/news.xml
index 38460194a4..3a09d17989 100644
--- a/de_DE.ISO8859-1/share/xml/news.xml
+++ b/de_DE.ISO8859-1/share/xml/news.xml
@@ -4,7 +4,7 @@
 <!--
      $FreeBSD$
      $FreeBSDde$
-     basiert auf: r41225
+     basiert auf: r41381
 -->
 
 <!-- Simple schema for FreeBSD Project news.
@@ -38,9 +38,55 @@
   <year>
     <name>2013</name>
 
+    <month>
+      <name>4</name>
+
+      <day>
+	<name>3</name>
+
+	<event>
+	  <p>Erweiterte Commit-Privilegien: <a
+	    href="mailto:antoine@FreeBSD.org">Antoine Brodin</a> (src, ports)</p>
+	</event>
+      </day>
+
+      <day>
+	<name>1</name>
+
+	<event>
+	  <p>Neuer Committer: <a
+	    href="mailto:wg@FreeBSD.org">William Grzybowski</a> (ports)</p>
+	</event>
+      </day>
+    </month>
+    
     <month>
       <name>3</name>
 
+      <day>
+	<name>27</name>
+
+	<event>
+	  <p>Erweiterte Commit-Privilegien: <a
+	    href="mailto:tijl@FreeBSD.org">Tijl Coosemans</a> (src, ports)</p>
+	</event>
+      </day>
+      
+      <day>
+	<name>22</name>
+
+	<event>
+	  <title>&os;&nbsp;8.4-BETA1 verf�gbar</title>
+
+	  <p>Die erste BETA-Version aus dem &os;-8.4-Releasezyklus ist
+	    <a href="&lists.stable;/2013-March/072913.html">verf�gbar</a>.
+	    ISO-Images f�r die Architekturen amd64, i386 sowie
+	    pc98 sind inzwischen auf den meisten <a
+            href="&enbase;/doc/de_DE.ISO8859-1/books/handbook/mirrors-ftp.html">&os;
+	    Spiegelservern</a> vorhanden.</p>
+	</event>
+      </day>
+
       <day>
 	<name>14</name>
 
diff --git a/de_DE.ISO8859-1/share/xml/release.l10n.ent b/de_DE.ISO8859-1/share/xml/release.l10n.ent
index 7685ffd9dc..4e5d8bcdcf 100644
--- a/de_DE.ISO8859-1/share/xml/release.l10n.ent
+++ b/de_DE.ISO8859-1/share/xml/release.l10n.ent
@@ -1,4 +1,9 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
+<!--
+     $FreeBSD$
+     $FreeBSDde$
+     basiert auf: r41289
+-->
 <![%beta2.testing;[
 <!ENTITY beta.plural 'en'>
 ]]>
@@ -85,39 +90,47 @@
           <td colspan="2">Version &amp; Plattform</td>
           <td>Distribution</td>
           <td title="ISO9660 CD image"><a href="&enbase;/doc/de_DE.ISO8859-1/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
-          <td>Statusseite</td>
+          <!--<td>Statusseite</td>-->
         </tr>
       </thead>
       <tbody>
         <tr>
           <td colspan="2">FreeBSD &betarel.current;-&betarel.vers;</td>
           <td colspan="2"></td>
-          <td rowspan="7"><a href="http://wiki.freebsd.org/Releng/&betarel.current;TODO">[Lesen]</a></td>
+	  <!--<td rowspan="7"><a href="http://wiki.freebsd.org/Releng/&betarel.current;TODO">[View]</a></td>-->
         </tr>
         <tr>
           <td></td>
-          <td>amd64</td>
-          <td><a href="&url.rel;/amd64/amd64/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
-          <td><a href="&url.rel;/amd64/amd64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td>amd64<br/>(x86-64, x64)</td>
+          <td><a href="&url.rel;/amd64/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
+          <td><a href="&url.rel;/amd64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
         <tr>
           <td></td>
           <td>i386</td>
-          <td><a href="&url.rel;/i386/i386/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
-          <td><a href="&url.rel;/i386/i386/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td><a href="&url.rel;/i386/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
+          <td><a href="&url.rel;/i386/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>pc98</td>
+          <td><a href="&url.rel;/pc98/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
+          <td><a href="&url.rel;/pc98/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+        </tr>
+	<!--
+        <tr>
+          <td></td>
+          <td>sparc64</td>
+          <td><a href="&url.rel;/sparc64/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
+          <td><a href="&url.rel;/sparc64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
         <tr>
           <td></td>
           <td>powerpc64</td>
-          <td><a href="&url.rel;/powerpc/powerpc64/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
-          <td><a href="&url.rel;/powerpc/powerpc64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>sparc64</td>
-          <td><a href="&url.rel;/sparc64/sparc64/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
-          <td><a href="&url.rel;/sparc64/sparc64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td><a href="&url.rel;/powerpc/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
+          <td><a href="&url.rel;/powerpc/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
+	-->
       </tbody>
     </table>
 
diff --git a/en_US.ISO8859-1/articles/contributors/contrib.additional.xml b/en_US.ISO8859-1/articles/contributors/contrib.additional.xml
index a695819954..5e1fcb9f59 100644
--- a/en_US.ISO8859-1/articles/contributors/contrib.additional.xml
+++ b/en_US.ISO8859-1/articles/contributors/contrib.additional.xml
@@ -843,6 +843,11 @@
 	<email>a.reilly@lake.com</email></para>
     </listitem>
 
+    <listitem>
+      <para>Andrew Romanenko
+	<email>melanhit@gmail.com</email></para>
+    </listitem>
+
     <listitem>
       <para>Andrew S. Midthune
 	<email>amidthune@cableone.net</email></para>
@@ -3574,6 +3579,11 @@
 	<email>xcas@cox.net</email></para>
     </listitem>
 
+    <listitem>
+      <para>Greg Kennedy
+	<email>kennedy.greg@gmail.com</email></para>
+    </listitem>
+
     <listitem>
       <para>Greg Robinson
 	<email>greg@rosevale.com.au</email></para>
@@ -7408,6 +7418,11 @@
 	<email>nikola.lecic@anthesphoria.net</email></para>
     </listitem>
 
+    <listitem>
+      <para>Nikola Kolev
+	<email>koue@chaosophia.net</email></para>
+    </listitem>
+
     <listitem>
       <para>Nikos Ntarmos
 	<email>ntarmos@ceid.upatras.gr</email></para>
@@ -10402,6 +10417,11 @@
 	<email>tzhuan@gmail.com</email></para>
     </listitem>
 
+    <listitem>
+      <para>Tzanetos Balitsaris
+	<email>tzabal@it.teithe.gr</email></para>
+    </listitem>
+
     <listitem>
       <para>UMENO Takashi
 	<email>umeno@rr.iij4u.or.jp</email></para>
@@ -10793,11 +10813,6 @@
 	<email>wvengen@stack.nl</email></para>
     </listitem>
 
-    <listitem>
-      <para>William Grzybowski
-	<email>william88@gmail.com</email></para>
-    </listitem>
-
     <listitem>
       <para>William Jolitz
 	<email>withheld</email></para>
diff --git a/en_US.ISO8859-1/articles/contributors/contrib.committers.xml b/en_US.ISO8859-1/articles/contributors/contrib.committers.xml
index e680c609b8..d79f3d4082 100644
--- a/en_US.ISO8859-1/articles/contributors/contrib.committers.xml
+++ b/en_US.ISO8859-1/articles/contributors/contrib.committers.xml
@@ -495,6 +495,10 @@
       <para>&a.edwin;</para>
     </listitem>
 
+    <listitem>
+      <para>&a.wg;</para>
+    </listitem>
+
     <listitem>
       <para>&a.bar;</para>
     </listitem>
diff --git a/en_US.ISO8859-1/articles/freebsd-questions/article.xml b/en_US.ISO8859-1/articles/freebsd-questions/article.xml
index 63acc47dc7..0ea4545f87 100644
--- a/en_US.ISO8859-1/articles/freebsd-questions/article.xml
+++ b/en_US.ISO8859-1/articles/freebsd-questions/article.xml
@@ -19,7 +19,6 @@
     <legalnotice id="trademarks" role="trademarks">
       &tm-attrib.freebsd;
       &tm-attrib.microsoft;
-      &tm-attrib.netscape;
       &tm-attrib.opengroup;
       &tm-attrib.qualcomm;
       &tm-attrib.general;
@@ -308,10 +307,6 @@ your options page that will email your current password to you.</literallayout>
 	  them:</para>
 
 	<itemizedlist>
-	  <listitem>
-	    <para>cc:Mail</para>
-	  </listitem>
-
 	  <listitem>
 	    <para>&eudora;</para>
 	  </listitem>
@@ -324,23 +319,12 @@ your options page that will email your current password to you.</literallayout>
 	    <para>&microsoft; Exchange</para>
 	  </listitem>
 
-	  <listitem>
-	    <para>&microsoft; Internet Mail</para>
-	  </listitem>
-
 	  <listitem>
 	    <para>&microsoft; &outlook;</para>
 	  </listitem>
-
-	  <listitem>
-	    <para>&netscape;</para>
-	  </listitem>
 	</itemizedlist>
 
-	<para>As you can see, the mailers in the Microsoft world are frequent
-	  offenders.  If at all possible, use a &unix; mailer. If you must use a
-	  mailer under Microsoft environments, make sure it is set up
-	  correctly. Try not to use <acronym>MIME</acronym>: a lot of people
+	<para>Try not to use <acronym>MIME</acronym>: a lot of people
 	  use mailers which do not get on very well with
 	  <acronym>MIME</acronym>.</para>
       </listitem>
diff --git a/en_US.ISO8859-1/articles/freebsd-update-server/article.xml b/en_US.ISO8859-1/articles/freebsd-update-server/article.xml
index 8c2ff9996a..3eb9bec50b 100644
--- a/en_US.ISO8859-1/articles/freebsd-update-server/article.xml
+++ b/en_US.ISO8859-1/articles/freebsd-update-server/article.xml
@@ -505,7 +505,7 @@ Wed Aug 26 12:50:07 PDT 2009 Cleaning staging area for FreeBSD/amd64 7.2-RELEASE
       <literal>ServerName</literal> in
       <filename>/etc/freebsd-update.conf</filename>, and perform updates as
       instructed in the <ulink
-	url="&url.books.handbook;/updating-freebsdupdate.html">&os;
+	url="&url.books.handbook;/updating-upgrading-freebsdupdate.html">&os;
 	Update</ulink>
       <!-- One sentence, two instances of 'in'.  We can probably reword this
 	   part to avoid repetition. -->
diff --git a/en_US.ISO8859-1/articles/portbuild/article.xml b/en_US.ISO8859-1/articles/portbuild/article.xml
index 8076215730..02effad991 100644
--- a/en_US.ISO8859-1/articles/portbuild/article.xml
+++ b/en_US.ISO8859-1/articles/portbuild/article.xml
@@ -628,19 +628,19 @@ PKG_BIN=/usr/local/sbin/pkg</programlisting>
       <example>
 	<title>Update the i386-7 tree and do a complete build</title>
 
-	<screen>&prompt.user; <userinput>dopackages.wrapper i386 7 -nosrc -norestr -nofinish</userinput></screen>
+	<screen>&prompt.user; <userinput>dopackages.wrapper i386 8 latest -nosrc -norestr -nofinish</userinput></screen>
       </example>
 
       <example>
 	<title>Restart an interrupted amd64-8 build without updating</title>
 
-	<screen>&prompt.user; <userinput>dopackages.wrapper amd64 8 -nosrc -noports -norestr -continue -noindex -noduds -nofinish</userinput></screen>
+	<screen>&prompt.user; <userinput>dopackages.wrapper amd64 8 latest -nosrc -noports -norestr -continue -noindex -noduds -nofinish</userinput></screen>
       </example>
 
       <example>
-	<title>Post-process a completed sparc64-7 tree</title>
+	<title>Post-process a completed sparc64-8 tree</title>
 
-	<screen>&prompt.user; <userinput>dopackages.wrapper sparc64 7 -finish</userinput></screen>
+	<screen>&prompt.user; <userinput>dopackages.wrapper sparc64 8 -finish</userinput></screen>
       </example>
 
       <para>Hint: it is usually best to run the <command>dopackages</command>
@@ -1358,7 +1358,7 @@ umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
     <para>The following command will set up the control branch for
       the partial build:</para>
 
-    <screen>&prompt.user; <userinput>/a/portbuild/scripts/dopackages.wrapper i386 8 -noportsvcs -nobuild -novcs -nofinish</userinput></screen>
+    <screen>&prompt.user; <userinput>/a/portbuild/scripts/dopackages.wrapper i386 8 latest -noportsvcs -nobuild -novcs -nofinish</userinput></screen>
 
     <!-- XXX MCL obsolete -->
     <para>The builds must be performed from the
@@ -1707,8 +1707,8 @@ sshd_program="/usr/local/sbin/sshd"</programlisting>
 		cache on the client, add the following</para>
 
 	      <programlisting>squid_enable="YES"
-squid_chdir="<filename>/<replaceable>usr2</replaceable>/squid/logs</filename>"
-squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</filename>"</programlisting>
+squid_chdir="<filename>/<replaceable>a</replaceable>/squid/logs</filename>"
+squid_pidfile="<filename>/<replaceable>a</replaceable>/squid/logs/squid.pid</filename>"</programlisting>
 	      <para>Required entries for VMWare-based nodes:</para>
 
 	      <programlisting>vmware_guest_vmmemctl_enable="YES"
@@ -1729,8 +1729,8 @@ sshd_program="/usr/local/sbin/sshd"
 
 gmond_enable="YES"
 squid_enable="YES"
-squid_chdir="<filename>/<replaceable>usr2</replaceable>/squid/logs</filename>"
-squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</filename>"</programlisting>
+squid_chdir="<filename>/<replaceable>a</replaceable>/squid/logs</filename>"
+squid_pidfile="<filename>/<replaceable>a</replaceable>/squid/logs/squid.pid</filename>"</programlisting>
 
 	      <para>&man.ntpd.8; should <emphasis>not</emphasis>
 		be enabled for VMWare instances.</para>
@@ -1738,7 +1738,7 @@ squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</
 	      <para>Also, it may be possible to leave
 		<application>squid</application> disabled by default
 		so as to not have
-		<filename>/<replaceable>usr2</replaceable></filename>
+		<filename>/<replaceable>a</replaceable></filename>
 		persistent (which should save instantiation time.)
 		Work is still ongoing.
 	      </para>
@@ -1753,7 +1753,7 @@ squid_pidfile="<filename>/<replaceable>usr2</replaceable>/squid/logs/squid.pid</
 	      <para>Modify <filename>etc/sysctl.conf</filename>:</para>
 
 	      <screen>9a10,30
-> kern.corefile=<filename>/<replaceable>usr2</replaceable>/%N.core</filename>
+> kern.corefile=<filename>/<replaceable>a</replaceable>/%N.core</filename>
 > kern.sugid_coredump=1
 > #debug.witness_ddb=0
 > #debug.witness_watch=0
@@ -1808,7 +1808,7 @@ security/sudo</programlisting>
 	  <para>If you are using a local <application>squid</application>
 	    cache on the client, install the following</para>
 
-	  <programlisting>www/squid (with SQUID_AUFS on)</programlisting>
+	  <programlisting>www/squid31 (with SQUID_AUFS on)</programlisting>
 	</step>
 
 	<step>
@@ -1861,7 +1861,7 @@ security/sudo</programlisting>
 #
 # Configure a package build system post-boot
 
-scratchdir=<filename>/<replaceable>usr2</replaceable></filename>
+scratchdir=<filename>/<replaceable>a</replaceable></filename>
 
 ln -sf ${scratchdir}/portbuild /var/
 
diff --git a/en_US.ISO8859-1/articles/releng/article.xml b/en_US.ISO8859-1/articles/releng/article.xml
index 2f92b6a7bc..6f855f1f03 100644
--- a/en_US.ISO8859-1/articles/releng/article.xml
+++ b/en_US.ISO8859-1/articles/releng/article.xml
@@ -44,8 +44,6 @@
 
     <pubdate>$FreeBSD$</pubdate>
 
-    <releaseinfo>$FreeBSD$</releaseinfo>
-
     <abstract>
       <para>
         <warning>
diff --git a/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.xml b/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.xml
index aa80bb4bf9..b901c833e4 100644
--- a/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.xml
+++ b/en_US.ISO8859-1/books/developers-handbook/kerneldebug/chapter.xml
@@ -695,9 +695,9 @@
       debugging information.  Copy this kernel to the target machine, strip
       the debugging symbols off with <command>strip -x</command>, and boot it
       using the <option>-d</option> boot option.  Connect the serial line
-      of the target machine that has "flags 080" set on its sio device
-      to any serial line of the debugging host.  See &man.sio.4; for
-      information on how to set the flags on an sio device.
+      of the target machine that has "flags 080" set on its uart device
+      to any serial line of the debugging host.  See &man.uart.4; for
+      information on how to set the flags on an uart device.
       Now, on the debugging machine, go to the compile directory of the target
       kernel, and start <command>gdb</command>:</para>
 
@@ -712,7 +712,7 @@ Copyright 1996 Free Software Foundation, Inc...
     <para>Initialize the remote debugging session (assuming the first serial
       port is being used) by:</para>
 
-    <screen><prompt>(kgdb)</prompt> <userinput>target remote /dev/cuaa0</userinput></screen>
+    <screen><prompt>(kgdb)</prompt> <userinput>target remote /dev/cuau0</userinput></screen>
 
     <para>Now, on the target host (the one that entered DDB right before even
       starting the device probe), type:</para>
@@ -730,7 +730,7 @@ Stopped at Debugger+0x35: movb	$0, edata+0x51bc
       immediately, simply type <command>s</command> (step).  Your hosting GDB
       will now gain control over the target kernel:</para>
 
-    <screen>Remote debugging using /dev/cuaa0
+    <screen>Remote debugging using /dev/cuau0
 Debugger (msg=0xf01b0383 "Boot flags requested debugger")
     at ../../i386/i386/db_interface.c:257
 <prompt>(kgdb)</prompt></screen>
diff --git a/en_US.ISO8859-1/books/faq/book.xml b/en_US.ISO8859-1/books/faq/book.xml
index fe14d6d59b..fb6bc89e00 100644
--- a/en_US.ISO8859-1/books/faq/book.xml
+++ b/en_US.ISO8859-1/books/faq/book.xml
@@ -21,7 +21,7 @@
 <book lang='en'>
   <bookinfo>
     <title>Frequently Asked Questions for &os;
-     &rel2.relx;, and &rel.relx;</title>
+      &rel2.relx;, and &rel.relx;</title>
 
     <corpauthor>The &os; Documentation Project</corpauthor>
 
@@ -69,7 +69,7 @@
 
     <abstract>
       <para>This is the FAQ for &os; versions &rel2.relx; and
-	&rel.relx;. Every effort has been made to make this FAQ as
+	&rel.relx;.  Every effort has been made to make this FAQ as
 	informative as possible; if you have any suggestions as to how
 	it may be improved, please feel free to mail them to the
 	&a.doc;.</para>
@@ -81,7 +81,7 @@
 	  url="book.html">HTML</ulink> file with HTTP or as a variety
 	of other formats from the <ulink
 	  url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">&os; FTP
-	server</ulink>.</para>
+	  server</ulink>.</para>
     </abstract>
   </bookinfo>
 
@@ -332,13 +332,13 @@
 	    &rel2.relx; series was the one known as
 	    <emphasis>-STABLE</emphasis>.  However, as of
 	    &rel.head.relx;, the
-	    &rel2.relx;. branch will be designated for
+	    &rel2.relx; branch will be designated for
 	    an <quote>extended support</quote> status and receive only
 	    fixes for major problems, such as security-related fixes.
-	    There will be no more releases made from the
+	    <!--There will be no more releases made from the
 	    &rel2.stable; branch, and it is considered a
 	    <quote>legacy</quote> branch and most current work will only
-	    become a part of &rel.stable; and &rel2.stable;.</para>
+	    become a part of &rel.stable; and &rel2.stable;.--></para>
 
 	  <para>Version <ulink
 	      url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/&rel.current;-RELEASE/">&rel.current;</ulink>
@@ -370,8 +370,8 @@
 
 	  <para>More information on &os; releases can be found on the
 	    <ulink
-	      url="http://www.FreeBSD.org/releng/index.html">Release Engineering page</ulink>
-	    on the &os; Web site.</para>
+	      url="http://www.FreeBSD.org/releng/index.html#release-build">Release Engineering page</ulink>
+	    and in &man.release.7;.</para>
 	</answer>
       </qandaentry>
 
@@ -513,7 +513,7 @@
 	    pages on the &os; Web site.</para>
 
 	  <para>For people who need or want a little more excitement,
-	    binary snapshots are made daily as discussed above.</para>
+	    binary snapshots are made weekly as discussed above.</para>
 	</answer>
       </qandaentry>
 
@@ -1501,7 +1501,7 @@
       <qandaentry>
 	<question id="archsw-readin-failed-error">
 	  <para>Why do I get an error message,
-	    <errorname>archsw.readin.failed</errorname> after compiling
+	    <errorname>readin failed</errorname> after compiling
 	    and booting a new kernel?</para>
 	</question>
 
@@ -1895,7 +1895,7 @@
 
 	  <answer>
 	    <para>The answer is, unfortunately, <quote>It
-	      depends</quote>.  These mice with additional features
+		depends</quote>.  These mice with additional features
 	      require specialized driver in most cases.  Unless the
 	      mouse device driver or the user program has specific
 	      support for the mouse, it will act just like a standard
@@ -2149,7 +2149,7 @@ bindkey ^[[3~ delete-char # for xterm</programlisting>
       <qandaentry>
 	<question id="trap-12-panic">
 	  <para>My system crashes with either <errorname>Fatal trap 12:
-	    page fault in kernel mode</errorname>, or
+	      page fault in kernel mode</errorname>, or
 	    <errorname>panic:</errorname>, and spits out a bunch of
 	    information.  What should I do?</para>
 	</question>
@@ -2210,7 +2210,7 @@ bindkey ^[[3~ delete-char # for xterm</programlisting>
 	<question id="mail-loopback">
 	  <para>Why does <application>sendmail</application> give me an
 	    error reading <errorname>mail loops back to
-	    myself</errorname>?</para>
+	      myself</errorname>?</para>
 	</question>
 
 	<answer>
@@ -2412,7 +2412,7 @@ kern.timecounter.hardware: TSC -&gt; i8254</screen>
       <qandaentry>
 	<question id="indefinite-wait-buffer">
 	  <para>What does the error <errorname>swap_pager: indefinite
-	    wait buffer:</errorname> mean?</para>
+	      wait buffer:</errorname> mean?</para>
 	</question>
 
 	<answer>
@@ -2431,7 +2431,7 @@ kern.timecounter.hardware: TSC -&gt; i8254</screen>
       <qandaentry>
 	<question id="lock-order-reversal">
 	  <para>What is a <errorname>lock order
-	    reversal</errorname>?</para>
+	      reversal</errorname>?</para>
 	</question>
 
 	<answer>
@@ -2473,7 +2473,7 @@ kern.timecounter.hardware: TSC -&gt; i8254</screen>
       <qandaentry>
 	<question id="called-with-non-sleepable-locks-held">
 	  <para>What does <errorname>Called ...  with the following
-	    non-sleepable locks held</errorname> mean?</para>
+	      non-sleepable locks held</errorname> mean?</para>
 	</question>
 
 	<answer>
@@ -2511,7 +2511,7 @@ kern.timecounter.hardware: TSC -&gt; i8254</screen>
 	  <para>Why does
 	    <maketarget>buildworld</maketarget>/<maketarget>installworld</maketarget>
 	    die with the message <errorname>touch: not
-	    found</errorname>?</para>
+	      found</errorname>?</para>
 	</question>
 
 	<answer>
@@ -2777,7 +2777,7 @@ kern.timecounter.hardware: TSC -&gt; i8254</screen>
 	    compare for yourself the memory utilization of all these
 	    shells by looking at the <quote>VSZ</quote> and
 	    <quote>RSS</quote> columns in a <command>ps
-	    <option>-u</option></command> listing.)</para>
+	      <option>-u</option></command> listing.)</para>
 	</answer>
       </qandaentry>
 
@@ -2811,7 +2811,7 @@ kern.timecounter.hardware: TSC -&gt; i8254</screen>
 
 	<answer>
 	  <para>The open-source <application><ulink
-	      url="http://www.openoffice.org">Apache OpenOffice</ulink></application>
+		url="http://www.openoffice.org">Apache OpenOffice</ulink></application>
 	    and <application><ulink
 		url="http://www.libreoffice.org">LibreOffice</ulink></application>
 	    office suites work natively on &os;.</para>
@@ -3375,13 +3375,13 @@ C:\="DOS"</programlisting>
 	    &man.sysinstall.8; copies the partition table before copying
 	    <filename>/boot/boot0</filename> to the MBR.</para>
 
-	    <warning>
-	      <para><emphasis>Do not simply copy
+	  <warning>
+	    <para><emphasis>Do not simply copy
 		<filename>/boot/boot0</filename> instead of
 		<filename>/boot/boot1</filename>; you will overwrite
 		your partition table and render your computer
 		un-bootable!</emphasis></para>
-	    </warning>
+	  </warning>
 
 	  <para>When the &os; boot manager runs it records the last OS
 	    booted by setting the active flag on the partition table
@@ -3546,7 +3546,7 @@ C:\="DOS"</programlisting>
       <qandaentry>
 	<question id="mount-cd-superblock">
 	  <para>Why do I get <errorname>Incorrect super
-	    block</errorname> when mounting a CD-ROM?</para>
+	      block</errorname> when mounting a CD-ROM?</para>
 	</question>
 
 	<answer>
@@ -3561,7 +3561,7 @@ C:\="DOS"</programlisting>
       <qandaentry>
 	<question id="cdrom-not-configured">
 	  <para>Why do I get <errorname>Device not
-	    configured</errorname> when mounting a CD-ROM?</para>
+	      configured</errorname> when mounting a CD-ROM?</para>
 	</question>
 
 	<answer>
@@ -3624,7 +3624,7 @@ C:\="DOS"</programlisting>
       <qandaentry>
 	<question id="mount-audio-CD">
 	  <para>Why can I not <command>mount</command> an audio
-	  CD?</para>
+	    CD?</para>
 	</question>
 
 	<answer>
@@ -3888,7 +3888,7 @@ C:\="DOS"</programlisting>
 	      because part of the ARC is holding the L2ARC index,
 	      pushing part of the working set into the
 	      L2ARC which is slower than RAM.</para>
-	    </answer>
+	  </answer>
 	</qandaentry>
 
 	<qandaentry>
@@ -4022,8 +4022,8 @@ C:\="DOS"</programlisting>
       <qandaentry>
 	<question id="root-not-found-cron-errors">
 	  <para>Why do I keep getting messages like <errorname>root: not
-	    found</errorname> after editing
-	  <filename>/etc/crontab</filename></para>
+	      found</errorname> after editing
+	    <filename>/etc/crontab</filename></para>
 	</question>
 
 	<answer>
@@ -4071,7 +4071,7 @@ C:\="DOS"</programlisting>
       <qandaentry>
 	<question id="su-wheel-group">
 	  <para>Why do I get the error, <errorname>you are not in the
-	    correct group to su root</errorname> when I try to
+	      correct group to su root</errorname> when I try to
 	    <command>su</command> to <username>root</username>?</para>
 	</question>
 
@@ -4283,7 +4283,7 @@ options    SYSVMSG          # enable for messaging</programlisting>
 	    different mail-servers to chose from is considered a good
 	    thing; therefore try to avoid asking questions like
 	    <quote>Is <application>sendmail</application> better than
-	    <application>qmail</application>?</quote> in the mailing
+	      <application>qmail</application>?</quote> in the mailing
 	    lists.  If you do feel like asking, first check the mailing
 	    list archives.  The advantages and disadvantages of each and
 	    every one of the available MTAs have already been discussed
@@ -4441,7 +4441,7 @@ options    SYSVMSG          # enable for messaging</programlisting>
 	<answer>
 	  <para>Short answer: it is just a name.
 	    <emphasis>RC</emphasis> stands for <quote>Release
-	    Candidate</quote>.  It signifies that a release is imminent.
+	      Candidate</quote>.  It signifies that a release is imminent.
 	    In &os;, <emphasis>-PRERELEASE</emphasis> is typically
 	    synonymous with the code freeze before a release.  (For some
 	    releases, the <emphasis>-BETA</emphasis> label was used in
@@ -4451,7 +4451,7 @@ options    SYSVMSG          # enable for messaging</programlisting>
 	    places.  Major, dot-zero, releases, such as 9.0-RELEASE
 	    are branched from the head of the development
 	    stream, commonly referred to as <link
-	    linkend="current">-CURRENT</link>.  Minor releases, such as
+	      linkend="current">-CURRENT</link>.  Minor releases, such as
 	    6.3-RELEASE or 5.2-RELEASE, have been snapshots of the
 	    active <link linkend="stable">-STABLE</link> branch.
 	    Starting with 4.3-RELEASE, each release also now has its own
@@ -4574,7 +4574,7 @@ options    SYSVMSG          # enable for messaging</programlisting>
 	  <para>You are running at an elevated (i.e., greater than 0)
 	    securelevel.  Lower the securelevel and try again.  For more
 	    information, see <link linkend="securelevel">the FAQ entry
-	    on securelevel</link> and the &man.init.8; manual
+	      on securelevel</link> and the &man.init.8; manual
 	    page.</para>
 	</answer>
       </qandaentry>
@@ -4634,7 +4634,7 @@ options    SYSVMSG          # enable for messaging</programlisting>
 	    <command>top</command> mean?</para>
 	</question>
 
-<!-- Provided by John Dyson via Usenet -->
+	<!-- Provided by John Dyson via Usenet -->
 	<answer>
 	  <itemizedlist>
 	    <listitem>
@@ -4701,10 +4701,10 @@ options    SYSVMSG          # enable for messaging</programlisting>
 	  <para>How much free memory is available?</para>
 	</question>
 
-<!-- Provided by John Dyson via Usenet -->
+	<!-- Provided by John Dyson via Usenet -->
 	<answer>
 	  <para>There are a couple of kinds of <quote>free
-	    memory</quote>.  One kind is the amount of memory
+	      memory</quote>.  One kind is the amount of memory
 	    immediately available without paging anything else out.
 	    That is approximately the size of cache queue + size of free
 	    queue (with a derating factor, depending upon system
@@ -4744,7 +4744,7 @@ options    SYSVMSG          # enable for messaging</programlisting>
 	<question id="newsyslog-expectations">
 	  <para>I just changed
 	    <filename>/etc/newsyslog.conf</filename>. How can I check
-	      if it does what I expect?</para>
+	    if it does what I expect?</para>
 	</question>
 
 	<answer>
@@ -4791,7 +4791,7 @@ options    SYSVMSG          # enable for messaging</programlisting>
 	  <para>Many implementations are available for different
 	    architectures and operating systems.  An implementation of
 	    the server-side code is properly known as an <literal>X
-	    server</literal>.</para>
+	      server</literal>.</para>
 	</answer>
       </qandaentry>
 
@@ -4948,7 +4948,7 @@ EndSection</programlisting>
 	</answer>
       </qandaentry>
 
-	  <qandaentry>
+      <qandaentry>
 	<question id="x-and-synaptic">
 	  <para>My laptop has a Synaptics touchpad.  Can I use
 	    it in X?</para>
@@ -5028,7 +5028,7 @@ EndSection</programlisting>
 	    (hold down <keycap>Alt</keycap> and press
 	    <keycap>F2</keycap>), and you will find a login prompt
 	    waiting for you on the second <quote>virtual
-	    console</quote>!  When you want to go back to the original
+	      console</quote>!  When you want to go back to the original
 	    session, do <keycombo
 	      action="simul"><keycap>Alt</keycap><keycap>F1</keycap></keycombo>.</para>
 
@@ -5065,7 +5065,7 @@ ttyvb   "/usr/libexec/getty Pc"         xterm  on secure</programlisting>
 		cons25</quote> terminal type, and not <quote>
 		xterm</quote>.  Existing entries in
 	      <filename>/etc/ttys</filename> can be used on which to
-	      base new additions.</para> 
+	      base new additions.</para>
 	  </note>
 
 	  <important>
@@ -5195,7 +5195,7 @@ ttyvb   "/usr/libexec/getty Pc"         xterm  off secure</programlisting>
       <qandaentry>
 	<question id="xconsole-failure">
 	  <para>Why do I get <errorname>Couldn't open
-	    console</errorname> when I run
+	      console</errorname> when I run
 	    <command>xconsole</command>?</para>
 	</question>
 
@@ -5247,7 +5247,11 @@ ttyvb   "/usr/libexec/getty Pc"         xterm  off secure</programlisting>
 	  <para>If this happens, disable the synchronization check code
 	    by setting the driver flags for the PS/2 mouse driver to
 	    <literal>0x100</literal>.  This can be easiest achieved
-	    by adding <screen>hint.psm.0.flags="0x100"</screen> to
+	    by adding
+
+	    <screen>hint.psm.0.flags="0x100"</screen>
+
+	    to
 	    <filename>/boot/loader.conf</filename> and rebooting.</para>
 	</answer>
       </qandaentry>
@@ -5429,13 +5433,13 @@ Key F15        A        A        Menu Workplace Nop</programlisting>
 	  <para><quote>Diskless booting</quote> means that the &os;
 	    box is booted over a network, and reads the necessary
 	    files from a server instead of its hard disk.  For full
-	      details, please read <ulink
-		url="&url.books.handbook;/network-diskless.html">the Handbook entry on diskless booting</ulink>.</para>
-	  </answer>
-	</qandaentry>
+	    details, please read <ulink
+	      url="&url.books.handbook;/network-diskless.html">the Handbook entry on diskless booting</ulink>.</para>
+	</answer>
+      </qandaentry>
 
-	<qandaentry>
-	  <question id="router">
+      <qandaentry>
+	<question id="router">
 	  <para>Can a &os; box be used as a dedicated network
 	    router?</para>
 	</question>
@@ -5520,7 +5524,7 @@ Key F15        A        A        Menu Workplace Nop</programlisting>
 	<answer>
 	  <para>If the alias is on the same subnet as an address already
 	    configured on the interface, then add <literal>netmask
-	    0xffffffff</literal> to your &man.ifconfig.8; command-line,
+	      0xffffffff</literal> to your &man.ifconfig.8; command-line,
 	    as in the following:</para>
 
 	  <screen>&prompt.root; <userinput>ifconfig <replaceable>ed0</replaceable> alias <replaceable>192.0.2.2</replaceable> netmask 0xffffffff</userinput></screen>
@@ -5607,7 +5611,7 @@ Key F15        A        A        Menu Workplace Nop</programlisting>
       <qandaentry>
 	<question id="network-permission-denied">
 	  <para>Why do I get an error, <errorname>Permission
-	    denied</errorname>, for all networking operations?</para>
+	      denied</errorname>, for all networking operations?</para>
 	</question>
 
 	<answer>
@@ -5710,7 +5714,7 @@ Key F15        A        A        Menu Workplace Nop</programlisting>
       <qandaentry>
 	<question id="bpf-not-configured">
 	  <para>Why do I get <errorname>/dev/bpf0: device not
-	    configured</errorname>?</para>
+	      configured</errorname>?</para>
 	</question>
 
 	<answer>
@@ -5740,7 +5744,7 @@ Key F15        A        A        Menu Workplace Nop</programlisting>
       <qandaentry>
 	<question id="icmp-response-bw-limit">
 	  <para>What are these messages about: <errorname>Limiting
-	    icmp/open port/closed port response</errorname> in my log
+	      icmp/open port/closed port response</errorname> in my log
 	    files?</para>
 	</question>
 
@@ -5797,7 +5801,7 @@ Key F15        A        A        Menu Workplace Nop</programlisting>
       <qandaentry>
 	<question id="unknown-hw-addr-format">
 	  <para>What are these <errorname>arp: unknown hardware address
-	    format</errorname> error messages?</para>
+	      format</errorname> error messages?</para>
 	</question>
 
 	<answer>
@@ -5814,7 +5818,7 @@ Key F15        A        A        Menu Workplace Nop</programlisting>
       <qandaentry>
 	<question id="arp-wrong-iface">
 	  <para>Why do I keep seeing messages like: <errorname>192.168.0.10 is on
-	    fxp1 but got reply from 00:15:17:67:cf:82 on rl0</errorname>, and how do I
+	      fxp1 but got reply from 00:15:17:67:cf:82 on rl0</errorname>, and how do I
 	    disable it?</para>
 	</question>
 
@@ -6412,7 +6416,7 @@ deny pred1 deflate deflate24 protocomp acfcomp shortseq vj</programlisting>
 	<answer>
 	  <para>Occasionally, just after connecting, you may see
 	    messages in the log that say <errorname>Magic is
-	    same</errorname>.  Sometimes, these messages are harmless,
+	      same</errorname>.  Sometimes, these messages are harmless,
 	    and sometimes one side or the other exits.  Most PPP
 	    implementations cannot survive this problem, and even if the
 	    link seems to come up, you will see repeated configure
@@ -6637,7 +6641,7 @@ set dfilter 3 permit 0/0 0/0</programlisting>
 	    everything until the queue is run (usually, sendmail is
 	    run with <option>-bd -q30m</option>, telling it to run
 	    the queue every 30 minutes) or until a <command>sendmail
-	    <option>-q</option></command> is done (perhaps from your
+	      <option>-q</option></command> is done (perhaps from your
 	    <filename>ppp.linkup</filename>).</para>
 	</answer>
       </qandaentry>
@@ -7027,7 +7031,7 @@ ATDT1234567</programlisting>
 
     <para>This section answers common questions about serial
       communications with &os;.  PPP is covered in the <link
-      linkend="networking">Networking</link> section.</para>
+	linkend="networking">Networking</link> section.</para>
 
     <qandaset>
       <qandaentry>
@@ -7471,7 +7475,7 @@ hint.sio.7.irq="12"</programlisting>
 
 	<answer>
 	  <para>He does not have one, and is just called <quote>the BSD
-	    daemon</quote>.  If you insist upon using a name, call him
+	      daemon</quote>.  If you insist upon using a name, call him
 	    <quote>beastie</quote>.  Note that <quote>beastie</quote> is
 	    pronounced <quote>BSD</quote>.</para>
 
@@ -7545,7 +7549,7 @@ hint.sio.7.irq="12"</programlisting>
 	    long argument about whether &man.sleep.1; should take
 	    fractional second arguments, &a.phk; posted a long message
 	    entitled <quote><ulink
-	      url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">A bike shed (any color will do) on greener grass...</ulink></quote>.
+		url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">A bike shed (any color will do) on greener grass...</ulink></quote>.
 	    The appropriate portions of that message are quoted
 	    below.</para>
 
@@ -7559,11 +7563,11 @@ hint.sio.7.irq="12"</programlisting>
 	    <para>It is a long story, or rather it is an old story, but
 	      it is quite short actually.  C. Northcote Parkinson wrote
 	      a book in the early 1960s, called <quote>Parkinson's
-	      Law</quote>, which contains a lot of insight into the
+		Law</quote>, which contains a lot of insight into the
 	      dynamics of management.</para>
 
 	    <para><emphasis>[snip a bit of commentary on the
-	      book]</emphasis></para>
+		book]</emphasis></para>
 
 	    <para>In the specific example involving the bike shed, the
 	      other vital component is an atomic power-plant, I guess
@@ -7592,10 +7596,10 @@ hint.sio.7.irq="12"</programlisting>
 	      <emphasis>here</emphasis>.</para>
 
 	    <para>In Denmark we call it <quote>setting your
-	      fingerprint</quote>.  It is about personal pride and
+		fingerprint</quote>.  It is about personal pride and
 	      prestige, it is about being able to point somewhere and
 	      say <quote>There!  <emphasis>I</emphasis> did
-	      that.</quote> It is a strong trait in politicians, but
+		that.</quote> It is a strong trait in politicians, but
 	      present in most people given the chance.  Just think about
 	      footsteps in wet cement.</para>
 	  </blockquote>
@@ -7697,7 +7701,7 @@ hint.sio.7.irq="12"</programlisting>
 
 	  <para>Three to submit PRs about it, one of which is misfiled
 	    under doc and consists only of <quote>it's
-	    dark</quote>;</para>
+	      dark</quote>;</para>
 
 	  <para>One to commit an untested lightbulb which breaks
 	    buildworld, then back it out five minutes later;</para>
@@ -7759,8 +7763,8 @@ hint.sio.7.irq="12"</programlisting>
 	    -chat and unsubscribe in protest;</para>
 
 	  <para>Thirteen to post <quote>unsubscribe</quote>, <quote>How
-	    do I unsubscribe?</quote>, or <quote>Please remove me from
-	    the list</quote>, followed by the usual footer;</para>
+	      do I unsubscribe?</quote>, or <quote>Please remove me from
+	      the list</quote>, followed by the usual footer;</para>
 
 	  <para>One to commit a working lightbulb while everybody is too
 	    busy flaming everybody else to notice;</para>
@@ -7774,7 +7778,7 @@ hint.sio.7.irq="12"</programlisting>
 	    fairings;</para>
 
 	  <para>Nine (including the PR originators) to ask <quote>what
-	    is MFC?</quote>;</para>
+	      is MFC?</quote>;</para>
 
 	  <para>Fifty-seven to complain about the lights being out two
 	    weeks after the bulb has been changed.</para>
@@ -7782,18 +7786,18 @@ hint.sio.7.irq="12"</programlisting>
 	  <para><emphasis>&a.nik; adds:</emphasis></para>
 
 	  <para><emphasis>I was laughing quite hard at
-	    this.</emphasis></para>
+	      this.</emphasis></para>
 
 	  <para><emphasis>And then I thought, <quote>Hang on, shouldn't
-	    there be '1 to document it.' in that list
-	    somewhere?</quote></emphasis></para>
+		there be '1 to document it.' in that list
+		somewhere?</quote></emphasis></para>
 
 	  <para><emphasis>And then I was enlightened
-	    :-)</emphasis></para>
+	      :-)</emphasis></para>
 
 	  <para><emphasis>&a.tabthorpe;</emphasis> says: <quote>None,
-	    <emphasis>real</emphasis> &os; hackers are not afraid of the
-	    dark!</quote></para>
+	      <emphasis>real</emphasis> &os; hackers are not afraid of the
+	      dark!</quote></para>
 	</answer>
       </qandaentry>
 
@@ -7934,7 +7938,7 @@ hint.sio.7.irq="12"</programlisting>
 	  <para><literal>HEAD</literal> is not an actual branch tag,
 	    like the others; it is simply a symbolic constant for
 	    <quote><emphasis>the current, non-branched development
-	    stream</emphasis></quote> which we simply refer to as
+		stream</emphasis></quote> which we simply refer to as
 	    <emphasis>-CURRENT</emphasis>.</para>
 
 	  <para>Right now, <emphasis>-CURRENT</emphasis> is the
@@ -8126,7 +8130,7 @@ panic: page fault</programlisting>
 	      it recover the crash dump to another directory where you
 	      have more room.  It is possible to limit the size of the
 	      crash dump by using <literal>options
-	      MAXMEM=<replaceable>N</replaceable></literal> where
+		MAXMEM=<replaceable>N</replaceable></literal> where
 	      <replaceable>N</replaceable> is the size of kernel's
 	      memory usage in KBs.  For example, if you have 1&nbsp;GB
 	      of RAM, you can limit the kernel's memory usage to
diff --git a/en_US.ISO8859-1/books/handbook/basics/chapter.xml b/en_US.ISO8859-1/books/handbook/basics/chapter.xml
index f00c1cc8f4..ef4171b7be 100644
--- a/en_US.ISO8859-1/books/handbook/basics/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/basics/chapter.xml
@@ -606,7 +606,7 @@ total 530
 
       <programlisting>-rw-r--r--  1 trhodes  trhodes  sunlnk 0 Mar  1 05:54 file1</programlisting>
 
-      <para>Several file flags may only added or removed by the
+      <para>Several file flags may only be added or removed by the
 	<username>root</username> user.  In other cases, the file
 	owner may set its file flags.  Refer to &man.chflags.1; and
 	&man.chflags.2; for more information.</para>
@@ -1401,8 +1401,8 @@ root     5211  0.0  0.2  3620  1724   2  I+    2:09AM   0:00.01 passwd</screen>
       <firstterm>partitions</firstterm>, which are represented as
       letters from <literal>a</literal> to <literal>h</literal>.  This
       letter is appended to the device name, so
-      <quote>da0<emphasis>a</emphasis></quote> is the a partition on
-      the first da drive, which is <quote>dangerously
+      <quote>da0<emphasis>a</emphasis></quote> is the <literal>a</literal> partition on
+      the first <literal>da</literal> drive, which is <quote>dangerously
       dedicated</quote>. <quote>ad1s3<emphasis>e</emphasis></quote> is
       the fifth partition in the third slice of the second IDE disk
       drive.</para>
@@ -1869,7 +1869,6 @@ root     5211  0.0  0.2  3620  1724   2  I+    2:09AM   0:00.01 passwd</screen>
   298  p0  Ss     0:01.10 tcsh
  7078  p0  S      2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
 37393  p0  I      0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
-48630  p0  S      2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
 72210  p0  R+     0:00.00 ps
   390  p1  Is     0:01.14 tcsh
  7059  p2  Is+    1:36.18 /usr/local/bin/mutt -y
@@ -1922,7 +1921,6 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
  7078 nik        2   0 15280K 10960K select   2:54  0.88%  0.88% xemacs-21.1.14
   281 nik        2   0 18636K  7112K select   5:36  0.73%  0.73% XF86_SVGA
   296 nik        2   0  3240K  1644K select   0:12  0.05%  0.05% xterm
-48630 nik        2   0 29816K  9148K select   3:18  0.00%  0.00% navigator-linu
   175 root       2   0   924K   252K select   1:41  0.00%  0.00% syslogd
  7059 nik        2   0  7260K  4644K poll     1:38  0.00%  0.00% mutt
 ...</screen>
@@ -1944,9 +1942,9 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
       columns: one for total size and one for resident size.  Total
       size is how much memory the application has needed and the
       resident size is how much it is actually using at the moment.
-      In this example, <application>&netscape;</application> has
-      required almost 30&nbsp;MB of RAM, but is currently only using
-      9&nbsp;MB.</para>
+      In this example, <application>mutt</application> has
+      required almost 8&nbsp;MB of RAM, but is currently only using
+      5&nbsp;MB.</para>
 
     <para>&man.top.1; automatically updates the display every two
       seconds.  A different interval can be specified with
diff --git a/en_US.ISO8859-1/books/handbook/book.xml b/en_US.ISO8859-1/books/handbook/book.xml
index 31559d5a4a..33ae587894 100644
--- a/en_US.ISO8859-1/books/handbook/book.xml
+++ b/en_US.ISO8859-1/books/handbook/book.xml
@@ -68,7 +68,6 @@
       &tm-attrib.m-systems;
       &tm-attrib.macromedia;
       &tm-attrib.microsoft;
-      &tm-attrib.netscape;
       &tm-attrib.nexthop;
       &tm-attrib.opengroup;
       &tm-attrib.oracle;
diff --git a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
index 22ae2e6433..a7160bfae3 100644
--- a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
@@ -2542,7 +2542,7 @@ Script done, &hellip;</screen>
 	<screen>&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen>
 
 	<para>This command will show the differences between the
-	  existing <filename>/etc/shells</filename>and the new
+	  existing <filename>/etc/shells</filename> and the new
 	  <filename>/var/tmp/root/etc/shells</filename>.  Review the
 	  differences to decide whether to merge in custom changes
 	  or to replace the existing file with the new one.</para>
diff --git a/en_US.ISO8859-1/books/handbook/disks/chapter.xml b/en_US.ISO8859-1/books/handbook/disks/chapter.xml
index 65a7b3f721..56996b94d2 100644
--- a/en_US.ISO8859-1/books/handbook/disks/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/disks/chapter.xml
@@ -4152,9 +4152,7 @@ Device          1K-blocks     Used    Avail Capacity
 	      before actually storing the data.  The data on the
 	      remote node will be stored directly after sending the
 	      acknowledgement.  This mode is intended to reduce
-	      latency, but still provides very good reliability.  The
-	      <emphasis>memsync</emphasis> replication mode is
-	      currently not implemented.</para>
+	      latency, but still provides very good reliability.</para>
 	  </listitem>
 
 	  <listitem>
@@ -4170,16 +4168,9 @@ Device          1K-blocks     Used    Avail Capacity
 	      as completed when local write completes.  This is the
 	      fastest and the most dangerous replication mode.  It
 	      should be used when replicating to a distant node where
-	      latency is too high for other modes.  The
-	      <emphasis>async</emphasis> replication mode is currently
-	      not implemented.</para>
+	      latency is too high for other modes.</para>
 	  </listitem>
 	</itemizedlist>
-
-	<warning>
-	  <para>Only the <emphasis>fullsync</emphasis> replication
-	    mode is currently supported.</para>
-	</warning>
       </sect3>
     </sect2>
 
diff --git a/en_US.ISO8859-1/books/handbook/firewalls/chapter.xml b/en_US.ISO8859-1/books/handbook/firewalls/chapter.xml
index 1a1981fa35..f7867afa2b 100644
--- a/en_US.ISO8859-1/books/handbook/firewalls/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/firewalls/chapter.xml
@@ -433,7 +433,7 @@ pflog_flags=""                  # additional flags for pflogd startup</programli
 	functionality:</para>
 
       <programlisting>options         ALTQ
-options         ALTQ_CBQ        # Class Bases Queuing (CBQ)
+options         ALTQ_CBQ        # Class Based Queuing (CBQ)
 options         ALTQ_RED        # Random Early Detection (RED)
 options         ALTQ_RIO        # RED In/Out
 options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
diff --git a/en_US.ISO8859-1/books/handbook/install/chapter.xml b/en_US.ISO8859-1/books/handbook/install/chapter.xml
index bbdf7cc3a8..499bff5f43 100644
--- a/en_US.ISO8859-1/books/handbook/install/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/install/chapter.xml
@@ -4502,7 +4502,7 @@ Please press any key to reboot.</screen>
 	  <para>That directory will normally contain the following images:</para>
 
 	  <table frame="none">
-	    <title>&os; 8.<replaceable>X</replaceable>
+	    <title>&os;
 	      ISO Image Names and Meanings</title>
 
 	    <tgroup cols="2">
@@ -4559,7 +4559,7 @@ Please press any key to reboot.</screen>
 
 		  <entry>A CD image with as many third-party packages
 		    as would fit on the disc.  This image is not
-		    available for &os;&nbsp;8.<replaceable>X</replaceable>.</entry>
+		    available for &os;&nbsp;9.<replaceable>X</replaceable>.</entry>
 		</row>
 
 		<row>
@@ -4567,14 +4567,7 @@ Please press any key to reboot.</screen>
 
 		  <entry>Another CD image with as many third-party
 		    packages as would fit on the disc.  This image is
-		    not available for &os;&nbsp;8.<replaceable>X</replaceable>.</entry>
-		</row>
-
-		<row>
-		  <entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-docs.iso</filename></entry>
-
-		  <entry>The &os; documentation.  This image is
-		    not available for &os;&nbsp;8.<replaceable>X</replaceable>.</entry>
+		    not available for &os;&nbsp;9.<replaceable>X</replaceable>.</entry>
 		</row>
 
 		<row>
diff --git a/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml b/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml
index afa565509c..409c4ce7cf 100644
--- a/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml
@@ -1749,6 +1749,15 @@ usr.bin/</programlisting>
 	  </listitem>
 	</varlistentry>
 
+	<varlistentry>
+	  <term>RELENG_9_1</term>
+
+	  <listitem>
+	    <para>The release branch for &os;-9.1, used only for
+	      security advisories and other critical fixes.</para>
+	  </listitem>
+	</varlistentry>
+
 	<varlistentry>
 	  <term>RELENG_9_0</term>
 
@@ -1767,6 +1776,15 @@ usr.bin/</programlisting>
 	  </listitem>
 	</varlistentry>
 
+	<varlistentry>
+	  <term>RELENG_8_4</term>
+
+	  <listitem>
+	    <para>The release branch for &os;-8.4, used only for
+	      security advisories and other critical fixes.</para>
+	  </listitem>
+	</varlistentry>
+
 	<varlistentry>
 	  <term>RELENG_8_3</term>
 
@@ -2105,6 +2123,14 @@ usr.bin/</programlisting>
 	is not tagged with any special name for releases.</para>
 
       <variablelist>
+	<varlistentry>
+	  <term>RELENG_9_1_0_RELEASE</term>
+
+	  <listitem>
+	    <para>&os; 9.1</para>
+	  </listitem>
+	</varlistentry>
+
 	<varlistentry>
 	  <term>RELENG_9_0_0_RELEASE</term>
 
diff --git a/en_US.ISO8859-1/books/handbook/ports/chapter.xml b/en_US.ISO8859-1/books/handbook/ports/chapter.xml
index 29f63e6902..99652c5c74 100644
--- a/en_US.ISO8859-1/books/handbook/ports/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/ports/chapter.xml
@@ -204,7 +204,7 @@
 	related to the application or install  <filename
 	  role="package">ports-mgmt/portaudit</filename>. Once
 	installed, type <command>portaudit -F -a</command> to check
-	all installed applications for known vulnerabilities</para>
+	all installed applications for known vulnerabilities.</para>
     </warning>
 
     <para>The remainder of this chapter explains how to use packages
@@ -279,7 +279,7 @@ lsof: /usr/ports/sysutils/lsof</screen>
 	    <maketarget>search</maketarget>
 	    name=<replaceable>program-name</replaceable></command>
 	  where <replaceable>program-name</replaceable> is the name of
-	  the software.  For example,to search for
+	  the software.  For example, to search for
 	  <command>lsof</command>:</para>
 
 	<screen>&prompt.root; <userinput>cd /usr/ports</userinput>
@@ -977,9 +977,8 @@ Deinstalling ca_root_nss-3.13.5... done</screen>
 	is <application>Portsnap</application>.  Users requiring local
 	customization of ports (that is, maintaining additional local
 	patches) will probably prefer to use Subversion directly.  The
-	<application>CVSup</application> service is being phased out
-	as of February 28, 2013, and further use is
-	discouraged.</para>
+	<application>CVSup</application> service was phased out
+	as of February 28, 2013.</para>
     </warning>
 
     <sect2 id="ports-tree">
@@ -1293,7 +1292,7 @@ Deinstalling ca_root_nss-3.13.5... done</screen>
 	  up-to-date Ports Collection and check <ulink
 	    url="http://vuxml.freebsd.org/"></ulink> for security
 	  issues related to your port.  If <filename
-	    role="package">ports-mgmt/portaudit</filename>) is
+	    role="package">ports-mgmt/portaudit</filename> is
 	  installed, run <command>portaudit -F</command> before
 	  installing a new port, to fetch the current vulnerabilities
 	  database.  A security audit and an update of the database
@@ -1454,8 +1453,9 @@ Deinstalling ca_root_nss-3.13.5... done</screen>
 	depends on libraries or other ports, this will
 	<emphasis>not</emphasis> fetch the distfiles of ports
 	from another category.  Use
-	<command>make<maketarget>fetch-recursive</maketarget>
-	  <maketarget>fetch</maketarget></command> to fetch
+	<command>make
+	  <maketarget>fetch-recursive</maketarget></command>
+	to fetch
 	all the dependencies of a port.</para>
 
       <note>
@@ -1784,9 +1784,7 @@ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
       <para><filename
 	  role="package">ports-mgmt/pkg_cutleaves</filename> automates
 	the task of removing installed ports that are no longer
-	needed.
-
-	port.</para>
+	needed.</para>
     </sect2>
   </sect1>
 
diff --git a/en_US.ISO8859-1/books/handbook/security/chapter.xml b/en_US.ISO8859-1/books/handbook/security/chapter.xml
index 99223339db..0beccf251e 100644
--- a/en_US.ISO8859-1/books/handbook/security/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/security/chapter.xml
@@ -1084,8 +1084,9 @@
       <title>Recognizing Your Crypt Mechanism</title>
 
       <para>Currently the library supports DES, MD5, Blowfish, SHA256,
-	and SHA512 hash functions.  By default &os; uses MD5 to
-	encrypt passwords.</para>
+	and SHA512 hash functions.  By default &os;&nbsp;9.1 and later
+	uses SHA512 to encrypt passwords.  Older versions use MD5 by
+	default.</para>
 
       <para>It is pretty easy to identify which encryption method &os;
 	is set up to use.  Examining the encrypted passwords in the
diff --git a/en_US.ISO8859-1/books/handbook/x11/chapter.xml b/en_US.ISO8859-1/books/handbook/x11/chapter.xml
index c6a5d19166..bfd3ae1ec0 100644
--- a/en_US.ISO8859-1/books/handbook/x11/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/x11/chapter.xml
@@ -824,7 +824,7 @@ EndSection</programlisting>
     <para>The default fonts that ship with X11 are less than ideal
       for typical desktop publishing applications.  Large
       presentation fonts show up jagged and unprofessional looking,
-      and small fonts in <application>&netscape;</application> are
+      and small fonts are
       almost completely unintelligible.  However, there are several
       free, high quality Type1 (&postscript;) fonts available which
       can be readily used with X11.  For instance, the URW font
@@ -921,9 +921,8 @@ EndSection</programlisting>
     <para>or add a <literal>FontPath</literal> line to the
        <filename>xorg.conf</filename> file.</para>
 
-      <para>That's it.  Now <application>&netscape;</application>,
-	<application>Gimp</application>,
-	<application>&staroffice;</application>, and all of the
+      <para>That's it.  Now <application>Gimp</application>,
+	<application>Apache OpenOffice</application>, and all of the
 	other X applications should now recognize the installed
 	&truetype; fonts.  Extremely small fonts (as with text in a
 	high resolution display on a web page) and extremely large
diff --git a/en_US.ISO8859-1/books/porters-handbook/book.xml b/en_US.ISO8859-1/books/porters-handbook/book.xml
index c6d652470f..f71209149c 100644
--- a/en_US.ISO8859-1/books/porters-handbook/book.xml
+++ b/en_US.ISO8859-1/books/porters-handbook/book.xml
@@ -3796,10 +3796,10 @@ ALWAYS_KEEP_DISTFILES=	yes
       <sect2 id="uses">
 	<title><makevar>USES</makevar></title>
 
-	<para>There several parameters exist for defining different kind
-	  of features and dependencies that the port in question uses.
-	  They can be specified by adding the following line to the
-	  <filename>Makefile</filename> of the port:</para>
+	<para>There several parameters exist for defining different
+	  kind of features and dependencies that the port in question
+	  uses.  They can be specified by adding the following line to
+	  the <filename>Makefile</filename> of the port:</para>
 
 	<programlisting>USES= feature[:arguments]</programlisting>
 
@@ -3807,8 +3807,8 @@ ALWAYS_KEEP_DISTFILES=	yes
 	    linkend="uses-values"/>.</para>
 
 	<warning>
-	  <para><makevar>USES</makevar> cannot be assigned after inclusion of
-	  <filename>bsd.port.pre.mk</filename>.</para>
+	  <para><makevar>USES</makevar> cannot be assigned after
+	    inclusion of <filename>bsd.port.pre.mk</filename>.</para>
 	</warning>
       </sect2>
 
@@ -4464,7 +4464,7 @@ OPTIONS_SINGLE_SG1=	OPT3 OPT4</programlisting>
 	    choices, where none or only one choice from each group
 	    is allowed:</para>
 
-	<programlisting>OPTIONS_RADIO=		RG1
+	  <programlisting>OPTIONS_RADIO=		RG1
 OPTIONS_RADIO_RG1=	OPT7 OPT8</programlisting>
 
 	  <para><makevar>OPTIONS</makevar> can also be grouped as
@@ -4527,7 +4527,9 @@ RUN_DEPENDS+=	bar:${PORTSDIR}/bar/bar
 	  </example>
 
 	  <example id ="ports-options-check-unset">
-	    <title>Check for Unset Port <makevar>OPTIONS</makevar></title>
+	    <title>Check for Unset Port
+	      <makevar>OPTIONS</makevar></title>
+
 	    <programlisting>.if ! ${PORT_OPTIONS:MEXAMPLES}
 CONFIGURE_ARGS+=--without-examples
 .endif</programlisting>
@@ -4580,30 +4582,37 @@ CONFIGURE_ARGS+=	--without-examples
 
 	<sect3>
 	  <title>Default Options</title>
-  	  <para>The following options are always on by default.</para>
-          <itemizedlist>
+
+	  <para>The following options are always on by default.</para>
+
+	  <itemizedlist>
 	    <listitem>
 	      <para><literal>DOCS</literal> &mdash; build and install
 		documentation.</para>
 	    </listitem>
+
 	    <listitem>
 	      <para><literal>NLS</literal> &mdash; Native Language
 		Support.</para>
-            </listitem>
-	    <listitem>
-	      <para><literal>EXAMPLES</literal> &mdash; build and install
-		examples.</para>
 	    </listitem>
+
 	    <listitem>
-	      <para><literal>IPV6</literal> &mdash; IPv6 protocol support.</para>
+	      <para><literal>EXAMPLES</literal> &mdash; build and
+		install examples.</para>
+	    </listitem>
+
+	    <listitem>
+	      <para><literal>IPV6</literal> &mdash; IPv6 protocol
+		support.</para>
 	    </listitem>
 	  </itemizedlist>
+
 	  <note>
 	    <para>There is no need to add these to
-	      <makevar>OPTIONS_DEFAULT</makevar>.  To have them show up
-	      in the options selection dialog, however, they must be added
-	      to <makevar>OPTIONS_DEFINE</makevar>.</para>
-          </note>
+	      <makevar>OPTIONS_DEFAULT</makevar>.  To have them show
+	      up in the options selection dialog, however, they must
+	      be added to <makevar>OPTIONS_DEFINE</makevar>.</para>
+	  </note>
 	</sect3>
       </sect2>
 
@@ -4884,7 +4893,7 @@ PORTVERSION=	1.0</programlisting>
 
 	<programlisting>post-install:
 	${MKDIR} ${EXAMPLESDIR}
-	(cd ${WRKSRC}/examples/ &amp;&amp; ${COPYTREE_SHARE} \* ${EXAMPLESDIR})</programlisting>
+	(cd ${WRKSRC}/examples &amp;&amp; ${COPYTREE_SHARE} . ${EXAMPLESDIR})</programlisting>
 
 	<para>This example will install the contents of
 	  <filename>examples</filename> directory in the vendor
@@ -4893,7 +4902,7 @@ PORTVERSION=	1.0</programlisting>
 
 	<programlisting>post-install:
 	${MKDIR} ${DATADIR}/summer
-	(cd ${WRKSRC}/temperatures/ &amp;&amp; ${COPYTREE_SHARE} "June July August" ${DATADIR}/summer/)</programlisting>
+	(cd ${WRKSRC}/temperatures &amp;&amp; ${COPYTREE_SHARE} "June July August" ${DATADIR}/summer)</programlisting>
 
 	<para>And this example will install the data of summer months
 	  to the <filename>summer</filename> subdirectory of a
@@ -4907,8 +4916,8 @@ PORTVERSION=	1.0</programlisting>
 
 	<programlisting>post-install:
 	${MKDIR} ${EXAMPLESDIR}
-	(cd ${WRKSRC}/examples/ &amp;&amp; \
-		${COPYTREE_SHARE} \* ${EXAMPLESDIR} "! -name Makefile")</programlisting>
+	(cd ${WRKSRC}/examples &amp;&amp; \
+		${COPYTREE_SHARE} . ${EXAMPLESDIR} "! -name Makefile")</programlisting>
 
 	<para>Note that these macros does not add the installed files
 	  to <filename>pkg-plist</filename>.  You still need to list
@@ -4979,13 +4988,14 @@ PORTVERSION=	1.0</programlisting>
 	</itemizedlist>
 
 	<note>
-	  <para>The <literal>DOCS</literal> option only controls additional
-	    documentation installed in <makevar>DOCSDIR</makevar>.  It
-	    does not apply to standard man pages and info pages.
-	    Things installed in <makevar>DATADIR</makevar> and
+	  <para>The <literal>DOCS</literal> option only controls
+	    additional documentation installed in
+	    <makevar>DOCSDIR</makevar>.  It does not apply to standard
+	    man pages and info pages.  Things installed in
+	    <makevar>DATADIR</makevar> and
 	    <makevar>EXAMPLESDIR</makevar> are controlled by
-	    <literal>DATA</literal> and
-	    <literal>EXAMPLES</literal> options, respectively.</para>
+	    <literal>DATA</literal> and <literal>EXAMPLES</literal>
+	    options, respectively.</para>
 	</note>
 
 	<para>These variables are exported to
@@ -5019,14 +5029,13 @@ PORTVERSION=	1.0</programlisting>
 	  is listed in <makevar>PORTDOCS</makevar> or matched by a
 	  glob pattern from this variable, the entire subtree of
 	  contained files and directories will be registered in the
-	  final packing list.  If the <literal>DOCS</literal> option has
-	  been unset then files and directories listed in
-	  <makevar>PORTDOCS</makevar> would not be installed
-	  or added to port packing list.  Installing the
-	  documentation at <makevar>PORTDOCS</makevar> as shown above
-	  remains up to the port itself.  A typical example of
-	  utilizing <makevar>PORTDOCS</makevar> looks as
-	  follows:</para>
+	  final packing list.  If the <literal>DOCS</literal> option
+	  has been unset then files and directories listed in
+	  <makevar>PORTDOCS</makevar> would not be installed or added
+	  to port packing list.  Installing the documentation at
+	  <makevar>PORTDOCS</makevar> as shown above remains up to the
+	  port itself.  A typical example of utilizing
+	  <makevar>PORTDOCS</makevar> looks as follows:</para>
 
 	<programlisting>PORTDOCS=	README.* ChangeLog docs/*</programlisting>
 
@@ -5419,6 +5428,110 @@ IGNORE=	may not be redistributed because of licensing reasons. Please visit <rep
 	</table>
       </sect2>
 
+      <sect2 id="using-cmake">
+	<title>Using <command>cmake</command></title>
+
+	<para>For ports that use <application>CMake</application>,
+	  define <literal>USES= cmake</literal>, or
+	  <literal>USES= cmake:outsource</literal> to build in a
+	  separate directory (see below).</para>
+
+	<table frame="none">
+	  <title>Variables for Ports That Use
+	    <command>cmake</command></title>
+
+	  <tgroup cols="2">
+	    <thead>
+	      <row>
+		<entry>Variable</entry>
+		<entry>Means</entry>
+	      </row>
+	    </thead>
+
+	    <tbody>
+	      <row>
+		<entry><makevar>CMAKE_ARGS</makevar></entry>
+		<entry>Port specific <application>CMake</application>
+		  flags to be passed to the <command>cmake</command>
+		  binary.</entry>
+	      </row>
+
+	      <row>
+		<entry><makevar>CMAKE_BUILD_TYPE</makevar></entry>
+		<entry>Type of build (<application>CMake</application>
+		  predefined build profiles).  Default is
+		  <literal>Release</literal>, or
+		  <literal>Debug</literal> if
+		  <makevar>WITH_DEBUG</makevar> is set.</entry>
+	      </row>
+
+	      <row>
+		<entry><makevar>CMAKE_ENV</makevar></entry>
+		<entry>Environment variables to be set for
+		  <command>cmake</command> binary.  Default is
+		  <literal>&dollar;{CONFIGURE_ENV}</literal>.</entry>
+	      </row>
+
+	      <row>
+		<entry><makevar>CMAKE_SOURCE_PATH</makevar></entry>
+		<entry>Path to the source directory.  Default is
+		  <literal>&dollar;{WRKSRC}</literal>.</entry>
+	      </row>
+	    </tbody>
+	  </tgroup>
+	</table>
+
+	<para><application>CMake</application> supports the following
+	  build profiles: <literal>Debug</literal>,
+	  <literal>Release</literal>,
+	  <literal>RelWithDebInfo</literal> and
+	  <literal>MinSizeRel</literal>.  <literal>Debug</literal> and
+	  <literal>Release</literal> profiles respect system
+	  <literal>*FLAGS</literal>, <literal>RelWithDebInfo</literal>
+	  and <literal>MinSizeRel</literal> will set
+	  <makevar>CFLAGS</makevar> to <literal>-O2 -g</literal> and
+	  <literal>-Os -DNDEBUG</literal> correspondingly.  The
+	  lower-cased value of <makevar>CMAKE_BUILD_TYPE</makevar> is
+	  exported to the <makevar>PLIST_SUB</makevar> and should be
+	  used if port installs <literal>*.cmake</literal> files
+	  depending on the build type (see <filename
+	    role="package">deskutils/strigi</filename> for an
+	  example).  Please note that some projects may define their
+	  own build profiles and/or force particular build type by
+	  setting <literal>CMAKE_BUILD_TYPE</literal> in
+	  <filename>CMakeLists.txt </filename> files.  In order to
+	  make a port for such a project respect
+	  <makevar>CFLAGS</makevar> and <makevar>WITH_DEBUG</makevar>,
+	  the <literal>CMAKE_BUILD_TYPE</literal> definitions must be
+	  removed from those files.</para>
+
+	<para>Most <application>CMake</application>-based projects
+	  support an out-of-source method of building.  The
+	  out-of-source build for a port can be requested by using the
+	  <literal>:outsource</literal> suffix.  When enabled,
+	  <makevar>CONFIGURE_WRKSRC</makevar>,
+	  <makevar>BUILD_WRKSRC</makevar> and
+	  <makevar>INSTALL_WRKSRC</makevar> will be set to
+	  <literal>&dollar;{WRKDIR}/.build</literal> and this
+	  directory will be used to keep all files generated during
+	  configuration and build stages, leaving the source directory
+	  intact.</para>
+
+	<example id="using-cmake-example">
+	  <title><literal>USES= cmake</literal> Example</title>
+
+	  <para>The following snippet demonstrates the use of
+	    <application>CMake</application> for a port.
+	    <makevar>CMAKE_SOURCE_PATH</makevar> is not usually
+	    required, but can be set when the sources are not located
+	    in the top directory, or if only a subset of the project
+	    is intended to be built by the port.</para>
+
+	  <programlisting>USES=			cmake:outsource
+CMAKE_SOURCE_PATH=	&dollar;{WRKSRC}/subproject</programlisting>
+	</example>
+      </sect2>
+
       <sect2 id="using-scons">
 	<title>Using <command>scons</command></title>
 
@@ -5809,13 +5922,15 @@ PLIST_SUB+=		NLS="@comment "
 	  reside under
 	  <filename><makevar>LOCALBASE</makevar>/share/locale</filename>,
 	  should rarely be created and removed by a port.  The most
+
 	  popular languages have their respective directories listed
-	  in <filename><makevar>PORTSDIR</makevar>/Templates/BSD.local.dist</filename>.
+	  in
+	  <filename><makevar>PORTSDIR</makevar>/Templates/BSD.local.dist</filename>.
 	  The directories for many other languages are governed by the
 	  <filename role="package">devel/gettext</filename> port.
-	  Consult its <filename>pkg-plist</filename> and see
-	  whether the port is going to install a message catalog file
-	  for a unique language.</para>
+	  Consult its <filename>pkg-plist</filename> and see whether
+	  the port is going to install a message catalog file for a
+	  unique language.</para>
       </sect2>
     </sect1>
 
@@ -6733,7 +6848,7 @@ do-configure:
 	  <literal>_run</literal> suffixes can be used to force
 	  components dependency type (e.g.,
 	  <literal>baseapps_run</literal>).  If no suffix is set, a
-	  default dependency type will be used. If you want to force
+	  default dependency type will be used.  If you want to force
 	  both types, add the component twice with both suffixes
 	  (e.g., <literal>automoc4_build automoc4_run</literal>).  The
 	  most commonly used components are listed below (up-to-date
@@ -6899,9 +7014,10 @@ do-configure:
 	  <title><makevar>USE_KDE4</makevar> Example</title>
 
 	  <para>This is a simple example for a KDE 4 port.
-	    <makevar>USE_CMAKE</makevar> instructs the port to utilize
-	    <application>CMake</application> &mdash; configuration
-	    tool widely spread among KDE 4 projects.
+	    <literal>USES= cmake:outsource</literal> instructs the
+	    port to utilize <application>CMake</application>, a
+	    configuration tool widely used by KDE 4 projects (see
+	    <xref linkend="using-cmake"/> for detailed usage).
 	    <makevar>USE_KDE4</makevar> brings dependency on KDE
 	    libraries and makes port using
 	    <command>automoc4</command> at build stage.
@@ -6912,7 +7028,7 @@ do-configure:
 	    Qt 4 components, they should be specified in
 	    <makevar>USE_QT4</makevar>.</para>
 
-	  <programlisting>USE_CMAKE=	yes
+	  <programlisting>USES=		cmake:outsource
 USE_KDE4=	kdelibs kdeprefix automoc4
 USE_QT4=	moc_build qmake_build rcc_build uic_build</programlisting>
 	</example>
@@ -10514,7 +10630,8 @@ as .putsy.conf and edit it.</programlisting>
       <literal>portsmon</literal>).  This system attempts to classify
       port PRs by portname.  To search for PRs about a particular
       port, use the <ulink
-	url="http://portsmon.FreeBSD.org/portoverview.py">Overview of One Port</ulink>.</para>
+	url="http://portsmon.FreeBSD.org/portoverview.py">Overview of
+	One Port</ulink>.</para>
 
     <para>If there is no pending PR, the next step is to send an email
       to the port's maintainer, as shown by <command>make
@@ -10614,13 +10731,13 @@ as .putsy.conf and edit it.</programlisting>
     <sect1 id="svn-diff">
       <title>Using <literal>SVN</literal> to Make Patches</title>
 
-      <para>If you can, please submit a &man.svn.1; diff &mdash; they are
-	easier to handle than diffs between <quote>new and old</quote>
-	directories.  Plus it is easier for you to see what you have
-	changed and to update your diff if something is modified in
-	the Ports Collection from when you started to work on it until
-	you submit your changes, or if the committer asks you to fix
-	something.</para>
+      <para>If you can, please submit a &man.svn.1; diff &mdash; they
+	are easier to handle than diffs between <quote>new and
+	  old</quote> directories.  Plus it is easier for you to see
+	what you have changed and to update your diff if something is
+	modified in the Ports Collection from when you started to work
+	on it until you submit your changes, or if the committer asks
+	you to fix something.</para>
 
       <screen>&prompt.user; <userinput>cd ~/my_wrkdir</userinput> <co id="my-wrkdir"/>
 &prompt.user; <userinput>svn co <replaceable>https://svn0.us-west.FreeBSD.org</replaceable>/ports/head/dns/pdnsd</userinput> <co id="svn-FreeBSD-org"/>
@@ -15289,6 +15406,19 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
 		(RELENG_8_3).</entry>
 	    </row>
 
+	    <row>
+	      <entry>804000</entry>
+	      <entry>March 28, 2013</entry>
+	      <entry>releng/8.4 (RELENG_8_4) branch point.</entry>
+	    </row>
+
+	    <row>
+	      <entry>804500</entry>
+	      <entry>March 28, 2013</entry>
+	      <entry>8.4-STABLE after branching releng/8.4
+		(RELENG_8_4).</entry>
+	    </row>
+
 	    <row>
 	      <entry>900000</entry>
 	      <entry>August 22, 2009</entry>
@@ -15699,29 +15829,30 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
 	    <row>
 	      <entry>901501</entry>
 	      <entry>November 11, 2012</entry>
-	      <entry>9.1-STABLE after LIST_PREV() added to queue.h.</entry>
+	      <entry>9.1-STABLE after LIST_PREV() added to
+		queue.h.</entry>
 	    </row>
 
 	    <row>
 	      <entry>901502</entry>
 	      <entry>November 28, 2012</entry>
-	      <entry>9.1-STABLE after USB serial jitter buffer requires
-		rebuild of USB serial device modules.</entry>
+	      <entry>9.1-STABLE after USB serial jitter buffer
+		requires rebuild of USB serial device modules.</entry>
 	    </row>
 
 	    <row>
 	      <entry>901503</entry>
 	      <entry>February 21, 2013</entry>
-	      <entry>9.1-STABLE after USB moved to the driver structure
-	        requiring a rebuild of all USB modules.  Also indicates
-	        the presence of nmtree.</entry>
+	      <entry>9.1-STABLE after USB moved to the driver
+		structure requiring a rebuild of all USB modules.
+		Also indicates the presence of nmtree.</entry>
 	    </row>
 
 	    <row>
 	      <entry>901504</entry>
 	      <entry>March 15, 2013</entry>
-	      <entry>9.1-STABLE after install gained -l, -M, -N and related
-	        flags and cat gained the -l option.</entry>
+	      <entry>9.1-STABLE after install gained -l, -M, -N and
+		related flags and cat gained the -l option.</entry>
 	    </row>
 
 	    <row>
@@ -15890,7 +16021,7 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
 	      <entry>October 16, 2012</entry>
 	      <entry>10-CURRENT after the network interface cloning
 		KPI changed and struct if_clone becoming opaque (rev
-	        <svnref>241610</svnref>).</entry>
+		<svnref>241610</svnref>).</entry>
 	    </row>
 
 	    <row>
@@ -15932,21 +16063,21 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
 	    <row>
 	      <entry>1000025</entry>
 	      <entry>November 17, 2012</entry>
-	      <entry>10-CURRENT after the sin6_scope_id member variable
-		in struct sockaddr_in6 was changed to being filled by the
-		kernel before passing the structure to the userland via
-		sysctl or routing socket.  This means the KAME-specific
-		embedded scope id in sin6_addr.s6_addr[2] is always
-		cleared in userland application (rev
-		<svnref>243443</svnref>).</entry>
+	      <entry>10-CURRENT after the sin6_scope_id member
+		variable in struct sockaddr_in6 was changed to being
+		filled by the kernel before passing the structure to
+		the userland via sysctl or routing socket.  This means
+		the KAME-specific embedded scope id in
+		sin6_addr.s6_addr[2] is always cleared in userland
+		application (rev <svnref>243443</svnref>).</entry>
 	    </row>
 
 	    <row>
 	      <entry>1000026</entry>
 	      <entry>January 11, 2013</entry>
 	      <entry>10-CURRENT after install gained the -N flag (rev
-		<svnref>245313</svnref>).  May also be used to indicate
-		the presense of nmtree.</entry>
+		<svnref>245313</svnref>).  May also be used to
+		indicate the presence of nmtree.</entry>
 	    </row>
 
 	    <row>
@@ -16048,7 +16179,7 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
 	    <row>
 	      <entry><makevar>LOCALBASE</makevar></entry>
 	      <entry>The base of the <quote>local</quote> tree (e.g.,
-		<literal>/usr/local/</literal>)</entry>
+		<literal>/usr/local</literal>)</entry>
 	    </row>
 
 	    <row>
@@ -16074,8 +16205,7 @@ Reference: &lt;http://www.freebsd.org/ports/portaudit/74a9541d-5d6c-11d8-80e3-00
       <programlisting># no need to compile lang/perl5 if perl5 is already in system
 .if ${OSVERSION} &gt; 300003
 BROKEN=	perl is in system
-.endif
-      </programlisting>
+.endif</programlisting>
 
       <para>You did remember to use tab instead of spaces after
 	<literal>BROKEN=</literal> and
@@ -16223,12 +16353,12 @@ exec %%LOCALBASE%%/bin/java -jar %%DATADIR%%/foo.jar "$@"</programlisting>
 
       <note>
 	<para>If building the port errors out with
-	<literal>unrecognized option '-pthread'</literal>,
-	it may be desirable to use <command>cc</command> as linker by
-	setting <makevar>CONFIGURE_ENV</makevar> to
-	<literal>LD=${CC}</literal>.  The
-	<literal>-pthread</literal> option is not supported by
-	<command>ld</command> directly.</para>
+	  <literal>unrecognized option '-pthread'</literal>, it may be
+	  desirable to use <command>cc</command> as linker by setting
+	  <makevar>CONFIGURE_ENV</makevar> to
+	  <literal>LD=${CC}</literal>.  The
+	  <literal>-pthread</literal> option is not supported by
+	  <command>ld</command> directly.</para>
       </note>
     </sect1>
 
@@ -16827,9 +16957,9 @@ pre-install:
 	release of each port with distfiles that have already been
 	fetched.  However, as the Internet continually changes,
 	distfiles can quickly go missing.  <ulink
-	  url="http://portscout.FreeBSD.org">Portscout</ulink>, the &os;
-	Ports distfile scanner, attempts to query every download site
-	for every port to find out if each distfile is still
+	  url="http://portscout.FreeBSD.org">Portscout</ulink>, the
+	&os; Ports distfile scanner, attempts to query every download
+	site for every port to find out if each distfile is still
 	available.  <application>Portscout</application> can generate
 	<acronym>HTML</acronym> reports and send emails about newly
 	available ports to those who request them.  Unless not
diff --git a/en_US.ISO8859-1/books/porters-handbook/uses.xml b/en_US.ISO8859-1/books/porters-handbook/uses.xml
index 905e5b2963..cebb571834 100644
--- a/en_US.ISO8859-1/books/porters-handbook/uses.xml
+++ b/en_US.ISO8859-1/books/porters-handbook/uses.xml
@@ -24,18 +24,28 @@
       role="package">devel/bison</filename> in one way or another.  By
     default, with no arguments or with the <literal>build</literal>
     argument, it implies <command>bison</command> as a build-time
-    dependency, <literal>run</literal> implies a run-time dependency, and
-    <literal>both</literal> implies both run-time and build-time
+    dependency, <literal>run</literal> implies a run-time dependency,
+    and <literal>both</literal> implies both run-time and build-time
     dependencies.</entry>
 </row>
 
+<row>
+  <entry><literal>cmake</literal></entry>
+  <entry>none, <literal>outsource</literal></entry>
+
+  <entry>The port will use <application>CMake</application> for
+    configuring and building.  With the <literal>outsource</literal>
+    argument, an out-of-source build will be performed.  For more
+    information see <xref linkend="using-cmake"/>.</entry>
+</row>
+
 <row>
   <entry><literal>fuse</literal></entry>
   <entry>none</entry>
-  <entry>Implies the port will depend on the FUSE library and handle the
-    the dependency on the kernel module depending on the version of
-    &os;.
-  </entry>
+
+  <entry>Implies the port will depend on the FUSE library and handle
+    the the dependency on the kernel module depending on the version
+    of &os;.</entry>
 </row>
 
 <row>
@@ -52,10 +62,20 @@
   <entry>none, <literal>build</literal>, <literal>run</literal>,
     <literal>both</literal>, <literal>vars</literal></entry>
   <entry>Implies that the port uses <filename
-      role="package">mail/qmail</filename> in one way or another.  With
-    the <literal>build</literal> argument, it implies <command>qmail</command>
-    as a build-time dependency.  <literal>run</literal> implies a run-time
-    dependency.  Using no argument or the <literal>both</literal> argument
-    implies both run-time and build-time dependencies.  <literal>vars</literal>
+      role="package">mail/qmail</filename> in one way or another.
+    With the <literal>build</literal> argument, it implies
+    <command>qmail</command> as a build-time dependency.
+    <literal>run</literal> implies a run-time dependency.  Using no
+    argument or the <literal>both</literal> argument implies both
+    run-time and build-time dependencies.  <literal>vars</literal>
     will only set QMAIL variables for the port to use.</entry>
 </row>
+
+<row>
+  <entry><literal>zenoss</literal></entry>
+  <entry>none</entry>
+  <entry>Implies the port uses <filename
+      role="package">net-mgmt/zenoss</filename> in one way or another,
+    but largely is used for building zenoss related zenpack
+    ports.</entry>
+</row>
diff --git a/en_US.ISO8859-1/htdocs/administration.xml b/en_US.ISO8859-1/htdocs/administration.xml
index 05ad8c7121..82fa56ef41 100644
--- a/en_US.ISO8859-1/htdocs/administration.xml
+++ b/en_US.ISO8859-1/htdocs/administration.xml
@@ -143,7 +143,7 @@
 
   <p>The Primary Release Engineering Team is responsible for setting and
     publishing release schedules for official project releases of FreeBSD,
-    announcing code freezes and maintaining <code>RELENG_*</code> branches, among other
+    announcing code freezes and maintaining <code>releng/*</code> branches, among other
     things.  The <a
       href="releng/charter.html">release engineering team charter</a>
     describes the duties and responsibilities of the Primary Release
@@ -238,14 +238,15 @@
     <li>&a.cperciva; &lt;<a href="mailto:cperciva@FreeBSD.org">cperciva@FreeBSD.org</a>&gt; (Officer Emeritus)</li>
     <li>&a.csjp; &lt;<a href="mailto:csjp@FreeBSD.org">csjp@FreeBSD.org</a>&gt;</li>
     <li>&a.delphij; &lt;<a href="mailto:delphij@FreeBSD.org">delphij@FreeBSD.org</a>&gt; (Officer Deputy)</li>
-    <li>&a.des; &lt;<a href="mailto:des@FreeBSD.org">des@FreeBSD.org</a>&gt;</li>
-    <li>&a.gavin; &lt;<a href="mailto:gavin@FreeBSD.org">gavin@FreeBSD.org</a>&gt;</li>
+    <li>&a.des; &lt;<a href="mailto:des@FreeBSD.org">des@FreeBSD.org</a>&gt; (Officer)</li>
+    <li>&a.gavin; &lt;<a href="mailto:gavin@FreeBSD.org">gavin@FreeBSD.org</a>&gt; (Core Team Liaison)</li>
+    <li>&a.gnn; &lt;<a href="mailto:gnn@FreeBSD.org">gavin@FreeBSD.org</a>&gt; (Secretary)</li>
     <li>&a.jonathan; &lt;<a href="mailto:jonathan@FreeBSD.org">jonathan@FreeBSD.org</a>&gt;</li>
     <li>&a.philip; &lt;<a href="mailto:philip@FreeBSD.org">philip@FreeBSD.org</a>&gt;</li>
     <li>&a.remko; &lt;<a href="mailto:remko@FreeBSD.org">remko@FreeBSD.org</a>&gt;</li>
     <li>&a.rwatson; &lt;<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;</li>
     <li>&a.simon; &lt;<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>&gt;
-      (Officer)</li>
+      (Officer Emeritus)</li>
     <li>&a.stas; &lt;<a href="mailto:stas@FreeBSD.org">stas@FreeBSD.org</a>&gt;</li>
     <li>&a.trasz; &lt;<a href="mailto:trasz@FreeBSD.org">trasz@FreeBSD.org</a>&gt;</li>
   </ul>
@@ -302,7 +303,7 @@
     Team Secretary does not handle Security Officer Team items.</p>
 
   <ul>
-    <li>&a.remko; &lt;<a href="mailto:remko@FreeBSD.org">remko@FreeBSD.org</a>&gt;</li>
+    <li>&a.gnn; &lt;<a href="mailto:gnn@FreeBSD.org">gnn@FreeBSD.org</a>&gt;</li>
   </ul>
 
   <hr/>
diff --git a/en_US.ISO8859-1/htdocs/news/2012-compromise.xml b/en_US.ISO8859-1/htdocs/news/2012-compromise.xml
index 0802682ebe..f593509d68 100644
--- a/en_US.ISO8859-1/htdocs/news/2012-compromise.xml
+++ b/en_US.ISO8859-1/htdocs/news/2012-compromise.xml
@@ -62,6 +62,7 @@
 
     <ul>
       <li><a href="#announce">Announcement</a></li>
+      <li><a href="#update20130323">Update: 23rd March 2013</a></li>
       <li><a href="#update20130303">Update: 3rd March 2013</a></li>
       <li><a href="#update20121229">Update: 29th December 2012</a></li>
       <li><a href="#update20121127">Update: 27th November 2012</a></li>
@@ -73,6 +74,23 @@
       <li><a href="#recommend">Recommendations</a></li>
     </ul>
 
+    <h1><a name="update20130323">Update: March 23rd, 2013</a></h1>
+
+    <p>Port managers have successfully restored some of the Project's
+      binary package building capacity.  There are some issues left
+      still to resolve, e.g.  how to publish the resulting package sets
+      in a secure manner or how to build packages seamlessly for 8.x and
+      9.x systems on a recent 10.x system that the head node
+      ("pointyhat") is running, but we are very close to finish with the
+      preparations required for providing binary packages for the
+      upcoming 8.4 and further releases.</p>
+
+    <p>Unless there are any other major changes, this is planned to be
+      the last status update to this page.  An email will be sent to
+      the <a href="http://lists.freebsd.org/mailman/listinfo/freebsd-announce">
+	FreeBSD announcements mailing list</a> when the package build
+      infrastructure is online and packages are once again available.</p>
+
     <h1><a name="update20130302">Update: March 3rd, 2013</a></h1>
 
     <p>Redports underwent a full security audit, and as a result could
@@ -88,12 +106,6 @@
       bringing it up on new hardware.  At this point, we expect new
       binary packages to be available in 2-4 weeks.</p>
 
-    <p>Unless there are any other major changes, this is planned to be
-      the last status update to this page.  An email will be sent to
-      the <a href="http://lists.freebsd.org/mailman/listinfo/freebsd-announce">
-	FreeBSD announcements mailing list</a> when the package build
-      infrastructure is online and packages are once again available.</p>
-
     <h1><a name="update20121229">Update: December 29th, 2012</a></h1>
 
     <p>With the exception of systems relating to the building and testing
diff --git a/en_US.ISO8859-1/htdocs/ports/Makefile b/en_US.ISO8859-1/htdocs/ports/Makefile
index 4a08d3ecc0..285972b22f 100644
--- a/en_US.ISO8859-1/htdocs/ports/Makefile
+++ b/en_US.ISO8859-1/htdocs/ports/Makefile
@@ -25,7 +25,7 @@ ${INDEX}:
 .endif
 
 HOSTNAME!= hostname
-.if ${HOSTNAME} == "hub.freebsd.org" || ${HOSTNAME} == "freefall.freebsd.org" || ${HOSTNAME} == "www.freebsd.org"
+.if ${HOSTNAME} == "hub.freebsd.org" || ${HOSTNAME} == "freefall.freebsd.org" || ${HOSTNAME} == "www.freebsd.org" || ${HOSTNAME} == "build-web.stream.FreeBSD.org"
 CLUSTER_MACHINE=	YES
 .endif
 
diff --git a/en_US.ISO8859-1/htdocs/releases/8.4R/schedule.xml b/en_US.ISO8859-1/htdocs/releases/8.4R/schedule.xml
index 95e972c8ba..1e6bfbf800 100644
--- a/en_US.ISO8859-1/htdocs/releases/8.4R/schedule.xml
+++ b/en_US.ISO8859-1/htdocs/releases/8.4R/schedule.xml
@@ -56,7 +56,7 @@
     <tr>
       <td>Code freeze begins</td>
       <td>08&nbsp;March&nbsp;2013</td>
-      <td>-</td>
+      <td>08&nbsp;March&nbsp;2013</td>
       <td>Release Engineers announce that all further commits to the
 	stable/8 branch will require explicit approval.
 	Certain blanket approvals will be granted for narrow areas of
@@ -66,7 +66,7 @@
     <tr>
       <td>BETA1</td>
       <td>20&nbsp;March&nbsp;2013</td>
-      <td>-</td>
+      <td>22&nbsp;March&nbsp;2013</td>
       <td>First beta test snapshot.</td>
     </tr>
 
@@ -83,7 +83,7 @@
     <tr>
       <td>releng/&local.rel; branch</td>
       <td>18&nbsp;March&nbsp;2013</td>
-      <td>-</td>
+      <td>28&nbsp;March&nbsp;2013</td>
       <td>Subversion branch created, propagated to CVS; future
         release engineering proceeds on this branch.</td>
     </tr>
@@ -91,7 +91,7 @@
     <tr>
       <td>RC1</td>
       <td>30&nbsp;March&nbsp;2013</td>
-      <td>-</td>
+      <td>10&nbsp;April&nbsp;2013</td>
       <td>First release candidate.</td>
     </tr>
 
diff --git a/en_US.ISO8859-1/htdocs/releng/charter.xml b/en_US.ISO8859-1/htdocs/releng/charter.xml
index 88a16f52c4..536b0ddf52 100644
--- a/en_US.ISO8859-1/htdocs/releng/charter.xml
+++ b/en_US.ISO8859-1/htdocs/releng/charter.xml
@@ -29,9 +29,9 @@
     change-review committee to decide which changes may be made to a
     branch during a code freeze.  This includes freezes for HEAD when
     approaching a .0 release as well as the traditional
-    <tt>RELENG_*</tt> code freeze pending a -STABLE release.</p></li>
+    <tt>releng/*</tt> code freeze pending a -STABLE release.</p></li>
 
-  <li><p>Creation and maintenance of <tt>RELENG_*</tt> branches of the
+  <li><p>Creation and maintenance of <tt>releng/*</tt> branches of the
     <tt>src/</tt> tree.  This includes final authority over what
     commits are made (and remain in) the -STABLE branch prior to the
     branching of a release branch.</p></li>
@@ -60,7 +60,7 @@
   <li><p>Coordinating with the security officer team to ensure that
     pending FreeBSD releases are not affected by recently disclosed
     vulnerabilities.  Also, approximately 1 week after a release,
-    change approval control of release branches (<tt>RELENG_X_Y</tt>)
+    change approval control of release branches (<tt>releng/X.Y/</tt>)
     is transfered from the release engineers to the security-officer
     team.  The exact transfer date is to be worked out by the two
     parties once it is clear that the release was a success.  A heads
diff --git a/en_US.ISO8859-1/htdocs/security/security.xml b/en_US.ISO8859-1/htdocs/security/security.xml
index 0afd7d6254..c85776e424 100644
--- a/en_US.ISO8859-1/htdocs/security/security.xml
+++ b/en_US.ISO8859-1/htdocs/security/security.xml
@@ -85,10 +85,20 @@
     mail alias are currently delivered to:</p>
 
   <table>
+    <tr valign="top">
+      <td>&a.des; <a
+        href="mailto:des@FreeBSD.org">&lt;des@FreeBSD.org&gt;</a></td>
+      <td>Security Officer</td>
+    </tr>
+    <tr valign="top">
+      <td>&a.delphij; <a
+        href="mailto:delphij@FreeBSD.org">&lt;delphij@FreeBSD.org&gt;</a></td>
+      <td>Deputy Security Officer</td>
+    </tr>
     <tr valign="top">
       <td>&a.simon; <a
         href="mailto:simon@FreeBSD.org">&lt;simon@FreeBSD.org&gt;</a></td>
-      <td>Security Officer</td>
+      <td>Security Officer Emeritus</td>
     </tr>
     <tr valign="top">
       <td>&a.cperciva; <a
@@ -101,11 +111,6 @@
       <td>Release Engineering liaison,<br/>
           TrustedBSD Project liaison, system security architecture expert</td>
     </tr>
-    <tr valign="top">
-      <td>&a.delphij; <a
-        href="mailto:delphij@FreeBSD.org">&lt;delphij@FreeBSD.org&gt;</a></td>
-      <td>Deputy Security Officer</td>
-    </tr>
   </table>
 
   <p>The Security Officer is supported by the <a
@@ -275,13 +280,6 @@
       <td>n/a</td>
       <td>last release + 2 years</td>
     </tr>
-    <tr>
-      <td>RELENG_9_0</td>
-      <td>9.0-RELEASE</td>
-      <td>Normal</td>
-      <td>January 10, 2012</td>
-      <td>March 31, 2013</td>
-    </tr>
     <tr>
       <td>RELENG_9_1</td>
       <td>9.1-RELEASE</td>
@@ -474,6 +472,13 @@
       <td>February 24, 2011</td>
       <td>July 31, 2012</td>
     </tr>
+    <tr>
+      <td>RELENG_9_0</td>
+      <td>9.0-RELEASE</td>
+      <td>Normal</td>
+      <td>January 10, 2012</td>
+      <td>March 31, 2013</td>
+    </tr>
   </table>
 
 </body>
diff --git a/en_US.ISO8859-1/htdocs/where.xml b/en_US.ISO8859-1/htdocs/where.xml
index 05fea09307..4a88d3f02a 100644
--- a/en_US.ISO8859-1/htdocs/where.xml
+++ b/en_US.ISO8859-1/htdocs/where.xml
@@ -59,7 +59,7 @@
 	<tr style="text-align: center;">
 	  <td colspan="2">Version &amp; Platform</td>
 	  <td>Distribution</td>
-	  <td title="ISO9660 CD image"><a href="&base;/doc/en_US.ISO8859-1/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
+	  <td title="ISO9660 CD image"><a href="&base;/doc/en_US.ISO8859-1/books/handbook/install-diff-media.html#install-cdrom">ISO</a></td>
 	  <td>Release<br/>Notes</td>
 	  <td>Hardware<br/>Notes</td>
 	  <td>Installation<br/>Notes</td>
diff --git a/en_US.ISO8859-1/share/xml/release.l10n.ent b/en_US.ISO8859-1/share/xml/release.l10n.ent
index 1878197419..e531408961 100644
--- a/en_US.ISO8859-1/share/xml/release.l10n.ent
+++ b/en_US.ISO8859-1/share/xml/release.l10n.ent
@@ -1,4 +1,6 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $FreeBSD$ -->
+
 <![%beta2.testing;[
 <!ENTITY beta.plural 's'>
 ]]>
@@ -11,7 +13,7 @@
         <tr style="text-align: center;">
           <td colspan="2">Version &amp; Platform</td>
           <td>Distribution</td>
-          <td title="ISO9660 CD image"><a href="&base;/doc/en_US.ISO8859-1/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
+          <td title="ISO9660 CD image"><a href="&base;/doc/en_US.ISO8859-1/books/handbook/install-diff-media.html#install-cdrom">ISO</a></td>
           <td>TODO List</td>
         </tr>
       </thead>
@@ -27,7 +29,7 @@
         </tr>
         <tr>
           <td></td>
-          <td>amd64</td>
+          <td>amd64<br/>(x86-64, x64)</td>
           <td><a href="&url.rel;/amd64/amd64/&betarel2.current;-&betarel2.vers;">[Distribution]</a></td>
           <td><a href="&url.rel;/amd64/amd64/ISO-IMAGES/&betarel2.current;/">[ISO]</a></td>
         </tr>
@@ -85,40 +87,48 @@
         <tr style="text-align: center;">
           <td colspan="2">Version &amp; Platform</td>
           <td>Distribution</td>
-          <td title="ISO9660 CD image"><a href="&base;/doc/en_US.ISO8859-1/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
-          <td>Status page</td>
+          <td title="ISO9660 CD image"><a href="&base;/doc/en_US.ISO8859-1/books/handbook/install-diff-media.html#install-cdrom">ISO</a></td>
+	  <!--<td>Status page</td>-->
         </tr>
       </thead>
       <tbody>
         <tr>
           <td colspan="2">FreeBSD &betarel.current;-&betarel.vers;</td>
           <td colspan="2"></td>
-          <td rowspan="7"><a href="http://wiki.freebsd.org/Releng/&betarel.current;TODO">[View]</a></td>
+	  <!--<td rowspan="7"><a href="http://wiki.freebsd.org/Releng/&betarel.current;TODO">[View]</a></td>-->
         </tr>
         <tr>
           <td></td>
-          <td>amd64</td>
-          <td><a href="&url.rel;/amd64/amd64/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
-          <td><a href="&url.rel;/amd64/amd64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td>amd64<br/>(x86-64, x64)</td>
+          <td><a href="&url.rel;/amd64/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
+          <td><a href="&url.rel;/amd64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
         <tr>
           <td></td>
           <td>i386</td>
-          <td><a href="&url.rel;/i386/i386/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
-          <td><a href="&url.rel;/i386/i386/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td><a href="&url.rel;/i386/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
+          <td><a href="&url.rel;/i386/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
+        <tr>
+          <td></td>
+          <td>pc98</td>
+          <td><a href="&url.rel;/pc98/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
+          <td><a href="&url.rel;/pc98/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+        </tr>
+	<!--
         <tr>
           <td></td>
           <td>sparc64</td>
-          <td><a href="&url.rel;/sparc64/sparc64/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
-          <td><a href="&url.rel;/sparc64/sparc64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td><a href="&url.rel;/sparc64/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
+          <td><a href="&url.rel;/sparc64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
         <tr>
           <td></td>
           <td>powerpc64</td>
-          <td><a href="&url.rel;/powerpc/powerpc64/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
-          <td><a href="&url.rel;/powerpc/powerpc64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td><a href="&url.rel;/powerpc/&betarel.current;-&betarel.vers;">[Distribution]</a></td>
+          <td><a href="&url.rel;/powerpc/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
+	-->
       </tbody>
     </table>
 
diff --git a/ja_JP.eucJP/articles/fbsd-from-scratch/article.xml b/ja_JP.eucJP/articles/fbsd-from-scratch/article.xml
index e2f4733638..e25c4e9760 100644
--- a/ja_JP.eucJP/articles/fbsd-from-scratch/article.xml
+++ b/ja_JP.eucJP/articles/fbsd-from-scratch/article.xml
@@ -431,11 +431,11 @@ Do you wish to delete what is left of /var/tmp/temproot.stage1? [no] <userinput>
     </warning>
 
 <programlisting>
-<xi:include href="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default" parse="text"/>
+<xi:include href="stage_1.conf.default" parse="text"/>
 </programlisting>
 
     <para>�����������: <ulink
-        url="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default"><filename>stage_1.conf.default</filename>
+        url="stage_1.conf.default"><filename>stage_1.conf.default</filename>
       </ulink>.</para>
 
     <para>���Υ�����ץȤ�¹Ԥ���ȡ�
@@ -539,11 +539,11 @@ news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make
       �Ȥ���̾���Υ����ե����뤬��������ޤ���</para>
 
 <programlisting>
-<xi:include href="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.conf.default" parse="text"/>
+<xi:include href="stage_2.conf.default" parse="text"/>
 </programlisting>
 
      <para>�����������: <ulink
-        url="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.conf.default"><filename>stage_2.conf.default</filename></ulink>.</para>
+        url="stage_2.conf.default"><filename>stage_2.conf.default</filename></ulink>.</para>
   </sect1>
 
   <sect1 id="stage3">
@@ -673,36 +673,36 @@ fi
       3 �ĤΥե�����򼨤��ޤ���</para>
 
     <para>����� <ulink
-        url="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.sh"><filename>stage_1.sh</filename></ulink>
+        url="stage_1.sh"><filename>stage_1.sh</filename></ulink>
       ������ץȤǤ������Ƥ��ѹ�����ɬ�פϤʤ��Ǥ��礦��</para>
 
 <programlisting>
-<xi:include href="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.sh" parse="text"/>
+<xi:include href="stage_1.sh" parse="text"/>
 </programlisting>
 
     <para>�����������: <ulink
-        url="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.sh"><filename>stage_1.sh</filename></ulink>.</para>
+        url="stage_1.sh"><filename>stage_1.sh</filename></ulink>.</para>
 
     <para>����� <ulink
-        url="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.sh"><filename>stage_2.sh</filename></ulink>
+        url="stage_2.sh"><filename>stage_2.sh</filename></ulink>
       ������ץȤǤ����ǽ����ʬ�ˤ����ѿ����ѹ����ޤ��礦��</para>
 
 <programlisting>
-<xi:include href="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.sh" parse="text"/>
+<xi:include href="stage_2.sh" parse="text"/>
 </programlisting>
 
     <para>�����������: <ulink
-        url="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.sh"><filename>stage_2.sh</filename></ulink>.</para>
+        url="stage_2.sh"><filename>stage_2.sh</filename></ulink>.</para>
 
     <para>����ϡ��錄�����ȤäƤ��� <ulink
-        url="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_3.mk"><filename>stage_3.mk</filename></ulink> �Ǥ���
+        url="stage_3.mk"><filename>stage_3.mk</filename></ulink> �Ǥ���
       �����ưŪ�ˤ����ʤ�����μ��򡢤���������ޤ���</para>
 
 <programlisting>
-<xi:include href="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_3.mk" parse="text"/>
+<xi:include href="stage_3.mk" parse="text"/>
 </programlisting>
 
     <para>�����������: <ulink
-        url="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_3.mk"><filename>stage_3.mk</filename></ulink>.</para>
+        url="stage_3.mk"><filename>stage_3.mk</filename></ulink>.</para>
   </sect1>
 </article>
diff --git a/ja_JP.eucJP/books/handbook/advanced-networking/chapter.xml b/ja_JP.eucJP/books/handbook/advanced-networking/chapter.xml
index 38b4dfd103..192d028849 100644
--- a/ja_JP.eucJP/books/handbook/advanced-networking/chapter.xml
+++ b/ja_JP.eucJP/books/handbook/advanced-networking/chapter.xml
@@ -3,7 +3,7 @@
      The FreeBSD Documentation Project
      The FreeBSD Japanese Documentation Project
 
-     Original revision: r20104
+     Original revision: r20284
      $FreeBSD$
 -->
 
@@ -487,6 +487,139 @@ host2.example.com link#1             UC          0        0
 	���������̾����Ѥ˴ؤ��ƤϽ�ʬ�Ȥ����ޤ���</para>
     </sect2>
 
+    <sect2>
+      <sect2info>
+	<authorgroup>
+	  <author>
+	    <firstname>Al</firstname>
+	    <surname>Hoang</surname>
+	    <contrib>���: </contrib>
+	  </author>
+	</authorgroup>
+      </sect2info>
+      <!-- Feb 2004 -->
+      <title>��Ū�ʷ�ϩ������</title>
+
+      <sect3>
+	<title>��ư�ˤ���ϩ������</title>
+
+	<para>�ʲ��Τ褦�ʥͥåȥ����¸�ߤ���Ȳ��ꤷ�ޤ���</para>
+
+	<literallayout class="monospaced">
+    INTERNET
+      | (10.0.0.1/24) Default Router to Internet
+      |
+      |Interface xl0
+      |10.0.0.10/24
+   +------+
+   |      | RouterA
+   |      | (FreeBSD gateway)
+   +------+
+      | Interface xl1
+      | 192.168.1.1/24
+      |
+  +--------------------------------+
+   Internal Net 1      | 192.168.1.2/24
+                       |
+                   +------+
+                   |      | RouterB
+                   |      |
+                   +------+
+                       | 192.168.2.1/24
+                       |
+                     Internal Net 2
+	</literallayout>
+
+	<para>���Υ��ʥꥪ�Ǥϡ�&os; �ޥ���� <hostid>RouterA</hostid>
+	  �����󥿡��ͥåȤ˸�����줿�롼���Ȥ���ư��ޤ���
+	  �롼���ϳ�¦�Υͥåȥ������³�Ǥ���褦��
+	  <hostid role="ipaddr">10.0.0.1</hostid>
+	  �ظ������ǥե���ȥ롼�Ȥ��ݻ����Ƥ��ޤ���
+	  <hostid>RouterB</hostid> �Ϥ��Ǥ�Ŭ�ڤ����ꤵ��Ƥ��ꡢ
+	  �ɤ��ظ�����ɬ�פ����뤫��
+	  �Ԥ��夯��ˡ���ΤäƤ���Ȳ��ꤷ�ޤ�
+	  (������Ǥϡ��ޤΤ褦�˴�ñ�Ǥ���
+	  <hostid role="ipaddr">192.168.1.1</hostid>
+	  �򥲡��ȥ������Ȥ��� <hostid>RouterB</hostid>
+	  �˥ǥե���ȥ롼�Ȥ��ɲä�������Ǥ�)��</para>
+
+	<para><hostid>RouterA</hostid>
+	  �Υ롼�ƥ��󥰥ơ��֥���ǧ����ȡ�
+	  �ʲ��Τ褦�ʽ��Ϥ����ޤ���</para>
+
+	<screen>&prompt.user; <userinput>netstat -nr</userinput>
+Routing tables
+
+Internet:
+Destination        Gateway            Flags    Refs      Use  Netif  Expire
+default            10.0.0.1           UGS         0    49378    xl0
+127.0.0.1          127.0.0.1          UH          0        6    lo0
+10.0.0/24          link#1             UC          0        0    xl0
+192.168.1/24       link#2             UC          0        0    xl1</screen>
+
+	<para>���ߤΥ롼�ƥ��󥰥ơ��֥�Ǥϡ�<hostid>RouterA</hostid>
+	  �Ϥޤ� Internal Net 2 �ˤ���ã�Ǥ��ʤ��Ǥ��礦��
+	  <hostid role="ipaddr">192.168.2.0/24</hostid>
+	  �η�ϩ���ݻ����Ƥ��ʤ�����Ǥ���
+	  ��褹�뤿��ΰ�Ĥ���ˡ�ϡ���ϩ���ư���ɲä��뤳�ȤǤ���
+	  �ʲ��Υ��ޥ�ɤ� <hostid>RouterA</hostid>
+	  �Υ롼�ƥ��󥰥ơ��֥�� <hostid
+	  role="ipaddr">192.168.1.2</hostid>
+	  ��������Ȥ��ơ�Internal Net 2 �ͥåȥ�����ɲä��ޤ���</para>
+
+	<screen>&prompt.root; <userinput>route add -net 192.168.2.0/24 192.168.1.2</userinput></screen>
+
+	<para>����ˤ�ꡢ<hostid>RouterA</hostid> �ϡ� 
+	  <hostid role="ipaddr">192.168.2.0/24</hostid>
+	  �ͥåȥ����Υۥ��Ȥ���ã����ޤ���</para>
+      </sect3>
+
+      <sect3>
+	<title>��³Ū������</title>
+
+	<para>�嵭����ϡ�
+	  ��ư���Ƥ��륷���ƥ�����Ū�ʷ�ϩ�����ꤹ����ˡ�Ȥ��Ƥϴ����Ǥ���
+	  �������ʤ��顢&os;
+	  �ޥ����Ƶ�ư�����ݤ˥롼�ƥ��󥰾��󤬻Ĥ�ʤ��Ȥ������꤬��Ĥ���ޤ���
+	  ��Ū�ʷ�ϩ���ɲä���ˤϡ�<filename>/etc/rc.conf</filename>
+	  �ե�����˥롼�Ȥ��ɲä��Ƥ���������</para>
+
+	<programlisting># Add Internal Net 2 as a static route
+static_routes="internalnet2"
+route_internalnet2="-net 192.168.2.0/24 192.168.1.2"</programlisting>
+
+	<para><literal>static_routes</literal> �������ѿ��ϡ�
+	  ���ڡ����ˤ�ä�ʬΥ�����ʸ����Υꥹ�ȤǤ���
+	  ���줾���ʸ����Ϸ�ϩ̾�Ȥ��ƻ��Ȥ���ޤ���
+	  �嵭����Ǥ� <literal>static_routes</literal> 
+	  �ϰ�Ĥ�ʸ����Τߤ�����ޤ���
+	  ����ʸ����� <replaceable>internalnet2</replaceable> �Ǥ������θ塢
+	  <literal>route_<replaceable>internalnet2</replaceable></literal>
+	  �Ȥ��������ѿ����ɲä���
+	  &man.route.8; ���ޥ�ɤ�Ϳ���뤹�٤Ƥ�����ѥ�᡼������ꤷ�Ƥ��ޤ���
+	  �������Ǥϡ��ʲ��Υ��ޥ��</para>
+
+	  <screen>&prompt.root; <userinput>route add -net 192.168.2.0/24 192.168.1.2</userinput></screen>
+
+	<para>���Ѥ����Τǡ�
+	  <literal>"-net 192.168.2.0/24 192.168.1.2"</literal>
+	  ��ɬ�פˤʤ�ޤ���</para>
+
+	<para>�嵭�Τ褦�� <literal>static_routes</literal> 
+	  �ϰ�İʾ��ʸ�������Ĥ��Ȥ������Τǡ�
+	  ¿������Ū�ʷ�ϩ���뤳�Ȥ��Ǥ��ޤ���
+	  �ʲ��ιԤ� <hostid role="ipaddr">192.168.0.0/24</hostid>
+	  ����� <hostid role="ipaddr">192.168.1.0/24</hostid>
+	  �ͥåȥ����
+	  ���ۥ롼�������Ū�ʷ�ϩ�Ȥ����ɲä�����Ǥ���</para>
+
+	  <programlisting>static_routes="net1 net2"
+route_net1="-net 192.168.0.0/24 192.168.0.1"
+route_net2="-net 192.168.1.0/24 192.168.1.1"</programlisting>
+
+      </sect3>
+    </sect2>
+
     <sect2>
       <title>�롼�ƥ��󥰤�����</title>
       <indexterm><primary>�롼�ƥ��󥰤�����</primary></indexterm>
@@ -739,16 +872,17 @@ wi0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
 &prompt.root; <userinput>sysctl net.link.ether.bridge.config="wi0,xl0"</userinput>
 &prompt.root; <userinput>sysctl net.inet.ip.forwarding=1</userinput></screen>
 
-	  <para>���ơ�̵�������ɤ����ꤹ��Ȥ��Ǥ���</para>
-	  <para>���Υ��ޥ�ɤϥ����ɤ򥢥������ݥ���ȤȤ������ꤷ�ޤ���</para>
+	  <para>���ơ�̵�������ɤ����ꤹ��Ȥ��Ǥ���
+	    ���Υ��ޥ�ɤϥ����ɤ򥢥������ݥ���ȤȤ������ꤷ�ޤ���</para>
 
 	  <screen>
-&prompt.root; <userinput>ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"</userinput></screen>
+&prompt.root; <userinput>ifconfig wi0 ssid <replaceable>my_net</replaceable> channel 11 media DS/11Mbps mediaopt hostap up stationname "<replaceable>FreeBSD AP</replaceable>"</userinput>
+	  </screen>
 
 	  <para>���� &man.ifconfig.8; ���ޥ�ɹԤ�
 	    <devicename>wi0</devicename> ���󥿥ե������� up
-	    ���֤ˤ���SSID �� <literal>my_net</literal> �����ꤷ��
-	    ���ơ������̾�� <literal>FreeBSD AP</literal> �����ꤷ�ޤ���
+	    ���֤ˤ���SSID �� <replaceable>my_net</replaceable> �����ꤷ��
+	    ���ơ������̾�� <replaceable>FreeBSD AP</replaceable> �����ꤷ�ޤ���
 	    <option>media DS/11Mbps</option> ���ץ����ϥ����ɤ� 11Mbps
 	    �⡼�ɤ����ꤷ���ޤ� <option>mediaopt</option>
 	    ��ºݤ�ͭ���ˤ���Τ�ɬ�פǤ���
@@ -757,7 +891,7 @@ wi0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
 	    <option>channel 11</option> ���ץ����ϻ��Ѥ������ͥ��
 	    802.11b �����ꤷ�ޤ���
 	    �Ƶ����ϰ� (regulatory domain) ��ͭ���ʥ���ͥ��ֹ��
-	    &man.wicontrol.8; �ޥ˥奢��˺ܤäƤ��ޤ���</para>
+	    &man.wicontrol.8; �ޥ˥奢��ڡ����˺ܤäƤ��ޤ���</para>
 
 	  <para>���ơ�
 	    ����Ǵ����˵�ǽ���륢�������ݥ���Ȥ�Ω���夬�ꡢư��Ƥ��ޤ���
@@ -817,14 +951,14 @@ wi0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
 
 	  <para>�����Ϥ�������ˡ�
 	    ���ʤ�����³���褦�Ȥ���̵���ͥåȥ���ˤĤ��Ƥ����Ĥ��ΤäƤ����ʤ���Фʤ�ޤ���
-	    ������Ǥϡ�<literal>my_net</literal>
+	    ������Ǥϡ�<replaceable>my_net</replaceable>
 	    �Ȥ���̾���ǰŹ沽��̵���ˤʤäƤ���ͥåȥ������³���褦�Ȥ��Ƥ��ޤ���</para>
 
-	  <para>Note: ������ǤϰŹ沽��ԤäƤ��ʤ��ΤǤ�����
+	  <note><para>������ǤϰŹ沽��ԤäƤ��ʤ��ΤǤ�����
 	    ����ϴ����ʾ����Ǥ���������ǡ��Ź沽��ͭ���ˤ�����ˡ�ȡ�
 	    �ʤ����줬���פǡ�
 	    �Ź浻�Ѥˤ�äƤϴ����ˤϤ��ʤ����ݸ�뤳�Ȥ��Ǥ��ʤ��ΤϤʤ�����
-	    �Ȥ������Ȥ�ؤ֤Ǥ��礦��</para>
+	    �Ȥ������Ȥ�ؤ֤Ǥ��礦��</para></note>
 
 	  <para>�����ɤ� FreeBSD ��ǧ������Ƥ��뤳�Ȥ��ǧ���Ƥ���������</para>
 
@@ -840,9 +974,9 @@ wi0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
         channel 10 authmode OPEN powersavemode OFF powersavesleep 100
         wepmode OFF weptxkey 1</screen>
 
-	  <para>����Ǥϡ����Υ����ɤ�ͥåȥ���˹�碌�����ꤷ�ޤ��礦��</para>
+	<para>����Ǥϡ����Υ����ɤ�ͥåȥ���˹�碌�����ꤷ�ޤ��礦��</para>
 
-	  <screen>&prompt.root; <userinput>ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net</userinput></screen>
+       <screen>&prompt.root; <userinput>ifconfig wi0 inet <replaceable>192.168.0.20</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>my_net</replaceable></userinput></screen>
 
 	  <para><hostid role="ipaddr">192.168.0.20</hostid> ��
 	    <hostid role="netmask">255.255.255.0</hostid>
@@ -865,9 +999,9 @@ wi0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
 	    ������˰ʲ���ɽ��������Ϥ��Ǥ���</para>
 	  <screen>status: associated</screen>
 
-	  <para>�⤷���Τ褦����³����Ƥ����ɽ������ʤ���С�
+	  <para>�⤷ <literal>associated</literal> ��ɽ������ʤ���С�
 	    ���������ݥ���Ȥ��ϰϳ����⤷��ʤ�����
-	    �Ź沽��ͭ���ˤʤäƤ��ʤ��Τ��⤷��ʤ�����
+	    �Ź沽��ͭ���ˤʤäƤ��뤫�⤷��ʤ�����
 	    �ޤ������������������Ƥ���Τ��⤷��ޤ���</para>
 	</sect4>
       </sect3>
@@ -906,13 +1040,13 @@ wi0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
 	    ���Υ��ޥ�ɤ�Ȥäơ����ʤ��ο����� FreeBSD ���������ݥ���Ⱦ��
 	    WEP ��ͭ���ˤ��Ƥ���������</para>
 
-	  <screen>&prompt.root; <userinput>ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostap</userinput></screen>
+      <screen>&prompt.root; <userinput>ifconfig wi0 inet up ssid <replaceable>my_net</replaceable> wepmode on wepkey <replaceable>0x1234567890</replaceable> media DS/11Mbps mediaopt hostap</userinput></screen>
 
 	  <para>���饤����ȤˤĤ��Ƥϼ��Υ��ޥ�ɤ� WEP ��ͭ���ˤǤ��ޤ���</para>
 
-	  <screen>&prompt.root; <userinput>ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890</userinput></screen>
+      <screen>&prompt.root; <userinput>ifconfig wi0 inet <replaceable>192.168.0.20</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>my_net</replaceable> wepmode on wepkey <replaceable>0x1234567890</replaceable></userinput></screen>
 
-	  <para><literal>0x1234567890</literal>
+	  <para><replaceable>0x1234567890</replaceable>
 	    �����ðۤʥ������ѹ����٤��Ǥ��뤳�Ȥ����դ��Ƥ���������</para>
 	</sect4>
 
@@ -922,7 +1056,7 @@ wi0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
 	  <para>&man.ipsec.4;
 	    �ϥͥåȥ����Ǹ�蘆���ǡ�����Ź沽���뤿��Ρ�
 	    �Ϥ뤫�˴��Ƕ��Ϥʥġ���Ǥ���
-	    ����ϥͥåȥ�����̵���ǡ�����Ź沽�������餫�˹��ޤ�����ˡ�Ǥ���
+	    �����̵���ͥåȥ����Υǡ�����Ź沽�������餫�˹��ޤ�����ˡ�Ǥ���
 	    �ϥ�ɥ֥å���� <link linkend="ipsec">IPsec</link> ���
 	    &man.ipsec.4; �������ƥ���
 	    ����Ӥ��μ�����ˡ�ξܺ٤��ɤळ�Ȥ��Ǥ��ޤ���</para>
@@ -945,7 +1079,7 @@ wi0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
 	  <para><application>bsd-airtools</application> �桼�ƥ���ƥ���
 	    <filename role="package">net/bsd-airtools</filename> port
 	    ���饤�󥹥ȡ���Ǥ��ޤ���
-	    ports �Υ��󥹥ȡ���˴ؤ������ϥϥ�ɥ֥å���
+	    ports �Υ��󥹥ȡ���˴ؤ������Ϥ��Υϥ�ɥ֥å���
 	    <xref linkend="ports"/> �򻲾Ȥ��Ƥ���������</para>
 
 	  <para><command>dstumbler</command> �ץ������ϡ�
@@ -963,7 +1097,7 @@ wi0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
 	</sect4>
 
 	<sect4>
-	  <title><application>wicontrol</application>, <application>ancontrol</application> ����� <application>raycontrol</application> �桼�ƥ���ƥ�</title>
+	  <title><command>wicontrol</command>, <command>ancontrol</command> ����� <command>raycontrol</command> �桼�ƥ���ƥ�</title>
 
 	  <para>�����ϡ�̵���ͥåȥ�����̵�������ɤ��ɤΤ褦��ư��뤫�����椹��ġ���Ǥ���
 	    �嵭����Ǥϡ�̵�������ɤ� <devicename>wi0</devicename>
@@ -975,7 +1109,7 @@ wi0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
 	</sect4>
 
 	<sect4>
-	  <title><application>ifconfig</application> ���ޥ��</title>
+	  <title><command>ifconfig</command> ���ޥ��</title>
 	  <indexterm><primary>ifconfig</primary></indexterm>
 
 	  <para>&man.ifconfig.8; �� &man.wicontrol.8;
diff --git a/ja_JP.eucJP/books/handbook/book.xml b/ja_JP.eucJP/books/handbook/book.xml
index ff5d5dbbef..1a73483977 100644
--- a/ja_JP.eucJP/books/handbook/book.xml
+++ b/ja_JP.eucJP/books/handbook/book.xml
@@ -11,7 +11,7 @@
      The FreeBSD Documentation Project
      The FreeBSD Japanese Documentation Project
 
-     Original revision: r40585
+     Original revision: r41343
      $FreeBSD$
 -->
 
@@ -58,7 +58,6 @@
       &tm-attrib.adaptec;
       &tm-attrib.adobe;
       &tm-attrib.apple;
-      &tm-attrib.corel;
       &tm-attrib.creative;
       &tm-attrib.cvsup;
       &tm-attrib.heidelberger;
@@ -71,7 +70,6 @@
       &tm-attrib.m-systems;
       &tm-attrib.macromedia;
       &tm-attrib.microsoft;
-      &tm-attrib.netscape;
       &tm-attrib.nexthop;
       &tm-attrib.opengroup;
       &tm-attrib.oracle;
diff --git a/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml b/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml
index 33574695da..180080dfad 100644
--- a/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml
+++ b/ja_JP.eucJP/books/handbook/cutting-edge/chapter.xml
@@ -3,7 +3,7 @@
      The FreeBSD Documentation Project
      The FreeBSD Japanese Documentation Project
 
-     Original revision: r40809
+     Original revision: r41349
      $FreeBSD$
 -->
 
@@ -52,11 +52,9 @@
       �������ƥ���¾�ν��פʽ����Τ��ᡢ���ˤϥ��åץǡ��Ȥ�Ԥ�ɬ�פ�����ޤ���
       ���Ѥ��Ƥ���С������˴ؤ�餺��&os; �ϡ�
       �긵�Υ����ƥ��ǿ��γ�ȯ�ĥ꡼��Ʊ�����뤿���ɬ�פʥġ���򤹤٤��Ѱդ��Ƥ��ޤ���
-      �����ơ������Υġ���ϡ�&os; �ΥС������򥢥åץ��졼�ɤ��뤿��ˤ�Ȥ��ޤ���
-      �⤷�⤢�ʤ�������ȯ����Υ����ƥ���ɤ������褦����
-      ����Ȥ��꡼���С������Τɤ줫��Ȥ�³���褦�����¤äƤ���Τʤ顢
-      ���äȤ��ξϤ����ͤˤʤ�Ǥ��礦��
-      �긵�Υ����ƥ�򥢥åץǡ��Ȥ������Ū�ʥġ���ˤĤ��Ƥ���⤷�Ƥ��ޤ���</para>
+      �����ơ������Υġ���ϡ�&os; �ΥС������򥢥åץ��졼�ɤ��뤿��˻Ȥ��ޤ���
+      ���ξϤǤϡ���ȯ�֥������ɤ���������ˡ������ӡ�&os;
+      �����ƥ�򥢥åץǡ��Ȥ������Ū�ʥġ���ˤĤ��Ʋ��⤷�Ƥ��ޤ���</para>
 
     <para>���ξϤ��ɤ��ʬ����Τ�:</para>
 
@@ -70,7 +68,7 @@
 	<para><application>freebsd-update</application>,
 	  <application>Subversion</application> �⤷����
 	  <application>CTM</application>
-	  ��Ȥä������ƥ๹����ˡ</para>
+	  ��Ȥä� &os; �����ƥ�ι�����ˡ</para>
       </listitem>
 
       <listitem>
@@ -81,7 +79,7 @@
 	<para><application>Subversion</application>
 	  �ޤ��ϥɥ�������Ѥ� ports<!-- and
 	  <application>Docsnap</application>--> ��Ȥäơ�
-	  �ɥ�����Ȥ�ǿ��Τ�Τ˥��åץǡ��Ȥ�����ˡ��</para>
+	  ���󥹥ȡ��뤵��Ƥ���ɥ�����Ȥ�ǿ��Τ�Τ˥��åץǡ��Ȥ�����ˡ��</para>
       </listitem>
 
       <listitem>
@@ -89,8 +87,7 @@
       </listitem>
 
       <listitem>
-	<para><command>make buildworld</command> (��)
-      ��Ȥäƥ١��������ƥ����Τ�ƹ��ۤ����󥹥ȡ��뤹����ˡ</para>
+	<para>�١��������ƥ����Τ�ƹ��ۤ����󥹥ȡ��뤹����ˡ</para>
       </listitem>
 
     </itemizedlist>
@@ -98,8 +95,9 @@
     <para>���ξϤ��ɤ����ˡ��ʲ��ν����򤷤ޤ��礦��</para>
 
     <itemizedlist>
-      <listitem><para>�ͥåȥ����³��Ŭ�ڤ����� (<xref
-      linkend="advanced-networking"/>)</para>
+      <listitem>
+	<para>�ͥåȥ����³��Ŭ�ڤ����� (<xref
+	  linkend="advanced-networking"/>)</para>
       </listitem>
       <listitem><para>�����ɥѡ��ƥ����Υ��եȥ������Υ��󥹥ȡ�����ˡ�ν���
         (<xref linkend="ports"/>)</para></listitem>
@@ -108,8 +106,8 @@
     <note>
       <para>���ξϤ��̤��ơ�
 	&os; �Υ����������ɤ����������ɤ����ꥢ�åץǡ��Ȥ���Τ�
-	<command>svn</command> ���ޥ�ɤ��Ѥ����ޤ���
-	���Υ��ޥ�ɤ�Ȥ��ˤϡ�<filename
+	<command>svn</command> ���Ѥ����ޤ���
+	���Υ��ޥ�ɤ�Ȥ�����ˤϡ�<filename
 	  role="package">devel/subversion</filename> port �ޤ��� package
 	�򥤥󥹥ȡ��뤷�Ƥ���ɬ�פ�����ޤ���</para>
     </note>
@@ -132,7 +130,7 @@
 	</author>
       </authorgroup>
     </sect1info>
-    <title>FreeBSD Update</title>
+    <title>&os; Update</title>
 
     <indexterm><primary>Updating and Upgrading</primary></indexterm>
     <indexterm>
@@ -157,9 +155,10 @@
     <note>
       <para>�Х��ʥꥢ�åץǡ��Ȥϡ�
 	�������ƥ������ब���ݡ��Ȥ��Ƥ��뤹�٤ƤΥ������ƥ�����ȥ�꡼�������ѤǤ��ޤ���
-	��������꡼���˥��åץǡ��Ȥ������ˡ����ߤΥ�꡼���Υ��ʥ��󥹤��ܤ��̤���
-	���åץǡ��Ȥ��褦�Ȥ��Ƥ����꡼�����Ф��ƽ��פʾ��󤬤ʤ����ɤ������ǧ���Ƥ���������
-	�����Υ��ʥ��󥹤�
+	��������꡼���˥��åץǡ��Ȥ������ˡ�
+	���åץǡ��Ȥ��褦�Ȥ��Ƥ����꡼���Υ��ʥ��󥹤��ܤ��̤���
+	���פʾ��󤬤ʤ����ɤ������ǧ���Ƥ���������
+	��꡼���Υ��ʥ��󥹤�
 	<ulink url="http://www.FreeBSD.org/ja/releases/"></ulink>
 	�dz�ǧ�Ǥ��ޤ���</para>
     </note>
@@ -171,11 +170,11 @@
     <sect2 id="freebsdupdate-config-file">
       <title>����ե�����</title>
 
-      <para>����ե����� <filename>/etc/freebsd-update.conf</filename>
-	��ǥե���Ȥ��餭��٤���Ĵ�����ơ�
+      <para><filename>/etc/freebsd-update.conf</filename>
+	�������ǥե���Ȥ��餭��٤���Ĵ�����ơ�
 	���åץǡ��ȥץ����������椹��桼���⤤�ޤ���
 	���κ�Ȥ��ɤ�ʸ�񲽤���Ƥ��ޤ�����
-	�ʲ��Τ����Ĥ��ι��ܤˤĤ��Ƥ�������ɬ�פǤ��礦��</para>
+	�ʲ��ι��ܤˤĤ��Ƥ�������ɬ�פǤ��礦��</para>
 
       <programlisting># Components of the base system which should be kept updated.
 Components src world kernel</programlisting>
@@ -190,7 +189,7 @@ Components src world kernel</programlisting>
 	�����������ɤΥ��åץǡ��Ȥ���Ĥ��ޤ���</para>
 
       <para>������ʬ�ˤĤ��Ƥϥǥե���ȤΤޤޤˤ��Ƥ�����
-	���åץǡ��Ȥ��������ܤ�桼�����ꥹ�Ȥ˲ä�����ˤ���Τ��٥��ȤǤ��礦��
+	���åץǡ��Ȥ�����ܤ�桼�����ꥹ�Ȥ˲ä�����ˤ���Τ��٥��ȤǤ��礦��
 	�����������ɤȥХ��ʥ꤬Ʊ�����Ƥ��ʤ��ȡ�
 	�Ỵ�ʷ�̤�⤿�餹��ǽ��������ޤ���</para>
 
@@ -198,9 +197,10 @@ Components src world kernel</programlisting>
 # statement will be ignored.
 IgnorePaths</programlisting>
 
-      <para>���åץǡ��Ȥ��ѹ�����ƤϤ����ʤ�����Υǥ��쥯�ȥꡢ
-	<filename class="directory">/bin</filename> ��
-	<filename class="directory">/sbin</filename> ���Υѥ����ɲä��Ƥ���������
+      <para><filename class="directory">/bin</filename> ��
+	<filename class="directory">/sbin</filename>
+	��������Υǥ��쥯�ȥ�򥢥åץǡ��Ȥ��ѹ����ʤ��褦�ˡ�
+	�����Υѥ����ɲä��Ƥ���������
 	���Υ��ץ����ϡ�����������ѹ����� <command>freebsd-update</command>
 	����񤭤��뤳�Ȥ��ɤ���Ū�ˤ����ѤǤ��ޤ���</para>
 
@@ -209,7 +209,7 @@ IgnorePaths</programlisting>
 # modified by the user (unless changes are merged; see below).
 UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile</programlisting>
 
-      <para>���ꤷ���ǥ��쥯�ȥ�ˤ�������ե������
+      <para>���Υ��ץ����ϡ����ꤷ���ǥ��쥯�ȥ�ˤ�������ե������
 	����������ѹ�����Ƥ��ʤ����Τߥ��åץǡ��Ȥ��ޤ���
 	�桼���������Υե�������ѹ����Ƥ���ȡ�
 	�����Υե�����μ�ư���åץǡ��Ȥ�̵���ˤʤ�ޤ���
@@ -225,14 +225,14 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
       <para><command>freebsd-update</command>
 	���ޡ������٤��ե����뤬¸�ߤ���ǥ��쥯�ȥ�ΰ����Ǥ���
 	�ե�����Υޡ����Υץ������ϡ�
-	&man.mergemaster.8; ��Ʊ�� &man.diff.1; �ѥå���Ϣ³�Ǥ���
-	�ޡ�����ǧ���뤫�����ǥ�����ư���뤫��
+	&man.mergemaster.8; ��Ʊ�� &man.diff.1; �ѥå���Ϣ³�Ǥ�����
+	�����Ͼ��ʤ����ޡ�����ǧ���뤫�����ǥ�����ư���뤫��
 	<command>freebsd-update</command>
 	�����Ǥ��뤫�ɤ���������Ǥ���������
 	�⤷�����ۤ���������С�
 	<filename class="directory">/etc</filename>
 	��Хå����åפ��Ƥ���ޡ�����ǧ���Ƥ���������
-	<command>mergemaster</command> ���ޥ�ɤξܺ٤ʾ���ˤĤ��Ƥϡ�
+	<command>mergemaster</command> �ξܺ٤ʾ���ˤĤ��Ƥϡ�
 	<xref linkend="mergemaster"/> �dz�ǧ���Ƥ���������</para>
 
       <programlisting># Directory in which to store downloaded updates and temporary
@@ -249,7 +249,7 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
 # which actually are installed and upgrade those (StrictComponents no)?
 # StrictComponents no</programlisting>
 
-      <para><literal>yes</literal> �����ꤹ��ȡ�
+      <para>���Υ��ץ����� <literal>yes</literal> �����ꤹ��ȡ�
 	<command>freebsd-update</command> ��
 	<literal>Components</literal> �Υꥹ�Ȥ���������������Ƚ�Ǥ���
 	���Υꥹ�Ȱʳ����ѹ����ˤĤ��Ƥϼ�갷���ޤ���
@@ -261,30 +261,32 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
     <sect2 id="freebsdupdate-security-patches">
       <title>�������ƥ��ѥå�</title>
 
-      <para>�������ƥ��ѥå��ϥ�⡼�ȥޥ������¸����Ƥ��ꡢ
-	�ʲ��Υ��ޥ�ɤ�¹Ԥ���ȡ�����������ɤ��ƥ��󥹥ȡ��뤷�ޤ���</para>
+      <para>�ʲ��Υ��ޥ�ɤ�¹Ԥ���ȡ�&os;
+	�Υ������ƥ��ѥå�������������ɤ��졢���󥹥ȡ��뤵��ޤ���</para>
 
       <screen>&prompt.root; <userinput>freebsd-update fetch</userinput>
 &prompt.root; <userinput>freebsd-update install</userinput></screen>
 
-      <para>�����ͥ�˥ѥå��������ä����ˤϡ������ƥ��Ƶ�ư����ɬ�פ�����ޤ���
-	���٤Ƥ����ޤ��¹ԤǤ��������ƥ�˥ѥå���������褦�Ǥ���С�
-	���դ� &man.cron.8; ����֤Ȥ��� <command>freebsd-update</command>
-	��¹Ԥ��Ƥ�褤�Ǥ��礦��
-	���Υ�������¹ԤǤ���褦�ˤ���ˤϡ�
-	�ʲ��Υ���ȥ�� <filename>/etc/crobntab</filename> ���ɲä��Ƥ���������</para>
+      <para>���åץǡ��Ȥˤ�äƥ����ͥ�˥ѥå��������ä����ˤϡ�
+	�ѥå��������ä������ͥ�ǵ�ư����褦�ˡ�
+	�����ƥ��Ƶ�ư����ɬ�פ�����ޤ���
+	�⤷���ϡ������ƥ�˥ѥå������Ƥ�졢
+	���դ� &man.cron.8; ����֤Ȥ��ơ�<command>freebsd-update</command>
+	��¹Ԥ���褦�ˡ�
+	�ʲ��Υ���ȥ�� <filename>/etc/crobntab</filename>
+	���ɲä��Ƥ���������</para>
 
       <programlisting>@daily                                  root    freebsd-update cron</programlisting>
 
-      <para>���Υ���ȥ�ϡ���������
-	<command>freebsd-update</command> �桼�ƥ���ƥ���¹Ԥ��뤳�Ȥ��̣���ޤ���
-	���Τ褦�� <option>cron</option> �˵��Ҥ���ȡ�
+      <para>���Υ���ȥ�ϡ��������� <command>freebsd-update</command>
+	��¹Ԥ��뤳�Ȥ��̣���ޤ���
+	<option>cron</option> �ȶ��˼¹Ԥ���ȡ�
 	<command>freebsd-update</command>
 	�ϥ��åץǡ��Ȥ�¸�ߤ���Ȥ�������ǧ���ޤ���
 	�ѥå���¸�ߤ���ȡ�
 	��ưŪ�˥�������ǥ������˥���������ɤ���ޤ�����Ŭ�ѤϤ���ޤ���
-	����������ɤ��줿�ѥå����ư�ǥ��󥹥ȡ��뤹��ɬ�פ����ꡢ
-	���Τ��Ȥ� <username>root</username> ���Ƥ˥᡼������Τ���ޤ���</para>
+	����������ɤ��줿�ѥå����ǧ������ư�ǥ��󥹥ȡ��뤹��ɬ�פΤ��뤳�Ȥ���
+	<username>root</username> ���Ƥ˥᡼������Τ���ޤ���</para>
 
       <para>���ޤ��Ԥ��ʤ��ä����ˤϡ�<command>freebsd-update</command>
 	��ʲ��Τ褦�˼¹Ԥ���ȡ��Ǹ���ѹ��ޤǥ�����Хå��Ǥ��ޤ���</para>
@@ -298,15 +300,15 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
       <para><command>freebsd-update</command>
 	�桼�ƥ���ƥ�����ưŪ�˥��åץǡ��Ȥ��륫���ͥ��
 	<filename>GENERIC</filename> �ΤߤǤ���
-	�������५���ͥ��ȤäƤ�����ˤϡ�<command>freebsd-update</command>
-	��¾����ʬ�򥢥åץǡ��Ȥ����塢
+	�������५���ͥ뤬���󥹥ȡ��뤵��Ƥ�����ˤϡ�
+	<command>freebsd-update</command> ��¾����ʬ�򥤥󥹥ȡ��뤷���塢
 	�����ͥ��ƹ��ۤ����⤦���٥��󥹥ȡ��뤹��ɬ�פ�����ޤ���
-	<filename>GENERIC</filename> �����ͥ뤬 <filename
+	�������ʤ��顢<filename>GENERIC</filename> �����ͥ뤬 <filename
 	  class="directory">/boot/GENERIC</filename>
 	��¸�ߤ�����ˤϡ�
-	<command>freebsd-update</command> �ˤ��
-	(���ߤΥ����ƥ�Ǽ¹Ԥ���Ƥ��륫���ͥ�Ǥʤ��Ȥ�)
-	���åץǡ��Ȥ���ޤ���</para>
+	���ߤΥ����ƥ�Ǽ¹Ԥ���Ƥ��륫���ͥ�Ǥʤ��Ȥ⡢
+	<command>freebsd-update</command>
+	�ˤ�ꥢ�åץǡ��Ȥ���ޤ���</para>
 
       <note>
 	<para><filename>GENERIC</filename> �����ͥ�򡢾�� <filename
@@ -333,9 +335,10 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
 	  �������५���ͥ��ƹ��ۤ���ɬ�פϤ���ޤ���
 	  �������ʤ��� <command>freebsd-update</command> �ϡ�
 	  <filename>/usr/src/sys/conf/newvers.sh</filename>
-	  �ե�������˥��åץǡ��Ȥ��ޤ���
-	  ����ϡ����ߤΥ����ƥ�Υѥå���٥� (<command>uname -r</command> ��
-	  <literal>-p</literal> ��ɽ�������ֹ�) �򼨤��ݤ˻��Ȥ����ե�����Ǥ���
+	  ���˥��åץǡ��Ȥ��ޤ���
+	  ����ϡ����ߤΥ����ƥ�Υѥå���٥��
+	  <command>uname -r</command> �� <literal>-p</literal>
+	  ��ɽ��������ˤ��Υե����뤬���Ȥ���ޤ���
 	  ���Τ��ᡢ�����ѹ�����Ƥ��ʤ����Ǥ⡢�������५���ͥ��ƹ��ۤ��뤳�Ȥˤ�ꡢ
 	  &man.uname.1; �������ƥ�����Τʥѥå���٥����𤹤�褦�ˤʤ�ޤ���
 	  �ƥ����ƥ�˥��󥹥ȡ��뤵��Ƥ��륢�åץǡ��Ȥ򤹤Ф䤯�İ��Ǥ���褦�ˤʤ�Τǡ�
@@ -360,12 +363,12 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
 	�����˰�¸����¿���Υ����ɥѡ��ƥ������ץꥱ�������˱ƶ���Ϳ�����ǽ��������ޤ���
 	���󥹥ȡ��뤵��Ƥ��뤹�٤Ƥ� ports �������ƺƥ��󥹥ȡ��뤹�뤫��
 	�᥸�㡼���åץ��졼�ɸ塢
-	<filename role="package">ports-mgmt/portupgrade</filename>
-	�桼�ƥ���ƥ���Ȥäƥ��åץ��졼�ɤ��뤳�Ȥ��侩����Ƥ��ޤ���
+	<filename role="package">ports-mgmt/portmaster</filename>
+	�Ȥ��ä��桼�ƥ���ƥ���Ȥäƥ��åץ��졼�ɤ��뤳�Ȥ��侩����Ƥ��ޤ���
 	���󥹥ȡ��뤵��Ƥ��륢�ץꥱ�������Υ֥롼�ȥե�����Ū�ʺƹ��ۤϡ�
 	�ʲ��Υ��ޥ�ɤˤ��Ԥ����Ȥ��Ǥ��ޤ���</para>
 
-      <screen>&prompt.root; <userinput>portupgrade -af</userinput></screen>
+      <screen>&prompt.root; <userinput>portmaster -f</userinput></screen>
 
       <para>���Υ��ޥ�ɤϡ����٤Ƥ� ports ��Ŭ�ڤ˺ƥ��󥹥ȡ��뤷�褦�Ȥ��ޤ���
 	<makevar>BATCH</makevar> �Ķ��ѿ���
@@ -382,7 +385,7 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
 	  ���åץ��졼�ɤμ��� &os; �ΥС������ˤ�ä��Ѥ��ޤ���</para>
 
 	<sect4 id="freebsd-update-custom-kernel-8x">
-	  <title>&os;&nbsp;8.X �����Υ����ƥ�ˤ����륫�����५���ͥ�</title>
+	  <title>&os;&nbsp;8.X �ˤ����륫�����५���ͥ�</title>
 
 	  <para><filename>GENERIC</filename> �����ͥ뤬
 	    <filename class="directory">/boot/GENERIC</filename>
@@ -397,16 +400,16 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
 		<filename
 		  class="directory">/boot/kernel.old</filename>
 		�� <filename>GENERIC</filename> �����ͥ뤽�Τ�ΤǤ���
-		����ñ�ˤ��Υǥ��쥯�ȥ��̾����
+		���Υǥ��쥯�ȥ��̾����
 		<filename class="directory">/boot/GENERIC</filename>
 		�ؤ��ѹ����Ƥ���������</para>
 	    </listitem>
 
 	    <listitem>
 	      <para>����ԥ塼���ؤ�ʪ��Ū�ʥ�����������ǽ�Ǥ���С�
-		CD-ROM ��ǥ������� <filename>GENERIC</filename>
-		�����ͥ�򥤥󥹥ȡ���Ǥ��ޤ���
-		���󥹥ȡ���ǥ��������������ơ��ʲ��Υ��ޥ�ɤ�¹Ԥ��Ƥ���������</para>
+		�ʲ��Υ��ޥ�ɤ�¹Ԥ��뤳�Ȥǡ�
+		���󥹥ȡ����ǥ������� <filename>GENERIC</filename>
+		�����ͥ�򥤥󥹥ȡ���Ǥ��ޤ���</para>
 
 	      <screen>&prompt.root; <userinput>mount /cdrom</userinput>
 &prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput>
@@ -458,9 +461,9 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
 
 	    <listitem>
 	      <para>����ԥ塼���ؤ�ʪ��Ū�ʥ�����������ǽ�Ǥ���С�
-		CD-ROM ��ǥ������� <filename>GENERIC</filename>
-		�����ͥ�򥤥󥹥ȡ���Ǥ��ޤ���
-		���󥹥ȡ���ǥ��������������ơ��ʲ��Υ��ޥ�ɤ�¹Ԥ��Ƥ���������</para>
+		�ʲ��Υ��ޥ�ɤǡ����󥹥ȡ����ǥ�������
+		<filename>GENERIC</filename>
+		�����ͥ�򥤥󥹥ȡ���Ǥ��ޤ���</para>
 
 	      <screen>&prompt.root; <userinput>mount /cdrom</userinput>
 &prompt.root; <userinput>cd /cdrom/usr/freebsd-dist</userinput>
@@ -494,20 +497,19 @@ MergeChanges /etc/ /var/named/etc/</programlisting>
 	<para><command>freebsd-update</command>
 	  �ˤ��᥸�㡼���ޤ��ϥޥ��ʡ��С������Υ��åץǡ��ȤǤϡ�
 	  ��꡼���С������򥿡����åȤˤ��Ƽ¹Ԥ��ޤ���
-	  ���Ȥ��С�&os;&nbsp;8.1
-	  �˥��åץǡ��Ȥ���ˤϰʲ��Υ��ޥ�ɤ�¹Ԥ��Ƥ���������</para>
+	  �ʲ��Υ��ޥ�ɤϡ�&os;&nbsp;9.1 �˥��åץǡ��Ȥ��ޤ���</para>
 
-	<screen>&prompt.root; <userinput>freebsd-update -r 8.1-RELEASE upgrade</userinput></screen>
+	<screen>&prompt.root; <userinput>freebsd-update -r 9.1-RELEASE upgrade</userinput></screen>
 
 	<para>���ޥ�ɤ�¹Ԥ���ȡ�<command>freebsd-update</command>
 	  ������ե�����ȸ��ߤΥ����ƥ��ɾ������
-	  �����ƥ�򥢥åץǡ��Ȥ��뤿���ɬ�פʾ����������ޤ���
+	  ���åץǡ��Ȥ��뤿���ɬ�פʾ����������ޤ���
 	  ���̤ˤϡ��ɤΥ���ݡ��ͥ�Ȥ�ǧ�����졢
-	  �ɤΥ���ݡ��ͥ�Ȥ�ǧ������Ƥ��ʤ����Ȥ��ä��ꥹ�Ȥ�ɽ������ޤ���
+	  �ɤΥ���ݡ��ͥ�Ȥ�ǧ������Ƥ��ʤ��Ȥ��ä��ꥹ�Ȥ�ɽ������ޤ���
 	  ���Ȥ��аʲ��Τ褦��ɽ������ޤ���</para>
 
 	<screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
-Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done.
+Fetching metadata signature for 9.0-RELEASE from update1.FreeBSD.org... done.
 Fetching metadata index... done.
 Inspecting system... done.
 
@@ -531,7 +533,7 @@ Does this look reasonable (y/n)? y</screen>
 	  �嵭�Υ��ƥåפǰʲ��Τ褦�ʷٹ�ɽ������ޤ���</para>
 
 	<screen>WARNING: This system is running a "<replaceable>MYKERNEL</replaceable>" kernel, which is not a
-kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
+kernel configuration distributed as part of FreeBSD 9.0-RELEASE.
 This kernel will not be updated: you MUST update the kernel manually
 before running "/usr/sbin/freebsd-update install"</screen>
 
@@ -541,11 +543,12 @@ before running "/usr/sbin/freebsd-update install"</screen>
 
 	<para>���٤ƤΥѥå����������륷���ƥ�إ���������ɤ��줿�顢
 	  ���˥ѥå���Ŭ�Ѥ���ޤ���
-	  ���Υץ������ˤ�������֤ϥ���ԥ塼������ǽ�ȥ�������ɤ˰�¸���ޤ���
+	  ���Υץ������ˤϻ��֤�������ޤ���
+	  ���λ��֤ϥ���ԥ塼������ǽ�ȥ�������ɤ˰�¸���ޤ���
 	  ���θ塢����ե����뤬�ޡ�������ޤ���
-	  ���Υץ������Ǥϡ��ե������ޡ������뤫��
+	  ���Υץ������Ǥϡ��桼���ϥե������ޡ������뤫��
 	  ���̾�˥��ǥ�����Ω���夲�Ƽ�ư�ǥޡ������뤫��Ҥͤ��ޤ���
-	  �ץ��������Ȥˡ��ޡ����������������󤬥桼���˼�����ޤ���
+	  �ץ��������ʤऴ�Ȥˡ����������ޡ����Τ��٤Ƥη�̤ξ��󤬥桼���˼�����ޤ���
 	  �ޡ����˼��Ԥ����ꡢ̵�뤷�����ˤϡ��ץ����������Ǥ��ޤ���
 	  �桼���ˤ�äƤ� <filename class="directory">/etc</filename>
 	  �ΥХå����åפ��ꡢ
@@ -556,51 +559,48 @@ before running "/usr/sbin/freebsd-update install"</screen>
 	  <para>���٤ƤΥѥå����̤Υǥ��쥯�ȥ�ǥޡ�������Ƥ��ꡢ
 	    �ޤ��������ƥ�ˤ�ȿ�Ǥ���Ƥ��ޤ���
 	    ���٤ƤΥѥå���������Ŭ�Ѥ��졢
-	    ���٤Ƥ�����ե����뤬�ޡ�������ƥץ����������ࡼ���˿ʤ�Ǥ�����ˤϡ�
-	    �桼���ˤ���ѹ����Υ��ߥåȤ�ɬ�פ���ޤ���</para>
-	</note>
-
-	<para>���Υץ�����������ä��顢
-	  �ʲ��Υ��ޥ�ɤ��Ѥ��ơ����åץ��졼�ɤ�ǥ�������ȿ�Ǥ��Ƥ���������</para>
+	    ���٤Ƥ�����ե����뤬�ޡ�������ƥץ����������ࡼ���˿ʤ���顢
+	    �桼���ϰʲ��Υ��ޥ�ɤ��Ѥ��ơ�
+	    �ѹ�����ǥ�������ȿ�Ǥ��Ƥ���������</para>
 
 	<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
 
+	</note>
+
 	<para>�ѥå��Ϻǽ�˥����ͥ�ȥ����ͥ�⥸�塼����Ф������Ƥ��ޤ���
 	  �����ǥ���ԥ塼����Ƶ�ư����ɬ�פ�����ޤ���
 	  �����ƥब�������५���ͥ��¹Ԥ��Ƥ�����ˤϡ�
-	  &man.nextboot.8; ���ޥ�ɤ�ȤäƼ���κƵ�ư���Υ����ͥ��
-	  (���åץǡ��Ȥ��줿) <filename
-	  class="directory">/boot/GENERIC</filename> ���ѹ����Ƥ���������</para>
+	  &man.nextboot.8; ��ȤäƼ���κƵ�ư���Υ����ͥ��
+	  ���åץǡ��Ȥ��줿 <filename
+	  class="directory">/boot/GENERIC</filename>
+	  �����ꤷ�Ƥ���������</para>
 
 	<screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>
 
 	<warning>
 	  <para><filename>GENERIC</filename> �����ͥ�ǺƵ�ư�������ˡ�
-	    �����ƥबŬ�ڤ˵�ư���뤿���ɬ�פ�
-	    (�⤷����ԥ塼���˥�⡼�Ȥǥ����������ƥ��åץǡ��Ȥ��Ƥ����ΤǤ���С�
-	    �ͥåȥ����³��ɬ�פ�)
-	    ���٤ƤΥɥ饤�Ф��ޤޤ�Ƥ��뤳�Ȥ��ǧ���Ƥ���������
-	    �äˡ�����ޤǤ˼¹Ԥ��Ƥ����������५���ͥ뤬
-	    (�̾�ϥ����ͥ�⥸�塼��Ȥ����󶡤���Ƥ���)
-	    �ӥ�ɺѤߤε�ǽ��ޤ�Ǥ���ΤǤ���С�
+	    �����ͥ�˥����ƥबŬ�ڤ˵�ư���뤿���ɬ�פʤ��٤ƤΥɥ饤�Ф��ޤޤ�Ƥ��뤳�ȡ�
+	    �⤷���åץǡ��Ȥ��Ƥ��륳��ԥ塼������⡼�Ȥǥ����������Ƥ���ΤǤ���С�
+	    �ͥåȥ����³��ɬ�פʤ��٤ƤΥɥ饤�Ф�ޤޤ�Ƥ��뤳�Ȥ��ǧ���Ƥ���������
+	    �äˡ�����ޤǼ¹Ԥ��Ƥ��륫�����५���ͥ뤬��
+	    �����ͥ�⥸�塼��Ȥ����󶡤���Ƥ���ӥ�ɥ���ε�ǽ��ޤ�Ǥ���ΤǤ���С�
 	    �����Υ⥸�塼�����Ū�� <filename>/boot/loader.conf</filename>
 	    �ε�ǽ���Ѥ��ơ�
-	    <filename>GENERIC</filename> �ؤ��ɤ߹���Ǥ���������
+	    <filename>GENERIC</filename> ���ɤ߹���Ǥ���������
 	    ���åץ��졼�ɥץ������������ޤǤϡ�
-	    ���פǤϤʤ������ӥ���̵���ˤ���
-	    �ǥ�������ͥåȥ���Υޥ���Ȥʤɤ��򤱤Ƥ���������</para>
+	    ���פǤϤʤ������ӥ���̵���ˤ���ȤȤ�ˡ�
+	    ɬ�פΤʤ��ǥ�������ͥåȥ���Υޥ���Ȥʤɤ��򤱤뤳�Ȥ��侩����Ƥ��ޤ���</para>
 	</warning>
 
 	<para>���åץǡ��Ȥ��줿�����ͥ�ǥ���ԥ塼����Ƶ�ư���Ƥ���������</para>
 
 	<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
 
-	<para>�����ƥब����饤�����ä��顢
-	  <command>freebsd-update</command> ��ƤӼ¹Ԥ���ɬ�פ�����ޤ���
+	<para>�����ƥब����饤�����ä��顢�ʲ��Υ��ޥ�ɤ�Ȥä�
+	  <command>freebsd-update</command> ��ƤӼ¹Ԥ��Ƥ���������
 	  ���åץǡ��ȥץ������ξ��֤���¸����Ƥ���Τǡ�
 	  <command>freebsd-update</command> ��¹Ԥ���ȡ��ǽ餫��ǤϤʤ���
-	  �Ť���ͭ�饤�֥��ȥ��֥������ȥե������������ץ���������Ϥޤ�ޤ���
-	  ���Υ��ơ�����³�Ԥ���ˤϡ��ʲ��Υ��ޥ�ɤ�¹Ԥ��Ƥ���������</para>
+	  �Ť���ͭ�饤�֥��ȥ��֥������ȥե������������ץ���������Ϥޤ�ޤ���</para>
 
 	<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
 
@@ -619,19 +619,15 @@ before running "/usr/sbin/freebsd-update install"</screen>
 	  ���κ�Ȥ�ɬ�פʤΤϡ����󥹥ȡ��뤵��Ƥ��륽�եȥ���������
 	  ���åץ��졼�ɤκݤ˺�����줿�饤�֥��˰�¸���Ƥ����ǽ�������뤿��Ǥ���
 	  <filename role="package">ports-mgmt/portupgrade</filename>
-	  ���ޥ�ɤϡ����Υץ�������ư�����ޤ���
-	  �ʲ��Υ��ޥ�ɤǡ����Υץ������򳫻Ϥ��ޤ���</para>
+	  �ϡ����Υץ�������ư�����ޤ���</para>
 
-	<screen>&prompt.root; <userinput>portupgrade -f ruby</userinput>
-&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db</userinput>
-&prompt.root; <userinput>portupgrade -f ruby18-bdb</userinput>
-&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db</userinput>
-&prompt.root; <userinput>portupgrade -af</userinput></screen>
+	<screen>&prompt.root; <userinput>portmaster -f</userinput></screen>
 
 	<para>���κ�Ȥν�λ�塢�Ǹ�ˤ⤦����
 	  <command>freebsd-update</command>
-	  ��¹Ԥ���ȡ����åץ��졼�ɤΥץ���������λ���ޤ���
-	  �ʲ��Υ��ޥ�ɤǤ��٤ƤΥ��åץ��졼�ɥץ������Τ��Ĥ���Ȥ��Ԥ��ޤ���</para>
+	  ��¹Ԥ��ơ�
+	  ���٤ƤΥ��åץ��졼�ɥץ������Τ��Ĥ���Ȥ�Ԥ���
+	  ���åץ��졼�ɤΥץ�������λ���Ƥ���������</para>
 
 	<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
 
@@ -647,7 +643,7 @@ before running "/usr/sbin/freebsd-update install"</screen>
     <sect2 id="freebsdupdate-system-comparison">
       <title>�����ƥ�ξ��֤����</title>
 
-      <para><command>freebsd-update</command> �桼�ƥ���ƥ����Ѥ��ơ�
+      <para><command>freebsd-update</command> ���Ѥ��ơ�
 	���󥹥ȡ��뤵��Ƥ��� &os; �ξ��֤ȡ�
 	������ư��뤳�Ȥ�ʬ���äƤ�����֤Ȥ���ӤǤ��ޤ���
 	���Υ��ץ����ϡ������ƥ�Υ桼�ƥ���ƥ����饤�֥�ꡢ
@@ -659,10 +655,10 @@ before running "/usr/sbin/freebsd-update install"</screen>
       <warning>
 	<para>���ޥ�ɥ饤��̾�� <acronym>IDS</acronym> �Ǥ�����
 	  <filename role="package">security/snort</filename>
-	  �Τ褦�ʿ������Υ����ƥ���֤������ˤʤ��ΤǤϤ���ޤ���
+	  �Τ褦�ʿ������Υ����ƥ���������֤������ˤʤ��ΤǤϤ���ޤ���
 	  <command>freebsd-update</command> �ϥǡ�����ǥ���������¸����Τǡ�
 	  �������ѹ����Ԥ����ǽ��������ޤ���
-	  <varname>kern.securelevel</varname> ������ȡ�
+	  <varname>kern.securelevel</varname> �ȡ�
 	  <command>freebsd-update</command> �Υǡ�������Ѥ��ʤ��Ȥ��ˡ�
 	  �ɤ߼��Τߤε���°�������ꤵ��Ƥ���ե����륷���ƥ���֤����Ȥǡ�
 	  �������ѹ��β�ǽ�����㤯�Ǥ��ޤ�����
@@ -674,10 +670,8 @@ before running "/usr/sbin/freebsd-update install"</screen>
 
       <para>���Υ��ޥ�ɤ�¹Ԥ���ȡ������ƥ�ϸ������졢
 	��꡼���ե������ &man.sha256.1;
-	�ϥå����ͤȸ��ߥ��󥹥ȡ��뤵��Ƥ���ե�����Υϥå����ͤ��ե�����ΰ����ȶ���ɽ������ޤ���
-	���줬 <filename>outfile.ids</filename> �ե�����˽��Ϥ�����ͳ�Ǥ���
-	�ܤ���Ӥ���ˤϤȤƤ��᤯���������뤷��
-	���󥽡���Хåե��򤤤äѤ����������Ƥ��ޤ��ޤ���</para>
+	�ϥå����ͤȸ��ߥ��󥹥ȡ��뤵��Ƥ���ե�����Υϥå����ͤ��ե�����ΰ����ȶ��ˡ����ꤷ��
+	<filename>outfile.ids</filename> �ե�����������ޤ���</para>
 
       <para>�����ιԤ϶ˤ��Ĺ���ΤǤ��������Ϸ����ϴ�ñ�ˤ����˲��ϤǤ��ޤ���
 	���Ȥ��С������Υ�꡼���ǰۤʤäƤ��뤹�٤ƤΥե�������Τꤿ���ΤǤ���С�
@@ -694,9 +688,9 @@ before running "/usr/sbin/freebsd-update install"</screen>
 	�����Υե�����ˤϡ���������ѹ������ե����뤬����ޤ���
 	���Ȥ��С�<filename>/etc/passwd</filename>
 	�ϥ桼���������ƥ���ɲä������ѹ�����ޤ���
-	�ޤ��������ͥ�⥸�塼��Τ褦�ʥե����뤬����ޤ���
-	������ <command>freebsd-update</command>
-	�ˤ�ꥢ�åץǡ��Ȥ���ޤ���
+	�ޤ��������ͥ�⥸�塼��Τ褦�ʥե�����ϡ�
+	<command>freebsd-update</command>
+	�ˤ�ꥢ�åץǡ��Ȥ���뤿�ᡢ�ѹ�����ޤ���
 	���Τ褦�����̤ʥե������ǥ��쥯�ȥ���������ˤϡ�
 	������ <filename>/etc/freebsd-update.conf</filename> ��
 	<literal>IDSIgnorePaths</literal> ���ץ������ɲä��Ƥ���������</para>
@@ -731,12 +725,12 @@ before running "/usr/sbin/freebsd-update install"</screen>
       <see>���åץǡ��Ȥȥ��åץ��졼��</see>
     </indexterm>
 
-    <para>&os; �Υ١��������ƥ�ˤϡ�&man.portsnap.8; �ȸƤФ��
-      Ports Collection �Υ��åץǡ��ȥ桼�ƥ���ƥ�������ޤ���
-      �¹Ԥ���ȡ���⡼�ȥ����Ȥ���³�����������ƥ������򸡾ڤ���
-      Ports Collection �����������ɤ��ޤ���
+    <para>&os; �Υ١��������ƥ�ˤϡ�
+      Ports Collection �򥢥åץǡ��Ȥ��� &man.portsnap.8; ������ޤ���
+      ���Υ桼�ƥ���ƥ��ϡ�&os; �Υ����Ȥ���³�����������ƥ������򸡾ڤ���
+      Ports Collection �κǿ��Ǥ����������ɤ��ޤ���
       �������ƥ������ϡ�
-      ����������ɤ������٤ƤΥե����뤬���������������ѹ�����Ƥ��ʤ����Ȥθ��ڤ��Ѥ����ޤ���
+      ����������ɤ������٤ƤΥե�����θ��ڤ��Ѥ����ޤ���
       �ǿ��� Ports Collection �ե���������������ɤ���ˤϡ�
       �ʲ��Υ��ޥ�ɤ�¹Ԥ��Ƥ���������</para>
 
@@ -779,8 +773,8 @@ Fetching 133 new ports or files... done.</screen>
 <replaceable>...</replaceable></screen>
 
     <para>���Ǥ˥��󥹥ȡ��뤵��Ƥ��� Ports Collection
-      �򥢥åץǡ��Ȥ���ˤϡ��ʲ��Τ褦��
-      <command>portsnap update</command> ���ޥ�ɤ�ȤäƤ���������</para>
+      �򥢥åץǡ��Ȥ���ˤϡ�
+      <command>portsnap update</command> ��ȤäƤ���������</para>
 
     <screen>&prompt.root; <userinput>portsnap update</userinput></screen>
 
@@ -789,9 +783,9 @@ Fetching 133 new ports or files... done.</screen>
       ���ץꥱ�������򥤥󥹥ȡ��뤷���ꡢ
       ���åץ��졼�ɤǤ��ޤ���</para>
 
-    <para><literal>fetch</literal> �� <literal>extract</literal> �ޤ���
-      <literal>update</literal> �Υץ�������Ϣ³���ƹԤ��ˤϡ�
-      �ʲ�����Τ褦�˼¹Ԥ��Ƥ���������</para>
+    <para><literal>fetch</literal> ��Ȥ����ˤϡ�
+      <literal>extract</literal> ����� <literal>update</literal>
+      ��Ϣ³���ƹԤ����Ȥ��Ǥ��ޤ���</para>
 
     <screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen>
 
@@ -811,22 +805,20 @@ Fetching 133 new ports or files... done.</screen>
       <see>Updating and Upgrading</see>
     </indexterm>
 
-    <para>�١��������ƥࡢPorts Collection �˲ä���
-      �ɥ�����Ȥ� &os; ���ڥ졼�ƥ��󥰥����ƥ�ι������ǤǤ���
+    <para>�ɥ�����Ȥϡ�&os; ���ڥ졼�ƥ��󥰥����ƥ��ɬ�����ǤǤ���
       &os; �ɥ�����ȥ��åȤκǿ��С������ϡ�<ulink
 	url="http://www.freebsd.org/doc/">&os; �����֥�����</ulink>
       ��������Ǥ��ޤ�����
       �ͥåȥ����³���٤����⤷���Ϥޤä�����³�Ǥ��ʤ��桼���⤤�ޤ���
-      �����ˤ⡢�ƥ�꡼�����󶡤����ɥ�����Ȥ򥢥åץǡ��Ȥ��ơ�
-      �ǿ��� &os;
-      �ɥ�����ȥ��åȤ��������ǰݻ�������ˡ���Ѱդ���Ƥ��ޤ���</para>
+      ��������Υɥ�����Ȥ�ǿ��� &os;
+      �ɥ�����ȥ��åȤ˥��åץǡ��Ȥ�����ˡ�������Ĥ��Ѱդ���Ƥ��ޤ���</para>
 
     <sect2 id="dsvn-doc">
       <title><application>Subversion</application>
 	���Ѥ����ɥ�����ȤΥ��åץǡ�����ˡ</title>
 
       <para>&os; �Υɥ�����ȤΥ������ϡ�
-	<application>Subversion</application> ���Ѥ�������Ǥ��ޤ���
+	<application>svn</application> ���Ѥ�������Ǥ��ޤ���
 	������Ǥϰʲ��ˤĤ����������ޤ���</para>
 
       <itemizedlist>
@@ -837,7 +829,7 @@ Fetching 133 new ports or files... done.</screen>
 	</listitem>
 
 	<listitem>
-	  <para><application>Subversion</application> ���Ѥ��ơ�
+	  <para><application>svn</application> ���Ѥ��ơ�
 	    �ɥ�����ȤΥ�������
 	    <filename class="directory">/usr/doc</filename>
 	    �ʲ��˥���������ɤ�����ˡ��</para>
@@ -858,22 +850,21 @@ Fetching 133 new ports or files... done.</screen>
     </sect2>
 
     <sect2 id="installing-documentation-toolchain">
-      <title><application>Subversion</application>
+      <title><application>svn</application>
 	����ӥɥ�����ȥġ����������Υ��󥹥ȡ���</title>
 
       <para>&os; �Υɥ�����Ȥ򥽡�������ƹ��ۤ���ˤϡ�
-	���ʤ��礭�ʥġ���Υ��쥯�����ɬ�פǤ���
-	�����Υġ����¿���Υǥ��������̤�ɬ�פȤ����ޤ���
-	���٤Ƥ� &os; �桼���ˤȤä�ͭ�ѤȤ����櫓�ǤϤʤ��Τǡ�
+	�ġ���Υ��쥯�����ɬ�פǤ���
+	�����Υġ����¿���Υǥ��������̤���Ѥ��뤿�ᡢ
 	&os; �١��������ƥ�ΰ����ǤϤ���ޤ���
-	�����Υġ���ϡ�&os;
+	�ޤ������٤Ƥ� &os; �桼���ˤȤä�ͭ�ѤȤ����櫓�ǤϤʤ���&os;
 	�Τ���˿������ɥ�����Ȥ��ȯ�˼�ɮ���Ƥ������䡢
 	���ˤ˥ɥ�����Ȥ򥽡������饢�åץǡ��Ȥ������˸�������ΤǤ���</para>
 
-      <para>ɬ�פʥġ���ϡ����٤� Ports Collection ������Ǥ��ޤ���<filename
-	  role="package">textproc/docproj</filename> �ϡ�
-	&os; �ɥ�����ơ������ץ��������Ȥˤ�곫ȯ����Ƥ���ޥ����� port �ǡ�
-	�����Υġ���Υ��󥹥ȡ���䥢�åץǡ��Ȥ��ưפˤ��ޤ���</para>
+      <para><application>svn</application> ��ޤ�ɬ�פʥġ���ϡ�
+	<filename role="package">textproc/docproj</filename> �᥿ port 
+	���饤�󥹥ȡ���Ǥ��ޤ������� port �ϡ�
+	&os; �ɥ�����ơ������ץ��������Ȥˤ�곫ȯ����Ƥ��ޤ���</para>
 
       <note>
 	<para>�ɥ�����Ȥ� &postscript; �� PDF �Ǥ�ɬ�פʤ���С�������
@@ -887,20 +878,14 @@ Fetching 133 new ports or files... done.</screen>
 	  ���Τ��ᡢ�⤷ PDF ���Ϥ�������ɬ�פȤ��ʤ���С�
 	  ���Υġ���򥤥󥹥ȡ��뤷�ʤ����ȤϤȤƤ⸭���Ǥ���</para>
       </note>
-
-      <para><filename role="package">textproc/docproj</filename>
-	�򥤥󥹥ȡ��뤹��ȡ�<application>Subversion</application>
-	�⥤�󥹥ȡ��뤵��ޤ���</para>
     </sect2>
 
     <sect2 id="updating-documentation-sources">
       <title>�ɥ�����ȤΥ������򥢥åץǡ��Ȥ���</title>
 
-      <para>�ɥ�����ȤΥ������ϡ�
-	<application>Subversion</application>
-	�ץ�������Ȥäƥ���������ɤǤ��ޤ���
-	western US �ߥ顼���� HTTPS
-	�ץ��ȥ�����Ѥ��ƥ���������ɤ���ˤϰʲ��Τ褦�����Ϥ��Ƥ���������</para>
+      <para>�ʲ�����Ǥϡ�<application>svn</application> ��Ȥä�
+	western US �ߥ顼���� HTTPS �ץ��ȥ�����Ѥ��ơ�
+	�ɥ�����ȤΥ����������������ɤ��ޤ���</para>
 
       <screen>&prompt.root; <userinput>svn checkout <replaceable>https://svn0.us-west.FreeBSD.org</replaceable>/doc/head /usr/doc</userinput></screen>
 
@@ -916,9 +901,8 @@ Fetching 133 new ports or files... done.</screen>
 
       <screen>&prompt.root; <userinput>svn update <filename class="directory">/usr/doc</filename></userinput></screen>
 
-      <para>�����������ꤷ���顢<filename
-	  class="directory">/usr/doc</filename> �ǥ��쥯�ȥ��
-	<filename>Makefile</filename> ��Ȥ���
+      <para>�����������ꤷ���顢
+	<filename>/usr/doc/Makefile</filename> ��Ȥ���
 	�ʲ��Τ褦�˥ɥ�����Ȥ򥢥åץǡ��Ȥ��뤳�Ȥ�Ǥ��ޤ���</para>
 
       <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
@@ -928,14 +912,14 @@ Fetching 133 new ports or files... done.</screen>
     <sect2 id="updating-documentation-options">
       <title>�ɥ�����ȤΥ�������Ĵ����ǽ�ʥ��ץ����</title>
 
-      <para>&os; �Υɥ�����ȤΥ��åץǡ��Ȥȥӥ�ɥ����ƥ�ϡ�
+      <para>&os; �Υɥ�����ȥ��åȤΥ��åץǡ��Ȥȥӥ�ɥ����ƥ�ϡ�
 	�ɥ�����ơ������ΰ����Υ��åץǡ��Ȥ��ñ�ˤ��륪�ץ����䡢
 	����������Υӥ�ɤ��б����Ƥ��ޤ���
  	�����Υ��ץ����ϡ������ƥ����̤Υ��ץ����Ǥ���
-	<filename>/etc/make.conf</filename> �ե�����䡢&man.make.1;
-	�桼�ƥ���ƥ���Ϳ���륳�ޥ�ɥ饤�󥪥ץ���������Ǥ��ޤ���</para>
+	<filename>/etc/make.conf</filename> �䡢&man.make.1;
+	��Ϳ���륳�ޥ�ɥ饤�󥪥ץ���������Ǥ��ޤ���</para>
 
-      <para>�ʲ��������Υ��ץ����ΰ����Ǥ���</para>
+      <para>���ץ����ˤϰʲ��Τ褦�ʤ�Τ�����ޤ���</para>
 
       <variablelist>
 	<varlistentry>
@@ -943,7 +927,7 @@ Fetching 133 new ports or files... done.</screen>
 
 	  <listitem>
 	    <para>�ӥ�ɤ���ӥ��󥹥ȡ���θ��줪��ӥ��󥳡��ǥ��󥰤ΰ�����
-	      ���Ȥ��С��Ѹ�Υɥ�����ȤΤߤ���ꤹ��ˤ�
+	      ���Ȥ��С��Ѹ�Υɥ�����Ȥ���ꤹ��ˤ�
 	      <literal>en_US.ISO8859-1</literal> �����ꤷ�ޤ���</para>
 	  </listitem>
 	</varlistentry>
@@ -971,11 +955,12 @@ Fetching 133 new ports or files... done.</screen>
 	</varlistentry>
       </variablelist>
 
-      <para>&os; �Υ����ƥ����̤Υ��ץ����˴�Ϣ�����ä�¿���� make �ѿ��ˤĤ��Ƥϡ�
+      <para>&os; �Υ����ƥ����̤Υ��ץ����˴�Ϣ�����ä�¿����
+	<command>make</command> �ѿ��ˤĤ��Ƥϡ�
 	&man.make.conf.5; ��������������</para>
 
-      <para>&os; �ɥ�����ȤΥӥ�ɥ����ƥ���б����Ƥ��뤵��ʤ� make ���ѿ��˴ؤ��Ƥϡ�
-
+      <para>&os; �ɥ�����ȤΥӥ�ɥ����ƥ���б����Ƥ��뤵��ʤ�
+	<command>make</command> ���ѿ��˴ؤ��Ƥϡ�
 	<ulink url="&url.doc.langbase.en;/books/fdp-primer">�������׸��ԤΤ���� &os; �ɥ�����ơ������ץ������������� </ulink> �򻲾Ȥ��Ƥ���������</para>
     </sect2>
 
@@ -983,11 +968,11 @@ Fetching 133 new ports or files... done.</screen>
       <title>���������� &os; �ɥ�����Ȥ򥤥󥹥ȡ��뤹��</title>
 
       <para>�ɥ�����ȤΥ������κǿ����ʥåץ���åȤ�
-	<filename class="directory">/usr/doc</filename> �˥���������ɤ�����ä��顢
+	<filename class="directory">/usr/doc</filename> �˥���������ɤ����顢
 	���󥹥ȡ��뤵��Ƥ���ɥ�����Ȥ򥢥åץǡ��Ȥ�����������٤������ޤ�����</para>
 
-      <para>makefile �� <makevar>DOC_LANG</makevar>
-	���ץ������������Ƥ��뤹�٤Ƥθ�������˥��åץǡ��Ȥ���ˤϡ�
+      <para><makevar>DOC_LANG</makevar>
+	���������Ƥ��뤹�٤Ƥθ�������˥��åץǡ��Ȥ���ˤϡ�
 	�ʲ��Τ褦�����Ϥ��Ƥ���������</para>
 
       <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
@@ -1000,7 +985,7 @@ Fetching 133 new ports or files... done.</screen>
       <screen>&prompt.root; <userinput>cd /usr/doc/en_US.ISO8859-1</userinput>
 &prompt.root; <userinput>make update install clean</userinput></screen>
 
-      <para>make �� <makevar>FORMATS</makevar> �ѿ������ꤷ�ơ�
+      <para><makevar>FORMATS</makevar> �����ꤷ�ơ�
 	�ʲ��Τ褦�˥��󥹥ȡ��뤹����Ϸ��������Ǥ��ޤ���</para>
 
       <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
@@ -1008,7 +993,7 @@ Fetching 133 new ports or files... done.</screen>
 
       <para>�ɥ�����Ȥ��Խ������ꡢ����������Τ���Ф�����ˡ�ˤĤ��Ƥϡ�
 	<ulink
-	  url="&url.books.fdp-primer;">�������׸��ԤΤ���� FreeBSD
+	  url="&url.books.fdp-primer;">�������׸��ԤΤ���� &os;
 	�ɥ�����ơ������ץ�������������</ulink> ��������������</para>
     </sect2>
 
@@ -1034,31 +1019,32 @@ Fetching 133 new ports or files... done.</screen>
 
       <para>����ޤǤΥ��������Ǥϡ������������ɤ��Ѥ��� &os;
 	�ɥ�����ȤΥ��åץǡ�����ˡ�ˤĤ����������Ƥ��ޤ�����
-	�������ʤ��顢���٤ƤΥ����ƥ�ˤ����ơ�
+	���٤Ƥ� &os; �����ƥ�ǡ�
 	����������ɥ�����Ȥ򥢥åץǡ��Ȥ��뤳�Ȥ��񤷤������Τ�ޤ��󤷡�
 	�Ǥ����Ȥ��Ƥ⸽��Ū�ǤϤʤ����Ȥ⤢��ޤ���
 	�ɥ�����Ȥ򥽡������鹽�ۤ���ˤϡ�
 	���ʤ��礭�ʥġ���ȥ桼�ƥ���ƥ����鹽�������
-	<emphasis>�ɥ�����ơ������ġ����������</emphasis> ��ɬ�פǤ���
-	�ޤ���<application>Subversion</application>
+	<emphasis>�ɥ�����ơ������ġ����������</emphasis>
+	��ɬ�פʤ���Ǥ���
+	�ޤ���<application>svn</application>
 	��ݥ��ȥ꤫�饽����������å������Ȥ���
 	�����å������Ȥ�������������ɥ�����Ȥ��ư�ǹ��ۤ�����ˡ�ˤĤ��ơ�
 	����ʤ�˽��Τ��Ƥ���ɬ�פ⤢��ޤ���
 	������Ǥϡ����󥹥ȡ��뤵��Ƥ���
 	&os; �Υɥ�����Ȥ򥢥åץǡ��Ȥ���⤦��Ĥ���ˡ�Ǥ��롢
-	Ports&nbsp;Collection ���Ѥ����ʲ�����ˡ�ˤĤ����������ޤ���</para>
+	Ports Collection ���Ѥ�����ˡ�ˤĤ�����������
+	�ʲ��ˤĤ����������ޤ���</para>
 
       <itemizedlist>
 	<listitem>
 	  <para>���ۺѤΥɥ�����ȤΥ��ʥåץ���åȤ����������ɤ��ƥ��󥹥ȡ��뤹����ˡ��
-	    ��������Ǥι��ۺ�Ȥ�ɬ�פ���ޤ���
-	    (�ɥ�����ơ������ġ����������򥤥󥹥ȡ��뤹��ɬ�פϤ���ޤ���)��</para>
+	    ��������Ǥι��ۺ�Ȥ�ɥ�����ơ������ġ����������򥤥󥹥ȡ��뤹��ɬ�פϤ���ޤ���</para>
 	</listitem>
 
 	<listitem>
 	  <para>�ɥ�����ȤΥ����������������ɤ���ports
-	    �ե졼������Ȥäƹ��ۤ�����ˡ
-	    (�����å������Ȥ���ӹ��ۺ�Ȥ���ñ�ˤʤ�ޤ�)��</para>
+	    �ե졼������Ȥäƹ��ۤ�����ˡ�Ǥ���
+	    �����å������Ȥ���ӹ��ۺ�Ȥ���ñ�ˤʤ�ޤ���</para>
 	</listitem>
       </itemizedlist>
 
@@ -1068,7 +1054,7 @@ Fetching 133 new ports or files... done.</screen>
 	�ˤ�ꥵ�ݡ��Ȥ���Ƥ��ޤ���
 	������ ports �ϡ�&os; Ports&nbsp;Collection �� <ulink
 	  url="http://www.freshports.org/docs/">docs</ulink>
-	���ۥ��ƥ���ˤޤȤ���Ƥ��ޤ���</para>
+	���ƥ���ˤޤȤ���Ƥ��ޤ���</para>
 
       <sect3 id="doc-ports-install-make">
 	<title>�ɥ�����ơ������ ports �ι��ۤȥ��󥹥ȡ���</title>
@@ -1095,9 +1081,7 @@ Fetching 133 new ports or files... done.</screen>
 	  <listitem>
 	    <para><quote>�ޥ��� port</quote>, <filename
 		role="package">misc/freebsd-doc-en</filename>��
-	      �ɥ�����ơ������ port �Υե�����Ϥ����ˤ���ޤ���
-	      ���� port �ϡ����٤ƤΥɥ�����ơ������ ports �Υ١����Ǥ���
-	      �ǥե���ȤǤϡ��Ѹ��ʸ��Τߤ��ۤ��ޤ���</para>
+	      ���٤ƤαѸ�ʸ��� ports �򥤥󥹥ȡ��뤷�ޤ���</para>
 	  </listitem>
 
 	  <listitem>
@@ -1107,35 +1091,30 @@ Fetching 133 new ports or files... done.</screen>
 	  </listitem>
 
 	  <listitem>
-	    <para>�Ǹ�ˡ��Ƹ���Τ���� <quote>���졼�� port</quote>
+	    <para>�Ƹ���Τ���� <quote>���졼�� port</quote>
 	      ���Ѱդ���Ƥ��ޤ������Ȥ��С�<filename
 		role="package">misc/freebsd-doc-hu</filename>
-	      �ϥϥ󥬥꡼��Υɥ�����ơ������ port �Ǥ���
-	      ���� port �ϡ����٤ƥޥ��� port �˰�¸����
-	      �Ƹ�����������줿�ɥ�����Ȥ򥤥󥹥ȡ��뤷�ޤ���</para>
+	      �ϥϥ󥬥꡼��Υɥ�����ơ������ port �Ǥ���</para>
 	  </listitem>
 	</itemizedlist>
 
-	<para>����������ɥ�����ơ������ port �򥤥󥹥ȡ��뤹��ˤϡ�
-	  �ʲ��Υ��ޥ�ɤ� (<username>root</username> ���¤�)
-	  �¹Ԥ��Ƥ���������</para>
+	<para>���Ȥ��С�<ulink
+	    url="http://www.FreeBSD.org"></ulink> ��Ʊ�������Ǥ��롢
+	  �Ѹ��Ǥ�ʬ�䤵�줿 <acronym>HTML</acronym> �������ۤ���
+	  <filename
+	    class="directory">/usr/local/share/doc/freebsd</filename>
+	  �˥��󥹥ȡ��뤹��ˤϰʲ��� port �򥤥󥹥ȡ��뤷�Ƥ���������</para>
 
 	<screen>&prompt.root; <userinput>cd /usr/ports/misc/freebsd-doc-en</userinput>
 &prompt.root; <userinput>make install clean</userinput></screen>
 
-	<para>�Ѹ��Ǥ�ʬ�䤵�줿 <acronym>HTML</acronym> ���� (<ulink
-	    url="http://www.FreeBSD.org"></ulink> ��Ʊ������)
-	  �Υɥ�����Ȥ����ۤ��졢<filename
-	    class="directory">/usr/local/share/doc/freebsd</filename>
-	  �ǥ��쥯�ȥ�˥��󥹥ȡ��뤵��ޤ���</para>
-
 	<sect4 id="doc-ports-options">
 	  <title>���̤Υ��ץ����</title>
 
 	  <para>�ɥ�����ơ������ ports
 	    �ˤϤ�������Υ��ץ�����Ѱդ���Ƥ��ꡢ
-	    ports �ο����񤤤�ǥե���Ȥ����꤫���ѹ��Ǥ��ޤ���
-	    �ʲ��Ϥ����椫�餤���Ĥ���ꥹ�ȥ��åפ�����ΤǤ���</para>
+	    �ʲ��Τ褦��
+	    ports �ο����񤤤�ǥե���Ȥ����꤫���ѹ��Ǥ��ޤ���</para>
 
 	  <variablelist>
 	    <varlistentry>
@@ -1143,11 +1122,11 @@ Fetching 133 new ports or files... done.</screen>
 
 	      <listitem>
 		<para>HTML �������ۤ��ޤ���
-		  ���줾��Υɥ�����Ȥ��Ȥ�ñ���Ǥ� HTML �ե����뤬���ۤ���ޤ���
+		  �ƥɥ�����Ȥ��Ф���ñ���Ǥ� HTML �ե����뤬���ۤ���ޤ���
 		  �������줿�ɥ�����Ȥϡ�
 		  <filename>article.html</filename> ��
 		  <filename>book.html</filename> �Ȥ��ä�̾���ǡ�
-		  �����ȤȤ�˥��󥹥ȡ��뤵��ޤ���</para>
+		  ɬ�פ˱����Ʋ����ȤȤ�˥��󥹥ȡ��뤵��ޤ���</para>
 	      </listitem>
 	    </varlistentry>
 
@@ -1155,11 +1134,7 @@ Fetching 133 new ports or files... done.</screen>
 	      <term><makevar>WITH_PDF</makevar></term>
 
 	      <listitem>
-		<para>&adobe; Portable Document Format ���ۤ��ޤ���
-		  &adobe; &acrobat.reader;,
-		  <application>Ghostscript</application>��
-		  �ޤ��ϡ�¾�� PDF
-		  �꡼�����ɤि��Τ�ΤǤ���
+		<para>&adobe; Portable Document Format (PDF) ���ۤ��ޤ���
 		  �������줿�ɥ�����Ȥϡ�
 		  <filename>article.pdf</filename> ��
 		  <filename>book.pdf</filename>
@@ -1178,10 +1153,8 @@ Fetching 133 new ports or files... done.</screen>
 
 		<note>
 		  <para>�ǥե���ȤΥ������åȥǥ��쥯�ȥ�ϡ�
-		    <application>Subversion</application>
+		    <application>svn</application>
 		    ���Ѥ�����ˡ�Ȥϰۤʤ�ޤ���
-		    �ʤ��ʤ�С�������������򤷤Ƥ�����ˡ�Ǥ�
-		    port ���Ѥ��ƥ��󥹥ȡ��뤷�Ƥ��ꡢ
 		    ports ���̾� <filename
 		      class="directory">/usr/local</filename>
 		    �ǥ��쥯�ȥ�ʲ��˥��󥹥ȡ��뤵��뤿��Ǥ���
@@ -1193,7 +1166,7 @@ Fetching 133 new ports or files... done.</screen>
 	  </variablelist>
 
 	  <para>�ʲ��ϡ��嵭���ѿ����Ѥ��ƥϥ󥬥꡼��Υɥ�����Ȥ�
-	    PDF �����ǥ��󥹥ȡ��뤹����ˡ�򼨤�����ñ����Ǥ���</para>
+	    PDF �����ǥ��󥹥ȡ��뤹����ˡ�Ǥ���</para>
 
 	  <screen>&prompt.root; cd /usr/ports/misc/freebsd-doc-hu
 &prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean</screen>
@@ -1231,7 +1204,7 @@ Fetching 133 new ports or files... done.</screen>
 	<screen>&prompt.root; <userinput>pkg_add -r hu-freebsd-doc</userinput></screen>
 
 	<note>
-	  <para>�ɥ�����Ȥ� package �ϡ����줴�Ȥ��б����� port ��
+	  <para>�ɥ�����Ȥ� package �ϡ��б����� port ̾�Ȥϰۤʤꡢ
 	    <literal><replaceable>lang</replaceable>-freebsd-doc</literal>
 	    �η�����̾�����Ĥ����Ƥ��ޤ���
 	    �����ǡ�<replaceable>lang</replaceable> �ϸ��쥳���ɤ�û�̷��Ǥ���
@@ -1243,15 +1216,13 @@ Fetching 133 new ports or files... done.</screen>
       <sect3 id="doc-ports-update">
 	<title>�ɥ�����ơ������ ports �Υ��åץǡ���</title>
 
-	<para>���󥹥ȡ���ѤߤΥɥ�����ơ������ port
-	  �򥢥åץǡ��Ȥ���ˤϡ�
-	  ports �Υ��åץǡ��ȥġ��뤬�Ѱդ���Ƥ���н�ʬ�Ǥ���
+	<para>¾�� port ��Ʊ�ͤˡ��ɥ�����ơ������ port
+	  �򥢥åץǡ��ȤǤ��ޤ���
 	  ���Ȥ��С��ʲ��Υ��ޥ�ɤ�¹Ԥ���ȡ�<filename
 	    role="package">ports-mgmt/portupgrade</filename>
-	  �ġ���ǡ�package
-	  ������Ȥäƥϥ󥬥꡼��Υɥ�����Ȥ򥢥åץǡ��Ȥ��ޤ���</para>
+	  ���顢package ������Ȥäƥ��󥹥ȡ��뤵��Ƥ���ϥ󥬥꡼��Υɥ�����Ȥ򥢥åץǡ��Ȥ��ޤ���</para>
 
-	<screen>&prompt.root; <userinput>portupgrade -PP hu-freebsd-doc</userinput></screen>
+	<screen>&prompt.root; <userinput>portmaster -PP hu-freebsd-doc</userinput></screen>
       </sect3>
     </sect2>
   </sect1>
@@ -1261,11 +1232,10 @@ Fetching 133 new ports or files... done.</screen>
     <indexterm><primary>-CURRENT</primary></indexterm>
     <indexterm><primary>-STABLE</primary></indexterm>
 
-    <para>FreeBSD �ˤ���Ĥγ�ȯ�֥���������ޤ���
+    <para>&os; �ˤ���Ĥγ�ȯ�֥���������ޤ���
       ����� &os.current; �� &os.stable; �Ǥ���
-      ���ξϤǤϤ��줾��ˤĤ��ƴ�ñ����������
-      �ɤΤ褦�ˤ��Ƥ��ʤ��Υ����ƥ���б�����ĥ꡼���Ф��ơ�
-      �ɤ���äƾ�˺ǿ��ξ��֤��ݤĤ��ˤĤ��ư����ޤ���
+      ���ξϤǤϤ��줾��ˤĤ�����������
+      �ɤΤ褦�ˤ��ƥ����ƥ���б�����ĥ꡼��ǿ��ξ��֤��ݤĤ��ˤĤ����������ޤ���
       �ޤ��� &os.current;������ &os.stable; �ˤĤ����������ޤ���</para>
 
     <para><emphasis>��: &a.hanai;��1996 ǯ 11 �� 6 ��</emphasis></para>
@@ -1273,9 +1243,7 @@ Fetching 133 new ports or files... done.</screen>
     <sect2 id="current">
       <title>�ǿ��� &os; ���ɤ�������</title>
 
-      <para>������ɤ����ˡ�
-        ���ˤȤ�Ƥ������ߤ������Ȥ�����ޤ���
-	&os.current; �Ȥ� &os; �γ�ȯ�� <quote>������</quote> ���Ȥ������ȤǤ���
+      <para>&os.current; �Ȥ� &os; �γ�ȯ�� <quote>������</quote> �Ǥ���
 	&os.current; �Υ桼���Ϲ⤤�����Ϥ���Ĥ��Ȥ��׵ᤵ�졢
 	��ʬ�Υ����ƥब�����뺤���������ϤDz��Ǥ��ʤ���Фʤ�ޤ���
         �⤷ &os; ��Ȥ��Ϥ᤿�Ф���ʤ顢
@@ -1288,21 +1256,20 @@ Fetching 133 new ports or files... done.</screen>
           ��ˤϸ��߳�ȯ�Ӿ�Υ��եȥ�������
           �¸�Ū���ѹ������뤤�ϲ���Ū�ʵ�ǽ�ʤɤ��ޤޤ�Ƥ��ޤ���
           �ޤ�������������äƤ��뵡ǽ�����٤ơ�
-          ���θ�����꡼��������Ȥϸ¤�ޤ���
-          &os.current; �򥽡�������ۤ���������ѥ��뤷�Ƥ���ͤ�
-          �������󤤤ޤ�����
+	  ���θ�����꡼��������Ȥϸ¤�ޤ���&os.current;
+	  �򥽡�������ۤ���������ѥ��뤷�Ƥ���ͤϤ������󤤤ޤ�����
           �����ˤ�äƤϥ���ѥ��뤵���Ǥ��ʤ����֤ˤʤäƤ��뤳�Ȥ⤢��ޤ���
           ����������ϲ�ǽ�ʸ¤��®�˲�褵��ޤ�����
           &os.current; ���Թ���⤿�餹����
           ����Ȥ����������餷����ǽ��⤿�餹���ϡ�
-          �ޤ��˥����������ɤ������줿�ִ֤ˤ��ΤǤ�!</para>
+	  �ޤ��˥����������ɤ�Ʊ�������ִ֤ˤ��ΤǤ�!</para>
       </sect3>
 
       <sect3>
 	<title>ï�� &os.current; ��ɬ�פȤ��Ƥ��?</title>
 
         <para>&os.current; �ϡ�
-          ���λ��Ĥν��פʥ��롼�פ��оݤȤ��Ƥ��ޤ���</para>
+	  ���� 3 �Ĥν��פʥ��롼�פ��оݤȤ��Ƥ��ޤ���</para>
 
         <orderedlist>
           <listitem>
@@ -1317,15 +1284,14 @@ Fetching 133 new ports or files... done.</screen>
               ���ϡ�&os.current;
               �� <quote>�����Ǥ���</quote> ���Ȥ��ǽ�ʸ¤��ݾڤ��뤿��ˡ�
               ���������褹��Τ˻��֤��ˤ��ޤʤ��͡��Ǥ���
-              ���Ϥޤ����͡����ѹ��˴ؤ�����Ƥ�
+	      �����Υƥ������ϡ����ޤ��ޤ��ѹ��˴ؤ�����Ƥ�
               &os; ����ޤ��������դ���Ԥʤ������ȻפäƤ���
               �͡��Ǥ⤢�ꡢ�����������뤿��Υѥå����󼨤��ޤ���</para>
 	</listitem>
 
 	<listitem>
-            <para>ñ�ˡ��͡��ʻ����ܤ���������ͤΤ����
-              (���Ȥ���ư��������ǤϤʤ�<emphasis>�ɤि��</emphasis>��)
-              �ǿ��Υ�������Ȥ������ȻפäƤ���͡���
+	    <para>ñ�ˡ����ޤ��ޤʻ����ܤ������
+	      ���ͤΤ���˺ǿ��Υ�������Ȥ������ȻפäƤ���͡���
               �����ο͡��Ϥޤ���
               ���������Ȥ䥳���ɤ��Ƥ��Ƥ���ޤ���</para>
           </listitem>
@@ -1338,36 +1304,19 @@ Fetching 133 new ports or files... done.</screen>
 
       <orderedlist>
           <listitem>
-            <para>�ʤˤ����������å�������Τ������ʹ����
-              ��ʬ�μ��ϤǤϰ��֤ˤ�����������������ˡ�
-              ��꡼�����Υ����ɤ����Ҥ��ɤ������뤳�ȡ�
-	      ��������ǽ�����뤿��˰��־��ˤʤ�Ȥ������Ȥϡ�
-	      �������Х��˺ǽ�ˤ֤�������Ȥ������ȤǤ���</para>
+	    <para>���Υ�꡼�������ˡ��Ǥ��᤯��������ǽ�����ꤹ�뤳�ȡ�
+	      ��꡼�����ε�ǽ�Ͻ�ʬ�˥ƥ��Ȥ���Ƥ��ʤ����ᡢ
+	      �Х���ޤ�Ǥ�����ǽ�����礤�ˤ���ޤ���</para>
           </listitem>
 
           <listitem>
             <para>�Х��������뤿������ᤤ��ˡ��
-	      �����ʤ�С������� &os.current; �Ǥ��졢
 	      �����餢��Х���������Τ�Ʊ������
 	      �������Х������߽Ф������줬����ޤ���</para>
           </listitem>
 
           <listitem>
-            <para><quote>�����˥��ݡ��Ȥ���</quote> ���ȡ�
-              �錄�������� 3 �Ĥ� <quote>������</quote>
-              &os.current; �Υ��롼�פΰ�Ĥˡ�
-              �ºݤ�°����͡��������Τ˥٥��Ȥ�Ԥ����ޤ�����
-              ����Ū�ʥ��ݡ��Ȥ�Ԥʤ��ˤϡ�ñ�ˡֻ��֤�­��ʤ��פΤǤ���
-              ����Ϥ錄�����������οͤ������ι��ޤʤ���
-              �����ǰ��ϰ����ʹ֤��Ȥ������ȤǤϤ���ޤ���
-              (�⤷�����ʤ� &os; �ʤ�Ƥ�äƤ��ޤ���)��
-              �錄�������ϰ����˲�ɴ�̤�Υ�å�������������
-              <emphasis>����</emphasis> &os;
-              �κ�Ȥ򤹤뤳�Ȥʤɽ���ʤ�!
-              �Ȥ��������Τ��ȤʤΤǤ���
-              �⤷��&os; �β��ɺ�Ȥ�³���뤫��
-              ����Ȥ�¸�Ū�ʥ����ɤ˴ؤ��뤿������μ���������뤫��
-              �Ȥ�����Ĥ����������줿�顢��ȯ�Ԥ����Ԥ����֤Ǥ��礦��</para>
+            <para><quote>�����Υ��ݡ���</quote> �Ϥ���ޤ���</para>
           </listitem>
         </orderedlist>
       </sect3>
@@ -1383,28 +1332,21 @@ Fetching 133 new ports or files... done.</screen>
           <listitem>
 	    <para>&a.current.name; �� &a.svn-src-head.name; �᡼��󥰥ꥹ��
               �˲ä�äƤ���������
-              �����ñ���ɤ��ͤ��Ǥ���Ȥ��������Ǥʤ���
-              <emphasis>ɬ�ܤ�</emphasis>���ȤʤΤǤ���
-              �⤷
-	      <emphasis>&a.current.name;</emphasis>
-	      �᡼��󥰥ꥹ�Ȥ����äƤ��ʤ���С�
-              ���ޤ��ޤʿͤ������ƥ�θ��ߤξ��֤ˤĤ���
-              �Ҥ٤Ƥ��륳���Ȥ򸫤뤳�ȤϷ褷�Ƥ���ޤ��󤷡�
-              ���ä�¾�οͤ����˸��Ĥ��Ʋ�褷�Ƥ���
-              ¿��������˸��ǤäƤ������Ƥ��ޤ��Ǥ��礦��
-              ����˸����ȡ������ƥ��������ݤĤ����
-              ���פʾ����ƨ���Ƥ��ޤ���ǽ���⤢��ޤ���</para>
+	      ���ޤ��ޤʿͤ������ƥ�θ��ߤξ��֤ˤĤ��ƽҤ٤Ƥ��륳���Ȥ򸫤��ꡢ
+	      �����ƥ��������ݤĤ���ν��פʾ����ƨ���ʤ�����ˡ�
+              <emphasis>ɬ�ܤ�</emphasis> ���ȤǤ���</para>
 
 	    <para>&a.svn-src-head.name; �᡼��󥰥ꥹ�ȤǤϡ�
               ���줾����ѹ��ˤĤ��Ƥ�
-              commit �����򸫤뤳�Ȥ��Ǥ��ޤ���
+	      commit ��������Ͽ����Ƥ��ޤ���
               �ޤ�������˴ؤ��Ƶ��������������Ѥξ�������뤳�Ȥ��Ǥ��ޤ��Τǡ�
               ���ä�����ͤΤ���᡼��󥰥ꥹ�ȤǤ���</para>
 
-	    <para>�����Ρ��⤷����¾�Υ᡼��󥰥ꥹ�Ȥ�����ˤϡ�
-	      &a.mailman.lists.link; �򤿤ɤäƻ��ä������᡼��󥰥�
-	      ���Ȥ򥯥�å����Ƥ����������Ĥ�μ��������Ϥ����ˤ���ޤ���
-	      �⤷���������ĥ꡼���Τ��ѹ������ɤ������뤳�Ȥ˶�̣������С�
+	    <para>�����Υ᡼��󥰥ꥹ�Ȥ�����ˤϡ�
+	      &a.mailman.lists.link;
+	      �򤿤ɤäƻ��ä������᡼��󥰥ꥹ�Ȥ򥯥�å�����
+	      ���������ˤ������äƤ���������
+	      �������ĥ꡼���Τ��ѹ������ɤ�������ΤǤ���С�
 	      &a.svn-src-all.name; �᡼��󥰥ꥹ�Ȥ���ɤ��Ƥ���������</para>
           </listitem>
 
@@ -1429,7 +1371,7 @@ Fetching 133 new ports or files... done.</screen>
 	      </indexterm>
 
 	      <listitem>
-		<para><link linkend="svn">svn</link> �ץ�������Ȥäơ�
+		<para><link linkend="svn">svn</link> ��Ȥäơ�
 		  ��˾���볫ȯ�֥�����
 		  �⤷���ϥ�꡼���֥���������å������Ȥ��Ƥ���������
 		  ������ˡ�ϡ���ȯ��� &os; ��ݥ��ȥ�ؤΥ����������󶡤��Ƥ��ꡢ
@@ -1448,53 +1390,47 @@ Fetching 133 new ports or files... done.</screen>
 		</indexterm>
 
                 <para><application><link linkend="ctm">CTM</link></application>���Ѥ��롣
-                  (��³������ۤ��ä��ꡢemail �ǤΥ������������Ǥ��ʤ��褦��)
+		  ��³������ۤ��ä��ꡢemail �ǤΥ������������Ǥ��ʤ��褦�ʡ�
                   ���ޤ��ɼ��Ǥʤ� TCP/IP ��³�ξ��ˤϡ�<application>CTM</application>
-                  �����Ѥ�����ɤ��Ǥ��礦����������
-                  ����ˤ�¿���μ�֤�������ޤ�����
-                  ���줿�ե����������ȤäƤ��ޤ���ǽ���⤢��ޤ���
-                  ���Τ��ᡢ�Ƕ�ǤϤ��ޤ�Ȥ��ʤ��ʤäƤ��ꡢ
-                  Ĺ���ֻ��ѤǤ��ʤ��ʤäƤ��ޤ����֤�ȯ�������ǽ��������ޤ�
-                  (����: �ݼ餹��ͤ����ʤ�����Ǥ�)��
-		  ���󥿡��ͥåȤ���³���Ƥ��륷���ƥ�Ǥ���С�
-		  <application><link linkend="svn">Subversion</link></application>
-                  �����Ѥ���뤳�Ȥ�侩���ޤ���
-                </para>
+		  �����Ѥ�����ɤ��Ǥ��礦����������<application><link
+		    linkend="svn">Subversion</link></application>
+		  �ۤɤˤϿ���ϤǤ��ޤ���
+		  ���Τ��ᡢ���󥿡��ͥåȤ���³���Ƥ��륷���ƥ�Ǥ���С�
+		  <application><link
+		    linkend="svn">Subversion</link></application>
+		  �����Ѥ���뤳�Ȥ�侩���ޤ���</para>
               </listitem>
             </orderedlist>
           </listitem>
 
           <listitem>
             <para>�⤷����������į�������Ǥʤ���
-              ���餻�뤿������ꤷ�Ƥ���ΤǤ���С�
+	      ���餻�뤿������ꤹ��ΤǤ���С�
               �����������֤ΤǤϤʤ���&os.current;
               ��<emphasis>����</emphasis>��������Ƥ���������
-              �ʤ��ʤ顢�������Τ��ޤ��ޤ���ʬ��¾����ʬ�ι����˰�¸���Ƥ��ꡢ
+	      �������Τ��ޤ��ޤ���ʬ��¾����ʬ�ι����˰�¸���Ƥ��ꡢ
               �����Τߤ򥳥�ѥ��뤷�褦�Ȥ���ȡ�
-              �ְܴۤ㤤�ʤ��ȥ�֥�򵯤�������Ǥ���</para>
+              �ְܴۤ㤤�ʤ����꤬�����ޤ���</para>
 
 	  <indexterm>
 	    <primary>-CURRENT</primary>
 	    <secondary>����ѥ���</secondary>
 	  </indexterm>
             <para>&os.current; �򥳥�ѥ��뤹������
-              <filename>/usr/src</filename> �ˤ��� Makefile
-              ���ɤ��ɤ�Ǥ���������
-              ���åץ��졼�ɤν����ΰ����Ȥ��ơ�
-              ���ʤ��Ȥ���Ϻǽ��
+	      <filename>/usr/src/Makefile</filename>
+	      �����տ����ɤ�Ǥ���������
+	      ���åץ��졼�ɤν����ΰ����Ȥ��ơ��ǽ��
 	      <link linkend="makeworld">�����������ͥ�򥤥󥹥ȡ��뤷
-	      �ơ�world ��ƹ���</link> ���٤��Ǥ��礦��&a.current; ��
-	      <filename>/usr/src/UPDATING</filename> ���ɤ�С����Υ�
-	      �꡼���ظ����ưܤäƤ椯�������äƻ���ɬ�פȤʤ��¸����
-	      �ƥफ��ο������ƥ�ι��ۼ��ˤĤ��Ƥκǿ����������
-	      ��Ǥ��礦��</para>
+	      �ơ�world ��ƹ���</link> ���Ƥ���������&a.current; ��
+	      <filename>/usr/src/UPDATING</filename> ���ɤ�С�
+	      ���Υ�꡼���ظ����ưܤäƤ椯�������äơ�
+	      �Ȥ��ɤ�ɬ�פȤʤ��¸�����ƥफ��ο������ƥ�ι��ۼ��ˤĤ��Ƥκǿ�����������Ǥ��礦��</para>
           </listitem>
 
           <listitem>
             <para>�����ƥ��֤ˤʤäƤ�������!
-              �⤷ &os.current;
-              �����餻�Ƥ���ʤ顢�錄�������Ϥ���˴ؤ��륳���ȡ�
-              �ä˳�ĥ��Х��٤��˴ؤ�����Ƥ��ߤ��Ƥ��ޤ���
+	      &os.current; �Υ桼���ˤϡ�
+	      ��ĥ��Х��٤��˴ؤ�����Ƥ��뤳�Ȥ�������Ƥ��ޤ���
               �����ɤ�ȼ����ƤϤ�äȤⴿ�ޤ�����ΤǤ�!</para>
           </listitem>
         </orderedlist>
@@ -1524,43 +1460,39 @@ Fetching 133 new ports or files... done.</screen>
       <sect3>
 	<title>ï�� &os.stable; ��ɬ�פȤ��Ƥ����?</title>
 
-	<para>�⤷���ʤ��� FreeBSD �γ�ȯ�����˶�̣������Ȥ���
-          ������Ф���׸���ͤ��Ƥ��ơ��äˤ��줬
-          ����� <quote>�ݥ����</quote> ��꡼���˴ط�������
-          �Ǥ���ʤ� &os.stable; ���ɤ����Ȥ�ͤ�����ɤ��Ǥ��礦��</para>
+	<para>FreeBSD �γ�ȯ�ץ������˶�̣�����ä��ꡢ
+	  ������Ф���׸���ͤ��Ƥ��ơ��äˤ��줬�����
+	  <quote>�ݥ����</quote> ��꡼���˴ط������ΤǤ���ʤ�
+	  &os.stable; ���ɤ����Ȥ�ͤ�����ɤ��Ǥ��礦��</para>
 
 	<para>�������ƥ���ν����� &os.stable; �֥������Ф��ƹԤʤ��ޤ�����
           ���Τ���� &os.stable; ���ɤ�<emphasis>ɬ��</emphasis>�Ϥ���ޤ���
-          ���٤Ƥ� FreeBSD �������ƥ�����ˤ�
-          �ƶ��Τ����꡼��������������������ˡ����������Ƥ���
-	  <footnote><para>��������ΤǤϤ���ޤ���
-	    �ºݤ錄�������ϲ�ǯ��δָŤ���꡼���� FreeBSD
-	    �򥵥ݡ��Ȥ��ƤϤ���ΤǤ�����
-	    �ʱ�˥��ݡ��Ȥ�³���뤳�ȤϤǤ��ޤ���
-	    �������ǤθŤ���꡼���� FreeBSD �Υ������ƥ��ݥꥷ�������������Τ�ˤϡ�
-  	    <ulink
-  	    url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>
-	    �򻲾Ȥ��Ƥ���������</para>
-	  </footnote>
-	  ��
-          �������ƥ������ͳ�Τߤ��鳫ȯ�ѥ֥������Τ��ɤ������뤳�Ȥϡ�
-          Ʊ����˾�ޤ����ʤ��ѹ����ޤǼ�����Ǥ��ޤ���ǽ�������뤫��Ǥ���</para>
+	  ���٤Ƥ� &os; �������ƥ�����ˤ�
+	  EOL ��ã���Ƥ��ʤ����٤ƤΥ�꡼�����Ф����������ν�����ˡ����������Ƥ��ޤ���
 
-	<para>�錄�������� &os.stable; �֥��������Ĥ�����ư���褦��
-          �ؤ�Ƥ��ޤ��������줬�ݾڤ���Ƥ���Ȥ����櫓�ǤϤ���ޤ���
+	  <footnote>
+	    <para>�������ǤθŤ���꡼���� FreeBSD
+	      �Υ������ƥ��ݥꥷ�������������Τ�ˤϡ�<ulink
+		url="&url.base;/security/">http://www.FreeBSD.org/ja/security/</ulink>
+	      �򻲾Ȥ��Ƥ���������</para>
+	  </footnote>��</para>
+
+	<para>&os.stable; �֥����Ϥ��Ĥ⥳��ѥ��뤬�Ǥ���
+	  �����ư��٤��Ǥ�����
+	  ���줬�ݾڤ���Ƥ���Ȥ����櫓�ǤϤ���ޤ���
           �ޤ��������ɤ�  &os.stable; �˲ä���������
           &os.current; �dz�ȯ�����ΤǤ�����&os.stable; �Υ桼����
-          &os.current; ����¿�����ᡢ&os.current; ��ȯ������ʤ��ä�
-          �Х��� &os.stable; ��ȯ�����졢�������줬����Ȥʤ뤳�Ȥ�����Τ�
-          �򤱤뤳�Ȥ��Ǥ��ޤ���</para>
+	  &os.current; ����¿�����ᡢ&os.current;
+	  ��ȯ������ʤ��ä��Х��� &os.stable; ��ȯ�����졢
+	  �Ȥ��ɤ����줬����Ȥʤ뤳�Ȥ�����Τ��򤱤뤳�Ȥ��Ǥ��ޤ���</para>
 
-	<para>���Τ褦����ͳ���顢�錄������������Ū�� &os.stable;
-          ���ɤ������뤳�Ȥ�侩<emphasis>���ޤ���</emphasis>��
-          �äˡ��ǽ�˳�ȯ�Ķ��ǥ����ɤ�ʬ�˻������
+	<para>���Τ褦����ͳ���顢����Ū�� &os.stable;
+          ���ɤ�������٤��Ǥ�<emphasis>����ޤ���</emphasis>��
+          �äˡ��ǽ�˳�ȯ�Ķ��ǥ����ɤ�ʬ�˻�����ˡ�
           �ץ�����������ʼ����׵ᤵ��륵���Ф� &os.stable;
           �˥��åץ��졼�ɤ��ƤϤ����ޤ���</para>
 
-	<para>�⤷�������뤿��λ�Ū��;͵���ʤ����ϡ�
+	<para>�⤷��򤹤��Ū��;͵���ʤ����ϡ�
           ��꡼���֤ΥХ��ʥꥢ�åץǡ��ȵ�ǽ�����Ѥ��ơ�
           �ǿ��� FreeBSD ��꡼����Ȥ����Ȥ�侩���ޤ���</para>
       </sect3>
@@ -1575,43 +1507,44 @@ Fetching 133 new ports or files... done.</screen>
 
         <orderedlist>
           <listitem>
-            <para>&a.stable.name; �᡼��󥰥ꥹ�Ȥ˲ä�äƤ���������
-              ���Υ᡼��󥰥ꥹ�ȤǤϡ�
-              &os.stable; �ι��ۤ˴�Ϣ��������䡢
-              ����¾�����դ��٤��� �˴ؤ������ή��Ƥ��ޤ���
+	    <para>&os.stable; �ι��ۤ˴�Ϣ��������䡢
+	      ����¾�����դ��٤��� �˴ؤ����������뤿��ˡ�
+	      &a.stable.name; �᡼��󥰥ꥹ�Ȥ˲ä�äƤ���������
               �ޤ���ȯ�Ԥϵ�����;�Ϥ����뽤�����ѹ���ͤ��Ƥ�����ˡ�
               ���Υ᡼��󥰥ꥹ�ȤǸ�ɽ����
               ��Ƥ��줿�ѹ��˴ؤ������꤬�����뤫�ɤ������������뵡���桼����Ϳ���ޤ���</para>
 
-	    <para>�ɤ������Ƥ���֥����˴�Ϣ���� <application>SVN</application>
-	      �᡼��󥰥ꥹ�Ȥ˻��ä��Ƥ���������
-	      ���Ȥ��С�9-STABLE �֥������ɤ������Ƥ���ΤǤ���С�
+	    <para>�ɤ������Ƥ���֥����˴�Ϣ����
+	      <application>SVN</application> �᡼��󥰥ꥹ�Ȥ˻��ä��Ƥ���������
+	      ���Ȥ��С�9-STABLE �֥������ɤ������Ƥ���桼����
 	      &a.svn-src-stable-9.name; �᡼��󥰥ꥹ�Ȥ˻��ä��Ƥ���������
+	      ���Υꥹ�ȤǤϡ�
 	      �ѹ����ʤ���뤴�Ȥ˺�������� commit log �䤽���ȼ��
-	      �����ꤦ�������ѤˤĤ��Ƥξ�����ɤळ�Ȥ��Ǥ��ޤ���</para>
+	      �����ꤦ�������ѤˤĤ��Ƥξ��󤬵�Ͽ����Ƥ��ޤ���</para>
 
-	    <para>�����Ρ��⤷����¾�Υ᡼��󥰥ꥹ�Ȥ�����ˤϡ�
-	      &a.mailman.lists.link; �򤿤ɤäƻ��ä������᡼��󥰥�
-	      ���Ȥ򥯥�å����Ƥ����������Ĥ�μ��������Ϥ����ˤ���ޤ���
-	      �⤷���������ĥ꡼���Τ��ѹ������ɤ������뤳�Ȥ˶�̣������С�
+	    <para>�����Υ᡼��󥰥ꥹ�Ȥ�����ˤϡ�
+	      &a.mailman.lists.link;
+	      �򤿤ɤäƻ��ä������᡼��󥰥ꥹ�Ȥ򥯥�å�����
+	      ���������ˤ������äƤ���������
+	      �������ĥ꡼���Τ��ѹ������ɤ�������ˤϡ�
 	      &a.svn-src-all.name; �᡼��󥰥ꥹ�Ȥ���ɤ��Ƥ���������</para>
           </listitem>
 
           <listitem>
-	    <para>�⤷�����ʤ��������������ƥ�򥤥󥹥ȡ��뤷�褦�Ȥ��Ƥ��ơ�
-	      ����������Ƥ��� &os.stable;
-	      ����ӥ�ɤ��줿���ʥåץ���åȤ򥤥󥹥ȡ��뤷�����ʤ顢
+	    <para>����������Ƥ��� &os.stable;
+	      ����ӥ�ɤ��줿���ʥåץ���åȤ����餻�뤿��ˡ�
+	      �����������ƥ�򥤥󥹥ȡ��뤹��ˤϡ�
+	      �ܺ٤ˤĤ��ơ�
 	      <ulink url="&url.base;/snapshots/">���ʥåץ���å�</ulink>
-	      web �ڡ�����������������
+	      ��������������
 	      �⤷���ϡ�<link linkend="mirrors">�ߥ顼������</link>����Ƕ��
 	      &os.stable; ��꡼���򥤥󥹥ȡ��뤷�������������˽��äƺǿ���
 	      &os.stable; �Υ����������ɤ˹������뤳�Ȥ�Ǥ��ޤ���</para>
 
-            <para>�⤷������ &os; �ΰ����Υ�꡼����ư���Ƥ�����ǡ�
-              ����򥽡������饢�åץ��졼�ɤ��褦�Ȥ���ʤ�С�
+	    <para>���� &os; �ΰ����Υ�꡼����ư���Ƥ��륷���ƥ��
 	      &os; <link linkend="mirrors">�ߥ顼������</link>
-	      �����ñ�˹Ԥ��ޤ����ʲ��Τ褦�ʤ����Ĥ�����ˡ������ޤ���
-            </para>
+	      ���饢�åץ��졼�ɤ���ˤϡ�
+	      �ʲ��Τ褦�ʤ����Ĥ�����ˡ������ޤ���</para>
 
             <orderedlist>
 	      <indexterm>
@@ -1627,7 +1560,7 @@ Fetching 133 new ports or files... done.</screen>
 	      </indexterm>
 
 	      <listitem>
-		<para><link linkend="svn">svn</link> �ץ�������Ȥäơ�
+		<para><link linkend="svn">svn</link> ��Ȥäơ�
 		  ��˾���볫ȯ�֥�����
 		  �⤷���ϥ�꡼���֥���������å��������Ƥ���������
 		  ������ˡ�ϡ���ȯ��� &os; ��ݥ��ȥ�ؤΥ����������󶡤��Ƥ��ꡢ
@@ -1653,20 +1586,18 @@ Fetching 133 new ports or files... done.</screen>
 		  <secondary>CTM ��Ȥä�Ʊ������</secondary>
 		</indexterm>
 
-		<para><application><link
-		  linkend="ctm">CTM</link></application> ��ǽ��Ȥ��ޤ���
-		  ���󥿡��ͥåȤؤ���³�˹�®�ǰ²��ʲ��������ѤǤ��ʤ��ΤǤ���С�
-		  ������ˡ��Ƥ���Ƥߤޤ��礦��</para>
+		<para>���󥿡��ͥåȤؤ���³�˹�®�ʲ��������ѤǤ��ʤ��ΤǤ���С�
+		  <application><link linkend="ctm">CTM</link></application>
+		  ��Ƥ���Ƥߤޤ��礦��</para>
 	      </listitem>
 	   </orderedlist>
 	 </listitem>
 
           <listitem>
-            <para>����Ū�ˤϡ�
-              �������˿�®�ǥ���ǥޥ�ɤʥ���������ɬ�פǡ�
+            <para>�������˿�®�ǥ���ǥޥ�ɤʥ���������ɬ�פǡ�
               ��³�ΥХ����������Ǥʤ���С�
-	      <command>Subversion</command> ��Ȥ��ޤ��礦��������
-              �ʤ����� <application>CTM</application>
+	      <command>Subversion</command> ��Ȥ��ޤ��礦��
+	      �����Ǥʤ����� <application>CTM</application>
               ��Ȥ��ޤ��礦��</para>
           </listitem>
 
@@ -1676,16 +1607,14 @@ Fetching 133 new ports or files... done.</screen>
 	      <secondary>���ۡ�����ѥ���</secondary>
 	    </indexterm>
 
-            <para>&os.stable; �򥳥�ѥ��뤹�����ˡ�
-              <filename>/usr/src</filename> �ˤ��� Makefile ���
-              ���ɤ�Ǥ���������
-              ���ʤ��Ȥ���ϥ��åץ��졼�ɤν����ΰ����Ȥ��ƺǽ��
-	      <link linkend="makeworld">�����������ͥ�򥤥󥹥ȡ��뤷
-	      �ơ�world ��ƹ���</link> ���٤��Ǥ��礦��&a.stable; ��
-	      <filename>/usr/src/UPDATING</filename> ���ɤ�С����Υ�
-	      �꡼���ظ����ưܤäƤ椯�������äƻ���ɬ�פȤʤ��¸����
-	      �ƥफ��ο������ƥ�ι��ۼ��ˤĤ��Ƥκǿ����������
-	      ��Ǥ��礦��</para>
+	    <para>&os.stable; �򥳥�ѥ��뤹�����ˡ�
+	      <filename>/usr/src/Makefile</filename> ��褯�ɤ�Ǥ���������
+              ���åץ��졼�ɤν����ΰ����Ȥ��ƺǽ��
+	      <link linkend="makeworld">�����������ͥ�򥤥󥹥ȡ��뤷�ơ�
+	      world ��ƹ���</link> ���Ƥ���������&a.stable; ��
+	      <filename>/usr/src/UPDATING</filename> ���ɤ�ǡ�
+	      ���Υ�꡼���ظ����ưܤäƤ椯�������äơ�
+	      �Ȥ��ɤ�ɬ�פȤʤ��¸�����ƥफ��ο������ƥ�ι��ۼ��ˤĤ��Ƥκǿ���������Ƥ���������</para>
           </listitem>
         </orderedlist>
       </sect3>
@@ -1697,23 +1626,22 @@ Fetching 133 new ports or files... done.</screen>
 
     <para><emphasis>��: &a.jp.iwasaki;��1997 ǯ 9 �� 13 ��</emphasis></para>
 
-    <para>���󥿡��ͥå���³ (�ޤ����Żҥ᡼��) ����Ѥ��ơ�
-      ���ʤ��ζ�̣���оݤˤ�ä� &os;
-      �ץ��������ȤΥ������Τ������ʬ�ޤ������Τκǿ���
-      �ɤ���������ˡ�Ͽ�������ޤ���
-      �䤿�����󶡤��Ƥ������Ū�ʥ����ӥ��� <link
+    <para>���󥿡��ͥå���³�ޤ����Żҥ᡼�����Ѥ��ơ�&os;
+      �ץ��������ȤΥ������Τ������ʬ�ޤ������Τκǿ����ɤ���������ˡ�Ͽ�������ޤ���
+      ����Ū�ʥ����ӥ��� <link
 	linkend="svn">Subversion</link>
       �� <link linkend="ctm">CTM</link> �Ǥ���</para>
 
     <warning>
       <para>�������ĥ꡼�ΰ�����ǿ��Τ�Τ˹������뤳�Ȥϲ�ǽ�Ǥ���
-        �����������ݡ��Ȥ���Ƥ��륢�åץǡ��ȼ��ϡ�
-        �������ĥ꡼���Τ�ǿ��Τ�Τ˹������ơ�
-        �桼������ (<filename>/bin</filename> �� <filename>/sbin</filename>
-        �ˤ���褦�ʡ��桼�����¹Ԥ���ץ���������ΤΤ���)
-        ����ӥ����ͥ�Υ���������ƹ��ۤ��뤳�ȤΤߤǤ��뤳�Ȥ����դ��Ƥ���������
-        �����ͥ���������뤤�ϥ桼�����ɤ����Ȥ����褦�ˡ�
-        �������ĥ꡼�ΰ����򹹿��������ϡ����꤬�����뤳�Ȥ��褯����ޤ���
+	�����������ݡ��Ȥ���Ƥ��륢�åץǡ��ȼ��ϡ�
+	�������ĥ꡼���Τ�ǿ��Τ�Τ˹�������
+	<filename>/bin</filename>, <filename>/sbin</filename>
+	�Ȥ��ä��桼�����֤�ư����Ρ�
+	����ӥ����ͥ륽������ƹ��ۤ��뤳�ȤΤߤǤ���
+	�������ĥ꡼�ΰ��������Ǥ��ä��ꡢ�����ͥ������
+	�⤷���ϥ桼�����ɤΥץ����������򹹿��������ϡ�
+	���꤬�����뤳�Ȥ��褯����ޤ���
         ���λ���ȯ����������ϥ���ѥ�����Υ��顼���饫���ͥ�ѥ˥å���
         �ǡ������˲��Ȥ��ޤ��ޤǤ���</para>
     </warning>
@@ -1728,11 +1656,10 @@ Fetching 133 new ports or files... done.</screen>
       ��ư�����ե������ǿ����֤ˤ��ޤ���
       <application>Subversion</application> �ϡ�
       ��������Υ������ĥ꡼�򥢥åץǡ��Ȥ���Ǥ⹥�ޤ�����ˡ�Ǥ���
-      �Ϥ����빹������Ϥ��λ����κǿ��Τ�ΤǤ��ꡢ
-      �ޤ�ɬ�פʻ��ˤ������󤻤��ޤ���
-      ��̣�Τ�������Υե������ǥ��쥯�ȥ�˸��ꤷ�ƹ������뤳�Ȥ��ñ�ˤǤ��ޤ���
-      ���饤�����¦�Υ������ĥ꡼�ξ��֡�
-      ����ե�����λ���˽����������Фˤ�äƹ����������᤯��������ޤ���</para>
+      ��������Ϥ��λ����κǿ��Τ�ΤǤ��ꡢ
+      �桼���Ϥ��ĥ���������ɤ��뤫�򥳥�ȥ����뤷�ޤ���
+      ����Υե������ǥ��쥯�ȥ�˸��ꤷ�ƹ������뤳�Ȥ��ñ�ˤǤ��ޤ���
+      ��������ϥ����Фˤ�ä����᤯��������ޤ���</para>
 
     <indexterm>
       <primary><application>CTM</application></primary>
@@ -1744,24 +1671,25 @@ Fetching 133 new ports or files... done.</screen>
       ���Τ����ˡ�����μ¹Ի�������ѹ���ǧ�����륹����ץȤ�
       �ޥ��� CTM �ޥ����ǰ����˿���¹Ԥ��졢
       ���٤Ƥ��ѹ��� compress �����̤��ֹ�򿶤ꡢ
-      ������Żҥ᡼���ž���Ǥ���褦�˥��󥳡��ɤ��ޤ�
-      (������ǽ�� ASCII
-      ����饯���ΤߤǤ�)������������ϡ�
+      ������Żҥ᡼��ǡ�������ǽ�� ASCII
+      ����饯���Τߤ�ž���Ǥ���褦�˥��󥳡��ɤ��ޤ���
+      ����������ϡ�
       ������ <quote>CTM �Υǥ륿</quote> �ϼ�ư
       Ū�˥ǥ����ɡ��������ƥ桼���Υ������Υ��ԡ����ѹ���Ŭ�Ѥ���
 	&man.ctm.rmail.1; �ˤ�äƽ�����ǽ�Ȥʤ�ޤ���
       ������� <application>Subversion</application>
       ��ꤺ�äȸ�ΨŪ�Ǥ��ꡢ<emphasis>pull</emphasis> ��ǥ�Ȥ������ष��
-      <emphasis>push</emphasis> ��ǥ��
-      ���뤿�ᡢ�䤿���Υ����л񸻤���٤Ϸڤ��ʤ�ޤ���</para>
+      <emphasis>push</emphasis> ��ǥ�Ǥ��뤿�ᡢ
+      �����л񸻤���٤Ϸڤ��ʤ�ޤ���</para>
 
-    <para>�������¾�Υȥ졼�ɥ��դ⤢��ޤ������ä��ꥢ��������
-      �ΰ�����ä��Ƥ��ޤäƤ⡢<application>Subversion</application>
-      �ϲ��줿��ʬ�򸡽Ф��ƺƹ��ۤ��Ƥ���ޤ���
+    <para>¾�Υȥ졼�ɥ��դ⤢��ޤ���
+      <application>Subversion</application> �Ǥ���С�
+      ���ä����������Υ��������֤ΰ�����ä��Ƥ��ޤäƤ⡢
+      ���줿��ʬ�򸡽Ф��ƺƹ��ۤ��Ƥ���ޤ���
       <application>CTM</application> �Ϥ�����äƤ���ޤ���
-      �⤷�������ĥ꡼�ΰ�����ä��Ƥ��ޤä���
-      (�����ƥХå����åפ��äƤ��ʤ��ΤǤ����)��(�ǿ��� CTM
-      <quote>�١����ǥ륿</quote> ����) �줫����ľ����
+      �⤷�������ĥ꡼�ΰ�����ä��Ƥ��ޤ���
+      �����ƥХå����åפ��äƤ��ʤ��ΤǤ���С��ǿ��� CTM
+      <quote>�١����ǥ륿</quote> ���Ѥ��ơ��줫����ľ����
       <application>CTM</application>
       ��ȤäƤ��٤Ƥ�ƹ��ۤ��ʤ���Фʤ�ޤ���</para>
   </sect1>
@@ -1772,24 +1700,25 @@ Fetching 133 new ports or files... done.</screen>
     <indexterm>
       <primary><quote>world</quote> �κƹ���</primary>
     </indexterm>
-    <para>&os; �Τɤ줫����ΥС������ (&os.stable;��&os.current; �ʤ�)
-      �ˤĤ��ơ���������Υ������ĥ꡼��Ʊ���������顢
+    <para>&os.stable;��&os.current; �ʤɤ�
+      &os; �Τɤ줫����ΥС������ˤĤ��ơ�
+      ��������Υ������ĥ꡼��Ʊ���������顢
       ���Υ������ĥ꡼��Ȥäƥ����ƥ��ƹ��ۤǤ��ޤ���</para>
 
     <warning>
       <title>�Хå����åפκ���</title>
 
-      <para>�����ƥ��ƹ��ۤ���<emphasis>����</emphasis>�Хå����åפ�
-        �������뤳�Ȥν������ϡ������鶯Ĵ���Ƥ⤷�᤮��ȸ������ȤϤ���ޤ���
-        �����ƥ����Τκƹ��ۤȤ�
-        (�ʹߤ˽񤫤줿���˽��äƤ���¤�) �񤷤���ȤǤϤ���ޤ��󤬡�
+      <para>�����ƥ��ƹ��ۤ���<emphasis>����</emphasis>��
+	�Хå����åפ�������뤳�Ȥν������ϡ�
+	�����鶯Ĵ���Ƥ⤷�᤮��ȸ������ȤϤ���ޤ���
+	�����ƥ����Τκƹ��ۤȤ��񤷤���ȤǤϤ���ޤ��󤬡�
         �ɤ�ʤ����դ��Ƥ����Ȥ��Ƥ⡢<!-- hrs:2000/01/12 inevitably -->
-        ���ʤ����ȡ����뤤�ϥ������ĥ꡼�Ǻ�Ȥ��Ƥ���¾�ο�ã�˼�㤤�����ä����ˤϡ�
+	�������ĥ꡼���Τ�Τ˼�㤤�����ä����ˤϡ�
         �����ƥब��ư���ʤ��ʤäƤ��ޤ����֤ˤʤ뤳�Ȥ�����ΤǤ���
       </para>
 
       <para>�ޤ����Хå����åפ�������Ⱥ�������Ƥ��뤳�Ȥ��ǧ���ơ�
-	fixit �ե��åԡ�����ư��ǽ�� CD ���Ѱդ��Ƥ���������
+	��ư��ǽ���󥹥ȡ����ǥ������Ѱդ��Ƥ���������
         ¿ʬ�������Ȥ����ȤϤʤ��Ȼפ��ޤ�����
         ���ȤǸ�����뤳�ȤΤʤ��褦��ǰ�Τ����Ѱդ��Ƥ����ޤ��礦��</para>
     </warning>
@@ -1805,24 +1734,23 @@ Fetching 133 new ports or files... done.</screen>
         ���ˤϥߥ��򤹤뤳�Ȥ��äƤ���Ǥ��礦��
       </para>
 
-      <para>���Τ褦�ʴְ㤤�ϡ�ñ�˷ٹ�򼨤�������ʤ�
-        ���ǥ�å������򥷥��ƥब��ɽ������褦�ʡ�
-        �������Τʤ���ΤǤ��뤳�Ȥ⤢��С������ƥ��ư�Ǥ��ʤ������ꡢ
+      <para>���Τ褦�ʴְ㤤�ϡ�
+	ñ�˷ٹ�򼨤�������ʤ����ǥ�å������򥷥��ƥबɽ������褦�ʡ�
+	�ޤä������Τʤ���ΤǤ��뤳�Ȥ⤢��С������ƥ��ư�Ǥ��ʤ������ꡢ
         �ե����륷���ƥ���˲����Ƥ��ޤ��褦�ʡ�
-        ����������̤򾷤���Τ����Τ�ޤ���
-      </para>
+	����������̤򾷤���Τ����Τ�ޤ���</para>
 
-      <para>�����졢���Τ褦�����꤬��������硢
+      <para>���꤬��������硢
         ����ξܺ٤ȡ��ɤΤ褦�ʥ����ƥब�ƶ�������뤫�ˤĤ��ƽ񤫤줿
-        <quote>���� (heads up)</quote> �����
-        Ŭ�ڤʥ᡼��󥰥ꥹ�Ȥ���Ƥ��졢�����ơ��������꤬��褵���ȡ�
-        <quote>������ (all clear)</quote> �Υ��ʥ��󥹵�����Ʊ�ͤ�
-        ��Ƥ���ޤ���
-      </para>
+	<quote>���� (heads up)</quote>
+	�ε�����Ŭ�ڤʥ᡼��󥰥ꥹ�Ȥ���Ƥ���ޤ���
+	�����ơ��������꤬��褵���ȡ�
+	<quote>������ (all clear)</quote>
+	�Υ��ʥ��󥹵�����Ʊ�ͤ���Ƥ���ޤ���</para>
 
-      <para>&os.stable; �� &os.current; �֥������ɿ魯�뤿��˻���Ȥ���Τˡ�
-        &a.stable; �� &a.current; ����ˤ����Τܤä��ɤޤʤ��Ȥ����Τϡ�
-        �������򾷤����Ȥˤʤ�Ǥ��礦��</para>
+      <para>&os.stable; �� &os.current; �֥������ɿ路�Ƥ���桼���ǡ�
+	&a.stable; �� &a.current; ���ɤޤʤ��Ȥ����Τϡ�
+	�������򾷤��褦�ʤ�ΤǤ���</para>
 
       <para><emphasis>����:</emphasis>
       �����Υ᡼��󥰥ꥹ�ȤϱѸ�Ǥ��Ȥꤵ��Ƥ��뤿�ᡢ
@@ -1835,10 +1763,10 @@ Fetching 133 new ports or files... done.</screen>
     <warning>
       <title><command>make world</command> �ϻȤ�ʤ�����</title>
 
-      <para>�Ť��ɥ�����Ȥ�¿������������Ū��
-	<command>make world</command> ��Ȥ����Ȥ�����Ƥ��ޤ���
+      <para>�Ť��ɥ�����Ȥ���ˤϡ�
+	<command>make world</command> ��Ȥ����Ȥ�����Ƥ����Τ�����ޤ���
 	����ϡ����פʼ��򤤤��Ĥ�ȴ�����Ƥ��ޤ��Τǡ�
-	���򤷤Ƥ��뤫�褯ʬ���äƤ��ʤ���лȤ��٤��ǤϤ���ޤ���
+	�������ѡ��ȤǤʤ���лȤ��٤��ǤϤ���ޤ���
 	�ۤܤ�������ˤ����ơ�<command>make world</command>
 	��¹Ԥ���Τϴְ�äƤ��ꡢ
 	��������������Ƥ�������Ѥ���٤��Ǥ���</para>
@@ -1861,7 +1789,8 @@ Fetching 133 new ports or files... done.</screen>
 	����ѥ���� <quote>world</quote> �ΰ����Ǥ�����
 	�����Ĥ����̤˵���Ĥ��ʤ���Фʤ�ʤ����Ȥ�����ޤ���</para>
 
-      <para>�ޤ��������������ƥ�Υ������򤹤Ǥ����ꤷ�Ƥ��뤳�ȤⲾ�ꤷ�Ƥ��ޤ���
+      <para>�ޤ��������Υ��ƥåפǤϡ�
+	�������С������Υ������򤹤Ǥ����ꤷ�Ƥ��뤳�ȤⲾ�ꤷ�Ƥ��ޤ���
 	�⤷�����ƥ�Υ����������ɤ��Ť��褦�Ǥ����顢
 	<xref linkend="synching"/> ���ɤ�ǡ�
 	�����������ɤ򿷤����С�������Ʊ��������ˡ�ξܺ٤����򤷤Ƥ���������</para>
@@ -1878,12 +1807,11 @@ Fetching 133 new ports or files... done.</screen>
       <itemizedlist>
 	<listitem>
 	  <para>�Ť�����ѥ���ϡ�
-	    �����������ͥ�򥳥�ѥ���Ǥ��ʤ���ǽ��������ޤ�
-	    (�Ť�����ѥ���ϤȤ��ɤ��Х���ޤ�Ǥ��ޤ�)��
+	��  �Х���ޤ߿����������ͥ�򥳥�ѥ���Ǥ��ʤ���ǽ��������ޤ�
 	    ���Τ��ᡢ�����������ͥ�ι��ۤˤϡ�
 	    ����������ѥ����Ȥ�ɬ�פ�����ޤ���
-	    �äˡ������������ͥ���ۤ������ˡ�
-	    ����������ѥ��餬���ۤ���Ƥ��ʤ���Фʤ�ޤ���
+	    ���ȤΤ��Ȥϡ������������ͥ���ۤ������ˡ�
+	    ����������ѥ�����ۤ��Ƥ��ʤ���Фʤ�ʤ����Ȥ��̣���Ƥ��ޤ���
 	    ɬ�����⡢�����������ͥ���ۤ������ˡ�����������ѥ��餬
 	    <emphasis>���󥹥ȡ��뤵��Ƥ���</emphasis>
 	    ɬ�פ����뤳�Ȥ��̣���Ƥ���櫓�ǤϤ���ޤ���</para>
@@ -1902,8 +1830,7 @@ Fetching 133 new ports or files... done.</screen>
 	<maketarget>buildkernel</maketarget>,
 	<maketarget>installkernel</maketarget>,
 	<maketarget>installworld</maketarget> �δ��ܤǤ���
-	���߿侩����Ƥ��륢�åץ��졼�ɥץ���������Ѥ����ۤ����ɤ��Ȥ�����ͳ�򤹤٤ƴޤ�Ǥ���櫓�ǤϤ���ޤ���
-	�ʲ��Ǥϡ��⤦�������ΤǤϤʤ����ˤĤ��ƥꥹ�ȥ��åפ��ޤ���</para>
+	¾����ͳ�ˤĤ��Ƥϰʲ��ǥꥹ�ȥ��åפ��ޤ���</para>
 
       <itemizedlist>
 	<listitem>
@@ -1947,9 +1874,10 @@ Fetching 133 new ports or files... done.</screen>
 	</listitem>
 
 	<listitem>
-	  <para><command>make <maketarget>buildkernel</maketarget></command></para>
+	  <para><command>make
+	      <maketarget>buildkernel</maketarget></command></para>
 
-	  <para>&man.config.8; �� &man.make.1; ���Ѥ����Ť���ˡ�Ȥϰۤʤꡢ
+	  <para>�����Ǥϡ�
 	    <filename class="directory">/usr/obj</filename> �ˤ���
 	    <emphasis>������</emphasis> ����ѥ��餬�Ѥ����ޤ���
 	    ����ˤ�ꡢ����ѥ���ȥ����ͥ�Υߥ��ޥå����ɤ����Ȥ��Ǥ��ޤ���</para>
@@ -2008,7 +1936,7 @@ Fetching 133 new ports or files... done.</screen>
 
       <para>�⤷��&os; �Τ���֥����Τ����꡼�����顢
 	Ʊ���֥����κǿ���꡼���˥��åץǡ��Ȥ���ΤǤ����
-	(���Ȥ��� 7.0 ���� 7.1)��
+	(���Ȥ��� 9.0 ���� 9.1)��
 	���μ��ˤ�������ʤ��Ƥ��ɤ��Ǥ��礦��
 	�ʤ��ʤ�С�����ѥ��顢�����ͥ롢�桼�����ɡ�����������ե�����δ֤ǡ�
 	���٤Υߥ��ޥå��������뤳�ȤϤ��ޤ�ͤ����ʤ�����Ǥ���
@@ -2017,14 +1945,13 @@ Fetching 133 new ports or files... done.</screen>
 	<command>make <maketarget>world</maketarget></command>
 	���Ѥ��Ƥ⤦�ޤ������Ǥ��礦��</para>
 
-      <para>�������ʤ��顢�᥸�㡼��꡼����ޤ��������åץǡ��ȤǤϡ�
+      <para>�᥸�㡼��꡼����ޤ��������åץǡ��ȤǤϡ�
 	������ˡ���Ѥ��ʤ��ȡ����餫������ˤ֤Ĥ���Ǥ��礦��</para>
 
-      <para>�礭�ʥ��åץ��졼��
-	(���Ȥ��� &nbsp;4.<replaceable>X</replaceable> ���� 5.0 �ؤΥ��åץǡ���)
-	�ˤ����Ƥϡ�(���Ȥ��� installworld ����������Υե������̾�����ѹ������ʤɤ�)
-	���̤��ɲäΥ��ƥåפ�ɬ�פȤʤ�Ǥ��礦��
-	<filename>/usr/src/UPDATING</filename> �ե���������տ����ɤ�Ǥ���������
+      <para>�礭�ʥ��åץ��졼�ɤˤ����Ƥϡ�
+	installworld ����������Υե������̾�����ѹ���������Ȥ��ä���
+	���̤��ɲäΥ��ƥåפ�ɬ�פȤʤ뤳�Ȥ�����ޤ���
+	<filename>/usr/src/UPDATING</filename> �����տ����ɤ�Ǥ���������
 	�ä˥ե�����κǸ�ˤϡ�
 	���߿侩����Ƥ��륢�åץ��졼�ɤμ�礬�ܤ������Τ���������Ƥ��ޤ���</para>
 
@@ -2051,9 +1978,9 @@ Fetching 133 new ports or files... done.</screen>
       </note>
 
       <para><maketarget>installkernel</maketarget>
-	��̵���˽�λ�����顢(���Ȥ��С��������Υץ���ץȤ���
-	<command>boot -s</command> ��Ȥä�)
-	���󥰥�桼���⡼�ɤ�Ω���夲�ޤ��礦��
+	��̵���˽�λ�����顢�������Υץ���ץȤ���
+	<command>boot -s</command>
+	��Ȥäƥ��󥰥�桼���⡼�ɤ�Ω���夲�Ƥ���������
 	���줫�顢�ʲ���¹Ԥ��Ƥ���������</para>
 
       <screen>&prompt.root; <userinput>mount -u /</userinput>
@@ -2068,30 +1995,25 @@ Fetching 133 new ports or files... done.</screen>
       <warning>
 	<title>���θ���������ɤ�Ǥ�������</title>
 
-	<para>��Ҥμ��ϡ�
-	  �Ȥꤢ������ꤹ�뤿��δ�ñ�ʤޤȤ�ˤ����ޤ���
-	  ���줾��μ��򤭤�������򤹤뤿��ˡ�
-	  ���θ������ɤ�Ǥ���������
-	  �������५���ͥ�����Ѥ������ȹͤ��Ƥ���ʤ�ʤ�����Ǥ���</para>
+	<para>���θ����ǤϤ��줾��Υ��ƥåפˤĤ��ƾܤ����������Ƥ��ޤ���
+	  �ä˥������५���ͥ�����Ѥ�����ˤĤ����������Ƥ��ޤ���</para>
       </warning>
     </sect2>
 
     <sect2 id="src-updating">
       <title><filename>/usr/src/UPDATING</filename> ���ɤ�</title>
 
-      <para>����Ϥ��ˤ������ޤ��ǽ��
-	<filename>/usr/src/UPDATING</filename> (�⤷���Ϥ��ʤ��������������ɤ�
-	�ɤ��˥��ԡ������ˤ��褽�����������ե�����) ���ɤߤޤ��礦��
-	���Υե�����ˤϤ��ʤ����������뤫���Τ�ʤ�������Ф�����פʾ����
-	�ޤ�Ǥ����ꡢ���ʤ�������Υ��ޥ�ɤ�¹Ԥ��ʤ���Фʤ�ʤ��ʤä���
-	���ν����ؼ������ꤹ��Ϥ��Ǥ���
-	<filename>UPDATING</filename> �����ʤ����ɤ��������̷�⤷�Ƥ������
-	<filename>UPDATING</filename> ��ͥ�褷�ޤ���</para>
+      <para>���åץǡ��Ȥ������ˡ�
+	<filename>/usr/src/UPDATING</filename> ���ɤ�Ǥ���������
+	���Υե�����ˤ�����Ū�������
+	����Υ��ޥ�ɤν�ʤɤν��פʾ��󤬴ޤޤ�Ƥ��ޤ���
+	<filename>UPDATING</filename> ��������˽񤫤�Ƥ����Τ�̷�⤷�Ƥ������
+	<filename>UPDATING</filename> ��ͥ�褷�Ƥ���������</para>
 
       <important>
-	<para><filename>UPDATING</filename> ���ɤ�Ȥ������Ȥϡ����Ҥ�
-	Ŭ�ڤʥ᡼��󥰥ꥹ�Ȥ���ɤ�������ˤϤʤ�ޤ���
-	��Ĥ��׵������Ū�ʤ�Τ���¾Ū�ʤ�ΤǤϤʤ��ΤǤ���</para>
+	<para><filename>UPDATING</filename> ���ɤ�Ȥ������Ȥϡ�
+	  Ŭ�ڤʥ᡼��󥰥ꥹ�Ȥ���ɤ�������ˤϤʤ�ޤ���
+	  ��Ĥ��׵������Ū�ʤ�Τ���¾Ū�ʤ�ΤǤϤʤ��ΤǤ���</para>
       </important>
     </sect2>
 
@@ -2115,7 +2037,7 @@ Fetching 133 new ports or files... done.</screen>
 	&man.make.1; ���Ȥ���ݤˤϾ��ͭ���Ȥʤ�ޤ���
 	Ports Collection ���饢�ץꥱ�������򥳥�ѥ��뤹�����
 	�桼�����񤤤� C �ץ������� &os;
-	���ڥ졼�ƥ��󥰥����ƥऽ�Τ�Τ��ۤ���ݤ˱ƶ���ڤܤ��ޤ���</para>
+	���ڥ졼�ƥ��󥰥����ƥ���ۤ���ݤ˱ƶ���ڤܤ��ޤ���</para>
     </sect2>
 
     <sect2 id="src-conf">
@@ -2140,56 +2062,41 @@ Fetching 133 new ports or files... done.</screen>
     <sect2 id="updating-etc">
       <title><filename>/etc</filename> �ˤ���ե�����ι���</title>
 
-      <para>
-        <filename>/etc</filename> �ǥ��쥯�ȥ�ˤϡ�
+      <para><filename class="directory">/etc</filename> �ˤϡ�
         �����ƥ൯ư���˼¹Ԥ���륹����ץȤ����Ǥʤ���
-        ���ʤ��Υ����ƥ������˴�Ϣ������������ʬ��
-        �ޤޤ�Ƥ��ޤ������Υǥ��쥯�ȥ�˴ޤޤ��
-        ������ץȤϡ�FreeBSD �ΥС������ˤ�ä�¿���ۤʤ�ޤ���
-      </para>
+	�����ƥ������˴�Ϣ������������ʬ���ޤޤ�Ƥ��ޤ���
+	���Υǥ��쥯�ȥ�˴ޤޤ�륹����ץȤϡ�
+	&os; �ΥС������ˤ�ä�¿���ۤʤ�ޤ���</para>
 
-      <para>
-        �ޤ�������ե�����Τʤ��ˤϡ���Ư��Υ����ƥब�������Ѥ��Ƥ���
-        ��Τ⤢��ޤ����ºݤˤϡ�<filename>/etc/group</filename>
-        �ʤɤ�����˳������ޤ���
-      </para>
+      <para>����ե�����Τʤ��ˤϡ�<filename>/etc/group</filename>
+	�Τ褦�˲�Ư��Υ����ƥब�������Ѥ��Ƥ����Τ⤢��ޤ���</para>
 
       <para>
         <command>make installworld</command> �ˤ�륤�󥹥ȡ�����ʳ��Ǥϡ�
         ����Υ桼��̾�����뤤�ϥ��롼�פ�¸�ߤ��Ƥ��뤳�Ȥ�
         �׵᤹����̤�����ޤ��������ƥ�Υ��åץ��졼�ɤ�Ԥʤ��ݤˤϡ�
-        �����Υ桼��̾�䥰�롼�פ���������뤤���ѹ������¸�ߤ��Ƥ��ʤ���ǽ����
-        �ͤ����ޤ������������ä���硢�����ƥ�Υ��åץ��졼�ɤ�
-        �ԤʤäƤ���֤ˡ����꤬ȯ�����븶���ˤʤ�ޤ���
+	�����Υ桼��̾�䥰�롼�פ������
+	���뤤���ѹ������¸�ߤ��Ƥ��ʤ���ǽ�����ͤ����ޤ���
 	<command>make buildworld</command> �ˤ����ơ�
 	�����Υ桼��̾�䥰�롼�פ�¸�ߤ��뤫��ǧ���Ԥ�����⤢��ޤ���
       </para>
 
-      <para>������ΰ�Ĥϡ�
-	<username>smmsp</username> �桼�����ɲä��줿���Ǥ���
-	&man.mtree.8; ��
-	<filename>/var/spool/clientmqueue</filename>
-	��������褦�Ȥ������
-	���Υ桼��̾ (����ӥ��롼��)
-	��¸�ߤ��ʤ�����˥��󥹥ȡ���˼��Ԥ��Ƥ��ޤä��ΤǤ���</para>
-
       <para>�����ˡ�ϡ�buildworld ������ <option>-p</option>
-	���ץ�����Ĥ��� &man.mergemaster.8; ��¹Ԥ��뤳�ȤǤ���
+	��Ĥ��� &man.mergemaster.8; ��¹Ԥ��뤳�ȤǤ���
 	�����¹Ԥ���ȡ�<maketarget>buildworld</maketarget> ��
 	<maketarget>installworld</maketarget>
 	���������뤿���ɬ�פʥե������������Ӥ��ޤ���</para>
 
       <tip>
-	<para>�⤷�����ʤ�����äȿ��м��ʿͤʤ顢���ʤ���̾�����ѹ������ꡢ
-          ������Ƥ��ޤä����롼�פ���ͭ���Ƥ���ե������
+	<para>̾�����ѹ������ꡢ������Ƥ��ޤä����롼�פ���ͭ���Ƥ���ե������
           ���Τ褦�ˤ���Ĵ�٤뤳�Ȥ�Ǥ��ޤ���
         </para>
 
 	<screen>&prompt.root; <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen>
 
-	<para>����� <replaceable>GID</replaceable> (���롼��̾�⤷���Ͽ����Ǽ����줿���롼�� ID) ��
-          ���ꤵ�줿���롼�פ���ͭ���뤹�٤ƤΥե������ɽ�����ޤ���
-        </para>
+	<para>���Υ��ޥ�ɤϥ��롼��̾�⤷���Ͽ����Ǽ�����륰�롼�� ID
+	  �ǻ��ꤵ�줿���롼�� <replaceable>GID</replaceable>
+	  ����ͭ���뤹�٤ƤΥե������ɽ�����ޤ���</para>
       </tip>
     </sect2>
 
@@ -2197,33 +2104,27 @@ Fetching 133 new ports or files... done.</screen>
       <title>���󥰥�桼���⡼�ɤؤΰܹ�</title>
       <indexterm><primary>���󥰥�桼���⡼��</primary></indexterm>
 
-      <para>����ѥ���ϡ����󥰥�桼���⡼�ɤǹԤʤä������ɤ��Ǥ��礦��
-        �������뤳�Ȥ�¿��®�٤����夹�롢�Ȥ�������äȤ���������
-        ��������Ǥʤ��������ƥ�κƥ��󥹥ȡ���Ͻ��פʥ����ƥ�ե����롢
-        ɸ�ॳ�ޥ�ɡ��饤�֥�ꡢ���󥯥롼�ɥե�����ʤɤ����ޤ���
-        ��Ư��Υ����ƥ�� (�ä�¾�Υ桼�������Υ����ƥ�˥������󤷤Ƥ������)
-        ���Τ褦���ѹ���ä��뤳�Ȥϡ��ȥ�֥����������������Ȥʤ�ޤ���
-      </para>
+      <para>����ѥ���ϡ����󥰥�桼���⡼�ɤǹԤʤ����Ȥ�ͤ��Ƥ���������
+	�����ƥ�κƥ��󥹥ȡ���Ͻ��פʥ����ƥ�ե����롢
+	���٤Ƥ�ɸ�ॷ���ƥ�ΥХ��ʥꡢ�饤�֥�ꡢ���󥯥롼�ɥե���������ޤ���
+	��Ư��Υ����ƥ�� (�ä�¾�Υ桼�������Υ����ƥ�˥������󤷤Ƥ������)
+	���Τ褦���ѹ���ä��뤳�Ȥϡ��ȥ�֥����������������Ȥʤ�ޤ���</para>
 
       <indexterm><primary>�ޥ���桼���⡼��</primary></indexterm>
       <para>�⤦��Ĥ���ˡ�Ȥ��ơ��ޥ���桼���⡼�ɤǥ����ƥ��ƹ��ۤ��ơ�
         ���󥰥�桼���⡼�ɤ˰ܹԤ��Ƥ��餽��򥤥󥹥ȡ��뤹�롢
         �Ȥ����Τ�����ޤ����⤷���Τ褦����ˡ�ǹԤʤ��������ϡ�
         �ʲ��μ����ۤ���λ����Ȥ����ޤ����Ф��Ƥ���������
-	���󥰥�桼���⡼�ɤ˰ܹԤ���Τ�
 	<maketarget>installkernel</maketarget> �⤷����
-	<maketarget>installworld</maketarget> ���ʤ���Фʤ�ʤ��ʤ��
-	�Ǹ�󤷤ˤǤ��ޤ���</para>
-
-      <para>��Ư��Υ����ƥ�ǥ��󥰥�桼���⡼�ɤ˰ܹԤ���ˤϡ�
-        �����ѥ桼�� (root) ���¤Ǽ��Υ��ޥ�ɤ�¹Ԥ��ޤ���</para>
+	<maketarget>installworld</maketarget> ��¹Ԥ���ݤˡ�
+	���󥰥�桼���⡼�ɤ˰ܹԤ��Ƥ���������</para>
 
       <screen>&prompt.root; <userinput>shutdown now</userinput></screen>
 
       <para>���뤤�ϥ����ƥ��Ƶ�ư�����֡��ȥץ���ץȤ���
-	<quote>single user</quote> �����򤹤�ȡ�
-	���󥰥�桼���⡼�ɤǥ����ƥ��ư�Ǥ��ޤ���
-	��ư�塢������ץ���ץȤ��鼡�Τ褦�˼¹Ԥ��Ƥ���������</para>
+	<quote>single user</quote> ���ץ��������򤷤Ƥ���������
+	���󥰥�桼���⡼�ɤǵ�ư������ϡ�
+	������ץ���ץȤ��鼡�Τ褦�˼¹Ԥ��Ƥ���������</para>
 
       <screen>&prompt.root; <userinput>fsck -p</userinput>
 &prompt.root; <userinput>mount -u /</userinput>
@@ -2237,17 +2138,16 @@ Fetching 133 new ports or files... done.</screen>
         ����åפ�ͭ���ˤ��ޤ���
       </para>
 
-
         <note>
           <para>CMOS �����å����ϰ���֤����ꤵ��Ƥ���
-	    GMT �ǤϤʤ���� (&man.date.1; ���ޥ�ɤ����������֤��ϰ�
-	    ��ɽ�����ʤ��ʤ����ƤϤޤ�ޤ�)��
-	    ���Υ��ޥ�ɤ�¹Ԥ���ɬ�פ����뤫�⤷��ޤ���</para>
+	    GMT �ǤϤʤ����
+	    (&man.date.1; �����������֤��ϰ��ɽ�����ʤ��ʤ����ƤϤޤ�ޤ�)��
+	    ���Υ��ޥ�ɤ�¹Ԥ����Ƥ���������</para>
+
 <screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
 
           <para>���������
-	    �μ¤��ϰ���郎���������ꤵ��ޤ� &mdash; ������դ�ȡ�
-	    ���Ȥ�������ˤʤ뤫�⤷��ޤ���</para>
+	    �μ¤��ϰ���郎���������ꤵ��ޤ���</para>
         </note>
 
     </sect2>
@@ -2255,21 +2155,20 @@ Fetching 133 new ports or files... done.</screen>
     <sect2 id="cleaning-usr-obj">
       <title><filename>/usr/obj</filename> ��</title>
 
-      <para>�����ƥब�ƹ��ۤ����������ۤ��줿��Τ� (�ǥե���Ȥ�)
-        <filename>/usr/obj</filename> �ʲ��Υǥ��쥯�ȥ�˳�Ǽ���졢
-        ���Υǥ��쥯�ȥ�β��� <filename>/usr/src</filename> ��Ʊ����¤�Ȥʤ�ޤ���
-      </para>
+      <para>�����ƥब�ƹ��ۤ����������ۤ��줿��Τϥǥե���Ȥ�
+	<filename>/usr/obj</filename> �ʲ��Υ��֥ǥ��쥯�ȥ�˳�Ǽ����ޤ���
+	���Υǥ��쥯�ȥ�β��� <filename>/usr/src</filename>
+	��Ʊ����¤�Ȥʤ�ޤ���</para>
 
-      <para>���Υǥ��쥯�ȥ�򤢤餫���������Ƥ������Ȥˤ�ꡢ
-	<command>make buildworld</command> �ι����ˤ�������֤�û�̤�����
-        ��¸�����Ǻ�ޤ����褦�ʥȥ�֥����򤹤뤳�Ȥ��Ǥ��ޤ���
-      </para>
+      <para>�⤷���Υǥ��쥯�ȥ꤬¸�ߤ��Ƥ���ΤǤ���С�
+	���Υǥ��쥯�ȥ�������ơ�
+	<command>make buildworld</command> �ι����ˤ�������֤�û�̤���
+	��¸�����Ǻ�ޤ����褦�ʥȥ�֥����򤹤뤳�Ȥ��Ǥ��ޤ���</para>
 
-      <para><filename>/usr/obj</filename> �ʲ��Υե�����ˤϡ�
-        �ѹ��Բ� (immutable) �ե饰 (�ܺ٤�
-        &man.chflags.1; ����) �����åȤ���Ƥ����Τ������ǽ��������ޤ���
-        ���Τ��ᡢ�ޤ��ǽ�ˤ��Υե饰���ѹ����ʤ���Фʤ�ޤ���
-      </para>
+      <para><filename>/usr/obj</filename> �ʲ��Υե�����ˤϡ��ѹ��Բ�
+	(immutable) �ե饰�����åȤ���Ƥ����Τ������ǽ��������ޤ���
+	���Τ褦�ʥե�����Ϻǽ�� &man.chflags.1;
+	���Ѥ��Ƥ���������ɬ�פ�����ޤ���</para>
 
       <screen>&prompt.root; <userinput>cd /usr/obj</userinput>
 &prompt.root; <userinput>chflags -R noschg *</userinput>
@@ -2283,15 +2182,13 @@ Fetching 133 new ports or files... done.</screen>
 	<title>���ϥ�å���������¸</title>
 
 	<para>�¹Ԥ���� &man.make.1; ����ν��Ϥϡ��ե��������¸������ɤ��Ǥ��礦��
-          �⤷�������㳲��ȯ��������硢���顼��å������Υ��ԡ���긵�˻Ĥ����Ȥ��Ǥ��ޤ���
-          ���������ä��Τ������ʤ����Ȥ����줫�����򤹤뤳�ȤϤǤ��ʤ�����
-          �Τ�ޤ��󤬡�&os; �᡼��󥰥ꥹ�Ȥ���Ƥ��ơ�
-          ï��¾�οͤ���ν��������뤿������Ѥ��뤳�Ȥ��Ǥ��ޤ���</para>
+	  �⤷�������㳲��ȯ��������硢���顼��å������Υ��ԡ���
+	  &os; �᡼��󥰥ꥹ�Ȥ���Ƥ��Ƥ���������</para>
 
-	<para>�ե��������¸����Ǥ��ñ����ˡ�ϡ�&man.script.1; ���ޥ�ɤ�
-          �Ȥ��������˽��Ϥ���¸�������ե�����̾����ꤹ�뤳�ȤǤ���
-          ����� make world ��ľ���˹Ԥʤ����ƹ��ۤ���λ���Ƥ���
-          <userinput>exit</userinput> �����Ϥ���ȡ����Ϥ���¸���뤳�Ȥ��Ǥ��ޤ���</para>
+	<para>�ե��������¸����Ǥ��ñ����ˡ�ϡ�&man.script.1;
+	  ���ޥ�ɤ�Ȥ��������˽��Ϥ���¸�������ե�����̾����ꤹ�뤳�ȤǤ���
+	  ����� make world ��ľ���˹Ԥʤ����ƹ��ۤ���λ������
+	  �ʲ��Τ褦�� <userinput>exit</userinput> �����Ϥ��Ƥ���������</para>
 
 	<screen>&prompt.root; <userinput>script /var/tmp/mw.out</userinput>
 Script started, output file is /var/tmp/mw.out
@@ -2300,47 +2197,36 @@ Script started, output file is /var/tmp/mw.out
 &prompt.root; <userinput>exit</userinput>
 Script done, &hellip;</screen>
 
-	<para>���Ϥ���¸�����硢<filename>/tmp</filename> �ǥ��쥯�ȥ�����
-          ��¸���Ƥ�<emphasis>�����ޤ���</emphasis>��
-          ���Υǥ��쥯�ȥ�ϡ����κƵ�ư�Ǻ������Ƥ��ޤ���ǽ��������ޤ���
-          ���Ϥ���¸�ˤϡ�(�����Τ褦��) <filename>/var/tmp</filename>��
+	<para><filename class="directory">/tmp</filename>
+	  �˽��Ϥ���¸���Ƥ�<emphasis>�����ޤ���</emphasis>��
+	  ���Υǥ��쥯�ȥ�ϡ����κƵ�ư�Ǻ������Ƥ��ޤ���ǽ��������ޤ���
+	  ���Ϥ���¸�ˤϡ�<filename class="directory">/var/tmp</filename> ��
           <username>root</username> �Υۡ���ǥ��쥯�ȥ꤬Ŭ���Ƥ��ޤ���</para>
       </sect3>
 
       <sect3 id="make-buildworld">
 	<title>�١��������ƥ�ι���</title>
 
-	<para>�ޤ��������ȥǥ��쥯�ȥ�� <filename>/usr/src</filename> ��
-          �ѹ����ʤ���Фʤ�ޤ��󡣼��Τ褦�˼¹Ԥ��Ƥ���������</para>
+	<para><filename>/usr/src</filename> �ˤơ�
+	  ���Τ褦�˼¹Ԥ��Ƥ���������</para>
 
-	  <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
-
-          <para>(������󡢥����������ɤ�¾�Υǥ��쥯�ȥ�ˤ�����ˤϡ�
-          <filename>/usr/src</filename> �ǤϤʤ���
-           �����������ɤΤ���ǥ��쥯�ȥ�˰�ư���Ƥ�������)��
-        </para>
+	<screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
 
 	<indexterm><primary><command>make</command></primary></indexterm>
-	<para>
-          make world ��Ԥʤ��ˤϡ�&man.make.1; ���ޥ�ɤ���Ѥ��ޤ���
-          ���Υ��ޥ�ɤϡ�<filename>Makefile</filename> �Ȥ����ե����뤫�顢
-          FreeBSD ��������ץ������κƹ�����ˡ�䡢
-          �ɤ��������֤Ǥ������ۤ��٤����Ȥ��ä��褦��
-          �ؼ����ɤ߹��ߤޤ���
-        </para>
 
-	<para>
-          ���ޥ�ɥ饤��ΰ���Ū�ʽ񼰤ϡ����ΤȤ���Ǥ���
-        </para>
+	<para>world ��ƹ��ۤ���ˤϡ�&man.make.1; ����Ѥ��Ƥ���������
+	  ���Υ��ޥ�ɤϡ�<filename>Makefile</filename> ���顢
+	  &os; ��������ץ������κƹ�����ˡ�䡢
+	  �ɤ��������֤Ǥ������ۤ��٤����Ȥ��ä��褦�ʻؼ����ɤ߹��ߤޤ���</para>
+
+	<para>���ޥ�ɥ饤��ΰ���Ū�ʽ񼰤ϡ����ΤȤ���Ǥ���</para>
 
 	<screen>&prompt.root; <userinput>make -<replaceable>x</replaceable> -D<replaceable>VARIABLE</replaceable> <replaceable>target</replaceable></userinput></screen>
 
-	<para>
-          ������Ǥϡ�<option>-<replaceable>x</replaceable></option> ��
-          &man.make.1; ���Ϥ���륪�ץ����ˤʤ�ޤ���
-          �ɤΤ褦�ʥ��ץ�������ѤǤ��뤫�ˤĤ��Ƥϡ��ޥ˥奢��ڡ�����
-          ���Ȥ��Ƥ���������
-        </para>
+	<para>������Ǥϡ�<option>-<replaceable>x</replaceable></option> ��
+	  &man.make.1; ���Ϥ���륪�ץ����ˤʤ�ޤ���
+	  �ɤΤ褦�ʥ��ץ�������ѤǤ��뤫�ˤĤ��Ƥϡ�&man.make.1;
+	  �򻲾Ȥ��Ƥ���������</para>
 
 	<para>
           <option>-D<replaceable>VARIABLE</replaceable></option> �ϡ�
@@ -2348,7 +2234,7 @@ Script done, &hellip;</screen>
           �����ѿ��� <filename>Makefile</filename> ��ư��򥳥�ȥ����뤷�ޤ���
           �ޤ���<filename>/etc/make.conf</filename> �����ꤵ����ѿ���
           Ʊ�ͤǤ���������ѿ������ꤹ��⤦��Ĥ���ˡ�Ȥ����Ѱդ���Ƥ��ޤ���
-        </para>
+	  ���Ȥ��аʲ����̤�Ǥ���</para>
 
 	<screen>&prompt.root; <userinput>make -DNO_PROFILE <replaceable>target</replaceable></userinput></screen>
 
@@ -2360,25 +2246,20 @@ Script done, &hellip;</screen>
 
 	<para>�ιԤ��б����ޤ���</para>
 
-	<para>
-          <replaceable>target</replaceable> �ϡ�&man.make.1; ��
-          �ɤΤ褦��ư���Τ���ؼ����뤿��Τ�ΤǤ���
-          �ơ��� <filename>Makefile</filename> �ˤϡ���¿���ΰۤʤ�
+	<para><replaceable>target</replaceable> �ϡ�&man.make.1; ��
+	  �ɤΤ褦��ư���Τ���ؼ����뤿��Τ�ΤǤ���
+	  �� <filename>Makefile</filename> �ˤϡ���¿���ΰۤʤ�
           <quote>�������å� (target)</quote> ���������Ƥ��ơ�
           ���ꤵ�줿�������åȤˤ�ä�ư���ޤ�ޤ���
         </para>
 
-	<para>
-          <filename>Makefile</filename> �˽񤫤�Ƥ��륿�����åȤˤϡ�
-          ���ʤ������ꤷ�Ƥ��̣������ʤ���Τ�ޤޤ�ޤ���
-          �����ϡ������ƥ�κƹ��ۤ�ɬ�פ��ʳ���¿����
-          ����˺٤����ʳ���ʬ�䤹�뤿�ᡢ���ۤβ��������Ѥ�����ΤǤ���
-        </para>
+	<para><filename>Makefile</filename> �˽񤫤�Ƥ��륿�����åȤˤϡ�
+	  �����ƥ�κƹ��ۤ�ɬ�פ��ʳ���
+	  ¿���Τ���˺٤����ʳ���ʬ�䤹�뤿�ᡢ
+	  ���ۤβ��������Ѥ�����Τ�����ޤ���</para>
 
-	<para>
-          ����ξ�硢&man.make.1; �˥ѥ�᡼������ꤹ��ɬ�פϤʤ��Ǥ��礦���顢
-          ���ޥ�ɥ饤��ϼ��Τ褦�ʤ�Τˤʤ�Ǥ��礦��
-        </para>
+	<para>����ξ�硢&man.make.1; �˥ѥ�᡼������ꤹ��ɬ�פϤʤ��Ǥ��礦���顢
+	  ���ޥ�ɥ饤��ϼ��Τ褦�ʤ�Τˤʤ�ޤ���</para>
 
 	<screen>&prompt.root; <userinput>make <replaceable>target</replaceable></userinput></screen>
 
@@ -2387,30 +2268,26 @@ Script done, &hellip;</screen>
 	  �ǽ�Υ������åȤϤ��Ĥ� <maketarget>buildworld</maketarget>
 	  �ˤʤ�Ǥ��礦��</para>
 
-	<para>
-          ����̾���������褦�ˡ�<maketarget>buildworld</maketarget> ��
-          <filename>/usr/obj</filename> �ʲ��˿�����������
-          �ǥ��쥯�ȥ�ĥ꡼���ۤ����⤦��ĤΥ������å�
+	<para>����̾���������褦�ˡ�<maketarget>buildworld</maketarget> ��
+	  <filename>/usr/obj</filename>
+	  �ʲ��˿����������ʥǥ��쥯�ȥ�ĥ꡼���ۤ���
           <maketarget>installworld</maketarget> �ϡ����Υĥ꡼��
-          ���ߤΥޥ���˥��󥹥ȡ��뤷�ޤ���
-        </para>
+	  ���ߤΥޥ���˥��󥹥ȡ��뤷�ޤ���</para>
 
-	<para>����褬ʬ�����Ƥ��뤳�Ȥϡ���Ĥ���ͳ��������ͭ�ѤǤ���
-          �ޤ����ˡ���Ư��Υ����ƥ�������ƶ���Ϳ���뤳�Ȥʤ���
-          �����˥����ƥ�ι��ۺ�Ȥ�Ԥ��뤳�ȤǤ���
-          ���ۺ�Ȥ� <quote>���ˤ��¸������Ω���ƹԤʤ���</quote> ���ᡢ
+	<para>����褬ʬ�����Ƥ��뤳�Ȥϡ���Ĥ���ͳ����ͭ�ѤǤ���
+	  �ޤ����ˡ����ۺ�Ȥ�
+	  <quote>���ˤ��¸������Ω���ƹԤʤ��</quote>��
+	  ��Ư��Υ����ƥ�ˤޤä����ƶ���Ϳ���ޤ���
           <!-- hrs:2000/02/14: needs good phrase that means "self hosted" -->
-          �ޥ���桼���⡼�ɤDz�Ư��Υ����ƥ�Ǥ⡢�����
+          ���Τ��ᡢ�ޥ���桼���⡼�ɤDz�Ư��Υ����ƥ�Ǥ⡢�����
           ���ƶ���Ϳ������ <maketarget>buildworld</maketarget> ��
           �¹Ԥ��뤳�Ȥ��Ǥ��ޤ���
           ��������<maketarget>installworld</maketarget> ��
-          ���󥰥�桼���⡼�ɤǹԤʤ����Ȥ򤪤����ᤷ�ޤ���
-        </para>
+	  ���󥰥�桼���⡼�ɤǹԤʤ����Ȥ򤪤����ᤷ�ޤ���</para>
 
-	<para>
-          ����ˡ�NFS �ޥ���Ȥ����Ѥ��뤳�Ȥǡ�
-          �ͥåȥ�����ʣ���Υޥ���򥢥åץ��졼�ɤ��뤳�Ȥ�
-	  ��ǽ�������������ޤ������Ȥ��л���Υޥ���
+	<para>����ˡ�NFS �ޥ���Ȥ����Ѥ��뤳�Ȥǡ�
+	  �ͥåȥ�����ʣ���Υޥ���򥢥åץ��졼�ɤ��뤳�Ȥ���ǽ�������������ޤ���
+	  ���Ȥ��л���Υޥ���
 	  <hostid>A</hostid>, <hostid>B</hostid>, <hostid>C</hostid>
 	  �򥢥åץ��졼�ɤ��������ˤϡ��ޤ��ޥ��� <hostid>A</hostid>
 	  �� <command>make buildworld</command> ��
@@ -2418,20 +2295,19 @@ Script done, &hellip;</screen>
 	  ���줫�顢�ޥ��� <hostid>B</hostid> �ȥޥ��� <hostid>C</hostid>
 	  �ǥޥ��� <hostid>A</hostid> ��
           <filename>/usr/src</filename> �� <filename>/usr/obj</filename> ��
-          NFS �ޥ���Ȥ���<command>make installworld</command> �Ȥ��뤳�Ȥ�
-          ���ۺѤߤΥ����ƥ��ƥޥ���˥��󥹥ȡ��뤹�뤳�Ȥ��Ǥ���ΤǤ���
-        </para>
+	  NFS �ޥ���Ȥ���<command>make installworld</command>
+	  �Ȥ��뤳�Ȥǹ��ۺѤߤΥ����ƥ��ƥޥ���˥��󥹥ȡ���Ǥ��ޤ���</para>
 
 	<para><maketarget>world</maketarget> �������åȤ����Ѳ�ǽ�Ǥ�����
           ���Υ������åȤ����ѤϿ侩����Ƥ��ޤ���</para>
 
-        <para>���Υ��ޥ��</para>
+        <para>���Τ���ꡢ���Υ��ޥ��</para>
 
 	<screen>&prompt.root; <userinput>make buildworld</userinput></screen>
 
         <para>��¹Ԥ��Ƥ��������������� <command>make</command> ��
-          <option>-j</option> ���ץ�����Ĥ���ȡ�
-          Ʊ���ˤ����Ĥ��Υץ����������������뤳�Ȥ��Ǥ��ޤ���
+	  <option>-j</option> ��Ĥ���ȡ�
+	  Ʊ����ʣ���Υץ������������Ǥ��ޤ���
           ���ε�ǽ�ϥޥ�� CPU �ޥ�����ä˸��̤�ȯ�����ޤ���
           ���۲���������ʬ�Ǥ� CPU ��ǽ�θ³����
           I/O ��ǽ�θ³�����������Ȥʤ뤿�ᡢ���󥰥� CPU
@@ -2473,10 +2349,9 @@ Script done, &hellip;</screen>
 	<secondary>���ۡ�����ѥ���</secondary>
       </indexterm>
 
-      <para>
-        �����������ƥ������ǽ���������ѤǤ���褦�ˤ���ˤϡ�
-	�����ͥ�κƹ��ۤ򤹤�ɬ�פ�����ޤ���
-        �ƹ��ۤϡ������Υ��깽¤�Τ��ѹ����줿���ˤ��ä�ɬ�ܤǤ��ꡢ
+      <para>�����������ƥ������ǽ���������ѤǤ���褦�ˤ���ˤϡ�
+	�����ͥ��ƹ��ۤ��Ƥ���������
+	�ƹ��ۤϡ������Υ��깽¤�Τ��ѹ����줿���ˤ��ä�ɬ�ܤǤ��ꡢ
         &man.ps.1; �� &man.top.1; �Τ褦�ʥץ������ϡ�
         �����ͥ�ȥ����������ɤΥС�����󤬰��פ��ʤ��������ư��ʤ��Ǥ��礦��</para>
 
@@ -2487,31 +2362,32 @@ Script done, &hellip;</screen>
         ��ư������Τ�ɬ�פʤ�ΤϤ��٤����äƤ��ޤ���
         ����Ͽ������С������Υ����ƥब�������ư��뤫�ɤ���
         Ĵ�٤��ɤ���ˡ�ΰ�ĤǤ���
-        <filename>GENERIC</filename> �ǵ�ư���Ƥ��顢
-        ���ʤ������Ĥ�ȤäƤ��륫���ͥ륳��ե����졼�����ե������
-        �Ȥäƿ����������ͥ���ۤ��뤳�Ȥǡ�
-        �����ƥब�����ư��Ƥ��뤫�ɤ����Τ���뤳�Ȥ��Ǥ��ޤ���</para>
+	<filename>GENERIC</filename> �ǵ�ư���ơ�
+	�����ƥब�����ư��Ƥ��뤫�ɤ�����Τ��᤿�顢
+	�������५���ͥ륳��ե����졼�����ե������Ȥäƿ����������ͥ���ۤ��Ƥ���������</para>
 
       <para>&os; �Ǥϡ������������ͥ���ۤ������� <link
 	linkend="make-buildworld">build world</link> ��Ԥ����Ȥ����פǤ���
 	</para>
 
-      <note><para>�������५���ͥ���ۤ�������硢���˥���ե����졼
-	�����ե����뤬����ʤ�С�ñ��
-	<literal>KERNCONF=<replaceable>MYKERNEL</replaceable></literal>
-	��ȤäƤ���������</para>
+      <note>
+	<para>���ˤ��륳��ե����졼�����ե������Ȥäƥ������५���ͥ���ۤ���ˤϡ�
+	  <literal>KERNCONF=<replaceable>MYKERNEL</replaceable></literal>
+	  ��ȤäƤ���������</para>
 
       <screen>&prompt.root; <userinput>cd /usr/src</userinput>
 &prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput>
 &prompt.root; <userinput>make installkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen>
+
       </note>
 
-      <para>�ʤ���<literal>kern.securelevel</literal> �� 1 ����礭��
-	���Ƥ��ơ�<emphasis>����</emphasis>�����ͥ�ΥХ��ʥ�ե�����
-	�� <literal>noschg</literal> �Τ褦�ʥե饰�����ꤷ�Ƥ�����
-	�ϡ�<maketarget>installkernel</maketarget> ��Ԥ��Τ˥��󥰥�
-	�桼���⡼�ɤ˰ܹԤ��ʤ���Фʤ�ޤ��󡣤���ʳ��ξ��ϡ��ޥ�
-	���桼���⡼�ɤǤ����Υ��ޥ�ɤ�����ʤ�ư������Ϥ��Ǥ���
+      <para><literal>kern.securelevel</literal> �� 1 ����礭�����Ƥ��ơ�
+	<emphasis>����</emphasis> �����ͥ�ΥХ��ʥ�ե������
+	<literal>noschg</literal> �Τ褦�ʥե饰�����ꤷ�Ƥ�����ϡ�
+	<maketarget>installkernel</maketarget>
+	��Ԥ��Τ˥��󥰥�桼���⡼�ɤ˰ܹԤ��Ƥ���������
+	����ʳ��ξ��ϡ�
+	�ޥ���桼���⡼�ɤǤ����Υ��ޥ�ɤ�����ʤ�ư������Ϥ��Ǥ���
 	<literal>kern.securelevel</literal> �ˤĤ��ƾܤ�����
 	&man.init.8; �򡢥ե�������͡��ʥե饰�ˤĤ��ƾܤ�����
 	&man.chflags.1; ��������������</para>
@@ -2521,9 +2397,8 @@ Script done, &hellip;</screen>
       <title>���󥰥�桼���⡼�ɤǺƵ�ư����</title>
       <indexterm><primary>single-user mode</primary></indexterm>
 
-      <para>
-        �����������ͥ뤬ư��뤫�ɤ����ƥ��Ȥ��뤿��ˡ�
-        ���󥰥�桼���⡼�ɤǺƵ�ư����٤��Ǥ���
+      <para>�����������ͥ뤬ư��뤫�ɤ����ƥ��Ȥ��뤿��ˡ�
+	���󥰥�桼���⡼�ɤǺƵ�ư���Ƥ���������
         ���󥰥�桼���⡼�ɤǤε�ư�ϡ�
         <xref linkend="makeworld-singleuser"/>
         �˽񤫤�Ƥ�����˽��äƤ���������</para>
@@ -2532,21 +2407,17 @@ Script done, &hellip;</screen>
     <sect2 id="make-installworld">
       <title>�����������ƥ�Х��ʥ�Υ��󥹥ȡ���</title>
 
-      <para>���ˡ������� <maketarget>installworld</maketarget>
-	��Ȥ����Ȥǿ����������ƥ�Х��ʥ�Υ��󥹥ȡ����Ԥʤ��ޤ���</para>
-
-      <para>����ˤϡ��ʲ��Υ��ޥ�ɤ�¹Ԥ��Ƥ���������</para>
+      <para>���ˡ�<maketarget>installworld</maketarget>
+	��Ȥäƿ����������ƥ�Х��ʥ�Υ��󥹥ȡ����Ԥʤ��ޤ���</para>
 
       <screen>&prompt.root; <userinput>cd /usr/src</userinput>
 &prompt.root; <userinput>make installworld</userinput></screen>
 
       <note>
-	<para><command>make buildworld</command> �ǥ��ޥ�ɥ饤�󤫤�
-          �ѿ�����ꤷ�����ϡ�Ʊ�������
-          <command>make installworld</command> �Υ��ޥ�ɥ饤��ˤ�
-          ���ꤷ�ʤ���Фʤ�ޤ���
-          �����������ץ����ˤĤ��ƤϤ��θ¤�ǤϤ���ޤ���
-          ���Ȥ��� <option>-j</option> ��
+	<para><command>make buildworld</command>
+	  ���ѿ�����ꤷ�����ϡ�Ʊ�������
+          <command>make installworld</command> �ˤ���ꤷ�ʤ���Фʤ�ޤ���
+	  ������ <option>-j</option> ��
           <maketarget>installworld</maketarget> �����Ф˻ȤäƤϤ����ޤ���</para>
 
 	<para>���Ȥ��аʲ��Τ褦�˼¹Ԥ����ʤ顢</para>
@@ -2566,21 +2437,17 @@ Script done, &hellip;</screen>
     <sect2 id="post-installworld-updates">
       <title><command>make installworld</command> �ǹ�������ʤ��ե�����ι���</title>
 
-      <para>
-        �����ƥ�κƹ��ۤϡ������Ĥ��Υǥ��쥯�ȥ� (
-	�äˡ�<filename>/etc</filename> �� <filename>/var</filename> ��
-	<filename>/usr</filename>) �ˤ����ơ�
+      <para>�����ƥ�κƹ��ۤϡ������Ĥ��Υǥ��쥯�ȥꡢ
+	�äˡ�<filename class="directory">/etc</filename> ��
+	<filename class="directory">/var</filename> ��
+	<filename class="directory">/usr</filename> �ˤ����ơ�
         ������Ƴ�����줿�ꡢ�ѹ����줿����ե�����ˤ��
         �ե�����ι����ϹԤʤ��ޤ���</para>
 
-      <para>
-	�����Υե�����򹹿������äȤ��ñ����ˡ�ϡ�&man.mergemaster.8;
-	��Ȥ����ȤǤ�������ϼ�ʬ�Ǥ�뤳�Ȥ��ǽ�ʤΤǡ��������Ƥ�
-	���ޤ��ޤ���
-	���������ˡ�˽����ˤ��衢
+      <para>�����Υǥ��쥯�ȥ�Υե�����򹹿������äȤ��ñ����ˡ�ϡ�
+	&man.mergemaster.8; ��Ȥ����ȤǤ���
 	ɬ�� <filename>/etc</filename>
-	�ΥХå����åפ��ä���¬�λ��֤������Ƥ���������
-      </para>
+	�ΥХå����åפ��ä���¬�λ��֤������Ƥ���������</para>
 
     <sect3 id="mergemaster">
       <sect3info>
@@ -2595,29 +2462,30 @@ Script done, &hellip;</screen>
       <title><command>mergemaster</command></title>
         <indexterm><primary><command>mergemaster</command></primary></indexterm>
 
-      <para>&man.mergemaster.8; �桼�ƥ���ƥ��� Bourne �����륹����ץȤǡ�
-	<filename>/etc</filename> �ˤ�������ե�����ȥ������ĥ꡼��
-	<filename>/usr/src/etc</filename> �ˤ�������ե�����ΰ㤤���ǧ����Τ�����äƤ���ޤ���
+      <para>&man.mergemaster.8; �� Bourne �����륹����ץȤǡ�
+	<filename class="directory">/etc</filename>
+	�ˤ�������ե�����ȥ������ĥ꡼��
+	<filename class="directory">/usr/src/etc</filename>
+	�ˤ�������ե�����ΰ㤤���ǧ����Τ�����äƤ���ޤ���
         �����Ȥ��Τ����������ĥ꡼�ˤ�������ե�����˥����ƥ������ե������
 	�������뤿��˿侩�������ˡ�Ǥ���</para>
 
-      <para>�Ϥ��ˤϡ��ץ���ץȤ���ñ��
-	<command>mergemaster</command> �����Ϥ��ơ�
-	�ե��������Ӥ򳫻Ϥ���Τ򸫤Ƥ���������
+      <para>�Ϥ��ˤϡ��ץ���ץȤ���
+	<command>mergemaster</command> �����Ϥ��Ƥ�������
 	<command>mergemaster</command> ��
 	<filename>/</filename> �����Ȥ������Ū�ʥ롼�ȴĶ����ۤ���
 	���ޤ��ޤʥ����ƥ�����ե������
 	(����: �ǥե���ȤǤ� <filename>/var/tmp/temproot</filename> ��)
 	�֤��Ƥ����ޤ���
-	���ˤ����Υե�����ϸ��ߥ����ƥ�˥��󥹥ȡ��뤵��Ƥ���ե��������Ӥ���ޤ���
-	���λ����ǡ��ۤʤ�ե������ &man.diff.1; �����Ǽ����졢
+	�����Υե�����ϸ��ߥ����ƥ�˥��󥹥ȡ��뤵��Ƥ���ե��������Ӥ���ޤ���
+	�ۤʤ�ե������ &man.diff.1; �����Ǽ����졢
 	<option>+</option> �ε�����ɲäޤ����ѹ����줿�Ԥ�ɽ����
 	<option>-</option> �ϴ����˺�����줿���������֤�������줿�Ԥ�ɽ���ޤ���
 	&man.diff.1; �ν񼰤ȥե�����ΰ㤤��ɽ����ˡ�ˤĤ��ƤΤ��ܤ�������ϡ�
 	&man.diff.1; �򻲾Ȥ��Ƥ���������</para>
 
-      <para>&man.mergemaster.8; �Ͽ����㤤�������Ƥ���ե�����򤽤줾�켨���ޤ���
-	�����ǤϿ������ե����� (����ե�����Ȥ��ƻ��Ȥ���Ƥ��ޤ�) �������뤫��
+      <para>&man.mergemaster.8; �ϰ㤤�Τ���ե�����򤽤줾�켨���ޤ���
+	�������ե�����������뤫��
 	����ե�����򤽤Τޤޥ��󥹥ȡ��뤹�뤫��
 	����ե�����ȸ��ߥ��󥹥ȡ��뤵��Ƥ���ե���������礹�뤫��
 	�⤷���� &man.diff.1; �η�̤�⤦���ٸ��뤫����Ǥ��ޤ���</para>
@@ -2641,11 +2509,11 @@ Script done, &hellip;</screen>
 	���̾���¤�ξ���Υե�����򸫤ƿ������ե������������뤿���ξ������ɬ�פ���ʬ�����򤷡�
 	2 �ĤΥե���������礹�뤳�Ȥ��Ǥ��ޤ���
 	�¤�Ǥ���ե��������Ӥ���Ȥ���
-	<keycap>l</keycap> �����Ǻ�¦����Ȥ����򤷡�
-	<keycap>r</keycap> �����DZ�¦����Ȥ����򤷤ޤ���
+	<keycap>l</keycap> �Ǻ�¦����Ȥ����򤷡�
+	<keycap>r</keycap> �DZ�¦����Ȥ����򤷤ޤ���
 	�ǽ����ϤϺ���ξ������ʬ�ǤǤ����ե�����ˤʤ�Ǥ��礦��
 	���Υե�����򥤥󥹥ȡ��뤹�뤳�Ȥ��Ǥ��ޤ���
-	�����Ƥ������Υ��ץ����ϥ桼����������ѹ������ե�����˻Ȥ��ޤ���</para>
+	�����Ƥ������Υ��ץ����ϥ桼����������ѹ������ե�����˻Ȥ��ޤ���</para>
 
       <para>&man.diff.1; �η�̤�⤦���ٸ��롢�����򤹤�ȡ�
 	���礦����ۤ� &man.mergemaster.8; ��������ɽ����������Ʊ���褦�ˡ�
@@ -2654,63 +2522,52 @@ Script done, &hellip;</screen>
       <para>&man.mergemaster.8; �������ƥ�ե��������Ӥ򽪤������ȡ�
 	¾�Υ��ץ����ˤĤ��Ƥ�ץ���ץȤ�ɽ������ޤ���
 	&man.mergemaster.8;
-	�����ѥ���ɥե������ƹ��ۤ��������ɤ����Ҥͤ뤳�Ȥ�����ޤ���
+	�����ѥ���ɥե������ƹ��ۤ��뤫�ɤ�����Ҥͤ뤳�Ȥ�����ޤ���
 	�Ǹ�˻Ĥä�����ե�����������뤫�ɤ�����Ҥͤƽ�λ���ޤ���</para>
       </sect3>
 
       <sect3>
 	<title>��ư�Ǥι���</title>
 
-      <para>
-	��ư�ǹ������뤳�Ȥ��������硢
-        ñ�˥ե������
-	<filename>/usr/src/etc</filename> ���� <filename>/etc</filename> ��
-	���ԡ����������Ǥ������ư����뤳�ȤϤǤ��ޤ���
-        �����Υե�����ˤϡ�<quote>���󥹥ȡ���Ȥ���
-          ����Ƨ�ޤʤ���Фʤ�ʤ����</quote> ���ޤޤ�Ƥ��ޤ���
-        <filename>/usr/src/etc</filename> �ǥ��쥯�ȥ��
-        <filename>/etc</filename>
-        �ǥ��쥯�ȥ�ˤ��Τޤ��֤���������褦��
-        ���ԡ��Ǥ�<emphasis>�ʤ�</emphasis>����Ǥ���
+      <para>��ư�ǹ���������ˤϡ�ñ�˥ե������
+	<filename class="directory">/usr/src/etc</filename>
+	���� <filename class="directory">/etc</filename> ��
+	���ԡ����ʤ��Ǥ��������������ư��ʤ��Ǥ��礦��
+	�ե��������ˤϡ�
+	<quote>���󥹥ȡ���Ȥ�������Ƨ�ޤʤ���Фʤ�ʤ����</quote>
+	���ޤޤ�Ƥ��ޤ���
+	<filename class="directory">/usr/src/etc</filename> ��
+	<filename class="directory">/etc</filename>
+	�ˤ��Τޤ��֤���������褦�ʥ��ԡ��Ǥ�
+	<emphasis>�ʤ�</emphasis>����Ǥ���
         �ޤ���<filename>/etc</filename> �ˤ���٤��ե�����Τ�����
-	<filename>/usr/src/etc</filename> �ˤʤ���Τ⤢��ޤ���
-      </para>
+	<filename>/usr/src/etc</filename> �ˤʤ���Τ⤢��ޤ���</para>
 
       <para>&man.mergemaster.8; �� (�����줿�̤�)
 	�ȤäƤ���ΤǤ���С�<link
 	linkend="updating-upgrading-rebooting">������</link>
 	�ޤ����Ф��Ƥ⤫�ޤ��ޤ���</para>
 
-      <para>
-	��ư�ǹԤ��ݤ�
-        ���ִ�ñ����ˡ�ϡ��ե�����򿷤����ǥ��쥯�ȥ�˥��󥹥ȡ��뤷�Ƥ��顢
-        �����Τ�ΤȰۤʤäƤ�����ʬ��Ĵ�٤ƹ�����Ȥ�Ԥʤ����ȤǤ���
-      </para>
+      <para>��ư�ǹԤ��ݤΰ��ִ�ñ����ˡ�ϡ�
+	�ե�����򿷤����ǥ��쥯�ȥ�˥��󥹥ȡ��뤷�Ƥ��顢
+	�����Τ�ΤȰۤʤäƤ�����ʬ��Ĵ�٤ƹ�����Ȥ�Ԥʤ����ȤǤ���</para>
 
       <warning>
 	<title>��¸�� <filename>/etc</filename> ��Хå����åפ���</title>
 
-	<para>
-          ����Ū�˹ͤ��ơ����Υǥ��쥯�ȥ꤬��ưŪ��
-          ��������뤳�ȤϤ���ޤ��󤬡�ǰ�ˤ�ǰ������Ƥ�����
-          »�Ϥ���ޤ��󡣤��Ȥ��аʲ��Τ褦�ˤ��ơ�
-          ��¸�� <filename>/etc</filename> �ǥ��쥯�ȥ��
-          �ɤ��������ʾ��˥��ԡ����Ƥ����ޤ��礦��
-        </para>
+	<para>���Ȥ��аʲ��Τ褦�ˤ��ơ�
+	  ��¸�� <filename class="directory">/etc</filename>
+	  ��ɤ��������ʾ��˥��ԡ����Ƥ����ޤ��礦��</para>
 
 	<screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen>
 
-	<para>
-          <option>-R</option> �ϺƵ�Ū�ʥ��ԡ���Ԥʤ���
-          <option>-p</option> �ϥե�����ι������֤��ͭ�Ԥʤɤ���¸���ޤ���
-        </para>
+	<para>�����ǡ�<option>-R</option> �ϺƵ�Ū�ʥ��ԡ���Ԥʤ���
+	  <option>-p</option> �ϥե�����ι������֤��ͭ�Ԥʤɤ���¸���ޤ���</para>
       </warning>
 
-      <para>
-        �ޤ��������� <filename>/etc</filename> �䤽��¾�Υե������
-        ���󥹥ȡ��뤹�뤿��Ρ����Υǥ��쥯�ȥ���äƤ���ɬ�פ�����ޤ���
-	���ǥ��쥯�ȥ�� <filename>/var/tmp/root</filename> ���֤��Τ��ɤ��Ǥ��礦��
-        Ʊ�ͤˡ�ɬ�פʥ��֥ǥ��쥯�ȥ�⤳�β����֤��ޤ���</para>
+      <para>������ <filename class="directory">/etc</filename>
+	�䤽��¾�Υե�����򥤥󥹥ȡ��뤹�뤿��Ρ�
+	���Υǥ��쥯�ȥ���äƤ���������</para>
 
       <screen>&prompt.root; <userinput>mkdir /var/tmp/root</userinput>
 &prompt.root; <userinput>cd /usr/src/etc</userinput>
@@ -2718,153 +2575,121 @@ Script done, &hellip;</screen>
 
       <para>
         �����ϡ�ɬ�פʥǥ��쥯�ȥ깽¤��Ĥ��ꡢ�ե�����򥤥󥹥ȡ��뤷�ޤ���
-	<filename>/var/tmp/root</filename> �ʲ��˺���롢
-        ��������ζ��Υǥ��쥯�ȥ�Ϻ������ɬ�פ�����ޤ���
+	<filename class="directory">/var/tmp/root</filename> �ʲ��˺���롢
+	��������ζ��Υ��֥ǥ��쥯�ȥ�Ϻ������ɬ�פ�����ޤ���
 	���ִ�ñ�ʤ�����ϡ����ΤȤ���Ǥ���</para>
 
       <screen>&prompt.root; <userinput>cd /var/tmp/root</userinput>
 &prompt.root; <userinput>find -d . -type d | xargs rmdir 2&gt;/dev/null</userinput></screen>
 
-      <para>
-	����϶��ǥ��쥯�ȥ�򤹤٤ƺ�����ޤ���
-	(���Ǥʤ��ǥ��쥯�ȥ�˴ؤ���ٹ���򤱤뤿��ˡ�
+      <para>����϶��ǥ��쥯�ȥ�򤹤٤ƺ�����ޤ���
+	���Ǥʤ��ǥ��쥯�ȥ�˴ؤ���ٹ���򤱤뤿��ˡ�
 	ɸ�२�顼���Ϥ� <filename>/dev/null</filename> ��
-	������쥯�Ȥ���ޤ�)
-      </para>
+	������쥯�Ȥ���ޤ���</para>
 
-      <para>
-        �����ʳ��� <filename>/var/tmp/root</filename> �ˤϡ�
-        ���� <filename>/</filename> �ʲ��ˤ���٤��ե����뤬
-        ���٤ƴޤޤ�Ƥ��ޤ���
-        �ƥե�������˸��ơ���¸�Υե�����Ȱۤʤ���ʬ��
-        Ĵ�٤Ƥ���������
-      </para>
+      <para>�����ʳ��� <filename class="directory">/var/tmp/root</filename> �ˤϡ�
+	���� <filename class="directory">/</filename>
+	�ʲ��ˤ���٤��ե����뤬���٤ƴޤޤ�Ƥ��ޤ����ƥե�������˸��ơ�
+	��¸�Υ����ƥ�ˤ���ե�����Ȱۤʤ���ʬ��Ĵ�٤Ƥ���������</para>
 
-      <para>
-        <filename>/var/tmp/root</filename> �ʲ���
-        ���󥹥ȡ��뤵��Ƥ���ե��������ˤϡ�
-        <quote>.</quote> ����ϤޤäƤ����Τ�����ޤ���
-        �����񤤤Ƥ�������ǡ�����˳�������ե������
-	<filename>/var/tmp/root/</filename> ��
-	<filename>/var/tmp/root/root/</filename> ����ˤ���
-        �����륹�����ȥ��åץե���������Ǥ�����
-	¾�ˤ⤢�뤫���Τ�ޤ���
-	(����ϡ����ʤ��������ɤλ������ɤ�Ǥ��뤫�˰�¸���ޤ�)��
+      <para><filename class="directory">/var/tmp/root</filename>
+	�ʲ��˥��󥹥ȡ��뤵��Ƥ���ե��������ˤϡ�
+	<quote>.</quote> ����ϤޤäƤ����Τ�����ޤ���
 	<command>ls -a</command> ��ȤäƳΤ���Ƥ���������</para>
 
-      <para>
-        ��äȤ��ñ����ˡ�ϡ���ĤΥե��������Ӥ��륳�ޥ��
-	&man.diff.1; ��Ȥ����ȤǤ���
-      </para>
+      <para>��äȤ��ñ����ˡ�ϡ���ĤΥե��������Ӥ��륳�ޥ��
+	&man.diff.1; ��Ȥ����ȤǤ���</para>
 
       <screen>&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen>
 
-      <para>
-        ����ϡ����ʤ���
-        <filename>/etc/shells</filename> �ե������
-	������ <filename>/var/tmp/root/etc/shells</filename> �ե������
-        �ۤʤ���ʬ��ɽ�����ޤ���
-        �����򡢤��ʤ����񤭴�������Τ��ѹ�����ޡ������뤫��
-        ����Ȥ��¸�Υե�����򿷤�����ΤǾ�񤭤��뤫��
-        Ƚ�Ǥ�������ˤ��Ƥ���������
-      </para>
+      <para>���Υ��ޥ�ɤϡ�<filename>/etc/shells</filename> �ե������
+	������ <filename>/var/tmp/root/etc/shells</filename>
+	�ե�����ΰۤʤ���ʬ��ɽ�����ޤ���
+	���Ƥ��ǧ���ơ��񤭴�������Τ��ѹ�����ޡ������뤫��
+        ����Ȥ��¸�Υե�����򿷤�����ΤǾ�񤭤��뤫��Ƚ�Ǥ��Ƥ���������</para>
 
       <tip>
 	<title>������ root �ǥ��쥯�ȥ�
-	  (<filename>/var/tmp/root</filename>) ��̾����
+	  (<filename class="directory">/var/tmp/root</filename>) ��̾����
           �����ॹ����פ��դ��Ƥ����ȡ�
           �ۤʤ�С������֤���Ӥ�ڤ˹Ԥʤ����Ȥ��Ǥ��ޤ���</title>
 
-	<para>
-          ���ˤ˥����ƥ�κƹ��ۤ�Ԥʤ��Ȥ������Ȥϡ�
-          <filename>/etc</filename> �ι�����ޤ������ˤ˹Ԥ�ɬ�פ�����
-          �Ȥ������ȤǤ�������Ϥ���äȼ�֤Τ������ȤǤ���
-        </para>
+	<para>���ˤ˥����ƥ�κƹ��ۤ�Ԥʤ��Ȥ������Ȥϡ�
+	  <filename class="directory">/etc</filename> �ι�����ޤ���
+	  ���ˤ˹Ԥ�ɬ�פ�����Ȥ������ȤǤ���
+	  ����Ϥ���äȼ�֤Τ������ȤǤ���</para>
 
-	<para>
-          ���κ�Ȥϡ����ʤ��� <filename>/etc</filename> �˥ޡ���������
+	<para>���κ�Ȥϡ����ʤ��� <filename class="directory">/etc</filename>
+	  �˥ޡ���������
           �������ѹ����줿�ե�����κǿ��Υ��åȤΥ��ԡ�����¸���Ƥ������Ȥ�
-          ���᤯�Ԥʤ����Ȥ��Ǥ��ޤ���
-          ���μ��ϡ������¸����뤿��ΰ�Ĥ���ˡ�Ǥ���</para>
+          ���᤯�Ԥʤ����Ȥ��Ǥ��ޤ���</para>
 
 	<procedure>
 	  <step>
-	    <para>
-              ���̤� make world ���ޤ���<filename>/etc</filename> ��
+	    <para>���̤� make world ���ޤ���
+	      <filename class="directory">/etc</filename> ��
 	      ¾�Υǥ��쥯�ȥ�򹹿��������ʤä��Ȥ��ϡ��������å�
-	      �ǥ��쥯�ȥ�ˡ����ΤȤ������դ˴�Ť�̾����Ĥ��Ƥ���������
-	      ���Ȥ��� 1998 ǯ 2 �� 14 �� ���Ȥ���С��ʲ��Τ褦�ˤ��ޤ���
-            </para>
+	      �ǥ��쥯�ȥ�ˡ����ΤȤ������դ˴�Ť�̾����Ĥ��Ƥ���������</para>
 
-	    <screen>&prompt.root; <userinput>mkdir /var/tmp/root-19980214</userinput>
+	      <screen>&prompt.root; <userinput>mkdir /var/tmp/root-20130214</userinput>
 &prompt.root; <userinput>cd /usr/src/etc</userinput>
-&prompt.root; <userinput>make DESTDIR=/var/tmp/root-19980214 \
+&prompt.root; <userinput>make DESTDIR=/var/tmp/root-20130214 \
     distrib-dirs distribution</userinput></screen>
 	  </step>
 
 	  <step>
-	    <para>
-              �����������Ƥ���褦�ˡ�
-              ���Υǥ��쥯�ȥ꤫���ѹ�����ޡ������ޤ���
-            </para>
-
-	    <para>
+	    <para>�����������Ƥ���褦�ˡ�
+	      ���Υǥ��쥯�ȥ꤫���ѹ�����ޡ������ޤ���
               ���κ�Ȥ���λ���Ƥ⡢
-              <filename>/var/tmp/root-19980214</filename> ��
-              ������Ƥ�<emphasis>�����ޤ���</emphasis>��</para>
+              <filename>/var/tmp/root-20130214</filename>
+	      �������Ƥ�<emphasis>�����ޤ���</emphasis>��</para>
 	  </step>
 
 	  <step>
-	    <para>
-              �ǿ��ǤΥ����������������ɤ��ƺƹ��ۤ����顢
-              ���ƥå� 1 �ˤ������äƤ������������٤ϡ�
-              <filename>/var/tmp/root-19980221</filename>
-              (������Ȥ��콵�֤������ä����)
-              �Τ褦��̾���Ρ��������ǥ��쥯�ȥ��Ĥ��뤳�Ȥˤʤ�Ǥ��礦��
-            </para>
+	    <para>�ǿ��ǤΥ����������������ɤ��ƺƹ��ۤ����顢
+	      ���ƥå� 1 �ˤ������äƤ������������٤ϡ�
+	      ���������դ�ȿ�Ǥ����ǥ��쥯�ȥ��������Ƥ���������
+	      ������Ǥϡ�<filename>/var/tmp/root-20130221</filename>
+	      �Ȥ����������ǥ��쥯�ȥ��Ĥ���ޤ���</para>
 	  </step>
 
 	  <step>
-	    <para>
-              �����ʳ��� &man.diff.1; ����Ѥ���
+	    <para>&man.diff.1; ����Ѥ���
               ��ĤΥǥ��쥯�ȥ����Ӥ���Ƶ�Ū diff ��������뤳�Ȥǡ�
               �콵�֤δ֤˹Ԥʤ�줿�������ؤ��ѹ��ˤ���������Ĵ�٤ޤ���
             </para>
 
 	    <screen>&prompt.root; <userinput>cd /var/tmp</userinput>
-&prompt.root; <userinput>diff -r root-19980214 root-19980221</userinput></screen>
+&prompt.root; <userinput>diff -r root-20130214 root-20130221</userinput></screen>
 
-	    <para>
-              ����ˤ�ä���𤵤��������ϡ�����ξ�硢
-              <filename>/var/tmp/root-19980221/etc</filename> ��
-              <filename>/etc</filename> �Ȥξ�����٤�
-              ���˾��ʤ���Τˤʤ�ޤ���
-              ����������ʤ����ᡢ�ѹ������¸�� <filename>/etc</filename>
-              �ǥ��쥯�ȥ�˥ޡ������뤳�Ȥϡ����Ū�ưפˤʤ�ޤ���
-            </para>
+	    <para>����ˤ�ä���𤵤��������ϡ�����ξ�硢<filename
+		class="directory">/var/tmp/root-20130221/etc</filename>
+	      ��
+	      <filename class="directory">/etc</filename>
+	      �Ȥ����������٤����˾��ʤ���Τˤʤ�ޤ���
+	      ����������ʤ����ᡢ�ѹ������¸��
+	      <filename class="directory">/etc</filename>
+	      �˥ޡ������뤳�Ȥϡ����Ū�ưפˤʤ�ޤ���</para>
 	  </step>
 
 	  <step>
-	    <para>
-              �����ޤǽ�λ�����顢<filename>/var/tmp/root-*</filename> ��
-              ��ĤΤ������Ť����Υǥ��쥯�ȥ�Ϻ�����ƹ����ޤ���
+	    <para>�����ޤǽ�λ�����顢
+	      <filename class="directory">/var/tmp/root-*</filename>
+              ����ĤΤ������Ť����Υǥ��쥯�ȥ�Ϻ�����ƹ����ޤ���
             </para>
 
-	    <screen>&prompt.root; <userinput>rm -rf /var/tmp/root-19980214</userinput></screen>
+	      <screen>&prompt.root; <userinput>rm -rf /var/tmp/root-20130214</userinput></screen>
 	  </step>
 
 	  <step>
-	    <para>
-              ���ι�����<filename>/etc</filename> ���ѹ�����ޡ�������
-              ɬ�פ����뤿�ӡ���󷫤��֤��ޤ���
-            </para>
+	    <para>�������
+	      <filename class="directory">/etc</filename>
+	      ���ѹ�����ޡ�������ɬ�פ����뤿�ӡ������֤��Ƥ���������</para>
 	  </step>
 	</procedure>
 
-	<para>
-          �ǥ��쥯�ȥ�̾��������ư������ˤϡ�&man.date.1;
-          �����Ѥ��뤳�Ȥ��Ǥ��ޤ���
-        </para>
+	<para>�ǥ��쥯�ȥ�̾��������ư������ˤϡ�&man.date.1;
+	  �����Ѥ��Ƥ���������</para>
 
 	<screen>&prompt.root; <userinput>mkdir /var/tmp/root-`date "+%Y%m%d"`</userinput></screen>
       </tip>
@@ -2874,32 +2699,21 @@ Script done, &hellip;</screen>
     <sect2 id="updating-upgrading-rebooting">
       <title>�Ƶ�ư</title>
 
-      <para>
-        ����ǡ���ȤϤ����ޤ��Ǥ���
-        ���٤Ƥ�����٤�����������¸�ߤ��뤳�Ȥ�����å������顢
-        �����ƥ��Ƶ�ư���ޤ�������ϡ�ñ��
-        &man.shutdown.8; ��¹Ԥ�������Ǥ���
-      </para>
+      <para>���٤Ƥ�����٤�����������¸�ߤ��뤳�Ȥ�����å������顢
+	&man.shutdown.8; ��¹Ԥ��ƥ����ƥ��Ƶ�ư���Ƥ���������</para>
 
       <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
-    </sect2>
 
-    <sect2>
-      <title>��Ȥδ�λ</title>
-
-      <para>
-        �����ޤ����С�&os; �����ƥ�Υ��åץ��졼�ɤ������Ǥ���
-	����ǤȤ��������ޤ���
-      </para>
+      <para>�����ޤ����С�&os; �����ƥ�Υ��åץ��졼�ɤ������Ǥ���
+	����ǤȤ��������ޤ���</para>
 
       <para>�⤷����äȤ������꤬���ä����Ǥ⡢
         �����ƥ�ΰ�����ƹ��ۤ���Τϴ�ñ�Ǥ���
-	���Ȥ��С����åץ��졼�ɤ�����Ǹ��ä�
-        <filename>/etc/magic</filename> ��������
-        <filename>/etc</filename> �˥ޡ������Ƥ��ޤ���
-        ���� <command>file</command>
-        ���ޥ�ɤ�ư��ʤ��ʤäƤ��ޤä��褦�ʾ���ͤ��ƤߤƤ���������
-        �����������ˤϡ����Υ��ޥ�ɤ�¹Ԥ���н������뤳�Ȥ��Ǥ��ޤ���</para>
+	���Ȥ��С����åץ��졼�ɤ� <filename class="directory">/etc</filename>
+	�Υޡ���������Ǹ��ä�
+	<filename>/etc/magic</filename> �������Ƥ��ޤ���
+	���η�� &man.file.1; ��ư��ʤ��ʤäƤ��ޤä��褦�ʾ��ˤϡ�
+	���Υ��ޥ�ɤ�¹Ԥ��ƽ������Ƥ���������</para>
 
 	<screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput>
 &prompt.root; <userinput>make all install</userinput></screen>
@@ -2915,9 +2729,8 @@ Script done, &hellip;</screen>
 	  </question>
 
 	  <answer>
-            <para>
-              ������ѹ��������ˤ��Τǡ��ʤ�Ȥ�����ޤ���
-	      ���Ȥ��С�<application>Subversion</application> ��¹Ԥ����Ȥ����Ǹ�˼¹Ԥ����Ȥ�������٤�
+	    <para>������ѹ��������ˤ��Τǡ��ʤ�Ȥ�����ޤ���
+	      ���Ȥ��С�<application>svn</application> ��¹Ԥ����Ȥ���
 	      ���ˤ�����褦�ʥե����뤬��������Ƥ����Ȥ��ޤ���</para>
 
 	    <screen><filename>src/games/cribbage/instr.c</filename>
@@ -2926,29 +2739,22 @@ Script done, &hellip;</screen>
 <filename>src/release/sysinstall/media.c</filename>
 <filename>src/share/mk/bsd.port.mk</filename></screen>
 
-	    <para>
-              ���ΤȤ��ˤϡ�����ƥ����ƥ����Τ�ƹ��ۤ���ɬ�פϤʤ��Ǥ��礦��
-	      Ŭ�ڤʥ��֥ǥ��쥯�ȥ�˰ܤä�
-	      <command>make all install</command> ��Ԥ������ǹ������뤳�Ȥ��Ǥ��ޤ���
-	      ���������⤷���餫���礭���ѹ����Ԥʤ��Ƥ���Ȥ������Ȥ���
-	      <filename>src/lib/libc/stdlib</filename> ���ѹ�����Ƥ�����ˤϡ�
-	      �����ƥ����Τ�ƹ��ۤ��뤫���⤷���Ϥ��Τ�����
-              ���ʤ��Ȥ���Ū�˥�󥯤���Ƥ����� (�ȡ����ʤ����ɲä���
-              ��Ū�˥�󥯤��줿�ץ������) ����ľ��ɬ�פ�����ޤ���</para>
+	    <para>���ΤȤ��ˤϡ�����ƥ����ƥ����Τ�ƹ��ۤ���ɬ�פϤʤ��Ǥ��礦��
+	      ���Τ���ꡢŬ�ڤʥ��֥ǥ��쥯�ȥ�˰ܤä�
+	      <command>make all install</command> ��ԤäƤ���������
+	      �����������Ȥ��� <filename>src/lib/libc/stdlib</filename>
+	      �Τ褦���礭���ѹ����Ԥʤ�줿���ˤϡ�
+	      �����ƥ����Τ�ƹ��ۤ��뤫��
+	      ���ʤ��Ȥ���Ū�˥�󥯤���Ƥ����Τ���ľ��ɬ�פ�����ޤ���</para>
 
-	    <para>��ɤΤȤ������ɤλ����Ǹ��ߤΥ����ƥ�򥢥åץ��졼�ɤ��뤫��
-              ���ʤ������뤳�ȤǤ���
-	      2 ���֤��Ȥ˥����ƥ��ƹ��ۤ������� 2 ���֤��ѹ���������
-              �������⤷��ޤ��󤷡�
-              �ѹ��Τ��ä���ʬ�����ƹ��ۤ�����¸�ط���Τ��᤿���ȹͤ��뤫���Τ�ޤ���
-              <!-- hrs:2000/02/15
-                   What's "every fortnight say"? s/say/day/? -->
-            </para>
+	    <para>��ɤΤȤ�����
+	      �ɤλ����Ǹ��ߤΥ����ƥ�򥢥åץ��졼�ɤ��뤫�Ϥ��ʤ������뤳�ȤǤ���
+	      2 ���֤��Ȥ˥����ƥ��ƹ��ۤ������� 2 ���֤��ѹ��������桼���⤤�ޤ�����
+	      �ѹ��Τ��ä���ʬ�����ƹ��ۤ���
+	      ���٤Ƥΰ�¸�ط���Τ��᤿���ȹͤ���桼���⤤�ޤ���</para>
 
-	    <para>
-              ������󡢤����ϤɤΤ��餤�����٤ǥ��åץ��졼�ɤ���������
-	      ������ &os.stable; �� &os.current; �Τɤ�����ɤ������Ƥ���Τ��ˤ��ޤ���
-            </para>
+	    <para>�����ϤɤΤ��餤�����٤ǥ��åץ��졼�ɤ���������
+	      ������ &os.stable; �� &os.current; �Τɤ�����ɤ������Ƥ���Τ��ˤ��ޤ���</para>
 	  </answer>
 	</qandaentry>
 
@@ -2964,38 +2770,38 @@ Script done, &hellip;</screen>
 	    <para>������̾�ϡ��ɥ����������꤬���뤳�Ȥ򼨤��Ƥ��ޤ���
               �����ƥ�κƹ��ۤϡ��ϡ��ɥ��������Ф�������ѵ׻��Ԥʤ������
               ͭ���ʼ��ʤΰ�Ĥǡ�����˴ط��������꤬�褯��𤵤�ޤ���
-              ��������ʬ�ϡ�����ѥ��餬��̯�ʥ����ʥ�������ꡢ
+	      ��������ʬ�ϡ�
               �ԲIJ�ʰ۾ェλ�Ȥʤ뤳�Ȥ�ȯ������ޤ���</para>
 
-	    <para>�����ˤ�������ˤ���Τ��ɤ����ϡ��ƹ��ۤ�⤦���ټ¹Ԥ���
+	    <para>�����ˤ�������ˤ���Τ��ɤ����ϡ�<application>make</application>
+	      ��⤦���ټ¹Ԥ���
               �ۤʤ��ʳ��ǰ۾ェλ��ȯ�����뤫���Ȥ������Ȥ����ǧ�Ǥ��ޤ���</para>
 
-	    <para>���ξ��ˤϡ��ޥ�������ʤ�򴹤��ơ��ɤ���ʬ�������Τ���
-              Ĵ�٤Ƥߤ뤳�Ȥ��餤�����Ǥ��뤳�ȤϤ���ޤ���</para>
+	    <para>���Υ��顼���б�����ˤϡ��ޥ�������ʤ�򴹤��ơ�
+	      �ɤ���ʬ�������Τ���Ĵ�٤ƤߤƤ���������</para>
 	  </answer>
 	</qandaentry>
 
 	<qandaentry>
 	  <question>
-	    <para>��λ������ <filename>/usr/obj</filename> �������Ƥ�
-	      ���ޤ��ޤ���?</para>
+	    <para>������� <filename class="directory">/usr/obj</filename>
+	      �������Ƥ⤫�ޤ��ޤ���?</para>
 	  </question>
 
 	  <answer>
 	    <para>�����������ʤ�ֺ�����Ƥ⹽��ʤ��פǤ���</para>
 
-	    <para><filename>/usr/obj</filename> �ˤϡ�
+	    <para><filename class="directory">/usr/obj</filename> �ˤϡ�
               ����ѥ�����ʳ����������줿
               ���٤ƤΥ��֥������ȥե����뤬�ޤޤ�Ƥ��ޤ���
               �̾� <command>make buildworld</command> �κǽ���ʳ��Ǥϡ�
               ���Υǥ��쥯�ȥ�������ƿ������Ĥ���ľ���褦�ˤʤäƤ��ޤ���
-              ���ξ��ˤϡ����۽�λ��� <filename>/usr/obj</filename>
+	      ���۽�λ��� <filename class="directory">/usr/obj</filename>
               ����¸���Ƥ����Ƥ⡢���ޤ��̣�Ϥ���ޤ���
-              �������С��礭�ʥǥ��������ڡ�����
-	      (���ߤϤ������� 2&nbsp;GB ����ޤ�) �������뤳�Ȥ��Ǥ��ޤ���</para>
+	      ���������������� 2&nbsp;GB
+	      �Υǥ��������ڡ�����������뤳�Ȥ��Ǥ��ޤ���</para>
 
-	    <para>
-              ���������⤷���ʤ�������Ԥʤ����Ȥ��Ƥ���Τ����򤷤Ƥ���ʤ顢
+	    <para>�ɤ�����򤷤Ƥ���桼���Ǥ���С�
 	      �����ʳ����ά���� <command>make buildworld</command>
 	      ��Ԥʤ����Ȥ��Ǥ��ޤ���
 	      ��������ȡ��ۤȤ�ɤΥ������Ϻƥ���ѥ��뤵��ʤ����ᡢ
@@ -3014,23 +2820,20 @@ Script done, &hellip;</screen>
 	  </question>
 
 	  <answer>
-	    <para>����ϡ����ʤ�������˵��դ����ˡ�
+	    <para>����ϡ����꤬������ޤǤˡ�
               �ɤ�����κ�Ȥ򽪤��Ƥ��뤫�ˤ�ä��Ѥ��ޤ���</para>
 
-	    <para><emphasis>����Ū��</emphasis> (�����Ƥ���ϳμ¤Ǥ��ä��ꤷ��
-	      ��§�ǤϤ���ޤ���)��
-              <command>make buildworld</command> �β����Ǥϡ�
-              ����Ū�ʥġ��� ( &man.gcc.1; �� &man.make.1; �Τ褦�ʤ��)
-	      �䡢�����ƥ�饤�֥��ο��������ԡ�����������ޤ���
-              ���θ�ޤ��������Υġ����饤�֥��ϥ��󥹥ȡ��뤵��Ƥ���
+	    <para>����Ū�� <command>make buildworld</command> �ϡ�
+	      &man.gcc.1; �� &man.make.1; �ޤɤδ���Ū�ʥġ���䡢
+	      �����ƥ�饤�֥��ο��������ԡ���������ޤ���
+	      ���θ塢�����Υġ����饤�֥�꤬���󥹥ȡ��뤵��Ƥ��顢
               ��ʬ���Ȥκƹ��ۤ˻Ȥ�졢�⤦���١����󥹥ȡ��뤵��ޤ���
-	      ���ΤΥ����ƥ� (�����Ǥ� &man.ls.1; �� &man.grep.1; �Ȥ��ä�
-	      ɸ��Ū�ʥ桼���ץ�������ޤߤޤ�) �ϡ�
-              ���ο����������ƥ�ե�������Ѥ��ƺ��ľ����뤳�Ȥˤʤ�ޤ���</para>
+	      &man.ls.1; �� &man.grep.1;
+	      �Ȥ��ä�ɸ��Ū�ʥ桼���ץ�������ޤॷ���ƥ����Τ��� 
+	      ���ο����������ƥ�ե�������Ѥ��ƺ��ľ����ޤ���</para>
 
-	    <para>�⤷���ƹ��ۤ��ǽ��ʳ������äƤ��뤳��
-              �� (��Ͽ���Ƥ��������Ϥ򸫤��ꤹ�뤳�Ȥ�) �狼�äƤ����顢
-              (�������ƶ���Ϳ���뤳�Ȥʤ�) ���Τ褦�ˤ��뤳�Ȥ��Ǥ��ޤ���</para>
+	    <para>�ƹ��ۤκǽ��ʳ��Ǥϡ�
+	      �ޤä��������˼��Τ褦�ˤ��뤳�Ȥ��Ǥ��ޤ���</para>
 
 	    <screen><emphasis>&hellip; fix the problem &hellip;</emphasis>
 &prompt.root; <userinput>cd /usr/src</userinput>
@@ -3048,11 +2851,9 @@ Building everything..
 --------------------------------------------------------------</screen>
 
 	    <para>�� <command>make buildworld</command> �ν��Ϥˤ�����ˤϡ�
-              ��Τ褦�ˤ��Ƥ�ۤȤ�ɰ��ƶ�������뤳�ȤϤ���ޤ���
-	    </para>
+	      ��Τ褦�ˤ��Ƥ�ۤȤ�ɰ��ƶ�������뤳�ȤϤ���ޤ���</para>
 
-	    <para>
-              �⤷���Υ�å��������ʤ��Ȥ����褯ʬ����ʤ��Ȥ������ˤϡ�
+	    <para>�⤷���Υ�å��������ʤ��Ȥ����褯ʬ����ʤ��Ȥ������ˤϡ�
 	      ��������ݤ����������褦�ʤ��Ȥ��ʤ��褦��
               �����ƥ�κƹ��ۤ�ǽ餫����ľ���ޤ��礦��</para>
 	  </answer>
@@ -3070,38 +2871,37 @@ Building everything..
 	      </listitem>
 
 	      <listitem>
-		<para><filename>/usr/src</filename> ��
-		  <filename>/usr/obj</filename> �ǥ��쥯�ȥ��
-                  �ۤʤ�ǥ���������̤Υե����륷���ƥ���֤��Ƥ���������
-		  �ޤ���ǽ�ʤ�С��ۤʤ�ǥ���������ȥ��������³���줿
-                  �ǥ�������ȤäƤ���������</para>
+		<para><filename class="directory">/usr/src</filename> ��
+		  <filename class="directory">/usr/obj</filename>
+		  �򡢰ۤʤ�ǥ���������̤Υե����륷���ƥ���֤��Ƥ���������
+		  �ޤ���ǽ�ʤ�С�
+		  �ۤʤ�ǥ���������ȥ��������³���줿�ǥ�������ȤäƤ���������</para>
 	      </listitem>
 
 	      <listitem>
 		<para>����˹�®������ˤϡ������Υե����륷���ƥ��
-		  &man.ccd.4; (Ϣ��ǥ������ɥ饤��) �ǥХ�����
-		  �Ȥäơ�ʣ���Υǥ���������֤��Ƥ���������</para>
+		  &man.ccd.4; ��Ȥäơ�
+		  ʣ���Υǥ���������֤��Ƥ���������</para>
 	      </listitem>
 
 	      <listitem>
-		<para>�ץ��ե������Ǥκ�����̵�������Ƥ���������
-		  (<filename>/etc/make.conf</filename> ��
-		  <quote>NO_PROFILE=true</quote> �򥻥åȤ��ޤ�)
-		  ���̡����줬ɬ�פˤʤ뤳�ȤϤ���ޤ���</para>
+		<para><filename>/etc/make.conf</filename> ��
+		  <quote>NO_PROFILE=true</quote> �򥻥åȤ��ơ�
+		  �ץ��ե������Ǥκ�����̵�������Ƥ���������</para>
 	      </listitem>
 
 	      <listitem>
 		<para>&man.make.1; ��
-		  <option>-j<replaceable>n</replaceable></option> ����
-		  ��������ꤷ�ơ�ʣ���Υץ�����������˼¹Ԥ����Ƥ�
-		  ��������
-                  ����ϥץ����å���ñ�줫ʣ�����ˤ�餺��
-                  �ɤ����Ʊ�ͤ˲��ä����뤳�Ȥ��Ǥ��ޤ���</para>
+		  <option>-j<replaceable>n</replaceable></option>
+		  ����ꤷ�ơ�ʣ���Υץ�����������˼¹Ԥ����Ƥ���������
+		  ����ϡ�ñ��Υץ����å��Ǥ�ʣ���Υץ����å��Ǥ⡢
+		  Ʊ�ͤ˲��ä����뤳�Ȥ��Ǥ��ޤ���</para>
 	      </listitem>
 
-	      <listitem><para><filename>/usr/src</filename> ����
-                  �ե����륷���ƥ��<option>noatime</option>
-                  ���ץ������դ��ƥޥ���� (�⤷���Ϻƥޥ����) ���Ƥ���������
+	      <listitem>
+		<para><filename class="directory">/usr/src</filename>
+		  �Τ���ե����륷���ƥ��<option>noatime</option>
+		  ���ץ������դ��ƥޥ���Ȥ⤷���Ϻƥޥ���Ȥ��Ƥ���������
                   ����ϡ����Υե����륷���ƥ�ˤ����ơ�
                   �Ǹ�˥����������줿����ν񤭹��ߤ��������ޤ���
 		  �����餯�����ξ���ɬ�פˤʤ뤳�ȤϤʤ��Ǥ��礦��</para>
@@ -3110,21 +2910,19 @@ Building everything..
 
                 <warning>
                   <para>�����ϡ�
-                    <filename>/usr/src</filename> ���Ȥ���Ω�����ե����륷���ƥ��
-                    ���뤳�Ȥ����ꤷ�Ƥ��ޤ���
-                    �⤷�����Ǥʤ��Ȥ��ˤ� (���Ȥ��� <filename>/usr</filename> ��
-                    �����Ǥ�����ˤ�)��
-                    <filename>/usr/src</filename> �ǤϤʤ�
-                    Ŭ�ڤʥޥ���ȥݥ���Ȥ���ꤹ��ɬ�פ�����ޤ���
-                  </para>
+		    <filename class="directory">/usr/src</filename>
+		    ���Ȥ���Ω�����ե����륷���ƥ�Ǥ��뤳�Ȥ����ꤷ�Ƥ��ޤ���
+		    �⤷ <filename class="directory">/usr</filename>
+		    �ΰ����Ǥ�����ˤϡ�
+		    ������Ŭ�ڤʥޥ���ȥݥ���Ȥ���ꤹ���Ƥ���������</para>
                 </warning>
               </listitem>
 
 	      <listitem>
-		<para><filename>/usr/obj</filename> �Τ���ե����륷���ƥ��
-		  <option>async</option> ���ץ�����Ĥ��ƥޥ���� (�⤷����
-		  �ƥޥ����) ���Ƥ�������������ˤ�äơ�
-                  �ǥ������ؤν񤭹��ߤ���Ʊ���ˤʤ�ޤ���
+		<para><filename class="directory">/usr/obj</filename>
+		  �Τ���ե����륷���ƥ��<option>async</option>
+		  ���ץ�����Ĥ��ƥޥ���Ȥ⤷���Ϻƥޥ���Ȥ��Ƥ���������
+		  ����ˤ�äơ��ǥ������ؤν񤭹��ߤ���Ʊ���ˤʤ�ޤ���
                   �Ĥޤꡢ�񤭹���̿��Ϥ����˴�λ����Τ��Ф���
                   �ºݤ˥ǡ������ǥ������˽񤭹��ޤ��Τϡ����ο��ø�ˤʤ�ޤ���
                   ����ˤ�äơ��񤭹��߽����ΰ�粽����ǽ�ˤʤ뤿�ᡢ
@@ -3141,18 +2939,20 @@ Building everything..
                     �Ƶ�ư��˥ե����륷���ƥब������ǽ�ˤʤ��ǽ����
                     ���˹⤯�ʤ�ޤ���</para>
 
-		  <para>�⤷��<filename>/usr/obj</filename> ���Ȥ���Ω����
-		    �ե����륷���ƥ�Ǥ���ʤ�С����������ˤʤ�ޤ���
+		  <para>�⤷��<filename class="directory">>/usr/obj</filename>
+		    �����ե����륷���ƥ�ˤ���ͣ��Υǥ��쥯�ȥ�Ǥ���С�
+		    ���������ˤʤ�ޤ���
                     ��������Ʊ���ե����륷���ƥ�ˡ�¾�ε��Ťʥǡ������֤��Ƥ���Ȥ��ˤϡ�
 		    ���Υ��ץ�����ͭ���ˤ������ˡ�
-                    �Хå����åפ򤭤���ȼ�äƤ����ޤ��礦��</para>
+		    �Хå����åפ򤭤���ȼ�äƤ����ޤ��礦��</para>
 		</warning>
 
 		<screen>&prompt.root; <userinput>mount -u -o async /usr/obj</userinput></screen>
 
 		<warning>
-		  <para>�⤷ <filename>/usr/obj</filename> ���Ȥ�
-                    �ե����륷���ƥ�Ǥʤ����ˤϡ�Ŭ�ڤʥޥ���ȥݥ���Ȥ�ؤ��褦�ˡ�
+		  <para>�⤷ <filename class="directory">/usr/obj</filename>
+		    ���Ȥ��ե����륷���ƥ�Ǥʤ����ˤϡ�
+		    Ŭ�ڤʥޥ���ȥݥ���Ȥ�ؤ��褦�ˡ�
                     ������̾�����֤������Ƥ���������</para>
 		</warning>
 	      </listitem>
@@ -3166,8 +2966,7 @@ Building everything..
           </question>
 
           <answer>
-            <para>��ʬ�δĶ������Υӥ�ɤ�;�פʥ��ߤ��ĤäƤ��ʤ����Ȥ�Ϥä���ȳ�ǧ���Ƥ���������
-	      �ȤƤ��ñ�Ǥ���</para>
+            <para>��ʬ�δĶ������Υӥ�ɤ�;�פʥ��ߤ��ĤäƤ��ʤ����Ȥ�Ϥä���ȳ�ǧ���Ƥ���������</para>
 
             <screen>&prompt.root; <userinput>chflags -R noschg /usr/obj/usr</userinput>
 &prompt.root; <userinput>rm -rf /usr/obj/usr</userinput>
@@ -3183,7 +2982,7 @@ Building everything..
 
             <para>�ޤ����꤬����С����顼�� <command>uname -a</command>
 	      �ν��Ϥ� &a.questions; �����äƤ���������
-	      ��ʬ������ˤĤ��Ƥ���˼��䤵��Ƥ���������褦�Ѱդ��Ƥ�������!</para>
+	      ����ˤĤ��Ƥ���˼��䤵��Ƥ���������褦�Ѱդ��Ƥ�������!</para>
           </answer>
         </qandaentry>
       </qandaset>
@@ -3212,21 +3011,21 @@ Building everything..
       �����ƥफ�鴰���˺������뤳�Ȥ����뤿��Ǥ���
       �����ƥ�Υ��åץǡ��Ȼ��˺����ɬ�פˤʤ�Τϡ�
       �Ť��ե����롢�饤�֥�ꤽ���ƥǥ��쥯�ȥ�Ǥ���
-      �����Υե������������ȡ��������� (����ӥХå����å�����)
-      �ˤ�������ɬ�פ����̤����Ƥ���Ť��ե����뤬��
+      �����Υե�����������뤳�Ȥǡ�
+      �������Τ�Хå����å����Τˤ�������ɬ�פ����̤����Ƥ���Ť��ե����뤬��
       �����ƥ��˻��𤹤뤳�Ȥ��ʤ��ʤ�ޤ���
       �ޤ����Ť��饤�֥��Υ������ƥ�������������꤬����ȡ�
       �饤�֥��򿷤������ƥ����ƥ�����ʾ��֤ˤ���
-      �Ť��饤�֥��μ������饷���ƥब����å��夹�뤳�Ȥ��ɤ��ʤ���Фʤ�ޤ���
+      �Ť��饤�֥��ˤ�ꥷ���ƥब����å��夹�뤳�Ȥ��ɤ��ʤ���Фʤ�ޤ���
       �Ȥ��ʤ��ʤä��ե����롢�ǥ��쥯�ȥꡢ�饤�֥���
       <filename>/usr/src/ObsoleteFiles.inc</filename>
-      �ˤޤȤ���Ƥ��ޤ���������Ǥϡ�
-      ���åץ��졼�ɤβ����Ǥ����Υե��������������ˡ�ˤĤ����������ޤ���</para>
+      �ˤޤȤ���Ƥ��ޤ����ʲ��μ��ˤ�ꡢ
+      ���åץ��졼�ɤβ����Ǥ����Υե���������Ǥ��ޤ���</para>
 
-    <para>�����ƥ�ϡ�<xref linkend="canonical-build"/>
-      ������������ˡ�ǹ��ۤ���Ƥ���Ȳ��ꤷ�ޤ���
-      <command>make <maketarget>installworld</maketarget></command> �ȡ�
-      ���θ�� <command>mergemaster</command> ���ޥ�ɤ�̵���˽���ä��顢
+    <para><xref linkend="canonical-build"/>
+      ������������ˡ�ǥ����ƥ���ۤ��Ƥ���������
+      <command>make <maketarget>installworld</maketarget></command>
+      �ȡ����θ�� <command>mergemaster</command> ��̵���˽���ä��顢
       �ʲ�����ˡ�ǻȤ��ʤ��ʤä��ե������饤�֥����ǧ���Ƥ���������</para>
 
     <screen>&prompt.root; <userinput>cd /usr/src</userinput>
@@ -3242,9 +3041,9 @@ Building everything..
     </tip>
 
     <para>�Ȥ��ʤ��ʤä��ե������������ݡ��ե����뤴�Ȥ˳�ǧ�������ޤ���
-      �ʲ��Τ褦�� make �� <makevar>BATCH_DELETE_OLD_FILES</makevar>
-      �Ķ��ѿ������ꤹ��ȡ�
-      ��ǧ����ά���졢��ưŪ�˥ե����뤬�������ޤ���</para>
+      ��ǧ���ά������ưŪ�˥ե������������ˤϡ�
+      �ʲ��Τ褦�� <makevar>BATCH_DELETE_OLD_FILES</makevar>
+      �����ꤷ�Ƥ���������</para>
 
     <screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen>
 
@@ -3255,6 +3054,7 @@ Building everything..
 
     <warning>
       <title>Warning</title>
+
         <para>�Ȥ��ʤ��ʤä��ե������������ȡ�
 	  ��������ե�����˰�¸���Ƥ������ץꥱ�������ϲ���Ƥ��ޤ��ޤ���
 	  �äˡ��Ť��饤�֥�����������˵��������ޤ���
@@ -3288,8 +3088,7 @@ Building everything..
     <para>���Ĥ��ä� port �򥢥󥤥󥹥ȡ��뤷��
       �ƹ��ۡ��ƥ��󥹥ȡ��뤷�Ƥ���������
       ������� <filename role="package">ports-mgmt/portmaster</filename>
-      �� <filename role="package">ports-mgmt/portupgrade</filename>
-      �桼�ƥ���ƥ��Ǽ�ư���Ǥ��ޤ���
+      �Ǽ�ư���Ǥ��ޤ���
       ���٤Ƥ� ports ���ƹ��ۤ��졢
       �Ť��饤�֥�꤬�ɤ��ˤ�Ȥ��Ƥ��ʤ����Ȥ��ǧ�����顢
       �ʲ��Υ��ޥ�ɤǸŤ��饤�֥��������Ƥ���������</para>
@@ -3313,10 +3112,10 @@ Building everything..
       <secondary>ʣ���Υޥ���˥��󥹥ȡ���</secondary>
     </indexterm>
 
-    <para>Ʊ���������ĥ꡼���ɤ����������ޥ����ʣ�����äƤ���ʤ顢
-      �����Υޥ���˥����������������ɤ��������ƹ��ۤ���Τϻ񸻡�
-      �Ĥޤ�ǥ��������ڡ������ͥåȥ���Ӱ衢������ CPU ���������̵�̻Ȥ��˻פ��ޤ���
-      �ºݤ����̵�̤ǡ������� 1 �ĤΥޥ���˻Ż��ΤۤȤ�ɤ򤵤���
+    <para>ʣ���Υ���ԥ塼����Ʊ���������ĥ꡼���ɤ������Ƥ��ơ�
+      �����Υޥ���˥����������������ɤ���������ƹ��ۤ���Τϡ�
+      �ǥ��������ڡ������ͥåȥ���Ӱ衢������ CPU ���������̵�̻Ȥ��Ǥ���
+      ������ 1 �ĤΥޥ���˻Ż��ΤۤȤ�ɤ򤵤���
       �Ĥ�Υޥ���� NFS ��ͳ�Ǥ����ޥ���Ȥ��롢�Ȥ�����ΤǤ���
       ���Υ��������ǤϤ��Τ�����򳵴Ѥ��ޤ���</para>
 
@@ -3324,7 +3123,7 @@ Building everything..
       <title>����</title>
 
       <para>�ޤ����ˡ�Ʊ���Х��ʥ��ư�������Ȥ���ޥ��󤿤�����ޤ���
-	���Υޥ��󤿤��Τ��Ȥ�<emphasis>�ӥ�ɥ��å�</emphasis>�ȸƤӤޤ��礦��
+	���Υޥ��󤿤��Τ��Ȥ�<emphasis>�ӥ�ɥ��å�</emphasis>�ȸƤӤޤ���
 	���줾��Υޥ���ϥ������५���ͥ����äƤ��뤫�⤷��ޤ��󤬡�
 	Ʊ���桼�����ɥХ��ʥ��ư�������Ȥ����ΤǤ���
 	���Υӥ�ɥ��åȤ��顢
@@ -3333,23 +3132,24 @@ Building everything..
 	����Ū�ˤϡ����Υޥ���� <command>make buildworld</command>
 	�� <command>make buildkernel</command>
 	��¹Ԥ���Τ˽�ʬ�� CPU ����ä�®���ޥ���Ǥ���٤��Ǥ���
-	<emphasis>�ƥ��ȥޥ���</emphasis>�Ȥʤ�٤��ޥ�������Ӥ����Ǥ��礦��
+	<emphasis>�ƥ��ȥޥ���</emphasis>�Ȥʤ�٤��ޥ��������Ǥ���������
 	�������줿���եȥ�������Ȥ����ˤ��Υޥ���ǥƥ��Ȥ���ΤǤ���
 	�ƥ��ȥޥ���Ϥ��ʤ�Ĺ����������Ƥ��Ƥ�
 	�������礦�֤ʥޥ���<emphasis>�Ǥ��ä��ۤ��������Ǥ��礦</emphasis>��
 	�ӥ�ɥޥ���Ǥ⤫�ޤ��ޤ��󤬡��ӥ�ɥޥ���Ǥ���ɬ�פϤ���ޤ���</para>
 
       <para>���Υӥ�ɥ��åȤΥޥ���Ϥ��٤�
-	<filename>/usr/obj</filename> ��
-	<filename>/usr/src</filename>
+	<filename class="directory">/usr/obj</filename> ��
+	<filename class="directory">/usr/src</filename>
 	��Ʊ���ޥ����Ʊ����꤫��ޥ���Ȥ���ɬ�פ�����ޤ���
 	����Ū�ˤϥӥ�ɥޥ���� 2 �Ĥΰ㤦�ɥ饤�־�ˤ���Ȥ褤�ΤǤ�����
 	�ӥ�ɥޥ���� NFS �ޥ���Ȥ���Ƥ��Ƥ⤫�ޤ��ޤ���
 	�ӥ�ɥ��åȼ��Τ�ʣ��������ϡ�
-	<filename>/usr/src</filename> �ϤҤȤĤΥӥ�ɥޥ����ˤ���٤��Ǥ���
+	<filename class="directory">/usr/src</filename>
+	�ϤҤȤĤΥӥ�ɥޥ����ˤ���٤��Ǥ���
 	¾�Υޥ��󤫤�Ϥ���� NFS �ޥ���Ȥ���褦�ˤ��ޤ��礦��</para>
 
-      <para>�Ǹ�˥ӥ�ɥ��åȤ����ƤΥޥ�����
+      <para>�Ǹ�˥ӥ�ɥ��åȤΤ��٤ƤΥޥ�����
 	<filename>/etc/make.conf</filename> ��
 	<filename>/etc/src.conf</filename>
 	���ӥ�ɥޥ���Ȱ��פ��Ƥ��뤳�Ȥ��ǧ���Ƥ���������
@@ -3361,30 +3161,32 @@ Building everything..
 	�ӥ�ɥޥ���ϼ�ʬ���ȤΥ����ͥ뤫���������Υ����ͥ�̾��
 	<makevar>KERNCONF</makevar> �˥ꥹ�ȥ��åפ��Ƥ���������
 	�ƥޥ���Υ����ͥ��ӥ�ɤ���ΤǤ���С�
-	�ӥ�ɥޥ���ϳƥޥ���Υ����ͥ�����ե������
-	<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>
+	�ӥ�ɥޥ���ϳƥޥ���Υ����ͥ�����ե������ <filename
+	class="directory">/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>
 	�˻��äƤ��ʤ���Фʤ�ޤ���</para>
     </sect2>
 
     <sect2 id="small-lan-base-system">
       <title>�١��������ƥ�</title>
 
-      <para>���ơ����������ä��Τǡ��ӥ�ɤ��ޤ��礦��
+      <para>�ӥ�ɥޥ���ˤơ�
 	<xref linkend="make-buildworld"/>
 	�˽񤤤Ƥ���褦�˥����ͥ�ȥ١��������ƥ���ۤ��Ƥ���������
 	�Ǥ⡢�ޤ����󥹥ȡ��뤷�ʤ��Ǥ���������
 	�ӥ�ɤ�����ä��顢�ƥ��ȥޥ���˰ܤꡢ
-	�ӥ�ɤ����Ф���Υ����ͥ�򥤥󥹥ȡ��뤷�Ƥ���������
+	�ӥ�ɤ��������ͥ�򥤥󥹥ȡ��뤷�Ƥ���������
 	�ƥ��ȥޥ��� NFS ��ͳ��
-	<filename>/usr/src</filename> ��
-	<filename>/usr/obj</filename> ��ޥ���Ȥ��Ƥ���ʤ顢
-	���󥰥�桼���ǺƵ�ư�����Ȥ��ͥåȥ����Ȥ���褦�ˤ��ƥޥ���Ȥ���ɬ�פ�����ޤ���
+	<filename class="directory">/usr/src</filename> ��
+	<filename class="directory">/usr/obj</filename>
+	��ޥ���Ȥ��Ƥ���ʤ顢
+	���󥰥�桼���ǺƵ�ư�����Ȥ��˥ͥåȥ����Ȥ���褦�ˤ��ơ�
+	�����Υǥ��쥯�ȥ��ޥ���Ȥ���褦�ˤ��Ƥ���������
 	��äȤ��ñ����ˡ�ϡ�
 	�ޥ���桼���⡼�ɤǵ�ư���ơ�<command>shutdown now</command>
 	��¹Ԥ��ƥ��󥰥�桼���⡼�ɤ˰ܹԤ��뤳�ȤǤ���
 	���������顢�����ͥ�ȥ١��������ƥ�򥤥󥹥ȡ��뤷��
 	���Ĥ⤹��褦��
-	<command>mergemaster</command> ��¹ԤǤ��ޤ���
+	<command>mergemaster</command> ��¹Ԥ��Ƥ���������
 	����ä��顢
 	�ƥ��ȥޥ����Ƶ�ư�����̾�Υޥ���桼��ư����ᤷ�ޤ���</para>
 
@@ -3397,16 +3199,16 @@ Building everything..
 
       <para>ports �ĥ꡼�ˤ�Ʊ�������ǥ����Ȥ��ޤ���
 	�ǽ�˽��פ����ϡ�
-	�ӥ�ɥ��åȤΤ��٤ƤΥޥ����Ʊ���ޥ����
-	<filename>/usr/ports</filename> ��ޥ���Ȥ��뤳�ȤǤ���
-	�����ơ�distfiles ��ͭ���뤿��ˡ�
+	�ӥ�ɥ��åȤΤ��٤ƤΥޥ����Ʊ���ޥ���� <filename
+	  class="directory">/usr/ports</filename> ��ޥ���Ȥ��뤳�ȤǤ���
+	�����ơ�distfiles ��ͭ����褦��
 	<filename>/etc/make.conf</filename> ��Ŭ�ڤ����ꤷ�ޤ���
 	NFS �ޥ���Ȥˤ�äƥޥåפ���� <username>root</username>
 	�桼�������Ǥ��졢<makevar>DISTDIR</makevar>
 	�Ϥ��Υ桼�����񤭹���붦�̤ζ�ͭ�ǥ��쥯�ȥ�����ꤹ��ɬ�פ�����ޤ���
 	�ƥޥ���� <makevar>WRKDIRPREFIX</makevar>
 	��ʬ�Υޥ���Υӥ�ɥǥ��쥯�ȥ�����ꤷ�ʤ���Фʤ�ޤ���
-	�Ǹ�ˡ��ѥå�������ӥ�ɤ������ۤ��褦�Ȥ��Ƥ���ʤ顢
+	�Ǹ�ˡ�packages ��ӥ�ɤ������ۤ���ΤǤ���С�
 	<makevar>DISTDIR</makevar> ��Ʊ���褦��
 	<makevar>PACKAGES</makevar> �ǥ��쥯�ȥ�����ꤷ�Ƥ���������</para>
     </sect2>
diff --git a/ja_JP.eucJP/books/handbook/desktop/chapter.xml b/ja_JP.eucJP/books/handbook/desktop/chapter.xml
index efb8258b30..e453dacc0f 100644
--- a/ja_JP.eucJP/books/handbook/desktop/chapter.xml
+++ b/ja_JP.eucJP/books/handbook/desktop/chapter.xml
@@ -3,7 +3,7 @@
      The FreeBSD Documentation Project
      The FreeBSD Japanese Documentation Project
 
-     Original revision: r41113
+     Original revision: r41335
      $FreeBSD$
 -->
 
diff --git a/ja_JP.eucJP/books/handbook/install/chapter.xml b/ja_JP.eucJP/books/handbook/install/chapter.xml
index 8d6e6bbf79..4a788f70cc 100644
--- a/ja_JP.eucJP/books/handbook/install/chapter.xml
+++ b/ja_JP.eucJP/books/handbook/install/chapter.xml
@@ -3,7 +3,7 @@
      The FreeBSD Documentation Project
      The FreeBSD Japanese Documentation Project
 
-     Original revision: r41166
+     Original revision: r41278
      $FreeBSD$
 -->
 
@@ -4615,7 +4615,7 @@ Please press any key to reboot.</screen>
 	  <para>�̾���Υǥ��쥯�ȥ�ˤϰʲ��Υ��᡼�����֤��Ƥ���ޤ���</para>
 
 	  <table frame="none">
-	    <title>&os; 8.<replaceable>X</replaceable>
+	    <title>&os;
 	      ISO ���᡼����̾��������</title>
 
 	    <tgroup cols="2">
@@ -4670,7 +4670,7 @@ Please press any key to reboot.</screen>
 
 		  <entry>���� CD ���᡼���ˤϡ��ǥ������˼��ޤ����̤Υ����ɥѡ��ƥ���
 		    package ���ޤޤ�Ƥ��ޤ������Υ��᡼���ϡ�
-		    &os;&nbsp;8.<replaceable>X</replaceable>
+		    &os;&nbsp;9.<replaceable>X</replaceable>
 		    �ʹߤǤ����ѤǤ��ޤ���</entry>
 		</row>
 
@@ -4679,15 +4679,7 @@ Please press any key to reboot.</screen>
 
 		  <entry>�ǥ������˼��ޤ����̤Υ����ɥѡ��ƥ���
 		    package ��ޤ�⤦ 1 �Ĥ� CD ���᡼���Ǥ������Υ��᡼���ϡ�
-		    &os;&nbsp;8.<replaceable>X</replaceable>
-		    �ʹߤǤ����ѤǤ��ޤ���</entry>
-		</row>
-
-		<row>
-		  <entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-docs.iso</filename></entry>
-
-		  <entry>&os; �ɥ�����ȡ����Υ��᡼���ϡ�
-		    &os;&nbsp;8.<replaceable>X</replaceable>
+		    &os;&nbsp;9.<replaceable>X</replaceable>
 		    �ʹߤǤ����ѤǤ��ޤ���</entry>
 		</row>
 
diff --git a/ja_JP.eucJP/books/handbook/mirrors/chapter.xml b/ja_JP.eucJP/books/handbook/mirrors/chapter.xml
index 15cd330bcb..513b07aba6 100644
--- a/ja_JP.eucJP/books/handbook/mirrors/chapter.xml
+++ b/ja_JP.eucJP/books/handbook/mirrors/chapter.xml
@@ -3,7 +3,7 @@
      The FreeBSD Documentation Project
      The FreeBSD Japanese Documentation Project
 
-     Original revision: r41189
+     Original revision: r41337
      $FreeBSD$
 -->
 
@@ -1765,6 +1765,15 @@ usr.bin/</programlisting>
 	</listitem>
       </varlistentry>
 
+      <varlistentry>
+	<term>RELENG_9_1</term>
+
+	<listitem>
+	  <para>&os;-9.1 �ѤΥ�꡼���֥������������ƥ�����䡢
+	    ����¾�ο���ʥ������ƥ���ν��������ä����ˤΤ߻Ȥ��ޤ���</para>
+	</listitem>
+      </varlistentry>
+
       <varlistentry>
 	<term>RELENG_9_0</term>
 
@@ -1783,6 +1792,15 @@ usr.bin/</programlisting>
 	</listitem>
       </varlistentry>
 
+      <varlistentry>
+	<term>RELENG_8_4</term>
+
+	<listitem>
+	  <para>&os;-8.4 �ѤΥ�꡼���֥������������ƥ�����䡢
+	    ����¾�ο���ʥ������ƥ���ν��������ä����ˤΤ߻Ȥ��ޤ���</para>
+	</listitem>
+      </varlistentry>
+
       <varlistentry>
 	<term>RELENG_8_3</term>
 
@@ -2121,6 +2139,14 @@ usr.bin/</programlisting>
 	��꡼���˺ݤ������̤ʥ�������Ϳ����뤳�ȤϤ���ޤ���</para>
 
     <variablelist>
+      <varlistentry>
+	<term>RELENG_9_1_0_RELEASE</term>
+
+	<listitem>
+	  <para>&os; 9.1</para>
+	</listitem>
+      </varlistentry>
+
       <varlistentry>
 	<term>RELENG_9_0_0_RELEASE</term>
 
diff --git a/ja_JP.eucJP/books/handbook/ports/chapter.xml b/ja_JP.eucJP/books/handbook/ports/chapter.xml
index 57b707da6d..bbf08f8edf 100644
--- a/ja_JP.eucJP/books/handbook/ports/chapter.xml
+++ b/ja_JP.eucJP/books/handbook/ports/chapter.xml
@@ -3,7 +3,7 @@
      The FreeBSD Documentation Project
      The FreeBSD Japanese Documentation Project
 
-     Original revision: r41119
+     Original revision: r41281
      $FreeBSD$
 -->
 
@@ -983,8 +983,7 @@ Deinstalling ca_root_nss-3.13.5... done</screen>
 	(���ʤ��������������ɲäΥѥå�����ƥʥ󥹤�����)
 	�ȹͤ��Ƥ���桼���ϡ�ľ�� Subversion ��Ȥ��Ȥ褤�Ǥ��礦��
 	<application>CVSup</application> �Υ����ӥ��ϡ�
-	2013 ǯ 2 �� 28 ���ޤǤ��ʳ�Ū���ѻߤ����Τǡ�
-	���� CVSup �����Ѥ�ʤ�뤳�Ȥϡ��侩����ޤ���</para>
+	2013 ǯ 2 �� 28 �����ѻߤ���ޤ�����</para>
     </warning>
 
     <sect2 id="ports-tree">
@@ -1467,8 +1466,9 @@ Deinstalling ca_root_nss-3.13.5... done</screen>
 	  �̤Υ��ƥ���� ports �� distfiles
 	  �ϥ���������ɤ���<emphasis>�ʤ�</emphasis>���Ȥ����դ��Ƥ���������
 	  port ����¸���Ƥ��뤹�٤Ƥ����������ɤ�������С�
-	  <command>make<maketarget>fetch-recursive</maketarget>
-	  <maketarget>fetch</maketarget></command> ��ȤäƤ���������</para>
+	<command>make
+	  <maketarget>fetch-recursive</maketarget></command>
+	  ��ȤäƤ���������</para>
 
 	<note>
 	  <para>�ȥåץǥ��쥯�ȥ�� <command>make</command>
diff --git a/ja_JP.eucJP/books/handbook/x11/chapter.xml b/ja_JP.eucJP/books/handbook/x11/chapter.xml
index 9f77c4009b..a2c61c1c23 100644
--- a/ja_JP.eucJP/books/handbook/x11/chapter.xml
+++ b/ja_JP.eucJP/books/handbook/x11/chapter.xml
@@ -3,7 +3,7 @@
      The FreeBSD Documentation Project
      The FreeBSD Japanese Documentation Project
 
-     Original revision: r41025
+     Original revision: r41343
      $FreeBSD$
 -->
 
@@ -824,8 +824,7 @@ EndSection</programlisting>
       <para>X11 ���դ��Ƥ���ǥե���ȤΥե���Ȥϡ�
 	�̾�Υǥ����ȥåץѥ֥�å��󥰥��ץꥱ�������ˤȤäƤ�����Ū�Ȥϸ����ʤ����٤Τ�ΤǤ���
 	ʸ�����礭������ȥ��㥮���ˤʤ�ץ��ե��å���ʥ�Ȥϸ����ʤ��褦�ʤ�Τˤʤ�ޤ�����
-	<application>&netscape;</application>
-	�Ǥξ����ʥե���Ȥ�Ƭ���������˸����ޤ���
+	�����ʥե���Ȥ�Ƭ���������˸����ޤ���
 	��������������ˤϼ��ι⤤ Type1 (&postscript;)
 	�ե���Ȥ������Ĥ����ꡢ
 	X11 �ǤϤ������ñ�����Ѥ��뤳�Ȥ��Ǥ��ޤ���
@@ -928,9 +927,9 @@ EndSection</programlisting>
       <para>�Ȥ��뤫���⤷���� <filename>xorg.conf</filename>
 	�ե������ <literal>FontPath</literal> �Ԥ��ɲä��ޤ���</para>
 
-      <para>����ǽ����Ǥ���<application>&netscape;</application> ��
-	<application>Gimp</application>,
-	<application>&staroffice;</application>
+      <para>����ǽ����Ǥ���
+	<application>Gimp</application> ��
+	<application>Apache OpenOffice</application>
 	�Ȥ��ä����٤Ƥ� X ���ץꥱ������󤫤�
 	&truetype; �ե���Ȥ�Ȥ����Ȥ��Ǥ��ޤ���
 	(������٤ʥǥ����ץ쥤�Ǹ��륦���֥ڡ�����Υƥ����Ȥߤ�����)
diff --git a/ja_JP.eucJP/htdocs/ports/Makefile b/ja_JP.eucJP/htdocs/ports/Makefile
index b01e8f1b70..bd2efe4606 100644
--- a/ja_JP.eucJP/htdocs/ports/Makefile
+++ b/ja_JP.eucJP/htdocs/ports/Makefile
@@ -27,7 +27,7 @@ ${INDEX}:
 .endif
 
 HOSTNAME!= hostname
-.if ${HOSTNAME} == "hub.freebsd.org" || ${HOSTNAME} == "freefall.freebsd.org" || ${HOSTNAME} == "www.freebsd.org"
+.if ${HOSTNAME} == "hub.freebsd.org" || ${HOSTNAME} == "freefall.freebsd.org" || ${HOSTNAME} == "www.freebsd.org" || ${HOSTNAME} == "build-web.stream.FreeBSD.org"
 CLUSTER_MACHINE=	YES
 .endif
 
diff --git a/ja_JP.eucJP/htdocs/projects/newbies.xml b/ja_JP.eucJP/htdocs/projects/newbies.xml
index 37f3579c73..49ae3bf1ba 100644
--- a/ja_JP.eucJP/htdocs/projects/newbies.xml
+++ b/ja_JP.eucJP/htdocs/projects/newbies.xml
@@ -6,7 +6,7 @@
 <!ENTITY url.books "&enbase;/doc/ja_JP.eucJP/books">
 ]>
 <!-- The FreeBSD Japanese Documentation Project -->
-<!-- Original revision: r40761 -->
+<!-- Original revision: r41092 -->
 
 <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
@@ -94,17 +94,6 @@
           <a href="http://www.awfulhak.org/ppp.html">ppp �ڡ���</a>
           �عԤ��Τ��褤�Ǥ��礦��</p></li>
 
-      <li><p>Greg Lehey �ˤ��
-          <a name="cfbsd" href="http://www.lemis.com/grog/Documentation/CFBSD/">
-	  The Complete &os;</a> �� O'Reilly
-	  ������Ǥ���Ƥ��ޤ���
-	  �����ܤϺǾ��¤� UNIX �˴ؤ���и�������Ȥ��ơ�
-	  &os; �Υ��󥹥ȡ��뤫�����ꡢ
-	  ���Ѥ��뤿��˽鿴�Ԥ��Τꤿ���Ȼפ����٤ƤΤ��Ȥ���ޤǤ�
-	  ���ʳ��ˤĤ��ơ����ʤ����������Ƥ��ޤ���
-	  �����ܤ��ɤ�С��ʤˤ�Ԥʤ��Τ����ʤ������Ԥʤ��Τ��Ȥ������Ȥ�
-	  ����Ǥ��ޤ���</p></li>
-
       <li><p><a href="&url.books;/handbook/index.html">&os; �ϥ�ɥ֥å�</a>
 	  �� <a href="&url.books;/faq/index.html">�褯������������ (FAQ)</a>
 	  �� &os; �˴ؤ����濴Ū��ʸ��Ǥ���
@@ -126,9 +115,13 @@
       <li><p>&os; �˴ؤ����ʥ˥塼�����롼�פ�
 	  <a href="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</a>
 	  �Ǥ���
-	  �ޤ���
-	  <a href="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</a>
-	  �ˤ��ܤ��̤��Ƥ����������褤���⤷��ޤ���</p></li>
+	  UNIX �˴ؤ������ϥ˥塼�����롼��
+	  <a href="news:comp.unix.questions">comp.unix.questions</a>
+	  �ǵ�������Ƥ��ޤ���
+	  ����ȴ�Ϣ����
+	  <a href="ftp://rtfm.mit.edu/pub/usenet/news.answers/unix-faq/faq/">FAQ</a>
+	  �Υ��ԡ��� RMIT �� FTP �����Ȥ������ꤹ�뤳�Ȥ��ǽ�Ǥ���
+	  �鿴�ԤϤϤ������ 1 �Ϥ��� 2 �Ϥˤ�äȤⶽ̣����ĤǤ��礦��</p></li>
 
       <li><p><a href="&cgibase;/man.cgi">����饤��ޥ˥奢��</a>
 	  (<a href="http://www.jp.FreeBSD.org/man-jp/search.html">���ܸ���</a>)
@@ -183,14 +176,6 @@
 	  ��ʬ������Ǥ�����դǽ񤤤Ƥ����Τ����֤Ȥ褤�Ǥ��礦��
 	  �����ˤ�äȹ����ϰϤˤĤ��ƽ񤤤Ƥ����ܤ��ɤ߿ʤߤ����ʤ뤫�⤷��ޤ��󤬡�</p></li>
 
-      <li><p>�鿴�Ԥ����Ф���̾����󤲤��ܤΰ�Ĥˡ�Addison-Wesley
-	  ������Ǥ���Ƥ��롢Paul W. Abrahams �� Bruce R. Larson �ˤ��
-	  <a name="ufti"><em>UNIX for the Impatient</em></a>
-	  �Ȥ�����Τ�����ޤ���
-	  �����ܤ� UNIX �γؽ��񡢻��ͽ�Ǥ��ꡢ
-	  UNIX �γ�ǰ�ˤĤ��Ƥ������⤢�ꡢ����� X Window System
-	  ��Ȥ��Τ������ʾϤ�ޤޤ�Ƥ��ޤ���</p></li>
-
       <li><p>�⤦�ҤȤ�ͭ̾�ʤΤ� Jerry Peek��Tim O'Reilly ��
 	  Mike Loukides �ˤ�� <em>UNIX Power Tools</em> �Ȥ����ܤǡ�
 	  ����� O'Reilly and Associates ������Ǥ���Ƥ��ޤ���
@@ -217,29 +202,11 @@
 	  ���٤Υߥ顼�����Ȥ��������줿�ꡢ
 	  ��ʬ�Υ����ƥ�˥��󥹥ȡ��뤷���ꤹ�뤳�Ȥ��Ǥ��ޤ���</p></li>
 
-      <li><p>UNIX �˴ؤ������ϥ˥塼�����롼��
-	  <a href="news:comp.unix.questions">comp.unix.questions</a>
-	  �ǵ�������Ƥ��ޤ���
-	  ����ȴ�Ϣ����
-	  <a href="ftp://rtfm.mit.edu/pub/usenet/news.answers/unix-faq/faq/">FAQ</a>
-	  �Υ��ԡ��� RMIT �� FTP �����Ȥ������ꤹ�뤳�Ȥ��ǽ�Ǥ���
-	  �鿴�ԤϤϤ������ 1 �Ϥ��� 2 �Ϥˤ�äȤⶽ̣����ĤǤ��礦��</p></li>
-
-      <li><p>�⤦�ҤȤĤζ�̣�����˥塼�����롼�פ�
-	  <a href="news:comp.unix.user-friendly">comp.unix.user-friendly</a>
-	  �Ǥ���
-	  ���Υ˥塼�����롼�פϥ桼���������ˤĤ��Ƶ������뤿��Τ�ΤǤ�����
-	  �鿴�ԤˤȤä����Ω�ľ�����Ƥ���뤳�Ȥ�����ޤ���
-	  ����
-	  <a href="ftp://rtfm.mit.edu/pub/usenet/news.answers/unix-faq/user-friendly">FAQ</a>
-	  �� FTP �Ǥ������ǽ�Ǥ���</p></li>
-
       <li><p>¾�ˤ⤿������Υ����֥����Ȥ�
 	  UNIX �ˤĤ��ƤΥ��塼�ȥꥢ��仲�ͤˤǤ���ʸ�񤬤���ޤ���
-	  �����򸫤Ʋ��Τ˺�Ŭ�ʽ�ȯ���ΤҤȤĤ�
-	  <a href="http://www.yahoo.com/Computers_and_Internet/Software/Operating_Systems/Unix/">Yahoo!</a>
-	  �� UNIX �ڡ����Ǥ���</p></li>
-
+	  �����򸫤Ʋ��Τ˺�Ŭ�ʽ�ȯ���ΤҤȤĤϡ����������󥸥�� <a
+	  href="https://google.com">Google</a> �Ǥ���</p>
+      </li>
     </ul>
 
     <h2><a name="xwin">X Window System �ˤĤ��Ƴؤ�</a></h2>
@@ -252,15 +219,6 @@
       �鿴�Ԥ����򤹤�ˤϾ����񤷤��Ȥ������Ȥ˵����դ��Ʋ�������</p>
 
     <ul>
-    <li><p>X Window System �Υ��󥹥ȡ�������ꡢ
-      ���ѤˤĤ��Ƥδ���Ū�ʾ���ˤĤ��Ƥϡ�
-      �ʲ��� 3 �����ܤ���˽鿴�ԥ�٥�ε��Ҥ�����ޤ���
-      &os; �ϥ�ɥ֥å���
-      <a href="&enbase;/doc/ja_JP.eucJP/books/handbook/x11.html">
-      X Window System</a> �ξϡ�
-      <a href="#cfbsd">The Complete &os;</a>,
-      <a href="#ufti">UNIX for the Impatient</a>��</p></li>
-
     <li><p>X �򹥤��ʤ褦��ư����뤳�Ȥ���ǽ�ˤʤ����ˡ�
       ������ɥ��ޥ͡����������ɬ�פ�����Ǥ��礦��
       <a href="http://xwinman.org/">Window Managers for X</a>
diff --git a/ja_JP.eucJP/htdocs/releases/index.xml b/ja_JP.eucJP/htdocs/releases/index.xml
index 98c6fc3fc5..8da66d89fd 100644
--- a/ja_JP.eucJP/htdocs/releases/index.xml
+++ b/ja_JP.eucJP/htdocs/releases/index.xml
@@ -107,7 +107,7 @@
 	  <a href="8.2R/announce.html">���ʥ���</a>:
 	  <a href="&enbase;/releases/8.2R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/8.2R/hardware.html">�ϡ��ɥ������Ρ���</a>:
-	  <a href="&enbase;/releases/8.2R/readme.html">README</a>
+	  <a href="&enbase;/releases/8.2R/readme.html">README</a>:
 	  <a href="&enbase;/releases/8.2R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -117,7 +117,7 @@
 	  <a href="&enbase;/releases/8.1R/announce.html">���ʥ���</a>:
 	  <a href="&enbase;/releases/8.1R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/8.1R/hardware.html">�ϡ��ɥ������Ρ���</a>:
-	  <a href="&enbase;/releases/8.1R/readme.html">README</a>
+	  <a href="&enbase;/releases/8.1R/readme.html">README</a>:
 	  <a href="&enbase;/releases/8.1R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -129,7 +129,7 @@
 	  <a href="&enbase;/releases/8.0R/announce.html">���ʥ���</a>:
 	  <a href="&enbase;/releases/8.0R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/8.0R/hardware.html">�ϡ��ɥ������Ρ���</a>:
-	  <a href="&enbase;/releases/8.0R/readme.html">README</a>
+	  <a href="&enbase;/releases/8.0R/readme.html">README</a>:
 	  <a href="&enbase;/releases/8.0R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -139,7 +139,7 @@
 	  <a href="&enbase;/releases/7.4R/announce.html">���ʥ���</a>:
 	  <a href="&enbase;/releases/7.4R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/7.4R/hardware.html">�ϡ��ɥ������Ρ���</a>:
-	  <a href="&enbase;/releases/7.4R/readme.html">README</a>
+	  <a href="&enbase;/releases/7.4R/readme.html">README</a>:
 	  <a href="&enbase;/releases/7.4R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -149,7 +149,7 @@
 	  <a href="&enbase;/releases/7.3R/announce.html">���ʥ���</a>:
 	  <a href="&enbase;/releases/7.3R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/7.3R/hardware.html">�ϡ��ɥ������Ρ���</a>:
-	  <a href="&enbase;/releases/7.3R/readme.html">README</a>
+	  <a href="&enbase;/releases/7.3R/readme.html">README</a>:
 	  <a href="&enbase;/releases/7.3R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -159,7 +159,7 @@
 	  <a href="&enbase;/releases/7.2R/announce.html">���ʥ���</a>:
 	  <a href="&enbase;/releases/7.2R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/7.2R/hardware.html">�ϡ��ɥ������Ρ���</a>:
-	  <a href="&enbase;/releases/7.2R/readme.html">README</a>
+	  <a href="&enbase;/releases/7.2R/readme.html">README</a>:
 	  <a href="&enbase;/releases/7.2R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -169,7 +169,7 @@
 	  <a href="&enbase;/releases/7.1R/announce.html">���ʥ���</a>:
 	  <a href="&enbase;/releases/7.1R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/7.1R/hardware.html">�ϡ��ɥ������Ρ���</a>:
-	  <a href="&enbase;/releases/7.1R/readme.html">README</a>
+	  <a href="&enbase;/releases/7.1R/readme.html">README</a>:
 	  <a href="&enbase;/releases/7.1R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -179,7 +179,7 @@
 	  <a href="&enbase;/releases/7.0R/announce.html">���ʥ���</a>:
 	  <a href="&enbase;/releases/7.0R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/7.0R/hardware.html">�ϡ��ɥ������Ρ���</a>:
-	  <a href="&enbase;/releases/7.0R/readme.html">README</a>
+	  <a href="&enbase;/releases/7.0R/readme.html">README</a>:
 	  <a href="&enbase;/releases/7.0R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -190,7 +190,7 @@
 	  <a href="&enbase;/releases/6.4R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/6.4R/hardware.html">�ϡ��ɥ������Ρ���</a>:
 	  <a href="&enbase;/releases/6.4R/installation.html">���󥹥ȡ��륬����</a>:
-	  <a href="&enbase;/releases/6.4R/readme.html">README</a>
+	  <a href="&enbase;/releases/6.4R/readme.html">README</a>:
 	  <a href="&enbase;/releases/6.4R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -201,7 +201,7 @@
 	  <a href="&enbase;/releases/6.3R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/6.3R/hardware.html">�ϡ��ɥ������Ρ���</a>:
 	  <a href="&enbase;/releases/6.3R/installation.html">���󥹥ȡ��륬����</a>:
-	  <a href="&enbase;/releases/6.3R/readme.html">README</a>
+	  <a href="&enbase;/releases/6.3R/readme.html">README</a>:
 	  <a href="&enbase;/releases/6.3R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -212,7 +212,7 @@
 	  <a href="&enbase;/releases/6.2R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/6.2R/hardware.html">�ϡ��ɥ������Ρ���</a>:
 	  <a href="&enbase;/releases/6.2R/installation.html">���󥹥ȡ��륬����</a>:
-	  <a href="&enbase;/releases/6.2R/readme.html">README</a>
+	  <a href="&enbase;/releases/6.2R/readme.html">README</a>:
 	  <a href="&enbase;/releases/6.2R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -223,7 +223,7 @@
 	  <a href="&enbase;/releases/6.1R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/6.1R/hardware.html">�ϡ��ɥ������Ρ���</a>:
 	  <a href="&enbase;/releases/6.1R/installation.html">���󥹥ȡ��륬����</a>:
-	  <a href="&enbase;/releases/6.1R/readme.html">README</a>
+	  <a href="&enbase;/releases/6.1R/readme.html">README</a>:
 	  <a href="&enbase;/releases/6.1R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
@@ -234,7 +234,7 @@
 	  <a href="&enbase;/releases/6.0R/relnotes.html">��꡼���Ρ���</a>:
 	  <a href="&enbase;/releases/6.0R/hardware.html">�ϡ��ɥ������Ρ���</a>:
 	  <a href="&enbase;/releases/6.0R/installation.html">���󥹥ȡ��륬����</a>:
-	  <a href="&enbase;/releases/6.0R/readme.html">README</a>
+	  <a href="&enbase;/releases/6.0R/readme.html">README</a>:
 	  <a href="&enbase;/releases/6.0R/errata.html">Errata (����ɽ)</a>
 	</em>
       </li>
diff --git a/ja_JP.eucJP/htdocs/security/security.xml b/ja_JP.eucJP/htdocs/security/security.xml
index 86099685cc..5182804728 100644
--- a/ja_JP.eucJP/htdocs/security/security.xml
+++ b/ja_JP.eucJP/htdocs/security/security.xml
@@ -6,7 +6,7 @@
 ]>
 <!-- $FreeBSD$ -->
 <!-- The FreeBSD Japanese Documentation Project -->
-<!-- Original revision: r41257 -->
+<!-- Original revision: r41397 -->
 
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
@@ -90,10 +90,20 @@
     ������줿�᡼��ϡ����߰ʲ��Υ᡼�륢�ɥ쥹���Ϥ��褦�ˤʤäƤ��ޤ���</p>
 
   <table>
+    <tr valign="top">
+      <td>&a.des; <a
+        href="mailto:des@FreeBSD.org">&lt;des@FreeBSD.org&gt;</a></td>
+      <td>�������ƥ����ե���</td>
+    </tr>
+    <tr valign="top">
+      <td>&a.delphij; <a
+        href="mailto:delphij@FreeBSD.org">&lt;delphij@FreeBSD.org&gt;</a></td>
+      <td>�������ƥ����ե����亴</td>
+    </tr>
     <tr valign="top">
       <td>&a.simon; <a
         href="mailto:simon@FreeBSD.org">&lt;simon@FreeBSD.org&gt;</a></td>
-      <td>�������ƥ����ե���</td>
+      <td>̾���������ƥ����ե���</td>
     </tr>
     <tr valign="top">
       <td>&a.cperciva; <a
@@ -106,11 +116,6 @@
       <td>��꡼�����󥸥˥���󥰾ij���<br/>
 	  TrustedBSD �ץ��������Ⱦij��������ƥॻ�����ƥ��������ƥ�����������</td>
     </tr>
-    <tr valign="top">
-      <td>&a.delphij; <a
-        href="mailto:delphij@FreeBSD.org">&lt;delphij@FreeBSD.org&gt;</a></td>
-      <td>�������ƥ����ե����亴</td>
-    </tr>
   </table>
 
   <p>�ޤ����������ƥ����ե��������Ф������ߥå������롼�פǤ���
@@ -272,13 +277,6 @@
       <td>�ʤ�</td>
       <td>�ǽ���꡼���� 2 ǯ</td>
     </tr>
-    <tr>
-      <td>RELENG_9_0</td>
-      <td>9.0-RELEASE</td>
-      <td>Normal</td>
-      <td>2012 ǯ 1 �� 10 ��</td>
-      <td>2013 ǯ 3 �� 31 ��</td>
-    </tr>
     <tr>
       <td>RELENG_9_1</td>
       <td>9.1-RELEASE</td>
@@ -474,6 +472,13 @@
       <td>2011 ǯ 2 �� 24 ��</td>
       <td>2012 ǯ 7 �� 31 ��</td>
     </tr>
+    <tr>
+      <td>RELENG_9_0</td>
+      <td>9.0-RELEASE</td>
+      <td>Normal</td>
+      <td>2012 ǯ 1 �� 10 ��</td>
+      <td>2013 ǯ 3 �� 31 ��</td>
+    </tr>
   </table>
 
 </body>
diff --git a/ja_JP.eucJP/htdocs/where.xml b/ja_JP.eucJP/htdocs/where.xml
index 7ddd956743..145d0c5f0e 100644
--- a/ja_JP.eucJP/htdocs/where.xml
+++ b/ja_JP.eucJP/htdocs/where.xml
@@ -5,7 +5,7 @@
 <!ENTITY url.rel "ftp://ftp.FreeBSD.org/pub/FreeBSD/releases">
 ]>
 <!-- The FreeBSD Japanese Documentation Project -->
-<!-- Original revision: r41269 -->
+<!-- Original revision: r41400 -->
 
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
@@ -58,7 +58,7 @@
 	<tr style="text-align: center;">
 	  <td colspan="2">�С������ȥץ�åȥե�����</td>
 	  <td>���۸�</td>
-	  <td title="ISO9660 CD image"><a href="&enbase;/doc/ja_JP.eucJP/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
+	  <td title="ISO9660 CD image"><a href="&enbase;/doc/ja_JP.eucJP/books/handbook/install-diff-media.html#install-cdrom">ISO</a></td>
 	  <td>��꡼��<br/>�Ρ���</td>
 	  <td>�ϡ��ɥ�����<br/>�Ρ���</td>
 	  <td>���󥹥ȡ���<br/>������</td>
diff --git a/ja_JP.eucJP/share/xml/news.xml b/ja_JP.eucJP/share/xml/news.xml
index 720a402ca1..3477f5efc4 100644
--- a/ja_JP.eucJP/share/xml/news.xml
+++ b/ja_JP.eucJP/share/xml/news.xml
@@ -20,7 +20,7 @@
      the contents of <title> will be preferred over <p>.
 
      $FreeBSD$
-     Original revision: r41225
+     Original revision: r41399
 -->
 <news>
     <cvs:keyword xmlns:cvs="http://www.FreeBSD.org/XML/CVS">
@@ -30,9 +30,72 @@
   <year>
     <name>2013</name>
 
+    <month>
+      <name>4</name>
+
+      <day>
+	<name>10</name>
+
+	<event>
+	  <title>&os;&nbsp;8.4-RC1 ����</title>
+
+	  <p>&os;-8.4 ��꡼����������κǽ�Υ�꡼�����䤬��������ޤ�����
+	    amd64, i386 ����� pc98 �������ƥ������ ISO ���᡼������<a
+	      href="&url.doc.base;/books/handbook/mirrors-ftp.html">&os;
+	    �ߥ顼������</a> �� <a
+	      href="&lists.stable;/2013-April/073070.html">����</a>
+	    ����Ƥ��ޤ���</p>
+	</event>
+      </day>
+
+      <day>
+	<name>3</name>
+
+	<event>
+	  <p>���ߥåȸ��¤γ���: <a
+	      href="mailto:antoine@FreeBSD.org">Antoine Brodin</a>
+	    (src, ports)</p>
+	</event>
+      </day>
+
+      <day>
+	<name>1</name>
+
+	<event>
+          <p>�����ߥå���Ǥ:
+	    <a href="mailto:wg@FreeBSD.org">William Grzybowski</a> (ports)</p>
+	</event>
+      </day>
+    </month>
+
     <month>
       <name>3</name>
 
+      <day>
+	<name>27</name>
+
+	<event>
+	  <p>���ߥåȸ����ϰϤγ���:
+	    <a href="mailto:tijl@FreeBSD.org">Tijl Coosemans</a>
+	    (src, ports)</p>
+	</event>
+      </day>
+
+      <day>
+	<name>22</name>
+
+	<event>
+	  <title>&os;&nbsp;8.4-BETA1 ����</title>
+
+	  <p>&os;-8.4 ��꡼����������κǽ�Υƥ��ȥӥ�ɤ���������ޤ�����
+	    amd64, i386 ����� pc98 �������ƥ������ ISO ���᡼������<a
+	      href="&url.doc.base;/books/handbook/mirrors-ftp.html">&os;
+	    �ߥ顼������</a> �� <a
+	      href="&lists.stable;/2013-March/072913.html">����</a>
+	    ����Ƥ��ޤ���</p>
+	</event>
+      </day>
+
       <day>
 	<name>14</name>
 
diff --git a/ja_JP.eucJP/share/xml/release.l10n.ent b/ja_JP.eucJP/share/xml/release.l10n.ent
index 5e44d49c9b..b43adee330 100644
--- a/ja_JP.eucJP/share/xml/release.l10n.ent
+++ b/ja_JP.eucJP/share/xml/release.l10n.ent
@@ -2,7 +2,7 @@
 
 <!--
      $FreeBSD$
-     Original revision: r39919
+     Original revision: r41400
  -->
 
 <![%beta2.testing;[
@@ -12,7 +12,7 @@
         <tr style="text-align: center;">
           <td colspan="2">�С������ȥץ�åȥե�����</td>
           <td>���۸�</td>
-          <td title="ISO9660 CD image"><a href="&enbase;/doc/ja_JP.eucJP/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
+          <td title="ISO9660 CD image"><a href="&enbase;/doc/ja_JP.eucJP/books/handbook/install-diff-media.html#install-cdrom">ISO</a></td>
           <td>TODO List</td>
         </tr>
       </thead>
@@ -28,7 +28,7 @@
         </tr>
         <tr>
           <td></td>
-          <td>amd64</td>
+          <td>amd64<br/>(x86-64, x64)</td>
           <td><a href="&url.rel;/amd64/amd64/&betarel2.current;-&betarel2.vers;">[���۸�]</a></td>
           <td><a href="&url.rel;/amd64/amd64/ISO-IMAGES/&betarel2.current;/">[ISO]</a></td>
         </tr>
@@ -85,40 +85,48 @@
         <tr style="text-align: center;">
           <td colspan="2">�С������ȥץ�åȥե�����</td>
           <td>���۸�</td>
-          <td title="ISO9660 CD image"><a href="&enbase;/doc/ja_JP.eucJP/books/handbook/install-diff-media.html#INSTALL-CDROM">ISO</a></td>
-          <td>���ơ������ڡ���</td>
+          <td title="ISO9660 CD image"><a href="&enbase;/doc/ja_JP.eucJP/books/handbook/install-diff-media.html#install-cdrom">ISO</a></td>
+	  <!--<td>���ơ������ڡ���</td>-->
         </tr>
       </thead>
       <tbody>
         <tr>
           <td colspan="2">FreeBSD &betarel.current;-&betarel.vers;</td>
           <td colspan="2"></td>
-          <td rowspan="7"><a href="http://wiki.freebsd.org/Releng/&betarel.current;TODO">[View]</a></td>
+	  <!--<td rowspan="7"><a href="http://wiki.freebsd.org/Releng/&betarel.current;TODO">[View]</a></td>-->
         </tr>
         <tr>
           <td></td>
-          <td>amd64</td>
-          <td><a href="&url.rel;/amd64/amd64/&betarel.current;-&betarel.vers;">[���۸�]</a></td>
-          <td><a href="&url.rel;/amd64/amd64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td>amd64<br/>(x86-64, x64)</td>
+          <td><a href="&url.rel;/amd64/&betarel.current;-&betarel.vers;">[���۸�]</a></td>
+          <td><a href="&url.rel;/amd64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
         <tr>
           <td></td>
           <td>i386</td>
-          <td><a href="&url.rel;/i386/i386/&betarel.current;-&betarel.vers;">[���۸�]</a></td>
-          <td><a href="&url.rel;/i386/i386/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td><a href="&url.rel;/i386/&betarel.current;-&betarel.vers;">[���۸�]</a></td>
+          <td><a href="&url.rel;/i386/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
+        <tr>
+          <td></td>
+          <td>pc98</td>
+          <td><a href="&url.rel;/pc98/&betarel.current;-&betarel.vers;">[���۸�]</a></td>
+          <td><a href="&url.rel;/pc98/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+        </tr>
+	<!--
         <tr>
           <td></td>
           <td>sparc64</td>
-          <td><a href="&url.rel;/sparc64/sparc64/&betarel.current;-&betarel.vers;">[���۸�]</a></td>
-          <td><a href="&url.rel;/sparc64/sparc64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td><a href="&url.rel;/sparc64/&betarel.current;-&betarel.vers;">[���۸�]</a></td>
+          <td><a href="&url.rel;/sparc64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
         <tr>
           <td></td>
           <td>powerpc64</td>
-          <td><a href="&url.rel;/powerpc/powerpc64/&betarel.current;-&betarel.vers;">[���۸�]</a></td>
-          <td><a href="&url.rel;/powerpc/powerpc64/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
+          <td><a href="&url.rel;/powerpc/&betarel.current;-&betarel.vers;">[���۸�]</a></td>
+          <td><a href="&url.rel;/powerpc/ISO-IMAGES/&betarel.current;/">[ISO]</a></td>
         </tr>
+	-->
       </tbody>
     </table>
 
@@ -126,4 +134,5 @@
   </div>
 '>
 ]]>
+
 <!ENTITY beta.desc ''>
diff --git a/nl_NL.ISO8859-1/htdocs/about.xml b/nl_NL.ISO8859-1/htdocs/about.xml
index 4f17b84459..0906403c05 100644
--- a/nl_NL.ISO8859-1/htdocs/about.xml
+++ b/nl_NL.ISO8859-1/htdocs/about.xml
@@ -6,7 +6,7 @@
 <!--
      Vertaald door: Rene Ladan
      %SOURCE%	en_US.ISO8859-1/htdocs/about.xml
-     %SRCID%	40760
+     %SRCID%	41251
  -->
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
@@ -19,8 +19,8 @@
 
   <h2>Wat is &os;?</h2>
 
-  <p>&os; is een geavanceerd besturingssysteem voor x86-compatibele
-    (inclusief Pentium&reg; en Athlon&trade;), amd64-compatibele
+  <p>&os; is een geavanceerd besturingssysteem voor x86-compatibele (inclusief
+    Pentium&reg; en Athlon&trade;), amd64-, x86-64-, en x64-compatibele
     (inclusief Opteron&trade;, Athlon&trade;64, en EM64T), ARM, IA-64,
     PowerPC, PC-98 en UltraSPARC&reg; architecturen.  Het is afgeleid
     van BSD, de versie van &unix; ontwikkeld op de University of California,
diff --git a/nl_NL.ISO8859-1/htdocs/administration.xml b/nl_NL.ISO8859-1/htdocs/administration.xml
index a12df9fe3b..39e11300b1 100644
--- a/nl_NL.ISO8859-1/htdocs/administration.xml
+++ b/nl_NL.ISO8859-1/htdocs/administration.xml
@@ -3,10 +3,13 @@
 "http://www.FreeBSD.org/XML/doc/share/xml/xhtml10-freebsd.dtd" [
 <!ENTITY title "&os; Project Regelgeving en Beheer">
 ]>
+<!-- NOOT: Als er een alias dat vermeld is op deze pagina wordt gewijzigd in
+	   /etc/aliases op de mailserver van het FreeBSD Project, dan moet
+	   deze pagina worden bijgewerkt. -->
 <!--
      Vertaald door: Rene Ladan
      %SOURCE%	en_US.ISO8859-1/htdocs/administration.xml
-     %SRCID%	41185
+     %SRCID%	41260
 -->
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
@@ -232,10 +235,9 @@
 
   <ul>
     <li>&a.benl; &lt;<a href="mailto:benl@FreeBSD.org">benl@FreeBSD.org</a>&gt;</li>
-    <li>&a.bz; &lt;<a href="mailto:bz@FreeBSD.org">bz@FreeBSD.org</a>&gt;</li>
-    <li>&a.cperciva; &lt;<a href="mailto:cperciva@FreeBSD.org">cperciva@FreeBSD.org</a>&gt;</li>
+    <li>&a.cperciva; &lt;<a href="mailto:cperciva@FreeBSD.org">cperciva@FreeBSD.org</a>&gt; (Emeritus Officier)</li>
     <li>&a.csjp; &lt;<a href="mailto:csjp@FreeBSD.org">csjp@FreeBSD.org</a>&gt;</li>
-    <li>&a.delphij; &lt;<a href="mailto:delphij@FreeBSD.org">delphij@FreeBSD.org</a>&gt;</li>
+    <li>&a.delphij; &lt;<a href="mailto:delphij@FreeBSD.org">delphij@FreeBSD.org</a>&gt; (Hulpofficier)</li>
     <li>&a.des; &lt;<a href="mailto:des@FreeBSD.org">des@FreeBSD.org</a>&gt;</li>
     <li>&a.gavin; &lt;<a href="mailto:gavin@FreeBSD.org">gavin@FreeBSD.org</a>&gt;</li>
     <li>&a.jonathan; &lt;<a href="mailto:jonathan@FreeBSD.org">jonathan@FreeBSD.org</a>&gt;</li>
@@ -245,6 +247,7 @@
     <li>&a.simon; &lt;<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>&gt;
       (Officier)</li>
     <li>&a.stas; &lt;<a href="mailto:stas@FreeBSD.org">stas@FreeBSD.org</a>&gt;</li>
+    <li>&a.trasz; &lt;<a href="mailto:trasz@FreeBSD.org">trasz@FreeBSD.org</a>&gt;</li>
   </ul>
 
   <h3><a name="t-vendor">Verkopersrelaties</a>
@@ -315,9 +318,7 @@
     entiteit.</p>
 
   <ul>
-    <li>&a.markm; &lt;<a href="mailto:markm@FreeBSD.org">markm@FreeBSD.org</a>&gt;</li>
     <li>&a.simon; &lt;<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>&gt;</li>
-    <li>&a.kensmith; &lt;<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>&gt;</li>
     <li>&a.dhw; &lt;<a href="mailto:dhw@FreeBSD.org">dhw@FreeBSD.org</a>&gt;</li>
   </ul>
 
@@ -329,7 +330,6 @@
 
   <ul>
     <li>&a.simon; &lt;<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>&gt;</li>
-    <li>&a.kensmith; &lt;<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>&gt;</li>
     <li>&a.dhw; &lt;<a href="mailto:dhw@FreeBSD.org">dhw@FreeBSD.org</a>&gt;</li>
   </ul>
 
@@ -380,7 +380,6 @@
 
   <ul>
     <li>&a.kuriyama; &lt;<a href="mailto:kuriyama@FreeBSD.org">kuriyama@FreeBSD.org</a>&gt;</li>
-    <li>&a.jdp; &lt;<a href="mailto:jdp@FreeBSD.org">jdp@FreeBSD.org</a>&gt;</li>
     <li>&a.kensmith; &lt;<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>&gt;</li>
   </ul>
 
@@ -392,10 +391,10 @@
     aanverwante diensten.</p>
 
   <ul>
-    <li>&a.dg; &lt;<a href="mailto:dg@FreeBSD.org">dg@FreeBSD.org</a>&gt;</li>
-    <li>&a.ps; &lt;<a href="mailto:ps@FreeBSD.org">ps@FreeBSD.org</a>&gt;</li>
-    <li>&a.kensmith; &lt;<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>&gt;</li>
+    <li>&a.brd; &lt;<a href="mailto:brd@FreeBSD.org">brd@FreeBSD.org</a>&gt;</li>
+    <li>&a.simon; &lt;<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>&gt;</li>
     <li>&a.peter; &lt;<a href="mailto:peter@FreeBSD.org">peter@FreeBSD.org</a>&gt;</li>
+    <li>&a.bz; &lt;<a href="mailto:bz@FreeBSD.org">bz@FreeBSD.org</a>&gt;</li>
   </ul>
 
   <h3><a name="t-mirror-admin">FTP/WWW Mirror Site Co�rdinatoren</a>
@@ -409,8 +408,11 @@
     vinden.</p>
 
   <ul>
+    <li>&a.brd; &lt;<a href="mailto:brd@FreeBSD.org">brd@FreeBSD.org</a>&gt;</li>
     <li>&a.kuriyama; &lt;<a href="mailto:kuriyama@FreeBSD.org">kuriyama@FreeBSD.org</a>&gt;</li>
+    <li>&a.simon; &lt;<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>&gt;</li>
     <li>&a.kensmith; &lt;<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>&gt;</li>
+    <li>&a.bz; &lt;<a href="mailto:bz@FreeBSD.org">bz@FreeBSD.org</a>&gt;</li>
   </ul>
 
   <h3><a name="t-perforce-admin">Perforce Reservoir Beheerders</a>
@@ -422,7 +424,7 @@
     niet-committers dienen aan de perforce-beheerders gericht te worden.</p>
 
   <ul>
-    <li>&a.scottl; &lt;<a href="mailto:scottl@FreeBSD.org">scottl@FreeBSD.org</a>&gt;</li>
+    <li>&a.gibbs; &lt;<a href="mailto:gibbs@FreeBSD.org">gibbs@FreeBSD.org</a>&gt;</li>
     <li>&a.kensmith; &lt;<a href="mailto:kensmith@FreeBSD.org">kensmith@FreeBSD.org</a>&gt;</li>
     <li>&a.gordon; &lt;<a href="mailto:gordon@FreeBSD.org">gordon@FreeBSD.org</a>&gt;</li>
     <li>&a.rwatson; &lt;<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;</li>
@@ -473,6 +475,7 @@
     <li>&a.simon; &lt;<a href="mailto:simon@FreeBSD.org">simon@FreeBSD.org</a>&gt;</li>
     <li>&a.jesusr; &lt;<a href="mailto:jesusr@FreeBSD.org">jesusr@FreeBSD.org</a>&gt;</li>
     <li>&a.wosch; &lt;<a href="mailto:wosch@FreeBSD.org">wosch@FreeBSD.org</a>&gt;</li>
+    <li>&a.don; &lt;<a href="mailto:don@FreeBSD.org">don@FreeBSD.org</a>&gt;</li>
   </ul>
 
 </body>
diff --git a/pt_BR.ISO8859-1/articles/freebsd-update-server/article.xml b/pt_BR.ISO8859-1/articles/freebsd-update-server/article.xml
index 3874dfd920..a4c5c39a62 100644
--- a/pt_BR.ISO8859-1/articles/freebsd-update-server/article.xml
+++ b/pt_BR.ISO8859-1/articles/freebsd-update-server/article.xml
@@ -8,7 +8,7 @@
   The FreeBSD Documentation Project
   The FreeBSD Brazilian Portuguese Documentation Project
 
-  Original revision: r39646
+  Original revision: r41162
 -->
 
 
@@ -28,6 +28,7 @@
       <year>2009</year>
       <year>2010</year>
       <year>2011</year>
+      <year>2013</year>
       <holder role="mailto:jgh@FreeBSD.org">Jason Helfman</holder>
     </copyright>
 
@@ -46,8 +47,8 @@
   <abstract>
     <para>Este artigo descreve como construir um &fbus.ap; para uso
       interno na sua organiza��o.  O software <ulink
-      url="&url.base;/cgi/cvsweb.cgi/projects/freebsd-update-server/">freebsd-update-server</ulink>
-      foi escrito pelo &a.cperciva;, atualmente Chefe de Seguran�a do
+      url="http://svnweb.freebsd.org/base/user/cperciva/freebsd-update-build/">freebsd-update-server</ulink>
+      foi escrito pelo &a.cperciva;, Chefe de Seguran�a em�rito do
       &os;.  Para usu�rios que acreditam que � conveniente atualizar
       seus sistemas a partir de um servidor oficial de atualiza��o,
       construir o seu pr�prio &fbus.ap; pode ajud�-lo a estender suas
@@ -129,13 +130,13 @@
   <sect1 id="Configuration">
     <title>Instala��o &amp; Configura��o</title>
 
-    <para>Fa�a o download do software <ulink
-	url="&url.base;/cgi/cvsweb.cgi/projects/freebsd-update-server/">freebsd-update-server</ulink>
-      como um <ulink
-	url="&url.base;/cgi/cvsweb.cgi/projects/freebsd-update-server/freebsd-update-server.tar.gz?tarball=1">arquivo tar</ulink>,
-      ou use &man.csup.1; e o acervo
-      <literal>projects-all</literal>.</para>
+    <para>Para efetuar o download do software <ulink
+	url="http://svnweb.freebsd.org/base/user/cperciva/freebsd-update-build/">freebsd-update-server</ulink>
+      instale o <filename role="package">devel/subversion</filename> e
+      execute:</para>
 
+      <screen>&prompt.user; <userinput>svn co http://svn.freebsd.org/base/user/cperciva/freebsd-update-build freebsd-update-server</userinput></screen>
+      
     <para>Atualize o <filename>scripts/build.conf</filename> de forma
       adequada.  Ele � usado durante as opera��es de
       compila��o.</para>
@@ -376,8 +377,8 @@ world|base|/usr/lib/libalias_ftp.a
     <warning>
       <para>Durante a segunda compila��o, o servi�o de network time
         protocol, &man.ntpd.8; ser� desligado.  De acordo com 
-	&a.cperciva;, atualmente Chefe de Seguran�a do &os;, "o <ulink
-	url="&url.base;/cgi/cvsweb.cgi/projects/freebsd-update-server/">freebsd-update-server</ulink>
+	&a.cperciva;, Chefe de Seguran�a em�rito do &os;, "o <ulink
+	url="http://svnweb.freebsd.org/base/user/cperciva/freebsd-update-build/">freebsd-update-server</ulink>
 	compila c�digos necess�rios para identificar os
 	<literal>timestamps</literal>, os quais s�o armazenadas em 
 	arquivos, de modo que estes �ltimos podem ser ignorados quando
@@ -794,24 +795,14 @@ make -j 2 obj &amp;&amp;
   make ${COMPATFLAGS} release.1 release.2 2>&amp;1</screen>
       </listitem>
 
-      <listitem>
-
-	<para>Crie uma regra de <ulink 
-	  url="&url.books.handbook;/firewalls.html">firewall</ulink>
-	  para bloquear os pacotes RST saintes.  Devido a um problema
-	  observado <ulink 
-	  url="http://lists.freebsd.org/pipermail/freebsd-stable/2009-April/049578.html">em uma discuss�o</ulink>
-	  na &a.stable; em Abril de 2009, podem ocorrer alguns 
-	  problema de timeouts e falhas ao atualizar o sistema</para>
-      </listitem>
-
       <listitem>
 	<para>Crie uma entrada SRV apropriada no <ulink
 	    url="&url.books.handbook;/network-dns.html">DNS</ulink>
 	  para o servidor de atualiza��o, e coloque outros servidores
 	  com pesos variados.  Usar este recurso ir� permitir que voc�
 	  distribua a carga do processo de atualiza��o entre v�rios
-	  servidores.</para>
+	  servidores, entretanto esta dica n�o ser� necess�ria a menos
+	  que voc� deseje prover um servi�o redundante.</para>
 
 	<screen> 
 	_http._tcp.update.myserver.com.                  IN SRV   0 2 80   host1.myserver.com.
diff --git a/ru_RU.KOI8-R/htdocs/ports/Makefile b/ru_RU.KOI8-R/htdocs/ports/Makefile
index ec7c8c3186..35620dc89c 100644
--- a/ru_RU.KOI8-R/htdocs/ports/Makefile
+++ b/ru_RU.KOI8-R/htdocs/ports/Makefile
@@ -32,7 +32,7 @@ ${INDEX}:
 .endif
 
 HOSTNAME!= hostname
-.if ${HOSTNAME} == "hub.freebsd.org" || ${HOSTNAME} == "freefall.freebsd.org" || ${HOSTNAME} == "www.freebsd.org"
+.if ${HOSTNAME} == "hub.freebsd.org" || ${HOSTNAME} == "freefall.freebsd.org" || ${HOSTNAME} == "www.freebsd.org" || ${HOSTNAME} == "build-web.stream.FreeBSD.org"
 CLUSTER_MACHINE=	YES
 .endif
 
diff --git a/ru_RU.KOI8-R/htdocs/releng/index.xml b/ru_RU.KOI8-R/htdocs/releng/index.xml
index d7ac407f87..ecbcc51c6a 100644
--- a/ru_RU.KOI8-R/htdocs/releng/index.xml
+++ b/ru_RU.KOI8-R/htdocs/releng/index.xml
@@ -16,7 +16,7 @@
 
      $FreeBSDru: frdp/www/ru/releng/index.xml,v 1.15 2004/09/21 07:31:11 den Exp $
 
-     Original revision: 38826
+     Original revision: 41155
 -->
 
 <html xmlns="http://www.w3.org/1999/xhtml">
@@ -58,9 +58,15 @@
     </tr>
 
     <tr>
-      <td>2012</td>
-      <td>&os; 9.1</td>
-      <td>���������� ����������.</td>
+      <td>TBD</td>
+      <td>&os; 8.4</td>
+      <td><a href="&enbase;/releases/8.4R/schedule.html">���������� �������</a></td>
+    </tr>
+
+    <tr>
+      <td>TBD</td>
+      <td>&os; 9.2</td>
+      <td><!-- <a href="&enbase;/releases/9.2R/schedule.html">���������� �������</a> --></td>
     </tr>
   </table>
 
@@ -70,8 +76,8 @@
     ��������� <tt>src/</tt> CVS-��������� FreeBSD.  ��� ��������� �
     ����� �� �����, ���������� ��� "����������", ������� ������ ����
     ����������� � ������������ ��������������� ���������� ��������.  ���������
-    ������ �����������, �����, ��� <tt>ports/</tt>, <tt>doc/</tt> �
-    <tt>www/</tt> ����� ���� ����.</p>
+    ������ �����������, ����� ��� <tt>ports/</tt> � <tt>doc/</tt>,
+    ����� ���� ����.</p>
 
   <table class="tblbasic">
     <tr>
@@ -95,6 +101,13 @@
       <td>����� ���������� 9-STABLE.</td>
     </tr>
 
+    <tr>
+      <td><tt>releng/9.1</tt></td>
+      <td>����������</td>
+      <td>&contact.so;</td>
+      <td>�������������� ����� ��� ����������� ������ FreeBSD 9.1.</td>
+    </tr>
+
     <tr>
       <td><tt>releng/9.0</tt></td>
       <td>����������</td>
@@ -120,14 +133,16 @@
       <td><tt>RELENG_8_2</tt></td>
       <td>����������</td>
       <td>&contact.so;</td>
-      <td>�������������� ����� ��� ����������� ������ FreeBSD 8.2.</td>
+      <td>����� ��� ����������� ������ FreeBSD 8.2 (���������� ��
+	��������������).</td>
     </tr>
 
     <tr>
       <td><tt>RELENG_8_1</tt></td>
       <td>����������</td>
       <td>&contact.so;</td>
-      <td>�������������� ����� ��� ����������� ������ FreeBSD 8.1.</td>
+      <td>����� ��� ����������� ������ FreeBSD 8.1 (���������� ��
+	��������������).</td>
     </tr>
 
     <tr>
@@ -142,14 +157,16 @@
       <td><tt>RELENG_7</tt></td>
       <td>�������</td>
       <td>������������</td>
-      <td>����� ���������� 7-STABLE.</td>
+      <td>����� ������������� 7-STABLE (���������� ��
+	��������������).</td>
     </tr>
 
     <tr>
       <td><tt>RELENG_7_4</tt></td>
       <td>����������</td>
       <td>&contact.so;</td>
-      <td>�������������� ����� ��� ����������� ������ FreeBSD 7.4.</td>
+      <td>����� ��� ����������� ������ FreeBSD 7.4 (���������� ��
+	��������������).</td>
     </tr>
 
     <tr>
@@ -188,7 +205,7 @@
       <td><tt>RELENG_6</tt></td>
       <td>�������</td>
       <td>������������</td>
-      <td>����� ������������� ��� 6-STABLE (���������� ��
+      <td>����� ������������� 6-STABLE (���������� ��
 	��������������).</td>
     </tr>
 
@@ -400,13 +417,6 @@
       <td>&contact.doc;</td>
       <td>����� ������������ �� ������ SGML/XML.</td>
     </tr>
-
-    <tr>
-      <td><tt>www/</tt></td>
-      <td>�������</td>
-      <td>&contact.www;</td>
-      <td>�������� ������ ��� ����� FreeBSD.</td>
-    </tr>
   </table>
 
   <h2><a name="docs" id="docs">������������ �� ���������� �������</a></h2>
@@ -472,13 +482,11 @@
     FreeBSD?</p>
 
   <p>������ FreeBSD �� ������������ ���������������� ������������ �����
-    ������� ISO ������ �������, ������ ����� ���� ����� �������.  ��-������,
-    ������� ��������� ������ ������� (������ ��������� ������� �������)
-    ��������� �����: <a
+    ������� ISO ������ �������, ������ ���� �ݣ ����� ���������.
+    ������� ��������� ������ ������� (������ ��������� ������� �������)
+    ��������� �� ����� ������: <a
     href="ftp://ftp-archive.FreeBSD.org/pub/FreeBSD-Archive/old-releases/">
     ftp://ftp-archive.FreeBSD.org/pub/FreeBSD-Archive/old-releases/</a>.
-    ��-������, ���������� �������� �� ����� <a
-    href="http://mirrorlist.FreeBSD.org">http://mirrorlist.FreeBSD.org</a>.
     ���� �� �� ������ ����� ������� FTP,
     �� ������� �ӣ �ݣ �������� ������� �����, �� ������ �������� �����������
     �������-������, ���� �� � ��� ������ ������.  � �������� 2002 ���� ��� ���
diff --git a/ru_RU.KOI8-R/htdocs/security/security.xml b/ru_RU.KOI8-R/htdocs/security/security.xml
index d0ece879ed..ed093d99bf 100644
--- a/ru_RU.KOI8-R/htdocs/security/security.xml
+++ b/ru_RU.KOI8-R/htdocs/security/security.xml
@@ -10,7 +10,7 @@
      $FreeBSD$
      $FreeBSDru: frdp/www/ru/security/security.xml,v 1.33 2004/09/21 07:31:12 den Exp $
 
-     Original revision: 40129
+     Original revision: 41351
 -->
 
 <html xmlns="http://www.w3.org/1999/xhtml">
@@ -120,6 +120,11 @@
         ������������� ������� TrustedBSD, ������� �� ����������� ���������
         ������������</td>
     </tr>
+    <tr valign="top">
+      <td>&a.delphij; <a
+        href="mailto:delphij@FreeBSD.org">&lt;delphij@FreeBSD.org&gt;</a></td>
+      <td>����������� ������� �������������� ������������</td>
+    </tr>
   </table>
 
   <p>������ �������������� ������������ �������������� <a
@@ -254,20 +259,6 @@
       <th>���� ������</th>
       <th>��������� ��������� ����� �����</th>
     </tr>
-    <tr>
-      <td>RELENG_7</td>
-      <td>n/a</td>
-      <td>n/a</td>
-      <td>n/a</td>
-      <td>28 ������� 2013</td>
-    </tr>
-    <tr>
-      <td>RELENG_7_4</td>
-      <td>7.4-RELEASE</td>
-      <td>�����������</td>
-      <td>24 ������� 2011</td>
-      <td>28 ������� 2013</td>
-    </tr>
     <tr>
       <td>RELENG_8</td>
       <td>n/a</td>
@@ -290,11 +281,11 @@
       <td>��������� ����� + 2 ����</td>
     </tr>
     <tr>
-      <td>RELENG_9_0</td>
-      <td>9.0-RELEASE</td>
-      <td>�������</td>
-      <td>10 ������ 2012</td>
-      <td>31 ����� 2013</td>
+      <td>RELENG_9_1</td>
+      <td>9.1-RELEASE</td>
+      <td>�����������</td>
+      <td>30 ������� 2012</td>
+      <td>31 ������� 2014</td>
     </tr>
   </table>
 
@@ -418,6 +409,13 @@
       <td>28 ������ 2008</td>
       <td>30 ������ 2010</td>
     </tr>
+    <tr>
+      <td>RELENG_7</td>
+      <td>n/a</td>
+      <td>n/a</td>
+      <td>n/a</td>
+      <td>28 ������� 2013</td>
+    </tr>
     <tr>
       <td>RELENG_7_0</td>
       <td>7.0-RELEASE</td>
@@ -446,6 +444,13 @@
       <td>23 ����� 2010</td>
       <td>31 ����� 2012</td>
     </tr>
+    <tr>
+      <td>RELENG_7_4</td>
+      <td>7.4-RELEASE</td>
+      <td>�����������</td>
+      <td>24 ������� 2011</td>
+      <td>28 ������� 2013</td>
+    </tr>
     <tr>
       <td>RELENG_8_0</td>
       <td>8.0-RELEASE</td>
@@ -467,6 +472,13 @@
       <td>24 ������� 2011</td>
       <td>31 ���� 2012</td>
     </tr>
+    <tr>
+      <td>RELENG_9_0</td>
+      <td>9.0-RELEASE</td>
+      <td>�������</td>
+      <td>10 ������ 2012</td>
+      <td>31 ����� 2013</td>
+    </tr>
   </table>
 
 </body>
diff --git a/ru_RU.KOI8-R/share/xml/l10n.ent b/ru_RU.KOI8-R/share/xml/l10n.ent
index 3a7846bbb5..97391360b0 100644
--- a/ru_RU.KOI8-R/share/xml/l10n.ent
+++ b/ru_RU.KOI8-R/share/xml/l10n.ent
@@ -25,7 +25,7 @@
 <!ENTITY url.doc.langcode    'ru_RU.KOI8-R'>
 <!ENTITY xml.encoding        'koi8-r'>
 
-<!ENTITY rel.current.date '������ 2012'>
+<!ENTITY rel.current.date '������� 2012'>
 
 <!-- URLs to information on the latest release -->
 <!ENTITY u.rel.notes '&enbase;/releases/&rel.current;R/relnotes.html'>
diff --git a/share/pgpkeys/des.key b/share/pgpkeys/des.key
index 8137329ea9..aa66033bed 100644
--- a/share/pgpkeys/des.key
+++ b/share/pgpkeys/des.key
@@ -43,28 +43,31 @@ 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
-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
+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
@@ -84,126 +87,129 @@ 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
-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
+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
@@ -227,6 +233,6 @@ cQ8t/7n2yovsdqyTTv2D/ZJMFJsqaM+foW08jyoK5+im6hhPfPOs7PYl3xEaVWy3
 DeuRkZCyJDyt7WGuE6UfnKH1t24tBDvQEeC/FRT/KboKid7BpSGmGEwH7wyGOWcA
 N5eF3/hjJXvULM8CpzZz5f0gyRWDI81P+G7KkNYrh69rHScP8AO3WP6jG8r3xIFC
 maNTtSyMU9A54ib2sgN0GwxijcvwPyqT
-=ToCZ
+=2GhG
 -----END PGP PUBLIC KEY BLOCK-----
 ]]></programlisting>
diff --git a/share/pgpkeys/girgen.key b/share/pgpkeys/girgen.key
new file mode 100644
index 0000000000..b12cf61995
--- /dev/null
+++ b/share/pgpkeys/girgen.key
@@ -0,0 +1,237 @@
+<!-- $FreeBSD$ -->
+<!--
+sh ./addkey.sh girgen 4A6BAAAD;
+-->
+<programlisting role="pgpfingerprint"><![CDATA[
+pub   2048R/4A6BAAAD 2012-02-23 [expires: 2016-02-23]
+      Key fingerprint = BD8C 332C E630 31D6 2FDB  80BD 5FF2 A161 4A6B AAAD
+uid                  Palle Girgensohn <girgen@pingpong.net>
+uid                  [jpeg image of size 8260]
+uid                  Palle Girgensohn <girgen@FreeBSD.org>
+sub   2048R/6BC41243 2012-02-23 [expires: 2016-02-23]
+]]></programlisting>
+<programlisting role="pgpkey"><![CDATA[
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Comment: GPGTools - http://gpgtools.org
+
+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
+=RtWL
+-----END PGP PUBLIC KEY BLOCK-----
+]]></programlisting>
diff --git a/share/pgpkeys/pgpkeys-developers.xml b/share/pgpkeys/pgpkeys-developers.xml
index 87da907016..b956f79f0b 100644
--- a/share/pgpkeys/pgpkeys-developers.xml
+++ b/share/pgpkeys/pgpkeys-developers.xml
@@ -551,6 +551,11 @@
       &pgpkey.pfg;
     </sect2>
 
+    <sect2 id="pgpkey-girgen">
+      <title>&a.girgen;</title>
+      &pgpkey.girgen;
+    </sect2>
+
     <sect2 id="pgpkey-pgollucci">
       <title>&a.pgollucci;</title>
       &pgpkey.pgollucci;
@@ -576,6 +581,11 @@
       &pgpkey.jamie;
     </sect2>
 
+    <sect2 id="pgpkey-wg">
+      <title>&a.wg;</title>
+      &pgpkey.wg;
+    </sect2>
+
     <sect2 id="pgpkey-bar">
       <title>&a.bar;</title>
       &pgpkey.bar;
diff --git a/share/pgpkeys/pgpkeys.ent b/share/pgpkeys/pgpkeys.ent
index 07c08d9e09..1f99e06059 100644
--- a/share/pgpkeys/pgpkeys.ent
+++ b/share/pgpkeys/pgpkeys.ent
@@ -134,6 +134,7 @@
 <!ENTITY pgpkey.gerald SYSTEM "gerald.key">
 <!ENTITY pgpkey.ghelmer SYSTEM "ghelmer.key">
 <!ENTITY pgpkey.gibbs SYSTEM "gibbs.key">
+<!ENTITY pgpkey.girgen SYSTEM "girgen.key">
 <!ENTITY pgpkey.gjb SYSTEM "gjb.key">
 <!ENTITY pgpkey.glarkin SYSTEM "glarkin.key">
 <!ENTITY pgpkey.glebius SYSTEM "glebius.key">
@@ -398,6 +399,7 @@
 <!ENTITY pgpkey.wen SYSTEM "wen.key">
 <!ENTITY pgpkey.weongyo SYSTEM "weongyo.key">
 <!ENTITY pgpkey.wes SYSTEM "wes.key">
+<!ENTITY pgpkey.wg SYSTEM "wg.key">
 <!ENTITY pgpkey.wilko SYSTEM "wilko.key">
 <!ENTITY pgpkey.will SYSTEM "will.key">
 <!ENTITY pgpkey.wkoszek SYSTEM "wkoszek.key">
diff --git a/share/pgpkeys/wg.key b/share/pgpkeys/wg.key
new file mode 100644
index 0000000000..e2438b61f7
--- /dev/null
+++ b/share/pgpkeys/wg.key
@@ -0,0 +1,50 @@
+<!-- $FreeBSD$ -->
+<!--
+sh /usr/doc/share/pgpkeys/addkey.sh wg CFC460C5;
+-->
+<programlisting role="pgpfingerprint"><![CDATA[
+pub   2048R/CFC460C5 2012-09-28
+      Key fingerprint = FC40 5CD8 0879 7F50 0036  D924 D9F7 8B27 CFC4 60C5
+uid                  William Grzybowski (FreeBSD) <wg@freebsd.org>
+uid                  William Grzybowski <william88@gmail.com>
+sub   2048R/05577997 2012-09-28
+]]></programlisting>
+<programlisting role="pgpkey"><![CDATA[
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+oMxesc54A/7tC1WbOAgS8gM=
+=ZnO5
+-----END PGP PUBLIC KEY BLOCK-----
+]]></programlisting>
diff --git a/share/security/advisories/FreeBSD-SA-13:03.openssl.asc b/share/security/advisories/FreeBSD-SA-13:03.openssl.asc
new file mode 100644
index 0000000000..65bb9cd51f
--- /dev/null
+++ b/share/security/advisories/FreeBSD-SA-13:03.openssl.asc
@@ -0,0 +1,126 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+=============================================================================
+FreeBSD-SA-13:03.openssl                                    Security Advisory
+                                                          The FreeBSD Project
+
+Topic:          OpenSSL multiple vulnerabilities
+
+Category:       contrib
+Module:         openssl
+Announced:      2013-04-02
+Affects:        All supported versions of FreeBSD.
+Corrected:      2013-03-08 17:28:40 UTC (stable/8, 8.3-STABLE)
+                2013-04-02 17:34:42 UTC (releng/8.3, 8.3-RELEASE-p7)
+                2013-03-14 17:48:07 UTC (stable/9, 9.1-STABLE)
+                2013-04-02 17:34:42 UTC (releng/9.0, 9.0-RELEASE-p7)
+                2013-04-02 17:34:42 UTC (releng/9.1, 9.1-RELEASE-p2)
+CVE Name:       CVE-2013-0166, CVE-2013-0169
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit <URL:http://security.FreeBSD.org/>.
+
+I.   Background
+
+FreeBSD includes software from the OpenSSL Project.  The OpenSSL Project is
+a collaborative effort to develop a robust, commercial-grade, full-featured
+Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3)
+and Transport Layer Security (TLS v1) protocols as well as a full-strength
+general purpose cryptography library.
+
+II.  Problem Description
+
+A flaw in the OpenSSL handling of OCSP response verification could be exploited
+to cause a denial of service attack.  [CVE-2013-0166]
+
+OpenSSL has a weakness in the handling of CBC ciphersuites in SSL, TLS and
+DTLS. The weakness could reveal plaintext in a timing attack. [CVE-2013-0169]
+
+III. Impact
+
+The Denial of Service could be caused in the OpenSSL server application by
+using an invalid key. [CVE-2013-0166]
+
+A remote attacker could recover sensitive information by conducting
+an attack via statistical analysis of timing data with crafted packets.
+[CVE-2013-0169]
+
+IV.  Workaround
+
+No workaround is available.
+
+V.   Solution
+
+Perform one of the following:
+
+1) Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated dated after the correction
+date.
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+[FreeBSD 8.3 and 9.0]
+# fetch http://security.FreeBSD.org/patches/SA-13:03/openssl.patch
+# fetch http://security.FreeBSD.org/patches/SA-13:03/openssl.patch.asc
+# gpg --verify openssl.patch.asc
+
+[FreeBSD 9.1]
+# fetch http://security.FreeBSD.org/patches/SA-13:03/openssl-9.1.patch
+# fetch http://security.FreeBSD.org/patches/SA-13:03/openssl-9.1.patch.asc
+# gpg --verify openssl-9.1.patch.asc
+
+b) Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+Recompile the operating system using buildworld and installworld as
+described in <URL:http://www.FreeBSD.org/handbook/makeworld.html>.
+
+Restart the all deamons using the library, or reboot your the system.
+
+3) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+
+VI.  Correction details
+
+The following list contains the revision numbers of each file that was
+corrected in FreeBSD.
+
+Branch/path                                                      Revision
+- -------------------------------------------------------------------------
+stable/8/                                                         r248057
+releng/8.3/                                                       r249029
+stable/9/                                                         r248272
+releng/9.0/                                                       r249029
+releng/9.1/                                                       r249029
+- -------------------------------------------------------------------------
+
+VII. References
+
+CVE Name:       
+http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0169
+http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0166 
+
+The latest revision of this advisory is available at
+http://security.FreeBSD.org/advisories/FreeBSD-SA-13:03.openssl.asc
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.19 (FreeBSD)
+
+iEYEARECAAYFAlFbGXYACgkQFdaIBMps37ISqACcCovc+NpuH57guiROqIbTfw3P
+4RMAn22ppeZnRVfje8up3cyOx/D8CCmI
+=rQqV
+-----END PGP SIGNATURE-----
diff --git a/share/security/advisories/FreeBSD-SA-13:04.bind.asc b/share/security/advisories/FreeBSD-SA-13:04.bind.asc
new file mode 100644
index 0000000000..b634f134e5
--- /dev/null
+++ b/share/security/advisories/FreeBSD-SA-13:04.bind.asc
@@ -0,0 +1,112 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+=============================================================================
+FreeBSD-SA-13:04.bind                                       Security Advisory
+                                                          The FreeBSD Project
+
+Topic:          BIND remote denial of service
+
+Category:       contrib
+Module:         bind
+Announced:      2013-04-02
+Credits:        Matthew Horsfall of Dyn, Inc.
+Affects:        FreeBSD 8.4-BETA1 and FreeBSD 9.x
+Corrected:      2013-03-28 05:35:46 UTC (stable/8, 8.4-BETA1)
+                2013-03-28 05:39:45 UTC (stable/9, 9.1-STABLE)
+                2013-04-02 17:34:42 UTC (releng/9.0, 9.0-RELEASE-p7)
+                2013-04-02 17:34:42 UTC (releng/9.1, 9.1-RELEASE-p2)
+CVE Name:       CVE-2013-2266
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit <URL:http://security.FreeBSD.org/>.
+
+I.   Background
+
+BIND 9 is an implementation of the Domain Name System (DNS) protocols.
+The named(8) daemon is an Internet Domain Name Server.  The libdns
+library is a library of DNS protocol support functions.
+
+II.  Problem Description
+
+A flaw in a library used by BIND allows an attacker to deliberately
+cause excessive memory consumption by the named(8) process.  This
+affects both recursive and authoritative servers.
+
+III. Impact
+
+A remote attacker can cause the named(8) daemon to consume all available
+memory and crash, resulting in a denial of service.  Applications linked
+with the libdns library, for instance dig(1), may also be affected.
+
+IV.  Workaround
+
+No workaround is available, but systems not running named(8) service
+and not using base system DNS utilities are not affected.
+
+V.   Solution
+
+Perform one of the following:
+
+1) Upgrade your vulnerable system to a supported FreeBSD stable or
+release / security branch (releng) dated after the correction date.
+
+2) To update your vulnerable system via a source code patch:
+
+The following patches have been verified to apply to the applicable
+FreeBSD release branches.
+
+a) Download the relevant patch from the location below, and verify the
+detached PGP signature using your PGP utility.
+
+# fetch http://security.FreeBSD.org/patches/SA-13:04/bind.patch
+# fetch http://security.FreeBSD.org/patches/SA-13:04/bind.patch.asc
+# gpg --verify bind.patch.asc
+
+b) Execute the following commands as root:
+
+# cd /usr/src
+# patch < /path/to/patch
+
+Recompile the operating system using buildworld and installworld as
+described in <URL:http://www.FreeBSD.org/handbook/makeworld.html>.
+
+Restart the named daemon, or reboot the system.
+
+3) To update your vulnerable system via a binary patch:
+
+Systems running a RELEASE version of FreeBSD on the i386 or amd64
+platforms can be updated via the freebsd-update(8) utility:
+
+# freebsd-update fetch
+# freebsd-update install
+
+VI.  Correction details
+
+The following list contains the revision numbers of each file that was
+corrected in FreeBSD.
+
+Branch/path                                                      Revision
+- -------------------------------------------------------------------------
+stable/8/                                                         r248807
+stable/9/                                                         r248808
+releng/9.0/                                                       r249029
+releng/9.1/                                                       r249029
+- -------------------------------------------------------------------------
+
+VII. References
+
+https://kb.isc.org/article/AA-00871
+
+http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2266
+
+The latest revision of this advisory is available at
+http://security.FreeBSD.org/advisories/FreeBSD-SA-13:04.bind.asc
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.19 (FreeBSD)
+
+iEYEARECAAYFAlFbGYYACgkQFdaIBMps37J4eACeNzJtWElzKJZCqXdzhrHEB+pu
+1eoAn0oD7xcjoPOnB7H3xZbIeHldgGcI
+=BX1M
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/SA-13:03/openssl-9.1.patch b/share/security/patches/SA-13:03/openssl-9.1.patch
new file mode 100644
index 0000000000..a6cd30940f
--- /dev/null
+++ b/share/security/patches/SA-13:03/openssl-9.1.patch
@@ -0,0 +1,3891 @@
+Index: crypto/openssl/CHANGES
+===================================================================
+--- crypto/openssl/CHANGES	(revision 248771)
++++ crypto/openssl/CHANGES	(working copy)
+@@ -2,6 +2,35 @@
+  OpenSSL CHANGES
+  _______________
+ 
++ Changes between 0.9.8x and 0.9.8y [5 Feb 2013]
++
++  *) Make the decoding of SSLv3, TLS and DTLS CBC records constant time.
++
++     This addresses the flaw in CBC record processing discovered by 
++     Nadhem Alfardan and Kenny Paterson. Details of this attack can be found
++     at: http://www.isg.rhul.ac.uk/tls/     
++
++     Thanks go to Nadhem Alfardan and Kenny Paterson of the Information
++     Security Group at Royal Holloway, University of London
++     (www.isg.rhul.ac.uk) for discovering this flaw and Adam Langley and
++     Emilia K�sper for the initial patch.
++     (CVE-2013-0169)
++     [Emilia K�sper, Adam Langley, Ben Laurie, Andy Polyakov, Steve Henson]
++
++  *) Return an error when checking OCSP signatures when key is NULL.
++     This fixes a DoS attack. (CVE-2013-0166)
++     [Steve Henson]
++
++  *) Call OCSP Stapling callback after ciphersuite has been chosen, so
++     the right response is stapled. Also change SSL_get_certificate()
++     so it returns the certificate actually sent.
++     See http://rt.openssl.org/Ticket/Display.html?id=2836.
++     (This is a backport)
++     [Rob Stradling <rob.stradling@comodo.com>]
++
++  *) Fix possible deadlock when decoding public keys.
++     [Steve Henson]
++
+  Changes between 0.9.8w and 0.9.8x [10 May 2012]
+ 
+   *) Sanity check record length before skipping explicit IV in DTLS
+Index: crypto/openssl/Configure
+===================================================================
+--- crypto/openssl/Configure	(revision 248771)
++++ crypto/openssl/Configure	(working copy)
+@@ -162,6 +162,7 @@ my %table=(
+ "debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
+ "debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
+ "debug-ben-debug",	"gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG  -DDEBUG_SAFESTACK -ggdb3 -O2 -pipe::(unknown)::::::",
++"debug-ben-debug-64",	"gcc:$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "debug-ben-debug-noopt",	"gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG  -DDEBUG_SAFESTACK -ggdb3 -pipe::(unknown)::::::",
+ "debug-ben-strict",	"gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
+ "debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
+@@ -172,10 +173,10 @@ my %table=(
+ "debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "debug-steve",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -m32 -g -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
+ "debug-steve-linux-pseudo64",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT:${no_asm}:dlfcn:linux-shared",
+-"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -ggdb -g3 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -ggdb -g3 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "debug-geoff","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
+ "debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
+@@ -428,8 +429,8 @@ my %table=(
+ "aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
+ # Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
+ # at build time. $OBJECT_MODE is respected at ./config stage!
+-"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
+-"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
++"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
++"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
+ 
+ #
+ # Cray T90 and similar (SDSC)
+Index: crypto/openssl/FAQ
+===================================================================
+--- crypto/openssl/FAQ	(revision 248771)
++++ crypto/openssl/FAQ	(working copy)
+@@ -83,7 +83,7 @@ OpenSSL  -  Frequently Asked Questions
+ * Which is the current version of OpenSSL?
+ 
+ The current version is available from <URL: http://www.openssl.org>.
+-OpenSSL 1.0.1c was released on May 10th, 2012.
++OpenSSL 1.0.1d was released on Feb 5th, 2013.
+ 
+ In addition to the current stable release, you can also access daily
+ snapshots of the OpenSSL development version at <URL:
+Index: crypto/openssl/Makefile
+===================================================================
+--- crypto/openssl/Makefile	(revision 248771)
++++ crypto/openssl/Makefile	(working copy)
+@@ -4,7 +4,7 @@
+ ## Makefile for OpenSSL
+ ##
+ 
+-VERSION=0.9.8x
++VERSION=0.9.8y
+ MAJOR=0
+ MINOR=9.8
+ SHLIB_VERSION_NUMBER=0.9.8
+Index: crypto/openssl/NEWS
+===================================================================
+--- crypto/openssl/NEWS	(revision 248771)
++++ crypto/openssl/NEWS	(working copy)
+@@ -5,6 +5,11 @@
+   This file gives a brief overview of the major changes between each OpenSSL
+   release. For more details please read the CHANGES file.
+ 
++  Major changes between OpenSSL 0.9.8x and OpenSSL 0.9.8y:
++
++      o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169
++      o Fix OCSP bad key DoS attack CVE-2013-0166
++
+   Major changes between OpenSSL 0.9.8w and OpenSSL 0.9.8x:
+ 
+       o Fix DTLS record length checking bug CVE-2012-2333
+Index: crypto/openssl/README
+===================================================================
+--- crypto/openssl/README	(revision 248771)
++++ crypto/openssl/README	(working copy)
+@@ -1,5 +1,5 @@
+ 
+- OpenSSL 0.9.8x 10 May 2012
++ OpenSSL 0.9.8y 5 Feb 2013
+ 
+  Copyright (c) 1998-2011 The OpenSSL Project
+  Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
+Index: crypto/openssl/apps/Makefile
+===================================================================
+--- crypto/openssl/apps/Makefile	(revision 248771)
++++ crypto/openssl/apps/Makefile	(working copy)
+@@ -176,703 +176,720 @@ progs.h: progs.pl
+ app_rand.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ app_rand.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ app_rand.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-app_rand.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-app_rand.o: ../include/openssl/engine.h ../include/openssl/evp.h
+-app_rand.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+-app_rand.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-app_rand.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-app_rand.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-app_rand.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+-app_rand.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-app_rand.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-app_rand.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-app_rand.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h
+-app_rand.o: app_rand.c apps.h
++app_rand.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++app_rand.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++app_rand.o: ../include/openssl/evp.h ../include/openssl/fips.h
++app_rand.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++app_rand.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++app_rand.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++app_rand.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
++app_rand.o: ../include/openssl/rand.h ../include/openssl/safestack.h
++app_rand.o: ../include/openssl/sha.h ../include/openssl/stack.h
++app_rand.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++app_rand.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++app_rand.o: ../include/openssl/x509v3.h app_rand.c apps.h
+ apps.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ apps.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ apps.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ apps.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-apps.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-apps.o: ../include/openssl/err.h ../include/openssl/evp.h
+-apps.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+-apps.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-apps.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-apps.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-apps.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-apps.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
+-apps.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+-apps.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-apps.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-apps.o: ../include/openssl/ui.h ../include/openssl/x509.h
+-apps.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.c apps.h
++apps.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++apps.o: ../include/openssl/engine.h ../include/openssl/err.h
++apps.o: ../include/openssl/evp.h ../include/openssl/fips.h
++apps.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++apps.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++apps.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++apps.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++apps.o: ../include/openssl/pem2.h ../include/openssl/pkcs12.h
++apps.o: ../include/openssl/pkcs7.h ../include/openssl/rsa.h
++apps.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++apps.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++apps.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
++apps.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++apps.o: ../include/openssl/x509v3.h apps.c apps.h
+ asn1pars.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ asn1pars.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ asn1pars.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-asn1pars.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-asn1pars.o: ../include/openssl/engine.h ../include/openssl/err.h
+-asn1pars.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-asn1pars.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-asn1pars.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-asn1pars.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-asn1pars.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-asn1pars.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-asn1pars.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-asn1pars.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-asn1pars.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-asn1pars.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-asn1pars.o: asn1pars.c
++asn1pars.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++asn1pars.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++asn1pars.o: ../include/openssl/err.h ../include/openssl/evp.h
++asn1pars.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++asn1pars.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++asn1pars.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++asn1pars.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++asn1pars.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++asn1pars.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++asn1pars.o: ../include/openssl/sha.h ../include/openssl/stack.h
++asn1pars.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++asn1pars.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++asn1pars.o: ../include/openssl/x509v3.h apps.h asn1pars.c
+ ca.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ ca.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ ca.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ ca.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-ca.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-ca.o: ../include/openssl/err.h ../include/openssl/evp.h
+-ca.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+-ca.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-ca.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-ca.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-ca.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-ca.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+-ca.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-ca.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-ca.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-ca.o: ../include/openssl/x509v3.h apps.h ca.c
++ca.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++ca.o: ../include/openssl/engine.h ../include/openssl/err.h
++ca.o: ../include/openssl/evp.h ../include/openssl/fips.h
++ca.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++ca.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++ca.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++ca.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++ca.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++ca.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++ca.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++ca.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++ca.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h ca.c
+ ciphers.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ ciphers.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ ciphers.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ ciphers.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ ciphers.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-ciphers.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-ciphers.o: ../include/openssl/err.h ../include/openssl/evp.h
+-ciphers.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-ciphers.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-ciphers.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-ciphers.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-ciphers.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-ciphers.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-ciphers.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-ciphers.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+-ciphers.o: ../include/openssl/sha.h ../include/openssl/ssl.h
+-ciphers.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+-ciphers.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+-ciphers.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+-ciphers.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-ciphers.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-ciphers.o: ciphers.c
++ciphers.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++ciphers.o: ../include/openssl/engine.h ../include/openssl/err.h
++ciphers.o: ../include/openssl/evp.h ../include/openssl/fips.h
++ciphers.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++ciphers.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++ciphers.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++ciphers.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++ciphers.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++ciphers.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++ciphers.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++ciphers.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++ciphers.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++ciphers.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++ciphers.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++ciphers.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
++ciphers.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++ciphers.o: ../include/openssl/x509v3.h apps.h ciphers.c
+ cms.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ cms.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ cms.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-cms.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-cms.o: ../include/openssl/engine.h ../include/openssl/evp.h
+-cms.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+-cms.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-cms.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-cms.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-cms.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+-cms.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-cms.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-cms.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-cms.o: ../include/openssl/x509v3.h apps.h cms.c
++cms.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++cms.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++cms.o: ../include/openssl/evp.h ../include/openssl/fips.h
++cms.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++cms.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++cms.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++cms.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
++cms.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++cms.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++cms.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++cms.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h cms.c
+ crl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ crl.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ crl.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-crl.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-crl.o: ../include/openssl/engine.h ../include/openssl/err.h
+-crl.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-crl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-crl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-crl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-crl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-crl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-crl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-crl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-crl.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-crl.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h crl.c
++crl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++crl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++crl.o: ../include/openssl/err.h ../include/openssl/evp.h
++crl.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++crl.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++crl.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++crl.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++crl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++crl.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++crl.o: ../include/openssl/sha.h ../include/openssl/stack.h
++crl.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++crl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++crl.o: ../include/openssl/x509v3.h apps.h crl.c
+ crl2p7.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ crl2p7.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ crl2p7.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-crl2p7.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-crl2p7.o: ../include/openssl/engine.h ../include/openssl/err.h
+-crl2p7.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-crl2p7.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-crl2p7.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-crl2p7.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-crl2p7.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-crl2p7.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-crl2p7.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-crl2p7.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-crl2p7.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-crl2p7.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-crl2p7.o: crl2p7.c
++crl2p7.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++crl2p7.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++crl2p7.o: ../include/openssl/err.h ../include/openssl/evp.h
++crl2p7.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++crl2p7.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++crl2p7.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++crl2p7.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++crl2p7.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++crl2p7.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++crl2p7.o: ../include/openssl/sha.h ../include/openssl/stack.h
++crl2p7.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++crl2p7.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++crl2p7.o: ../include/openssl/x509v3.h apps.h crl2p7.c
+ dgst.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ dgst.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ dgst.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-dgst.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-dgst.o: ../include/openssl/engine.h ../include/openssl/err.h
+-dgst.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-dgst.o: ../include/openssl/hmac.h ../include/openssl/lhash.h
+-dgst.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-dgst.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-dgst.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-dgst.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-dgst.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+-dgst.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-dgst.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-dgst.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-dgst.o: ../include/openssl/x509v3.h apps.h dgst.c
++dgst.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++dgst.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++dgst.o: ../include/openssl/err.h ../include/openssl/evp.h
++dgst.o: ../include/openssl/fips.h ../include/openssl/hmac.h
++dgst.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++dgst.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++dgst.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++dgst.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++dgst.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++dgst.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++dgst.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++dgst.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++dgst.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h dgst.c
+ dh.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ dh.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ dh.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ dh.o: ../include/openssl/dh.h ../include/openssl/e_os2.h
+-dh.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-dh.o: ../include/openssl/engine.h ../include/openssl/err.h
+-dh.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-dh.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-dh.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-dh.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-dh.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-dh.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-dh.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-dh.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-dh.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-dh.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h dh.c
++dh.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++dh.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++dh.o: ../include/openssl/err.h ../include/openssl/evp.h
++dh.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++dh.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++dh.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++dh.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++dh.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++dh.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++dh.o: ../include/openssl/sha.h ../include/openssl/stack.h
++dh.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++dh.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++dh.o: ../include/openssl/x509v3.h apps.h dh.c
+ dsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ dsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ dsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ dsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
+-dsa.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-dsa.o: ../include/openssl/engine.h ../include/openssl/err.h
+-dsa.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-dsa.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-dsa.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-dsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-dsa.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-dsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-dsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-dsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-dsa.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-dsa.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h dsa.c
++dsa.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++dsa.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++dsa.o: ../include/openssl/err.h ../include/openssl/evp.h
++dsa.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++dsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++dsa.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++dsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++dsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++dsa.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++dsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
++dsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++dsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++dsa.o: ../include/openssl/x509v3.h apps.h dsa.c
+ dsaparam.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ dsaparam.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ dsaparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ dsaparam.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+ dsaparam.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-dsaparam.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-dsaparam.o: ../include/openssl/err.h ../include/openssl/evp.h
+-dsaparam.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+-dsaparam.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-dsaparam.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-dsaparam.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-dsaparam.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-dsaparam.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+-dsaparam.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+-dsaparam.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-dsaparam.o: ../include/openssl/store.h ../include/openssl/symhacks.h
+-dsaparam.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
+-dsaparam.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-dsaparam.o: ../include/openssl/x509v3.h apps.h dsaparam.c
++dsaparam.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++dsaparam.o: ../include/openssl/engine.h ../include/openssl/err.h
++dsaparam.o: ../include/openssl/evp.h ../include/openssl/fips.h
++dsaparam.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++dsaparam.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++dsaparam.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++dsaparam.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++dsaparam.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++dsaparam.o: ../include/openssl/rand.h ../include/openssl/rsa.h
++dsaparam.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++dsaparam.o: ../include/openssl/stack.h ../include/openssl/store.h
++dsaparam.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++dsaparam.o: ../include/openssl/ui.h ../include/openssl/x509.h
++dsaparam.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
++dsaparam.o: dsaparam.c
+ ec.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ ec.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ ec.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-ec.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-ec.o: ../include/openssl/engine.h ../include/openssl/err.h
+-ec.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-ec.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-ec.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-ec.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-ec.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-ec.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-ec.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-ec.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-ec.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-ec.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h ec.c
++ec.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++ec.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++ec.o: ../include/openssl/err.h ../include/openssl/evp.h
++ec.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++ec.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++ec.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++ec.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++ec.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++ec.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++ec.o: ../include/openssl/sha.h ../include/openssl/stack.h
++ec.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++ec.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++ec.o: ../include/openssl/x509v3.h apps.h ec.c
+ ecparam.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ ecparam.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ ecparam.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ ecparam.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-ecparam.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-ecparam.o: ../include/openssl/err.h ../include/openssl/evp.h
+-ecparam.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+-ecparam.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-ecparam.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-ecparam.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-ecparam.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-ecparam.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+-ecparam.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-ecparam.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-ecparam.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-ecparam.o: ../include/openssl/x509v3.h apps.h ecparam.c
++ecparam.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++ecparam.o: ../include/openssl/engine.h ../include/openssl/err.h
++ecparam.o: ../include/openssl/evp.h ../include/openssl/fips.h
++ecparam.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++ecparam.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++ecparam.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++ecparam.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++ecparam.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++ecparam.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++ecparam.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++ecparam.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++ecparam.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
++ecparam.o: ecparam.c
+ enc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ enc.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ enc.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-enc.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-enc.o: ../include/openssl/engine.h ../include/openssl/err.h
+-enc.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-enc.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-enc.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-enc.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-enc.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-enc.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-enc.o: ../include/openssl/rand.h ../include/openssl/safestack.h
+-enc.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-enc.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-enc.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-enc.o: ../include/openssl/x509v3.h apps.h enc.c
++enc.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++enc.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++enc.o: ../include/openssl/err.h ../include/openssl/evp.h
++enc.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++enc.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++enc.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++enc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++enc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++enc.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
++enc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++enc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++enc.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++enc.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h enc.c
+ engine.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ engine.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ engine.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ engine.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ engine.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-engine.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-engine.o: ../include/openssl/err.h ../include/openssl/evp.h
+-engine.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-engine.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-engine.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-engine.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-engine.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-engine.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-engine.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-engine.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+-engine.o: ../include/openssl/sha.h ../include/openssl/ssl.h
+-engine.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+-engine.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+-engine.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+-engine.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-engine.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-engine.o: engine.c
++engine.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++engine.o: ../include/openssl/engine.h ../include/openssl/err.h
++engine.o: ../include/openssl/evp.h ../include/openssl/fips.h
++engine.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++engine.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++engine.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++engine.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++engine.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++engine.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++engine.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++engine.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++engine.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++engine.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++engine.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++engine.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
++engine.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++engine.o: ../include/openssl/x509v3.h apps.h engine.c
+ errstr.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ errstr.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ errstr.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ errstr.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ errstr.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-errstr.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-errstr.o: ../include/openssl/err.h ../include/openssl/evp.h
+-errstr.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-errstr.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-errstr.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-errstr.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-errstr.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-errstr.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-errstr.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-errstr.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+-errstr.o: ../include/openssl/sha.h ../include/openssl/ssl.h
+-errstr.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+-errstr.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+-errstr.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+-errstr.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-errstr.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-errstr.o: errstr.c
++errstr.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++errstr.o: ../include/openssl/engine.h ../include/openssl/err.h
++errstr.o: ../include/openssl/evp.h ../include/openssl/fips.h
++errstr.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++errstr.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++errstr.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++errstr.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++errstr.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++errstr.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++errstr.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++errstr.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++errstr.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++errstr.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++errstr.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++errstr.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
++errstr.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++errstr.o: ../include/openssl/x509v3.h apps.h errstr.c
+ gendh.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ gendh.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ gendh.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ gendh.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+ gendh.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-gendh.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-gendh.o: ../include/openssl/err.h ../include/openssl/evp.h
+-gendh.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+-gendh.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-gendh.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-gendh.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-gendh.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-gendh.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+-gendh.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+-gendh.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-gendh.o: ../include/openssl/store.h ../include/openssl/symhacks.h
+-gendh.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
+-gendh.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-gendh.o: ../include/openssl/x509v3.h apps.h gendh.c
++gendh.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++gendh.o: ../include/openssl/engine.h ../include/openssl/err.h
++gendh.o: ../include/openssl/evp.h ../include/openssl/fips.h
++gendh.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++gendh.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++gendh.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++gendh.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++gendh.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++gendh.o: ../include/openssl/rand.h ../include/openssl/rsa.h
++gendh.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++gendh.o: ../include/openssl/stack.h ../include/openssl/store.h
++gendh.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++gendh.o: ../include/openssl/ui.h ../include/openssl/x509.h
++gendh.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
++gendh.o: gendh.c
+ gendsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ gendsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ gendsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ gendsa.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
+-gendsa.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-gendsa.o: ../include/openssl/engine.h ../include/openssl/err.h
+-gendsa.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-gendsa.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-gendsa.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-gendsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-gendsa.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-gendsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-gendsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-gendsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-gendsa.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-gendsa.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-gendsa.o: gendsa.c
++gendsa.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++gendsa.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++gendsa.o: ../include/openssl/err.h ../include/openssl/evp.h
++gendsa.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++gendsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++gendsa.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++gendsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++gendsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++gendsa.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++gendsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
++gendsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++gendsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++gendsa.o: ../include/openssl/x509v3.h apps.h gendsa.c
+ genrsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ genrsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ genrsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ genrsa.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+ genrsa.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-genrsa.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-genrsa.o: ../include/openssl/err.h ../include/openssl/evp.h
+-genrsa.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+-genrsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-genrsa.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-genrsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-genrsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-genrsa.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+-genrsa.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+-genrsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-genrsa.o: ../include/openssl/store.h ../include/openssl/symhacks.h
+-genrsa.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
+-genrsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-genrsa.o: ../include/openssl/x509v3.h apps.h genrsa.c
++genrsa.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++genrsa.o: ../include/openssl/engine.h ../include/openssl/err.h
++genrsa.o: ../include/openssl/evp.h ../include/openssl/fips.h
++genrsa.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++genrsa.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++genrsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++genrsa.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++genrsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++genrsa.o: ../include/openssl/rand.h ../include/openssl/rsa.h
++genrsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++genrsa.o: ../include/openssl/stack.h ../include/openssl/store.h
++genrsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++genrsa.o: ../include/openssl/ui.h ../include/openssl/x509.h
++genrsa.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
++genrsa.o: genrsa.c
+ nseq.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ nseq.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ nseq.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-nseq.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-nseq.o: ../include/openssl/engine.h ../include/openssl/err.h
+-nseq.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-nseq.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-nseq.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-nseq.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-nseq.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-nseq.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-nseq.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-nseq.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-nseq.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-nseq.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h nseq.c
++nseq.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++nseq.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++nseq.o: ../include/openssl/err.h ../include/openssl/evp.h
++nseq.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++nseq.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++nseq.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++nseq.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++nseq.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++nseq.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++nseq.o: ../include/openssl/sha.h ../include/openssl/stack.h
++nseq.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++nseq.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++nseq.o: ../include/openssl/x509v3.h apps.h nseq.c
+ ocsp.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ ocsp.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ ocsp.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ ocsp.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ ocsp.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-ocsp.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-ocsp.o: ../include/openssl/err.h ../include/openssl/evp.h
+-ocsp.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-ocsp.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-ocsp.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-ocsp.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-ocsp.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-ocsp.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-ocsp.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-ocsp.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+-ocsp.o: ../include/openssl/sha.h ../include/openssl/ssl.h
+-ocsp.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+-ocsp.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+-ocsp.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+-ocsp.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-ocsp.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h ocsp.c
++ocsp.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++ocsp.o: ../include/openssl/engine.h ../include/openssl/err.h
++ocsp.o: ../include/openssl/evp.h ../include/openssl/fips.h
++ocsp.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++ocsp.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++ocsp.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++ocsp.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++ocsp.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++ocsp.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++ocsp.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++ocsp.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++ocsp.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++ocsp.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++ocsp.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++ocsp.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
++ocsp.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++ocsp.o: ../include/openssl/x509v3.h apps.h ocsp.c
+ openssl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ openssl.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ openssl.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ openssl.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ openssl.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-openssl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-openssl.o: ../include/openssl/err.h ../include/openssl/evp.h
+-openssl.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-openssl.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-openssl.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-openssl.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-openssl.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-openssl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-openssl.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-openssl.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+-openssl.o: ../include/openssl/sha.h ../include/openssl/ssl.h
+-openssl.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+-openssl.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+-openssl.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+-openssl.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-openssl.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-openssl.o: openssl.c progs.h s_apps.h
++openssl.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++openssl.o: ../include/openssl/engine.h ../include/openssl/err.h
++openssl.o: ../include/openssl/evp.h ../include/openssl/fips.h
++openssl.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++openssl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++openssl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++openssl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++openssl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++openssl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++openssl.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++openssl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++openssl.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++openssl.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++openssl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++openssl.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
++openssl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++openssl.o: ../include/openssl/x509v3.h apps.h openssl.c progs.h s_apps.h
+ passwd.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ passwd.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ passwd.o: ../include/openssl/crypto.h ../include/openssl/des.h
+ passwd.o: ../include/openssl/des_old.h ../include/openssl/e_os2.h
+-passwd.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-passwd.o: ../include/openssl/engine.h ../include/openssl/err.h
+-passwd.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-passwd.o: ../include/openssl/lhash.h ../include/openssl/md5.h
+-passwd.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-passwd.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-passwd.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-passwd.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+-passwd.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-passwd.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-passwd.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
+-passwd.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
+-passwd.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-passwd.o: passwd.c
++passwd.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++passwd.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++passwd.o: ../include/openssl/err.h ../include/openssl/evp.h
++passwd.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++passwd.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
++passwd.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++passwd.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++passwd.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
++passwd.o: ../include/openssl/rand.h ../include/openssl/safestack.h
++passwd.o: ../include/openssl/sha.h ../include/openssl/stack.h
++passwd.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++passwd.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
++passwd.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++passwd.o: ../include/openssl/x509v3.h apps.h passwd.c
+ pkcs12.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ pkcs12.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ pkcs12.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-pkcs12.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-pkcs12.o: ../include/openssl/engine.h ../include/openssl/err.h
+-pkcs12.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-pkcs12.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-pkcs12.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-pkcs12.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-pkcs12.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-pkcs12.o: ../include/openssl/pem2.h ../include/openssl/pkcs12.h
+-pkcs12.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+-pkcs12.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-pkcs12.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-pkcs12.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-pkcs12.o: ../include/openssl/x509v3.h apps.h pkcs12.c
++pkcs12.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++pkcs12.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++pkcs12.o: ../include/openssl/err.h ../include/openssl/evp.h
++pkcs12.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++pkcs12.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++pkcs12.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++pkcs12.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++pkcs12.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++pkcs12.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
++pkcs12.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++pkcs12.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++pkcs12.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++pkcs12.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
++pkcs12.o: pkcs12.c
+ pkcs7.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ pkcs7.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ pkcs7.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-pkcs7.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-pkcs7.o: ../include/openssl/engine.h ../include/openssl/err.h
+-pkcs7.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-pkcs7.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-pkcs7.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-pkcs7.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-pkcs7.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-pkcs7.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-pkcs7.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-pkcs7.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-pkcs7.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-pkcs7.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-pkcs7.o: pkcs7.c
++pkcs7.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++pkcs7.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++pkcs7.o: ../include/openssl/err.h ../include/openssl/evp.h
++pkcs7.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++pkcs7.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++pkcs7.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++pkcs7.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++pkcs7.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++pkcs7.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++pkcs7.o: ../include/openssl/sha.h ../include/openssl/stack.h
++pkcs7.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++pkcs7.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++pkcs7.o: ../include/openssl/x509v3.h apps.h pkcs7.c
+ pkcs8.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ pkcs8.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ pkcs8.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-pkcs8.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-pkcs8.o: ../include/openssl/engine.h ../include/openssl/err.h
+-pkcs8.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-pkcs8.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-pkcs8.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-pkcs8.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-pkcs8.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-pkcs8.o: ../include/openssl/pem2.h ../include/openssl/pkcs12.h
+-pkcs8.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
+-pkcs8.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-pkcs8.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-pkcs8.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-pkcs8.o: ../include/openssl/x509v3.h apps.h pkcs8.c
++pkcs8.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++pkcs8.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++pkcs8.o: ../include/openssl/err.h ../include/openssl/evp.h
++pkcs8.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++pkcs8.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++pkcs8.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++pkcs8.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++pkcs8.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++pkcs8.o: ../include/openssl/pkcs12.h ../include/openssl/pkcs7.h
++pkcs8.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++pkcs8.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++pkcs8.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++pkcs8.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
++pkcs8.o: pkcs8.c
+ prime.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ prime.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ prime.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ prime.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-prime.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-prime.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-prime.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-prime.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-prime.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-prime.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+-prime.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-prime.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-prime.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-prime.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-prime.o: prime.c
++prime.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++prime.o: ../include/openssl/engine.h ../include/openssl/evp.h
++prime.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++prime.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++prime.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++prime.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++prime.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++prime.o: ../include/openssl/sha.h ../include/openssl/stack.h
++prime.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++prime.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++prime.o: ../include/openssl/x509v3.h apps.h prime.c
+ rand.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ rand.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ rand.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-rand.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-rand.o: ../include/openssl/engine.h ../include/openssl/err.h
+-rand.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-rand.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-rand.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-rand.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-rand.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+-rand.o: ../include/openssl/rand.h ../include/openssl/safestack.h
+-rand.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-rand.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-rand.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-rand.o: ../include/openssl/x509v3.h apps.h rand.c
++rand.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++rand.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++rand.o: ../include/openssl/err.h ../include/openssl/evp.h
++rand.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++rand.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++rand.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++rand.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++rand.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
++rand.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++rand.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++rand.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++rand.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h rand.c
+ req.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ req.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ req.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ req.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+ req.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-req.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-req.o: ../include/openssl/err.h ../include/openssl/evp.h
+-req.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+-req.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-req.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-req.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-req.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-req.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
+-req.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+-req.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-req.o: ../include/openssl/store.h ../include/openssl/symhacks.h
+-req.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
+-req.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-req.o: ../include/openssl/x509v3.h apps.h req.c
++req.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++req.o: ../include/openssl/engine.h ../include/openssl/err.h
++req.o: ../include/openssl/evp.h ../include/openssl/fips.h
++req.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++req.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++req.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++req.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++req.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++req.o: ../include/openssl/rand.h ../include/openssl/rsa.h
++req.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++req.o: ../include/openssl/stack.h ../include/openssl/store.h
++req.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++req.o: ../include/openssl/ui.h ../include/openssl/x509.h
++req.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h req.c
+ rsa.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ rsa.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ rsa.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ rsa.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-rsa.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-rsa.o: ../include/openssl/err.h ../include/openssl/evp.h
+-rsa.o: ../include/openssl/fips.h ../include/openssl/lhash.h
+-rsa.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-rsa.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-rsa.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-rsa.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-rsa.o: ../include/openssl/pkcs7.h ../include/openssl/rsa.h
+-rsa.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-rsa.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-rsa.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-rsa.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h rsa.c
++rsa.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++rsa.o: ../include/openssl/engine.h ../include/openssl/err.h
++rsa.o: ../include/openssl/evp.h ../include/openssl/fips.h
++rsa.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++rsa.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++rsa.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++rsa.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++rsa.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++rsa.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
++rsa.o: ../include/openssl/sha.h ../include/openssl/stack.h
++rsa.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++rsa.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++rsa.o: ../include/openssl/x509v3.h apps.h rsa.c
+ rsautl.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ rsautl.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ rsautl.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-rsautl.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-rsautl.o: ../include/openssl/engine.h ../include/openssl/err.h
+-rsautl.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-rsautl.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-rsautl.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-rsautl.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-rsautl.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-rsautl.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-rsautl.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+-rsautl.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-rsautl.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-rsautl.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-rsautl.o: ../include/openssl/x509v3.h apps.h rsautl.c
++rsautl.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++rsautl.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++rsautl.o: ../include/openssl/err.h ../include/openssl/evp.h
++rsautl.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++rsautl.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++rsautl.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++rsautl.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++rsautl.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++rsautl.o: ../include/openssl/pkcs7.h ../include/openssl/rsa.h
++rsautl.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++rsautl.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++rsautl.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++rsautl.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
++rsautl.o: rsautl.c
+ s_cb.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ s_cb.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ s_cb.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ s_cb.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ s_cb.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-s_cb.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-s_cb.o: ../include/openssl/err.h ../include/openssl/evp.h
+-s_cb.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-s_cb.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-s_cb.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-s_cb.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-s_cb.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-s_cb.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-s_cb.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-s_cb.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+-s_cb.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-s_cb.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+-s_cb.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+-s_cb.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-s_cb.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
+-s_cb.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-s_cb.o: ../include/openssl/x509v3.h apps.h s_apps.h s_cb.c
++s_cb.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++s_cb.o: ../include/openssl/engine.h ../include/openssl/err.h
++s_cb.o: ../include/openssl/evp.h ../include/openssl/fips.h
++s_cb.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++s_cb.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++s_cb.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++s_cb.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++s_cb.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++s_cb.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++s_cb.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++s_cb.o: ../include/openssl/rand.h ../include/openssl/safestack.h
++s_cb.o: ../include/openssl/sha.h ../include/openssl/ssl.h
++s_cb.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
++s_cb.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
++s_cb.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
++s_cb.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++s_cb.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
++s_cb.o: s_apps.h s_cb.c
+ s_client.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ s_client.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ s_client.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ s_client.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ s_client.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-s_client.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-s_client.o: ../include/openssl/err.h ../include/openssl/evp.h
+-s_client.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-s_client.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-s_client.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-s_client.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-s_client.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-s_client.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-s_client.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-s_client.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+-s_client.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-s_client.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
+-s_client.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
+-s_client.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-s_client.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
+-s_client.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-s_client.o: ../include/openssl/x509v3.h apps.h s_apps.h s_client.c timeouts.h
++s_client.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++s_client.o: ../include/openssl/engine.h ../include/openssl/err.h
++s_client.o: ../include/openssl/evp.h ../include/openssl/fips.h
++s_client.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++s_client.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++s_client.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++s_client.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++s_client.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++s_client.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++s_client.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++s_client.o: ../include/openssl/rand.h ../include/openssl/safestack.h
++s_client.o: ../include/openssl/sha.h ../include/openssl/ssl.h
++s_client.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
++s_client.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
++s_client.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
++s_client.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++s_client.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
++s_client.o: s_apps.h s_client.c timeouts.h
+ s_server.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ s_server.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ s_server.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ s_server.o: ../include/openssl/crypto.h ../include/openssl/dh.h
+ s_server.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
+ s_server.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-s_server.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-s_server.o: ../include/openssl/err.h ../include/openssl/evp.h
+-s_server.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-s_server.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-s_server.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-s_server.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-s_server.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-s_server.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-s_server.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-s_server.o: ../include/openssl/pqueue.h ../include/openssl/rand.h
+-s_server.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+-s_server.o: ../include/openssl/sha.h ../include/openssl/ssl.h
+-s_server.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+-s_server.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+-s_server.o: ../include/openssl/store.h ../include/openssl/symhacks.h
+-s_server.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
+-s_server.o: ../include/openssl/ui.h ../include/openssl/x509.h
+-s_server.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-s_server.o: s_apps.h s_server.c timeouts.h
++s_server.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++s_server.o: ../include/openssl/engine.h ../include/openssl/err.h
++s_server.o: ../include/openssl/evp.h ../include/openssl/fips.h
++s_server.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++s_server.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++s_server.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++s_server.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++s_server.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++s_server.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++s_server.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++s_server.o: ../include/openssl/rand.h ../include/openssl/rsa.h
++s_server.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++s_server.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++s_server.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++s_server.o: ../include/openssl/stack.h ../include/openssl/store.h
++s_server.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
++s_server.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
++s_server.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++s_server.o: ../include/openssl/x509v3.h apps.h s_apps.h s_server.c timeouts.h
+ s_socket.o: ../e_os.h ../e_os2.h ../include/openssl/asn1.h
+ s_socket.o: ../include/openssl/bio.h ../include/openssl/bn.h
+ s_socket.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ s_socket.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ s_socket.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h
+-s_socket.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-s_socket.o: ../include/openssl/engine.h ../include/openssl/evp.h
+-s_socket.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-s_socket.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-s_socket.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-s_socket.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-s_socket.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-s_socket.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-s_socket.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-s_socket.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+-s_socket.o: ../include/openssl/sha.h ../include/openssl/ssl.h
+-s_socket.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+-s_socket.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+-s_socket.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+-s_socket.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-s_socket.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-s_socket.o: s_apps.h s_socket.c
++s_socket.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++s_socket.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++s_socket.o: ../include/openssl/evp.h ../include/openssl/fips.h
++s_socket.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++s_socket.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++s_socket.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++s_socket.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++s_socket.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++s_socket.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++s_socket.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++s_socket.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++s_socket.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++s_socket.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++s_socket.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++s_socket.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
++s_socket.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++s_socket.o: ../include/openssl/x509v3.h apps.h s_apps.h s_socket.c
+ s_time.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ s_time.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ s_time.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ s_time.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ s_time.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-s_time.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-s_time.o: ../include/openssl/err.h ../include/openssl/evp.h
+-s_time.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-s_time.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-s_time.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-s_time.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-s_time.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-s_time.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-s_time.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-s_time.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+-s_time.o: ../include/openssl/sha.h ../include/openssl/ssl.h
+-s_time.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+-s_time.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+-s_time.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+-s_time.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-s_time.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-s_time.o: s_apps.h s_time.c
++s_time.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++s_time.o: ../include/openssl/engine.h ../include/openssl/err.h
++s_time.o: ../include/openssl/evp.h ../include/openssl/fips.h
++s_time.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++s_time.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++s_time.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++s_time.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++s_time.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++s_time.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++s_time.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++s_time.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++s_time.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++s_time.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++s_time.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++s_time.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
++s_time.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++s_time.o: ../include/openssl/x509v3.h apps.h s_apps.h s_time.c
+ sess_id.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ sess_id.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ sess_id.o: ../include/openssl/comp.h ../include/openssl/conf.h
+ sess_id.o: ../include/openssl/crypto.h ../include/openssl/dtls1.h
+ sess_id.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-sess_id.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-sess_id.o: ../include/openssl/err.h ../include/openssl/evp.h
+-sess_id.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-sess_id.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+-sess_id.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-sess_id.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-sess_id.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-sess_id.o: ../include/openssl/pem.h ../include/openssl/pem2.h
+-sess_id.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
+-sess_id.o: ../include/openssl/pqueue.h ../include/openssl/safestack.h
+-sess_id.o: ../include/openssl/sha.h ../include/openssl/ssl.h
+-sess_id.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+-sess_id.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+-sess_id.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+-sess_id.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-sess_id.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-sess_id.o: sess_id.c
++sess_id.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++sess_id.o: ../include/openssl/engine.h ../include/openssl/err.h
++sess_id.o: ../include/openssl/evp.h ../include/openssl/fips.h
++sess_id.o: ../include/openssl/hmac.h ../include/openssl/kssl.h
++sess_id.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
++sess_id.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++sess_id.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++sess_id.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
++sess_id.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
++sess_id.o: ../include/openssl/pq_compat.h ../include/openssl/pqueue.h
++sess_id.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++sess_id.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++sess_id.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++sess_id.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++sess_id.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h
++sess_id.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++sess_id.o: ../include/openssl/x509v3.h apps.h sess_id.c
+ smime.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ smime.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ smime.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-smime.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-smime.o: ../include/openssl/engine.h ../include/openssl/err.h
+-smime.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-smime.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-smime.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-smime.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-smime.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-smime.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-smime.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-smime.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-smime.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-smime.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-smime.o: smime.c
++smime.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++smime.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++smime.o: ../include/openssl/err.h ../include/openssl/evp.h
++smime.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++smime.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++smime.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++smime.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++smime.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++smime.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++smime.o: ../include/openssl/sha.h ../include/openssl/stack.h
++smime.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++smime.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++smime.o: ../include/openssl/x509v3.h apps.h smime.c
+ speed.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
+ speed.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
+ speed.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+@@ -880,88 +897,89 @@ speed.o: ../include/openssl/cast.h ../include/open
+ speed.o: ../include/openssl/crypto.h ../include/openssl/des.h
+ speed.o: ../include/openssl/des_old.h ../include/openssl/dsa.h
+ speed.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+-speed.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
+-speed.o: ../include/openssl/err.h ../include/openssl/evp.h
+-speed.o: ../include/openssl/fips.h ../include/openssl/hmac.h
+-speed.o: ../include/openssl/idea.h ../include/openssl/lhash.h
+-speed.o: ../include/openssl/md2.h ../include/openssl/md4.h
+-speed.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
+-speed.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-speed.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-speed.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
+-speed.o: ../include/openssl/rand.h ../include/openssl/rc2.h
+-speed.o: ../include/openssl/rc4.h ../include/openssl/ripemd.h
+-speed.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+-speed.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-speed.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-speed.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
+-speed.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-speed.o: ../include/openssl/x509v3.h apps.h speed.c testdsa.h testrsa.h
++speed.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++speed.o: ../include/openssl/engine.h ../include/openssl/err.h
++speed.o: ../include/openssl/evp.h ../include/openssl/fips.h
++speed.o: ../include/openssl/hmac.h ../include/openssl/idea.h
++speed.o: ../include/openssl/lhash.h ../include/openssl/md2.h
++speed.o: ../include/openssl/md4.h ../include/openssl/md5.h
++speed.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++speed.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++speed.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++speed.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h
++speed.o: ../include/openssl/rc2.h ../include/openssl/rc4.h
++speed.o: ../include/openssl/ripemd.h ../include/openssl/rsa.h
++speed.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++speed.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++speed.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
++speed.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
++speed.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
++speed.o: speed.c testdsa.h testrsa.h
+ spkac.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ spkac.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ spkac.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-spkac.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-spkac.o: ../include/openssl/engine.h ../include/openssl/err.h
+-spkac.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-spkac.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-spkac.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-spkac.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-spkac.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-spkac.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-spkac.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-spkac.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-spkac.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-spkac.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-spkac.o: spkac.c
++spkac.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++spkac.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++spkac.o: ../include/openssl/err.h ../include/openssl/evp.h
++spkac.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++spkac.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++spkac.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++spkac.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++spkac.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++spkac.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++spkac.o: ../include/openssl/sha.h ../include/openssl/stack.h
++spkac.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++spkac.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++spkac.o: ../include/openssl/x509v3.h apps.h spkac.c
+ verify.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ verify.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ verify.o: ../include/openssl/crypto.h ../include/openssl/e_os2.h
+-verify.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-verify.o: ../include/openssl/engine.h ../include/openssl/err.h
+-verify.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-verify.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-verify.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-verify.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-verify.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-verify.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-verify.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-verify.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-verify.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
+-verify.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-verify.o: verify.c
++verify.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++verify.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++verify.o: ../include/openssl/err.h ../include/openssl/evp.h
++verify.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++verify.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++verify.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++verify.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++verify.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++verify.o: ../include/openssl/pkcs7.h ../include/openssl/safestack.h
++verify.o: ../include/openssl/sha.h ../include/openssl/stack.h
++verify.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++verify.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++verify.o: ../include/openssl/x509v3.h apps.h verify.c
+ version.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ version.o: ../include/openssl/blowfish.h ../include/openssl/bn.h
+ version.o: ../include/openssl/buffer.h ../include/openssl/conf.h
+ version.o: ../include/openssl/crypto.h ../include/openssl/des.h
+ version.o: ../include/openssl/des_old.h ../include/openssl/e_os2.h
+-version.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-version.o: ../include/openssl/engine.h ../include/openssl/evp.h
+-version.o: ../include/openssl/fips.h ../include/openssl/idea.h
+-version.o: ../include/openssl/lhash.h ../include/openssl/md2.h
+-version.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+-version.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
+-version.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
+-version.o: ../include/openssl/pkcs7.h ../include/openssl/rc4.h
+-version.o: ../include/openssl/safestack.h ../include/openssl/sha.h
+-version.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+-version.o: ../include/openssl/txt_db.h ../include/openssl/ui.h
+-version.o: ../include/openssl/ui_compat.h ../include/openssl/x509.h
+-version.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h
+-version.o: version.c
++version.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++version.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++version.o: ../include/openssl/evp.h ../include/openssl/fips.h
++version.o: ../include/openssl/idea.h ../include/openssl/lhash.h
++version.o: ../include/openssl/md2.h ../include/openssl/obj_mac.h
++version.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
++version.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
++version.o: ../include/openssl/ossl_typ.h ../include/openssl/pkcs7.h
++version.o: ../include/openssl/rc4.h ../include/openssl/safestack.h
++version.o: ../include/openssl/sha.h ../include/openssl/stack.h
++version.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
++version.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h
++version.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
++version.o: ../include/openssl/x509v3.h apps.h version.c
+ x509.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ x509.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ x509.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ x509.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
+-x509.o: ../include/openssl/ec.h ../include/openssl/ecdsa.h
+-x509.o: ../include/openssl/engine.h ../include/openssl/err.h
+-x509.o: ../include/openssl/evp.h ../include/openssl/fips.h
+-x509.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
+-x509.o: ../include/openssl/objects.h ../include/openssl/ocsp.h
+-x509.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+-x509.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+-x509.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+-x509.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+-x509.o: ../include/openssl/sha.h ../include/openssl/stack.h
+-x509.o: ../include/openssl/symhacks.h ../include/openssl/txt_db.h
+-x509.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+-x509.o: ../include/openssl/x509v3.h apps.h x509.c
++x509.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
++x509.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h
++x509.o: ../include/openssl/err.h ../include/openssl/evp.h
++x509.o: ../include/openssl/fips.h ../include/openssl/lhash.h
++x509.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
++x509.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h
++x509.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++x509.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++x509.o: ../include/openssl/pkcs7.h ../include/openssl/rsa.h
++x509.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++x509.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++x509.o: ../include/openssl/txt_db.h ../include/openssl/x509.h
++x509.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h x509.c
+Index: crypto/openssl/apps/apps.c
+===================================================================
+--- crypto/openssl/apps/apps.c	(revision 248771)
++++ crypto/openssl/apps/apps.c	(working copy)
+@@ -2052,7 +2052,7 @@ X509_NAME *parse_name(char *subject, long chtype,
+ 	X509_NAME *n = NULL;
+ 	int nid;
+ 
+-	if (!buf || !ne_types || !ne_values)
++	if (!buf || !ne_types || !ne_values || !mval)
+ 		{
+ 		BIO_printf(bio_err, "malloc error\n");
+ 		goto error;
+@@ -2156,6 +2156,7 @@ X509_NAME *parse_name(char *subject, long chtype,
+ 	OPENSSL_free(ne_values);
+ 	OPENSSL_free(ne_types);
+ 	OPENSSL_free(buf);
++	OPENSSL_free(mval);
+ 	return n;
+ 
+ error:
+@@ -2164,6 +2165,8 @@ error:
+ 		OPENSSL_free(ne_values);
+ 	if (ne_types)
+ 		OPENSSL_free(ne_types);
++	if (mval)
++		OPENSSL_free(mval);
+ 	if (buf)
+ 		OPENSSL_free(buf);
+ 	return NULL;
+Index: crypto/openssl/apps/dhparam.c
+===================================================================
+--- crypto/openssl/apps/dhparam.c	(revision 248771)
++++ crypto/openssl/apps/dhparam.c	(working copy)
+@@ -332,7 +332,6 @@ bad:
+ 			BIO_printf(bio_err,"This is going to take a long time\n");
+ 			if(!dh || !DH_generate_parameters_ex(dh, num, g, &cb))
+ 				{
+-				if(dh) DH_free(dh);
+ 				ERR_print_errors(bio_err);
+ 				goto end;
+ 				}
+Index: crypto/openssl/apps/s_server.c
+===================================================================
+--- crypto/openssl/apps/s_server.c	(revision 248771)
++++ crypto/openssl/apps/s_server.c	(working copy)
+@@ -1550,6 +1550,12 @@ end:
+ 	if (dpass)
+ 		OPENSSL_free(dpass);
+ #ifndef OPENSSL_NO_TLSEXT
++	if (tlscstatp.host)
++		OPENSSL_free(tlscstatp.host);
++	if (tlscstatp.port)
++		OPENSSL_free(tlscstatp.port);
++	if (tlscstatp.path)
++		OPENSSL_free(tlscstatp.path);
+ 	if (ctx2 != NULL) SSL_CTX_free(ctx2);
+ 	if (s_cert2)
+ 		X509_free(s_cert2);
+Index: crypto/openssl/crypto/asn1/a_strex.c
+===================================================================
+--- crypto/openssl/crypto/asn1/a_strex.c	(revision 248771)
++++ crypto/openssl/crypto/asn1/a_strex.c	(working copy)
+@@ -567,6 +567,7 @@ int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_
+ 	if(mbflag == -1) return -1;
+ 	mbflag |= MBSTRING_FLAG;
+ 	stmp.data = NULL;
++	stmp.length = 0;
+ 	ret = ASN1_mbstring_copy(&str, in->data, in->length, mbflag, B_ASN1_UTF8STRING);
+ 	if(ret < 0) return ret;
+ 	*out = stmp.data;
+Index: crypto/openssl/crypto/asn1/a_verify.c
+===================================================================
+--- crypto/openssl/crypto/asn1/a_verify.c	(revision 248771)
++++ crypto/openssl/crypto/asn1/a_verify.c	(working copy)
+@@ -138,6 +138,12 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALG
+ 	unsigned char *buf_in=NULL;
+ 	int ret= -1,i,inl;
+ 
++	if (!pkey)
++		{
++		ASN1err(ASN1_F_ASN1_ITEM_VERIFY, ERR_R_PASSED_NULL_PARAMETER);
++		return -1;
++		}
++
+ 	EVP_MD_CTX_init(&ctx);
+ 	i=OBJ_obj2nid(a->algorithm);
+ 	type=EVP_get_digestbyname(OBJ_nid2sn(i));
+Index: crypto/openssl/crypto/asn1/x_pubkey.c
+===================================================================
+--- crypto/openssl/crypto/asn1/x_pubkey.c	(revision 248771)
++++ crypto/openssl/crypto/asn1/x_pubkey.c	(working copy)
+@@ -371,12 +371,15 @@ EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key)
+ 	CRYPTO_w_lock(CRYPTO_LOCK_EVP_PKEY);
+ 	if (key->pkey)
+ 		{
++		CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
+ 		EVP_PKEY_free(ret);
+ 		ret = key->pkey;
+ 		}
+ 	else
++		{
+ 		key->pkey = ret;
+-	CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
++		CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
++		}
+ 	CRYPTO_add(&ret->references, 1, CRYPTO_LOCK_EVP_PKEY);
+ 	return(ret);
+ err:
+Index: crypto/openssl/crypto/bn/bn_word.c
+===================================================================
+--- crypto/openssl/crypto/bn/bn_word.c	(revision 248771)
++++ crypto/openssl/crypto/bn/bn_word.c	(working copy)
+@@ -144,26 +144,17 @@ int BN_add_word(BIGNUM *a, BN_ULONG w)
+ 			a->neg=!(a->neg);
+ 		return(i);
+ 		}
+-	/* Only expand (and risk failing) if it's possibly necessary */
+-	if (((BN_ULONG)(a->d[a->top - 1] + 1) == 0) &&
+-			(bn_wexpand(a,a->top+1) == NULL))
+-		return(0);
+-	i=0;
+-	for (;;)
++	for (i=0;w!=0 && i<a->top;i++)
+ 		{
+-		if (i >= a->top)
+-			l=w;
+-		else
+-			l=(a->d[i]+w)&BN_MASK2;
+-		a->d[i]=l;
+-		if (w > l)
+-			w=1;
+-		else
+-			break;
+-		i++;
++		a->d[i] = l = (a->d[i]+w)&BN_MASK2;
++		w = (w>l)?1:0;
+ 		}
+-	if (i >= a->top)
++	if (w && i==a->top)
++		{
++		if (bn_wexpand(a,a->top+1) == NULL) return 0;
+ 		a->top++;
++		a->d[i]=w;
++		}
+ 	bn_check_top(a);
+ 	return(1);
+ 	}
+Index: crypto/openssl/crypto/cryptlib.c
+===================================================================
+--- crypto/openssl/crypto/cryptlib.c	(revision 248771)
++++ crypto/openssl/crypto/cryptlib.c	(working copy)
+@@ -542,3 +542,19 @@ void OpenSSLDie(const char *file,int line,const ch
+ 	}
+ 
+ void *OPENSSL_stderr(void)	{ return stderr; }
++
++#ifndef OPENSSL_FIPS
++
++int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len)
++	{
++	size_t i;
++	const unsigned char *a = in_a;
++	const unsigned char *b = in_b;
++	unsigned char x = 0;
++
++	for (i = 0; i < len; i++)
++		x |= a[i] ^ b[i];
++
++	return x;
++	}
++#endif
+Index: crypto/openssl/crypto/crypto.h
+===================================================================
+--- crypto/openssl/crypto/crypto.h	(revision 248771)
++++ crypto/openssl/crypto/crypto.h	(working copy)
+@@ -591,6 +591,13 @@ int OPENSSL_isservice(void);
+ #define OPENSSL_HAVE_INIT	1
+ void OPENSSL_init(void);
+ 
++/* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. It
++ * takes an amount of time dependent on |len|, but independent of the contents
++ * of |a| and |b|. Unlike memcmp, it cannot be used to put elements into a
++ * defined order as the return value when a != b is undefined, other than to be
++ * non-zero. */
++int CRYPTO_memcmp(const void *a, const void *b, size_t len);
++
+ /* BEGIN ERROR CODES */
+ /* The following lines are auto generated by the script mkerr.pl. Any changes
+  * made after this point may be overwritten when the script is next run.
+Index: crypto/openssl/crypto/o_init.c
+===================================================================
+--- crypto/openssl/crypto/o_init.c	(revision 248771)
++++ crypto/openssl/crypto/o_init.c	(working copy)
+@@ -93,4 +93,18 @@ void OPENSSL_init(void)
+ #endif
+ 	}
+ 		
++#ifdef OPENSSL_FIPS
+ 
++int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len)
++	{
++	size_t i;
++	const unsigned char *a = in_a;
++	const unsigned char *b = in_b;
++	unsigned char x = 0;
++
++	for (i = 0; i < len; i++)
++		x |= a[i] ^ b[i];
++
++	return x;
++	}
++#endif
+Index: crypto/openssl/crypto/ocsp/ocsp_vfy.c
+===================================================================
+--- crypto/openssl/crypto/ocsp/ocsp_vfy.c	(revision 248771)
++++ crypto/openssl/crypto/ocsp/ocsp_vfy.c	(working copy)
+@@ -91,10 +91,13 @@ int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF
+ 		{
+ 		EVP_PKEY *skey;
+ 		skey = X509_get_pubkey(signer);
+-		ret = OCSP_BASICRESP_verify(bs, skey, 0);
+-		EVP_PKEY_free(skey);
+-		if(ret <= 0)
++		if (skey)
+ 			{
++			ret = OCSP_BASICRESP_verify(bs, skey, 0);
++			EVP_PKEY_free(skey);
++			}
++		if(!skey || ret <= 0)
++			{
+ 			OCSPerr(OCSP_F_OCSP_BASIC_VERIFY, OCSP_R_SIGNATURE_FAILURE);
+ 			goto end;
+ 			}
+@@ -108,6 +111,7 @@ int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF
+ 			init_res = X509_STORE_CTX_init(&ctx, st, signer, bs->certs);
+ 		if(!init_res)
+ 			{
++			ret = -1;
+ 			OCSPerr(OCSP_F_OCSP_BASIC_VERIFY,ERR_R_X509_LIB);
+ 			goto end;
+ 			}
+Index: crypto/openssl/crypto/opensslv.h
+===================================================================
+--- crypto/openssl/crypto/opensslv.h	(revision 248771)
++++ crypto/openssl/crypto/opensslv.h	(working copy)
+@@ -25,11 +25,11 @@
+  * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
+  *  major minor fix final patch/beta)
+  */
+-#define OPENSSL_VERSION_NUMBER	0x0090818fL
++#define OPENSSL_VERSION_NUMBER	0x0090819fL
+ #ifdef OPENSSL_FIPS
+-#define OPENSSL_VERSION_TEXT	"OpenSSL 0.9.8x-fips 10 May 2012"
++#define OPENSSL_VERSION_TEXT	"OpenSSL 0.9.8y-fips 5 Feb 2013"
+ #else
+-#define OPENSSL_VERSION_TEXT	"OpenSSL 0.9.8x 10 May 2012"
++#define OPENSSL_VERSION_TEXT	"OpenSSL 0.9.8y 5 Feb 2013"
+ #endif
+ #define OPENSSL_VERSION_PTEXT	" part of " OPENSSL_VERSION_TEXT
+ 
+Index: crypto/openssl/crypto/rsa/rsa_oaep.c
+===================================================================
+--- crypto/openssl/crypto/rsa/rsa_oaep.c	(revision 248771)
++++ crypto/openssl/crypto/rsa/rsa_oaep.c	(working copy)
+@@ -143,7 +143,7 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to
+ 
+ 	EVP_Digest((void *)param, plen, phash, NULL, EVP_sha1(), NULL);
+ 
+-	if (memcmp(db, phash, SHA_DIGEST_LENGTH) != 0 || bad)
++	if (CRYPTO_memcmp(db, phash, SHA_DIGEST_LENGTH) != 0 || bad)
+ 		goto decoding_err;
+ 	else
+ 		{
+Index: crypto/openssl/crypto/symhacks.h
+===================================================================
+--- crypto/openssl/crypto/symhacks.h	(revision 248771)
++++ crypto/openssl/crypto/symhacks.h	(working copy)
+@@ -252,15 +252,15 @@
+ #define EC_POINT_set_compressed_coordinates_GF2m \
+                                                 EC_POINT_set_compr_coords_GF2m
+ #undef ec_GF2m_simple_group_clear_finish
+-#define ec_GF2m_simple_group_clear_finish        ec_GF2m_simple_grp_clr_finish
++#define ec_GF2m_simple_group_clear_finish       ec_GF2m_simple_grp_clr_finish
+ #undef ec_GF2m_simple_group_check_discriminant
+ #define ec_GF2m_simple_group_check_discriminant	ec_GF2m_simple_grp_chk_discrim
+ #undef ec_GF2m_simple_point_clear_finish
+-#define ec_GF2m_simple_point_clear_finish        ec_GF2m_simple_pt_clr_finish
++#define ec_GF2m_simple_point_clear_finish       ec_GF2m_simple_pt_clr_finish
+ #undef ec_GF2m_simple_point_set_to_infinity
+-#define ec_GF2m_simple_point_set_to_infinity     ec_GF2m_simple_pt_set_to_inf
++#define ec_GF2m_simple_point_set_to_infinity    ec_GF2m_simple_pt_set_to_inf
+ #undef ec_GF2m_simple_points_make_affine
+-#define ec_GF2m_simple_points_make_affine        ec_GF2m_simple_pts_make_affine
++#define ec_GF2m_simple_points_make_affine       ec_GF2m_simple_pts_make_affine
+ #undef ec_GF2m_simple_point_set_affine_coordinates
+ #define ec_GF2m_simple_point_set_affine_coordinates \
+                                                 ec_GF2m_smp_pt_set_af_coords
+@@ -288,8 +288,6 @@
+ #define ec_GFp_simple_point_set_to_infinity     ec_GFp_simple_pt_set_to_inf
+ #undef ec_GFp_simple_points_make_affine
+ #define ec_GFp_simple_points_make_affine        ec_GFp_simple_pts_make_affine
+-#undef ec_GFp_simple_group_get_curve_GFp
+-#define ec_GFp_simple_group_get_curve_GFp       ec_GFp_simple_grp_get_curve_GFp
+ #undef ec_GFp_simple_set_Jprojective_coordinates_GFp
+ #define ec_GFp_simple_set_Jprojective_coordinates_GFp \
+                                                 ec_GFp_smp_set_Jproj_coords_GFp
+Index: crypto/openssl/doc/apps/CA.pl.pod
+===================================================================
+--- crypto/openssl/doc/apps/CA.pl.pod	(revision 248771)
++++ crypto/openssl/doc/apps/CA.pl.pod	(working copy)
+@@ -39,13 +39,13 @@ prints a usage message.
+ 
+ =item B<-newcert>
+ 
+-creates a new self signed certificate. The private key and certificate are
+-written to the file "newreq.pem".
++creates a new self signed certificate. The private key is written to the file
++"newkey.pem" and the request written to the file "newreq.pem".
+ 
+ =item B<-newreq>
+ 
+-creates a new certificate request. The private key and request are
+-written to the file "newreq.pem".
++creates a new certificate request. The private key is written to the file
++"newkey.pem" and the request written to the file "newreq.pem".
+ 
+ =item B<-newreq-nodes>
+ 
+Index: crypto/openssl/engines/e_capi.c
+===================================================================
+--- crypto/openssl/engines/e_capi.c	(revision 248771)
++++ crypto/openssl/engines/e_capi.c	(working copy)
+@@ -1409,10 +1409,13 @@ static PCCERT_CONTEXT capi_find_cert(CAPI_CTX *ctx
+ static CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const char *contname, char *provname, DWORD ptype, DWORD keyspec)
+ 	{
+ 	CAPI_KEY *key;
++    DWORD dwFlags = 0; 
+ 	key = OPENSSL_malloc(sizeof(CAPI_KEY));
+ 	CAPI_trace(ctx, "capi_get_key, contname=%s, provname=%s, type=%d\n", 
+ 						contname, provname, ptype);
+-	if (!CryptAcquireContextA(&key->hprov, contname, provname, ptype, 0))
++    if(ctx->store_flags & CERT_SYSTEM_STORE_LOCAL_MACHINE)
++        dwFlags = CRYPT_MACHINE_KEYSET;
++    if (!CryptAcquireContextA(&key->hprov, contname, provname, ptype, dwFlags)) 
+ 		{
+ 		CAPIerr(CAPI_F_CAPI_GET_KEY, CAPI_R_CRYPTACQUIRECONTEXT_ERROR);
+ 		capi_addlasterror();
+Index: crypto/openssl/openssl.spec
+===================================================================
+--- crypto/openssl/openssl.spec	(revision 248771)
++++ crypto/openssl/openssl.spec	(working copy)
+@@ -2,7 +2,7 @@
+ %define libmaj 0
+ %define libmin 9
+ %define librel 8
+-%define librev x
++%define librev y
+ Release: 1
+ 
+ %define openssldir /var/ssl
+Index: crypto/openssl/ssl/Makefile
+===================================================================
+--- crypto/openssl/ssl/Makefile	(revision 248771)
++++ crypto/openssl/ssl/Makefile	(working copy)
+@@ -22,7 +22,7 @@ LIB=$(TOP)/libssl.a
+ SHARED_LIB= libssl$(SHLIB_EXT)
+ LIBSRC=	\
+ 	s2_meth.c   s2_srvr.c s2_clnt.c  s2_lib.c  s2_enc.c s2_pkt.c \
+-	s3_meth.c   s3_srvr.c s3_clnt.c  s3_lib.c  s3_enc.c s3_pkt.c s3_both.c \
++	s3_meth.c   s3_srvr.c s3_clnt.c  s3_lib.c  s3_enc.c s3_pkt.c s3_both.c s3_cbc.c \
+ 	s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c          s23_pkt.c \
+ 	t1_meth.c   t1_srvr.c t1_clnt.c  t1_lib.c  t1_enc.c \
+ 	d1_meth.c   d1_srvr.c d1_clnt.c  d1_lib.c  d1_pkt.c \
+@@ -33,7 +33,7 @@ LIBSRC=	\
+ 	bio_ssl.c ssl_err.c kssl.c t1_reneg.c
+ LIBOBJ= \
+ 	s2_meth.o  s2_srvr.o  s2_clnt.o  s2_lib.o  s2_enc.o s2_pkt.o \
+-	s3_meth.o  s3_srvr.o  s3_clnt.o  s3_lib.o  s3_enc.o s3_pkt.o s3_both.o \
++	s3_meth.o  s3_srvr.o  s3_clnt.o  s3_lib.o  s3_enc.o s3_pkt.o s3_both.o s3_cbc.o \
+ 	s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o          s23_pkt.o \
+ 	t1_meth.o   t1_srvr.o t1_clnt.o  t1_lib.o  t1_enc.o \
+ 	d1_meth.o   d1_srvr.o d1_clnt.o  d1_lib.o  d1_pkt.o \
+@@ -545,6 +545,27 @@ s3_both.o: ../include/openssl/ssl23.h ../include/o
+ s3_both.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+ s3_both.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+ s3_both.o: ../include/openssl/x509_vfy.h s3_both.c ssl_locl.h
++s3_cbc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
++s3_cbc.o: ../include/openssl/bn.h ../include/openssl/buffer.h
++s3_cbc.o: ../include/openssl/comp.h ../include/openssl/crypto.h
++s3_cbc.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
++s3_cbc.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
++s3_cbc.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++s3_cbc.o: ../include/openssl/err.h ../include/openssl/evp.h
++s3_cbc.o: ../include/openssl/fips.h ../include/openssl/hmac.h
++s3_cbc.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
++s3_cbc.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
++s3_cbc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
++s3_cbc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++s3_cbc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++s3_cbc.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
++s3_cbc.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
++s3_cbc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++s3_cbc.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++s3_cbc.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++s3_cbc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++s3_cbc.o: ../include/openssl/tls1.h ../include/openssl/x509.h
++s3_cbc.o: ../include/openssl/x509_vfy.h s3_cbc.c ssl_locl.h
+ s3_clnt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ s3_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ s3_clnt.o: ../include/openssl/comp.h ../include/openssl/crypto.h
+Index: crypto/openssl/ssl/d1_enc.c
+===================================================================
+--- crypto/openssl/ssl/d1_enc.c	(revision 248771)
++++ crypto/openssl/ssl/d1_enc.c	(working copy)
+@@ -126,16 +126,30 @@
+ #include <openssl/des.h>
+ #endif
+ 
++/* dtls1_enc encrypts/decrypts the record in |s->wrec| / |s->rrec|, respectively.
++ *
++ * Returns:
++ *   0: (in non-constant time) if the record is publically invalid (i.e. too
++ *       short etc).
++ *   1: if the record's padding is valid / the encryption was successful.
++ *   -1: if the record's padding/AEAD-authenticator is invalid or, if sending,
++ *       an internal error occured. */
+ int dtls1_enc(SSL *s, int send)
+ 	{
+ 	SSL3_RECORD *rec;
+ 	EVP_CIPHER_CTX *ds;
+ 	unsigned long l;
+-	int bs,i,ii,j,k;
++	int bs,i,j,k,mac_size=0;
+ 	const EVP_CIPHER *enc;
+ 
+ 	if (send)
+ 		{
++		if (s->write_hash)
++			{
++			mac_size=EVP_MD_size(s->write_hash);
++			if (mac_size < 0)
++				return -1;
++			}
+ 		ds=s->enc_write_ctx;
+ 		rec= &(s->s3->wrec);
+ 		if (s->enc_write_ctx == NULL)
+@@ -156,6 +170,11 @@ int dtls1_enc(SSL *s, int send)
+ 		}
+ 	else
+ 		{
++		if (s->read_hash)
++			{
++			mac_size=EVP_MD_size(s->read_hash);
++			OPENSSL_assert(mac_size >= 0);
++			}
+ 		ds=s->enc_read_ctx;
+ 		rec= &(s->s3->rrec);
+ 		if (s->enc_read_ctx == NULL)
+@@ -220,7 +239,7 @@ int dtls1_enc(SSL *s, int send)
+ 		if (!send)
+ 			{
+ 			if (l == 0 || l%bs != 0)
+-				return -1;
++				return 0;
+ 			}
+ 		
+ 		EVP_Cipher(ds,rec->data,rec->input,l);
+@@ -235,43 +254,7 @@ int dtls1_enc(SSL *s, int send)
+ #endif	/* KSSL_DEBUG */
+ 
+ 		if ((bs != 1) && !send)
+-			{
+-			ii=i=rec->data[l-1]; /* padding_length */
+-			i++;
+-			if (s->options&SSL_OP_TLS_BLOCK_PADDING_BUG)
+-				{
+-				/* First packet is even in size, so check */
+-				if ((memcmp(s->s3->read_sequence,
+-					"\0\0\0\0\0\0\0\0",8) == 0) && !(ii & 1))
+-					s->s3->flags|=TLS1_FLAGS_TLS_PADDING_BUG;
+-				if (s->s3->flags & TLS1_FLAGS_TLS_PADDING_BUG)
+-					i--;
+-				}
+-			/* TLS 1.0 does not bound the number of padding bytes by the block size.
+-			 * All of them must have value 'padding_length'. */
+-			if (i + bs > (int)rec->length)
+-				{
+-				/* Incorrect padding. SSLerr() and ssl3_alert are done
+-				 * by caller: we don't want to reveal whether this is
+-				 * a decryption error or a MAC verification failure
+-				 * (see http://www.openssl.org/~bodo/tls-cbc.txt) 
+-				 */
+-				return -1;
+-				}
+-			for (j=(int)(l-i); j<(int)l; j++)
+-				{
+-				if (rec->data[j] != ii)
+-					{
+-					/* Incorrect padding */
+-					return -1;
+-					}
+-				}
+-			rec->length-=i;
+-
+-			rec->data += bs;    /* skip the implicit IV */
+-			rec->input += bs;
+-			rec->length -= bs;
+-			}
++			return tls1_cbc_remove_padding(s, rec, bs, mac_size);
+ 		}
+ 	return(1);
+ 	}
+Index: crypto/openssl/ssl/d1_pkt.c
+===================================================================
+--- crypto/openssl/ssl/d1_pkt.c	(revision 248771)
++++ crypto/openssl/ssl/d1_pkt.c	(working copy)
+@@ -327,17 +327,13 @@ dtls1_get_buffered_record(SSL *s)
+ static int
+ dtls1_process_record(SSL *s)
+ {
+-    int al;
+-	int clear=0;
+-    int enc_err;
++	int i,al;
++	int enc_err;
+ 	SSL_SESSION *sess;
+-    SSL3_RECORD *rr;
+-	unsigned int mac_size;
++	SSL3_RECORD *rr;
++	unsigned int mac_size, orig_len;
+ 	unsigned char md[EVP_MAX_MD_SIZE];
+-	int decryption_failed_or_bad_record_mac = 0;
+-	unsigned char *mac = NULL;
+ 
+-
+ 	rr= &(s->s3->rrec);
+     sess = s->session;
+ 
+@@ -366,14 +362,19 @@ dtls1_process_record(SSL *s)
+ 
+ 	/* decrypt in place in 'rr->input' */
+ 	rr->data=rr->input;
++	orig_len=rr->length;
+ 
+ 	enc_err = s->method->ssl3_enc->enc(s,0);
+-	if (enc_err <= 0)
++	/* enc_err is:
++	 *    0: (in non-constant time) if the record is publically invalid.
++	 *    1: if the padding is valid
++	 *    -1: if the padding is invalid */
++	if (enc_err == 0)
+ 		{
+-		/* To minimize information leaked via timing, we will always
+-		 * perform all computations before discarding the message.
+-		 */
+-		decryption_failed_or_bad_record_mac = 1;
++		/* For DTLS we simply ignore bad packets. */
++		rr->length = 0;
++		s->packet_length = 0;
++		goto err;
+ 		}
+ 
+ #ifdef TLS_DEBUG
+@@ -383,41 +384,59 @@ printf("\n");
+ #endif
+ 
+ 	/* r->length is now the compressed data plus mac */
+-if (	(sess == NULL) ||
+-		(s->enc_read_ctx == NULL) ||
+-		(s->read_hash == NULL))
+-    clear=1;
+-
+-	if (!clear)
++	if ((sess != NULL) &&
++	    (s->enc_read_ctx != NULL) &&
++	    (s->read_hash != NULL))
+ 		{
++		/* s->read_hash != NULL => mac_size != -1 */
++		unsigned char *mac = NULL;
++		unsigned char mac_tmp[EVP_MAX_MD_SIZE];
+ 		mac_size=EVP_MD_size(s->read_hash);
++		OPENSSL_assert(mac_size <= EVP_MAX_MD_SIZE);
+ 
+-		if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+mac_size)
++		/* orig_len is the length of the record before any padding was
++		 * removed. This is public information, as is the MAC in use,
++		 * therefore we can safely process the record in a different
++		 * amount of time if it's too short to possibly contain a MAC.
++		 */
++		if (orig_len < mac_size ||
++		    /* CBC records must have a padding length byte too. */
++		    (EVP_CIPHER_CTX_mode(s->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
++		     orig_len < mac_size+1))
+ 			{
+-#if 0 /* OK only for stream ciphers (then rr->length is visible from ciphertext anyway) */
+-			al=SSL_AD_RECORD_OVERFLOW;
+-			SSLerr(SSL_F_DTLS1_PROCESS_RECORD,SSL_R_PRE_MAC_LENGTH_TOO_LONG);
++			al=SSL_AD_DECODE_ERROR;
++			SSLerr(SSL_F_DTLS1_PROCESS_RECORD,SSL_R_LENGTH_TOO_SHORT);
+ 			goto f_err;
+-#else
+-			decryption_failed_or_bad_record_mac = 1;
+-#endif			
+ 			}
+-		/* check the MAC for rr->input (it's in mac_size bytes at the tail) */
+-		if (rr->length >= mac_size)
++
++		if (EVP_CIPHER_CTX_mode(s->enc_read_ctx) == EVP_CIPH_CBC_MODE)
+ 			{
++			/* We update the length so that the TLS header bytes
++			 * can be constructed correctly but we need to extract
++			 * the MAC in constant time from within the record,
++			 * without leaking the contents of the padding bytes.
++			 * */
++			mac = mac_tmp;
++			ssl3_cbc_copy_mac(mac_tmp, rr, mac_size, orig_len);
+ 			rr->length -= mac_size;
+-			mac = &rr->data[rr->length];
+ 			}
+ 		else
+-			rr->length = 0;
+-		s->method->ssl3_enc->mac(s,md,0);
+-		if (mac == NULL || memcmp(md, mac, mac_size) != 0)
+ 			{
+-			decryption_failed_or_bad_record_mac = 1;
++			/* In this case there's no padding, so |orig_len|
++			 * equals |rec->length| and we checked that there's
++			 * enough bytes for |mac_size| above. */
++			rr->length -= mac_size;
++			mac = &rr->data[rr->length];
+ 			}
++
++		i=s->method->ssl3_enc->mac(s,md,0 /* not send */);
++		if (i < 0 || mac == NULL || CRYPTO_memcmp(md, mac, (size_t)mac_size) != 0)
++			enc_err = -1;
++		if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+mac_size)
++			enc_err = -1;
+ 		}
+ 
+-	if (decryption_failed_or_bad_record_mac)
++	if (enc_err < 0)
+ 		{
+ 		/* decryption failed, silently discard message */
+ 		rr->length = 0;
+Index: crypto/openssl/ssl/s2_clnt.c
+===================================================================
+--- crypto/openssl/ssl/s2_clnt.c	(revision 248771)
++++ crypto/openssl/ssl/s2_clnt.c	(working copy)
+@@ -935,7 +935,7 @@ static int get_server_verify(SSL *s)
+ 		s->msg_callback(0, s->version, 0, p, len, s, s->msg_callback_arg); /* SERVER-VERIFY */
+ 	p += 1;
+ 
+-	if (memcmp(p,s->s2->challenge,s->s2->challenge_length) != 0)
++	if (CRYPTO_memcmp(p,s->s2->challenge,s->s2->challenge_length) != 0)
+ 		{
+ 		ssl2_return_error(s,SSL2_PE_UNDEFINED_ERROR);
+ 		SSLerr(SSL_F_GET_SERVER_VERIFY,SSL_R_CHALLENGE_IS_DIFFERENT);
+Index: crypto/openssl/ssl/s2_pkt.c
+===================================================================
+--- crypto/openssl/ssl/s2_pkt.c	(revision 248771)
++++ crypto/openssl/ssl/s2_pkt.c	(working copy)
+@@ -267,8 +267,7 @@ static int ssl2_read_internal(SSL *s, void *buf, i
+ 			s->s2->ract_data_length-=mac_size;
+ 			ssl2_mac(s,mac,0);
+ 			s->s2->ract_data_length-=s->s2->padding;
+-			if (	(memcmp(mac,s->s2->mac_data,
+-				(unsigned int)mac_size) != 0) ||
++			if (	(CRYPTO_memcmp(mac,s->s2->mac_data,mac_size) != 0) ||
+ 				(s->s2->rlength%EVP_CIPHER_CTX_block_size(s->enc_read_ctx) != 0))
+ 				{
+ 				SSLerr(SSL_F_SSL2_READ_INTERNAL,SSL_R_BAD_MAC_DECODE);
+Index: crypto/openssl/ssl/s3_both.c
+===================================================================
+--- crypto/openssl/ssl/s3_both.c	(revision 248771)
++++ crypto/openssl/ssl/s3_both.c	(working copy)
+@@ -242,7 +242,7 @@ int ssl3_get_finished(SSL *s, int a, int b)
+ 		goto f_err;
+ 		}
+ 
+-	if (memcmp(p, s->s3->tmp.peer_finish_md, i) != 0)
++	if (CRYPTO_memcmp(p, s->s3->tmp.peer_finish_md, i) != 0)
+ 		{
+ 		al=SSL_AD_DECRYPT_ERROR;
+ 		SSLerr(SSL_F_SSL3_GET_FINISHED,SSL_R_DIGEST_CHECK_FAILED);
+Index: crypto/openssl/ssl/s3_cbc.c
+===================================================================
+--- crypto/openssl/ssl/s3_cbc.c	(revision 0)
++++ crypto/openssl/ssl/s3_cbc.c	(working copy)
+@@ -0,0 +1,762 @@
++/* ssl/s3_cbc.c */
++/* ====================================================================
++ * Copyright (c) 2012 The OpenSSL Project.  All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions and the following disclaimer.
++ *
++ * 2. Redistributions in binary form must reproduce the above copyright
++ *    notice, this list of conditions and the following disclaimer in
++ *    the documentation and/or other materials provided with the
++ *    distribution.
++ *
++ * 3. All advertising materials mentioning features or use of this
++ *    software must display the following acknowledgment:
++ *    "This product includes software developed by the OpenSSL Project
++ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
++ *
++ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
++ *    endorse or promote products derived from this software without
++ *    prior written permission. For written permission, please contact
++ *    openssl-core@openssl.org.
++ *
++ * 5. Products derived from this software may not be called "OpenSSL"
++ *    nor may "OpenSSL" appear in their names without prior written
++ *    permission of the OpenSSL Project.
++ *
++ * 6. Redistributions of any form whatsoever must retain the following
++ *    acknowledgment:
++ *    "This product includes software developed by the OpenSSL Project
++ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
++ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
++ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ * ====================================================================
++ *
++ * This product includes cryptographic software written by Eric Young
++ * (eay@cryptsoft.com).  This product includes software written by Tim
++ * Hudson (tjh@cryptsoft.com).
++ *
++ */
++
++#include "ssl_locl.h"
++
++#include <openssl/md5.h>
++#include <openssl/sha.h>
++
++/* MAX_HASH_BIT_COUNT_BYTES is the maximum number of bytes in the hash's length
++ * field. (SHA-384/512 have 128-bit length.) */
++#define MAX_HASH_BIT_COUNT_BYTES 16
++
++/* MAX_HASH_BLOCK_SIZE is the maximum hash block size that we'll support.
++ * Currently SHA-384/512 has a 128-byte block size and that's the largest
++ * supported by TLS.) */
++#define MAX_HASH_BLOCK_SIZE 128
++
++/* Some utility functions are needed:
++ *
++ * These macros return the given value with the MSB copied to all the other
++ * bits. They use the fact that arithmetic shift shifts-in the sign bit.
++ * However, this is not ensured by the C standard so you may need to replace
++ * them with something else on odd CPUs. */
++#define DUPLICATE_MSB_TO_ALL(x) ( (unsigned)( (int)(x) >> (sizeof(int)*8-1) ) )
++#define DUPLICATE_MSB_TO_ALL_8(x) ((unsigned char)(DUPLICATE_MSB_TO_ALL(x)))
++
++/* constant_time_ge returns 0xff if a>=b and 0x00 otherwise. */
++static unsigned constant_time_ge(unsigned a, unsigned b)
++	{
++	a -= b;
++	return DUPLICATE_MSB_TO_ALL(~a);
++	}
++
++/* constant_time_eq_8 returns 0xff if a==b and 0x00 otherwise. */
++static unsigned char constant_time_eq_8(unsigned char a, unsigned char b)
++	{
++	unsigned c = a ^ b;
++	c--;
++	return DUPLICATE_MSB_TO_ALL_8(c);
++	}
++
++/* ssl3_cbc_remove_padding removes padding from the decrypted, SSLv3, CBC
++ * record in |rec| by updating |rec->length| in constant time.
++ *
++ * block_size: the block size of the cipher used to encrypt the record.
++ * returns:
++ *   0: (in non-constant time) if the record is publicly invalid.
++ *   1: if the padding was valid
++ *  -1: otherwise. */
++int ssl3_cbc_remove_padding(const SSL* s,
++			    SSL3_RECORD *rec,
++			    unsigned block_size,
++			    unsigned mac_size)
++	{
++	unsigned padding_length, good;
++	const unsigned overhead = 1 /* padding length byte */ + mac_size;
++
++	/* These lengths are all public so we can test them in non-constant
++	 * time. */
++	if (overhead > rec->length)
++		return 0;
++
++	padding_length = rec->data[rec->length-1];
++	good = constant_time_ge(rec->length, padding_length+overhead);
++	/* SSLv3 requires that the padding is minimal. */
++	good &= constant_time_ge(block_size, padding_length+1);
++	padding_length = good & (padding_length+1);
++	rec->length -= padding_length;
++	rec->type |= padding_length<<8;	/* kludge: pass padding length */
++	return (int)((good & 1) | (~good & -1));
++}
++
++/* tls1_cbc_remove_padding removes the CBC padding from the decrypted, TLS, CBC
++ * record in |rec| in constant time and returns 1 if the padding is valid and
++ * -1 otherwise. It also removes any explicit IV from the start of the record
++ * without leaking any timing about whether there was enough space after the
++ * padding was removed.
++ *
++ * block_size: the block size of the cipher used to encrypt the record.
++ * returns:
++ *   0: (in non-constant time) if the record is publicly invalid.
++ *   1: if the padding was valid
++ *  -1: otherwise. */
++int tls1_cbc_remove_padding(const SSL* s,
++			    SSL3_RECORD *rec,
++			    unsigned block_size,
++			    unsigned mac_size)
++	{
++	unsigned padding_length, good, to_check, i;
++	const char has_explicit_iv = s->version == DTLS1_VERSION;
++	const unsigned overhead = 1 /* padding length byte */ +
++				  mac_size +
++				  (has_explicit_iv ? block_size : 0);
++
++	/* These lengths are all public so we can test them in non-constant
++	 * time. */
++	if (overhead > rec->length)
++		return 0;
++
++	padding_length = rec->data[rec->length-1];
++
++	/* NB: if compression is in operation the first packet may not be of
++	 * even length so the padding bug check cannot be performed. This bug
++	 * workaround has been around since SSLeay so hopefully it is either
++	 * fixed now or no buggy implementation supports compression [steve]
++	 */
++	if ( (s->options&SSL_OP_TLS_BLOCK_PADDING_BUG) && !s->expand)
++		{
++		/* First packet is even in size, so check */
++		if ((memcmp(s->s3->read_sequence, "\0\0\0\0\0\0\0\0",8) == 0) &&
++		    !(padding_length & 1))
++			{
++			s->s3->flags|=TLS1_FLAGS_TLS_PADDING_BUG;
++			}
++		if ((s->s3->flags & TLS1_FLAGS_TLS_PADDING_BUG) &&
++		    padding_length > 0)
++			{
++			padding_length--;
++			}
++		}
++
++	good = constant_time_ge(rec->length, overhead+padding_length);
++	/* The padding consists of a length byte at the end of the record and
++	 * then that many bytes of padding, all with the same value as the
++	 * length byte. Thus, with the length byte included, there are i+1
++	 * bytes of padding.
++	 *
++	 * We can't check just |padding_length+1| bytes because that leaks
++	 * decrypted information. Therefore we always have to check the maximum
++	 * amount of padding possible. (Again, the length of the record is
++	 * public information so we can use it.) */
++	to_check = 255; /* maximum amount of padding. */
++	if (to_check > rec->length-1)
++		to_check = rec->length-1;
++
++	for (i = 0; i < to_check; i++)
++		{
++		unsigned char mask = constant_time_ge(padding_length, i);
++		unsigned char b = rec->data[rec->length-1-i];
++		/* The final |padding_length+1| bytes should all have the value
++		 * |padding_length|. Therefore the XOR should be zero. */
++		good &= ~(mask&(padding_length ^ b));
++		}
++
++	/* If any of the final |padding_length+1| bytes had the wrong value,
++	 * one or more of the lower eight bits of |good| will be cleared. We
++	 * AND the bottom 8 bits together and duplicate the result to all the
++	 * bits. */
++	good &= good >> 4;
++	good &= good >> 2;
++	good &= good >> 1;
++	good <<= sizeof(good)*8-1;
++	good = DUPLICATE_MSB_TO_ALL(good);
++
++	padding_length = good & (padding_length+1);
++	rec->length -= padding_length;
++	rec->type |= padding_length<<8;	/* kludge: pass padding length */
++
++	/* We can always safely skip the explicit IV. We check at the beginning
++	 * of this function that the record has at least enough space for the
++	 * IV, MAC and padding length byte. (These can be checked in
++	 * non-constant time because it's all public information.) So, if the
++	 * padding was invalid, then we didn't change |rec->length| and this is
++	 * safe. If the padding was valid then we know that we have at least
++	 * overhead+padding_length bytes of space and so this is still safe
++	 * because overhead accounts for the explicit IV. */
++	if (has_explicit_iv)
++		{
++		rec->data += block_size;
++		rec->input += block_size;
++		rec->length -= block_size;
++		}
++
++	return (int)((good & 1) | (~good & -1));
++	}
++
++#if defined(_M_AMD64) || defined(__x86_64__)
++#define CBC_MAC_ROTATE_IN_PLACE
++#endif
++
++/* ssl3_cbc_copy_mac copies |md_size| bytes from the end of |rec| to |out| in
++ * constant time (independent of the concrete value of rec->length, which may
++ * vary within a 256-byte window).
++ *
++ * ssl3_cbc_remove_padding or tls1_cbc_remove_padding must be called prior to
++ * this function.
++ *
++ * On entry:
++ *   rec->orig_len >= md_size
++ *   md_size <= EVP_MAX_MD_SIZE
++ *
++ * If CBC_MAC_ROTATE_IN_PLACE is defined then the rotation is performed with
++ * variable accesses in a 64-byte-aligned buffer. Assuming that this fits into
++ * a single cache-line, then the variable memory accesses don't actually affect
++ * the timing. This has been tested to be true on Intel amd64 chips.
++ */
++void ssl3_cbc_copy_mac(unsigned char* out,
++		       const SSL3_RECORD *rec,
++		       unsigned md_size,unsigned orig_len)
++	{
++#if defined(CBC_MAC_ROTATE_IN_PLACE)
++	unsigned char rotated_mac_buf[EVP_MAX_MD_SIZE*2];
++	unsigned char *rotated_mac;
++#else
++	unsigned char rotated_mac[EVP_MAX_MD_SIZE];
++#endif
++
++	/* mac_end is the index of |rec->data| just after the end of the MAC. */
++	unsigned mac_end = rec->length;
++	unsigned mac_start = mac_end - md_size;
++	/* scan_start contains the number of bytes that we can ignore because
++	 * the MAC's position can only vary by 255 bytes. */
++	unsigned scan_start = 0;
++	unsigned i, j;
++	unsigned div_spoiler;
++	unsigned rotate_offset;
++
++	OPENSSL_assert(orig_len >= md_size);
++	OPENSSL_assert(md_size <= EVP_MAX_MD_SIZE);
++
++#if defined(CBC_MAC_ROTATE_IN_PLACE)
++	rotated_mac = (unsigned char*) (((intptr_t)(rotated_mac_buf + 64)) & ~63);
++#endif
++
++	/* This information is public so it's safe to branch based on it. */
++	if (orig_len > md_size + 255 + 1)
++		scan_start = orig_len - (md_size + 255 + 1);
++	/* div_spoiler contains a multiple of md_size that is used to cause the
++	 * modulo operation to be constant time. Without this, the time varies
++	 * based on the amount of padding when running on Intel chips at least.
++	 *
++	 * The aim of right-shifting md_size is so that the compiler doesn't
++	 * figure out that it can remove div_spoiler as that would require it
++	 * to prove that md_size is always even, which I hope is beyond it. */
++	div_spoiler = md_size >> 1;
++	div_spoiler <<= (sizeof(div_spoiler)-1)*8;
++	rotate_offset = (div_spoiler + mac_start - scan_start) % md_size;
++
++	memset(rotated_mac, 0, md_size);
++	for (i = scan_start; i < orig_len;)
++		{
++		for (j = 0; j < md_size && i < orig_len; i++, j++)
++			{
++			unsigned char mac_started = constant_time_ge(i, mac_start);
++			unsigned char mac_ended = constant_time_ge(i, mac_end);
++			unsigned char b = 0;
++			b = rec->data[i];
++			rotated_mac[j] |= b & mac_started & ~mac_ended;
++			}
++		}
++
++	/* Now rotate the MAC */
++#if defined(CBC_MAC_ROTATE_IN_PLACE)
++	j = 0;
++	for (i = 0; i < md_size; i++)
++		{
++		unsigned char offset = (div_spoiler + rotate_offset + i) % md_size;
++		out[j++] = rotated_mac[offset];
++		}
++#else
++	memset(out, 0, md_size);
++	for (i = 0; i < md_size; i++)
++		{
++		unsigned char offset = (div_spoiler + md_size - rotate_offset + i) % md_size;
++		for (j = 0; j < md_size; j++)
++			out[j] |= rotated_mac[i] & constant_time_eq_8(j, offset);
++		}
++#endif
++	}
++
++/* These functions serialize the state of a hash and thus perform the standard
++ * "final" operation without adding the padding and length that such a function
++ * typically does. */
++static void tls1_md5_final_raw(void* ctx, unsigned char *md_out)
++	{
++	MD5_CTX *md5 = ctx;
++	l2n(md5->A, md_out);
++	l2n(md5->B, md_out);
++	l2n(md5->C, md_out);
++	l2n(md5->D, md_out);
++	}
++
++static void tls1_sha1_final_raw(void* ctx, unsigned char *md_out)
++	{
++	SHA_CTX *sha1 = ctx;
++	l2n(sha1->h0, md_out);
++	l2n(sha1->h1, md_out);
++	l2n(sha1->h2, md_out);
++	l2n(sha1->h3, md_out);
++	l2n(sha1->h4, md_out);
++	}
++#define LARGEST_DIGEST_CTX SHA_CTX
++
++#ifndef OPENSSL_NO_SHA256
++static void tls1_sha256_final_raw(void* ctx, unsigned char *md_out)
++	{
++	SHA256_CTX *sha256 = ctx;
++	unsigned i;
++
++	for (i = 0; i < 8; i++)
++		{
++		l2n(sha256->h[i], md_out);
++		}
++	}
++#undef  LARGEST_DIGEST_CTX
++#define LARGEST_DIGEST_CTX SHA256_CTX
++#endif
++
++#ifndef OPENSSL_NO_SHA512
++static void tls1_sha512_final_raw(void* ctx, unsigned char *md_out)
++	{
++	SHA512_CTX *sha512 = ctx;
++	unsigned i;
++
++	for (i = 0; i < 8; i++)
++		{
++		l2n8(sha512->h[i], md_out);
++		}
++	}
++#undef  LARGEST_DIGEST_CTX
++#define LARGEST_DIGEST_CTX SHA512_CTX
++#endif
++
++/* ssl3_cbc_record_digest_supported returns 1 iff |ctx| uses a hash function
++ * which ssl3_cbc_digest_record supports. */
++char ssl3_cbc_record_digest_supported(const EVP_MD *digest)
++	{
++#ifdef OPENSSL_FIPS
++	if (FIPS_mode())
++		return 0;
++#endif
++	switch (EVP_MD_type(digest))
++		{
++		case NID_md5:
++		case NID_sha1:
++#ifndef OPENSSL_NO_SHA256
++		case NID_sha224:
++		case NID_sha256:
++#endif
++#ifndef OPENSSL_NO_SHA512
++		case NID_sha384:
++		case NID_sha512:
++#endif
++			return 1;
++		default:
++			return 0;
++		}
++	}
++
++/* ssl3_cbc_digest_record computes the MAC of a decrypted, padded SSLv3/TLS
++ * record.
++ *
++ *   ctx: the EVP_MD_CTX from which we take the hash function.
++ *     ssl3_cbc_record_digest_supported must return true for this EVP_MD_CTX.
++ *   md_out: the digest output. At most EVP_MAX_MD_SIZE bytes will be written.
++ *   md_out_size: if non-NULL, the number of output bytes is written here.
++ *   header: the 13-byte, TLS record header.
++ *   data: the record data itself, less any preceeding explicit IV.
++ *   data_plus_mac_size: the secret, reported length of the data and MAC
++ *     once the padding has been removed.
++ *   data_plus_mac_plus_padding_size: the public length of the whole
++ *     record, including padding.
++ *   is_sslv3: non-zero if we are to use SSLv3. Otherwise, TLS.
++ *
++ * On entry: by virtue of having been through one of the remove_padding
++ * functions, above, we know that data_plus_mac_size is large enough to contain
++ * a padding byte and MAC. (If the padding was invalid, it might contain the
++ * padding too. ) */
++void ssl3_cbc_digest_record(
++	const EVP_MD *digest,
++	unsigned char* md_out,
++	size_t* md_out_size,
++	const unsigned char header[13],
++	const unsigned char *data,
++	size_t data_plus_mac_size,
++	size_t data_plus_mac_plus_padding_size,
++	const unsigned char *mac_secret,
++	unsigned mac_secret_length,
++	char is_sslv3)
++	{
++	union {	double align;
++		unsigned char c[sizeof(LARGEST_DIGEST_CTX)]; } md_state;
++	void (*md_final_raw)(void *ctx, unsigned char *md_out);
++	void (*md_transform)(void *ctx, const unsigned char *block);
++	unsigned md_size, md_block_size = 64;
++	unsigned sslv3_pad_length = 40, header_length, variance_blocks,
++		 len, max_mac_bytes, num_blocks,
++		 num_starting_blocks, k, mac_end_offset, c, index_a, index_b;
++	unsigned int bits;	/* at most 18 bits */
++	unsigned char length_bytes[MAX_HASH_BIT_COUNT_BYTES];
++	/* hmac_pad is the masked HMAC key. */
++	unsigned char hmac_pad[MAX_HASH_BLOCK_SIZE];
++	unsigned char first_block[MAX_HASH_BLOCK_SIZE];
++	unsigned char mac_out[EVP_MAX_MD_SIZE];
++	unsigned i, j, md_out_size_u;
++	EVP_MD_CTX md_ctx;
++	/* mdLengthSize is the number of bytes in the length field that terminates
++	* the hash. */
++	unsigned md_length_size = 8;
++
++	/* This is a, hopefully redundant, check that allows us to forget about
++	 * many possible overflows later in this function. */
++	OPENSSL_assert(data_plus_mac_plus_padding_size < 1024*1024);
++
++	switch (EVP_MD_type(digest))
++		{
++		case NID_md5:
++			MD5_Init((MD5_CTX*)md_state.c);
++			md_final_raw = tls1_md5_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) MD5_Transform;
++			md_size = 16;
++			sslv3_pad_length = 48;
++			break;
++		case NID_sha1:
++			SHA1_Init((SHA_CTX*)md_state.c);
++			md_final_raw = tls1_sha1_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA1_Transform;
++			md_size = 20;
++			break;
++#ifndef OPENSSL_NO_SHA256
++		case NID_sha224:
++			SHA224_Init((SHA256_CTX*)md_state.c);
++			md_final_raw = tls1_sha256_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA256_Transform;
++			md_size = 224/8;
++			break;
++		case NID_sha256:
++			SHA256_Init((SHA256_CTX*)md_state.c);
++			md_final_raw = tls1_sha256_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA256_Transform;
++			md_size = 32;
++			break;
++#endif
++#ifndef OPENSSL_NO_SHA512
++		case NID_sha384:
++			SHA384_Init((SHA512_CTX*)md_state.c);
++			md_final_raw = tls1_sha512_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA512_Transform;
++			md_size = 384/8;
++			md_block_size = 128;
++			md_length_size = 16;
++			break;
++		case NID_sha512:
++			SHA512_Init((SHA512_CTX*)md_state.c);
++			md_final_raw = tls1_sha512_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA512_Transform;
++			md_size = 64;
++			md_block_size = 128;
++			md_length_size = 16;
++			break;
++#endif
++		default:
++			/* ssl3_cbc_record_digest_supported should have been
++			 * called first to check that the hash function is
++			 * supported. */
++			OPENSSL_assert(0);
++			if (md_out_size)
++				*md_out_size = -1;
++			return;
++		}
++
++	OPENSSL_assert(md_length_size <= MAX_HASH_BIT_COUNT_BYTES);
++	OPENSSL_assert(md_block_size <= MAX_HASH_BLOCK_SIZE);
++	OPENSSL_assert(md_size <= EVP_MAX_MD_SIZE);
++
++	header_length = 13;
++	if (is_sslv3)
++		{
++		header_length =
++			mac_secret_length +
++			sslv3_pad_length +
++			8 /* sequence number */ +
++			1 /* record type */ +
++			2 /* record length */;
++		}
++
++	/* variance_blocks is the number of blocks of the hash that we have to
++	 * calculate in constant time because they could be altered by the
++	 * padding value.
++	 *
++	 * In SSLv3, the padding must be minimal so the end of the plaintext
++	 * varies by, at most, 15+20 = 35 bytes. (We conservatively assume that
++	 * the MAC size varies from 0..20 bytes.) In case the 9 bytes of hash
++	 * termination (0x80 + 64-bit length) don't fit in the final block, we
++	 * say that the final two blocks can vary based on the padding.
++	 *
++	 * TLSv1 has MACs up to 48 bytes long (SHA-384) and the padding is not
++	 * required to be minimal. Therefore we say that the final six blocks
++	 * can vary based on the padding.
++	 *
++	 * Later in the function, if the message is short and there obviously
++	 * cannot be this many blocks then variance_blocks can be reduced. */
++	variance_blocks = is_sslv3 ? 2 : 6;
++	/* From now on we're dealing with the MAC, which conceptually has 13
++	 * bytes of `header' before the start of the data (TLS) or 71/75 bytes
++	 * (SSLv3) */
++	len = data_plus_mac_plus_padding_size + header_length;
++	/* max_mac_bytes contains the maximum bytes of bytes in the MAC, including
++	* |header|, assuming that there's no padding. */
++	max_mac_bytes = len - md_size - 1;
++	/* num_blocks is the maximum number of hash blocks. */
++	num_blocks = (max_mac_bytes + 1 + md_length_size + md_block_size - 1) / md_block_size;
++	/* In order to calculate the MAC in constant time we have to handle
++	 * the final blocks specially because the padding value could cause the
++	 * end to appear somewhere in the final |variance_blocks| blocks and we
++	 * can't leak where. However, |num_starting_blocks| worth of data can
++	 * be hashed right away because no padding value can affect whether
++	 * they are plaintext. */
++	num_starting_blocks = 0;
++	/* k is the starting byte offset into the conceptual header||data where
++	 * we start processing. */
++	k = 0;
++	/* mac_end_offset is the index just past the end of the data to be
++	 * MACed. */
++	mac_end_offset = data_plus_mac_size + header_length - md_size;
++	/* c is the index of the 0x80 byte in the final hash block that
++	 * contains application data. */
++	c = mac_end_offset % md_block_size;
++	/* index_a is the hash block number that contains the 0x80 terminating
++	 * value. */
++	index_a = mac_end_offset / md_block_size;
++	/* index_b is the hash block number that contains the 64-bit hash
++	 * length, in bits. */
++	index_b = (mac_end_offset + md_length_size) / md_block_size;
++	/* bits is the hash-length in bits. It includes the additional hash
++	 * block for the masked HMAC key, or whole of |header| in the case of
++	 * SSLv3. */
++
++	/* For SSLv3, if we're going to have any starting blocks then we need
++	 * at least two because the header is larger than a single block. */
++	if (num_blocks > variance_blocks + (is_sslv3 ? 1 : 0))
++		{
++		num_starting_blocks = num_blocks - variance_blocks;
++		k = md_block_size*num_starting_blocks;
++		}
++
++	bits = 8*mac_end_offset;
++	if (!is_sslv3)
++		{
++		/* Compute the initial HMAC block. For SSLv3, the padding and
++		 * secret bytes are included in |header| because they take more
++		 * than a single block. */
++		bits += 8*md_block_size;
++		memset(hmac_pad, 0, md_block_size);
++		OPENSSL_assert(mac_secret_length <= sizeof(hmac_pad));
++		memcpy(hmac_pad, mac_secret, mac_secret_length);
++		for (i = 0; i < md_block_size; i++)
++			hmac_pad[i] ^= 0x36;
++
++		md_transform(md_state.c, hmac_pad);
++		}
++
++	memset(length_bytes,0,md_length_size-4);
++	length_bytes[md_length_size-4] = (unsigned char)(bits>>24);
++	length_bytes[md_length_size-3] = (unsigned char)(bits>>16);
++	length_bytes[md_length_size-2] = (unsigned char)(bits>>8);
++	length_bytes[md_length_size-1] = (unsigned char)bits;
++
++	if (k > 0)
++		{
++		if (is_sslv3)
++			{
++			/* The SSLv3 header is larger than a single block.
++			 * overhang is the number of bytes beyond a single
++			 * block that the header consumes: either 7 bytes
++			 * (SHA1) or 11 bytes (MD5). */
++			unsigned overhang = header_length-md_block_size;
++			md_transform(md_state.c, header);
++			memcpy(first_block, header + md_block_size, overhang);
++			memcpy(first_block + overhang, data, md_block_size-overhang);
++			md_transform(md_state.c, first_block);
++			for (i = 1; i < k/md_block_size - 1; i++)
++				md_transform(md_state.c, data + md_block_size*i - overhang);
++			}
++		else
++			{
++			/* k is a multiple of md_block_size. */
++			memcpy(first_block, header, 13);
++			memcpy(first_block+13, data, md_block_size-13);
++			md_transform(md_state.c, first_block);
++			for (i = 1; i < k/md_block_size; i++)
++				md_transform(md_state.c, data + md_block_size*i - 13);
++			}
++		}
++
++	memset(mac_out, 0, sizeof(mac_out));
++
++	/* We now process the final hash blocks. For each block, we construct
++	 * it in constant time. If the |i==index_a| then we'll include the 0x80
++	 * bytes and zero pad etc. For each block we selectively copy it, in
++	 * constant time, to |mac_out|. */
++	for (i = num_starting_blocks; i <= num_starting_blocks+variance_blocks; i++)
++		{
++		unsigned char block[MAX_HASH_BLOCK_SIZE];
++		unsigned char is_block_a = constant_time_eq_8(i, index_a);
++		unsigned char is_block_b = constant_time_eq_8(i, index_b);
++		for (j = 0; j < md_block_size; j++)
++			{
++			unsigned char b = 0, is_past_c, is_past_cp1;
++			if (k < header_length)
++				b = header[k];
++			else if (k < data_plus_mac_plus_padding_size + header_length)
++				b = data[k-header_length];
++			k++;
++
++			is_past_c = is_block_a & constant_time_ge(j, c);
++			is_past_cp1 = is_block_a & constant_time_ge(j, c+1);
++			/* If this is the block containing the end of the
++			 * application data, and we are at the offset for the
++			 * 0x80 value, then overwrite b with 0x80. */
++			b = (b&~is_past_c) | (0x80&is_past_c);
++			/* If this the the block containing the end of the
++			 * application data and we're past the 0x80 value then
++			 * just write zero. */
++			b = b&~is_past_cp1;
++			/* If this is index_b (the final block), but not
++			 * index_a (the end of the data), then the 64-bit
++			 * length didn't fit into index_a and we're having to
++			 * add an extra block of zeros. */
++			b &= ~is_block_b | is_block_a;
++
++			/* The final bytes of one of the blocks contains the
++			 * length. */
++			if (j >= md_block_size - md_length_size)
++				{
++				/* If this is index_b, write a length byte. */
++				b = (b&~is_block_b) | (is_block_b&length_bytes[j-(md_block_size-md_length_size)]);
++				}
++			block[j] = b;
++			}
++
++		md_transform(md_state.c, block);
++		md_final_raw(md_state.c, block);
++		/* If this is index_b, copy the hash value to |mac_out|. */
++		for (j = 0; j < md_size; j++)
++			mac_out[j] |= block[j]&is_block_b;
++		}
++
++	EVP_MD_CTX_init(&md_ctx);
++	EVP_DigestInit_ex(&md_ctx, digest, NULL /* engine */);
++	if (is_sslv3)
++		{
++		/* We repurpose |hmac_pad| to contain the SSLv3 pad2 block. */
++		memset(hmac_pad, 0x5c, sslv3_pad_length);
++
++		EVP_DigestUpdate(&md_ctx, mac_secret, mac_secret_length);
++		EVP_DigestUpdate(&md_ctx, hmac_pad, sslv3_pad_length);
++		EVP_DigestUpdate(&md_ctx, mac_out, md_size);
++		}
++	else
++		{
++		/* Complete the HMAC in the standard manner. */
++		for (i = 0; i < md_block_size; i++)
++			hmac_pad[i] ^= 0x6a;
++
++		EVP_DigestUpdate(&md_ctx, hmac_pad, md_block_size);
++		EVP_DigestUpdate(&md_ctx, mac_out, md_size);
++		}
++	EVP_DigestFinal(&md_ctx, md_out, &md_out_size_u);
++	if (md_out_size)
++		*md_out_size = md_out_size_u;
++	EVP_MD_CTX_cleanup(&md_ctx);
++	}
++
++#ifdef OPENSSL_FIPS
++
++/* Due to the need to use EVP in FIPS mode we can't reimplement digests but
++ * we can ensure the number of blocks processed is equal for all cases
++ * by digesting additional data.
++ */
++
++void tls_fips_digest_extra(
++	const EVP_CIPHER_CTX *cipher_ctx, const EVP_MD *hash, HMAC_CTX *hctx,
++	const unsigned char *data, size_t data_len, size_t orig_len)
++	{
++	size_t block_size, digest_pad, blocks_data, blocks_orig;
++	if (EVP_CIPHER_CTX_mode(cipher_ctx) != EVP_CIPH_CBC_MODE)
++		return;
++	block_size = EVP_MD_block_size(hash);
++	/* We are in FIPS mode if we get this far so we know we have only SHA*
++	 * digests and TLS to deal with.
++	 * Minimum digest padding length is 17 for SHA384/SHA512 and 9
++	 * otherwise.
++	 * Additional header is 13 bytes. To get the number of digest blocks
++	 * processed round up the amount of data plus padding to the nearest
++	 * block length. Block length is 128 for SHA384/SHA512 and 64 otherwise.
++	 * So we have:
++	 * blocks = (payload_len + digest_pad + 13 + block_size - 1)/block_size
++	 * equivalently:
++	 * blocks = (payload_len + digest_pad + 12)/block_size + 1
++	 * HMAC adds a constant overhead.
++	 * We're ultimately only interested in differences so this becomes
++	 * blocks = (payload_len + 29)/128
++	 * for SHA384/SHA512 and
++	 * blocks = (payload_len + 21)/64
++	 * otherwise.
++	 */
++	digest_pad = block_size == 64 ? 21 : 29;
++	blocks_orig = (orig_len + digest_pad)/block_size;
++	blocks_data = (data_len + digest_pad)/block_size;
++	/* MAC enough blocks to make up the difference between the original
++	 * and actual lengths plus one extra block to ensure this is never a
++	 * no op. The "data" pointer should always have enough space to
++	 * perform this operation as it is large enough for a maximum
++	 * length TLS buffer. 
++	 */
++	HMAC_Update(hctx, data,
++				(blocks_orig - blocks_data + 1) * block_size);
++	}
++#endif
+Index: crypto/openssl/ssl/s3_clnt.c
+===================================================================
+--- crypto/openssl/ssl/s3_clnt.c	(revision 248771)
++++ crypto/openssl/ssl/s3_clnt.c	(working copy)
+@@ -262,7 +262,16 @@ int ssl3_connect(SSL *s)
+ 			ret=ssl3_get_server_hello(s);
+ 			if (ret <= 0) goto end;
+ 			if (s->hit)
++				{
+ 				s->state=SSL3_ST_CR_FINISHED_A;
++#ifndef OPENSSL_NO_TLSEXT
++				if (s->tlsext_ticket_expected)
++					{
++					/* receive renewed session ticket */
++					s->state=SSL3_ST_CR_SESSION_TICKET_A;
++					}
++#endif
++				}
+ 			else
+ 				s->state=SSL3_ST_CR_CERT_A;
+ 			s->init_num=0;
+Index: crypto/openssl/ssl/s3_enc.c
+===================================================================
+--- crypto/openssl/ssl/s3_enc.c	(revision 248771)
++++ crypto/openssl/ssl/s3_enc.c	(working copy)
+@@ -433,12 +433,21 @@ void ssl3_cleanup_key_block(SSL *s)
+ 	s->s3->tmp.key_block_length=0;
+ 	}
+ 
++/* ssl3_enc encrypts/decrypts the record in |s->wrec| / |s->rrec|, respectively.
++ *
++ * Returns:
++ *   0: (in non-constant time) if the record is publically invalid (i.e. too
++ *       short etc).
++ *   1: if the record's padding is valid / the encryption was successful.
++ *   -1: if the record's padding is invalid or, if sending, an internal error
++ *       occured.
++ */
+ int ssl3_enc(SSL *s, int send)
+ 	{
+ 	SSL3_RECORD *rec;
+ 	EVP_CIPHER_CTX *ds;
+ 	unsigned long l;
+-	int bs,i;
++	int bs,i,mac_size=0;
+ 	const EVP_CIPHER *enc;
+ 
+ 	if (send)
+@@ -489,32 +498,17 @@ int ssl3_enc(SSL *s, int send)
+ 		if (!send)
+ 			{
+ 			if (l == 0 || l%bs != 0)
+-				{
+-				SSLerr(SSL_F_SSL3_ENC,SSL_R_BLOCK_CIPHER_PAD_IS_WRONG);
+-				ssl3_send_alert(s,SSL3_AL_FATAL,SSL_AD_DECRYPTION_FAILED);
+ 				return 0;
+-				}
+ 			/* otherwise, rec->length >= bs */
+ 			}
+ 		
+ 		EVP_Cipher(ds,rec->data,rec->input,l);
+ 
++		if (s->read_hash != NULL)
++			mac_size = EVP_MD_size(s->read_hash);
++
+ 		if ((bs != 1) && !send)
+-			{
+-			i=rec->data[l-1]+1;
+-			/* SSL 3.0 bounds the number of padding bytes by the block size;
+-			 * padding bytes (except the last one) are arbitrary */
+-			if (i > bs)
+-				{
+-				/* Incorrect padding. SSLerr() and ssl3_alert are done
+-				 * by caller: we don't want to reveal whether this is
+-				 * a decryption error or a MAC verification failure
+-				 * (see http://www.openssl.org/~bodo/tls-cbc.txt) */
+-				return -1;
+-				}
+-			/* now i <= bs <= rec->length */
+-			rec->length-=i;
+-			}
++			return ssl3_cbc_remove_padding(s, rec, bs, mac_size);
+ 		}
+ 	return(1);
+ 	}
+@@ -591,7 +585,7 @@ int ssl3_mac(SSL *ssl, unsigned char *md, int send
+ 	EVP_MD_CTX md_ctx;
+ 	const EVP_MD *hash;
+ 	unsigned char *p,rec_char;
+-	unsigned int md_size;
++	size_t md_size, orig_len;
+ 	int npad;
+ 
+ 	if (send)
+@@ -612,29 +606,73 @@ int ssl3_mac(SSL *ssl, unsigned char *md, int send
+ 	md_size=EVP_MD_size(hash);
+ 	npad=(48/md_size)*md_size;
+ 
+-	/* Chop the digest off the end :-) */
+-	EVP_MD_CTX_init(&md_ctx);
++	/* kludge: ssl3_cbc_remove_padding passes padding length in rec->type */
++	orig_len = rec->length+md_size+((unsigned int)rec->type>>8);
++	rec->type &= 0xff;
+ 
+-	EVP_DigestInit_ex(  &md_ctx,hash, NULL);
+-	EVP_DigestUpdate(&md_ctx,mac_sec,md_size);
+-	EVP_DigestUpdate(&md_ctx,ssl3_pad_1,npad);
+-	EVP_DigestUpdate(&md_ctx,seq,8);
+-	rec_char=rec->type;
+-	EVP_DigestUpdate(&md_ctx,&rec_char,1);
+-	p=md;
+-	s2n(rec->length,p);
+-	EVP_DigestUpdate(&md_ctx,md,2);
+-	EVP_DigestUpdate(&md_ctx,rec->input,rec->length);
+-	EVP_DigestFinal_ex( &md_ctx,md,NULL);
++	if (!send &&
++	    EVP_CIPHER_CTX_mode(ssl->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
++	    ssl3_cbc_record_digest_supported(hash))
++		{
++		/* This is a CBC-encrypted record. We must avoid leaking any
++		 * timing-side channel information about how many blocks of
++		 * data we are hashing because that gives an attacker a
++		 * timing-oracle. */
+ 
+-	EVP_DigestInit_ex(  &md_ctx,hash, NULL);
+-	EVP_DigestUpdate(&md_ctx,mac_sec,md_size);
+-	EVP_DigestUpdate(&md_ctx,ssl3_pad_2,npad);
+-	EVP_DigestUpdate(&md_ctx,md,md_size);
+-	EVP_DigestFinal_ex( &md_ctx,md,&md_size);
++		/* npad is, at most, 48 bytes and that's with MD5:
++		 *   16 + 48 + 8 (sequence bytes) + 1 + 2 = 75.
++		 *
++		 * With SHA-1 (the largest hash speced for SSLv3) the hash size
++		 * goes up 4, but npad goes down by 8, resulting in a smaller
++		 * total size. */
++		unsigned char header[75];
++		unsigned j = 0;
++		memcpy(header+j, mac_sec, md_size);
++		j += md_size;
++		memcpy(header+j, ssl3_pad_1, npad);
++		j += npad;
++		memcpy(header+j, seq, 8);
++		j += 8;
++		header[j++] = rec->type;
++		header[j++] = rec->length >> 8;
++		header[j++] = rec->length & 0xff;
+ 
+-	EVP_MD_CTX_cleanup(&md_ctx);
++		ssl3_cbc_digest_record(
++			hash,
++			md, &md_size,
++			header, rec->input,
++			rec->length + md_size, orig_len,
++			mac_sec, md_size,
++			1 /* is SSLv3 */);
++		}
++	else
++		{
++		unsigned int md_size_u;
++		/* Chop the digest off the end :-) */
++		EVP_MD_CTX_init(&md_ctx);
+ 
++		EVP_DigestInit_ex( &md_ctx,hash, NULL);
++		EVP_DigestUpdate(&md_ctx,mac_sec,md_size);
++		EVP_DigestUpdate(&md_ctx,ssl3_pad_1,npad);
++		EVP_DigestUpdate(&md_ctx,seq,8);
++		rec_char=rec->type;
++		EVP_DigestUpdate(&md_ctx,&rec_char,1);
++		p=md;
++		s2n(rec->length,p);
++		EVP_DigestUpdate(&md_ctx,md,2);
++		EVP_DigestUpdate(&md_ctx,rec->input,rec->length);
++		EVP_DigestFinal_ex( &md_ctx,md,NULL);
++
++		EVP_DigestInit_ex( &md_ctx,hash, NULL);
++		EVP_DigestUpdate(&md_ctx,mac_sec,md_size);
++		EVP_DigestUpdate(&md_ctx,ssl3_pad_2,npad);
++		EVP_DigestUpdate(&md_ctx,md,md_size);
++		EVP_DigestFinal_ex( &md_ctx,md,&md_size_u);
++		md_size = md_size_u;
++
++		EVP_MD_CTX_cleanup(&md_ctx);
++	}
++
+ 	ssl3_record_sequence_update(seq);
+ 	return(md_size);
+ 	}
+Index: crypto/openssl/ssl/s3_pkt.c
+===================================================================
+--- crypto/openssl/ssl/s3_pkt.c	(revision 248771)
++++ crypto/openssl/ssl/s3_pkt.c	(working copy)
+@@ -246,11 +246,8 @@ static int ssl3_get_record(SSL *s)
+ 	unsigned char *p;
+ 	unsigned char md[EVP_MAX_MD_SIZE];
+ 	short version;
+-	unsigned int mac_size;
+-	int clear=0;
++	unsigned mac_size, orig_len;
+ 	size_t extra;
+-	int decryption_failed_or_bad_record_mac = 0;
+-	unsigned char *mac = NULL;
+ 
+ 	rr= &(s->s3->rrec);
+ 	sess=s->session;
+@@ -354,19 +351,18 @@ again:
+ 
+ 	/* decrypt in place in 'rr->input' */
+ 	rr->data=rr->input;
++	orig_len=rr->length;
+ 
+ 	enc_err = s->method->ssl3_enc->enc(s,0);
+-	if (enc_err <= 0)
++	/* enc_err is:
++	 *    0: (in non-constant time) if the record is publically invalid.
++	 *    1: if the padding is valid
++	 *    -1: if the padding is invalid */
++	if (enc_err == 0)
+ 		{
+-		if (enc_err == 0)
+-			/* SSLerr() and ssl3_send_alert() have been called */
+-			goto err;
+-
+-		/* Otherwise enc_err == -1, which indicates bad padding
+-		 * (rec->length has not been changed in this case).
+-		 * To minimize information leaked via timing, we will perform
+-		 * the MAC computation anyway. */
+-		decryption_failed_or_bad_record_mac = 1;
++		al=SSL_AD_DECRYPTION_FAILED;
++		SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_BLOCK_CIPHER_PAD_IS_WRONG);
++		goto f_err;
+ 		}
+ 
+ #ifdef TLS_DEBUG
+@@ -376,51 +372,59 @@ printf("\n");
+ #endif
+ 
+ 	/* r->length is now the compressed data plus mac */
+-	if (	(sess == NULL) ||
+-		(s->enc_read_ctx == NULL) ||
+-		(s->read_hash == NULL))
+-		clear=1;
+-
+-	if (!clear)
++	if ((sess != NULL) &&
++	    (s->enc_read_ctx != NULL) &&
++	    (s->read_hash != NULL))
+ 		{
++		/* s->read_hash != NULL => mac_size != -1 */
++		unsigned char *mac = NULL;
++		unsigned char mac_tmp[EVP_MAX_MD_SIZE];
+ 		mac_size=EVP_MD_size(s->read_hash);
++		OPENSSL_assert(mac_size <= EVP_MAX_MD_SIZE);
+ 
+-		if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+extra+mac_size)
++		/* orig_len is the length of the record before any padding was
++		 * removed. This is public information, as is the MAC in use,
++		 * therefore we can safely process the record in a different
++		 * amount of time if it's too short to possibly contain a MAC.
++		 */
++		if (orig_len < mac_size ||
++		    /* CBC records must have a padding length byte too. */
++		    (EVP_CIPHER_CTX_mode(s->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
++		     orig_len < mac_size+1))
+ 			{
+-#if 0 /* OK only for stream ciphers (then rr->length is visible from ciphertext anyway) */
+-			al=SSL_AD_RECORD_OVERFLOW;
+-			SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_PRE_MAC_LENGTH_TOO_LONG);
++			al=SSL_AD_DECODE_ERROR;
++			SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_LENGTH_TOO_SHORT);
+ 			goto f_err;
+-#else
+-			decryption_failed_or_bad_record_mac = 1;
+-#endif			
+ 			}
+-		/* check the MAC for rr->input (it's in mac_size bytes at the tail) */
+-		if (rr->length >= mac_size)
++
++		if (EVP_CIPHER_CTX_mode(s->enc_read_ctx) == EVP_CIPH_CBC_MODE)
+ 			{
++			/* We update the length so that the TLS header bytes
++			 * can be constructed correctly but we need to extract
++			 * the MAC in constant time from within the record,
++			 * without leaking the contents of the padding bytes.
++			 * */
++			mac = mac_tmp;
++			ssl3_cbc_copy_mac(mac_tmp, rr, mac_size, orig_len);
+ 			rr->length -= mac_size;
+-			mac = &rr->data[rr->length];
+ 			}
+ 		else
+ 			{
+-			/* record (minus padding) is too short to contain a MAC */
+-#if 0 /* OK only for stream ciphers */
+-			al=SSL_AD_DECODE_ERROR;
+-			SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_LENGTH_TOO_SHORT);
+-			goto f_err;
+-#else
+-			decryption_failed_or_bad_record_mac = 1;
+-			rr->length = 0;
+-#endif
++			/* In this case there's no padding, so |orig_len|
++			 * equals |rec->length| and we checked that there's
++			 * enough bytes for |mac_size| above. */
++			rr->length -= mac_size;
++			mac = &rr->data[rr->length];
+ 			}
+-		i=s->method->ssl3_enc->mac(s,md,0);
+-		if (mac == NULL || memcmp(md, mac, mac_size) != 0)
+-			{
+-			decryption_failed_or_bad_record_mac = 1;
+-			}
++
++		i=s->method->ssl3_enc->mac(s,md,0 /* not send */);
++		if (i < 0 || mac == NULL || CRYPTO_memcmp(md, mac, (size_t)mac_size) != 0)
++			enc_err = -1;
++		if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+extra+mac_size)
++			enc_err = -1;
+ 		}
+ 
+-	if (decryption_failed_or_bad_record_mac)
++	if (enc_err < 0)
+ 		{
+ 		/* A separate 'decryption_failed' alert was introduced with TLS 1.0,
+ 		 * SSL 3.0 only has 'bad_record_mac'.  But unless a decryption
+Index: crypto/openssl/ssl/s3_srvr.c
+===================================================================
+--- crypto/openssl/ssl/s3_srvr.c	(revision 248771)
++++ crypto/openssl/ssl/s3_srvr.c	(working copy)
+@@ -1005,7 +1005,7 @@ int ssl3_get_client_hello(SSL *s)
+ 			goto f_err;
+ 			}
+ 		}
+-		if (ssl_check_clienthello_tlsext(s) <= 0) {
++		if (ssl_check_clienthello_tlsext_early(s) <= 0) {
+ 			SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_CLIENTHELLO_TLSEXT);
+ 			goto err;
+ 		}
+@@ -1131,6 +1131,16 @@ int ssl3_get_client_hello(SSL *s)
+ 	 * s->tmp.new_cipher	- the new cipher to use.
+ 	 */
+ 
++	/* Handles TLS extensions that we couldn't check earlier */
++	if (s->version >= SSL3_VERSION)
++		{
++		if (ssl_check_clienthello_tlsext_late(s) <= 0)
++			{
++			SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_CLIENTHELLO_TLSEXT);
++			goto err;
++			}
++		}
++
+ 	if (ret < 0) ret=1;
+ 	if (0)
+ 		{
+Index: crypto/openssl/ssl/ssl.h
+===================================================================
+--- crypto/openssl/ssl/ssl.h	(revision 248771)
++++ crypto/openssl/ssl/ssl.h	(working copy)
+@@ -1820,6 +1820,7 @@ void ERR_load_SSL_strings(void);
+ #define SSL_F_SSL_GET_NEW_SESSION			 181
+ #define SSL_F_SSL_GET_PREV_SESSION			 217
+ #define SSL_F_SSL_GET_SERVER_SEND_CERT			 182
++#define SSL_F_SSL_GET_SERVER_SEND_PKEY			 317
+ #define SSL_F_SSL_GET_SIGN_PKEY				 183
+ #define SSL_F_SSL_INIT_WBIO_BUFFER			 184
+ #define SSL_F_SSL_LOAD_CLIENT_CA_FILE			 185
+Index: crypto/openssl/ssl/ssl_err.c
+===================================================================
+--- crypto/openssl/ssl/ssl_err.c	(revision 248771)
++++ crypto/openssl/ssl/ssl_err.c	(working copy)
+@@ -218,6 +218,7 @@ static ERR_STRING_DATA SSL_str_functs[]=
+ {ERR_FUNC(SSL_F_SSL_GET_NEW_SESSION),	"SSL_GET_NEW_SESSION"},
+ {ERR_FUNC(SSL_F_SSL_GET_PREV_SESSION),	"SSL_GET_PREV_SESSION"},
+ {ERR_FUNC(SSL_F_SSL_GET_SERVER_SEND_CERT),	"SSL_GET_SERVER_SEND_CERT"},
++{ERR_FUNC(SSL_F_SSL_GET_SERVER_SEND_PKEY),	"SSL_GET_SERVER_SEND_PKEY"},
+ {ERR_FUNC(SSL_F_SSL_GET_SIGN_PKEY),	"SSL_GET_SIGN_PKEY"},
+ {ERR_FUNC(SSL_F_SSL_INIT_WBIO_BUFFER),	"SSL_INIT_WBIO_BUFFER"},
+ {ERR_FUNC(SSL_F_SSL_LOAD_CLIENT_CA_FILE),	"SSL_load_client_CA_file"},
+Index: crypto/openssl/ssl/ssl_lib.c
+===================================================================
+--- crypto/openssl/ssl/ssl_lib.c	(revision 248771)
++++ crypto/openssl/ssl/ssl_lib.c	(working copy)
+@@ -1943,7 +1943,7 @@ int check_srvr_ecc_cert_and_alg(X509 *x, SSL_CIPHE
+ 	}
+ 
+ /* THIS NEEDS CLEANING UP */
+-X509 *ssl_get_server_send_cert(SSL *s)
++CERT_PKEY *ssl_get_server_send_pkey(const SSL *s)
+ 	{
+ 	unsigned long alg,kalg;
+ 	CERT *c;
+@@ -1993,14 +1993,22 @@ int check_srvr_ecc_cert_and_alg(X509 *x, SSL_CIPHE
+ 		}
+ 	else /* if (kalg & SSL_aNULL) */
+ 		{
+-		SSLerr(SSL_F_SSL_GET_SERVER_SEND_CERT,ERR_R_INTERNAL_ERROR);
++		SSLerr(SSL_F_SSL_GET_SERVER_SEND_PKEY,ERR_R_INTERNAL_ERROR);
+ 		return(NULL);
+ 		}
+-	if (c->pkeys[i].x509 == NULL) return(NULL);
+ 
+-	return(c->pkeys[i].x509);
++	return c->pkeys + i;
+ 	}
+ 
++X509 *ssl_get_server_send_cert(const SSL *s)
++	{
++	CERT_PKEY *cpk;
++	cpk = ssl_get_server_send_pkey(s);
++	if (!cpk)
++		return NULL;
++	return cpk->x509;
++	}
++
+ EVP_PKEY *ssl_get_sign_pkey(SSL *s,SSL_CIPHER *cipher)
+ 	{
+ 	unsigned long alg;
+@@ -2420,7 +2428,9 @@ void ssl_clear_cipher_ctx(SSL *s)
+ /* Fix this function so that it takes an optional type parameter */
+ X509 *SSL_get_certificate(const SSL *s)
+ 	{
+-	if (s->cert != NULL)
++	if (s->server)
++		return(ssl_get_server_send_cert(s));
++	else if (s->cert != NULL)
+ 		return(s->cert->key->x509);
+ 	else
+ 		return(NULL);
+Index: crypto/openssl/ssl/ssl_locl.h
+===================================================================
+--- crypto/openssl/ssl/ssl_locl.h	(revision 248771)
++++ crypto/openssl/ssl/ssl_locl.h	(working copy)
+@@ -189,6 +189,15 @@
+ 			 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
+ 			 *((c)++)=(unsigned char)(((l)    )&0xff))
+ 
++#define l2n8(l,c)	(*((c)++)=(unsigned char)(((l)>>56)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>>48)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>>40)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>>32)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>>24)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>>16)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
++			 *((c)++)=(unsigned char)(((l)    )&0xff))
++
+ #define n2l6(c,l)	(l =((BN_ULLONG)(*((c)++)))<<40, \
+ 			 l|=((BN_ULLONG)(*((c)++)))<<32, \
+ 			 l|=((BN_ULLONG)(*((c)++)))<<24, \
+@@ -740,7 +749,8 @@ int ssl_verify_cert_chain(SSL *s,STACK_OF(X509) *s
+ int ssl_undefined_function(SSL *s);
+ int ssl_undefined_void_function(void);
+ int ssl_undefined_const_function(const SSL *s);
+-X509 *ssl_get_server_send_cert(SSL *);
++CERT_PKEY *ssl_get_server_send_pkey(const SSL *s);
++X509 *ssl_get_server_send_cert(const SSL *);
+ EVP_PKEY *ssl_get_sign_pkey(SSL *,SSL_CIPHER *);
+ int ssl_cert_type(X509 *x,EVP_PKEY *pkey);
+ void ssl_set_cert_masks(CERT *c, SSL_CIPHER *cipher);
+@@ -979,7 +989,8 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned
+ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **data, unsigned char *d, int n, int *al);
+ int ssl_prepare_clienthello_tlsext(SSL *s);
+ int ssl_prepare_serverhello_tlsext(SSL *s);
+-int ssl_check_clienthello_tlsext(SSL *s);
++int ssl_check_clienthello_tlsext_early(SSL *s);
++int ssl_check_clienthello_tlsext_late(SSL *s);
+ int ssl_check_serverhello_tlsext(SSL *s);
+ 
+ #ifdef OPENSSL_NO_SHA256
+@@ -1001,5 +1012,33 @@ int ssl_add_clienthello_renegotiate_ext(SSL *s, un
+ int ssl_parse_clienthello_renegotiate_ext(SSL *s, unsigned char *d, int len,
+ 					  int *al);
+ #endif
++/* s3_cbc.c */
++void ssl3_cbc_copy_mac(unsigned char* out,
++		       const SSL3_RECORD *rec,
++		       unsigned md_size,unsigned orig_len);
++int ssl3_cbc_remove_padding(const SSL* s,
++			    SSL3_RECORD *rec,
++			    unsigned block_size,
++			    unsigned mac_size);
++int tls1_cbc_remove_padding(const SSL* s,
++			    SSL3_RECORD *rec,
++			    unsigned block_size,
++			    unsigned mac_size);
++char ssl3_cbc_record_digest_supported(const EVP_MD *hash);
++void ssl3_cbc_digest_record(
++	const EVP_MD *hash,
++	unsigned char* md_out,
++	size_t* md_out_size,
++	const unsigned char header[13],
++	const unsigned char *data,
++	size_t data_plus_mac_size,
++	size_t data_plus_mac_plus_padding_size,
++	const unsigned char *mac_secret,
++	unsigned mac_secret_length,
++	char is_sslv3);
+ 
++void tls_fips_digest_extra(
++	const EVP_CIPHER_CTX *cipher_ctx, const EVP_MD *hash, HMAC_CTX *hctx,
++	const unsigned char *data, size_t data_len, size_t orig_len);
++
+ #endif
+Index: crypto/openssl/ssl/t1_enc.c
+===================================================================
+--- crypto/openssl/ssl/t1_enc.c	(revision 248771)
++++ crypto/openssl/ssl/t1_enc.c	(working copy)
+@@ -264,7 +264,7 @@ int tls1_change_cipher_state(SSL *s, int which)
+ 	{
+         int ki;
+         for (ki=0; ki<s->s3->tmp.key_block_length; ki++)
+-		printf("%02x", key_block[ki]);  printf("\n");
++		printf("%02x", s->s3->tmp.key_block[ki]);  printf("\n");
+         }
+ #endif	/* KSSL_DEBUG */
+ 
+@@ -528,12 +528,21 @@ err:
+ 	return(0);
+ 	}
+ 
++/* tls1_enc encrypts/decrypts the record in |s->wrec| / |s->rrec|, respectively.
++ *
++ * Returns:
++ *   0: (in non-constant time) if the record is publically invalid (i.e. too
++ *       short etc).
++ *   1: if the record's padding is valid / the encryption was successful.
++ *   -1: if the record's padding/AEAD-authenticator is invalid or, if sending,
++ *       an internal error occured.
++ */
+ int tls1_enc(SSL *s, int send)
+ 	{
+ 	SSL3_RECORD *rec;
+ 	EVP_CIPHER_CTX *ds;
+ 	unsigned long l;
+-	int bs,i,ii,j,k;
++	int bs,i,j,k,pad=0,ret,mac_size=0;
+ 	const EVP_CIPHER *enc;
+ 
+ 	if (send)
+@@ -559,11 +568,11 @@ int tls1_enc(SSL *s, int send)
+ 	printf("tls1_enc(%d)\n", send);
+ #endif    /* KSSL_DEBUG */
+ 
+-	if ((s->session == NULL) || (ds == NULL) ||
+-		(enc == NULL))
++	if ((s->session == NULL) || (ds == NULL) || (enc == NULL))
+ 		{
+ 		memmove(rec->data,rec->input,rec->length);
+ 		rec->input=rec->data;
++		ret = 1;
+ 		}
+ 	else
+ 		{
+@@ -591,14 +600,13 @@ int tls1_enc(SSL *s, int send)
+ 
+ #ifdef KSSL_DEBUG
+ 		{
+-                unsigned long ui;
++		unsigned long ui;
+ 		printf("EVP_Cipher(ds=%p,rec->data=%p,rec->input=%p,l=%ld) ==>\n",
+-                        (void *)ds,rec->data,rec->input,l);
+-		printf("\tEVP_CIPHER_CTX: %d buf_len, %d key_len [%ld %ld], %d iv_len\n",
+-                        ds->buf_len, ds->cipher->key_len,
+-                        (unsigned long)DES_KEY_SZ,
+-			(unsigned long)DES_SCHEDULE_SZ,
+-                        ds->cipher->iv_len);
++			ds,rec->data,rec->input,l);
++		printf("\tEVP_CIPHER_CTX: %d buf_len, %d key_len [%d %d], %d iv_len\n",
++			ds->buf_len, ds->cipher->key_len,
++			DES_KEY_SZ, DES_SCHEDULE_SZ,
++			ds->cipher->iv_len);
+ 		printf("\t\tIV: ");
+ 		for (i=0; i<ds->cipher->iv_len; i++) printf("%02X", ds->iv[i]);
+ 		printf("\n");
+@@ -611,11 +619,7 @@ int tls1_enc(SSL *s, int send)
+ 		if (!send)
+ 			{
+ 			if (l == 0 || l%bs != 0)
+-				{
+-				SSLerr(SSL_F_TLS1_ENC,SSL_R_BLOCK_CIPHER_PAD_IS_WRONG);
+-				ssl3_send_alert(s,SSL3_AL_FATAL,SSL_AD_DECRYPTION_FAILED);
+ 				return 0;
+-				}
+ 			}
+ 		
+ 		EVP_Cipher(ds,rec->data,rec->input,l);
+@@ -629,49 +633,15 @@ int tls1_enc(SSL *s, int send)
+                 }
+ #endif	/* KSSL_DEBUG */
+ 
++		ret = 1;
++		if (s->read_hash != NULL)
++			mac_size = EVP_MD_size(s->read_hash);
+ 		if ((bs != 1) && !send)
+-			{
+-			ii=i=rec->data[l-1]; /* padding_length */
+-			i++;
+-			/* NB: if compression is in operation the first packet
+-			 * may not be of even length so the padding bug check
+-			 * cannot be performed. This bug workaround has been
+-			 * around since SSLeay so hopefully it is either fixed
+-			 * now or no buggy implementation supports compression 
+-			 * [steve]
+-			 */
+-			if ( (s->options&SSL_OP_TLS_BLOCK_PADDING_BUG)
+-				&& !s->expand)
+-				{
+-				/* First packet is even in size, so check */
+-				if ((memcmp(s->s3->read_sequence,
+-					"\0\0\0\0\0\0\0\0",8) == 0) && !(ii & 1))
+-					s->s3->flags|=TLS1_FLAGS_TLS_PADDING_BUG;
+-				if (s->s3->flags & TLS1_FLAGS_TLS_PADDING_BUG)
+-					i--;
+-				}
+-			/* TLS 1.0 does not bound the number of padding bytes by the block size.
+-			 * All of them must have value 'padding_length'. */
+-			if (i > (int)rec->length)
+-				{
+-				/* Incorrect padding. SSLerr() and ssl3_alert are done
+-				 * by caller: we don't want to reveal whether this is
+-				 * a decryption error or a MAC verification failure
+-				 * (see http://www.openssl.org/~bodo/tls-cbc.txt) */
+-				return -1;
+-				}
+-			for (j=(int)(l-i); j<(int)l; j++)
+-				{
+-				if (rec->data[j] != ii)
+-					{
+-					/* Incorrect padding */
+-					return -1;
+-					}
+-				}
+-			rec->length-=i;
+-			}
++			ret = tls1_cbc_remove_padding(s, rec, bs, mac_size);
++		if (pad && !send)
++			rec->length -= pad;
+ 		}
+-	return(1);
++	return ret;
+ 	}
+ 
+ int tls1_cert_verify_mac(SSL *s, EVP_MD_CTX *in_ctx, unsigned char *out)
+@@ -719,10 +689,10 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send
+ 	SSL3_RECORD *rec;
+ 	unsigned char *mac_sec,*seq;
+ 	const EVP_MD *hash;
+-	unsigned int md_size;
++	size_t md_size, orig_len;
+ 	int i;
+ 	HMAC_CTX hmac;
+-	unsigned char buf[5]; 
++	unsigned char header[13];
+ 
+ 	if (send)
+ 		{
+@@ -741,20 +711,6 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send
+ 
+ 	md_size=EVP_MD_size(hash);
+ 
+-	buf[0]=rec->type;
+-	if (ssl->version == DTLS1_VERSION && ssl->client_version == DTLS1_BAD_VER)
+-		{
+-		buf[1]=TLS1_VERSION_MAJOR;
+-		buf[2]=TLS1_VERSION_MINOR;
+-		}
+-	else	{
+-		buf[1]=(unsigned char)(ssl->version>>8);
+-		buf[2]=(unsigned char)(ssl->version);
+-		}
+-
+-	buf[3]=rec->length>>8;
+-	buf[4]=rec->length&0xff;
+-
+ 	/* I should fix this up TLS TLS TLS TLS TLS XXXXXXXX */
+ 	HMAC_CTX_init(&hmac);
+ 	HMAC_Init_ex(&hmac,mac_sec,EVP_MD_size(hash),hash,NULL);
+@@ -766,16 +722,57 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send
+ 		s2n(send?ssl->d1->w_epoch:ssl->d1->r_epoch, p);
+ 		memcpy (p,&seq[2],6);
+ 
+-		HMAC_Update(&hmac,dtlsseq,8);
++		memcpy(header, dtlsseq, 8);
+ 		}
+ 	else
+-		HMAC_Update(&hmac,seq,8);
++		memcpy(header, seq, 8);
+ 
+-	HMAC_Update(&hmac,buf,5);
+-	HMAC_Update(&hmac,rec->input,rec->length);
+-	HMAC_Final(&hmac,md,&md_size);
++	/* kludge: tls1_cbc_remove_padding passes padding length in rec->type */
++	orig_len = rec->length+md_size+((unsigned int)rec->type>>8);
++	rec->type &= 0xff;
++
++	header[8]=rec->type;
++	header[9]=(unsigned char)(ssl->version>>8);
++	header[10]=(unsigned char)(ssl->version);
++	header[11]=(rec->length)>>8;
++	header[12]=(rec->length)&0xff;
++
++	if (!send &&
++	    EVP_CIPHER_CTX_mode(ssl->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
++	    ssl3_cbc_record_digest_supported(hash))
++		{
++		/* This is a CBC-encrypted record. We must avoid leaking any
++		 * timing-side channel information about how many blocks of
++		 * data we are hashing because that gives an attacker a
++		 * timing-oracle. */
++		ssl3_cbc_digest_record(
++		        hash,
++			md, &md_size,
++			header, rec->input,
++			rec->length + md_size, orig_len,
++			ssl->s3->read_mac_secret,
++			EVP_MD_size(ssl->read_hash),
++			0 /* not SSLv3 */);
++		}
++	else
++		{
++		unsigned mds;
++
++		HMAC_Update(&hmac,header,sizeof(header));
++		HMAC_Update(&hmac,rec->input,rec->length);
++		HMAC_Final(&hmac,md,&mds);
++		md_size = mds;
++#ifdef OPENSSL_FIPS
++		if (!send && FIPS_mode())
++			tls_fips_digest_extra(
++	    				ssl->enc_read_ctx,
++					hash,
++					&hmac, rec->input,
++					rec->length, orig_len);
++#endif
++		}
++		
+ 	HMAC_CTX_cleanup(&hmac);
+-
+ #ifdef TLS_DEBUG
+ printf("sec=");
+ {unsigned int z; for (z=0; z<md_size; z++) printf("%02X ",mac_sec[z]); printf("\n"); }
+Index: crypto/openssl/ssl/t1_lib.c
+===================================================================
+--- crypto/openssl/ssl/t1_lib.c	(revision 248771)
++++ crypto/openssl/ssl/t1_lib.c	(working copy)
+@@ -745,7 +745,7 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned
+ 	return 1;
+ 	}
+ 
+-int ssl_check_clienthello_tlsext(SSL *s)
++int ssl_check_clienthello_tlsext_early(SSL *s)
+ 	{
+ 	int ret=SSL_TLSEXT_ERR_NOACK;
+ 	int al = SSL_AD_UNRECOGNIZED_NAME;
+@@ -755,13 +755,49 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned
+ 	else if (s->initial_ctx != NULL && s->initial_ctx->tlsext_servername_callback != 0) 		
+ 		ret = s->initial_ctx->tlsext_servername_callback(s, &al, s->initial_ctx->tlsext_servername_arg);
+ 
++	switch (ret)
++		{
++		case SSL_TLSEXT_ERR_ALERT_FATAL:
++			ssl3_send_alert(s, SSL3_AL_FATAL, al); 
++			return -1;
++
++		case SSL_TLSEXT_ERR_ALERT_WARNING:
++			ssl3_send_alert(s, SSL3_AL_WARNING, al);
++			return 1; 
++					
++		case SSL_TLSEXT_ERR_NOACK:
++			s->servername_done = 0;
++
++		default:
++			return 1;
++		}
++	}
++
++int ssl_check_clienthello_tlsext_late(SSL *s)
++	{
++	int ret = SSL_TLSEXT_ERR_OK;
++	int al;
++
+ 	/* If status request then ask callback what to do.
+  	 * Note: this must be called after servername callbacks in case 
+- 	 * the certificate has changed.
++ 	 * the certificate has changed, and must be called after the cipher
++	 * has been chosen because this may influence which certificate is sent
+  	 */
+-	if ((s->tlsext_status_type != -1) && s->ctx->tlsext_status_cb)
++	if (s->tlsext_status_type != -1 && s->ctx && s->ctx->tlsext_status_cb)
+ 		{
+ 		int r;
++		CERT_PKEY *certpkey;
++		certpkey = ssl_get_server_send_pkey(s);
++		/* If no certificate can't return certificate status */
++		if (certpkey == NULL)
++			{
++			s->tlsext_status_expected = 0;
++			return 1;
++			}
++		/* Set current certificate to one we will use so
++		 * SSL_get_certificate et al can pick it up.
++		 */
++		s->cert->key = certpkey;
+ 		r = s->ctx->tlsext_status_cb(s, s->ctx->tlsext_status_arg);
+ 		switch (r)
+ 			{
+@@ -785,7 +821,8 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned
+ 		}
+ 	else
+ 		s->tlsext_status_expected = 0;
+-	err:
++
++ err:
+ 	switch (ret)
+ 		{
+ 		case SSL_TLSEXT_ERR_ALERT_FATAL:
+@@ -795,11 +832,9 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned
+ 		case SSL_TLSEXT_ERR_ALERT_WARNING:
+ 			ssl3_send_alert(s,SSL3_AL_WARNING,al);
+ 			return 1; 
+-					
+-		case SSL_TLSEXT_ERR_NOACK:
+-			s->servername_done=0;
+-			default:
+-		return 1;
++
++		default:
++			return 1;
+ 		}
+ 	}
+ 
+@@ -977,7 +1012,7 @@ static int tls_decrypt_ticket(SSL *s, const unsign
+ 	HMAC_Update(&hctx, etick, eticklen);
+ 	HMAC_Final(&hctx, tick_hmac, NULL);
+ 	HMAC_CTX_cleanup(&hctx);
+-	if (memcmp(tick_hmac, etick + eticklen, mlen))
++	if (CRYPTO_memcmp(tick_hmac, etick + eticklen, mlen))
+ 		goto tickerr;
+ 	/* Attempt to decrypt session data */
+ 	/* Move p after IV to start of encrypted ticket, update length */
+Index: crypto/openssl/util/libeay.num
+===================================================================
+--- crypto/openssl/util/libeay.num	(revision 248771)
++++ crypto/openssl/util/libeay.num	(working copy)
+@@ -3510,6 +3510,7 @@ BIO_get_callback_arg                    3902	EXIST
+ BIO_set_callback                        3903	EXIST::FUNCTION:
+ d2i_ASIdOrRange                         3904	EXIST::FUNCTION:RFC3779
+ i2d_ASIdentifiers                       3905	EXIST::FUNCTION:RFC3779
++CRYPTO_memcmp                           3906	EXIST::FUNCTION:
+ SEED_decrypt                            3908	EXIST::FUNCTION:SEED
+ SEED_encrypt                            3909	EXIST::FUNCTION:SEED
+ SEED_cbc_encrypt                        3910	EXIST::FUNCTION:SEED
+Index: secure/lib/libcrypto/Makefile.inc
+===================================================================
+--- secure/lib/libcrypto/Makefile.inc	(revision 248771)
++++ secure/lib/libcrypto/Makefile.inc	(working copy)
+@@ -3,8 +3,8 @@
+ .include <bsd.own.mk>
+ 
+ # OpenSSL version used for manual page generation
+-OPENSSL_VER=	0.9.8x
+-OPENSSL_DATE=	2012-05-10
++OPENSSL_VER=	0.9.8y
++OPENSSL_DATE=	2013-02-05
+ 
+ LCRYPTO_SRC=	${.CURDIR}/../../../crypto/openssl
+ LCRYPTO_DOC=	${.CURDIR}/../../../crypto/openssl/doc
+Index: secure/lib/libssl/Makefile
+===================================================================
+--- secure/lib/libssl/Makefile	(revision 248771)
++++ secure/lib/libssl/Makefile	(working copy)
+@@ -14,7 +14,8 @@ SRCS=	bio_ssl.c d1_meth.c d1_srvr.c d1_clnt.c d1_l
+ 	d1_both.c d1_enc.c \
+ 	s23_clnt.c s23_lib.c s23_meth.c s23_pkt.c s23_srvr.c \
+ 	s2_clnt.c s2_enc.c s2_lib.c s2_meth.c s2_pkt.c s2_srvr.c \
+-	s3_both.c s3_clnt.c s3_enc.c s3_lib.c s3_meth.c s3_pkt.c \
++	s3_both.c s3_cbc.c s3_clnt.c s3_enc.c s3_lib.c s3_meth.c \
++	s3_pkt.c \
+ 	s3_srvr.c ssl_algs.c ssl_asn1.c ssl_cert.c ssl_ciph.c \
+ 	ssl_err.c ssl_err2.c ssl_lib.c ssl_rsa.c ssl_sess.c ssl_stat.c \
+ 	ssl_txt.c t1_clnt.c t1_enc.c t1_lib.c t1_meth.c t1_reneg.c t1_srvr.c
diff --git a/share/security/patches/SA-13:03/openssl-9.1.patch.asc b/share/security/patches/SA-13:03/openssl-9.1.patch.asc
new file mode 100644
index 0000000000..175de49c59
--- /dev/null
+++ b/share/security/patches/SA-13:03/openssl-9.1.patch.asc
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.19 (FreeBSD)
+
+iEYEABECAAYFAlFbGmEACgkQFdaIBMps37K6AQCeKkxtcMShX1BrRZYpH1VX7pXP
+mK0An1Ia/64Y8AWRUrz2UrxRHzU0qZut
+=sjGM
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/SA-13:03/openssl.patch b/share/security/patches/SA-13:03/openssl.patch
new file mode 100644
index 0000000000..896ddd195a
--- /dev/null
+++ b/share/security/patches/SA-13:03/openssl.patch
@@ -0,0 +1,5576 @@
+Index: crypto/openssl/CHANGES
+===================================================================
+--- crypto/openssl/CHANGES	(revision 248771)
++++ crypto/openssl/CHANGES	(working copy)
+@@ -2,6 +2,171 @@
+  OpenSSL CHANGES
+  _______________
+ 
++ Changes between 0.9.8x and 0.9.8y [5 Feb 2013]
++
++  *) Make the decoding of SSLv3, TLS and DTLS CBC records constant time.
++
++     This addresses the flaw in CBC record processing discovered by 
++     Nadhem Alfardan and Kenny Paterson. Details of this attack can be found
++     at: http://www.isg.rhul.ac.uk/tls/     
++
++     Thanks go to Nadhem Alfardan and Kenny Paterson of the Information
++     Security Group at Royal Holloway, University of London
++     (www.isg.rhul.ac.uk) for discovering this flaw and Adam Langley and
++     Emilia K�sper for the initial patch.
++     (CVE-2013-0169)
++     [Emilia K�sper, Adam Langley, Ben Laurie, Andy Polyakov, Steve Henson]
++
++  *) Return an error when checking OCSP signatures when key is NULL.
++     This fixes a DoS attack. (CVE-2013-0166)
++     [Steve Henson]
++
++  *) Call OCSP Stapling callback after ciphersuite has been chosen, so
++     the right response is stapled. Also change SSL_get_certificate()
++     so it returns the certificate actually sent.
++     See http://rt.openssl.org/Ticket/Display.html?id=2836.
++     (This is a backport)
++     [Rob Stradling <rob.stradling@comodo.com>]
++
++  *) Fix possible deadlock when decoding public keys.
++     [Steve Henson]
++
++ Changes between 0.9.8w and 0.9.8x [10 May 2012]
++
++  *) Sanity check record length before skipping explicit IV in DTLS
++     to fix DoS attack.
++
++     Thanks to Codenomicon for discovering this issue using Fuzz-o-Matic
++     fuzzing as a service testing platform.
++     (CVE-2012-2333)
++     [Steve Henson]
++
++  *) Initialise tkeylen properly when encrypting CMS messages.
++     Thanks to Solar Designer of Openwall for reporting this issue.
++     [Steve Henson]
++
++ Changes between 0.9.8v and 0.9.8w [23 Apr 2012]
++
++  *) The fix for CVE-2012-2110 did not take into account that the 
++     'len' argument to BUF_MEM_grow and BUF_MEM_grow_clean is an
++     int in OpenSSL 0.9.8, making it still vulnerable. Fix by 
++     rejecting negative len parameter. (CVE-2012-2131)
++     [Tomas Hoger <thoger@redhat.com>]
++
++ Changes between 0.9.8u and 0.9.8v [19 Apr 2012]
++
++  *) Check for potentially exploitable overflows in asn1_d2i_read_bio
++     BUF_mem_grow and BUF_mem_grow_clean. Refuse attempts to shrink buffer
++     in CRYPTO_realloc_clean.
++
++     Thanks to Tavis Ormandy, Google Security Team, for discovering this
++     issue and to Adam Langley <agl@chromium.org> for fixing it.
++     (CVE-2012-2110)
++     [Adam Langley (Google), Tavis Ormandy, Google Security Team]
++
++ Changes between 0.9.8t and 0.9.8u [12 Mar 2012]
++
++  *) Fix MMA (Bleichenbacher's attack on PKCS #1 v1.5 RSA padding) weakness
++     in CMS and PKCS7 code. When RSA decryption fails use a random key for
++     content decryption and always return the same error. Note: this attack
++     needs on average 2^20 messages so it only affects automated senders. The
++     old behaviour can be reenabled in the CMS code by setting the
++     CMS_DEBUG_DECRYPT flag: this is useful for debugging and testing where
++     an MMA defence is not necessary.
++     Thanks to Ivan Nestlerode <inestlerode@us.ibm.com> for discovering
++     this issue. (CVE-2012-0884)
++     [Steve Henson]
++
++  *) Fix CVE-2011-4619: make sure we really are receiving a 
++     client hello before rejecting multiple SGC restarts. Thanks to
++     Ivan Nestlerode <inestlerode@us.ibm.com> for discovering this bug.
++     [Steve Henson]
++
++ Changes between 0.9.8s and 0.9.8t [18 Jan 2012]
++
++  *) Fix for DTLS DoS issue introduced by fix for CVE-2011-4109.
++     Thanks to Antonio Martin, Enterprise Secure Access Research and
++     Development, Cisco Systems, Inc. for discovering this bug and
++     preparing a fix. (CVE-2012-0050)
++     [Antonio Martin]
++
++ Changes between 0.9.8r and 0.9.8s [4 Jan 2012]
++
++  *) Nadhem Alfardan and Kenny Paterson have discovered an extension
++     of the Vaudenay padding oracle attack on CBC mode encryption
++     which enables an efficient plaintext recovery attack against
++     the OpenSSL implementation of DTLS. Their attack exploits timing
++     differences arising during decryption processing. A research
++     paper describing this attack can be found at:
++                  http://www.isg.rhul.ac.uk/~kp/dtls.pdf
++     Thanks go to Nadhem Alfardan and Kenny Paterson of the Information
++     Security Group at Royal Holloway, University of London
++     (www.isg.rhul.ac.uk) for discovering this flaw and to Robin Seggelmann
++     <seggelmann@fh-muenster.de> and Michael Tuexen <tuexen@fh-muenster.de>
++     for preparing the fix. (CVE-2011-4108)
++     [Robin Seggelmann, Michael Tuexen]
++
++  *) Stop policy check failure freeing same buffer twice. (CVE-2011-4109)
++     [Ben Laurie, Kasper <ekasper@google.com>]
++
++  *) Clear bytes used for block padding of SSL 3.0 records.
++     (CVE-2011-4576)
++     [Adam Langley (Google)]
++
++  *) Only allow one SGC handshake restart for SSL/TLS. Thanks to George
++     Kadianakis <desnacked@gmail.com> for discovering this issue and
++     Adam Langley for preparing the fix. (CVE-2011-4619)
++     [Adam Langley (Google)]
++ 
++  *) Prevent malformed RFC3779 data triggering an assertion failure.
++     Thanks to Andrew Chi, BBN Technologies, for discovering the flaw
++     and Rob Austein <sra@hactrn.net> for fixing it. (CVE-2011-4577)
++     [Rob Austein <sra@hactrn.net>]
++
++  *) Fix ssl_ciph.c set-up race.
++     [Adam Langley (Google)]
++
++  *) Fix spurious failures in ecdsatest.c.
++     [Emilia K�sper (Google)]
++
++  *) Fix the BIO_f_buffer() implementation (which was mixing different
++     interpretations of the '..._len' fields).
++     [Adam Langley (Google)]
++
++  *) Fix handling of BN_BLINDING: now BN_BLINDING_invert_ex (rather than
++     BN_BLINDING_invert_ex) calls BN_BLINDING_update, ensuring that concurrent
++     threads won't reuse the same blinding coefficients.
++
++     This also avoids the need to obtain the CRYPTO_LOCK_RSA_BLINDING
++     lock to call BN_BLINDING_invert_ex, and avoids one use of
++     BN_BLINDING_update for each BN_BLINDING structure (previously,
++     the last update always remained unused).
++     [Emilia K�sper (Google)]
++
++  *) Fix SSL memory handling for (EC)DH ciphersuites, in particular
++     for multi-threaded use of ECDH.
++     [Adam Langley (Google)]
++
++  *) Fix x509_name_ex_d2i memory leak on bad inputs.
++     [Bodo Moeller]
++
++  *) Add protection against ECDSA timing attacks as mentioned in the paper
++     by Billy Bob Brumley and Nicola Tuveri, see:
++
++	http://eprint.iacr.org/2011/232.pdf
++
++     [Billy Bob Brumley and Nicola Tuveri]
++
++ Changes between 0.9.8q and 0.9.8r [8 Feb 2011]
++
++  *) Fix parsing of OCSP stapling ClientHello extension. CVE-2011-0014
++     [Neel Mehta, Adam Langley, Bodo Moeller (Google)]
++
++  *) Fix bug in string printing code: if *any* escaping is enabled we must
++     escape the escape character (backslash) or the resulting string is
++     ambiguous.
++     [Steve Henson]
++
+  Changes between 0.9.8p and 0.9.8q [2 Dec 2010]
+ 
+   *) Disable code workaround for ancient and obsolete Netscape browsers
+Index: crypto/openssl/Configure
+===================================================================
+--- crypto/openssl/Configure	(revision 248771)
++++ crypto/openssl/Configure	(working copy)
+@@ -162,6 +162,7 @@ my %table=(
+ "debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
+ "debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::",
+ "debug-ben-debug",	"gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG  -DDEBUG_SAFESTACK -ggdb3 -O2 -pipe::(unknown)::::::",
++"debug-ben-debug-64",	"gcc:$gcc_devteam_warn -DBN_DEBUG -DCONF_DEBUG -DDEBUG_SAFESTACK -DDEBUG_UNUSED -g3 -O3 -pipe::${BSDthreads}:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "debug-ben-debug-noopt",	"gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG  -DDEBUG_SAFESTACK -ggdb3 -pipe::(unknown)::::::",
+ "debug-ben-strict",	"gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::",
+ "debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
+@@ -172,10 +173,10 @@ my %table=(
+ "debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "debug-steve",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -m32 -g -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
+ "debug-steve-linux-pseudo64",	"gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT:${no_asm}:dlfcn:linux-shared",
+-"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -ggdb -g3 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -ggdb -g3 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"debug-levitte-linux-elf-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"debug-levitte-linux-noasm-extreme","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -ggdb -g3 -pedantic -ansi -Wall -W -Wundef -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "debug-geoff","gcc:-DBN_DEBUG -DBN_DEBUG_RAND -DBN_STRICT -DPURIFY -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ASM -DOPENSSL_NO_INLINE_ASM -DL_ENDIAN -DTERMIO -DPEDANTIC -O1 -ggdb2 -Wall -Werror -Wundef -pedantic -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wsign-compare -Wmissing-prototypes -Wmissing-declarations -Wno-long-long::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
+ "debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
+@@ -371,6 +372,9 @@ my %table=(
+ "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${no_asm}",
+ "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${no_asm}",
+ 
++# Android: Linux but without -DTERMIO and pointers to headers and libs.
++"android","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++
+ #### *BSD [do see comment about ${BSDthreads} above!]
+ "BSD-generic32","gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL:${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "BSD-x86",	"gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -Wall::${BSDthreads}:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+@@ -425,8 +429,8 @@ my %table=(
+ "aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
+ # Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
+ # at build time. $OBJECT_MODE is respected at ./config stage!
+-"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
+-"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
++"aix-cc",   "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR::aix_ppc32.o::::::::::dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
++"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR::aix_ppc64.o::::::::::dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
+ 
+ #
+ # Cray T90 and similar (SDSC)
+Index: crypto/openssl/FAQ
+===================================================================
+--- crypto/openssl/FAQ	(revision 248771)
++++ crypto/openssl/FAQ	(working copy)
+@@ -10,6 +10,7 @@ OpenSSL  -  Frequently Asked Questions
+ * Why aren't tools like 'autoconf' and 'libtool' used?
+ * What is an 'engine' version?
+ * How do I check the authenticity of the OpenSSL distribution?
++* How does the versioning scheme work?
+ 
+ [LEGAL] Legal questions
+ 
+@@ -82,7 +83,7 @@ OpenSSL  -  Frequently Asked Questions
+ * Which is the current version of OpenSSL?
+ 
+ The current version is available from <URL: http://www.openssl.org>.
+-OpenSSL 1.0.0c was released on Dec 2nd, 2010.
++OpenSSL 1.0.1d was released on Feb 5th, 2013.
+ 
+ In addition to the current stable release, you can also access daily
+ snapshots of the OpenSSL development version at <URL:
+@@ -108,7 +109,9 @@ In addition, you can read the most current version
+ <URL: http://www.openssl.org/docs/>. Note that the online documents refer
+ to the very latest development versions of OpenSSL and may include features
+ not present in released versions. If in doubt refer to the documentation
+-that came with the version of OpenSSL you are using.
++that came with the version of OpenSSL you are using. The pod format
++documentation is included in each OpenSSL distribution under the docs
++directory.
+ 
+ For information on parts of libcrypto that are not yet documented, you
+ might want to read Ariel Glenn's documentation on SSLeay 0.9, OpenSSL's
+@@ -173,6 +176,19 @@ just do:
+ 
+    pgp TARBALL.asc
+ 
++* How does the versioning scheme work?
++
++After the release of OpenSSL 1.0.0 the versioning scheme changed. Letter 
++releases (e.g. 1.0.1a) can only contain bug and security fixes and no
++new features. Minor releases change the last number (e.g. 1.0.2) and 
++can contain new features that retain binary compatibility. Changes to
++the middle number are considered major releases and neither source nor
++binary compatibility is guaranteed.
++
++Therefore the answer to the common question "when will feature X be
++backported to OpenSSL 1.0.0/0.9.8?" is "never" but it could appear
++in the next minor release.
++
+ [LEGAL] =======================================================================
+ 
+ * Do I need patent licenses to use OpenSSL?
+@@ -284,7 +300,7 @@ current directory in this case, but this has chang
+ Check out the CA.pl(1) manual page. This provides a simple wrapper round
+ the 'req', 'verify', 'ca' and 'pkcs12' utilities. For finer control check
+ out the manual pages for the individual utilities and the certificate
+-extensions documentation (currently in doc/openssl.txt).
++extensions documentation (in ca(1), req(1), x509v3_config(5) )
+ 
+ 
+ * Why can't I create certificate requests?
+Index: crypto/openssl/LICENSE
+===================================================================
+--- crypto/openssl/LICENSE	(revision 248771)
++++ crypto/openssl/LICENSE	(working copy)
+@@ -12,7 +12,7 @@
+   ---------------
+ 
+ /* ====================================================================
+- * Copyright (c) 1998-2008 The OpenSSL Project.  All rights reserved.
++ * Copyright (c) 1998-2011 The OpenSSL Project.  All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
+  * modification, are permitted provided that the following conditions
+Index: crypto/openssl/Makefile
+===================================================================
+--- crypto/openssl/Makefile	(revision 248771)
++++ crypto/openssl/Makefile	(working copy)
+@@ -4,7 +4,7 @@
+ ## Makefile for OpenSSL
+ ##
+ 
+-VERSION=0.9.8q
++VERSION=0.9.8y
+ MAJOR=0
+ MINOR=9.8
+ SHLIB_VERSION_NUMBER=0.9.8
+Index: crypto/openssl/NEWS
+===================================================================
+--- crypto/openssl/NEWS	(revision 248771)
++++ crypto/openssl/NEWS	(working copy)
+@@ -5,6 +5,45 @@
+   This file gives a brief overview of the major changes between each OpenSSL
+   release. For more details please read the CHANGES file.
+ 
++  Major changes between OpenSSL 0.9.8x and OpenSSL 0.9.8y:
++
++      o Fix for SSL/TLS/DTLS CBC plaintext recovery attack CVE-2013-0169
++      o Fix OCSP bad key DoS attack CVE-2013-0166
++
++  Major changes between OpenSSL 0.9.8w and OpenSSL 0.9.8x:
++
++      o Fix DTLS record length checking bug CVE-2012-2333
++
++  Major changes between OpenSSL 0.9.8v and OpenSSL 0.9.8w:
++
++      o Fix for CVE-2012-2131 (corrected fix for 0.9.8 and CVE-2012-2110)
++
++  Major changes between OpenSSL 0.9.8u and OpenSSL 0.9.8v:
++
++      o Fix for ASN1 overflow bug CVE-2012-2110
++
++  Major changes between OpenSSL 0.9.8t and OpenSSL 0.9.8u:
++
++      o Fix for CMS/PKCS#7 MMA CVE-2012-0884
++      o Corrected fix for CVE-2011-4619
++      o Various DTLS fixes.
++
++  Major changes between OpenSSL 0.9.8s and OpenSSL 0.9.8t:
++
++      o Fix for DTLS DoS issue CVE-2012-0050
++
++  Major changes between OpenSSL 0.9.8r and OpenSSL 0.9.8s:
++
++      o Fix for DTLS plaintext recovery attack CVE-2011-4108
++      o Fix policy check double free error CVE-2011-4109
++      o Clear block padding bytes of SSL 3.0 records CVE-2011-4576
++      o Only allow one SGC handshake restart for SSL/TLS CVE-2011-4619
++      o Check for malformed RFC3779 data CVE-2011-4577
++
++  Major changes between OpenSSL 0.9.8q and OpenSSL 0.9.8r:
++
++      o Fix for security issue CVE-2011-0014
++
+   Major changes between OpenSSL 0.9.8p and OpenSSL 0.9.8q:
+ 
+       o Fix for security issue CVE-2010-4180
+@@ -181,6 +220,11 @@
+       o Added initial support for Win64.
+       o Added alternate pkg-config files.
+ 
++  Major changes between OpenSSL 0.9.7l and OpenSSL 0.9.7m:
++
++      o FIPS 1.1.1 module linking.
++      o Various ciphersuite selection fixes.
++
+   Major changes between OpenSSL 0.9.7k and OpenSSL 0.9.7l:
+ 
+       o Introduce limits to prevent malicious key DoS  (CVE-2006-2940)
+Index: crypto/openssl/README
+===================================================================
+--- crypto/openssl/README	(revision 248771)
++++ crypto/openssl/README	(working copy)
+@@ -1,7 +1,7 @@
+ 
+- OpenSSL 0.9.8q 2 Dec 2010
++ OpenSSL 0.9.8y 5 Feb 2013
+ 
+- Copyright (c) 1998-2009 The OpenSSL Project
++ Copyright (c) 1998-2011 The OpenSSL Project
+  Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
+  All rights reserved.
+ 
+Index: crypto/openssl/apps/apps.c
+===================================================================
+--- crypto/openssl/apps/apps.c	(revision 248771)
++++ crypto/openssl/apps/apps.c	(working copy)
+@@ -2052,7 +2052,7 @@ X509_NAME *parse_name(char *subject, long chtype,
+ 	X509_NAME *n = NULL;
+ 	int nid;
+ 
+-	if (!buf || !ne_types || !ne_values)
++	if (!buf || !ne_types || !ne_values || !mval)
+ 		{
+ 		BIO_printf(bio_err, "malloc error\n");
+ 		goto error;
+@@ -2156,6 +2156,7 @@ X509_NAME *parse_name(char *subject, long chtype,
+ 	OPENSSL_free(ne_values);
+ 	OPENSSL_free(ne_types);
+ 	OPENSSL_free(buf);
++	OPENSSL_free(mval);
+ 	return n;
+ 
+ error:
+@@ -2164,6 +2165,8 @@ error:
+ 		OPENSSL_free(ne_values);
+ 	if (ne_types)
+ 		OPENSSL_free(ne_types);
++	if (mval)
++		OPENSSL_free(mval);
+ 	if (buf)
+ 		OPENSSL_free(buf);
+ 	return NULL;
+Index: crypto/openssl/apps/asn1pars.c
+===================================================================
+--- crypto/openssl/apps/asn1pars.c	(revision 248771)
++++ crypto/openssl/apps/asn1pars.c	(working copy)
+@@ -408,6 +408,7 @@ static int do_generate(BIO *bio, char *genstr, cha
+ 
+ 	atyp = ASN1_generate_nconf(genstr, cnf);
+ 	NCONF_free(cnf);
++	cnf = NULL;
+ 
+ 	if (!atyp)
+ 		return -1;
+Index: crypto/openssl/apps/cms.c
+===================================================================
+--- crypto/openssl/apps/cms.c	(revision 248771)
++++ crypto/openssl/apps/cms.c	(working copy)
+@@ -226,6 +226,8 @@ int MAIN(int argc, char **argv)
+ 		else if (!strcmp(*args,"-camellia256"))
+ 				cipher = EVP_camellia_256_cbc();
+ #endif
++		else if (!strcmp (*args, "-debug_decrypt")) 
++				flags |= CMS_DEBUG_DECRYPT;
+ 		else if (!strcmp (*args, "-text")) 
+ 				flags |= CMS_TEXT;
+ 		else if (!strcmp (*args, "-nointern")) 
+@@ -611,7 +613,7 @@ int MAIN(int argc, char **argv)
+ 		BIO_printf (bio_err, "-certsout file certificate output file\n");
+ 		BIO_printf (bio_err, "-signer file   signer certificate file\n");
+ 		BIO_printf (bio_err, "-recip  file   recipient certificate file for decryption\n");
+-		BIO_printf (bio_err, "-skeyid        use subject key identifier\n");
++		BIO_printf (bio_err, "-keyid         use subject key identifier\n");
+ 		BIO_printf (bio_err, "-in file       input file\n");
+ 		BIO_printf (bio_err, "-inform arg    input format SMIME (default), PEM or DER\n");
+ 		BIO_printf (bio_err, "-inkey file    input private key (if not signer or recipient)\n");
+@@ -1013,6 +1015,8 @@ int MAIN(int argc, char **argv)
+ 	ret = 4;
+ 	if (operation == SMIME_DECRYPT)
+ 		{
++		if (flags & CMS_DEBUG_DECRYPT)
++			CMS_decrypt(cms, NULL, NULL, NULL, NULL, flags);
+ 
+ 		if (secret_key)
+ 			{
+Index: crypto/openssl/apps/dhparam.c
+===================================================================
+--- crypto/openssl/apps/dhparam.c	(revision 248771)
++++ crypto/openssl/apps/dhparam.c	(working copy)
+@@ -332,7 +332,6 @@ bad:
+ 			BIO_printf(bio_err,"This is going to take a long time\n");
+ 			if(!dh || !DH_generate_parameters_ex(dh, num, g, &cb))
+ 				{
+-				if(dh) DH_free(dh);
+ 				ERR_print_errors(bio_err);
+ 				goto end;
+ 				}
+Index: crypto/openssl/apps/openssl.cnf
+===================================================================
+--- crypto/openssl/apps/openssl.cnf	(revision 248771)
++++ crypto/openssl/apps/openssl.cnf	(working copy)
+@@ -142,7 +142,7 @@ localityName			= Locality Name (eg, city)
+ organizationalUnitName		= Organizational Unit Name (eg, section)
+ #organizationalUnitName_default	=
+ 
+-commonName			= Common Name (eg, YOUR name)
++commonName			= Common Name (e.g. server FQDN or YOUR name)
+ commonName_max			= 64
+ 
+ emailAddress			= Email Address
+Index: crypto/openssl/apps/pkcs12.c
+===================================================================
+--- crypto/openssl/apps/pkcs12.c	(revision 248771)
++++ crypto/openssl/apps/pkcs12.c	(working copy)
+@@ -659,7 +659,7 @@ int MAIN(int argc, char **argv)
+ 
+     if (!twopass) BUF_strlcpy(macpass, pass, sizeof macpass);
+ 
+-    if (options & INFO) BIO_printf (bio_err, "MAC Iteration %ld\n", p12->mac->iter ? ASN1_INTEGER_get (p12->mac->iter) : 1);
++    if ((options & INFO) && p12->mac) BIO_printf (bio_err, "MAC Iteration %ld\n", p12->mac->iter ? ASN1_INTEGER_get (p12->mac->iter) : 1);
+     if(macver) {
+ #ifdef CRYPTO_MDEBUG
+     CRYPTO_push_info("verify MAC");
+Index: crypto/openssl/apps/s_client.c
+===================================================================
+--- crypto/openssl/apps/s_client.c	(revision 248771)
++++ crypto/openssl/apps/s_client.c	(working copy)
+@@ -345,13 +345,7 @@ int MAIN(int argc, char **argv)
+ 	char *jpake_secret = NULL;
+ #endif
+ 
+-#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
+ 	meth=SSLv23_client_method();
+-#elif !defined(OPENSSL_NO_SSL3)
+-	meth=SSLv3_client_method();
+-#elif !defined(OPENSSL_NO_SSL2)
+-	meth=SSLv2_client_method();
+-#endif
+ 
+ 	apps_startup();
+ 	c_Pause=0;
+Index: crypto/openssl/apps/s_server.c
+===================================================================
+--- crypto/openssl/apps/s_server.c	(revision 248771)
++++ crypto/openssl/apps/s_server.c	(working copy)
+@@ -781,13 +781,7 @@ int MAIN(int argc, char *argv[])
+         tlsextctx tlsextcbp = {NULL, NULL, SSL_TLSEXT_ERR_ALERT_WARNING};
+ #endif
+ 
+-#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
+ 	meth=SSLv23_server_method();
+-#elif !defined(OPENSSL_NO_SSL3)
+-	meth=SSLv3_server_method();
+-#elif !defined(OPENSSL_NO_SSL2)
+-	meth=SSLv2_server_method();
+-#endif
+ 
+ 	local_argc=argc;
+ 	local_argv=argv;
+@@ -1556,6 +1550,12 @@ end:
+ 	if (dpass)
+ 		OPENSSL_free(dpass);
+ #ifndef OPENSSL_NO_TLSEXT
++	if (tlscstatp.host)
++		OPENSSL_free(tlscstatp.host);
++	if (tlscstatp.port)
++		OPENSSL_free(tlscstatp.port);
++	if (tlscstatp.path)
++		OPENSSL_free(tlscstatp.path);
+ 	if (ctx2 != NULL) SSL_CTX_free(ctx2);
+ 	if (s_cert2)
+ 		X509_free(s_cert2);
+Index: crypto/openssl/apps/x509.c
+===================================================================
+--- crypto/openssl/apps/x509.c	(revision 248771)
++++ crypto/openssl/apps/x509.c	(working copy)
+@@ -969,7 +969,7 @@ bad:
+ 				else
+ 					{
+ 					pk=load_key(bio_err,
+-						keyfile, FORMAT_PEM, 0,
++						keyfile, keyformat, 0,
+ 						passin, e, "request key");
+ 					if (pk == NULL) goto end;
+ 					}
+Index: crypto/openssl/config
+===================================================================
+--- crypto/openssl/config	(revision 248771)
++++ crypto/openssl/config	(working copy)
+@@ -790,6 +790,10 @@ esac
+ #  options="$options -DATALLA"
+ #fi
+ 
++($CC -Wa,--help -c -o /dev/null -x assembler /dev/null 2>&1 | \
++ grep \\--noexecstack) 2>&1 > /dev/null && \
++  options="$options -Wa,--noexecstack"
++
+ # gcc < 2.8 does not support -march=ultrasparc
+ if [ "$OUT" = solaris-sparcv9-gcc -a $GCCVER -lt 28 ]
+ then
+Index: crypto/openssl/crypto/asn1/a_object.c
+===================================================================
+--- crypto/openssl/crypto/asn1/a_object.c	(revision 248771)
++++ crypto/openssl/crypto/asn1/a_object.c	(working copy)
+@@ -139,7 +139,7 @@ int a2d_ASN1_OBJECT(unsigned char *out, int olen,
+ 				ASN1err(ASN1_F_A2D_ASN1_OBJECT,ASN1_R_INVALID_DIGIT);
+ 				goto err;
+ 				}
+-			if (!use_bn && l > (ULONG_MAX / 10L))
++			if (!use_bn && l >= ((ULONG_MAX - 80) / 10L))
+ 				{
+ 				use_bn = 1;
+ 				if (!bl)
+@@ -294,7 +294,7 @@ ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, cons
+ 	/* Sanity check OID encoding: can't have leading 0x80 in
+ 	 * subidentifiers, see: X.690 8.19.2
+ 	 */
+-	for (i = 0, p = *pp + 1; i < len - 1; i++, p++)
++	for (i = 0, p = *pp; i < len; i++, p++)
+ 		{
+ 		if (*p == 0x80 && (!i || !(p[-1] & 0x80)))
+ 			{
+Index: crypto/openssl/crypto/asn1/a_strex.c
+===================================================================
+--- crypto/openssl/crypto/asn1/a_strex.c	(revision 248771)
++++ crypto/openssl/crypto/asn1/a_strex.c	(working copy)
+@@ -74,7 +74,12 @@
+ 
+ #define CHARTYPE_BS_ESC		(ASN1_STRFLGS_ESC_2253 | CHARTYPE_FIRST_ESC_2253 | CHARTYPE_LAST_ESC_2253)
+ 
++#define ESC_FLAGS (ASN1_STRFLGS_ESC_2253 | \
++		  ASN1_STRFLGS_ESC_QUOTE | \
++		  ASN1_STRFLGS_ESC_CTRL | \
++		  ASN1_STRFLGS_ESC_MSB)
+ 
++
+ /* Three IO functions for sending data to memory, a BIO and
+  * and a FILE pointer.
+  */
+@@ -148,6 +153,13 @@ static int do_esc_char(unsigned long c, unsigned c
+ 		if(!io_ch(arg, tmphex, 3)) return -1;
+ 		return 3;
+ 	}
++	/* If we get this far and do any escaping at all must escape 
++	 * the escape character itself: backslash.
++	 */
++	if (chtmp == '\\' && flags & ESC_FLAGS) {
++		if(!io_ch(arg, "\\\\", 2)) return -1;
++		return 2;
++	}
+ 	if(!io_ch(arg, &chtmp, 1)) return -1;
+ 	return 1;
+ }
+@@ -292,11 +304,6 @@ static const signed char tag2nbyte[] = {
+ 	4, -1, 2		/* 28-30 */
+ };
+ 
+-#define ESC_FLAGS (ASN1_STRFLGS_ESC_2253 | \
+-		  ASN1_STRFLGS_ESC_QUOTE | \
+-		  ASN1_STRFLGS_ESC_CTRL | \
+-		  ASN1_STRFLGS_ESC_MSB)
+-
+ /* This is the main function, print out an
+  * ASN1_STRING taking note of various escape
+  * and display options. Returns number of
+@@ -560,6 +567,7 @@ int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_
+ 	if(mbflag == -1) return -1;
+ 	mbflag |= MBSTRING_FLAG;
+ 	stmp.data = NULL;
++	stmp.length = 0;
+ 	ret = ASN1_mbstring_copy(&str, in->data, in->length, mbflag, B_ASN1_UTF8STRING);
+ 	if(ret < 0) return ret;
+ 	*out = stmp.data;
+Index: crypto/openssl/crypto/asn1/a_strnid.c
+===================================================================
+--- crypto/openssl/crypto/asn1/a_strnid.c	(revision 248771)
++++ crypto/openssl/crypto/asn1/a_strnid.c	(working copy)
+@@ -96,7 +96,7 @@ unsigned long ASN1_STRING_get_default_mask(void)
+  * default:   the default value, Printable, T61, BMP.
+  */
+ 
+-int ASN1_STRING_set_default_mask_asc(char *p)
++int ASN1_STRING_set_default_mask_asc(const char *p)
+ {
+ 	unsigned long mask;
+ 	char *end;
+Index: crypto/openssl/crypto/asn1/a_verify.c
+===================================================================
+--- crypto/openssl/crypto/asn1/a_verify.c	(revision 248771)
++++ crypto/openssl/crypto/asn1/a_verify.c	(working copy)
+@@ -138,6 +138,12 @@ int ASN1_item_verify(const ASN1_ITEM *it, X509_ALG
+ 	unsigned char *buf_in=NULL;
+ 	int ret= -1,i,inl;
+ 
++	if (!pkey)
++		{
++		ASN1err(ASN1_F_ASN1_ITEM_VERIFY, ERR_R_PASSED_NULL_PARAMETER);
++		return -1;
++		}
++
+ 	EVP_MD_CTX_init(&ctx);
+ 	i=OBJ_obj2nid(a->algorithm);
+ 	type=EVP_get_digestbyname(OBJ_nid2sn(i));
+Index: crypto/openssl/crypto/asn1/asn1.h
+===================================================================
+--- crypto/openssl/crypto/asn1/asn1.h	(revision 248771)
++++ crypto/openssl/crypto/asn1/asn1.h	(working copy)
+@@ -1051,7 +1051,7 @@ ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_vo
+ ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, ASN1_OCTET_STRING **oct);
+ 
+ void ASN1_STRING_set_default_mask(unsigned long mask);
+-int ASN1_STRING_set_default_mask_asc(char *p);
++int ASN1_STRING_set_default_mask_asc(const char *p);
+ unsigned long ASN1_STRING_get_default_mask(void);
+ int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len,
+ 					int inform, unsigned long mask);
+Index: crypto/openssl/crypto/asn1/asn_mime.c
+===================================================================
+--- crypto/openssl/crypto/asn1/asn_mime.c	(revision 248771)
++++ crypto/openssl/crypto/asn1/asn_mime.c	(working copy)
+@@ -418,9 +418,9 @@ ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont,
+ 
+ 		if(strcmp(hdr->value, "application/x-pkcs7-signature") &&
+ 			strcmp(hdr->value, "application/pkcs7-signature")) {
+-			sk_MIME_HEADER_pop_free(headers, mime_hdr_free);
+ 			ASN1err(ASN1_F_SMIME_READ_ASN1,ASN1_R_SIG_INVALID_MIME_TYPE);
+ 			ERR_add_error_data(2, "type: ", hdr->value);
++			sk_MIME_HEADER_pop_free(headers, mime_hdr_free);
+ 			sk_BIO_pop_free(parts, BIO_vfree);
+ 			return NULL;
+ 		}
+@@ -790,12 +790,17 @@ static int mime_hdr_addparam(MIME_HEADER *mhdr, ch
+ static int mime_hdr_cmp(const MIME_HEADER * const *a,
+ 			const MIME_HEADER * const *b)
+ {
++	if (!(*a)->name || !(*b)->name)
++		return !!(*a)->name - !!(*b)->name;
++
+ 	return(strcmp((*a)->name, (*b)->name));
+ }
+ 
+ static int mime_param_cmp(const MIME_PARAM * const *a,
+ 			const MIME_PARAM * const *b)
+ {
++	if (!(*a)->param_name || !(*b)->param_name)
++		return !!(*a)->param_name - !!(*b)->param_name;
+ 	return(strcmp((*a)->param_name, (*b)->param_name));
+ }
+ 
+Index: crypto/openssl/crypto/asn1/x_name.c
+===================================================================
+--- crypto/openssl/crypto/asn1/x_name.c	(revision 248771)
++++ crypto/openssl/crypto/asn1/x_name.c	(working copy)
+@@ -196,7 +196,9 @@ static int x509_name_ex_d2i(ASN1_VALUE **val, cons
+ 	*val = nm.a;
+ 	*in = p;
+ 	return ret;
+-	err:
++err:
++        if (nm.x != NULL)
++		X509_NAME_free(nm.x);
+ 	ASN1err(ASN1_F_X509_NAME_EX_D2I, ERR_R_NESTED_ASN1_ERROR);
+ 	return 0;
+ }
+Index: crypto/openssl/crypto/asn1/x_pubkey.c
+===================================================================
+--- crypto/openssl/crypto/asn1/x_pubkey.c	(revision 248771)
++++ crypto/openssl/crypto/asn1/x_pubkey.c	(working copy)
+@@ -367,7 +367,19 @@ EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key)
+ 		goto err;
+ 		}
+ 
+-	key->pkey = ret;
++	/* Check to see if another thread set key->pkey first */
++	CRYPTO_w_lock(CRYPTO_LOCK_EVP_PKEY);
++	if (key->pkey)
++		{
++		CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
++		EVP_PKEY_free(ret);
++		ret = key->pkey;
++		}
++	else
++		{
++		key->pkey = ret;
++		CRYPTO_w_unlock(CRYPTO_LOCK_EVP_PKEY);
++		}
+ 	CRYPTO_add(&ret->references, 1, CRYPTO_LOCK_EVP_PKEY);
+ 	return(ret);
+ err:
+Index: crypto/openssl/crypto/bio/bf_buff.c
+===================================================================
+--- crypto/openssl/crypto/bio/bf_buff.c	(revision 248771)
++++ crypto/openssl/crypto/bio/bf_buff.c	(working copy)
+@@ -209,7 +209,7 @@ start:
+ 	/* add to buffer and return */
+ 	if (i >= inl)
+ 		{
+-		memcpy(&(ctx->obuf[ctx->obuf_len]),in,inl);
++		memcpy(&(ctx->obuf[ctx->obuf_off+ctx->obuf_len]),in,inl);
+ 		ctx->obuf_len+=inl;
+ 		return(num+inl);
+ 		}
+@@ -219,7 +219,7 @@ start:
+ 		{
+ 		if (i > 0) /* lets fill it up if we can */
+ 			{
+-			memcpy(&(ctx->obuf[ctx->obuf_len]),in,i);
++			memcpy(&(ctx->obuf[ctx->obuf_off+ctx->obuf_len]),in,i);
+ 			in+=i;
+ 			inl-=i;
+ 			num+=i;
+@@ -294,9 +294,9 @@ static long buffer_ctrl(BIO *b, int cmd, long num,
+ 	case BIO_C_GET_BUFF_NUM_LINES:
+ 		ret=0;
+ 		p1=ctx->ibuf;
+-		for (i=ctx->ibuf_off; i<ctx->ibuf_len; i++)
++		for (i=0; i<ctx->ibuf_len; i++)
+ 			{
+-			if (p1[i] == '\n') ret++;
++			if (p1[ctx->ibuf_off + i] == '\n') ret++;
+ 			}
+ 		break;
+ 	case BIO_CTRL_WPENDING:
+@@ -399,17 +399,18 @@ static long buffer_ctrl(BIO *b, int cmd, long num,
+ 		for (;;)
+ 			{
+ 			BIO_clear_retry_flags(b);
+-			if (ctx->obuf_len > ctx->obuf_off)
++			if (ctx->obuf_len > 0)
+ 				{
+ 				r=BIO_write(b->next_bio,
+ 					&(ctx->obuf[ctx->obuf_off]),
+-					ctx->obuf_len-ctx->obuf_off);
++					ctx->obuf_len);
+ #if 0
+-fprintf(stderr,"FLUSH [%3d] %3d -> %3d\n",ctx->obuf_off,ctx->obuf_len-ctx->obuf_off,r);
++fprintf(stderr,"FLUSH [%3d] %3d -> %3d\n",ctx->obuf_off,ctx->obuf_len,r);
+ #endif
+ 				BIO_copy_next_retry(b);
+ 				if (r <= 0) return((long)r);
+ 				ctx->obuf_off+=r;
++				ctx->obuf_len-=r;
+ 				}
+ 			else
+ 				{
+Index: crypto/openssl/crypto/bio/bio.h
+===================================================================
+--- crypto/openssl/crypto/bio/bio.h	(revision 248771)
++++ crypto/openssl/crypto/bio/bio.h	(working copy)
+@@ -145,6 +145,7 @@ extern "C" {
+ /* #endif */
+ 
+ #define BIO_CTRL_DGRAM_QUERY_MTU          40 /* as kernel for current MTU */
++#define BIO_CTRL_DGRAM_GET_FALLBACK_MTU   47
+ #define BIO_CTRL_DGRAM_GET_MTU            41 /* get cached value for MTU */
+ #define BIO_CTRL_DGRAM_SET_MTU            42 /* set cached value for
+ 					      * MTU. want to use this
+@@ -321,6 +322,15 @@ DECLARE_STACK_OF(BIO)
+ 
+ typedef struct bio_f_buffer_ctx_struct
+ 	{
++	/* Buffers are setup like this:
++	 *
++	 * <---------------------- size ----------------------->
++	 * +---------------------------------------------------+
++	 * | consumed | remaining          | free space        |
++	 * +---------------------------------------------------+
++	 * <-- off --><------- len ------->
++	 */
++
+ 	/* BIO *bio; */ /* this is now in the BIO struct */
+ 	int ibuf_size;	/* how big is the input buffer */
+ 	int obuf_size;	/* how big is the output buffer */
+Index: crypto/openssl/crypto/bio/bss_dgram.c
+===================================================================
+--- crypto/openssl/crypto/bio/bss_dgram.c	(revision 248771)
++++ crypto/openssl/crypto/bio/bss_dgram.c	(working copy)
+@@ -57,7 +57,6 @@
+  *
+  */
+ 
+-#ifndef OPENSSL_NO_DGRAM
+ 
+ #include <stdio.h>
+ #include <errno.h>
+@@ -65,6 +64,7 @@
+ #include "cryptlib.h"
+ 
+ #include <openssl/bio.h>
++#ifndef OPENSSL_NO_DGRAM
+ 
+ #if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS)
+ #include <sys/timeb.h>
+@@ -288,7 +288,6 @@ static int dgram_read(BIO *b, char *out, int outl)
+ 		 */
+ 		dgram_adjust_rcv_timeout(b);
+ 		ret=recvfrom(b->num,out,outl,0,&peer,(void *)&peerlen);
+-		dgram_reset_rcv_timeout(b);
+ 
+ 		if ( ! data->connected  && ret >= 0)
+ 			BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, &peer);
+@@ -302,6 +301,8 @@ static int dgram_read(BIO *b, char *out, int outl)
+ 				data->_errno = get_last_socket_error();
+ 				}
+ 			}
++
++		dgram_reset_rcv_timeout(b);
+ 		}
+ 	return(ret);
+ 	}
+@@ -493,6 +494,9 @@ static long dgram_ctrl(BIO *b, int cmd, long num,
+ 		ret = 0;
+ #endif
+ 		break;
++	case BIO_CTRL_DGRAM_GET_FALLBACK_MTU:
++		ret = 576 - 20 - 8;
++		break;
+ 	case BIO_CTRL_DGRAM_GET_MTU:
+ 		return data->mtu;
+ 		break;
+@@ -654,9 +658,13 @@ static int BIO_dgram_should_retry(int i)
+ 		{
+ 		err=get_last_socket_error();
+ 
+-#if defined(OPENSSL_SYS_WINDOWS) && 0 /* more microsoft stupidity? perhaps not? Ben 4/1/99 */
+-		if ((i == -1) && (err == 0))
+-			return(1);
++#if defined(OPENSSL_SYS_WINDOWS)
++	/* If the socket return value (i) is -1
++	 * and err is unexpectedly 0 at this point,
++	 * the error code was overwritten by
++	 * another system call before this error
++	 * handling is called.
++	 */
+ #endif
+ 
+ 		return(BIO_dgram_non_fatal_error(err));
+@@ -719,7 +727,6 @@ int BIO_dgram_non_fatal_error(int err)
+ 		}
+ 	return(0);
+ 	}
+-#endif
+ 
+ static void get_current_time(struct timeval *t)
+ 	{
+@@ -737,3 +744,5 @@ static void get_current_time(struct timeval *t)
+ 	gettimeofday(t, NULL);
+ #endif
+ 	}
++
++#endif
+Index: crypto/openssl/crypto/bn/asm/mo-586.pl
+===================================================================
+--- crypto/openssl/crypto/bn/asm/mo-586.pl	(revision 248771)
++++ crypto/openssl/crypto/bn/asm/mo-586.pl	(working copy)
+@@ -539,8 +539,10 @@ $sbit=$num;
+ 	&jle	(&label("sqradd"));
+ 
+ 	&mov	($carry,"edx");
+-	&lea	("edx",&DWP(0,$sbit,"edx",2));
++	&add	("edx","edx");
+ 	&shr	($carry,31);
++	&add	("edx",$sbit);
++	&adc	($carry,0);
+ &set_label("sqrlast");
+ 	&mov	($word,$_n0);
+ 	&mov	($inp,$_np);
+Index: crypto/openssl/crypto/bn/asm/ppc.pl
+===================================================================
+--- crypto/openssl/crypto/bn/asm/ppc.pl	(revision 248771)
++++ crypto/openssl/crypto/bn/asm/ppc.pl	(working copy)
+@@ -1039,7 +1039,7 @@ sub data {
+ 	addze	r11,r0
+ 					#mul_add_c(a[3],b[2],c3,c1,c2);
+ 	$LD	r6,`3*$BNSZ`(r4)
+-	$LD	r7,`2*$BNSZ`(r4)
++	$LD	r7,`2*$BNSZ`(r5)
+ 	$UMULL	r8,r6,r7
+ 	$UMULH	r9,r6,r7
+ 	addc	r12,r8,r12
+Index: crypto/openssl/crypto/bn/bn_blind.c
+===================================================================
+--- crypto/openssl/crypto/bn/bn_blind.c	(revision 248771)
++++ crypto/openssl/crypto/bn/bn_blind.c	(working copy)
+@@ -123,7 +123,7 @@ struct bn_blinding_st
+ 	BIGNUM *mod; /* just a reference */
+ 	unsigned long thread_id; /* added in OpenSSL 0.9.6j and 0.9.7b;
+ 				  * used only by crypto/rsa/rsa_eay.c, rsa_lib.c */
+-	unsigned int  counter;
++	int counter;
+ 	unsigned long flags;
+ 	BN_MONT_CTX *m_ctx;
+ 	int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p,
+@@ -157,7 +157,10 @@ BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, cons
+ 	if (BN_get_flags(mod, BN_FLG_CONSTTIME) != 0)
+ 		BN_set_flags(ret->mod, BN_FLG_CONSTTIME);
+ 
+-	ret->counter = BN_BLINDING_COUNTER;
++	/* Set the counter to the special value -1
++	 * to indicate that this is never-used fresh blinding
++	 * that does not need updating before first use. */
++	ret->counter = -1;
+ 	return(ret);
+ err:
+ 	if (ret != NULL) BN_BLINDING_free(ret);
+@@ -186,7 +189,10 @@ int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx
+ 		goto err;
+ 		}
+ 
+-	if (--(b->counter) == 0 && b->e != NULL &&
++	if (b->counter == -1)
++		b->counter = 0;
++
++	if (++b->counter == BN_BLINDING_COUNTER && b->e != NULL &&
+ 		!(b->flags & BN_BLINDING_NO_RECREATE))
+ 		{
+ 		/* re-create blinding parameters */
+@@ -201,8 +207,8 @@ int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx
+ 
+ 	ret=1;
+ err:
+-	if (b->counter == 0)
+-		b->counter = BN_BLINDING_COUNTER;
++	if (b->counter == BN_BLINDING_COUNTER)
++		b->counter = 0;
+ 	return(ret);
+ 	}
+ 
+@@ -223,6 +229,12 @@ int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, B
+ 		return(0);
+ 		}
+ 
++	if (b->counter == -1)
++		/* Fresh blinding, doesn't need updating. */
++		b->counter = 0;
++	else if (!BN_BLINDING_update(b,ctx))
++		return(0);
++
+ 	if (r != NULL)
+ 		{
+ 		if (!BN_copy(r, b->Ai)) ret=0;
+@@ -243,22 +255,19 @@ int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM
+ 	int ret;
+ 
+ 	bn_check_top(n);
+-	if ((b->A == NULL) || (b->Ai == NULL))
+-		{
+-		BNerr(BN_F_BN_BLINDING_INVERT_EX,BN_R_NOT_INITIALIZED);
+-		return(0);
+-		}
+ 
+ 	if (r != NULL)
+ 		ret = BN_mod_mul(n, n, r, b->mod, ctx);
+ 	else
+-		ret = BN_mod_mul(n, n, b->Ai, b->mod, ctx);
+-
+-	if (ret >= 0)
+ 		{
+-		if (!BN_BLINDING_update(b,ctx))
++		if (b->Ai == NULL)
++			{
++			BNerr(BN_F_BN_BLINDING_INVERT_EX,BN_R_NOT_INITIALIZED);
+ 			return(0);
++			}
++		ret = BN_mod_mul(n, n, b->Ai, b->mod, ctx);
+ 		}
++
+ 	bn_check_top(n);
+ 	return(ret);
+ 	}
+Index: crypto/openssl/crypto/bn/bn_gf2m.c
+===================================================================
+--- crypto/openssl/crypto/bn/bn_gf2m.c	(revision 248771)
++++ crypto/openssl/crypto/bn/bn_gf2m.c	(working copy)
+@@ -607,6 +607,7 @@ int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *a, co
+ 		{
+ 		while (!BN_is_odd(u))
+ 			{
++			if (BN_is_zero(u)) goto err;
+ 			if (!BN_rshift1(u, u)) goto err;
+ 			if (BN_is_odd(b))
+ 				{
+Index: crypto/openssl/crypto/bn/bn_word.c
+===================================================================
+--- crypto/openssl/crypto/bn/bn_word.c	(revision 248771)
++++ crypto/openssl/crypto/bn/bn_word.c	(working copy)
+@@ -144,26 +144,17 @@ int BN_add_word(BIGNUM *a, BN_ULONG w)
+ 			a->neg=!(a->neg);
+ 		return(i);
+ 		}
+-	/* Only expand (and risk failing) if it's possibly necessary */
+-	if (((BN_ULONG)(a->d[a->top - 1] + 1) == 0) &&
+-			(bn_wexpand(a,a->top+1) == NULL))
+-		return(0);
+-	i=0;
+-	for (;;)
++	for (i=0;w!=0 && i<a->top;i++)
+ 		{
+-		if (i >= a->top)
+-			l=w;
+-		else
+-			l=(a->d[i]+w)&BN_MASK2;
+-		a->d[i]=l;
+-		if (w > l)
+-			w=1;
+-		else
+-			break;
+-		i++;
++		a->d[i] = l = (a->d[i]+w)&BN_MASK2;
++		w = (w>l)?1:0;
+ 		}
+-	if (i >= a->top)
++	if (w && i==a->top)
++		{
++		if (bn_wexpand(a,a->top+1) == NULL) return 0;
+ 		a->top++;
++		a->d[i]=w;
++		}
+ 	bn_check_top(a);
+ 	return(1);
+ 	}
+Index: crypto/openssl/crypto/cms/cms.h
+===================================================================
+--- crypto/openssl/crypto/cms/cms.h	(revision 248771)
++++ crypto/openssl/crypto/cms/cms.h	(working copy)
+@@ -110,6 +110,7 @@ DECLARE_ASN1_FUNCTIONS_const(CMS_ReceiptRequest)
+ #define CMS_PARTIAL			0x4000
+ #define CMS_REUSE_DIGEST		0x8000
+ #define CMS_USE_KEYID			0x10000
++#define CMS_DEBUG_DECRYPT		0x20000
+ 
+ const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms);
+ 
+Index: crypto/openssl/crypto/cms/cms_enc.c
+===================================================================
+--- crypto/openssl/crypto/cms/cms_enc.c	(revision 248771)
++++ crypto/openssl/crypto/cms/cms_enc.c	(working copy)
+@@ -73,6 +73,8 @@ BIO *cms_EncryptedContent_init_bio(CMS_EncryptedCo
+ 	const EVP_CIPHER *ciph;
+ 	X509_ALGOR *calg = ec->contentEncryptionAlgorithm;
+ 	unsigned char iv[EVP_MAX_IV_LENGTH], *piv = NULL;
++	unsigned char *tkey = NULL;
++	size_t tkeylen;
+ 
+ 	int ok = 0;
+ 
+@@ -137,32 +139,57 @@ BIO *cms_EncryptedContent_init_bio(CMS_EncryptedCo
+ 				CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR);
+ 		goto err;
+ 		}
+-
+-
+-	if (enc && !ec->key)
++	tkeylen = EVP_CIPHER_CTX_key_length(ctx);
++	/* Generate random session key */
++	if (!enc || !ec->key)
+ 		{
+-		/* Generate random key */
+-		if (!ec->keylen)
+-			ec->keylen = EVP_CIPHER_CTX_key_length(ctx);
+-		ec->key = OPENSSL_malloc(ec->keylen);
+-		if (!ec->key)
++		tkey = OPENSSL_malloc(tkeylen);
++		if (!tkey)
+ 			{
+ 			CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO,
+ 							ERR_R_MALLOC_FAILURE);
+ 			goto err;
+ 			}
+-		if (EVP_CIPHER_CTX_rand_key(ctx, ec->key) <= 0)
++		if (EVP_CIPHER_CTX_rand_key(ctx, tkey) <= 0)
+ 			goto err;
+-		keep_key = 1;
+ 		}
+-	else if (ec->keylen != (unsigned int)EVP_CIPHER_CTX_key_length(ctx))
++
++	if (!ec->key)
+ 		{
++		ec->key = tkey;
++		ec->keylen = tkeylen;
++		tkey = NULL;
++		if (enc)
++			keep_key = 1;
++		else
++			ERR_clear_error();
++		
++		}
++
++	if (ec->keylen != tkeylen)
++		{
+ 		/* If necessary set key length */
+ 		if (EVP_CIPHER_CTX_set_key_length(ctx, ec->keylen) <= 0)
+ 			{
+-			CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO,
+-				CMS_R_INVALID_KEY_LENGTH);
+-			goto err;
++			/* Only reveal failure if debugging so we don't
++			 * leak information which may be useful in MMA.
++			 */
++			if (enc || ec->debug)
++				{
++				CMSerr(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO,
++						CMS_R_INVALID_KEY_LENGTH);
++				goto err;
++				}
++			else
++				{
++				/* Use random key */
++				OPENSSL_cleanse(ec->key, ec->keylen);
++				OPENSSL_free(ec->key);
++				ec->key = tkey;
++				ec->keylen = tkeylen;
++				tkey = NULL;
++				ERR_clear_error();
++				}
+ 			}
+ 		}
+ 
+@@ -198,6 +225,11 @@ BIO *cms_EncryptedContent_init_bio(CMS_EncryptedCo
+ 		OPENSSL_free(ec->key);
+ 		ec->key = NULL;
+ 		}
++	if (tkey)
++		{
++		OPENSSL_cleanse(tkey, tkeylen);
++		OPENSSL_free(tkey);
++		}
+ 	if (ok)
+ 		return b;
+ 	BIO_free(b);
+Index: crypto/openssl/crypto/cms/cms_env.c
+===================================================================
+--- crypto/openssl/crypto/cms/cms_env.c	(revision 248771)
++++ crypto/openssl/crypto/cms/cms_env.c	(working copy)
+@@ -352,6 +352,8 @@ static int cms_RecipientInfo_ktri_decrypt(CMS_Cont
+ 	unsigned char *ek = NULL;
+ 	int eklen;
+ 	int ret = 0;
++	CMS_EncryptedContentInfo *ec;
++	ec = cms->d.envelopedData->encryptedContentInfo;
+ 
+ 	if (ktri->pkey == NULL)
+ 		{
+@@ -382,9 +384,15 @@ static int cms_RecipientInfo_ktri_decrypt(CMS_Cont
+ 
+ 	ret = 1;
+ 
+-	cms->d.envelopedData->encryptedContentInfo->key = ek;
+-	cms->d.envelopedData->encryptedContentInfo->keylen = eklen;
++	if (ec->key)
++		{
++		OPENSSL_cleanse(ec->key, ec->keylen);
++		OPENSSL_free(ec->key);
++		}
+ 
++	ec->key = ek;
++	ec->keylen = eklen;
++
+ 	err:
+ 	if (!ret && ek)
+ 		OPENSSL_free(ek);
+Index: crypto/openssl/crypto/cms/cms_io.c
+===================================================================
+--- crypto/openssl/crypto/cms/cms_io.c	(revision 248771)
++++ crypto/openssl/crypto/cms/cms_io.c	(working copy)
+@@ -112,7 +112,7 @@ static int cms_output_data(BIO *out, BIO *data, AS
+ 		cmsbio = tmpbio;
+ 		}
+ 
+-	return 1;
++	return r;
+ 
+ 	}
+ 
+Index: crypto/openssl/crypto/cms/cms_lcl.h
+===================================================================
+--- crypto/openssl/crypto/cms/cms_lcl.h	(revision 248771)
++++ crypto/openssl/crypto/cms/cms_lcl.h	(working copy)
+@@ -175,6 +175,8 @@ struct CMS_EncryptedContentInfo_st
+ 	const EVP_CIPHER *cipher;
+ 	unsigned char *key;
+ 	size_t keylen;
++	/* Set to 1 if we are debugging decrypt and don't fake keys for MMA */
++	int debug;
+ 	};
+ 
+ struct CMS_RecipientInfo_st
+Index: crypto/openssl/crypto/cms/cms_smime.c
+===================================================================
+--- crypto/openssl/crypto/cms/cms_smime.c	(revision 248771)
++++ crypto/openssl/crypto/cms/cms_smime.c	(working copy)
+@@ -622,7 +622,10 @@ int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EV
+ 	STACK_OF(CMS_RecipientInfo) *ris;
+ 	CMS_RecipientInfo *ri;
+ 	int i, r;
++	int debug = 0;
+ 	ris = CMS_get0_RecipientInfos(cms);
++	if (ris)
++		debug = cms->d.envelopedData->encryptedContentInfo->debug;
+ 	for (i = 0; i < sk_CMS_RecipientInfo_num(ris); i++)
+ 		{
+ 		ri = sk_CMS_RecipientInfo_value(ris, i);
+@@ -636,17 +639,38 @@ int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EV
+ 			CMS_RecipientInfo_set0_pkey(ri, pk);
+ 			r = CMS_RecipientInfo_decrypt(cms, ri);
+ 			CMS_RecipientInfo_set0_pkey(ri, NULL);
+-			if (r > 0)
+-				return 1;
+ 			if (cert)
+ 				{
++				/* If not debugging clear any error and
++				 * return success to avoid leaking of
++				 * information useful to MMA
++				 */
++				if (!debug)
++					{
++					ERR_clear_error();
++					return 1;
++					}
++				if (r > 0)
++					return 1;
+ 				CMSerr(CMS_F_CMS_DECRYPT_SET1_PKEY,
+ 						CMS_R_DECRYPT_ERROR);
+ 				return 0;
+ 				}
+-			ERR_clear_error();
++			/* If no cert and not debugging don't leave loop
++			 * after first successful decrypt. Always attempt
++			 * to decrypt all recipients to avoid leaking timing
++			 * of a successful decrypt.
++			 */
++			else if (r > 0 && debug)
++				return 1;
+ 			}
+ 		}
++	/* If no cert and not debugging always return success */
++	if (!cert && !debug)
++		{
++		ERR_clear_error();
++		return 1;
++		}
+ 
+ 	CMSerr(CMS_F_CMS_DECRYPT_SET1_PKEY, CMS_R_NO_MATCHING_RECIPIENT);
+ 	return 0;
+@@ -705,9 +729,14 @@ int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pk
+ 		}
+ 	if (!dcont && !check_content(cms))
+ 		return 0;
++	if (flags & CMS_DEBUG_DECRYPT)
++		cms->d.envelopedData->encryptedContentInfo->debug = 1;
++	else
++		cms->d.envelopedData->encryptedContentInfo->debug = 0;
++	if (!pk && !cert && !dcont && !out)
++		return 1;
+ 	if (pk && !CMS_decrypt_set1_pkey(cms, pk, cert))
+ 		return 0;
+-
+ 	cont = CMS_dataInit(cms, dcont);
+ 	if (!cont)
+ 		return 0;
+Index: crypto/openssl/crypto/comp/c_rle.c
+===================================================================
+--- crypto/openssl/crypto/comp/c_rle.c	(revision 248771)
++++ crypto/openssl/crypto/comp/c_rle.c	(working copy)
+@@ -46,7 +46,7 @@ static int rle_expand_block(COMP_CTX *ctx, unsigne
+ 	{
+ 	int i;
+ 
+-	if (olen < (ilen-1))
++	if (ilen == 0 || olen < (ilen-1))
+ 		{
+ 		/* ZZZZZZZZZZZZZZZZZZZZZZ */
+ 		return(-1);
+@@ -59,4 +59,3 @@ static int rle_expand_block(COMP_CTX *ctx, unsigne
+ 		}
+ 	return(ilen-1);
+ 	}
+-
+Index: crypto/openssl/crypto/conf/conf_api.c
+===================================================================
+--- crypto/openssl/crypto/conf/conf_api.c	(revision 248771)
++++ crypto/openssl/crypto/conf/conf_api.c	(working copy)
+@@ -64,6 +64,7 @@
+ #endif
+ 
+ #include <assert.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <openssl/conf.h>
+ #include <openssl/conf_api.h>
+Index: crypto/openssl/crypto/cryptlib.c
+===================================================================
+--- crypto/openssl/crypto/cryptlib.c	(revision 248771)
++++ crypto/openssl/crypto/cryptlib.c	(working copy)
+@@ -396,7 +396,6 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwR
+ 	case DLL_THREAD_ATTACH:
+ 		break;
+ 	case DLL_THREAD_DETACH:
+-		ERR_remove_state(0);
+ 		break;
+ 	case DLL_PROCESS_DETACH:
+ 		break;
+@@ -543,3 +542,19 @@ void OpenSSLDie(const char *file,int line,const ch
+ 	}
+ 
+ void *OPENSSL_stderr(void)	{ return stderr; }
++
++#ifndef OPENSSL_FIPS
++
++int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len)
++	{
++	size_t i;
++	const unsigned char *a = in_a;
++	const unsigned char *b = in_b;
++	unsigned char x = 0;
++
++	for (i = 0; i < len; i++)
++		x |= a[i] ^ b[i];
++
++	return x;
++	}
++#endif
+Index: crypto/openssl/crypto/crypto.h
+===================================================================
+--- crypto/openssl/crypto/crypto.h	(revision 248771)
++++ crypto/openssl/crypto/crypto.h	(working copy)
+@@ -588,15 +588,22 @@ int OPENSSL_isservice(void);
+ 
+ #endif /* def OPENSSL_FIPS */
+ 
++#define OPENSSL_HAVE_INIT	1
++void OPENSSL_init(void);
++
++/* CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. It
++ * takes an amount of time dependent on |len|, but independent of the contents
++ * of |a| and |b|. Unlike memcmp, it cannot be used to put elements into a
++ * defined order as the return value when a != b is undefined, other than to be
++ * non-zero. */
++int CRYPTO_memcmp(const void *a, const void *b, size_t len);
++
+ /* BEGIN ERROR CODES */
+ /* The following lines are auto generated by the script mkerr.pl. Any changes
+  * made after this point may be overwritten when the script is next run.
+  */
+ void ERR_load_CRYPTO_strings(void);
+ 
+-#define OPENSSL_HAVE_INIT	1
+-void OPENSSL_init(void);
+-
+ /* Error codes for the CRYPTO functions. */
+ 
+ /* Function codes. */
+Index: crypto/openssl/crypto/ec/ec2_smpl.c
+===================================================================
+--- crypto/openssl/crypto/ec/ec2_smpl.c	(revision 248771)
++++ crypto/openssl/crypto/ec/ec2_smpl.c	(working copy)
+@@ -821,7 +821,7 @@ int ec_GF2m_simple_is_on_curve(const EC_GROUP *gro
+ 	field_sqr = group->meth->field_sqr;	
+ 
+ 	/* only support affine coordinates */
+-	if (!point->Z_is_one) goto err;
++	if (!point->Z_is_one) return -1;
+ 
+ 	if (ctx == NULL)
+ 		{
+@@ -871,6 +871,9 @@ int ec_GF2m_simple_cmp(const EC_GROUP *group, cons
+ 		{
+ 		return EC_POINT_is_at_infinity(group, b) ? 0 : 1;
+ 		}
++
++	if (EC_POINT_is_at_infinity(group, b))
++		return 1;
+ 	
+ 	if (a->Z_is_one && b->Z_is_one)
+ 		{
+Index: crypto/openssl/crypto/ec/ec_key.c
+===================================================================
+--- crypto/openssl/crypto/ec/ec_key.c	(revision 248771)
++++ crypto/openssl/crypto/ec/ec_key.c	(working copy)
+@@ -304,7 +304,13 @@ int EC_KEY_check_key(const EC_KEY *eckey)
+ 		ECerr(EC_F_EC_KEY_CHECK_KEY, ERR_R_PASSED_NULL_PARAMETER);
+ 		return 0;
+ 		}
+-	
++
++	if (EC_POINT_is_at_infinity(eckey->group, eckey->pub_key))
++		{
++		ECerr(EC_F_EC_KEY_CHECK_KEY, EC_R_POINT_AT_INFINITY);
++		goto err;
++		}
++
+ 	if ((ctx = BN_CTX_new()) == NULL)
+ 		goto err;
+ 	if ((point = EC_POINT_new(eckey->group)) == NULL)
+Index: crypto/openssl/crypto/ec/ecp_smpl.c
+===================================================================
+--- crypto/openssl/crypto/ec/ecp_smpl.c	(revision 248771)
++++ crypto/openssl/crypto/ec/ecp_smpl.c	(working copy)
+@@ -1406,6 +1406,9 @@ int ec_GFp_simple_cmp(const EC_GROUP *group, const
+ 		{
+ 		return EC_POINT_is_at_infinity(group, b) ? 0 : 1;
+ 		}
++
++	if (EC_POINT_is_at_infinity(group, b))
++		return 1;
+ 	
+ 	if (a->Z_is_one && b->Z_is_one)
+ 		{
+Index: crypto/openssl/crypto/ecdsa/ecdsatest.c
+===================================================================
+--- crypto/openssl/crypto/ecdsa/ecdsatest.c	(revision 248771)
++++ crypto/openssl/crypto/ecdsa/ecdsatest.c	(working copy)
+@@ -168,10 +168,9 @@ int fbytes(unsigned char *buf, int num)
+ 		return 0;
+ 		}
+ 	fbytes_counter ++;
+-	ret = BN_bn2bin(tmp, buf);	
+-	if (ret == 0 || ret != num)
++	if (num != BN_num_bytes(tmp) || !BN_bn2bin(tmp, buf))
+ 		ret = 0;
+-	else
++	else 
+ 		ret = 1;
+ 	if (tmp)
+ 		BN_free(tmp);
+@@ -287,9 +286,13 @@ int test_builtin(BIO *out)
+ 	size_t		crv_len = 0, n = 0;
+ 	EC_KEY		*eckey = NULL, *wrong_eckey = NULL;
+ 	EC_GROUP	*group;
++	ECDSA_SIG	*ecdsa_sig = NULL;
+ 	unsigned char	digest[20], wrong_digest[20];
+-	unsigned char	*signature = NULL; 
+-	unsigned int	sig_len;
++	unsigned char	*signature = NULL;
++	const unsigned char	*sig_ptr;
++	unsigned char	*sig_ptr2;
++	unsigned char	*raw_buf = NULL;
++	unsigned int	sig_len, degree, r_len, s_len, bn_len, buf_len;
+ 	int		nid, ret =  0;
+ 	
+ 	/* fill digest values with some random data */
+@@ -339,7 +342,8 @@ int test_builtin(BIO *out)
+ 		if (EC_KEY_set_group(eckey, group) == 0)
+ 			goto builtin_err;
+ 		EC_GROUP_free(group);
+-		if (EC_GROUP_get_degree(EC_KEY_get0_group(eckey)) < 160)
++		degree = EC_GROUP_get_degree(EC_KEY_get0_group(eckey));
++		if (degree < 160)
+ 			/* drop the curve */ 
+ 			{
+ 			EC_KEY_free(eckey);
+@@ -415,26 +419,89 @@ int test_builtin(BIO *out)
+ 			}
+ 		BIO_printf(out, ".");
+ 		(void)BIO_flush(out);
+-		/* modify a single byte of the signature */
+-		offset = signature[10] % sig_len;
+-		dirt   = signature[11];
+-		signature[offset] ^= dirt ? dirt : 1; 
++		/* wrong length */
++		if (ECDSA_verify(0, digest, 20, signature, sig_len - 1,
++			eckey) == 1)
++			{
++			BIO_printf(out, " failed\n");
++			goto builtin_err;
++			}
++		BIO_printf(out, ".");
++		(void)BIO_flush(out);
++
++		/* Modify a single byte of the signature: to ensure we don't
++		 * garble the ASN1 structure, we read the raw signature and
++		 * modify a byte in one of the bignums directly. */
++		sig_ptr = signature;
++		if ((ecdsa_sig = d2i_ECDSA_SIG(NULL, &sig_ptr, sig_len)) == NULL)
++			{
++			BIO_printf(out, " failed\n");
++			goto builtin_err;
++			}
++
++		/* Store the two BIGNUMs in raw_buf. */
++		r_len = BN_num_bytes(ecdsa_sig->r);
++		s_len = BN_num_bytes(ecdsa_sig->s);
++		bn_len = (degree + 7) / 8;
++		if ((r_len > bn_len) || (s_len > bn_len))
++			{
++			BIO_printf(out, " failed\n");
++			goto builtin_err;
++			}
++		buf_len = 2 * bn_len;
++		if ((raw_buf = OPENSSL_malloc(buf_len)) == NULL)
++			goto builtin_err;
++		/* Pad the bignums with leading zeroes. */
++		memset(raw_buf, 0, buf_len);
++		BN_bn2bin(ecdsa_sig->r, raw_buf + bn_len - r_len);
++		BN_bn2bin(ecdsa_sig->s, raw_buf + buf_len - s_len);
++
++		/* Modify a single byte in the buffer. */
++		offset = raw_buf[10] % buf_len;
++		dirt   = raw_buf[11] ? raw_buf[11] : 1;
++		raw_buf[offset] ^= dirt;
++		/* Now read the BIGNUMs back in from raw_buf. */
++		if ((BN_bin2bn(raw_buf, bn_len, ecdsa_sig->r) == NULL) ||
++			(BN_bin2bn(raw_buf + bn_len, bn_len, ecdsa_sig->s) == NULL))
++			goto builtin_err;
++
++		sig_ptr2 = signature;
++		sig_len = i2d_ECDSA_SIG(ecdsa_sig, &sig_ptr2);
+ 		if (ECDSA_verify(0, digest, 20, signature, sig_len, eckey) == 1)
+ 			{
+ 			BIO_printf(out, " failed\n");
+ 			goto builtin_err;
+ 			}
++		/* Sanity check: undo the modification and verify signature. */
++		raw_buf[offset] ^= dirt;
++		if ((BN_bin2bn(raw_buf, bn_len, ecdsa_sig->r) == NULL) ||
++			(BN_bin2bn(raw_buf + bn_len, bn_len, ecdsa_sig->s) == NULL))
++			goto builtin_err;
++
++		sig_ptr2 = signature;
++		sig_len = i2d_ECDSA_SIG(ecdsa_sig, &sig_ptr2);
++		if (ECDSA_verify(0, digest, 20, signature, sig_len, eckey) != 1)
++			{
++			BIO_printf(out, " failed\n");
++			goto builtin_err;
++			}
+ 		BIO_printf(out, ".");
+ 		(void)BIO_flush(out);
+ 		
+ 		BIO_printf(out, " ok\n");
+ 		/* cleanup */
++		/* clean bogus errors */
++		ERR_clear_error();
+ 		OPENSSL_free(signature);
+ 		signature = NULL;
+ 		EC_KEY_free(eckey);
+ 		eckey = NULL;
+ 		EC_KEY_free(wrong_eckey);
+ 		wrong_eckey = NULL;
++		ECDSA_SIG_free(ecdsa_sig);
++		ecdsa_sig = NULL;
++		OPENSSL_free(raw_buf);
++		raw_buf = NULL;
+ 		}
+ 
+ 	ret = 1;	
+@@ -443,8 +510,12 @@ builtin_err:
+ 		EC_KEY_free(eckey);
+ 	if (wrong_eckey)
+ 		EC_KEY_free(wrong_eckey);
++	if (ecdsa_sig)
++		ECDSA_SIG_free(ecdsa_sig);
+ 	if (signature)
+ 		OPENSSL_free(signature);
++	if (raw_buf)
++		OPENSSL_free(raw_buf);
+ 	if (curves)
+ 		OPENSSL_free(curves);
+ 
+Index: crypto/openssl/crypto/ecdsa/ecs_ossl.c
+===================================================================
+--- crypto/openssl/crypto/ecdsa/ecs_ossl.c	(revision 248771)
++++ crypto/openssl/crypto/ecdsa/ecs_ossl.c	(working copy)
+@@ -144,6 +144,14 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX
+ 			}
+ 		while (BN_is_zero(k));
+ 
++		/* We do not want timing information to leak the length of k,
++		 * so we compute G*k using an equivalent scalar of fixed
++		 * bit-length. */
++
++		if (!BN_add(k, k, order)) goto err;
++		if (BN_num_bits(k) <= BN_num_bits(order))
++			if (!BN_add(k, k, order)) goto err;
++
+ 		/* compute r the x-coordinate of generator * k */
+ 		if (!EC_POINT_mul(group, tmp_point, k, NULL, NULL, ctx))
+ 		{
+Index: crypto/openssl/crypto/evp/evp_test.c
+===================================================================
+--- crypto/openssl/crypto/evp/evp_test.c	(revision 248771)
++++ crypto/openssl/crypto/evp/evp_test.c	(working copy)
+@@ -435,6 +435,7 @@ int main(int argc,char **argv)
+ 	    EXIT(3);
+ 	    }
+ 	}
++	fclose(f);
+ 
+ #ifndef OPENSSL_NO_ENGINE
+     ENGINE_cleanup();
+Index: crypto/openssl/crypto/o_init.c
+===================================================================
+--- crypto/openssl/crypto/o_init.c	(revision 248771)
++++ crypto/openssl/crypto/o_init.c	(working copy)
+@@ -93,4 +93,18 @@ void OPENSSL_init(void)
+ #endif
+ 	}
+ 		
++#ifdef OPENSSL_FIPS
+ 
++int CRYPTO_memcmp(const void *in_a, const void *in_b, size_t len)
++	{
++	size_t i;
++	const unsigned char *a = in_a;
++	const unsigned char *b = in_b;
++	unsigned char x = 0;
++
++	for (i = 0; i < len; i++)
++		x |= a[i] ^ b[i];
++
++	return x;
++	}
++#endif
+Index: crypto/openssl/crypto/ocsp/ocsp_lib.c
+===================================================================
+--- crypto/openssl/crypto/ocsp/ocsp_lib.c	(revision 248771)
++++ crypto/openssl/crypto/ocsp/ocsp_lib.c	(working copy)
+@@ -169,14 +169,14 @@ int OCSP_parse_url(char *url, char **phost, char *
+ 
+ 	char *host, *port;
+ 
++	*phost = NULL;
++	*pport = NULL;
++	*ppath = NULL;
++
+ 	/* dup the buffer since we are going to mess with it */
+ 	buf = BUF_strdup(url);
+ 	if (!buf) goto mem_err;
+ 
+-	*phost = NULL;
+-	*pport = NULL;
+-	*ppath = NULL;
+-
+ 	/* Check for initial colon */
+ 	p = strchr(buf, ':');
+ 
+Index: crypto/openssl/crypto/ocsp/ocsp_vfy.c
+===================================================================
+--- crypto/openssl/crypto/ocsp/ocsp_vfy.c	(revision 248771)
++++ crypto/openssl/crypto/ocsp/ocsp_vfy.c	(working copy)
+@@ -91,10 +91,13 @@ int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF
+ 		{
+ 		EVP_PKEY *skey;
+ 		skey = X509_get_pubkey(signer);
+-		ret = OCSP_BASICRESP_verify(bs, skey, 0);
+-		EVP_PKEY_free(skey);
+-		if(ret <= 0)
++		if (skey)
+ 			{
++			ret = OCSP_BASICRESP_verify(bs, skey, 0);
++			EVP_PKEY_free(skey);
++			}
++		if(!skey || ret <= 0)
++			{
+ 			OCSPerr(OCSP_F_OCSP_BASIC_VERIFY, OCSP_R_SIGNATURE_FAILURE);
+ 			goto end;
+ 			}
+@@ -108,6 +111,7 @@ int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF
+ 			init_res = X509_STORE_CTX_init(&ctx, st, signer, bs->certs);
+ 		if(!init_res)
+ 			{
++			ret = -1;
+ 			OCSPerr(OCSP_F_OCSP_BASIC_VERIFY,ERR_R_X509_LIB);
+ 			goto end;
+ 			}
+Index: crypto/openssl/crypto/opensslv.h
+===================================================================
+--- crypto/openssl/crypto/opensslv.h	(revision 248771)
++++ crypto/openssl/crypto/opensslv.h	(working copy)
+@@ -25,11 +25,11 @@
+  * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
+  *  major minor fix final patch/beta)
+  */
+-#define OPENSSL_VERSION_NUMBER	0x0090811f
++#define OPENSSL_VERSION_NUMBER	0x0090819fL
+ #ifdef OPENSSL_FIPS
+-#define OPENSSL_VERSION_TEXT	"OpenSSL 0.9.8q-fips 2 Dec 2010"
++#define OPENSSL_VERSION_TEXT	"OpenSSL 0.9.8y-fips 5 Feb 2013"
+ #else
+-#define OPENSSL_VERSION_TEXT	"OpenSSL 0.9.8q 2 Dec 2010"
++#define OPENSSL_VERSION_TEXT	"OpenSSL 0.9.8y 5 Feb 2013"
+ #endif
+ #define OPENSSL_VERSION_PTEXT	" part of " OPENSSL_VERSION_TEXT
+ 
+@@ -83,7 +83,7 @@
+  * should only keep the versions that are binary compatible with the current.
+  */
+ #define SHLIB_VERSION_HISTORY ""
+-#define SHLIB_VERSION_NUMBER "0.9.8"
++#define SHLIB_VERSION_NUMBER "6"
+ 
+ 
+ #endif /* HEADER_OPENSSLV_H */
+Index: crypto/openssl/crypto/perlasm/cbc.pl
+===================================================================
+--- crypto/openssl/crypto/perlasm/cbc.pl	(revision 248771)
++++ crypto/openssl/crypto/perlasm/cbc.pl	(working copy)
+@@ -158,7 +158,6 @@ sub cbc
+ 	&jmp_ptr($count);
+ 
+ &set_label("ej7");
+-	&xor("edx",		"edx") if $ppro; # ppro friendly
+ 	&movb(&HB("edx"),	&BP(6,$in,"",0));
+ 	&shl("edx",8);
+ &set_label("ej6");
+@@ -170,7 +169,6 @@ sub cbc
+ 	&jmp(&label("ejend"));
+ &set_label("ej3");
+ 	&movb(&HB("ecx"),	&BP(2,$in,"",0));
+-	&xor("ecx",		"ecx") if $ppro; # ppro friendly
+ 	&shl("ecx",8);
+ &set_label("ej2");
+ 	&movb(&HB("ecx"),	&BP(1,$in,"",0));
+Index: crypto/openssl/crypto/pkcs7/pk7_smime.c
+===================================================================
+--- crypto/openssl/crypto/pkcs7/pk7_smime.c	(revision 248771)
++++ crypto/openssl/crypto/pkcs7/pk7_smime.c	(working copy)
+@@ -486,15 +486,34 @@ int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509
+ 			return 0;
+ 		}
+ 		ret = SMIME_text(bread, data);
++		if (ret > 0 && BIO_method_type(tmpmem) == BIO_TYPE_CIPHER)
++			{
++			if (!BIO_get_cipher_status(tmpmem))
++				ret = 0;
++			}
+ 		BIO_free_all(bread);
+ 		return ret;
+ 	} else {
+ 		for(;;) {
+ 			i = BIO_read(tmpmem, buf, sizeof(buf));
+-			if(i <= 0) break;
+-			BIO_write(data, buf, i);
++			if(i <= 0)
++				{
++				ret = 1;
++				if (BIO_method_type(tmpmem) == BIO_TYPE_CIPHER)
++					{
++					if (!BIO_get_cipher_status(tmpmem))
++						ret = 0;
++					}
++					
++				break;
++				}
++			if (BIO_write(data, buf, i) != i)
++				{
++				ret = 0;
++				break;
++				}
+ 		}
+ 		BIO_free_all(tmpmem);
+-		return 1;
++		return ret;
+ 	}
+ }
+Index: crypto/openssl/crypto/rc4/asm/rc4-x86_64.pl
+===================================================================
+--- crypto/openssl/crypto/rc4/asm/rc4-x86_64.pl	(revision 248771)
++++ crypto/openssl/crypto/rc4/asm/rc4-x86_64.pl	(working copy)
+@@ -167,7 +167,7 @@ $code.=<<___;
+ 	movzb	($dat,$XX[0]),$TX[0]#d
+ 	test	\$-8,$len
+ 	jz	.Lcloop1
+-	cmp	\$0,260($dat)
++	cmpl	\$0,260($dat)
+ 	jnz	.Lcloop1
+ 	push	%rbx
+ 	jmp	.Lcloop8
+Index: crypto/openssl/crypto/rc4/rc4_skey.c
+===================================================================
+--- crypto/openssl/crypto/rc4/rc4_skey.c	(revision 248771)
++++ crypto/openssl/crypto/rc4/rc4_skey.c	(working copy)
+@@ -138,9 +138,9 @@ void RC4_set_key(RC4_KEY *key, int len, const unsi
+ 		 */
+ #ifdef OPENSSL_FIPS
+ 		unsigned long *ia32cap_ptr = OPENSSL_ia32cap_loc();
+-		if (ia32cap_ptr && (*ia32cap_ptr & (1<<28))) {
++		if (ia32cap_ptr && (*ia32cap_ptr & (1<<20))) {
+ #else
+-		if (OPENSSL_ia32cap_P & (1<<28)) {
++		if (OPENSSL_ia32cap_P & (1<<20)) {
+ #endif
+ 			unsigned char *cp=(unsigned char *)d;
+ 
+Index: crypto/openssl/crypto/rsa/rsa_eay.c
+===================================================================
+--- crypto/openssl/crypto/rsa/rsa_eay.c	(revision 248771)
++++ crypto/openssl/crypto/rsa/rsa_eay.c	(working copy)
+@@ -312,51 +312,56 @@ static BN_BLINDING *rsa_get_blinding(RSA *rsa, int
+ 	return ret;
+ }
+ 
+-static int rsa_blinding_convert(BN_BLINDING *b, int local, BIGNUM *f,
+-	BIGNUM *r, BN_CTX *ctx)
+-{
+-	if (local)
++static int rsa_blinding_convert(BN_BLINDING *b, BIGNUM *f, BIGNUM *unblind,
++	BN_CTX *ctx)
++	{
++	if (unblind == NULL)
++		/* Local blinding: store the unblinding factor
++		 * in BN_BLINDING. */
+ 		return BN_BLINDING_convert_ex(f, NULL, b, ctx);
+ 	else
+ 		{
++		/* Shared blinding: store the unblinding factor
++		 * outside BN_BLINDING. */
+ 		int ret;
+-		CRYPTO_r_lock(CRYPTO_LOCK_RSA_BLINDING);
+-		ret = BN_BLINDING_convert_ex(f, r, b, ctx);
+-		CRYPTO_r_unlock(CRYPTO_LOCK_RSA_BLINDING);
+-		return ret;
+-		}
+-}
+-
+-static int rsa_blinding_invert(BN_BLINDING *b, int local, BIGNUM *f,
+-	BIGNUM *r, BN_CTX *ctx)
+-{
+-	if (local)
+-		return BN_BLINDING_invert_ex(f, NULL, b, ctx);
+-	else
+-		{
+-		int ret;
+ 		CRYPTO_w_lock(CRYPTO_LOCK_RSA_BLINDING);
+-		ret = BN_BLINDING_invert_ex(f, r, b, ctx);
++		ret = BN_BLINDING_convert_ex(f, unblind, b, ctx);
+ 		CRYPTO_w_unlock(CRYPTO_LOCK_RSA_BLINDING);
+ 		return ret;
+ 		}
+-}
++	}
+ 
++static int rsa_blinding_invert(BN_BLINDING *b, BIGNUM *f, BIGNUM *unblind,
++	BN_CTX *ctx)
++	{
++	/* For local blinding, unblind is set to NULL, and BN_BLINDING_invert_ex
++	 * will use the unblinding factor stored in BN_BLINDING.
++	 * If BN_BLINDING is shared between threads, unblind must be non-null:
++	 * BN_BLINDING_invert_ex will then use the local unblinding factor,
++	 * and will only read the modulus from BN_BLINDING.
++	 * In both cases it's safe to access the blinding without a lock.
++	 */
++	return BN_BLINDING_invert_ex(f, unblind, b, ctx);
++	}
++
+ /* signing */
+ static int RSA_eay_private_encrypt(int flen, const unsigned char *from,
+ 	     unsigned char *to, RSA *rsa, int padding)
+ 	{
+-	BIGNUM *f, *ret, *br, *res;
++	BIGNUM *f, *ret, *res;
+ 	int i,j,k,num=0,r= -1;
+ 	unsigned char *buf=NULL;
+ 	BN_CTX *ctx=NULL;
+ 	int local_blinding = 0;
++	/* Used only if the blinding structure is shared. A non-NULL unblind
++	 * instructs rsa_blinding_convert() and rsa_blinding_invert() to store
++	 * the unblinding factor outside the blinding structure. */
++	BIGNUM *unblind = NULL;
+ 	BN_BLINDING *blinding = NULL;
+ 
+ 	if ((ctx=BN_CTX_new()) == NULL) goto err;
+ 	BN_CTX_start(ctx);
+ 	f   = BN_CTX_get(ctx);
+-	br  = BN_CTX_get(ctx);
+ 	ret = BN_CTX_get(ctx);
+ 	num = BN_num_bytes(rsa->n);
+ 	buf = OPENSSL_malloc(num);
+@@ -404,8 +409,15 @@ static int RSA_eay_private_encrypt(int flen, const
+ 		}
+ 	
+ 	if (blinding != NULL)
+-		if (!rsa_blinding_convert(blinding, local_blinding, f, br, ctx))
++		{
++		if (!local_blinding && ((unblind = BN_CTX_get(ctx)) == NULL))
++			{
++			RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT,ERR_R_MALLOC_FAILURE);
+ 			goto err;
++			}
++		if (!rsa_blinding_convert(blinding, f, unblind, ctx))
++			goto err;
++		}
+ 
+ 	if ( (rsa->flags & RSA_FLAG_EXT_PKEY) ||
+ 		((rsa->p != NULL) &&
+@@ -439,7 +451,7 @@ static int RSA_eay_private_encrypt(int flen, const
+ 		}
+ 
+ 	if (blinding)
+-		if (!rsa_blinding_invert(blinding, local_blinding, ret, br, ctx))
++		if (!rsa_blinding_invert(blinding, ret, unblind, ctx))
+ 			goto err;
+ 
+ 	if (padding == RSA_X931_PADDING)
+@@ -478,18 +490,21 @@ err:
+ static int RSA_eay_private_decrypt(int flen, const unsigned char *from,
+ 	     unsigned char *to, RSA *rsa, int padding)
+ 	{
+-	BIGNUM *f, *ret, *br;
++	BIGNUM *f, *ret;
+ 	int j,num=0,r= -1;
+ 	unsigned char *p;
+ 	unsigned char *buf=NULL;
+ 	BN_CTX *ctx=NULL;
+ 	int local_blinding = 0;
++	/* Used only if the blinding structure is shared. A non-NULL unblind
++	 * instructs rsa_blinding_convert() and rsa_blinding_invert() to store
++	 * the unblinding factor outside the blinding structure. */
++	BIGNUM *unblind = NULL;
+ 	BN_BLINDING *blinding = NULL;
+ 
+ 	if((ctx = BN_CTX_new()) == NULL) goto err;
+ 	BN_CTX_start(ctx);
+ 	f   = BN_CTX_get(ctx);
+-	br  = BN_CTX_get(ctx);
+ 	ret = BN_CTX_get(ctx);
+ 	num = BN_num_bytes(rsa->n);
+ 	buf = OPENSSL_malloc(num);
+@@ -527,8 +542,15 @@ static int RSA_eay_private_decrypt(int flen, const
+ 		}
+ 	
+ 	if (blinding != NULL)
+-		if (!rsa_blinding_convert(blinding, local_blinding, f, br, ctx))
++		{
++		if (!local_blinding && ((unblind = BN_CTX_get(ctx)) == NULL))
++			{
++			RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT,ERR_R_MALLOC_FAILURE);
+ 			goto err;
++			}
++		if (!rsa_blinding_convert(blinding, f, unblind, ctx))
++			goto err;
++		}
+ 
+ 	/* do the decrypt */
+ 	if ( (rsa->flags & RSA_FLAG_EXT_PKEY) ||
+@@ -562,7 +584,7 @@ static int RSA_eay_private_decrypt(int flen, const
+ 		}
+ 
+ 	if (blinding)
+-		if (!rsa_blinding_invert(blinding, local_blinding, ret, br, ctx))
++		if (!rsa_blinding_invert(blinding, ret, unblind, ctx))
+ 			goto err;
+ 
+ 	p=buf;
+Index: crypto/openssl/crypto/rsa/rsa_oaep.c
+===================================================================
+--- crypto/openssl/crypto/rsa/rsa_oaep.c	(revision 248771)
++++ crypto/openssl/crypto/rsa/rsa_oaep.c	(working copy)
+@@ -143,7 +143,7 @@ int RSA_padding_check_PKCS1_OAEP(unsigned char *to
+ 
+ 	EVP_Digest((void *)param, plen, phash, NULL, EVP_sha1(), NULL);
+ 
+-	if (memcmp(db, phash, SHA_DIGEST_LENGTH) != 0 || bad)
++	if (CRYPTO_memcmp(db, phash, SHA_DIGEST_LENGTH) != 0 || bad)
+ 		goto decoding_err;
+ 	else
+ 		{
+Index: crypto/openssl/crypto/symhacks.h
+===================================================================
+--- crypto/openssl/crypto/symhacks.h	(revision 248771)
++++ crypto/openssl/crypto/symhacks.h	(working copy)
+@@ -252,15 +252,15 @@
+ #define EC_POINT_set_compressed_coordinates_GF2m \
+                                                 EC_POINT_set_compr_coords_GF2m
+ #undef ec_GF2m_simple_group_clear_finish
+-#define ec_GF2m_simple_group_clear_finish        ec_GF2m_simple_grp_clr_finish
++#define ec_GF2m_simple_group_clear_finish       ec_GF2m_simple_grp_clr_finish
+ #undef ec_GF2m_simple_group_check_discriminant
+ #define ec_GF2m_simple_group_check_discriminant	ec_GF2m_simple_grp_chk_discrim
+ #undef ec_GF2m_simple_point_clear_finish
+-#define ec_GF2m_simple_point_clear_finish        ec_GF2m_simple_pt_clr_finish
++#define ec_GF2m_simple_point_clear_finish       ec_GF2m_simple_pt_clr_finish
+ #undef ec_GF2m_simple_point_set_to_infinity
+-#define ec_GF2m_simple_point_set_to_infinity     ec_GF2m_simple_pt_set_to_inf
++#define ec_GF2m_simple_point_set_to_infinity    ec_GF2m_simple_pt_set_to_inf
+ #undef ec_GF2m_simple_points_make_affine
+-#define ec_GF2m_simple_points_make_affine        ec_GF2m_simple_pts_make_affine
++#define ec_GF2m_simple_points_make_affine       ec_GF2m_simple_pts_make_affine
+ #undef ec_GF2m_simple_point_set_affine_coordinates
+ #define ec_GF2m_simple_point_set_affine_coordinates \
+                                                 ec_GF2m_smp_pt_set_af_coords
+@@ -288,8 +288,6 @@
+ #define ec_GFp_simple_point_set_to_infinity     ec_GFp_simple_pt_set_to_inf
+ #undef ec_GFp_simple_points_make_affine
+ #define ec_GFp_simple_points_make_affine        ec_GFp_simple_pts_make_affine
+-#undef ec_GFp_simple_group_get_curve_GFp
+-#define ec_GFp_simple_group_get_curve_GFp       ec_GFp_simple_grp_get_curve_GFp
+ #undef ec_GFp_simple_set_Jprojective_coordinates_GFp
+ #define ec_GFp_simple_set_Jprojective_coordinates_GFp \
+                                                 ec_GFp_smp_set_Jproj_coords_GFp
+Index: crypto/openssl/crypto/x509/x509_vfy.c
+===================================================================
+--- crypto/openssl/crypto/x509/x509_vfy.c	(revision 248771)
++++ crypto/openssl/crypto/x509/x509_vfy.c	(working copy)
+@@ -1097,7 +1097,7 @@ int X509_cmp_time(ASN1_TIME *ctm, time_t *cmp_time
+ 	atm.length=sizeof(buff2);
+ 	atm.data=(unsigned char *)buff2;
+ 
+-	if (X509_time_adj(&atm,-offset*60, cmp_time) == NULL)
++	if (X509_time_adj(&atm, offset*60, cmp_time) == NULL)
+ 		return 0;
+ 
+ 	if (ctm->type == V_ASN1_UTCTIME)
+Index: crypto/openssl/crypto/x509v3/v3_addr.c
+===================================================================
+--- crypto/openssl/crypto/x509v3/v3_addr.c	(revision 248771)
++++ crypto/openssl/crypto/x509v3/v3_addr.c	(working copy)
+@@ -142,12 +142,13 @@ unsigned int v3_addr_get_afi(const IPAddressFamily
+  * Expand the bitstring form of an address into a raw byte array.
+  * At the moment this is coded for simplicity, not speed.
+  */
+-static void addr_expand(unsigned char *addr,
++static int addr_expand(unsigned char *addr,
+ 			const ASN1_BIT_STRING *bs,
+ 			const int length,
+ 			const unsigned char fill)
+ {
+-  OPENSSL_assert(bs->length >= 0 && bs->length <= length);
++  if (bs->length < 0 || bs->length > length)
++    return 0;
+   if (bs->length > 0) {
+     memcpy(addr, bs->data, bs->length);
+     if ((bs->flags & 7) != 0) {
+@@ -159,6 +160,7 @@ unsigned int v3_addr_get_afi(const IPAddressFamily
+     }
+   }
+   memset(addr + bs->length, fill, length - bs->length);
++  return 1;
+ }
+ 
+ /*
+@@ -177,13 +179,17 @@ static int i2r_address(BIO *out,
+   unsigned char addr[ADDR_RAW_BUF_LEN];
+   int i, n;
+ 
++  if (bs->length < 0)
++    return 0;
+   switch (afi) {
+   case IANA_AFI_IPV4:
+-    addr_expand(addr, bs, 4, fill);
++    if (!addr_expand(addr, bs, 4, fill))
++      return 0;
+     BIO_printf(out, "%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
+     break;
+   case IANA_AFI_IPV6:
+-    addr_expand(addr, bs, 16, fill);
++    if (!addr_expand(addr, bs, 16, fill))
++      return 0;
+     for (n = 16; n > 1 && addr[n-1] == 0x00 && addr[n-2] == 0x00; n -= 2)
+       ;
+     for (i = 0; i < n; i += 2)
+@@ -309,6 +315,12 @@ static int i2r_IPAddrBlocks(X509V3_EXT_METHOD *met
+ /*
+  * Sort comparison function for a sequence of IPAddressOrRange
+  * elements.
++ *
++ * There's no sane answer we can give if addr_expand() fails, and an
++ * assertion failure on externally supplied data is seriously uncool,
++ * so we just arbitrarily declare that if given invalid inputs this
++ * function returns -1.  If this messes up your preferred sort order
++ * for garbage input, tough noogies.
+  */
+ static int IPAddressOrRange_cmp(const IPAddressOrRange *a,
+ 				const IPAddressOrRange *b,
+@@ -321,22 +333,26 @@ static int IPAddressOrRange_cmp(const IPAddressOrR
+ 
+   switch (a->type) {
+   case IPAddressOrRange_addressPrefix:
+-    addr_expand(addr_a, a->u.addressPrefix, length, 0x00);
++    if (!addr_expand(addr_a, a->u.addressPrefix, length, 0x00))
++      return -1;
+     prefixlen_a = addr_prefixlen(a->u.addressPrefix);
+     break;
+   case IPAddressOrRange_addressRange:
+-    addr_expand(addr_a, a->u.addressRange->min, length, 0x00);
++    if (!addr_expand(addr_a, a->u.addressRange->min, length, 0x00))
++      return -1;
+     prefixlen_a = length * 8;
+     break;
+   }
+ 
+   switch (b->type) {
+   case IPAddressOrRange_addressPrefix:
+-    addr_expand(addr_b, b->u.addressPrefix, length, 0x00);
++    if (!addr_expand(addr_b, b->u.addressPrefix, length, 0x00))
++      return -1;
+     prefixlen_b = addr_prefixlen(b->u.addressPrefix);
+     break;
+   case IPAddressOrRange_addressRange:
+-    addr_expand(addr_b, b->u.addressRange->min, length, 0x00);
++    if (!addr_expand(addr_b, b->u.addressRange->min, length, 0x00))
++      return -1;
+     prefixlen_b = length * 8;
+     break;
+   }
+@@ -378,6 +394,7 @@ static int range_should_be_prefix(const unsigned c
+   unsigned char mask;
+   int i, j;
+ 
++  OPENSSL_assert(memcmp(min, max, length) <= 0);
+   for (i = 0; i < length && min[i] == max[i]; i++)
+     ;
+   for (j = length - 1; j >= 0 && min[j] == 0x00 && max[j] == 0xFF; j--)
+@@ -651,22 +668,22 @@ int v3_addr_add_range(IPAddrBlocks *addr,
+ /*
+  * Extract min and max values from an IPAddressOrRange.
+  */
+-static void extract_min_max(IPAddressOrRange *aor,
++static int extract_min_max(IPAddressOrRange *aor,
+ 			    unsigned char *min,
+ 			    unsigned char *max,
+ 			    int length)
+ {
+-  OPENSSL_assert(aor != NULL && min != NULL && max != NULL);
++  if (aor == NULL || min == NULL || max == NULL)
++    return 0;
+   switch (aor->type) {
+   case IPAddressOrRange_addressPrefix:
+-    addr_expand(min, aor->u.addressPrefix, length, 0x00);
+-    addr_expand(max, aor->u.addressPrefix, length, 0xFF);
+-    return;
++    return (addr_expand(min, aor->u.addressPrefix, length, 0x00) &&
++	    addr_expand(max, aor->u.addressPrefix, length, 0xFF));
+   case IPAddressOrRange_addressRange:
+-    addr_expand(min, aor->u.addressRange->min, length, 0x00);
+-    addr_expand(max, aor->u.addressRange->max, length, 0xFF);
+-    return;
++    return (addr_expand(min, aor->u.addressRange->min, length, 0x00) &&
++	    addr_expand(max, aor->u.addressRange->max, length, 0xFF));
+   }
++  return 0;
+ }
+ 
+ /*
+@@ -682,9 +699,10 @@ int v3_addr_get_range(IPAddressOrRange *aor,
+   if (aor == NULL || min == NULL || max == NULL ||
+       afi_length == 0 || length < afi_length ||
+       (aor->type != IPAddressOrRange_addressPrefix &&
+-       aor->type != IPAddressOrRange_addressRange))
++       aor->type != IPAddressOrRange_addressRange) ||
++      !extract_min_max(aor, min, max, afi_length))
+     return 0;
+-  extract_min_max(aor, min, max, afi_length);
++
+   return afi_length;
+ }
+ 
+@@ -766,8 +784,9 @@ int v3_addr_is_canonical(IPAddrBlocks *addr)
+       IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, j);
+       IPAddressOrRange *b = sk_IPAddressOrRange_value(aors, j + 1);
+ 
+-      extract_min_max(a, a_min, a_max, length);
+-      extract_min_max(b, b_min, b_max, length);
++      if (!extract_min_max(a, a_min, a_max, length) ||
++	  !extract_min_max(b, b_min, b_max, length))
++	return 0;
+ 
+       /*
+        * Punt misordered list, overlapping start, or inverted range.
+@@ -795,15 +814,18 @@ int v3_addr_is_canonical(IPAddrBlocks *addr)
+     }
+ 
+     /*
+-     * Check final range to see if it should be a prefix.
++     * Check range to see if it's inverted or should be a
++     * prefix.
+      */
+     j = sk_IPAddressOrRange_num(aors) - 1;
+     {
+       IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, j);
+-      if (a->type == IPAddressOrRange_addressRange) {
+-	extract_min_max(a, a_min, a_max, length);
+-	if (range_should_be_prefix(a_min, a_max, length) >= 0)
++      if (a != NULL && a->type == IPAddressOrRange_addressRange) {
++	if (!extract_min_max(a, a_min, a_max, length))
+ 	  return 0;
++	if (memcmp(a_min, a_max, length) > 0 ||
++	    range_should_be_prefix(a_min, a_max, length) >= 0)
++	  return 0;
+       }
+     }
+   }
+@@ -836,10 +858,18 @@ static int IPAddressOrRanges_canonize(IPAddressOrR
+     unsigned char a_min[ADDR_RAW_BUF_LEN], a_max[ADDR_RAW_BUF_LEN];
+     unsigned char b_min[ADDR_RAW_BUF_LEN], b_max[ADDR_RAW_BUF_LEN];
+ 
+-    extract_min_max(a, a_min, a_max, length);
+-    extract_min_max(b, b_min, b_max, length);
++    if (!extract_min_max(a, a_min, a_max, length) ||
++	!extract_min_max(b, b_min, b_max, length))
++      return 0;
+ 
+     /*
++     * Punt inverted ranges.
++     */
++    if (memcmp(a_min, a_max, length) > 0 ||
++	memcmp(b_min, b_max, length) > 0)
++      return 0;
++
++    /*
+      * Punt overlaps.
+      */
+     if (memcmp(a_max, b_min, length) >= 0)
+@@ -864,6 +894,20 @@ static int IPAddressOrRanges_canonize(IPAddressOrR
+     }
+   }
+ 
++  /*
++   * Check for inverted final range.
++   */
++  j = sk_IPAddressOrRange_num(aors) - 1;
++  {
++    IPAddressOrRange *a = sk_IPAddressOrRange_value(aors, j);
++    if (a != NULL && a->type == IPAddressOrRange_addressRange) {
++      unsigned char a_min[ADDR_RAW_BUF_LEN], a_max[ADDR_RAW_BUF_LEN];
++      extract_min_max(a, a_min, a_max, length);
++      if (memcmp(a_min, a_max, length) > 0)
++	return 0;
++    }
++  }
++
+   return 1;
+ }
+ 
+@@ -1012,6 +1056,11 @@ static void *v2i_IPAddrBlocks(struct v3_ext_method
+ 	X509V3_conf_err(val);
+ 	goto err;
+       }
++      if (memcmp(min, max, length_from_afi(afi)) > 0) {
++	X509V3err(X509V3_F_V2I_IPADDRBLOCKS, X509V3_R_EXTENSION_VALUE_ERROR);
++	X509V3_conf_err(val);
++	goto err;
++      }
+       if (!v3_addr_add_range(addr, afi, safi, min, max)) {
+ 	X509V3err(X509V3_F_V2I_IPADDRBLOCKS, ERR_R_MALLOC_FAILURE);
+ 	goto err;
+@@ -1097,13 +1146,15 @@ static int addr_contains(IPAddressOrRanges *parent
+ 
+   p = 0;
+   for (c = 0; c < sk_IPAddressOrRange_num(child); c++) {
+-    extract_min_max(sk_IPAddressOrRange_value(child, c),
+-		    c_min, c_max, length);
++    if (!extract_min_max(sk_IPAddressOrRange_value(child, c),
++			 c_min, c_max, length))
++      return -1;
+     for (;; p++) {
+       if (p >= sk_IPAddressOrRange_num(parent))
+ 	return 0;
+-      extract_min_max(sk_IPAddressOrRange_value(parent, p),
+-		      p_min, p_max, length);
++      if (!extract_min_max(sk_IPAddressOrRange_value(parent, p),
++			   p_min, p_max, length))
++	return 0;
+       if (memcmp(p_max, c_max, length) < 0)
+ 	continue;
+       if (memcmp(p_min, c_min, length) > 0)
+Index: crypto/openssl/crypto/x509v3/v3_asid.c
+===================================================================
+--- crypto/openssl/crypto/x509v3/v3_asid.c	(revision 248771)
++++ crypto/openssl/crypto/x509v3/v3_asid.c	(working copy)
+@@ -61,7 +61,6 @@
+ 
+ #include <stdio.h>
+ #include <string.h>
+-#include <assert.h>
+ #include "cryptlib.h"
+ #include <openssl/conf.h>
+ #include <openssl/asn1.h>
+@@ -172,11 +171,11 @@ static int ASIdOrRange_cmp(const ASIdOrRange * con
+ {
+   const ASIdOrRange *a = *a_, *b = *b_;
+ 
+-  assert((a->type == ASIdOrRange_id && a->u.id != NULL) ||
++  OPENSSL_assert((a->type == ASIdOrRange_id && a->u.id != NULL) ||
+ 	 (a->type == ASIdOrRange_range && a->u.range != NULL &&
+ 	  a->u.range->min != NULL && a->u.range->max != NULL));
+ 
+-  assert((b->type == ASIdOrRange_id && b->u.id != NULL) ||
++  OPENSSL_assert((b->type == ASIdOrRange_id && b->u.id != NULL) ||
+ 	 (b->type == ASIdOrRange_range && b->u.range != NULL &&
+ 	  b->u.range->min != NULL && b->u.range->max != NULL));
+ 
+@@ -215,7 +214,7 @@ int v3_asid_add_inherit(ASIdentifiers *asid, int w
+   if (*choice == NULL) {
+     if ((*choice = ASIdentifierChoice_new()) == NULL)
+       return 0;
+-    assert((*choice)->u.inherit == NULL);
++    OPENSSL_assert((*choice)->u.inherit == NULL);
+     if (((*choice)->u.inherit = ASN1_NULL_new()) == NULL)
+       return 0;
+     (*choice)->type = ASIdentifierChoice_inherit;
+@@ -250,7 +249,7 @@ int v3_asid_add_id_or_range(ASIdentifiers *asid,
+   if (*choice == NULL) {
+     if ((*choice = ASIdentifierChoice_new()) == NULL)
+       return 0;
+-    assert((*choice)->u.asIdsOrRanges == NULL);
++    OPENSSL_assert((*choice)->u.asIdsOrRanges == NULL);
+     (*choice)->u.asIdsOrRanges = sk_ASIdOrRange_new(ASIdOrRange_cmp);
+     if ((*choice)->u.asIdsOrRanges == NULL)
+       return 0;
+@@ -286,7 +285,7 @@ static void extract_min_max(ASIdOrRange *aor,
+ 			    ASN1_INTEGER **min,
+ 			    ASN1_INTEGER **max)
+ {
+-  assert(aor != NULL && min != NULL && max != NULL);
++  OPENSSL_assert(aor != NULL && min != NULL && max != NULL);
+   switch (aor->type) {
+   case ASIdOrRange_id:
+     *min = aor->u.id;
+@@ -359,6 +358,20 @@ static int ASIdentifierChoice_is_canonical(ASIdent
+       goto done;
+   }
+ 
++  /*
++   * Check for inverted range.
++   */
++  i = sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1;
++  {
++    ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i);
++    ASN1_INTEGER *a_min, *a_max;
++    if (a != NULL && a->type == ASIdOrRange_range) {
++      extract_min_max(a, &a_min, &a_max);
++      if (ASN1_INTEGER_cmp(a_min, a_max) > 0)
++	goto done;
++    }
++  }
++
+   ret = 1;
+ 
+  done:
+@@ -373,7 +386,7 @@ static int ASIdentifierChoice_is_canonical(ASIdent
+ int v3_asid_is_canonical(ASIdentifiers *asid)
+ {
+   return (asid == NULL ||
+-	  (ASIdentifierChoice_is_canonical(asid->asnum) ||
++	  (ASIdentifierChoice_is_canonical(asid->asnum) &&
+ 	   ASIdentifierChoice_is_canonical(asid->rdi)));
+ }
+ 
+@@ -393,9 +406,18 @@ static int ASIdentifierChoice_canonize(ASIdentifie
+     return 1;
+ 
+   /*
+-   * We have a list.  Sort it.
++   * If not a list, or if empty list, it's broken.
+    */
+-  assert(choice->type == ASIdentifierChoice_asIdsOrRanges);
++  if (choice->type != ASIdentifierChoice_asIdsOrRanges ||
++      sk_ASIdOrRange_num(choice->u.asIdsOrRanges) == 0) {
++    X509V3err(X509V3_F_ASIDENTIFIERCHOICE_CANONIZE,
++	      X509V3_R_EXTENSION_VALUE_ERROR);
++    return 0;
++  }
++
++  /*
++   * We have a non-empty list.  Sort it.
++   */
+   sk_ASIdOrRange_sort(choice->u.asIdsOrRanges);
+ 
+   /*
+@@ -413,9 +435,16 @@ static int ASIdentifierChoice_canonize(ASIdentifie
+     /*
+      * Make sure we're properly sorted (paranoia).
+      */
+-    assert(ASN1_INTEGER_cmp(a_min, b_min) <= 0);
++    OPENSSL_assert(ASN1_INTEGER_cmp(a_min, b_min) <= 0);
+ 
+     /*
++     * Punt inverted ranges.
++     */
++    if (ASN1_INTEGER_cmp(a_min, a_max) > 0 ||
++	ASN1_INTEGER_cmp(b_min, b_max) > 0)
++      goto done;
++
++    /*
+      * Check for overlaps.
+      */
+     if (ASN1_INTEGER_cmp(a_max, b_min) >= 0) {
+@@ -466,14 +495,28 @@ static int ASIdentifierChoice_canonize(ASIdentifie
+ 	break;
+       }
+       ASIdOrRange_free(b);
+-      (void)sk_ASIdOrRange_delete(choice->u.asIdsOrRanges, i + 1);
++      (void) sk_ASIdOrRange_delete(choice->u.asIdsOrRanges, i + 1);
+       i--;
+       continue;
+     }
+   }
+ 
+-  assert(ASIdentifierChoice_is_canonical(choice)); /* Paranoia */
++  /*
++   * Check for final inverted range.
++   */
++  i = sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1;
++  {
++    ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i);
++    ASN1_INTEGER *a_min, *a_max;
++    if (a != NULL && a->type == ASIdOrRange_range) {
++      extract_min_max(a, &a_min, &a_max);
++      if (ASN1_INTEGER_cmp(a_min, a_max) > 0)
++	goto done;
++    }
++  }
+ 
++  OPENSSL_assert(ASIdentifierChoice_is_canonical(choice)); /* Paranoia */
++
+   ret = 1;
+ 
+  done:
+@@ -499,6 +542,7 @@ static void *v2i_ASIdentifiers(struct v3_ext_metho
+ 			       struct v3_ext_ctx *ctx,
+ 			       STACK_OF(CONF_VALUE) *values)
+ {
++  ASN1_INTEGER *min = NULL, *max = NULL;
+   ASIdentifiers *asid = NULL;
+   int i;
+ 
+@@ -509,7 +553,6 @@ static void *v2i_ASIdentifiers(struct v3_ext_metho
+ 
+   for (i = 0; i < sk_CONF_VALUE_num(values); i++) {
+     CONF_VALUE *val = sk_CONF_VALUE_value(values, i);
+-    ASN1_INTEGER *min = NULL, *max = NULL;
+     int i1, i2, i3, is_range, which;
+ 
+     /*
+@@ -579,18 +622,19 @@ static void *v2i_ASIdentifiers(struct v3_ext_metho
+       max = s2i_ASN1_INTEGER(NULL, s + i2);
+       OPENSSL_free(s);
+       if (min == NULL || max == NULL) {
+-	ASN1_INTEGER_free(min);
+-	ASN1_INTEGER_free(max);
+ 	X509V3err(X509V3_F_V2I_ASIDENTIFIERS, ERR_R_MALLOC_FAILURE);
+ 	goto err;
+       }
++      if (ASN1_INTEGER_cmp(min, max) > 0) {
++	X509V3err(X509V3_F_V2I_ASIDENTIFIERS, X509V3_R_EXTENSION_VALUE_ERROR);
++	goto err;
++      }
+     }
+     if (!v3_asid_add_id_or_range(asid, which, min, max)) {
+-      ASN1_INTEGER_free(min);
+-      ASN1_INTEGER_free(max);
+       X509V3err(X509V3_F_V2I_ASIDENTIFIERS, ERR_R_MALLOC_FAILURE);
+       goto err;
+     }
++    min = max = NULL;
+   }
+ 
+   /*
+@@ -602,6 +646,8 @@ static void *v2i_ASIdentifiers(struct v3_ext_metho
+ 
+  err:
+   ASIdentifiers_free(asid);
++  ASN1_INTEGER_free(min);
++  ASN1_INTEGER_free(max);
+   return NULL;
+ }
+ 
+@@ -709,9 +755,9 @@ static int v3_asid_validate_path_internal(X509_STO
+   int i, ret = 1, inherit_as = 0, inherit_rdi = 0;
+   X509 *x = NULL;
+ 
+-  assert(chain != NULL && sk_X509_num(chain) > 0);
+-  assert(ctx != NULL || ext != NULL);
+-  assert(ctx == NULL || ctx->verify_cb != NULL);
++  OPENSSL_assert(chain != NULL && sk_X509_num(chain) > 0);
++  OPENSSL_assert(ctx != NULL || ext != NULL);
++  OPENSSL_assert(ctx == NULL || ctx->verify_cb != NULL);
+ 
+   /*
+    * Figure out where to start.  If we don't have an extension to
+@@ -723,7 +769,7 @@ static int v3_asid_validate_path_internal(X509_STO
+   } else {
+     i = 0;
+     x = sk_X509_value(chain, i);
+-    assert(x != NULL);
++    OPENSSL_assert(x != NULL);
+     if ((ext = x->rfc3779_asid) == NULL)
+       goto done;
+   }
+@@ -756,7 +802,7 @@ static int v3_asid_validate_path_internal(X509_STO
+    */
+   for (i++; i < sk_X509_num(chain); i++) {
+     x = sk_X509_value(chain, i);
+-    assert(x != NULL);
++    OPENSSL_assert(x != NULL);
+     if (x->rfc3779_asid == NULL) {
+       if (child_as != NULL || child_rdi != NULL)
+ 	validation_err(X509_V_ERR_UNNESTED_RESOURCE);
+Index: crypto/openssl/doc/HOWTO/proxy_certificates.txt
+===================================================================
+--- crypto/openssl/doc/HOWTO/proxy_certificates.txt	(revision 248771)
++++ crypto/openssl/doc/HOWTO/proxy_certificates.txt	(working copy)
+@@ -57,7 +57,7 @@ following methods:
+ 
+  - in all other cases, proxy certificate validation can be enabled
+    before starting the application by setting the envirnoment variable
+-   OPENSSL_ALLOW_PROXY with some non-empty value.
++   OPENSSL_ALLOW_PROXY_CERTS with some non-empty value.
+ 
+ There are thoughts to allow proxy certificates with a line in the
+ default openssl.cnf, but that's still in the future.
+Index: crypto/openssl/doc/apps/CA.pl.pod
+===================================================================
+--- crypto/openssl/doc/apps/CA.pl.pod	(revision 248771)
++++ crypto/openssl/doc/apps/CA.pl.pod	(working copy)
+@@ -39,13 +39,13 @@ prints a usage message.
+ 
+ =item B<-newcert>
+ 
+-creates a new self signed certificate. The private key and certificate are
+-written to the file "newreq.pem".
++creates a new self signed certificate. The private key is written to the file
++"newkey.pem" and the request written to the file "newreq.pem".
+ 
+ =item B<-newreq>
+ 
+-creates a new certificate request. The private key and request are
+-written to the file "newreq.pem".
++creates a new certificate request. The private key is written to the file
++"newkey.pem" and the request written to the file "newreq.pem".
+ 
+ =item B<-newreq-nodes>
+ 
+Index: crypto/openssl/doc/apps/ca.pod
+===================================================================
+--- crypto/openssl/doc/apps/ca.pod	(revision 248771)
++++ crypto/openssl/doc/apps/ca.pod	(working copy)
+@@ -88,7 +88,7 @@ section for information on the required format.
+ =item B<-infiles>
+ 
+ if present this should be the last option, all subsequent arguments
+-are assumed to the the names of files containing certificate requests. 
++are assumed to be the names of files containing certificate requests. 
+ 
+ =item B<-out filename>
+ 
+Index: crypto/openssl/doc/apps/dgst.pod
+===================================================================
+--- crypto/openssl/doc/apps/dgst.pod	(revision 248771)
++++ crypto/openssl/doc/apps/dgst.pod	(working copy)
+@@ -68,7 +68,7 @@ see the B<PASS PHRASE ARGUMENTS> section in L<open
+ 
+ =item B<-verify filename>
+ 
+-verify the signature using the the public key in "filename".
++verify the signature using the public key in "filename".
+ The output is either "Verification OK" or "Verification Failure".
+ 
+ =item B<-prverify filename>
+Index: crypto/openssl/doc/crypto/engine.pod
+===================================================================
+--- crypto/openssl/doc/crypto/engine.pod	(revision 248771)
++++ crypto/openssl/doc/crypto/engine.pod	(working copy)
+@@ -517,7 +517,7 @@ implemented by ENGINEs should be numbered from. An
+ this symbol is considered a "generic" command is handled directly by the
+ OpenSSL core routines.
+ 
+-It is using these "core" control commands that one can discover the the control
++It is using these "core" control commands that one can discover the control
+ commands implemented by a given ENGINE, specifically the commands;
+ 
+  #define ENGINE_HAS_CTRL_FUNCTION		10
+Index: crypto/openssl/doc/ssl/SSL_clear.pod
+===================================================================
+--- crypto/openssl/doc/ssl/SSL_clear.pod	(revision 248771)
++++ crypto/openssl/doc/ssl/SSL_clear.pod	(working copy)
+@@ -39,10 +39,16 @@ for a description of the method's properties.
+ SSL_clear() resets the SSL object to allow for another connection. The
+ reset operation however keeps several settings of the last sessions
+ (some of these settings were made automatically during the last
+-handshake). It only makes sense when opening a new session (or reusing
+-an old one) with the same peer that shares these settings.
+-SSL_clear() is not a short form for the sequence
+-L<SSL_free(3)|SSL_free(3)>; L<SSL_new(3)|SSL_new(3)>; .
++handshake). It only makes sense for a new connection with the exact
++same peer that shares these settings, and may fail if that peer
++changes its settings between connections. Use the sequence
++L<SSL_get_session(3)|SSL_get_session(3)>;
++L<SSL_new(3)|SSL_new(3)>;
++L<SSL_set_session(3)|SSL_set_session(3)>;
++L<SSL_free(3)|SSL_free(3)>
++instead to avoid such failures
++(or simply L<SSL_free(3)|SSL_free(3)>; L<SSL_new(3)|SSL_new(3)>
++if session reuse is not desired).
+ 
+ =head1 RETURN VALUES
+ 
+Index: crypto/openssl/engines/e_capi.c
+===================================================================
+--- crypto/openssl/engines/e_capi.c	(revision 248771)
++++ crypto/openssl/engines/e_capi.c	(working copy)
+@@ -420,29 +420,37 @@ static int capi_init(ENGINE *e)
+ 	CAPI_CTX *ctx;
+ 	const RSA_METHOD *ossl_rsa_meth;
+ 	const DSA_METHOD *ossl_dsa_meth;
+-	capi_idx = ENGINE_get_ex_new_index(0, NULL, NULL, NULL, 0);
+-	cert_capi_idx = X509_get_ex_new_index(0, NULL, NULL, NULL, 0);
+ 
++	if (capi_idx < 0)
++		{
++		capi_idx = ENGINE_get_ex_new_index(0, NULL, NULL, NULL, 0);
++		if (capi_idx < 0)
++			goto memerr;
++
++		cert_capi_idx = X509_get_ex_new_index(0, NULL, NULL, NULL, 0);
++
++		/* Setup RSA_METHOD */
++		rsa_capi_idx = RSA_get_ex_new_index(0, NULL, NULL, NULL, 0);
++		ossl_rsa_meth = RSA_PKCS1_SSLeay();
++		capi_rsa_method.rsa_pub_enc = ossl_rsa_meth->rsa_pub_enc;
++		capi_rsa_method.rsa_pub_dec = ossl_rsa_meth->rsa_pub_dec;
++		capi_rsa_method.rsa_mod_exp = ossl_rsa_meth->rsa_mod_exp;
++		capi_rsa_method.bn_mod_exp = ossl_rsa_meth->bn_mod_exp;
++
++		/* Setup DSA Method */
++		dsa_capi_idx = DSA_get_ex_new_index(0, NULL, NULL, NULL, 0);
++		ossl_dsa_meth = DSA_OpenSSL();
++		capi_dsa_method.dsa_do_verify = ossl_dsa_meth->dsa_do_verify;
++		capi_dsa_method.dsa_mod_exp = ossl_dsa_meth->dsa_mod_exp;
++		capi_dsa_method.bn_mod_exp = ossl_dsa_meth->bn_mod_exp;
++		}
++
+ 	ctx = capi_ctx_new();
+-	if (!ctx || (capi_idx < 0))
++	if (!ctx)
+ 		goto memerr;
+ 
+ 	ENGINE_set_ex_data(e, capi_idx, ctx);
+-	/* Setup RSA_METHOD */
+-	rsa_capi_idx = RSA_get_ex_new_index(0, NULL, NULL, NULL, 0);
+-	ossl_rsa_meth = RSA_PKCS1_SSLeay();
+-	capi_rsa_method.rsa_pub_enc = ossl_rsa_meth->rsa_pub_enc;
+-	capi_rsa_method.rsa_pub_dec = ossl_rsa_meth->rsa_pub_dec;
+-	capi_rsa_method.rsa_mod_exp = ossl_rsa_meth->rsa_mod_exp;
+-	capi_rsa_method.bn_mod_exp = ossl_rsa_meth->bn_mod_exp;
+ 
+-	/* Setup DSA Method */
+-	dsa_capi_idx = DSA_get_ex_new_index(0, NULL, NULL, NULL, 0);
+-	ossl_dsa_meth = DSA_OpenSSL();
+-	capi_dsa_method.dsa_do_verify = ossl_dsa_meth->dsa_do_verify;
+-	capi_dsa_method.dsa_mod_exp = ossl_dsa_meth->dsa_mod_exp;
+-	capi_dsa_method.bn_mod_exp = ossl_dsa_meth->bn_mod_exp;
+-
+ #ifdef OPENSSL_CAPIENG_DIALOG
+ 	{
+ 	HMODULE cryptui = LoadLibrary(TEXT("CRYPTUI.DLL"));
+@@ -1133,6 +1141,7 @@ static int capi_list_containers(CAPI_CTX *ctx, BIO
+ 		{
+ 		CAPIerr(CAPI_F_CAPI_LIST_CONTAINERS, CAPI_R_ENUMCONTAINERS_ERROR);
+ 		capi_addlasterror();
++		CryptReleaseContext(hprov, 0);
+ 		return 0;
+ 		}
+ 	CAPI_trace(ctx, "Got max container len %d\n", buflen);
+@@ -1400,10 +1409,13 @@ static PCCERT_CONTEXT capi_find_cert(CAPI_CTX *ctx
+ static CAPI_KEY *capi_get_key(CAPI_CTX *ctx, const char *contname, char *provname, DWORD ptype, DWORD keyspec)
+ 	{
+ 	CAPI_KEY *key;
++    DWORD dwFlags = 0; 
+ 	key = OPENSSL_malloc(sizeof(CAPI_KEY));
+ 	CAPI_trace(ctx, "capi_get_key, contname=%s, provname=%s, type=%d\n", 
+ 						contname, provname, ptype);
+-	if (!CryptAcquireContextA(&key->hprov, contname, provname, ptype, 0))
++    if(ctx->store_flags & CERT_SYSTEM_STORE_LOCAL_MACHINE)
++        dwFlags = CRYPT_MACHINE_KEYSET;
++    if (!CryptAcquireContextA(&key->hprov, contname, provname, ptype, dwFlags)) 
+ 		{
+ 		CAPIerr(CAPI_F_CAPI_GET_KEY, CAPI_R_CRYPTACQUIRECONTEXT_ERROR);
+ 		capi_addlasterror();
+@@ -1550,6 +1562,8 @@ static int capi_ctx_set_provname(CAPI_CTX *ctx, LP
+ 			}
+ 		CryptReleaseContext(hprov, 0);
+ 		}
++	if (ctx->cspname)
++		OPENSSL_free(ctx->cspname);
+ 	ctx->cspname = BUF_strdup(pname);
+ 	ctx->csptype = type;
+ 	return 1;
+@@ -1559,9 +1573,12 @@ static int capi_ctx_set_provname_idx(CAPI_CTX *ctx
+ 	{
+ 	LPSTR pname;
+ 	DWORD type;
++	int res;
+ 	if (capi_get_provname(ctx, &pname, &type, idx) != 1)
+ 		return 0;
+-	return capi_ctx_set_provname(ctx, pname, type, 0);
++	res = capi_ctx_set_provname(ctx, pname, type, 0);
++	OPENSSL_free(pname);
++	return res;
+ 	}
+ 
+ static int cert_issuer_match(STACK_OF(X509_NAME) *ca_dn, X509 *x)
+Index: crypto/openssl/engines/e_capi_err.h
+===================================================================
+--- crypto/openssl/engines/e_capi_err.h	(revision 248771)
++++ crypto/openssl/engines/e_capi_err.h	(working copy)
+@@ -55,6 +55,10 @@
+ #ifndef HEADER_CAPI_ERR_H
+ #define HEADER_CAPI_ERR_H
+ 
++#ifdef  __cplusplus
++extern "C" {
++#endif
++
+ /* BEGIN ERROR CODES */
+ /* The following lines are auto generated by the script mkerr.pl. Any changes
+  * made after this point may be overwritten when the script is next run.
+Index: crypto/openssl/fips/fips_canister.c
+===================================================================
+--- crypto/openssl/fips/fips_canister.c	(revision 248771)
++++ crypto/openssl/fips/fips_canister.c	(working copy)
+@@ -19,6 +19,7 @@
+ 	(defined(__linux) && (defined(__arm) || defined(__arm__)))	|| \
+ 	(defined(__i386) || defined(__i386__))				|| \
+ 	(defined(__x86_64) || defined(__x86_64__))			|| \
++	defined(__ANDROID__)						|| \
+ 	(defined(vax) || defined(__vax__))
+ #  define POINTER_TO_FUNCTION_IS_POINTER_TO_1ST_INSTRUCTION
+ # endif
+Index: crypto/openssl/openssl.spec
+===================================================================
+--- crypto/openssl/openssl.spec	(revision 248771)
++++ crypto/openssl/openssl.spec	(working copy)
+@@ -2,7 +2,7 @@
+ %define libmaj 0
+ %define libmin 9
+ %define librel 8
+-%define librev q
++%define librev y
+ Release: 1
+ 
+ %define openssldir /var/ssl
+Index: crypto/openssl/ssl/Makefile
+===================================================================
+--- crypto/openssl/ssl/Makefile	(revision 248771)
++++ crypto/openssl/ssl/Makefile	(working copy)
+@@ -22,7 +22,7 @@ LIB=$(TOP)/libssl.a
+ SHARED_LIB= libssl$(SHLIB_EXT)
+ LIBSRC=	\
+ 	s2_meth.c   s2_srvr.c s2_clnt.c  s2_lib.c  s2_enc.c s2_pkt.c \
+-	s3_meth.c   s3_srvr.c s3_clnt.c  s3_lib.c  s3_enc.c s3_pkt.c s3_both.c \
++	s3_meth.c   s3_srvr.c s3_clnt.c  s3_lib.c  s3_enc.c s3_pkt.c s3_both.c s3_cbc.c \
+ 	s23_meth.c s23_srvr.c s23_clnt.c s23_lib.c          s23_pkt.c \
+ 	t1_meth.c   t1_srvr.c t1_clnt.c  t1_lib.c  t1_enc.c \
+ 	d1_meth.c   d1_srvr.c d1_clnt.c  d1_lib.c  d1_pkt.c \
+@@ -33,7 +33,7 @@ LIBSRC=	\
+ 	bio_ssl.c ssl_err.c kssl.c t1_reneg.c
+ LIBOBJ= \
+ 	s2_meth.o  s2_srvr.o  s2_clnt.o  s2_lib.o  s2_enc.o s2_pkt.o \
+-	s3_meth.o  s3_srvr.o  s3_clnt.o  s3_lib.o  s3_enc.o s3_pkt.o s3_both.o \
++	s3_meth.o  s3_srvr.o  s3_clnt.o  s3_lib.o  s3_enc.o s3_pkt.o s3_both.o s3_cbc.o \
+ 	s23_meth.o s23_srvr.o s23_clnt.o s23_lib.o          s23_pkt.o \
+ 	t1_meth.o   t1_srvr.o t1_clnt.o  t1_lib.o  t1_enc.o \
+ 	d1_meth.o   d1_srvr.o d1_clnt.o  d1_lib.o  d1_pkt.o \
+@@ -545,6 +545,27 @@ s3_both.o: ../include/openssl/ssl23.h ../include/o
+ s3_both.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
+ s3_both.o: ../include/openssl/tls1.h ../include/openssl/x509.h
+ s3_both.o: ../include/openssl/x509_vfy.h s3_both.c ssl_locl.h
++s3_cbc.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
++s3_cbc.o: ../include/openssl/bn.h ../include/openssl/buffer.h
++s3_cbc.o: ../include/openssl/comp.h ../include/openssl/crypto.h
++s3_cbc.o: ../include/openssl/dsa.h ../include/openssl/dtls1.h
++s3_cbc.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
++s3_cbc.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
++s3_cbc.o: ../include/openssl/err.h ../include/openssl/evp.h
++s3_cbc.o: ../include/openssl/fips.h ../include/openssl/hmac.h
++s3_cbc.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
++s3_cbc.o: ../include/openssl/md5.h ../include/openssl/obj_mac.h
++s3_cbc.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
++s3_cbc.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
++s3_cbc.o: ../include/openssl/pem.h ../include/openssl/pem2.h
++s3_cbc.o: ../include/openssl/pkcs7.h ../include/openssl/pq_compat.h
++s3_cbc.o: ../include/openssl/pqueue.h ../include/openssl/rsa.h
++s3_cbc.o: ../include/openssl/safestack.h ../include/openssl/sha.h
++s3_cbc.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
++s3_cbc.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
++s3_cbc.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
++s3_cbc.o: ../include/openssl/tls1.h ../include/openssl/x509.h
++s3_cbc.o: ../include/openssl/x509_vfy.h s3_cbc.c ssl_locl.h
+ s3_clnt.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
+ s3_clnt.o: ../include/openssl/bn.h ../include/openssl/buffer.h
+ s3_clnt.o: ../include/openssl/comp.h ../include/openssl/crypto.h
+Index: crypto/openssl/ssl/bio_ssl.c
+===================================================================
+--- crypto/openssl/ssl/bio_ssl.c	(revision 248771)
++++ crypto/openssl/ssl/bio_ssl.c	(working copy)
+@@ -348,7 +348,11 @@ static long ssl_ctrl(BIO *b, int cmd, long num, vo
+ 		break;
+ 	case BIO_C_SET_SSL:
+ 		if (ssl != NULL)
++			{
+ 			ssl_free(b);
++			if (!ssl_new(b))
++				return 0;
++			}
+ 		b->shutdown=(int)num;
+ 		ssl=(SSL *)ptr;
+ 		((BIO_SSL *)b->ptr)->ssl=ssl;
+Index: crypto/openssl/ssl/d1_both.c
+===================================================================
+--- crypto/openssl/ssl/d1_both.c	(revision 248771)
++++ crypto/openssl/ssl/d1_both.c	(working copy)
+@@ -153,12 +153,11 @@
+ #endif
+ 
+ static unsigned char bitmask_start_values[] = {0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80};
+-static unsigned char bitmask_end_values[]   = {0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f};
++static unsigned char bitmask_end_values[]   = {0xff, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f};
+ 
+ /* XDTLS:  figure out the right values */
+ static unsigned int g_probable_mtu[] = {1500 - 28, 512 - 28, 256 - 28};
+ 
+-static unsigned int dtls1_min_mtu(void);
+ static unsigned int dtls1_guess_mtu(unsigned int curr_mtu);
+ static void dtls1_fix_message_header(SSL *s, unsigned long frag_off, 
+ 	unsigned long frag_len);
+@@ -228,14 +227,14 @@ int dtls1_do_write(SSL *s, int type)
+ 	unsigned int len, frag_off, mac_size, blocksize;
+ 
+ 	/* AHA!  Figure out the MTU, and stick to the right size */
+-	if ( ! (SSL_get_options(s) & SSL_OP_NO_QUERY_MTU))
++	if (s->d1->mtu < dtls1_min_mtu() && !(SSL_get_options(s) & SSL_OP_NO_QUERY_MTU))
+ 		{
+ 		s->d1->mtu = 
+ 			BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL);
+ 
+ 		/* I've seen the kernel return bogus numbers when it doesn't know
+ 		 * (initial write), so just make sure we have a reasonable number */
+-		if ( s->d1->mtu < dtls1_min_mtu())
++		if (s->d1->mtu < dtls1_min_mtu())
+ 			{
+ 			s->d1->mtu = 0;
+ 			s->d1->mtu = dtls1_guess_mtu(s->d1->mtu);
+@@ -264,11 +263,10 @@ int dtls1_do_write(SSL *s, int type)
+ 			return ret;
+ 		mtu = s->d1->mtu - (DTLS1_HM_HEADER_LENGTH + DTLS1_RT_HEADER_LENGTH);
+ 		}
++#endif
+ 
+-	OPENSSL_assert(mtu > 0);  /* should have something reasonable now */
++	OPENSSL_assert(s->d1->mtu >= dtls1_min_mtu());  /* should have something reasonable now */
+ 
+-#endif
+-
+ 	if ( s->init_off == 0  && type == SSL3_RT_HANDSHAKE)
+ 		OPENSSL_assert(s->init_num == 
+ 			(int)s->d1->w_msg_hdr.msg_len + DTLS1_HM_HEADER_LENGTH);
+@@ -464,20 +462,9 @@ again:
+ 
+ 	memset(msg_hdr, 0x00, sizeof(struct hm_header_st));
+ 
+-	s->d1->handshake_read_seq++;
+-	/* we just read a handshake message from the other side:
+-	 * this means that we don't need to retransmit of the
+-	 * buffered messages.  
+-	 * XDTLS: may be able clear out this
+-	 * buffer a little sooner (i.e if an out-of-order
+-	 * handshake message/record is received at the record
+-	 * layer.  
+-	 * XDTLS: exception is that the server needs to
+-	 * know that change cipher spec and finished messages
+-	 * have been received by the client before clearing this
+-	 * buffer.  this can simply be done by waiting for the
+-	 * first data  segment, but is there a better way?  */
+-	dtls1_clear_record_buffer(s);
++	/* Don't change sequence numbers while listening */
++	if (!s->d1->listen)
++		s->d1->handshake_read_seq++;
+ 
+ 	s->init_msg = s->init_buf->data + DTLS1_HM_HEADER_LENGTH;
+ 	return s->init_num;
+@@ -806,16 +793,24 @@ dtls1_get_message_fragment(SSL *s, int st1, int st
+ 		*ok = 0;
+ 		return i;
+ 		}
+-	OPENSSL_assert(i == DTLS1_HM_HEADER_LENGTH);
++	/* Handshake fails if message header is incomplete */
++	if (i != DTLS1_HM_HEADER_LENGTH)
++		{
++		al=SSL_AD_UNEXPECTED_MESSAGE;
++		SSLerr(SSL_F_DTLS1_GET_MESSAGE_FRAGMENT,SSL_R_UNEXPECTED_MESSAGE);
++		goto f_err;
++		}
+ 
+ 	/* parse the message fragment header */
+ 	dtls1_get_message_header(wire, &msg_hdr);
+ 
+ 	/* 
+ 	 * if this is a future (or stale) message it gets buffered
+-	 * (or dropped)--no further processing at this time 
++	 * (or dropped)--no further processing at this time
++	 * While listening, we accept seq 1 (ClientHello with cookie)
++	 * although we're still expecting seq 0 (ClientHello)
+ 	 */
+-	if ( msg_hdr.seq != s->d1->handshake_read_seq)
++	if (msg_hdr.seq != s->d1->handshake_read_seq && !(s->d1->listen && msg_hdr.seq == 1))
+ 		return dtls1_process_out_of_seq_message(s, &msg_hdr, ok);
+ 
+ 	len = msg_hdr.msg_len;
+@@ -876,7 +871,12 @@ dtls1_get_message_fragment(SSL *s, int st1, int st
+ 
+ 	/* XDTLS:  an incorrectly formatted fragment should cause the 
+ 	 * handshake to fail */
+-	OPENSSL_assert(i == (int)frag_len);
++	if (i != (int)frag_len)
++		{
++		al=SSL3_AD_ILLEGAL_PARAMETER;
++		SSLerr(SSL_F_DTLS1_GET_MESSAGE_FRAGMENT,SSL3_AD_ILLEGAL_PARAMETER);
++		goto f_err;
++		}
+ 
+ 	*ok = 1;
+ 
+@@ -1326,7 +1326,8 @@ unsigned char *
+ dtls1_set_message_header(SSL *s, unsigned char *p, unsigned char mt,
+ 			unsigned long len, unsigned long frag_off, unsigned long frag_len)
+ 	{
+-	if ( frag_off == 0)
++	/* Don't change sequence numbers while listening */
++	if (frag_off == 0 && !s->d1->listen)
+ 		{
+ 		s->d1->handshake_write_seq = s->d1->next_handshake_write_seq;
+ 		s->d1->next_handshake_write_seq++;
+@@ -1379,7 +1380,7 @@ dtls1_write_message_header(SSL *s, unsigned char *
+ 	return p;
+ 	}
+ 
+-static unsigned int 
++unsigned int 
+ dtls1_min_mtu(void)
+ 	{
+ 	return (g_probable_mtu[(sizeof(g_probable_mtu) / 
+Index: crypto/openssl/ssl/d1_clnt.c
+===================================================================
+--- crypto/openssl/ssl/d1_clnt.c	(revision 248771)
++++ crypto/openssl/ssl/d1_clnt.c	(working copy)
+@@ -257,7 +257,6 @@ int dtls1_connect(SSL *s)
+ 			if (ret <= 0) goto end;
+ 			else
+ 				{
+-				dtls1_stop_timer(s);
+ 				if (s->hit)
+ 					s->state=SSL3_ST_CR_FINISHED_A;
+ 				else
+@@ -350,6 +349,7 @@ int dtls1_connect(SSL *s)
+ 		case SSL3_ST_CR_SRVR_DONE_B:
+ 			ret=ssl3_get_server_done(s);
+ 			if (ret <= 0) goto end;
++			dtls1_stop_timer(s);
+ 			if (s->s3->tmp.cert_req)
+ 				s->state=SSL3_ST_CW_CERT_A;
+ 			else
+@@ -403,7 +403,8 @@ int dtls1_connect(SSL *s)
+ 
+ 		case SSL3_ST_CW_CHANGE_A:
+ 		case SSL3_ST_CW_CHANGE_B:
+-			dtls1_start_timer(s);
++			if (!s->hit)
++				dtls1_start_timer(s);
+ 			ret=dtls1_send_change_cipher_spec(s,
+ 				SSL3_ST_CW_CHANGE_A,SSL3_ST_CW_CHANGE_B);
+ 			if (ret <= 0) goto end;
+@@ -438,7 +439,8 @@ int dtls1_connect(SSL *s)
+ 
+ 		case SSL3_ST_CW_FINISHED_A:
+ 		case SSL3_ST_CW_FINISHED_B:
+-			dtls1_start_timer(s);
++			if (!s->hit)
++				dtls1_start_timer(s);
+ 			ret=dtls1_send_finished(s,
+ 				SSL3_ST_CW_FINISHED_A,SSL3_ST_CW_FINISHED_B,
+ 				s->method->ssl3_enc->client_finished_label,
+Index: crypto/openssl/ssl/d1_enc.c
+===================================================================
+--- crypto/openssl/ssl/d1_enc.c	(revision 248771)
++++ crypto/openssl/ssl/d1_enc.c	(working copy)
+@@ -126,16 +126,30 @@
+ #include <openssl/des.h>
+ #endif
+ 
++/* dtls1_enc encrypts/decrypts the record in |s->wrec| / |s->rrec|, respectively.
++ *
++ * Returns:
++ *   0: (in non-constant time) if the record is publically invalid (i.e. too
++ *       short etc).
++ *   1: if the record's padding is valid / the encryption was successful.
++ *   -1: if the record's padding/AEAD-authenticator is invalid or, if sending,
++ *       an internal error occured. */
+ int dtls1_enc(SSL *s, int send)
+ 	{
+ 	SSL3_RECORD *rec;
+ 	EVP_CIPHER_CTX *ds;
+ 	unsigned long l;
+-	int bs,i,ii,j,k;
++	int bs,i,j,k,mac_size=0;
+ 	const EVP_CIPHER *enc;
+ 
+ 	if (send)
+ 		{
++		if (s->write_hash)
++			{
++			mac_size=EVP_MD_size(s->write_hash);
++			if (mac_size < 0)
++				return -1;
++			}
+ 		ds=s->enc_write_ctx;
+ 		rec= &(s->s3->wrec);
+ 		if (s->enc_write_ctx == NULL)
+@@ -156,6 +170,11 @@ int dtls1_enc(SSL *s, int send)
+ 		}
+ 	else
+ 		{
++		if (s->read_hash)
++			{
++			mac_size=EVP_MD_size(s->read_hash);
++			OPENSSL_assert(mac_size >= 0);
++			}
+ 		ds=s->enc_read_ctx;
+ 		rec= &(s->s3->rrec);
+ 		if (s->enc_read_ctx == NULL)
+@@ -220,11 +239,7 @@ int dtls1_enc(SSL *s, int send)
+ 		if (!send)
+ 			{
+ 			if (l == 0 || l%bs != 0)
+-				{
+-				SSLerr(SSL_F_DTLS1_ENC,SSL_R_BLOCK_CIPHER_PAD_IS_WRONG);
+-				ssl3_send_alert(s,SSL3_AL_FATAL,SSL_AD_DECRYPTION_FAILED);
+ 				return 0;
+-				}
+ 			}
+ 		
+ 		EVP_Cipher(ds,rec->data,rec->input,l);
+@@ -239,43 +254,7 @@ int dtls1_enc(SSL *s, int send)
+ #endif	/* KSSL_DEBUG */
+ 
+ 		if ((bs != 1) && !send)
+-			{
+-			ii=i=rec->data[l-1]; /* padding_length */
+-			i++;
+-			if (s->options&SSL_OP_TLS_BLOCK_PADDING_BUG)
+-				{
+-				/* First packet is even in size, so check */
+-				if ((memcmp(s->s3->read_sequence,
+-					"\0\0\0\0\0\0\0\0",8) == 0) && !(ii & 1))
+-					s->s3->flags|=TLS1_FLAGS_TLS_PADDING_BUG;
+-				if (s->s3->flags & TLS1_FLAGS_TLS_PADDING_BUG)
+-					i--;
+-				}
+-			/* TLS 1.0 does not bound the number of padding bytes by the block size.
+-			 * All of them must have value 'padding_length'. */
+-			if (i > (int)rec->length)
+-				{
+-				/* Incorrect padding. SSLerr() and ssl3_alert are done
+-				 * by caller: we don't want to reveal whether this is
+-				 * a decryption error or a MAC verification failure
+-				 * (see http://www.openssl.org/~bodo/tls-cbc.txt) 
+-				 */
+-				return -1;
+-				}
+-			for (j=(int)(l-i); j<(int)l; j++)
+-				{
+-				if (rec->data[j] != ii)
+-					{
+-					/* Incorrect padding */
+-					return -1;
+-					}
+-				}
+-			rec->length-=i;
+-
+-			rec->data += bs;    /* skip the implicit IV */
+-			rec->input += bs;
+-			rec->length -= bs;
+-			}
++			return tls1_cbc_remove_padding(s, rec, bs, mac_size);
+ 		}
+ 	return(1);
+ 	}
+Index: crypto/openssl/ssl/d1_lib.c
+===================================================================
+--- crypto/openssl/ssl/d1_lib.c	(revision 248771)
++++ crypto/openssl/ssl/d1_lib.c	(working copy)
+@@ -145,26 +145,33 @@ int dtls1_new(SSL *s)
+ 	return(1);
+ 	}
+ 
+-void dtls1_free(SSL *s)
++static void dtls1_clear_queues(SSL *s)
+ 	{
+     pitem *item = NULL;
+     hm_fragment *frag = NULL;
++	DTLS1_RECORD_DATA *rdata;
+ 
+-	ssl3_free(s);
+-
+     while( (item = pqueue_pop(s->d1->unprocessed_rcds.q)) != NULL)
+         {
++		rdata = (DTLS1_RECORD_DATA *) item->data;
++		if (rdata->rbuf.buf)
++			{
++			OPENSSL_free(rdata->rbuf.buf);
++			}
+         OPENSSL_free(item->data);
+         pitem_free(item);
+         }
+-    pqueue_free(s->d1->unprocessed_rcds.q);
+ 
+     while( (item = pqueue_pop(s->d1->processed_rcds.q)) != NULL)
+         {
++		rdata = (DTLS1_RECORD_DATA *) item->data;
++		if (rdata->rbuf.buf)
++			{
++			OPENSSL_free(rdata->rbuf.buf);
++			}
+         OPENSSL_free(item->data);
+         pitem_free(item);
+         }
+-    pqueue_free(s->d1->processed_rcds.q);
+ 
+     while( (item = pqueue_pop(s->d1->buffered_messages)) != NULL)
+         {
+@@ -173,7 +180,6 @@ int dtls1_new(SSL *s)
+         OPENSSL_free(frag);
+         pitem_free(item);
+         }
+-    pqueue_free(s->d1->buffered_messages);
+ 
+     while ( (item = pqueue_pop(s->d1->sent_messages)) != NULL)
+         {
+@@ -182,15 +188,26 @@ int dtls1_new(SSL *s)
+         OPENSSL_free(frag);
+         pitem_free(item);
+         }
+-	pqueue_free(s->d1->sent_messages);
+ 
+ 	while ( (item = pqueue_pop(s->d1->buffered_app_data.q)) != NULL)
+-	{
++		{
+ 		frag = (hm_fragment *)item->data;
+ 		OPENSSL_free(frag->fragment);
+ 		OPENSSL_free(frag);
+ 		pitem_free(item);
++		}
+ 	}
++
++void dtls1_free(SSL *s)
++	{
++	ssl3_free(s);
++
++	dtls1_clear_queues(s);
++
++    pqueue_free(s->d1->unprocessed_rcds.q);
++    pqueue_free(s->d1->processed_rcds.q);
++    pqueue_free(s->d1->buffered_messages);
++	pqueue_free(s->d1->sent_messages);
+ 	pqueue_free(s->d1->buffered_app_data.q);
+ 	
+ 	pq_64bit_free(&(s->d1->bitmap.map));
+@@ -204,6 +221,61 @@ int dtls1_new(SSL *s)
+ 
+ void dtls1_clear(SSL *s)
+ 	{
++    pqueue unprocessed_rcds;
++    pqueue processed_rcds;
++    pqueue buffered_messages;
++	pqueue sent_messages;
++	pqueue buffered_app_data;
++	unsigned int mtu;
++
++	if (s->d1)
++		{
++		unprocessed_rcds = s->d1->unprocessed_rcds.q;
++		processed_rcds = s->d1->processed_rcds.q;
++		buffered_messages = s->d1->buffered_messages;
++		sent_messages = s->d1->sent_messages;
++		buffered_app_data = s->d1->buffered_app_data.q;
++		mtu = s->d1->mtu;
++
++		dtls1_clear_queues(s);
++
++		pq_64bit_free(&(s->d1->bitmap.map));
++		pq_64bit_free(&(s->d1->bitmap.max_seq_num));
++
++		pq_64bit_free(&(s->d1->next_bitmap.map));
++		pq_64bit_free(&(s->d1->next_bitmap.max_seq_num));
++
++		memset(s->d1, 0, sizeof(*(s->d1)));
++
++		if (s->server)
++			{
++			s->d1->cookie_len = sizeof(s->d1->cookie);
++			}
++
++		if (SSL_get_options(s) & SSL_OP_NO_QUERY_MTU)
++			{
++			s->d1->mtu = mtu;
++			}
++
++		s->d1->unprocessed_rcds.q = unprocessed_rcds;
++		s->d1->processed_rcds.q = processed_rcds;
++		s->d1->buffered_messages = buffered_messages;
++		s->d1->sent_messages = sent_messages;
++		s->d1->buffered_app_data.q = buffered_app_data;
++
++#if defined(OPENSSL_SYS_VMS) || defined(VMS_TEST)
++		s->d1->bitmap.length=64;
++#else
++		s->d1->bitmap.length=sizeof(s->d1->bitmap.map) * 8;
++#endif
++		pq_64bit_init(&(s->d1->bitmap.map));
++		pq_64bit_init(&(s->d1->bitmap.max_seq_num));
++		
++		s->d1->next_bitmap.length = s->d1->bitmap.length;
++		pq_64bit_init(&(s->d1->next_bitmap.map));
++		pq_64bit_init(&(s->d1->next_bitmap.max_seq_num));
++		}
++
+ 	ssl3_clear(s);
+ 	if (s->options & SSL_OP_CISCO_ANYCONNECT)
+ 		s->version=DTLS1_BAD_VER;
+@@ -349,35 +421,51 @@ void dtls1_double_timeout(SSL *s)
+ void dtls1_stop_timer(SSL *s)
+ 	{
+ 	/* Reset everything */
++	memset(&(s->d1->timeout), 0, sizeof(struct dtls1_timeout_st));
+ 	memset(&(s->d1->next_timeout), 0, sizeof(struct timeval));
+ 	s->d1->timeout_duration = 1;
+ 	BIO_ctrl(SSL_get_rbio(s), BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT, 0, &(s->d1->next_timeout));
++	/* Clear retransmission buffer */
++	dtls1_clear_record_buffer(s);
+ 	}
+ 
+-int dtls1_handle_timeout(SSL *s)
++int dtls1_check_timeout_num(SSL *s)
+ 	{
+-	DTLS1_STATE *state;
++	s->d1->timeout.num_alerts++;
+ 
+-	/* if no timer is expired, don't do anything */
+-	if (!dtls1_is_timer_expired(s))
++	/* Reduce MTU after 2 unsuccessful retransmissions */
++	if (s->d1->timeout.num_alerts > 2)
+ 		{
+-		return 0;
++		s->d1->mtu = BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_GET_FALLBACK_MTU, 0, NULL);		
+ 		}
+ 
+-	dtls1_double_timeout(s);
+-	state = s->d1;
+-	state->timeout.num_alerts++;
+-	if ( state->timeout.num_alerts > DTLS1_TMO_ALERT_COUNT)
++	if (s->d1->timeout.num_alerts > DTLS1_TMO_ALERT_COUNT)
+ 		{
+ 		/* fail the connection, enough alerts have been sent */
+-		SSLerr(SSL_F_DTLS1_HANDLE_TIMEOUT,SSL_R_READ_TIMEOUT_EXPIRED);
++		SSLerr(SSL_F_DTLS1_CHECK_TIMEOUT_NUM,SSL_R_READ_TIMEOUT_EXPIRED);
++		return -1;
++		}
++
++	return 0;
++	}
++
++int dtls1_handle_timeout(SSL *s)
++	{
++	/* if no timer is expired, don't do anything */
++	if (!dtls1_is_timer_expired(s))
++		{
+ 		return 0;
+ 		}
+ 
+-	state->timeout.read_timeouts++;
+-	if ( state->timeout.read_timeouts > DTLS1_TMO_READ_COUNT)
++	dtls1_double_timeout(s);
++
++	if (dtls1_check_timeout_num(s) < 0)
++		return -1;
++
++	s->d1->timeout.read_timeouts++;
++	if (s->d1->timeout.read_timeouts > DTLS1_TMO_READ_COUNT)
+ 		{
+-		state->timeout.read_timeouts = 1;
++		s->d1->timeout.read_timeouts = 1;
+ 		}
+ 
+ 	dtls1_start_timer(s);
+Index: crypto/openssl/ssl/d1_pkt.c
+===================================================================
+--- crypto/openssl/ssl/d1_pkt.c	(revision 248771)
++++ crypto/openssl/ssl/d1_pkt.c	(working copy)
+@@ -139,7 +139,6 @@ static int dtls1_process_record(SSL *s);
+ #if PQ_64BIT_IS_INTEGER
+ static PQ_64BIT bytes_to_long_long(unsigned char *bytes, PQ_64BIT *num);
+ #endif
+-static void dtls1_clear_timeouts(SSL *s);
+ 
+ /* copy buffered record into SSL structure */
+ static int
+@@ -328,15 +327,13 @@ dtls1_get_buffered_record(SSL *s)
+ static int
+ dtls1_process_record(SSL *s)
+ {
+-    int al;
+-	int clear=0;
+-    int enc_err;
++	int i,al;
++	int enc_err;
+ 	SSL_SESSION *sess;
+-    SSL3_RECORD *rr;
+-	unsigned int mac_size;
++	SSL3_RECORD *rr;
++	unsigned int mac_size, orig_len;
+ 	unsigned char md[EVP_MAX_MD_SIZE];
+ 
+-
+ 	rr= &(s->s3->rrec);
+     sess = s->session;
+ 
+@@ -365,15 +362,18 @@ dtls1_process_record(SSL *s)
+ 
+ 	/* decrypt in place in 'rr->input' */
+ 	rr->data=rr->input;
++	orig_len=rr->length;
+ 
+ 	enc_err = s->method->ssl3_enc->enc(s,0);
+-	if (enc_err <= 0)
++	/* enc_err is:
++	 *    0: (in non-constant time) if the record is publically invalid.
++	 *    1: if the padding is valid
++	 *    -1: if the padding is invalid */
++	if (enc_err == 0)
+ 		{
+-		if (enc_err == 0)
+-			/* SSLerr() and ssl3_send_alert() have been called */
+-			goto err;
+-
+-		/* otherwise enc_err == -1 */
++		/* For DTLS we simply ignore bad packets. */
++		rr->length = 0;
++		s->packet_length = 0;
+ 		goto err;
+ 		}
+ 
+@@ -384,44 +384,66 @@ printf("\n");
+ #endif
+ 
+ 	/* r->length is now the compressed data plus mac */
+-if (	(sess == NULL) ||
+-		(s->enc_read_ctx == NULL) ||
+-		(s->read_hash == NULL))
+-    clear=1;
+-
+-	if (!clear)
++	if ((sess != NULL) &&
++	    (s->enc_read_ctx != NULL) &&
++	    (s->read_hash != NULL))
+ 		{
++		/* s->read_hash != NULL => mac_size != -1 */
++		unsigned char *mac = NULL;
++		unsigned char mac_tmp[EVP_MAX_MD_SIZE];
+ 		mac_size=EVP_MD_size(s->read_hash);
++		OPENSSL_assert(mac_size <= EVP_MAX_MD_SIZE);
+ 
+-		if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+mac_size)
++		/* orig_len is the length of the record before any padding was
++		 * removed. This is public information, as is the MAC in use,
++		 * therefore we can safely process the record in a different
++		 * amount of time if it's too short to possibly contain a MAC.
++		 */
++		if (orig_len < mac_size ||
++		    /* CBC records must have a padding length byte too. */
++		    (EVP_CIPHER_CTX_mode(s->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
++		     orig_len < mac_size+1))
+ 			{
+-#if 0 /* OK only for stream ciphers (then rr->length is visible from ciphertext anyway) */
+-			al=SSL_AD_RECORD_OVERFLOW;
+-			SSLerr(SSL_F_DTLS1_PROCESS_RECORD,SSL_R_PRE_MAC_LENGTH_TOO_LONG);
+-			goto f_err;
+-#else
+-			goto err;
+-#endif			
+-			}
+-		/* check the MAC for rr->input (it's in mac_size bytes at the tail) */
+-		if (rr->length < mac_size)
+-			{
+-#if 0 /* OK only for stream ciphers */
+ 			al=SSL_AD_DECODE_ERROR;
+ 			SSLerr(SSL_F_DTLS1_PROCESS_RECORD,SSL_R_LENGTH_TOO_SHORT);
+ 			goto f_err;
+-#else
+-			goto err;
+-#endif
+ 			}
+-		rr->length-=mac_size;
+-		s->method->ssl3_enc->mac(s,md,0);
+-		if (memcmp(md,&(rr->data[rr->length]),mac_size) != 0)
++
++		if (EVP_CIPHER_CTX_mode(s->enc_read_ctx) == EVP_CIPH_CBC_MODE)
+ 			{
+-			goto err;
++			/* We update the length so that the TLS header bytes
++			 * can be constructed correctly but we need to extract
++			 * the MAC in constant time from within the record,
++			 * without leaking the contents of the padding bytes.
++			 * */
++			mac = mac_tmp;
++			ssl3_cbc_copy_mac(mac_tmp, rr, mac_size, orig_len);
++			rr->length -= mac_size;
+ 			}
++		else
++			{
++			/* In this case there's no padding, so |orig_len|
++			 * equals |rec->length| and we checked that there's
++			 * enough bytes for |mac_size| above. */
++			rr->length -= mac_size;
++			mac = &rr->data[rr->length];
++			}
++
++		i=s->method->ssl3_enc->mac(s,md,0 /* not send */);
++		if (i < 0 || mac == NULL || CRYPTO_memcmp(md, mac, (size_t)mac_size) != 0)
++			enc_err = -1;
++		if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+mac_size)
++			enc_err = -1;
+ 		}
+ 
++	if (enc_err < 0)
++		{
++		/* decryption failed, silently discard message */
++		rr->length = 0;
++		s->packet_length = 0;
++		goto err;
++		}
++
+ 	/* r->length is now just compressed */
+ 	if (s->expand != NULL)
+ 		{
+@@ -615,10 +637,12 @@ again:
+ 
+ 	/* If this record is from the next epoch (either HM or ALERT),
+ 	 * and a handshake is currently in progress, buffer it since it
+-	 * cannot be processed at this time. */
++	 * cannot be processed at this time. However, do not buffer
++	 * anything while listening.
++	 */
+ 	if (is_next_epoch)
+ 		{
+-		if (SSL_in_init(s) || s->in_handshake)
++		if ((SSL_in_init(s) || s->in_handshake) && !s->d1->listen)
+ 			{
+ 			dtls1_buffer_record(s, &(s->d1->unprocessed_rcds), &rr->seq_num);
+ 			}
+@@ -634,7 +658,6 @@ again:
+ 		goto again;     /* get another record */
+ 		}
+ 
+-	dtls1_clear_timeouts(s);  /* done waiting */
+ 	return(1);
+ 
+ 	}
+@@ -1103,6 +1126,9 @@ start:
+ 		 */
+ 		if (msg_hdr.type == SSL3_MT_FINISHED)
+ 			{
++			if (dtls1_check_timeout_num(s) < 0)
++				return -1;
++
+ 			dtls1_retransmit_buffered_messages(s);
+ 			rr->length = 0;
+ 			goto start;
+@@ -1806,10 +1832,3 @@ bytes_to_long_long(unsigned char *bytes, PQ_64BIT
+        return _num;
+        }
+ #endif
+-
+-
+-static void
+-dtls1_clear_timeouts(SSL *s)
+-	{
+-	memset(&(s->d1->timeout), 0x00, sizeof(struct dtls1_timeout_st));
+-	}
+Index: crypto/openssl/ssl/d1_srvr.c
+===================================================================
+--- crypto/openssl/ssl/d1_srvr.c	(revision 248771)
++++ crypto/openssl/ssl/d1_srvr.c	(working copy)
+@@ -148,6 +148,7 @@ int dtls1_accept(SSL *s)
+ 	void (*cb)(const SSL *ssl,int type,int val)=NULL;
+ 	int ret= -1;
+ 	int new_state,state,skip=0;
++	int listen;
+ 
+ 	RAND_add(&Time,sizeof(Time),0);
+ 	ERR_clear_error();
+@@ -157,11 +158,15 @@ int dtls1_accept(SSL *s)
+ 		cb=s->info_callback;
+ 	else if (s->ctx->info_callback != NULL)
+ 		cb=s->ctx->info_callback;
++	
++	listen = s->d1->listen;
+ 
+ 	/* init things to blank */
+ 	s->in_handshake++;
+ 	if (!SSL_in_init(s) || SSL_in_before(s)) SSL_clear(s);
+ 
++	s->d1->listen = listen;
++
+ 	if (s->cert == NULL)
+ 		{
+ 		SSLerr(SSL_F_DTLS1_ACCEPT,SSL_R_NO_CERTIFICATE_SET);
+@@ -271,11 +276,23 @@ int dtls1_accept(SSL *s)
+ 
+ 			s->init_num=0;
+ 
++			/* Reflect ClientHello sequence to remain stateless while listening */
++			if (listen)
++				{
++				memcpy(s->s3->write_sequence, s->s3->read_sequence, sizeof(s->s3->write_sequence));
++				}
++
+ 			/* If we're just listening, stop here */
+-			if (s->d1->listen && s->state == SSL3_ST_SW_SRVR_HELLO_A)
++			if (listen && s->state == SSL3_ST_SW_SRVR_HELLO_A)
+ 				{
+ 				ret = 2;
+ 				s->d1->listen = 0;
++				/* Set expected sequence numbers
++				 * to continue the handshake.
++				 */
++				s->d1->handshake_read_seq = 2;
++				s->d1->handshake_write_seq = 1;
++				s->d1->next_handshake_write_seq = 1;
+ 				goto end;
+ 				}
+ 			
+@@ -284,7 +301,6 @@ int dtls1_accept(SSL *s)
+ 		case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A:
+ 		case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B:
+ 
+-			dtls1_start_timer(s);
+ 			ret = dtls1_send_hello_verify_request(s);
+ 			if ( ret <= 0) goto end;
+ 			s->state=SSL3_ST_SW_FLUSH;
+@@ -457,15 +473,16 @@ int dtls1_accept(SSL *s)
+ 			ret = ssl3_check_client_hello(s);
+ 			if (ret <= 0)
+ 				goto end;
+-			dtls1_stop_timer(s);
+ 			if (ret == 2)
++				{
++				dtls1_stop_timer(s);
+ 				s->state = SSL3_ST_SR_CLNT_HELLO_C;
++				}
+ 			else {
+ 				/* could be sent for a DH cert, even if we
+ 				 * have not asked for it :-) */
+ 				ret=ssl3_get_client_certificate(s);
+ 				if (ret <= 0) goto end;
+-				dtls1_stop_timer(s);
+ 				s->init_num=0;
+ 				s->state=SSL3_ST_SR_KEY_EXCH_A;
+ 			}
+@@ -475,7 +492,6 @@ int dtls1_accept(SSL *s)
+ 		case SSL3_ST_SR_KEY_EXCH_B:
+ 			ret=ssl3_get_client_key_exchange(s);
+ 			if (ret <= 0) goto end;
+-			dtls1_stop_timer(s);
+ 			s->state=SSL3_ST_SR_CERT_VRFY_A;
+ 			s->init_num=0;
+ 
+@@ -497,7 +513,6 @@ int dtls1_accept(SSL *s)
+ 			/* we should decide if we expected this one */
+ 			ret=ssl3_get_cert_verify(s);
+ 			if (ret <= 0) goto end;
+-			dtls1_stop_timer(s);
+ 
+ 			s->state=SSL3_ST_SR_FINISHED_A;
+ 			s->init_num=0;
+@@ -713,9 +728,6 @@ int dtls1_send_hello_verify_request(SSL *s)
+ 		/* number of bytes to write */
+ 		s->init_num=p-buf;
+ 		s->init_off=0;
+-
+-		/* buffer the message to handle re-xmits */
+-		dtls1_buffer_message(s, 0);
+ 		}
+ 
+ 	/* s->state = DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B */
+@@ -736,7 +748,7 @@ int dtls1_send_server_hello(SSL *s)
+ 		p=s->s3->server_random;
+ 		Time=(unsigned long)time(NULL);			/* Time */
+ 		l2n(Time,p);
+-		RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-sizeof(Time));
++		RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE-4);
+ 		/* Do the message type and length last */
+ 		d=p= &(buf[DTLS1_HM_HEADER_LENGTH]);
+ 
+Index: crypto/openssl/ssl/s2_clnt.c
+===================================================================
+--- crypto/openssl/ssl/s2_clnt.c	(revision 248771)
++++ crypto/openssl/ssl/s2_clnt.c	(working copy)
+@@ -935,7 +935,7 @@ static int get_server_verify(SSL *s)
+ 		s->msg_callback(0, s->version, 0, p, len, s, s->msg_callback_arg); /* SERVER-VERIFY */
+ 	p += 1;
+ 
+-	if (memcmp(p,s->s2->challenge,s->s2->challenge_length) != 0)
++	if (CRYPTO_memcmp(p,s->s2->challenge,s->s2->challenge_length) != 0)
+ 		{
+ 		ssl2_return_error(s,SSL2_PE_UNDEFINED_ERROR);
+ 		SSLerr(SSL_F_GET_SERVER_VERIFY,SSL_R_CHALLENGE_IS_DIFFERENT);
+Index: crypto/openssl/ssl/s2_pkt.c
+===================================================================
+--- crypto/openssl/ssl/s2_pkt.c	(revision 248771)
++++ crypto/openssl/ssl/s2_pkt.c	(working copy)
+@@ -267,8 +267,7 @@ static int ssl2_read_internal(SSL *s, void *buf, i
+ 			s->s2->ract_data_length-=mac_size;
+ 			ssl2_mac(s,mac,0);
+ 			s->s2->ract_data_length-=s->s2->padding;
+-			if (	(memcmp(mac,s->s2->mac_data,
+-				(unsigned int)mac_size) != 0) ||
++			if (	(CRYPTO_memcmp(mac,s->s2->mac_data,mac_size) != 0) ||
+ 				(s->s2->rlength%EVP_CIPHER_CTX_block_size(s->enc_read_ctx) != 0))
+ 				{
+ 				SSLerr(SSL_F_SSL2_READ_INTERNAL,SSL_R_BAD_MAC_DECODE);
+Index: crypto/openssl/ssl/s2_srvr.c
+===================================================================
+--- crypto/openssl/ssl/s2_srvr.c	(revision 248771)
++++ crypto/openssl/ssl/s2_srvr.c	(working copy)
+@@ -403,13 +403,14 @@ static int get_client_master_key(SSL *s)
+ 		p+=3;
+ 		n2s(p,i); s->s2->tmp.clear=i;
+ 		n2s(p,i); s->s2->tmp.enc=i;
+-		n2s(p,i); s->session->key_arg_length=i;
+-		if(s->session->key_arg_length > SSL_MAX_KEY_ARG_LENGTH)
++		n2s(p,i);
++		if(i > SSL_MAX_KEY_ARG_LENGTH)
+ 			{
+ 			ssl2_return_error(s,SSL2_PE_UNDEFINED_ERROR);
+ 			SSLerr(SSL_F_GET_CLIENT_MASTER_KEY, SSL_R_KEY_ARG_TOO_LONG);
+ 			return -1;
+ 			}
++		s->session->key_arg_length=i;
+ 		s->state=SSL2_ST_GET_CLIENT_MASTER_KEY_B;
+ 		}
+ 
+Index: crypto/openssl/ssl/s3_both.c
+===================================================================
+--- crypto/openssl/ssl/s3_both.c	(revision 248771)
++++ crypto/openssl/ssl/s3_both.c	(working copy)
+@@ -242,7 +242,7 @@ int ssl3_get_finished(SSL *s, int a, int b)
+ 		goto f_err;
+ 		}
+ 
+-	if (memcmp(p, s->s3->tmp.peer_finish_md, i) != 0)
++	if (CRYPTO_memcmp(p, s->s3->tmp.peer_finish_md, i) != 0)
+ 		{
+ 		al=SSL_AD_DECRYPT_ERROR;
+ 		SSLerr(SSL_F_SSL3_GET_FINISHED,SSL_R_DIGEST_CHECK_FAILED);
+Index: crypto/openssl/ssl/s3_cbc.c
+===================================================================
+--- crypto/openssl/ssl/s3_cbc.c	(revision 0)
++++ crypto/openssl/ssl/s3_cbc.c	(working copy)
+@@ -0,0 +1,762 @@
++/* ssl/s3_cbc.c */
++/* ====================================================================
++ * Copyright (c) 2012 The OpenSSL Project.  All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions and the following disclaimer.
++ *
++ * 2. Redistributions in binary form must reproduce the above copyright
++ *    notice, this list of conditions and the following disclaimer in
++ *    the documentation and/or other materials provided with the
++ *    distribution.
++ *
++ * 3. All advertising materials mentioning features or use of this
++ *    software must display the following acknowledgment:
++ *    "This product includes software developed by the OpenSSL Project
++ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
++ *
++ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
++ *    endorse or promote products derived from this software without
++ *    prior written permission. For written permission, please contact
++ *    openssl-core@openssl.org.
++ *
++ * 5. Products derived from this software may not be called "OpenSSL"
++ *    nor may "OpenSSL" appear in their names without prior written
++ *    permission of the OpenSSL Project.
++ *
++ * 6. Redistributions of any form whatsoever must retain the following
++ *    acknowledgment:
++ *    "This product includes software developed by the OpenSSL Project
++ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
++ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
++ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ * ====================================================================
++ *
++ * This product includes cryptographic software written by Eric Young
++ * (eay@cryptsoft.com).  This product includes software written by Tim
++ * Hudson (tjh@cryptsoft.com).
++ *
++ */
++
++#include "ssl_locl.h"
++
++#include <openssl/md5.h>
++#include <openssl/sha.h>
++
++/* MAX_HASH_BIT_COUNT_BYTES is the maximum number of bytes in the hash's length
++ * field. (SHA-384/512 have 128-bit length.) */
++#define MAX_HASH_BIT_COUNT_BYTES 16
++
++/* MAX_HASH_BLOCK_SIZE is the maximum hash block size that we'll support.
++ * Currently SHA-384/512 has a 128-byte block size and that's the largest
++ * supported by TLS.) */
++#define MAX_HASH_BLOCK_SIZE 128
++
++/* Some utility functions are needed:
++ *
++ * These macros return the given value with the MSB copied to all the other
++ * bits. They use the fact that arithmetic shift shifts-in the sign bit.
++ * However, this is not ensured by the C standard so you may need to replace
++ * them with something else on odd CPUs. */
++#define DUPLICATE_MSB_TO_ALL(x) ( (unsigned)( (int)(x) >> (sizeof(int)*8-1) ) )
++#define DUPLICATE_MSB_TO_ALL_8(x) ((unsigned char)(DUPLICATE_MSB_TO_ALL(x)))
++
++/* constant_time_ge returns 0xff if a>=b and 0x00 otherwise. */
++static unsigned constant_time_ge(unsigned a, unsigned b)
++	{
++	a -= b;
++	return DUPLICATE_MSB_TO_ALL(~a);
++	}
++
++/* constant_time_eq_8 returns 0xff if a==b and 0x00 otherwise. */
++static unsigned char constant_time_eq_8(unsigned char a, unsigned char b)
++	{
++	unsigned c = a ^ b;
++	c--;
++	return DUPLICATE_MSB_TO_ALL_8(c);
++	}
++
++/* ssl3_cbc_remove_padding removes padding from the decrypted, SSLv3, CBC
++ * record in |rec| by updating |rec->length| in constant time.
++ *
++ * block_size: the block size of the cipher used to encrypt the record.
++ * returns:
++ *   0: (in non-constant time) if the record is publicly invalid.
++ *   1: if the padding was valid
++ *  -1: otherwise. */
++int ssl3_cbc_remove_padding(const SSL* s,
++			    SSL3_RECORD *rec,
++			    unsigned block_size,
++			    unsigned mac_size)
++	{
++	unsigned padding_length, good;
++	const unsigned overhead = 1 /* padding length byte */ + mac_size;
++
++	/* These lengths are all public so we can test them in non-constant
++	 * time. */
++	if (overhead > rec->length)
++		return 0;
++
++	padding_length = rec->data[rec->length-1];
++	good = constant_time_ge(rec->length, padding_length+overhead);
++	/* SSLv3 requires that the padding is minimal. */
++	good &= constant_time_ge(block_size, padding_length+1);
++	padding_length = good & (padding_length+1);
++	rec->length -= padding_length;
++	rec->type |= padding_length<<8;	/* kludge: pass padding length */
++	return (int)((good & 1) | (~good & -1));
++}
++
++/* tls1_cbc_remove_padding removes the CBC padding from the decrypted, TLS, CBC
++ * record in |rec| in constant time and returns 1 if the padding is valid and
++ * -1 otherwise. It also removes any explicit IV from the start of the record
++ * without leaking any timing about whether there was enough space after the
++ * padding was removed.
++ *
++ * block_size: the block size of the cipher used to encrypt the record.
++ * returns:
++ *   0: (in non-constant time) if the record is publicly invalid.
++ *   1: if the padding was valid
++ *  -1: otherwise. */
++int tls1_cbc_remove_padding(const SSL* s,
++			    SSL3_RECORD *rec,
++			    unsigned block_size,
++			    unsigned mac_size)
++	{
++	unsigned padding_length, good, to_check, i;
++	const char has_explicit_iv = s->version == DTLS1_VERSION;
++	const unsigned overhead = 1 /* padding length byte */ +
++				  mac_size +
++				  (has_explicit_iv ? block_size : 0);
++
++	/* These lengths are all public so we can test them in non-constant
++	 * time. */
++	if (overhead > rec->length)
++		return 0;
++
++	padding_length = rec->data[rec->length-1];
++
++	/* NB: if compression is in operation the first packet may not be of
++	 * even length so the padding bug check cannot be performed. This bug
++	 * workaround has been around since SSLeay so hopefully it is either
++	 * fixed now or no buggy implementation supports compression [steve]
++	 */
++	if ( (s->options&SSL_OP_TLS_BLOCK_PADDING_BUG) && !s->expand)
++		{
++		/* First packet is even in size, so check */
++		if ((memcmp(s->s3->read_sequence, "\0\0\0\0\0\0\0\0",8) == 0) &&
++		    !(padding_length & 1))
++			{
++			s->s3->flags|=TLS1_FLAGS_TLS_PADDING_BUG;
++			}
++		if ((s->s3->flags & TLS1_FLAGS_TLS_PADDING_BUG) &&
++		    padding_length > 0)
++			{
++			padding_length--;
++			}
++		}
++
++	good = constant_time_ge(rec->length, overhead+padding_length);
++	/* The padding consists of a length byte at the end of the record and
++	 * then that many bytes of padding, all with the same value as the
++	 * length byte. Thus, with the length byte included, there are i+1
++	 * bytes of padding.
++	 *
++	 * We can't check just |padding_length+1| bytes because that leaks
++	 * decrypted information. Therefore we always have to check the maximum
++	 * amount of padding possible. (Again, the length of the record is
++	 * public information so we can use it.) */
++	to_check = 255; /* maximum amount of padding. */
++	if (to_check > rec->length-1)
++		to_check = rec->length-1;
++
++	for (i = 0; i < to_check; i++)
++		{
++		unsigned char mask = constant_time_ge(padding_length, i);
++		unsigned char b = rec->data[rec->length-1-i];
++		/* The final |padding_length+1| bytes should all have the value
++		 * |padding_length|. Therefore the XOR should be zero. */
++		good &= ~(mask&(padding_length ^ b));
++		}
++
++	/* If any of the final |padding_length+1| bytes had the wrong value,
++	 * one or more of the lower eight bits of |good| will be cleared. We
++	 * AND the bottom 8 bits together and duplicate the result to all the
++	 * bits. */
++	good &= good >> 4;
++	good &= good >> 2;
++	good &= good >> 1;
++	good <<= sizeof(good)*8-1;
++	good = DUPLICATE_MSB_TO_ALL(good);
++
++	padding_length = good & (padding_length+1);
++	rec->length -= padding_length;
++	rec->type |= padding_length<<8;	/* kludge: pass padding length */
++
++	/* We can always safely skip the explicit IV. We check at the beginning
++	 * of this function that the record has at least enough space for the
++	 * IV, MAC and padding length byte. (These can be checked in
++	 * non-constant time because it's all public information.) So, if the
++	 * padding was invalid, then we didn't change |rec->length| and this is
++	 * safe. If the padding was valid then we know that we have at least
++	 * overhead+padding_length bytes of space and so this is still safe
++	 * because overhead accounts for the explicit IV. */
++	if (has_explicit_iv)
++		{
++		rec->data += block_size;
++		rec->input += block_size;
++		rec->length -= block_size;
++		}
++
++	return (int)((good & 1) | (~good & -1));
++	}
++
++#if defined(_M_AMD64) || defined(__x86_64__)
++#define CBC_MAC_ROTATE_IN_PLACE
++#endif
++
++/* ssl3_cbc_copy_mac copies |md_size| bytes from the end of |rec| to |out| in
++ * constant time (independent of the concrete value of rec->length, which may
++ * vary within a 256-byte window).
++ *
++ * ssl3_cbc_remove_padding or tls1_cbc_remove_padding must be called prior to
++ * this function.
++ *
++ * On entry:
++ *   rec->orig_len >= md_size
++ *   md_size <= EVP_MAX_MD_SIZE
++ *
++ * If CBC_MAC_ROTATE_IN_PLACE is defined then the rotation is performed with
++ * variable accesses in a 64-byte-aligned buffer. Assuming that this fits into
++ * a single cache-line, then the variable memory accesses don't actually affect
++ * the timing. This has been tested to be true on Intel amd64 chips.
++ */
++void ssl3_cbc_copy_mac(unsigned char* out,
++		       const SSL3_RECORD *rec,
++		       unsigned md_size,unsigned orig_len)
++	{
++#if defined(CBC_MAC_ROTATE_IN_PLACE)
++	unsigned char rotated_mac_buf[EVP_MAX_MD_SIZE*2];
++	unsigned char *rotated_mac;
++#else
++	unsigned char rotated_mac[EVP_MAX_MD_SIZE];
++#endif
++
++	/* mac_end is the index of |rec->data| just after the end of the MAC. */
++	unsigned mac_end = rec->length;
++	unsigned mac_start = mac_end - md_size;
++	/* scan_start contains the number of bytes that we can ignore because
++	 * the MAC's position can only vary by 255 bytes. */
++	unsigned scan_start = 0;
++	unsigned i, j;
++	unsigned div_spoiler;
++	unsigned rotate_offset;
++
++	OPENSSL_assert(orig_len >= md_size);
++	OPENSSL_assert(md_size <= EVP_MAX_MD_SIZE);
++
++#if defined(CBC_MAC_ROTATE_IN_PLACE)
++	rotated_mac = (unsigned char*) (((intptr_t)(rotated_mac_buf + 64)) & ~63);
++#endif
++
++	/* This information is public so it's safe to branch based on it. */
++	if (orig_len > md_size + 255 + 1)
++		scan_start = orig_len - (md_size + 255 + 1);
++	/* div_spoiler contains a multiple of md_size that is used to cause the
++	 * modulo operation to be constant time. Without this, the time varies
++	 * based on the amount of padding when running on Intel chips at least.
++	 *
++	 * The aim of right-shifting md_size is so that the compiler doesn't
++	 * figure out that it can remove div_spoiler as that would require it
++	 * to prove that md_size is always even, which I hope is beyond it. */
++	div_spoiler = md_size >> 1;
++	div_spoiler <<= (sizeof(div_spoiler)-1)*8;
++	rotate_offset = (div_spoiler + mac_start - scan_start) % md_size;
++
++	memset(rotated_mac, 0, md_size);
++	for (i = scan_start; i < orig_len;)
++		{
++		for (j = 0; j < md_size && i < orig_len; i++, j++)
++			{
++			unsigned char mac_started = constant_time_ge(i, mac_start);
++			unsigned char mac_ended = constant_time_ge(i, mac_end);
++			unsigned char b = 0;
++			b = rec->data[i];
++			rotated_mac[j] |= b & mac_started & ~mac_ended;
++			}
++		}
++
++	/* Now rotate the MAC */
++#if defined(CBC_MAC_ROTATE_IN_PLACE)
++	j = 0;
++	for (i = 0; i < md_size; i++)
++		{
++		unsigned char offset = (div_spoiler + rotate_offset + i) % md_size;
++		out[j++] = rotated_mac[offset];
++		}
++#else
++	memset(out, 0, md_size);
++	for (i = 0; i < md_size; i++)
++		{
++		unsigned char offset = (div_spoiler + md_size - rotate_offset + i) % md_size;
++		for (j = 0; j < md_size; j++)
++			out[j] |= rotated_mac[i] & constant_time_eq_8(j, offset);
++		}
++#endif
++	}
++
++/* These functions serialize the state of a hash and thus perform the standard
++ * "final" operation without adding the padding and length that such a function
++ * typically does. */
++static void tls1_md5_final_raw(void* ctx, unsigned char *md_out)
++	{
++	MD5_CTX *md5 = ctx;
++	l2n(md5->A, md_out);
++	l2n(md5->B, md_out);
++	l2n(md5->C, md_out);
++	l2n(md5->D, md_out);
++	}
++
++static void tls1_sha1_final_raw(void* ctx, unsigned char *md_out)
++	{
++	SHA_CTX *sha1 = ctx;
++	l2n(sha1->h0, md_out);
++	l2n(sha1->h1, md_out);
++	l2n(sha1->h2, md_out);
++	l2n(sha1->h3, md_out);
++	l2n(sha1->h4, md_out);
++	}
++#define LARGEST_DIGEST_CTX SHA_CTX
++
++#ifndef OPENSSL_NO_SHA256
++static void tls1_sha256_final_raw(void* ctx, unsigned char *md_out)
++	{
++	SHA256_CTX *sha256 = ctx;
++	unsigned i;
++
++	for (i = 0; i < 8; i++)
++		{
++		l2n(sha256->h[i], md_out);
++		}
++	}
++#undef  LARGEST_DIGEST_CTX
++#define LARGEST_DIGEST_CTX SHA256_CTX
++#endif
++
++#ifndef OPENSSL_NO_SHA512
++static void tls1_sha512_final_raw(void* ctx, unsigned char *md_out)
++	{
++	SHA512_CTX *sha512 = ctx;
++	unsigned i;
++
++	for (i = 0; i < 8; i++)
++		{
++		l2n8(sha512->h[i], md_out);
++		}
++	}
++#undef  LARGEST_DIGEST_CTX
++#define LARGEST_DIGEST_CTX SHA512_CTX
++#endif
++
++/* ssl3_cbc_record_digest_supported returns 1 iff |ctx| uses a hash function
++ * which ssl3_cbc_digest_record supports. */
++char ssl3_cbc_record_digest_supported(const EVP_MD *digest)
++	{
++#ifdef OPENSSL_FIPS
++	if (FIPS_mode())
++		return 0;
++#endif
++	switch (EVP_MD_type(digest))
++		{
++		case NID_md5:
++		case NID_sha1:
++#ifndef OPENSSL_NO_SHA256
++		case NID_sha224:
++		case NID_sha256:
++#endif
++#ifndef OPENSSL_NO_SHA512
++		case NID_sha384:
++		case NID_sha512:
++#endif
++			return 1;
++		default:
++			return 0;
++		}
++	}
++
++/* ssl3_cbc_digest_record computes the MAC of a decrypted, padded SSLv3/TLS
++ * record.
++ *
++ *   ctx: the EVP_MD_CTX from which we take the hash function.
++ *     ssl3_cbc_record_digest_supported must return true for this EVP_MD_CTX.
++ *   md_out: the digest output. At most EVP_MAX_MD_SIZE bytes will be written.
++ *   md_out_size: if non-NULL, the number of output bytes is written here.
++ *   header: the 13-byte, TLS record header.
++ *   data: the record data itself, less any preceeding explicit IV.
++ *   data_plus_mac_size: the secret, reported length of the data and MAC
++ *     once the padding has been removed.
++ *   data_plus_mac_plus_padding_size: the public length of the whole
++ *     record, including padding.
++ *   is_sslv3: non-zero if we are to use SSLv3. Otherwise, TLS.
++ *
++ * On entry: by virtue of having been through one of the remove_padding
++ * functions, above, we know that data_plus_mac_size is large enough to contain
++ * a padding byte and MAC. (If the padding was invalid, it might contain the
++ * padding too. ) */
++void ssl3_cbc_digest_record(
++	const EVP_MD *digest,
++	unsigned char* md_out,
++	size_t* md_out_size,
++	const unsigned char header[13],
++	const unsigned char *data,
++	size_t data_plus_mac_size,
++	size_t data_plus_mac_plus_padding_size,
++	const unsigned char *mac_secret,
++	unsigned mac_secret_length,
++	char is_sslv3)
++	{
++	union {	double align;
++		unsigned char c[sizeof(LARGEST_DIGEST_CTX)]; } md_state;
++	void (*md_final_raw)(void *ctx, unsigned char *md_out);
++	void (*md_transform)(void *ctx, const unsigned char *block);
++	unsigned md_size, md_block_size = 64;
++	unsigned sslv3_pad_length = 40, header_length, variance_blocks,
++		 len, max_mac_bytes, num_blocks,
++		 num_starting_blocks, k, mac_end_offset, c, index_a, index_b;
++	unsigned int bits;	/* at most 18 bits */
++	unsigned char length_bytes[MAX_HASH_BIT_COUNT_BYTES];
++	/* hmac_pad is the masked HMAC key. */
++	unsigned char hmac_pad[MAX_HASH_BLOCK_SIZE];
++	unsigned char first_block[MAX_HASH_BLOCK_SIZE];
++	unsigned char mac_out[EVP_MAX_MD_SIZE];
++	unsigned i, j, md_out_size_u;
++	EVP_MD_CTX md_ctx;
++	/* mdLengthSize is the number of bytes in the length field that terminates
++	* the hash. */
++	unsigned md_length_size = 8;
++
++	/* This is a, hopefully redundant, check that allows us to forget about
++	 * many possible overflows later in this function. */
++	OPENSSL_assert(data_plus_mac_plus_padding_size < 1024*1024);
++
++	switch (EVP_MD_type(digest))
++		{
++		case NID_md5:
++			MD5_Init((MD5_CTX*)md_state.c);
++			md_final_raw = tls1_md5_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) MD5_Transform;
++			md_size = 16;
++			sslv3_pad_length = 48;
++			break;
++		case NID_sha1:
++			SHA1_Init((SHA_CTX*)md_state.c);
++			md_final_raw = tls1_sha1_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA1_Transform;
++			md_size = 20;
++			break;
++#ifndef OPENSSL_NO_SHA256
++		case NID_sha224:
++			SHA224_Init((SHA256_CTX*)md_state.c);
++			md_final_raw = tls1_sha256_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA256_Transform;
++			md_size = 224/8;
++			break;
++		case NID_sha256:
++			SHA256_Init((SHA256_CTX*)md_state.c);
++			md_final_raw = tls1_sha256_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA256_Transform;
++			md_size = 32;
++			break;
++#endif
++#ifndef OPENSSL_NO_SHA512
++		case NID_sha384:
++			SHA384_Init((SHA512_CTX*)md_state.c);
++			md_final_raw = tls1_sha512_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA512_Transform;
++			md_size = 384/8;
++			md_block_size = 128;
++			md_length_size = 16;
++			break;
++		case NID_sha512:
++			SHA512_Init((SHA512_CTX*)md_state.c);
++			md_final_raw = tls1_sha512_final_raw;
++			md_transform = (void(*)(void *ctx, const unsigned char *block)) SHA512_Transform;
++			md_size = 64;
++			md_block_size = 128;
++			md_length_size = 16;
++			break;
++#endif
++		default:
++			/* ssl3_cbc_record_digest_supported should have been
++			 * called first to check that the hash function is
++			 * supported. */
++			OPENSSL_assert(0);
++			if (md_out_size)
++				*md_out_size = -1;
++			return;
++		}
++
++	OPENSSL_assert(md_length_size <= MAX_HASH_BIT_COUNT_BYTES);
++	OPENSSL_assert(md_block_size <= MAX_HASH_BLOCK_SIZE);
++	OPENSSL_assert(md_size <= EVP_MAX_MD_SIZE);
++
++	header_length = 13;
++	if (is_sslv3)
++		{
++		header_length =
++			mac_secret_length +
++			sslv3_pad_length +
++			8 /* sequence number */ +
++			1 /* record type */ +
++			2 /* record length */;
++		}
++
++	/* variance_blocks is the number of blocks of the hash that we have to
++	 * calculate in constant time because they could be altered by the
++	 * padding value.
++	 *
++	 * In SSLv3, the padding must be minimal so the end of the plaintext
++	 * varies by, at most, 15+20 = 35 bytes. (We conservatively assume that
++	 * the MAC size varies from 0..20 bytes.) In case the 9 bytes of hash
++	 * termination (0x80 + 64-bit length) don't fit in the final block, we
++	 * say that the final two blocks can vary based on the padding.
++	 *
++	 * TLSv1 has MACs up to 48 bytes long (SHA-384) and the padding is not
++	 * required to be minimal. Therefore we say that the final six blocks
++	 * can vary based on the padding.
++	 *
++	 * Later in the function, if the message is short and there obviously
++	 * cannot be this many blocks then variance_blocks can be reduced. */
++	variance_blocks = is_sslv3 ? 2 : 6;
++	/* From now on we're dealing with the MAC, which conceptually has 13
++	 * bytes of `header' before the start of the data (TLS) or 71/75 bytes
++	 * (SSLv3) */
++	len = data_plus_mac_plus_padding_size + header_length;
++	/* max_mac_bytes contains the maximum bytes of bytes in the MAC, including
++	* |header|, assuming that there's no padding. */
++	max_mac_bytes = len - md_size - 1;
++	/* num_blocks is the maximum number of hash blocks. */
++	num_blocks = (max_mac_bytes + 1 + md_length_size + md_block_size - 1) / md_block_size;
++	/* In order to calculate the MAC in constant time we have to handle
++	 * the final blocks specially because the padding value could cause the
++	 * end to appear somewhere in the final |variance_blocks| blocks and we
++	 * can't leak where. However, |num_starting_blocks| worth of data can
++	 * be hashed right away because no padding value can affect whether
++	 * they are plaintext. */
++	num_starting_blocks = 0;
++	/* k is the starting byte offset into the conceptual header||data where
++	 * we start processing. */
++	k = 0;
++	/* mac_end_offset is the index just past the end of the data to be
++	 * MACed. */
++	mac_end_offset = data_plus_mac_size + header_length - md_size;
++	/* c is the index of the 0x80 byte in the final hash block that
++	 * contains application data. */
++	c = mac_end_offset % md_block_size;
++	/* index_a is the hash block number that contains the 0x80 terminating
++	 * value. */
++	index_a = mac_end_offset / md_block_size;
++	/* index_b is the hash block number that contains the 64-bit hash
++	 * length, in bits. */
++	index_b = (mac_end_offset + md_length_size) / md_block_size;
++	/* bits is the hash-length in bits. It includes the additional hash
++	 * block for the masked HMAC key, or whole of |header| in the case of
++	 * SSLv3. */
++
++	/* For SSLv3, if we're going to have any starting blocks then we need
++	 * at least two because the header is larger than a single block. */
++	if (num_blocks > variance_blocks + (is_sslv3 ? 1 : 0))
++		{
++		num_starting_blocks = num_blocks - variance_blocks;
++		k = md_block_size*num_starting_blocks;
++		}
++
++	bits = 8*mac_end_offset;
++	if (!is_sslv3)
++		{
++		/* Compute the initial HMAC block. For SSLv3, the padding and
++		 * secret bytes are included in |header| because they take more
++		 * than a single block. */
++		bits += 8*md_block_size;
++		memset(hmac_pad, 0, md_block_size);
++		OPENSSL_assert(mac_secret_length <= sizeof(hmac_pad));
++		memcpy(hmac_pad, mac_secret, mac_secret_length);
++		for (i = 0; i < md_block_size; i++)
++			hmac_pad[i] ^= 0x36;
++
++		md_transform(md_state.c, hmac_pad);
++		}
++
++	memset(length_bytes,0,md_length_size-4);
++	length_bytes[md_length_size-4] = (unsigned char)(bits>>24);
++	length_bytes[md_length_size-3] = (unsigned char)(bits>>16);
++	length_bytes[md_length_size-2] = (unsigned char)(bits>>8);
++	length_bytes[md_length_size-1] = (unsigned char)bits;
++
++	if (k > 0)
++		{
++		if (is_sslv3)
++			{
++			/* The SSLv3 header is larger than a single block.
++			 * overhang is the number of bytes beyond a single
++			 * block that the header consumes: either 7 bytes
++			 * (SHA1) or 11 bytes (MD5). */
++			unsigned overhang = header_length-md_block_size;
++			md_transform(md_state.c, header);
++			memcpy(first_block, header + md_block_size, overhang);
++			memcpy(first_block + overhang, data, md_block_size-overhang);
++			md_transform(md_state.c, first_block);
++			for (i = 1; i < k/md_block_size - 1; i++)
++				md_transform(md_state.c, data + md_block_size*i - overhang);
++			}
++		else
++			{
++			/* k is a multiple of md_block_size. */
++			memcpy(first_block, header, 13);
++			memcpy(first_block+13, data, md_block_size-13);
++			md_transform(md_state.c, first_block);
++			for (i = 1; i < k/md_block_size; i++)
++				md_transform(md_state.c, data + md_block_size*i - 13);
++			}
++		}
++
++	memset(mac_out, 0, sizeof(mac_out));
++
++	/* We now process the final hash blocks. For each block, we construct
++	 * it in constant time. If the |i==index_a| then we'll include the 0x80
++	 * bytes and zero pad etc. For each block we selectively copy it, in
++	 * constant time, to |mac_out|. */
++	for (i = num_starting_blocks; i <= num_starting_blocks+variance_blocks; i++)
++		{
++		unsigned char block[MAX_HASH_BLOCK_SIZE];
++		unsigned char is_block_a = constant_time_eq_8(i, index_a);
++		unsigned char is_block_b = constant_time_eq_8(i, index_b);
++		for (j = 0; j < md_block_size; j++)
++			{
++			unsigned char b = 0, is_past_c, is_past_cp1;
++			if (k < header_length)
++				b = header[k];
++			else if (k < data_plus_mac_plus_padding_size + header_length)
++				b = data[k-header_length];
++			k++;
++
++			is_past_c = is_block_a & constant_time_ge(j, c);
++			is_past_cp1 = is_block_a & constant_time_ge(j, c+1);
++			/* If this is the block containing the end of the
++			 * application data, and we are at the offset for the
++			 * 0x80 value, then overwrite b with 0x80. */
++			b = (b&~is_past_c) | (0x80&is_past_c);
++			/* If this the the block containing the end of the
++			 * application data and we're past the 0x80 value then
++			 * just write zero. */
++			b = b&~is_past_cp1;
++			/* If this is index_b (the final block), but not
++			 * index_a (the end of the data), then the 64-bit
++			 * length didn't fit into index_a and we're having to
++			 * add an extra block of zeros. */
++			b &= ~is_block_b | is_block_a;
++
++			/* The final bytes of one of the blocks contains the
++			 * length. */
++			if (j >= md_block_size - md_length_size)
++				{
++				/* If this is index_b, write a length byte. */
++				b = (b&~is_block_b) | (is_block_b&length_bytes[j-(md_block_size-md_length_size)]);
++				}
++			block[j] = b;
++			}
++
++		md_transform(md_state.c, block);
++		md_final_raw(md_state.c, block);
++		/* If this is index_b, copy the hash value to |mac_out|. */
++		for (j = 0; j < md_size; j++)
++			mac_out[j] |= block[j]&is_block_b;
++		}
++
++	EVP_MD_CTX_init(&md_ctx);
++	EVP_DigestInit_ex(&md_ctx, digest, NULL /* engine */);
++	if (is_sslv3)
++		{
++		/* We repurpose |hmac_pad| to contain the SSLv3 pad2 block. */
++		memset(hmac_pad, 0x5c, sslv3_pad_length);
++
++		EVP_DigestUpdate(&md_ctx, mac_secret, mac_secret_length);
++		EVP_DigestUpdate(&md_ctx, hmac_pad, sslv3_pad_length);
++		EVP_DigestUpdate(&md_ctx, mac_out, md_size);
++		}
++	else
++		{
++		/* Complete the HMAC in the standard manner. */
++		for (i = 0; i < md_block_size; i++)
++			hmac_pad[i] ^= 0x6a;
++
++		EVP_DigestUpdate(&md_ctx, hmac_pad, md_block_size);
++		EVP_DigestUpdate(&md_ctx, mac_out, md_size);
++		}
++	EVP_DigestFinal(&md_ctx, md_out, &md_out_size_u);
++	if (md_out_size)
++		*md_out_size = md_out_size_u;
++	EVP_MD_CTX_cleanup(&md_ctx);
++	}
++
++#ifdef OPENSSL_FIPS
++
++/* Due to the need to use EVP in FIPS mode we can't reimplement digests but
++ * we can ensure the number of blocks processed is equal for all cases
++ * by digesting additional data.
++ */
++
++void tls_fips_digest_extra(
++	const EVP_CIPHER_CTX *cipher_ctx, const EVP_MD *hash, HMAC_CTX *hctx,
++	const unsigned char *data, size_t data_len, size_t orig_len)
++	{
++	size_t block_size, digest_pad, blocks_data, blocks_orig;
++	if (EVP_CIPHER_CTX_mode(cipher_ctx) != EVP_CIPH_CBC_MODE)
++		return;
++	block_size = EVP_MD_block_size(hash);
++	/* We are in FIPS mode if we get this far so we know we have only SHA*
++	 * digests and TLS to deal with.
++	 * Minimum digest padding length is 17 for SHA384/SHA512 and 9
++	 * otherwise.
++	 * Additional header is 13 bytes. To get the number of digest blocks
++	 * processed round up the amount of data plus padding to the nearest
++	 * block length. Block length is 128 for SHA384/SHA512 and 64 otherwise.
++	 * So we have:
++	 * blocks = (payload_len + digest_pad + 13 + block_size - 1)/block_size
++	 * equivalently:
++	 * blocks = (payload_len + digest_pad + 12)/block_size + 1
++	 * HMAC adds a constant overhead.
++	 * We're ultimately only interested in differences so this becomes
++	 * blocks = (payload_len + 29)/128
++	 * for SHA384/SHA512 and
++	 * blocks = (payload_len + 21)/64
++	 * otherwise.
++	 */
++	digest_pad = block_size == 64 ? 21 : 29;
++	blocks_orig = (orig_len + digest_pad)/block_size;
++	blocks_data = (data_len + digest_pad)/block_size;
++	/* MAC enough blocks to make up the difference between the original
++	 * and actual lengths plus one extra block to ensure this is never a
++	 * no op. The "data" pointer should always have enough space to
++	 * perform this operation as it is large enough for a maximum
++	 * length TLS buffer. 
++	 */
++	HMAC_Update(hctx, data,
++				(blocks_orig - blocks_data + 1) * block_size);
++	}
++#endif
+Index: crypto/openssl/ssl/s3_clnt.c
+===================================================================
+--- crypto/openssl/ssl/s3_clnt.c	(revision 248771)
++++ crypto/openssl/ssl/s3_clnt.c	(working copy)
+@@ -262,7 +262,16 @@ int ssl3_connect(SSL *s)
+ 			ret=ssl3_get_server_hello(s);
+ 			if (ret <= 0) goto end;
+ 			if (s->hit)
++				{
+ 				s->state=SSL3_ST_CR_FINISHED_A;
++#ifndef OPENSSL_NO_TLSEXT
++				if (s->tlsext_ticket_expected)
++					{
++					/* receive renewed session ticket */
++					s->state=SSL3_ST_CR_SESSION_TICKET_A;
++					}
++#endif
++				}
+ 			else
+ 				s->state=SSL3_ST_CR_CERT_A;
+ 			s->init_num=0;
+@@ -878,7 +887,7 @@ int ssl3_get_server_hello(SSL *s)
+ 		/* wrong packet length */
+ 		al=SSL_AD_DECODE_ERROR;
+ 		SSLerr(SSL_F_SSL3_GET_SERVER_HELLO,SSL_R_BAD_PACKET_LENGTH);
+-		goto err;
++		goto f_err;
+ 		}
+ 
+ 	return(1);
+@@ -1713,7 +1722,7 @@ int ssl3_get_new_session_ticket(SSL *s)
+ 	if (n < 6)
+ 		{
+ 		/* need at least ticket_lifetime_hint + ticket length */
+-		al = SSL3_AL_FATAL,SSL_AD_DECODE_ERROR;
++		al = SSL_AD_DECODE_ERROR;
+ 		SSLerr(SSL_F_SSL3_GET_NEW_SESSION_TICKET,SSL_R_LENGTH_MISMATCH);
+ 		goto f_err;
+ 		}
+@@ -1724,7 +1733,7 @@ int ssl3_get_new_session_ticket(SSL *s)
+ 	/* ticket_lifetime_hint + ticket_length + ticket */
+ 	if (ticklen + 6 != n)
+ 		{
+-		al = SSL3_AL_FATAL,SSL_AD_DECODE_ERROR;
++		al = SSL_AD_DECODE_ERROR;
+ 		SSLerr(SSL_F_SSL3_GET_NEW_SESSION_TICKET,SSL_R_LENGTH_MISMATCH);
+ 		goto f_err;
+ 		}
+Index: crypto/openssl/ssl/s3_enc.c
+===================================================================
+--- crypto/openssl/ssl/s3_enc.c	(revision 248771)
++++ crypto/openssl/ssl/s3_enc.c	(working copy)
+@@ -433,12 +433,21 @@ void ssl3_cleanup_key_block(SSL *s)
+ 	s->s3->tmp.key_block_length=0;
+ 	}
+ 
++/* ssl3_enc encrypts/decrypts the record in |s->wrec| / |s->rrec|, respectively.
++ *
++ * Returns:
++ *   0: (in non-constant time) if the record is publically invalid (i.e. too
++ *       short etc).
++ *   1: if the record's padding is valid / the encryption was successful.
++ *   -1: if the record's padding is invalid or, if sending, an internal error
++ *       occured.
++ */
+ int ssl3_enc(SSL *s, int send)
+ 	{
+ 	SSL3_RECORD *rec;
+ 	EVP_CIPHER_CTX *ds;
+ 	unsigned long l;
+-	int bs,i;
++	int bs,i,mac_size=0;
+ 	const EVP_CIPHER *enc;
+ 
+ 	if (send)
+@@ -489,32 +498,17 @@ int ssl3_enc(SSL *s, int send)
+ 		if (!send)
+ 			{
+ 			if (l == 0 || l%bs != 0)
+-				{
+-				SSLerr(SSL_F_SSL3_ENC,SSL_R_BLOCK_CIPHER_PAD_IS_WRONG);
+-				ssl3_send_alert(s,SSL3_AL_FATAL,SSL_AD_DECRYPTION_FAILED);
+ 				return 0;
+-				}
+ 			/* otherwise, rec->length >= bs */
+ 			}
+ 		
+ 		EVP_Cipher(ds,rec->data,rec->input,l);
+ 
++		if (s->read_hash != NULL)
++			mac_size = EVP_MD_size(s->read_hash);
++
+ 		if ((bs != 1) && !send)
+-			{
+-			i=rec->data[l-1]+1;
+-			/* SSL 3.0 bounds the number of padding bytes by the block size;
+-			 * padding bytes (except the last one) are arbitrary */
+-			if (i > bs)
+-				{
+-				/* Incorrect padding. SSLerr() and ssl3_alert are done
+-				 * by caller: we don't want to reveal whether this is
+-				 * a decryption error or a MAC verification failure
+-				 * (see http://www.openssl.org/~bodo/tls-cbc.txt) */
+-				return -1;
+-				}
+-			/* now i <= bs <= rec->length */
+-			rec->length-=i;
+-			}
++			return ssl3_cbc_remove_padding(s, rec, bs, mac_size);
+ 		}
+ 	return(1);
+ 	}
+@@ -591,7 +585,7 @@ int ssl3_mac(SSL *ssl, unsigned char *md, int send
+ 	EVP_MD_CTX md_ctx;
+ 	const EVP_MD *hash;
+ 	unsigned char *p,rec_char;
+-	unsigned int md_size;
++	size_t md_size, orig_len;
+ 	int npad;
+ 
+ 	if (send)
+@@ -612,29 +606,73 @@ int ssl3_mac(SSL *ssl, unsigned char *md, int send
+ 	md_size=EVP_MD_size(hash);
+ 	npad=(48/md_size)*md_size;
+ 
+-	/* Chop the digest off the end :-) */
+-	EVP_MD_CTX_init(&md_ctx);
++	/* kludge: ssl3_cbc_remove_padding passes padding length in rec->type */
++	orig_len = rec->length+md_size+((unsigned int)rec->type>>8);
++	rec->type &= 0xff;
+ 
+-	EVP_DigestInit_ex(  &md_ctx,hash, NULL);
+-	EVP_DigestUpdate(&md_ctx,mac_sec,md_size);
+-	EVP_DigestUpdate(&md_ctx,ssl3_pad_1,npad);
+-	EVP_DigestUpdate(&md_ctx,seq,8);
+-	rec_char=rec->type;
+-	EVP_DigestUpdate(&md_ctx,&rec_char,1);
+-	p=md;
+-	s2n(rec->length,p);
+-	EVP_DigestUpdate(&md_ctx,md,2);
+-	EVP_DigestUpdate(&md_ctx,rec->input,rec->length);
+-	EVP_DigestFinal_ex( &md_ctx,md,NULL);
++	if (!send &&
++	    EVP_CIPHER_CTX_mode(ssl->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
++	    ssl3_cbc_record_digest_supported(hash))
++		{
++		/* This is a CBC-encrypted record. We must avoid leaking any
++		 * timing-side channel information about how many blocks of
++		 * data we are hashing because that gives an attacker a
++		 * timing-oracle. */
+ 
+-	EVP_DigestInit_ex(  &md_ctx,hash, NULL);
+-	EVP_DigestUpdate(&md_ctx,mac_sec,md_size);
+-	EVP_DigestUpdate(&md_ctx,ssl3_pad_2,npad);
+-	EVP_DigestUpdate(&md_ctx,md,md_size);
+-	EVP_DigestFinal_ex( &md_ctx,md,&md_size);
++		/* npad is, at most, 48 bytes and that's with MD5:
++		 *   16 + 48 + 8 (sequence bytes) + 1 + 2 = 75.
++		 *
++		 * With SHA-1 (the largest hash speced for SSLv3) the hash size
++		 * goes up 4, but npad goes down by 8, resulting in a smaller
++		 * total size. */
++		unsigned char header[75];
++		unsigned j = 0;
++		memcpy(header+j, mac_sec, md_size);
++		j += md_size;
++		memcpy(header+j, ssl3_pad_1, npad);
++		j += npad;
++		memcpy(header+j, seq, 8);
++		j += 8;
++		header[j++] = rec->type;
++		header[j++] = rec->length >> 8;
++		header[j++] = rec->length & 0xff;
+ 
+-	EVP_MD_CTX_cleanup(&md_ctx);
++		ssl3_cbc_digest_record(
++			hash,
++			md, &md_size,
++			header, rec->input,
++			rec->length + md_size, orig_len,
++			mac_sec, md_size,
++			1 /* is SSLv3 */);
++		}
++	else
++		{
++		unsigned int md_size_u;
++		/* Chop the digest off the end :-) */
++		EVP_MD_CTX_init(&md_ctx);
+ 
++		EVP_DigestInit_ex( &md_ctx,hash, NULL);
++		EVP_DigestUpdate(&md_ctx,mac_sec,md_size);
++		EVP_DigestUpdate(&md_ctx,ssl3_pad_1,npad);
++		EVP_DigestUpdate(&md_ctx,seq,8);
++		rec_char=rec->type;
++		EVP_DigestUpdate(&md_ctx,&rec_char,1);
++		p=md;
++		s2n(rec->length,p);
++		EVP_DigestUpdate(&md_ctx,md,2);
++		EVP_DigestUpdate(&md_ctx,rec->input,rec->length);
++		EVP_DigestFinal_ex( &md_ctx,md,NULL);
++
++		EVP_DigestInit_ex( &md_ctx,hash, NULL);
++		EVP_DigestUpdate(&md_ctx,mac_sec,md_size);
++		EVP_DigestUpdate(&md_ctx,ssl3_pad_2,npad);
++		EVP_DigestUpdate(&md_ctx,md,md_size);
++		EVP_DigestFinal_ex( &md_ctx,md,&md_size_u);
++		md_size = md_size_u;
++
++		EVP_MD_CTX_cleanup(&md_ctx);
++	}
++
+ 	ssl3_record_sequence_update(seq);
+ 	return(md_size);
+ 	}
+Index: crypto/openssl/ssl/s3_lib.c
+===================================================================
+--- crypto/openssl/ssl/s3_lib.c	(revision 248771)
++++ crypto/openssl/ssl/s3_lib.c	(working copy)
+@@ -2641,4 +2641,3 @@ need to go to SSL_ST_ACCEPT.
+ 		}
+ 	return(ret);
+ 	}
+-
+Index: crypto/openssl/ssl/s3_pkt.c
+===================================================================
+--- crypto/openssl/ssl/s3_pkt.c	(revision 248771)
++++ crypto/openssl/ssl/s3_pkt.c	(working copy)
+@@ -246,11 +246,8 @@ static int ssl3_get_record(SSL *s)
+ 	unsigned char *p;
+ 	unsigned char md[EVP_MAX_MD_SIZE];
+ 	short version;
+-	unsigned int mac_size;
+-	int clear=0;
++	unsigned mac_size, orig_len;
+ 	size_t extra;
+-	int decryption_failed_or_bad_record_mac = 0;
+-	unsigned char *mac = NULL;
+ 
+ 	rr= &(s->s3->rrec);
+ 	sess=s->session;
+@@ -354,19 +351,18 @@ again:
+ 
+ 	/* decrypt in place in 'rr->input' */
+ 	rr->data=rr->input;
++	orig_len=rr->length;
+ 
+ 	enc_err = s->method->ssl3_enc->enc(s,0);
+-	if (enc_err <= 0)
++	/* enc_err is:
++	 *    0: (in non-constant time) if the record is publically invalid.
++	 *    1: if the padding is valid
++	 *    -1: if the padding is invalid */
++	if (enc_err == 0)
+ 		{
+-		if (enc_err == 0)
+-			/* SSLerr() and ssl3_send_alert() have been called */
+-			goto err;
+-
+-		/* Otherwise enc_err == -1, which indicates bad padding
+-		 * (rec->length has not been changed in this case).
+-		 * To minimize information leaked via timing, we will perform
+-		 * the MAC computation anyway. */
+-		decryption_failed_or_bad_record_mac = 1;
++		al=SSL_AD_DECRYPTION_FAILED;
++		SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_BLOCK_CIPHER_PAD_IS_WRONG);
++		goto f_err;
+ 		}
+ 
+ #ifdef TLS_DEBUG
+@@ -376,51 +372,59 @@ printf("\n");
+ #endif
+ 
+ 	/* r->length is now the compressed data plus mac */
+-	if (	(sess == NULL) ||
+-		(s->enc_read_ctx == NULL) ||
+-		(s->read_hash == NULL))
+-		clear=1;
+-
+-	if (!clear)
++	if ((sess != NULL) &&
++	    (s->enc_read_ctx != NULL) &&
++	    (s->read_hash != NULL))
+ 		{
++		/* s->read_hash != NULL => mac_size != -1 */
++		unsigned char *mac = NULL;
++		unsigned char mac_tmp[EVP_MAX_MD_SIZE];
+ 		mac_size=EVP_MD_size(s->read_hash);
++		OPENSSL_assert(mac_size <= EVP_MAX_MD_SIZE);
+ 
+-		if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+extra+mac_size)
++		/* orig_len is the length of the record before any padding was
++		 * removed. This is public information, as is the MAC in use,
++		 * therefore we can safely process the record in a different
++		 * amount of time if it's too short to possibly contain a MAC.
++		 */
++		if (orig_len < mac_size ||
++		    /* CBC records must have a padding length byte too. */
++		    (EVP_CIPHER_CTX_mode(s->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
++		     orig_len < mac_size+1))
+ 			{
+-#if 0 /* OK only for stream ciphers (then rr->length is visible from ciphertext anyway) */
+-			al=SSL_AD_RECORD_OVERFLOW;
+-			SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_PRE_MAC_LENGTH_TOO_LONG);
++			al=SSL_AD_DECODE_ERROR;
++			SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_LENGTH_TOO_SHORT);
+ 			goto f_err;
+-#else
+-			decryption_failed_or_bad_record_mac = 1;
+-#endif			
+ 			}
+-		/* check the MAC for rr->input (it's in mac_size bytes at the tail) */
+-		if (rr->length >= mac_size)
++
++		if (EVP_CIPHER_CTX_mode(s->enc_read_ctx) == EVP_CIPH_CBC_MODE)
+ 			{
++			/* We update the length so that the TLS header bytes
++			 * can be constructed correctly but we need to extract
++			 * the MAC in constant time from within the record,
++			 * without leaking the contents of the padding bytes.
++			 * */
++			mac = mac_tmp;
++			ssl3_cbc_copy_mac(mac_tmp, rr, mac_size, orig_len);
+ 			rr->length -= mac_size;
+-			mac = &rr->data[rr->length];
+ 			}
+ 		else
+ 			{
+-			/* record (minus padding) is too short to contain a MAC */
+-#if 0 /* OK only for stream ciphers */
+-			al=SSL_AD_DECODE_ERROR;
+-			SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_LENGTH_TOO_SHORT);
+-			goto f_err;
+-#else
+-			decryption_failed_or_bad_record_mac = 1;
+-			rr->length = 0;
+-#endif
++			/* In this case there's no padding, so |orig_len|
++			 * equals |rec->length| and we checked that there's
++			 * enough bytes for |mac_size| above. */
++			rr->length -= mac_size;
++			mac = &rr->data[rr->length];
+ 			}
+-		i=s->method->ssl3_enc->mac(s,md,0);
+-		if (mac == NULL || memcmp(md, mac, mac_size) != 0)
+-			{
+-			decryption_failed_or_bad_record_mac = 1;
+-			}
++
++		i=s->method->ssl3_enc->mac(s,md,0 /* not send */);
++		if (i < 0 || mac == NULL || CRYPTO_memcmp(md, mac, (size_t)mac_size) != 0)
++			enc_err = -1;
++		if (rr->length > SSL3_RT_MAX_COMPRESSED_LENGTH+extra+mac_size)
++			enc_err = -1;
+ 		}
+ 
+-	if (decryption_failed_or_bad_record_mac)
++	if (enc_err < 0)
+ 		{
+ 		/* A separate 'decryption_failed' alert was introduced with TLS 1.0,
+ 		 * SSL 3.0 only has 'bad_record_mac'.  But unless a decryption
+Index: crypto/openssl/ssl/s3_srvr.c
+===================================================================
+--- crypto/openssl/ssl/s3_srvr.c	(revision 248771)
++++ crypto/openssl/ssl/s3_srvr.c	(working copy)
+@@ -1005,7 +1005,7 @@ int ssl3_get_client_hello(SSL *s)
+ 			goto f_err;
+ 			}
+ 		}
+-		if (ssl_check_clienthello_tlsext(s) <= 0) {
++		if (ssl_check_clienthello_tlsext_early(s) <= 0) {
+ 			SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_CLIENTHELLO_TLSEXT);
+ 			goto err;
+ 		}
+@@ -1131,6 +1131,16 @@ int ssl3_get_client_hello(SSL *s)
+ 	 * s->tmp.new_cipher	- the new cipher to use.
+ 	 */
+ 
++	/* Handles TLS extensions that we couldn't check earlier */
++	if (s->version >= SSL3_VERSION)
++		{
++		if (ssl_check_clienthello_tlsext_late(s) <= 0)
++			{
++			SSLerr(SSL_F_SSL3_GET_CLIENT_HELLO,SSL_R_CLIENTHELLO_TLSEXT);
++			goto err;
++			}
++		}
++
+ 	if (ret < 0) ret=1;
+ 	if (0)
+ 		{
+@@ -1571,6 +1581,7 @@ int ssl3_send_server_key_exchange(SSL *s)
+ 			    (unsigned char *)encodedPoint, 
+ 			    encodedlen);
+ 			OPENSSL_free(encodedPoint);
++			encodedPoint = NULL;
+ 			p += encodedlen;
+ 			}
+ #endif
+@@ -1960,6 +1971,7 @@ int ssl3_get_client_key_exchange(SSL *s)
+ 		if (i <= 0)
+ 			{
+ 			SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,ERR_R_DH_LIB);
++			BN_clear_free(pub);
+ 			goto err;
+ 			}
+ 
+Index: crypto/openssl/ssl/ssl.h
+===================================================================
+--- crypto/openssl/ssl/ssl.h	(revision 248771)
++++ crypto/openssl/ssl/ssl.h	(working copy)
+@@ -1682,6 +1682,7 @@ void ERR_load_SSL_strings(void);
+ #define SSL_F_DTLS1_ACCEPT				 246
+ #define SSL_F_DTLS1_ADD_CERT_TO_BUF			 280
+ #define SSL_F_DTLS1_BUFFER_RECORD			 247
++#define SSL_F_DTLS1_CHECK_TIMEOUT_NUM			 293
+ #define SSL_F_DTLS1_CLIENT_HELLO			 248
+ #define SSL_F_DTLS1_CONNECT				 249
+ #define SSL_F_DTLS1_ENC					 250
+@@ -1819,6 +1820,7 @@ void ERR_load_SSL_strings(void);
+ #define SSL_F_SSL_GET_NEW_SESSION			 181
+ #define SSL_F_SSL_GET_PREV_SESSION			 217
+ #define SSL_F_SSL_GET_SERVER_SEND_CERT			 182
++#define SSL_F_SSL_GET_SERVER_SEND_PKEY			 317
+ #define SSL_F_SSL_GET_SIGN_PKEY				 183
+ #define SSL_F_SSL_INIT_WBIO_BUFFER			 184
+ #define SSL_F_SSL_LOAD_CLIENT_CA_FILE			 185
+Index: crypto/openssl/ssl/ssl_ciph.c
+===================================================================
+--- crypto/openssl/ssl/ssl_ciph.c	(revision 248771)
++++ crypto/openssl/ssl/ssl_ciph.c	(working copy)
+@@ -303,6 +303,7 @@ static void load_builtin_compressions(void)
+ 						sk_SSL_COMP_push(ssl_comp_methods,comp);
+ 						}
+ 					}
++					sk_SSL_COMP_sort(ssl_comp_methods);
+ 				}
+ 			MemCheck_on();
+ 			}
+Index: crypto/openssl/ssl/ssl_err.c
+===================================================================
+--- crypto/openssl/ssl/ssl_err.c	(revision 248771)
++++ crypto/openssl/ssl/ssl_err.c	(working copy)
+@@ -1,6 +1,6 @@
+ /* ssl/ssl_err.c */
+ /* ====================================================================
+- * Copyright (c) 1999-2008 The OpenSSL Project.  All rights reserved.
++ * Copyright (c) 1999-2011 The OpenSSL Project.  All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
+  * modification, are permitted provided that the following conditions
+@@ -80,6 +80,7 @@ static ERR_STRING_DATA SSL_str_functs[]=
+ {ERR_FUNC(SSL_F_DTLS1_ACCEPT),	"DTLS1_ACCEPT"},
+ {ERR_FUNC(SSL_F_DTLS1_ADD_CERT_TO_BUF),	"DTLS1_ADD_CERT_TO_BUF"},
+ {ERR_FUNC(SSL_F_DTLS1_BUFFER_RECORD),	"DTLS1_BUFFER_RECORD"},
++{ERR_FUNC(SSL_F_DTLS1_CHECK_TIMEOUT_NUM),	"DTLS1_CHECK_TIMEOUT_NUM"},
+ {ERR_FUNC(SSL_F_DTLS1_CLIENT_HELLO),	"DTLS1_CLIENT_HELLO"},
+ {ERR_FUNC(SSL_F_DTLS1_CONNECT),	"DTLS1_CONNECT"},
+ {ERR_FUNC(SSL_F_DTLS1_ENC),	"DTLS1_ENC"},
+@@ -217,6 +218,7 @@ static ERR_STRING_DATA SSL_str_functs[]=
+ {ERR_FUNC(SSL_F_SSL_GET_NEW_SESSION),	"SSL_GET_NEW_SESSION"},
+ {ERR_FUNC(SSL_F_SSL_GET_PREV_SESSION),	"SSL_GET_PREV_SESSION"},
+ {ERR_FUNC(SSL_F_SSL_GET_SERVER_SEND_CERT),	"SSL_GET_SERVER_SEND_CERT"},
++{ERR_FUNC(SSL_F_SSL_GET_SERVER_SEND_PKEY),	"SSL_GET_SERVER_SEND_PKEY"},
+ {ERR_FUNC(SSL_F_SSL_GET_SIGN_PKEY),	"SSL_GET_SIGN_PKEY"},
+ {ERR_FUNC(SSL_F_SSL_INIT_WBIO_BUFFER),	"SSL_INIT_WBIO_BUFFER"},
+ {ERR_FUNC(SSL_F_SSL_LOAD_CLIENT_CA_FILE),	"SSL_load_client_CA_file"},
+Index: crypto/openssl/ssl/ssl_lib.c
+===================================================================
+--- crypto/openssl/ssl/ssl_lib.c	(revision 248771)
++++ crypto/openssl/ssl/ssl_lib.c	(working copy)
+@@ -1000,6 +1000,11 @@ long SSL_ctrl(SSL *s,int cmd,long larg,void *parg)
+ 		s->max_cert_list=larg;
+ 		return(l);
+ 	case SSL_CTRL_SET_MTU:
++#ifndef OPENSSL_NO_DTLS1
++		if (larg < (long)dtls1_min_mtu())
++			return 0;
++#endif
++
+ 		if (SSL_version(s) == DTLS1_VERSION ||
+ 		    SSL_version(s) == DTLS1_BAD_VER)
+ 			{
+@@ -1938,7 +1943,7 @@ int check_srvr_ecc_cert_and_alg(X509 *x, SSL_CIPHE
+ 	}
+ 
+ /* THIS NEEDS CLEANING UP */
+-X509 *ssl_get_server_send_cert(SSL *s)
++CERT_PKEY *ssl_get_server_send_pkey(const SSL *s)
+ 	{
+ 	unsigned long alg,kalg;
+ 	CERT *c;
+@@ -1988,14 +1993,22 @@ int check_srvr_ecc_cert_and_alg(X509 *x, SSL_CIPHE
+ 		}
+ 	else /* if (kalg & SSL_aNULL) */
+ 		{
+-		SSLerr(SSL_F_SSL_GET_SERVER_SEND_CERT,ERR_R_INTERNAL_ERROR);
++		SSLerr(SSL_F_SSL_GET_SERVER_SEND_PKEY,ERR_R_INTERNAL_ERROR);
+ 		return(NULL);
+ 		}
+-	if (c->pkeys[i].x509 == NULL) return(NULL);
+ 
+-	return(c->pkeys[i].x509);
++	return c->pkeys + i;
+ 	}
+ 
++X509 *ssl_get_server_send_cert(const SSL *s)
++	{
++	CERT_PKEY *cpk;
++	cpk = ssl_get_server_send_pkey(s);
++	if (!cpk)
++		return NULL;
++	return cpk->x509;
++	}
++
+ EVP_PKEY *ssl_get_sign_pkey(SSL *s,SSL_CIPHER *cipher)
+ 	{
+ 	unsigned long alg;
+@@ -2415,7 +2428,9 @@ void ssl_clear_cipher_ctx(SSL *s)
+ /* Fix this function so that it takes an optional type parameter */
+ X509 *SSL_get_certificate(const SSL *s)
+ 	{
+-	if (s->cert != NULL)
++	if (s->server)
++		return(ssl_get_server_send_cert(s));
++	else if (s->cert != NULL)
+ 		return(s->cert->key->x509);
+ 	else
+ 		return(NULL);
+Index: crypto/openssl/ssl/ssl_locl.h
+===================================================================
+--- crypto/openssl/ssl/ssl_locl.h	(revision 248771)
++++ crypto/openssl/ssl/ssl_locl.h	(working copy)
+@@ -189,6 +189,15 @@
+ 			 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
+ 			 *((c)++)=(unsigned char)(((l)    )&0xff))
+ 
++#define l2n8(l,c)	(*((c)++)=(unsigned char)(((l)>>56)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>>48)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>>40)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>>32)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>>24)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>>16)&0xff), \
++			 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \
++			 *((c)++)=(unsigned char)(((l)    )&0xff))
++
+ #define n2l6(c,l)	(l =((BN_ULLONG)(*((c)++)))<<40, \
+ 			 l|=((BN_ULLONG)(*((c)++)))<<32, \
+ 			 l|=((BN_ULLONG)(*((c)++)))<<24, \
+@@ -740,7 +749,8 @@ int ssl_verify_cert_chain(SSL *s,STACK_OF(X509) *s
+ int ssl_undefined_function(SSL *s);
+ int ssl_undefined_void_function(void);
+ int ssl_undefined_const_function(const SSL *s);
+-X509 *ssl_get_server_send_cert(SSL *);
++CERT_PKEY *ssl_get_server_send_pkey(const SSL *s);
++X509 *ssl_get_server_send_cert(const SSL *);
+ EVP_PKEY *ssl_get_sign_pkey(SSL *,SSL_CIPHER *);
+ int ssl_cert_type(X509 *x,EVP_PKEY *pkey);
+ void ssl_set_cert_masks(CERT *c, SSL_CIPHER *cipher);
+@@ -870,6 +880,7 @@ void dtls1_get_ccs_header(unsigned char *data, str
+ void dtls1_reset_seq_numbers(SSL *s, int rw);
+ long dtls1_default_timeout(void);
+ struct timeval* dtls1_get_timeout(SSL *s, struct timeval* timeleft);
++int dtls1_check_timeout_num(SSL *s);
+ int dtls1_handle_timeout(SSL *s);
+ SSL_CIPHER *dtls1_get_cipher(unsigned int u);
+ void dtls1_start_timer(SSL *s);
+@@ -877,6 +888,7 @@ void dtls1_stop_timer(SSL *s);
+ int dtls1_is_timer_expired(SSL *s);
+ void dtls1_double_timeout(SSL *s);
+ int dtls1_send_newsession_ticket(SSL *s);
++unsigned int dtls1_min_mtu(void);
+ 
+ 
+ /* some client-only functions */
+@@ -977,7 +989,8 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned
+ int ssl_parse_serverhello_tlsext(SSL *s, unsigned char **data, unsigned char *d, int n, int *al);
+ int ssl_prepare_clienthello_tlsext(SSL *s);
+ int ssl_prepare_serverhello_tlsext(SSL *s);
+-int ssl_check_clienthello_tlsext(SSL *s);
++int ssl_check_clienthello_tlsext_early(SSL *s);
++int ssl_check_clienthello_tlsext_late(SSL *s);
+ int ssl_check_serverhello_tlsext(SSL *s);
+ 
+ #ifdef OPENSSL_NO_SHA256
+@@ -999,5 +1012,33 @@ int ssl_add_clienthello_renegotiate_ext(SSL *s, un
+ int ssl_parse_clienthello_renegotiate_ext(SSL *s, unsigned char *d, int len,
+ 					  int *al);
+ #endif
++/* s3_cbc.c */
++void ssl3_cbc_copy_mac(unsigned char* out,
++		       const SSL3_RECORD *rec,
++		       unsigned md_size,unsigned orig_len);
++int ssl3_cbc_remove_padding(const SSL* s,
++			    SSL3_RECORD *rec,
++			    unsigned block_size,
++			    unsigned mac_size);
++int tls1_cbc_remove_padding(const SSL* s,
++			    SSL3_RECORD *rec,
++			    unsigned block_size,
++			    unsigned mac_size);
++char ssl3_cbc_record_digest_supported(const EVP_MD *hash);
++void ssl3_cbc_digest_record(
++	const EVP_MD *hash,
++	unsigned char* md_out,
++	size_t* md_out_size,
++	const unsigned char header[13],
++	const unsigned char *data,
++	size_t data_plus_mac_size,
++	size_t data_plus_mac_plus_padding_size,
++	const unsigned char *mac_secret,
++	unsigned mac_secret_length,
++	char is_sslv3);
+ 
++void tls_fips_digest_extra(
++	const EVP_CIPHER_CTX *cipher_ctx, const EVP_MD *hash, HMAC_CTX *hctx,
++	const unsigned char *data, size_t data_len, size_t orig_len);
++
+ #endif
+Index: crypto/openssl/ssl/t1_enc.c
+===================================================================
+--- crypto/openssl/ssl/t1_enc.c	(revision 248771)
++++ crypto/openssl/ssl/t1_enc.c	(working copy)
+@@ -264,7 +264,7 @@ int tls1_change_cipher_state(SSL *s, int which)
+ 	{
+         int ki;
+         for (ki=0; ki<s->s3->tmp.key_block_length; ki++)
+-		printf("%02x", key_block[ki]);  printf("\n");
++		printf("%02x", s->s3->tmp.key_block[ki]);  printf("\n");
+         }
+ #endif	/* KSSL_DEBUG */
+ 
+@@ -528,12 +528,21 @@ err:
+ 	return(0);
+ 	}
+ 
++/* tls1_enc encrypts/decrypts the record in |s->wrec| / |s->rrec|, respectively.
++ *
++ * Returns:
++ *   0: (in non-constant time) if the record is publically invalid (i.e. too
++ *       short etc).
++ *   1: if the record's padding is valid / the encryption was successful.
++ *   -1: if the record's padding/AEAD-authenticator is invalid or, if sending,
++ *       an internal error occured.
++ */
+ int tls1_enc(SSL *s, int send)
+ 	{
+ 	SSL3_RECORD *rec;
+ 	EVP_CIPHER_CTX *ds;
+ 	unsigned long l;
+-	int bs,i,ii,j,k;
++	int bs,i,j,k,pad=0,ret,mac_size=0;
+ 	const EVP_CIPHER *enc;
+ 
+ 	if (send)
+@@ -559,11 +568,11 @@ int tls1_enc(SSL *s, int send)
+ 	printf("tls1_enc(%d)\n", send);
+ #endif    /* KSSL_DEBUG */
+ 
+-	if ((s->session == NULL) || (ds == NULL) ||
+-		(enc == NULL))
++	if ((s->session == NULL) || (ds == NULL) || (enc == NULL))
+ 		{
+ 		memmove(rec->data,rec->input,rec->length);
+ 		rec->input=rec->data;
++		ret = 1;
+ 		}
+ 	else
+ 		{
+@@ -591,14 +600,13 @@ int tls1_enc(SSL *s, int send)
+ 
+ #ifdef KSSL_DEBUG
+ 		{
+-                unsigned long ui;
++		unsigned long ui;
+ 		printf("EVP_Cipher(ds=%p,rec->data=%p,rec->input=%p,l=%ld) ==>\n",
+-                        (void *)ds,rec->data,rec->input,l);
+-		printf("\tEVP_CIPHER_CTX: %d buf_len, %d key_len [%ld %ld], %d iv_len\n",
+-                        ds->buf_len, ds->cipher->key_len,
+-                        (unsigned long)DES_KEY_SZ,
+-			(unsigned long)DES_SCHEDULE_SZ,
+-                        ds->cipher->iv_len);
++			ds,rec->data,rec->input,l);
++		printf("\tEVP_CIPHER_CTX: %d buf_len, %d key_len [%d %d], %d iv_len\n",
++			ds->buf_len, ds->cipher->key_len,
++			DES_KEY_SZ, DES_SCHEDULE_SZ,
++			ds->cipher->iv_len);
+ 		printf("\t\tIV: ");
+ 		for (i=0; i<ds->cipher->iv_len; i++) printf("%02X", ds->iv[i]);
+ 		printf("\n");
+@@ -611,11 +619,7 @@ int tls1_enc(SSL *s, int send)
+ 		if (!send)
+ 			{
+ 			if (l == 0 || l%bs != 0)
+-				{
+-				SSLerr(SSL_F_TLS1_ENC,SSL_R_BLOCK_CIPHER_PAD_IS_WRONG);
+-				ssl3_send_alert(s,SSL3_AL_FATAL,SSL_AD_DECRYPTION_FAILED);
+ 				return 0;
+-				}
+ 			}
+ 		
+ 		EVP_Cipher(ds,rec->data,rec->input,l);
+@@ -629,49 +633,15 @@ int tls1_enc(SSL *s, int send)
+                 }
+ #endif	/* KSSL_DEBUG */
+ 
++		ret = 1;
++		if (s->read_hash != NULL)
++			mac_size = EVP_MD_size(s->read_hash);
+ 		if ((bs != 1) && !send)
+-			{
+-			ii=i=rec->data[l-1]; /* padding_length */
+-			i++;
+-			/* NB: if compression is in operation the first packet
+-			 * may not be of even length so the padding bug check
+-			 * cannot be performed. This bug workaround has been
+-			 * around since SSLeay so hopefully it is either fixed
+-			 * now or no buggy implementation supports compression 
+-			 * [steve]
+-			 */
+-			if ( (s->options&SSL_OP_TLS_BLOCK_PADDING_BUG)
+-				&& !s->expand)
+-				{
+-				/* First packet is even in size, so check */
+-				if ((memcmp(s->s3->read_sequence,
+-					"\0\0\0\0\0\0\0\0",8) == 0) && !(ii & 1))
+-					s->s3->flags|=TLS1_FLAGS_TLS_PADDING_BUG;
+-				if (s->s3->flags & TLS1_FLAGS_TLS_PADDING_BUG)
+-					i--;
+-				}
+-			/* TLS 1.0 does not bound the number of padding bytes by the block size.
+-			 * All of them must have value 'padding_length'. */
+-			if (i > (int)rec->length)
+-				{
+-				/* Incorrect padding. SSLerr() and ssl3_alert are done
+-				 * by caller: we don't want to reveal whether this is
+-				 * a decryption error or a MAC verification failure
+-				 * (see http://www.openssl.org/~bodo/tls-cbc.txt) */
+-				return -1;
+-				}
+-			for (j=(int)(l-i); j<(int)l; j++)
+-				{
+-				if (rec->data[j] != ii)
+-					{
+-					/* Incorrect padding */
+-					return -1;
+-					}
+-				}
+-			rec->length-=i;
+-			}
++			ret = tls1_cbc_remove_padding(s, rec, bs, mac_size);
++		if (pad && !send)
++			rec->length -= pad;
+ 		}
+-	return(1);
++	return ret;
+ 	}
+ 
+ int tls1_cert_verify_mac(SSL *s, EVP_MD_CTX *in_ctx, unsigned char *out)
+@@ -719,10 +689,10 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send
+ 	SSL3_RECORD *rec;
+ 	unsigned char *mac_sec,*seq;
+ 	const EVP_MD *hash;
+-	unsigned int md_size;
++	size_t md_size, orig_len;
+ 	int i;
+ 	HMAC_CTX hmac;
+-	unsigned char buf[5]; 
++	unsigned char header[13];
+ 
+ 	if (send)
+ 		{
+@@ -741,20 +711,6 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send
+ 
+ 	md_size=EVP_MD_size(hash);
+ 
+-	buf[0]=rec->type;
+-	if (ssl->version == DTLS1_VERSION && ssl->client_version == DTLS1_BAD_VER)
+-		{
+-		buf[1]=TLS1_VERSION_MAJOR;
+-		buf[2]=TLS1_VERSION_MINOR;
+-		}
+-	else	{
+-		buf[1]=(unsigned char)(ssl->version>>8);
+-		buf[2]=(unsigned char)(ssl->version);
+-		}
+-
+-	buf[3]=rec->length>>8;
+-	buf[4]=rec->length&0xff;
+-
+ 	/* I should fix this up TLS TLS TLS TLS TLS XXXXXXXX */
+ 	HMAC_CTX_init(&hmac);
+ 	HMAC_Init_ex(&hmac,mac_sec,EVP_MD_size(hash),hash,NULL);
+@@ -766,16 +722,57 @@ int tls1_mac(SSL *ssl, unsigned char *md, int send
+ 		s2n(send?ssl->d1->w_epoch:ssl->d1->r_epoch, p);
+ 		memcpy (p,&seq[2],6);
+ 
+-		HMAC_Update(&hmac,dtlsseq,8);
++		memcpy(header, dtlsseq, 8);
+ 		}
+ 	else
+-		HMAC_Update(&hmac,seq,8);
++		memcpy(header, seq, 8);
+ 
+-	HMAC_Update(&hmac,buf,5);
+-	HMAC_Update(&hmac,rec->input,rec->length);
+-	HMAC_Final(&hmac,md,&md_size);
++	/* kludge: tls1_cbc_remove_padding passes padding length in rec->type */
++	orig_len = rec->length+md_size+((unsigned int)rec->type>>8);
++	rec->type &= 0xff;
++
++	header[8]=rec->type;
++	header[9]=(unsigned char)(ssl->version>>8);
++	header[10]=(unsigned char)(ssl->version);
++	header[11]=(rec->length)>>8;
++	header[12]=(rec->length)&0xff;
++
++	if (!send &&
++	    EVP_CIPHER_CTX_mode(ssl->enc_read_ctx) == EVP_CIPH_CBC_MODE &&
++	    ssl3_cbc_record_digest_supported(hash))
++		{
++		/* This is a CBC-encrypted record. We must avoid leaking any
++		 * timing-side channel information about how many blocks of
++		 * data we are hashing because that gives an attacker a
++		 * timing-oracle. */
++		ssl3_cbc_digest_record(
++		        hash,
++			md, &md_size,
++			header, rec->input,
++			rec->length + md_size, orig_len,
++			ssl->s3->read_mac_secret,
++			EVP_MD_size(ssl->read_hash),
++			0 /* not SSLv3 */);
++		}
++	else
++		{
++		unsigned mds;
++
++		HMAC_Update(&hmac,header,sizeof(header));
++		HMAC_Update(&hmac,rec->input,rec->length);
++		HMAC_Final(&hmac,md,&mds);
++		md_size = mds;
++#ifdef OPENSSL_FIPS
++		if (!send && FIPS_mode())
++			tls_fips_digest_extra(
++	    				ssl->enc_read_ctx,
++					hash,
++					&hmac, rec->input,
++					rec->length, orig_len);
++#endif
++		}
++		
+ 	HMAC_CTX_cleanup(&hmac);
+-
+ #ifdef TLS_DEBUG
+ printf("sec=");
+ {unsigned int z; for (z=0; z<md_size; z++) printf("%02X ",mac_sec[z]); printf("\n"); }
+Index: crypto/openssl/ssl/t1_lib.c
+===================================================================
+--- crypto/openssl/ssl/t1_lib.c	(revision 248771)
++++ crypto/openssl/ssl/t1_lib.c	(working copy)
+@@ -575,6 +575,12 @@ int ssl_parse_clienthello_tlsext(SSL *s, unsigned
+ 				sdata = data;
+ 				if (dsize > 0)
+ 					{
++					if (s->tlsext_ocsp_exts)
++						{
++						sk_X509_EXTENSION_pop_free(s->tlsext_ocsp_exts,
++									   X509_EXTENSION_free);
++						}
++
+ 					s->tlsext_ocsp_exts =
+ 						d2i_X509_EXTENSIONS(NULL,
+ 							&sdata, dsize);
+@@ -739,7 +745,7 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned
+ 	return 1;
+ 	}
+ 
+-int ssl_check_clienthello_tlsext(SSL *s)
++int ssl_check_clienthello_tlsext_early(SSL *s)
+ 	{
+ 	int ret=SSL_TLSEXT_ERR_NOACK;
+ 	int al = SSL_AD_UNRECOGNIZED_NAME;
+@@ -749,13 +755,49 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned
+ 	else if (s->initial_ctx != NULL && s->initial_ctx->tlsext_servername_callback != 0) 		
+ 		ret = s->initial_ctx->tlsext_servername_callback(s, &al, s->initial_ctx->tlsext_servername_arg);
+ 
++	switch (ret)
++		{
++		case SSL_TLSEXT_ERR_ALERT_FATAL:
++			ssl3_send_alert(s, SSL3_AL_FATAL, al); 
++			return -1;
++
++		case SSL_TLSEXT_ERR_ALERT_WARNING:
++			ssl3_send_alert(s, SSL3_AL_WARNING, al);
++			return 1; 
++					
++		case SSL_TLSEXT_ERR_NOACK:
++			s->servername_done = 0;
++
++		default:
++			return 1;
++		}
++	}
++
++int ssl_check_clienthello_tlsext_late(SSL *s)
++	{
++	int ret = SSL_TLSEXT_ERR_OK;
++	int al;
++
+ 	/* If status request then ask callback what to do.
+  	 * Note: this must be called after servername callbacks in case 
+- 	 * the certificate has changed.
++ 	 * the certificate has changed, and must be called after the cipher
++	 * has been chosen because this may influence which certificate is sent
+  	 */
+-	if ((s->tlsext_status_type != -1) && s->ctx->tlsext_status_cb)
++	if (s->tlsext_status_type != -1 && s->ctx && s->ctx->tlsext_status_cb)
+ 		{
+ 		int r;
++		CERT_PKEY *certpkey;
++		certpkey = ssl_get_server_send_pkey(s);
++		/* If no certificate can't return certificate status */
++		if (certpkey == NULL)
++			{
++			s->tlsext_status_expected = 0;
++			return 1;
++			}
++		/* Set current certificate to one we will use so
++		 * SSL_get_certificate et al can pick it up.
++		 */
++		s->cert->key = certpkey;
+ 		r = s->ctx->tlsext_status_cb(s, s->ctx->tlsext_status_arg);
+ 		switch (r)
+ 			{
+@@ -779,7 +821,8 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned
+ 		}
+ 	else
+ 		s->tlsext_status_expected = 0;
+-	err:
++
++ err:
+ 	switch (ret)
+ 		{
+ 		case SSL_TLSEXT_ERR_ALERT_FATAL:
+@@ -789,11 +832,9 @@ int ssl_parse_serverhello_tlsext(SSL *s, unsigned
+ 		case SSL_TLSEXT_ERR_ALERT_WARNING:
+ 			ssl3_send_alert(s,SSL3_AL_WARNING,al);
+ 			return 1; 
+-					
+-		case SSL_TLSEXT_ERR_NOACK:
+-			s->servername_done=0;
+-			default:
+-		return 1;
++
++		default:
++			return 1;
+ 		}
+ 	}
+ 
+@@ -971,7 +1012,7 @@ static int tls_decrypt_ticket(SSL *s, const unsign
+ 	HMAC_Update(&hctx, etick, eticklen);
+ 	HMAC_Final(&hctx, tick_hmac, NULL);
+ 	HMAC_CTX_cleanup(&hctx);
+-	if (memcmp(tick_hmac, etick + eticklen, mlen))
++	if (CRYPTO_memcmp(tick_hmac, etick + eticklen, mlen))
+ 		goto tickerr;
+ 	/* Attempt to decrypt session data */
+ 	/* Move p after IV to start of encrypted ticket, update length */
+Index: crypto/openssl/util/fipslink.pl
+===================================================================
+--- crypto/openssl/util/fipslink.pl	(revision 248771)
++++ crypto/openssl/util/fipslink.pl	(working copy)
+@@ -43,7 +43,12 @@ die "First stage Link failure" if $? != 0;
+ 
+ 
+ print "$fips_premain_dso $fips_target\n";
+-$fips_hash=`$fips_premain_dso $fips_target`;
++system("$fips_premain_dso $fips_target >$fips_target.sha1");
++die "Get hash failure" if $? != 0;
++open my $sha1_res, '<', $fips_target.".sha1" or die "Get hash failure";
++$fips_hash=<$sha1_res>;
++close $sha1_res;
++unlink $fips_target.".sha1";
+ chomp $fips_hash;
+ die "Get hash failure" if $? != 0;
+ 
+Index: crypto/openssl/util/libeay.num
+===================================================================
+--- crypto/openssl/util/libeay.num	(revision 248771)
++++ crypto/openssl/util/libeay.num	(working copy)
+@@ -3510,6 +3510,7 @@ BIO_get_callback_arg                    3902	EXIST
+ BIO_set_callback                        3903	EXIST::FUNCTION:
+ d2i_ASIdOrRange                         3904	EXIST::FUNCTION:RFC3779
+ i2d_ASIdentifiers                       3905	EXIST::FUNCTION:RFC3779
++CRYPTO_memcmp                           3906	EXIST::FUNCTION:
+ SEED_decrypt                            3908	EXIST::FUNCTION:SEED
+ SEED_encrypt                            3909	EXIST::FUNCTION:SEED
+ SEED_cbc_encrypt                        3910	EXIST::FUNCTION:SEED
+Index: crypto/openssl/util/mkerr.pl
+===================================================================
+--- crypto/openssl/util/mkerr.pl	(revision 248771)
++++ crypto/openssl/util/mkerr.pl	(working copy)
+@@ -313,7 +313,7 @@ foreach $lib (keys %csrc)
+ 	} else {
+ 	    push @out,
+ "/* ====================================================================\n",
+-" * Copyright (c) 2001-2010 The OpenSSL Project.  All rights reserved.\n",
++" * Copyright (c) 2001-2011 The OpenSSL Project.  All rights reserved.\n",
+ " *\n",
+ " * Redistribution and use in source and binary forms, with or without\n",
+ " * modification, are permitted provided that the following conditions\n",
+@@ -487,7 +487,7 @@ EOF
+ 	print OUT <<"EOF";
+ /* $cfile */
+ /* ====================================================================
+- * Copyright (c) 1999-2010 The OpenSSL Project.  All rights reserved.
++ * Copyright (c) 1999-2011 The OpenSSL Project.  All rights reserved.
+  *
+  * Redistribution and use in source and binary forms, with or without
+  * modification, are permitted provided that the following conditions
+@@ -680,7 +680,7 @@ EOF
+ 	undef %err_reason_strings;
+ }
+ 
+-if($debug && defined(%notrans)) {
++if($debug && %notrans) {
+ 	print STDERR "The following function codes were not translated:\n";
+ 	foreach(sort keys %notrans)
+ 	{
+Index: crypto/openssl/util/pl/VC-32.pl
+===================================================================
+--- crypto/openssl/util/pl/VC-32.pl	(revision 248771)
++++ crypto/openssl/util/pl/VC-32.pl	(working copy)
+@@ -391,7 +391,7 @@ sub do_lib_rule
+ 			$ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
+ 			$ret.="\tSET FIPS_TARGET=$target\n";
+ 			$ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
+-			$ret.="\t\$(FIPSLINK) \$(MLFLAGS) /map $base_arg $efile$target ";
++			$ret.="\t\$(FIPSLINK) \$(MLFLAGS) /fixed /map $base_arg $efile$target ";
+ 			$ret.="$name @<<\n  \$(SHLIB_EX_OBJ) $objs ";
+ 			$ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n";
+ 			}
+@@ -434,7 +434,7 @@ sub do_link_rule
+ 		$ret.="\tSET FIPS_TARGET=$target\n";
+ 		$ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
+ 		$ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
+-		$ret.="\t\$(FIPSLINK) \$(LFLAGS) /map $efile$target @<<\n";
++		$ret.="\t\$(FIPSLINK) \$(LFLAGS) /fixed /map $efile$target @<<\n";
+ 		$ret.="\t\$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n";
+ 		}
+ 	else
+Index: secure/lib/libcrypto/Makefile.inc
+===================================================================
+--- secure/lib/libcrypto/Makefile.inc	(revision 248771)
++++ secure/lib/libcrypto/Makefile.inc	(working copy)
+@@ -3,8 +3,8 @@
+ .include <bsd.own.mk>
+ 
+ # OpenSSL version used for manual page generation
+-OPENSSL_VER=	0.9.8q
+-OPENSSL_DATE=	2010-12-02
++OPENSSL_VER=	0.9.8y
++OPENSSL_DATE=	2013-02-05
+ 
+ LCRYPTO_SRC=	${.CURDIR}/../../../crypto/openssl
+ LCRYPTO_DOC=	${.CURDIR}/../../../crypto/openssl/doc
+Index: secure/lib/libssl/Makefile
+===================================================================
+--- secure/lib/libssl/Makefile	(revision 248771)
++++ secure/lib/libssl/Makefile	(working copy)
+@@ -14,7 +14,8 @@ SRCS=	bio_ssl.c d1_meth.c d1_srvr.c d1_clnt.c d1_l
+ 	d1_both.c d1_enc.c \
+ 	s23_clnt.c s23_lib.c s23_meth.c s23_pkt.c s23_srvr.c \
+ 	s2_clnt.c s2_enc.c s2_lib.c s2_meth.c s2_pkt.c s2_srvr.c \
+-	s3_both.c s3_clnt.c s3_enc.c s3_lib.c s3_meth.c s3_pkt.c \
++	s3_both.c s3_cbc.c s3_clnt.c s3_enc.c s3_lib.c s3_meth.c \
++	s3_pkt.c \
+ 	s3_srvr.c ssl_algs.c ssl_asn1.c ssl_cert.c ssl_ciph.c \
+ 	ssl_err.c ssl_err2.c ssl_lib.c ssl_rsa.c ssl_sess.c ssl_stat.c \
+ 	ssl_txt.c t1_clnt.c t1_enc.c t1_lib.c t1_meth.c t1_reneg.c t1_srvr.c
diff --git a/share/security/patches/SA-13:03/openssl.patch.asc b/share/security/patches/SA-13:03/openssl.patch.asc
new file mode 100644
index 0000000000..6e6e5d63a4
--- /dev/null
+++ b/share/security/patches/SA-13:03/openssl.patch.asc
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.19 (FreeBSD)
+
+iEYEABECAAYFAlFbGmQACgkQFdaIBMps37JsJwCfeL+FsfSkcpsQPd9wM1kiy3F6
+z94AnAoi2KiaTj7AnQVom035rVoeZnzb
+=P3VV
+-----END PGP SIGNATURE-----
diff --git a/share/security/patches/SA-13:04/bind.patch b/share/security/patches/SA-13:04/bind.patch
new file mode 100644
index 0000000000..902448c197
--- /dev/null
+++ b/share/security/patches/SA-13:04/bind.patch
@@ -0,0 +1,13 @@
+Index: lib/bind/config.h
+===================================================================
+--- lib/bind/config.h	(revision 248771)
++++ lib/bind/config.h	(working copy)
+@@ -281,7 +281,7 @@ int sigwait(const unsigned int *set, int *sig);
+ /* #undef HAVE_OPENSSL_GOST */
+ 
+ /* Define to 1 if you have the <regex.h> header file. */
+-#define HAVE_REGEX_H 1
++/* #undef HAVE_REGEX_H */
+ 
+ /* Define to 1 if you have the `setegid' function. */
+ #define HAVE_SETEGID 1
diff --git a/share/security/patches/SA-13:04/bind.patch.asc b/share/security/patches/SA-13:04/bind.patch.asc
new file mode 100644
index 0000000000..53deec80fa
--- /dev/null
+++ b/share/security/patches/SA-13:04/bind.patch.asc
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.19 (FreeBSD)
+
+iEYEABECAAYFAlFbGmkACgkQFdaIBMps37LS6wCgixwNY2sp5liNZzUANdl3YS5H
+r6wAnjT32rIJw1ThkvddBSGhBUncJzt4
+=qO5f
+-----END PGP SIGNATURE-----
diff --git a/share/xml/advisories.xml b/share/xml/advisories.xml
index 432c60cd24..468096175b 100644
--- a/share/xml/advisories.xml
+++ b/share/xml/advisories.xml
@@ -7,6 +7,22 @@
   <year>
     <name>2013</name>
 
+    <month>
+      <name>4</name>
+
+      <day>
+	<name>2</name>
+
+	<advisory>
+	  <name>FreeBSD-SA-13:04.bind</name>
+	</advisory>
+
+	<advisory>
+	  <name>FreeBSD-SA-13:03.openssl</name>
+	</advisory>
+      </day>
+    </month>
+
     <month>
       <name>2</name>
 
diff --git a/share/xml/authors.ent b/share/xml/authors.ent
index 2244cad0f1..88bad37706 100644
--- a/share/xml/authors.ent
+++ b/share/xml/authors.ent
@@ -1396,6 +1396,8 @@
 
 <!ENTITY a.wes "Wes Peters <email>wes@FreeBSD.org</email>">
 
+<!ENTITY a.wg "William Grzybowski <email>wg@FreeBSD.org</email>">
+
 <!ENTITY a.whiteside "Don Whiteside <email>whiteside@acm.org</email>">
 
 <!ENTITY a.wilko "Wilko Bulte <email>wilko@FreeBSD.org</email>">
diff --git a/share/xml/commercial.consult.xml b/share/xml/commercial.consult.xml
index e3341a026b..a8e04eb026 100644
--- a/share/xml/commercial.consult.xml
+++ b/share/xml/commercial.consult.xml
@@ -223,6 +223,17 @@
     </description>
   </entry>
 
+  <entry id="CloneConsulting" category="nzealand">
+    <name>Clone Consulting</name>
+    <url>http://www.clone.co.nz/</url>
+    <description>
+      Clone provides consultancy services for software development, system
+      architecture and FreeBSD infrastructure support. For additional
+      information please visit the <a
+      href="http://www.clone.co.nz">Clone website</a>.
+    </description>
+  </entry>
+
   <entry id="CloudBT" category="australia">
     <name>Cloud BT IT Support</name>
     <url>http://www.it-support.com.au/</url>
diff --git a/share/xml/developers.ent b/share/xml/developers.ent
index 1e1b9a45bd..eac6838159 100644
--- a/share/xml/developers.ent
+++ b/share/xml/developers.ent
@@ -678,6 +678,7 @@ $FreeBSD$
 <!ENTITY a.wen "Wen Heping">
 <!ENTITY a.weongyo "Weongyo Jeong">
 <!ENTITY a.wes "Wes Peters">
+<!ENTITY a.wg "William Grzybowski">
 <!ENTITY a.whiteside "Don Whiteside">
 <!ENTITY a.wilko "Wilko Bulte">
 <!ENTITY a.will "Will Andrews">
diff --git a/share/xml/man-refs.ent b/share/xml/man-refs.ent
index 87145662b2..2bc64382e6 100644
--- a/share/xml/man-refs.ent
+++ b/share/xml/man-refs.ent
@@ -4217,6 +4217,7 @@
 <!ENTITY man.symlink.7 "<citerefentry><refentrytitle>symlink</refentrytitle><manvolnum>7</manvolnum></citerefentry>">
 <!ENTITY man.term.7 "<citerefentry><refentrytitle>term</refentrytitle><manvolnum>7</manvolnum></citerefentry>">
 <!ENTITY man.tuning.7 "<citerefentry><refentrytitle>tuning</refentrytitle><manvolnum>7</manvolnum></citerefentry>">
+<!ENTITY man.zpool-features.7 "<citerefentry><refentrytitle>zpool-features</refentrytitle><manvolnum>7</manvolnum></citerefentry>">
 
 <!ENTITY man.IPXrouted.8 "<citerefentry><refentrytitle>IPXrouted</refentrytitle><manvolnum>8</manvolnum></citerefentry>">
 <!ENTITY man.MAKEDEV.8 "<citerefentry><refentrytitle>MAKEDEV</refentrytitle><manvolnum>8</manvolnum></citerefentry>">
diff --git a/share/xml/news.xml b/share/xml/news.xml
index 0949914800..529570b38b 100644
--- a/share/xml/news.xml
+++ b/share/xml/news.xml
@@ -30,9 +30,74 @@
   <year>
     <name>2013</name>
 
+    <month>
+      <name>4</name>
+
+      <day>
+	<name>10</name>
+
+	<event>
+	  <title>&os;&nbsp;8.4-RC1 Available</title>
+
+	  <p>The first RC build for the &os;-8.4 release cycle is
+	    now available.  ISO images for the amd64, i386 and pc98
+	    architectures are <a
+	      href="&lists.stable;/2013-April/073070.html">available</a>
+	    on most of our <a
+	      href="&url.doc.base-en;/books/handbook/mirrors-ftp.html">&os;
+	    mirror sites</a>.</p>
+	</event>
+      </day>
+
+      <day>
+	<name>3</name>
+
+	<event>
+	  <p>Enhanced commit privileges: <a
+	      href="mailto:antoine@FreeBSD.org">Antoine Brodin</a>
+	    (src, ports)</p>
+	</event>
+      </day>
+
+      <day>
+	<name>1</name>
+
+	<event>
+	  <p>New committer:
+	    <a href="mailto:wg@FreeBSD.org">William Grzybowski</a> (ports)</p>
+	</event>
+      </day>
+    </month>
+
     <month>
       <name>3</name>
 
+      <day>
+	<name>27</name>
+
+	<event>
+	  <p>Enhanced commit privileges:
+	    <a href="mailto:tijl@FreeBSD.org">Tijl Coosemans</a>
+	    (src, ports)</p>
+	</event>
+      </day>
+
+      <day>
+	<name>22</name>
+
+	<event>
+	  <title>&os;&nbsp;8.4-BETA1 Available</title>
+
+	  <p>The first BETA build for the &os;-8.4 release cycle is
+	    now available.  ISO images for the amd64, i386 and pc98
+	    architectures are <a
+	      href="&lists.stable;/2013-March/072913.html">available</a>
+	    on most of our <a
+	      href="&url.doc.base-en;/books/handbook/mirrors-ftp.html">&os;
+	    mirror sites</a>.</p>
+	</event>
+      </day>
+
       <day>
 	<name>14</name>
 
diff --git a/share/xml/release.ent b/share/xml/release.ent
index 1beaf4a005..738f7b9769 100644
--- a/share/xml/release.ent
+++ b/share/xml/release.ent
@@ -29,10 +29,10 @@
       don't have something in BETAn or RCn), then change %beta.testing
       below to "IGNORE".  If we do, use "INCLUDE". -->
 
-<!ENTITY beta.testing "IGNORE">
-<!ENTITY % beta.testing "IGNORE">
-<!ENTITY betarel.current '9.1'>
-<!ENTITY betarel.vers 'RC3'>
+<!ENTITY beta.testing "INCLUDE">
+<!ENTITY % beta.testing "INCLUDE">
+<!ENTITY betarel.current '8.4'>
+<!ENTITY betarel.vers 'RC1'>
 <!ENTITY u.betarel.schedule '&base;/releases/&betarel.current;R/schedule.html'>
 
 <!-- If we have a second release in the release cycle (e.g. 5.x and 6.y