Merge OpenSearch-related changes.
diff --git a/Doc/tools/sphinxext/layout.html b/Doc/tools/sphinxext/layout.html
new file mode 100644
index 0000000..689cbda
--- /dev/null
+++ b/Doc/tools/sphinxext/layout.html
@@ -0,0 +1,5 @@
+{% extends "!layout.html" %}
+{% block rootrellink %}
+<li><img src="{{ pathto('_static/py.png', 1) }}" alt="" style="vertical-align: middle; margin-top: -1px"/></li>
+{{ super() }}
+{% endblock %}
diff --git a/Doc/tools/sphinxext/opensearch.xml b/Doc/tools/sphinxext/opensearch.xml
new file mode 100644
index 0000000..d672c2e
--- /dev/null
+++ b/Doc/tools/sphinxext/opensearch.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
+ <ShortName>Python Docs</ShortName>
+ <LongName>Python Documentation</LongName>
+ <Description>Search the Python documentation</Description>
+ <InputEncoding>utf-8</InputEncoding>
+ <Url type="text/html" method="get" template="{{ pathto('search') }}?">
+ <Param name="q" value="{searchTerms}" />
+ <Param name="check_keywords" value="yes" />
+ <Param name="area" value="default" />
+ </Url>
+ <Image height="16" width="16" type="image/x-icon">http://www.python.org/images/favicon16x16.ico</Image>
+</OpenSearchDescription>
+
diff --git a/Doc/tools/sphinxext/static/py.png b/Doc/tools/sphinxext/static/py.png
new file mode 100644
index 0000000..93e4a02
--- /dev/null
+++ b/Doc/tools/sphinxext/static/py.png
Binary files differ