summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--MANIFEST.in4
-rw-r--r--OpenSSL/__init__.py29
-rw-r--r--OpenSSL/crypto/crypto.h12
-rw-r--r--OpenSSL/py3k.h2
-rwxr-xr-xOpenSSL/ssl/connection.c4
-rw-r--r--OpenSSL/ssl/context.c4
-rw-r--r--OpenSSL/ssl/ssl.c25
-rw-r--r--OpenSSL/ssl/ssl.h4
-rw-r--r--OpenSSL/version.py4
-rw-r--r--doc/html/about.html2
-rw-r--r--doc/html/building-unix.html2
-rw-r--r--doc/html/building-windows.html2
-rw-r--r--doc/html/building.html6
-rw-r--r--doc/html/callbacks.html2
-rw-r--r--doc/html/contents.html26
-rw-r--r--doc/html/crl.html108
-rw-r--r--doc/html/exceptions.html2
-rw-r--r--doc/html/index.html24
-rw-r--r--doc/html/internals.html8
-rw-r--r--doc/html/intro.html6
-rw-r--r--doc/html/openssl-509ext.html6
-rw-r--r--doc/html/openssl-connection.html80
-rw-r--r--doc/html/openssl-context.html56
-rw-r--r--doc/html/openssl-crypto.html100
-rw-r--r--doc/html/openssl-netscape-spki.html23
-rw-r--r--doc/html/openssl-pkcs12.html20
-rw-r--r--doc/html/openssl-pkcs7.html12
-rw-r--r--doc/html/openssl-pkey.html8
-rw-r--r--doc/html/openssl-rand.html36
-rw-r--r--doc/html/openssl-ssl.html58
-rw-r--r--doc/html/openssl-x509.html44
-rw-r--r--doc/html/openssl-x509name.html22
-rw-r--r--doc/html/openssl-x509req.html16
-rw-r--r--doc/html/openssl-x509store.html4
-rw-r--r--doc/html/openssl.html34
-rw-r--r--doc/html/pyOpenSSL.how2
-rw-r--r--doc/html/pyOpenSSL.html24
-rw-r--r--doc/html/revoked.html135
-rw-r--r--doc/html/socket-methods.html2
-rw-r--r--doc/pyOpenSSL.ps3157
-rw-r--r--doc/pyOpenSSL.tex4
-rw-r--r--doc/pyOpenSSL.txt78
-rwxr-xr-xsetup.py6
44 files changed, 2402 insertions, 1805 deletions
diff --git a/ChangeLog b/ChangeLog
index 3c5a358..c286c03 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-11-01 Jean-Paul Calderone <exarkun@twistedmatrix.com>
+
+ * Release 0.11
+
2010-10-07 Jean-Paul Calderone <exarkun@twistedmatrix.com>
* Initial support for Python 3.x throughout the codebase.
diff --git a/MANIFEST.in b/MANIFEST.in
index 9f7aa73..a26f83f 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,5 +1,5 @@
-recursive-include src *.h
-include COPYING ChangeLog INSTALL README TODO MANIFEST.in src/RATIONALE
+recursive-include OpenSSL *.h
+include COPYING ChangeLog INSTALL README TODO MANIFEST.in OpenSSL/RATIONALE
include doc/pyOpenSSL.tex doc/Makefile
recursive-include doc/tools *
recursive-include examples *
diff --git a/OpenSSL/__init__.py b/OpenSSL/__init__.py
index 51dfdc9..004cd05 100644
--- a/OpenSSL/__init__.py
+++ b/OpenSSL/__init__.py
@@ -10,18 +10,39 @@ pyOpenSSL - A simple wrapper around the OpenSSL library
"""
import sys
+
try:
orig = sys.getdlopenflags()
except AttributeError:
- pass
+ from OpenSSL import crypto
else:
- sys.setdlopenflags(2 | 256)
+ try:
+ import DLFCN
+ except ImportError:
+ try:
+ import dl
+ except ImportError:
+ try:
+ import ctypes
+ except ImportError:
+ flags = 2 | 256
+ else:
+ flags = 2 | ctypes.RTLD_GLOBAL
+ del ctypes
+ else:
+ flags = dl.RTLD_NOW | dl.RTLD_GLOBAL
+ del dl
+ else:
+ flags = DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL
+ del DLFCN
+
+ sys.setdlopenflags(flags)
from OpenSSL import crypto
sys.setdlopenflags(orig)
- del orig
+ del orig, flags
del sys
-from OpenSSL import rand, crypto, SSL
+from OpenSSL import rand, SSL
from OpenSSL.version import __version__
__all__ = [
diff --git a/OpenSSL/crypto/crypto.h b/OpenSSL/crypto/crypto.h
index 75961a7..947f349 100644
--- a/OpenSSL/crypto/crypto.h
+++ b/OpenSSL/crypto/crypto.h
@@ -65,10 +65,16 @@ extern PyObject *crypto_Error;
#if defined(PY3) || defined(crypto_MODULE)
-extern crypto_X509_New_RETURN crypto_X509_New crypto_X509_New_PROTO;
-extern crypto_X509Name_New_RETURN crypto_X509Name_New crypto_X509Name_New_PROTO;
+#ifdef _WIN32
+#define EXPORT __declspec(dllexport)
+#else
+#define EXPORT
+#endif
+
+extern EXPORT crypto_X509_New_RETURN crypto_X509_New crypto_X509_New_PROTO;
+extern EXPORT crypto_X509Name_New_RETURN crypto_X509Name_New crypto_X509Name_New_PROTO;
extern crypto_X509Req_New_RETURN crypto_X509Req_New crypto_X509Req_New_PROTO;
-extern crypto_X509Store_New_RETURN crypto_X509Store_New crypto_X509Store_New_PROTO;
+extern EXPORT crypto_X509Store_New_RETURN crypto_X509Store_New crypto_X509Store_New_PROTO;
extern crypto_PKey_New_RETURN crypto_PKey_New crypto_PKey_New_PROTO;
extern crypto_X509Extension_New_RETURN crypto_X509Extension_New crypto_X509Extension_New_PROTO;
extern crypto_PKCS7_New_RETURN crypto_PKCS7_New crypto_PKCS7_New_PROTO;
diff --git a/OpenSSL/py3k.h b/OpenSSL/py3k.h
index d64817d..29da2f1 100644
--- a/OpenSSL/py3k.h
+++ b/OpenSSL/py3k.h
@@ -13,7 +13,7 @@ PyInit_##name(void)
#define PyText_FromString PyUnicode_FromString
#define PyText_FromStringAndSize PyUnicode_FromStringAndSize
-#define PyOpenSSL_HEAD_INIT(type, size) PyVarObject_HEAD_INIT(type, size)
+#define PyOpenSSL_HEAD_INIT(type, size) PyVarObject_HEAD_INIT(NULL, size)
#define PyOpenSSL_Integer_Check(o) PyLong_Check(o)
diff --git a/OpenSSL/ssl/connection.c b/OpenSSL/ssl/connection.c
index 0289876..1d45926 100755
--- a/OpenSSL/ssl/connection.c
+++ b/OpenSSL/ssl/connection.c
@@ -861,7 +861,7 @@ ssl_Connection_get_client_ca_list(ssl_ConnectionObj *self, PyObject *args) {
exception_from_error_queue(ssl_Error);
return NULL;
}
- CA = (PyObject *)crypto_X509Name_New(CAName, 1);
+ CA = (PyObject *)new_x509name(CAName, 1);
if (CA == NULL) {
X509_NAME_free(CAName);
Py_DECREF(CAList);
@@ -1060,7 +1060,7 @@ ssl_Connection_get_peer_certificate(ssl_ConnectionObj *self, PyObject *args)
cert = SSL_get_peer_certificate(self->ssl);
if (cert != NULL)
{
- return (PyObject *)crypto_X509_New(cert, 1);
+ return (PyObject *)new_x509(cert, 1);
}
else
{
diff --git a/OpenSSL/ssl/context.c b/OpenSSL/ssl/context.c
index 69bc4e5..a0b9a72 100644
--- a/OpenSSL/ssl/context.c
+++ b/OpenSSL/ssl/context.c
@@ -171,7 +171,7 @@ global_verify_callback(int ok, X509_STORE_CTX *x509_ctx)
MY_END_ALLOW_THREADS(conn->tstate);
- cert = crypto_X509_New(X509_STORE_CTX_get_current_cert(x509_ctx), 0);
+ cert = new_x509(X509_STORE_CTX_get_current_cert(x509_ctx), 0);
errnum = X509_STORE_CTX_get_error(x509_ctx);
errdepth = X509_STORE_CTX_get_error_depth(x509_ctx);
@@ -1036,7 +1036,7 @@ ssl_Context_get_cert_store(ssl_ContextObj *self, PyObject *args)
}
else
{
- return (PyObject *)crypto_X509Store_New(store, 0);
+ return (PyObject *)new_x509store(store, 0);
}
}
diff --git a/OpenSSL/ssl/ssl.c b/OpenSSL/ssl/ssl.c
index 8ac4420..5e56030 100644
--- a/OpenSSL/ssl/ssl.c
+++ b/OpenSSL/ssl/ssl.c
@@ -30,6 +30,11 @@ Main file of the SSL sub module.\n\
See the file RATIONALE for a short explanation of why this module was written.\n\
";
+crypto_X509Obj* (*new_x509)(X509*, int);
+crypto_X509NameObj* (*new_x509name)(X509_NAME*, int);
+crypto_X509StoreObj* (*new_x509store)(X509_STORE*, int);
+
+
#ifndef PY3
void **crypto_API;
#endif
@@ -73,6 +78,26 @@ PyOpenSSL_MODINIT(SSL) {
PyObject *ssl_api_object;
import_crypto();
+
+ new_x509 = crypto_X509_New;
+ new_x509name = crypto_X509Name_New;
+ new_x509store = crypto_X509Store_New;
+#else
+# ifdef _WIN32
+ HMODULE crypto = GetModuleHandle("crypto.pyd");
+ if (crypto == NULL) {
+ PyErr_SetString(PyExc_RuntimeError, "Unable to get crypto module");
+ PyOpenSSL_MODRETURN(NULL);
+ }
+
+ new_x509 = (crypto_X509Obj* (*)(X509*, int))GetProcAddress(crypto, "crypto_X509_New");
+ new_x509name = (crypto_X509NameObj* (*)(X509_NAME*, int))GetProcAddress(crypto, "crypto_X509Name_New");
+ new_x509store = (crypto_X509StoreObj* (*)(X509_STORE*, int))GetProcAddress(crypto, "crypto_X509Store_New");
+# else
+ new_x509 = crypto_X509_New;
+ new_x509name = crypto_X509Name_New;
+ new_x509store = crypto_X509Store_New;
+# endif
#endif
SSL_library_init();
diff --git a/OpenSSL/ssl/ssl.h b/OpenSSL/ssl/ssl.h
index ba7ba8b..75597ca 100644
--- a/OpenSSL/ssl/ssl.h
+++ b/OpenSSL/ssl/ssl.h
@@ -46,6 +46,10 @@ extern int _pyOpenSSL_tstate_key;
extern ssl_Context_New_RETURN ssl_Context_New ssl_Context_New_PROTO;
extern ssl_Connection_New_RETURN ssl_Connection_New ssl_Connection_New_PROTO;
+extern crypto_X509Obj* (*new_x509)(X509*, int);
+extern crypto_X509NameObj* (*new_x509name)(X509_NAME*, int);
+extern crypto_X509StoreObj* (*new_x509store)(X509_STORE*, int);
+
#else /* SSL_MODULE */
extern void **ssl_API;
diff --git a/OpenSSL/version.py b/OpenSSL/version.py
index 35a79cf..d8abe10 100644
--- a/OpenSSL/version.py
+++ b/OpenSSL/version.py
@@ -1,8 +1,8 @@
# Copyright (C) AB Strakt 2001-2004, All rights reserved
-# Copyright (C) Jean-Paul Calderone 2008-2009, All rights reserved
+# Copyright (C) Jean-Paul Calderone 2008-2010, All rights reserved
"""
pyOpenSSL - A simple wrapper around the OpenSSL library
"""
-__version__ = '0.10'
+__version__ = '0.11'
diff --git a/doc/html/about.html b/doc/html/about.html
index 48c5c93..92c9984 100644
--- a/doc/html/about.html
+++ b/doc/html/about.html
@@ -96,7 +96,7 @@ About this document ...</A>
<b class="navlabel">Previous:</b> <a class="sectref" href="socket-methods.html">4.3 Acessing Socket Methods</A>
<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/building-unix.html b/doc/html/building-unix.html
index 9b36657..47b1086 100644
--- a/doc/html/building-unix.html
+++ b/doc/html/building-unix.html
@@ -117,7 +117,7 @@ to find out more about how to use the script.
<b class="navlabel">Up:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
<b class="navlabel">Next:</b> <a class="sectref" href="building-windows.html">2.2 Building the Module</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/building-windows.html b/doc/html/building-windows.html
index bf8bf0d..ae2bdd7 100644
--- a/doc/html/building-windows.html
+++ b/doc/html/building-windows.html
@@ -109,7 +109,7 @@ to get more information.
<b class="navlabel">Up:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/building.html b/doc/html/building.html
index 4db96f5..534002b 100644
--- a/doc/html/building.html
+++ b/doc/html/building.html
@@ -62,9 +62,9 @@ I have tested this on Debian Linux systems (woody and sid), Solaris 2.6 and
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html77"
+<LI><A NAME="tex2html79"
href="building-unix.html">2.1 Building the Module on a Unix System </A>
-<LI><A NAME="tex2html78"
+<LI><A NAME="tex2html80"
href="building-windows.html">2.2 Building the Module on a Windows System </A>
</UL>
<!--End of Table of Child-Links-->
@@ -97,7 +97,7 @@ I have tested this on Debian Linux systems (woody and sid), Solaris 2.6 and
<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
<b class="navlabel">Next:</b> <a class="sectref" href="building-unix.html">2.1 Building the Module</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/callbacks.html b/doc/html/callbacks.html
index 809a5fc..77cdfc6 100644
--- a/doc/html/callbacks.html
+++ b/doc/html/callbacks.html
@@ -113,7 +113,7 @@ threadsafe (as long as properly initialized, as pyOpenSSL initializes it).
<b class="navlabel">Up:</b> <a class="sectref" href="internals.html">4 Internals</A>
<b class="navlabel">Next:</b> <a class="sectref" href="socket-methods.html">4.3 Acessing Socket Methods</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/contents.html b/doc/html/contents.html
index fd18d5c..ee61942 100644
--- a/doc/html/contents.html
+++ b/doc/html/contents.html
@@ -46,36 +46,36 @@ Contents</A>
<!--Table of Contents-->
<UL CLASS="TofC">
-<LI><A NAME="tex2html43"
+<LI><A NAME="tex2html45"
href="intro.html">1 Introduction </A>
-<LI><A NAME="tex2html44"
+<LI><A NAME="tex2html46"
href="building.html">2 Building and Installing </A>
<UL>
-<LI><A NAME="tex2html45"
+<LI><A NAME="tex2html47"
href="building-unix.html">2.1 Building the Module on a Unix System </A>
-<LI><A NAME="tex2html46"
+<LI><A NAME="tex2html48"
href="building-windows.html">2.2 Building the Module on a Windows System </A>
</UL>
<BR>
-<LI><A NAME="tex2html47"
+<LI><A NAME="tex2html49"
href="openssl.html">3 OpenSSL -- Python interface to OpenSSL </A>
<UL>
-<LI><A NAME="tex2html48"
+<LI><A NAME="tex2html50"
href="openssl-crypto.html">3.1 crypto -- Generic cryptographic module </A>
-<LI><A NAME="tex2html49"
+<LI><A NAME="tex2html51"
href="openssl-rand.html">3.2 rand -- An interface to the OpenSSL pseudo random number generator </A>
-<LI><A NAME="tex2html50"
+<LI><A NAME="tex2html52"
href="openssl-ssl.html">3.3 SSL -- An interface to the SSL-specific parts of OpenSSL </A>
</UL>
<BR>
-<LI><A NAME="tex2html51"
+<LI><A NAME="tex2html53"
href="internals.html">4 Internals </A>
<UL>
-<LI><A NAME="tex2html52"
+<LI><A NAME="tex2html54"
href="exceptions.html">4.1 Exceptions </A>
-<LI><A NAME="tex2html53"
+<LI><A NAME="tex2html55"
href="callbacks.html">4.2 Callbacks </A>
-<LI><A NAME="tex2html54"
+<LI><A NAME="tex2html56"
href="socket-methods.html">4.3 Acessing Socket Methods </A>
</UL></UL>
<!--End of Table of Contents-->
@@ -106,7 +106,7 @@ Contents</A>
<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
<b class="navlabel">Next:</b> <a class="sectref" href="intro.html">1 Introduction</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/crl.html b/doc/html/crl.html
new file mode 100644
index 0000000..c75aaf8
--- /dev/null
+++ b/doc/html/crl.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.10 CRL objects </title>
+<META NAME="description" CONTENT="3.1.10 CRL objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="revoked.html">
+<LINK REL="previous" href="openssl-netscape-spki.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="revoked.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-netscape-spki.html"><img src="previous.gif"
+ border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+ border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="revoked.html"><img src="next.gif"
+ border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+ border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="revoked.html">3.1.11 Revoked objects</A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION0004110000000000000000">&nbsp;</A>
+<BR>
+3.1.10 CRL objects
+</H3>
+
+<P>
+CRL objects have the following methods:
+
+<P>
+<dl><dt><b><a name='l2h-102'><tt class='method'>add_revoked</tt></a></b>(<var>revoked</var>)
+<dd>
+Add a Revoked object to the CRL, by value not reference.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-103'><tt class='method'>export</tt></a></b>(<var>cert, key</var><big>[</big><var>, type=FILETYPE_PEM</var><big>]</big><big>[</big><var>, days=100</var><big>]</big>)
+<dd>
+Use <var>cert</var> and <var>key</var> to sign the CRL and return the CRL as a string.
+<var>days</var> is the number of days before the next CRL is due.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-104'><tt class='method'>get_revoked</tt></a></b>()
+<dd>
+Return a tuple of Revoked objects, by value not reference.
+</dl>
+
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="openssl-netscape-spki.html"><img src="previous.gif"
+ border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+ border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="revoked.html"><img src="next.gif"
+ border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+ border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="revoked.html">3.1.11 Revoked objects</A>
+<hr>
+<span class="release-info">Release 0.11.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/exceptions.html b/doc/html/exceptions.html
index f8b07ee..0729fc1 100644
--- a/doc/html/exceptions.html
+++ b/doc/html/exceptions.html
@@ -89,7 +89,7 @@ For more information about this, see section <A href="openssl-ssl.html#openssl-s
<b class="navlabel">Up:</b> <a class="sectref" href="internals.html">4 Internals</A>
<b class="navlabel">Next:</b> <a class="sectref" href="callbacks.html">4.2 Callbacks</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/index.html b/doc/html/index.html
index 6eaaa67..4eab092 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -104,31 +104,35 @@ calling a corresponding function in the OpenSSL library.
href="openssl-509ext.html">3.1.8 X509Extension objects </A>
<LI><A NAME="tex2html23"
href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects </A>
-</UL>
<LI><A NAME="tex2html24"
- href="openssl-rand.html">3.2 <tt class="module">rand</tt> -- An interface to the OpenSSL pseudo random number generator </A>
+ href="crl.html">3.1.10 CRL objects </A>
<LI><A NAME="tex2html25"
+ href="revoked.html">3.1.11 Revoked objects </A>
+</UL>
+<LI><A NAME="tex2html26"
+ href="openssl-rand.html">3.2 <tt class="module">rand</tt> -- An interface to the OpenSSL pseudo random number generator </A>
+<LI><A NAME="tex2html27"
href="openssl-ssl.html">3.3 <tt class="module">SSL</tt> -- An interface to the SSL-specific parts of OpenSSL </A>
<UL>
-<LI><A NAME="tex2html26"
+<LI><A NAME="tex2html28"
href="openssl-context.html">3.3.1 Context objects </A>
-<LI><A NAME="tex2html27"
+<LI><A NAME="tex2html29"
href="openssl-connection.html">3.3.2 Connection objects </A>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html28"
+<LI><A NAME="tex2html30"
href="internals.html">4 Internals </A>
<UL>
-<LI><A NAME="tex2html29"
+<LI><A NAME="tex2html31"
href="exceptions.html">4.1 Exceptions </A>
-<LI><A NAME="tex2html30"
+<LI><A NAME="tex2html32"
href="callbacks.html">4.2 Callbacks </A>
-<LI><A NAME="tex2html31"
+<LI><A NAME="tex2html33"
href="socket-methods.html">4.3 Acessing Socket Methods </A>
</UL>
<BR>
-<LI><A NAME="tex2html32"
+<LI><A NAME="tex2html34"
href="about.html">About this document ...</A>
</UL>
<!--End of Table of Child-Links-->
@@ -159,7 +163,7 @@ calling a corresponding function in the OpenSSL library.
</tr></table>
<b class="navlabel">Next:</b> <a class="sectref" href="contents.html">Contents</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/internals.html b/doc/html/internals.html
index 31db8df..b6f70c0 100644
--- a/doc/html/internals.html
+++ b/doc/html/internals.html
@@ -59,11 +59,11 @@ accessing socket methods. This is what this chapter is about.
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html294"
+<LI><A NAME="tex2html322"
href="exceptions.html">4.1 Exceptions </A>
-<LI><A NAME="tex2html295"
+<LI><A NAME="tex2html323"
href="callbacks.html">4.2 Callbacks </A>
-<LI><A NAME="tex2html296"
+<LI><A NAME="tex2html324"
href="socket-methods.html">4.3 Acessing Socket Methods </A>
</UL>
<!--End of Table of Child-Links-->
@@ -96,7 +96,7 @@ accessing socket methods. This is what this chapter is about.
<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
<b class="navlabel">Next:</b> <a class="sectref" href="exceptions.html">4.1 Exceptions</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/intro.html b/doc/html/intro.html
index ea79ebe..442abb1 100644
--- a/doc/html/intro.html
+++ b/doc/html/intro.html
@@ -55,7 +55,7 @@ was begun) was severely limited. Other OpenSSL wrappers for Python at the time
were also limited, though in different ways. Unfortunately, Python's standard
library SSL support has remained weak, although other packages (such as
M2Crypto<A NAME="tex2html1"
- HREF="#foot1085"><SUP>1</SUP></A>)
+ HREF="#foot1178"><SUP>1</SUP></A>)
have made great advances and now equal or exceed pyOpenSSL's functionality.
<P>
@@ -67,7 +67,7 @@ and advance.
<P>
<BR><HR><H4>Footnotes</H4>
<DL>
-<DT><A NAME="foot1085">...
+<DT><A NAME="foot1178">...
M2Crypto</A><A
href="intro.html#tex2html1"><SUP>1</SUP></A></DT>
<DD>See <a class="url" href="http://chandlerproject.org/Projects/MeTooCrypto">http://chandlerproject.org/Projects/MeTooCrypto</a>
@@ -102,7 +102,7 @@ M2Crypto</A><A
<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
<b class="navlabel">Next:</b> <a class="sectref" href="building.html">2 Building and Installing</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-509ext.html b/doc/html/openssl-509ext.html
index b168f9b..f6a3237 100644
--- a/doc/html/openssl-509ext.html
+++ b/doc/html/openssl-509ext.html
@@ -52,13 +52,13 @@
X509Extension objects have several methods:
<P>
-<dl><dt><b><a name='l2h-90'><tt class='method'>get_critical</tt></a></b>()
+<dl><dt><b><a name='l2h-95'><tt class='method'>get_critical</tt></a></b>()
<dd>
Return the critical field of the extension object.
</dl>
<P>
-<dl><dt><b><a name='l2h-91'><tt class='method'>get_short_name</tt></a></b>()
+<dl><dt><b><a name='l2h-96'><tt class='method'>get_short_name</tt></a></b>()
<dd>
Return the short type name of the extension object.
</dl>
@@ -93,7 +93,7 @@ Return the short type name of the extension object.
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-connection.html b/doc/html/openssl-connection.html
index fd45c80..7ff7b6a 100644
--- a/doc/html/openssl-connection.html
+++ b/doc/html/openssl-connection.html
@@ -51,7 +51,7 @@
Connection objects have the following methods:
<P>
-<dl><dt><b><a name='l2h-160'><tt class='method'>accept</tt></a></b>()
+<dl><dt><b><a name='l2h-175'><tt class='method'>accept</tt></a></b>()
<dd>
Call the <tt class="method">accept</tt> method of the underlying socket and set up SSL on the
returned socket, using the Context object supplied to this Connection object at
@@ -61,20 +61,20 @@ socket's <tt class="method">accept</tt>.
</dl>
<P>
-<dl><dt><b><a name='l2h-161'><tt class='method'>bind</tt></a></b>(<var>address</var>)
+<dl><dt><b><a name='l2h-176'><tt class='method'>bind</tt></a></b>(<var>address</var>)
<dd>
Call the <tt class="method">bind</tt> method of the underlying socket.
</dl>
<P>
-<dl><dt><b><a name='l2h-162'><tt class='method'>close</tt></a></b>()
+<dl><dt><b><a name='l2h-177'><tt class='method'>close</tt></a></b>()
<dd>
Call the <tt class="method">close</tt> method of the underlying socket. Note: If you want
correct SSL closure, you need to call the <tt class="method">shutdown</tt> method first.
</dl>
<P>
-<dl><dt><b><a name='l2h-163'><tt class='method'>connect</tt></a></b>(<var>address</var>)
+<dl><dt><b><a name='l2h-178'><tt class='method'>connect</tt></a></b>(<var>address</var>)
<dd>
Call the <tt class="method">connect</tt> method of the underlying socket and set up SSL on the
socket, using the Context object supplied to this Connection object at
@@ -82,7 +82,7 @@ creation.
</dl>
<P>
-<dl><dt><b><a name='l2h-164'><tt class='method'>connect_ex</tt></a></b>(<var>address</var>)
+<dl><dt><b><a name='l2h-179'><tt class='method'>connect_ex</tt></a></b>(<var>address</var>)
<dd>
Call the <tt class="method">connect_ex</tt> method of the underlying socket and set up SSL on
the socket, using the Context object supplied to this Connection object at
@@ -91,7 +91,7 @@ return 0, SSL won't be initialized.
</dl>
<P>
-<dl><dt><b><a name='l2h-165'><tt class='method'>do_handshake</tt></a></b>()
+<dl><dt><b><a name='l2h-180'><tt class='method'>do_handshake</tt></a></b>()
<dd>
Perform an SSL handshake (usually called after <tt class="method">renegotiate</tt> or one of
<tt class="method">set_accept_state</tt> or <tt class="method">set_accept_state</tt>). This can raise the
@@ -99,25 +99,25 @@ same exceptions as <tt class="method">send</tt> and <tt class="method">recv</tt>
</dl>
<P>
-<dl><dt><b><a name='l2h-166'><tt class='method'>fileno</tt></a></b>()
+<dl><dt><b><a name='l2h-181'><tt class='method'>fileno</tt></a></b>()
<dd>
Retrieve the file descriptor number for the underlying socket.
</dl>
<P>
-<dl><dt><b><a name='l2h-167'><tt class='method'>listen</tt></a></b>(<var>backlog</var>)
+<dl><dt><b><a name='l2h-182'><tt class='method'>listen</tt></a></b>(<var>backlog</var>)
<dd>
Call the <tt class="method">listen</tt> method of the underlying socket.
</dl>
<P>
-<dl><dt><b><a name='l2h-168'><tt class='method'>get_app_data</tt></a></b>()
+<dl><dt><b><a name='l2h-183'><tt class='method'>get_app_data</tt></a></b>()
<dd>
Retrieve application data as set by <tt class="method">set_app_data</tt>.
</dl>
<P>
-<dl><dt><b><a name='l2h-169'><tt class='method'>get_cipher_list</tt></a></b>()
+<dl><dt><b><a name='l2h-184'><tt class='method'>get_cipher_list</tt></a></b>()
<dd>
Retrieve the list of ciphers used by the Connection object. WARNING: This API
has changed. It used to take an optional parameter and just return a string,
@@ -125,7 +125,7 @@ but not it returns the entire list in one go.
</dl>
<P>
-<dl><dt><b><a name='l2h-170'><tt class='method'>get_client_ca_list</tt></a></b>()
+<dl><dt><b><a name='l2h-185'><tt class='method'>get_client_ca_list</tt></a></b>()
<dd>
Retrieve the list of preferred client certificate issuers sent by the server
as <tt class="class">OpenSSL.crypto.X509Name</tt> objects.
@@ -146,44 +146,44 @@ by this <tt class="class">Connection</tt>'s <tt class="class">Context</tt>.
</dl>
<P>
-<dl><dt><b><a name='l2h-171'><tt class='method'>get_context</tt></a></b>()
+<dl><dt><b><a name='l2h-186'><tt class='method'>get_context</tt></a></b>()
<dd>
Retrieve the Context object associated with this Connection.
</dl>
<P>
-<dl><dt><b><a name='l2h-172'><tt class='method'>get_peer_certificate</tt></a></b>()
+<dl><dt><b><a name='l2h-187'><tt class='method'>get_peer_certificate</tt></a></b>()
<dd>
Retrieve the other side's certificate (if any)
</dl>
<P>
-<dl><dt><b><a name='l2h-173'><tt class='method'>getpeername</tt></a></b>()
+<dl><dt><b><a name='l2h-188'><tt class='method'>getpeername</tt></a></b>()
<dd>
Call the <tt class="method">getpeername</tt> method of the underlying socket.
</dl>
<P>
-<dl><dt><b><a name='l2h-174'><tt class='method'>getsockname</tt></a></b>()
+<dl><dt><b><a name='l2h-189'><tt class='method'>getsockname</tt></a></b>()
<dd>
Call the <tt class="method">getsockname</tt> method of the underlying socket.
</dl>
<P>
-<dl><dt><b><a name='l2h-175'><tt class='method'>getsockopt</tt></a></b>(<var>level, optname</var><big>[</big><var>, buflen</var><big>]</big>)
+<dl><dt><b><a name='l2h-190'><tt class='method'>getsockopt</tt></a></b>(<var>level, optname</var><big>[</big><var>, buflen</var><big>]</big>)
<dd>
Call the <tt class="method">getsockopt</tt> method of the underlying socket.
</dl>
<P>
-<dl><dt><b><a name='l2h-176'><tt class='method'>pending</tt></a></b>()
+<dl><dt><b><a name='l2h-191'><tt class='method'>pending</tt></a></b>()
<dd>
Retrieve the number of bytes that can be safely read from the SSL buffer
(<i>not</i> the underlying transport buffer).
</dl>
<P>
-<dl><dt><b><a name='l2h-177'><tt class='method'>recv</tt></a></b>(<var>bufsize</var>)
+<dl><dt><b><a name='l2h-192'><tt class='method'>recv</tt></a></b>(<var>bufsize</var>)
<dd>
Receive data from the Connection. The return value is a string representing the
data received. The maximum amount of data to be received at once, is specified
@@ -191,7 +191,7 @@ by <var>bufsize</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-178'><tt class='method'>bio_write</tt></a></b>(<var>bytes</var>)
+<dl><dt><b><a name='l2h-193'><tt class='method'>bio_write</tt></a></b>(<var>bytes</var>)
<dd>
If the Connection was created with a memory BIO, this method can be used to add
bytes to the read end of that memory BIO. The Connection can then read the
@@ -199,20 +199,20 @@ bytes (for example, in response to a call to <tt class="method">recv</tt>).
</dl>
<P>
-<dl><dt><b><a name='l2h-179'><tt class='method'>renegotiate</tt></a></b>()
+<dl><dt><b><a name='l2h-194'><tt class='method'>renegotiate</tt></a></b>()
<dd>
Renegotiate the SSL session. Call this if you wish to change cipher suites or
anything like that.
</dl>
<P>
-<dl><dt><b><a name='l2h-180'><tt class='method'>send</tt></a></b>(<var>string</var>)
+<dl><dt><b><a name='l2h-195'><tt class='method'>send</tt></a></b>(<var>string</var>)
<dd>
Send the <var>string</var> data to the Connection.
</dl>
<P>
-<dl><dt><b><a name='l2h-181'><tt class='method'>bio_read</tt></a></b>(<var>bufsize</var>)
+<dl><dt><b><a name='l2h-196'><tt class='method'>bio_read</tt></a></b>(<var>bufsize</var>)
<dd>
If the Connection was created with a memory BIO, this method can be used to
read bytes from the write end of that memory BIO. Many Connection methods will
@@ -221,7 +221,7 @@ up and the Connection will be able to take no further actions.
</dl>
<P>
-<dl><dt><b><a name='l2h-182'><tt class='method'>sendall</tt></a></b>(<var>string</var>)
+<dl><dt><b><a name='l2h-197'><tt class='method'>sendall</tt></a></b>(<var>string</var>)
<dd>
Send all of the <var>string</var> data to the Connection. This calls <tt class="method">send</tt>
repeatedly until all data is sent. If an error occurs, it's impossible to tell
@@ -229,40 +229,40 @@ how much data has been sent.
</dl>
<P>
-<dl><dt><b><a name='l2h-183'><tt class='method'>set_accept_state</tt></a></b>()
+<dl><dt><b><a name='l2h-198'><tt class='method'>set_accept_state</tt></a></b>()
<dd>
Set the connection to work in server mode. The handshake will be handled
automatically by read/write.
</dl>
<P>
-<dl><dt><b><a name='l2h-184'><tt class='method'>set_app_data</tt></a></b>(<var>data</var>)
+<dl><dt><b><a name='l2h-199'><tt class='method'>set_app_data</tt></a></b>(<var>data</var>)
<dd>
Associate <var>data</var> with this Connection object. <var>data</var> can be retrieved
later using the <tt class="method">get_app_data</tt> method.
</dl>
<P>
-<dl><dt><b><a name='l2h-185'><tt class='method'>set_connect_state</tt></a></b>()
+<dl><dt><b><a name='l2h-200'><tt class='method'>set_connect_state</tt></a></b>()
<dd>
Set the connection to work in client mode. The handshake will be handled
automatically by read/write.
</dl>
<P>
-<dl><dt><b><a name='l2h-186'><tt class='method'>setblocking</tt></a></b>(<var>flag</var>)
+<dl><dt><b><a name='l2h-201'><tt class='method'>setblocking</tt></a></b>(<var>flag</var>)
<dd>
Call the <tt class="method">setblocking</tt> method of the underlying socket.
</dl>
<P>
-<dl><dt><b><a name='l2h-187'><tt class='method'>setsockopt</tt></a></b>(<var>level, optname, value</var>)
+<dl><dt><b><a name='l2h-202'><tt class='method'>setsockopt</tt></a></b>(<var>level, optname, value</var>)
<dd>
Call the <tt class="method">setsockopt</tt> method of the underlying socket.
</dl>
<P>
-<dl><dt><b><a name='l2h-188'><tt class='method'>shutdown</tt></a></b>()
+<dl><dt><b><a name='l2h-203'><tt class='method'>shutdown</tt></a></b>()
<dd>
Send the shutdown message to the Connection. Returns true if the shutdown
message exchange is completed and false otherwise (in which case you call
@@ -271,27 +271,27 @@ readable/writeable.
</dl>
<P>
-<dl><dt><b><a name='l2h-189'><tt class='method'>get_shutdown</tt></a></b>()
+<dl><dt><b><a name='l2h-204'><tt class='method'>get_shutdown</tt></a></b>()
<dd>
Get the shutdown state of the Connection. Returns a bitvector of either or
both of <var>SENT_SHUTDOWN</var> and <var>RECEIVED_SHUTDOWN</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-190'><tt class='method'>set_shutdown</tt></a></b>(<var>state</var>)
+<dl><dt><b><a name='l2h-205'><tt class='method'>set_shutdown</tt></a></b>(<var>state</var>)
<dd>
Set the shutdown state of the Connection. <var>state</var> is a bitvector of
either or both of <var>SENT_SHUTDOWN</var> and <var>RECEIVED_SHUTDOWN</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-191'><tt class='method'>sock_shutdown</tt></a></b>(<var>how</var>)
+<dl><dt><b><a name='l2h-206'><tt class='method'>sock_shutdown</tt></a></b>(<var>how</var>)
<dd>
Call the <tt class="method">shutdown</tt> method of the underlying socket.
</dl>
<P>
-<dl><dt><b><a name='l2h-192'><tt class='method'>bio_shutdown</tt></a></b>()
+<dl><dt><b><a name='l2h-207'><tt class='method'>bio_shutdown</tt></a></b>()
<dd>
If the Connection was created with a memory BIO, this method can be used to
indicate that ``end of file'' has been reached on the read end of that memory
@@ -299,38 +299,38 @@ BIO.
</dl>
<P>
-<dl><dt><b><a name='l2h-193'><tt class='method'>state_string</tt></a></b>()
+<dl><dt><b><a name='l2h-208'><tt class='method'>state_string</tt></a></b>()
<dd>
Retrieve a verbose string detailing the state of the Connection.
</dl>
<P>
-<dl><dt><b><a name='l2h-194'><tt class='method'>client_random</tt></a></b>()
+<dl><dt><b><a name='l2h-209'><tt class='method'>client_random</tt></a></b>()
<dd>
Retrieve the random value used with the client hello message.
</dl>
<P>
-<dl><dt><b><a name='l2h-195'><tt class='method'>server_random</tt></a></b>()
+<dl><dt><b><a name='l2h-210'><tt class='method'>server_random</tt></a></b>()
<dd>
Retrieve the random value used with the server hello message.
</dl>
<P>
-<dl><dt><b><a name='l2h-196'><tt class='method'>master_key</tt></a></b>()
+<dl><dt><b><a name='l2h-211'><tt class='method'>master_key</tt></a></b>()
<dd>
Retrieve the value of the master key for this session.
</dl>
<P>
-<dl><dt><b><a name='l2h-197'><tt class='method'>want_read</tt></a></b>()
+<dl><dt><b><a name='l2h-212'><tt class='method'>want_read</tt></a></b>()
<dd>
Checks if more data has to be read from the transport layer to complete an
operation.
</dl>
<P>
-<dl><dt><b><a name='l2h-198'><tt class='method'>want_write</tt></a></b>()
+<dl><dt><b><a name='l2h-213'><tt class='method'>want_write</tt></a></b>()
<dd>
Checks if there is data to write to the transport layer to complete an
operation.
@@ -366,7 +366,7 @@ operation.
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
<b class="navlabel">Next:</b> <a class="sectref" href="internals.html">4 Internals</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-context.html b/doc/html/openssl-context.html
index 5ea2591..7c9ab4c 100644
--- a/doc/html/openssl-context.html
+++ b/doc/html/openssl-context.html
@@ -52,7 +52,7 @@
Context objects have the following methods:
<P>
-<dl><dt><b><a name='l2h-133'><tt class='method'>check_privatekey</tt></a></b>()
+<dl><dt><b><a name='l2h-148'><tt class='method'>check_privatekey</tt></a></b>()
<dd>
Check if the private key (loaded with <tt class="method">use_privatekey<big>[</big>_file<big>]</big></tt>)
matches the certificate (loaded with <tt class="method">use_certificate<big>[</big>_file<big>]</big></tt>).
@@ -60,13 +60,13 @@ Returns <code>None</code> if they match, raises <tt class="exception">Error</tt>
</dl>
<P>
-<dl><dt><b><a name='l2h-134'><tt class='method'>get_app_data</tt></a></b>()
+<dl><dt><b><a name='l2h-149'><tt class='method'>get_app_data</tt></a></b>()
<dd>
Retrieve application data as set by <tt class="method">set_app_data</tt>.
</dl>
<P>
-<dl><dt><b><a name='l2h-135'><tt class='method'>get_cert_store</tt></a></b>()
+<dl><dt><b><a name='l2h-150'><tt class='method'>get_cert_store</tt></a></b>()
<dd>
Retrieve the certificate store (a X509Store object) that the context uses.
This can be used to add "trusted" certificates without using the.
@@ -74,34 +74,34 @@ This can be used to add "trusted" certificates without using the.
</dl>
<P>
-<dl><dt><b><a name='l2h-136'><tt class='method'>get_timeout</tt></a></b>()
+<dl><dt><b><a name='l2h-151'><tt class='method'>get_timeout</tt></a></b>()
<dd>
Retrieve session timeout, as set by <tt class="method">set_timeout</tt>. The default is 300
seconds.
</dl>
<P>
-<dl><dt><b><a name='l2h-137'><tt class='method'>get_verify_depth</tt></a></b>()
+<dl><dt><b><a name='l2h-152'><tt class='method'>get_verify_depth</tt></a></b>()
<dd>
Retrieve the Context object's verify depth, as set by
<tt class="method">set_verify_depth</tt>.
</dl>
<P>
-<dl><dt><b><a name='l2h-138'><tt class='method'>get_verify_mode</tt></a></b>()
+<dl><dt><b><a name='l2h-153'><tt class='method'>get_verify_mode</tt></a></b>()
<dd>
Retrieve the Context object's verify mode, as set by <tt class="method">set_verify</tt>.
</dl>
<P>
-<dl><dt><b><a name='l2h-139'><tt class='method'>load_client_ca</tt></a></b>(<var>pemfile</var>)
+<dl><dt><b><a name='l2h-154'><tt class='method'>load_client_ca</tt></a></b>(<var>pemfile</var>)
<dd>
Read a file with PEM-formatted certificates that will be sent to the client
when requesting a client certificate.
</dl>
<P>
-<dl><dt><b><a name='l2h-140'><tt class='method'>set_client_ca_list</tt></a></b>(<var>certificate_authorities</var>)
+<dl><dt><b><a name='l2h-155'><tt class='method'>set_client_ca_list</tt></a></b>(<var>certificate_authorities</var>)
<dd>
Replace the current list of preferred certificate signers that would be
sent to the client when requesting a client certificate with the
@@ -114,7 +114,7 @@ sent to the client when requesting a client certificate with the
</dl>
<P>
-<dl><dt><b><a name='l2h-141'><tt class='method'>add_client_ca</tt></a></b>(<var>certificate_authority</var>)
+<dl><dt><b><a name='l2h-156'><tt class='method'>add_client_ca</tt></a></b>(<var>certificate_authority</var>)
<dd>
Extract a <tt class="class">OpenSSL.crypto.X509Name</tt> from the <var>certificate_authority</var>
<tt class="class">OpenSSL.crypto.X509</tt> certificate and add it to the list of preferred
@@ -127,7 +127,7 @@ certificate signers sent to the client when requesting a client certificate.
</dl>
<P>
-<dl><dt><b><a name='l2h-142'><tt class='method'>load_verify_locations</tt></a></b>(<var>pemfile, capath</var>)
+<dl><dt><b><a name='l2h-157'><tt class='method'>load_verify_locations</tt></a></b>(<var>pemfile, capath</var>)
<dd>
Specify where CA certificates for verification purposes are located. These
are trusted certificates. Note that the certificates have to be in PEM
@@ -137,34 +137,34 @@ format. If capath is passed, it must be a directory prepared using the
</dl>
<P>
-<dl><dt><b><a name='l2h-143'><tt class='method'>set_default_verify_paths</tt></a></b>()
+<dl><dt><b><a name='l2h-158'><tt class='method'>set_default_verify_paths</tt></a></b>()
<dd>
Specify that the platform provided CA certificates are to be used for
verification purposes. This method may not work properly on OS X.
</dl>
<P>
-<dl><dt><b><a name='l2h-144'><tt class='method'>load_tmp_dh</tt></a></b>(<var>dhfile</var>)
+<dl><dt><b><a name='l2h-159'><tt class='method'>load_tmp_dh</tt></a></b>(<var>dhfile</var>)
<dd>
Load parameters for Ephemeral Diffie-Hellman from <var>dhfile</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-145'><tt class='method'>set_app_data</tt></a></b>(<var>data</var>)
+<dl><dt><b><a name='l2h-160'><tt class='method'>set_app_data</tt></a></b>(<var>data</var>)
<dd>
Associate <var>data</var> with this Context object. <var>data</var> can be retrieved
later using the <tt class="method">get_app_data</tt> method.
</dl>
<P>
-<dl><dt><b><a name='l2h-146'><tt class='method'>set_cipher_list</tt></a></b>(<var>ciphers</var>)
+<dl><dt><b><a name='l2h-161'><tt class='method'>set_cipher_list</tt></a></b>(<var>ciphers</var>)
<dd>
Set the list of ciphers to be used in this context. See the OpenSSL manual for
more information (e.g. ciphers(1))
</dl>
<P>
-<dl><dt><b><a name='l2h-147'><tt class='method'>set_info_callback</tt></a></b>(<var>callback</var>)
+<dl><dt><b><a name='l2h-162'><tt class='method'>set_info_callback</tt></a></b>(<var>callback</var>)
<dd>
Set the information callback to <var>callback</var>. This function will be called
from time to time during SSL handshakes.
@@ -175,14 +175,14 @@ function call.
</dl>
<P>
-<dl><dt><b><a name='l2h-148'><tt class='method'>set_options</tt></a></b>(<var>options</var>)
+<dl><dt><b><a name='l2h-163'><tt class='method'>set_options</tt></a></b>(<var>options</var>)
<dd>
Add SSL options. Options you have set before are not cleared!
This method should be used with the <tt class="constant">OP_*</tt> constants.
</dl>
<P>
-<dl><dt><b><a name='l2h-149'><tt class='method'>set_passwd_cb</tt></a></b>(<var>callback</var><big>[</big><var>, userdata</var><big>]</big>)
+<dl><dt><b><a name='l2h-164'><tt class='method'>set_passwd_cb</tt></a></b>(<var>callback</var><big>[</big><var>, userdata</var><big>]</big>)
<dd>
Set the passphrase callback to <var>callback</var>. This function will be called
when a private key with a passphrase is loaded. <var>callback</var> must accept
@@ -196,7 +196,7 @@ verify that the two values supplied are equal. Third, the value given as the
</dl>
<P>
-<dl><dt><b><a name='l2h-150'><tt class='method'>set_session_id</tt></a></b>(<var>name</var>)
+<dl><dt><b><a name='l2h-165'><tt class='method'>set_session_id</tt></a></b>(<var>name</var>)
<dd>
Set the context <var>name</var> within which a session can be reused for this
Context object. This is needed when doing session resumption, because there is
@@ -205,7 +205,7 @@ no way for a stored session to know which Context object it is associated with.
</dl>
<P>
-<dl><dt><b><a name='l2h-151'><tt class='method'>set_timeout</tt></a></b>(<var>timeout</var>)
+<dl><dt><b><a name='l2h-166'><tt class='method'>set_timeout</tt></a></b>(<var>timeout</var>)
<dd>
Set the timeout for newly created sessions for this Context object to
<var>timeout</var>. <var>timeout</var> must be given in (whole) seconds. The default
@@ -214,7 +214,7 @@ SSL_CTX_set_timeout(3)).
</dl>
<P>
-<dl><dt><b><a name='l2h-152'><tt class='method'>set_verify</tt></a></b>(<var>mode, callback</var>)
+<dl><dt><b><a name='l2h-167'><tt class='method'>set_verify</tt></a></b>(<var>mode, callback</var>)
<dd>
Set the verification flags for this Context object to <var>mode</var> and specify
that <var>callback</var> should be used for verification callbacks. <var>mode</var>
@@ -229,39 +229,39 @@ and false otherwise.
</dl>
<P>
-<dl><dt><b><a name='l2h-153'><tt class='method'>set_verify_depth</tt></a></b>(<var>depth</var>)
+<dl><dt><b><a name='l2h-168'><tt class='method'>set_verify_depth</tt></a></b>(<var>depth</var>)
<dd>
Set the maximum depth for the certificate chain verification that shall be
allowed for this Context object.
</dl>
<P>
-<dl><dt><b><a name='l2h-154'><tt class='method'>use_certificate</tt></a></b>(<var>cert</var>)
+<dl><dt><b><a name='l2h-169'><tt class='method'>use_certificate</tt></a></b>(<var>cert</var>)
<dd>
Use the certificate <var>cert</var> which has to be a X509 object.
</dl>
<P>
-<dl><dt><b><a name='l2h-155'><tt class='method'>add_extra_chain_cert</tt></a></b>(<var>cert</var>)
+<dl><dt><b><a name='l2h-170'><tt class='method'>add_extra_chain_cert</tt></a></b>(<var>cert</var>)
<dd>
Adds the certificate <var>cert</var>, which has to be a X509 object, to the
certificate chain presented together with the certificate.
</dl>
<P>
-<dl><dt><b><a name='l2h-156'><tt class='method'>use_certificate_chain_file</tt></a></b>(<var>file</var>)
+<dl><dt><b><a name='l2h-171'><tt class='method'>use_certificate_chain_file</tt></a></b>(<var>file</var>)
<dd>
Load a certificate chain from <var>file</var> which must be PEM encoded.
</dl>
<P>
-<dl><dt><b><a name='l2h-157'><tt class='method'>use_privatekey</tt></a></b>(<var>pkey</var>)
+<dl><dt><b><a name='l2h-172'><tt class='method'>use_privatekey</tt></a></b>(<var>pkey</var>)
<dd>
Use the private key <var>pkey</var> which has to be a PKey object.
</dl>
<P>
-<dl><dt><b><a name='l2h-158'><tt class='method'>use_certificate_file</tt></a></b>(<var>file</var><big>[</big><var>, format</var><big>]</big>)
+<dl><dt><b><a name='l2h-173'><tt class='method'>use_certificate_file</tt></a></b>(<var>file</var><big>[</big><var>, format</var><big>]</big>)
<dd>
Load the first certificate found in <var>file</var>. The certificate must be in the
format specified by <var>format</var>, which is either <tt class="constant">FILETYPE_PEM</tt> or
@@ -269,7 +269,7 @@ format specified by <var>format</var>, which is either <tt class="constant">FILE
</dl>
<P>
-<dl><dt><b><a name='l2h-159'><tt class='method'>use_privatekey_file</tt></a></b>(<var>file</var><big>[</big><var>, format</var><big>]</big>)
+<dl><dt><b><a name='l2h-174'><tt class='method'>use_privatekey_file</tt></a></b>(<var>file</var><big>[</big><var>, format</var><big>]</big>)
<dd>
Load the first private key found in <var>file</var>. The private key must be in the
format specified by <var>format</var>, which is either <tt class="constant">FILETYPE_PEM</tt> or
@@ -306,7 +306,7 @@ format specified by <var>format</var>, which is either <tt class="constant">FILE
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-connection.html">3.3.2 Connection objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-crypto.html b/doc/html/openssl-crypto.html
index 1f43cc9..18f8cf4 100644
--- a/doc/html/openssl-crypto.html
+++ b/doc/html/openssl-crypto.html
@@ -153,41 +153,53 @@ method.
</dl>
<P>
-<dl><dt><b><a name='l2h-21'><tt>FILETYPE_PEM</tt></a></b>
+<dl><dt><b>class <a name='l2h-21'><tt class='class'>CRL</tt></a></b>()
<dd>
-<dt><b><a name='l2h-32'><tt>FILETYPE_ASN1</tt></a></b><dd>
+A class representing Certifcate Revocation List objects.
+</dl>
+
+<P>
+<dl><dt><b>class <a name='l2h-22'><tt class='class'>Revoked</tt></a></b>()
+<dd>
+A class representing Revocation objects of CRL.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-23'><tt>FILETYPE_PEM</tt></a></b>
+<dd>
+<dt><b><a name='l2h-37'><tt>FILETYPE_ASN1</tt></a></b><dd>
File type constants.
</dl>
<P>
-<dl><dt><b><a name='l2h-22'><tt>TYPE_RSA</tt></a></b>
+<dl><dt><b><a name='l2h-24'><tt>TYPE_RSA</tt></a></b>
<dd>
-<dt><b><a name='l2h-33'><tt>TYPE_DSA</tt></a></b><dd>
+<dt><b><a name='l2h-38'><tt>TYPE_DSA</tt></a></b><dd>
Key type constants.
</dl>
<P>
-<dl><dt><b>exception <a name='l2h-23'><tt class='exception'>Error</tt></a></b>
+<dl><dt><b>exception <a name='l2h-25'><tt class='exception'>Error</tt></a></b>
<dd>
Generic exception used in the <tt class="module">crypto</tt> module.
</dl>
<P>
-<dl><dt><b><a name='l2h-24'><tt class='function'>dump_certificate</tt></a></b>(<var>type, cert</var>)
+<dl><dt><b><a name='l2h-26'><tt class='function'>dump_certificate</tt></a></b>(<var>type, cert</var>)
<dd>
Dump the certificate <var>cert</var> into a buffer string encoded with the type
<var>type</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-25'><tt class='function'>dump_certificate_request</tt></a></b>(<var>type, req</var>)
+<dl><dt><b><a name='l2h-27'><tt class='function'>dump_certificate_request</tt></a></b>(<var>type, req</var>)
<dd>
Dump the certificate request <var>req</var> into a buffer string encoded with the
type <var>type</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-26'><tt class='function'>dump_privatekey</tt></a></b>(<var>type, pkey</var><big>[</big><var>, cipher, passphrase</var><big>]</big>)
+<dl><dt><b><a name='l2h-28'><tt class='function'>dump_privatekey</tt></a></b>(<var>type, pkey</var><big>[</big><var>, cipher, passphrase</var><big>]</big>)
<dd>
Dump the private key <var>pkey</var> into a buffer string encoded with the type
<var>type</var>, optionally (if <var>type</var> is <tt class="constant">FILETYPE_PEM</tt>) encrypting it
@@ -199,21 +211,21 @@ pass phrase.
</dl>
<P>
-<dl><dt><b><a name='l2h-27'><tt class='function'>load_certificate</tt></a></b>(<var>type, buffer</var>)
+<dl><dt><b><a name='l2h-29'><tt class='function'>load_certificate</tt></a></b>(<var>type, buffer</var>)
<dd>
Load a certificate (X509) from the string <var>buffer</var> encoded with the
type <var>type</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-28'><tt class='function'>load_certificate_request</tt></a></b>(<var>type, buffer</var>)
+<dl><dt><b><a name='l2h-30'><tt class='function'>load_certificate_request</tt></a></b>(<var>type, buffer</var>)
<dd>
Load a certificate request (X509Req) from the string <var>buffer</var> encoded with
the type <var>type</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-29'><tt class='function'>load_privatekey</tt></a></b>(<var>type, buffer</var><big>[</big><var>, passphrase</var><big>]</big>)
+<dl><dt><b><a name='l2h-31'><tt class='function'>load_privatekey</tt></a></b>(<var>type, buffer</var><big>[</big><var>, passphrase</var><big>]</big>)
<dd>
Load a private key (PKey) from the string <var>buffer</var> encoded with
the type <var>type</var> (must be one of <tt class="constant">FILETYPE_PEM</tt> and
@@ -225,13 +237,21 @@ pass phrase.
</dl>
<P>
-<dl><dt><b><a name='l2h-30'><tt class='function'>load_pkcs7_data</tt></a></b>(<var>type, buffer</var>)
+<dl><dt><b><a name='l2h-32'><tt class='function'>load_crl</tt></a></b>(<var>type, buffer</var>)
+<dd>
+Load Certificate Revocation List (CRL) data from a string <var>buffer</var>.
+<var>buffer</var> encoded with the type <var>type</var>. The type <var>type</var>
+must either <tt class="constant">FILETYPE_PEM</tt> or <tt class="constant">FILETYPE_ASN1</tt>).
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-33'><tt class='function'>load_pkcs7_data</tt></a></b>(<var>type, buffer</var>)
<dd>
Load pkcs7 data from the string <var>buffer</var> encoded with the type <var>type</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-31'><tt class='function'>load_pkcs12</tt></a></b>(<var>buffer</var><big>[</big><var>, passphrase</var><big>]</big>)
+<dl><dt><b><a name='l2h-34'><tt class='function'>load_pkcs12</tt></a></b>(<var>buffer</var><big>[</big><var>, passphrase</var><big>]</big>)
<dd>
Load pkcs12 data from the string <var>buffer</var>. If the pkcs12 structure is
encrypted, a <var>passphrase</var> must be included. The MAC is always
@@ -242,30 +262,64 @@ See also the man page for the C function <tt class="function">PKCS12_parse</tt>.
</dl>
<P>
+<dl><dt><b><a name='l2h-35'><tt class='function'>sign</tt></a></b>(<var>key, data, digest</var>)
+<dd>
+Sign a data string using the given key and message digest.
+
+<P>
+<var>key</var> is a <code>PKey</code> instance. <var>data</var> is a <code>str</code> instance.
+<var>digest</var> is a <code>str</code> naming a supported message digest type, for example
+<code>``sha1''</code>.
+
+<span class='versionnote'>New in version 0.11.</span>
+
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-36'><tt class='function'>verify</tt></a></b>(<var>certificate, signature, data, digest</var>)
+<dd>
+Verify the signature for a data string.
+
+<P>
+<var>certificate</var> is a <code>X509</code> instance corresponding to the private key
+which generated the signature. <var>signature</var> is a <var>str</var> instance giving
+the signature itself. <var>data</var> is a <var>str</var> instance giving the data to
+which the signature applies. <var>digest</var> is a <var>str</var> instance naming the
+message digest type of the signature, for example <code>``sha1''</code>.
+
+<span class='versionnote'>New in version 0.11.</span>
+
+</dl>
+
+<P>
<p><hr>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html135"
+<LI><A NAME="tex2html139"
href="openssl-x509.html">3.1.1 X509 objects </A>
-<LI><A NAME="tex2html136"
+<LI><A NAME="tex2html140"
href="openssl-x509name.html">3.1.2 X509Name objects </A>
-<LI><A NAME="tex2html137"
+<LI><A NAME="tex2html141"
href="openssl-x509req.html">3.1.3 X509Req objects </A>
-<LI><A NAME="tex2html138"
+<LI><A NAME="tex2html142"
href="openssl-x509store.html">3.1.4 X509Store objects </A>
-<LI><A NAME="tex2html139"
+<LI><A NAME="tex2html143"
href="openssl-pkey.html">3.1.5 PKey objects </A>
-<LI><A NAME="tex2html140"
+<LI><A NAME="tex2html144"
href="openssl-pkcs7.html">3.1.6 PKCS7 objects </A>
-<LI><A NAME="tex2html141"
+<LI><A NAME="tex2html145"
href="openssl-pkcs12.html">3.1.7 PKCS12 objects </A>
-<LI><A NAME="tex2html142"
+<LI><A NAME="tex2html146"
href="openssl-509ext.html">3.1.8 X509Extension objects </A>
-<LI><A NAME="tex2html143"
+<LI><A NAME="tex2html147"
href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects </A>
+<LI><A NAME="tex2html148"
+ href="crl.html">3.1.10 CRL objects </A>
+<LI><A NAME="tex2html149"
+ href="revoked.html">3.1.11 Revoked objects </A>
</UL>
<!--End of Table of Child-Links-->
@@ -297,7 +351,7 @@ See also the man page for the C function <tt class="function">PKCS12_parse</tt>.
<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509.html">3.1.1 X509 objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-netscape-spki.html b/doc/html/openssl-netscape-spki.html
index 6c008f8..50e125e 100644
--- a/doc/html/openssl-netscape-spki.html
+++ b/doc/html/openssl-netscape-spki.html
@@ -7,9 +7,10 @@
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="next" href="crl.html">
<LINK REL="previous" href="openssl-509ext.html">
<LINK REL="up" href="openssl-crypto.html">
-<LINK REL="next" href="openssl-rand.html">
+<LINK REL="next" href="crl.html">
</head>
<body>
<DIV CLASS="navigation">
@@ -21,7 +22,7 @@
<td><A href="openssl-crypto.html"><img src="up.gif"
border="0" height="32"
alt="Up One Level" width="32"></A></td>
-<td><A href="openssl-rand.html"><img src="next.gif"
+<td><A href="crl.html"><img src="next.gif"
border="0" height="32"
alt="Next Page" width="32"></A></td>
<td align="center" width="100%">Python OpenSSL Manual</td>
@@ -37,7 +38,7 @@
</tr></table>
<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-509ext.html">3.1.8 X509Extension objects</A>
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
-<b class="navlabel">Next:</b> <a class="sectref" href="openssl-rand.html">3.2 rand </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="crl.html">3.1.10 CRL objects</A>
<br><hr>
</DIV>
<!--End of Navigation Panel-->
@@ -51,25 +52,25 @@
NetscapeSPKI objects have the following methods:
<P>
-<dl><dt><b><a name='l2h-92'><tt class='method'>b64_encode</tt></a></b>()
+<dl><dt><b><a name='l2h-97'><tt class='method'>b64_encode</tt></a></b>()
<dd>
Return a base64-encoded string representation of the object.
</dl>
<P>
-<dl><dt><b><a name='l2h-93'><tt class='method'>get_pubkey</tt></a></b>()
+<dl><dt><b><a name='l2h-98'><tt class='method'>get_pubkey</tt></a></b>()
<dd>
Return the public key of object.
</dl>
<P>
-<dl><dt><b><a name='l2h-94'><tt class='method'>set_pubkey</tt></a></b>(<var>key</var>)
+<dl><dt><b><a name='l2h-99'><tt class='method'>set_pubkey</tt></a></b>(<var>key</var>)
<dd>
Set the public key of the object to <var>key</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-95'><tt class='method'>sign</tt></a></b>(<var>key, digest_name</var>)
+<dl><dt><b><a name='l2h-100'><tt class='method'>sign</tt></a></b>(<var>key, digest_name</var>)
<dd>
Sign the NetscapeSPKI object using the given <var>key</var> and
<var>digest_name</var>. <var>digest_name</var> must be a string describing a digest
@@ -78,7 +79,7 @@ example, <tt class="constant">"md5"</tt> or <tt class="constant">"sha1"</tt>.
</dl>
<P>
-<dl><dt><b><a name='l2h-96'><tt class='method'>verify</tt></a></b>(<var>key</var>)
+<dl><dt><b><a name='l2h-101'><tt class='method'>verify</tt></a></b>(<var>key</var>)
<dd>
Verify the NetscapeSPKI object using the given <var>key</var>.
</dl>
@@ -95,7 +96,7 @@ Verify the NetscapeSPKI object using the given <var>key</var>.
<td><A href="openssl-crypto.html"><img src="up.gif"
border="0" height="32"
alt="Up One Level" width="32"></A></td>
-<td><A href="openssl-rand.html"><img src="next.gif"
+<td><A href="crl.html"><img src="next.gif"
border="0" height="32"
alt="Next Page" width="32"></A></td>
<td align="center" width="100%">Python OpenSSL Manual</td>
@@ -111,9 +112,9 @@ Verify the NetscapeSPKI object using the given <var>key</var>.
</tr></table>
<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-509ext.html">3.1.8 X509Extension objects</A>
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
-<b class="navlabel">Next:</b> <a class="sectref" href="openssl-rand.html">3.2 rand </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="crl.html">3.1.10 CRL objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-pkcs12.html b/doc/html/openssl-pkcs12.html
index ce7c970..30dd509 100644
--- a/doc/html/openssl-pkcs12.html
+++ b/doc/html/openssl-pkcs12.html
@@ -52,7 +52,7 @@
PKCS12 objects have the following methods:
<P>
-<dl><dt><b><a name='l2h-81'><tt class='method'>export</tt></a></b>(<big>[</big><var>passphrase=None</var><big>]</big><big>[</big><var>, iter=2048</var><big>]</big><big>[</big><var>, maciter=1</var><big>]</big>)
+<dl><dt><b><a name='l2h-86'><tt class='method'>export</tt></a></b>(<big>[</big><var>passphrase=None</var><big>]</big><big>[</big><var>, iter=2048</var><big>]</big><big>[</big><var>, maciter=1</var><big>]</big>)
<dd>
Returns a PKCS12 object as a string.
@@ -64,32 +64,32 @@ See also the man page for the C function <tt class="function">PKCS12_create</tt>
</dl>
<P>
-<dl><dt><b><a name='l2h-82'><tt class='method'>get_ca_certificates</tt></a></b>()
+<dl><dt><b><a name='l2h-87'><tt class='method'>get_ca_certificates</tt></a></b>()
<dd>
Return CA certificates within the PKCS12 object as a tuple. Returns
<tt class="constant">None</tt> if no CA certificates are present.
</dl>
<P>
-<dl><dt><b><a name='l2h-83'><tt class='method'>get_certificate</tt></a></b>()
+<dl><dt><b><a name='l2h-88'><tt class='method'>get_certificate</tt></a></b>()
<dd>
Return certificate portion of the PKCS12 structure.
</dl>
<P>
-<dl><dt><b><a name='l2h-84'><tt class='method'>get_friendlyname</tt></a></b>()
+<dl><dt><b><a name='l2h-89'><tt class='method'>get_friendlyname</tt></a></b>()
<dd>
Return friendlyName portion of the PKCS12 structure.
</dl>
<P>
-<dl><dt><b><a name='l2h-85'><tt class='method'>get_privatekey</tt></a></b>()
+<dl><dt><b><a name='l2h-90'><tt class='method'>get_privatekey</tt></a></b>()
<dd>
Return private key portion of the PKCS12 structure
</dl>
<P>
-<dl><dt><b><a name='l2h-86'><tt class='method'>set_ca_certificates</tt></a></b>(<var>cacerts</var>)
+<dl><dt><b><a name='l2h-91'><tt class='method'>set_ca_certificates</tt></a></b>(<var>cacerts</var>)
<dd>
Replace or set the CA certificates within the PKCS12 object with the sequence <var>cacerts</var>.
@@ -98,19 +98,19 @@ Set <var>cacerts</var> to <tt class="constant">None</tt> to remove all CA certif
</dl>
<P>
-<dl><dt><b><a name='l2h-87'><tt class='method'>set_certificate</tt></a></b>(<var>cert</var>)
+<dl><dt><b><a name='l2h-92'><tt class='method'>set_certificate</tt></a></b>(<var>cert</var>)
<dd>
Replace or set the certificate portion of the PKCS12 structure.
</dl>
<P>
-<dl><dt><b><a name='l2h-88'><tt class='method'>set_friendlyname</tt></a></b>(<var>name</var>)
+<dl><dt><b><a name='l2h-93'><tt class='method'>set_friendlyname</tt></a></b>(<var>name</var>)
<dd>
Replace or set the friendlyName portion of the PKCS12 structure.
</dl>
<P>
-<dl><dt><b><a name='l2h-89'><tt class='method'>set_privatekey</tt></a></b>(<var>pkey</var>)
+<dl><dt><b><a name='l2h-94'><tt class='method'>set_privatekey</tt></a></b>(<var>pkey</var>)
<dd>
Replace or set private key portion of the PKCS12 structure
</dl>
@@ -145,7 +145,7 @@ Replace or set private key portion of the PKCS12 structure
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-509ext.html">3.1.8 X509Extension objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-pkcs7.html b/doc/html/openssl-pkcs7.html
index 1d0981f..2fd08e4 100644
--- a/doc/html/openssl-pkcs7.html
+++ b/doc/html/openssl-pkcs7.html
@@ -52,31 +52,31 @@
PKCS7 objects have the following methods:
<P>
-<dl><dt><b><a name='l2h-76'><tt class='method'>type_is_signed</tt></a></b>()
+<dl><dt><b><a name='l2h-81'><tt class='method'>type_is_signed</tt></a></b>()
<dd>
FIXME
</dl>
<P>
-<dl><dt><b><a name='l2h-77'><tt class='method'>type_is_enveloped</tt></a></b>()
+<dl><dt><b><a name='l2h-82'><tt class='method'>type_is_enveloped</tt></a></b>()
<dd>
FIXME
</dl>
<P>
-<dl><dt><b><a name='l2h-78'><tt class='method'>type_is_signedAndEnveloped</tt></a></b>()
+<dl><dt><b><a name='l2h-83'><tt class='method'>type_is_signedAndEnveloped</tt></a></b>()
<dd>
FIXME
</dl>
<P>
-<dl><dt><b><a name='l2h-79'><tt class='method'>type_is_data</tt></a></b>()
+<dl><dt><b><a name='l2h-84'><tt class='method'>type_is_data</tt></a></b>()
<dd>
FIXME
</dl>
<P>
-<dl><dt><b><a name='l2h-80'><tt class='method'>get_type_name</tt></a></b>()
+<dl><dt><b><a name='l2h-85'><tt class='method'>get_type_name</tt></a></b>()
<dd>
Get the type name of the PKCS7.
</dl>
@@ -111,7 +111,7 @@ Get the type name of the PKCS7.
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-pkcs12.html">3.1.7 PKCS12 objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-pkey.html b/doc/html/openssl-pkey.html
index a180ec3..5693f0e 100644
--- a/doc/html/openssl-pkey.html
+++ b/doc/html/openssl-pkey.html
@@ -52,20 +52,20 @@
The PKey object has the following methods:
<P>
-<dl><dt><b><a name='l2h-73'><tt class='method'>bits</tt></a></b>()
+<dl><dt><b><a name='l2h-78'><tt class='method'>bits</tt></a></b>()
<dd>
Return the number of bits of the key.
</dl>
<P>
-<dl><dt><b><a name='l2h-74'><tt class='method'>generate_key</tt></a></b>(<var>type, bits</var>)
+<dl><dt><b><a name='l2h-79'><tt class='method'>generate_key</tt></a></b>(<var>type, bits</var>)
<dd>
Generate a public/private key pair of the type <var>type</var> (one of
<tt class="constant">TYPE_RSA</tt> and <tt class="constant">TYPE_DSA</tt>) with the size <var>bits</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-75'><tt class='method'>type</tt></a></b>()
+<dl><dt><b><a name='l2h-80'><tt class='method'>type</tt></a></b>()
<dd>
Return the type of the key.
</dl>
@@ -100,7 +100,7 @@ Return the type of the key.
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-pkcs7.html">3.1.6 PKCS7 objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-rand.html b/doc/html/openssl-rand.html
index 21ec9b2..229e445 100644
--- a/doc/html/openssl-rand.html
+++ b/doc/html/openssl-rand.html
@@ -16,7 +16,7 @@
<DIV CLASS="navigation">
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
-<td><A href="openssl-netscape-spki.html"><img src="previous.gif"
+<td><A href="revoked.html"><img src="previous.gif"
border="0" height="32"
alt="Previous Page" width="32"></A></td>
<td><A href="openssl.html"><img src="up.gif"
@@ -36,7 +36,7 @@
border="0" height="32"
alt="" width="32"></td>
</tr></table>
-<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
+<b class="navlabel">Previous:</b> <a class="sectref" href="revoked.html">3.1.11 Revoked objects</A>
<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
<br><hr>
@@ -56,16 +56,16 @@ This module handles the OpenSSL pseudo random number generator (PRNG) and
declares the following:
<P>
-<dl><dt><b><a name='l2h-98'><tt class='function'>add</tt></a></b>(<var>string, entropy</var>)
+<dl><dt><b><a name='l2h-113'><tt class='function'>add</tt></a></b>(<var>string, entropy</var>)
<dd>
Mix bytes from <var>string</var> into the PRNG state. The <var>entropy</var> argument is
(the lower bound of) an estimate of how much randomness is contained in
-<var>string</var>, measured in bytes. For more information, see e.g. <a class="rfc" name="rfcref-2096"
+<var>string</var>, measured in bytes. For more information, see e.g. <a class="rfc" name="rfcref-2269"
href="http://www.ietf.org/rfc/rfc1750.txt">RFC 1750</a>.
</dl>
<P>
-<dl><dt><b><a name='l2h-99'><tt class='function'>bytes</tt></a></b>(<var>num_bytes</var>)
+<dl><dt><b><a name='l2h-114'><tt class='function'>bytes</tt></a></b>(<var>num_bytes</var>)
<dd>
Get some random bytes from the PRNG as a string.
@@ -74,7 +74,7 @@ This is a wrapper for the C function <tt class="function">RAND_bytes</tt>.
</dl>
<P>
-<dl><dt><b><a name='l2h-100'><tt class='function'>cleanup</tt></a></b>()
+<dl><dt><b><a name='l2h-115'><tt class='function'>cleanup</tt></a></b>()
<dd>
Erase the memory used by the PRNG.
@@ -83,50 +83,50 @@ This is a wrapper for the C function <tt class="function">RAND_cleanup</tt>.
</dl>
<P>
-<dl><dt><b><a name='l2h-101'><tt class='function'>egd</tt></a></b>(<var>path</var><big>[</big><var>, bytes</var><big>]</big>)
+<dl><dt><b><a name='l2h-116'><tt class='function'>egd</tt></a></b>(<var>path</var><big>[</big><var>, bytes</var><big>]</big>)
<dd>
Query the Entropy Gathering Daemon<A NAME="tex2html2"
- HREF="#foot1108"><SUP>2</SUP></A> on socket <var>path</var> for <var>bytes</var>
+ HREF="#foot1204"><SUP>2</SUP></A> on socket <var>path</var> for <var>bytes</var>
bytes of random data and and uses <tt class="function">add</tt> to seed the PRNG. The default
value of <var>bytes</var> is 255.
</dl>
<P>
-<dl><dt><b><a name='l2h-102'><tt class='function'>load_file</tt></a></b>(<var>path</var><big>[</big><var>, bytes</var><big>]</big>)
+<dl><dt><b><a name='l2h-117'><tt class='function'>load_file</tt></a></b>(<var>path</var><big>[</big><var>, bytes</var><big>]</big>)
<dd>
Read <var>bytes</var> bytes (or all of it, if <var>bytes</var> is negative) of data from
the file <var>path</var> to seed the PRNG. The default value of <var>bytes</var> is -1.
</dl>
<P>
-<dl><dt><b><a name='l2h-103'><tt class='function'>screen</tt></a></b>()
+<dl><dt><b><a name='l2h-118'><tt class='function'>screen</tt></a></b>()
<dd>
Add the current contents of the screen to the PRNG state.
Availability: Windows.
</dl>
<P>
-<dl><dt><b><a name='l2h-104'><tt class='function'>seed</tt></a></b>(<var>string</var>)
+<dl><dt><b><a name='l2h-119'><tt class='function'>seed</tt></a></b>(<var>string</var>)
<dd>
This is equivalent to calling <tt class="function">add</tt> with <var>entropy</var> as the length
of the string.
</dl>
<P>
-<dl><dt><b><a name='l2h-105'><tt class='function'>status</tt></a></b>()
+<dl><dt><b><a name='l2h-120'><tt class='function'>status</tt></a></b>()
<dd>
Returns true if the PRNG has been seeded with enough data, and false otherwise.
</dl>
<P>
-<dl><dt><b><a name='l2h-106'><tt class='function'>write_file</tt></a></b>(<var>path</var>)
+<dl><dt><b><a name='l2h-121'><tt class='function'>write_file</tt></a></b>(<var>path</var>)
<dd>
Write a number of random bytes (currently 1024) to the file <var>path</var>. This
file can then be used with <tt class="function">load_file</tt> to seed the PRNG again.
</dl>
<P>
-<dl><dt><b>exception <a name='l2h-107'><tt class='exception'>Error</tt></a></b>
+<dl><dt><b>exception <a name='l2h-122'><tt class='exception'>Error</tt></a></b>
<dd>
If the current RAND method supports any errors, this is raised when needed.
The default method does not raise this when the entropy pool is depleted.
@@ -142,7 +142,7 @@ for more information.
<P>
<BR><HR><H4>Footnotes</H4>
<DL>
-<DT><A NAME="foot1108">... Daemon</A><A
+<DT><A NAME="foot1204">... Daemon</A><A
href="openssl-rand.html#tex2html2"><SUP>2</SUP></A></DT>
<DD>See
<a class="url" href="http://www.lothar.com/tech/crypto/">http://www.lothar.com/tech/crypto/</a>
@@ -153,7 +153,7 @@ for more information.
<p><hr>
<table align="center" width="100%" cellpadding="0" cellspacing="2">
<tr>
-<td><A href="openssl-netscape-spki.html"><img src="previous.gif"
+<td><A href="revoked.html"><img src="previous.gif"
border="0" height="32"
alt="Previous Page" width="32"></A></td>
<td><A href="openssl.html"><img src="up.gif"
@@ -173,11 +173,11 @@ for more information.
border="0" height="32"
alt="" width="32"></td>
</tr></table>
-<b class="navlabel">Previous:</b> <a class="sectref" href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects</A>
+<b class="navlabel">Previous:</b> <a class="sectref" href="revoked.html">3.1.11 Revoked objects</A>
<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-ssl.html">3.3 SSL </A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-ssl.html b/doc/html/openssl-ssl.html
index 2f376ba..4afcef2 100644
--- a/doc/html/openssl-ssl.html
+++ b/doc/html/openssl-ssl.html
@@ -55,39 +55,39 @@ This module handles things specific to SSL. There are two objects defined:
Context, Connection.
<P>
-<dl><dt><b><a name='l2h-109'><tt>SSLv2_METHOD</tt></a></b>
+<dl><dt><b><a name='l2h-124'><tt>SSLv2_METHOD</tt></a></b>
<dd>
-<dt><b><a name='l2h-123'><tt>SSLv3_METHOD</tt></a></b><dd>
-<dt><b><a name='l2h-124'><tt>SSLv23_METHOD</tt></a></b><dd>
-<dt><b><a name='l2h-125'><tt>TLSv1_METHOD</tt></a></b><dd>
+<dt><b><a name='l2h-138'><tt>SSLv3_METHOD</tt></a></b><dd>
+<dt><b><a name='l2h-139'><tt>SSLv23_METHOD</tt></a></b><dd>
+<dt><b><a name='l2h-140'><tt>TLSv1_METHOD</tt></a></b><dd>
These constants represent the different SSL methods to use when creating a
context object.
</dl>
<P>
-<dl><dt><b><a name='l2h-110'><tt>VERIFY_NONE</tt></a></b>
+<dl><dt><b><a name='l2h-125'><tt>VERIFY_NONE</tt></a></b>
<dd>
-<dt><b><a name='l2h-126'><tt>VERIFY_PEER</tt></a></b><dd>
-<dt><b><a name='l2h-127'><tt>VERIFY_FAIL_IF_NO_PEER_CERT</tt></a></b><dd>
+<dt><b><a name='l2h-141'><tt>VERIFY_PEER</tt></a></b><dd>
+<dt><b><a name='l2h-142'><tt>VERIFY_FAIL_IF_NO_PEER_CERT</tt></a></b><dd>
These constants represent the verification mode used by the Context
object's <tt class="method">set_verify</tt> method.
</dl>
<P>
-<dl><dt><b><a name='l2h-111'><tt>FILETYPE_PEM</tt></a></b>
+<dl><dt><b><a name='l2h-126'><tt>FILETYPE_PEM</tt></a></b>
<dd>
-<dt><b><a name='l2h-128'><tt>FILETYPE_ASN1</tt></a></b><dd>
+<dt><b><a name='l2h-143'><tt>FILETYPE_ASN1</tt></a></b><dd>
File type constants used with the <tt class="method">use_certificate_file</tt> and
<tt class="method">use_privatekey_file</tt> methods of Context objects.
</dl>
<P>
-<dl><dt><b><a name='l2h-112'><tt>OP_SINGLE_DH_USE</tt></a></b>
+<dl><dt><b><a name='l2h-127'><tt>OP_SINGLE_DH_USE</tt></a></b>
<dd>
-<dt><b><a name='l2h-129'><tt>OP_EPHEMERAL_RSA</tt></a></b><dd>
-<dt><b><a name='l2h-130'><tt>OP_NO_SSLv2</tt></a></b><dd>
-<dt><b><a name='l2h-131'><tt>OP_NO_SSLv3</tt></a></b><dd>
-<dt><b><a name='l2h-132'><tt>OP_NO_TLSv1</tt></a></b><dd>
+<dt><b><a name='l2h-144'><tt>OP_EPHEMERAL_RSA</tt></a></b><dd>
+<dt><b><a name='l2h-145'><tt>OP_NO_SSLv2</tt></a></b><dd>
+<dt><b><a name='l2h-146'><tt>OP_NO_SSLv3</tt></a></b><dd>
+<dt><b><a name='l2h-147'><tt>OP_NO_TLSv1</tt></a></b><dd>
Constants used with <tt class="method">set_options</tt> of Context objects.
<tt class="constant">OP_SINGLE_DH_USE</tt> means to always create a new key when using ephemeral
Diffie-Hellman. <tt class="constant">OP_EPHEMERAL_RSA</tt> means to always use ephemeral RSA keys
@@ -98,13 +98,13 @@ handshake, but don't want to use SSLv2.
</dl>
<P>
-<dl><dt><b><a name='l2h-113'><tt>ContextType</tt></a></b>
+<dl><dt><b><a name='l2h-128'><tt>ContextType</tt></a></b>
<dd>
See <tt class="class">Context</tt>.
</dl>
<P>
-<dl><dt><b>class <a name='l2h-114'><tt class='class'>Context</tt></a></b>(<var>method</var>)
+<dl><dt><b>class <a name='l2h-129'><tt class='class'>Context</tt></a></b>(<var>method</var>)
<dd>
A class representing SSL contexts. Contexts define the parameters of one or
more SSL connections.
@@ -115,27 +115,27 @@ more SSL connections.
</dl>
<P>
-<dl><dt><b><a name='l2h-115'><tt>ConnectionType</tt></a></b>
+<dl><dt><b><a name='l2h-130'><tt>ConnectionType</tt></a></b>
<dd>
See <tt class="class">Connection</tt>.
</dl>
<P>
-<dl><dt><b>class <a name='l2h-116'><tt class='class'>Connection</tt></a></b>(<var>context, socket</var>)
+<dl><dt><b>class <a name='l2h-131'><tt class='class'>Connection</tt></a></b>(<var>context, socket</var>)
<dd>
A class representing SSL connections.
<P>
<var>context</var> should be an instance of <tt class="class">Context</tt> and <var>socket</var>
should be a socket <A NAME="tex2html4"
- HREF="#foot1112"><SUP>3</SUP></A> object. <var>socket</var> may be
+ HREF="#foot1208"><SUP>3</SUP></A> object. <var>socket</var> may be
<var>None</var>; in this case, the Connection is created with a memory BIO: see
the <tt class="method">bio_read</tt>, <tt class="method">bio_write</tt>, and <tt class="method">bio_shutdown</tt>
methods.
</dl>
<P>
-<dl><dt><b>exception <a name='l2h-117'><tt class='exception'>Error</tt></a></b>
+<dl><dt><b>exception <a name='l2h-132'><tt class='exception'>Error</tt></a></b>
<dd>
This exception is used as a base class for the other SSL-related
exceptions, but may also be raised directly.
@@ -149,7 +149,7 @@ for more information.
</dl>
<P>
-<dl><dt><b>exception <a name='l2h-118'><tt class='exception'>ZeroReturnError</tt></a></b>
+<dl><dt><b>exception <a name='l2h-133'><tt class='exception'>ZeroReturnError</tt></a></b>
<dd>
This exception matches the error return code <code>SSL_ERROR_ZERO_RETURN</code>, and
is raised when the SSL Connection has been closed. In SSL 3.0 and TLS 1.0, this
@@ -163,7 +163,7 @@ It may seem a little strange that this is an exception, but it does match an
</dl>
<P>
-<dl><dt><b>exception <a name='l2h-119'><tt class='exception'>WantReadError</tt></a></b>
+<dl><dt><b>exception <a name='l2h-134'><tt class='exception'>WantReadError</tt></a></b>
<dd>
The operation did not complete; the same I/O method should be called again
later, with the same arguments. Any I/O method can lead to this since new
@@ -180,14 +180,14 @@ probably want to <tt class="method">select()</tt> on the socket before trying ag
</dl>
<P>
-<dl><dt><b>exception <a name='l2h-120'><tt class='exception'>WantWriteError</tt></a></b>
+<dl><dt><b>exception <a name='l2h-135'><tt class='exception'>WantWriteError</tt></a></b>
<dd>
See <tt class="exception">WantReadError</tt>. The socket send buffer may be too full to
write more data.
</dl>
<P>
-<dl><dt><b>exception <a name='l2h-121'><tt class='exception'>WantX509LookupError</tt></a></b>
+<dl><dt><b>exception <a name='l2h-136'><tt class='exception'>WantX509LookupError</tt></a></b>
<dd>
The operation did not complete because an application callback has asked to be
called again. The I/O method should be called again later, with the same
@@ -196,7 +196,7 @@ callbacks in this version.
</dl>
<P>
-<dl><dt><b>exception <a name='l2h-122'><tt class='exception'>SysCallError</tt></a></b>
+<dl><dt><b>exception <a name='l2h-137'><tt class='exception'>SysCallError</tt></a></b>
<dd>
The <tt class="exception">SysCallError</tt> occurs when there's an I/O error and OpenSSL's
error queue does not contain any information. This can mean two things: An
@@ -208,7 +208,7 @@ The parameter to the exception is always a pair <code>(<var>errnum</var>,
<P>
<BR><HR><H4>Footnotes</H4>
<DL>
-<DT><A NAME="foot1112">... socket</A><A
+<DT><A NAME="foot1208">... socket</A><A
href="openssl-ssl.html#tex2html4"><SUP>3</SUP></A></DT>
<DD>Actually, all that is required is an object
that <i>behaves</i> like a socket, you could even use files, even though
@@ -221,9 +221,9 @@ it'd be tricky to get the handshakes right!
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html261"
+<LI><A NAME="tex2html289"
href="openssl-context.html">3.3.1 Context objects </A>
-<LI><A NAME="tex2html262"
+<LI><A NAME="tex2html290"
href="openssl-connection.html">3.3.2 Connection objects </A>
</UL>
<!--End of Table of Child-Links-->
@@ -256,7 +256,7 @@ it'd be tricky to get the handshakes right!
<b class="navlabel">Up:</b> <a class="sectref" href="openssl.html">3 OpenSSL </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-context.html">3.3.1 Context objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-x509.html b/doc/html/openssl-x509.html
index aa3ac50..c138766 100644
--- a/doc/html/openssl-x509.html
+++ b/doc/html/openssl-x509.html
@@ -52,37 +52,37 @@
X509 objects have the following methods:
<P>
-<dl><dt><b><a name='l2h-34'><tt class='method'>get_issuer</tt></a></b>()
+<dl><dt><b><a name='l2h-39'><tt class='method'>get_issuer</tt></a></b>()
<dd>
Return an X509Name object representing the issuer of the certificate.
</dl>
<P>
-<dl><dt><b><a name='l2h-35'><tt class='method'>get_pubkey</tt></a></b>()
+<dl><dt><b><a name='l2h-40'><tt class='method'>get_pubkey</tt></a></b>()
<dd>
Return a PKey object representing the public key of the certificate.
</dl>
<P>
-<dl><dt><b><a name='l2h-36'><tt class='method'>get_serial_number</tt></a></b>()
+<dl><dt><b><a name='l2h-41'><tt class='method'>get_serial_number</tt></a></b>()
<dd>
Return the certificate serial number.
</dl>
<P>
-<dl><dt><b><a name='l2h-37'><tt class='method'>get_subject</tt></a></b>()
+<dl><dt><b><a name='l2h-42'><tt class='method'>get_subject</tt></a></b>()
<dd>
Return an X509Name object representing the subject of the certificate.
</dl>
<P>
-<dl><dt><b><a name='l2h-38'><tt class='method'>get_version</tt></a></b>()
+<dl><dt><b><a name='l2h-43'><tt class='method'>get_version</tt></a></b>()
<dd>
Return the certificate version.
</dl>
<P>
-<dl><dt><b><a name='l2h-39'><tt class='method'>get_notBefore</tt></a></b>()
+<dl><dt><b><a name='l2h-44'><tt class='method'>get_notBefore</tt></a></b>()
<dd>
Return a string giving the time before which the certificate is not valid. The
string is formatted as an ASN1 GENERALIZEDTIME:
@@ -95,7 +95,7 @@ If no value exists for this field, <code>None</code> is returned.
</dl>
<P>
-<dl><dt><b><a name='l2h-40'><tt class='method'>get_notAfter</tt></a></b>()
+<dl><dt><b><a name='l2h-45'><tt class='method'>get_notAfter</tt></a></b>()
<dd>
Return a string giving the time after which the certificate is not valid. The
string is formatted as an ASN1 GENERALIZEDTIME:
@@ -108,7 +108,7 @@ If no value exists for this field, <code>None</code> is returned.
</dl>
<P>
-<dl><dt><b><a name='l2h-41'><tt class='method'>set_notBefore</tt></a></b>(<var>when</var>)
+<dl><dt><b><a name='l2h-46'><tt class='method'>set_notBefore</tt></a></b>(<var>when</var>)
<dd>
Change the time before which the certificate is not valid. <var>when</var> is a
string formatted as an ASN1 GENERALIZEDTIME:
@@ -120,7 +120,7 @@ string formatted as an ASN1 GENERALIZEDTIME:
</dl>
<P>
-<dl><dt><b><a name='l2h-42'><tt class='method'>set_notAfter</tt></a></b>(<var>when</var>)
+<dl><dt><b><a name='l2h-47'><tt class='method'>set_notAfter</tt></a></b>(<var>when</var>)
<dd>
Change the time after which the certificate is not valid. <var>when</var> is a
string formatted as an ASN1 GENERALIZEDTIME:
@@ -132,69 +132,69 @@ string formatted as an ASN1 GENERALIZEDTIME:
</dl>
<P>
-<dl><dt><b><a name='l2h-43'><tt class='method'>gmtime_adj_notBefore</tt></a></b>(<var>time</var>)
+<dl><dt><b><a name='l2h-48'><tt class='method'>gmtime_adj_notBefore</tt></a></b>(<var>time</var>)
<dd>
Adjust the timestamp (in GMT) when the certificate starts being valid.
</dl>
<P>
-<dl><dt><b><a name='l2h-44'><tt class='method'>gmtime_adj_notAfter</tt></a></b>(<var>time</var>)
+<dl><dt><b><a name='l2h-49'><tt class='method'>gmtime_adj_notAfter</tt></a></b>(<var>time</var>)
<dd>
Adjust the timestamp (in GMT) when the certificate stops being valid.
</dl>
<P>
-<dl><dt><b><a name='l2h-45'><tt class='method'>has_expired</tt></a></b>()
+<dl><dt><b><a name='l2h-50'><tt class='method'>has_expired</tt></a></b>()
<dd>
Checks the certificate's time stamp against current time. Returns true if the
certificate has expired and false otherwise.
</dl>
<P>
-<dl><dt><b><a name='l2h-46'><tt class='method'>set_issuer</tt></a></b>(<var>issuer</var>)
+<dl><dt><b><a name='l2h-51'><tt class='method'>set_issuer</tt></a></b>(<var>issuer</var>)
<dd>
Set the issuer of the certificate to <var>issuer</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-47'><tt class='method'>set_pubkey</tt></a></b>(<var>pkey</var>)
+<dl><dt><b><a name='l2h-52'><tt class='method'>set_pubkey</tt></a></b>(<var>pkey</var>)
<dd>
Set the public key of the certificate to <var>pkey</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-48'><tt class='method'>set_serial_number</tt></a></b>(<var>serialno</var>)
+<dl><dt><b><a name='l2h-53'><tt class='method'>set_serial_number</tt></a></b>(<var>serialno</var>)
<dd>
Set the serial number of the certificate to <var>serialno</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-49'><tt class='method'>set_subject</tt></a></b>(<var>subject</var>)
+<dl><dt><b><a name='l2h-54'><tt class='method'>set_subject</tt></a></b>(<var>subject</var>)
<dd>
Set the subject of the certificate to <var>subject</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-50'><tt class='method'>set_version</tt></a></b>(<var>version</var>)
+<dl><dt><b><a name='l2h-55'><tt class='method'>set_version</tt></a></b>(<var>version</var>)
<dd>
Set the certificate version to <var>version</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-51'><tt class='method'>sign</tt></a></b>(<var>pkey, digest</var>)
+<dl><dt><b><a name='l2h-56'><tt class='method'>sign</tt></a></b>(<var>pkey, digest</var>)
<dd>
Sign the certificate, using the key <var>pkey</var> and the message digest algorithm
identified by the string <var>digest</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-52'><tt class='method'>subject_name_hash</tt></a></b>()
+<dl><dt><b><a name='l2h-57'><tt class='method'>subject_name_hash</tt></a></b>()
<dd>
Return the hash of the certificate subject.
</dl>
<P>
-<dl><dt><b><a name='l2h-53'><tt class='method'>digest</tt></a></b>(<var>digest_name</var>)
+<dl><dt><b><a name='l2h-58'><tt class='method'>digest</tt></a></b>(<var>digest_name</var>)
<dd>
Return a digest of the certificate, using the <var>digest_name</var> method.
<var>digest_name</var> must be a string describing a digest algorithm supported
@@ -203,7 +203,7 @@ by OpenSSL (by EVP_get_digestbyname, specifically). For example,
</dl>
<P>
-<dl><dt><b><a name='l2h-54'><tt class='method'>add_extensions</tt></a></b>(<var>extensions</var>)
+<dl><dt><b><a name='l2h-59'><tt class='method'>add_extensions</tt></a></b>(<var>extensions</var>)
<dd>
Add the extensions in the sequence <var>extensions</var> to the certificate.
</dl>
@@ -238,7 +238,7 @@ Add the extensions in the sequence <var>extensions</var> to the certificate.
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509name.html">3.1.2 X509Name objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-x509name.html b/doc/html/openssl-x509name.html
index 67459f6..17960ca 100644
--- a/doc/html/openssl-x509name.html
+++ b/doc/html/openssl-x509name.html
@@ -52,20 +52,20 @@
X509Name objects have the following methods:
<P>
-<dl><dt><b><a name='l2h-55'><tt class='method'>hash</tt></a></b>()
+<dl><dt><b><a name='l2h-60'><tt class='method'>hash</tt></a></b>()
<dd>
Return an integer giving the first four bytes of the MD5 digest of the DER
representation of the name.
</dl>
<P>
-<dl><dt><b><a name='l2h-56'><tt class='method'>der</tt></a></b>()
+<dl><dt><b><a name='l2h-61'><tt class='method'>der</tt></a></b>()
<dd>
Return a string giving the DER representation of the name.
</dl>
<P>
-<dl><dt><b><a name='l2h-57'><tt class='method'>get_components</tt></a></b>()
+<dl><dt><b><a name='l2h-62'><tt class='method'>get_components</tt></a></b>()
<dd>
Return a list of two-tuples of strings giving the components of the name.
</dl>
@@ -74,49 +74,49 @@ Return a list of two-tuples of strings giving the components of the name.
X509Name objects have the following members:
<P>
-<dl><dt><b><a name='l2h-58'><tt class='member'>countryName</tt></a></b>
+<dl><dt><b><a name='l2h-63'><tt class='member'>countryName</tt></a></b>
<dd>
The country of the entity. <code>C</code> may be used as an alias for
<code>countryName</code>.
</dl>
<P>
-<dl><dt><b><a name='l2h-59'><tt class='member'>stateOrProvinceName</tt></a></b>
+<dl><dt><b><a name='l2h-64'><tt class='member'>stateOrProvinceName</tt></a></b>
<dd>
The state or province of the entity. <code>ST</code> may be used as an alias for
<code>stateOrProvinceName</code>·
</dl>
<P>
-<dl><dt><b><a name='l2h-60'><tt class='member'>localityName</tt></a></b>
+<dl><dt><b><a name='l2h-65'><tt class='member'>localityName</tt></a></b>
<dd>
The locality of the entity. <code>L</code> may be used as an alias for
<code>localityName</code>.
</dl>
<P>
-<dl><dt><b><a name='l2h-61'><tt class='member'>organizationName</tt></a></b>
+<dl><dt><b><a name='l2h-66'><tt class='member'>organizationName</tt></a></b>
<dd>
The organization name of the entity. <code>O</code> may be used as an alias for
<code>organizationName</code>.
</dl>
<P>
-<dl><dt><b><a name='l2h-62'><tt class='member'>organizationalUnitName</tt></a></b>
+<dl><dt><b><a name='l2h-67'><tt class='member'>organizationalUnitName</tt></a></b>
<dd>
The organizational unit of the entity. <code>OU</code> may be used as an alias for
<code>organizationalUnitName</code>.
</dl>
<P>
-<dl><dt><b><a name='l2h-63'><tt class='member'>commonName</tt></a></b>
+<dl><dt><b><a name='l2h-68'><tt class='member'>commonName</tt></a></b>
<dd>
The common name of the entity. <code>CN</code> may be used as an alias for
<code>commonName</code>.
</dl>
<P>
-<dl><dt><b><a name='l2h-64'><tt class='member'>emailAddress</tt></a></b>
+<dl><dt><b><a name='l2h-69'><tt class='member'>emailAddress</tt></a></b>
<dd>
The e-mail address of the entity.
</dl>
@@ -151,7 +151,7 @@ The e-mail address of the entity.
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509req.html">3.1.3 X509Req objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-x509req.html b/doc/html/openssl-x509req.html
index d9410c3..31561b5 100644
--- a/doc/html/openssl-x509req.html
+++ b/doc/html/openssl-x509req.html
@@ -52,45 +52,45 @@
X509Req objects have the following methods:
<P>
-<dl><dt><b><a name='l2h-65'><tt class='method'>get_pubkey</tt></a></b>()
+<dl><dt><b><a name='l2h-70'><tt class='method'>get_pubkey</tt></a></b>()
<dd>
Return a PKey object representing the public key of the certificate request.
</dl>
<P>
-<dl><dt><b><a name='l2h-66'><tt class='method'>get_subject</tt></a></b>()
+<dl><dt><b><a name='l2h-71'><tt class='method'>get_subject</tt></a></b>()
<dd>
Return an X509Name object representing the subject of the certificate.
</dl>
<P>
-<dl><dt><b><a name='l2h-67'><tt class='method'>set_pubkey</tt></a></b>(<var>pkey</var>)
+<dl><dt><b><a name='l2h-72'><tt class='method'>set_pubkey</tt></a></b>(<var>pkey</var>)
<dd>
Set the public key of the certificate request to <var>pkey</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-68'><tt class='method'>sign</tt></a></b>(<var>pkey, digest</var>)
+<dl><dt><b><a name='l2h-73'><tt class='method'>sign</tt></a></b>(<var>pkey, digest</var>)
<dd>
Sign the certificate request, using the key <var>pkey</var> and the message digest
algorithm identified by the string <var>digest</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-69'><tt class='method'>verify</tt></a></b>(<var>pkey</var>)
+<dl><dt><b><a name='l2h-74'><tt class='method'>verify</tt></a></b>(<var>pkey</var>)
<dd>
Verify a certificate request using the public key <var>pkey</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-70'><tt class='method'>set_version</tt></a></b>(<var>version</var>)
+<dl><dt><b><a name='l2h-75'><tt class='method'>set_version</tt></a></b>(<var>version</var>)
<dd>
Set the version (RFC 2459, 4.1.2.1) of the certificate request to
<var>version</var>.
</dl>
<P>
-<dl><dt><b><a name='l2h-71'><tt class='method'>get_version</tt></a></b>()
+<dl><dt><b><a name='l2h-76'><tt class='method'>get_version</tt></a></b>()
<dd>
Get the version (RFC 2459, 4.1.2.1) of the certificate request.
</dl>
@@ -125,7 +125,7 @@ Get the version (RFC 2459, 4.1.2.1) of the certificate request.
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-x509store.html">3.1.4 X509Store objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl-x509store.html b/doc/html/openssl-x509store.html
index 7682d6d..9c6c290 100644
--- a/doc/html/openssl-x509store.html
+++ b/doc/html/openssl-x509store.html
@@ -52,7 +52,7 @@
The X509Store object has currently just one method:
<P>
-<dl><dt><b><a name='l2h-72'><tt class='method'>add_cert</tt></a></b>(<var>cert</var>)
+<dl><dt><b><a name='l2h-77'><tt class='method'>add_cert</tt></a></b>(<var>cert</var>)
<dd>
Add the certificate <var>cert</var> to the certificate store.
</dl>
@@ -87,7 +87,7 @@ Add the certificate <var>cert</var> to the certificate store.
<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-pkey.html">3.1.5 PKey objects</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/openssl.html b/doc/html/openssl.html
index f94e6ed..e47b130 100644
--- a/doc/html/openssl.html
+++ b/doc/html/openssl.html
@@ -80,37 +80,41 @@ An interface to the SSL-specific parts of OpenSSL.
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html110"
+<LI><A NAME="tex2html112"
href="openssl-crypto.html">3.1 <tt class="module">crypto</tt> -- Generic cryptographic module </A>
<UL>
-<LI><A NAME="tex2html111"
+<LI><A NAME="tex2html113"
href="openssl-x509.html">3.1.1 X509 objects </A>
-<LI><A NAME="tex2html112"
+<LI><A NAME="tex2html114"
href="openssl-x509name.html">3.1.2 X509Name objects </A>
-<LI><A NAME="tex2html113"
+<LI><A NAME="tex2html115"
href="openssl-x509req.html">3.1.3 X509Req objects </A>
-<LI><A NAME="tex2html114"
+<LI><A NAME="tex2html116"
href="openssl-x509store.html">3.1.4 X509Store objects </A>
-<LI><A NAME="tex2html115"
+<LI><A NAME="tex2html117"
href="openssl-pkey.html">3.1.5 PKey objects </A>
-<LI><A NAME="tex2html116"
+<LI><A NAME="tex2html118"
href="openssl-pkcs7.html">3.1.6 PKCS7 objects </A>
-<LI><A NAME="tex2html117"
+<LI><A NAME="tex2html119"
href="openssl-pkcs12.html">3.1.7 PKCS12 objects </A>
-<LI><A NAME="tex2html118"
+<LI><A NAME="tex2html120"
href="openssl-509ext.html">3.1.8 X509Extension objects </A>
-<LI><A NAME="tex2html119"
+<LI><A NAME="tex2html121"
href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects </A>
+<LI><A NAME="tex2html122"
+ href="crl.html">3.1.10 CRL objects </A>
+<LI><A NAME="tex2html123"
+ href="revoked.html">3.1.11 Revoked objects </A>
</UL>
<BR>
-<LI><A NAME="tex2html120"
+<LI><A NAME="tex2html124"
href="openssl-rand.html">3.2 <tt class="module">rand</tt> -- An interface to the OpenSSL pseudo random number generator </A>
-<LI><A NAME="tex2html121"
+<LI><A NAME="tex2html125"
href="openssl-ssl.html">3.3 <tt class="module">SSL</tt> -- An interface to the SSL-specific parts of OpenSSL </A>
<UL>
-<LI><A NAME="tex2html122"
+<LI><A NAME="tex2html126"
href="openssl-context.html">3.3.1 Context objects </A>
-<LI><A NAME="tex2html123"
+<LI><A NAME="tex2html127"
href="openssl-connection.html">3.3.2 Connection objects </A>
</UL></UL>
<!--End of Table of Child-Links-->
@@ -143,7 +147,7 @@ An interface to the SSL-specific parts of OpenSSL.
<b class="navlabel">Up:</b> <a class="sectref" HREF="pyOpenSSL.html">Python OpenSSL Manual</A>
<b class="navlabel">Next:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/pyOpenSSL.how b/doc/html/pyOpenSSL.how
index 2464192..1d37fe6 100644
--- a/doc/html/pyOpenSSL.how
+++ b/doc/html/pyOpenSSL.how
@@ -1 +1 @@
-+++ perl /home/exarkun/Projects/pyOpenSSL/trunk/doc/tools/node2label.pl *.html
++++ perl /home/exarkun/Projects/pyOpenSSL/branches/release-0.11/doc/tools/node2label.pl *.html
diff --git a/doc/html/pyOpenSSL.html b/doc/html/pyOpenSSL.html
index 6eaaa67..4eab092 100644
--- a/doc/html/pyOpenSSL.html
+++ b/doc/html/pyOpenSSL.html
@@ -104,31 +104,35 @@ calling a corresponding function in the OpenSSL library.
href="openssl-509ext.html">3.1.8 X509Extension objects </A>
<LI><A NAME="tex2html23"
href="openssl-netscape-spki.html">3.1.9 NetscapeSPKI objects </A>
-</UL>
<LI><A NAME="tex2html24"
- href="openssl-rand.html">3.2 <tt class="module">rand</tt> -- An interface to the OpenSSL pseudo random number generator </A>
+ href="crl.html">3.1.10 CRL objects </A>
<LI><A NAME="tex2html25"
+ href="revoked.html">3.1.11 Revoked objects </A>
+</UL>
+<LI><A NAME="tex2html26"
+ href="openssl-rand.html">3.2 <tt class="module">rand</tt> -- An interface to the OpenSSL pseudo random number generator </A>
+<LI><A NAME="tex2html27"
href="openssl-ssl.html">3.3 <tt class="module">SSL</tt> -- An interface to the SSL-specific parts of OpenSSL </A>
<UL>
-<LI><A NAME="tex2html26"
+<LI><A NAME="tex2html28"
href="openssl-context.html">3.3.1 Context objects </A>
-<LI><A NAME="tex2html27"
+<LI><A NAME="tex2html29"
href="openssl-connection.html">3.3.2 Connection objects </A>
</UL>
</UL>
<BR>
-<LI><A NAME="tex2html28"
+<LI><A NAME="tex2html30"
href="internals.html">4 Internals </A>
<UL>
-<LI><A NAME="tex2html29"
+<LI><A NAME="tex2html31"
href="exceptions.html">4.1 Exceptions </A>
-<LI><A NAME="tex2html30"
+<LI><A NAME="tex2html32"
href="callbacks.html">4.2 Callbacks </A>
-<LI><A NAME="tex2html31"
+<LI><A NAME="tex2html33"
href="socket-methods.html">4.3 Acessing Socket Methods </A>
</UL>
<BR>
-<LI><A NAME="tex2html32"
+<LI><A NAME="tex2html34"
href="about.html">About this document ...</A>
</UL>
<!--End of Table of Child-Links-->
@@ -159,7 +163,7 @@ calling a corresponding function in the OpenSSL library.
</tr></table>
<b class="navlabel">Next:</b> <a class="sectref" href="contents.html">Contents</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/html/revoked.html b/doc/html/revoked.html
new file mode 100644
index 0000000..0a7d547
--- /dev/null
+++ b/doc/html/revoked.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+<title>3.1.11 Revoked objects </title>
+<META NAME="description" CONTENT="3.1.11 Revoked objects ">
+<META NAME="keywords" CONTENT="pyOpenSSL">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<link rel="STYLESHEET" href="pyOpenSSL.css">
+<LINK REL="previous" href="crl.html">
+<LINK REL="up" href="openssl-crypto.html">
+<LINK REL="next" href="openssl-rand.html">
+</head>
+<body>
+<DIV CLASS="navigation">
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="crl.html"><img src="previous.gif"
+ border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+ border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-rand.html"><img src="next.gif"
+ border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+ border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="crl.html">3.1.10 CRL objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-rand.html">3.2 rand </A>
+<br><hr>
+</DIV>
+<!--End of Navigation Panel-->
+
+<H3><A NAME="SECTION0004111000000000000000">&nbsp;</A>
+<BR>
+3.1.11 Revoked objects
+</H3>
+
+<P>
+Revoked objects have the following methods:
+
+<P>
+<dl><dt><b><a name='l2h-105'><tt class='method'>all_reasons</tt></a></b>()
+<dd>
+Return a list of all supported reasons.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-106'><tt class='method'>get_reason</tt></a></b>()
+<dd>
+Return the revocation reason as a str. Can be
+None, which differs from "Unspecified".
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-107'><tt class='method'>get_rev_date</tt></a></b>()
+<dd>
+Return the revocation date as a str.
+The string is formatted as an ASN1 GENERALIZEDTIME.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-108'><tt class='method'>get_serial</tt></a></b>()
+<dd>
+Return a str containing a hex number of the serial of the revoked certificate.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-109'><tt class='method'>set_reason</tt></a></b>(<var>reason</var>)
+<dd>
+Set the revocation reason. <var>reason</var> must
+be None or a string, but the values are limited.
+Spaces and case are ignored. See <tt class="method">all_reasons</tt>.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-110'><tt class='method'>set_rev_date</tt></a></b>(<var>date</var>)
+<dd>
+Set the revocation date.
+The string is formatted as an ASN1 GENERALIZEDTIME.
+</dl>
+
+<P>
+<dl><dt><b><a name='l2h-111'><tt class='method'>set_serial</tt></a></b>(<var>serial</var>)
+<dd>
+<var>serial</var> is a string containing a hex number of the serial of the revoked certificate.
+</dl>
+
+<P>
+
+<DIV CLASS="navigation">
+<p><hr>
+<table align="center" width="100%" cellpadding="0" cellspacing="2">
+<tr>
+<td><A href="crl.html"><img src="previous.gif"
+ border="0" height="32"
+ alt="Previous Page" width="32"></A></td>
+<td><A href="openssl-crypto.html"><img src="up.gif"
+ border="0" height="32"
+ alt="Up One Level" width="32"></A></td>
+<td><A href="openssl-rand.html"><img src="next.gif"
+ border="0" height="32"
+ alt="Next Page" width="32"></A></td>
+<td align="center" width="100%">Python OpenSSL Manual</td>
+<td><A href="contents.html"><img src="contents.gif"
+ border="0" height="32"
+ alt="Contents" width="32"></A></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+<td><img src="blank.gif"
+ border="0" height="32"
+ alt="" width="32"></td>
+</tr></table>
+<b class="navlabel">Previous:</b> <a class="sectref" href="crl.html">3.1.10 CRL objects</A>
+<b class="navlabel">Up:</b> <a class="sectref" href="openssl-crypto.html">3.1 crypto </A>
+<b class="navlabel">Next:</b> <a class="sectref" href="openssl-rand.html">3.2 rand </A>
+<hr>
+<span class="release-info">Release 0.11.</span>
+</DIV>
+<!--End of Navigation Panel-->
+
+</BODY>
+</HTML>
diff --git a/doc/html/socket-methods.html b/doc/html/socket-methods.html
index 51ccc5f..0148ee5 100644
--- a/doc/html/socket-methods.html
+++ b/doc/html/socket-methods.html
@@ -111,7 +111,7 @@ read-transport or the write-transport?
<b class="navlabel">Up:</b> <a class="sectref" href="internals.html">4 Internals</A>
<b class="navlabel">Next:</b> <a class="sectref" href="about.html">About this document ...</A>
<hr>
-<span class="release-info">Release 0.10.</span>
+<span class="release-info">Release 0.11.</span>
</DIV>
<!--End of Navigation Panel-->
diff --git a/doc/pyOpenSSL.ps b/doc/pyOpenSSL.ps
index 1b1eaad..72fa5a5 100644
--- a/doc/pyOpenSSL.ps
+++ b/doc/pyOpenSSL.ps
@@ -1,8 +1,8 @@
%!PS-Adobe-2.0
%%Creator: dvips(k) 5.96.1 Copyright 2007 Radical Eye Software
%%Title: pyOpenSSL.dvi
-%%CreationDate: Fri Nov 13 09:16:45 2009
-%%Pages: 17
+%%CreationDate: Sun Oct 31 10:36:29 2010
+%%Pages: 18
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%DocumentPaperSizes: a4
@@ -10,7 +10,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -N0 -o pyOpenSSL.ps pyOpenSSL
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2009.11.13:0916
+%DVIPSSource: TeX output 2010.10.31:1036
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -109,8 +109,8 @@ FFFFC0FFFFC0127875D920>91 D<FFFFC0FFFFC0001FC0001FC0001FC0001FC0001FC000
1FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC0001FC000
1FC0001FC0001FC0FFFFC0FFFFC012787ED920>93 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc ecti1000 10 52
-/Fc 52 123 df<00000000FF0003F000000003FFE00FFC0000000FC0F01F1E0000003F00
+%DVIPSBitmapFont: Fc ecti1000 10 57
+/Fc 57 123 df<00000000FF0003F000000003FFE00FFC0000000FC0F01F1E0000003F00
783E0F0000007E01F87C3F0000007C03F8FC7F000000FC03F8F87F000001F803F9F87F00
0001F803F1F87E000001F801E1F83C000003F00003F000000003F00003F000000003F000
03F000000007F00003F000000007E00007F000000007E00007E000000007E00007E00000
@@ -256,300 +256,360 @@ C03714779E40>61 D<00000003FE000E0000003FFF801E000000FFFFE03C000003FE01F0
1FC0000003C0001FC000000380003FC000000780003FC000000700003F8000000F00003F
8000000F00007F8000001E00007F8000003E00007F0000003C00007F0000007C0000FF00
0000FC0000FF000001F80000FE000007F80001FE00007FF000FFFFFFFFFFF000FFFFFFFF
-FFF000FFFFFFFFFFE00038397BB838>I<0003FFFFF80FFFFFE00003FFFFF80FFFFFE000
-03FFFFF80FFFFFE0000007F800001FE000000007F000001FC000000007F000001FC00000
-000FF000003FC00000000FF000003F800000000FE000003F800000000FE000003F800000
-001FE000007F800000001FE000007F000000001FC000007F000000001FC000007F000000
-003FC00000FF000000003FC00000FE000000003F800000FE000000003F800000FE000000
-007F800001FE000000007F800001FC000000007F000001FC000000007F000001FC000000
-00FF000003FC00000000FF000003F800000000FE000003F800000000FE000003F8000000
-01FFFFFFFFF800000001FFFFFFFFF000000001FFFFFFFFF000000001FC000007F0000000
-03FC00000FF000000003FC00000FE000000003F800000FE000000003F800000FE0000000
-07F800001FE000000007F800001FC000000007F000001FC000000007F000001FC0000000
-0FF000003FC00000000FF000003F800000000FE000003F800000000FE000003F80000000
-1FE000007F800000001FE000007F000000001FC000007F000000001FC000007F00000000
-3FC00000FF000000003FC00000FE000000003F800000FE000000003F800000FE00000000
-7F800001FE000000007F800001FC000000007F000001FC00000000FF000003FC0000007F
-FFFE01FFFFF80000FFFFFE03FFFFF80000FFFFFE03FFFFF8000043397CB83E>72
-D<0003FFFFF80003FFFFF80003FFFFF8000007F800000007F000000007F00000000FF000
-00000FF00000000FE00000000FE00000001FE00000001FE00000001FC00000001FC00000
-003FC00000003FC00000003F800000003F800000007F800000007F800000007F00000000
-7F00000000FF00000000FF00000000FE00000000FE00000001FE00000001FE00000001FC
-00000001FC00000003FC00000003FC00000003F800000003F800000007F800000007F800
-000007F000000007F00000000FF00000000FF00000000FE00000000FE00000001FE00000
-001FE00000001FC00000001FC00000003FC00000003FC00000003F800000003F80000000
-7F800000007F800000007F00000000FF800000FFFFFF0000FFFFFF0000FFFFFE00002539
-7CB820>I<0003FFF80000FFFFE00003FFF80000FFFFE00003FFFC0000FFFFE0000007FC
-000007F800000007FE000003F000000007FE000003E00000000FFE000003C00000000FFF
-000003C00000000E7F000003800000000E7F000003800000001E7F800007800000001E3F
-800007000000001C3F800007000000001C3FC00007000000003C1FC0000F000000003C1F
-E0000E00000000380FE0000E00000000380FE0000E00000000780FF0001E000000007807
-F0001C000000007007F0001C000000007007F8001C00000000F003F8003C00000000F003
-FC003800000000E003FC003800000000E001FC003800000001E001FE007800000001E000
-FE007000000001C000FE007000000001C000FF007000000003C0007F00F000000003C000
-7F00E00000000380007F80E00000000380003F80E00000000780003FC1E0000000078000
-1FC1C00000000700001FC1C00000000700001FE1C00000000F00000FE3C00000000F0000
-0FE3800000000E00000FF3800000000E000007F3800000001E000007FF800000001E0000
-07FF000000001C000003FF000000001C000003FF000000003C000001FF000000003C0000
-01FE0000000038000001FE0000000038000000FE0000000078000000FE00000000780000
-00FC00000000F80000007C00000003FC0000007C0000007FFFE000003C000000FFFFE000
-0038000000FFFFE000003800000043397CB83E>78 D<00000003FE00000000003FFFC000
-000000FC07F000000003E001F80000000F80007C0000003F00003E0000007E00001F0000
-00F800001F800001F000000FC00007E000000FC0000FC0000007E0001FC0000007E0001F
-80000007F0003F00000003F0007E00000003F000FE00000003F801FC00000003F801FC00
-000003F803F800000003F803F800000003F807F000000003F807F000000003F80FF00000
-0003F80FE000000003F81FE000000007F81FC000000007F83FC000000007F83FC0000000
-07F83FC000000007F87F800000000FF07F800000000FF07F800000000FF07F800000000F
-F0FF000000001FE0FF000000001FE0FF000000001FE0FF000000003FC0FF000000003FC0
-FF000000003F80FF000000007F80FF000000007F00FF00000000FF00FF00000000FE00FF
-00000001FE00FF00000001FC007F00000003F8007F00000007F0007F00000007F0007F00
-00000FE0003F0000001FC0003F8000003F80001F8000003F00001FC000007E00000FC000
-00FC000007E00003F0000003F00007E0000001F8000F80000000FC003F000000003F01FC
-000000001FFFE00000000001FF00000000353D74BA40>I<0003FFFFFFF0000003FFFFFF
-FE000003FFFFFFFF80000007F8003FC0000007F0000FF0000007F00007F000000FF00003
-F800000FF00001FC00000FE00001FC00000FE00001FC00001FE00001FE00001FE00001FE
-00001FC00001FE00001FC00001FE00003FC00001FE00003FC00003FC00003F800003FC00
-003F800003FC00007F800007F800007F800007F000007F00000FF000007F00000FE00000
-FF00001FC00000FF00003F000000FE0000FE000000FE0001F8000001FE000FE0000001FF
-FFFF80000001FFFFFC00000001FC003F00000003FC000F80000003FC000FC0000003F800
-07E0000003F80007F0000007F80003F0000007F80003F0000007F00003F0000007F00003
-F800000FF00007F800000FF00007F000000FE00007F000000FE00007F000001FE0000FF0
-00001FE0000FF000001FC0000FF000001FC0000FF000003FC0000FF000003FC0001FF000
-003F80001FE007003F80001FE007007F80001FE00F007F80001FE00E007F00001FE00E00
-FF00000FE01C7FFFFE000FE03CFFFFFE0007F078FFFFFE0003F0F00000000000FFE00000
-0000003F80383B7CB83D>82 D<0000003FC00E000001FFF01C000007FFFC1C00001FC07E
-3C00003F001F7C00007C000FF80000F80007F80001F00003F80003E00003F80007C00001
-F00007C00001F0000F800001F0000F800001F0001F800001E0001F000001E0001F000001
-E0001F000001E0003F000001C0003F000001C0003F000001C0003F80000000003F800000
-00003FC0000000001FE0000000001FFC000000001FFF800000000FFFF00000000FFFFE00
-000007FFFF80000003FFFFE0000000FFFFF00000003FFFF800000007FFF8000000007FFC
-000000000FFC0000000003FC0000000001FC0000000001FC0000000000FC0000000000FC
-00000000007C000E0000007C000E0000007C000E0000007C001E000000FC001E000000F8
-001E000000F8001E000000F8003E000001F0003E000001F0003E000003E0003E000003E0
-007F000007C0007F00000F80007F80001F00007FC0003E0000F9F000FC0000F8FC03F800
-00F07FFFE00000E01FFF800000C003FC0000002F3D7ABA2F>I<07FFFFFFFFFFE007FFFF
-FFFFFFE00FFFFFFFFFFFE00FF800FF001FE00FC000FE0007C01F8000FE0007C01F0001FE
-0003C01E0001FE0003C01C0001FC0003C03C0001FC0003803C0003FC000380380003FC00
-0380780003F8000380700003F8000780700007F8000780F00007F8000700E00007F00007
-00E00007F0000700E0000FF000070000000FF000000000000FE000000000000FE0000000
-00001FE000000000001FE000000000001FC000000000001FC000000000003FC000000000
-003FC000000000003F8000000000003F8000000000007F8000000000007F800000000000
-7F0000000000007F000000000000FF000000000000FF000000000000FE000000000000FE
-000000000001FE000000000001FE000000000001FC000000000001FC000000000003FC00
-0000000003FC000000000003F8000000000003F8000000000007F8000000000007F80000
-00000007F0000000000007F000000000000FF000000000000FF000000000000FE0000000
-00003FF0000000007FFFFFF8000000FFFFFFF8000000FFFFFFF8000000333971B83B>I<
-3FFFFF800FFFFE3FFFFF800FFFFE3FFFFF800FFFFE007F8000007F80007F0000003F0000
-7F0000003E0000FF0000003C0000FF0000003C0000FE000000380000FE000000380001FE
-000000780001FE000000700001FC000000700001FC000000700003FC000000F00003FC00
-0000E00003F8000000E00003F8000000E00007F8000001E00007F8000001C00007F00000
-01C00007F0000001C0000FF0000003C0000FF000000380000FE000000380000FE0000003
-80001FE000000780001FE000000700001FC000000700001FC000000700003FC000000F00
-003FC000000E00003F8000000E00003F8000000E00007F8000001E00007F8000001C0000
-7F0000001C00007F0000001C00007F0000003C0000FF000000380000FE000000380000FE
-000000780000FE000000700000FE000000700000FE000000F00000FE000001E00000FE00
-0001C00000FE000003C000007E0000078000007E00000F0000007E00000E0000003F0000
-3E0000001F80007C0000001F8000F00000000FC003E000000007F01FC000000001FFFF00
-000000007FFC00000000001FE000000000373B70B83E>I<FFFFF80003FFFEFFFFF80003
-FFFEFFFFF80003FFFC03FE0000007FC003FC0000003F0001FC0000003E0001FC0000003C
-0001FC000000380001FC000000700001FC000000700001FC000000E00001FC000001E000
-01FC000001C00001FE000003800001FE000003800000FE000007000000FE00000F000000
-FE00000E000000FE00001C000000FE00001C000000FE000038000000FE000038000000FE
-000070000000FE0000E0000000FE0000E0000000FF0001C00000007F0001C00000007F00
-03800000007F0007800000007F0007000000007F000E000000007F000E000000007F001C
-000000007F003C000000007F0038000000007F0070000000007F8070000000003F80E000
-0000003F81E0000000003F81C0000000003F8380000000003F8380000000003F87000000
-00003F8700000000003F8E00000000003F9E00000000003F9C00000000003FF800000000
-003FF800000000001FF000000000001FF000000000001FE000000000001FC00000000000
-1FC000000000001F8000000000001F8000000000001F0000000000001E0000000000001E
-0000000000373B6FB83E>I<FFFFF80FFFFF001FFFF0FFFFF80FFFFF003FFFF0FFFFF00F
-FFFF003FFFE007FE00007FE00003FE0003F800003F800001FC0003F800003F800000F000
-03F800003F800000F00003F800003F800001E00003F800003F800001C00003F800003F80
-0003C00003F800003F800003800003F800003F800007800003F800007F800007000003F8
-00007F80000E000003F80000FF80000E000003F80001FF80001C000003F80001FF80001C
-000003F80003BF800038000003FC0003BF800038000001FC00073F800070000001FC0007
-3F800070000001FC000E3F8000E0000001FC000E3FC000E0000001FC001C1FC001C00000
-01FC001C1FC003C0000001FC00381FC00380000001FC00381FC00700000001FC00701FC0
-0700000001FC00F01FC00E00000001FC00E01FC00E00000001FC01C01FC01C00000001FC
-01C01FC01C00000001FC03801FC03800000001FC03801FC03800000001FC07001FC07000
-000001FC07001FC07000000001FC0E001FC0E000000001FC0E001FC1E000000001FC1C00
-1FC1C000000001FC1C001FC38000000001FC38001FC38000000001FC78001FC700000000
-01FC70001FC70000000001FCE0001FCE0000000001FEE0001FCE0000000000FFC0001FDC
-0000000000FFC0001FDC0000000000FF80001FF80000000000FF80001FF80000000000FF
-00001FF00000000000FF00000FF00000000000FE00000FE00000000000FE00000FC00000
-000000FC00000FC00000000000FC00000F800000000000F800000F800000000000F00000
-0F000000000000F000000F000000000000E000000E00000000004C3B6FB853>I<FFFFFF
-FFFFFCFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFC2F047C7040>95
-D<0000F800000007FE0000001F871C00003E03FE00007C03FE0000F801FE0001F801FE00
-03F000FC0007E000FC000FE000FC000FC001FC001FC001F8001FC001F8003F8001F8003F
-8003F8007F8003F0007F0003F0007F0003F0007F0007F000FF0007E000FE0007E000FE00
-07E000FE000FE000FE000FC000FC000FC1C0FC000FC1C0FC001FC1C0FC001F83C0FC001F
-8380FC003F8380FC003F87807C007F87007C00FF07003E01FF0F003E038F8E001F0F079E
-0007FE03FC0001F000F000222677A42A>97 D<003F00001FFF00001FFF00001FFF000000
-7F0000007E0000007E0000007E000000FE000000FC000000FC000000FC000001FC000001
-F8000001F8000001F8000003F8000003F0000003F0000003F0000007F0000007E0F80007
-E7FE0007EF0F800FFC07C00FF807C00FF003E00FE003E01FC003F01FC003F01F8003F01F
-8003F03F8003F03F0003F03F0003F03F0007F07F0007F07E0007F07E0007F07E000FF0FE
-000FF0FC000FE0FC000FE0FC001FE0FC001FC0F8001FC0F8003F80F8003F80F8003F00F8
-007F00F8007E00F800FC007801F8007C01F0003C03E0003E07C0001E1F80000FFE000001
-F000001C3B77B926>I<00007F000003FFC0000FC1E0001F0070007E007800FC003801F8
-01F803F003F807F003F807E003F80FE003F81FC003F01FC000003F8000003F8000007F80
-00007F0000007F0000007F000000FF000000FE000000FE000000FE000000FE000000FC00
-0000FC000000FC000000FC000030FC000038FC0000787C0000F07E0001E03E0003C03E00
-0F801F003E000F81F80003FFE00000FF00001D2677A426>I<00000001F8000000FFF800
-0000FFF8000000FFF800000003F800000003F000000003F000000007F000000007F00000
-0007E000000007E00000000FE00000000FE00000000FC00000000FC00000001FC0000000
-1FC00000001F800000001F800000003F800000003F800000F83F000007FE3F00001F877F
-00003E03FF00007C03FE0000F801FE0001F801FE0003F000FE0007E000FC000FE000FC00
-0FC001FC001FC001FC001FC001F8003F8001F8003F8003F8007F8003F8007F0003F0007F
-0003F0007F0007F000FF0007F000FE0007E000FE0007E000FE000FE000FE000FE000FC00
-0FC1C0FC000FC1C0FC001FC1C0FC001FC3C0FC001F8380FC003F8380FC003F87807C007F
-87007C00FF07003E01FF0F003E038F8E001F0F079E0007FE03FC0001F000F000253B77B9
-2A>I<00007F000003FFC0000FC1E0003F00F0007E007800FC007801F8007803F0007807
-E000780FE000780FC000F81FC000F03F8001F03F8007E03F801F807F81FF007FFFF8007F
-FF80007F000000FF000000FE000000FE000000FE000000FE000000FE000000FC000000FC
-000000FC0000307C0000387C0000787E0000F03E0001E03E0003C01F000F800F003E0007
-81F80003FFE00000FF00001D2677A426>I<00000007C00000001FF00000003E38000000
-7C3C000000F8FC000000F9FC000001F9FC000001F1FC000003F1F8000003F0F0000003F0
-00000007F000000007E000000007E000000007E000000007E00000000FE00000000FC000
-00000FC00000000FC00000000FC00000001FC00000001F8000000FFFFFC0001FFFFFC000
-1FFFFF8000003F800000003F000000003F000000003F000000003F000000007F00000000
-7E000000007E000000007E000000007E00000000FE00000000FC00000000FC00000000FC
-00000000FC00000001FC00000001F800000001F800000001F800000001F800000003F800
-000003F000000003F000000003F000000003F000000007F000000007E000000007E00000
-0007E000000007E00000000FE00000000FC00000000FC00000000FC00000001FC0000000
-1F800000001F800000001F800000001F000000003F0000001C3F0000007E3E0000007E3E
-000000FE3C000000FE7C000000FE78000000F8F000000078F00000003FC00000000F8000
-0000264C82BA19>I<000007C00000003FF0000000FC38E00001F01FF00003E01FF00007
-C00FF0000F800FF0001F8007F0003F0007E0007F0007E0007E000FE000FE000FE000FC00
-0FC001FC000FC001FC001FC003FC001FC003F8001F8003F8001F8003F8003F8007F8003F
-8007F0003F0007F0003F0007F0007F0007F0007F0007E0007E0007E0007E0007E000FE00
-07E000FE0007E000FC0003E001FC0003E003FC0003E007FC0001F00FF80000F01FF80000
-787BF800003FF3F800000FC3F000000003F000000007F000000007F000000007E0000000
-07E00000000FE00000000FC0001C000FC0007E001FC0007E001F8000FE003F0000FE007E
-0000FE00FC00007801F800007C07E000001FFF80000003FE00000024367CA426>I<0003
-F0000001FFF0000001FFF0000001FFF000000007F000000007E000000007E000000007E0
-0000000FE00000000FC00000000FC00000000FC00000001FC00000001F800000001F8000
-00001F800000003F800000003F000000003F000000003F000000007F000000007E07F000
-007E1FFC00007E783E0000FFE01F0000FFC01F8000FF800F8000FF000F8001FE000F8001
-FE000FC001FC000FC001F8001F8003F8001F8003F0001F8003F0001F8003F0003F8007F0
-003F0007E0003F0007E0003F0007E0007F000FE0007E000FC0007E000FC000FE000FC000
-FC001FC000FC001F8001FC1C1F8001F81C1F8001F83C3F8003F8383F0003F0383F0003F0
-383F0003F0707F0003E0707E0003E0F07E0003E0E07E0003E1C0FE0001E380FC0000FF00
-3800003C00263B7BB92A>I<0001C00007E00007F0000FF0000FE00007E0000380000000
-00000000000000000000000000000000000000000000000000000000000000F00003FC00
-071E000E1F001C1F001C1F00381F00383F00703F00703F00707F00F07E00E07E00E0FE00
-00FC0000FC0001FC0001F80003F80003F80003F00007F00007E00007E0000FE0E00FC0E0
-0FC1E01FC1C01F81C01F81C01F83801F03801F07001F07001F0E000F1C0007F80001E000
-143879B619>I<0000000E0000003F0000007F0000007F0000007F0000007E0000001C00
-000000000000000000000000000000000000000000000000000000000000000000000000
-0000000000000000001F8000007FC00000F1F00001C0F0000380F8000780F8000701F800
-0F01F8000E01F8001E01F8001C03F8003C03F8003803F0003803F0000007F0000007F000
-0007E0000007E000000FE000000FE000000FC000000FC000001FC000001FC000001F8000
-001F8000003F8000003F8000003F0000003F0000007F0000007F0000007E0000007E0000
-00FE000000FE000000FC000000FC000001FC000001FC000001F8000001F8000003F80000
-03F0001C03F0007E07E0007E07E000FE0FC000FE0F8000FE1F0000F83E0000787C00003F
-F000000FC00000204883B619>I<0003F0000001FFF0000001FFF0000001FFF000000007
-F000000007E000000007E000000007E00000000FE00000000FC00000000FC00000000FC0
-0000001FC00000001F800000001F800000001F800000003F800000003F000000003F0000
-00003F000000007F000000007E000F80007E003FE0007E00F0E000FE01C1F000FC0387F0
-00FC0707F000FC0E07F001FC1C07E001F83807E001F830038001F870000003F8E0000003
-F1C0000003F380000003FF00000007FC00000007FE00000007FFC0000007E7F800000FE1
-FC00000FC07E00000FC07F00000FC03F00001FC03F80001F801F81C01F801F81C01F801F
-83C03F803F83803F003F03803F003F03803F003F07807F003F07007E003E07007E001E0E
-007E001E1E00FE000F3C00FC0007F800380001E000243B7BB926>I<000FC007FFC007FF
-C007FFC0001FC0001F80001F80003F80003F80003F00003F00007F00007F00007E00007E
-0000FE0000FE0000FC0000FC0001FC0001FC0001F80001F80003F80003F80003F00003F0
-0007F00007F00007E00007E0000FE0000FE0000FC0000FC0001FC0001FC0001F80001F80
-003F80003F80003F00003F00007F00007F00007E0E007E0E00FE0E00FE1E00FC1C00FC1C
-00FC3C00FC3800F83800F878007870007CE0001FE0000F8000123B79B915>I<01E000FE
-0007F00007F803FF801FFC000E3C0F07C0783E001E3E3C03E1E01F001C1F7803F3C01F80
-383FF001F7800F80383FE001F7000F80783FC001FE000F80703FC001FE000FC0703F8001
-FC000FC0703F0003F8001F80F07F0003F8001F80E07E0003F0001F80E07E0003F0001F80
-007E0007F0003F8000FE0007F0003F0000FC0007E0003F0000FC0007E0003F0000FC000F
-E0007F0001FC000FE0007E0001F8000FC0007E0001F8000FC000FE0001F8001FC000FC00
-03F8001FC000FC0003F0001F8001FC1C03F0001F8001F81C03F0003F8001F83C07F0003F
-8003F83807E0003F0003F03807E0003F0003F03807E0007F0003F0700FE0007F0003E070
-0FC0007E0003E0F00FC0007E0003E0E00FC000FE0003E1C01FC000FE0001E3C01F8000FC
-0000FF000700003800003C003E2679A444>I<01E000FE000007F803FF80000E3C0F07C0
-001E3E3C03E0001C1F7803F000383FF001F000383FE001F000783FC001F000703FC001F8
-00703F8001F800703F0003F000F07F0003F000E07E0003F000E07E0003F000007E0007F0
-0000FE0007E00000FC0007E00000FC0007E00000FC000FE00001FC000FC00001F8000FC0
-0001F8001FC00001F8001F800003F8001F800003F0003F838003F0003F038003F0003F07
-8007F0007F070007E0007E070007E0007E070007E0007E0E000FE0007C0E000FC0007C1E
-000FC0007C1C000FC0007C38001FC0003C78001F80001FE000070000078000292679A42F
->I<00007F000003FFC0000FC1F0001F00F8007E007C00FC007C01F8007E03F0003E07F0
-003F07E0003F0FE0003F1FC0003F1FC0003F3F80003F3F80007F7F80007F7F00007F7F00
-007F7F0000FFFF0000FFFE0000FEFE0000FEFE0001FEFE0001FCFC0001FCFC0003F8FC00
-03F8FC0007F0FC0007E0FC000FE07C000FC07E001F803E003F003E007E001F00F8000F83
-F00003FFC00000FE0000202677A42A>I<00078007C000001FE03FF000003CF0787C0000
-38F8E03E0000787FC03E0000707F801F000070FF001F0000F0FE001F8000E0FE001F8000
-E0FC001F8001E1FC001F8001C1FC001F8001C1F8001F8001C1F8001F800003F8003F8000
-03F8003F800003F0003F800003F0003F800007F0007F800007F0007F800007E0007F0000
-07E0007F00000FE000FF00000FE000FE00000FC000FE00000FC001FC00001FC001FC0000
-1FC001F800001F8003F800001F8003F000003F8007E000003FC00FC000003FC00F800000
-3FE01F0000007FE03E0000007F70FC0000007E3FF00000007E0F80000000FE0000000000
-FE0000000000FC0000000000FC0000000001FC0000000001FC0000000001F80000000001
-F80000000003F80000000003F80000000003F00000000007F000000000FFFFC0000000FF
-FFC0000000FFFFC0000000293580A42A>I<0000F8030007FE07001F871F003E03BF007C
-03FE00F801FE01F801FE03F000FE07E000FC0FE000FC0FC000FC1FC001FC1FC001F83F80
-01F83F8001F87F8003F87F0003F07F0003F07F0003F0FF0007F0FE0007E0FE0007E0FE00
-07E0FE000FE0FC000FC0FC000FC0FC000FC0FC001FC0FC001F80FC003F80FC003F807C00
-7F807C00FF003E01FF003E03BF001F0F7F0007FE7E0001F07E0000007E000000FE000000
-FC000000FC000000FC000001FC000001F8000001F8000001F8000003F8000003F0000007
-F00001FFFFC001FFFFC001FFFFC0203577A426>I<03C003F0000FF01FFC001E783C0F00
-1C7C700F003C3EE03F80383FC03F80387F803F80787F803F00707F003F00707F001C00F0
-7E000000E0FE000000E0FC000000E0FC00000000FC00000001FC00000001F800000001F8
-00000001F800000003F800000003F000000003F000000003F000000007F000000007E000
-000007E000000007E00000000FE00000000FC00000000FC00000000FC00000001FC00000
-001F800000001F800000001F800000003F800000003F000000000E00000000212679A423
->I<0000FE000007FF80000F83C0003E00E0007C00F00078007000F800F001F803F001F0
-03F001F003F001F003E003F001C003F8000003FC000003FFC00001FFF80001FFFE0000FF
-FF00007FFF80003FFF80000FFFC00000FFC000003FC000001FC000000FC03E000FC07E00
-0FC0FE000F80FE000F80FE000F80FC001F00E0001F00F0003E0070007C003800F8001E03
-E0000FFFC00001FE00001C267AA422>I<0003800007C0000FC0000FC0000FC0000FC000
-1FC0001F80001F80001F80003F80003F00003F00003F00007F00007E007FFFFF7FFFFFFF
-FFFF00FC0000FC0000FC0001FC0001F80001F80001F80003F80003F00003F00003F00007
-F00007E00007E00007E0000FE0000FC0000FC0000FC0001FC0001F801C1F801C1F803C3F
-80383F00783F00703F00F03F00E03F01C03E03C01F07800F0F0007FC0001F000183579B3
-1C>I<00F800000003FE0001C0078F0003E00E0F8007E01E0F8007E01C0F8007E0380F80
-0FE0381F800FE0781F800FC0701F800FC0703F801FC0F03F001FC0E03F001F80E07F001F
-80007E003F80007E003F8000FE003F0000FC003F0000FC007F0001FC007F0001F8007E00
-01F8007E0001F800FE0003F800FE0003F000FC0E03F000FC0E03F001FC1E03F001FC1C03
-F001F81C03E001F81C03E001F83C03F003F83803F007F83801F007F07001F01EF8F000F8
-3C78E0003FF03FC0000FC00F00272679A42D>I<00F0000E0003FC003F00071E007F800E
-1F007F801C1F007F803C1F007F80381F003F80383F001F80703F000F80703F000F80707F
-000F80F07E000F00E07E000700E0FE00070000FC000F0000FC000E0001FC000E0001F800
-0E0001F8001E0003F8001C0003F0001C0003F0001C0003F0003C0007F000380007E00038
-0007E000700007E000700007E000700007E000E00007E000E00007E001C00007E003C000
-03E003800003F007000001F00E000000F83C0000007FF80000000FC00000212679A426>
-I<00F0000000070003FC0003801F80071E0007C03FC00E1F000FC03FC01C1F000FC03FC0
-3C1F000FC03FC0381F001FC01FC0383F001F800FC0703F001F8007C0703F001F8007C070
-7F003F8007C0F07E003F800780E07E003F000380E0FE003F00038000FC007F00078000FC
-007F00070001FC007E00070001F8007E00070001F800FE000F0003F800FE000E0003F000
-FC000E0003F000FC000E0003F000FC001E0007F001FC001C0007E001F8001C0007E001F8
-003C0007E001F800380007E001F800380007E001F800780007E001F800700007E003F800
-F00007E003F800E00003E007F801E00003F00FFC03C00001F01E7C07800000FC3C3E0F00
-00003FF81FFE0000000FE003F00000322679A437>I<0007E007C0001FF81FF800787C38
-3C00F03E703C01E01EE0FE03C01FE0FE03801FC0FE07001FC0FC0F001F80FC0E001F8070
-0E003F80001E003F00001C003F00001C003F000000007F000000007F000000007E000000
-007E00000000FE00000000FE00000000FC00000000FC00000001FC00000001FC00000001
-F800700001F800700003F800F00003F800E01C03F000E07E03F001E07E07F001C0FE07F0
-0380FE0FF00780FE0EF00F00781CF81E0078387C3C003FF03FF00007C00FC00027267CA4
-27>I<00F000000003FC0001C0071E0003E00E1F0007E01C1F0007E03C1F0007E0381F00
-0FE0383F000FC0703F000FC0703F000FC0707F001FC0F07E001F80E07E001F80E0FE001F
-8000FC003F8000FC003F0001FC003F0001F8003F0001F8007F0003F8007E0003F0007E00
-03F0007E0003F000FE0007F000FC0007E000FC0007E000FC0007E001FC0007E001F80007
-E001F80007E001F80007E003F80007E003F00007E007F00003E00FF00003F01FF00001F8
-7FE000007FF7E000001FC7E00000000FE00000000FC00000000FC00000001FC0003F001F
-80007F003F80007F003F00007F007E00007F007C00007E00FC00007001F800007003E000
-003807C000003C1F8000000FFE00000003F0000000233679A428>I<0003C00380000FF0
-0780001FF80700003FFC0F00007FFC0E0000FFFE1E0000F83FFC0001F007F80001E000F0
-0001C000E00001C001E000000003C000000007800000000F000000001E000000003C0000
-00007800000000F000000001E000000003C000000007800000000F000000001E00000000
-3C0000000078001C0000F0001C0001E0003C0003C00038000380007800078000F8000FF8
-01F0001FFF07E0003E1FFFE0003C0FFFC000780FFF80007007FF0000F003FC0000E000F0
-000021267BA422>I E
+FFF000FFFFFFFFFFE00038397BB838>I<0007FFFFFFFFFE0007FFFFFFFFFE0007FFFFFF
+FFFE00000FF00007FE00000FE00000FE00000FE000007C00001FE000003C00001FE00000
+3C00001FC000003C00001FC000003C00003FC000003C00003FC000003C00003F8000003C
+00003F8000003800007F8000003800007F8000003800007F0000003800007F0003803800
+00FF000780380000FF000780000000FE000700000000FE000700000001FE000F00000001
+FE000F00000001FC001E00000001FC003E00000003FC00FE00000003FFFFFE00000003FF
+FFFC00000003FFFFFC00000007F800FC00000007F8007C00000007F0007800000007F000
+780000000FF000780000000FF000780000000FE000700000000FE000700000001FE000F0
+0000001FE000F00000001FC000000000001FC000000000003FC000000000003FC0000000
+00003F8000000000003F8000000000007F8000000000007F8000000000007F0000000000
+007F000000000000FF000000000000FF000000000000FE000000000001FF0000000000FF
+FFFF00000000FFFFFF00000000FFFFFF0000000037397BB836>I<0003FFFFF80FFFFFE0
+0003FFFFF80FFFFFE00003FFFFF80FFFFFE0000007F800001FE000000007F000001FC000
+000007F000001FC00000000FF000003FC00000000FF000003F800000000FE000003F8000
+00000FE000003F800000001FE000007F800000001FE000007F000000001FC000007F0000
+00001FC000007F000000003FC00000FF000000003FC00000FE000000003F800000FE0000
+00003F800000FE000000007F800001FE000000007F800001FC000000007F000001FC0000
+00007F000001FC00000000FF000003FC00000000FF000003F800000000FE000003F80000
+0000FE000003F800000001FFFFFFFFF800000001FFFFFFFFF000000001FFFFFFFFF00000
+0001FC000007F000000003FC00000FF000000003FC00000FE000000003F800000FE00000
+0003F800000FE000000007F800001FE000000007F800001FC000000007F000001FC00000
+0007F000001FC00000000FF000003FC00000000FF000003F800000000FE000003F800000
+000FE000003F800000001FE000007F800000001FE000007F000000001FC000007F000000
+001FC000007F000000003FC00000FF000000003FC00000FE000000003F800000FE000000
+003F800000FE000000007F800001FE000000007F800001FC000000007F000001FC000000
+00FF000003FC0000007FFFFE01FFFFF80000FFFFFE03FFFFF80000FFFFFE03FFFFF80000
+43397CB83E>72 D<0003FFFFF80003FFFFF80003FFFFF8000007F800000007F000000007
+F00000000FF00000000FF00000000FE00000000FE00000001FE00000001FE00000001FC0
+0000001FC00000003FC00000003FC00000003F800000003F800000007F800000007F8000
+00007F000000007F00000000FF00000000FF00000000FE00000000FE00000001FE000000
+01FE00000001FC00000001FC00000003FC00000003FC00000003F800000003F800000007
+F800000007F800000007F000000007F00000000FF00000000FF00000000FE00000000FE0
+0000001FE00000001FE00000001FC00000001FC00000003FC00000003FC00000003F8000
+00003F800000007F800000007F800000007F00000000FF800000FFFFFF0000FFFFFF0000
+FFFFFE000025397CB820>I<0007FFFFFC000007FFFFFC000007FFFFF80000000FF80000
+00000FF0000000000FE0000000001FE0000000001FE0000000001FC0000000001FC00000
+00003FC0000000003FC0000000003F80000000003F80000000007F80000000007F800000
+00007F00000000007F0000000000FF0000000000FF0000000000FE0000000000FE000000
+0001FE0000000001FE0000000001FC0000000001FC0000000003FC0000000003FC000000
+0003F80000000003F80000000007F80000000007F80000000007F00000000007F0000000
+000FF0000000000FF000000C000FE000001C000FE000001C001FE000003C001FE0000038
+001FC0000078001FC0000078003FC0000070003FC00000F0003F800000E0003F800001E0
+007F800003E0007F800003C0007F000007C0007F00000FC000FF00001F8000FF00003F80
+00FE0000FF8001FE0007FF00FFFFFFFFFF00FFFFFFFFFF00FFFFFFFFFE002E397BB834>
+76 D<0007FFF800000007FFF00007FFF80000000FFFF00007FFF80000001FFFE000000F
+F80000001FF00000000FF80000003FE00000000FF80000003FE00000001FF80000007FE0
+0000001FF8000000EFC00000001DF8000000EFC00000001CFC000001CFC00000003CFC00
+0001DFC00000003CFC0000039F8000000038FC0000071F8000000038FC0000071F800000
+0078FC00000E3F8000000078FC00000E3F0000000070FC00001C3F0000000070FC00001C
+3F00000000F0FC0000387F00000000F0FC0000707E00000000E0FC0000707E00000000E0
+7E0000E07E00000001E07E0000E0FE00000001E07E0001C0FC00000001C07E000380FC00
+000001C07E000380FC00000003C07E000701FC00000003C07E000701F800000003807E00
+0E01F800000003807E000E01F800000007807E001C03F800000007807E003803F0000000
+07007E003803F000000007003F007003F00000000F003F007007F00000000F003F00E007
+E00000000E003F01C007E00000000E003F01C007E00000001E003F03800FE00000001E00
+3F03800FC00000001C003F07000FC00000001C003F07000FC00000003C003F0E001FC000
+00003C003F1C001F8000000038003F1C001F8000000038001FB8001F8000000078001FB8
+003F8000000078001FF0003F0000000070001FE0003F0000000070001FE0003F00000000
+F0001FC0007F00000000F0001FC0007E00000001F0001F80007E00000007F8001F8000FE
+000000FFFFC01F007FFFFC0000FFFFC01E007FFFFC0000FFFFC00E007FFFFC00004C397A
+B84A>I<0003FFF80000FFFFE00003FFF80000FFFFE00003FFFC0000FFFFE0000007FC00
+0007F800000007FE000003F000000007FE000003E00000000FFE000003C00000000FFF00
+0003C00000000E7F000003800000000E7F000003800000001E7F800007800000001E3F80
+0007000000001C3F800007000000001C3FC00007000000003C1FC0000F000000003C1FE0
+000E00000000380FE0000E00000000380FE0000E00000000780FF0001E000000007807F0
+001C000000007007F0001C000000007007F8001C00000000F003F8003C00000000F003FC
+003800000000E003FC003800000000E001FC003800000001E001FE007800000001E000FE
+007000000001C000FE007000000001C000FF007000000003C0007F00F000000003C0007F
+00E00000000380007F80E00000000380003F80E00000000780003FC1E00000000780001F
+C1C00000000700001FC1C00000000700001FE1C00000000F00000FE3C00000000F00000F
+E3800000000E00000FF3800000000E000007F3800000001E000007FF800000001E000007
+FF000000001C000003FF000000001C000003FF000000003C000001FF000000003C000001
+FE0000000038000001FE0000000038000000FE0000000078000000FE0000000078000000
+FC00000000F80000007C00000003FC0000007C0000007FFFE000003C000000FFFFE00000
+38000000FFFFE000003800000043397CB83E>I<00000003FE00000000003FFFC0000000
+00FC07F000000003E001F80000000F80007C0000003F00003E0000007E00001F000000F8
+00001F800001F000000FC00007E000000FC0000FC0000007E0001FC0000007E0001F8000
+0007F0003F00000003F0007E00000003F000FE00000003F801FC00000003F801FC000000
+03F803F800000003F803F800000003F807F000000003F807F000000003F80FF000000003
+F80FE000000003F81FE000000007F81FC000000007F83FC000000007F83FC000000007F8
+3FC000000007F87F800000000FF07F800000000FF07F800000000FF07F800000000FF0FF
+000000001FE0FF000000001FE0FF000000001FE0FF000000003FC0FF000000003FC0FF00
+0000003F80FF000000007F80FF000000007F00FF00000000FF00FF00000000FE00FF0000
+0001FE00FF00000001FC007F00000003F8007F00000007F0007F00000007F0007F000000
+0FE0003F0000001FC0003F8000003F80001F8000003F00001FC000007E00000FC00000FC
+000007E00003F0000003F00007E0000001F8000F80000000FC003F000000003F01FC0000
+00001FFFE00000000001FF00000000353D74BA40>I<0007FFFFFFF8000007FFFFFFFF00
+0007FFFFFFFF8000000FF0003FE000000FE0000FF000000FE00003F800001FE00003F800
+001FE00001FC00001FC00001FC00001FC00001FC00003FC00001FE00003FC00001FE0000
+3F800001FE00003F800001FE00007F800001FE00007F800003FC00007F000003FC00007F
+000003FC0000FF000003F80000FF000007F80000FE000007F00000FE00000FE00001FE00
+000FE00001FE00001FC00001FC00003F800001FC0000FE000003FC0001FC000003FC000F
+F0000003FFFFFFC0000003FFFFFE00000007F8000000000007F8000000000007F0000000
+000007F000000000000FF000000000000FF000000000000FE000000000000FE000000000
+001FE000000000001FE000000000001FC000000000001FC000000000003FC00000000000
+3FC000000000003F8000000000003F8000000000007F8000000000007F8000000000007F
+0000000000007F000000000000FF000000000000FF000000000000FE000000000001FE00
+00000000FFFFFC00000000FFFFFC00000000FFFFFC0000000037397BB838>I<0003FFFF
+FFF0000003FFFFFFFE000003FFFFFFFF80000007F8003FC0000007F0000FF0000007F000
+07F000000FF00003F800000FF00001FC00000FE00001FC00000FE00001FC00001FE00001
+FE00001FE00001FE00001FC00001FE00001FC00001FE00003FC00001FE00003FC00003FC
+00003F800003FC00003F800003FC00007F800007F800007F800007F000007F00000FF000
+007F00000FE00000FF00001FC00000FF00003F000000FE0000FE000000FE0001F8000001
+FE000FE0000001FFFFFF80000001FFFFFC00000001FC003F00000003FC000F80000003FC
+000FC0000003F80007E0000003F80007F0000007F80003F0000007F80003F0000007F000
+03F0000007F00003F800000FF00007F800000FF00007F000000FE00007F000000FE00007
+F000001FE0000FF000001FE0000FF000001FC0000FF000001FC0000FF000003FC0000FF0
+00003FC0001FF000003F80001FE007003F80001FE007007F80001FE00F007F80001FE00E
+007F00001FE00E00FF00000FE01C7FFFFE000FE03CFFFFFE0007F078FFFFFE0003F0F000
+00000000FFE000000000003F80383B7CB83D>82 D<0000003FC00E000001FFF01C000007
+FFFC1C00001FC07E3C00003F001F7C00007C000FF80000F80007F80001F00003F80003E0
+0003F80007C00001F00007C00001F0000F800001F0000F800001F0001F800001E0001F00
+0001E0001F000001E0001F000001E0003F000001C0003F000001C0003F000001C0003F80
+000000003F80000000003FC0000000001FE0000000001FFC000000001FFF800000000FFF
+F00000000FFFFE00000007FFFF80000003FFFFE0000000FFFFF00000003FFFF800000007
+FFF8000000007FFC000000000FFC0000000003FC0000000001FC0000000001FC00000000
+00FC0000000000FC00000000007C000E0000007C000E0000007C000E0000007C001E0000
+00FC001E000000F8001E000000F8001E000000F8003E000001F0003E000001F0003E0000
+03E0003E000003E0007F000007C0007F00000F80007F80001F00007FC0003E0000F9F000
+FC0000F8FC03F80000F07FFFE00000E01FFF800000C003FC0000002F3D7ABA2F>I<07FF
+FFFFFFFFE007FFFFFFFFFFE00FFFFFFFFFFFE00FF800FF001FE00FC000FE0007C01F8000
+FE0007C01F0001FE0003C01E0001FE0003C01C0001FC0003C03C0001FC0003803C0003FC
+000380380003FC000380780003F8000380700003F8000780700007F8000780F00007F800
+0700E00007F0000700E00007F0000700E0000FF000070000000FF000000000000FE00000
+0000000FE000000000001FE000000000001FE000000000001FC000000000001FC0000000
+00003FC000000000003FC000000000003F8000000000003F8000000000007F8000000000
+007F8000000000007F0000000000007F000000000000FF000000000000FF000000000000
+FE000000000000FE000000000001FE000000000001FE000000000001FC000000000001FC
+000000000003FC000000000003FC000000000003F8000000000003F8000000000007F800
+0000000007F8000000000007F0000000000007F000000000000FF000000000000FF00000
+0000000FE000000000003FF0000000007FFFFFF8000000FFFFFFF8000000FFFFFFF80000
+00333971B83B>I<3FFFFF800FFFFE3FFFFF800FFFFE3FFFFF800FFFFE007F8000007F80
+007F0000003F00007F0000003E0000FF0000003C0000FF0000003C0000FE000000380000
+FE000000380001FE000000780001FE000000700001FC000000700001FC000000700003FC
+000000F00003FC000000E00003F8000000E00003F8000000E00007F8000001E00007F800
+0001C00007F0000001C00007F0000001C0000FF0000003C0000FF000000380000FE00000
+0380000FE000000380001FE000000780001FE000000700001FC000000700001FC0000007
+00003FC000000F00003FC000000E00003F8000000E00003F8000000E00007F8000001E00
+007F8000001C00007F0000001C00007F0000001C00007F0000003C0000FF000000380000
+FE000000380000FE000000780000FE000000700000FE000000700000FE000000F00000FE
+000001E00000FE000001C00000FE000003C000007E0000078000007E00000F0000007E00
+000E0000003F00003E0000001F80007C0000001F8000F00000000FC003E000000007F01F
+C000000001FFFF00000000007FFC00000000001FE000000000373B70B83E>I<FFFFF800
+03FFFEFFFFF80003FFFEFFFFF80003FFFC03FE0000007FC003FC0000003F0001FC000000
+3E0001FC0000003C0001FC000000380001FC000000700001FC000000700001FC000000E0
+0001FC000001E00001FC000001C00001FE000003800001FE000003800000FE0000070000
+00FE00000F000000FE00000E000000FE00001C000000FE00001C000000FE000038000000
+FE000038000000FE000070000000FE0000E0000000FE0000E0000000FF0001C00000007F
+0001C00000007F0003800000007F0007800000007F0007000000007F000E000000007F00
+0E000000007F001C000000007F003C000000007F0038000000007F0070000000007F8070
+000000003F80E0000000003F81E0000000003F81C0000000003F8380000000003F838000
+0000003F8700000000003F8700000000003F8E00000000003F9E00000000003F9C000000
+00003FF800000000003FF800000000001FF000000000001FF000000000001FE000000000
+001FC000000000001FC000000000001F8000000000001F8000000000001F000000000000
+1E0000000000001E0000000000373B6FB83E>I<FFFFF80FFFFF001FFFF0FFFFF80FFFFF
+003FFFF0FFFFF00FFFFF003FFFE007FE00007FE00003FE0003F800003F800001FC0003F8
+00003F800000F00003F800003F800000F00003F800003F800001E00003F800003F800001
+C00003F800003F800003C00003F800003F800003800003F800003F800007800003F80000
+7F800007000003F800007F80000E000003F80000FF80000E000003F80001FF80001C0000
+03F80001FF80001C000003F80003BF800038000003FC0003BF800038000001FC00073F80
+0070000001FC00073F800070000001FC000E3F8000E0000001FC000E3FC000E0000001FC
+001C1FC001C0000001FC001C1FC003C0000001FC00381FC00380000001FC00381FC00700
+000001FC00701FC00700000001FC00F01FC00E00000001FC00E01FC00E00000001FC01C0
+1FC01C00000001FC01C01FC01C00000001FC03801FC03800000001FC03801FC038000000
+01FC07001FC07000000001FC07001FC07000000001FC0E001FC0E000000001FC0E001FC1
+E000000001FC1C001FC1C000000001FC1C001FC38000000001FC38001FC38000000001FC
+78001FC70000000001FC70001FC70000000001FCE0001FCE0000000001FEE0001FCE0000
+000000FFC0001FDC0000000000FFC0001FDC0000000000FF80001FF80000000000FF8000
+1FF80000000000FF00001FF00000000000FF00000FF00000000000FE00000FE000000000
+00FE00000FC00000000000FC00000FC00000000000FC00000F800000000000F800000F80
+0000000000F000000F000000000000F000000F000000000000E000000E00000000004C3B
+6FB853>I<FFFFF80003FFFEFFFFF80003FFFEFFFFF80003FFFE03FE0000007FC001FE00
+00003F0001FE0000003E0001FE000000780000FE000000F00000FF000000E00000FF0000
+01C000007F000003C000007F8000078000007F8000070000007F80000E0000003F80001C
+0000003FC0003C0000003FC000780000001FC000700000001FE000E00000001FE001C000
+00000FE003C00000000FF007800000000FF007000000000FF00E0000000007F01C000000
+0007F83C0000000007F8780000000003F8F00000000003FCE00000000003FDC000000000
+01FF800000000001FF800000000001FF000000000001FE000000000000FC000000000001
+FC000000000001FC000000000001FC000000000001F8000000000003F8000000000003F8
+000000000003F8000000000003F0000000000007F0000000000007F0000000000007F000
+0000000007E000000000000FE000000000000FE000000000000FE000000000000FC00000
+0000001FC000000000001FC000000000003FC0000000001FFFFF800000003FFFFF800000
+003FFFFF8000000037396FB83E>89 D<FFFFFFFFFFFCFFFFFFFFFFFEFFFFFFFFFFFEFFFF
+FFFFFFFC2F047C7040>95 D<0000F800000007FE0000001F871C00003E03FE00007C03FE
+0000F801FE0001F801FE0003F000FC0007E000FC000FE000FC000FC001FC001FC001F800
+1FC001F8003F8001F8003F8003F8007F8003F0007F0003F0007F0003F0007F0007F000FF
+0007E000FE0007E000FE0007E000FE000FE000FE000FC000FC000FC1C0FC000FC1C0FC00
+1FC1C0FC001F83C0FC001F8380FC003F8380FC003F87807C007F87007C00FF07003E01FF
+0F003E038F8E001F0F079E0007FE03FC0001F000F000222677A42A>97
+D<003F00001FFF00001FFF00001FFF0000007F0000007E0000007E0000007E000000FE00
+0000FC000000FC000000FC000001FC000001F8000001F8000001F8000003F8000003F000
+0003F0000003F0000007F0000007E0F80007E7FE0007EF0F800FFC07C00FF807C00FF003
+E00FE003E01FC003F01FC003F01F8003F01F8003F03F8003F03F0003F03F0003F03F0007
+F07F0007F07E0007F07E0007F07E000FF0FE000FF0FC000FE0FC000FE0FC001FE0FC001F
+C0F8001FC0F8003F80F8003F80F8003F00F8007F00F8007E00F800FC007801F8007C01F0
+003C03E0003E07C0001E1F80000FFE000001F000001C3B77B926>I<00007F000003FFC0
+000FC1E0001F0070007E007800FC003801F801F803F003F807F003F807E003F80FE003F8
+1FC003F01FC000003F8000003F8000007F8000007F0000007F0000007F000000FF000000
+FE000000FE000000FE000000FE000000FC000000FC000000FC000000FC000030FC000038
+FC0000787C0000F07E0001E03E0003C03E000F801F003E000F81F80003FFE00000FF0000
+1D2677A426>I<00000001F8000000FFF8000000FFF8000000FFF800000003F800000003
+F000000003F000000007F000000007F000000007E000000007E00000000FE00000000FE0
+0000000FC00000000FC00000001FC00000001FC00000001F800000001F800000003F8000
+00003F800000F83F000007FE3F00001F877F00003E03FF00007C03FE0000F801FE0001F8
+01FE0003F000FE0007E000FC000FE000FC000FC001FC001FC001FC001FC001F8003F8001
+F8003F8003F8007F8003F8007F0003F0007F0003F0007F0007F000FF0007F000FE0007E0
+00FE0007E000FE000FE000FE000FE000FC000FC1C0FC000FC1C0FC001FC1C0FC001FC3C0
+FC001F8380FC003F8380FC003F87807C007F87007C00FF07003E01FF0F003E038F8E001F
+0F079E0007FE03FC0001F000F000253B77B92A>I<00007F000003FFC0000FC1E0003F00
+F0007E007800FC007801F8007803F0007807E000780FE000780FC000F81FC000F03F8001
+F03F8007E03F801F807F81FF007FFFF8007FFF80007F000000FF000000FE000000FE0000
+00FE000000FE000000FE000000FC000000FC000000FC0000307C0000387C0000787E0000
+F03E0001E03E0003C01F000F800F003E000781F80003FFE00000FF00001D2677A426>I<
+00000007C00000001FF00000003E380000007C3C000000F8FC000000F9FC000001F9FC00
+0001F1FC000003F1F8000003F0F0000003F000000007F000000007E000000007E0000000
+07E000000007E00000000FE00000000FC00000000FC00000000FC00000000FC00000001F
+C00000001F8000000FFFFFC0001FFFFFC0001FFFFF8000003F800000003F000000003F00
+0000003F000000003F000000007F000000007E000000007E000000007E000000007E0000
+0000FE00000000FC00000000FC00000000FC00000000FC00000001FC00000001F8000000
+01F800000001F800000001F800000003F800000003F000000003F000000003F000000003
+F000000007F000000007E000000007E000000007E000000007E00000000FE00000000FC0
+0000000FC00000000FC00000001FC00000001F800000001F800000001F800000001F0000
+00003F0000001C3F0000007E3E0000007E3E000000FE3C000000FE7C000000FE78000000
+F8F000000078F00000003FC00000000F80000000264C82BA19>I<000007C00000003FF0
+000000FC38E00001F01FF00003E01FF00007C00FF0000F800FF0001F8007F0003F0007E0
+007F0007E0007E000FE000FE000FE000FC000FC001FC000FC001FC001FC003FC001FC003
+F8001F8003F8001F8003F8003F8007F8003F8007F0003F0007F0003F0007F0007F0007F0
+007F0007E0007E0007E0007E0007E000FE0007E000FE0007E000FC0003E001FC0003E003
+FC0003E007FC0001F00FF80000F01FF80000787BF800003FF3F800000FC3F000000003F0
+00000007F000000007F000000007E000000007E00000000FE00000000FC0001C000FC000
+7E001FC0007E001F8000FE003F0000FE007E0000FE00FC00007801F800007C07E000001F
+FF80000003FE00000024367CA426>I<0003F0000001FFF0000001FFF0000001FFF00000
+0007F000000007E000000007E000000007E00000000FE00000000FC00000000FC0000000
+0FC00000001FC00000001F800000001F800000001F800000003F800000003F000000003F
+000000003F000000007F000000007E07F000007E1FFC00007E783E0000FFE01F0000FFC0
+1F8000FF800F8000FF000F8001FE000F8001FE000FC001FC000FC001F8001F8003F8001F
+8003F0001F8003F0001F8003F0003F8007F0003F0007E0003F0007E0003F0007E0007F00
+0FE0007E000FC0007E000FC000FE000FC000FC001FC000FC001F8001FC1C1F8001F81C1F
+8001F83C3F8003F8383F0003F0383F0003F0383F0003F0707F0003E0707E0003E0F07E00
+03E0E07E0003E1C0FE0001E380FC0000FF003800003C00263B7BB92A>I<0001C00007E0
+0007F0000FF0000FE00007E0000380000000000000000000000000000000000000000000
+00000000000000000000000000F00003FC00071E000E1F001C1F001C1F00381F00383F00
+703F00703F00707F00F07E00E07E00E0FE0000FC0000FC0001FC0001F80003F80003F800
+03F00007F00007E00007E0000FE0E00FC0E00FC1E01FC1C01F81C01F81C01F83801F0380
+1F07001F07001F0E000F1C0007F80001E000143879B619>I<0000000E0000003F000000
+7F0000007F0000007F0000007E0000001C00000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000001F8000007FC00000F1
+F00001C0F0000380F8000780F8000701F8000F01F8000E01F8001E01F8001C03F8003C03
+F8003803F0003803F0000007F0000007F0000007E0000007E000000FE000000FE000000F
+C000000FC000001FC000001FC000001F8000001F8000003F8000003F8000003F0000003F
+0000007F0000007F0000007E0000007E000000FE000000FE000000FC000000FC000001FC
+000001FC000001F8000001F8000003F8000003F0001C03F0007E07E0007E07E000FE0FC0
+00FE0F8000FE1F0000F83E0000787C00003FF000000FC00000204883B619>I<0003F000
+0001FFF0000001FFF0000001FFF000000007F000000007E000000007E000000007E00000
+000FE00000000FC00000000FC00000000FC00000001FC00000001F800000001F80000000
+1F800000003F800000003F000000003F000000003F000000007F000000007E000F80007E
+003FE0007E00F0E000FE01C1F000FC0387F000FC0707F000FC0E07F001FC1C07E001F838
+07E001F830038001F870000003F8E0000003F1C0000003F380000003FF00000007FC0000
+0007FE00000007FFC0000007E7F800000FE1FC00000FC07E00000FC07F00000FC03F0000
+1FC03F80001F801F81C01F801F81C01F801F83C03F803F83803F003F03803F003F03803F
+003F07807F003F07007E003E07007E001E0E007E001E1E00FE000F3C00FC0007F8003800
+01E000243B7BB926>I<000FC007FFC007FFC007FFC0001FC0001F80001F80003F80003F
+80003F00003F00007F00007F00007E00007E0000FE0000FE0000FC0000FC0001FC0001FC
+0001F80001F80003F80003F80003F00003F00007F00007F00007E00007E0000FE0000FE0
+000FC0000FC0001FC0001FC0001F80001F80003F80003F80003F00003F00007F00007F00
+007E0E007E0E00FE0E00FE1E00FC1C00FC1C00FC3C00FC3800F83800F878007870007CE0
+001FE0000F8000123B79B915>I<01E000FE0007F00007F803FF801FFC000E3C0F07C078
+3E001E3E3C03E1E01F001C1F7803F3C01F80383FF001F7800F80383FE001F7000F80783F
+C001FE000F80703FC001FE000FC0703F8001FC000FC0703F0003F8001F80F07F0003F800
+1F80E07E0003F0001F80E07E0003F0001F80007E0007F0003F8000FE0007F0003F0000FC
+0007E0003F0000FC0007E0003F0000FC000FE0007F0001FC000FE0007E0001F8000FC000
+7E0001F8000FC000FE0001F8001FC000FC0003F8001FC000FC0003F0001F8001FC1C03F0
+001F8001F81C03F0003F8001F83C07F0003F8003F83807E0003F0003F03807E0003F0003
+F03807E0007F0003F0700FE0007F0003E0700FC0007E0003E0F00FC0007E0003E0E00FC0
+00FE0003E1C01FC000FE0001E3C01F8000FC0000FF000700003800003C003E2679A444>
+I<01E000FE000007F803FF80000E3C0F07C0001E3E3C03E0001C1F7803F000383FF001F0
+00383FE001F000783FC001F000703FC001F800703F8001F800703F0003F000F07F0003F0
+00E07E0003F000E07E0003F000007E0007F00000FE0007E00000FC0007E00000FC0007E0
+0000FC000FE00001FC000FC00001F8000FC00001F8001FC00001F8001F800003F8001F80
+0003F0003F838003F0003F038003F0003F078007F0007F070007E0007E070007E0007E07
+0007E0007E0E000FE0007C0E000FC0007C1E000FC0007C1C000FC0007C38001FC0003C78
+001F80001FE000070000078000292679A42F>I<00007F000003FFC0000FC1F0001F00F8
+007E007C00FC007C01F8007E03F0003E07F0003F07E0003F0FE0003F1FC0003F1FC0003F
+3F80003F3F80007F7F80007F7F00007F7F00007F7F0000FFFF0000FFFE0000FEFE0000FE
+FE0001FEFE0001FCFC0001FCFC0003F8FC0003F8FC0007F0FC0007E0FC000FE07C000FC0
+7E001F803E003F003E007E001F00F8000F83F00003FFC00000FE0000202677A42A>I<00
+078007C000001FE03FF000003CF0787C000038F8E03E0000787FC03E0000707F801F0000
+70FF001F0000F0FE001F8000E0FE001F8000E0FC001F8001E1FC001F8001C1FC001F8001
+C1F8001F8001C1F8001F800003F8003F800003F8003F800003F0003F800003F0003F8000
+07F0007F800007F0007F800007E0007F000007E0007F00000FE000FF00000FE000FE0000
+0FC000FE00000FC001FC00001FC001FC00001FC001F800001F8003F800001F8003F00000
+3F8007E000003FC00FC000003FC00F8000003FE01F0000007FE03E0000007F70FC000000
+7E3FF00000007E0F80000000FE0000000000FE0000000000FC0000000000FC0000000001
+FC0000000001FC0000000001F80000000001F80000000003F80000000003F80000000003
+F00000000007F000000000FFFFC0000000FFFFC0000000FFFFC0000000293580A42A>I<
+0000F8030007FE07001F871F003E03BF007C03FE00F801FE01F801FE03F000FE07E000FC
+0FE000FC0FC000FC1FC001FC1FC001F83F8001F83F8001F87F8003F87F0003F07F0003F0
+7F0003F0FF0007F0FE0007E0FE0007E0FE0007E0FE000FE0FC000FC0FC000FC0FC000FC0
+FC001FC0FC001F80FC003F80FC003F807C007F807C00FF003E01FF003E03BF001F0F7F00
+07FE7E0001F07E0000007E000000FE000000FC000000FC000000FC000001FC000001F800
+0001F8000001F8000003F8000003F0000007F00001FFFFC001FFFFC001FFFFC0203577A4
+26>I<03C003F0000FF01FFC001E783C0F001C7C700F003C3EE03F80383FC03F80387F80
+3F80787F803F00707F003F00707F001C00F07E000000E0FE000000E0FC000000E0FC0000
+0000FC00000001FC00000001F800000001F800000001F800000003F800000003F0000000
+03F000000003F000000007F000000007E000000007E000000007E00000000FE00000000F
+C00000000FC00000000FC00000001FC00000001F800000001F800000001F800000003F80
+0000003F000000000E00000000212679A423>I<0000FE000007FF80000F83C0003E00E0
+007C00F00078007000F800F001F803F001F003F001F003F001F003E003F001C003F80000
+03FC000003FFC00001FFF80001FFFE0000FFFF00007FFF80003FFF80000FFFC00000FFC0
+00003FC000001FC000000FC03E000FC07E000FC0FE000F80FE000F80FE000F80FC001F00
+E0001F00F0003E0070007C003800F8001E03E0000FFFC00001FE00001C267AA422>I<00
+03800007C0000FC0000FC0000FC0000FC0001FC0001F80001F80001F80003F80003F0000
+3F00003F00007F00007E007FFFFF7FFFFFFFFFFF00FC0000FC0000FC0001FC0001F80001
+F80001F80003F80003F00003F00003F00007F00007E00007E00007E0000FE0000FC0000F
+C0000FC0001FC0001F801C1F801C1F803C3F80383F00783F00703F00F03F00E03F01C03E
+03C01F07800F0F0007FC0001F000183579B31C>I<00F800000003FE0001C0078F0003E0
+0E0F8007E01E0F8007E01C0F8007E0380F800FE0381F800FE0781F800FC0701F800FC070
+3F801FC0F03F001FC0E03F001F80E07F001F80007E003F80007E003F8000FE003F0000FC
+003F0000FC007F0001FC007F0001F8007E0001F8007E0001F800FE0003F800FE0003F000
+FC0E03F000FC0E03F001FC1E03F001FC1C03F001F81C03E001F81C03E001F83C03F003F8
+3803F007F83801F007F07001F01EF8F000F83C78E0003FF03FC0000FC00F00272679A42D
+>I<00F0000E0003FC003F00071E007F800E1F007F801C1F007F803C1F007F80381F003F
+80383F001F80703F000F80703F000F80707F000F80F07E000F00E07E000700E0FE000700
+00FC000F0000FC000E0001FC000E0001F8000E0001F8001E0003F8001C0003F0001C0003
+F0001C0003F0003C0007F000380007E000380007E000700007E000700007E000700007E0
+00E00007E000E00007E001C00007E003C00003E003800003F007000001F00E000000F83C
+0000007FF80000000FC00000212679A426>I<00F0000000070003FC0003801F80071E00
+07C03FC00E1F000FC03FC01C1F000FC03FC03C1F000FC03FC0381F001FC01FC0383F001F
+800FC0703F001F8007C0703F001F8007C0707F003F8007C0F07E003F800780E07E003F00
+0380E0FE003F00038000FC007F00078000FC007F00070001FC007E00070001F8007E0007
+0001F800FE000F0003F800FE000E0003F000FC000E0003F000FC000E0003F000FC001E00
+07F001FC001C0007E001F8001C0007E001F8003C0007E001F800380007E001F800380007
+E001F800780007E001F800700007E003F800F00007E003F800E00003E007F801E00003F0
+0FFC03C00001F01E7C07800000FC3C3E0F0000003FF81FFE0000000FE003F00000322679
+A437>I<0007E007C0001FF81FF800787C383C00F03E703C01E01EE0FE03C01FE0FE0380
+1FC0FE07001FC0FC0F001F80FC0E001F80700E003F80001E003F00001C003F00001C003F
+000000007F000000007F000000007E000000007E00000000FE00000000FE00000000FC00
+000000FC00000001FC00000001FC00000001F800700001F800700003F800F00003F800E0
+1C03F000E07E03F001E07E07F001C0FE07F00380FE0FF00780FE0EF00F00781CF81E0078
+387C3C003FF03FF00007C00FC00027267CA427>I<00F000000003FC0001C0071E0003E0
+0E1F0007E01C1F0007E03C1F0007E0381F000FE0383F000FC0703F000FC0703F000FC070
+7F001FC0F07E001F80E07E001F80E0FE001F8000FC003F8000FC003F0001FC003F0001F8
+003F0001F8007F0003F8007E0003F0007E0003F0007E0003F000FE0007F000FC0007E000
+FC0007E000FC0007E001FC0007E001F80007E001F80007E001F80007E003F80007E003F0
+0007E007F00003E00FF00003F01FF00001F87FE000007FF7E000001FC7E00000000FE000
+00000FC00000000FC00000001FC0003F001F80007F003F80007F003F00007F007E00007F
+007C00007E00FC00007001F800007003E000003807C000003C1F8000000FFE00000003F0
+000000233679A428>I<0003C00380000FF00780001FF80700003FFC0F00007FFC0E0000
+FFFE1E0000F83FFC0001F007F80001E000F00001C000E00001C001E000000003C0000000
+07800000000F000000001E000000003C000000007800000000F000000001E000000003C0
+00000007800000000F000000001E000000003C0000000078001C0000F0001C0001E0003C
+0003C00038000380007800078000F8000FF801F0001FFF07E0003E1FFFE0003C0FFFC000
+780FFF80007007FF0000F003FC0000E000F0000021267BA422>I
+E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fd ectt1200 12 11
/Fd 11 122 df<7FFFF8000000FFFFFC000000FFFFFE000000FFFFFE000000FFFFFC0000
@@ -730,8 +790,8 @@ FF00007FFC0007FE00007FFE001FFC00007FFFC0FFF800007FFFFFFFF800007F7FFFFFE0
000000FFFFFF80000000FFFFFF80000000FFFFFF80000000FFFFFF800000007FFFFF0000
0000344F7DB33D>112 D E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Ff ecss1000 10 54
-/Ff 54 122 df<FFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFF
+%DVIPSBitmapFont: Ff ecss1000 10 55
+/Ff 55 122 df<FFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFF
FFFFFFC0FFFFFFFFFFFFFFFFFFFFC0FFFFFFFFFFFFFFFFFFFFC05205809853>22
D<0001F807F00007FE07F0000FFE07F0001FFE07F0003FFE07F0007F0E07F0007E0207F0
00FE00000000FC00000000FC00000001FC00000001FC00000001FC00000001FC00000001
@@ -1105,28 +1165,33 @@ FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001
FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001
FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001FCFE0001
FCFE0003FCFE0003FCFE0007FCFF001FFC7F807FFC7FFFFFFC3FFFF9FC3FFFF1FC0FFFC1
-FC03FC00001E267AA42B>I<FE0001FE0001FC7F0001FE0001F87F0003FE0003F87F0003
-FE0003F87F8003DF0003F83F8003DF0007F03F8007DF0007F03F80079F8007F01FC0079F
-8007E01FC00F9F800FE01FC00F8F800FE00FE00F8FC00FC00FE00F0FC01FC00FE01F0FC0
-1FC00FE01F07E01FC007F01F07E01F8007F01E07E03F8007F03E07E03F8003F03E03F03F
-0003F83E03F03F0003F83C03F07F0001F87C03F07E0001F87C01F87E0001FC7C01F87E00
-01FC7801F8FE0000FCF800F8FC0000FCF800F8FC0000FCF000FCFC00007CF000FCF80000
-7CF0007DF800007EF0007DF800007EE0007DF800003EE0003DF000003FE0003FF000003F
-C0003FF000001FC0003FE000001FC0001FE00036257FA439>119
-D<7F80000FE03F80001FC01FC0003FC01FE0007F800FF0007F0007F000FE0003F801FC00
-01FC03FC0001FE03F80000FF07F000007F0FE000003F9FC000001FDFC000000FFF800000
-0FFF00000007FE00000003FC00000001FC00000001FC00000003FE00000007FE0000000F
-FF0000000FDF8000001F9FC000003F0FE000007F07F00000FE03F00000FC03F80001FC01
-FC0003F800FE0007F0007F000FF0007F000FE0003F801FC0001FC03F80001FE07F80000F
-F0FF000007F8252580A426>I<FF00000FE07F00001FC07F00001FC03F80001FC03F8000
-3F803FC0003F801FC0007F001FC0007F000FE0007F000FE000FE000FF000FE0007F000FC
-0007F001FC0003F801FC0003F801F80003FC03F80001FC03F80001FC03F00000FE07F000
-00FE07E000007E07E000007E0FE000007F0FC000003F0FC000003F0FC000001F9F800000
-1F9F8000001F9F0000000F9F0000000F9F000000079E00000007DE00000007DE00000003
-FC00000003FC00000001F800000001F800000001F800000001F000000003F000000003E0
-00000003E000000007E000000007C00000000FC00000000FC00000001F800000201F8000
-00383F0000003FFE0000003FFE0000003FFC0000003FF80000000FE000000023367FA426
->I E
+FC03FC00001E267AA42B>I<FF00000FE07F00001FC07F00001FC07F80001FC03F80003F
+803F80003F803FC0003F801FC0007F001FC0007F000FE0007E000FE000FE000FE000FE00
+07F001FC0007F001FC0007F001FC0003F803F80003F803F80003F803F80001FC03F00001
+FC07F00000FC07E00000FE07E00000FE0FE000007E0FC000007F0FC000007F1FC000003F
+1F8000003F1F8000003F9F8000001FBF0000001FBF0000001FBF0000000FBE0000000FFE
+00000007FC00000007FC00000007FC000023257FA426>I<FE0001FE0001FC7F0001FE00
+01F87F0003FE0003F87F0003FE0003F87F8003DF0003F83F8003DF0007F03F8007DF0007
+F03F80079F8007F01FC0079F8007E01FC00F9F800FE01FC00F8F800FE00FE00F8FC00FC0
+0FE00F0FC01FC00FE01F0FC01FC00FE01F07E01FC007F01F07E01F8007F01E07E03F8007
+F03E07E03F8003F03E03F03F0003F83E03F03F0003F83C03F07F0001F87C03F07E0001F8
+7C01F87E0001FC7C01F87E0001FC7801F8FE0000FCF800F8FC0000FCF800F8FC0000FCF0
+00FCFC00007CF000FCF800007CF0007DF800007EF0007DF800007EE0007DF800003EE000
+3DF000003FE0003FF000003FC0003FF000001FC0003FE000001FC0001FE00036257FA439
+>I<7F80000FE03F80001FC01FC0003FC01FE0007F800FF0007F0007F000FE0003F801FC
+0001FC03FC0001FE03F80000FF07F000007F0FE000003F9FC000001FDFC000000FFF8000
+000FFF00000007FE00000003FC00000001FC00000001FC00000003FE00000007FE000000
+0FFF0000000FDF8000001F9FC000003F0FE000007F07F00000FE03F00000FC03F80001FC
+01FC0003F800FE0007F0007F000FF0007F000FE0003F801FC0001FC03F80001FE07F8000
+0FF0FF000007F8252580A426>I<FF00000FE07F00001FC07F00001FC03F80001FC03F80
+003F803FC0003F801FC0007F001FC0007F000FE0007F000FE000FE000FF000FE0007F000
+FC0007F001FC0003F801FC0003F801F80003FC03F80001FC03F80001FC03F00000FE07F0
+0000FE07E000007E07E000007E0FE000007F0FC000003F0FC000003F0FC000001F9F8000
+001F9F8000001F9F0000000F9F0000000F9F000000079E00000007DE00000007DE000000
+03FC00000003FC00000001F800000001F800000001F800000001F000000003F000000003
+E000000003E000000007E000000007C00000000FC00000000FC00000001F800000201F80
+0000383F0000003FFE0000003FFE0000003FFC0000003FF80000000FE000000023367FA4
+26>I E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fg ecrm0800 8 26
/Fg 26 122 df<0000FF00000007FFE000001F80F000003E003800007C007C0000F800FC
@@ -1831,463 +1896,470 @@ FF00000001E0000000F00000007C0000003E0000003F0000001F0000001F8000001F8038
001F807C001F80FE001F80FE001F80FE001F00FC003F0078003E0070007C003800F8001F
01F00007FFC00000FF000019277DA521>I E
%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fl ectt1000 10 69
-/Fl 69 123 df<3C001E007F007F00FF007F80FF007F80FF007F80FF007F80FF007F80FF
-007F807F007F007F007F007F007F007F007F007F007F007F007F007E003F007E003F007E
-003F007E003F007E003F007E003F003E003E003E003E003E003E003C001E001C001C0019
-1977B32C>34 D<0000380000FC0001FC0003FC0007F8000FF0001FC0003F80007F0000FE
-0001FC0003F80003F00007F00007E0000FE0000FC0001F80001F80003F80003F00003F00
-007F00007E00007E00007E0000FE0000FC0000FC0000FC0000FC0000FC0000FC0000FC00
-00FC0000FC0000FC0000FC0000FC0000FE00007E00007E00007E00007F00003F00003F00
-003F80001F80001F80000FC0000FE00007E00007F00003F00003F80001FC0000FE00007F
-00003F80001FC0000FF00007F80003FC0001FC0000FC000038164272B92C>40
-D<700000FC0000FE0000FF00007F80003FC0000FE00007F00003F80001FC0000FE00007F
-00003F00003F80001F80001FC0000FC00007E00007E00007F00003F00003F00003F80001
-F80001F80001F80001FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000
-FC0000FC0000FC0000FC0001FC0001F80001F80001F80003F80003F00003F00007F00007
-E00007E0000FC0001FC0001F80003F80003F00007F0000FE0001FC0003F80007F0000FE0
-003FC0007F8000FF0000FE0000FC0000700000164279B92C>I<000380000007C0000007
-C0000007C0000007C0000007C0000007C0002007C008F807C03EFE07C0FEFF07C1FEFFC7
-C7FEFFE7CFFE3FFFFFF80FFFFFE003FFFF8001FFFF00007FFC00007FFC0001FFFF0003FF
-FF800FFFFFE03FFFFFF8FFE7CFFEFFC7C7FEFF07C1FEFE07C0FEF807C03E2007C0080007
-C0000007C0000007C0000007C0000007C0000007C000000380001F247AAA2C>I<0F801F
-E03FF07FF87FF87FFC7FFC7FFC3FFC1FFC0FFC00FC00F800F801F803F007F01FE07FC0FF
-80FF00FC0070000E17718A2C>44 D<7FFFFFF0FFFFFFF8FFFFFFF8FFFFFFF87FFFFFF01D
-0579942C>I<1F003F807FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B0B708A2C>I<0000
-0007000000000F800000000F800000001F800000001F000000003F000000003E00000000
-7E000000007C000000007C00000000FC00000000F800000001F800000001F000000003F0
-00000003E000000007E000000007C00000000FC00000000F800000001F800000001F0000
-00003F000000003E000000003E000000007E000000007C00000000FC00000000F8000000
-01F800000001F000000003F000000003E000000007E000000007C00000000FC00000000F
-800000001F800000001F000000003F000000003E000000003E000000007E000000007C00
-000000FC00000000F800000001F800000001F000000003F000000003E000000007E00000
-0007C00000000FC00000000F800000001F800000001F000000001F000000003F00000000
-3E000000007E000000007C00000000FC00000000F800000000F800000000700000000021
-417BB92C>I<0003F80000000FFE0000003FFF8000007FFFC00000FFFFE00001FE0FF000
-03F803F80007F001FC0007E000FC000FC0007E000FC0007E001F80003F001F80003F003F
-00001F803F00001F803E00000F807E00000FC07E00000FC07E00000FC07C000007C0FC00
-0007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC0000
-07E0FC000007E0FC000007E0FC000007E0FC000007E0FE00000FE07E00000FC07E00000F
-C07E00000FC07E00000FC03F00001F803F00001F803F00001F801F80003F001F80003F00
-0FC0007E000FE000FE0007E000FC0007F001FC0003F803F80001FE0FF00000FFFFE00000
-7FFFC000003FFF8000000FFE00000003F8000023357CB32C>I<00070000000F8000000F
-8000001F8000001F8000003F8000007F800000FF800001FF800007FF80007FFF8000FFFF
-8000FFDF8000FF9F80007C1F8000001F8000001F8000001F8000001F8000001F8000001F
-8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F
-8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F
-8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80007FFF
-FFE0FFFFFFF0FFFFFFF0FFFFFFF07FFFFFE01C3477B32C>I<000FF80000007FFF800001
-FFFFE00007FFFFF0000FFFFFFC001FF80FFE003FE001FF003F80007F007F00003F807E00
-001F80FE00001FC0FE00000FC0FF00000FE0FF000007E0FF000007E0FF000007E07E0000
-07E03C000007E000000007E000000007E00000000FE00000000FC00000001FC00000001F
-800000003F800000003F000000007F00000000FE00000001FC00000003FC00000007F800
-00000FF00000001FE00000003FC0000000FF80000001FE00000003FC00000007F8000000
-0FF00000003FE00000007F80000000FF00000001FE00000003FC0003C007F80007E01FE0
-0007E03FC00007E07FFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFC023347C
-B32C>I<000FFC0000007FFF800001FFFFE00007FFFFF8000FFFFFFC001FF807FE001FC0
-00FE003F80007F003FC0003F003FC0003F803FC0001F803FC0001F801F80001F800F0000
-1F800000001F800000003F800000003F000000007F00000000FE00000001FE00000003FC
-0000001FF800001FFFF000003FFFE000003FFFE000003FFFF800001FFFFC00000007FE00
-000000FF000000007F000000003F800000001FC00000000FC00000000FC00000000FE000
-000007E000000007E03C000007E07E000007E0FF000007E0FF00000FE0FF00000FC0FF00
-000FC0FE00001FC07F00003F807F80007F003FC000FF001FF807FE000FFFFFFC0007FFFF
-F80003FFFFE000007FFF8000000FFC000023357CB32C>I<000007F00000000FF8000000
-1FF80000003FF80000003FF80000007EF80000007EF8000000FCF8000001F8F8000001F8
-F8000003F0F8000007E0F8000007E0F800000FC0F800001F80F800001F80F800003F00F8
-00007E00F800007E00F80000FC00F80001F800F80001F800F80003F000F80003E000F800
-07E000F8000FC000F8000FC000F8001F8000F8003F0000F8003F0000F8007E0000F800FC
-0000F800FFFFFFFFFCFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC000000F8000000
-00F800000000F800000000F800000000F800000000F800000000F800000000F800000000
-F800000000F80000007FFFF00000FFFFF80000FFFFF80000FFFFF800007FFFF027347EB3
-2C>I<0FFFFFFE001FFFFFFF001FFFFFFF001FFFFFFF001FFFFFFE001F800000001F8000
-00001F800000001F800000001F800000001F800000001F800000001F800000001F800000
-001F800000001F800000001F800000001F800000001F83FE00001F9FFF80001FFFFFE000
-1FFFFFF8001FFFFFFC001FFE03FE001FF000FF001FC0007F001F80003F801F00001F800F
-00001FC00000000FC00000000FC000000007E000000007E000000007E000000007E03C00
-0007E07E000007E0FF000007E0FF00000FE0FF00000FC0FF00000FC0FE00001FC07E0000
-3F807F00007F003F8000FF003FC001FE001FF80FFC000FFFFFF80007FFFFF00001FFFFC0
-00007FFF0000000FF8000023347CB22C>I<00003FC0000001FFF8000007FFFC00001FFF
-FE00003FFFFF00007FE07F0000FF003F8001FE007F8003F8007F8007F0007F8007E0007F
-800FE0003F001FC0001E001F800000003F800000003F000000003F000000007F00000000
-7E000000007E03FE00007E1FFF8000FC7FFFE000FDFFFFF000FFFFFFF800FFFE07FC00FF
-F001FE00FFC0007F00FF80003F80FF00001F80FF00001FC0FE00000FC0FE00000FE0FE00
-0007E0FE000007E0FE000007E07E000007E07E000007E07E000007E07E000007E03F0000
-07E03F00000FE03F80000FC01F80001FC01FC0001F800FC0003F800FE0007F0007F801FE
-0003FE07FC0001FFFFF80000FFFFF000007FFFE000001FFF80000007FC000023357CB32C
->I<7800000000FFFFFFFFC0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0FC00003F
-80FC00007F00FC0000FE00780000FC00000001FC00000003F800000007F000000007E000
-00000FE00000000FC00000001F800000003F800000003F000000007F000000007E000000
-00FE00000000FC00000001FC00000001F800000001F800000003F000000003F000000007
-F000000007E000000007E000000007E00000000FC00000000FC00000000FC00000000FC0
-0000001F800000001F800000001F800000001F800000001F800000003F800000003F0000
-00003F000000003F000000003F000000003F000000003F000000003F000000003F000000
-003F000000003F000000001E00000023357CB32C>I<0007FC0000003FFF000000FFFFC0
-0001FFFFE00003FFFFF00007FC07F8000FF001FC001FE000FE003F80007E003F80007F00
-7F00003F007E00001F80FE00001F80FC00001F80FC00000FC0FC00000FC0FC00000FC0FC
-00000FC0FC00000FE0FC00000FE0FC00000FE0FE00000FE07E00000FE07F00001FE03F00
-001FE03F80003FE01FC0007FE00FF001FFE007FC0FFFE003FFFFFFE001FFFFF7E000FFFF
-C7E0003FFF0FE0000FF80FC00000000FC00000000FC00000001FC00000001F800000003F
-800000003F000F00007F001F80007E003FC000FE003FC001FC003FC003F8003FC007F800
-3F801FF0001FE07FE0001FFFFFC0000FFFFF000007FFFE000001FFF80000007FC0000023
-357CB32C>57 D<0000FE00000001FF00000001FF00000001FF00000001FF00000003FF80
-000003FF80000003EF80000003EF80000007EF80000007EFC0000007EFC0000007C7C000
-0007C7C000000FC7E000000FC7E000000FC7E000000FC3E000001F83F000001F83F00000
-1F83F000001F83F000001F83F000003F01F800003F01F800003F01F800003F01F800007E
-00FC00007E00FC00007E00FC00007E00FC00007E00FC0000FC007E0000FFFFFE0000FFFF
-FE0000FFFFFE0001FFFFFF0001FFFFFF0001F8003F0001F8003F0001F8003F0003F0001F
-8003F0001F8003F0001F8003F0001F8007F0001FC007E0000FC07FFE00FFFC7FFF01FFFC
-FFFF01FFFE7FFF01FFFC7FFE00FFFC27347EB32C>65 D<7FFFFFE0007FFFFFF800FFFFFF
-FE007FFFFFFF007FFFFFFFC003F0003FC003F0000FE003F00007F003F00003F003F00003
-F003F00001F803F00001F803F00001F803F00001F803F00001F803F00001F803F00003F0
-03F00003F003F00007F003F0000FE003F0001FC003F000FF8003FFFFFF0003FFFFFE0003
-FFFFFC0003FFFFFF0003FFFFFFC003F0001FE003F00007F003F00003F803F00001F803F0
-0000FC03F00000FC03F00000FE03F000007E03F000007E03F000007E03F000007E03F000
-007E03F000007E03F00000FE03F00000FC03F00001FC03F00003F803F0000FF803F0003F
-F07FFFFFFFE07FFFFFFFC0FFFFFFFF807FFFFFFE007FFFFFF00027337FB22C>I<0000FF
-00700007FFE0F8000FFFF9F8003FFFFDF8007FFFFFF800FF81FFF801FE007FF803FC001F
-F807F0000FF807F00007F80FE00007F80FC00003F81F800003F81F800001F83F000001F8
-3F000001F87F000001F87E000000F07E000000007E00000000FE00000000FC00000000FC
-00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00
-000000FC00000000FC00000000FE000000007E000000007E000000007E000000007F0000
-00F03F000001F83F000001F81F800001F81F800001F80FC00003F80FE00003F007F00007
-F007F00007E003FC001FE001FE003FC000FF81FF80007FFFFF00003FFFFE00000FFFFC00
-0007FFF0000000FF800025357DB32C>I<7FFFFF0000FFFFFFC000FFFFFFF000FFFFFFF8
-007FFFFFFC0007E003FE0007E000FF0007E0007F8007E0003F8007E0001FC007E0000FE0
-07E0000FE007E00007E007E00007F007E00003F007E00003F807E00001F807E00001F807
-E00001F807E00001F807E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E0
-0000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E000
-01F807E00001F807E00001F807E00003F807E00003F007E00003F007E00007F007E00007
-E007E0000FE007E0001FC007E0003FC007E0007F8007E000FF0007E003FE007FFFFFFC00
-FFFFFFF800FFFFFFF000FFFFFFC0007FFFFF000026337EB22C>I<7FFFFFFFF0FFFFFFFF
-F8FFFFFFFFF8FFFFFFFFF87FFFFFFFF803F00001F803F00001F803F00001F803F00001F8
-03F00001F803F00001F803F00001F803F00000F003F000000003F000000003F000000003
-F000000003F001E00003F003F00003F003F00003F003F00003F003F00003FFFFF00003FF
-FFF00003FFFFF00003FFFFF00003FFFFF00003F003F00003F003F00003F003F00003F003
-F00003F001E00003F000000003F000000003F000000003F000000003F000000003F00000
-3C03F000007E03F000007E03F000007E03F000007E03F000007E03F000007E03F000007E
-03F000007E7FFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC27337EB22C>
-I<7FFFFFFFF8FFFFFFFFFCFFFFFFFFFCFFFFFFFFFC7FFFFFFFFC03F00000FC03F00000FC
-03F00000FC03F00000FC03F00000FC03F00000FC03F00000FC03F000007803F000000003
-F000000003F000000003F000000003F000000003F000F00003F001F80003F001F80003F0
-01F80003F001F80003FFFFF80003FFFFF80003FFFFF80003FFFFF80003FFFFF80003F001
-F80003F001F80003F001F80003F001F80003F000F00003F000000003F000000003F00000
-0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000
-03F000000003F000000003F00000007FFFE00000FFFFE00000FFFFF00000FFFFE000007F
-FFE0000026337EB22C>I<0001FC0380000FFF87C0001FFFEFC0007FFFFFC000FFFFFFC0
-01FF07FFC003FC01FFC003F800FFC007F0007FC00FE0003FC00FC0001FC01FC0001FC01F
-80001FC03F80000FC03F00000FC03F00000FC07E00000FC07E000007807E000000007E00
-000000FE00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000
-0000FC00000000FC00000000FC0003FFF8FC0007FFFCFC0007FFFCFE0007FFFC7E0003FF
-F87E00000FC07E00000FC07E00000FC03F00001FC03F00001FC03F80001FC01F80001FC0
-1FC0003FC00FC0003FC00FE0007FC007F0007FC003F800FFC003FC01FFC001FF07FFC000
-FFFFFFC0007FFFEFC0001FFFCFC0000FFF07800001FC000026357DB32C>I<7FFE00FFFC
-FFFF01FFFEFFFF01FFFEFFFF01FFFE7FFE00FFFC07E0000FC007E0000FC007E0000FC007
-E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0
-000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007FFFF
-FFC007FFFFFFC007FFFFFFC007FFFFFFC007FFFFFFC007E0000FC007E0000FC007E0000F
-C007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC0
-07E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007
-E0000FC007E0000FC07FFE00FFFCFFFF01FFFEFFFF01FFFEFFFF01FFFE7FFE00FFFC2733
-7EB22C>I<7FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF8000FC000000FC000000FC0
-00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0
-00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0
-00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0
-00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0
-00000FC000000FC0007FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF81E3379B22C>I<
-7FFC007FF8FFFE00FFFCFFFE00FFFCFFFE00FFFC7FFC007FF807C0001F8007C0003F8007
-C0007F0007C0007E0007C000FC0007C001F80007C003F80007C007F00007C007E00007C0
-0FC00007C01F800007C03F800007C07F000007C07E000007C0FC000007C1F8000007C3F8
-000007C7FC000007C7FC000007CFFE000007DFBE000007FFBF000007FF1F000007FE1F80
-0007FC0FC00007F80FC00007F807E00007F003E00007E003F00007C001F00007C001F800
-07C000FC0007C000FC0007C0007E0007C0003E0007C0003F0007C0001F0007C0001F8007
-C0000FC007C0000FC007C00007E07FFC001FFCFFFE003FFEFFFE003FFEFFFE003FFE7FFC
-001FFC27337EB22C>75 D<7FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFE00000
+%DVIPSBitmapFont: Fl ectt1000 10 71
+/Fl 71 123 df<007000001C01F800007E03F80000FE07F80001FE0FF00003FC1FC00007
+F03F80000FE03F00000FC07E00001F807C00001F00FC00003F00F800003E00FFC0003FF0
+FFE0003FF8FFF0003FFCFFF8003FFEFFF8003FFEFFF8003FFE7FF8001FFE7FF8001FFE3F
+F0000FFC1FE00007F807C00001F027177FB22C>16 D<1F000007C03FC0000FF07FE0001F
+F8FFF0003FFCFFF0003FFCFFF8003FFEFFF8003FFEFFF8003FFE7FF8001FFE3FF8000FFE
+1FF80007FE00F800003E01F800007E01F000007C03F00000FC07E00001F80FE00003F81F
+C00007F07F80001FE0FF00003FC0FE00003F80FC00003F007000001C0027177DB22C>I<
+3C001E007F007F00FF007F80FF007F80FF007F80FF007F80FF007F80FF007F807F007F00
+7F007F007F007F007F007F007F007F007F007F007E003F007E003F007E003F007E003F00
+7E003F007E003F003E003E003E003E003E003E003C001E001C001C00191977B32C>34
+D<0000380000FC0001FC0003FC0007F8000FF0001FC0003F80007F0000FE0001FC0003F8
+0003F00007F00007E0000FE0000FC0001F80001F80003F80003F00003F00007F00007E00
+007E00007E0000FE0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00
+00FC0000FC0000FC0000FE00007E00007E00007E00007F00003F00003F00003F80001F80
+001F80000FC0000FE00007E00007F00003F00003F80001FC0000FE00007F00003F80001F
+C0000FF00007F80003FC0001FC0000FC000038164272B92C>40 D<700000FC0000FE0000
+FF00007F80003FC0000FE00007F00003F80001FC0000FE00007F00003F00003F80001F80
+001FC0000FC00007E00007E00007F00003F00003F00003F80001F80001F80001F80001FC
+0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC
+0001FC0001F80001F80001F80003F80003F00003F00007F00007E00007E0000FC0001FC0
+001F80003F80003F00007F0000FE0001FC0003F80007F0000FE0003FC0007F8000FF0000
+FE0000FC0000700000164279B92C>I<000380000007C0000007C0000007C0000007C000
+0007C0000007C0002007C008F807C03EFE07C0FEFF07C1FEFFC7C7FEFFE7CFFE3FFFFFF8
+0FFFFFE003FFFF8001FFFF00007FFC00007FFC0001FFFF0003FFFF800FFFFFE03FFFFFF8
+FFE7CFFEFFC7C7FEFF07C1FEFE07C0FEF807C03E2007C0080007C0000007C0000007C000
+0007C0000007C0000007C000000380001F247AAA2C>I<0F801FE03FF07FF87FF87FFC7F
+FC7FFC3FFC1FFC0FFC00FC00F800F801F803F007F01FE07FC0FF80FF00FC0070000E1771
+8A2C>44 D<7FFFFFF0FFFFFFF8FFFFFFF8FFFFFFF87FFFFFF01D0579942C>I<1F003F80
+7FC0FFE0FFE0FFE0FFE0FFE07FC03F801F000B0B708A2C>I<00000007000000000F8000
+00000F800000001F800000001F000000003F000000003E000000007E000000007C000000
+007C00000000FC00000000F800000001F800000001F000000003F000000003E000000007
+E000000007C00000000FC00000000F800000001F800000001F000000003F000000003E00
+0000003E000000007E000000007C00000000FC00000000F800000001F800000001F00000
+0003F000000003E000000007E000000007C00000000FC00000000F800000001F80000000
+1F000000003F000000003E000000003E000000007E000000007C00000000FC00000000F8
+00000001F800000001F000000003F000000003E000000007E000000007C00000000FC000
+00000F800000001F800000001F000000001F000000003F000000003E000000007E000000
+007C00000000FC00000000F800000000F800000000700000000021417BB92C>I<0003F8
+0000000FFE0000003FFF8000007FFFC00000FFFFE00001FE0FF00003F803F80007F001FC
+0007E000FC000FC0007E000FC0007E001F80003F001F80003F003F00001F803F00001F80
+3E00000F807E00000FC07E00000FC07E00000FC07C000007C0FC000007E0FC000007E0FC
+000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC00
+0007E0FC000007E0FC000007E0FE00000FE07E00000FC07E00000FC07E00000FC07E0000
+0FC03F00001F803F00001F803F00001F801F80003F001F80003F000FC0007E000FE000FE
+0007E000FC0007F001FC0003F803F80001FE0FF00000FFFFE000007FFFC000003FFF8000
+000FFE00000003F8000023357CB32C>I<00070000000F8000000F8000001F8000001F80
+00003F8000007F800000FF800001FF800007FF80007FFF8000FFFF8000FFDF8000FF9F80
+007C1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80
+00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80
+00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80
+00001F8000001F8000001F8000001F8000001F8000001F80007FFFFFE0FFFFFFF0FFFFFF
+F0FFFFFFF07FFFFFE01C3477B32C>I<000FF80000007FFF800001FFFFE00007FFFFF000
+0FFFFFFC001FF80FFE003FE001FF003F80007F007F00003F807E00001F80FE00001FC0FE
+00000FC0FF00000FE0FF000007E0FF000007E0FF000007E07E000007E03C000007E00000
+0007E000000007E00000000FE00000000FC00000001FC00000001F800000003F80000000
+3F000000007F00000000FE00000001FC00000003FC00000007F80000000FF00000001FE0
+0000003FC0000000FF80000001FE00000003FC00000007F80000000FF00000003FE00000
+007F80000000FF00000001FE00000003FC0003C007F80007E01FE00007E03FC00007E07F
+FFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFC023347CB32C>I<000FFC0000
+007FFF800001FFFFE00007FFFFF8000FFFFFFC001FF807FE001FC000FE003F80007F003F
+C0003F003FC0003F803FC0001F803FC0001F801F80001F800F00001F800000001F800000
+003F800000003F000000007F00000000FE00000001FE00000003FC0000001FF800001FFF
+F000003FFFE000003FFFE000003FFFF800001FFFFC00000007FE00000000FF000000007F
+000000003F800000001FC00000000FC00000000FC00000000FE000000007E000000007E0
+3C000007E07E000007E0FF000007E0FF00000FE0FF00000FC0FF00000FC0FE00001FC07F
+00003F807F80007F003FC000FF001FF807FE000FFFFFFC0007FFFFF80003FFFFE000007F
+FF8000000FFC000023357CB32C>I<000007F00000000FF80000001FF80000003FF80000
+003FF80000007EF80000007EF8000000FCF8000001F8F8000001F8F8000003F0F8000007
+E0F8000007E0F800000FC0F800001F80F800001F80F800003F00F800007E00F800007E00
+F80000FC00F80001F800F80001F800F80003F000F80003E000F80007E000F8000FC000F8
+000FC000F8001F8000F8003F0000F8003F0000F8007E0000F800FC0000F800FFFFFFFFFC
+FFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC000000F800000000F800000000F80000
+0000F800000000F800000000F800000000F800000000F800000000F800000000F8000000
+7FFFF00000FFFFF80000FFFFF80000FFFFF800007FFFF027347EB32C>I<0FFFFFFE001F
+FFFFFF001FFFFFFF001FFFFFFF001FFFFFFE001F800000001F800000001F800000001F80
+0000001F800000001F800000001F800000001F800000001F800000001F800000001F8000
+00001F800000001F800000001F83FE00001F9FFF80001FFFFFE0001FFFFFF8001FFFFFFC
+001FFE03FE001FF000FF001FC0007F001F80003F801F00001F800F00001FC00000000FC0
+0000000FC000000007E000000007E000000007E000000007E03C000007E07E000007E0FF
+000007E0FF00000FE0FF00000FC0FF00000FC0FE00001FC07E00003F807F00007F003F80
+00FF003FC001FE001FF80FFC000FFFFFF80007FFFFF00001FFFFC000007FFF0000000FF8
+000023347CB22C>I<00003FC0000001FFF8000007FFFC00001FFFFE00003FFFFF00007F
+E07F0000FF003F8001FE007F8003F8007F8007F0007F8007E0007F800FE0003F001FC000
+1E001F800000003F800000003F000000003F000000007F000000007E000000007E03FE00
+007E1FFF8000FC7FFFE000FDFFFFF000FFFFFFF800FFFE07FC00FFF001FE00FFC0007F00
+FF80003F80FF00001F80FF00001FC0FE00000FC0FE00000FE0FE000007E0FE000007E0FE
+000007E07E000007E07E000007E07E000007E07E000007E03F000007E03F00000FE03F80
+000FC01F80001FC01FC0001F800FC0003F800FE0007F0007F801FE0003FE07FC0001FFFF
+F80000FFFFF000007FFFE000001FFF80000007FC000023357CB32C>I<7800000000FFFF
+FFFFC0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0FC00003F80FC00007F00FC0000
+FE00780000FC00000001FC00000003F800000007F000000007E00000000FE00000000FC0
+0000001F800000003F800000003F000000007F000000007E00000000FE00000000FC0000
+0001FC00000001F800000001F800000003F000000003F000000007F000000007E0000000
+07E000000007E00000000FC00000000FC00000000FC00000000FC00000001F800000001F
+800000001F800000001F800000001F800000003F800000003F000000003F000000003F00
+0000003F000000003F000000003F000000003F000000003F000000003F000000003F0000
+00001E00000023357CB32C>I<0007FC0000003FFF000000FFFFC00001FFFFE00003FFFF
+F00007FC07F8000FF001FC001FE000FE003F80007E003F80007F007F00003F007E00001F
+80FE00001F80FC00001F80FC00000FC0FC00000FC0FC00000FC0FC00000FC0FC00000FE0
+FC00000FE0FC00000FE0FE00000FE07E00000FE07F00001FE03F00001FE03F80003FE01F
+C0007FE00FF001FFE007FC0FFFE003FFFFFFE001FFFFF7E000FFFFC7E0003FFF0FE0000F
+F80FC00000000FC00000000FC00000001FC00000001F800000003F800000003F000F0000
+7F001F80007E003FC000FE003FC001FC003FC003F8003FC007F8003F801FF0001FE07FE0
+001FFFFFC0000FFFFF000007FFFE000001FFF80000007FC0000023357CB32C>57
+D<0000FE00000001FF00000001FF00000001FF00000001FF00000003FF80000003FF8000
+0003EF80000003EF80000007EF80000007EFC0000007EFC0000007C7C0000007C7C00000
+0FC7E000000FC7E000000FC7E000000FC3E000001F83F000001F83F000001F83F000001F
+83F000001F83F000003F01F800003F01F800003F01F800003F01F800007E00FC00007E00
+FC00007E00FC00007E00FC00007E00FC0000FC007E0000FFFFFE0000FFFFFE0000FFFFFE
+0001FFFFFF0001FFFFFF0001F8003F0001F8003F0001F8003F0003F0001F8003F0001F80
+03F0001F8003F0001F8007F0001FC007E0000FC07FFE00FFFC7FFF01FFFCFFFF01FFFE7F
+FF01FFFC7FFE00FFFC27347EB32C>65 D<7FFFFFE0007FFFFFF800FFFFFFFE007FFFFFFF
+007FFFFFFFC003F0003FC003F0000FE003F00007F003F00003F003F00003F003F00001F8
+03F00001F803F00001F803F00001F803F00001F803F00001F803F00003F003F00003F003
+F00007F003F0000FE003F0001FC003F000FF8003FFFFFF0003FFFFFE0003FFFFFC0003FF
+FFFF0003FFFFFFC003F0001FE003F00007F003F00003F803F00001F803F00000FC03F000
+00FC03F00000FE03F000007E03F000007E03F000007E03F000007E03F000007E03F00000
+7E03F00000FE03F00000FC03F00001FC03F00003F803F0000FF803F0003FF07FFFFFFFE0
+7FFFFFFFC0FFFFFFFF807FFFFFFE007FFFFFF00027337FB22C>I<0000FF00700007FFE0
+F8000FFFF9F8003FFFFDF8007FFFFFF800FF81FFF801FE007FF803FC001FF807F0000FF8
+07F00007F80FE00007F80FC00003F81F800003F81F800001F83F000001F83F000001F87F
+000001F87E000000F07E000000007E00000000FE00000000FC00000000FC00000000FC00
+000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0000
+0000FC00000000FE000000007E000000007E000000007E000000007F000000F03F000001
+F83F000001F81F800001F81F800001F80FC00003F80FE00003F007F00007F007F00007E0
+03FC001FE001FE003FC000FF81FF80007FFFFF00003FFFFE00000FFFFC000007FFF00000
+00FF800025357DB32C>I<7FFFFF0000FFFFFFC000FFFFFFF000FFFFFFF8007FFFFFFC00
+07E003FE0007E000FF0007E0007F8007E0003F8007E0001FC007E0000FE007E0000FE007
+E00007E007E00007F007E00003F007E00003F807E00001F807E00001F807E00001F807E0
+0001F807E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E000
+00FC07E00000FC07E00000FC07E00000FC07E00000FC07E00000FC07E00001F807E00001
+F807E00001F807E00003F807E00003F007E00003F007E00007F007E00007E007E0000FE0
+07E0001FC007E0003FC007E0007F8007E000FF0007E003FE007FFFFFFC00FFFFFFF800FF
+FFFFF000FFFFFFC0007FFFFF000026337EB22C>I<7FFFFFFFF0FFFFFFFFF8FFFFFFFFF8
+FFFFFFFFF87FFFFFFFF803F00001F803F00001F803F00001F803F00001F803F00001F803
+F00001F803F00001F803F00000F003F000000003F000000003F000000003F000000003F0
+01E00003F003F00003F003F00003F003F00003F003F00003FFFFF00003FFFFF00003FFFF
+F00003FFFFF00003FFFFF00003F003F00003F003F00003F003F00003F003F00003F001E0
+0003F000000003F000000003F000000003F000000003F000000003F000003C03F000007E
+03F000007E03F000007E03F000007E03F000007E03F000007E03F000007E03F000007E7F
+FFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFE7FFFFFFFFC27337EB22C>I<7FFFFFFFF8
+FFFFFFFFFCFFFFFFFFFCFFFFFFFFFC7FFFFFFFFC03F00000FC03F00000FC03F00000FC03
+F00000FC03F00000FC03F00000FC03F00000FC03F000007803F000000003F000000003F0
+00000003F000000003F000000003F000F00003F001F80003F001F80003F001F80003F001
+F80003FFFFF80003FFFFF80003FFFFF80003FFFFF80003FFFFF80003F001F80003F001F8
+0003F001F80003F001F80003F000F00003F000000003F000000003F000000003F0000000
03F000000003F000000003F000000003F000000003F000000003F000000003F000000003
+F000000003F00000007FFFE00000FFFFE00000FFFFF00000FFFFE000007FFFE000002633
+7EB22C>I<0001FC0380000FFF87C0001FFFEFC0007FFFFFC000FFFFFFC001FF07FFC003
+FC01FFC003F800FFC007F0007FC00FE0003FC00FC0001FC01FC0001FC01F80001FC03F80
+000FC03F00000FC03F00000FC07E00000FC07E000007807E000000007E00000000FE0000
+0000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000000
+00FC00000000FC0003FFF8FC0007FFFCFC0007FFFCFE0007FFFC7E0003FFF87E00000FC0
+7E00000FC07E00000FC03F00001FC03F00001FC03F80001FC01F80001FC01FC0003FC00F
+C0003FC00FE0007FC007F0007FC003F800FFC003FC01FFC001FF07FFC000FFFFFFC0007F
+FFEFC0001FFFCFC0000FFF07800001FC000026357DB32C>I<7FFE00FFFCFFFF01FFFEFF
+FF01FFFEFFFF01FFFE7FFE00FFFC07E0000FC007E0000FC007E0000FC007E0000FC007E0
+000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E000
+0FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007FFFFFFC007FFFFFF
+C007FFFFFFC007FFFFFFC007FFFFFFC007E0000FC007E0000FC007E0000FC007E0000FC0
+07E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007
+E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC007E0
+000FC07FFE00FFFCFFFF01FFFEFFFF01FFFEFFFF01FFFE7FFE00FFFC27337EB22C>I<7F
+FFFFF8FFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF8000FC000000FC000000FC000000FC00000
+0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000
+0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000
+0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000
+0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000
+0FC0007FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFC7FFFFFF81E3379B22C>I<7FFC007FF8FF
+FE00FFFCFFFE00FFFCFFFE00FFFC7FFC007FF807C0001F8007C0003F8007C0007F0007C0
+007E0007C000FC0007C001F80007C003F80007C007F00007C007E00007C00FC00007C01F
+800007C03F800007C07F000007C07E000007C0FC000007C1F8000007C3F8000007C7FC00
+0007C7FC000007CFFE000007DFBE000007FFBF000007FF1F000007FE1F800007FC0FC000
+07F80FC00007F807E00007F003E00007E003F00007C001F00007C001F80007C000FC0007
+C000FC0007C0007E0007C0003E0007C0003F0007C0001F0007C0001F8007C0000FC007C0
+000FC007C00007E07FFC001FFCFFFE003FFEFFFE003FFEFFFE003FFE7FFC001FFC27337E
+B22C>75 D<7FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFE0000003F000000003
F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0
00000003F000000003F000000003F000000003F000000003F000000003F000000003F000
000003F000000003F000000003F000000003F000000003F000000003F000000003F00000
-0003F000000003F000000003F000000003F00000F003F00001F803F00001F803F00001F8
-03F00001F803F00001F803F00001F803F00001F803F00001F87FFFFFFFF8FFFFFFFFF8FF
-FFFFFFF8FFFFFFFFF87FFFFFFFF025337DB22C>I<7FE0000FFCFFF0001FFEFFF0001FFE
-FFF8003FFE7FF8003FFC0FF8003FE00FBC007BE00FBC007BE00FBC007BE00FBC007BE00F
-9E00F3E00F9E00F3E00F9E00F3E00F9F01F3E00F9F01F3E00F8F01E3E00F8F01E3E00F8F
-83E3E00F8F83E3E00F8783C3E00F87C7C3E00F87C7C3E00F83C783E00F83C783E00F83EF
-83E00F83EF83E00F81EF03E00F81EF03E00F81FF03E00F80FE03E00F80FE03E00F80FE03
-E00F807C03E00F803803E00F800003E00F800003E00F800003E00F800003E00F800003E0
-0F800003E00F800003E00F800003E00F800003E00F800003E00F800003E00F800003E07F
-F0001FFCFFF8003FFEFFF8003FFEFFF8003FFE7FF0001FFC27337EB22C>I<7FF0007FFC
-FFF800FFFEFFF800FFFEFFFC00FFFE7FFC007FFC07FE0007C007DE0007C007DE0007C007
-DF0007C007CF0007C007CF0007C007CF8007C007C78007C007C7C007C007C7C007C007C3
-C007C007C3E007C007C3E007C007C1E007C007C1F007C007C1F007C007C0F007C007C0F8
-07C007C0F807C007C07C07C007C07C07C007C07C07C007C03E07C007C03E07C007C01E07
-C007C01F07C007C01F07C007C00F07C007C00F87C007C00F87C007C00787C007C007C7C0
-07C007C7C007C003C7C007C003E7C007C001E7C007C001E7C007C001F7C007C000F7C007
-C000F7C007C000FFC07FFC007FC0FFFE007FC0FFFE003FC0FFFE003FC07FFC001F802733
-7EB22C>I<007FFF000003FFFFE0000FFFFFF8001FFFFFFC003FFFFFFE003FE003FE003F
-8000FE007F00007F007F00007F007E00003F007E00003F007E00003F00FE00003F80FC00
-001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC0000
+0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000
+03F000000003F000000003F00000F003F00001F803F00001F803F00001F803F00001F803
+F00001F803F00001F803F00001F803F00001F87FFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFF
+FFFFF87FFFFFFFF025337DB22C>I<7FE0000FFCFFF0001FFEFFF0001FFEFFF8003FFE7F
+F8003FFC0FF8003FE00FBC007BE00FBC007BE00FBC007BE00FBC007BE00F9E00F3E00F9E
+00F3E00F9E00F3E00F9F01F3E00F9F01F3E00F8F01E3E00F8F01E3E00F8F83E3E00F8F83
+E3E00F8783C3E00F87C7C3E00F87C7C3E00F83C783E00F83C783E00F83EF83E00F83EF83
+E00F81EF03E00F81EF03E00F81FF03E00F80FE03E00F80FE03E00F80FE03E00F807C03E0
+0F803803E00F800003E00F800003E00F800003E00F800003E00F800003E00F800003E00F
+800003E00F800003E00F800003E00F800003E00F800003E00F800003E07FF0001FFCFFF8
+003FFEFFF8003FFEFFF8003FFE7FF0001FFC27337EB22C>I<7FF0007FFCFFF800FFFEFF
+F800FFFEFFFC00FFFE7FFC007FFC07FE0007C007DE0007C007DE0007C007DF0007C007CF
+0007C007CF0007C007CF8007C007C78007C007C7C007C007C7C007C007C3C007C007C3E0
+07C007C3E007C007C1E007C007C1F007C007C1F007C007C0F007C007C0F807C007C0F807
+C007C07C07C007C07C07C007C07C07C007C03E07C007C03E07C007C01E07C007C01F07C0
+07C01F07C007C00F07C007C00F87C007C00F87C007C00787C007C007C7C007C007C7C007
+C003C7C007C003E7C007C001E7C007C001E7C007C001F7C007C000F7C007C000F7C007C0
+00FFC07FFC007FC0FFFE007FC0FFFE003FC0FFFE003FC07FFC001F8027337EB22C>I<00
+7FFF000003FFFFE0000FFFFFF8001FFFFFFC003FFFFFFE003FE003FE003F8000FE007F00
+007F007F00007F007E00003F007E00003F007E00003F00FE00003F80FC00001F80FC0000
1F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F
80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80
-FC00001F80FC00001F80FC00001F80FC00001F80FE00003F80FE00003F807E00003F007E
-00003F007E00003F007F00007F007F00007F003F8000FE003FF007FE003FFFFFFE001FFF
-FFFC000FFFFFF80003FFFFE000007FFF000021357BB32C>I<7FFFFFC000FFFFFFF800FF
-FFFFFC00FFFFFFFF007FFFFFFF8003F000FFC003F0003FC003F0000FE003F00007F003F0
-0007F003F00003F003F00003F803F00001F803F00001F803F00001F803F00001F803F000
-01F803F00001F803F00003F803F00003F003F00007F003F00007F003F0000FE003F0003F
-C003F000FFC003FFFFFF8003FFFFFF0003FFFFFC0003FFFFF80003FFFFC00003F0000000
-03F000000003F000000003F000000003F000000003F000000003F000000003F000000003
+FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC00001F80FC
+00001F80FC00001F80FC00001F80FE00003F80FE00003F807E00003F007E00003F007E00
+003F007F00007F007F00007F003F8000FE003FF007FE003FFFFFFE001FFFFFFC000FFFFF
+F80003FFFFE000007FFF000021357BB32C>I<7FFFFFC000FFFFFFF800FFFFFFFC00FFFF
+FFFF007FFFFFFF8003F000FFC003F0003FC003F0000FE003F00007F003F00007F003F000
+03F003F00003F803F00001F803F00001F803F00001F803F00001F803F00001F803F00001
+F803F00003F803F00003F003F00007F003F00007F003F0000FE003F0003FC003F000FFC0
+03FFFFFF8003FFFFFF0003FFFFFC0003FFFFF80003FFFFC00003F000000003F000000003
F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0
-0000007FFF800000FFFFC00000FFFFC00000FFFFC000007FFF80000025337EB22C>I<7F
-FFFC000000FFFFFF800000FFFFFFE00000FFFFFFF800007FFFFFFC000007E007FE000007
-E001FE000007E0007F000007E0003F800007E0001F800007E0001F800007E0000FC00007
-E0000FC00007E0000FC00007E0000FC00007E0000FC00007E0000FC00007E0001F800007
-E0001F800007E0003F800007E0007F000007E001FE000007E007FE000007FFFFFC000007
-FFFFF8000007FFFFE0000007FFFFF0000007FFFFF8000007E007FC000007E001FE000007
-E000FE000007E0007F000007E0003F000007E0003F000007E0003F000007E0003F000007
-E0003F000007E0003F000007E0003F000007E0003F000007E0003F0F0007E0003F1F8007
-E0003F1F8007E0003F1F8007E0003F1F8007E0003F1F807FFE001FBF80FFFF001FFF00FF
-FF000FFF00FFFF000FFE007FFE0007FC0000000001F00029347EB22C>82
-D<001FF8070000FFFF0F8001FFFFCF8007FFFFFF800FFFFFFF801FF01FFF803FC003FF80
-3F8001FF807F0000FF807E00007F80FE00003F80FC00003F80FC00001F80FC00001F80FC
-00001F80FC00001F80FE00000F007E000000007F000000007F800000003FE00000001FFC
-0000001FFFC000000FFFFC000003FFFFC00001FFFFF000007FFFF8000007FFFC0000007F
-FE00000007FF00000000FF800000003F800000001FC00000001FC00000000FE00000000F
-E078000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FE00000FC0
-FE00000FC0FF00001F80FF80003F80FFE0007F00FFFE01FF00FFFFFFFE00FFFFFFFC00F9
-FFFFF000F83FFFC0007007FF000023357CB32C>I<7FFFFFFFFCFFFFFFFFFEFFFFFFFFFE
-FFFFFFFFFEFFFFFFFFFEFC007E007EFC007E007EFC007E007EFC007E007EFC007E007EFC
-007E007EFC007E007E78007E003C00007E000000007E000000007E000000007E00000000
-7E000000007E000000007E000000007E000000007E000000007E000000007E000000007E
-000000007E000000007E000000007E000000007E000000007E000000007E000000007E00
+00000003F000000003F000000003F000000003F000000003F000000003F00000007FFF80
+0000FFFFC00000FFFFC00000FFFFC000007FFF80000025337EB22C>I<7FFFFC000000FF
+FFFF800000FFFFFFE00000FFFFFFF800007FFFFFFC000007E007FE000007E001FE000007
+E0007F000007E0003F800007E0001F800007E0001F800007E0000FC00007E0000FC00007
+E0000FC00007E0000FC00007E0000FC00007E0000FC00007E0001F800007E0001F800007
+E0003F800007E0007F000007E001FE000007E007FE000007FFFFFC000007FFFFF8000007
+FFFFE0000007FFFFF0000007FFFFF8000007E007FC000007E001FE000007E000FE000007
+E0007F000007E0003F000007E0003F000007E0003F000007E0003F000007E0003F000007
+E0003F000007E0003F000007E0003F000007E0003F0F0007E0003F1F8007E0003F1F8007
+E0003F1F8007E0003F1F8007E0003F1F807FFE001FBF80FFFF001FFF00FFFF000FFF00FF
+FF000FFE007FFE0007FC0000000001F00029347EB22C>82 D<001FF8070000FFFF0F8001
+FFFFCF8007FFFFFF800FFFFFFF801FF01FFF803FC003FF803F8001FF807F0000FF807E00
+007F80FE00003F80FC00003F80FC00001F80FC00001F80FC00001F80FC00001F80FE0000
+0F007E000000007F000000007F800000003FE00000001FFC0000001FFFC000000FFFFC00
+0003FFFFC00001FFFFF000007FFFF8000007FFFC0000007FFE00000007FF00000000FF80
+0000003F800000001FC00000001FC00000000FE00000000FE078000007E0FC000007E0FC
+000007E0FC000007E0FC000007E0FC000007E0FE00000FC0FE00000FC0FF00001F80FF80
+003F80FFE0007F00FFFE01FF00FFFFFFFE00FFFFFFFC00F9FFFFF000F83FFFC0007007FF
+000023357CB32C>I<7FFFFFFFFCFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFFFFFFFFFEFC00
+7E007EFC007E007EFC007E007EFC007E007EFC007E007EFC007E007EFC007E007E78007E
+003C00007E000000007E000000007E000000007E000000007E000000007E000000007E00
0000007E000000007E000000007E000000007E000000007E000000007E000000007E0000
00007E000000007E000000007E000000007E000000007E000000007E000000007E000000
-3FFFFC00003FFFFC00007FFFFE00003FFFFC00003FFFFC0027337EB22C>I<7FFF803FFF
-C0FFFFC07FFFE0FFFFC07FFFE0FFFFC07FFFE07FFF803FFFC003F00001F80003F00001F8
-0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8
+007E000000007E000000007E000000007E000000007E000000007E000000007E00000000
+7E000000007E000000007E000000007E000000007E0000003FFFFC00003FFFFC00007FFF
+FE00003FFFFC00003FFFFC0027337EB22C>I<7FFF803FFFC0FFFFC07FFFE0FFFFC07FFF
+E0FFFFC07FFFE07FFF803FFFC003F00001F80003F00001F80003F00001F80003F00001F8
0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8
0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8
0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8
0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F00001F8
-0003F00001F80003F80003F80001F80003F00001F80003F00001FC0007F00000FC0007E0
-0000FE000FE000007F001FC000003F803F8000003FE0FF8000001FFFFF0000000FFFFE00
-000003FFF800000001FFF0000000003F8000002B3480B22C>I<7FFC007FFCFFFE00FFFE
-FFFE00FFFEFFFE00FFFE7FFC007FFC0FC00007E00FE0000FE007E0000FC007E0000FC007
-E0000FC007F0001FC003F0001F8003F0001F8003F0001F8003F8003F8001F8003F0001F8
-003F0001F8003F0001FC007F0000FC007E0000FC007E0000FC007E0000FC007E00007E00
-FC00007E00FC00007E00FC00007E00FC00003F01F800003F01F800003F01F800003F01F8
-00001F83F000001F83F000001F83F000001F83F000000F83E000000FC7E000000FC7E000
-000FC7E0000007C7C0000007C7C0000007EFC0000007EFC0000003EF80000003EF800000
-03FF80000003FF80000001FF00000001FF00000001FF00000001FF00000000FE00002734
-7EB22C>I<7FF00007FF00FFF8000FFF80FFF8000FFF80FFF8000FFF807FF00007FF001F
-0000007C001F0000007C001F0000007C001F0000007C000F800000F8000F800000F8000F
-800000F8000F800000F8000F800000F8000F800000F8000F800000F80007C00001F00007
-C00001F00007C00001F00007C00001F00007C03E01F00007C07F01F00007C07F01F00007
-C07F01F00003E0FF83E00003E0FF83E00003E0F783E00003E0F783E00003E1F7C3E00003
-E1F7C3E00003E1F7C3E00001E1E3C3C00001E1E3C3C00001F1E3C7C00001F3E3E7C00001
-F3E3E7C00001F3E3E7C00001F3C1E7C00001F3C1E7C00000F3C1E7800000F3C1E7800000
-F7C1F7800000F780F7800000F780F7800000F780F7800000FF80FF8000007F80FF000000
-7F007F0000007F007F0000007F007F0000007F007F0000003E003E000029347FB22C>I<
-3FFF03FFE07FFF07FFF07FFF87FFF07FFF07FFF03FFF03FFE001F800FE0001FC00FE0000
-FC01FC0000FE01FC00007E01F800007F03F800003F03F000003F87F000001F87E000001F
-CFE000000FCFC000000FFFC0000007FF80000007FF80000003FF00000003FF00000001FE
-00000001FE00000000FC00000000FC00000001FE00000001FE00000003FF00000003FF00
-000007FF80000007FFC000000FCFC000000FCFE000001FC7E000001F87F000003F83F000
-003F03F800007F01F800007E01FC0000FE00FC0000FC00FE0001FC007E0001F8007F0003
-F8003F0003F0003F8003F0001F807FFE00FFFC7FFF01FFFCFFFF01FFFE7FFF01FFFC7FFE
-00FFFC27337EB22C>I<7FFC007FFCFFFE00FFFEFFFE00FFFEFFFE00FFFE7FFC007FFC07
-F0000FC007F0001FC003F0001F8003F8003F8001F8003F8001FC007F0000FC007F0000FE
-007E00007E00FE00007F00FC00003F01FC00003F81F800001F81F800001F83F000000FC3
-F000000FC7F0000007E7E0000007E7E0000003E7C0000003EFC0000001FF80000001FF80
-000001FF00000000FF00000000FE000000007E000000007E000000007E000000007E0000
-00007E000000007E000000007E000000007E000000007E000000007E000000007E000000
-007E000000007E000000007E000000007E000000007E00000007FFE000000FFFF000000F
-FFF000000FFFF0000007FFE00027337EB22C>I<3FFFFFFFC07FFFFFFFE07FFFFFFFE07F
-FFFFFFE07FFFFFFFE07E00001FC07E00003F807E00003F807E00007F007E00007E007E00
-00FE007E0001FC003C0001F800000003F800000007F000000007F00000000FE00000001F
-C00000001FC00000003F800000007F000000007F00000000FE00000001FC00000001FC00
-000003F800000007F000000007F00000000FE00000001FC00000001FC00000003F800000
-007F000000007F00000000FE00000001FC00000001FC00000003F80003C003F00007E007
-F00007E00FE00007E00FC00007E01FC00007E03F800007E03F800007E07F000007E0FFFF
-FFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE07FFFFFFFC023337CB22C>I<7000000000F8
-00000000F800000000FC000000007C000000007E000000003E000000003F000000001F00
-0000001F000000001F800000000F800000000FC000000007C000000007E000000003E000
-000003F000000001F000000001F800000000F800000000FC000000007C000000007E0000
-00003E000000003E000000003F000000001F000000001F800000000F800000000FC00000
-0007C000000007E000000003E000000003F000000001F000000001F800000000F8000000
-00FC000000007C000000007E000000003E000000003E000000003F000000001F00000000
-1F800000000F800000000FC000000007C000000007E000000003E000000003F000000001
-F000000001F800000000F800000000FC000000007C000000007C000000007E000000003E
-000000003F000000001F000000001F800000000F800000000F80000000070021417BB92C
->92 D<7FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF80FFFFFFFF807FFFFFFF0021067B
-7D2C>95 D<01FFF0000007FFFE00001FFFFF80001FFFFFE0003FFFFFF0003FC01FF8003F
-C007F8003FC001FC001F8000FC00060000FE000000007E000000007E000000007E000000
-FFFE00001FFFFE0000FFFFFE0003FFFFFE000FFFFFFE001FFF807E003FF8007E007FC000
-7E007F00007E00FE00007E00FC00007E00FC00007E00FC00007E00FC00007E00FE00007E
-007F0000FE007F8003FE003FE01FFE001FFFFFFFFC0FFFFFFFFE07FFFFBFFE01FFFE1FFE
-003FF007FC27247CA32C>97 D<7FF0000000FFF8000000FFF8000000FFF80000007FF800
-000001F800000001F800000001F800000001F800000001F800000001F800000001F80000
-0001F800000001F800000001F800000001F81FE00001F8FFF80001FBFFFE0001FFFFFF00
-01FFFFFF8001FFF07FC001FF801FE001FF0007F001FE0003F801FC0003F801FC0001FC01
-F80000FC01F80000FC01F80000FE01F800007E01F800007E01F800007E01F800007E01F8
-00007E01F800007E01F800007E01F800007E01F80000FE01FC0000FC01FC0000FC01FC00
-01F801FE0003F801FF0007F001FF000FF001FF801FE001FFE07FC001FFFFFF8001FFFFFF
-0001FBFFFE0001F8FFF80000F03FC00027337FB22C>I<0003FFE000001FFFF800007FFF
-FE0001FFFFFE0003FFFFFF0007FE00FF000FF000FF001FE000FF001FC0007E003F800018
-003F000000007F000000007E000000007E00000000FC00000000FC00000000FC00000000
-FC00000000FC00000000FC00000000FC00000000FC000000007E000000007E000000007F
-000000003F00000F003F80001F801FC0001F801FE0003F800FF0007F0007FE03FF0003FF
-FFFE0001FFFFFC00007FFFF800001FFFE0000003FF000021247AA32C>I<00000FFE0000
-001FFF0000001FFF0000001FFF0000000FFF000000003F000000003F000000003F000000
-003F000000003F000000003F000000003F000000003F000000003F000000003F000007F8
-3F00003FFE3F0000FFFFBF0001FFFFFF0003FFFFFF0007FC0FFF000FF003FF001FE001FF
-001FC000FF003F80007F003F00007F007E00003F007E00003F00FE00003F00FC00003F00
-FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FE
-00003F007E00007F007E00007F007F0000FF003F8000FF003F8001FF001FC003FF000FF0
-07FF0007FC1FFF0003FFFFFFFC01FFFFBFFE00FFFF3FFE003FFC3FFE000FF01FFC27337D
-B22C>I<0003FE0000001FFFC000007FFFF00001FFFFF80003FFFFFC0007FE03FE000FF8
-00FF001FE0003F801FC0003F803F80001FC03F00000FC07F00000FC07E00000FE07E0000
-07E0FC000007E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0FC000000
-00FE000000007E000000007E000000007F000000003F000003C03F800007E01FC00007E0
-0FF0000FE007F8003FC007FF00FFC001FFFFFF8000FFFFFF00003FFFFC00000FFFF00000
-01FF800023247CA32C>I<00000FF80000003FFE000000FFFF000001FFFF800003FFFF80
-0007FC7F800007F07F80000FE03F00000FC03F00000FC00000000FC00000000FC0000000
-0FC00000000FC00000000FC000007FFFFFFE00FFFFFFFF00FFFFFFFF00FFFFFFFF007FFF
-FFFE00000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0
+0003F00001F80003F00001F80003F00001F80003F00001F80003F00001F80003F80003F8
+0001F80003F00001F80003F00001FC0007F00000FC0007E00000FE000FE000007F001FC0
+00003F803F8000003FE0FF8000001FFFFF0000000FFFFE00000003FFF800000001FFF000
+0000003F8000002B3480B22C>I<7FFC007FFCFFFE00FFFEFFFE00FFFEFFFE00FFFE7FFC
+007FFC0FC00007E00FE0000FE007E0000FC007E0000FC007E0000FC007F0001FC003F000
+1F8003F0001F8003F0001F8003F8003F8001F8003F0001F8003F0001F8003F0001FC007F
+0000FC007E0000FC007E0000FC007E0000FC007E00007E00FC00007E00FC00007E00FC00
+007E00FC00003F01F800003F01F800003F01F800003F01F800001F83F000001F83F00000
+1F83F000001F83F000000F83E000000FC7E000000FC7E000000FC7E0000007C7C0000007
+C7C0000007EFC0000007EFC0000003EF80000003EF80000003FF80000003FF80000001FF
+00000001FF00000001FF00000001FF00000000FE000027347EB22C>I<7FF00007FF00FF
+F8000FFF80FFF8000FFF80FFF8000FFF807FF00007FF001F0000007C001F0000007C001F
+0000007C001F0000007C000F800000F8000F800000F8000F800000F8000F800000F8000F
+800000F8000F800000F8000F800000F80007C00001F00007C00001F00007C00001F00007
+C00001F00007C03E01F00007C07F01F00007C07F01F00007C07F01F00003E0FF83E00003
+E0FF83E00003E0F783E00003E0F783E00003E1F7C3E00003E1F7C3E00003E1F7C3E00001
+E1E3C3C00001E1E3C3C00001F1E3C7C00001F3E3E7C00001F3E3E7C00001F3E3E7C00001
+F3C1E7C00001F3C1E7C00000F3C1E7800000F3C1E7800000F7C1F7800000F780F7800000
+F780F7800000F780F7800000FF80FF8000007F80FF0000007F007F0000007F007F000000
+7F007F0000007F007F0000003E003E000029347FB22C>I<3FFF03FFE07FFF07FFF07FFF
+87FFF07FFF07FFF03FFF03FFE001F800FE0001FC00FE0000FC01FC0000FE01FC00007E01
+F800007F03F800003F03F000003F87F000001F87E000001FCFE000000FCFC000000FFFC0
+000007FF80000007FF80000003FF00000003FF00000001FE00000001FE00000000FC0000
+0000FC00000001FE00000001FE00000003FF00000003FF00000007FF80000007FFC00000
+0FCFC000000FCFE000001FC7E000001F87F000003F83F000003F03F800007F01F800007E
+01FC0000FE00FC0000FC00FE0001FC007E0001F8007F0003F8003F0003F0003F8003F000
+1F807FFE00FFFC7FFF01FFFCFFFF01FFFE7FFF01FFFC7FFE00FFFC27337EB22C>I<7FFC
+007FFCFFFE00FFFEFFFE00FFFEFFFE00FFFE7FFC007FFC07F0000FC007F0001FC003F000
+1F8003F8003F8001F8003F8001FC007F0000FC007F0000FE007E00007E00FE00007F00FC
+00003F01FC00003F81F800001F81F800001F83F000000FC3F000000FC7F0000007E7E000
+0007E7E0000003E7C0000003EFC0000001FF80000001FF80000001FF00000000FF000000
+00FE000000007E000000007E000000007E000000007E000000007E000000007E00000000
+7E000000007E000000007E000000007E000000007E000000007E000000007E000000007E
+000000007E000000007E00000007FFE000000FFFF000000FFFF000000FFFF0000007FFE0
+0027337EB22C>I<3FFFFFFFC07FFFFFFFE07FFFFFFFE07FFFFFFFE07FFFFFFFE07E0000
+1FC07E00003F807E00003F807E00007F007E00007E007E0000FE007E0001FC003C0001F8
+00000003F800000007F000000007F00000000FE00000001FC00000001FC00000003F8000
+00007F000000007F00000000FE00000001FC00000001FC00000003F800000007F0000000
+07F00000000FE00000001FC00000001FC00000003F800000007F000000007F00000000FE
+00000001FC00000001FC00000003F80003C003F00007E007F00007E00FE00007E00FC000
+07E01FC00007E03F800007E03F800007E07F000007E0FFFFFFFFE0FFFFFFFFE0FFFFFFFF
+E0FFFFFFFFE07FFFFFFFC023337CB22C>I<7000000000F800000000F800000000FC0000
+00007C000000007E000000003E000000003F000000001F000000001F000000001F800000
+000F800000000FC000000007C000000007E000000003E000000003F000000001F0000000
+01F800000000F800000000FC000000007C000000007E000000003E000000003E00000000
+3F000000001F000000001F800000000F800000000FC000000007C000000007E000000003
+E000000003F000000001F000000001F800000000F800000000FC000000007C000000007E
+000000003E000000003E000000003F000000001F000000001F800000000F800000000FC0
+00000007C000000007E000000003E000000003F000000001F000000001F800000000F800
+000000FC000000007C000000007C000000007E000000003E000000003F000000001F0000
+00001F800000000F800000000F80000000070021417BB92C>92 D<7FFFFFFF00FFFFFFFF
+80FFFFFFFF80FFFFFFFF80FFFFFFFF807FFFFFFF0021067B7D2C>95
+D<01FFF0000007FFFE00001FFFFF80001FFFFFE0003FFFFFF0003FC01FF8003FC007F800
+3FC001FC001F8000FC00060000FE000000007E000000007E000000007E000000FFFE0000
+1FFFFE0000FFFFFE0003FFFFFE000FFFFFFE001FFF807E003FF8007E007FC0007E007F00
+007E00FE00007E00FC00007E00FC00007E00FC00007E00FC00007E00FE00007E007F0000
+FE007F8003FE003FE01FFE001FFFFFFFFC0FFFFFFFFE07FFFFBFFE01FFFE1FFE003FF007
+FC27247CA32C>97 D<7FF0000000FFF8000000FFF8000000FFF80000007FF800000001F8
+00000001F800000001F800000001F800000001F800000001F800000001F800000001F800
+000001F800000001F800000001F81FE00001F8FFF80001FBFFFE0001FFFFFF0001FFFFFF
+8001FFF07FC001FF801FE001FF0007F001FE0003F801FC0003F801FC0001FC01F80000FC
+01F80000FC01F80000FE01F800007E01F800007E01F800007E01F800007E01F800007E01
+F800007E01F800007E01F800007E01F80000FE01FC0000FC01FC0000FC01FC0001F801FE
+0003F801FF0007F001FF000FF001FF801FE001FFE07FC001FFFFFF8001FFFFFF0001FBFF
+FE0001F8FFF80000F03FC00027337FB22C>I<0003FFE000001FFFF800007FFFFE0001FF
+FFFE0003FFFFFF0007FE00FF000FF000FF001FE000FF001FC0007E003F800018003F0000
+00007F000000007E000000007E00000000FC00000000FC00000000FC00000000FC000000
+00FC00000000FC00000000FC00000000FC000000007E000000007E000000007F00000000
+3F00000F003F80001F801FC0001F801FE0003F800FF0007F0007FE03FF0003FFFFFE0001
+FFFFFC00007FFFF800001FFFE0000003FF000021247AA32C>I<00000FFE0000001FFF00
+00001FFF0000001FFF0000000FFF000000003F000000003F000000003F000000003F0000
+00003F000000003F000000003F000000003F000000003F000000003F000007F83F00003F
+FE3F0000FFFFBF0001FFFFFF0003FFFFFF0007FC0FFF000FF003FF001FE001FF001FC000
+FF003F80007F003F00007F007E00003F007E00003F00FE00003F00FC00003F00FC00003F
+00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FC00003F00FE00003F00
+7E00007F007E00007F007F0000FF003F8000FF003F8001FF001FC003FF000FF007FF0007
+FC1FFF0003FFFFFFFC01FFFFBFFE00FFFF3FFE003FFC3FFE000FF01FFC27337DB22C>I<
+0003FE0000001FFFC000007FFFF00001FFFFF80003FFFFFC0007FE03FE000FF800FF001F
+E0003F801FC0003F803F80001FC03F00000FC07F00000FC07E00000FE07E000007E0FC00
+0007E0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0FFFFFFFFC0FC00000000FE0000
+00007E000000007E000000007F000000003F000003C03F800007E01FC00007E00FF0000F
+E007F8003FC007FF00FFC001FFFFFF8000FFFFFF00003FFFFC00000FFFF0000001FF8000
+23247CA32C>I<00000FF80000003FFE000000FFFF000001FFFF800003FFFF800007FC7F
+800007F07F80000FE03F00000FC03F00000FC00000000FC00000000FC00000000FC00000
+000FC00000000FC000007FFFFFFE00FFFFFFFF00FFFFFFFF00FFFFFFFF007FFFFFFE0000
+0FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000F
+C00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC0
0000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC000
-00000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000000FC00000
-000FC00000000FC00000000FC00000000FC00000000FC000003FFFFFF0007FFFFFF8007F
-FFFFF8007FFFFFF8003FFFFFF00021337DB22C>I<00000003F80007F80FFC001FFE3FFE
-007FFFFFFF01FFFFFFFF03FFFFFE7F03FC0FF87F07F003F83E0FE001FC1C0FC000FC001F
-C000FE001F80007E001F80007E001F80007E001F80007E001F80007E001F80007E001FC0
-00FE000FC000FC000FE001FC0007F003F80003FC0FF00007FFFFF00007FFFFE0000FFFFF
-80000F9FFE00000F87F800000F800000000F800000000F800000000FC000000007E00000
-0007FFFFF00003FFFFFE0007FFFFFF800FFFFFFFE01FFFFFFFF03FC0001FF87F000003FC
-7E000000FC7C0000007CFC0000007EF80000003EF80000003EF80000003EF80000003EFC
-0000007E7E000000FC7F800003FC3FE0000FF81FFC007FF00FFFFFFFE003FFFFFF8001FF
-FFFF00003FFFF8000007FFC00028387EA42C>I<7FF000000000FFF800000000FFF80000
-0000FFF8000000007FF80000000001F80000000001F80000000001F80000000001F80000
-000001F80000000001F80000000001F80000000001F80000000001F80000000001F80000
-000001F81FE0000001F87FFC000001F9FFFE000001FBFFFF000001FFFFFF000001FFF03F
-800001FFC01F800001FF801FC00001FF000FC00001FE000FC00001FC000FC00001FC000F
-C00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000F
-C00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000F
-C00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000F
-C00001F8000FC0007FFFE0FFFF00FFFFF1FFFF80FFFFF1FFFF80FFFFF1FFFF807FFFE0FF
-FF0029337FB22C>I<00070000001FC000001FC000003FE000003FE000003FE000001FC0
-00001FC00000070000000000000000000000000000000000000000000000000000000000
-007FFFC0007FFFE000FFFFE0007FFFE0007FFFE0000007E0000007E0000007E0000007E0
+00000FC00000000FC00000000FC00000000FC000003FFFFFF0007FFFFFF8007FFFFFF800
+7FFFFFF8003FFFFFF00021337DB22C>I<00000003F80007F80FFC001FFE3FFE007FFFFF
+FF01FFFFFFFF03FFFFFE7F03FC0FF87F07F003F83E0FE001FC1C0FC000FC001FC000FE00
+1F80007E001F80007E001F80007E001F80007E001F80007E001F80007E001FC000FE000F
+C000FC000FE001FC0007F003F80003FC0FF00007FFFFF00007FFFFE0000FFFFF80000F9F
+FE00000F87F800000F800000000F800000000F800000000FC000000007E000000007FFFF
+F00003FFFFFE0007FFFFFF800FFFFFFFE01FFFFFFFF03FC0001FF87F000003FC7E000000
+FC7C0000007CFC0000007EF80000003EF80000003EF80000003EF80000003EFC0000007E
+7E000000FC7F800003FC3FE0000FF81FFC007FF00FFFFFFFE003FFFFFF8001FFFFFF0000
+3FFFF8000007FFC00028387EA42C>I<7FF000000000FFF800000000FFF800000000FFF8
+000000007FF80000000001F80000000001F80000000001F80000000001F80000000001F8
+0000000001F80000000001F80000000001F80000000001F80000000001F80000000001F8
+1FE0000001F87FFC000001F9FFFE000001FBFFFF000001FFFFFF000001FFF03F800001FF
+C01F800001FF801FC00001FF000FC00001FE000FC00001FC000FC00001FC000FC00001F8
+000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8
+000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8
+000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8
+000FC0007FFFE0FFFF00FFFFF1FFFF80FFFFF1FFFF80FFFFF1FFFF807FFFE0FFFF002933
+7FB22C>I<00070000001FC000001FC000003FE000003FE000003FE000001FC000001FC0
+0000070000000000000000000000000000000000000000000000000000000000007FFFC0
+007FFFE000FFFFE0007FFFE0007FFFE0000007E0000007E0000007E0000007E0000007E0
000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0
000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0
-000007E0000007E0000007E0000007E0007FFFFFFCFFFFFFFEFFFFFFFEFFFFFFFE7FFFFF
-FC1F3479B32C>I<00000E0000003F8000003F8000007FC000007FC000007FC000003F80
-00003F8000000E0000000000000000000000000000000000000000000000000000000000
-01FFFF8003FFFFC003FFFFC003FFFFC001FFFFC000000FC000000FC000000FC000000FC0
+000007E0000007E0000007E0007FFFFFFCFFFFFFFEFFFFFFFEFFFFFFFE7FFFFFFC1F3479
+B32C>I<00000E0000003F8000003F8000007FC000007FC000007FC000003F8000003F80
+00000E000000000000000000000000000000000000000000000000000000000001FFFF80
+03FFFFC003FFFFC003FFFFC001FFFFC000000FC000000FC000000FC000000FC000000FC0
00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0
00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0
00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0
-00000FC000000FC000000FC000000FC000000FC000000FC000000FC000001FC03C001F80
-7E003F80FF003F00FF007F00FF01FE00FFFFFC007FFFF8007FFFF0001FFFE00007FF0000
-1A467CB32C>I<7FE0000000FFF0000000FFF0000000FFF00000007FF000000001F00000
-0001F000000001F000000001F000000001F000000001F000000001F000000001F0000000
-01F000000001F000000001F01FFFF001F03FFFF801F03FFFF801F03FFFF801F01FFFF001
-F000FE0001F001FC0001F003F80001F007F00001F00FE00001F01FC00001F03F800001F0
-7F000001F0FE000001F1FC000001F3FC000001F7FE000001FFFF000001FFFF000001FF9F
-800001FF0FC00001FE0FE00001FC07E00001F803F00001F001F80001F001FC0001F000FC
-0001F0007E0001F0003F0001F0003F8001F0001F807FFFC0FFFCFFFFE1FFFEFFFFE1FFFE
-FFFFE1FFFE7FFFC0FFFC27337EB22C>I<7FFFE00000FFFFF00000FFFFF00000FFFFF000
-007FFFF000000003F000000003F000000003F000000003F000000003F000000003F00000
+00000FC000000FC000000FC000000FC000000FC000000FC000001FC03C001F807E003F80
+FF003F00FF007F00FF01FE00FFFFFC007FFFF8007FFFF0001FFFE00007FF00001A467CB3
+2C>I<7FE0000000FFF0000000FFF0000000FFF00000007FF000000001F000000001F000
+000001F000000001F000000001F000000001F000000001F000000001F000000001F00000
+0001F000000001F01FFFF001F03FFFF801F03FFFF801F03FFFF801F01FFFF001F000FE00
+01F001FC0001F003F80001F007F00001F00FE00001F01FC00001F03F800001F07F000001
+F0FE000001F1FC000001F3FC000001F7FE000001FFFF000001FFFF000001FF9F800001FF
+0FC00001FE0FE00001FC07E00001F803F00001F001F80001F001FC0001F000FC0001F000
+7E0001F0003F0001F0003F8001F0001F807FFFC0FFFCFFFFE1FFFEFFFFE1FFFEFFFFE1FF
+FE7FFFC0FFFC27337EB22C>I<7FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFF0
+00000003F000000003F000000003F000000003F000000003F000000003F000000003F000
+000003F000000003F000000003F000000003F000000003F000000003F000000003F00000
0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000
03F000000003F000000003F000000003F000000003F000000003F000000003F000000003
F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0
-00000003F000000003F000000003F000000003F000000003F000000003F000000003F000
-000003F000000003F000000003F000000003F000000003F000000003F000007FFFFFFF80
-FFFFFFFFC0FFFFFFFFC0FFFFFFFFC07FFFFFFF8022337BB22C>I<7F83F007E0007FCFFC
-1FF800FFDFFE3FFC007FFFFEFFFC007FFFFFFFFE0007FE1FFC3E0007FC1FF83F0007F80F
-F01F0007F00FE01F0007E00FC01F0007E00FC01F0007E00FC01F0007C00F801F0007C00F
-801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F
-801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F
-801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F007FFC3F
-F87FF07FFC7FF8FFF0FFFE7FFCFFF87FFC7FF8FFF07FFC3FF87FF02D2481A32C>I<7FF0
-1FE00000FFF87FFC0000FFF9FFFE0000FFFBFFFF00007FFFFFFF000001FFF03F800001FF
-C01F800001FF801FC00001FF000FC00001FE000FC00001FC000FC00001FC000FC00001F8
-000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8
-000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8
-000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8
-000FC0007FFFE0FFFF00FFFFF1FFFF80FFFFF1FFFF80FFFFF1FFFF807FFFE0FFFF002924
-7FA32C>I<0007FC0000001FFF0000007FFFC00001FFFFF00003FFFFF80007FC07FC000F
-F001FE001FE000FF001F80003F003F80003F803F00001F807E00000FC07E00000FC07E00
-000FC0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC0000
-07E0FE00000FE07E00000FC07E00000FC07F00001FC03F00001F803F80003F801FC0007F
-001FE000FF000FF001FE0007FC07FC0003FFFFF80001FFFFF000007FFFC000001FFF0000
-0007FC000023247CA32C>I<7FF01FE000FFF8FFF800FFFBFFFE00FFFFFFFF007FFFFFFF
-8001FFF07FC001FF801FE001FF0007F001FE0003F801FC0003F801FC0001FC01F80000FC
-01F80000FC01F80000FE01F800007E01F800007E01F800007E01F800007E01F800007E01
-F800007E01F800007E01F800007E01F80000FE01FC0000FC01FC0000FC01FC0001F801FE
-0003F801FF0007F001FF000FF001FF801FE001FFE07FC001FFFFFF8001FFFFFF0001FBFF
-FE0001F8FFF80001F83FC00001F800000001F800000001F800000001F800000001F80000
-0001F800000001F800000001F800000001F800000001F800000001F800000001F8000000
-01F80000007FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFE0000027367FA32C>
-I<0003FC078000001FFF0FC000007FFFCFC00001FFFFEFC00003FFFFFFC00007FE07FFC0
-000FF001FFC0001FE000FFC0001FC0007FC0003F80003FC0003F00003FC0007F00001FC0
-007E00001FC0007E00000FC000FC00000FC000FC00000FC000FC00000FC000FC00000FC0
-00FC00000FC000FC00000FC000FC00000FC000FC00000FC000FE00000FC0007E00001FC0
-007E00001FC0003F00003FC0003F80003FC0001FC0007FC0001FE000FFC0000FF003FFC0
-0007FC0FFFC00003FFFFFFC00001FFFFEFC000007FFF8FC000003FFF0FC0000007F80FC0
-000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0
-000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC0
-000000000FC000000003FFFF00000007FFFF80000007FFFF80000007FFFF80000003FFFF
-0029367DA32C>I<7FFE003FC0FFFF01FFF0FFFF07FFF8FFFF1FFFFC7FFF3FFFFC003F7F
-E1FC003FFF01FC003FFC00F8003FF80070003FF00000003FE00000003FE00000003FC000
-00003F800000003F800000003F800000003F000000003F000000003F000000003F000000
-003F000000003F000000003F000000003F000000003F000000003F000000003F00000000
-3F000000003F000000003F000000003F0000007FFFFFE000FFFFFFF000FFFFFFF000FFFF
-FFF0007FFFFFE00026247EA32C>I<007FF87003FFFFF80FFFFFF81FFFFFF83FFFFFF87F
-C00FF87E0003F8FC0001F8F80001F8F80001F8F80001F8FC0000F07F0000007FF000003F
-FFC0001FFFFE000FFFFF8003FFFFE0007FFFF80001FFFC000007FC000000FE7800007FFC
-00003FFC00001FFE00001FFE00001FFF00003FFF80003EFFC000FEFFF007FCFFFFFFFCFF
-FFFFF8FFFFFFE0F8FFFF80701FFC0020247AA32C>I<001E000000003F000000003F0000
+00000003F000000003F000000003F000000003F000000003F000007FFFFFFF80FFFFFFFF
+C0FFFFFFFFC0FFFFFFFFC07FFFFFFF8022337BB22C>I<7F83F007E0007FCFFC1FF800FF
+DFFE3FFC007FFFFEFFFC007FFFFFFFFE0007FE1FFC3E0007FC1FF83F0007F80FF01F0007
+F00FE01F0007E00FC01F0007E00FC01F0007E00FC01F0007C00F801F0007C00F801F0007
+C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007
+C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F0007
+C00F801F0007C00F801F0007C00F801F0007C00F801F0007C00F801F007FFC3FF87FF07F
+FC7FF8FFF0FFFE7FFCFFF87FFC7FF8FFF07FFC3FF87FF02D2481A32C>I<7FF01FE00000
+FFF87FFC0000FFF9FFFE0000FFFBFFFF00007FFFFFFF000001FFF03F800001FFC01F8000
+01FF801FC00001FF000FC00001FE000FC00001FC000FC00001FC000FC00001F8000FC000
+01F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC000
+01F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC000
+01F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC000
+7FFFE0FFFF00FFFFF1FFFF80FFFFF1FFFF80FFFFF1FFFF807FFFE0FFFF0029247FA32C>
+I<0007FC0000001FFF0000007FFFC00001FFFFF00003FFFFF80007FC07FC000FF001FE00
+1FE000FF001F80003F003F80003F803F00001F807E00000FC07E00000FC07E00000FC0FC
+000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FC000007E0FE00
+000FE07E00000FC07E00000FC07F00001FC03F00001F803F80003F801FC0007F001FE000
+FF000FF001FE0007FC07FC0003FFFFF80001FFFFF000007FFFC000001FFF00000007FC00
+0023247CA32C>I<7FF01FE000FFF8FFF800FFFBFFFE00FFFFFFFF007FFFFFFF8001FFF0
+7FC001FF801FE001FF0007F001FE0003F801FC0003F801FC0001FC01F80000FC01F80000
+FC01F80000FE01F800007E01F800007E01F800007E01F800007E01F800007E01F800007E
+01F800007E01F800007E01F80000FE01FC0000FC01FC0000FC01FC0001F801FE0003F801
+FF0007F001FF000FF001FF801FE001FFE07FC001FFFFFF8001FFFFFF0001FBFFFE0001F8
+FFF80001F83FC00001F800000001F800000001F800000001F800000001F800000001F800
+000001F800000001F800000001F800000001F800000001F800000001F800000001F80000
+007FFFE00000FFFFF00000FFFFF00000FFFFF000007FFFE0000027367FA32C>I<0003FC
+078000001FFF0FC000007FFFCFC00001FFFFEFC00003FFFFFFC00007FE07FFC0000FF001
+FFC0001FE000FFC0001FC0007FC0003F80003FC0003F00003FC0007F00001FC0007E0000
+1FC0007E00000FC000FC00000FC000FC00000FC000FC00000FC000FC00000FC000FC0000
+0FC000FC00000FC000FC00000FC000FC00000FC000FE00000FC0007E00001FC0007E0000
+1FC0003F00003FC0003F80003FC0001FC0007FC0001FE000FFC0000FF003FFC00007FC0F
+FFC00003FFFFFFC00001FFFFEFC000007FFF8FC000003FFF0FC0000007F80FC000000000
+0FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000000000
+0FC0000000000FC0000000000FC0000000000FC0000000000FC0000000000FC000000000
+0FC000000003FFFF00000007FFFF80000007FFFF80000007FFFF80000003FFFF0029367D
+A32C>I<7FFE003FC0FFFF01FFF0FFFF07FFF8FFFF1FFFFC7FFF3FFFFC003F7FE1FC003F
+FF01FC003FFC00F8003FF80070003FF00000003FE00000003FE00000003FC00000003F80
+0000003F800000003F800000003F000000003F000000003F000000003F000000003F0000
00003F000000003F000000003F000000003F000000003F000000003F000000003F000000
-7FFFFFFF00FFFFFFFF80FFFFFFFF80FFFFFFFF807FFFFFFF00003F000000003F00000000
+003F000000003F000000003F0000007FFFFFE000FFFFFFF000FFFFFFF000FFFFFFF0007F
+FFFFE00026247EA32C>I<007FF87003FFFFF80FFFFFF81FFFFFF83FFFFFF87FC00FF87E
+0003F8FC0001F8F80001F8F80001F8F80001F8FC0000F07F0000007FF000003FFFC0001F
+FFFE000FFFFF8003FFFFE0007FFFF80001FFFC000007FC000000FE7800007FFC00003FFC
+00001FFE00001FFE00001FFF00003FFF80003EFFC000FEFFF007FCFFFFFFFCFFFFFFF8FF
+FFFFE0F8FFFF80701FFC0020247AA32C>I<001E000000003F000000003F000000003F00
+0000003F000000003F000000003F000000003F000000003F000000003F0000007FFFFFFF
+00FFFFFFFF80FFFFFFFF80FFFFFFFF807FFFFFFF00003F000000003F000000003F000000
+003F000000003F000000003F000000003F000000003F000000003F000000003F00000000
3F000000003F000000003F000000003F000000003F000000003F000000003F000000003F
-000000003F000000003F000000003F000000003F000000003F000000003F000000003F00
-0000003F0003C0003F0007E0003F0007E0003F0007E0003F0007E0003F0007E0003F800F
-E0001F801FC0001FE07FC0000FFFFF80000FFFFF000003FFFE000001FFF80000003FE000
-232E7EAD2C>I<7FF003FF8000FFF807FFC000FFF807FFC000FFF807FFC0007FF803FFC0
-0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0
-0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0
-0001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC0
-0001F8000FC00001F8000FC00001F8000FC00001F8001FC00001F8001FC00001F8003FC0
-0001FC007FC00000FE03FFC00000FFFFFFFF00007FFFFFFF80003FFFFFFF80001FFFCFFF
-800003FE07FF0029247FA32C>I<7FFF01FFFCFFFF01FFFEFFFF83FFFEFFFF01FFFE7FFF
-01FFFC03E0000F8003E0000F8003F0001F8001F0001F0001F0001F0001F8003F0000F800
-3E0000F8003E0000FC007E00007C007C00007C007C00007E00FC00003E00F800003E00F8
-00003F01F800001F01F000001F01F000001F83F000000F83E000000F83E000000FC7E000
-0007C7C0000007C7C0000007EFC0000003EF80000003EF80000003FF80000001FF000000
-01FF00000000FE000000007C000027247EA32C>I<7FFF007FFF007FFF80FFFF00FFFF80
-FFFF807FFF80FFFF007FFF007FFF0007C00001F00007C00001F00007C00001F00007C000
-01F00007C00001F00007C00001F00003E00003E00003E00003E00003E00003E00003E03E
-03E00003E07F03E00003E07F03E00001F07F07C00001F0FF87C00001F0FF87C00001F0F7
-87C00001F0F787C00001F1F7C7C00000F1F7C7800000F9E3CF800000F9E3CF800000FBE3
-EF800000FBE3EF800000FBE3EF8000007BC1EF0000007FC1FF0000007FC1FF0000007F80
-FF0000007F80FF0000003F80FE0000001F007C000029247FA32C>I<3FFF03FFF07FFF87
-FFF87FFF87FFF87FFF87FFF83FFF03FFF000FC007E0000FC00FC00007E01F800003F01F0
-00001F83F000001F87E000000FCFC0000007EF80000003FF80000001FF00000001FE0000
-0000FC000000007C00000000FE00000001FE00000001FF00000003EF80000007CFC00000
-0FC7C000000F83E000001F01F000003F01F800007E00F800007C007C0000F8007E0001F8
-003F007FFF01FFFC7FFF83FFFCFFFF83FFFE7FFF83FFFC7FFF01FFFC27247EA32C>I<7F
-FF01FFFCFFFF81FFFEFFFF83FFFEFFFF81FFFE7FFF01FFFC03E0000F8001F0000F8001F0
-001F8001F8001F0000F8001F0000F8003F0000FC003E00007C003E00007E007E00003E00
-7C00003E007C00003F00FC00001F00F800001F00F800000F81F800000F81F000000F81F0
-000007C1F0000007C3E0000007C3E0000003E3E0000003E7C0000001E7C0000001F7C000
-0001F780000000FF80000000FF80000000FF000000007F000000007F000000003E000000
-003E000000007E000000007C000000007C00000000FC00000000F800000000F800000C01
-F800003F01F000007F83F000007F87E000007E0FE000007E1FC000007FFF8000003FFF00
-00001FFE0000000FFC00000007E000000027367EA32C>I<3FFFFFFFE07FFFFFFFF07FFF
-FFFFF07FFFFFFFF07FFFFFFFF07E00001FE07E00003FC07E00007F807E0000FF007E0001
-FE003C0003FC00000007F80000000FF00000001FE00000003FC00000007F80000000FF00
-000001FC00000003F80000000FF00000001FE00000003FC00000007F80000000FF000000
-01FE0001E003FC0003F007F80003F00FF00003F01FE00003F03FC00003F07F800003F0FF
-FFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF07FFFFFFFE024247DA32C>I
+0003C0003F0007E0003F0007E0003F0007E0003F0007E0003F0007E0003F800FE0001F80
+1FC0001FE07FC0000FFFFF80000FFFFF000003FFFE000001FFF80000003FE000232E7EAD
+2C>I<7FF003FF8000FFF807FFC000FFF807FFC000FFF807FFC0007FF803FFC00001F800
+0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800
+0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800
+0FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F8000FC00001F800
+0FC00001F8000FC00001F8000FC00001F8001FC00001F8001FC00001F8003FC00001FC00
+7FC00000FE03FFC00000FFFFFFFF00007FFFFFFF80003FFFFFFF80001FFFCFFF800003FE
+07FF0029247FA32C>I<7FFF01FFFCFFFF01FFFEFFFF83FFFEFFFF01FFFE7FFF01FFFC03
+E0000F8003E0000F8003F0001F8001F0001F0001F0001F0001F8003F0000F8003E0000F8
+003E0000FC007E00007C007C00007C007C00007E00FC00003E00F800003E00F800003F01
+F800001F01F000001F01F000001F83F000000F83E000000F83E000000FC7E0000007C7C0
+000007C7C0000007EFC0000003EF80000003EF80000003FF80000001FF00000001FF0000
+0000FE000000007C000027247EA32C>I<7FFF007FFF007FFF80FFFF00FFFF80FFFF807F
+FF80FFFF007FFF007FFF0007C00001F00007C00001F00007C00001F00007C00001F00007
+C00001F00007C00001F00003E00003E00003E00003E00003E00003E00003E03E03E00003
+E07F03E00003E07F03E00001F07F07C00001F0FF87C00001F0FF87C00001F0F787C00001
+F0F787C00001F1F7C7C00000F1F7C7800000F9E3CF800000F9E3CF800000FBE3EF800000
+FBE3EF800000FBE3EF8000007BC1EF0000007FC1FF0000007FC1FF0000007F80FF000000
+7F80FF0000003F80FE0000001F007C000029247FA32C>I<3FFF03FFF07FFF87FFF87FFF
+87FFF87FFF87FFF83FFF03FFF000FC007E0000FC00FC00007E01F800003F01F000001F83
+F000001F87E000000FCFC0000007EF80000003FF80000001FF00000001FE00000000FC00
+0000007C00000000FE00000001FE00000001FF00000003EF80000007CFC000000FC7C000
+000F83E000001F01F000003F01F800007E00F800007C007C0000F8007E0001F8003F007F
+FF01FFFC7FFF83FFFCFFFF83FFFE7FFF83FFFC7FFF01FFFC27247EA32C>I<7FFF01FFFC
+FFFF81FFFEFFFF83FFFEFFFF81FFFE7FFF01FFFC03E0000F8001F0000F8001F0001F8001
+F8001F0000F8001F0000F8003F0000FC003E00007C003E00007E007E00003E007C00003E
+007C00003F00FC00001F00F800001F00F800000F81F800000F81F000000F81F0000007C1
+F0000007C3E0000007C3E0000003E3E0000003E7C0000001E7C0000001F7C0000001F780
+000000FF80000000FF80000000FF000000007F000000007F000000003E000000003E0000
+00007E000000007C000000007C00000000FC00000000F800000000F800000C01F800003F
+01F000007F83F000007F87E000007E0FE000007E1FC000007FFF8000003FFF0000001FFE
+0000000FFC00000007E000000027367EA32C>I<3FFFFFFFE07FFFFFFFF07FFFFFFFF07F
+FFFFFFF07FFFFFFFF07E00001FE07E00003FC07E00007F807E0000FF007E0001FE003C00
+03FC00000007F80000000FF00000001FE00000003FC00000007F80000000FF00000001FC
+00000003F80000000FF00000001FE00000003FC00000007F80000000FF00000001FE0001
+E003FC0003F007F80003F00FF00003F01FE00003F03FC00003F07F800003F0FFFFFFFFF0
+FFFFFFFFF0FFFFFFFFF0FFFFFFFFF07FFFFFFFE024247DA32C>I
E
%EndDVIPSBitmapFont
%DVIPSBitmapFont: Fm ecbx1000 10 30
@@ -2324,145 +2396,147 @@ FF0001FFFFFC00007FFFF0000007FF000027377CB530>I<00000007C0000000000FC000
1E0000FFC0003C0000FFC0007C0000FFC000F80000FFC000FFFFFFFFFF80FFFFFFFFFF80
FFFFFFFFFF80FFFFFFFFFF80000001FFC000000001FFC000000001FFC000000001FFC000
000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000
-0003FFFFFF800003FFFFFF800003FFFFFF800003FFFFFF8029367DB530>I<00000FF800
-0000FFFE000003FFFF80000FF80FC0003FE003E0007F8001F000FF000FF001FF001FF803
-FE003FF807FC003FF80FFC003FF80FF8003FF81FF8003FF81FF8003FF83FF8001FF03FF8
-000FE07FF00000007FF00000007FF00000007FF00800007FF07FF000FFF1FFFC00FFF3FF
-FF00FFF780FF80FFFF007FC0FFFE003FE0FFFC003FF0FFFC001FF8FFF8001FF8FFF8001F
-FCFFF8001FFCFFF8001FFCFFF0001FFEFFF0001FFEFFF0001FFEFFF0001FFE7FF0001FFE
-7FF0001FFE7FF0001FFE7FF0001FFE7FF0001FFE3FF0001FFE3FF0001FFC3FF0001FFC1F
-F8001FFC1FF8001FF80FF8003FF80FFC003FF007FC003FE003FE007FC001FF81FF8000FF
-FFFF00003FFFFC00000FFFF0000001FF800027377CB530>54 D<FFFFFFFFFFC00000FFFF
-FFFFFFFC0000FFFFFFFFFFFF0000FFFFFFFFFFFFC000007FF00003FFE000007FF00000FF
-F000007FF000007FF800007FF000003FFC00007FF000001FFC00007FF000001FFE00007F
-F000001FFE00007FF000000FFF00007FF000000FFF00007FF000000FFF00007FF000000F
-FF00007FF000000FFF00007FF000000FFF00007FF000000FFF00007FF000001FFE00007F
-F000001FFE00007FF000001FFC00007FF000003FFC00007FF000007FF800007FF00000FF
-F000007FF00001FFC000007FF0000FFF8000007FFFFFFFFC0000007FFFFFFFFC0000007F
-FFFFFFFF8000007FF00000FFF000007FF000003FF800007FF000001FFC00007FF000000F
-FE00007FF0000007FF00007FF0000007FF80007FF0000003FFC0007FF0000003FFC0007F
-F0000003FFC0007FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003
-FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FFC0007F
-F0000003FFC0007FF0000007FFC0007FF000000FFF80007FF000000FFF00007FF000001F
-FF00007FF000007FFE00007FF00001FFFC00FFFFFFFFFFFFF000FFFFFFFFFFFFC000FFFF
-FFFFFFFF0000FFFFFFFFFFF000003B397DB844>66 D<FFFFFFFCFFFFFFFCFFFFFFFCFFFF
-FFFC007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
-F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
-F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
-F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
-F800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007F
-F800007FF800007FF800007FF800007FF800FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC1E39
-7DB824>73 D<FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000007F
+0003FFFFFF800003FFFFFF800003FFFFFF800003FFFFFF8029367DB530>I<3C00000000
+003E00000000003FE0000000003FFFFFFFFF803FFFFFFFFF803FFFFFFFFF803FFFFFFFFF
+803FFFFFFFFF007FFFFFFFFE007FFFFFFFFC007FFFFFFFF8007FFFFFFFF0007FFFFFFFE0
+007FFFFFFFE0007C00000FC0007800001F80007800003F0000F800007E0000F00000FC00
+00F00000F80000F00001F80000F00003F00000000007E0000000000FC0000000000FC000
+0000001F80000000003F80000000007F00000000007F0000000000FE0000000000FE0000
+000001FE0000000001FC0000000003FC0000000003FC0000000007FC0000000007FC0000
+00000FFC000000000FF8000000000FF8000000001FF8000000001FF8000000001FF80000
+00001FF8000000001FF8000000003FF8000000003FF8000000003FF8000000003FF80000
+00003FF8000000003FF8000000003FF8000000003FF8000000003FF8000000001FF00000
+00000FE00000000007C000000029397BB730>55 D<FFFFFFFFFFC00000FFFFFFFFFFFC00
+00FFFFFFFFFFFF0000FFFFFFFFFFFFC000007FF00003FFE000007FF00000FFF000007FF0
+00007FF800007FF000003FFC00007FF000001FFC00007FF000001FFE00007FF000001FFE
+00007FF000000FFF00007FF000000FFF00007FF000000FFF00007FF000000FFF00007FF0
+00000FFF00007FF000000FFF00007FF000000FFF00007FF000001FFE00007FF000001FFE
+00007FF000001FFC00007FF000003FFC00007FF000007FF800007FF00000FFF000007FF0
+0001FFC000007FF0000FFF8000007FFFFFFFFC0000007FFFFFFFFC0000007FFFFFFFFF80
+00007FF00000FFF000007FF000003FF800007FF000001FFC00007FF000000FFE00007FF0
+000007FF00007FF0000007FF80007FF0000003FFC0007FF0000003FFC0007FF0000003FF
+C0007FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0
+000003FFE0007FF0000003FFE0007FF0000003FFE0007FF0000003FFC0007FF0000003FF
+C0007FF0000007FFC0007FF000000FFF80007FF000000FFF00007FF000001FFF00007FF0
+00007FFE00007FF00001FFFC00FFFFFFFFFFFFF000FFFFFFFFFFFFC000FFFFFFFFFFFF00
+00FFFFFFFFFFF000003B397DB844>66 D<FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC007FF8
+00007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF8
+00007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF8
+00007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF8
+00007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF8
+00007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF800007FF8
+00007FF800007FF800007FF800FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFC1E397DB824>73
+D<FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000FFFFFFFF000000007FF800000000
+007FF800000000007FF800000000007FF800000000007FF800000000007FF80000000000
+7FF800000000007FF800000000007FF800000000007FF800000000007FF800000000007F
F800000000007FF800000000007FF800000000007FF800000000007FF800000000007FF8
00000000007FF800000000007FF800000000007FF800000000007FF800000000007FF800
000000007FF800000000007FF800000000007FF800000000007FF800000000007FF80000
+0000007FF800000000007FF800000000007FF800000000007FF800000780007FF8000007
+80007FF800000780007FF800000780007FF800000780007FF800000F80007FF800000F00
+007FF800000F00007FF800000F00007FF800001F00007FF800001F00007FF800003F0000
+7FF800003F00007FF800007F00007FF80000FF00007FF80001FF00007FF80003FF00007F
+F8000FFE00007FF8007FFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFF
+FFFFFE0031397DB839>76 D<000000FFF800000000000FFFFF80000000007FFFFFF00000
+0001FFC01FFC00000007FF0007FF0000001FFC0001FFC000003FF000007FE000007FE000
+003FF00000FFC000001FF80001FF8000000FFC0003FF8000000FFE0007FF00000007FF00
+07FF00000007FF000FFE00000003FF800FFE00000003FF801FFC00000001FFC01FFC0000
+0001FFC03FFC00000001FFE03FFC00000001FFE03FFC00000001FFE07FF800000000FFF0
+7FF800000000FFF07FF800000000FFF07FF800000000FFF0FFF800000000FFF8FFF80000
+0000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8
+FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF80000
+0000FFF8FFF800000000FFF87FF800000000FFF07FFC00000001FFF07FFC00000001FFF0
+7FFC00000001FFF03FFC00000001FFE03FFC00000001FFE03FFE00000003FFE01FFE0000
+0003FFC01FFE00000003FFC00FFF00000007FF8007FF00000007FF0007FF8000000FFF00
+03FFC000001FFE0001FFC000001FFC0000FFE000003FF800007FF000007FF000003FFC00
+01FFE000001FFF0007FFC0000007FFC01FFF00000001FFFFFFFC000000007FFFFFF00000
+00000FFFFF800000000000FFF80000003D3B7BB948>79 D<FFFFFFFFFF0000FFFFFFFFFF
+F000FFFFFFFFFFFE00FFFFFFFFFFFF80007FF8000FFFC0007FF80001FFE0007FF80000FF
+F0007FF800007FF8007FF800003FFC007FF800003FFC007FF800001FFE007FF800001FFE
+007FF800001FFF007FF800001FFF007FF800001FFF007FF800001FFF007FF800001FFF00
+7FF800001FFF007FF800001FFF007FF800001FFF007FF800001FFE007FF800001FFE007F
+F800003FFC007FF800003FFC007FF800007FF8007FF80000FFF0007FF80001FFE0007FF8
+000FFFC0007FFFFFFFFF00007FFFFFFFFC00007FFFFFFFE000007FF800000000007FF800
+000000007FF800000000007FF800000000007FF800000000007FF800000000007FF80000
0000007FF800000000007FF800000000007FF800000000007FF800000000007FF8000000
00007FF800000000007FF800000000007FF800000000007FF800000000007FF800000000
-007FF800000000007FF800000000007FF800000000007FF800000000007FF80000078000
-7FF800000780007FF800000780007FF800000780007FF800000780007FF800000F80007F
-F800000F00007FF800000F00007FF800000F00007FF800001F00007FF800001F00007FF8
-00003F00007FF800003F00007FF800007F00007FF80000FF00007FF80001FF00007FF800
-03FF00007FF8000FFE00007FF8007FFE00FFFFFFFFFFFE00FFFFFFFFFFFE00FFFFFFFFFF
-FE00FFFFFFFFFFFE0031397DB839>76 D<000000FFF800000000000FFFFF80000000007F
-FFFFF000000001FFC01FFC00000007FF0007FF0000001FFC0001FFC000003FF000007FE0
-00007FE000003FF00000FFC000001FF80001FF8000000FFC0003FF8000000FFE0007FF00
-000007FF0007FF00000007FF000FFE00000003FF800FFE00000003FF801FFC00000001FF
-C01FFC00000001FFC03FFC00000001FFE03FFC00000001FFE03FFC00000001FFE07FF800
-000000FFF07FF800000000FFF07FF800000000FFF07FF800000000FFF0FFF800000000FF
-F8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800
-000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FFF8FFF800000000FF
-F8FFF800000000FFF8FFF800000000FFF87FF800000000FFF07FFC00000001FFF07FFC00
-000001FFF07FFC00000001FFF03FFC00000001FFE03FFC00000001FFE03FFE00000003FF
-E01FFE00000003FFC01FFE00000003FFC00FFF00000007FF8007FF00000007FF0007FF80
-00000FFF0003FFC000001FFE0001FFC000001FFC0000FFE000003FF800007FF000007FF0
-00003FFC0001FFE000001FFF0007FFC0000007FFC01FFF00000001FFFFFFFC000000007F
-FFFFF0000000000FFFFF800000000000FFF80000003D3B7BB948>79
-D<FFFFFFFFFF0000FFFFFFFFFFF000FFFFFFFFFFFE00FFFFFFFFFFFF80007FF8000FFFC0
-007FF80001FFE0007FF80000FFF0007FF800007FF8007FF800003FFC007FF800003FFC00
-7FF800001FFE007FF800001FFE007FF800001FFF007FF800001FFF007FF800001FFF007F
-F800001FFF007FF800001FFF007FF800001FFF007FF800001FFF007FF800001FFF007FF8
-00001FFE007FF800001FFE007FF800003FFC007FF800003FFC007FF800007FF8007FF800
-00FFF0007FF80001FFE0007FF8000FFFC0007FFFFFFFFF00007FFFFFFFFC00007FFFFFFF
-E000007FF800000000007FF800000000007FF800000000007FF800000000007FF8000000
-00007FF800000000007FF800000000007FF800000000007FF800000000007FF800000000
-007FF800000000007FF800000000007FF800000000007FF800000000007FF80000000000
-7FF800000000007FF800000000007FF800000000007FF800000000007FF800000000007F
-F800000000007FF800000000FFFFFFFC000000FFFFFFFC000000FFFFFFFC000000FFFFFF
-FC00000038397DB841>I<0007FF000E00003FFFE01E0000FFFFF83E0003FFFFFE7E0007
-FC01FFFE000FF0001FFE001FE0000FFE003FC00003FE003F800001FE007F800000FE007F
-000000FE007F0000007E00FF0000007E00FF0000003E00FF0000003E00FF8000003E00FF
-8000001E00FFC000001E00FFE000001E00FFF000000000FFFC000000007FFFE00000007F
-FFFE0000007FFFFFF000003FFFFFFE00003FFFFFFF80001FFFFFFFC0000FFFFFFFF00007
-FFFFFFF80003FFFFFFFC0000FFFFFFFE00003FFFFFFE00000FFFFFFF000001FFFFFF0000
-000FFFFF800000007FFF800000000FFFC000000003FFC000000001FFC000000000FFC0F0
-0000007FC0F00000007FC0F00000007FC0F00000003FC0F00000003FC0F80000003FC0F8
-0000003F80FC0000003F80FC0000007F80FE0000007F00FF0000007F00FF800000FE00FF
-E00001FC00FFF80003FC00FFFF801FF800FCFFFFFFE000F83FFFFFC000F007FFFE0000E0
-007FF000002A3B7BB935>83 D<003FFE00000003FFFFE000000FFFFFF800001FF00FFE00
-003FF003FF00003FF801FF80003FF800FFC0003FF800FFC0003FF8007FE0003FF8007FE0
-001FF0007FE0000FE0007FE0000380007FE0000000007FE0000000007FE00000003FFFE0
-00000FFFFFE000007FFFFFE00001FFF87FE00007FF807FE0000FFE007FE0003FF8007FE0
-003FF0007FE0007FE0007FE000FFE0007FE000FFC0007FE000FFC0007FE000FFC0007FE0
-00FFC0007FE000FFC000FFE000FFE001FFE0007FE001FFE0003FF007FFF8001FFC1FBFFF
-C00FFFFE1FFFC003FFF80FFFC0003FE003FFC02A257DA42E>97 D<0001FFC000000FFFFC
-00007FFFFF0000FF80FF8003FE00FFC007FC01FFC00FF801FFC01FF801FFC01FF001FFC0
-3FF001FFC03FF000FF807FE0007F007FE0001C007FE0000000FFE0000000FFE0000000FF
-E0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00000007FE0
-0000007FE00000007FF00000003FF00000003FF00001E01FF80001E01FF80003E00FFC00
-07C007FE00078003FF001F8000FFC07E00007FFFFC00000FFFF0000001FF800023257DA4
-2A>99 D<000000007F800000007FFF800000007FFF800000007FFF800000007FFF800000
-0003FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF800000
-0001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF800000
-0001FF8000000001FF8000000001FF8000000001FF800001FF81FF80000FFFF1FF80003F
-FFFDFF8000FFC07FFF8003FF001FFF8007FC0007FF800FFC0003FF801FF80001FF801FF0
-0001FF803FF00001FF803FF00001FF807FE00001FF807FE00001FF807FE00001FF80FFE0
-0001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE0
-0001FF80FFE00001FF80FFE00001FF80FFE00001FF807FE00001FF807FE00001FF807FF0
-0001FF803FF00001FF803FF00001FF801FF80003FF800FF80007FF8007FC000FFF8003FE
-001FFFC001FF80FDFFFE007FFFF9FFFE001FFFE1FFFE0001FF01FFFE2F3A7DB935>I<00
-03FF8000001FFFF000007FFFFC0001FF83FE0003FE007F8007FC003F800FF8003FC01FF8
-001FE01FF0001FE03FF0000FF03FF0000FF07FE0000FF07FE0000FF87FE00007F8FFE000
-07F8FFE00007F8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFE0000000FFE0000000FFE00000
-00FFE00000007FE00000007FE00000007FE00000003FF00000003FF00000781FF0000078
-0FF80000F80FFC0000F007FC0003F001FF000FE000FFC07FC0007FFFFF00000FFFFC0000
-01FFE00025257DA42C>I<00001FF0000001FFFC000007FFFF00001FF87F80003FE0FF80
-00FFC1FFC000FFC1FFC001FF81FFC001FF81FFC003FF01FFC003FF00FF8003FF00FF8003
-FF003E0003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF
-00000003FF000000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF000003FF00000003FF00
-000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF0000
+007FF800000000007FF800000000007FF800000000007FF800000000007FF800000000FF
+FFFFFC000000FFFFFFFC000000FFFFFFFC000000FFFFFFFC00000038397DB841>I<0007
+FF000E00003FFFE01E0000FFFFF83E0003FFFFFE7E0007FC01FFFE000FF0001FFE001FE0
+000FFE003FC00003FE003F800001FE007F800000FE007F000000FE007F0000007E00FF00
+00007E00FF0000003E00FF0000003E00FF8000003E00FF8000001E00FFC000001E00FFE0
+00001E00FFF000000000FFFC000000007FFFE00000007FFFFE0000007FFFFFF000003FFF
+FFFE00003FFFFFFF80001FFFFFFFC0000FFFFFFFF00007FFFFFFF80003FFFFFFFC0000FF
+FFFFFE00003FFFFFFE00000FFFFFFF000001FFFFFF0000000FFFFF800000007FFF800000
+000FFFC000000003FFC000000001FFC000000000FFC0F00000007FC0F00000007FC0F000
+00007FC0F00000003FC0F00000003FC0F80000003FC0F80000003F80FC0000003F80FC00
+00007F80FE0000007F00FF0000007F00FF800000FE00FFE00001FC00FFF80003FC00FFFF
+801FF800FCFFFFFFE000F83FFFFFC000F007FFFE0000E0007FF000002A3B7BB935>83
+D<003FFE00000003FFFFE000000FFFFFF800001FF00FFE00003FF003FF00003FF801FF80
+003FF800FFC0003FF800FFC0003FF8007FE0003FF8007FE0001FF0007FE0000FE0007FE0
+000380007FE0000000007FE0000000007FE00000003FFFE000000FFFFFE000007FFFFFE0
+0001FFF87FE00007FF807FE0000FFE007FE0003FF8007FE0003FF0007FE0007FE0007FE0
+00FFE0007FE000FFC0007FE000FFC0007FE000FFC0007FE000FFC0007FE000FFC000FFE0
+00FFE001FFE0007FE001FFE0003FF007FFF8001FFC1FBFFFC00FFFFE1FFFC003FFF80FFF
+C0003FE003FFC02A257DA42E>97 D<0001FFC000000FFFFC00007FFFFF0000FF80FF8003
+FE00FFC007FC01FFC00FF801FFC01FF801FFC01FF001FFC03FF001FFC03FF000FF807FE0
+007F007FE0001C007FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000
+0000FFE0000000FFE0000000FFE0000000FFE00000007FE00000007FE00000007FF00000
+003FF00000003FF00001E01FF80001E01FF80003E00FFC0007C007FE00078003FF001F80
+00FFC07E00007FFFFC00000FFFF0000001FF800023257DA42A>99
+D<000000007F800000007FFF800000007FFF800000007FFF800000007FFF8000000003FF
+8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF
+8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF8000000001FF
+8000000001FF8000000001FF8000000001FF800001FF81FF80000FFFF1FF80003FFFFDFF
+8000FFC07FFF8003FF001FFF8007FC0007FF800FFC0003FF801FF80001FF801FF00001FF
+803FF00001FF803FF00001FF807FE00001FF807FE00001FF807FE00001FF80FFE00001FF
+80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF80FFE00001FF
+80FFE00001FF80FFE00001FF80FFE00001FF807FE00001FF807FE00001FF807FF00001FF
+803FF00001FF803FF00001FF801FF80003FF800FF80007FF8007FC000FFF8003FE001FFF
+C001FF80FDFFFE007FFFF9FFFE001FFFE1FFFE0001FF01FFFE2F3A7DB935>I<0003FF80
+00001FFFF000007FFFFC0001FF83FE0003FE007F8007FC003F800FF8003FC01FF8001FE0
+1FF0001FE03FF0000FF03FF0000FF07FE0000FF07FE0000FF87FE00007F8FFE00007F8FF
+E00007F8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFE0000000FFE0000000FFE0000000FFE0
+0000007FE00000007FE00000007FE00000003FF00000003FF00000781FF00000780FF800
+00F80FFC0000F007FC0003F001FF000FE000FFC07FC0007FFFFF00000FFFFC000001FFE0
+0025257DA42C>I<00001FF0000001FFFC000007FFFF00001FF87F80003FE0FF8000FFC1
+FFC000FFC1FFC001FF81FFC001FF81FFC003FF01FFC003FF00FF8003FF00FF8003FF003E
0003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000
-03FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003
-FF00000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFF
-FE0000FFFFFE0000FFFFFE0000223A7DB91D>I<000000001F000007FE00FFC0007FFFE3
-FFC001FFFFFFEFE007FE07FF8FE00FF801FF1FE01FF000FF8FE03FF000FFCFE03FE0007F
-C7C03FE0007FC0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007F
-E0007FE0007FE0003FE0007FC0003FE0007FC0003FF000FFC0001FF000FF80000FF801FF
-000007FE07FE00000FFFFFF800000F7FFFE000001E07FE0000001E00000000001E000000
-00003E00000000003F00000000003F80000000001FC0000000001FFFFFF800001FFFFFFF
-80001FFFFFFFE0000FFFFFFFF80007FFFFFFFC0003FFFFFFFE0007FFFFFFFE001FFFFFFF
-FF003FC0000FFF007F000000FF80FF0000007F80FE0000007F80FE0000003F80FE000000
-3F80FE0000003F80FF0000007F807F0000007F007F800000FF003FC00001FE001FF00007
-FC0007FE003FF00001FFFFFFC000007FFFFF00000007FFF000002B377DA530>I<00FF00
-000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF0000000003FF00
-00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
-00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
-00000003FF0000000003FF0000000003FF007FC00003FF03FFF80003FF0FFFFE0003FF1F
-03FF0003FF3C01FF8003FF7801FF8003FFF000FF8003FFE000FFC003FFC000FFC003FFC0
-00FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
-00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
-00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
-00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC
-3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF303A7DB935>I<01F00007FC000FFE
-000FFE001FFF001FFF001FFF001FFF001FFF000FFE000FFE0007FC0001F0000000000000
-0000000000000000000000000000000000000000000000FF007FFF007FFF007FFF007FFF
-0007FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF
+03FF000000FFFFFF0000FFFFFF0000FFFFFF0000FFFFFF000003FF00000003FF00000003
+FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF
+00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00
+000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF0000
+0003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE0000
+FFFFFE0000FFFFFE0000223A7DB91D>I<000000001F000007FE00FFC0007FFFE3FFC001
+FFFFFFEFE007FE07FF8FE00FF801FF1FE01FF000FF8FE03FF000FFCFE03FE0007FC7C03F
+E0007FC0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007FE0007F
+E0007FE0003FE0007FC0003FE0007FC0003FF000FFC0001FF000FF80000FF801FF000007
+FE07FE00000FFFFFF800000F7FFFE000001E07FE0000001E00000000001E00000000003E
+00000000003F00000000003F80000000001FC0000000001FFFFFF800001FFFFFFF80001F
+FFFFFFE0000FFFFFFFF80007FFFFFFFC0003FFFFFFFE0007FFFFFFFE001FFFFFFFFF003F
+C0000FFF007F000000FF80FF0000007F80FE0000007F80FE0000003F80FE0000003F80FE
+0000003F80FF0000007F807F0000007F007F800000FF003FC00001FE001FF00007FC0007
+FE003FF00001FFFFFFC000007FFFFF00000007FFF000002B377DA530>I<00FF00000000
+FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF0000000003FF00000000
+03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000
+03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000
+03FF0000000003FF0000000003FF007FC00003FF03FFF80003FF0FFFFE0003FF1F03FF00
+03FF3C01FF8003FF7801FF8003FFF000FF8003FFE000FFC003FFC000FFC003FFC000FFC0
+03FF8000FFC003FF8000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0
+03FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0
+03FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0
+03FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFF
+FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFF303A7DB935>I<01F00007FC000FFE000FFE
+001FFF001FFF001FFF001FFF001FFF000FFE000FFE0007FC0001F0000000000000000000
+0000000000000000000000000000000000000000FF007FFF007FFF007FFF007FFF0007FF
0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF
-0003FF0003FF0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF8153B7DBA1B>I<00FF00FF
-FF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
+0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF
+0003FF0003FF0003FF00FFFFF8FFFFF8FFFFF8FFFFF8153B7DBA1B>I<00FF00FFFF00FF
+FF00FFFF00FFFF0007FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003
-FF0003FF0003FF0003FF0003FF00FFFFFCFFFFFCFFFFFCFFFFFC163A7DB91B>108
+FF0003FF0003FF0003FF00FFFFFCFFFFFCFFFFFCFFFFFC163A7DB91B>108
D<00FE007FC000FFFE03FFF800FFFE0FFFFE00FFFE1F03FF00FFFE3C01FF8007FE7801FF
8003FEF000FF8003FFE000FFC003FFC000FFC003FFC000FFC003FF8000FFC003FF8000FF
C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF
@@ -4618,9 +4692,9 @@ ifelse
%%EndSetup
%%Page: 1 1
TeXDict begin 1 0 bop 0 83 3901 9 v 1890 451 a Ft(Python)64
-b(Op)5 b(enSSL)64 b(Manual)3394 619 y Fs(Release)34 b(0.10)2927
-974 y Fr(Jean-P)m(aul)i(Calderone)3208 1328 y Fq(No)n(v)n(em)n(b)r(er)
-26 b(13,)h(2009)3014 1475 y Fp(exa)n(rkun@t)n(wistedmatrix.com)1781
+b(Op)5 b(enSSL)64 b(Manual)3394 619 y Fs(Release)34 b(0.11)2927
+974 y Fr(Jean-P)m(aul)i(Calderone)3280 1328 y Fq(Octob)r(er)26
+b(31,)h(2010)3014 1475 y Fp(exa)n(rkun@t)n(wistedmatrix.com)1781
1697 y Fo(Abstract)208 1841 y Fn(This)32 b(mo)r(dule)f(is)h(a)g(rather)
g(thin)f(wrapp)r(er)h(around)g(\(a)g(subset)f(of)6 b(\))32
b(the)g(Op)r(enSSL)e(library)-6 b(.)52 b(With)32 b(thin)f(wrapp)r(er)
@@ -4646,14 +4720,14 @@ h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
(.)h(.)134 b(5)315 3344 y(X509Name)27 b(ob)5 b(jects)57
b(.)41 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(6)315 3444 y(X509Req)27
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(7)315 3444 y(X509Req)27
b(ob)5 b(jects)60 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
b(7)315 3543 y(X509Store)26 b(ob)5 b(jects)78 b(.)41
b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
-f(.)h(.)f(.)h(.)f(.)h(.)134 b(7)315 3643 y(PKey)28 b(ob)5
+f(.)h(.)f(.)h(.)f(.)h(.)134 b(8)315 3643 y(PKey)28 b(ob)5
b(jects)58 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
@@ -4670,31 +4744,38 @@ f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
b(9)315 4041 y(Netscap)r(eSPKI)28 b(ob)5 b(jects)58 b(.)42
b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)134 b(9)125 4141 y(3.2)83 b Fl(rand)26
-b Fq(\026)i(An)g(in)n(terface)f(to)g(the)h(Op)r(enSSL)g(pseudo)f
-(random)g(n)n(um)n(b)r(er)g(generator)50 b(.)41 b(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)134 b(9)125 4241 y(3.3)83 b Fl(SSL)27
-b Fq(\026)g(An)i(in)n(terface)d(to)i(the)g(SSL-sp)r(eci\034c)f(parts)g
-(of)h(Op)r(enSSL)64 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)
-h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(10)315 4340 y(Con)n(text)28
-b(ob)5 b(jects)98 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
-(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
-b(11)315 4440 y(Connection)27 b(ob)5 b(jects)108 b(.)42
-b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
-h(.)f(.)h(.)f(.)h(.)93 b(13)0 4623 y Fm(4)77 b(In)m(ternals)3310
-b(16)125 4722 y Fq(4.1)83 b(Exceptions)i(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g
-(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
-h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)93 b(16)125 4822 y(4.2)83 b(Callbac)n(ks)68
-b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)
-g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
-(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
-b(16)125 4921 y(4.3)83 b(A)n(cessing)27 b(So)r(c)n(k)n(et)g(Metho)r(ds)
-82 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
-(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
-f(.)h(.)f(.)h(.)93 b(17)p 0 5068 V eop end
+f(.)h(.)f(.)h(.)134 b(9)315 4141 y(CRL)28 b(ob)5 b(jects)87
+b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(10)315
+4241 y(Rev)n(ok)n(ed)27 b(ob)5 b(jects)83 b(.)42 b(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)93 b(10)125 4340 y(3.2)83 b Fl(rand)26 b Fq(\026)i(An)g(in)n
+(terface)f(to)g(the)h(Op)r(enSSL)g(pseudo)f(random)g(n)n(um)n(b)r(er)g
+(generator)50 b(.)41 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
+b(10)125 4440 y(3.3)83 b Fl(SSL)27 b Fq(\026)g(An)i(in)n(terface)d(to)i
+(the)g(SSL-sp)r(eci\034c)f(parts)g(of)h(Op)r(enSSL)64
+b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+h(.)f(.)h(.)93 b(11)315 4540 y(Con)n(text)28 b(ob)5 b(jects)98
+b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(13)315 4639 y(Connection)27
+b(ob)5 b(jects)108 b(.)42 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
+f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(15)0
+4822 y Fm(4)77 b(In)m(ternals)3310 b(17)125 4921 y Fq(4.1)83
+b(Exceptions)i(.)41 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
+f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93
+b(17)125 5021 y(4.2)83 b(Callbac)n(ks)68 b(.)42 b(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
+g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)93 b(17)125 5121 y(4.3)83 b(A)n(cessing)27
+b(So)r(c)n(k)n(et)g(Metho)r(ds)82 b(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
+h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)93 b(18)p
+0 5268 V eop end
%%Page: 2 2
TeXDict begin 2 1 bop 0 85 a Fr(1)114 b(Intro)s(duction)0
314 y Fq(The)41 b(reason)e(p)n(yOp)r(enSSL)i(w)n(as)e(created)h(is)h
@@ -4823,934 +4904,1004 @@ b(jects.)208 2890 y(If)37 b(the)g Fc(enc)k Fq(argumen)n(t)35
b(is)i(presen)n(t,)h(it)f(should)f(b)r(e)h(a)g(base64-enco)r(ded)d
(string)i(represen)n(ting)f(a)h(Netscap)r(eSPKI)208 2989
y(ob)5 b(ject,)27 b(as)g(returned)g(b)n(y)g(the)h Fl(b64_encode)c
-Fq(metho)r(d.)0 3136 y Fl(FILETYPE_PEM)0 3236 y(FILETYPE_ASN1)208
-3335 y Fq(File)j(t)n(yp)r(e)h(constan)n(ts.)0 3482 y
-Fl(TYPE_RSA)0 3582 y(TYPE_DSA)208 3681 y Fq(Key)e(t)n(yp)r(e)i(constan)
-n(ts.)0 3828 y Fm(exception)k Fl(Error)208 3928 y Fq(Generic)27
-b(exception)g(used)g(in)h(the)g Fl(crypto)d Fq(mo)r(dule.)0
-4075 y Fl(dump_certificate)o(\()p Fc(t)o(yp)l(e,)g(c)l(ert)8
-b Fl(\))208 4174 y Fq(Dump)28 b(the)g(certi\034cate)f
+Fq(metho)r(d.)0 3136 y Fm(class)31 b Fl(CRL\(\))208 3236
+y Fq(A)c(class)g(represen)n(ting)f(Certifcate)h(Rev)n(o)r(cation)g
+(List)g(ob)5 b(jects.)0 3383 y Fm(class)31 b Fl(Revoked\(\))208
+3482 y Fq(A)c(class)g(represen)n(ting)f(Rev)n(o)r(cation)g(ob)5
+b(jects)27 b(of)h(CRL.)0 3629 y Fl(FILETYPE_PEM)0 3729
+y(FILETYPE_ASN1)208 3828 y Fq(File)f(t)n(yp)r(e)h(constan)n(ts.)0
+3975 y Fl(TYPE_RSA)0 4075 y(TYPE_DSA)208 4174 y Fq(Key)e(t)n(yp)r(e)i
+(constan)n(ts.)0 4321 y Fm(exception)k Fl(Error)208 4421
+y Fq(Generic)27 b(exception)g(used)g(in)h(the)g Fl(crypto)d
+Fq(mo)r(dule.)0 4568 y Fl(dump_certificate)o(\()p Fc(t)o(yp)l(e,)g(c)l
+(ert)8 b Fl(\))208 4667 y Fq(Dump)28 b(the)g(certi\034cate)f
Fc(c)l(ert)35 b Fq(in)n(to)27 b(a)h(bu\033er)f(string)g(enco)r(ded)h
-(with)g(the)g(t)n(yp)r(e)f Fc(typ)l(e)6 b Fq(.)0 4321
+(with)g(the)g(t)n(yp)r(e)f Fc(typ)l(e)6 b Fq(.)0 4814
y Fl(dump_certificate)o(_r)o(equ)o(es)o(t\()o Fc(typ)l(e,)25
-b(r)l(e)l(q)7 b Fl(\))208 4421 y Fq(Dump)28 b(the)g(certi\034cate)f
+b(r)l(e)l(q)7 b Fl(\))208 4914 y Fq(Dump)28 b(the)g(certi\034cate)f
(request)g Fc(r)l(e)l(q)35 b Fq(in)n(to)27 b(a)g(bu\033er)h(string)f
(enco)r(ded)g(with)h(the)g(t)n(yp)r(e)g Fc(typ)l(e)6
-b Fq(.)0 4582 y Fl(dump_privatekey\()o Fc(typ)l(e,)25
+b Fq(.)0 5075 y Fl(dump_privatekey\()o Fc(typ)l(e,)25
b(pkey)7 b Fb([)p Fc(,)31 b(cipher,)h(p)l(assphr)l(ase)19
-b Fb(])p Fl(\))208 4682 y Fq(Dump)39 b(the)f(priv)-5
+b Fb(])p Fl(\))208 5175 y Fq(Dump)39 b(the)f(priv)-5
b(ate)38 b(k)n(ey)h Fc(pkey)46 b Fq(in)n(to)38 b(a)g(bu\033er)g(string)
g(enco)r(ded)g(with)g(the)h(t)n(yp)r(e)f Fc(typ)l(e)6
b Fq(,)42 b(optionally)37 b(\(if)45 b Fc(typ)l(e)g Fq(is)208
-4781 y Fl(FILETYPE_PEM)p Fq(\))22 b(encrypting)27 b(it)h(using)h
+5274 y Fl(FILETYPE_PEM)p Fq(\))22 b(encrypting)27 b(it)h(using)h
Fc(cipher)38 b Fq(and)27 b Fc(p)l(assphr)l(ase)6 b Fq(.)208
-4907 y Fc(p)l(assphr)l(ase)35 b Fq(m)n(ust)28 b(b)r(e)g(either)f(a)g
+5400 y Fc(p)l(assphr)l(ase)35 b Fq(m)n(ust)28 b(b)r(e)g(either)f(a)g
(string)g(or)g(a)g(callbac)n(k)f(for)h(pro)n(viding)f(the)i(pass)f
-(phrase.)0 5054 y Fl(load_certificate)o(\()p Fc(t)o(yp)l(e,)e(bu\033er)
-9 b Fl(\))208 5154 y Fq(Load)26 b(a)h(certi\034cate)g(\(X509\))g(from)h
-(the)f(string)h Fc(bu\033er)37 b Fq(enco)r(ded)27 b(with)h(the)g(t)n
-(yp)r(e)g Fc(typ)l(e)6 b Fq(.)0 5300 y Fl(load_certificate)o(_r)o(equ)o
-(es)o(t\()o Fc(typ)l(e,)25 b(bu\033er)9 b Fl(\))208 5400
-y Fq(Load)26 b(a)h(certi\034cate)g(request)g(\(X509Req\))g(from)g(the)h
-(string)g Fc(bu\033er)37 b Fq(enco)r(ded)27 b(with)h(the)g(t)n(yp)r(e)g
-Fc(typ)l(e)6 b Fq(.)p 0 5549 3901 4 v 0 5649 a Ff(4)2239
-b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f(interface)h(to)f(Op)r
-(enSSL)p eop end
+(phrase.)p 0 5549 3901 4 v 0 5649 a Ff(4)2239 b(3)83
+b Fl(OpenSSL)24 b Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p
+eop end
%%Page: 5 5
-TeXDict begin 5 4 bop 0 90 a Fl(load_privatekey\()o Fc(typ)l(e,)25
+TeXDict begin 5 4 bop 0 83 a Fl(load_certificate)o(\()p
+Fc(t)o(yp)l(e,)25 b(bu\033er)9 b Fl(\))208 183 y Fq(Load)26
+b(a)h(certi\034cate)g(\(X509\))g(from)h(the)f(string)h
+Fc(bu\033er)37 b Fq(enco)r(ded)27 b(with)h(the)g(t)n(yp)r(e)g
+Fc(typ)l(e)6 b Fq(.)0 330 y Fl(load_certificate)o(_r)o(equ)o(es)o(t\()o
+Fc(typ)l(e,)25 b(bu\033er)9 b Fl(\))208 429 y Fq(Load)26
+b(a)h(certi\034cate)g(request)g(\(X509Req\))g(from)g(the)h(string)g
+Fc(bu\033er)37 b Fq(enco)r(ded)27 b(with)h(the)g(t)n(yp)r(e)g
+Fc(typ)l(e)6 b Fq(.)0 595 y Fl(load_privatekey\()o Fc(typ)l(e,)25
b(bu\033er)9 b Fb([)p Fc(,)29 b(p)l(assphr)l(ase)20 b
-Fb(])p Fl(\))208 189 y Fq(Load)43 b(a)h(priv)-5 b(ate)44
+Fb(])p Fl(\))208 695 y Fq(Load)43 b(a)h(priv)-5 b(ate)44
b(k)n(ey)f(\(PKey\))i(from)f(the)h(string)g Fc(bu\033er)53
b Fq(enco)r(ded)44 b(with)h(the)f(t)n(yp)r(e)h Fc(typ)l(e)51
-b Fq(\(m)n(ust)45 b(b)r(e)f(one)g(of)208 289 y Fl(FILETYPE_PEM)22
-b Fq(and)28 b Fl(FILETYPE_ASN1)p Fq(\).)208 422 y Fc(p)l(assphr)l(ase)
+b Fq(\(m)n(ust)45 b(b)r(e)f(one)g(of)208 794 y Fl(FILETYPE_PEM)22
+b Fq(and)28 b Fl(FILETYPE_ASN1)p Fq(\).)208 927 y Fc(p)l(assphr)l(ase)
35 b Fq(m)n(ust)28 b(b)r(e)g(either)f(a)g(string)g(or)g(a)g(callbac)n
-(k)f(for)h(pro)n(viding)f(the)i(pass)f(phrase.)0 569
-y Fl(load_pkcs7_data\()o Fc(typ)l(e,)e(bu\033er)9 b Fl(\))208
-668 y Fq(Load)26 b(pk)n(cs7)h(data)g(from)g(the)h(string)g
-Fc(bu\033er)36 b Fq(enco)r(ded)28 b(with)g(the)g(t)n(yp)r(e)g
-Fc(typ)l(e)6 b Fq(.)0 829 y Fl(load_pkcs12\()p Fc(bu\033er)j
-Fb([)p Fc(,)24 b(p)l(assphr)l(ase)c Fb(])p Fl(\))208
-929 y Fq(Load)30 b(pk)n(cs12)f(data)h(from)h(the)g(string)g
+(k)f(for)h(pro)n(viding)f(the)i(pass)f(phrase.)0 1074
+y Fl(load_crl\()p Fc(typ)l(e,)g(bu\033er)9 b Fl(\))208
+1174 y Fq(Load)25 b(Certi\034cate)i(Rev)n(o)r(cation)e(List)i(\(CRL\))h
+(data)e(from)g(a)h(string)g Fc(bu\033er)9 b Fq(.)37 b
+Fc(bu\033er)e Fq(enco)r(ded)27 b(with)g(the)g(t)n(yp)r(e)g
+Fc(typ)l(e)6 b Fq(.)208 1273 y(The)27 b(t)n(yp)r(e)h
+Fc(typ)l(e)34 b Fq(m)n(ust)28 b(either)f Fl(FILETYPE_PEM)c
+Fq(or)j Fl(FILETYPE_ASN1)p Fq(\).)0 1420 y Fl(load_pkcs7_data\()o
+Fc(typ)l(e,)f(bu\033er)9 b Fl(\))208 1520 y Fq(Load)26
+b(pk)n(cs7)h(data)g(from)g(the)h(string)g Fc(bu\033er)36
+b Fq(enco)r(ded)28 b(with)g(the)g(t)n(yp)r(e)g Fc(typ)l(e)6
+b Fq(.)0 1681 y Fl(load_pkcs12\()p Fc(bu\033er)j Fb([)p
+Fc(,)24 b(p)l(assphr)l(ase)c Fb(])p Fl(\))208 1781 y
+Fq(Load)30 b(pk)n(cs12)f(data)h(from)h(the)g(string)g
Fc(bu\033er)9 b Fq(.)47 b(If)31 b(the)h(pk)n(cs12)d(structure)h(is)h
(encrypted,)g(a)g Fc(p)l(assphr)l(ase)39 b Fq(m)n(ust)31
-b(b)r(e)208 1029 y(included.)37 b(The)27 b(MA)n(C)h(is)g(alw)n(a)n(ys)d
-(c)n(hec)n(k)n(ed)i(and)g(th)n(us)h(required.)208 1161
+b(b)r(e)208 1880 y(included.)37 b(The)27 b(MA)n(C)h(is)g(alw)n(a)n(ys)d
+(c)n(hec)n(k)n(ed)i(and)g(th)n(us)h(required.)208 2013
y(See)f(also)g(the)h(man)f(page)g(for)g(the)h(C)f(function)h
-Fl(PKCS12_parse)p Fq(.)0 1424 y Ff(X509)f(objects)0 1625
-y Fq(X509)f(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r
-(ds:)0 1772 y Fl(get_issuer\(\))208 1871 y Fq(Return)h(an)h(X509Name)e
-(ob)5 b(ject)27 b(represen)n(ting)f(the)i(issuer)f(of)g(the)h
-(certi\034cate.)0 2018 y Fl(get_pubkey\(\))208 2118 y
-Fq(Return)f(a)g(PKey)h(ob)5 b(ject)27 b(represen)n(ting)f(the)i(public)
-g(k)n(ey)f(of)g(the)h(certi\034cate.)0 2265 y Fl(get_serial_numbe)o
-(r\()o(\))208 2364 y Fq(Return)f(the)h(certi\034cate)f(serial)g(n)n(um)
-n(b)r(er.)0 2511 y Fl(get_subject\(\))208 2611 y Fq(Return)g(an)h
-(X509Name)e(ob)5 b(ject)27 b(represen)n(ting)f(the)i(sub)5
-b(ject)28 b(of)f(the)h(certi\034cate.)0 2758 y Fl(get_version\(\))208
-2857 y Fq(Return)f(the)h(certi\034cate)f(v)n(ersion.)0
-3004 y Fl(get_notBefore\(\))208 3104 y Fq(Return)f(a)h(string)f(giving)
-f(the)j(time)f(b)r(efore)f(whic)n(h)h(the)g(certi\034cate)f(is)g(not)h
+Fl(PKCS12_parse)p Fq(.)0 2160 y Fl(sign\()p Fc(key,)h(data,)i(digest)8
+b Fl(\))208 2260 y Fq(Sign)27 b(a)g(data)g(string)g(using)g(the)h(giv)n
+(en)f(k)n(ey)g(and)g(message)f(digest.)208 2392 y Fc(key)31
+b Fq(is)23 b(a)g Fl(PKey)f Fq(instance.)35 b Fc(data)c
+Fq(is)23 b(a)g Fl(str)g Fq(instance.)35 b Fc(digest)d
+Fq(is)23 b(a)g Fl(str)g Fq(naming)g(a)g(supp)r(orted)g(message)f
+(digest)h(t)n(yp)r(e,)208 2492 y(for)k(example)g Fl(\020sha1\021)p
+Fq(.)71 b(New)28 b(in)g(v)n(ersion)e(0.11.)0 2639 y Fl(verify\()p
+Fc(c)l(erti\034c)l(ate,)h(signatur)l(e,)j(data,)h(digest)8
+b Fl(\))208 2738 y Fq(V)-7 b(erify)27 b(the)h(signature)e(for)i(a)f
+(data)g(string.)208 2871 y Fc(c)l(erti\034c)l(ate)i Fq(is)24
+b(a)f Fl(X509)f Fq(instance)h(corresp)r(onding)e(to)j(the)g(priv)-5
+b(ate)23 b(k)n(ey)f(whic)n(h)i(generated)e(the)i(signature.)34
+b Fc(signatur)l(e)208 2971 y Fq(is)22 b(a)g Fc(str)31
+b Fq(instance)23 b(giving)e(the)i(signature)f(itself.)35
+b Fc(data)30 b Fq(is)23 b(a)f Fc(str)31 b Fq(instance)23
+b(giving)e(the)i(data)f(to)h(whic)n(h)f(the)h(signature)208
+3071 y(applies.)36 b Fc(digest)f Fq(is)27 b(a)g Fc(str)35
+b Fq(instance)27 b(naming)g(the)g(message)e(digest)i(t)n(yp)r(e)g(of)g
+(the)h(signature,)e(for)g(example)g Fl(\020sha1\021)p
+Fq(.)208 3170 y(New)h(in)h(v)n(ersion)e(0.11.)0 3433
+y Ff(X509)h(objects)0 3634 y Fq(X509)f(ob)5 b(jects)27
+b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r(ds:)0 3781
+y Fl(get_issuer\(\))208 3880 y Fq(Return)h(an)h(X509Name)e(ob)5
+b(ject)27 b(represen)n(ting)f(the)i(issuer)f(of)g(the)h(certi\034cate.)
+0 4027 y Fl(get_pubkey\(\))208 4127 y Fq(Return)f(a)g(PKey)h(ob)5
+b(ject)27 b(represen)n(ting)f(the)i(public)g(k)n(ey)f(of)g(the)h
+(certi\034cate.)0 4274 y Fl(get_serial_numbe)o(r\()o(\))208
+4373 y Fq(Return)f(the)h(certi\034cate)f(serial)g(n)n(um)n(b)r(er.)0
+4520 y Fl(get_subject\(\))208 4620 y Fq(Return)g(an)h(X509Name)e(ob)5
+b(ject)27 b(represen)n(ting)f(the)i(sub)5 b(ject)28 b(of)f(the)h
+(certi\034cate.)0 4767 y Fl(get_version\(\))208 4866
+y Fq(Return)f(the)h(certi\034cate)f(v)n(ersion.)0 5013
+y Fl(get_notBefore\(\))208 5113 y Fq(Return)f(a)h(string)f(giving)f
+(the)j(time)f(b)r(efore)f(whic)n(h)h(the)g(certi\034cate)f(is)g(not)h
(v)-5 b(alid.)37 b(The)26 b(string)g(is)h(formatted)f(as)g(an)208
-3204 y(ASN1)h(GENERALIZEDTIME:)1110 3428 y Fi(YYYYMMDDhhmmssZ)1110
-3519 y(YYYYMMDDhhmmss+hhmm)1110 3610 y(YYYYMMDDhhmmss-hhmm)208
-3767 y Fq(If)h(no)f(v)-5 b(alue)27 b(exists)g(for)g(this)h(\034eld,)g
-Fl(None)e Fq(is)i(returned.)0 3914 y Fl(get_notAfter\(\))208
-4014 y Fq(Return)h(a)g(string)g(giving)g(the)g(time)h(after)f(whic)n(h)
-h(the)g(certi\034cate)e(is)i(not)f(v)-5 b(alid.)43 b(The)29
-b(string)g(is)g(formatted)h(as)e(an)208 4113 y(ASN1)f(GENERALIZEDTIME:)
-1110 4337 y Fi(YYYYMMDDhhmmssZ)1110 4429 y(YYYYMMDDhhmmss+hhmm)1110
-4520 y(YYYYMMDDhhmmss-hhmm)208 4677 y Fq(If)h(no)f(v)-5
+5212 y(ASN1)h(GENERALIZEDTIME:)p 0 5549 3901 4 v 0 5649
+a Ff(3.1)82 b Fl(crypto)25 b Ff(\026)j(Generic)g(cryptographic)e(mo)r
+(dule)2234 b(5)p eop end
+%%Page: 6 6
+TeXDict begin 6 5 bop 1110 174 a Fi(YYYYMMDDhhmmssZ)1110
+266 y(YYYYMMDDhhmmss+hhmm)1110 357 y(YYYYMMDDhhmmss-hhmm)208
+514 y Fq(If)28 b(no)f(v)-5 b(alue)27 b(exists)g(for)g(this)h(\034eld,)g
+Fl(None)e Fq(is)i(returned.)0 661 y Fl(get_notAfter\(\))208
+760 y Fq(Return)h(a)g(string)g(giving)g(the)g(time)h(after)f(whic)n(h)h
+(the)g(certi\034cate)e(is)i(not)f(v)-5 b(alid.)43 b(The)29
+b(string)g(is)g(formatted)h(as)e(an)208 860 y(ASN1)f(GENERALIZEDTIME:)
+1110 1084 y Fi(YYYYMMDDhhmmssZ)1110 1175 y(YYYYMMDDhhmmss+hhmm)1110
+1267 y(YYYYMMDDhhmmss-hhmm)208 1424 y Fq(If)h(no)f(v)-5
b(alue)27 b(exists)g(for)g(this)h(\034eld,)g Fl(None)e
-Fq(is)i(returned.)0 4824 y Fl(set_notBefore\()p Fc(when)6
-b Fl(\))208 4923 y Fq(Change)35 b(the)i(time)f(b)r(efore)g(whic)n(h)g
+Fq(is)i(returned.)0 1570 y Fl(set_notBefore\()p Fc(when)6
+b Fl(\))208 1670 y Fq(Change)35 b(the)i(time)f(b)r(efore)g(whic)n(h)g
(the)h(certi\034cate)f(is)g(not)g(v)-5 b(alid.)63 b Fc(when)43
b Fq(is)36 b(a)g(string)f(formatted)h(as)g(an)g(ASN1)208
-5023 y(GENERALIZEDTIME:)p 0 5549 3901 4 v 0 5649 a Ff(3.1)82
-b Fl(crypto)25 b Ff(\026)j(Generic)g(cryptographic)e(mo)r(dule)2234
-b(5)p eop end
-%%Page: 6 6
-TeXDict begin 6 5 bop 1110 174 a Fi(YYYYMMDDhhmmssZ)1110
-266 y(YYYYMMDDhhmmss+hhmm)1110 357 y(YYYYMMDDhhmmss-hhmm)0
-562 y Fl(set_notAfter\()p Fc(when)6 b Fl(\))208 661 y
-Fq(Change)38 b(the)h(time)h(after)e(whic)n(h)h(the)h(certi\034cate)e
+1770 y(GENERALIZEDTIME:)1110 1994 y Fi(YYYYMMDDhhmmssZ)1110
+2085 y(YYYYMMDDhhmmss+hhmm)1110 2176 y(YYYYMMDDhhmmss-hhmm)0
+2381 y Fl(set_notAfter\()p Fc(when)6 b Fl(\))208 2481
+y Fq(Change)38 b(the)h(time)h(after)e(whic)n(h)h(the)h(certi\034cate)e
(is)h(not)g(v)-5 b(alid.)71 b Fc(when)46 b Fq(is)39 b(a)g(string)f
-(formatted)h(as)f(an)h(ASN1)208 761 y(GENERALIZEDTIME:)1110
-985 y Fi(YYYYMMDDhhmmssZ)1110 1076 y(YYYYMMDDhhmmss+hhmm)1110
-1168 y(YYYYMMDDhhmmss-hhmm)0 1372 y Fl(gmtime_adj_notBe)o(fo)o(re\()o
-Fc(time)6 b Fl(\))208 1472 y Fq(A)n(djust)28 b(the)g(timestamp)g(\(in)g
+(formatted)h(as)f(an)h(ASN1)208 2580 y(GENERALIZEDTIME:)1110
+2804 y Fi(YYYYMMDDhhmmssZ)1110 2896 y(YYYYMMDDhhmmss+hhmm)1110
+2987 y(YYYYMMDDhhmmss-hhmm)0 3192 y Fl(gmtime_adj_notBe)o(fo)o(re\()o
+Fc(time)6 b Fl(\))208 3291 y Fq(A)n(djust)28 b(the)g(timestamp)g(\(in)g
(GMT\))g(when)g(the)f(certi\034cate)g(starts)g(b)r(eing)h(v)-5
-b(alid.)0 1619 y Fl(gmtime_adj_notAf)o(te)o(r\()p Fc(t)o(ime)6
-b Fl(\))208 1718 y Fq(A)n(djust)28 b(the)g(timestamp)g(\(in)g(GMT\))g
+b(alid.)0 3438 y Fl(gmtime_adj_notAf)o(te)o(r\()p Fc(t)o(ime)6
+b Fl(\))208 3538 y Fq(A)n(djust)28 b(the)g(timestamp)g(\(in)g(GMT\))g
(when)g(the)f(certi\034cate)g(stops)g(b)r(eing)h(v)-5
-b(alid.)0 1865 y Fl(has_expired\(\))208 1965 y Fq(Chec)n(ks)32
+b(alid.)0 3685 y Fl(has_expired\(\))208 3784 y Fq(Chec)n(ks)32
b(the)h(certi\034cate's)f(time)i(stamp)f(against)f(curren)n(t)g(time.)
54 b(Returns)33 b(true)g(if)g(the)h(certi\034cate)e(has)h(expired)208
-2064 y(and)27 b(false)g(otherwise.)0 2211 y Fl(set_issuer\()p
-Fc(issuer)9 b Fl(\))208 2311 y Fq(Set)28 b(the)f(issuer)g(of)h(the)g
-(certi\034cate)f(to)g Fc(issuer)9 b Fq(.)0 2458 y Fl(set_pubkey\()p
-Fc(pkey)e Fl(\))208 2557 y Fq(Set)28 b(the)f(public)h(k)n(ey)f(of)h
-(the)g(certi\034cate)f(to)g Fc(pkey)7 b Fq(.)0 2704 y
-Fl(set_serial_numbe)o(r\()o Fc(serialno)e Fl(\))208 2804
+3884 y(and)27 b(false)g(otherwise.)0 4031 y Fl(set_issuer\()p
+Fc(issuer)9 b Fl(\))208 4130 y Fq(Set)28 b(the)f(issuer)g(of)h(the)g
+(certi\034cate)f(to)g Fc(issuer)9 b Fq(.)0 4277 y Fl(set_pubkey\()p
+Fc(pkey)e Fl(\))208 4377 y Fq(Set)28 b(the)f(public)h(k)n(ey)f(of)h
+(the)g(certi\034cate)f(to)g Fc(pkey)7 b Fq(.)0 4524 y
+Fl(set_serial_numbe)o(r\()o Fc(serialno)e Fl(\))208 4623
y Fq(Set)28 b(the)f(serial)g(n)n(um)n(b)r(er)g(of)h(the)g
-(certi\034cate)f(to)g Fc(serialno)5 b Fq(.)0 2951 y Fl(set_subject\()p
-Fc(subje)l(ct)j Fl(\))208 3050 y Fq(Set)28 b(the)f(sub)5
+(certi\034cate)f(to)g Fc(serialno)5 b Fq(.)0 4770 y Fl(set_subject\()p
+Fc(subje)l(ct)j Fl(\))208 4870 y Fq(Set)28 b(the)f(sub)5
b(ject)28 b(of)g(the)g(certi\034cate)f(to)g Fc(subje)l(ct)8
-b Fq(.)0 3197 y Fl(set_version\()p Fc(version)e Fl(\))208
-3297 y Fq(Set)28 b(the)f(certi\034cate)g(v)n(ersion)f(to)i
-Fc(version)6 b Fq(.)0 3444 y Fl(sign\()p Fc(pkey,)29
-b(digest)8 b Fl(\))208 3543 y Fq(Sign)22 b(the)h(certi\034cate,)f
+b Fq(.)0 5017 y Fl(set_version\()p Fc(version)e Fl(\))208
+5116 y Fq(Set)28 b(the)f(certi\034cate)g(v)n(ersion)f(to)i
+Fc(version)6 b Fq(.)0 5263 y Fl(sign\()p Fc(pkey,)29
+b(digest)8 b Fl(\))208 5363 y Fq(Sign)22 b(the)h(certi\034cate,)f
(using)g(the)h(k)n(ey)g Fc(pkey)31 b Fq(and)22 b(the)h(message)e
(digest)h(algorithm)f(iden)n(ti\034ed)i(b)n(y)f(the)h(string)f
-Fc(digest)8 b Fq(.)0 3690 y Fl(subject_name_has)o(h\()o(\))208
-3790 y Fq(Return)27 b(the)h(hash)f(of)h(the)g(certi\034cate)f(sub)5
-b(ject.)0 3937 y Fl(digest\()p Fc(digest_name)h Fl(\))208
-4036 y Fq(Return)38 b(a)f(digest)h(of)g(the)g(certi\034cate,)i(using)e
+Fc(digest)8 b Fq(.)p 0 5549 3901 4 v 0 5649 a Ff(6)2239
+b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f(interface)h(to)f(Op)r
+(enSSL)p eop end
+%%Page: 7 7
+TeXDict begin 7 6 bop 0 83 a Fl(subject_name_has)o(h\()o(\))208
+183 y Fq(Return)27 b(the)h(hash)f(of)h(the)g(certi\034cate)f(sub)5
+b(ject.)0 330 y Fl(digest\()p Fc(digest_name)h Fl(\))208
+429 y Fq(Return)38 b(a)f(digest)h(of)g(the)g(certi\034cate,)i(using)e
(the)g Fc(digest_name)45 b Fq(metho)r(d.)69 b Fc(digest_name)45
-b Fq(m)n(ust)38 b(b)r(e)g(a)g(string)208 4136 y(describing)28
+b Fq(m)n(ust)38 b(b)r(e)g(a)g(string)208 529 y(describing)28
b(a)i(digest)f(algorithm)f(supp)r(orted)i(b)n(y)f(Op)r(enSSL)h(\(b)n(y)
g(EVP_get_digestb)n(yname,)f(sp)r(eci\034cally\).)43
-b(F)-7 b(or)208 4236 y(example,)27 b Fl("md5")e Fq(or)i
-Fl("sha1")p Fq(.)0 4382 y Fl(add_extensions\()p Fc(ex)o(tensions)7
-b Fl(\))208 4482 y Fq(A)n(dd)27 b(the)h(extensions)f(in)h(the)g
+b(F)-7 b(or)208 628 y(example,)27 b Fl("md5")e Fq(or)i
+Fl("sha1")p Fq(.)0 775 y Fl(add_extensions\()p Fc(ex)o(tensions)7
+b Fl(\))208 875 y Fq(A)n(dd)27 b(the)h(extensions)f(in)h(the)g
(sequence)f Fc(extensions)34 b Fq(to)27 b(the)h(certi\034cate.)0
-4745 y Ff(X509Name)e(objects)0 4946 y Fq(X509Name)g(ob)5
+1138 y Ff(X509Name)e(objects)0 1338 y Fq(X509Name)g(ob)5
b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r(ds:)0
-5092 y Fl(hash\(\))208 5192 y Fq(Return)e(an)g(in)n(teger)f(giving)g
+1485 y Fl(hash\(\))208 1585 y Fq(Return)e(an)g(in)n(teger)f(giving)g
(the)i(\034rst)f(four)g(b)n(ytes)f(of)h(the)h(MD5)f(digest)g(of)g(the)h
-(DER)g(represen)n(tation)e(of)h(the)g(name.)0 5339 y
-Fl(der\(\))p 0 5549 3901 4 v 0 5649 a Ff(6)2239 b(3)83
-b Fl(OpenSSL)24 b Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p
-eop end
-%%Page: 7 7
-TeXDict begin 7 6 bop 208 83 a Fq(Return)27 b(a)g(string)g(giving)g
-(the)h(DER)h(represen)n(tation)c(of)j(the)g(name.)0 230
-y Fl(get_components\(\))208 330 y Fq(Return)f(a)g(list)h(of)g(t)n(w)n
-(o-tuples)e(of)i(strings)e(giving)h(the)h(comp)r(onen)n(ts)f(of)h(the)g
-(name.)0 476 y(X509Name)e(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n
-(wing)e(mem)n(b)r(ers:)0 623 y Fl(countryName)208 723
-y Fq(The)h(coun)n(try)g(of)g(the)h(en)n(tit)n(y)-7 b(.)37
-b Fl(C)27 b Fq(ma)n(y)g(b)r(e)h(used)g(as)f(an)g(alias)f(for)h
-Fl(countryName)p Fq(.)0 870 y Fl(stateOrProvinceN)o(am)o(e)208
-969 y Fq(The)g(state)h(or)e(pro)n(vince)g(of)i(the)g(en)n(tit)n(y)-7
-b(.)37 b Fl(ST)27 b Fq(ma)n(y)f(b)r(e)i(used)g(as)f(an)g(alias)g(for)g
-Fl(stateOrProvince)o(Na)o(me)p Fq(\267)0 1116 y Fl(localityName)208
-1216 y Fq(The)g(lo)r(calit)n(y)g(of)h(the)f(en)n(tit)n(y)-7
+(DER)g(represen)n(tation)e(of)h(the)g(name.)0 1732 y
+Fl(der\(\))208 1831 y Fq(Return)j(a)g(string)g(giving)g(the)h(DER)h
+(represen)n(tation)c(of)j(the)g(name.)0 1978 y Fl(get_components\(\))
+208 2078 y Fq(Return)f(a)g(list)h(of)g(t)n(w)n(o-tuples)e(of)i(strings)
+e(giving)h(the)h(comp)r(onen)n(ts)f(of)h(the)g(name.)0
+2225 y(X509Name)e(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e
+(mem)n(b)r(ers:)0 2372 y Fl(countryName)208 2471 y Fq(The)h(coun)n(try)
+g(of)g(the)h(en)n(tit)n(y)-7 b(.)37 b Fl(C)27 b Fq(ma)n(y)g(b)r(e)h
+(used)g(as)f(an)g(alias)f(for)h Fl(countryName)p Fq(.)0
+2618 y Fl(stateOrProvinceN)o(am)o(e)208 2718 y Fq(The)g(state)h(or)e
+(pro)n(vince)g(of)i(the)g(en)n(tit)n(y)-7 b(.)37 b Fl(ST)27
+b Fq(ma)n(y)f(b)r(e)i(used)g(as)f(an)g(alias)g(for)g
+Fl(stateOrProvince)o(Na)o(me)p Fq(\267)0 2865 y Fl(localityName)208
+2964 y Fq(The)g(lo)r(calit)n(y)g(of)h(the)f(en)n(tit)n(y)-7
b(.)37 b Fl(L)28 b Fq(ma)n(y)e(b)r(e)i(used)g(as)f(an)g(alias)g(for)g
-Fl(localityName)p Fq(.)0 1363 y Fl(organizationName)208
-1462 y Fq(The)g(organization)e(name)j(of)f(the)h(en)n(tit)n(y)-7
+Fl(localityName)p Fq(.)0 3111 y Fl(organizationName)208
+3211 y Fq(The)g(organization)e(name)j(of)f(the)h(en)n(tit)n(y)-7
b(.)37 b Fl(O)27 b Fq(ma)n(y)g(b)r(e)h(used)g(as)e(an)i(alias)e(for)h
-Fl(organizationName)p Fq(.)0 1609 y Fl(organizationalUn)o(it)o(Nam)o(e)
-208 1709 y Fq(The)g(organizational)e(unit)j(of)g(the)g(en)n(tit)n(y)-7
+Fl(organizationName)p Fq(.)0 3358 y Fl(organizationalUn)o(it)o(Nam)o(e)
+208 3457 y Fq(The)g(organizational)e(unit)j(of)g(the)g(en)n(tit)n(y)-7
b(.)36 b Fl(OU)27 b Fq(ma)n(y)g(b)r(e)h(used)g(as)f(an)g(alias)f(for)h
-Fl(organizationalUni)o(tN)o(am)o(e)p Fq(.)0 1856 y Fl(commonName)208
-1955 y Fq(The)g(common)g(name)h(of)f(the)h(en)n(tit)n(y)-7
+Fl(organizationalUni)o(tN)o(am)o(e)p Fq(.)0 3604 y Fl(commonName)208
+3704 y Fq(The)g(common)g(name)h(of)f(the)h(en)n(tit)n(y)-7
b(.)37 b Fl(CN)27 b Fq(ma)n(y)f(b)r(e)i(used)g(as)f(an)g(alias)g(for)g
-Fl(commonName)p Fq(.)0 2102 y Fl(emailAddress)208 2202
+Fl(commonName)p Fq(.)0 3851 y Fl(emailAddress)208 3950
y Fq(The)g(e-mail)g(address)f(of)i(the)g(en)n(tit)n(y)-7
-b(.)0 2465 y Ff(X509Req)26 b(objects)0 2665 y Fq(X509Req)g(ob)5
+b(.)0 4213 y Ff(X509Req)26 b(objects)0 4414 y Fq(X509Req)g(ob)5
b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r(ds:)0
-2812 y Fl(get_pubkey\(\))208 2912 y Fq(Return)h(a)g(PKey)h(ob)5
+4561 y Fl(get_pubkey\(\))208 4660 y Fq(Return)h(a)g(PKey)h(ob)5
b(ject)27 b(represen)n(ting)f(the)i(public)g(k)n(ey)f(of)g(the)h
-(certi\034cate)f(request.)0 3059 y Fl(get_subject\(\))208
-3158 y Fq(Return)g(an)h(X509Name)e(ob)5 b(ject)27 b(represen)n(ting)f
+(certi\034cate)f(request.)0 4807 y Fl(get_subject\(\))208
+4907 y Fq(Return)g(an)h(X509Name)e(ob)5 b(ject)27 b(represen)n(ting)f
(the)i(sub)5 b(ject)28 b(of)f(the)h(certi\034cate.)0
-3305 y Fl(set_pubkey\()p Fc(pkey)7 b Fl(\))208 3405 y
+5054 y Fl(set_pubkey\()p Fc(pkey)7 b Fl(\))208 5153 y
Fq(Set)28 b(the)f(public)h(k)n(ey)f(of)h(the)g(certi\034cate)f(request)
-g(to)g Fc(pkey)7 b Fq(.)0 3552 y Fl(sign\()p Fc(pkey,)29
-b(digest)8 b Fl(\))208 3651 y Fq(Sign)36 b(the)g(certi\034cate)g
+g(to)g Fc(pkey)7 b Fq(.)0 5300 y Fl(sign\()p Fc(pkey,)29
+b(digest)8 b Fl(\))208 5400 y Fq(Sign)36 b(the)g(certi\034cate)g
(request,)h(using)f(the)g(k)n(ey)h Fc(pkey)45 b Fq(and)36
-b(the)g(message)f(digest)g(algorithm)g(iden)n(ti\034ed)i(b)n(y)f(the)
-208 3751 y(string)28 b Fc(digest)8 b Fq(.)0 3898 y Fl(verify\()p
-Fc(pkey)f Fl(\))208 3997 y Fq(V)-7 b(erify)27 b(a)g(certi\034cate)g
-(request)g(using)g(the)h(public)g(k)n(ey)g Fc(pkey)7
-b Fq(.)0 4144 y Fl(set_version\()p Fc(version)f Fl(\))208
-4244 y Fq(Set)28 b(the)f(v)n(ersion)f(\(RF)n(C)i(2459,)e(4.1.2.1\))g
-(of)i(the)g(certi\034cate)f(request)f(to)i Fc(version)6
-b Fq(.)0 4391 y Fl(get_version\(\))208 4490 y Fq(Get)28
-b(the)f(v)n(ersion)f(\(RF)n(C)i(2459,)e(4.1.2.1\))g(of)i(the)g
-(certi\034cate)f(request.)0 4753 y Ff(X509Sto)n(re)f(objects)0
-4954 y Fq(The)i(X509Store)d(ob)5 b(ject)28 b(has)f(curren)n(tly)f(just)
-i(one)g(metho)r(d:)0 5101 y Fl(add_cert\()p Fc(c)l(ert)8
-b Fl(\))208 5200 y Fq(A)n(dd)27 b(the)h(certi\034cate)f
-Fc(c)l(ert)36 b Fq(to)27 b(the)h(certi\034cate)f(store.)p
+b(the)g(message)f(digest)g(algorithm)g(iden)n(ti\034ed)i(b)n(y)f(the)p
0 5549 3901 4 v 0 5649 a Ff(3.1)82 b Fl(crypto)25 b Ff(\026)j(Generic)g
(cryptographic)e(mo)r(dule)2234 b(7)p eop end
%%Page: 8 8
-TeXDict begin 8 7 bop 0 83 a Ff(PKey)27 b(objects)0 283
-y Fq(The)h(PKey)f(ob)5 b(ject)27 b(has)g(the)h(follo)n(wing)f(metho)r
-(ds:)0 430 y Fl(bits\(\))208 530 y Fq(Return)g(the)h(n)n(um)n(b)r(er)f
-(of)h(bits)g(of)f(the)h(k)n(ey)-7 b(.)0 677 y Fl(generate_key\()p
-Fc(typ)l(e,)25 b(bits)7 b Fl(\))208 776 y Fq(Generate)22
+TeXDict begin 8 7 bop 208 83 a Fq(string)28 b Fc(digest)8
+b Fq(.)0 230 y Fl(verify\()p Fc(pkey)f Fl(\))208 330
+y Fq(V)-7 b(erify)27 b(a)g(certi\034cate)g(request)g(using)g(the)h
+(public)g(k)n(ey)g Fc(pkey)7 b Fq(.)0 476 y Fl(set_version\()p
+Fc(version)f Fl(\))208 576 y Fq(Set)28 b(the)f(v)n(ersion)f(\(RF)n(C)i
+(2459,)e(4.1.2.1\))g(of)i(the)g(certi\034cate)f(request)f(to)i
+Fc(version)6 b Fq(.)0 723 y Fl(get_version\(\))208 823
+y Fq(Get)28 b(the)f(v)n(ersion)f(\(RF)n(C)i(2459,)e(4.1.2.1\))g(of)i
+(the)g(certi\034cate)f(request.)0 1082 y Ff(X509Sto)n(re)f(objects)0
+1283 y Fq(The)i(X509Store)d(ob)5 b(ject)28 b(has)f(curren)n(tly)f(just)
+i(one)g(metho)r(d:)0 1429 y Fl(add_cert\()p Fc(c)l(ert)8
+b Fl(\))208 1529 y Fq(A)n(dd)27 b(the)h(certi\034cate)f
+Fc(c)l(ert)36 b Fq(to)27 b(the)h(certi\034cate)f(store.)0
+1789 y Ff(PKey)g(objects)0 1989 y Fq(The)h(PKey)f(ob)5
+b(ject)27 b(has)g(the)h(follo)n(wing)f(metho)r(ds:)0
+2136 y Fl(bits\(\))208 2236 y Fq(Return)g(the)h(n)n(um)n(b)r(er)f(of)h
+(bits)g(of)f(the)h(k)n(ey)-7 b(.)0 2383 y Fl(generate_key\()p
+Fc(typ)l(e,)25 b(bits)7 b Fl(\))208 2482 y Fq(Generate)22
b(a)h(public/priv)-5 b(ate)23 b(k)n(ey)f(pair)h(of)g(the)h(t)n(yp)r(e)f
Fc(typ)l(e)30 b Fq(\(one)23 b(of)30 b Fl(TYPE_RSA)19
b Fq(and)24 b Fl(TYPE_DSA)p Fq(\))c(with)j(the)h(size)f
-Fc(bits)7 b Fq(.)0 923 y Fl(type\(\))208 1023 y Fq(Return)27
-b(the)h(t)n(yp)r(e)g(of)f(the)h(k)n(ey)-7 b(.)0 1282
-y Ff(PK)n(CS7)27 b(objects)0 1483 y Fq(PK)n(CS7)g(ob)5
+Fc(bits)7 b Fq(.)0 2629 y Fl(type\(\))208 2729 y Fq(Return)27
+b(the)h(t)n(yp)r(e)g(of)f(the)h(k)n(ey)-7 b(.)0 2988
+y Ff(PK)n(CS7)27 b(objects)0 3189 y Fq(PK)n(CS7)g(ob)5
b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)f(metho)r(ds:)0
-1630 y Fl(type_is_signed\(\))208 1729 y Fq(FIXME)0 1876
-y Fl(type_is_envelope)o(d\()o(\))208 1976 y Fq(FIXME)0
-2123 y Fl(type_is_signedAn)o(dE)o(nve)o(lo)o(pe)o(d\(\))208
-2222 y Fq(FIXME)0 2369 y Fl(type_is_data\(\))208 2469
-y Fq(FIXME)0 2616 y Fl(get_type_name\(\))208 2715 y Fq(Get)h(the)f(t)n
-(yp)r(e)h(name)g(of)f(the)h(PK)n(CS7.)0 2975 y Ff(PK)n(CS12)e(objects)0
-3175 y Fq(PK)n(CS12)g(ob)5 b(jects)28 b(ha)n(v)n(e)e(the)i(follo)n
-(wing)e(metho)r(ds:)0 3336 y Fl(export\()p Fb([)p Fc(p)l(assphr)l
+3336 y Fl(type_is_signed\(\))208 3435 y Fq(FIXME)0 3582
+y Fl(type_is_envelope)o(d\()o(\))208 3682 y Fq(FIXME)0
+3829 y Fl(type_is_signedAn)o(dE)o(nve)o(lo)o(pe)o(d\(\))208
+3928 y Fq(FIXME)0 4075 y Fl(type_is_data\(\))208 4175
+y Fq(FIXME)0 4322 y Fl(get_type_name\(\))208 4421 y Fq(Get)h(the)f(t)n
+(yp)r(e)h(name)g(of)f(the)h(PK)n(CS7.)0 4681 y Ff(PK)n(CS12)e(objects)0
+4881 y Fq(PK)n(CS12)g(ob)5 b(jects)28 b(ha)n(v)n(e)e(the)i(follo)n
+(wing)e(metho)r(ds:)0 5043 y Fl(export\()p Fb([)p Fc(p)l(assphr)l
(ase=None)16 b Fb(][)p Fc(,)29 b(iter=2048)c Fb(][)p
-Fc(,)k(maciter=1)24 b Fb(])p Fl(\))208 3436 y Fq(Returns)j(a)g(PK)n
-(CS12)g(ob)5 b(ject)27 b(as)g(a)g(string.)208 3564 y(The)g(optional)g
+Fc(,)k(maciter=1)24 b Fb(])p Fl(\))208 5142 y Fq(Returns)j(a)g(PK)n
+(CS12)g(ob)5 b(ject)27 b(as)g(a)g(string.)208 5271 y(The)g(optional)g
Fc(p)l(assphr)l(ase)35 b Fq(m)n(ust)28 b(b)r(e)g(a)f(string)g(not)h(a)f
-(callbac)n(k.)208 3693 y(See)g(also)g(the)h(man)f(page)g(for)g(the)h(C)
-f(function)h Fl(PKCS12_create)p Fq(.)0 3840 y Fl(get_ca_certifica)o(te)
-o(s\(\))208 3939 y Fq(Return)i(CA)h(certi\034cates)f(within)h(the)g(PK)
-n(CS12)f(ob)5 b(ject)30 b(as)g(a)h(tuple.)46 b(Returns)31
-b Fl(None)e Fq(if)i(no)f(CA)h(certi\034cates)f(are)208
-4039 y(presen)n(t.)0 4186 y Fl(get_certificate\()o(\))208
-4286 y Fq(Return)d(certi\034cate)g(p)r(ortion)g(of)h(the)g(PK)n(CS12)e
-(structure.)0 4432 y Fl(get_friendlyname)o(\(\))208 4532
-y Fq(Return)h(friendlyName)h(p)r(ortion)f(of)g(the)h(PK)n(CS12)f
-(structure.)0 4679 y Fl(get_privatekey\(\))208 4778 y
-Fq(Return)g(priv)-5 b(ate)27 b(k)n(ey)g(p)r(ortion)g(of)h(the)g(PK)n
-(CS12)e(structure)0 4925 y Fl(set_ca_certifica)o(te)o(s\()p
-Fc(c)-5 b(ac)l(erts)7 b Fl(\))208 5025 y Fq(Replace)27
-b(or)f(set)i(the)g(CA)g(certi\034cates)e(within)j(the)f(PK)n(CS12)e(ob)
-5 b(ject)27 b(with)h(the)g(sequence)f Fc(c)l(ac)l(erts)7
-b Fq(.)208 5154 y(Set)28 b Fc(c)l(ac)l(erts)34 b Fq(to)27
-b Fl(None)f Fq(to)i(remo)n(v)n(e)e(all)h(CA)h(certi\034cates.)0
-5300 y Fl(set_certificate\()o Fc(c)l(ert)8 b Fl(\))208
-5400 y Fq(Replace)27 b(or)f(set)i(the)g(certi\034cate)f(p)r(ortion)g
-(of)g(the)h(PK)n(CS12)f(structure.)p 0 5549 3901 4 v
-0 5649 a Ff(8)2239 b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f
+(callbac)n(k.)208 5400 y(See)g(also)g(the)h(man)f(page)g(for)g(the)h(C)
+f(function)h Fl(PKCS12_create)p Fq(.)p 0 5549 3901 4
+v 0 5649 a Ff(8)2239 b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f
(interface)h(to)f(Op)r(enSSL)p eop end
%%Page: 9 9
-TeXDict begin 9 8 bop 0 83 a Fl(set_friendlyname)o(\()p
-Fc(n)o(ame)6 b Fl(\))208 183 y Fq(Replace)27 b(or)f(set)i(the)g
+TeXDict begin 9 8 bop 0 83 a Fl(get_ca_certifica)o(te)o(s\(\))208
+183 y Fq(Return)30 b(CA)h(certi\034cates)f(within)h(the)g(PK)n(CS12)f
+(ob)5 b(ject)30 b(as)g(a)h(tuple.)46 b(Returns)31 b Fl(None)e
+Fq(if)i(no)f(CA)h(certi\034cates)f(are)208 282 y(presen)n(t.)0
+429 y Fl(get_certificate\()o(\))208 529 y Fq(Return)d(certi\034cate)g
+(p)r(ortion)g(of)h(the)g(PK)n(CS12)e(structure.)0 676
+y Fl(get_friendlyname)o(\(\))208 775 y Fq(Return)h(friendlyName)h(p)r
+(ortion)f(of)g(the)h(PK)n(CS12)f(structure.)0 922 y Fl
+(get_privatekey\(\))208 1022 y Fq(Return)g(priv)-5 b(ate)27
+b(k)n(ey)g(p)r(ortion)g(of)h(the)g(PK)n(CS12)e(structure)0
+1169 y Fl(set_ca_certifica)o(te)o(s\()p Fc(c)-5 b(ac)l(erts)7
+b Fl(\))208 1268 y Fq(Replace)27 b(or)f(set)i(the)g(CA)g
+(certi\034cates)e(within)j(the)f(PK)n(CS12)e(ob)5 b(ject)27
+b(with)h(the)g(sequence)f Fc(c)l(ac)l(erts)7 b Fq(.)208
+1401 y(Set)28 b Fc(c)l(ac)l(erts)34 b Fq(to)27 b Fl(None)f
+Fq(to)i(remo)n(v)n(e)e(all)h(CA)h(certi\034cates.)0 1548
+y Fl(set_certificate\()o Fc(c)l(ert)8 b Fl(\))208 1648
+y Fq(Replace)27 b(or)f(set)i(the)g(certi\034cate)f(p)r(ortion)g(of)g
+(the)h(PK)n(CS12)f(structure.)0 1794 y Fl(set_friendlyname)o(\()p
+Fc(n)o(ame)6 b Fl(\))208 1894 y Fq(Replace)27 b(or)f(set)i(the)g
(friendlyName)f(p)r(ortion)g(of)h(the)g(PK)n(CS12)e(structure.)0
-330 y Fl(set_privatekey\()p Fc(pkey)7 b Fl(\))208 429
+2041 y Fl(set_privatekey\()p Fc(pkey)7 b Fl(\))208 2141
y Fq(Replace)27 b(or)f(set)i(priv)-5 b(ate)27 b(k)n(ey)g(p)r(ortion)g
-(of)h(the)g(PK)n(CS12)e(structure)0 692 y Ff(X509Extension)f(objects)0
-893 y Fq(X509Extension)h(ob)5 b(jects)27 b(ha)n(v)n(e)g(sev)n(eral)f
-(metho)r(ds:)0 1040 y Fl(get_critical\(\))208 1139 y
+(of)h(the)g(PK)n(CS12)e(structure)0 2404 y Ff(X509Extension)f(objects)0
+2604 y Fq(X509Extension)h(ob)5 b(jects)27 b(ha)n(v)n(e)g(sev)n(eral)f
+(metho)r(ds:)0 2751 y Fl(get_critical\(\))208 2851 y
Fq(Return)h(the)h(critical)f(\034eld)h(of)f(the)h(extension)f(ob)5
-b(ject.)0 1286 y Fl(get_short_name\(\))208 1386 y Fq(Return)27
+b(ject.)0 2997 y Fl(get_short_name\(\))208 3097 y Fq(Return)27
b(the)h(short)f(t)n(yp)r(e)h(name)f(of)h(the)g(extension)f(ob)5
-b(ject.)0 1649 y Ff(Netscap)r(eSPKI)27 b(objects)0 1849
+b(ject.)0 3360 y Ff(Netscap)r(eSPKI)27 b(objects)0 3561
y Fq(Netscap)r(eSPKI)h(ob)5 b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n
-(wing)e(metho)r(ds:)0 1996 y Fl(b64_encode\(\))208 2096
+(wing)e(metho)r(ds:)0 3707 y Fl(b64_encode\(\))208 3807
y Fq(Return)h(a)g(base64-enco)r(ded)f(string)h(represen)n(tation)e(of)j
-(the)g(ob)5 b(ject.)0 2242 y Fl(get_pubkey\(\))208 2342
+(the)g(ob)5 b(ject.)0 3954 y Fl(get_pubkey\(\))208 4054
y Fq(Return)27 b(the)h(public)g(k)n(ey)f(of)h(ob)5 b(ject.)0
-2489 y Fl(set_pubkey\()p Fc(key)i Fl(\))208 2589 y Fq(Set)28
+4200 y Fl(set_pubkey\()p Fc(key)i Fl(\))208 4300 y Fq(Set)28
b(the)f(public)h(k)n(ey)f(of)h(the)g(ob)5 b(ject)27 b(to)h
-Fc(key)7 b Fq(.)0 2735 y Fl(sign\()p Fc(key,)29 b(digest_name)6
-b Fl(\))208 2835 y Fq(Sign)30 b(the)h(Netscap)r(eSPKI)f(ob)5
+Fc(key)7 b Fq(.)0 4447 y Fl(sign\()p Fc(key,)29 b(digest_name)6
+b Fl(\))208 4547 y Fq(Sign)30 b(the)h(Netscap)r(eSPKI)f(ob)5
b(ject)30 b(using)g(the)h(giv)n(en)f Fc(key)38 b Fq(and)31
b Fc(digest_name)6 b Fq(.)46 b Fc(digest_name)37 b Fq(m)n(ust)31
-b(b)r(e)g(a)f(string)208 2935 y(describing)e(a)i(digest)f(algorithm)f
+b(b)r(e)g(a)f(string)208 4646 y(describing)e(a)i(digest)f(algorithm)f
(supp)r(orted)i(b)n(y)f(Op)r(enSSL)h(\(b)n(y)g(EVP_get_digestb)n
-(yname,)f(sp)r(eci\034cally\).)43 b(F)-7 b(or)208 3034
+(yname,)f(sp)r(eci\034cally\).)43 b(F)-7 b(or)208 4746
y(example,)27 b Fl("md5")e Fq(or)i Fl("sha1")p Fq(.)0
-3181 y Fl(verify\()p Fc(key)7 b Fl(\))208 3281 y Fq(V)-7
+4893 y Fl(verify\()p Fc(key)7 b Fl(\))208 4992 y Fq(V)-7
b(erify)27 b(the)h(Netscap)r(eSPKI)g(ob)5 b(ject)27 b(using)g(the)h
-(giv)n(en)f Fc(key)7 b Fq(.)0 3560 y Fj(3.2)97 b Fd(rand)34
-b Fj(\026)e(An)h(interface)g(to)g(the)g(Op)s(enSSL)f(pseudo)h(random)g
-(numb)s(er)g(generato)m(r)0 3761 y Fq(This)28 b(mo)r(dule)f(handles)h
-(the)f(Op)r(enSSL)h(pseudo)f(random)g(n)n(um)n(b)r(er)g(generator)f
-(\(PRNG\))j(and)e(declares)f(the)i(follo)n(wing:)0 3908
-y Fl(add\()p Fc(string,)g(entr)l(opy)7 b Fl(\))208 4007
-y Fq(Mix)22 b(b)n(ytes)g(from)g Fc(string)30 b Fq(in)n(to)22
-b(the)h(PRNG)h(state.)35 b(The)22 b Fc(entr)l(opy)30
-b Fq(argumen)n(t)22 b(is)g(\(the)h(lo)n(w)n(er)e(b)r(ound)i(of)6
-b(\))23 b(an)f(estimate)208 4107 y(of)f(ho)n(w)g(m)n(uc)n(h)h
-(randomness)e(is)h(con)n(tained)g(in)h Fc(string)7 b
-Fq(,)23 b(measured)e(in)h(b)n(ytes.)34 b(F)-7 b(or)21
-b(more)g(information,)h(see)g(e.g.)34 b(RF)n(C)208 4207
-y(1750.)0 4354 y Fl(bytes\()p Fc(num_bytes)7 b Fl(\))208
-4453 y Fq(Get)28 b(some)e(random)h(b)n(ytes)g(from)g(the)h(PRNG)h(as)e
-(a)g(string.)208 4586 y(This)g(is)h(a)f(wrapp)r(er)f(for)h(the)h(C)g
-(function)g Fl(RAND_bytes)p Fq(.)0 4733 y Fl(cleanup\(\))208
-4833 y Fq(Erase)e(the)i(memory)f(used)h(b)n(y)f(the)h(PRNG.)208
-4965 y(This)f(is)h(a)f(wrapp)r(er)f(for)h(the)h(C)g(function)g
-Fl(RAND_cleanup)p Fq(.)0 5129 y Fl(egd\()p Fc(p)l(ath)6
-b Fb([)p Fc(,)29 b(bytes)19 b Fb(])p Fl(\))208 5229 y
-Fq(Query)29 b(the)j(En)n(trop)n(y)e(Gathering)g(Daemon)1629
-5198 y Fk(2)1697 5229 y Fq(on)h(so)r(c)n(k)n(et)f Fc(p)l(ath)38
-b Fq(for)30 b Fc(bytes)38 b Fq(b)n(ytes)31 b(of)g(random)f(data)g(and)h
-(and)g(uses)p 0 5298 1560 4 v 92 5352 a Fh(2)127 5375
-y Fg(See)24 b Fp(http://www.lotha)n(r.com/tech/crypto/)p
-0 5549 3901 4 v 0 5649 a Ff(3.2)82 b Fl(rand)26 b Ff(\026)i(An)g
-(interface)f(to)g(the)h(Op)r(enSSL)g(pseudo)e(random)h(numb)r(er)h
-(generato)n(r)1148 b(9)p eop end
+(giv)n(en)f Fc(key)7 b Fq(.)p 0 5549 3901 4 v 0 5649
+a Ff(3.1)82 b Fl(crypto)25 b Ff(\026)j(Generic)g(cryptographic)e(mo)r
+(dule)2234 b(9)p eop end
%%Page: 10 10
-TeXDict begin 10 9 bop 208 83 a Fl(add)26 b Fq(to)h(seed)h(the)g(PRNG.)
-g(The)g(default)g(v)-5 b(alue)27 b(of)34 b Fc(bytes)h
-Fq(is)27 b(255.)0 244 y Fl(load_file\()p Fc(p)l(ath)6
-b Fb([)p Fc(,)26 b(bytes)19 b Fb(])p Fl(\))208 344 y
-Fq(Read)29 b Fc(bytes)38 b Fq(b)n(ytes)30 b(\(or)f(all)h(of)g(it,)i(if)
-37 b Fc(bytes)g Fq(is)31 b(negativ)n(e\))e(of)h(data)g(from)g(the)g
-(\034le)h Fc(p)l(ath)37 b Fq(to)30 b(seed)g(the)h(PRNG.)g(The)208
-444 y(default)d(v)-5 b(alue)27 b(of)34 b Fc(bytes)h Fq(is)27
-b(-1.)0 590 y Fl(screen\(\))208 690 y Fq(A)n(dd)g(the)h(curren)n(t)f
+TeXDict begin 10 9 bop 0 83 a Ff(CRL)27 b(objects)0 283
+y Fq(CRL)h(ob)5 b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)e(metho)r
+(ds:)0 430 y Fl(add_revoked\()p Fc(r)l(evoke)l(d)9 b
+Fl(\))208 530 y Fq(A)n(dd)27 b(a)h(Rev)n(ok)n(ed)e(ob)5
+b(ject)27 b(to)g(the)h(CRL,)g(b)n(y)f(v)-5 b(alue)28
+b(not)f(reference.)0 691 y Fl(export\()p Fc(c)l(ert,)g(key)7
+b Fb([)p Fc(,)31 b(typ)l(e=FILETYPE_PEM)c Fb(][)p Fc(,)i(days=100)c
+Fb(])p Fl(\))208 791 y Fq(Use)i Fc(c)l(ert)36 b Fq(and)28
+b Fc(key)36 b Fq(to)27 b(sign)h(the)g(CRL)g(and)g(return)f(the)h(CRL)g
+(as)g(a)f(string.)37 b Fc(days)f Fq(is)28 b(the)g(n)n(um)n(b)r(er)g(of)
+g(da)n(ys)e(b)r(efore)208 890 y(the)i(next)f(CRL)h(is)f(due.)0
+1037 y Fl(get_revoked\(\))208 1137 y Fq(Return)g(a)g(tuple)i(of)e(Rev)n
+(ok)n(ed)f(ob)5 b(jects,)27 b(b)n(y)h(v)-5 b(alue)27
+b(not)h(reference.)0 1400 y Ff(Revok)n(ed)e(objects)0
+1600 y Fq(Rev)n(ok)n(ed)g(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n
+(wing)e(metho)r(ds:)0 1747 y Fl(all_reasons\(\))208 1847
+y Fq(Return)h(a)g(list)h(of)g(all)f(supp)r(orted)g(reasons.)0
+1994 y Fl(get_reason\(\))208 2093 y Fq(Return)g(the)h(rev)n(o)r(cation)
+e(reason)g(as)h(a)g(str.)36 b(Can)28 b(b)r(e)g(None,)f(whic)n(h)h
+(di\033ers)f(from)g("Unsp)r(eci\034ed".)0 2240 y Fl(get_rev_date\(\))
+208 2340 y Fq(Return)g(the)h(rev)n(o)r(cation)e(date)h(as)g(a)g(str.)37
+b(The)27 b(string)g(is)h(formatted)f(as)g(an)g(ASN1)h(GENERALIZEDTIME.)
+0 2487 y Fl(get_serial\(\))208 2586 y Fq(Return)f(a)g(str)h(con)n
+(taining)e(a)h(hex)h(n)n(um)n(b)r(er)f(of)h(the)f(serial)g(of)g(the)h
+(rev)n(ok)n(ed)e(certi\034cate.)0 2733 y Fl(set_reason\()p
+Fc(r)l(e)l(ason)6 b Fl(\))208 2833 y Fq(Set)32 b(the)g(rev)n(o)r
+(cation)e(reason.)47 b Fc(r)l(e)l(ason)39 b Fq(m)n(ust)32
+b(b)r(e)g(None)f(or)g(a)g(string,)i(but)f(the)g(v)-5
+b(alues)31 b(are)g(limited.)50 b(Spaces)31 b(and)208
+2933 y(case)26 b(are)h(ignored.)35 b(See)28 b Fl(all_reasons)p
+Fq(.)0 3079 y Fl(set_rev_date\()p Fc(date)6 b Fl(\))208
+3179 y Fq(Set)28 b(the)f(rev)n(o)r(cation)f(date.)37
+b(The)28 b(string)e(is)i(formatted)f(as)g(an)g(ASN1)h(GENERALIZEDTIME.)
+0 3326 y Fl(set_serial\()p Fc(serial)9 b Fl(\))208 3426
+y Fc(serial)37 b Fq(is)27 b(a)h(string)f(con)n(taining)f(a)h(hex)h(n)n
+(um)n(b)r(er)f(of)g(the)h(serial)f(of)g(the)h(rev)n(ok)n(ed)e
+(certi\034cate.)0 3705 y Fj(3.2)97 b Fd(rand)34 b Fj(\026)e(An)h
+(interface)g(to)g(the)g(Op)s(enSSL)f(pseudo)h(random)g(numb)s(er)g
+(generato)m(r)0 3906 y Fq(This)28 b(mo)r(dule)f(handles)h(the)f(Op)r
+(enSSL)h(pseudo)f(random)g(n)n(um)n(b)r(er)g(generator)f(\(PRNG\))j
+(and)e(declares)f(the)i(follo)n(wing:)0 4053 y Fl(add\()p
+Fc(string,)g(entr)l(opy)7 b Fl(\))208 4152 y Fq(Mix)22
+b(b)n(ytes)g(from)g Fc(string)30 b Fq(in)n(to)22 b(the)h(PRNG)h(state.)
+35 b(The)22 b Fc(entr)l(opy)30 b Fq(argumen)n(t)22 b(is)g(\(the)h(lo)n
+(w)n(er)e(b)r(ound)i(of)6 b(\))23 b(an)f(estimate)208
+4252 y(of)f(ho)n(w)g(m)n(uc)n(h)h(randomness)e(is)h(con)n(tained)g(in)h
+Fc(string)7 b Fq(,)23 b(measured)e(in)h(b)n(ytes.)34
+b(F)-7 b(or)21 b(more)g(information,)h(see)g(e.g.)34
+b(RF)n(C)208 4351 y(1750.)0 4498 y Fl(bytes\()p Fc(num_bytes)7
+b Fl(\))208 4598 y Fq(Get)28 b(some)e(random)h(b)n(ytes)g(from)g(the)h
+(PRNG)h(as)e(a)g(string.)208 4731 y(This)g(is)h(a)f(wrapp)r(er)f(for)h
+(the)h(C)g(function)g Fl(RAND_bytes)p Fq(.)0 4878 y Fl(cleanup\(\))208
+4977 y Fq(Erase)e(the)i(memory)f(used)h(b)n(y)f(the)h(PRNG.)208
+5110 y(This)f(is)h(a)f(wrapp)r(er)f(for)h(the)h(C)g(function)g
+Fl(RAND_cleanup)p Fq(.)0 5274 y Fl(egd\()p Fc(p)l(ath)6
+b Fb([)p Fc(,)29 b(bytes)19 b Fb(])p Fl(\))p 0 5549 3901
+4 v 0 5649 a Ff(10)2197 b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f
+(interface)h(to)f(Op)r(enSSL)p eop end
+%%Page: 11 11
+TeXDict begin 11 10 bop 208 83 a Fq(Query)29 b(the)j(En)n(trop)n(y)e
+(Gathering)g(Daemon)1629 53 y Fk(2)1697 83 y Fq(on)h(so)r(c)n(k)n(et)f
+Fc(p)l(ath)38 b Fq(for)30 b Fc(bytes)38 b Fq(b)n(ytes)31
+b(of)g(random)f(data)g(and)h(and)g(uses)208 183 y Fl(add)26
+b Fq(to)h(seed)h(the)g(PRNG.)g(The)g(default)g(v)-5 b(alue)27
+b(of)34 b Fc(bytes)h Fq(is)27 b(255.)0 344 y Fl(load_file\()p
+Fc(p)l(ath)6 b Fb([)p Fc(,)26 b(bytes)19 b Fb(])p Fl(\))208
+444 y Fq(Read)29 b Fc(bytes)38 b Fq(b)n(ytes)30 b(\(or)f(all)h(of)g
+(it,)i(if)37 b Fc(bytes)g Fq(is)31 b(negativ)n(e\))e(of)h(data)g(from)g
+(the)g(\034le)h Fc(p)l(ath)37 b Fq(to)30 b(seed)g(the)h(PRNG.)g(The)208
+543 y(default)d(v)-5 b(alue)27 b(of)34 b Fc(bytes)h Fq(is)27
+b(-1.)0 690 y Fl(screen\(\))208 790 y Fq(A)n(dd)g(the)h(curren)n(t)f
(con)n(ten)n(ts)g(of)g(the)h(screen)f(to)g(the)h(PRNG)h(state.)37
-b(A)-9 b(v)k(ailabilit)n(y:)36 b(Windo)n(ws.)0 837 y
-Fl(seed\()p Fc(string)7 b Fl(\))208 937 y Fq(This)27
+b(A)-9 b(v)k(ailabilit)n(y:)36 b(Windo)n(ws.)0 937 y
+Fl(seed\()p Fc(string)7 b Fl(\))208 1036 y Fq(This)27
b(is)h(equiv)-5 b(alen)n(t)27 b(to)g(calling)h Fl(add)f
Fq(with)h Fc(entr)l(opy)35 b Fq(as)27 b(the)h(length)f(of)h(the)g
-(string.)0 1083 y Fl(status\(\))208 1183 y Fq(Returns)f(true)g(if)i
+(string.)0 1183 y Fl(status\(\))208 1283 y Fq(Returns)f(true)g(if)i
(the)e(PRNG)i(has)e(b)r(een)h(seeded)f(with)h(enough)f(data,)g(and)h
-(false)f(otherwise.)0 1330 y Fl(write_file\()p Fc(p)l(ath)6
-b Fl(\))208 1430 y Fq(W)-7 b(rite)34 b(a)g(n)n(um)n(b)r(er)g(of)h
+(false)f(otherwise.)0 1430 y Fl(write_file\()p Fc(p)l(ath)6
+b Fl(\))208 1529 y Fq(W)-7 b(rite)34 b(a)g(n)n(um)n(b)r(er)g(of)h
(random)e(b)n(ytes)h(\(curren)n(tly)g(1024\))f(to)h(the)h(\034le)f
Fc(p)l(ath)6 b Fq(.)59 b(This)34 b(\034le)h(can)f(then)g(b)r(e)h(used)g
-(with)208 1529 y Fl(load_file)23 b Fq(to)28 b(seed)f(the)h(PRNG)h
-(again.)0 1676 y Fm(exception)j Fl(Error)208 1776 y Fq(If)i(the)g
+(with)208 1629 y Fl(load_file)23 b Fq(to)28 b(seed)f(the)h(PRNG)h
+(again.)0 1776 y Fm(exception)j Fl(Error)208 1875 y Fq(If)i(the)g
(curren)n(t)f(RAND)i(metho)r(d)f(supp)r(orts)f(an)n(y)g(errors,)h(this)
g(is)f(raised)g(when)h(needed.)56 b(The)33 b(default)i(metho)r(d)208
-1875 y(do)r(es)27 b(not)g(raise)g(this)h(when)f(the)h(en)n(trop)n(y)e
-(p)r(o)r(ol)i(is)f(depleted.)208 2000 y(Whenev)n(er)36
+1975 y(do)r(es)27 b(not)g(raise)g(this)h(when)f(the)h(en)n(trop)n(y)e
+(p)r(o)r(ol)i(is)f(depleted.)208 2104 y(Whenev)n(er)36
b(this)h(exception)g(is)g(raised)f(directly)-7 b(,)40
b(it)d(has)g(a)f(list)i(of)f(error)e(messages)g(from)i(the)h(Op)r
-(enSSL)f(error)208 2100 y(queue,)k(where)d(eac)n(h)f(item)i(is)g(a)f
+(enSSL)f(error)208 2204 y(queue,)k(where)d(eac)n(h)f(item)i(is)g(a)f
(tuple)h Fl(\()p Fc(lib)5 b Fl(,)44 b Fc(function)6 b
Fl(,)43 b Fc(r)l(e)l(ason)6 b Fl(\))p Fq(.)70 b(Here)38
b Fc(lib)5 b Fq(,)43 b Fc(function)h Fq(and)39 b Fc(r)l(e)l(ason)45
-b Fq(are)37 b(all)208 2200 y(strings,)26 b(describing)h(where)g(and)g
+b Fq(are)37 b(all)208 2303 y(strings,)26 b(describing)h(where)g(and)g
(what)h(the)g(problem)f(is.)36 b(See)28 b Fc(err)p Fq(\(3\))g(for)f
-(more)g(information.)0 2473 y Fj(3.3)97 b Fd(SSL)33 b
+(more)g(information.)0 2580 y Fj(3.3)97 b Fd(SSL)33 b
Fj(\026)f(An)h(interface)h(to)e(the)h(SSL-sp)s(eci\034c)h(pa)m(rts)f
-(of)f(Op)s(enSSL)0 2673 y Fq(This)c(mo)r(dule)f(handles)h(things)f(sp)r
+(of)f(Op)s(enSSL)0 2780 y Fq(This)c(mo)r(dule)f(handles)h(things)f(sp)r
(eci\034c)h(to)f(SSL.)h(There)f(are)f(t)n(w)n(o)h(ob)5
b(jects)27 b(de\034ned:)38 b(Con)n(text,)27 b(Connection.)0
-2820 y Fl(SSLv2_METHOD)0 2920 y(SSLv3_METHOD)0 3019 y(SSLv23_METHOD)0
-3119 y(TLSv1_METHOD)208 3218 y Fq(These)g(constan)n(ts)f(represen)n(t)h
+2927 y Fl(SSLv2_METHOD)0 3027 y(SSLv3_METHOD)0 3126 y(SSLv23_METHOD)0
+3226 y(TLSv1_METHOD)208 3326 y Fq(These)g(constan)n(ts)f(represen)n(t)h
(the)h(di\033eren)n(t)f(SSL)h(metho)r(ds)g(to)f(use)h(when)f(creating)g
-(a)g(con)n(text)g(ob)5 b(ject.)0 3365 y Fl(VERIFY_NONE)0
-3465 y(VERIFY_PEER)0 3565 y(VERIFY_FAIL_IF_N)o(O_)o(PEE)o(R_)o(CE)o(RT)
-208 3664 y Fq(These)27 b(constan)n(ts)f(represen)n(t)h(the)h(v)n
+(a)g(con)n(text)g(ob)5 b(ject.)0 3473 y Fl(VERIFY_NONE)0
+3572 y(VERIFY_PEER)0 3672 y(VERIFY_FAIL_IF_N)o(O_)o(PEE)o(R_)o(CE)o(RT)
+208 3771 y Fq(These)27 b(constan)n(ts)f(represen)n(t)h(the)h(v)n
(eri\034cation)e(mo)r(de)h(used)h(b)n(y)f(the)h(Con)n(text)f(ob)5
-b(ject's)27 b Fl(set_verify)d Fq(metho)r(d.)0 3811 y
-Fl(FILETYPE_PEM)0 3911 y(FILETYPE_ASN1)208 4010 y Fq(File)41
+b(ject's)27 b Fl(set_verify)d Fq(metho)r(d.)0 3918 y
+Fl(FILETYPE_PEM)0 4018 y(FILETYPE_ASN1)208 4118 y Fq(File)41
b(t)n(yp)r(e)g(constan)n(ts)f(used)h(with)g(the)h Fl(use_certificate)o
(_f)o(ile)34 b Fq(and)41 b Fl(use_privatekey_f)o(il)o(e)35
-b Fq(metho)r(ds)41 b(of)208 4110 y(Con)n(text)27 b(ob)5
-b(jects.)0 4257 y Fl(OP_SINGLE_DH_USE)0 4356 y(OP_EPHEMERAL_RSA)0
-4456 y(OP_NO_SSLv2)0 4556 y(OP_NO_SSLv3)0 4655 y(OP_NO_TLSv1)208
-4755 y Fq(Constan)n(ts)30 b(used)i(with)g Fl(set_options)26
+b Fq(metho)r(ds)41 b(of)208 4217 y(Con)n(text)27 b(ob)5
+b(jects.)0 4364 y Fl(OP_SINGLE_DH_USE)0 4464 y(OP_EPHEMERAL_RSA)0
+4563 y(OP_NO_SSLv2)0 4663 y(OP_NO_SSLv3)0 4763 y(OP_NO_TLSv1)208
+4862 y Fq(Constan)n(ts)30 b(used)i(with)g Fl(set_options)26
b Fq(of)32 b(Con)n(text)f(ob)5 b(jects.)48 b Fl(OP_SINGLE_DH_USE)25
-b Fq(means)31 b(to)g(alw)n(a)n(ys)f(create)g(a)208 4855
+b Fq(means)31 b(to)g(alw)n(a)n(ys)f(create)g(a)208 4962
y(new)19 b(k)n(ey)f(when)h(using)g(ephemeral)f(Di\036e-Hellman.)34
b Fl(OP_EPHEMERAL_RSA)13 b Fq(means)18 b(to)h(alw)n(a)n(ys)e(use)i
-(ephemeral)g(RSA)208 4954 y(k)n(eys)f(when)h(doing)f(RSA)i(op)r
+(ephemeral)g(RSA)208 5061 y(k)n(eys)f(when)h(doing)f(RSA)i(op)r
(erations.)33 b Fl(OP_NO_SSLv2)p Fq(,)16 b Fl(OP_NO_SSLv3)f
Fq(and)k Fl(OP_NO_TLSv1)14 b Fq(means)19 b(to)g(disable)f(those)208
-5054 y(sp)r(eci\034c)29 b(proto)r(cols.)39 b(This)29
+5161 y(sp)r(eci\034c)29 b(proto)r(cols.)39 b(This)29
b(is)g(in)n(teresting)g(if)g(y)n(ou're)f(using)g(e.g.)41
b Fl(SSLv23_METHOD)24 b Fq(to)29 b(get)g(an)f(SSLv2-compatible)208
-5154 y(handshak)n(e,)e(but)i(don't)g(w)n(an)n(t)f(to)g(use)h(SSLv2.)0
-5300 y Fl(ContextType)208 5400 y Fq(See)f Fl(Context)p
-Fq(.)p 0 5549 3901 4 v 0 5649 a Ff(10)2197 b(3)83 b Fl(OpenSSL)24
-b Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p eop
-end
-%%Page: 11 11
-TeXDict begin 11 10 bop 0 83 a Fm(class)31 b Fl(Context\()p
-Fc(metho)l(d)9 b Fl(\))208 183 y Fq(A)27 b(class)g(represen)n(ting)f
+5261 y(handshak)n(e,)e(but)i(don't)g(w)n(an)n(t)f(to)g(use)h(SSLv2.)p
+0 5323 1560 4 v 92 5377 a Fh(2)127 5400 y Fg(See)c Fp(http://www.lotha)
+n(r.com/tech/crypto/)p 0 5549 3901 4 v 0 5649 a Ff(3.3)82
+b Fl(SSL)26 b Ff(\026)i(An)g(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h
+(pa)n(rts)f(of)h(Op)r(enSSL)1611 b(11)p eop end
+%%Page: 12 12
+TeXDict begin 12 11 bop 0 83 a Fl(ContextType)208 183
+y Fq(See)27 b Fl(Context)p Fq(.)0 330 y Fm(class)k Fl(Context\()p
+Fc(metho)l(d)9 b Fl(\))208 429 y Fq(A)27 b(class)g(represen)n(ting)f
(SSL)i(con)n(texts.)36 b(Con)n(texts)27 b(de\034ne)h(the)g(parameters)d
-(of)j(one)f(or)g(more)f(SSL)i(connections.)208 315 y
+(of)j(one)f(or)g(more)f(SSL)i(connections.)208 562 y
Fc(metho)l(d)36 b Fq(should)28 b(b)r(e)g Fl(SSLv2_METHOD)p
Fq(,)22 b Fl(SSLv3_METHOD)p Fq(,)h Fl(SSLv23_METHOD)f
-Fq(or)27 b Fl(TLSv1_METHOD)p Fq(.)0 462 y Fl(ConnectionType)208
-562 y Fq(See)g Fl(Connection)p Fq(.)0 709 y Fm(class)k
+Fq(or)27 b Fl(TLSv1_METHOD)p Fq(.)0 709 y Fl(ConnectionType)208
+808 y Fq(See)g Fl(Connection)p Fq(.)0 955 y Fm(class)k
Fl(Connection\()p Fc(c)l(ontext,)25 b(so)l(cket)8 b Fl(\))208
-808 y Fq(A)27 b(class)g(represen)n(ting)f(SSL)i(connections.)208
-941 y Fc(c)l(ontext)44 b Fq(should)37 b(b)r(e)g(an)g(instance)g(of)44
+1055 y Fq(A)27 b(class)g(represen)n(ting)f(SSL)i(connections.)208
+1188 y Fc(c)l(ontext)44 b Fq(should)37 b(b)r(e)g(an)g(instance)g(of)44
b Fl(Context)34 b Fq(and)j Fc(so)l(cket)46 b Fq(should)37
-b(b)r(e)g(a)g(so)r(c)n(k)n(et)2978 911 y Fk(3)3053 941
+b(b)r(e)g(a)g(so)r(c)n(k)n(et)2978 1158 y Fk(3)3053 1188
y Fq(ob)5 b(ject.)66 b Fc(so)l(cket)45 b Fq(ma)n(y)37
-b(b)r(e)208 1041 y Fc(None)6 b Fq(;)27 b(in)h(this)g(case,)e(the)i
+b(b)r(e)208 1287 y Fc(None)6 b Fq(;)27 b(in)h(this)g(case,)e(the)i
(Connection)f(is)g(created)g(with)h(a)f(memory)g(BIO:)f(see)h(the)h
-Fl(bio_read)p Fq(,)c Fl(bio_write)p Fq(,)g(and)208 1141
-y Fl(bio_shutdown)e Fq(metho)r(ds.)0 1287 y Fm(exception)32
-b Fl(Error)208 1387 y Fq(This)i(exception)g(is)h(used)f(as)g(a)h(base)e
+Fl(bio_read)p Fq(,)c Fl(bio_write)p Fq(,)g(and)208 1387
+y Fl(bio_shutdown)e Fq(metho)r(ds.)0 1534 y Fm(exception)32
+b Fl(Error)208 1634 y Fq(This)i(exception)g(is)h(used)f(as)g(a)h(base)e
(class)h(for)g(the)h(other)f(SSL-related)g(exceptions,)i(but)f(ma)n(y)f
-(also)f(b)r(e)i(raised)208 1487 y(directly)-7 b(.)208
-1620 y(Whenev)n(er)36 b(this)h(exception)g(is)g(raised)f(directly)-7
+(also)f(b)r(e)i(raised)208 1733 y(directly)-7 b(.)208
+1866 y(Whenev)n(er)36 b(this)h(exception)g(is)g(raised)f(directly)-7
b(,)40 b(it)d(has)g(a)f(list)i(of)f(error)e(messages)g(from)i(the)h(Op)
-r(enSSL)f(error)208 1719 y(queue,)k(where)d(eac)n(h)f(item)i(is)g(a)f
+r(enSSL)f(error)208 1966 y(queue,)k(where)d(eac)n(h)f(item)i(is)g(a)f
(tuple)h Fl(\()p Fc(lib)5 b Fl(,)44 b Fc(function)6 b
Fl(,)43 b Fc(r)l(e)l(ason)6 b Fl(\))p Fq(.)70 b(Here)38
b Fc(lib)5 b Fq(,)43 b Fc(function)h Fq(and)39 b Fc(r)l(e)l(ason)45
-b Fq(are)37 b(all)208 1819 y(strings,)26 b(describing)h(where)g(and)g
+b Fq(are)37 b(all)208 2065 y(strings,)26 b(describing)h(where)g(and)g
(what)h(the)g(problem)f(is.)36 b(See)28 b Fc(err)p Fq(\(3\))g(for)f
-(more)g(information.)0 1966 y Fm(exception)32 b Fl(ZeroReturnError)208
-2065 y Fq(This)g(exception)g(matc)n(hes)g(the)h(error)d(return)i(co)r
+(more)g(information.)0 2212 y Fm(exception)32 b Fl(ZeroReturnError)208
+2312 y Fq(This)g(exception)g(matc)n(hes)g(the)h(error)d(return)i(co)r
(de)h Fl(SSL_ERROR_ZERO_)o(RE)o(TUR)o(N)p Fq(,)26 b(and)33
-b(is)f(raised)f(when)i(the)g(SSL)208 2165 y(Connection)c(has)g(b)r(een)
+b(is)f(raised)f(when)i(the)g(SSL)208 2411 y(Connection)c(has)g(b)r(een)
h(closed.)43 b(In)29 b(SSL)h(3.0)f(and)h(TLS)g(1.0,)f(this)h(only)f(o)r
(ccurs)g(if)h(a)g(closure)e(alert)h(has)g(o)r(ccurred)208
-2265 y(in)g(the)g(proto)r(col,)f(i.e.)41 b(the)29 b(connection)f(has)g
+2511 y(in)g(the)g(proto)r(col,)f(i.e.)41 b(the)29 b(connection)f(has)g
(b)r(een)i(closed)e(cleanly)-7 b(.)40 b(Note)29 b(that)g(this)g(do)r
-(es)f(not)h(necessarily)e(mean)208 2364 y(that)g(the)h(transp)r(ort)f
+(es)f(not)h(necessarily)e(mean)208 2611 y(that)g(the)h(transp)r(ort)f
(la)n(y)n(er)f(\(e.g.)36 b(a)28 b(so)r(c)n(k)n(et\))e(has)h(b)r(een)h
-(closed.)208 2497 y(It)k(ma)n(y)f(seem)h(a)f(little)i(strange)e(that)h
+(closed.)208 2743 y(It)k(ma)n(y)f(seem)h(a)f(little)i(strange)e(that)h
(this)g(is)g(an)g(exception,)g(but)h(it)f(do)r(es)g(matc)n(h)g(an)f
-Fl(SSL_ERROR)e Fq(co)r(de,)j(and)g(is)208 2597 y(v)n(ery)26
-b(con)n(v)n(enien)n(t.)0 2743 y Fm(exception)32 b Fl(WantReadError)208
-2843 y Fq(The)i(op)r(eration)e(did)j(not)f(complete;)j(the)d(same)g
+Fl(SSL_ERROR)e Fq(co)r(de,)j(and)g(is)208 2843 y(v)n(ery)26
+b(con)n(v)n(enien)n(t.)0 2990 y Fm(exception)32 b Fl(WantReadError)208
+3090 y Fq(The)i(op)r(eration)e(did)j(not)f(complete;)j(the)d(same)g
(I/O)f(metho)r(d)h(should)g(b)r(e)g(called)g(again)f(later,)i(with)f
-(the)h(same)208 2943 y(argumen)n(ts.)g(An)n(y)28 b(I/O)e(metho)r(d)i
+(the)h(same)208 3189 y(argumen)n(ts.)g(An)n(y)28 b(I/O)e(metho)r(d)i
(can)f(lead)h(to)f(this)h(since)f(new)h(handshak)n(es)e(can)h(o)r(ccur)
-g(at)g(an)n(y)g(time.)208 3076 y(The)44 b(w)n(an)n(ted)h(read)f(is)g
+g(at)g(an)n(y)g(time.)208 3322 y(The)44 b(w)n(an)n(ted)h(read)f(is)g
(for)h Fc(dirty)g Fq(data)g(sen)n(t)f(o)n(v)n(er)f(the)j(net)n(w)n
(ork,)h(not)e(the)h Fc(cle)l(an)f Fq(data)f(inside)h(the)g(tunnel.)208
-3175 y(F)-7 b(or)39 b(a)i(so)r(c)n(k)n(et)e(based)h(SSL)h(connection,)i
+3422 y(F)-7 b(or)39 b(a)i(so)r(c)n(k)n(et)e(based)h(SSL)h(connection,)i
Fc(r)l(e)l(ad)e Fq(means)f(data)g(coming)g(at)g(us)h(o)n(v)n(er)e(the)i
-(net)n(w)n(ork.)74 b(Un)n(til)41 b(that)208 3275 y(read)d(succeeds,)k
+(net)n(w)n(ork.)74 b(Un)n(til)41 b(that)208 3521 y(read)d(succeeds,)k
(the)d(attempted)h Fl(OpenSSL.SSL.Conn)o(ect)o(io)o(n.)o(rec)o(v)p
Fq(,)c Fl(OpenSSL.SSL.Conn)o(ec)o(tio)o(n.)o(se)o(nd)p
-Fq(,)g(or)208 3374 y Fl(OpenSSL.SSL.Con)o(ne)o(ct)o(ion)o(.d)o(o_h)o
+Fq(,)g(or)208 3621 y Fl(OpenSSL.SSL.Con)o(ne)o(ct)o(ion)o(.d)o(o_h)o
(an)o(ds)o(hak)o(e)15 b Fq(is)22 b(prev)n(en)n(ted)e(or)h(incomplete.)
35 b(Y)-7 b(ou)22 b(probably)e(w)n(an)n(t)h(to)g Fl(select\(\))208
-3474 y Fq(on)27 b(the)h(so)r(c)n(k)n(et)e(b)r(efore)h(trying)g(again.)0
-3621 y Fm(exception)32 b Fl(WantWriteError)208 3721 y
+3721 y Fq(on)27 b(the)h(so)r(c)n(k)n(et)e(b)r(efore)h(trying)g(again.)0
+3867 y Fm(exception)32 b Fl(WantWriteError)208 3967 y
Fq(See)27 b Fl(WantReadError)p Fq(.)32 b(The)27 b(so)r(c)n(k)n(et)g
(send)g(bu\033er)h(ma)n(y)f(b)r(e)h(to)r(o)f(full)h(to)g(write)f(more)g
-(data.)0 3867 y Fm(exception)32 b Fl(WantX509LookupE)o(rr)o(or)208
-3967 y Fq(The)24 b(op)r(eration)g(did)h(not)g(complete)f(b)r(ecause)g
+(data.)0 4114 y Fm(exception)32 b Fl(WantX509LookupE)o(rr)o(or)208
+4214 y Fq(The)24 b(op)r(eration)g(did)h(not)g(complete)f(b)r(ecause)g
(an)h(application)f(callbac)n(k)f(has)h(ask)n(ed)g(to)g(b)r(e)h(called)
-g(again.)34 b(The)25 b(I/O)208 4067 y(metho)r(d)f(should)h(b)r(e)f
+g(again.)34 b(The)25 b(I/O)208 4313 y(metho)r(d)f(should)h(b)r(e)f
(called)g(again)g(later,)g(with)h(the)g(same)e(argumen)n(ts.)35
b(Note:)g(This)24 b(w)n(on't)h(o)r(ccur)e(in)i(this)g(v)n(ersion,)208
-4166 y(as)h(there)i(are)e(no)i(suc)n(h)f(callbac)n(ks)f(in)i(this)f(v)n
-(ersion.)0 4313 y Fm(exception)32 b Fl(SysCallError)208
-4413 y Fq(The)25 b Fl(SysCallError)20 b Fq(o)r(ccurs)k(when)i(there's)e
+4413 y(as)h(there)i(are)e(no)i(suc)n(h)f(callbac)n(ks)f(in)i(this)f(v)n
+(ersion.)0 4560 y Fm(exception)32 b Fl(SysCallError)208
+4659 y Fq(The)25 b Fl(SysCallError)20 b Fq(o)r(ccurs)k(when)i(there's)e
(an)h(I/O)g(error)e(and)i(Op)r(enSSL's)g(error)e(queue)i(do)r(es)g(not)
-g(con)n(tain)g(an)n(y)208 4512 y(information.)59 b(This)36
+g(con)n(tain)g(an)n(y)208 4759 y(information.)59 b(This)36
b(can)f(mean)g(t)n(w)n(o)g(things:)52 b(An)36 b(error)d(in)j(the)g
(transp)r(ort)e(proto)r(col,)i(or)f(an)g(end)h(of)f(\034le)h(that)208
-4612 y(violates)26 b(the)i(proto)r(col.)36 b(The)27 b(parameter)f(to)i
+4859 y(violates)26 b(the)i(proto)r(col.)36 b(The)27 b(parameter)f(to)i
(the)g(exception)f(is)g(alw)n(a)n(ys)f(a)h(pair)g Fl(\()p
-Fc(errnum)6 b Fl(,)42 b Fc(errstr)9 b Fl(\))p Fq(.)0
-4875 y Ff(Context)27 b(objects)0 5076 y Fq(Con)n(text)g(ob)5
-b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n(wing)e(metho)r(ds:)p
-0 5145 1560 4 v 92 5198 a Fh(3)127 5222 y Fg(A)n(ctually)-6
+Fc(errnum)6 b Fl(,)42 b Fc(errstr)9 b Fl(\))p Fq(.)p
+0 4928 1560 4 v 92 4981 a Fh(3)127 5005 y Fg(A)n(ctually)-6
b(,)25 b(all)e(that)j(is)d(required)j(is)e(an)g(ob)t(ject)h(that)h
Fa(b)l(ehaves)e Fg(lik)n(e)g(a)h(so)r(c)n(k)n(et,)g(y)n(ou)g(could)g
(ev)n(en)g(use)f(\034les,)g(ev)n(en)i(though)f(it'd)f(b)r(e)h(tric)n
-(ky)g(to)0 5301 y(get)g(the)f(handshak)n(es)h(righ)n(t!)p
-0 5549 3901 4 v 0 5649 a Ff(3.3)82 b Fl(SSL)26 b Ff(\026)i(An)g
-(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f(of)h(Op)r(enSSL)
-1611 b(11)p eop end
-%%Page: 12 12
-TeXDict begin 12 11 bop 0 83 a Fl(check_privatekey)o(\(\))208
-199 y Fq(Chec)n(k)30 b(if)i(the)g(priv)-5 b(ate)31 b(k)n(ey)f(\(loaded)
-h(with)h Fl(use_privatekey)p Fb([)p Fl(_)o(fi)o(le)11
+(ky)g(to)0 5084 y(get)g(the)f(handshak)n(es)h(righ)n(t!)p
+0 5549 3901 4 v 0 5649 a Ff(12)2197 b(3)83 b Fl(OpenSSL)24
+b Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p eop
+end
+%%Page: 13 13
+TeXDict begin 13 12 bop 0 83 a Ff(Context)27 b(objects)0
+283 y Fq(Con)n(text)g(ob)5 b(jects)27 b(ha)n(v)n(e)g(the)h(follo)n
+(wing)e(metho)r(ds:)0 430 y Fl(check_privatekey)o(\(\))208
+547 y Fq(Chec)n(k)k(if)i(the)g(priv)-5 b(ate)31 b(k)n(ey)f(\(loaded)h
+(with)h Fl(use_privatekey)p Fb([)p Fl(_)o(fi)o(le)11
b Fb(])p Fq(\))26 b(matc)n(hes)k(the)i(certi\034cate)f(\(loaded)g(with)
-208 327 y Fl(use_certificate)o Fb([)p Fl(_)o(fil)o(e)11
+208 674 y Fl(use_certificate)o Fb([)p Fl(_)o(fil)o(e)11
b Fb(])p Fq(\).)31 b(Returns)d Fl(None)e Fq(if)i(they)f(matc)n(h,)h
-(raises)e Fl(Error)g Fq(otherwise.)0 474 y Fl(get_app_data\(\))208
-573 y Fq(Retriev)n(e)g(application)h(data)g(as)g(set)h(b)n(y)g
-Fl(set_app_data)p Fq(.)0 720 y Fl(get_cert_store\(\))208
-820 y Fq(Retriev)n(e)34 b(the)i(certi\034cate)f(store)f(\(a)h
+(raises)e Fl(Error)g Fq(otherwise.)0 821 y Fl(get_app_data\(\))208
+921 y Fq(Retriev)n(e)g(application)h(data)g(as)g(set)h(b)n(y)g
+Fl(set_app_data)p Fq(.)0 1068 y Fl(get_cert_store\(\))208
+1167 y Fq(Retriev)n(e)34 b(the)i(certi\034cate)f(store)f(\(a)h
(X509Store)f(ob)5 b(ject\))35 b(that)h(the)f(con)n(text)g(uses.)60
-b(This)35 b(can)g(b)r(e)h(used)f(to)g(add)208 920 y("trusted")26
+b(This)35 b(can)g(b)r(e)h(used)f(to)g(add)208 1267 y("trusted")26
b(certi\034cates)h(without)h(using)f(the.)37 b Fl(load_verify_loca)o
-(tio)o(ns)o(\(\))21 b Fq(metho)r(d.)0 1066 y Fl(get_timeout\(\))208
-1166 y Fq(Retriev)n(e)26 b(session)h(timeout,)h(as)f(set)g(b)n(y)i
+(tio)o(ns)o(\(\))21 b Fq(metho)r(d.)0 1414 y Fl(get_timeout\(\))208
+1513 y Fq(Retriev)n(e)26 b(session)h(timeout,)h(as)f(set)g(b)n(y)i
Fl(set_timeout)p Fq(.)j(The)c(default)g(is)f(300)f(seconds.)0
-1313 y Fl(get_verify_depth)o(\(\))208 1413 y Fq(Retriev)n(e)g(the)i
+1660 y Fl(get_verify_depth)o(\(\))208 1760 y Fq(Retriev)n(e)g(the)i
(Con)n(text)f(ob)5 b(ject's)28 b(v)n(erify)e(depth,)j(as)d(set)i(b)n(y)
-g Fl(set_verify_depth)p Fq(.)0 1559 y Fl(get_verify_mode\()o(\))208
-1659 y Fq(Retriev)n(e)e(the)i(Con)n(text)f(ob)5 b(ject's)28
+g Fl(set_verify_depth)p Fq(.)0 1907 y Fl(get_verify_mode\()o(\))208
+2006 y Fq(Retriev)n(e)e(the)i(Con)n(text)f(ob)5 b(ject's)28
b(v)n(erify)e(mo)r(de,)i(as)f(set)h(b)n(y)g Fl(set_verify)p
-Fq(.)0 1806 y Fl(load_client_ca\()p Fc(p)l(em\034le)6
-b Fl(\))208 1906 y Fq(Read)33 b(a)g(\034le)h(with)g(PEM-formatted)g
+Fq(.)0 2153 y Fl(load_client_ca\()p Fc(p)l(em\034le)6
+b Fl(\))208 2253 y Fq(Read)33 b(a)g(\034le)h(with)g(PEM-formatted)g
(certi\034cates)f(that)h(will)g(b)r(e)g(sen)n(t)f(to)h(the)g(clien)n(t)
-f(when)h(requesting)f(a)g(clien)n(t)208 2005 y(certi\034cate.)0
-2152 y Fl(set_client_ca_li)o(st)o(\()p Fc(c)l(erti\034c)l(ate_au)o
-(thorities)7 b Fl(\))208 2252 y Fq(Replace)23 b(the)h(curren)n(t)g
+f(when)h(requesting)f(a)g(clien)n(t)208 2353 y(certi\034cate.)0
+2499 y Fl(set_client_ca_li)o(st)o(\()p Fc(c)l(erti\034c)l(ate_au)o
+(thorities)7 b Fl(\))208 2599 y Fq(Replace)23 b(the)h(curren)n(t)g
(list)g(of)g(preferred)f(certi\034cate)g(signers)g(that)h(w)n(ould)f(b)
r(e)i(sen)n(t)f(to)g(the)g(clien)n(t)g(when)g(requesting)208
-2351 y(a)j(clien)n(t)g(certi\034cate)g(with)h(the)g Fc(c)l(erti\034c)l
+2699 y(a)j(clien)n(t)g(certi\034cate)g(with)h(the)g Fc(c)l(erti\034c)l
(ate_authorities)35 b Fq(sequence)27 b(of)34 b Fl(OpenSSL.crypto.X5)o
-(09)o(Na)o(me)p Fq(s)o(.)208 2484 y(New)27 b(in)h(v)n(ersion)e(0.10.)0
-2631 y Fl(add_client_ca\()p Fc(c)l(erti\034c)l(ate_aut)o(hority)7
-b Fl(\))208 2731 y Fq(Extract)22 b(a)g Fl(OpenSSL.crypto.X)o(50)o(9Na)o
+(09)o(Na)o(me)p Fq(s)o(.)208 2832 y(New)27 b(in)h(v)n(ersion)e(0.10.)0
+2978 y Fl(add_client_ca\()p Fc(c)l(erti\034c)l(ate_aut)o(hority)7
+b Fl(\))208 3078 y Fq(Extract)22 b(a)g Fl(OpenSSL.crypto.X)o(50)o(9Na)o
(me)16 b Fq(from)22 b(the)h Fc(c)l(erti\034c)l(ate_authority)30
b Fl(OpenSSL.crypto.X)o(509)16 b Fq(certi\034cate)208
-2830 y(and)k(add)g(it)h(to)f(the)h(list)f(of)h(preferred)e
+3178 y(and)k(add)g(it)h(to)f(the)h(list)f(of)h(preferred)e
(certi\034cate)h(signers)f(sen)n(t)h(to)g(the)h(clien)n(t)f(when)h
-(requesting)e(a)h(clien)n(t)h(certi\034cate.)208 2963
-y(New)27 b(in)h(v)n(ersion)e(0.10.)0 3110 y Fl(load_verify_loca)o(ti)o
+(requesting)e(a)h(clien)n(t)h(certi\034cate.)208 3310
+y(New)27 b(in)h(v)n(ersion)e(0.10.)0 3457 y Fl(load_verify_loca)o(ti)o
(ons)o(\()p Fc(p)l(em\034le,)e(c)l(ap)l(ath)6 b Fl(\))208
-3210 y Fq(Sp)r(ecify)24 b(where)f(CA)g(certi\034cates)g(for)g(v)n
+3557 y Fq(Sp)r(ecify)24 b(where)f(CA)g(certi\034cates)g(for)g(v)n
(eri\034cation)f(purp)r(oses)h(are)f(lo)r(cated.)35 b(These)23
-b(are)g(trusted)g(certi\034cates.)35 b(Note)208 3309
+b(are)g(trusted)g(certi\034cates.)35 b(Note)208 3657
y(that)c(the)g(certi\034cates)f(ha)n(v)n(e)f(to)i(b)r(e)g(in)g(PEM)h
(format.)46 b(If)31 b(capath)f(is)h(passed,)f(it)i(m)n(ust)e(b)r(e)i(a)
-e(directory)f(prepared)208 3409 y(using)i(the)h Fl(c_rehash)c
+e(directory)f(prepared)208 3756 y(using)i(the)h Fl(c_rehash)c
Fq(to)r(ol)j(included)h(with)g(Op)r(enSSL.)g(Either,)h(but)f(not)g(b)r
(oth,)h(of)38 b Fc(p)l(em\034le)g Fq(or)31 b Fc(c)l(ap)l(ath)39
-b Fq(ma)n(y)31 b(b)r(e)208 3509 y Fl(None)p Fq(.)0 3655
+b Fq(ma)n(y)31 b(b)r(e)208 3856 y Fl(None)p Fq(.)0 4003
y Fl(set_default_veri)o(fy)o(_pa)o(th)o(s\()o(\))208
-3755 y Fq(Sp)r(ecify)20 b(that)h(the)g(platform)f(pro)n(vided)f(CA)h
+4102 y Fq(Sp)r(ecify)20 b(that)h(the)g(platform)f(pro)n(vided)f(CA)h
(certi\034cates)g(are)f(to)h(b)r(e)h(used)f(for)g(v)n(eri\034cation)f
-(purp)r(oses.)33 b(This)21 b(metho)r(d)208 3855 y(ma)n(y)26
-b(not)i(w)n(ork)e(prop)r(erly)h(on)g(OS)g(X.)0 4002 y
-Fl(load_tmp_dh\()p Fc(dh\034le)6 b Fl(\))208 4101 y Fq(Load)26
+(purp)r(oses.)33 b(This)21 b(metho)r(d)208 4202 y(ma)n(y)26
+b(not)i(w)n(ork)e(prop)r(erly)h(on)g(OS)g(X.)0 4349 y
+Fl(load_tmp_dh\()p Fc(dh\034le)6 b Fl(\))208 4448 y Fq(Load)26
b(parameters)g(for)h(Ephemeral)g(Di\036e-Hellman)h(from)g
-Fc(dh\034le)6 b Fq(.)0 4248 y Fl(set_app_data\()p Fc(data)g
-Fl(\))208 4348 y Fq(Asso)r(ciate)25 b Fc(data)33 b Fq(with)27
+Fc(dh\034le)6 b Fq(.)0 4595 y Fl(set_app_data\()p Fc(data)g
+Fl(\))208 4695 y Fq(Asso)r(ciate)25 b Fc(data)33 b Fq(with)27
b(this)f(Con)n(text)f(ob)5 b(ject.)36 b Fc(data)e Fq(can)25
b(b)r(e)i(retriev)n(ed)d(later)i(using)f(the)i Fl(get_app_data)21
-b Fq(metho)r(d.)0 4495 y Fl(set_cipher_list\()o Fc(ciphers)7
-b Fl(\))208 4594 y Fq(Set)28 b(the)g(list)h(of)f(ciphers)f(to)h(b)r(e)g
+b Fq(metho)r(d.)0 4842 y Fl(set_cipher_list\()o Fc(ciphers)7
+b Fl(\))208 4941 y Fq(Set)28 b(the)g(list)h(of)f(ciphers)f(to)h(b)r(e)g
(used)g(in)g(this)h(con)n(text.)37 b(See)28 b(the)h(Op)r(enSSL)f(man)n
-(ual)f(for)h(more)f(information)g(\(e.g.)208 4694 y(ciphers\(1\)\))0
-4841 y Fl(set_info_callbac)o(k\()o Fc(c)l(al)t(lb)l(ack)9
-b Fl(\))208 4940 y Fq(Set)33 b(the)f(information)g(callbac)n(k)f(to)i
+(ual)f(for)h(more)f(information)g(\(e.g.)208 5041 y(ciphers\(1\)\))0
+5188 y Fl(set_info_callbac)o(k\()o Fc(c)l(al)t(lb)l(ack)9
+b Fl(\))208 5288 y Fq(Set)33 b(the)f(information)g(callbac)n(k)f(to)i
Fc(c)l(al)t(lb)l(ack)9 b Fq(.)54 b(This)32 b(function)h(will)g(b)r(e)g
(called)f(from)g(time)h(to)g(time)g(during)f(SSL)208
-5040 y(handshak)n(es.)49 b Fc(c)l(al)t(lb)l(ack)43 b
+5387 y(handshak)n(es.)49 b Fc(c)l(al)t(lb)l(ack)43 b
Fq(should)32 b(tak)n(e)g(three)g(argumen)n(ts:)45 b(a)32
b(Connection)g(ob)5 b(ject)32 b(and)g(t)n(w)n(o)g(in)n(tegers.)50
-b(The)32 b(\034rst)208 5140 y(in)n(teger)f(sp)r(eci\034es)g(where)h(in)
-g(the)g(SSL)g(handshak)n(e)f(the)h(function)h(w)n(as)e(called,)h(and)g
-(the)g(other)g(the)g(return)f(co)r(de)208 5239 y(from)c(a)g(\(p)r
-(ossibly)g(failed\))h(in)n(ternal)f(function)h(call.)0
-5386 y Fl(set_options\()p Fc(options)7 b Fl(\))p 0 5549
-3901 4 v 0 5649 a Ff(12)2197 b(3)83 b Fl(OpenSSL)24 b
-Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p eop
-end
-%%Page: 13 13
-TeXDict begin 13 12 bop 208 83 a Fq(A)n(dd)28 b(SSL)h(options.)38
-b(Options)28 b(y)n(ou)f(ha)n(v)n(e)g(set)i(b)r(efore)f(are)f(not)h
-(cleared!)38 b(This)28 b(metho)r(d)h(should)f(b)r(e)h(used)f(with)h
-(the)208 183 y Fl(OP_*)d Fq(constan)n(ts.)0 330 y Fl(set_passwd_cb\()p
+b(The)32 b(\034rst)p 0 5549 3901 4 v 0 5649 a Ff(3.3)82
+b Fl(SSL)26 b Ff(\026)i(An)g(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h
+(pa)n(rts)f(of)h(Op)r(enSSL)1611 b(13)p eop end
+%%Page: 14 14
+TeXDict begin 14 13 bop 208 83 a Fq(in)n(teger)31 b(sp)r(eci\034es)g
+(where)h(in)g(the)g(SSL)g(handshak)n(e)f(the)h(function)h(w)n(as)e
+(called,)h(and)g(the)g(other)g(the)g(return)f(co)r(de)208
+183 y(from)c(a)g(\(p)r(ossibly)g(failed\))h(in)n(ternal)f(function)h
+(call.)0 330 y Fl(set_options\()p Fc(options)7 b Fl(\))208
+429 y Fq(A)n(dd)28 b(SSL)h(options.)38 b(Options)28 b(y)n(ou)f(ha)n(v)n
+(e)g(set)i(b)r(efore)f(are)f(not)h(cleared!)38 b(This)28
+b(metho)r(d)h(should)f(b)r(e)h(used)f(with)h(the)208
+529 y Fl(OP_*)d Fq(constan)n(ts.)0 676 y Fl(set_passwd_cb\()p
Fc(c)l(al)t(lb)l(ack)9 b Fb([)p Fc(,)25 b(user)l(data)19
-b Fb(])p Fl(\))208 429 y Fq(Set)42 b(the)g(passphrase)f(callbac)n(k)f
+b Fb(])p Fl(\))208 775 y Fq(Set)42 b(the)g(passphrase)f(callbac)n(k)f
(to)i Fc(c)l(al)t(lb)l(ack)9 b Fq(.)82 b(This)42 b(function)h(will)f(b)
r(e)g(called)g(when)g(a)g(priv)-5 b(ate)42 b(k)n(ey)f(with)h(a)208
-529 y(passphrase)32 b(is)i(loaded.)56 b Fc(c)l(al)t(lb)l(ack)45
+875 y(passphrase)32 b(is)i(loaded.)56 b Fc(c)l(al)t(lb)l(ack)45
b Fq(m)n(ust)34 b(accept)g(three)g(p)r(ositional)f(argumen)n(ts.)56
-b(First,)35 b(an)f(in)n(teger)f(giving)h(the)208 628
+b(First,)35 b(an)f(in)n(teger)f(giving)h(the)208 975
y(maxim)n(um)e(length)i(of)f(the)g(passphrase)f(it)h(ma)n(y)g(return.)
53 b(If)33 b(the)h(returned)e(passphrase)g(is)h(longer)f(than)h(this,)i
-(it)208 728 y(will)29 b(b)r(e)h(truncated.)43 b(Second,)30
+(it)208 1074 y(will)29 b(b)r(e)h(truncated.)43 b(Second,)30
b(a)f(b)r(o)r(olean)g(v)-5 b(alue)29 b(whic)n(h)h(will)g(b)r(e)g(true)f
(if)h(the)g(user)f(should)g(b)r(e)h(prompted)g(for)f(the)208
-828 y(passphrase)k(t)n(wice)h(and)h(the)g(callbac)n(k)f(should)g(v)n
+1174 y(passphrase)k(t)n(wice)h(and)h(the)g(callbac)n(k)f(should)g(v)n
(erify)h(that)g(the)g(t)n(w)n(o)f(v)-5 b(alues)35 b(supplied)g(are)f
-(equal.)58 b(Third,)37 b(the)208 927 y(v)-5 b(alue)27
+(equal.)58 b(Third,)37 b(the)208 1273 y(v)-5 b(alue)27
b(giv)n(en)g(as)g(the)h Fc(user)l(data)35 b Fq(parameter)26
b(to)h Fl(set_passwd_cb)p Fq(.)32 b(If)c(an)g(error)d(o)r(ccurs,)i
Fc(c)l(al)t(lb)l(ack)39 b Fq(should)27 b(return)g(a)208
-1027 y(false)g(v)-5 b(alue)27 b(\(e.g.)37 b(an)27 b(empt)n(y)h
-(string\).)0 1174 y Fl(set_session_id\()p Fc(n)o(ame)6
-b Fl(\))208 1273 y Fq(Set)33 b(the)h(con)n(text)f Fc(name)39
+1373 y(false)g(v)-5 b(alue)27 b(\(e.g.)37 b(an)27 b(empt)n(y)h
+(string\).)0 1520 y Fl(set_session_id\()p Fc(n)o(ame)6
+b Fl(\))208 1620 y Fq(Set)33 b(the)h(con)n(text)f Fc(name)39
b Fq(within)34 b(whic)n(h)f(a)g(session)f(can)h(b)r(e)h(reused)e(for)h
(this)g(Con)n(text)g(ob)5 b(ject.)54 b(This)33 b(is)g(needed)208
-1373 y(when)e(doing)g(session)g(resumption,)h(b)r(ecause)g(there)f(is)h
+1719 y(when)e(doing)g(session)g(resumption,)h(b)r(ecause)g(there)f(is)h
(no)f(w)n(a)n(y)g(for)g(a)g(stored)g(session)f(to)i(kno)n(w)f(whic)n(h)
-g(Con)n(text)208 1473 y(ob)5 b(ject)27 b(it)h(is)f(asso)r(ciated)g
+g(Con)n(text)208 1819 y(ob)5 b(ject)27 b(it)h(is)f(asso)r(ciated)g
(with.)37 b Fc(name)d Fq(ma)n(y)27 b(b)r(e)h(an)n(y)e(binary)h(data.)0
-1620 y Fl(set_timeout\()p Fc(time)l(out)8 b Fl(\))208
-1719 y Fq(Set)29 b(the)g(timeout)h(for)e(newly)h(created)f(sessions)g
+1966 y Fl(set_timeout\()p Fc(time)l(out)8 b Fl(\))208
+2065 y Fq(Set)29 b(the)g(timeout)h(for)e(newly)h(created)f(sessions)g
(for)h(this)g(Con)n(text)g(ob)5 b(ject)28 b(to)h Fc(time)l(out)8
b Fq(.)41 b Fc(time)l(out)36 b Fq(m)n(ust)29 b(b)r(e)h(giv)n(en)208
-1819 y(in)f(\(whole\))f(seconds.)40 b(The)29 b(default)g(v)-5
+2165 y(in)f(\(whole\))f(seconds.)40 b(The)29 b(default)g(v)-5
b(alue)28 b(is)h(300)e(seconds.)40 b(See)29 b(the)g(Op)r(enSSL)g(man)n
-(ual)f(for)g(more)g(information)208 1918 y(\(e.g.)36
-b(SSL_CTX_set_timeout\(3\)\).)0 2065 y Fl(set_verify\()p
-Fc(mo)l(de,)26 b(c)l(al)t(lb)l(ack)9 b Fl(\))208 2165
+(ual)f(for)g(more)g(information)208 2265 y(\(e.g.)36
+b(SSL_CTX_set_timeout\(3\)\).)0 2411 y Fl(set_verify\()p
+Fc(mo)l(de,)26 b(c)l(al)t(lb)l(ack)9 b Fl(\))208 2511
y Fq(Set)36 b(the)h(v)n(eri\034cation)e(\035ags)g(for)h(this)h(Con)n
(text)f(ob)5 b(ject)36 b(to)g Fc(mo)l(de)44 b Fq(and)36
b(sp)r(ecify)g(that)h Fc(c)l(al)t(lb)l(ack)47 b Fq(should)36
-b(b)r(e)h(used)208 2265 y(for)30 b(v)n(eri\034cation)g(callbac)n(ks.)45
+b(b)r(e)h(used)208 2611 y(for)30 b(v)n(eri\034cation)g(callbac)n(ks.)45
b Fc(mo)l(de)38 b Fq(should)31 b(b)r(e)h(one)e(of)38
b Fl(VERIFY_NONE)26 b Fq(and)31 b Fl(VERIFY_PEER)p Fq(.)c(If)38
-b Fl(VERIFY_PEER)26 b Fq(is)208 2364 y(used,)j Fc(mo)l(de)36
+b Fl(VERIFY_PEER)26 b Fq(is)208 2710 y(used,)j Fc(mo)l(de)36
b Fq(can)29 b(b)r(e)g(OR:ed)g(with)g Fl(VERIFY_FAIL_IF_NO)o(_P)o(EE)o
(R_C)o(ER)o(T)23 b Fq(and)29 b Fl(VERIFY_CLIENT_O)o(NCE)22
-b Fq(to)29 b(further)208 2464 y(con)n(trol)23 b(the)j(b)r(eha)n(viour.)
+b Fq(to)29 b(further)208 2810 y(con)n(trol)23 b(the)j(b)r(eha)n(viour.)
34 b Fc(c)l(al)t(lb)l(ack)i Fq(should)25 b(tak)n(e)f(\034v)n(e)h
(argumen)n(ts:)34 b(A)25 b(Connection)g(ob)5 b(ject,)25
-b(an)g(X509)f(ob)5 b(ject,)25 b(and)208 2563 y(three)e(in)n(teger)g(v)
+b(an)g(X509)f(ob)5 b(ject,)25 b(and)208 2910 y(three)e(in)n(teger)g(v)
-5 b(ariables,)23 b(whic)n(h)h(are)f(in)h(turn)g(p)r(oten)n(tial)g
(error)d(n)n(um)n(b)r(er,)k(error)c(depth)k(and)f(return)f(co)r(de.)35
-b Fc(c)l(al)t(lb)l(ack)208 2663 y Fq(should)27 b(return)g(true)g(if)h
+b Fc(c)l(al)t(lb)l(ack)208 3009 y Fq(should)27 b(return)g(true)g(if)h
(v)n(eri\034cation)f(passes)f(and)h(false)h(otherwise.)0
-2810 y Fl(set_verify_depth)o(\()p Fc(depth)6 b Fl(\))208
-2910 y Fq(Set)36 b(the)g(maxim)n(um)f(depth)h(for)g(the)g
+3156 y Fl(set_verify_depth)o(\()p Fc(depth)6 b Fl(\))208
+3256 y Fq(Set)36 b(the)g(maxim)n(um)f(depth)h(for)g(the)g
(certi\034cate)f(c)n(hain)g(v)n(eri\034cation)f(that)i(shall)f(b)r(e)h
-(allo)n(w)n(ed)e(for)i(this)f(Con)n(text)208 3009 y(ob)5
-b(ject.)0 3156 y Fl(use_certificate\()o Fc(c)l(ert)j
-Fl(\))208 3256 y Fq(Use)27 b(the)h(certi\034cate)f Fc(c)l(ert)35
+(allo)n(w)n(ed)e(for)i(this)f(Con)n(text)208 3355 y(ob)5
+b(ject.)0 3502 y Fl(use_certificate\()o Fc(c)l(ert)j
+Fl(\))208 3602 y Fq(Use)27 b(the)h(certi\034cate)f Fc(c)l(ert)35
b Fq(whic)n(h)28 b(has)f(to)g(b)r(e)h(a)f(X509)g(ob)5
-b(ject.)0 3403 y Fl(add_extra_chain_)o(ce)o(rt\()o Fc(c)l(ert)j
-Fl(\))208 3502 y Fq(A)n(dds)32 b(the)h(certi\034cate)f
+b(ject.)0 3749 y Fl(add_extra_chain_)o(ce)o(rt\()o Fc(c)l(ert)j
+Fl(\))208 3848 y Fq(A)n(dds)32 b(the)h(certi\034cate)f
Fc(c)l(ert)8 b Fq(,)34 b(whic)n(h)f(has)f(to)g(b)r(e)i(a)e(X509)f(ob)5
b(ject,)34 b(to)f(the)g(certi\034cate)f(c)n(hain)g(presen)n(ted)g
-(together)208 3602 y(with)c(the)g(certi\034cate.)0 3749
+(together)208 3948 y(with)c(the)g(certi\034cate.)0 4095
y Fl(use_certificate_)o(ch)o(ain)o(_f)o(il)o(e\()p Fc(\034)o(le)6
-b Fl(\))208 3848 y Fq(Load)26 b(a)h(certi\034cate)g(c)n(hain)g(from)h
+b Fl(\))208 4194 y Fq(Load)26 b(a)h(certi\034cate)g(c)n(hain)g(from)h
Fc(\034le)34 b Fq(whic)n(h)27 b(m)n(ust)h(b)r(e)g(PEM)g(enco)r(ded.)0
-3995 y Fl(use_privatekey\()p Fc(pkey)7 b Fl(\))208 4095
+4341 y Fl(use_privatekey\()p Fc(pkey)7 b Fl(\))208 4441
y Fq(Use)27 b(the)h(priv)-5 b(ate)27 b(k)n(ey)h Fc(pkey)36
b Fq(whic)n(h)28 b(has)f(to)g(b)r(e)h(a)f(PKey)h(ob)5
-b(ject.)0 4256 y Fl(use_certificate_)o(fi)o(le\()o Fc(\034le)h
-Fb([)p Fc(,)24 b(format)d Fb(])p Fl(\))208 4356 y Fq(Load)i(the)h
+b(ject.)0 4602 y Fl(use_certificate_)o(fi)o(le\()o Fc(\034le)h
+Fb([)p Fc(,)24 b(format)d Fb(])p Fl(\))208 4702 y Fq(Load)i(the)h
(\034rst)g(certi\034cate)f(found)h(in)h Fc(\034le)6 b
Fq(.)36 b(The)24 b(certi\034cate)f(m)n(ust)h(b)r(e)h(in)f(the)g(format)
g(sp)r(eci\034ed)g(b)n(y)h Fc(format)8 b Fq(,)25 b(whic)n(h)208
-4455 y(is)i(either)g Fl(FILETYPE_PEM)c Fq(or)k Fl(FILETYPE_ASN1)p
+4801 y(is)i(either)g Fl(FILETYPE_PEM)c Fq(or)k Fl(FILETYPE_ASN1)p
Fq(.)k(The)d(default)g(is)f Fl(FILETYPE_PEM)p Fq(.)0
-4602 y Fl(use_privatekey_f)o(il)o(e\()p Fc(\034)o(le)6
-b Fb([)p Fc(,)25 b(format)20 b Fb(])p Fl(\))208 4702
+4948 y Fl(use_privatekey_f)o(il)o(e\()p Fc(\034)o(le)6
+b Fb([)p Fc(,)25 b(format)20 b Fb(])p Fl(\))208 5048
y Fq(Load)31 b(the)h(\034rst)g(priv)-5 b(ate)31 b(k)n(ey)g(found)i(in)f
Fc(\034le)6 b Fq(.)50 b(The)32 b(priv)-5 b(ate)32 b(k)n(ey)f(m)n(ust)h
(b)r(e)g(in)h(the)f(format)f(sp)r(eci\034ed)i(b)n(y)f
-Fc(format)8 b Fq(,)208 4801 y(whic)n(h)27 b(is)g(either)h
+Fc(format)8 b Fq(,)208 5148 y(whic)n(h)27 b(is)g(either)h
Fl(FILETYPE_PEM)22 b Fq(or)27 b Fl(FILETYPE_ASN1)p Fq(.)32
-b(The)27 b(default)h(is)g Fl(FILETYPE_PEM)p Fq(.)0 5064
-y Ff(Connection)e(objects)0 5265 y Fq(Connection)h(ob)5
-b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n(wing)f(metho)r(ds:)p
-0 5549 3901 4 v 0 5649 a Ff(3.3)82 b Fl(SSL)26 b Ff(\026)i(An)g
-(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f(of)h(Op)r(enSSL)
-1611 b(13)p eop end
-%%Page: 14 14
-TeXDict begin 14 13 bop 0 83 a Fl(accept\(\))208 183
-y Fq(Call)33 b(the)g Fl(accept)e Fq(metho)r(d)j(of)f(the)h(underlying)f
-(so)r(c)n(k)n(et)f(and)h(set)h(up)g(SSL)f(on)g(the)h(returned)f(so)r(c)
-n(k)n(et,)h(using)f(the)208 282 y(Con)n(text)22 b(ob)5
-b(ject)22 b(supplied)h(to)f(this)h(Connection)f(ob)5
-b(ject)22 b(at)h(creation.)34 b(Returns)22 b(a)g(pair)g
-Fl(\()p Fc(c)l(onn)6 b Fl(,)43 b Fc(addr)l(ess)7 b Fl(\))p
-Fq(.)36 b(where)208 382 y Fc(c)l(onn)d Fq(is)28 b(the)g(new)f
-(Connection)g(ob)5 b(ject)28 b(created,)e(and)i Fc(addr)l(ess)35
-b Fq(is)28 b(as)f(returned)g(b)n(y)g(the)h(so)r(c)n(k)n(et's)e
-Fl(accept)p Fq(.)0 529 y Fl(bind\()p Fc(addr)l(ess)7
-b Fl(\))208 628 y Fq(Call)27 b(the)h Fl(bind)e Fq(metho)r(d)i(of)f(the)
-h(underlying)f(so)r(c)n(k)n(et.)0 775 y Fl(close\(\))208
-875 y Fq(Call)i(the)h Fl(close)e Fq(metho)r(d)i(of)g(the)g(underlying)f
-(so)r(c)n(k)n(et.)43 b(Note:)e(If)31 b(y)n(ou)e(w)n(an)n(t)g(correct)f
-(SSL)i(closure,)f(y)n(ou)g(need)h(to)208 975 y(call)d(the)h
-Fl(shutdown)c Fq(metho)r(d)k(\034rst.)0 1121 y Fl(connect\()p
-Fc(addr)l(ess)7 b Fl(\))208 1221 y Fq(Call)31 b(the)h
+b(The)27 b(default)h(is)g Fl(FILETYPE_PEM)p Fq(.)p 0
+5549 3901 4 v 0 5649 a Ff(14)2197 b(3)83 b Fl(OpenSSL)24
+b Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p eop
+end
+%%Page: 15 15
+TeXDict begin 15 14 bop 0 83 a Ff(Connection)26 b(objects)0
+283 y Fq(Connection)h(ob)5 b(jects)27 b(ha)n(v)n(e)f(the)i(follo)n
+(wing)f(metho)r(ds:)0 430 y Fl(accept\(\))208 530 y Fq(Call)33
+b(the)g Fl(accept)e Fq(metho)r(d)j(of)f(the)h(underlying)f(so)r(c)n(k)n
+(et)f(and)h(set)h(up)g(SSL)f(on)g(the)h(returned)f(so)r(c)n(k)n(et,)h
+(using)f(the)208 630 y(Con)n(text)22 b(ob)5 b(ject)22
+b(supplied)h(to)f(this)h(Connection)f(ob)5 b(ject)22
+b(at)h(creation.)34 b(Returns)22 b(a)g(pair)g Fl(\()p
+Fc(c)l(onn)6 b Fl(,)43 b Fc(addr)l(ess)7 b Fl(\))p Fq(.)36
+b(where)208 729 y Fc(c)l(onn)d Fq(is)28 b(the)g(new)f(Connection)g(ob)5
+b(ject)28 b(created,)e(and)i Fc(addr)l(ess)35 b Fq(is)28
+b(as)f(returned)g(b)n(y)g(the)h(so)r(c)n(k)n(et's)e Fl(accept)p
+Fq(.)0 876 y Fl(bind\()p Fc(addr)l(ess)7 b Fl(\))208
+976 y Fq(Call)27 b(the)h Fl(bind)e Fq(metho)r(d)i(of)f(the)h
+(underlying)f(so)r(c)n(k)n(et.)0 1123 y Fl(close\(\))208
+1222 y Fq(Call)i(the)h Fl(close)e Fq(metho)r(d)i(of)g(the)g(underlying)
+f(so)r(c)n(k)n(et.)43 b(Note:)e(If)31 b(y)n(ou)e(w)n(an)n(t)g(correct)f
+(SSL)i(closure,)f(y)n(ou)g(need)h(to)208 1322 y(call)d(the)h
+Fl(shutdown)c Fq(metho)r(d)k(\034rst.)0 1469 y Fl(connect\()p
+Fc(addr)l(ess)7 b Fl(\))208 1568 y Fq(Call)31 b(the)h
Fl(connect)e Fq(metho)r(d)i(of)g(the)g(underlying)g(so)r(c)n(k)n(et)e
(and)i(set)g(up)g(SSL)h(on)e(the)i(so)r(c)n(k)n(et,)f(using)f(the)h
-(Con)n(text)208 1321 y(ob)5 b(ject)27 b(supplied)h(to)f(this)h
-(Connection)f(ob)5 b(ject)27 b(at)h(creation.)0 1468
-y Fl(connect_ex\()p Fc(addr)l(ess)7 b Fl(\))208 1567
+(Con)n(text)208 1668 y(ob)5 b(ject)27 b(supplied)h(to)f(this)h
+(Connection)f(ob)5 b(ject)27 b(at)h(creation.)0 1815
+y Fl(connect_ex\()p Fc(addr)l(ess)7 b Fl(\))208 1914
y Fq(Call)24 b(the)g Fl(connect_ex)c Fq(metho)r(d)25
b(of)f(the)h(underlying)f(so)r(c)n(k)n(et)f(and)h(set)g(up)h(SSL)f(on)g
(the)h(so)r(c)n(k)n(et,)f(using)g(the)g(Con)n(text)208
-1667 y(ob)5 b(ject)35 b(supplied)g(to)h(this)f(Connection)g(ob)5
+2014 y(ob)5 b(ject)35 b(supplied)g(to)h(this)f(Connection)g(ob)5
b(ject)36 b(at)f(creation.)59 b(Note)36 b(that)f(if)h(the)g
-Fl(connect_ex)31 b Fq(metho)r(d)36 b(of)g(the)208 1766
+Fl(connect_ex)31 b Fq(metho)r(d)36 b(of)g(the)208 2114
y(so)r(c)n(k)n(et)26 b(do)r(esn't)i(return)f(0,)g(SSL)h(w)n(on't)f(b)r
-(e)h(initialized.)0 1913 y Fl(do_handshake\(\))208 2013
+(e)h(initialized.)0 2261 y Fl(do_handshake\(\))208 2360
y Fq(P)n(erform)49 b(an)h(SSL)g(handshak)n(e)f(\(usually)h(called)g
(after)f Fl(renegotiate)d Fq(or)j(one)h(of)57 b Fl(set_accept_stat)o(e)
-44 b Fq(or)208 2113 y Fl(set_accept_stat)o(e)p Fq(\).)31
+44 b Fq(or)208 2460 y Fl(set_accept_stat)o(e)p Fq(\).)31
b(This)d(can)f(raise)f(the)i(same)f(exceptions)g(as)g
-Fl(send)f Fq(and)h Fl(recv)p Fq(.)0 2259 y Fl(fileno\(\))208
-2359 y Fq(Retriev)n(e)f(the)i(\034le)g(descriptor)e(n)n(um)n(b)r(er)i
-(for)f(the)h(underlying)e(so)r(c)n(k)n(et.)0 2506 y Fl(listen\()p
-Fc(b)l(acklo)l(g)7 b Fl(\))208 2606 y Fq(Call)27 b(the)h
+Fl(send)f Fq(and)h Fl(recv)p Fq(.)0 2607 y Fl(fileno\(\))208
+2706 y Fq(Retriev)n(e)f(the)i(\034le)g(descriptor)e(n)n(um)n(b)r(er)i
+(for)f(the)h(underlying)e(so)r(c)n(k)n(et.)0 2853 y Fl(listen\()p
+Fc(b)l(acklo)l(g)7 b Fl(\))208 2953 y Fq(Call)27 b(the)h
Fl(listen)d Fq(metho)r(d)j(of)f(the)h(underlying)f(so)r(c)n(k)n(et.)0
-2752 y Fl(get_app_data\(\))208 2852 y Fq(Retriev)n(e)f(application)h
-(data)g(as)g(set)h(b)n(y)g Fl(set_app_data)p Fq(.)0 2999
-y Fl(get_cipher_list\()o(\))208 3099 y Fq(Retriev)n(e)23
+3100 y Fl(get_app_data\(\))208 3199 y Fq(Retriev)n(e)f(application)h
+(data)g(as)g(set)h(b)n(y)g Fl(set_app_data)p Fq(.)0 3346
+y Fl(get_cipher_list\()o(\))208 3446 y Fq(Retriev)n(e)23
b(the)h(list)g(of)g(ciphers)g(used)g(b)n(y)f(the)i(Connection)e(ob)5
b(ject.)36 b(W)-9 b(ARNING:)25 b(This)f(API)h(has)e(c)n(hanged.)35
-b(It)24 b(used)208 3198 y(to)j(tak)n(e)g(an)g(optional)g(parameter)f
+b(It)24 b(used)208 3545 y(to)j(tak)n(e)g(an)g(optional)g(parameter)f
(and)h(just)h(return)g(a)f(string,)g(but)h(not)f(it)h(returns)f(the)h
-(en)n(tire)f(list)h(in)g(one)f(go.)0 3345 y Fl(get_client_ca_li)o(st)o
-(\(\))208 3445 y Fq(Retriev)n(e)e(the)i(list)g(of)f(preferred)g(clien)n
+(en)n(tire)f(list)h(in)g(one)f(go.)0 3692 y Fl(get_client_ca_li)o(st)o
+(\(\))208 3792 y Fq(Retriev)n(e)e(the)i(list)g(of)f(preferred)g(clien)n
(t)g(certi\034cate)g(issuers)g(sen)n(t)g(b)n(y)g(the)h(serv)n(er)e(as)h
-Fl(OpenSSL.crypto.)o(X50)o(9N)o(am)o(e)208 3544 y Fq(ob)5
-b(jects.)208 3677 y(If)25 b(this)g(is)f(a)h(clien)n(t)f
+Fl(OpenSSL.crypto.)o(X50)o(9N)o(am)o(e)208 3892 y Fq(ob)5
+b(jects.)208 4024 y(If)25 b(this)g(is)f(a)h(clien)n(t)f
Fl(Connection)p Fq(,)e(the)j(list)g(will)g(b)r(e)g(empt)n(y)f(un)n(til)
h(the)h(connection)e(with)h(the)g(serv)n(er)e(is)h(established.)208
-3810 y(If)33 b(this)g(is)g(a)f(serv)n(er)g Fl(Connection)p
+4157 y(If)33 b(this)g(is)g(a)f(serv)n(er)g Fl(Connection)p
Fq(,)e(return)i(the)h(list)h(of)e(certi\034cate)h(authorities)f(that)h
-(will)g(b)r(e)h(sen)n(t)e(or)g(has)h(b)r(een)208 3910
+(will)g(b)r(e)h(sen)n(t)e(or)g(has)h(b)r(een)208 4257
y(sen)n(t)27 b(to)g(the)h(clien)n(t,)g(as)f(con)n(trolled)f(b)n(y)h
(this)h Fl(Connection)p Fq('s)c Fl(Context)p Fq(.)208
-4042 y(New)j(in)h(v)n(ersion)e(0.10.)0 4189 y Fl(get_context\(\))208
-4289 y Fq(Retriev)n(e)g(the)i(Con)n(text)f(ob)5 b(ject)28
-b(asso)r(ciated)e(with)i(this)g(Connection.)0 4436 y
-Fl(get_peer_certifi)o(ca)o(te\()o(\))208 4535 y Fq(Retriev)n(e)e(the)i
-(other)f(side's)g(certi\034cate)g(\(if)i(an)n(y\))0 4682
-y Fl(getpeername\(\))208 4782 y Fq(Call)e(the)h Fl(getpeername)23
+4390 y(New)j(in)h(v)n(ersion)e(0.10.)0 4537 y Fl(get_context\(\))208
+4636 y Fq(Retriev)n(e)g(the)i(Con)n(text)f(ob)5 b(ject)28
+b(asso)r(ciated)e(with)i(this)g(Connection.)0 4783 y
+Fl(get_peer_certifi)o(ca)o(te\()o(\))208 4883 y Fq(Retriev)n(e)e(the)i
+(other)f(side's)g(certi\034cate)g(\(if)i(an)n(y\))0 5030
+y Fl(getpeername\(\))208 5129 y Fq(Call)e(the)h Fl(getpeername)23
b Fq(metho)r(d)28 b(of)f(the)h(underlying)f(so)r(c)n(k)n(et.)0
-4929 y Fl(getsockname\(\))208 5028 y Fq(Call)g(the)h
+5276 y Fl(getsockname\(\))208 5376 y Fq(Call)g(the)h
Fl(getsockname)23 b Fq(metho)r(d)28 b(of)f(the)h(underlying)f(so)r(c)n
-(k)n(et.)0 5192 y Fl(getsockopt\()p Fc(level,)f(optname)6
-b Fb([)p Fc(,)31 b(bu\035en)18 b Fb(])p Fl(\))208 5292
-y Fq(Call)27 b(the)h Fl(getsockopt)23 b Fq(metho)r(d)28
-b(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)p 0 5549 3901
-4 v 0 5649 a Ff(14)2197 b(3)83 b Fl(OpenSSL)24 b Ff(\026)k(Python)f
-(interface)h(to)f(Op)r(enSSL)p eop end
-%%Page: 15 15
-TeXDict begin 15 14 bop 0 83 a Fl(pending\(\))208 183
-y Fq(Retriev)n(e)22 b(the)h(n)n(um)n(b)r(er)g(of)g(b)n(ytes)g(that)h
-(can)e(b)r(e)i(safely)f(read)f(from)h(the)g(SSL)h(bu\033er)f(\()p
-Fc(not)g Fq(the)h(underlying)e(transp)r(ort)208 282 y(bu\033er\).)0
-429 y Fl(recv\()p Fc(bufsize)6 b Fl(\))208 529 y Fq(Receiv)n(e)30
+(k)n(et.)p 0 5549 3901 4 v 0 5649 a Ff(3.3)82 b Fl(SSL)26
+b Ff(\026)i(An)g(interface)g(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f
+(of)h(Op)r(enSSL)1611 b(15)p eop end
+%%Page: 16 16
+TeXDict begin 16 15 bop 0 90 a Fl(getsockopt\()p Fc(level,)26
+b(optname)6 b Fb([)p Fc(,)31 b(bu\035en)18 b Fb(])p Fl(\))208
+189 y Fq(Call)27 b(the)h Fl(getsockopt)23 b Fq(metho)r(d)28
+b(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)0 336 y Fl(pending\(\))208
+436 y Fq(Retriev)n(e)22 b(the)h(n)n(um)n(b)r(er)g(of)g(b)n(ytes)g(that)
+h(can)e(b)r(e)i(safely)f(read)f(from)h(the)g(SSL)h(bu\033er)f(\()p
+Fc(not)g Fq(the)h(underlying)e(transp)r(ort)208 535 y(bu\033er\).)0
+682 y Fl(recv\()p Fc(bufsize)6 b Fl(\))208 782 y Fq(Receiv)n(e)30
b(data)h(from)g(the)h(Connection.)47 b(The)31 b(return)g(v)-5
b(alue)31 b(is)h(a)e(string)h(represen)n(ting)f(the)h(data)g(receiv)n
-(ed.)47 b(The)208 628 y(maxim)n(um)27 b(amoun)n(t)g(of)g(data)h(to)f(b)
+(ed.)47 b(The)208 881 y(maxim)n(um)27 b(amoun)n(t)g(of)g(data)h(to)f(b)
r(e)h(receiv)n(ed)e(at)i(once,)f(is)g(sp)r(eci\034ed)h(b)n(y)h
-Fc(bufsize)6 b Fq(.)0 775 y Fl(bio_write\()p Fc(bytes)h
-Fl(\))208 875 y Fq(If)27 b(the)h(Connection)f(w)n(as)f(created)h(with)g
-(a)g(memory)g(BIO,)g(this)g(metho)r(d)h(can)f(b)r(e)h(used)f(to)g(add)g
-(b)n(ytes)g(to)g(the)h(read)208 975 y(end)g(of)g(that)g(memory)f(BIO.)g
-(The)h(Connection)g(can)f(then)i(read)e(the)h(b)n(ytes)g(\(for)f
-(example,)h(in)g(resp)r(onse)f(to)h(a)f(call)208 1074
-y(to)g Fl(recv)p Fq(\).)0 1221 y Fl(renegotiate\(\))208
-1321 y Fq(Renegotiate)f(the)i(SSL)g(session.)36 b(Call)27
+Fc(bufsize)6 b Fq(.)0 1028 y Fl(bio_write\()p Fc(bytes)h
+Fl(\))208 1128 y Fq(If)27 b(the)h(Connection)f(w)n(as)f(created)h(with)
+g(a)g(memory)g(BIO,)g(this)g(metho)r(d)h(can)f(b)r(e)h(used)f(to)g(add)
+g(b)n(ytes)g(to)g(the)h(read)208 1228 y(end)g(of)g(that)g(memory)f
+(BIO.)g(The)h(Connection)g(can)f(then)i(read)e(the)h(b)n(ytes)g(\(for)f
+(example,)h(in)g(resp)r(onse)f(to)h(a)f(call)208 1327
+y(to)g Fl(recv)p Fq(\).)0 1474 y Fl(renegotiate\(\))208
+1574 y Fq(Renegotiate)f(the)i(SSL)g(session.)36 b(Call)27
b(this)h(if)g(y)n(ou)f(wish)g(to)h(c)n(hange)e(cipher)h(suites)h(or)e
-(an)n(ything)h(lik)n(e)g(that.)0 1468 y Fl(send\()p Fc(string)7
-b Fl(\))208 1567 y Fq(Send)27 b(the)h Fc(string)35 b
-Fq(data)27 b(to)h(the)g(Connection.)0 1714 y Fl(bio_read\()p
-Fc(bufsize)6 b Fl(\))208 1814 y Fq(If)31 b(the)g(Connection)g(w)n(as)f
+(an)n(ything)h(lik)n(e)g(that.)0 1721 y Fl(send\()p Fc(string)7
+b Fl(\))208 1820 y Fq(Send)27 b(the)h Fc(string)35 b
+Fq(data)27 b(to)h(the)g(Connection.)0 1967 y Fl(bio_read\()p
+Fc(bufsize)6 b Fl(\))208 2067 y Fq(If)31 b(the)g(Connection)g(w)n(as)f
(created)g(with)i(a)e(memory)g(BIO,)h(this)g(metho)r(d)g(can)g(b)r(e)h
-(used)e(to)h(read)f(b)n(ytes)h(from)g(the)208 1913 y(write)d(end)g(of)g
+(used)e(to)h(read)f(b)n(ytes)h(from)g(the)208 2166 y(write)d(end)g(of)g
(that)h(memory)e(BIO.)h(Man)n(y)f(Connection)h(metho)r(ds)h(will)f(add)
g(b)n(ytes)g(whic)n(h)g(m)n(ust)g(b)r(e)h(read)e(in)i(this)208
-2013 y(manner)c(or)h(the)g(bu\033er)h(will)f(ev)n(en)n(tually)f(\034ll)
+2266 y(manner)c(or)h(the)g(bu\033er)h(will)f(ev)n(en)n(tually)f(\034ll)
i(up)g(and)f(the)g(Connection)g(will)g(b)r(e)h(able)f(to)g(tak)n(e)g
-(no)g(further)g(actions.)0 2160 y Fl(sendall\()p Fc(string)7
-b Fl(\))208 2259 y Fq(Send)30 b(all)f(of)h(the)g Fc(string)37
+(no)g(further)g(actions.)0 2413 y Fl(sendall\()p Fc(string)7
+b Fl(\))208 2512 y Fq(Send)30 b(all)f(of)h(the)g Fc(string)37
b Fq(data)29 b(to)g(the)h(Connection.)43 b(This)30 b(calls)f
Fl(send)f Fq(rep)r(eatedly)h(un)n(til)h(all)f(data)h(is)f(sen)n(t.)43
-b(If)30 b(an)208 2359 y(error)25 b(o)r(ccurs,)i(it's)h(imp)r(ossible)f
+b(If)30 b(an)208 2612 y(error)25 b(o)r(ccurs,)i(it's)h(imp)r(ossible)f
(to)g(tell)h(ho)n(w)f(m)n(uc)n(h)h(data)f(has)g(b)r(een)h(sen)n(t.)0
-2506 y Fl(set_accept_state)o(\(\))208 2606 y Fq(Set)20
+2759 y Fl(set_accept_state)o(\(\))208 2859 y Fq(Set)20
b(the)g(connection)f(to)h(w)n(ork)e(in)i(serv)n(er)e(mo)r(de.)34
b(The)20 b(handshak)n(e)f(will)h(b)r(e)g(handled)g(automatically)e(b)n
-(y)i(read/write.)0 2752 y Fl(set_app_data\()p Fc(data)6
-b Fl(\))208 2852 y Fq(Asso)r(ciate)39 b Fc(data)47 b
+(y)i(read/write.)0 3005 y Fl(set_app_data\()p Fc(data)6
+b Fl(\))208 3105 y Fq(Asso)r(ciate)39 b Fc(data)47 b
Fq(with)40 b(this)g(Connection)g(ob)5 b(ject.)73 b Fc(data)47
b Fq(can)39 b(b)r(e)i(retriev)n(ed)d(later)h(using)h(the)g
-Fl(get_app_data)208 2952 y Fq(metho)r(d.)0 3099 y Fl(set_connect_stat)o
-(e\()o(\))208 3198 y Fq(Set)21 b(the)g(connection)g(to)g(w)n(ork)e(in)i
+Fl(get_app_data)208 3205 y Fq(metho)r(d.)0 3352 y Fl(set_connect_stat)o
+(e\()o(\))208 3451 y Fq(Set)21 b(the)g(connection)g(to)g(w)n(ork)e(in)i
(clien)n(t)g(mo)r(de.)35 b(The)21 b(handshak)n(e)f(will)h(b)r(e)g
-(handled)g(automatically)f(b)n(y)h(read/write.)0 3345
-y Fl(setblocking\()p Fc(\035ag)7 b Fl(\))208 3445 y Fq(Call)27
+(handled)g(automatically)f(b)n(y)h(read/write.)0 3598
+y Fl(setblocking\()p Fc(\035ag)7 b Fl(\))208 3698 y Fq(Call)27
b(the)h Fl(setblocking)23 b Fq(metho)r(d)28 b(of)f(the)h(underlying)f
-(so)r(c)n(k)n(et.)0 3591 y Fl(setsockopt\()p Fc(level,)f(optname,)31
-b(value)6 b Fl(\))208 3691 y Fq(Call)27 b(the)h Fl(setsockopt)23
+(so)r(c)n(k)n(et.)0 3845 y Fl(setsockopt\()p Fc(level,)f(optname,)31
+b(value)6 b Fl(\))208 3944 y Fq(Call)27 b(the)h Fl(setsockopt)23
b Fq(metho)r(d)28 b(of)g(the)g(underlying)f(so)r(c)n(k)n(et.)0
-3838 y Fl(shutdown\(\))208 3938 y Fq(Send)35 b(the)h(sh)n(utdo)n(wn)f
+4091 y Fl(shutdown\(\))208 4191 y Fq(Send)35 b(the)h(sh)n(utdo)n(wn)f
(message)f(to)h(the)h(Connection.)60 b(Returns)35 b(true)g(if)h(the)g
-(sh)n(utdo)n(wn)e(message)g(exc)n(hange)g(is)208 4037
+(sh)n(utdo)n(wn)e(message)g(exc)n(hange)g(is)208 4290
y(completed)25 b(and)g(false)h(otherwise)e(\(in)i(whic)n(h)g(case)e(y)n
(ou)h(call)g Fl(recv\(\))e Fq(or)i Fl(send\(\))e Fq(when)j(the)g
-(connection)f(b)r(ecomes)208 4137 y(readable/writeable.)0
-4284 y Fl(get_shutdown\(\))208 4383 y Fq(Get)70 b(the)g(sh)n(utdo)n(wn)
+(connection)f(b)r(ecomes)208 4390 y(readable/writeable.)0
+4537 y Fl(get_shutdown\(\))208 4636 y Fq(Get)70 b(the)g(sh)n(utdo)n(wn)
f(state)g(of)h(the)g(Connection.)162 b(Returns)69 b(a)h(bitv)n(ector)e
-(of)i(either)f(or)g(b)r(oth)h(of)208 4483 y Fc(SENT_SHUTDO)n(WN)39
-b Fq(and)27 b Fc(RECEIVED_SHUTDO)n(WN)14 b Fq(.)0 4630
-y Fl(set_shutdown\()p Fc(state)6 b Fl(\))208 4729 y Fq(Set)21
+(of)i(either)f(or)g(b)r(oth)h(of)208 4736 y Fc(SENT_SHUTDO)n(WN)39
+b Fq(and)27 b Fc(RECEIVED_SHUTDO)n(WN)14 b Fq(.)0 4883
+y Fl(set_shutdown\()p Fc(state)6 b Fl(\))208 4983 y Fq(Set)21
b(the)g(sh)n(utdo)n(wn)g(state)g(of)g(the)g(Connection.)34
b Fc(state)27 b Fq(is)21 b(a)g(bitv)n(ector)f(of)h(either)g(or)f(b)r
-(oth)i(of)27 b Fc(SENT_SHUTDO)n(WN)208 4829 y Fq(and)g
-Fc(RECEIVED_SHUTDO)n(WN)14 b Fq(.)0 4976 y Fl(sock_shutdown\()p
-Fc(how)9 b Fl(\))208 5076 y Fq(Call)27 b(the)h Fl(shutdown)c
-Fq(metho)r(d)k(of)g(the)g(underlying)e(so)r(c)n(k)n(et.)0
-5222 y Fl(bio_shutdown\(\))208 5322 y Fq(If)j(the)h(Connection)f(w)n
-(as)f(created)g(with)i(a)f(memory)f(BIO,)h(this)h(metho)r(d)f(can)g(b)r
-(e)h(used)f(to)g(indicate)g(that)h(\020end)f(of)p 0 5549
-3901 4 v 0 5649 a Ff(3.3)82 b Fl(SSL)26 b Ff(\026)i(An)g(interface)g
-(to)f(the)g(SSL-sp)r(eci\034c)h(pa)n(rts)f(of)h(Op)r(enSSL)1611
-b(15)p eop end
-%%Page: 16 16
-TeXDict begin 16 15 bop 208 83 a Fq(\034le\021)34 b(has)27
+(oth)i(of)27 b Fc(SENT_SHUTDO)n(WN)208 5082 y Fq(and)g
+Fc(RECEIVED_SHUTDO)n(WN)14 b Fq(.)0 5229 y Fl(sock_shutdown\()p
+Fc(how)9 b Fl(\))208 5329 y Fq(Call)27 b(the)h Fl(shutdown)c
+Fq(metho)r(d)k(of)g(the)g(underlying)e(so)r(c)n(k)n(et.)p
+0 5549 3901 4 v 0 5649 a Ff(16)2197 b(3)83 b Fl(OpenSSL)24
+b Ff(\026)k(Python)f(interface)h(to)f(Op)r(enSSL)p eop
+end
+%%Page: 17 17
+TeXDict begin 17 16 bop 0 83 a Fl(bio_shutdown\(\))208
+183 y Fq(If)29 b(the)h(Connection)f(w)n(as)f(created)g(with)i(a)f
+(memory)f(BIO,)h(this)h(metho)r(d)f(can)g(b)r(e)h(used)f(to)g(indicate)
+g(that)h(\020end)f(of)208 282 y(\034le\021)34 b(has)27
b(b)r(een)h(reac)n(hed)e(on)h(the)h(read)f(end)h(of)f(that)h(memory)f
-(BIO.)0 230 y Fl(state_string\(\))208 330 y Fq(Retriev)n(e)f(a)i(v)n
+(BIO.)0 429 y Fl(state_string\(\))208 529 y Fq(Retriev)n(e)f(a)i(v)n
(erb)r(ose)e(string)g(detailing)i(the)g(state)f(of)h(the)f(Connection.)
-0 476 y Fl(client_random\(\))208 576 y Fq(Retriev)n(e)f(the)i(random)f
+0 676 y Fl(client_random\(\))208 775 y Fq(Retriev)n(e)f(the)i(random)f
(v)-5 b(alue)27 b(used)h(with)g(the)g(clien)n(t)f(hello)h(message.)0
-723 y Fl(server_random\(\))208 823 y Fq(Retriev)n(e)e(the)i(random)f(v)
--5 b(alue)27 b(used)h(with)g(the)g(serv)n(er)e(hello)h(message.)0
-969 y Fl(master_key\(\))208 1069 y Fq(Retriev)n(e)f(the)i(v)-5
+922 y Fl(server_random\(\))208 1022 y Fq(Retriev)n(e)e(the)i(random)f
+(v)-5 b(alue)27 b(used)h(with)g(the)g(serv)n(er)e(hello)h(message.)0
+1169 y Fl(master_key\(\))208 1268 y Fq(Retriev)n(e)f(the)i(v)-5
b(alue)28 b(of)f(the)h(master)f(k)n(ey)g(for)g(this)h(session.)0
-1216 y Fl(want_read\(\))208 1316 y Fq(Chec)n(ks)e(if)i(more)f(data)g
+1415 y Fl(want_read\(\))208 1515 y Fq(Chec)n(ks)e(if)i(more)f(data)g
(has)g(to)h(b)r(e)g(read)e(from)i(the)f(transp)r(ort)g(la)n(y)n(er)f
-(to)h(complete)h(an)f(op)r(eration.)0 1462 y Fl(want_write\(\))208
-1562 y Fq(Chec)n(ks)f(if)i(there)g(is)f(data)g(to)h(write)f(to)g(the)h
+(to)h(complete)h(an)f(op)r(eration.)0 1662 y Fl(want_write\(\))208
+1761 y Fq(Chec)n(ks)f(if)i(there)g(is)f(data)g(to)h(write)f(to)g(the)h
(transp)r(ort)f(la)n(y)n(er)f(to)h(complete)h(an)f(op)r(eration.)0
-1882 y Fr(4)114 b(Internals)0 2111 y Fq(W)-7 b(e)25 b(ran)g(in)n(to)f
+2081 y Fr(4)114 b(Internals)0 2310 y Fq(W)-7 b(e)25 b(ran)g(in)n(to)f
(three)h(main)g(problems)f(dev)n(eloping)g(this:)36 b(Exceptions,)25
b(callbac)n(ks)f(and)h(accessing)e(so)r(c)n(k)n(et)h(metho)r(ds.)36
-b(This)0 2210 y(is)27 b(what)h(this)g(c)n(hapter)e(is)i(ab)r(out.)0
-2488 y Fj(4.1)97 b(Exceptions)0 2688 y Fq(W)-7 b(e)52
+b(This)0 2410 y(is)27 b(what)h(this)g(c)n(hapter)e(is)i(ab)r(out.)0
+2687 y Fj(4.1)97 b(Exceptions)0 2887 y Fq(W)-7 b(e)52
b(realized)f(early)g(that)h(most)g(of)g(the)g(exceptions)f(w)n(ould)h
(b)r(e)g(raised)f(b)n(y)h(the)g(I/O)f(functions)h(of)g(Op)r(enSSL,)0
-2788 y(so)d(it)i(felt)f(natural)f(to)h(mimic)g(Op)r(enSSL's)g(error)e
+2987 y(so)d(it)i(felt)f(natural)f(to)h(mimic)g(Op)r(enSSL's)g(error)e
(co)r(de)i(system,)55 b(translating)48 b(them)j(in)n(to)e(Python)i
-(exceptions.)0 2887 y(This)30 b(naturally)e(giv)n(es)h(us)h(the)g
+(exceptions.)0 3087 y(This)30 b(naturally)e(giv)n(es)h(us)h(the)g
(exceptions)f Fl(SSL.ZeroReturnEr)o(ro)o(r)p Fq(,)24
b Fl(SSL.WantReadError)o Fq(,)h Fl(SSL.WantWriteEr)o(ro)o(r)p
-Fq(,)0 2987 y Fl(SSL.WantX509Look)o(up)o(Err)o(or)c Fq(and)27
-b Fl(SSL.SysCallError)p Fq(.)0 3134 y(F)-7 b(or)27 b(more)g
+Fq(,)0 3186 y Fl(SSL.WantX509Look)o(up)o(Err)o(or)c Fq(and)27
+b Fl(SSL.SysCallError)p Fq(.)0 3333 y(F)-7 b(or)27 b(more)g
(information)g(ab)r(out)g(this,)h(see)f(section)g(3.3.)0
-3411 y Fj(4.2)97 b(Callbacks)0 3612 y Fq(There)34 b(are)f(a)h(n)n(um)n
+3611 y Fj(4.2)97 b(Callbacks)0 3811 y Fq(There)34 b(are)f(a)h(n)n(um)n
(b)r(er)g(of)h(problems)e(with)i(callbac)n(ks.)56 b(First)34
b(of)g(all,)i(Op)r(enSSL)f(is)f(written)h(as)e(a)h(C)h(library)-7
-b(,)34 b(it's)h(not)0 3711 y(mean)n(t)26 b(to)g(ha)n(v)n(e)e(Python)j
+b(,)34 b(it's)h(not)0 3911 y(mean)n(t)26 b(to)g(ha)n(v)n(e)e(Python)j
(callbac)n(ks,)d(so)i(a)f(w)n(a)n(y)g(around)g(that)h(is)g(needed.)36
b(Another)26 b(problem)f(is)h(thread)g(supp)r(ort.)36
-b(A)26 b(lot)0 3811 y(of)h(the)g(Op)r(enSSL)g(I/O)e(functions)i(can)g
+b(A)26 b(lot)0 4010 y(of)h(the)g(Op)r(enSSL)g(I/O)e(functions)i(can)g
(blo)r(c)n(k)f(if)h(the)g(so)r(c)n(k)n(et)f(is)g(in)h(blo)r(c)n(king)f
(mo)r(de,)h(and)g(then)g(y)n(ou)f(w)n(an)n(t)g(other)g(Python)0
-3911 y(threads)i(to)g(b)r(e)h(able)g(to)f(do)h(other)f(things.)40
+4110 y(threads)i(to)g(b)r(e)h(able)g(to)f(do)h(other)f(things.)40
b(The)28 b(real)g(trouble)g(is)h(if)g(y)n(ou'v)n(e)e(released)h(the)h
-(global)e(CPython)i(in)n(terpreter)0 4010 y(lo)r(c)n(k)e(to)h(do)f(a)h
+(global)e(CPython)i(in)n(terpreter)0 4210 y(lo)r(c)n(k)e(to)h(do)f(a)h
(p)r(oten)n(tially)f(blo)r(c)n(king)g(op)r(eration,)g(and)h(the)g(op)r
(eration)f(calls)g(a)g(callbac)n(k.)36 b(Then)28 b(w)n(e)g(m)n(ust)g
-(tak)n(e)f(the)h(GIL)0 4110 y(bac)n(k,)f(since)g(calling)g(Python)h
+(tak)n(e)f(the)h(GIL)0 4309 y(bac)n(k,)f(since)g(calling)g(Python)h
(APIs)g(without)g(holding)f(it)h(is)g(not)f(allo)n(w)n(ed.)0
-4257 y(There)d(are)f(t)n(w)n(o)g(solutions)h(to)g(the)h(\034rst)f
+4456 y(There)d(are)f(t)n(w)n(o)g(solutions)h(to)g(the)h(\034rst)f
(problem,)g(b)r(oth)h(of)f(whic)n(h)g(are)f(necessary)-7
b(.)34 b(The)25 b(\034rst)f(solution)f(to)h(use)h(is)f(if)g(the)h(C)0
-4356 y(callbac)n(k)i(allo)n(ws)f(\021userdata\021)33
+4556 y(callbac)n(k)i(allo)n(ws)f(\021userdata\021)33
b(to)28 b(b)r(e)h(passed)e(to)h(it)g(\(an)g(arbitrary)e(p)r(oin)n(ter)i
(normally\).)37 b(This)28 b(is)g(great!)37 b(W)-7 b(e)28
-b(can)g(set)g(our)0 4456 y(Python)i(function)g(ob)5 b(ject)29
+b(can)g(set)g(our)0 4655 y(Python)i(function)g(ob)5 b(ject)29
b(as)f(the)i(real)f(userdata)f(and)h(em)n(ulate)g(userdata)f(for)h(the)
h(Python)f(function)h(in)g(another)e(w)n(a)n(y)-7 b(.)0
-4556 y(The)24 b(other)g(solution)g(can)g(b)r(e)h(used)g(if)g(an)f(ob)5
+4755 y(The)24 b(other)g(solution)g(can)g(b)r(e)h(used)g(if)g(an)f(ob)5
b(ject)24 b(with)h(an)f(\021app_data\021)29 b(system)c(alw)n(a)n(ys)d
(is)j(passed)e(to)h(the)h(callbac)n(k.)35 b(F)-7 b(or)0
-4655 y(example,)26 b(the)h(SSL)f(ob)5 b(ject)26 b(in)h(Op)r(enSSL)f
+4855 y(example,)26 b(the)h(SSL)f(ob)5 b(ject)26 b(in)h(Op)r(enSSL)f
(has)g(app_data)f(functions)i(and)f(in)h(e.g.)36 b(the)26
b(v)n(eri\034cation)f(callbac)n(ks,)g(y)n(ou)g(can)0
-4755 y(retriev)n(e)i(the)i(related)f(SSL)h(ob)5 b(ject.)39
+4954 y(retriev)n(e)i(the)i(related)f(SSL)h(ob)5 b(ject.)39
b(What)29 b(w)n(e)g(do)f(is)g(to)h(set)f(our)g(wrapp)r(er)g
Fl(Connection)c Fq(ob)5 b(ject)28 b(as)g(app_data)g(for)g(the)0
-4855 y(SSL)g(ob)5 b(ject,)27 b(and)h(w)n(e)f(can)g(easily)g(\034nd)h
-(the)g(Python)g(callbac)n(k.)0 5001 y(The)23 b(other)g(problem)g(is)g
+5054 y(SSL)g(ob)5 b(ject,)27 b(and)h(w)n(e)f(can)g(easily)g(\034nd)h
+(the)g(Python)g(callbac)n(k.)0 5201 y(The)23 b(other)g(problem)g(is)g
(solv)n(ed)f(using)h(thread)g(lo)r(cal)g(v)-5 b(ariables.)34
b(Whenev)n(er)22 b(the)i(GIL)g(is)f(released)f(b)r(efore)h(calling)f
-(in)n(to)h(an)0 5101 y(Op)r(enSSL)j(API,)g(the)g(PyThreadState)f(p)r
+(in)n(to)h(an)0 5300 y(Op)r(enSSL)j(API,)g(the)g(PyThreadState)f(p)r
(oin)n(ter)g(returned)g(b)n(y)h Fl(PyEval_SaveState)19
b Fq(is)25 b(stored)g(in)g(a)g(global)g(thread)g(lo)r(cal)0
-5201 y(v)-5 b(ariable)27 b(\(using)g(Python's)h(o)n(wn)f(TLS)h(API,)g
+5400 y(v)-5 b(ariable)27 b(\(using)g(Python's)h(o)n(wn)f(TLS)h(API,)g
Fl(PyThread_set_key_)o(va)o(lue)o Fq(\).)k(When)c(it)g(is)g(necessary)e
-(to)h(re-acquire)f(the)0 5300 y(GIL,)c(either)g(after)g(the)h(Op)r
+(to)h(re-acquire)f(the)p 0 5549 3901 4 v 3817 5649 a
+Ff(17)p eop end
+%%Page: 18 18
+TeXDict begin 18 17 bop 0 83 a Fq(GIL,)22 b(either)g(after)g(the)h(Op)r
(enSSL)f(API)h(returns)e(or)h(in)g(a)g(C)g(callbac)n(k)f(in)n(v)n(ok)n
(ed)f(b)n(y)i(that)h(Op)r(enSSL)f(API,)h(the)g(v)-5 b(alue)22
-b(of)g(the)0 5400 y(thread)32 b(lo)r(cal)f(v)-5 b(ariable)32
+b(of)g(the)0 183 y(thread)32 b(lo)r(cal)f(v)-5 b(ariable)32
b(is)g(retriev)n(ed)f(\()p Fl(PyThread_get_key)o(_va)o(lu)o(e)p
Fq(\))26 b(and)33 b(used)f(to)g(re-acquire)e(the)j(GIL.)f(This)h(allo)n
-(ws)p 0 5549 3901 4 v 0 5649 a Ff(16)3368 b(4)83 b(Internals)p
-eop end
-%%Page: 17 17
-TeXDict begin 17 16 bop 0 83 a Fq(Python)32 b(threads)e(to)h(execute)h
-(while)f(Op)r(enSSL)g(APIs)h(are)f(running)f(and)i(allo)n(ws)e(use)h
-(of)g(an)n(y)f(particular)g(p)n(yOp)r(enSSL)0 183 y(ob)5
-b(ject)29 b(from)f(an)n(y)g(Python)i(thread,)e(since)h(there)g(is)g(no)
-f(p)r(er-thread)g(state)h(asso)r(ciated)f(with)h(an)n(y)f(of)h(these)g
-(ob)5 b(jects)28 b(and)0 282 y(since)f(Op)r(enSSL)h(is)g(threadsafe)e
-(\(as)h(long)g(as)g(prop)r(erly)g(initialized,)g(as)g(p)n(yOp)r(enSSL)h
-(initializes)f(it\).)0 562 y Fj(4.3)97 b(A)m(cessing)35
-b(So)s(ck)m(et)e(Metho)s(ds)0 762 y Fq(W)-7 b(e)27 b(quic)n(kly)e(sa)n
+(ws)0 282 y(Python)f(threads)e(to)h(execute)h(while)f(Op)r(enSSL)g
+(APIs)h(are)f(running)f(and)i(allo)n(ws)e(use)h(of)g(an)n(y)f
+(particular)g(p)n(yOp)r(enSSL)0 382 y(ob)5 b(ject)29
+b(from)f(an)n(y)g(Python)i(thread,)e(since)h(there)g(is)g(no)f(p)r
+(er-thread)g(state)h(asso)r(ciated)f(with)h(an)n(y)f(of)h(these)g(ob)5
+b(jects)28 b(and)0 482 y(since)f(Op)r(enSSL)h(is)g(threadsafe)e(\(as)h
+(long)g(as)g(prop)r(erly)g(initialized,)g(as)g(p)n(yOp)r(enSSL)h
+(initializes)f(it\).)0 761 y Fj(4.3)97 b(A)m(cessing)35
+b(So)s(ck)m(et)e(Metho)s(ds)0 962 y Fq(W)-7 b(e)27 b(quic)n(kly)e(sa)n
(w)h(the)g(b)r(ene\034t)h(of)g(wrapping)e(so)r(c)n(k)n(et)g(metho)r(ds)
h(in)h(the)g Fl(SSL.Connection)20 b Fq(class,)26 b(for)g(an)g(easy)f
-(transition)0 862 y(in)n(to)e(using)f(SSL.)h(The)g(problem)f(here)h(is)
-f(that)h(the)h Fl(socket)c Fq(mo)r(dule)j(lac)n(ks)f(a)g(C)h(API,)h
-(and)e(all)h(the)g(metho)r(ds)g(are)f(declared)0 962
+(transition)0 1061 y(in)n(to)e(using)f(SSL.)h(The)g(problem)f(here)h
+(is)f(that)h(the)h Fl(socket)c Fq(mo)r(dule)j(lac)n(ks)f(a)g(C)h(API,)h
+(and)e(all)h(the)g(metho)r(ds)g(are)f(declared)0 1161
y(static.)36 b(One)27 b(approac)n(h)d(w)n(ould)i(b)r(e)h(to)f(ha)n(v)n
(e)g Fl(OpenSSL)d Fq(as)j(a)g(submo)r(dule)h(to)f(the)h
Fl(socket)d Fq(mo)r(dule,)j(placing)f(all)g(the)h(co)r(de)0
-1061 y(in)j(`)p Fp(so)r(ck)n(etmo)r(dule.c)p Fq(',)h(but)f(this)g(is)g
+1261 y(in)j(`)p Fp(so)r(ck)n(etmo)r(dule.c)p Fq(',)h(but)f(this)g(is)g
(ob)n(viously)e(not)i(a)f(go)r(o)r(d)g(solution,)h(since)g(y)n(ou)f
(migh)n(t)g(not)h(w)n(an)n(t)f(to)h(imp)r(ort)g(tonnes)f(of)0
-1161 y(extra)f(stu\033)h(y)n(ou're)e(not)i(going)e(to)i(use)f(when)h
+1360 y(extra)f(stu\033)h(y)n(ou're)e(not)i(going)e(to)i(use)f(when)h
(imp)r(orting)f(the)i Fl(socket)c Fq(mo)r(dule.)40 b(The)29
-b(other)f(approac)n(h)e(is)j(to)f(someho)n(w)0 1261 y(get)33
+b(other)f(approac)n(h)e(is)j(to)f(someho)n(w)0 1460 y(get)33
b(a)g(p)r(oin)n(ter)g(to)h(the)f(metho)r(d)h(to)g(b)r(e)f(called,)i
(either)e(the)h(C)g(function,)h(or)e(a)g(callable)f(Python)i(ob)5
-b(ject.)54 b(This)34 b(is)f(not)0 1360 y(really)26 b(a)i(go)r(o)r(d)f
+b(ject.)54 b(This)34 b(is)f(not)0 1559 y(really)26 b(a)i(go)r(o)r(d)f
(solution)g(either,)g(since)g(there's)h(a)f(lot)g(of)h(lo)r(okups)f(in)
-n(v)n(olv)n(ed.)0 1507 y(The)h(w)n(a)n(y)f(it)h(w)n(orks)e(is)i(that)h
+n(v)n(olv)n(ed.)0 1706 y(The)h(w)n(a)n(y)f(it)h(w)n(orks)e(is)i(that)h
(y)n(ou)e(ha)n(v)n(e)g(to)g(supply)h(a)g(\020)7 b Fl(socket)p
Fq(-lik)n(e\021)31 b(transp)r(ort)c(ob)5 b(ject)28 b(to)f(the)i
-Fl(SSL.Connection)p Fq(.)j(The)0 1607 y(only)24 b(requiremen)n(t)f(of)i
+Fl(SSL.Connection)p Fq(.)j(The)0 1806 y(only)24 b(requiremen)n(t)f(of)i
(this)f(ob)5 b(ject)24 b(is)h(that)f(it)h(has)f(a)g Fl(fileno\(\))d
Fq(metho)r(d)k(that)f(returns)g(a)g(\034le)g(descriptor)f(that's)i(v)-5
-b(alid)24 b(at)0 1706 y(the)g(C)g(lev)n(el)f(\(i.e.)36
+b(alid)24 b(at)0 1906 y(the)g(C)g(lev)n(el)f(\(i.e.)36
b(y)n(ou)23 b(can)h(use)f(the)i(system)e(calls)g(read)g(and)h(write\).)
35 b(If)25 b(y)n(ou)e(w)n(an)n(t)g(to)h(use)f(the)h Fl(connect\(\))c
-Fq(or)j Fl(accept\(\))0 1806 y Fq(metho)r(ds)29 b(of)h(the)f
+Fq(or)j Fl(accept\(\))0 2005 y Fq(metho)r(ds)29 b(of)h(the)f
Fl(SSL.Connection)24 b Fq(ob)5 b(ject,)29 b(the)h(transp)r(ort)e(ob)5
b(ject)29 b(has)f(to)h(supply)h(suc)n(h)f(metho)r(ds)g(to)r(o.)41
-b(Apart)29 b(from)0 1906 y(them,)c(an)n(y)e(metho)r(d)h(lo)r(okups)f
+b(Apart)29 b(from)0 2105 y(them,)c(an)n(y)e(metho)r(d)h(lo)r(okups)f
(in)h(the)f Fl(SSL.Connection)18 b Fq(ob)5 b(ject)24
b(that)f(fail)h(are)f(passed)f(on)i(to)f(the)h(underlying)f(transp)r
-(ort)0 2005 y(ob)5 b(ject.)0 2152 y(F)-7 b(uture)25 b(c)n(hanges)f
+(ort)0 2204 y(ob)5 b(ject.)0 2351 y(F)-7 b(uture)25 b(c)n(hanges)f
(migh)n(t)h(b)r(e)g(to)g(allo)n(w)f(Python-lev)n(el)g(transp)r(ort)g
(ob)5 b(jects,)25 b(that)g(instead)g(of)g(ha)n(ving)g
-Fl(fileno\(\))d Fq(metho)r(ds,)0 2252 y(ha)n(v)n(e)h
+Fl(fileno\(\))d Fq(metho)r(ds,)0 2451 y(ha)n(v)n(e)h
Fl(read\(\))g Fq(and)h Fl(write\(\))e Fq(metho)r(ds,)k(so)e(more)f(adv)
-5 b(anced)24 b(features)h(of)f(Python)h(can)g(b)r(e)g(used.)35
-b(This)25 b(w)n(ould)f(probably)0 2351 y(en)n(tail)36
+b(This)25 b(w)n(ould)f(probably)0 2551 y(en)n(tail)36
b(some)g(sort)g(of)g(Op)r(enSSL)h(\020BIOs\021,)g(but)g(con)n(v)n
(erting)e(Python)i(strings)e(bac)n(k)h(and)g(forth)g(is)h(exp)r(ensiv)n
-(e,)h(so)e(this)0 2451 y(shouldn't)f(b)r(e)h(used)f(unless)g(necessary)
+(e,)h(so)e(this)0 2650 y(shouldn't)f(b)r(e)h(used)f(unless)g(necessary)
-7 b(.)57 b(Other)35 b(nice)g(things)g(w)n(ould)g(b)r(e)g(to)g(b)r(e)h
(able)e(to)h(pass)g(in)g(di\033eren)n(t)g(transp)r(ort)0
-2551 y(ob)5 b(jects)41 b(for)g(reading)f(and)h(writing,)j(but)e(then)g
+2750 y(ob)5 b(jects)41 b(for)g(reading)f(and)h(writing,)j(but)e(then)g
(the)g Fl(fileno\(\))c Fq(metho)r(d)k(of)47 b Fl(SSL.Connection)36
-b Fq(b)r(ecomes)41 b(virtually)0 2650 y(useless.)36 b(Also,)27
+b Fq(b)r(ecomes)41 b(virtually)0 2849 y(useless.)36 b(Also,)27
b(should)h(the)g(metho)r(d)g(resolution)e(b)r(e)i(used)g(on)f(the)h
(read-transp)r(ort)d(or)i(the)h(write-transp)r(ort?)p
-0 5549 3901 4 v 0 5649 a Ff(4.3)82 b(A)n(cessing)26 b(So)r(ck)n(et)h
-(Metho)r(ds)2744 b(17)p eop end
+0 5549 3901 4 v 0 5649 a Ff(18)3368 b(4)83 b(Internals)p
+eop end
%%Trailer
userdict /end-hook known{end-hook}if
diff --git a/doc/pyOpenSSL.tex b/doc/pyOpenSSL.tex
index 564e6bb..294008c 100644
--- a/doc/pyOpenSSL.tex
+++ b/doc/pyOpenSSL.tex
@@ -2,7 +2,7 @@
\title{Python OpenSSL Manual}
-\release{0.10}
+\release{0.11}
\author{Jean-Paul Calderone}
\authoraddress{\email{exarkun@twistedmatrix.com}}
@@ -291,6 +291,7 @@ Sign a data string using the given key and message digest.
\var{key} is a \code{PKey} instance. \var{data} is a \code{str} instance.
\var{digest} is a \code{str} naming a supported message digest type, for example
\code{``sha1''}.
+\versionadded{0.11}
\end{funcdesc}
\begin{funcdesc}{verify}{certificate, signature, data, digest}
@@ -301,6 +302,7 @@ which generated the signature. \var{signature} is a \var{str} instance giving
the signature itself. \var{data} is a \var{str} instance giving the data to
which the signature applies. \var{digest} is a \var{str} instance naming the
message digest type of the signature, for example \code{``sha1''}.
+\versionadded{0.11}
\end{funcdesc}
\subsubsection{X509 objects \label{openssl-x509}}
diff --git a/doc/pyOpenSSL.txt b/doc/pyOpenSSL.txt
index 198fe83..0002d97 100644
--- a/doc/pyOpenSSL.txt
+++ b/doc/pyOpenSSL.txt
@@ -184,6 +184,12 @@ setup.py --help
string representing a NetscapeSPKI object, as returned by the
b64_encode method.
+ class CRL()
+ A class representing Certifcate Revocation List objects.
+
+ class Revoked()
+ A class representing Revocation objects of CRL.
+
FILETYPE_PEM
FILETYPE_ASN1
@@ -228,6 +234,11 @@ setup.py --help
passphrase must be either a string or a callback for providing
the pass phrase.
+ load_crl(type, buffer)
+ Load Certificate Revocation List (CRL) data from a string
+ buffer. buffer encoded with the type type. The type type must
+ either FILETYPE_PEM or FILETYPE_ASN1).
+
load_pkcs7_data(type, buffer)
Load pkcs7 data from the string buffer encoded with the type
type.
@@ -239,6 +250,23 @@ setup.py --help
See also the man page for the C function PKCS12_parse.
+ sign(key, data, digest)
+ Sign a data string using the given key and message digest.
+
+ key is a PKey instance. data is a str instance. digest is a str
+ naming a supported message digest type, for example ``sha1''.
+ New in version 0.11.
+
+ verify(certificate, signature, data, digest)
+ Verify the signature for a data string.
+
+ certificate is a X509 instance corresponding to the private key
+ which generated the signature. signature is a str instance
+ giving the signature itself. data is a str instance giving the
+ data to which the signature applies. digest is a str instance
+ naming the message digest type of the signature, for example
+ ``sha1''. New in version 0.11.
+
3.1.1 X509 objects
@@ -535,6 +563,54 @@ setup.py --help
Verify the NetscapeSPKI object using the given key.
+ 3.1.10 CRL objects
+
+ CRL objects have the following methods:
+
+ add_revoked(revoked)
+ Add a Revoked object to the CRL, by value not reference.
+
+ export(cert, key[, type=FILETYPE_PEM][, days=100])
+ Use cert and key to sign the CRL and return the CRL as a string.
+ days is the number of days before the next CRL is due.
+
+ get_revoked()
+ Return a tuple of Revoked objects, by value not reference.
+
+
+ 3.1.11 Revoked objects
+
+ Revoked objects have the following methods:
+
+ all_reasons()
+ Return a list of all supported reasons.
+
+ get_reason()
+ Return the revocation reason as a str. Can be None, which
+ differs from "Unspecified".
+
+ get_rev_date()
+ Return the revocation date as a str. The string is formatted as
+ an ASN1 GENERALIZEDTIME.
+
+ get_serial()
+ Return a str containing a hex number of the serial of the
+ revoked certificate.
+
+ set_reason(reason)
+ Set the revocation reason. reason must be None or a string, but
+ the values are limited. Spaces and case are ignored. See
+ all_reasons.
+
+ set_rev_date(date)
+ Set the revocation date. The string is formatted as an ASN1
+ GENERALIZEDTIME.
+
+ set_serial(serial)
+ serial is a string containing a hex number of the serial of the
+ revoked certificate.
+
+
3.2 rand -- An interface to the OpenSSL pseudo random number generator
This module handles the OpenSSL pseudo random number generator (PRNG)
@@ -1158,4 +1234,4 @@ setup.py --help
Python OpenSSL Manual
__________________________________________________________________
- Release 0.10.
+ Release 0.11.
diff --git a/setup.py b/setup.py
index c2ccba5..1a74e6e 100755
--- a/setup.py
+++ b/setup.py
@@ -2,9 +2,7 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) AB Strakt 2001, All rights reserved
-# Copyright (C) Jean-Paul Calderone 2008, All rights reserved
-#
-# @(#) $Id: setup.py,v 1.28 2004/08/10 10:59:01 martin Exp $
+# Copyright (C) Jean-Paul Calderone 2008-2010, All rights reserved
#
"""
@@ -17,7 +15,7 @@ from distutils.errors import DistutilsFileError
from distutils.command.build_ext import build_ext
# XXX Deduplicate this
-__version__ = '0.10'
+__version__ = '0.11'
crypto_src = ['OpenSSL/crypto/crypto.c', 'OpenSSL/crypto/x509.c',
'OpenSSL/crypto/x509name.c', 'OpenSSL/crypto/pkey.c',