accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ctubb...@apache.org
Subject [accumulo-website] branch asf-site updated: Jekyll build from master:cc4a864
Date Wed, 06 Sep 2017 23:05:32 GMT
This is an automated email from the ASF dual-hosted git repository.

ctubbsii pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/accumulo-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 32b9d9b  Jekyll build from master:cc4a864
32b9d9b is described below

commit 32b9d9b2d7a2a65c0e4b0432ca8489d2bff481e4
Author: Christopher Tubbs <ctubbsii@apache.org>
AuthorDate: Wed Sep 6 19:04:57 2017 -0400

    Jekyll build from master:cc4a864
    
    Remove liquid variables from front matter for redirect_to
    
    * Variable substitution stopped working when jekyll-redirect-from
      plugin was upgraded 0.12.1
    * Versions will need to upgraded by hand for every new minor release
---
 1.3/user_manual/Accumulo_Design.html               |   32 +-
 1.3/user_manual/Accumulo_Shell.html                |    8 +-
 1.3/user_manual/Administration.html                |   34 +-
 1.3/user_manual/Analytics.html                     |   16 +-
 1.3/user_manual/Contents.html                      |    2 +-
 1.3/user_manual/High_Speed_Ingest.html             |   10 +-
 1.3/user_manual/Introduction.html                  |    2 +-
 1.3/user_manual/Security.html                      |   12 +-
 1.3/user_manual/Shell_Commands.html                |    2 +-
 1.3/user_manual/Table_Configuration.html           |   30 +-
 1.3/user_manual/Table_Design.html                  |   20 +-
 1.3/user_manual/Writing_Accumulo_Clients.html      |   12 +-
 1.3/user_manual/examples.html                      |   14 +-
 1.4/user_manual/Accumulo_Design.html               |   32 +-
 1.4/user_manual/Accumulo_Shell.html                |    8 +-
 1.4/user_manual/Administration.html                |   38 +-
 1.4/user_manual/Analytics.html                     |   16 +-
 1.4/user_manual/Contents.html                      |    2 +-
 1.4/user_manual/Development_Clients.html           |    6 +-
 1.4/user_manual/High_Speed_Ingest.html             |   12 +-
 1.4/user_manual/Introduction.html                  |    2 +-
 1.4/user_manual/Security.html                      |   14 +-
 1.4/user_manual/Shell_Commands.html                |    2 +-
 1.4/user_manual/Table_Configuration.html           |   42 +-
 1.4/user_manual/Table_Design.html                  |   20 +-
 1.4/user_manual/Writing_Accumulo_Clients.html      |   30 +-
 1.8/examples/dirlist.html                          |    4 +-
 1.8/examples/visibility.html                       |    4 +-
 assets/css/style.css                               | 2742 ++++++++++++++++++++
 assets/javascript/anchor-js/.eslintrc              |   77 +
 assets/javascript/anchor-js/.gitattributes         |    2 +
 assets/javascript/anchor-js/.npmignore             |    4 +
 assets/javascript/anchor-js/.travis.yml            |    6 +
 assets/javascript/anchor-js/anchor.js              |  334 +++
 assets/javascript/anchor-js/anchor.min.js          |    6 +
 assets/javascript/anchor-js/banner.js              |   17 +
 assets/javascript/anchor-js/docs/anchor.js         |  334 +++
 assets/javascript/anchor-js/docs/favicon.ico       |  Bin 0 -> 1150 bytes
 .../anchor-js/docs/fonts/anchorjs-extras.eot       |  Bin 0 -> 1680 bytes
 .../anchor-js/docs/fonts/anchorjs-extras.svg       |   11 +
 .../anchor-js/docs/fonts/anchorjs-extras.ttf       |  Bin 0 -> 1484 bytes
 .../anchor-js/docs/fonts/anchorjs-extras.woff      |  Bin 0 -> 1560 bytes
 assets/javascript/anchor-js/docs/fonts/fonts.css   |   24 +
 .../anchor-js/docs/grunticon/grunticon.loader.js   |    3 +
 .../anchor-js/docs/grunticon/icons.data.png.css    |    5 +
 .../anchor-js/docs/grunticon/icons.data.svg.css    |    5 +
 .../anchor-js/docs/grunticon/icons.fallback.css    |    5 +
 .../docs/grunticon/png/grunticon-link.png          |  Bin 0 -> 499 bytes
 .../anchor-js/docs/img/anchoring-links.png         |  Bin 0 -> 33647 bytes
 .../anchor-js/docs/img/anchorjs_logo.png           |  Bin 0 -> 7581 bytes
 .../javascript/anchor-js/docs/img/anchorlinks2.png |  Bin 0 -> 62031 bytes
 assets/javascript/anchor-js/docs/img/gh-link.svg   |    9 +
 assets/javascript/anchor-js/docs/img/gh_link.svg   |    9 +
 assets/javascript/anchor-js/docs/img/hyperlink.svg |    9 +
 assets/javascript/anchor-js/docs/img/link.svg      |    6 +
 assets/javascript/anchor-js/docs/img/mini-logo.png |  Bin 0 -> 2259 bytes
 assets/javascript/anchor-js/docs/img/primer-md.png |  Bin 0 -> 16739 bytes
 assets/javascript/anchor-js/docs/scripts.js        |   12 +
 assets/javascript/anchor-js/docs/styles.css        |  493 ++++
 blog/2014/05/03/accumulo-classloader.html          |    2 +-
 .../03/06/security-performance-implications.html   |    8 +-
 blog/index.html                                    |   14 +-
 bylaws.html                                        |   14 +-
 contrib.html                                       |   14 +-
 contributor/contrib-projects.html                  |    2 +-
 contributor/git.html                               |    6 +-
 contributor/making-release.html                    |    2 +-
 contributor/releasing.html                         |   14 +-
 contributor/source.html                            |    2 +-
 .../administration/configuration-management.html   |   10 -
 .../administration/configuration-properties.html   |   10 -
 docs/latest/administration/fate.html               |   10 -
 docs/latest/administration/in-depth-install.html   |   10 -
 docs/latest/administration/kerberos.html           |   10 -
 docs/latest/administration/monitoring-metrics.html |   10 -
 docs/latest/administration/multivolume.html        |   10 -
 docs/latest/administration/replication.html        |   10 -
 docs/latest/administration/ssl.html                |   10 -
 docs/latest/administration/tracing.html            |   10 -
 docs/latest/development/development_tools.html     |   10 -
 docs/latest/development/high_speed_ingest.html     |   10 -
 docs/latest/development/iterators.html             |   10 -
 docs/latest/development/mapreduce.html             |   10 -
 docs/latest/development/proxy.html                 |   10 -
 docs/latest/development/sampling.html              |   10 -
 docs/latest/development/security.html              |   10 -
 docs/latest/development/summaries.html             |   10 -
 docs/latest/getting-started/clients.html           |   10 -
 docs/latest/getting-started/design.html            |   10 -
 docs/latest/getting-started/quick-install.html     |   10 -
 docs/latest/getting-started/shell.html             |   10 -
 .../getting-started/table_configuration.html       |   10 -
 docs/latest/getting-started/table_design.html      |   10 -
 docs/latest/index.html                             |   10 -
 docs/latest/troubleshooting/advanced.html          |   10 -
 docs/latest/troubleshooting/basic.html             |   10 -
 .../troubleshooting/system-metadata-tables.html    |   10 -
 docs/latest/troubleshooting/tools.html             |   10 -
 downloads/index.html                               |    8 +-
 features/index.html                                |    8 +-
 feed.xml                                           |   14 +-
 git.html                                           |   14 +-
 governance/bylaws.html                             |   14 +-
 governance/consensusBuilding.html                  |   14 +-
 governance/lazyConsensus.html                      |   14 +-
 governance/releasing.html                          |   14 +-
 governance/voting.html                             |   14 +-
 latest/accumulo_user_manual/index.html             |   14 +-
 latest/apidocs/index.html                          |   14 +-
 latest/examples/index.html                         |   14 +-
 latest/index.html                                  |   10 -
 mailing_list/index.html                            |   12 +-
 notable_features.html                              |   14 +-
 papers.html                                        |   14 +-
 projects.html                                      |   14 +-
 related-projects/index.html                        |    2 +-
 release/accumulo-1.5.3/index.html                  |   10 +-
 release_notes.html                                 |   14 +-
 release_notes/1.5.1.html                           |   14 +-
 release_notes/1.5.2.html                           |   14 +-
 release_notes/1.5.3.html                           |   14 +-
 release_notes/1.5.4.html                           |   14 +-
 release_notes/1.6.0.html                           |   14 +-
 release_notes/1.6.1.html                           |   14 +-
 release_notes/1.6.2.html                           |   14 +-
 release_notes/1.6.3.html                           |   14 +-
 release_notes/1.6.4.html                           |   14 +-
 release_notes/1.6.5.html                           |   14 +-
 release_notes/1.6.6.html                           |   14 +-
 release_notes/1.7.0.html                           |   14 +-
 release_notes/1.7.1.html                           |   14 +-
 release_notes/1.7.2.html                           |   14 +-
 release_notes/1.7.3.html                           |   14 +-
 release_notes/1.8.0.html                           |   14 +-
 release_notes/1.8.1.html                           |   14 +-
 release_notes/index.html                           |   14 +-
 releasing.html                                     |   14 +-
 source.html                                        |   14 +-
 user_manual_1.3-incubating/index.html              |   14 +-
 verifying_releases.html                            |   14 +-
 versioning.html                                    |   14 +-
 141 files changed, 4644 insertions(+), 831 deletions(-)

diff --git a/1.3/user_manual/Accumulo_Design.html b/1.3/user_manual/Accumulo_Design.html
index 40184b2..ef41f1d 100644
--- a/1.3/user_manual/Accumulo_Design.html
+++ b/1.3/user_manual/Accumulo_Design.html
@@ -164,63 +164,63 @@
 
 <hr />
 
-<h2 id="a-idaccumulodesigna-accumulo-design"><a id="Accumulo_Design"></a> Accumulo Design</h2>
+<h2 id="-accumulo-design"><a id="Accumulo_Design"></a> Accumulo Design</h2>
 
-<h2 id="a-iddatamodela-data-model"><a id="Data_Model"></a> Data Model</h2>
+<h2 id="-data-model"><a id="Data_Model"></a> Data Model</h2>
 
 <p>Accumulo provides a richer data model than simple key-value stores, but is not a fully relational database. Data is represented as key-value pairs, where the key and value are comprised of the following elements:</p>
 
-<p><img src="img1.png" alt="converted table" /></p>
+<p><img src="/1.3/user_manual/img1.png" alt="converted table" /></p>
 
 <p>All elements of the Key and the Value are represented as byte arrays except for Timestamp, which is a Long. Accumulo sorts keys by element and lexicographically in ascending order. Timestamps are sorted in descending order so that later versions of the same Key appear first in a sequential scan. Tables consist of a set of sorted key-value pairs.</p>
 
-<h2 id="a-idarchitecturea-architecture"><a id="Architecture"></a> Architecture</h2>
+<h2 id="-architecture"><a id="Architecture"></a> Architecture</h2>
 
 <p>Accumulo is a distributed data storage and retrieval system and as such consists of several architectural components, some of which run on many individual servers. Much of the work Accumulo does involves maintaining certain properties of the data, such as organization, availability, and integrity, across many commodity-class machines.</p>
 
-<h2 id="a-idcomponentsa-components"><a id="Components"></a> Components</h2>
+<h2 id="-components"><a id="Components"></a> Components</h2>
 
 <p>An instance of Accumulo includes many TabletServers, write-ahead Logger servers, one Garbage Collector process, one Master server and many Clients.</p>
 
-<h3 id="a-idtabletservera-tablet-server"><a id="Tablet_Server"></a> Tablet Server</h3>
+<h3 id="-tablet-server"><a id="Tablet_Server"></a> Tablet Server</h3>
 
 <p>The TabletServer manages some subset of all the tablets (partitions of tables). This includes receiving writes from clients, persisting writes to a write‐ahead log, sorting new key‐value pairs in memory, periodically flushing sorted key‐value pairs to new files in HDFS, and responding to reads from clients, forming a merge‐sorted view of all keys and values from all the files it has created and the sorted in‐memory store.</p>
 
 <p>TabletServers also perform recovery of a tablet that was previously on a server that failed, reapplying any writes found in the write-ahead log to the tablet.</p>
 
-<h3 id="a-idloggersa-loggers"><a id="Loggers"></a> Loggers</h3>
+<h3 id="-loggers"><a id="Loggers"></a> Loggers</h3>
 
 <p>The Loggers accept updates to Tablet servers and write them to local on-disk storage. Each tablet server will write their updates to multiple loggers to preserve data in case of hardware failure.</p>
 
-<h3 id="a-idgarbagecollectora-garbage-collector"><a id="Garbage_Collector"></a> Garbage Collector</h3>
+<h3 id="-garbage-collector"><a id="Garbage_Collector"></a> Garbage Collector</h3>
 
 <p>Accumulo processes will share files stored in HDFS. Periodically, the Garbage Collector will identify files that are no longer needed by any process, and delete them.</p>
 
-<h3 id="a-idmastera-master"><a id="Master"></a> Master</h3>
+<h3 id="-master"><a id="Master"></a> Master</h3>
 
 <p>The Accumulo Master is responsible for detecting and responding to TabletServer failure. It tries to balance the load across TabletServer by assigning tablets carefully and instructing TabletServers to migrate tablets when necessary. The Master ensures all tablets are assigned to one TabletServer each, and handles table creation, alteration, and deletion requests from clients. The Master also coordinates startup, graceful shutdown and recovery of changes in write-ahead logs when Table [...]
 
-<h3 id="a-idclienta-client"><a id="Client"></a> Client</h3>
+<h3 id="-client"><a id="Client"></a> Client</h3>
 
 <p>Accumulo includes a client library that is linked to every application. The client library contains logic for finding servers managing a particular tablet, and communicating with TabletServers to write and retrieve key-value pairs.</p>
 
-<h2 id="a-iddatamanagementa-data-management"><a id="Data_Management"></a> Data Management</h2>
+<h2 id="-data-management"><a id="Data_Management"></a> Data Management</h2>
 
 <p>Accumulo stores data in tables, which are partitioned into tablets. Tablets are partitioned on row boundaries so that all of the columns and values for a particular row are found together within the same tablet. The Master assigns Tablets to one TabletServer at a time. This enables row-level transactions to take place without using distributed locking or some other complicated synchronization mechanism. As clients insert and query data, and as machines are added and removed from the c [...]
 
-<p><img src="./data_distribution.png" alt="Image data_distribution" /></p>
+<p><img src="/1.3/user_manual/data_distribution.png" alt="Image data_distribution" /></p>
 
-<h2 id="a-idtabletservicea-tablet-service"><a id="Tablet_Service"></a> Tablet Service</h2>
+<h2 id="-tablet-service"><a id="Tablet_Service"></a> Tablet Service</h2>
 
 <p>When a write arrives at a TabletServer it is written to a Write‐Ahead Log and then inserted into a sorted data structure in memory called a MemTable. When the MemTable reaches a certain size the TabletServer writes out the sorted key-value pairs to a file in HDFS called Indexed Sequential Access Method (ISAM) file. This process is called a minor compaction. A new MemTable is then created and the fact of the compaction is recorded in the Write‐Ahead Log.</p>
 
 <p>When a request to read data arrives at a TabletServer, the TabletServer does a binary search across the MemTable as well as the in-memory indexes associated with each ISAM file to find the relevant values. If clients are performing a scan, several key‐value pairs are returned to the client in order from the MemTable and the set of ISAM files by performing a merge‐sort as they are read.</p>
 
-<h2 id="a-idcompactionsa-compactions"><a id="Compactions"></a> Compactions</h2>
+<h2 id="-compactions"><a id="Compactions"></a> Compactions</h2>
 
 <p>In order to manage the number of files per tablet, periodically the TabletServer performs Major Compactions of files within a tablet, in which some set of ISAM files are combined into one file. The previous files will eventually be removed by the Garbage Collector. This also provides an opportunity to permanently remove deleted key‐value pairs by omitting key‐value pairs suppressed by a delete entry when the new file is created.</p>
 
-<h2 id="a-idfault-tolerancea-fault-tolerance"><a id="Fault-Tolerance"></a> Fault-Tolerance</h2>
+<h2 id="-fault-tolerance"><a id="Fault-Tolerance"></a> Fault-Tolerance</h2>
 
 <p>If a TabletServer fails, the Master detects it and automatically reassigns the tablets assigned from the failed server to other servers. Any key-value pairs that were in memory at the time the TabletServer are automatically reapplied from the Write-Ahead Log to prevent any loss of data.</p>
 
@@ -229,7 +229,7 @@
 <p>TabletServer failures are noted on the Master’s monitor page, accessible via <br />
 http://master-address:50095/monitor.</p>
 
-<p><img src="./failure_handling.png" alt="Image failure_handling" /></p>
+<p><img src="/1.3/user_manual/failure_handling.png" alt="Image failure_handling" /></p>
 
 <hr />
 
diff --git a/1.3/user_manual/Accumulo_Shell.html b/1.3/user_manual/Accumulo_Shell.html
index 359cec0..35e3a87 100644
--- a/1.3/user_manual/Accumulo_Shell.html
+++ b/1.3/user_manual/Accumulo_Shell.html
@@ -160,7 +160,7 @@
 
 <hr />
 
-<h2 id="a-idaccumuloshella-accumulo-shell"><a id="Accumulo_Shell"></a> Accumulo Shell</h2>
+<h2 id="-accumulo-shell"><a id="Accumulo_Shell"></a> Accumulo Shell</h2>
 
 <p>Accumulo provides a simple shell that can be used to examine the contents and configuration settings of tables, apply individual mutations, and change configuration settings.</p>
 
@@ -183,7 +183,7 @@
 </code></pre>
 </div>
 
-<h2 id="a-idbasicadministrationa-basic-administration"><a id="Basic_Administration"></a> Basic Administration</h2>
+<h2 id="-basic-administration"><a id="Basic_Administration"></a> Basic Administration</h2>
 
 <p>The Accumulo shell can be used to create and delete tables, as well as to configure table and instance specific options.</p>
 
@@ -220,7 +220,7 @@ row1 colf:colq [] value1
 </code></pre>
 </div>
 
-<h2 id="a-idtablemaintenancea-table-maintenance"><a id="Table_Maintenance"></a> Table Maintenance</h2>
+<h2 id="-table-maintenance"><a id="Table_Maintenance"></a> Table Maintenance</h2>
 
 <p>The <strong>compact</strong> command instructs Accumulo to schedule a compaction of the table during which files are consolidated and deleted entries are removed.</p>
 
@@ -238,7 +238,7 @@ initiated...
 </code></pre>
 </div>
 
-<h2 id="a-iduseradministrationa-user-administration"><a id="User_Administration"></a> User Administration</h2>
+<h2 id="-user-administration"><a id="User_Administration"></a> User Administration</h2>
 
 <p>The Shell can be used to add, remove, and grant privileges to users.</p>
 
diff --git a/1.3/user_manual/Administration.html b/1.3/user_manual/Administration.html
index 00c8be6..81f1ef1 100644
--- a/1.3/user_manual/Administration.html
+++ b/1.3/user_manual/Administration.html
@@ -167,9 +167,9 @@
 
 <hr />
 
-<h2 id="a-idadministrationa-administration"><a id="Administration"></a> Administration</h2>
+<h2 id="-administration"><a id="Administration"></a> Administration</h2>
 
-<h2 id="a-idhardwarea-hardware"><a id="Hardware"></a> Hardware</h2>
+<h2 id="-hardware"><a id="Hardware"></a> Hardware</h2>
 
 <p>Because we are running essentially two or three systems simultaneously layered across the cluster: HDFS, Accumulo and MapReduce, it is typical for hardware to consist of 4 to 8 cores, and 8 to 32 GB RAM. This is so each running process can have at least one core and 2 - 4 GB each.</p>
 
@@ -177,11 +177,11 @@
 
 <p>It is possible to do with less than this, such as with 1u servers with 2 cores and 4GB each, but in this case it is recommended to only run up to two processes per machine - i.e. DataNode and TabletServer or DataNode and MapReduce worker but not all three. The constraint here is having enough available heap space for all the processes on a machine.</p>
 
-<h2 id="a-idnetworka-network"><a id="Network"></a> Network</h2>
+<h2 id="-network"><a id="Network"></a> Network</h2>
 
 <p>Accumulo communicates via remote procedure calls over TCP/IP for both passing data and control messages. In addition, Accumulo uses HDFS clients to communicate with HDFS. To achieve good ingest and query performance, sufficient network bandwidth must be available between any two machines.</p>
 
-<h2 id="a-idinstallationa-installation"><a id="Installation"></a> Installation</h2>
+<h2 id="-installation"><a id="Installation"></a> Installation</h2>
 
 <p>Choose a directory for the Accumulo installation. This directory will be referenced by the environment variable $ACCUMULO_HOME. Run the following:</p>
 
@@ -191,15 +191,15 @@
 
 <p>Repeat this step at each machine within the cluster. Usually all machines have the same $ACCUMULO_HOME.</p>
 
-<h2 id="a-iddependenciesa-dependencies"><a id="Dependencies"></a> Dependencies</h2>
+<h2 id="-dependencies"><a id="Dependencies"></a> Dependencies</h2>
 
 <p>Accumulo requires HDFS and ZooKeeper to be configured and running before starting. Password-less SSH should be configured between at least the Accumulo master and TabletServer machines. It is also a good idea to run Network Time Protocol (NTP) within the cluster to ensure nodes’ clocks don’t get too out of sync, which can cause problems with automatically timestamped data. Accumulo will remove from the set of TabletServers those machines whose times differ too much from the master’s.</p>
 
-<h2 id="a-idconfigurationa-configuration"><a id="Configuration"></a> Configuration</h2>
+<h2 id="-configuration"><a id="Configuration"></a> Configuration</h2>
 
 <p>Accumulo is configured by editing several Shell and XML files found in $ACCUMULO_HOME/conf. The structure closely resembles Hadoop’s configuration files.</p>
 
-<h3 id="a-ideditconfaccumulo-envsha-edit-confaccumulo-envsh"><a id="Edit_conf/accumulo-env.sh"></a> Edit conf/accumulo-env.sh</h3>
+<h3 id="-edit-confaccumulo-envsh"><a id="Edit_conf/accumulo-env.sh"></a> Edit conf/accumulo-env.sh</h3>
 
 <p>Accumulo needs to know where to find the software it depends on. Edit accumuloenv. sh and specify the following:</p>
 
@@ -217,7 +217,7 @@
 
 <p>Note that you will be specifying the Java heap space in accumulo-env.sh. You should make sure that the total heap space used for the Accumulo tserver and the Hadoop DataNode and TaskTracker is less than the available memory on each slave node in the cluster. On large clusters, it is recommended that the Accumulo master, Hadoop NameNode, secondary NameNode, and Hadoop JobTracker all be run on separate machines to allow them to use more heap space. If you are running these on the same m [...]
 
-<h3 id="a-idclusterspecificationa-cluster-specification"><a id="Cluster_Specification"></a> Cluster Specification</h3>
+<h3 id="-cluster-specification"><a id="Cluster_Specification"></a> Cluster Specification</h3>
 
 <p>On the machine that will serve as the Accumulo master:</p>
 
@@ -230,7 +230,7 @@ $ACCUMULO_HOME/conf/slaves, one per line.</li>
 
 <p>Note that if using domain names rather than IP addresses, DNS must be configured properly for all machines participating in the cluster. DNS can be a confusing source of errors.</p>
 
-<h3 id="a-idaccumulosettingsa-accumulo-settings"><a id="Accumulo_Settings"></a> Accumulo Settings</h3>
+<h3 id="-accumulo-settings"><a id="Accumulo_Settings"></a> Accumulo Settings</h3>
 
 <p>Specify appropriate values for the following settings in <br />
 $ACCUMULO_HOME/conf/accumulo-site.xml :</p>
@@ -254,12 +254,12 @@ $ACCUMULO_HOME/conf/accumulo-site.xml :</p>
 
 <p>Some settings can be modified via the Accumulo shell and take effect immediately. However, any settings that should be persisted across system restarts must be recorded in the accumulo-site.xml file.</p>
 
-<h3 id="a-iddeployconfigurationa-deploy-configuration"><a id="Deploy_Configuration"></a> Deploy Configuration</h3>
+<h3 id="-deploy-configuration"><a id="Deploy_Configuration"></a> Deploy Configuration</h3>
 
 <p>Copy the masters, slaves, accumulo-env.sh, and if necessary, accumulo-site.xml from the <br />
 $ACCUMULO_HOME/conf/ directory on the master to all the machines specified in the slaves file.</p>
 
-<h2 id="a-idinitializationa-initialization"><a id="Initialization"></a> Initialization</h2>
+<h2 id="-initialization"><a id="Initialization"></a> Initialization</h2>
 
 <p>Accumulo must be initialized to create the structures it uses internally to locate data across the cluster. HDFS is required to be configured and running before Accumulo can be initialized.</p>
 
@@ -268,29 +268,29 @@ $ACCUMULO_HOME/bin/accumulo init . This script will prompt for a name for this i
 
 <p>The initialization script will prompt you to set a root password. Once Accumulo is initialized it can be started.</p>
 
-<h2 id="a-idrunninga-running"><a id="Running"></a> Running</h2>
+<h2 id="-running"><a id="Running"></a> Running</h2>
 
-<h3 id="a-idstartingaccumuloa-starting-accumulo"><a id="Starting_Accumulo"></a> Starting Accumulo</h3>
+<h3 id="-starting-accumulo"><a id="Starting_Accumulo"></a> Starting Accumulo</h3>
 
 <p>Make sure Hadoop is configured on all of the machines in the cluster, including access to a shared HDFS instance. Make sure HDFS and ZooKeeper are running. Make sure ZooKeeper is configured and running on at least one machine in the cluster. Start Accumulo using the bin/start-all.sh script.</p>
 
 <p>To verify that Accumulo is running, check the Status page as described under <em>Monitoring</em>. In addition, the Shell can provide some information about the status of tables via reading the !METADATA table.</p>
 
-<h3 id="a-idstoppingaccumuloa-stopping-accumulo"><a id="Stopping_Accumulo"></a> Stopping Accumulo</h3>
+<h3 id="-stopping-accumulo"><a id="Stopping_Accumulo"></a> Stopping Accumulo</h3>
 
 <p>To shutdown cleanly, run bin/stop-all.sh and the master will orchestrate the shutdown of all the tablet servers. Shutdown waits for all minor compactions to finish, so it may take some time for particular configurations.</p>
 
-<h2 id="a-idmonitoringa-monitoring"><a id="Monitoring"></a> Monitoring</h2>
+<h2 id="-monitoring"><a id="Monitoring"></a> Monitoring</h2>
 
 <p>The Accumulo Master provides an interface for monitoring the status and health of Accumulo components. This interface can be accessed by pointing a web browser to <br />
 http://accumulomaster:50095/status</p>
 
-<h2 id="a-idlogginga-logging"><a id="Logging"></a> Logging</h2>
+<h2 id="-logging"><a id="Logging"></a> Logging</h2>
 
 <p>Accumulo processes each write to a set of log files. By default these are found under <br />
 $ACCUMULO/logs/.</p>
 
-<h2 id="a-idrecoverya-recovery"><a id="Recovery"></a> Recovery</h2>
+<h2 id="-recovery"><a id="Recovery"></a> Recovery</h2>
 
 <p>In the event of TabletServer failure or error on shutting Accumulo down, some mutations may not have been minor compacted to HDFS properly. In this case, Accumulo will automatically reapply such mutations from the write-ahead log either when the tablets from the failed server are reassigned by the Master, in the case of a single TabletServer failure or the next time Accumulo starts, in the event of failure during shutdown.</p>
 
diff --git a/1.3/user_manual/Analytics.html b/1.3/user_manual/Analytics.html
index 9fe4bb3..8b51e13 100644
--- a/1.3/user_manual/Analytics.html
+++ b/1.3/user_manual/Analytics.html
@@ -160,11 +160,11 @@
 
 <hr />
 
-<h2 id="a-idanalyticsa-analytics"><a id="Analytics"></a> Analytics</h2>
+<h2 id="-analytics"><a id="Analytics"></a> Analytics</h2>
 
 <p>Accumulo supports more advanced data processing than simply keeping keys sorted and performing efficient lookups. Analytics can be developed by using MapReduce and Iterators in conjunction with Accumulo tables.</p>
 
-<h2 id="a-idmapreducea-mapreduce"><a id="MapReduce"></a> MapReduce</h2>
+<h2 id="-mapreduce"><a id="MapReduce"></a> MapReduce</h2>
 
 <p>Accumulo tables can be used as the source and destination of MapReduce jobs. To use an Accumulo table with a MapReduce job (specifically with the new Hadoop API as of version 0.20), configure the job parameters to use the AccumuloInputFormat and AccumuloOutputFormat. Accumulo specific parameters can be set via these two format classes to do the following:</p>
 
@@ -174,7 +174,7 @@
   <li>Restrict the input to a subset of available columns</li>
 </ul>
 
-<h3 id="a-idmapperandreducerclassesa-mapper-and-reducer-classes"><a id="Mapper_and_Reducer_classes"></a> Mapper and Reducer classes</h3>
+<h3 id="-mapper-and-reducer-classes"><a id="Mapper_and_Reducer_classes"></a> Mapper and Reducer classes</h3>
 
 <p>To read from an Accumulo table create a Mapper with the following class parameterization and be sure to configure the AccumuloInputFormat.</p>
 
@@ -204,7 +204,7 @@
 
 <p>The Text object passed as the output should contain the name of the table to which this mutation should be applied. The Text can be null in which case the mutation will be applied to the default table name specified in the AccumuloOutputFormat options.</p>
 
-<h3 id="a-idaccumuloinputformatoptionsa-accumuloinputformat-options"><a id="AccumuloInputFormat_options"></a> AccumuloInputFormat options</h3>
+<h3 id="-accumuloinputformat-options"><a id="AccumuloInputFormat_options"></a> AccumuloInputFormat options</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>Job job = new Job(getConf());
 AccumuloInputFormat.setInputInfo(job,
@@ -242,7 +242,7 @@ AccumuloInputFormat.fetchColumns(job, columns);
 </code></pre>
 </div>
 
-<h3 id="a-idaccumulooutputformatoptionsa-accumulooutputformat-options"><a id="AccumuloOutputFormat_options"></a> AccumuloOutputFormat options</h3>
+<h3 id="-accumulooutputformat-options"><a id="AccumuloOutputFormat_options"></a> AccumuloOutputFormat options</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>boolean createTables = true;
 String defaultTable = "mytable";
@@ -268,7 +268,7 @@ AccumuloOutputFormat.setMaxMutationBufferSize(job, 5000000); // bytes
 <p>An example of using MapReduce with Accumulo can be found at <br />
 accumulo/docs/examples/README.mapred</p>
 
-<h2 id="a-idaggregatingiteratorsa-aggregating-iterators"><a id="Aggregating_Iterators"></a> Aggregating Iterators</h2>
+<h2 id="-aggregating-iterators"><a id="Aggregating_Iterators"></a> Aggregating Iterators</h2>
 
 <p>Many applications can benefit from the ability to aggregate values across common keys. This can be done via aggregating iterators and is similar to the Reduce step in MapReduce. This provides the ability to define online, incrementally updated analytics without the overhead or latency associated with batch-oriented MapReduce jobs.</p>
 
@@ -276,11 +276,11 @@ accumulo/docs/examples/README.mapred</p>
 
 <p>The only restriction on an aggregating iterator is that the aggregator developer should not assume that all values for a given key have been seen, since new mutations can be inserted at anytime. This precludes using the total number of values in the aggregation such as when calculating an average, for example.</p>
 
-<h3 id="a-idfeaturevectorsa-feature-vectors"><a id="Feature_Vectors"></a> Feature Vectors</h3>
+<h3 id="-feature-vectors"><a id="Feature_Vectors"></a> Feature Vectors</h3>
 
 <p>An interesting use of aggregating iterators within an Accumulo table is to store feature vectors for use in machine learning algorithms. For example, many algorithms such as k-means clustering, support vector machines, anomaly detection, etc. use the concept of a feature vector and the calculation of distance metrics to learn a particular model. The columns in an Accumulo table can be used to efficiently store sparse features and their weights to be incrementally updated via the use o [...]
 
-<h2 id="a-idstatisticalmodelinga-statistical-modeling"><a id="Statistical_Modeling"></a> Statistical Modeling</h2>
+<h2 id="-statistical-modeling"><a id="Statistical_Modeling"></a> Statistical Modeling</h2>
 
 <p>Statistical models that need to be updated by many machines in parallel could be similarly stored within an Accumulo table. For example, a MapReduce job that is iteratively updating a global statistical model could have each map or reduce worker reference the parts of the model to be read and updated through an embedded Accumulo client.</p>
 
diff --git a/1.3/user_manual/Contents.html b/1.3/user_manual/Contents.html
index 013768a..d71920c 100644
--- a/1.3/user_manual/Contents.html
+++ b/1.3/user_manual/Contents.html
@@ -150,7 +150,7 @@
           
           <p>** Next:** <a href="Introduction.html">Introduction</a> ** Up:** <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.3</a> ** Previous:** <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.3</a></p>
 
-<h3 id="a-idcontentsa-contents"><a id="Contents"></a> Contents</h3>
+<h3 id="-contents"><a id="Contents"></a> Contents</h3>
 
 <ul>
   <li><a href="Introduction.html">Introduction</a></li>
diff --git a/1.3/user_manual/High_Speed_Ingest.html b/1.3/user_manual/High_Speed_Ingest.html
index d92af6e..1d7848b 100644
--- a/1.3/user_manual/High_Speed_Ingest.html
+++ b/1.3/user_manual/High_Speed_Ingest.html
@@ -161,11 +161,11 @@
 
 <hr />
 
-<h2 id="a-idhigh-speedingesta-high-speed-ingest"><a id="High-Speed_Ingest"></a> High-Speed Ingest</h2>
+<h2 id="-high-speed-ingest"><a id="High-Speed_Ingest"></a> High-Speed Ingest</h2>
 
 <p>Accumulo is often used as part of a larger data processing and storage system. To maximize the performance of a parallel system involving Accumulo, the ingestion and query components should be designed to provide enough parallelism and concurrency to avoid creating bottlenecks for users and other systems writing to and reading from Accumulo. There are several ways to achieve high ingest performance.</p>
 
-<h2 id="a-idpre-splittingnewtablesa-pre-splitting-new-tables"><a id="Pre-Splitting_New_Tables"></a> Pre-Splitting New Tables</h2>
+<h2 id="-pre-splitting-new-tables"><a id="Pre-Splitting_New_Tables"></a> Pre-Splitting New Tables</h2>
 
 <p>New tables consist of a single tablet by default. As mutations are applied, the table grows and splits into multiple tablets which are balanced by the Master across TabletServers. This implies that the aggregate ingest rate will be limited to fewer servers than are available within the cluster until the table has reached the point where there are tablets on every TabletServer.</p>
 
@@ -177,13 +177,13 @@
 
 <p>For the purposes of providing parallelism to ingest it is not necessary to create more tablets than there are physical machines within the cluster as the aggregate ingest rate is a function of the number of physical machines. Note that the aggregate ingest rate is still subject to the number of machines running ingest clients, and the distribution of rowIDs across the table. The aggregation ingest rate will be suboptimal if there are many inserts into a small number of rowIDs.</p>
 
-<h2 id="a-idmultipleingesterclientsa-multiple-ingester-clients"><a id="Multiple_Ingester_Clients"></a> Multiple Ingester Clients</h2>
+<h2 id="-multiple-ingester-clients"><a id="Multiple_Ingester_Clients"></a> Multiple Ingester Clients</h2>
 
 <p>Accumulo is capable of scaling to very high rates of ingest, which is dependent upon not just the number of TabletServers in operation but also the number of ingest clients. This is because a single client, while capable of batching mutations and sending them to all TabletServers, is ultimately limited by the amount of data that can be processed on a single machine. The aggregate ingest rate will scale linearly with the number of clients up to the point at which either the aggregate I [...]
 
 <p>In operational settings where high rates of ingest are paramount, clusters are often configured to dedicate some number of machines solely to running Ingester Clients. The exact ratio of clients to TabletServers necessary for optimum ingestion rates will vary according to the distribution of resources per machine and by data type.</p>
 
-<h2 id="a-idbulkingesta-bulk-ingest"><a id="Bulk_Ingest"></a> Bulk Ingest</h2>
+<h2 id="-bulk-ingest"><a id="Bulk_Ingest"></a> Bulk Ingest</h2>
 
 <p>Accumulo supports the ability to import files produced by an external process such as MapReduce into an existing table. In some cases it may be faster to load data this way rather than via ingesting through clients using BatchWriters. This allows a large number of machines to format data the way Accumulo expects. The new files can then simply be introduced to Accumulo via a shell command.</p>
 
@@ -211,7 +211,7 @@ zz
 <p>A complete example of using Bulk Ingest can be found at <br />
 accumulo/docs/examples/README.bulkIngest</p>
 
-<h2 id="a-idmapreduceingesta-mapreduce-ingest"><a id="MapReduce_Ingest"></a> MapReduce Ingest</h2>
+<h2 id="-mapreduce-ingest"><a id="MapReduce_Ingest"></a> MapReduce Ingest</h2>
 
 <p>It is possible to efficiently write many mutations to Accumulo in parallel via a MapReduce job. In this scenario the MapReduce is written to process data that lives in HDFS and write mutations to Accumulo using the AccumuloOutputFormat. See the MapReduce section under Analytics for details.</p>
 
diff --git a/1.3/user_manual/Introduction.html b/1.3/user_manual/Introduction.html
index b87073b..ae996ab 100644
--- a/1.3/user_manual/Introduction.html
+++ b/1.3/user_manual/Introduction.html
@@ -150,7 +150,7 @@
           
           <p>** Next:** <a href="Accumulo_Design.html">Accumulo Design</a> ** Up:** <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.3</a> ** Previous:** <a href="Contents.html">Contents</a>   ** <a href="Contents.html">Contents</a>**</p>
 
-<h2 id="a-idintroductiona-introduction"><a id="Introduction"></a> Introduction</h2>
+<h2 id="-introduction"><a id="Introduction"></a> Introduction</h2>
 
 <p>Apache Accumulo is a highly scalable structured store based on Google’s BigTable. Accumulo is written in Java and operates over the Hadoop Distributed File System (HDFS), which is part of the popular Apache Hadoop project. Accumulo supports efficient storage and retrieval of structured data, including queries for ranges, and provides support for using Accumulo tables as input and output for MapReduce jobs.</p>
 
diff --git a/1.3/user_manual/Security.html b/1.3/user_manual/Security.html
index b37fae8..2ae0981 100644
--- a/1.3/user_manual/Security.html
+++ b/1.3/user_manual/Security.html
@@ -162,11 +162,11 @@
 
 <hr />
 
-<h2 id="a-idsecuritya-security"><a id="Security"></a> Security</h2>
+<h2 id="-security"><a id="Security"></a> Security</h2>
 
 <p>Accumulo extends the BigTable data model to implement a security mechanism known as cell-level security. Every key-value pair has its own security label, stored under the column visibility element of the key, which is used to determine whether a given user meets the security requirements to read the value. This enables data of various security levels to be stored within the same row, and users of varying degrees of access to query the same table, while preserving data confidentiality.</p>
 
-<h2 id="a-idsecuritylabelexpressionsa-security-label-expressions"><a id="Security_Label_Expressions"></a> Security Label Expressions</h2>
+<h2 id="-security-label-expressions"><a id="Security_Label_Expressions"></a> Security Label Expressions</h2>
 
 <p>When mutations are applied, users can specify a security label for each value. This is done as the Mutation is created by passing a ColumnVisibility object to the put() method:</p>
 
@@ -183,7 +183,7 @@ mutation.put(colFam, colQual, colVis, timestamp, value);
 </code></pre>
 </div>
 
-<h2 id="a-idsecuritylabelexpressionsyntaxa-security-label-expression-syntax"><a id="Security_Label_Expression_Syntax"></a> Security Label Expression Syntax</h2>
+<h2 id="-security-label-expression-syntax"><a id="Security_Label_Expression_Syntax"></a> Security Label Expression Syntax</h2>
 
 <p>Security labels consist of a set of user-defined tokens that are required to read the value the label is associated with. The set of tokens required can be specified using syntax that supports logical AND and OR combinations of tokens, as well as nesting groups of tokens together.</p>
 
@@ -213,7 +213,7 @@ admin|audit
 
 <p>When both <code class="highlighter-rouge">|</code> and <code class="highlighter-rouge">&amp;</code> operators are used, parentheses must be used to specify precedence of the operators.</p>
 
-<h2 id="a-idauthorizationa-authorization"><a id="Authorization"></a> Authorization</h2>
+<h2 id="-authorization"><a id="Authorization"></a> Authorization</h2>
 
 <p>When clients attempt to read data from Accumulo, any security labels present are examined against the set of authorizations passed by the client code when the Scanner or BatchScanner are created. If the authorizations are determined to be insufficient to satisfy the security label, the value is suppressed from the set of results sent back to the client.</p>
 
@@ -226,13 +226,13 @@ Scanner s = connector.createScanner("table", auths);
 </code></pre>
 </div>
 
-<h2 id="a-idsecureauthorizationshandlinga-secure-authorizations-handling"><a id="Secure_Authorizations_Handling"></a> Secure Authorizations Handling</h2>
+<h2 id="-secure-authorizations-handling"><a id="Secure_Authorizations_Handling"></a> Secure Authorizations Handling</h2>
 
 <p>Because the client can pass any authorization tokens to Accumulo, applications must be designed to obtain users’ authorization tokens from a trusted 3rd party rather than having the users specify their authorizations directly.</p>
 
 <p>Often production systems will integrate with Public-Key Infrastructure (PKI) and designate client code within the query layer to negotiate with PKI servers in order to authenticate users and retrieve their authorization tokens (credentials). This requires users to specify only the information necessary to authenticate themselves to the system. Once user identity is established, their credentials can be accessed by the client code and passed to Accumulo outside of the reach of the user.</p>
 
-<h2 id="a-idqueryserviceslayera-query-services-layer"><a id="Query_Services_Layer"></a> Query Services Layer</h2>
+<h2 id="-query-services-layer"><a id="Query_Services_Layer"></a> Query Services Layer</h2>
 
 <p>Since the primary method of interaction with Accumulo is through the Java API, production environments often call for the implementation of a Query layer. This can be done using web services in containers such as Apache Tomcat, but is not a requirement. The Query Services Layer provides a mechanism for providing a platform on which user facing applications can be built. This allows the application designers to isolate potentially complex query logic, and enables a convenient point at  [...]
 
diff --git a/1.3/user_manual/Shell_Commands.html b/1.3/user_manual/Shell_Commands.html
index 167434d..2c58ef3 100644
--- a/1.3/user_manual/Shell_Commands.html
+++ b/1.3/user_manual/Shell_Commands.html
@@ -150,7 +150,7 @@
           
           <p>** Up:** <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.3</a> ** Previous:** <a href="Administration.html">Administration</a>   ** <a href="Contents.html">Contents</a>**</p>
 
-<h2 id="a-idshellcommandsa-shell-commands"><a id="Shell_Commands"></a> Shell Commands</h2>
+<h2 id="-shell-commands"><a id="Shell_Commands"></a> Shell Commands</h2>
 
 <p><strong>?</strong></p>
 
diff --git a/1.3/user_manual/Table_Configuration.html b/1.3/user_manual/Table_Configuration.html
index 5814c58..19187eb 100644
--- a/1.3/user_manual/Table_Configuration.html
+++ b/1.3/user_manual/Table_Configuration.html
@@ -163,17 +163,17 @@
 
 <hr />
 
-<h2 id="a-idtableconfigurationa-table-configuration"><a id="Table_Configuration"></a> Table Configuration</h2>
+<h2 id="-table-configuration"><a id="Table_Configuration"></a> Table Configuration</h2>
 
 <p>Accumulo tables have a few options that can be configured to alter the default behavior of Accumulo as well as improve performance based on the data stored. These include locality groups, constraints, and iterators.</p>
 
-<h2 id="a-idlocalitygroupsa-locality-groups"><a id="Locality_Groups"></a> Locality Groups</h2>
+<h2 id="-locality-groups"><a id="Locality_Groups"></a> Locality Groups</h2>
 
 <p>Accumulo supports storing of sets of column families separately on disk to allow clients to scan over columns that are frequently used together efficient and to avoid scanning over column families that are not requested. After a locality group is set Scanner and BatchScanner operations will automatically take advantage of them whenever the fetchColumnFamilies() method is used.</p>
 
 <p>By default tables place all column families into the same ``default” locality group. Additional locality groups can be configured anytime via the shell or programmatically as follows:</p>
 
-<h3 id="a-idmanaginglocalitygroupsviatheshella-managing-locality-groups-via-the-shell"><a id="Managing_Locality_Groups_via_the_Shell"></a> Managing Locality Groups via the Shell</h3>
+<h3 id="-managing-locality-groups-via-the-shell"><a id="Managing_Locality_Groups_via_the_Shell"></a> Managing Locality Groups via the Shell</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>usage: setgroups &lt;group&gt;=&lt;col fam&gt;{,&lt;col fam&gt;}{ &lt;group&gt;=&lt;col fam&gt;{,&lt;col
 fam&gt;}} [-?] -t &lt;table&gt;
@@ -185,7 +185,7 @@ group_one=colf1,colf2
 </code></pre>
 </div>
 
-<h3 id="a-idmanaginglocalitygroupsviatheclientapia-managing-locality-groups-via-the-client-api"><a id="Managing_Locality_Groups_via_the_Client_API"></a> Managing Locality Groups via the Client API</h3>
+<h3 id="-managing-locality-groups-via-the-client-api"><a id="Managing_Locality_Groups_via_the_Client_API"></a> Managing Locality Groups via the Client API</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>Connector conn;
 
@@ -217,7 +217,7 @@ Map&lt;String, Set&lt;Text&gt;&gt; groups =
 </code></pre>
 </div>
 
-<h2 id="a-idconstraintsa-constraints"><a id="Constraints"></a> Constraints</h2>
+<h2 id="-constraints"><a id="Constraints"></a> Constraints</h2>
 
 <p>Accumulo supports constraints applied on mutations at insert time. This can be used to disallow certain inserts according to a user defined policy. Any mutation that fails to meet the requirements of the constraint is rejected and sent back to the client.</p>
 
@@ -243,7 +243,7 @@ table    | table.constraint.2............ | com.test.AnotherConstraint
 accumulo/docs/examples/README.constraints with corresponding code under <br />
 accumulo/src/examples/main/java/accumulo/examples/constraints .</p>
 
-<h2 id="a-idbloomfiltersa-bloom-filters"><a id="Bloom_Filters"></a> Bloom Filters</h2>
+<h2 id="-bloom-filters"><a id="Bloom_Filters"></a> Bloom Filters</h2>
 
 <p>As mutations are applied to an Accumulo table, several files are created per tablet. If bloom filters are enabled, Accumulo will create and load a small data structure into memory to determine whether a file contains a given key before opening the file. This can speed up lookups considerably.</p>
 
@@ -256,11 +256,11 @@ accumulo/src/examples/main/java/accumulo/examples/constraints .</p>
 <p>An extensive example of using Bloom Filters can be found at <br />
 accumulo/docs/examples/README.bloom .</p>
 
-<h2 id="a-iditeratorsa-iterators"><a id="Iterators"></a> Iterators</h2>
+<h2 id="-iterators"><a id="Iterators"></a> Iterators</h2>
 
 <p>Iterators provide a modular mechanism for adding functionality to be executed by TabletServers when scanning or compacting data. This allows users to efficiently summarize, filter, and aggregate data. In fact, the built-in features of cell-level security and age-off are implemented using Iterators.</p>
 
-<h3 id="a-idsettingiteratorsviatheshella-setting-iterators-via-the-shell"><a id="Setting_Iterators_via_the_Shell"></a> Setting Iterators via the Shell</h3>
+<h3 id="-setting-iterators-via-the-shell"><a id="Setting_Iterators_via_the_Shell"></a> Setting Iterators via the Shell</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>usage: setiter [-?] -agg | -class &lt;name&gt; | -filter | -nolabel | 
 -regex | -vers [-majc] [-minc] [-n &lt;itername&gt;] -p &lt;pri&gt; [-scan] 
@@ -270,7 +270,7 @@ user@myinstance mytable&gt; setiter -t mytable -scan -p 10 -n myiter
 </code></pre>
 </div>
 
-<h3 id="a-idsettingiteratorsprogrammaticallya-setting-iterators-programmatically"><a id="Setting_Iterators_Programmatically"></a> Setting Iterators Programmatically</h3>
+<h3 id="-setting-iterators-programmatically"><a id="Setting_Iterators_Programmatically"></a> Setting Iterators Programmatically</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>scanner.setScanIterators(
     15, // priority
@@ -290,7 +290,7 @@ user@myinstance mytable&gt; setiter -t mytable -scan -p 10 -n myiter
 
 <p>Tables support separate Iterator settings to be applied at scan time, upon minor compaction and upon major compaction. For most uses, tables will have identical iterator settings for all three to avoid inconsistent results.</p>
 
-<h3 id="a-idversioningiteratorsandtimestampsa-versioning-iterators-and-timestamps"><a id="Versioning_Iterators_and_Timestamps"></a> Versioning Iterators and Timestamps</h3>
+<h3 id="-versioning-iterators-and-timestamps"><a id="Versioning_Iterators_and_Timestamps"></a> Versioning Iterators and Timestamps</h3>
 
 <p>Accumulo provides the capability to manage versioned data through the use of timestamps within the Key. If a timestamp is not specified in the key created by the client then the system will set the timestamp to the current time. Two keys with identical rowIDs and columns but different timestamps are considered two versions of the same key. If two inserts are made into accumulo with the same rowID, column, and timestamp, then the behavior is non-deterministic.</p>
 
@@ -309,7 +309,7 @@ table.iterator.majc.vers.opt.maxVersions=3
 </code></pre>
 </div>
 
-<h4 id="a-idlogicaltimea-logical-time"><a id="Logical_Time"></a> Logical Time</h4>
+<h4 id="-logical-time"><a id="Logical_Time"></a> Logical Time</h4>
 
 <p>Accumulo 1.2 introduces the concept of logical time. This ensures that timestamps set by accumulo always move forward. This helps avoid problems caused by TabletServers that have different time settings. The per tablet counter gives unique one up time stamps on a per mutation basis. When using time in milliseconds, if two things arrive within the same millisecond then both receive the same timestamp.</p>
 
@@ -319,11 +319,11 @@ table.iterator.majc.vers.opt.maxVersions=3
 </code></pre>
 </div>
 
-<h4 id="a-iddeletesa-deletes"><a id="Deletes"></a> Deletes</h4>
+<h4 id="-deletes"><a id="Deletes"></a> Deletes</h4>
 
 <p>Deletes are special keys in accumulo that get sorted along will all the other data. When a delete key is inserted, accumulo will not show anything that has a timestamp less than or equal to the delete key. During major compaction, any keys older than a delete key are omitted from the new file created, and the omitted keys are removed from disk as part of the regular garbage collection process.</p>
 
-<h3 id="a-idfilteringiteratorsa-filtering-iterators"><a id="Filtering_Iterators"></a> Filtering Iterators</h3>
+<h3 id="-filtering-iterators"><a id="Filtering_Iterators"></a> Filtering Iterators</h3>
 
 <p>When scanning over a set of key-value pairs it is possible to apply an arbitrary filtering policy through the use of a FilteringIterator. These types of iterators return only key-value pairs that satisfy the filter logic. Accumulo has two built-in filtering iterators that can be configured on any table: AgeOff and RegEx. More can be added by writing a Java class that implements the <br />
 org.apache.accumulo.core.iterators.filter.Filter interface.</p>
@@ -392,7 +392,7 @@ table    | table.iterator.scan.myfilter.opt.0.ttl . | 30000
 </code></pre>
 </div>
 
-<h2 id="a-idaggregatingiteratorsa-aggregating-iterators"><a id="Aggregating_Iterators"></a> Aggregating Iterators</h2>
+<h2 id="-aggregating-iterators"><a id="Aggregating_Iterators"></a> Aggregating Iterators</h2>
 
 <p>Accumulo allows aggregating iterators to be configured on tables and column families. When an aggregating iterator is set, the iterator is applied across the values associated with any keys that share rowID, column family, and column qualifier. This is similar to the reduce step in MapReduce, which applied some function to all the values associated with a particular key.</p>
 
@@ -443,7 +443,7 @@ row2 day:20080101 [] 2
 <p>An example of an aggregator can be found under <br />
 accumulo/src/examples/main/java/org/apache/accumulo/examples/aggregation/SortedSetAggregator.java</p>
 
-<h2 id="a-idblockcachea-block-cache"><a id="Block_Cache"></a> Block Cache</h2>
+<h2 id="-block-cache"><a id="Block_Cache"></a> Block Cache</h2>
 
 <p>In order to increase throughput of commonly accessed entries, Accumulo employs a block cache. This block cache buffers data in memory so that it doesn’t have to be read off of disk. The RFile format that Accumulo prefers is a mix of index blocks and data blocks, where the index blocks are used to find the appropriate data blocks. Typical queries to Accumulo result in a binary search over several index blocks followed by a linear scan of one or more data blocks.</p>
 
diff --git a/1.3/user_manual/Table_Design.html b/1.3/user_manual/Table_Design.html
index eda09c6..8d0b798 100644
--- a/1.3/user_manual/Table_Design.html
+++ b/1.3/user_manual/Table_Design.html
@@ -162,9 +162,9 @@
 
 <hr />
 
-<h2 id="a-idtabledesigna-table-design"><a id="Table_Design"></a> Table Design</h2>
+<h2 id="-table-design"><a id="Table_Design"></a> Table Design</h2>
 
-<h2 id="a-idbasictablea-basic-table"><a id="Basic_Table"></a> Basic Table</h2>
+<h2 id="-basic-table"><a id="Basic_Table"></a> Basic Table</h2>
 
 <p>Since Accumulo tables are sorted by row ID, each table can be thought of as being indexed by the row ID. Lookups performed row ID can be executed quickly, by doing a binary search, first across the tablets, and then within a tablet. Clients should choose a row ID carefully in order to support their desired application. A simple rule is to select a unique identifier as the row ID for each entity to be stored and assign all the other attributes to be tracked to be columns under this row [...]
 
@@ -195,7 +195,7 @@ for(Entry&lt;Key,Value&gt; entry : s)
 </code></pre>
 </div>
 
-<h2 id="a-idrowiddesigna-rowid-design"><a id="RowID_Design"></a> RowID Design</h2>
+<h2 id="-rowid-design"><a id="RowID_Design"></a> RowID Design</h2>
 
 <p>Often it is necessary to transform the rowID in order to have rows ordered in a way that is optimal for anticipated access patterns. A good example of this is reversing the order of components of internet domain names in order to group rows of the same parent domain together:</p>
 
@@ -231,11 +231,11 @@ com.google.mail_201004
 
 <p>Appending dates provides the additional capability of restricting a scan to a given date range.</p>
 
-<h2 id="a-idindexinga-indexing"><a id="Indexing"></a> Indexing</h2>
+<h2 id="-indexing"><a id="Indexing"></a> Indexing</h2>
 
 <p>In order to support lookups via more than one attribute of an entity, additional indexes can be built. However, because Accumulo tables can support any number of columns without specifying them beforehand, a single additional index will often suffice for supporting lookups of records in the main table. Here, the index has, as the rowID, the Value or Term from the main table, the column families are the same, and the column qualifier of the index table contains the rowID from the main  [...]
 
-<p><img src="img2.png" alt="converted table" /></p>
+<p><img src="/1.3/user_manual/img2.png" alt="converted table" /></p>
 
 <p>Note: We store rowIDs in the column qualifier rather than the Value so that we can have more than one rowID associated with a particular term within the index. If we stored this in the Value we would only see one of the rows in which the value appears since Accumulo is configured by default to return the one most recent value associated with a key.</p>
 
@@ -269,7 +269,7 @@ for(Entry&lt;Key,Value&gt; entry : scan)
 
 <p>One advantage of the dynamic schema capabilities of Accumulo is that different fields may be indexed into the same physical table. However, it may be necessary to create different index tables if the terms must be formatted differently in order to maintain proper sort order. For example, real numbers must be formatted differently than their usual notation in order to be sorted correctly. In these cases, usually one index per unique data type will suffice.</p>
 
-<h2 id="a-identity-attributeandgraphtablesa-entity-attribute-and-graph-tables"><a id="Entity-Attribute_and_Graph_Tables"></a> Entity-Attribute and Graph Tables</h2>
+<h2 id="-entity-attribute-and-graph-tables"><a id="Entity-Attribute_and_Graph_Tables"></a> Entity-Attribute and Graph Tables</h2>
 
 <p>Accumulo is ideal for storing entities and their attributes, especially of the attributes are sparse. It is often useful to join several datasets together on common entities within the same table. This can allow for the representation of graphs, including nodes, their attributes, and connections to other nodes.</p>
 
@@ -277,15 +277,15 @@ for(Entry&lt;Key,Value&gt; entry : scan)
 
 <p>The physical shema for an entity-attribute or graph table is as follows:</p>
 
-<p><img src="img3.png" alt="converted table" /></p>
+<p><img src="/1.3/user_manual/img3.png" alt="converted table" /></p>
 
 <p>For example, to keep track of employees, managers and products the following entity-attribute table could be used. Note that the weights are not always necessary and are set to 0 when not used.</p>
 
-<p><img src="img4.png" alt="converted table" /></p>
+<p><img src="/1.3/user_manual/img4.png" alt="converted table" /></p>
 
 <p>To allow efficient updating of edge weights, an aggregating iterator can be configured to add the value of all mutations applied with the same key. These types of tables can easily be created from raw events by simply extracting the entities, attributes, and relationships from individual events and inserting the keys into Accumulo each with a count of 1. The aggregating iterator will take care of maintaining the edge weights.</p>
 
-<h2 id="a-iddocument-partitionedindexinga-document-partitioned-indexing"><a id="Document-Partitioned_Indexing"></a> Document-Partitioned Indexing</h2>
+<h2 id="-document-partitioned-indexing"><a id="Document-Partitioned_Indexing"></a> Document-Partitioned Indexing</h2>
 
 <p>Using a simple index as described above works well when looking for records that match one of a set of given criteria. When looking for records that match more than one criterion simultaneously, such as when looking for documents that contain all of the words <code class="highlighter-rouge">the' and </code>white’ and `house’, there are several issues.</p>
 
@@ -295,7 +295,7 @@ for(Entry&lt;Key,Value&gt; entry : scan)
 
 <p>This is accomplished via partitioning records into bins that each reside on at most one TabletServer, and then creating an index of terms per record within each bin as follows:</p>
 
-<p><img src="img5.png" alt="converted table" /></p>
+<p><img src="/1.3/user_manual/img5.png" alt="converted table" /></p>
 
 <p>Documents or records are mapped into bins by a user-defined ingest application. By storing the BinID as the RowID we ensure that all the information for a particular bin is contained in a single tablet and hosted on a single TabletServer since Accumulo never splits rows across tablets. Storing the Terms as column families serves to enable fast lookups of all the documents within this bin that contain the given term.</p>
 
diff --git a/1.3/user_manual/Writing_Accumulo_Clients.html b/1.3/user_manual/Writing_Accumulo_Clients.html
index 4f83a28..33e632c 100644
--- a/1.3/user_manual/Writing_Accumulo_Clients.html
+++ b/1.3/user_manual/Writing_Accumulo_Clients.html
@@ -159,7 +159,7 @@
 
 <hr />
 
-<h2 id="a-idwritingaccumuloclientsa-writing-accumulo-clients"><a id="Writing_Accumulo_Clients"></a> Writing Accumulo Clients</h2>
+<h2 id="-writing-accumulo-clients"><a id="Writing_Accumulo_Clients"></a> Writing Accumulo Clients</h2>
 
 <p>All clients must first identify the Accumulo instance to which they will be communicating. Code to do this is as follows:</p>
 
@@ -171,7 +171,7 @@ Connector conn = new Connector(inst, "user","passwd".getBytes());
 </code></pre>
 </div>
 
-<h2 id="a-idwritingdataa-writing-data"><a id="Writing_Data"></a> Writing Data</h2>
+<h2 id="-writing-data"><a id="Writing_Data"></a> Writing Data</h2>
 
 <p>Data are written to Accumulo by creating Mutation objects that represent all the changes to the columns of a single row. The changes are made atomically in the TabletServer. Clients then add Mutations to a BatchWriter which submits them to the appropriate TabletServers.</p>
 
@@ -190,7 +190,7 @@ mutation.put(colFam, colQual, colVis, timestamp, value);
 </code></pre>
 </div>
 
-<h3 id="a-idbatchwritera-batchwriter"><a id="BatchWriter"></a> BatchWriter</h3>
+<h3 id="-batchwriter"><a id="BatchWriter"></a> BatchWriter</h3>
 
 <p>The BatchWriter is highly optimized to send Mutations to multiple TabletServers and automatically batches Mutations destined for the same TabletServer to amortize network overhead. Care must be taken to avoid changing the contents of any Object passed to the BatchWriter since it keeps objects in memory while batching.</p>
 
@@ -212,11 +212,11 @@ writer.close();
 <p>An example of using the batch writer can be found at <br />
 accumulo/docs/examples/README.batch</p>
 
-<h2 id="a-idreadingdataa-reading-data"><a id="Reading_Data"></a> Reading Data</h2>
+<h2 id="-reading-data"><a id="Reading_Data"></a> Reading Data</h2>
 
 <p>Accumulo is optimized to quickly retrieve the value associated with a given key, and to efficiently return ranges of consecutive keys and their associated values.</p>
 
-<h3 id="a-idscannera-scanner"><a id="Scanner"></a> Scanner</h3>
+<h3 id="-scanner"><a id="Scanner"></a> Scanner</h3>
 
 <p>To retrieve data, Clients use a Scanner, which provides acts like an Iterator over keys and values. Scanners can be configured to start and stop at particular keys, and to return a subset of the columns available.</p>
 
@@ -236,7 +236,7 @@ for(Entry&lt;Key,Value&gt; entry : scan) {
 </code></pre>
 </div>
 
-<h3 id="a-idbatchscannera-batchscanner"><a id="BatchScanner"></a> BatchScanner</h3>
+<h3 id="-batchscanner"><a id="BatchScanner"></a> BatchScanner</h3>
 
 <p>For some types of access, it is more efficient to retrieve several ranges simultaneously. This arises when accessing a set of rows that are not consecutive whose IDs have been retrieved from a secondary index, for example.</p>
 
diff --git a/1.3/user_manual/examples.html b/1.3/user_manual/examples.html
index d06b631..671b86d 100644
--- a/1.3/user_manual/examples.html
+++ b/1.3/user_manual/examples.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="examples/">
-<meta http-equiv="refresh" content="0; url=examples/">
-<h1>Redirecting…</h1>
-<a href="examples/">Click here if you are not redirected.</a>
-<script>location="examples/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/examples/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/examples/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/examples/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/examples/"</script>
 </html>
diff --git a/1.4/user_manual/Accumulo_Design.html b/1.4/user_manual/Accumulo_Design.html
index f29fc0b..1710beb 100644
--- a/1.4/user_manual/Accumulo_Design.html
+++ b/1.4/user_manual/Accumulo_Design.html
@@ -164,63 +164,63 @@
 
 <hr />
 
-<h2 id="a-idaccumulodesigna-accumulo-design"><a id="Accumulo_Design"></a> Accumulo Design</h2>
+<h2 id="-accumulo-design"><a id="Accumulo_Design"></a> Accumulo Design</h2>
 
-<h2 id="a-iddatamodela-data-model"><a id="Data_Model"></a> Data Model</h2>
+<h2 id="-data-model"><a id="Data_Model"></a> Data Model</h2>
 
 <p>Accumulo provides a richer data model than simple key-value stores, but is not a fully relational database. Data is represented as key-value pairs, where the key and value are comprised of the following elements:</p>
 
-<p><img src="img1.png" alt="converted table" /></p>
+<p><img src="/1.4/user_manual/img1.png" alt="converted table" /></p>
 
 <p>All elements of the Key and the Value are represented as byte arrays except for Timestamp, which is a Long. Accumulo sorts keys by element and lexicographically in ascending order. Timestamps are sorted in descending order so that later versions of the same Key appear first in a sequential scan. Tables consist of a set of sorted key-value pairs.</p>
 
-<h2 id="a-idarchitecturea-architecture"><a id="Architecture"></a> Architecture</h2>
+<h2 id="-architecture"><a id="Architecture"></a> Architecture</h2>
 
 <p>Accumulo is a distributed data storage and retrieval system and as such consists of several architectural components, some of which run on many individual servers. Much of the work Accumulo does involves maintaining certain properties of the data, such as organization, availability, and integrity, across many commodity-class machines.</p>
 
-<h2 id="a-idcomponentsa-components"><a id="Components"></a> Components</h2>
+<h2 id="-components"><a id="Components"></a> Components</h2>
 
 <p>An instance of Accumulo includes many TabletServers, write-ahead Logger servers, one Garbage Collector process, one Master server and many Clients.</p>
 
-<h3 id="a-idtabletservera-tablet-server"><a id="Tablet_Server"></a> Tablet Server</h3>
+<h3 id="-tablet-server"><a id="Tablet_Server"></a> Tablet Server</h3>
 
 <p>The TabletServer manages some subset of all the tablets (partitions of tables). This includes receiving writes from clients, persisting writes to a write-ahead log, sorting new key-value pairs in memory, periodically flushing sorted key-value pairs to new files in HDFS, and responding to reads from clients, forming a merge-sorted view of all keys and values from all the files it has created and the sorted in-memory store.</p>
 
 <p>TabletServers also perform recovery of a tablet that was previously on a server that failed, reapplying any writes found in the write-ahead log to the tablet.</p>
 
-<h3 id="a-idloggersa-loggers"><a id="Loggers"></a> Loggers</h3>
+<h3 id="-loggers"><a id="Loggers"></a> Loggers</h3>
 
 <p>The Loggers accept updates to Tablet servers and write them to local on-disk storage. Each tablet server will write their updates to multiple loggers to preserve data in case of hardware failure.</p>
 
-<h3 id="a-idgarbagecollectora-garbage-collector"><a id="Garbage_Collector"></a> Garbage Collector</h3>
+<h3 id="-garbage-collector"><a id="Garbage_Collector"></a> Garbage Collector</h3>
 
 <p>Accumulo processes will share files stored in HDFS. Periodically, the Garbage Collector will identify files that are no longer needed by any process, and delete them.</p>
 
-<h3 id="a-idmastera-master"><a id="Master"></a> Master</h3>
+<h3 id="-master"><a id="Master"></a> Master</h3>
 
 <p>The Accumulo Master is responsible for detecting and responding to TabletServer failure. It tries to balance the load across TabletServer by assigning tablets carefully and instructing TabletServers to migrate tablets when necessary. The Master ensures all tablets are assigned to one TabletServer each, and handles table creation, alteration, and deletion requests from clients. The Master also coordinates startup, graceful shutdown and recovery of changes in write-ahead logs when Table [...]
 
-<h3 id="a-idclienta-client"><a id="Client"></a> Client</h3>
+<h3 id="-client"><a id="Client"></a> Client</h3>
 
 <p>Accumulo includes a client library that is linked to every application. The client library contains logic for finding servers managing a particular tablet, and communicating with TabletServers to write and retrieve key-value pairs.</p>
 
-<h2 id="a-iddatamanagementa-data-management"><a id="Data_Management"></a> Data Management</h2>
+<h2 id="-data-management"><a id="Data_Management"></a> Data Management</h2>
 
 <p>Accumulo stores data in tables, which are partitioned into tablets. Tablets are partitioned on row boundaries so that all of the columns and values for a particular row are found together within the same tablet. The Master assigns Tablets to one TabletServer at a time. This enables row-level transactions to take place without using distributed locking or some other complicated synchronization mechanism. As clients insert and query data, and as machines are added and removed from the c [...]
 
-<p><img src="./data_distribution.png" alt="Image data_distribution" /></p>
+<p><img src="/1.4/user_manual/data_distribution.png" alt="Image data_distribution" /></p>
 
-<h2 id="a-idtabletservicea-tablet-service"><a id="Tablet_Service"></a> Tablet Service</h2>
+<h2 id="-tablet-service"><a id="Tablet_Service"></a> Tablet Service</h2>
 
 <p>When a write arrives at a TabletServer it is written to a Write-Ahead Log and then inserted into a sorted data structure in memory called a MemTable. When the MemTable reaches a certain size the TabletServer writes out the sorted key-value pairs to a file in HDFS called Indexed Sequential Access Method (ISAM) file. This process is called a minor compaction. A new MemTable is then created and the fact of the compaction is recorded in the Write-Ahead Log.</p>
 
 <p>When a request to read data arrives at a TabletServer, the TabletServer does a binary search across the MemTable as well as the in-memory indexes associated with each ISAM file to find the relevant values. If clients are performing a scan, several key-value pairs are returned to the client in order from the MemTable and the set of ISAM files by performing a merge-sort as they are read.</p>
 
-<h2 id="a-idcompactionsa-compactions"><a id="Compactions"></a> Compactions</h2>
+<h2 id="-compactions"><a id="Compactions"></a> Compactions</h2>
 
 <p>In order to manage the number of files per tablet, periodically the TabletServer performs Major Compactions of files within a tablet, in which some set of ISAM files are combined into one file. The previous files will eventually be removed by the Garbage Collector. This also provides an opportunity to permanently remove deleted key-value pairs by omitting key-value pairs suppressed by a delete entry when the new file is created.</p>
 
-<h2 id="a-idfault-tolerancea-fault-tolerance"><a id="Fault-Tolerance"></a> Fault-Tolerance</h2>
+<h2 id="-fault-tolerance"><a id="Fault-Tolerance"></a> Fault-Tolerance</h2>
 
 <p>If a TabletServer fails, the Master detects it and automatically reassigns the tablets assigned from the failed server to other servers. Any key-value pairs that were in memory at the time the TabletServer are automatically reapplied from the Write-Ahead Log to prevent any loss of data.</p>
 
@@ -229,7 +229,7 @@
 <p>TabletServer failures are noted on the Master’s monitor page, accessible via <br />
 http://master-address:50095/monitor.</p>
 
-<p><img src="./failure_handling.png" alt="Image failure_handling" /></p>
+<p><img src="/1.4/user_manual/failure_handling.png" alt="Image failure_handling" /></p>
 
 <hr />
 
diff --git a/1.4/user_manual/Accumulo_Shell.html b/1.4/user_manual/Accumulo_Shell.html
index ade2230..9acb348 100644
--- a/1.4/user_manual/Accumulo_Shell.html
+++ b/1.4/user_manual/Accumulo_Shell.html
@@ -160,7 +160,7 @@
 
 <hr />
 
-<h2 id="a-idaccumuloshella-accumulo-shell"><a id="Accumulo_Shell"></a> Accumulo Shell</h2>
+<h2 id="-accumulo-shell"><a id="Accumulo_Shell"></a> Accumulo Shell</h2>
 
 <p>Accumulo provides a simple shell that can be used to examine the contents and configuration settings of tables, insert/update/delete values, and change configuration settings.</p>
 
@@ -183,7 +183,7 @@
 </code></pre>
 </div>
 
-<h2 id="a-idbasicadministrationa-basic-administration"><a id="Basic_Administration"></a> Basic Administration</h2>
+<h2 id="-basic-administration"><a id="Basic_Administration"></a> Basic Administration</h2>
 
 <p>The Accumulo shell can be used to create and delete tables, as well as to configure table and instance specific options.</p>
 
@@ -222,7 +222,7 @@ row1 colf:colq [] value1
 
 <p>The value in brackets “[]” would be the visibility labels. Since none were used, this is empty for this row. You can use the “-t” option to scan to see the timestamp for the cell, too.</p>
 
-<h2 id="a-idtablemaintenancea-table-maintenance"><a id="Table_Maintenance"></a> Table Maintenance</h2>
+<h2 id="-table-maintenance"><a id="Table_Maintenance"></a> Table Maintenance</h2>
 
 <p>The <strong>compact</strong> command instructs Accumulo to schedule a compaction of the table during which files are consolidated and deleted entries are removed.</p>
 
@@ -240,7 +240,7 @@ initiated...
 </code></pre>
 </div>
 
-<h2 id="a-iduseradministrationa-user-administration"><a id="User_Administration"></a> User Administration</h2>
+<h2 id="-user-administration"><a id="User_Administration"></a> User Administration</h2>
 
 <p>The Shell can be used to add, remove, and grant privileges to users.</p>
 
diff --git a/1.4/user_manual/Administration.html b/1.4/user_manual/Administration.html
index c4ec608..881678a 100644
--- a/1.4/user_manual/Administration.html
+++ b/1.4/user_manual/Administration.html
@@ -167,9 +167,9 @@
 
 <hr />
 
-<h2 id="a-idadministrationa-administration"><a id="Administration"></a> Administration</h2>
+<h2 id="-administration"><a id="Administration"></a> Administration</h2>
 
-<h2 id="a-idhardwarea-hardware"><a id="Hardware"></a> Hardware</h2>
+<h2 id="-hardware"><a id="Hardware"></a> Hardware</h2>
 
 <p>Because we are running essentially two or three systems simultaneously layered across the cluster: HDFS, Accumulo and MapReduce, it is typical for hardware to consist of 4 to 8 cores, and 8 to 32 GB RAM. This is so each running process can have at least one core and 2 - 4 GB each.</p>
 
@@ -177,11 +177,11 @@
 
 <p>It is possible to do with less than this, such as with 1u servers with 2 cores and 4GB each, but in this case it is recommended to only run up to two processes per machine - i.e. DataNode and TabletServer or DataNode and MapReduce worker but not all three. The constraint here is having enough available heap space for all the processes on a machine.</p>
 
-<h2 id="a-idnetworka-network"><a id="Network"></a> Network</h2>
+<h2 id="-network"><a id="Network"></a> Network</h2>
 
 <p>Accumulo communicates via remote procedure calls over TCP/IP for both passing data and control messages. In addition, Accumulo uses HDFS clients to communicate with HDFS. To achieve good ingest and query performance, sufficient network bandwidth must be available between any two machines.</p>
 
-<h2 id="a-idinstallationa-installation"><a id="Installation"></a> Installation</h2>
+<h2 id="-installation"><a id="Installation"></a> Installation</h2>
 
 <p>Choose a directory for the Accumulo installation. This directory will be referenced by the environment variable $ACCUMULO_HOME. Run the following:</p>
 
@@ -191,15 +191,15 @@
 
 <p>Repeat this step at each machine within the cluster. Usually all machines have the same $ACCUMULO_HOME.</p>
 
-<h2 id="a-iddependenciesa-dependencies"><a id="Dependencies"></a> Dependencies</h2>
+<h2 id="-dependencies"><a id="Dependencies"></a> Dependencies</h2>
 
 <p>Accumulo requires HDFS and ZooKeeper to be configured and running before starting. Password-less SSH should be configured between at least the Accumulo master and TabletServer machines. It is also a good idea to run Network Time Protocol (NTP) within the cluster to ensure nodes’ clocks don’t get too out of sync, which can cause problems with automatically timestamped data. Accumulo will remove from the set of TabletServers those machines whose times differ too much from the master’s.</p>
 
-<h2 id="a-idconfigurationa-configuration"><a id="Configuration"></a> Configuration</h2>
+<h2 id="-configuration"><a id="Configuration"></a> Configuration</h2>
 
 <p>Accumulo is configured by editing several Shell and XML files found in $ACCUMULO_HOME/conf. The structure closely resembles Hadoop’s configuration files.</p>
 
-<h3 id="a-ideditconfaccumulo-envsha-edit-confaccumulo-envsh"><a id="Edit_conf/accumulo-env.sh"></a> Edit conf/accumulo-env.sh</h3>
+<h3 id="-edit-confaccumulo-envsh"><a id="Edit_conf/accumulo-env.sh"></a> Edit conf/accumulo-env.sh</h3>
 
 <p>Accumulo needs to know where to find the software it depends on. Edit accumulo-env.sh and specify the following:</p>
 
@@ -217,7 +217,7 @@
 
 <p>Note that you will be specifying the Java heap space in accumulo-env.sh. You should make sure that the total heap space used for the Accumulo tserver and the Hadoop DataNode and TaskTracker is less than the available memory on each slave node in the cluster. On large clusters, it is recommended that the Accumulo master, Hadoop NameNode, secondary NameNode, and Hadoop JobTracker all be run on separate machines to allow them to use more heap space. If you are running these on the same m [...]
 
-<h3 id="a-idclusterspecificationa-cluster-specification"><a id="Cluster_Specification"></a> Cluster Specification</h3>
+<h3 id="-cluster-specification"><a id="Cluster_Specification"></a> Cluster Specification</h3>
 
 <p>On the machine that will serve as the Accumulo master:</p>
 
@@ -230,7 +230,7 @@ $ACCUMULO_HOME/conf/slaves, one per line.</li>
 
 <p>Note that if using domain names rather than IP addresses, DNS must be configured properly for all machines participating in the cluster. DNS can be a confusing source of errors.</p>
 
-<h3 id="a-idaccumulosettingsa-accumulo-settings"><a id="Accumulo_Settings"></a> Accumulo Settings</h3>
+<h3 id="-accumulo-settings"><a id="Accumulo_Settings"></a> Accumulo Settings</h3>
 
 <p>Specify appropriate values for the following settings in <br />
 $ACCUMULO_HOME/conf/accumulo-site.xml :</p>
@@ -254,12 +254,12 @@ $ACCUMULO_HOME/conf/accumulo-site.xml :</p>
 
 <p>Some settings can be modified via the Accumulo shell and take effect immediately. However, any settings that should be persisted across system restarts must be recorded in the accumulo-site.xml file.</p>
 
-<h3 id="a-iddeployconfigurationa-deploy-configuration"><a id="Deploy_Configuration"></a> Deploy Configuration</h3>
+<h3 id="-deploy-configuration"><a id="Deploy_Configuration"></a> Deploy Configuration</h3>
 
 <p>Copy the masters, slaves, accumulo-env.sh, and if necessary, accumulo-site.xml from the <br />
 $ACCUMULO_HOME/conf/ directory on the master to all the machines specified in the slaves file.</p>
 
-<h2 id="a-idinitializationa-initialization"><a id="Initialization"></a> Initialization</h2>
+<h2 id="-initialization"><a id="Initialization"></a> Initialization</h2>
 
 <p>Accumulo must be initialized to create the structures it uses internally to locate data across the cluster. HDFS is required to be configured and running before Accumulo can be initialized.</p>
 
@@ -268,19 +268,19 @@ $ACCUMULO_HOME/bin/accumulo init . This script will prompt for a name for this i
 
 <p>The initialization script will prompt you to set a root password. Once Accumulo is initialized it can be started.</p>
 
-<h2 id="a-idrunninga-running"><a id="Running"></a> Running</h2>
+<h2 id="-running"><a id="Running"></a> Running</h2>
 
-<h3 id="a-idstartingaccumuloa-starting-accumulo"><a id="Starting_Accumulo"></a> Starting Accumulo</h3>
+<h3 id="-starting-accumulo"><a id="Starting_Accumulo"></a> Starting Accumulo</h3>
 
 <p>Make sure Hadoop is configured on all of the machines in the cluster, including access to a shared HDFS instance. Make sure HDFS and ZooKeeper are running. Make sure ZooKeeper is configured and running on at least one machine in the cluster. Start Accumulo using the bin/start-all.sh script.</p>
 
 <p>To verify that Accumulo is running, check the Status page as described under <em>Monitoring</em>. In addition, the Shell can provide some information about the status of tables via reading the !METADATA table.</p>
 
-<h3 id="a-idstoppingaccumuloa-stopping-accumulo"><a id="Stopping_Accumulo"></a> Stopping Accumulo</h3>
+<h3 id="-stopping-accumulo"><a id="Stopping_Accumulo"></a> Stopping Accumulo</h3>
 
 <p>To shutdown cleanly, run bin/stop-all.sh and the master will orchestrate the shutdown of all the tablet servers. Shutdown waits for all minor compactions to finish, so it may take some time for particular configurations.</p>
 
-<h3 id="a-idaddinganodea-adding-a-node"><a id="Adding_a_Node"></a> Adding a Node</h3>
+<h3 id="-adding-a-node"><a id="Adding_a_Node"></a> Adding a Node</h3>
 
 <p>Update your $ACCUMULO_HOME/conf/slaves (or $ACCUMULO_CONF_DIR/slaves) file to account for the addition.</p>
 
@@ -292,7 +292,7 @@ $ACCUMULO_HOME/bin/accumulo init . This script will prompt for a name for this i
 
 <p>Make sure the host in question has the new configuration, or else the tablet server won’t start; at a minimum this needs to be on the host(s) being added, but in practice it’s good to ensure consistent configuration across all nodes.</p>
 
-<h3 id="a-iddecomissioninganodea-decomissioning-a-node"><a id="Decomissioning_a_Node"></a> Decomissioning a Node</h3>
+<h3 id="-decomissioning-a-node"><a id="Decomissioning_a_Node"></a> Decomissioning a Node</h3>
 
 <p>If you need to take a node out of operation, you can trigger a graceful shutdown of a tablet server. Accumulo will automatically rebalance the tablets across the available tablet servers.</p>
 
@@ -304,17 +304,17 @@ $ACCUMULO_HOME/bin/accumulo init . This script will prompt for a name for this i
 
 <p>Be sure to update your $ACCUMULO_HOME/conf/slaves (or $ACCUMULO_CONF_DIR/slaves) file to account for the removal of these hosts. Bear in mind that the monitor will not re-read the slaves file automatically, so it will report the decomissioned servers as down; it’s recommended that you restart the monitor so that the node list is up to date.</p>
 
-<h2 id="a-idmonitoringa-monitoring"><a id="Monitoring"></a> Monitoring</h2>
+<h2 id="-monitoring"><a id="Monitoring"></a> Monitoring</h2>
 
 <p>The Accumulo Master provides an interface for monitoring the status and health of Accumulo components. This interface can be accessed by pointing a web browser to <br />
 http://accumulomaster:50095/status</p>
 
-<h2 id="a-idlogginga-logging"><a id="Logging"></a> Logging</h2>
+<h2 id="-logging"><a id="Logging"></a> Logging</h2>
 
 <p>Accumulo processes each write to a set of log files. By default these are found under <br />
 $ACCUMULO/logs/.</p>
 
-<h2 id="a-idrecoverya-recovery"><a id="Recovery"></a> Recovery</h2>
+<h2 id="-recovery"><a id="Recovery"></a> Recovery</h2>
 
 <p>In the event of TabletServer failure or error on shutting Accumulo down, some mutations may not have been minor compacted to HDFS properly. In this case, Accumulo will automatically reapply such mutations from the write-ahead log either when the tablets from the failed server are reassigned by the Master, in the case of a single TabletServer failure or the next time Accumulo starts, in the event of failure during shutdown.</p>
 
diff --git a/1.4/user_manual/Analytics.html b/1.4/user_manual/Analytics.html
index da2e370..26698d2 100644
--- a/1.4/user_manual/Analytics.html
+++ b/1.4/user_manual/Analytics.html
@@ -160,11 +160,11 @@
 
 <hr />
 
-<h2 id="a-idanalyticsa-analytics"><a id="Analytics"></a> Analytics</h2>
+<h2 id="-analytics"><a id="Analytics"></a> Analytics</h2>
 
 <p>Accumulo supports more advanced data processing than simply keeping keys sorted and performing efficient lookups. Analytics can be developed by using MapReduce and Iterators in conjunction with Accumulo tables.</p>
 
-<h2 id="a-idmapreducea-mapreduce"><a id="MapReduce"></a> MapReduce</h2>
+<h2 id="-mapreduce"><a id="MapReduce"></a> MapReduce</h2>
 
 <p>Accumulo tables can be used as the source and destination of MapReduce jobs. To use an Accumulo table with a MapReduce job (specifically with the new Hadoop API as of version 0.20), configure the job parameters to use the AccumuloInputFormat and AccumuloOutputFormat. Accumulo specific parameters can be set via these two format classes to do the following:</p>
 
@@ -174,7 +174,7 @@
   <li>Restrict the input to a subset of available columns</li>
 </ul>
 
-<h3 id="a-idmapperandreducerclassesa-mapper-and-reducer-classes"><a id="Mapper_and_Reducer_classes"></a> Mapper and Reducer classes</h3>
+<h3 id="-mapper-and-reducer-classes"><a id="Mapper_and_Reducer_classes"></a> Mapper and Reducer classes</h3>
 
 <p>To read from an Accumulo table create a Mapper with the following class parameterization and be sure to configure the AccumuloInputFormat.</p>
 
@@ -204,7 +204,7 @@
 
 <p>The Text object passed as the output should contain the name of the table to which this mutation should be applied. The Text can be null in which case the mutation will be applied to the default table name specified in the AccumuloOutputFormat options.</p>
 
-<h3 id="a-idaccumuloinputformatoptionsa-accumuloinputformat-options"><a id="AccumuloInputFormat_options"></a> AccumuloInputFormat options</h3>
+<h3 id="-accumuloinputformat-options"><a id="AccumuloInputFormat_options"></a> AccumuloInputFormat options</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>Job job = new Job(getConf());
 AccumuloInputFormat.setInputInfo(job,
@@ -242,7 +242,7 @@ AccumuloInputFormat.fetchColumns(job, columns);
 </code></pre>
 </div>
 
-<h3 id="a-idaccumulooutputformatoptionsa-accumulooutputformat-options"><a id="AccumuloOutputFormat_options"></a> AccumuloOutputFormat options</h3>
+<h3 id="-accumulooutputformat-options"><a id="AccumuloOutputFormat_options"></a> AccumuloOutputFormat options</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>boolean createTables = true;
 String defaultTable = "mytable";
@@ -268,7 +268,7 @@ AccumuloOutputFormat.setMaxMutationBufferSize(job, 5000000); // bytes
 <p>An example of using MapReduce with Accumulo can be found at <br />
 accumulo/docs/examples/README.mapred</p>
 
-<h2 id="a-idcombinersa-combiners"><a id="Combiners"></a> Combiners</h2>
+<h2 id="-combiners"><a id="Combiners"></a> Combiners</h2>
 
 <p>Many applications can benefit from the ability to aggregate values across common keys. This can be done via Combiner iterators and is similar to the Reduce step in MapReduce. This provides the ability to define online, incrementally updated analytics without the overhead or latency associated with batch-oriented MapReduce jobs.</p>
 
@@ -276,11 +276,11 @@ accumulo/docs/examples/README.mapred</p>
 
 <p>The only restriction on an combining iterator is that the combiner developer should not assume that all values for a given key have been seen, since new mutations can be inserted at anytime. This precludes using the total number of values in the aggregation such as when calculating an average, for example.</p>
 
-<h3 id="a-idfeaturevectorsa-feature-vectors"><a id="Feature_Vectors"></a> Feature Vectors</h3>
+<h3 id="-feature-vectors"><a id="Feature_Vectors"></a> Feature Vectors</h3>
 
 <p>An interesting use of combining iterators within an Accumulo table is to store feature vectors for use in machine learning algorithms. For example, many algorithms such as k-means clustering, support vector machines, anomaly detection, etc. use the concept of a feature vector and the calculation of distance metrics to learn a particular model. The columns in an Accumulo table can be used to efficiently store sparse features and their weights to be incrementally updated via the use of  [...]
 
-<h2 id="a-idstatisticalmodelinga-statistical-modeling"><a id="Statistical_Modeling"></a> Statistical Modeling</h2>
+<h2 id="-statistical-modeling"><a id="Statistical_Modeling"></a> Statistical Modeling</h2>
 
 <p>Statistical models that need to be updated by many machines in parallel could be similarly stored within an Accumulo table. For example, a MapReduce job that is iteratively updating a global statistical model could have each map or reduce worker reference the parts of the model to be read and updated through an embedded Accumulo client.</p>
 
diff --git a/1.4/user_manual/Contents.html b/1.4/user_manual/Contents.html
index 76651d2..e5ef8e6 100644
--- a/1.4/user_manual/Contents.html
+++ b/1.4/user_manual/Contents.html
@@ -150,7 +150,7 @@
           
           <p>** Next:** <a href="Introduction.html">Introduction</a> ** Up:** <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.4</a> ** Previous:** <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.4</a></p>
 
-<h3 id="a-idcontentsa-contents"><a id="Contents"></a> Contents</h3>
+<h3 id="-contents"><a id="Contents"></a> Contents</h3>
 
 <ul>
   <li><a href="Introduction.html">Introduction</a></li>
diff --git a/1.4/user_manual/Development_Clients.html b/1.4/user_manual/Development_Clients.html
index 1c48bb6..89507b0 100644
--- a/1.4/user_manual/Development_Clients.html
+++ b/1.4/user_manual/Development_Clients.html
@@ -159,11 +159,11 @@
 
 <hr />
 
-<h2 id="a-iddevelopmentclientsa-development-clients"><a id="Development_Clients"></a> Development Clients</h2>
+<h2 id="-development-clients"><a id="Development_Clients"></a> Development Clients</h2>
 
 <p>Normally, Accumulo consists of lots of moving parts. Even a stand-alone version of Accumulo requires Hadoop, Zookeeper, the Accumulo master, a tablet server, etc. If you want to write a unit test that uses Accumulo, you need a lot of infrastructure in place before your test can run.</p>
 
-<h2 id="a-idmockaccumuloa-mock-accumulo"><a id="Mock_Accumulo"></a> Mock Accumulo</h2>
+<h2 id="-mock-accumulo"><a id="Mock_Accumulo"></a> Mock Accumulo</h2>
 
 <p>Mock Accumulo supplies mock implementations for much of the client API. It presently does not enforce users, logins, permissions, etc. It does support Iterators and Combiners. Note that MockAccumulo holds all data in memory, and will not retain any data or settings between runs.</p>
 
@@ -214,7 +214,7 @@ AccumuloOutputFormat.setMockInstance(job, "mockInstance");
 </code></pre>
 </div>
 
-<h2 id="a-idminiaccumuloclustera-mini-accumulo-cluster"><a id="Mini_Accumulo_Cluster"></a> Mini Accumulo Cluster</h2>
+<h2 id="-mini-accumulo-cluster"><a id="Mini_Accumulo_Cluster"></a> Mini Accumulo Cluster</h2>
 
 <p>While the Mock Accumulo provides a lightweight implementation of the client API for unit testing, it is often necessary to write more realistic end-to-end integration tests that take advantage of the entire ecosystem. The Mini Accumulo Cluster makes this possible by configuring and starting Zookeeper, initializing Accumulo, and starting the Master as well as some Tablet Servers. It runs against the local filesystem instead of having to start up HDFS.</p>
 
diff --git a/1.4/user_manual/High_Speed_Ingest.html b/1.4/user_manual/High_Speed_Ingest.html
index 785f385..f0cea8e 100644
--- a/1.4/user_manual/High_Speed_Ingest.html
+++ b/1.4/user_manual/High_Speed_Ingest.html
@@ -162,11 +162,11 @@
 
 <hr />
 
-<h2 id="a-idhigh-speedingesta-high-speed-ingest"><a id="High-Speed_Ingest"></a> High-Speed Ingest</h2>
+<h2 id="-high-speed-ingest"><a id="High-Speed_Ingest"></a> High-Speed Ingest</h2>
 
 <p>Accumulo is often used as part of a larger data processing and storage system. To maximize the performance of a parallel system involving Accumulo, the ingestion and query components should be designed to provide enough parallelism and concurrency to avoid creating bottlenecks for users and other systems writing to and reading from Accumulo. There are several ways to achieve high ingest performance.</p>
 
-<h2 id="a-idpre-splittingnewtablesa-pre-splitting-new-tables"><a id="Pre-Splitting_New_Tables"></a> Pre-Splitting New Tables</h2>
+<h2 id="-pre-splitting-new-tables"><a id="Pre-Splitting_New_Tables"></a> Pre-Splitting New Tables</h2>
 
 <p>New tables consist of a single tablet by default. As mutations are applied, the table grows and splits into multiple tablets which are balanced by the Master across TabletServers. This implies that the aggregate ingest rate will be limited to fewer servers than are available within the cluster until the table has reached the point where there are tablets on every TabletServer.</p>
 
@@ -178,13 +178,13 @@
 
 <p>For the purposes of providing parallelism to ingest it is not necessary to create more tablets than there are physical machines within the cluster as the aggregate ingest rate is a function of the number of physical machines. Note that the aggregate ingest rate is still subject to the number of machines running ingest clients, and the distribution of rowIDs across the table. The aggregation ingest rate will be suboptimal if there are many inserts into a small number of rowIDs.</p>
 
-<h2 id="a-idmultipleingesterclientsa-multiple-ingester-clients"><a id="Multiple_Ingester_Clients"></a> Multiple Ingester Clients</h2>
+<h2 id="-multiple-ingester-clients"><a id="Multiple_Ingester_Clients"></a> Multiple Ingester Clients</h2>
 
 <p>Accumulo is capable of scaling to very high rates of ingest, which is dependent upon not just the number of TabletServers in operation but also the number of ingest clients. This is because a single client, while capable of batching mutations and sending them to all TabletServers, is ultimately limited by the amount of data that can be processed on a single machine. The aggregate ingest rate will scale linearly with the number of clients up to the point at which either the aggregate I [...]
 
 <p>In operational settings where high rates of ingest are paramount, clusters are often configured to dedicate some number of machines solely to running Ingester Clients. The exact ratio of clients to TabletServers necessary for optimum ingestion rates will vary according to the distribution of resources per machine and by data type.</p>
 
-<h2 id="a-idbulkingesta-bulk-ingest"><a id="Bulk_Ingest"></a> Bulk Ingest</h2>
+<h2 id="-bulk-ingest"><a id="Bulk_Ingest"></a> Bulk Ingest</h2>
 
 <p>Accumulo supports the ability to import files produced by an external process such as MapReduce into an existing table. In some cases it may be faster to load data this way rather than via ingesting through clients using BatchWriters. This allows a large number of machines to format data the way Accumulo expects. The new files can then simply be introduced to Accumulo via a shell command.</p>
 
@@ -212,13 +212,13 @@ zz
 <p>A complete example of using Bulk Ingest can be found at <br />
 accumulo/docs/examples/README.bulkIngest</p>
 
-<h2 id="a-idlogicaltimeforbulkingesta-logical-time-for-bulk-ingest"><a id="Logical_Time_for_Bulk_Ingest"></a> Logical Time for Bulk Ingest</h2>
+<h2 id="-logical-time-for-bulk-ingest"><a id="Logical_Time_for_Bulk_Ingest"></a> Logical Time for Bulk Ingest</h2>
 
 <p>Logical time is important for bulk imported data, for which the client code may be choosing a timestamp. At bulk import time, the user can choose to enable logical time for the set of files being imported. When its enabled, Accumulo uses a specialized system iterator to lazily set times in a bulk imported file. This mechanism guarantees that times set by unsynchronized multi-node applications (such as those running on MapReduce) will maintain some semblance of causal ordering. This mi [...]
 
 <p>The timestamp assigned by accumulo will be the same for every key in the file. This could cause problems if the file contains multiple keys that are identical except for the timestamp. In this case, the sort order of the keys will be undefined. This could occur if an insert and an update were in the same bulk import file.</p>
 
-<h2 id="a-idmapreduceingesta-mapreduce-ingest"><a id="MapReduce_Ingest"></a> MapReduce Ingest</h2>
+<h2 id="-mapreduce-ingest"><a id="MapReduce_Ingest"></a> MapReduce Ingest</h2>
 
 <p>It is possible to efficiently write many mutations to Accumulo in parallel via a MapReduce job. In this scenario the MapReduce is written to process data that lives in HDFS and write mutations to Accumulo using the AccumuloOutputFormat. See the MapReduce section under Analytics for details.</p>
 
diff --git a/1.4/user_manual/Introduction.html b/1.4/user_manual/Introduction.html
index 4463a4d..cb0092a 100644
--- a/1.4/user_manual/Introduction.html
+++ b/1.4/user_manual/Introduction.html
@@ -150,7 +150,7 @@
           
           <p>** Next:** <a href="Accumulo_Design.html">Accumulo Design</a> ** Up:** <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.4</a> ** Previous:** <a href="Contents.html">Contents</a>   ** <a href="Contents.html">Contents</a>**</p>
 
-<h2 id="a-idintroductiona-introduction"><a id="Introduction"></a> Introduction</h2>
+<h2 id="-introduction"><a id="Introduction"></a> Introduction</h2>
 
 <p>Apache Accumulo is a highly scalable structured store based on Google’s BigTable. Accumulo is written in Java and operates over the Hadoop Distributed File System (HDFS), which is part of the popular Apache Hadoop project. Accumulo supports efficient storage and retrieval of structured data, including queries for ranges, and provides support for using Accumulo tables as input and output for MapReduce jobs.</p>
 
diff --git a/1.4/user_manual/Security.html b/1.4/user_manual/Security.html
index d183090..fd4b786 100644
--- a/1.4/user_manual/Security.html
+++ b/1.4/user_manual/Security.html
@@ -163,11 +163,11 @@
 
 <hr />
 
-<h2 id="a-idsecuritya-security"><a id="Security"></a> Security</h2>
+<h2 id="-security"><a id="Security"></a> Security</h2>
 
 <p>Accumulo extends the BigTable data model to implement a security mechanism known as cell-level security. Every key-value pair has its own security label, stored under the column visibility element of the key, which is used to determine whether a given user meets the security requirements to read the value. This enables data of various security levels to be stored within the same row, and users of varying degrees of access to query the same table, while preserving data confidentiality.</p>
 
-<h2 id="a-idsecuritylabelexpressionsa-security-label-expressions"><a id="Security_Label_Expressions"></a> Security Label Expressions</h2>
+<h2 id="-security-label-expressions"><a id="Security_Label_Expressions"></a> Security Label Expressions</h2>
 
 <p>When mutations are applied, users can specify a security label for each value. This is done as the Mutation is created by passing a ColumnVisibility object to the put() method:</p>
 
@@ -184,7 +184,7 @@ mutation.put(colFam, colQual, colVis, timestamp, value);
 </code></pre>
 </div>
 
-<h2 id="a-idsecuritylabelexpressionsyntaxa-security-label-expression-syntax"><a id="Security_Label_Expression_Syntax"></a> Security Label Expression Syntax</h2>
+<h2 id="-security-label-expression-syntax"><a id="Security_Label_Expression_Syntax"></a> Security Label Expression Syntax</h2>
 
 <p>Security labels consist of a set of user-defined tokens that are required to read the value the label is associated with. The set of tokens required can be specified using syntax that supports logical AND and OR combinations of tokens, as well as nesting groups of tokens together.</p>
 
@@ -214,7 +214,7 @@ admin|audit
 
 <p>When both <code class="highlighter-rouge">|</code> and <code class="highlighter-rouge">&amp;</code> operators are used, parentheses must be used to specify precedence of the operators.</p>
 
-<h2 id="a-idauthorizationa-authorization"><a id="Authorization"></a> Authorization</h2>
+<h2 id="-authorization"><a id="Authorization"></a> Authorization</h2>
 
 <p>When clients attempt to read data from Accumulo, any security labels present are examined against the set of authorizations passed by the client code when the Scanner or BatchScanner are created. If the authorizations are determined to be insufficient to satisfy the security label, the value is suppressed from the set of results sent back to the client.</p>
 
@@ -227,7 +227,7 @@ Scanner s = connector.createScanner("table", auths);
 </code></pre>
 </div>
 
-<h2 id="a-iduserauthorizationsa-user-authorizations"><a id="User_Authorizations"></a> User Authorizations</h2>
+<h2 id="-user-authorizations"><a id="User_Authorizations"></a> User Authorizations</h2>
 
 <p>Each accumulo user has a set of associated security labels. To manipulate these in the shell use the setuaths and getauths commands. These may also be modified using the java security operations API.</p>
 
@@ -241,13 +241,13 @@ Scanner s = connector.createScanner("table", auths);
 
 <p>Any user with the alter table permission can add or remove this constraint. This constraint is not applied to bulk imported data, if this a concern then disable the bulk import permission.</p>
 
-<h2 id="a-idsecureauthorizationshandlinga-secure-authorizations-handling"><a id="Secure_Authorizations_Handling"></a> Secure Authorizations Handling</h2>
+<h2 id="-secure-authorizations-handling"><a id="Secure_Authorizations_Handling"></a> Secure Authorizations Handling</h2>
 
 <p>For applications serving many users, it is not expected that an accumulo user will be created for each application user. In this case an accumulo user with all authorizations needed by any of the applications users must be created. To service queries, the application should create a scanner with the application users authorizations. These authorizations could be obtained from a trusted 3rd party.</p>
 
 <p>Often production systems will integrate with Public-Key Infrastructure (PKI) and designate client code within the query layer to negotiate with PKI servers in order to authenticate users and retrieve their authorization tokens (credentials). This requires users to specify only the information necessary to authenticate themselves to the system. Once user identity is established, their credentials can be accessed by the client code and passed to Accumulo outside of the reach of the user.</p>
 
-<h2 id="a-idqueryserviceslayera-query-services-layer"><a id="Query_Services_Layer"></a> Query Services Layer</h2>
+<h2 id="-query-services-layer"><a id="Query_Services_Layer"></a> Query Services Layer</h2>
 
 <p>Since the primary method of interaction with Accumulo is through the Java API, production environments often call for the implementation of a Query layer. This can be done using web services in containers such as Apache Tomcat, but is not a requirement. The Query Services Layer provides a mechanism for providing a platform on which user facing applications can be built. This allows the application designers to isolate potentially complex query logic, and enables a convenient point at  [...]
 
diff --git a/1.4/user_manual/Shell_Commands.html b/1.4/user_manual/Shell_Commands.html
index 1814580..46f866f 100644
--- a/1.4/user_manual/Shell_Commands.html
+++ b/1.4/user_manual/Shell_Commands.html
@@ -150,7 +150,7 @@
           
           <p>** Up:** <a href="accumulo_user_manual.html">Apache Accumulo User Manual Version 1.4</a> ** Previous:** <a href="Administration.html">Administration</a>   ** <a href="Contents.html">Contents</a>**</p>
 
-<h2 id="a-idshellcommandsa-shell-commands"><a id="Shell_Commands"></a> Shell Commands</h2>
+<h2 id="-shell-commands"><a id="Shell_Commands"></a> Shell Commands</h2>
 
 <p><strong>?</strong></p>
 
diff --git a/1.4/user_manual/Table_Configuration.html b/1.4/user_manual/Table_Configuration.html
index 7598e08..4ec3b53 100644
--- a/1.4/user_manual/Table_Configuration.html
+++ b/1.4/user_manual/Table_Configuration.html
@@ -167,17 +167,17 @@
 
 <hr />
 
-<h2 id="a-idtableconfigurationa-table-configuration"><a id="Table_Configuration"></a> Table Configuration</h2>
+<h2 id="-table-configuration"><a id="Table_Configuration"></a> Table Configuration</h2>
 
 <p>Accumulo tables have a few options that can be configured to alter the default behavior of Accumulo as well as improve performance based on the data stored. These include locality groups, constraints, bloom filters, iterators, and block cache.</p>
 
-<h2 id="a-idlocalitygroupsa-locality-groups"><a id="Locality_Groups"></a> Locality Groups</h2>
+<h2 id="-locality-groups"><a id="Locality_Groups"></a> Locality Groups</h2>
 
 <p>Accumulo supports storing of sets of column families separately on disk to allow clients to scan over columns that are frequently used together efficient and to avoid scanning over column families that are not requested. After a locality group is set Scanner and BatchScanner operations will automatically take advantage of them whenever the fetchColumnFamilies() method is used.</p>
 
 <p>By default tables place all column families into the same ``default” locality group. Additional locality groups can be configured anytime via the shell or programmatically as follows:</p>
 
-<h3 id="a-idmanaginglocalitygroupsviatheshella-managing-locality-groups-via-the-shell"><a id="Managing_Locality_Groups_via_the_Shell"></a> Managing Locality Groups via the Shell</h3>
+<h3 id="-managing-locality-groups-via-the-shell"><a id="Managing_Locality_Groups_via_the_Shell"></a> Managing Locality Groups via the Shell</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>usage: setgroups &lt;group&gt;=&lt;col fam&gt;{,&lt;col fam&gt;}{ &lt;group&gt;=&lt;col fam&gt;{,&lt;col
 fam&gt;}} [-?] -t &lt;table&gt;
@@ -189,7 +189,7 @@ group_one=colf1,colf2
 </code></pre>
 </div>
 
-<h3 id="a-idmanaginglocalitygroupsviatheclientapia-managing-locality-groups-via-the-client-api"><a id="Managing_Locality_Groups_via_the_Client_API"></a> Managing Locality Groups via the Client API</h3>
+<h3 id="-managing-locality-groups-via-the-client-api"><a id="Managing_Locality_Groups_via_the_Client_API"></a> Managing Locality Groups via the Client API</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>Connector conn;
 
@@ -221,7 +221,7 @@ Map&lt;String, Set&lt;Text&gt;&gt; groups =
 </code></pre>
 </div>
 
-<h2 id="a-idconstraintsa-constraints"><a id="Constraints"></a> Constraints</h2>
+<h2 id="-constraints"><a id="Constraints"></a> Constraints</h2>
 
 <p>Accumulo supports constraints applied on mutations at insert time. This can be used to disallow certain inserts according to a user defined policy. Any mutation that fails to meet the requirements of the constraint is rejected and sent back to the client.</p>
 
@@ -247,7 +247,7 @@ table    | table.constraint.2............ | com.test.AnotherConstraint
 accumulo/docs/examples/README.constraints with corresponding code under <br />
 accumulo/src/examples/simple/main/java/accumulo/examples/simple/constraints .</p>
 
-<h2 id="a-idbloomfiltersa-bloom-filters"><a id="Bloom_Filters"></a> Bloom Filters</h2>
+<h2 id="-bloom-filters"><a id="Bloom_Filters"></a> Bloom Filters</h2>
 
 <p>As mutations are applied to an Accumulo table, several files are created per tablet. If bloom filters are enabled, Accumulo will create and load a small data structure into memory to determine whether a file contains a given key before opening the file. This can speed up lookups considerably.</p>
 
@@ -260,11 +260,11 @@ accumulo/src/examples/simple/main/java/accumulo/examples/simple/constraints .</p
 <p>An extensive example of using Bloom Filters can be found at <br />
 accumulo/docs/examples/README.bloom .</p>
 
-<h2 id="a-iditeratorsa-iterators"><a id="Iterators"></a> Iterators</h2>
+<h2 id="-iterators"><a id="Iterators"></a> Iterators</h2>
 
 <p>Iterators provide a modular mechanism for adding functionality to be executed by TabletServers when scanning or compacting data. This allows users to efficiently summarize, filter, and aggregate data. In fact, the built-in features of cell-level security and column fetching are implemented using Iterators. Some useful Iterators are provided with Accumulo and can be found in the org.apache.accumulo.core.iterators.user package.</p>
 
-<h3 id="a-idsettingiteratorsviatheshella-setting-iterators-via-the-shell"><a id="Setting_Iterators_via_the_Shell"></a> Setting Iterators via the Shell</h3>
+<h3 id="-setting-iterators-via-the-shell"><a id="Setting_Iterators_via_the_Shell"></a> Setting Iterators via the Shell</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>usage: setiter [-?] -ageoff | -agg | -class &lt;name&gt; | -regex | 
 -reqvis | -vers   [-majc] [-minc] [-n &lt;itername&gt;] -p &lt;pri&gt;   
@@ -274,7 +274,7 @@ user@myinstance mytable&gt; setiter -t mytable -scan -p 10 -n myiter
 </code></pre>
 </div>
 
-<h3 id="a-idsettingiteratorsprogrammaticallya-setting-iterators-programmatically"><a id="Setting_Iterators_Programmatically"></a> Setting Iterators Programmatically</h3>
+<h3 id="-setting-iterators-programmatically"><a id="Setting_Iterators_Programmatically"></a> Setting Iterators Programmatically</h3>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>scanner.addIterator(new IteratorSetting(
     15, // priority
@@ -294,7 +294,7 @@ scanner.addIterator(iter)
 
 <p>Tables support separate Iterator settings to be applied at scan time, upon minor compaction and upon major compaction. For most uses, tables will have identical iterator settings for all three to avoid inconsistent results.</p>
 
-<h3 id="a-idversioningiteratorsandtimestampsa-versioning-iterators-and-timestamps"><a id="Versioning_Iterators_and_Timestamps"></a> Versioning Iterators and Timestamps</h3>
+<h3 id="-versioning-iterators-and-timestamps"><a id="Versioning_Iterators_and_Timestamps"></a> Versioning Iterators and Timestamps</h3>
 
 <p>Accumulo provides the capability to manage versioned data through the use of timestamps within the Key. If a timestamp is not specified in the key created by the client then the system will set the timestamp to the current time. Two keys with identical rowIDs and columns but different timestamps are considered two versions of the same key. If two inserts are made into accumulo with the same rowID, column, and timestamp, then the behavior is non-deterministic.</p>
 
@@ -313,7 +313,7 @@ table.iterator.majc.vers.opt.maxVersions=3
 </code></pre>
 </div>
 
-<h4 id="a-idlogicaltimea-logical-time"><a id="Logical_Time"></a> Logical Time</h4>
+<h4 id="-logical-time"><a id="Logical_Time"></a> Logical Time</h4>
 
 <p>Accumulo 1.2 introduces the concept of logical time. This ensures that timestamps set by accumulo always move forward. This helps avoid problems caused by TabletServers that have different time settings. The per tablet counter gives unique one up time stamps on a per mutation basis. When using time in milliseconds, if two things arrive within the same millisecond then both receive the same timestamp. When using time in milliseconds, accumulo set times will still always move forward an [...]
 
@@ -323,11 +323,11 @@ table.iterator.majc.vers.opt.maxVersions=3
 </code></pre>
 </div>
 
-<h4 id="a-iddeletesa-deletes"><a id="Deletes"></a> Deletes</h4>
+<h4 id="-deletes"><a id="Deletes"></a> Deletes</h4>
 
 <p>Deletes are special keys in accumulo that get sorted along will all the other data. When a delete key is inserted, accumulo will not show anything that has a timestamp less than or equal to the delete key. During major compaction, any keys older than a delete key are omitted from the new file created, and the omitted keys are removed from disk as part of the regular garbage collection process.</p>
 
-<h3 id="a-idfiltersa-filters"><a id="Filters"></a> Filters</h3>
+<h3 id="-filters"><a id="Filters"></a> Filters</h3>
 
 <p>When scanning over a set of key-value pairs it is possible to apply an arbitrary filtering policy through the use of a Filter. Filters are types of iterators that return only key-value pairs that satisfy the filter logic. Accumulo has a few built-in filters that can be configured on any table: AgeOff, ColumnAgeOff, Timestamp, NoVis, and RegEx. More can be added by writing a Java class that extends the <br />
 org.apache.accumulo.core.iterators.Filter class.</p>
@@ -373,7 +373,7 @@ table    | table.iterator.scan.vers.opt.maxVersions .. | 1
 </code></pre>
 </div>
 
-<h3 id="a-idcombinersa-combiners"><a id="Combiners"></a> Combiners</h3>
+<h3 id="-combiners"><a id="Combiners"></a> Combiners</h3>
 
 <p>Accumulo allows Combiners to be configured on tables and column families. When a Combiner is set it is applied across the values associated with any keys that share rowID, column family, and column qualifier. This is similar to the reduce step in MapReduce, which applied some function to all the values associated with a particular key.</p>
 
@@ -423,7 +423,7 @@ foo day:20080103 []    1
 <p>An example of a Combiner can be found under <br />
 accumulo/src/examples/simple/main/java/org/apache/accumulo/examples/simple/combiner/StatsCombiner.java</p>
 
-<h2 id="a-idblockcachea-block-cache"><a id="Block_Cache"></a> Block Cache</h2>
+<h2 id="-block-cache"><a id="Block_Cache"></a> Block Cache</h2>
 
 <p>In order to increase throughput of commonly accessed entries, Accumulo employs a block cache. This block cache buffers data in memory so that it doesn’t have to be read off of disk. The RFile format that Accumulo prefers is a mix of index blocks and data blocks, where the index blocks are used to find the appropriate data blocks. Typical queries to Accumulo result in a binary search over several index blocks followed by a linear scan of one or more data blocks.</p>
 
@@ -443,7 +443,7 @@ table.cache.index.enable: Determines whether index cache is enabled.
 
 <p>The block cache can have a significant effect on alleviating hot spots, as well as reducing query latency. It is enabled by default for the !METADATA table.</p>
 
-<h2 id="a-idcompactiona-compaction"><a id="Compaction"></a> Compaction</h2>
+<h2 id="-compaction"><a id="Compaction"></a> Compaction</h2>
 
 <p>As data is written to Accumulo it is buffered in memory. The data buffered in memory is eventually written to HDFS on a per tablet basis. Files can also be added to tablets directly by bulk import. In the background tablet servers run major compactions to merge multiple files into one. The tablet server has to decide which tablets to compact and which files within a tablet to compact. This decision is made using the compaction ratio, which is configurable on a per table basis. To conf [...]
 
@@ -477,11 +477,11 @@ table.cache.index.enable: Determines whether index cache is enabled.
 </code></pre>
 </div>
 
-<p>When a tablet reaches this number of files and needs to flush its in-memory data to disk, it will choose to do a merging minor compaction. A merging minor compaction will merge the tablet’s smallest file with the data in memory at minor compaction time. Therefore the number of files will not grow beyond this limit. This will make minor compactions take longer, which will cause ingest performance to decrease. This can cause ingest to slow down until major compactions have enough time t [...]
+<p>When a tablet reaches this number of files and needs to flush its in-memory data to disk, it will choose to do a merging minor compaction. A merging minor compaction will merge the tablet’s smallest file with the data in memory at minor compaction time. Therefore the number of files will not grow beyond this limit. This will make minor compactions take longer, which will cause ingest performance to decrease. This can cause ingest to slow down until major compactions have enough time t [...]
 
 <p>Compactions can be initiated manually for a table. To initiate a minor compaction, use the flush command in the shell. To initiate a major compaction, use the compact command in the shell. The compact command will compact all tablets in a table to one file. Even tablets with one file are compacted. This is useful for the case where a major compaction filter is configured for a table. In 1.4 the ability to compact a range of a table was added. To use this feature specify start and stop [...]
 
-<h2 id="a-idpre-splittingtablesa-pre-splitting-tables"><a id="Pre-splitting_tables"></a> Pre-splitting tables</h2>
+<h2 id="-pre-splitting-tables"><a id="Pre-splitting_tables"></a> Pre-splitting tables</h2>
 
 <p>Accumulo will balance and distribute tables accross servers. Before a table gets large, it will be maintained as a single tablet on a single server. This limits the speed at which data can be added or queried to the speed of a single node. To improve performance when the a table is new, or small, you can add split points and generate new tablets.</p>
 
@@ -494,7 +494,7 @@ root@myinstance&gt; addsplits -t newTable g n t
 
 <p>This will create a new table with 4 tablets. The table will be split on the letters <code class="highlighter-rouge">g'',</code>n’’, and ``t’’ which will work nicely if the row data start with lower-case alphabetic characters. If your row data includes binary information or numeric information, or if the distribution of the row information is not flat, then you would pick different split points. Now ingest and query can proceed on 4 nodes which can improve performance.</p>
 
-<h2 id="a-idmergingtabletsa-merging-tablets"><a id="Merging_tablets"></a> Merging tablets</h2>
+<h2 id="-merging-tablets"><a id="Merging_tablets"></a> Merging tablets</h2>
 
 <p>Over time, a table can get very large, so large that it has hundreds of thousands of split points. Once there are enough tablets to spread a table across the entire cluster, additional splits may not improve performance, and may create unnecessary bookkeeping. The distribution of data may change over time. For example, if row data contains date information, and data is continually added and removed to maintain a window of current information, tablets for older rows may be empty.</p>
 
@@ -529,7 +529,7 @@ root@myinstance&gt; merge -t myTable
 </code></pre>
 </div>
 
-<h2 id="a-iddeleterangea-delete-range"><a id="Delete_Range"></a> Delete Range</h2>
+<h2 id="-delete-range"><a id="Delete_Range"></a> Delete Range</h2>
 
 <p>Consider an indexing scheme that uses date information in each row. For example ``20110823-15:20:25.013’’ might be a row that specifies a date and time. In some cases, we might like to delete rows based on this date, say to remove all the data older than the current year. Accumulo supports a delete range operation which can efficiently removes data between two rows. For example:</p>
 
@@ -547,7 +547,7 @@ root@myinstance&gt; merge -t myTable
 
 <p>Range deletion is implemented using splits at the given start/end positions, and will affect the number of splits in the table.</p>
 
-<h2 id="a-idcloningtablesa-cloning-tables"><a id="Cloning_Tables"></a> Cloning Tables</h2>
+<h2 id="-cloning-tables"><a id="Cloning_Tables"></a> Cloning Tables</h2>
 
 <p>A new table can be created that points to an existing table’s data. This is a very quick metadata operation, no data is actually copied. The cloned table and the source table can change independently after the clone operation. One use case for this feature is testing. For example to test a new filtering iterator, clone the table, add the filter to the clone, and force a major compaction. To perform a test on less data, clone a table and then use delete range to efficiently remove a lo [...]
 
diff --git a/1.4/user_manual/Table_Design.html b/1.4/user_manual/Table_Design.html
index f0995a6..ffed57e 100644
--- a/1.4/user_manual/Table_Design.html
+++ b/1.4/user_manual/Table_Design.html
@@ -162,9 +162,9 @@
 
 <hr />
 
-<h2 id="a-idtabledesigna-table-design"><a id="Table_Design"></a> Table Design</h2>
+<h2 id="-table-design"><a id="Table_Design"></a> Table Design</h2>
 
-<h2 id="a-idbasictablea-basic-table"><a id="Basic_Table"></a> Basic Table</h2>
+<h2 id="-basic-table"><a id="Basic_Table"></a> Basic Table</h2>
 
 <p>Since Accumulo tables are sorted by row ID, each table can be thought of as being indexed by the row ID. Lookups performed row ID can be executed quickly, by doing a binary search, first across the tablets, and then within a tablet. Clients should choose a row ID carefully in order to support their desired application. A simple rule is to select a unique identifier as the row ID for each entity to be stored and assign all the other attributes to be tracked to be columns under this row [...]
 
@@ -195,7 +195,7 @@ for(Entry&lt;Key,Value&gt; entry : s)
 </code></pre>
 </div>
 
-<h2 id="a-idrowiddesigna-rowid-design"><a id="RowID_Design"></a> RowID Design</h2>
+<h2 id="-rowid-design"><a id="RowID_Design"></a> RowID Design</h2>
 
 <p>Often it is necessary to transform the rowID in order to have rows ordered in a way that is optimal for anticipated access patterns. A good example of this is reversing the order of components of internet domain names in order to group rows of the same parent domain together:</p>
 
@@ -231,11 +231,11 @@ com.google.mail_201004
 
 <p>Appending dates provides the additional capability of restricting a scan to a given date range.</p>
 
-<h2 id="a-idindexinga-indexing"><a id="Indexing"></a> Indexing</h2>
+<h2 id="-indexing"><a id="Indexing"></a> Indexing</h2>
 
 <p>In order to support lookups via more than one attribute of an entity, additional indexes can be built. However, because Accumulo tables can support any number of columns without specifying them beforehand, a single additional index will often suffice for supporting lookups of records in the main table. Here, the index has, as the rowID, the Value or Term from the main table, the column families are the same, and the column qualifier of the index table contains the rowID from the main  [...]
 
-<p><img src="img4.png" alt="converted table" /></p>
+<p><img src="/1.4/user_manual/img4.png" alt="converted table" /></p>
 
 <p>Note: We store rowIDs in the column qualifier rather than the Value so that we can have more than one rowID associated with a particular term within the index. If we stored this in the Value we would only see one of the rows in which the value appears since Accumulo is configured by default to return the one most recent value associated with a key.</p>
 
@@ -269,7 +269,7 @@ for(Entry&lt;Key,Value&gt; entry : scan)
 
 <p>One advantage of the dynamic schema capabilities of Accumulo is that different fields may be indexed into the same physical table. However, it may be necessary to create different index tables if the terms must be formatted differently in order to maintain proper sort order. For example, real numbers must be formatted differently than their usual notation in order to be sorted correctly. In these cases, usually one index per unique data type will suffice.</p>
 
-<h2 id="a-identity-attributeandgraphtablesa-entity-attribute-and-graph-tables"><a id="Entity-Attribute_and_Graph_Tables"></a> Entity-Attribute and Graph Tables</h2>
+<h2 id="-entity-attribute-and-graph-tables"><a id="Entity-Attribute_and_Graph_Tables"></a> Entity-Attribute and Graph Tables</h2>
 
 <p>Accumulo is ideal for storing entities and their attributes, especially of the attributes are sparse. It is often useful to join several datasets together on common entities within the same table. This can allow for the representation of graphs, including nodes, their attributes, and connections to other nodes.</p>
 
@@ -277,15 +277,15 @@ for(Entry&lt;Key,Value&gt; entry : scan)
 
 <p>The physical schema for an entity-attribute or graph table is as follows:</p>
 
-<p><img src="img5.png" alt="converted table" /></p>
+<p><img src="/1.4/user_manual/img5.png" alt="converted table" /></p>
 
 <p>For example, to keep track of employees, managers and products the following entity-attribute table could be used. Note that the weights are not always necessary and are set to 0 when not used.</p>
 
-<p><img src="img6.png" alt="converted table" /></p>
+<p><img src="/1.4/user_manual/img6.png" alt="converted table" /></p>
 
 <p>To allow efficient updating of edge weights, an aggregating iterator can be configured to add the value of all mutations applied with the same key. These types of tables can easily be created from raw events by simply extracting the entities, attributes, and relationships from individual events and inserting the keys into Accumulo each with a count of 1. The aggregating iterator will take care of maintaining the edge weights.</p>
 
-<h2 id="a-iddocument-partitionedindexinga-document-partitioned-indexing"><a id="Document-Partitioned_Indexing"></a> Document-Partitioned Indexing</h2>
+<h2 id="-document-partitioned-indexing"><a id="Document-Partitioned_Indexing"></a> Document-Partitioned Indexing</h2>
 
 <p>Using a simple index as described above works well when looking for records that match one of a set of given criteria. When looking for records that match more than one criterion simultaneously, such as when looking for documents that contain all of the words <code class="highlighter-rouge">the' and </code>white’ and `house’, there are several issues.</p>
 
@@ -295,7 +295,7 @@ for(Entry&lt;Key,Value&gt; entry : scan)
 
 <p>This is accomplished via partitioning records into bins that each reside on at most one TabletServer, and then creating an index of terms per record within each bin as follows:</p>
 
-<p><img src="img7.png" alt="converted table" /></p>
+<p><img src="/1.4/user_manual/img7.png" alt="converted table" /></p>
 
 <p>Documents or records are mapped into bins by a user-defined ingest application. By storing the BinID as the RowID we ensure that all the information for a particular bin is contained in a single tablet and hosted on a single TabletServer since Accumulo never splits rows across tablets. Storing the Terms as column families serves to enable fast lookups of all the documents within this bin that contain the given term.</p>
 
diff --git a/1.4/user_manual/Writing_Accumulo_Clients.html b/1.4/user_manual/Writing_Accumulo_Clients.html
index 78e637b..ef8a615 100644
--- a/1.4/user_manual/Writing_Accumulo_Clients.html
+++ b/1.4/user_manual/Writing_Accumulo_Clients.html
@@ -162,9 +162,9 @@
 
 <hr />
 
-<h2 id="a-idwritingaccumuloclientsa-writing-accumulo-clients"><a id="Writing_Accumulo_Clients"></a> Writing Accumulo Clients</h2>
+<h2 id="-writing-accumulo-clients"><a id="Writing_Accumulo_Clients"></a> Writing Accumulo Clients</h2>
 
-<h2 id="a-idrunningclientcodea-running-client-code"><a id="Running_Client_Code"></a> Running Client Code</h2>
+<h2 id="-running-client-code"><a id="Running_Client_Code"></a> Running Client Code</h2>
 
 <p>There are multiple ways to run Java code that uses Accumulo. Below is a list of the different ways to execute client code.</p>
 
@@ -184,7 +184,7 @@
 
 <p>If you are writing map reduce job that access Accumulo, then you can use the bin/tool.sh script to run those jobs. See the map reduce example.</p>
 
-<h2 id="a-idconnectinga-connecting"><a id="Connecting"></a> Connecting</h2>
+<h2 id="-connecting"><a id="Connecting"></a> Connecting</h2>
 
 <p>All clients must first identify the Accumulo instance to which they will be communicating. Code to do this is as follows:</p>
 
@@ -196,7 +196,7 @@ Connector conn = inst.getConnector("user", "passwd");
 </code></pre>
 </div>
 
-<h2 id="a-idwritingdataa-writing-data"><a id="Writing_Data"></a> Writing Data</h2>
+<h2 id="-writing-data"><a id="Writing_Data"></a> Writing Data</h2>
 
 <p>Data are written to Accumulo by creating Mutation objects that represent all the changes to the columns of a single row. The changes are made atomically in the TabletServer. Clients then add Mutations to a BatchWriter which submits them to the appropriate TabletServers.</p>
 
@@ -215,7 +215,7 @@ mutation.put(colFam, colQual, colVis, timestamp, value);
 </code></pre>
 </div>
 
-<h3 id="a-idbatchwritera-batchwriter"><a id="BatchWriter"></a> BatchWriter</h3>
+<h3 id="-batchwriter"><a id="BatchWriter"></a> BatchWriter</h3>
 
 <p>The BatchWriter is highly optimized to send Mutations to multiple TabletServers and automatically batches Mutations destined for the same TabletServer to amortize network overhead. Care must be taken to avoid changing the contents of any Object passed to the BatchWriter since it keeps objects in memory while batching.</p>
 
@@ -237,11 +237,11 @@ writer.close();
 <p>An example of using the batch writer can be found at <br />
 accumulo/docs/examples/README.batch</p>
 
-<h2 id="a-idreadingdataa-reading-data"><a id="Reading_Data"></a> Reading Data</h2>
+<h2 id="-reading-data"><a id="Reading_Data"></a> Reading Data</h2>
 
 <p>Accumulo is optimized to quickly retrieve the value associated with a given key, and to efficiently return ranges of consecutive keys and their associated values.</p>
 
-<h3 id="a-idscannera-scanner"><a id="Scanner"></a> Scanner</h3>
+<h3 id="-scanner"><a id="Scanner"></a> Scanner</h3>
 
 <p>To retrieve data, Clients use a Scanner, which provides acts like an Iterator over keys and values. Scanners can be configured to start and stop at particular keys, and to return a subset of the columns available.</p>
 
@@ -261,7 +261,7 @@ for(Entry&lt;Key,Value&gt; entry : scan) {
 </code></pre>
 </div>
 
-<h3 id="a-idisolatedscannera-isolated-scanner"><a id="Isolated_Scanner"></a> Isolated Scanner</h3>
+<h3 id="-isolated-scanner"><a id="Isolated_Scanner"></a> Isolated Scanner</h3>
 
 <p>Accumulo supports the ability to present an isolated view of rows when scanning. There are three possible ways that a row could change in accumulo :</p>
 
@@ -278,7 +278,7 @@ for(Entry&lt;Key,Value&gt; entry : scan) {
 <p>For an example, look at the following <br />
 src/examples/src/main/java/org/apache/accumulo/examples/isolation/InterferenceTest.java</p>
 
-<h3 id="a-idbatchscannera-batchscanner"><a id="BatchScanner"></a> BatchScanner</h3>
+<h3 id="-batchscanner"><a id="BatchScanner"></a> BatchScanner</h3>
 
 <p>For some types of access, it is more efficient to retrieve several ranges simultaneously. This arises when accessing a set of rows that are not consecutive whose IDs have been retrieved from a secondary index, for example.</p>
 
@@ -301,15 +301,15 @@ for(Entry&lt;Key,Value&gt; entry : scan)
 <p>An example of the BatchScanner can be found at <br />
 accumulo/docs/examples/README.batch</p>
 
-<h2 id="a-idproxya-proxy"><a id="Proxy"></a> Proxy</h2>
+<h2 id="-proxy"><a id="Proxy"></a> Proxy</h2>
 
 <p>The proxy API allows the interaction with Accumulo with languages other than Java. A proxy server is provided in the codebase and a client can further be generated.</p>
 
-<h3 id="a-idprequisitesa-prequisites"><a id="Prequisites"></a> Prequisites</h3>
+<h3 id="-prequisites"><a id="Prequisites"></a> Prequisites</h3>
 
 <p>The proxy server can live on any node in which the basic client API would work. That means it must be able to communicate with the Master, ZooKeepers, NameNode, and the Data nodes. A proxy client only needs the ability to communicate with the proxy server.</p>
 
-<h3 id="a-idconfigurationa-configuration"><a id="Configuration"></a> Configuration</h3>
+<h3 id="-configuration"><a id="Configuration"></a> Configuration</h3>
 
 <p>The configuration options for the proxy server live inside of a properties file. At the very least, you need to supply the following properties:</p>
 
@@ -329,7 +329,7 @@ zookeepers=localhost:2181
 
 <p>This sample configuration file further demonstrates an ability to back the proxy server by MockAccumulo or the MiniAccumuloCluster.</p>
 
-<h3 id="a-idrunningtheproxyservera-running-the-proxy-server"><a id="Running_the_Proxy_Server"></a> Running the Proxy Server</h3>
+<h3 id="-running-the-proxy-server"><a id="Running_the_Proxy_Server"></a> Running the Proxy Server</h3>
 
 <p>After the properties file holding the configuration is created, the proxy server can be started using the following command in the Accumulo distribution (assuming your properties file is named config.properties):</p>
 
@@ -337,7 +337,7 @@ zookeepers=localhost:2181
 </code></pre>
 </div>
 
-<h3 id="a-idcreatingaproxyclienta-creating-a-proxy-client"><a id="Creating_a_Proxy_Client"></a> Creating a Proxy Client</h3>
+<h3 id="-creating-a-proxy-client"><a id="Creating_a_Proxy_Client"></a> Creating a Proxy Client</h3>
 
 <p>Aside from installing the Thrift compiler, you will also need the language-specific library for Thrift installed to generate client code in that language. Typically, your operating system’s package manager will be able to automatically install these for you in an expected location such as /usr/lib/python/site-packages/thrift.</p>
 
@@ -349,7 +349,7 @@ zookeepers=localhost:2181
 
 <p>After a client is generated, the port specified in the configuration properties above will be used to connect to the server.</p>
 
-<h3 id="a-idusingaproxyclienta-using-a-proxy-client"><a id="Using_a_Proxy_Client"></a> Using a Proxy Client</h3>
+<h3 id="-using-a-proxy-client"><a id="Using_a_Proxy_Client"></a> Using a Proxy Client</h3>
 
 <p>The following examples have been written in Java and the method signatures may be slightly different depending on the language specified when generating client with the Thrift compiler. After initiating a connection to the Proxy (see Apache Thrift’s documentation for examples of connecting to a Thrift service), the methods on the proxy client will be available. The first thing to do is log in:</p>
 
diff --git a/1.8/examples/dirlist.html b/1.8/examples/dirlist.html
index 95e57ef..198bd14 100644
--- a/1.8/examples/dirlist.html
+++ b/1.8/examples/dirlist.html
@@ -25,7 +25,7 @@
 <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bs/jq-2.2.3/dt-1.10.12/datatables.min.css">
 <link href="/css/accumulo.css" rel="stylesheet" type="text/css">
 
-<title>Directory Table</title>
+<title>Apache Accumulo™</title>
 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
@@ -146,7 +146,7 @@
         </div>
         <div id="content">
           
-          <h1 class="title">Directory Table</h1>
+          <h1 class="title">Apache Accumulo™</h1>
           
           <p>Title: Apache Accumulo File System Archive
 Notice:    Licensed to the Apache Software Foundation (ASF) under one
diff --git a/1.8/examples/visibility.html b/1.8/examples/visibility.html
index e54ece1..e19ee16 100644
--- a/1.8/examples/visibility.html
+++ b/1.8/examples/visibility.html
@@ -25,7 +25,7 @@
 <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bs/jq-2.2.3/dt-1.10.12/datatables.min.css">
 <link href="/css/accumulo.css" rel="stylesheet" type="text/css">
 
-<title>Creating a new user</title>
+<title>Apache Accumulo™</title>
 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
@@ -146,7 +146,7 @@
         </div>
         <div id="content">
           
-          <h1 class="title">Creating a new user</h1>
+          <h1 class="title">Apache Accumulo™</h1>
           
           <p>Title: Apache Accumulo Visibility, Authorizations, and Permissions Example
 Notice:    Licensed to the Apache Software Foundation (ASF) under one
diff --git a/assets/css/style.css b/assets/css/style.css
new file mode 100644
index 0000000..3b89a7d
--- /dev/null
+++ b/assets/css/style.css
@@ -0,0 +1,2742 @@
+/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
+/** 1. Change the default font family in all browsers (opinionated). 2. Prevent adjustments of font size after orientation changes in IE and iOS. */
+html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ }
+
+/** Remove the margin in all browsers (opinionated). */
+body { margin: 0; }
+
+/* HTML5 display definitions ========================================================================== */
+/** Add the correct display in IE 9-. 1. Add the correct display in Edge, IE, and Firefox. 2. Add the correct display in IE. */
+article, aside, details, figcaption, figure, footer, header, main, menu, nav, section { /* 1 */ display: block; }
+
+summary { display: list-item; }
+
+/** Add the correct display in IE 9-. */
+audio, canvas, progress, video { display: inline-block; }
+
+/** Add the correct display in iOS 4-7. */
+audio:not([controls]) { display: none; height: 0; }
+
+/** Add the correct vertical alignment in Chrome, Firefox, and Opera. */
+progress { vertical-align: baseline; }
+
+/** Add the correct display in IE 10-. 1. Add the correct display in IE. */
+template, [hidden] { display: none; }
+
+/* Links ========================================================================== */
+/** 1. Remove the gray background on active links in IE 10. 2. Remove gaps in links underline in iOS 8+ and Safari 8+. */
+a { background-color: transparent; /* 1 */ -webkit-text-decoration-skip: objects; /* 2 */ }
+
+/** Remove the outline on focused links when they are also active or hovered in all browsers (opinionated). */
+a:active, a:hover { outline-width: 0; }
+
+/* Text-level semantics ========================================================================== */
+/** 1. Remove the bottom border in Firefox 39-. 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. */
+abbr[title] { border-bottom: none; /* 1 */ text-decoration: underline; /* 2 */ text-decoration: underline dotted; /* 2 */ }
+
+/** Prevent the duplicate application of `bolder` by the next rule in Safari 6. */
+b, strong { font-weight: inherit; }
+
+/** Add the correct font weight in Chrome, Edge, and Safari. */
+b, strong { font-weight: bolder; }
+
+/** Add the correct font style in Android 4.3-. */
+dfn { font-style: italic; }
+
+/** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */
+h1 { font-size: 2em; margin: 0.67em 0; }
+
+/** Add the correct background and color in IE 9-. */
+mark { background-color: #ff0; color: #000; }
+
+/** Add the correct font size in all browsers. */
+small { font-size: 80%; }
+
+/** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */
+sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
+
+sub { bottom: -0.25em; }
+
+sup { top: -0.5em; }
+
+/* Embedded content ========================================================================== */
+/** Remove the border on images inside links in IE 10-. */
+img { border-style: none; }
+
+/** Hide the overflow in IE. */
+svg:not(:root) { overflow: hidden; }
+
+/* Grouping content ========================================================================== */
+/** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */
+code, kbd, pre, samp { font-family: monospace, monospace; /* 1 */ font-size: 1em; /* 2 */ }
+
+/** Add the correct margin in IE 8. */
+figure { margin: 1em 40px; }
+
+/** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */
+hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ }
+
+/* Forms ========================================================================== */
+/** 1. Change font properties to `inherit` in all browsers (opinionated). 2. Remove the margin in Firefox and Safari. */
+button, input, select, textarea { font: inherit; /* 1 */ margin: 0; /* 2 */ }
+
+/** Restore the font weight unset by the previous rule. */
+optgroup { font-weight: bold; }
+
+/** Show the overflow in IE. 1. Show the overflow in Edge. */
+button, input { /* 1 */ overflow: visible; }
+
+/** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */
+button, select { /* 1 */ text-transform: none; }
+
+/** 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` controls in Android 4. 2. Correct the inability to style clickable types in iOS and Safari. */
+button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; /* 2 */ }
+
+/** Remove the inner border and padding in Firefox. */
+button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; }
+
+/** Restore the focus styles unset by the previous rule. */
+button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring { outline: 1px dotted ButtonText; }
+
+/** Change the border, margin, and padding in all browsers (opinionated). */
+fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
+
+/** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */
+legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ }
+
+/** Remove the default vertical scrollbar in IE. */
+textarea { overflow: auto; }
+
+/** 1. Add the correct box sizing in IE 10-. 2. Remove the padding in IE 10-. */
+[type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ }
+
+/** Correct the cursor style of increment and decrement buttons in Chrome. */
+[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; }
+
+/** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */
+[type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ }
+
+/** Remove the inner padding and cancel buttons in Chrome and Safari on OS X. */
+[type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
+
+/** Correct the text style of placeholders in Chrome, Edge, and Safari. */
+::-webkit-input-placeholder { color: inherit; opacity: 0.54; }
+
+/** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */
+::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ }
+
+* { box-sizing: border-box; }
+
+input, select, textarea, button { font-family: inherit; font-size: inherit; line-height: inherit; }
+
+body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 14px; line-height: 1.5; color: #24292e; background-color: #fff; }
+
+a { color: #0366d6; text-decoration: none; }
+a:hover { text-decoration: underline; }
+
+b, strong { font-weight: 600; }
+
+hr, .rule { height: 0; margin: 15px 0; overflow: hidden; background: transparent; border: 0; border-bottom: 1px solid #dfe2e5; }
+hr::before, .rule::before { display: table; content: ""; }
+hr::after, .rule::after { display: table; clear: both; content: ""; }
+
+table { border-spacing: 0; border-collapse: collapse; }
+
+td, th { padding: 0; }
+
+button { cursor: pointer; }
+
+h1, h2, h3, h4, h5, h6 { margin-top: 0; margin-bottom: 0; }
+
+h1 { font-size: 32px; font-weight: 600; }
+
+h2 { font-size: 24px; font-weight: 600; }
+
+h3 { font-size: 20px; font-weight: 600; }
+
+h4 { font-size: 16px; font-weight: 600; }
+
+h5 { font-size: 14px; font-weight: 600; }
+
+h6 { font-size: 12px; font-weight: 600; }
+
+p { margin-top: 0; margin-bottom: 10px; }
+
+small { font-size: 90%; }
+
+blockquote { margin: 0; }
+
+ul, ol { padding-left: 0; margin-top: 0; margin-bottom: 0; }
+
+ol ol, ul ol { list-style-type: lower-roman; }
+
+ul ul ol, ul ol ol, ol ul ol, ol ol ol { list-style-type: lower-alpha; }
+
+dd { margin-left: 0; }
+
+tt, code { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 12px; }
+
+pre { margin-top: 0; margin-bottom: 0; font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 12px; }
+
+.octicon { vertical-align: text-bottom; }
+
+.anim-fade-in { animation-name: fade-in; animation-duration: 1s; animation-timing-function: ease-in-out; }
+.anim-fade-in.fast { animation-duration: 300ms; }
+
+@keyframes fade-in { 0% { opacity: 0; }
+  100% { opacity: 1; } }
+/* Fade in and slide up an element */
+.anim-fade-up { opacity: 0; animation-name: fade-up; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease-out; animation-delay: 1s; }
+
+@keyframes fade-up { 0% { opacity: 0.8; transform: translateY(100%); }
+  100% { opacity: 1; transform: translateY(0); } }
+/* Fade an element out and slide down */
+.anim-fade-down { animation-name: fade-down; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease-in; }
+
+@keyframes fade-down { 0% { opacity: 1; transform: translateY(0); }
+  100% { opacity: 0.5; transform: translateY(100%); } }
+/* Grow an element width from 0 to 100% */
+.anim-grow-x { width: 0%; animation-name: grow-x; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease; animation-delay: 0.5s; }
+
+@keyframes grow-x { to { width: 100%; } }
+/* Shrink an element from 100% to 0% */
+.anim-shrink-x { animation-name: shrink-x; animation-duration: 0.3s; animation-fill-mode: forwards; animation-timing-function: ease-in-out; animation-delay: 0.5s; }
+
+@keyframes shrink-x { to { width: 0%; } }
+/* Fade in an element and scale it fast */
+.anim-scale-in { animation-name: scale-in; animation-duration: 0.15s; animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5); }
+
+@keyframes scale-in { 0% { opacity: 0; transform: scale(0.5); }
+  100% { opacity: 1; transform: scale(1); } }
+/* Pulse an element's opacity */
+.anim-pulse { animation-name: pulse; animation-duration: 2s; animation-timing-function: linear; animation-iteration-count: infinite; }
+
+@keyframes pulse { 0% { opacity: 0.3; }
+  10% { opacity: 1; }
+  100% { opacity: 0.3; } }
+/* Pulse in an element */
+.anim-pulse-in { animation-name: pulse-in; animation-duration: 0.5s; }
+
+@keyframes pulse-in { 0% { transform: scale3d(1, 1, 1); }
+  50% { transform: scale3d(1.1, 1.1, 1.1); }
+  100% { transform: scale3d(1, 1, 1); } }
+/* Add a gray border */
+.border { border: 1px #e1e4e8 solid !important; }
+
+/* Add a gray border to the top */
+.border-top { border-top: 1px #e1e4e8 solid !important; }
+
+/* Add a gray border to the right */
+.border-right { border-right: 1px #e1e4e8 solid !important; }
+
+/* Add a gray border to the bottom */
+.border-bottom { border-bottom: 1px #e1e4e8 solid !important; }
+
+/* Add a gray border to the left */
+.border-left { border-left: 1px #e1e4e8 solid !important; }
+
+/* Add a gray border to the left and right */
+.border-y { border-top: 1px #e1e4e8 solid !important; border-bottom: 1px #e1e4e8 solid !important; }
+
+.border-dashed { border-style: dashed !important; }
+
+/* Use with .border to turn the border blue */
+.border-blue { border-color: #0366d6 !important; }
+
+/* Use with .border to turn the border blue-light */
+.border-blue-light { border-color: #c8e1ff !important; }
+
+/* Use with .border to turn the border green */
+.border-green { border-color: #34d058 !important; }
+
+/* Use with .border to turn the border green light */
+.border-green-light { border-color: #a2cbac !important; }
+
+/* Use with .border to turn the border red */
+.border-red { border-color: #d73a49 !important; }
+
+/* Use with .border to turn the border red-light */
+.border-red-light { border-color: #cea0a5 !important; }
+
+/* Use with .border to turn the border purple */
+.border-purple { border-color: #6f42c1 !important; }
+
+/* Use with .border to turn the border yellow */
+.border-yellow { border-color: #d9d0a5 !important; }
+
+/* Use with .border to turn the border gray-light */
+.border-gray-light { border-color: #eaecef !important; }
+
+/* Use with .border to turn the border gray-dark */
+.border-gray-dark { border-color: #d1d5da !important; }
+
+/* Use with .border to turn the border rgba black 0.15 */
+.border-black-fade { border-color: rgba(27, 31, 35, 0.15) !important; }
+
+/* Remove all borders */
+.border-0 { border: 0 !important; }
+
+/* Remove the top border */
+.border-top-0 { border-top: 0 !important; }
+
+/* Remove the right border */
+.border-right-0 { border-right: 0 !important; }
+
+/* Remove the bottom border */
+.border-bottom-0 { border-bottom: 0 !important; }
+
+/* Remove the left border */
+.border-left-0 { border-left: 0 !important; }
+
+/* Remove the border-radius */
+.rounded-0 { border-radius: 0 !important; }
+
+/* Add a border-radius to all corners */
+.rounded-1 { border-radius: 3px !important; }
+
+/* Add a 2x border-radius to all corners */
+.rounded-2 { border-radius: 6px !important; }
+
+.box-shadow { box-shadow: 0 1px 1px rgba(27, 31, 35, 0.1) !important; }
+
+.box-shadow-medium { box-shadow: 0 1px 5px rgba(27, 31, 35, 0.15) !important; }
+
+.box-shadow-large { box-shadow: 0 1px 15px rgba(27, 31, 35, 0.15) !important; }
+
+.box-shadow-extra-large { box-shadow: 0 10px 50px rgba(27, 31, 35, 0.07) !important; }
+
+.box-shadow-none { box-shadow: none !important; }
+
+/* Set the background to $bg-white */
+.bg-white { background-color: #fff !important; }
+
+/* Set the background to $bg-blue */
+.bg-blue { background-color: #0366d6 !important; }
+
+/* Set the background to $bg-blue-light */
+.bg-blue-light { background-color: #f1f8ff !important; }
+
+/* Set the background to $bg-gray-dark */
+.bg-gray-dark { background-color: #24292e !important; }
+
+/* Set the background to $bg-gray */
+.bg-gray { background-color: #f6f8fa !important; }
+
+/* Set the background to $bg-gray-light */
+.bg-gray-light { background-color: #fafbfc !important; }
+
+/* Set the background to $bg-green */
+.bg-green { background-color: #28a745 !important; }
+
+/* Set the background to $bg-green-light */
+.bg-green-light { background-color: #dcffe4 !important; }
+
+/* Set the background to $bg-red */
+.bg-red { background-color: #d73a49 !important; }
+
+/* Set the background to $bg-red-light */
+.bg-red-light { background-color: #ffdce0 !important; }
+
+/* Set the background to $bg-yellow */
+.bg-yellow { background-color: #ffd33d !important; }
+
+/* Set the background to $bg-yellow-light */
+.bg-yellow-light { background-color: #fff5b1 !important; }
+
+/* Set the background to $bg-purple */
+.bg-purple { background-color: #6f42c1 !important; }
+
+/* Set the background to $bg-purple-light */
+.bg-purple-light { background-color: #f5f0ff !important; }
+
+.bg-shade-gradient { background-image: linear-gradient(180deg, rgba(27, 31, 35, 0.065), rgba(27, 31, 35, 0)) !important; background-repeat: no-repeat !important; background-size: 100% 200px !important; }
+
+/* Set the text color to $text-blue */
+.text-blue { color: #0366d6 !important; }
+
+/* Set the text color to $text-red */
+.text-red { color: #cb2431 !important; }
+
+/* Set the text color to $text-gray-light */
+.text-gray-light { color: #6a737d !important; }
+
+/* Set the text color to $text-gray */
+.text-gray { color: #586069 !important; }
+
+/* Set the text color to $text-gray-dark */
+.text-gray-dark { color: #24292e !important; }
+
+/* Set the text color to $text-green */
+.text-green { color: #28a745 !important; }
+
+/* Set the text color to $text-orange */
+.text-orange { color: #a04100 !important; }
+
+/* Set the text color to $text-orange-light */
+.text-orange-light { color: #e36209 !important; }
+
+/* Set the text color to $text-purple */
+.text-purple { color: #6f42c1 !important; }
+
+/* Set the text color to $text-white */
+.text-white { color: #fff !important; }
+
+/* Set the text color to inherit */
+.text-inherit { color: inherit !important; }
+
+.text-pending { color: #b08800 !important; }
+
+.bg-pending { color: #dbab09 !important; }
+
+.link-gray { color: #586069 !important; }
+.link-gray:hover { color: #0366d6 !important; }
+
+.link-gray-dark { color: #24292e !important; }
+.link-gray-dark:hover { color: #0366d6 !important; }
+
+/* Set the link color to $text-blue on hover Useful when you want only part of a link to turn blue on hover */
+.link-hover-blue:hover { color: #0366d6 !important; }
+
+/* Make a link $text-gray, then $text-blue on hover and removes the underline */
+.muted-link { color: #586069 !important; }
+.muted-link:hover { color: #0366d6 !important; text-decoration: none; }
+
+.flex-row { flex-direction: row !important; }
+
+.flex-row-reverse { flex-direction: row-reverse !important; }
+
+.flex-column { flex-direction: column !important; }
+
+.flex-wrap { flex-wrap: wrap !important; }
+
+.flex-nowrap { flex-wrap: nowrap !important; }
+
+.flex-justify-start { justify-content: flex-start !important; }
+
+.flex-justify-end { justify-content: flex-end !important; }
+
+.flex-justify-center { justify-content: center !important; }
+
+.flex-justify-between { justify-content: space-between !important; }
+
+.flex-justify-around { justify-content: space-around !important; }
+
+.flex-items-start { align-items: flex-start !important; }
+
+.flex-items-end { align-items: flex-end !important; }
+
+.flex-items-center { align-items: center !important; }
+
+.flex-items-baseline { align-items: baseline !important; }
+
+.flex-items-stretch { align-items: stretch !important; }
+
+.flex-content-start { align-content: flex-start !important; }
+
+.flex-content-end { align-content: flex-end !important; }
+
+.flex-content-center { align-content: center !important; }
+
+.flex-content-between { align-content: space-between !important; }
+
+.flex-content-around { align-content: space-around !important; }
+
+.flex-content-stretch { align-content: stretch !important; }
+
+.flex-auto { flex: 1 1 auto !important; }
+
+.flex-shrink-0 { flex-shrink: 0 !important; }
+
+.flex-self-auto { align-self: auto !important; }
+
+.flex-self-start { align-self: flex-start !important; }
+
+.flex-self-end { align-self: flex-end !important; }
+
+.flex-self-center { align-self: center !important; }
+
+.flex-self-baseline { align-self: baseline !important; }
+
+.flex-self-stretch { align-self: stretch !important; }
+
+.flex-item-equal { flex-grow: 1; flex-basis: 0; }
+
+@media (min-width: 544px) { .flex-sm-row { flex-direction: row !important; }
+  .flex-sm-row-reverse { flex-direction: row-reverse !important; }
+  .flex-sm-column { flex-direction: column !important; }
+  .flex-sm-wrap { flex-wrap: wrap !important; }
+  .flex-sm-nowrap { flex-wrap: nowrap !important; }
+  .flex-sm-justify-start { justify-content: flex-start !important; }
+  .flex-sm-justify-end { justify-content: flex-end !important; }
+  .flex-sm-justify-center { justify-content: center !important; }
+  .flex-sm-justify-between { justify-content: space-between !important; }
+  .flex-sm-justify-around { justify-content: space-around !important; }
+  .flex-sm-items-start { align-items: flex-start !important; }
+  .flex-sm-items-end { align-items: flex-end !important; }
+  .flex-sm-items-center { align-items: center !important; }
+  .flex-sm-items-baseline { align-items: baseline !important; }
+  .flex-sm-items-stretch { align-items: stretch !important; }
+  .flex-sm-content-start { align-content: flex-start !important; }
+  .flex-sm-content-end { align-content: flex-end !important; }
+  .flex-sm-content-center { align-content: center !important; }
+  .flex-sm-content-between { align-content: space-between !important; }
+  .flex-sm-content-around { align-content: space-around !important; }
+  .flex-sm-content-stretch { align-content: stretch !important; }
+  .flex-sm-auto { flex: 1 1 auto !important; }
+  .flex-sm-shrink-0 { flex-shrink: 0 !important; }
+  .flex-sm-self-auto { align-self: auto !important; }
+  .flex-sm-self-start { align-self: flex-start !important; }
+  .flex-sm-self-end { align-self: flex-end !important; }
+  .flex-sm-self-center { align-self: center !important; }
+  .flex-sm-self-baseline { align-self: baseline !important; }
+  .flex-sm-self-stretch { align-self: stretch !important; }
+  .flex-sm-item-equal { flex-grow: 1; flex-basis: 0; } }
+@media (min-width: 768px) { .flex-md-row { flex-direction: row !important; }
+  .flex-md-row-reverse { flex-direction: row-reverse !important; }
+  .flex-md-column { flex-direction: column !important; }
+  .flex-md-wrap { flex-wrap: wrap !important; }
+  .flex-md-nowrap { flex-wrap: nowrap !important; }
+  .flex-md-justify-start { justify-content: flex-start !important; }
+  .flex-md-justify-end { justify-content: flex-end !important; }
+  .flex-md-justify-center { justify-content: center !important; }
+  .flex-md-justify-between { justify-content: space-between !important; }
+  .flex-md-justify-around { justify-content: space-around !important; }
+  .flex-md-items-start { align-items: flex-start !important; }
+  .flex-md-items-end { align-items: flex-end !important; }
+  .flex-md-items-center { align-items: center !important; }
+  .flex-md-items-baseline { align-items: baseline !important; }
+  .flex-md-items-stretch { align-items: stretch !important; }
+  .flex-md-content-start { align-content: flex-start !important; }
+  .flex-md-content-end { align-content: flex-end !important; }
+  .flex-md-content-center { align-content: center !important; }
+  .flex-md-content-between { align-content: space-between !important; }
+  .flex-md-content-around { align-content: space-around !important; }
+  .flex-md-content-stretch { align-content: stretch !important; }
+  .flex-md-auto { flex: 1 1 auto !important; }
+  .flex-md-shrink-0 { flex-shrink: 0 !important; }
+  .flex-md-self-auto { align-self: auto !important; }
+  .flex-md-self-start { align-self: flex-start !important; }
+  .flex-md-self-end { align-self: flex-end !important; }
+  .flex-md-self-center { align-self: center !important; }
+  .flex-md-self-baseline { align-self: baseline !important; }
+  .flex-md-self-stretch { align-self: stretch !important; }
+  .flex-md-item-equal { flex-grow: 1; flex-basis: 0; } }
+@media (min-width: 1012px) { .flex-lg-row { flex-direction: row !important; }
+  .flex-lg-row-reverse { flex-direction: row-reverse !important; }
+  .flex-lg-column { flex-direction: column !important; }
+  .flex-lg-wrap { flex-wrap: wrap !important; }
+  .flex-lg-nowrap { flex-wrap: nowrap !important; }
+  .flex-lg-justify-start { justify-content: flex-start !important; }
+  .flex-lg-justify-end { justify-content: flex-end !important; }
+  .flex-lg-justify-center { justify-content: center !important; }
+  .flex-lg-justify-between { justify-content: space-between !important; }
+  .flex-lg-justify-around { justify-content: space-around !important; }
+  .flex-lg-items-start { align-items: flex-start !important; }
+  .flex-lg-items-end { align-items: flex-end !important; }
+  .flex-lg-items-center { align-items: center !important; }
+  .flex-lg-items-baseline { align-items: baseline !important; }
+  .flex-lg-items-stretch { align-items: stretch !important; }
+  .flex-lg-content-start { align-content: flex-start !important; }
+  .flex-lg-content-end { align-content: flex-end !important; }
+  .flex-lg-content-center { align-content: center !important; }
+  .flex-lg-content-between { align-content: space-between !important; }
+  .flex-lg-content-around { align-content: space-around !important; }
+  .flex-lg-content-stretch { align-content: stretch !important; }
+  .flex-lg-auto { flex: 1 1 auto !important; }
+  .flex-lg-shrink-0 { flex-shrink: 0 !important; }
+  .flex-lg-self-auto { align-self: auto !important; }
+  .flex-lg-self-start { align-self: flex-start !important; }
+  .flex-lg-self-end { align-self: flex-end !important; }
+  .flex-lg-self-center { align-self: center !important; }
+  .flex-lg-self-baseline { align-self: baseline !important; }
+  .flex-lg-self-stretch { align-self: stretch !important; }
+  .flex-lg-item-equal { flex-grow: 1; flex-basis: 0; } }
+@media (min-width: 1280px) { .flex-xl-row { flex-direction: row !important; }
+  .flex-xl-row-reverse { flex-direction: row-reverse !important; }
+  .flex-xl-column { flex-direction: column !important; }
+  .flex-xl-wrap { flex-wrap: wrap !important; }
+  .flex-xl-nowrap { flex-wrap: nowrap !important; }
+  .flex-xl-justify-start { justify-content: flex-start !important; }
+  .flex-xl-justify-end { justify-content: flex-end !important; }
+  .flex-xl-justify-center { justify-content: center !important; }
+  .flex-xl-justify-between { justify-content: space-between !important; }
+  .flex-xl-justify-around { justify-content: space-around !important; }
+  .flex-xl-items-start { align-items: flex-start !important; }
+  .flex-xl-items-end { align-items: flex-end !important; }
+  .flex-xl-items-center { align-items: center !important; }
+  .flex-xl-items-baseline { align-items: baseline !important; }
+  .flex-xl-items-stretch { align-items: stretch !important; }
+  .flex-xl-content-start { align-content: flex-start !important; }
+  .flex-xl-content-end { align-content: flex-end !important; }
+  .flex-xl-content-center { align-content: center !important; }
+  .flex-xl-content-between { align-content: space-between !important; }
+  .flex-xl-content-around { align-content: space-around !important; }
+  .flex-xl-content-stretch { align-content: stretch !important; }
+  .flex-xl-auto { flex: 1 1 auto !important; }
+  .flex-xl-shrink-0 { flex-shrink: 0 !important; }
+  .flex-xl-self-auto { align-self: auto !important; }
+  .flex-xl-self-start { align-self: flex-start !important; }
+  .flex-xl-self-end { align-self: flex-end !important; }
+  .flex-xl-self-center { align-self: center !important; }
+  .flex-xl-self-baseline { align-self: baseline !important; }
+  .flex-xl-self-stretch { align-self: stretch !important; }
+  .flex-xl-item-equal { flex-grow: 1; flex-basis: 0; } }
+/* Set position to static */
+.position-static { position: static !important; }
+
+/* Set position to relative */
+.position-relative { position: relative !important; }
+
+/* Set position to absolute */
+.position-absolute { position: absolute !important; }
+
+/* Set position to fixed */
+.position-fixed { position: fixed !important; }
+
+/* Set top 0 */
+.top-0 { top: 0 !important; }
+
+/* Set right 0 */
+.right-0 { right: 0 !important; }
+
+/* Set bottom 0 */
+.bottom-0 { bottom: 0 !important; }
+
+/* Set left 0 */
+.left-0 { left: 0 !important; }
+
+/* Vertical align middle */
+.v-align-middle { vertical-align: middle !important; }
+
+/* Vertical align top */
+.v-align-top { vertical-align: top !important; }
+
+/* Vertical align bottom */
+.v-align-bottom { vertical-align: bottom !important; }
+
+/* Vertical align to the top of the text */
+.v-align-text-top { vertical-align: text-top !important; }
+
+/* Vertical align to the bottom of the text */
+.v-align-text-bottom { vertical-align: text-bottom !important; }
+
+/* Set the overflow hidden */
+.overflow-hidden { overflow: hidden !important; }
+
+/* Set the overflow scroll */
+.overflow-scroll { overflow: scroll !important; }
+
+/* Set the overflow auto */
+.overflow-auto { overflow: auto !important; }
+
+/* Clear floats around the element */
+.clearfix::before { display: table; content: ""; }
+.clearfix::after { display: table; clear: both; content: ""; }
+
+/* Float to the right */
+.float-right { float: right !important; }
+
+/* Float to the left */
+.float-left { float: left !important; }
+
+/* Don't float left or right */
+.float-none { float: none !important; }
+
+@media (min-width: 544px) { /* Float to the left at the sm breakpoint */
+  .float-sm-left { float: left !important; }
+  /* Float to the right at the sm breakpoint */
+  .float-sm-right { float: right !important; }
+  /* No float at the sm breakpoint */
+  .float-sm-none { float: none !important; } }
+@media (min-width: 768px) { /* Float to the left at the md breakpoint */
+  .float-md-left { float: left !important; }
+  /* Float to the right at the md breakpoint */
+  .float-md-right { float: right !important; }
+  /* No float at the md breakpoint */
+  .float-md-none { float: none !important; } }
+@media (min-width: 1012px) { /* Float to the left at the lg breakpoint */
+  .float-lg-left { float: left !important; }
+  /* Float to the right at the lg breakpoint */
+  .float-lg-right { float: right !important; }
+  /* No float at the lg breakpoint */
+  .float-lg-none { float: none !important; } }
+@media (min-width: 1280px) { /* Float to the left at the xl breakpoint */
+  .float-xl-left { float: left !important; }
+  /* Float to the right at the xl breakpoint */
+  .float-xl-right { float: right !important; }
+  /* No float at the xl breakpoint */
+  .float-xl-none { float: none !important; } }
+/* Max width 100% */
+.width-fit { max-width: 100% !important; }
+
+/* Set the width to 100% */
+.width-full { width: 100% !important; }
+
+/* Set the height to 100% */
+.height-full { height: 100% !important; }
+
+/* Remove min-width from element */
+.min-width-0 { min-width: 0 !important; }
+
+.direction-rtl { direction: rtl !important; }
+
+.direction-ltr { direction: ltr !important; }
+
+@media (min-width: 544px) { /* Set the direction to ltr at the sm breakpoint */
+  .direction-sm-rtl { direction: rtl !important; }
+  /* Set the direction to ltr at the sm breakpoint */
+  .direction-sm-ltr { direction: ltr !important; } }
+@media (min-width: 768px) { /* Set the direction to ltr at the md breakpoint */
+  .direction-md-rtl { direction: rtl !important; }
+  /* Set the direction to ltr at the md breakpoint */
+  .direction-md-ltr { direction: ltr !important; } }
+@media (min-width: 1012px) { /* Set the direction to ltr at the lg breakpoint */
+  .direction-lg-rtl { direction: rtl !important; }
+  /* Set the direction to ltr at the lg breakpoint */
+  .direction-lg-ltr { direction: ltr !important; } }
+@media (min-width: 1280px) { /* Set the direction to ltr at the xl breakpoint */
+  .direction-xl-rtl { direction: rtl !important; }
+  /* Set the direction to ltr at the xl breakpoint */
+  .direction-xl-ltr { direction: ltr !important; } }
+/* Set a 0 margin to all sides */
+.m-0 { margin: 0 !important; }
+
+/* Set a 0 margin on the top */
+.mt-0 { margin-top: 0 !important; }
+
+/* Set a 0 margin on the right */
+.mr-0 { margin-right: 0 !important; }
+
+/* Set a 0 margin on the bottom */
+.mb-0 { margin-bottom: 0 !important; }
+
+/* Set a 0 margin on the left */
+.ml-0 { margin-left: 0 !important; }
+
+/* Set a negative 0 margin on top */
+.mt-n0 { margin-top: -0 !important; }
+
+/* Set a negative 0 margin on the right */
+.mr-n0 { margin-right: -0 !important; }
+
+/* Set a negative 0 margin on the bottom */
+.mb-n0 { margin-bottom: -0 !important; }
+
+/* Set a negative 0 margin on the left */
+.ml-n0 { margin-left: -0 !important; }
+
+/* Set a 0 margin on the left & right */
+.mx-0 { margin-right: 0 !important; margin-left: 0 !important; }
+
+/* Set a 0 margin on the top & bottom */
+.my-0 { margin-top: 0 !important; margin-bottom: 0 !important; }
+
+/* Set a 4px margin to all sides */
+.m-1 { margin: 4px !important; }
+
+/* Set a 4px margin on the top */
+.mt-1 { margin-top: 4px !important; }
+
+/* Set a 4px margin on the right */
+.mr-1 { margin-right: 4px !important; }
+
+/* Set a 4px margin on the bottom */
+.mb-1 { margin-bottom: 4px !important; }
+
+/* Set a 4px margin on the left */
+.ml-1 { margin-left: 4px !important; }
+
+/* Set a negative 4px margin on top */
+.mt-n1 { margin-top: -4px !important; }
+
+/* Set a negative 4px margin on the right */
+.mr-n1 { margin-right: -4px !important; }
+
+/* Set a negative 4px margin on the bottom */
+.mb-n1 { margin-bottom: -4px !important; }
+
+/* Set a negative 4px margin on the left */
+.ml-n1 { margin-left: -4px !important; }
+
+/* Set a 4px margin on the left & right */
+.mx-1 { margin-right: 4px !important; margin-left: 4px !important; }
+
+/* Set a 4px margin on the top & bottom */
+.my-1 { margin-top: 4px !important; margin-bottom: 4px !important; }
+
+/* Set a 8px margin to all sides */
+.m-2 { margin: 8px !important; }
+
+/* Set a 8px margin on the top */
+.mt-2 { margin-top: 8px !important; }
+
+/* Set a 8px margin on the right */
+.mr-2 { margin-right: 8px !important; }
+
+/* Set a 8px margin on the bottom */
+.mb-2 { margin-bottom: 8px !important; }
+
+/* Set a 8px margin on the left */
+.ml-2 { margin-left: 8px !important; }
+
+/* Set a negative 8px margin on top */
+.mt-n2 { margin-top: -8px !important; }
+
+/* Set a negative 8px margin on the right */
+.mr-n2 { margin-right: -8px !important; }
+
+/* Set a negative 8px margin on the bottom */
+.mb-n2 { margin-bottom: -8px !important; }
+
+/* Set a negative 8px margin on the left */
+.ml-n2 { margin-left: -8px !important; }
+
+/* Set a 8px margin on the left & right */
+.mx-2 { margin-right: 8px !important; margin-left: 8px !important; }
+
+/* Set a 8px margin on the top & bottom */
+.my-2 { margin-top: 8px !important; margin-bottom: 8px !important; }
+
+/* Set a 16px margin to all sides */
+.m-3 { margin: 16px !important; }
+
+/* Set a 16px margin on the top */
+.mt-3 { margin-top: 16px !important; }
+
+/* Set a 16px margin on the right */
+.mr-3 { margin-right: 16px !important; }
+
+/* Set a 16px margin on the bottom */
+.mb-3 { margin-bottom: 16px !important; }
+
+/* Set a 16px margin on the left */
+.ml-3 { margin-left: 16px !important; }
+
+/* Set a negative 16px margin on top */
+.mt-n3 { margin-top: -16px !important; }
+
+/* Set a negative 16px margin on the right */
+.mr-n3 { margin-right: -16px !important; }
+
+/* Set a negative 16px margin on the bottom */
+.mb-n3 { margin-bottom: -16px !important; }
+
+/* Set a negative 16px margin on the left */
+.ml-n3 { margin-left: -16px !important; }
+
+/* Set a 16px margin on the left & right */
+.mx-3 { margin-right: 16px !important; margin-left: 16px !important; }
+
+/* Set a 16px margin on the top & bottom */
+.my-3 { margin-top: 16px !important; margin-bottom: 16px !important; }
+
+/* Set a 24px margin to all sides */
+.m-4 { margin: 24px !important; }
+
+/* Set a 24px margin on the top */
+.mt-4 { margin-top: 24px !important; }
+
+/* Set a 24px margin on the right */
+.mr-4 { margin-right: 24px !important; }
+
+/* Set a 24px margin on the bottom */
+.mb-4 { margin-bottom: 24px !important; }
+
+/* Set a 24px margin on the left */
+.ml-4 { margin-left: 24px !important; }
+
+/* Set a negative 24px margin on top */
+.mt-n4 { margin-top: -24px !important; }
+
+/* Set a negative 24px margin on the right */
+.mr-n4 { margin-right: -24px !important; }
+
+/* Set a negative 24px margin on the bottom */
+.mb-n4 { margin-bottom: -24px !important; }
+
+/* Set a negative 24px margin on the left */
+.ml-n4 { margin-left: -24px !important; }
+
+/* Set a 24px margin on the left & right */
+.mx-4 { margin-right: 24px !important; margin-left: 24px !important; }
+
+/* Set a 24px margin on the top & bottom */
+.my-4 { margin-top: 24px !important; margin-bottom: 24px !important; }
+
+/* Set a 32px margin to all sides */
+.m-5 { margin: 32px !important; }
+
+/* Set a 32px margin on the top */
+.mt-5 { margin-top: 32px !important; }
+
+/* Set a 32px margin on the right */
+.mr-5 { margin-right: 32px !important; }
+
+/* Set a 32px margin on the bottom */
+.mb-5 { margin-bottom: 32px !important; }
+
+/* Set a 32px margin on the left */
+.ml-5 { margin-left: 32px !important; }
+
+/* Set a negative 32px margin on top */
+.mt-n5 { margin-top: -32px !important; }
+
+/* Set a negative 32px margin on the right */
+.mr-n5 { margin-right: -32px !important; }
+
+/* Set a negative 32px margin on the bottom */
+.mb-n5 { margin-bottom: -32px !important; }
+
+/* Set a negative 32px margin on the left */
+.ml-n5 { margin-left: -32px !important; }
+
+/* Set a 32px margin on the left & right */
+.mx-5 { margin-right: 32px !important; margin-left: 32px !important; }
+
+/* Set a 32px margin on the top & bottom */
+.my-5 { margin-top: 32px !important; margin-bottom: 32px !important; }
+
+/* Set a 40px margin to all sides */
+.m-6 { margin: 40px !important; }
+
+/* Set a 40px margin on the top */
+.mt-6 { margin-top: 40px !important; }
+
+/* Set a 40px margin on the right */
+.mr-6 { margin-right: 40px !important; }
+
+/* Set a 40px margin on the bottom */
+.mb-6 { margin-bottom: 40px !important; }
+
+/* Set a 40px margin on the left */
+.ml-6 { margin-left: 40px !important; }
+
+/* Set a negative 40px margin on top */
+.mt-n6 { margin-top: -40px !important; }
+
+/* Set a negative 40px margin on the right */
+.mr-n6 { margin-right: -40px !important; }
+
+/* Set a negative 40px margin on the bottom */
+.mb-n6 { margin-bottom: -40px !important; }
+
+/* Set a negative 40px margin on the left */
+.ml-n6 { margin-left: -40px !important; }
+
+/* Set a 40px margin on the left & right */
+.mx-6 { margin-right: 40px !important; margin-left: 40px !important; }
+
+/* Set a 40px margin on the top & bottom */
+.my-6 { margin-top: 40px !important; margin-bottom: 40px !important; }
+
+/* Set an auto margin on left & right */
+.mx-auto { margin-right: auto !important; margin-left: auto !important; }
+
+@media (min-width: 544px) { /* Set a 0 margin to all sides at the breakpoint sm */
+  .m-sm-0 { margin: 0 !important; }
+  /* Set a 0 margin on the top at the breakpoint sm */
+  .mt-sm-0 { margin-top: 0 !important; }
+  /* Set a 0 margin on the right at the breakpoint sm */
+  .mr-sm-0 { margin-right: 0 !important; }
+  /* Set a 0 margin on the bottom at the breakpoint sm */
+  .mb-sm-0 { margin-bottom: 0 !important; }
+  /* Set a 0 margin on the left at the breakpoint sm */
+  .ml-sm-0 { margin-left: 0 !important; }
+  /* Set a negative 0 margin on top at the breakpoint sm */
+  .mt-sm-n0 { margin-top: -0 !important; }
+  /* Set a negative 0 margin on the right at the breakpoint sm */
+  .mr-sm-n0 { margin-right: -0 !important; }
+  /* Set a negative 0 margin on the bottom at the breakpoint sm */
+  .mb-sm-n0 { margin-bottom: -0 !important; }
+  /* Set a negative 0 margin on the left at the breakpoint sm */
+  .ml-sm-n0 { margin-left: -0 !important; }
+  /* Set a 0 margin on the left & right at the breakpoint sm */
+  .mx-sm-0 { margin-right: 0 !important; margin-left: 0 !important; }
+  /* Set a 0 margin on the top & bottom at the breakpoint sm */
+  .my-sm-0 { margin-top: 0 !important; margin-bottom: 0 !important; } }
+@media (min-width: 544px) { /* Set a 4px margin to all sides at the breakpoint sm */
+  .m-sm-1 { margin: 4px !important; }
+  /* Set a 4px margin on the top at the breakpoint sm */
+  .mt-sm-1 { margin-top: 4px !important; }
+  /* Set a 4px margin on the right at the breakpoint sm */
+  .mr-sm-1 { margin-right: 4px !important; }
+  /* Set a 4px margin on the bottom at the breakpoint sm */
+  .mb-sm-1 { margin-bottom: 4px !important; }
+  /* Set a 4px margin on the left at the breakpoint sm */
+  .ml-sm-1 { margin-left: 4px !important; }
+  /* Set a negative 4px margin on top at the breakpoint sm */
+  .mt-sm-n1 { margin-top: -4px !important; }
+  /* Set a negative 4px margin on the right at the breakpoint sm */
+  .mr-sm-n1 { margin-right: -4px !important; }
+  /* Set a negative 4px margin on the bottom at the breakpoint sm */
+  .mb-sm-n1 { margin-bottom: -4px !important; }
+  /* Set a negative 4px margin on the left at the breakpoint sm */
+  .ml-sm-n1 { margin-left: -4px !important; }
+  /* Set a 4px margin on the left & right at the breakpoint sm */
+  .mx-sm-1 { margin-right: 4px !important; margin-left: 4px !important; }
+  /* Set a 4px margin on the top & bottom at the breakpoint sm */
+  .my-sm-1 { margin-top: 4px !important; margin-bottom: 4px !important; } }
+@media (min-width: 544px) { /* Set a 8px margin to all sides at the breakpoint sm */
+  .m-sm-2 { margin: 8px !important; }
+  /* Set a 8px margin on the top at the breakpoint sm */
+  .mt-sm-2 { margin-top: 8px !important; }
+  /* Set a 8px margin on the right at the breakpoint sm */
+  .mr-sm-2 { margin-right: 8px !important; }
+  /* Set a 8px margin on the bottom at the breakpoint sm */
+  .mb-sm-2 { margin-bottom: 8px !important; }
+  /* Set a 8px margin on the left at the breakpoint sm */
+  .ml-sm-2 { margin-left: 8px !important; }
+  /* Set a negative 8px margin on top at the breakpoint sm */
+  .mt-sm-n2 { margin-top: -8px !important; }
+  /* Set a negative 8px margin on the right at the breakpoint sm */
+  .mr-sm-n2 { margin-right: -8px !important; }
+  /* Set a negative 8px margin on the bottom at the breakpoint sm */
+  .mb-sm-n2 { margin-bottom: -8px !important; }
+  /* Set a negative 8px margin on the left at the breakpoint sm */
+  .ml-sm-n2 { margin-left: -8px !important; }
+  /* Set a 8px margin on the left & right at the breakpoint sm */
+  .mx-sm-2 { margin-right: 8px !important; margin-left: 8px !important; }
+  /* Set a 8px margin on the top & bottom at the breakpoint sm */
+  .my-sm-2 { margin-top: 8px !important; margin-bottom: 8px !important; } }
+@media (min-width: 544px) { /* Set a 16px margin to all sides at the breakpoint sm */
+  .m-sm-3 { margin: 16px !important; }
+  /* Set a 16px margin on the top at the breakpoint sm */
+  .mt-sm-3 { margin-top: 16px !important; }
+  /* Set a 16px margin on the right at the breakpoint sm */
+  .mr-sm-3 { margin-right: 16px !important; }
+  /* Set a 16px margin on the bottom at the breakpoint sm */
+  .mb-sm-3 { margin-bottom: 16px !important; }
+  /* Set a 16px margin on the left at the breakpoint sm */
+  .ml-sm-3 { margin-left: 16px !important; }
+  /* Set a negative 16px margin on top at the breakpoint sm */
+  .mt-sm-n3 { margin-top: -16px !important; }
+  /* Set a negative 16px margin on the right at the breakpoint sm */
+  .mr-sm-n3 { margin-right: -16px !important; }
+  /* Set a negative 16px margin on the bottom at the breakpoint sm */
+  .mb-sm-n3 { margin-bottom: -16px !important; }
+  /* Set a negative 16px margin on the left at the breakpoint sm */
+  .ml-sm-n3 { margin-left: -16px !important; }
+  /* Set a 16px margin on the left & right at the breakpoint sm */
+  .mx-sm-3 { margin-right: 16px !important; margin-left: 16px !important; }
+  /* Set a 16px margin on the top & bottom at the breakpoint sm */
+  .my-sm-3 { margin-top: 16px !important; margin-bottom: 16px !important; } }
+@media (min-width: 544px) { /* Set a 24px margin to all sides at the breakpoint sm */
+  .m-sm-4 { margin: 24px !important; }
+  /* Set a 24px margin on the top at the breakpoint sm */
+  .mt-sm-4 { margin-top: 24px !important; }
+  /* Set a 24px margin on the right at the breakpoint sm */
+  .mr-sm-4 { margin-right: 24px !important; }
+  /* Set a 24px margin on the bottom at the breakpoint sm */
+  .mb-sm-4 { margin-bottom: 24px !important; }
+  /* Set a 24px margin on the left at the breakpoint sm */
+  .ml-sm-4 { margin-left: 24px !important; }
+  /* Set a negative 24px margin on top at the breakpoint sm */
+  .mt-sm-n4 { margin-top: -24px !important; }
+  /* Set a negative 24px margin on the right at the breakpoint sm */
+  .mr-sm-n4 { margin-right: -24px !important; }
+  /* Set a negative 24px margin on the bottom at the breakpoint sm */
+  .mb-sm-n4 { margin-bottom: -24px !important; }
+  /* Set a negative 24px margin on the left at the breakpoint sm */
+  .ml-sm-n4 { margin-left: -24px !important; }
+  /* Set a 24px margin on the left & right at the breakpoint sm */
+  .mx-sm-4 { margin-right: 24px !important; margin-left: 24px !important; }
+  /* Set a 24px margin on the top & bottom at the breakpoint sm */
+  .my-sm-4 { margin-top: 24px !important; margin-bottom: 24px !important; } }
+@media (min-width: 544px) { /* Set a 32px margin to all sides at the breakpoint sm */
+  .m-sm-5 { margin: 32px !important; }
+  /* Set a 32px margin on the top at the breakpoint sm */
+  .mt-sm-5 { margin-top: 32px !important; }
+  /* Set a 32px margin on the right at the breakpoint sm */
+  .mr-sm-5 { margin-right: 32px !important; }
+  /* Set a 32px margin on the bottom at the breakpoint sm */
+  .mb-sm-5 { margin-bottom: 32px !important; }
+  /* Set a 32px margin on the left at the breakpoint sm */
+  .ml-sm-5 { margin-left: 32px !important; }
+  /* Set a negative 32px margin on top at the breakpoint sm */
+  .mt-sm-n5 { margin-top: -32px !important; }
+  /* Set a negative 32px margin on the right at the breakpoint sm */
+  .mr-sm-n5 { margin-right: -32px !important; }
+  /* Set a negative 32px margin on the bottom at the breakpoint sm */
+  .mb-sm-n5 { margin-bottom: -32px !important; }
+  /* Set a negative 32px margin on the left at the breakpoint sm */
+  .ml-sm-n5 { margin-left: -32px !important; }
+  /* Set a 32px margin on the left & right at the breakpoint sm */
+  .mx-sm-5 { margin-right: 32px !important; margin-left: 32px !important; }
+  /* Set a 32px margin on the top & bottom at the breakpoint sm */
+  .my-sm-5 { margin-top: 32px !important; margin-bottom: 32px !important; } }
+@media (min-width: 544px) { /* Set a 40px margin to all sides at the breakpoint sm */
+  .m-sm-6 { margin: 40px !important; }
+  /* Set a 40px margin on the top at the breakpoint sm */
+  .mt-sm-6 { margin-top: 40px !important; }
+  /* Set a 40px margin on the right at the breakpoint sm */
+  .mr-sm-6 { margin-right: 40px !important; }
+  /* Set a 40px margin on the bottom at the breakpoint sm */
+  .mb-sm-6 { margin-bottom: 40px !important; }
+  /* Set a 40px margin on the left at the breakpoint sm */
+  .ml-sm-6 { margin-left: 40px !important; }
+  /* Set a negative 40px margin on top at the breakpoint sm */
+  .mt-sm-n6 { margin-top: -40px !important; }
+  /* Set a negative 40px margin on the right at the breakpoint sm */
+  .mr-sm-n6 { margin-right: -40px !important; }
+  /* Set a negative 40px margin on the bottom at the breakpoint sm */
+  .mb-sm-n6 { margin-bottom: -40px !important; }
+  /* Set a negative 40px margin on the left at the breakpoint sm */
+  .ml-sm-n6 { margin-left: -40px !important; }
+  /* Set a 40px margin on the left & right at the breakpoint sm */
+  .mx-sm-6 { margin-right: 40px !important; margin-left: 40px !important; }
+  /* Set a 40px margin on the top & bottom at the breakpoint sm */
+  .my-sm-6 { margin-top: 40px !important; margin-bottom: 40px !important; } }
+@media (min-width: 768px) { /* Set a 0 margin to all sides at the breakpoint md */
+  .m-md-0 { margin: 0 !important; }
+  /* Set a 0 margin on the top at the breakpoint md */
+  .mt-md-0 { margin-top: 0 !important; }
+  /* Set a 0 margin on the right at the breakpoint md */
+  .mr-md-0 { margin-right: 0 !important; }
+  /* Set a 0 margin on the bottom at the breakpoint md */
+  .mb-md-0 { margin-bottom: 0 !important; }
+  /* Set a 0 margin on the left at the breakpoint md */
+  .ml-md-0 { margin-left: 0 !important; }
+  /* Set a negative 0 margin on top at the breakpoint md */
+  .mt-md-n0 { margin-top: -0 !important; }
+  /* Set a negative 0 margin on the right at the breakpoint md */
+  .mr-md-n0 { margin-right: -0 !important; }
+  /* Set a negative 0 margin on the bottom at the breakpoint md */
+  .mb-md-n0 { margin-bottom: -0 !important; }
+  /* Set a negative 0 margin on the left at the breakpoint md */
+  .ml-md-n0 { margin-left: -0 !important; }
+  /* Set a 0 margin on the left & right at the breakpoint md */
+  .mx-md-0 { margin-right: 0 !important; margin-left: 0 !important; }
+  /* Set a 0 margin on the top & bottom at the breakpoint md */
+  .my-md-0 { margin-top: 0 !important; margin-bottom: 0 !important; } }
+@media (min-width: 768px) { /* Set a 4px margin to all sides at the breakpoint md */
+  .m-md-1 { margin: 4px !important; }
+  /* Set a 4px margin on the top at the breakpoint md */
+  .mt-md-1 { margin-top: 4px !important; }
+  /* Set a 4px margin on the right at the breakpoint md */
+  .mr-md-1 { margin-right: 4px !important; }
+  /* Set a 4px margin on the bottom at the breakpoint md */
+  .mb-md-1 { margin-bottom: 4px !important; }
+  /* Set a 4px margin on the left at the breakpoint md */
+  .ml-md-1 { margin-left: 4px !important; }
+  /* Set a negative 4px margin on top at the breakpoint md */
+  .mt-md-n1 { margin-top: -4px !important; }
+  /* Set a negative 4px margin on the right at the breakpoint md */
+  .mr-md-n1 { margin-right: -4px !important; }
+  /* Set a negative 4px margin on the bottom at the breakpoint md */
+  .mb-md-n1 { margin-bottom: -4px !important; }
+  /* Set a negative 4px margin on the left at the breakpoint md */
+  .ml-md-n1 { margin-left: -4px !important; }
+  /* Set a 4px margin on the left & right at the breakpoint md */
+  .mx-md-1 { margin-right: 4px !important; margin-left: 4px !important; }
+  /* Set a 4px margin on the top & bottom at the breakpoint md */
+  .my-md-1 { margin-top: 4px !important; margin-bottom: 4px !important; } }
+@media (min-width: 768px) { /* Set a 8px margin to all sides at the breakpoint md */
+  .m-md-2 { margin: 8px !important; }
+  /* Set a 8px margin on the top at the breakpoint md */
+  .mt-md-2 { margin-top: 8px !important; }
+  /* Set a 8px margin on the right at the breakpoint md */
+  .mr-md-2 { margin-right: 8px !important; }
+  /* Set a 8px margin on the bottom at the breakpoint md */
+  .mb-md-2 { margin-bottom: 8px !important; }
+  /* Set a 8px margin on the left at the breakpoint md */
+  .ml-md-2 { margin-left: 8px !important; }
+  /* Set a negative 8px margin on top at the breakpoint md */
+  .mt-md-n2 { margin-top: -8px !important; }
+  /* Set a negative 8px margin on the right at the breakpoint md */
+  .mr-md-n2 { margin-right: -8px !important; }
+  /* Set a negative 8px margin on the bottom at the breakpoint md */
+  .mb-md-n2 { margin-bottom: -8px !important; }
+  /* Set a negative 8px margin on the left at the breakpoint md */
+  .ml-md-n2 { margin-left: -8px !important; }
+  /* Set a 8px margin on the left & right at the breakpoint md */
+  .mx-md-2 { margin-right: 8px !important; margin-left: 8px !important; }
+  /* Set a 8px margin on the top & bottom at the breakpoint md */
+  .my-md-2 { margin-top: 8px !important; margin-bottom: 8px !important; } }
+@media (min-width: 768px) { /* Set a 16px margin to all sides at the breakpoint md */
+  .m-md-3 { margin: 16px !important; }
+  /* Set a 16px margin on the top at the breakpoint md */
+  .mt-md-3 { margin-top: 16px !important; }
+  /* Set a 16px margin on the right at the breakpoint md */
+  .mr-md-3 { margin-right: 16px !important; }
+  /* Set a 16px margin on the bottom at the breakpoint md */
+  .mb-md-3 { margin-bottom: 16px !important; }
+  /* Set a 16px margin on the left at the breakpoint md */
+  .ml-md-3 { margin-left: 16px !important; }
+  /* Set a negative 16px margin on top at the breakpoint md */
+  .mt-md-n3 { margin-top: -16px !important; }
+  /* Set a negative 16px margin on the right at the breakpoint md */
+  .mr-md-n3 { margin-right: -16px !important; }
+  /* Set a negative 16px margin on the bottom at the breakpoint md */
+  .mb-md-n3 { margin-bottom: -16px !important; }
+  /* Set a negative 16px margin on the left at the breakpoint md */
+  .ml-md-n3 { margin-left: -16px !important; }
+  /* Set a 16px margin on the left & right at the breakpoint md */
+  .mx-md-3 { margin-right: 16px !important; margin-left: 16px !important; }
+  /* Set a 16px margin on the top & bottom at the breakpoint md */
+  .my-md-3 { margin-top: 16px !important; margin-bottom: 16px !important; } }
+@media (min-width: 768px) { /* Set a 24px margin to all sides at the breakpoint md */
+  .m-md-4 { margin: 24px !important; }
+  /* Set a 24px margin on the top at the breakpoint md */
+  .mt-md-4 { margin-top: 24px !important; }
+  /* Set a 24px margin on the right at the breakpoint md */
+  .mr-md-4 { margin-right: 24px !important; }
+  /* Set a 24px margin on the bottom at the breakpoint md */
+  .mb-md-4 { margin-bottom: 24px !important; }
+  /* Set a 24px margin on the left at the breakpoint md */
+  .ml-md-4 { margin-left: 24px !important; }
+  /* Set a negative 24px margin on top at the breakpoint md */
+  .mt-md-n4 { margin-top: -24px !important; }
+  /* Set a negative 24px margin on the right at the breakpoint md */
+  .mr-md-n4 { margin-right: -24px !important; }
+  /* Set a negative 24px margin on the bottom at the breakpoint md */
+  .mb-md-n4 { margin-bottom: -24px !important; }
+  /* Set a negative 24px margin on the left at the breakpoint md */
+  .ml-md-n4 { margin-left: -24px !important; }
+  /* Set a 24px margin on the left & right at the breakpoint md */
+  .mx-md-4 { margin-right: 24px !important; margin-left: 24px !important; }
+  /* Set a 24px margin on the top & bottom at the breakpoint md */
+  .my-md-4 { margin-top: 24px !important; margin-bottom: 24px !important; } }
+@media (min-width: 768px) { /* Set a 32px margin to all sides at the breakpoint md */
+  .m-md-5 { margin: 32px !important; }
+  /* Set a 32px margin on the top at the breakpoint md */
+  .mt-md-5 { margin-top: 32px !important; }
+  /* Set a 32px margin on the right at the breakpoint md */
+  .mr-md-5 { margin-right: 32px !important; }
+  /* Set a 32px margin on the bottom at the breakpoint md */
+  .mb-md-5 { margin-bottom: 32px !important; }
+  /* Set a 32px margin on the left at the breakpoint md */
+  .ml-md-5 { margin-left: 32px !important; }
+  /* Set a negative 32px margin on top at the breakpoint md */
+  .mt-md-n5 { margin-top: -32px !important; }
+  /* Set a negative 32px margin on the right at the breakpoint md */
+  .mr-md-n5 { margin-right: -32px !important; }
+  /* Set a negative 32px margin on the bottom at the breakpoint md */
+  .mb-md-n5 { margin-bottom: -32px !important; }
+  /* Set a negative 32px margin on the left at the breakpoint md */
+  .ml-md-n5 { margin-left: -32px !important; }
+  /* Set a 32px margin on the left & right at the breakpoint md */
+  .mx-md-5 { margin-right: 32px !important; margin-left: 32px !important; }
+  /* Set a 32px margin on the top & bottom at the breakpoint md */
+  .my-md-5 { margin-top: 32px !important; margin-bottom: 32px !important; } }
+@media (min-width: 768px) { /* Set a 40px margin to all sides at the breakpoint md */
+  .m-md-6 { margin: 40px !important; }
+  /* Set a 40px margin on the top at the breakpoint md */
+  .mt-md-6 { margin-top: 40px !important; }
+  /* Set a 40px margin on the right at the breakpoint md */
+  .mr-md-6 { margin-right: 40px !important; }
+  /* Set a 40px margin on the bottom at the breakpoint md */
+  .mb-md-6 { margin-bottom: 40px !important; }
+  /* Set a 40px margin on the left at the breakpoint md */
+  .ml-md-6 { margin-left: 40px !important; }
+  /* Set a negative 40px margin on top at the breakpoint md */
+  .mt-md-n6 { margin-top: -40px !important; }
+  /* Set a negative 40px margin on the right at the breakpoint md */
+  .mr-md-n6 { margin-right: -40px !important; }
+  /* Set a negative 40px margin on the bottom at the breakpoint md */
+  .mb-md-n6 { margin-bottom: -40px !important; }
+  /* Set a negative 40px margin on the left at the breakpoint md */
+  .ml-md-n6 { margin-left: -40px !important; }
+  /* Set a 40px margin on the left & right at the breakpoint md */
+  .mx-md-6 { margin-right: 40px !important; margin-left: 40px !important; }
+  /* Set a 40px margin on the top & bottom at the breakpoint md */
+  .my-md-6 { margin-top: 40px !important; margin-bottom: 40px !important; } }
+@media (min-width: 1012px) { /* Set a 0 margin to all sides at the breakpoint lg */
+  .m-lg-0 { margin: 0 !important; }
+  /* Set a 0 margin on the top at the breakpoint lg */
+  .mt-lg-0 { margin-top: 0 !important; }
+  /* Set a 0 margin on the right at the breakpoint lg */
+  .mr-lg-0 { margin-right: 0 !important; }
+  /* Set a 0 margin on the bottom at the breakpoint lg */
+  .mb-lg-0 { margin-bottom: 0 !important; }
+  /* Set a 0 margin on the left at the breakpoint lg */
+  .ml-lg-0 { margin-left: 0 !important; }
+  /* Set a negative 0 margin on top at the breakpoint lg */
+  .mt-lg-n0 { margin-top: -0 !important; }
+  /* Set a negative 0 margin on the right at the breakpoint lg */
+  .mr-lg-n0 { margin-right: -0 !important; }
+  /* Set a negative 0 margin on the bottom at the breakpoint lg */
+  .mb-lg-n0 { margin-bottom: -0 !important; }
+  /* Set a negative 0 margin on the left at the breakpoint lg */
+  .ml-lg-n0 { margin-left: -0 !important; }
+  /* Set a 0 margin on the left & right at the breakpoint lg */
+  .mx-lg-0 { margin-right: 0 !important; margin-left: 0 !important; }
+  /* Set a 0 margin on the top & bottom at the breakpoint lg */
+  .my-lg-0 { margin-top: 0 !important; margin-bottom: 0 !important; } }
+@media (min-width: 1012px) { /* Set a 4px margin to all sides at the breakpoint lg */
+  .m-lg-1 { margin: 4px !important; }
+  /* Set a 4px margin on the top at the breakpoint lg */
+  .mt-lg-1 { margin-top: 4px !important; }
+  /* Set a 4px margin on the right at the breakpoint lg */
+  .mr-lg-1 { margin-right: 4px !important; }
+  /* Set a 4px margin on the bottom at the breakpoint lg */
+  .mb-lg-1 { margin-bottom: 4px !important; }
+  /* Set a 4px margin on the left at the breakpoint lg */
+  .ml-lg-1 { margin-left: 4px !important; }
+  /* Set a negative 4px margin on top at the breakpoint lg */
+  .mt-lg-n1 { margin-top: -4px !important; }
+  /* Set a negative 4px margin on the right at the breakpoint lg */
+  .mr-lg-n1 { margin-right: -4px !important; }
+  /* Set a negative 4px margin on the bottom at the breakpoint lg */
+  .mb-lg-n1 { margin-bottom: -4px !important; }
+  /* Set a negative 4px margin on the left at the breakpoint lg */
+  .ml-lg-n1 { margin-left: -4px !important; }
+  /* Set a 4px margin on the left & right at the breakpoint lg */
+  .mx-lg-1 { margin-right: 4px !important; margin-left: 4px !important; }
+  /* Set a 4px margin on the top & bottom at the breakpoint lg */
+  .my-lg-1 { margin-top: 4px !important; margin-bottom: 4px !important; } }
+@media (min-width: 1012px) { /* Set a 8px margin to all sides at the breakpoint lg */
+  .m-lg-2 { margin: 8px !important; }
+  /* Set a 8px margin on the top at the breakpoint lg */
+  .mt-lg-2 { margin-top: 8px !important; }
+  /* Set a 8px margin on the right at the breakpoint lg */
+  .mr-lg-2 { margin-right: 8px !important; }
+  /* Set a 8px margin on the bottom at the breakpoint lg */
+  .mb-lg-2 { margin-bottom: 8px !important; }
+  /* Set a 8px margin on the left at the breakpoint lg */
+  .ml-lg-2 { margin-left: 8px !important; }
+  /* Set a negative 8px margin on top at the breakpoint lg */
+  .mt-lg-n2 { margin-top: -8px !important; }
+  /* Set a negative 8px margin on the right at the breakpoint lg */
+  .mr-lg-n2 { margin-right: -8px !important; }
+  /* Set a negative 8px margin on the bottom at the breakpoint lg */
+  .mb-lg-n2 { margin-bottom: -8px !important; }
+  /* Set a negative 8px margin on the left at the breakpoint lg */
+  .ml-lg-n2 { margin-left: -8px !important; }
+  /* Set a 8px margin on the left & right at the breakpoint lg */
+  .mx-lg-2 { margin-right: 8px !important; margin-left: 8px !important; }
+  /* Set a 8px margin on the top & bottom at the breakpoint lg */
+  .my-lg-2 { margin-top: 8px !important; margin-bottom: 8px !important; } }
+@media (min-width: 1012px) { /* Set a 16px margin to all sides at the breakpoint lg */
+  .m-lg-3 { margin: 16px !important; }
+  /* Set a 16px margin on the top at the breakpoint lg */
+  .mt-lg-3 { margin-top: 16px !important; }
+  /* Set a 16px margin on the right at the breakpoint lg */
+  .mr-lg-3 { margin-right: 16px !important; }
+  /* Set a 16px margin on the bottom at the breakpoint lg */
+  .mb-lg-3 { margin-bottom: 16px !important; }
+  /* Set a 16px margin on the left at the breakpoint lg */
+  .ml-lg-3 { margin-left: 16px !important; }
+  /* Set a negative 16px margin on top at the breakpoint lg */
+  .mt-lg-n3 { margin-top: -16px !important; }
+  /* Set a negative 16px margin on the right at the breakpoint lg */
+  .mr-lg-n3 { margin-right: -16px !important; }
+  /* Set a negative 16px margin on the bottom at the breakpoint lg */
+  .mb-lg-n3 { margin-bottom: -16px !important; }
+  /* Set a negative 16px margin on the left at the breakpoint lg */
+  .ml-lg-n3 { margin-left: -16px !important; }
+  /* Set a 16px margin on the left & right at the breakpoint lg */
+  .mx-lg-3 { margin-right: 16px !important; margin-left: 16px !important; }
+  /* Set a 16px margin on the top & bottom at the breakpoint lg */
+  .my-lg-3 { margin-top: 16px !important; margin-bottom: 16px !important; } }
+@media (min-width: 1012px) { /* Set a 24px margin to all sides at the breakpoint lg */
+  .m-lg-4 { margin: 24px !important; }
+  /* Set a 24px margin on the top at the breakpoint lg */
+  .mt-lg-4 { margin-top: 24px !important; }
+  /* Set a 24px margin on the right at the breakpoint lg */
+  .mr-lg-4 { margin-right: 24px !important; }
+  /* Set a 24px margin on the bottom at the breakpoint lg */
+  .mb-lg-4 { margin-bottom: 24px !important; }
+  /* Set a 24px margin on the left at the breakpoint lg */
+  .ml-lg-4 { margin-left: 24px !important; }
+  /* Set a negative 24px margin on top at the breakpoint lg */
+  .mt-lg-n4 { margin-top: -24px !important; }
+  /* Set a negative 24px margin on the right at the breakpoint lg */
+  .mr-lg-n4 { margin-right: -24px !important; }
+  /* Set a negative 24px margin on the bottom at the breakpoint lg */
+  .mb-lg-n4 { margin-bottom: -24px !important; }
+  /* Set a negative 24px margin on the left at the breakpoint lg */
+  .ml-lg-n4 { margin-left: -24px !important; }
+  /* Set a 24px margin on the left & right at the breakpoint lg */
+  .mx-lg-4 { margin-right: 24px !important; margin-left: 24px !important; }
+  /* Set a 24px margin on the top & bottom at the breakpoint lg */
+  .my-lg-4 { margin-top: 24px !important; margin-bottom: 24px !important; } }
+@media (min-width: 1012px) { /* Set a 32px margin to all sides at the breakpoint lg */
+  .m-lg-5 { margin: 32px !important; }
+  /* Set a 32px margin on the top at the breakpoint lg */
+  .mt-lg-5 { margin-top: 32px !important; }
+  /* Set a 32px margin on the right at the breakpoint lg */
+  .mr-lg-5 { margin-right: 32px !important; }
+  /* Set a 32px margin on the bottom at the breakpoint lg */
+  .mb-lg-5 { margin-bottom: 32px !important; }
+  /* Set a 32px margin on the left at the breakpoint lg */
+  .ml-lg-5 { margin-left: 32px !important; }
+  /* Set a negative 32px margin on top at the breakpoint lg */
+  .mt-lg-n5 { margin-top: -32px !important; }
+  /* Set a negative 32px margin on the right at the breakpoint lg */
+  .mr-lg-n5 { margin-right: -32px !important; }
+  /* Set a negative 32px margin on the bottom at the breakpoint lg */
+  .mb-lg-n5 { margin-bottom: -32px !important; }
+  /* Set a negative 32px margin on the left at the breakpoint lg */
+  .ml-lg-n5 { margin-left: -32px !important; }
+  /* Set a 32px margin on the left & right at the breakpoint lg */
+  .mx-lg-5 { margin-right: 32px !important; margin-left: 32px !important; }
+  /* Set a 32px margin on the top & bottom at the breakpoint lg */
+  .my-lg-5 { margin-top: 32px !important; margin-bottom: 32px !important; } }
+@media (min-width: 1012px) { /* Set a 40px margin to all sides at the breakpoint lg */
+  .m-lg-6 { margin: 40px !important; }
+  /* Set a 40px margin on the top at the breakpoint lg */
+  .mt-lg-6 { margin-top: 40px !important; }
+  /* Set a 40px margin on the right at the breakpoint lg */
+  .mr-lg-6 { margin-right: 40px !important; }
+  /* Set a 40px margin on the bottom at the breakpoint lg */
+  .mb-lg-6 { margin-bottom: 40px !important; }
+  /* Set a 40px margin on the left at the breakpoint lg */
+  .ml-lg-6 { margin-left: 40px !important; }
+  /* Set a negative 40px margin on top at the breakpoint lg */
+  .mt-lg-n6 { margin-top: -40px !important; }
+  /* Set a negative 40px margin on the right at the breakpoint lg */
+  .mr-lg-n6 { margin-right: -40px !important; }
+  /* Set a negative 40px margin on the bottom at the breakpoint lg */
+  .mb-lg-n6 { margin-bottom: -40px !important; }
+  /* Set a negative 40px margin on the left at the breakpoint lg */
+  .ml-lg-n6 { margin-left: -40px !important; }
+  /* Set a 40px margin on the left & right at the breakpoint lg */
+  .mx-lg-6 { margin-right: 40px !important; margin-left: 40px !important; }
+  /* Set a 40px margin on the top & bottom at the breakpoint lg */
+  .my-lg-6 { margin-top: 40px !important; margin-bottom: 40px !important; } }
+@media (min-width: 1280px) { /* Set a 0 margin to all sides at the breakpoint xl */
+  .m-xl-0 { margin: 0 !important; }
+  /* Set a 0 margin on the top at the breakpoint xl */
+  .mt-xl-0 { margin-top: 0 !important; }
+  /* Set a 0 margin on the right at the breakpoint xl */
+  .mr-xl-0 { margin-right: 0 !important; }
+  /* Set a 0 margin on the bottom at the breakpoint xl */
+  .mb-xl-0 { margin-bottom: 0 !important; }
+  /* Set a 0 margin on the left at the breakpoint xl */
+  .ml-xl-0 { margin-left: 0 !important; }
+  /* Set a negative 0 margin on top at the breakpoint xl */
+  .mt-xl-n0 { margin-top: -0 !important; }
+  /* Set a negative 0 margin on the right at the breakpoint xl */
+  .mr-xl-n0 { margin-right: -0 !important; }
+  /* Set a negative 0 margin on the bottom at the breakpoint xl */
+  .mb-xl-n0 { margin-bottom: -0 !important; }
+  /* Set a negative 0 margin on the left at the breakpoint xl */
+  .ml-xl-n0 { margin-left: -0 !important; }
+  /* Set a 0 margin on the left & right at the breakpoint xl */
+  .mx-xl-0 { margin-right: 0 !important; margin-left: 0 !important; }
+  /* Set a 0 margin on the top & bottom at the breakpoint xl */
+  .my-xl-0 { margin-top: 0 !important; margin-bottom: 0 !important; } }
+@media (min-width: 1280px) { /* Set a 4px margin to all sides at the breakpoint xl */
+  .m-xl-1 { margin: 4px !important; }
+  /* Set a 4px margin on the top at the breakpoint xl */
+  .mt-xl-1 { margin-top: 4px !important; }
+  /* Set a 4px margin on the right at the breakpoint xl */
+  .mr-xl-1 { margin-right: 4px !important; }
+  /* Set a 4px margin on the bottom at the breakpoint xl */
+  .mb-xl-1 { margin-bottom: 4px !important; }
+  /* Set a 4px margin on the left at the breakpoint xl */
+  .ml-xl-1 { margin-left: 4px !important; }
+  /* Set a negative 4px margin on top at the breakpoint xl */
+  .mt-xl-n1 { margin-top: -4px !important; }
+  /* Set a negative 4px margin on the right at the breakpoint xl */
+  .mr-xl-n1 { margin-right: -4px !important; }
+  /* Set a negative 4px margin on the bottom at the breakpoint xl */
+  .mb-xl-n1 { margin-bottom: -4px !important; }
+  /* Set a negative 4px margin on the left at the breakpoint xl */
+  .ml-xl-n1 { margin-left: -4px !important; }
+  /* Set a 4px margin on the left & right at the breakpoint xl */
+  .mx-xl-1 { margin-right: 4px !important; margin-left: 4px !important; }
+  /* Set a 4px margin on the top & bottom at the breakpoint xl */
+  .my-xl-1 { margin-top: 4px !important; margin-bottom: 4px !important; } }
+@media (min-width: 1280px) { /* Set a 8px margin to all sides at the breakpoint xl */
+  .m-xl-2 { margin: 8px !important; }
+  /* Set a 8px margin on the top at the breakpoint xl */
+  .mt-xl-2 { margin-top: 8px !important; }
+  /* Set a 8px margin on the right at the breakpoint xl */
+  .mr-xl-2 { margin-right: 8px !important; }
+  /* Set a 8px margin on the bottom at the breakpoint xl */
+  .mb-xl-2 { margin-bottom: 8px !important; }
+  /* Set a 8px margin on the left at the breakpoint xl */
+  .ml-xl-2 { margin-left: 8px !important; }
+  /* Set a negative 8px margin on top at the breakpoint xl */
+  .mt-xl-n2 { margin-top: -8px !important; }
+  /* Set a negative 8px margin on the right at the breakpoint xl */
+  .mr-xl-n2 { margin-right: -8px !important; }
+  /* Set a negative 8px margin on the bottom at the breakpoint xl */
+  .mb-xl-n2 { margin-bottom: -8px !important; }
+  /* Set a negative 8px margin on the left at the breakpoint xl */
+  .ml-xl-n2 { margin-left: -8px !important; }
+  /* Set a 8px margin on the left & right at the breakpoint xl */
+  .mx-xl-2 { margin-right: 8px !important; margin-left: 8px !important; }
+  /* Set a 8px margin on the top & bottom at the breakpoint xl */
+  .my-xl-2 { margin-top: 8px !important; margin-bottom: 8px !important; } }
+@media (min-width: 1280px) { /* Set a 16px margin to all sides at the breakpoint xl */
+  .m-xl-3 { margin: 16px !important; }
+  /* Set a 16px margin on the top at the breakpoint xl */
+  .mt-xl-3 { margin-top: 16px !important; }
+  /* Set a 16px margin on the right at the breakpoint xl */
+  .mr-xl-3 { margin-right: 16px !important; }
+  /* Set a 16px margin on the bottom at the breakpoint xl */
+  .mb-xl-3 { margin-bottom: 16px !important; }
+  /* Set a 16px margin on the left at the breakpoint xl */
+  .ml-xl-3 { margin-left: 16px !important; }
+  /* Set a negative 16px margin on top at the breakpoint xl */
+  .mt-xl-n3 { margin-top: -16px !important; }
+  /* Set a negative 16px margin on the right at the breakpoint xl */
+  .mr-xl-n3 { margin-right: -16px !important; }
+  /* Set a negative 16px margin on the bottom at the breakpoint xl */
+  .mb-xl-n3 { margin-bottom: -16px !important; }
+  /* Set a negative 16px margin on the left at the breakpoint xl */
+  .ml-xl-n3 { margin-left: -16px !important; }
+  /* Set a 16px margin on the left & right at the breakpoint xl */
+  .mx-xl-3 { margin-right: 16px !important; margin-left: 16px !important; }
+  /* Set a 16px margin on the top & bottom at the breakpoint xl */
+  .my-xl-3 { margin-top: 16px !important; margin-bottom: 16px !important; } }
+@media (min-width: 1280px) { /* Set a 24px margin to all sides at the breakpoint xl */
+  .m-xl-4 { margin: 24px !important; }
+  /* Set a 24px margin on the top at the breakpoint xl */
+  .mt-xl-4 { margin-top: 24px !important; }
+  /* Set a 24px margin on the right at the breakpoint xl */
+  .mr-xl-4 { margin-right: 24px !important; }
+  /* Set a 24px margin on the bottom at the breakpoint xl */
+  .mb-xl-4 { margin-bottom: 24px !important; }
+  /* Set a 24px margin on the left at the breakpoint xl */
+  .ml-xl-4 { margin-left: 24px !important; }
+  /* Set a negative 24px margin on top at the breakpoint xl */
+  .mt-xl-n4 { margin-top: -24px !important; }
+  /* Set a negative 24px margin on the right at the breakpoint xl */
+  .mr-xl-n4 { margin-right: -24px !important; }
+  /* Set a negative 24px margin on the bottom at the breakpoint xl */
+  .mb-xl-n4 { margin-bottom: -24px !important; }
+  /* Set a negative 24px margin on the left at the breakpoint xl */
+  .ml-xl-n4 { margin-left: -24px !important; }
+  /* Set a 24px margin on the left & right at the breakpoint xl */
+  .mx-xl-4 { margin-right: 24px !important; margin-left: 24px !important; }
+  /* Set a 24px margin on the top & bottom at the breakpoint xl */
+  .my-xl-4 { margin-top: 24px !important; margin-bottom: 24px !important; } }
+@media (min-width: 1280px) { /* Set a 32px margin to all sides at the breakpoint xl */
+  .m-xl-5 { margin: 32px !important; }
+  /* Set a 32px margin on the top at the breakpoint xl */
+  .mt-xl-5 { margin-top: 32px !important; }
+  /* Set a 32px margin on the right at the breakpoint xl */
+  .mr-xl-5 { margin-right: 32px !important; }
+  /* Set a 32px margin on the bottom at the breakpoint xl */
+  .mb-xl-5 { margin-bottom: 32px !important; }
+  /* Set a 32px margin on the left at the breakpoint xl */
+  .ml-xl-5 { margin-left: 32px !important; }
+  /* Set a negative 32px margin on top at the breakpoint xl */
+  .mt-xl-n5 { margin-top: -32px !important; }
+  /* Set a negative 32px margin on the right at the breakpoint xl */
+  .mr-xl-n5 { margin-right: -32px !important; }
+  /* Set a negative 32px margin on the bottom at the breakpoint xl */
+  .mb-xl-n5 { margin-bottom: -32px !important; }
+  /* Set a negative 32px margin on the left at the breakpoint xl */
+  .ml-xl-n5 { margin-left: -32px !important; }
+  /* Set a 32px margin on the left & right at the breakpoint xl */
+  .mx-xl-5 { margin-right: 32px !important; margin-left: 32px !important; }
+  /* Set a 32px margin on the top & bottom at the breakpoint xl */
+  .my-xl-5 { margin-top: 32px !important; margin-bottom: 32px !important; } }
+@media (min-width: 1280px) { /* Set a 40px margin to all sides at the breakpoint xl */
+  .m-xl-6 { margin: 40px !important; }
+  /* Set a 40px margin on the top at the breakpoint xl */
+  .mt-xl-6 { margin-top: 40px !important; }
+  /* Set a 40px margin on the right at the breakpoint xl */
+  .mr-xl-6 { margin-right: 40px !important; }
+  /* Set a 40px margin on the bottom at the breakpoint xl */
+  .mb-xl-6 { margin-bottom: 40px !important; }
+  /* Set a 40px margin on the left at the breakpoint xl */
+  .ml-xl-6 { margin-left: 40px !important; }
+  /* Set a negative 40px margin on top at the breakpoint xl */
+  .mt-xl-n6 { margin-top: -40px !important; }
+  /* Set a negative 40px margin on the right at the breakpoint xl */
+  .mr-xl-n6 { margin-right: -40px !important; }
+  /* Set a negative 40px margin on the bottom at the breakpoint xl */
+  .mb-xl-n6 { margin-bottom: -40px !important; }
+  /* Set a negative 40px margin on the left at the breakpoint xl */
+  .ml-xl-n6 { margin-left: -40px !important; }
+  /* Set a 40px margin on the left & right at the breakpoint xl */
+  .mx-xl-6 { margin-right: 40px !important; margin-left: 40px !important; }
+  /* Set a 40px margin on the top & bottom at the breakpoint xl */
+  .my-xl-6 { margin-top: 40px !important; margin-bottom: 40px !important; } }
+/* Set a 0 padding to all sides */
+.p-0 { padding: 0 !important; }
+
+/* Set a 0 padding to the top */
+.pt-0 { padding-top: 0 !important; }
+
+/* Set a 0 padding to the right */
+.pr-0 { padding-right: 0 !important; }
+
+/* Set a 0 padding to the bottom */
+.pb-0 { padding-bottom: 0 !important; }
+
+/* Set a 0 padding to the left */
+.pl-0 { padding-left: 0 !important; }
+
+/* Set a 0 padding to the left & right */
+.px-0 { padding-right: 0 !important; padding-left: 0 !important; }
+
+/* Set a 0 padding to the top & bottom */
+.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; }
+
+/* Set a 4px padding to all sides */
+.p-1 { padding: 4px !important; }
+
+/* Set a 4px padding to the top */
+.pt-1 { padding-top: 4px !important; }
+
+/* Set a 4px padding to the right */
+.pr-1 { padding-right: 4px !important; }
+
+/* Set a 4px padding to the bottom */
+.pb-1 { padding-bottom: 4px !important; }
+
+/* Set a 4px padding to the left */
+.pl-1 { padding-left: 4px !important; }
+
+/* Set a 4px padding to the left & right */
+.px-1 { padding-right: 4px !important; padding-left: 4px !important; }
+
+/* Set a 4px padding to the top & bottom */
+.py-1 { padding-top: 4px !important; padding-bottom: 4px !important; }
+
+/* Set a 8px padding to all sides */
+.p-2 { padding: 8px !important; }
+
+/* Set a 8px padding to the top */
+.pt-2 { padding-top: 8px !important; }
+
+/* Set a 8px padding to the right */
+.pr-2 { padding-right: 8px !important; }
+
+/* Set a 8px padding to the bottom */
+.pb-2 { padding-bottom: 8px !important; }
+
+/* Set a 8px padding to the left */
+.pl-2 { padding-left: 8px !important; }
+
+/* Set a 8px padding to the left & right */
+.px-2 { padding-right: 8px !important; padding-left: 8px !important; }
+
+/* Set a 8px padding to the top & bottom */
+.py-2 { padding-top: 8px !important; padding-bottom: 8px !important; }
+
+/* Set a 16px padding to all sides */
+.p-3 { padding: 16px !important; }
+
+/* Set a 16px padding to the top */
+.pt-3 { padding-top: 16px !important; }
+
+/* Set a 16px padding to the right */
+.pr-3 { padding-right: 16px !important; }
+
+/* Set a 16px padding to the bottom */
+.pb-3 { padding-bottom: 16px !important; }
+
+/* Set a 16px padding to the left */
+.pl-3 { padding-left: 16px !important; }
+
+/* Set a 16px padding to the left & right */
+.px-3 { padding-right: 16px !important; padding-left: 16px !important; }
+
+/* Set a 16px padding to the top & bottom */
+.py-3 { padding-top: 16px !important; padding-bottom: 16px !important; }
+
+/* Set a 24px padding to all sides */
+.p-4 { padding: 24px !important; }
+
+/* Set a 24px padding to the top */
+.pt-4 { padding-top: 24px !important; }
+
+/* Set a 24px padding to the right */
+.pr-4 { padding-right: 24px !important; }
+
+/* Set a 24px padding to the bottom */
+.pb-4 { padding-bottom: 24px !important; }
+
+/* Set a 24px padding to the left */
+.pl-4 { padding-left: 24px !important; }
+
+/* Set a 24px padding to the left & right */
+.px-4 { padding-right: 24px !important; padding-left: 24px !important; }
+
+/* Set a 24px padding to the top & bottom */
+.py-4 { padding-top: 24px !important; padding-bottom: 24px !important; }
+
+/* Set a 32px padding to all sides */
+.p-5 { padding: 32px !important; }
+
+/* Set a 32px padding to the top */
+.pt-5 { padding-top: 32px !important; }
+
+/* Set a 32px padding to the right */
+.pr-5 { padding-right: 32px !important; }
+
+/* Set a 32px padding to the bottom */
+.pb-5 { padding-bottom: 32px !important; }
+
+/* Set a 32px padding to the left */
+.pl-5 { padding-left: 32px !important; }
+
+/* Set a 32px padding to the left & right */
+.px-5 { padding-right: 32px !important; padding-left: 32px !important; }
+
+/* Set a 32px padding to the top & bottom */
+.py-5 { padding-top: 32px !important; padding-bottom: 32px !important; }
+
+/* Set a 40px padding to all sides */
+.p-6 { padding: 40px !important; }
+
+/* Set a 40px padding to the top */
+.pt-6 { padding-top: 40px !important; }
+
+/* Set a 40px padding to the right */
+.pr-6 { padding-right: 40px !important; }
+
+/* Set a 40px padding to the bottom */
+.pb-6 { padding-bottom: 40px !important; }
+
+/* Set a 40px padding to the left */
+.pl-6 { padding-left: 40px !important; }
+
+/* Set a 40px padding to the left & right */
+.px-6 { padding-right: 40px !important; padding-left: 40px !important; }
+
+/* Set a 40px padding to the top & bottom */
+.py-6 { padding-top: 40px !important; padding-bottom: 40px !important; }
+
+@media (min-width: 544px) { /* Set a 0 padding to all sides at the sm breakpoint */
+  .p-sm-0 { padding: 0 !important; }
+  /* Set a 0 padding to the top at the sm breakpoint */
+  .pt-sm-0 { padding-top: 0 !important; }
+  /* Set a 0 padding to the right at the sm breakpoint */
+  .pr-sm-0 { padding-right: 0 !important; }
+  /* Set a 0 padding to the bottom at the sm breakpoint */
+  .pb-sm-0 { padding-bottom: 0 !important; }
+  /* Set a 0 padding to the left at the sm breakpoint */
+  .pl-sm-0 { padding-left: 0 !important; }
+  /* Set a 0 padding to the left & right at the sm breakpoint */
+  .px-sm-0 { padding-right: 0 !important; padding-left: 0 !important; }
+  /* Set a 0 padding to the top & bottom at the sm breakpoint */
+  .py-sm-0 { padding-top: 0 !important; padding-bottom: 0 !important; } }
+@media (min-width: 544px) { /* Set a 4px padding to all sides at the sm breakpoint */
+  .p-sm-1 { padding: 4px !important; }
+  /* Set a 4px padding to the top at the sm breakpoint */
+  .pt-sm-1 { padding-top: 4px !important; }
+  /* Set a 4px padding to the right at the sm breakpoint */
+  .pr-sm-1 { padding-right: 4px !important; }
+  /* Set a 4px padding to the bottom at the sm breakpoint */
+  .pb-sm-1 { padding-bottom: 4px !important; }
+  /* Set a 4px padding to the left at the sm breakpoint */
+  .pl-sm-1 { padding-left: 4px !important; }
+  /* Set a 4px padding to the left & right at the sm breakpoint */
+  .px-sm-1 { padding-right: 4px !important; padding-left: 4px !important; }
+  /* Set a 4px padding to the top & bottom at the sm breakpoint */
+  .py-sm-1 { padding-top: 4px !important; padding-bottom: 4px !important; } }
+@media (min-width: 544px) { /* Set a 8px padding to all sides at the sm breakpoint */
+  .p-sm-2 { padding: 8px !important; }
+  /* Set a 8px padding to the top at the sm breakpoint */
+  .pt-sm-2 { padding-top: 8px !important; }
+  /* Set a 8px padding to the right at the sm breakpoint */
+  .pr-sm-2 { padding-right: 8px !important; }
+  /* Set a 8px padding to the bottom at the sm breakpoint */
+  .pb-sm-2 { padding-bottom: 8px !important; }
+  /* Set a 8px padding to the left at the sm breakpoint */
+  .pl-sm-2 { padding-left: 8px !important; }
+  /* Set a 8px padding to the left & right at the sm breakpoint */
+  .px-sm-2 { padding-right: 8px !important; padding-left: 8px !important; }
+  /* Set a 8px padding to the top & bottom at the sm breakpoint */
+  .py-sm-2 { padding-top: 8px !important; padding-bottom: 8px !important; } }
+@media (min-width: 544px) { /* Set a 16px padding to all sides at the sm breakpoint */
+  .p-sm-3 { padding: 16px !important; }
+  /* Set a 16px padding to the top at the sm breakpoint */
+  .pt-sm-3 { padding-top: 16px !important; }
+  /* Set a 16px padding to the right at the sm breakpoint */
+  .pr-sm-3 { padding-right: 16px !important; }
+  /* Set a 16px padding to the bottom at the sm breakpoint */
+  .pb-sm-3 { padding-bottom: 16px !important; }
+  /* Set a 16px padding to the left at the sm breakpoint */
+  .pl-sm-3 { padding-left: 16px !important; }
+  /* Set a 16px padding to the left & right at the sm breakpoint */
+  .px-sm-3 { padding-right: 16px !important; padding-left: 16px !important; }
+  /* Set a 16px padding to the top & bottom at the sm breakpoint */
+  .py-sm-3 { padding-top: 16px !important; padding-bottom: 16px !important; } }
+@media (min-width: 544px) { /* Set a 24px padding to all sides at the sm breakpoint */
+  .p-sm-4 { padding: 24px !important; }
+  /* Set a 24px padding to the top at the sm breakpoint */
+  .pt-sm-4 { padding-top: 24px !important; }
+  /* Set a 24px padding to the right at the sm breakpoint */
+  .pr-sm-4 { padding-right: 24px !important; }
+  /* Set a 24px padding to the bottom at the sm breakpoint */
+  .pb-sm-4 { padding-bottom: 24px !important; }
+  /* Set a 24px padding to the left at the sm breakpoint */
+  .pl-sm-4 { padding-left: 24px !important; }
+  /* Set a 24px padding to the left & right at the sm breakpoint */
+  .px-sm-4 { padding-right: 24px !important; padding-left: 24px !important; }
+  /* Set a 24px padding to the top & bottom at the sm breakpoint */
+  .py-sm-4 { padding-top: 24px !important; padding-bottom: 24px !important; } }
+@media (min-width: 544px) { /* Set a 32px padding to all sides at the sm breakpoint */
+  .p-sm-5 { padding: 32px !important; }
+  /* Set a 32px padding to the top at the sm breakpoint */
+  .pt-sm-5 { padding-top: 32px !important; }
+  /* Set a 32px padding to the right at the sm breakpoint */
+  .pr-sm-5 { padding-right: 32px !important; }
+  /* Set a 32px padding to the bottom at the sm breakpoint */
+  .pb-sm-5 { padding-bottom: 32px !important; }
+  /* Set a 32px padding to the left at the sm breakpoint */
+  .pl-sm-5 { padding-left: 32px !important; }
+  /* Set a 32px padding to the left & right at the sm breakpoint */
+  .px-sm-5 { padding-right: 32px !important; padding-left: 32px !important; }
+  /* Set a 32px padding to the top & bottom at the sm breakpoint */
+  .py-sm-5 { padding-top: 32px !important; padding-bottom: 32px !important; } }
+@media (min-width: 544px) { /* Set a 40px padding to all sides at the sm breakpoint */
+  .p-sm-6 { padding: 40px !important; }
+  /* Set a 40px padding to the top at the sm breakpoint */
+  .pt-sm-6 { padding-top: 40px !important; }
+  /* Set a 40px padding to the right at the sm breakpoint */
+  .pr-sm-6 { padding-right: 40px !important; }
+  /* Set a 40px padding to the bottom at the sm breakpoint */
+  .pb-sm-6 { padding-bottom: 40px !important; }
+  /* Set a 40px padding to the left at the sm breakpoint */
+  .pl-sm-6 { padding-left: 40px !important; }
+  /* Set a 40px padding to the left & right at the sm breakpoint */
+  .px-sm-6 { padding-right: 40px !important; padding-left: 40px !important; }
+  /* Set a 40px padding to the top & bottom at the sm breakpoint */
+  .py-sm-6 { padding-top: 40px !important; padding-bottom: 40px !important; } }
+@media (min-width: 768px) { /* Set a 0 padding to all sides at the md breakpoint */
+  .p-md-0 { padding: 0 !important; }
+  /* Set a 0 padding to the top at the md breakpoint */
+  .pt-md-0 { padding-top: 0 !important; }
+  /* Set a 0 padding to the right at the md breakpoint */
+  .pr-md-0 { padding-right: 0 !important; }
+  /* Set a 0 padding to the bottom at the md breakpoint */
+  .pb-md-0 { padding-bottom: 0 !important; }
+  /* Set a 0 padding to the left at the md breakpoint */
+  .pl-md-0 { padding-left: 0 !important; }
+  /* Set a 0 padding to the left & right at the md breakpoint */
+  .px-md-0 { padding-right: 0 !important; padding-left: 0 !important; }
+  /* Set a 0 padding to the top & bottom at the md breakpoint */
+  .py-md-0 { padding-top: 0 !important; padding-bottom: 0 !important; } }
+@media (min-width: 768px) { /* Set a 4px padding to all sides at the md breakpoint */
+  .p-md-1 { padding: 4px !important; }
+  /* Set a 4px padding to the top at the md breakpoint */
+  .pt-md-1 { padding-top: 4px !important; }
+  /* Set a 4px padding to the right at the md breakpoint */
+  .pr-md-1 { padding-right: 4px !important; }
+  /* Set a 4px padding to the bottom at the md breakpoint */
+  .pb-md-1 { padding-bottom: 4px !important; }
+  /* Set a 4px padding to the left at the md breakpoint */
+  .pl-md-1 { padding-left: 4px !important; }
+  /* Set a 4px padding to the left & right at the md breakpoint */
+  .px-md-1 { padding-right: 4px !important; padding-left: 4px !important; }
+  /* Set a 4px padding to the top & bottom at the md breakpoint */
+  .py-md-1 { padding-top: 4px !important; padding-bottom: 4px !important; } }
+@media (min-width: 768px) { /* Set a 8px padding to all sides at the md breakpoint */
+  .p-md-2 { padding: 8px !important; }
+  /* Set a 8px padding to the top at the md breakpoint */
+  .pt-md-2 { padding-top: 8px !important; }
+  /* Set a 8px padding to the right at the md breakpoint */
+  .pr-md-2 { padding-right: 8px !important; }
+  /* Set a 8px padding to the bottom at the md breakpoint */
+  .pb-md-2 { padding-bottom: 8px !important; }
+  /* Set a 8px padding to the left at the md breakpoint */
+  .pl-md-2 { padding-left: 8px !important; }
+  /* Set a 8px padding to the left & right at the md breakpoint */
+  .px-md-2 { padding-right: 8px !important; padding-left: 8px !important; }
+  /* Set a 8px padding to the top & bottom at the md breakpoint */
+  .py-md-2 { padding-top: 8px !important; padding-bottom: 8px !important; } }
+@media (min-width: 768px) { /* Set a 16px padding to all sides at the md breakpoint */
+  .p-md-3 { padding: 16px !important; }
+  /* Set a 16px padding to the top at the md breakpoint */
+  .pt-md-3 { padding-top: 16px !important; }
+  /* Set a 16px padding to the right at the md breakpoint */
+  .pr-md-3 { padding-right: 16px !important; }
+  /* Set a 16px padding to the bottom at the md breakpoint */
+  .pb-md-3 { padding-bottom: 16px !important; }
+  /* Set a 16px padding to the left at the md breakpoint */
+  .pl-md-3 { padding-left: 16px !important; }
+  /* Set a 16px padding to the left & right at the md breakpoint */
+  .px-md-3 { padding-right: 16px !important; padding-left: 16px !important; }
+  /* Set a 16px padding to the top & bottom at the md breakpoint */
+  .py-md-3 { padding-top: 16px !important; padding-bottom: 16px !important; } }
+@media (min-width: 768px) { /* Set a 24px padding to all sides at the md breakpoint */
+  .p-md-4 { padding: 24px !important; }
+  /* Set a 24px padding to the top at the md breakpoint */
+  .pt-md-4 { padding-top: 24px !important; }
+  /* Set a 24px padding to the right at the md breakpoint */
+  .pr-md-4 { padding-right: 24px !important; }
+  /* Set a 24px padding to the bottom at the md breakpoint */
+  .pb-md-4 { padding-bottom: 24px !important; }
+  /* Set a 24px padding to the left at the md breakpoint */
+  .pl-md-4 { padding-left: 24px !important; }
+  /* Set a 24px padding to the left & right at the md breakpoint */
+  .px-md-4 { padding-right: 24px !important; padding-left: 24px !important; }
+  /* Set a 24px padding to the top & bottom at the md breakpoint */
+  .py-md-4 { padding-top: 24px !important; padding-bottom: 24px !important; } }
+@media (min-width: 768px) { /* Set a 32px padding to all sides at the md breakpoint */
+  .p-md-5 { padding: 32px !important; }
+  /* Set a 32px padding to the top at the md breakpoint */
+  .pt-md-5 { padding-top: 32px !important; }
+  /* Set a 32px padding to the right at the md breakpoint */
+  .pr-md-5 { padding-right: 32px !important; }
+  /* Set a 32px padding to the bottom at the md breakpoint */
+  .pb-md-5 { padding-bottom: 32px !important; }
+  /* Set a 32px padding to the left at the md breakpoint */
+  .pl-md-5 { padding-left: 32px !important; }
+  /* Set a 32px padding to the left & right at the md breakpoint */
+  .px-md-5 { padding-right: 32px !important; padding-left: 32px !important; }
+  /* Set a 32px padding to the top & bottom at the md breakpoint */
+  .py-md-5 { padding-top: 32px !important; padding-bottom: 32px !important; } }
+@media (min-width: 768px) { /* Set a 40px padding to all sides at the md breakpoint */
+  .p-md-6 { padding: 40px !important; }
+  /* Set a 40px padding to the top at the md breakpoint */
+  .pt-md-6 { padding-top: 40px !important; }
+  /* Set a 40px padding to the right at the md breakpoint */
+  .pr-md-6 { padding-right: 40px !important; }
+  /* Set a 40px padding to the bottom at the md breakpoint */
+  .pb-md-6 { padding-bottom: 40px !important; }
+  /* Set a 40px padding to the left at the md breakpoint */
+  .pl-md-6 { padding-left: 40px !important; }
+  /* Set a 40px padding to the left & right at the md breakpoint */
+  .px-md-6 { padding-right: 40px !important; padding-left: 40px !important; }
+  /* Set a 40px padding to the top & bottom at the md breakpoint */
+  .py-md-6 { padding-top: 40px !important; padding-bottom: 40px !important; } }
+@media (min-width: 1012px) { /* Set a 0 padding to all sides at the lg breakpoint */
+  .p-lg-0 { padding: 0 !important; }
+  /* Set a 0 padding to the top at the lg breakpoint */
+  .pt-lg-0 { padding-top: 0 !important; }
+  /* Set a 0 padding to the right at the lg breakpoint */
+  .pr-lg-0 { padding-right: 0 !important; }
+  /* Set a 0 padding to the bottom at the lg breakpoint */
+  .pb-lg-0 { padding-bottom: 0 !important; }
+  /* Set a 0 padding to the left at the lg breakpoint */
+  .pl-lg-0 { padding-left: 0 !important; }
+  /* Set a 0 padding to the left & right at the lg breakpoint */
+  .px-lg-0 { padding-right: 0 !important; padding-left: 0 !important; }
+  /* Set a 0 padding to the top & bottom at the lg breakpoint */
+  .py-lg-0 { padding-top: 0 !important; padding-bottom: 0 !important; } }
+@media (min-width: 1012px) { /* Set a 4px padding to all sides at the lg breakpoint */
+  .p-lg-1 { padding: 4px !important; }
+  /* Set a 4px padding to the top at the lg breakpoint */
+  .pt-lg-1 { padding-top: 4px !important; }
+  /* Set a 4px padding to the right at the lg breakpoint */
+  .pr-lg-1 { padding-right: 4px !important; }
+  /* Set a 4px padding to the bottom at the lg breakpoint */
+  .pb-lg-1 { padding-bottom: 4px !important; }
+  /* Set a 4px padding to the left at the lg breakpoint */
+  .pl-lg-1 { padding-left: 4px !important; }
+  /* Set a 4px padding to the left & right at the lg breakpoint */
+  .px-lg-1 { padding-right: 4px !important; padding-left: 4px !important; }
+  /* Set a 4px padding to the top & bottom at the lg breakpoint */
+  .py-lg-1 { padding-top: 4px !important; padding-bottom: 4px !important; } }
+@media (min-width: 1012px) { /* Set a 8px padding to all sides at the lg breakpoint */
+  .p-lg-2 { padding: 8px !important; }
+  /* Set a 8px padding to the top at the lg breakpoint */
+  .pt-lg-2 { padding-top: 8px !important; }
+  /* Set a 8px padding to the right at the lg breakpoint */
+  .pr-lg-2 { padding-right: 8px !important; }
+  /* Set a 8px padding to the bottom at the lg breakpoint */
+  .pb-lg-2 { padding-bottom: 8px !important; }
+  /* Set a 8px padding to the left at the lg breakpoint */
+  .pl-lg-2 { padding-left: 8px !important; }
+  /* Set a 8px padding to the left & right at the lg breakpoint */
+  .px-lg-2 { padding-right: 8px !important; padding-left: 8px !important; }
+  /* Set a 8px padding to the top & bottom at the lg breakpoint */
+  .py-lg-2 { padding-top: 8px !important; padding-bottom: 8px !important; } }
+@media (min-width: 1012px) { /* Set a 16px padding to all sides at the lg breakpoint */
+  .p-lg-3 { padding: 16px !important; }
+  /* Set a 16px padding to the top at the lg breakpoint */
+  .pt-lg-3 { padding-top: 16px !important; }
+  /* Set a 16px padding to the right at the lg breakpoint */
+  .pr-lg-3 { padding-right: 16px !important; }
+  /* Set a 16px padding to the bottom at the lg breakpoint */
+  .pb-lg-3 { padding-bottom: 16px !important; }
+  /* Set a 16px padding to the left at the lg breakpoint */
+  .pl-lg-3 { padding-left: 16px !important; }
+  /* Set a 16px padding to the left & right at the lg breakpoint */
+  .px-lg-3 { padding-right: 16px !important; padding-left: 16px !important; }
+  /* Set a 16px padding to the top & bottom at the lg breakpoint */
+  .py-lg-3 { padding-top: 16px !important; padding-bottom: 16px !important; } }
+@media (min-width: 1012px) { /* Set a 24px padding to all sides at the lg breakpoint */
+  .p-lg-4 { padding: 24px !important; }
+  /* Set a 24px padding to the top at the lg breakpoint */
+  .pt-lg-4 { padding-top: 24px !important; }
+  /* Set a 24px padding to the right at the lg breakpoint */
+  .pr-lg-4 { padding-right: 24px !important; }
+  /* Set a 24px padding to the bottom at the lg breakpoint */
+  .pb-lg-4 { padding-bottom: 24px !important; }
+  /* Set a 24px padding to the left at the lg breakpoint */
+  .pl-lg-4 { padding-left: 24px !important; }
+  /* Set a 24px padding to the left & right at the lg breakpoint */
+  .px-lg-4 { padding-right: 24px !important; padding-left: 24px !important; }
+  /* Set a 24px padding to the top & bottom at the lg breakpoint */
+  .py-lg-4 { padding-top: 24px !important; padding-bottom: 24px !important; } }
+@media (min-width: 1012px) { /* Set a 32px padding to all sides at the lg breakpoint */
+  .p-lg-5 { padding: 32px !important; }
+  /* Set a 32px padding to the top at the lg breakpoint */
+  .pt-lg-5 { padding-top: 32px !important; }
+  /* Set a 32px padding to the right at the lg breakpoint */
+  .pr-lg-5 { padding-right: 32px !important; }
+  /* Set a 32px padding to the bottom at the lg breakpoint */
+  .pb-lg-5 { padding-bottom: 32px !important; }
+  /* Set a 32px padding to the left at the lg breakpoint */
+  .pl-lg-5 { padding-left: 32px !important; }
+  /* Set a 32px padding to the left & right at the lg breakpoint */
+  .px-lg-5 { padding-right: 32px !important; padding-left: 32px !important; }
+  /* Set a 32px padding to the top & bottom at the lg breakpoint */
+  .py-lg-5 { padding-top: 32px !important; padding-bottom: 32px !important; } }
+@media (min-width: 1012px) { /* Set a 40px padding to all sides at the lg breakpoint */
+  .p-lg-6 { padding: 40px !important; }
+  /* Set a 40px padding to the top at the lg breakpoint */
+  .pt-lg-6 { padding-top: 40px !important; }
+  /* Set a 40px padding to the right at the lg breakpoint */
+  .pr-lg-6 { padding-right: 40px !important; }
+  /* Set a 40px padding to the bottom at the lg breakpoint */
+  .pb-lg-6 { padding-bottom: 40px !important; }
+  /* Set a 40px padding to the left at the lg breakpoint */
+  .pl-lg-6 { padding-left: 40px !important; }
+  /* Set a 40px padding to the left & right at the lg breakpoint */
+  .px-lg-6 { padding-right: 40px !important; padding-left: 40px !important; }
+  /* Set a 40px padding to the top & bottom at the lg breakpoint */
+  .py-lg-6 { padding-top: 40px !important; padding-bottom: 40px !important; } }
+@media (min-width: 1280px) { /* Set a 0 padding to all sides at the xl breakpoint */
+  .p-xl-0 { padding: 0 !important; }
+  /* Set a 0 padding to the top at the xl breakpoint */
+  .pt-xl-0 { padding-top: 0 !important; }
+  /* Set a 0 padding to the right at the xl breakpoint */
+  .pr-xl-0 { padding-right: 0 !important; }
+  /* Set a 0 padding to the bottom at the xl breakpoint */
+  .pb-xl-0 { padding-bottom: 0 !important; }
+  /* Set a 0 padding to the left at the xl breakpoint */
+  .pl-xl-0 { padding-left: 0 !important; }
+  /* Set a 0 padding to the left & right at the xl breakpoint */
+  .px-xl-0 { padding-right: 0 !important; padding-left: 0 !important; }
+  /* Set a 0 padding to the top & bottom at the xl breakpoint */
+  .py-xl-0 { padding-top: 0 !important; padding-bottom: 0 !important; } }
+@media (min-width: 1280px) { /* Set a 4px padding to all sides at the xl breakpoint */
+  .p-xl-1 { padding: 4px !important; }
+  /* Set a 4px padding to the top at the xl breakpoint */
+  .pt-xl-1 { padding-top: 4px !important; }
+  /* Set a 4px padding to the right at the xl breakpoint */
+  .pr-xl-1 { padding-right: 4px !important; }
+  /* Set a 4px padding to the bottom at the xl breakpoint */
+  .pb-xl-1 { padding-bottom: 4px !important; }
+  /* Set a 4px padding to the left at the xl breakpoint */
+  .pl-xl-1 { padding-left: 4px !important; }
+  /* Set a 4px padding to the left & right at the xl breakpoint */
+  .px-xl-1 { padding-right: 4px !important; padding-left: 4px !important; }
+  /* Set a 4px padding to the top & bottom at the xl breakpoint */
+  .py-xl-1 { padding-top: 4px !important; padding-bottom: 4px !important; } }
+@media (min-width: 1280px) { /* Set a 8px padding to all sides at the xl breakpoint */
+  .p-xl-2 { padding: 8px !important; }
+  /* Set a 8px padding to the top at the xl breakpoint */
+  .pt-xl-2 { padding-top: 8px !important; }
+  /* Set a 8px padding to the right at the xl breakpoint */
+  .pr-xl-2 { padding-right: 8px !important; }
+  /* Set a 8px padding to the bottom at the xl breakpoint */
+  .pb-xl-2 { padding-bottom: 8px !important; }
+  /* Set a 8px padding to the left at the xl breakpoint */
+  .pl-xl-2 { padding-left: 8px !important; }
+  /* Set a 8px padding to the left & right at the xl breakpoint */
+  .px-xl-2 { padding-right: 8px !important; padding-left: 8px !important; }
+  /* Set a 8px padding to the top & bottom at the xl breakpoint */
+  .py-xl-2 { padding-top: 8px !important; padding-bottom: 8px !important; } }
+@media (min-width: 1280px) { /* Set a 16px padding to all sides at the xl breakpoint */
+  .p-xl-3 { padding: 16px !important; }
+  /* Set a 16px padding to the top at the xl breakpoint */
+  .pt-xl-3 { padding-top: 16px !important; }
+  /* Set a 16px padding to the right at the xl breakpoint */
+  .pr-xl-3 { padding-right: 16px !important; }
+  /* Set a 16px padding to the bottom at the xl breakpoint */
+  .pb-xl-3 { padding-bottom: 16px !important; }
+  /* Set a 16px padding to the left at the xl breakpoint */
+  .pl-xl-3 { padding-left: 16px !important; }
+  /* Set a 16px padding to the left & right at the xl breakpoint */
+  .px-xl-3 { padding-right: 16px !important; padding-left: 16px !important; }
+  /* Set a 16px padding to the top & bottom at the xl breakpoint */
+  .py-xl-3 { padding-top: 16px !important; padding-bottom: 16px !important; } }
+@media (min-width: 1280px) { /* Set a 24px padding to all sides at the xl breakpoint */
+  .p-xl-4 { padding: 24px !important; }
+  /* Set a 24px padding to the top at the xl breakpoint */
+  .pt-xl-4 { padding-top: 24px !important; }
+  /* Set a 24px padding to the right at the xl breakpoint */
+  .pr-xl-4 { padding-right: 24px !important; }
+  /* Set a 24px padding to the bottom at the xl breakpoint */
+  .pb-xl-4 { padding-bottom: 24px !important; }
+  /* Set a 24px padding to the left at the xl breakpoint */
+  .pl-xl-4 { padding-left: 24px !important; }
+  /* Set a 24px padding to the left & right at the xl breakpoint */
+  .px-xl-4 { padding-right: 24px !important; padding-left: 24px !important; }
+  /* Set a 24px padding to the top & bottom at the xl breakpoint */
+  .py-xl-4 { padding-top: 24px !important; padding-bottom: 24px !important; } }
+@media (min-width: 1280px) { /* Set a 32px padding to all sides at the xl breakpoint */
+  .p-xl-5 { padding: 32px !important; }
+  /* Set a 32px padding to the top at the xl breakpoint */
+  .pt-xl-5 { padding-top: 32px !important; }
+  /* Set a 32px padding to the right at the xl breakpoint */
+  .pr-xl-5 { padding-right: 32px !important; }
+  /* Set a 32px padding to the bottom at the xl breakpoint */
+  .pb-xl-5 { padding-bottom: 32px !important; }
+  /* Set a 32px padding to the left at the xl breakpoint */
+  .pl-xl-5 { padding-left: 32px !important; }
+  /* Set a 32px padding to the left & right at the xl breakpoint */
+  .px-xl-5 { padding-right: 32px !important; padding-left: 32px !important; }
+  /* Set a 32px padding to the top & bottom at the xl breakpoint */
+  .py-xl-5 { padding-top: 32px !important; padding-bottom: 32px !important; } }
+@media (min-width: 1280px) { /* Set a 40px padding to all sides at the xl breakpoint */
+  .p-xl-6 { padding: 40px !important; }
+  /* Set a 40px padding to the top at the xl breakpoint */
+  .pt-xl-6 { padding-top: 40px !important; }
+  /* Set a 40px padding to the right at the xl breakpoint */
+  .pr-xl-6 { padding-right: 40px !important; }
+  /* Set a 40px padding to the bottom at the xl breakpoint */
+  .pb-xl-6 { padding-bottom: 40px !important; }
+  /* Set a 40px padding to the left at the xl breakpoint */
+  .pl-xl-6 { padding-left: 40px !important; }
+  /* Set a 40px padding to the left & right at the xl breakpoint */
+  .px-xl-6 { padding-right: 40px !important; padding-left: 40px !important; }
+  /* Set a 40px padding to the top & bottom at the xl breakpoint */
+  .py-xl-6 { padding-top: 40px !important; padding-bottom: 40px !important; } }
+.p-responsive { padding-right: 16px !important; padding-left: 16px !important; }
+@media (min-width: 544px) { .p-responsive { padding-right: 40px !important; padding-left: 40px !important; } }
+@media (min-width: 1012px) { .p-responsive { padding-right: 16px !important; padding-left: 16px !important; } }
+
+/* Set the font size to 26px */
+.h1 { font-size: 26px !important; }
+@media (min-width: 768px) { .h1 { font-size: 32px !important; } }
+
+/* Set the font size to 22px */
+.h2 { font-size: 22px !important; }
+@media (min-width: 768px) { .h2 { font-size: 24px !important; } }
+
+/* Set the font size to 18px */
+.h3 { font-size: 18px !important; }
+@media (min-width: 768px) { .h3 { font-size: 20px !important; } }
+
+/* Set the font size to 16px */
+.h4 { font-size: 16px !important; }
+
+/* Set the font size to 14px */
+.h5 { font-size: 14px !important; }
+
+/* Set the font size to 12px */
+.h6 { font-size: 12px !important; }
+
+.h1, .h2, .h3, .h4, .h5, .h6 { font-weight: 600 !important; }
+
+/* Set the font size to 26px */
+.f1 { font-size: 26px !important; }
+@media (min-width: 768px) { .f1 { font-size: 32px !important; } }
+
+/* Set the font size to 22px */
+.f2 { font-size: 22px !important; }
+@media (min-width: 768px) { .f2 { font-size: 24px !important; } }
+
+/* Set the font size to 18px */
+.f3 { font-size: 18px !important; }
+@media (min-width: 768px) { .f3 { font-size: 20px !important; } }
+
+/* Set the font size to 16px */
+.f4 { font-size: 16px !important; }
+@media (min-width: 768px) { .f4 { font-size: 16px !important; } }
+
+/* Set the font size to 14px */
+.f5 { font-size: 14px !important; }
+
+/* Set the font size to 12px */
+.f6 { font-size: 12px !important; }
+
+/* Set the font size to 40px and weight to light */
+.f00-light { font-size: 40px !important; font-weight: 300 !important; }
+@media (min-width: 768px) { .f00-light { font-size: 48px !important; } }
+
+/* Set the font size to 32px and weight to light */
+.f0-light { font-size: 32px !important; font-weight: 300 !important; }
+@media (min-width: 768px) { .f0-light { font-size: 40px !important; } }
+
+/* Set the font size to 26px and weight to light */
+.f1-light { font-size: 26px !important; font-weight: 300 !important; }
+@media (min-width: 768px) { .f1-light { font-size: 32px !important; } }
+
+/* Set the font size to 22px and weight to light */
+.f2-light { font-size: 22px !important; font-weight: 300 !important; }
+@media (min-width: 768px) { .f2-light { font-size: 24px !important; } }
+
+/* Set the font size to 18px and weight to light */
+.f3-light { font-size: 18px !important; font-weight: 300 !important; }
+@media (min-width: 768px) { .f3-light { font-size: 20px !important; } }
+
+/* Set the font size to ${#h6-size} */
+.text-small { font-size: 12px !important; }
+
+/* Large leading paragraphs */
+.lead { margin-bottom: 30px; font-size: 20px; font-weight: 300; color: #586069; }
+
+/* Set the line height to ultra condensed */
+.lh-condensed-ultra { line-height: 1 !important; }
+
+/* Set the line height to condensed */
+.lh-condensed { line-height: 1.25 !important; }
+
+/* Set the line height to default */
+.lh-default { line-height: 1.5 !important; }
+
+/* Text align to the right */
+.text-right { text-align: right !important; }
+
+/* Text align to the left */
+.text-left { text-align: left !important; }
+
+/* Text align to the center */
+.text-center { text-align: center !important; }
+
+@media (min-width: 544px) { .text-sm-right { text-align: right !important; }
+  .text-sm-left { text-align: left !important; }
+  .text-sm-center { text-align: center !important; } }
+@media (min-width: 768px) { .text-md-right { text-align: right !important; }
+  .text-md-left { text-align: left !important; }
+  .text-md-center { text-align: center !important; } }
+@media (min-width: 1012px) { .text-lg-right { text-align: right !important; }
+  .text-lg-left { text-align: left !important; }
+  .text-lg-center { text-align: center !important; } }
+@media (min-width: 1280px) { .text-xl-right { text-align: right !important; }
+  .text-xl-left { text-align: left !important; }
+  .text-xl-center { text-align: center !important; } }
+/* Set the font weight to normal */
+.text-normal { font-weight: 400 !important; }
+
+/* Set the font weight to bold */
+.text-bold { font-weight: 600 !important; }
+
+/* Set the font to italic */
+.text-italic { font-style: italic !important; }
+
+/* Make text uppercase */
+.text-uppercase { text-transform: uppercase !important; }
+
+/* Underline text */
+.no-underline { text-decoration: none !important; }
+
+/* Don't wrap white space */
+.no-wrap { white-space: nowrap !important; }
+
+/* Normal white space */
+.ws-normal { white-space: normal !important; }
+
+/* Allow long lines with no spaces to line break */
+.wb-break-all { word-break: break-all !important; }
+
+.text-emphasized { font-weight: 600; color: #24292e; }
+
+.list-style-none { list-style: none !important; }
+
+/* Add a dark text shadow */
+.text-shadow-dark { text-shadow: 0 1px 1px rgba(27, 31, 35, 0.25), 0 1px 25px rgba(27, 31, 35, 0.75); }
+
+/* Add a light text shadow */
+.text-shadow-light { text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); }
+
+/* Visibility hidden */
+.v-hidden { visibility: hidden !important; }
+
+/* Visibility visible */
+.v-visible { visibility: visible !important; }
+
+/* Set the display to table */
+.d-table { display: table !important; }
+
+/* Set the display to table-cell */
+.d-table-cell { display: table-cell !important; }
+
+/* Set the table-layout to fixed */
+.table-fixed { table-layout: fixed !important; }
+
+/* Set the display to block */
+.d-block { display: block !important; }
+
+/* Set the display to inline */
+.d-inline { display: inline !important; }
+
+/* Set the display to inline-block */
+.d-inline-block { display: inline-block !important; }
+
+/* Set the display to flex */
+.d-flex { display: flex !important; }
+
+/* Set the display to inline-flex */
+.d-inline-flex { display: inline-flex !important; }
+
+/* Set the display to none */
+.d-none { display: none !important; }
+
+@media (min-width: 544px) { /* Set the display to table at the sm breakpoint */
+  .d-sm-table { display: table !important; }
+  /* Set the display to table cell at the sm breakpoint */
+  .d-sm-table-cell { display: table-cell !important; }
+  /* Set the display to block at the sm breakpoint */
+  .d-sm-block { display: block !important; }
+  /* Set the display to inline at the sm breakpoint */
+  .d-sm-inline { display: inline !important; }
+  /* Set the display to inline block at the sm breakpoint */
+  .d-sm-inline-block { display: inline-block !important; }
+  /* Set the display to flex at the sm breakpoint */
+  .d-sm-flex { display: flex !important; }
+  /* Set the display to flex at the sm breakpoint */
+  .d-sm-inline-flex { display: inline-flex !important; }
+  /* Set the display to none at the sm breakpoint */
+  .d-sm-none { display: none !important; } }
+@media (min-width: 768px) { /* Set the display to table at the md breakpoint */
+  .d-md-table { display: table !important; }
+  /* Set the display to table cell at the md breakpoint */
+  .d-md-table-cell { display: table-cell !important; }
+  /* Set the display to block at the md breakpoint */
+  .d-md-block { display: block !important; }
+  /* Set the display to inline at the md breakpoint */
+  .d-md-inline { display: inline !important; }
+  /* Set the display to inline block at the md breakpoint */
+  .d-md-inline-block { display: inline-block !important; }
+  /* Set the display to flex at the md breakpoint */
+  .d-md-flex { display: flex !important; }
+  /* Set the display to flex at the md breakpoint */
+  .d-md-inline-flex { display: inline-flex !important; }
+  /* Set the display to none at the md breakpoint */
+  .d-md-none { display: none !important; } }
+@media (min-width: 1012px) { /* Set the display to table at the lg breakpoint */
+  .d-lg-table { display: table !important; }
+  /* Set the display to table cell at the lg breakpoint */
+  .d-lg-table-cell { display: table-cell !important; }
+  /* Set the display to block at the lg breakpoint */
+  .d-lg-block { display: block !important; }
+  /* Set the display to inline at the lg breakpoint */
+  .d-lg-inline { display: inline !important; }
+  /* Set the display to inline block at the lg breakpoint */
+  .d-lg-inline-block { display: inline-block !important; }
+  /* Set the display to flex at the lg breakpoint */
+  .d-lg-flex { display: flex !important; }
+  /* Set the display to flex at the lg breakpoint */
+  .d-lg-inline-flex { display: inline-flex !important; }
+  /* Set the display to none at the lg breakpoint */
+  .d-lg-none { display: none !important; } }
+@media (min-width: 1280px) { /* Set the display to table at the xl breakpoint */
+  .d-xl-table { display: table !important; }
+  /* Set the display to table cell at the xl breakpoint */
+  .d-xl-table-cell { display: table-cell !important; }
+  /* Set the display to block at the xl breakpoint */
+  .d-xl-block { display: block !important; }
+  /* Set the display to inline at the xl breakpoint */
+  .d-xl-inline { display: inline !important; }
+  /* Set the display to inline block at the xl breakpoint */
+  .d-xl-inline-block { display: inline-block !important; }
+  /* Set the display to flex at the xl breakpoint */
+  .d-xl-flex { display: flex !important; }
+  /* Set the display to flex at the xl breakpoint */
+  .d-xl-inline-flex { display: inline-flex !important; }
+  /* Set the display to none at the xl breakpoint */
+  .d-xl-none { display: none !important; } }
+@media (max-width: 544px) { .hide-sm { display: none !important; } }
+@media (min-width: 544px) and (max-width: 768px) { .hide-md { display: none !important; } }
+@media (min-width: 768px) and (max-width: 1012px) { .hide-lg { display: none !important; } }
+@media (min-width: 1012px) { .hide-xl { display: none !important; } }
+.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); word-wrap: normal; border: 0; }
+
+.show-on-focus { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
+.show-on-focus:focus { z-index: 20; width: auto; height: auto; clip: auto; }
+
+.container { width: 980px; margin-right: auto; margin-left: auto; }
+.container::before { display: table; content: ""; }
+.container::after { display: table; clear: both; content: ""; }
+
+.container-md { max-width: 768px; margin-right: auto; margin-left: auto; }
+
+.container-lg { max-width: 1012px; margin-right: auto; margin-left: auto; }
+
+.container-xl { max-width: 1280px; margin-right: auto; margin-left: auto; }
+
+.columns { margin-right: -10px; margin-left: -10px; }
+.columns::before { display: table; content: ""; }
+.columns::after { display: table; clear: both; content: ""; }
+
+.column { float: left; padding-right: 10px; padding-left: 10px; }
+
+.one-third { width: 33.333333%; }
+
+.two-thirds { width: 66.666667%; }
+
+.one-fourth { width: 25%; }
+
+.one-half { width: 50%; }
+
+.three-fourths { width: 75%; }
+
+.one-fifth { width: 20%; }
+
+.four-fifths { width: 80%; }
+
+.centered { display: block; float: none; margin-right: auto; margin-left: auto; }
+
+.col-1 { width: 8.3333333333%; }
+
+.col-2 { width: 16.6666666667%; }
+
+.col-3 { width: 25%; }
+
+.col-4 { width: 33.3333333333%; }
+
+.col-5 { width: 41.6666666667%; }
+
+.col-6 { width: 50%; }
+
+.col-7 { width: 58.3333333333%; }
+
+.col-8 { width: 66.6666666667%; }
+
+.col-9 { width: 75%; }
+
+.col-10 { width: 83.3333333333%; }
+
+.col-11 { width: 91.6666666667%; }
+
+.col-12 { width: 100%; }
+
+@media (min-width: 544px) { .col-sm-1 { width: 8.3333333333%; }
+  .col-sm-2 { width: 16.6666666667%; }
+  .col-sm-3 { width: 25%; }
+  .col-sm-4 { width: 33.3333333333%; }
+  .col-sm-5 { width: 41.6666666667%; }
+  .col-sm-6 { width: 50%; }
+  .col-sm-7 { width: 58.3333333333%; }
+  .col-sm-8 { width: 66.6666666667%; }
+  .col-sm-9 { width: 75%; }
+  .col-sm-10 { width: 83.3333333333%; }
+  .col-sm-11 { width: 91.6666666667%; }
+  .col-sm-12 { width: 100%; } }
+@media (min-width: 768px) { .col-md-1 { width: 8.3333333333%; }
+  .col-md-2 { width: 16.6666666667%; }
+  .col-md-3 { width: 25%; }
+  .col-md-4 { width: 33.3333333333%; }
+  .col-md-5 { width: 41.6666666667%; }
+  .col-md-6 { width: 50%; }
+  .col-md-7 { width: 58.3333333333%; }
+  .col-md-8 { width: 66.6666666667%; }
+  .col-md-9 { width: 75%; }
+  .col-md-10 { width: 83.3333333333%; }
+  .col-md-11 { width: 91.6666666667%; }
+  .col-md-12 { width: 100%; } }
+@media (min-width: 1012px) { .col-lg-1 { width: 8.3333333333%; }
+  .col-lg-2 { width: 16.6666666667%; }
+  .col-lg-3 { width: 25%; }
+  .col-lg-4 { width: 33.3333333333%; }
+  .col-lg-5 { width: 41.6666666667%; }
+  .col-lg-6 { width: 50%; }
+  .col-lg-7 { width: 58.3333333333%; }
+  .col-lg-8 { width: 66.6666666667%; }
+  .col-lg-9 { width: 75%; }
+  .col-lg-10 { width: 83.3333333333%; }
+  .col-lg-11 { width: 91.6666666667%; }
+  .col-lg-12 { width: 100%; } }
+@media (min-width: 1280px) { .col-xl-1 { width: 8.3333333333%; }
+  .col-xl-2 { width: 16.6666666667%; }
+  .col-xl-3 { width: 25%; }
+  .col-xl-4 { width: 33.3333333333%; }
+  .col-xl-5 { width: 41.6666666667%; }
+  .col-xl-6 { width: 50%; }
+  .col-xl-7 { width: 58.3333333333%; }
+  .col-xl-8 { width: 66.6666666667%; }
+  .col-xl-9 { width: 75%; }
+  .col-xl-10 { width: 83.3333333333%; }
+  .col-xl-11 { width: 91.6666666667%; }
+  .col-xl-12 { width: 100%; } }
+.gutter { margin-right: -16px; margin-left: -16px; }
+.gutter > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; }
+
+.gutter-condensed { margin-right: -8px; margin-left: -8px; }
+.gutter-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; }
+
+.gutter-spacious { margin-right: -24px; margin-left: -24px; }
+.gutter-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; }
+
+@media (min-width: 544px) { .gutter-sm { margin-right: -16px; margin-left: -16px; }
+  .gutter-sm > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; }
+  .gutter-sm-condensed { margin-right: -8px; margin-left: -8px; }
+  .gutter-sm-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; }
+  .gutter-sm-spacious { margin-right: -24px; margin-left: -24px; }
+  .gutter-sm-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } }
+@media (min-width: 768px) { .gutter-md { margin-right: -16px; margin-left: -16px; }
+  .gutter-md > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; }
+  .gutter-md-condensed { margin-right: -8px; margin-left: -8px; }
+  .gutter-md-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; }
+  .gutter-md-spacious { margin-right: -24px; margin-left: -24px; }
+  .gutter-md-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } }
+@media (min-width: 1012px) { .gutter-lg { margin-right: -16px; margin-left: -16px; }
+  .gutter-lg > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; }
+  .gutter-lg-condensed { margin-right: -8px; margin-left: -8px; }
+  .gutter-lg-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; }
+  .gutter-lg-spacious { margin-right: -24px; margin-left: -24px; }
+  .gutter-lg-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } }
+@media (min-width: 1280px) { .gutter-xl { margin-right: -16px; margin-left: -16px; }
+  .gutter-xl > [class*="col-"] { padding-right: 16px !important; padding-left: 16px !important; }
+  .gutter-xl-condensed { margin-right: -8px; margin-left: -8px; }
+  .gutter-xl-condensed > [class*="col-"] { padding-right: 8px !important; padding-left: 8px !important; }
+  .gutter-xl-spacious { margin-right: -24px; margin-left: -24px; }
+  .gutter-xl-spacious > [class*="col-"] { padding-right: 24px !important; padding-left: 24px !important; } }
+.offset-1 { margin-left: 8.3333333333%; }
+
+.offset-2 { margin-left: 16.6666666667%; }
+
+.offset-3 { margin-left: 25%; }
+
+.offset-4 { margin-left: 33.3333333333%; }
+
+.offset-5 { margin-left: 41.6666666667%; }
+
+.offset-6 { margin-left: 50%; }
+
+.offset-7 { margin-left: 58.3333333333%; }
+
+.offset-8 { margin-left: 66.6666666667%; }
+
+.offset-9 { margin-left: 75%; }
+
+.offset-10 { margin-left: 83.3333333333%; }
+
+.offset-11 { margin-left: 91.6666666667%; }
+
+@media (min-width: 544px) { .offset-sm-1 { margin-left: 8.3333333333%; }
+  .offset-sm-2 { margin-left: 16.6666666667%; }
+  .offset-sm-3 { margin-left: 25%; }
+  .offset-sm-4 { margin-left: 33.3333333333%; }
+  .offset-sm-5 { margin-left: 41.6666666667%; }
+  .offset-sm-6 { margin-left: 50%; }
+  .offset-sm-7 { margin-left: 58.3333333333%; }
+  .offset-sm-8 { margin-left: 66.6666666667%; }
+  .offset-sm-9 { margin-left: 75%; }
+  .offset-sm-10 { margin-left: 83.3333333333%; }
+  .offset-sm-11 { margin-left: 91.6666666667%; } }
+@media (min-width: 768px) { .offset-md-1 { margin-left: 8.3333333333%; }
+  .offset-md-2 { margin-left: 16.6666666667%; }
+  .offset-md-3 { margin-left: 25%; }
+  .offset-md-4 { margin-left: 33.3333333333%; }
+  .offset-md-5 { margin-left: 41.6666666667%; }
+  .offset-md-6 { margin-left: 50%; }
+  .offset-md-7 { margin-left: 58.3333333333%; }
+  .offset-md-8 { margin-left: 66.6666666667%; }
+  .offset-md-9 { margin-left: 75%; }
+  .offset-md-10 { margin-left: 83.3333333333%; }
+  .offset-md-11 { margin-left: 91.6666666667%; } }
+@media (min-width: 1012px) { .offset-lg-1 { margin-left: 8.3333333333%; }
+  .offset-lg-2 { margin-left: 16.6666666667%; }
+  .offset-lg-3 { margin-left: 25%; }
+  .offset-lg-4 { margin-left: 33.3333333333%; }
+  .offset-lg-5 { margin-left: 41.6666666667%; }
+  .offset-lg-6 { margin-left: 50%; }
+  .offset-lg-7 { margin-left: 58.3333333333%; }
+  .offset-lg-8 { margin-left: 66.6666666667%; }
+  .offset-lg-9 { margin-left: 75%; }
+  .offset-lg-10 { margin-left: 83.3333333333%; }
+  .offset-lg-11 { margin-left: 91.6666666667%; } }
+@media (min-width: 1280px) { .offset-xl-1 { margin-left: 8.3333333333%; }
+  .offset-xl-2 { margin-left: 16.6666666667%; }
+  .offset-xl-3 { margin-left: 25%; }
+  .offset-xl-4 { margin-left: 33.3333333333%; }
+  .offset-xl-5 { margin-left: 41.6666666667%; }
+  .offset-xl-6 { margin-left: 50%; }
+  .offset-xl-7 { margin-left: 58.3333333333%; }
+  .offset-xl-8 { margin-left: 66.6666666667%; }
+  .offset-xl-9 { margin-left: 75%; }
+  .offset-xl-10 { margin-left: 83.3333333333%; }
+  .offset-xl-11 { margin-left: 91.6666666667%; } }
+.markdown-body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 1.5; word-wrap: break-word; }
+.markdown-body::before { display: table; content: ""; }
+.markdown-body::after { display: table; clear: both; content: ""; }
+.markdown-body > *:first-child { margin-top: 0 !important; }
+.markdown-body > *:last-child { margin-bottom: 0 !important; }
+.markdown-body a:not([href]) { color: inherit; text-decoration: none; }
+.markdown-body .absent { color: #cb2431; }
+.markdown-body .anchor { float: left; padding-right: 4px; margin-left: -20px; line-height: 1; }
+.markdown-body .anchor:focus { outline: none; }
+.markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre { margin-top: 0; margin-bottom: 16px; }
+.markdown-body hr { height: 0.25em; padding: 0; margin: 24px 0; background-color: #e1e4e8; border: 0; }
+.markdown-body blockquote { padding: 0 1em; color: #6a737d; border-left: 0.25em solid #dfe2e5; }
+.markdown-body blockquote > :first-child { margin-top: 0; }
+.markdown-body blockquote > :last-child { margin-bottom: 0; }
+.markdown-body kbd { display: inline-block; padding: 3px 5px; font-size: 11px; line-height: 10px; color: #444d56; vertical-align: middle; background-color: #fafbfc; border: solid 1px #c6cbd1; border-bottom-color: #959da5; border-radius: 3px; box-shadow: inset 0 -1px 0 #959da5; }
+
+.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { margin-top: 24px; margin-bottom: 16px; font-weight: 600; line-height: 1.25; }
+.markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { color: #1b1f23; vertical-align: middle; visibility: hidden; }
+.markdown-body h1:hover .anchor, .markdown-body h2:hover .anchor, .markdown-body h3:hover .anchor, .markdown-body h4:hover .anchor, .markdown-body h5:hover .anchor, .markdown-body h6:hover .anchor { text-decoration: none; }
+.markdown-body h1:hover .anchor .octicon-link, .markdown-body h2:hover .anchor .octicon-link, .markdown-body h3:hover .anchor .octicon-link, .markdown-body h4:hover .anchor .octicon-link, .markdown-body h5:hover .anchor .octicon-link, .markdown-body h6:hover .anchor .octicon-link { visibility: visible; }
+.markdown-body h1 tt, .markdown-body h1 code, .markdown-body h2 tt, .markdown-body h2 code, .markdown-body h3 tt, .markdown-body h3 code, .markdown-body h4 tt, .markdown-body h4 code, .markdown-body h5 tt, .markdown-body h5 code, .markdown-body h6 tt, .markdown-body h6 code { font-size: inherit; }
+.markdown-body h1 { padding-bottom: 0.3em; font-size: 2em; border-bottom: 1px solid #eaecef; }
+.markdown-body h2 { padding-bottom: 0.3em; font-size: 1.5em; border-bottom: 1px solid #eaecef; }
+.markdown-body h3 { font-size: 1.25em; }
+.markdown-body h4 { font-size: 1em; }
+.markdown-body h5 { font-size: 0.875em; }
+.markdown-body h6 { font-size: 0.85em; color: #6a737d; }
+
+.markdown-body ul, .markdown-body ol { padding-left: 2em; }
+.markdown-body ul.no-list, .markdown-body ol.no-list { padding: 0; list-style-type: none; }
+.markdown-body ul ul, .markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul { margin-top: 0; margin-bottom: 0; }
+.markdown-body li > p { margin-top: 16px; }
+.markdown-body li + li { margin-top: 0.25em; }
+.markdown-body dl { padding: 0; }
+.markdown-body dl dt { padding: 0; margin-top: 16px; font-size: 1em; font-style: italic; font-weight: 600; }
+.markdown-body dl dd { padding: 0 16px; margin-bottom: 16px; }
+
+.markdown-body table { display: block; width: 100%; overflow: auto; }
+.markdown-body table th { font-weight: 600; }
+.markdown-body table th, .markdown-body table td { padding: 6px 13px; border: 1px solid #dfe2e5; }
+.markdown-body table tr { background-color: #fff; border-top: 1px solid #c6cbd1; }
+.markdown-body table tr:nth-child(2n) { background-color: #f6f8fa; }
+.markdown-body table img { background-color: transparent; }
+
+.markdown-body img { max-width: 100%; box-sizing: content-box; background-color: #fff; }
+.markdown-body img[align=right] { padding-left: 20px; }
+.markdown-body img[align=left] { padding-right: 20px; }
+.markdown-body .emoji { max-width: none; vertical-align: text-top; background-color: transparent; }
+.markdown-body span.frame { display: block; overflow: hidden; }
+.markdown-body span.frame > span { display: block; float: left; width: auto; padding: 7px; margin: 13px 0 0; overflow: hidden; border: 1px solid #dfe2e5; }
+.markdown-body span.frame span img { display: block; float: left; }
+.markdown-body span.frame span span { display: block; padding: 5px 0 0; clear: both; color: #24292e; }
+.markdown-body span.align-center { display: block; overflow: hidden; clear: both; }
+.markdown-body span.align-center > span { display: block; margin: 13px auto 0; overflow: hidden; text-align: center; }
+.markdown-body span.align-center span img { margin: 0 auto; text-align: center; }
+.markdown-body span.align-right { display: block; overflow: hidden; clear: both; }
+.markdown-body span.align-right > span { display: block; margin: 13px 0 0; overflow: hidden; text-align: right; }
+.markdown-body span.align-right span img { margin: 0; text-align: right; }
+.markdown-body span.float-left { display: block; float: left; margin-right: 13px; overflow: hidden; }
+.markdown-body span.float-left span { margin: 13px 0 0; }
+.markdown-body span.float-right { display: block; float: right; margin-left: 13px; overflow: hidden; }
+.markdown-body span.float-right > span { display: block; margin: 13px auto 0; overflow: hidden; text-align: right; }
+
+.markdown-body code, .markdown-body tt { padding: 0; padding-top: 0.2em; padding-bottom: 0.2em; margin: 0; font-size: 85%; background-color: rgba(27, 31, 35, 0.05); border-radius: 3px; }
+.markdown-body code::before, .markdown-body code::after, .markdown-body tt::before, .markdown-body tt::after { letter-spacing: -0.2em; content: "\00a0"; }
+.markdown-body code br, .markdown-body tt br { display: none; }
+.markdown-body del code { text-decoration: inherit; }
+.markdown-body pre { word-wrap: normal; }
+.markdown-body pre > code { padding: 0; margin: 0; font-size: 100%; word-break: normal; white-space: pre; background: transparent; border: 0; }
+.markdown-body .highlight { margin-bottom: 16px; }
+.markdown-body .highlight pre { margin-bottom: 0; word-break: normal; }
+.markdown-body .highlight pre, .markdown-body pre { padding: 16px; overflow: auto; font-size: 85%; line-height: 1.45; background-color: #f6f8fa; border-radius: 3px; }
+.markdown-body pre code, .markdown-body pre tt { display: inline; max-width: auto; padding: 0; margin: 0; overflow: visible; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; }
+.markdown-body pre code::before, .markdown-body pre code::after, .markdown-body pre tt::before, .markdown-body pre tt::after { content: normal; }
+
+.markdown-body .csv-data td, .markdown-body .csv-data th { padding: 5px; overflow: hidden; font-size: 12px; line-height: 1; text-align: left; white-space: nowrap; }
+.markdown-body .csv-data .blob-num { padding: 10px 8px 9px; text-align: right; background: #fff; border: 0; }
+.markdown-body .csv-data tr { border-top: 0; }
+.markdown-body .csv-data th { font-weight: 600; background: #f6f8fa; border-top: 0; }
+
+.highlight table td { padding: 5px; }
+
+.highlight table pre { margin: 0; }
+
+.highlight .cm { color: #999988; font-style: italic; }
+
+.highlight .cp { color: #999999; font-weight: bold; }
+
+.highlight .c1 { color: #999988; font-style: italic; }
+
+.highlight .cs { color: #999999; font-weight: bold; font-style: italic; }
+
+.highlight .c, .highlight .cd { color: #999988; font-style: italic; }
+
+.highlight .err { color: #a61717; background-color: #e3d2d2; }
+
+.highlight .gd { color: #000000; background-color: #ffdddd; }
+
+.highlight .ge { color: #000000; font-style: italic; }
+
+.highlight .gr { color: #aa0000; }
+
+.highlight .gh { color: #999999; }
+
+.highlight .gi { color: #000000; background-color: #ddffdd; }
+
+.highlight .go { color: #888888; }
+
+.highlight .gp { color: #555555; }
+
+.highlight .gs { font-weight: bold; }
+
+.highlight .gu { color: #aaaaaa; }
+
+.highlight .gt { color: #aa0000; }
+
+.highlight .kc { color: #000000; font-weight: bold; }
+
+.highlight .kd { color: #000000; font-weight: bold; }
+
+.highlight .kn { color: #000000; font-weight: bold; }
+
+.highlight .kp { color: #000000; font-weight: bold; }
+
+.highlight .kr { color: #000000; font-weight: bold; }
+
+.highlight .kt { color: #445588; font-weight: bold; }
+
+.highlight .k, .highlight .kv { color: #000000; font-weight: bold; }
+
+.highlight .mf { color: #009999; }
+
+.highlight .mh { color: #009999; }
+
+.highlight .il { color: #009999; }
+
+.highlight .mi { color: #009999; }
+
+.highlight .mo { color: #009999; }
+
+.highlight .m, .highlight .mb, .highlight .mx { color: #009999; }
+
+.highlight .sb { color: #d14; }
+
+.highlight .sc { color: #d14; }
+
+.highlight .sd { color: #d14; }
+
+.highlight .s2 { color: #d14; }
+
+.highlight .se { color: #d14; }
+
+.highlight .sh { color: #d14; }
+
+.highlight .si { color: #d14; }
+
+.highlight .sx { color: #d14; }
+
+.highlight .sr { color: #009926; }
+
+.highlight .s1 { color: #d14; }
+
+.highlight .ss { color: #990073; }
+
+.highlight .s { color: #d14; }
+
+.highlight .na { color: #008080; }
+
+.highlight .bp { color: #999999; }
+
+.highlight .nb { color: #0086B3; }
+
+.highlight .nc { color: #445588; font-weight: bold; }
+
+.highlight .no { color: #008080; }
+
+.highlight .nd { color: #3c5d5d; font-weight: bold; }
+
+.highlight .ni { color: #800080; }
+
+.highlight .ne { color: #990000; font-weight: bold; }
+
+.highlight .nf { color: #990000; font-weight: bold; }
+
+.highlight .nl { color: #990000; font-weight: bold; }
+
+.highlight .nn { color: #555555; }
+
+.highlight .nt { color: #000080; }
+
+.highlight .vc { color: #008080; }
+
+.highlight .vg { color: #008080; }
+
+.highlight .vi { color: #008080; }
+
+.highlight .nv { color: #008080; }
+
+.highlight .ow { color: #000000; font-weight: bold; }
+
+.highlight .o { color: #000000; font-weight: bold; }
+
+.highlight .w { color: #bbbbbb; }
+
+.highlight { background-color: #f8f8f8; }
diff --git a/assets/javascript/anchor-js/.eslintrc b/assets/javascript/anchor-js/.eslintrc
new file mode 100644
index 0000000..9f486e0
--- /dev/null
+++ b/assets/javascript/anchor-js/.eslintrc
@@ -0,0 +1,77 @@
+{
+    "env": {
+        "browser": true
+    },
+
+    "rules": {
+        "array-bracket-spacing": [2, "never"],
+        "block-scoped-var": 2,
+        "brace-style": [2, "1tbs"],
+        "camelcase": 2,
+        "comma-spacing": [2, {"before": false, "after": true}],
+        "comma-style": [2, "last"],
+        "computed-property-spacing": [2, "never"],
+        "consistent-this": [2, "that"],
+        "curly": 2,
+        "eol-last": 2,
+        "eqeqeq": 2,
+        "guard-for-in": 2,
+        "handle-callback-err": 2,
+        "indent": [2, 2, {"VariableDeclarator": 2}],
+        "key-spacing": [2, {"beforeColon": false, "afterColon": true}],
+        "keyword-spacing": 2,
+        "no-caller": 2,
+        "new-cap": 2,
+        "new-parens": 2,
+        "no-array-constructor": 2,
+        "no-bitwise": 2,
+        "no-constant-condition": 2,
+        "no-else-return": 2,
+        "no-empty": 2,
+        "no-eq-null": 2,
+        "no-extra-parens": 0,
+        "no-extra-semi": 2,
+        "no-undef": 2,
+        "no-floating-decimal": 2,
+        "no-invalid-regexp": 2,
+        "no-irregular-whitespace": 2,
+        "no-lonely-if": 2,
+        "no-mixed-requires": 2,
+        "no-mixed-spaces-and-tabs": 2,
+        "no-multiple-empty-lines": 2,
+        "no-multi-spaces": 0,
+        "no-negated-in-lhs": 2,
+        "no-new-object": 2,
+        "no-path-concat": 2,
+        "no-process-env": 2,
+        "no-regex-spaces": 2,
+        "no-self-compare": 2,
+        "no-sequences": 2,
+        "no-spaced-func": 2,
+        "no-trailing-spaces": 2,
+        "no-underscore-dangle": 0,
+        "no-unused-vars": 0, // we should find a way to only exclude addAnchors and enable this
+        "no-use-before-define": [2, "nofunc"],
+        "no-void": 2,
+        "object-curly-spacing": [2, "always"],
+        "operator-assignment": [2, "always"],
+        "quotes": [2, "single"],
+        "quote-props": [2, "as-needed"],
+        "radix": 2,
+        "semi": [2, "always"],
+        "semi-spacing": 2,
+        "space-before-blocks": [2, "always"],
+        "spaced-comment": [2, "always"],
+        "space-in-parens": [2, "never"],
+        "space-unary-ops": [2, {"words": true, "nonwords": false}],
+        "strict": [2, "function"],
+        "valid-jsdoc": [2, {"requireReturn": false}],
+        "valid-typeof": 2,
+        "wrap-iife": [2, "outside"],
+        "yoda": [2, "never"]
+    },
+
+    "globals": {
+        "DocumentTouch": true,
+    }
+}
diff --git a/assets/javascript/anchor-js/.gitattributes b/assets/javascript/anchor-js/.gitattributes
new file mode 100644
index 0000000..72af4ec
--- /dev/null
+++ b/assets/javascript/anchor-js/.gitattributes
@@ -0,0 +1,2 @@
+# Enforce Unix newlines
+*.js    text eol=lf
diff --git a/assets/javascript/anchor-js/.npmignore b/assets/javascript/anchor-js/.npmignore
new file mode 100644
index 0000000..536e87f
--- /dev/null
+++ b/assets/javascript/anchor-js/.npmignore
@@ -0,0 +1,4 @@
+/_site/
+/node_modules/
+/npm-debug.log
+/_config.yml
diff --git a/assets/javascript/anchor-js/.travis.yml b/assets/javascript/anchor-js/.travis.yml
new file mode 100644
index 0000000..93f5f8b
--- /dev/null
+++ b/assets/javascript/anchor-js/.travis.yml
@@ -0,0 +1,6 @@
+language: node_js
+node_js:
+    - "node"
+branches:
+  only:
+    - master
diff --git a/assets/javascript/anchor-js/anchor.js b/assets/javascript/anchor-js/anchor.js
new file mode 100644
index 0000000..800ccf1
--- /dev/null
+++ b/assets/javascript/anchor-js/anchor.js
@@ -0,0 +1,334 @@
+/* eslint-env amd, node */
+
+// https://github.com/umdjs/umd/blob/master/templates/returnExports.js
+(function (root, factory) {
+  'use strict';
+
+  if (typeof define === 'function' && define.amd) {
+    // AMD. Register as an anonymous module.
+    define([], factory);
+  } else if (typeof module === 'object' && module.exports) {
+    // Node. Does not work with strict CommonJS, but
+    // only CommonJS-like environments that support module.exports,
+    // like Node.
+    module.exports = factory();
+  } else {
+    // Browser globals (root is window)
+    root.AnchorJS = factory();
+    root.anchors = new root.AnchorJS();
+  }
+}(this, function () {
+  'use strict';
+
+  function AnchorJS(options) {
+    this.options = options || {};
+    this.elements = [];
+
+    /**
+     * Assigns options to the internal options object, and provides defaults.
+     * @param {Object} opts - Options object
+     */
+    function _applyRemainingDefaultOptions(opts) {
+      opts.icon = opts.hasOwnProperty('icon') ? opts.icon : '\ue9cb'; // Accepts characters (and also URLs?), like  '#', '¶', '❡', or '§'.
+      opts.visible = opts.hasOwnProperty('visible') ? opts.visible : 'hover'; // Also accepts 'always' & 'touch'
+      opts.placement = opts.hasOwnProperty('placement') ? opts.placement : 'right'; // Also accepts 'left'
+      opts.class = opts.hasOwnProperty('class') ? opts.class : ''; // Accepts any class name.
+      // Using Math.floor here will ensure the value is Number-cast and an integer.
+      opts.truncate = opts.hasOwnProperty('truncate') ? Math.floor(opts.truncate) : 64; // Accepts any value that can be typecast to a number.
+    }
+
+    _applyRemainingDefaultOptions(this.options);
+
+    /**
+     * Checks to see if this device supports touch. Uses criteria pulled from Modernizr:
+     * https://github.com/Modernizr/Modernizr/blob/da22eb27631fc4957f67607fe6042e85c0a84656/feature-detects/touchevents.js#L40
+     * @return {Boolean} - true if the current device supports touch.
+     */
+    this.isTouchDevice = function() {
+      return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
+    };
+
+    /**
+     * Add anchor links to page elements.
+     * @param  {String|Array|Nodelist} selector - A CSS selector for targeting the elements you wish to add anchor links
+     *                                            to. Also accepts an array or nodeList containing the relavant elements.
+     * @return {this}                           - The AnchorJS object
+     */
+    this.add = function(selector) {
+      var elements,
+          elsWithIds,
+          idList,
+          elementID,
+          i,
+          index,
+          count,
+          tidyText,
+          newTidyText,
+          readableID,
+          anchor,
+          visibleOptionToUse,
+          indexesToDrop = [];
+
+      // We reapply options here because somebody may have overwritten the default options object when setting options.
+      // For example, this overwrites all options but visible:
+      //
+      // anchors.options = { visible: 'always'; }
+      _applyRemainingDefaultOptions(this.options);
+
+      visibleOptionToUse = this.options.visible;
+      if (visibleOptionToUse === 'touch') {
+        visibleOptionToUse = this.isTouchDevice() ? 'always' : 'hover';
+      }
+
+      // Provide a sensible default selector, if none is given.
+      if (!selector) {
+        selector = 'h2, h3, h4, h5, h6';
+      }
+
+      elements = _getElements(selector);
+
+      if (elements.length === 0) {
+        return this;
+      }
+
+      _addBaselineStyles();
+
+      // We produce a list of existing IDs so we don't generate a duplicate.
+      elsWithIds = document.querySelectorAll('[id]');
+      idList = [].map.call(elsWithIds, function assign(el) {
+        return el.id;
+      });
+
+      for (i = 0; i < elements.length; i++) {
+        if (this.hasAnchorJSLink(elements[i])) {
+          indexesToDrop.push(i);
+          continue;
+        }
+
+        if (elements[i].hasAttribute('id')) {
+          elementID = elements[i].getAttribute('id');
+        } else if (elements[i].hasAttribute('data-anchor-id')) {
+          elementID = elements[i].getAttribute('data-anchor-id');
+        } else {
+          tidyText = this.urlify(elements[i].textContent);
+
+          // Compare our generated ID to existing IDs (and increment it if needed)
+          // before we add it to the page.
+          newTidyText = tidyText;
+          count = 0;
+          do {
+            if (index !== undefined) {
+              newTidyText = tidyText + '-' + count;
+            }
+
+            index = idList.indexOf(newTidyText);
+            count += 1;
+          } while (index !== -1);
+          index = undefined;
+          idList.push(newTidyText);
+
+          elements[i].setAttribute('id', newTidyText);
+          elementID = newTidyText;
+        }
+
+        readableID = elementID.replace(/-/g, ' ');
+
+        // The following code builds the following DOM structure in a more effiecient (albeit opaque) way.
+        // '<a class="anchorjs-link ' + this.options.class + '" href="#' + elementID + '" aria-label="Anchor link for: ' + readableID + '" data-anchorjs-icon="' + this.options.icon + '"></a>';
+        anchor = document.createElement('a');
+        anchor.className = 'anchorjs-link ' + this.options.class;
+        anchor.href = '#' + elementID;
+        anchor.setAttribute('aria-label', 'Anchor link for: ' + readableID);
+        anchor.setAttribute('data-anchorjs-icon', this.options.icon);
+
+        if (visibleOptionToUse === 'always') {
+          anchor.style.opacity = '1';
+        }
+
+        if (this.options.icon === '\ue9cb') {
+          anchor.style.font = '1em/1 anchorjs-icons';
+
+          // We set lineHeight = 1 here because the `anchorjs-icons` font family could otherwise affect the
+          // height of the heading. This isn't the case for icons with `placement: left`, so we restore
+          // line-height: inherit in that case, ensuring they remain positioned correctly. For more info,
+          // see https://github.com/bryanbraun/anchorjs/issues/39.
+          if (this.options.placement === 'left') {
+            anchor.style.lineHeight = 'inherit';
+          }
+        }
+
+        if (this.options.placement === 'left') {
+          anchor.style.position = 'absolute';
+          anchor.style.marginLeft = '-1em';
+          anchor.style.paddingRight = '0.5em';
+          elements[i].insertBefore(anchor, elements[i].firstChild);
+        } else { // if the option provided is `right` (or anything else).
+          anchor.style.paddingLeft = '0.375em';
+          elements[i].appendChild(anchor);
+        }
+      }
+
+      for (i = 0; i < indexesToDrop.length; i++) {
+        elements.splice(indexesToDrop[i] - i, 1);
+      }
+      this.elements = this.elements.concat(elements);
+
+      return this;
+    };
+
+    /**
+     * Removes all anchorjs-links from elements targed by the selector.
+     * @param  {String|Array|Nodelist} selector - A CSS selector string targeting elements with anchor links,
+     *                                            OR a nodeList / array containing the DOM elements.
+     * @return {this}                           - The AnchorJS object
+     */
+    this.remove = function(selector) {
+      var index,
+          domAnchor,
+          elements = _getElements(selector);
+
+      for (var i = 0; i < elements.length; i++) {
+        domAnchor = elements[i].querySelector('.anchorjs-link');
+        if (domAnchor) {
+          // Drop the element from our main list, if it's in there.
+          index = this.elements.indexOf(elements[i]);
+          if (index !== -1) {
+            this.elements.splice(index, 1);
+          }
+          // Remove the anchor from the DOM.
+          elements[i].removeChild(domAnchor);
+        }
+      }
+      return this;
+    };
+
+    /**
+     * Removes all anchorjs links. Mostly used for tests.
+     */
+    this.removeAll = function() {
+      this.remove(this.elements);
+    };
+
+    /**
+     * Urlify - Refine text so it makes a good ID.
+     *
+     * To do this, we remove apostrophes, replace nonsafe characters with hyphens,
+     * remove extra hyphens, truncate, trim hyphens, and make lowercase.
+     *
+     * @param  {String} text - Any text. Usually pulled from the webpage element we are linking to.
+     * @return {String}      - hyphen-delimited text for use in IDs and URLs.
+     */
+    this.urlify = function(text) {
+      // Regex for finding the nonsafe URL characters (many need escaping): & +$,:;=?@"#{}|^~[`%!'<>]./()*\
+      var nonsafeChars = /[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\]/g,
+          urlText;
+
+      // The reason we include this _applyRemainingDefaultOptions is so urlify can be called independently,
+      // even after setting options. This can be useful for tests or other applications.
+      if (!this.options.truncate) {
+        _applyRemainingDefaultOptions(this.options);
+      }
+
+      // Note: we trim hyphens after truncating because truncating can cause dangling hyphens.
+      // Example string:                                  // " ⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+      urlText = text.trim()                               // "⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+                    .replace(/\'/gi, '')                  // "⚡⚡ Dont forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+                    .replace(nonsafeChars, '-')           // "⚡⚡-Dont-forget--URL-fragments-should-be-i18n-friendly--hyphenated--short--and-clean-"
+                    .replace(/-{2,}/g, '-')               // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-short-and-clean-"
+                    .substring(0, this.options.truncate)  // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-"
+                    .replace(/^-+|-+$/gm, '')             // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated"
+                    .toLowerCase();                       // "⚡⚡-dont-forget-url-fragments-should-be-i18n-friendly-hyphenated"
+
+      return urlText;
+    };
+
+    /**
+     * Determines if this element already has an AnchorJS link on it.
+     * Uses this technique: http://stackoverflow.com/a/5898748/1154642
+     * @param    {HTMLElemnt}  el - a DOM node
+     * @return   {Boolean}     true/false
+     */
+    this.hasAnchorJSLink = function(el) {
+      var hasLeftAnchor = el.firstChild && ((' ' + el.firstChild.className + ' ').indexOf(' anchorjs-link ') > -1),
+          hasRightAnchor = el.lastChild && ((' ' + el.lastChild.className + ' ').indexOf(' anchorjs-link ') > -1);
+
+      return hasLeftAnchor || hasRightAnchor || false;
+    };
+
+    /**
+     * Turns a selector, nodeList, or array of elements into an array of elements (so we can use array methods).
+     * It also throws errors on any other inputs. Used to handle inputs to .add and .remove.
+     * @param  {String|Array|Nodelist} input - A CSS selector string targeting elements with anchor links,
+     *                                         OR a nodeList / array containing the DOM elements.
+     * @return {Array} - An array containing the elements we want.
+     */
+    function _getElements(input) {
+      var elements;
+      if (typeof input === 'string' || input instanceof String) {
+        // See https://davidwalsh.name/nodelist-array for the technique transforming nodeList -> Array.
+        elements = [].slice.call(document.querySelectorAll(input));
+      // I checked the 'input instanceof NodeList' test in IE9 and modern browsers and it worked for me.
+      } else if (Array.isArray(input) || input instanceof NodeList) {
+        elements = [].slice.call(input);
+      } else {
+        throw new Error('The selector provided to AnchorJS was invalid.');
+      }
+      return elements;
+    }
+
+    /**
+     * _addBaselineStyles
+     * Adds baseline styles to the page, used by all AnchorJS links irregardless of configuration.
+     */
+    function _addBaselineStyles() {
+      // We don't want to add global baseline styles if they've been added before.
+      if (document.head.querySelector('style.anchorjs') !== null) {
+        return;
+      }
+
+      var style = document.createElement('style'),
+          linkRule =
+          ' .anchorjs-link {'                       +
+          '   opacity: 0;'                          +
+          '   text-decoration: none;'               +
+          '   -webkit-font-smoothing: antialiased;' +
+          '   -moz-osx-font-smoothing: grayscale;'  +
+          ' }',
+          hoverRule =
+          ' *:hover > .anchorjs-link,'              +
+          ' .anchorjs-link:focus  {'                +
+          '   opacity: 1;'                          +
+          ' }',
+          anchorjsLinkFontFace =
+          ' @font-face {'                           +
+          '   font-family: "anchorjs-icons";'       + // Icon from icomoon; 10px wide & 10px tall; 2 empty below & 4 above
+          '   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAM [...]
+          ' }',
+          pseudoElContent =
+          ' [data-anchorjs-icon]::after {'          +
+          '   content: attr(data-anchorjs-icon);'   +
+          ' }',
+          firstStyleEl;
+
+      style.className = 'anchorjs';
+      style.appendChild(document.createTextNode('')); // Necessary for Webkit.
+
+      // We place it in the head with the other style tags, if possible, so as to
+      // not look out of place. We insert before the others so these styles can be
+      // overridden if necessary.
+      firstStyleEl = document.head.querySelector('[rel="stylesheet"], style');
+      if (firstStyleEl === undefined) {
+        document.head.appendChild(style);
+      } else {
+        document.head.insertBefore(style, firstStyleEl);
+      }
+
+      style.sheet.insertRule(linkRule, style.sheet.cssRules.length);
+      style.sheet.insertRule(hoverRule, style.sheet.cssRules.length);
+      style.sheet.insertRule(pseudoElContent, style.sheet.cssRules.length);
+      style.sheet.insertRule(anchorjsLinkFontFace, style.sheet.cssRules.length);
+    }
+  }
+
+  return AnchorJS;
+}));
diff --git a/assets/javascript/anchor-js/anchor.min.js b/assets/javascript/anchor-js/anchor.min.js
new file mode 100644
index 0000000..35575f1
--- /dev/null
+++ b/assets/javascript/anchor-js/anchor.min.js
@@ -0,0 +1,6 @@
+/**
+ * AnchorJS - v4.0.0 - 2017-06-02
+ * https://github.com/bryanbraun/anchorjs
+ * Copyright (c) 2017 Bryan Braun; Licensed MIT
+ */
+!function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";function A(A){function e(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.class=A.hasOwnProperty("class")?A.class:"",A.truncate=A.hasOwnProperty("truncate")?Math.flo [...]
\ No newline at end of file
diff --git a/assets/javascript/anchor-js/banner.js b/assets/javascript/anchor-js/banner.js
new file mode 100644
index 0000000..6bd551e
--- /dev/null
+++ b/assets/javascript/anchor-js/banner.js
@@ -0,0 +1,17 @@
+const fs = require('fs');
+const pkg = require('./package.json');
+const filename = 'anchor.min.js';
+const script = fs.readFileSync(filename);
+const padStart = str => ('0' + str).slice(-2)
+const dateObj = new Date;
+const date = `${dateObj.getFullYear()}-${padStart(dateObj.getMonth() + 1)}-${padStart(dateObj.getDate())}`;
+const banner = `/**
+ * AnchorJS - v${pkg.version} - ${date}
+ * ${pkg.homepage}
+ * Copyright (c) ${dateObj.getFullYear()} Bryan Braun; Licensed ${pkg.license}
+ */
+`;
+
+if (script.slice(0, 3) != '/**') {
+  fs.writeFileSync(filename, banner + script);
+}
diff --git a/assets/javascript/anchor-js/docs/anchor.js b/assets/javascript/anchor-js/docs/anchor.js
new file mode 100644
index 0000000..800ccf1
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/anchor.js
@@ -0,0 +1,334 @@
+/* eslint-env amd, node */
+
+// https://github.com/umdjs/umd/blob/master/templates/returnExports.js
+(function (root, factory) {
+  'use strict';
+
+  if (typeof define === 'function' && define.amd) {
+    // AMD. Register as an anonymous module.
+    define([], factory);
+  } else if (typeof module === 'object' && module.exports) {
+    // Node. Does not work with strict CommonJS, but
+    // only CommonJS-like environments that support module.exports,
+    // like Node.
+    module.exports = factory();
+  } else {
+    // Browser globals (root is window)
+    root.AnchorJS = factory();
+    root.anchors = new root.AnchorJS();
+  }
+}(this, function () {
+  'use strict';
+
+  function AnchorJS(options) {
+    this.options = options || {};
+    this.elements = [];
+
+    /**
+     * Assigns options to the internal options object, and provides defaults.
+     * @param {Object} opts - Options object
+     */
+    function _applyRemainingDefaultOptions(opts) {
+      opts.icon = opts.hasOwnProperty('icon') ? opts.icon : '\ue9cb'; // Accepts characters (and also URLs?), like  '#', '¶', '❡', or '§'.
+      opts.visible = opts.hasOwnProperty('visible') ? opts.visible : 'hover'; // Also accepts 'always' & 'touch'
+      opts.placement = opts.hasOwnProperty('placement') ? opts.placement : 'right'; // Also accepts 'left'
+      opts.class = opts.hasOwnProperty('class') ? opts.class : ''; // Accepts any class name.
+      // Using Math.floor here will ensure the value is Number-cast and an integer.
+      opts.truncate = opts.hasOwnProperty('truncate') ? Math.floor(opts.truncate) : 64; // Accepts any value that can be typecast to a number.
+    }
+
+    _applyRemainingDefaultOptions(this.options);
+
+    /**
+     * Checks to see if this device supports touch. Uses criteria pulled from Modernizr:
+     * https://github.com/Modernizr/Modernizr/blob/da22eb27631fc4957f67607fe6042e85c0a84656/feature-detects/touchevents.js#L40
+     * @return {Boolean} - true if the current device supports touch.
+     */
+    this.isTouchDevice = function() {
+      return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
+    };
+
+    /**
+     * Add anchor links to page elements.
+     * @param  {String|Array|Nodelist} selector - A CSS selector for targeting the elements you wish to add anchor links
+     *                                            to. Also accepts an array or nodeList containing the relavant elements.
+     * @return {this}                           - The AnchorJS object
+     */
+    this.add = function(selector) {
+      var elements,
+          elsWithIds,
+          idList,
+          elementID,
+          i,
+          index,
+          count,
+          tidyText,
+          newTidyText,
+          readableID,
+          anchor,
+          visibleOptionToUse,
+          indexesToDrop = [];
+
+      // We reapply options here because somebody may have overwritten the default options object when setting options.
+      // For example, this overwrites all options but visible:
+      //
+      // anchors.options = { visible: 'always'; }
+      _applyRemainingDefaultOptions(this.options);
+
+      visibleOptionToUse = this.options.visible;
+      if (visibleOptionToUse === 'touch') {
+        visibleOptionToUse = this.isTouchDevice() ? 'always' : 'hover';
+      }
+
+      // Provide a sensible default selector, if none is given.
+      if (!selector) {
+        selector = 'h2, h3, h4, h5, h6';
+      }
+
+      elements = _getElements(selector);
+
+      if (elements.length === 0) {
+        return this;
+      }
+
+      _addBaselineStyles();
+
+      // We produce a list of existing IDs so we don't generate a duplicate.
+      elsWithIds = document.querySelectorAll('[id]');
+      idList = [].map.call(elsWithIds, function assign(el) {
+        return el.id;
+      });
+
+      for (i = 0; i < elements.length; i++) {
+        if (this.hasAnchorJSLink(elements[i])) {
+          indexesToDrop.push(i);
+          continue;
+        }
+
+        if (elements[i].hasAttribute('id')) {
+          elementID = elements[i].getAttribute('id');
+        } else if (elements[i].hasAttribute('data-anchor-id')) {
+          elementID = elements[i].getAttribute('data-anchor-id');
+        } else {
+          tidyText = this.urlify(elements[i].textContent);
+
+          // Compare our generated ID to existing IDs (and increment it if needed)
+          // before we add it to the page.
+          newTidyText = tidyText;
+          count = 0;
+          do {
+            if (index !== undefined) {
+              newTidyText = tidyText + '-' + count;
+            }
+
+            index = idList.indexOf(newTidyText);
+            count += 1;
+          } while (index !== -1);
+          index = undefined;
+          idList.push(newTidyText);
+
+          elements[i].setAttribute('id', newTidyText);
+          elementID = newTidyText;
+        }
+
+        readableID = elementID.replace(/-/g, ' ');
+
+        // The following code builds the following DOM structure in a more effiecient (albeit opaque) way.
+        // '<a class="anchorjs-link ' + this.options.class + '" href="#' + elementID + '" aria-label="Anchor link for: ' + readableID + '" data-anchorjs-icon="' + this.options.icon + '"></a>';
+        anchor = document.createElement('a');
+        anchor.className = 'anchorjs-link ' + this.options.class;
+        anchor.href = '#' + elementID;
+        anchor.setAttribute('aria-label', 'Anchor link for: ' + readableID);
+        anchor.setAttribute('data-anchorjs-icon', this.options.icon);
+
+        if (visibleOptionToUse === 'always') {
+          anchor.style.opacity = '1';
+        }
+
+        if (this.options.icon === '\ue9cb') {
+          anchor.style.font = '1em/1 anchorjs-icons';
+
+          // We set lineHeight = 1 here because the `anchorjs-icons` font family could otherwise affect the
+          // height of the heading. This isn't the case for icons with `placement: left`, so we restore
+          // line-height: inherit in that case, ensuring they remain positioned correctly. For more info,
+          // see https://github.com/bryanbraun/anchorjs/issues/39.
+          if (this.options.placement === 'left') {
+            anchor.style.lineHeight = 'inherit';
+          }
+        }
+
+        if (this.options.placement === 'left') {
+          anchor.style.position = 'absolute';
+          anchor.style.marginLeft = '-1em';
+          anchor.style.paddingRight = '0.5em';
+          elements[i].insertBefore(anchor, elements[i].firstChild);
+        } else { // if the option provided is `right` (or anything else).
+          anchor.style.paddingLeft = '0.375em';
+          elements[i].appendChild(anchor);
+        }
+      }
+
+      for (i = 0; i < indexesToDrop.length; i++) {
+        elements.splice(indexesToDrop[i] - i, 1);
+      }
+      this.elements = this.elements.concat(elements);
+
+      return this;
+    };
+
+    /**
+     * Removes all anchorjs-links from elements targed by the selector.
+     * @param  {String|Array|Nodelist} selector - A CSS selector string targeting elements with anchor links,
+     *                                            OR a nodeList / array containing the DOM elements.
+     * @return {this}                           - The AnchorJS object
+     */
+    this.remove = function(selector) {
+      var index,
+          domAnchor,
+          elements = _getElements(selector);
+
+      for (var i = 0; i < elements.length; i++) {
+        domAnchor = elements[i].querySelector('.anchorjs-link');
+        if (domAnchor) {
+          // Drop the element from our main list, if it's in there.
+          index = this.elements.indexOf(elements[i]);
+          if (index !== -1) {
+            this.elements.splice(index, 1);
+          }
+          // Remove the anchor from the DOM.
+          elements[i].removeChild(domAnchor);
+        }
+      }
+      return this;
+    };
+
+    /**
+     * Removes all anchorjs links. Mostly used for tests.
+     */
+    this.removeAll = function() {
+      this.remove(this.elements);
+    };
+
+    /**
+     * Urlify - Refine text so it makes a good ID.
+     *
+     * To do this, we remove apostrophes, replace nonsafe characters with hyphens,
+     * remove extra hyphens, truncate, trim hyphens, and make lowercase.
+     *
+     * @param  {String} text - Any text. Usually pulled from the webpage element we are linking to.
+     * @return {String}      - hyphen-delimited text for use in IDs and URLs.
+     */
+    this.urlify = function(text) {
+      // Regex for finding the nonsafe URL characters (many need escaping): & +$,:;=?@"#{}|^~[`%!'<>]./()*\
+      var nonsafeChars = /[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\]/g,
+          urlText;
+
+      // The reason we include this _applyRemainingDefaultOptions is so urlify can be called independently,
+      // even after setting options. This can be useful for tests or other applications.
+      if (!this.options.truncate) {
+        _applyRemainingDefaultOptions(this.options);
+      }
+
+      // Note: we trim hyphens after truncating because truncating can cause dangling hyphens.
+      // Example string:                                  // " ⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+      urlText = text.trim()                               // "⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+                    .replace(/\'/gi, '')                  // "⚡⚡ Dont forget: URL fragments should be i18n-friendly, hyphenated, short, and clean."
+                    .replace(nonsafeChars, '-')           // "⚡⚡-Dont-forget--URL-fragments-should-be-i18n-friendly--hyphenated--short--and-clean-"
+                    .replace(/-{2,}/g, '-')               // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-short-and-clean-"
+                    .substring(0, this.options.truncate)  // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-"
+                    .replace(/^-+|-+$/gm, '')             // "⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated"
+                    .toLowerCase();                       // "⚡⚡-dont-forget-url-fragments-should-be-i18n-friendly-hyphenated"
+
+      return urlText;
+    };
+
+    /**
+     * Determines if this element already has an AnchorJS link on it.
+     * Uses this technique: http://stackoverflow.com/a/5898748/1154642
+     * @param    {HTMLElemnt}  el - a DOM node
+     * @return   {Boolean}     true/false
+     */
+    this.hasAnchorJSLink = function(el) {
+      var hasLeftAnchor = el.firstChild && ((' ' + el.firstChild.className + ' ').indexOf(' anchorjs-link ') > -1),
+          hasRightAnchor = el.lastChild && ((' ' + el.lastChild.className + ' ').indexOf(' anchorjs-link ') > -1);
+
+      return hasLeftAnchor || hasRightAnchor || false;
+    };
+
+    /**
+     * Turns a selector, nodeList, or array of elements into an array of elements (so we can use array methods).
+     * It also throws errors on any other inputs. Used to handle inputs to .add and .remove.
+     * @param  {String|Array|Nodelist} input - A CSS selector string targeting elements with anchor links,
+     *                                         OR a nodeList / array containing the DOM elements.
+     * @return {Array} - An array containing the elements we want.
+     */
+    function _getElements(input) {
+      var elements;
+      if (typeof input === 'string' || input instanceof String) {
+        // See https://davidwalsh.name/nodelist-array for the technique transforming nodeList -> Array.
+        elements = [].slice.call(document.querySelectorAll(input));
+      // I checked the 'input instanceof NodeList' test in IE9 and modern browsers and it worked for me.
+      } else if (Array.isArray(input) || input instanceof NodeList) {
+        elements = [].slice.call(input);
+      } else {
+        throw new Error('The selector provided to AnchorJS was invalid.');
+      }
+      return elements;
+    }
+
+    /**
+     * _addBaselineStyles
+     * Adds baseline styles to the page, used by all AnchorJS links irregardless of configuration.
+     */
+    function _addBaselineStyles() {
+      // We don't want to add global baseline styles if they've been added before.
+      if (document.head.querySelector('style.anchorjs') !== null) {
+        return;
+      }
+
+      var style = document.createElement('style'),
+          linkRule =
+          ' .anchorjs-link {'                       +
+          '   opacity: 0;'                          +
+          '   text-decoration: none;'               +
+          '   -webkit-font-smoothing: antialiased;' +
+          '   -moz-osx-font-smoothing: grayscale;'  +
+          ' }',
+          hoverRule =
+          ' *:hover > .anchorjs-link,'              +
+          ' .anchorjs-link:focus  {'                +
+          '   opacity: 1;'                          +
+          ' }',
+          anchorjsLinkFontFace =
+          ' @font-face {'                           +
+          '   font-family: "anchorjs-icons";'       + // Icon from icomoon; 10px wide & 10px tall; 2 empty below & 4 above
+          '   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAM [...]
+          ' }',
+          pseudoElContent =
+          ' [data-anchorjs-icon]::after {'          +
+          '   content: attr(data-anchorjs-icon);'   +
+          ' }',
+          firstStyleEl;
+
+      style.className = 'anchorjs';
+      style.appendChild(document.createTextNode('')); // Necessary for Webkit.
+
+      // We place it in the head with the other style tags, if possible, so as to
+      // not look out of place. We insert before the others so these styles can be
+      // overridden if necessary.
+      firstStyleEl = document.head.querySelector('[rel="stylesheet"], style');
+      if (firstStyleEl === undefined) {
+        document.head.appendChild(style);
+      } else {
+        document.head.insertBefore(style, firstStyleEl);
+      }
+
+      style.sheet.insertRule(linkRule, style.sheet.cssRules.length);
+      style.sheet.insertRule(hoverRule, style.sheet.cssRules.length);
+      style.sheet.insertRule(pseudoElContent, style.sheet.cssRules.length);
+      style.sheet.insertRule(anchorjsLinkFontFace, style.sheet.cssRules.length);
+    }
+  }
+
+  return AnchorJS;
+}));
diff --git a/assets/javascript/anchor-js/docs/favicon.ico b/assets/javascript/anchor-js/docs/favicon.ico
new file mode 100644
index 0000000..2a6c767
Binary files /dev/null and b/assets/javascript/anchor-js/docs/favicon.ico differ
diff --git a/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.eot b/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.eot
new file mode 100755
index 0000000..350ea35
Binary files /dev/null and b/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.eot differ
diff --git a/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.svg b/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.svg
new file mode 100755
index 0000000..5e14922
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="anchorjs-extras" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="960" descent="-64" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" d="" horiz-adv-x="512" />
+<glyph unicode="&#xf0c1;" d="M832 182.858q0 22.857-16 38.857l-118.857 118.857q-16 16-38.857 16-24 0-41.143-18.286 1.714-1.714 10.857-10.571t12.286-12.286 8.571-10.857 7.429-14.571 2-15.714q0-22.857-16-38.857t-38.857-16q-8.571 0-15.714 2t-14.571 7.429-10.857 8.571-12.286 12.286-10.571 10.857q-18.857-17.714-18.857-41.714 0-22.857 16-38.857l117.714-118.286q15.429-15.429 38.857-15.429 22.857 0 38.857 14.857l84 83.429q16 16 16 38.286zM430.286 585.715q0 22.857-16 38.857l-117.714 118.286q-16 16 [...]
+</font></defs></svg>
\ No newline at end of file
diff --git a/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.ttf b/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.ttf
new file mode 100755
index 0000000..1971eb1
Binary files /dev/null and b/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.ttf differ
diff --git a/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.woff b/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.woff
new file mode 100755
index 0000000..fb3b104
Binary files /dev/null and b/assets/javascript/anchor-js/docs/fonts/anchorjs-extras.woff differ
diff --git a/assets/javascript/anchor-js/docs/fonts/fonts.css b/assets/javascript/anchor-js/docs/fonts/fonts.css
new file mode 100755
index 0000000..c0b57b8
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/fonts/fonts.css
@@ -0,0 +1,24 @@
+@font-face {
+	font-family: 'anchorjs-extras';
+	src:url('anchorjs-extras.eot?-qcq09q');
+	src:url('anchorjs-extras.eot?#iefix-qcq09q') format('embedded-opentype'),
+		url('anchorjs-extras.woff?-qcq09q') format('woff'),
+		url('anchorjs-extras.ttf?-qcq09q') format('truetype'),
+		url('anchorjs-extras.svg?-qcq09q#anchorjs-extras') format('svg');
+	font-weight: normal;
+	font-style: normal;
+}
+
+[class^="ajs-"], [class*=" ajs-"] {
+	font-family: 'anchorjs-extras';
+	speak: none;
+	font-style: normal;
+	font-weight: normal;
+	font-variant: normal;
+	text-transform: none;
+	line-height: 1;
+
+	/* Better Font Rendering =========== */
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+}
diff --git a/assets/javascript/anchor-js/docs/grunticon/grunticon.loader.js b/assets/javascript/anchor-js/docs/grunticon/grunticon.loader.js
new file mode 100755
index 0000000..de17974
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/grunticon/grunticon.loader.js
@@ -0,0 +1,3 @@
+/*! grunt-grunticon Stylesheet Loader - v2.1.2 | https://github.com/filamentgroup/grunticon | (c) 2015 Scott Jehl, Filament Group, Inc. | MIT license. */
+
+(function(e){function t(t,n,r,o){"use strict";function a(){for(var e,n=0;u.length>n;n++)u[n].href&&u[n].href.indexOf(t)>-1&&(e=!0);e?i.media=r||"all":setTimeout(a)}var i=e.document.createElement("link"),l=n||e.document.getElementsByTagName("script")[0],u=e.document.styleSheets;return i.rel="stylesheet",i.href=t,i.media="only x",i.onload=o||null,l.parentNode.insertBefore(i,l),a(),i}var n=function(r,o){"use strict";if(r&&3===r.length){var a=e.navigator,i=e.Image,l=!(!document.createElement [...]
\ No newline at end of file
diff --git a/assets/javascript/anchor-js/docs/grunticon/icons.data.png.css b/assets/javascript/anchor-js/docs/grunticon/icons.data.png.css
new file mode 100755
index 0000000..f0bab86
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/grunticon/icons.data.png.css
@@ -0,0 +1,5 @@
+
+.icon-grunticon-link {
+	background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABuklEQVQ4T52U4VnCMBiE71hAnECcgLCBblBYAJxANgAmEDfABWg3kA2IE6ATWBbo+XwplLaWguZnm765fncX4h9LkesC6DHxvv45/8JT5CIQLyB74TspBbFChgUTn9qjq4EauhXIMYA9pBWIFKId0IfkITwa9CpgARM+ID0c1QSRIzcHOIP0ythPLwLbYMdxaTjwgO4Y+9uLwKAicjaztKysPPtCZab7VqAi9wBSkPZNjp4UuiXIZ2RqVqiRm0KYgbR45Csf/FMdHCJE7EDuud72fiksufkFaIkMnyBM6QSSDm6G/B1g7yAdMg2Z+KQCbHUzcg4dbiwy5mYFJr0x9pNKDptgGrolgHFZ1S9lJVgBDA3oMEYtZzqpEogEQgLCQZiEttRgJ+Bo8A [...]
+	background-repeat: no-repeat;
+}
\ No newline at end of file
diff --git a/assets/javascript/anchor-js/docs/grunticon/icons.data.svg.css b/assets/javascript/anchor-js/docs/grunticon/icons.data.svg.css
new file mode 100755
index 0000000..ea5bd00
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/grunticon/icons.data.svg.css
@@ -0,0 +1,5 @@
+
+.icon-grunticon-link {
+	background-image: url('data:image/svg+xml;charset=US-ASCII,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C%21--%20Generated%20by%20IcoMoon.io%20--%3E%0A%3C%21DOCTYPE%20svg%20PUBLIC%20%22-//W3C//DTD%20SVG%201.1//EN%22%20%22http%3A//www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200% [...]
+	background-repeat: no-repeat;
+}
\ No newline at end of file
diff --git a/assets/javascript/anchor-js/docs/grunticon/icons.fallback.css b/assets/javascript/anchor-js/docs/grunticon/icons.fallback.css
new file mode 100755
index 0000000..832f36f
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/grunticon/icons.fallback.css
@@ -0,0 +1,5 @@
+
+.icon-grunticon-link {
+	background-image: url('png/grunticon-link.png');
+	background-repeat: no-repeat;
+}
\ No newline at end of file
diff --git a/assets/javascript/anchor-js/docs/grunticon/png/grunticon-link.png b/assets/javascript/anchor-js/docs/grunticon/png/grunticon-link.png
new file mode 100755
index 0000000..eefa53f
Binary files /dev/null and b/assets/javascript/anchor-js/docs/grunticon/png/grunticon-link.png differ
diff --git a/assets/javascript/anchor-js/docs/img/anchoring-links.png b/assets/javascript/anchor-js/docs/img/anchoring-links.png
new file mode 100644
index 0000000..9d28abc
Binary files /dev/null and b/assets/javascript/anchor-js/docs/img/anchoring-links.png differ
diff --git a/assets/javascript/anchor-js/docs/img/anchorjs_logo.png b/assets/javascript/anchor-js/docs/img/anchorjs_logo.png
new file mode 100644
index 0000000..06c8b4d
Binary files /dev/null and b/assets/javascript/anchor-js/docs/img/anchorjs_logo.png differ
diff --git a/assets/javascript/anchor-js/docs/img/anchorlinks2.png b/assets/javascript/anchor-js/docs/img/anchorlinks2.png
new file mode 100644
index 0000000..9118b1e
Binary files /dev/null and b/assets/javascript/anchor-js/docs/img/anchorlinks2.png differ
diff --git a/assets/javascript/anchor-js/docs/img/gh-link.svg b/assets/javascript/anchor-js/docs/img/gh-link.svg
new file mode 100644
index 0000000..24abb41
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/img/gh-link.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="24px" height="12px" viewBox="0 0 24 12" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="link" fill="#FF5231">
+            <path d="M18,0 L14.765625,0 C15.890625,0.75 16.9453125,2.0859375 17.2734375,3 L17.9765625,3 C19.5,3 20.9765625,4.5 20.9765625,6 C20.9765625,7.5 19.453125,9 17.9765625,9 L13.4765625,9 C12,9 10.4765625,7.5 10.4765625,6 C10.4765625,5.4609375 10.640625,4.9453125 10.8984375,4.5 L7.6875,4.5 C7.5703125,4.9921875 7.5,5.484375 7.5,6 C7.5,9 10.4765625,12 13.4765625,12 L18,12 C21,12 24,9 24,6 C24,3 21,0 18,0 L18,0 Z M6.7265625,9 L6.0234375,9 C4.5,9 3.0234375,7.5 3.0234375,6 C3.0234375,4 [...]
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/assets/javascript/anchor-js/docs/img/gh_link.svg b/assets/javascript/anchor-js/docs/img/gh_link.svg
new file mode 100644
index 0000000..8e43abb
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/img/gh_link.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="20px" height="10px" viewBox="0 0 20 10" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="link" fill="#FF5231">
+            <path d="M15,0 L12.3046875,0 C13.2421875,0.625 14.1210938,1.73828125 14.3945312,2.5 L14.9804688,2.5 C16.25,2.5 17.4804688,3.75 17.4804688,5 C17.4804688,6.25 16.2109375,7.5 14.9804688,7.5 L11.2304688,7.5 C10,7.5 8.73046875,6.25 8.73046875,5 C8.73046875,4.55078125 8.8671875,4.12109375 9.08203125,3.75 L6.40625,3.75 C6.30859375,4.16015625 6.25,4.5703125 6.25,5 C6.25,7.5 8.73046875,10 11.2304688,10 L15,10 C17.5,10 20,7.5 20,5 C20,2.5 17.5,0 15,0 L15,0 Z M5.60546875,7.5 L5.01953125 [...]
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/assets/javascript/anchor-js/docs/img/hyperlink.svg b/assets/javascript/anchor-js/docs/img/hyperlink.svg
new file mode 100644
index 0000000..3a8745a
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/img/hyperlink.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="hyperlink" fill="#FF5231">
+            <path d="M23.5548327,6.22263035 L17.7774163,0.445167315 C17.2460545,-0.0861478599 16.3834086,-0.0861478599 15.8520934,0.445167315 L10.0747237,6.22263035 C9.5419144,6.75394553 9.5419144,7.61659144 10.0747237,8.14940078 L11.0366381,9.11131518 L16.8140545,3.33389883 L20.6661479,7.18599222 L14.8887315,12.9634086 L15.8520934,13.9267704 C16.3834086,14.4581323 17.2460545,14.4581323 17.7774163,13.9267704 L23.554786,8.14940078 C24.0861479,7.61659144 24.0861479,6.75389883 23.5548327,6. [...]
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/assets/javascript/anchor-js/docs/img/link.svg b/assets/javascript/anchor-js/docs/img/link.svg
new file mode 100644
index 0000000..5aaef2f
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/img/link.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="512" height="512" viewBox="0 0 512 512"><g id="icomoon-ignore">
+</g>
+<path d="M384 128h-69c24 16 46.5 44.5 53.5 64h15c32.5 0 64 32 64 64s-32.5 64-64 64h-96c-31.5 0-64-32-64-64 0-11.5 3.5-22.5 9-32h-68.5c-2.5 10.5-4 21-4 32 0 64 63.5 128 127.5 128s32.5 0 96.5 0 128-64 128-128-64-128-128-128zM143.5 320h-15c-32.5 0-64-32-64-64s32.5-64 64-64h96c31.5 0 64 32 64 64 0 11.5-3.5 22.5-9 32h68.5c2.5-10.5 4-21 4-32 0-64-63.5-128-127.5-128s-32.5 0-96.5 0-128 64-128 128 64 128 128 128h69c-24-16-46.5-44.5-53.5-64z"></path>
+</svg>
diff --git a/assets/javascript/anchor-js/docs/img/mini-logo.png b/assets/javascript/anchor-js/docs/img/mini-logo.png
new file mode 100644
index 0000000..3806c67
Binary files /dev/null and b/assets/javascript/anchor-js/docs/img/mini-logo.png differ
diff --git a/assets/javascript/anchor-js/docs/img/primer-md.png b/assets/javascript/anchor-js/docs/img/primer-md.png
new file mode 100644
index 0000000..1db2cb6
Binary files /dev/null and b/assets/javascript/anchor-js/docs/img/primer-md.png differ
diff --git a/assets/javascript/anchor-js/docs/scripts.js b/assets/javascript/anchor-js/docs/scripts.js
new file mode 100644
index 0000000..c283e73
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/scripts.js
@@ -0,0 +1,12 @@
+$(document).ready(function() {
+  var preEls = $('pre');
+
+  $('.example-code-link').click(function(e) {
+    e.preventDefault();
+    $(this).parent().next().slideToggle();
+  });
+
+  // Dynamically add PrismJS class for syntax highlight
+  preEls.filter('[class*="js"]').find('code').addClass('language-javascript');
+  preEls.filter('.css').find('code').addClass('language-css');
+});
diff --git a/assets/javascript/anchor-js/docs/styles.css b/assets/javascript/anchor-js/docs/styles.css
new file mode 100644
index 0000000..b4b71af
--- /dev/null
+++ b/assets/javascript/anchor-js/docs/styles.css
@@ -0,0 +1,493 @@
+/*//// Base Styles ////*/
+
+div,
+article,
+section,
+main,
+footer,
+header,
+form,
+fieldset,
+pre,
+code,
+p,
+input[type="text"],
+input[type="tel"],
+input[type="email"],
+input[type="url"],
+input[type="password"] {
+  box-sizing: border-box;
+}
+
+body {
+  font-family: 'Source Sans Pro', sans-serif;
+  background-color: rgb(162, 255, 224);
+  color: #262626;
+  margin: 0 1.5em;
+}
+
+h1 {
+  font-size: 2.2em;
+}
+h2 {
+  font-size: 2.0em;
+  margin-top: 1.5em;
+}
+h3 {
+  font-size: 1.8em;
+}
+
+table {
+  border-collapse: collapse;
+  background: white;
+  box-shadow: 0px 0px 10px -4px #666;
+  border: 1px solid white;
+}
+
+table td,
+table th {
+  padding: 0.5em;
+  border: 1px solid #ddd;
+}
+
+img {
+  max-width: 100%;
+}
+
+a {
+  color: black;
+  text-decoration: underline;
+}
+
+/*//// Code Snippet Styles  ////*/
+
+code,
+samp,
+kbd {
+  background-color: #141414;
+  color: #f7f7f7;
+  font-family: "Inconsolata", "Menlo", "Consolas", monospace;
+  font-size: 0.9em;
+  padding: 2px 6px;
+  text-align: left;
+  border-radius: 3px;
+}
+
+pre {
+  background-color: #141414;
+  color: #f7f7f7;
+  font-family: "Inconsolata", "Menlo", "Consolas", monospace;
+  font-size: 0.9em;
+  line-height: 1.2em;
+  margin: 0;
+  overflow: auto;
+  padding: 1em;
+  border-radius: 3px;
+}
+
+.examples pre,
+.hover-examples pre,
+.preview-examples pre {
+  padding-left: 2.75em;
+  border-radius: 0;
+}
+
+/* Override 'code' css rules if using 'pre > code' markup. */
+pre > code {
+  font-size: 1em;
+  padding: 0px;
+}
+
+/* for IE7 and IE6 */
+*:first-child+html pre {
+  overflow: visible;
+  overflow-x: auto;
+  overflow-y: hidden;
+  padding-bottom: 2em;
+}
+
+* html pre {
+  overflow: visible;
+  overflow-x: auto;
+  padding-bottom: 2em;
+}
+
+/* Reset PrismJS' border styles */
+.main pre[class*="language-"],
+.example pre[class*="language-"] {
+  border: 0;
+  border-radius: 3px;
+}
+
+/*//// Page Styles ////*/
+.header {
+  max-width: 720px;
+  margin: 0 auto;
+  padding-top: 1.5em;
+}
+
+.page-title {
+  text-align: center;
+}
+
+.logo {
+  display: block;
+  margin: 0 auto;
+}
+
+.desc {
+  padding: 1em 0;
+  text-align: center;
+}
+.maindesc {
+  font-size: 30px;
+  margin-bottom: 1em;
+}
+.subdesc {
+  font-size: 15px;
+}
+
+.more-examples {
+  text-align: right;
+  font-size: 12px;
+  margin: 0 5px 0 0;
+}
+
+.main {
+  line-height: 1.4;
+  margin: 0 auto;
+  max-width: 720px;
+}
+.used-by {
+  text-align: center;
+  position: relative;
+  padding: 1em 0;
+}
+.used-by-label {
+  font-size: 20px;
+  text-align: center;
+  font-weight: normal;
+}
+.used-by img {
+  border-radius: 8px;
+  opacity: 1;
+  margin: 0px 10px;
+}
+
+.anchorlink-examples {
+  float: right;
+  margin: 0 0 1em 1em;
+  box-shadow: 0px 0px 10px -3px #666;
+}
+
+.options-table {
+  width: 100%;
+  margin: 1em 0;
+}
+
+.minicol {
+  width: 62px;
+}
+
+.footer {
+  text-align: center;
+  color: #777;
+}
+.footer a {
+  color: #777;
+}
+
+/*///////////// Examples /////////////*/
+
+.examples,
+.hover-examples,
+.preview-examples {
+  max-width: 720px;
+  margin: 0 auto;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-flex-direction: row;
+  flex-direction: row;
+  -webkit-justify-content: center;
+  justify-content: center;
+  -webkit-flex-wrap: wrap;
+  flex-wrap: wrap;
+  -webkit-align-content: flex-end;
+  align-content: flex-end;
+}
+
+.example {
+  max-width: 350px;
+  min-height: 160px;
+  margin: 5px;
+}
+.example-label {
+  font-size: 12px;
+  color: #777;
+  display: none;
+}
+.example-content {
+  padding: 0 0 0 3.5em;
+  overflow: hidden;
+  position: relative;
+  background: #fff;
+  box-shadow: 0px 0px 10px -3px #666;
+}
+
+.example-code-link {
+  width: 16px;
+  position: absolute;
+  top: 8px;
+  right: 8px;
+  font-family: Courier monospace;
+  color: #aaa;
+  text-decoration: none;
+}
+
+.example-code-link:hover:after,
+.example-code-link:focus:after {
+  left: -50px;
+  opacity: 1;
+  -webkit-transition: all 0.25s ease-in;
+  transition: all 0.25s ease-in;
+}
+
+.example-code-link:after {
+  content: "SOURCE";
+  font-family: Helvetica, Arial, sans-serif;
+  font-size: 10px;
+  line-height: 1;
+  display: block;
+  position: absolute;
+  text-transform: uppercase;
+  top: 7px;
+  left: -45px;
+  opacity: 0;
+  -webkit-transition: all 0.25s ease-in;
+  transition: all 0.25s ease-in;
+}
+
+.example-code {
+  display: none;
+}
+
+.css {
+  border-top: 1px solid #666;
+}
+
+.css,
+.js {
+  position: relative;
+}
+
+.css::before,
+.js::before {
+  left: 0;
+  top: 0;
+  padding: 1px 4px;
+  color: white;
+  background: #FF5231;
+  position: absolute;
+  font-size: 11px;
+  text-transform: uppercase;
+}
+
+.css::before {
+  content: 'css';
+}
+.js::before {
+  content: 'js';
+}
+
+.example-content > p {
+  width: 310px;
+}
+
+.anchorjs-link {
+  color: #FF5231;
+}
+
+/*///// Styles within Examples /////*/
+.examples .example:nth-child(3) .anchorjs-link,
+.preview-examples .example:nth-child(2) .anchorjs-link {
+  font-family: Helvetica, Arial, sans-serif;
+}
+
+.examples .example:nth-child(7) .anchorjs-link {
+  font-weight: 200;
+  margin-left: 1em;
+  padding-right: 0.375em;
+  font-size: 0.5em;
+  border: 1px dashed #FFBAAC;
+  vertical-align: middle;
+}
+
+.examples .example:nth-child(8) .anchorjs-link {
+  width: 14px;
+  height: 32px;
+  margin-top: 6px;
+  background: url('img/mini-logo.png') no-repeat;
+  margin-left: -1.25em !important;
+}
+
+.examples .example:nth-child(9) .anchorjs-link:after {
+  margin-left: 7px;
+  margin-top: -4px;
+  display: block;
+}
+
+.examples .example:nth-child(9) .anchorjs-link {
+  background-color: #FF5231;
+  height: 32px;
+  width: 18px;
+  border-radius: 50%;
+  display: inline-block;
+  color: white;
+  margin-top: 4px;
+  margin-left: -1.4em !important;
+}
+
+.examples .example:nth-child(11) .anchorjs-link {
+  display: inline-block;
+  background: url('img/hyperlink.svg') no-repeat;
+  margin-left: 8px;
+  width: 14px;
+  height: 24px;
+}
+
+.examples .example:nth-child(12) .anchorjs-link {
+  background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjIwcHgiIGhlaWdodD0iMTBweCIgdmlld0JveD0iMCAwIDIwIDEwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9ImxpbmsiIGZpbGw9IiNGRjUyMzE [...]
+  margin-top: 15px;
+  height: 16px;
+  width: 20px;
+}
+
+.examples .example:nth-child(13) .anchorjs-link {
+  border-color: #FF5231 #FF5231 transparent;
+  border-width: 15px 7px 6px;
+  border-style: solid;
+  margin-top: 10px;
+  font-size: 22px;
+  padding-right: 0 !important;
+}
+
+.examples .example:nth-child(14) .anchorjs-link {
+  margin-left: -1.8em !important;
+}
+
+.examples .example:nth-child(15) .anchorjs-link {
+  display: inline-block;
+  width: 0.375em;
+  height: 20px;
+  margin-left: 0.375em;
+}
+
+/* Hover Examples */
+
+.hover-examples .example:nth-child(2) *:hover > .anchorjs-link,
+.hover-examples .example:nth-child(2) .anchorjs-link:focus  {
+  transition: color .25s linear;
+}
+.hover-examples .example:nth-child(2) .anchorjs-link:hover {
+  color: #2500AD;
+}
+
+.hover-examples .example:nth-child(3) .anchorjs-link {
+    transition: all .25s linear;
+}
+.hover-examples .example:nth-child(3) *:hover > .anchorjs-link,
+.hover-examples .example:nth-child(3) .anchorjs-link:focus  {
+  margin-left: -1.125em !important;
+}
+
+
+.hover-examples .example:nth-child(4) h3 {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+}
+.hover-examples .example:nth-child(4) .anchorjs-link {
+  background: #FF5231;
+  color: white;
+  font-family: Helvetica, Arial, sans-serif;
+  font-weight: 200;
+  font-size: 1rem;
+  position: relative;
+  top: 2px;
+  -webkit-box-flex: 1;
+  -webkit-flex: 1;
+      -ms-flex: 1;
+          flex: 1;
+  margin-right: -6%;
+  padding-right: 6%;
+  padding-left: 42px !important;
+  height: 36px;
+  line-height: 38px;
+  -webkit-transition: all 0.5s ease;
+  transition: all 0.5s ease;
+  -webkit-transform: translateX(100%);
+      -ms-transform: translateX(100%);
+          transform: translateX(100%);
+}
+.hover-examples .example:nth-child(4) .anchorjs-link::before {
+  position: absolute;
+  left: 0;
+  display: block;
+  width: 0;
+  height: 0;
+  border: 18px solid #fff;
+  border-right-color: #FF5231;
+  content: '';
+  transition: all 0.5s ease;
+}
+.hover-examples .example:nth-child(4) *:hover > .anchorjs-link,
+.hover-examples .example:nth-child(4) .anchorjs-link:focus {
+  -webkit-transform: translateX(0);
+      -ms-transform: translateX(0);
+
+  transform: translateX(0);
+}
+.hover-examples .example:nth-child(4) *:hover > .anchorjs-link:hover,
+.hover-examples .example:nth-child(4) .anchorjs-link:focus {
+  background: #FF806A;
+}
+.hover-examples .example:nth-child(4) *:hover > .anchorjs-link:hover::before,
+.hover-examples .example:nth-child(4) .anchorjs-link:focus {
+  border-right-color: #FF806A;
+}
+
+.hover-examples .example:nth-child(5) .anchorjs-link:after {
+  display: inline-block;
+  transition: opacity .25s linear;
+  font-family: Verdana, sans-serif;
+  font-size: 0.75ex;
+  font-weight: 100;
+  padding: 0.5ex 1.5ex;
+  background: #444;
+  color: #fff;
+  border-radius: 0.6ex;
+  vertical-align: 0.8ex;
+}
+.hover-examples .example:nth-child(5) .anchorjs-link:before {
+  content: '';
+  display: inline-block;
+  border-top: 0.3ex solid transparent;
+  border-right: 0.5ex solid #444;
+  border-bottom: 0.3ex solid transparent;
+  vertical-align: 0.35ex;
+}
+.hover-examples .example:nth-child(5) .anchorjs-link:hover:after {
+  background-color: #666;
+}
+.hover-examples .example:nth-child(5) .anchorjs-link:hover:before {
+  border-right-color: #666;
+}
+
+/*////// Utilities ////////*/
+/* Clearfix */
+.group:after {
+  content: "";
+  display: table;
+  clear: both;
+}
diff --git a/blog/2014/05/03/accumulo-classloader.html b/blog/2014/05/03/accumulo-classloader.html
index 71dee0a..3c3be46 100644
--- a/blog/2014/05/03/accumulo-classloader.html
+++ b/blog/2014/05/03/accumulo-classloader.html
@@ -216,7 +216,7 @@
   <li>Additionally, there is an issue with the bootstrap_hdfs.sh script detailed in <a href="https://issues.apache.org/jira/browse/ACCUMULO-2761">ACCUMULO-2761</a>. There is a workaround listed in the issue.</li>
 </ul>
 
-<p>Please email the <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#100;&#101;&#118;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">dev</a> list for comments and questions.</p>
+<p>Please email the <a href="mailto:dev@accumulo.apache.org">dev</a> list for comments and questions.</p>
 
 
 
diff --git a/blog/2017/03/06/security-performance-implications.html b/blog/2017/03/06/security-performance-implications.html
index 5c0940e..c575897 100644
--- a/blog/2017/03/06/security-performance-implications.html
+++ b/blog/2017/03/06/security-performance-implications.html
@@ -384,22 +384,22 @@ vs. auth-int Median, no security Max vs. auth-int Max).</p>
 into Timely with the same relative start time.  Each graph represents a field 
 in the output generated by <a href="https://github.com/apache/accumulo/blob/1.7/test/src/main/java/org/apache/accumulo/test/continuous/ContinuousStatsCollector.java">ContinuousStatsCollector</a></p>
 
-<h3 id="tablerecshttpsgithubcomapacheaccumuloblob17coresrcmainjavaorgapacheaccumulocoremasterthrifttableinfojaval73"><a href="https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/master/thrift/TableInfo.java#L73">TABLE_RECS</a></h3>
+<h3 id="table_recs"><a href="https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/master/thrift/TableInfo.java#L73">TABLE_RECS</a></h3>
 <p>(Number of records in the continuous ingest table.  Down sample=1m, aggregate=avg)</p>
 
 <p><a href="/images/blog/201702_security/tableRecs.png"><img src="/images/blog/201702_security/tableRecs.png" alt="" width="800px" /></a></p>
 
-<h3 id="totalingesthttpsgithubcomapacheaccumuloblob17coresrcmainjavaorgapacheaccumulocoremasterthrifttableinfojaval77"><a href="https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/master/thrift/TableInfo.java#L77">TOTAL_INGEST</a></h3>
+<h3 id="total_ingest"><a href="https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/master/thrift/TableInfo.java#L77">TOTAL_INGEST</a></h3>
 <p>(Ingest rate for Accumulo instance.  Down sample=5m, aggregate=avg)</p>
 
 <p><a href="/images/blog/201702_security/totalIngest.png"><img src="/images/blog/201702_security/totalIngest.png" alt="" width="800px" /></a></p>
 
-<h3 id="avgfilestablethttpsgithubcomapacheaccumuloblob17coresrcmainjavaorgapacheaccumulocoreutilstatjaval63"><a href="https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/util/Stat.java#L63">AVG_FILES/TABLET</a></h3>
+<h3 id="avg_filestablet"><a href="https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/util/Stat.java#L63">AVG_FILES/TABLET</a></h3>
 <p>(Average number of files per Accumulo tablet.  Down sample=1m, aggregate=avg)</p>
 
 <p><a href="/images/blog/201702_security/avgFilesTab.png"><img src="/images/blog/201702_security/avgFilesTab.png" alt="" width="800px" /></a></p>
 
-<h3 id="accumulofileshttpsgithubcomapacheaccumuloblob17testsrcmainjavaorgapacheaccumulotestcontinuouscontinuousstatscollectorjaval127"><a href="https://github.com/apache/accumulo/blob/1.7/test/src/main/java/org/apache/accumulo/test/continuous/ContinuousStatsCollector.java#L127">ACCUMULO_FILES</a></h3>
+<h3 id="accumulo_files"><a href="https://github.com/apache/accumulo/blob/1.7/test/src/main/java/org/apache/accumulo/test/continuous/ContinuousStatsCollector.java#L127">ACCUMULO_FILES</a></h3>
 <p>(Total number of files for Accumulo.  Down sample=1m, aggregate=avg)</p>
 
 <p><a href="/images/blog/201702_security/accumuloFiles.png"><img src="/images/blog/201702_security/accumuloFiles.png" alt="" width="800px" /></a></p>
diff --git a/blog/index.html b/blog/index.html
index 9baae18..b87c6c3 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/news/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/news/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/news/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/news/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/news/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/news/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/news/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/news/"</script>
 </html>
diff --git a/bylaws.html b/bylaws.html
index 801320d..1b2304c 100644
--- a/bylaws.html
+++ b/bylaws.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/bylaws.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/bylaws.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/bylaws.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/bylaws.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/bylaws.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/bylaws.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/bylaws.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/bylaws.html"</script>
 </html>
diff --git a/contrib.html b/contrib.html
index d3bab22..ea4f9f7 100644
--- a/contrib.html
+++ b/contrib.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/contrib-projects.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/contrib-projects.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/contrib-projects.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/contrib-projects.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/contrib-projects.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/contrib-projects.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/contrib-projects.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/contrib-projects.html"</script>
 </html>
diff --git a/contributor/contrib-projects.html b/contributor/contrib-projects.html
index 3b72cd6..b545cea 100644
--- a/contributor/contrib-projects.html
+++ b/contributor/contrib-projects.html
@@ -207,7 +207,7 @@ Accumulo issue tracker</a>.</p>
 <h2 id="adding-a-new-contrib-project">Adding a new Contrib Project</h2>
 
 <p>Proposals for new contrib projects should be sent to the <a href="mailing_list">Accumulo mailing
-list</a> for <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#100;&#101;&#118;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;&#063;&#115;&#117;&#098;&#106;&#101;&#099;&#116;&#061;&#091;&#065;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#043;&#067;&#111;&#110;&#116;&#114;&#105;&#098;&#043;&#080;&#114;&#111;&#112;&#111;&#115;&#097;&#108;&#093;">developers</a>.</p>
+list</a> for <a href="mailto:dev@accumulo.apache.org?subject=[Accumulo+Contrib+Proposal]">developers</a>.</p>
 
 <p>If an example application only makes use of a single Accumulo feature, it is
 probably better off as an Accumulo version-specific example. You can see
diff --git a/contributor/git.html b/contributor/git.html
index cc73a9b..e742126 100644
--- a/contributor/git.html
+++ b/contributor/git.html
@@ -199,7 +199,7 @@ impact on the efficacy of the advanced commands bundled with Git.</p>
 <h2 id="proposed-workflow">Proposed Workflow</h2>
 
 <p>This is a summary of what has been agreed upon by vocal committers/PMC members
-on <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#100;&#101;&#118;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">&#100;&#101;&#118;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;</a>. Enumeration of
+on <a href="mailto:dev@accumulo.apache.org">dev@accumulo.apache.org</a>. Enumeration of
 every possible situation out of the scope of this document. This document
 intends to lay the ground work to define the correct course of action regardless
 of circumstances. Some concrete examples will be provided to ensure the
@@ -322,7 +322,7 @@ name merge in the notice to the Jira issue, e.g.</p>
 <p>A second alternative is to use Github’s “Pull Requests” feature against the
 <a href="https://github.com/apache/accumulo">Apache Accumulo account</a>. Notifications of
 new pull-requests from Github should automatically be sent to
-<a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#100;&#101;&#118;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">&#100;&#101;&#118;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;</a>.</p>
+<a href="mailto:dev@accumulo.apache.org">dev@accumulo.apache.org</a>.</p>
 
 <p>Ignoring specifics, contributors should be sure to make their changes against
 the earlier version in which the fix is intended, <code class="highlighter-rouge">git-rebase</code>‘ing their
@@ -628,7 +628,7 @@ mirror’ing.</p>
 <h2 id="mailing-lists">Mailing lists</h2>
 
 <p>It should be noted in the INFRA request that commit messages should be sent to
-<a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#099;&#111;&#109;&#109;&#105;&#116;&#115;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">&#099;&#111;&#109;&#109;&#105;&#116;&#115;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;</a>. The subject
+<a href="mailto:commits@accumulo.apache.org">commits@accumulo.apache.org</a>. The subject
 can be decided on using the <a href="https://git-wip-us.apache.org/docs/switching-to-git#contents">provided
 variables</a>.</p>
 
diff --git a/contributor/making-release.html b/contributor/making-release.html
index 4bd69e2..d70b46e 100644
--- a/contributor/making-release.html
+++ b/contributor/making-release.html
@@ -214,7 +214,7 @@ will make it publicly available for other members to inspect.</p>
 
 <h2 id="vote">Vote</h2>
 
-<p>At this point, you should have a closed repository that’s ready to vote on. Send a message to <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#100;&#101;&#118;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">the dev
+<p>At this point, you should have a closed repository that’s ready to vote on. Send a message to <a href="mailto:dev@accumulo.apache.org">the dev
 list</a> and get the ball rolling. Developers should test and verify the
 release candidate on their own. Accumulo has a guide for <a href="/contributor/verifying-release">verifying releases</a>.</p>
 
diff --git a/contributor/releasing.html b/contributor/releasing.html
index 8ebc7ad..32a87b6 100644
--- a/contributor/releasing.html
+++ b/contributor/releasing.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/making-release.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/making-release.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/making-release.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/making-release.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/making-release.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/making-release.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/making-release.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/making-release.html"</script>
 </html>
diff --git a/contributor/source.html b/contributor/source.html
index e4ef168..05af6a7 100644
--- a/contributor/source.html
+++ b/contributor/source.html
@@ -339,7 +339,7 @@ nothing to commit (working directory clean)
 
 <h3 id="merging-practices">Merging Practices</h3>
 
-<p>Changes should be merged from earlier branches of Accumulo to later branches.  Ask the <a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#100;&#101;&#118;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">dev list</a> for instructions.</p>
+<p>Changes should be merged from earlier branches of Accumulo to later branches.  Ask the <a href="mailto:dev@accumulo.apache.org">dev list</a> for instructions.</p>
 
 <h3 id="public-api">Public API</h3>
 
diff --git a/docs/latest/administration/configuration-management.html b/docs/latest/administration/configuration-management.html
deleted file mode 100644
index 5417490..0000000
--- a/docs/latest/administration/configuration-management.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/administration/configuration-management">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/administration/configuration-management">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/administration/configuration-management">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/administration/configuration-management"</script>
-</html>
diff --git a/docs/latest/administration/configuration-properties.html b/docs/latest/administration/configuration-properties.html
deleted file mode 100644
index 97d0f6f..0000000
--- a/docs/latest/administration/configuration-properties.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/administration/configuration-properties">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/administration/configuration-properties">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/administration/configuration-properties">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/administration/configuration-properties"</script>
-</html>
diff --git a/docs/latest/administration/fate.html b/docs/latest/administration/fate.html
deleted file mode 100644
index 9e2091e..0000000
--- a/docs/latest/administration/fate.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/administration/fate">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/administration/fate">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/administration/fate">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/administration/fate"</script>
-</html>
diff --git a/docs/latest/administration/in-depth-install.html b/docs/latest/administration/in-depth-install.html
deleted file mode 100644
index d778eb1..0000000
--- a/docs/latest/administration/in-depth-install.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/administration/in-depth-install">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/administration/in-depth-install">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/administration/in-depth-install">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/administration/in-depth-install"</script>
-</html>
diff --git a/docs/latest/administration/kerberos.html b/docs/latest/administration/kerberos.html
deleted file mode 100644
index bb42048..0000000
--- a/docs/latest/administration/kerberos.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/administration/kerberos">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/administration/kerberos">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/administration/kerberos">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/administration/kerberos"</script>
-</html>
diff --git a/docs/latest/administration/monitoring-metrics.html b/docs/latest/administration/monitoring-metrics.html
deleted file mode 100644
index 21f10ab..0000000
--- a/docs/latest/administration/monitoring-metrics.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/administration/monitoring-metrics">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/administration/monitoring-metrics">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/administration/monitoring-metrics">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/administration/monitoring-metrics"</script>
-</html>
diff --git a/docs/latest/administration/multivolume.html b/docs/latest/administration/multivolume.html
deleted file mode 100644
index e288d8c..0000000
--- a/docs/latest/administration/multivolume.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/administration/multivolume">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/administration/multivolume">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/administration/multivolume">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/administration/multivolume"</script>
-</html>
diff --git a/docs/latest/administration/replication.html b/docs/latest/administration/replication.html
deleted file mode 100644
index 0df1766..0000000
--- a/docs/latest/administration/replication.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/administration/replication">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/administration/replication">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/administration/replication">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/administration/replication"</script>
-</html>
diff --git a/docs/latest/administration/ssl.html b/docs/latest/administration/ssl.html
deleted file mode 100644
index b929662..0000000
--- a/docs/latest/administration/ssl.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/administration/ssl">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/administration/ssl">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/administration/ssl">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/administration/ssl"</script>
-</html>
diff --git a/docs/latest/administration/tracing.html b/docs/latest/administration/tracing.html
deleted file mode 100644
index 5a4082c..0000000
--- a/docs/latest/administration/tracing.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/administration/tracing">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/administration/tracing">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/administration/tracing">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/administration/tracing"</script>
-</html>
diff --git a/docs/latest/development/development_tools.html b/docs/latest/development/development_tools.html
deleted file mode 100644
index 67e4f8a..0000000
--- a/docs/latest/development/development_tools.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/development/development_tools">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/development/development_tools">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/development/development_tools">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/development/development_tools"</script>
-</html>
diff --git a/docs/latest/development/high_speed_ingest.html b/docs/latest/development/high_speed_ingest.html
deleted file mode 100644
index 9e6c4e0..0000000
--- a/docs/latest/development/high_speed_ingest.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/development/high_speed_ingest">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/development/high_speed_ingest">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/development/high_speed_ingest">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/development/high_speed_ingest"</script>
-</html>
diff --git a/docs/latest/development/iterators.html b/docs/latest/development/iterators.html
deleted file mode 100644
index f8d3ce7..0000000
--- a/docs/latest/development/iterators.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/development/iterators">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/development/iterators">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/development/iterators">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/development/iterators"</script>
-</html>
diff --git a/docs/latest/development/mapreduce.html b/docs/latest/development/mapreduce.html
deleted file mode 100644
index 4e2956e..0000000
--- a/docs/latest/development/mapreduce.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/development/mapreduce">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/development/mapreduce">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/development/mapreduce">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/development/mapreduce"</script>
-</html>
diff --git a/docs/latest/development/proxy.html b/docs/latest/development/proxy.html
deleted file mode 100644
index b9040e0..0000000
--- a/docs/latest/development/proxy.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/development/proxy">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/development/proxy">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/development/proxy">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/development/proxy"</script>
-</html>
diff --git a/docs/latest/development/sampling.html b/docs/latest/development/sampling.html
deleted file mode 100644
index 3709d2d..0000000
--- a/docs/latest/development/sampling.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/development/sampling">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/development/sampling">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/development/sampling">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/development/sampling"</script>
-</html>
diff --git a/docs/latest/development/security.html b/docs/latest/development/security.html
deleted file mode 100644
index 492433a..0000000
--- a/docs/latest/development/security.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/development/security">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/development/security">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/development/security">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/development/security"</script>
-</html>
diff --git a/docs/latest/development/summaries.html b/docs/latest/development/summaries.html
deleted file mode 100644
index f6c7b05..0000000
--- a/docs/latest/development/summaries.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/development/summaries">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/development/summaries">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/development/summaries">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/development/summaries"</script>
-</html>
diff --git a/docs/latest/getting-started/clients.html b/docs/latest/getting-started/clients.html
deleted file mode 100644
index 79aad51..0000000
--- a/docs/latest/getting-started/clients.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/getting-started/clients">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/getting-started/clients">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/getting-started/clients">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/getting-started/clients"</script>
-</html>
diff --git a/docs/latest/getting-started/design.html b/docs/latest/getting-started/design.html
deleted file mode 100644
index f0d404f..0000000
--- a/docs/latest/getting-started/design.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/getting-started/design">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/getting-started/design">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/getting-started/design">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/getting-started/design"</script>
-</html>
diff --git a/docs/latest/getting-started/quick-install.html b/docs/latest/getting-started/quick-install.html
deleted file mode 100644
index a0b6137..0000000
--- a/docs/latest/getting-started/quick-install.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/getting-started/quick-install">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/getting-started/quick-install">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/getting-started/quick-install">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/getting-started/quick-install"</script>
-</html>
diff --git a/docs/latest/getting-started/shell.html b/docs/latest/getting-started/shell.html
deleted file mode 100644
index a0eddb3..0000000
--- a/docs/latest/getting-started/shell.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/getting-started/shell">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/getting-started/shell">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/getting-started/shell">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/getting-started/shell"</script>
-</html>
diff --git a/docs/latest/getting-started/table_configuration.html b/docs/latest/getting-started/table_configuration.html
deleted file mode 100644
index fca14f7..0000000
--- a/docs/latest/getting-started/table_configuration.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/getting-started/table_configuration">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/getting-started/table_configuration">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/getting-started/table_configuration">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/getting-started/table_configuration"</script>
-</html>
diff --git a/docs/latest/getting-started/table_design.html b/docs/latest/getting-started/table_design.html
deleted file mode 100644
index 86370d1..0000000
--- a/docs/latest/getting-started/table_design.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/getting-started/table_design">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/getting-started/table_design">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/getting-started/table_design">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/getting-started/table_design"</script>
-</html>
diff --git a/docs/latest/index.html b/docs/latest/index.html
deleted file mode 100644
index 100e83c..0000000
--- a/docs/latest/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/"</script>
-</html>
diff --git a/docs/latest/troubleshooting/advanced.html b/docs/latest/troubleshooting/advanced.html
deleted file mode 100644
index aa4cfbb..0000000
--- a/docs/latest/troubleshooting/advanced.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/troubleshooting/advanced">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/troubleshooting/advanced">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/troubleshooting/advanced">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/troubleshooting/advanced"</script>
-</html>
diff --git a/docs/latest/troubleshooting/basic.html b/docs/latest/troubleshooting/basic.html
deleted file mode 100644
index 3bd3469..0000000
--- a/docs/latest/troubleshooting/basic.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/troubleshooting/basic">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/troubleshooting/basic">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/troubleshooting/basic">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/troubleshooting/basic"</script>
-</html>
diff --git a/docs/latest/troubleshooting/system-metadata-tables.html b/docs/latest/troubleshooting/system-metadata-tables.html
deleted file mode 100644
index c1ba210..0000000
--- a/docs/latest/troubleshooting/system-metadata-tables.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/troubleshooting/system-metadata-tables.md">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/troubleshooting/system-metadata-tables.md">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/troubleshooting/system-metadata-tables.md">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/troubleshooting/system-metadata-tables.md"</script>
-</html>
diff --git a/docs/latest/troubleshooting/tools.html b/docs/latest/troubleshooting/tools.html
deleted file mode 100644
index 11764e0..0000000
--- a/docs/latest/troubleshooting/tools.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/docs/1.8/troubleshooting/tools">
-<meta http-equiv="refresh" content="0; url=/docs/1.8/troubleshooting/tools">
-<h1>Redirecting…</h1>
-<a href="/docs/1.8/troubleshooting/tools">Click here if you are not redirected.</a>
-<script>location="/docs/1.8/troubleshooting/tools"</script>
-</html>
diff --git a/downloads/index.html b/downloads/index.html
index 96e17a9..eb332f6 100644
--- a/downloads/index.html
+++ b/downloads/index.html
@@ -228,7 +228,7 @@ $(function() { $.getJSON(mirrorURL + "?as_json", mirrorsCallback); });
 
 <h2 id="current-releases">Current Releases</h2>
 
-<h3 id="latest-label-label-primary-">1.8.1 <strong class="label label-primary">latest</strong></h3>
+<h3 id="181-latest">1.8.1 <strong class="label label-primary">latest</strong></h3>
 
 <p>The most recent Apache Accumulo® release is version 1.8.1. See the <a href="/release/accumulo-1.8.1/" title="1.8.1 Release Notes">release notes</a> and <a href="https://issues.apache.org/jira/browse/ACCUMULO/fixforversion/12335830" title="1.8.1 CHANGES">CHANGES</a>.</p>
 
@@ -249,7 +249,7 @@ $(function() { $.getJSON(mirrorURL + "?as_json", mirrorsCallback); });
   </tbody>
 </table>
 
-<h4 id="documentation">1.8 Documentation</h4>
+<h4 id="18-documentation">1.8 Documentation</h4>
 <ul>
   <li><a class="download_external" id="/1.8/README" href="https://github.com/apache/accumulo/blob/rel/1.8.1/README.md">README</a></li>
   <li><a href="/1.8/accumulo_user_manual" title="1.8 user manual">HTML User Manual</a></li>
@@ -257,7 +257,7 @@ $(function() { $.getJSON(mirrorURL + "?as_json", mirrorsCallback); });
   <li><a class="download_external" id="/1.8/apidocs/" href="/1.8/apidocs/">Javadoc</a></li>
 </ul>
 
-<h3 id="section">1.7.3</h3>
+<h3 id="173">1.7.3</h3>
 
 <p>The most recent 1.7.x release of Apache Accumulo® is version 1.7.3. See the <a href="/release/accumulo-1.7.3/" title="1.7.3 Release Notes">release notes</a> and <a href="https://issues.apache.org/jira/browse/ACCUMULO/fixforversion/12335841" title="1.7.3 CHANGES">CHANGES</a>.</p>
 
@@ -278,7 +278,7 @@ $(function() { $.getJSON(mirrorURL + "?as_json", mirrorsCallback); });
   </tbody>
 </table>
 
-<h4 id="documentation-1">1.7 Documentation</h4>
+<h4 id="17-documentation">1.7 Documentation</h4>
 <ul>
   <li><a class="download_external" id="/1.7/README" href="https://github.com/apache/accumulo/blob/rel/1.7.3/README.md">README</a></li>
   <li><a href="/1.7/accumulo_user_manual" title="1.7 user manual">HTML User Manual</a></li>
diff --git a/features/index.html b/features/index.html
index 8459753..e0ba666 100644
--- a/features/index.html
+++ b/features/index.html
@@ -378,17 +378,17 @@ framework and subsequently corrected.</p>
 
 <h2 id="client-api">Client API</h2>
 
-<h3 id="batch-scanner4"><a href="/1.5/accumulo_user_manual#_writing_accumulo_clients">Batch Scanner</a></h3>
+<h3 id="batch-scanner"><a href="/1.5/accumulo_user_manual#_writing_accumulo_clients">Batch Scanner</a></h3>
 
 <p>Takes a list of Ranges, batches them to the appropriate tablet servers, and
 returns data as it is received (i.e. not in sorted order).</p>
 
-<h3 id="batch-writer4"><a href="/1.5/accumulo_user_manual#_writing_accumulo_clients">Batch Writer</a></h3>
+<h3 id="batch-writer"><a href="/1.5/accumulo_user_manual#_writing_accumulo_clients">Batch Writer</a></h3>
 
 <p>Clients buffer writes in memory before sending them in batches to the
 appropriate tablet servers.</p>
 
-<h3 id="bulk-import6"><a href="/1.5/accumulo_user_manual#_bulk_ingest">Bulk Import</a></h3>
+<h3 id="bulk-import"><a href="/1.5/accumulo_user_manual#_bulk_ingest">Bulk Import</a></h3>
 
 <p>Instead of writing individual mutations to Accumulo, entire files of sorted key
 value pairs can be imported. These files are moved into the Accumulo directory
@@ -399,7 +399,7 @@ using map reduce and then bulk imported. This method of ingest also allows for
 flexibility in resource allocation.  The nodes running map reduce to sort data
 could be different from the Accumulo nodes.</p>
 
-<h3 id="map-reduce4"><a href="/1.5/accumulo_user_manual#_writing_accumulo_clients">Map Reduce</a></h3>
+<h3 id="map-reduce"><a href="/1.5/accumulo_user_manual#_writing_accumulo_clients">Map Reduce</a></h3>
 
 <p>Accumulo can be a source and/or sink for map reduce jobs.</p>
 
diff --git a/feed.xml b/feed.xml
index c8ae66c..8b815e4 100644
--- a/feed.xml
+++ b/feed.xml
@@ -6,9 +6,9 @@
 </description>
     <link>https://accumulo.apache.org/</link>
     <atom:link href="https://accumulo.apache.org/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Wed, 06 Sep 2017 15:59:13 -0400</pubDate>
-    <lastBuildDate>Wed, 06 Sep 2017 15:59:13 -0400</lastBuildDate>
-    <generator>Jekyll v3.3.1</generator>
+    <pubDate>Wed, 06 Sep 2017 19:04:49 -0400</pubDate>
+    <lastBuildDate>Wed, 06 Sep 2017 19:04:49 -0400</lastBuildDate>
+    <generator>Jekyll v3.5.2</generator>
     
     
       <item>
@@ -582,22 +582,22 @@ vs. auth-int Median, no security Max vs. auth-int Max).&lt;/p&gt;
 into Timely with the same relative start time.  Each graph represents a field 
 in the output generated by &lt;a href=&quot;https://github.com/apache/accumulo/blob/1.7/test/src/main/java/org/apache/accumulo/test/continuous/ContinuousStatsCollector.java&quot;&gt;ContinuousStatsCollector&lt;/a&gt;&lt;/p&gt;
 
-&lt;h3 id=&quot;tablerecshttpsgithubcomapacheaccumuloblob17coresrcmainjavaorgapacheaccumulocoremasterthrifttableinfojaval73&quot;&gt;&lt;a href=&quot;https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/master/thrift/TableInfo.java#L73&quot;&gt;TABLE_RECS&lt;/a&gt;&lt;/h3&gt;
+&lt;h3 id=&quot;table_recs&quot;&gt;&lt;a href=&quot;https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/master/thrift/TableInfo.java#L73&quot;&gt;TABLE_RECS&lt;/a&gt;&lt;/h3&gt;
 &lt;p&gt;(Number of records in the continuous ingest table.  Down sample=1m, aggregate=avg)&lt;/p&gt;
 
 &lt;p&gt;&lt;a href=&quot;/images/blog/201702_security/tableRecs.png&quot;&gt;&lt;img src=&quot;/images/blog/201702_security/tableRecs.png&quot; alt=&quot;&quot; width=&quot;800px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
 
-&lt;h3 id=&quot;totalingesthttpsgithubcomapacheaccumuloblob17coresrcmainjavaorgapacheaccumulocoremasterthrifttableinfojaval77&quot;&gt;&lt;a href=&quot;https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/master/thrift/TableInfo.java#L77&quot;&gt;TOTAL_INGEST&lt;/a&gt;&lt;/h3&gt;
+&lt;h3 id=&quot;total_ingest&quot;&gt;&lt;a href=&quot;https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/master/thrift/TableInfo.java#L77&quot;&gt;TOTAL_INGEST&lt;/a&gt;&lt;/h3&gt;
 &lt;p&gt;(Ingest rate for Accumulo instance.  Down sample=5m, aggregate=avg)&lt;/p&gt;
 
 &lt;p&gt;&lt;a href=&quot;/images/blog/201702_security/totalIngest.png&quot;&gt;&lt;img src=&quot;/images/blog/201702_security/totalIngest.png&quot; alt=&quot;&quot; width=&quot;800px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
 
-&lt;h3 id=&quot;avgfilestablethttpsgithubcomapacheaccumuloblob17coresrcmainjavaorgapacheaccumulocoreutilstatjaval63&quot;&gt;&lt;a href=&quot;https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/util/Stat.java#L63&quot;&gt;AVG_FILES/TABLET&lt;/a&gt;&lt;/h3&gt;
+&lt;h3 id=&quot;avg_filestablet&quot;&gt;&lt;a href=&quot;https://github.com/apache/accumulo/blob/1.7/core/src/main/java/org/apache/accumulo/core/util/Stat.java#L63&quot;&gt;AVG_FILES/TABLET&lt;/a&gt;&lt;/h3&gt;
 &lt;p&gt;(Average number of files per Accumulo tablet.  Down sample=1m, aggregate=avg)&lt;/p&gt;
 
 &lt;p&gt;&lt;a href=&quot;/images/blog/201702_security/avgFilesTab.png&quot;&gt;&lt;img src=&quot;/images/blog/201702_security/avgFilesTab.png&quot; alt=&quot;&quot; width=&quot;800px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
 
-&lt;h3 id=&quot;accumulofileshttpsgithubcomapacheaccumuloblob17testsrcmainjavaorgapacheaccumulotestcontinuouscontinuousstatscollectorjaval127&quot;&gt;&lt;a href=&quot;https://github.com/apache/accumulo/blob/1.7/test/src/main/java/org/apache/accumulo/test/continuous/ContinuousStatsCollector.java#L127&quot;&gt;ACCUMULO_FILES&lt;/a&gt;&lt;/h3&gt;
+&lt;h3 id=&quot;accumulo_files&quot;&gt;&lt;a href=&quot;https://github.com/apache/accumulo/blob/1.7/test/src/main/java/org/apache/accumulo/test/continuous/ContinuousStatsCollector.java#L127&quot;&gt;ACCUMULO_FILES&lt;/a&gt;&lt;/h3&gt;
 &lt;p&gt;(Total number of files for Accumulo.  Down sample=1m, aggregate=avg)&lt;/p&gt;
 
 &lt;p&gt;&lt;a href=&quot;/images/blog/201702_security/accumuloFiles.png&quot;&gt;&lt;img src=&quot;/images/blog/201702_security/accumuloFiles.png&quot; alt=&quot;&quot; width=&quot;800px&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
diff --git a/git.html b/git.html
index d324e3a..5bdc7ea 100644
--- a/git.html
+++ b/git.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/git.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/git.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/git.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/git.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/git.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/git.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/git.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/git.html"</script>
 </html>
diff --git a/governance/bylaws.html b/governance/bylaws.html
index 801320d..1b2304c 100644
--- a/governance/bylaws.html
+++ b/governance/bylaws.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/bylaws.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/bylaws.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/bylaws.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/bylaws.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/bylaws.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/bylaws.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/bylaws.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/bylaws.html"</script>
 </html>
diff --git a/governance/consensusBuilding.html b/governance/consensusBuilding.html
index da45a65..295ae16 100644
--- a/governance/consensusBuilding.html
+++ b/governance/consensusBuilding.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/consensusBuilding.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/consensusBuilding.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/consensusBuilding.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/consensusBuilding.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/consensusBuilding.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/consensusBuilding.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/consensusBuilding.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/consensusBuilding.html"</script>
 </html>
diff --git a/governance/lazyConsensus.html b/governance/lazyConsensus.html
index 7ac2d44..eff1fc4 100644
--- a/governance/lazyConsensus.html
+++ b/governance/lazyConsensus.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/lazyConsensus.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/lazyConsensus.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/lazyConsensus.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/lazyConsensus.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/lazyConsensus.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/lazyConsensus.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/lazyConsensus.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/lazyConsensus.html"</script>
 </html>
diff --git a/governance/releasing.html b/governance/releasing.html
index 8ebc7ad..32a87b6 100644
--- a/governance/releasing.html
+++ b/governance/releasing.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/making-release.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/making-release.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/making-release.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/making-release.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/making-release.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/making-release.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/making-release.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/making-release.html"</script>
 </html>
diff --git a/governance/voting.html b/governance/voting.html
index ac2cbd7..4871474 100644
--- a/governance/voting.html
+++ b/governance/voting.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/voting.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/voting.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/voting.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/voting.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/voting.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/voting.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/voting.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/voting.html"</script>
 </html>
diff --git a/latest/accumulo_user_manual/index.html b/latest/accumulo_user_manual/index.html
index aae6ca0..f7126d0 100644
--- a/latest/accumulo_user_manual/index.html
+++ b/latest/accumulo_user_manual/index.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/1.8/accumulo_user_manual">
-<meta http-equiv="refresh" content="0; url=/1.8/accumulo_user_manual">
-<h1>Redirecting…</h1>
-<a href="/1.8/accumulo_user_manual">Click here if you are not redirected.</a>
-<script>location="/1.8/accumulo_user_manual"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/1.8/accumulo_user_manual">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/1.8/accumulo_user_manual">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/1.8/accumulo_user_manual">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/1.8/accumulo_user_manual"</script>
 </html>
diff --git a/latest/apidocs/index.html b/latest/apidocs/index.html
index e43e45d..67f3ef9 100644
--- a/latest/apidocs/index.html
+++ b/latest/apidocs/index.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/1.8/apidocs/">
-<meta http-equiv="refresh" content="0; url=/1.8/apidocs/">
-<h1>Redirecting…</h1>
-<a href="/1.8/apidocs/">Click here if you are not redirected.</a>
-<script>location="/1.8/apidocs/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/1.8/apidocs/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/1.8/apidocs/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/1.8/apidocs/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/1.8/apidocs/"</script>
 </html>
diff --git a/latest/examples/index.html b/latest/examples/index.html
index 856a6b7..3f0e5ec 100644
--- a/latest/examples/index.html
+++ b/latest/examples/index.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/1.8/examples">
-<meta http-equiv="refresh" content="0; url=/1.8/examples">
-<h1>Redirecting…</h1>
-<a href="/1.8/examples">Click here if you are not redirected.</a>
-<script>location="/1.8/examples"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/1.8/examples">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/1.8/examples">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/1.8/examples">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/1.8/examples"</script>
 </html>
diff --git a/latest/index.html b/latest/index.html
deleted file mode 100644
index d44aba5..0000000
--- a/latest/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="/1.8">
-<meta http-equiv="refresh" content="0; url=/1.8">
-<h1>Redirecting…</h1>
-<a href="/1.8">Click here if you are not redirected.</a>
-<script>location="/1.8"</script>
-</html>
diff --git a/mailing_list/index.html b/mailing_list/index.html
index 7970260..dfc76a8 100644
--- a/mailing_list/index.html
+++ b/mailing_list/index.html
@@ -167,28 +167,28 @@ mailing list archives</a>.</p>
       <td><strong>user</strong></td>
       <td>General user questions, help, and announcements</td>
       <td><a class="btn btn-primary btn-xs" href="https://lists.apache.org/list.html?user@accumulo.apache.org"><span class="glyphicon glyphicon-search"></span> Archive</a></td>
-      <td><a class="btn btn-success btn-xs" href="&#109;&#097;&#105;&#108;&#116;&#111;:&#117;&#115;&#101;&#114;&#045;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;"><span class="glyphicon glyphicon-plus"></span> Subscribe</a> <a class="btn btn-danger btn-xs" href="&#109;&#097;&#105;&#108;&#116;&#111;:&#117;&#115;&#101;&#114;&#045;&#117;&#110;&#115;&#117;&#098;&# [...]
-      <td><a class="btn btn-warning btn-xs" href="&#109;&#097;&#105;&#108;&#116;&#111;:&#117;&#115;&#101;&#114;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;"><span class="glyphicon glyphicon-envelope"></span> Post</a></td>
+      <td><a class="btn btn-success btn-xs" href="mailto:user-subscribe@accumulo.apache.org"><span class="glyphicon glyphicon-plus"></span> Subscribe</a> <a class="btn btn-danger btn-xs" href="mailto:user-unsubscribe@accumulo.apache.org"><span class="glyphicon glyphicon-remove"></span> Unsubscribe</a></td>
+      <td><a class="btn btn-warning btn-xs" href="mailto:user@accumulo.apache.org"><span class="glyphicon glyphicon-envelope"></span> Post</a></td>
     </tr>
     <tr>
       <td><strong>dev</strong></td>
       <td>Contributor discussions and development activity</td>
       <td><a class="btn btn-primary btn-xs" href="https://lists.apache.org/list.html?dev@accumulo.apache.org"><span class="glyphicon glyphicon-search"></span> Archive</a></td>
-      <td><a class="btn btn-success btn-xs" href="&#109;&#097;&#105;&#108;&#116;&#111;:&#100;&#101;&#118;&#045;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;"><span class="glyphicon glyphicon-plus"></span> Subscribe</a> <a class="btn btn-danger btn-xs" href="&#109;&#097;&#105;&#108;&#116;&#111;:&#100;&#101;&#118;&#045;&#117;&#110;&#115;&#117;&#098;&#115;&#099;&# [...]
-      <td><a class="btn btn-warning btn-xs" href="&#109;&#097;&#105;&#108;&#116;&#111;:&#100;&#101;&#118;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;"><span class="glyphicon glyphicon-envelope"></span> Post</a></td>
+      <td><a class="btn btn-success btn-xs" href="mailto:dev-subscribe@accumulo.apache.org"><span class="glyphicon glyphicon-plus"></span> Subscribe</a> <a class="btn btn-danger btn-xs" href="mailto:dev-unsubscribe@accumulo.apache.org"><span class="glyphicon glyphicon-remove"></span> Unsubscribe</a></td>
+      <td><a class="btn btn-warning btn-xs" href="mailto:dev@accumulo.apache.org"><span class="glyphicon glyphicon-envelope"></span> Post</a></td>
     </tr>
     <tr>
       <td><strong>commits</strong></td>
       <td>Code changes</td>
       <td><a class="btn btn-primary btn-xs" href="https://lists.apache.org/list.html?commits@accumulo.apache.org"><span class="glyphicon glyphicon-search"></span> Archive</a></td>
-      <td><a class="btn btn-success btn-xs" href="&#109;&#097;&#105;&#108;&#116;&#111;:&#099;&#111;&#109;&#109;&#105;&#116;&#115;&#045;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;"><span class="glyphicon glyphicon-plus"></span> Subscribe</a> <a class="btn btn-danger btn-xs" href="&#109;&#097;&#105;&#108;&#116;&#111;:&#099;&#111;&#109;&#109;&#105;&#116;&#115;&# [...]
+      <td><a class="btn btn-success btn-xs" href="mailto:commits-subscribe@accumulo.apache.org"><span class="glyphicon glyphicon-plus"></span> Subscribe</a> <a class="btn btn-danger btn-xs" href="mailto:commits-unsubscribe@accumulo.apache.org"><span class="glyphicon glyphicon-remove"></span> Unsubscribe</a></td>
       <td> </td>
     </tr>
     <tr>
       <td><strong>notifications</strong></td>
       <td>Automated notifications (JIRA, etc.)</td>
       <td><a class="btn btn-primary btn-xs" href="https://lists.apache.org/list.html?notifications@accumulo.apache.org"><span class="glyphicon glyphicon-search"></span> Archive</a></td>
-      <td><a class="btn btn-success btn-xs" href="&#109;&#097;&#105;&#108;&#116;&#111;:&#110;&#111;&#116;&#105;&#102;&#105;&#099;&#097;&#116;&#105;&#111;&#110;&#115;&#045;&#115;&#117;&#098;&#115;&#099;&#114;&#105;&#098;&#101;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;"><span class="glyphicon glyphicon-plus"></span> Subscribe</a> <a class="btn btn-danger btn-xs" href="&#109;&#097;&#105;&#108;&#116;&#111;:&#110;&# [...]
+      <td><a class="btn btn-success btn-xs" href="mailto:notifications-subscribe@accumulo.apache.org"><span class="glyphicon glyphicon-plus"></span> Subscribe</a> <a class="btn btn-danger btn-xs" href="mailto:notifications-unsubscribe@accumulo.apache.org"><span class="glyphicon glyphicon-remove"></span> Unsubscribe</a></td>
       <td> </td>
     </tr>
   </tbody>
diff --git a/notable_features.html b/notable_features.html
index 8e33b59..4601008 100644
--- a/notable_features.html
+++ b/notable_features.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/features/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/features/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/features/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/features/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/features/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/features/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/features/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/features/"</script>
 </html>
diff --git a/papers.html b/papers.html
index b348821..4758fe3 100644
--- a/papers.html
+++ b/papers.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/external-docs/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/external-docs/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/external-docs/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/external-docs/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/external-docs/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/external-docs/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/external-docs/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/external-docs/"</script>
 </html>
diff --git a/projects.html b/projects.html
index 33774b7..7addba6 100644
--- a/projects.html
+++ b/projects.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/related-projects/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/related-projects/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/related-projects/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/related-projects/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/related-projects/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/related-projects/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/related-projects/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/related-projects/"</script>
 </html>
diff --git a/related-projects/index.html b/related-projects/index.html
index 92ec89e..95a5bd7 100644
--- a/related-projects/index.html
+++ b/related-projects/index.html
@@ -151,7 +151,7 @@
           <p>The Apache Accumulo community is happy to promote and encourage use of Accumulo in ways that are novel and reusable
 by other users within the community. As such, we’re happy to curate a list of projects related to Accumulo to give
 them visibility to a larger audience. To have you project listed here, send a request to the
-<a href="&#109;&#097;&#105;&#108;&#116;&#111;:&#100;&#101;&#118;&#064;&#097;&#099;&#099;&#117;&#109;&#117;&#108;&#111;&#046;&#097;&#112;&#097;&#099;&#104;&#101;&#046;&#111;&#114;&#103;">developer’s mailing list</a></p>
+<a href="mailto:dev@accumulo.apache.org">developer’s mailing list</a></p>
 
 <h2 id="open-source-projects-using-accumulo">Open source projects using Accumulo</h2>
 
diff --git a/release/accumulo-1.5.3/index.html b/release/accumulo-1.5.3/index.html
index bd96904..83781ce 100644
--- a/release/accumulo-1.5.3/index.html
+++ b/release/accumulo-1.5.3/index.html
@@ -175,7 +175,7 @@ greatly appreciated.</p>
 
 <h2 id="security-changes">Security Changes</h2>
 
-<h3 id="sslv3-disabled-poodleaccumulo-3316"><a href="https://issues.apache.org/jira/browse/ACCUMULO-3316">SSLv3 disabled (POODLE)</a></h3>
+<h3 id="sslv3-disabled-poodle"><a href="https://issues.apache.org/jira/browse/ACCUMULO-3316">SSLv3 disabled (POODLE)</a></h3>
 
 <p>Many Accumulo services were capable of enabling wire encryption using
 SSL connectors. To be safe, <a href="https://issues.apache.org/jira/browse/ACCUMULO-3316">ACCUMULO-3316</a> disables the problematic SSLv3 version by default which was
@@ -184,7 +184,7 @@ so it will not accept SSLv3 client connections, when running it with https.</p>
 
 <h2 id="notable-bug-fixes">Notable Bug Fixes</h2>
 
-<h3 id="sourceswitchingiterator-deadlockaccumulo-3745"><a href="https://issues.apache.org/jira/browse/ACCUMULO-3745">SourceSwitchingIterator Deadlock</a></h3>
+<h3 id="sourceswitchingiterator-deadlock"><a href="https://issues.apache.org/jira/browse/ACCUMULO-3745">SourceSwitchingIterator Deadlock</a></h3>
 
 <p>An instance of SourceSwitchingIterator, the Accumulo iterator which transparently manages
 whether data for a tablet read from memory (the in-memory map) or disk (HDFS after a minor
@@ -196,7 +196,7 @@ inside of the SourceSwitchingIterator to prevent this deadlock from happening in
 
 <p>The only mitigation of this bug was to restart the tablet server that is deadlocked.</p>
 
-<h3 id="table-flush-blocked-indefinitelyaccumulo-3597"><a href="https://issues.apache.org/jira/browse/ACCUMULO-3597">Table flush blocked indefinitely</a></h3>
+<h3 id="table-flush-blocked-indefinitely"><a href="https://issues.apache.org/jira/browse/ACCUMULO-3597">Table flush blocked indefinitely</a></h3>
 
 <p>While running the Accumulo RandomWalk distributed test, it was observed that all activity in
 Accumulo had stopped and there was an offline Accumulo metadata table tablet. The system first
@@ -217,14 +217,14 @@ tablets in the system.</p>
 
 <p>The only mitigation of this bug was to restart the tablet server that is hung.</p>
 
-<h3 id="rpc-connections-not-cachedaccumulo-3574"><a href="https://issues.apache.org/jira/browse/ACCUMULO-3574">RPC Connections not cached</a></h3>
+<h3 id="rpc-connections-not-cached"><a href="https://issues.apache.org/jira/browse/ACCUMULO-3574">RPC Connections not cached</a></h3>
 
 <p>It was observed that the underlying connection for invoking RPCs were not actually being cached,
 despite it being requested that they should be cached. While this did not result in a noticed
 performance impact, it was deficiency. <a href="https://issues.apache.org/jira/browse/ACCUMULO-3574">ACCUMULO-3574</a> ensures that connections are cached when
 it is requested that they are.</p>
 
-<h3 id="deletes-on-apache-thrift-proxy-api-ignoredaccumulo-3474"><a href="https://issues.apache.org/jira/browse/ACCUMULO-3474">Deletes on Apache Thrift Proxy API ignored</a></h3>
+<h3 id="deletes-on-apache-thrift-proxy-api-ignored"><a href="https://issues.apache.org/jira/browse/ACCUMULO-3474">Deletes on Apache Thrift Proxy API ignored</a></h3>
 
 <p>A user noted that when trying to specify a delete using the Accumulo Thrift Proxy, the delete
 was treated as an update. <a href="https://issues.apache.org/jira/browse/ACCUMULO-3474">ACCUMULO-3474</a> fixes the Proxy server such that deletes are properly
diff --git a/release_notes.html b/release_notes.html
index ab4c620..1685c62 100644
--- a/release_notes.html
+++ b/release_notes.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/"</script>
 </html>
diff --git a/release_notes/1.5.1.html b/release_notes/1.5.1.html
index 4e6f349..32a6696 100644
--- a/release_notes/1.5.1.html
+++ b/release_notes/1.5.1.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.5.1/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.5.1/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.5.1/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.5.1/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.5.1/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.5.1/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.5.1/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.5.1/"</script>
 </html>
diff --git a/release_notes/1.5.2.html b/release_notes/1.5.2.html
index 8a69375..63ca64e 100644
--- a/release_notes/1.5.2.html
+++ b/release_notes/1.5.2.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.5.2/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.5.2/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.5.2/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.5.2/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.5.2/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.5.2/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.5.2/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.5.2/"</script>
 </html>
diff --git a/release_notes/1.5.3.html b/release_notes/1.5.3.html
index 56b1566..bad6384 100644
--- a/release_notes/1.5.3.html
+++ b/release_notes/1.5.3.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.5.3/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.5.3/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.5.3/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.5.3/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.5.3/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.5.3/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.5.3/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.5.3/"</script>
 </html>
diff --git a/release_notes/1.5.4.html b/release_notes/1.5.4.html
index 7d6a83c..febbb90 100644
--- a/release_notes/1.5.4.html
+++ b/release_notes/1.5.4.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.5.4/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.5.4/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.5.4/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.5.4/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.5.4/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.5.4/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.5.4/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.5.4/"</script>
 </html>
diff --git a/release_notes/1.6.0.html b/release_notes/1.6.0.html
index fa9a9ea..3ba6c8c 100644
--- a/release_notes/1.6.0.html
+++ b/release_notes/1.6.0.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.0/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.0/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.6.0/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.6.0/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.0/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.0/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.6.0/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.6.0/"</script>
 </html>
diff --git a/release_notes/1.6.1.html b/release_notes/1.6.1.html
index 33f8aa6..5a7ae48 100644
--- a/release_notes/1.6.1.html
+++ b/release_notes/1.6.1.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.1/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.1/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.6.1/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.6.1/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.1/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.1/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.6.1/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.6.1/"</script>
 </html>
diff --git a/release_notes/1.6.2.html b/release_notes/1.6.2.html
index 8e6f8d9..fbf0c77 100644
--- a/release_notes/1.6.2.html
+++ b/release_notes/1.6.2.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.2/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.2/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.6.2/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.6.2/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.2/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.2/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.6.2/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.6.2/"</script>
 </html>
diff --git a/release_notes/1.6.3.html b/release_notes/1.6.3.html
index 080b821..2fb39e9 100644
--- a/release_notes/1.6.3.html
+++ b/release_notes/1.6.3.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.3/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.3/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.6.3/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.6.3/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.3/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.3/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.6.3/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.6.3/"</script>
 </html>
diff --git a/release_notes/1.6.4.html b/release_notes/1.6.4.html
index 22a81dd..3407b30 100644
--- a/release_notes/1.6.4.html
+++ b/release_notes/1.6.4.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.4/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.4/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.6.4/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.6.4/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.4/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.4/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.6.4/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.6.4/"</script>
 </html>
diff --git a/release_notes/1.6.5.html b/release_notes/1.6.5.html
index 1ba4d7f..003a9c1 100644
--- a/release_notes/1.6.5.html
+++ b/release_notes/1.6.5.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.5/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.5/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.6.5/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.6.5/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.5/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.5/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.6.5/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.6.5/"</script>
 </html>
diff --git a/release_notes/1.6.6.html b/release_notes/1.6.6.html
index d1a7723..fad6761 100644
--- a/release_notes/1.6.6.html
+++ b/release_notes/1.6.6.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.6/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.6/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.6.6/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.6.6/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.6.6/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.6.6/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.6.6/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.6.6/"</script>
 </html>
diff --git a/release_notes/1.7.0.html b/release_notes/1.7.0.html
index dddbdb0..8e9f4c3 100644
--- a/release_notes/1.7.0.html
+++ b/release_notes/1.7.0.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.7.0/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.7.0/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.7.0/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.7.0/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.7.0/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.7.0/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.7.0/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.7.0/"</script>
 </html>
diff --git a/release_notes/1.7.1.html b/release_notes/1.7.1.html
index 61e89e3..5683655 100644
--- a/release_notes/1.7.1.html
+++ b/release_notes/1.7.1.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.7.1/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.7.1/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.7.1/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.7.1/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.7.1/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.7.1/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.7.1/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.7.1/"</script>
 </html>
diff --git a/release_notes/1.7.2.html b/release_notes/1.7.2.html
index 64471bd..81343ad 100644
--- a/release_notes/1.7.2.html
+++ b/release_notes/1.7.2.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.7.2/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.7.2/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.7.2/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.7.2/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.7.2/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.7.2/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.7.2/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.7.2/"</script>
 </html>
diff --git a/release_notes/1.7.3.html b/release_notes/1.7.3.html
index 6ba67cc..7ac0fb8 100644
--- a/release_notes/1.7.3.html
+++ b/release_notes/1.7.3.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.7.3/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.7.3/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.7.3/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.7.3/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.7.3/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.7.3/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.7.3/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.7.3/"</script>
 </html>
diff --git a/release_notes/1.8.0.html b/release_notes/1.8.0.html
index 09fc586..34da63f 100644
--- a/release_notes/1.8.0.html
+++ b/release_notes/1.8.0.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.8.0/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.8.0/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.8.0/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.8.0/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.8.0/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.8.0/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.8.0/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.8.0/"</script>
 </html>
diff --git a/release_notes/1.8.1.html b/release_notes/1.8.1.html
index e9f2f93..7ada20a 100644
--- a/release_notes/1.8.1.html
+++ b/release_notes/1.8.1.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.8.1/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.8.1/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/accumulo-1.8.1/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/accumulo-1.8.1/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/accumulo-1.8.1/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/accumulo-1.8.1/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/accumulo-1.8.1/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/accumulo-1.8.1/"</script>
 </html>
diff --git a/release_notes/index.html b/release_notes/index.html
index ab4c620..1685c62 100644
--- a/release_notes/index.html
+++ b/release_notes/index.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/release/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/release/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/release/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/release/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/release/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/release/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/release/"</script>
 </html>
diff --git a/releasing.html b/releasing.html
index 8ebc7ad..32a87b6 100644
--- a/releasing.html
+++ b/releasing.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/making-release.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/making-release.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/making-release.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/making-release.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/making-release.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/making-release.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/making-release.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/making-release.html"</script>
 </html>
diff --git a/source.html b/source.html
index 3adc611..e660081 100644
--- a/source.html
+++ b/source.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/source.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/source.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/source.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/source.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/source.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/source.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/source.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/source.html"</script>
 </html>
diff --git a/user_manual_1.3-incubating/index.html b/user_manual_1.3-incubating/index.html
index d46eff3..7930d61 100644
--- a/user_manual_1.3-incubating/index.html
+++ b/user_manual_1.3-incubating/index.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/1.3/user_manual/">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/1.3/user_manual/">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/1.3/user_manual/">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/1.3/user_manual/"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/1.3/user_manual/">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/1.3/user_manual/">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/1.3/user_manual/">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/1.3/user_manual/"</script>
 </html>
diff --git a/verifying_releases.html b/verifying_releases.html
index 8110ac9..22134eb 100644
--- a/verifying_releases.html
+++ b/verifying_releases.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/verifying-release.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/verifying-release.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/verifying-release.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/verifying-release.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/verifying-release.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/verifying-release.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/verifying-release.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/verifying-release.html"</script>
 </html>
diff --git a/versioning.html b/versioning.html
index 8430084..0bca983 100644
--- a/versioning.html
+++ b/versioning.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html>
 <html lang="en-US">
-<meta charset="utf-8">
-<title>Redirecting…</title>
-<link rel="canonical" href="https://accumulo.apache.org/contributor/versioning.html">
-<meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/versioning.html">
-<h1>Redirecting…</h1>
-<a href="https://accumulo.apache.org/contributor/versioning.html">Click here if you are not redirected.</a>
-<script>location="https://accumulo.apache.org/contributor/versioning.html"</script>
+  <meta charset="utf-8">
+  <title>Redirecting…</title>
+  <link rel="canonical" href="https://accumulo.apache.org/contributor/versioning.html">
+  <meta http-equiv="refresh" content="0; url=https://accumulo.apache.org/contributor/versioning.html">
+  <h1>Redirecting…</h1>
+  <a href="https://accumulo.apache.org/contributor/versioning.html">Click here if you are not redirected.</a>
+  <script>location="https://accumulo.apache.org/contributor/versioning.html"</script>
 </html>

-- 
To stop receiving notification emails like this one, please contact
['"commits@accumulo.apache.org" <commits@accumulo.apache.org>'].

Mime
View raw message